@memberjunction/ng-explorer-core 6.2.0-edge.3 → 6.2.0-edge.4

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 (117) hide show
  1. package/README.md +10 -0
  2. package/dist/app-routing.module.d.ts.map +1 -1
  3. package/dist/app-routing.module.js +5 -0
  4. package/dist/app-routing.module.js.map +1 -1
  5. package/dist/generated/lazy-feature-config.d.ts +1 -1
  6. package/dist/generated/lazy-feature-config.d.ts.map +1 -1
  7. package/dist/generated/lazy-feature-config.js +3 -2
  8. package/dist/generated/lazy-feature-config.js.map +1 -1
  9. package/dist/lib/guards/moved-nav-item-redirect.d.ts +15 -0
  10. package/dist/lib/guards/moved-nav-item-redirect.d.ts.map +1 -0
  11. package/dist/lib/guards/moved-nav-item-redirect.js +37 -0
  12. package/dist/lib/guards/moved-nav-item-redirect.js.map +1 -0
  13. package/dist/lib/omnibar/omnibar-dashboard-matches.d.ts +34 -0
  14. package/dist/lib/omnibar/omnibar-dashboard-matches.d.ts.map +1 -0
  15. package/dist/lib/omnibar/omnibar-dashboard-matches.js +70 -0
  16. package/dist/lib/omnibar/omnibar-dashboard-matches.js.map +1 -0
  17. package/dist/lib/omnibar/omnibar-palette.component.d.ts +27 -2
  18. package/dist/lib/omnibar/omnibar-palette.component.d.ts.map +1 -1
  19. package/dist/lib/omnibar/omnibar-palette.component.js +126 -65
  20. package/dist/lib/omnibar/omnibar-palette.component.js.map +1 -1
  21. package/dist/lib/omnibar/omnibar-provider.d.ts +4 -0
  22. package/dist/lib/omnibar/omnibar-provider.d.ts.map +1 -1
  23. package/dist/lib/omnibar/omnibar-provider.js.map +1 -1
  24. package/dist/lib/omnibar/providers/omnibar-record.provider.d.ts +2 -2
  25. package/dist/lib/omnibar/providers/omnibar-record.provider.d.ts.map +1 -1
  26. package/dist/lib/omnibar/providers/omnibar-record.provider.js +3 -7
  27. package/dist/lib/omnibar/providers/omnibar-record.provider.js.map +1 -1
  28. package/dist/lib/omnibar/providers/omnibar-search.provider.d.ts +15 -2
  29. package/dist/lib/omnibar/providers/omnibar-search.provider.d.ts.map +1 -1
  30. package/dist/lib/omnibar/providers/omnibar-search.provider.js +59 -7
  31. package/dist/lib/omnibar/providers/omnibar-search.provider.js.map +1 -1
  32. package/dist/lib/profile/forking-setting.d.ts +8 -0
  33. package/dist/lib/profile/forking-setting.d.ts.map +1 -0
  34. package/dist/lib/profile/forking-setting.js +18 -0
  35. package/dist/lib/profile/forking-setting.js.map +1 -0
  36. package/dist/lib/profile/profile-dialog.component.d.ts +8 -0
  37. package/dist/lib/profile/profile-dialog.component.d.ts.map +1 -1
  38. package/dist/lib/profile/profile-dialog.component.js +182 -92
  39. package/dist/lib/profile/profile-dialog.component.js.map +1 -1
  40. package/dist/lib/resource-wrappers/artifact-resource.component.d.ts +16 -1
  41. package/dist/lib/resource-wrappers/artifact-resource.component.d.ts.map +1 -1
  42. package/dist/lib/resource-wrappers/artifact-resource.component.js +27 -4
  43. package/dist/lib/resource-wrappers/artifact-resource.component.js.map +1 -1
  44. package/dist/lib/resource-wrappers/chat-conversations-resource.component.d.ts +7 -18
  45. package/dist/lib/resource-wrappers/chat-conversations-resource.component.d.ts.map +1 -1
  46. package/dist/lib/resource-wrappers/chat-conversations-resource.component.js +20 -41
  47. package/dist/lib/resource-wrappers/chat-conversations-resource.component.js.map +1 -1
  48. package/dist/lib/resource-wrappers/chat-search-routing.d.ts +10 -3
  49. package/dist/lib/resource-wrappers/chat-search-routing.d.ts.map +1 -1
  50. package/dist/lib/resource-wrappers/chat-search-routing.js +11 -4
  51. package/dist/lib/resource-wrappers/chat-search-routing.js.map +1 -1
  52. package/dist/lib/resource-wrappers/dashboard-add-to-menu.component.d.ts +29 -0
  53. package/dist/lib/resource-wrappers/dashboard-add-to-menu.component.d.ts.map +1 -0
  54. package/dist/lib/resource-wrappers/dashboard-add-to-menu.component.js +141 -0
  55. package/dist/lib/resource-wrappers/dashboard-add-to-menu.component.js.map +1 -0
  56. package/dist/lib/resource-wrappers/dashboard-part-config.d.ts +28 -0
  57. package/dist/lib/resource-wrappers/dashboard-part-config.d.ts.map +1 -0
  58. package/dist/lib/resource-wrappers/dashboard-part-config.js +150 -0
  59. package/dist/lib/resource-wrappers/dashboard-part-config.js.map +1 -0
  60. package/dist/lib/resource-wrappers/dashboard-resource.component.d.ts +361 -56
  61. package/dist/lib/resource-wrappers/dashboard-resource.component.d.ts.map +1 -1
  62. package/dist/lib/resource-wrappers/dashboard-resource.component.js +1312 -361
  63. package/dist/lib/resource-wrappers/dashboard-resource.component.js.map +1 -1
  64. package/dist/lib/resource-wrappers/dashboard-source-search.d.ts +86 -0
  65. package/dist/lib/resource-wrappers/dashboard-source-search.d.ts.map +1 -0
  66. package/dist/lib/resource-wrappers/dashboard-source-search.js +136 -0
  67. package/dist/lib/resource-wrappers/dashboard-source-search.js.map +1 -0
  68. package/dist/lib/resource-wrappers/dashboard-studio-pane.d.ts +30 -0
  69. package/dist/lib/resource-wrappers/dashboard-studio-pane.d.ts.map +1 -0
  70. package/dist/lib/resource-wrappers/dashboard-studio-pane.js +55 -0
  71. package/dist/lib/resource-wrappers/dashboard-studio-pane.js.map +1 -0
  72. package/dist/lib/resource-wrappers/dashboard-studio-tools.d.ts +135 -0
  73. package/dist/lib/resource-wrappers/dashboard-studio-tools.d.ts.map +1 -0
  74. package/dist/lib/resource-wrappers/dashboard-studio-tools.js +856 -0
  75. package/dist/lib/resource-wrappers/dashboard-studio-tools.js.map +1 -0
  76. package/dist/lib/resource-wrappers/dashboard-tab-agent.d.ts +87 -0
  77. package/dist/lib/resource-wrappers/dashboard-tab-agent.d.ts.map +1 -0
  78. package/dist/lib/resource-wrappers/dashboard-tab-agent.js +125 -0
  79. package/dist/lib/resource-wrappers/dashboard-tab-agent.js.map +1 -0
  80. package/dist/lib/resource-wrappers/livekit-room-resource.component.d.ts +28 -7
  81. package/dist/lib/resource-wrappers/livekit-room-resource.component.d.ts.map +1 -1
  82. package/dist/lib/resource-wrappers/livekit-room-resource.component.js +174 -112
  83. package/dist/lib/resource-wrappers/livekit-room-resource.component.js.map +1 -1
  84. package/dist/lib/resource-wrappers/search-results-resource.component.d.ts.map +1 -1
  85. package/dist/lib/resource-wrappers/search-results-resource.component.js +5 -4
  86. package/dist/lib/resource-wrappers/search-results-resource.component.js.map +1 -1
  87. package/dist/lib/shell/components/tabs/tab-container.component.d.ts +7 -0
  88. package/dist/lib/shell/components/tabs/tab-container.component.d.ts.map +1 -1
  89. package/dist/lib/shell/components/tabs/tab-container.component.js +20 -2
  90. package/dist/lib/shell/components/tabs/tab-container.component.js.map +1 -1
  91. package/dist/lib/shell/dashboard-tab-for-url.d.ts +35 -0
  92. package/dist/lib/shell/dashboard-tab-for-url.d.ts.map +1 -0
  93. package/dist/lib/shell/dashboard-tab-for-url.js +39 -0
  94. package/dist/lib/shell/dashboard-tab-for-url.js.map +1 -0
  95. package/dist/lib/shell/shell.component.d.ts +31 -2
  96. package/dist/lib/shell/shell.component.d.ts.map +1 -1
  97. package/dist/lib/shell/shell.component.js +109 -35
  98. package/dist/lib/shell/shell.component.js.map +1 -1
  99. package/dist/lib/shell/shell.module.d.ts +2 -1
  100. package/dist/lib/shell/shell.module.d.ts.map +1 -1
  101. package/dist/lib/shell/shell.module.js +6 -2
  102. package/dist/lib/shell/shell.module.js.map +1 -1
  103. package/dist/lib/single-dashboard/single-dashboard.component.js +1 -1
  104. package/dist/lib/single-dashboard/single-dashboard.component.js.map +1 -1
  105. package/dist/lib/template-user/template-user-banner.component.d.ts +20 -0
  106. package/dist/lib/template-user/template-user-banner.component.d.ts.map +1 -0
  107. package/dist/lib/template-user/template-user-banner.component.js +67 -0
  108. package/dist/lib/template-user/template-user-banner.component.js.map +1 -0
  109. package/dist/module.d.ts +61 -59
  110. package/dist/module.d.ts.map +1 -1
  111. package/dist/module.js +7 -0
  112. package/dist/module.js.map +1 -1
  113. package/dist/public-api.d.ts +1 -0
  114. package/dist/public-api.d.ts.map +1 -1
  115. package/dist/public-api.js +1 -0
  116. package/dist/public-api.js.map +1 -1
  117. package/package.json +58 -53
@@ -6,6 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { Component, ChangeDetectorRef, inject } from '@angular/core';
8
8
  import { BaseResourceComponent } from '@memberjunction/ng-shared';
9
+ import { ConversationEngine } from '@memberjunction/core-entities';
9
10
  import { RegisterClass, UUIDsEqual } from '@memberjunction/global';
10
11
  import { AIEngineBase } from '@memberjunction/ai-engine-base';
11
12
  import { RunView } from '@memberjunction/core';
@@ -19,8 +20,9 @@ import * as i3 from "@memberjunction/ng-mj-livekit-room";
19
20
  const _forTrack0 = ($index, $item) => $item.ID;
20
21
  const _forTrack1 = ($index, $item) => $item.Value;
21
22
  const _forTrack2 = ($index, $item) => $item.ModelID;
