@skyux/core 14.0.0-alpha.9 → 14.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { NgModule, Injectable, inject, RendererFactory2, NgZone, DOCUMENT, EventEmitter, Output, Input, Directive, effect, ElementRef, input, output, signal, DestroyRef, ChangeDetectionStrategy, Component, provideEnvironmentInitializer, EnvironmentInjector, createEnvironmentInjector, createComponent, ChangeDetectorRef, ViewContainerRef, ViewChild, InjectionToken, Optional, Inject, ApplicationRef, afterNextRender, Injector, Pipe, HostBinding, Renderer2, HostListener } from '@angular/core';
2
+ import { NgModule, Injectable, inject, RendererFactory2, NgZone, DOCUMENT, EventEmitter, Output, Input, Directive, effect, untracked, input, booleanAttribute, output, ElementRef, DestroyRef, signal, computed, ChangeDetectionStrategy, Component, provideEnvironmentInitializer, EnvironmentInjector, createEnvironmentInjector, createComponent, ChangeDetectorRef, ViewContainerRef, ViewChild, InjectionToken, Optional, Inject, ApplicationRef, afterNextRender, Injector, Pipe, HostBinding, Renderer2, HostListener } from '@angular/core';
3
3
  import { Subject, Subscription, ReplaySubject, fromEvent, of, Observable, filter, map, distinctUntilChanged, shareReplay, observeOn, animationFrameScheduler, takeUntil as takeUntil$1, BehaviorSubject, combineLatestWith, switchMap, concat, debounceTime as debounceTime$1 } from 'rxjs';
4
4
  import { takeUntil, debounceTime, take } from 'rxjs/operators';
5
5
  import { ViewportRuler } from '@angular/cdk/overlay';
@@ -1043,26 +1043,49 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
1043
1043
  }] });
1044
1044
 
1045
1045
  /**
1046
- * @internal
1046
+ * Watches the host element for disabled CSS animations. When the trigger
1047
+ * signal changes and the element's `animation-name` is `'none'` or its
1048
+ * `animation-duration` resolves to `0` or less, the emitter fires via a
1049
+ * microtask.
1047
1050
  */
1048
- const SKY_ANIMATIONS_DISABLED_CLASS_NAME = 'sky-animations-disabled';
1049
-
1051
+ function watchForDisabledCssAnimations(args) {
1052
+ emitWhenMotionDisabled(args, (style) => {
1053
+ return (allValuesEqual(style.animationName, 'none') ||
1054
+ allDurationsNonPositive(style.animationDuration));
1055
+ });
1056
+ }
1050
1057
  /**
1051
- * @internal
1058
+ * Watches the host element for disabled CSS transitions. When the trigger
1059
+ * signal changes and the tracked property's transition is disabled
1060
+ * (e.g. `transition-property: none` or its paired duration resolves to
1061
+ * `0` or less), the emitter fires via a microtask.
1052
1062
  */
