@ethlete/components 1.0.0-next.69 → 1.0.0-next.70

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 (239) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/design/button.ts +57 -0
  3. package/design/form-field.ts +210 -0
  4. package/design/select.ts +110 -0
  5. package/fesm2022/ethlete-components-testing.mjs +3 -1
  6. package/fesm2022/ethlete-components-testing.mjs.map +1 -1
  7. package/fesm2022/ethlete-components.mjs +823 -105
  8. package/fesm2022/ethlete-components.mjs.map +1 -1
  9. package/package.json +20 -14
  10. package/src/lib/accordion/accordion-group.component.css +12 -0
  11. package/src/lib/accordion/accordion.component.css +185 -0
  12. package/src/lib/avatar/avatar-group.component.css +31 -0
  13. package/src/lib/avatar/avatar.component.css +75 -0
  14. package/src/lib/badge/badge.component.css +111 -0
  15. package/src/lib/banner/banner.component.css +94 -0
  16. package/src/lib/bracket/bracket-default-continue.component.css +29 -0
  17. package/src/lib/bracket/bracket-default-final-match.component.css +76 -0
  18. package/src/lib/bracket/bracket-default-match.component.css +21 -0
  19. package/src/lib/bracket/bracket-default-round-header.component.css +36 -0
  20. package/src/lib/bracket/bracket-participants.component.css +13 -0
  21. package/src/lib/bracket/bracket-pick-card.component.css +232 -0
  22. package/src/lib/bracket/bracket-rounds-list.component.css +75 -0
  23. package/src/lib/bracket/bracket-skeleton.component.css +55 -0
  24. package/src/lib/bracket/bracket.component.css +102 -0
  25. package/src/lib/bracket/layouts/swiss/bracket-swiss-styles.component.css +10 -0
  26. package/src/lib/breadcrumb/breadcrumb-overflow.component.css +38 -0
  27. package/src/lib/breadcrumb/breadcrumb.component.css +120 -0
  28. package/src/lib/button/button-properties-styles.component.css +143 -0
  29. package/src/lib/button/button.component.css +196 -0
  30. package/src/lib/button/fab.component.css +252 -0
  31. package/src/lib/button/icon-button.component.css +143 -0
  32. package/src/lib/button/split-button.component.css +77 -0
  33. package/src/lib/button/text-button.component.css +140 -0
  34. package/src/lib/button/window-control-button.component.css +158 -0
  35. package/src/lib/calendar/calendar-coarse-grid-styles.component.css +29 -0
  36. package/src/lib/calendar/calendar-comparison-band-styles.component.css +36 -0
  37. package/src/lib/calendar/calendar-week-numbers-styles.component.css +32 -0
  38. package/src/lib/calendar/calendar.component.css +366 -0
  39. package/src/lib/card/card.component.css +39 -0
  40. package/src/lib/carousel/carousel-autoplay-styles.component.css +166 -0
  41. package/src/lib/carousel/carousel-transition-styles.component.css +179 -0
  42. package/src/lib/carousel/carousel.component.css +142 -0
  43. package/src/lib/chart/bar-chart.component.css +176 -0
  44. package/src/lib/chart/chart-axis.component.css +40 -0
  45. package/src/lib/chart/chart-grid.component.css +6 -0
  46. package/src/lib/chart/chart-legend.component.css +46 -0
  47. package/src/lib/chart/chart-tooltip.component.css +34 -0
  48. package/src/lib/chart/line-chart-tooltip.component.css +51 -0
  49. package/src/lib/chart/line-chart.component.css +234 -0
  50. package/src/lib/chart/pie-chart.component.css +176 -0
  51. package/src/lib/chart/sankey-chart.component.css +221 -0
  52. package/src/lib/chip/chip.component.css +155 -0
  53. package/src/lib/command-palette/command-palette-item.component.css +94 -0
  54. package/src/lib/command-palette/command-palette.component.css +100 -0
  55. package/src/lib/description-list/description-list.component.css +77 -0
  56. package/src/lib/divider/divider.component.css +36 -0
  57. package/src/lib/empty-state/empty-state.component.css +73 -0
  58. package/src/lib/floating-action/floating-action-styles.component.css +78 -0
  59. package/src/lib/focus-ring/focus-ring-styles.component.css +13 -0
  60. package/src/lib/forms/cascader/cascader-breadcrumb-styles.component.css +98 -0
  61. package/src/lib/forms/cascader/cascader-panel.component.css +386 -0
  62. package/src/lib/forms/cascader/cascader-sheet-styles.component.css +241 -0
  63. package/src/lib/forms/cascader/cascader.component.css +52 -0
  64. package/src/lib/forms/checkbox/checkbox.component.css +247 -0
  65. package/src/lib/forms/choice-field/choice-field-card-styles.component.css +59 -0
  66. package/src/lib/forms/choice-field/choice-field.component.css +186 -0
  67. package/src/lib/forms/color-input/color-input.component.css +108 -0
  68. package/src/lib/forms/color-input/color-picker-panel.component.css +349 -0
  69. package/src/lib/forms/date-time/date-input/date-input.component.css +35 -0
  70. package/src/lib/forms/date-time/date-picker-panel.component.css +115 -0
  71. package/src/lib/forms/date-time/date-range-input/date-range-input.component.css +16 -0
  72. package/src/lib/forms/date-time/date-range-presets.component.css +60 -0
  73. package/src/lib/forms/date-time/date-time-input/date-time-input.component.css +151 -0
  74. package/src/lib/forms/date-time/date-time-range-input/date-time-range-input.component.css +121 -0
  75. package/src/lib/forms/date-time/duration-input/duration-input.component.css +88 -0
  76. package/src/lib/forms/date-time/range-input-shell-styles.component.css +55 -0
  77. package/src/lib/forms/date-time/time-input/time-input.component.css +35 -0
  78. package/src/lib/forms/date-time/time-range-input/time-range-input.component.css +16 -0
  79. package/src/lib/forms/dropzone/dropzone-item.component.css +51 -0
  80. package/src/lib/forms/dropzone/dropzone-preview-styles.component.css +67 -0
  81. package/src/lib/forms/dropzone/dropzone-readonly-styles.component.css +34 -0
  82. package/src/lib/forms/dropzone/dropzone.component.css +267 -0
  83. package/src/lib/forms/form-field/counter.component.css +25 -0
  84. package/src/lib/forms/form-field/form-field-control-suffix-styles.component.css +116 -0
  85. package/src/lib/forms/form-field/form-field-rich-text-styles.component.css +31 -0
  86. package/src/lib/forms/form-field/form-field-suffix-overlap-styles.component.css +66 -0
  87. package/src/lib/forms/form-field/form-field-text-shell-styles.component.css +312 -0
  88. package/src/lib/forms/form-field/form-field-textarea-styles.component.css +32 -0
  89. package/src/lib/forms/form-field/form-field.component.css +328 -0
  90. package/src/lib/forms/form-field/form-support-styles.component.css +102 -0
  91. package/src/lib/forms/form-field/headless/label.directive.css +25 -0
  92. package/src/lib/forms/form-field/hint.component.css +20 -0
  93. package/src/lib/forms/input/input.component.css +49 -0
  94. package/src/lib/forms/input/number-input.component.css +128 -0
  95. package/src/lib/forms/input/password-input.component.css +103 -0
  96. package/src/lib/forms/multi-language-rich-text-editor/multi-language-rich-text-editor.component.css +8 -0
  97. package/src/lib/forms/multi-language-rich-text-editor/tools/multi-language-rich-text-editor-language-tool.component.css +104 -0
  98. package/src/lib/forms/otp-input/otp-input.component.css +194 -0
  99. package/src/lib/forms/phone-input/phone-input.component.css +126 -0
  100. package/src/lib/forms/rating/rating.component.css +197 -0
  101. package/src/lib/forms/rich-text-editor/rich-text-content-styles.component.css +234 -0
  102. package/src/lib/forms/rich-text-editor/rich-text-editor-floating-toolbar.component.css +90 -0
  103. package/src/lib/forms/rich-text-editor/rich-text-editor-image-editor.component.css +172 -0
  104. package/src/lib/forms/rich-text-editor/rich-text-editor-link-editor.component.css +149 -0
  105. package/src/lib/forms/rich-text-editor/rich-text-editor-token-palette.component.css +18 -0
  106. package/src/lib/forms/rich-text-editor/rich-text-editor-token-popup.component.css +199 -0
  107. package/src/lib/forms/rich-text-editor/rich-text-editor.component.css +175 -0
  108. package/src/lib/forms/rich-text-editor/rich-text-viewer.component.css +6 -0
  109. package/src/lib/forms/rich-text-editor/tools/rich-text-editor-align-tool.component.css +5 -0
  110. package/src/lib/forms/rich-text-editor/tools/rich-text-editor-heading-tool.component.css +5 -0
  111. package/src/lib/forms/rich-text-editor/tools/rich-text-editor-image-styles.component.css +109 -0
  112. package/src/lib/forms/rich-text-editor/tools/rich-text-editor-table-styles.component.css +21 -0
  113. package/src/lib/forms/rich-text-editor/tools/rich-text-editor-table-tool.component.css +44 -0
  114. package/src/lib/forms/select/select-all-option.component.css +14 -0
  115. package/src/lib/forms/select/select-extras-styles.component.css +143 -0
  116. package/src/lib/forms/select/select-option-group.component.css +35 -0
  117. package/src/lib/forms/select/select-option-styles.component.css +137 -0
  118. package/src/lib/forms/select/select-panel.component.css +112 -0
  119. package/src/lib/forms/select/select.component.css +180 -0
  120. package/src/lib/forms/selection-card-styles.component.css +136 -0
  121. package/src/lib/forms/selection-list/checkbox-group/checkbox-group-select-all.component.css +89 -0
  122. package/src/lib/forms/selection-list/checkbox-group/checkbox-group.component.css +142 -0
  123. package/src/lib/forms/selection-list/checkbox-group/checkbox-option.component.css +153 -0
  124. package/src/lib/forms/selection-list/radio-group/radio-group.component.css +134 -0
  125. package/src/lib/forms/selection-list/radio-group/radio.component.css +137 -0
  126. package/src/lib/forms/selection-list/segmented-button-group/segmented-button-group.component.css +149 -0
  127. package/src/lib/forms/selection-list/segmented-button-group/segmented-button.component.css +180 -0
  128. package/src/lib/forms/slider/range-slider.component.css +348 -0
  129. package/src/lib/forms/slider/slider.component.css +342 -0
  130. package/src/lib/forms/switch/switch.component.css +187 -0
  131. package/src/lib/forms/tag-input/tag-input.component.css +54 -0
  132. package/src/lib/forms/textarea/textarea-autosize-styles.component.css +17 -0
  133. package/src/lib/forms/textarea/textarea.component.css +40 -0
  134. package/src/lib/grid/grid-debug.component.css +130 -0
  135. package/src/lib/grid/grid-item-default-actions.component.css +11 -0
  136. package/src/lib/grid/grid-item.component.css +172 -0
  137. package/src/lib/grid/grid.component.css +56 -0
  138. package/src/lib/icon/headless/icon-styles.component.css +7 -0
  139. package/src/lib/kbd/kbd.component.css +62 -0
  140. package/src/lib/loader/brand-loader/brand-loader.component.css +130 -0
  141. package/src/lib/loader/progress-bar/progress-bar.component.css +176 -0
  142. package/src/lib/loader/spinner/spinner.component.css +216 -0
  143. package/src/lib/masonry/masonry-styles.component.css +84 -0
  144. package/src/lib/match/match-card.component.css +441 -0
  145. package/src/lib/match/match-participant.component.css +137 -0
  146. package/src/lib/match/match-score.component.css +74 -0
  147. package/src/lib/menu/menu-group-label.component.css +12 -0
  148. package/src/lib/menu/menu-item-shortcut.component.css +10 -0
  149. package/src/lib/menu/menu-item-submenu-icon.component.css +18 -0
  150. package/src/lib/menu/menu-item.component.css +32 -0
  151. package/src/lib/menu/menu-search-styles.component.css +56 -0
  152. package/src/lib/menu/menu-selection-item.component.css +88 -0
  153. package/src/lib/menu/menu-separator.component.css +9 -0
  154. package/src/lib/menu/menu.component.css +296 -0
  155. package/src/lib/notification/notification-stack.component.css +114 -0
  156. package/src/lib/notification/notification.component.css +271 -0
  157. package/src/lib/overlay/alert-dialog/alert-dialog.component.css +45 -0
  158. package/src/lib/overlay/floating-panel-styles.component.css +71 -0
  159. package/src/lib/overlay/floating-tip-styles.component.css +78 -0
  160. package/src/lib/overlay/overlay-container.component.css +167 -0
  161. package/src/lib/overlay/overlay-main-styles.component.css +105 -0
  162. package/src/lib/overlay/overlay-template-host.component.css +7 -0
  163. package/src/lib/overlay/routing/overlay-route-header-template-outlet.component.css +36 -0
  164. package/src/lib/overlay/routing/overlay-router-outlet.component.css +207 -0
  165. package/src/lib/overlay/routing/overlay-shared-route-template-outlet.component.css +5 -0
  166. package/src/lib/overlay/sidebar/overlay-sidebar.component.css +16 -0
  167. package/src/lib/overlay/strategies/anchored-dialog-styles.component.css +51 -0
  168. package/src/lib/overlay/strategies/dialog-styles.component.css +50 -0
  169. package/src/lib/overlay/strategies/full-screen-dialog-styles.component.css +83 -0
  170. package/src/lib/overlay/strategies/overlay-arrow-styles.component.css +112 -0
  171. package/src/lib/overlay/strategies/overlay-origin-clone.component.css +63 -0
  172. package/src/lib/overlay/strategies/sheet-styles.component.css +143 -0
  173. package/src/lib/pagination/page-size-select.component.css +102 -0
  174. package/src/lib/pagination/pagination.component.css +192 -0
  175. package/src/lib/picture/picture.component.css +66 -0
  176. package/src/lib/progress-steps/progress-step.component.css +187 -0
  177. package/src/lib/progress-steps/progress-steps.component.css +26 -0
  178. package/src/lib/query-error/query-error.component.css +21 -0
  179. package/src/lib/scheduler/scheduler-agenda-view.component.css +97 -0
  180. package/src/lib/scheduler/scheduler-appointment-drag-styles.component.css +56 -0
  181. package/src/lib/scheduler/scheduler-appointment-styles.component.css +111 -0
  182. package/src/lib/scheduler/scheduler-edit-color.component.css +16 -0
  183. package/src/lib/scheduler/scheduler-edit-surface-actions.component.css +14 -0
  184. package/src/lib/scheduler/scheduler-edit-surface-breadcrumb.component.css +26 -0
  185. package/src/lib/scheduler/scheduler-edit-surface-children.component.css +57 -0
  186. package/src/lib/scheduler/scheduler-edit-surface-fields.component.css +11 -0
  187. package/src/lib/scheduler/scheduler-edit-surface-footer.component.css +7 -0
  188. package/src/lib/scheduler/scheduler-edit-surface-header.component.css +15 -0
  189. package/src/lib/scheduler/scheduler-edit-time-range.component.css +11 -0
  190. package/src/lib/scheduler/scheduler-month-view.component.css +143 -0
  191. package/src/lib/scheduler/scheduler-time-grid-view.component.css +260 -0
  192. package/src/lib/scheduler/scheduler.component.css +87 -0
  193. package/src/lib/scrollable/headless/scrollable-buttons.component.css +122 -0
  194. package/src/lib/scrollable/headless/scrollable-footer.css +25 -0
  195. package/src/lib/scrollable/headless/scrollable-masks.component.css +112 -0
  196. package/src/lib/scrollable/headless/scrollable-navigation.component.css +94 -0
  197. package/src/lib/scrollable/scrollable.component.css +192 -0
  198. package/src/lib/scrollbar/scrollbar.component.css +110 -0
  199. package/src/lib/skeleton/skeleton.component.css +108 -0
  200. package/src/lib/standings/standings-pick.component.css +172 -0
  201. package/src/lib/standings/standings.component.css +201 -0
  202. package/src/lib/stat-tile/stat-tile-sparkline.component.css +49 -0
  203. package/src/lib/stat-tile/stat-tile.component.css +111 -0
  204. package/src/lib/stream/pip/pip-chrome.component.css +96 -0
  205. package/src/lib/stream/pip/pip-player.component.css +40 -0
  206. package/src/lib/stream/pip/pip-window.component.css +222 -0
  207. package/src/lib/stream/stream-manager-styles.component.css +10 -0
  208. package/src/lib/stream/stream-overlay-card-styles.component.css +43 -0
  209. package/src/lib/stream/stream-player-slot-styles.component.css +14 -0
  210. package/src/lib/table/table-column-chooser.component.css +17 -0
  211. package/src/lib/table/table-column-menu-trigger.component.css +31 -0
  212. package/src/lib/table/table-detail-styles.component.css +103 -0
  213. package/src/lib/table/table-drag-scroll-styles.component.css +18 -0
  214. package/src/lib/table/table-expander-cell.component.css +58 -0
  215. package/src/lib/table/table-filter-trigger.component.css +44 -0
  216. package/src/lib/table/table-group-header-row.component.css +38 -0
  217. package/src/lib/table/table-inline-edit-styles.component.css +20 -0
  218. package/src/lib/table/table-page-sticky-header-styles.component.css +77 -0
  219. package/src/lib/table/table-reorder-overlay.component.css +42 -0
  220. package/src/lib/table/table-resize-grip.component.css +65 -0
  221. package/src/lib/table/table-row-box-styles.component.css +260 -0
  222. package/src/lib/table/table-select-cell.component.css +89 -0
  223. package/src/lib/table/table-skeleton-rows.component.css +19 -0
  224. package/src/lib/table/table-sort-priority-styles.component.css +15 -0
  225. package/src/lib/table/table-sticky-columns-styles.component.css +80 -0
  226. package/src/lib/table/table-virtual-scroll-styles.component.css +9 -0
  227. package/src/lib/table/table.component.css +829 -0
  228. package/src/lib/tabs/nav-tabs/nav-tab-link-styles.component.css +33 -0
  229. package/src/lib/tabs/tab-bar-styles.component.css +173 -0
  230. package/src/lib/tabs/tab-scale-styles.component.css +61 -0
  231. package/src/lib/time-picker/time-picker.component.css +220 -0
  232. package/src/lib/timeline/timeline-item.component.css +116 -0
  233. package/src/lib/timeline/timeline.component.css +7 -0
  234. package/src/lib/toggletip/toggletip.component.css +83 -0
  235. package/src/lib/toolbar/toolbar.component.css +40 -0
  236. package/src/lib/tooltip/tooltip.component.css +64 -0
  237. package/src/lib/tree/tree.component.css +221 -0
  238. package/types/ethlete-components-testing.d.ts +1 -1
  239. package/types/ethlete-components.d.ts +172 -7
@@ -1,8 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, input, booleanAttribute, signal, inject, ElementRef, computed, effect, untracked, Directive, afterNextRender, DestroyRef, TemplateRef, model, linkedSignal, ViewEncapsulation, Component, ErrorHandler, numberAttribute, contentChildren, HostAttributeToken, Renderer2, output, viewChild, contentChild, NgZone, afterRenderEffect, ApplicationRef, DOCUMENT, ViewContainerRef, runInInjectionContext, createEnvironmentInjector, reflectComponentType, inputBinding, EnvironmentInjector, isSignal, Injector, createComponent, assertInInjectionContext, isDevMode as isDevMode$1, provideEnvironmentInitializer, viewChildren, PLATFORM_ID, outputBinding, afterEveryRender, CSP_NONCE } from '@angular/core';
2
+ import { InjectionToken, input, booleanAttribute, signal, inject, ElementRef, computed, effect, untracked, Directive, afterNextRender, DestroyRef, TemplateRef, model, linkedSignal, ViewEncapsulation, Component, ErrorHandler, numberAttribute, contentChildren, HostAttributeToken, Renderer2, output, viewChild, contentChild, NgZone, afterRenderEffect, ApplicationRef, DOCUMENT, ViewContainerRef, runInInjectionContext, createEnvironmentInjector, PLATFORM_ID, reflectComponentType, inputBinding, EnvironmentInjector, isSignal, Injector, createComponent, assertInInjectionContext, isDevMode as isDevMode$1, provideEnvironmentInitializer, viewChildren, outputBinding, afterEveryRender, CSP_NONCE } from '@angular/core';
3
3
  import * as i1 from '@ethlete/core';
4
- import { signalElementMutations, RuntimeError, injectHostElement, createComponentId, injectStyleManager, defineLabels, toProvideFn, toInjectFn, toToken, ProvideColorDirective, SurfaceInteractiveDirective, createCanAnimateSignal, ColorInteractiveDirective, injectSemanticColorTheme, injectColorThemes, defineStaticRootProvider, injectLocale, optionalBooleanAttribute as optionalBooleanAttribute$1, inferMimeType, mountVisuallyHidden, injectRenderer, ProvideSurfaceDirective, COLOR_PROVIDER, SURFACE_PROVIDER, injectSurfaceThemes, injectSurfaceThemesPrefix, injectSurfaceContextTracker, injectBoundaryElement, ANIMATED_LIFECYCLE_TOKEN, injectDefaultSurfaceTheme, resolveAppRootColorProvider, resolveSurfaceByElevation, createCssSurfaceName, provideBoundaryElement, AnimatedLifecycleDirective, isElement, isHTMLElement, injectBreakpointObserver, equal, nextFrame, animationDebugLog, resolveOverlayLayer, defineRootProvider, injectOverlayRuntime, anchoredOverlayPosition, injectQueryParam, injectUrl, randomId, ScrollObserverDirective, signalElementScrollState, ScrollObserverStartDirective, ScrollObserverEndDirective, enableAnchoredOverlayPositionExtras, forceReflow, elementCanScroll, matchesReducedMotion, createSwipeTracker, applyHostListener, defineProvider, fromNextFrame, injectRoute, createUnsavedChangesTracker, createDocumentElementSignal, AnimatedIfDirective, signalElementDimensions, applyInitialFocus, syncSignal, AutoSurfaceDirective, setInputSignal, injectTemplateRef, signalHostElementScrollState, applyStructuredDataBinding, injectIsDocumentVisible, mountEasingTokens, typedBreakpointTransform, signalElementChildren, signalElementIntersection, signalHostAttributes, signalHostClasses, signalHostStyles, getScrollContainerTarget, getScrollItemTarget, getElementScrollCoordinates, provideBreakpointInstance, signalClasses, useCursorDragScroll, signalStyles, getScrollSnapTarget, injectPrefersReducedMotion, signalHostElementIntersection, clamp as clamp$1, signalHostElementDimensions, injectSurfaceColorPalette, injectFocusVisibleTracker, isOnHigherOverlayLayer, copyToClipboard, getFocusableElements, injectAnimatedBlockSize, injectObserveBreakpoint, applyHostListeners, dragGestureFrom, signalDeferredLoading, AnimatableDirective, ColorInteractiveContainerDirective, ColorInteractiveExcludeDirective, injectParentSurface, ColorInteractiveHasFocusDirective, createFlipAnimation, createFlipAnimationGroup, focusElement, isFocusable, htmlToMarkdown, isSafeLinkUrl, markdownToHtml, MARKDOWN_VERBATIM_ATTR, injectHasTouchInput, isSafeUrl, signalHostElementMutations, DragHandleDirective, ResizeHandlesComponent, numberBreakpointTransform, DEFAULT_OVERLAY_LAYER, injectSurfaceType, applyLinkBinding, applyHeadTitleBinding, injectColorPalette, injectViewportSize, injectFileDownload, injectRouterEvent, canUseSessionMemory, createSessionMemory, provideUnsavedChangesConfirm } from '@ethlete/core';
5
- import { NgTemplateOutlet, NgComponentOutlet, Location, DOCUMENT as DOCUMENT$1, isPlatformBrowser } from '@angular/common';
4
+ import { signalElementMutations, RuntimeError, injectHostElement, createComponentId, injectStyleManager, defineLabels, toProvideFn, toInjectFn, toToken, ProvideColorDirective, SurfaceInteractiveDirective, createCanAnimateSignal, ColorInteractiveDirective, injectSemanticColorTheme, injectColorThemes, injectLocale, defineStaticRootProvider, optionalBooleanAttribute as optionalBooleanAttribute$1, inferMimeType, mountVisuallyHidden, injectRenderer, ProvideSurfaceDirective, COLOR_PROVIDER, SURFACE_PROVIDER, injectSurfaceThemes, injectSurfaceThemesPrefix, injectSurfaceContextTracker, injectBoundaryElement, injectRootSurfaceTheme, ANIMATED_LIFECYCLE_TOKEN, injectDefaultSurfaceTheme, resolveAppRootColorProvider, resolveSurfaceByElevation, createCssSurfaceName, provideBoundaryElement, AnimatedLifecycleDirective, isElement, isHTMLElement, injectBreakpointObserver, hasAnchoredOverlayPositionExtras, equal, nextFrame, animationDebugLog, resolveOverlayLayer, defineRootProvider, injectOverlayRuntime, anchoredOverlayPosition, injectQueryParam, injectUrl, randomId, ScrollObserverDirective, signalElementScrollState, ScrollObserverStartDirective, ScrollObserverEndDirective, enableAnchoredOverlayPositionExtras, forceReflow, elementCanScroll, matchesReducedMotion, createSwipeTracker, applyHostListener, defineProvider, fromNextFrame, injectRoute, createUnsavedChangesTracker, createDocumentElementSignal, AnimatedIfDirective, signalElementDimensions, applyInitialFocus, syncSignal, AutoSurfaceDirective, setInputSignal, injectTemplateRef, signalHostElementScrollState, applyStructuredDataBinding, injectIsDocumentVisible, mountEasingTokens, typedBreakpointTransform, signalElementChildren, signalElementIntersection, signalHostAttributes, signalHostClasses, signalHostStyles, getScrollContainerTarget, getScrollItemTarget, getElementScrollCoordinates, provideBreakpointInstance, signalClasses, useCursorDragScroll, signalStyles, getScrollSnapTarget, injectPrefersReducedMotion, signalHostElementIntersection, clamp as clamp$1, signalHostElementDimensions, injectSurfaceColorPalette, injectFocusVisibleTracker, isOnHigherOverlayLayer, copyToClipboard, getFocusableElements, injectAnimatedBlockSize, injectObserveBreakpoint, applyHostListeners, dragGestureFrom, signalDeferredLoading, AnimatableDirective, ColorInteractiveContainerDirective, ColorInteractiveExcludeDirective, injectParentSurface, ColorInteractiveHasFocusDirective, createFlipAnimation, createFlipAnimationGroup, focusElement, isFocusable, htmlToMarkdown, isSafeLinkUrl, markdownToHtml, MARKDOWN_VERBATIM_ATTR, injectHasTouchInput, isSafeUrl, signalHostElementMutations, DragHandleDirective, ResizeHandlesComponent, numberBreakpointTransform, DEFAULT_OVERLAY_LAYER, injectSurfaceType, applyLinkBinding, applyHeadTitleBinding, injectColorPalette, injectViewportSize, injectFileDownload, injectRouterEvent, canUseSessionMemory, createSessionMemory, provideUnsavedChangesConfirm } from '@ethlete/core';
5
+ import { NgTemplateOutlet, NgComponentOutlet, isPlatformServer, Location, DOCUMENT as DOCUMENT$1, isPlatformBrowser } from '@angular/common';
6
6
  import { DomSanitizer } from '@angular/platform-browser';
7
7
  import { queryStateSignal, isQueryStateLoading, withArgs, createQueryErrorResponse, isQueryStateSuccess, isQueryStateFailure, executeUntilSettled$, extractQuery, createPagedQueryStack, queryComputed, isLegacyQuery, parseHttpErrorCodeToMessageEn, parseHttpErrorCodeToTitleEn, parseHttpErrorCodeToMessageDe, parseHttpErrorCodeToTitleDe, queryErrorMessages } from '@ethlete/query';
8
8
  import { DOUBLE_ELIMINATION_BRACKET_ROUND_TYPE, COMMON_BRACKET_ROUND_TYPE, BracketRuntimeError, BRACKET_ERROR_CODES, SWISS_BRACKET_ROUND_TYPE, SINGLE_ELIMINATION_BRACKET_ROUND_TYPE, TOURNAMENT_MODE, BRACKET_DATA_LAYOUT, resolveBracketLayout as resolveBracketLayout$1, createBracket, createPlaceholderBracketSource, drawMan, createDoubleEliminationGrid, ɵcreateStackedDoubleEliminationGrid as _createStackedDoubleEliminationGrid, createSingleEliminationGrid, generateBracketRoundSwissGroupMaps, createSwissGrid, drawSwissMan, standingPickStartOrder } from '@ethlete/bracket';
@@ -1791,7 +1791,13 @@ const ACCORDION_IMPORTS = [
1791
1791
  const DEFAULT_AVATAR_LABELS = {
1792
1792
  more: (count) => `${count} more`,
1793
1793
  };
1794
- const AVATAR_LABELS_DEF = /* @__PURE__ */ defineLabels('AVATAR_LABELS', DEFAULT_AVATAR_LABELS);
1794
+ /** The built-in German labels, used when the current locale is a German one. */
1795
+ const GERMAN_AVATAR_LABELS = {
1796
+ more: (count) => `${count} weitere`,
1797
+ };
1798
+ /** The label set for a locale. Anything other than English and German needs {@link provideAvatarLabels}. */
1799
+ const avatarLabelsForLocale = (locale) => locale.toLowerCase().startsWith('de') ? GERMAN_AVATAR_LABELS : DEFAULT_AVATAR_LABELS;
1800
+ const AVATAR_LABELS_DEF = /* @__PURE__ */ defineLabels('AVATAR_LABELS', avatarLabelsForLocale);
1795
1801
  /**
1796
1802
  * Localize an avatar group's strings for everything below this injector, and read the set in effect here as a
1797
1803
  * signal. Partial - whatever you leave out keeps its {@link DEFAULT_AVATAR_LABELS} value. See {@link defineLabels}
@@ -2040,7 +2046,7 @@ class BadgeComponent {
2040
2046
  <ng-template #iconTpl>
2041
2047
  <ng-content select="[etIcon]" />
2042
2048
  </ng-template>
2043
- `, isInline: true, styles: ["@layer components{@property --et-badge-gap{syntax: \"<length>\"; inherits: true; initial-value: 4px;}@property --et-badge-padding-inline{syntax: \"<length>\"; inherits: true; initial-value: 8px;}@property --et-badge-min-block-size{syntax: \"<length>\"; inherits: true; initial-value: 20px;}@property --et-badge-border-radius{syntax: \"<length>\"; inherits: true; initial-value: 999px;}@property --et-badge-font-size{syntax: \"<length>\"; inherits: true; initial-value: 11px;}@property --et-badge-font-weight{syntax: \"<number>\"; inherits: true; initial-value: 600;}.et-badge{--_et-badge-background: rgb(var(--et-theme-color-primary-rgb) / var(--et-theme-color-primary-opacity));--_et-badge-color: var(--et-theme-color-ink-solid);--_et-badge-border-color: transparent;display:inline-flex;align-items:center;justify-content:center;gap:var(--et-badge-gap);padding-inline:var(--et-badge-padding-inline);min-block-size:var(--et-badge-min-block-size);border-radius:var(--et-badge-border-radius);font-size:var(--et-badge-font-size);font-weight:var(--et-badge-font-weight);line-height:1.4;box-sizing:border-box;max-inline-size:100%;background:var(--_et-badge-background);color:var(--_et-badge-color);border:1px solid var(--_et-badge-border-color);white-space:nowrap;-webkit-user-select:none;user-select:none}.et-badge:where([data-variant=filled]){--et-theme-color-primary-opacity: 1;--_et-badge-color: var(--et-theme-color-on-primary);--_et-badge-border-color: transparent}.et-badge:where([data-variant=tonal]){--et-theme-color-primary-opacity: .16;--_et-badge-border-color: transparent}.et-badge:where([data-variant=outline]){--et-theme-color-primary-opacity: 0;--_et-badge-border-color: var(--et-theme-color-ink-solid)}.et-badge:where([data-size=sm]){--et-badge-gap: 3px;--et-badge-padding-inline: 6px;--et-badge-min-block-size: 16px;--et-badge-font-size: 10px}.et-badge:where([data-size=lg]){--et-badge-gap: 5px;--et-badge-padding-inline: 10px;--et-badge-min-block-size: 24px;--et-badge-font-size: 12px}.et-badge .et-badge-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.et-badge .et-badge-icon:empty{display:none}.et-badge .et-badge-icon .et-icon{inline-size:1em;block-size:1em}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None }); }
2049
+ `, isInline: true, styles: ["@layer components{@property --et-badge-gap{syntax: \"<length>\"; inherits: true; initial-value: 4px;}@property --et-badge-padding-inline{syntax: \"<length>\"; inherits: true; initial-value: 8px;}@property --et-badge-min-block-size{syntax: \"<length>\"; inherits: true; initial-value: 20px;}@property --et-badge-border-radius{syntax: \"<length>\"; inherits: true; initial-value: 999px;}@property --et-badge-font-size{syntax: \"<length>\"; inherits: true; initial-value: 11px;}@property --et-badge-font-weight{syntax: \"<number>\"; inherits: true; initial-value: 600;}.et-badge{--_et-badge-background: rgb(var(--et-theme-color-primary-rgb) / var(--et-theme-color-primary-opacity));--_et-badge-color: var(--et-theme-color-ink-solid);--_et-badge-border-color: transparent;display:inline-flex;align-self:start;justify-self:start;align-items:center;justify-content:center;gap:var(--et-badge-gap);padding-inline:var(--et-badge-padding-inline);min-block-size:var(--et-badge-min-block-size);border-radius:var(--et-badge-border-radius);font-size:var(--et-badge-font-size);font-weight:var(--et-badge-font-weight);line-height:1.4;box-sizing:border-box;max-inline-size:100%;background:var(--_et-badge-background);color:var(--_et-badge-color);border:1px solid var(--_et-badge-border-color);white-space:nowrap;-webkit-user-select:none;user-select:none}.et-badge:where([data-variant=filled]){--et-theme-color-primary-opacity: 1;--_et-badge-color: var(--et-theme-color-on-primary);--_et-badge-border-color: transparent}.et-badge:where([data-variant=tonal]){--et-theme-color-primary-opacity: .16;--_et-badge-border-color: transparent}.et-badge:where([data-variant=outline]){--et-theme-color-primary-opacity: 0;--_et-badge-border-color: var(--et-theme-color-ink-solid)}.et-badge:where([data-size=sm]){--et-badge-gap: 3px;--et-badge-padding-inline: 6px;--et-badge-min-block-size: 16px;--et-badge-font-size: 10px}.et-badge:where([data-size=lg]){--et-badge-gap: 5px;--et-badge-padding-inline: 10px;--et-badge-min-block-size: 24px;--et-badge-font-size: 12px}.et-badge .et-badge-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.et-badge .et-badge-icon:empty{display:none}.et-badge .et-badge-icon .et-icon{inline-size:1em;block-size:1em}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None }); }
2044
2050
  }
2045
2051
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: BadgeComponent, decorators: [{
2046
2052
  type: Component,
@@ -2072,7 +2078,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
2072
2078
  '[attr.data-variant]': 'variant()',
2073
2079
  '[attr.data-size]': 'size()',
2074
2080
  '[attr.data-icon-alignment]': 'iconAlignment()',
2075
- }, styles: ["@layer components{@property --et-badge-gap{syntax: \"<length>\"; inherits: true; initial-value: 4px;}@property --et-badge-padding-inline{syntax: \"<length>\"; inherits: true; initial-value: 8px;}@property --et-badge-min-block-size{syntax: \"<length>\"; inherits: true; initial-value: 20px;}@property --et-badge-border-radius{syntax: \"<length>\"; inherits: true; initial-value: 999px;}@property --et-badge-font-size{syntax: \"<length>\"; inherits: true; initial-value: 11px;}@property --et-badge-font-weight{syntax: \"<number>\"; inherits: true; initial-value: 600;}.et-badge{--_et-badge-background: rgb(var(--et-theme-color-primary-rgb) / var(--et-theme-color-primary-opacity));--_et-badge-color: var(--et-theme-color-ink-solid);--_et-badge-border-color: transparent;display:inline-flex;align-items:center;justify-content:center;gap:var(--et-badge-gap);padding-inline:var(--et-badge-padding-inline);min-block-size:var(--et-badge-min-block-size);border-radius:var(--et-badge-border-radius);font-size:var(--et-badge-font-size);font-weight:var(--et-badge-font-weight);line-height:1.4;box-sizing:border-box;max-inline-size:100%;background:var(--_et-badge-background);color:var(--_et-badge-color);border:1px solid var(--_et-badge-border-color);white-space:nowrap;-webkit-user-select:none;user-select:none}.et-badge:where([data-variant=filled]){--et-theme-color-primary-opacity: 1;--_et-badge-color: var(--et-theme-color-on-primary);--_et-badge-border-color: transparent}.et-badge:where([data-variant=tonal]){--et-theme-color-primary-opacity: .16;--_et-badge-border-color: transparent}.et-badge:where([data-variant=outline]){--et-theme-color-primary-opacity: 0;--_et-badge-border-color: var(--et-theme-color-ink-solid)}.et-badge:where([data-size=sm]){--et-badge-gap: 3px;--et-badge-padding-inline: 6px;--et-badge-min-block-size: 16px;--et-badge-font-size: 10px}.et-badge:where([data-size=lg]){--et-badge-gap: 5px;--et-badge-padding-inline: 10px;--et-badge-min-block-size: 24px;--et-badge-font-size: 12px}.et-badge .et-badge-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.et-badge .et-badge-icon:empty{display:none}.et-badge .et-badge-icon .et-icon{inline-size:1em;block-size:1em}}\n"] }]
2081
+ }, styles: ["@layer components{@property --et-badge-gap{syntax: \"<length>\"; inherits: true; initial-value: 4px;}@property --et-badge-padding-inline{syntax: \"<length>\"; inherits: true; initial-value: 8px;}@property --et-badge-min-block-size{syntax: \"<length>\"; inherits: true; initial-value: 20px;}@property --et-badge-border-radius{syntax: \"<length>\"; inherits: true; initial-value: 999px;}@property --et-badge-font-size{syntax: \"<length>\"; inherits: true; initial-value: 11px;}@property --et-badge-font-weight{syntax: \"<number>\"; inherits: true; initial-value: 600;}.et-badge{--_et-badge-background: rgb(var(--et-theme-color-primary-rgb) / var(--et-theme-color-primary-opacity));--_et-badge-color: var(--et-theme-color-ink-solid);--_et-badge-border-color: transparent;display:inline-flex;align-self:start;justify-self:start;align-items:center;justify-content:center;gap:var(--et-badge-gap);padding-inline:var(--et-badge-padding-inline);min-block-size:var(--et-badge-min-block-size);border-radius:var(--et-badge-border-radius);font-size:var(--et-badge-font-size);font-weight:var(--et-badge-font-weight);line-height:1.4;box-sizing:border-box;max-inline-size:100%;background:var(--_et-badge-background);color:var(--_et-badge-color);border:1px solid var(--_et-badge-border-color);white-space:nowrap;-webkit-user-select:none;user-select:none}.et-badge:where([data-variant=filled]){--et-theme-color-primary-opacity: 1;--_et-badge-color: var(--et-theme-color-on-primary);--_et-badge-border-color: transparent}.et-badge:where([data-variant=tonal]){--et-theme-color-primary-opacity: .16;--_et-badge-border-color: transparent}.et-badge:where([data-variant=outline]){--et-theme-color-primary-opacity: 0;--_et-badge-border-color: var(--et-theme-color-ink-solid)}.et-badge:where([data-size=sm]){--et-badge-gap: 3px;--et-badge-padding-inline: 6px;--et-badge-min-block-size: 16px;--et-badge-font-size: 10px}.et-badge:where([data-size=lg]){--et-badge-gap: 5px;--et-badge-padding-inline: 10px;--et-badge-min-block-size: 24px;--et-badge-font-size: 12px}.et-badge .et-badge-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.et-badge .et-badge-icon:empty{display:none}.et-badge .et-badge-icon .et-icon{inline-size:1em;block-size:1em}}\n"] }]
2076
2082
  }], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], iconAlignment: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconAlignment", required: false }] }] } });
2077
2083
 
2078
2084
  const BADGE_IMPORTS = [BadgeComponent];
@@ -2081,7 +2087,13 @@ const BADGE_IMPORTS = [BadgeComponent];
2081
2087
  const DEFAULT_BANNER_LABELS = {
2082
2088
  dismiss: 'Dismiss',
2083
2089
  };
2084
- const BANNER_LABELS_DEF = /* @__PURE__ */ defineLabels('BANNER_LABELS', DEFAULT_BANNER_LABELS);
2090
+ /** The built-in German labels, used when the current locale is a German one. */
2091
+ const GERMAN_BANNER_LABELS = {
2092
+ dismiss: 'Schließen',
2093
+ };
2094
+ /** The label set for a locale. Anything other than English and German needs {@link provideBannerLabels}. */
2095
+ const bannerLabelsForLocale = (locale) => locale.toLowerCase().startsWith('de') ? GERMAN_BANNER_LABELS : DEFAULT_BANNER_LABELS;
2096
+ const BANNER_LABELS_DEF = /* @__PURE__ */ defineLabels('BANNER_LABELS', bannerLabelsForLocale);
2085
2097
  /**
2086
2098
  * Localize a banner's strings for everything below this injector, and read the set in effect here as a
2087
2099
  * signal. Partial - whatever you leave out keeps its {@link DEFAULT_BANNER_LABELS} value. See {@link defineLabels}
@@ -2145,7 +2157,14 @@ const DEFAULT_LOADER_LABELS = {
2145
2157
  loading: 'Loading',
2146
2158
  loadingContent: 'Loading…',
2147
2159
  };
2148
- const LOADER_LABELS_DEF = /* @__PURE__ */ defineLabels('LOADER_LABELS', DEFAULT_LOADER_LABELS);
2160
+ /** The built-in German labels, used when the current locale is a German one. */
2161
+ const GERMAN_LOADER_LABELS = {
2162
+ loading: 'Lädt',
2163
+ loadingContent: 'Lade…',
2164
+ };
2165
+ /** The label set for a locale. Anything other than English and German needs {@link provideLoaderLabels}. */
2166
+ const loaderLabelsForLocale = (locale) => locale.toLowerCase().startsWith('de') ? GERMAN_LOADER_LABELS : DEFAULT_LOADER_LABELS;
2167
+ const LOADER_LABELS_DEF = /* @__PURE__ */ defineLabels('LOADER_LABELS', loaderLabelsForLocale);
2149
2168
  /**
2150
2169
  * Localize what loaders announce for everything below this injector, and read the set in effect here as
2151
2170
  * a signal. Partial - whatever you leave out keeps its {@link DEFAULT_LOADER_LABELS} value. See
@@ -3195,21 +3214,42 @@ const TIME_FORMAT = new InjectionToken('TIME_FORMAT', {
3195
3214
  providedIn: 'root',
3196
3215
  factory: () => 'HH:mm',
3197
3216
  });
3217
+ const DATE_LOCALE_SOURCE = new InjectionToken('DATE_LOCALE_SOURCE', {
3218
+ providedIn: 'root',
3219
+ factory: () => null,
3220
+ });
3221
+ const resolveDateLocale = (source, locale) => typeof source === 'function' ? source(locale) : source;
3198
3222
  /**
3199
3223
  * The date-fns `Locale` used for display formatting and calendar labels.
3200
3224
  * `null` falls back to date-fns' built-in default (en-US).
3201
3225
  *
3202
- * It does not follow `provideLocale()`: an app that sets `provideLocale('de')` must also
3203
- * `provideDateLocale(de)` - {@link injectDateLocale} warns in dev mode when it hasn't.
3226
+ * With a static `provideDateLocale(de)` it does not follow `provideLocale()`: an app that sets
3227
+ * `provideLocale('de')` must also `provideDateLocale(de)`, or pass a function to `provideDateLocale`.
3228
+ * {@link injectDateLocale} warns in dev mode when neither is set. For a function source this token holds
3229
+ * the locale resolved at first read; use {@link injectDateLocaleSignal} to follow later changes.
3204
3230
  */
3205
3231
  const DATE_LOCALE = new InjectionToken('DATE_LOCALE', {
3206
3232
  providedIn: 'root',
3207
- factory: () => null,
3233
+ factory: () => {
3234
+ const source = inject(DATE_LOCALE_SOURCE);
3235
+ const { currentLocale } = injectLocale();
3236
+ return untracked(() => resolveDateLocale(source, currentLocale()));
3237
+ },
3208
3238
  });
3209
3239
  const provideDateFormat = (format) => ({ provide: DATE_FORMAT, useValue: format });
3210
3240
  const provideDateTimeFormat = (format) => ({ provide: DATE_TIME_FORMAT, useValue: format });
3211
3241
  const provideTimeFormat = (format) => ({ provide: TIME_FORMAT, useValue: format });
3212
- const provideDateLocale = (locale) => ({ provide: DATE_LOCALE, useValue: locale });
3242
+ /**
3243
+ * Sets the date-fns locale of every date control. Pass a `Locale`, or a function `(locale) => Locale` that
3244
+ * is re-run whenever `injectLocale().currentLocale` changes so dates follow a live language switch.
3245
+ * A control's own `locale` input wins.
3246
+ *
3247
+ * @example
3248
+ * provideDateLocale((locale) => (locale.startsWith('de') ? de : enUS));
3249
+ */
3250
+ const provideDateLocale = (locale) => [
3251
+ { provide: DATE_LOCALE_SOURCE, useValue: locale },
3252
+ ];
3213
3253
  const DATE_TIME_ZONE_DEF = /* @__PURE__ */ defineStaticRootProvider(null, { name: 'DateTimeZone' });
3214
3254
  const provideDateTimeZoneValue = /* @__PURE__ */ toProvideFn(DATE_TIME_ZONE_DEF);
3215
3255
  /**
@@ -3224,13 +3264,17 @@ const injectDateFormat = () => inject(DATE_FORMAT);
3224
3264
  const injectDateTimeFormat = () => inject(DATE_TIME_FORMAT);
3225
3265
  const injectTimeFormat = () => inject(TIME_FORMAT);
3226
3266
  let warnedAboutMissingDateLocale = false;
3227
- const injectDateLocale = () => {
3228
- const dateLocale = inject(DATE_LOCALE);
3229
- if (ngDevMode && !dateLocale) {
3230
- const { currentLocale } = injectLocale();
3267
+ /** The date-fns locale as a signal that follows `injectLocale().currentLocale` for a function source. */
3268
+ const injectDateLocaleSignal = () => {
3269
+ const source = inject(DATE_LOCALE_SOURCE);
3270
+ const direct = inject(DATE_LOCALE);
3271
+ const { currentLocale } = injectLocale();
3272
+ const dateLocale = computed(() => (source === null ? direct : resolveDateLocale(source, currentLocale())), /* @ts-ignore */
3273
+ ...(ngDevMode ? [{ debugName: "dateLocale" }] : /* istanbul ignore next */ []));
3274
+ if (ngDevMode) {
3231
3275
  effect(() => {
3232
3276
  const locale = currentLocale();
3233
- if (warnedAboutMissingDateLocale || locale.toLowerCase().startsWith('en'))
3277
+ if (dateLocale() || warnedAboutMissingDateLocale || locale.toLowerCase().startsWith('en'))
3234
3278
  return;
3235
3279
  warnedAboutMissingDateLocale = true;
3236
3280
  console.warn(`[ethlete] provideLocale('${locale}') is set but DATE_LOCALE is not, so dates and calendar ` +
@@ -3240,6 +3284,10 @@ const injectDateLocale = () => {
3240
3284
  }
3241
3285
  return dateLocale;
3242
3286
  };
3287
+ const injectDateLocale = () => {
3288
+ const dateLocale = injectDateLocaleSignal();
3289
+ return untracked(dateLocale);
3290
+ };
3243
3291
 
3244
3292
  const NATIVELY_INTERACTIVE_TAGS = ['A', 'BUTTON'];
3245
3293
  const isNativelyInteractiveElement = (element) => NATIVELY_INTERACTIVE_TAGS.includes(element.tagName);
@@ -3276,7 +3324,39 @@ const DEFAULT_MATCH_LABELS = {
3276
3324
  gameScores: 'Games',
3277
3325
  gameScore: (game, score) => `Game ${game}: ${score}`,
3278
3326
  };
3279
- const MATCH_LABELS_DEF = /* @__PURE__ */ defineLabels('MATCH_LABELS', DEFAULT_MATCH_LABELS);
3327
+ /** The built-in German labels, used when the current locale is a German one. */
3328
+ const GERMAN_MATCH_LABELS = {
3329
+ tbd: 'Offen',
3330
+ live: 'Live',
3331
+ finished: 'Beendet',
3332
+ scheduled: 'Angesetzt',
3333
+ scoreSeparator: ' : ',
3334
+ resultName: ({ home, away, kind, winner, separator }) => {
3335
+ if (home === null || away === null)
3336
+ return winner ? `${winner} hat gewonnen` : 'Unentschieden';
3337
+ const pair = `${home}${separator}${away}`;
3338
+ return kind === 'points' ? `${pair} Punkte` : pair;
3339
+ },
3340
+ versus: 'gegen',
3341
+ outcomeWin: 'S',
3342
+ outcomeLoss: 'N',
3343
+ outcomeDraw: 'U',
3344
+ emblemAlt: (participant) => `Wappen von ${participant}`,
3345
+ seed: (seed) => `Setzplatz ${seed}`,
3346
+ matchNumber: (number) => `Spiel ${number}`,
3347
+ matchName: ({ home, away, result, startTime, status, label, labels }) => {
3348
+ const kickOff = status === 'live' ? null : startTime;
3349
+ const state = status === 'live' ? labels.live : status === 'finished' ? labels.finished : null;
3350
+ const pairing = `${home} ${labels.versus} ${away}`;
3351
+ const matchUp = label ? `${label}: ${pairing}` : pairing;
3352
+ return [matchUp, result, kickOff, state].filter(Boolean).join(', ');
3353
+ },
3354
+ gameScores: 'Spiele',
3355
+ gameScore: (game, score) => `Spiel ${game}: ${score}`,
3356
+ };
3357
+ /** The label set for a locale. Anything other than English and German needs {@link provideMatchLabels}. */
3358
+ const matchLabelsForLocale = (locale) => locale.toLowerCase().startsWith('de') ? GERMAN_MATCH_LABELS : DEFAULT_MATCH_LABELS;
3359
+ const MATCH_LABELS_DEF = /* @__PURE__ */ defineLabels('MATCH_LABELS', matchLabelsForLocale);
3280
3360
  /**
3281
3361
  * Localize the match components' strings for everything below this injector, and read the set in
3282
3362
  * effect here as a signal. Partial - whatever you leave out keeps its {@link DEFAULT_MATCH_LABELS}
@@ -3357,7 +3437,7 @@ class MatchCardDirective {
3357
3437
  constructor() {
3358
3438
  this.elementRef = inject(ElementRef);
3359
3439
  this.injectedLabels = injectMatchLabels();
3360
- this.dateLocale = injectDateLocale();
3440
+ this.dateLocale = injectDateLocaleSignal();
3361
3441
  /** The match to draw, already normalized - see {@link NormalizedMatch} and the `integrations/` adapters. */
3362
3442
  this.match = input.required(/* @ts-ignore */
3363
3443
  ...(ngDevMode ? [{ debugName: "match" }] : /* istanbul ignore next */ []));
@@ -3540,7 +3620,7 @@ class MatchCardDirective {
3540
3620
  if (!startTime || !isValid(startTime))
3541
3621
  return null;
3542
3622
  return format(startTime, this.startTimeFormat() ?? DEFAULT_MATCH_CARD_START_TIME_FORMAT, {
3543
- locale: this.dateLocale ?? undefined,
3623
+ locale: this.dateLocale() ?? undefined,
3544
3624
  });
3545
3625
  }, /* @ts-ignore */
3546
3626
  ...(ngDevMode ? [{ debugName: "formattedStartTime" }] : /* istanbul ignore next */ []));
@@ -4880,7 +4960,37 @@ const DEFAULT_BRACKET_LABELS = {
4880
4960
  pickCardPicked: 'Your pick',
4881
4961
  pickCardPredicted: 'Prediction',
4882
4962
  };
4883
- const BRACKET_LABELS_DEF = /* @__PURE__ */ defineLabels('BRACKET_LABELS', DEFAULT_BRACKET_LABELS);
4963
+ /** The built-in German labels, used when the current locale is a German one. */
4964
+ const GERMAN_BRACKET_LABELS = {
4965
+ roundMatchCount: (matches) => `${matches} ${matches === 1 ? 'Spiel' : 'Spiele'}`,
4966
+ winnersAdvance: (winners) => `${winners} ${winners === 1 ? 'Gewinner kommt weiter' : 'Gewinner kommen weiter'}`,
4967
+ continueLabel: (winners) => `${winners} ${winners === 1 ? 'Gewinner kommt' : 'Gewinner kommen'} in die nächste Runde`,
4968
+ champion: (participant) => `Turniersieger: ${participant}`,
4969
+ championPending: 'Turniersieger steht noch nicht fest',
4970
+ upperBracketSection: 'Winner Bracket',
4971
+ lowerBracketSection: 'Loser Bracket',
4972
+ finalsSection: 'Finale',
4973
+ slotMatchWinner: 'Sieger eines früheren Spiels',
4974
+ slotMatchLoser: 'Verlierer eines früheren Spiels',
4975
+ slotStandingRank: (standing, rank) => {
4976
+ if (standing && rank !== null)
4977
+ return `${standing} Platz ${rank}`;
4978
+ return standing ?? (rank === null ? 'Ein Tabellenplatz' : `Tabellenplatz ${rank}`);
4979
+ },
4980
+ slotSeed: (seed) => (seed === null ? 'Ein gesetzter Platz' : `Setzplatz ${seed}`),
4981
+ slotSwissBucket: 'Wird gelost, sobald die Runde angesetzt ist',
4982
+ slotBye: 'Freilos',
4983
+ slotExternal: 'Kommt aus einem anderen Wettbewerb',
4984
+ slotUnknown: 'Noch nicht bekannt',
4985
+ slotPredictEarlierRound: 'Zuerst die frühere Runde tippen',
4986
+ slotNotPredicted: 'Nicht getippt',
4987
+ participantsLegend: 'Teilnehmer',
4988
+ pickCardPicked: 'Auswahl',
4989
+ pickCardPredicted: 'Tipp',
4990
+ };
4991
+ /** The label set for a locale. Anything other than English and German needs {@link provideBracketLabels}. */
4992
+ const bracketLabelsForLocale = (locale) => locale.toLowerCase().startsWith('de') ? GERMAN_BRACKET_LABELS : DEFAULT_BRACKET_LABELS;
4993
+ const BRACKET_LABELS_DEF = /* @__PURE__ */ defineLabels('BRACKET_LABELS', bracketLabelsForLocale);
4884
4994
  /**
4885
4995
  * Localize the bracket's default cards for everything below this injector, and read the set in effect
4886
4996
  * here as a signal. Partial - whatever you leave out keeps its {@link DEFAULT_BRACKET_LABELS} value.
@@ -4977,7 +5087,7 @@ class ButtonComponent {
4977
5087
  <ng-template #iconTpl>
4978
5088
  <ng-content select="[etIcon]" />
4979
5089
  </ng-template>
4980
- `, isInline: true, styles: ["@layer components{.et-button{--_et-button-background: rgb(var(--et-theme-color-primary-rgb) / var(--et-theme-color-primary-opacity));--_et-button-color: var(--et-theme-color-on-primary);--_et-button-border-color: transparent;display:inline-flex;position:relative;align-items:center;justify-content:center;gap:var(--et-button-gap);background:var(--_et-button-background);color:var(--_et-button-color);border-radius:var(--et-button-border-radius);padding:var(--et-button-padding);font-size:var(--et-button-font-size);font-weight:var(--et-button-font-weight);border:var(--et-button-border-width, .1rem) solid var(--_et-button-border-color);box-shadow:var(--et-button-shadow, 0 0 #0000);cursor:var(--et-button-cursor);text-decoration:none;appearance:none;box-sizing:border-box;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;line-height:var(--et-button-line-height);white-space:nowrap}.et-button[data-can-animate]{transition:background .12s ease,color .12s ease,border-color .12s ease,box-shadow .12s ease,outline-color .12s ease,opacity .12s ease}.et-button:where([data-size=xs]){--et-button-padding: .2rem .8rem;--et-button-font-size: 1.2rem;--et-button-border-radius: .3rem;--et-button-gap: .4rem}.et-button:where([data-size=sm]){--et-button-padding: .4rem 1.2rem;--et-button-font-size: 1.4rem;--et-button-border-radius: .4rem;--et-button-gap: .5rem}.et-button:where([data-size=md]){--et-button-padding: .8rem 1.6rem;--et-button-font-size: 1.4rem;--et-button-border-radius: .4rem;--et-button-gap: .6rem}.et-button:where([data-size=lg]){--et-button-padding: 1rem 2rem;--et-button-font-size: 1.6rem;--et-button-border-radius: .6rem;--et-button-gap: .7rem}.et-button:where([data-size=xl]){--et-button-padding: 1.4rem 2.8rem;--et-button-font-size: 1.8rem;--et-button-border-radius: .8rem;--et-button-gap: .8rem}.et-button:where([disabled]),.et-button:where([aria-disabled=true]){cursor:not-allowed;pointer-events:none}.et-button:where([disabled],[aria-disabled=true]):where([data-variant=outline]),.et-button:where([disabled],[aria-disabled=true]):where([data-variant=tonal]),.et-button:where([disabled],[aria-disabled=true]):where([data-variant=transparent]),.et-button:where([disabled],[aria-disabled=true])[data-pressed=true]{opacity:var(--et-button-opacity-disabled)}.et-button:where([data-variant=outline]){--_et-button-background: rgb(var(--et-theme-color-primary-rgb) / var(--et-theme-color-primary-opacity));--_et-button-color: var(--et-theme-color-ink-solid);--_et-button-border-color: var(--et-theme-color-ink-solid)}.et-button[data-pressed=true]:where([data-pressed-variant=outline]){--et-theme-color-primary-opacity: 0;--_et-button-background: rgb(var(--et-theme-color-primary-rgb) / var(--et-theme-color-primary-opacity));--_et-button-color: var(--et-theme-color-ink-solid);--_et-button-border-color: var(--et-theme-color-ink-solid)}@media(hover:hover){.et-button[data-pressed=true]:where([data-pressed-variant=outline]):hover{--et-theme-color-primary-opacity: var(--et-button-variant-opacity-hover-delta)}}.et-button[data-pressed=true]:where([data-pressed-variant=outline]):focus-visible{--et-theme-color-primary-opacity: var(--et-button-variant-opacity-focus-delta)}.et-button[data-pressed=true]:where([data-pressed-variant=outline]):active{--et-theme-color-primary-opacity: var(--et-button-variant-opacity-active-delta)}.et-button[data-pressed=true]:where([data-pressed-variant=outline])[data-loading=true]:not([disabled],[aria-disabled=true]){--_et-button-color: var(--et-theme-color-primary-solid);--_et-button-border-color: var(--et-theme-color-primary-solid)}.et-button:where([data-variant=tonal]),.et-button[data-pressed=true]:where([data-pressed-variant=tonal]){--_et-button-background: rgb(var(--et-theme-color-primary-rgb) / var(--et-theme-color-primary-opacity));--_et-button-color: var(--et-theme-color-ink-solid);--_et-button-border-color: transparent}.et-button:where([data-variant=transparent]){--_et-button-background: rgb(var(--et-theme-color-primary-rgb) / var(--et-theme-color-primary-opacity));--_et-button-color: var(--et-theme-color-ink-solid);--_et-button-border-color: transparent}.et-button[data-pressed=true]:where([data-pressed-variant=filled]){--et-theme-color-primary-opacity: 1;--_et-button-background: rgb(var(--et-theme-color-primary-rgb) / var(--et-theme-color-primary-opacity));--_et-button-color: var(--et-theme-color-on-primary);--_et-button-border-color: transparent}@media(hover:hover){.et-button[data-pressed=true]:where([data-pressed-variant=filled]):hover{--et-theme-color-primary-opacity: 1}}.et-button[data-pressed=true]:where([data-pressed-variant=filled]):focus-visible{--et-theme-color-primary-opacity: 1}.et-button[data-pressed=true]:where([data-pressed-variant=filled]):active{--et-theme-color-primary-opacity: 1}.et-button .et-button-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:var(--et-button-icon-size, 1em);transition:opacity .12s ease}.et-button .et-button-icon:empty{display:none}.et-button .et-button-icon .et-icon{width:1em;height:1em}.et-button .et-button-contents{display:inline-flex;align-items:center;min-width:0;transition:opacity .12s ease}.et-button[data-loading=true] .et-button-icon,.et-button[data-loading=true] .et-button-contents{opacity:0}.et-button[data-loading=true] .et-button-loader{opacity:1}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SpinnerComponent, selector: "et-spinner", inputs: ["diameter", "strokeWidth", "track", "value"] }], encapsulation: i0.ViewEncapsulation.None }); }
5090
+ `, isInline: true, styles: ["@layer components{.et-button{--_et-button-background: rgb(var(--et-theme-color-primary-rgb) / var(--et-theme-color-primary-opacity));--_et-button-color: var(--et-theme-color-on-primary);--_et-button-border-color: transparent;--_et-button-gap: var(--et-button-gap);display:inline-flex;position:relative;align-items:center;justify-content:center;gap:var(--et-button-gap);background:var(--_et-button-background);color:var(--_et-button-color);border-radius:var(--et-button-border-radius);padding:var(--et-button-padding);font-size:var(--et-button-font-size);font-weight:var(--et-button-font-weight);border:var(--et-button-border-width, .1rem) solid var(--_et-button-border-color);box-shadow:var(--et-button-shadow, 0 0 #0000);cursor:var(--et-button-cursor);text-decoration:none;appearance:none;box-sizing:border-box;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;line-height:var(--et-button-line-height);white-space:nowrap}.et-button[data-can-animate]{transition:background .12s ease,color .12s ease,border-color .12s ease,box-shadow .12s ease,outline-color .12s ease,opacity .12s ease}.et-button:where([data-size=xs]){--et-button-padding: .2rem .8rem;--et-button-font-size: 1.2rem;--et-button-border-radius: .3rem;--et-button-gap: .4rem}.et-button:where([data-size=sm]){--et-button-padding: .4rem 1.2rem;--et-button-font-size: 1.4rem;--et-button-border-radius: .4rem;--et-button-gap: .5rem}.et-button:where([data-size=md]){--et-button-padding: .8rem 1.6rem;--et-button-font-size: 1.4rem;--et-button-border-radius: .4rem;--et-button-gap: .6rem}.et-button:where([data-size=lg]){--et-button-padding: 1rem 2rem;--et-button-font-size: 1.6rem;--et-button-border-radius: .6rem;--et-button-gap: .7rem}.et-button:where([data-size=xl]){--et-button-padding: 1.4rem 2.8rem;--et-button-font-size: 1.8rem;--et-button-border-radius: .8rem;--et-button-gap: .8rem}.et-button:where([disabled]),.et-button:where([aria-disabled=true]){cursor:not-allowed;pointer-events:none}.et-button:where([disabled],[aria-disabled=true]):where([data-variant=outline]),.et-button:where([disabled],[aria-disabled=true]):where([data-variant=tonal]),.et-button:where([disabled],[aria-disabled=true]):where([data-variant=transparent]),.et-button:where([disabled],[aria-disabled=true])[data-pressed=true]{opacity:var(--et-button-opacity-disabled)}.et-button:where([data-variant=outline]){--_et-button-background: rgb(var(--et-theme-color-primary-rgb) / var(--et-theme-color-primary-opacity));--_et-button-color: var(--et-theme-color-ink-solid);--_et-button-border-color: var(--et-theme-color-ink-solid)}.et-button[data-pressed=true]:where([data-pressed-variant=outline]){--et-theme-color-primary-opacity: 0;--_et-button-background: rgb(var(--et-theme-color-primary-rgb) / var(--et-theme-color-primary-opacity));--_et-button-color: var(--et-theme-color-ink-solid);--_et-button-border-color: var(--et-theme-color-ink-solid)}@media(hover:hover){.et-button[data-pressed=true]:where([data-pressed-variant=outline]):hover{--et-theme-color-primary-opacity: var(--et-button-variant-opacity-hover-delta)}}.et-button[data-pressed=true]:where([data-pressed-variant=outline]):focus-visible{--et-theme-color-primary-opacity: var(--et-button-variant-opacity-focus-delta)}.et-button[data-pressed=true]:where([data-pressed-variant=outline]):active{--et-theme-color-primary-opacity: var(--et-button-variant-opacity-active-delta)}.et-button[data-pressed=true]:where([data-pressed-variant=outline])[data-loading=true]:not([disabled],[aria-disabled=true]){--_et-button-color: var(--et-theme-color-primary-solid);--_et-button-border-color: var(--et-theme-color-primary-solid)}.et-button:where([data-variant=tonal]),.et-button[data-pressed=true]:where([data-pressed-variant=tonal]){--_et-button-background: rgb(var(--et-theme-color-primary-rgb) / var(--et-theme-color-primary-opacity));--_et-button-color: var(--et-theme-color-ink-solid);--_et-button-border-color: transparent}.et-button:where([data-variant=transparent]){--_et-button-background: rgb(var(--et-theme-color-primary-rgb) / var(--et-theme-color-primary-opacity));--_et-button-color: var(--et-theme-color-ink-solid);--_et-button-border-color: transparent}.et-button[data-pressed=true]:where([data-pressed-variant=filled]){--et-theme-color-primary-opacity: 1;--_et-button-background: rgb(var(--et-theme-color-primary-rgb) / var(--et-theme-color-primary-opacity));--_et-button-color: var(--et-theme-color-on-primary);--_et-button-border-color: transparent}@media(hover:hover){.et-button[data-pressed=true]:where([data-pressed-variant=filled]):hover{--et-theme-color-primary-opacity: 1}}.et-button[data-pressed=true]:where([data-pressed-variant=filled]):focus-visible{--et-theme-color-primary-opacity: 1}.et-button[data-pressed=true]:where([data-pressed-variant=filled]):active{--et-theme-color-primary-opacity: 1}.et-button .et-button-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:var(--et-button-icon-size, 1em);transition:opacity .12s ease}.et-button .et-button-icon:empty{display:none}.et-button .et-button-icon .et-icon{width:1em;height:1em}.et-button .et-button-contents{display:inline-flex;align-items:center;gap:var(--_et-button-gap);min-width:0;transition:opacity .12s ease}.et-button[data-loading=true] .et-button-icon,.et-button[data-loading=true] .et-button-contents{opacity:0}.et-button[data-loading=true] .et-button-loader{opacity:1}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SpinnerComponent, selector: "et-spinner", inputs: ["diameter", "strokeWidth", "track", "value"] }], encapsulation: i0.ViewEncapsulation.None }); }
4981
5091
  }
4982
5092
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ButtonComponent, decorators: [{
4983
5093
  type: Component,
@@ -5032,7 +5142,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
5032
5142
  '[attr.data-size]': 'size()',
5033
5143
  '[attr.data-pressed-variant]': 'pressedVariant()',
5034
5144
  '[attr.data-can-animate]': 'canAnimate.state() || null',
5035
- }, styles: ["@layer components{.et-button{--_et-button-background: rgb(var(--et-theme-color-primary-rgb) / var(--et-theme-color-primary-opacity));--_et-button-color: var(--et-theme-color-on-primary);--_et-button-border-color: transparent;display:inline-flex;position:relative;align-items:center;justify-content:center;gap:var(--et-button-gap);background:var(--_et-button-background);color:var(--_et-button-color);border-radius:var(--et-button-border-radius);padding:var(--et-button-padding);font-size:var(--et-button-font-size);font-weight:var(--et-button-font-weight);border:var(--et-button-border-width, .1rem) solid var(--_et-button-border-color);box-shadow:var(--et-button-shadow, 0 0 #0000);cursor:var(--et-button-cursor);text-decoration:none;appearance:none;box-sizing:border-box;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;line-height:var(--et-button-line-height);white-space:nowrap}.et-button[data-can-animate]{transition:background .12s ease,color .12s ease,border-color .12s ease,box-shadow .12s ease,outline-color .12s ease,opacity .12s ease}.et-button:where([data-size=xs]){--et-button-padding: .2rem .8rem;--et-button-font-size: 1.2rem;--et-button-border-radius: .3rem;--et-button-gap: .4rem}.et-button:where([data-size=sm]){--et-button-padding: .4rem 1.2rem;--et-button-font-size: 1.4rem;--et-button-border-radius: .4rem;--et-button-gap: .5rem}.et-button:where([data-size=md]){--et-button-padding: .8rem 1.6rem;--et-button-font-size: 1.4rem;--et-button-border-radius: .4rem;--et-button-gap: .6rem}.et-button:where([data-size=lg]){--et-button-padding: 1rem 2rem;--et-button-font-size: 1.6rem;--et-button-border-radius: .6rem;--et-button-gap: .7rem}.et-button:where([data-size=xl]){--et-button-padding: 1.4rem 2.8rem;--et-button-font-size: 1.8rem;--et-button-border-radius: .8rem;--et-button-gap: .8rem}.et-button:where([disabled]),.et-button:where([aria-disabled=true]){cursor:not-allowed;pointer-events:none}.et-button:where([disabled],[aria-disabled=true]):where([data-variant=outline]),.et-button:where([disabled],[aria-disabled=true]):where([data-variant=tonal]),.et-button:where([disabled],[aria-disabled=true]):where([data-variant=transparent]),.et-button:where([disabled],[aria-disabled=true])[data-pressed=true]{opacity:var(--et-button-opacity-disabled)}.et-button:where([data-variant=outline]){--_et-button-background: rgb(var(--et-theme-color-primary-rgb) / var(--et-theme-color-primary-opacity));--_et-button-color: var(--et-theme-color-ink-solid);--_et-button-border-color: var(--et-theme-color-ink-solid)}.et-button[data-pressed=true]:where([data-pressed-variant=outline]){--et-theme-color-primary-opacity: 0;--_et-button-background: rgb(var(--et-theme-color-primary-rgb) / var(--et-theme-color-primary-opacity));--_et-button-color: var(--et-theme-color-ink-solid);--_et-button-border-color: var(--et-theme-color-ink-solid)}@media(hover:hover){.et-button[data-pressed=true]:where([data-pressed-variant=outline]):hover{--et-theme-color-primary-opacity: var(--et-button-variant-opacity-hover-delta)}}.et-button[data-pressed=true]:where([data-pressed-variant=outline]):focus-visible{--et-theme-color-primary-opacity: var(--et-button-variant-opacity-focus-delta)}.et-button[data-pressed=true]:where([data-pressed-variant=outline]):active{--et-theme-color-primary-opacity: var(--et-button-variant-opacity-active-delta)}.et-button[data-pressed=true]:where([data-pressed-variant=outline])[data-loading=true]:not([disabled],[aria-disabled=true]){--_et-button-color: var(--et-theme-color-primary-solid);--_et-button-border-color: var(--et-theme-color-primary-solid)}.et-button:where([data-variant=tonal]),.et-button[data-pressed=true]:where([data-pressed-variant=tonal]){--_et-button-background: rgb(var(--et-theme-color-primary-rgb) / var(--et-theme-color-primary-opacity));--_et-button-color: var(--et-theme-color-ink-solid);--_et-button-border-color: transparent}.et-button:where([data-variant=transparent]){--_et-button-background: rgb(var(--et-theme-color-primary-rgb) / var(--et-theme-color-primary-opacity));--_et-button-color: var(--et-theme-color-ink-solid);--_et-button-border-color: transparent}.et-button[data-pressed=true]:where([data-pressed-variant=filled]){--et-theme-color-primary-opacity: 1;--_et-button-background: rgb(var(--et-theme-color-primary-rgb) / var(--et-theme-color-primary-opacity));--_et-button-color: var(--et-theme-color-on-primary);--_et-button-border-color: transparent}@media(hover:hover){.et-button[data-pressed=true]:where([data-pressed-variant=filled]):hover{--et-theme-color-primary-opacity: 1}}.et-button[data-pressed=true]:where([data-pressed-variant=filled]):focus-visible{--et-theme-color-primary-opacity: 1}.et-button[data-pressed=true]:where([data-pressed-variant=filled]):active{--et-theme-color-primary-opacity: 1}.et-button .et-button-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:var(--et-button-icon-size, 1em);transition:opacity .12s ease}.et-button .et-button-icon:empty{display:none}.et-button .et-button-icon .et-icon{width:1em;height:1em}.et-button .et-button-contents{display:inline-flex;align-items:center;min-width:0;transition:opacity .12s ease}.et-button[data-loading=true] .et-button-icon,.et-button[data-loading=true] .et-button-contents{opacity:0}.et-button[data-loading=true] .et-button-loader{opacity:1}}\n"] }]
5145
+ }, styles: ["@layer components{.et-button{--_et-button-background: rgb(var(--et-theme-color-primary-rgb) / var(--et-theme-color-primary-opacity));--_et-button-color: var(--et-theme-color-on-primary);--_et-button-border-color: transparent;--_et-button-gap: var(--et-button-gap);display:inline-flex;position:relative;align-items:center;justify-content:center;gap:var(--et-button-gap);background:var(--_et-button-background);color:var(--_et-button-color);border-radius:var(--et-button-border-radius);padding:var(--et-button-padding);font-size:var(--et-button-font-size);font-weight:var(--et-button-font-weight);border:var(--et-button-border-width, .1rem) solid var(--_et-button-border-color);box-shadow:var(--et-button-shadow, 0 0 #0000);cursor:var(--et-button-cursor);text-decoration:none;appearance:none;box-sizing:border-box;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;line-height:var(--et-button-line-height);white-space:nowrap}.et-button[data-can-animate]{transition:background .12s ease,color .12s ease,border-color .12s ease,box-shadow .12s ease,outline-color .12s ease,opacity .12s ease}.et-button:where([data-size=xs]){--et-button-padding: .2rem .8rem;--et-button-font-size: 1.2rem;--et-button-border-radius: .3rem;--et-button-gap: .4rem}.et-button:where([data-size=sm]){--et-button-padding: .4rem 1.2rem;--et-button-font-size: 1.4rem;--et-button-border-radius: .4rem;--et-button-gap: .5rem}.et-button:where([data-size=md]){--et-button-padding: .8rem 1.6rem;--et-button-font-size: 1.4rem;--et-button-border-radius: .4rem;--et-button-gap: .6rem}.et-button:where([data-size=lg]){--et-button-padding: 1rem 2rem;--et-button-font-size: 1.6rem;--et-button-border-radius: .6rem;--et-button-gap: .7rem}.et-button:where([data-size=xl]){--et-button-padding: 1.4rem 2.8rem;--et-button-font-size: 1.8rem;--et-button-border-radius: .8rem;--et-button-gap: .8rem}.et-button:where([disabled]),.et-button:where([aria-disabled=true]){cursor:not-allowed;pointer-events:none}.et-button:where([disabled],[aria-disabled=true]):where([data-variant=outline]),.et-button:where([disabled],[aria-disabled=true]):where([data-variant=tonal]),.et-button:where([disabled],[aria-disabled=true]):where([data-variant=transparent]),.et-button:where([disabled],[aria-disabled=true])[data-pressed=true]{opacity:var(--et-button-opacity-disabled)}.et-button:where([data-variant=outline]){--_et-button-background: rgb(var(--et-theme-color-primary-rgb) / var(--et-theme-color-primary-opacity));--_et-button-color: var(--et-theme-color-ink-solid);--_et-button-border-color: var(--et-theme-color-ink-solid)}.et-button[data-pressed=true]:where([data-pressed-variant=outline]){--et-theme-color-primary-opacity: 0;--_et-button-background: rgb(var(--et-theme-color-primary-rgb) / var(--et-theme-color-primary-opacity));--_et-button-color: var(--et-theme-color-ink-solid);--_et-button-border-color: var(--et-theme-color-ink-solid)}@media(hover:hover){.et-button[data-pressed=true]:where([data-pressed-variant=outline]):hover{--et-theme-color-primary-opacity: var(--et-button-variant-opacity-hover-delta)}}.et-button[data-pressed=true]:where([data-pressed-variant=outline]):focus-visible{--et-theme-color-primary-opacity: var(--et-button-variant-opacity-focus-delta)}.et-button[data-pressed=true]:where([data-pressed-variant=outline]):active{--et-theme-color-primary-opacity: var(--et-button-variant-opacity-active-delta)}.et-button[data-pressed=true]:where([data-pressed-variant=outline])[data-loading=true]:not([disabled],[aria-disabled=true]){--_et-button-color: var(--et-theme-color-primary-solid);--_et-button-border-color: var(--et-theme-color-primary-solid)}.et-button:where([data-variant=tonal]),.et-button[data-pressed=true]:where([data-pressed-variant=tonal]){--_et-button-background: rgb(var(--et-theme-color-primary-rgb) / var(--et-theme-color-primary-opacity));--_et-button-color: var(--et-theme-color-ink-solid);--_et-button-border-color: transparent}.et-button:where([data-variant=transparent]){--_et-button-background: rgb(var(--et-theme-color-primary-rgb) / var(--et-theme-color-primary-opacity));--_et-button-color: var(--et-theme-color-ink-solid);--_et-button-border-color: transparent}.et-button[data-pressed=true]:where([data-pressed-variant=filled]){--et-theme-color-primary-opacity: 1;--_et-button-background: rgb(var(--et-theme-color-primary-rgb) / var(--et-theme-color-primary-opacity));--_et-button-color: var(--et-theme-color-on-primary);--_et-button-border-color: transparent}@media(hover:hover){.et-button[data-pressed=true]:where([data-pressed-variant=filled]):hover{--et-theme-color-primary-opacity: 1}}.et-button[data-pressed=true]:where([data-pressed-variant=filled]):focus-visible{--et-theme-color-primary-opacity: 1}.et-button[data-pressed=true]:where([data-pressed-variant=filled]):active{--et-theme-color-primary-opacity: 1}.et-button .et-button-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:var(--et-button-icon-size, 1em);transition:opacity .12s ease}.et-button .et-button-icon:empty{display:none}.et-button .et-button-icon .et-icon{width:1em;height:1em}.et-button .et-button-contents{display:inline-flex;align-items:center;gap:var(--_et-button-gap);min-width:0;transition:opacity .12s ease}.et-button[data-loading=true] .et-button-icon,.et-button[data-loading=true] .et-button-contents{opacity:0}.et-button[data-loading=true] .et-button-loader{opacity:1}}\n"] }]
5036
5146
  }], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], iconAlignment: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconAlignment", required: false }] }] } });
5037
5147
 
5038
5148
  /**
@@ -6916,7 +7026,15 @@ const DEFAULT_ALERT_DIALOG_LABELS = {
6916
7026
  cancel: 'Cancel',
6917
7027
  acknowledge: 'OK',
6918
7028
  };
6919
- const ALERT_DIALOG_LABELS_DEF = /* @__PURE__ */ defineLabels('ALERT_DIALOG_LABELS', DEFAULT_ALERT_DIALOG_LABELS);
7029
+ /** The built-in German labels, used when the current locale is a German one. */
7030
+ const GERMAN_ALERT_DIALOG_LABELS = {
7031
+ confirm: 'Bestätigen',
7032
+ cancel: 'Abbrechen',
7033
+ acknowledge: 'OK',
7034
+ };
7035
+ /** The label set for a locale. Anything other than English and German needs {@link provideAlertDialogLabels}. */
7036
+ const alertDialogLabelsForLocale = (locale) => locale.toLowerCase().startsWith('de') ? GERMAN_ALERT_DIALOG_LABELS : DEFAULT_ALERT_DIALOG_LABELS;
7037
+ const ALERT_DIALOG_LABELS_DEF = /* @__PURE__ */ defineLabels('ALERT_DIALOG_LABELS', alertDialogLabelsForLocale);
6920
7038
  /**
6921
7039
  * Localize the confirm and alert dialog actions for everything below this injector, and read the set in effect here
6922
7040
  * as a signal. Partial - whatever you leave out keeps its {@link DEFAULT_ALERT_DIALOG_LABELS} value. See
@@ -6943,6 +7061,7 @@ const OVERLAY_ERROR_CODES = {
6943
7061
  MISSING_ANIMATION_ORIGIN: 1209,
6944
7062
  EMPTY_STRATEGIES: 1210,
6945
7063
  STRATEGY_ONLY_OPTION: 1211,
7064
+ ARROW_WITHOUT_POSITION_EXTRAS: 1212,
6946
7065
  };
6947
7066
 
6948
7067
  const OVERLAY_REF = new InjectionToken('OverlayRef');
@@ -7104,6 +7223,7 @@ class OverlayContainerComponent {
7104
7223
  this.document = inject(DOCUMENT);
7105
7224
  this.renderer = injectRenderer();
7106
7225
  this.rootBoundary = injectBoundaryElement();
7226
+ this.rootSurfaceTheme = injectRootSurfaceTheme();
7107
7227
  this.component = input.required(/* @ts-ignore */
7108
7228
  ...(ngDevMode ? [{ debugName: "component" }] : /* istanbul ignore next */ []));
7109
7229
  this.componentBindings = input(undefined, /* @ts-ignore */
@@ -7123,30 +7243,52 @@ class OverlayContainerComponent {
7123
7243
  this.ownColorProvider.syncWithProvider(contextColorProvider);
7124
7244
  }
7125
7245
  if (this.surfaceThemes) {
7126
- const parentSurface = this.resolveOriginSurface() ?? this.parentDiSurface();
7127
- const parentType = parentSurface?.type ?? this.rootSurfaceType();
7246
+ const readParentSurface = () => {
7247
+ const surface = this.resolveOriginSurface() ?? this.parentDiSurface();
7248
+ return { type: surface?.type ?? this.rootSurfaceType(), elevation: surface?.elevation ?? null };
7249
+ };
7250
+ const parentSurface = signal(readParentSurface(), { ...(ngDevMode ? { debugName: "parentSurface" } : /* istanbul ignore next */ {}), equal: (a, b) => a.type === b.type && a.elevation === b.elevation });
7128
7251
  const surfaceThemes = this.surfaceThemes;
7129
7252
  const hasBackdrop = computed(() => this.mountedHasBackdrop?.() ?? resolveOverlayHasBackdrop(this.overlayRef.config), /* @ts-ignore */
7130
7253
  ...(ngDevMode ? [{ debugName: "hasBackdrop" }] : /* istanbul ignore next */ []));
7131
- const elevation = computed(() => (hasBackdrop() || !parentSurface ? 1 : parentSurface.elevation + 1), /* @ts-ignore */
7132
- ...(ngDevMode ? [{ debugName: "elevation" }] : /* istanbul ignore next */ []));
7254
+ const placement = computed(() => {
7255
+ const { type, elevation } = parentSurface();
7256
+ return { type, level: hasBackdrop() || elevation === null ? 1 : elevation + 1 };
7257
+ }, /* @ts-ignore */
7258
+ ...(ngDevMode ? [{ debugName: "placement" }] : /* istanbul ignore next */ []));
7133
7259
  let unregister = null;
7134
- const applyElevation = (level) => {
7135
- const resolved = resolveSurfaceByElevation(surfaceThemes, parentType, level);
7260
+ const applyPlacement = ({ type, level }) => {
7261
+ const resolved = resolveSurfaceByElevation(surfaceThemes, type, level);
7136
7262
  if (resolved) {
7137
7263
  this.ownSurfaceProvider.forceSurface(resolved.name);
7138
7264
  }
7139
7265
  unregister?.();
7140
- unregister = this.surfaceContextTracker.register(parentType, level, this.elementRef.nativeElement);
7266
+ unregister = this.surfaceContextTracker.register(type, level, this.elementRef.nativeElement);
7141
7267
  };
7142
- let appliedElevation = untracked(elevation);
7143
- applyElevation(appliedElevation);
7268
+ let applied = untracked(placement);
7269
+ applyPlacement(applied);
7144
7270
  effect(() => {
7145
- const level = elevation();
7146
- if (level === appliedElevation)
7271
+ const next = placement();
7272
+ if (next.type === applied.type && next.level === applied.level)
7147
7273
  return;
7148
- appliedElevation = level;
7149
- untracked(() => applyElevation(level));
7274
+ applied = next;
7275
+ untracked(() => applyPlacement(next));
7276
+ });
7277
+ const originClassChanges = signal(0, /* @ts-ignore */
7278
+ ...(ngDevMode ? [{ debugName: "originClassChanges" }] : /* istanbul ignore next */ []));
7279
+ const originSurfaceElement = this.resolveOriginSurface()?.element;
7280
+ if (originSurfaceElement) {
7281
+ // eslint-disable-next-line ethlete/no-native-observers -- signalElementMutations adds ~0.9 kB gz to every overlay bundle
7282
+ const observer = new MutationObserver(() => originClassChanges.update((count) => count + 1));
7283
+ observer.observe(originSurfaceElement, { attributes: true, attributeFilter: ['class'] });
7284
+ this.destroyRef.onDestroy(() => observer.disconnect());
7285
+ }
7286
+ // The origin surface is read from DOM classes, which only reflect a provider change after the render.
7287
+ afterRenderEffect(() => {
7288
+ this.parentSurfaceProvider?.activeTheme();
7289
+ this.rootSurfaceTheme();
7290
+ originClassChanges();
7291
+ untracked(() => parentSurface.set(readParentSurface()));
7150
7292
  });
7151
7293
  this.destroyRef.onDestroy(() => unregister?.());
7152
7294
  }
@@ -7236,11 +7378,11 @@ class OverlayContainerComponent {
7236
7378
  for (const theme of themes) {
7237
7379
  themeByClass.set(`${prefix}-surface--${createCssSurfaceName(theme.name)}`, theme);
7238
7380
  }
7239
- for (let el = origin; el; el = el.parentElement) {
7381
+ for (let el = origin instanceof HTMLElement ? origin : origin.parentElement; el; el = el.parentElement) {
7240
7382
  for (const cls of Array.from(el.classList)) {
7241
7383
  const theme = themeByClass.get(cls);
7242
7384
  if (theme)
7243
- return { elevation: theme.elevation, type: theme.type };
7385
+ return { elevation: theme.elevation, type: theme.type, element: el };
7244
7386
  }
7245
7387
  }
7246
7388
  return null;
@@ -7288,14 +7430,14 @@ class OverlayContainerComponent {
7288
7430
  return findPainted(content, 1) ?? host;
7289
7431
  }
7290
7432
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: OverlayContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7291
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: OverlayContainerComponent, isStandalone: true, selector: "et-overlay-container", inputs: { component: { classPropertyName: "component", publicName: "component", isSignal: true, isRequired: true, transformFunction: null }, componentBindings: { classPropertyName: "componentBindings", publicName: "componentBindings", isSignal: true, isRequired: false, transformFunction: null }, componentDirectives: { classPropertyName: "componentDirectives", publicName: "componentDirectives", isSignal: true, isRequired: false, transformFunction: null }, renderArrow: { classPropertyName: "renderArrow", publicName: "renderArrow", isSignal: true, isRequired: false, transformFunction: null }, renderDragHandle: { classPropertyName: "renderDragHandle", publicName: "renderDragHandle", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.et-with-default-animation": "!overlayRef.config.customAnimated" }, classAttribute: "et-overlay" }, providers: [provideBoundaryElement()], viewQueries: [{ propertyName: "contentOutlet", first: true, predicate: ["contentOutlet"], descendants: true, read: ViewContainerRef, isSignal: true }], hostDirectives: [{ directive: i1.AnimatedLifecycleDirective }, { directive: i1.ProvideColorDirective }, { directive: i1.ProvideSurfaceDirective }], ngImport: i0, template: "@if (renderDragHandle()) {\n <div class=\"et-overlay-container-drag-handle\"></div>\n}\n<ng-container #contentOutlet />\n@if (renderArrow()) {\n <div class=\"et-overlay-arrow\" et-floating-arrow></div>\n}\n", styles: ["@layer components{.et-overlay{--et-overlay-padding-inline: 16px;--et-overlay-padding-block: 16px;--et-overlay-header-padding-block-end: 16px;--et-overlay-body-padding-block: 0;--et-overlay-footer-padding-block-start: 16px;--et-overlay-body-divider-color: var(--et-surface-border-solid, #565656);--et-overlay-body-min-block-size: 100px;--et-overlay-surface-background: var(--et-surface-background-solid, rgb(32 32 32));--et-overlay-surface-color: var(--et-surface-color-solid, rgb(244 244 245));--et-overlay-surface-border-color: var(--et-surface-border-solid, rgb(255 255 255 / .1));--et-overlay-surface-border-width: .1rem;--_et-overlay-radius: var(--et-overlay-radius, 1.6rem);position:relative;display:grid;grid-template-rows:minmax(0,1fr);overflow:hidden;pointer-events:all;outline:none;box-sizing:border-box}.et-overlay>:not(.et-overlay-container-drag-handle):not(.et-overlay-arrow){overflow:auto;border-radius:inherit}.et-overlay>:not(.et-overlay-container-drag-handle):not(.et-overlay-arrow):not(.et-overlay-main){display:grid}.et-overlay>:not(.et-overlay-container-drag-handle):not(.et-overlay-arrow):not(.et-overlay-main):has(.et-overlay-router-outlet-host){grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.et-overlay>:not(.et-overlay-container-drag-handle):not(.et-overlay-arrow):not(.et-overlay-main):has(.et-overlay-sidebar--visible){grid-template-columns:auto minmax(0,1fr)}.et-overlay.et-overlay--anchored,.et-overlay.et-overlay--centered{overflow:visible;background:transparent}:is(.et-overlay.et-overlay--anchored,.et-overlay.et-overlay--centered)>:not(.et-overlay-container-drag-handle):not(.et-overlay-arrow){display:block;overflow:visible}.et-overlay.et-overlay--dialog,.et-overlay.et-overlay--anchored-dialog,.et-overlay.et-overlay--full-screen-dialog,.et-overlay.et-overlay--bottom-sheet,.et-overlay.et-overlay--top-sheet,.et-overlay.et-overlay--left-sheet,.et-overlay.et-overlay--right-sheet{background-color:var(--et-overlay-surface-background);color:var(--et-overlay-surface-color)}.et-overlay.et-overlay--dialog,.et-overlay.et-overlay--anchored-dialog{border:var(--et-overlay-surface-border-width) solid var(--et-overlay-surface-border-color);border-radius:var(--_et-overlay-radius)}.et-overlay.et-overlay--anchored-dialog{--_et-overlay-radius: var(--et-overlay-radius, 1.2rem)}.et-overlay.et-overlay--bottom-sheet{border:var(--et-overlay-surface-border-width) solid var(--et-overlay-surface-border-color);border-block-end:none;border-start-start-radius:var(--_et-overlay-radius);border-start-end-radius:var(--_et-overlay-radius)}.et-overlay.et-overlay--top-sheet{border:var(--et-overlay-surface-border-width) solid var(--et-overlay-surface-border-color);border-block-start:none;border-end-start-radius:var(--_et-overlay-radius);border-end-end-radius:var(--_et-overlay-radius)}.et-overlay.et-overlay--left-sheet{border-inline-end:var(--et-overlay-surface-border-width) solid var(--et-overlay-surface-border-color);border-start-end-radius:var(--_et-overlay-radius);border-end-end-radius:var(--_et-overlay-radius)}.et-overlay.et-overlay--right-sheet{border-inline-start:var(--et-overlay-surface-border-width) solid var(--et-overlay-surface-border-color);border-start-start-radius:var(--_et-overlay-radius);border-end-start-radius:var(--_et-overlay-radius)}.et-overlay.et-overlay--bottom-sheet .et-overlay-container-drag-handle{grid-template-rows:auto minmax(0,1fr);display:flex}.et-overlay:has(.et-overlay-main){overflow:visible}.et-overlay-container-drag-handle{block-size:var(--_et-overlay-drag-handle-block-size);margin-block:var(--_et-overlay-drag-handle-block-margin);display:none;justify-content:center}.et-overlay-container-drag-handle:before{content:\"\";position:static;inline-size:var(--_et-overlay-drag-handle-inline-size);block-size:var(--_et-overlay-drag-handle-block-size);background-color:var(--_et-overlay-drag-handle-color);border-radius:var(--_et-overlay-drag-handle-radius)}.et-overlay-runtime-backdrop{--et-overlay-backdrop-color: rgb(var(--et-scrim-color-rgb, 0 0 0) / .32);background-color:var(--et-overlay-backdrop-color);opacity:0;transition:opacity .2s linear}.et-overlay-runtime-backdrop.et-overlay-backdrop--visible{opacity:1}.et-overlay-backdrop--hidden{display:none!important}.et-force-invisible{visibility:hidden!important}}\n"], encapsulation: i0.ViewEncapsulation.None }); }
7433
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: OverlayContainerComponent, isStandalone: true, selector: "et-overlay-container", inputs: { component: { classPropertyName: "component", publicName: "component", isSignal: true, isRequired: true, transformFunction: null }, componentBindings: { classPropertyName: "componentBindings", publicName: "componentBindings", isSignal: true, isRequired: false, transformFunction: null }, componentDirectives: { classPropertyName: "componentDirectives", publicName: "componentDirectives", isSignal: true, isRequired: false, transformFunction: null }, renderArrow: { classPropertyName: "renderArrow", publicName: "renderArrow", isSignal: true, isRequired: false, transformFunction: null }, renderDragHandle: { classPropertyName: "renderDragHandle", publicName: "renderDragHandle", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.et-with-default-animation": "!overlayRef.config.customAnimated" }, classAttribute: "et-overlay" }, providers: [provideBoundaryElement()], viewQueries: [{ propertyName: "contentOutlet", first: true, predicate: ["contentOutlet"], descendants: true, read: ViewContainerRef, isSignal: true }], hostDirectives: [{ directive: i1.AnimatedLifecycleDirective }, { directive: i1.ProvideColorDirective }, { directive: i1.ProvideSurfaceDirective }], ngImport: i0, template: "@if (renderDragHandle()) {\n <div class=\"et-overlay-container-drag-handle\"></div>\n}\n<ng-container #contentOutlet />\n@if (renderArrow()) {\n <div class=\"et-overlay-arrow\" et-floating-arrow></div>\n}\n", styles: ["@layer components{.et-overlay{--et-overlay-padding-inline: 16px;--et-overlay-padding-block: 16px;--et-overlay-header-padding-block-end: 16px;--et-overlay-body-padding-block: 0;--et-overlay-footer-padding-block-start: 16px;--et-overlay-body-divider-color: var(--et-surface-border-solid, #565656);--et-overlay-body-min-block-size: 100px;--et-overlay-surface-background: var(--et-surface-background-solid, rgb(32 32 32));--et-overlay-surface-color: var(--et-surface-color-solid, rgb(244 244 245));--et-overlay-surface-border-color: var(--et-surface-border-solid, rgb(255 255 255 / .1));--et-overlay-surface-border-width: .1rem;--_et-overlay-radius: var(--et-overlay-radius, 1.6rem);position:relative;display:grid;grid-template-rows:minmax(0,1fr);overflow:hidden;pointer-events:all;outline:none;box-sizing:border-box}.et-overlay>:not(.et-overlay-container-drag-handle):not(.et-overlay-arrow){overflow:auto;border-radius:inherit}.et-overlay>:not(.et-overlay-container-drag-handle):not(.et-overlay-arrow):not(.et-overlay-main){display:grid}.et-overlay>:not(.et-overlay-container-drag-handle):not(.et-overlay-arrow):not(.et-overlay-main):has(.et-overlay-router-outlet-host){grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.et-overlay>:not(.et-overlay-container-drag-handle):not(.et-overlay-arrow):not(.et-overlay-main):has(.et-overlay-sidebar--visible){grid-template-columns:auto minmax(0,1fr)}.et-overlay.et-overlay--anchored,.et-overlay.et-overlay--centered{overflow:visible;background:transparent}:is(.et-overlay.et-overlay--anchored,.et-overlay.et-overlay--centered)>:not(.et-overlay-container-drag-handle):not(.et-overlay-arrow){display:block;overflow:visible}.et-overlay.et-overlay--dialog,.et-overlay.et-overlay--anchored-dialog,.et-overlay.et-overlay--full-screen-dialog,.et-overlay.et-overlay--bottom-sheet,.et-overlay.et-overlay--top-sheet,.et-overlay.et-overlay--left-sheet,.et-overlay.et-overlay--right-sheet{background-color:var(--et-overlay-surface-background);color:var(--et-overlay-surface-color)}.et-overlay.et-overlay--dialog,.et-overlay.et-overlay--anchored-dialog{border:var(--et-overlay-surface-border-width) solid var(--et-overlay-surface-border-color);border-radius:var(--_et-overlay-radius)}.et-overlay.et-overlay--anchored-dialog{--_et-overlay-radius: var(--et-overlay-radius, 1.2rem)}.et-overlay.et-overlay--bottom-sheet{border:var(--et-overlay-surface-border-width) solid var(--et-overlay-surface-border-color);border-block-end:none;border-start-start-radius:var(--_et-overlay-radius);border-start-end-radius:var(--_et-overlay-radius)}.et-overlay.et-overlay--top-sheet{border:var(--et-overlay-surface-border-width) solid var(--et-overlay-surface-border-color);border-block-start:none;border-end-start-radius:var(--_et-overlay-radius);border-end-end-radius:var(--_et-overlay-radius)}.et-overlay.et-overlay--left-sheet{border-inline-end:var(--et-overlay-surface-border-width) solid var(--et-overlay-surface-border-color);border-start-end-radius:var(--_et-overlay-radius);border-end-end-radius:var(--_et-overlay-radius)}.et-overlay.et-overlay--right-sheet{border-inline-start:var(--et-overlay-surface-border-width) solid var(--et-overlay-surface-border-color);border-start-start-radius:var(--_et-overlay-radius);border-end-start-radius:var(--_et-overlay-radius)}.et-overlay.et-overlay--bottom-sheet:has(>.et-overlay-container-drag-handle){grid-template-rows:auto minmax(0,1fr)}.et-overlay.et-overlay--bottom-sheet .et-overlay-container-drag-handle{display:flex}.et-overlay:has(.et-overlay-main){overflow:visible}.et-overlay-container-drag-handle{block-size:var(--_et-overlay-drag-handle-block-size);margin-block:var(--_et-overlay-drag-handle-block-margin);display:none;justify-content:center}.et-overlay-container-drag-handle:before{content:\"\";position:static;inline-size:var(--_et-overlay-drag-handle-inline-size);block-size:var(--_et-overlay-drag-handle-block-size);background-color:var(--_et-overlay-drag-handle-color);border-radius:var(--_et-overlay-drag-handle-radius)}.et-overlay-runtime-backdrop{--et-overlay-backdrop-color: rgb(var(--et-scrim-color-rgb, 0 0 0) / .32);background-color:var(--et-overlay-backdrop-color);opacity:0;transition:opacity .2s linear}.et-overlay-runtime-backdrop.et-overlay-backdrop--visible{opacity:1}.et-overlay-backdrop--hidden{display:none!important}.et-force-invisible{visibility:hidden!important}}\n"], encapsulation: i0.ViewEncapsulation.None }); }
7292
7434
  }
7293
7435
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: OverlayContainerComponent, decorators: [{
7294
7436
  type: Component,
7295
7437
  args: [{ selector: 'et-overlay-container', encapsulation: ViewEncapsulation.None, providers: [provideBoundaryElement()], hostDirectives: [AnimatedLifecycleDirective, ProvideColorDirective, ProvideSurfaceDirective], host: {
7296
7438
  class: 'et-overlay',
7297
7439
  '[class.et-with-default-animation]': '!overlayRef.config.customAnimated',
7298
- }, template: "@if (renderDragHandle()) {\n <div class=\"et-overlay-container-drag-handle\"></div>\n}\n<ng-container #contentOutlet />\n@if (renderArrow()) {\n <div class=\"et-overlay-arrow\" et-floating-arrow></div>\n}\n", styles: ["@layer components{.et-overlay{--et-overlay-padding-inline: 16px;--et-overlay-padding-block: 16px;--et-overlay-header-padding-block-end: 16px;--et-overlay-body-padding-block: 0;--et-overlay-footer-padding-block-start: 16px;--et-overlay-body-divider-color: var(--et-surface-border-solid, #565656);--et-overlay-body-min-block-size: 100px;--et-overlay-surface-background: var(--et-surface-background-solid, rgb(32 32 32));--et-overlay-surface-color: var(--et-surface-color-solid, rgb(244 244 245));--et-overlay-surface-border-color: var(--et-surface-border-solid, rgb(255 255 255 / .1));--et-overlay-surface-border-width: .1rem;--_et-overlay-radius: var(--et-overlay-radius, 1.6rem);position:relative;display:grid;grid-template-rows:minmax(0,1fr);overflow:hidden;pointer-events:all;outline:none;box-sizing:border-box}.et-overlay>:not(.et-overlay-container-drag-handle):not(.et-overlay-arrow){overflow:auto;border-radius:inherit}.et-overlay>:not(.et-overlay-container-drag-handle):not(.et-overlay-arrow):not(.et-overlay-main){display:grid}.et-overlay>:not(.et-overlay-container-drag-handle):not(.et-overlay-arrow):not(.et-overlay-main):has(.et-overlay-router-outlet-host){grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.et-overlay>:not(.et-overlay-container-drag-handle):not(.et-overlay-arrow):not(.et-overlay-main):has(.et-overlay-sidebar--visible){grid-template-columns:auto minmax(0,1fr)}.et-overlay.et-overlay--anchored,.et-overlay.et-overlay--centered{overflow:visible;background:transparent}:is(.et-overlay.et-overlay--anchored,.et-overlay.et-overlay--centered)>:not(.et-overlay-container-drag-handle):not(.et-overlay-arrow){display:block;overflow:visible}.et-overlay.et-overlay--dialog,.et-overlay.et-overlay--anchored-dialog,.et-overlay.et-overlay--full-screen-dialog,.et-overlay.et-overlay--bottom-sheet,.et-overlay.et-overlay--top-sheet,.et-overlay.et-overlay--left-sheet,.et-overlay.et-overlay--right-sheet{background-color:var(--et-overlay-surface-background);color:var(--et-overlay-surface-color)}.et-overlay.et-overlay--dialog,.et-overlay.et-overlay--anchored-dialog{border:var(--et-overlay-surface-border-width) solid var(--et-overlay-surface-border-color);border-radius:var(--_et-overlay-radius)}.et-overlay.et-overlay--anchored-dialog{--_et-overlay-radius: var(--et-overlay-radius, 1.2rem)}.et-overlay.et-overlay--bottom-sheet{border:var(--et-overlay-surface-border-width) solid var(--et-overlay-surface-border-color);border-block-end:none;border-start-start-radius:var(--_et-overlay-radius);border-start-end-radius:var(--_et-overlay-radius)}.et-overlay.et-overlay--top-sheet{border:var(--et-overlay-surface-border-width) solid var(--et-overlay-surface-border-color);border-block-start:none;border-end-start-radius:var(--_et-overlay-radius);border-end-end-radius:var(--_et-overlay-radius)}.et-overlay.et-overlay--left-sheet{border-inline-end:var(--et-overlay-surface-border-width) solid var(--et-overlay-surface-border-color);border-start-end-radius:var(--_et-overlay-radius);border-end-end-radius:var(--_et-overlay-radius)}.et-overlay.et-overlay--right-sheet{border-inline-start:var(--et-overlay-surface-border-width) solid var(--et-overlay-surface-border-color);border-start-start-radius:var(--_et-overlay-radius);border-end-start-radius:var(--_et-overlay-radius)}.et-overlay.et-overlay--bottom-sheet .et-overlay-container-drag-handle{grid-template-rows:auto minmax(0,1fr);display:flex}.et-overlay:has(.et-overlay-main){overflow:visible}.et-overlay-container-drag-handle{block-size:var(--_et-overlay-drag-handle-block-size);margin-block:var(--_et-overlay-drag-handle-block-margin);display:none;justify-content:center}.et-overlay-container-drag-handle:before{content:\"\";position:static;inline-size:var(--_et-overlay-drag-handle-inline-size);block-size:var(--_et-overlay-drag-handle-block-size);background-color:var(--_et-overlay-drag-handle-color);border-radius:var(--_et-overlay-drag-handle-radius)}.et-overlay-runtime-backdrop{--et-overlay-backdrop-color: rgb(var(--et-scrim-color-rgb, 0 0 0) / .32);background-color:var(--et-overlay-backdrop-color);opacity:0;transition:opacity .2s linear}.et-overlay-runtime-backdrop.et-overlay-backdrop--visible{opacity:1}.et-overlay-backdrop--hidden{display:none!important}.et-force-invisible{visibility:hidden!important}}\n"] }]
7440
+ }, template: "@if (renderDragHandle()) {\n <div class=\"et-overlay-container-drag-handle\"></div>\n}\n<ng-container #contentOutlet />\n@if (renderArrow()) {\n <div class=\"et-overlay-arrow\" et-floating-arrow></div>\n}\n", styles: ["@layer components{.et-overlay{--et-overlay-padding-inline: 16px;--et-overlay-padding-block: 16px;--et-overlay-header-padding-block-end: 16px;--et-overlay-body-padding-block: 0;--et-overlay-footer-padding-block-start: 16px;--et-overlay-body-divider-color: var(--et-surface-border-solid, #565656);--et-overlay-body-min-block-size: 100px;--et-overlay-surface-background: var(--et-surface-background-solid, rgb(32 32 32));--et-overlay-surface-color: var(--et-surface-color-solid, rgb(244 244 245));--et-overlay-surface-border-color: var(--et-surface-border-solid, rgb(255 255 255 / .1));--et-overlay-surface-border-width: .1rem;--_et-overlay-radius: var(--et-overlay-radius, 1.6rem);position:relative;display:grid;grid-template-rows:minmax(0,1fr);overflow:hidden;pointer-events:all;outline:none;box-sizing:border-box}.et-overlay>:not(.et-overlay-container-drag-handle):not(.et-overlay-arrow){overflow:auto;border-radius:inherit}.et-overlay>:not(.et-overlay-container-drag-handle):not(.et-overlay-arrow):not(.et-overlay-main){display:grid}.et-overlay>:not(.et-overlay-container-drag-handle):not(.et-overlay-arrow):not(.et-overlay-main):has(.et-overlay-router-outlet-host){grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.et-overlay>:not(.et-overlay-container-drag-handle):not(.et-overlay-arrow):not(.et-overlay-main):has(.et-overlay-sidebar--visible){grid-template-columns:auto minmax(0,1fr)}.et-overlay.et-overlay--anchored,.et-overlay.et-overlay--centered{overflow:visible;background:transparent}:is(.et-overlay.et-overlay--anchored,.et-overlay.et-overlay--centered)>:not(.et-overlay-container-drag-handle):not(.et-overlay-arrow){display:block;overflow:visible}.et-overlay.et-overlay--dialog,.et-overlay.et-overlay--anchored-dialog,.et-overlay.et-overlay--full-screen-dialog,.et-overlay.et-overlay--bottom-sheet,.et-overlay.et-overlay--top-sheet,.et-overlay.et-overlay--left-sheet,.et-overlay.et-overlay--right-sheet{background-color:var(--et-overlay-surface-background);color:var(--et-overlay-surface-color)}.et-overlay.et-overlay--dialog,.et-overlay.et-overlay--anchored-dialog{border:var(--et-overlay-surface-border-width) solid var(--et-overlay-surface-border-color);border-radius:var(--_et-overlay-radius)}.et-overlay.et-overlay--anchored-dialog{--_et-overlay-radius: var(--et-overlay-radius, 1.2rem)}.et-overlay.et-overlay--bottom-sheet{border:var(--et-overlay-surface-border-width) solid var(--et-overlay-surface-border-color);border-block-end:none;border-start-start-radius:var(--_et-overlay-radius);border-start-end-radius:var(--_et-overlay-radius)}.et-overlay.et-overlay--top-sheet{border:var(--et-overlay-surface-border-width) solid var(--et-overlay-surface-border-color);border-block-start:none;border-end-start-radius:var(--_et-overlay-radius);border-end-end-radius:var(--_et-overlay-radius)}.et-overlay.et-overlay--left-sheet{border-inline-end:var(--et-overlay-surface-border-width) solid var(--et-overlay-surface-border-color);border-start-end-radius:var(--_et-overlay-radius);border-end-end-radius:var(--_et-overlay-radius)}.et-overlay.et-overlay--right-sheet{border-inline-start:var(--et-overlay-surface-border-width) solid var(--et-overlay-surface-border-color);border-start-start-radius:var(--_et-overlay-radius);border-end-start-radius:var(--_et-overlay-radius)}.et-overlay.et-overlay--bottom-sheet:has(>.et-overlay-container-drag-handle){grid-template-rows:auto minmax(0,1fr)}.et-overlay.et-overlay--bottom-sheet .et-overlay-container-drag-handle{display:flex}.et-overlay:has(.et-overlay-main){overflow:visible}.et-overlay-container-drag-handle{block-size:var(--_et-overlay-drag-handle-block-size);margin-block:var(--_et-overlay-drag-handle-block-margin);display:none;justify-content:center}.et-overlay-container-drag-handle:before{content:\"\";position:static;inline-size:var(--_et-overlay-drag-handle-inline-size);block-size:var(--_et-overlay-drag-handle-block-size);background-color:var(--_et-overlay-drag-handle-color);border-radius:var(--_et-overlay-drag-handle-radius)}.et-overlay-runtime-backdrop{--et-overlay-backdrop-color: rgb(var(--et-scrim-color-rgb, 0 0 0) / .32);background-color:var(--et-overlay-backdrop-color);opacity:0;transition:opacity .2s linear}.et-overlay-runtime-backdrop.et-overlay-backdrop--visible{opacity:1}.et-overlay-backdrop--hidden{display:none!important}.et-force-invisible{visibility:hidden!important}}\n"] }]
7299
7441
  }], ctorParameters: () => [], propDecorators: { component: [{ type: i0.Input, args: [{ isSignal: true, alias: "component", required: true }] }], componentBindings: [{ type: i0.Input, args: [{ isSignal: true, alias: "componentBindings", required: false }] }], componentDirectives: [{ type: i0.Input, args: [{ isSignal: true, alias: "componentDirectives", required: false }] }], renderArrow: [{ type: i0.Input, args: [{ isSignal: true, alias: "renderArrow", required: false }] }], renderDragHandle: [{ type: i0.Input, args: [{ isSignal: true, alias: "renderDragHandle", required: false }] }], contentOutlet: [{ type: i0.ViewChild, args: ['contentOutlet', { ...{ read: ViewContainerRef }, isSignal: true }] }] } });
7300
7442
 
7301
7443
  const INTERNALS = /* @__PURE__ */ new WeakMap();
@@ -7312,6 +7454,10 @@ const createOverlayRef = (config) => {
7312
7454
  ...(ngDevMode ? [{ debugName: "_headerTemplates" }] : /* istanbul ignore next */ []));
7313
7455
  const headerTemplate = computed(() => _headerTemplates().at(-1) ?? null, /* @ts-ignore */
7314
7456
  ...(ngDevMode ? [{ debugName: "headerTemplate" }] : /* istanbul ignore next */ []));
7457
+ const layoutSource = signal(null, /* @ts-ignore */
7458
+ ...(ngDevMode ? [{ debugName: "layoutSource" }] : /* istanbul ignore next */ []));
7459
+ const layout = computed(() => layoutSource()?.() ?? null, /* @ts-ignore */
7460
+ ...(ngDevMode ? [{ debugName: "layout" }] : /* istanbul ignore next */ []));
7315
7461
  const afterOpened$ = new Subject();
7316
7462
  const beforeClosed$ = new Subject();
7317
7463
  const beforeClosedEvent$ = new Subject();
@@ -7379,6 +7525,7 @@ const createOverlayRef = (config) => {
7379
7525
  },
7380
7526
  config,
7381
7527
  headerTemplate,
7528
+ layout,
7382
7529
  componentInstance: () => {
7383
7530
  if (_componentInstanceOverride) {
7384
7531
  return _componentInstanceOverride();
@@ -7409,6 +7556,7 @@ const createOverlayRef = (config) => {
7409
7556
  const state = _runtimeRef?.state();
7410
7557
  return state === 'closing' || state === 'closed';
7411
7558
  },
7559
+ attachLayout: (source) => layoutSource.set(source),
7412
7560
  registerHeaderTemplate: (template) => {
7413
7561
  _headerTemplates.update((templates) => [...templates.filter((t) => t !== template), template]);
7414
7562
  return () => _headerTemplates.update((templates) => templates.filter((t) => t !== template));
@@ -7501,9 +7649,19 @@ const sharedClassCounts = /* @__PURE__ */ new WeakMap();
7501
7649
  const coerceCssPixelValue = (value) => {
7502
7650
  return typeof value === 'number' ? `${value}px` : value;
7503
7651
  };
7652
+ const LAYOUT_CLASS_PATTERN = /^et-overlay--([a-z][a-z0-9-]*)$/;
7653
+ const resolveOverlayLayout = (containerClass) => {
7654
+ for (const name of normalizeClassList(containerClass).flatMap((value) => value.split(/\s+/))) {
7655
+ const match = LAYOUT_CLASS_PATTERN.exec(name);
7656
+ if (match)
7657
+ return match[1];
7658
+ }
7659
+ return null;
7660
+ };
7504
7661
  const createOverlayStrategyController = (config, parentInjector) => {
7505
7662
  const childInjector = createEnvironmentInjector([], parentInjector);
7506
7663
  const renderer = runInInjectionContext(childInjector, () => injectRenderer());
7664
+ const isServer = isPlatformServer(childInjector.get(PLATFORM_ID));
7507
7665
  const breakpointObserver = runInInjectionContext(childInjector, () => injectBreakpointObserver());
7508
7666
  const styleManager = runInInjectionContext(childInjector, () => injectStyleManager());
7509
7667
  /** The strategy's CSS ships with the strategy, so it has to be in the document before it renders. */
@@ -7512,6 +7670,9 @@ const createOverlayStrategyController = (config, parentInjector) => {
7512
7670
  styleManager.mount(strategyConfig.stylesComponent);
7513
7671
  }
7514
7672
  if (strategyConfig.arrow) {
7673
+ if (ngDevMode && !hasAnchoredOverlayPositionExtras()) {
7674
+ throw new RuntimeError(OVERLAY_ERROR_CODES.ARROW_WITHOUT_POSITION_EXTRAS, '[Overlay] A strategy sets `arrow`, but the floating-ui arrow middleware is not installed. Add `enableAnchoredOverlayPositionExtras()` from @ethlete/core to `strategies`, or call it once during app setup.');
7675
+ }
7515
7676
  styleManager.mount(OverlayArrowStylesComponent);
7516
7677
  }
7517
7678
  };
@@ -7591,6 +7752,9 @@ const createOverlayStrategyController = (config, parentInjector) => {
7591
7752
  return `min(${cssValue}, var(${cssVar}, ${cssValue}))`;
7592
7753
  };
7593
7754
  const applySizingStyles = (paneElement, strategyConfig) => {
7755
+ renderer.setCssProperties(paneElement, {
7756
+ '--et-overlay-width': strategyConfig.width ? coerceCssPixelValue(strategyConfig.width) : null,
7757
+ });
7594
7758
  renderer.setStyle(paneElement, {
7595
7759
  maxWidth: composeMaxSize(strategyConfig.maxWidth, '--et-overlay-max-width'),
7596
7760
  maxHeight: composeMaxSize(strategyConfig.maxHeight, '--et-overlay-max-height'),
@@ -7736,6 +7900,9 @@ const createOverlayStrategyController = (config, parentInjector) => {
7736
7900
  const backdropElement = runtimeRef.elements.backdropElement();
7737
7901
  if (backdropElement) {
7738
7902
  applyClassChange(backdropElement, { curr: activeStrategy.config.backdropClass });
7903
+ if (isServer) {
7904
+ renderer.addClass(backdropElement, BACKDROP_VISIBLE_CLASS);
7905
+ }
7739
7906
  }
7740
7907
  retainSharedClasses(document.documentElement, normalizeClassList(activeStrategy.config.documentClass));
7741
7908
  retainSharedClasses(document.body, normalizeClassList(activeStrategy.config.bodyClass));
@@ -7791,6 +7958,7 @@ const createOverlayStrategyController = (config, parentInjector) => {
7791
7958
  renderArrow: computed(() => activeStrategyConfig().arrow ?? false),
7792
7959
  renderDragHandle: computed(() => !!activeStrategyConfig().dragToDismiss),
7793
7960
  hasBackdrop: computed(() => resolveOverlayHasBackdrop(config, activeStrategyConfig())),
7961
+ layout: computed(() => resolveOverlayLayout(activeStrategyConfig().containerClass)),
7794
7962
  attach,
7795
7963
  destroy,
7796
7964
  };
@@ -7923,6 +8091,7 @@ const OVERLAY_MANAGER_DEF = /* @__PURE__ */ defineRootProvider(() => {
7923
8091
  };
7924
8092
  const { ref: overlayRef, internals } = createOverlayRef(resolvedConfig);
7925
8093
  const controller = createOverlayStrategyController(resolvedConfig, injector);
8094
+ internals.attachLayout(controller.layout);
7926
8095
  const modal = resolvedConfig.mode !== 'non-modal';
7927
8096
  const role = resolvedConfig.role ?? (modal ? 'dialog' : undefined);
7928
8097
  const disableClose = resolvedConfig.disableClose ?? false;
@@ -10328,6 +10497,7 @@ class OverlayDirective {
10328
10497
  this.destroyRef = inject(DestroyRef);
10329
10498
  this.overlayManager = injectOverlayManager();
10330
10499
  this.hostElement = injectHostElement();
10500
+ this.renderer = injectRenderer();
10331
10501
  this.mode = input('non-modal', /* @ts-ignore */
10332
10502
  ...(ngDevMode ? [{ debugName: "mode" }] : /* istanbul ignore next */ []));
10333
10503
  // eslint-disable-next-line ethlete/no-native-html-input-name -- deliberately sets the overlay's ARIA role
@@ -10388,6 +10558,8 @@ class OverlayDirective {
10388
10558
  /** @internal */
10389
10559
  this.overlayRef = signal(null, /* @ts-ignore */
10390
10560
  ...(ngDevMode ? [{ debugName: "overlayRef" }] : /* istanbul ignore next */ []));
10561
+ /** The `id` of the mounted overlay element, referenced by the trigger's `aria-controls`. */
10562
+ this.panelId = createComponentId('et-overlay-panel');
10391
10563
  this.isMounted = computed(() => this.overlayRef() !== null, /* @ts-ignore */
10392
10564
  ...(ngDevMode ? [{ debugName: "isMounted" }] : /* istanbul ignore next */ []));
10393
10565
  this.isClosing = false;
@@ -10493,6 +10665,7 @@ class OverlayDirective {
10493
10665
  enableAnchoredOverlayPositionExtras();
10494
10666
  }
10495
10667
  const config = {
10668
+ id: this.panelId,
10496
10669
  autoFocus: this.autoFocus(),
10497
10670
  backdropClass: this.backdropClass(),
10498
10671
  closeOnEscape: this.closeOnEscape(),
@@ -10526,6 +10699,10 @@ class OverlayDirective {
10526
10699
  role: this.role(),
10527
10700
  };
10528
10701
  const overlayRef = this.overlayManager.open(OverlayTemplateHostComponent, config);
10702
+ const overlayHost = overlayRef.elements?.hostElement;
10703
+ if (overlayHost) {
10704
+ this.renderer.setAttribute(overlayHost, 'id', this.panelId);
10705
+ }
10529
10706
  this.overlayRef.set(overlayRef);
10530
10707
  overlayRef
10531
10708
  .beforeClosed()
@@ -10548,7 +10725,7 @@ class OverlayDirective {
10548
10725
  .subscribe();
10549
10726
  }
10550
10727
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: OverlayDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10551
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.6", type: OverlayDirective, isStandalone: true, selector: "[etOverlay]", inputs: { mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, disableClose: { classPropertyName: "disableClose", publicName: "disableClose", isSignal: true, isRequired: false, transformFunction: null }, autoFocus: { classPropertyName: "autoFocus", publicName: "autoFocus", isSignal: true, isRequired: false, transformFunction: null }, restoreFocus: { classPropertyName: "restoreFocus", publicName: "restoreFocus", isSignal: true, isRequired: false, transformFunction: null }, hasBackdrop: { classPropertyName: "hasBackdrop", publicName: "hasBackdrop", isSignal: true, isRequired: false, transformFunction: null }, closeOnEscape: { classPropertyName: "closeOnEscape", publicName: "closeOnEscape", isSignal: true, isRequired: false, transformFunction: null }, closeOnOutsidePointer: { classPropertyName: "closeOnOutsidePointer", publicName: "closeOnOutsidePointer", isSignal: true, isRequired: false, transformFunction: null }, closeOnNavigation: { classPropertyName: "closeOnNavigation", publicName: "closeOnNavigation", isSignal: true, isRequired: false, transformFunction: null }, hostClass: { classPropertyName: "hostClass", publicName: "hostClass", isSignal: true, isRequired: false, transformFunction: null }, backdropClass: { classPropertyName: "backdropClass", publicName: "backdropClass", isSignal: true, isRequired: false, transformFunction: null }, panelClass: { classPropertyName: "panelClass", publicName: "panelClass", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, fallbackPlacements: { classPropertyName: "fallbackPlacements", publicName: "fallbackPlacements", isSignal: true, isRequired: false, transformFunction: null }, offset: { classPropertyName: "offset", publicName: "offset", isSignal: true, isRequired: false, transformFunction: null }, viewportPadding: { classPropertyName: "viewportPadding", publicName: "viewportPadding", isSignal: true, isRequired: false, transformFunction: null }, autoResize: { classPropertyName: "autoResize", publicName: "autoResize", isSignal: true, isRequired: false, transformFunction: null }, minAvailableSpace: { classPropertyName: "minAvailableSpace", publicName: "minAvailableSpace", isSignal: true, isRequired: false, transformFunction: null }, shift: { classPropertyName: "shift", publicName: "shift", isSignal: true, isRequired: false, transformFunction: null }, autoHide: { classPropertyName: "autoHide", publicName: "autoHide", isSignal: true, isRequired: false, transformFunction: null }, autoCloseIfReferenceHidden: { classPropertyName: "autoCloseIfReferenceHidden", publicName: "autoCloseIfReferenceHidden", isSignal: true, isRequired: false, transformFunction: null }, mirrorWidth: { classPropertyName: "mirrorWidth", publicName: "mirrorWidth", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange" }, host: { properties: { "attr.data-overlay-open": "open() || null", "attr.data-overlay-mode": "mode()" } }, exportAs: ["etOverlay"], ngImport: i0 }); }
10728
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.6", type: OverlayDirective, isStandalone: true, selector: "[etOverlay]", inputs: { mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, disableClose: { classPropertyName: "disableClose", publicName: "disableClose", isSignal: true, isRequired: false, transformFunction: null }, autoFocus: { classPropertyName: "autoFocus", publicName: "autoFocus", isSignal: true, isRequired: false, transformFunction: null }, restoreFocus: { classPropertyName: "restoreFocus", publicName: "restoreFocus", isSignal: true, isRequired: false, transformFunction: null }, hasBackdrop: { classPropertyName: "hasBackdrop", publicName: "hasBackdrop", isSignal: true, isRequired: false, transformFunction: null }, closeOnEscape: { classPropertyName: "closeOnEscape", publicName: "closeOnEscape", isSignal: true, isRequired: false, transformFunction: null }, closeOnOutsidePointer: { classPropertyName: "closeOnOutsidePointer", publicName: "closeOnOutsidePointer", isSignal: true, isRequired: false, transformFunction: null }, closeOnNavigation: { classPropertyName: "closeOnNavigation", publicName: "closeOnNavigation", isSignal: true, isRequired: false, transformFunction: null }, hostClass: { classPropertyName: "hostClass", publicName: "hostClass", isSignal: true, isRequired: false, transformFunction: null }, backdropClass: { classPropertyName: "backdropClass", publicName: "backdropClass", isSignal: true, isRequired: false, transformFunction: null }, panelClass: { classPropertyName: "panelClass", publicName: "panelClass", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, fallbackPlacements: { classPropertyName: "fallbackPlacements", publicName: "fallbackPlacements", isSignal: true, isRequired: false, transformFunction: null }, offset: { classPropertyName: "offset", publicName: "offset", isSignal: true, isRequired: false, transformFunction: null }, viewportPadding: { classPropertyName: "viewportPadding", publicName: "viewportPadding", isSignal: true, isRequired: false, transformFunction: null }, autoResize: { classPropertyName: "autoResize", publicName: "autoResize", isSignal: true, isRequired: false, transformFunction: null }, minAvailableSpace: { classPropertyName: "minAvailableSpace", publicName: "minAvailableSpace", isSignal: true, isRequired: false, transformFunction: null }, shift: { classPropertyName: "shift", publicName: "shift", isSignal: true, isRequired: false, transformFunction: null }, autoHide: { classPropertyName: "autoHide", publicName: "autoHide", isSignal: true, isRequired: false, transformFunction: null }, autoCloseIfReferenceHidden: { classPropertyName: "autoCloseIfReferenceHidden", publicName: "autoCloseIfReferenceHidden", isSignal: true, isRequired: false, transformFunction: null }, mirrorWidth: { classPropertyName: "mirrorWidth", publicName: "mirrorWidth", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange" }, host: { properties: { "attr.data-overlay-open": "open() || null", "attr.data-overlay-mode": "mode()", "attr.data-overlay-placement": "placement()" } }, exportAs: ["etOverlay"], ngImport: i0 }); }
10552
10729
  }
10553
10730
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: OverlayDirective, decorators: [{
10554
10731
  type: Directive,
@@ -10558,6 +10735,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
10558
10735
  host: {
10559
10736
  '[attr.data-overlay-open]': 'open() || null',
10560
10737
  '[attr.data-overlay-mode]': 'mode()',
10738
+ '[attr.data-overlay-placement]': 'placement()',
10561
10739
  },
10562
10740
  }]
10563
10741
  }], ctorParameters: () => [], propDecorators: { mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }], role: [{ type: i0.Input, args: [{ isSignal: true, alias: "role", required: false }] }], open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], disableClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableClose", required: false }] }], autoFocus: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoFocus", required: false }] }], restoreFocus: [{ type: i0.Input, args: [{ isSignal: true, alias: "restoreFocus", required: false }] }], hasBackdrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasBackdrop", required: false }] }], closeOnEscape: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnEscape", required: false }] }], closeOnOutsidePointer: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnOutsidePointer", required: false }] }], closeOnNavigation: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnNavigation", required: false }] }], hostClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "hostClass", required: false }] }], backdropClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "backdropClass", required: false }] }], panelClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "panelClass", required: false }] }], placement: [{ type: i0.Input, args: [{ isSignal: true, alias: "placement", required: false }] }], fallbackPlacements: [{ type: i0.Input, args: [{ isSignal: true, alias: "fallbackPlacements", required: false }] }], offset: [{ type: i0.Input, args: [{ isSignal: true, alias: "offset", required: false }] }], viewportPadding: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewportPadding", required: false }] }], autoResize: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoResize", required: false }] }], minAvailableSpace: [{ type: i0.Input, args: [{ isSignal: true, alias: "minAvailableSpace", required: false }] }], shift: [{ type: i0.Input, args: [{ isSignal: true, alias: "shift", required: false }] }], autoHide: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoHide", required: false }] }], autoCloseIfReferenceHidden: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoCloseIfReferenceHidden", required: false }] }], mirrorWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "mirrorWidth", required: false }] }] } });
@@ -10650,7 +10828,7 @@ class OverlayTriggerDirective {
10650
10828
  return this.overlay.role() || this.overlay.mode() === 'modal' ? 'dialog' : null;
10651
10829
  }
10652
10830
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: OverlayTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10653
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.6", type: OverlayTriggerDirective, isStandalone: true, selector: "[etOverlayTrigger]", host: { listeners: { "click": "toggle()" }, properties: { "attr.aria-expanded": "expanded()", "attr.aria-haspopup": "hasPopup()", "attr.aria-disabled": "overlay?.disabled() || null", "attr.data-overlay-open": "isOpen() || null" } }, exportAs: ["etOverlayTrigger"], ngImport: i0 }); }
10831
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.6", type: OverlayTriggerDirective, isStandalone: true, selector: "[etOverlayTrigger]", host: { listeners: { "click": "toggle()" }, properties: { "attr.aria-expanded": "expanded()", "attr.aria-haspopup": "hasPopup()", "attr.aria-controls": "overlay?.panelId ?? null", "attr.aria-disabled": "overlay?.disabled() || null", "attr.data-overlay-open": "isOpen() || null" } }, exportAs: ["etOverlayTrigger"], ngImport: i0 }); }
10654
10832
  }
10655
10833
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: OverlayTriggerDirective, decorators: [{
10656
10834
  type: Directive,
@@ -10661,6 +10839,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
10661
10839
  '(click)': 'toggle()',
10662
10840
  '[attr.aria-expanded]': 'expanded()',
10663
10841
  '[attr.aria-haspopup]': 'hasPopup()',
10842
+ '[attr.aria-controls]': 'overlay?.panelId ?? null',
10664
10843
  '[attr.aria-disabled]': 'overlay?.disabled() || null',
10665
10844
  '[attr.data-overlay-open]': 'isOpen() || null',
10666
10845
  },
@@ -12583,7 +12762,14 @@ const DEFAULT_BREADCRUMB_LABELS = {
12583
12762
  navigation: 'Breadcrumb',
12584
12763
  overflow: 'Show hidden levels',
12585
12764
  };
12586
- const BREADCRUMB_LABELS_DEF = /* @__PURE__ */ defineLabels('BREADCRUMB_LABELS', DEFAULT_BREADCRUMB_LABELS);
12765
+ /** The built-in German labels, used when the current locale is a German one. */
12766
+ const GERMAN_BREADCRUMB_LABELS = {
12767
+ navigation: 'Brotkrumennavigation',
12768
+ overflow: 'Ausgeblendete Ebenen anzeigen',
12769
+ };
12770
+ /** The label set for a locale. Anything other than English and German needs {@link provideBreadcrumbLabels}. */
12771
+ const breadcrumbLabelsForLocale = (locale) => locale.toLowerCase().startsWith('de') ? GERMAN_BREADCRUMB_LABELS : DEFAULT_BREADCRUMB_LABELS;
12772
+ const BREADCRUMB_LABELS_DEF = /* @__PURE__ */ defineLabels('BREADCRUMB_LABELS', breadcrumbLabelsForLocale);
12587
12773
  /**
12588
12774
  * Localize the breadcrumb's strings for everything below this injector, and read the set in effect
12589
12775
  * here as a signal. Partial - whatever you leave out keeps its {@link DEFAULT_BREADCRUMB_LABELS}
@@ -13119,7 +13305,22 @@ const DEFAULT_CALENDAR_LABELS = {
13119
13305
  switchToMonthView: 'Choose date',
13120
13306
  week: 'Week',
13121
13307
  };
13122
- const CALENDAR_LABELS_DEF = /* @__PURE__ */ defineLabels('CALENDAR_LABELS', DEFAULT_CALENDAR_LABELS);
13308
+ /** The built-in German labels, used when the current locale is a German one. */
13309
+ const GERMAN_CALENDAR_LABELS = {
13310
+ previousMonth: 'Vorheriger Monat',
13311
+ nextMonth: 'Nächster Monat',
13312
+ previousYear: 'Vorheriges Jahr',
13313
+ nextYear: 'Nächstes Jahr',
13314
+ previousYearRange: 'Vorherige Jahre',
13315
+ nextYearRange: 'Nächste Jahre',
13316
+ switchToYearView: 'Monat und Jahr auswählen',
13317
+ switchToMultiYearView: 'Jahr auswählen',
13318
+ switchToMonthView: 'Datum auswählen',
13319
+ week: 'Woche',
13320
+ };
13321
+ /** The label set for a locale. Anything other than English and German needs {@link provideCalendarLabels}. */
13322
+ const calendarLabelsForLocale = (locale) => locale.toLowerCase().startsWith('de') ? GERMAN_CALENDAR_LABELS : DEFAULT_CALENDAR_LABELS;
13323
+ const CALENDAR_LABELS_DEF = /* @__PURE__ */ defineLabels('CALENDAR_LABELS', calendarLabelsForLocale);
13123
13324
  /**
13124
13325
  * Localize the calendar's strings for everything below this injector, and read the set in effect here as a
13125
13326
  * signal. Partial - whatever you leave out keeps its {@link DEFAULT_CALENDAR_LABELS} value. See {@link defineLabels}
@@ -13499,7 +13700,7 @@ const createCalendarSelectionReader = (state) => {
13499
13700
  */
13500
13701
  class CalendarDirective {
13501
13702
  constructor() {
13502
- this.defaultLocale = injectDateLocale();
13703
+ this.defaultLocale = injectDateLocaleSignal();
13503
13704
  this.today = injectToday();
13504
13705
  this.mode = input('single', /* @ts-ignore */
13505
13706
  ...(ngDevMode ? [{ debugName: "mode" }] : /* istanbul ignore next */ []));
@@ -13592,7 +13793,7 @@ class CalendarDirective {
13592
13793
  /** The finest grid this calendar shows - the one whose cells hold {@link precision}'s unit. */
13593
13794
  this.selectionView = computed(() => CALENDAR_PRECISION_VIEW[this.precision()], /* @ts-ignore */
13594
13795
  ...(ngDevMode ? [{ debugName: "selectionView" }] : /* istanbul ignore next */ []));
13595
- this.effectiveLocale = computed(() => this.locale() ?? this.defaultLocale, /* @ts-ignore */
13796
+ this.effectiveLocale = computed(() => this.locale() ?? this.defaultLocale(), /* @ts-ignore */
13596
13797
  ...(ngDevMode ? [{ debugName: "effectiveLocale" }] : /* istanbul ignore next */ []));
13597
13798
  this.effectiveFirstDayOfWeek = computed(() => this.firstDayOfWeek() ?? this.effectiveLocale()?.options?.weekStartsOn ?? 1, /* @ts-ignore */
13598
13799
  ...(ngDevMode ? [{ debugName: "effectiveFirstDayOfWeek" }] : /* istanbul ignore next */ []));
@@ -14555,7 +14756,19 @@ const DEFAULT_CAROUSEL_LABELS = {
14555
14756
  pause: 'Pause automatic slide show',
14556
14757
  goToSlide: (index) => `Go to slide ${index}`,
14557
14758
  };
14558
- const CAROUSEL_LABELS_DEF = /* @__PURE__ */ defineLabels('CAROUSEL_LABELS', DEFAULT_CAROUSEL_LABELS);
14759
+ /** The built-in German labels, used when the current locale is a German one. */
14760
+ const GERMAN_CAROUSEL_LABELS = {
14761
+ carousel: 'Karussell',
14762
+ slide: (index, count) => `${index} von ${count}`,
14763
+ previous: 'Vorherige Folie',
14764
+ next: 'Nächste Folie',
14765
+ play: 'Automatische Wiedergabe starten',
14766
+ pause: 'Automatische Wiedergabe pausieren',
14767
+ goToSlide: (index) => `Zu Folie ${index}`,
14768
+ };
14769
+ /** The label set for a locale. Anything other than English and German needs {@link provideCarouselLabels}. */
14770
+ const carouselLabelsForLocale = (locale) => locale.toLowerCase().startsWith('de') ? GERMAN_CAROUSEL_LABELS : DEFAULT_CAROUSEL_LABELS;
14771
+ const CAROUSEL_LABELS_DEF = /* @__PURE__ */ defineLabels('CAROUSEL_LABELS', carouselLabelsForLocale);
14559
14772
  /**
14560
14773
  * Localize the carousel's strings for everything below this injector, and read the set in effect here
14561
14774
  * as a signal. Partial - whatever you leave out keeps its {@link DEFAULT_CAROUSEL_LABELS} value. See
@@ -16254,7 +16467,9 @@ const supportsScrollEnd = (element) => 'onscrollend' in element;
16254
16467
  * `scrollend` is the right signal for it - it cannot fire mid-animation, which is exactly when a jump would
16255
16468
  * be visible - with a quiet stretch of `scroll` events standing in where it is missing. Either way the
16256
16469
  * callback is held back while a pointer is down: a mouse drag scrolls instantly on every move, so
16257
- * `scrollend` fires throughout one, and acting on it would fight the finger.
16470
+ * `scrollend` fires throughout one, and acting on it would fight the finger. It is also held while snapping
16471
+ * is suspended: crossing the seam under the glide `etScrollableSnap` runs after a mouse drag sends that
16472
+ * glide back across every slide.
16258
16473
  *
16259
16474
  * @internal
16260
16475
  */
@@ -16263,8 +16478,10 @@ const useCarouselScrollSettled = (config) => {
16263
16478
  const isPointerDown = signal(false, /* @ts-ignore */
16264
16479
  ...(ngDevMode ? [{ debugName: "isPointerDown" }] : /* istanbul ignore next */ []));
16265
16480
  let isSettleDeferred = false;
16481
+ const isHeld = computed(() => isPointerDown() || !!config.scrollable()?.isSnapSuspended(), /* @ts-ignore */
16482
+ ...(ngDevMode ? [{ debugName: "isHeld" }] : /* istanbul ignore next */ []));
16266
16483
  const settle = () => {
16267
- if (isPointerDown()) {
16484
+ if (isHeld()) {
16268
16485
  isSettleDeferred = true;
16269
16486
  return;
16270
16487
  }
@@ -16273,6 +16490,14 @@ const useCarouselScrollSettled = (config) => {
16273
16490
  };
16274
16491
  const container = computed(() => config.scrollable()?.scrollContainerRef()?.nativeElement ?? null, /* @ts-ignore */
16275
16492
  ...(ngDevMode ? [{ debugName: "container" }] : /* istanbul ignore next */ []));
16493
+ effect(() => {
16494
+ if (isHeld())
16495
+ return;
16496
+ untracked(() => {
16497
+ if (isSettleDeferred)
16498
+ settle();
16499
+ });
16500
+ });
16276
16501
  toObservable(container)
16277
16502
  .pipe(switchMap((scrollContainer) => {
16278
16503
  if (!scrollContainer)
@@ -16282,11 +16507,7 @@ const useCarouselScrollSettled = (config) => {
16282
16507
  : // a debounced scroll is standing in for `scrollend`; the offset itself is read on the spot
16283
16508
  // eslint-disable-next-line ethlete/prefer-scroll-state
16284
16509
  fromEvent(scrollContainer, 'scroll', { passive: true }).pipe(debounceTime(SCROLL_IDLE_DURATION));
16285
- const release = () => {
16286
- isPointerDown.set(false);
16287
- if (isSettleDeferred)
16288
- settle();
16289
- };
16510
+ const release = () => isPointerDown.set(false);
16290
16511
  return merge(settled$.pipe(tap(() => settle())), fromEvent(scrollContainer, 'pointerdown', { passive: true }).pipe(tap(() => {
16291
16512
  isPointerDown.set(true);
16292
16513
  config.onPointerDown?.();
@@ -17330,7 +17551,34 @@ const DEFAULT_CHART_LABELS = {
17330
17551
  sankeyLinkSeparator: 'to',
17331
17552
  sankeyLinkKeyHint: defaultSankeyChartLinkKeyHint,
17332
17553
  };
17333
- const CHART_LABELS_DEF = /* @__PURE__ */ defineLabels('CHART_LABELS', DEFAULT_CHART_LABELS);
17554
+ /** The built-in German labels, used when the current locale is a German one. */
17555
+ const GERMAN_CHART_LABELS = {
17556
+ barCategoryHeader: 'Kategorie',
17557
+ barValueHeader: 'Wert',
17558
+ lineCategoryHeader: 'Kategorie',
17559
+ lineDateHeader: 'Datum',
17560
+ lineValueHeader: 'Wert',
17561
+ pieCategoryHeader: 'Kategorie',
17562
+ pieValueHeader: 'Wert',
17563
+ pieShareHeader: 'Anteil',
17564
+ pieTotal: 'Gesamt',
17565
+ sankeySourceHeader: 'Quelle',
17566
+ sankeyTargetHeader: 'Ziel',
17567
+ sankeyValueHeader: 'Wert',
17568
+ sankeyIncoming: 'Eingang',
17569
+ sankeyOutgoing: 'Ausgang',
17570
+ sankeyLinkSeparator: 'nach',
17571
+ sankeyLinkKeyHint: ({ position, count, sourceLabel, direction }) => [
17572
+ `${position} von ${count}`,
17573
+ count > 1 ? `${direction === 'vertical' ? '←→' : '↑↓'} nächste Verbindung` : null,
17574
+ `Esc zurück zu ${sourceLabel}`,
17575
+ ]
17576
+ .filter((part) => part !== null)
17577
+ .join(' · '),
17578
+ };
17579
+ /** The label set for a locale. Anything other than English and German needs {@link provideChartLabels}. */
17580
+ const chartLabelsForLocale = (locale) => locale.toLowerCase().startsWith('de') ? GERMAN_CHART_LABELS : DEFAULT_CHART_LABELS;
17581
+ const CHART_LABELS_DEF = /* @__PURE__ */ defineLabels('CHART_LABELS', chartLabelsForLocale);
17334
17582
  /**
17335
17583
  * Localize the charts' strings for everything below this injector, and read the set in effect here as
17336
17584
  * a signal. Partial - whatever you leave out keeps its {@link DEFAULT_CHART_LABELS} value. See
@@ -20610,7 +20858,13 @@ const CHART_IMPORTS = [
20610
20858
  const DEFAULT_CHIP_LABELS = {
20611
20859
  remove: 'Remove',
20612
20860
  };
20613
- const CHIP_LABELS_DEF = /* @__PURE__ */ defineLabels('CHIP_LABELS', DEFAULT_CHIP_LABELS);
20861
+ /** The built-in German labels, used when the current locale is a German one. */
20862
+ const GERMAN_CHIP_LABELS = {
20863
+ remove: 'Entfernen',
20864
+ };
20865
+ /** The label set for a locale. Anything other than English and German needs {@link provideChipLabels}. */
20866
+ const chipLabelsForLocale = (locale) => locale.toLowerCase().startsWith('de') ? GERMAN_CHIP_LABELS : DEFAULT_CHIP_LABELS;
20867
+ const CHIP_LABELS_DEF = /* @__PURE__ */ defineLabels('CHIP_LABELS', chipLabelsForLocale);
20614
20868
  /**
20615
20869
  * Localize a chip's strings for everything below this injector, and read the set in effect here as a
20616
20870
  * signal. Partial - whatever you leave out keeps its {@link DEFAULT_CHIP_LABELS} value. See {@link defineLabels}
@@ -21416,7 +21670,32 @@ const DEFAULT_KBD_LABELS = {
21416
21670
  end: /* @__PURE__ */ everywhere('End'),
21417
21671
  plus: /* @__PURE__ */ everywhere('+', 'Plus'),
21418
21672
  };
21419
- const KBD_LABELS_DEF = /* @__PURE__ */ defineLabels('KBD_LABELS', DEFAULT_KBD_LABELS);
21673
+ /** The built-in German labels, used when the current locale is a German one. */
21674
+ const GERMAN_KBD_LABELS = {
21675
+ mod: { apple: { label: '⌘', name: 'Befehlstaste' }, other: { label: 'Strg', name: 'Steuerung' } },
21676
+ meta: { apple: { label: '⌘', name: 'Befehlstaste' }, other: { label: 'Meta', name: 'Meta' } },
21677
+ ctrl: { apple: { label: '⌃', name: 'Control' }, other: { label: 'Strg', name: 'Steuerung' } },
21678
+ alt: { apple: { label: '⌥', name: 'Wahltaste' }, other: { label: 'Alt', name: 'Alt' } },
21679
+ shift: { apple: { label: '⇧', name: 'Umschalttaste' }, other: { label: 'Umschalt', name: 'Umschalttaste' } },
21680
+ enter: { apple: { label: '↵', name: 'Eingabetaste' }, other: { label: 'Eingabe', name: 'Eingabetaste' } },
21681
+ tab: { apple: { label: '⇥', name: 'Tabulator' }, other: { label: 'Tab', name: 'Tabulator' } },
21682
+ backspace: { apple: { label: '⌫', name: 'Rücktaste' }, other: { label: 'Rück', name: 'Rücktaste' } },
21683
+ delete: { apple: { label: '⌦', name: 'Entfernen' }, other: { label: 'Entf', name: 'Entfernen' } },
21684
+ esc: /* @__PURE__ */ everywhere('Esc', 'Escape'),
21685
+ space: /* @__PURE__ */ everywhere('Leer', 'Leertaste'),
21686
+ up: /* @__PURE__ */ everywhere('↑', 'Pfeil nach oben'),
21687
+ down: /* @__PURE__ */ everywhere('↓', 'Pfeil nach unten'),
21688
+ left: /* @__PURE__ */ everywhere('←', 'Pfeil nach links'),
21689
+ right: /* @__PURE__ */ everywhere('→', 'Pfeil nach rechts'),
21690
+ pageup: /* @__PURE__ */ everywhere('Bild↑', 'Bild nach oben'),
21691
+ pagedown: /* @__PURE__ */ everywhere('Bild↓', 'Bild nach unten'),
21692
+ home: /* @__PURE__ */ everywhere('Pos1'),
21693
+ end: /* @__PURE__ */ everywhere('Ende'),
21694
+ plus: /* @__PURE__ */ everywhere('+', 'Plus'),
21695
+ };
21696
+ /** The label set for a locale. Anything other than English and German needs {@link provideKbdLabels}. */
21697
+ const kbdLabelsForLocale = (locale) => locale.toLowerCase().startsWith('de') ? GERMAN_KBD_LABELS : DEFAULT_KBD_LABELS;
21698
+ const KBD_LABELS_DEF = /* @__PURE__ */ defineLabels('KBD_LABELS', kbdLabelsForLocale);
21420
21699
  /**
21421
21700
  * Localize the printed labels and spoken names of `et-kbd` keys for everything below this injector. Partial
21422
21701
  * per key - a key you leave out keeps its {@link DEFAULT_KBD_LABELS} entry; a key you give replaces both platforms.
@@ -21886,7 +22165,14 @@ const DEFAULT_COPY_BUTTON_LABELS = {
21886
22165
  copied: 'Copied',
21887
22166
  copyFailed: 'Copy failed',
21888
22167
  };
21889
- const COPY_BUTTON_LABELS_DEF = /* @__PURE__ */ defineLabels('COPY_BUTTON_LABELS', DEFAULT_COPY_BUTTON_LABELS);
22168
+ /** The built-in German labels, used when the current locale is a German one. */
22169
+ const GERMAN_COPY_BUTTON_LABELS = {
22170
+ copied: 'Kopiert',
22171
+ copyFailed: 'Kopieren fehlgeschlagen',
22172
+ };
22173
+ /** The label set for a locale. Anything other than English and German needs {@link provideCopyButtonLabels}. */
22174
+ const copyButtonLabelsForLocale = (locale) => locale.toLowerCase().startsWith('de') ? GERMAN_COPY_BUTTON_LABELS : DEFAULT_COPY_BUTTON_LABELS;
22175
+ const COPY_BUTTON_LABELS_DEF = /* @__PURE__ */ defineLabels('COPY_BUTTON_LABELS', copyButtonLabelsForLocale);
21890
22176
  /**
21891
22177
  * Localize a copy button's strings for everything below this injector, and read the set in effect here as a
21892
22178
  * signal. Partial - whatever you leave out keeps its {@link DEFAULT_COPY_BUTTON_LABELS} value. See
@@ -22034,14 +22320,14 @@ class DescriptionListComponent {
22034
22320
  ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
22035
22321
  }
22036
22322
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: DescriptionListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
22037
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.6", type: DescriptionListComponent, isStandalone: true, selector: "dl[et-description-list]", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-variant": "variant()" }, classAttribute: "et-description-list" }, ngImport: i0, template: '<ng-content />', isInline: true, styles: ["@layer components{@property --et-description-list-row-gap{syntax: \"<length>\"; inherits: false; initial-value: 8px;}@property --et-description-list-column-gap{syntax: \"<length>\"; inherits: false; initial-value: 16px;}@property --et-description-list-stacked-term-gap{syntax: \"<length>\"; inherits: false; initial-value: 2px;}@property --et-description-list-term-min-width{syntax: \"<length>\"; inherits: false; initial-value: 120px;}@property --et-description-list-term-font-size{syntax: \"<length>\"; inherits: false; initial-value: 14px;}@property --et-description-list-detail-font-size{syntax: \"<length>\"; inherits: false; initial-value: 14px;}.et-description-list{display:grid;grid-template-columns:minmax(var(--et-description-list-term-min-width),max-content) 1fr;row-gap:var(--et-description-list-row-gap);column-gap:var(--et-description-list-column-gap);margin:0}.et-description-list>div{display:contents}.et-description-list dt{grid-column:1;font-size:var(--et-description-list-term-font-size);color:var(--et-surface-color-muted-solid, currentColor)}.et-description-list dd{grid-column:2;margin:0;font-size:var(--et-description-list-detail-font-size);color:var(--et-surface-color-solid, currentColor)}.et-description-list:where([data-variant=stacked]){grid-template-columns:1fr;row-gap:var(--et-description-list-stacked-term-gap)}.et-description-list:where([data-variant=stacked]) dt,.et-description-list:where([data-variant=stacked]) dd{grid-column:1}.et-description-list:where([data-variant=stacked]) :is(dd,div)+dt,.et-description-list:where([data-variant=stacked]) :is(dd,div)+div>dt:first-child{margin-block-start:max(0px,var(--et-description-list-row-gap) - var(--et-description-list-stacked-term-gap))}}\n"], encapsulation: i0.ViewEncapsulation.None }); }
22323
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.6", type: DescriptionListComponent, isStandalone: true, selector: "dl[et-description-list]", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-variant": "variant()" }, classAttribute: "et-description-list" }, ngImport: i0, template: '<ng-content />', isInline: true, styles: ["@layer components{@property --et-description-list-row-gap{syntax: \"<length>\"; inherits: true; initial-value: 8px;}@property --et-description-list-column-gap{syntax: \"<length>\"; inherits: false; initial-value: 16px;}@property --et-description-list-stacked-term-gap{syntax: \"<length>\"; inherits: true; initial-value: 2px;}@property --et-description-list-term-min-width{syntax: \"<length>\"; inherits: false; initial-value: 120px;}@property --et-description-list-term-font-size{syntax: \"<length>\"; inherits: true; initial-value: 14px;}@property --et-description-list-detail-font-size{syntax: \"<length>\"; inherits: true; initial-value: 14px;}.et-description-list{display:grid;grid-template-columns:minmax(var(--et-description-list-term-min-width),max-content) 1fr;row-gap:var(--et-description-list-row-gap);column-gap:var(--et-description-list-column-gap);margin:0}.et-description-list>div{display:contents}.et-description-list dt{grid-column:1;font-size:var(--et-description-list-term-font-size);color:var(--et-surface-color-muted-solid, currentColor)}.et-description-list dd{grid-column:2;margin:0;font-size:var(--et-description-list-detail-font-size);color:var(--et-surface-color-solid, currentColor)}.et-description-list:where([data-variant=stacked]){grid-template-columns:1fr;row-gap:var(--et-description-list-stacked-term-gap)}.et-description-list:where([data-variant=stacked]) dt,.et-description-list:where([data-variant=stacked]) dd{grid-column:1}.et-description-list:where([data-variant=stacked]) :is(dd,div)+dt,.et-description-list:where([data-variant=stacked]) :is(dd,div)+div>dt:first-child{margin-block-start:max(0px,var(--et-description-list-row-gap) - var(--et-description-list-stacked-term-gap))}}\n"], encapsulation: i0.ViewEncapsulation.None }); }
22038
22324
  }
22039
22325
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: DescriptionListComponent, decorators: [{
22040
22326
  type: Component,
22041
22327
  args: [{ selector: 'dl[et-description-list]', template: '<ng-content />', encapsulation: ViewEncapsulation.None, host: {
22042
22328
  class: 'et-description-list',
22043
22329
  '[attr.data-variant]': 'variant()',
22044
- }, styles: ["@layer components{@property --et-description-list-row-gap{syntax: \"<length>\"; inherits: false; initial-value: 8px;}@property --et-description-list-column-gap{syntax: \"<length>\"; inherits: false; initial-value: 16px;}@property --et-description-list-stacked-term-gap{syntax: \"<length>\"; inherits: false; initial-value: 2px;}@property --et-description-list-term-min-width{syntax: \"<length>\"; inherits: false; initial-value: 120px;}@property --et-description-list-term-font-size{syntax: \"<length>\"; inherits: false; initial-value: 14px;}@property --et-description-list-detail-font-size{syntax: \"<length>\"; inherits: false; initial-value: 14px;}.et-description-list{display:grid;grid-template-columns:minmax(var(--et-description-list-term-min-width),max-content) 1fr;row-gap:var(--et-description-list-row-gap);column-gap:var(--et-description-list-column-gap);margin:0}.et-description-list>div{display:contents}.et-description-list dt{grid-column:1;font-size:var(--et-description-list-term-font-size);color:var(--et-surface-color-muted-solid, currentColor)}.et-description-list dd{grid-column:2;margin:0;font-size:var(--et-description-list-detail-font-size);color:var(--et-surface-color-solid, currentColor)}.et-description-list:where([data-variant=stacked]){grid-template-columns:1fr;row-gap:var(--et-description-list-stacked-term-gap)}.et-description-list:where([data-variant=stacked]) dt,.et-description-list:where([data-variant=stacked]) dd{grid-column:1}.et-description-list:where([data-variant=stacked]) :is(dd,div)+dt,.et-description-list:where([data-variant=stacked]) :is(dd,div)+div>dt:first-child{margin-block-start:max(0px,var(--et-description-list-row-gap) - var(--et-description-list-stacked-term-gap))}}\n"] }]
22330
+ }, styles: ["@layer components{@property --et-description-list-row-gap{syntax: \"<length>\"; inherits: true; initial-value: 8px;}@property --et-description-list-column-gap{syntax: \"<length>\"; inherits: false; initial-value: 16px;}@property --et-description-list-stacked-term-gap{syntax: \"<length>\"; inherits: true; initial-value: 2px;}@property --et-description-list-term-min-width{syntax: \"<length>\"; inherits: false; initial-value: 120px;}@property --et-description-list-term-font-size{syntax: \"<length>\"; inherits: true; initial-value: 14px;}@property --et-description-list-detail-font-size{syntax: \"<length>\"; inherits: true; initial-value: 14px;}.et-description-list{display:grid;grid-template-columns:minmax(var(--et-description-list-term-min-width),max-content) 1fr;row-gap:var(--et-description-list-row-gap);column-gap:var(--et-description-list-column-gap);margin:0}.et-description-list>div{display:contents}.et-description-list dt{grid-column:1;font-size:var(--et-description-list-term-font-size);color:var(--et-surface-color-muted-solid, currentColor)}.et-description-list dd{grid-column:2;margin:0;font-size:var(--et-description-list-detail-font-size);color:var(--et-surface-color-solid, currentColor)}.et-description-list:where([data-variant=stacked]){grid-template-columns:1fr;row-gap:var(--et-description-list-stacked-term-gap)}.et-description-list:where([data-variant=stacked]) dt,.et-description-list:where([data-variant=stacked]) dd{grid-column:1}.et-description-list:where([data-variant=stacked]) :is(dd,div)+dt,.et-description-list:where([data-variant=stacked]) :is(dd,div)+div>dt:first-child{margin-block-start:max(0px,var(--et-description-list-row-gap) - var(--et-description-list-stacked-term-gap))}}\n"] }]
22045
22331
  }], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }] } });
22046
22332
 
22047
22333
  const DESCRIPTION_LIST_IMPORTS = [DescriptionListComponent];
@@ -22753,7 +23039,20 @@ const DEFAULT_CASCADER_LABELS = {
22753
23039
  search: 'Search',
22754
23040
  error: 'Something went wrong',
22755
23041
  };
22756
- const CASCADER_LABELS_DEF = /* @__PURE__ */ defineLabels('CASCADER_LABELS', DEFAULT_CASCADER_LABELS);
23042
+ /** The built-in German labels, used when the current locale is a German one. */
23043
+ const GERMAN_CASCADER_LABELS = {
23044
+ loading: 'Lade…',
23045
+ noMatches: 'Keine Treffer',
23046
+ noOptions: 'Keine Optionen',
23047
+ retry: 'Erneut versuchen',
23048
+ options: 'Optionen',
23049
+ back: 'Zurück',
23050
+ search: 'Suchen',
23051
+ error: 'Etwas ist schiefgelaufen',
23052
+ };
23053
+ /** The label set for a locale. Anything other than English and German needs {@link provideCascaderLabels}. */
23054
+ const cascaderLabelsForLocale = (locale) => locale.toLowerCase().startsWith('de') ? GERMAN_CASCADER_LABELS : DEFAULT_CASCADER_LABELS;
23055
+ const CASCADER_LABELS_DEF = /* @__PURE__ */ defineLabels('CASCADER_LABELS', cascaderLabelsForLocale);
22757
23056
  /**
22758
23057
  * Localize the cascader's strings for everything below this injector, and read the set in effect here as a
22759
23058
  * signal. Partial - whatever you leave out keeps its {@link DEFAULT_CASCADER_LABELS} value. See {@link defineLabels}
@@ -23869,7 +24168,7 @@ class LabelDirective {
23869
24168
  @if (requiredMarkerVisible()) {
23870
24169
  <span class="et-label-required-marker" aria-hidden="true">*</span>
23871
24170
  }
23872
- `, isInline: true, styles: ["@layer components{et-label{display:inline;min-inline-size:0}.et-label-content{min-inline-size:0}.et-label-required-marker{display:inline-block;color:var(--et-theme-color-primary-solid);margin-inline-start:.45ch;transition:color .15s ease}et-label[data-disabled] .et-label-required-marker{color:var(--et-surface-interaction-disabled-solid, currentColor)}}\n"], encapsulation: i0.ViewEncapsulation.None }); }
24171
+ `, isInline: true, styles: ["@layer components{et-label{display:inline;min-inline-size:0}et-label[hidden]{display:none}.et-label-content{min-inline-size:0}.et-label-required-marker{display:inline-block;color:var(--et-theme-color-primary-solid);margin-inline-start:.45ch;transition:color .15s ease}et-label[data-disabled] .et-label-required-marker{color:var(--et-surface-interaction-disabled-solid, currentColor)}}\n"], encapsulation: i0.ViewEncapsulation.None }); }
23873
24172
  }
23874
24173
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: LabelDirective, decorators: [{
23875
24174
  type: Component,
@@ -23885,7 +24184,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
23885
24184
  '[attr.id]': 'id()',
23886
24185
  '[attr.data-disabled]': 'effectiveDisabled() || null',
23887
24186
  '(click)': 'handleClick($event)',
23888
- }, styles: ["@layer components{et-label{display:inline;min-inline-size:0}.et-label-content{min-inline-size:0}.et-label-required-marker{display:inline-block;color:var(--et-theme-color-primary-solid);margin-inline-start:.45ch;transition:color .15s ease}et-label[data-disabled] .et-label-required-marker{color:var(--et-surface-interaction-disabled-solid, currentColor)}}\n"] }]
24187
+ }, styles: ["@layer components{et-label{display:inline;min-inline-size:0}et-label[hidden]{display:none}.et-label-content{min-inline-size:0}.et-label-required-marker{display:inline-block;color:var(--et-theme-color-primary-solid);margin-inline-start:.45ch;transition:color .15s ease}et-label[data-disabled] .et-label-required-marker{color:var(--et-surface-interaction-disabled-solid, currentColor)}}\n"] }]
23889
24188
  }], ctorParameters: () => [] });
23890
24189
 
23891
24190
  /**
@@ -23945,7 +24244,27 @@ const DEFAULT_FORM_FIELD_LABELS = {
23945
24244
  errorPattern: () => 'Invalid format',
23946
24245
  errorEmail: 'Enter a valid email address',
23947
24246
  };
23948
- const FORM_FIELD_LABELS_DEF = /* @__PURE__ */ defineLabels('FORM_FIELD_LABELS', DEFAULT_FORM_FIELD_LABELS);
24247
+ /** The built-in German labels, used when the current locale is a German one. */
24248
+ const GERMAN_FORM_FIELD_LABELS = {
24249
+ mixed: 'Gemischt',
24250
+ clear: 'Leeren',
24251
+ selectAll: 'Alle auswählen',
24252
+ ratingEmpty: 'Keine Bewertung',
24253
+ ratingValue: (value, max) => `${value} von ${max}`,
24254
+ counterRemaining: (remaining) => `Noch ${remaining} Zeichen`,
24255
+ counterLimitReached: (max) => `Zeichenlimit von ${max} erreicht`,
24256
+ counterOverLimit: (over, max) => `${over} Zeichen über dem Limit von ${max}`,
24257
+ errorRequired: 'Dieses Feld ist erforderlich',
24258
+ errorMin: (error) => `Muss mindestens ${error.min} sein`,
24259
+ errorMax: (error) => `Darf höchstens ${error.max} sein`,
24260
+ errorMinLength: (error) => `Muss mindestens ${error.minLength} Zeichen lang sein`,
24261
+ errorMaxLength: (error) => `Darf höchstens ${error.maxLength} Zeichen lang sein`,
24262
+ errorPattern: () => 'Ungültiges Format',
24263
+ errorEmail: 'Gültige E-Mail-Adresse eingeben',
24264
+ };
24265
+ /** The label set for a locale. Anything other than English and German needs {@link provideFormFieldLabels}. */
24266
+ const formFieldLabelsForLocale = (locale) => locale.toLowerCase().startsWith('de') ? GERMAN_FORM_FIELD_LABELS : DEFAULT_FORM_FIELD_LABELS;
24267
+ const FORM_FIELD_LABELS_DEF = /* @__PURE__ */ defineLabels('FORM_FIELD_LABELS', formFieldLabelsForLocale);
23949
24268
  /**
23950
24269
  * Localize the strings shared by every form control below this injector, and read the set in effect here
23951
24270
  * as a signal. Partial - whatever you leave out keeps its {@link DEFAULT_FORM_FIELD_LABELS} value. See
@@ -23966,11 +24285,11 @@ const FORM_FIELD_LABELS = /* @__PURE__ */ toToken(FORM_FIELD_LABELS_DEF);
23966
24285
  */
23967
24286
  class FormFieldTextShellStylesComponent {
23968
24287
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: FormFieldTextShellStylesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
23969
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.6", type: FormFieldTextShellStylesComponent, isStandalone: true, selector: "et-form-field-text-shell-styles", ngImport: i0, template: '', isInline: true, styles: ["@layer components{et-form-field:where([data-size=sm]){--et-form-field-gap: 4px;--_et-form-field-control-border-radius: 4px;--et-form-field-control-padding-block: 4px;--et-form-field-control-padding-inline: 10px;--et-form-field-control-affix-gap: 6px;--et-form-field-control-font-size: 12px;--et-form-field-control-min-height: 42px;--et-form-field-label-font-size: 12px}et-form-field:where([data-size=md],:not([data-size])){--et-form-field-gap: 5px;--_et-form-field-control-border-radius: 5px;--et-form-field-control-padding-block: 6px;--et-form-field-control-padding-inline: 12px;--et-form-field-control-affix-gap: 8px;--et-form-field-control-font-size: 14px;--et-form-field-control-min-height: 50px;--et-form-field-label-font-size: 13px}et-form-field:where([data-size=lg]){--et-form-field-gap: 6px;--_et-form-field-control-border-radius: 6px;--et-form-field-control-padding-block: 8px;--et-form-field-control-padding-inline: 14px;--et-form-field-control-affix-gap: 10px;--et-form-field-control-font-size: 16px;--et-form-field-control-min-height: 58px;--et-form-field-label-font-size: 14px}et-form-field[data-fill=filled]{--_et-form-field-control-background: var( --et-surface-background-solid, var(--et-surface-base-solid, transparent) )}et-form-field[data-text-shell][data-label-mode=static][data-has-label] .et-form-field-shell{padding-block-start:calc(var(--et-form-field-label-font-size) * 1.2 + var(--et-form-field-gap))}et-form-field[data-text-shell][data-label-mode=static] .et-form-field-control-area{position:static}et-form-field[data-text-shell][data-label-mode=static] .et-form-field-label-area{position:absolute;inset-block-start:0;inset-inline-start:var(--et-form-field-control-padding-inline);transform:translateY(calc(-100% - var(--et-form-field-gap) - var(--et-form-field-control-border-width)))}et-form-field[data-text-shell][data-label-mode=static][data-appearance=underline][data-fill=transparent] .et-form-field-label-area{inset-inline-start:0}et-form-field[data-text-shell][data-label-mode=inline] .et-form-field-control-frame{align-items:stretch}et-form-field[data-text-shell][data-label-mode=inline] .et-form-field-control-area{position:static;gap:var(--et-form-field-control-affix-gap);align-items:stretch}et-form-field[data-text-shell][data-label-mode=inline] .et-form-field-control-slot{display:flex;align-items:center}et-form-field[data-text-shell][data-label-mode=inline] .et-form-field-label-area--inline{position:static;flex-shrink:0;transform:none;white-space:nowrap;pointer-events:auto;font-size:var(--et-form-field-control-font-size);line-height:var(--et-form-field-control-line-height);display:flex;align-items:center;margin-block:calc(var(--et-form-field-control-padding-block) * -1)}et-form-field[data-text-shell][data-label-mode=inline][data-appearance=underline] .et-form-field-label-area--inline:after{content:\":\"}et-form-field[data-text-shell][data-label-mode=inline][data-appearance=box] .et-form-field-label-area--inline{padding-inline-end:var(--et-form-field-control-padding-inline);margin-inline-end:calc(var(--et-form-field-control-padding-inline) - var(--et-form-field-control-affix-gap));border-inline-end:var(--et-form-field-control-border-width) solid var(--et-surface-border-solid, currentColor)}:is(et-form-field[data-text-shell][data-label-mode=floating-inside],et-form-field[data-text-shell][data-label-mode=floating-outside]) :is(.et-input-native,.et-number-input-native,.et-textarea-native)::placeholder{transition:color .15s ease}:is(et-form-field[data-text-shell][data-label-mode=floating-inside],et-form-field[data-text-shell][data-label-mode=floating-outside]) .et-select-value[data-placeholder]{transition:color .15s ease}:is(et-form-field[data-text-shell][data-label-mode=floating-inside],et-form-field[data-text-shell][data-label-mode=floating-outside]):not([data-label-floated]) :is(.et-input-native,.et-number-input-native,.et-textarea-native)::placeholder{color:transparent}:is(et-form-field[data-text-shell][data-label-mode=floating-inside],et-form-field[data-text-shell][data-label-mode=floating-outside]):not([data-label-floated]) .et-select-value[data-placeholder]{color:transparent}et-form-field[data-text-shell][data-label-mode=floating-outside] .et-form-field-control-area{align-self:stretch;display:flex;align-items:center}et-form-field[data-text-shell][data-label-mode=floating-outside] .et-form-field-label-area--floating{inset-inline-start:0}et-form-field[data-text-shell][data-label-mode=floating-outside][data-has-label] .et-form-field-shell{padding-block-start:calc(var(--et-form-field-label-font-size) * 1.2 + var(--et-form-field-gap))}et-form-field[data-text-shell][data-label-mode=floating-outside][data-label-floated] .et-form-field-label-area--floating{inset-block-start:0;inset-inline-start:calc(var(--_et-form-field-prefix-offset, 0px) * -1);transform:translateY(calc(-100% - var(--et-form-field-gap) - var(--et-form-field-control-border-width) - var(--et-form-field-control-padding-block)))}et-form-field[data-text-shell][data-label-mode=floating-inside]{--_et-form-field-float-inside-extra-padding: calc( var(--et-form-field-label-font-size) * var(--_et-form-field-floating-label-scale) + 2px )}et-form-field[data-text-shell][data-label-mode=floating-inside] .et-form-field-control-area{align-self:stretch;display:flex;align-items:center;padding-block-start:var(--_et-form-field-float-inside-extra-padding)}et-form-field[data-text-shell][data-label-mode=floating-inside] .et-form-field-label-area--floating{inset-inline-start:0}et-form-field[data-text-shell][data-label-mode=floating-inside][data-label-floated] .et-form-field-label-area--floating{inset-block-start:4px;transform:scale(var(--_et-form-field-floating-label-scale))}et-form-field[data-text-shell][data-label-mode=floating-inside] .et-form-field-control-slot{font-size:calc(var(--et-form-field-control-font-size) * .96)}et-form-field[data-text-shell] .et-form-field-label-area{max-inline-size:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(hover:hover){et-form-field[data-text-shell]:where(:not([data-readonly]):not([data-disabled]):not(:has(.et-color-interactive-exclude:hover))):where(:has(.et-form-field-control-frame:hover),:has(.et-form-field-label-area:hover)) .et-form-field-control-frame{border-color:var(--et-surface-interaction-hover-solid, currentColor)}et-form-field[data-text-shell]:where(:not([data-readonly]):not([data-disabled]):not(:has(.et-color-interactive-exclude:hover))):where(:has(.et-form-field-control-frame:hover),:has(.et-form-field-label-area:hover)) .et-form-field-label-area,et-form-field[data-text-shell]:where(:not([data-readonly]):not([data-disabled]):not(:has(.et-color-interactive-exclude:hover))):where(:has(.et-form-field-control-frame:hover),:has(.et-form-field-label-area:hover)) .et-form-field-affix{color:var(--et-surface-color-solid, currentColor);opacity:1}}et-form-field[data-text-shell]:where(:has(:focus-visible):not([data-readonly])) .et-form-field-control-frame,et-form-field[data-text-shell]:where([data-expanded]:not([data-readonly])) .et-form-field-control-frame,et-form-field[data-text-shell]:where([data-focused]:not([data-readonly])) .et-form-field-control-frame{border-color:var(--et-theme-color-primary-solid)}et-form-field[data-text-shell]:where(:has(:focus-visible):not([data-readonly])) .et-form-field-label-area,et-form-field[data-text-shell]:where(:has(:focus-visible):not([data-readonly])) .et-form-field-affix,et-form-field[data-text-shell]:where([data-expanded]:not([data-readonly])) .et-form-field-label-area,et-form-field[data-text-shell]:where([data-expanded]:not([data-readonly])) .et-form-field-affix,et-form-field[data-text-shell]:where([data-focused]:not([data-readonly])) .et-form-field-label-area,et-form-field[data-text-shell]:where([data-focused]:not([data-readonly])) .et-form-field-affix{color:var(--et-surface-color-solid, currentColor);opacity:1}et-form-field[data-text-shell][data-readonly] .et-form-field-shell,et-form-field[data-text-shell][data-readonly] .et-form-field-control-frame,et-form-field[data-text-shell][data-readonly] .et-form-field-label-area,et-form-field[data-text-shell][data-readonly] .et-form-field-control,et-form-field[data-text-shell][data-readonly] input,et-form-field[data-text-shell][data-readonly] textarea,et-form-field[data-text-shell][data-readonly] [contenteditable]{cursor:default}et-form-field[data-text-shell][data-error] .et-form-field-control-frame{border-color:var(--et-theme-color-primary-solid)}et-form-field[data-text-shell][data-error] .et-form-field-label-area{color:var(--et-theme-color-ink-solid)}et-form-field[data-text-shell][data-error] .et-form-field-affix{color:var(--et-theme-color-ink-solid);opacity:1}et-form-field[data-text-shell][data-disabled] .et-form-field-shell{cursor:not-allowed}et-form-field[data-text-shell][data-disabled] .et-form-field-control-frame{opacity:var(--et-form-field-control-disabled-opacity);pointer-events:none;box-shadow:none}et-form-field[data-text-shell][data-disabled] .et-form-field-label-area{cursor:not-allowed}et-form-field[data-text-shell][data-appearance=underline]{--et-form-field-control-min-height: calc( var(--et-form-field-control-font-size) * var(--et-form-field-control-line-height) + var(--et-form-field-control-padding-block) * 2 )}et-form-field[data-text-shell][data-appearance=underline] .et-form-field-control-frame{border-top:none;border-inline:none;border-radius:0;box-shadow:none}et-form-field[data-text-shell][data-appearance=underline][data-fill=transparent] .et-form-field-control-frame{padding-inline:0}et-form-field[data-text-shell][data-appearance=underline][data-fill=transparent] .et-form-field-errors,et-form-field[data-text-shell][data-appearance=underline][data-fill=transparent] .et-form-field-hint{padding-inline-start:0}}\n"], encapsulation: i0.ViewEncapsulation.None }); }
24288
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.6", type: FormFieldTextShellStylesComponent, isStandalone: true, selector: "et-form-field-text-shell-styles", ngImport: i0, template: '', isInline: true, styles: ["@layer components{et-form-field:where([data-size=sm]){--et-form-field-gap: 4px;--_et-form-field-control-border-radius: 4px;--et-form-field-control-padding-block: 4px;--et-form-field-control-padding-inline: 10px;--et-form-field-control-affix-gap: 6px;--et-form-field-control-font-size: 12px;--et-form-field-control-min-height: 32px;--et-form-field-label-font-size: 12px}et-form-field:where([data-size=md],:not([data-size])){--et-form-field-gap: 5px;--_et-form-field-control-border-radius: 5px;--et-form-field-control-padding-block: 6px;--et-form-field-control-padding-inline: 12px;--et-form-field-control-affix-gap: 8px;--et-form-field-control-font-size: 14px;--et-form-field-control-min-height: 50px;--et-form-field-label-font-size: 13px}et-form-field:where([data-size=lg]){--et-form-field-gap: 6px;--_et-form-field-control-border-radius: 6px;--et-form-field-control-padding-block: 8px;--et-form-field-control-padding-inline: 14px;--et-form-field-control-affix-gap: 10px;--et-form-field-control-font-size: 16px;--et-form-field-control-min-height: 58px;--et-form-field-label-font-size: 14px}et-form-field[data-fill=filled]{--_et-form-field-control-background: var( --et-surface-background-solid, var(--et-surface-base-solid, transparent) )}et-form-field[data-text-shell][data-label-mode=static][data-has-label]:not(:has(et-label[hidden])) .et-form-field-shell{padding-block-start:calc(var(--et-form-field-label-font-size) * 1.2 + var(--et-form-field-gap))}et-form-field[data-text-shell][data-label-mode=static] .et-form-field-control-area{position:static}et-form-field[data-text-shell][data-label-mode=static] .et-form-field-label-area{position:absolute;inset-block-start:0;inset-inline-start:var(--et-form-field-control-padding-inline);transform:translateY(calc(-100% - var(--et-form-field-gap) - var(--et-form-field-control-border-width)))}et-form-field[data-text-shell][data-label-mode=static][data-appearance=underline][data-fill=transparent] .et-form-field-label-area{inset-inline-start:0}et-form-field[data-text-shell][data-label-mode=inline] .et-form-field-control-frame{align-items:stretch}et-form-field[data-text-shell][data-label-mode=inline] .et-form-field-control-area{position:static;gap:var(--et-form-field-control-affix-gap);align-items:stretch}et-form-field[data-text-shell][data-label-mode=inline] .et-form-field-control-slot{display:flex;align-items:center}et-form-field[data-text-shell][data-label-mode=inline] .et-form-field-label-area--inline{position:static;flex-shrink:0;transform:none;white-space:nowrap;pointer-events:auto;font-size:var(--et-form-field-control-font-size);line-height:var(--et-form-field-control-line-height);display:flex;align-items:center;margin-block:calc(var(--et-form-field-control-padding-block) * -1)}et-form-field[data-text-shell][data-label-mode=inline][data-appearance=underline] .et-form-field-label-area--inline:after{content:\":\"}et-form-field[data-text-shell][data-label-mode=inline][data-appearance=box] .et-form-field-label-area--inline{padding-inline-end:var(--et-form-field-control-padding-inline);margin-inline-end:calc(var(--et-form-field-control-padding-inline) - var(--et-form-field-control-affix-gap));border-inline-end:var(--et-form-field-control-border-width) solid var(--et-surface-border-solid, currentColor)}:is(et-form-field[data-text-shell][data-label-mode=floating-inside],et-form-field[data-text-shell][data-label-mode=floating-outside]) :is(.et-input-native,.et-number-input-native,.et-textarea-native)::placeholder{transition:color .15s ease}:is(et-form-field[data-text-shell][data-label-mode=floating-inside],et-form-field[data-text-shell][data-label-mode=floating-outside]) .et-select-value[data-placeholder]{transition:color .15s ease}:is(et-form-field[data-text-shell][data-label-mode=floating-inside],et-form-field[data-text-shell][data-label-mode=floating-outside]):not([data-label-floated]) :is(.et-input-native,.et-number-input-native,.et-textarea-native)::placeholder{color:transparent}:is(et-form-field[data-text-shell][data-label-mode=floating-inside],et-form-field[data-text-shell][data-label-mode=floating-outside]):not([data-label-floated]) .et-select-value[data-placeholder]{color:transparent}et-form-field[data-text-shell][data-label-mode=floating-outside] .et-form-field-control-area{align-self:stretch;display:flex;align-items:center}et-form-field[data-text-shell][data-label-mode=floating-outside] .et-form-field-label-area--floating{inset-inline-start:0}et-form-field[data-text-shell][data-label-mode=floating-outside][data-has-label]:not(:has(et-label[hidden])) .et-form-field-shell{padding-block-start:calc(var(--et-form-field-label-font-size) * 1.2 + var(--et-form-field-gap))}et-form-field[data-text-shell][data-label-mode=floating-outside][data-label-floated] .et-form-field-label-area--floating{inset-block-start:0;inset-inline-start:calc(var(--_et-form-field-prefix-offset, 0px) * -1);transform:translateY(calc(-100% - var(--et-form-field-gap) - var(--et-form-field-control-border-width) - var(--et-form-field-control-padding-block)))}et-form-field[data-text-shell][data-label-mode=floating-inside]{--_et-form-field-float-inside-extra-padding: calc( var(--et-form-field-label-font-size) * var(--_et-form-field-floating-label-scale) + 2px )}et-form-field[data-text-shell][data-label-mode=floating-inside] .et-form-field-control-area{align-self:stretch;display:flex;align-items:center;padding-block-start:var(--_et-form-field-float-inside-extra-padding)}et-form-field[data-text-shell][data-label-mode=floating-inside] .et-form-field-label-area--floating{inset-inline-start:0}et-form-field[data-text-shell][data-label-mode=floating-inside][data-label-floated] .et-form-field-label-area--floating{inset-block-start:4px;transform:scale(var(--_et-form-field-floating-label-scale))}et-form-field[data-text-shell][data-label-mode=floating-inside] .et-form-field-control-slot{font-size:calc(var(--et-form-field-control-font-size) * .96)}et-form-field[data-text-shell] .et-form-field-label-area{max-inline-size:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(hover:hover){et-form-field[data-text-shell]:where(:not([data-readonly]):not([data-disabled]):not(:has(.et-color-interactive-exclude:hover))):where(:has(.et-form-field-control-frame:hover),:has(.et-form-field-label-area:hover)) .et-form-field-control-frame{border-color:var(--et-surface-interaction-hover-solid, currentColor)}et-form-field[data-text-shell]:where(:not([data-readonly]):not([data-disabled]):not(:has(.et-color-interactive-exclude:hover))):where(:has(.et-form-field-control-frame:hover),:has(.et-form-field-label-area:hover)) .et-form-field-label-area,et-form-field[data-text-shell]:where(:not([data-readonly]):not([data-disabled]):not(:has(.et-color-interactive-exclude:hover))):where(:has(.et-form-field-control-frame:hover),:has(.et-form-field-label-area:hover)) .et-form-field-affix{color:var(--et-surface-color-solid, currentColor);opacity:1}}et-form-field[data-text-shell]:where(:has(:focus-visible):not([data-readonly])) .et-form-field-control-frame,et-form-field[data-text-shell]:where([data-expanded]:not([data-readonly])) .et-form-field-control-frame,et-form-field[data-text-shell]:where([data-focused]:not([data-readonly])) .et-form-field-control-frame{border-color:var(--et-theme-color-primary-solid)}et-form-field[data-text-shell]:where(:has(:focus-visible):not([data-readonly])) .et-form-field-label-area,et-form-field[data-text-shell]:where(:has(:focus-visible):not([data-readonly])) .et-form-field-affix,et-form-field[data-text-shell]:where([data-expanded]:not([data-readonly])) .et-form-field-label-area,et-form-field[data-text-shell]:where([data-expanded]:not([data-readonly])) .et-form-field-affix,et-form-field[data-text-shell]:where([data-focused]:not([data-readonly])) .et-form-field-label-area,et-form-field[data-text-shell]:where([data-focused]:not([data-readonly])) .et-form-field-affix{color:var(--et-surface-color-solid, currentColor);opacity:1}et-form-field[data-text-shell][data-readonly] .et-form-field-shell,et-form-field[data-text-shell][data-readonly] .et-form-field-control-frame,et-form-field[data-text-shell][data-readonly] .et-form-field-label-area,et-form-field[data-text-shell][data-readonly] .et-form-field-control,et-form-field[data-text-shell][data-readonly] input,et-form-field[data-text-shell][data-readonly] textarea,et-form-field[data-text-shell][data-readonly] [contenteditable]{cursor:default}et-form-field[data-text-shell][data-error] .et-form-field-control-frame{border-color:var(--et-theme-color-primary-solid)}et-form-field[data-text-shell][data-error] .et-form-field-label-area{color:var(--et-theme-color-ink-solid)}et-form-field[data-text-shell][data-error] .et-form-field-affix{color:var(--et-theme-color-ink-solid);opacity:1}et-form-field[data-text-shell][data-disabled] .et-form-field-shell{cursor:not-allowed}et-form-field[data-text-shell][data-disabled] .et-form-field-control-frame{opacity:var(--et-form-field-control-disabled-opacity);pointer-events:none;box-shadow:none}et-form-field[data-text-shell][data-disabled] .et-form-field-label-area{cursor:not-allowed}et-form-field[data-text-shell][data-appearance=underline]{--et-form-field-control-min-height: calc( var(--et-form-field-control-font-size) * var(--et-form-field-control-line-height) + var(--et-form-field-control-padding-block) * 2 )}et-form-field[data-text-shell][data-appearance=underline] .et-form-field-control-frame{border-top:none;border-inline:none;border-radius:0;box-shadow:none}et-form-field[data-text-shell][data-appearance=underline][data-fill=transparent] .et-form-field-control-frame{padding-inline:0}et-form-field[data-text-shell][data-appearance=underline][data-fill=transparent] .et-form-field-errors,et-form-field[data-text-shell][data-appearance=underline][data-fill=transparent] .et-form-field-hint{padding-inline-start:0}}\n"], encapsulation: i0.ViewEncapsulation.None }); }
23970
24289
  }
23971
24290
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: FormFieldTextShellStylesComponent, decorators: [{
23972
24291
  type: Component,
23973
- args: [{ selector: 'et-form-field-text-shell-styles', template: '', encapsulation: ViewEncapsulation.None, styles: ["@layer components{et-form-field:where([data-size=sm]){--et-form-field-gap: 4px;--_et-form-field-control-border-radius: 4px;--et-form-field-control-padding-block: 4px;--et-form-field-control-padding-inline: 10px;--et-form-field-control-affix-gap: 6px;--et-form-field-control-font-size: 12px;--et-form-field-control-min-height: 42px;--et-form-field-label-font-size: 12px}et-form-field:where([data-size=md],:not([data-size])){--et-form-field-gap: 5px;--_et-form-field-control-border-radius: 5px;--et-form-field-control-padding-block: 6px;--et-form-field-control-padding-inline: 12px;--et-form-field-control-affix-gap: 8px;--et-form-field-control-font-size: 14px;--et-form-field-control-min-height: 50px;--et-form-field-label-font-size: 13px}et-form-field:where([data-size=lg]){--et-form-field-gap: 6px;--_et-form-field-control-border-radius: 6px;--et-form-field-control-padding-block: 8px;--et-form-field-control-padding-inline: 14px;--et-form-field-control-affix-gap: 10px;--et-form-field-control-font-size: 16px;--et-form-field-control-min-height: 58px;--et-form-field-label-font-size: 14px}et-form-field[data-fill=filled]{--_et-form-field-control-background: var( --et-surface-background-solid, var(--et-surface-base-solid, transparent) )}et-form-field[data-text-shell][data-label-mode=static][data-has-label] .et-form-field-shell{padding-block-start:calc(var(--et-form-field-label-font-size) * 1.2 + var(--et-form-field-gap))}et-form-field[data-text-shell][data-label-mode=static] .et-form-field-control-area{position:static}et-form-field[data-text-shell][data-label-mode=static] .et-form-field-label-area{position:absolute;inset-block-start:0;inset-inline-start:var(--et-form-field-control-padding-inline);transform:translateY(calc(-100% - var(--et-form-field-gap) - var(--et-form-field-control-border-width)))}et-form-field[data-text-shell][data-label-mode=static][data-appearance=underline][data-fill=transparent] .et-form-field-label-area{inset-inline-start:0}et-form-field[data-text-shell][data-label-mode=inline] .et-form-field-control-frame{align-items:stretch}et-form-field[data-text-shell][data-label-mode=inline] .et-form-field-control-area{position:static;gap:var(--et-form-field-control-affix-gap);align-items:stretch}et-form-field[data-text-shell][data-label-mode=inline] .et-form-field-control-slot{display:flex;align-items:center}et-form-field[data-text-shell][data-label-mode=inline] .et-form-field-label-area--inline{position:static;flex-shrink:0;transform:none;white-space:nowrap;pointer-events:auto;font-size:var(--et-form-field-control-font-size);line-height:var(--et-form-field-control-line-height);display:flex;align-items:center;margin-block:calc(var(--et-form-field-control-padding-block) * -1)}et-form-field[data-text-shell][data-label-mode=inline][data-appearance=underline] .et-form-field-label-area--inline:after{content:\":\"}et-form-field[data-text-shell][data-label-mode=inline][data-appearance=box] .et-form-field-label-area--inline{padding-inline-end:var(--et-form-field-control-padding-inline);margin-inline-end:calc(var(--et-form-field-control-padding-inline) - var(--et-form-field-control-affix-gap));border-inline-end:var(--et-form-field-control-border-width) solid var(--et-surface-border-solid, currentColor)}:is(et-form-field[data-text-shell][data-label-mode=floating-inside],et-form-field[data-text-shell][data-label-mode=floating-outside]) :is(.et-input-native,.et-number-input-native,.et-textarea-native)::placeholder{transition:color .15s ease}:is(et-form-field[data-text-shell][data-label-mode=floating-inside],et-form-field[data-text-shell][data-label-mode=floating-outside]) .et-select-value[data-placeholder]{transition:color .15s ease}:is(et-form-field[data-text-shell][data-label-mode=floating-inside],et-form-field[data-text-shell][data-label-mode=floating-outside]):not([data-label-floated]) :is(.et-input-native,.et-number-input-native,.et-textarea-native)::placeholder{color:transparent}:is(et-form-field[data-text-shell][data-label-mode=floating-inside],et-form-field[data-text-shell][data-label-mode=floating-outside]):not([data-label-floated]) .et-select-value[data-placeholder]{color:transparent}et-form-field[data-text-shell][data-label-mode=floating-outside] .et-form-field-control-area{align-self:stretch;display:flex;align-items:center}et-form-field[data-text-shell][data-label-mode=floating-outside] .et-form-field-label-area--floating{inset-inline-start:0}et-form-field[data-text-shell][data-label-mode=floating-outside][data-has-label] .et-form-field-shell{padding-block-start:calc(var(--et-form-field-label-font-size) * 1.2 + var(--et-form-field-gap))}et-form-field[data-text-shell][data-label-mode=floating-outside][data-label-floated] .et-form-field-label-area--floating{inset-block-start:0;inset-inline-start:calc(var(--_et-form-field-prefix-offset, 0px) * -1);transform:translateY(calc(-100% - var(--et-form-field-gap) - var(--et-form-field-control-border-width) - var(--et-form-field-control-padding-block)))}et-form-field[data-text-shell][data-label-mode=floating-inside]{--_et-form-field-float-inside-extra-padding: calc( var(--et-form-field-label-font-size) * var(--_et-form-field-floating-label-scale) + 2px )}et-form-field[data-text-shell][data-label-mode=floating-inside] .et-form-field-control-area{align-self:stretch;display:flex;align-items:center;padding-block-start:var(--_et-form-field-float-inside-extra-padding)}et-form-field[data-text-shell][data-label-mode=floating-inside] .et-form-field-label-area--floating{inset-inline-start:0}et-form-field[data-text-shell][data-label-mode=floating-inside][data-label-floated] .et-form-field-label-area--floating{inset-block-start:4px;transform:scale(var(--_et-form-field-floating-label-scale))}et-form-field[data-text-shell][data-label-mode=floating-inside] .et-form-field-control-slot{font-size:calc(var(--et-form-field-control-font-size) * .96)}et-form-field[data-text-shell] .et-form-field-label-area{max-inline-size:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(hover:hover){et-form-field[data-text-shell]:where(:not([data-readonly]):not([data-disabled]):not(:has(.et-color-interactive-exclude:hover))):where(:has(.et-form-field-control-frame:hover),:has(.et-form-field-label-area:hover)) .et-form-field-control-frame{border-color:var(--et-surface-interaction-hover-solid, currentColor)}et-form-field[data-text-shell]:where(:not([data-readonly]):not([data-disabled]):not(:has(.et-color-interactive-exclude:hover))):where(:has(.et-form-field-control-frame:hover),:has(.et-form-field-label-area:hover)) .et-form-field-label-area,et-form-field[data-text-shell]:where(:not([data-readonly]):not([data-disabled]):not(:has(.et-color-interactive-exclude:hover))):where(:has(.et-form-field-control-frame:hover),:has(.et-form-field-label-area:hover)) .et-form-field-affix{color:var(--et-surface-color-solid, currentColor);opacity:1}}et-form-field[data-text-shell]:where(:has(:focus-visible):not([data-readonly])) .et-form-field-control-frame,et-form-field[data-text-shell]:where([data-expanded]:not([data-readonly])) .et-form-field-control-frame,et-form-field[data-text-shell]:where([data-focused]:not([data-readonly])) .et-form-field-control-frame{border-color:var(--et-theme-color-primary-solid)}et-form-field[data-text-shell]:where(:has(:focus-visible):not([data-readonly])) .et-form-field-label-area,et-form-field[data-text-shell]:where(:has(:focus-visible):not([data-readonly])) .et-form-field-affix,et-form-field[data-text-shell]:where([data-expanded]:not([data-readonly])) .et-form-field-label-area,et-form-field[data-text-shell]:where([data-expanded]:not([data-readonly])) .et-form-field-affix,et-form-field[data-text-shell]:where([data-focused]:not([data-readonly])) .et-form-field-label-area,et-form-field[data-text-shell]:where([data-focused]:not([data-readonly])) .et-form-field-affix{color:var(--et-surface-color-solid, currentColor);opacity:1}et-form-field[data-text-shell][data-readonly] .et-form-field-shell,et-form-field[data-text-shell][data-readonly] .et-form-field-control-frame,et-form-field[data-text-shell][data-readonly] .et-form-field-label-area,et-form-field[data-text-shell][data-readonly] .et-form-field-control,et-form-field[data-text-shell][data-readonly] input,et-form-field[data-text-shell][data-readonly] textarea,et-form-field[data-text-shell][data-readonly] [contenteditable]{cursor:default}et-form-field[data-text-shell][data-error] .et-form-field-control-frame{border-color:var(--et-theme-color-primary-solid)}et-form-field[data-text-shell][data-error] .et-form-field-label-area{color:var(--et-theme-color-ink-solid)}et-form-field[data-text-shell][data-error] .et-form-field-affix{color:var(--et-theme-color-ink-solid);opacity:1}et-form-field[data-text-shell][data-disabled] .et-form-field-shell{cursor:not-allowed}et-form-field[data-text-shell][data-disabled] .et-form-field-control-frame{opacity:var(--et-form-field-control-disabled-opacity);pointer-events:none;box-shadow:none}et-form-field[data-text-shell][data-disabled] .et-form-field-label-area{cursor:not-allowed}et-form-field[data-text-shell][data-appearance=underline]{--et-form-field-control-min-height: calc( var(--et-form-field-control-font-size) * var(--et-form-field-control-line-height) + var(--et-form-field-control-padding-block) * 2 )}et-form-field[data-text-shell][data-appearance=underline] .et-form-field-control-frame{border-top:none;border-inline:none;border-radius:0;box-shadow:none}et-form-field[data-text-shell][data-appearance=underline][data-fill=transparent] .et-form-field-control-frame{padding-inline:0}et-form-field[data-text-shell][data-appearance=underline][data-fill=transparent] .et-form-field-errors,et-form-field[data-text-shell][data-appearance=underline][data-fill=transparent] .et-form-field-hint{padding-inline-start:0}}\n"] }]
24292
+ args: [{ selector: 'et-form-field-text-shell-styles', template: '', encapsulation: ViewEncapsulation.None, styles: ["@layer components{et-form-field:where([data-size=sm]){--et-form-field-gap: 4px;--_et-form-field-control-border-radius: 4px;--et-form-field-control-padding-block: 4px;--et-form-field-control-padding-inline: 10px;--et-form-field-control-affix-gap: 6px;--et-form-field-control-font-size: 12px;--et-form-field-control-min-height: 32px;--et-form-field-label-font-size: 12px}et-form-field:where([data-size=md],:not([data-size])){--et-form-field-gap: 5px;--_et-form-field-control-border-radius: 5px;--et-form-field-control-padding-block: 6px;--et-form-field-control-padding-inline: 12px;--et-form-field-control-affix-gap: 8px;--et-form-field-control-font-size: 14px;--et-form-field-control-min-height: 50px;--et-form-field-label-font-size: 13px}et-form-field:where([data-size=lg]){--et-form-field-gap: 6px;--_et-form-field-control-border-radius: 6px;--et-form-field-control-padding-block: 8px;--et-form-field-control-padding-inline: 14px;--et-form-field-control-affix-gap: 10px;--et-form-field-control-font-size: 16px;--et-form-field-control-min-height: 58px;--et-form-field-label-font-size: 14px}et-form-field[data-fill=filled]{--_et-form-field-control-background: var( --et-surface-background-solid, var(--et-surface-base-solid, transparent) )}et-form-field[data-text-shell][data-label-mode=static][data-has-label]:not(:has(et-label[hidden])) .et-form-field-shell{padding-block-start:calc(var(--et-form-field-label-font-size) * 1.2 + var(--et-form-field-gap))}et-form-field[data-text-shell][data-label-mode=static] .et-form-field-control-area{position:static}et-form-field[data-text-shell][data-label-mode=static] .et-form-field-label-area{position:absolute;inset-block-start:0;inset-inline-start:var(--et-form-field-control-padding-inline);transform:translateY(calc(-100% - var(--et-form-field-gap) - var(--et-form-field-control-border-width)))}et-form-field[data-text-shell][data-label-mode=static][data-appearance=underline][data-fill=transparent] .et-form-field-label-area{inset-inline-start:0}et-form-field[data-text-shell][data-label-mode=inline] .et-form-field-control-frame{align-items:stretch}et-form-field[data-text-shell][data-label-mode=inline] .et-form-field-control-area{position:static;gap:var(--et-form-field-control-affix-gap);align-items:stretch}et-form-field[data-text-shell][data-label-mode=inline] .et-form-field-control-slot{display:flex;align-items:center}et-form-field[data-text-shell][data-label-mode=inline] .et-form-field-label-area--inline{position:static;flex-shrink:0;transform:none;white-space:nowrap;pointer-events:auto;font-size:var(--et-form-field-control-font-size);line-height:var(--et-form-field-control-line-height);display:flex;align-items:center;margin-block:calc(var(--et-form-field-control-padding-block) * -1)}et-form-field[data-text-shell][data-label-mode=inline][data-appearance=underline] .et-form-field-label-area--inline:after{content:\":\"}et-form-field[data-text-shell][data-label-mode=inline][data-appearance=box] .et-form-field-label-area--inline{padding-inline-end:var(--et-form-field-control-padding-inline);margin-inline-end:calc(var(--et-form-field-control-padding-inline) - var(--et-form-field-control-affix-gap));border-inline-end:var(--et-form-field-control-border-width) solid var(--et-surface-border-solid, currentColor)}:is(et-form-field[data-text-shell][data-label-mode=floating-inside],et-form-field[data-text-shell][data-label-mode=floating-outside]) :is(.et-input-native,.et-number-input-native,.et-textarea-native)::placeholder{transition:color .15s ease}:is(et-form-field[data-text-shell][data-label-mode=floating-inside],et-form-field[data-text-shell][data-label-mode=floating-outside]) .et-select-value[data-placeholder]{transition:color .15s ease}:is(et-form-field[data-text-shell][data-label-mode=floating-inside],et-form-field[data-text-shell][data-label-mode=floating-outside]):not([data-label-floated]) :is(.et-input-native,.et-number-input-native,.et-textarea-native)::placeholder{color:transparent}:is(et-form-field[data-text-shell][data-label-mode=floating-inside],et-form-field[data-text-shell][data-label-mode=floating-outside]):not([data-label-floated]) .et-select-value[data-placeholder]{color:transparent}et-form-field[data-text-shell][data-label-mode=floating-outside] .et-form-field-control-area{align-self:stretch;display:flex;align-items:center}et-form-field[data-text-shell][data-label-mode=floating-outside] .et-form-field-label-area--floating{inset-inline-start:0}et-form-field[data-text-shell][data-label-mode=floating-outside][data-has-label]:not(:has(et-label[hidden])) .et-form-field-shell{padding-block-start:calc(var(--et-form-field-label-font-size) * 1.2 + var(--et-form-field-gap))}et-form-field[data-text-shell][data-label-mode=floating-outside][data-label-floated] .et-form-field-label-area--floating{inset-block-start:0;inset-inline-start:calc(var(--_et-form-field-prefix-offset, 0px) * -1);transform:translateY(calc(-100% - var(--et-form-field-gap) - var(--et-form-field-control-border-width) - var(--et-form-field-control-padding-block)))}et-form-field[data-text-shell][data-label-mode=floating-inside]{--_et-form-field-float-inside-extra-padding: calc( var(--et-form-field-label-font-size) * var(--_et-form-field-floating-label-scale) + 2px )}et-form-field[data-text-shell][data-label-mode=floating-inside] .et-form-field-control-area{align-self:stretch;display:flex;align-items:center;padding-block-start:var(--_et-form-field-float-inside-extra-padding)}et-form-field[data-text-shell][data-label-mode=floating-inside] .et-form-field-label-area--floating{inset-inline-start:0}et-form-field[data-text-shell][data-label-mode=floating-inside][data-label-floated] .et-form-field-label-area--floating{inset-block-start:4px;transform:scale(var(--_et-form-field-floating-label-scale))}et-form-field[data-text-shell][data-label-mode=floating-inside] .et-form-field-control-slot{font-size:calc(var(--et-form-field-control-font-size) * .96)}et-form-field[data-text-shell] .et-form-field-label-area{max-inline-size:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(hover:hover){et-form-field[data-text-shell]:where(:not([data-readonly]):not([data-disabled]):not(:has(.et-color-interactive-exclude:hover))):where(:has(.et-form-field-control-frame:hover),:has(.et-form-field-label-area:hover)) .et-form-field-control-frame{border-color:var(--et-surface-interaction-hover-solid, currentColor)}et-form-field[data-text-shell]:where(:not([data-readonly]):not([data-disabled]):not(:has(.et-color-interactive-exclude:hover))):where(:has(.et-form-field-control-frame:hover),:has(.et-form-field-label-area:hover)) .et-form-field-label-area,et-form-field[data-text-shell]:where(:not([data-readonly]):not([data-disabled]):not(:has(.et-color-interactive-exclude:hover))):where(:has(.et-form-field-control-frame:hover),:has(.et-form-field-label-area:hover)) .et-form-field-affix{color:var(--et-surface-color-solid, currentColor);opacity:1}}et-form-field[data-text-shell]:where(:has(:focus-visible):not([data-readonly])) .et-form-field-control-frame,et-form-field[data-text-shell]:where([data-expanded]:not([data-readonly])) .et-form-field-control-frame,et-form-field[data-text-shell]:where([data-focused]:not([data-readonly])) .et-form-field-control-frame{border-color:var(--et-theme-color-primary-solid)}et-form-field[data-text-shell]:where(:has(:focus-visible):not([data-readonly])) .et-form-field-label-area,et-form-field[data-text-shell]:where(:has(:focus-visible):not([data-readonly])) .et-form-field-affix,et-form-field[data-text-shell]:where([data-expanded]:not([data-readonly])) .et-form-field-label-area,et-form-field[data-text-shell]:where([data-expanded]:not([data-readonly])) .et-form-field-affix,et-form-field[data-text-shell]:where([data-focused]:not([data-readonly])) .et-form-field-label-area,et-form-field[data-text-shell]:where([data-focused]:not([data-readonly])) .et-form-field-affix{color:var(--et-surface-color-solid, currentColor);opacity:1}et-form-field[data-text-shell][data-readonly] .et-form-field-shell,et-form-field[data-text-shell][data-readonly] .et-form-field-control-frame,et-form-field[data-text-shell][data-readonly] .et-form-field-label-area,et-form-field[data-text-shell][data-readonly] .et-form-field-control,et-form-field[data-text-shell][data-readonly] input,et-form-field[data-text-shell][data-readonly] textarea,et-form-field[data-text-shell][data-readonly] [contenteditable]{cursor:default}et-form-field[data-text-shell][data-error] .et-form-field-control-frame{border-color:var(--et-theme-color-primary-solid)}et-form-field[data-text-shell][data-error] .et-form-field-label-area{color:var(--et-theme-color-ink-solid)}et-form-field[data-text-shell][data-error] .et-form-field-affix{color:var(--et-theme-color-ink-solid);opacity:1}et-form-field[data-text-shell][data-disabled] .et-form-field-shell{cursor:not-allowed}et-form-field[data-text-shell][data-disabled] .et-form-field-control-frame{opacity:var(--et-form-field-control-disabled-opacity);pointer-events:none;box-shadow:none}et-form-field[data-text-shell][data-disabled] .et-form-field-label-area{cursor:not-allowed}et-form-field[data-text-shell][data-appearance=underline]{--et-form-field-control-min-height: calc( var(--et-form-field-control-font-size) * var(--et-form-field-control-line-height) + var(--et-form-field-control-padding-block) * 2 )}et-form-field[data-text-shell][data-appearance=underline] .et-form-field-control-frame{border-top:none;border-inline:none;border-radius:0;box-shadow:none}et-form-field[data-text-shell][data-appearance=underline][data-fill=transparent] .et-form-field-control-frame{padding-inline:0}et-form-field[data-text-shell][data-appearance=underline][data-fill=transparent] .et-form-field-errors,et-form-field[data-text-shell][data-appearance=underline][data-fill=transparent] .et-form-field-hint{padding-inline-start:0}}\n"] }]
23974
24293
  }] });
23975
24294
  /**
23976
24295
  * Mounts the text-field shell stylesheet. Call from the constructor of every control that renders
@@ -27048,7 +27367,30 @@ const DEFAULT_COLOR_INPUT_LABELS = {
27048
27367
  invalidColor: (notations) => `Enter a color as ${notations.join(' or ')}`,
27049
27368
  contrastTooLow: (measured, required) => `Contrast is ${measured}:1, needs at least ${required}:1`,
27050
27369
  };
27051
- const COLOR_INPUT_LABELS_DEF = /* @__PURE__ */ defineLabels('COLOR_INPUT_LABELS', DEFAULT_COLOR_INPUT_LABELS);
27370
+ /** The built-in German labels, used when the current locale is a German one. */
27371
+ const GERMAN_COLOR_INPUT_LABELS = {
27372
+ dialog: 'Farbe auswählen',
27373
+ pickerTrigger: 'Farbe auswählen',
27374
+ area: 'Sättigung und Helligkeit',
27375
+ saturation: 'Sättigung',
27376
+ brightness: 'Helligkeit',
27377
+ hue: 'Farbton',
27378
+ alpha: 'Deckkraft',
27379
+ value: 'Farbwert',
27380
+ hex: 'Hex',
27381
+ rgb: 'RGB',
27382
+ hsl: 'HSL',
27383
+ notation: (currentNotation) => `Notation ändern, aktuell ${currentNotation}`,
27384
+ notationConverted: (targetNotation) => `In ${targetNotation} umgewandelt.`,
27385
+ swatches: 'Voreingestellte Farben',
27386
+ swatch: (color, position) => `Farbfeld ${position}, ${color}`,
27387
+ eyedropper: 'Farbe vom Bildschirm aufnehmen',
27388
+ invalidColor: (notations) => `Farbe als ${notations.join(' oder ')} eingeben`,
27389
+ contrastTooLow: (measured, required) => `Der Kontrast beträgt ${measured}:1, erforderlich sind mindestens ${required}:1`,
27390
+ };
27391
+ /** The label set for a locale. Anything other than English and German needs {@link provideColorInputLabels}. */
27392
+ const colorInputLabelsForLocale = (locale) => locale.toLowerCase().startsWith('de') ? GERMAN_COLOR_INPUT_LABELS : DEFAULT_COLOR_INPUT_LABELS;
27393
+ const COLOR_INPUT_LABELS_DEF = /* @__PURE__ */ defineLabels('COLOR_INPUT_LABELS', colorInputLabelsForLocale);
27052
27394
  /**
27053
27395
  * Localize the color picker's strings for everything below this injector, and read the set in
27054
27396
  * effect here as a signal. Partial - whatever you leave out keeps its
@@ -27823,7 +28165,18 @@ const DEFAULT_INPUT_LABELS = {
27823
28165
  hidePassword: 'Hide password',
27824
28166
  capsLockOn: 'Caps Lock might be on',
27825
28167
  };
27826
- const INPUT_LABELS_DEF = /* @__PURE__ */ defineLabels('INPUT_LABELS', DEFAULT_INPUT_LABELS);
28168
+ /** The built-in German labels, used when the current locale is a German one. */
28169
+ const GERMAN_INPUT_LABELS = {
28170
+ increment: 'Erhöhen',
28171
+ decrement: 'Verringern',
28172
+ invalidNumber: 'Bitte eine gültige Zahl eingeben',
28173
+ showPassword: 'Passwort anzeigen',
28174
+ hidePassword: 'Passwort verbergen',
28175
+ capsLockOn: 'Die Feststelltaste ist möglicherweise aktiv',
28176
+ };
28177
+ /** The label set for a locale. Anything other than English and German needs {@link provideInputLabels}. */
28178
+ const inputLabelsForLocale = (locale) => locale.toLowerCase().startsWith('de') ? GERMAN_INPUT_LABELS : DEFAULT_INPUT_LABELS;
28179
+ const INPUT_LABELS_DEF = /* @__PURE__ */ defineLabels('INPUT_LABELS', inputLabelsForLocale);
27827
28180
  /**
27828
28181
  * Localize the text field family's strings for everything below this injector, and read the set in effect here as a
27829
28182
  * signal. Partial - whatever you leave out keeps its {@link DEFAULT_INPUT_LABELS} value. See {@link defineLabels}
@@ -29476,7 +29829,55 @@ const DEFAULT_DATE_TIME_LABELS = {
29476
29829
  timeMin: (min) => `Choose a time at or after ${min}`,
29477
29830
  timeMax: (max) => `Choose a time at or before ${max}`,
29478
29831
  };
29479
- const DATE_TIME_LABELS_DEF = /* @__PURE__ */ defineLabels('DATE_TIME_LABELS', DEFAULT_DATE_TIME_LABELS);
29832
+ /** The built-in German labels, used when the current locale is a German one. */
29833
+ const GERMAN_DATE_TIME_LABELS = {
29834
+ openCalendar: 'Kalender öffnen',
29835
+ openTimePicker: 'Zeitauswahl öffnen',
29836
+ openDateTimePicker: 'Datums- und Zeitauswahl öffnen',
29837
+ chooseDate: 'Datum auswählen',
29838
+ chooseTime: 'Uhrzeit auswählen',
29839
+ chooseDateTime: 'Datum und Uhrzeit auswählen',
29840
+ chooseDateRange: 'Zeitraum auswählen',
29841
+ chooseTimeRange: 'Zeitspanne auswählen',
29842
+ chooseDateTimeRange: 'Zeitraum mit Uhrzeit auswählen',
29843
+ startDate: 'Startdatum',
29844
+ endDate: 'Enddatum',
29845
+ startTime: 'Startzeit',
29846
+ endTime: 'Endzeit',
29847
+ startDateTime: 'Startdatum und -zeit',
29848
+ endDateTime: 'Enddatum und -zeit',
29849
+ dateTab: 'Datum',
29850
+ timeTab: 'Uhrzeit',
29851
+ datesTab: 'Daten',
29852
+ timesTab: 'Uhrzeiten',
29853
+ paneSwitch: 'Auswahlansicht',
29854
+ presets: 'Voreinstellungen',
29855
+ presetToday: 'Heute',
29856
+ presetYesterday: 'Gestern',
29857
+ presetLastDays: (count) => `Letzte ${count} Tage`,
29858
+ presetNextDays: (count) => `Nächste ${count} Tage`,
29859
+ presetThisWeek: 'Diese Woche',
29860
+ presetLastWeek: 'Letzte Woche',
29861
+ presetThisMonth: 'Dieser Monat',
29862
+ presetLastMonth: 'Letzter Monat',
29863
+ presetThisYear: 'Dieses Jahr',
29864
+ timeZoneReading: (timeZone, localTime) => `${timeZone} · ${localTime} Ortszeit`,
29865
+ invalidDate: 'Bitte ein gültiges Datum eingeben',
29866
+ invalidTime: 'Bitte eine gültige Uhrzeit eingeben',
29867
+ invalidDateTime: 'Bitte ein gültiges Datum mit Uhrzeit eingeben',
29868
+ invalidDateRange: 'Bitte einen gültigen Zeitraum eingeben',
29869
+ invalidTimeRange: 'Bitte eine gültige Zeitspanne eingeben',
29870
+ invalidDateTimeRange: 'Bitte einen gültigen Zeitraum mit Uhrzeit eingeben',
29871
+ invalidDuration: 'Bitte eine gültige Dauer eingeben',
29872
+ rangeOrder: 'Der Beginn muss vor dem Ende liegen',
29873
+ rangeMin: (min) => `Ein Datum ab dem ${min} auswählen`,
29874
+ rangeMax: (max) => `Ein Datum bis zum ${max} auswählen`,
29875
+ timeMin: (min) => `Eine Uhrzeit ab ${min} auswählen`,
29876
+ timeMax: (max) => `Eine Uhrzeit bis ${max} auswählen`,
29877
+ };
29878
+ /** The label set for a locale. Anything other than English and German needs {@link provideDateTimeLabels}. */
29879
+ const dateTimeLabelsForLocale = (locale) => locale.toLowerCase().startsWith('de') ? GERMAN_DATE_TIME_LABELS : DEFAULT_DATE_TIME_LABELS;
29880
+ const DATE_TIME_LABELS_DEF = /* @__PURE__ */ defineLabels('DATE_TIME_LABELS', dateTimeLabelsForLocale);
29480
29881
  /**
29481
29882
  * Localize the date/time inputs' strings for everything below this injector, and read the set in effect
29482
29883
  * here as a signal. Partial - whatever you leave out keeps its {@link DEFAULT_DATE_TIME_LABELS} value.
@@ -29894,7 +30295,7 @@ class PickerInputBaseDirective extends FieldStateControlDirective {
29894
30295
  this.formFieldLabels = injectFormFieldLabels();
29895
30296
  this.document = inject(DOCUMENT$1);
29896
30297
  this.formField = inject(FORM_FIELD_TOKEN, { optional: true });
29897
- this.defaultLocale = injectDateLocale();
30298
+ this.defaultLocale = injectDateLocaleSignal();
29898
30299
  /**
29899
30300
  * View state for a field whose source values disagree (bulk edit). The raw form value stays
29900
30301
  * untouched; on a range one flag masks both sides.
@@ -29937,7 +30338,7 @@ class PickerInputBaseDirective extends FieldStateControlDirective {
29937
30338
  ...(ngDevMode ? [{ debugName: "resolvedMixedLabel" }] : /* istanbul ignore next */ []));
29938
30339
  this.effectiveValueFormat = computed(() => this.valueFormat() ?? this.defaultValueFormat, /* @ts-ignore */
29939
30340
  ...(ngDevMode ? [{ debugName: "effectiveValueFormat" }] : /* istanbul ignore next */ []));
29940
- this.effectiveLocale = computed(() => this.locale() ?? this.defaultLocale, /* @ts-ignore */
30341
+ this.effectiveLocale = computed(() => this.locale() ?? this.defaultLocale(), /* @ts-ignore */
29941
30342
  ...(ngDevMode ? [{ debugName: "effectiveLocale" }] : /* istanbul ignore next */ []));
29942
30343
  this.describedBy = signal(null, /* @ts-ignore */
29943
30344
  ...(ngDevMode ? [{ debugName: "describedBy" }] : /* istanbul ignore next */ []));
@@ -31898,7 +32299,19 @@ const DEFAULT_TIME_PICKER_LABELS = {
31898
32299
  durationMinutes: 'min',
31899
32300
  endsNextDay: 'ends next day',
31900
32301
  };
31901
- const TIME_PICKER_LABELS_DEF = /* @__PURE__ */ defineLabels('TIME_PICKER_LABELS', DEFAULT_TIME_PICKER_LABELS);
32302
+ /** The built-in German labels, used when the current locale is a German one. */
32303
+ const GERMAN_TIME_PICKER_LABELS = {
32304
+ time: 'Uhrzeit',
32305
+ startTime: 'Startzeit',
32306
+ endTime: 'Endzeit',
32307
+ emptyHint: 'Uhrzeit wählen',
32308
+ durationHours: 'Std',
32309
+ durationMinutes: 'Min',
32310
+ endsNextDay: 'endet am nächsten Tag',
32311
+ };
32312
+ /** The label set for a locale. Anything other than English and German needs {@link provideTimePickerLabels}. */
32313
+ const timePickerLabelsForLocale = (locale) => locale.toLowerCase().startsWith('de') ? GERMAN_TIME_PICKER_LABELS : DEFAULT_TIME_PICKER_LABELS;
32314
+ const TIME_PICKER_LABELS_DEF = /* @__PURE__ */ defineLabels('TIME_PICKER_LABELS', timePickerLabelsForLocale);
31902
32315
  /**
31903
32316
  * Localize the time picker's strings for everything below this injector, and read the set in effect here as a
31904
32317
  * signal. Partial - whatever you leave out keeps its {@link DEFAULT_TIME_PICKER_LABELS} value. See {@link defineLabels}
@@ -31920,7 +32333,7 @@ class TimePickerDirective {
31920
32333
  constructor() {
31921
32334
  this.timePickerLabels = injectTimePickerLabels();
31922
32335
  this.defaultFormat = injectTimeFormat();
31923
- this.defaultLocale = injectDateLocale();
32336
+ this.defaultLocale = injectDateLocaleSignal();
31924
32337
  this.hostElement = injectHostElement();
31925
32338
  /** Blocks every change: a press, a drag and the keys leave the time alone. */
31926
32339
  this.disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
@@ -31989,7 +32402,7 @@ class TimePickerDirective {
31989
32402
  ...(ngDevMode ? [{ debugName: "now" }] : /* istanbul ignore next */ []));
31990
32403
  this.effectiveFormat = computed(() => this.format() ?? this.defaultFormat, /* @ts-ignore */
31991
32404
  ...(ngDevMode ? [{ debugName: "effectiveFormat" }] : /* istanbul ignore next */ []));
31992
- this.effectiveLocale = computed(() => this.locale() ?? this.defaultLocale, /* @ts-ignore */
32405
+ this.effectiveLocale = computed(() => this.locale() ?? this.defaultLocale(), /* @ts-ignore */
31993
32406
  ...(ngDevMode ? [{ debugName: "effectiveLocale" }] : /* istanbul ignore next */ []));
31994
32407
  this.formatSpec = computed(() => deriveTimeFormatSpec({ format: this.effectiveFormat(), locale: this.effectiveLocale() }), /* @ts-ignore */
31995
32408
  ...(ngDevMode ? [{ debugName: "formatSpec" }] : /* istanbul ignore next */ []));
@@ -34503,9 +34916,9 @@ const timeRangeOrder = (path, options = {}) => rangeOrder({ path, valueFormat: o
34503
34916
  const resolveBound = (bound, ctx) => typeof bound === 'function' ? bound(ctx) : (bound ?? null);
34504
34917
  const bounds = ({ path, sidesOf, valueFormat, options, unit, onZoneCalendar, label }) => {
34505
34918
  const labels = injectDateTimeLabels();
34506
- const locale = inject(DATE_LOCALE);
34919
+ const locale = injectDateLocaleSignal();
34507
34920
  const timeZone = knownTimeZone(options.timeZone);
34508
- const formatBound = (bound) => formatInZone(bound, { format: label, locale, timeZone }) ?? '';
34921
+ const formatBound = (bound) => formatInZone(bound, { format: label(locale()), locale: locale(), timeZone }) ?? '';
34509
34922
  const unitOf = (date) => unit(onZoneCalendar && timeZone !== null ? zonedProxy(date, timeZone) : date).getTime();
34510
34923
  validate(path, (ctx) => {
34511
34924
  const sides = sidesOf(ctx.value())
@@ -34546,7 +34959,7 @@ const dateRangeBounds = (path, options) => {
34546
34959
  options: withControlTimeZone(options),
34547
34960
  unit: (date) => startOfCalendarUnit(date, precision),
34548
34961
  onZoneCalendar: true,
34549
- label: displayFormatForPrecision(precision, inject(DATE_LOCALE)),
34962
+ label: (locale) => displayFormatForPrecision(precision, locale),
34550
34963
  });
34551
34964
  };
34552
34965
  /**
@@ -34564,7 +34977,7 @@ const dateTimeRangeBounds = (path, options) => rangeBounds({
34564
34977
  valueFormat: options.valueFormat ?? inject(DATE_TIME_FORMAT),
34565
34978
  options: withControlTimeZone(options),
34566
34979
  unit: (date) => date,
34567
- label: 'Pp',
34980
+ label: () => 'Pp',
34568
34981
  });
34569
34982
  /**
34570
34983
  * Signal-forms validator for `et-date-input`: fails the value while it lies before `min` or after
@@ -34589,7 +35002,7 @@ const dateBounds = (path, options = {}) => {
34589
35002
  options: withControlTimeZone(options),
34590
35003
  unit: (date) => startOfCalendarUnit(date, precision),
34591
35004
  onZoneCalendar: true,
34592
- label: displayFormatForPrecision(precision, inject(DATE_LOCALE)),
35005
+ label: (locale) => displayFormatForPrecision(precision, locale),
34593
35006
  });
34594
35007
  };
34595
35008
  /**
@@ -34608,14 +35021,14 @@ const dateTimeBounds = (path, options = {}) => bounds({
34608
35021
  valueFormat: options.valueFormat ?? inject(DATE_TIME_FORMAT),
34609
35022
  options: withControlTimeZone(options),
34610
35023
  unit: (date) => date,
34611
- label: 'Pp',
35024
+ label: () => 'Pp',
34612
35025
  });
34613
35026
  const secondsOfDay = (date) => date.getHours() * 3600 + date.getMinutes() * 60 + date.getSeconds();
34614
35027
  const timeOfDayBounds = ({ path, sidesOf, options }) => {
34615
35028
  const labels = injectDateTimeLabels();
34616
- const locale = inject(DATE_LOCALE);
35029
+ const locale = injectDateLocaleSignal();
34617
35030
  const valueFormat = options.valueFormat ?? inject(TIME_FORMAT);
34618
- const formatBound = (bound) => formatInZone(bound, { format: 'p', locale, timeZone: null }) ?? '';
35031
+ const formatBound = (bound) => formatInZone(bound, { format: 'p', locale: locale(), timeZone: null }) ?? '';
34619
35032
  const minError = (min) => ({
34620
35033
  kind: 'rangeMin',
34621
35034
  min,
@@ -35726,7 +36139,24 @@ const DEFAULT_DROPZONE_LABELS = {
35726
36139
  tooManyFiles: (fileName) => `"${fileName}" was not added (only one file is allowed).`,
35727
36140
  uploading: (count) => (count === 1 ? 'Uploading 1 file' : `Uploading ${count} files`),
35728
36141
  };
35729
- const DROPZONE_LABELS_DEF = /* @__PURE__ */ defineLabels('DROPZONE_LABELS', DEFAULT_DROPZONE_LABELS);
36142
+ /** The built-in German labels, used when the current locale is a German one. */
36143
+ const GERMAN_DROPZONE_LABELS = {
36144
+ prompt: 'Per Drag & Drop ablegen oder zum Durchsuchen klicken',
36145
+ empty: 'Keine Dateien',
36146
+ retry: 'Erneut versuchen',
36147
+ remove: 'Entfernen',
36148
+ replaceFile: 'Datei ersetzen',
36149
+ uploadFailed: 'konnte nicht hochgeladen werden',
36150
+ uploadFailedMessage: ({ fileName, serverMessage, uploadFailed }) => serverMessage ? `"${fileName}": ${serverMessage}` : `"${fileName}" ${uploadFailed}.`,
36151
+ unsupportedFileType: (fileName) => `"${fileName}" hat einen nicht unterstützten Dateityp.`,
36152
+ fileTooLarge: (fileName, maxFileSize) => `"${fileName}" ist zu groß${maxFileSize !== undefined ? ` (max. ${formatFileSize(maxFileSize)})` : ''}.`,
36153
+ fileTooSmall: (fileName, minFileSize) => `"${fileName}" ist zu klein${minFileSize !== undefined ? ` (min. ${formatFileSize(minFileSize)})` : ''}.`,
36154
+ tooManyFiles: (fileName) => `"${fileName}" wurde nicht hinzugefügt (nur eine Datei erlaubt).`,
36155
+ uploading: (count) => (count === 1 ? '1 Datei wird hochgeladen' : `${count} Dateien werden hochgeladen`),
36156
+ };
36157
+ /** The label set for a locale. Anything other than English and German needs {@link provideDropzoneLabels}. */
36158
+ const dropzoneLabelsForLocale = (locale) => locale.toLowerCase().startsWith('de') ? GERMAN_DROPZONE_LABELS : DEFAULT_DROPZONE_LABELS;
36159
+ const DROPZONE_LABELS_DEF = /* @__PURE__ */ defineLabels('DROPZONE_LABELS', dropzoneLabelsForLocale);
35730
36160
  /**
35731
36161
  * Localize the dropzone's strings for everything below this injector, and read the set in effect here as a
35732
36162
  * signal. Partial - whatever you leave out keeps its {@link DEFAULT_DROPZONE_LABELS} value. See {@link defineLabels}
@@ -37454,7 +37884,79 @@ const DEFAULT_RICH_TEXT_EDITOR_LABELS = {
37454
37884
  languageFilled: 'has content',
37455
37885
  languageEmpty: 'empty',
37456
37886
  };
37457
- const RICH_TEXT_EDITOR_LABELS_DEF = /* @__PURE__ */ defineLabels('RICH_TEXT_EDITOR_LABELS', DEFAULT_RICH_TEXT_EDITOR_LABELS);
37887
+ /** The built-in German labels, used when the current locale is a German one. */
37888
+ const GERMAN_RICH_TEXT_EDITOR_LABELS = {
37889
+ toolbar: 'Textformatierung',
37890
+ selectionToolbar: 'Formatierung der Auswahl',
37891
+ textStyle: (currentStyle) => `Textstil: ${currentStyle}`,
37892
+ paragraph: 'Normal',
37893
+ heading: (level) => `Überschrift ${level}`,
37894
+ linkEditor: 'Link bearbeiten',
37895
+ linkEditorEdit: 'Link bearbeiten',
37896
+ linkEditorAdd: 'Link hinzufügen',
37897
+ linkEditorClose: 'Schließen',
37898
+ linkTextLabel: 'Text',
37899
+ linkTextPlaceholder: 'Linktext',
37900
+ linkUrlLabel: 'URL',
37901
+ linkUrlPlaceholder: 'https://…',
37902
+ linkUrlUnsupported: 'Einen http(s)-, mailto- oder tel-Link verwenden',
37903
+ linkNewTab: 'In neuem Tab öffnen',
37904
+ linkRemove: 'Entfernen',
37905
+ linkAdd: 'Hinzufügen',
37906
+ linkUpdate: 'Aktualisieren',
37907
+ linkPrompt: 'Link-URL',
37908
+ imageEditor: 'Bild',
37909
+ imageEditorClose: 'Schließen',
37910
+ imageAltLabel: 'Alternativtext',
37911
+ imageAltPlaceholder: 'Das Bild beschreiben',
37912
+ imageAltHint: 'Leer lassen, wenn das Bild nur dekorativ ist',
37913
+ imageRemove: 'Entfernen',
37914
+ imageUpdate: 'Aktualisieren',
37915
+ imageUploading: 'Bild wird hochgeladen…',
37916
+ imageUploadFailed: 'Bild konnte nicht hochgeladen werden',
37917
+ insertToken: 'Platzhalter einfügen',
37918
+ noResults: 'Keine Ergebnisse',
37919
+ loadFailed: 'Etwas ist schiefgelaufen',
37920
+ tableSize: (rows, columns) => `${rows} mal ${columns}`,
37921
+ tableSizePreview: (rows, columns) => `${rows} × ${columns}`,
37922
+ tableInsert: 'Tabelle einfügen',
37923
+ tableInsertHeaderRow: 'Kopfzeile einfügen',
37924
+ tableInsertRowAbove: 'Zeile oberhalb einfügen',
37925
+ tableInsertRowBelow: 'Zeile unterhalb einfügen',
37926
+ tableInsertColumnLeft: 'Spalte links einfügen',
37927
+ tableInsertColumnRight: 'Spalte rechts einfügen',
37928
+ tableDeleteRow: 'Zeile löschen',
37929
+ tableDeleteColumn: 'Spalte löschen',
37930
+ tableDeleteTable: 'Tabelle löschen',
37931
+ undo: 'Rückgängig',
37932
+ redo: 'Wiederholen',
37933
+ bold: 'Fett',
37934
+ italic: 'Kursiv',
37935
+ strike: 'Durchgestrichen',
37936
+ underline: 'Unterstrichen',
37937
+ code: 'Inline-Code',
37938
+ bulletedList: 'Aufzählung',
37939
+ numberedList: 'Nummerierte Liste',
37940
+ blockquote: 'Zitat',
37941
+ codeBlock: 'Codeblock',
37942
+ link: 'Link',
37943
+ align: 'Ausrichtung',
37944
+ alignTrigger: 'Textausrichtung',
37945
+ alignLeft: 'Linksbündig',
37946
+ alignCenter: 'Zentriert',
37947
+ alignRight: 'Rechtsbündig',
37948
+ alignJustify: 'Blocksatz',
37949
+ table: 'Tabelle',
37950
+ image: 'Bild',
37951
+ language: 'Sprache',
37952
+ languageTrigger: (currentLanguage) => `Sprache: ${currentLanguage}`,
37953
+ languageMissing: (count) => (count === 1 ? '1 Sprache fehlt' : `${count} Sprachen fehlen`),
37954
+ languageFilled: 'hat Inhalt',
37955
+ languageEmpty: 'leer',
37956
+ };
37957
+ /** The label set for a locale. Anything other than English and German needs {@link provideRichTextEditorLabels}. */
37958
+ const richTextEditorLabelsForLocale = (locale) => locale.toLowerCase().startsWith('de') ? GERMAN_RICH_TEXT_EDITOR_LABELS : DEFAULT_RICH_TEXT_EDITOR_LABELS;
37959
+ const RICH_TEXT_EDITOR_LABELS_DEF = /* @__PURE__ */ defineLabels('RICH_TEXT_EDITOR_LABELS', richTextEditorLabelsForLocale);
37458
37960
  /**
37459
37961
  * Localize the rich text editor's strings for everything below this injector, and read the set in
37460
37962
  * effect here as a signal. Partial - whatever you leave out keeps its
@@ -47585,7 +48087,15 @@ const DEFAULT_PHONE_INPUT_LABELS = {
47585
48087
  searchCountries: 'Search countries',
47586
48088
  noCountries: 'No countries found',
47587
48089
  };
47588
- const PHONE_INPUT_LABELS_DEF = /* @__PURE__ */ defineLabels('PHONE_INPUT_LABELS', DEFAULT_PHONE_INPUT_LABELS);
48090
+ /** The built-in German labels, used when the current locale is a German one. */
48091
+ const GERMAN_PHONE_INPUT_LABELS = {
48092
+ selectCountry: 'Land auswählen',
48093
+ searchCountries: 'Länder durchsuchen',
48094
+ noCountries: 'Keine Länder gefunden',
48095
+ };
48096
+ /** The label set for a locale. Anything other than English and German needs {@link providePhoneInputLabels}. */
48097
+ const phoneInputLabelsForLocale = (locale) => locale.toLowerCase().startsWith('de') ? GERMAN_PHONE_INPUT_LABELS : DEFAULT_PHONE_INPUT_LABELS;
48098
+ const PHONE_INPUT_LABELS_DEF = /* @__PURE__ */ defineLabels('PHONE_INPUT_LABELS', phoneInputLabelsForLocale);
47589
48099
  /**
47590
48100
  * Localize the phone input's strings for everything below this injector, and read the set in effect here as a
47591
48101
  * signal. Partial - whatever you leave out keeps its {@link DEFAULT_PHONE_INPUT_LABELS} value. See {@link defineLabels}
@@ -50234,7 +50744,18 @@ const DEFAULT_SELECT_LABELS = {
50234
50744
  create: 'Create',
50235
50745
  error: 'Something went wrong',
50236
50746
  };
50237
- const SELECT_LABELS_DEF = /* @__PURE__ */ defineLabels('SELECT_LABELS', DEFAULT_SELECT_LABELS);
50747
+ /** The built-in German labels, used when the current locale is a German one. */
50748
+ const GERMAN_SELECT_LABELS = {
50749
+ loading: 'Lade…',
50750
+ empty: 'Keine Ergebnisse',
50751
+ loadMore: 'Mehr laden',
50752
+ addNew: 'Neu hinzufügen',
50753
+ create: 'Erstellen',
50754
+ error: 'Etwas ist schiefgelaufen',
50755
+ };
50756
+ /** The label set for a locale. Anything other than English and German needs {@link provideSelectLabels}. */
50757
+ const selectLabelsForLocale = (locale) => locale.toLowerCase().startsWith('de') ? GERMAN_SELECT_LABELS : DEFAULT_SELECT_LABELS;
50758
+ const SELECT_LABELS_DEF = /* @__PURE__ */ defineLabels('SELECT_LABELS', selectLabelsForLocale);
50238
50759
  /**
50239
50760
  * Localize the select's strings for everything below this injector, and read the set in effect here as a
50240
50761
  * signal. Partial - whatever you leave out keeps its {@link DEFAULT_SELECT_LABELS} value. See {@link defineLabels}
@@ -50742,7 +51263,7 @@ class SelectComponent {
50742
51263
  return () => injector.get(SelectDirective).focus({ preventScroll: true });
50743
51264
  },
50744
51265
  },
50745
- ], hostDirectives: [{ directive: SelectDirective, inputs: ["value", "value", "mixed", "mixed", "touched", "touched", "open", "open", "multiple", "multiple", "placeholder", "placeholder", "mixedLabel", "mixedLabel", "disabled", "disabled", "readonly", "readonly", "invalid", "invalid", "errors", "errors", "required", "required", "name", "name", "maxLength", "maxLength", "pending", "pending", "options", "options", "compareWith", "compareWith", "valueKey", "valueKey", "displayWith", "displayWith", "filterMode", "filterMode", "allowCustomValues", "allowCustomValues", "separators", "separators", "normalizeValue", "normalizeValue", "commitCustomValueOnClose", "commitCustomValueOnClose", "maxSelection", "maxSelection", "allowAddNew", "allowAddNew", "loading", "loading", "loadError", "loadError", "hasMoreItems", "hasMoreItems", "pickOnly", "pickOnly", "selectAll", "selectAll", "mirrorPanelWidth", "mirrorPanelWidth", "aria-label", "aria-label", "aria-labelledby", "aria-labelledby", "hidden", "hidden", "warnings", "warnings"], outputs: ["valueChange", "valueChange", "mixedChange", "mixedChange", "touchedChange", "touchedChange", "touch", "touch", "openChange", "openChange", "queryChange", "queryChange", "loadMore", "loadMore", "addNew", "addNew", "pickOption", "pickOption", "afterOpen", "afterOpen", "afterClose", "afterClose"] }, { directive: i1.ColorInteractiveDirective }], ngImport: i0, template: "<!-- a div, not a <button>: chips carry remove buttons and buttons cannot nest.\n The trigger directive manages tabindex/aria-disabled for non-button hosts. -->\n<div class=\"et-select-trigger\" etSelectTrigger>\n <div [class.et-select-trigger-content--stacked]=\"stackedValue()\" class=\"et-select-trigger-content\">\n @if (select.mixed()) {\n @if (showValueLabel()) {\n <span [id]=\"mixedLabelId\" class=\"et-select-value\">{{ select.displayValue() }}</span>\n }\n } @else if (select.registeredValueTemplate(); as valueTemplate) {\n @if (showCustomValue()) {\n <div class=\"et-select-value-custom\">\n <ng-template [ngTemplateOutlet]=\"valueTemplate.templateRef\" [ngTemplateOutletContext]=\"valueContext()\" />\n </div>\n }\n } @else if (select.multiple() && select.selectedEntries().length) {\n <div class=\"et-select-chips\">\n @for (entry of select.selectedEntries(); track entry.value) {\n <et-chip\n [disabled]=\"select.disabled()\"\n [removable]=\"!select.readonly() && !select.disabled()\"\n (remove)=\"select.deselectValue(entry.value)\"\n >\n {{ entry.label }}\n </et-chip>\n }\n </div>\n }\n\n @if (!select.mixed() && showValueLabel()) {\n <span [attr.data-placeholder]=\"select.displayValue() === null || null\" class=\"et-select-value\">\n {{ select.displayValue() ?? select.placeholder() }}\n </span>\n }\n\n <ng-content select=\"input[etSelectSearch]\" />\n </div>\n\n @if (select.showLoadingIndicator() && !select.open()) {\n <div class=\"et-select-trigger-busy\" animate.enter=\"et-select-trigger-busy--enter\">\n <et-spinner diameter=\"16\" strokeWidth=\"2\" />\n </div>\n }\n</div>\n\n<ng-template etControlSuffix>\n @if (showClear()) {\n <!-- pointer-only, out of the tab order \u2014 keyboard users clear via Backspace / erasing.\n mousedown is prevented so the trigger keeps focus: `showClear` reads `focused()`, so a\n blur would unmount this button before the click could land -->\n <button\n [attr.aria-label]=\"resolvedClearLabel()\"\n (click)=\"handleClearClick($event)\"\n (mousedown)=\"$event.preventDefault()\"\n class=\"et-input-clear\"\n animate.enter=\"et-input-clear--enter\"\n animate.leave=\"et-input-clear--leave\"\n tabindex=\"-1\"\n type=\"button\"\n >\n <i etIcon=\"et-times\"></i>\n </button>\n }\n\n <button\n [disabled]=\"select.disabled()\"\n (click)=\"handleArrowClick($event)\"\n (mousedown)=\"$event.preventDefault()\"\n class=\"et-input-picker-trigger et-select-arrow\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n type=\"button\"\n >\n <i etIcon=\"et-chevron\"></i>\n </button>\n</ng-template>\n\n<ng-template #optionContent>\n <ng-content />\n</ng-template>\n\n@if (!select.isMounted()) {\n <!-- keeps the projected options rendered (and their bindings live) while the panel is\n closed, so the trigger can resolve a preselected value's label and closed typeahead\n works \u2014 the same template moves into the overlay while it is open -->\n <div class=\"et-select-detached-options\" aria-hidden=\"true\" hidden>\n <ng-template [ngTemplateOutlet]=\"optionContent\" />\n </div>\n}\n\n<ng-template etSelectSurface>\n <et-select-panel #panelThemes=\"etSemanticThemes\" etSemanticThemes>\n @if (select.showSelectAll()) {\n <et-select-all-option>{{ resolvedSelectAllLabel() }}</et-select-all-option>\n }\n\n @if (select.options()) {\n <div\n [style.padding-block-start.px]=\"select.virtualWindow.paddingTop()\"\n [style.padding-block-end.px]=\"select.virtualWindow.paddingBottom()\"\n class=\"et-select-virtual-options\"\n role=\"none\"\n >\n @for (item of select.virtualizedItems(); track item.id()) {\n <et-select-virtual-option [item]=\"item\" />\n }\n </div>\n }\n\n <ng-template [ngTemplateOutlet]=\"optionContent\" />\n\n @if (select.customValueCandidate(); as candidate) {\n <et-select-option [value]=\"candidate\" [label]=\"candidate\" class=\"et-select-create-option\" customValueOption>\n <i class=\"et-select-create-option-icon\" etIcon=\"et-plus\" aria-hidden=\"true\"></i>\n {{ resolvedCreateLabel() }} \u201C{{ candidate }}\u201D\n </et-select-option>\n }\n\n <div class=\"et-select-panel-extras\" etSelectPanelExtras>\n @if (showBusyBar()) {\n <div class=\"et-select-busy-bar\" role=\"presentation\" aria-hidden=\"true\"></div>\n }\n\n @if (showLoadingRow()) {\n @if (select.registeredLoadingTemplate(); as loadingTemplate) {\n @if (select.showLoadingIndicator()) {\n <ng-template [ngTemplateOutlet]=\"loadingTemplate.templateRef\" />\n }\n } @else {\n <div class=\"et-select-state et-select-state--loading\">\n <span\n [class.et-select-state-content--visible]=\"select.showLoadingIndicator()\"\n [attr.aria-hidden]=\"!select.showLoadingIndicator() || null\"\n class=\"et-select-state-content\"\n >\n <et-spinner class=\"et-select-state-spinner\" diameter=\"16\" strokeWidth=\"2\" />\n {{ selectLabels().loading }}\n </span>\n </div>\n }\n } @else if (select.error(); as error) {\n @if (select.registeredErrorTemplate(); as errorTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"errorTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: error }\"\n />\n } @else {\n <div\n [etProvideColor]=\"panelThemes.themes.error()\"\n class=\"et-select-state et-select-state--error\"\n role=\"alert\"\n >\n {{ error }}\n </div>\n }\n } @else if (!select.visibleItems().length) {\n @if (select.registeredEmptyTemplate(); as emptyTemplate) {\n <ng-template [ngTemplateOutlet]=\"emptyTemplate.templateRef\" />\n } @else {\n <div class=\"et-select-state et-select-state--empty\">{{ selectLabels().empty }}</div>\n }\n }\n\n @if (select.hasMoreItems() && !showLoadingRow()) {\n @if (showLoadMoreLoading()) {\n <div class=\"et-select-load-more et-select-load-more--loading\" aria-live=\"polite\">\n <et-spinner class=\"et-select-state-spinner\" diameter=\"16\" strokeWidth=\"2\" />\n {{ selectLabels().loading }}\n </div>\n } @else {\n <button\n [disabled]=\"select.loading()\"\n (click)=\"select.requestLoadMore()\"\n class=\"et-select-load-more\"\n tabindex=\"-1\"\n type=\"button\"\n >\n <i class=\"et-select-load-more-icon\" etIcon=\"et-chevron\" aria-hidden=\"true\"></i>\n {{ resolvedLoadMoreLabel() }}\n </button>\n }\n }\n\n @if (select.allowAddNew() && !showLoadingRow()) {\n <button (click)=\"select.requestAddNew()\" class=\"et-select-add-new\" tabindex=\"-1\" type=\"button\">\n <i class=\"et-select-add-new-icon\" etIcon=\"et-plus\" aria-hidden=\"true\"></i>\n {{ resolvedAddNewLabel() }}\n </button>\n }\n </div>\n </et-select-panel>\n</ng-template>\n", styles: ["@layer components{et-select{--_et-select-trigger-busy-fade: 24px;--_et-select-trigger-busy-cover: 16px;--_et-select-trigger-busy-mask-direction: to right;display:flex;align-items:center;gap:6px;flex:1;min-inline-size:0;color:inherit}et-select .et-select-trigger{display:flex;align-items:center;gap:6px;flex:1;outline:none;color:inherit;min-inline-size:0;text-align:start;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation}et-select .et-select-trigger[data-disabled]{cursor:not-allowed}et-select .et-select-trigger[data-readonly]{cursor:default}et-select .et-select-trigger .et-select-trigger-content{display:flex;flex-wrap:wrap;align-items:center;gap:6px;flex:1;min-inline-size:0}et-select .et-select-trigger .et-select-trigger-content.et-select-trigger-content--stacked{display:grid;grid-template-columns:minmax(0,1fr)}et-select .et-select-trigger .et-select-trigger-content.et-select-trigger-content--stacked>*{grid-area:1 / 1}et-select .et-select-trigger .et-select-trigger-content.et-select-trigger-content--stacked:has(.et-select-value-custom) input[etselectsearch]{caret-color:transparent}et-select .et-select-trigger input[etselectsearch]{flex:1 1 60px;min-inline-size:60px;border:none;outline:none;background:transparent;font:inherit;color:inherit;padding:0;caret-color:var(--et-theme-color-primary-solid, currentColor);cursor:text}et-select .et-select-trigger input[etselectsearch]::placeholder{color:var(--et-surface-color-muted-solid, color-mix(in srgb, currentColor 46%, transparent))}et-select .et-select-trigger input[etselectsearch]:read-only{cursor:default;caret-color:transparent}et-select .et-select-trigger input[etselectsearch]:disabled{cursor:not-allowed}et-select .et-select-trigger:has(input[etselectsearch]) .et-select-value{flex:0 1 auto}et-select .et-select-value{flex:1;min-block-size:1lh;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-inline-size:0}et-select .et-select-value[data-placeholder]{color:var(--et-surface-color-muted-solid, color-mix(in srgb, currentColor 46%, transparent))}et-select[data-mixed] .et-select-value,et-select[data-mixed] input[etselectsearch]:not(:focus){font-style:italic;color:color-mix(in srgb,currentColor 72%,transparent)}et-select .et-select-value-custom{display:flex;align-items:center;flex:1;min-inline-size:0}et-select .et-select-trigger-content:has(input[etselectsearch]) .et-select-value-custom{flex:0 1 auto}et-select .et-select-trigger-content:has(.et-select-value-custom) input[etselectsearch]::placeholder{color:transparent}et-select .et-select-chips{display:contents}et-select .et-select-trigger-busy{position:relative;display:flex;align-items:center;align-self:stretch;flex:none;padding-inline-start:var(--_et-select-trigger-busy-fade);margin-inline-start:calc(-1 * (var(--_et-select-trigger-busy-fade) + var(--_et-select-trigger-busy-cover) + 6px));color:var(--et-surface-color-muted-solid, currentColor)}et-select:dir(rtl){--_et-select-trigger-busy-mask-direction: to left}et-select .et-select-trigger:has(>.et-select-trigger-busy) .et-select-trigger-content{-webkit-mask-image:linear-gradient(var(--_et-select-trigger-busy-mask-direction),black calc(100% - var(--_et-select-trigger-busy-cover) - var(--_et-select-trigger-busy-fade)),transparent calc(100% - var(--_et-select-trigger-busy-cover)));mask-image:linear-gradient(var(--_et-select-trigger-busy-mask-direction),black calc(100% - var(--_et-select-trigger-busy-cover) - var(--_et-select-trigger-busy-fade)),transparent calc(100% - var(--_et-select-trigger-busy-cover)))}et-select .et-select-trigger-busy--enter{animation:et-select-busy-in .12s ease}@media(prefers-reduced-motion:reduce){et-select .et-select-trigger-busy--enter{animation:none}}.et-select-arrow .et-icon{rotate:180deg}@keyframes et-select-busy-in{0%{opacity:0}}}\n"], dependencies: [{ kind: "directive", type: SelectTriggerDirective, selector: "[etSelectTrigger]", exportAs: ["etSelectTrigger"] }, { kind: "directive", type: SelectSurfaceDirective, selector: "ng-template[etSelectSurface]", exportAs: ["etSelectSurface"] }, { kind: "directive", type: ControlSuffixDirective, selector: "ng-template[etControlSuffix]" }, { kind: "component", type: SelectPanelComponent, selector: "et-select-panel" }, { kind: "component", type: SelectOptionComponent, selector: "et-select-option" }, { kind: "component", type: SelectAllOptionComponent, selector: "et-select-all-option" }, { kind: "component", type: SelectVirtualOptionComponent, selector: "et-select-virtual-option" }, { kind: "directive", type: IconDirective, selector: "[etIcon]", inputs: ["etIcon", "variant", "allowHardcodedColor", "label"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ChipComponent, selector: "et-chip" }, { kind: "component", type: SpinnerComponent, selector: "et-spinner", inputs: ["diameter", "strokeWidth", "track", "value"] }, { kind: "directive", type: ProvideColorDirective, selector: "[etProvideColor]", inputs: ["etProvideColor"] }, { kind: "directive", type: SemanticThemesDirective, selector: "[etSemanticThemes]", exportAs: ["etSemanticThemes"] }], encapsulation: i0.ViewEncapsulation.None }); }
51266
+ ], hostDirectives: [{ directive: SelectDirective, inputs: ["value", "value", "mixed", "mixed", "touched", "touched", "open", "open", "multiple", "multiple", "placeholder", "placeholder", "mixedLabel", "mixedLabel", "disabled", "disabled", "readonly", "readonly", "invalid", "invalid", "errors", "errors", "required", "required", "name", "name", "maxLength", "maxLength", "pending", "pending", "options", "options", "compareWith", "compareWith", "valueKey", "valueKey", "displayWith", "displayWith", "filterMode", "filterMode", "allowCustomValues", "allowCustomValues", "separators", "separators", "normalizeValue", "normalizeValue", "commitCustomValueOnClose", "commitCustomValueOnClose", "maxSelection", "maxSelection", "allowAddNew", "allowAddNew", "loading", "loading", "loadError", "loadError", "hasMoreItems", "hasMoreItems", "pickOnly", "pickOnly", "selectAll", "selectAll", "mirrorPanelWidth", "mirrorPanelWidth", "aria-label", "aria-label", "aria-labelledby", "aria-labelledby", "hidden", "hidden", "warnings", "warnings"], outputs: ["valueChange", "valueChange", "mixedChange", "mixedChange", "touchedChange", "touchedChange", "touch", "touch", "openChange", "openChange", "queryChange", "queryChange", "loadMore", "loadMore", "addNew", "addNew", "pickOption", "pickOption", "afterOpen", "afterOpen", "afterClose", "afterClose"] }, { directive: i1.ColorInteractiveDirective }], ngImport: i0, template: "<!-- a div, not a <button>: chips carry remove buttons and buttons cannot nest.\n The trigger directive manages tabindex/aria-disabled for non-button hosts. -->\n<div class=\"et-select-trigger\" etSelectTrigger>\n <div [class.et-select-trigger-content--stacked]=\"stackedValue()\" class=\"et-select-trigger-content\">\n @if (select.mixed()) {\n @if (showValueLabel()) {\n <span [id]=\"mixedLabelId\" class=\"et-select-value\">{{ select.displayValue() }}</span>\n }\n } @else if (select.registeredValueTemplate(); as valueTemplate) {\n @if (showCustomValue()) {\n <div class=\"et-select-value-custom\">\n <ng-template [ngTemplateOutlet]=\"valueTemplate.templateRef\" [ngTemplateOutletContext]=\"valueContext()\" />\n </div>\n }\n } @else if (select.multiple() && select.selectedEntries().length) {\n <div class=\"et-select-chips\">\n @for (entry of select.selectedEntries(); track entry.value) {\n <et-chip\n [disabled]=\"select.disabled()\"\n [removable]=\"!select.readonly() && !select.disabled()\"\n (remove)=\"select.deselectValue(entry.value)\"\n >\n {{ entry.label }}\n </et-chip>\n }\n </div>\n }\n\n @if (!select.mixed() && showValueLabel()) {\n <span [attr.data-placeholder]=\"select.displayValue() === null || null\" class=\"et-select-value\">\n {{ select.displayValue() ?? select.placeholder() }}\n </span>\n }\n\n <ng-content select=\"input[etSelectSearch]\" />\n </div>\n\n @if (select.showLoadingIndicator() && !select.open()) {\n <div class=\"et-select-trigger-busy\" animate.enter=\"et-select-trigger-busy--enter\">\n <et-spinner diameter=\"16\" strokeWidth=\"2\" />\n </div>\n }\n</div>\n\n<ng-template etControlSuffix>\n @if (showClear()) {\n <!-- pointer-only, out of the tab order \u2014 keyboard users clear via Backspace / erasing.\n mousedown is prevented so the trigger keeps focus: `showClear` reads `focused()`, so a\n blur would unmount this button before the click could land -->\n <button\n [attr.aria-label]=\"resolvedClearLabel()\"\n (click)=\"handleClearClick($event)\"\n (mousedown)=\"$event.preventDefault()\"\n class=\"et-input-clear\"\n animate.enter=\"et-input-clear--enter\"\n animate.leave=\"et-input-clear--leave\"\n tabindex=\"-1\"\n type=\"button\"\n >\n <i etIcon=\"et-times\"></i>\n </button>\n }\n\n <button\n [disabled]=\"select.disabled()\"\n (click)=\"handleArrowClick($event)\"\n (mousedown)=\"$event.preventDefault()\"\n class=\"et-input-picker-trigger et-select-arrow\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n type=\"button\"\n >\n <i etIcon=\"et-chevron\"></i>\n </button>\n</ng-template>\n\n<ng-template #optionContent>\n <ng-content />\n</ng-template>\n\n@if (!select.isMounted()) {\n <!-- keeps the projected options rendered (and their bindings live) while the panel is\n closed, so the trigger can resolve a preselected value's label and closed typeahead\n works \u2014 the same template moves into the overlay while it is open -->\n <div class=\"et-select-detached-options\" aria-hidden=\"true\" hidden>\n <ng-template [ngTemplateOutlet]=\"optionContent\" />\n </div>\n}\n\n<ng-template etSelectSurface>\n <et-select-panel #panelThemes=\"etSemanticThemes\" etSemanticThemes>\n @if (select.showSelectAll()) {\n <et-select-all-option>{{ resolvedSelectAllLabel() }}</et-select-all-option>\n }\n\n @if (select.options()) {\n <div\n [style.padding-block-start.px]=\"select.virtualWindow.paddingTop()\"\n [style.padding-block-end.px]=\"select.virtualWindow.paddingBottom()\"\n class=\"et-select-virtual-options\"\n role=\"none\"\n >\n @for (item of select.virtualizedItems(); track item.id()) {\n <et-select-virtual-option [item]=\"item\" />\n }\n </div>\n }\n\n <ng-template [ngTemplateOutlet]=\"optionContent\" />\n\n @if (select.customValueCandidate(); as candidate) {\n <et-select-option [value]=\"candidate\" [label]=\"candidate\" class=\"et-select-create-option\" customValueOption>\n <i class=\"et-select-create-option-icon\" etIcon=\"et-plus\" aria-hidden=\"true\"></i>\n {{ resolvedCreateLabel() }} \u201C{{ candidate }}\u201D\n </et-select-option>\n }\n\n <div class=\"et-select-panel-extras\" etSelectPanelExtras>\n @if (showBusyBar()) {\n <div class=\"et-select-busy-bar\" role=\"presentation\" aria-hidden=\"true\"></div>\n }\n\n @if (showLoadingRow()) {\n @if (select.registeredLoadingTemplate(); as loadingTemplate) {\n @if (select.showLoadingIndicator()) {\n <ng-template [ngTemplateOutlet]=\"loadingTemplate.templateRef\" />\n }\n } @else {\n <div class=\"et-select-state et-select-state--loading\">\n <span\n [class.et-select-state-content--visible]=\"select.showLoadingIndicator()\"\n [attr.aria-hidden]=\"!select.showLoadingIndicator() || null\"\n class=\"et-select-state-content\"\n >\n <et-spinner class=\"et-select-state-spinner\" diameter=\"16\" strokeWidth=\"2\" />\n {{ selectLabels().loading }}\n </span>\n </div>\n }\n } @else if (select.error(); as error) {\n @if (select.registeredErrorTemplate(); as errorTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"errorTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: error }\"\n />\n } @else {\n <div\n [etProvideColor]=\"panelThemes.themes.error()\"\n class=\"et-select-state et-select-state--error\"\n role=\"alert\"\n >\n {{ error }}\n </div>\n }\n } @else if (!select.visibleItems().length) {\n @if (select.registeredEmptyTemplate(); as emptyTemplate) {\n <ng-template [ngTemplateOutlet]=\"emptyTemplate.templateRef\" />\n } @else {\n <div class=\"et-select-state et-select-state--empty\">{{ selectLabels().empty }}</div>\n }\n }\n\n @if (select.hasMoreItems() && !showLoadingRow()) {\n @if (showLoadMoreLoading()) {\n <div class=\"et-select-load-more et-select-load-more--loading\" aria-live=\"polite\">\n <et-spinner class=\"et-select-state-spinner\" diameter=\"16\" strokeWidth=\"2\" />\n {{ selectLabels().loading }}\n </div>\n } @else {\n <button\n [disabled]=\"select.loading()\"\n (click)=\"select.requestLoadMore()\"\n class=\"et-select-load-more\"\n tabindex=\"-1\"\n type=\"button\"\n >\n <i class=\"et-select-load-more-icon\" etIcon=\"et-chevron\" aria-hidden=\"true\"></i>\n {{ resolvedLoadMoreLabel() }}\n </button>\n }\n }\n\n @if (select.allowAddNew() && !showLoadingRow()) {\n <button (click)=\"select.requestAddNew()\" class=\"et-select-add-new\" tabindex=\"-1\" type=\"button\">\n <i class=\"et-select-add-new-icon\" etIcon=\"et-plus\" aria-hidden=\"true\"></i>\n {{ resolvedAddNewLabel() }}\n </button>\n }\n </div>\n </et-select-panel>\n</ng-template>\n", styles: ["@layer components{et-select{--_et-select-trigger-busy-fade: 24px;--_et-select-trigger-busy-cover: 16px;--_et-select-trigger-busy-mask-direction: to right;display:flex;align-items:center;gap:6px;flex:1;min-inline-size:0;color:inherit}et-select .et-select-trigger{display:flex;align-items:center;gap:6px;flex:1;outline:none;color:inherit;min-inline-size:0;text-align:start;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation}et-select .et-select-trigger[data-disabled]{cursor:not-allowed}et-select .et-select-trigger[data-readonly]{cursor:default}et-select .et-select-trigger .et-select-trigger-content{display:flex;flex-wrap:wrap;align-items:center;gap:6px;flex:1;min-inline-size:0}et-select .et-select-trigger .et-select-trigger-content.et-select-trigger-content--stacked{display:grid;grid-template-columns:minmax(0,1fr)}et-select .et-select-trigger .et-select-trigger-content.et-select-trigger-content--stacked>*{grid-area:1 / 1}et-select .et-select-trigger .et-select-trigger-content.et-select-trigger-content--stacked:has(.et-select-value-custom) input[etselectsearch]{caret-color:transparent}et-select .et-select-trigger input[etselectsearch]{flex:1 1 60px;min-inline-size:60px;border:none;outline:none;background:transparent;font:inherit;color:inherit;padding:0;caret-color:var(--et-theme-color-primary-solid, currentColor);cursor:text}et-select .et-select-trigger input[etselectsearch]::placeholder{color:var(--et-surface-color-muted-solid, color-mix(in srgb, currentColor 46%, transparent))}et-select .et-select-trigger input[etselectsearch]:read-only{cursor:default;caret-color:transparent}et-select .et-select-trigger input[etselectsearch]:disabled{cursor:not-allowed}et-select .et-select-trigger:has(input[etselectsearch]) .et-select-value{flex:0 1 auto}et-select .et-select-value{flex:1;min-block-size:1lh;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-inline-size:0}et-select .et-select-value[data-placeholder]{color:var(--et-surface-color-muted-solid, color-mix(in srgb, currentColor 46%, transparent))}et-select[data-mixed] .et-select-value,et-select[data-mixed] input[etselectsearch]:not(:focus){font-style:italic;color:color-mix(in srgb,currentColor 72%,transparent)}et-select .et-select-value-custom{display:flex;align-items:center;flex:1;min-inline-size:0}et-select .et-select-trigger-content:has(input[etselectsearch]) .et-select-value-custom{flex:0 1 auto}et-select .et-select-trigger-content:has(.et-select-value-custom) input[etselectsearch]::placeholder{color:transparent}et-select .et-select-chips{display:contents}et-select .et-select-trigger-busy{position:relative;display:flex;align-items:center;align-self:stretch;flex:none;padding-inline-start:var(--_et-select-trigger-busy-fade);margin-inline-start:calc(-1 * (var(--_et-select-trigger-busy-fade) + var(--_et-select-trigger-busy-cover) + 6px));color:var(--et-surface-color-muted-solid, currentColor)}et-select:dir(rtl){--_et-select-trigger-busy-mask-direction: to left}et-select .et-select-trigger:has(>.et-select-trigger-busy) .et-select-trigger-content{-webkit-mask-image:linear-gradient(var(--_et-select-trigger-busy-mask-direction),black calc(100% - var(--_et-select-trigger-busy-cover) - var(--_et-select-trigger-busy-fade)),transparent calc(100% - var(--_et-select-trigger-busy-cover)));mask-image:linear-gradient(var(--_et-select-trigger-busy-mask-direction),black calc(100% - var(--_et-select-trigger-busy-cover) - var(--_et-select-trigger-busy-fade)),transparent calc(100% - var(--_et-select-trigger-busy-cover)))}et-select .et-select-trigger-busy--enter{animation:et-select-busy-in .12s ease}@media(prefers-reduced-motion:reduce){et-select .et-select-trigger-busy--enter{animation:none}}.et-form-field-control-frame:has(et-select){cursor:pointer}.et-select-arrow .et-icon{rotate:180deg}@keyframes et-select-busy-in{0%{opacity:0}}}\n"], dependencies: [{ kind: "directive", type: SelectTriggerDirective, selector: "[etSelectTrigger]", exportAs: ["etSelectTrigger"] }, { kind: "directive", type: SelectSurfaceDirective, selector: "ng-template[etSelectSurface]", exportAs: ["etSelectSurface"] }, { kind: "directive", type: ControlSuffixDirective, selector: "ng-template[etControlSuffix]" }, { kind: "component", type: SelectPanelComponent, selector: "et-select-panel" }, { kind: "component", type: SelectOptionComponent, selector: "et-select-option" }, { kind: "component", type: SelectAllOptionComponent, selector: "et-select-all-option" }, { kind: "component", type: SelectVirtualOptionComponent, selector: "et-select-virtual-option" }, { kind: "directive", type: IconDirective, selector: "[etIcon]", inputs: ["etIcon", "variant", "allowHardcodedColor", "label"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ChipComponent, selector: "et-chip" }, { kind: "component", type: SpinnerComponent, selector: "et-spinner", inputs: ["diameter", "strokeWidth", "track", "value"] }, { kind: "directive", type: ProvideColorDirective, selector: "[etProvideColor]", inputs: ["etProvideColor"] }, { kind: "directive", type: SemanticThemesDirective, selector: "[etSemanticThemes]", exportAs: ["etSemanticThemes"] }], encapsulation: i0.ViewEncapsulation.None }); }
50746
51267
  }
50747
51268
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: SelectComponent, decorators: [{
50748
51269
  type: Component,
@@ -50826,7 +51347,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
50826
51347
  ColorInteractiveDirective,
50827
51348
  ], host: {
50828
51349
  class: 'et-select',
50829
- }, template: "<!-- a div, not a <button>: chips carry remove buttons and buttons cannot nest.\n The trigger directive manages tabindex/aria-disabled for non-button hosts. -->\n<div class=\"et-select-trigger\" etSelectTrigger>\n <div [class.et-select-trigger-content--stacked]=\"stackedValue()\" class=\"et-select-trigger-content\">\n @if (select.mixed()) {\n @if (showValueLabel()) {\n <span [id]=\"mixedLabelId\" class=\"et-select-value\">{{ select.displayValue() }}</span>\n }\n } @else if (select.registeredValueTemplate(); as valueTemplate) {\n @if (showCustomValue()) {\n <div class=\"et-select-value-custom\">\n <ng-template [ngTemplateOutlet]=\"valueTemplate.templateRef\" [ngTemplateOutletContext]=\"valueContext()\" />\n </div>\n }\n } @else if (select.multiple() && select.selectedEntries().length) {\n <div class=\"et-select-chips\">\n @for (entry of select.selectedEntries(); track entry.value) {\n <et-chip\n [disabled]=\"select.disabled()\"\n [removable]=\"!select.readonly() && !select.disabled()\"\n (remove)=\"select.deselectValue(entry.value)\"\n >\n {{ entry.label }}\n </et-chip>\n }\n </div>\n }\n\n @if (!select.mixed() && showValueLabel()) {\n <span [attr.data-placeholder]=\"select.displayValue() === null || null\" class=\"et-select-value\">\n {{ select.displayValue() ?? select.placeholder() }}\n </span>\n }\n\n <ng-content select=\"input[etSelectSearch]\" />\n </div>\n\n @if (select.showLoadingIndicator() && !select.open()) {\n <div class=\"et-select-trigger-busy\" animate.enter=\"et-select-trigger-busy--enter\">\n <et-spinner diameter=\"16\" strokeWidth=\"2\" />\n </div>\n }\n</div>\n\n<ng-template etControlSuffix>\n @if (showClear()) {\n <!-- pointer-only, out of the tab order \u2014 keyboard users clear via Backspace / erasing.\n mousedown is prevented so the trigger keeps focus: `showClear` reads `focused()`, so a\n blur would unmount this button before the click could land -->\n <button\n [attr.aria-label]=\"resolvedClearLabel()\"\n (click)=\"handleClearClick($event)\"\n (mousedown)=\"$event.preventDefault()\"\n class=\"et-input-clear\"\n animate.enter=\"et-input-clear--enter\"\n animate.leave=\"et-input-clear--leave\"\n tabindex=\"-1\"\n type=\"button\"\n >\n <i etIcon=\"et-times\"></i>\n </button>\n }\n\n <button\n [disabled]=\"select.disabled()\"\n (click)=\"handleArrowClick($event)\"\n (mousedown)=\"$event.preventDefault()\"\n class=\"et-input-picker-trigger et-select-arrow\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n type=\"button\"\n >\n <i etIcon=\"et-chevron\"></i>\n </button>\n</ng-template>\n\n<ng-template #optionContent>\n <ng-content />\n</ng-template>\n\n@if (!select.isMounted()) {\n <!-- keeps the projected options rendered (and their bindings live) while the panel is\n closed, so the trigger can resolve a preselected value's label and closed typeahead\n works \u2014 the same template moves into the overlay while it is open -->\n <div class=\"et-select-detached-options\" aria-hidden=\"true\" hidden>\n <ng-template [ngTemplateOutlet]=\"optionContent\" />\n </div>\n}\n\n<ng-template etSelectSurface>\n <et-select-panel #panelThemes=\"etSemanticThemes\" etSemanticThemes>\n @if (select.showSelectAll()) {\n <et-select-all-option>{{ resolvedSelectAllLabel() }}</et-select-all-option>\n }\n\n @if (select.options()) {\n <div\n [style.padding-block-start.px]=\"select.virtualWindow.paddingTop()\"\n [style.padding-block-end.px]=\"select.virtualWindow.paddingBottom()\"\n class=\"et-select-virtual-options\"\n role=\"none\"\n >\n @for (item of select.virtualizedItems(); track item.id()) {\n <et-select-virtual-option [item]=\"item\" />\n }\n </div>\n }\n\n <ng-template [ngTemplateOutlet]=\"optionContent\" />\n\n @if (select.customValueCandidate(); as candidate) {\n <et-select-option [value]=\"candidate\" [label]=\"candidate\" class=\"et-select-create-option\" customValueOption>\n <i class=\"et-select-create-option-icon\" etIcon=\"et-plus\" aria-hidden=\"true\"></i>\n {{ resolvedCreateLabel() }} \u201C{{ candidate }}\u201D\n </et-select-option>\n }\n\n <div class=\"et-select-panel-extras\" etSelectPanelExtras>\n @if (showBusyBar()) {\n <div class=\"et-select-busy-bar\" role=\"presentation\" aria-hidden=\"true\"></div>\n }\n\n @if (showLoadingRow()) {\n @if (select.registeredLoadingTemplate(); as loadingTemplate) {\n @if (select.showLoadingIndicator()) {\n <ng-template [ngTemplateOutlet]=\"loadingTemplate.templateRef\" />\n }\n } @else {\n <div class=\"et-select-state et-select-state--loading\">\n <span\n [class.et-select-state-content--visible]=\"select.showLoadingIndicator()\"\n [attr.aria-hidden]=\"!select.showLoadingIndicator() || null\"\n class=\"et-select-state-content\"\n >\n <et-spinner class=\"et-select-state-spinner\" diameter=\"16\" strokeWidth=\"2\" />\n {{ selectLabels().loading }}\n </span>\n </div>\n }\n } @else if (select.error(); as error) {\n @if (select.registeredErrorTemplate(); as errorTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"errorTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: error }\"\n />\n } @else {\n <div\n [etProvideColor]=\"panelThemes.themes.error()\"\n class=\"et-select-state et-select-state--error\"\n role=\"alert\"\n >\n {{ error }}\n </div>\n }\n } @else if (!select.visibleItems().length) {\n @if (select.registeredEmptyTemplate(); as emptyTemplate) {\n <ng-template [ngTemplateOutlet]=\"emptyTemplate.templateRef\" />\n } @else {\n <div class=\"et-select-state et-select-state--empty\">{{ selectLabels().empty }}</div>\n }\n }\n\n @if (select.hasMoreItems() && !showLoadingRow()) {\n @if (showLoadMoreLoading()) {\n <div class=\"et-select-load-more et-select-load-more--loading\" aria-live=\"polite\">\n <et-spinner class=\"et-select-state-spinner\" diameter=\"16\" strokeWidth=\"2\" />\n {{ selectLabels().loading }}\n </div>\n } @else {\n <button\n [disabled]=\"select.loading()\"\n (click)=\"select.requestLoadMore()\"\n class=\"et-select-load-more\"\n tabindex=\"-1\"\n type=\"button\"\n >\n <i class=\"et-select-load-more-icon\" etIcon=\"et-chevron\" aria-hidden=\"true\"></i>\n {{ resolvedLoadMoreLabel() }}\n </button>\n }\n }\n\n @if (select.allowAddNew() && !showLoadingRow()) {\n <button (click)=\"select.requestAddNew()\" class=\"et-select-add-new\" tabindex=\"-1\" type=\"button\">\n <i class=\"et-select-add-new-icon\" etIcon=\"et-plus\" aria-hidden=\"true\"></i>\n {{ resolvedAddNewLabel() }}\n </button>\n }\n </div>\n </et-select-panel>\n</ng-template>\n", styles: ["@layer components{et-select{--_et-select-trigger-busy-fade: 24px;--_et-select-trigger-busy-cover: 16px;--_et-select-trigger-busy-mask-direction: to right;display:flex;align-items:center;gap:6px;flex:1;min-inline-size:0;color:inherit}et-select .et-select-trigger{display:flex;align-items:center;gap:6px;flex:1;outline:none;color:inherit;min-inline-size:0;text-align:start;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation}et-select .et-select-trigger[data-disabled]{cursor:not-allowed}et-select .et-select-trigger[data-readonly]{cursor:default}et-select .et-select-trigger .et-select-trigger-content{display:flex;flex-wrap:wrap;align-items:center;gap:6px;flex:1;min-inline-size:0}et-select .et-select-trigger .et-select-trigger-content.et-select-trigger-content--stacked{display:grid;grid-template-columns:minmax(0,1fr)}et-select .et-select-trigger .et-select-trigger-content.et-select-trigger-content--stacked>*{grid-area:1 / 1}et-select .et-select-trigger .et-select-trigger-content.et-select-trigger-content--stacked:has(.et-select-value-custom) input[etselectsearch]{caret-color:transparent}et-select .et-select-trigger input[etselectsearch]{flex:1 1 60px;min-inline-size:60px;border:none;outline:none;background:transparent;font:inherit;color:inherit;padding:0;caret-color:var(--et-theme-color-primary-solid, currentColor);cursor:text}et-select .et-select-trigger input[etselectsearch]::placeholder{color:var(--et-surface-color-muted-solid, color-mix(in srgb, currentColor 46%, transparent))}et-select .et-select-trigger input[etselectsearch]:read-only{cursor:default;caret-color:transparent}et-select .et-select-trigger input[etselectsearch]:disabled{cursor:not-allowed}et-select .et-select-trigger:has(input[etselectsearch]) .et-select-value{flex:0 1 auto}et-select .et-select-value{flex:1;min-block-size:1lh;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-inline-size:0}et-select .et-select-value[data-placeholder]{color:var(--et-surface-color-muted-solid, color-mix(in srgb, currentColor 46%, transparent))}et-select[data-mixed] .et-select-value,et-select[data-mixed] input[etselectsearch]:not(:focus){font-style:italic;color:color-mix(in srgb,currentColor 72%,transparent)}et-select .et-select-value-custom{display:flex;align-items:center;flex:1;min-inline-size:0}et-select .et-select-trigger-content:has(input[etselectsearch]) .et-select-value-custom{flex:0 1 auto}et-select .et-select-trigger-content:has(.et-select-value-custom) input[etselectsearch]::placeholder{color:transparent}et-select .et-select-chips{display:contents}et-select .et-select-trigger-busy{position:relative;display:flex;align-items:center;align-self:stretch;flex:none;padding-inline-start:var(--_et-select-trigger-busy-fade);margin-inline-start:calc(-1 * (var(--_et-select-trigger-busy-fade) + var(--_et-select-trigger-busy-cover) + 6px));color:var(--et-surface-color-muted-solid, currentColor)}et-select:dir(rtl){--_et-select-trigger-busy-mask-direction: to left}et-select .et-select-trigger:has(>.et-select-trigger-busy) .et-select-trigger-content{-webkit-mask-image:linear-gradient(var(--_et-select-trigger-busy-mask-direction),black calc(100% - var(--_et-select-trigger-busy-cover) - var(--_et-select-trigger-busy-fade)),transparent calc(100% - var(--_et-select-trigger-busy-cover)));mask-image:linear-gradient(var(--_et-select-trigger-busy-mask-direction),black calc(100% - var(--_et-select-trigger-busy-cover) - var(--_et-select-trigger-busy-fade)),transparent calc(100% - var(--_et-select-trigger-busy-cover)))}et-select .et-select-trigger-busy--enter{animation:et-select-busy-in .12s ease}@media(prefers-reduced-motion:reduce){et-select .et-select-trigger-busy--enter{animation:none}}.et-select-arrow .et-icon{rotate:180deg}@keyframes et-select-busy-in{0%{opacity:0}}}\n"] }]
51350
+ }, template: "<!-- a div, not a <button>: chips carry remove buttons and buttons cannot nest.\n The trigger directive manages tabindex/aria-disabled for non-button hosts. -->\n<div class=\"et-select-trigger\" etSelectTrigger>\n <div [class.et-select-trigger-content--stacked]=\"stackedValue()\" class=\"et-select-trigger-content\">\n @if (select.mixed()) {\n @if (showValueLabel()) {\n <span [id]=\"mixedLabelId\" class=\"et-select-value\">{{ select.displayValue() }}</span>\n }\n } @else if (select.registeredValueTemplate(); as valueTemplate) {\n @if (showCustomValue()) {\n <div class=\"et-select-value-custom\">\n <ng-template [ngTemplateOutlet]=\"valueTemplate.templateRef\" [ngTemplateOutletContext]=\"valueContext()\" />\n </div>\n }\n } @else if (select.multiple() && select.selectedEntries().length) {\n <div class=\"et-select-chips\">\n @for (entry of select.selectedEntries(); track entry.value) {\n <et-chip\n [disabled]=\"select.disabled()\"\n [removable]=\"!select.readonly() && !select.disabled()\"\n (remove)=\"select.deselectValue(entry.value)\"\n >\n {{ entry.label }}\n </et-chip>\n }\n </div>\n }\n\n @if (!select.mixed() && showValueLabel()) {\n <span [attr.data-placeholder]=\"select.displayValue() === null || null\" class=\"et-select-value\">\n {{ select.displayValue() ?? select.placeholder() }}\n </span>\n }\n\n <ng-content select=\"input[etSelectSearch]\" />\n </div>\n\n @if (select.showLoadingIndicator() && !select.open()) {\n <div class=\"et-select-trigger-busy\" animate.enter=\"et-select-trigger-busy--enter\">\n <et-spinner diameter=\"16\" strokeWidth=\"2\" />\n </div>\n }\n</div>\n\n<ng-template etControlSuffix>\n @if (showClear()) {\n <!-- pointer-only, out of the tab order \u2014 keyboard users clear via Backspace / erasing.\n mousedown is prevented so the trigger keeps focus: `showClear` reads `focused()`, so a\n blur would unmount this button before the click could land -->\n <button\n [attr.aria-label]=\"resolvedClearLabel()\"\n (click)=\"handleClearClick($event)\"\n (mousedown)=\"$event.preventDefault()\"\n class=\"et-input-clear\"\n animate.enter=\"et-input-clear--enter\"\n animate.leave=\"et-input-clear--leave\"\n tabindex=\"-1\"\n type=\"button\"\n >\n <i etIcon=\"et-times\"></i>\n </button>\n }\n\n <button\n [disabled]=\"select.disabled()\"\n (click)=\"handleArrowClick($event)\"\n (mousedown)=\"$event.preventDefault()\"\n class=\"et-input-picker-trigger et-select-arrow\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n type=\"button\"\n >\n <i etIcon=\"et-chevron\"></i>\n </button>\n</ng-template>\n\n<ng-template #optionContent>\n <ng-content />\n</ng-template>\n\n@if (!select.isMounted()) {\n <!-- keeps the projected options rendered (and their bindings live) while the panel is\n closed, so the trigger can resolve a preselected value's label and closed typeahead\n works \u2014 the same template moves into the overlay while it is open -->\n <div class=\"et-select-detached-options\" aria-hidden=\"true\" hidden>\n <ng-template [ngTemplateOutlet]=\"optionContent\" />\n </div>\n}\n\n<ng-template etSelectSurface>\n <et-select-panel #panelThemes=\"etSemanticThemes\" etSemanticThemes>\n @if (select.showSelectAll()) {\n <et-select-all-option>{{ resolvedSelectAllLabel() }}</et-select-all-option>\n }\n\n @if (select.options()) {\n <div\n [style.padding-block-start.px]=\"select.virtualWindow.paddingTop()\"\n [style.padding-block-end.px]=\"select.virtualWindow.paddingBottom()\"\n class=\"et-select-virtual-options\"\n role=\"none\"\n >\n @for (item of select.virtualizedItems(); track item.id()) {\n <et-select-virtual-option [item]=\"item\" />\n }\n </div>\n }\n\n <ng-template [ngTemplateOutlet]=\"optionContent\" />\n\n @if (select.customValueCandidate(); as candidate) {\n <et-select-option [value]=\"candidate\" [label]=\"candidate\" class=\"et-select-create-option\" customValueOption>\n <i class=\"et-select-create-option-icon\" etIcon=\"et-plus\" aria-hidden=\"true\"></i>\n {{ resolvedCreateLabel() }} \u201C{{ candidate }}\u201D\n </et-select-option>\n }\n\n <div class=\"et-select-panel-extras\" etSelectPanelExtras>\n @if (showBusyBar()) {\n <div class=\"et-select-busy-bar\" role=\"presentation\" aria-hidden=\"true\"></div>\n }\n\n @if (showLoadingRow()) {\n @if (select.registeredLoadingTemplate(); as loadingTemplate) {\n @if (select.showLoadingIndicator()) {\n <ng-template [ngTemplateOutlet]=\"loadingTemplate.templateRef\" />\n }\n } @else {\n <div class=\"et-select-state et-select-state--loading\">\n <span\n [class.et-select-state-content--visible]=\"select.showLoadingIndicator()\"\n [attr.aria-hidden]=\"!select.showLoadingIndicator() || null\"\n class=\"et-select-state-content\"\n >\n <et-spinner class=\"et-select-state-spinner\" diameter=\"16\" strokeWidth=\"2\" />\n {{ selectLabels().loading }}\n </span>\n </div>\n }\n } @else if (select.error(); as error) {\n @if (select.registeredErrorTemplate(); as errorTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"errorTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: error }\"\n />\n } @else {\n <div\n [etProvideColor]=\"panelThemes.themes.error()\"\n class=\"et-select-state et-select-state--error\"\n role=\"alert\"\n >\n {{ error }}\n </div>\n }\n } @else if (!select.visibleItems().length) {\n @if (select.registeredEmptyTemplate(); as emptyTemplate) {\n <ng-template [ngTemplateOutlet]=\"emptyTemplate.templateRef\" />\n } @else {\n <div class=\"et-select-state et-select-state--empty\">{{ selectLabels().empty }}</div>\n }\n }\n\n @if (select.hasMoreItems() && !showLoadingRow()) {\n @if (showLoadMoreLoading()) {\n <div class=\"et-select-load-more et-select-load-more--loading\" aria-live=\"polite\">\n <et-spinner class=\"et-select-state-spinner\" diameter=\"16\" strokeWidth=\"2\" />\n {{ selectLabels().loading }}\n </div>\n } @else {\n <button\n [disabled]=\"select.loading()\"\n (click)=\"select.requestLoadMore()\"\n class=\"et-select-load-more\"\n tabindex=\"-1\"\n type=\"button\"\n >\n <i class=\"et-select-load-more-icon\" etIcon=\"et-chevron\" aria-hidden=\"true\"></i>\n {{ resolvedLoadMoreLabel() }}\n </button>\n }\n }\n\n @if (select.allowAddNew() && !showLoadingRow()) {\n <button (click)=\"select.requestAddNew()\" class=\"et-select-add-new\" tabindex=\"-1\" type=\"button\">\n <i class=\"et-select-add-new-icon\" etIcon=\"et-plus\" aria-hidden=\"true\"></i>\n {{ resolvedAddNewLabel() }}\n </button>\n }\n </div>\n </et-select-panel>\n</ng-template>\n", styles: ["@layer components{et-select{--_et-select-trigger-busy-fade: 24px;--_et-select-trigger-busy-cover: 16px;--_et-select-trigger-busy-mask-direction: to right;display:flex;align-items:center;gap:6px;flex:1;min-inline-size:0;color:inherit}et-select .et-select-trigger{display:flex;align-items:center;gap:6px;flex:1;outline:none;color:inherit;min-inline-size:0;text-align:start;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation}et-select .et-select-trigger[data-disabled]{cursor:not-allowed}et-select .et-select-trigger[data-readonly]{cursor:default}et-select .et-select-trigger .et-select-trigger-content{display:flex;flex-wrap:wrap;align-items:center;gap:6px;flex:1;min-inline-size:0}et-select .et-select-trigger .et-select-trigger-content.et-select-trigger-content--stacked{display:grid;grid-template-columns:minmax(0,1fr)}et-select .et-select-trigger .et-select-trigger-content.et-select-trigger-content--stacked>*{grid-area:1 / 1}et-select .et-select-trigger .et-select-trigger-content.et-select-trigger-content--stacked:has(.et-select-value-custom) input[etselectsearch]{caret-color:transparent}et-select .et-select-trigger input[etselectsearch]{flex:1 1 60px;min-inline-size:60px;border:none;outline:none;background:transparent;font:inherit;color:inherit;padding:0;caret-color:var(--et-theme-color-primary-solid, currentColor);cursor:text}et-select .et-select-trigger input[etselectsearch]::placeholder{color:var(--et-surface-color-muted-solid, color-mix(in srgb, currentColor 46%, transparent))}et-select .et-select-trigger input[etselectsearch]:read-only{cursor:default;caret-color:transparent}et-select .et-select-trigger input[etselectsearch]:disabled{cursor:not-allowed}et-select .et-select-trigger:has(input[etselectsearch]) .et-select-value{flex:0 1 auto}et-select .et-select-value{flex:1;min-block-size:1lh;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-inline-size:0}et-select .et-select-value[data-placeholder]{color:var(--et-surface-color-muted-solid, color-mix(in srgb, currentColor 46%, transparent))}et-select[data-mixed] .et-select-value,et-select[data-mixed] input[etselectsearch]:not(:focus){font-style:italic;color:color-mix(in srgb,currentColor 72%,transparent)}et-select .et-select-value-custom{display:flex;align-items:center;flex:1;min-inline-size:0}et-select .et-select-trigger-content:has(input[etselectsearch]) .et-select-value-custom{flex:0 1 auto}et-select .et-select-trigger-content:has(.et-select-value-custom) input[etselectsearch]::placeholder{color:transparent}et-select .et-select-chips{display:contents}et-select .et-select-trigger-busy{position:relative;display:flex;align-items:center;align-self:stretch;flex:none;padding-inline-start:var(--_et-select-trigger-busy-fade);margin-inline-start:calc(-1 * (var(--_et-select-trigger-busy-fade) + var(--_et-select-trigger-busy-cover) + 6px));color:var(--et-surface-color-muted-solid, currentColor)}et-select:dir(rtl){--_et-select-trigger-busy-mask-direction: to left}et-select .et-select-trigger:has(>.et-select-trigger-busy) .et-select-trigger-content{-webkit-mask-image:linear-gradient(var(--_et-select-trigger-busy-mask-direction),black calc(100% - var(--_et-select-trigger-busy-cover) - var(--_et-select-trigger-busy-fade)),transparent calc(100% - var(--_et-select-trigger-busy-cover)));mask-image:linear-gradient(var(--_et-select-trigger-busy-mask-direction),black calc(100% - var(--_et-select-trigger-busy-cover) - var(--_et-select-trigger-busy-fade)),transparent calc(100% - var(--_et-select-trigger-busy-cover)))}et-select .et-select-trigger-busy--enter{animation:et-select-busy-in .12s ease}@media(prefers-reduced-motion:reduce){et-select .et-select-trigger-busy--enter{animation:none}}.et-form-field-control-frame:has(et-select){cursor:pointer}.et-select-arrow .et-icon{rotate:180deg}@keyframes et-select-busy-in{0%{opacity:0}}}\n"] }]
50830
51351
  }], ctorParameters: () => [], propDecorators: { loadMoreLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "loadMoreLabel", required: false }] }], addNewLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "addNewLabel", required: false }] }], createLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "createLabel", required: false }] }], clearable: [{ type: i0.Input, args: [{ isSignal: true, alias: "clearable", required: false }] }], clearLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "clearLabel", required: false }] }], selectAllLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectAllLabel", required: false }] }] } });
50831
51352
 
50832
51353
  const SELECT_IMPORTS = [
@@ -52532,7 +53053,14 @@ const DEFAULT_SLIDER_LABELS = {
52532
53053
  minimum: 'Minimum',
52533
53054
  maximum: 'Maximum',
52534
53055
  };
52535
- const SLIDER_LABELS_DEF = /* @__PURE__ */ defineLabels('SLIDER_LABELS', DEFAULT_SLIDER_LABELS);
53056
+ /** The built-in German labels, used when the current locale is a German one. */
53057
+ const GERMAN_SLIDER_LABELS = {
53058
+ minimum: 'Minimum',
53059
+ maximum: 'Maximum',
53060
+ };
53061
+ /** The label set for a locale. Anything other than English and German needs {@link provideSliderLabels}. */
53062
+ const sliderLabelsForLocale = (locale) => locale.toLowerCase().startsWith('de') ? GERMAN_SLIDER_LABELS : DEFAULT_SLIDER_LABELS;
53063
+ const SLIDER_LABELS_DEF = /* @__PURE__ */ defineLabels('SLIDER_LABELS', sliderLabelsForLocale);
52536
53064
  /**
52537
53065
  * Localize a slider's strings for everything below this injector, and read the set in effect here as a
52538
53066
  * signal. Partial - whatever you leave out keeps its {@link DEFAULT_SLIDER_LABELS} value. See {@link defineLabels}
@@ -55318,7 +55846,16 @@ const DEFAULT_GRID_LABELS = {
55318
55846
  item: 'Grid item',
55319
55847
  removeItem: 'Remove item',
55320
55848
  };
55321
- const GRID_LABELS_DEF = /* @__PURE__ */ defineLabels('GRID_LABELS', DEFAULT_GRID_LABELS);
55849
+ /** The built-in German labels, used when the current locale is a German one. */
55850
+ const GERMAN_GRID_LABELS = {
55851
+ interactiveGrid: 'Interaktives Rasterlayout',
55852
+ readonlyGrid: 'Rasterlayout',
55853
+ item: 'Rasterelement',
55854
+ removeItem: 'Element entfernen',
55855
+ };
55856
+ /** The label set for a locale. Anything other than English and German needs {@link provideGridLabels}. */
55857
+ const gridLabelsForLocale = (locale) => locale.toLowerCase().startsWith('de') ? GERMAN_GRID_LABELS : DEFAULT_GRID_LABELS;
55858
+ const GRID_LABELS_DEF = /* @__PURE__ */ defineLabels('GRID_LABELS', gridLabelsForLocale);
55322
55859
  /**
55323
55860
  * Localize the grid's accessible labels for everything below this injector, and read the set in effect
55324
55861
  * here as a signal. Partial - whatever you leave out keeps its {@link DEFAULT_GRID_LABELS} value. See
@@ -57088,7 +57625,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
57088
57625
  const DEFAULT_NOTIFICATION_LABELS = {
57089
57626
  dismiss: 'Dismiss',
57090
57627
  };
57091
- const NOTIFICATION_LABELS_DEF = /* @__PURE__ */ defineLabels('NOTIFICATION_LABELS', DEFAULT_NOTIFICATION_LABELS);
57628
+ /** The built-in German labels, used when the current locale is a German one. */
57629
+ const GERMAN_NOTIFICATION_LABELS = {
57630
+ dismiss: 'Schließen',
57631
+ };
57632
+ /** The label set for a locale. Anything other than English and German needs {@link provideNotificationLabels}. */
57633
+ const notificationLabelsForLocale = (locale) => locale.toLowerCase().startsWith('de') ? GERMAN_NOTIFICATION_LABELS : DEFAULT_NOTIFICATION_LABELS;
57634
+ const NOTIFICATION_LABELS_DEF = /* @__PURE__ */ defineLabels('NOTIFICATION_LABELS', notificationLabelsForLocale);
57092
57635
  /**
57093
57636
  * Localize a notification's strings for everything below this injector, and read the set in effect here as a
57094
57637
  * signal. Partial - whatever you leave out keeps its {@link DEFAULT_NOTIFICATION_LABELS} value. See {@link defineLabels}
@@ -57687,7 +58230,25 @@ const DEFAULT_PAGINATION_LABELS = {
57687
58230
  pageSize: 'Items per page',
57688
58231
  pageSizeOption: (size) => `${size}`,
57689
58232
  };
57690
- const PAGINATION_LABELS_DEF = /* @__PURE__ */ defineLabels('PAGINATION_LABELS', DEFAULT_PAGINATION_LABELS);
58233
+ /** The built-in German labels, used when the current locale is a German one. */
58234
+ const GERMAN_PAGINATION_LABELS = {
58235
+ navigation: 'Seitennavigation',
58236
+ first: 'Erste Seite',
58237
+ previous: 'Vorherige Seite',
58238
+ next: 'Nächste Seite',
58239
+ last: 'Letzte Seite',
58240
+ ellipsis: 'Weitere Seiten',
58241
+ page: (page) => `Seite ${page}`,
58242
+ range: ({ start, end, totalItems }) => `Zeige ${start}–${end} von ${totalItems}`,
58243
+ compactRange: ({ start, end, totalItems }) => `${start}–${end} von ${totalItems}`,
58244
+ compactPage: (page, totalPages) => `${page} / ${totalPages}`,
58245
+ jumpTo: 'Gehe zu Seite',
58246
+ pageSize: 'Einträge pro Seite',
58247
+ pageSizeOption: (size) => `${size}`,
58248
+ };
58249
+ /** The label set for a locale. Anything other than English and German needs {@link providePaginationLabels}. */
58250
+ const paginationLabelsForLocale = (locale) => locale.toLowerCase().startsWith('de') ? GERMAN_PAGINATION_LABELS : DEFAULT_PAGINATION_LABELS;
58251
+ const PAGINATION_LABELS_DEF = /* @__PURE__ */ defineLabels('PAGINATION_LABELS', paginationLabelsForLocale);
57691
58252
  /**
57692
58253
  * Localize the paginator's strings for everything below this injector, and read the set in effect
57693
58254
  * here as a signal. Partial - whatever you leave out keeps its {@link DEFAULT_PAGINATION_LABELS}
@@ -58340,7 +58901,16 @@ const DEFAULT_PROGRESS_STEP_LABELS = {
58340
58901
  warning: 'Warning',
58341
58902
  error: 'Failed',
58342
58903
  };
58343
- const PROGRESS_STEP_LABELS_DEF = /* @__PURE__ */ defineLabels('PROGRESS_STEP_LABELS', DEFAULT_PROGRESS_STEP_LABELS);
58904
+ /** The built-in German labels, used when the current locale is a German one. */
58905
+ const GERMAN_PROGRESS_STEP_LABELS = {
58906
+ complete: 'Abgeschlossen',
58907
+ success: 'Erfolgreich',
58908
+ warning: 'Warnung',
58909
+ error: 'Fehlgeschlagen',
58910
+ };
58911
+ /** The label set for a locale. Anything other than English and German needs {@link provideProgressStepLabels}. */
58912
+ const progressStepLabelsForLocale = (locale) => locale.toLowerCase().startsWith('de') ? GERMAN_PROGRESS_STEP_LABELS : DEFAULT_PROGRESS_STEP_LABELS;
58913
+ const PROGRESS_STEP_LABELS_DEF = /* @__PURE__ */ defineLabels('PROGRESS_STEP_LABELS', progressStepLabelsForLocale);
58344
58914
  /**
58345
58915
  * Localize the state text of every progress step below this injector. Partial - whatever you leave out keeps
58346
58916
  * its {@link DEFAULT_PROGRESS_STEP_LABELS} value.
@@ -58836,7 +59406,39 @@ const DEFAULT_SCHEDULER_LABELS = {
58836
59406
  colorField: 'Color',
58837
59407
  colorFieldNone: 'No color',
58838
59408
  };
58839
- const SCHEDULER_LABELS_DEF = /* @__PURE__ */ defineLabels('SCHEDULER_LABELS', DEFAULT_SCHEDULER_LABELS);
59409
+ /** The built-in German labels, used when the current locale is a German one. */
59410
+ const GERMAN_SCHEDULER_LABELS = {
59411
+ previous: 'Zurück',
59412
+ next: 'Weiter',
59413
+ today: 'Heute',
59414
+ allDay: 'Ganztägig',
59415
+ moreAppointments: (count) => `+${count} weitere`,
59416
+ switchView: 'Ansicht wechseln',
59417
+ month: 'Monat',
59418
+ week: 'Woche',
59419
+ day: 'Tag',
59420
+ agenda: 'Agenda',
59421
+ addAppointment: 'Termin hinzufügen',
59422
+ untitledAppointment: 'Unbenannter Termin',
59423
+ ancestors: 'Übergeordnete Termine',
59424
+ subAppointments: 'Untertermine',
59425
+ moreActions: 'Weitere Aktionen',
59426
+ save: 'Speichern',
59427
+ cancel: 'Abbrechen',
59428
+ addSubAppointment: 'Untertermin hinzufügen',
59429
+ deleteWithDescendants: 'Löschen (einschließlich Untertermine)',
59430
+ titleField: 'Titel',
59431
+ timeRangeField: 'Wann',
59432
+ startField: 'Beginn',
59433
+ endField: 'Ende',
59434
+ locationField: 'Ort',
59435
+ descriptionField: 'Beschreibung',
59436
+ colorField: 'Farbe',
59437
+ colorFieldNone: 'Keine Farbe',
59438
+ };
59439
+ /** The label set for a locale. Anything other than English and German needs {@link provideSchedulerLabels}. */
59440
+ const schedulerLabelsForLocale = (locale) => locale.toLowerCase().startsWith('de') ? GERMAN_SCHEDULER_LABELS : DEFAULT_SCHEDULER_LABELS;
59441
+ const SCHEDULER_LABELS_DEF = /* @__PURE__ */ defineLabels('SCHEDULER_LABELS', schedulerLabelsForLocale);
58840
59442
  const provideSchedulerLabels = /* @__PURE__ */ toProvideFn(SCHEDULER_LABELS_DEF);
58841
59443
  const injectSchedulerLabels = /* @__PURE__ */ toInjectFn(SCHEDULER_LABELS_DEF);
58842
59444
  const SCHEDULER_LABELS = /* @__PURE__ */ toToken(SCHEDULER_LABELS_DEF);
@@ -58887,7 +59489,7 @@ const collectDescendantIds = (node) => node.children.flatMap((child) => [child.a
58887
59489
  */
58888
59490
  class SchedulerDirective {
58889
59491
  constructor() {
58890
- this.defaultLocale = injectDateLocale();
59492
+ this.defaultLocale = injectDateLocaleSignal();
58891
59493
  /** Today, re-read when focus enters the scheduler and when the page becomes visible again - what each view's `today` flag compares against. */
58892
59494
  this.today = injectToday();
58893
59495
  /** Every appointment the scheduler knows about - not pre-filtered to the visible range. */
@@ -58928,7 +59530,7 @@ class SchedulerDirective {
58928
59530
  * it; the preview drops on release, so persisting asynchronously wants an optimistic write.
58929
59531
  */
58930
59532
  this.appointmentReschedule = output();
58931
- this.effectiveLocale = computed(() => this.locale() ?? this.defaultLocale, /* @ts-ignore */
59533
+ this.effectiveLocale = computed(() => this.locale() ?? this.defaultLocale(), /* @ts-ignore */
58932
59534
  ...(ngDevMode ? [{ debugName: "effectiveLocale" }] : /* istanbul ignore next */ []));
58933
59535
  this.effectiveFirstDayOfWeek = computed(() => this.firstDayOfWeek() ??
58934
59536
  this.effectiveLocale()?.options?.weekStartsOn ??
@@ -62217,7 +62819,40 @@ const DEFAULT_STANDINGS_LABELS = {
62217
62819
  pickMoved: (participant, position) => `${participant} moved to position ${position}`,
62218
62820
  pickLocked: 'This order can no longer be changed',
62219
62821
  };
62220
- const STANDINGS_LABELS_DEF = /* @__PURE__ */ defineLabels('STANDINGS_LABELS', DEFAULT_STANDINGS_LABELS);
62822
+ /** The built-in German labels, used when the current locale is a German one. */
62823
+ const GERMAN_STANDINGS_LABELS = {
62824
+ caption: 'Tabelle',
62825
+ position: '#',
62826
+ positionFull: 'Platz',
62827
+ participant: 'Team',
62828
+ played: 'Sp',
62829
+ playedFull: 'Spiele',
62830
+ wins: 'S',
62831
+ winsFull: 'Siege',
62832
+ ties: 'U',
62833
+ tiesFull: 'Unentschieden',
62834
+ losses: 'N',
62835
+ lossesFull: 'Niederlagen',
62836
+ difference: 'Diff',
62837
+ differenceFull: 'Differenz',
62838
+ points: 'Pkt',
62839
+ pointsFull: 'Punkte',
62840
+ form: 'Form',
62841
+ formFull: 'Letzte Spiele, ältestes zuerst',
62842
+ formResult: (result) => (result === 'win' ? 'Sieg' : result === 'loss' ? 'Niederlage' : 'Unentschieden'),
62843
+ formResultShort: (result) => (result === 'win' ? 'S' : result === 'loss' ? 'N' : 'U'),
62844
+ legend: 'Bedeutung der hervorgehobenen Plätze',
62845
+ highlightedRow: 'Eigenes Team',
62846
+ pickCaption: 'Vorhergesagte Reihenfolge',
62847
+ pickCut: 'Kommt weiter',
62848
+ pickAdvancingRow: 'Kommt weiter',
62849
+ pickMoveRow: (participant) => `${participant} verschieben. Ziehen oder Pfeiltasten verwenden.`,
62850
+ pickMoved: (participant, position) => `${participant} auf Platz ${position} verschoben`,
62851
+ pickLocked: 'Diese Reihenfolge kann nicht mehr geändert werden',
62852
+ };
62853
+ /** The label set for a locale. Anything other than English and German needs {@link provideStandingsLabels}. */
62854
+ const standingsLabelsForLocale = (locale) => locale.toLowerCase().startsWith('de') ? GERMAN_STANDINGS_LABELS : DEFAULT_STANDINGS_LABELS;
62855
+ const STANDINGS_LABELS_DEF = /* @__PURE__ */ defineLabels('STANDINGS_LABELS', standingsLabelsForLocale);
62221
62856
  /**
62222
62857
  * Localize the standings table for everything below this injector. Partial - whatever you leave out keeps
62223
62858
  * its {@link DEFAULT_STANDINGS_LABELS} value.
@@ -62741,7 +63376,16 @@ const DEFAULT_STAT_TILE_LABELS = {
62741
63376
  unchanged: 'Unchanged',
62742
63377
  noValue: 'No value',
62743
63378
  };
62744
- const STAT_TILE_LABELS_DEF = /* @__PURE__ */ defineLabels('STAT_TILE_LABELS', DEFAULT_STAT_TILE_LABELS);
63379
+ /** The built-in German labels, used when the current locale is a German one. */
63380
+ const GERMAN_STAT_TILE_LABELS = {
63381
+ up: 'Gestiegen',
63382
+ down: 'Gesunken',
63383
+ unchanged: 'Unverändert',
63384
+ noValue: 'Kein Wert',
63385
+ };
63386
+ /** The label set for a locale. Anything other than English and German needs {@link provideStatTileLabels}. */
63387
+ const statTileLabelsForLocale = (locale) => locale.toLowerCase().startsWith('de') ? GERMAN_STAT_TILE_LABELS : DEFAULT_STAT_TILE_LABELS;
63388
+ const STAT_TILE_LABELS_DEF = /* @__PURE__ */ defineLabels('STAT_TILE_LABELS', statTileLabelsForLocale);
62745
63389
  /**
62746
63390
  * Localize a stat tile's strings for everything below this injector, and read the set in effect here as a
62747
63391
  * signal. Partial - whatever you leave out keeps its {@link DEFAULT_STAT_TILE_LABELS} value.
@@ -63022,7 +63666,27 @@ const DEFAULT_STREAM_LABELS = {
63022
63666
  pipGridView: 'Grid view',
63023
63667
  pipSingleView: 'Single view',
63024
63668
  };
63025
- const STREAM_LABELS_DEF = /* @__PURE__ */ defineLabels('STREAM_LABELS', DEFAULT_STREAM_LABELS);
63669
+ /** The built-in German labels, used when the current locale is a German one. */
63670
+ const GERMAN_STREAM_LABELS = {
63671
+ loading: 'Lädt',
63672
+ playerFrame: (platform) => `${platform}-Player`,
63673
+ consentHeading: 'Inhalt blockiert',
63674
+ consentDescription: 'Die Wiedergabe erfordert eine Zustimmung. Cookies und Daten von Drittanbietern können verwendet werden.',
63675
+ consentAccept: 'Erlauben und abspielen',
63676
+ errorHeading: 'Wiedergabe fehlgeschlagen',
63677
+ errorDescription: 'Der Player konnte nicht geladen werden. Bitte Verbindung prüfen oder erneut versuchen.',
63678
+ errorRetry: 'Erneut versuchen',
63679
+ pipPlaceholderMessage: 'Wird im Bild-in-Bild wiedergegeben',
63680
+ pipPlaceholderBack: 'Zurück zum Player',
63681
+ pipClose: 'Schließen',
63682
+ pipFocus: 'Fokussieren',
63683
+ pipMove: 'Bild-in-Bild-Fenster, mit den Pfeiltasten verschieben und mit Umschalt und den Pfeiltasten in der Größe ändern',
63684
+ pipGridView: 'Rasteransicht',
63685
+ pipSingleView: 'Einzelansicht',
63686
+ };
63687
+ /** The label set for a locale. Anything other than English and German needs {@link provideStreamLabels}. */
63688
+ const streamLabelsForLocale = (locale) => locale.toLowerCase().startsWith('de') ? GERMAN_STREAM_LABELS : DEFAULT_STREAM_LABELS;
63689
+ const STREAM_LABELS_DEF = /* @__PURE__ */ defineLabels('STREAM_LABELS', streamLabelsForLocale);
63026
63690
  /**
63027
63691
  * Localize the stream chrome's strings for everything below this injector, and read the set in effect
63028
63692
  * here as a signal. Partial - whatever you leave out keeps its {@link DEFAULT_STREAM_LABELS} value. See
@@ -68181,7 +68845,44 @@ const DEFAULT_TABLE_LABELS = {
68181
68845
  selectAllRows: 'Select all rows',
68182
68846
  selectRow: 'Select row',
68183
68847
  };
68184
- const TABLE_LABELS_DEF = /* @__PURE__ */ defineLabels('TABLE_LABELS', DEFAULT_TABLE_LABELS);
68848
+ /** The built-in German labels, used when the current locale is a German one. */
68849
+ const GERMAN_TABLE_LABELS = {
68850
+ empty: 'Keine Daten',
68851
+ error: 'Daten konnten nicht geladen werden',
68852
+ expandRow: 'Zeile aufklappen',
68853
+ collapseRow: 'Zeile zuklappen',
68854
+ sortAction: (header, next) => {
68855
+ if (next === 'asc')
68856
+ return `${header} aufsteigend sortieren`;
68857
+ if (next === 'desc')
68858
+ return `${header} absteigend sortieren`;
68859
+ return `Sortierung von ${header} aufheben`;
68860
+ },
68861
+ sortPriority: (priority, count) => `Sortierpriorität ${priority} von ${count}`,
68862
+ filterColumn: (header) => `${header} filtern`,
68863
+ filterSearch: 'Suchen…',
68864
+ filterEmpty: 'Keine Optionen',
68865
+ filterLoadMore: 'Mehr laden',
68866
+ columnMenu: (header) => `Spaltenoptionen für ${header}`,
68867
+ sortAscending: 'Aufsteigend sortieren',
68868
+ sortDescending: 'Absteigend sortieren',
68869
+ clearSort: 'Sortierung aufheben',
68870
+ autosizeColumn: 'Spaltenbreite automatisch anpassen',
68871
+ autosizeAllColumns: 'Alle Spaltenbreiten automatisch anpassen',
68872
+ resetWidth: 'Breite zurücksetzen',
68873
+ resizeColumn: (header) => `Größe von ${header} ändern`,
68874
+ hideColumn: 'Spalte ausblenden',
68875
+ pinColumnStart: 'Am Anfang fixieren',
68876
+ pinColumnEnd: 'Am Ende fixieren',
68877
+ unpinColumn: 'Fixierung lösen',
68878
+ columns: 'Spalten',
68879
+ showAllColumns: 'Alle Spalten anzeigen',
68880
+ selectAllRows: 'Alle Zeilen auswählen',
68881
+ selectRow: 'Zeile auswählen',
68882
+ };
68883
+ /** The label set for a locale. Anything other than English and German needs {@link provideTableLabels}. */
68884
+ const tableLabelsForLocale = (locale) => locale.toLowerCase().startsWith('de') ? GERMAN_TABLE_LABELS : DEFAULT_TABLE_LABELS;
68885
+ const TABLE_LABELS_DEF = /* @__PURE__ */ defineLabels('TABLE_LABELS', tableLabelsForLocale);
68185
68886
  /**
68186
68887
  * Localize the table's strings for everything below this injector, and read the set in effect here as
68187
68888
  * a signal: the defaults with the provided set (or the set its factory builds for the current locale)
@@ -76284,7 +76985,15 @@ const DEFAULT_TREE_LABELS = {
76284
76985
  empty: 'Nothing to show',
76285
76986
  retry: 'select to retry',
76286
76987
  };
76287
- const TREE_LABELS_DEF = /* @__PURE__ */ defineLabels('TREE_LABELS', DEFAULT_TREE_LABELS);
76988
+ /** The built-in German labels, used when the current locale is a German one. */
76989
+ const GERMAN_TREE_LABELS = {
76990
+ loading: 'Lade…',
76991
+ empty: 'Nichts anzuzeigen',
76992
+ retry: 'zum Wiederholen auswählen',
76993
+ };
76994
+ /** The label set for a locale. Anything other than English and German needs {@link provideTreeLabels}. */
76995
+ const treeLabelsForLocale = (locale) => locale.toLowerCase().startsWith('de') ? GERMAN_TREE_LABELS : DEFAULT_TREE_LABELS;
76996
+ const TREE_LABELS_DEF = /* @__PURE__ */ defineLabels('TREE_LABELS', treeLabelsForLocale);
76288
76997
  /**
76289
76998
  * Localize the tree's strings for everything below this injector, and read the set in effect here as a
76290
76999
  * signal. Partial - whatever you leave out keeps its {@link DEFAULT_TREE_LABELS} value. See {@link defineLabels}
@@ -76360,7 +77069,16 @@ const DEFAULT_UNSAVED_CHANGES_LABELS = {
76360
77069
  discard: 'Discard',
76361
77070
  keepEditing: 'Keep editing',
76362
77071
  };
76363
- const UNSAVED_CHANGES_LABELS_DEF = /* @__PURE__ */ defineLabels('UNSAVED_CHANGES_LABELS', DEFAULT_UNSAVED_CHANGES_LABELS);
77072
+ /** The built-in German labels, used when the current locale is a German one. */
77073
+ const GERMAN_UNSAVED_CHANGES_LABELS = {
77074
+ title: 'Ungespeicherte Änderungen verwerfen?',
77075
+ message: 'Die Änderungen wurden nicht gespeichert. Seite verlassen und Änderungen verwerfen?',
77076
+ discard: 'Verwerfen',
77077
+ keepEditing: 'Weiter bearbeiten',
77078
+ };
77079
+ /** The label set for a locale. Anything other than English and German needs {@link provideUnsavedChangesLabels}. */
77080
+ const unsavedChangesLabelsForLocale = (locale) => locale.toLowerCase().startsWith('de') ? GERMAN_UNSAVED_CHANGES_LABELS : DEFAULT_UNSAVED_CHANGES_LABELS;
77081
+ const UNSAVED_CHANGES_LABELS_DEF = /* @__PURE__ */ defineLabels('UNSAVED_CHANGES_LABELS', unsavedChangesLabelsForLocale);
76364
77082
  /**
76365
77083
  * Localize the unsaved-changes dialog for everything below this injector, and read the set in effect here as a
76366
77084
  * signal. Partial - whatever you leave out keeps its {@link DEFAULT_UNSAVED_CHANGES_LABELS} value. See
@@ -76392,11 +77110,11 @@ const provideUnsavedChangesAlertDialog = () => provideUnsavedChangesConfirm(() =
76392
77110
 
76393
77111
  // Generated from package.json by tools/scripts/generate-version.js - do not edit.
76394
77112
  /** The version of `@ethlete/components` this build was cut from. */
76395
- const COMPONENTS_VERSION = '1.0.0-next.69';
77113
+ const COMPONENTS_VERSION = '1.0.0-next.70';
76396
77114
 
76397
77115
  /**
76398
77116
  * Generated bundle index. Do not edit.
76399
77117
  */
76400
77118
 
76401
- export { ACCESSIBLE_NAME_INPUTS, ACCORDION_ERROR_CODES, ACCORDION_GROUP_TOKEN, ACCORDION_IMPORTS, ACCORDION_TOKEN, ALERT_DIALOG_LABELS, ALIGN_CENTER_ICON, ALIGN_JUSTIFY_ICON, ALIGN_LEFT_ICON, ALIGN_RIGHT_ICON, ARROWS_LEFT_RIGHT_ICON, ARROW_OUT_UP_RIGHT_ICON, ARROW_RIGHT_ICON, ARROW_UP_ICON, AVATAR_IMPORTS, AVATAR_LABELS, AVATAR_SHAPES, AVATAR_SIZES, AccessibleNameControlDirective, AccordionComponent, AccordionContentDirective, AccordionDirective, AccordionGroupComponent, AccordionGroupDirective, AccordionHintDirective, AccordionLabelDirective, AccordionPanelDirective, AccordionTriggerDirective, AvatarComponent, AvatarGroupComponent, BADGE_ICON_ALIGNMENTS, BADGE_IMPORTS, BADGE_SIZES, BADGE_VARIANTS, BANNER_IMPORTS, BANNER_LABELS, BANNER_TYPES, BOLD_ICON, BRACKET_CARD_CONTEXT, BRACKET_DEFAULTS, BRACKET_DEFAULT_CARDS, BRACKET_DENSITY, BRACKET_DENSITY_PRESETS, BRACKET_IMPORTS, BRACKET_LABELS, BRACKET_PARTICIPANTS_IMPORTS, BRACKET_PICK_CARD_IMPORTS, BRACKET_PICK_CARD_NOTE_TONE, BRACKET_ROUNDS_LIST_IMPORTS, BRACKET_ROUND_HEADER_ALIGN, BRACKET_SKELETON_IMPORTS, BREADCRUMB_COLLAPSE_IMPORTS, BREADCRUMB_COLLAPSE_TOKEN, BREADCRUMB_ERROR_CODES, BREADCRUMB_IMPORTS, BREADCRUMB_LABELS, BREADCRUMB_SEGMENT_TOKEN, BREADCRUMB_SEO_IMPORTS, BREADCRUMB_TOKEN, BUTTON_ICON_ALIGNMENTS, BUTTON_IMPORTS, BUTTON_SIZES, BUTTON_SPINNER_CONFIG, BUTTON_TYPES, BUTTON_VARIANTS, BadgeComponent, BannerComponent, BarChartComponent, BarChartDirective, BarChartPlotDirective, BracketComponent, BracketDefaultContinueComponent, BracketDefaultFinalMatchComponent, BracketDefaultMatchComponent, BracketDefaultRoundHeaderComponent, BracketParticipantsComponent, BracketPickCardComponent, BracketRoundsListComponent, BracketSkeletonComponent, BracketSkeletonContinueComponent, BracketSkeletonFinalMatchComponent, BracketSkeletonMatchComponent, BracketSkeletonRoundHeaderComponent, BrandLoaderComponent, BreadcrumbCollapseDirective, BreadcrumbComponent, BreadcrumbDirective, BreadcrumbItemDirective, BreadcrumbItemTemplateDirective, BreadcrumbOutletComponent, BreadcrumbOverflowComponent, BreadcrumbSegmentDirective, BreadcrumbSeoDirective, BreadcrumbSeparatorDirective, ButtonColorDirective, ButtonComponent, ButtonDirective, ButtonStylesDirective, CALENDAR_ERROR_CODES, CALENDAR_ICON, CALENDAR_IMPORTS, CALENDAR_LABELS, CARD_IMPORTS, CARD_VARIANTS, CAROUSEL_AUTOPLAY_TOKEN, CAROUSEL_ERROR_CODES, CAROUSEL_IMPORTS, CAROUSEL_LABELS, CAROUSEL_SLIDE_ALIGNMENTS, CAROUSEL_TOKEN, CAROUSEL_TRANSITIONS, CAROUSEL_TRANSITION_DRIVERS, CASCADER_ERROR_CODES, CASCADER_IMPORTS, CASCADER_LABELS, CASCADER_SELECTABLE_LEVELS, CHART_ERROR_CODES, CHART_IMPORTS, CHART_LABELS, CHART_PLOT_HOST, CHECKBOX_GROUP_IMPORTS, CHECKBOX_IMPORTS, CHECKBOX_OPTION_VARIANTS, CHECK_ICON, CHEVRON_ICON, CHIP_ERROR_CODES, CHIP_IMPORTS, CHIP_LABELS, CHIP_REMOVE_FOCUS_FALLBACK, CHIP_REMOVE_TAB_STOP, CHOICE_FIELD_IMPORTS, CHOICE_FIELD_VARIANTS, CIRCLE_CHECK_ICON, CIRCLE_INFO_ICON, CLIPBOARD_CHECK_ICON, CLOCK_ICON, CODE_BLOCK_ICON, CODE_ICON, COLOR_INPUT_ERROR_CODES, COLOR_INPUT_IMPORTS, COLOR_INPUT_LABELS, COLOR_INPUT_TOKEN, COLOR_NOTATIONS, COLOR_NOTATION_ORDER, COMMAND_PALETTE_ERROR_CODES, COMMAND_PALETTE_IMPORTS, COMMAND_PALETTE_LABELS, COMMAND_PALETTE_OVERLAY, COMMAND_PALETTE_REGISTRY, COMMAND_PALETTE_TOKEN, COMPONENTS_VERSION, COPY_BUTTON_IMPORTS, COPY_BUTTON_LABELS, CalendarCellDirective, CalendarComponent, CalendarDirective, CalendarGridDirective, CalendarHeaderDirective, CardComponent, CarouselAutoplayDirective, CarouselComponent, CarouselDirective, CarouselItemDirective, CarouselNextDirective, CarouselPlayToggleDirective, CarouselPreviousDirective, CarouselSlideDirective, CascaderColumnDirective, CascaderComponent, CascaderDirective, CascaderNodeDirective, CascaderPanelComponent, CascaderSearchDirective, CascaderSearchOptionDirective, CascaderSurfaceDirective, CascaderTriggerDirective, ChartPlotDirective, CheckboxComponent, CheckboxDirective, CheckboxGroupComponent, CheckboxGroupSelectAllComponent, CheckboxOptionComponent, ChipComponent, ChipDirective, ChipRemoveDirective, ChoiceFieldComponent, ColorInputComponent, ColorInputDirective, ColorPickerAreaDirective, ColorPickerChannelDirective, ColorPickerPanelComponent, ColorPickerSurfaceDirective, ColorPickerTriggerDirective, CommandPaletteComponent, CommandPaletteDirective, CommandPaletteItemComponent, CommandPaletteSearchDirective, CommandPaletteShortcutDirective, ControlSuffixDirective, CopyButtonDirective, CounterComponent, DAILYMOTION_PLAYER_TOKEN, DATE_FORMAT, DATE_INPUT_ERROR_CODES, DATE_INPUT_IMPORTS, DATE_LOCALE, DATE_PICKER_HOST, DATE_RANGE_INPUT_ERROR_CODES, DATE_RANGE_INPUT_IMPORTS, DATE_TIME_FORMAT, DATE_TIME_INPUT_ERROR_CODES, DATE_TIME_INPUT_IMPORTS, DATE_TIME_LABELS, DATE_TIME_RANGE_INPUT_ERROR_CODES, DATE_TIME_RANGE_INPUT_IMPORTS, DEFAULT_ALERT_DIALOG_LABELS, DEFAULT_AVATAR_LABELS, DEFAULT_BANNER_LABELS, DEFAULT_BRACKET_LABELS, DEFAULT_BREADCRUMB_LABELS, DEFAULT_BREAKPOINTS, DEFAULT_CALENDAR_LABELS, DEFAULT_CALENDAR_RANGE_STRATEGY, DEFAULT_CAROUSEL_LABELS, DEFAULT_CASCADER_LABELS, DEFAULT_CHART_LABELS, DEFAULT_CHIP_LABELS, DEFAULT_COLOR_INPUT_LABELS, DEFAULT_COMMAND_PALETTE_LABELS, DEFAULT_COPY_BUTTON_LABELS, DEFAULT_DATE_TIME_LABELS, DEFAULT_DROPZONE_LABELS, DEFAULT_DROPZONE_MAX_PREVIEW_FILE_SIZE, DEFAULT_FILTER_OVERLAY_LABELS, DEFAULT_FORM_FIELD_DEFAULTS, DEFAULT_FORM_FIELD_LABELS, DEFAULT_GRID_LABELS, DEFAULT_ICON_VARIANT, DEFAULT_INPUT_LABELS, DEFAULT_KBD_LABELS, DEFAULT_LOADER_LABELS, DEFAULT_MATCH_CARD_START_TIME_FORMAT, DEFAULT_MATCH_LABELS, DEFAULT_NOTIFICATION_LABELS, DEFAULT_NOTIFICATION_MANAGER_CONFIG, DEFAULT_NOTIFICATION_STATUS_ICONS, DEFAULT_PAGINATION_LABELS, DEFAULT_PHONE_INPUT_LABELS, DEFAULT_PROGRESS_STEP_LABELS, DEFAULT_QUERY_ERROR_LABELS, DEFAULT_RICH_TEXT_EDITOR_LABELS, DEFAULT_RICH_TEXT_EDITOR_TOOLS, DEFAULT_SCHEDULER_LABELS, DEFAULT_SELECT_LABELS, DEFAULT_SLIDER_LABELS, DEFAULT_STANDINGS_LABELS, DEFAULT_STAT_TILE_LABELS, DEFAULT_STREAM_LABELS, DEFAULT_STREAM_PLAYER_STATE, DEFAULT_TABLE_LABELS, DEFAULT_TIME_PICKER_LABELS, DEFAULT_TREE_LABELS, DEFAULT_UNSAVED_CHANGES_LABELS, DESCRIPTION_IMPORTS, DESCRIPTION_LIST_IMPORTS, DESCRIPTION_LIST_VARIANTS, DIVIDER_IMPORTS, DROPZONE_ENTRY_STATUSES, DROPZONE_ERROR_CODES, DROPZONE_FILES_ERROR_KIND, DROPZONE_FILE_CONSTRAINTS, DROPZONE_FILE_REJECTION_REASONS, DROPZONE_IMPORTS, DROPZONE_LABELS, DURATION_INPUT_ERROR_CODES, DURATION_INPUT_IMPORTS, DailymotionPlayerComponent, DailymotionPlayerDirective, DailymotionPlayerParamsDirective, DailymotionPlayerSlotComponent, DateInputComponent, DateInputDirective, DateInputFieldDirective, DatePickerPanelComponent, DatePickerSurfaceDirective, DatePickerTriggerDirective, DateRangeInputComponent, DateRangeInputDirective, DateRangeInputFieldDirective, DateTimeInputComponent, DateTimeInputDirective, DateTimeInputFieldDirective, DateTimeRangeInputComponent, DateTimeRangeInputDirective, DateTimeRangeInputFieldDirective, DescriptionComponent, DescriptionListComponent, DividerComponent, DropzoneComponent, DropzoneDirective, DurationInputComponent, DurationInputDirective, DurationInputFieldDirective, ELLIPSIS_ICON, ELLIPSIS_VERTICAL_ICON, EMPTY_STATE_IMPORTS, ET_BUILT_IN_ICON_NAMES, EYEDROPPER_ICON, EYE_ICON, EYE_SLASH_ICON, EmptyStateComponent, FACEBOOK_PLAYER_TOKEN, FIELD_WARNINGS, FIELD_WARNING_KIND, FILE_ICON, FILTER_ICON, FILTER_OVERLAY_ERROR_CODES, FILTER_OVERLAY_IMPORTS, FILTER_OVERLAY_LABELS, FILTER_OVERLAY_TOKEN, FLOATING_ACTION_ERROR_CODES, FLOATING_ACTION_IMPORTS, FLOATING_ACTION_STATES, FLOATING_ACTION_TOKEN, FLOPPY_DISK_ICON, FOCUS_FRAME_ICON, FORM_ERROR_MESSAGE_RESOLVER, FORM_FIELD_APPEARANCES, FORM_FIELD_CONTROL_TYPES, FORM_FIELD_ERROR_CODES, FORM_FIELD_FILLS, FORM_FIELD_IMPORTS, FORM_FIELD_LABELS, FORM_FIELD_LABEL_MODES, FORM_FIELD_SIZES, FORM_FIELD_TOKEN, FORM_IMPORTS, FORM_WARNING_MESSAGE_RESOLVER, FabComponent, FacebookPlayerComponent, FacebookPlayerDirective, FacebookPlayerParamsDirective, FacebookPlayerSlotComponent, FilterOverlayResetDirective, FilterOverlaySubmitDirective, FloatingActionAnchorDirective, FloatingActionDirective, FloatingActionScopeDirective, FloatingActionTopDirective, FloatingActionTriggerDirective, FocusRingDirective, FormDirective, FormErrorComponent, FormFieldBarrierDirective, FormFieldComponent, FormFieldDirective, FormWarningComponent, GERMAN_COMMAND_PALETTE_LABELS, GERMAN_FILTER_OVERLAY_LABELS, GERMAN_QUERY_ERROR_LABELS, GRID_2X2_ICON, GRID_DEBUG_IMPORTS, GRID_ERROR_CODES, GRID_IMPORTS, GRID_LABELS, GRID_TOKEN, GridComponent, GridDebugComponent, GridDirective, GridDragDirective, GridItemComponent, GridItemDefaultActionsComponent, GridItemDirective, GridItemToolbarComponent, GridResizeDirective, HEADING_1_ICON, HEADING_2_ICON, HEADING_3_ICON, HintComponent, ICONS_TOKEN, ICON_DIRECTIVE_TOKEN, ICON_ERROR_CODES, ICON_IMPORTS, ICON_OVERRIDES_TOKEN, IMAGE_ICON, INHERIT_COLOR, INITIAL_SUPPORT_PRESENTATION_STATE, INPUT_IMPORTS, INPUT_LABELS, INPUT_MASK_HOST, INPUT_TEXT_ALIGNMENTS, INPUT_TYPES, INTERACTIVE_TAGS$1 as INTERACTIVE_TAGS, ITALIC_ICON, IconButtonComponent, IconDirective, InputComponent, InputDirective, InputMaskDirective, InputPrefixDirective, InputSuffixDirective, KBD_IMPORTS, KBD_LABELS, KBD_PLATFORM, KICK_PLAYER_TOKEN, KbdComponent, KickPlayerComponent, KickPlayerDirective, KickPlayerParamsDirective, KickPlayerSlotComponent, LINE_CHART_ERROR_CODES, LINK_ICON, LIST_BULLETED_ICON, LIST_NUMBERED_ICON, LOADER_IMPORTS, LOADER_LABELS, LOCATION_ICON, LOCK_ICON, LabelDirective, LineChartComponent, LineChartDirective, LineChartSliceDirective, MASKED_INPUT_ERROR_CODES, MASKED_INPUT_IMPORTS, MASK_VALUE_MODES, MASONRY_ERROR_CODES, MASONRY_IMPORTS, MASONRY_TOKEN, MATCH_CARD_IMPORTS, MATCH_CARD_SIZES, MATCH_CARD_TOKEN, MATCH_ERROR_CODES, MATCH_LABELS, MATCH_PARTICIPANT_IMPORTS, MENU_ERROR_CODES, MENU_IMPORTS, MENU_ITEM_VARIANTS, MENU_SEARCH_IMPORTS, MENU_SELECTION_GROUP_MULTIPLE, MENU_SELECTION_GROUP_TOKEN, MENU_SELECTION_ITEM_KIND, MINUS_ICON, MULTI_LANGUAGE_RICH_TEXT_EDITOR_ERROR_CODES, MULTI_LANGUAGE_RICH_TEXT_EDITOR_IMPORTS, MasonryDirective, MasonryItemDirective, MatchCardComponent, MatchCardDirective, MatchCardGameScoresDirective, MatchCardMetaDirective, MatchCardScoreDirective, MatchParticipantComponent, MatchScoreComponent, MenuCheckboxGroupComponent, MenuCheckboxItemComponent, MenuComponent, MenuContextTriggerDirective, MenuDirective, MenuGroupLabelComponent, MenuItemComponent, MenuItemDirective, MenuItemShortcutComponent, MenuItemSubmenuIconComponent, MenuPanelDirective, MenuRadioGroupComponent, MenuRadioItemComponent, MenuSearchDirective, MenuSelectionGroupDirective, MenuSelectionItemDirective, MenuSeparatorComponent, MenuSurfaceDirective, MenuTriggerDirective, MultiLanguageRichTextEditorComponent, MultiLanguageRichTextEditorDirective, MultiLanguageRichTextEditorLanguageToolComponent, NAV_TABS_TOKEN, NAV_TAB_IMPORTS, NOTIFICATION_ACTION_SLOTS, NOTIFICATION_ERROR_CODES, NOTIFICATION_IMPORTS, NOTIFICATION_LABELS, NOTIFICATION_STACK_CONTEXT_TOKEN, NOTIFICATION_STACK_OVERLAY_LAYER, NOTIFICATION_STATUS, NO_STREAM_PLAYER_CAPABILITIES, NUMBER_INPUT_IMPORTS, NavTabLinkComponent, NavTabLinkDirective, NavTabLinkStylesComponent, NavTabsComponent, NavTabsDirective, NavTabsOutletComponent, NavTabsOutletDirective, NotificationActionDirective, NotificationComponent, NotificationDirective, NotificationDismissDirective, NotificationItemDirective, NotificationStackDirective, NotificationSwipeToDismissDirective, NumberInputComponent, NumberInputDirective, OTP_INPUT_IMPORTS, OVERLAY_BACK_OR_CLOSE_TOKEN, OVERLAY_BODY_TOKEN, OVERLAY_CONFIG_CLASS_KEYS, OVERLAY_CONTENT_IMPORTS, OVERLAY_ERROR_CODES, OVERLAY_FOOTER_TOKEN, OVERLAY_HAS_BACKDROP, OVERLAY_HEADER_TEMPLATE_TOKEN, OVERLAY_HEADER_TOKEN, OVERLAY_IMPORTS, OVERLAY_MAIN_TOKEN, OVERLAY_NAV_TAB_IMPORTS, OVERLAY_QUERY_PARAM_INPUT_NAME, OVERLAY_REF, OVERLAY_ROUTER_CONFIG_TOKEN, OVERLAY_ROUTER_LINK_TOKEN, OVERLAY_ROUTER_OUTLET_DISABLED_TEMPLATE_TOKEN, OVERLAY_ROUTER_OUTLET_TOKEN, OVERLAY_ROUTER_TOKEN, OVERLAY_SHARED_ROUTE_TEMPLATE_TOKEN, OtpInputComponent, OtpInputDirective, OverlayAnchorDirective, OverlayBackOrCloseDirective, OverlayBodyComponent, OverlayCloseDirective, OverlayContainerComponent, OverlayDirective, OverlayFooterDirective, OverlayHeaderDirective, OverlayHeaderTemplateDirective, OverlayMainDirective, OverlayNavTabLinkComponent, OverlayOriginCloneComponent, OverlayRouteHeaderTemplateOutletComponent, OverlayRouterLinkDirective, OverlayRouterOutletComponent, OverlayRouterOutletDisabledTemplateDirective, OverlaySharedRouteTemplateDirective, OverlaySharedRouteTemplateOutletComponent, OverlaySidebarComponent, OverlaySidebarPageComponent, OverlaySurfaceDirective, OverlayTitleDirective, OverlayTriggerDirective, PAGE_SIZE_SELECT_IMPORTS, PAGINATION_IMPORTS, PAGINATION_LABELS, PAGINATION_SIZES, PARAGRAPH_ICON, PASSWORD_INPUT_IMPORTS, PAUSE_ICON, PENCIL_ICON, PHONE_COUNTRIES, PHONE_INPUT_ERROR_CODES, PHONE_INPUT_IMPORTS, PHONE_INPUT_LABELS, PICTURE_IMPORTS, PICTURE_STATES, PIE_CHART_ERROR_CODES, PIP_CHROME_REF_TOKEN, PIP_ENTRY_TOKEN, PIP_WINDOW_ASPECT_RATIO_TOKEN, PLAY_ICON, PLUS_ICON, PROGRESS_STEPS_IMPORTS, PROGRESS_STEPS_ORIENTATIONS, PROGRESS_STEP_LABELS, PROGRESS_STEP_STATES, PageSizeSelectComponent, PagedQueryTriggerDirective, PaginationComponent, PaginationDirective, PaginationSeoDirective, PasswordInputComponent, PasswordInputDirective, PhoneInputComponent, PhoneInputDirective, PhoneInputFieldDirective, PhoneInputFlagDirective, PictureComponent, PictureErrorDirective, PicturePlaceholderDirective, PieChartComponent, PieChartDirective, PipBackDirective, PipBringBackDirective, PipCellDirective, PipCloseDirective, PipCollapseOverlayDirective, PipGridToggleDirective, PipPlayerComponent, PipSlotPlaceholderComponent, PipStageDirective, PipTitleBarDirective, PipTitleBarTemplateDirective, PipWindowComponent, PipWindowParamsDirective, ProgressBarComponent, ProgressStepComponent, ProgressStepsComponent, QUERY_ERROR_ERROR_CODES, QUERY_ERROR_IMPORTS, QUERY_ERROR_LABELS, QUERY_ERROR_TOKEN, QUOTE_ICON, QueryButtonDirective, QueryErrorActionsDirective, QueryErrorComponent, QueryErrorDirective, QueryErrorTitleDirective, QueryParamOverlayLinkDirective, RADIO_GROUP_IMPORTS, RADIO_VARIANTS, RATING_ERROR_CODES, RATING_IMPORTS, REDO_ICON, RICH_TEXT_EDITOR_FLOATING_TOOLBAR, RICH_TEXT_EDITOR_HEADING_OPTIONS, RICH_TEXT_EDITOR_IMPORTS, RICH_TEXT_EDITOR_INLINE_TOOLS, RICH_TEXT_EDITOR_LABELS, RICH_TEXT_EDITOR_LANGUAGE_TOOL, RICH_TEXT_EDITOR_LINK_EDITOR, RICH_TEXT_EDITOR_TOKEN_CODEC, RICH_TEXT_EDITOR_TOKEN_PALETTE_IMPORTS, RICH_TEXT_EDITOR_TOOL, RICH_TEXT_EDITOR_TOOLS, RICH_TEXT_EDITOR_TOOL_BUTTONS, RICH_TEXT_EDITOR_TRIGGERS_IMPORTS, ROTATE_RIGHT_ICON, RadioComponent, RadioGroupComponent, RangeSliderComponent, RangeSliderDirective, RatingComponent, RatingDirective, RatingIconDirective, RichTextEditorAlignToolComponent, RichTextEditorComponent, RichTextEditorDirective, RichTextEditorFloatingToolbarComponent, RichTextEditorFloatingToolbarDirective, RichTextEditorHeadingToolComponent, RichTextEditorImageEditorComponent, RichTextEditorImageToolComponent, RichTextEditorLinkEditorComponent, RichTextEditorLinkEditorDirective, RichTextEditorTableToolComponent, RichTextEditorTokenPaletteComponent, RichTextEditorTokenPopupComponent, RichTextEditorTriggersDirective, RichTextViewerComponent, SANKEY_CHART_ERROR_CODES, SCHEDULER_EDIT_SURFACE_IMPORTS, SCHEDULER_ERROR_CODES, SCHEDULER_FEATURE_HOST, SCHEDULER_IMPORTS, SCHEDULER_LABELS, SCROLLABLE_DARKEN_IMPORTS, SCROLLABLE_DRAG_IMPORTS, SCROLLABLE_ERROR_CODES, SCROLLABLE_IMPORTS, SCROLLABLE_NAVIGATION_IMPORTS, SCROLLBAR_ERROR_CODES, SCROLLBAR_IMPORTS, SEGMENTED_BUTTON_GROUP_VARIANTS, SEGMENTED_BUTTON_IMPORTS, SELECTION_CARD_CONTROL_POSITIONS, SELECTION_LIST_ERROR_CODES, SELECTION_LIST_IMPORTS, SELECTION_LIST_MULTIPLE, SELECTION_LIST_TOKEN, SELECT_ERROR_CODES, SELECT_FILTER_MODES, SELECT_IMPORTS, SELECT_LABELS, SIDEBAR_OVERLAY_CONFIG, SIDEBAR_OVERLAY_TOKEN, SKELETON_IMPORTS, SLIDER_ERROR_CODES, SLIDER_IMPORTS, SLIDER_LABELS, SLIDER_MARK_VALUE_ATTRIBUTE, SLIDER_TOKEN, SOOP_PLAYER_TOKEN, SPLIT_BUTTON_ERROR_CODES, STANDINGS_ERROR_CODES, STANDINGS_IMPORTS, STANDINGS_LABELS, STANDINGS_PICK_IMPORTS, STAR_ICON, STAT_TILE_IMPORTS, STAT_TILE_LABELS, STREAM_ALL_IMPORTS, STREAM_CONSENT_TOKEN, STREAM_DAILYMOTION_IMPORTS, STREAM_DEFAULT_COMPONENTS, STREAM_ERROR_CODES, STREAM_FACEBOOK_IMPORTS, STREAM_IMPORTS, STREAM_KICK_IMPORTS, STREAM_LABELS, STREAM_PIP_IMPORTS, STREAM_PLAYER_COMPONENT_TOKEN, STREAM_PLAYER_ERROR_CONTEXT_TOKEN, STREAM_PLAYER_ERROR_TOKEN, STREAM_PLAYER_PARAMS_TOKEN, STREAM_PLAYER_SLOT_TOKEN, STREAM_PLAYER_TOKEN, STREAM_SLOT_PLAYER_ID_TOKEN, STREAM_SOOP_IMPORTS, STREAM_TIKTOK_IMPORTS, STREAM_TWITCH_IMPORTS, STREAM_USER_CONSENT_PROVIDER_TOKEN, STREAM_VIMEO_IMPORTS, STREAM_YOUTUBE_IMPORTS, STRIKETHROUGH_ICON, SUPPORT_CONTENT_STATE, SUPPORT_TRANSITION_DIRECTION, SWITCH_IMPORTS, SankeyChartComponent, SankeyChartDirective, SankeyChartMarkDirective, SchedulerActionAddAppointmentDirective, SchedulerAgendaDirective, SchedulerAgendaViewComponent, SchedulerAppointmentDragDirective, SchedulerBadgeChainCountComponent, SchedulerBadgeChainCountDirective, SchedulerBadgeColorDotComponent, SchedulerBadgeColorDotDirective, SchedulerBadgeLocationComponent, SchedulerBadgeLocationDirective, SchedulerBadgeTimeRangeComponent, SchedulerBadgeTimeRangeDirective, SchedulerBadgeTitleComponent, SchedulerBadgeTitleDirective, SchedulerComponent, SchedulerDirective, SchedulerEditAddSubAppointmentItemComponent, SchedulerEditColorComponent, SchedulerEditDeleteItemComponent, SchedulerEditDescriptionComponent, SchedulerEditLocationComponent, SchedulerEditSurfaceActionsComponent, SchedulerEditSurfaceBreadcrumbComponent, SchedulerEditSurfaceChildrenComponent, SchedulerEditSurfaceComponent, SchedulerEditSurfaceDirective, SchedulerEditSurfaceFieldsComponent, SchedulerEditSurfaceFooterComponent, SchedulerEditSurfaceHeaderComponent, SchedulerEditTimeRangeComponent, SchedulerEditTitleComponent, SchedulerMonthDirective, SchedulerMonthViewComponent, SchedulerSwipeNavigationDirective, SchedulerTimeGridDirective, SchedulerTimeGridViewComponent, ScrollableActiveChildDirective, ScrollableButtonsComponent, ScrollableButtonsDirective, ScrollableComponent, ScrollableDarkenDirective, ScrollableDirective, ScrollableDragDirective, ScrollableIgnoreChildDirective, ScrollableLoadingTemplateDirective, ScrollableMasksComponent, ScrollableNavigationComponent, ScrollableNavigationDirective, ScrollableSnapDirective, ScrollbarComponent, ScrollbarDirective, ScrollbarThumbDirective, SegmentedButtonComponent, SegmentedButtonGroupComponent, SelectAllOptionComponent, SelectAllOptionDirective, SelectComponent, SelectDirective, SelectEmptyDirective, SelectErrorDirective, SelectListboxDirective, SelectLoadingDirective, SelectOptionComponent, SelectOptionDirective, SelectOptionGroupComponent, SelectOptionGroupDirective, SelectOptionTemplateDirective, SelectOptionsDirective, SelectPanelComponent, SelectSearchDirective, SelectSurfaceDirective, SelectTriggerDirective, SelectValueDirective, SelectViewportDirective, SelectVirtualOptionComponent, SelectVirtualOptionDirective, SelectionListControlDirective, SelectionListDirective, SelectionOptionDirective, SkeletonComponent, SkeletonItemComponent, SkeletonTextComponent, SliderComponent, SliderDirective, SliderThumbDirective, SliderThumbLabelDirective, SliderTrackDirective, SoopPlayerComponent, SoopPlayerDirective, SoopPlayerParamsDirective, SoopPlayerSlotComponent, SpinnerComponent, SplitButtonActionDirective, SplitButtonComponent, SplitButtonDirective, SplitButtonTriggerDirective, StandingsComponent, StandingsDirective, StandingsPickComponent, StandingsPickDirective, StandingsPickMarkDirective, StatTileComponent, StatTileSparklineComponent, StreamConsentAcceptDirective, StreamConsentComponent, StreamConsentDirective, StreamPipChromeComponent, StreamPlayerErrorComponent, StreamPlayerErrorDirective, StreamPlayerLoadingComponent, StreamPlayerSlotDirective, SwitchComponent, SwitchDirective, TABLE_CELL_ERROR_TOOLTIP_IMPORTS, TABLE_COLUMN_CHOOSER_IMPORTS, TABLE_COLUMN_MENU_IMPORTS, TABLE_CSV_EXPORT_IMPORTS, TABLE_DRAG_SCROLL_IMPORTS, TABLE_ERROR_CODES, TABLE_FEATURE_HOST, TABLE_FILTER_IMPORTS, TABLE_GROUP_HEADERS_IMPORTS, TABLE_ICON, TABLE_IMPORTS, TABLE_INLINE_EDIT_IMPORTS, TABLE_KEYBOARD_NAV_IMPORTS, TABLE_LABELS, TABLE_PAGE_STICKY_HEADER_IMPORTS, TABLE_REORDER_IMPORTS, TABLE_RESIZE_IMPORTS, TABLE_ROW_EXPANSION_IMPORTS, TABLE_ROW_ROUTER_LINK_IMPORTS, TABLE_SELECTION_IMPORTS, TABLE_SKELETON_IMPORTS, TABLE_STATE_PERSISTENCE_IMPORTS, TABLE_STICKY_COLUMNS_IMPORTS, TABLE_VIRTUAL_SCROLL_IMPORTS, TAB_BAR_FITS, TAB_BAR_ORIENTATIONS, TAB_BAR_TOKEN, TAB_BAR_TRIGGER_TOKEN, TAB_BAR_VARIANTS, TAB_ERROR_CODES, TAB_GROUP_TOKEN, TAB_IMPORTS, TAB_PANEL_TOKEN, TAB_SIZES, TAG_INPUT_ERROR_CODES, TAG_INPUT_IMPORTS, TEXTAREA_IMPORTS, TEXTAREA_RESIZE_MODES, TEXT_ALIGNS, TEXT_FIELD_CONTROL_INPUTS, THUMBTACK_ICON, TIKTOK_PLAYER_TOKEN, TIMELINE_IMPORTS, TIMES_ICON, TIME_FORMAT, TIME_INPUT_ERROR_CODES, TIME_INPUT_IMPORTS, TIME_PICKER_ERROR_CODES, TIME_PICKER_IMPORTS, TIME_PICKER_LABELS, TIME_RANGE_INPUT_ERROR_CODES, TIME_RANGE_INPUT_IMPORTS, TOGGLETIP_ERROR_CODES, TOGGLETIP_IMPORTS, TOOLBAR_IMPORTS, TOOLBAR_ORIENTATIONS, TOOLTIP_ERROR_CODES, TOOLTIP_IMPORTS, TRASH_ICON, TREE_ERROR_CODES, TREE_IMPORTS, TREE_LABELS, TREE_LEVEL_STATUSES, TREE_MARKERS, TREE_SELECTION_MODES, TRIANGLE_EXCLAMATION_ICON, TROPHY_ICON, TWITCH_PLAYER_TOKEN, TabBarDirective, TabBarTriggerDirective, TabBarUnderlineDirective, TabComponent, TabGroupComponent, TabGroupDirective, TabLabelDirective, TabPanelDirective, TabTriggerDirective, TableCardSurfaceDirective, TableCellDirective, TableCellEditDirective, TableCellErrorMarkComponent, TableCellErrorTooltipDirective, TableCellSkeletonDirective, TableColumnChooserComponent, TableColumnMenuDirective, TableColumnMenuTriggerComponent, TableComponent, TableCsvExportDirective, TableDetailStylesComponent, TableDragScrollDirective, TableDragScrollStylesComponent, TableExpanderCellComponent, TableFilterOptionDirective, TableFilterTriggerComponent, TableFiltersDirective, TableFooterCellDirective, TableFooterDirective, TableGroupHeaderRowComponent, TableGroupHeadersDirective, TableHeaderCellDirective, TableInlineEditDirective, TableInlineEditStylesComponent, TableKeyboardNavDirective, TablePageStickyHeaderDirective, TablePageStickyHeaderStylesComponent, TableReorderDirective, TableReorderOverlayComponent, TableResizeDirective, TableResizeGripComponent, TableRowBoxStylesComponent, TableRowDetailComponent, TableRowExpansionDirective, TableRowRouterLinkDirective, TableSelectAllCellComponent, TableSelectCellComponent, TableSelectionDirective, TableSkeletonDirective, TableSkeletonRowsComponent, TableStatePersistenceDirective, TableStickyColumnsDirective, TableStickyColumnsStylesComponent, TableVirtualScrollDirective, TableVirtualScrollStylesComponent, TagInputComponent, TagInputDirective, TagInputFieldDirective, TextButtonComponent, TextFieldControlDirective, TextareaComponent, TextareaDirective, TikTokPlayerComponent, TikTokPlayerDirective, TikTokPlayerParamsDirective, TikTokPlayerSlotComponent, TimeInputComponent, TimeInputDirective, TimeInputFieldDirective, TimePickerComponent, TimePickerDirective, TimePickerRingDirective, TimePickerRingHandleDirective, TimeRangeInputComponent, TimeRangeInputDirective, TimeRangeInputFieldDirective, TimelineComponent, TimelineItemComponent, ToggletipCloseDirective, ToggletipComponent, ToggletipDirective, ToggletipTriggerDirective, ToolbarComponent, ToolbarDirective, TooltipComponent, TooltipDirective, TreeComponent, TreeDirective, TreeMarkerComponent, TreeNodeDefDirective, TreeNodeDirective, TwitchPlayerComponent, TwitchPlayerDirective, TwitchPlayerParamsDirective, TwitchPlayerSlotComponent, UNDERLINE_ICON, UNDO_ICON, UNSAVED_CHANGES_LABELS, UPLOAD_ICON, VIMEO_PLAYER_TOKEN, VimeoPlayerComponent, VimeoPlayerDirective, VimeoPlayerParamsDirective, VimeoPlayerSlotComponent, WCAG_CONTRAST_RATIOS, WINDOW_CONTROL_BUTTON_KINDS, WINDOW_CONTROL_BUTTON_SIZES, WindowControlButtonComponent, YOUTUBE_PLAYER_TOKEN, YoutubePlayerComponent, YoutubePlayerDirective, YoutubePlayerParamsDirective, YoutubePlayerSlotComponent, anchoredDialogOverlayStrategy, anchoredOverlayStrategy, bottomSheetOverlayStrategy, bracketFitsWidth, bracketNaturalWidth, buildAnchoredRuntimePositionStrategy, canHaveChildren, canonicalKbdKey, cascaderFromQuery, centeredOverlayStrategy, clearLeavingSupportStateOnExit, colorContrast, commandPaletteLabelsForLocale, countDescendants, createAlertDialogOpener, createAnchoredPanelController, createCardMask, createCommandPaletteOpener, createCurrencyMask, createDefaultDropzoneArgs, createDropzoneUpload, createExistingDropzoneEntry, createFileDropzoneEntry, createFixedLengthRangeStrategy, createGridAdapter, createIbanMask, createNormalizedBracketMatch, createNotificationPromiseFn, createNotificationRef, createOverlayOpener, createOverlaySingleSlot, createOverlayStrategyController, createOverlayUnsavedChangesGuard, createPipChromeAnimations, createPipChromeState, createRichTextEditorTrigger, createRichTextEditorTriggerWithQuery, createSchedulerRegistry, createStreamConfig, createStreamPlayerSlot, createTableRowsSource, createTableRowsState, createTableStateStorage, createV2DropzoneUpload, createWeekRangeStrategy, dateBounds, dateRangeBounds, dateRangeOrder, dateTimeBounds, dateTimeRangeBounds, dateTimeRangeOrder, defaultCompareWith$1 as defaultCompareWith, defaultDropzoneRejectionMessage, defaultSankeyChartLinkKeyHint, defineOverlay, defineQueryParamOverlay, describeBracketSlot, deserializeGridLayout, deserializeTableState, detectKbdPlatform, dialogOverlayStrategy, disposeDropzoneEntry, doubleEliminationBracketLayout, dropzoneFiles, enableDragToDismiss, extractFirstImageUrl, filterOverlayLabelsForLocale, filterOverlayPreviewFromQuery, filterRows, filterValues, findNextRelevantHtmlElement, focusFirstInvalidField, formatFileSize, fromGridPosition, fullScreenDialogOverlayStrategy, generateBracketDataForEthlete, generateRoundTypeFromEthleteRoundType, generateTournamentModeFromEthleteRounds, getClosestOverlay, getColorContrastRatio, getOriginCoordinatesAndDimensions, hexColor, hitsInteractiveElement, iconRegistryKey, injectAlertDialogLabels, injectAnchoredDialogStrategy, injectAnchoredDialogStrategyDefaults, injectAvatarLabels, injectBannerLabels, injectBottomSheetStrategy, injectBottomSheetStrategyDefaults, injectBracketConfig, injectBracketLabels, injectBreadcrumbLabels, injectBreadcrumbManager, injectCalendarLabels, injectCarouselLabels, injectCascaderLabels, injectChartLabels, injectChipLabels, injectColorInputLabels, injectCommandPalette, injectCommandPaletteLabels, injectCommandPaletteRegistry, injectCopyButtonLabels, injectDateFormat, injectDateLocale, injectDateTimeFormat, injectDateTimeLabels, injectDateTimeZone, injectDialogStrategy, injectDialogStrategyDefaults, injectDropzoneLabels, injectFilterOverlay, injectFilterOverlayLabels, injectFormFieldDefaults, injectFormFieldLabels, injectFormSupport, injectFullscreenDialogStrategy, injectFullscreenDialogStrategyDefaults, injectGridConfig, injectGridLabels, injectInputLabels, injectKbdLabels, injectLeftSheetStrategy, injectLeftSheetStrategyDefaults, injectLoaderLabels, injectMatchLabels, injectNotificationLabels, injectNotificationManager, injectNotificationManagerConfig, injectOverlayManager, injectOverlayRouter, injectOverlayScrollBlocker, injectOverlaySurfaceContext, injectPaginationLabels, injectPhoneInputLabels, injectPictureConfig, injectPipChromeManager, injectPipManager, injectPipSlotPlaceholderConfig, injectProgressStepLabels, injectQueryErrorLabels, injectRichTextEditorLabels, injectRichTextEditorTools, injectRightSheetStrategy, injectRightSheetStrategyDefaults, injectSchedulerEditSurface, injectSchedulerEditSurfaceOpener, injectSchedulerFeatureHost, injectSchedulerLabels, injectSelectLabels, injectSidebarOverlay, injectSliderLabels, injectStandingsLabels, injectStatTileLabels, injectStreamConfig, injectStreamConsentConfig, injectStreamLabels, injectStreamManager, injectStreamPlayerErrorConfig, injectStreamPlayerLoadingConfig, injectStreamPlayerSlot, injectStreamScriptLoader, injectStreamUserConsentProvider, injectTableCsvExport, injectTableFeatureHost, injectTableLabels, injectTimeFormat, injectTimePickerLabels, injectTopSheetStrategy, injectTopSheetStrategyDefaults, injectTreeLabels, injectUnsavedChangesLabels, isFileAccepted, isHtmlElement, isInteractiveElement, isPointerEvent, isRestorableTableState, isTargetInsideOverlayTree, isTouchEvent, kbdKeyLabel, kbdKeyName, lastDaysPreset, lastMonthPreset, lastWeekPreset, leftSheetOverlayStrategy, legacyQueryErrorSource, mapGridLayout, matchCountryByDialCode, matchParticipantDisplayName, matchedDialPrefix, matchesKbdChord, mergeOverlayBreakpointConfigs, mergeOverlayConfigs, mergeTableCsvExportOptions, mirroredDoubleEliminationBracketLayout, mirroredSingleEliminationBracketLayout, missingStreamSourceError, mountNavTabLinkStyles, nextDaysPreset, normalizeEthleteBracketMatch, normalizeEthleteGroupRanking, normalizeEthleteMatch, normalizeEthleteMatchStatus, normalizeEthleteMedia, normalizeEthleteParticipant, normalizeEthletePlacement, normalizePictureSizes, normalizePictureSource, numberInputStepMultiplierFrom, overlayResult, paginate, parseKbdKeys, phoneCountryFlag, phoneCountryName, provideAlertDialogLabels, provideAnchoredDialogStrategy, provideAnchoredDialogStrategyDefaults, provideAvatarLabels, provideBannerLabels, provideBottomSheetStrategy, provideBottomSheetStrategyDefaults, provideBracketConfig, provideBracketLabels, provideBreadcrumbLabels, provideBreadcrumbManager, provideCalendarLabels, provideCarouselLabels, provideCascaderLabels, provideChartLabels, provideChipLabels, provideColorInputLabels, provideCommandPaletteLabels, provideCommandPaletteRegistry, provideCopyButtonLabels, provideDateFormat, provideDateLocale, provideDateTimeFormat, provideDateTimeLabels, provideDateTimeZone, provideDialogStrategy, provideDialogStrategyDefaults, provideDropzoneLabels, provideFilterOverlay, provideFilterOverlayLabels, provideFormErrorMessageResolver, provideFormFieldDefaults, provideFormFieldLabels, provideFormSupport, provideFormWarningMessageResolver, provideFullscreenDialogStrategy, provideFullscreenDialogStrategyDefaults, provideGridConfig, provideGridLabels, provideIconOverrides, provideIcons, provideInputLabels, provideKbdLabels, provideLeftSheetStrategy, provideLeftSheetStrategyDefaults, provideLoaderLabels, provideMatchLabels, provideNotificationLabels, provideNotificationManager, provideNotificationManagerConfig, provideNotificationManagerInstance, provideOverlay, provideOverlayManager, provideOverlayRouter, provideOverlayRouterConfig, provideOverlayRouterService, provideOverlayScrollBlocker, providePaginationLabels, providePhoneInputLabels, providePictureConfig, providePipChromeManager, providePipManager, providePipSlotPlaceholderConfig, provideProgressStepLabels, provideQueryErrorLabels, provideRichTextEditorAlignmentTool, provideRichTextEditorAutoformat, provideRichTextEditorBlockquoteTool, provideRichTextEditorCodeBlockTool, provideRichTextEditorDefaultTools, provideRichTextEditorFloatingToolbar, provideRichTextEditorHeadingTool, provideRichTextEditorImageTool, provideRichTextEditorLabels, provideRichTextEditorLanguageTool, provideRichTextEditorLinkEditor, provideRichTextEditorLinkTool, provideRichTextEditorTableTool, provideRichTextEditorTokenRendering, provideRichTextEditorTool, provideRichTextEditorTools, provideRightSheetStrategy, provideRightSheetStrategyDefaults, provideSchedulerEditSurface, provideSchedulerLabels, provideSelectLabels, provideSidebarOverlay, provideSidebarOverlayConfig, provideSidebarOverlayService, provideSliderLabels, provideStandingsLabels, provideStatTileLabels, provideStreamConfig, provideStreamConsentConfig, provideStreamLabels, provideStreamManager, provideStreamPip, provideStreamPlayerErrorConfig, provideStreamPlayerLoadingConfig, provideTableLabels, provideTimeFormat, provideTimePickerLabels, provideTopSheetStrategy, provideTopSheetStrategyDefaults, provideTreeLabels, provideUnsavedChangesAlertDialog, provideUnsavedChangesLabels, queryButtonSourceFromV2Query, queryErrorLabelsForLocale, queryErrorResponseFromLegacyError, quickFilterRows, reconcileColumnOrder, reconcileColumnWidths, reconcileHiddenColumns, reduceSupportPresentation, registerCommands, registerSingleton, rejectionMessage, requiredLanguages, resolveBracketLayout, resolveClosestOverlay, resolveFilterOverlaySubmitButton, resolveNormalizedMatchSideState, resolveNotificationStatusIcon, resolveOverlayHasBackdrop, resolveTableCsvRows, rgbColor, richTextEditorToolLabel, rightSheetOverlayStrategy, schedulerFeatureConfig, selectOptionsFromQuery, selectOptionsFromV2Query, serializeGridLayout, serializeTableState, singleEliminationBracketLayout, sortRows, startOfCalendarUnit, stripTrunkZero, supportPresentationIncludesState, swissBracketLayout, tableCsvRowsFromPages, tableFeatureConfig, tableRowsFromQuery, tableRowsFromV2Query, tableToCsv, thisMonthPreset, thisWeekPreset, thisYearPreset, timeBounds, timeRangeBounds, timeRangeOrder, toFieldWarnings, toGridPosition, toNotificationContent, toPictureDimension, todayPreset, topSheetOverlayStrategy, transformingBottomSheetToDialogOverlayStrategy, transformingFullScreenDialogToDialogOverlayStrategy, transformingFullScreenDialogToRightSheetOverlayStrategy, warn, wireFormSupport, withPictureBaseUrl, yesterdayPreset };
77119
+ export { ACCESSIBLE_NAME_INPUTS, ACCORDION_ERROR_CODES, ACCORDION_GROUP_TOKEN, ACCORDION_IMPORTS, ACCORDION_TOKEN, ALERT_DIALOG_LABELS, ALIGN_CENTER_ICON, ALIGN_JUSTIFY_ICON, ALIGN_LEFT_ICON, ALIGN_RIGHT_ICON, ARROWS_LEFT_RIGHT_ICON, ARROW_OUT_UP_RIGHT_ICON, ARROW_RIGHT_ICON, ARROW_UP_ICON, AVATAR_IMPORTS, AVATAR_LABELS, AVATAR_SHAPES, AVATAR_SIZES, AccessibleNameControlDirective, AccordionComponent, AccordionContentDirective, AccordionDirective, AccordionGroupComponent, AccordionGroupDirective, AccordionHintDirective, AccordionLabelDirective, AccordionPanelDirective, AccordionTriggerDirective, AvatarComponent, AvatarGroupComponent, BADGE_ICON_ALIGNMENTS, BADGE_IMPORTS, BADGE_SIZES, BADGE_VARIANTS, BANNER_IMPORTS, BANNER_LABELS, BANNER_TYPES, BOLD_ICON, BRACKET_CARD_CONTEXT, BRACKET_DEFAULTS, BRACKET_DEFAULT_CARDS, BRACKET_DENSITY, BRACKET_DENSITY_PRESETS, BRACKET_IMPORTS, BRACKET_LABELS, BRACKET_PARTICIPANTS_IMPORTS, BRACKET_PICK_CARD_IMPORTS, BRACKET_PICK_CARD_NOTE_TONE, BRACKET_ROUNDS_LIST_IMPORTS, BRACKET_ROUND_HEADER_ALIGN, BRACKET_SKELETON_IMPORTS, BREADCRUMB_COLLAPSE_IMPORTS, BREADCRUMB_COLLAPSE_TOKEN, BREADCRUMB_ERROR_CODES, BREADCRUMB_IMPORTS, BREADCRUMB_LABELS, BREADCRUMB_SEGMENT_TOKEN, BREADCRUMB_SEO_IMPORTS, BREADCRUMB_TOKEN, BUTTON_ICON_ALIGNMENTS, BUTTON_IMPORTS, BUTTON_SIZES, BUTTON_SPINNER_CONFIG, BUTTON_TYPES, BUTTON_VARIANTS, BadgeComponent, BannerComponent, BarChartComponent, BarChartDirective, BarChartPlotDirective, BracketComponent, BracketDefaultContinueComponent, BracketDefaultFinalMatchComponent, BracketDefaultMatchComponent, BracketDefaultRoundHeaderComponent, BracketParticipantsComponent, BracketPickCardComponent, BracketRoundsListComponent, BracketSkeletonComponent, BracketSkeletonContinueComponent, BracketSkeletonFinalMatchComponent, BracketSkeletonMatchComponent, BracketSkeletonRoundHeaderComponent, BrandLoaderComponent, BreadcrumbCollapseDirective, BreadcrumbComponent, BreadcrumbDirective, BreadcrumbItemDirective, BreadcrumbItemTemplateDirective, BreadcrumbOutletComponent, BreadcrumbOverflowComponent, BreadcrumbSegmentDirective, BreadcrumbSeoDirective, BreadcrumbSeparatorDirective, ButtonColorDirective, ButtonComponent, ButtonDirective, ButtonStylesDirective, CALENDAR_ERROR_CODES, CALENDAR_ICON, CALENDAR_IMPORTS, CALENDAR_LABELS, CARD_IMPORTS, CARD_VARIANTS, CAROUSEL_AUTOPLAY_TOKEN, CAROUSEL_ERROR_CODES, CAROUSEL_IMPORTS, CAROUSEL_LABELS, CAROUSEL_SLIDE_ALIGNMENTS, CAROUSEL_TOKEN, CAROUSEL_TRANSITIONS, CAROUSEL_TRANSITION_DRIVERS, CASCADER_ERROR_CODES, CASCADER_IMPORTS, CASCADER_LABELS, CASCADER_SELECTABLE_LEVELS, CHART_ERROR_CODES, CHART_IMPORTS, CHART_LABELS, CHART_PLOT_HOST, CHECKBOX_GROUP_IMPORTS, CHECKBOX_IMPORTS, CHECKBOX_OPTION_VARIANTS, CHECK_ICON, CHEVRON_ICON, CHIP_ERROR_CODES, CHIP_IMPORTS, CHIP_LABELS, CHIP_REMOVE_FOCUS_FALLBACK, CHIP_REMOVE_TAB_STOP, CHOICE_FIELD_IMPORTS, CHOICE_FIELD_VARIANTS, CIRCLE_CHECK_ICON, CIRCLE_INFO_ICON, CLIPBOARD_CHECK_ICON, CLOCK_ICON, CODE_BLOCK_ICON, CODE_ICON, COLOR_INPUT_ERROR_CODES, COLOR_INPUT_IMPORTS, COLOR_INPUT_LABELS, COLOR_INPUT_TOKEN, COLOR_NOTATIONS, COLOR_NOTATION_ORDER, COMMAND_PALETTE_ERROR_CODES, COMMAND_PALETTE_IMPORTS, COMMAND_PALETTE_LABELS, COMMAND_PALETTE_OVERLAY, COMMAND_PALETTE_REGISTRY, COMMAND_PALETTE_TOKEN, COMPONENTS_VERSION, COPY_BUTTON_IMPORTS, COPY_BUTTON_LABELS, CalendarCellDirective, CalendarComponent, CalendarDirective, CalendarGridDirective, CalendarHeaderDirective, CardComponent, CarouselAutoplayDirective, CarouselComponent, CarouselDirective, CarouselItemDirective, CarouselNextDirective, CarouselPlayToggleDirective, CarouselPreviousDirective, CarouselSlideDirective, CascaderColumnDirective, CascaderComponent, CascaderDirective, CascaderNodeDirective, CascaderPanelComponent, CascaderSearchDirective, CascaderSearchOptionDirective, CascaderSurfaceDirective, CascaderTriggerDirective, ChartPlotDirective, CheckboxComponent, CheckboxDirective, CheckboxGroupComponent, CheckboxGroupSelectAllComponent, CheckboxOptionComponent, ChipComponent, ChipDirective, ChipRemoveDirective, ChoiceFieldComponent, ColorInputComponent, ColorInputDirective, ColorPickerAreaDirective, ColorPickerChannelDirective, ColorPickerPanelComponent, ColorPickerSurfaceDirective, ColorPickerTriggerDirective, CommandPaletteComponent, CommandPaletteDirective, CommandPaletteItemComponent, CommandPaletteSearchDirective, CommandPaletteShortcutDirective, ControlSuffixDirective, CopyButtonDirective, CounterComponent, DAILYMOTION_PLAYER_TOKEN, DATE_FORMAT, DATE_INPUT_ERROR_CODES, DATE_INPUT_IMPORTS, DATE_LOCALE, DATE_PICKER_HOST, DATE_RANGE_INPUT_ERROR_CODES, DATE_RANGE_INPUT_IMPORTS, DATE_TIME_FORMAT, DATE_TIME_INPUT_ERROR_CODES, DATE_TIME_INPUT_IMPORTS, DATE_TIME_LABELS, DATE_TIME_RANGE_INPUT_ERROR_CODES, DATE_TIME_RANGE_INPUT_IMPORTS, DEFAULT_ALERT_DIALOG_LABELS, DEFAULT_AVATAR_LABELS, DEFAULT_BANNER_LABELS, DEFAULT_BRACKET_LABELS, DEFAULT_BREADCRUMB_LABELS, DEFAULT_BREAKPOINTS, DEFAULT_CALENDAR_LABELS, DEFAULT_CALENDAR_RANGE_STRATEGY, DEFAULT_CAROUSEL_LABELS, DEFAULT_CASCADER_LABELS, DEFAULT_CHART_LABELS, DEFAULT_CHIP_LABELS, DEFAULT_COLOR_INPUT_LABELS, DEFAULT_COMMAND_PALETTE_LABELS, DEFAULT_COPY_BUTTON_LABELS, DEFAULT_DATE_TIME_LABELS, DEFAULT_DROPZONE_LABELS, DEFAULT_DROPZONE_MAX_PREVIEW_FILE_SIZE, DEFAULT_FILTER_OVERLAY_LABELS, DEFAULT_FORM_FIELD_DEFAULTS, DEFAULT_FORM_FIELD_LABELS, DEFAULT_GRID_LABELS, DEFAULT_ICON_VARIANT, DEFAULT_INPUT_LABELS, DEFAULT_KBD_LABELS, DEFAULT_LOADER_LABELS, DEFAULT_MATCH_CARD_START_TIME_FORMAT, DEFAULT_MATCH_LABELS, DEFAULT_NOTIFICATION_LABELS, DEFAULT_NOTIFICATION_MANAGER_CONFIG, DEFAULT_NOTIFICATION_STATUS_ICONS, DEFAULT_PAGINATION_LABELS, DEFAULT_PHONE_INPUT_LABELS, DEFAULT_PROGRESS_STEP_LABELS, DEFAULT_QUERY_ERROR_LABELS, DEFAULT_RICH_TEXT_EDITOR_LABELS, DEFAULT_RICH_TEXT_EDITOR_TOOLS, DEFAULT_SCHEDULER_LABELS, DEFAULT_SELECT_LABELS, DEFAULT_SLIDER_LABELS, DEFAULT_STANDINGS_LABELS, DEFAULT_STAT_TILE_LABELS, DEFAULT_STREAM_LABELS, DEFAULT_STREAM_PLAYER_STATE, DEFAULT_TABLE_LABELS, DEFAULT_TIME_PICKER_LABELS, DEFAULT_TREE_LABELS, DEFAULT_UNSAVED_CHANGES_LABELS, DESCRIPTION_IMPORTS, DESCRIPTION_LIST_IMPORTS, DESCRIPTION_LIST_VARIANTS, DIVIDER_IMPORTS, DROPZONE_ENTRY_STATUSES, DROPZONE_ERROR_CODES, DROPZONE_FILES_ERROR_KIND, DROPZONE_FILE_CONSTRAINTS, DROPZONE_FILE_REJECTION_REASONS, DROPZONE_IMPORTS, DROPZONE_LABELS, DURATION_INPUT_ERROR_CODES, DURATION_INPUT_IMPORTS, DailymotionPlayerComponent, DailymotionPlayerDirective, DailymotionPlayerParamsDirective, DailymotionPlayerSlotComponent, DateInputComponent, DateInputDirective, DateInputFieldDirective, DatePickerPanelComponent, DatePickerSurfaceDirective, DatePickerTriggerDirective, DateRangeInputComponent, DateRangeInputDirective, DateRangeInputFieldDirective, DateTimeInputComponent, DateTimeInputDirective, DateTimeInputFieldDirective, DateTimeRangeInputComponent, DateTimeRangeInputDirective, DateTimeRangeInputFieldDirective, DescriptionComponent, DescriptionListComponent, DividerComponent, DropzoneComponent, DropzoneDirective, DurationInputComponent, DurationInputDirective, DurationInputFieldDirective, ELLIPSIS_ICON, ELLIPSIS_VERTICAL_ICON, EMPTY_STATE_IMPORTS, ET_BUILT_IN_ICON_NAMES, EYEDROPPER_ICON, EYE_ICON, EYE_SLASH_ICON, EmptyStateComponent, FACEBOOK_PLAYER_TOKEN, FIELD_WARNINGS, FIELD_WARNING_KIND, FILE_ICON, FILTER_ICON, FILTER_OVERLAY_ERROR_CODES, FILTER_OVERLAY_IMPORTS, FILTER_OVERLAY_LABELS, FILTER_OVERLAY_TOKEN, FLOATING_ACTION_ERROR_CODES, FLOATING_ACTION_IMPORTS, FLOATING_ACTION_STATES, FLOATING_ACTION_TOKEN, FLOPPY_DISK_ICON, FOCUS_FRAME_ICON, FORM_ERROR_MESSAGE_RESOLVER, FORM_FIELD_APPEARANCES, FORM_FIELD_CONTROL_TYPES, FORM_FIELD_ERROR_CODES, FORM_FIELD_FILLS, FORM_FIELD_IMPORTS, FORM_FIELD_LABELS, FORM_FIELD_LABEL_MODES, FORM_FIELD_SIZES, FORM_FIELD_TOKEN, FORM_IMPORTS, FORM_WARNING_MESSAGE_RESOLVER, FabComponent, FacebookPlayerComponent, FacebookPlayerDirective, FacebookPlayerParamsDirective, FacebookPlayerSlotComponent, FilterOverlayResetDirective, FilterOverlaySubmitDirective, FloatingActionAnchorDirective, FloatingActionDirective, FloatingActionScopeDirective, FloatingActionTopDirective, FloatingActionTriggerDirective, FocusRingDirective, FormDirective, FormErrorComponent, FormFieldBarrierDirective, FormFieldComponent, FormFieldDirective, FormWarningComponent, GERMAN_ALERT_DIALOG_LABELS, GERMAN_AVATAR_LABELS, GERMAN_BANNER_LABELS, GERMAN_BRACKET_LABELS, GERMAN_BREADCRUMB_LABELS, GERMAN_CALENDAR_LABELS, GERMAN_CAROUSEL_LABELS, GERMAN_CASCADER_LABELS, GERMAN_CHART_LABELS, GERMAN_CHIP_LABELS, GERMAN_COLOR_INPUT_LABELS, GERMAN_COMMAND_PALETTE_LABELS, GERMAN_COPY_BUTTON_LABELS, GERMAN_DATE_TIME_LABELS, GERMAN_DROPZONE_LABELS, GERMAN_FILTER_OVERLAY_LABELS, GERMAN_FORM_FIELD_LABELS, GERMAN_GRID_LABELS, GERMAN_INPUT_LABELS, GERMAN_KBD_LABELS, GERMAN_LOADER_LABELS, GERMAN_MATCH_LABELS, GERMAN_NOTIFICATION_LABELS, GERMAN_PAGINATION_LABELS, GERMAN_PHONE_INPUT_LABELS, GERMAN_PROGRESS_STEP_LABELS, GERMAN_QUERY_ERROR_LABELS, GERMAN_RICH_TEXT_EDITOR_LABELS, GERMAN_SCHEDULER_LABELS, GERMAN_SELECT_LABELS, GERMAN_SLIDER_LABELS, GERMAN_STANDINGS_LABELS, GERMAN_STAT_TILE_LABELS, GERMAN_STREAM_LABELS, GERMAN_TABLE_LABELS, GERMAN_TIME_PICKER_LABELS, GERMAN_TREE_LABELS, GERMAN_UNSAVED_CHANGES_LABELS, GRID_2X2_ICON, GRID_DEBUG_IMPORTS, GRID_ERROR_CODES, GRID_IMPORTS, GRID_LABELS, GRID_TOKEN, GridComponent, GridDebugComponent, GridDirective, GridDragDirective, GridItemComponent, GridItemDefaultActionsComponent, GridItemDirective, GridItemToolbarComponent, GridResizeDirective, HEADING_1_ICON, HEADING_2_ICON, HEADING_3_ICON, HintComponent, ICONS_TOKEN, ICON_DIRECTIVE_TOKEN, ICON_ERROR_CODES, ICON_IMPORTS, ICON_OVERRIDES_TOKEN, IMAGE_ICON, INHERIT_COLOR, INITIAL_SUPPORT_PRESENTATION_STATE, INPUT_IMPORTS, INPUT_LABELS, INPUT_MASK_HOST, INPUT_TEXT_ALIGNMENTS, INPUT_TYPES, INTERACTIVE_TAGS$1 as INTERACTIVE_TAGS, ITALIC_ICON, IconButtonComponent, IconDirective, InputComponent, InputDirective, InputMaskDirective, InputPrefixDirective, InputSuffixDirective, KBD_IMPORTS, KBD_LABELS, KBD_PLATFORM, KICK_PLAYER_TOKEN, KbdComponent, KickPlayerComponent, KickPlayerDirective, KickPlayerParamsDirective, KickPlayerSlotComponent, LINE_CHART_ERROR_CODES, LINK_ICON, LIST_BULLETED_ICON, LIST_NUMBERED_ICON, LOADER_IMPORTS, LOADER_LABELS, LOCATION_ICON, LOCK_ICON, LabelDirective, LineChartComponent, LineChartDirective, LineChartSliceDirective, MASKED_INPUT_ERROR_CODES, MASKED_INPUT_IMPORTS, MASK_VALUE_MODES, MASONRY_ERROR_CODES, MASONRY_IMPORTS, MASONRY_TOKEN, MATCH_CARD_IMPORTS, MATCH_CARD_SIZES, MATCH_CARD_TOKEN, MATCH_ERROR_CODES, MATCH_LABELS, MATCH_PARTICIPANT_IMPORTS, MENU_ERROR_CODES, MENU_IMPORTS, MENU_ITEM_VARIANTS, MENU_SEARCH_IMPORTS, MENU_SELECTION_GROUP_MULTIPLE, MENU_SELECTION_GROUP_TOKEN, MENU_SELECTION_ITEM_KIND, MINUS_ICON, MULTI_LANGUAGE_RICH_TEXT_EDITOR_ERROR_CODES, MULTI_LANGUAGE_RICH_TEXT_EDITOR_IMPORTS, MasonryDirective, MasonryItemDirective, MatchCardComponent, MatchCardDirective, MatchCardGameScoresDirective, MatchCardMetaDirective, MatchCardScoreDirective, MatchParticipantComponent, MatchScoreComponent, MenuCheckboxGroupComponent, MenuCheckboxItemComponent, MenuComponent, MenuContextTriggerDirective, MenuDirective, MenuGroupLabelComponent, MenuItemComponent, MenuItemDirective, MenuItemShortcutComponent, MenuItemSubmenuIconComponent, MenuPanelDirective, MenuRadioGroupComponent, MenuRadioItemComponent, MenuSearchDirective, MenuSelectionGroupDirective, MenuSelectionItemDirective, MenuSeparatorComponent, MenuSurfaceDirective, MenuTriggerDirective, MultiLanguageRichTextEditorComponent, MultiLanguageRichTextEditorDirective, MultiLanguageRichTextEditorLanguageToolComponent, NAV_TABS_TOKEN, NAV_TAB_IMPORTS, NOTIFICATION_ACTION_SLOTS, NOTIFICATION_ERROR_CODES, NOTIFICATION_IMPORTS, NOTIFICATION_LABELS, NOTIFICATION_STACK_CONTEXT_TOKEN, NOTIFICATION_STACK_OVERLAY_LAYER, NOTIFICATION_STATUS, NO_STREAM_PLAYER_CAPABILITIES, NUMBER_INPUT_IMPORTS, NavTabLinkComponent, NavTabLinkDirective, NavTabLinkStylesComponent, NavTabsComponent, NavTabsDirective, NavTabsOutletComponent, NavTabsOutletDirective, NotificationActionDirective, NotificationComponent, NotificationDirective, NotificationDismissDirective, NotificationItemDirective, NotificationStackDirective, NotificationSwipeToDismissDirective, NumberInputComponent, NumberInputDirective, OTP_INPUT_IMPORTS, OVERLAY_BACK_OR_CLOSE_TOKEN, OVERLAY_BODY_TOKEN, OVERLAY_CONFIG_CLASS_KEYS, OVERLAY_CONTENT_IMPORTS, OVERLAY_ERROR_CODES, OVERLAY_FOOTER_TOKEN, OVERLAY_HAS_BACKDROP, OVERLAY_HEADER_TEMPLATE_TOKEN, OVERLAY_HEADER_TOKEN, OVERLAY_IMPORTS, OVERLAY_MAIN_TOKEN, OVERLAY_NAV_TAB_IMPORTS, OVERLAY_QUERY_PARAM_INPUT_NAME, OVERLAY_REF, OVERLAY_ROUTER_CONFIG_TOKEN, OVERLAY_ROUTER_LINK_TOKEN, OVERLAY_ROUTER_OUTLET_DISABLED_TEMPLATE_TOKEN, OVERLAY_ROUTER_OUTLET_TOKEN, OVERLAY_ROUTER_TOKEN, OVERLAY_SHARED_ROUTE_TEMPLATE_TOKEN, OtpInputComponent, OtpInputDirective, OverlayAnchorDirective, OverlayBackOrCloseDirective, OverlayBodyComponent, OverlayCloseDirective, OverlayContainerComponent, OverlayDirective, OverlayFooterDirective, OverlayHeaderDirective, OverlayHeaderTemplateDirective, OverlayMainDirective, OverlayNavTabLinkComponent, OverlayOriginCloneComponent, OverlayRouteHeaderTemplateOutletComponent, OverlayRouterLinkDirective, OverlayRouterOutletComponent, OverlayRouterOutletDisabledTemplateDirective, OverlaySharedRouteTemplateDirective, OverlaySharedRouteTemplateOutletComponent, OverlaySidebarComponent, OverlaySidebarPageComponent, OverlaySurfaceDirective, OverlayTitleDirective, OverlayTriggerDirective, PAGE_SIZE_SELECT_IMPORTS, PAGINATION_IMPORTS, PAGINATION_LABELS, PAGINATION_SIZES, PARAGRAPH_ICON, PASSWORD_INPUT_IMPORTS, PAUSE_ICON, PENCIL_ICON, PHONE_COUNTRIES, PHONE_INPUT_ERROR_CODES, PHONE_INPUT_IMPORTS, PHONE_INPUT_LABELS, PICTURE_IMPORTS, PICTURE_STATES, PIE_CHART_ERROR_CODES, PIP_CHROME_REF_TOKEN, PIP_ENTRY_TOKEN, PIP_WINDOW_ASPECT_RATIO_TOKEN, PLAY_ICON, PLUS_ICON, PROGRESS_STEPS_IMPORTS, PROGRESS_STEPS_ORIENTATIONS, PROGRESS_STEP_LABELS, PROGRESS_STEP_STATES, PageSizeSelectComponent, PagedQueryTriggerDirective, PaginationComponent, PaginationDirective, PaginationSeoDirective, PasswordInputComponent, PasswordInputDirective, PhoneInputComponent, PhoneInputDirective, PhoneInputFieldDirective, PhoneInputFlagDirective, PictureComponent, PictureErrorDirective, PicturePlaceholderDirective, PieChartComponent, PieChartDirective, PipBackDirective, PipBringBackDirective, PipCellDirective, PipCloseDirective, PipCollapseOverlayDirective, PipGridToggleDirective, PipPlayerComponent, PipSlotPlaceholderComponent, PipStageDirective, PipTitleBarDirective, PipTitleBarTemplateDirective, PipWindowComponent, PipWindowParamsDirective, ProgressBarComponent, ProgressStepComponent, ProgressStepsComponent, QUERY_ERROR_ERROR_CODES, QUERY_ERROR_IMPORTS, QUERY_ERROR_LABELS, QUERY_ERROR_TOKEN, QUOTE_ICON, QueryButtonDirective, QueryErrorActionsDirective, QueryErrorComponent, QueryErrorDirective, QueryErrorTitleDirective, QueryParamOverlayLinkDirective, RADIO_GROUP_IMPORTS, RADIO_VARIANTS, RATING_ERROR_CODES, RATING_IMPORTS, REDO_ICON, RICH_TEXT_EDITOR_FLOATING_TOOLBAR, RICH_TEXT_EDITOR_HEADING_OPTIONS, RICH_TEXT_EDITOR_IMPORTS, RICH_TEXT_EDITOR_INLINE_TOOLS, RICH_TEXT_EDITOR_LABELS, RICH_TEXT_EDITOR_LANGUAGE_TOOL, RICH_TEXT_EDITOR_LINK_EDITOR, RICH_TEXT_EDITOR_TOKEN_CODEC, RICH_TEXT_EDITOR_TOKEN_PALETTE_IMPORTS, RICH_TEXT_EDITOR_TOOL, RICH_TEXT_EDITOR_TOOLS, RICH_TEXT_EDITOR_TOOL_BUTTONS, RICH_TEXT_EDITOR_TRIGGERS_IMPORTS, ROTATE_RIGHT_ICON, RadioComponent, RadioGroupComponent, RangeSliderComponent, RangeSliderDirective, RatingComponent, RatingDirective, RatingIconDirective, RichTextEditorAlignToolComponent, RichTextEditorComponent, RichTextEditorDirective, RichTextEditorFloatingToolbarComponent, RichTextEditorFloatingToolbarDirective, RichTextEditorHeadingToolComponent, RichTextEditorImageEditorComponent, RichTextEditorImageToolComponent, RichTextEditorLinkEditorComponent, RichTextEditorLinkEditorDirective, RichTextEditorTableToolComponent, RichTextEditorTokenPaletteComponent, RichTextEditorTokenPopupComponent, RichTextEditorTriggersDirective, RichTextViewerComponent, SANKEY_CHART_ERROR_CODES, SCHEDULER_EDIT_SURFACE_IMPORTS, SCHEDULER_ERROR_CODES, SCHEDULER_FEATURE_HOST, SCHEDULER_IMPORTS, SCHEDULER_LABELS, SCROLLABLE_DARKEN_IMPORTS, SCROLLABLE_DRAG_IMPORTS, SCROLLABLE_ERROR_CODES, SCROLLABLE_IMPORTS, SCROLLABLE_NAVIGATION_IMPORTS, SCROLLBAR_ERROR_CODES, SCROLLBAR_IMPORTS, SEGMENTED_BUTTON_GROUP_VARIANTS, SEGMENTED_BUTTON_IMPORTS, SELECTION_CARD_CONTROL_POSITIONS, SELECTION_LIST_ERROR_CODES, SELECTION_LIST_IMPORTS, SELECTION_LIST_MULTIPLE, SELECTION_LIST_TOKEN, SELECT_ERROR_CODES, SELECT_FILTER_MODES, SELECT_IMPORTS, SELECT_LABELS, SIDEBAR_OVERLAY_CONFIG, SIDEBAR_OVERLAY_TOKEN, SKELETON_IMPORTS, SLIDER_ERROR_CODES, SLIDER_IMPORTS, SLIDER_LABELS, SLIDER_MARK_VALUE_ATTRIBUTE, SLIDER_TOKEN, SOOP_PLAYER_TOKEN, SPLIT_BUTTON_ERROR_CODES, STANDINGS_ERROR_CODES, STANDINGS_IMPORTS, STANDINGS_LABELS, STANDINGS_PICK_IMPORTS, STAR_ICON, STAT_TILE_IMPORTS, STAT_TILE_LABELS, STREAM_ALL_IMPORTS, STREAM_CONSENT_TOKEN, STREAM_DAILYMOTION_IMPORTS, STREAM_DEFAULT_COMPONENTS, STREAM_ERROR_CODES, STREAM_FACEBOOK_IMPORTS, STREAM_IMPORTS, STREAM_KICK_IMPORTS, STREAM_LABELS, STREAM_PIP_IMPORTS, STREAM_PLAYER_COMPONENT_TOKEN, STREAM_PLAYER_ERROR_CONTEXT_TOKEN, STREAM_PLAYER_ERROR_TOKEN, STREAM_PLAYER_PARAMS_TOKEN, STREAM_PLAYER_SLOT_TOKEN, STREAM_PLAYER_TOKEN, STREAM_SLOT_PLAYER_ID_TOKEN, STREAM_SOOP_IMPORTS, STREAM_TIKTOK_IMPORTS, STREAM_TWITCH_IMPORTS, STREAM_USER_CONSENT_PROVIDER_TOKEN, STREAM_VIMEO_IMPORTS, STREAM_YOUTUBE_IMPORTS, STRIKETHROUGH_ICON, SUPPORT_CONTENT_STATE, SUPPORT_TRANSITION_DIRECTION, SWITCH_IMPORTS, SankeyChartComponent, SankeyChartDirective, SankeyChartMarkDirective, SchedulerActionAddAppointmentDirective, SchedulerAgendaDirective, SchedulerAgendaViewComponent, SchedulerAppointmentDragDirective, SchedulerBadgeChainCountComponent, SchedulerBadgeChainCountDirective, SchedulerBadgeColorDotComponent, SchedulerBadgeColorDotDirective, SchedulerBadgeLocationComponent, SchedulerBadgeLocationDirective, SchedulerBadgeTimeRangeComponent, SchedulerBadgeTimeRangeDirective, SchedulerBadgeTitleComponent, SchedulerBadgeTitleDirective, SchedulerComponent, SchedulerDirective, SchedulerEditAddSubAppointmentItemComponent, SchedulerEditColorComponent, SchedulerEditDeleteItemComponent, SchedulerEditDescriptionComponent, SchedulerEditLocationComponent, SchedulerEditSurfaceActionsComponent, SchedulerEditSurfaceBreadcrumbComponent, SchedulerEditSurfaceChildrenComponent, SchedulerEditSurfaceComponent, SchedulerEditSurfaceDirective, SchedulerEditSurfaceFieldsComponent, SchedulerEditSurfaceFooterComponent, SchedulerEditSurfaceHeaderComponent, SchedulerEditTimeRangeComponent, SchedulerEditTitleComponent, SchedulerMonthDirective, SchedulerMonthViewComponent, SchedulerSwipeNavigationDirective, SchedulerTimeGridDirective, SchedulerTimeGridViewComponent, ScrollableActiveChildDirective, ScrollableButtonsComponent, ScrollableButtonsDirective, ScrollableComponent, ScrollableDarkenDirective, ScrollableDirective, ScrollableDragDirective, ScrollableIgnoreChildDirective, ScrollableLoadingTemplateDirective, ScrollableMasksComponent, ScrollableNavigationComponent, ScrollableNavigationDirective, ScrollableSnapDirective, ScrollbarComponent, ScrollbarDirective, ScrollbarThumbDirective, SegmentedButtonComponent, SegmentedButtonGroupComponent, SelectAllOptionComponent, SelectAllOptionDirective, SelectComponent, SelectDirective, SelectEmptyDirective, SelectErrorDirective, SelectListboxDirective, SelectLoadingDirective, SelectOptionComponent, SelectOptionDirective, SelectOptionGroupComponent, SelectOptionGroupDirective, SelectOptionTemplateDirective, SelectOptionsDirective, SelectPanelComponent, SelectSearchDirective, SelectSurfaceDirective, SelectTriggerDirective, SelectValueDirective, SelectViewportDirective, SelectVirtualOptionComponent, SelectVirtualOptionDirective, SelectionListControlDirective, SelectionListDirective, SelectionOptionDirective, SkeletonComponent, SkeletonItemComponent, SkeletonTextComponent, SliderComponent, SliderDirective, SliderThumbDirective, SliderThumbLabelDirective, SliderTrackDirective, SoopPlayerComponent, SoopPlayerDirective, SoopPlayerParamsDirective, SoopPlayerSlotComponent, SpinnerComponent, SplitButtonActionDirective, SplitButtonComponent, SplitButtonDirective, SplitButtonTriggerDirective, StandingsComponent, StandingsDirective, StandingsPickComponent, StandingsPickDirective, StandingsPickMarkDirective, StatTileComponent, StatTileSparklineComponent, StreamConsentAcceptDirective, StreamConsentComponent, StreamConsentDirective, StreamPipChromeComponent, StreamPlayerErrorComponent, StreamPlayerErrorDirective, StreamPlayerLoadingComponent, StreamPlayerSlotDirective, SwitchComponent, SwitchDirective, TABLE_CELL_ERROR_TOOLTIP_IMPORTS, TABLE_COLUMN_CHOOSER_IMPORTS, TABLE_COLUMN_MENU_IMPORTS, TABLE_CSV_EXPORT_IMPORTS, TABLE_DRAG_SCROLL_IMPORTS, TABLE_ERROR_CODES, TABLE_FEATURE_HOST, TABLE_FILTER_IMPORTS, TABLE_GROUP_HEADERS_IMPORTS, TABLE_ICON, TABLE_IMPORTS, TABLE_INLINE_EDIT_IMPORTS, TABLE_KEYBOARD_NAV_IMPORTS, TABLE_LABELS, TABLE_PAGE_STICKY_HEADER_IMPORTS, TABLE_REORDER_IMPORTS, TABLE_RESIZE_IMPORTS, TABLE_ROW_EXPANSION_IMPORTS, TABLE_ROW_ROUTER_LINK_IMPORTS, TABLE_SELECTION_IMPORTS, TABLE_SKELETON_IMPORTS, TABLE_STATE_PERSISTENCE_IMPORTS, TABLE_STICKY_COLUMNS_IMPORTS, TABLE_VIRTUAL_SCROLL_IMPORTS, TAB_BAR_FITS, TAB_BAR_ORIENTATIONS, TAB_BAR_TOKEN, TAB_BAR_TRIGGER_TOKEN, TAB_BAR_VARIANTS, TAB_ERROR_CODES, TAB_GROUP_TOKEN, TAB_IMPORTS, TAB_PANEL_TOKEN, TAB_SIZES, TAG_INPUT_ERROR_CODES, TAG_INPUT_IMPORTS, TEXTAREA_IMPORTS, TEXTAREA_RESIZE_MODES, TEXT_ALIGNS, TEXT_FIELD_CONTROL_INPUTS, THUMBTACK_ICON, TIKTOK_PLAYER_TOKEN, TIMELINE_IMPORTS, TIMES_ICON, TIME_FORMAT, TIME_INPUT_ERROR_CODES, TIME_INPUT_IMPORTS, TIME_PICKER_ERROR_CODES, TIME_PICKER_IMPORTS, TIME_PICKER_LABELS, TIME_RANGE_INPUT_ERROR_CODES, TIME_RANGE_INPUT_IMPORTS, TOGGLETIP_ERROR_CODES, TOGGLETIP_IMPORTS, TOOLBAR_IMPORTS, TOOLBAR_ORIENTATIONS, TOOLTIP_ERROR_CODES, TOOLTIP_IMPORTS, TRASH_ICON, TREE_ERROR_CODES, TREE_IMPORTS, TREE_LABELS, TREE_LEVEL_STATUSES, TREE_MARKERS, TREE_SELECTION_MODES, TRIANGLE_EXCLAMATION_ICON, TROPHY_ICON, TWITCH_PLAYER_TOKEN, TabBarDirective, TabBarTriggerDirective, TabBarUnderlineDirective, TabComponent, TabGroupComponent, TabGroupDirective, TabLabelDirective, TabPanelDirective, TabTriggerDirective, TableCardSurfaceDirective, TableCellDirective, TableCellEditDirective, TableCellErrorMarkComponent, TableCellErrorTooltipDirective, TableCellSkeletonDirective, TableColumnChooserComponent, TableColumnMenuDirective, TableColumnMenuTriggerComponent, TableComponent, TableCsvExportDirective, TableDetailStylesComponent, TableDragScrollDirective, TableDragScrollStylesComponent, TableExpanderCellComponent, TableFilterOptionDirective, TableFilterTriggerComponent, TableFiltersDirective, TableFooterCellDirective, TableFooterDirective, TableGroupHeaderRowComponent, TableGroupHeadersDirective, TableHeaderCellDirective, TableInlineEditDirective, TableInlineEditStylesComponent, TableKeyboardNavDirective, TablePageStickyHeaderDirective, TablePageStickyHeaderStylesComponent, TableReorderDirective, TableReorderOverlayComponent, TableResizeDirective, TableResizeGripComponent, TableRowBoxStylesComponent, TableRowDetailComponent, TableRowExpansionDirective, TableRowRouterLinkDirective, TableSelectAllCellComponent, TableSelectCellComponent, TableSelectionDirective, TableSkeletonDirective, TableSkeletonRowsComponent, TableStatePersistenceDirective, TableStickyColumnsDirective, TableStickyColumnsStylesComponent, TableVirtualScrollDirective, TableVirtualScrollStylesComponent, TagInputComponent, TagInputDirective, TagInputFieldDirective, TextButtonComponent, TextFieldControlDirective, TextareaComponent, TextareaDirective, TikTokPlayerComponent, TikTokPlayerDirective, TikTokPlayerParamsDirective, TikTokPlayerSlotComponent, TimeInputComponent, TimeInputDirective, TimeInputFieldDirective, TimePickerComponent, TimePickerDirective, TimePickerRingDirective, TimePickerRingHandleDirective, TimeRangeInputComponent, TimeRangeInputDirective, TimeRangeInputFieldDirective, TimelineComponent, TimelineItemComponent, ToggletipCloseDirective, ToggletipComponent, ToggletipDirective, ToggletipTriggerDirective, ToolbarComponent, ToolbarDirective, TooltipComponent, TooltipDirective, TreeComponent, TreeDirective, TreeMarkerComponent, TreeNodeDefDirective, TreeNodeDirective, TwitchPlayerComponent, TwitchPlayerDirective, TwitchPlayerParamsDirective, TwitchPlayerSlotComponent, UNDERLINE_ICON, UNDO_ICON, UNSAVED_CHANGES_LABELS, UPLOAD_ICON, VIMEO_PLAYER_TOKEN, VimeoPlayerComponent, VimeoPlayerDirective, VimeoPlayerParamsDirective, VimeoPlayerSlotComponent, WCAG_CONTRAST_RATIOS, WINDOW_CONTROL_BUTTON_KINDS, WINDOW_CONTROL_BUTTON_SIZES, WindowControlButtonComponent, YOUTUBE_PLAYER_TOKEN, YoutubePlayerComponent, YoutubePlayerDirective, YoutubePlayerParamsDirective, YoutubePlayerSlotComponent, alertDialogLabelsForLocale, anchoredDialogOverlayStrategy, anchoredOverlayStrategy, avatarLabelsForLocale, bannerLabelsForLocale, bottomSheetOverlayStrategy, bracketFitsWidth, bracketLabelsForLocale, bracketNaturalWidth, breadcrumbLabelsForLocale, buildAnchoredRuntimePositionStrategy, calendarLabelsForLocale, canHaveChildren, canonicalKbdKey, carouselLabelsForLocale, cascaderFromQuery, cascaderLabelsForLocale, centeredOverlayStrategy, chartLabelsForLocale, chipLabelsForLocale, clearLeavingSupportStateOnExit, colorContrast, colorInputLabelsForLocale, commandPaletteLabelsForLocale, copyButtonLabelsForLocale, countDescendants, createAlertDialogOpener, createAnchoredPanelController, createCardMask, createCommandPaletteOpener, createCurrencyMask, createDefaultDropzoneArgs, createDropzoneUpload, createExistingDropzoneEntry, createFileDropzoneEntry, createFixedLengthRangeStrategy, createGridAdapter, createIbanMask, createNormalizedBracketMatch, createNotificationPromiseFn, createNotificationRef, createOverlayOpener, createOverlaySingleSlot, createOverlayStrategyController, createOverlayUnsavedChangesGuard, createPipChromeAnimations, createPipChromeState, createRichTextEditorTrigger, createRichTextEditorTriggerWithQuery, createSchedulerRegistry, createStreamConfig, createStreamPlayerSlot, createTableRowsSource, createTableRowsState, createTableStateStorage, createV2DropzoneUpload, createWeekRangeStrategy, dateBounds, dateRangeBounds, dateRangeOrder, dateTimeBounds, dateTimeLabelsForLocale, dateTimeRangeBounds, dateTimeRangeOrder, defaultCompareWith$1 as defaultCompareWith, defaultDropzoneRejectionMessage, defaultSankeyChartLinkKeyHint, defineOverlay, defineQueryParamOverlay, describeBracketSlot, deserializeGridLayout, deserializeTableState, detectKbdPlatform, dialogOverlayStrategy, disposeDropzoneEntry, doubleEliminationBracketLayout, dropzoneFiles, dropzoneLabelsForLocale, enableDragToDismiss, extractFirstImageUrl, filterOverlayLabelsForLocale, filterOverlayPreviewFromQuery, filterRows, filterValues, findNextRelevantHtmlElement, focusFirstInvalidField, formFieldLabelsForLocale, formatFileSize, fromGridPosition, fullScreenDialogOverlayStrategy, generateBracketDataForEthlete, generateRoundTypeFromEthleteRoundType, generateTournamentModeFromEthleteRounds, getClosestOverlay, getColorContrastRatio, getOriginCoordinatesAndDimensions, gridLabelsForLocale, hexColor, hitsInteractiveElement, iconRegistryKey, injectAlertDialogLabels, injectAnchoredDialogStrategy, injectAnchoredDialogStrategyDefaults, injectAvatarLabels, injectBannerLabels, injectBottomSheetStrategy, injectBottomSheetStrategyDefaults, injectBracketConfig, injectBracketLabels, injectBreadcrumbLabels, injectBreadcrumbManager, injectCalendarLabels, injectCarouselLabels, injectCascaderLabels, injectChartLabels, injectChipLabels, injectColorInputLabels, injectCommandPalette, injectCommandPaletteLabels, injectCommandPaletteRegistry, injectCopyButtonLabels, injectDateFormat, injectDateLocale, injectDateLocaleSignal, injectDateTimeFormat, injectDateTimeLabels, injectDateTimeZone, injectDialogStrategy, injectDialogStrategyDefaults, injectDropzoneLabels, injectFilterOverlay, injectFilterOverlayLabels, injectFormFieldDefaults, injectFormFieldLabels, injectFormSupport, injectFullscreenDialogStrategy, injectFullscreenDialogStrategyDefaults, injectGridConfig, injectGridLabels, injectInputLabels, injectKbdLabels, injectLeftSheetStrategy, injectLeftSheetStrategyDefaults, injectLoaderLabels, injectMatchLabels, injectNotificationLabels, injectNotificationManager, injectNotificationManagerConfig, injectOverlayManager, injectOverlayRouter, injectOverlayScrollBlocker, injectOverlaySurfaceContext, injectPaginationLabels, injectPhoneInputLabels, injectPictureConfig, injectPipChromeManager, injectPipManager, injectPipSlotPlaceholderConfig, injectProgressStepLabels, injectQueryErrorLabels, injectRichTextEditorLabels, injectRichTextEditorTools, injectRightSheetStrategy, injectRightSheetStrategyDefaults, injectSchedulerEditSurface, injectSchedulerEditSurfaceOpener, injectSchedulerFeatureHost, injectSchedulerLabels, injectSelectLabels, injectSidebarOverlay, injectSliderLabels, injectStandingsLabels, injectStatTileLabels, injectStreamConfig, injectStreamConsentConfig, injectStreamLabels, injectStreamManager, injectStreamPlayerErrorConfig, injectStreamPlayerLoadingConfig, injectStreamPlayerSlot, injectStreamScriptLoader, injectStreamUserConsentProvider, injectTableCsvExport, injectTableFeatureHost, injectTableLabels, injectTimeFormat, injectTimePickerLabels, injectTopSheetStrategy, injectTopSheetStrategyDefaults, injectTreeLabels, injectUnsavedChangesLabels, inputLabelsForLocale, isFileAccepted, isHtmlElement, isInteractiveElement, isPointerEvent, isRestorableTableState, isTargetInsideOverlayTree, isTouchEvent, kbdKeyLabel, kbdKeyName, kbdLabelsForLocale, lastDaysPreset, lastMonthPreset, lastWeekPreset, leftSheetOverlayStrategy, legacyQueryErrorSource, loaderLabelsForLocale, mapGridLayout, matchCountryByDialCode, matchLabelsForLocale, matchParticipantDisplayName, matchedDialPrefix, matchesKbdChord, mergeOverlayBreakpointConfigs, mergeOverlayConfigs, mergeTableCsvExportOptions, mirroredDoubleEliminationBracketLayout, mirroredSingleEliminationBracketLayout, missingStreamSourceError, mountNavTabLinkStyles, nextDaysPreset, normalizeEthleteBracketMatch, normalizeEthleteGroupRanking, normalizeEthleteMatch, normalizeEthleteMatchStatus, normalizeEthleteMedia, normalizeEthleteParticipant, normalizeEthletePlacement, normalizePictureSizes, normalizePictureSource, notificationLabelsForLocale, numberInputStepMultiplierFrom, overlayResult, paginate, paginationLabelsForLocale, parseKbdKeys, phoneCountryFlag, phoneCountryName, phoneInputLabelsForLocale, progressStepLabelsForLocale, provideAlertDialogLabels, provideAnchoredDialogStrategy, provideAnchoredDialogStrategyDefaults, provideAvatarLabels, provideBannerLabels, provideBottomSheetStrategy, provideBottomSheetStrategyDefaults, provideBracketConfig, provideBracketLabels, provideBreadcrumbLabels, provideBreadcrumbManager, provideCalendarLabels, provideCarouselLabels, provideCascaderLabels, provideChartLabels, provideChipLabels, provideColorInputLabels, provideCommandPaletteLabels, provideCommandPaletteRegistry, provideCopyButtonLabels, provideDateFormat, provideDateLocale, provideDateTimeFormat, provideDateTimeLabels, provideDateTimeZone, provideDialogStrategy, provideDialogStrategyDefaults, provideDropzoneLabels, provideFilterOverlay, provideFilterOverlayLabels, provideFormErrorMessageResolver, provideFormFieldDefaults, provideFormFieldLabels, provideFormSupport, provideFormWarningMessageResolver, provideFullscreenDialogStrategy, provideFullscreenDialogStrategyDefaults, provideGridConfig, provideGridLabels, provideIconOverrides, provideIcons, provideInputLabels, provideKbdLabels, provideLeftSheetStrategy, provideLeftSheetStrategyDefaults, provideLoaderLabels, provideMatchLabels, provideNotificationLabels, provideNotificationManager, provideNotificationManagerConfig, provideNotificationManagerInstance, provideOverlay, provideOverlayManager, provideOverlayRouter, provideOverlayRouterConfig, provideOverlayRouterService, provideOverlayScrollBlocker, providePaginationLabels, providePhoneInputLabels, providePictureConfig, providePipChromeManager, providePipManager, providePipSlotPlaceholderConfig, provideProgressStepLabels, provideQueryErrorLabels, provideRichTextEditorAlignmentTool, provideRichTextEditorAutoformat, provideRichTextEditorBlockquoteTool, provideRichTextEditorCodeBlockTool, provideRichTextEditorDefaultTools, provideRichTextEditorFloatingToolbar, provideRichTextEditorHeadingTool, provideRichTextEditorImageTool, provideRichTextEditorLabels, provideRichTextEditorLanguageTool, provideRichTextEditorLinkEditor, provideRichTextEditorLinkTool, provideRichTextEditorTableTool, provideRichTextEditorTokenRendering, provideRichTextEditorTool, provideRichTextEditorTools, provideRightSheetStrategy, provideRightSheetStrategyDefaults, provideSchedulerEditSurface, provideSchedulerLabels, provideSelectLabels, provideSidebarOverlay, provideSidebarOverlayConfig, provideSidebarOverlayService, provideSliderLabels, provideStandingsLabels, provideStatTileLabels, provideStreamConfig, provideStreamConsentConfig, provideStreamLabels, provideStreamManager, provideStreamPip, provideStreamPlayerErrorConfig, provideStreamPlayerLoadingConfig, provideTableLabels, provideTimeFormat, provideTimePickerLabels, provideTopSheetStrategy, provideTopSheetStrategyDefaults, provideTreeLabels, provideUnsavedChangesAlertDialog, provideUnsavedChangesLabels, queryButtonSourceFromV2Query, queryErrorLabelsForLocale, queryErrorResponseFromLegacyError, quickFilterRows, reconcileColumnOrder, reconcileColumnWidths, reconcileHiddenColumns, reduceSupportPresentation, registerCommands, registerSingleton, rejectionMessage, requiredLanguages, resolveBracketLayout, resolveClosestOverlay, resolveFilterOverlaySubmitButton, resolveNormalizedMatchSideState, resolveNotificationStatusIcon, resolveOverlayHasBackdrop, resolveTableCsvRows, rgbColor, richTextEditorLabelsForLocale, richTextEditorToolLabel, rightSheetOverlayStrategy, schedulerFeatureConfig, schedulerLabelsForLocale, selectLabelsForLocale, selectOptionsFromQuery, selectOptionsFromV2Query, serializeGridLayout, serializeTableState, singleEliminationBracketLayout, sliderLabelsForLocale, sortRows, standingsLabelsForLocale, startOfCalendarUnit, statTileLabelsForLocale, streamLabelsForLocale, stripTrunkZero, supportPresentationIncludesState, swissBracketLayout, tableCsvRowsFromPages, tableFeatureConfig, tableLabelsForLocale, tableRowsFromQuery, tableRowsFromV2Query, tableToCsv, thisMonthPreset, thisWeekPreset, thisYearPreset, timeBounds, timePickerLabelsForLocale, timeRangeBounds, timeRangeOrder, toFieldWarnings, toGridPosition, toNotificationContent, toPictureDimension, todayPreset, topSheetOverlayStrategy, transformingBottomSheetToDialogOverlayStrategy, transformingFullScreenDialogToDialogOverlayStrategy, transformingFullScreenDialogToRightSheetOverlayStrategy, treeLabelsForLocale, unsavedChangesLabelsForLocale, warn, wireFormSupport, withPictureBaseUrl, yesterdayPreset };
76402
77120
  //# sourceMappingURL=ethlete-components.mjs.map