@vectoriox/iox-builder 3.5.1 → 4.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
2
  import { ComponentRef, Type, ChangeDetectorRef, OnInit, AfterViewInit, OnChanges, OnDestroy, EventEmitter, ElementRef, ApplicationRef, SimpleChanges, ViewContainerRef, Injector, EnvironmentInjector, InjectionToken, TemplateRef, AfterContentInit, QueryList } from '@angular/core';
3
3
  import * as i28 from '@vectoriox/iox-ui';
4
- import { RelativeSourceSpec, DataSourceEndpoints } from '@vectoriox/iox-ui';
4
+ import { ResponsiveOverrides, RelativeSourceSpec, Breakpoint, DataSourceEndpoints } from '@vectoriox/iox-ui';
5
5
  export { ComponentInstanceRegistryService, IoxContextSlot, 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';
@@ -301,6 +301,15 @@ interface ComponentNode {
301
301
  * appear in the trigger picker.
302
302
  */
303
303
  stateTriggers?: Partial<Record<ElementState, string>>;
304
+ /**
305
+ * Per-breakpoint overrides — SPARSE, shaped like `stateStyles`:
306
+ * `{ mobile: { styleProps: {…}, stateStyles: { hover: {…} } } }`. Base styles stay in
307
+ * `styleTraits`; absent means the node looks the same at every width. Read and written only
308
+ * through the shared helpers in `@vectoriox/iox-ui` (`resolveStyleProps`, `setOverride`,
309
+ * `clearOverride`, `planResponsiveRules`) so builder and SSR engine agree.
310
+ * See iox-ai-guidance `architecture/builder/responsive-breakpoints-plan.md`.
311
+ */
312
+ responsive?: ResponsiveOverrides;
304
313
  /** User-defined display name for this node. Used in the layer tree and as an
305
314
  * interaction target identifier. Only nodes with a label appear in the
306
315
  * interaction target picker. */
@@ -576,7 +585,9 @@ declare enum ToolbarAction {
576
585
  Copy = "copy",
577
586
  Paste = "paste",
578
587
  AddSlide = "add-slide",
579
- Wrap = "wrap"
588
+ Wrap = "wrap",
589
+ /** Open the components panel to insert into / after the selection (B2 quick-add). */
590
+ AddElement = "add-element"
580
591
  }
581
592
  declare enum NodeAction {
582
593
  Delete = "delete",
@@ -587,20 +598,20 @@ declare enum BuilderMode {
587
598
  Style = "style",
588
599
  Pan = "pan"
589
600
  }
590
- declare enum DeviceMode {
591
- Desktop = "desktop",
592
- Tablet = "tablet",
593
- Mobile = "mobile"
594
- }
595
- interface DeviceOption {
596
- mode: DeviceMode;
597
- label: string;
601
+ /**
602
+ * Builder-only presentation of the shared breakpoints. The breakpoint SET — ids, max widths, labels,
603
+ * preview widths — lives once in `@vectoriox/iox-ui` `BREAKPOINTS`; this adds only what the toolbar
604
+ * and canvas need and the SSR engine never will: an icon and a simulated viewport height.
605
+ * (Replaces the old DeviceMode / DEVICE_OPTIONS, which only resized the canvas and stored nothing.)
606
+ */
607
+ interface BreakpointPresentation {
598
608
  icon: string;
599
- width: number;
600
- /** Simulated browser viewport height in CSS px. */
601
- height: number;
609
+ /** Simulated browser viewport height in CSS px — a landscape phone is short. */
610
+ previewHeight: number;
611
+ /** Show the icon rotated 90°: Phosphor has no landscape-phone glyph. */
612
+ landscape?: boolean;
602
613
  }
603
- declare const DEVICE_OPTIONS: DeviceOption[];
614
+ declare const BREAKPOINT_PRESENTATION: Readonly<Record<Breakpoint, BreakpointPresentation>>;
604
615
  interface ZoomOption {
605
616
  label: string;
606
617
  value: number | 'fit';
@@ -730,7 +741,11 @@ declare enum PanelEventTypes {
730
741
  * Repeater/Slider listen so their PREVIEW CLONES are re-cloned with the new interactions —
731
742
  * clones are attached by ELEMENT at render time, so without this a new interaction only starts
732
743
  * working after a save + reload. */
733
- INTERACTION_CHANGED = "interactionchanged"
744
+ INTERACTION_CHANGED = "interactionchanged",
745
+ /** CLICK-TO-INSERT (B2): a components-panel entry was clicked. Carries the same payload a drag
746
+ * would (`string` component type, or a block / symbol object). The builder resolves WHERE from
747
+ * the current selection — see `resolveInsertTarget`. */
748
+ INSERT_COMPONENT = "insertcomponent"
734
749
  }
735
750
  interface PanelEvent {
736
751
  type: PanelEventTypes;
@@ -804,6 +819,27 @@ declare class DragEngineService {
804
819
  private overlayService;
805
820
  constructor(registry: ComponentRegistryService, symbolRegistry: SymbolRegistryService, overlayService: OverlayService);
806
821
  handleDrop(children: ComponentNode[], event: IoxDropEvent, dropListId: string, cdr: ChangeDetectorRef, afterDrop?: () => void): void;
822
+ /**
823
+ * Turn a components-panel payload into a fresh ComponentNode: a built-in type string via the
824
+ * registry, or a block / symbol / bare node deep-cloned with fresh ids (so each copy owns its
825
+ * CSS rules and its intra-subtree references stay self-consistent). Prefers `symbol.node`
826
+ * (always current) over a block's original snapshot.
827
+ *
828
+ * The ONE place a panel payload becomes a node — drag-drop and click-to-insert both use it, so
829
+ * a clicked element is identical to a dragged one.
830
+ */
831
+ materialize(data: unknown): ComponentNode | null;
832
+ /**
833
+ * CLICK-TO-INSERT (B2): place a panel payload at a resolved target without a drag. Emits
834
+ * `dropComplete$` exactly like a drop, so the builder selects the new node and records one undo
835
+ * step through the same path. Returns the inserted node, or null if the payload was unusable.
836
+ */
837
+ insertPayload(children: ComponentNode[], index: number, data: unknown): ComponentNode | null;
838
+ /** True when `children` is a registered drop zone's array — i.e. a real container that can hold
839
+ * children. Click-to-insert uses the same test a drag does, so it can't insert where a drop
840
+ * couldn't. */
841
+ isDropContainer(children: unknown): boolean;
842
+ private cdrForData;
807
843
  private ids;
808
844
  private elMap;
809
845
  private dataMap;
@@ -837,6 +873,7 @@ declare class DragEngineService {
837
873
  private _deepTargetId;
838
874
  /** Injected overlay div marking the active drop target. */
839
875
  private _targetOverlay;
876
+ private _targetChip;
840
877
  private _indicator;
841
878
  private _indicatorContainerId;
842
879
  private _indicatorIndex;
@@ -881,6 +918,8 @@ declare class DragEngineService {
881
918
  refreshDragOverlays(): void;
882
919
  private _moveTargetOverlay;
883
920
  private _removeTargetOverlay;
921
+ /** Name the drop target and the slot: "into Card grid · position 2 of 4". */
922
+ private _updateTargetChip;
884
923
  private _isRootContainer;
885
924
  /**
886
925
  * Returns true if the dropzone with `childId` is a DOM descendant of the
@@ -896,6 +935,13 @@ declare class DragEngineService {
896
935
  static ɵprov: i0.ɵɵInjectableDeclaration<DragEngineService>;
897
936
  }
898
937
 
938
+ /**
939
+ * CSS container name of the builder canvas frame (and of the global-elements overlay). Breakpoint
940
+ * rules are emitted as `@container iox-canvas (max-width: …)`: the frame's layout width IS the
941
+ * simulated viewport and is unaffected by the zoom `transform: scale`, whereas a `@media` query
942
+ * would read the editor window. Set on the frame in builder.component.scss.
943
+ */
944
+ declare const BUILDER_CANVAS_CONTAINER = "iox-canvas";
899
945
  /**
900
946
  * StyleRegistryService — manages a single <style> tag for the builder canvas.
901
947
  *
@@ -921,6 +967,14 @@ declare class DragEngineService {
921
967
  declare class StyleRegistryService {
922
968
  readonly changes$: Subject<void>;
923
969
  private rules;
970
+ /** Breakpoint rules, kept apart so they flush AFTER every base rule — equal specificity, so
971
+ * source order decides (plan trap 1). Keyed per breakpoint like `rules` (`id`, `id:state`). */
972
+ private responsiveRules;
973
+ private responsiveInputs;
974
+ /** Which breakpoint rule keys each node owns — so re-emitting one node's rules is O(its rules),
975
+ * not a scan of every breakpoint rule on the page (this runs on every node render). */
976
+ private responsiveKeys;
977
+ private stateScopes;
924
978
  private styleEl;
925
979
  /**
926
980
  * Properties that must live on the OUTER wrapper (.iox-outer-{id}) because they
@@ -954,6 +1008,30 @@ declare class StyleRegistryService {
954
1008
  * pseudo-class drives the state. Compiles a `:has()`-scoped selector.
955
1009
  */
956
1010
  upsert(nodeId: string, styles: Record<string, any>, state?: ElementState, relativeToId?: string, triggerId?: string): void;
1011
+ /**
1012
+ * Emit (or clear) a node's breakpoint rules. `planResponsiveRules` — shared with the SSR engine —
1013
+ * decides what each breakpoint emits; this only turns it into selectors, through the SAME
1014
+ * inner/outer split and state selectors as the base rules, compiled in the Override context
1015
+ * (a CSS initial value undoes the wider rule there, so it must not be dropped).
1016
+ *
1017
+ * @param styleProps The node's full BASE style map (raw — virtual traits not yet composed).
1018
+ */
1019
+ upsertResponsive(nodeId: string, styleProps: Record<string, any>, stateStyles: Record<string, Record<string, any>> | undefined, responsive: ResponsiveOverrides | undefined): void;
1020
+ private emitResponsive;
1021
+ private setResponsiveRule;
1022
+ private clearResponsive;
1023
+ private isOutOfFlow;
1024
+ /**
1025
+ * The selector BODY (no leading dot) for a state rule, or null when a relational / targeted
1026
+ * state has no scope yet (emitting it unscoped would be wrong — a page-global `:has()`).
1027
+ */
1028
+ private stateSelector;
1029
+ /**
1030
+ * The inner + outer rule (joined) and the `::marker` rule for one composed style map.
1031
+ * `isOutOfFlow` is passed in rather than read from `styles` because a breakpoint layer is
1032
+ * sparse — the position in force may come from a wider layer.
1033
+ */
1034
+ private nodeRuleCss;
957
1035
  /**
958
1036
  * Write the org-level design token variables as a `:root { … }` block.
959
1037
  * Token names should be CSS custom property names without the `--` prefix
@@ -1221,7 +1299,11 @@ declare class InteractionEngineService {
1221
1299
  }
1222
1300
 
1223
1301
  interface ViewportState {
1224
- device: DeviceMode;
1302
+ /**
1303
+ * The breakpoint being edited — ALWAYS the one the canvas width falls in (derived, never set
1304
+ * independently), so the editing scope can't disagree with what the canvas is showing.
1305
+ */
1306
+ breakpoint: Breakpoint;
1225
1307
  /** Real canvas width in CSS pixels (e.g., 1440 for desktop). */
1226
1308
  width: number;
1227
1309
  /** Real canvas height in CSS pixels (e.g., 900 for desktop). Simulates the browser viewport. */
@@ -1235,8 +1317,10 @@ declare class ViewportService {
1235
1317
  state$: rxjs.Observable<ViewportState>;
1236
1318
  getState(): ViewportState;
1237
1319
  getScale(): number;
1238
- setDevice(device: DeviceMode): void;
1320
+ /** Show (and edit) `bp`: the canvas takes that breakpoint's preview width and height. */
1321
+ setBreakpoint(bp: Breakpoint): void;
1239
1322
  setScale(scale: number): void;
1323
+ /** Any canvas width — the breakpoint follows from it. */
1240
1324
  setWidth(width: number): void;
1241
1325
  /**
1242
1326
  * Calculate the scale that makes the canvas fit inside the available editor width.
@@ -1262,11 +1346,19 @@ declare class ViewportService {
1262
1346
  };
1263
1347
  private update;
1264
1348
  private saveToStorage;
1349
+ /**
1350
+ * Restores width / height / scale. Older builds also saved a `device` ('desktop' | 'tablet' |
1351
+ * 'mobile'); it is ignored — the saved width (1440 / 768 / 375) already resolves to the
1352
+ * matching breakpoint (Base / Tablet / Small), so old preferences carry over unchanged.
1353
+ */
1265
1354
  private loadFromStorage;
1266
1355
  static ɵfac: i0.ɵɵFactoryDeclaration<ViewportService, never>;
1267
1356
  static ɵprov: i0.ɵɵInjectableDeclaration<ViewportService>;
1268
1357
  }
1269
1358
 
1359
+ /** Override counts per breakpoint — what the breakpoint bar's dots show. Base is never present. */
1360
+ type BreakpointCounts = Partial<Record<Breakpoint, number>>;
1361
+
1270
1362
  interface BuilderClipboard {
1271
1363
  node?: ComponentNode;
1272
1364
  presetId?: string;
@@ -1371,7 +1463,11 @@ declare class BuilderComponent implements OnInit, AfterViewInit, OnChanges, OnDe
1371
1463
  panelTypes: typeof PanelTypes;
1372
1464
  activeMode: BuilderMode;
1373
1465
  builderModes: typeof BuilderMode;
1374
- activeDevice: DeviceMode;
1466
+ /** The breakpoint being edited — derived from the canvas width by ViewportService. */
1467
+ activeBreakpoint: Breakpoint;
1468
+ /** Overrides per breakpoint for the selection (or the whole page when nothing is selected) —
1469
+ * the breakpoint bar's dots. A field recomputed on change, never a getter (OnPush input). */
1470
+ breakpointCounts: BreakpointCounts;
1375
1471
  activeZoom: number;
1376
1472
  activeScreenWidth: number;
1377
1473
  selectedItem: ComponentNode | null;
@@ -1406,7 +1502,7 @@ declare class BuilderComponent implements OnInit, AfterViewInit, OnChanges, OnDe
1406
1502
  private previewFrameRo?;
1407
1503
  private canvasContentHeight;
1408
1504
  handleToolbarModeChange(mode: BuilderMode): void;
1409
- handleToolbarDeviceChange(device: DeviceMode): void;
1505
+ handleToolbarBreakpointChange(bp: Breakpoint): void;
1410
1506
  handleToolbarZoomChange(value: number | 'fit'): void;
1411
1507
  handleToolbarScreenWidthChange(width: number): void;
1412
1508
  get globalElementsBefore(): ComponentNode[];
@@ -1468,7 +1564,7 @@ declare class BuilderComponent implements OnInit, AfterViewInit, OnChanges, OnDe
1468
1564
  addComponent(name: string): void;
1469
1565
  onDrop(event: IoxDropEvent): void;
1470
1566
  onModeChange(mode: BuilderMode): void;
1471
- onDeviceChange(device: DeviceMode): void;
1567
+ onBreakpointChange(bp: Breakpoint): void;
1472
1568
  onZoomChange(value: number | 'fit'): void;
1473
1569
  onBoardMouseDown(event: MouseEvent): void;
1474
1570
  onBoardMouseMove(event: MouseEvent): void;
@@ -1526,6 +1622,13 @@ declare class BuilderComponent implements OnInit, AfterViewInit, OnChanges, OnDe
1526
1622
  private _refreshRepeaterFor;
1527
1623
  /** Emit ELEMENT_SELECT with the ancestors the panels need (symbol + repeater item scope). */
1528
1624
  private _emitElementSelect;
1625
+ /**
1626
+ * Insert a components-panel payload at the position the SELECTION implies (B2):
1627
+ * nothing selected → end of the page; a container → inside it; a leaf → right after it.
1628
+ * `dropComplete$` then selects the new node and records the undo step, exactly as a drop does.
1629
+ */
1630
+ insertFromPanel(data: unknown): void;
1631
+ private refreshBreakpointCounts;
1529
1632
  /** Read a node's current `display` value. The style panel mutates `styleTraits` in place at edit
1530
1633
  * time, so that is the live source of truth; fall back to a preset's `styleOverrides` map, then
1531
1634
  * the CSS initial value. */
@@ -1726,6 +1829,9 @@ declare class OverlayComponent implements OnInit, OnDestroy {
1726
1829
  ngOnInit(): void;
1727
1830
  ngOnDestroy(): void;
1728
1831
  onSelectParent(event: MouseEvent): void;
1832
+ /** Quick-add (B2): open the components panel. The new element lands inside this node when it is
1833
+ * a container, otherwise right after it. */
1834
+ onAddElement(event: MouseEvent): void;
1729
1835
  onDuplicate(event: MouseEvent): void;
1730
1836
  onDelete(event: MouseEvent): void;
1731
1837
  onWrap(event: MouseEvent, wrapType: string): void;
@@ -1789,7 +1895,9 @@ declare class OverlayComponent implements OnInit, OnDestroy {
1789
1895
 
1790
1896
  declare class ToolbarComponent {
1791
1897
  activeMode: BuilderMode;
1792
- activeDevice: DeviceMode;
1898
+ activeBreakpoint: Breakpoint;
1899
+ /** Overrides per breakpoint — for the selection, or the page when nothing is selected. */
1900
+ breakpointCounts: BreakpointCounts;
1793
1901
  activeZoom: number;
1794
1902
  activeScreenWidth: number;
1795
1903
  canUndo: boolean;
@@ -1797,7 +1905,7 @@ declare class ToolbarComponent {
1797
1905
  isSaving: boolean;
1798
1906
  pageStatus: string;
1799
1907
  modeChange: EventEmitter<BuilderMode>;
1800
- deviceChange: EventEmitter<DeviceMode>;
1908
+ breakpointChange: EventEmitter<Breakpoint>;
1801
1909
  zoomChange: EventEmitter<number | "fit">;
1802
1910
  screenWidthChange: EventEmitter<number>;
1803
1911
  undo: EventEmitter<void>;
@@ -1807,30 +1915,35 @@ declare class ToolbarComponent {
1807
1915
  publishToggle: EventEmitter<void>;
1808
1916
  get isPublished(): boolean;
1809
1917
  modePopover: Popover;
1810
- devicePopover: Popover;
1811
1918
  zoomPopover: Popover;
1812
1919
  widthPopover: Popover;
1813
1920
  modes: typeof BuilderMode;
1814
- deviceModes: typeof DeviceMode;
1815
- deviceOptions: DeviceOption[];
1921
+ readonly breakpointIds: typeof Breakpoint;
1922
+ /** Built once — the breakpoint set is fixed. Template binds fields, never method calls. */
1923
+ readonly breakpointOptions: {
1924
+ icon: string;
1925
+ previewHeight: number;
1926
+ landscape?: boolean;
1927
+ id: Breakpoint;
1928
+ label: string;
1929
+ range: string;
1930
+ }[];
1816
1931
  zoomOptions: _vectoriox_iox_builder.ZoomOption[];
1817
1932
  screenWidthOptions: ScreenWidthOption[];
1818
1933
  get activeModeIcon(): string;
1819
1934
  get activeModeLabel(): string;
1820
- get activeDeviceOption(): DeviceOption;
1821
1935
  get zoomLabel(): string;
1822
1936
  get sliderZoom(): number;
1823
1937
  toggleModePopover(event: Event): void;
1824
1938
  selectMode(mode: BuilderMode): void;
1825
- toggleDevicePopover(event: Event): void;
1826
- selectDevice(mode: DeviceMode): void;
1939
+ selectBreakpoint(bp: Breakpoint): void;
1827
1940
  onSliderChange(event: Event): void;
1828
1941
  toggleWidthPopover(event: Event): void;
1829
1942
  selectScreenWidth(width: number): void;
1830
1943
  toggleZoomPopover(event: Event): void;
1831
1944
  selectZoom(value: number | 'fit'): void;
1832
1945
  static ɵfac: i0.ɵɵFactoryDeclaration<ToolbarComponent, never>;
1833
- static ɵcmp: i0.ɵɵComponentDeclaration<ToolbarComponent, "app-toolbar", never, { "activeMode": { "alias": "activeMode"; "required": false; }; "activeDevice": { "alias": "activeDevice"; "required": false; }; "activeZoom": { "alias": "activeZoom"; "required": false; }; "activeScreenWidth": { "alias": "activeScreenWidth"; "required": false; }; "canUndo": { "alias": "canUndo"; "required": false; }; "canRedo": { "alias": "canRedo"; "required": false; }; "isSaving": { "alias": "isSaving"; "required": false; }; "pageStatus": { "alias": "pageStatus"; "required": false; }; }, { "modeChange": "modeChange"; "deviceChange": "deviceChange"; "zoomChange": "zoomChange"; "screenWidthChange": "screenWidthChange"; "undo": "undo"; "redo": "redo"; "save": "save"; "preview": "preview"; "publishToggle": "publishToggle"; }, never, never, false, never>;
1946
+ static ɵcmp: i0.ɵɵComponentDeclaration<ToolbarComponent, "app-toolbar", never, { "activeMode": { "alias": "activeMode"; "required": false; }; "activeBreakpoint": { "alias": "activeBreakpoint"; "required": false; }; "breakpointCounts": { "alias": "breakpointCounts"; "required": false; }; "activeZoom": { "alias": "activeZoom"; "required": false; }; "activeScreenWidth": { "alias": "activeScreenWidth"; "required": false; }; "canUndo": { "alias": "canUndo"; "required": false; }; "canRedo": { "alias": "canRedo"; "required": false; }; "isSaving": { "alias": "isSaving"; "required": false; }; "pageStatus": { "alias": "pageStatus"; "required": false; }; }, { "modeChange": "modeChange"; "breakpointChange": "breakpointChange"; "zoomChange": "zoomChange"; "screenWidthChange": "screenWidthChange"; "undo": "undo"; "redo": "redo"; "save": "save"; "preview": "preview"; "publishToggle": "publishToggle"; }, never, never, false, never>;
1834
1947
  }
1835
1948
 
1836
1949
  /**
@@ -2544,5 +2657,5 @@ declare class TextBlockComponentConfig extends ComponentConfig {
2544
2657
  constructor();
2545
2658
  }
2546
2659
 
2547
- export { ACTION_TYPE_OPTIONS, BackgroundGroupStyleConfig, BorderGroupStyleConfig, BreadcrumbBarComponent, BuilderButtonBlockComponent, BuilderButtonComponentConfig, BuilderClipboardService, BuilderComponent, BuilderContainerComponent, BuilderContainerComponentConfig, BuilderDataSourceService, BuilderDividerComponentConfig, BuilderHeadingComponentConfig, BuilderHistoryService, BuilderIconComponentConfig, BuilderImageComponentConfig, BuilderLinkComponentConfig, BuilderLinkedContainerComponent, BuilderLinkedContainerConfig, BuilderListComponentConfig, BuilderListItemComponentConfig, BuilderMode, BuilderRepeaterComponent, BuilderSpacerComponentConfig, ButtonBlockComponentConfig, CardComponentConfig, ChildLayoutGroupStyleConfig, ComponentConfig, ComponentRegistryService, DEVICE_OPTIONS, DRAG_HANDLE_ATTR, DataSourceRegistryService, DataSourceType, DeviceMode, DimensionsGroupStyleConfig, DragEngineService, EASING_OPTIONS, EffectsGroupStyleConfig, GalleryConfig, GroupStyleConfig, INTERACTION_STATES, INVERSE_ACTION, IOX_DATA_SOURCE_ENDPOINTS, IOX_FONT_MANAGER, InteractionEngineService, InteractionPresetRegistryService, IoxBuilderModule, IoxDraggableDirective, IoxDropzoneDirective, LayerTreeComponent, LayoutGroupStyleConfig, ListGroupStyleConfig, NodeAction, OverlayComponent, OverlayService, 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, SymbolRegistryService, TARGETED_STATES, TARGETED_STATE_BASE, TRIGGER_OPTIONS, TextBlockComponentConfig, ToolbarAction, ToolbarComponent, TraitConfig, TraitInputType, TypographyGroupStyleConfig, UNITS_ALL, UNITS_DEG, UNITS_FIXED, UNITS_NO_VW, ViewportService, ZOOM_OPTIONS, arrayItemSchemaFields, arraySchemaFields, buildFullStyleTraits, buildPresetStyleTraits, defaultPageSettings, findNodeLocation, findParentOf, flattenSchemaFields, generateNodeId, nodeAncestorPath, nodeAncestorPathInEither, resolveTraitControllerType, resolveTraitOptions, wrapNode };
2548
- export type { BuilderClipboard, ComponentEventDef, ComponentMethodDef, ComponentNode, ComponentTrait, Crumb, DeviceOption, DragPayload, DsFilterByQueryParam, DsFilterByRouteParam, ElementState, HistoryEntry, InteractionAction, InteractionActionType, InteractionPreset, InteractionTrigger, IoxBinding, IoxDataSource, IoxDropEvent, IoxFontManager, IoxInteraction, IoxSymbol, NodeRef, OverlayBoxModel, OverlayBoxSpacing, OverlayEntry, PageRouteAnimationSettings, PageScrollSettings, PageSettings, PageStyleSettings, PanelEvent, QuadSizeSegment, RouteAnimationPreset, ScreenWidthOption, SelectionBadge, StylePreset, StyleTrait, StyleTraitGroup, TraitOptionMap, TraitSelectOption, TraitShowCondition, TreePathNode, ViewportState, ZoomOption };
2660
+ export { ACTION_TYPE_OPTIONS, BREAKPOINT_PRESENTATION, BUILDER_CANVAS_CONTAINER, BackgroundGroupStyleConfig, BorderGroupStyleConfig, BreadcrumbBarComponent, BuilderButtonBlockComponent, BuilderButtonComponentConfig, BuilderClipboardService, BuilderComponent, BuilderContainerComponent, BuilderContainerComponentConfig, BuilderDataSourceService, BuilderDividerComponentConfig, BuilderHeadingComponentConfig, BuilderHistoryService, BuilderIconComponentConfig, BuilderImageComponentConfig, BuilderLinkComponentConfig, BuilderLinkedContainerComponent, BuilderLinkedContainerConfig, BuilderListComponentConfig, BuilderListItemComponentConfig, BuilderMode, BuilderRepeaterComponent, BuilderSpacerComponentConfig, ButtonBlockComponentConfig, CardComponentConfig, ChildLayoutGroupStyleConfig, ComponentConfig, ComponentRegistryService, DRAG_HANDLE_ATTR, DataSourceRegistryService, DataSourceType, DimensionsGroupStyleConfig, DragEngineService, EASING_OPTIONS, EffectsGroupStyleConfig, GalleryConfig, GroupStyleConfig, INTERACTION_STATES, INVERSE_ACTION, IOX_DATA_SOURCE_ENDPOINTS, IOX_FONT_MANAGER, InteractionEngineService, InteractionPresetRegistryService, IoxBuilderModule, IoxDraggableDirective, IoxDropzoneDirective, LayerTreeComponent, LayoutGroupStyleConfig, ListGroupStyleConfig, NodeAction, OverlayComponent, OverlayService, 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, SymbolRegistryService, TARGETED_STATES, TARGETED_STATE_BASE, TRIGGER_OPTIONS, TextBlockComponentConfig, ToolbarAction, ToolbarComponent, TraitConfig, TraitInputType, TypographyGroupStyleConfig, UNITS_ALL, UNITS_DEG, UNITS_FIXED, UNITS_NO_VW, ViewportService, ZOOM_OPTIONS, arrayItemSchemaFields, arraySchemaFields, buildFullStyleTraits, buildPresetStyleTraits, defaultPageSettings, findNodeLocation, findParentOf, flattenSchemaFields, generateNodeId, nodeAncestorPath, nodeAncestorPathInEither, resolveTraitControllerType, resolveTraitOptions, wrapNode };
2661
+ export type { BreakpointPresentation, BuilderClipboard, ComponentEventDef, ComponentMethodDef, ComponentNode, ComponentTrait, Crumb, DragPayload, DsFilterByQueryParam, DsFilterByRouteParam, ElementState, HistoryEntry, InteractionAction, InteractionActionType, InteractionPreset, InteractionTrigger, IoxBinding, IoxDataSource, IoxDropEvent, IoxFontManager, IoxInteraction, IoxSymbol, NodeRef, OverlayBoxModel, OverlayBoxSpacing, OverlayEntry, PageRouteAnimationSettings, PageScrollSettings, PageSettings, PageStyleSettings, PanelEvent, QuadSizeSegment, RouteAnimationPreset, ScreenWidthOption, SelectionBadge, StylePreset, StyleTrait, StyleTraitGroup, TraitOptionMap, TraitSelectOption, TraitShowCondition, TreePathNode, ViewportState, ZoomOption };
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@vectoriox/iox-builder",
3
- "version": "3.5.1",
3
+ "version": "4.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": ">=4.2.0",
9
+ "@vectoriox/iox-ui": ">=4.24.0",
10
10
  "interactjs": "^1.10.27",
11
11
  "primeng": ">=20.0.0",
12
12
  "swiper": ">=12.0.0",