@vectoriox/iox-builder 2.0.4 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vectoriox/iox-builder",
3
- "version": "2.0.4",
3
+ "version": "2.1.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=20.0.0",
6
6
  "@angular/core": ">=20.0.0",
@@ -1364,12 +1364,23 @@ declare class RenderDirective implements OnInit, OnDestroy {
1364
1364
  private interactionEngine;
1365
1365
  private cdr;
1366
1366
  private panelEventService;
1367
+ private dragEngine;
1367
1368
  ioxRender: ComponentNode | null;
1369
+ /**
1370
+ * WRAPPER-COLLAPSE opt-in (task 9c). When a parent renders a child DIRECTLY (no `iox-outer`
1371
+ * wrapper div), it passes the parent dropzone id here. The RenderDirective then puts the
1372
+ * `iox-outer-{id}` class on the node HOST (so the host is the single flex/grid item carrying both
1373
+ * `iox-outer` + `iox-node`, like the SSR engine) and registers drag on the host. When unset
1374
+ * (`null`), the legacy path is byte-identical — the parent's wrapper owns `iox-outer` + drag.
1375
+ */
1376
+ ioxDragSourceId: string | null;
1368
1377
  onClick: EventEmitter<any>;
1369
1378
  onMouseEnter: EventEmitter<any>;
1370
1379
  onMouseLeave: EventEmitter<any>;
1371
1380
  private childSubs;
1372
- constructor(vcr: ViewContainerRef, injector: Injector, envInjector: EnvironmentInjector, doc: Document, registryService: ComponentRegistryService, overlayService: OverlayService, styleRegistry: StyleRegistryService, interactionEngine: InteractionEngineService, cdr: ChangeDetectorRef, panelEventService: PanelEventService);
1381
+ /** Host element drag was registered on (collapsed path) — unregistered on destroy. */
1382
+ private hostDragEl;
1383
+ constructor(vcr: ViewContainerRef, injector: Injector, envInjector: EnvironmentInjector, doc: Document, registryService: ComponentRegistryService, overlayService: OverlayService, styleRegistry: StyleRegistryService, interactionEngine: InteractionEngineService, cdr: ChangeDetectorRef, panelEventService: PanelEventService, dragEngine: DragEngineService);
1373
1384
  /**
1374
1385
  * Tag for a variable-tag directive-host (whose selector lists several tags, so
1375
1386
  * `vcr.createComponent` would always pick the first). Reads the value from the node's traits.
@@ -1394,7 +1405,7 @@ declare class RenderDirective implements OnInit, OnDestroy {
1394
1405
  /** Try setInput(); fall back to direct assignment for non-@Input properties. */
1395
1406
  private safeSetInput;
1396
1407
  static ɵfac: i0.ɵɵFactoryDeclaration<RenderDirective, never>;
1397
- static ɵdir: i0.ɵɵDirectiveDeclaration<RenderDirective, "[ioxRender]", never, { "ioxRender": { "alias": "ioxRender"; "required": false; }; }, { "onClick": "onClick"; "onMouseEnter": "onMouseEnter"; "onMouseLeave": "onMouseLeave"; }, never, never, false, never>;
1408
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RenderDirective, "[ioxRender]", never, { "ioxRender": { "alias": "ioxRender"; "required": false; }; "ioxDragSourceId": { "alias": "ioxDragSourceId"; "required": false; }; }, { "onClick": "onClick"; "onMouseEnter": "onMouseEnter"; "onMouseLeave": "onMouseLeave"; }, never, never, false, never>;
1398
1409
  }
1399
1410
 