1053
- function _skyAnimationsDisabled() {
1054
- return inject(DOCUMENT).body.classList.contains(SKY_ANIMATIONS_DISABLED_CLASS_NAME);
1063
+ function watchForDisabledCssTransitions(args) {
1064
+ const { propertyToTrack, ...watchArgs } = args;
1065
+ emitWhenMotionDisabled(watchArgs, (style) => {
1066
+ if (allValuesEqual(style.transitionProperty, 'none')) {
1067
+ return true;
1068
+ }
1069
+ const trackedProperty = propertyToTrack();
1070
+ if (!trackedProperty) {
1071
+ return allDurationsNonPositive(style.transitionDuration);
1072
+ }
1073
+ return isTransitionDisabledForProperty({
1074
+ trackedProperty,
1075
+ transitionDuration: style.transitionDuration,
1076
+ transitionProperty: style.transitionProperty,
1077
+ });
1078
+ });
1055
1079
  }
1056
-
1057
1080
  /**
1058
- * Mimics a CSS motion end event (`animationend`/`transitionend`) when
1059
- * CSS motion is disabled.
1060
- *
1061
- * Registers an effect that watches the provided trigger signal and, after the
1062
- * first change, emits on a microtask when the host element is visible. This
1063
- * preserves async timing that callers expect from real motion end events.
1081
+ * Creates an effect that watches a trigger signal and emits via a microtask
1082
+ * when the host element's CSS motion is disabled. By default, skips the
1083
+ * initial effect run to match native CSS behavior. When `emitOnAnimateEnter`
1084
+ * is `true`, the first run is not skipped, allowing emission for elements
1085
+ * that use `animate.enter` (where DOM insertion is the animation event).
1064
1086
  */
1065
- function mimicCssMotionEvent(elementRef, destroyRef, triggerSignal, output) {
1087
+ function emitWhenMotionDisabled(args, isMotionDisabled) {
1088
+ const { destroyRef, elementRef, emitOnAnimateEnter, emitter, trigger } = args;
1066
1089
  const el = elementRef.nativeElement;
1067
1090
  let destroyed = false;
1068
1091
  let initialized = false;
@@ -1070,28 +1093,127 @@ function mimicCssMotionEvent(elementRef, destroyRef, triggerSignal, output) {
1070
1093
  destroyed = true;
1071
1094
  });
1072
1095
  effect(() => {
1073
- triggerSignal();
1074
- // CSS animation/transition events do not fire when the element is `display: none`.
1075
- if (initialized && getComputedStyle(el).display !== 'none') {
1096
+ trigger();
1097
+ // On the first run, check if emitOnAnimateEnter opts out of skipping.
1098
+ if (!initialized && emitOnAnimateEnter) {
1099
+ initialized = untracked(() => emitOnAnimateEnter());
1100
+ }
1101
+ const style = getComputedStyle(el);
1102
+ const isRendered = style.display !== 'none';
1103
+ // By default, skip the first effect run (and unrendered elements) to match
1104
+ // native CSS behavior. When emitOnAnimateEnter is true, the first run is
1105
+ // treated as initialized, allowing emission for enter animations.
1106
+ if (initialized && isRendered && untracked(() => isMotionDisabled(style))) {
1076
1107
  // Defer the emit to a microtask so it fires after the current
1077
1108
  // change detection pass, matching real transition timing.
1078
1109
  queueMicrotask(() => {
1079
1110
  if (!destroyed) {
1080
- output.emit();
1111
+ emitter.emit();
1081
1112
  }
1082
1113
  });
1083
1114
  }
1084
1115
  initialized = true;
1085
1116
  });
1086
1117
  }
1118
+ /**
1119
+ * Returns `true` if every entry in a comma-separated list equals `target`.
1120
+ */
1121
+ function allValuesEqual(csv, target) {
1122
+ return csv.split(',').every((v) => v.trim() === target);
1123
+ }
1124
+ /**
1125
+ * Returns `true` if every entry in a comma-separated CSS duration list resolves to `0` or less.
1126
+ */
1127
+ function allDurationsNonPositive(value) {
1128
+ return value.split(',').every((d) => parseFloat(d.trim()) <= 0);
1129
+ }
1130
+ /**
1131
+ * Returns `true` if the tracked property's paired duration is `0` or less,
1132
+ * or if the property isn't listed. Per the CSS spec, durations cycle over
1133
+ * the property list.
1134
+ */
1135
+ function isTransitionDisabledForProperty(args) {
1136
+ const { trackedProperty, transitionDuration, transitionProperty } = args;
1137
+ const properties = transitionProperty.split(',').map((p) => p.trim());
1138
+ const durations = transitionDuration.split(',').map((d) => d.trim());
1139
+ let index = properties.indexOf(trackedProperty);
1140
+ // If the tracked property is not explicitly listed, fall back to an `all`
1141
+ // entry if present. Per CSS, `transition-property: all` applies to every
1142
+ // property and uses its paired duration.
1143
+ if (index === -1) {
1144
+ const allIndex = properties.findIndex((p) => p.toLowerCase() === 'all');
1145
+ if (allIndex === -1) {
1146
+ return true;
1147
+ }
1148
+ index = allIndex;
1149
+ }
1150
+ const duration = durations[index % durations.length];
1151
+ return parseFloat(duration) <= 0;
1152
+ }
1153
+
1154
+ /**
1155
+ * @internal
1156
+ *
1157
+ * Listens for CSS `animationend` events on the host element and emits
1158
+ * an `animationEnd` output when an animation completes. When the
1159
+ * element's CSS animation is disabled (e.g. `animation-name: none`
1160
+ * or `animation-duration: 0s`), the output emits via a microtask
1161
+ * whenever the `animationTrigger` input changes.
1162
+ */
1163
+ class _SkyAnimationEndHandlerDirective {
1164
+ constructor() {
1165
+ /**
1166
+ * When `true` and the host element uses `animate.enter`, the
1167
+ * disabled-animation fallback emits `animationEnd` on the initial
1168
+ * render. Use this when the element's insertion into the DOM is
1169
+ * the animation event.
1170
+ */
1171
+ this.emitOnAnimateEnter = input(false, { ...(ngDevMode ? { debugName: "emitOnAnimateEnter" } : {}), transform: booleanAttribute });
1172
+ /**
1173
+ * Drives animation lifecycle tracking on the host element. When the
1174
+ * value changes and the CSS animation is disabled, `animationEnd`
1175
+ * emits via a microtask.
1176
+ */
1177
+ this.animationTrigger = input.required(...(ngDevMode ? [{ debugName: "animationTrigger" }] : []));
1178
+ /**
1179
+ * Emits when an `animationend` event fires on the host element, or via a
1180
+ * microtask when the CSS animation is disabled.
1181
+ */
1182
+ this.animationEnd = output();
1183
+ watchForDisabledCssAnimations({
1184
+ destroyRef: inject(DestroyRef),
1185
+ elementRef: inject(ElementRef),
1186
+ emitOnAnimateEnter: this.emitOnAnimateEnter,
1187
+ emitter: this.animationEnd,
1188
+ trigger: this.animationTrigger,
1189
+ });
1190
+ }
1191
+ onAnimationEnd(evt) {
1192
+ this.animationEnd.emit();
1193
+ evt.stopPropagation();
1194
+ }
1195
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: _SkyAnimationEndHandlerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1196
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.0", type: _SkyAnimationEndHandlerDirective, isStandalone: true, selector: "[skyAnimationEndHandler]", inputs: { emitOnAnimateEnter: { classPropertyName: "emitOnAnimateEnter", publicName: "emitOnAnimateEnter", isSignal: true, isRequired: false, transformFunction: null }, animationTrigger: { classPropertyName: "animationTrigger", publicName: "animationTrigger", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { animationEnd: "animationEnd" }, host: { listeners: { "animationend": "onAnimationEnd($event)" } }, ngImport: i0 }); }
1197
+ }
1198
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: _SkyAnimationEndHandlerDirective, decorators: [{
1199
+ type: Directive,
1200
+ args: [{
1201
+ selector: '[skyAnimationEndHandler]',
1202
+ host: {
1203
+ '(animationend)': 'onAnimationEnd($event)',
1204
+ },
1205
+ }]
1206
+ }], ctorParameters: () => [], propDecorators: { emitOnAnimateEnter: [{ type: i0.Input, args: [{ isSignal: true, alias: "emitOnAnimateEnter", required: false }] }], animationTrigger: [{ type: i0.Input, args: [{ isSignal: true, alias: "animationTrigger", required: true }] }], animationEnd: [{ type: i0.Output, args: ["animationEnd"] }] } });
1087
1207
 
