@vectoriox/iox-builder 8.0.0 → 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,5 +1,5 @@
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
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';
@@ -921,6 +921,79 @@ declare class ComponentRegistryService {
921
921
  static ɵprov: i0.ɵɵInjectableDeclaration<ComponentRegistryService>;
922
922
  }
923
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
+
924
997
  /**
925
998
  * SymbolRegistryService — in-memory store for org-level symbols.
926
999
  *
@@ -960,11 +1033,33 @@ interface IoxDropEvent {
960
1033
  targetId: string;
961
1034
  insertIndex: number;
962
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";
963
1045
  declare class DragEngineService {
964
1046
  private registry;
965
1047
  private symbolRegistry;
966
1048
  private overlayService;
967
- 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[];
968
1063
  handleDrop(children: ComponentNode[], event: IoxDropEvent, dropListId: string, cdr: ChangeDetectorRef, afterDrop?: () => void): void;
969
1064
  /**
970
1065
  * Turn a components-panel payload into a fresh ComponentNode: a built-in type string via the
@@ -981,7 +1076,7 @@ declare class DragEngineService {
981
1076
  * `dropComplete$` exactly like a drop, so the builder selects the new node and records one undo
982
1077
  * step through the same path. Returns the inserted node, or null if the payload was unusable.
983
1078
  */
984
- insertPayload(children: ComponentNode[], index: number, data: unknown): ComponentNode | null;
1079
+ insertPayload(children: ComponentNode[], index: number, data: unknown, ancestors?: readonly AncestorNode[]): ComponentNode | null;
985
1080
  /** True when `children` is a registered drop zone's array — i.e. a real container that can hold
986
1081
  * children. Click-to-insert uses the same test a drag does, so it can't insert where a drop
987
1082
  * couldn't. */
@@ -1032,8 +1127,11 @@ declare class DragEngineService {
1032
1127
  setScale(scale: number): void;
1033
1128
  private _dropzoneRectCache;
1034
1129
  private _snapshotRects;
1035
- private readonly ROOT_ESCAPE_PX;
1036
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;
1037
1135
  private _getEl;
1038
1136
  registerDropzone(id: string, el: HTMLElement, data: any[], cdr: ChangeDetectorRef, dropCb: (e: IoxDropEvent) => void, postDrop?: () => void): void;
1039
1137
  unregisterDropzone(id: string, el: HTMLElement): void;
@@ -1060,6 +1158,17 @@ declare class DragEngineService {
1060
1158
  private _ghostFollowStep;
1061
1159
  private _stopGhostFollow;
1062
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;
1063
1172
  /** Call on every canvas scroll tick to keep the fixed-position drop-target
1064
1173
  * overlay aligned with the container element that moved in the viewport. */
1065
1174
  refreshDragOverlays(): void;
@@ -1067,18 +1176,11 @@ declare class DragEngineService {
1067
1176
  private _removeTargetOverlay;
1068
1177
  /** Name the drop target and the slot: "into Card grid · position 2 of 4". */
1069
1178
  private _updateTargetChip;
1070
- private _isRootContainer;
1071
- /**
1072
- * Returns true if the dropzone with `childId` is a DOM descendant of the
1073
- * dropzone with `parentId`. Used to decide whether the cursor was already
1074
- * "inside" a root section before triggering root-escape.
1075
- */
1076
- private _isDescendantDropzone;
1077
1179
  private _updateIndicator;
1078
1180
  private _positionIndicator;
1079
1181
  private _removeIndicator;
1080
1182
  calcInsertIndex(containerId: string): number;
1081
- static ɵfac: i0.ɵɵFactoryDeclaration<DragEngineService, never>;
1183
+ static ɵfac: i0.ɵɵFactoryDeclaration<DragEngineService, [null, null, null, { optional: true; }]>;
1082
1184
  static ɵprov: i0.ɵɵInjectableDeclaration<DragEngineService>;
1083
1185
  }
1084
1186
 
@@ -2077,6 +2179,8 @@ declare class BuilderComponent implements OnInit, AfterViewInit, OnChanges, OnDe
2077
2179
  clientHeight: number;
2078
2180
  scrollPercentage?: number;
2079
2181
  }): void;
2182
+ /** The nodes a sibling of `node` sits under — `node`'s ancestors, outermost first (empty at a root). */
2183
+ private siblingAncestors;
2080
2184
  private findNodeInTree;
