clay-server 2.26.0-beta.9 → 2.26.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.
@@ -1,3 +1,121 @@
1
+ /* --- Debate floor mode: hide non-essential input controls --- */
2
+ .debate-floor-mode #schedule-btn,
3
+ .debate-floor-mode #ask-mate-btn,
4
+ .debate-floor-mode #config-chip-wrap,
5
+ .debate-floor-mode #context-sources-bar,
6
+ .debate-floor-mode #mention-menu,
7
+ .debate-floor-mode #slash-menu,
8
+ .debate-floor-mode #suggestion-chips {
9
+ display: none !important;
10
+ }
11
+
12
+ .debate-floor-banner {
13
+ display: flex;
14
+ align-items: center;
15
+ gap: 8px;
16
+ padding: 8px 16px;
17
+ background: color-mix(in srgb, var(--accent) 8%, var(--bg));
18
+ border-bottom: 1px solid var(--border);
19
+ font-size: 13px;
20
+ font-weight: 600;
21
+ color: var(--accent);
22
+ }
23
+
24
+ .debate-floor-banner svg {
25
+ width: 14px;
26
+ height: 14px;
27
+ }
28
+
29
+ .debate-floor-banner .debate-floor-done-btn {
30
+ margin-left: auto;
31
+ padding: 4px 12px;
32
+ border: 1px solid var(--accent);
33
+ border-radius: 6px;
34
+ background: transparent;
35
+ color: var(--accent);
36
+ font-size: 12px;
37
+ font-weight: 600;
38
+ cursor: pointer;
39
+ }
40
+
41
+ .debate-floor-banner .debate-floor-end-btn {
42
+ border-color: #e74c3c;
43
+ color: #e74c3c;
44
+ }
45
+
46
+ /* --- Debate ended status line --- */
47
+ .debate-ended-status-line {
48
+ display: flex;
49
+ align-items: center;
50
+ justify-content: center;
51
+ gap: 6px;
52
+ padding: 12px 16px;
53
+ font-size: 13px;
54
+ font-weight: 600;
55
+ color: var(--text-muted);
56
+ }
57
+
58
+ .debate-ended-status-line svg {
59
+ width: 16px;
60
+ height: 16px;
61
+ color: var(--accent);
62
+ }
63
+
64
+ /* --- Debate loop group in sidebar --- */
65
+ .session-loop-group.debate {
66
+ border-left: 2px solid var(--accent);
67
+ }
68
+
69
+ .session-loop-icon.debate {
70
+ color: var(--accent);
71
+ }
72
+
73
+ .session-loop-count.debate {
74
+ color: var(--accent);
75
+ }
76
+
77
+ /* --- Debate session icon in sidebar --- */
78
+ .session-debate-icon {
79
+ display: inline-flex;
80
+ align-items: center;
81
+ margin-right: 4px;
82
+ color: var(--accent);
83
+ vertical-align: middle;
84
+ }
85
+ .session-debate-icon svg {
86
+ width: 12px;
87
+ height: 12px;
88
+ }
89
+
90
+ /* --- Debate pill button in mate sidebar (matches .new-ralph-pill) --- */
91
+ .mate-debate-pill {
92
+ display: inline-flex;
93
+ align-items: center;
94
+ justify-content: center;
95
+ gap: 3px;
96
+ height: 22px;
97
+ padding: 0 8px;
98
+ border: 1px solid var(--accent);
99
+ border-radius: 6px;
100
+ background: var(--accent-12, rgba(108, 92, 231, 0.12));
101
+ color: var(--accent);
102
+ font-size: 10px;
103
+ font-weight: 700;
104
+ font-family: inherit;
105
+ letter-spacing: 0.2px;
106
+ cursor: pointer;
107
+ white-space: nowrap;
108
+ transition: background 0.15s, color 0.15s;
109
+ }
110
+ .mate-debate-pill .lucide {
111
+ width: 10px;
112
+ height: 10px;
113
+ }
114
+ .mate-debate-pill:hover {
115
+ background: var(--accent);
116
+ color: #fff;
117
+ }
118
+
1
119
  /* --- Debate header badges (inline with session title) --- */