22
- const _forTrack3 = ($index, $item) => $item.RoomName;
23
- const _forTrack4 = ($index, $item) => $item.ConversationID;
23
+ const _forTrack3 = ($index, $item) => $item.PersonaID ?? $item.ID;
24
+ const _forTrack4 = ($index, $item) => $item.RoomName;
25
+ const _forTrack5 = ($index, $item) => $item.ConversationID;
24
26
  function LiveKitRoomResource_Case_0_Template(rf, ctx) { if (rf & 1) {
25
27
  const _r1 = i0.ɵɵgetCurrentView();
26
28
  i0.ɵɵelementStart(0, "mj-livekit-agent-room", 4);
@@ -68,7 +70,7 @@ function LiveKitRoomResource_Case_1_Conditional_17_Conditional_9_For_8_Template(
68
70
  } if (rf & 2) {
69
71
  const v_r8 = ctx.$implicit;
70
72
  const ctx_r1 = i0.ɵɵnextContext(4);
71
- i0.ɵɵproperty("value", v_r8.ID)("selected", v_r8.ID === ctx_r1.selectedVoice);
73
+ i0.ɵɵproperty("value", v_r8.ID)("selected", v_r8 === ctx_r1.SelectedVoiceOption);
72
74
  i0.ɵɵadvance();
73
75
  i0.ɵɵtextInterpolate(v_r8.Name);
74
76
  } }
@@ -84,7 +86,7 @@ function LiveKitRoomResource_Case_1_Conditional_17_Conditional_9_Template(rf, ct
84
86
  i0.ɵɵelementStart(5, "option", 18);
85
87
  i0.ɵɵtext(6, "Default voice");
86
88
  i0.ɵɵelementEnd();
87
- i0.ɵɵrepeaterCreate(7, LiveKitRoomResource_Case_1_Conditional_17_Conditional_9_For_8_Template, 2, 3, "option", 14, _forTrack0);
89
+ i0.ɵɵrepeaterCreate(7, LiveKitRoomResource_Case_1_Conditional_17_Conditional_9_For_8_Template, 2, 3, "option", 14, _forTrack3);
88
90
  i0.ɵɵelementEnd();
89
91
  } if (rf & 2) {
90
92
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -197,6 +199,20 @@ function LiveKitRoomResource_Case_1_Template(rf, ctx) { if (rf & 1) {
197
199
  i0.ɵɵadvance(2);
198
200
  i0.ɵɵproperty("disabled", !ctx_r1.selectedTargetId);
199
201
  } }
202
+ function LiveKitRoomResource_Case_2_Conditional_27_Template(rf, ctx) { if (rf & 1) {
203
+ const _r12 = i0.ɵɵgetCurrentView();
204
+ i0.ɵɵelementStart(0, "button", 37);
205
+ i0.ɵɵlistener("click", function LiveKitRoomResource_Case_2_Conditional_27_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OpenPreviewRoom()); });
206
+ i0.ɵɵelement(1, "i", 38);
207
+ i0.ɵɵelementStart(2, "span", 39)(3, "span", 32);
208
+ i0.ɵɵtext(4, "Preview room");
209
+ i0.ɵɵelementStart(5, "span", 24);
210
+ i0.ɵɵtext(6, "dev");
211
+ i0.ɵɵelementEnd()();
212
+ i0.ɵɵelementStart(7, "span", 33);
213
+ i0.ɵɵtext(8, "Try the room with your camera and simulated people. No server needed.");
214
+ i0.ɵɵelementEnd()()();
215
+ } }
200
216
  function LiveKitRoomResource_Case_2_Template(rf, ctx) { if (rf & 1) {
201
217
  const _r11 = i0.ɵɵgetCurrentView();
202
218
  i0.ɵɵelementStart(0, "div", 1)(1, "div", 28)(2, "div", 8);
@@ -234,35 +250,41 @@ function LiveKitRoomResource_Case_2_Template(rf, ctx) { if (rf & 1) {
234
250
  i0.ɵɵelementEnd();
235
251
  i0.ɵɵelementStart(25, "span", 33);
236
252
  i0.ɵɵtext(26, "Read transcripts of past meetings.");
237
- i0.ɵɵelementEnd()()()()();
253
+ i0.ɵɵelementEnd()();
254
+ i0.ɵɵconditionalCreate(27, LiveKitRoomResource_Case_2_Conditional_27_Template, 9, 0, "button", 36);
255
+ i0.ɵɵelementEnd()()();
256
+ } if (rf & 2) {
257
+ const ctx_r1 = i0.ɵɵnextContext();
258
+ i0.ɵɵadvance(27);
259
+ i0.ɵɵconditional(ctx_r1.CanOpenPreviewRoom ? 27 : -1);
238
260
  } }
239
261
  function LiveKitRoomResource_Case_3_Conditional_7_Template(rf, ctx) { if (rf & 1) {
240
- i0.ɵɵelementStart(0, "div", 36);
241
- i0.ɵɵelement(1, "i", 42);
262
+ i0.ɵɵelementStart(0, "div", 40);
263
+ i0.ɵɵelement(1, "i", 46);
242
264
  i0.ɵɵtext(2, " Finding active rooms\u2026");
243
265
  i0.ɵɵelementEnd();
244
266
  } }
245
267
  function LiveKitRoomResource_Case_3_Conditional_8_For_2_Template(rf, ctx) { if (rf & 1) {
246
- const _r13 = i0.ɵɵgetCurrentView();
247
- i0.ɵɵelementStart(0, "button", 44);
248
- i0.ɵɵlistener("click", function LiveKitRoomResource_Case_3_Conditional_8_For_2_Template_button_click_0_listener() { const r_r14 = i0.ɵɵrestoreView(_r13).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.joinExistingRoom(r_r14.RoomName)); });
249
- i0.ɵɵelementStart(1, "span", 45);
250
- i0.ɵɵelement(2, "i", 46);
268
+ const _r14 = i0.ɵɵgetCurrentView();
269
+ i0.ɵɵelementStart(0, "button", 48);
270
+ i0.ɵɵlistener("click", function LiveKitRoomResource_Case_3_Conditional_8_For_2_Template_button_click_0_listener() { const r_r15 = i0.ɵɵrestoreView(_r14).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.joinExistingRoom(r_r15.RoomName)); });
271
+ i0.ɵɵelementStart(1, "span", 49);
272
+ i0.ɵɵelement(2, "i", 50);
251
273
  i0.ɵɵtext(3);
252
274
  i0.ɵɵelementEnd();
253
- i0.ɵɵelementStart(4, "span", 47);
275
+ i0.ɵɵelementStart(4, "span", 51);
254
276
  i0.ɵɵtext(5);
255
277
  i0.ɵɵelementEnd()();
256
278
  } if (rf & 2) {
257
- const r_r14 = ctx.$implicit;
279
+ const r_r15 = ctx.$implicit;
258
280
  i0.ɵɵadvance(3);
259
- i0.ɵɵtextInterpolate1(" ", r_r14.Label);
281
+ i0.ɵɵtextInterpolate1(" ", r_r15.Label);
260
282
  i0.ɵɵadvance(2);
261
- i0.ɵɵtextInterpolate2("", r_r14.AgentCount, " agent", r_r14.AgentCount === 1 ? "" : "s", " \u00B7 Join");
283
+ i0.ɵɵtextInterpolate2("", r_r15.AgentCount, " agent", r_r15.AgentCount === 1 ? "" : "s", " \u00B7 Join");
262
284
  } }
263
285
  function LiveKitRoomResource_Case_3_Conditional_8_Template(rf, ctx) { if (rf & 1) {
264
- i0.ɵɵelementStart(0, "div", 37);
265
- i0.ɵɵrepeaterCreate(1, LiveKitRoomResource_Case_3_Conditional_8_For_2_Template, 6, 3, "button", 43, _forTrack3);
286
+ i0.ɵɵelementStart(0, "div", 41);
287
+ i0.ɵɵrepeaterCreate(1, LiveKitRoomResource_Case_3_Conditional_8_For_2_Template, 6, 3, "button", 47, _forTrack4);
266
288
  i0.ɵɵelementEnd();
267
289
  } if (rf & 2) {
268
290
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -275,24 +297,24 @@ function LiveKitRoomResource_Case_3_Conditional_9_Template(rf, ctx) { if (rf & 1
275
297
  i0.ɵɵelementEnd();
276
298
  } }
277
299
  function LiveKitRoomResource_Case_3_Template(rf, ctx) { if (rf & 1) {
278
- const _r12 = i0.ɵɵgetCurrentView();
300
+ const _r13 = i0.ɵɵgetCurrentView();
279
301
  i0.ɵɵelementStart(0, "div", 1)(1, "div", 28)(2, "button", 6);
280
- i0.ɵɵlistener("click", function LiveKitRoomResource_Case_3_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.backToLanding()); });
302
+ i0.ɵɵlistener("click", function LiveKitRoomResource_Case_3_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.backToLanding()); });
281
303
  i0.ɵɵelement(3, "i", 7);
282
304
  i0.ɵɵtext(4, " Back");
283
305
  i0.ɵɵelementEnd();
284
306
  i0.ɵɵelementStart(5, "h2", 10);
285
307
  i0.ɵɵtext(6, "Join a room");
286
308
  i0.ɵɵelementEnd();
287
- i0.ɵɵconditionalCreate(7, LiveKitRoomResource_Case_3_Conditional_7_Template, 3, 0, "div", 36)(8, LiveKitRoomResource_Case_3_Conditional_8_Template, 3, 0, "div", 37)(9, LiveKitRoomResource_Case_3_Conditional_9_Template, 2, 0, "p", 15);
288
- i0.ɵɵelementStart(10, "label", 38);
309
+ i0.ɵɵconditionalCreate(7, LiveKitRoomResource_Case_3_Conditional_7_Template, 3, 0, "div", 40)(8, LiveKitRoomResource_Case_3_Conditional_8_Template, 3, 0, "div", 41)(9, LiveKitRoomResource_Case_3_Conditional_9_Template, 2, 0, "p", 15);
310
+ i0.ɵɵelementStart(10, "label", 42);
289
311
  i0.ɵɵtext(11, "Or join by name");
290
312
  i0.ɵɵelementEnd();
291
- i0.ɵɵelementStart(12, "div", 39)(13, "input", 40);
292
- i0.ɵɵlistener("input", function LiveKitRoomResource_Case_3_Template_input_input_13_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.manualRoomName = $event.target.value); })("keydown.enter", function LiveKitRoomResource_Case_3_Template_input_keydown_enter_13_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.joinExistingRoom(ctx_r1.manualRoomName)); });
313
+ i0.ɵɵelementStart(12, "div", 43)(13, "input", 44);
314
+ i0.ɵɵlistener("input", function LiveKitRoomResource_Case_3_Template_input_input_13_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.manualRoomName = $event.target.value); })("keydown.enter", function LiveKitRoomResource_Case_3_Template_input_keydown_enter_13_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.joinExistingRoom(ctx_r1.manualRoomName)); });
293
315
  i0.ɵɵelementEnd();
294
- i0.ɵɵelementStart(14, "button", 41);
295
- i0.ɵɵlistener("click", function LiveKitRoomResource_Case_3_Template_button_click_14_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.joinExistingRoom(ctx_r1.manualRoomName)); });
316
+ i0.ɵɵelementStart(14, "button", 45);
317
+ i0.ɵɵlistener("click", function LiveKitRoomResource_Case_3_Template_button_click_14_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.joinExistingRoom(ctx_r1.manualRoomName)); });
296
318
  i0.ɵɵtext(15, "Join");
297
319
  i0.ɵɵelementEnd()()()();
298
320
  } if (rf & 2) {
@@ -305,33 +327,33 @@ function LiveKitRoomResource_Case_3_Template(rf, ctx) { if (rf & 1) {
305
327
  i0.ɵɵproperty("disabled", !ctx_r1.manualRoomName.trim());
306
328
  } }
307
329
  function LiveKitRoomResource_Case_4_Conditional_2_Conditional_5_Template(rf, ctx) { if (rf & 1) {
308
- i0.ɵɵelementStart(0, "div", 36);
309
- i0.ɵɵelement(1, "i", 42);
330
+ i0.ɵɵelementStart(0, "div", 40);
331
+ i0.ɵɵelement(1, "i", 46);
310
332
  i0.ɵɵtext(2, " Loading\u2026");
311
333
  i0.ɵɵelementEnd();
312
334
  } }
313
335
  function LiveKitRoomResource_Case_4_Conditional_2_Conditional_6_For_2_Template(rf, ctx) { if (rf & 1) {
314
- const _r16 = i0.ɵɵgetCurrentView();
315
- i0.ɵɵelementStart(0, "button", 44);
316
- i0.ɵɵlistener("click", function LiveKitRoomResource_Case_4_Conditional_2_Conditional_6_For_2_Template_button_click_0_listener() { const h_r17 = i0.ɵɵrestoreView(_r16).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.openTranscript(h_r17)); });
317
- i0.ɵɵelementStart(1, "span", 45);
318
- i0.ɵɵelement(2, "i", 48);
336
+ const _r17 = i0.ɵɵgetCurrentView();
337
+ i0.ɵɵelementStart(0, "button", 48);
338
+ i0.ɵɵlistener("click", function LiveKitRoomResource_Case_4_Conditional_2_Conditional_6_For_2_Template_button_click_0_listener() { const h_r18 = i0.ɵɵrestoreView(_r17).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.openTranscript(h_r18)); });
339
+ i0.ɵɵelementStart(1, "span", 49);
340
+ i0.ɵɵelement(2, "i", 52);
319
341
  i0.ɵɵtext(3);
320
342
  i0.ɵɵelementEnd();
321
- i0.ɵɵelementStart(4, "span", 47);
343
+ i0.ɵɵelementStart(4, "span", 51);
322
344
  i0.ɵɵtext(5);
323
345
  i0.ɵɵelementEnd()();
324
346
  } if (rf & 2) {
325
- const h_r17 = ctx.$implicit;
347
+ const h_r18 = ctx.$implicit;
326
348
  const ctx_r1 = i0.ɵɵnextContext(4);
327
349
  i0.ɵɵadvance(3);
328
- i0.ɵɵtextInterpolate1(" ", h_r17.Name);
350
+ i0.ɵɵtextInterpolate1(" ", h_r18.Name);
329
351
  i0.ɵɵadvance(2);
330
- i0.ɵɵtextInterpolate(ctx_r1.formatTime(h_r17.At));
352
+ i0.ɵɵtextInterpolate(ctx_r1.formatTime(h_r18.At));
331
353
  } }
332
354
  function LiveKitRoomResource_Case_4_Conditional_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
333
- i0.ɵɵelementStart(0, "div", 37);
334
- i0.ɵɵrepeaterCreate(1, LiveKitRoomResource_Case_4_Conditional_2_Conditional_6_For_2_Template, 6, 2, "button", 43, _forTrack4);
355
+ i0.ɵɵelementStart(0, "div", 41);
356
+ i0.ɵɵrepeaterCreate(1, LiveKitRoomResource_Case_4_Conditional_2_Conditional_6_For_2_Template, 6, 2, "button", 47, _forTrack5);
335
357
  i0.ɵɵelementEnd();