1088
1208
  /**
1089
1209
  * @internal
1090
1210
  *
1091
1211
  * Listens for CSS `transitionend` events on the host element and emits
1092
1212
  * a `transitionEnd` output when the tracked CSS property finishes
1093
- * transitioning. When animations are globally disabled, the output
1094
- * emits via a microtask whenever the `transitionTrigger` input changes.
1213
+ * transitioning. When the element's CSS transition is disabled
1214
+ * (e.g. `transition-property: none` or `transition-duration: 0s`), the
1215
+ * output emits via a microtask whenever the `transitionTrigger` input
1216
+ * changes.
1095
1217
  *
1096
1218
  * The CSS property to monitor can be set via the `transitionPropertyToTrack`
1097
1219
  * input (for template usage) or by calling `setPropertyToTrack()`
@@ -1100,13 +1222,14 @@ function mimicCssMotionEvent(elementRef, destroyRef, triggerSignal, output) {
1100
1222
  class _SkyTransitionEndHandlerDirective {
1101
1223
  #elementRef;
1102
1224
  #propertyNameOverride;
1225
+ #propertyToTrack;
1103
1226
  constructor() {
1104
1227
  this.#elementRef = inject((ElementRef));
1105
1228
  /**
1106
1229
  * Drives the CSS transition on the host element. When the value
1107
- * changes and animations are enabled, a CSS transition runs and
1108
- * `transitionEnd` emits on completion. When animations are
1109
- * disabled, `transitionEnd` emits via a microtask instead.
1230
+ * changes and a CSS transition runs, `transitionEnd` emits on
1231
+ * completion. When the transition is disabled, `transitionEnd`
1232
+ * emits via a microtask instead.
1110
1233
  */
