@vectoriox/iox-builder 9.0.0 → 9.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
@@ -969,14 +969,17 @@ declare const EDITOR_CHROME_ATTRIBUTE = "data-iox-chrome";
969
969
 
970
970
  /**
971
971
  * What may NOT be placed where — the ONE rule every insert path asks (drag, click-to-insert, quick-add,
972
- * the Form presets, paste, duplicate). Everything not refused here is accepted: any container-capable
973
- * node takes any child, a Form included.
972
+ * the Form presets, paste, duplicate, layer-tree moves, Wrap in ▸). Everything not refused here is accepted:
973
+ * any container-capable node takes any child, a Form included.
974
974
  */
975
975
  declare enum InsertRefusal {
976
976
  /** A form inside a form — fields belong to their NEAREST form (forms plan D1), and HTML forbids it. */
977
977
  NestedForm = "nestedForm",
978
978
  /** A Success / Error block is part of its form's state machine; it is never placed on its own. */
979
- StateBlockAlone = "stateBlockAlone"
979
+ StateBlockAlone = "stateBlockAlone",
980
+ /** Form content inside a link or a button (Doron, 2026-10-20) — HTML forbids interactive content in
981
+ * `<a>`/`<button>`, and a click in a field would follow the link. The table is forms-core's. */
982
+ FormInInteractive = "formInInteractive"
980
983
  }
981
984
  declare const FORM_STATE_BLOCK_TYPES: ReadonlySet<string>;
982
985
  /** The builder-chrome label that says each refusal on screen (English in `BUILDER_CHROME_EN`). */