2
120
  .debate-header-badge {
3
121
  display: inline-flex;
@@ -590,6 +708,7 @@
590
708
  transition: color 0.15s, background 0.15s, border-color 0.15s;
591
709
  }
592
710
 
711
+ #debate-pdf-btn.hidden { display: none; }
593
712
  #debate-pdf-btn .lucide { width: 15px; height: 15px; }
594
713
  #debate-pdf-btn:hover { color: var(--text-secondary); background: rgba(var(--overlay-rgb),0.04); border-color: var(--border); }
595
714
  #debate-pdf-btn:disabled { opacity: 0.5; cursor: default; }
@@ -850,6 +969,27 @@
850
969
  padding: 0 4px;
851
970
  }
852
971
 
972
+ /* Wizard pages */
973
+ .debate-wizard-page { display: none; }
974
+ .debate-wizard-page.active { display: block; }
975
+
976
+ /* Step dots */
977
+ .debate-wizard-steps {
978
+ display: flex;
979
+ gap: 6px;
980
+ align-items: center;
981
+ }
982
+ .debate-step-dot {
983
+ width: 8px;
984
+ height: 8px;
985
+ border-radius: 50%;
986
+ background: var(--border);
987
+ transition: background 0.2s;
988
+ }
989
+ .debate-step-dot.active {
990
+ background: var(--accent);
991
+ }
992
+
853
993
  .debate-modal-body {
854
994
  padding: 16px 20px;
855
995
  }
@@ -945,9 +1085,10 @@
945
1085
  }
946
1086
 
947
1087
  .debate-skip-setup-row {
948
- margin-top: 12px;
949
- padding: 8px 0;
1088
+ margin: 0;
1089
+ padding: 0;
950
1090
  }
1091
+ .debate-skip-setup-row.hidden { display: none; }
951
1092
 
952
1093
  .debate-toggle-label {
953
1094
  display: flex;
@@ -971,13 +1112,29 @@
971
1112
 
972
1113
  .debate-modal-footer {
973
1114
  display: flex;
1115
+ align-items: center;
974
1116
  justify-content: flex-end;
975
1117
  gap: 8px;
976
1118
  padding: 12px 20px;
977
1119
  border-top: 1px solid var(--border);
978
1120
  }
979
1121
 
1122
+ .debate-modal-footer .hidden { display: none; }
1123
+
980
1124
  .debate-btn-cancel {
1125
+ margin-right: auto;
1126
+ padding: 8px 16px;
1127
+ border: 1px solid var(--border);
1128
+ border-radius: 8px;
1129
+ background: var(--bg);
1130
+ color: var(--text-muted);
1131
+ font-size: 13px;
1132
+ font-weight: 600;
1133
+ cursor: pointer;
1134
+ }
1135
+
1136
+ .debate-btn-back {
1137
+ margin-right: auto;
981
1138
  padding: 8px 16px;
982
1139
  border: 1px solid var(--border);
983
1140
  border-radius: 8px;
@@ -988,6 +1145,30 @@
988
1145
  cursor: pointer;
989
1146
  }
990
1147
 
1148
+ .debate-btn-quick {
1149
+ padding: 8px 20px;
1150
+ border: 1px solid var(--accent);
1151
+ border-radius: 8px;
1152
+ background: var(--bg);
1153
+ color: var(--accent);
1154
+ font-size: 13px;
1155
+ font-weight: 600;
1156
+ cursor: pointer;
1157
+ transition: opacity 0.2s;
1158
+ }
1159
+
1160
+ .debate-btn-next {
1161
+ padding: 8px 20px;
1162
+ border: none;
1163
+ border-radius: 8px;
1164
+ background: var(--accent);
1165
+ color: #fff;
1166
+ font-size: 13px;
1167
+ font-weight: 600;
1168
+ cursor: pointer;
1169
+ transition: opacity 0.2s;
1170
+ }
1171
+
991
1172
  .debate-btn-start {
992
1173
  padding: 8px 20px;
993
1174
  border: none;
@@ -1121,6 +1302,12 @@
1121
1302
  padding: 12px 16px;
1122
1303
  }
1123
1304
 
1305
+ @media (max-width: 768px) {
1306
+ #debate-bottom-bar {
1307
+ padding-bottom: calc(12px + 56px + var(--safe-bottom, 0px));
1308
+ }
1309
+ }
1310
+
1124
1311
  .debate-bottom-inner {
1125
1312
  max-width: var(--content-width);
1126
1313
  margin: 0 auto;
@@ -1151,6 +1338,41 @@
1151
1338
  background: color-mix(in srgb, var(--accent) 10%, transparent);
1152
1339
  }
