@ethlete/components 1.0.0-next.78 → 1.0.0-next.80

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 (270) hide show
  1. package/CHANGELOG.md +139 -0
  2. package/design/accordion.ts +73 -0
  3. package/design/anchored-dialog.ts +92 -0
  4. package/design/avatar.ts +90 -0
  5. package/design/badge.ts +48 -0
  6. package/design/banner.ts +77 -0
  7. package/design/bracket.ts +457 -0
  8. package/design/breadcrumb.ts +145 -0
  9. package/design/button.ts +62 -1
  10. package/design/calendar.ts +306 -0
  11. package/design/card.ts +92 -0
  12. package/design/carousel.ts +240 -0
  13. package/design/chart.ts +512 -0
  14. package/design/checkbox.ts +275 -0
  15. package/design/chip.ts +64 -0
  16. package/design/config.json +8 -0
  17. package/design/control.ts +19 -0
  18. package/design/copy-button.ts +59 -0
  19. package/design/description-list.ts +41 -0
  20. package/design/dialog.ts +216 -0
  21. package/design/divider.ts +27 -0
  22. package/design/empty-state.ts +45 -0
  23. package/design/floating-action.ts +55 -0
  24. package/design/form-field.ts +3 -0
  25. package/design/grid.ts +148 -0
  26. package/design/input.ts +86 -0
  27. package/design/kbd.ts +19 -0
  28. package/design/loader.ts +152 -0
  29. package/design/masonry.ts +115 -0
  30. package/design/match.ts +131 -0
  31. package/design/menu.ts +147 -0
  32. package/design/notification.ts +133 -0
  33. package/design/otp-input.ts +107 -0
  34. package/design/pagination.ts +120 -0
  35. package/design/picture.ts +80 -0
  36. package/design/progress-steps.ts +79 -0
  37. package/design/query-error.ts +60 -0
  38. package/design/radio-group.ts +132 -0
  39. package/design/scheduler.ts +369 -0
  40. package/design/scrollable.ts +218 -0
  41. package/design/scrollbar.ts +47 -0
  42. package/design/sdk/assets/fallback.svg +1 -0
  43. package/design/sdk/assets/tall.svg +1 -0
  44. package/design/sdk/assets/wide.svg +1 -0
  45. package/design/sdk/components/accent-on-light/accent-on-light.css +35 -0
  46. package/design/sdk/components/accent-on-light/accent-on-light.ts +10 -0
  47. package/design/sdk/components/accent-on-light/shared/controls.ts +46 -0
  48. package/design/sdk/components/accordion/accordion.css +17 -0
  49. package/design/sdk/components/accordion/accordion.ts +68 -0
  50. package/design/sdk/components/anchored-dialog/anchored-dialog.css +63 -0
  51. package/design/sdk/components/anchored-dialog/anchored-dialog.ts +65 -0
  52. package/design/sdk/components/avatar/avatar.css +14 -0
  53. package/design/sdk/components/avatar/avatar.ts +79 -0
  54. package/design/sdk/components/badge/badge.css +13 -0
  55. package/design/sdk/components/badge/badge.ts +53 -0
  56. package/design/sdk/components/banner/banner.css +18 -0
  57. package/design/sdk/components/banner/banner.ts +88 -0
  58. package/design/sdk/components/bracket/bracket.css +59 -0
  59. package/design/sdk/components/bracket/bracket.ts +144 -0
  60. package/design/sdk/components/breadcrumb/breadcrumb.css +25 -0
  61. package/design/sdk/components/breadcrumb/breadcrumb.ts +82 -0
  62. package/design/sdk/components/button/button.css +41 -0
  63. package/design/sdk/components/button/button.ts +59 -7
  64. package/design/sdk/components/calendar/calendar.css +33 -0
  65. package/design/sdk/components/calendar/calendar.ts +97 -0
  66. package/design/sdk/components/card/card.css +19 -0
  67. package/design/sdk/components/card/card.ts +62 -0
  68. package/design/sdk/components/carousel/carousel.css +44 -0
  69. package/design/sdk/components/carousel/carousel.ts +75 -0
  70. package/design/sdk/components/chart/chart.css +56 -0
  71. package/design/sdk/components/chart/chart.ts +99 -0
  72. package/design/sdk/components/checkbox/checkbox.css +65 -0
  73. package/design/sdk/components/checkbox/checkbox.ts +180 -0
  74. package/design/sdk/components/chip/chip.css +18 -0
  75. package/design/sdk/components/chip/chip.ts +77 -0
  76. package/design/sdk/components/copy-button/copy-button.css +14 -0
  77. package/design/sdk/components/copy-button/copy-button.ts +60 -0
  78. package/design/sdk/components/description-list/description-list.css +7 -0
  79. package/design/sdk/components/description-list/description-list.ts +54 -0
  80. package/design/sdk/components/dialog/dialog.css +29 -0
  81. package/design/sdk/components/dialog/dialog.ts +79 -0
  82. package/design/sdk/components/divider/divider.css +26 -0
  83. package/design/sdk/components/divider/divider.ts +44 -0
  84. package/design/sdk/components/empty-state/empty-state.css +15 -0
  85. package/design/sdk/components/empty-state/empty-state.ts +57 -0
  86. package/design/sdk/components/floating-action/floating-action.css +51 -0
  87. package/design/sdk/components/floating-action/floating-action.ts +63 -0
  88. package/design/sdk/components/form-field/form-field.ts +23 -5
  89. package/design/sdk/components/grid/grid.css +17 -0
  90. package/design/sdk/components/grid/grid.ts +81 -0
  91. package/design/sdk/components/input/input.css +75 -0
  92. package/design/sdk/components/input/input.ts +80 -0
  93. package/design/sdk/components/kbd/kbd.css +25 -0
  94. package/design/sdk/components/kbd/kbd.ts +58 -0
  95. package/design/sdk/components/loader/loader.css +37 -0
  96. package/design/sdk/components/loader/loader.ts +69 -0
  97. package/design/sdk/components/masonry/masonry.css +7 -0
  98. package/design/sdk/components/masonry/masonry.ts +43 -0
  99. package/design/sdk/components/match/match.css +25 -0
  100. package/design/sdk/components/match/match.ts +77 -0
  101. package/design/sdk/components/menu/menu.css +22 -0
  102. package/design/sdk/components/menu/menu.ts +103 -0
  103. package/design/sdk/components/notification/notification.css +32 -0
  104. package/design/sdk/components/notification/notification.ts +107 -0
  105. package/design/sdk/components/otp-input/otp-input.css +35 -0
  106. package/design/sdk/components/otp-input/otp-input.ts +65 -0
  107. package/design/sdk/components/pagination/pagination.css +14 -0
  108. package/design/sdk/components/pagination/pagination.ts +76 -0
  109. package/design/sdk/components/picture/picture.css +37 -0
  110. package/design/sdk/components/picture/picture.ts +97 -0
  111. package/design/sdk/components/progress-steps/progress-steps.css +37 -0
  112. package/design/sdk/components/progress-steps/progress-steps.ts +92 -0
  113. package/design/sdk/components/query-error/query-error.css +33 -0
  114. package/design/sdk/components/query-error/query-error.ts +121 -0
  115. package/design/sdk/components/radio-group/radio-group.css +46 -0
  116. package/design/sdk/components/radio-group/radio-group.ts +167 -0
  117. package/design/sdk/components/scheduler/scheduler.css +55 -0
  118. package/design/sdk/components/scheduler/scheduler.ts +240 -0
  119. package/design/sdk/components/scrollable/scrollable.css +58 -0
  120. package/design/sdk/components/scrollable/scrollable.ts +133 -0
  121. package/design/sdk/components/scrollbar/scrollbar.css +78 -0
  122. package/design/sdk/components/scrollbar/scrollbar.ts +124 -0
  123. package/design/sdk/components/select/select.ts +1 -1
  124. package/design/sdk/components/select/shared/select-part.ts +25 -3
  125. package/design/sdk/components/select-panel/select-panel.css +3 -0
  126. package/design/sdk/components/select-panel/select-panel.ts +125 -0
  127. package/design/sdk/components/skeleton/skeleton.css +22 -0
  128. package/design/sdk/components/skeleton/skeleton.ts +51 -0
  129. package/design/sdk/components/slider/slider.css +52 -0
  130. package/design/sdk/components/slider/slider.ts +87 -0
  131. package/design/sdk/components/standings/standings.css +33 -0
  132. package/design/sdk/components/standings/standings.ts +131 -0
  133. package/design/sdk/components/stat-tile/stat-tile.css +15 -0
  134. package/design/sdk/components/stat-tile/stat-tile.ts +85 -0
  135. package/design/sdk/components/stream/stream.css +48 -0
  136. package/design/sdk/components/stream/stream.ts +43 -0
  137. package/design/sdk/components/switch/switch.css +37 -0
  138. package/design/sdk/components/switch/switch.ts +63 -0
  139. package/design/sdk/components/table/table.css +67 -0
  140. package/design/sdk/components/table/table.ts +161 -0
  141. package/design/sdk/components/tabs/tabs.css +13 -0
  142. package/design/sdk/components/tabs/tabs.ts +74 -0
  143. package/design/sdk/components/textarea/textarea.css +116 -0
  144. package/design/sdk/components/textarea/textarea.ts +65 -0
  145. package/design/sdk/components/timeline/timeline.css +30 -0
  146. package/design/sdk/components/timeline/timeline.ts +87 -0
  147. package/design/sdk/components/toolbar/toolbar.css +24 -0
  148. package/design/sdk/components/toolbar/toolbar.ts +88 -0
  149. package/design/sdk/components/tooltip/tooltip.css +15 -0
  150. package/design/sdk/components/tooltip/tooltip.ts +28 -0
  151. package/design/sdk/components/tree/selected-tint.css +15 -0
  152. package/design/sdk/components/tree/tree.ts +70 -0
  153. package/design/sdk/foundations/colors/colors.css +124 -4
  154. package/design/sdk/foundations/colors/colors.ts +1 -1
  155. package/design/sdk/foundations/colors/shared/contrast.ts +1 -1
  156. package/design/sdk/foundations/elevation/elevation.css +6 -0
  157. package/design/sdk/foundations/elevation/elevation.ts +11 -0
  158. package/design/sdk/foundations/elevation/shared/elevation/scene.css +101 -0
  159. package/design/sdk/foundations/elevation/shared/elevation/scene.ts +74 -0
  160. package/design/sdk/foundations/icons/icons.ts +119 -0
  161. package/design/sdk/pictures.json +1183 -0
  162. package/design/select.ts +5 -4
  163. package/design/skeleton.ts +67 -0
  164. package/design/slider.ts +155 -0
  165. package/design/standings.ts +161 -0
  166. package/design/stat-tile.ts +109 -0
  167. package/design/stream.ts +92 -0
  168. package/design/switch.ts +83 -0
  169. package/design/table.ts +302 -0
  170. package/design/tabs.ts +75 -0
  171. package/design/textarea.ts +94 -0
  172. package/design/timeline.ts +52 -0
  173. package/design/toolbar.ts +95 -0
  174. package/design/tooltip.ts +87 -0
  175. package/fesm2022/ethlete-components.mjs +1440 -1209
  176. package/fesm2022/ethlete-components.mjs.map +1 -1
  177. package/generators/generators.json +2 -0
  178. package/package.json +1 -1
  179. package/src/lib/accordion/accordion.component.css +2 -1
  180. package/src/lib/avatar/avatar.component.css +10 -0
  181. package/src/lib/badge/badge.component.css +2 -2
  182. package/src/lib/banner/banner.component.css +3 -1
  183. package/src/lib/breadcrumb/breadcrumb-outlet.component.css +5 -0
  184. package/src/lib/breadcrumb/breadcrumb.component.css +5 -1
  185. package/src/lib/button/button-properties-styles.component.css +6 -6
  186. package/src/lib/button/button.component.css +27 -4
  187. package/src/lib/button/button.types.ts +33 -0
  188. package/src/lib/button/icon-button.component.css +21 -22
  189. package/src/lib/button/split-button.component.css +5 -1
  190. package/src/lib/button/window-control-button.component.css +43 -3
  191. package/src/lib/calendar/calendar.component.css +15 -5
  192. package/src/lib/card/card.component.css +4 -0
  193. package/src/lib/carousel/carousel-autoplay-styles.component.css +1 -1
  194. package/src/lib/carousel/carousel.component.css +2 -2
  195. package/src/lib/chart/chart-axis.component.css +3 -3
  196. package/src/lib/chip/chip.component.css +12 -6
  197. package/src/lib/description-list/description-list.component.css +2 -1
  198. package/src/lib/empty-state/empty-state.component.css +4 -0
  199. package/src/lib/floating-action/floating-action-styles.component.css +27 -0
  200. package/src/lib/focus-ring/focus-ring-styles.component.css +4 -1
  201. package/src/lib/forms/checkbox/checkbox.component.css +31 -5
  202. package/src/lib/forms/color-input/color-input.component.css +3 -1
  203. package/src/lib/forms/color-input/color-picker-panel.component.css +6 -2
  204. package/src/lib/forms/date-time/date-input/date-input.component.css +1 -1
  205. package/src/lib/forms/date-time/date-time-input/date-time-input.component.css +1 -1
  206. package/src/lib/forms/date-time/duration-input/duration-input.component.css +1 -1
  207. package/src/lib/forms/date-time/range-input-shell-styles.component.css +1 -1
  208. package/src/lib/forms/date-time/time-input/time-input.component.css +1 -1
  209. package/src/lib/forms/description/description.component.css +7 -0
  210. package/src/lib/forms/dropzone/dropzone.component.css +26 -0
  211. package/src/lib/forms/form-field/form-field-control-suffix-styles.component.css +4 -2
  212. package/src/lib/forms/form-field/form-field-text-shell-styles.component.css +54 -5
  213. package/src/lib/forms/form-field/form-field-textarea-styles.component.css +62 -0
  214. package/src/lib/forms/form-field/form-field.component.css +6 -0
  215. package/src/lib/forms/form-field/headless/label.directive.css +1 -1
  216. package/src/lib/forms/input/input.component.css +6 -2
  217. package/src/lib/forms/input/number-input.component.css +2 -2
  218. package/src/lib/forms/input/password-input.component.css +4 -3
  219. package/src/lib/forms/otp-input/otp-input.component.css +23 -4
  220. package/src/lib/forms/phone-input/phone-input.component.css +4 -3
  221. package/src/lib/forms/rating/rating.component.css +2 -1
  222. package/src/lib/forms/rich-text-editor/rich-text-editor.component.css +1 -1
  223. package/src/lib/forms/selection-card-styles.component.css +3 -2
  224. package/src/lib/forms/selection-list/checkbox-group/checkbox-group-select-all.component.css +4 -2
  225. package/src/lib/forms/selection-list/checkbox-group/checkbox-option.component.css +4 -2
  226. package/src/lib/forms/selection-list/radio-group/radio.component.css +5 -2
  227. package/src/lib/forms/selection-list/segmented-button-group/segmented-button.component.css +2 -1
  228. package/src/lib/forms/slider/range-slider.component.css +98 -6
  229. package/src/lib/forms/slider/slider.component.css +96 -4
  230. package/src/lib/forms/switch/switch.component.css +45 -15
  231. package/src/lib/forms/tag-input/tag-input.component.css +2 -2
  232. package/src/lib/forms/textarea/textarea-autosize-styles.component.css +2 -3
  233. package/src/lib/forms/textarea/textarea.component.css +7 -2
  234. package/src/lib/grid/grid-item-toolbar.component.css +10 -0
  235. package/src/lib/grid/grid-item.component.css +6 -1
  236. package/src/lib/kbd/kbd.component.css +1 -1
  237. package/src/lib/loader/brand-loader/brand-loader.component.css +4 -1
  238. package/src/lib/loader/progress-bar/progress-bar.component.css +1 -1
  239. package/src/lib/loader/spinner/spinner-styles.component.css +1 -1
  240. package/src/lib/match/match-card.component.css +9 -3
  241. package/src/lib/match/match-score.component.css +4 -1
  242. package/src/lib/menu/menu-selection-item.component.css +1 -1
  243. package/src/lib/menu/menu.component.css +6 -1
  244. package/src/lib/notification/notification.component.css +3 -3
  245. package/src/lib/overlay/overlay-container.component.css +4 -0
  246. package/src/lib/pagination/pagination.component.css +4 -0
  247. package/src/lib/progress-steps/progress-step.component.css +4 -4
  248. package/src/lib/query-error/query-error.component.css +4 -0
  249. package/src/lib/scheduler/scheduler-appointment-styles.component.css +21 -5
  250. package/src/lib/scheduler/scheduler-month-view.component.css +4 -2
  251. package/src/lib/scheduler/scheduler-time-grid-view.component.css +8 -2
  252. package/src/lib/scrollable/headless/scrollable-navigation.component.css +1 -1
  253. package/src/lib/standings/standings-pick.component.css +1 -1
  254. package/src/lib/standings/standings.component.css +10 -10
  255. package/src/lib/stat-tile/stat-tile-sparkline.component.css +1 -1
  256. package/src/lib/stream/consent/stream-consent.component.css +99 -0
  257. package/src/lib/stream/error/stream-player-error.component.css +100 -0
  258. package/src/lib/stream/loading/stream-player-loading.component.css +16 -0
  259. package/src/lib/stream/pip/pip-slot-placeholder.component.css +68 -0
  260. package/src/lib/stream/stream-player-slot-styles.component.css +4 -0
  261. package/src/lib/table/table-resize-grip.component.css +2 -1
  262. package/src/lib/table/table-select-cell.component.css +45 -15
  263. package/src/lib/table/table.component.css +15 -5
  264. package/src/lib/tabs/tab-bar-styles.component.css +1 -1
  265. package/src/lib/tabs/tabs/tab-group.component.css +111 -0
  266. package/src/lib/time-picker/time-picker.component.css +2 -1
  267. package/src/lib/timeline/timeline-item.component.css +5 -1
  268. package/src/lib/toolbar/toolbar.component.css +4 -0
  269. package/src/lib/tooltip/tooltip.component.css +14 -0
  270. package/types/ethlete-components.d.ts +156 -128
