clauddy 1.29.1 → 2.0.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/README.md +11 -9
- package/bin/clauddy.js +82 -79
- package/package.json +10 -82
- package/accounts.js +0 -181
- package/auth.js +0 -300
- package/codex.js +0 -345
- package/config.json +0 -11
- package/cursor.js +0 -278
- package/main.js +0 -1305
- package/preload.js +0 -43
- package/reminders.js +0 -54
- package/renderer/burn.js +0 -98
- package/renderer/companion.js +0 -52
- package/renderer/index.html +0 -527
- package/renderer/motion.css +0 -646
- package/renderer/pet.js +0 -2394
- package/renderer/pets.css +0 -916
- package/renderer/pets.js +0 -579
- package/renderer/style.css +0 -3758
- package/renderer/voice.js +0 -244
- package/usage.js +0 -539
package/renderer/index.html
DELETED
|
@@ -1,527 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8" />
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
-
<title>Clauddy</title>
|
|
7
|
-
<link rel="stylesheet" href="style.css" />
|
|
8
|
-
<link rel="stylesheet" href="motion.css" />
|
|
9
|
-
<link rel="stylesheet" href="pets.css" />
|
|
10
|
-
</head>
|
|
11
|
-
<body class="state-idle one-account">
|
|
12
|
-
<!-- brand marks from simple-icons (CC0); the trademarks are Anthropic's and OpenAI's -->
|
|
13
|
-
<svg width="0" height="0" style="position: absolute" aria-hidden="true">
|
|
14
|
-
<symbol id="logo-claude" viewBox="0 0 24 24"><path d="m4.7144 15.9555 4.7174-2.6471.079-.2307-.079-.1275h-.2307l-.7893-.0486-2.6956-.0729-2.3375-.0971-2.2646-.1214-.5707-.1215-.5343-.7042.0546-.3522.4797-.3218.686.0608 1.5179.1032 2.2767.1578 1.6514.0972 2.4468.255h.3886l.0546-.1579-.1336-.0971-.1032-.0972L6.973 9.8356l-2.55-1.6879-1.3356-.9714-.7225-.4918-.3643-.4614-.1578-1.0078.6557-.7225.8803.0607.2246.0607.8925.686 1.9064 1.4754 2.4893 1.8336.3643.3035.1457-.1032.0182-.0728-.164-.2733-1.3539-2.4467-1.445-2.4893-.6435-1.032-.17-.6194c-.0607-.255-.1032-.4674-.1032-.7285L6.287.1335 6.6997 0l.9957.1336.419.3642.6192 1.4147 1.0018 2.2282 1.5543 3.0296.4553.8985.2429.8318.091.255h.1579v-.1457l.1275-1.706.2368-2.0947.2307-2.6957.0789-.7589.3764-.9107.7468-.4918.5828.2793.4797.686-.0668.4433-.2853 1.8517-.5586 2.9021-.3643 1.9429h.2125l.2429-.2429.9835-1.3053 1.6514-2.0643.7286-.8196.85-.9046.5464-.4311h1.0321l.759 1.1293-.34 1.1657-1.0625 1.3478-.8804 1.1414-1.2628 1.7-.7893 1.36.0729.1093.1882-.0183 2.8535-.607 1.5421-.2794 1.8396-.3157.8318.3886.091.3946-.3278.8075-1.967.4857-2.3072.4614-3.4364.8136-.0425.0304.0486.0607 1.5482.1457.6618.0364h1.621l3.0175.2247.7892.522.4736.6376-.079.4857-1.2142.6193-1.6393-.3886-3.825-.9107-1.3113-.3279h-.1822v.1093l1.0929 1.0686 2.0035 1.8092 2.5075 2.3314.1275.5768-.3218.4554-.34-.0486-2.2039-1.6575-.85-.7468-1.9246-1.621h-.1275v.17l.4432.6496 2.3436 3.5214.1214 1.0807-.17.3521-.6071.2125-.6679-.1214-1.3721-1.9246L14.38 17.959l-1.1414-1.9428-.1397.079-.674 7.2552-.3156.3703-.7286.2793-.6071-.4614-.3218-.7468.3218-1.4753.3886-1.9246.3157-1.53.2853-1.9004.17-.6314-.0121-.0425-.1397.0182-1.4328 1.9672-2.1796 2.9446-1.7243 1.8456-.4128.164-.7164-.3704.0667-.6618.4008-.5889 2.386-3.0357 1.4389-1.882.929-1.0868-.0062-.1579h-.0546l-6.3385 4.1164-1.1293.1457-.4857-.4554.0608-.7467.2307-.2429 1.9064-1.3114Z" /></symbol>
|
|
15
|
-
<symbol id="logo-openai" viewBox="0 0 24 24"><path d="M22.2819 9.8211a5.9847 5.9847 0 0 0-.5157-4.9108 6.0462 6.0462 0 0 0-6.5098-2.9A6.0651 6.0651 0 0 0 4.9807 4.1818a5.9847 5.9847 0 0 0-3.9977 2.9 6.0462 6.0462 0 0 0 .7427 7.0966 5.98 5.98 0 0 0 .511 4.9107 6.051 6.051 0 0 0 6.5146 2.9001A5.9847 5.9847 0 0 0 13.2599 24a6.0557 6.0557 0 0 0 5.7718-4.2058 5.9894 5.9894 0 0 0 3.9977-2.9001 6.0557 6.0557 0 0 0-.7475-7.0729zm-9.022 12.6081a4.4755 4.4755 0 0 1-2.8764-1.0408l.1419-.0804 4.7783-2.7582a.7948.7948 0 0 0 .3927-.6813v-6.7369l2.02 1.1686a.071.071 0 0 1 .038.052v5.5826a4.504 4.504 0 0 1-4.4945 4.4944zm-9.6607-4.1254a4.4708 4.4708 0 0 1-.5346-3.0137l.142.0852 4.783 2.7582a.7712.7712 0 0 0 .7806 0l5.8428-3.3685v2.3324a.0804.0804 0 0 1-.0332.0615L9.74 19.9502a4.4992 4.4992 0 0 1-6.1408-1.6464zM2.3408 7.8956a4.485 4.485 0 0 1 2.3655-1.9728V11.6a.7664.7664 0 0 0 .3879.6765l5.8144 3.3543-2.0201 1.1685a.0757.0757 0 0 1-.071 0l-4.8303-2.7865A4.504 4.504 0 0 1 2.3408 7.872zm16.5963 3.8558L13.1038 8.364 15.1192 7.2a.0757.0757 0 0 1 .071 0l4.8303 2.7913a4.4944 4.4944 0 0 1-.6765 8.1042v-5.6772a.79.79 0 0 0-.407-.667zm2.0107-3.0231l-.142-.0852-4.7735-2.7818a.7759.7759 0 0 0-.7854 0L9.409 9.2297V6.8974a.0662.0662 0 0 1 .0284-.0615l4.8303-2.7866a4.4992 4.4992 0 0 1 6.6802 4.66zM8.3065 12.863l-2.02-1.1638a.0804.0804 0 0 1-.038-.0567V6.0742a4.4992 4.4992 0 0 1 7.3757-3.4537l-.142.0805L8.704 5.459a.7948.7948 0 0 0-.3927.6813zm1.0976-2.3654l2.602-1.4998 2.6069 1.4998v2.9994l-2.5974 1.4997-2.6067-1.4997Z" /></symbol>
|
|
16
|
-
<symbol id="logo-cursor" viewBox="0 0 24 24"><path d="M11.503.131 1.891 5.678a.84.84 0 0 0-.42.726v11.188c0 .3.162.575.42.724l9.609 5.55a1 1 0 0 0 .998 0l9.61-5.55a.84.84 0 0 0 .42-.724V6.404a.84.84 0 0 0-.42-.726L12.497.131a1.01 1.01 0 0 0-.996 0M2.657 6.338h18.55c.263 0 .43.287.297.515L12.23 22.918c-.062.107-.229.064-.229-.06V12.335a.59.59 0 0 0-.295-.51l-9.11-5.257c-.109-.063-.064-.23.061-.23" /></symbol>
|
|
17
|
-
</svg>
|
|
18
|
-
<div id="card">
|
|
19
|
-
<div id="account-chip" hidden title="Switch account">
|
|
20
|
-
<span class="ac-dot"></span>
|
|
21
|
-
<span id="ac-email"></span>
|
|
22
|
-
<svg class="ac-caret" viewBox="0 0 12 12" aria-hidden="true">
|
|
23
|
-
<path d="M3 5l3 3 3-3" />
|
|
24
|
-
</svg>
|
|
25
|
-
<span id="ac-plan" class="plan-badge" hidden></span>
|
|
26
|
-
</div>
|
|
27
|
-
<div id="acc-backdrop" hidden></div>
|
|
28
|
-
<div id="acc-menu" hidden></div>
|
|
29
|
-
<div id="controls">
|
|
30
|
-
<!-- icons: lucide (MIT), paths inlined so the renderer stays dependency-free -->
|
|
31
|
-
<button id="gear" title="Settings">
|
|
32
|
-
<svg class="ic" viewBox="0 0 24 24" aria-hidden="true">
|
|
33
|
-
<path d="M20 7h-9M14 17H5" />
|
|
34
|
-
<circle cx="17" cy="17" r="3" />
|
|
35
|
-
<circle cx="7" cy="7" r="3" />
|
|
36
|
-
</svg>
|
|
37
|
-
</button>
|
|
38
|
-
<button id="mute" title="Mute the voice for 1 hour" hidden>
|
|
39
|
-
<svg class="ic ic-sound" viewBox="0 0 24 24" aria-hidden="true">
|
|
40
|
-
<path d="M11 5 6 9H2v6h4l5 4Z" /><path d="M15.5 8.5a5 5 0 0 1 0 7M19 5a10 10 0 0 1 0 14" />
|
|
41
|
-
</svg>
|
|
42
|
-
<svg class="ic ic-muted" viewBox="0 0 24 24" aria-hidden="true">
|
|
43
|
-
<path d="M11 5 6 9H2v6h4l5 4Z" /><path d="m22 9-6 6M16 9l6 6" />
|
|
44
|
-
</svg>
|
|
45
|
-
</button>
|
|
46
|
-
<button id="usage" title="Open Usage page">
|
|
47
|
-
<svg class="ic" viewBox="0 0 24 24" aria-hidden="true">
|
|
48
|
-
<path d="M7 7h10v10M7 17 17 7" />
|
|
49
|
-
</svg>
|
|
50
|
-
</button>
|
|
51
|
-
<button id="pet-only-toggle" title="Just the pet" aria-label="Just the pet">
|
|
52
|
-
<svg class="ic" viewBox="0 0 24 24" aria-hidden="true"><path d="M5 4h14v4h3v10h-3v3h-3v-3H8v3H5v-3H2V8h3Z"/><path d="M8 11v2m8-2v2"/></svg>
|
|
53
|
-
</button>
|
|
54
|
-
<button id="min" title="Minimize / expand">
|
|
55
|
-
<svg class="ic ic-min" viewBox="0 0 24 24" aria-hidden="true">
|
|
56
|
-
<path d="M5 12h14" />
|
|
57
|
-
</svg>
|
|
58
|
-
<svg class="ic ic-max" viewBox="0 0 24 24" aria-hidden="true">
|
|
59
|
-
<path d="M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7" />
|
|
60
|
-
</svg>
|
|
61
|
-
</button>
|
|
62
|
-
<button id="close" title="Close">
|
|
63
|
-
<svg class="ic" viewBox="0 0 24 24" aria-hidden="true">
|
|
64
|
-
<path d="M18 6 6 18M6 6l12 12" />
|
|
65
|
-
</svg>
|
|
66
|
-
</button>
|
|
67
|
-
</div>
|
|
68
|
-
|
|
69
|
-
<!-- Claude pixel pet -->
|
|
70
|
-
<div id="stage">
|
|
71
|
-
<svg id="heat-scene" viewBox="0 0 216 135" preserveAspectRatio="xMidYMid meet" aria-hidden="true">
|
|
72
|
-
<defs><radialGradient id="heat-pool"><stop stop-color="#ea7434" stop-opacity=".13"/><stop offset="1" stop-color="#ea7434" stop-opacity="0"/></radialGradient></defs>
|
|
73
|
-
<ellipse class="heat-pool" cx="59" cy="110" rx="72" ry="48" fill="url(#heat-pool)"/>
|
|
74
|
-
<g fill="#edb765"><rect class="ember ember-one" x="28" y="56" width="2" height="2"/><rect class="ember ember-two" x="71" y="64" width="2" height="3"/><rect class="ember ember-three" x="103" y="73" width="1.5" height="2"/></g>
|
|
75
|
-
<g class="heat-waves" fill="none" stroke="#b98b68" stroke-width="1" opacity=".18"><path d="M139 110q-4-9 0-17t0-17"/><path d="M157 110q-4-9 0-17t0-17"/><path d="M175 110q-4-9 0-17t0-17"/></g>
|
|
76
|
-
</svg>
|
|
77
|
-
<svg id="scene" viewBox="0 0 216 135" preserveAspectRatio="none"></svg>
|
|
78
|
-
<svg id="reading-room" viewBox="0 0 216 135" preserveAspectRatio="xMidYMid meet" aria-hidden="true">
|
|
79
|
-
<defs><linearGradient id="reading-light" x1="0" y1="0" x2="0" y2="1"><stop stop-color="#e6c78d" stop-opacity=".12"/><stop offset="1" stop-color="#e6c78d" stop-opacity="0"/></linearGradient></defs>
|
|
80
|
-
<!-- the pool of light, aimed left so it actually falls on the book -->
|
|
81
|
-
<path class="lamp-light" d="M158 58h24l30 64H62Z" fill="url(#reading-light)"/>
|
|
82
|
-
<!-- the lamp itself: pushed to the right edge and down to 0.72, so it
|
|
83
|
-
stops out-towering the pet and stops standing between him and the
|
|
84
|
-
book. Its base lands back on the floor at y 121. -->
|
|
85
|
-
<g transform="translate(92 34) scale(0.72)">
|
|
86
|
-
<path d="M105 42v78M105 120h16" fill="none" stroke="#82715a" stroke-width="2"/>
|
|
87
|
-
<rect x="94" y="121" width="28" height="3" rx="1" fill="#645849"/>
|
|
88
|
-
<path d="M97 25h22l8 16H89Z" fill="#a88e65"/><path d="M100 25h16l5 16H94Z" fill="#c5ab7e"/>
|
|
89
|
-
<path d="M89 41h38" stroke="#dfc492" stroke-width="1"/><path d="M124 42v11" stroke="#9e8664" stroke-width=".7"/>
|
|
90
|
-
<rect x="123" y="53" width="2" height="3" fill="#baa077"/>
|
|
91
|
-
</g>
|
|
92
|
-
<g class="reading-motes" fill="#ddc298"><circle cx="80" cy="77" r=".65"/><circle cx="93" cy="61" r=".5"/><circle cx="130" cy="61" r=".6"/></g>
|
|
93
|
-
</svg>
|
|
94
|
-
<!-- editing mode: a coding desk (laptop + coffee + plant) behind the pet -->
|
|
95
|
-
<svg id="desk" viewBox="0 0 216 135" preserveAspectRatio="xMidYMid meet" aria-hidden="true">
|
|
96
|
-
<defs><linearGradient id="monitor-light" x1="0" x2="0" y1="0" y2="1"><stop stop-color="#97b39c" stop-opacity=".065"/><stop offset="1" stop-color="#97b39c" stop-opacity="0"/></linearGradient></defs>
|
|
97
|
-
<path d="M95 81h76l22 39H78Z" fill="url(#monitor-light)"/>
|
|
98
|
-
<path d="M77 115h132v4H77Z" fill="#76604a"/><path d="M81 119v10m122-10v10" stroke="#443729" stroke-width="3"/>
|
|
99
|
-
<path d="M129 91h12v13h-12Z" fill="#a2937b"/><path d="M118 104h34l4 3h-42Z" fill="#b7a78c"/>
|
|
100
|
-
<rect x="91" y="39" width="86" height="55" rx="4" fill="#b5a58b"/><rect x="95" y="43" width="78" height="44" rx="2" fill="#121815"/>
|
|
101
|
-
<path d="M99 47h7m3 0h2" stroke="#6e7d6b" stroke-width="1"/><circle cx="166" cy="91" r=".9" fill="#8b9f75"/>
|
|
102
|
-
<g class="screen-line screen-line-1"><path d="M101 55h13" stroke="#d49472" stroke-width="2"/><path d="M119 55h34" stroke="#b2baa0" stroke-width="2"/></g>
|
|
103
|
-
<g class="screen-line screen-line-2"><path d="M106 63h21m5 0h19" stroke="#92a584" stroke-width="2"/></g>
|
|
104
|
-
<g class="screen-line screen-line-3"><path d="M106 71h13" stroke="#c3a575" stroke-width="2"/><path d="M124 71h31" stroke="#a2ab91" stroke-width="2"/></g>
|
|
105
|
-
<g class="screen-line screen-line-4"><path d="M101 79h7" stroke="#d49472" stroke-width="2"/><rect class="screen-caret" x="114" y="76" width="2" height="5" fill="#d6d5b8"/></g>
|
|
106
|
-
<path d="M108 110h53l5 4h-64Z" fill="#b7a890"/><path d="M111 112h7m3 0h7m3 0h7m3 0h7m3 0h7" stroke="#736959" stroke-width="1"/>
|
|
107
|
-
<ellipse cx="178" cy="112" rx="3" ry="2" fill="#baa68b"/>
|
|
108
|
-
</svg>
|
|
109
|
-
<!-- potted plant, shared by the editing + reading desks -->
|
|
110
|
-
<svg id="plant" viewBox="0 0 216 135" preserveAspectRatio="xMidYMid meet" aria-hidden="true">
|
|
111
|
-
<path d="M187 102h19l-3 12h-13Z" fill="#b27b5b"/><path d="M187 102h19v3h-19Z" fill="#cb9270"/>
|
|
112
|
-
<path d="M196 102V77" fill="none" stroke="#7f906c" stroke-width="1.5"/>
|
|
113
|
-
<g class="plant-leaves"><path d="M196 90q-13 1-12-12 12 0 12 12" fill="#718a61"/><path d="M197 86q12-1 11-14-12 2-11 14" fill="#94a978"/><path d="M196 78q-8-5-3-14 10 5 3 14" fill="#a2b481"/><path d="M196 100q-11-1-12-11 10 0 12 11" fill="#829a6c"/></g>
|
|
114
|
-
</svg>
|
|
115
|
-
<!-- collapsed: a ring around the pet with the session % inside -->
|
|
116
|
-
<svg id="ring" viewBox="0 0 100 100" aria-hidden="true">
|
|
117
|
-
<circle class="ring-track" cx="50" cy="50" r="45" />
|
|
118
|
-
<circle id="ring-fill" cx="50" cy="50" r="45" />
|
|
119
|
-
</svg>
|
|
120
|
-
<span id="ring-pct">0%</span>
|
|
121
|
-
<div id="shadow"></div>
|
|
122
|
-
<div id="pet">
|
|
123
|
-
<svg id="claude" viewBox="0 0 100 90" width="86" height="77">
|
|
124
|
-
<g id="body"></g>
|
|
125
|
-
<g id="eyes"></g>
|
|
126
|
-
<rect id="mouth" x="38" y="54" width="24" height="10" rx="2" />
|
|
127
|
-
</svg>
|
|
128
|
-
<svg id="zzz" viewBox="0 0 44 44" width="44" height="44">
|
|
129
|
-
<text x="2" y="34" class="z1">Z</text>
|
|
130
|
-
<text x="15" y="23" class="z2">Z</text>
|
|
131
|
-
<text x="26" y="14" class="z3">z</text>
|
|
132
|
-
</svg>
|
|
133
|
-
<svg id="flames" viewBox="0 0 100 110" aria-hidden="true">
|
|
134
|
-
<g class="flame-tongue flame-one"><path d="M12 106Q-5 84 13 35Q9 70 26 80Q40 102 12 106Z" fill="#ed6430"/></g>
|
|
135
|
-
<g class="flame-tongue flame-two"><path d="M28 108Q7 75 37 12Q29 48 47 62Q65 86 47 108Z" fill="#f39135"/><path d="M31 108Q22 87 39 55Q35 77 48 89L43 108Z" fill="#ffd16a"/></g>
|
|
136
|
-
<g class="flame-tongue flame-three"><path d="M48 108Q35 76 68 16Q62 51 79 68Q98 91 77 108Z" fill="#ed6830"/><path d="M55 108Q47 89 67 60Q60 85 75 93L69 108Z" fill="#ffc75c"/></g>
|
|
137
|
-
<g class="flame-tongue flame-four"><path d="M77 108Q66 86 91 36Q85 74 96 87Q103 101 89 108Z" fill="#efa140"/></g>
|
|
138
|
-
</svg>
|
|
139
|
-
<svg id="compact-flames" viewBox="0 0 80 52" aria-hidden="true">
|
|
140
|
-
<ellipse class="compact-glow" cx="40" cy="40" rx="28" ry="10" fill="#ee7434" />
|
|
141
|
-
<g class="compact-flame compact-flame-left">
|
|
142
|
-
<path d="M12 48C3 38 12 26 18 15c-2 11 9 13 9 24 0 7-7 12-15 9Z" fill="#ec743b" />
|
|
143
|
-
<path d="M16 47c-5-5-1-12 3-17-1 7 7 13 1 17Z" fill="#ffd080" />
|
|
144
|
-
</g>
|
|
145
|
-
<g class="compact-flame compact-flame-center">
|
|
146
|
-
<path d="M29 49C17 37 32 22 35 7c2 12 17 15 18 28 1 12-12 19-24 14Z" fill="#f39843" />
|
|
147
|
-
<path d="M34 48c-8-8 3-17 4-24 0 8 9 11 8 18-1 6-7 9-12 6Z" fill="#ffe2a0" />
|
|
148
|
-
</g>
|
|
149
|
-
<g class="compact-flame compact-flame-right">
|
|
150
|
-
<path d="M53 48c-10-12 7-22 9-34 1 9 9 13 10 23 1 11-12 15-19 11Z" fill="#e97837" />
|
|
151
|
-
<path d="M58 47c-4-6 3-11 5-17 0 6 6 10 2 15-2 3-5 4-7 2Z" fill="#ffcf79" />
|
|
152
|
-
</g>
|
|
153
|
-
<g fill="#ffd58a">
|
|
154
|
-
<circle class="compact-ember compact-ember-one" cx="24" cy="21" r="1.2" />
|
|
155
|
-
<circle class="compact-ember compact-ember-two" cx="49" cy="18" r="1" />
|
|
156
|
-
<circle class="compact-ember compact-ember-three" cx="65" cy="26" r=".8" />
|
|
157
|
-
</g>
|
|
158
|
-
</svg>
|
|
159
|
-
<div id="sweat"><i></i><i></i></div>
|
|
160
|
-
<div id="dropzone"></div>
|
|
161
|
-
</div>
|
|
162
|
-
<!-- the pet's remarks: only on transitions, never on a timer -->
|
|
163
|
-
<div id="bubble" role="status" aria-live="polite" hidden><span id="bubble-text"></span></div>
|
|
164
|
-
<!-- editing mode, foreground: coffee mug in front of the pet -->
|
|
165
|
-
<!-- mug: its own SVG with UNIFORM scaling (no stage stretch) so it stays perfectly shaped -->
|
|
166
|
-
<svg id="mug" viewBox="0 0 46 44" preserveAspectRatio="xMidYMid meet" aria-hidden="true">
|
|
167
|
-
<g class="dk-steam"><path class="dk-wisp" d="M19 19q-3-4 0-8t0-8"/><path class="dk-wisp" d="M25 19q-3-4 0-8t0-8" style="animation-delay: 1.4s"/></g>
|
|
168
|
-
<path d="M31 25h3q8 6-3 10" fill="none" stroke="#b8a78d" stroke-width="2.5"/>
|
|
169
|
-
<path d="M13 23h19v15q0 4-4 4H17q-4 0-4-4Z" fill="#b8a78d"/>
|
|
170
|
-
<path d="M15 24h15" stroke="#342820" stroke-width="2"/>
|
|
171
|
-
</svg>
|
|
172
|
-
<!-- running mode: a task log — Claude working (uniform scale) -->
|
|
173
|
-
<svg id="terminal" viewBox="0 0 216 135" preserveAspectRatio="xMidYMid meet" aria-hidden="true">
|
|
174
|
-
<!-- A job console gives running its own silhouette. -->
|
|
175
|
-
<g class="speed-streaks" stroke="#8d9880" stroke-width="1"><path d="M7 92h8M4 101h11M10 111h6"/></g>
|
|
176
|
-
<rect x="108" y="34" width="99" height="85" rx="5" fill="#111713" stroke="#445347" stroke-width=".8"/>
|
|
177
|
-
<path d="M108 51h99" stroke="#344236" stroke-width=".6"/>
|
|
178
|
-
<path d="M116 41l4 3-4 3" stroke="#b5cba3" stroke-width="1.2" fill="none"/>
|
|
179
|
-
<text x="126" y="46" class="job-label" fill="#becbad">running</text>
|
|
180
|
-
<g class="job-spinner" transform="translate(197 43)"><g class="spinner-rotor"><path d="M0-3a3 3 0 1 1-3 3" stroke="#a3bd8c" stroke-width="1" fill="none"/></g></g>
|
|
181
|
-
<g class="job-row job-row-1"><path d="M116 64l2 2 4-5" stroke="#a5bc8b" stroke-width="1" fill="none"/><text x="128" y="66" class="job-label" fill="#9bab93">build</text><text x="185" y="66" class="job-timing" fill="#61735e">0.4s</text></g>
|
|
182
|
-
<g class="job-row job-row-2"><path d="M116 78l2 2 4-5" stroke="#a5bc8b" stroke-width="1" fill="none"/><text x="128" y="80" class="job-label" fill="#9bab93">test</text><text x="185" y="80" class="job-timing" fill="#61735e">1.2s</text></g>
|
|
183
|
-
<g class="job-row job-row-3"><path d="M116 92l2 2 4-5" stroke="#a5bc8b" stroke-width="1" fill="none"/><text x="128" y="94" class="job-label" fill="#c1d4ab">all done</text></g>
|
|
184
|
-
<path d="M116 108h82" stroke="#2c382d" stroke-width="2"/><path class="job-progress" d="M116 108h82" pathLength="100" stroke="#a5bc8b" stroke-width="2"/>
|
|
185
|
-
</svg>
|
|
186
|
-
<!-- reading mode: a "docs.md" markdown file being read (uniform scale) -->
|
|
187
|
-
<svg id="reading" viewBox="0 0 96 90" preserveAspectRatio="xMidYMid meet" aria-hidden="true">
|
|
188
|
-
<title id="dc-fname">README.md</title>
|
|
189
|
-
<g class="book-float">
|
|
190
|
-
<ellipse cx="48" cy="82" rx="36" ry="3" fill="#d4b993" opacity=".05"/>
|
|
191
|
-
<path d="M6 31l42 9 42-9v42l-42 9L6 73Z" fill="#815644"/>
|
|
192
|
-
<path d="M9 25q19-4 39 8v43Q27 65 9 69Z" fill="#d3c2a2"/>
|
|
193
|
-
<path d="M48 33q20-12 39-8v44q-18-4-39 7Z" fill="#b8a78b"/>
|
|
194
|
-
<path d="M12 22q17-2 36 11v40Q27 62 12 66Z" fill="#e3d2af"/>
|
|
195
|
-
<path d="M48 33q19-13 36-11v44q-15-4-36 7Z" fill="#d6c4a0"/>
|
|
196
|
-
<g fill="none" stroke="#8d7e62" stroke-width="1.6" stroke-linecap="square" opacity=".7"><path d="M18 35l21 6M18 42l21 6M18 49l16 5M18 56l20 6"/><path d="M56 41l20-6M56 48l20-6M56 55l15-4M56 62l20-6"/></g>
|
|
197
|
-
<path d="M48 33v42" stroke="#8b7455" stroke-width="1.3"/>
|
|
198
|
-
<path d="M66 28v21l4-4 4 1V25Z" fill="#b9694e"/>
|
|
199
|
-
<g class="book-page"><path d="M48 33q19-13 36-11v44q-15-4-36 7Z" fill="#e8d9b9"/><g stroke="#a19275" stroke-width="1.5"><path d="M56 41l20-6M56 48l20-6M56 55l15-4M56 62l20-6"/></g></g>
|
|
200
|
-
</g>
|
|
201
|
-
</svg>
|
|
202
|
-
</div>
|
|
203
|
-
|
|
204
|
-
<!-- shown only when collapsed -->
|
|
205
|
-
<div id="mini">
|
|
206
|
-
<div id="mini-acct" hidden>
|
|
207
|
-
<span id="mini-acct-name"></span>
|
|
208
|
-
<span id="mini-acct-plan" class="plan-badge" hidden></span>
|
|
209
|
-
</div>
|
|
210
|
-
<div class="mini-line"><span id="mini-dot"></span><span id="mini-workers" class="activity-logos" role="img" hidden><span data-provider="claude"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="#logo-claude" /></svg></span><span data-provider="codex"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="#logo-openai" /></svg></span><span data-provider="cursor"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="#logo-cursor" /></svg></span></span><span id="mini-text">idle</span></div>
|
|
211
|
-
<div id="mini-pct-row"><span id="mini-pct">0%</span> <span class="lbl">session</span></div>
|
|
212
|
-
<!-- Multi-service dock: a glanceable reading per service, one shared pet. -->
|
|
213
|
-
<div id="mini-dual">
|
|
214
|
-
<button type="button" class="mini-source" data-provider="claude">
|
|
215
|
-
<svg class="mini-logo" viewBox="0 0 24 24" aria-hidden="true"><use href="#logo-claude" /></svg><span class="mini-source-name">Claude</span><span class="mini-track"><i id="mini-claude-bar"></i></span><b id="mini-claude-value">—</b>
|
|
216
|
-
</button>
|
|
217
|
-
<button type="button" class="mini-source" data-provider="codex">
|
|
218
|
-
<svg class="mini-logo" viewBox="0 0 24 24" aria-hidden="true"><use href="#logo-openai" /></svg><span class="mini-source-name">Codex</span><span class="mini-track"><i id="mini-codex-bar"></i></span><b id="mini-codex-value">—</b>
|
|
219
|
-
</button>
|
|
220
|
-
<button type="button" class="mini-source" data-provider="cursor">
|
|
221
|
-
<svg class="mini-logo" viewBox="0 0 24 24" aria-hidden="true"><use href="#logo-cursor" /></svg><span class="mini-source-name">Cursor</span><span class="mini-track"><i id="mini-cursor-bar"></i></span><b id="mini-cursor-value">—</b>
|
|
222
|
-
</button>
|
|
223
|
-
</div>
|
|
224
|
-
<div id="mini-reset" hidden></div>
|
|
225
|
-
<button type="button" id="mini-reminder" class="reminder-toggle" hidden></button>
|
|
226
|
-
</div>
|
|
227
|
-
|
|
228
|
-
<div id="pet-activity" class="activity-logos" role="img" hidden><span data-provider="claude"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="#logo-claude" /></svg></span><span data-provider="codex"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="#logo-openai" /></svg></span><span data-provider="cursor"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="#logo-cursor" /></svg></span></div>
|
|
229
|
-
<section id="pet-glance" aria-label="Session usage">
|
|
230
|
-
<button type="button" data-provider="claude" id="glance-claude"><svg class="mini-logo" viewBox="0 0 24 24" aria-hidden="true"><use href="#logo-claude" /></svg><span>Claude</span><b id="glance-claude-value">—</b><i class="glance-bar" aria-hidden="true"></i></button>
|
|
231
|
-
<button type="button" data-provider="codex" id="glance-codex"><svg class="mini-logo" viewBox="0 0 24 24" aria-hidden="true"><use href="#logo-openai" /></svg><span>Codex</span><b id="glance-codex-value">—</b><i class="glance-bar" aria-hidden="true"></i></button>
|
|
232
|
-
<button type="button" data-provider="cursor" id="glance-cursor"><svg class="mini-logo" viewBox="0 0 24 24" aria-hidden="true"><use href="#logo-cursor" /></svg><span>Cursor</span><b id="glance-cursor-value">—</b><i class="glance-bar" aria-hidden="true"></i></button>
|
|
233
|
-
<span id="glance-empty" hidden>Connect an account in Settings.</span>
|
|
234
|
-
<i class="glance-sep" aria-hidden="true"></i>
|
|
235
|
-
<button type="button" id="pet-restore" aria-label="Open compact monitor" title="Open compact monitor"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M14 4h6v6M20 4l-7 7M10 20H4v-6M4 20l7-7" /></svg></button>
|
|
236
|
-
</section>
|
|
237
|
-
<div id="companion-notice" role="status" hidden></div>
|
|
238
|
-
<!-- collapsible content -->
|
|
239
|
-
<div id="content">
|
|
240
|
-
<!-- status -->
|
|
241
|
-
<div id="statusline">
|
|
242
|
-
<span id="status-dot"></span>
|
|
243
|
-
<span id="status-text">idle</span>
|
|
244
|
-
<span class="sep">·</span>
|
|
245
|
-
<span id="rate">—</span>
|
|
246
|
-
<span id="live-tag" class="live-only">live</span>
|
|
247
|
-
</div>
|
|
248
|
-
|
|
249
|
-
<!-- session + weekly (real usage; needs login) -->
|
|
250
|
-
<div id="home-success" hidden>✓ Logged in — your real usage is live</div>
|
|
251
|
-
<!-- Every connected service stays one click away, below the pet. -->
|
|
252
|
-
<div id="harness-tabs" role="tablist" aria-label="Monitored service">
|
|
253
|
-
<button id="tab-claude" type="button" role="tab" data-provider="claude" aria-selected="true" aria-controls="service-panel" tabindex="0"><svg class="tab-logo" viewBox="0 0 24 24" aria-hidden="true"><use href="#logo-claude" /></svg><span>Claude</span><span class="tab-value" id="tab-claude-value">—</span><span class="tab-alert" hidden>!</span></button>
|
|
254
|
-
<button id="tab-codex" type="button" role="tab" data-provider="codex" aria-selected="false" aria-controls="service-panel" tabindex="-1"><svg class="tab-logo" viewBox="0 0 24 24" aria-hidden="true"><use href="#logo-openai" /></svg><span>Codex</span><span class="tab-value" id="tab-codex-value">—</span><span class="tab-alert" hidden>!</span></button>
|
|
255
|
-
<button id="tab-cursor" type="button" role="tab" data-provider="cursor" aria-selected="false" aria-controls="service-panel" tabindex="-1"><svg class="tab-logo" viewBox="0 0 24 24" aria-hidden="true"><use href="#logo-cursor" /></svg><span>Cursor</span><span class="tab-value" id="tab-cursor-value">—</span><span class="tab-alert" hidden>!</span></button>
|
|
256
|
-
</div>
|
|
257
|
-
<div id="service-panel" role="tabpanel" aria-labelledby="tab-claude">
|
|
258
|
-
<div id="limits">
|
|
259
|
-
<div id="limits-meters">
|
|
260
|
-
<div class="meter">
|
|
261
|
-
<div class="meter-top"><span id="session-label">current session</span><span id="session-pct">0%</span></div>
|
|
262
|
-
<div class="track"><div class="fill" id="session-fill"></div></div>
|
|
263
|
-
<div class="sub" id="session-sub">no active session</div>
|
|
264
|
-
<button type="button" id="reminder-toggle" class="reminder-toggle" hidden></button>
|
|
265
|
-
<div class="sub proj" id="session-proj" hidden></div>
|
|
266
|
-
</div>
|
|
267
|
-
<div class="meter" id="week-meter">
|
|
268
|
-
<div class="meter-top"><span id="week-label">weekly · all models</span><span id="week-pct">0%</span></div>
|
|
269
|
-
<div class="track"><div class="fill week" id="week-fill"></div></div>
|
|
270
|
-
<div class="sub" id="week-sub">—</div>
|
|
271
|
-
</div>
|
|
272
|
-
<!-- per-model weekly limits (e.g. Fable), one meter each -->
|
|
273
|
-
<div id="scoped-meters"></div>
|
|
274
|
-
</div>
|
|
275
|
-
<button id="limits-connect">
|
|
276
|
-
<svg class="lc-ico" viewBox="0 0 24 24" aria-hidden="true">
|
|
277
|
-
<path d="M9 12h6 M8.5 8.5H6.5a3.5 3.5 0 0 0 0 7h2 M15.5 8.5h2a3.5 3.5 0 0 1 0 7h-2" />
|
|
278
|
-
</svg>
|
|
279
|
-
<span class="lc-text">
|
|
280
|
-
<b>Connect your account</b>
|
|
281
|
-
<i>to see your real usage</i>
|
|
282
|
-
</span>
|
|
283
|
-
</button>
|
|
284
|
-
</div>
|
|
285
|
-
|
|
286
|
-
<button id="details-toggle" type="button" aria-expanded="false" aria-controls="usage-details">
|
|
287
|
-
<span>Details</span>
|
|
288
|
-
<svg class="sec-chev" viewBox="0 0 24 24" aria-hidden="true"><path d="M7 10l5 5 5-5" /></svg>
|
|
289
|
-
</button>
|
|
290
|
-
<div id="usage-details" hidden>
|
|
291
|
-
<!-- by model (7 days) -->
|
|
292
|
-
<div id="bymodel" class="sec">
|
|
293
|
-
<button class="sec-head" data-sec="bymodel" aria-expanded="true">
|
|
294
|
-
<span class="sec-name">by model · 7 days</span>
|
|
295
|
-
<svg class="sec-chev" viewBox="0 0 24 24" aria-hidden="true"><path d="M7 10l5 5 5-5" /></svg>
|
|
296
|
-
</button>
|
|
297
|
-
<div class="sec-body"><div id="bymodel-list"></div></div>
|
|
298
|
-
</div>
|
|
299
|
-
|
|
300
|
-
<!-- by project (7 days) -->
|
|
301
|
-
<div id="byproject" class="sec">
|
|
302
|
-
<button class="sec-head" data-sec="byproject" aria-expanded="true">
|
|
303
|
-
<span class="sec-name">by project · 7 days</span>
|
|
304
|
-
<svg class="sec-chev" viewBox="0 0 24 24" aria-hidden="true"><path d="M7 10l5 5 5-5" /></svg>
|
|
305
|
-
</button>
|
|
306
|
-
<div class="sec-body"><div id="byproject-list"></div></div>
|
|
307
|
-
</div>
|
|
308
|
-
|
|
309
|
-
<!-- 30-day map -->
|
|
310
|
-
<div id="heat">
|
|
311
|
-
<div id="heat-meta">
|
|
312
|
-
<span>30 days</span>
|
|
313
|
-
<span id="month-total">0</span>
|
|
314
|
-
</div>
|
|
315
|
-
<div id="heat-row"></div>
|
|
316
|
-
</div>
|
|
317
|
-
</div>
|
|
318
|
-
</div>
|
|
319
|
-
</div>
|
|
320
|
-
|
|
321
|
-
<!-- settings panel -->
|
|
322
|
-
<div id="settings">
|
|
323
|
-
|
|
324
|
-
<div id="set-tabs" role="tablist" aria-label="Settings">
|
|
325
|
-
<button type="button" role="tab" class="set-tab" id="tab-accounts" data-tab="accounts" aria-controls="pane-accounts">Accounts</button>
|
|
326
|
-
<button type="button" role="tab" class="set-tab" id="tab-alerts" data-tab="alerts" aria-controls="pane-alerts">Alerts</button>
|
|
327
|
-
<button type="button" role="tab" class="set-tab" id="tab-appearance" data-tab="appearance" aria-controls="pane-appearance">Appearance</button>
|
|
328
|
-
</div>
|
|
329
|
-
<!-- one pane at a time; the window eases to each pane's own height -->
|
|
330
|
-
<div id="set-rows">
|
|
331
|
-
<section class="set-pane" id="pane-accounts" role="tabpanel" aria-labelledby="tab-accounts">
|
|
332
|
-
<!-- one tile per service; a click opens its card below -->
|
|
333
|
-
<div id="conn-tiles">
|
|
334
|
-
<button type="button" class="conn-tile" id="conn-claude" data-conn="claude" aria-expanded="false" aria-controls="account">
|
|
335
|
-
<span class="connection-avatar claude-avatar"><svg class="connection-logo" viewBox="0 0 24 24" aria-hidden="true"><use href="#logo-claude" /></svg><i class="conn-check" hidden aria-hidden="true">✓</i></span>
|
|
336
|
-
<span class="conn-name">Claude</span>
|
|
337
|
-
<span class="conn-state" id="conn-claude-state">Connect</span>
|
|
338
|
-
</button>
|
|
339
|
-
<button type="button" class="conn-tile" id="conn-codex" data-conn="codex" aria-expanded="false" aria-controls="codex-settings">
|
|
340
|
-
<span class="connection-avatar codex-avatar"><svg class="connection-logo" viewBox="0 0 24 24" aria-hidden="true"><use href="#logo-openai" /></svg><i class="conn-check" hidden aria-hidden="true">✓</i></span>
|
|
341
|
-
<span class="conn-name">Codex</span>
|
|
342
|
-
<span class="conn-state" id="conn-codex-state">Connect</span>
|
|
343
|
-
</button>
|
|
344
|
-
<button type="button" class="conn-tile" id="conn-cursor" data-conn="cursor" aria-expanded="false" aria-controls="cursor-settings">
|
|
345
|
-
<span class="connection-avatar cursor-avatar"><svg class="connection-logo" viewBox="0 0 24 24" aria-hidden="true"><use href="#logo-cursor" /></svg><i class="conn-check" hidden aria-hidden="true">✓</i></span>
|
|
346
|
-
<span class="conn-name">Cursor</span>
|
|
347
|
-
<span class="conn-state" id="conn-cursor-state">Connect</span>
|
|
348
|
-
</button>
|
|
349
|
-
</div>
|
|
350
|
-
<div id="connections">
|
|
351
|
-
<div id="account" class="conn-panel">
|
|
352
|
-
<!-- who you are comes first: the list, then the login for whichever
|
|
353
|
-
account is active — so "add" and the code field sit together -->
|
|
354
|
-
<div id="acc-connected" class="connect-block connection-card">
|
|
355
|
-
<span class="connection-avatar claude-avatar" id="acc-avatar"><svg class="connection-logo" viewBox="0 0 24 24" aria-hidden="true"><use href="#logo-claude" /></svg></span>
|
|
356
|
-
<div class="connection-copy">
|
|
357
|
-
<div class="connection-heading"><b>Claude</b><span id="acc-sub" class="plan-badge" hidden></span></div>
|
|
358
|
-
<span class="connection-caption acc-ok" id="acc-ok">Connected</span>
|
|
359
|
-
</div>
|
|
360
|
-
<button id="acc-logout" class="cb-out connection-remove" title="Disconnect Claude" aria-label="Disconnect Claude">
|
|
361
|
-
<svg class="ic" viewBox="0 0 24 24" aria-hidden="true">
|
|
362
|
-
<path d="M18 6 6 18M6 6l12 12" />
|
|
363
|
-
</svg>
|
|
364
|
-
</button>
|
|
365
|
-
</div>
|
|
366
|
-
<div id="acc-disconnected">
|
|
367
|
-
<div id="acc-intro" class="connection-card">
|
|
368
|
-
<span class="connection-avatar claude-avatar"><svg class="connection-logo" viewBox="0 0 24 24" aria-hidden="true"><use href="#logo-claude" /></svg></span>
|
|
369
|
-
<div class="connection-copy">
|
|
370
|
-
<div class="connection-heading"><b>Claude</b></div>
|
|
371
|
-
<span class="connection-hint">Connect via browser to track your usage.</span>
|
|
372
|
-
</div>
|
|
373
|
-
<button id="acc-connect" class="connection-btn claude-connect-btn" aria-label="Connect Claude" title="Log in with browser"><svg class="connection-logo" viewBox="0 0 24 24" aria-hidden="true"><use href="#logo-claude" /></svg><span>Connect</span></button>
|
|
374
|
-
</div>
|
|
375
|
-
<div id="acc-paste">
|
|
376
|
-
<div class="set-hint set-hint-left">Paste the code from the browser page:</div>
|
|
377
|
-
<input id="acc-code" type="text" placeholder="authentication code" />
|
|
378
|
-
<button id="acc-confirm" class="acc-btn">Connect</button>
|
|
379
|
-
<div id="acc-msg"></div>
|
|
380
|
-
</div>
|
|
381
|
-
</div>
|
|
382
|
-
</div>
|
|
383
|
-
|
|
384
|
-
<!-- Codex: opt-in, read from its local logs — nothing to log into here -->
|
|
385
|
-
<div id="codex-settings" class="connection-card conn-panel">
|
|
386
|
-
<span class="codex-avatar connection-avatar"><svg class="codex-logo" viewBox="0 0 24 24" aria-hidden="true"><use href="#logo-openai" /></svg></span>
|
|
387
|
-
<div class="connection-copy">
|
|
388
|
-
<div class="connection-heading"><b>Codex</b><span id="codex-plan" class="plan-badge" hidden></span></div>
|
|
389
|
-
<span class="connection-caption" id="codex-connected-caption">Connected on this device</span>
|
|
390
|
-
<span id="codex-hint" class="connection-hint">Track Codex alongside Claude, in this pet.</span>
|
|
391
|
-
</div>
|
|
392
|
-
<div class="codex-actions">
|
|
393
|
-
<button id="codex-connect" class="connection-btn" aria-label="Connect Codex"><svg class="codex-logo" viewBox="0 0 24 24" aria-hidden="true"><use href="#logo-openai" /></svg><span>Connect</span></button>
|
|
394
|
-
<span id="codex-setup" hidden>
|
|
395
|
-
<button id="codex-retry" class="connection-btn">Retry</button>
|
|
396
|
-
<button id="codex-setup-cancel" class="codex-x" title="Cancel" aria-label="Cancel">
|
|
397
|
-
<svg class="ic" viewBox="0 0 24 24" aria-hidden="true"><path d="M18 6 6 18M6 6l12 12" /></svg>
|
|
398
|
-
</button>
|
|
399
|
-
</span>
|
|
400
|
-
<button id="codex-disconnect" class="codex-x connection-remove" title="Disconnect Codex" aria-label="Disconnect Codex">
|
|
401
|
-
<svg class="ic" viewBox="0 0 24 24" aria-hidden="true"><path d="M18 6 6 18M6 6l12 12" /></svg>
|
|
402
|
-
</button>
|
|
403
|
-
</div>
|
|
404
|
-
</div>
|
|
405
|
-
|
|
406
|
-
<!-- Cursor: opt-in, through the Cursor app's own login on this machine -->
|
|
407
|
-
<div id="cursor-settings" class="connection-card conn-panel">
|
|
408
|
-
<span class="cursor-avatar connection-avatar"><svg class="cursor-logo" viewBox="0 0 24 24" aria-hidden="true"><use href="#logo-cursor" /></svg></span>
|
|
409
|
-
<div class="connection-copy">
|
|
410
|
-
<div class="connection-heading"><b>Cursor</b><span id="cursor-plan" class="plan-badge" hidden></span></div>
|
|
411
|
-
<span class="connection-caption" id="cursor-connected-caption">Connected on this device</span>
|
|
412
|
-
<span id="cursor-hint" class="connection-hint">Track Cursor alongside Claude, in this pet.</span>
|
|
413
|
-
</div>
|
|
414
|
-
<div class="codex-actions">
|
|
415
|
-
<button id="cursor-connect" class="connection-btn" aria-label="Connect Cursor"><svg class="cursor-logo" viewBox="0 0 24 24" aria-hidden="true"><use href="#logo-cursor" /></svg><span>Connect</span></button>
|
|
416
|
-
<span id="cursor-setup" hidden>
|
|
417
|
-
<button id="cursor-retry" class="connection-btn">Retry</button>
|
|
418
|
-
<button id="cursor-setup-cancel" class="codex-x" title="Cancel" aria-label="Cancel">
|
|
419
|
-
<svg class="ic" viewBox="0 0 24 24" aria-hidden="true"><path d="M18 6 6 18M6 6l12 12" /></svg>
|
|
420
|
-
</button>
|
|
421
|
-
</span>
|
|
422
|
-
<button id="cursor-disconnect" class="codex-x connection-remove" title="Disconnect Cursor" aria-label="Disconnect Cursor">
|
|
423
|
-
<svg class="ic" viewBox="0 0 24 24" aria-hidden="true"><path d="M18 6 6 18M6 6l12 12" /></svg>
|
|
424
|
-
</button>
|
|
425
|
-
</div>
|
|
426
|
-
</div>
|
|
427
|
-
</div>
|
|
428
|
-
</section>
|
|
429
|
-
<!-- every pane is the same pattern: a muted label over a rounded group of
|
|
430
|
-
equal-height rows, label left and a compact control right -->
|
|
431
|
-
<section class="set-pane" id="pane-alerts" role="tabpanel" aria-labelledby="tab-alerts">
|
|
432
|
-
<div class="settings-label">notifications</div>
|
|
433
|
-
<div class="set-group">
|
|
434
|
-
<div class="set-row">
|
|
435
|
-
<span class="set-row-label">Gentle notifications</span>
|
|
436
|
-
<input id="set-alerts" class="set-toggle" type="checkbox" aria-label="Enable alerts" />
|
|
437
|
-
</div>
|
|
438
|
-
<div class="set-row set-sub">
|
|
439
|
-
<span class="set-row-label">Heads-up at</span>
|
|
440
|
-
<span class="num"><button type="button" class="num-btn" data-for="set-t1" data-step="-1">−</button><span class="num-val"><input id="set-t1" type="number" min="1" max="100" step="1" /><i>%</i></span><button type="button" class="num-btn" data-for="set-t1" data-step="1">+</button></span>
|
|
441
|
-
</div>
|
|
442
|
-
<div class="set-row set-sub">
|
|
443
|
-
<span class="set-row-label">Near limit at</span>
|
|
444
|
-
<span class="num"><button type="button" class="num-btn" data-for="set-t2" data-step="-1">−</button><span class="num-val"><input id="set-t2" type="number" min="1" max="100" step="1" /><i>%</i></span><button type="button" class="num-btn" data-for="set-t2" data-step="1">+</button></span>
|
|
445
|
-
</div>
|
|
446
|
-
</div>
|
|
447
|
-
<div class="settings-label">mood</div>
|
|
448
|
-
<div class="set-group">
|
|
449
|
-
<div class="set-row">
|
|
450
|
-
<span class="set-row-label">Catch fire at</span>
|
|
451
|
-
<span class="num"><button type="button" class="num-btn" data-for="set-fire" data-step="-1">−</button><span class="num-val"><input id="set-fire" type="number" min="1" max="99" step="1" /><i>%</i></span><button type="button" class="num-btn" data-for="set-fire" data-step="1">+</button></span>
|
|
452
|
-
</div>
|
|
453
|
-
</div>
|
|
454
|
-
</section>
|
|
455
|
-
<section class="set-pane" id="pane-appearance" role="tabpanel" aria-labelledby="tab-appearance">
|
|
456
|
-
<div class="settings-label">pet</div>
|
|
457
|
-
<div class="set-group">
|
|
458
|
-
<div class="set-row">
|
|
459
|
-
<span class="pet-current">
|
|
460
|
-
<span id="pet-current-thumb" class="pet-thumb" aria-hidden="true"></span>
|
|
461
|
-
<span id="pet-current-name" class="set-row-label"></span>
|
|
462
|
-
</span>
|
|
463
|
-
<button type="button" id="pet-edit" class="set-link" aria-label="Change pet" aria-haspopup="dialog">Change</button>
|
|
464
|
-
</div>
|
|
465
|
-
</div>
|
|
466
|
-
<div id="pet-season" hidden></div>
|
|
467
|
-
<div class="settings-label">display</div>
|
|
468
|
-
<div class="set-group">
|
|
469
|
-
<div class="set-row">
|
|
470
|
-
<span class="set-row-label">Lives in</span>
|
|
471
|
-
<span class="seg settings-segment" id="set-mode">
|
|
472
|
-
<button type="button" class="seg-btn" data-mode="floating">Floating</button>
|
|
473
|
-
<button type="button" class="seg-btn" data-mode="menubar">Menu bar</button>
|
|
474
|
-
</span>
|
|
475
|
-
</div>
|
|
476
|
-
<div class="set-row">
|
|
477
|
-
<span class="set-row-label">Zoom</span>
|
|
478
|
-
<span class="num"><button type="button" class="num-btn" data-for="set-zoom" data-step="-25">−</button><span class="num-val"><input id="set-zoom" type="number" min="100" max="200" step="25" /><i>%</i></span><button type="button" class="num-btn" data-for="set-zoom" data-step="25">+</button></span>
|
|
479
|
-
</div>
|
|
480
|
-
</div>
|
|
481
|
-
<div class="settings-label">voice</div>
|
|
482
|
-
<div class="set-group">
|
|
483
|
-
<div class="set-row">
|
|
484
|
-
<span class="set-row-label">Speech bubbles</span>
|
|
485
|
-
<input id="set-talk" class="set-toggle" type="checkbox" aria-label="Let the pet talk" />
|
|
486
|
-
</div>
|
|
487
|
-
<div class="set-row voice-sub">
|
|
488
|
-
<span class="set-row-label">Chiptune voice</span>
|
|
489
|
-
<input id="set-sound" class="set-toggle" type="checkbox" aria-label="Play blips when the pet talks" />
|
|
490
|
-
</div>
|
|
491
|
-
</div>
|
|
492
|
-
</section>
|
|
493
|
-
</div>
|
|
494
|
-
|
|
495
|
-
<div class="set-actions">
|
|
496
|
-
<button id="set-cancel">Cancel</button>
|
|
497
|
-
<button id="set-save">Save changes</button>
|
|
498
|
-
</div>
|
|
499
|
-
|
|
500
|
-
<div class="set-updates version">
|
|
501
|
-
<span class="upd-ver">clauddy v<span id="app-version">—</span></span>
|
|
502
|
-
<span class="upd-right">
|
|
503
|
-
<span id="upd-status"></span>
|
|
504
|
-
<button type="button" id="upd-check" class="acc-link">Check for updates</button>
|
|
505
|
-
<button type="button" id="upd-now" class="upd-btn" hidden>Update now</button>
|
|
506
|
-
</span>
|
|
507
|
-
</div>
|
|
508
|
-
</div>
|
|
509
|
-
<div id="pet-modal" role="dialog" aria-modal="true" aria-labelledby="pet-modal-title" hidden>
|
|
510
|
-
<div class="pet-modal-card">
|
|
511
|
-
<div class="pet-modal-head">
|
|
512
|
-
<span id="pet-modal-title">Choose a pet</span>
|
|
513
|
-
<button type="button" id="pet-modal-close" class="pet-edit" aria-label="Close">
|
|
514
|
-
<svg class="ic" viewBox="0 0 24 24" aria-hidden="true"><path d="M6 6l12 12M18 6 6 18" /></svg>
|
|
515
|
-
</button>
|
|
516
|
-
</div>
|
|
517
|
-
<div id="set-pet" role="radiogroup" aria-label="Pet"></div>
|
|
518
|
-
</div>
|
|
519
|
-
</div>
|
|
520
|
-
</div>
|
|
521
|
-
<script src="burn.js"></script>
|
|
522
|
-
<script src="voice.js"></script>
|
|
523
|
-
<script src="companion.js"></script>
|
|
524
|
-
<script src="pets.js"></script>
|
|
525
|
-
<script src="pet.js"></script>
|
|
526
|
-
</body>
|
|
527
|
-
</html>
|