1111
1234
  this.transitionTrigger = input.required(...(ngDevMode ? [{ debugName: "transitionTrigger" }] : []));
1112
1235
  /**
@@ -1117,13 +1240,19 @@ class _SkyTransitionEndHandlerDirective {
1117
1240
  this.transitionPropertyToTrack = input(...(ngDevMode ? [undefined, { debugName: "transitionPropertyToTrack" }] : []));
1118
1241
  /**
1119
1242
  * Emits when the tracked CSS property's `transitionend` event fires
1120
- * on the host element, or via a microtask when animations are disabled.
1243
+ * on the host element, or via a microtask when the CSS transition is
1244
+ * disabled.
1121
1245
  */
1122
1246
  this.transitionEnd = output();
1123
1247
  this.#propertyNameOverride = signal(undefined, ...(ngDevMode ? [{ debugName: "#propertyNameOverride" }] : []));
1124
- if (_skyAnimationsDisabled()) {
1125
- mimicCssMotionEvent(this.#elementRef, inject(DestroyRef), this.transitionTrigger, this.transitionEnd);
1126
- }
1248
+ this.#propertyToTrack = computed(() => this.transitionPropertyToTrack() ?? this.#propertyNameOverride(), ...(ngDevMode ? [{ debugName: "#propertyToTrack" }] : []));
1249
+ watchForDisabledCssTransitions({
1250
+ destroyRef: inject(DestroyRef),
1251
+ elementRef: this.#elementRef,
1252
+ emitter: this.transitionEnd,
1253
+ propertyToTrack: this.#propertyToTrack,
1254
+ trigger: this.transitionTrigger,
1255
+ });
1127
1256
  }