336
358
  } if (rf & 2) {
337
359
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -344,45 +366,45 @@ function LiveKitRoomResource_Case_4_Conditional_2_Conditional_7_Template(rf, ctx
344
366
  i0.ɵɵelementEnd();
345
367
  } }
346
368
  function LiveKitRoomResource_Case_4_Conditional_2_Template(rf, ctx) { if (rf & 1) {
347
- const _r15 = i0.ɵɵgetCurrentView();
369
+ const _r16 = i0.ɵɵgetCurrentView();
348
370
  i0.ɵɵelementStart(0, "button", 6);
349
- i0.ɵɵlistener("click", function LiveKitRoomResource_Case_4_Conditional_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.backToLanding()); });
371
+ i0.ɵɵlistener("click", function LiveKitRoomResource_Case_4_Conditional_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.backToLanding()); });
350
372
  i0.ɵɵelement(1, "i", 7);
351
373
  i0.ɵɵtext(2, " Back");
352
374
  i0.ɵɵelementEnd();
353
375
  i0.ɵɵelementStart(3, "h2", 10);
354
376
  i0.ɵɵtext(4, "Past meetings");
355
377
  i0.ɵɵelementEnd();
356
- i0.ɵɵconditionalCreate(5, LiveKitRoomResource_Case_4_Conditional_2_Conditional_5_Template, 3, 0, "div", 36)(6, LiveKitRoomResource_Case_4_Conditional_2_Conditional_6_Template, 3, 0, "div", 37)(7, LiveKitRoomResource_Case_4_Conditional_2_Conditional_7_Template, 2, 0, "p", 15);
378
+ i0.ɵɵconditionalCreate(5, LiveKitRoomResource_Case_4_Conditional_2_Conditional_5_Template, 3, 0, "div", 40)(6, LiveKitRoomResource_Case_4_Conditional_2_Conditional_6_Template, 3, 0, "div", 41)(7, LiveKitRoomResource_Case_4_Conditional_2_Conditional_7_Template, 2, 0, "p", 15);
357
379
  } if (rf & 2) {
358
380
  const ctx_r1 = i0.ɵɵnextContext(2);
359
381
  i0.ɵɵadvance(5);
360
382
  i0.ɵɵconditional(ctx_r1.loadingHistory ? 5 : ctx_r1.historyRooms.length ? 6 : 7);
361
383
  } }
362
384
  function LiveKitRoomResource_Case_4_Conditional_3_Conditional_5_Template(rf, ctx) { if (rf & 1) {
363
- i0.ɵɵelementStart(0, "div", 36);
364
- i0.ɵɵelement(1, "i", 42);
385
+ i0.ɵɵelementStart(0, "div", 40);
386
+ i0.ɵɵelement(1, "i", 46);
365
387
  i0.ɵɵtext(2, " Loading transcript\u2026");
366
388
  i0.ɵɵelementEnd();
367
389
  } }
368
390
  function LiveKitRoomResource_Case_4_Conditional_3_Conditional_6_For_2_Template(rf, ctx) { if (rf & 1) {
369
- i0.ɵɵelementStart(0, "div", 51)(1, "span", 52);
391
+ i0.ɵɵelementStart(0, "div", 55)(1, "span", 56);
370
392
  i0.ɵɵtext(2);
371
393
  i0.ɵɵelementEnd();
372
- i0.ɵɵelementStart(3, "span", 53);
394
+ i0.ɵɵelementStart(3, "span", 57);
373
395
  i0.ɵɵtext(4);
374
396
  i0.ɵɵelementEnd()();
375
397
  } if (rf & 2) {
376
- const line_r19 = ctx.$implicit;
377
- i0.ɵɵclassProp("mj-lk-tline--agent", line_r19.Kind === "agent")("mj-lk-tline--error", line_r19.Kind === "error");
398
+ const line_r20 = ctx.$implicit;
399
+ i0.ɵɵclassProp("mj-lk-tline--agent", line_r20.Kind === "agent")("mj-lk-tline--error", line_r20.Kind === "error");
378
400
  i0.ɵɵadvance(2);
379
- i0.ɵɵtextInterpolate(line_r19.Speaker);
401
+ i0.ɵɵtextInterpolate(line_r20.Speaker);
380
402
  i0.ɵɵadvance(2);
381
- i0.ɵɵtextInterpolate(line_r19.Message);
403
+ i0.ɵɵtextInterpolate(line_r20.Message);
382
404
  } }
383
405
  function LiveKitRoomResource_Case_4_Conditional_3_Conditional_6_Template(rf, ctx) { if (rf & 1) {
384
- i0.ɵɵelementStart(0, "div", 49);
385
- i0.ɵɵrepeaterCreate(1, LiveKitRoomResource_Case_4_Conditional_3_Conditional_6_For_2_Template, 5, 6, "div", 50, i0.ɵɵrepeaterTrackByIndex);
406
+ i0.ɵɵelementStart(0, "div", 53);
407
+ i0.ɵɵrepeaterCreate(1, LiveKitRoomResource_Case_4_Conditional_3_Conditional_6_For_2_Template, 5, 6, "div", 54, i0.ɵɵrepeaterTrackByIndex);
386
408
  i0.ɵɵelementEnd();
387
409
  } if (rf & 2) {
388
410
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -395,16 +417,16 @@ function LiveKitRoomResource_Case_4_Conditional_3_Conditional_7_Template(rf, ctx
395
417
  i0.ɵɵelementEnd();
396
418
  } }
397
419
  function LiveKitRoomResource_Case_4_Conditional_3_Template(rf, ctx) { if (rf & 1) {
398
- const _r18 = i0.ɵɵgetCurrentView();
420
+ const _r19 = i0.ɵɵgetCurrentView();
399
421
  i0.ɵɵelementStart(0, "button", 6);
400
- i0.ɵɵlistener("click", function LiveKitRoomResource_Case_4_Conditional_3_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.closeTranscript()); });
422
+ i0.ɵɵlistener("click", function LiveKitRoomResource_Case_4_Conditional_3_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.closeTranscript()); });
401
423
  i0.ɵɵelement(1, "i", 7);
402
424
  i0.ɵɵtext(2, " All meetings");
403
425
  i0.ɵɵelementEnd();
404
426
  i0.ɵɵelementStart(3, "h2", 10);
405
427
  i0.ɵɵtext(4);
406
428
  i0.ɵɵelementEnd();
407
- i0.ɵɵconditionalCreate(5, LiveKitRoomResource_Case_4_Conditional_3_Conditional_5_Template, 3, 0, "div", 36)(6, LiveKitRoomResource_Case_4_Conditional_3_Conditional_6_Template, 3, 0, "div", 49)(7, LiveKitRoomResource_Case_4_Conditional_3_Conditional_7_Template, 2, 0, "p", 15);
429
+ i0.ɵɵconditionalCreate(5, LiveKitRoomResource_Case_4_Conditional_3_Conditional_5_Template, 3, 0, "div", 40)(6, LiveKitRoomResource_Case_4_Conditional_3_Conditional_6_Template, 3, 0, "div", 53)(7, LiveKitRoomResource_Case_4_Conditional_3_Conditional_7_Template, 2, 0, "p", 15);
408
430
  } if (rf & 2) {
409
431
  const ctx_r1 = i0.ɵɵnextContext(2);
410
432
  i0.ɵɵadvance(4);
@@ -423,7 +445,7 @@ function LiveKitRoomResource_Case_4_Template(rf, ctx) { if (rf & 1) {
423
445
  } }
424
446
  function LiveKitRoomResource_Case_5_Template(rf, ctx) { if (rf & 1) {
425
447
  i0.ɵɵelementStart(0, "div", 2);
426
- i0.ɵɵelement(1, "i", 54);
448
+ i0.ɵɵelement(1, "i", 58);
427
449
  i0.ɵɵelementStart(2, "span");
428
450
  i0.ɵɵtext(3);
429
451
  i0.ɵɵelementEnd()();
@@ -438,21 +460,21 @@ function LiveKitRoomResource_Case_6_Template(rf, ctx) { if (rf & 1) {
438
460
  i0.ɵɵelementEnd();
439
461
  } }
440
462
  function LiveKitRoomResource_Conditional_7_Conditional_8_For_2_Template(rf, ctx) { if (rf & 1) {
441
- const _r21 = i0.ɵɵgetCurrentView();
442
- i0.ɵɵelementStart(0, "span", 69);
463
+ const _r22 = i0.ɵɵgetCurrentView();
464
+ i0.ɵɵelementStart(0, "span", 73);
443
465
  i0.ɵɵtext(1);
444
- i0.ɵɵelementStart(2, "button", 70);
445
- i0.ɵɵlistener("click", function LiveKitRoomResource_Conditional_7_Conditional_8_For_2_Template_button_click_2_listener() { const u_r22 = i0.ɵɵrestoreView(_r21).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.removeInvitee(u_r22.ID)); });
446
- i0.ɵɵelement(3, "i", 71);
466
+ i0.ɵɵelementStart(2, "button", 74);
467
+ i0.ɵɵlistener("click", function LiveKitRoomResource_Conditional_7_Conditional_8_For_2_Template_button_click_2_listener() { const u_r23 = i0.ɵɵrestoreView(_r22).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.removeInvitee(u_r23.ID)); });
468
+ i0.ɵɵelement(3, "i", 75);
447
469
  i0.ɵɵelementEnd()();
448
470
  } if (rf & 2) {
449
- const u_r22 = ctx.$implicit;
471
+ const u_r23 = ctx.$implicit;
450
472
  i0.ɵɵadvance();
451
- i0.ɵɵtextInterpolate1(" ", u_r22.Name, " ");
473
+ i0.ɵɵtextInterpolate1(" ", u_r23.Name, " ");
452
474
  } }
453
475
  function LiveKitRoomResource_Conditional_7_Conditional_8_Template(rf, ctx) { if (rf & 1) {
454
- i0.ɵɵelementStart(0, "div", 62);
455
- i0.ɵɵrepeaterCreate(1, LiveKitRoomResource_Conditional_7_Conditional_8_For_2_Template, 4, 1, "span", 69, _forTrack0);
476
+ i0.ɵɵelementStart(0, "div", 66);
477
+ i0.ɵɵrepeaterCreate(1, LiveKitRoomResource_Conditional_7_Conditional_8_For_2_Template, 4, 1, "span", 73, _forTrack0);
456
478
  i0.ɵɵelementEnd();
457
479
  } if (rf & 2) {
458
480
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -460,33 +482,33 @@ function LiveKitRoomResource_Conditional_7_Conditional_8_Template(rf, ctx) { if
460
482
  i0.ɵɵrepeater(ctx_r1.selectedInvitees);
461
483
  } }
462
484
  function LiveKitRoomResource_Conditional_7_Conditional_9_For_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
463
- i0.ɵɵelementStart(0, "span", 75);
485
+ i0.ɵɵelementStart(0, "span", 79);
464
486
  i0.ɵɵtext(1);
465
487
  i0.ɵɵelementEnd();
466
488
  } if (rf & 2) {
467
- const u_r24 = i0.ɵɵnextContext().$implicit;
489
+ const u_r25 = i0.ɵɵnextContext().$implicit;
468
490
  i0.ɵɵadvance();
469
- i0.ɵɵtextInterpolate(u_r24.Email);
491
+ i0.ɵɵtextInterpolate(u_r25.Email);
470
492
  } }
471
493
  function LiveKitRoomResource_Conditional_7_Conditional_9_For_2_Template(rf, ctx) { if (rf & 1) {
472
- const _r23 = i0.ɵɵgetCurrentView();
473
- i0.ɵɵelementStart(0, "button", 73);
474
- i0.ɵɵlistener("click", function LiveKitRoomResource_Conditional_7_Conditional_9_For_2_Template_button_click_0_listener() { const u_r24 = i0.ɵɵrestoreView(_r23).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.addInvitee(u_r24)); });
475
- i0.ɵɵelementStart(1, "span", 74);
494
+ const _r24 = i0.ɵɵgetCurrentView();
495
+ i0.ɵɵelementStart(0, "button", 77);
496
+ i0.ɵɵlistener("click", function LiveKitRoomResource_Conditional_7_Conditional_9_For_2_Template_button_click_0_listener() { const u_r25 = i0.ɵɵrestoreView(_r24).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.addInvitee(u_r25)); });
497
+ i0.ɵɵelementStart(1, "span", 78);
476
498
  i0.ɵɵtext(2);
477
499
  i0.ɵɵelementEnd();
478
- i0.ɵɵconditionalCreate(3, LiveKitRoomResource_Conditional_7_Conditional_9_For_2_Conditional_3_Template, 2, 1, "span", 75);
500
+ i0.ɵɵconditionalCreate(3, LiveKitRoomResource_Conditional_7_Conditional_9_For_2_Conditional_3_Template, 2, 1, "span", 79);
479
501
  i0.ɵɵelementEnd();
480
502
  } if (rf & 2) {
481
- const u_r24 = ctx.$implicit;
503
+ const u_r25 = ctx.$implicit;
482
504
  i0.ɵɵadvance(2);
483
- i0.ɵɵtextInterpolate(u_r24.Name);
505
+ i0.ɵɵtextInterpolate(u_r25.Name);
484
506
  i0.ɵɵadvance();
485
- i0.ɵɵconditional(u_r24.Email ? 3 : -1);
507
+ i0.ɵɵconditional(u_r25.Email ? 3 : -1);
486
508
  } }
