@bimetal/whiteboard-angular-components 0.35.0 → 0.36.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.
@@ -11,6 +11,13 @@ import * as i0 from "@angular/core";
11
11
  export declare class CommentThreadComponent implements OnChanges {
12
12
  at: Point;
13
13
  initial: string;
14
+ /**
15
+ * The thread identity (comment id, or null for a fresh draft). The re-seed keys
16
+ * on THIS, not on `initial`: the same persistent *ngIf element is reused across
17
+ * pin→pin switches, so two different comments that happen to share the same
18
+ * stored text must still re-seed. Mirrors the React `key={openComment.id}`.
19
+ */
20
+ identity: string | null;
14
21
  resolved: boolean;
15
22
  existing: boolean;
16
23
  locale: WhiteboardLocale;
@@ -20,12 +27,13 @@ export declare class CommentThreadComponent implements OnChanges {
20
27
  delete: EventEmitter<void>;
21
28
  text: string;
22
29
  private seeded;
30
+ private lastIdentity;
23
31
  readonly onClose: () => void;
24
32
  get posStyle(): Record<string, string>;
25
33
  ngOnChanges(): void;
26
34
  onInput(e: Event): void;
27
35
  stop(e: Event): void;
28
36
  static ɵfac: i0.ɵɵFactoryDeclaration<CommentThreadComponent, never>;
29
- static ɵcmp: i0.ɵɵComponentDeclaration<CommentThreadComponent, "bm-wb-comment-thread", never, { "at": { "alias": "at"; "required": true; }; "initial": { "alias": "initial"; "required": false; }; "resolved": { "alias": "resolved"; "required": false; }; "existing": { "alias": "existing"; "required": false; }; "locale": { "alias": "locale"; "required": true; }; }, { "commit": "commit"; "close": "close"; "resolve": "resolve"; "delete": "delete"; }, never, never, true, never>;
37
+ static ɵcmp: i0.ɵɵComponentDeclaration<CommentThreadComponent, "bm-wb-comment-thread", never, { "at": { "alias": "at"; "required": true; }; "initial": { "alias": "initial"; "required": false; }; "identity": { "alias": "identity"; "required": false; }; "resolved": { "alias": "resolved"; "required": false; }; "existing": { "alias": "existing"; "required": false; }; "locale": { "alias": "locale"; "required": true; }; }, { "commit": "commit"; "close": "close"; "resolve": "resolve"; "delete": "delete"; }, never, never, true, never>;
30
38
  }
31
39
  //# sourceMappingURL=CommentThread.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CommentThread.d.ts","sourceRoot":"","sources":["../../src/components/CommentThread.ts"],"names":[],"mappings":"AAAA,OAAO,EACqB,YAAY,EACtC,SAAS,EACV,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;;AAE5E;;;;;;GAMG;AACH,qBAuBa,sBAAuB,YAAW,SAAS;IAC3B,EAAE,EAAG,KAAK,CAAC;IAC7B,OAAO,SAAM;IACb,QAAQ,UAAS;IACjB,QAAQ,UAAS;IACC,MAAM,EAAG,gBAAgB,CAAC;IAC3C,MAAM,uBAA8B;IACpC,KAAK,qBAA4B;IACjC,OAAO,qBAA4B;IACnC,MAAM,qBAA4B;IAE5C,IAAI,SAAM;IACV,OAAO,CAAC,MAAM,CAAS;IAIvB,QAAQ,CAAC,OAAO,aAA2B;IAE3C,IAAI,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAErC;IAED,WAAW;IAMX,OAAO,CAAC,CAAC,EAAE,KAAK;IAChB,IAAI,CAAC,CAAC,EAAE,KAAK;yCA7BF,sBAAsB;2CAAtB,sBAAsB;CA8BlC"}
1
+ {"version":3,"file":"CommentThread.d.ts","sourceRoot":"","sources":["../../src/components/CommentThread.ts"],"names":[],"mappings":"AAAA,OAAO,EACqB,YAAY,EACtC,SAAS,EACV,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;;AAE5E;;;;;;GAMG;AACH,qBAuBa,sBAAuB,YAAW,SAAS;IAC3B,EAAE,EAAG,KAAK,CAAC;IAC7B,OAAO,SAAM;IACtB;;;;;OAKG;IACM,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC/B,QAAQ,UAAS;IACjB,QAAQ,UAAS;IACC,MAAM,EAAG,gBAAgB,CAAC;IAC3C,MAAM,uBAA8B;IACpC,KAAK,qBAA4B;IACjC,OAAO,qBAA4B;IACnC,MAAM,qBAA4B;IAE5C,IAAI,SAAM;IACV,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAuB;IAI3C,QAAQ,CAAC,OAAO,aAA2B;IAE3C,IAAI,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAErC;IAED,WAAW;IAcX,OAAO,CAAC,CAAC,EAAE,KAAK;IAChB,IAAI,CAAC,CAAC,EAAE,KAAK;yCA7CF,sBAAsB;2CAAtB,sBAAsB;CA8ClC"}
@@ -35,6 +35,13 @@ function CommentThreadComponent_button_4_Template(rf, ctx) { if (rf & 1) {
35
35
  export class CommentThreadComponent {
36
36
  at;
37
37
  initial = '';
38
+ /**
39
+ * The thread identity (comment id, or null for a fresh draft). The re-seed keys
40
+ * on THIS, not on `initial`: the same persistent *ngIf element is reused across
41
+ * pin→pin switches, so two different comments that happen to share the same
42
+ * stored text must still re-seed. Mirrors the React `key={openComment.id}`.
43
+ */
44
+ identity = null;
38
45
  resolved = false;
39
46
  existing = false;
40
47
  locale;
@@ -44,6 +51,7 @@ export class CommentThreadComponent {
44
51
  delete = new EventEmitter();
45
52
  text = '';
46
53
  seeded = false;
54
+ lastIdentity = null;
47
55
  // v0.29 Tastatur: NON-modal dialog ([bmFocusTrapModal]="false") — focus-on-open + Escape
48
56
  // + restore, Tab may leave. The trap's onEscape closes it. Stable arrow for the template.
49
57
  onClose = () => this.close.emit();
@@ -51,17 +59,22 @@ export class CommentThreadComponent {
51
59
  return { left: `${this.at.x}px`, top: `${this.at.y}px` };
52
60
  }
53
61
  ngOnChanges() {
54
- // Seed the draft once from `initial` (the thread's stored text stays constant
55
- // mid-edit, so we never clobber typing).
56
- if (!this.seeded) {
62
+ // Re-seed the draft whenever the editor retargets a DIFFERENT thread. The same
63
+ // persistent *ngIf element is reused across pin→pin switches, so the retarget
64
+ // signal is `identity` (the comment id) — NOT `initial` (the stored text): two
65
+ // distinct comments can share the same text, and keying on text would leave that
66
+ // cross-anchor overwrite open. Mirrors the React key={openComment.id}. Within one
67
+ // thread `identity` stays constant mid-edit, so we never clobber legitimate typing.
68
+ if (!this.seeded || this.identity !== this.lastIdentity) {
57
69
  this.text = this.initial;
70
+ this.lastIdentity = this.identity;
58
71
  this.seeded = true;
59
72
  }
60
73
  }
61
74
  onInput(e) { this.text = e.target.value; }
62
75
  stop(e) { e.stopPropagation(); }
63
76
  static ɵfac = function CommentThreadComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CommentThreadComponent)(); };
64
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CommentThreadComponent, selectors: [["bm-wb-comment-thread"]], hostAttrs: [2, "display", "contents"], inputs: { at: "at", initial: "initial", resolved: "resolved", existing: "existing", locale: "locale" }, outputs: { commit: "commit", close: "close", resolve: "resolve", delete: "delete" }, features: [i0.ɵɵNgOnChangesFeature], decls: 8, vars: 9, consts: [["role", "dialog", "bmFocusTrap", "", 1, "bm-wb__comment-thread", 3, "pointerdown", "ngStyle", "bmFocusTrapOnEscape", "bmFocusTrapModal"], [1, "bm-wb__comment-input", 3, "input", "value"], [1, "bm-wb__comment-actions"], ["type", "button", "class", "bm-wb__btn", 3, "click", 4, "ngIf"], [2, "flex", "1"], ["type", "button", 1, "bm-wb__tool", "bm-wb__tool--active", 3, "click"], ["type", "button", 1, "bm-wb__btn", 3, "click"]], template: function CommentThreadComponent_Template(rf, ctx) { if (rf & 1) {
77
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CommentThreadComponent, selectors: [["bm-wb-comment-thread"]], hostAttrs: [2, "display", "contents"], inputs: { at: "at", initial: "initial", identity: "identity", resolved: "resolved", existing: "existing", locale: "locale" }, outputs: { commit: "commit", close: "close", resolve: "resolve", delete: "delete" }, features: [i0.ɵɵNgOnChangesFeature], decls: 8, vars: 9, consts: [["role", "dialog", "bmFocusTrap", "", 1, "bm-wb__comment-thread", 3, "pointerdown", "ngStyle", "bmFocusTrapOnEscape", "bmFocusTrapModal"], [1, "bm-wb__comment-input", 3, "input", "value"], [1, "bm-wb__comment-actions"], ["type", "button", "class", "bm-wb__btn", 3, "click", 4, "ngIf"], [2, "flex", "1"], ["type", "button", 1, "bm-wb__tool", "bm-wb__tool--active", 3, "click"], ["type", "button", 1, "bm-wb__btn", 3, "click"]], template: function CommentThreadComponent_Template(rf, ctx) { if (rf & 1) {
65
78
  i0.ɵɵelementStart(0, "div", 0);
66
79
  i0.ɵɵlistener("pointerdown", function CommentThreadComponent_Template_div_pointerdown_0_listener($event) { return ctx.stop($event); });
67
80
  i0.ɵɵelementStart(1, "textarea", 1);
@@ -118,6 +131,8 @@ export class CommentThreadComponent {
118
131
  args: [{ required: true }]
119
132
  }], initial: [{
120
133
  type: Input
134
+ }], identity: [{
135
+ type: Input
121
136
  }], resolved: [{
122
137
  type: Input
123
138
  }], existing: [{
@@ -1 +1 @@
1
- {"version":3,"file":"CommentThread.js","sourceRoot":"","sources":["../../src/components/CommentThread.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CommentThread.js","sourceRoot":"","sources":["../../src/components/CommentThread.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TransformHandles.d.ts","sourceRoot":"","sources":["../../src/components/TransformHandles.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAA2B,MAAM,eAAe,CAAC;AAEhG,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;;AAI5E,kFAAkF;AAClF,MAAM,WAAW,YAAY;IAAG,MAAM,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,YAAY,CAAC;CAAE;AAE5E;;;;;;GAMG;AACH,qBAiBa,yBAAyB;IACT,IAAI,EAAG,SAAS,CAAC;IAClC,MAAM,6BAAoC;IAC1C,MAAM,6BAAoC;IAEpD,QAAQ,CAAC,OAAO,0BAAW;IAE3B,IAAI,CAAC,6CAA8B;IAEnC,IAAI,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CASjD;IAED,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY;yCApB3C,yBAAyB;2CAAzB,yBAAyB;CAuBrC"}
1
+ {"version":3,"file":"TransformHandles.d.ts","sourceRoot":"","sources":["../../src/components/TransformHandles.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAA2B,MAAM,eAAe,CAAC;AAEhG,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;;AAI5E,kFAAkF;AAClF,MAAM,WAAW,YAAY;IAAG,MAAM,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,YAAY,CAAC;CAAE;AAE5E;;;;;;GAMG;AACH,qBAkBa,yBAAyB;IACT,IAAI,EAAG,SAAS,CAAC;IAClC,MAAM,6BAAoC;IAC1C,MAAM,6BAAoC;IAEpD,QAAQ,CAAC,OAAO,0BAAW;IAE3B,IAAI,CAAC,6CAA8B;IAEnC,IAAI,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CASjD;IAED,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY;yCApB3C,yBAAyB;2CAAzB,yBAAyB;CAuBrC"}
@@ -40,7 +40,7 @@ export class TransformHandlesComponent {
40
40
  this.resize.emit({ handle, event });
41
41
  }
42
42
  static ɵfac = function TransformHandlesComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TransformHandlesComponent)(); };
43
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TransformHandlesComponent, selectors: [["bm-wb-transform-handles"]], hostAttrs: [2, "display", "contents"], inputs: { view: "view" }, outputs: { resize: "resize", rotate: "rotate" }, decls: 3, vars: 2, consts: [["data-testid", "wb-handles", 1, "bm-wb__handles", 3, "ngStyle"], ["data-rotate", "", 1, "bm-wb__rotate", 3, "pointerdown"], [3, "class", "pointerdown", 4, "ngFor", "ngForOf"], [3, "pointerdown"]], template: function TransformHandlesComponent_Template(rf, ctx) { if (rf & 1) {
43
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TransformHandlesComponent, selectors: [["bm-wb-transform-handles"]], hostAttrs: [2, "display", "contents"], inputs: { view: "view" }, outputs: { resize: "resize", rotate: "rotate" }, decls: 3, vars: 2, consts: [["data-testid", "wb-handles", "aria-hidden", "true", 1, "bm-wb__handles", 3, "ngStyle"], ["data-rotate", "", 1, "bm-wb__rotate", 3, "pointerdown"], [3, "class", "pointerdown", 4, "ngFor", "ngForOf"], [3, "pointerdown"]], template: function TransformHandlesComponent_Template(rf, ctx) { if (rf & 1) {
44
44
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1);
45
45
  i0.ɵɵlistener("pointerdown", function TransformHandlesComponent_Template_div_pointerdown_1_listener($event) { return ctx.rotate.emit($event); });
46
46
  i0.ɵɵelementEnd();
@@ -61,7 +61,8 @@ export class TransformHandlesComponent {
61
61
  imports: [CommonModule],
62
62
  changeDetection: ChangeDetectionStrategy.OnPush,
63
63
  template: `
64
- <div class="bm-wb__handles" [ngStyle]="boxStyle" data-testid="wb-handles">
64
+ <!-- aria-hidden (mcp-78): POINTER affordances only — unnamed, roleless, no tab stop. The keyboard reaches resize/rotate through Shift+Arrow / Alt+Arrow on the board, so exposing eight anonymous divs would add noise, not access. -->
65
+ <div class="bm-wb__handles" [ngStyle]="boxStyle" data-testid="wb-handles" aria-hidden="true">
65
66
  <div class="bm-wb__rotate" data-rotate (pointerdown)="rotate.emit($event)"></div>
66
67
  <div
67
68
  *ngFor="let h of handles"
@@ -79,5 +80,5 @@ export class TransformHandlesComponent {
79
80
  }], rotate: [{
80
81
  type: Output
81
82
  }] }); })();
82
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TransformHandlesComponent, { className: "TransformHandlesComponent", filePath: "components/transformhandles.ts", lineNumber: 34 }); })();
83
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TransformHandlesComponent, { className: "TransformHandlesComponent", filePath: "components/transformhandles.ts", lineNumber: 35 }); })();
83
84
  //# sourceMappingURL=TransformHandles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TransformHandles.js","sourceRoot":"","sources":["../../src/components/TransformHandles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAChG,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;;;;;IAwBzC,8BAI0C;IAAxC,2NAAe,iCAAuB,KAAC;IAAC,iBAAM;;;IAF9C,qDAA6C;;;AAvBrD,MAAM,OAAO,GAA4B,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AAKtF;;;;;;GAMG;AAkBH,MAAM,OAAO,yBAAyB;IACT,IAAI,CAAa;IAClC,MAAM,GAAG,IAAI,YAAY,EAAgB,CAAC;IAC1C,MAAM,GAAG,IAAI,YAAY,EAAgB,CAAC;IAE3C,OAAO,GAAG,OAAO,CAAC;IAE3B,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAEnC,IAAI,QAAQ;QACV,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QACjB,OAAO;YACL,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI;YAChB,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI;YACf,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI;YACrB,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,IAAI;YACvB,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,CAAC,SAAS;SAC/D,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,MAAoB,EAAE,KAAmB;QACpD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACtC,CAAC;mHAtBU,yBAAyB;6DAAzB,yBAAyB;YAThC,AADF,8BAA0E,aACG;YAApC,qHAAe,uBAAmB,IAAC;YAAC,iBAAM;YACjF,0EAI0C;YAC5C,iBAAM;;YAPsB,sCAAoB;YAG9B,eAAU;YAAV,qCAAU;4BANpB,YAAY;;iFAaX,yBAAyB;cAjBrC,SAAS;eAAC;gBACT,QAAQ,EAAE,yBAAyB;gBACnC,UAAU,EAAE,IAAI;gBAChB,IAAI,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE;gBACpC,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,eAAe,EAAE,uBAAuB,CAAC,MAAM;gBAC/C,QAAQ,EAAE;;;;;;;;;GAST;aACF;gBAE4B,IAAI;kBAA9B,KAAK;mBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;YACf,MAAM;kBAAf,MAAM;YACG,MAAM;kBAAf,MAAM;;kFAHI,yBAAyB"}
1
+ {"version":3,"file":"TransformHandles.js","sourceRoot":"","sources":["../../src/components/TransformHandles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAChG,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;;;;;IAyBzC,8BAI0C;IAAxC,2NAAe,iCAAuB,KAAC;IAAC,iBAAM;;;IAF9C,qDAA6C;;;AAxBrD,MAAM,OAAO,GAA4B,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AAKtF;;;;;;GAMG;AAmBH,MAAM,OAAO,yBAAyB;IACT,IAAI,CAAa;IAClC,MAAM,GAAG,IAAI,YAAY,EAAgB,CAAC;IAC1C,MAAM,GAAG,IAAI,YAAY,EAAgB,CAAC;IAE3C,OAAO,GAAG,OAAO,CAAC;IAE3B,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAEnC,IAAI,QAAQ;QACV,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QACjB,OAAO;YACL,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI;YAChB,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI;YACf,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI;YACrB,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,IAAI;YACvB,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,CAAC,SAAS;SAC/D,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,MAAoB,EAAE,KAAmB;QACpD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACtC,CAAC;mHAtBU,yBAAyB;6DAAzB,yBAAyB;YAThC,AADF,8BAA6F,aAChB;YAApC,qHAAe,uBAAmB,IAAC;YAAC,iBAAM;YACjF,0EAI0C;YAC5C,iBAAM;;YAPsB,sCAAoB;YAG9B,eAAU;YAAV,qCAAU;4BAPpB,YAAY;;iFAcX,yBAAyB;cAlBrC,SAAS;eAAC;gBACT,QAAQ,EAAE,yBAAyB;gBACnC,UAAU,EAAE,IAAI;gBAChB,IAAI,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE;gBACpC,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,eAAe,EAAE,uBAAuB,CAAC,MAAM;gBAC/C,QAAQ,EAAE;;;;;;;;;;GAUT;aACF;gBAE4B,IAAI;kBAA9B,KAAK;mBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;YACf,MAAM;kBAAf,MAAM;YACG,MAAM;kBAAf,MAAM;;kFAHI,yBAAyB"}
@@ -83,7 +83,8 @@ export declare class WhiteboardComponent implements OnInit, AfterViewInit, OnDes
83
83
  private unsub?;
84
84
  private zone;
85
85
  private resizeObserver?;
86
- readonly tools: readonly {
86
+ /** mcp-64: im View-Only bleiben nur select/laser. */
87
+ get tools(): readonly {
87
88
  id: Tool;
88
89
  glyph: string;
89
90
  }[];
@@ -95,13 +96,20 @@ export declare class WhiteboardComponent implements OnInit, AfterViewInit, OnDes
95
96
  axis: DistributeAxis;
96
97
  glyph: string;
97
98
  }[];
99
+ private readonly instance;
98
100
  readonly arrowId: string;
101
+ readonly uid: string;
99
102
  readonly markerUrl: string;
103
+ /** The shared id formula — never a per-stack string concat. */
104
+ shapeDomId(shapeId: string): string;
105
+ /** aria-activedescendant for the board: the controller publishes the id ONLY while
106
+ * that shape is rendered (shapes are culled), so this can never dangle. */
107
+ activeDescendantDomId(): string | null;
100
108
  get ctrl(): WhiteboardController;
101
109
  get snapshot(): WhiteboardControllerSnapshot;
102
110
  get viewport(): import("@bimetal/whiteboard-headless").Viewport;
103
111
  get activeTool(): Tool;
104
- get cfg(): import("@bimetal/whiteboard-headless").WhiteboardConfig;
112
+ get cfg(): Readonly<import("@bimetal/whiteboard-headless").WhiteboardConfig>;
105
113
  get locale(): WhiteboardLocale;
106
114
  get zoomPct(): number;
107
115
  get viewportClass(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"Whiteboard.d.ts","sourceRoot":"","sources":["../../src/components/Whiteboard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Whiteboard.d.ts","sourceRoot":"","sources":["../../src/components/Whiteboard.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { Component, Input, ViewChild, ElementRef, ChangeDetectionStrategy, NgZone, inject, signal, } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
- import { screenToBoard, boardToScreen, WHITEBOARD_TOOLS, WHITEBOARD_ALIGN, WHITEBOARD_DISTRIBUTE, whiteboardConnectorPath, whiteboardDrawPath, whiteboardDashArray, whiteboardCommentAnchor, } from '@bimetal/whiteboard-headless';
3
+ import { screenToBoard, boardToScreen, WHITEBOARD_TOOLS, WHITEBOARD_ALIGN, WHITEBOARD_DISTRIBUTE, whiteboardConnectorPath, whiteboardDrawPath, whiteboardDashArray, whiteboardCommentAnchor, whiteboardShapeDomId, reportUnroutedWhiteboardError, } from '@bimetal/whiteboard-headless';
4
4
  import { createWhiteboardControllerBinding } from '@bimetal/angular';
5
5
  import { WhiteboardShapeComponent } from './WhiteboardShape.js';
6
6
  import { TransformHandlesComponent } from './TransformHandles.js';
@@ -13,7 +13,7 @@ import * as i1 from "@angular/common";
13
13
  const _c0 = ["viewportRef"];
14
14
  function WhiteboardComponent_button_2_Template(rf, ctx) { if (rf & 1) {
15
15
  const _r2 = i0.ɵɵgetCurrentView();
16
- i0.ɵɵelementStart(0, "button", 36);
16
+ i0.ɵɵelementStart(0, "button", 31);
17
17
  i0.ɵɵlistener("click", function WhiteboardComponent_button_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onUndo()); });
18
18
  i0.ɵɵtext(1, "\u21B6");
19
19
  i0.ɵɵelementEnd();
@@ -24,7 +24,7 @@ function WhiteboardComponent_button_2_Template(rf, ctx) { if (rf & 1) {
24
24
  } }
25
25
  function WhiteboardComponent_button_3_Template(rf, ctx) { if (rf & 1) {
26
26
  const _r4 = i0.ɵɵgetCurrentView();
27
- i0.ɵɵelementStart(0, "button", 37);
27
+ i0.ɵɵelementStart(0, "button", 32);
28
28
  i0.ɵɵlistener("click", function WhiteboardComponent_button_3_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onRedo()); });
29
29
  i0.ɵɵtext(1, "\u21B7");
30
30
  i0.ɵɵelementEnd();
@@ -38,7 +38,7 @@ function WhiteboardComponent_span_4_Template(rf, ctx) { if (rf & 1) {
38
38
  } }
39
39
  function WhiteboardComponent_button_5_Template(rf, ctx) { if (rf & 1) {
40
40
  const _r5 = i0.ɵɵgetCurrentView();
41
- i0.ɵɵelementStart(0, "button", 38);
41
+ i0.ɵɵelementStart(0, "button", 33);
42
42
  i0.ɵɵlistener("click", function WhiteboardComponent_button_5_Template_button_click_0_listener() { const t_r6 = i0.ɵɵrestoreView(_r5).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onTool(t_r6.id)); });
43
43
  i0.ɵɵtext(1);
44
44
  i0.ɵɵelementEnd();
@@ -50,175 +50,240 @@ function WhiteboardComponent_button_5_Template(rf, ctx) { if (rf & 1) {
50
50
  i0.ɵɵadvance();
51
51
  i0.ɵɵtextInterpolate(t_r6.glyph);
52
52
  } }
53
- function WhiteboardComponent_button_22_Template(rf, ctx) { if (rf & 1) {
54
- const _r7 = i0.ɵɵgetCurrentView();
55
- i0.ɵɵelementStart(0, "button", 8);
56
- i0.ɵɵlistener("click", function WhiteboardComponent_button_22_Template_button_click_0_listener() { const a_r8 = i0.ɵɵrestoreView(_r7).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onAlign(a_r8.edge)); });
53
+ function WhiteboardComponent_ng_container_7_button_16_Template(rf, ctx) { if (rf & 1) {
54
+ const _r8 = i0.ɵɵgetCurrentView();
55
+ i0.ɵɵelementStart(0, "button", 34);
56
+ i0.ɵɵlistener("click", function WhiteboardComponent_ng_container_7_button_16_Template_button_click_0_listener() { const a_r9 = i0.ɵɵrestoreView(_r8).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onAlign(a_r9.edge)); });
57
57
  i0.ɵɵtext(1);
58
58
  i0.ɵɵelementEnd();
59
59
  } if (rf & 2) {
60
- const a_r8 = ctx.$implicit;
61
- const ctx_r2 = i0.ɵɵnextContext();
60
+ const a_r9 = ctx.$implicit;
61
+ const ctx_r2 = i0.ɵɵnextContext(2);
62
62
  i0.ɵɵproperty("disabled", !ctx_r2.canAlign);
63
- i0.ɵɵattribute("title", ctx_r2.locale.alignLabels[a_r8.edge])("data-align", a_r8.edge);
63
+ i0.ɵɵattribute("title", ctx_r2.locale.alignLabels[a_r9.edge])("data-align", a_r9.edge);
64
64
  i0.ɵɵadvance();
65
- i0.ɵɵtextInterpolate(a_r8.glyph);
65
+ i0.ɵɵtextInterpolate(a_r9.glyph);
66
66
  } }
67
- function WhiteboardComponent_button_23_Template(rf, ctx) { if (rf & 1) {
68
- const _r9 = i0.ɵɵgetCurrentView();
69
- i0.ɵɵelementStart(0, "button", 8);
70
- i0.ɵɵlistener("click", function WhiteboardComponent_button_23_Template_button_click_0_listener() { const d_r10 = i0.ɵɵrestoreView(_r9).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onDistribute(d_r10.axis)); });
67
+ function WhiteboardComponent_ng_container_7_button_17_Template(rf, ctx) { if (rf & 1) {
68
+ const _r10 = i0.ɵɵgetCurrentView();
69
+ i0.ɵɵelementStart(0, "button", 34);
70
+ i0.ɵɵlistener("click", function WhiteboardComponent_ng_container_7_button_17_Template_button_click_0_listener() { const d_r11 = i0.ɵɵrestoreView(_r10).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onDistribute(d_r11.axis)); });
71
71
  i0.ɵɵtext(1);
72
72
  i0.ɵɵelementEnd();
73
73
  } if (rf & 2) {
74
- const d_r10 = ctx.$implicit;
75
- const ctx_r2 = i0.ɵɵnextContext();
74
+ const d_r11 = ctx.$implicit;
75
+ const ctx_r2 = i0.ɵɵnextContext(2);
76
76
  i0.ɵɵproperty("disabled", !ctx_r2.canDistribute);
77
- i0.ɵɵattribute("title", ctx_r2.locale.distributeLabels[d_r10.axis])("data-distribute", d_r10.axis);
77
+ i0.ɵɵattribute("title", ctx_r2.locale.distributeLabels[d_r11.axis])("data-distribute", d_r11.axis);
78
78
  i0.ɵɵadvance();
79
- i0.ɵɵtextInterpolate(d_r10.glyph);
79
+ i0.ɵɵtextInterpolate(d_r11.glyph);
80
80
  } }
81
- function WhiteboardComponent__svg_path_36_Template(rf, ctx) { if (rf & 1) {
82
- i0.ɵɵnamespaceSVG();
83
- i0.ɵɵelement(0, "path", 39);
81
+ function WhiteboardComponent_ng_container_7_Template(rf, ctx) { if (rf & 1) {
82
+ const _r7 = i0.ɵɵgetCurrentView();
83
+ i0.ɵɵelementContainerStart(0);
84
+ i0.ɵɵelementStart(1, "button", 34);
85
+ i0.ɵɵlistener("click", function WhiteboardComponent_ng_container_7_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onBringToFront()); });
86
+ i0.ɵɵtext(2, "\u2B06");
87
+ i0.ɵɵelementEnd();
88
+ i0.ɵɵelementStart(3, "button", 34);
89
+ i0.ɵɵlistener("click", function WhiteboardComponent_ng_container_7_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onSendToBack()); });
90
+ i0.ɵɵtext(4, "\u2B07");
91
+ i0.ɵɵelementEnd();
92
+ i0.ɵɵelementStart(5, "button", 35);
93
+ i0.ɵɵlistener("click", function WhiteboardComponent_ng_container_7_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onToggleLock()); });
94
+ i0.ɵɵtext(6, "\uD83D\uDD12");
95
+ i0.ɵɵelementEnd();
96
+ i0.ɵɵelementStart(7, "button", 36);
97
+ i0.ɵɵlistener("click", function WhiteboardComponent_ng_container_7_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onGroup()); });
98
+ i0.ɵɵtext(8, "\u29C9");
99
+ i0.ɵɵelementEnd();
100
+ i0.ɵɵelementStart(9, "button", 37);
101
+ i0.ɵɵlistener("click", function WhiteboardComponent_ng_container_7_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onUngroup()); });
102
+ i0.ɵɵtext(10, "\u229F");
103
+ i0.ɵɵelementEnd();
104
+ i0.ɵɵelementStart(11, "button", 38);
105
+ i0.ɵɵlistener("click", function WhiteboardComponent_ng_container_7_Template_button_click_11_listener() { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onDuplicate()); });
106
+ i0.ɵɵtext(12, "\u29C9\u207A");
107
+ i0.ɵɵelementEnd();
108
+ i0.ɵɵelementStart(13, "button", 34);
109
+ i0.ɵɵlistener("click", function WhiteboardComponent_ng_container_7_Template_button_click_13_listener() { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onDeleteSelection()); });
110
+ i0.ɵɵtext(14, "\uD83D\uDDD1");
111
+ i0.ɵɵelementEnd();
112
+ i0.ɵɵelement(15, "span", 7);
113
+ i0.ɵɵtemplate(16, WhiteboardComponent_ng_container_7_button_16_Template, 2, 4, "button", 39)(17, WhiteboardComponent_ng_container_7_button_17_Template, 2, 4, "button", 39);
114
+ i0.ɵɵelement(18, "span", 7);
115
+ i0.ɵɵelementContainerEnd();
84
116
  } if (rf & 2) {
85
- const c_r11 = ctx.$implicit;
86
- i0.ɵɵattribute("data-connector-id", c_r11.id)("d", c_r11.d)("stroke", c_r11.stroke)("stroke-width", c_r11.strokeWidth)("stroke-dasharray", c_r11.dash)("opacity", c_r11.opacity)("marker-end", c_r11.markerEnd)("marker-start", c_r11.markerStart);
117
+ const ctx_r2 = i0.ɵɵnextContext();
118
+ i0.ɵɵadvance();
119
+ i0.ɵɵproperty("disabled", !ctx_r2.hasSel);
120
+ i0.ɵɵattribute("title", ctx_r2.locale.bringToFront);
121
+ i0.ɵɵadvance(2);
122
+ i0.ɵɵproperty("disabled", !ctx_r2.hasSel);
123
+ i0.ɵɵattribute("title", ctx_r2.locale.sendToBack);
124
+ i0.ɵɵadvance(2);
125
+ i0.ɵɵproperty("disabled", !ctx_r2.hasSel);
126
+ i0.ɵɵattribute("title", ctx_r2.locale.lock);
127
+ i0.ɵɵadvance(2);
128
+ i0.ɵɵproperty("disabled", !ctx_r2.canGroup);
129
+ i0.ɵɵattribute("title", ctx_r2.locale.group);
130
+ i0.ɵɵadvance(2);
131
+ i0.ɵɵproperty("disabled", !ctx_r2.canUngroup);
132
+ i0.ɵɵattribute("title", ctx_r2.locale.ungroup);
133
+ i0.ɵɵadvance(2);
134
+ i0.ɵɵproperty("disabled", !ctx_r2.hasSel);
135
+ i0.ɵɵattribute("title", ctx_r2.locale.duplicate);
136
+ i0.ɵɵadvance(2);
137
+ i0.ɵɵproperty("disabled", !ctx_r2.hasSel);
138
+ i0.ɵɵattribute("title", ctx_r2.locale.delete);
139
+ i0.ɵɵadvance(3);
140
+ i0.ɵɵproperty("ngForOf", ctx_r2.aligns);
141
+ i0.ɵɵadvance();
142
+ i0.ɵɵproperty("ngForOf", ctx_r2.distributes);
87
143
  } }
88
- function WhiteboardComponent__svg_path_37_Template(rf, ctx) { if (rf & 1) {
144
+ function WhiteboardComponent__svg_path_19_Template(rf, ctx) { if (rf & 1) {
89
145
  i0.ɵɵnamespaceSVG();
90
146
  i0.ɵɵelement(0, "path", 40);
147
+ } if (rf & 2) {
148
+ const c_r12 = ctx.$implicit;
149
+ i0.ɵɵattribute("data-connector-id", c_r12.id)("d", c_r12.d)("stroke", c_r12.stroke)("stroke-width", c_r12.strokeWidth)("stroke-dasharray", c_r12.dash)("opacity", c_r12.opacity)("marker-end", c_r12.markerEnd)("marker-start", c_r12.markerStart);
150
+ } }
151
+ function WhiteboardComponent__svg_path_20_Template(rf, ctx) { if (rf & 1) {
152
+ i0.ɵɵnamespaceSVG();
153
+ i0.ɵɵelement(0, "path", 41);
91
154
  } if (rf & 2) {
92
155
  const ctx_r2 = i0.ɵɵnextContext();
93
156
  i0.ɵɵattribute("d", ctx_r2.connectorPreviewD);
94
157
  } }
95
- function WhiteboardComponent__svg_path_38_Template(rf, ctx) { if (rf & 1) {
158
+ function WhiteboardComponent__svg_path_21_Template(rf, ctx) { if (rf & 1) {
96
159
  i0.ɵɵnamespaceSVG();
97
- i0.ɵɵelement(0, "path", 41);
160
+ i0.ɵɵelement(0, "path", 42);
98
161
  } if (rf & 2) {
99
162
  const ctx_r2 = i0.ɵɵnextContext();
100
163
  i0.ɵɵattribute("d", ctx_r2.drawPreviewPath);
101
164
  } }
102
- function WhiteboardComponent__svg_line_39_Template(rf, ctx) { if (rf & 1) {
165
+ function WhiteboardComponent__svg_line_22_Template(rf, ctx) { if (rf & 1) {
103
166
  i0.ɵɵnamespaceSVG();
104
- i0.ɵɵelement(0, "line", 42);
167
+ i0.ɵɵelement(0, "line", 43);
105
168
  } if (rf & 2) {
106
- const g_r12 = ctx.$implicit;
107
- i0.ɵɵattribute("data-guide-axis", g_r12.axis)("x1", g_r12.x1)("y1", g_r12.y1)("x2", g_r12.x2)("y2", g_r12.y2);
169
+ const g_r13 = ctx.$implicit;
170
+ i0.ɵɵattribute("data-guide-axis", g_r13.axis)("x1", g_r13.x1)("y1", g_r13.y1)("x2", g_r13.x2)("y2", g_r13.y2);
108
171
  } }
109
- function WhiteboardComponent_bm_wb_shape_40_Template(rf, ctx) { if (rf & 1) {
110
- const _r13 = i0.ɵɵgetCurrentView();
111
- i0.ɵɵelementStart(0, "bm-wb-shape", 43);
112
- i0.ɵɵlistener("shapePointerDown", function WhiteboardComponent_bm_wb_shape_40_Template_bm_wb_shape_shapePointerDown_0_listener($event) { const v_r14 = i0.ɵɵrestoreView(_r13).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onShapeDown(v_r14.shape.id, $event)); })("shapeDoubleClick", function WhiteboardComponent_bm_wb_shape_40_Template_bm_wb_shape_shapeDoubleClick_0_listener($event) { const v_r14 = i0.ɵɵrestoreView(_r13).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onShapeDblClick(v_r14.shape.id, $event)); });
172
+ function WhiteboardComponent_bm_wb_shape_23_Template(rf, ctx) { if (rf & 1) {
173
+ const _r14 = i0.ɵɵgetCurrentView();
174
+ i0.ɵɵelementStart(0, "bm-wb-shape", 44);
175
+ i0.ɵɵlistener("shapePointerDown", function WhiteboardComponent_bm_wb_shape_23_Template_bm_wb_shape_shapePointerDown_0_listener($event) { const v_r15 = i0.ɵɵrestoreView(_r14).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onShapeDown(v_r15.shape.id, $event)); })("shapeDoubleClick", function WhiteboardComponent_bm_wb_shape_23_Template_bm_wb_shape_shapeDoubleClick_0_listener($event) { const v_r15 = i0.ɵɵrestoreView(_r14).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onShapeDblClick(v_r15.shape.id, $event)); });
113
176
  i0.ɵɵelementEnd();
114
177
  } if (rf & 2) {
115
- const v_r14 = ctx.$implicit;
178
+ const v_r15 = ctx.$implicit;
116
179
  const ctx_r2 = i0.ɵɵnextContext();
117
- i0.ɵɵproperty("shape", v_r14.shape)("selected", v_r14.selected)("dropTarget", ctx_r2.snapshot.dropTargetId === v_r14.shape.id)("lockedLabel", ctx_r2.locale.locked);
180
+ i0.ɵɵproperty("shape", v_r15.shape)("selected", v_r15.selected)("focused", v_r15.focused)("dropTarget", ctx_r2.snapshot.dropTargetId === v_r15.shape.id)("lockedLabel", ctx_r2.locale.locked)("domId", ctx_r2.shapeDomId(v_r15.shape.id))("ariaLabel", v_r15.ariaLabel);
118
181
  } }
119
- function WhiteboardComponent_div_41_Template(rf, ctx) { if (rf & 1) {
120
- i0.ɵɵelement(0, "div", 44);
182
+ function WhiteboardComponent_div_24_Template(rf, ctx) { if (rf & 1) {
183
+ i0.ɵɵelement(0, "div", 45);
121
184
  } if (rf & 2) {
122
- const mq_r15 = ctx.ngIf;
123
- i0.ɵɵstyleProp("left", mq_r15.x, "px")("top", mq_r15.y, "px")("width", mq_r15.width, "px")("height", mq_r15.height, "px");
185
+ const mq_r16 = ctx.ngIf;
186
+ i0.ɵɵstyleProp("left", mq_r16.x, "px")("top", mq_r16.y, "px")("width", mq_r16.width, "px")("height", mq_r16.height, "px");
124
187
  } }
125
- function WhiteboardComponent_div_42_Template(rf, ctx) { if (rf & 1) {
126
- i0.ɵɵelement(0, "div", 45);
188
+ function WhiteboardComponent_div_25_Template(rf, ctx) { if (rf & 1) {
189
+ i0.ɵɵelement(0, "div", 46);
127
190
  } if (rf & 2) {
128
- const cp_r16 = ctx.ngIf;
129
- i0.ɵɵstyleProp("left", cp_r16.x, "px")("top", cp_r16.y, "px")("width", cp_r16.width, "px")("height", cp_r16.height, "px");
191
+ const cp_r17 = ctx.ngIf;
192
+ i0.ɵɵstyleProp("left", cp_r17.x, "px")("top", cp_r17.y, "px")("width", cp_r17.width, "px")("height", cp_r17.height, "px");
130
193
  } }
131
- function WhiteboardComponent_bm_wb_transform_handles_43_Template(rf, ctx) { if (rf & 1) {
132
- const _r17 = i0.ɵɵgetCurrentView();
133
- i0.ɵɵelementStart(0, "bm-wb-transform-handles", 46);
134
- i0.ɵɵlistener("resize", function WhiteboardComponent_bm_wb_transform_handles_43_Template_bm_wb_transform_handles_resize_0_listener($event) { const tv_r18 = i0.ɵɵrestoreView(_r17).ngIf; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onResizeIntent(tv_r18.shape.id, $event)); })("rotate", function WhiteboardComponent_bm_wb_transform_handles_43_Template_bm_wb_transform_handles_rotate_0_listener($event) { const tv_r18 = i0.ɵɵrestoreView(_r17).ngIf; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onRotate(tv_r18.shape.id, $event)); });
194
+ function WhiteboardComponent_bm_wb_transform_handles_26_Template(rf, ctx) { if (rf & 1) {
195
+ const _r18 = i0.ɵɵgetCurrentView();
196
+ i0.ɵɵelementStart(0, "bm-wb-transform-handles", 47);
197
+ i0.ɵɵlistener("resize", function WhiteboardComponent_bm_wb_transform_handles_26_Template_bm_wb_transform_handles_resize_0_listener($event) { const tv_r19 = i0.ɵɵrestoreView(_r18).ngIf; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onResizeIntent(tv_r19.shape.id, $event)); })("rotate", function WhiteboardComponent_bm_wb_transform_handles_26_Template_bm_wb_transform_handles_rotate_0_listener($event) { const tv_r19 = i0.ɵɵrestoreView(_r18).ngIf; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onRotate(tv_r19.shape.id, $event)); });
135
198
  i0.ɵɵelementEnd();
136
199
  } if (rf & 2) {
137
- const tv_r18 = ctx.ngIf;
138
- i0.ɵɵproperty("view", tv_r18);
200
+ const tv_r19 = ctx.ngIf;
201
+ i0.ɵɵproperty("view", tv_r19);
139
202
  } }
140
- function WhiteboardComponent_button_44_Template(rf, ctx) { if (rf & 1) {
141
- const _r19 = i0.ɵɵgetCurrentView();
142
- i0.ɵɵelementStart(0, "button", 47);
143
- i0.ɵɵlistener("pointerdown", function WhiteboardComponent_button_44_Template_button_pointerdown_0_listener($event) { i0.ɵɵrestoreView(_r19); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.stop($event)); })("click", function WhiteboardComponent_button_44_Template_button_click_0_listener($event) { const p_r20 = i0.ɵɵrestoreView(_r19).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onPinClick(p_r20.id, $event)); });
203
+ function WhiteboardComponent_button_27_Template(rf, ctx) { if (rf & 1) {
204
+ const _r20 = i0.ɵɵgetCurrentView();
205
+ i0.ɵɵelementStart(0, "button", 48);
206
+ i0.ɵɵlistener("pointerdown", function WhiteboardComponent_button_27_Template_button_pointerdown_0_listener($event) { i0.ɵɵrestoreView(_r20); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.stop($event)); })("click", function WhiteboardComponent_button_27_Template_button_click_0_listener($event) { const p_r21 = i0.ɵɵrestoreView(_r20).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onPinClick(p_r21.id, $event)); });
144
207
  i0.ɵɵtext(1);
145
208
  i0.ɵɵelementEnd();
146
209
  } if (rf & 2) {
147
- const p_r20 = ctx.$implicit;
210
+ const p_r21 = ctx.$implicit;
148
211
  const ctx_r2 = i0.ɵɵnextContext();
149
- i0.ɵɵclassMap(ctx_r2.pinClass(p_r20));
150
- i0.ɵɵstyleProp("left", p_r20.x, "px")("top", p_r20.y, "px");
151
- i0.ɵɵattribute("data-comment-id", p_r20.id)("title", p_r20.text);
212
+ i0.ɵɵclassMap(ctx_r2.pinClass(p_r21));
213
+ i0.ɵɵstyleProp("left", p_r21.x, "px")("top", p_r21.y, "px");
214
+ i0.ɵɵattribute("data-comment-id", p_r21.id)("title", p_r21.text);
152
215
  i0.ɵɵadvance();
153
- i0.ɵɵtextInterpolate(p_r20.glyph);
216
+ i0.ɵɵtextInterpolate(p_r21.glyph);
154
217
  } }
155
- function WhiteboardComponent__svg_svg_45__svg_line_1_Template(rf, ctx) { if (rf & 1) {
218
+ function WhiteboardComponent__svg_svg_28__svg_line_1_Template(rf, ctx) { if (rf & 1) {
156
219
  i0.ɵɵnamespaceSVG();
157
- i0.ɵɵelement(0, "line", 50);
220
+ i0.ɵɵelement(0, "line", 51);
158
221
  } if (rf & 2) {
159
- const seg_r21 = ctx.$implicit;
160
- i0.ɵɵattribute("x1", seg_r21.x1)("y1", seg_r21.y1)("x2", seg_r21.x2)("y2", seg_r21.y2)("stroke-opacity", seg_r21.opacity);
222
+ const seg_r22 = ctx.$implicit;
223
+ i0.ɵɵattribute("x1", seg_r22.x1)("y1", seg_r22.y1)("x2", seg_r22.x2)("y2", seg_r22.y2)("stroke-opacity", seg_r22.opacity);
161
224
  } }
162
- function WhiteboardComponent__svg_svg_45_Template(rf, ctx) { if (rf & 1) {
225
+ function WhiteboardComponent__svg_svg_28_Template(rf, ctx) { if (rf & 1) {
163
226
  i0.ɵɵnamespaceSVG();
164
- i0.ɵɵelementStart(0, "svg", 48);
165
- i0.ɵɵtemplate(1, WhiteboardComponent__svg_svg_45__svg_line_1_Template, 1, 5, "line", 49);
227
+ i0.ɵɵelementStart(0, "svg", 49);
228
+ i0.ɵɵtemplate(1, WhiteboardComponent__svg_svg_28__svg_line_1_Template, 1, 5, "line", 50);
166
229
  i0.ɵɵelementEnd();
167
230
  } if (rf & 2) {
168
- const ls_r22 = ctx.ngIf;
231
+ const ls_r23 = ctx.ngIf;
169
232
  const ctx_r2 = i0.ɵɵnextContext();
170
233
  i0.ɵɵadvance();
171
- i0.ɵɵproperty("ngForOf", ls_r22)("ngForTrackBy", ctx_r2.trackIndex);
234
+ i0.ɵɵproperty("ngForOf", ls_r23)("ngForTrackBy", ctx_r2.trackIndex);
172
235
  } }
173
- function WhiteboardComponent_bm_wb_comment_thread_46_Template(rf, ctx) { if (rf & 1) {
174
- const _r23 = i0.ɵɵgetCurrentView();
175
- i0.ɵɵelementStart(0, "bm-wb-comment-thread", 51);
176
- i0.ɵɵlistener("commit", function WhiteboardComponent_bm_wb_comment_thread_46_Template_bm_wb_comment_thread_commit_0_listener($event) { i0.ɵɵrestoreView(_r23); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onCommitDraft($event)); })("close", function WhiteboardComponent_bm_wb_comment_thread_46_Template_bm_wb_comment_thread_close_0_listener() { i0.ɵɵrestoreView(_r23); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onCancelDraft()); });
236
+ function WhiteboardComponent_bm_wb_comment_thread_29_Template(rf, ctx) { if (rf & 1) {
237
+ const _r24 = i0.ɵɵgetCurrentView();
238
+ i0.ɵɵelementStart(0, "bm-wb-comment-thread", 52);
239
+ i0.ɵɵlistener("commit", function WhiteboardComponent_bm_wb_comment_thread_29_Template_bm_wb_comment_thread_commit_0_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onCommitDraft($event)); })("close", function WhiteboardComponent_bm_wb_comment_thread_29_Template_bm_wb_comment_thread_close_0_listener() { i0.ɵɵrestoreView(_r24); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onCancelDraft()); });
177
240
  i0.ɵɵelementEnd();
178
241
  } if (rf & 2) {
179
- const at_r24 = ctx.ngIf;
242
+ const at_r25 = ctx.ngIf;
180
243
  const ctx_r2 = i0.ɵɵnextContext();
181
- i0.ɵɵproperty("at", at_r24)("initial", "")("existing", false)("resolved", false)("locale", ctx_r2.locale);
244
+ i0.ɵɵproperty("at", at_r25)("initial", "")("existing", false)("resolved", false)("locale", ctx_r2.locale);
182
245
  } }
183
- function WhiteboardComponent_bm_wb_comment_thread_47_Template(rf, ctx) { if (rf & 1) {
184
- const _r25 = i0.ɵɵgetCurrentView();
185
- i0.ɵɵelementStart(0, "bm-wb-comment-thread", 52);
186
- i0.ɵɵlistener("commit", function WhiteboardComponent_bm_wb_comment_thread_47_Template_bm_wb_comment_thread_commit_0_listener($event) { const ot_r26 = i0.ɵɵrestoreView(_r25).ngIf; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onCommitThread(ot_r26.id, $event)); })("close", function WhiteboardComponent_bm_wb_comment_thread_47_Template_bm_wb_comment_thread_close_0_listener() { i0.ɵɵrestoreView(_r25); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onCloseThread()); })("resolve", function WhiteboardComponent_bm_wb_comment_thread_47_Template_bm_wb_comment_thread_resolve_0_listener() { const ot_r26 = i0.ɵɵrestoreView(_r25).ngIf; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onResolveThread(ot_r26.id)); })("delete", function WhiteboardComponent_bm_wb_comment_thread_47_Template_bm_wb_comment_thread_delete_0_listener() { const ot_r26 = i0.ɵɵrestoreView(_r25).ngIf; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onDeleteThread(ot_r26.id)); });
246
+ function WhiteboardComponent_bm_wb_comment_thread_30_Template(rf, ctx) { if (rf & 1) {
247
+ const _r26 = i0.ɵɵgetCurrentView();
248
+ i0.ɵɵelementStart(0, "bm-wb-comment-thread", 53);
249
+ i0.ɵɵlistener("commit", function WhiteboardComponent_bm_wb_comment_thread_30_Template_bm_wb_comment_thread_commit_0_listener($event) { const ot_r27 = i0.ɵɵrestoreView(_r26).ngIf; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onCommitThread(ot_r27.id, $event)); })("close", function WhiteboardComponent_bm_wb_comment_thread_30_Template_bm_wb_comment_thread_close_0_listener() { i0.ɵɵrestoreView(_r26); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onCloseThread()); })("resolve", function WhiteboardComponent_bm_wb_comment_thread_30_Template_bm_wb_comment_thread_resolve_0_listener() { const ot_r27 = i0.ɵɵrestoreView(_r26).ngIf; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onResolveThread(ot_r27.id)); })("delete", function WhiteboardComponent_bm_wb_comment_thread_30_Template_bm_wb_comment_thread_delete_0_listener() { const ot_r27 = i0.ɵɵrestoreView(_r26).ngIf; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onDeleteThread(ot_r27.id)); });
187
250
  i0.ɵɵelementEnd();
188
251
  } if (rf & 2) {
189
- const ot_r26 = ctx.ngIf;
252
+ const ot_r27 = ctx.ngIf;
190
253
  const ctx_r2 = i0.ɵɵnextContext();
191
- i0.ɵɵproperty("at", ot_r26.at)("initial", ot_r26.text)("existing", true)("resolved", ot_r26.resolved)("locale", ctx_r2.locale);
254
+ i0.ɵɵproperty("at", ot_r27.at)("identity", ot_r27.id)("initial", ot_r27.text)("existing", true)("resolved", ot_r27.resolved)("locale", ctx_r2.locale);
192
255
  } }
193
- function WhiteboardComponent_bm_wb_style_panel_48_Template(rf, ctx) { if (rf & 1) {
194
- const _r27 = i0.ɵɵgetCurrentView();
195
- i0.ɵɵelementStart(0, "bm-wb-style-panel", 53);
196
- i0.ɵɵlistener("styleInput", function WhiteboardComponent_bm_wb_style_panel_48_Template_bm_wb_style_panel_styleInput_0_listener($event) { i0.ɵɵrestoreView(_r27); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onStyleInput($event)); });
256
+ function WhiteboardComponent_bm_wb_style_panel_31_Template(rf, ctx) { if (rf & 1) {
257
+ const _r28 = i0.ɵɵgetCurrentView();
258
+ i0.ɵɵelementStart(0, "bm-wb-style-panel", 54);
259
+ i0.ɵɵlistener("styleInput", function WhiteboardComponent_bm_wb_style_panel_31_Template_bm_wb_style_panel_styleInput_0_listener($event) { i0.ɵɵrestoreView(_r28); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onStyleInput($event)); });
197
260
  i0.ɵɵelementEnd();
198
261
  } if (rf & 2) {
199
- const ps_r28 = ctx.ngIf;
262
+ const ps_r29 = ctx.ngIf;
200
263
  const ctx_r2 = i0.ɵɵnextContext();
201
- i0.ɵɵstyleMap(ps_r28);
264
+ i0.ɵɵstyleMap(ps_r29);
202
265
  i0.ɵɵproperty("locale", ctx_r2.locale);
203
266
  } }
204
- function WhiteboardComponent_div_49_Template(rf, ctx) { if (rf & 1) {
205
- i0.ɵɵelementStart(0, "div", 54)(1, "span");
267
+ function WhiteboardComponent_div_32_Template(rf, ctx) { if (rf & 1) {
268
+ i0.ɵɵelementStart(0, "div")(1, "span");
206
269
  i0.ɵɵtext(2);
207
270
  i0.ɵɵelementEnd()();
208
271
  } if (rf & 2) {
209
- const u_r29 = ctx.ngIf;
272
+ const u_r30 = ctx.ngIf;
273
+ i0.ɵɵclassMap("bm-wb__toast" + (u_r30.kind === "error" ? " bm-wb__toast--error" : ""));
274
+ i0.ɵɵattribute("role", u_r30.kind === "error" ? "alert" : "status");
210
275
  i0.ɵɵadvance(2);
211
- i0.ɵɵtextInterpolate(u_r29.description);
276
+ i0.ɵɵtextInterpolate(u_r30.description);
212
277
  } }
213
- function WhiteboardComponent_bm_wb_text_dialog_50_Template(rf, ctx) { if (rf & 1) {
214
- const _r30 = i0.ɵɵgetCurrentView();
278
+ function WhiteboardComponent_bm_wb_text_dialog_33_Template(rf, ctx) { if (rf & 1) {
279
+ const _r31 = i0.ɵɵgetCurrentView();
215
280
  i0.ɵɵelementStart(0, "bm-wb-text-dialog", 55);
216
- i0.ɵɵlistener("save", function WhiteboardComponent_bm_wb_text_dialog_50_Template_bm_wb_text_dialog_save_0_listener($event) { i0.ɵɵrestoreView(_r30); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onSaveShape($event)); })("close", function WhiteboardComponent_bm_wb_text_dialog_50_Template_bm_wb_text_dialog_close_0_listener() { i0.ɵɵrestoreView(_r30); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onCloseDialog()); })("delete", function WhiteboardComponent_bm_wb_text_dialog_50_Template_bm_wb_text_dialog_delete_0_listener() { const ds_r31 = i0.ɵɵrestoreView(_r30).ngIf; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onDeleteShape(ds_r31.id)); });
281
+ i0.ɵɵlistener("save", function WhiteboardComponent_bm_wb_text_dialog_33_Template_bm_wb_text_dialog_save_0_listener($event) { i0.ɵɵrestoreView(_r31); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onSaveShape($event)); })("close", function WhiteboardComponent_bm_wb_text_dialog_33_Template_bm_wb_text_dialog_close_0_listener() { i0.ɵɵrestoreView(_r31); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onCloseDialog()); })("delete", function WhiteboardComponent_bm_wb_text_dialog_33_Template_bm_wb_text_dialog_delete_0_listener() { const ds_r32 = i0.ɵɵrestoreView(_r31).ngIf; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onDeleteShape(ds_r32.id)); });
217
282
  i0.ɵɵelementEnd();
218
283
  } if (rf & 2) {
219
- const ds_r31 = ctx.ngIf;
284
+ const ds_r32 = ctx.ngIf;
220
285
  const ctx_r2 = i0.ɵɵnextContext();
221
- i0.ɵɵproperty("initial", ds_r31.text)("locale", ctx_r2.locale);
286
+ i0.ɵɵproperty("initial", ds_r32.text)("locale", ctx_r2.locale);
222
287
  } }
223
288
  /** Per-instance SVG marker id counter — document-global ids would collide across
224
289
  * two mounted boards and `url(#…)` would resolve to the wrong marker. */
@@ -257,11 +322,24 @@ export class WhiteboardComponent {
257
322
  unsub;
258
323
  zone = inject(NgZone, { optional: true }) ?? undefined;
259
324
  resizeObserver;
260
- tools = WHITEBOARD_TOOLS;
325
+ /** mcp-64: im View-Only bleiben nur select/laser. */
326
+ get tools() { return this.snapshot.config.readOnly ? WHITEBOARD_TOOLS.filter(t => t.id === 'select' || t.id === 'laser') : WHITEBOARD_TOOLS; }
261
327
  aligns = WHITEBOARD_ALIGN;
262
328
  distributes = WHITEBOARD_DISTRIBUTE;
263
- arrowId = `bm-wb-arrow-${wbMarkerSeq++}`;
329
+ // One instance token worn by every id this board mints: the arrow marker (existing
330
+ // shape, unchanged) and the shapes (mcp-78).
331
+ instance = wbMarkerSeq++;
332
+ arrowId = `bm-wb-arrow-${this.instance}`;
333
+ uid = `bm-wb-${this.instance}`;
264
334
  markerUrl = `url(#${this.arrowId})`;
335
+ /** The shared id formula — never a per-stack string concat. */
336
+ shapeDomId(shapeId) { return whiteboardShapeDomId(this.uid, shapeId); }
337
+ /** aria-activedescendant for the board: the controller publishes the id ONLY while
338
+ * that shape is rendered (shapes are culled), so this can never dangle. */
339
+ activeDescendantDomId() {
340
+ const id = this.snapshot.activeDescendantId;
341
+ return id ? this.shapeDomId(id) : null;
342
+ }
265
343
  get ctrl() { return this.ctrlRef; }
266
344
  get snapshot() { return this.snapshotSig(); }
267
345
  get viewport() { return this.snapshot.viewport; }
@@ -430,13 +508,15 @@ export class WhiteboardComponent {
430
508
  this.snapshotSig = sig;
431
509
  }
432
510
  else {
433
- this.binding = createWhiteboardControllerBinding({
511
+ // bimetal-181: der GETTER ist die Aussage — die Pfeilfunktion liest `this` bei
512
+ // jedem Callback-Aufruf erneut, statt den Stand von ngOnInit festzunageln.
513
+ this.binding = createWhiteboardControllerBinding(() => ({
434
514
  store: this.store,
435
515
  canvasId: this.canvasId,
436
516
  config: this.config,
437
- onError: (err) => this.onError?.(err),
517
+ onError: (err) => (this.onError ?? reportUnroutedWhiteboardError)(err),
438
518
  onSelectionChange: this.onSelectionChange,
439
- }, this.zone);
519
+ }), this.zone);
440
520
  this.ctrlRef = this.binding.ctrl;
441
521
  this.snapshotSig = this.binding.snapshot;
442
522
  }
@@ -531,7 +611,9 @@ export class WhiteboardComponent {
531
611
  }
532
612
  onKeydown(e) {
533
613
  this.ctrl.handleKeydown({
534
- key: e.key, ctrlKey: e.ctrlKey, metaKey: e.metaKey, shiftKey: e.shiftKey,
614
+ key: e.key, ctrlKey: e.ctrlKey, metaKey: e.metaKey, shiftKey: e.shiftKey, altKey: e.altKey,
615
+ // isSelfTarget (mcp-78 review R1): the toolbar lives inside this root, so its buttons' keystrokes bubble here. Without this the scene keys swallowed Tab/Enter/Space for every button in the component.
616
+ isSelfTarget: e.target === e.currentTarget,
535
617
  isEditable: isEditableTarget(e.target), preventDefault: () => e.preventDefault(),
536
618
  });
537
619
  }
@@ -573,103 +655,50 @@ export class WhiteboardComponent {
573
655
  } if (rf & 2) {
574
656
  let _t;
575
657
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.viewportRef = _t.first);
576
- } }, hostAttrs: [2, "display", "block", "width", "100%", "height", "100%"], inputs: { controller: "controller", store: "store", canvasId: "canvasId", config: "config", darkMode: "darkMode", dir: "dir", showUndoRedo: "showUndoRedo", onError: "onError", onSelectionChange: "onSelectionChange" }, features: [i0.ɵɵNgOnChangesFeature], decls: 51, vars: 50, consts: [["viewportRef", ""], ["role", "application", "tabindex", "0", 1, "bm-wb", 3, "keydown"], [1, "bm-wb__toolbar"], ["type", "button", "class", "bm-wb__btn bm-wb__btn--undo", 3, "disabled", "click", 4, "ngIf"], ["type", "button", "class", "bm-wb__btn bm-wb__btn--redo", 3, "disabled", "click", 4, "ngIf"], ["class", "bm-wb__toolbar-sep", 4, "ngIf"], ["type", "button", 3, "class", "click", 4, "ngFor", "ngForOf"], [1, "bm-wb__toolbar-sep"], ["type", "button", 1, "bm-wb__btn", 3, "click", "disabled"], ["type", "button", 1, "bm-wb__btn", "bm-wb__lock-btn", 3, "click", "disabled"], ["type", "button", "data-action", "group", 1, "bm-wb__btn", 3, "click", "disabled"], ["type", "button", "data-action", "ungroup", 1, "bm-wb__btn", 3, "click", "disabled"], ["type", "button", "data-action", "duplicate", 1, "bm-wb__btn", 3, "click", "disabled"], ["type", "button", "class", "bm-wb__btn", 3, "disabled", "click", 4, "ngFor", "ngForOf"], ["type", "button", 1, "bm-wb__btn", 3, "click"], [1, "bm-wb__toolbar-zoom"], ["data-testid", "wb-viewport", 3, "pointerdown", "ngStyle"], [1, "bm-wb__scene"], ["data-testid", "wb-connectors", 1, "bm-wb__connectors"], ["markerWidth", "8", "markerHeight", "8", "refX", "7", "refY", "4", "orient", "auto"], ["d", "M0,0 L7,4 L0,8 Z", "fill", "context-stroke"], ["class", "bm-wb__connector", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["class", "bm-wb__connector-preview", 4, "ngIf"], ["class", "bm-wb__draw-preview", "data-testid", "wb-draw-preview", 4, "ngIf"], ["class", "bm-wb__guide", 4, "ngFor", "ngForOf", "ngForTrackBy"], [3, "shape", "selected", "dropTarget", "lockedLabel", "shapePointerDown", "shapeDoubleClick", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["class", "bm-wb__marquee", 3, "left", "top", "width", "height", 4, "ngIf"], ["class", "bm-wb__create-preview", 3, "left", "top", "width", "height", 4, "ngIf"], [3, "view", "resize", "rotate", 4, "ngIf"], ["type", "button", 3, "class", "left", "top", "pointerdown", "click", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["class", "bm-wb__laser-layer", "data-testid", "wb-laser-layer", 4, "ngIf"], [3, "at", "initial", "existing", "resolved", "locale", "commit", "close", 4, "ngIf"], [3, "at", "initial", "existing", "resolved", "locale", "commit", "close", "resolve", "delete", 4, "ngIf"], [3, "style", "locale", "styleInput", 4, "ngIf"], ["class", "bm-wb__toast", "role", "status", 4, "ngIf"], [3, "initial", "locale", "save", "close", "delete", 4, "ngIf"], ["type", "button", 1, "bm-wb__btn", "bm-wb__btn--undo", 3, "click", "disabled"], ["type", "button", 1, "bm-wb__btn", "bm-wb__btn--redo", 3, "click", "disabled"], ["type", "button", 3, "click"], [1, "bm-wb__connector"], [1, "bm-wb__connector-preview"], ["data-testid", "wb-draw-preview", 1, "bm-wb__draw-preview"], [1, "bm-wb__guide"], [3, "shapePointerDown", "shapeDoubleClick", "shape", "selected", "dropTarget", "lockedLabel"], [1, "bm-wb__marquee"], [1, "bm-wb__create-preview"], [3, "resize", "rotate", "view"], ["type", "button", 3, "pointerdown", "click"], ["data-testid", "wb-laser-layer", 1, "bm-wb__laser-layer"], ["class", "bm-wb__laser", "data-testid", "wb-laser", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["data-testid", "wb-laser", 1, "bm-wb__laser"], [3, "commit", "close", "at", "initial", "existing", "resolved", "locale"], [3, "commit", "close", "resolve", "delete", "at", "initial", "existing", "resolved", "locale"], [3, "styleInput", "locale"], ["role", "status", 1, "bm-wb__toast"], [3, "save", "close", "delete", "initial", "locale"]], template: function WhiteboardComponent_Template(rf, ctx) { if (rf & 1) {
658
+ } }, hostAttrs: [2, "display", "block", "width", "100%", "height", "100%"], inputs: { controller: "controller", store: "store", canvasId: "canvasId", config: "config", darkMode: "darkMode", dir: "dir", showUndoRedo: "showUndoRedo", onError: "onError", onSelectionChange: "onSelectionChange" }, features: [i0.ɵɵNgOnChangesFeature], decls: 34, vars: 36, consts: [["viewportRef", ""], ["role", "application", "tabindex", "0", 1, "bm-wb", 3, "keydown"], [1, "bm-wb__toolbar"], ["type", "button", "class", "bm-wb__btn bm-wb__btn--undo", 3, "disabled", "click", 4, "ngIf"], ["type", "button", "class", "bm-wb__btn bm-wb__btn--redo", 3, "disabled", "click", 4, "ngIf"], ["class", "bm-wb__toolbar-sep", 4, "ngIf"], ["type", "button", 3, "class", "click", 4, "ngFor", "ngForOf"], [1, "bm-wb__toolbar-sep"], [4, "ngIf"], ["type", "button", 1, "bm-wb__btn", 3, "click"], [1, "bm-wb__toolbar-zoom"], ["data-testid", "wb-viewport", 3, "pointerdown", "ngStyle"], [1, "bm-wb__scene"], ["data-testid", "wb-connectors", 1, "bm-wb__connectors"], ["markerWidth", "8", "markerHeight", "8", "refX", "7", "refY", "4", "orient", "auto"], ["d", "M0,0 L7,4 L0,8 Z", "fill", "context-stroke"], ["class", "bm-wb__connector", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["class", "bm-wb__connector-preview", 4, "ngIf"], ["class", "bm-wb__draw-preview", "data-testid", "wb-draw-preview", 4, "ngIf"], ["class", "bm-wb__guide", 4, "ngFor", "ngForOf", "ngForTrackBy"], [3, "shape", "selected", "focused", "dropTarget", "lockedLabel", "domId", "ariaLabel", "shapePointerDown", "shapeDoubleClick", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["class", "bm-wb__marquee", 3, "left", "top", "width", "height", 4, "ngIf"], ["class", "bm-wb__create-preview", 3, "left", "top", "width", "height", 4, "ngIf"], [3, "view", "resize", "rotate", 4, "ngIf"], ["type", "button", 3, "class", "left", "top", "pointerdown", "click", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["class", "bm-wb__laser-layer", "data-testid", "wb-laser-layer", 4, "ngIf"], [3, "at", "initial", "existing", "resolved", "locale", "commit", "close", 4, "ngIf"], [3, "at", "identity", "initial", "existing", "resolved", "locale", "commit", "close", "resolve", "delete", 4, "ngIf"], [3, "style", "locale", "styleInput", 4, "ngIf"], [3, "class", 4, "ngIf"], [3, "initial", "locale", "save", "close", "delete", 4, "ngIf"], ["type", "button", 1, "bm-wb__btn", "bm-wb__btn--undo", 3, "click", "disabled"], ["type", "button", 1, "bm-wb__btn", "bm-wb__btn--redo", 3, "click", "disabled"], ["type", "button", 3, "click"], ["type", "button", 1, "bm-wb__btn", 3, "click", "disabled"], ["type", "button", 1, "bm-wb__btn", "bm-wb__lock-btn", 3, "click", "disabled"], ["type", "button", "data-action", "group", 1, "bm-wb__btn", 3, "click", "disabled"], ["type", "button", "data-action", "ungroup", 1, "bm-wb__btn", 3, "click", "disabled"], ["type", "button", "data-action", "duplicate", 1, "bm-wb__btn", 3, "click", "disabled"], ["type", "button", "class", "bm-wb__btn", 3, "disabled", "click", 4, "ngFor", "ngForOf"], [1, "bm-wb__connector"], [1, "bm-wb__connector-preview"], ["data-testid", "wb-draw-preview", 1, "bm-wb__draw-preview"], [1, "bm-wb__guide"], [3, "shapePointerDown", "shapeDoubleClick", "shape", "selected", "focused", "dropTarget", "lockedLabel", "domId", "ariaLabel"], [1, "bm-wb__marquee"], [1, "bm-wb__create-preview"], [3, "resize", "rotate", "view"], ["type", "button", 3, "pointerdown", "click"], ["data-testid", "wb-laser-layer", 1, "bm-wb__laser-layer"], ["class", "bm-wb__laser", "data-testid", "wb-laser", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["data-testid", "wb-laser", 1, "bm-wb__laser"], [3, "commit", "close", "at", "initial", "existing", "resolved", "locale"], [3, "commit", "close", "resolve", "delete", "at", "identity", "initial", "existing", "resolved", "locale"], [3, "styleInput", "locale"], [3, "save", "close", "delete", "initial", "locale"]], template: function WhiteboardComponent_Template(rf, ctx) { if (rf & 1) {
577
659
  const _r1 = i0.ɵɵgetCurrentView();
578
660
  i0.ɵɵelementStart(0, "div", 1);
579
661
  i0.ɵɵlistener("keydown", function WhiteboardComponent_Template_div_keydown_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onKeydown($event)); });
580
662
  i0.ɵɵelementStart(1, "div", 2);
581
663
  i0.ɵɵtemplate(2, WhiteboardComponent_button_2_Template, 2, 3, "button", 3)(3, WhiteboardComponent_button_3_Template, 2, 3, "button", 4)(4, WhiteboardComponent_span_4_Template, 1, 0, "span", 5)(5, WhiteboardComponent_button_5_Template, 2, 6, "button", 6);
582
664
  i0.ɵɵelement(6, "span", 7);
583
- i0.ɵɵelementStart(7, "button", 8);
584
- i0.ɵɵlistener("click", function WhiteboardComponent_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onBringToFront()); });
585
- i0.ɵɵtext(8, "\u2B06");
586
- i0.ɵɵelementEnd();
587
- i0.ɵɵelementStart(9, "button", 8);
588
- i0.ɵɵlistener("click", function WhiteboardComponent_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onSendToBack()); });
589
- i0.ɵɵtext(10, "\u2B07");
590
- i0.ɵɵelementEnd();
591
- i0.ɵɵelementStart(11, "button", 9);
592
- i0.ɵɵlistener("click", function WhiteboardComponent_Template_button_click_11_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onToggleLock()); });
593
- i0.ɵɵtext(12, "\uD83D\uDD12");
594
- i0.ɵɵelementEnd();
595
- i0.ɵɵelementStart(13, "button", 10);
596
- i0.ɵɵlistener("click", function WhiteboardComponent_Template_button_click_13_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onGroup()); });
597
- i0.ɵɵtext(14, "\u29C9");
598
- i0.ɵɵelementEnd();
599
- i0.ɵɵelementStart(15, "button", 11);
600
- i0.ɵɵlistener("click", function WhiteboardComponent_Template_button_click_15_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onUngroup()); });
601
- i0.ɵɵtext(16, "\u229F");
665
+ i0.ɵɵtemplate(7, WhiteboardComponent_ng_container_7_Template, 19, 16, "ng-container", 8);
666
+ i0.ɵɵelementStart(8, "button", 9);
667
+ i0.ɵɵlistener("click", function WhiteboardComponent_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onResetViewport()); });
668
+ i0.ɵɵtext(9, "\u2316");
602
669
  i0.ɵɵelementEnd();
603
- i0.ɵɵelementStart(17, "button", 12);
604
- i0.ɵɵlistener("click", function WhiteboardComponent_Template_button_click_17_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onDuplicate()); });
605
- i0.ɵɵtext(18, "\u29C9\u207A");
606
- i0.ɵɵelementEnd();
607
- i0.ɵɵelementStart(19, "button", 8);
608
- i0.ɵɵlistener("click", function WhiteboardComponent_Template_button_click_19_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onDeleteSelection()); });
609
- i0.ɵɵtext(20, "\uD83D\uDDD1");
610
- i0.ɵɵelementEnd();
611
- i0.ɵɵelement(21, "span", 7);
612
- i0.ɵɵtemplate(22, WhiteboardComponent_button_22_Template, 2, 4, "button", 13)(23, WhiteboardComponent_button_23_Template, 2, 4, "button", 13);
613
- i0.ɵɵelement(24, "span", 7);
614
- i0.ɵɵelementStart(25, "button", 14);
615
- i0.ɵɵlistener("click", function WhiteboardComponent_Template_button_click_25_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onResetViewport()); });
616
- i0.ɵɵtext(26, "\u2316");
617
- i0.ɵɵelementEnd();
618
- i0.ɵɵelementStart(27, "span", 15);
619
- i0.ɵɵtext(28);
670
+ i0.ɵɵelementStart(10, "span", 10);
671
+ i0.ɵɵtext(11);
620
672
  i0.ɵɵelementEnd()();
621
- i0.ɵɵelementStart(29, "div", 16, 0);
622
- i0.ɵɵlistener("pointerdown", function WhiteboardComponent_Template_div_pointerdown_29_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onViewportPointerDown($event)); });
623
- i0.ɵɵelementStart(31, "div", 17);
673
+ i0.ɵɵelementStart(12, "div", 11, 0);
674
+ i0.ɵɵlistener("pointerdown", function WhiteboardComponent_Template_div_pointerdown_12_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onViewportPointerDown($event)); });
675
+ i0.ɵɵelementStart(14, "div", 12);
624
676
  i0.ɵɵnamespaceSVG();
625
- i0.ɵɵelementStart(32, "svg", 18)(33, "defs")(34, "marker", 19);
626
- i0.ɵɵelement(35, "path", 20);
677
+ i0.ɵɵelementStart(15, "svg", 13)(16, "defs")(17, "marker", 14);
678
+ i0.ɵɵelement(18, "path", 15);
627
679
  i0.ɵɵelementEnd()();
628
- i0.ɵɵtemplate(36, WhiteboardComponent__svg_path_36_Template, 1, 8, "path", 21)(37, WhiteboardComponent__svg_path_37_Template, 1, 1, "path", 22)(38, WhiteboardComponent__svg_path_38_Template, 1, 1, "path", 23)(39, WhiteboardComponent__svg_line_39_Template, 1, 5, "line", 24);
680
+ i0.ɵɵtemplate(19, WhiteboardComponent__svg_path_19_Template, 1, 8, "path", 16)(20, WhiteboardComponent__svg_path_20_Template, 1, 1, "path", 17)(21, WhiteboardComponent__svg_path_21_Template, 1, 1, "path", 18)(22, WhiteboardComponent__svg_line_22_Template, 1, 5, "line", 19);
629
681
  i0.ɵɵelementEnd();
630
- i0.ɵɵtemplate(40, WhiteboardComponent_bm_wb_shape_40_Template, 1, 4, "bm-wb-shape", 25)(41, WhiteboardComponent_div_41_Template, 1, 8, "div", 26)(42, WhiteboardComponent_div_42_Template, 1, 8, "div", 27)(43, WhiteboardComponent_bm_wb_transform_handles_43_Template, 1, 1, "bm-wb-transform-handles", 28)(44, WhiteboardComponent_button_44_Template, 2, 9, "button", 29)(45, WhiteboardComponent__svg_svg_45_Template, 2, 2, "svg", 30);
682
+ i0.ɵɵtemplate(23, WhiteboardComponent_bm_wb_shape_23_Template, 1, 7, "bm-wb-shape", 20)(24, WhiteboardComponent_div_24_Template, 1, 8, "div", 21)(25, WhiteboardComponent_div_25_Template, 1, 8, "div", 22)(26, WhiteboardComponent_bm_wb_transform_handles_26_Template, 1, 1, "bm-wb-transform-handles", 23)(27, WhiteboardComponent_button_27_Template, 2, 9, "button", 24)(28, WhiteboardComponent__svg_svg_28_Template, 2, 2, "svg", 25);
631
683
  i0.ɵɵelementEnd();
632
- i0.ɵɵtemplate(46, WhiteboardComponent_bm_wb_comment_thread_46_Template, 1, 5, "bm-wb-comment-thread", 31)(47, WhiteboardComponent_bm_wb_comment_thread_47_Template, 1, 5, "bm-wb-comment-thread", 32);
684
+ i0.ɵɵtemplate(29, WhiteboardComponent_bm_wb_comment_thread_29_Template, 1, 5, "bm-wb-comment-thread", 26)(30, WhiteboardComponent_bm_wb_comment_thread_30_Template, 1, 6, "bm-wb-comment-thread", 27);
633
685
  i0.ɵɵelementEnd();
634
- i0.ɵɵtemplate(48, WhiteboardComponent_bm_wb_style_panel_48_Template, 1, 3, "bm-wb-style-panel", 33)(49, WhiteboardComponent_div_49_Template, 3, 1, "div", 34)(50, WhiteboardComponent_bm_wb_text_dialog_50_Template, 1, 2, "bm-wb-text-dialog", 35);
686
+ i0.ɵɵtemplate(31, WhiteboardComponent_bm_wb_style_panel_31_Template, 1, 3, "bm-wb-style-panel", 28)(32, WhiteboardComponent_div_32_Template, 3, 4, "div", 29)(33, WhiteboardComponent_bm_wb_text_dialog_33_Template, 1, 2, "bm-wb-text-dialog", 30);
635
687
  i0.ɵɵelementEnd();
636
688
  } if (rf & 2) {
637
689
  let tmp_2_0;
638
- i0.ɵɵattribute("data-theme", ctx.darkMode ? "dark" : null)("dir", (tmp_2_0 = ctx.dir) !== null && tmp_2_0 !== undefined ? tmp_2_0 : null)("aria-label", ctx.snapshot.ariaLabel);
690
+ i0.ɵɵattribute("data-theme", ctx.darkMode ? "dark" : null)("dir", (tmp_2_0 = ctx.dir) !== null && tmp_2_0 !== undefined ? tmp_2_0 : null)("aria-label", ctx.snapshot.ariaLabel)("aria-activedescendant", ctx.activeDescendantDomId());
639
691
  i0.ɵɵadvance(2);
640
- i0.ɵɵproperty("ngIf", ctx.showUndoRedo);
692
+ i0.ɵɵproperty("ngIf", ctx.showUndoRedo && !ctx.snapshot.config.readOnly);
641
693
  i0.ɵɵadvance();
642
- i0.ɵɵproperty("ngIf", ctx.showUndoRedo);
694
+ i0.ɵɵproperty("ngIf", ctx.showUndoRedo && !ctx.snapshot.config.readOnly);
643
695
  i0.ɵɵadvance();
644
- i0.ɵɵproperty("ngIf", ctx.showUndoRedo);
696
+ i0.ɵɵproperty("ngIf", ctx.showUndoRedo && !ctx.snapshot.config.readOnly);
645
697
  i0.ɵɵadvance();
646
698
  i0.ɵɵproperty("ngForOf", ctx.tools);
647
699
  i0.ɵɵadvance(2);
648
- i0.ɵɵproperty("disabled", !ctx.hasSel);
649
- i0.ɵɵattribute("title", ctx.locale.bringToFront);
650
- i0.ɵɵadvance(2);
651
- i0.ɵɵproperty("disabled", !ctx.hasSel);
652
- i0.ɵɵattribute("title", ctx.locale.sendToBack);
653
- i0.ɵɵadvance(2);
654
- i0.ɵɵproperty("disabled", !ctx.hasSel);
655
- i0.ɵɵattribute("title", ctx.locale.lock);
656
- i0.ɵɵadvance(2);
657
- i0.ɵɵproperty("disabled", !ctx.canGroup);
658
- i0.ɵɵattribute("title", ctx.locale.group);
659
- i0.ɵɵadvance(2);
660
- i0.ɵɵproperty("disabled", !ctx.canUngroup);
661
- i0.ɵɵattribute("title", ctx.locale.ungroup);
662
- i0.ɵɵadvance(2);
663
- i0.ɵɵproperty("disabled", !ctx.hasSel);
664
- i0.ɵɵattribute("title", ctx.locale.duplicate);
665
- i0.ɵɵadvance(2);
666
- i0.ɵɵproperty("disabled", !ctx.hasSel);
667
- i0.ɵɵattribute("title", ctx.locale.delete);
668
- i0.ɵɵadvance(3);
669
- i0.ɵɵproperty("ngForOf", ctx.aligns);
700
+ i0.ɵɵproperty("ngIf", !ctx.snapshot.config.readOnly);
670
701
  i0.ɵɵadvance();
671
- i0.ɵɵproperty("ngForOf", ctx.distributes);
672
- i0.ɵɵadvance(2);
673
702
  i0.ɵɵattribute("title", ctx.locale.resetZoom);
674
703
  i0.ɵɵadvance(3);
675
704
  i0.ɵɵtextInterpolate1("", ctx.zoomPct, "%");
@@ -705,7 +734,7 @@ export class WhiteboardComponent {
705
734
  i0.ɵɵadvance();
706
735
  i0.ɵɵproperty("ngIf", ctx.openThread);
707
736
  i0.ɵɵadvance();
708
- i0.ɵɵproperty("ngIf", ctx.panelStyle);
737
+ i0.ɵɵproperty("ngIf", !ctx.snapshot.config.readOnly && ctx.panelStyle);
709
738
  i0.ɵɵadvance();
710
739
  i0.ɵɵproperty("ngIf", ctx.undo);
711
740
  i0.ɵɵadvance();
@@ -729,11 +758,12 @@ export class WhiteboardComponent {
729
758
  ],
730
759
  changeDetection: ChangeDetectionStrategy.OnPush,
731
760
  template: `
732
- <div class="bm-wb" [attr.data-theme]="darkMode ? 'dark' : null" [attr.dir]="dir ?? null" role="application" [attr.aria-label]="snapshot.ariaLabel" tabindex="0" (keydown)="onKeydown($event)">
761
+ <div class="bm-wb" [attr.data-theme]="darkMode ? 'dark' : null" [attr.dir]="dir ?? null" role="application" [attr.aria-label]="snapshot.ariaLabel" tabindex="0"
762
+ [attr.aria-activedescendant]="activeDescendantDomId()" (keydown)="onKeydown($event)">
733
763
  <div class="bm-wb__toolbar">
734
- <button *ngIf="showUndoRedo" type="button" class="bm-wb__btn bm-wb__btn--undo" [attr.aria-label]="locale.undo" [attr.title]="locale.undo" [disabled]="!snapshot.canUndo" (click)="onUndo()">↶</button>
735
- <button *ngIf="showUndoRedo" type="button" class="bm-wb__btn bm-wb__btn--redo" [attr.aria-label]="locale.redo" [attr.title]="locale.redo" [disabled]="!snapshot.canRedo" (click)="onRedo()">↷</button>
736
- <span *ngIf="showUndoRedo" class="bm-wb__toolbar-sep"></span>
764
+ <button *ngIf="showUndoRedo && !snapshot.config.readOnly" type="button" class="bm-wb__btn bm-wb__btn--undo" [attr.aria-label]="locale.undo" [attr.title]="locale.undo" [disabled]="!snapshot.canUndo" (click)="onUndo()">↶</button>
765
+ <button *ngIf="showUndoRedo && !snapshot.config.readOnly" type="button" class="bm-wb__btn bm-wb__btn--redo" [attr.aria-label]="locale.redo" [attr.title]="locale.redo" [disabled]="!snapshot.canRedo" (click)="onRedo()">↷</button>
766
+ <span *ngIf="showUndoRedo && !snapshot.config.readOnly" class="bm-wb__toolbar-sep"></span>
737
767
  <button
738
768
  *ngFor="let t of tools"
739
769
  type="button"
@@ -743,6 +773,8 @@ export class WhiteboardComponent {
743
773
  [attr.data-tool]="t.id"
744
774
  (click)="onTool(t.id)">{{ t.glyph }}</button>
745
775
  <span class="bm-wb__toolbar-sep"></span>
776
+ <!-- mcp-64: Mutations-Cluster fällt im View-Only-Modus. -->
777
+ <ng-container *ngIf="!snapshot.config.readOnly">
746
778
  <button type="button" class="bm-wb__btn" [attr.title]="locale.bringToFront" [disabled]="!hasSel" (click)="onBringToFront()">⬆</button>
747
779
  <button type="button" class="bm-wb__btn" [attr.title]="locale.sendToBack" [disabled]="!hasSel" (click)="onSendToBack()">⬇</button>
748
780
  <button type="button" class="bm-wb__btn bm-wb__lock-btn" [attr.title]="locale.lock" [disabled]="!hasSel" (click)="onToggleLock()">🔒</button>
@@ -768,6 +800,7 @@ export class WhiteboardComponent {
768
800
  [disabled]="!canDistribute"
769
801
  (click)="onDistribute(d.axis)">{{ d.glyph }}</button>
770
802
  <span class="bm-wb__toolbar-sep"></span>
803
+ </ng-container>
771
804
  <button type="button" class="bm-wb__btn" [attr.title]="locale.resetZoom" (click)="onResetViewport()">⌖</button>
772
805
  <span class="bm-wb__toolbar-zoom">{{ zoomPct }}%</span>
773
806
  </div>
@@ -809,8 +842,11 @@ export class WhiteboardComponent {
809
842
  *ngFor="let v of snapshot.shapes; trackBy: trackShape"
810
843
  [shape]="v.shape"
811
844
  [selected]="v.selected"
845
+ [focused]="v.focused"
812
846
  [dropTarget]="snapshot.dropTargetId === v.shape.id"
813
847
  [lockedLabel]="locale.locked"
848
+ [domId]="shapeDomId(v.shape.id)"
849
+ [ariaLabel]="v.ariaLabel"
814
850
  (shapePointerDown)="onShapeDown(v.shape.id, $event)"
815
851
  (shapeDoubleClick)="onShapeDblClick(v.shape.id, $event)"></bm-wb-shape>
816
852
 
@@ -858,6 +894,7 @@ export class WhiteboardComponent {
858
894
  <bm-wb-comment-thread
859
895
  *ngIf="openThread as ot"
860
896
  [at]="ot.at"
897
+ [identity]="ot.id"
861
898
  [initial]="ot.text"
862
899
  [existing]="true"
863
900
  [resolved]="ot.resolved"
@@ -868,15 +905,16 @@ export class WhiteboardComponent {
868
905
  (delete)="onDeleteThread(ot.id)"></bm-wb-comment-thread>
869
906
  </div>
870
907
 
908
+ <!-- mcp-64 R1 (Review F7): das Stil-Panel ist eine reine Mutations-Fläche — im View-Only fällt es ganz. -->
871
909
  <bm-wb-style-panel
872
- *ngIf="panelStyle as ps"
910
+ *ngIf="!snapshot.config.readOnly && panelStyle as ps"
873
911
  [style]="ps"
874
912
  [locale]="locale"
875
913
  (styleInput)="onStyleInput($event)"></bm-wb-style-panel>
876
914
 
877
915
  <!-- Feedback-only now (ticket-15): the undo/redo affordance moved to the persistent
878
916
  toolbar buttons; the toast just narrates the last outcome. -->
879
- <div *ngIf="undo as u" class="bm-wb__toast" role="status">
917
+ <div *ngIf="undo as u" [class]="'bm-wb__toast' + (u.kind === 'error' ? ' bm-wb__toast--error' : '')" [attr.role]="u.kind === 'error' ? 'alert' : 'status'">
880
918
  <span>{{ u.description }}</span>
881
919
  </div>
882
920
 
@@ -914,5 +952,5 @@ export class WhiteboardComponent {
914
952
  type: ViewChild,
915
953
  args: ['viewportRef']
916
954
  }] }); })();
917
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WhiteboardComponent, { className: "WhiteboardComponent", filePath: "components/whiteboard.ts", lineNumber: 233 }); })();
955
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WhiteboardComponent, { className: "WhiteboardComponent", filePath: "components/whiteboard.ts", lineNumber: 243 }); })();
918
956
  //# sourceMappingURL=Whiteboard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Whiteboard.js","sourceRoot":"","sources":["../../src/components/Whiteboard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Whiteboard.js","sourceRoot":"","sources":["../../src/components/Whiteboard.ts"],"names":[],"mappings":"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"}
@@ -17,10 +17,18 @@ import * as i0 from "@angular/core";
17
17
  export declare class WhiteboardShapeComponent {
18
18
  shape: Shape;
19
19
  selected: boolean;
20
+ /** mcp-78 — the visible keyboard cursor. The board is the only tab stop, so the browser draws no ring on the shape the user is actually on; this class is that ring. */
21
+ focused: boolean;
20
22
  dropTarget: boolean;
21
23
  /** Accessible name for the lock badge (locale.locked — a stable string, threaded
22
24
  * from the parent so it does not reach into a global and stays OnPush-safe). */
23
25
  lockedLabel: string;
26
+ /** Board-scoped DOM id (mcp-78) — what the board's aria-activedescendant points at. */
27
+ domId: string;
28
+ /** The shape's accessible name, ASSEMBLED BY THE CONTROLLER (kind + text + state).
29
+ * Deliberately no `aria-selected`: it is invalid on `role="img"`, so the state
30
+ * rides in the NAME — which is also what a screen reader announces. */
31
+ ariaLabel: string;
24
32
  shapePointerDown: EventEmitter<PointerEvent>;
25
33
  shapeDoubleClick: EventEmitter<MouseEvent>;
26
34
  /** v0.30 Slice 3 perf probe: a template binding evaluates ONLY when the view is refreshed,
@@ -38,6 +46,6 @@ export declare class WhiteboardShapeComponent {
38
46
  get boxStyle(): Record<string, string | undefined>;
39
47
  get cls(): string;
40
48
  static ɵfac: i0.ɵɵFactoryDeclaration<WhiteboardShapeComponent, never>;
41
- static ɵcmp: i0.ɵɵComponentDeclaration<WhiteboardShapeComponent, "bm-wb-shape", never, { "shape": { "alias": "shape"; "required": true; }; "selected": { "alias": "selected"; "required": false; }; "dropTarget": { "alias": "dropTarget"; "required": false; }; "lockedLabel": { "alias": "lockedLabel"; "required": true; }; }, { "shapePointerDown": "shapePointerDown"; "shapeDoubleClick": "shapeDoubleClick"; }, never, never, true, never>;
49
+ static ɵcmp: i0.ɵɵComponentDeclaration<WhiteboardShapeComponent, "bm-wb-shape", never, { "shape": { "alias": "shape"; "required": true; }; "selected": { "alias": "selected"; "required": false; }; "focused": { "alias": "focused"; "required": false; }; "dropTarget": { "alias": "dropTarget"; "required": false; }; "lockedLabel": { "alias": "lockedLabel"; "required": true; }; "domId": { "alias": "domId"; "required": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": true; }; }, { "shapePointerDown": "shapePointerDown"; "shapeDoubleClick": "shapeDoubleClick"; }, never, never, true, never>;
42
50
  }
43
51
  //# sourceMappingURL=WhiteboardShape.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WhiteboardShape.d.ts","sourceRoot":"","sources":["../../src/components/WhiteboardShape.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAA2B,MAAM,eAAe,CAAC;AAGhG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;;AAGtD;;;;;;;;;;;;GAYG;AACH,qBAmCa,wBAAwB;IACR,KAAK,EAAG,KAAK,CAAC;IAChC,QAAQ,UAAS;IACjB,UAAU,UAAS;IAC5B;qFACiF;IACtD,WAAW,EAAG,MAAM,CAAC;IACtC,gBAAgB,6BAAoC;IACpD,gBAAgB,2BAAkC;IAE5D;;kGAE8F;IAC9F,KAAK,IAAI,IAAI;IAEb,IAAI,CAAC,UAAyB;IAC9B,IAAI,MAAM,IAAI,OAAO,CAAmC;IACxD,IAAI,OAAO,IAAI,OAAO,CAAoC;IAC1D,IAAI,MAAM,IAAI,OAAO,CAAmC;IACxD,IAAI,OAAO,IAAI,OAAO,CAAoC;IAC1D,IAAI,QAAQ,IAAI,OAAO,CAA2E;IAElG,IAAI,QAAQ,IAAI,MAAM,CAAmE;IACzF,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAAmD;IAEtF,IAAI,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAiBjD;IAED,IAAI,GAAG,IAAI,MAAM,CAMhB;yCAlDU,wBAAwB;2CAAxB,wBAAwB;CAmDpC"}
1
+ {"version":3,"file":"WhiteboardShape.d.ts","sourceRoot":"","sources":["../../src/components/WhiteboardShape.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAA2B,MAAM,eAAe,CAAC;AAGhG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;;AAGtD;;;;;;;;;;;;GAYG;AACH,qBAsCa,wBAAwB;IACR,KAAK,EAAG,KAAK,CAAC;IAChC,QAAQ,UAAS;IAC1B,wKAAwK;IAC/J,OAAO,UAAS;IAChB,UAAU,UAAS;IAC5B;qFACiF;IACtD,WAAW,EAAG,MAAM,CAAC;IAChD,uFAAuF;IAC5D,KAAK,EAAG,MAAM,CAAC;IAC1C;;4EAEwE;IAC7C,SAAS,EAAG,MAAM,CAAC;IACpC,gBAAgB,6BAAoC;IACpD,gBAAgB,2BAAkC;IAE5D;;kGAE8F;IAC9F,KAAK,IAAI,IAAI;IAEb,IAAI,CAAC,UAAyB;IAC9B,IAAI,MAAM,IAAI,OAAO,CAAmC;IACxD,IAAI,OAAO,IAAI,OAAO,CAAoC;IAC1D,IAAI,MAAM,IAAI,OAAO,CAAmC;IACxD,IAAI,OAAO,IAAI,OAAO,CAAoC;IAC1D,IAAI,QAAQ,IAAI,OAAO,CAA2E;IAElG,IAAI,QAAQ,IAAI,MAAM,CAAmE;IACzF,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAAmD;IAEtF,IAAI,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAiBjD;IAED,IAAI,GAAG,IAAI,MAAM,CAOhB;yCA3DU,wBAAwB;2CAAxB,wBAAwB;CA4DpC"}
@@ -48,10 +48,18 @@ function WhiteboardShapeComponent_span_3_Template(rf, ctx) { if (rf & 1) {
48
48
  export class WhiteboardShapeComponent {
49
49
  shape;
50
50
  selected = false;
51
+ /** mcp-78 — the visible keyboard cursor. The board is the only tab stop, so the browser draws no ring on the shape the user is actually on; this class is that ring. */
52
+ focused = false;
51
53
  dropTarget = false;
52
54
  /** Accessible name for the lock badge (locale.locked — a stable string, threaded
53
55
  * from the parent so it does not reach into a global and stays OnPush-safe). */
54
56
  lockedLabel;
57
+ /** Board-scoped DOM id (mcp-78) — what the board's aria-activedescendant points at. */
58
+ domId;
59
+ /** The shape's accessible name, ASSEMBLED BY THE CONTROLLER (kind + text + state).
60
+ * Deliberately no `aria-selected`: it is invalid on `role="img"`, so the state
61
+ * rides in the NAME — which is also what a screen reader announces. */
62
+ ariaLabel;
55
63
  shapePointerDown = new EventEmitter();
56
64
  shapeDoubleClick = new EventEmitter();
57
65
  /** v0.30 Slice 3 perf probe: a template binding evaluates ONLY when the view is refreshed,
@@ -88,11 +96,12 @@ export class WhiteboardShapeComponent {
88
96
  const s = this.s;
89
97
  return `bm-wb__shape bm-wb__shape--${s.kind}`
90
98
  + (this.selected ? ' bm-wb__shape--selected' : '')
99
+ + (this.focused ? ' bm-wb__shape--cursor' : '')
91
100
  + (s.locked ? ' bm-wb__shape--locked' : '')
92
101
  + (this.dropTarget ? ' bm-wb__shape--drop-target' : '');
93
102
  }
94
103
  static ɵfac = function WhiteboardShapeComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || WhiteboardShapeComponent)(); };
95
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: WhiteboardShapeComponent, selectors: [["bm-wb-shape"]], hostAttrs: [2, "display", "contents"], inputs: { shape: "shape", selected: "selected", dropTarget: "dropTarget", lockedLabel: "lockedLabel" }, outputs: { shapePointerDown: "shapePointerDown", shapeDoubleClick: "shapeDoubleClick" }, decls: 4, vars: 9, consts: [[3, "pointerdown", "dblclick", "ngStyle"], ["class", "bm-wb__draw", 4, "ngIf"], ["class", "bm-wb__shape-text", 4, "ngIf"], ["class", "bm-wb__lock-badge", 4, "ngIf"], [1, "bm-wb__draw"], ["fill", "none", "stroke-linecap", "round", "stroke-linejoin", "round"], [1, "bm-wb__shape-text"], [1, "bm-wb__lock-badge"]], template: function WhiteboardShapeComponent_Template(rf, ctx) { if (rf & 1) {
104
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: WhiteboardShapeComponent, selectors: [["bm-wb-shape"]], hostAttrs: [2, "display", "contents"], inputs: { shape: "shape", selected: "selected", focused: "focused", dropTarget: "dropTarget", lockedLabel: "lockedLabel", domId: "domId", ariaLabel: "ariaLabel" }, outputs: { shapePointerDown: "shapePointerDown", shapeDoubleClick: "shapeDoubleClick" }, decls: 4, vars: 11, consts: [["role", "img", 3, "pointerdown", "dblclick", "ngStyle"], ["class", "bm-wb__draw", 4, "ngIf"], ["class", "bm-wb__shape-text", 4, "ngIf"], ["class", "bm-wb__lock-badge", 4, "ngIf"], [1, "bm-wb__draw"], ["fill", "none", "stroke-linecap", "round", "stroke-linejoin", "round"], [1, "bm-wb__shape-text"], [1, "bm-wb__lock-badge"]], template: function WhiteboardShapeComponent_Template(rf, ctx) { if (rf & 1) {
96
105
  i0.ɵɵelementStart(0, "div", 0);
97
106
  i0.ɵɵlistener("pointerdown", function WhiteboardShapeComponent_Template_div_pointerdown_0_listener($event) { return ctx.shapePointerDown.emit($event); })("dblclick", function WhiteboardShapeComponent_Template_div_dblclick_0_listener($event) { return ctx.shapeDoubleClick.emit($event); });
98
107
  i0.ɵɵtemplate(1, WhiteboardShapeComponent__svg_svg_1_Template, 2, 7, "svg", 1)(2, WhiteboardShapeComponent_span_2_Template, 2, 1, "span", 2)(3, WhiteboardShapeComponent_span_3_Template, 2, 1, "span", 3);
@@ -100,7 +109,7 @@ export class WhiteboardShapeComponent {
100
109
  } if (rf & 2) {
101
110
  i0.ɵɵclassMap(ctx.cls);
102
111
  i0.ɵɵproperty("ngStyle", ctx.boxStyle);
103
- i0.ɵɵattribute("data-shape-id", ctx.s.id)("data-kind", ctx.s.kind)("data-r", ctx.probe());
112
+ i0.ɵɵattribute("id", ctx.domId)("data-shape-id", ctx.s.id)("data-kind", ctx.s.kind)("data-r", ctx.probe())("aria-label", ctx.ariaLabel);
104
113
  i0.ɵɵadvance();
105
114
  i0.ɵɵproperty("ngIf", ctx.isDraw && ctx.s.points);
106
115
  i0.ɵɵadvance();
@@ -121,9 +130,12 @@ export class WhiteboardShapeComponent {
121
130
  <div
122
131
  [class]="cls"
123
132
  [ngStyle]="boxStyle"
133
+ [attr.id]="domId"
124
134
  [attr.data-shape-id]="s.id"
125
135
  [attr.data-kind]="s.kind"
126
136
  [attr.data-r]="probe()"
137
+ role="img"
138
+ [attr.aria-label]="ariaLabel"
127
139
  (pointerdown)="shapePointerDown.emit($event)"
128
140
  (dblclick)="shapeDoubleClick.emit($event)">
129
141
  <svg
@@ -151,15 +163,23 @@ export class WhiteboardShapeComponent {
151
163
  args: [{ required: true }]
152
164
  }], selected: [{
153
165
  type: Input
166
+ }], focused: [{
167
+ type: Input
154
168
  }], dropTarget: [{
155
169
  type: Input
156
170
  }], lockedLabel: [{
157
171
  type: Input,
158
172
  args: [{ required: true }]
173
+ }], domId: [{
174
+ type: Input,
175
+ args: [{ required: true }]
176
+ }], ariaLabel: [{
177
+ type: Input,
178
+ args: [{ required: true }]
159
179
  }], shapePointerDown: [{
160
180
  type: Output
161
181
  }], shapeDoubleClick: [{
162
182
  type: Output
163
183
  }] }); })();
164
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WhiteboardShapeComponent, { className: "WhiteboardShapeComponent", filePath: "components/whiteboardshape.ts", lineNumber: 55 }); })();
184
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WhiteboardShapeComponent, { className: "WhiteboardShapeComponent", filePath: "components/whiteboardshape.ts", lineNumber: 58 }); })();
165
185
  //# sourceMappingURL=WhiteboardShape.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WhiteboardShape.js","sourceRoot":"","sources":["../../src/components/WhiteboardShape.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WhiteboardShape.js","sourceRoot":"","sources":["../../src/components/WhiteboardShape.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAChG,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEvF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;;;;;IAiCzC,8BAKqD;IACnD,0BAOiC;IACnC,iBAAM;;;;IAPF,cAAmB;;;;IAQvB,+BAAiF;IAAA,YAAY;IAAA,iBAAO;;;IAAnB,cAAY;IAAZ,mCAAY;;;IAC7F,+BAAiF;IAAA,4BAAE;IAAA,iBAAO;;;;;AA/ChG;;;;;;;;;;;;GAYG;AAuCH,MAAM,OAAO,wBAAwB;IACR,KAAK,CAAS;IAChC,QAAQ,GAAG,KAAK,CAAC;IAC1B,wKAAwK;IAC/J,OAAO,GAAG,KAAK,CAAC;IAChB,UAAU,GAAG,KAAK,CAAC;IAC5B;qFACiF;IACtD,WAAW,CAAU;IAChD,uFAAuF;IAC5D,KAAK,CAAU;IAC1C;;4EAEwE;IAC7C,SAAS,CAAU;IACpC,gBAAgB,GAAG,IAAI,YAAY,EAAgB,CAAC;IACpD,gBAAgB,GAAG,IAAI,YAAY,EAAc,CAAC;IAE5D;;kGAE8F;IAC9F,KAAK,KAAW,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IAE1D,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9B,IAAI,MAAM,KAAc,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC;IACxD,IAAI,OAAO,KAAc,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;IAC1D,IAAI,MAAM,KAAc,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC;IACxD,IAAI,OAAO,KAAc,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;IAC1D,IAAI,QAAQ,KAAc,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAElG,IAAI,QAAQ,KAAa,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzF,IAAI,SAAS,KAAyB,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEtF,IAAI,QAAQ;QACV,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QACjB,OAAO;YACL,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI;YAChB,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI;YACf,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI;YACrB,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,IAAI;YACvB,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,CAAC,SAAS;YAC9D,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS;YACvE,6EAA6E;YAC7E,uDAAuD;YACvD,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,WAAW,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE;YAC7H,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS;YACxB,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI;YACjC,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE;YAC7B,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS;SAC7B,CAAC;IACJ,CAAC;IAED,IAAI,GAAG;QACL,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QACjB,OAAO,8BAA8B,CAAC,CAAC,IAAI,EAAE;cACzC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,CAAC;cAChD,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAC;cAC7C,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAC;cACzC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC;kHA3DU,wBAAwB;6DAAxB,wBAAwB;YA/BjC,8BAU6C;YAA3C,AADA,oHAAe,iCAA6B,IAAC,iGACjC,iCAA6B,IAAC;YAiB1C,AADA,AAfA,8EAKqD,8DAU4B,8DACA;YACnF,iBAAM;;YA3BJ,sBAAa;YACb,sCAAoB;;YAUjB,cAAwB;YAAxB,iDAAwB;YAcpB,cAA8C;YAA9C,+EAA8C;YAC9C,cAAc;YAAd,mCAAc;4BA9Bf,YAAY;;iFAkCX,wBAAwB;cAtCpC,SAAS;eAAC;gBACT,QAAQ,EAAE,aAAa;gBACvB,UAAU,EAAE,IAAI;gBAChB,IAAI,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE;gBACpC,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,eAAe,EAAE,uBAAuB,CAAC,MAAM;gBAC/C,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BT;aACF;gBAE4B,KAAK;kBAA/B,KAAK;mBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;YAChB,QAAQ;kBAAhB,KAAK;YAEG,OAAO;kBAAf,KAAK;YACG,UAAU;kBAAlB,KAAK;YAGqB,WAAW;kBAArC,KAAK;mBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;YAEE,KAAK;kBAA/B,KAAK;mBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;YAIE,SAAS;kBAAnC,KAAK;mBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;YACf,gBAAgB;kBAAzB,MAAM;YACG,gBAAgB;kBAAzB,MAAM;;kFAhBI,wBAAwB"}
@@ -0,0 +1,3 @@
1
+ // Generated by scripts/generate-css-stubs.mjs — DO NOT EDIT.
2
+ // Type-stub for side-effect CSS import (TS moduleResolution: nodenext/bundler).
3
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bimetal/whiteboard-angular-components",
3
- "version": "0.35.0",
3
+ "version": "0.36.0",
4
4
  "description": "Default Angular whiteboard — infinite-canvas pan/zoom, shapes, drag/resize/rotate, connectors, freehand, smart guides, group, frames, comments, laser, style panel, theming.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -10,7 +10,10 @@
10
10
  "types": "./dist/index.d.ts",
11
11
  "import": "./dist/index.js"
12
12
  },
13
- "./styles": "./dist/styles/index.css"
13
+ "./styles": {
14
+ "types": "./dist/styles/index.css.d.ts",
15
+ "default": "./dist/styles/index.css"
16
+ }
14
17
  },
15
18
  "files": [
16
19
  "dist",
@@ -18,17 +21,17 @@
18
21
  "LICENSE"
19
22
  ],
20
23
  "scripts": {
21
- "build": "ngc -p tsconfig.json && node scripts/copy-css.mjs",
22
- "typecheck": "ngc -p tsconfig.json --noEmit",
24
+ "build": "ngc -p tsconfig.json && node scripts/copy-css.mjs && node ../../../scripts/generate-css-stubs.mjs",
25
+ "typecheck": "ngc -p tsconfig.test.json --noEmit",
23
26
  "test": "vitest run",
24
27
  "prepublishOnly": "npm run build"
25
28
  },
26
29
  "dependencies": {
27
- "@bimetal/angular": "^0.35.0",
28
- "@bimetal/whiteboard-data": "^0.35.0",
29
- "@bimetal/whiteboard-headless": "^0.35.0",
30
- "@bimetal/whiteboard-themes": "^0.35.0",
31
- "@bimetal/a11y-dom": "^0.35.0"
30
+ "@bimetal/angular": "^0.36.0",
31
+ "@bimetal/whiteboard-data": "^0.36.0",
32
+ "@bimetal/whiteboard-headless": "^0.36.0",
33
+ "@bimetal/whiteboard-themes": "^0.36.0",
34
+ "@bimetal/a11y-dom": "^0.36.0"
32
35
  },
33
36
  "peerDependencies": {
34
37
  "@angular/core": "^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0",