@vectoriox/iox-builder 9.11.3 → 10.0.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
@@ -951,9 +951,17 @@ declare enum PanelEventTypes {
951
951
  * would (`string` component type, or a block / symbol object). The builder resolves WHERE from
952
952
  * the current selection — see `resolveInsertTarget`. */
953
953
  INSERT_COMPONENT = "insertcomponent",
954
- /** Insert prebuilt node(s) as GLOBAL elements (data = ComponentNode[]) — the consent preset's
955
- * path (D-C5: site-wide by construction). Mirrors the MakeGlobal toolbar action. */
954
+ /** Insert prebuilt node(s) as GLOBAL elements (data = ComponentNode[]) — the consent preset's click and
955
+ * the site header's click or drop (CC1.1). The HOST handles it (it owns the globals, their undo step and
956
+ * the one-header rule); the builder only routes a dropped global payload here (`globalInsert$`). */
956
957
  INSERT_GLOBAL = "insertglobal",
958
+ /** A panel makes `data.node` a GLOBAL element at `data.position` (default before) — the same move as the
959
+ * toolbar's Make Global (the Style panel's Global switch, Bindings ▸ Phone menu ▸ "Make it the site header"). */
960
+ MAKE_GLOBAL = "make-global",
961
+ /** A panel returns the global `data.node` to the page — the toolbar's Remove Global. */
962
+ REMOVE_GLOBAL = "remove-global",
963
+ /** A panel moved the global `data.node` to `data.position` (before / after the page content). */
964
+ GLOBAL_POSITION = "update-global-position",
957
965
  /** A click on a compound component's PART (Field label/control/help/…) — the style panel
958
966
  * activates that part (data = { part }). Doron 2026-10-10: "both shall be selectable". */
959
967
  PART_SELECT = "partselect",
@@ -1239,6 +1247,14 @@ declare class DragEngineService {
1239
1247
  * step through the same path. Returns the inserted node, or null if the payload was unusable.
1240
1248
  */
1241
1249
  insertPayload(children: ComponentNode[], index: number, data: unknown, ancestors?: readonly AncestorNode[]): ComponentNode | null;
1250
+ /**
1251
+ * A palette payload born GLOBAL (the site header, CC1.1) is not placed where it was dropped or clicked:
1252
+ * it is handed to `globalInsert$` (the builder hands it to the host, which owns the globals). True when
1253
+ * the payload was routed there. Only an EXTERNAL payload can be one — a node already on the canvas that
1254
+ * is global moves through the globals' own paths.
1255
+ */
1256
+ private routeGlobalPayload;
1257
+ private isOnCanvas;
1242
1258
  /** True when `children` is a registered drop zone's array — i.e. a real container that can hold
1243
1259
  * children. Click-to-insert uses the same test a drag does, so it can't insert where a drop
1244
1260
  * couldn't. */
@@ -1255,6 +1271,8 @@ declare class DragEngineService {
1255
1271
  readonly deepTarget$: BehaviorSubject<string | null>;
1256
1272
  /** Emits the dropped/inserted ComponentNode after every successful drop. */
1257
1273
  readonly dropComplete$: Subject<ComponentNode>;
1274
+ /** A fresh GLOBAL node from the palette (the site header) — dropped or clicked, never placed in a zone. */
1275
+ readonly globalInsert$: Subject<ComponentNode>;
1258
1276
  private _isDragging;
1259
1277
  private _payload;
1260
1278
  private _sourceEl;
@@ -2392,6 +2410,12 @@ declare class BuilderComponent implements OnInit, AfterViewInit, OnChanges, OnDe
2392
2410
  private autoFitViewport;
2393
2411
  selectPanel(panel: string): void;
2394
2412
  handleClick(event: any): void;
2413
+ /**
2414
+ * Make / Remove global moved `node` between the page and the globals: keep it selected in its new place,
2415
+ * so the breadcrumb (its Global chip) and every panel describe where it is NOW. Clearing the selection
2416
+ * left the crumb and the Bindings panel on the old node until a reload (CC1.1, Doron's report).
2417
+ */
2418
+ private reselectMoved;
2395
2419
  private _selectAfterDrop;
2396
2420
  handleMouseEnter(event: any): void;
2397
2421
  handleMouseLeave(): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vectoriox/iox-builder",
3
- "version": "9.11.3",
3
+ "version": "10.0.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=20.0.0",
6
6
  "@angular/core": ">=20.0.0",