@vectoriox/iox-ui 4.5.2 → 4.7.0

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vectoriox/iox-ui",
3
- "version": "4.5.2",
3
+ "version": "4.7.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=20.0.0",
6
6
  "@angular/core": ">=20.0.0",
@@ -827,9 +827,19 @@ declare function dataSourcePlanToRequest(plan: DataSourcePlan, endpoints: DataSo
827
827
  */
828
828
  /** Perspective (px) applied to the transition container unless a preset overrides it. */
829
829
  declare const DEFAULT_PAGE_TRANSITION_PERSPECTIVE = 1200;
830
- /** Default transition duration (ms) when the page does not specify one. */
831
- declare const DEFAULT_PAGE_TRANSITION_DURATION = 600;
832
- type PageTransitionCategory = 'move' | 'fade' | 'scale' | 'rotate';
830
+ /**
831
+ * Default transition duration (ms). Deliberately long — a slow, settled transition is most of what
832
+ * makes a page change read as "premium"; the same motion at ~400ms feels like a snap.
833
+ */
834
+ declare const DEFAULT_PAGE_TRANSITION_DURATION = 1500;
835
+ /**
836
+ * Default easing: a strong symmetric in-out. Paired with the long duration this is the "smoothness"
837
+ * — slow to leave, quick through the middle, gentle to settle.
838
+ */
839
+ declare const DEFAULT_PAGE_TRANSITION_EASING = "cubic-bezier(0.76, 0, 0.24, 1)";
840
+ /** Default preset used when a page has no transition configured at all. */
841
+ declare const DEFAULT_PAGE_TRANSITION = "parallax-up";
842
+ type PageTransitionCategory = 'parallax' | 'reveal' | 'curtain' | 'move' | 'fade' | 'scale' | 'rotate';
833
843
  interface PageTransitionPreset {
834
844
  category: PageTransitionCategory;
835
845
  label: string;
@@ -849,8 +859,36 @@ interface PageTransitionPreset {
849
859
  outDelayRatio?: number;
850
860
  /** Delay before the IN animation starts, as a fraction (0..1) of the duration. */
851
861
  inDelayRatio?: number;
862
+ /**
863
+ * Optional full-screen overlay panel (curtain / wipe). When present the transition plays as
864
+ * COVER → swap → UNCOVER instead of the two page layers animating against each other: the panel
865
+ * sweeps in to hide the screen, the outgoing page is dropped behind it, then the panel sweeps
866
+ * out to reveal the incoming page. Each half gets HALF the total duration.
867
+ *
868
+ * Trade-off: the swap is hidden, so you lose the "both pages visible at once" depth of the
869
+ * parallax family — this is drama rather than spatial continuity.
870
+ */
871
+ overlay?: {
872
+ coverKeyframes: Keyframe[];
873
+ uncoverKeyframes: Keyframe[];
874
+ };
852
875
  }
853
876
  declare const PAGE_TRANSITION_PRESETS: Record<string, PageTransitionPreset>;
877
+ interface TransitionFeel {
878
+ value: string;
879
+ label: string;
880
+ duration: number;
881
+ easing: string;
882
+ description: string;
883
+ }
884
+ declare const TRANSITION_FEELS: TransitionFeel[];
885
+ /** The feel matching this duration+easing exactly, else 'custom'. Drives the panel's selector. */
886
+ declare function feelFor(duration: number | string | undefined, easing: string | undefined): string;
887
+ /** The duration+easing patch for a feel id (undefined for 'custom' / unknown). */
888
+ declare function applyFeel(feel: string): {
889
+ duration: number;
890
+ easing: string;
891
+ } | undefined;
854
892
  interface PageTransitionCategoryMeta {
855
893
  value: PageTransitionCategory;
856
894
  label: string;
@@ -877,6 +915,13 @@ interface ResolvedPageTransition {
877
915
  perspective: number;
878
916
  outTransformOrigin?: string;
879
917
  inTransformOrigin?: string;
918
+ /** Present only for curtain presets — each half runs for HALF the total duration. */
919
+ overlay?: {
920
+ coverFrames: Keyframe[];
921
+ uncoverFrames: Keyframe[];
922
+ coverOptions: KeyframeAnimationOptions;
923
+ uncoverOptions: KeyframeAnimationOptions;
924
+ };
880
925
  }
881
926
  /**
882
927
  * Resolve a persisted preset id + timing into the two WAAPI animations the consumer runs.
@@ -914,5 +959,5 @@ declare function effectiveTransitionId(anim: {
914
959
  enter?: string | null;
915
960
  } | null | undefined): string;
916
961
 
917
- export { AOSService, AnalyticsService, BuilderButtonComponent, BuilderDividerComponent, BuilderHeadingComponent, BuilderIconComponent, BuilderImageComponent, BuilderLinkComponent, BuilderSpacerComponent, ButtonBlockComponent, CMSClientInfraModule, CardComponent, ClientListComponent, ClientListItemComponent, ClientRepeaterComponent, ClientSliderContainerComponent, ClientSliderSlideComponent, ComponentInstanceRegistryService, ConsentService, ContainerComponent, ContentService, DEFAULT_PAGE_TRANSITION_DURATION, DEFAULT_PAGE_TRANSITION_PERSPECTIVE, DEFAULT_WIDTH_BY_TYPE, ENVIRONMENT, IOX_BUILDER_EVENTS, IS_PREVIEW, IoxAnimateContainer, IoxAosDirective, IoxAosModule, IoxBuilderComponentsModule, IoxComponentRegistryService, IoxPageComponent, IoxPageModule, IoxUiModule, LinkedContainerComponent, PAGE_TRANSITION_CATEGORIES, PAGE_TRANSITION_PRESETS, PageScrollProvider, PrivacyModalComponent, PrivacyModalService, PrivacyModelEvent, SectionComponent, TextBlockComponent, VIRTUAL_TRAIT_KEYS, ViewPositionDirective, ViewPositionModule, WebSettingsService, buildDataSourceFilter, buildTransitionTimeline, compileDeclarations, composeVirtualTraits, dataSourcePlanToRequest, effectiveTransitionId, legacyEnterToTransition, matchRouteParams, normalizeCollectionResult, planDataSource, renderDefaultDeclarations, resolvePageTransition, resolveSingleItemId, rewriteViewportUnits, styleKeyToKebab };
918
- export type { DataSourceDomain, DataSourceEndpoints, DataSourceMode, DataSourcePlan, DataSourceQueryFilter, DataSourceRequest, DataSourceRequestSpec, DataSourceRouteFilter, DataSourceSpec, IBuilderEventEmitter, PageTransitionCategory, PageTransitionCategoryMeta, PageTransitionOptions, PageTransitionPreset, ResolvedPageTransition, TransitionPhase, TransitionTimelineInput };
962
+ export { AOSService, AnalyticsService, BuilderButtonComponent, BuilderDividerComponent, BuilderHeadingComponent, BuilderIconComponent, BuilderImageComponent, BuilderLinkComponent, BuilderSpacerComponent, ButtonBlockComponent, CMSClientInfraModule, CardComponent, ClientListComponent, ClientListItemComponent, ClientRepeaterComponent, ClientSliderContainerComponent, ClientSliderSlideComponent, ComponentInstanceRegistryService, ConsentService, ContainerComponent, ContentService, DEFAULT_PAGE_TRANSITION, DEFAULT_PAGE_TRANSITION_DURATION, DEFAULT_PAGE_TRANSITION_EASING, DEFAULT_PAGE_TRANSITION_PERSPECTIVE, DEFAULT_WIDTH_BY_TYPE, ENVIRONMENT, IOX_BUILDER_EVENTS, IS_PREVIEW, IoxAnimateContainer, IoxAosDirective, IoxAosModule, IoxBuilderComponentsModule, IoxComponentRegistryService, IoxPageComponent, IoxPageModule, IoxUiModule, LinkedContainerComponent, PAGE_TRANSITION_CATEGORIES, PAGE_TRANSITION_PRESETS, PageScrollProvider, PrivacyModalComponent, PrivacyModalService, PrivacyModelEvent, SectionComponent, TRANSITION_FEELS, TextBlockComponent, VIRTUAL_TRAIT_KEYS, ViewPositionDirective, ViewPositionModule, WebSettingsService, applyFeel, buildDataSourceFilter, buildTransitionTimeline, compileDeclarations, composeVirtualTraits, dataSourcePlanToRequest, effectiveTransitionId, feelFor, legacyEnterToTransition, matchRouteParams, normalizeCollectionResult, planDataSource, renderDefaultDeclarations, resolvePageTransition, resolveSingleItemId, rewriteViewportUnits, styleKeyToKebab };
963
+ export type { DataSourceDomain, DataSourceEndpoints, DataSourceMode, DataSourcePlan, DataSourceQueryFilter, DataSourceRequest, DataSourceRequestSpec, DataSourceRouteFilter, DataSourceSpec, IBuilderEventEmitter, PageTransitionCategory, PageTransitionCategoryMeta, PageTransitionOptions, PageTransitionPreset, ResolvedPageTransition, TransitionFeel, TransitionPhase, TransitionTimelineInput };