1153
1340
 
1341
+ .debate-bottom-hand.raised {
1342
+ background: var(--accent);
1343
+ color: #fff;
1344
+ border-color: var(--accent);
1345
+ }
1346
+
1347
+ .debate-bottom-hand.raised svg {
1348
+ color: #fff;
1349
+ }
1350
+
1351
+ .debate-bottom-hand.hidden { display: none; }
1352
+
1353
+ .debate-bottom-waiting {
1354
+ display: inline-flex;
1355
+ align-items: center;
1356
+ gap: 6px;
1357
+ font-size: 13px;
1358
+ color: var(--accent);
1359
+ font-weight: 500;
1360
+ animation: debate-waiting-pulse 2s ease-in-out infinite;
1361
+ }
1362
+
1363
+ .debate-bottom-waiting.hidden { display: none; }
1364
+
1365
+ .debate-bottom-waiting svg {
1366
+ width: 14px;
1367
+ height: 14px;
1368
+ animation: spin 1s linear infinite;
1369
+ }
1370
+
1371
+ @keyframes debate-waiting-pulse {
1372
+ 0%, 100% { opacity: 1; }
1373
+ 50% { opacity: 0.6; }
1374
+ }
1375
+
1154
1376
  .debate-bottom-stop {
1155
1377
  display: inline-flex;
1156
1378
  align-items: center;
@@ -1222,6 +1444,12 @@
1222
1444
  border-color: var(--accent);
1223
1445
  }
1224
1446
 