1400
1411
  declare class IoxDraggableDirective implements OnInit, OnDestroy {
@@ -1771,7 +1782,22 @@ declare class BuilderRepeaterComponent implements OnInit, OnDestroy {
1771
1782
  static ɵcmp: i0.ɵɵComponentDeclaration<BuilderRepeaterComponent, "app-builder-repeater", never, { "children": { "alias": "children"; "required": false; }; "style": { "alias": "style"; "required": false; }; "nodeId": { "alias": "nodeId"; "required": false; }; "dropListId": { "alias": "dropListId"; "required": false; }; "source": { "alias": "source"; "required": false; }; "limit": { "alias": "limit"; "required": false; }; }, { "childClick": "childClick"; "childMouseEnter": "childMouseEnter"; "childMouseLeave": "childMouseLeave"; }, never, never, false, never>;
1772
1783
  }
1773
1784
 
1785
+ /**
1786
+ * Directive-host ButtonBlock (wrapper collapse, task 9c). The real `<button>`/`<a>` IS the host —
1787
+ * chosen by RenderDirective via `hostElement` from the `tag` trait (`variableTag`), NOT an internal
1788
+ * `<button>` in the template. This matches the SSR engine's `button[iox-button-block]` component and
1789
+ * every other collapsed builder component (Container/Section/List/…): ONE element per node carrying
1790
+ * BOTH `iox-outer-{id}` (margin/width) + `iox-node-{id}` (visual props). Previously this component
1791
+ * kept the OLD pattern — a custom-element selector plus a template that rendered its own
1792
+ * `<button class="button-block-root">` — so RenderDirective's host `<button>` (iox-outer) wrapped a
1793
+ * second `<button>` (iox-node): button-in-button, and width (outer) + aspect-ratio (inner) split
1794
+ * across two elements so aspect-ratio never resolved. Collapsing to the single host fixes both.
1795
+ *
1796
+ * The `button`/`a` UA resets (border, background, text-decoration) live in the builder app's global
1797
+ * styles.scss, kept OFF `:host` so styleProps (`.iox-node-{id}`) can override them.
1798
+ */
1774
1799
  declare class BuilderButtonBlockComponent implements OnInit, OnDestroy {
1800
+ private elRef;
1775
1801
  private dragEngine;
1776
1802
  private cdr;
1777
1803
  children: ComponentNode[];
@@ -1787,12 +1813,12 @@ declare class BuilderButtonBlockComponent implements OnInit, OnDestroy {
1787
1813
  childClick: EventEmitter<any>;
1788
1814
  childMouseEnter: EventEmitter<any>;
1789
1815
  childMouseLeave: EventEmitter<void>;
1790
- constructor(dragEngine: DragEngineService, cdr: ChangeDetectorRef);
1816
+ constructor(elRef: ElementRef<HTMLElement>, dragEngine: DragEngineService, cdr: ChangeDetectorRef);
1791
1817
  ngOnInit(): void;
1792
1818
  ngOnDestroy(): void;
1793
1819
  onDrop(event: IoxDropEvent): void;
1794
1820
  static ɵfac: i0.ɵɵFactoryDeclaration<BuilderButtonBlockComponent, never>;
1795
- static ɵcmp: i0.ɵɵComponentDeclaration<BuilderButtonBlockComponent, "app-builder-button-block", never, { "children": { "alias": "children"; "required": false; }; "style": { "alias": "style"; "required": false; }; "tag": { "alias": "tag"; "required": false; }; "href": { "alias": "href"; "required": false; }; "target": { "alias": "target"; "required": false; }; "type": { "alias": "type"; "required": false; }; "nodeId": { "alias": "nodeId"; "required": false; }; "dropListId": { "alias": "dropListId"; "required": false; }; }, { "childClick": "childClick"; "childMouseEnter": "childMouseEnter"; "childMouseLeave": "childMouseLeave"; }, never, never, false, never>;
1821
+ static ɵcmp: i0.ɵɵComponentDeclaration<BuilderButtonBlockComponent, "button[iox-button-block],a[iox-button-block]", never, { "children": { "alias": "children"; "required": false; }; "style": { "alias": "style"; "required": false; }; "tag": { "alias": "tag"; "required": false; }; "href": { "alias": "href"; "required": false; }; "target": { "alias": "target"; "required": false; }; "type": { "alias": "type"; "required": false; }; "nodeId": { "alias": "nodeId"; "required": false; }; "dropListId": { "alias": "dropListId"; "required": false; }; }, { "childClick": "childClick"; "childMouseEnter": "childMouseEnter"; "childMouseLeave": "childMouseLeave"; }, never, never, false, never>;
1796
1822
  }
1797
1823
 
1798
1824
  declare class SliderContainerComponent implements OnInit, AfterViewInit, OnChanges, OnDestroy {