@vectoriox/iox-builder 7.0.2 → 8.1.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/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
- import { ComponentRef, Type, ChangeDetectorRef, OnInit, AfterViewInit, OnChanges, OnDestroy, EventEmitter, ElementRef, ApplicationRef, SimpleChanges, ViewContainerRef, Injector, EnvironmentInjector, InjectionToken, TemplateRef, AfterContentInit, QueryList } from '@angular/core';
2
+ import { ComponentRef, Type, InjectionToken, ChangeDetectorRef, OnInit, AfterViewInit, OnChanges, OnDestroy, EventEmitter, ElementRef, ApplicationRef, SimpleChanges, ViewContainerRef, Injector, EnvironmentInjector, TemplateRef, AfterContentInit, QueryList } from '@angular/core';
3
3
  import * as i30 from '@vectoriox/iox-ui';
4
- import { ResponsiveOverrides, RelativeSourceSpec, Breakpoint, PageStyleSettings, FormRenderState, DesignTokenLike, DesignMode, ComponentInstanceRegistryService, DataSourceEndpoints, PalettePreset, syncNodeDesignClasses } from '@vectoriox/iox-ui';
4
+ import { ResponsiveOverrides, RelativeSourceSpec, Breakpoint, PageStyleSettings, FormRenderState, AdoptContext, DesignTokenLike, DesignMode, ComponentInstanceRegistryService, DataSourceEndpoints, PalettePreset, syncNodeDesignClasses } from '@vectoriox/iox-ui';
5
5
  export { ComponentInstanceRegistryService, IoxContextSlot, PageStyleSettings, SetContextParams, VIRTUAL_TRAIT_KEYS, composeVirtualTraits } from '@vectoriox/iox-ui';
6
6
  import * as rxjs from 'rxjs';
7
7
  import { Subject, Subscription, BehaviorSubject, Observable } from 'rxjs';