@@ -990,7 +993,7 @@ interface TypedNode {
990
993
  /**
991
994
  * Why `node` may not be inserted under `ancestors` (outermost first, the new parent last; empty = the page),
992
995
  * or null when it may. `node` is the whole subtree being placed — a Container holding a Form is refused
993
- * inside a Form just as a bare Form is. Reordering a node inside its CURRENT parent is not an insert and
996
+ * inside a Form just as a bare Form is, and a link that holds a form is refused wherever it goes. Reordering a node inside its CURRENT parent is not an insert and
994
997
  * never asks.
995
998
  */
996
999
  declare function insertRefusal(node: TypedNode | null | undefined, ancestors: readonly TypedNode[]): InsertRefusal | null;
@@ -1779,7 +1782,14 @@ declare enum AuditCode {
1779
1782
  /** A slider showing more slides than the width can carry — each one unreadably narrow. */
1780
1783
  SlidesOverflow = "slides-overflow",
1781
1784
  /** An out-of-flow node whose box lands outside the frame, so it is unreachable at this width. */
1782
- OffscreenAbsolute = "offscreen-absolute"
1785
+ OffscreenAbsolute = "offscreen-absolute",
1786
+ /** Form content inside a link or a button — a STRUCTURE finding, true at every width (form-nesting-audit.util). */
1787
+ FormInLink = "form-in-link"
1788
+ }
1789
+ /** A fix that changes the tree, not a style or a trait — applied as one page-history step. */
1790
+ declare enum StructureFix {
1791
+ /** Move the form out of the link or button holding it, to right after it. */
1792
+ MoveFormOut = "move-form-out"
1783
1793
  }
1784
1794
  declare enum AuditSeverity {
1785
1795
  Error = "error",
@@ -1815,6 +1825,10 @@ interface AuditFinding {
1815
1825
  /** TRAIT values to write into this breakpoint's layer — some failures are not fixable with CSS.
1816
1826
  * Applied through `setInputOverride`, the trait twin of `setOverride`. */
1817
1827
  inputFix?: Record<string, any>;
1828
+ /** A fix that moves nodes — never part of "Fix all", the author applies each one. */
1829
+ structureFix?: StructureFix;
1830
+ /** The fix button's words, when they are not the generic "Fix". */
1831
+ fixLabel?: string;
1818
1832
  }
1819
1833
  /**
1820
1834
  * Audit nodes laid out at `viewportWidth`. Returns findings ordered by severity (errors first),
@@ -1923,6 +1937,7 @@ declare class BuilderComponent implements OnInit, AfterViewInit, OnChanges, OnDe
1923
1937
  private selectoCanvas;
1924
1938
  private styleRegistry;
1925
1939
  private contextStore;
1940
+ private labels;
1926
1941
  /**
1927
1942
  * Re-apply context-bound inputs on the CANVAS when a slot changes — the builder twin of the
1928
1943
  * engine's effect. The canvas is a live runtime, so hovering a repeater row while editing must
@@ -1986,6 +2001,9 @@ declare class BuilderComponent implements OnInit, AfterViewInit, OnChanges, OnDe
1986
2001
  browseComponents(): void;
1987
2002
  /** Findings for the width being edited; the panel is open while `auditOpen`. */
1988
2003
  auditFindings: AuditFinding[];
2004
+ /** Width-independent findings (a form inside a link), kept current on every load and edit so the
2005
+ * audit button shows them before the audit is ever opened. */
2006
+ structureFindings: AuditFinding[];
1989
2007
  auditOpen: boolean;
1990
2008
  auditRunning: boolean;
1991
2009
  get auditBreakpointLabel(): string;
@@ -1999,6 +2017,9 @@ declare class BuilderComponent implements OnInit, AfterViewInit, OnChanges, OnDe
1999
2017
  runAudit(): void;
2000
2018
  /** The node's OWN trait values — the Base layer the responsive `inputs` cascade sits on top of. */
2001
2019
  private baseInputMapOf;
2020
+ private refreshStructureFindings;
2021
+ /** A structure fix moves nodes on the page: ONE layout change, so ONE undo step. */
2022
+ private applyStructureFix;
2002
2023
  /** Apply one finding's fix into the current breakpoint's layer (or the base styles at Base). */
2003
2024
  applyAuditFix(finding: AuditFinding): void;
2004
2025
  /** Apply every fixable finding, then re-measure. */
@@ -3143,8 +3164,9 @@ declare class AuditPanelComponent {
3143
3164
  closePanel: EventEmitter<void>;
3144
3165
  readonly severities: typeof AuditSeverity;
3145
3166
  trackFinding(_index: number, finding: AuditFinding): string;
3146
- /** Findings that carry a safe auto-fix — what "Fix all" would apply. */
3167
+ /** Findings that carry a safe auto-fix — what "Fix all" applies (a structure fix is the author's call). */
3147
3168
  get fixableCount(): number;
3169
+ hasFix(finding: AuditFinding): boolean;
3148
3170
  iconFor(severity: AuditSeverity): string;
3149
3171
  static ɵfac: i0.ɵɵFactoryDeclaration<AuditPanelComponent, never>;
3150
3172
  static ɵcmp: i0.ɵɵComponentDeclaration<AuditPanelComponent, "app-audit-panel", never, { "findings": { "alias": "findings"; "required": false; }; "breakpointLabel": { "alias": "breakpointLabel"; "required": false; }; "running": { "alias": "running"; "required": false; }; }, { "select": "select"; "fix": "fix"; "fixAll": "fixAll"; "rerun": "rerun"; "closePanel": "closePanel"; }, never, never, false, never>;
@@ -3655,5 +3677,5 @@ declare class TextBlockComponentConfig extends ComponentConfig {
3655
3677
  constructor();
3656
3678
  }
3657
3679
 
3658
- 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_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 };
3680
+ 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_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, StructureFix, 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 };
3659
3681
  export type { AuditFinding, AuditNode, BreakpointPresentation, BuilderClipboard, BuilderLabelResolver, ComponentEventDef, ComponentMethodDef, ComponentNode, ComponentTrait, ConsentPreset, CreateConfig, Crumb, DesignSpecimenCopy, DragPayload, DsFilterByQueryParam, DsFilterByRouteParam, ElementState, FieldKindDef, 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": "9.0.0",
3
+ "version": "9.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.22.0",
9
+ "@vectoriox/iox-ui": ">=5.30.0",
10
10
  "interactjs": "^1.10.27",
11
11
  "primeng": ">=20.0.0",
12
12
  "swiper": ">=12.0.0",