clay-server 4.3.0-beta.9 → 4.3.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.
|
@@ -358,10 +358,15 @@
|
|
|
358
358
|
background: rgba(var(--overlay-rgb), 0.06);
|
|
359
359
|
}
|
|
360
360
|
|
|
361
|
-
|
|
361
|
+
.mobile-session-new:focus-visible {
|
|
362
|
+
outline: 2px solid var(--accent);
|
|
363
|
+
outline-offset: 2px;
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
/* Primary creation action with an adjacent icon-only provider selector. */
|
|
362
367
|
.mobile-session-new-row {
|
|
363
368
|
display: flex;
|
|
364
|
-
gap:
|
|
369
|
+
gap: 0;
|
|
365
370
|
padding: 6px 8px 8px;
|
|
366
371
|
}
|
|
367
372
|
|
|
@@ -369,36 +374,43 @@
|
|
|
369
374
|
flex: 1 1 auto;
|
|
370
375
|
width: auto;
|
|
371
376
|
margin-bottom: 0;
|
|
377
|
+
min-width: 0;
|
|
372
378
|
padding: 10px 12px;
|
|
373
379
|
border: 1px solid var(--border-subtle);
|
|
374
380
|
border-radius: 8px;
|
|
375
381
|
background: rgba(var(--overlay-rgb), 0.03);
|
|
376
382
|
color: var(--text);
|
|
377
383
|
gap: 8px;
|
|
384
|
+
border-radius: 8px 0 0 8px;
|
|
385
|
+
white-space: normal;
|
|
386
|
+
line-height: 1.2;
|
|
378
387
|
}
|
|
379
388
|
.mobile-session-new-row .mobile-session-new-provider {
|
|
380
|
-
flex: 0
|
|
381
|
-
width:
|
|
382
|
-
min-width:
|
|
389
|
+
flex: 0 0 34px;
|
|
390
|
+
width: 34px;
|
|
391
|
+
min-width: 34px;
|
|
383
392
|
margin-bottom: 0;
|
|
384
|
-
padding:
|
|
393
|
+
padding: 0;
|
|
385
394
|
border: 1px solid var(--border-subtle);
|
|
386
|
-
border-
|
|
395
|
+
border-left-color: var(--border);
|
|
396
|
+
border-radius: 0 8px 8px 0;
|
|
387
397
|
background: rgba(var(--overlay-rgb), 0.03);
|
|
388
398
|
color: var(--text-muted);
|
|
389
|
-
display:
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
transform: rotate(180deg);
|
|
399
|
+
display: inline-flex;
|
|
400
|
+
align-items: center;
|
|
401
|
+
gap: 0;
|
|
402
|
+
justify-content: center;
|
|
394
403
|
}
|
|
395
404
|
.mobile-session-new-row .mobile-session-new-main:active,
|
|
396
405
|
.mobile-session-new-row .mobile-session-new-provider:active {
|
|
397
406
|
background: rgba(var(--overlay-rgb), 0.1);
|
|
398
407
|
}
|
|
399
408
|
|
|
400
|
-
.mobile-session-new-row .session-create-provider-
|
|
401
|
-
.mobile-session-new-row .session-create-provider-
|
|
409
|
+
.mobile-session-new-row .session-create-provider-chevron .lucide,
|
|
410
|
+
.mobile-session-new-row .session-create-provider-chevron svg {
|
|
411
|
+
width: 14px;
|
|
412
|
+
height: 14px;
|
|
413
|
+
}
|
|
402
414
|
|
|
403
415
|
.mobile-vendor-list {
|
|
404
416
|
display: flex;
|
|
@@ -1262,77 +1262,81 @@
|
|
|
1262
1262
|
opacity: 1;
|
|
1263
1263
|
}
|
|
1264
1264
|
|
|
1265
|
-
|
|
1265
|
+
.session-top-action:focus-visible {
|
|
1266
|
+
outline: 2px solid var(--accent);
|
|
1267
|
+
outline-offset: 2px;
|
|
1268
|
+
}
|
|
1269
|
+
|
|
1270
|
+
/* Primary creation action with an adjacent icon-only provider selector. */
|
|
1266
1271
|
.session-top-action-split {
|
|
1267
1272
|
display: flex;
|
|
1268
|
-
flex-wrap:
|
|
1273
|
+
flex-wrap: nowrap;
|
|
1269
1274
|
align-items: stretch;
|
|
1270
|
-
gap:
|
|
1275
|
+
gap: 0;
|
|
1271
1276
|
min-width: 0;
|
|
1272
1277
|
}
|
|
1273
1278
|
|
|
1274
1279
|
.session-top-action-split .split-main {
|
|
1275
|
-
flex: 1 1
|
|
1280
|
+
flex: 1 1 auto;
|
|
1276
1281
|
width: auto;
|
|
1277
|
-
min-width:
|
|
1278
|
-
|
|
1279
|
-
|
|
1282
|
+
min-width: 0;
|
|
1283
|
+
padding: 0 9px;
|
|
1284
|
+
gap: 6px;
|
|
1285
|
+
font-size: 12px;
|
|
1286
|
+
line-height: 1.2;
|
|
1287
|
+
border: 1px solid var(--border-subtle);
|
|
1288
|
+
background: color-mix(in srgb, var(--sidebar-hover) 46%, transparent);
|
|
1280
1289
|
color: var(--text);
|
|
1281
|
-
font-weight:
|
|
1282
|
-
white-space:
|
|
1290
|
+
font-weight: 500;
|
|
1291
|
+
white-space: normal;
|
|
1292
|
+
text-align: left;
|
|
1293
|
+
border-radius: 9px 0 0 9px;
|
|
1283
1294
|
}
|
|
1284
1295
|
|
|
1285
1296
|
.session-top-action-split .split-main:hover {
|
|
1286
|
-
border-color:
|
|
1287
|
-
background:
|
|
1297
|
+
border-color: var(--border);
|
|
1298
|
+
background: var(--sidebar-hover);
|
|
1288
1299
|
}
|
|
1289
1300
|
|
|
1290
1301
|
.session-top-action-split .split-provider {
|
|
1291
|
-
flex:
|
|
1292
|
-
width:
|
|
1293
|
-
min-width:
|
|
1294
|
-
padding:
|
|
1302
|
+
flex: 0 0 26px;
|
|
1303
|
+
width: 26px;
|
|
1304
|
+
min-width: 26px;
|
|
1305
|
+
padding: 0;
|
|
1295
1306
|
border: 1px solid var(--border-subtle);
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
display: block;
|
|
1304
|
-
color: var(--text-dimmer);
|
|
1305
|
-
font-size: 9px;
|
|
1306
|
-
font-weight: 600;
|
|
1307
|
-
line-height: 1;
|
|
1308
|
-
letter-spacing: 0.03em;
|
|
1309
|
-
text-transform: uppercase;
|
|
1307
|
+
border-left-color: var(--border);
|
|
1308
|
+
background: color-mix(in srgb, var(--sidebar-hover) 46%, transparent);
|
|
1309
|
+
border-radius: 0 9px 9px 0;
|
|
1310
|
+
display: inline-flex;
|
|
1311
|
+
align-items: center;
|
|
1312
|
+
gap: 2px;
|
|
1313
|
+
justify-content: center;
|
|
1310
1314
|
}
|
|
1311
1315
|
|
|
1312
|
-
.session-
|
|
1313
|
-
|
|
1314
|
-
align-items: center;
|
|
1315
|
-
gap: 5px;
|
|
1316
|
-
min-width: 0;
|
|
1316
|
+
.session-top-action-split .split-provider:hover {
|
|
1317
|
+
background: var(--sidebar-hover);
|
|
1317
1318
|
}
|
|
1318
1319
|
|
|
1319
|
-
.session-create-provider-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
text-overflow: ellipsis;
|
|
1326
|
-
white-space: nowrap;
|
|
1320
|
+
.session-create-provider-icon {
|
|
1321
|
+
width: 16px;
|
|
1322
|
+
height: 16px;
|
|
1323
|
+
margin-right: 0;
|
|
1324
|
+
border-radius: 4px;
|
|
1325
|
+
object-fit: cover;
|
|
1327
1326
|
}
|
|
1328
1327
|
|
|
1329
1328
|
.session-create-provider-chevron {
|
|
1330
1329
|
display: inline-flex;
|
|
1331
|
-
margin-left: auto;
|
|
1332
1330
|
}
|
|
1333
1331
|
|
|
1334
|
-
.session-create-provider
|
|
1335
|
-
|
|
1332
|
+
.session-create-provider-chevron .lucide,
|
|
1333
|
+
.session-create-provider-chevron svg {
|
|
1334
|
+
width: 14px;
|
|
1335
|
+
height: 14px;
|
|
1336
|
+
}
|
|
1337
|
+
|
|
1338
|
+
.session-create-provider[aria-expanded="true"] {
|
|
1339
|
+
background: var(--sidebar-hover);
|
|
1336
1340
|
}
|
|
1337
1341
|
|
|
1338
1342
|
.session-favorites-section {
|
|
@@ -2,6 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
import { iconHtml } from './icons.js';
|
|
4
4
|
|
|
5
|
+
var SESSION_VENDOR_LABELS = {
|
|
6
|
+
claude: "Claude",
|
|
7
|
+
codex: "Codex",
|
|
8
|
+
antigravity: "Antigravity",
|
|
9
|
+
opencode: "OpenCode",
|
|
10
|
+
kimi: "Kimi",
|
|
11
|
+
grok: "Grok",
|
|
12
|
+
copilot: "Copilot",
|
|
13
|
+
qwen: "Qwen",
|
|
14
|
+
junie: "Junie",
|
|
15
|
+
kiro: "Kiro",
|
|
16
|
+
};
|
|
17
|
+
|
|
5
18
|
export function renderSessionCreationCta(options) {
|
|
6
19
|
var row = document.createElement("div");
|
|
7
20
|
row.className = options.rowClass + " session-create-cta";
|
|
@@ -9,7 +22,10 @@ export function renderSessionCreationCta(options) {
|
|
|
9
22
|
var createButton = document.createElement("button");
|
|
10
23
|
createButton.className = options.createClass + " session-create-primary";
|
|
11
24
|
createButton.type = "button";
|
|
12
|
-
|
|
25
|
+
var vendorLabel = SESSION_VENDOR_LABELS[options.vendorKey] || options.vendorName;
|
|
26
|
+
createButton.innerHTML = '<img src="' + options.vendorAvatar +
|
|
27
|
+
'" class="' + options.iconClass + ' session-create-provider-icon" alt="">' +
|
|
28
|
+
'<span>Create new ' + vendorLabel + ' session</span>';
|
|
13
29
|
createButton.title = options.createTitle;
|
|
14
30
|
createButton.setAttribute("aria-label", options.createTitle);
|
|
15
31
|
createButton.addEventListener("click", options.onCreate);
|
|
@@ -19,13 +35,10 @@ export function renderSessionCreationCta(options) {
|
|
|
19
35
|
providerButton.className = options.providerClass + " session-create-provider";
|
|
20
36
|
providerButton.type = "button";
|
|
21
37
|
providerButton.title = options.providerTitle;
|
|
22
|
-
providerButton.setAttribute("aria-label", "AI provider: " + options.vendorName + "
|
|
38
|
+
providerButton.setAttribute("aria-label", "Switch AI provider (current: " + options.vendorName + ")");
|
|
23
39
|
providerButton.setAttribute("aria-expanded", "false");
|
|
24
40
|
providerButton.setAttribute("aria-controls", options.menuId);
|
|
25
|
-
providerButton.innerHTML =
|
|
26
|
-
'<span class="session-create-provider-choice"><img src="' + options.vendorAvatar +
|
|
27
|
-
'" class="' + options.iconClass + ' session-create-provider-icon" alt=""><span class="session-create-provider-name">' +
|
|
28
|
-
options.vendorName + '</span>' + iconHtml("chevron-down", "session-create-provider-chevron") + '</span>';
|
|
41
|
+
providerButton.innerHTML = iconHtml("chevron-down", "session-create-provider-chevron");
|
|
29
42
|
providerButton.addEventListener("click", options.onProvider);
|
|
30
43
|
row.appendChild(providerButton);
|
|
31
44
|
|
|
@@ -689,10 +689,11 @@ export function renderMobileSessionsInto(container) {
|
|
|
689
689
|
createClass: "mobile-session-new mobile-session-new-main",
|
|
690
690
|
providerClass: "mobile-session-new mobile-session-new-provider",
|
|
691
691
|
iconClass: "mobile-session-new-icon",
|
|
692
|
+
vendorKey: mobileDefaultVendor,
|
|
692
693
|
vendorName: mobileVendorName,
|
|
693
694
|
vendorAvatar: VENDOR_AVATARS[mobileDefaultVendor] || VENDOR_AVATARS.claude,
|
|
694
695
|
createTitle: mobileCreateTitle,
|
|
695
|
-
providerTitle: "
|
|
696
|
+
providerTitle: "Switch AI provider (current: " + mobileVendorName + ")",
|
|
696
697
|
menuId: vendorList.id,
|
|
697
698
|
onCreate: function () { startNewSession(mobileDefaultVendor); closeMobileSheet(); },
|
|
698
699
|
onProvider: function () {
|
|
@@ -372,10 +372,11 @@ export function renderSessionTopActions() {
|
|
|
372
372
|
createClass: "session-top-action split-main",
|
|
373
373
|
providerClass: "session-top-action split-provider",
|
|
374
374
|
iconClass: "session-top-action-icon",
|
|
375
|
+
vendorKey: defaultVendor,
|
|
375
376
|
vendorName: vendorName,
|
|
376
377
|
vendorAvatar: VENDOR_AVATARS[defaultVendor] || VENDOR_AVATARS.claude,
|
|
377
378
|
createTitle: createTitle,
|
|
378
|
-
providerTitle: "
|
|
379
|
+
providerTitle: "Switch AI provider (current: " + vendorName + ")",
|
|
379
380
|
menuId: "session-new-menu",
|
|
380
381
|
onCreate: function () { startNewSession(defaultVendor); },
|
|
381
382
|
onProvider: function (e) {
|
package/package.json
CHANGED