1128
1257
  /**
1129
1258
  * Sets the CSS property name to monitor for `transitionend` events
@@ -1137,7 +1266,7 @@ class _SkyTransitionEndHandlerDirective {
1137
1266
  if (evt.target !== this.#elementRef.nativeElement) {
1138
1267
  return;
1139
1268
  }
1140
- const propertyName = this.transitionPropertyToTrack() ?? this.#propertyNameOverride();
1269
+ const propertyName = this.#propertyToTrack();
1141
1270
  if (!propertyName) {
1142
1271
  throw new Error(`SkyTransitionEndHandler: No CSS property specified for transition tracking on element ` +
1143
1272
  `'<${this.#elementRef.nativeElement.tagName.toLowerCase()}>'. ` +
@@ -1173,7 +1302,7 @@ class _SkyAnimationSlideComponent {
1173
1302
  inject(_SkyTransitionEndHandlerDirective).setPropertyToTrack('visibility');
1174
1303
  }
1175
1304
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: _SkyAnimationSlideComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1176
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.0", type: _SkyAnimationSlideComponent, isStandalone: true, selector: "sky-animation-slide", inputs: { opened: { classPropertyName: "opened", publicName: "opened", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "class.sky-animation-slide-in": "!opened()", "class.sky-animation-slide-out": "opened()" } }, hostDirectives: [{ directive: _SkyTransitionEndHandlerDirective, inputs: ["transitionTrigger", "opened"], outputs: ["transitionEnd", "transitionEnd"] }], ngImport: i0, template: '<div class="sky-animation-slide-content"><ng-content /></div>', isInline: true, styles: [":host{display:grid;grid-template-rows:0fr;overflow:hidden;transition-property:grid-template-rows,visibility;transition-duration:var(--sky-transition-time-short);transition-timing-function:ease-in}:host.sky-animation-slide-in{grid-template-rows:0fr;visibility:hidden}:host.sky-animation-slide-out{grid-template-rows:1fr;visibility:visible}:host>.sky-animation-slide-content{min-height:0;overflow:hidden}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1305
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.0", type: _SkyAnimationSlideComponent, isStandalone: true, selector: "sky-animation-slide", inputs: { opened: { classPropertyName: "opened", publicName: "opened", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "class.sky-animation-slide-in": "!opened()", "class.sky-animation-slide-out": "opened()" } }, hostDirectives: [{ directive: _SkyTransitionEndHandlerDirective, inputs: ["transitionTrigger", "opened"], outputs: ["transitionEnd", "transitionEnd"] }], ngImport: i0, template: '<div class="sky-animation-slide-content"><ng-content /></div>', isInline: true, styles: [":host{display:grid;grid-template-rows:0fr;overflow:hidden;transition-property:grid-template-rows,visibility;transition-duration:var(--sky-global-duration-short);transition-timing-function:ease-in}:host.sky-animation-slide-in{grid-template-rows:0fr;visibility:hidden}:host.sky-animation-slide-out{grid-template-rows:1fr;visibility:visible}:host>.sky-animation-slide-content{min-height:0;overflow:hidden}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1177
1306
  }
1178
1307
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: _SkyAnimationSlideComponent, decorators: [{
1179
1308
  type: Component,
@@ -1186,9 +1315,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
1186
1315
  inputs: ['transitionTrigger: opened'],
1187
1316
  outputs: ['transitionEnd'],
1188
1317
  },
1189
- ], selector: 'sky-animation-slide', template: '<div class="sky-animation-slide-content"><ng-content /></div>', styles: [":host{display:grid;grid-template-rows:0fr;overflow:hidden;transition-property:grid-template-rows,visibility;transition-duration:var(--sky-transition-time-short);transition-timing-function:ease-in}:host.sky-animation-slide-in{grid-template-rows:0fr;visibility:hidden}:host.sky-animation-slide-out{grid-template-rows:1fr;visibility:visible}:host>.sky-animation-slide-content{min-height:0;overflow:hidden}\n"] }]
1318
+ ], selector: 'sky-animation-slide', template: '<div class="sky-animation-slide-content"><ng-content /></div>', styles: [":host{display:grid;grid-template-rows:0fr;overflow:hidden;transition-property:grid-template-rows,visibility;transition-duration:var(--sky-global-duration-short);transition-timing-function:ease-in}:host.sky-animation-slide-in{grid-template-rows:0fr;visibility:hidden}:host.sky-animation-slide-out{grid-template-rows:1fr;visibility:visible}:host>.sky-animation-slide-content{min-height:0;overflow:hidden}\n"] }]
1190
1319
  }], ctorParameters: () => [], propDecorators: { opened: [{ type: i0.Input, args: [{ isSignal: true, alias: "opened", required: true }] }] } });
1191
1320
 
1321
+ /**
1322
+ * @internal
1323
+ */
1324
+ const SKY_ANIMATIONS_DISABLED_CLASS_NAME = 'sky-animations-disabled';
1325
+
1192
1326
  /**
1193
1327
  * Disables CSS transitions and animations for SKY UX components.
1194
1328
  *
@@ -4904,11 +5038,11 @@ class Version {
4904
5038
  /**
4905
5039
  * Represents the version of @skyux/core.
4906
5040
  */
4907
- const VERSION = new Version('14.0.0-alpha.9');
5041
+ const VERSION = new Version('14.0.0-beta.1');
4908
5042
 
4909
5043
  /**
4910
5044
  * Generated bundle index. Do not edit.
4911
5045
  */
4912
5046
 