1447
+ @media (max-width: 768px) {
1448
+ .debate-bottom-conclude {
1449
+ padding-bottom: calc(56px + var(--safe-bottom, 0px));
1450
+ }
1451
+ }
1452
+
1225
1453
  .debate-bottom-continue {
1226
1454
  padding: 8px 16px;
1227
1455
  border: 1px solid var(--accent);
@@ -873,7 +873,8 @@
873
873
  .terminal-tab.active { color: var(--text); border-color: var(--accent); }
874
874
  .terminal-tab.exited { opacity: 0.5; }
875
875
 
876
- .terminal-tab-close {
876
+
877
+ .terminal-tab-more {
877
878
  display: none;
878
879
  align-items: center;
879
880
  justify-content: center;
@@ -888,9 +889,44 @@
888
889
  line-height: 1;
889
890
  }
890
891
 
891
- .terminal-tab:hover .terminal-tab-close,
892
- .terminal-tab.active .terminal-tab-close { display: flex; }
893
- .terminal-tab-close:hover { background: rgba(var(--overlay-rgb),0.1); color: var(--text); }
892
+ .terminal-tab:hover .terminal-tab-more,
893
+ .terminal-tab.active .terminal-tab-more { display: flex; }
894
+ .terminal-tab-more:hover { background: rgba(var(--overlay-rgb),0.1); color: var(--text); }
895
+
896
+ .terminal-tab-ctx {
897
+ position: fixed;
898
+ z-index: 9999;
899
+ min-width: 120px;
900
+ background: var(--bg-elevated, var(--bg));
901
+ border: 1px solid var(--border);
902
+ border-radius: 6px;
903
+ padding: 4px;
904
+ box-shadow: 0 4px 12px rgba(0,0,0,0.15);
905
+ }
906
+
907
+ .terminal-tab-ctx-item {
908
+ display: flex;
909
+ align-items: center;
910
+ gap: 8px;
911
+ width: 100%;
912
+ padding: 6px 10px;
913
+ border: none;
914
+ border-radius: 4px;
915
+ background: transparent;
916
+ color: var(--text-secondary);
917
+ font-size: 12px;
918
+ cursor: pointer;
919
+ white-space: nowrap;
920
+ }
921
+
922
+ .terminal-tab-ctx-item:hover {
923
+ background: rgba(var(--overlay-rgb),0.08);
924
+ color: var(--text);
925
+ }
926
+
927
+ .terminal-tab-ctx-danger:hover {
928
+ color: #e74c3c;
929
+ }
894
930
 
895
931
  .terminal-tab-label { cursor: default; }
896
932
 
@@ -971,6 +1007,7 @@
971
1007
 
972
1008
  .terminal-tab-body .xterm {
973
1009
  height: 100%;
1010
+ overflow: hidden;
974
1011
  }
975
1012
 
976
1013
  /* --- Terminal key toolbar (mobile) --- */
@@ -222,11 +222,13 @@
222
222
  animation: permShake 2s ease-in-out infinite;
223
223
  }
224
224
 
225
- /* Mate status dot (top-left, same as project icons) */
225
+ /* Mate status dot (bottom-right, matching user online dot) */
226
226
  .icon-strip-mate .icon-strip-status {
227
- top: -1px;
228
- left: -1px;
229
- border-color: var(--bg-alt);
227
+ top: auto;
228
+ left: auto;
229
+ bottom: 5px;
230
+ right: 5px;
231
+ border-color: var(--sidebar-bg);
230
232
  z-index: 3;
231
233
  }
232
234
 
@@ -824,13 +826,11 @@
824
826
  box-shadow: 0 0 0 2px var(--accent);
825
827
  }
826
828
 
827
- /* Primary mate: green ring + full opacity */
829
+ /* Primary mate: full color (no desaturate), no ring */
828
830
  .icon-strip-primary-mate {
829
- opacity: 0.9;
830
- box-shadow: 0 0 0 2px #00b894;
831
- }
832
- .icon-strip-user:hover .icon-strip-primary-mate {
833
- box-shadow: 0 0 0 2px #00b894;
831
+ opacity: 1;
832
+ border-radius: 8px;
833
+ filter: saturate(1) !important;
834
834
  }
835
835
 
836
836
  /* Online status dot (bottom-right on avatar, like project blink dot) */
@@ -437,6 +437,39 @@
437
437
  font-size: 13px;
438
438
  text-align: center;
439
439
  }
440
+ .context-picker-ext-notice {
441
+ padding: 10px 12px;
442
+ display: flex;
443
+ flex-direction: column;
444
+ gap: 8px;
445
+ }
446
+ .context-picker-ext-notice-text {
447
+ font-size: 12px;
448
+ color: var(--text-dimmer);
449
+ line-height: 1.4;
450
+ }
451
+ .context-picker-ext-btn {
452
+ display: inline-flex;
453
+ align-items: center;
454
+ gap: 5px;
455
+ padding: 5px 10px;
456
+ font-size: 12px;
457
+ font-weight: 500;
458
+ color: var(--text);
459
+ background: var(--bg-hover, rgba(255,255,255,0.06));
460
+ border: 1px solid var(--border);
461
+ border-radius: 6px;
462
+ cursor: pointer;
463
+ transition: background 0.15s;
464
+ width: fit-content;
465
+ }
466
+ .context-picker-ext-btn:hover {
467
+ background: var(--bg-active, rgba(255,255,255,0.1));
468
+ }
469
+ .context-picker-ext-btn .lucide {
470
+ width: 13px;
471
+ height: 13px;
472
+ }
440
473
 
