@lumencast/runtime 0.9.0 → 0.11.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.
Files changed (100) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/app.d.ts +6 -1
  3. package/dist/app.d.ts.map +1 -1
  4. package/dist/app.js +3 -1
  5. package/dist/app.js.map +1 -1
  6. package/dist/{broadcast-ryjLRD5q.js → broadcast-DtHoU_fS.js} +3 -3
  7. package/dist/{broadcast-ryjLRD5q.js.map → broadcast-DtHoU_fS.js.map} +1 -1
  8. package/dist/{control-AgxbXOVS.js → control-B9frEbNG.js} +4 -4
  9. package/dist/{control-AgxbXOVS.js.map → control-B9frEbNG.js.map} +1 -1
  10. package/dist/index-Dz27r92m.js +1327 -0
  11. package/dist/index-Dz27r92m.js.map +1 -0
  12. package/dist/index.d.ts +3 -0
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.html +1 -1
  15. package/dist/index.js +16 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/lumencast.js +21 -12
  18. package/dist/mount.d.ts.map +1 -1
  19. package/dist/mount.js +22 -0
  20. package/dist/mount.js.map +1 -1
  21. package/dist/overlay/runtime-context.d.ts +10 -0
  22. package/dist/overlay/runtime-context.d.ts.map +1 -1
  23. package/dist/overlay/runtime-context.js.map +1 -1
  24. package/dist/render/bundle.d.ts +1 -1
  25. package/dist/render/bundle.d.ts.map +1 -1
  26. package/dist/render/bundle.js.map +1 -1
  27. package/dist/render/primitives/capture.d.ts +13 -4
  28. package/dist/render/primitives/capture.d.ts.map +1 -1
  29. package/dist/render/primitives/capture.js +54 -22
  30. package/dist/render/primitives/capture.js.map +1 -1
  31. package/dist/render/primitives/index.d.ts.map +1 -1
  32. package/dist/render/primitives/index.js +10 -0
  33. package/dist/render/primitives/index.js.map +1 -1
  34. package/dist/render/primitives/live-peer-video.d.ts +27 -0
  35. package/dist/render/primitives/live-peer-video.d.ts.map +1 -0
  36. package/dist/render/primitives/live-peer-video.js +64 -0
  37. package/dist/render/primitives/live-peer-video.js.map +1 -0
  38. package/dist/render/primitives/media.d.ts +37 -12
  39. package/dist/render/primitives/media.d.ts.map +1 -1
  40. package/dist/render/primitives/media.js +43 -17
  41. package/dist/render/primitives/media.js.map +1 -1
  42. package/dist/render/primitives/meet-peer-slot.d.ts +29 -0
  43. package/dist/render/primitives/meet-peer-slot.d.ts.map +1 -0
  44. package/dist/render/primitives/meet-peer-slot.js +46 -0
  45. package/dist/render/primitives/meet-peer-slot.js.map +1 -0
  46. package/dist/render/primitives/meet-peer.d.ts +31 -0
  47. package/dist/render/primitives/meet-peer.d.ts.map +1 -0
  48. package/dist/render/primitives/meet-peer.js +46 -0
  49. package/dist/render/primitives/meet-peer.js.map +1 -0
  50. package/dist/render/prop-allowlist.d.ts.map +1 -1
  51. package/dist/render/prop-allowlist.js +27 -1
  52. package/dist/render/prop-allowlist.js.map +1 -1
  53. package/dist/render/tree.js +42 -8
  54. package/dist/render/tree.js.map +1 -1
  55. package/dist/state/reserved-leaves.d.ts +37 -0
  56. package/dist/state/reserved-leaves.d.ts.map +1 -0
  57. package/dist/state/reserved-leaves.js +96 -0
  58. package/dist/state/reserved-leaves.js.map +1 -0
  59. package/dist/{status-pill-BxCdj-KZ.js → status-pill-B2vBTwRC.js} +2 -2
  60. package/dist/{status-pill-BxCdj-KZ.js.map → status-pill-B2vBTwRC.js.map} +1 -1
  61. package/dist/{test-CaRHj_J6.js → test-DD2SBDku.js} +4 -4
  62. package/dist/{test-CaRHj_J6.js.map → test-DD2SBDku.js.map} +1 -1
  63. package/dist/{tree-BLIxJbD3.js → tree-CgU_sUwI.js} +581 -479
  64. package/dist/tree-CgU_sUwI.js.map +1 -0
  65. package/dist/types.d.ts +25 -0
  66. package/dist/types.d.ts.map +1 -1
  67. package/dist/webrtc/index.d.ts +76 -0
  68. package/dist/webrtc/index.d.ts.map +1 -0
  69. package/dist/webrtc/index.js +180 -0
  70. package/dist/webrtc/index.js.map +1 -0
  71. package/dist/webrtc/meet-viewer.d.ts +139 -0
  72. package/dist/webrtc/meet-viewer.d.ts.map +1 -0
  73. package/dist/webrtc/meet-viewer.js +379 -0
  74. package/dist/webrtc/meet-viewer.js.map +1 -0
  75. package/dist/webrtc/peer-stream-registry.d.ts +21 -0
  76. package/dist/webrtc/peer-stream-registry.d.ts.map +1 -0
  77. package/dist/webrtc/peer-stream-registry.js +77 -0
  78. package/dist/webrtc/peer-stream-registry.js.map +1 -0
  79. package/package.json +4 -4
  80. package/src/app.tsx +9 -0
  81. package/src/index.ts +47 -0
  82. package/src/mount.ts +23 -0
  83. package/src/overlay/runtime-context.tsx +10 -0
  84. package/src/render/bundle.ts +11 -1
  85. package/src/render/primitives/capture.tsx +73 -28
  86. package/src/render/primitives/index.ts +10 -0
  87. package/src/render/primitives/live-peer-video.tsx +90 -0
  88. package/src/render/primitives/media.tsx +66 -17
  89. package/src/render/primitives/meet-peer-slot.tsx +55 -0
  90. package/src/render/primitives/meet-peer.tsx +57 -0
  91. package/src/render/prop-allowlist.ts +27 -1
  92. package/src/render/tree.tsx +44 -8
  93. package/src/state/reserved-leaves.ts +121 -0
  94. package/src/types.ts +25 -0
  95. package/src/webrtc/index.ts +252 -0
  96. package/src/webrtc/meet-viewer.ts +497 -0
  97. package/src/webrtc/peer-stream-registry.ts +93 -0
  98. package/dist/index-DrXsLYhe.js +0 -903
  99. package/dist/index-DrXsLYhe.js.map +0 -1
  100. package/dist/tree-BLIxJbD3.js.map +0 -1
