@vectoriox/iox-builder 1.1.1 → 1.1.3

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": "1.1.1",
3
+ "version": "1.1.3",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=20.0.0",
6
6
  "@angular/core": ">=20.0.0",
@@ -718,9 +718,6 @@ declare class BuilderComponent implements OnInit, AfterViewInit, OnChanges, OnDe
718
718
  private destroyLenis;
719
719
  addComponent(name: string): void;
720
720
  onDrop(event: IoxDropEvent): void;
721
- /** Resolve the width style-trait value for a node so the cdkDrag wrapper
722
- * matches the component's actual width (prevents full-canvas-width clones). */
723
- getNodeWidth(node: ComponentNode): string | undefined;
724
721
  onModeChange(mode: BuilderMode): void;
725
722
  onDeviceChange(device: DeviceMode): void;
726
723
  onZoomChange(value: number | 'fit'): void;
@@ -765,18 +762,24 @@ declare class BuilderComponent implements OnInit, AfterViewInit, OnChanges, OnDe
765
762
  /**
766
763
  * StyleRegistryService — manages a single <style> tag for the builder canvas.
767
764
  *
768
- * Each builder component gets a unique CSS class `.iox-node-{id}` applied to its
769
- * first inner element. onUpdate() in the style panel calls upsert() to compile
770
- * the flat style-trait map into a CSS rule and flush it to the stylesheet.
765
+ * Each builder component gets two CSS classes:
766
+ * .iox-node-{id} — applied to the inner element; handles layout/visual props
767
+ * (display, flex, background, border, padding, etc.)
768
+ * .iox-outer-{id} — applied to the host element by RenderDirective; handles
769
+ * properties that participate in the PARENT flow (margin,
770
+ * align-self, flex-grow/shrink/basis, order).
771
771
  *
772
- * This replaces the old [ngStyle] binding, enabling future support for
773
- * hover states, breakpoints, and pseudo-selectors without DOM modifications.
772
+ * This split is necessary because margin on an inner wrapper only adds internal
773
+ * space it does not push sibling elements. Applying margin to the host element
774
+ * (which IS the flex/block child in the parent container) makes it work correctly.
774
775
  *
775
776
  * Scoped to PageUiComponent.providers[] — one stylesheet per builder instance.
776
777
  */
777
778
  declare class StyleRegistryService {
778
779
  private rules;
779
780
  private styleEl;
781
+ /** Properties that must live on the wrapper element to affect the parent layout. */
782
+ private static readonly OUTER_PROPS;
780
783
  init(): void;
781
784
  upsert(nodeId: string, styles: Record<string, any>): void;
782
785
  remove(nodeId: string): void;
@@ -1008,7 +1011,6 @@ declare class SectionComponent implements OnInit, OnDestroy {
1008
1011
  constructor(dragEngine: DragEngineService, cdr: ChangeDetectorRef);
1009
1012
  ngOnInit(): void;
1010
1013
  get listOrientation(): 'horizontal' | 'vertical';
1011
- getChildWidth(node: ComponentNode): string | undefined;
1012
1014
  ngOnDestroy(): void;
1013
1015
  onDrop(event: IoxDropEvent): void;
1014
1016
  static ɵfac: i0.ɵɵFactoryDeclaration<SectionComponent, never>;
@@ -1031,7 +1033,6 @@ declare class BuilderContainerComponent implements OnInit, OnDestroy {
1031
1033
  ngOnInit(): void;
1032
1034
  ngOnDestroy(): void;
1033
1035
  get listOrientation(): 'horizontal' | 'vertical';
1034
- getChildWidth(node: ComponentNode): string | undefined;
1035
1036
  onDrop(event: IoxDropEvent): void;
1036
1037
  static ɵfac: i0.ɵɵFactoryDeclaration<BuilderContainerComponent, never>;
1037
1038
  static ɵcmp: i0.ɵɵComponentDeclaration<BuilderContainerComponent, "app-builder-container", never, { "children": { "alias": "children"; "required": false; }; "style": { "alias": "style"; "required": false; }; "nodeId": { "alias": "nodeId"; "required": false; }; "dropListId": { "alias": "dropListId"; "required": false; }; }, { "childClick": "childClick"; "childMouseEnter": "childMouseEnter"; "childMouseLeave": "childMouseLeave"; }, never, never, false, never>;
@@ -1061,7 +1062,6 @@ declare class BuilderLinkedContainerComponent implements OnInit, OnDestroy {
1061
1062
  ngOnDestroy(): void;
1062
1063
  get resolvedHref(): string;
1063
1064
  get listOrientation(): 'horizontal' | 'vertical';
1064
- getChildWidth(node: ComponentNode): string | undefined;
1065
1065
  onDrop(event: IoxDropEvent): void;
1066
1066
  static ɵfac: i0.ɵɵFactoryDeclaration<BuilderLinkedContainerComponent, [null, null, null, { optional: true; }]>;
1067
1067
  static ɵcmp: i0.ɵɵComponentDeclaration<BuilderLinkedContainerComponent, "app-builder-linked-container", never, { "children": { "alias": "children"; "required": false; }; "style": { "alias": "style"; "required": false; }; "nodeId": { "alias": "nodeId"; "required": false; }; "dropListId": { "alias": "dropListId"; "required": false; }; "linkType": { "alias": "linkType"; "required": false; }; "url": { "alias": "url"; "required": false; }; "pageRoute": { "alias": "pageRoute"; "required": false; }; "target": { "alias": "target"; "required": false; }; }, { "childClick": "childClick"; "childMouseEnter": "childMouseEnter"; "childMouseLeave": "childMouseLeave"; }, never, never, false, never>;