beast-agent 2.2.1 → 2.3.1

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.
@@ -66,9 +66,14 @@ body {
66
66
  color: var(--text);
67
67
  font-size: 14px;
68
68
  overflow: hidden;
69
+ /* pencere = dikey kolon: [içerik (#app)] + [alt terminal] — terminal
70
+ overlay DEĞİL, akışın parçası; içerik kendiliğinden yukarı küçülür */
71
+ display: flex;
72
+ flex-direction: column;
73
+ height: 100vh;
69
74
  }
70
75
 
71
- #app { display: flex; height: 100vh; }
76
+ #app { display: flex; flex: 1 1 auto; min-height: 0; }
72
77
 
73
78
  /* ---------- sidebar ---------- */
74
79
 
@@ -357,48 +362,115 @@ body.rail-hidden #rail { display: none; }
357
362
  /* telefon modu: aktif buton vurgulu + dar dockta mobil çerçeve hissi */
358
363
  #bbPhone.on { color: var(--accent); background: var(--panel2); box-shadow: inset 0 -2px 0 var(--accent); }
359
364
  body.phone-mode #bbPhone { color: var(--accent); }
365
+ /* mobil önizleme: telefon silueti çerçevesi */
366
+ #bbMobile.on { color: var(--accent); background: var(--panel2); box-shadow: inset 0 -2px 0 var(--accent); }
367
+ body.mobile-preview #bbMobile { color: var(--accent); }
368
+ /* cihaz seçici: telefonun ALTINDA yüzen modern pill picker (konumu renderPhoneFrame) */
369
+ #bbDevice {
370
+ position: fixed;
371
+ display: none;
372
+ z-index: 10000;
373
+ height: 34px;
374
+ padding: 0 34px 0 16px;
375
+ border-radius: 17px;
376
+ border: 1px solid var(--border);
377
+ background-color: var(--panel2);
378
+ color: var(--text);
379
+ font-size: 12px;
380
+ font-weight: 600;
381
+ letter-spacing: .2px;
382
+ outline: none;
383
+ appearance: none;
384
+ -webkit-appearance: none;
385
+ background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23888890' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
386
+ background-repeat: no-repeat;
387
+ background-position: right 14px center;
388
+ box-shadow: 0 6px 18px rgba(0, 0, 0, .3);
389
+ }
390
+ #bbDevice:hover { border-color: var(--accent); }
391
+ #bbDevice:focus { border-color: var(--accent); }
392
+
393
+ /* ---------- MOBİL ÖNİZLEME: telefon silueti çerçevesi ----------
394
+ WebContentsView ekranın kendisidir (main'deki PHONE_* sabitleriyle birebir);
395
+ çerçeve/çentik/durum çubuğu/home bar DOM'da çizilir — pointer-events yok,
396
+ native view'a asla dokunmaz (kenar şeritleri view sınırlarının dışındadır) */
397
+ #phoneFrame {
398
+ position: fixed;
399
+ display: none;
400
+ pointer-events: none;
401
+ z-index: 9999;
402
+ box-sizing: border-box; /* border rect sınırlarının İÇİNDE kalır — view ile birebir hizalı */
403
+ border: 12px solid #0a0a0e;
404
+ border-radius: 42px;
405
+ filter: drop-shadow(0 12px 32px rgba(0, 0, 0, .55));
406
+ }
407
+ #phoneFrame .pf-home {
408
+ /* alt kenar çerçeve bandının İÇİNDE — native view'ın dışında, görünür */
409
+ position: absolute;
410
+ bottom: -9px; left: 50%;
411
+ transform: translateX(-50%);
412
+ width: 38%; height: 4px;
413
+ border-radius: 3px;
414
+ background: rgba(255, 255, 255, .8);
415
+ }
360
416
 
361
417
  /* sürükle-boyutlandır tutamacı (görünmez) */
418
+ /* Beast Code chat ↔ tarayıcı arası ayırıcı: ideSplit ile BİREBİR aynı çizgi
419
+ (6px, border rengi, col-resize). Görünmez genişletilmiş tutma alanı yok —
420
+ çizginin kendisi hem görsel hem tutamaçtır. */
362
421
  #bbResize {
363
422
  position: fixed;
364
423
  top: 46px;
365
424
  right: var(--bw, 480px);
366
- width: 8px;
425
+ width: 6px;
367
426
  height: calc(100vh - 46px);
368
427
  cursor: col-resize;
428
+ background: var(--border);
429
+ opacity: 0.55;
369
430
  z-index: 60;
431
+ transition: opacity 0.15s, background 0.15s;
432
+ }
433
+ #bbResize::before {
434
+ /* çizginin solundaki görünmez genişletilmiş tutma alanı (kolay kavrama) */
435
+ content: '';
436
+ position: absolute;
437
+ top: 0; bottom: 0; left: -10px;
438
+ width: 10px;
439
+ }
440
+ #bbResize:hover,
441
+ body.bb-dragging #bbResize {
442
+ opacity: 1; /* renk DEĞİŞMEZ — sadece netleşir */
370
443
  }
371
444
  body.bb-dragging { user-select: none; }
372
445
  body.bb-dragging * { cursor: col-resize !important; }
373
446
 
374
- /* ---------- terminal panel (sağ docktarayıcı gibi) ---------- */
447
+ /* ---------- terminal panel (ALT DOCKakışın parçası, overlay değil) ---------- */
375
448
 