package/dist/mount.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mount.js","sourceRoot":"","sources":["../src/mount.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mount.js","sourceRoot":"","sources":["../src/mount.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import type { RenderBundle } from "../render/bundle";
5
5
  import type { ConnectionStatus } from "../transport/ws";
6
6
  import type { LumencastMode } from "../types";
7
7
  import type { ResolveCaptureDevice } from "../render/primitives/capture";
8
+ import type { ResolvePeerStream, SubscribePeerStream } from "../render/primitives/media";
8
9
  export interface LumencastRuntime {
9
10
  mode: LumencastMode;
10
11
  store: Store;
@@ -16,6 +17,15 @@ export interface LumencastRuntime {
16
17
  * physical `deviceId` for the `x-zab.capture` primitive's ACQUIRE mode.
17
18
  * Injected from `MountOptions`, NOT the bundle. Absent → default device. */
18
19
  resolveCaptureDevice?: ResolveCaptureDevice;
20
+ /** ADR 006 #4 — host-provided resolver mapping a LOGICAL `peerLabel` to the
21
+ * live `MediaStream` of a `meet.peer`, for the `media` primitive's LIVE mode.
22
+ * Injected from `MountOptions` (supplied by the WebRTC viewer #3), NOT the
23
+ * bundle. Absent → the live `media` node is a stream-less box. */
24
+ resolvePeerStream?: ResolvePeerStream;
25
+ /** ADR 006 #3 — reactive variant : the viewer pushes a peer's stream on
26
+ * connect and `null` on leave, so a LIVE `media` node re-renders when its
27
+ * peer joins mid-show. Preferred over `resolvePeerStream` when present. */
28
+ subscribePeerStream?: SubscribePeerStream;
19
29
  }
20
30
  export declare function LumencastRuntimeProvider({ value, children, }: {
21
31
  value: LumencastRuntime;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-context.d.ts","sourceRoot":"","sources":["../../src/overlay/runtime-context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAClE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEzE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,gBAAgB,CAAC;IACzB,+CAA+C;IAC/C,SAAS,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;IACtC;;iFAE6E;IAC7E,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC7C;AAID,wBAAgB,wBAAwB,CAAC,EACvC,KAAK,EACL,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,gBAAgB,CAAC;IACxB,QAAQ,EAAE,SAAS,CAAC;CACrB,2CAEA;AAED,wBAAgB,mBAAmB,IAAI,gBAAgB,CAQtD;AAED;;;;sCAIsC;AACtC,wBAAgB,2BAA2B,IAAI,gBAAgB,GAAG,IAAI,CAErE"}
1
+ {"version":3,"file":"runtime-context.d.ts","sourceRoot":"","sources":["../../src/overlay/runtime-context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAClE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEzF,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,gBAAgB,CAAC;IACzB,+CAA+C;IAC/C,SAAS,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;IACtC;;iFAE6E;IAC7E,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C;;;uEAGmE;IACnE,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;gFAE4E;IAC5E,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAID,wBAAgB,wBAAwB,CAAC,EACvC,KAAK,EACL,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,gBAAgB,CAAC;IACxB,QAAQ,EAAE,SAAS,CAAC;CACrB,2CAEA;AAED,wBAAgB,mBAAmB,IAAI,gBAAgB,CAQtD;AAED;;;;sCAIsC;AACtC,wBAAgB,2BAA2B,IAAI,gBAAgB,GAAG,IAAI,CAErE"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-context.js","sourceRoot":"","sources":["../../src/overlay/runtime-context.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAkB,MAAM,OAAO,CAAC;AAqBlE,MAAM,GAAG,GAAG,aAAa,CAA0B,IAAI,CAAC,CAAC;AAEzD,MAAM,UAAU,wBAAwB,CAAC,EACvC,KAAK,EACL,QAAQ,GAIT;IACC,OAAO,KAAC,GAAG,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAgB,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;sCAIsC;AACtC,MAAM,UAAU,2BAA2B;IACzC,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"runtime-context.js","sourceRoot":"","sources":["../../src/overlay/runtime-context.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAkB,MAAM,OAAO,CAAC;AA+BlE,MAAM,GAAG,GAAG,aAAa,CAA0B,IAAI,CAAC,CAAC;AAEzD,MAAM,UAAU,wBAAwB,CAAC,EACvC,KAAK,EACL,QAAQ,GAIT;IACC,OAAO,KAAC,GAAG,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAgB,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;sCAIsC;AACtC,MAAM,UAAU,2BAA2B;IACzC,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { Transition } from "../animate/transitions.js";
2
2
  import type { Keyframes } from "../animate/keyframes.js";
3
- export type RenderKind = "stack" | "grid" | "frame" | "text" | "image" | "shape" | "media" | "repeat" | "instance" | "x-zab.capture";
3
+ export type RenderKind = "stack" | "grid" | "frame" | "text" | "image" | "shape" | "media" | "repeat" | "instance" | "meet.peer" | "x-zab.capture" | "x-zab.meet-peer";
4
4
  export interface RenderNode {
5
5
  kind: RenderKind;
6
6
  /** Stable identifier for keyed reconciliation. */
@@ -1 +1 @@
1
- {"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../src/render/bundle.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAIzD,MAAM,MAAM,UAAU,GAClB,OAAO,GACP,MAAM,GACN,OAAO,GACP,MAAM,GACN,OAAO,GACP,OAAO,GACP,OAAO,GACP,QAAQ,GACR,UAAU,GAIV,eAAe,CAAC;AAEpB,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,UAAU,CAAC;IACjB,kDAAkD;IAClD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC;kEAC8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC;;kCAE8B;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACzC;;;;;;iDAM6C;IAC7C,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IAClD;;;;;;;;;0BASsB;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC;;;mDAG+C;IAC/C,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;mEAC+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;CACzB;AAED,MAAM,MAAM,iBAAiB,GACzB,SAAS,GACT,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,MAAM,GACN,UAAU,GACV,QAAQ,GACR,UAAU,CAAC;AAEf,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,UAAU,CAAC;IACjB,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC;IAClC,iBAAiB,CAAC,EAAE,eAAe,EAAE,CAAC;IACtC;;;;6DAIyD;IACzD,MAAM,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC7D;;;;;yEAKqE;IACrE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAMjD,CAAC;AAuBH;;0EAE0E;AAC1E,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAYtD;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,SAAgB,IAAI,EAAG,qBAAqB,CAAU;IACtD,SAAgB,mBAAmB,EAAE,MAAM,EAAE,CAAC;gBAClC,mBAAmB,EAAE,MAAM,EAAE;CAS1C;AAED;;;;;;;;;;;;;;;wBAewB;AACxB,wBAAgB,sBAAsB,CACpC,MAAM,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,EAC/B,SAAS,GAAE,WAAW,CAAC,MAAM,CAAsB,GAClD,IAAI,CAaN;AAID,MAAM,WAAW,aAAa;IAC5B,oEAAoE;IACpE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAClE;gCAC4B;IAC5B,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;CACrC;AAED;;;sEAGsE;AACtE,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;AAElF,MAAM,WAAW,oBAAoB;IACnC;;oCAEgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB;iDAC6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;6BAGyB;IACzB,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B;;;;;;wEAMoE;IACpE,YAAY,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACtE,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAgED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,aAAa,CAE7E"}
1
+ {"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../src/render/bundle.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAIzD,MAAM,MAAM,UAAU,GAClB,OAAO,GACP,MAAM,GACN,OAAO,GACP,MAAM,GACN,OAAO,GACP,OAAO,GACP,OAAO,GACP,QAAQ,GACR,UAAU,GAIV,WAAW,GAIX,eAAe,GAMf,iBAAiB,CAAC;AAEtB,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,UAAU,CAAC;IACjB,kDAAkD;IAClD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC;kEAC8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC;;kCAE8B;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACzC;;;;;;iDAM6C;IAC7C,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IAClD;;;;;;;;;0BASsB;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC;;;mDAG+C;IAC/C,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;mEAC+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;CACzB;AAED,MAAM,MAAM,iBAAiB,GACzB,SAAS,GACT,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,MAAM,GACN,UAAU,GACV,QAAQ,GACR,UAAU,CAAC;AAEf,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,UAAU,CAAC;IACjB,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC;IAClC,iBAAiB,CAAC,EAAE,eAAe,EAAE,CAAC;IACtC;;;;6DAIyD;IACzD,MAAM,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC7D;;;;;yEAKqE;IACrE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAMjD,CAAC;AAuBH;;0EAE0E;AAC1E,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAYtD;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,SAAgB,IAAI,EAAG,qBAAqB,CAAU;IACtD,SAAgB,mBAAmB,EAAE,MAAM,EAAE,CAAC;gBAClC,mBAAmB,EAAE,MAAM,EAAE;CAS1C;AAED;;;;;;;;;;;;;;;wBAewB;AACxB,wBAAgB,sBAAsB,CACpC,MAAM,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,EAC/B,SAAS,GAAE,WAAW,CAAC,MAAM,CAAsB,GAClD,IAAI,CAaN;AAID,MAAM,WAAW,aAAa;IAC5B,oEAAoE;IACpE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAClE;gCAC4B;IAC5B,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;CACrC;AAED;;;sEAGsE;AACtE,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;AAElF,MAAM,WAAW,oBAAoB;IACnC;;oCAEgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB;iDAC6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;6BAGyB;IACzB,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B;;;;;;wEAMoE;IACpE,YAAY,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACtE,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAgED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,aAAa,CAE7E"}
@@ -1 +1 @@
1
- {"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../src/render/bundle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../src/render/bundle.ts"],"names":[],"mappings":"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"}
@@ -31,10 +31,19 @@ import type { PrimitiveProps } from "./index";
31
31
  * capture (`media.mic` / `media.app_audio`) may omit `size` → a zero-area
32
32
  * box that never paints. */
33
33
  export declare function Capture({ resolved }: PrimitiveProps): import("react/jsx-runtime").JSX.Element;
34
- /** Resolver injected by the consuming app (ADR 004 §A1.3). Maps the LOGICAL
35
- * `deviceRef` to a physical `deviceId` for a live `getUserMedia` constraint.
36
- * The result NEVER enters the bundle or the content hash. */
37
- export type ResolveCaptureDevice = (deviceRef: string, sourceKind: string) => {
34
+ /** A resolved physical device for a live capture constraint, or `null` when the
35
+ * host could not bind the logical `deviceRef`. */
36
+ export type ResolvedCaptureDevice = {
38
37
  deviceId?: string;
38
+ captureSourceId?: string;
39
39
  } | null;
40
+ /** Resolver injected by the consuming app (ADR 004 §A1.3). Maps the LOGICAL
41
+ * `deviceRef` to a physical `deviceId`/`captureSourceId` for a live
42
+ * `getUserMedia` constraint. The result NEVER enters the bundle or the content
43
+ * hash. MAY be async: physical ids (e.g. getUserMedia `deviceId`) are salted
44
+ * per origin/partition, so the host often must re-resolve a portable key
45
+ * (label) against THIS context's devices — an inherently asynchronous step
46
+ * (`enumerateDevices`). `acquireStream` awaits it, so the device is bound
47
+ * before acquisition rather than racing a late global mutation. */
48
+ export type ResolveCaptureDevice = (deviceRef: string, sourceKind: string) => ResolvedCaptureDevice | Promise<ResolvedCaptureDevice>;
40
49
  //# sourceMappingURL=capture.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../../../src/render/primitives/capture.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BA8B6B;AAC7B,wBAAgB,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,cAAc,2CA8FnD;AAED;;8DAE8D;AAC9D,MAAM,MAAM,oBAAoB,GAAG,CACjC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,KACf;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../../../src/render/primitives/capture.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BA8B6B;AAC7B,wBAAgB,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,cAAc,2CA8FnD;AAED;mDACmD;AACnD,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG,IAAI,CAAC;AAET;;;;;;;oEAOoE;AACpE,MAAM,MAAM,oBAAoB,GAAG,CACjC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,KACf,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC"}
@@ -38,9 +38,7 @@ export function Capture({ resolved }) {
38
38
  const sourceKind = typeof resolved["x-zab.sourceKind"] === "string"
39
39
  ? resolved["x-zab.sourceKind"]
40
40
  : "";
41
- const deviceRef = typeof resolved["x-zab.deviceRef"] === "string"
42
- ? resolved["x-zab.deviceRef"]
43
- : "";
41
+ const deviceRef = typeof resolved["x-zab.deviceRef"] === "string" ? resolved["x-zab.deviceRef"] : "";
44
42
  // §A1.3 — the host-provided resolver, injected at mount through the runtime
45
43
  // context (NOT the bundle, NOT the LSDP wire). Absent when the tree renders
46
44
  // outside a host (direct embedding, tooling, tests) → the default-device
@@ -113,45 +111,79 @@ export function Capture({ resolved }) {
113
111
  * exists and is callable in the current context. Feature detection only ;
114
112
  * CEF/Pulsar on-air and jsdom (without a mock) report non-capable. */
115
113
  function isCaptureCapable() {
116
- return (typeof navigator !== "undefined" &&
117
- typeof navigator.mediaDevices?.getUserMedia === "function");
114
+ return (typeof navigator !== "undefined" && typeof navigator.mediaDevices?.getUserMedia === "function");
118
115
  }
119
116
  /** Visual kinds render a `<video>` ; audio kinds stay visually empty. */
120
117
  function isVisualKind(sourceKind) {
121
- return (sourceKind === "media.webcam" ||
122
- sourceKind === "media.screen" ||
123
- sourceKind === "media.window");
118
+ return (sourceKind === "media.webcam" || sourceKind === "media.screen" || sourceKind === "media.window");
124
119
  }
125
120
  /** Acquire a live stream for `sourceKind`, applying a host-resolved `deviceId`
126
121
  * when available. Returns `null` for an unsupported/unknown kind (→
127
122
  * PLACEHOLDER) ; throws are caught by the caller (→ PLACEHOLDER fallback). */
128
123
  async function acquireStream(sourceKind, deviceRef, resolveCaptureDevice) {
129
124
  const md = navigator.mediaDevices;
130
- // §A1.3 a resolver maps the LOGICAL deviceRef to a physical deviceId. No
131
- // resolver / `null` result default constraints (no deviceId), so "the cam
132
- // traverses" on the first pass. The deviceId is a live constraint only.
133
- const resolved = resolveCaptureDevice?.(deviceRef, sourceKind) ?? null;
125
+ // §A1.3 (amended 2026-06-27) AWAIT the resolver: physical ids are salted
126
+ // per origin/partition, so the host may need an async re-resolution by a
127
+ // portable key (label) in THIS context. Awaiting binds the device before
128
+ // acquisition instead of racing a late global update (the previous sync call
129
+ // let the node acquire with a stale/absent id first).
130
+ const resolved = (await resolveCaptureDevice?.(deviceRef, sourceKind)) ?? null;
134
131
  const deviceId = resolved?.deviceId;
132
+ const declaredRef = deviceRef.length > 0;
135
133
  switch (sourceKind) {
136
134
  case "media.webcam":
137
- return md.getUserMedia({ video: deviceConstraint(deviceId) });
138
135
  case "media.mic":
139
- return md.getUserMedia({ audio: deviceConstraint(deviceId) });
140
- case "media.app_audio":
141
- return md.getUserMedia({ audio: deviceConstraint(deviceId) });
136
+ case "media.app_audio": {
137
+ // §A1.3 (amended) — NO default-device fallback for a DECLARED deviceRef
138
+ // that did not resolve to a real device. Acquiring the host default cam
139
+ // here is the silent "automatic allocation" of the WRONG camera the
140
+ // consuming app must never get. → PLACEHOLDER (return null). The bare
141
+ // default constraint stays ONLY when no deviceRef is declared at all.
142
+ if (declaredRef && (typeof deviceId !== "string" || deviceId.length === 0)) {
143
+ return null;
144
+ }
145
+ const channel = sourceKind === "media.webcam" ? "video" : "audio";
146
+ return md.getUserMedia({ [channel]: deviceConstraint(deviceId) });
147
+ }
142
148
  case "media.screen":
143
- case "media.window":
144
- // Display capture has no deviceId constraint (the picker selects the
145
- // surface). The resolver is consulted but its id is not applicable here.
149
+ case "media.window": {
150
+ // DIRECT capture of the picked desktopCapturer surface (no system picker)
151
+ // via Electron's legacy `chromeMediaSource:desktop` + the resolved
152
+ // `captureSourceId`.
153
+ const captureSourceId = resolved?.captureSourceId;
154
+ if (typeof captureSourceId === "string" && captureSourceId.length > 0) {
155
+ return md.getUserMedia({
156
+ video: {
157
+ mandatory: {
158
+ chromeMediaSource: "desktop",
159
+ chromeMediaSourceId: captureSourceId,
160
+ },
161
+ },
162
+ });
163
+ }
164
+ // A declared surface ref that didn't resolve → PLACEHOLDER, never a
165
+ // default `getDisplayMedia` picker. The picker stays only when no ref is
166
+ // declared (a bare capture node on a non-Electron host).
167
+ if (declaredRef)
168
+ return null;
146
169
  return md.getDisplayMedia({ video: true });
170
+ }
147
171
  default:
148
172
  return null;
149
173
  }
150
174
  }
151
- /** A `getUserMedia` track constraint : a specific `deviceId` when resolved,
152
- * else `true` (the host's default device). */
175
+ /** A `getUserMedia` track constraint. A resolved deviceId is pinned with
176
+ * `exact`, NOT a bare (ideal) deviceId: an *ideal* constraint SILENTLY falls
177
+ * back to the host default camera when the requested device can't start (e.g.
178
+ * an INACTIVE virtual cam that's enumerated but produces no stream) — the
179
+ * "automatic allocation" of the WRONG camera. `exact` yields the requested
180
+ * device (its placeholder frame if idle), or an OverconstrainedError the
181
+ * caller catches into PLACEHOLDER — never the wrong cam. No deviceId → `true`
182
+ * (host default) applies ONLY when no deviceRef was declared. */
153
183
  function deviceConstraint(deviceId) {
154
- return typeof deviceId === "string" && deviceId.length > 0 ? { deviceId } : true;
184
+ return typeof deviceId === "string" && deviceId.length > 0
185
+ ? { deviceId: { exact: deviceId } }
186
+ : true;
155
187
  }
156
188
  /** Stop every track of a stream (RC11 — release the camera/mic, kill the
157
189
  * device light). */
@@ -1 +1 @@
1
- {"version":3,"file":"capture.js","sourceRoot":"","sources":["../../../src/render/primitives/capture.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capture.js","sourceRoot":"","sources":["../../../src/render/primitives/capture.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/render/primitives/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAc5D,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC;oEACgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,UAAU,GAAG,SAAS,CAAC;IACvD;;;;0EAIsE;IACtE,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IACjD;;;;;uEAKmE;IACnE,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,eAAO,MAAM,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC,CAWjF,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/render/primitives/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAgB5D,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC;oEACgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,UAAU,GAAG,SAAS,CAAC;IACvD;;;;0EAIsE;IACtE,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IACjD;;;;;uEAKmE;IACnE,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,eAAO,MAAM,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC,CAmBjF,CAAC"}
@@ -8,6 +8,8 @@ import { Text } from "./text";
8
8
  import { Image } from "./image";
9
9
  import { Shape } from "./shape";
10
10
  import { Media } from "./media";
11
+ import { MeetPeer } from "./meet-peer";
12
+ import { MeetPeerSlot } from "./meet-peer-slot";
11
13
  import { Instance } from "./instance";
12
14
  import { Capture } from "./capture";
13
15
  export const PRIMITIVES = {
@@ -18,8 +20,16 @@ export const PRIMITIVES = {
18
20
  image: Image,
19
21
  shape: Shape,
20
22
  media: Media,
23
+ // ADR 006 §3.3/§3.5 — the unified source kind : every exported source is a
24
+ // `meet.peer` node rendered in `<video srcObject>` from the WebRTC viewer.
25
+ "meet.peer": MeetPeer,
21
26
  instance: Instance,
22
27
  // RFC-0001 / ADR 004 — Zab vendor capture placeholder (transparent, inert).
23
28
  "x-zab.capture": Capture,
29
+ // ADR Blue 009 §3.1 (Amendment 2) — Zab vendor meet-peer SLOT placeholder.
30
+ // Carries only a logical `x-zab.slotRef` ; the host's slot-aware peer-stream
31
+ // registry resolves `slotRef → peer_label → MediaStream` (transparent when
32
+ // unbound). Closes the kind→primitive gap that left it an unknown-kind drop.
33
+ "x-zab.meet-peer": MeetPeerSlot,
24
34
  };
25
35
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/render/primitives/index.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,uEAAuE;AACvE,0DAA0D;AAK1D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2BpC,MAAM,CAAC,MAAM,UAAU,GAA+D;IACpF,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,QAAQ,EAAE,QAAQ;IAClB,4EAA4E;IAC5E,eAAe,EAAE,OAAO;CACzB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/render/primitives/index.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,uEAAuE;AACvE,0DAA0D;AAK1D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2BpC,MAAM,CAAC,MAAM,UAAU,GAA+D;IACpF,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,2EAA2E;IAC3E,2EAA2E;IAC3E,WAAW,EAAE,QAAQ;IACrB,QAAQ,EAAE,QAAQ;IAClB,4EAA4E;IAC5E,eAAe,EAAE,OAAO;IACxB,2EAA2E;IAC3E,6EAA6E;IAC7E,2EAA2E;IAC3E,6EAA6E;IAC7E,iBAAiB,EAAE,YAAY;CAChC,CAAC"}
@@ -0,0 +1,27 @@
1
+ /** Shared LIVE peer-stream rendering (ADR 006 §3.3/§3.5) — the SINGLE srcObject
2
+ * path used by BOTH the `media` primitive's live mode (#4, keyed on `peerLabel`)
3
+ * AND the generic `meet.peer` source kind (the unified source abstraction).
4
+ * There is no special renderer per source : every live source resolves
5
+ * `peerLabel → MediaStream` through the host viewer and paints it the same way.
6
+ *
7
+ * Resolution : prefer the reactive channel (`subscribePeerStream`, #3) so a node
8
+ * mounted BEFORE its peer connects re-renders on arrival ; fall back to the
9
+ * one-shot `resolvePeerStream` (#4 contract) ; no host resolver → stream-less
10
+ * box. Reading a stream is the ONLY side effect — the scene is never mutated
11
+ * (RC-ReadOnly).
12
+ *
13
+ * Geometry (RC-Geo) : the `<video>` fills `100%`/`100%` of the box the Tree's
14
+ * UniversalWrapper sized from the node's `x/y/width/height`. The geometry lives
15
+ * on the wrapper, NEVER on the video, so it is structurally impossible to force
16
+ * a full-viewport size ; `object-fit` is the scene-authored value.
17
+ *
18
+ * Ownership : the stream is owned by the viewer (#3). This component is a pure
19
+ * consumer — unmounting clears its own `srcObject` and stops NO track (a mirror
20
+ * must never tear a peer down for the on-air composite). */
21
+ export declare function LivePeerVideo({ peerLabel, objectFit, muted, }: {
22
+ peerLabel: string;
23
+ objectFit: string;
24
+ /** Audio playout hint. Always muted for now (broadcast audio is Pulsar-side). */
25
+ muted?: boolean;
26
+ }): import("react/jsx-runtime").JSX.Element;
27
+ //# sourceMappingURL=live-peer-video.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-peer-video.d.ts","sourceRoot":"","sources":["../../../src/render/primitives/live-peer-video.tsx"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;6DAmB6D;AAC7D,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,SAAS,EACT,KAAY,GACb,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,iFAAiF;IACjF,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,2CAyDA"}
@@ -0,0 +1,64 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useEffect, useRef, useState } from "react";
3
+ import { useOptionalLumencastRuntime } from "../../overlay/runtime-context";
4
+ /** Shared LIVE peer-stream rendering (ADR 006 §3.3/§3.5) — the SINGLE srcObject
5
+ * path used by BOTH the `media` primitive's live mode (#4, keyed on `peerLabel`)
6
+ * AND the generic `meet.peer` source kind (the unified source abstraction).
7
+ * There is no special renderer per source : every live source resolves
8
+ * `peerLabel → MediaStream` through the host viewer and paints it the same way.
9
+ *
10
+ * Resolution : prefer the reactive channel (`subscribePeerStream`, #3) so a node
11
+ * mounted BEFORE its peer connects re-renders on arrival ; fall back to the
12
+ * one-shot `resolvePeerStream` (#4 contract) ; no host resolver → stream-less
13
+ * box. Reading a stream is the ONLY side effect — the scene is never mutated
14
+ * (RC-ReadOnly).
15
+ *
16
+ * Geometry (RC-Geo) : the `<video>` fills `100%`/`100%` of the box the Tree's
17
+ * UniversalWrapper sized from the node's `x/y/width/height`. The geometry lives
18
+ * on the wrapper, NEVER on the video, so it is structurally impossible to force
19
+ * a full-viewport size ; `object-fit` is the scene-authored value.
20
+ *
21
+ * Ownership : the stream is owned by the viewer (#3). This component is a pure
22
+ * consumer — unmounting clears its own `srcObject` and stops NO track (a mirror
23
+ * must never tear a peer down for the on-air composite). */
24
+ export function LivePeerVideo({ peerLabel, objectFit, muted = true, }) {
25
+ const runtime = useOptionalLumencastRuntime();
26
+ const resolvePeerStream = runtime?.resolvePeerStream;
27
+ const subscribePeerStream = runtime?.subscribePeerStream;
28
+ const videoRef = useRef(null);
29
+ const [stream, setStream] = useState(null);
30
+ useEffect(() => {
31
+ if (subscribePeerStream !== undefined) {
32
+ return subscribePeerStream(peerLabel, setStream);
33
+ }
34
+ if (resolvePeerStream !== undefined) {
35
+ setStream(resolvePeerStream(peerLabel));
36
+ return;
37
+ }
38
+ setStream(null);
39
+ }, [peerLabel, resolvePeerStream, subscribePeerStream]);
40
+ // `srcObject` is not a serialisable attribute — attach imperatively. Never
41
+ // stop the tracks here (the viewer owns them).
42
+ useEffect(() => {
43
+ const el = videoRef.current;
44
+ if (el === null)
45
+ return;
46
+ el.srcObject = stream;
47
+ return () => {
48
+ if (el !== null)
49
+ el.srcObject = null;
50
+ };
51
+ }, [stream]);
52
+ if (stream === null) {
53
+ // Stream-less box of the wrapper geometry — transparent, inert, paints
54
+ // nothing. NOT an error : the peer can connect mid-show.
55
+ return (_jsx("div", { "aria-hidden": true, "data-lumencast-media-live": true, style: { width: "100%", height: "100%", opacity: 0, pointerEvents: "none" } }));
56
+ }
57
+ return (_jsx("video", { ref: videoRef, "data-lumencast-media-live": true, autoPlay: true, muted: muted, playsInline: true, style: {
58
+ width: "100%",
59
+ height: "100%",
60
+ objectFit: objectFit,
61
+ pointerEvents: "none",
62
+ } }));
63
+ }
64
+ //# sourceMappingURL=live-peer-video.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-peer-video.js","sourceRoot":"","sources":["../../../src/render/primitives/live-peer-video.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E;;;;;;;;;;;;;;;;;;;6DAmB6D;AAC7D,MAAM,UAAU,aAAa,CAAC,EAC5B,SAAS,EACT,SAAS,EACT,KAAK,GAAG,IAAI,GAMb;IACC,MAAM,OAAO,GAAG,2BAA2B,EAAE,CAAC;IAC9C,MAAM,iBAAiB,GAAG,OAAO,EAAE,iBAAiB,CAAC;IACrD,MAAM,mBAAmB,GAAG,OAAO,EAAE,mBAAmB,CAAC;IAEzD,MAAM,QAAQ,GAAG,MAAM,CAA0B,IAAI,CAAC,CAAC;IACvD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAqB,IAAI,CAAC,CAAC;IAE/D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;YACtC,OAAO,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;YACpC,SAAS,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC,EAAE,CAAC,SAAS,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAExD,2EAA2E;IAC3E,+CAA+C;IAC/C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC5B,IAAI,EAAE,KAAK,IAAI;YAAE,OAAO;QACxB,EAAE,CAAC,SAAS,GAAG,MAAM,CAAC;QACtB,OAAO,GAAG,EAAE;YACV,IAAI,EAAE,KAAK,IAAI;gBAAE,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC;QACvC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,uEAAuE;QACvE,yDAAyD;QACzD,OAAO,CACL,sEAGE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,GAC3E,CACH,CAAC;IACJ,CAAC;IAED,OAAO,CACL,gBACE,GAAG,EAAE,QAAQ,qCAEb,QAAQ,QACR,KAAK,EAAE,KAAK,EACZ,WAAW,QACX,KAAK,EAAE;YACL,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,SAA6C;YACxD,aAAa,EAAE,MAAM;SACtB,GACD,CACH,CAAC;AACJ,CAAC"}
@@ -1,15 +1,40 @@
1
1
  import type { PrimitiveProps } from "./index";
2
- /** Embedded video. `src`, `loop`, `mute`, `autoplay`. Audio is muted
3
- * by default broadcast audio is Pulsar-side, not from the browser
4
- * source.
5
- *
6
- * Security (Bastion, ADR 003) : `src` is the media primitive's sole
7
- * network sink (no `poster` / `<source>` / `<track>` are rendered). Like
8
- * every other asset leaf (image / image-fill / mask) it MUST pass
9
- * `gateSrc` BEFORE reaching the `<video>` otherwise a `kind:"media"`
10
- * node would make the headless Chromium of `zabrender` emit an
11
- * off-allowlist request (an SSRF surface). A rejected host/scheme omits
12
- * the source entirely (no passthrough), with an R9-clean diagnostic
13
- * ({ nodeId, field, reason } never the URL). */
2
+ /** Resolver injected by the consuming app (ADR 006 §3.3, #4). Maps a LOGICAL
3
+ * `peerLabel` (the `meet.peer.peer_label` carried by the scene) to the live
4
+ * `MediaStream` of that peer — supplied by the WebRTC viewer (issue #3). The
5
+ * stream is rendered in `srcObject` ; it NEVER enters the bundle or the content
6
+ * hash. Returns `null` when the peer is not (yet) connected → the node stays a
7
+ * stream-less box, no throw, no diagnostic (a peer can join mid-show). */
8
+ export type ResolvePeerStream = (peerLabel: string) => MediaStream | null;
9
+ /** Reactive variant (ADR 006 #3) : the viewer pushes a peer's stream when it
10
+ * connects and `null` when it leaves. The LIVE primitive prefers this over the
11
+ * one-shot resolver so a node that mounted BEFORE the peer connected re-renders
12
+ * on arrival (a peer joins mid-show). The listener is invoked immediately with
13
+ * the current value, then on every change ; the return value unsubscribes.
14
+ * Like `resolvePeerStream`, it is injected at mount — never the bundle. */
15
+ export type SubscribePeerStream = (peerLabel: string, listener: (stream: MediaStream | null) => void) => () => void;
16
+ /** Embedded video. Two source modes, picked by the node's props :
17
+ *
18
+ * - **BUNDLE** (`src`, the original mode) : a `<video src>` of a bundled /
19
+ * gated URL. Audio muted by default (broadcast audio is Pulsar-side). `src`
20
+ * is the sole network sink and MUST pass `gateSrc` before reaching the
21
+ * `<video>` (Bastion, ADR 003 — an off-allowlist request is an SSRF surface
22
+ * in headless `zabrender`). A rejected host/scheme omits the source.
23
+ *
24
+ * - **LIVE** (`peerLabel`, ADR 006 #4) : the source is a `meet.peer`'s
25
+ * `peer_label`. The runtime resolves the peer's `MediaStream` through a
26
+ * host-provided resolver (`resolvePeerStream`, injected at mount — NOT the
27
+ * bundle, like `resolveCaptureDevice`) and renders it imperatively via
28
+ * `<video>.srcObject` in real time. No URL, no `gateSrc` (a `MediaStream`
29
+ * is not a network sink). An absent resolver or an unconnected peer leaves a
30
+ * stream-less box — no throw, no diagnostic (peers join mid-show).
31
+ *
32
+ * `peerLabel` takes precedence when present (a live node), else `src` (bundle).
33
+ *
34
+ * Geometry is read-only (ADR 006 A1.6) : the node's `x/y/width/height` are
35
+ * applied by the Tree's UniversalWrapper around this primitive ; the `<video>`
36
+ * fills that box (`100%`/`100%`) with the scene-authored `object-fit`. The
37
+ * primitive NEVER forces full-screen and NEVER writes any geometry back — it
38
+ * only reads `resolved`. */
14
39
  export declare function Media({ resolved, nodeId }: PrimitiveProps): import("react/jsx-runtime").JSX.Element | null;
15
40
  //# sourceMappingURL=media.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../../src/render/primitives/media.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9C;;;;;;;;;;;mDAWmD;AACnD,wBAAgB,KAAK,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,cAAc,kDAuBzD"}
1
+ {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../../src/render/primitives/media.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAI9C;;;;;2EAK2E;AAC3E,MAAM,MAAM,iBAAiB,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK,WAAW,GAAG,IAAI,CAAC;AAE1E;;;;;4EAK4E;AAC5E,MAAM,MAAM,mBAAmB,GAAG,CAChC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,KAC3C,MAAM,IAAI,CAAC;AAEhB;;;;;;;;;;;;;;;;;;;;;;6BAsB6B;AAC7B,wBAAgB,KAAK,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,cAAc,kDA8BzD"}
@@ -1,30 +1,56 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { gateSrc, useAllowedHosts } from "../allowed-hosts";
3
- /** Embedded video. `src`, `loop`, `mute`, `autoplay`. Audio is muted
4
- * by default broadcast audio is Pulsar-side, not from the browser
5
- * source.
3
+ import { LivePeerVideo } from "./live-peer-video";
4
+ /** Embedded video. Two source modes, picked by the node's props :
6
5
  *
7
- * Security (Bastion, ADR 003) : `src` is the media primitive's sole
8
- * network sink (no `poster` / `<source>` / `<track>` are rendered). Like
9
- * every other asset leaf (image / image-fill / mask) it MUST pass
10
- * `gateSrc` BEFORE reaching the `<video>` otherwise a `kind:"media"`
11
- * node would make the headless Chromium of `zabrender` emit an
12
- * off-allowlist request (an SSRF surface). A rejected host/scheme omits
13
- * the source entirely (no passthrough), with an R9-clean diagnostic
14
- * ({ nodeId, field, reason } never the URL). */
6
+ * - **BUNDLE** (`src`, the original mode) : a `<video src>` of a bundled /
7
+ * gated URL. Audio muted by default (broadcast audio is Pulsar-side). `src`
8
+ * is the sole network sink and MUST pass `gateSrc` before reaching the
9
+ * `<video>` (Bastion, ADR 003an off-allowlist request is an SSRF surface
10
+ * in headless `zabrender`). A rejected host/scheme omits the source.
11
+ *
12
+ * - **LIVE** (`peerLabel`, ADR 006 #4) : the source is a `meet.peer`'s
13
+ * `peer_label`. The runtime resolves the peer's `MediaStream` through a
14
+ * host-provided resolver (`resolvePeerStream`, injected at mount — NOT the
15
+ * bundle, like `resolveCaptureDevice`) and renders it imperatively via
16
+ * `<video>.srcObject` in real time. No URL, no `gateSrc` (a `MediaStream`
17
+ * is not a network sink). An absent resolver or an unconnected peer leaves a
18
+ * stream-less box — no throw, no diagnostic (peers join mid-show).
19
+ *
20
+ * `peerLabel` takes precedence when present (a live node), else `src` (bundle).
21
+ *
22
+ * Geometry is read-only (ADR 006 A1.6) : the node's `x/y/width/height` are
23
+ * applied by the Tree's UniversalWrapper around this primitive ; the `<video>`
24
+ * fills that box (`100%`/`100%`) with the scene-authored `object-fit`. The
25
+ * primitive NEVER forces full-screen and NEVER writes any geometry back — it
26
+ * only reads `resolved`. */
15
27
  export function Media({ resolved, nodeId }) {
16
28
  const allowedHosts = useAllowedHosts();
29
+ const fit = resolved.fit ?? "cover";
30
+ const peerLabel = typeof resolved.peerLabel === "string" && resolved.peerLabel.length > 0
31
+ ? resolved.peerLabel
32
+ : "";
33
+ if (peerLabel !== "") {
34
+ // LIVE mode — the SAME srcObject path as the generic `meet.peer` source.
35
+ return _jsx(LivePeerVideo, { peerLabel: peerLabel, objectFit: fit });
36
+ }
37
+ // BUNDLE mode (unchanged) — gated `<video src>`.
17
38
  const src = gateSrc(resolved.src, allowedHosts, "media.src", nodeId);
18
39
  if (!src)
19
40
  return null;
20
41
  const loop = resolved.loop ?? true;
21
42
  const mute = resolved.mute ?? true;
22
43
  const autoplay = resolved.autoplay ?? true;
23
- const fit = resolved.fit ?? "cover";
24
- return (_jsx("video", { src: src, autoPlay: autoplay, loop: loop, muted: mute, playsInline: true, style: {
25
- width: "100%",
26
- height: "100%",
27
- objectFit: fit,
28
- } }));
44
+ return (_jsx("video", { src: src, autoPlay: autoplay, loop: loop, muted: mute, playsInline: true, style: fillBox(fit) }));
45
+ }
46
+ /** The bundle `<video src>` fills the box the UniversalWrapper sized from the
47
+ * node's `width`/`height` (RC-Geo) ; `object-fit` is the scene-authored `fit`.
48
+ * The geometry lives on the wrapper, never on the video. */
49
+ function fillBox(fit) {
50
+ return {
51
+ width: "100%",
52
+ height: "100%",
53
+ objectFit: fit,
54
+ };
29
55
  }
30
56
  //# sourceMappingURL=media.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"media.js","sourceRoot":"","sources":["../../../src/render/primitives/media.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE5D;;;;;;;;;;;mDAWmD;AACnD,MAAM,UAAU,KAAK,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAkB;IACxD,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IACrE,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,IAAI,GAAI,QAAQ,CAAC,IAA4B,IAAI,IAAI,CAAC;IAC5D,MAAM,IAAI,GAAI,QAAQ,CAAC,IAA4B,IAAI,IAAI,CAAC;IAC5D,MAAM,QAAQ,GAAI,QAAQ,CAAC,QAAgC,IAAI,IAAI,CAAC;IACpE,MAAM,GAAG,GAAI,QAAQ,CAAC,GAA0B,IAAI,OAAO,CAAC;IAE5D,OAAO,CACL,gBACE,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,IAAI,EACX,WAAW,QACX,KAAK,EAAE;YACL,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,GAAuC;SACnD,GACD,CACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"media.js","sourceRoot":"","sources":["../../../src/render/primitives/media.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAqBlD;;;;;;;;;;;;;;;;;;;;;;6BAsB6B;AAC7B,MAAM,UAAU,KAAK,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAkB;IACxD,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,MAAM,GAAG,GAAI,QAAQ,CAAC,GAA0B,IAAI,OAAO,CAAC;IAC5D,MAAM,SAAS,GACb,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;QACrE,CAAC,CAAC,QAAQ,CAAC,SAAS;QACpB,CAAC,CAAC,EAAE,CAAC;IAET,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;QACrB,yEAAyE;QACzE,OAAO,KAAC,aAAa,IAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,GAAI,CAAC;IACjE,CAAC;IAED,iDAAiD;IACjD,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IACrE,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,IAAI,GAAI,QAAQ,CAAC,IAA4B,IAAI,IAAI,CAAC;IAC5D,MAAM,IAAI,GAAI,QAAQ,CAAC,IAA4B,IAAI,IAAI,CAAC;IAC5D,MAAM,QAAQ,GAAI,QAAQ,CAAC,QAAgC,IAAI,IAAI,CAAC;IAEpE,OAAO,CACL,gBACE,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,IAAI,EACX,WAAW,QACX,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,GACnB,CACH,CAAC;AACJ,CAAC;AAED;;6DAE6D;AAC7D,SAAS,OAAO,CAAC,GAAW;IAC1B,OAAO;QACL,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,MAAM;QACd,SAAS,EAAE,GAAuC;KACnD,CAAC;AACJ,CAAC"}