4913
- export { NumericOptions, SKY_BREAKPOINTS, SKY_BREAKPOINT_OBSERVER, SKY_HELP_GLOBAL_OPTIONS, SKY_LOG_LEVEL, SKY_STACKING_CONTEXT, SkyAffixAutoFitContext, SkyAffixModule, SkyAffixService, SkyAffixer, SkyAppFormat, SkyAppTitleService, SkyAppWindowRef, SkyContainerBreakpointObserver, SkyContentInfoProvider, SkyCoreAdapterModule, SkyCoreAdapterService, SkyDefaultInputProvider, SkyDockItem, SkyDockLocation, SkyDockModule, SkyDockService, SkyDynamicComponentLegacyService, SkyDynamicComponentLocation, SkyDynamicComponentModule, SkyDynamicComponentService, SkyFileReaderService, SkyHelpService, SkyIdModule, SkyIdService, SkyLayoutHostDirective, SkyLayoutHostService, SkyLiveAnnouncerService, SkyLogLevel, SkyLogModule, SkyLogService, SkyMediaBreakpointObserver, SkyMediaBreakpoints, SkyMediaQueryModule, SkyMediaQueryService, SkyMutationObserverService, SkyNumericModule, SkyNumericPipe, SkyNumericService, SkyOverlayInstance, SkyOverlayLegacyService, SkyOverlayModule, SkyOverlayService, SkyPercentPipe, SkyPercentPipeModule, SkyResizeObserverMediaQueryService, SkyResizeObserverService, SkyResponsiveHostDirective, SkyScreenReaderLabelDirective, SkyScrollShadowDirective, SkyScrollableHostService, SkyTrimModule, SkyUIConfigService, SkyViewkeeper, SkyViewkeeperHostOptions, SkyViewkeeperModule, SkyViewkeeperService, VERSION, _SkyAnimationSlideComponent, _SkyTransitionEndHandlerDirective, provideNoopSkyAnimations, provideSkyBreakpointObserver, SkyAffixDirective as λ1, SkyIdDirective as λ2, SkyViewkeeperDirective as λ3, SkyTrimDirective as λ4 };
5047
+ export { NumericOptions, SKY_BREAKPOINTS, SKY_BREAKPOINT_OBSERVER, SKY_HELP_GLOBAL_OPTIONS, SKY_LOG_LEVEL, SKY_STACKING_CONTEXT, SkyAffixAutoFitContext, SkyAffixModule, SkyAffixService, SkyAffixer, SkyAppFormat, SkyAppTitleService, SkyAppWindowRef, SkyContainerBreakpointObserver, SkyContentInfoProvider, SkyCoreAdapterModule, SkyCoreAdapterService, SkyDefaultInputProvider, SkyDockItem, SkyDockLocation, SkyDockModule, SkyDockService, SkyDynamicComponentLegacyService, SkyDynamicComponentLocation, SkyDynamicComponentModule, SkyDynamicComponentService, SkyFileReaderService, SkyHelpService, SkyIdModule, SkyIdService, SkyLayoutHostDirective, SkyLayoutHostService, SkyLiveAnnouncerService, SkyLogLevel, SkyLogModule, SkyLogService, SkyMediaBreakpointObserver, SkyMediaBreakpoints, SkyMediaQueryModule, SkyMediaQueryService, SkyMutationObserverService, SkyNumericModule, SkyNumericPipe, SkyNumericService, SkyOverlayInstance, SkyOverlayLegacyService, SkyOverlayModule, SkyOverlayService, SkyPercentPipe, SkyPercentPipeModule, SkyResizeObserverMediaQueryService, SkyResizeObserverService, SkyResponsiveHostDirective, SkyScreenReaderLabelDirective, SkyScrollShadowDirective, SkyScrollableHostService, SkyTrimModule, SkyUIConfigService, SkyViewkeeper, SkyViewkeeperHostOptions, SkyViewkeeperModule, SkyViewkeeperService, VERSION, _SkyAnimationEndHandlerDirective, _SkyAnimationSlideComponent, _SkyTransitionEndHandlerDirective, provideNoopSkyAnimations, provideSkyBreakpointObserver, SkyAffixDirective as λ1, SkyIdDirective as λ2, SkyViewkeeperDirective as λ3, SkyTrimDirective as λ4 };
4914
5048
  //# sourceMappingURL=skyux-core.mjs.map