@@ -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,17 @@ 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
+ };
4189
+ export type WindowControlButtonShape = (typeof WINDOW_CONTROL_BUTTON_SHAPES)[keyof typeof WINDOW_CONTROL_BUTTON_SHAPES];
4178
4190
  export declare class WindowControlButtonComponent {
4179
4191
  protected buttonDir: ButtonDirective;
4180
4192
  size: import("@angular/core").InputSignal<WindowControlButtonSize>;
4181
4193
  kind: import("@angular/core").InputSignal<WindowControlButtonKind>;
4194
+ /** `square` is a Windows-style tile with a red close hover; `round` is a GNOME (Adwaita) style circle. */
4195
+ shape: import("@angular/core").InputSignal<WindowControlButtonShape>;
4182
4196
  canAnimate: {
4183
4197
  state: import("@angular/core").Signal<boolean>;
4184
4198
  };
@@ -4198,6 +4212,11 @@ export declare class WindowControlButtonComponent {
4198
4212
  "required": false;
4199
4213
  "isSignal": true;
4200
4214
  };
4215
+ "shape": {
4216
+ "alias": "shape";
4217
+ "required": false;
4218
+ "isSignal": true;
4219
+ };
4201
4220
  }, {}, never, ["*"], true, [{
4202
4221
  directive: typeof ButtonDirective;
4203
4222
  inputs: {
@@ -6427,11 +6446,6 @@ export declare class TooltipDirective {
6427
6446
  * leave. A press anywhere else is unambiguous, so treat it as a dismissal.
6428
6447
  */
6429
6448
  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
6449
  private dismissOnEscape;
6436
6450
  private setupFocusBehavior;
6437
6451
  private syncHostDescription;
@@ -7045,6 +7059,8 @@ export declare class PieChartComponent {
7045
7059
  outputs: {};
7046
7060
  }]>;
7047
7061
  }
7062
+ /** Which way the flow runs: left to right in columns, or top to bottom in rows. */
7063
+ export type SankeyChartDirection = 'horizontal' | 'vertical';
7048
7064
  /** Where a keyboard-focused link sits among its source's outgoing links. `position` counts from 1. */
7049
7065
  export type SankeyChartLinkKeyHintContext = {
7050
7066
  position: number;
@@ -7127,8 +7143,6 @@ export type SankeyChartLinkInput = {
7127
7143
  };
7128
7144
  /** Formats a value for the tooltips and the table. */
7129
7145
  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
7146
  /** 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
7147
  export type SankeyChartLabelSide = 'start' | 'end' | 'center';
7134
7148
  /** A node with its geometry in plot pixels, ready to render. */
@@ -17350,6 +17364,7 @@ export declare class MenuItemDirective {
17350
17364
  private pointerInside;
17351
17365
  protected role: Signal<string>;
17352
17366
  protected isActive: Signal<boolean>;
17367
+ protected activeSource: Signal<"pointer" | "keyboard" | null>;
17353
17368
  protected isHighlightHeld: Signal<boolean>;
17354
17369
  protected tabIndex: Signal<-1 | 0>;
17355
17370
  constructor();
@@ -17359,6 +17374,7 @@ export declare class MenuItemDirective {
17359
17374
  protected handlePointerMove(event: PointerEvent): void;
17360
17375
  protected handlePointerLeave(): void;
17361
17376
  protected handleFocus(): void;
17377
+ private keyboardTookOver;
17362
17378
  static ɵfac: i0.ɵɵFactoryDeclaration<MenuItemDirective, never>;
17363
17379
  static ɵdir: i0.ɵɵDirectiveDeclaration<MenuItemDirective, "[etMenuItem]", ["etMenuItem"], {
17364
17380
  "disabled": {
@@ -18364,6 +18380,7 @@ export declare class OtpInputDirective extends FieldStateControlDirective implem
18364
18380
  describedBy: import("@angular/core").WritableSignal<string | null>;
18365
18381
  controlType: import("@angular/core").WritableSignal<"otp-input">;
18366
18382
  focused: import("@angular/core").WritableSignal<boolean>;
18383
+ showsCaret: import("@angular/core").Signal<boolean>;
18367
18384
  /**
18368
18385
  * The native input this directive controls. Auto-initialized when the directive sits on
18369
18386
  * an `<input>` (headless usage); otherwise set by the hosting component (`et-otp-input`).
@@ -19319,6 +19336,7 @@ export declare class SelectDirective<TValue = unknown> extends FieldStateControl
19319
19336
  virtualizedItems: Signal<SelectItem[]>;
19320
19337
  private pendingActiveScrollItem;
19321
19338
  private anchorBoxAtPointerMove;
19339
+ private openSource;
19322
19340
  /** True once `maxSelection` is reached (multi select) - further adds are ignored. */
19323
19341
  isFull: Signal<boolean>;
19324
19342
  /**
@@ -19379,6 +19397,7 @@ export declare class SelectDirective<TValue = unknown> extends FieldStateControl
19379
19397
  * single mode. Returns whether the value was committed.
19380
19398
  */
19381
19399
  commitCustomValue(raw: string): boolean;
19400
+ private showFromKeyboard;
19382
19401
  private toggleMultiValue;
19383
19402
  private handleMultiSelectShortcut;
19384
19403
  private toggleVisibleSelection;
@@ -19405,6 +19424,7 @@ export declare class SelectDirective<TValue = unknown> extends FieldStateControl
19405
19424
  private resolveAnchorElement;
19406
19425
  private handleFrameClick;
19407
19426
  private handlePanelMounted;
19427
+ private handleMousePointerMove;
19408
19428
  private handlePanelBeforeClosed;
19409
19429
  private handlePanelKeydown;
19410
19430
  static ɵfac: i0.ɵɵFactoryDeclaration<SelectDirective<any>, never>;
@@ -19726,34 +19746,6 @@ export declare class SelectOptionDirective {
19726
19746
  };
19727
19747
  }, {}, never, never, true, never>;
19728
19748
  }
19729
- /** Config for {@link selectOptionsFromQuery}. */
19730
- export type SelectOptionsFromQueryConfig<TCreator extends AnyQueryCreator, TOption> = {
19731
- /**
19732
- * The query creator to run (e.g. from `createGetQuery`). Its pages run on a paged query stack that
19733
- * restarts when the debounced search query changes - never per keystroke.
19734
- */
19735
- queryCreator: TCreator;
19736
- /**
19737
- * Builds the request args from the debounced search query and the current `page`. Return `null`
19738
- * to skip a request (e.g. for an empty query) - `options` is empty while skipped.
19739
- */
19740
- args: (query: Signal<string>, page: Signal<number>) => RequestArgs<QueryArgsOf<TCreator>> | null;
19741
- /**
19742
- * Maps a successful response to the option slice for the **current page**. The factory appends
19743
- * each page's slice to the accumulated `options` (and resets when the query changes).
19744
- */
19745
- toOptions: (response: ResponseType<QueryArgsOf<TCreator>>) => TOption[];
19746
- /** Derives whether more pages exist from the latest page's response - drives `hasMoreItems` and gates `loadMore()`. */
19747
- toHasMore?: (response: ResponseType<QueryArgsOf<TCreator>>) => boolean;
19748
- /** Turns a query failure into the select's error text. Defaults to the first error message, else `SELECT_LABELS.error`. */
19749
- toErrorMessage?: (error: QueryErrorResponse) => string;
19750
- /** Minimum query length before requests run. @default 0 */
19751
- minQueryLength?: number;
19752
- /** Debounce applied to the query before it reaches `args`, in ms. @default 300 */
19753
- debounceTime?: number;
19754
- /** The page `args` receives on first load and after each query change. @default 1 */
19755
- initialPage?: number;
19756
- };
19757
19749
  export type SelectOptionsFromQuery<TOption> = {
19758
19750
  /** The mapped options - render them with an `@for` of `et-select-option`s (`filterMode="external"`). */
19759
19751
  options: Signal<TOption[]>;
@@ -19773,38 +19765,6 @@ export type SelectOptionsFromQuery<TOption> = {
19773
19765
  */
19774
19766
  loadMore: () => void;
19775
19767
  };
19776
- /**
19777
- * Feeds a select's options from an `@ethlete/query` query as the user searches. It takes the
19778
- * `queryCreator` plus a reactive `args` builder and runs them on a `createPagedQueryStack`: the stack
19779
- * restarts at `initialPage` as the (debounced) search query changes. Bind the returned bundle with
19780
- * `[etSelectOptions]` - it wires the async state and the query/load-more plumbing - and render
19781
- * `options` yourself:
19782
- *
19783
- * ```ts
19784
- * users = selectOptionsFromQuery({
19785
- * queryCreator: searchUsers,
19786
- * args: (query, page) => (query() ? { queryParams: { q: query(), page: page() } } : null),
19787
- * toOptions: (res) => res.items,
19788
- * toHasMore: (res) => res.page < res.totalPages,
19789
- * });
19790
- * ```
19791
- *
19792
- * ```html
19793
- * <et-select [formField]="form.assignee" [etSelectOptions]="users">
19794
- * <input etSelectSearch placeholder="Search users" />
19795
- * @for (user of users.options(); track user.id) {
19796
- * <et-select-option [value]="user.id">{{ user.name }}</et-select-option>
19797
- * }
19798
- * </et-select>
19799
- * ```
19800
- *
19801
- * To intercept a single binding, wire `loading`, `loadError`, `hasMoreItems`, `queryChange`, `loadMore` and
19802
- * `filterMode="external"` by hand instead - see the select guide's async options section.
19803
- *
19804
- * Call it from a field initializer / constructor (injection context), the same place you'd create
19805
- * a query or a query stack.
19806
- */
19807
- export declare const selectOptionsFromQuery: <TCreator extends AnyQueryCreator, TOption>(config: SelectOptionsFromQueryConfig<TCreator, TOption>) => SelectOptionsFromQuery<TOption>;
19808
19768
  /**
19809
19769
  * Wires an async options bundle - the return value of `selectOptionsFromQuery` or
19810
19770
  * `selectOptionsFromV2Query` - into a select with a single binding, replacing the manual
@@ -20094,6 +20054,66 @@ export declare class SelectOptionComponent {
20094
20054
  outputs: {};
20095
20055
  }]>;
20096
20056
  }
20057
+ /** Config for {@link selectOptionsFromQuery}. */
20058
+ export type SelectOptionsFromQueryConfig<TCreator extends AnyQueryCreator, TOption> = {
20059
+ /**
20060
+ * The query creator to run (e.g. from `createGetQuery`). Its pages run on a paged query stack that
20061
+ * restarts when the debounced search query changes - never per keystroke.
20062
+ */
20063
+ queryCreator: TCreator;
20064
+ /**
20065
+ * Builds the request args from the debounced search query and the current `page`. Return `null`
20066
+ * to skip a request (e.g. for an empty query) - `options` is empty while skipped.
20067
+ */
20068
+ args: (query: Signal<string>, page: Signal<number>) => RequestArgs<QueryArgsOf<TCreator>> | null;
20069
+ /**
20070
+ * Maps a successful response to the option slice for the **current page**. The factory appends
20071
+ * each page's slice to the accumulated `options` (and resets when the query changes).
20072
+ */
20073
+ toOptions: (response: ResponseType<QueryArgsOf<TCreator>>) => TOption[];
20074
+ /** Derives whether more pages exist from the latest page's response - drives `hasMoreItems` and gates `loadMore()`. */
20075
+ toHasMore?: (response: ResponseType<QueryArgsOf<TCreator>>) => boolean;
20076
+ /** Turns a query failure into the select's error text. Defaults to the first error message, else `SELECT_LABELS.error`. */
20077
+ toErrorMessage?: (error: QueryErrorResponse) => string;
20078
+ /** Minimum query length before requests run. @default 0 */
20079
+ minQueryLength?: number;
20080
+ /** Debounce applied to the query before it reaches `args`, in ms. @default 300 */
20081
+ debounceTime?: number;
20082
+ /** The page `args` receives on first load and after each query change. @default 1 */
20083
+ initialPage?: number;
20084
+ };
20085
+ /**
20086
+ * Feeds a select's options from an `@ethlete/query` query as the user searches. It takes the
20087
+ * `queryCreator` plus a reactive `args` builder and runs them on a `createPagedQueryStack`: the stack
20088
+ * restarts at `initialPage` as the (debounced) search query changes. Bind the returned bundle with
20089
+ * `[etSelectOptions]` - it wires the async state and the query/load-more plumbing - and render
20090
+ * `options` yourself:
20091
+ *
20092
+ * ```ts
20093
+ * users = selectOptionsFromQuery({
20094
+ * queryCreator: searchUsers,
20095
+ * args: (query, page) => (query() ? { queryParams: { q: query(), page: page() } } : null),
20096
+ * toOptions: (res) => res.items,
20097
+ * toHasMore: (res) => res.page < res.totalPages,
20098
+ * });
20099
+ * ```
20100
+ *
20101
+ * ```html
20102
+ * <et-select [formField]="form.assignee" [etSelectOptions]="users">
20103
+ * <input etSelectSearch placeholder="Search users" />
20104
+ * @for (user of users.options(); track user.id) {
20105
+ * <et-select-option [value]="user.id">{{ user.name }}</et-select-option>
20106
+ * }
20107
+ * </et-select>
20108
+ * ```
20109
+ *
20110
+ * To intercept a single binding, wire `loading`, `loadError`, `hasMoreItems`, `queryChange`, `loadMore` and
20111
+ * `filterMode="external"` by hand instead - see the select guide's async options section.
20112
+ *
20113
+ * Call it from a field initializer / constructor (injection context), the same place you'd create
20114
+ * a query or a query stack.
20115
+ */
20116
+ export declare const selectOptionsFromQuery: <TCreator extends AnyQueryCreator, TOption>(config: SelectOptionsFromQueryConfig<TCreator, TOption>) => SelectOptionsFromQuery<TOption>;
20097
20117
  /** The args accepted by the creator's `prepare()` - includes `mock`/`config` extras. */
20098
20118
  export type V2PrepareArgsOf<TCreator extends AnyV2QueryCreator | AnyLegacyQueryCreator> = Parameters<TCreator['prepare']>[0];
20099
20119
  /** Config for {@link selectOptionsFromV2Query}. */
@@ -28193,7 +28213,8 @@ export type StatTileSentiment = 'good' | 'bad' | 'neutral';
28193
28213
  * </et-stat-tile>
28194
28214
  */
28195
28215
  export declare class StatTileComponent {
28196
- private semanticThemes;
28216
+ private successTheme;
28217
+ private errorTheme;
28197
28218
  private locale;
28198
28219
  protected labels: import("@angular/core").Signal<import("@ethlete/components").StatTileLabels>;
28199
28220
  label: import("@angular/core").InputSignal<string>;
@@ -28213,6 +28234,7 @@ export declare class StatTileComponent {
28213
28234
  caption: import("@angular/core").InputSignal<string | null>;
28214
28235
  /** Replaces the value and delta with a skeleton. The label stays. */
28215
28236
  loading: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
28237
+ private hasWarnedMissingTheme;
28216
28238
  protected formattedValue: import("@angular/core").Signal<string | null>;
28217
28239
  protected deltaView: import("@angular/core").Signal<{
28218
28240
  direction: import("@ethlete/components").StatTileDirection;
@@ -34541,6 +34563,7 @@ export declare class TabComponent {
34541
34563
  private hostElement;
34542
34564
  label: import("@angular/core").InputSignal<string>;
34543
34565
  icon: import("@angular/core").InputSignal<string | null>;
34566
+ ariaLabel: import("@angular/core").InputSignal<string | null>;
34544
34567
  disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
34545
34568
  customLabel: import("@angular/core").Signal<TabLabelDirective | undefined>;
34546
34569
  constructor();
@@ -34556,6 +34579,11 @@ export declare class TabComponent {
34556
34579
  "required": false;
34557
34580
  "isSignal": true;
34558
34581
  };
34582
+ "ariaLabel": {
34583
+ "alias": "ariaLabel";
34584
+ "required": false;
34585
+ "isSignal": true;
34586
+ };
34559
34587
  "disabled": {
34560
34588
  "alias": "disabled";
34561
34589
  "required": false;
@@ -35046,6 +35074,65 @@ export declare class TimelineComponent {
35046
35074
  }
35047
35075
  export declare const TIMELINE_IMPORTS: readonly [typeof TimelineComponent, typeof TimelineItemComponent];
35048
35076
  export type ToggletipContent = string | TemplateRef<unknown>;
35077
+ export declare class ToggletipComponent {
35078
+ private ownColorProvider;
35079
+ private triggerColorProvider;
35080
+ protected injector: Injector;
35081
+ toggletipId: import("@angular/core").InputSignal<string>;
35082
+ protected contentId: import("@angular/core").InputSignal<string>;
35083
+ content: import("@angular/core").InputSignal<ToggletipContent>;
35084
+ colorProvider: import("@angular/core").InputSignal<ProvideColorDirective | null>;
35085
+ hasTemplate: import("@angular/core").Signal<boolean>;
35086
+ contentText: import("@angular/core").Signal<string | null>;
35087
+ contentTemplate: import("@angular/core").Signal<TemplateRef<unknown> | null>;
35088
+ constructor();
35089
+ static ɵfac: i0.ɵɵFactoryDeclaration<ToggletipComponent, never>;
35090
+ static ɵcmp: i0.ɵɵComponentDeclaration<ToggletipComponent, "et-toggletip", never, {
35091
+ "toggletipId": {
35092
+ "alias": "toggletipId";
35093
+ "required": true;
35094
+ "isSignal": true;
35095
+ };
35096
+ "contentId": {
35097
+ "alias": "contentId";
35098
+ "required": true;
35099
+ "isSignal": true;
35100
+ };
35101
+ "content": {
35102
+ "alias": "content";
35103
+ "required": true;
35104
+ "isSignal": true;
35105
+ };
35106
+ "colorProvider": {
35107
+ "alias": "colorProvider";
35108
+ "required": true;
35109
+ "isSignal": true;
35110
+ };
35111
+ }, {}, never, never, true, [{
35112
+ directive: typeof i1$1.ProvideColorDirective;
35113
+ inputs: {};
35114
+ outputs: {};
35115
+ }, {
35116
+ directive: typeof i1$1.AutoSurfaceDirective;
35117
+ inputs: {};
35118
+ outputs: {};
35119
+ }]>;
35120
+ }
35121
+ export declare class ToggletipCloseDirective {
35122
+ protected overlayRef: OverlayRef<ToggletipComponent, unknown>;
35123
+ static ɵfac: i0.ɵɵFactoryDeclaration<ToggletipCloseDirective, never>;
35124
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ToggletipCloseDirective, "[etToggletipClose]", never, {}, {}, never, never, true, never>;
35125
+ }
35126
+ export declare class ToggletipTriggerDirective {
35127
+ private button;
35128
+ private destroyRef;
35129
+ private elementRef;
35130
+ private toggletip;
35131
+ constructor();
35132
+ isOpen(): boolean;
35133
+ static ɵfac: i0.ɵɵFactoryDeclaration<ToggletipTriggerDirective, never>;
35134
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ToggletipTriggerDirective, "[etToggletipTrigger]", ["etToggletipTrigger"], {}, {}, never, never, true, never>;
35135
+ }
35049
35136
  export declare class ToggletipDirective {
35050
35137
  private destroyRef;
35051
35138
  private reportError;
@@ -35141,65 +35228,6 @@ export declare class ToggletipDirective {
35141
35228
  "open": "etToggletipOpenChange";
35142
35229
  }, never, never, true, never>;
35143
35230
  }
35144
- export declare class ToggletipComponent {
35145
- private ownColorProvider;
35146
- private triggerColorProvider;
35147
- protected injector: Injector;
35148
- toggletipId: import("@angular/core").InputSignal<string>;
35149
- protected contentId: import("@angular/core").InputSignal<string>;
35150
- content: import("@angular/core").InputSignal<ToggletipContent>;
35151
- colorProvider: import("@angular/core").InputSignal<ProvideColorDirective | null>;
35152
- hasTemplate: import("@angular/core").Signal<boolean>;
35153
- contentText: import("@angular/core").Signal<string | null>;
35154
- contentTemplate: import("@angular/core").Signal<TemplateRef<unknown> | null>;
35155
- constructor();
35156
- static ɵfac: i0.ɵɵFactoryDeclaration<ToggletipComponent, never>;
35157
- static ɵcmp: i0.ɵɵComponentDeclaration<ToggletipComponent, "et-toggletip", never, {
35158
- "toggletipId": {
35159
- "alias": "toggletipId";
35160
- "required": true;
35161
- "isSignal": true;
35162
- };
35163
- "contentId": {
35164
- "alias": "contentId";
35165
- "required": true;
35166
- "isSignal": true;
35167
- };
35168
- "content": {
35169
- "alias": "content";
35170
- "required": true;
35171
- "isSignal": true;
35172
- };
35173
- "colorProvider": {
35174
- "alias": "colorProvider";
35175
- "required": true;
35176
- "isSignal": true;
35177
- };
35178
- }, {}, never, never, true, [{
35179
- directive: typeof i1$1.ProvideColorDirective;
35180
- inputs: {};
35181
- outputs: {};
35182
- }, {
35183
- directive: typeof i1$1.AutoSurfaceDirective;
35184
- inputs: {};
35185
- outputs: {};
35186
- }]>;
35187
- }
35188
- export declare class ToggletipCloseDirective {
35189
- protected overlayRef: OverlayRef<ToggletipComponent, unknown>;
35190
- static ɵfac: i0.ɵɵFactoryDeclaration<ToggletipCloseDirective, never>;
35191
- static ɵdir: i0.ɵɵDirectiveDeclaration<ToggletipCloseDirective, "[etToggletipClose]", never, {}, {}, never, never, true, never>;
35192
- }
35193
- export declare class ToggletipTriggerDirective {
35194
- private button;
35195
- private destroyRef;
35196
- private elementRef;
35197
- private toggletip;
35198
- constructor();
35199
- isOpen(): boolean;
35200
- static ɵfac: i0.ɵɵFactoryDeclaration<ToggletipTriggerDirective, never>;
35201
- static ɵdir: i0.ɵɵDirectiveDeclaration<ToggletipTriggerDirective, "[etToggletipTrigger]", ["etToggletipTrigger"], {}, {}, never, never, true, never>;
35202
- }
35203
35231
  export declare const TOGGLETIP_ERROR_CODES: {
35204
35232
  readonly TEMPLATE_TOGGLETIP_REQUIRES_LABEL: 1500;
35205
35233
  readonly TRIGGER_REQUIRES_BUTTON: 1501;
@@ -35779,5 +35807,5 @@ export declare const provideUnsavedChangesLabels: (labels: import("@ethlete/core
35779
35807
  export declare const injectUnsavedChangesLabels: () => import("@angular/core").Signal<UnsavedChangesLabels>;
35780
35808
  export declare const UNSAVED_CHANGES_LABELS: import("@angular/core").InjectionToken<import("@ethlete/core").LabelsSource<UnsavedChangesLabels>>;
35781
35809
  /** The version of `@ethlete/components` this build was cut from. */
35782
- export declare const COMPONENTS_VERSION = "1.0.0-next.78";
35810
+ export declare const COMPONENTS_VERSION = "1.0.0-next.80";
35783
35811
  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 };