487
509
  function LiveKitRoomResource_Conditional_7_Conditional_9_Template(rf, ctx) { if (rf & 1) {
488
- i0.ɵɵelementStart(0, "div", 63);
489
- i0.ɵɵrepeaterCreate(1, LiveKitRoomResource_Conditional_7_Conditional_9_For_2_Template, 4, 2, "button", 72, _forTrack0);
510
+ i0.ɵɵelementStart(0, "div", 67);
511
+ i0.ɵɵrepeaterCreate(1, LiveKitRoomResource_Conditional_7_Conditional_9_For_2_Template, 4, 2, "button", 76, _forTrack0);
490
512
  i0.ɵɵelementEnd();
491
513
  } if (rf & 2) {
492
514
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -494,12 +516,12 @@ function LiveKitRoomResource_Conditional_7_Conditional_9_Template(rf, ctx) { if
494
516
  i0.ɵɵrepeater(ctx_r1.userResults);
495
517
  } }
496
518
  function LiveKitRoomResource_Conditional_7_Conditional_10_Template(rf, ctx) { if (rf & 1) {
497
- i0.ɵɵelementStart(0, "div", 64);
519
+ i0.ɵɵelementStart(0, "div", 68);
498
520
  i0.ɵɵtext(1, "No matching people.");
499
521
  i0.ɵɵelementEnd();
500
522
  } }
501
523
  function LiveKitRoomResource_Conditional_7_Conditional_11_Template(rf, ctx) { if (rf & 1) {
502
- i0.ɵɵelementStart(0, "div", 65);
524
+ i0.ɵɵelementStart(0, "div", 69);
503
525
  i0.ɵɵtext(1);
504
526
  i0.ɵɵelementEnd();
505
527
  } if (rf & 2) {
@@ -508,29 +530,29 @@ function LiveKitRoomResource_Conditional_7_Conditional_11_Template(rf, ctx) { if
508
530
  i0.ɵɵtextInterpolate(ctx_r1.inviteMessage);
509
531
  } }
510
532
  function LiveKitRoomResource_Conditional_7_Template(rf, ctx) { if (rf & 1) {
511
- const _r20 = i0.ɵɵgetCurrentView();
512
- i0.ɵɵelementStart(0, "mj-dialog", 55);
513
- i0.ɵɵlistener("Close", function LiveKitRoomResource_Conditional_7_Template_mj_dialog_Close_0_listener() { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.showInvite = false); });
514
- i0.ɵɵelementStart(1, "div", 56)(2, "p", 57);
533
+ const _r21 = i0.ɵɵgetCurrentView();
534
+ i0.ɵɵelementStart(0, "mj-dialog", 59);
535
+ i0.ɵɵlistener("Close", function LiveKitRoomResource_Conditional_7_Template_mj_dialog_Close_0_listener() { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.showInvite = false); });
536
+ i0.ɵɵelementStart(1, "div", 60)(2, "p", 61);
515
537
  i0.ɵɵtext(3, "They'll get an in-app notification (and an email if Comms is set up) to join this room.");
516
538
  i0.ɵɵelementEnd();
517
- i0.ɵɵelementStart(4, "div", 58)(5, "input", 59);
518
- i0.ɵɵlistener("input", function LiveKitRoomResource_Conditional_7_Template_input_input_5_listener($event) { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.userSearch = $event.target.value); })("keydown.enter", function LiveKitRoomResource_Conditional_7_Template_input_keydown_enter_5_listener() { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.searchUsers()); });
539
+ i0.ɵɵelementStart(4, "div", 62)(5, "input", 63);
540
+ i0.ɵɵlistener("input", function LiveKitRoomResource_Conditional_7_Template_input_input_5_listener($event) { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.userSearch = $event.target.value); })("keydown.enter", function LiveKitRoomResource_Conditional_7_Template_input_keydown_enter_5_listener() { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.searchUsers()); });
519
541
  i0.ɵɵelementEnd();
520
- i0.ɵɵelementStart(6, "button", 60);
521
- i0.ɵɵlistener("click", function LiveKitRoomResource_Conditional_7_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.searchUsers()); });
522
- i0.ɵɵelement(7, "i", 61);
542
+ i0.ɵɵelementStart(6, "button", 64);
543
+ i0.ɵɵlistener("click", function LiveKitRoomResource_Conditional_7_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.searchUsers()); });
544
+ i0.ɵɵelement(7, "i", 65);
523
545
  i0.ɵɵelementEnd()();
524
- i0.ɵɵconditionalCreate(8, LiveKitRoomResource_Conditional_7_Conditional_8_Template, 3, 0, "div", 62);
525
- i0.ɵɵconditionalCreate(9, LiveKitRoomResource_Conditional_7_Conditional_9_Template, 3, 0, "div", 63)(10, LiveKitRoomResource_Conditional_7_Conditional_10_Template, 2, 0, "div", 64);
526
- i0.ɵɵconditionalCreate(11, LiveKitRoomResource_Conditional_7_Conditional_11_Template, 2, 1, "div", 65);
527
- i0.ɵɵelementStart(12, "div", 66)(13, "button", 67);
528
- i0.ɵɵlistener("click", function LiveKitRoomResource_Conditional_7_Template_button_click_13_listener() { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.sendInvites()); });
529
- i0.ɵɵelement(14, "i", 61);
546
+ i0.ɵɵconditionalCreate(8, LiveKitRoomResource_Conditional_7_Conditional_8_Template, 3, 0, "div", 66);
547
+ i0.ɵɵconditionalCreate(9, LiveKitRoomResource_Conditional_7_Conditional_9_Template, 3, 0, "div", 67)(10, LiveKitRoomResource_Conditional_7_Conditional_10_Template, 2, 0, "div", 68);
548
+ i0.ɵɵconditionalCreate(11, LiveKitRoomResource_Conditional_7_Conditional_11_Template, 2, 1, "div", 69);
549
+ i0.ɵɵelementStart(12, "div", 70)(13, "button", 71);
550
+ i0.ɵɵlistener("click", function LiveKitRoomResource_Conditional_7_Template_button_click_13_listener() { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.sendInvites()); });
551
+ i0.ɵɵelement(14, "i", 65);
530
552
  i0.ɵɵtext(15);
531
553
  i0.ɵɵelementEnd();
532
- i0.ɵɵelementStart(16, "button", 68);
533
- i0.ɵɵlistener("click", function LiveKitRoomResource_Conditional_7_Template_button_click_16_listener() { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.showInvite = false); });
554
+ i0.ɵɵelementStart(16, "button", 72);
555
+ i0.ɵɵlistener("click", function LiveKitRoomResource_Conditional_7_Template_button_click_16_listener() { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.showInvite = false); });
534
556
  i0.ɵɵtext(17, "Cancel");
535
557
  i0.ɵɵelementEnd()()()();
