clauddy 1.24.0 → 1.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.
- package/README.md +46 -1
- package/bin/clauddy.js +12 -2
- package/main.js +154 -3
- package/package.json +3 -1
- package/preload.js +5 -0
- package/reminders.js +53 -0
- package/renderer/companion.js +48 -0
- package/renderer/index.html +37 -3
- package/renderer/pet.js +549 -12
- package/renderer/style.css +533 -31
- package/renderer/voice.js +243 -0
package/renderer/style.css
CHANGED
|
@@ -316,6 +316,11 @@ body.collapsed #account-chip {
|
|
|
316
316
|
display: none;
|
|
317
317
|
}
|
|
318
318
|
/* collapsed: the account rides up on the button line, like the chip does */
|
|
319
|
+
/* collapsed, the buttons share the account's line: centre them on it
|
|
320
|
+
(top 6px + half its 19px), not on the expanded 38px title band */
|
|
321
|
+
body.collapsed #controls {
|
|
322
|
+
height: 31px;
|
|
323
|
+
}
|
|
319
324
|
body.collapsed #mini-acct {
|
|
320
325
|
position: absolute;
|
|
321
326
|
top: 6px;
|
|
@@ -1100,7 +1105,10 @@ body:not(.live) #bymodel {
|
|
|
1100
1105
|
border: 1px solid rgba(206, 146, 109, 0.22);
|
|
1101
1106
|
border-radius: 7px;
|
|
1102
1107
|
background: rgba(206, 146, 109, 0.055);
|
|
1103
|
-
|
|
1108
|
+
/* the same breathing room the meters get, so it never touches the tabs
|
|
1109
|
+
above it or the Details rule below */
|
|
1110
|
+
margin: 12px 0;
|
|
1111
|
+
padding: 12px 13px;
|
|
1104
1112
|
cursor: pointer;
|
|
1105
1113
|
-webkit-app-region: no-drag;
|
|
1106
1114
|
transition:
|
|
@@ -1235,6 +1243,18 @@ body.collapsed #card {
|
|
|
1235
1243
|
width: 144px;
|
|
1236
1244
|
padding: 12px 12px 13px;
|
|
1237
1245
|
}
|
|
1246
|
+
/* one service: three buttons plus the account need a title band of their
|
|
1247
|
+
own, like the dual dock has, or they sit on the ring's arc */
|
|
1248
|
+
body.collapsed:not(.dual):not(.pet-only) #card {
|
|
1249
|
+
width: 168px;
|
|
1250
|
+
padding-top: 32px;
|
|
1251
|
+
}
|
|
1252
|
+
body.collapsed:not(.dual):not(.pet-only) #stage {
|
|
1253
|
+
margin-top: 0;
|
|
1254
|
+
}
|
|
1255
|
+
body.collapsed:not(.dual):not(.pet-only) #mini-acct-name {
|
|
1256
|
+
max-width: 46px;
|
|
1257
|
+
}
|
|
1238
1258
|
body.collapsed #stage {
|
|
1239
1259
|
margin-top: 9px;
|
|
1240
1260
|
}
|
|
@@ -2429,13 +2449,21 @@ body.collapsed.dual #mini-acct-name {
|
|
|
2429
2449
|
max-width: 112px;
|
|
2430
2450
|
font-size: 10px;
|
|
2431
2451
|
}
|
|
2452
|
+
|
|
2453
|
+
/* The mood sits beneath the pet, level with the selected source reset. */
|
|
2432
2454
|
body.collapsed.dual .mini-line {
|
|
2433
|
-
|
|
2434
|
-
|
|
2455
|
+
position: absolute;
|
|
2456
|
+
bottom: 12px;
|
|
2457
|
+
left: 12px;
|
|
2458
|
+
width: 66px;
|
|
2459
|
+
justify-content: center;
|
|
2460
|
+
margin: 0;
|
|
2461
|
+
gap: 5px;
|
|
2435
2462
|
}
|
|
2436
2463
|
body.collapsed.dual #mini-text {
|
|
2437
|
-
font-size:
|
|
2464
|
+
font-size: 9px;
|
|
2438
2465
|
font-weight: 400;
|
|
2466
|
+
color: #b9afa3;
|
|
2439
2467
|
}
|
|
2440
2468
|
body.collapsed.dual #mini-dot {
|
|
2441
2469
|
width: 4px;
|
|
@@ -2443,67 +2471,97 @@ body.collapsed.dual #mini-dot {
|
|
|
2443
2471
|
}
|
|
2444
2472
|
body.collapsed.dual #mini-dual {
|
|
2445
2473
|
display: grid;
|
|
2446
|
-
grid-template-columns: 1fr
|
|
2447
|
-
gap:
|
|
2474
|
+
grid-template-columns: 1fr;
|
|
2475
|
+
gap: 5px;
|
|
2448
2476
|
}
|
|
2449
2477
|
.mini-source {
|
|
2478
|
+
--src: #e4a17c;
|
|
2479
|
+
position: relative;
|
|
2450
2480
|
display: grid;
|
|
2451
|
-
grid-template-columns: 1fr;
|
|
2452
|
-
|
|
2481
|
+
grid-template-columns: 12px minmax(0, 1fr) auto;
|
|
2482
|
+
align-items: center;
|
|
2483
|
+
column-gap: 5px;
|
|
2484
|
+
row-gap: 4px;
|
|
2453
2485
|
min-width: 0;
|
|
2454
|
-
|
|
2486
|
+
min-height: 29px;
|
|
2487
|
+
padding: 3px 0 3px 5px;
|
|
2455
2488
|
border: 0;
|
|
2456
|
-
border-radius:
|
|
2489
|
+
border-radius: 4px;
|
|
2457
2490
|
background: transparent;
|
|
2458
|
-
color: #
|
|
2491
|
+
color: #aaa298;
|
|
2459
2492
|
text-align: left;
|
|
2460
2493
|
font: inherit;
|
|
2461
2494
|
font-size: 10px;
|
|
2462
2495
|
cursor: pointer;
|
|
2463
2496
|
-webkit-app-region: no-drag;
|
|
2497
|
+
transition: color 0.15s;
|
|
2464
2498
|
}
|
|
2465
|
-
.mini-source
|
|
2466
|
-
|
|
2499
|
+
.mini-source[data-provider="codex"] {
|
|
2500
|
+
--src: #b9c8b0;
|
|
2467
2501
|
}
|
|
2468
|
-
.mini-
|
|
2469
|
-
|
|
2502
|
+
.mini-logo {
|
|
2503
|
+
grid-column: 1;
|
|
2504
|
+
grid-row: 1;
|
|
2505
|
+
width: 12px;
|
|
2506
|
+
height: 12px;
|
|
2507
|
+
fill: currentColor;
|
|
2470
2508
|
}
|
|
2471
|
-
|
|
2472
|
-
|
|
2473
|
-
|
|
2509
|
+
.mini-source-name {
|
|
2510
|
+
grid-column: 2;
|
|
2511
|
+
grid-row: 1;
|
|
2474
2512
|
}
|
|
2475
|
-
.
|
|
2476
|
-
|
|
2513
|
+
/* Selection uses contrast; urgent readings retain their warning color. */
|
|
2514
|
+
.mini-source[aria-pressed="false"] .mini-track i {
|
|
2515
|
+
opacity: 0.55;
|
|
2477
2516
|
}
|
|
2478
|
-
.mini-source[
|
|
2479
|
-
|
|
2517
|
+
.mini-source[aria-pressed="false"]:hover .mini-track i,
|
|
2518
|
+
.mini-source.urgent .mini-track i {
|
|
2519
|
+
opacity: 1;
|
|
2480
2520
|
}
|
|
2481
|
-
.mini-source[
|
|
2482
|
-
|
|
2521
|
+
.mini-source[aria-pressed="true"] {
|
|
2522
|
+
color: #eee4d9;
|
|
2523
|
+
}
|
|
2524
|
+
.mini-source[aria-pressed="true"] .mini-logo {
|
|
2525
|
+
color: var(--src);
|
|
2526
|
+
}
|
|
2527
|
+
.mini-source:hover {
|
|
2528
|
+
color: #fff4e8;
|
|
2529
|
+
}
|
|
2530
|
+
.mini-source:hover .mini-logo {
|
|
2531
|
+
color: var(--src);
|
|
2483
2532
|
}
|
|
2484
2533
|
.mini-source b {
|
|
2485
|
-
grid-
|
|
2486
|
-
|
|
2534
|
+
grid-column: 3;
|
|
2535
|
+
grid-row: 1;
|
|
2536
|
+
font-size: 15px;
|
|
2487
2537
|
line-height: 1.1;
|
|
2488
2538
|
letter-spacing: -0.4px;
|
|
2489
2539
|
font-weight: 500;
|
|
2490
|
-
color:
|
|
2540
|
+
color: inherit;
|
|
2491
2541
|
font-variant-numeric: tabular-nums;
|
|
2492
2542
|
}
|
|
2493
2543
|
.mini-source.urgent b {
|
|
2494
2544
|
color: #f3a38b;
|
|
2495
2545
|
}
|
|
2496
|
-
.mini-source.urgent
|
|
2546
|
+
.mini-source.urgent .mini-source-name::after {
|
|
2497
2547
|
content: " !";
|
|
2498
2548
|
color: #f3a38b;
|
|
2499
2549
|
}
|
|
2500
2550
|
.mini-track {
|
|
2501
|
-
grid-
|
|
2551
|
+
grid-column: 2 / -1;
|
|
2552
|
+
grid-row: 2;
|
|
2502
2553
|
height: 2px;
|
|
2503
2554
|
border-radius: 2px;
|
|
2504
2555
|
overflow: hidden;
|
|
2505
2556
|
background: #ffffff0d;
|
|
2506
2557
|
}
|
|
2558
|
+
body.collapsed.dual #mini-reset {
|
|
2559
|
+
text-align: right;
|
|
2560
|
+
margin-top: 7px;
|
|
2561
|
+
font-size: 8px;
|
|
2562
|
+
color: #b4a18a;
|
|
2563
|
+
}
|
|
2564
|
+
|
|
2507
2565
|
.mini-track i {
|
|
2508
2566
|
display: block;
|
|
2509
2567
|
height: 100%;
|
|
@@ -2578,11 +2636,19 @@ body.view-codex .mrow .mname::before {
|
|
|
2578
2636
|
body.view-codex .ac-caret {
|
|
2579
2637
|
display: none;
|
|
2580
2638
|
}
|
|
2639
|
+
/* keyboard focus: a soft inner glow in the brand coral rather than a detached
|
|
2640
|
+
cream ring — still visible, but it reads as the control lighting up */
|
|
2581
2641
|
#card button:focus-visible,
|
|
2582
2642
|
#card input:focus-visible,
|
|
2583
2643
|
#account-chip:focus-visible {
|
|
2584
|
-
outline:
|
|
2585
|
-
|
|
2644
|
+
outline: none;
|
|
2645
|
+
box-shadow:
|
|
2646
|
+
inset 0 0 0 1px #e6a07f8c,
|
|
2647
|
+
0 0 0 3px #d977571f;
|
|
2648
|
+
}
|
|
2649
|
+
#controls button:focus-visible {
|
|
2650
|
+
background: rgba(255, 255, 255, 0.1);
|
|
2651
|
+
color: #fff;
|
|
2586
2652
|
}
|
|
2587
2653
|
@media (prefers-reduced-motion: reduce) {
|
|
2588
2654
|
#card,
|
|
@@ -2790,3 +2856,439 @@ body.awaiting #acc-intro.connection-card {
|
|
|
2790
2856
|
.claude-connect-btn:hover {
|
|
2791
2857
|
background: #ce926d33;
|
|
2792
2858
|
}
|
|
2859
|
+
|
|
2860
|
+
/* ---- voice: speech bubble + mute ---- */
|
|
2861
|
+
/* the bubble speaks the sprite's language: square pixels, a notched 2px
|
|
2862
|
+
outline (no radius), a stepped tail aimed at the pet's head, small type */
|
|
2863
|
+
#bubble {
|
|
2864
|
+
--ink: #221b16;
|
|
2865
|
+
--paper: #f1e9dd;
|
|
2866
|
+
position: absolute;
|
|
2867
|
+
left: 84px;
|
|
2868
|
+
top: 16px;
|
|
2869
|
+
z-index: 4;
|
|
2870
|
+
max-width: 148px;
|
|
2871
|
+
padding: 5px 7px 6px;
|
|
2872
|
+
background: var(--paper);
|
|
2873
|
+
color: var(--ink);
|
|
2874
|
+
font:
|
|
2875
|
+
600 9px / 1.35 ui-monospace,
|
|
2876
|
+
"SF Mono",
|
|
2877
|
+
Menlo,
|
|
2878
|
+
monospace;
|
|
2879
|
+
letter-spacing: -0.01em;
|
|
2880
|
+
/* four offset edges instead of a border: the corners stay open, like a sprite */
|
|
2881
|
+
box-shadow:
|
|
2882
|
+
0 -2px 0 0 var(--ink),
|
|
2883
|
+
0 2px 0 0 var(--ink),
|
|
2884
|
+
-2px 0 0 0 var(--ink),
|
|
2885
|
+
2px 0 0 0 var(--ink),
|
|
2886
|
+
2px 4px 0 0 #0006;
|
|
2887
|
+
cursor: pointer;
|
|
2888
|
+
-webkit-app-region: no-drag;
|
|
2889
|
+
transform-origin: 0% 100%;
|
|
2890
|
+
animation: bubble-pop 0.18s steps(3, end);
|
|
2891
|
+
}
|
|
2892
|
+
#bubble[hidden] {
|
|
2893
|
+
display: none;
|
|
2894
|
+
}
|
|
2895
|
+
/* the tail: a stepped right triangle hanging off the bottom-left edge, aimed
|
|
2896
|
+
down at the pet. The ink one is the outline; the paper one sits 2px inside it
|
|
2897
|
+
and starts on the outline row, so the bubble opens into the tail */
|
|
2898
|
+
#bubble::before,
|
|
2899
|
+
#bubble::after {
|
|
2900
|
+
content: "";
|
|
2901
|
+
position: absolute;
|
|
2902
|
+
top: 100%;
|
|
2903
|
+
}
|
|
2904
|
+
#bubble::before {
|
|
2905
|
+
left: 8px;
|
|
2906
|
+
width: 14px;
|
|
2907
|
+
height: 12px;
|
|
2908
|
+
background: var(--ink);
|
|
2909
|
+
clip-path: polygon(
|
|
2910
|
+
0 0,
|
|
2911
|
+
14px 0,
|
|
2912
|
+
14px 2px,
|
|
2913
|
+
12px 2px,
|
|
2914
|
+
12px 4px,
|
|
2915
|
+
10px 4px,
|
|
2916
|
+
10px 6px,
|
|
2917
|
+
8px 6px,
|
|
2918
|
+
8px 8px,
|
|
2919
|
+
6px 8px,
|
|
2920
|
+
6px 10px,
|
|
2921
|
+
4px 10px,
|
|
2922
|
+
4px 12px,
|
|
2923
|
+
0 12px
|
|
2924
|
+
);
|
|
2925
|
+
}
|
|
2926
|
+
#bubble::after {
|
|
2927
|
+
left: 10px;
|
|
2928
|
+
width: 10px;
|
|
2929
|
+
height: 10px;
|
|
2930
|
+
background: var(--paper);
|
|
2931
|
+
clip-path: polygon(
|
|
2932
|
+
0 0,
|
|
2933
|
+
10px 0,
|
|
2934
|
+
10px 2px,
|
|
2935
|
+
8px 2px,
|
|
2936
|
+
8px 4px,
|
|
2937
|
+
6px 4px,
|
|
2938
|
+
6px 6px,
|
|
2939
|
+
4px 6px,
|
|
2940
|
+
4px 8px,
|
|
2941
|
+
2px 8px,
|
|
2942
|
+
2px 10px,
|
|
2943
|
+
0 10px
|
|
2944
|
+
);
|
|
2945
|
+
}
|
|
2946
|
+
#bubble.leaving {
|
|
2947
|
+
animation: bubble-out 0.15s steps(2, end) forwards;
|
|
2948
|
+
}
|
|
2949
|
+
@keyframes bubble-pop {
|
|
2950
|
+
from {
|
|
2951
|
+
transform: scale(0.5);
|
|
2952
|
+
opacity: 0;
|
|
2953
|
+
}
|
|
2954
|
+
to {
|
|
2955
|
+
transform: scale(1);
|
|
2956
|
+
opacity: 1;
|
|
2957
|
+
}
|
|
2958
|
+
}
|
|
2959
|
+
@keyframes bubble-out {
|
|
2960
|
+
to {
|
|
2961
|
+
transform: scale(0.8);
|
|
2962
|
+
opacity: 0;
|
|
2963
|
+
}
|
|
2964
|
+
}
|
|
2965
|
+
body.settings-open #bubble {
|
|
2966
|
+
display: none;
|
|
2967
|
+
}
|
|
2968
|
+
/* collapsed: above the pet, in the card's flow, tail pointing straight down */
|
|
2969
|
+
body.collapsed #bubble {
|
|
2970
|
+
position: relative;
|
|
2971
|
+
left: auto;
|
|
2972
|
+
top: auto;
|
|
2973
|
+
max-width: none;
|
|
2974
|
+
margin: 6px 2px 14px;
|
|
2975
|
+
grid-column: 1 / -1;
|
|
2976
|
+
transform-origin: 50% 100%;
|
|
2977
|
+
}
|
|
2978
|
+
/* one service: the card has no title band, so clear the window controls, and
|
|
2979
|
+
hug the short line instead of spanning the whole card */
|
|
2980
|
+
body.collapsed:not(.dual) #bubble {
|
|
2981
|
+
align-self: center;
|
|
2982
|
+
margin-top: 26px;
|
|
2983
|
+
text-align: center;
|
|
2984
|
+
}
|
|
2985
|
+
body.collapsed.dual #bubble {
|
|
2986
|
+
justify-self: start;
|
|
2987
|
+
}
|
|
2988
|
+
body.collapsed #bubble::before {
|
|
2989
|
+
left: calc(50% - 7px);
|
|
2990
|
+
}
|
|
2991
|
+
body.collapsed #bubble::after {
|
|
2992
|
+
left: calc(50% - 5px);
|
|
2993
|
+
}
|
|
2994
|
+
/* with both services the pet sits in the left column: aim there */
|
|
2995
|
+
body.collapsed.dual #bubble::before {
|
|
2996
|
+
left: 24px;
|
|
2997
|
+
}
|
|
2998
|
+
body.collapsed.dual #bubble::after {
|
|
2999
|
+
left: 26px;
|
|
3000
|
+
}
|
|
3001
|
+
|
|
3002
|
+
#controls button[hidden] {
|
|
3003
|
+
display: none;
|
|
3004
|
+
}
|
|
3005
|
+
/* a fifth button pushes #controls ~23px left: the account chip gives that up.
|
|
3006
|
+
Minimized is always silent, so the button (and the squeeze) go away there */
|
|
3007
|
+
body.has-mute #account-chip {
|
|
3008
|
+
max-width: 141px;
|
|
3009
|
+
}
|
|
3010
|
+
body.collapsed #mute {
|
|
3011
|
+
display: none;
|
|
3012
|
+
}
|
|
3013
|
+
#mute .ic-muted,
|
|
3014
|
+
#mute.muted .ic-sound {
|
|
3015
|
+
display: none;
|
|
3016
|
+
}
|
|
3017
|
+
#mute.muted .ic-muted {
|
|
3018
|
+
display: block;
|
|
3019
|
+
}
|
|
3020
|
+
#mute.muted {
|
|
3021
|
+
color: var(--coral-soft);
|
|
3022
|
+
}
|
|
3023
|
+
|
|
3024
|
+
.set-row.voice-sub .set-row-label {
|
|
3025
|
+
font-weight: 400;
|
|
3026
|
+
font-size: 10.5px;
|
|
3027
|
+
color: var(--muted);
|
|
3028
|
+
}
|
|
3029
|
+
#set-rows.talk-off .voice-sub {
|
|
3030
|
+
opacity: 0.35;
|
|
3031
|
+
pointer-events: none;
|
|
3032
|
+
}
|
|
3033
|
+
|
|
3034
|
+
@media (prefers-reduced-motion: reduce) {
|
|
3035
|
+
#bubble,
|
|
3036
|
+
#bubble.leaving {
|
|
3037
|
+
animation: none;
|
|
3038
|
+
}
|
|
3039
|
+
}
|
|
3040
|
+
|
|
3041
|
+
/* Companion controls stay quiet until they are useful. */
|
|
3042
|
+
#controls #pet-only-toggle,
|
|
3043
|
+
#pet-glance {
|
|
3044
|
+
display: none;
|
|
3045
|
+
}
|
|
3046
|
+
body.collapsed:not(.pet-only):not(.is-menubar) #controls #pet-only-toggle {
|
|
3047
|
+
display: grid;
|
|
3048
|
+
}
|
|
3049
|
+
.reminder-toggle {
|
|
3050
|
+
display: inline-flex;
|
|
3051
|
+
align-items: center;
|
|
3052
|
+
min-height: 24px;
|
|
3053
|
+
margin-top: 4px;
|
|
3054
|
+
padding: 2px 6px;
|
|
3055
|
+
border: 1px solid var(--hair);
|
|
3056
|
+
border-radius: 5px;
|
|
3057
|
+
background: #ffffff04;
|
|
3058
|
+
color: #cfc0ac;
|
|
3059
|
+
font: inherit;
|
|
3060
|
+
font-size: 10px;
|
|
3061
|
+
cursor: pointer;
|
|
3062
|
+
-webkit-app-region: no-drag;
|
|
3063
|
+
}
|
|
3064
|
+
.reminder-toggle[hidden] {
|
|
3065
|
+
display: none;
|
|
3066
|
+
}
|
|
3067
|
+
.reminder-toggle[aria-pressed="true"] {
|
|
3068
|
+
color: #bed4aa;
|
|
3069
|
+
border-color: #bed4aa33;
|
|
3070
|
+
}
|
|
3071
|
+
.reminder-toggle:hover {
|
|
3072
|
+
background: #ffffff0c;
|
|
3073
|
+
}
|
|
3074
|
+
#mini-reminder {
|
|
3075
|
+
font-size: 8px;
|
|
3076
|
+
min-height: 20px;
|
|
3077
|
+
}
|
|
3078
|
+
body.collapsed.dual #mini-reminder {
|
|
3079
|
+
float: right;
|
|
3080
|
+
}
|
|
3081
|
+
#companion-notice {
|
|
3082
|
+
grid-column: 1 / -1;
|
|
3083
|
+
padding: 6px 8px;
|
|
3084
|
+
margin-top: 6px;
|
|
3085
|
+
border-radius: 6px;
|
|
3086
|
+
background: #ffffff07;
|
|
3087
|
+
color: #d5c6b6;
|
|
3088
|
+
font-size: 10px;
|
|
3089
|
+
line-height: 1.4;
|
|
3090
|
+
text-align: center;
|
|
3091
|
+
-webkit-app-region: no-drag;
|
|
3092
|
+
}
|
|
3093
|
+
#companion-notice[data-provider="codex"] {
|
|
3094
|
+
color: #c1d1b8;
|
|
3095
|
+
}
|
|
3096
|
+
#companion-notice[hidden],
|
|
3097
|
+
body.settings-open #companion-notice {
|
|
3098
|
+
display: none;
|
|
3099
|
+
}
|
|
3100
|
+
/* Hover only fades the glance in; neither the window nor the pet moves. */
|
|
3101
|
+
body.collapsed.pet-only #card {
|
|
3102
|
+
width: 144px;
|
|
3103
|
+
height: 166px;
|
|
3104
|
+
padding: 0;
|
|
3105
|
+
display: block;
|
|
3106
|
+
background: transparent;
|
|
3107
|
+
border-color: transparent;
|
|
3108
|
+
box-shadow: none;
|
|
3109
|
+
overflow: visible;
|
|
3110
|
+
-webkit-app-region: no-drag;
|
|
3111
|
+
}
|
|
3112
|
+
body.collapsed.pet-only #stage {
|
|
3113
|
+
position: absolute;
|
|
3114
|
+
width: 100px;
|
|
3115
|
+
height: 102px;
|
|
3116
|
+
right: 21px;
|
|
3117
|
+
bottom: 38px;
|
|
3118
|
+
margin: 0;
|
|
3119
|
+
background: none;
|
|
3120
|
+
}
|
|
3121
|
+
body.collapsed.pet-only #pet {
|
|
3122
|
+
zoom: 1.05;
|
|
3123
|
+
transform: none;
|
|
3124
|
+
transition: none;
|
|
3125
|
+
cursor: grab;
|
|
3126
|
+
-webkit-app-region: drag;
|
|
3127
|
+
}
|
|
3128
|
+
body.collapsed.pet-only #pet:active {
|
|
3129
|
+
cursor: grabbing;
|
|
3130
|
+
}
|
|
3131
|
+
body.collapsed.pet-only :is(#mini, #controls, #ring, #ring-pct, #companion-notice, #bubble) {
|
|
3132
|
+
display: none;
|
|
3133
|
+
}
|
|
3134
|
+
body.collapsed.pet-only #pet-glance {
|
|
3135
|
+
position: absolute;
|
|
3136
|
+
display: flex;
|
|
3137
|
+
align-items: center;
|
|
3138
|
+
justify-content: center;
|
|
3139
|
+
gap: 6px;
|
|
3140
|
+
left: 50%;
|
|
3141
|
+
width: max-content;
|
|
3142
|
+
max-width: calc(100% - 2px);
|
|
3143
|
+
transform: translateX(-50%);
|
|
3144
|
+
bottom: 2px;
|
|
3145
|
+
min-height: 32px;
|
|
3146
|
+
padding: 2px 5px;
|
|
3147
|
+
border: 1px solid transparent;
|
|
3148
|
+
border-radius: 10px;
|
|
3149
|
+
font-size: 10px;
|
|
3150
|
+
color: var(--muted);
|
|
3151
|
+
opacity: 0;
|
|
3152
|
+
visibility: hidden;
|
|
3153
|
+
transition:
|
|
3154
|
+
opacity 160ms ease,
|
|
3155
|
+
visibility 160ms,
|
|
3156
|
+
background 160ms ease,
|
|
3157
|
+
border-color 160ms ease;
|
|
3158
|
+
-webkit-app-region: no-drag;
|
|
3159
|
+
}
|
|
3160
|
+
body.collapsed.pet-only.pet-peek #pet-glance {
|
|
3161
|
+
background: #221e1bec;
|
|
3162
|
+
border-color: #ffffff0d;
|
|
3163
|
+
opacity: 1;
|
|
3164
|
+
visibility: visible;
|
|
3165
|
+
}
|
|
3166
|
+
#pet-glance #pet-restore {
|
|
3167
|
+
width: 26px;
|
|
3168
|
+
height: 26px;
|
|
3169
|
+
flex-shrink: 0;
|
|
3170
|
+
justify-content: center;
|
|
3171
|
+
border-radius: 6px;
|
|
3172
|
+
color: #c8bcaf;
|
|
3173
|
+
opacity: 0.65;
|
|
3174
|
+
}
|
|
3175
|
+
#pet-glance #pet-restore:hover,
|
|
3176
|
+
#pet-glance #pet-restore:focus-visible {
|
|
3177
|
+
background: #ffffff12;
|
|
3178
|
+
color: #f1e5d8;
|
|
3179
|
+
opacity: 1;
|
|
3180
|
+
}
|
|
3181
|
+
#pet-glance button {
|
|
3182
|
+
position: relative;
|
|
3183
|
+
display: flex;
|
|
3184
|
+
align-items: center;
|
|
3185
|
+
gap: 5px;
|
|
3186
|
+
padding: 0;
|
|
3187
|
+
border: 0;
|
|
3188
|
+
background: transparent;
|
|
3189
|
+
color: #a99e91;
|
|
3190
|
+
font: inherit;
|
|
3191
|
+
cursor: pointer;
|
|
3192
|
+
}
|
|
3193
|
+
/* Keep provider names available to assistive technology. */
|
|
3194
|
+
#pet-glance button > span {
|
|
3195
|
+
position: absolute;
|
|
3196
|
+
width: 1px;
|
|
3197
|
+
height: 1px;
|
|
3198
|
+
overflow: hidden;
|
|
3199
|
+
clip-path: inset(50%);
|
|
3200
|
+
white-space: nowrap;
|
|
3201
|
+
}
|
|
3202
|
+
#pet-glance button[hidden] {
|
|
3203
|
+
display: none;
|
|
3204
|
+
}
|
|
3205
|
+
#pet-glance button[aria-pressed="true"],
|
|
3206
|
+
#pet-glance button:hover {
|
|
3207
|
+
color: #f1e5d8;
|
|
3208
|
+
}
|
|
3209
|
+
#pet-glance button:focus-visible {
|
|
3210
|
+
outline: 1px solid #e6a07f;
|
|
3211
|
+
outline-offset: 3px;
|
|
3212
|
+
border-radius: 3px;
|
|
3213
|
+
}
|
|
3214
|
+
#pet-glance b {
|
|
3215
|
+
font-size: 11px;
|
|
3216
|
+
font-weight: 500;
|
|
3217
|
+
font-variant-numeric: tabular-nums;
|
|
3218
|
+
}
|
|
3219
|
+
#pet-glance .urgent b {
|
|
3220
|
+
color: #f3a38b;
|
|
3221
|
+
}
|
|
3222
|
+
#pet-glance .stale-reading b::after {
|
|
3223
|
+
content: "*";
|
|
3224
|
+
font-size: 9px;
|
|
3225
|
+
vertical-align: super;
|
|
3226
|
+
}
|
|
3227
|
+
body.collapsed.pet-only #pet:focus-visible {
|
|
3228
|
+
outline: 1px solid #e6a07f;
|
|
3229
|
+
outline-offset: 4px;
|
|
3230
|
+
}
|
|
3231
|
+
@media (prefers-reduced-motion: reduce) {
|
|
3232
|
+
body.collapsed.pet-only #pet-glance,
|
|
3233
|
+
body.collapsed.pet-only #pet-glance > * {
|
|
3234
|
+
transition: none;
|
|
3235
|
+
}
|
|
3236
|
+
}
|
|
3237
|
+
/* A short reaction temporarily occupies the account label, so the compact
|
|
3238
|
+
widget stays still instead of growing for every activity transition. */
|
|
3239
|
+
body.collapsed.dual:not(.pet-only) #companion-notice {
|
|
3240
|
+
position: absolute;
|
|
3241
|
+
top: 12px;
|
|
3242
|
+
left: 12px;
|
|
3243
|
+
right: 78px;
|
|
3244
|
+
margin: 0;
|
|
3245
|
+
padding: 0;
|
|
3246
|
+
background: none;
|
|
3247
|
+
font-size: 8px;
|
|
3248
|
+
text-align: left;
|
|
3249
|
+
white-space: nowrap;
|
|
3250
|
+
overflow: hidden;
|
|
3251
|
+
text-overflow: ellipsis;
|
|
3252
|
+
}
|
|
3253
|
+
body.collapsed.dual:has(#companion-notice:not([hidden])) #mini-acct {
|
|
3254
|
+
visibility: hidden;
|
|
3255
|
+
}
|
|
3256
|
+
|
|
3257
|
+
/* Activity belongs to the pet, independently of the selected usage tab. */
|
|
3258
|
+
.activity-logos {
|
|
3259
|
+
display: inline-flex;
|
|
3260
|
+
align-items: center;
|
|
3261
|
+
gap: 3px;
|
|
3262
|
+
flex-shrink: 0;
|
|
3263
|
+
}
|
|
3264
|
+
.activity-logos [data-provider="claude"] {
|
|
3265
|
+
color: #df9777;
|
|
3266
|
+
}
|
|
3267
|
+
.activity-logos [data-provider="codex"] {
|
|
3268
|
+
color: #b9c8b0;
|
|
3269
|
+
}
|
|
3270
|
+
.activity-logos svg {
|
|
3271
|
+
display: block;
|
|
3272
|
+
width: 11px;
|
|
3273
|
+
height: 11px;
|
|
3274
|
+
fill: currentColor;
|
|
3275
|
+
}
|
|
3276
|
+
.activity-logos[hidden],
|
|
3277
|
+
.activity-logos [hidden],
|
|
3278
|
+
#mini-dot[hidden],
|
|
3279
|
+
#pet-activity {
|
|
3280
|
+
display: none;
|
|
3281
|
+
}
|
|
3282
|
+
body.collapsed.pet-only #pet-activity:not([hidden]) {
|
|
3283
|
+
position: absolute;
|
|
3284
|
+
top: 30px;
|
|
3285
|
+
right: 0;
|
|
3286
|
+
display: flex;
|
|
3287
|
+
flex-direction: column;
|
|
3288
|
+
gap: 5px;
|
|
3289
|
+
padding: 5px;
|
|
3290
|
+
border-radius: 8px;
|
|
3291
|
+
background: #221e1be6;
|
|
3292
|
+
border: 1px solid #ffffff0d;
|
|
3293
|
+
pointer-events: none;
|
|
3294
|
+
}
|