376
449
  #termBtn.on { background: var(--accent-dim); color: var(--accent); }
377
450
 
378
- body.term-open #app { margin-right: var(--tw, 520px); }
379
- body.term-open #topbar { width: auto; }
451
+ /* tarayıcı dock'u terminal payını boşaltır (main view yüksekliğini kısaltır) */
452
+ body.term-open #bbResize { height: calc(100vh - 46px - var(--th, 180px)); }
380
453
 
381
454
  #termPanel {
382
- position: fixed;
383
- top: 0;
384
- right: 0;
385
- bottom: 0;
386
- width: var(--tw, 520px);
455
+ position: relative;
456
+ flex: 0 0 auto;
457
+ height: var(--th, 180px);
458
+ min-height: 0;
387
459
  display: flex;
388
460
  flex-direction: column;
389
461
  background: var(--panel);
390
- border-left: 1px solid var(--border);
462
+ border-top: 1px solid var(--border);
391
463
  z-index: 55;
392
464
  }
393
465
  #termPanel[hidden] { display: none; }
394
466
 
395
467
  #termHead {
396
- height: 46px;
468
+ height: 38px;
397
469
  flex: none;
398
470
  display: flex;
399
471
  align-items: center;
400
472
  gap: 8px;
401
- padding: 0 148px 0 10px; /* sağ: sabit pencere butonları (win-controls) alanı */
473
+ padding: 0 10px;
402
474
  border-bottom: 1px solid var(--border);
403
475
  }
404
476
  #termTitle { font-size: 11px; font-weight: 800; letter-spacing: 1px; color: var(--accent); flex: none; }
@@ -483,19 +555,17 @@ body.term-open #topbar { width: auto; }
483
555
  #termStop:hover { border-color: var(--err); }
484
556
 
485
557
  #termResize {
486
- position: fixed;
487
- top: 0;
488
- right: var(--tw, 520px);
489
- width: 8px;
490
- height: 100vh;
491
- cursor: col-resize;
492
- z-index: 60;
558
+ position: absolute;
559
+ top: -5px;
560
+ left: 0;
561
+ right: 0;
562
+ height: 10px;
563
+ cursor: row-resize;
564
+ z-index: 62;
493
565
  }
566
+ #termResize:hover { background: var(--accent-dim); }
494
567
  body.term-dragging { user-select: none; }
495
- body.term-dragging * { cursor: col-resize !important; }
496
-
497
- body.term-open .mini-overlay { right: var(--tw, 520px); }
498
- body.term-open #settingsOverlay { right: var(--tw, 520px); }
568
+ body.term-dragging * { cursor: row-resize !important; }
499
569
 
500
570
  #topbar {
501
571
  height: 46px;
@@ -1170,6 +1240,20 @@ body.term-open #settingsOverlay { right: var(--tw, 520px); }
1170
1240
  /* composer sol grubu: + mikrofon — yanyana boşluksuz */
1171
1241
  #composerLeft { display: flex; align-items: center; gap: 0; flex-shrink: 0; }
1172
1242
 
1243
+ #ttsBtn {
1244
+ width: 32px; height: 32px;
1245
+ border-radius: 9px;
1246
+ border: none;
1247
+ cursor: pointer;
1248
+ font-size: 17px;
1249
+ line-height: 1;
1250
+ flex-shrink: 0;
1251
+ background: none;
1252
+ color: var(--muted);
1253
+ }
1254
+ #ttsBtn:hover { background: var(--panel); color: var(--accent); }
1255
+ #ttsBtn.on { color: var(--ok); background: var(--accent-dim); }
1256
+
1173
1257
  #micBtn {
1174
1258
  width: 32px; height: 32px;
1175
1259
  border-radius: 9px;
@@ -1184,6 +1268,8 @@ body.term-open #settingsOverlay { right: var(--tw, 520px); }
1184
1268
  #micBtn:hover { background: var(--panel); color: var(--accent); }
1185
1269
  #micBtn.rec { color: #e5484d; animation: mic-pulse 1.2s ease-in-out infinite; }
1186
1270
  @keyframes mic-pulse { 50% { opacity: .45; } }
1271
+ /* eller-serbest mod: dinlerken .rec (kırmızı nabız), aktif ama dinlemezken .hf (vurgu) */
1272
+ #micBtn.hf, #bcMic.hf, #stMic.hf { color: var(--accent); animation: mic-pulse 2.4s ease-in-out infinite; }
1187
1273
 
1188
1274
  /* Beast Code girişi: + ve mikrofon (chat composer ile aynı stil) */
1189
1275
  #bcAttach, #bcMic {
@@ -2652,6 +2738,10 @@ body.ide-mode #codePane { display: flex; }
2652
2738
  cursor: col-resize;
2653
2739
  background: var(--border);
2654
2740
  opacity: 0.55;
2741
+ transition: opacity 0.15s;
2742
+ }
2743
+ #ideSplit:hover {
2744
+ opacity: 1; /* renk DEĞİŞMEZ — sadece netleşir */
2655
2745
  }
2656
2746
  /* editör kapatılabilir: kod bölmesi + ayırıcı gizlenir, Beast Code tam genişlik */
2657
2747
  body.ide-mode.editor-hidden #codePane,