441
474
  .context-picker-favicon {
442
475
  width: 14px;
@@ -487,24 +487,24 @@
487
487
  background: var(--border, #333);
488
488
  }
489
489
 
490
- /* === Mate badge in user strip === */
491
- .icon-strip-user-mate-badge {
492
- position: absolute;
493
- bottom: 0;
494
- right: 0;
495
- width: 14px;
496
- height: 14px;
497
- background: var(--accent, #6c5ce7);
498
- border-radius: 50%;
499
- border: 2px solid var(--bg, #282a36);
500
- display: flex;
501
- align-items: center;
502
- justify-content: center;
490
+ /* === Mate avatar in user strip: squircle + desaturate === */
491
+ .icon-strip-mate .icon-strip-user-avatar {
492
+ border-radius: 8px;
493
+ filter: saturate(0.65);
503
494
  }
504
- .icon-strip-user-mate-badge svg {
505
- width: 8px;
506
- height: 8px;
507
- color: #fff;
495
+ .icon-strip-mate:hover .icon-strip-user-avatar,
496
+ .icon-strip-mate.mention-active .icon-strip-user-avatar {
497
+ filter: saturate(1);
498
+ }
499
+ .icon-strip-mate.active .icon-strip-user-avatar {
500
+ filter: saturate(1);
501
+ box-shadow: 0 0 0 2px var(--accent);
502
+ border-radius: 8px;
503
+ }
504
+
505
+ /* Hide legacy bot badge (replaced by squircle shape) */
506
+ .icon-strip-user-mate-badge {
507
+ display: none;
508
508
  }
509
509
 
510
510
  /* Mate item in DM picker */
@@ -2752,27 +2752,6 @@ body.mate-dm-active .activity-inline:not(.mention-activity-bar):not(.mate-pre-ac
2752
2752
  -webkit-tap-highlight-color: transparent;
2753
2753
  }
2754
2754
 
2755
- .mate-mobile-back {
2756
- display: flex;
2757
- align-items: center;
2758
- justify-content: center;
2759
- width: 44px;
2760
- height: 44px;
2761
- flex-shrink: 0;
2762
- background: none;
2763
- border: none;
2764
- color: #fff;
2765
- cursor: pointer;
2766
- padding: 0;
2767
- touch-action: manipulation;
2768
- -webkit-tap-highlight-color: transparent;
2769
- }
2770
-
2771
- .mate-mobile-back svg {
2772
- width: 22px;
2773
- height: 22px;
2774
- }
2775
-
2776
2755
  .mate-mobile-avatar {
2777
2756
  width: 32px;
2778
2757
  height: 32px;
@@ -1798,6 +1798,23 @@ body.wide-view .msg-assistant:hover {
1798
1798
  background: var(--bg-alt);
1799
1799
  }
1800
1800
 
1801
+ /* Grouped messages: same sender within same minute, hide avatar + header */
1802
+ body.wide-view .msg-user.grouped > .dm-bubble-avatar,
1803
+ body.wide-view .msg-assistant.grouped > .dm-bubble-avatar,
1804
+ body.mate-dm-active .msg-assistant.grouped > .dm-bubble-avatar {
1805
+ visibility: hidden;
1806
+ }
1807
+ body.wide-view .msg-user.grouped .dm-bubble-header,
1808
+ body.wide-view .msg-assistant.grouped .dm-bubble-header,
1809
+ body.mate-dm-active .msg-assistant.grouped .dm-bubble-header {
1810
+ display: none;
1811
+ }
1812
+ body.wide-view .msg-user.grouped,
1813
+ body.wide-view .msg-assistant.grouped,
1814
+ body.mate-dm-active .msg-assistant.grouped {
1815
+ padding-top: 1px;
1816
+ }
1817
+
1801
1818
  body.wide-view .msg-user {
1802
1819
  justify-content: flex-start;
1803
1820
  }
@@ -342,7 +342,6 @@
342
342
  margin-bottom: 4px;
343
343
  background: none;
344
344
  border: none;
345
- border-bottom: 1px solid var(--border-subtle);
346
345
  color: var(--accent);
347
346
  font-family: "Pretendard", system-ui, sans-serif;
348
347
  font-size: 15px;
@@ -351,6 +350,9 @@
351
350
  text-align: left;
352
351
  -webkit-tap-highlight-color: transparent;
353
352
  }
353
+ .mobile-session-new:last-of-type {
354
+ border-bottom: 1px solid var(--border-subtle);
355
+ }
354
356
 
355
357
  .mobile-session-new:active {
356
358
  background: rgba(var(--overlay-rgb), 0.06);
@@ -197,8 +197,13 @@
197
197
  }
198
198
 
199
199
  .context-card-header .context-card-icon {
200
- font-size: 13px;
201
200
  opacity: 0.7;
201
+ display: inline-flex;
202
+ align-items: center;
203
+ }
204
+ .context-card-header .context-card-icon .lucide {
205
+ width: 14px;
206
+ height: 14px;
202
207
  }
203
208
 
204
209
  .context-card-screenshot {
@@ -226,10 +231,16 @@
226
231
 
227
232
  .context-card-meta {
228
233
  display: flex;
229
- justify-content: space-between;
230
- align-items: baseline;
234
+ align-items: center;
231
235
  margin-top: 8px;
232
- gap: 12px;
236
+ gap: 6px;
237
+ }
238
+ .context-card-favicon {
239
+ width: 14px;
240
+ height: 14px;
241
+ border-radius: 2px;
242
+ flex-shrink: 0;
243
+ object-fit: contain;
233
244
  }
234
245
 
235
246
  .context-card-title {
@@ -240,6 +251,8 @@
240
251
  text-overflow: ellipsis;
241
252
  flex: 1;
242
253
  min-width: 0;
254
+ flex: 1;
255
+ min-width: 0;
243
256
  }
244
257
 
245
258
  .context-card-domain {
@@ -256,11 +256,11 @@
256
256
  <button id="mate-sticky-notes-btn"><i data-lucide="sticky-note"></i> <span>Sticky Notes</span></button>
257
257
  <button id="mate-skills-btn"><i data-lucide="puzzle"></i> <span>Skills</span></button>
258
258
  <button id="mate-scheduler-btn"><i data-lucide="calendar-clock"></i> <span>Scheduled Tasks</span></button>
259
- <button id="mate-debate-btn"><i data-lucide="mic"></i> <span>Debate</span></button>
260
259
  </div>
261
260
  <div id="mate-sidebar-conversations">
262
261
  <div class="mate-sidebar-sessions-header">
263
262
  <span>Conversations</span>
263
+ <button id="mate-debate-btn" class="mate-debate-pill" title="New Debate"><i data-lucide="mic"></i> Debate</button>
264
264
  <div class="mate-sidebar-actions">
265
265
  <button id="mate-search-session-btn" type="button" title="Search sessions"><i data-lucide="search"></i></button>
266
266
  <button id="mate-new-session-btn" type="button" title="New session"><i data-lucide="plus"></i></button>
@@ -332,7 +332,6 @@
332
332
  <button id="header-info-btn" type="button" title="Session info"><i data-lucide="info"></i></button>
333
333
  <button id="header-rename-btn" type="button" title="Rename session"><i data-lucide="pencil"></i></button>
334
334
  <div id="mate-mobile-title" class="mate-mobile-title hidden">
335
- <button id="mate-mobile-back" class="mate-mobile-back" type="button" aria-label="Back"><i data-lucide="chevron-left"></i></button>
336
335
  <img id="mate-mobile-avatar" class="mate-mobile-avatar" alt="">
337
336
  <span id="mate-mobile-name" class="mate-mobile-name"></span>
338
337
  </div>
@@ -1507,30 +1506,38 @@
1507
1506
  </div>
1508
1507
  </div>
1509
1508
 
1510
- <!-- Debate Modal -->
1509
+ <!-- Debate Modal (Wizard) -->
1511
1510
  <div id="debate-modal" class="hidden">
1512
1511
  <div class="debate-modal-backdrop"></div>
1513
1512
  <div class="debate-modal-card">
1514
1513
  <div class="debate-modal-header">
1515
1514
  <span><i data-lucide="mic"></i> New Debate</span>
1515
+ <div class="debate-wizard-steps">
1516
+ <span class="debate-step-dot active" data-step="0"></span>
1517
+ <span class="debate-step-dot" data-step="1"></span>
1518
+ </div>
1516
1519
  <button id="debate-modal-close">&times;</button>
1517
1520
  </div>
1518
- <div class="debate-modal-body">
1519
- <label class="debate-field-label" for="debate-topic-input">Topic <span class="debate-field-req">*</span></label>
1520
- <textarea id="debate-topic-input" rows="2" placeholder="e.g. Should AI development be regulated?"></textarea>
1521
- <label class="debate-field-label" for="debate-panel-list">Select panelists</label>
1522
- <div id="debate-panel-list" class="debate-panel-list"></div>
1523
- <div id="debate-skip-setup-row" class="debate-skip-setup-row hidden">
1524
- <label class="debate-toggle-label">
1525
- <input type="checkbox" id="debate-skip-setup-toggle">
1526
- <span>Skip setup</span>
1527
- <span class="debate-skip-setup-hint">Moderator generates the brief automatically from conversation context</span>
1528
- </label>
1521
+ <!-- Step 0: Topic -->
1522
+ <div class="debate-wizard-page active" data-step="0">
1523
+ <div class="debate-modal-body">
1524
+ <label class="debate-field-label" for="debate-topic-input">Topic <span class="debate-field-req">*</span></label>
1525
+ <textarea id="debate-topic-input" rows="2" placeholder="e.g. Should AI development be regulated?"></textarea>
1526
+ </div>
1527
+ </div>
1528
+ <!-- Step 1: Panelists -->
1529
+ <div class="debate-wizard-page" data-step="1">
1530
+ <div class="debate-modal-body">
1531
+ <label class="debate-field-label" for="debate-panel-list">Select panelists</label>
1532
+ <div id="debate-panel-list" class="debate-panel-list"></div>
1529
1533
  </div>
1530
1534
  </div>
1531
1535
  <div class="debate-modal-footer">
1532
1536
  <button id="debate-modal-cancel" class="debate-btn-cancel">Cancel</button>
1533
- <button id="debate-modal-start" class="debate-btn-start">Start</button>
1537
+ <button id="debate-modal-back" class="debate-btn-back hidden">Back</button>
1538
+ <button id="debate-modal-quick" class="debate-btn-quick hidden">Quick Start</button>
1539
+ <button id="debate-modal-next" class="debate-btn-next hidden">Choose Panel</button>
1540
+ <button id="debate-modal-start" class="debate-btn-start hidden">Design Debate</button>
1534
1541
  </div>
1535
1542
  </div>
1536
1543
  </div>
@@ -2033,6 +2040,7 @@
2033
2040
  <script src="https://cdn.jsdelivr.net/npm/@xterm/xterm@5/lib/xterm.min.js"></script>
2034
2041
  <script src="https://cdn.jsdelivr.net/npm/@xterm/addon-fit@0/lib/addon-fit.min.js"></script>
2035
2042
  <script src="https://cdn.jsdelivr.net/npm/@xterm/addon-web-links@0/lib/addon-web-links.min.js"></script>
2043
+ <script src="https://cdn.jsdelivr.net/npm/@xterm/addon-webgl@0/lib/addon-webgl.min.js"></script>
2036
2044
  <script type="module" src="app.js"></script>
2037
2045
  <div id="pwa-install-modal" class="pwa-modal hidden">
2038
2046
  <div class="pwa-modal-backdrop"></div>