536
558
  } if (rf & 2) {
@@ -659,7 +681,10 @@ let LiveKitRoomResource = class LiveKitRoomResource extends BaseResourceComponen
659
681
  set loadingTranscript(value) {
660
682
  this.LoadingTranscript = value;
661
683
  }
662
- /** `'agent'` to start/voice an agent (the default), or `'join'` when opened from an invite link. */
684
+ /**
685
+ * `'agent'` to start/voice an agent (the default), `'join'` when opened from an invite link, or `'preview'` for the
686
+ * preview room.
687
+ */
663
688
  RoomMode = 'agent';
664
689
  /** @deprecated Use {@link RoomMode}. */
665
690
  get roomMode() {
@@ -740,6 +765,10 @@ let LiveKitRoomResource = class LiveKitRoomResource extends BaseResourceComponen
740
765
  set canPickModelVoice(value) {
741
766
  this.CanPickModelVoice = value;
742
767
  }
768
+ /** Whether the current user may open the preview room: the authorization the dev pickers need. */
769
+ get CanOpenPreviewRoom() {
770
+ return this.CanPickModelVoice;
771
+ }
743
772
  /** Active Realtime models + their voices (loaded once when the user can override). */
744
773
  RealtimeModels = [];
745
774
  /** @deprecated Use {@link RealtimeModels}. */
@@ -770,6 +799,11 @@ let LiveKitRoomResource = class LiveKitRoomResource extends BaseResourceComponen
770
799
  set selectedVoice(value) {
771
800
  this.SelectedVoice = value;
772
801
  }
802
+ /**
803
+ * The voice option picked in the pre-join picker (one of {@link SelectedModelVoices}), or null. Kept beside
804
+ * {@link SelectedVoice} because two personas can share a voice id: the option, not the id, says which one shows picked.
805
+ */
806
+ SelectedVoiceOption = null;
773
807
  /** Voices for the model chosen in the pre-join picker. */
774
808
  get SelectedModelVoices() {
775
809
  return this.RealtimeModels.find((m) => UUIDsEqual(m.ModelID, this.SelectedModelId))?.Voices ?? [];
@@ -782,14 +816,19 @@ let LiveKitRoomResource = class LiveKitRoomResource extends BaseResourceComponen
782
816
  OnModelChange(event) {
783
817
  this.SelectedModelId = event.target.value || null;
784
818
  this.SelectedVoice = null;
819
+ this.SelectedVoiceOption = null;
785
820
  }
786
821
  /** @deprecated Use {@link OnModelChange}. */
787
822
  onModelChange(event) {
788
823
  return this.OnModelChange(event);
789
824
  }
790
- /** Records the pre-join VOICE choice. */
825
+ /**
826
+ * Records the pre-join VOICE choice: the picked option, found by its position (two personas can share a voice id, so
827
+ * the value can't tell them apart; option 0 is "Default voice"), and its voice id.
828
+ */
791
829
  OnVoiceChange(event) {
792
- this.SelectedVoice = event.target.value || null;
830
+ this.SelectedVoiceOption = this.SelectedModelVoices[event.target.selectedIndex - 1] ?? null;
831
+ this.SelectedVoice = this.SelectedVoiceOption?.ID ?? null;
793
832
  }
794
833
  /** @deprecated Use {@link OnVoiceChange}. */
795
834
  onVoiceChange(event) {
@@ -967,8 +1006,8 @@ let LiveKitRoomResource = class LiveKitRoomResource extends BaseResourceComponen
967
1006
  return;
968
1007
  }
969
1008
  this.AgentId = coAgent.ID;
970
- // Dev model/voice override: gate on the `Realtime: Advanced Session Controls` authorization and, when
971
- // held, load the active models + their voices for the pickers (here and the in-room add-agent control).
1009
+ // Dev model/voice override and the preview room: gate on the `Realtime: Advanced Session Controls` authorization
1010
+ // and, when held, load the active models + their voices for the pickers (here and the in-room add-agent control).
972
1011
  this.CanPickModelVoice = UserHoldsAuthorization(this.ProviderToUse?.CurrentUser, REALTIME_ADVANCED_SESSION_CONTROLS, this.ProviderToUse);
973
1012
  if (this.CanPickModelVoice) {
974
1013
  void this.loadRealtimeModels();
@@ -1008,6 +1047,15 @@ let LiveKitRoomResource = class LiveKitRoomResource extends BaseResourceComponen
1008
1047
  onRoomLeft() {
1009
1048
  return this.OnRoomLeft();
1010
1049
  }
1050
+ /**
1051
+ * Opens the preview room: the meeting room with your camera and microphone and simulated people, and no server.
1052
+ * Leaving it returns to the landing.
1053
+ */
1054
+ OpenPreviewRoom() {
1055
+ this.RoomMode = 'preview';
1056
+ this.JoinRoomName = null;
1057
+ this.Phase = 'live';
1058
+ }
1011
1059
  /** Go to the "start a new room" picker. */
1012
1060
  StartNewRoom() {
1013
1061
  this.Phase = 'picking';
@@ -1124,19 +1172,23 @@ let LiveKitRoomResource = class LiveKitRoomResource extends BaseResourceComponen
1124
1172
  this.cdr.detectChanges();
1125
1173
  }
1126
1174
  }
1127
- /** Opens a past meeting's transcript (drill-in). */
1175
+ /**
1176
+ * Opens a past meeting's transcript (drill-in): the room conversation's Main rows (a bridge session
1177
+ * writes Main), in `Sequence` order.
1178
+ */
1128
1179
  async OpenTranscript(room) {
1129
1180
  this.OpenHistoryRoom = room;
1130
1181
  this.HistoryTranscript = [];
1131
1182
  this.LoadingTranscript = true;
1132
1183
  this.cdr.detectChanges();
1133
1184
  try {
1185
+ const pathFilter = ConversationEngine.ScopeFilter(ConversationEngine.TrunkScope(room.ConversationID));
1134
1186
  const rv = RunView.FromMetadataProvider(this.ProviderToUse);
1135
1187
  const res = await rv.RunView({
1136
1188
  EntityName: 'MJ: Conversation Details',
1137
- ExtraFilter: `ConversationID='${room.ConversationID.replace(/'/g, "''")}'`,
1189
+ ExtraFilter: pathFilter,
1138
1190
  Fields: ['Role', 'Message', 'AgentID', 'Error', '__mj_CreatedAt'],
1139
- OrderBy: '__mj_CreatedAt ASC',
1191
+ OrderBy: 'Sequence ASC',
1140
1192
  MaxRows: 5000,
1141
1193
  ResultType: 'simple',
1142
1194
  }, this.ProviderToUse.CurrentUser);
@@ -1332,15 +1384,15 @@ let LiveKitRoomResource = class LiveKitRoomResource extends BaseResourceComponen
1332
1384
  return 'fa-solid fa-video';
1333
1385
  }
1334
1386
  static ɵfac = /*@__PURE__*/ (() => { let ɵLiveKitRoomResource_BaseFactory; return function LiveKitRoomResource_Factory(__ngFactoryType__) { return (ɵLiveKitRoomResource_BaseFactory || (ɵLiveKitRoomResource_BaseFactory = i0.ɵɵgetInheritedFactory(LiveKitRoomResource)))(__ngFactoryType__ || LiveKitRoomResource); }; })();
1335
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LiveKitRoomResource, selectors: [["mj-livekit-room-resource"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 8, vars: 2, consts: [[1, "mj-livekit-room-resource", 3, "Mode", "RoomName", "AgentID", "TargetAgentID", "AgentName", "AvailableAgents", "RealtimeModelID", "RealtimeVoice", "CanPickModelVoice", "AvailableModels", "TurnMode", "TurnAddressing", "Provider", "ShowAgentState", "ShowWhiteboard", "EnableLayoutSwitcher", "EnablePinning"], [1, "mj-lk-prejoin"], [1, "mj-livekit-room-resource__message"], ["Title", "Invite people", "Size", "auto", 3, "Visible", "Width"], [1, "mj-livekit-room-resource", 3, "Connected", "Disconnected", "ErrorOccurred", "InvitePeopleRequested", "Mode", "RoomName", "AgentID", "TargetAgentID", "AgentName", "AvailableAgents", "RealtimeModelID", "RealtimeVoice", "CanPickModelVoice", "AvailableModels", "TurnMode", "TurnAddressing", "Provider", "ShowAgentState", "ShowWhiteboard", "EnableLayoutSwitcher", "EnablePinning"], [1, "mj-lk-prejoin__card"], ["type", "button", 1, "mj-lk-back", 3, "click"], [1, "fa-solid", "fa-arrow-left"], [1, "mj-lk-prejoin__icon"], [1, "fa-solid", "fa-video"], [1, "mj-lk-prejoin__title"], [1, "mj-lk-prejoin__subtitle"], ["for", "mj-lk-target", 1, "mj-lk-prejoin__label"], ["id", "mj-lk-target", 1, "mj-input", "mj-lk-prejoin__select", 3, "change"], [3, "value", "selected"], [1, "mj-lk-prejoin__desc"], ["for", "mj-lk-turn-mode", 1, "mj-lk-prejoin__label"], ["id", "mj-lk-turn-mode", 1, "mj-input", "mj-lk-prejoin__select", 3, "change"], ["value", ""], [3, "value", "title", "selected"], ["id", "mj-lk-turn-addressing", "aria-label", "How the agent decides it was addressed", 1, "mj-input", "mj-lk-prejoin__select", 3, "change"], ["type", "button", 1, "mj-lk-prejoin__start", 3, "click", "disabled"], [1, "fa-solid", "fa-phone"], ["for", "mj-lk-model", 1, "mj-lk-prejoin__label"], [1, "mj-lk-prejoin__dev"], ["id", "mj-lk-model", 1, "mj-input", "mj-lk-prejoin__select", 3, "change"], ["for", "mj-lk-voice", 1, "mj-lk-prejoin__label"], ["id", "mj-lk-voice", 1, "mj-input", "mj-lk-prejoin__select", 3, "change"], [1, "mj-lk-prejoin__card", "mj-lk-prejoin__card--wide"], [1, "mj-lk-cards"], ["type", "button", 1, "mj-lk-card", 3, "click"], [1, "fa-solid", "fa-circle-plus"], [1, "mj-lk-card__t"], [1, "mj-lk-card__d"], [1, "fa-solid", "fa-door-open"], [1, "fa-solid", "fa-clock-rotate-left"], [1, "mj-lk-listmsg"], [1, "mj-lk-list"], ["for", "mj-lk-room", 1, "mj-lk-prejoin__label"], [1, "mj-lk-joinrow"], ["id", "mj-lk-room", "type", "text", "placeholder", "Room name\u2026", 1, "mj-input", "mj-lk-joinrow__input", 3, "input", "keydown.enter", "value"], ["type", "button", 1, "mj-lk-prejoin__start", "mj-lk-joinrow__btn", 3, "click", "disabled"], [1, "fa-solid", "fa-spinner", "fa-spin"], ["type", "button", 1, "mj-lk-list__row"], ["type", "button", 1, "mj-lk-list__row", 3, "click"], [1, "mj-lk-list__name"], [1, "fa-solid", "fa-circle", "mj-lk-livedot"], [1, "mj-lk-list__meta"], [1, "fa-solid", "fa-comments"], [1, "mj-lk-transcript"], [1, "mj-lk-tline", 3, "mj-lk-tline--agent", "mj-lk-tline--error"], [1, "mj-lk-tline"], [1, "mj-lk-tline__who"], [1, "mj-lk-tline__msg"], [1, "fa-solid", "fa-circle-exclamation"], ["Title", "Invite people", "Size", "auto", 3, "Close", "Visible", "Width"], [1, "mj-lk-invite"], [1, "mj-lk-invite__hint"], [1, "mj-lk-invite__search"], ["type", "text", "placeholder", "Search people by name or email\u2026", 1, "mj-input", 3, "input", "keydown.enter", "value"], ["type", "button", 1, "mj-lk-invite__searchbtn", 3, "click", "disabled"], [1, "fa-solid"], [1, "mj-lk-invite__chips"], [1, "mj-lk-invite__results"], [1, "mj-lk-invite__empty"], [1, "mj-lk-invite__msg"], [1, "mj-lk-invite__actions"], ["type", "button", 1, "mj-lk-invite__send", 3, "click", "disabled"], ["type", "button", 1, "mj-lk-invite__cancel", 3, "click"], [1, "mj-lk-invite__chip"], ["type", "button", 1, "mj-lk-invite__chipx", 3, "click"], [1, "fa-solid", "fa-xmark"], ["type", "button", 1, "mj-lk-invite__result"], ["type", "button", 1, "mj-lk-invite__result", 3, "click"], [1, "mj-lk-invite__rname"], [1, "mj-lk-invite__remail"]], template: function LiveKitRoomResource_Template(rf, ctx) { if (rf & 1) {
1336
- i0.ɵɵconditionalCreate(0, LiveKitRoomResource_Case_0_Template, 1, 17, "mj-livekit-agent-room", 0)(1, LiveKitRoomResource_Case_1_Template, 33, 3, "div", 1)(2, LiveKitRoomResource_Case_2_Template, 27, 0, "div", 1)(3, LiveKitRoomResource_Case_3_Template, 16, 3, "div", 1)(4, LiveKitRoomResource_Case_4_Template, 4, 1, "div", 1)(5, LiveKitRoomResource_Case_5_Template, 4, 1, "div", 2)(6, LiveKitRoomResource_Case_6_Template, 2, 0, "div", 2);
1387
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LiveKitRoomResource, selectors: [["mj-livekit-room-resource"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 8, vars: 2, consts: [[1, "mj-livekit-room-resource", 3, "Mode", "RoomName", "AgentID", "TargetAgentID", "AgentName", "AvailableAgents", "RealtimeModelID", "RealtimeVoice", "CanPickModelVoice", "AvailableModels", "TurnMode", "TurnAddressing", "Provider", "ShowAgentState", "ShowWhiteboard", "EnableLayoutSwitcher", "EnablePinning"], [1, "mj-lk-prejoin"], [1, "mj-livekit-room-resource__message"], ["Title", "Invite people", "Size", "auto", 3, "Visible", "Width"], [1, "mj-livekit-room-resource", 3, "Connected", "Disconnected", "ErrorOccurred", "InvitePeopleRequested", "Mode", "RoomName", "AgentID", "TargetAgentID", "AgentName", "AvailableAgents", "RealtimeModelID", "RealtimeVoice", "CanPickModelVoice", "AvailableModels", "TurnMode", "TurnAddressing", "Provider", "ShowAgentState", "ShowWhiteboard", "EnableLayoutSwitcher", "EnablePinning"], [1, "mj-lk-prejoin__card"], ["type", "button", 1, "mj-lk-back", 3, "click"], [1, "fa-solid", "fa-arrow-left"], [1, "mj-lk-prejoin__icon"], [1, "fa-solid", "fa-video"], [1, "mj-lk-prejoin__title"], [1, "mj-lk-prejoin__subtitle"], ["for", "mj-lk-target", 1, "mj-lk-prejoin__label"], ["id", "mj-lk-target", 1, "mj-input", "mj-lk-prejoin__select", 3, "change"], [3, "value", "selected"], [1, "mj-lk-prejoin__desc"], ["for", "mj-lk-turn-mode", 1, "mj-lk-prejoin__label"], ["id", "mj-lk-turn-mode", 1, "mj-input", "mj-lk-prejoin__select", 3, "change"], ["value", ""], [3, "value", "title", "selected"], ["id", "mj-lk-turn-addressing", "aria-label", "How the agent decides it was addressed", 1, "mj-input", "mj-lk-prejoin__select", 3, "change"], ["type", "button", 1, "mj-lk-prejoin__start", 3, "click", "disabled"], [1, "fa-solid", "fa-phone"], ["for", "mj-lk-model", 1, "mj-lk-prejoin__label"], [1, "mj-lk-prejoin__dev"], ["id", "mj-lk-model", 1, "mj-input", "mj-lk-prejoin__select", 3, "change"], ["for", "mj-lk-voice", 1, "mj-lk-prejoin__label"], ["id", "mj-lk-voice", 1, "mj-input", "mj-lk-prejoin__select", 3, "change"], [1, "mj-lk-prejoin__card", "mj-lk-prejoin__card--wide"], [1, "mj-lk-cards"], ["type", "button", 1, "mj-lk-card", 3, "click"], [1, "fa-solid", "fa-circle-plus"], [1, "mj-lk-card__t"], [1, "mj-lk-card__d"], [1, "fa-solid", "fa-door-open"], [1, "fa-solid", "fa-clock-rotate-left"], ["type", "button", 1, "mj-lk-card", "mj-lk-card--preview"], ["type", "button", 1, "mj-lk-card", "mj-lk-card--preview", 3, "click"], [1, "fa-solid", "fa-flask"], [1, "mj-lk-card__text"], [1, "mj-lk-listmsg"], [1, "mj-lk-list"], ["for", "mj-lk-room", 1, "mj-lk-prejoin__label"], [1, "mj-lk-joinrow"], ["id", "mj-lk-room", "type", "text", "placeholder", "Room name\u2026", 1, "mj-input", "mj-lk-joinrow__input", 3, "input", "keydown.enter", "value"], ["type", "button", 1, "mj-lk-prejoin__start", "mj-lk-joinrow__btn", 3, "click", "disabled"], [1, "fa-solid", "fa-spinner", "fa-spin"], ["type", "button", 1, "mj-lk-list__row"], ["type", "button", 1, "mj-lk-list__row", 3, "click"], [1, "mj-lk-list__name"], [1, "fa-solid", "fa-circle", "mj-lk-livedot"], [1, "mj-lk-list__meta"], [1, "fa-solid", "fa-comments"], [1, "mj-lk-transcript"], [1, "mj-lk-tline", 3, "mj-lk-tline--agent", "mj-lk-tline--error"], [1, "mj-lk-tline"], [1, "mj-lk-tline__who"], [1, "mj-lk-tline__msg"], [1, "fa-solid", "fa-circle-exclamation"], ["Title", "Invite people", "Size", "auto", 3, "Close", "Visible", "Width"], [1, "mj-lk-invite"], [1, "mj-lk-invite__hint"], [1, "mj-lk-invite__search"], ["type", "text", "placeholder", "Search people by name or email\u2026", 1, "mj-input", 3, "input", "keydown.enter", "value"], ["type", "button", 1, "mj-lk-invite__searchbtn", 3, "click", "disabled"], [1, "fa-solid"], [1, "mj-lk-invite__chips"], [1, "mj-lk-invite__results"], [1, "mj-lk-invite__empty"], [1, "mj-lk-invite__msg"], [1, "mj-lk-invite__actions"], ["type", "button", 1, "mj-lk-invite__send", 3, "click", "disabled"], ["type", "button", 1, "mj-lk-invite__cancel", 3, "click"], [1, "mj-lk-invite__chip"], ["type", "button", 1, "mj-lk-invite__chipx", 3, "click"], [1, "fa-solid", "fa-xmark"], ["type", "button", 1, "mj-lk-invite__result"], ["type", "button", 1, "mj-lk-invite__result", 3, "click"], [1, "mj-lk-invite__rname"], [1, "mj-lk-invite__remail"]], template: function LiveKitRoomResource_Template(rf, ctx) { if (rf & 1) {
1388
+ i0.ɵɵconditionalCreate(0, LiveKitRoomResource_Case_0_Template, 1, 17, "mj-livekit-agent-room", 0)(1, LiveKitRoomResource_Case_1_Template, 33, 3, "div", 1)(2, LiveKitRoomResource_Case_2_Template, 28, 1, "div", 1)(3, LiveKitRoomResource_Case_3_Template, 16, 3, "div", 1)(4, LiveKitRoomResource_Case_4_Template, 4, 1, "div", 1)(5, LiveKitRoomResource_Case_5_Template, 4, 1, "div", 2)(6, LiveKitRoomResource_Case_6_Template, 2, 0, "div", 2);
1337
1389
  i0.ɵɵconditionalCreate(7, LiveKitRoomResource_Conditional_7_Template, 18, 21, "mj-dialog", 3);
1338
1390
  } if (rf & 2) {
1339
1391
  let tmp_0_0;
1340
1392
  i0.ɵɵconditional((tmp_0_0 = ctx.phase) === "live" ? 0 : tmp_0_0 === "picking" ? 1 : tmp_0_0 === "landing" ? 2 : tmp_0_0 === "existing" ? 3 : tmp_0_0 === "history" ? 4 : tmp_0_0 === "error" ? 5 : 6);
1341
1393
  i0.ɵɵadvance(7);
1342
1394
  i0.ɵɵconditional(ctx.showInvite ? 7 : -1);
1343
- } }, dependencies: [i1.NgSelectOption, i1.ɵNgSelectMultipleOption, i2.MJDialogComponent, i3.MJLiveKitRoomComponent], styles: ["[_nghost-%COMP%] {\n display: block;\n height: 100%;\n }\n .mj-livekit-room-resource[_ngcontent-%COMP%] {\n display: block;\n height: 100%;\n }\n .mj-livekit-room-resource__message[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n height: 100%;\n padding: 1.5rem;\n text-align: center;\n color: var(--mj-text-secondary);\n }\n .mj-livekit-room-resource__message[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-warning);\n }\n .mj-lk-prejoin[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n padding: 1.5rem;\n background: var(--mj-bg-page);\n }\n .mj-lk-prejoin__card[_ngcontent-%COMP%] {\n width: 100%;\n max-width: 440px;\n padding: 2rem;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-lg, 12px);\n background: var(--mj-bg-surface);\n box-shadow: var(--mj-shadow-md, 0 4px 16px rgba(0, 0, 0, 0.12));\n text-align: center;\n }\n .mj-lk-prejoin__icon[_ngcontent-%COMP%] {\n font-size: 1.75rem;\n color: var(--mj-brand-primary);\n margin-bottom: 0.75rem;\n }\n .mj-lk-prejoin__title[_ngcontent-%COMP%] {\n margin: 0 0 0.5rem;\n color: var(--mj-text-primary);\n font-size: 1.25rem;\n }\n .mj-lk-prejoin__subtitle[_ngcontent-%COMP%] {\n margin: 0 0 1.5rem;\n color: var(--mj-text-secondary);\n font-size: 0.875rem;\n line-height: 1.4;\n }\n .mj-lk-prejoin__label[_ngcontent-%COMP%] {\n display: block;\n text-align: left;\n margin-bottom: 0.35rem;\n color: var(--mj-text-secondary);\n font-size: 0.8125rem;\n font-weight: 600;\n }\n .mj-lk-prejoin__dev[_ngcontent-%COMP%] {\n margin-left: 0.35rem;\n padding: 0 0.35rem;\n border-radius: 999px;\n font-size: 0.625rem;\n font-weight: 700;\n text-transform: uppercase;\n color: var(--mj-text-inverse);\n background: var(--mj-brand-primary);\n vertical-align: middle;\n }\n .mj-lk-prejoin__select[_ngcontent-%COMP%] {\n width: 100%;\n margin-bottom: 0.75rem;\n }\n .mj-lk-prejoin__desc[_ngcontent-%COMP%] {\n text-align: left;\n margin: 0 0 1.25rem;\n color: var(--mj-text-muted);\n font-size: 0.8125rem;\n line-height: 1.4;\n }\n .mj-lk-prejoin__start[_ngcontent-%COMP%] {\n width: 100%;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n padding: 0.625rem 1rem;\n border: none;\n border-radius: var(--mj-radius-md, 8px);\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n font-size: 0.9375rem;\n font-weight: 600;\n cursor: pointer;\n }\n .mj-lk-prejoin__start[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-brand-primary-hover);\n }\n .mj-lk-prejoin__start[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n .mj-lk-prejoin__card--wide[_ngcontent-%COMP%] {\n max-width: 560px;\n text-align: left;\n }\n .mj-lk-back[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n margin-bottom: 0.75rem;\n padding: 4px 8px;\n border: none;\n background: none;\n cursor: pointer;\n color: var(--mj-text-secondary);\n font-size: 0.8125rem;\n }\n .mj-lk-back[_ngcontent-%COMP%]:hover { color: var(--mj-text-primary); }\n .mj-lk-cards[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 0.75rem;\n margin-top: 1.25rem;\n }\n .mj-lk-card[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 6px;\n padding: 1.25rem 0.75rem;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-lg, 12px);\n background: var(--mj-bg-surface-card);\n cursor: pointer;\n text-align: center;\n }\n .mj-lk-card[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n background: var(--mj-bg-surface-hover, var(--mj-bg-surface-card));\n }\n .mj-lk-card[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] { font-size: 1.4rem; color: var(--mj-brand-primary); }\n .mj-lk-card__t[_ngcontent-%COMP%] { font-weight: 600; color: var(--mj-text-primary); font-size: 0.9rem; }\n .mj-lk-card__d[_ngcontent-%COMP%] { color: var(--mj-text-muted); font-size: 0.78rem; line-height: 1.3; }\n .mj-lk-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n margin: 0.5rem 0 1rem;\n max-height: 320px;\n overflow-y: auto;\n }\n .mj-lk-list__row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.75rem;\n padding: 10px 12px;\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n background: var(--mj-bg-surface-card);\n cursor: pointer;\n text-align: left;\n }\n .mj-lk-list__row[_ngcontent-%COMP%]:hover { border-color: var(--mj-brand-primary); background: var(--mj-bg-surface-hover, var(--mj-bg-surface-card)); }\n .mj-lk-list__name[_ngcontent-%COMP%] { color: var(--mj-text-primary); font-size: 0.875rem; display: inline-flex; align-items: center; gap: 8px; }\n .mj-lk-list__meta[_ngcontent-%COMP%] { color: var(--mj-text-muted); font-size: 0.78rem; white-space: nowrap; }\n .mj-lk-livedot[_ngcontent-%COMP%] { color: var(--mj-status-success); font-size: 0.5rem; }\n .mj-lk-listmsg[_ngcontent-%COMP%] { padding: 1rem; color: var(--mj-text-secondary); text-align: center; }\n .mj-lk-joinrow[_ngcontent-%COMP%] { display: flex; gap: 8px; }\n .mj-lk-joinrow__input[_ngcontent-%COMP%] { flex: 1; }\n .mj-lk-joinrow__btn[_ngcontent-%COMP%] { white-space: nowrap; }\n .mj-lk-transcript[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-top: 0.5rem;\n max-height: 60vh;\n overflow-y: auto;\n }\n .mj-lk-tline[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n padding: 8px 10px;\n border-radius: 8px;\n background: var(--mj-bg-surface-card);\n }\n .mj-lk-tline--agent[_ngcontent-%COMP%] { background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface)); }\n .mj-lk-tline--error[_ngcontent-%COMP%] { background: var(--mj-status-error-bg, color-mix(in srgb, var(--mj-status-error) 8%, var(--mj-bg-surface))); }\n .mj-lk-tline__who[_ngcontent-%COMP%] { font-size: 0.72rem; font-weight: 600; color: var(--mj-text-secondary); }\n .mj-lk-tline__msg[_ngcontent-%COMP%] { font-size: 0.875rem; color: var(--mj-text-primary); }\n .mj-lk-invite[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n min-width: 360px;\n padding: 0.25rem;\n }\n .mj-lk-invite__hint[_ngcontent-%COMP%] {\n margin: 0;\n color: var(--mj-text-muted);\n font-size: 0.8125rem;\n }\n .mj-lk-invite__search[_ngcontent-%COMP%] {\n display: flex;\n gap: 0.5rem;\n }\n .mj-lk-invite__search[_ngcontent-%COMP%] .mj-input[_ngcontent-%COMP%] {\n flex: 1;\n }\n .mj-lk-invite__searchbtn[_ngcontent-%COMP%], \n .mj-lk-invite__send[_ngcontent-%COMP%], \n .mj-lk-invite__cancel[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.4rem;\n padding: 0.5rem 0.85rem;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md, 8px);\n cursor: pointer;\n font-size: 0.875rem;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n }\n .mj-lk-invite__send[_ngcontent-%COMP%] {\n border: none;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n .mj-lk-invite__send[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n .mj-lk-invite__chips[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 0.4rem;\n }\n .mj-lk-invite__chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 0.35rem;\n padding: 0.2rem 0.5rem;\n border-radius: 999px;\n font-size: 0.8125rem;\n color: var(--mj-text-primary);\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n }\n .mj-lk-invite__chipx[_ngcontent-%COMP%] {\n border: none;\n background: transparent;\n cursor: pointer;\n color: var(--mj-text-muted);\n padding: 0;\n }\n .mj-lk-invite__results[_ngcontent-%COMP%] {\n max-height: 220px;\n overflow-y: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md, 8px);\n }\n .mj-lk-invite__result[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 0.1rem;\n width: 100%;\n padding: 0.5rem 0.75rem;\n border: none;\n border-bottom: 1px solid var(--mj-border-subtle, var(--mj-border-default));\n background: transparent;\n cursor: pointer;\n text-align: left;\n }\n .mj-lk-invite__result[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n }\n .mj-lk-invite__rname[_ngcontent-%COMP%] {\n color: var(--mj-text-primary);\n font-size: 0.875rem;\n }\n .mj-lk-invite__remail[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 0.75rem;\n }\n .mj-lk-invite__empty[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 0.8125rem;\n padding: 0.25rem;\n }\n .mj-lk-invite__msg[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-size: 0.8125rem;\n }\n .mj-lk-invite__actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 0.5rem;\n margin-top: 0.25rem;\n }"] });
1395
+ } }, dependencies: [i1.NgSelectOption, i1.ɵNgSelectMultipleOption, i2.MJDialogComponent, i3.MJLiveKitRoomComponent], styles: ["[_nghost-%COMP%] {\n display: block;\n height: 100%;\n }\n .mj-livekit-room-resource[_ngcontent-%COMP%] {\n display: block;\n height: 100%;\n }\n .mj-livekit-room-resource__message[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n height: 100%;\n padding: 1.5rem;\n text-align: center;\n color: var(--mj-text-secondary);\n }\n .mj-livekit-room-resource__message[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-warning);\n }\n .mj-lk-prejoin[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n padding: 1.5rem;\n background: var(--mj-bg-page);\n }\n .mj-lk-prejoin__card[_ngcontent-%COMP%] {\n width: 100%;\n max-width: 440px;\n padding: 2rem;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-lg, 12px);\n background: var(--mj-bg-surface);\n box-shadow: var(--mj-shadow-md, 0 4px 16px rgba(0, 0, 0, 0.12));\n text-align: center;\n }\n .mj-lk-prejoin__icon[_ngcontent-%COMP%] {\n font-size: 1.75rem;\n color: var(--mj-brand-primary);\n margin-bottom: 0.75rem;\n }\n .mj-lk-prejoin__title[_ngcontent-%COMP%] {\n margin: 0 0 0.5rem;\n color: var(--mj-text-primary);\n font-size: 1.25rem;\n }\n .mj-lk-prejoin__subtitle[_ngcontent-%COMP%] {\n margin: 0 0 1.5rem;\n color: var(--mj-text-secondary);\n font-size: 0.875rem;\n line-height: 1.4;\n }\n .mj-lk-prejoin__label[_ngcontent-%COMP%] {\n display: block;\n text-align: left;\n margin-bottom: 0.35rem;\n color: var(--mj-text-secondary);\n font-size: 0.8125rem;\n font-weight: 600;\n }\n .mj-lk-prejoin__dev[_ngcontent-%COMP%] {\n margin-left: 0.35rem;\n padding: 0 0.35rem;\n border-radius: 999px;\n font-size: 0.625rem;\n font-weight: 700;\n text-transform: uppercase;\n color: var(--mj-text-inverse);\n background: var(--mj-brand-primary);\n vertical-align: middle;\n }\n .mj-lk-prejoin__select[_ngcontent-%COMP%] {\n width: 100%;\n margin-bottom: 0.75rem;\n }\n .mj-lk-prejoin__desc[_ngcontent-%COMP%] {\n text-align: left;\n margin: 0 0 1.25rem;\n color: var(--mj-text-muted);\n font-size: 0.8125rem;\n line-height: 1.4;\n }\n .mj-lk-prejoin__start[_ngcontent-%COMP%] {\n width: 100%;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n padding: 0.625rem 1rem;\n border: none;\n border-radius: var(--mj-radius-md, 8px);\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n font-size: 0.9375rem;\n font-weight: 600;\n cursor: pointer;\n }\n .mj-lk-prejoin__start[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-brand-primary-hover);\n }\n .mj-lk-prejoin__start[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n .mj-lk-prejoin__card--wide[_ngcontent-%COMP%] {\n max-width: 560px;\n text-align: left;\n }\n .mj-lk-back[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n margin-bottom: 0.75rem;\n padding: 4px 8px;\n border: none;\n background: none;\n cursor: pointer;\n color: var(--mj-text-secondary);\n font-size: 0.8125rem;\n }\n .mj-lk-back[_ngcontent-%COMP%]:hover { color: var(--mj-text-primary); }\n .mj-lk-cards[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 0.75rem;\n margin-top: 1.25rem;\n }\n .mj-lk-card[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 6px;\n padding: 1.25rem 0.75rem;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-lg, 12px);\n background: var(--mj-bg-surface-card);\n cursor: pointer;\n text-align: center;\n }\n .mj-lk-card[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n background: var(--mj-bg-surface-hover, var(--mj-bg-surface-card));\n }\n .mj-lk-card[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] { font-size: 1.4rem; color: var(--mj-brand-primary); }\n .mj-lk-card__t[_ngcontent-%COMP%] { font-weight: 600; color: var(--mj-text-primary); font-size: 0.9rem; }\n .mj-lk-card__d[_ngcontent-%COMP%] { color: var(--mj-text-muted); font-size: 0.78rem; line-height: 1.3; }\n \n .mj-lk-card--preview[_ngcontent-%COMP%] {\n grid-column: 1 / -1;\n flex-direction: row;\n gap: 12px;\n padding: 0.75rem 1rem;\n text-align: left;\n }\n .mj-lk-card__text[_ngcontent-%COMP%] { display: flex; flex-direction: column; gap: 2px; }\n .mj-lk-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n margin: 0.5rem 0 1rem;\n max-height: 320px;\n overflow-y: auto;\n }\n .mj-lk-list__row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.75rem;\n padding: 10px 12px;\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n background: var(--mj-bg-surface-card);\n cursor: pointer;\n text-align: left;\n }\n .mj-lk-list__row[_ngcontent-%COMP%]:hover { border-color: var(--mj-brand-primary); background: var(--mj-bg-surface-hover, var(--mj-bg-surface-card)); }\n .mj-lk-list__name[_ngcontent-%COMP%] { color: var(--mj-text-primary); font-size: 0.875rem; display: inline-flex; align-items: center; gap: 8px; }\n .mj-lk-list__meta[_ngcontent-%COMP%] { color: var(--mj-text-muted); font-size: 0.78rem; white-space: nowrap; }\n .mj-lk-livedot[_ngcontent-%COMP%] { color: var(--mj-status-success); font-size: 0.5rem; }\n .mj-lk-listmsg[_ngcontent-%COMP%] { padding: 1rem; color: var(--mj-text-secondary); text-align: center; }\n .mj-lk-joinrow[_ngcontent-%COMP%] { display: flex; gap: 8px; }\n .mj-lk-joinrow__input[_ngcontent-%COMP%] { flex: 1; }\n .mj-lk-joinrow__btn[_ngcontent-%COMP%] { white-space: nowrap; }\n .mj-lk-transcript[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-top: 0.5rem;\n max-height: 60vh;\n overflow-y: auto;\n }\n .mj-lk-tline[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n padding: 8px 10px;\n border-radius: 8px;\n background: var(--mj-bg-surface-card);\n }\n .mj-lk-tline--agent[_ngcontent-%COMP%] { background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface)); }\n .mj-lk-tline--error[_ngcontent-%COMP%] { background: var(--mj-status-error-bg, color-mix(in srgb, var(--mj-status-error) 8%, var(--mj-bg-surface))); }\n .mj-lk-tline__who[_ngcontent-%COMP%] { font-size: 0.72rem; font-weight: 600; color: var(--mj-text-secondary); }\n .mj-lk-tline__msg[_ngcontent-%COMP%] { font-size: 0.875rem; color: var(--mj-text-primary); }\n .mj-lk-invite[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n min-width: 360px;\n padding: 0.25rem;\n }\n .mj-lk-invite__hint[_ngcontent-%COMP%] {\n margin: 0;\n color: var(--mj-text-muted);\n font-size: 0.8125rem;\n }\n .mj-lk-invite__search[_ngcontent-%COMP%] {\n display: flex;\n gap: 0.5rem;\n }\n .mj-lk-invite__search[_ngcontent-%COMP%] .mj-input[_ngcontent-%COMP%] {\n flex: 1;\n }\n .mj-lk-invite__searchbtn[_ngcontent-%COMP%], \n .mj-lk-invite__send[_ngcontent-%COMP%], \n .mj-lk-invite__cancel[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.4rem;\n padding: 0.5rem 0.85rem;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md, 8px);\n cursor: pointer;\n font-size: 0.875rem;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n }\n .mj-lk-invite__send[_ngcontent-%COMP%] {\n border: none;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n .mj-lk-invite__send[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n .mj-lk-invite__chips[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 0.4rem;\n }\n .mj-lk-invite__chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 0.35rem;\n padding: 0.2rem 0.5rem;\n border-radius: 999px;\n font-size: 0.8125rem;\n color: var(--mj-text-primary);\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n }\n .mj-lk-invite__chipx[_ngcontent-%COMP%] {\n border: none;\n background: transparent;\n cursor: pointer;\n color: var(--mj-text-muted);\n padding: 0;\n }\n .mj-lk-invite__results[_ngcontent-%COMP%] {\n max-height: 220px;\n overflow-y: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md, 8px);\n }\n .mj-lk-invite__result[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 0.1rem;\n width: 100%;\n padding: 0.5rem 0.75rem;\n border: none;\n border-bottom: 1px solid var(--mj-border-subtle, var(--mj-border-default));\n background: transparent;\n cursor: pointer;\n text-align: left;\n }\n .mj-lk-invite__result[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n }\n .mj-lk-invite__rname[_ngcontent-%COMP%] {\n color: var(--mj-text-primary);\n font-size: 0.875rem;\n }\n .mj-lk-invite__remail[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 0.75rem;\n }\n .mj-lk-invite__empty[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 0.8125rem;\n padding: 0.25rem;\n }\n .mj-lk-invite__msg[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-size: 0.8125rem;\n }\n .mj-lk-invite__actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 0.5rem;\n margin-top: 0.25rem;\n }"] });
1344
1396
  };
1345
1397
  LiveKitRoomResource = __decorate([
1346
1398
  RegisterClass(BaseResourceComponent, 'LiveKitRoomResource')
@@ -1407,8 +1459,9 @@ export { LiveKitRoomResource };
1407
1459
  <label class="mj-lk-prejoin__label" for="mj-lk-voice">Voice <span class="mj-lk-prejoin__dev">dev</span></label>
1408
1460
  <select id="mj-lk-voice" class="mj-input mj-lk-prejoin__select" (change)="onVoiceChange($event)">
1409
1461
  <option value="">Default voice</option>
1410
- @for (v of selectedModelVoices; track v.ID) {
1411
- <option [value]="v.ID" [selected]="v.ID === selectedVoice">{{ v.Name }}</option>
1462
+ <!-- One option per persona: two personas can share a voice id (a voice, and the same voice with a face). -->
1463
+ @for (v of selectedModelVoices; track v.PersonaID ?? v.ID) {
1464
+ <option [value]="v.ID" [selected]="v === SelectedVoiceOption">{{ v.Name }}</option>
1412
1465
  }
1413
1466
  </select>
1414
1467
  }
@@ -1455,6 +1508,15 @@ export { LiveKitRoomResource };
1455
1508
  <span class="mj-lk-card__t">History</span>
1456
1509
  <span class="mj-lk-card__d">Read transcripts of past meetings.</span>
1457
1510
  </button>
1511
+ @if (CanOpenPreviewRoom) {
1512
+ <button type="button" class="mj-lk-card mj-lk-card--preview" (click)="OpenPreviewRoom()">
1513
+ <i class="fa-solid fa-flask"></i>
1514
+ <span class="mj-lk-card__text">
1515
+ <span class="mj-lk-card__t">Preview room<span class="mj-lk-prejoin__dev">dev</span></span>
1516
+ <span class="mj-lk-card__d">Try the room with your camera and simulated people. No server needed.</span>
1517
+ </span>
1518
+ </button>
1519
+ }
1458
1520
  </div>
1459
1521
  </div>
1460
1522
  </div>
@@ -1589,7 +1651,7 @@ export { LiveKitRoomResource };
1589
1651
  </div>
1590
1652
  </mj-dialog>
1591
1653
  }
1592
- `, styles: ["\n :host {\n display: block;\n height: 100%;\n }\n .mj-livekit-room-resource {\n display: block;\n height: 100%;\n }\n .mj-livekit-room-resource__message {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n height: 100%;\n padding: 1.5rem;\n text-align: center;\n color: var(--mj-text-secondary);\n }\n .mj-livekit-room-resource__message i {\n color: var(--mj-status-warning);\n }\n .mj-lk-prejoin {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n padding: 1.5rem;\n background: var(--mj-bg-page);\n }\n .mj-lk-prejoin__card {\n width: 100%;\n max-width: 440px;\n padding: 2rem;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-lg, 12px);\n background: var(--mj-bg-surface);\n box-shadow: var(--mj-shadow-md, 0 4px 16px rgba(0, 0, 0, 0.12));\n text-align: center;\n }\n .mj-lk-prejoin__icon {\n font-size: 1.75rem;\n color: var(--mj-brand-primary);\n margin-bottom: 0.75rem;\n }\n .mj-lk-prejoin__title {\n margin: 0 0 0.5rem;\n color: var(--mj-text-primary);\n font-size: 1.25rem;\n }\n .mj-lk-prejoin__subtitle {\n margin: 0 0 1.5rem;\n color: var(--mj-text-secondary);\n font-size: 0.875rem;\n line-height: 1.4;\n }\n .mj-lk-prejoin__label {\n display: block;\n text-align: left;\n margin-bottom: 0.35rem;\n color: var(--mj-text-secondary);\n font-size: 0.8125rem;\n font-weight: 600;\n }\n .mj-lk-prejoin__dev {\n margin-left: 0.35rem;\n padding: 0 0.35rem;\n border-radius: 999px;\n font-size: 0.625rem;\n font-weight: 700;\n text-transform: uppercase;\n color: var(--mj-text-inverse);\n background: var(--mj-brand-primary);\n vertical-align: middle;\n }\n .mj-lk-prejoin__select {\n width: 100%;\n margin-bottom: 0.75rem;\n }\n .mj-lk-prejoin__desc {\n text-align: left;\n margin: 0 0 1.25rem;\n color: var(--mj-text-muted);\n font-size: 0.8125rem;\n line-height: 1.4;\n }\n .mj-lk-prejoin__start {\n width: 100%;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n padding: 0.625rem 1rem;\n border: none;\n border-radius: var(--mj-radius-md, 8px);\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n font-size: 0.9375rem;\n font-weight: 600;\n cursor: pointer;\n }\n .mj-lk-prejoin__start:hover:not(:disabled) {\n background: var(--mj-brand-primary-hover);\n }\n .mj-lk-prejoin__start:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n .mj-lk-prejoin__card--wide {\n max-width: 560px;\n text-align: left;\n }\n .mj-lk-back {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n margin-bottom: 0.75rem;\n padding: 4px 8px;\n border: none;\n background: none;\n cursor: pointer;\n color: var(--mj-text-secondary);\n font-size: 0.8125rem;\n }\n .mj-lk-back:hover { color: var(--mj-text-primary); }\n .mj-lk-cards {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 0.75rem;\n margin-top: 1.25rem;\n }\n .mj-lk-card {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 6px;\n padding: 1.25rem 0.75rem;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-lg, 12px);\n background: var(--mj-bg-surface-card);\n cursor: pointer;\n text-align: center;\n }\n .mj-lk-card:hover {\n border-color: var(--mj-brand-primary);\n background: var(--mj-bg-surface-hover, var(--mj-bg-surface-card));\n }\n .mj-lk-card > i { font-size: 1.4rem; color: var(--mj-brand-primary); }\n .mj-lk-card__t { font-weight: 600; color: var(--mj-text-primary); font-size: 0.9rem; }\n .mj-lk-card__d { color: var(--mj-text-muted); font-size: 0.78rem; line-height: 1.3; }\n .mj-lk-list {\n display: flex;\n flex-direction: column;\n gap: 6px;\n margin: 0.5rem 0 1rem;\n max-height: 320px;\n overflow-y: auto;\n }\n .mj-lk-list__row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.75rem;\n padding: 10px 12px;\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n background: var(--mj-bg-surface-card);\n cursor: pointer;\n text-align: left;\n }\n .mj-lk-list__row:hover { border-color: var(--mj-brand-primary); background: var(--mj-bg-surface-hover, var(--mj-bg-surface-card)); }\n .mj-lk-list__name { color: var(--mj-text-primary); font-size: 0.875rem; display: inline-flex; align-items: center; gap: 8px; }\n .mj-lk-list__meta { color: var(--mj-text-muted); font-size: 0.78rem; white-space: nowrap; }\n .mj-lk-livedot { color: var(--mj-status-success); font-size: 0.5rem; }\n .mj-lk-listmsg { padding: 1rem; color: var(--mj-text-secondary); text-align: center; }\n .mj-lk-joinrow { display: flex; gap: 8px; }\n .mj-lk-joinrow__input { flex: 1; }\n .mj-lk-joinrow__btn { white-space: nowrap; }\n .mj-lk-transcript {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-top: 0.5rem;\n max-height: 60vh;\n overflow-y: auto;\n }\n .mj-lk-tline {\n display: flex;\n flex-direction: column;\n gap: 2px;\n padding: 8px 10px;\n border-radius: 8px;\n background: var(--mj-bg-surface-card);\n }\n .mj-lk-tline--agent { background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface)); }\n .mj-lk-tline--error { background: var(--mj-status-error-bg, color-mix(in srgb, var(--mj-status-error) 8%, var(--mj-bg-surface))); }\n .mj-lk-tline__who { font-size: 0.72rem; font-weight: 600; color: var(--mj-text-secondary); }\n .mj-lk-tline__msg { font-size: 0.875rem; color: var(--mj-text-primary); }\n .mj-lk-invite {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n min-width: 360px;\n padding: 0.25rem;\n }\n .mj-lk-invite__hint {\n margin: 0;\n color: var(--mj-text-muted);\n font-size: 0.8125rem;\n }\n .mj-lk-invite__search {\n display: flex;\n gap: 0.5rem;\n }\n .mj-lk-invite__search .mj-input {\n flex: 1;\n }\n .mj-lk-invite__searchbtn,\n .mj-lk-invite__send,\n .mj-lk-invite__cancel {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.4rem;\n padding: 0.5rem 0.85rem;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md, 8px);\n cursor: pointer;\n font-size: 0.875rem;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n }\n .mj-lk-invite__send {\n border: none;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n .mj-lk-invite__send:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n .mj-lk-invite__chips {\n display: flex;\n flex-wrap: wrap;\n gap: 0.4rem;\n }\n .mj-lk-invite__chip {\n display: inline-flex;\n align-items: center;\n gap: 0.35rem;\n padding: 0.2rem 0.5rem;\n border-radius: 999px;\n font-size: 0.8125rem;\n color: var(--mj-text-primary);\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n }\n .mj-lk-invite__chipx {\n border: none;\n background: transparent;\n cursor: pointer;\n color: var(--mj-text-muted);\n padding: 0;\n }\n .mj-lk-invite__results {\n max-height: 220px;\n overflow-y: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md, 8px);\n }\n .mj-lk-invite__result {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 0.1rem;\n width: 100%;\n padding: 0.5rem 0.75rem;\n border: none;\n border-bottom: 1px solid var(--mj-border-subtle, var(--mj-border-default));\n background: transparent;\n cursor: pointer;\n text-align: left;\n }\n .mj-lk-invite__result:hover {\n background: var(--mj-bg-surface-hover);\n }\n .mj-lk-invite__rname {\n color: var(--mj-text-primary);\n font-size: 0.875rem;\n }\n .mj-lk-invite__remail {\n color: var(--mj-text-muted);\n font-size: 0.75rem;\n }\n .mj-lk-invite__empty {\n color: var(--mj-text-muted);\n font-size: 0.8125rem;\n padding: 0.25rem;\n }\n .mj-lk-invite__msg {\n color: var(--mj-text-secondary);\n font-size: 0.8125rem;\n }\n .mj-lk-invite__actions {\n display: flex;\n gap: 0.5rem;\n margin-top: 0.25rem;\n }\n "] }]
1654
+ `, styles: ["\n :host {\n display: block;\n height: 100%;\n }\n .mj-livekit-room-resource {\n display: block;\n height: 100%;\n }\n .mj-livekit-room-resource__message {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n height: 100%;\n padding: 1.5rem;\n text-align: center;\n color: var(--mj-text-secondary);\n }\n .mj-livekit-room-resource__message i {\n color: var(--mj-status-warning);\n }\n .mj-lk-prejoin {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n padding: 1.5rem;\n background: var(--mj-bg-page);\n }\n .mj-lk-prejoin__card {\n width: 100%;\n max-width: 440px;\n padding: 2rem;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-lg, 12px);\n background: var(--mj-bg-surface);\n box-shadow: var(--mj-shadow-md, 0 4px 16px rgba(0, 0, 0, 0.12));\n text-align: center;\n }\n .mj-lk-prejoin__icon {\n font-size: 1.75rem;\n color: var(--mj-brand-primary);\n margin-bottom: 0.75rem;\n }\n .mj-lk-prejoin__title {\n margin: 0 0 0.5rem;\n color: var(--mj-text-primary);\n font-size: 1.25rem;\n }\n .mj-lk-prejoin__subtitle {\n margin: 0 0 1.5rem;\n color: var(--mj-text-secondary);\n font-size: 0.875rem;\n line-height: 1.4;\n }\n .mj-lk-prejoin__label {\n display: block;\n text-align: left;\n margin-bottom: 0.35rem;\n color: var(--mj-text-secondary);\n font-size: 0.8125rem;\n font-weight: 600;\n }\n .mj-lk-prejoin__dev {\n margin-left: 0.35rem;\n padding: 0 0.35rem;\n border-radius: 999px;\n font-size: 0.625rem;\n font-weight: 700;\n text-transform: uppercase;\n color: var(--mj-text-inverse);\n background: var(--mj-brand-primary);\n vertical-align: middle;\n }\n .mj-lk-prejoin__select {\n width: 100%;\n margin-bottom: 0.75rem;\n }\n .mj-lk-prejoin__desc {\n text-align: left;\n margin: 0 0 1.25rem;\n color: var(--mj-text-muted);\n font-size: 0.8125rem;\n line-height: 1.4;\n }\n .mj-lk-prejoin__start {\n width: 100%;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n padding: 0.625rem 1rem;\n border: none;\n border-radius: var(--mj-radius-md, 8px);\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n font-size: 0.9375rem;\n font-weight: 600;\n cursor: pointer;\n }\n .mj-lk-prejoin__start:hover:not(:disabled) {\n background: var(--mj-brand-primary-hover);\n }\n .mj-lk-prejoin__start:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n .mj-lk-prejoin__card--wide {\n max-width: 560px;\n text-align: left;\n }\n .mj-lk-back {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n margin-bottom: 0.75rem;\n padding: 4px 8px;\n border: none;\n background: none;\n cursor: pointer;\n color: var(--mj-text-secondary);\n font-size: 0.8125rem;\n }\n .mj-lk-back:hover { color: var(--mj-text-primary); }\n .mj-lk-cards {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 0.75rem;\n margin-top: 1.25rem;\n }\n .mj-lk-card {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 6px;\n padding: 1.25rem 0.75rem;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-lg, 12px);\n background: var(--mj-bg-surface-card);\n cursor: pointer;\n text-align: center;\n }\n .mj-lk-card:hover {\n border-color: var(--mj-brand-primary);\n background: var(--mj-bg-surface-hover, var(--mj-bg-surface-card));\n }\n .mj-lk-card > i { font-size: 1.4rem; color: var(--mj-brand-primary); }\n .mj-lk-card__t { font-weight: 600; color: var(--mj-text-primary); font-size: 0.9rem; }\n .mj-lk-card__d { color: var(--mj-text-muted); font-size: 0.78rem; line-height: 1.3; }\n /* The preview room: a dev tool, so a slim row under the three main choices. */\n .mj-lk-card--preview {\n grid-column: 1 / -1;\n flex-direction: row;\n gap: 12px;\n padding: 0.75rem 1rem;\n text-align: left;\n }\n .mj-lk-card__text { display: flex; flex-direction: column; gap: 2px; }\n .mj-lk-list {\n display: flex;\n flex-direction: column;\n gap: 6px;\n margin: 0.5rem 0 1rem;\n max-height: 320px;\n overflow-y: auto;\n }\n .mj-lk-list__row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.75rem;\n padding: 10px 12px;\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n background: var(--mj-bg-surface-card);\n cursor: pointer;\n text-align: left;\n }\n .mj-lk-list__row:hover { border-color: var(--mj-brand-primary); background: var(--mj-bg-surface-hover, var(--mj-bg-surface-card)); }\n .mj-lk-list__name { color: var(--mj-text-primary); font-size: 0.875rem; display: inline-flex; align-items: center; gap: 8px; }\n .mj-lk-list__meta { color: var(--mj-text-muted); font-size: 0.78rem; white-space: nowrap; }\n .mj-lk-livedot { color: var(--mj-status-success); font-size: 0.5rem; }\n .mj-lk-listmsg { padding: 1rem; color: var(--mj-text-secondary); text-align: center; }\n .mj-lk-joinrow { display: flex; gap: 8px; }\n .mj-lk-joinrow__input { flex: 1; }\n .mj-lk-joinrow__btn { white-space: nowrap; }\n .mj-lk-transcript {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-top: 0.5rem;\n max-height: 60vh;\n overflow-y: auto;\n }\n .mj-lk-tline {\n display: flex;\n flex-direction: column;\n gap: 2px;\n padding: 8px 10px;\n border-radius: 8px;\n background: var(--mj-bg-surface-card);\n }\n .mj-lk-tline--agent { background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface)); }\n .mj-lk-tline--error { background: var(--mj-status-error-bg, color-mix(in srgb, var(--mj-status-error) 8%, var(--mj-bg-surface))); }\n .mj-lk-tline__who { font-size: 0.72rem; font-weight: 600; color: var(--mj-text-secondary); }\n .mj-lk-tline__msg { font-size: 0.875rem; color: var(--mj-text-primary); }\n .mj-lk-invite {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n min-width: 360px;\n padding: 0.25rem;\n }\n .mj-lk-invite__hint {\n margin: 0;\n color: var(--mj-text-muted);\n font-size: 0.8125rem;\n }\n .mj-lk-invite__search {\n display: flex;\n gap: 0.5rem;\n }\n .mj-lk-invite__search .mj-input {\n flex: 1;\n }\n .mj-lk-invite__searchbtn,\n .mj-lk-invite__send,\n .mj-lk-invite__cancel {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.4rem;\n padding: 0.5rem 0.85rem;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md, 8px);\n cursor: pointer;\n font-size: 0.875rem;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n }\n .mj-lk-invite__send {\n border: none;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n .mj-lk-invite__send:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n .mj-lk-invite__chips {\n display: flex;\n flex-wrap: wrap;\n gap: 0.4rem;\n }\n .mj-lk-invite__chip {\n display: inline-flex;\n align-items: center;\n gap: 0.35rem;\n padding: 0.2rem 0.5rem;\n border-radius: 999px;\n font-size: 0.8125rem;\n color: var(--mj-text-primary);\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n }\n .mj-lk-invite__chipx {\n border: none;\n background: transparent;\n cursor: pointer;\n color: var(--mj-text-muted);\n padding: 0;\n }\n .mj-lk-invite__results {\n max-height: 220px;\n overflow-y: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md, 8px);\n }\n .mj-lk-invite__result {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 0.1rem;\n width: 100%;\n padding: 0.5rem 0.75rem;\n border: none;\n border-bottom: 1px solid var(--mj-border-subtle, var(--mj-border-default));\n background: transparent;\n cursor: pointer;\n text-align: left;\n }\n .mj-lk-invite__result:hover {\n background: var(--mj-bg-surface-hover);\n }\n .mj-lk-invite__rname {\n color: var(--mj-text-primary);\n font-size: 0.875rem;\n }\n .mj-lk-invite__remail {\n color: var(--mj-text-muted);\n font-size: 0.75rem;\n }\n .mj-lk-invite__empty {\n color: var(--mj-text-muted);\n font-size: 0.8125rem;\n padding: 0.25rem;\n }\n .mj-lk-invite__msg {\n color: var(--mj-text-secondary);\n font-size: 0.8125rem;\n }\n .mj-lk-invite__actions {\n display: flex;\n gap: 0.5rem;\n margin-top: 0.25rem;\n }\n "] }]
1593
1655
  }], null, null); })();
1594
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LiveKitRoomResource, { className: "LiveKitRoomResource", filePath: "src/lib/resource-wrappers/livekit-room-resource.component.ts", lineNumber: 601 }); })();
1656
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LiveKitRoomResource, { className: "LiveKitRoomResource", filePath: "src/lib/resource-wrappers/livekit-room-resource.component.ts", lineNumber: 621 }); })();
1595
1657
  //# sourceMappingURL=livekit-room-resource.component.js.map