2081
2185
  /** Immediate parent of `target` within `children`, or null at a root. Derives from the
2082
2186
  * shared `nodeAncestorPath` walk in `utils/node-path.util.ts` — one tree recursion to
@@ -2386,51 +2490,6 @@ declare class OverlayComponent implements OnInit, OnDestroy {
2386
2490
  static ɵcmp: i0.ɵɵComponentDeclaration<OverlayComponent, "app-overlay", never, {}, { "toolbarAction": "toolbarAction"; }, never, never, false, never>;
2387
2491
  }
2388
2492
 
2389
- /**
2390
- * Canvas data preview used to come from host-provided content services (IOX_CONTENT_SERVICE /
2391
- * IOX_SHOP_SERVICE), whose `getContent(contentType, orgId)` hit the ADMIN resources endpoint and
2392
- * accepted no filters — so the Repeater/Slider ignored every data-source filter. Data now flows
2393
- * through BuilderDataSourceService + the shared planDataSource, configured with
2394
- * IOX_DATA_SOURCE_ENDPOINTS. Those tokens are gone; do not reintroduce a fetch that bypasses it.
2395
- */
2396
- /**
2397
- * True for nodes rendered on the EDITING canvas — provided by `BuilderComponent` at component level,
2398
- * so it reaches every `[ioxRender]` under `<app-builder>` and nothing else (Preview renders the same
2399
- * directive outside it). It answers "is this the editor?" — the canvas-only "Add image" label hangs off
2400
- * it. `IS_PREVIEW` answers the other question, "is this a preview/live render?" (links navigate,
2401
- * sliders run live), and is provided ONLY by Preview (component level) and the engine; neither token
2402
- * implies the other — a design sampler, for one, is neither.
2403
- */
2404
- declare const IOX_BUILDER_CANVAS: InjectionToken<boolean>;
2405
- /**
2406
- * Translates the builder library's OWN chrome.
2407
- *
2408
- * The library cannot depend on ngx-translate — that is the host app's choice — but its toolbar was
2409
- * hardcoded English, which shows through as untranslated controls in a Hebrew/RTL admin. This token
2410
- * lets the host route those strings through its own i18n while the library keeps working standalone:
2411
- * unprovided, `defaultBuilderLabels` returns the English text, so nothing ever renders a raw key.
2412
- *
2413
- * Keys are namespaced `builder.chrome.*` and listed in `BUILDER_CHROME_EN` below — that object is
2414
- * the contract. A host providing this token should add those keys to its own bundles.
2415
- */
2416
- declare const IOX_BUILDER_LABELS: InjectionToken<BuilderLabelResolver>;
2417
- type BuilderLabelResolver = (key: string, fallback: string) => string;
2418
- /** Standalone behaviour: the English text the library ships with. */
2419
- declare const defaultBuilderLabels: BuilderLabelResolver;
2420
- /**
2421
- * Every user-visible string in the builder's own chrome, so a host can copy this into its bundles
2422
- * in one go rather than discovering keys one missing label at a time.
2423
- */
2424
- declare const BUILDER_CHROME_EN: Readonly<Record<string, string>>;
2425
- declare const CANVAS_EMPTY_IMAGE_LABEL_KEY = "builder.chrome.addImage";
2426
- declare const CANVAS_EMPTY_IMAGE_LABEL_EN: string;
2427
- /**
2428
- * Marks an element the builder draws on the canvas that the live site never has — drop placeholders,
2429
- * repeat badges, the empty slider hint. A page thumbnail is a picture of the SITE, so its capture
2430
- * leaves every marked element out.
2431
- */
2432
- declare const EDITOR_CHROME_ATTRIBUTE = "data-iox-chrome";
2433
-
2434
2493
  declare class ToolbarComponent {
2435
2494
  private readonly labels;
2436
2495
  activeMode: BuilderMode;
@@ -2952,6 +3011,7 @@ interface TreeNode {
2952
3011
  declare class LayerTreeComponent implements OnInit, OnDestroy {
2953
3012
  private registry;
2954
3013
  private overlayService;
3014
+ private dragEngine;
2955
3015
  layout: ComponentNode[];
2956
3016
  globalElements: ComponentNode[];
2957
3017
  nodeSelect: EventEmitter<ComponentNode>;
@@ -2973,7 +3033,7 @@ declare class LayerTreeComponent implements OnInit, OnDestroy {
2973
3033
  /** Last-seen structural signature — used by ngDoCheck to skip no-op rebuilds. */
2974
3034
  private _layoutSig;
2975
3035
  private _globalSig;
2976
- constructor(registry: ComponentRegistryService, overlayService: OverlayService);
3036
+ constructor(registry: ComponentRegistryService, overlayService: OverlayService, dragEngine: DragEngineService);
2977
3037
  ngOnInit(): void;
2978
3038
  ngOnDestroy(): void;
2979
3039
  ngDoCheck(): void;
@@ -3398,6 +3458,43 @@ declare const FORM_TYPE = "Form";
3398
3458
  */
3399
3459
  declare function nearestFormNode(path: readonly ComponentNode[] | null | undefined): ComponentNode | null;
3400
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
+
3401
3498
  /**
3402
3499
  * The text on the drop indicator's chip — "into Card grid · position 2 of 3" (B2).
3403
3500
  *
@@ -3576,5 +3673,5 @@ declare class TextBlockComponentConfig extends ComponentConfig {
3576
3673
  constructor();
3577
3674
  }
3578
3675
 
3579
- 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 };
3580
- 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, 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,6 +1,6 @@
1
1
  {
2
2
  "name": "@vectoriox/iox-builder",
3
- "version": "8.0.0",
3
+ "version": "8.1.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=20.0.0",
6
6
  "@angular/core": ">=20.0.0",