beast-agent 1.4.2 → 1.5.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.
- package/package.json +1 -1
- package/src/agent/engine.js +239 -15
- package/src/agent/llm.js +62 -39
- package/src/main.js +509 -89
- package/src/preload.js +5 -1
- package/src/renderer/i18n.js +12 -2
- package/src/renderer/index.html +30 -7
- package/src/renderer/renderer.js +478 -61
- package/src/renderer/style.css +291 -20
package/src/renderer/style.css
CHANGED
|
@@ -348,6 +348,9 @@ body.rail-hidden #rail { display: none; }
|
|
|
348
348
|
}
|
|
349
349
|
#bbUrl:focus { border-color: var(--accent); }
|
|
350
350
|
#bbClose:hover { color: var(--err); }
|
|
351
|
+
/* telefon modu: aktif buton vurgulu + dar dockta mobil çerçeve hissi */
|
|
352
|
+
#bbPhone.on { color: var(--accent); background: var(--panel2); box-shadow: inset 0 -2px 0 var(--accent); }
|
|
353
|
+
body.phone-mode #bbPhone { color: var(--accent); }
|
|
351
354
|
|
|
352
355
|
/* sürükle-boyutlandır tutamacı (görünmez) */
|
|
353
356
|
#bbResize {
|
|
@@ -1153,6 +1156,59 @@ body.term-open #settingsOverlay { right: var(--tw, 520px); }
|
|
|
1153
1156
|
#micBtn.rec { color: #e5484d; animation: mic-pulse 1.2s ease-in-out infinite; }
|
|
1154
1157
|
@keyframes mic-pulse { 50% { opacity: .45; } }
|
|
1155
1158
|
|
|
1159
|
+
/* Beast Code girişi: + ve mikrofon (chat composer ile aynı stil) */
|
|
1160
|
+
#bcAttach, #bcMic {
|
|
1161
|
+
width: 28px; height: 28px;
|
|
1162
|
+
border-radius: 8px;
|
|
1163
|
+
border: none;
|
|
1164
|
+
cursor: pointer;
|
|
1165
|
+
font-size: 16px;
|
|
1166
|
+
line-height: 1;
|
|
1167
|
+
flex-shrink: 0;
|
|
1168
|
+
background: none;
|
|
1169
|
+
color: var(--muted);
|
|
1170
|
+
display: inline-flex;
|
|
1171
|
+
align-items: center;
|
|
1172
|
+
justify-content: center;
|
|
1173
|
+
padding: 0;
|
|
1174
|
+
}
|
|
1175
|
+
#bcAttach:hover, #bcMic:hover { background: var(--panel); color: var(--accent); }
|
|
1176
|
+
#bcAttach, #bcMic { margin-bottom: 5px; }
|
|
1177
|
+
#bcMic.rec { color: #e5484d; animation: mic-pulse 1.2s ease-in-out infinite; }
|
|
1178
|
+
#bcChips {
|
|
1179
|
+
display: flex;
|
|
1180
|
+
flex-wrap: wrap;
|
|
1181
|
+
gap: 5px;
|
|
1182
|
+
padding: 0 10px 6px;
|
|
1183
|
+
}
|
|
1184
|
+
#bcChips[hidden] { display: none; }
|
|
1185
|
+
#bcChips .chip { font-size: 11.5px; padding: 2px 9px; }
|
|
1186
|
+
|
|
1187
|
+
/* sohbette dosya/resim ekleri: içerik AÇILMADAN kompakt kart */
|
|
1188
|
+
.att-row {
|
|
1189
|
+
display: flex;
|
|
1190
|
+
flex-wrap: wrap;
|
|
1191
|
+
gap: 5px;
|
|
1192
|
+
margin-top: 7px;
|
|
1193
|
+
}
|
|
1194
|
+
.att-chip {
|
|
1195
|
+
display: inline-flex;
|
|
1196
|
+
align-items: center;
|
|
1197
|
+
gap: 5px;
|
|
1198
|
+
background: var(--panel2);
|
|
1199
|
+
border: 1px solid var(--border);
|
|
1200
|
+
border-radius: 999px;
|
|
1201
|
+
padding: 2px 10px;
|
|
1202
|
+
font-size: 11.5px;
|
|
1203
|
+
color: var(--text);
|
|
1204
|
+
max-width: 260px;
|
|
1205
|
+
overflow: hidden;
|
|
1206
|
+
text-overflow: ellipsis;
|
|
1207
|
+
white-space: nowrap;
|
|
1208
|
+
}
|
|
1209
|
+
.msg-user .att-chip { background: var(--bg); }
|
|
1210
|
+
.att-chip.att-img { border-style: dashed; }
|
|
1211
|
+
|
|
1156
1212
|
#input {
|
|
1157
1213
|
flex: 1;
|
|
1158
1214
|
background: none;
|
|
@@ -1313,8 +1369,8 @@ body.browser-open #settingsDialog { width: min(70vw, calc(100vw - var(--bw, 480p
|
|
|
1313
1369
|
}
|
|
1314
1370
|
|
|
1315
1371
|
#setTabs {
|
|
1316
|
-
width:
|
|
1317
|
-
min-width:
|
|
1372
|
+
width: 210px;
|
|
1373
|
+
min-width: 210px;
|
|
1318
1374
|
background: var(--panel);
|
|
1319
1375
|
border-right: 1px solid var(--border);
|
|
1320
1376
|
display: flex;
|
|
@@ -1404,6 +1460,15 @@ body.browser-open #settingsDialog { width: min(70vw, calc(100vw - var(--bw, 480p
|
|
|
1404
1460
|
font-size: 13px;
|
|
1405
1461
|
}
|
|
1406
1462
|
#setClose:hover { color: var(--err); border-color: var(--err); background: rgba(19, 19, 21, 0.05); }
|
|
1463
|
+
/* kapat butonunun altında küçük + ortalı sürüm etiketi */
|
|
1464
|
+
.set-version {
|
|
1465
|
+
margin-top: 8px;
|
|
1466
|
+
text-align: center;
|
|
1467
|
+
font-size: 11px;
|
|
1468
|
+
letter-spacing: 0.5px;
|
|
1469
|
+
opacity: 0.55;
|
|
1470
|
+
user-select: text;
|
|
1471
|
+
}
|
|
1407
1472
|
|
|
1408
1473
|
#setContent { flex: 1; overflow-y: auto; padding: 22px 26px; }
|
|
1409
1474
|
.pane {
|
|
@@ -1430,8 +1495,14 @@ body.browser-open #settingsDialog { width: min(70vw, calc(100vw - var(--bw, 480p
|
|
|
1430
1495
|
margin-bottom: 8px;
|
|
1431
1496
|
cursor: pointer;
|
|
1432
1497
|
background: var(--panel);
|
|
1498
|
+
/* button elementleri body'den renk miras almaz — dark modda siyah kalmasın */
|
|
1499
|
+
color: var(--text);
|
|
1500
|
+
font-family: inherit;
|
|
1433
1501
|
}
|
|
1434
1502
|
.prov-row:hover { border-color: var(--accent); }
|
|
1503
|
+
/* dil kartları: aktif seçim vurgusu */
|
|
1504
|
+
.lang-row.active { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
|
|
1505
|
+
.lang-row.active:hover { border-color: var(--accent); }
|
|
1435
1506
|
.prov-row.active { border-color: var(--accent); background: var(--accent-dim); }
|
|
1436
1507
|
.prov-name { font-weight: 700; font-size: 13px; }
|
|
1437
1508
|
.prov-model { color: var(--muted); font-size: 12px; font-family: Consolas, monospace; }
|
|
@@ -2161,6 +2232,7 @@ body.browser-open #botOverlay { right: var(--bw, 480px); }
|
|
|
2161
2232
|
border-right: 1px solid var(--border);
|
|
2162
2233
|
flex-direction: column;
|
|
2163
2234
|
overflow: hidden;
|
|
2235
|
+
position: relative;
|
|
2164
2236
|
}
|
|
2165
2237
|
/* IDE modunda sol taraf: sohbet geçmişi yerine klasör sistemi */
|
|
2166
2238
|
body.ide-mode #newChat,
|
|
@@ -2235,7 +2307,6 @@ body.ide-mode #bcPanel { display: flex; }
|
|
|
2235
2307
|
border-top: 1px solid var(--border);
|
|
2236
2308
|
background: var(--panel);
|
|
2237
2309
|
}
|
|
2238
|
-
#bcPrompt { color: var(--accent); font-family: Consolas, monospace; font-size: 12px; font-weight: 700; flex: none; padding-bottom: 7px; }
|
|
2239
2310
|
/* otomatik büyüyen chat input'u: satır sonunda alt satıra iner, alan açılır;
|
|
2240
2311
|
tavanı (140px ≈ 6 satır) aşarsa kendi içinde scroll'a döner */
|
|
2241
2312
|
#bcInput {
|
|
@@ -2461,6 +2532,73 @@ body.ide-mode #bcPanel { display: flex; }
|
|
|
2461
2532
|
text-overflow: ellipsis;
|
|
2462
2533
|
}
|
|
2463
2534
|
#fileTree { flex: 1; overflow-y: auto; padding: 6px 4px; }
|
|
2535
|
+
/* görev listesi + geri alma paneli (dosya paneli başlığından açılır) */
|
|
2536
|
+
#tasksPanel {
|
|
2537
|
+
position: absolute;
|
|
2538
|
+
top: 62px;
|
|
2539
|
+
left: 8px;
|
|
2540
|
+
right: 8px;
|
|
2541
|
+
max-height: 62%;
|
|
2542
|
+
overflow-y: auto;
|
|
2543
|
+
background: var(--panel);
|
|
2544
|
+
border: 1px solid var(--border);
|
|
2545
|
+
border-radius: 10px;
|
|
2546
|
+
box-shadow: 0 12px 30px rgba(0, 0, 0, 0.28);
|
|
2547
|
+
z-index: 45;
|
|
2548
|
+
padding: 4px;
|
|
2549
|
+
}
|
|
2550
|
+
#tasksPanel[hidden] { display: none; }
|
|
2551
|
+
#fileTasks.on { color: var(--accent); }
|
|
2552
|
+
.tsk-head {
|
|
2553
|
+
display: flex;
|
|
2554
|
+
align-items: center;
|
|
2555
|
+
gap: 6px;
|
|
2556
|
+
padding: 5px 7px 7px;
|
|
2557
|
+
font-size: 10.5px;
|
|
2558
|
+
font-weight: 800;
|
|
2559
|
+
letter-spacing: 1px;
|
|
2560
|
+
color: var(--muted);
|
|
2561
|
+
}
|
|
2562
|
+
.tsk-head button {
|
|
2563
|
+
margin-left: auto;
|
|
2564
|
+
background: none;
|
|
2565
|
+
border: 1px solid var(--border);
|
|
2566
|
+
border-radius: 6px;
|
|
2567
|
+
color: var(--muted);
|
|
2568
|
+
font-size: 10.5px;
|
|
2569
|
+
padding: 2px 8px;
|
|
2570
|
+
cursor: pointer;
|
|
2571
|
+
letter-spacing: 0;
|
|
2572
|
+
}
|
|
2573
|
+
.tsk-head button:hover { color: var(--text); border-color: var(--accent); }
|
|
2574
|
+
.tsk-head button[disabled] { opacity: 0.35; cursor: default; }
|
|
2575
|
+
.tsk-row {
|
|
2576
|
+
display: flex;
|
|
2577
|
+
align-items: center;
|
|
2578
|
+
gap: 6px;
|
|
2579
|
+
padding: 5px 7px;
|
|
2580
|
+
border-radius: 7px;
|
|
2581
|
+
font-size: 12px;
|
|
2582
|
+
}
|
|
2583
|
+
.tsk-row:hover { background: var(--panel2); }
|
|
2584
|
+
.tsk-id { flex: none; font-family: Consolas, monospace; font-size: 11px; color: var(--accent); font-weight: 700; }
|
|
2585
|
+
.tsk-title { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
2586
|
+
.tsk-st { flex: none; font-size: 11px; color: var(--muted); }
|
|
2587
|
+
.tsk-st.done { color: #16a34a; }
|
|
2588
|
+
.tsk-st.active { color: var(--accent); }
|
|
2589
|
+
.tsk-undo {
|
|
2590
|
+
flex: none;
|
|
2591
|
+
background: none;
|
|
2592
|
+
border: 1px solid var(--border);
|
|
2593
|
+
border-radius: 6px;
|
|
2594
|
+
color: var(--muted);
|
|
2595
|
+
font-size: 11px;
|
|
2596
|
+
padding: 2px 7px;
|
|
2597
|
+
cursor: pointer;
|
|
2598
|
+
}
|
|
2599
|
+
.tsk-undo:hover { color: var(--err); border-color: var(--err); }
|
|
2600
|
+
.tsk-undo[disabled] { opacity: 0.35; cursor: default; }
|
|
2601
|
+
.tsk-empty { padding: 8px 10px; font-size: 12px; color: var(--muted); }
|
|
2464
2602
|
.file-row {
|
|
2465
2603
|
display: flex;
|
|
2466
2604
|
align-items: center;
|
|
@@ -2591,7 +2729,90 @@ body.ide-mode.editor-hidden #ideRow #bcPanel { flex: 1 1 auto; min-width: 0; }
|
|
|
2591
2729
|
line-height: 1.4;
|
|
2592
2730
|
}
|
|
2593
2731
|
#codeSave:hover { color: var(--accent); border-color: var(--accent); background: var(--panel2); }
|
|
2594
|
-
#
|
|
2732
|
+
#codeDiffBtn {
|
|
2733
|
+
flex: none;
|
|
2734
|
+
background: none;
|
|
2735
|
+
border: 1px solid var(--border);
|
|
2736
|
+
border-radius: 7px;
|
|
2737
|
+
color: var(--muted);
|
|
2738
|
+
cursor: pointer;
|
|
2739
|
+
font-size: 11.5px;
|
|
2740
|
+
padding: 4px 10px;
|
|
2741
|
+
line-height: 1.4;
|
|
2742
|
+
}
|
|
2743
|
+
#codeDiffBtn:hover { color: var(--accent); border-color: var(--accent); background: var(--panel2); }
|
|
2744
|
+
#codeBody { flex: 1; display: flex; min-height: 0; position: relative; }
|
|
2745
|
+
/* canlı diff katmanı: textarea'nın ARKASINDA satır satır yeşil/kırmızı boya —
|
|
2746
|
+
metin birebir aynı yazıldığı için satırlar birebir üst üste gelir */
|
|
2747
|
+
#codeLayer {
|
|
2748
|
+
position: absolute;
|
|
2749
|
+
top: 0; bottom: 0;
|
|
2750
|
+
left: 57px; right: 0;
|
|
2751
|
+
margin: 0;
|
|
2752
|
+
padding: 12px 14px;
|
|
2753
|
+
font-family: Consolas, "Cascadia Mono", monospace;
|
|
2754
|
+
font-size: 12.5px;
|
|
2755
|
+
line-height: 20px;
|
|
2756
|
+
white-space: pre;
|
|
2757
|
+
overflow: hidden;
|
|
2758
|
+
pointer-events: none;
|
|
2759
|
+
z-index: 0;
|
|
2760
|
+
color: transparent;
|
|
2761
|
+
user-select: none;
|
|
2762
|
+
}
|
|
2763
|
+
#codeLayer .row { display: block; min-height: 20px; }
|
|
2764
|
+
#codeLayer .row.add {
|
|
2765
|
+
background: rgba(34, 197, 94, 0.18);
|
|
2766
|
+
box-shadow: inset 3px 0 0 #22c55e;
|
|
2767
|
+
}
|
|
2768
|
+
#codeLayer .row.mod {
|
|
2769
|
+
background: rgba(239, 68, 68, 0.12);
|
|
2770
|
+
box-shadow: inset 3px 0 0 #ef4444;
|
|
2771
|
+
}
|
|
2772
|
+
#codeLayer .row.find {
|
|
2773
|
+
background: rgba(250, 204, 21, 0.22);
|
|
2774
|
+
box-shadow: inset 3px 0 0 #eab308;
|
|
2775
|
+
}
|
|
2776
|
+
/* kod içi arama widget'ı (Shift+F) — editörün sağ üstünde yüzer */
|
|
2777
|
+
#codeFind {
|
|
2778
|
+
position: absolute;
|
|
2779
|
+
top: 6px;
|
|
2780
|
+
right: 14px;
|
|
2781
|
+
z-index: 7;
|
|
2782
|
+
display: flex;
|
|
2783
|
+
align-items: center;
|
|
2784
|
+
gap: 3px;
|
|
2785
|
+
background: var(--panel);
|
|
2786
|
+
border: 1px solid var(--border);
|
|
2787
|
+
border-radius: 8px;
|
|
2788
|
+
padding: 3px 6px;
|
|
2789
|
+
box-shadow: 0 6px 18px rgba(0, 0, 0, 0.25);
|
|
2790
|
+
}
|
|
2791
|
+
#codeFind[hidden] { display: none; }
|
|
2792
|
+
#codeFindInp {
|
|
2793
|
+
width: 170px;
|
|
2794
|
+
background: var(--bg);
|
|
2795
|
+
border: 1px solid var(--border);
|
|
2796
|
+
color: var(--text);
|
|
2797
|
+
border-radius: 6px;
|
|
2798
|
+
font-size: 12px;
|
|
2799
|
+
padding: 3px 7px;
|
|
2800
|
+
outline: none;
|
|
2801
|
+
font-family: Consolas, "Cascadia Mono", monospace;
|
|
2802
|
+
}
|
|
2803
|
+
#codeFindInp:focus { border-color: var(--accent); }
|
|
2804
|
+
#codeFindCount { font-size: 11px; color: var(--muted); min-width: 40px; text-align: center; }
|
|
2805
|
+
#codeFind button {
|
|
2806
|
+
background: none;
|
|
2807
|
+
border: none;
|
|
2808
|
+
color: var(--muted);
|
|
2809
|
+
cursor: pointer;
|
|
2810
|
+
font-size: 13px;
|
|
2811
|
+
padding: 2px 5px;
|
|
2812
|
+
border-radius: 5px;
|
|
2813
|
+
line-height: 1;
|
|
2814
|
+
}
|
|
2815
|
+
#codeFind button:hover { background: var(--panel2); color: var(--text); }
|
|
2595
2816
|
#codeGutter {
|
|
2596
2817
|
flex: none;
|
|
2597
2818
|
width: 56px;
|
|
@@ -2631,7 +2852,7 @@ body.ide-mode.editor-hidden #ideRow #bcPanel { flex: 1 1 auto; min-width: 0; }
|
|
|
2631
2852
|
resize: none;
|
|
2632
2853
|
border: none;
|
|
2633
2854
|
outline: none;
|
|
2634
|
-
background:
|
|
2855
|
+
background: transparent;
|
|
2635
2856
|
color: var(--text);
|
|
2636
2857
|
padding: 12px 14px;
|
|
2637
2858
|
font-family: Consolas, "Cascadia Mono", monospace;
|
|
@@ -2639,7 +2860,57 @@ body.ide-mode.editor-hidden #ideRow #bcPanel { flex: 1 1 auto; min-width: 0; }
|
|
|
2639
2860
|
line-height: 20px;
|
|
2640
2861
|
white-space: pre;
|
|
2641
2862
|
overflow: auto;
|
|
2863
|
+
position: relative;
|
|
2864
|
+
z-index: 1;
|
|
2865
|
+
}
|
|
2866
|
+
/* okunur diff görünümü: ajan değiştirdiğinde / Diff butonunda açılır —
|
|
2867
|
+
silinen satırlar KIRMIZI, eklenenler YEŞİL (chat diffView gibi, metinle birlikte) */
|
|
2868
|
+
#codeDiffView {
|
|
2869
|
+
position: absolute;
|
|
2870
|
+
inset: 0;
|
|
2871
|
+
z-index: 6;
|
|
2872
|
+
display: flex;
|
|
2873
|
+
flex-direction: column;
|
|
2874
|
+
background: var(--bg);
|
|
2875
|
+
}
|
|
2876
|
+
#codeDiffView[hidden] { display: none; }
|
|
2877
|
+
#codeDiffBar {
|
|
2878
|
+
flex: none;
|
|
2879
|
+
display: flex;
|
|
2880
|
+
align-items: center;
|
|
2881
|
+
gap: 8px;
|
|
2882
|
+
padding: 5px 10px;
|
|
2883
|
+
border-bottom: 1px solid var(--border);
|
|
2884
|
+
background: var(--panel);
|
|
2885
|
+
font-size: 11.5px;
|
|
2886
|
+
color: var(--muted);
|
|
2642
2887
|
}
|
|
2888
|
+
#codeDiffBar button {
|
|
2889
|
+
background: none;
|
|
2890
|
+
border: 1px solid var(--border);
|
|
2891
|
+
border-radius: 6px;
|
|
2892
|
+
color: var(--muted);
|
|
2893
|
+
font-size: 11px;
|
|
2894
|
+
padding: 2px 8px;
|
|
2895
|
+
cursor: pointer;
|
|
2896
|
+
}
|
|
2897
|
+
#codeDiffBar button:hover { color: var(--text); border-color: var(--accent); }
|
|
2898
|
+
#codeDiffStats .plus { color: #16a34a; font-weight: 700; }
|
|
2899
|
+
#codeDiffStats .minus { color: #dc2626; font-weight: 700; }
|
|
2900
|
+
#codeDiffRows {
|
|
2901
|
+
flex: 1;
|
|
2902
|
+
overflow: auto;
|
|
2903
|
+
font-family: Consolas, "Cascadia Mono", monospace;
|
|
2904
|
+
font-size: 12.5px;
|
|
2905
|
+
line-height: 20px;
|
|
2906
|
+
padding: 6px 0;
|
|
2907
|
+
}
|
|
2908
|
+
#codeDiffRows .dr { display: flex; white-space: pre; padding: 0 10px; min-height: 20px; }
|
|
2909
|
+
#codeDiffRows .dr .sign { flex: none; width: 16px; text-align: center; user-select: none; opacity: 0.75; }
|
|
2910
|
+
#codeDiffRows .dr .num { flex: none; width: 38px; text-align: right; padding-right: 8px; color: var(--muted); opacity: 0.7; user-select: none; }
|
|
2911
|
+
#codeDiffRows .dr .tx { white-space: pre; }
|
|
2912
|
+
#codeDiffRows .dr.del { background: rgba(239, 68, 68, 0.16); box-shadow: inset 3px 0 0 #ef4444; }
|
|
2913
|
+
#codeDiffRows .dr.add { background: rgba(34, 197, 94, 0.18); box-shadow: inset 3px 0 0 #22c55e; }
|
|
2643
2914
|
/* dikey scrollbar hep görünür, tutulabilir ve imleç değişsin */
|
|
2644
2915
|
#codeTa::-webkit-scrollbar {
|
|
2645
2916
|
width: 12px;
|
|
@@ -3094,19 +3365,19 @@ body.browser-open #ghOverlay { right: var(--bw, 480px); }
|
|
|
3094
3365
|
text-align: center;
|
|
3095
3366
|
}
|
|
3096
3367
|
|
|
3097
|
-
/* Beast Code durum balonu: dusunuyor… / arac adlari — inputun ustunde */
|
|
3098
|
-
#bcStatus {
|
|
3099
|
-
flex: none;
|
|
3100
|
-
align-self:
|
|
3101
|
-
margin: 0 12px 6px;
|
|
3102
|
-
padding:
|
|
3103
|
-
font-size: 11px;
|
|
3104
|
-
color: var(--
|
|
3105
|
-
background: var(--
|
|
3106
|
-
border: 1px solid var(--
|
|
3107
|
-
border-radius: 999px;
|
|
3108
|
-
max-width: calc(100% - 24px);
|
|
3109
|
-
overflow: hidden;
|
|
3110
|
-
text-overflow: ellipsis;
|
|
3111
|
-
white-space: nowrap;
|
|
3368
|
+
/* Beast Code durum balonu: dusunuyor… / arac adlari — inputun ustunde ORTALI (chat statusPill gibi) */
|
|
3369
|
+
#bcStatus {
|
|
3370
|
+
flex: none;
|
|
3371
|
+
align-self: center;
|
|
3372
|
+
margin: 0 12px 6px;
|
|
3373
|
+
padding: 3px 10px;
|
|
3374
|
+
font-size: 11px;
|
|
3375
|
+
color: var(--accent);
|
|
3376
|
+
background: var(--accent-dim);
|
|
3377
|
+
border: 1px solid var(--accent);
|
|
3378
|
+
border-radius: 999px;
|
|
3379
|
+
max-width: calc(100% - 24px);
|
|
3380
|
+
overflow: hidden;
|
|
3381
|
+
text-overflow: ellipsis;
|
|
3382
|
+
white-space: nowrap;
|
|
3112
3383
|
}
|