Spaces:
Running
Running
File size: 9,928 Bytes
4bd8362 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | /* Nivel 2 de extensiones: avisos, diálogos, selector y cuadro de texto que
piden las extensiones con código, y los diálogos de Code que las vigilan
(abrir una dirección, vista previa, peticiones del agente). Solo se carga
en modo extensiones y todo cuelga de #x2-* / .x2-*: nada de esto toca las
reglas de Code ni entra CSS de VS Code. */
#x2-toasts {
position: fixed; right: 12px; bottom: 34px; z-index: 160;
display: flex; flex-direction: column; gap: 8px; align-items: flex-end;
width: min(92vw, 420px); pointer-events: none;
}
.x2-toast {
pointer-events: auto; width: 100%; background: var(--bg3, #161a24); color: var(--fg, #eae8f2);
border: 1px solid var(--line, #20252c); border-left: 3px solid var(--accent2, #8272ff);
border-radius: 9px; padding: 9px 10px 8px 12px; box-shadow: 0 10px 30px rgba(0,0,0,.45);
font-size: .8rem; line-height: 1.4;
}
.x2-toast.x2-warning { border-left-color: #e5a53a; }
.x2-toast.x2-error { border-left-color: #ff6b8b; }
.x2-toast-from { font-size: .7rem; color: var(--muted, #8b929c); margin-bottom: 3px; }
.x2-toast-text { white-space: pre-wrap; overflow-wrap: anywhere; max-height: 9.5em; overflow: auto; }
.x2-toast-buttons { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; margin-top: 7px; }
.x2-toast-close { background: none; border: none; color: var(--muted, #8b929c); font-size: 1rem; cursor: pointer; padding: 0 4px; }
.x2-toast-close:hover { color: var(--fg, #eae8f2); }
.x2-btn {
background: none; border: 1px solid var(--line, #20252c); color: var(--fg, #eae8f2);
border-radius: 6px; padding: 5px 11px; font-size: .76rem; cursor: pointer; white-space: nowrap;
}
.x2-btn:hover:not([aria-disabled="true"]) { border-color: var(--accent2, #8272ff); }
/* texto oscuro sobre el degradado de Code: 8,1:1 en el dorado y 4,8:1 en el violeta (WCAG 1.4.3 pide 4,5:1).
El violeta es el --accent2 de Code (misma saturación) un poco más claro: con el
--accent2 tal cual el texto oscuro se queda en 4,0:1 y el blanco en 2,4:1 sobre el dorado. */
.x2-btn.x2-primary { background: linear-gradient(135deg, var(--accent, #c8a06a), #7c72ce); border: none; color: #0b0c12; font-weight: 600; }
.x2-btn[aria-disabled="true"] { opacity: .55; cursor: default; }
.x2-btn:focus-visible, .x2-toast-close:focus-visible { outline: 2px solid var(--accent2, #8272ff); outline-offset: 2px; }
.x2-backdrop {
position: fixed; inset: 0; z-index: 170; background: rgba(5,6,10,.55);
display: flex; align-items: flex-start; justify-content: center; padding: 10vh 8px 8px;
}
.x2-modal {
width: min(92vw, 560px); max-height: 80vh; overflow: auto; background: var(--bg3, #161a24); color: var(--fg, #eae8f2);
border: 1px solid var(--accent2, #8272ff); border-radius: 10px; box-shadow: 0 20px 60px rgba(0,0,0,.6); padding: 14px 16px 12px;
}
.x2-modal-title { margin: 0 0 8px; font-size: .95rem; }
.x2-modal-text { margin: 0 0 8px; font-size: .82rem; line-height: 1.45; white-space: pre-wrap; overflow-wrap: anywhere; }
.x2-modal-text.x2-warning { color: #f0c27a; }
.x2-modal-text.x2-error { color: #ff9db1; }
.x2-modal-detail { margin: 0 0 8px; font-size: .76rem; color: var(--muted, #8b929c); white-space: pre-wrap; overflow-wrap: anywhere; }
.x2-modal-buttons { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; margin-top: 10px; }
.x2-code {
font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .78rem; background: var(--bg, #090a11);
border: 1px solid var(--line, #20252c); border-radius: 6px; padding: 8px 10px; margin: 0 0 8px;
white-space: pre-wrap; overflow-wrap: anywhere; word-break: break-all; user-select: all;
}
.x2-code .x2-cc { color: #ff9db1; background: rgba(255,107,139,.14); border-radius: 3px; padding: 0 2px; }
/* una dirección o una orden larga no empuja el título fuera: se desplaza ella */
.x2-code { max-height: min(32vh, 14em); overflow: auto; }
.x2-code:focus-visible { outline: 2px solid var(--accent2, #8272ff); outline-offset: 1px; }
.x2-sizes { margin: 0 0 8px 18px; padding: 0; font-size: .78rem; line-height: 1.45; }
.x2-site { font-size: .8rem; margin: 0 0 6px; }
.x2-site b { overflow-wrap: anywhere; }
.x2-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.x2-note { font-size: .76rem; color: #f0c27a; margin: 0 0 6px; }
.x2-pick {
position: fixed; top: 52px; left: 50%; transform: translateX(-50%); z-index: 165;
width: min(92vw, 560px); background: var(--bg3, #161a24); color: var(--fg, #eae8f2);
border: 1px solid var(--accent2, #8272ff); border-radius: 10px; box-shadow: 0 20px 60px rgba(0,0,0,.6); overflow: hidden;
}
.x2-pick-title { font-size: .72rem; color: var(--muted, #8b929c); padding: 8px 14px 0; }
.x2-pick-input { width: 100%; background: var(--bg, #090a11); border: none; border-bottom: 1px solid var(--line, #20252c); color: var(--fg, #eae8f2); padding: 10px 14px; font-size: .9rem; outline: none; }
.x2-pick-list { max-height: 45vh; overflow-y: auto; padding: 4px; }
.x2-pick-item { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; padding: 6px 10px; border-radius: 6px; cursor: pointer; font-size: .82rem; }
.x2-pick-item.sel, .x2-pick-item:hover { background: #7c5cff33; }
.x2-pick-label { font-weight: 500; overflow-wrap: anywhere; }
.x2-pick-desc { color: var(--muted, #8b929c); font-size: .74rem; overflow-wrap: anywhere; }
.x2-pick-detail { flex-basis: 100%; color: var(--muted, #8b929c); font-size: .72rem; overflow-wrap: anywhere; }
.x2-pick-sep { font-size: .68rem; color: var(--muted, #8b929c); padding: 6px 10px 2px; text-transform: uppercase; letter-spacing: .04em; }
.x2-pick-empty { padding: 10px 12px; color: var(--muted, #8b929c); font-size: .8rem; }
.x2-check { width: 1.1em; }
.x2-pick-foot { display: flex; justify-content: flex-end; gap: 8px; padding: 6px 10px 8px; border-top: 1px solid var(--line, #20252c); }
.x2-pick-foot [hidden] { display: none; }
.x2-input-prompt { font-size: .76rem; color: var(--muted, #8b929c); padding: 6px 14px 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.x2-input-error { font-size: .76rem; color: #ff9db1; padding: 4px 14px 0; overflow-wrap: anywhere; }
.x2-input-error[hidden] { display: none; }
.x2-progress { margin-left: auto; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 50vw; }
@media (max-width: 560px) {
/* arriba, bajo la barra de pestañas: abajo taparía el prompt del chat */
#x2-toasts { right: 4vw; left: 4vw; width: auto; bottom: auto; top: 46px; }
.x2-backdrop { padding-top: 6vh; }
.x2-modal-buttons { justify-content: stretch; }
.x2-modal-buttons .x2-btn { flex: 1 1 auto; }
.x2-progress { max-width: 40vw; }
}
/* Panel de extensiones: qué funcionará de cada una y los mandos de las que
traen código (js/ext2/manage.js carga esta hoja al cargarse). */
.ext-x2-lines { margin-top: 3px; }
.ext-x2-runs, .ext-x2-tested { font-size: .72rem; color: #9ecbff; margin-top: 3px; }
.ext-x2-untested { font-size: .72rem; color: var(--muted); margin-top: 3px; }
.ext-actions .ext-install-code { background: none; border: 1px solid var(--accent2); color: var(--fg); }
.ext-x2 { margin-top: 7px; padding: 7px 9px; border: 1px dashed var(--line); border-radius: 8px; font-size: .74rem; }
.ext-x2-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: space-between; }
.ext-x2-state { color: #9ecbff; overflow-wrap: anywhere; }
.ext-x2 button { font-size: .72rem; padding: 4px 10px; border-radius: 6px; cursor: pointer; background: none; border: 1px solid var(--line); color: var(--fg); }
.ext-x2 button.ext-x2-run.on { border-color: var(--accent2); background: rgba(130,114,255,.18); }
.ext-x2 button[aria-disabled="true"] { opacity: .6; cursor: default; }
.ext-x2 details { margin-top: 6px; }
.ext-x2 summary { cursor: pointer; }
.ext-x2-json { display: block; width: 100%; margin: 5px 0; min-height: 70px; resize: vertical; background: var(--bg); color: var(--fg); border: 1px solid var(--line); border-radius: 6px; padding: 6px 8px; font: .74rem ui-monospace, SFMono-Regular, Menlo, monospace; }
.ext-x2-msg { margin-top: 4px; color: #9ecbff; overflow-wrap: anywhere; }
.ext-x2-msg[role="alert"] { color: #ff9db1; }
.ext-x2-cmds { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 4px; }
.ext-x2-cmds li { display: flex; justify-content: space-between; align-items: center; gap: 8px; overflow-wrap: anywhere; }
.ext-x2-fmtrow { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-top: 4px; }
.ext-x2-fmtrow select { background: var(--bg3); color: var(--fg); border: 1px solid var(--line); border-radius: 6px; padding: 2px 4px; font-size: .72rem; max-width: 55%; }
.ext-x2-keys ul { margin: 4px 0 0 18px; padding: 0; color: var(--muted); overflow-wrap: anywhere; }
.ext-x2-log pre { margin: 4px 0 0; max-height: 160px; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; font-size: .68rem; background: var(--bg); border: 1px solid var(--line); border-radius: 6px; padding: 6px 8px; }
.ext-x2-runtime { margin: 2px 0 4px; font-size: .74rem; }
.ext-x2-blocked { color: #f0c27a; }
.ext-x2-unblock { font-size: .72rem; padding: 2px 8px; border-radius: 6px; cursor: pointer; background: none; border: 1px solid var(--line); color: var(--fg); }
.ext-x2-unblock:focus-visible { outline: 2px solid var(--accent2); outline-offset: 2px; }
.ext-x2-alloff { margin: 0 0 8px; font-size: .72rem; padding: 4px 10px; border-radius: 6px; cursor: pointer; background: none; border: 1px solid var(--line); color: var(--muted); }
.ext-x2 button:focus-visible, .ext-x2 summary:focus-visible, .ext-x2-json:focus-visible, .ext-x2-alloff:focus-visible { outline: 2px solid var(--accent2); outline-offset: 2px; }
@media (max-width: 560px) {
.ext-x2-fmtrow { flex-direction: column; align-items: stretch; }
.ext-x2-fmtrow select { max-width: 100%; }
}
|