@@ -906,6 +906,11 @@ declare class ComponentRegistryService {
906
906
  createBaseConfig(type: string): any | null;
907
907
  /** The unstyled base style map of a NEW node of the type — `switchElementStyle`'s baseline. */
908
908
  baselineStyleProps(type: string): Record<string, unknown>;
909
+ /** What an untouched SAVED node of the type holds — its constructor defaults, nothing on top.
910
+ * Adopt (DS7) rewrites an owned trait only while it still holds this. */
911
+ adoptionBaseline(type: string): Record<string, unknown>;
912
+ /** The context `adoptElementStyles` (design-core) reads baselines from. */
913
+ adoptionContext(): AdoptContext;
909
914
  register(type: string, component: Type<any>, config: any): void;
910
915
  getAll(): {
911
916
  type: string;
@@ -916,6 +921,79 @@ declare class ComponentRegistryService {
916
921
  static ɵprov: i0.ɵɵInjectableDeclaration<ComponentRegistryService>;
917
922
  }
918
923
 
924
+ /**
925
+ * Canvas data preview used to come from host-provided content services (IOX_CONTENT_SERVICE /
926
+ * IOX_SHOP_SERVICE), whose `getContent(contentType, orgId)` hit the ADMIN resources endpoint and
927
+ * accepted no filters — so the Repeater/Slider ignored every data-source filter. Data now flows
928
+ * through BuilderDataSourceService + the shared planDataSource, configured with
929
+ * IOX_DATA_SOURCE_ENDPOINTS. Those tokens are gone; do not reintroduce a fetch that bypasses it.
930
+ */
931
+ /**
932
+ * True for nodes rendered on the EDITING canvas — provided by `BuilderComponent` at component level,
933
+ * so it reaches every `[ioxRender]` under `<app-builder>` and nothing else (Preview renders the same
934
+ * directive outside it). It answers "is this the editor?" — the canvas-only "Add image" label hangs off
935
+ * it. `IS_PREVIEW` answers the other question, "is this a preview/live render?" (links navigate,
936
+ * sliders run live), and is provided ONLY by Preview (component level) and the engine; neither token
937
+ * implies the other — a design sampler, for one, is neither.
938
+ */
939
+ declare const IOX_BUILDER_CANVAS: InjectionToken<boolean>;
940
+ /**
941
+ * Translates the builder library's OWN chrome.
942
+ *
943
+ * The library cannot depend on ngx-translate — that is the host app's choice — but its toolbar was
944
+ * hardcoded English, which shows through as untranslated controls in a Hebrew/RTL admin. This token
945
+ * lets the host route those strings through its own i18n while the library keeps working standalone:
946
+ * unprovided, `defaultBuilderLabels` returns the English text, so nothing ever renders a raw key.
947
+ *
948
+ * Keys are namespaced `builder.chrome.*` and listed in `BUILDER_CHROME_EN` below — that object is
949
+ * the contract. A host providing this token should add those keys to its own bundles.
950
+ */
951
+ declare const IOX_BUILDER_LABELS: InjectionToken<BuilderLabelResolver>;
952
+ type BuilderLabelResolver = (key: string, fallback: string) => string;
953
+ /** Standalone behaviour: the English text the library ships with. */
954
+ declare const defaultBuilderLabels: BuilderLabelResolver;
955
+ /**
956
+ * Every user-visible string in the builder's own chrome, so a host can copy this into its bundles
957
+ * in one go rather than discovering keys one missing label at a time.
958
+ */
959
+ declare const BUILDER_CHROME_EN: Readonly<Record<string, string>>;
960
+ declare const CANVAS_EMPTY_IMAGE_LABEL_KEY = "builder.chrome.addImage";
961
+ declare const CANVAS_EMPTY_IMAGE_LABEL_EN: string;
962
+ /**
963
+ * Marks an element the builder draws on the canvas that the live site never has — drop placeholders,
964
+ * repeat badges, the empty slider hint. A page thumbnail is a picture of the SITE, so its capture
965
+ * leaves every marked element out.
966
+ */
967
+ declare const EDITOR_CHROME_ATTRIBUTE = "data-iox-chrome";
968
+
969
+ /**
970
+ * What may NOT be placed where — the ONE rule every insert path asks (drag, click-to-insert, quick-add,
971
+ * the Form presets, paste, duplicate). Everything not refused here is accepted: any container-capable
972
+ * node takes any child, a Form included.
973
+ */
974
+ declare enum InsertRefusal {
975
+ /** A form inside a form — fields belong to their NEAREST form (forms plan D1), and HTML forbids it. */
976
+ NestedForm = "nestedForm",
977
+ /** A Success / Error block is part of its form's state machine; it is never placed on its own. */
978
+ StateBlockAlone = "stateBlockAlone"
979
+ }
980
+ declare const FORM_STATE_BLOCK_TYPES: ReadonlySet<string>;
981
+ /** The builder-chrome label that says each refusal on screen (English in `BUILDER_CHROME_EN`). */
982
+ declare const INSERT_REFUSAL_LABEL_KEYS: Readonly<Record<InsertRefusal, string>>;
983
+ /** The refusal in the host's language (the library's English when no host resolver is provided). */
984
+ declare function insertRefusalLabel(reason: InsertRefusal, labels?: BuilderLabelResolver): string;
985
+ interface TypedNode {
986
+ type?: string;
987
+ children?: TypedNode[] | null;
988
+ }
989
+ /**
990
+ * Why `node` may not be inserted under `ancestors` (outermost first, the new parent last; empty = the page),
991
+ * or null when it may. `node` is the whole subtree being placed — a Container holding a Form is refused
992
+ * inside a Form just as a bare Form is. Reordering a node inside its CURRENT parent is not an insert and
993
+ * never asks.
994
+ */
995
+ declare function insertRefusal(node: TypedNode | null | undefined, ancestors: readonly TypedNode[]): InsertRefusal | null;
996
+
919
997
  /**
920
998
  * SymbolRegistryService — in-memory store for org-level symbols.
921
999
  *
@@ -955,11 +1033,33 @@ interface IoxDropEvent {
955
1033
  targetId: string;
956
1034
  insertIndex: number;
957
1035
  }
1036
+ /** An insert the builder refused — `message` is the on-screen sentence, in the host's language. */
1037
+ interface InsertRefusedEvent {
1038
+ reason: InsertRefusal;
1039
+ message: string;
1040
+ }
1041
+ /** The node a drop target names: canvas-root ancestors outermost first, the dropzone's own node last. */
1042
+ type AncestorNode = Pick<ComponentNode, 'type' | 'children'>;
1043
+ /** On the drop-target overlay while the target refuses the dragged payload (styled by the host). */
1044
+ declare const DROP_REFUSED_CLASS = "iox-drop-target-overlay--refused";
958
1045
  declare class DragEngineService {
959
1046
  private registry;
960
1047
  private symbolRegistry;
961
1048
  private overlayService;
962
- constructor(registry: ComponentRegistryService, symbolRegistry: SymbolRegistryService, overlayService: OverlayService);
1049
+ private readonly labels;
1050
+ constructor(registry: ComponentRegistryService, symbolRegistry: SymbolRegistryService, overlayService: OverlayService, labels?: BuilderLabelResolver | null);
1051
+ /** Every insert the builder refused, for the host to say on screen (a toast). */
1052
+ readonly insertRefused$: Subject<InsertRefusedEvent>;
1053
+ /**
1054
+ * The ONE acceptance check for every insert path: null when `data` (a panel payload or a node) may go
1055
+ * under `ancestors`; otherwise the refusal, already announced on `insertRefused$`.
1056
+ */
1057
+ refuseInsert(data: unknown, ancestors: readonly AncestorNode[]): InsertRefusal | null;
1058
+ /** The node a payload WOULD insert, without building it: a type string, a block/symbol, or a node. */
1059
+ private payloadNode;
1060
+ /** The nodes a dropzone sits in, outermost first, its own node last — read from the DOM, which is
1061
+ * where a dropzone id lives. Empty for the page itself. */
1062
+ dropzoneAncestors(id: string): AncestorNode[];
963
1063
  handleDrop(children: ComponentNode[], event: IoxDropEvent, dropListId: string, cdr: ChangeDetectorRef, afterDrop?: () => void): void;
964
1064
  /**
965
1065
  * Turn a components-panel payload into a fresh ComponentNode: a built-in type string via the
@@ -976,7 +1076,7 @@ declare class DragEngineService {
976
1076
  * `dropComplete$` exactly like a drop, so the builder selects the new node and records one undo
977
1077
  * step through the same path. Returns the inserted node, or null if the payload was unusable.
978
1078
  */
979
- insertPayload(children: ComponentNode[], index: number, data: unknown): ComponentNode | null;
1079
+ insertPayload(children: ComponentNode[], index: number, data: unknown, ancestors?: readonly AncestorNode[]): ComponentNode | null;
980
1080
  /** True when `children` is a registered drop zone's array — i.e. a real container that can hold
981
1081
  * children. Click-to-insert uses the same test a drag does, so it can't insert where a drop
982
1082
  * couldn't. */
@@ -1027,8 +1127,11 @@ declare class DragEngineService {
1027
1127
  setScale(scale: number): void;
1028
1128
  private _dropzoneRectCache;
1029
1129
  private _snapshotRects;
1030
- private readonly ROOT_ESCAPE_PX;
1031
1130
  private _rootEscapeActiveFor;
1131
+ /** The root container whose inner region held the previous sample. */
1132
+ private _innerRootId;
1133
+ /** Why the current target would refuse the dragged payload; null = it accepts. */
1134
+ private _targetRefusal;
1032
1135
  private _getEl;
1033
1136
  registerDropzone(id: string, el: HTMLElement, data: any[], cdr: ChangeDetectorRef, dropCb: (e: IoxDropEvent) => void, postDrop?: () => void): void;
1034
1137
  unregisterDropzone(id: string, el: HTMLElement): void;
@@ -1055,6 +1158,17 @@ declare class DragEngineService {
1055
1158
  private _ghostFollowStep;
1056
1159
  private _stopGhostFollow;
1057
1160
  private _updateDeepTarget;
1161
+ /** Near a ROOT container's edge, after moving there from its inner region, the drop goes to the page. */
1162
+ private _applyRootEscape;
1163
+ /** The ROOT-level dropzone (a direct child zone of the page) that holds dropzone `id`, or null when it
1164
+ * is not on the page canvas (the global-elements layer). */
1165
+ private _rootContainerOf;
1166
+ /** Why the dragged payload may not land in `targetId` (null = it may). Reordering inside the source
1167
+ * container is not an insert. */
1168
+ private _refusalAt;
1169
+ /** The node a dropzone element belongs to — the element itself or the nearest registered ancestor
1170
+ * (a LinkedContainer, a Dialog, a Repeater or a slide registers an INNER element as its zone). */
1171
+ private _ownerNode;
1058
1172
  /** Call on every canvas scroll tick to keep the fixed-position drop-target
1059
1173
  * overlay aligned with the container element that moved in the viewport. */
1060
1174
  refreshDragOverlays(): void;
@@ -1062,18 +1176,11 @@ declare class DragEngineService {
1062
1176
  private _removeTargetOverlay;
1063
1177
  /** Name the drop target and the slot: "into Card grid · position 2 of 4". */
1064
1178
  private _updateTargetChip;
1065
- private _isRootContainer;
1066
- /**
1067
- * Returns true if the dropzone with `childId` is a DOM descendant of the
1068
- * dropzone with `parentId`. Used to decide whether the cursor was already
1069
- * "inside" a root section before triggering root-escape.
1070
- */
1071
- private _isDescendantDropzone;
1072
1179
  private _updateIndicator;
1073
1180
  private _positionIndicator;
1074
1181
  private _removeIndicator;
1075
1182
  calcInsertIndex(containerId: string): number;
1076
- static ɵfac: i0.ɵɵFactoryDeclaration<DragEngineService, never>;
1183
+ static ɵfac: i0.ɵɵFactoryDeclaration<DragEngineService, [null, null, null, { optional: true; }]>;
1077
1184
  static ɵprov: i0.ɵɵInjectableDeclaration<DragEngineService>;
1078
1185
  }
1079
1186
 
@@ -2072,6 +2179,8 @@ declare class BuilderComponent implements OnInit, AfterViewInit, OnChanges, OnDe
2072
2179
  clientHeight: number;
2073
2180
  scrollPercentage?: number;
2074
2181
  }): void;
2182
+ /** The nodes a sibling of `node` sits under — `node`'s ancestors, outermost first (empty at a root). */
2183
+ private siblingAncestors;
2075
2184
  private findNodeInTree;
2076
2185
  /** Immediate parent of `target` within `children`, or null at a root. Derives from the
2077
2186
  * shared `nodeAncestorPath` walk in `utils/node-path.util.ts` — one tree recursion to
@@ -2381,51 +2490,6 @@ declare class OverlayComponent implements OnInit, OnDestroy {
2381
2490
  static ɵcmp: i0.ɵɵComponentDeclaration<OverlayComponent, "app-overlay", never, {}, { "toolbarAction": "toolbarAction"; }, never, never, false, never>;
2382
2491
  }
2383
2492
 
2384
- /**
2385
- * Canvas data preview used to come from host-provided content services (IOX_CONTENT_SERVICE /
2386
- * IOX_SHOP_SERVICE), whose `getContent(contentType, orgId)` hit the ADMIN resources endpoint and
2387
- * accepted no filters — so the Repeater/Slider ignored every data-source filter. Data now flows
2388
- * through BuilderDataSourceService + the shared planDataSource, configured with
2389
- * IOX_DATA_SOURCE_ENDPOINTS. Those tokens are gone; do not reintroduce a fetch that bypasses it.
2390
- */
2391
- /**
2392
- * True for nodes rendered on the EDITING canvas — provided by `BuilderComponent` at component level,
2393
- * so it reaches every `[ioxRender]` under `<app-builder>` and nothing else (Preview renders the same
2394
- * directive outside it). It answers "is this the editor?" — the canvas-only "Add image" label hangs off
2395
- * it. `IS_PREVIEW` answers the other question, "is this a preview/live render?" (links navigate,
2396
- * sliders run live), and is provided ONLY by Preview (component level) and the engine; neither token
2397
- * implies the other — a design sampler, for one, is neither.
2398
- */
2399
- declare const IOX_BUILDER_CANVAS: InjectionToken<boolean>;
2400
- /**
2401
- * Translates the builder library's OWN chrome.
2402
- *
2403
- * The library cannot depend on ngx-translate — that is the host app's choice — but its toolbar was
2404
- * hardcoded English, which shows through as untranslated controls in a Hebrew/RTL admin. This token
2405
- * lets the host route those strings through its own i18n while the library keeps working standalone:
2406
- * unprovided, `defaultBuilderLabels` returns the English text, so nothing ever renders a raw key.
2407
- *
2408
- * Keys are namespaced `builder.chrome.*` and listed in `BUILDER_CHROME_EN` below — that object is
2409
- * the contract. A host providing this token should add those keys to its own bundles.
2410
- */
2411
- declare const IOX_BUILDER_LABELS: InjectionToken<BuilderLabelResolver>;
2412
- type BuilderLabelResolver = (key: string, fallback: string) => string;
2413
- /** Standalone behaviour: the English text the library ships with. */
2414
- declare const defaultBuilderLabels: BuilderLabelResolver;
2415
- /**
2416
- * Every user-visible string in the builder's own chrome, so a host can copy this into its bundles
2417
- * in one go rather than discovering keys one missing label at a time.
2418
- */
2419
- declare const BUILDER_CHROME_EN: Readonly<Record<string, string>>;
2420
- declare const CANVAS_EMPTY_IMAGE_LABEL_KEY = "builder.chrome.addImage";
2421
- declare const CANVAS_EMPTY_IMAGE_LABEL_EN: string;
2422
- /**
2423
- * Marks an element the builder draws on the canvas that the live site never has — drop placeholders,
2424
- * repeat badges, the empty slider hint. A page thumbnail is a picture of the SITE, so its capture
2425
- * leaves every marked element out.
2426
- */
2427
- declare const EDITOR_CHROME_ATTRIBUTE = "data-iox-chrome";
2428
-
2429
2493
  declare class ToolbarComponent {
2430
2494
  private readonly labels;
2431
2495
  activeMode: BuilderMode;
@@ -2947,6 +3011,7 @@ interface TreeNode {
2947
3011
  declare class LayerTreeComponent implements OnInit, OnDestroy {
2948
3012
  private registry;
2949
3013
  private overlayService;
3014
+ private dragEngine;
2950
3015
  layout: ComponentNode[];
2951
3016
  globalElements: ComponentNode[];
2952
3017
  nodeSelect: EventEmitter<ComponentNode>;
@@ -2968,7 +3033,7 @@ declare class LayerTreeComponent implements OnInit, OnDestroy {
2968
3033
  /** Last-seen structural signature — used by ngDoCheck to skip no-op rebuilds. */
2969
3034
  private _layoutSig;
2970
3035
  private _globalSig;
2971
- constructor(registry: ComponentRegistryService, overlayService: OverlayService);
3036
+ constructor(registry: ComponentRegistryService, overlayService: OverlayService, dragEngine: DragEngineService);
2972
3037
  ngOnInit(): void;
2973
3038
  ngOnDestroy(): void;
2974
3039
  ngDoCheck(): void;
@@ -3118,14 +3183,31 @@ declare function findNodeLocation(roots: ComponentNode[], target: ComponentNode)
3118
3183
  */
3119
3184
  declare function wrapNode(roots: ComponentNode[], target: ComponentNode, wrapper: ComponentNode): ComponentNode | null;
3120
3185
 
3186
+ /**
3187
+ * State OUTSIDE the layout that one step changed together with it — e.g. adopting a page's element
3188
+ * styles (DS7) also sets the page's design-system flag and links its global elements. Opaque here;
3189
+ * the host owns its shape and restores it.
3190
+ */
3191
+ interface HistoryChange<S = unknown> {
3192
+ before: S;
3193
+ after: S;
3194
+ }
3121
3195
  interface HistoryEntry {
3122
3196
  layout: ComponentNode[];
3123
3197
  timestamp: number;
3198
+ change?: HistoryChange;
3199
+ }
3200
+ /** What undo / redo hand back: the layout to show, and — when the step carried a change — the
3201
+ * state to restore (`before` on undo, `after` on redo). */
3202
+ interface HistoryStep<S = unknown> {
3203
+ layout: ComponentNode[];
3204
+ restore?: S;
3124
3205
  }
3125
3206
  /**
3126
3207
  * BuilderHistoryService — snapshot-based undo/redo for the page builder.
3127
3208
  *
3128
- * Snapshots are JSON deep-clones of the full layout array.
3209
+ * Snapshots are JSON deep-clones of the full layout array; a step that also changed state outside
3210
+ * the layout records that change, so one undo reverts both.
3129
3211
  * Session-only — not persisted to the backend.
3130
3212
  * Scoped to PageUiComponent.providers[] — one history stack per builder instance.
3131
3213
  */
@@ -3134,10 +3216,11 @@ declare class BuilderHistoryService {
3134
3216
  private _future;
3135
3217
  get canUndo(): boolean;
3136
3218
  get canRedo(): boolean;
3137
- push(layout: ComponentNode[]): void;
3138
- undo(): ComponentNode[] | null;
3139
- redo(): ComponentNode[] | null;
3219
+ push(layout: ComponentNode[], change?: HistoryChange): void;
3220
+ undo(): HistoryStep | null;
3221
+ redo(): HistoryStep | null;
3140
3222
  clear(): void;
3223
+ private step;
3141
3224
  static ɵfac: i0.ɵɵFactoryDeclaration<BuilderHistoryService, never>;
3142
3225
  static ɵprov: i0.ɵɵInjectableDeclaration<BuilderHistoryService>;
3143
3226
  }
@@ -3375,6 +3458,43 @@ declare const FORM_TYPE = "Form";
3375
3458
  */
3376
3459
  declare function nearestFormNode(path: readonly ComponentNode[] | null | undefined): ComponentNode | null;
3377
3460
 
3461
+ /**
3462
+ * ROOT ESCAPE — near the top or bottom edge of a ROOT-level container the drop goes to the PAGE, between
3463
+ * root containers, instead of inside the container. This file is the decision; DragEngineService only
3464
+ * measures and applies it.
3465
+ *
3466
+ * ⚠️ The bug this replaced (2026-10-19, "a Form cannot be inserted into a Section / Container / Linked
3467
+ * Container"): escape switched on when the pointer was in the edge band and the PREVIOUS target was the
3468
+ * same container — which is also true on the second sample after ENTERING through the band — and it only
3469
+ * switched off once the pointer LEFT the container. So approaching a root container from above or below
3470
+ * locked every drop inside it to the page, even at its centre; an empty (short) container was almost
3471
+ * always entered that way. Now escape needs a move OUTWARD — from the container's inner region to its
3472
+ * edge — and it ends as soon as the pointer is back in the inner region.
3473
+ */
3474
+ /** The edge band on a tall container, in screen px. */
3475
+ declare const ROOT_ESCAPE_PX = 14;
3476
+ declare enum RootZone {
3477
+ Outside = "outside",
3478
+ Edge = "edge",
3479
+ Inner = "inner"
3480
+ }
3481
+ /** The band shrinks on a short container (a quarter of its height), so its middle stays a drop target. */
3482
+ declare function rootEscapeBand(height: number): number;
3483
+ /** Where the pointer's y sits relative to a root container's vertical extent. */
3484
+ declare function rootZone(py: number, top: number, bottom: number): RootZone;
3485
+ interface RootEscapeMemory {
3486
+ /** The root container a drop is currently escaping, if any. */
3487
+ escapingFor: string | null;
3488
+ /** The root container whose INNER region held the previous sample, if any. */
3489
+ innerOf: string | null;
3490
+ }
3491
+ /**
3492
+ * Whether this sample escapes `rootId` to the page: the pointer is on its edge band AND it either was
3493
+ * already escaping it or has just moved out to the edge from its inner region. Entering from outside
3494
+ * through the band never escapes.
3495
+ */
3496
+ declare function escapesRoot(rootId: string, zone: RootZone, memory: RootEscapeMemory): boolean;
3497
+
3378
3498
  /**
3379
3499
  * The text on the drop indicator's chip — "into Card grid · position 2 of 3" (B2).
3380
3500
  *
@@ -3553,5 +3673,5 @@ declare class TextBlockComponentConfig extends ComponentConfig {
3553
3673
  constructor();
3554
3674
  }
3555
3675
 
3556
- export { ACTION_TYPE_OPTIONS, AuditCode, AuditPanelComponent, AuditSeverity, BODY_CRUMB_LABEL, BREAKPOINT_PRESENTATION, BUILDER_CANVAS_CONTAINER, BUILDER_CHROME_EN, BUILDER_FONT_LINK_ATTR, BUILDER_TOKEN_SCOPE_CLASS, BackgroundGroupStyleConfig, BorderGroupStyleConfig, BreadcrumbBarComponent, BuilderButtonBlockComponent, BuilderButtonComponentConfig, BuilderClipboardService, BuilderComponent, BuilderContainerComponent, BuilderContainerComponentConfig, BuilderDataSourceService, BuilderDialogComponent, BuilderDividerComponentConfig, BuilderHeadingComponentConfig, BuilderHistoryService, BuilderIconComponentConfig, BuilderImageComponentConfig, BuilderLinkComponentConfig, BuilderLinkedContainerComponent, BuilderLinkedContainerConfig, BuilderListComponentConfig, BuilderListItemComponentConfig, BuilderMode, BuilderRepeaterComponent, BuilderSpacerComponentConfig, ButtonBlockComponentConfig, CANVAS_EMPTY_IMAGE_LABEL_EN, CANVAS_EMPTY_IMAGE_LABEL_KEY, CANVAS_ROOT_RESET_CSS, CardComponentConfig, ChildLayoutGroupStyleConfig, ComponentConfig, ComponentRegistryService, DEFAULT_ESSENTIAL_TRAITS, DRAG_HANDLE_ATTR, DataSourceRegistryService, DataSourceType, DialogComponentConfig, DimensionsGroupStyleConfig, DragEngineService, EASING_OPTIONS, EDITOR_CHROME_ATTRIBUTE, ESSENTIAL_TRAITS_BY_TYPE, EffectsGroupStyleConfig, FIELD_KIND_PRESETS, FIELD_PARTS, FORM_PRESETS, FORM_TYPE, FieldComponentConfig, FieldGroupComponentConfig, FormComponentConfig, FormErrorComponentConfig, FormStateService, FormSuccessComponentConfig, GalleryConfig, GroupStyleConfig, INTERACTION_STATES, INVERSE_ACTION, IOX_BUILDER_CANVAS, IOX_BUILDER_LABELS, IOX_DATA_SOURCE_ENDPOINTS, InteractionEngineService, InteractionPresetRegistryService, IoxBuilderModule, IoxDraggableDirective, IoxDropzoneDirective, LAYOUT_PRESETS, LayerTreeComponent, LayoutGroupStyleConfig, ListGroupStyleConfig, NodeAction, OverlayComponent, OverlayService, PALETTE_PRESET_DEFS, PanelChildComponent, PanelComponent, PanelEventService, PanelEventTypes, PanelTypes, PositionGroupStyleConfig, PresetRegistryService, RELATIONAL_STATES, RELATIONAL_STATE_BASE, ROUTE_ANIMATION_OPTIONS, RenderDirective, RepeaterComponentConfig, SCREEN_WIDTH_OPTIONS, STRUCTURAL_STATES, SUPPORTED_STATES, SectionComponent, SectionComponentConfig, SizeGroupStyleConfig, SliderContainerComponent, SliderContainerConfig, SliderSlideComponent, SliderSlideConfig, SpacingGroupStyleConfig, StyleCategory, StyleRegistryService, TraitConfig as StyleTraitConfig, SubmitButtonComponentConfig, SymbolRegistryService, TARGETED_STATES, TARGETED_STATE_BASE, TRIGGER_OPTIONS, TextBlockComponentConfig, ToolbarAction, ToolbarComponent, TraitConfig, TraitInputType, TypographyGroupStyleConfig, UNITS_ALL, UNITS_DEG, UNITS_FIXED, UNITS_NO_VW, VALIDATION_STATES, VALIDATION_STATE_CLASS, ViewportService, ZOOM_OPTIONS, arrayItemSchemaFields, arraySchemaFields, auditNodes, buildConsentPreset, buildElementStyleSpecimen, buildFieldKindPreset, buildFlavorSpecimen, buildFormPreset, buildFullStyleTraits, buildLayoutPreset, buildPalettePreset, buildPresetStyleTraits, canFluidise, canvasEmptyImageLabel, collapseColumnsProps, columnCountOf, defaultBuilderLabels, defaultPageSettings, dropTargetLabel, essentialTraitsFor, findNodeLocation, findParentOf, flattenSchemaFields, fluidiseProps, generateNodeId, isHiddenAt, isSpecimen, markSpecimen, matchesControlSearch, nearestFormNode, nodeAncestorPath, nodeAncestorPathInEither, reorderProps, resolveInsertTarget, resolveTraitControllerType, resolveTraitOptions, setStyleTrait, setTrait, stackChildrenProps, summarise, syncEmptyImagePlaceholder, syncNodeDesign, textNode, visibilityProps, wrapNode };
3557
- export type { AuditFinding, AuditNode, BreakpointPresentation, BuilderClipboard, BuilderLabelResolver, ComponentEventDef, ComponentMethodDef, ComponentNode, ComponentTrait, ConsentPreset, CreateConfig, Crumb, DesignSpecimenCopy, DragPayload, DsFilterByQueryParam, DsFilterByRouteParam, ElementState, FieldKindDef, FormPresetDef, FormPresetField, FormStateSnapshot, HistoryEntry, InsertTarget, InteractionAction, InteractionActionType, InteractionPreset, InteractionTrigger, IoxBinding, IoxDataSource, IoxDropEvent, IoxInteraction, IoxSymbol, LayoutPresetChildStyles, LayoutPresetDef, NodeRef, OverlayBoxModel, OverlayBoxSpacing, OverlayEntry, PageRouteAnimationSettings, PageScrollSettings, PageSettings, PalettePresetDef, PanelEvent, QuadSizeSegment, RouteAnimationPreset, ScreenWidthOption, SelectionBadge, StyleMap, StylePart, StylePreset, StyleTrait, StyleTraitGroup, TraitOptionMap, TraitSelectOption, TraitShowCondition, TreePathNode, UpsertTokensOptions, ViewportState, ZoomOption };
3676
+ export { ACTION_TYPE_OPTIONS, AuditCode, AuditPanelComponent, AuditSeverity, BODY_CRUMB_LABEL, BREAKPOINT_PRESENTATION, BUILDER_CANVAS_CONTAINER, BUILDER_CHROME_EN, BUILDER_FONT_LINK_ATTR, BUILDER_TOKEN_SCOPE_CLASS, BackgroundGroupStyleConfig, BorderGroupStyleConfig, BreadcrumbBarComponent, BuilderButtonBlockComponent, BuilderButtonComponentConfig, BuilderClipboardService, BuilderComponent, BuilderContainerComponent, BuilderContainerComponentConfig, BuilderDataSourceService, BuilderDialogComponent, BuilderDividerComponentConfig, BuilderHeadingComponentConfig, BuilderHistoryService, BuilderIconComponentConfig, BuilderImageComponentConfig, BuilderLinkComponentConfig, BuilderLinkedContainerComponent, BuilderLinkedContainerConfig, BuilderListComponentConfig, BuilderListItemComponentConfig, BuilderMode, BuilderRepeaterComponent, BuilderSpacerComponentConfig, ButtonBlockComponentConfig, CANVAS_EMPTY_IMAGE_LABEL_EN, CANVAS_EMPTY_IMAGE_LABEL_KEY, CANVAS_ROOT_RESET_CSS, CardComponentConfig, ChildLayoutGroupStyleConfig, ComponentConfig, ComponentRegistryService, DEFAULT_ESSENTIAL_TRAITS, DRAG_HANDLE_ATTR, DROP_REFUSED_CLASS, DataSourceRegistryService, DataSourceType, DialogComponentConfig, DimensionsGroupStyleConfig, DragEngineService, EASING_OPTIONS, EDITOR_CHROME_ATTRIBUTE, ESSENTIAL_TRAITS_BY_TYPE, EffectsGroupStyleConfig, FIELD_KIND_PRESETS, FIELD_PARTS, FORM_PRESETS, FORM_STATE_BLOCK_TYPES, FORM_TYPE, FieldComponentConfig, FieldGroupComponentConfig, FormComponentConfig, FormErrorComponentConfig, FormStateService, FormSuccessComponentConfig, GalleryConfig, GroupStyleConfig, INSERT_REFUSAL_LABEL_KEYS, INTERACTION_STATES, INVERSE_ACTION, IOX_BUILDER_CANVAS, IOX_BUILDER_LABELS, IOX_DATA_SOURCE_ENDPOINTS, InsertRefusal, InteractionEngineService, InteractionPresetRegistryService, IoxBuilderModule, IoxDraggableDirective, IoxDropzoneDirective, LAYOUT_PRESETS, LayerTreeComponent, LayoutGroupStyleConfig, ListGroupStyleConfig, NodeAction, OverlayComponent, OverlayService, PALETTE_PRESET_DEFS, PanelChildComponent, PanelComponent, PanelEventService, PanelEventTypes, PanelTypes, PositionGroupStyleConfig, PresetRegistryService, RELATIONAL_STATES, RELATIONAL_STATE_BASE, ROOT_ESCAPE_PX, ROUTE_ANIMATION_OPTIONS, RenderDirective, RepeaterComponentConfig, RootZone, SCREEN_WIDTH_OPTIONS, STRUCTURAL_STATES, SUPPORTED_STATES, SectionComponent, SectionComponentConfig, SizeGroupStyleConfig, SliderContainerComponent, SliderContainerConfig, SliderSlideComponent, SliderSlideConfig, SpacingGroupStyleConfig, StyleCategory, StyleRegistryService, TraitConfig as StyleTraitConfig, SubmitButtonComponentConfig, SymbolRegistryService, TARGETED_STATES, TARGETED_STATE_BASE, TRIGGER_OPTIONS, TextBlockComponentConfig, ToolbarAction, ToolbarComponent, TraitConfig, TraitInputType, TypographyGroupStyleConfig, UNITS_ALL, UNITS_DEG, UNITS_FIXED, UNITS_NO_VW, VALIDATION_STATES, VALIDATION_STATE_CLASS, ViewportService, ZOOM_OPTIONS, arrayItemSchemaFields, arraySchemaFields, auditNodes, buildConsentPreset, buildElementStyleSpecimen, buildFieldKindPreset, buildFlavorSpecimen, buildFormPreset, buildFullStyleTraits, buildLayoutPreset, buildPalettePreset, buildPresetStyleTraits, canFluidise, canvasEmptyImageLabel, collapseColumnsProps, columnCountOf, defaultBuilderLabels, defaultPageSettings, dropTargetLabel, escapesRoot, essentialTraitsFor, findNodeLocation, findParentOf, flattenSchemaFields, fluidiseProps, generateNodeId, insertRefusal, insertRefusalLabel, isHiddenAt, isSpecimen, markSpecimen, matchesControlSearch, nearestFormNode, nodeAncestorPath, nodeAncestorPathInEither, reorderProps, resolveInsertTarget, resolveTraitControllerType, resolveTraitOptions, rootEscapeBand, rootZone, setStyleTrait, setTrait, stackChildrenProps, summarise, syncEmptyImagePlaceholder, syncNodeDesign, textNode, visibilityProps, wrapNode };
3677
+ export type { AuditFinding, AuditNode, BreakpointPresentation, BuilderClipboard, BuilderLabelResolver, ComponentEventDef, ComponentMethodDef, ComponentNode, ComponentTrait, ConsentPreset, CreateConfig, Crumb, DesignSpecimenCopy, DragPayload, DsFilterByQueryParam, DsFilterByRouteParam, ElementState, FieldKindDef, FormPresetDef, FormPresetField, FormStateSnapshot, HistoryChange, HistoryEntry, HistoryStep, InsertRefusedEvent, InsertTarget, InteractionAction, InteractionActionType, InteractionPreset, InteractionTrigger, IoxBinding, IoxDataSource, IoxDropEvent, IoxInteraction, IoxSymbol, LayoutPresetChildStyles, LayoutPresetDef, NodeRef, OverlayBoxModel, OverlayBoxSpacing, OverlayEntry, PageRouteAnimationSettings, PageScrollSettings, PageSettings, PalettePresetDef, PanelEvent, QuadSizeSegment, RootEscapeMemory, RouteAnimationPreset, ScreenWidthOption, SelectionBadge, StyleMap, StylePart, StylePreset, StyleTrait, StyleTraitGroup, TraitOptionMap, TraitSelectOption, TraitShowCondition, TreePathNode, UpsertTokensOptions, ViewportState, ZoomOption };
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@vectoriox/iox-builder",
3
- "version": "7.0.2",
3
+ "version": "8.1.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=20.0.0",
6
6
  "@angular/core": ">=20.0.0",
7
7
  "@angular/animations": ">=20.0.0",
8
8
  "@angular/cdk": ">=20.0.0",
9
- "@vectoriox/iox-ui": ">=5.21.0",
9
+ "@vectoriox/iox-ui": ">=5.22.0",
10
10
  "interactjs": "^1.10.27",
11
11
  "primeng": ">=20.0.0",
12
12
  "swiper": ">=12.0.0",