agents-city 0.3.0-beta.21 → 0.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.
- package/.claude-plugin/marketplace.json +1 -1
- package/README.es.md +310 -70
- package/README.md +297 -69
- package/bin/agents-city.js +3 -0
- package/bin/doctor +3 -0
- package/bin/hall.html +164 -24
- package/bin/navegador.mjs +415 -0
- package/bin/serve.py +383 -127
- package/bin/shortcut +3 -0
- package/bin/test +5 -2
- package/bin/test-actualiza.py +130 -0
- package/bin/test-atajos.py +301 -0
- package/bin/test-busca.py +216 -0
- package/bin/test-cage.py +170 -2
- package/bin/test-card.py +2 -2
- package/bin/test-cities.py +45 -0
- package/bin/test-contracts.py +12 -5
- package/bin/test-doctor.py +33 -0
- package/bin/test-navegador.py +164 -0
- package/bin/test-seat.py +245 -25
- package/bin/test-serve.py +214 -9
- package/bin/test-workspace.py +63 -0
- package/bin/testlib.py +23 -0
- package/bin/update +3 -0
- package/city/web/dist/city.js +47 -47
- package/city/web/dist/index.html +1 -1
- package/city/web/dist-hall/hall.js +2193 -174
- package/city/web/src/bienvenida.ts +686 -0
- package/city/web/src/es.ts +180 -0
- package/city/web/src/hall.ts +520 -168
- package/city/web/src/idioma.ts +86 -0
- package/city/web/src/main.ts +27 -0
- package/city/web/src/motores.ts +54 -0
- package/docs/agents-first.md +8 -1
- package/docs/security.md +46 -12
- package/docs/testing.md +1 -1
- package/package.json +1 -1
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/channel/bus.js +1 -1
- package/plugin/channel/bus.ts +1 -1
- package/plugin/channel/runtime/codex.ts +1 -1
- package/plugin/channel/runtime-gateway.js +1 -1
- package/plugin/scripts/actualiza.py +198 -0
- package/plugin/scripts/atajos.py +506 -0
- package/plugin/scripts/busca.py +436 -0
- package/plugin/scripts/cage.py +266 -26
- package/plugin/scripts/capabilities.py +17 -10
- package/plugin/scripts/card.py +10 -0
- package/plugin/scripts/cities.py +34 -0
- package/plugin/scripts/city-session.sh +33 -7
- package/plugin/scripts/doctor.py +122 -0
- package/plugin/scripts/find-repos.sh +12 -105
- package/plugin/scripts/read-card.py +6 -2
- package/plugin/scripts/report.py +5 -6
- package/plugin/scripts/reset.py +50 -14
- package/plugin/scripts/seat.py +445 -103
- package/plugin/scripts/workspace.py +197 -0
package/bin/hall.html
CHANGED
|
@@ -11,13 +11,60 @@
|
|
|
11
11
|
<style>
|
|
12
12
|
/* The map's palette and its three typefaces. The hall manages the city the map
|
|
13
13
|
draws; they must not look like two products. Single visual world on purpose. */
|
|
14
|
+
/* Two skins, one set of names. DAY is the default — the palette of
|
|
15
|
+
agentscity.net, so the local tool and the public site are visibly one
|
|
16
|
+
product. Night is the map's own light, chosen with the switch and
|
|
17
|
+
remembered. Nothing below this block names a colour directly. */
|
|
14
18
|
:root{
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
19
|
+
/* Day is the default: the palette of agentscity.net, so the tool on your
|
|
20
|
+
machine and the public site are one product from the first second. Night
|
|
21
|
+
is one click away and remembered — it is the map's own light, not the
|
|
22
|
+
app's. */
|
|
23
|
+
--suelo:#f3f0e8; --suelo2:#fbfaf6; --suelo3:#ffffff;
|
|
24
|
+
--linea:#e2ddd0; --linea2:#cdc6b6;
|
|
25
|
+
--tinta:#1d2229; --tinta2:#515861; --tinta3:#7b8187;
|
|
26
|
+
--lampara:#7048e8; --carta:#dd5d3e; --verde:#5f8f2b;
|
|
27
|
+
--panel:#fbfaf6; --burbuja:#ffffff; --burbuja-mia:#f4efff;
|
|
28
|
+
--borde-acento:#c9b8ff; --sobre-lampara:#ffffff; --lampara-viva:#5331bd;
|
|
29
|
+
--chip-luz:52% 86%; --chip-tinta:#1d2229;
|
|
30
|
+
--tono-palabra:#6b46f0; --tono-evidencia:#2b7ab8; --tono-verificacion:#1c8d78;
|
|
18
31
|
--hud:"Chakra Petch",system-ui,sans-serif; --texto:"Newsreader",Georgia,serif;
|
|
19
32
|
--mono:"IBM Plex Mono",ui-monospace,monospace;
|
|
33
|
+
--sombra:0 18px 40px -30px #1d222945;
|
|
34
|
+
|
|
35
|
+
/* Night, declared once: the city's own light, an isometric map at 3am. The
|
|
36
|
+
two rules below only MAP these; a palette written twice drifts twice. */
|
|
37
|
+
--noche-suelo:#131a24; --noche-suelo2:#1b2431; --noche-suelo3:#222d3c;
|
|
38
|
+
--noche-linea:#26313f; --noche-linea2:#38495f;
|
|
39
|
+
--noche-tinta:#e8e2d4; --noche-tinta2:#9aa7b8; --noche-tinta3:#6b7889;
|
|
40
|
+
--noche-lampara:#f5c451; --noche-carta:#e2604f; --noche-verde:#4ec98a;
|
|
41
|
+
--noche-panel:#101720; --noche-burbuja:#171f2a; --noche-burbuja-mia:#27291f;
|
|
42
|
+
--noche-borde-acento:#65552d; --noche-sobre-lampara:#1a1408;
|
|
43
|
+
--noche-lampara-viva:#ffd469;
|
|
44
|
+
--noche-chip-luz:36% 30%; --noche-chip-tinta:#f3eee4;
|
|
45
|
+
--noche-tono-palabra:#aa93ff; --noche-tono-evidencia:#61ace9;
|
|
46
|
+
--noche-tono-verificacion:#50ccb1;
|
|
47
|
+
--noche-sombra:none;
|
|
48
|
+
}
|
|
49
|
+
/* Night, mapped from the tokens declared once above. */
|
|
50
|
+
:root[data-tema="oscuro"]{
|
|
51
|
+
--suelo:var(--noche-suelo); --suelo2:var(--noche-suelo2); --suelo3:var(--noche-suelo3);
|
|
52
|
+
--linea:var(--noche-linea); --linea2:var(--noche-linea2);
|
|
53
|
+
--tinta:var(--noche-tinta); --tinta2:var(--noche-tinta2); --tinta3:var(--noche-tinta3);
|
|
54
|
+
--lampara:var(--noche-lampara); --carta:var(--noche-carta); --verde:var(--noche-verde);
|
|
55
|
+
--panel:var(--noche-panel); --burbuja:var(--noche-burbuja);
|
|
56
|
+
--burbuja-mia:var(--noche-burbuja-mia);
|
|
57
|
+
--borde-acento:var(--noche-borde-acento); --sobre-lampara:var(--noche-sobre-lampara);
|
|
58
|
+
--lampara-viva:var(--noche-lampara-viva);
|
|
59
|
+
--chip-luz:var(--noche-chip-luz); --chip-tinta:var(--noche-chip-tinta);
|
|
60
|
+
--tono-palabra:var(--noche-tono-palabra); --tono-evidencia:var(--noche-tono-evidencia);
|
|
61
|
+
--tono-verificacion:var(--noche-tono-verificacion);
|
|
62
|
+
--sombra:var(--noche-sombra);
|
|
20
63
|
}
|
|
64
|
+
/* No `prefers-color-scheme` rule on purpose: daylight is THE default, not a
|
|
65
|
+
default that a machine set to dark quietly overrides. Night is a choice made
|
|
66
|
+
here, with the switch, and remembered — which is why an owner whose whole
|
|
67
|
+
desktop is dark still opens a paper-coloured hall. */
|
|
21
68
|
*{box-sizing:border-box}
|
|
22
69
|
html,body{height:100%}
|
|
23
70
|
body{margin:0;background:var(--suelo);color:var(--tinta);font-family:var(--texto);
|
|
@@ -41,10 +88,17 @@ nav{background:var(--suelo2);border-right:1px solid var(--linea);padding:20px 0
|
|
|
41
88
|
.marca{padding:0 18px}
|
|
42
89
|
.badge{display:inline-flex;align-items:center;gap:7px;font-family:var(--hud);font-size:10px;
|
|
43
90
|
letter-spacing:.14em;text-transform:uppercase;color:var(--lampara);
|
|
44
|
-
border:1px solid
|
|
91
|
+
border:1px solid var(--borde-acento);background:var(--burbuja-mia);padding:4px 9px;border-radius:2px}
|
|
45
92
|
.badge::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--lampara)}
|
|
46
93
|
.marca h2{font-size:19px;margin:9px 0 0}
|
|
47
94
|
.marca p{margin:4px 0 0;font-size:12px;color:var(--tinta3);line-height:1.45}
|
|
95
|
+
.railCiudad{margin:0 18px;padding:10px 12px;border-radius:7px;background:var(--suelo3);
|
|
96
|
+
border:1px solid var(--linea);display:flex;flex-direction:column;gap:2px}
|
|
97
|
+
.railCiudad .railEtiqueta{font:600 9px var(--hud);letter-spacing:.16em;text-transform:uppercase;
|
|
98
|
+
color:var(--tinta3)}
|
|
99
|
+
.railCiudad b{font:600 15px var(--hud);color:var(--tinta)}
|
|
100
|
+
.railCiudad .railDe{font:10.5px var(--mono);color:var(--tinta3)}
|
|
101
|
+
.railOtras{margin-top:6px;padding-top:6px;border-top:1px solid var(--linea)}
|
|
48
102
|
nav ol{list-style:none;margin:0;padding:0 10px;display:flex;flex-direction:column;gap:2px}
|
|
49
103
|
nav li{display:flex;gap:10px;align-items:baseline;padding:9px 10px;border-radius:3px;
|
|
50
104
|
font-family:var(--hud);font-size:13.5px;color:var(--tinta2);cursor:pointer;white-space:nowrap}
|
|
@@ -54,6 +108,21 @@ nav li .n{font-family:var(--mono);font-size:10px;color:var(--tinta3);margin-left
|
|
|
54
108
|
nav .pie{margin-top:auto;padding:14px 18px 0;border-top:1px solid var(--linea);
|
|
55
109
|
display:flex;flex-direction:column;gap:8px}
|
|
56
110
|
nav .pie a{font-family:var(--hud);font-size:12px;color:var(--tinta3);text-decoration:none}
|
|
111
|
+
.peligro{border:1px solid var(--carta);border-radius:8px;padding:16px 18px;
|
|
112
|
+
background:color-mix(in srgb,var(--carta) 7%,var(--suelo2));display:flex;
|
|
113
|
+
flex-direction:column;gap:10px;align-items:flex-start}
|
|
114
|
+
.peligro h3{font:600 13px var(--hud);color:var(--carta)}
|
|
115
|
+
.bt.malo{border-color:var(--carta);color:var(--carta)}
|
|
116
|
+
.bt.malo:hover{background:var(--carta);color:var(--suelo2)}
|
|
117
|
+
.avisoVersion{margin:0;font:11px/1.45 var(--mono);color:var(--lampara);
|
|
118
|
+
border:1px solid var(--borde-acento);background:var(--burbuja-mia);
|
|
119
|
+
padding:7px 9px;border-radius:4px}
|
|
120
|
+
.avisoVersion[hidden]{display:none}
|
|
121
|
+
.ajustes{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
|
|
122
|
+
.temaBoton{border:1px solid var(--linea2);background:var(--suelo3);
|
|
123
|
+
color:var(--tinta2);font:11px var(--mono);padding:5px 11px;border-radius:999px;
|
|
124
|
+
cursor:pointer;box-shadow:var(--sombra)}
|
|
125
|
+
.temaBoton:hover{color:var(--lampara);border-color:var(--lampara)}
|
|
57
126
|
nav .pie a:hover{color:var(--lampara)}
|
|
58
127
|
#ciudades select{width:100%;background:var(--suelo);border:1px solid var(--linea2);
|
|
59
128
|
border-radius:3px;padding:6px 8px;font-family:var(--hud);font-size:12px;color:var(--tinta)}
|
|
@@ -104,8 +173,8 @@ h1{font-size:26px;line-height:1.12}
|
|
|
104
173
|
background:var(--suelo3);color:var(--tinta2)}
|
|
105
174
|
.bt:hover:not(:disabled){color:var(--tinta);border-color:var(--tinta3)}
|
|
106
175
|
.bt:focus-visible{outline:1px solid var(--lampara);outline-offset:2px}
|
|
107
|
-
.bt.ppal{background:var(--lampara);border-color:var(--lampara);color
|
|
108
|
-
.bt.ppal:hover:not(:disabled){background
|
|
176
|
+
.bt.ppal{background:var(--lampara);border-color:var(--lampara);color:var(--sobre-lampara)}
|
|
177
|
+
.bt.ppal:hover:not(:disabled){background:var(--lampara-viva);border-color:var(--lampara-viva)}
|
|
109
178
|
.bt:disabled{opacity:.4;cursor:not-allowed}
|
|
110
179
|
.bt.mini{padding:4px 10px;font-size:11px}
|
|
111
180
|
input[type=text],select{background:var(--suelo);border:1px solid var(--linea2);
|
|
@@ -198,13 +267,13 @@ input[type=text]:focus,select:focus{outline:none;border-color:var(--lampara)}
|
|
|
198
267
|
.fichasRPG{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
|
|
199
268
|
.fichaRPG{background:var(--suelo2);border:1px solid var(--linea);border-radius:8px;
|
|
200
269
|
padding:14px 15px;display:flex;flex-direction:column;gap:9px}
|
|
201
|
-
.fichaRPG.rpgSeat{border-color
|
|
270
|
+
.fichaRPG.rpgSeat{border-color:var(--borde-acento)}
|
|
202
271
|
.rpgCab{display:flex;align-items:center;gap:10px}
|
|
203
272
|
.rpgCara{width:40px;height:40px;border-radius:9px;flex:none}
|
|
204
273
|
.rpgCab h3{margin:0;font-size:15px}
|
|
205
274
|
.rpgTags{display:flex;flex-wrap:wrap;gap:6px;margin-top:3px;align-items:center}
|
|
206
275
|
.kindChip{font:600 9px var(--hud);letter-spacing:.08em;text-transform:uppercase;
|
|
207
|
-
padding:2px 7px;border-radius:8px;color:#0f172a}
|
|
276
|
+
padding:2px 7px;border-radius:8px;color:#0f172a;font-weight:600}
|
|
208
277
|
.kindChip.code{background:#3b82f6}.kindChip.knowledge{background:#8b5cf6;color:#f4efe5}
|
|
209
278
|
.kindChip.coordinator{background:#f59e0b}
|
|
210
279
|
.rpgRol,.rpgRun,.rpgHogar{font:10.5px var(--mono);color:var(--tinta3)}
|
|
@@ -235,8 +304,70 @@ input[type=text]:focus,select:focus{outline:none;border-color:var(--lampara)}
|
|
|
235
304
|
.rpgBotones{display:flex;gap:6px;margin-left:auto}
|
|
236
305
|
.rpgMini{border:1px solid var(--linea2);background:var(--suelo);color:var(--tinta3);
|
|
237
306
|
font:10px var(--mono);padding:3px 7px;border-radius:4px;cursor:pointer}
|
|
238
|
-
.rpgMini:hover{color:var(--lampara);border-color
|
|
307
|
+
.rpgMini:hover{color:var(--lampara);border-color:var(--borde-acento)}
|
|
239
308
|
.rpgSubir input{display:none}
|
|
309
|
+
/* Adding an agent is the city growing, so it reads as an action, not a chip. */
|
|
310
|
+
.rpgAlta{margin-top:14px;border:1px solid var(--borde-acento);background:var(--suelo2);
|
|
311
|
+
color:var(--lampara);font:12px var(--mono);padding:7px 14px;border-radius:5px;
|
|
312
|
+
cursor:pointer}
|
|
313
|
+
.rpgAlta:hover{background:var(--suelo);border-color:var(--lampara)}
|
|
314
|
+
|
|
315
|
+
/* ── the guided first run ────────────────────────────────────────────────── */
|
|
316
|
+
.bv{display:flex;flex-direction:column;gap:26px;max-width:min(760px,100%)}
|
|
317
|
+
.bv .prosa{max-width:100%}
|
|
318
|
+
.bv code.mono{word-break:break-all}
|
|
319
|
+
/* The live rail has nothing to show before a city exists, and it costs half
|
|
320
|
+
the screen exactly when the guide needs it. */
|
|
321
|
+
body.enGuia #livePanel,body.enGuia #liveResize{display:none}
|
|
322
|
+
body.enGuia #app{grid-template-columns:250px minmax(0,1fr)}
|
|
323
|
+
.bvPasos{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
|
|
324
|
+
.bvPunto{display:flex;align-items:center;gap:6px;font:10px var(--hud);letter-spacing:.1em;
|
|
325
|
+
text-transform:uppercase;color:var(--tinta3)}
|
|
326
|
+
.bvPunto i{width:8px;height:8px;border-radius:50%;background:var(--linea2);display:block}
|
|
327
|
+
.bvPunto+.bvPunto{margin-left:10px}
|
|
328
|
+
.bvPunto.aqui{color:var(--lampara)}.bvPunto.aqui i{background:var(--lampara)}
|
|
329
|
+
.bvPunto.hecho i{background:var(--verde)}
|
|
330
|
+
.bvHola{display:grid;grid-template-columns:auto 1fr;gap:26px;align-items:start}
|
|
331
|
+
@media(max-width:820px){.bvHola{grid-template-columns:1fr}}
|
|
332
|
+
.bvArte{display:flex;flex-direction:column;gap:2px;padding-top:6px}
|
|
333
|
+
.bvCasa{width:92px;height:83px;margin-bottom:-26px;filter:drop-shadow(var(--sombra))}
|
|
334
|
+
.bvPaso{display:flex;flex-direction:column;gap:14px}
|
|
335
|
+
.bvPaso h1{font-size:26px;line-height:1.15}
|
|
336
|
+
.bvEtiqueta{font:600 10px var(--hud);letter-spacing:.14em;text-transform:uppercase;
|
|
337
|
+
color:var(--tinta3)}
|
|
338
|
+
.bvRejilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
|
|
339
|
+
.bvRejilla.bvTres{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
|
|
340
|
+
.bvOpcion{text-align:left;display:flex;flex-direction:column;gap:4px;padding:12px 13px;
|
|
341
|
+
border:1px solid var(--linea2);border-radius:7px;background:var(--suelo2);cursor:pointer}
|
|
342
|
+
.bvOpcion b{font-family:var(--hud);font-size:13px;color:var(--tinta)}
|
|
343
|
+
.bvOpcion span{font-size:12px;line-height:1.45;color:var(--tinta3)}
|
|
344
|
+
.bvOpcion:hover{border-color:var(--lampara)}
|
|
345
|
+
.bvOpcion.elegida{border-color:var(--lampara);background:var(--burbuja-mia);
|
|
346
|
+
box-shadow:inset 3px 0 0 var(--lampara)}
|
|
347
|
+
.bvChips{display:flex;flex-wrap:wrap;gap:6px}
|
|
348
|
+
.bvChip{border:1px solid var(--linea2);background:var(--suelo2);color:var(--tinta2);
|
|
349
|
+
font:11px var(--mono);padding:5px 10px;border-radius:999px;cursor:pointer}
|
|
350
|
+
.bvChip:hover{border-color:var(--lampara)}
|
|
351
|
+
.bvChip.elegida{border-color:var(--lampara);background:var(--burbuja-mia);color:var(--tinta)}
|
|
352
|
+
.bvClase{font:600 9px var(--mono);letter-spacing:.08em;text-transform:uppercase;
|
|
353
|
+
opacity:.55;font-style:normal;margin-right:6px}
|
|
354
|
+
.bvChip.cl-docs .bvClase{color:var(--verde);opacity:.85}
|
|
355
|
+
.bvChip.cl-worktree .bvClase{color:var(--lampara);opacity:.85}
|
|
356
|
+
.bvBuscador{display:flex;gap:8px;align-items:center;margin:4px 0 10px}
|
|
357
|
+
.bvBuscador input{flex:1;background:var(--suelo);border:1px solid var(--linea2);
|
|
358
|
+
border-radius:4px;padding:8px 10px;font-family:var(--hud);font-size:13px;color:var(--tinta)}
|
|
359
|
+
.bvBuscador input:focus{outline:none;border-color:var(--lampara)}
|
|
360
|
+
.bt.bvMini{padding:7px 12px;font-size:11px;white-space:nowrap}
|
|
361
|
+
.bvMotor{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:6px}
|
|
362
|
+
.bvMotor .campo{margin:0}
|
|
363
|
+
@media (max-width:640px){.bvMotor{grid-template-columns:1fr}}
|
|
364
|
+
.bvFichas{display:flex;flex-direction:column;gap:6px}
|
|
365
|
+
.bvFicha{display:flex;gap:10px;align-items:baseline;padding:9px 12px;border-radius:6px;
|
|
366
|
+
border:1px solid var(--linea);background:var(--suelo2)}
|
|
367
|
+
.bvFicha b{font-family:var(--hud);font-size:13px}
|
|
368
|
+
.bvFicha span{font:11px var(--mono);color:var(--tinta3)}
|
|
369
|
+
.bvBotones{display:flex;gap:9px;flex-wrap:wrap;margin-top:4px}
|
|
370
|
+
.bvSiguientes{display:flex;gap:9px;flex-wrap:wrap}
|
|
240
371
|
/* The instruction editor: one file, one reader, saved where the agent lives. */
|
|
241
372
|
#editorIns{position:fixed;inset:0;background:rgba(6,10,15,.72);z-index:60;
|
|
242
373
|
display:flex;align-items:center;justify-content:center}
|
|
@@ -278,7 +409,7 @@ input[type=text]:focus,select:focus{outline:none;border-color:var(--lampara)}
|
|
|
278
409
|
@media(prefers-reduced-motion:reduce){.cargando::after{animation:none}#toast{transition:none}}
|
|
279
410
|
|
|
280
411
|
/* ── live city feed ────────────────────────────────────────────────────── */
|
|
281
|
-
#livePanel{background
|
|
412
|
+
#livePanel{background:var(--panel);border-left:1px solid var(--linea);min-width:0;min-height:0;
|
|
282
413
|
display:flex;flex-direction:column;overflow:hidden;position:relative}
|
|
283
414
|
/* The divider you can grab: the rail's left edge. Wide enough for a mouse,
|
|
284
415
|
invisible until hovered so it does not read as chrome. */
|
|
@@ -301,26 +432,26 @@ input[type=text]:focus,select:focus{outline:none;border-color:var(--lampara)}
|
|
|
301
432
|
framed row, not two grey buttons — the person who missed the show has to be
|
|
302
433
|
able to FIND the way back without being told where it is. */
|
|
303
434
|
#demoControles{display:flex;align-items:center;gap:7px;margin-top:10px;
|
|
304
|
-
padding:7px 9px;border:1px solid
|
|
435
|
+
padding:7px 9px;border:1px solid var(--borde-acento);border-radius:5px;
|
|
305
436
|
background:rgba(245,196,81,.06)}
|
|
306
437
|
#demoControles span{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;
|
|
307
438
|
text-transform:uppercase;color:var(--lampara);margin-right:auto}
|
|
308
439
|
#demoControles button{border:1px solid var(--linea2);background:var(--suelo);
|
|
309
440
|
color:var(--tinta2);font-family:var(--hud);font-size:12px;padding:6px 11px;
|
|
310
441
|
border-radius:4px;cursor:pointer}
|
|
311
|
-
#demoControles #demoReplay{background:var(--lampara);color
|
|
442
|
+
#demoControles #demoReplay{background:var(--lampara);color:var(--sobre-lampara);
|
|
312
443
|
border-color:var(--lampara);font-weight:600}
|
|
313
444
|
#demoControles button:hover{filter:brightness(1.12)}
|
|
314
445
|
#liveFilter{width:100%;font-family:var(--hud);font-size:11px;padding:6px 8px;background:var(--suelo)}
|
|
315
446
|
#liveWorkToggle{border:1px solid var(--linea2);background:var(--suelo);color:var(--tinta3);
|
|
316
447
|
border-radius:3px;padding:0 9px;font:600 9.5px var(--hud);text-transform:uppercase;
|
|
317
448
|
letter-spacing:.06em;cursor:pointer;white-space:nowrap}
|
|
318
|
-
#liveWorkToggle:hover,#liveWorkToggle.on{color:var(--lampara);border-color
|
|
449
|
+
#liveWorkToggle:hover,#liveWorkToggle.on{color:var(--lampara);border-color:var(--borde-acento)}
|
|
319
450
|
#liveContext{display:flex;align-items:center;gap:9px;margin-top:10px;padding-top:10px;
|
|
320
451
|
border-top:1px solid var(--linea)}
|
|
321
452
|
.livePeople{display:flex;padding-left:5px}.livePerson{width:25px;height:25px;margin-left:-5px;
|
|
322
453
|
border-radius:50%;display:grid;place-items:center;border:2px solid var(--suelo2);
|
|
323
|
-
background:hsl(var(--actor-hue)
|
|
454
|
+
background:hsl(var(--actor-hue) var(--chip-luz));color:var(--chip-tinta);font:600 8.5px var(--hud)}
|
|
324
455
|
.livePerson svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8;
|
|
325
456
|
stroke-linecap:round;stroke-linejoin:round}
|
|
326
457
|
.liveContextText{min-width:0;color:var(--tinta3);font:10px/1.35 var(--hud)}
|
|
@@ -332,15 +463,15 @@ input[type=text]:focus,select:focus{outline:none;border-color:var(--lampara)}
|
|
|
332
463
|
align-items:start;gap:8px;max-width:94%}
|
|
333
464
|
.liveTurn.chair{grid-template-columns:minmax(0,1fr) 31px;align-self:flex-end}
|
|
334
465
|
.liveTurn.chair .liveAvatar{grid-column:2}.liveTurn.chair .liveBubble{grid-column:1;grid-row:1;
|
|
335
|
-
border-radius:9px 3px 9px 9px;background
|
|
466
|
+
border-radius:9px 3px 9px 9px;background:var(--burbuja-mia);border-color:var(--borde-acento)}
|
|
336
467
|
.liveTurn.member{align-self:flex-start}.liveTurn.system{align-self:center;max-width:100%}
|
|
337
|
-
.liveTurn.system .liveAvatar{display:none}.liveTurn.system .liveBubble{grid-column:1/-1;background
|
|
338
|
-
.liveTurn.question{--tono:var(--lampara)}.liveTurn.floor{--tono
|
|
339
|
-
.liveTurn.evidence{--tono
|
|
340
|
-
.liveTurn.verification{--tono
|
|
468
|
+
.liveTurn.system .liveAvatar{display:none}.liveTurn.system .liveBubble{grid-column:1/-1;background:var(--burbuja)}
|
|
469
|
+
.liveTurn.question{--tono:var(--lampara)}.liveTurn.floor{--tono:var(--tono-palabra)}
|
|
470
|
+
.liveTurn.evidence{--tono:var(--tono-evidencia)}.liveTurn.decision{--tono:var(--verde)}
|
|
471
|
+
.liveTurn.verification{--tono:var(--tono-verificacion)}.liveTurn.error{--tono:var(--carta)}
|
|
341
472
|
.liveAvatar{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;
|
|
342
|
-
background:hsl(var(--actor-hue)
|
|
343
|
-
font:600 9.5px var(--hud);box-shadow:0 0 0 2px
|
|
473
|
+
background:hsl(var(--actor-hue) var(--chip-luz));color:var(--chip-tinta);border:1px solid hsl(var(--actor-hue) 38% 55%);
|
|
474
|
+
font:600 9.5px var(--hud);box-shadow:0 0 0 2px var(--panel)}
|
|
344
475
|
.liveAvatar svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;
|
|
345
476
|
stroke-linecap:round;stroke-linejoin:round}
|
|
346
477
|
/* Identicon faces: the SVG brings its own ground and kind-tinted ring, so the
|
|
@@ -371,14 +502,23 @@ input[type=text]:focus,select:focus{outline:none;border-color:var(--lampara)}
|
|
|
371
502
|
<div id="app">
|
|
372
503
|
<nav>
|
|
373
504
|
<div class="marca">
|
|
374
|
-
<span class="badge">town hall</span>
|
|
505
|
+
<span class="badge" data-i18n>town hall</span>
|
|
375
506
|
<h2>Agents City</h2>
|
|
376
|
-
<p>Manage one autonomous city: its seat, repo agents, roads and map. Everything here is a plain file you can also inspect by hand.</p>
|
|
507
|
+
<p data-i18n>Manage one autonomous city: its seat, repo agents, roads and map. Everything here is a plain file you can also inspect by hand.</p>
|
|
508
|
+
<div class="ajustes">
|
|
509
|
+
<button type="button" id="temaBoton" class="temaBoton"
|
|
510
|
+
title="Daylight is the default; night is the map's own light">☾ Night</button>
|
|
511
|
+
<button type="button" id="idiomaBoton" class="temaBoton"
|
|
512
|
+
title="Español / English">EN</button>
|
|
513
|
+
</div>
|
|
377
514
|
</div>
|
|
515
|
+
<div id="railCiudad" class="railCiudad"></div>
|
|
378
516
|
<ol id="rail"></ol>
|
|
517
|
+
<ol id="railOtras" class="railOtras"></ol>
|
|
379
518
|
<div id="ciudades" style="padding:0 18px"></div>
|
|
380
519
|
<div class="pie">
|
|
381
|
-
<
|
|
520
|
+
<p id="avisoVersion" class="avisoVersion" hidden></p>
|
|
521
|
+
<a href="#" id="alWizard" data-i18n>Create another city →</a>
|
|
382
522
|
<span class="dato" id="dondeDatos"></span>
|
|
383
523
|
</div>
|
|
384
524
|
</nav>
|