upstream: integrar Oasis 1.3.1

Base del merge a tres bandas: git 0.9.5 de epsylon, esta rama y el src de la
APK oficial 1.3.1 (la variante movil: OASIS_MOBILE, regex sin \p{}, audio y
video de Android). Corre en el mismo nodejs-mobile 18.20.4 que ya usabamos.

Se conserva de la rama: Karvan, identidades y multicuenta, topbar y barra
inferior, borrado de EXIF sin sharp, filtro hot del foro, RTC sin STUN y los
modulos apagados en movil (wallet, banking, torrents).

Se toma de upstream lo que ya hace de serie: respuesta citada en chats, ssb-lan
en movil, configuracion en ~/.ssb/oasis (sobrevive a reinstalar el backend).
El asistente de bienvenida deja elegir workflow tambien en movil.
This commit is contained in:
oasis-bot 2026-10-18 02:52:17 +02:00
parent 8d838dd8b1
commit c332afd6ea
265 changed files with 80970 additions and 29167 deletions

View file

@ -224,32 +224,23 @@ footer a:hover {
background: none;
}
.card-tags a.tag-link {
color: #181818;
background: #D94F4F;
}
.card-tags a.tag-link:hover {
background: #D94F4F;
color: #111;
cursor: pointer;
}
a.user-link {
a.user-link, button.user-link {
background-color: #FFD600;
color: #FFFFFF;
border-color: #FFD600;
transition: background-color 0.3s, color 0.3s, border-color 0.3s;
}
a.user-link:hover {
a.user-link:hover, button.user-link:hover {
background-color: #FFD600;
border-color: #FFD600;
color: #FFFFFF;
cursor: pointer;
}
a.user-link:focus {
a.user-link:focus, button.user-link:focus {
background-color: #9A2F2F;
border-color: #9A2F2F;
color: #FFFFFF;
@ -302,7 +293,7 @@ a.user-link:focus {
.stats-kpi-value { color: #007BFF !important; }
.carbon-bar-note, .carbon-bar-formula { color: #007BFF !important; }
.graphos-node-label { fill: #2C2C2C !important; }
.graphos-node-label-me { fill: #cc7700 !important; }
.graphos-node-label-me { fill: #1f6391 !important; }
.data-best-label { color: #cc7700 !important; }
.data-best-card { background: #FFF3E0 !important; border: 1px solid rgba(204, 119, 0, .4) !important; }
.graphos-legend { color: #2C2C2C !important; }
@ -327,6 +318,8 @@ a.user-link:focus {
.btn-singleview:hover { background: #E0E0E0 !important; color: #FF8F00 !important; }
.btn-spread-on, .content-actions .btn-pin-on { background: #FF6F00 !important; color: #FFFFFF !important; }
.btn-spread-on:hover, .content-actions .btn-pin-on:hover { background: #FF8F00 !important; color: #FFFFFF !important; }
.content-actions .btn-singleview.btn-content { border: 1px solid #FF6F00 !important; }
.content-actions .btn-singleview.btn-content:hover { background: rgba(255, 111, 0, .18) !important; border-color: #FF6F00 !important; }
.btn-back { background: #FF6F00 !important; color: #FFFFFF !important; }
.btn-back:hover { background: #FF8F00 !important; color: #FFFFFF !important; }
.block-info-table td, .pm-info-table td { border-color: #E0E0E0 !important; }
@ -383,3 +376,48 @@ a.user-link:focus {
.karvan-msg-self { background-color: #FFEFC2 !important; border-color: #D9A400 !important; }
.karvan-msg .km-from { color: #8A6D00 !important; }
.karvan-msg .km-text { color: #2C2C2C !important; }
.map-viewer, .map-stage div, .map-hero, .map-toolbar, .map-toolbar div, .map-place-results, .map-markers-list, .map-markers-list div, .map-detail-grid, .map-card-thumb .map-viewer { background: transparent !important; border: 0 !important; }
.map-pick-cell, .map-pick-cell:hover { border: 0 !important; padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
.map-pick-cell { background: transparent !important; }
.map-pick-cell:hover { background: rgba(255, 111, 0, 0.18) !important; }
.map-ctrl, .map-place-result { padding: 0 !important; border-radius: 6px !important; box-shadow: none !important; }
.map-place-result { padding: 4px 10px !important; border-radius: 14px !important; }
.map-stage { background: #cfe0ec !important; border: 1px solid #E0E0E0 !important; }
.map-marker-row { border-bottom: 1px solid #E0E0E0 !important; }
.map-label-country { fill: #4a4a4a; stroke: #ffffff; }
.map-place-dot { fill: #333333; stroke: #ffffff; }
.map-place-capital { fill: #E65100; }
.map-place-label { fill: #222222; stroke: #ffffff; }
.map-pin-label-bg { fill: rgba(255, 255, 255, 0.92); stroke: rgba(0, 0, 0, 0.3); }
.map-pin-label { fill: #222222; }
.map-pin-focus .map-pin-body, .map-cluster-dot { fill: #FF6F00; }
.map-pin-focus .map-pin-label-bg { stroke: #FF6F00; }
.map-cluster-ring { fill: rgba(255, 111, 0, 0.25); }
.map-pick-ring, .map-pick-cross { stroke: #FF6F00; }
.map-pins-layer a:hover .map-pin-body, .map-pins a:hover .map-pin-body { fill: #FF6F00; }
.map-scale-line { stroke: #333333; }
.map-scale-text { fill: #333333; stroke: #ffffff; }
.map-attrib { fill: #777777; }
.map-ctrl { background: rgba(255, 255, 255, 0.92) !important; color: #FF6F00 !important; border-color: #cccccc !important; }
.map-ctrl:hover { background: #FF6F00 !important; color: #ffffff !important; border-color: #FF6F00 !important; }
.map-ctrl-off:hover { background: rgba(255, 255, 255, 0.92) !important; color: #FF6F00 !important; border-color: #cccccc !important; }
.map-pick-cell:hover { background: rgba(255, 111, 0, 0.18); outline-color: rgba(255, 111, 0, 0.7); }
.map-place-result, .map-center-link { color: #FF6F00 !important; border-color: #cccccc !important; }
.map-place-result:hover, .map-center-link:hover { background: #FF6F00 !important; color: #ffffff !important; border-color: #FF6F00 !important; }
.map-picked { background: #F0F0F0 !important; color: #FF6F00 !important; }
.map-picked-near { color: #555555 !important; }
.map-markers-list .map-marker-row--focus { background: rgba(255, 111, 0, 0.08) !important; box-shadow: inset 3px 0 0 #FF6F00 !important; }
.map-marker-row--focus .map-marker-idx { background: #FF6F00 !important; color: #ffffff !important; }
.map-marker-label { color: #E65100 !important; }
.map-marker-date { color: #777777 !important; }
.map-marker-coords { color: #222222 !important; }
.map-popup-pointer { fill: #ffffff; stroke: #cccccc; }
.map-stage .map-popup-card { background: #ffffff !important; border: 1px solid #cccccc !important; color: #222222; }
.map-stage .map-popup-text { color: #333333; }
.map-popup-coords { color: #222222; }
.map-stage .map-popup-meta { color: #777777; }
.map-popup-close { color: #777777; }
.map-popup-close:hover { color: #FF6F00; }
.oasis-pager-info { color: #888888; }
.oasis-pager-btn { background: #FFFFFF; color: #555555 !important; border: 1px solid #E0E0E0; text-decoration: none !important; }
.oasis-pager-btn:hover, .oasis-pager-btn.active { border-color: #2C2C2C; color: #2C2C2C !important; text-decoration: none !important; }

View file

@ -210,24 +210,9 @@ footer a:hover {
gap: 9px;
}
.card-tags a.tag-link {
text-decoration: none;
color: #181818;
background: #FFD600;
padding: 5px 13px 4px 13px;
border-radius: 7px;
font-size: .98em;
border: none;
font-weight: bold;
}
.card-tags a.tag-link:hover {
background: #ffe86a;
color: #111;
cursor: pointer;
}
a.user-link {
a.user-link, button.user-link {
background-color: #FFA500;
color: #000;
padding: 8px 16px;
@ -241,14 +226,14 @@ a.user-link {
font-size: 0.8em;
}
a.user-link:hover {
a.user-link:hover, button.user-link:hover {
background-color: #FFD700;
border-color: #FFD700;
color: #000;
cursor: pointer;
}
a.user-link:focus {
a.user-link:focus, button.user-link:focus {
background-color: #007B9F;
border-color: #007B9F;
color: #fff;
@ -316,7 +301,7 @@ a.user-link:focus {
.stats-kpi-value { color: #FFD700 !important; }
.carbon-bar-note, .carbon-bar-formula { color: #FFD700 !important; }
.graphos-node-label { fill: #ddd !important; }
.graphos-node-label-me { fill: #ffa500 !important; }
.graphos-node-label-me { fill: #5dade2 !important; }
.graphos-legend { color: #ddd !important; }
.blockchain-view { background-color: #191b20 !important; color: #FFD700 !important; }
.block { background: #23242a !important; }
@ -333,6 +318,8 @@ a.user-link:focus {
.btn-singleview:hover { background: #2d2e34 !important; color: #FFD700 !important; }
.btn-spread-on, .content-actions .btn-pin-on { background: #ffa300 !important; color: #000000 !important; }
.btn-spread-on:hover, .content-actions .btn-pin-on:hover { background: #ffb733 !important; color: #000000 !important; }
.content-actions .btn-singleview.btn-content { border: 1px solid #ffa300 !important; }
.content-actions .btn-singleview.btn-content:hover { background: rgba(255, 163, 0, .18) !important; border-color: #ffa300 !important; }
.btn-back { background: #21232b !important; color: #ffa300 !important; }
.btn-back:hover { background: #292b36 !important; color: #FFD700 !important; }
.block-info-table td, .pm-info-table td { border-color: #444 !important; }

View file

@ -241,32 +241,23 @@ footer a {
color: #00FF00;
}
.card-tags a.tag-link {
color: #00FF00;
background: #000000;
}
.card-tags a.tag-link:hover {
background: #00FF00;
color: #000000;
cursor: pointer;
}
a.user-link {
a.user-link, button.user-link {
background-color: #00FF00;
color: #000000;
border-color: #00FF00;
transition: background-color 0.3s, color 0.3s, border-color 0.3s;
}
a.user-link:hover {
a.user-link:hover, button.user-link:hover {
background-color: #000000;
border-color: #00FF00;
color: #00FF00;
cursor: pointer;
}
a.user-link:focus {
a.user-link:focus, button.user-link:focus {
background-color: #00FF00;
border-color: #00FF00;
color: #000000;
@ -310,7 +301,7 @@ a.user-link:focus {
.stats-kpi-value { color: #00FF00 !important; }
.carbon-bar-note, .carbon-bar-formula { color: #00FF00 !important; }
.graphos-node-label { fill: #00FF00 !important; }
.graphos-node-label-me { fill: #ffa500 !important; font-weight: bold !important; }
.graphos-node-label-me { fill: #5dade2 !important; font-weight: bold !important; }
.graphos-legend { color: #00FF00 !important; }
.graphos-edge { stroke: #003300 !important; }
/* Blockexplorer */
@ -329,6 +320,8 @@ a.user-link:focus {
.btn-singleview:hover { background: #00FF00 !important; color: #000000 !important; }
.btn-spread-on, .content-actions .btn-pin-on { background: #00FF00 !important; color: #000000 !important; }
.btn-spread-on:hover, .content-actions .btn-pin-on:hover { background: #66FF66 !important; color: #000000 !important; }
.content-actions .btn-singleview.btn-content { border: 1px solid #00FF00 !important; }
.content-actions .btn-singleview.btn-content:hover { background: rgba(0, 255, 0, .18) !important; border-color: #00FF00 !important; }
.btn-back { background: #000000 !important; color: #00FF00 !important; border: 1px solid #00FF00 !important; }
.btn-back:hover { background: #00FF00 !important; color: #000000 !important; }
.block-info-table td, .pm-info-table td { border-color: #00FF00 !important; }
@ -379,4 +372,47 @@ nav, .sidebar-left nav, .sidebar-right nav, .sidebar-left ul, .sidebar-right ul
.ai-nav-result-card a { color: #00FF00 !important; }
.ai-nav-result-card a:hover { background: #00FF00 !important; color: #000000 !important; }
.ai-nav-query { color: #00FF00 !important; }
.trending-card.own-content { box-shadow: inset 3px 0 0 #00FF00; }
.trending-card.own-content, .addr-card.ubi-pub-card.own-content { box-shadow: inset 3px 0 0 #00FF00; }
.map-stage { background: #000000 !important; border-color: #00FF00 !important; }
.map-label-country { fill: #00FF00; stroke: #000000; }
.map-place-dot { fill: #00FF00; stroke: #000000; }
.map-place-capital { fill: #66FF66; }
.map-place-label { fill: #00FF00; stroke: #000000; }
.map-pin-body { fill: #00aa00; stroke: #00FF00; }
.map-pin-main .map-pin-body { fill: #00FF00; stroke: #000000; }
.map-pin-focus .map-pin-body { fill: #ffffff; stroke: #00FF00; }
.map-pin-eye { fill: #000000; }
.map-pin-label-bg { fill: rgba(0, 0, 0, 0.9); stroke: #00FF00; }
.map-pin-focus .map-pin-label-bg { stroke: #ffffff; }
.map-pin-label { fill: #00FF00; }
.map-pins-layer a:hover .map-pin-body, .map-pins a:hover .map-pin-body { fill: #ffffff; }
.map-cluster-ring { fill: rgba(0, 255, 0, 0.25); }
.map-cluster-dot { fill: #00FF00; stroke: #000000; }
.map-pick-ring, .map-pick-cross { stroke: #00FF00; }
.map-scale-line { stroke: #00FF00; }
.map-scale-text { fill: #00FF00; stroke: #000000; }
.map-attrib { fill: #008800; }
.map-ctrl { background: rgba(0, 0, 0, 0.9) !important; color: #00FF00 !important; border-color: #00FF00 !important; }
.map-ctrl:hover { background: #00FF00 !important; color: #000000 !important; }
.map-ctrl-off:hover { background: rgba(0, 0, 0, 0.9) !important; color: #00FF00 !important; }
.map-pick-cell:hover { background: rgba(0, 255, 0, 0.18); outline-color: rgba(0, 255, 0, 0.7); }
.map-place-result, .map-center-link { color: #00FF00 !important; border-color: #00FF00 !important; }
.map-place-result:hover, .map-center-link:hover { background: #00FF00 !important; color: #000000 !important; }
.map-picked { background: #050505 !important; color: #00FF00 !important; }
.map-picked-near { color: #00CC00 !important; }
.map-markers-list .map-marker-row { border-color: #003300 !important; }
.map-markers-list .map-marker-row--focus { background: rgba(0, 255, 0, 0.08) !important; box-shadow: inset 3px 0 0 #00FF00 !important; }
.map-marker-idx { background: #004400 !important; color: #00FF00 !important; }
.map-marker-idx--main, .map-marker-row--focus .map-marker-idx { background: #00FF00 !important; color: #000000 !important; }
.map-marker-label { color: #00FF00 !important; }
.map-marker-date { color: #00AA00 !important; }
.map-popup-pointer { fill: #000000; stroke: #00FF00; }
.map-stage .map-popup-card { background: #000000; border-color: #00FF00; color: #00FF00; }
.map-stage .map-popup-text { color: #00FF00; }
.map-popup-coords { color: #66FF66; }
.map-stage .map-popup-meta { color: #00AA00; }
.map-popup-close { color: #00AA00; }
.map-popup-close:hover { color: #ffffff; }
.oasis-pager-info { color: #008800; }
.oasis-pager-btn { background: #0a0a0a; color: #00CC00; border: 1px solid #00FF00; }
.oasis-pager-btn:hover, .oasis-pager-btn.active { border-color: #00FF00; color: #00FF00; }

View file

@ -277,32 +277,23 @@ header {
color: #B86ADE;
}
.card-tags a.tag-link {
color: #FFFFFF;
background: #D94F4F;
}
.card-tags a.tag-link:hover {
background: #B86ADE;
color: #E5E5E5;
cursor: pointer;
}
a.user-link {
a.user-link, button.user-link {
background-color: #FFD600;
color: #3C1360;
border-color: #FFD600;
transition: background-color 0.3s, color 0.3s, border-color 0.3s;
}
a.user-link:hover {
a.user-link:hover, button.user-link:hover {
background-color: #FFB600;
border-color: #FFB600;
color: #3C1360;
cursor: pointer;
}
a.user-link:focus {
a.user-link:focus, button.user-link:focus {
background-color: #9A2F2F;
border-color: #9A2F2F;
color: #E5E5E5;
@ -346,7 +337,7 @@ a.user-link:focus {
.stats-kpi-value { color: #FFEEDB !important; }
.carbon-bar-note, .carbon-bar-formula { color: #FFEEDB !important; }
.graphos-node-label { fill: #FFEEDB !important; }
.graphos-node-label-me { fill: #ffa500 !important; }
.graphos-node-label-me { fill: #5dade2 !important; }
.graphos-legend { color: #FFEEDB !important; }
/* Blockexplorer */
.blockchain-view { background-color: #2D0B47 !important; color: #FFEEDB !important; }
@ -364,6 +355,8 @@ a.user-link:focus {
.btn-singleview:hover { background: #5A1A85 !important; color: #FFD600 !important; }
.btn-spread-on, .content-actions .btn-pin-on { background: #B86ADE !important; color: #2A0E42 !important; }
.btn-spread-on:hover, .content-actions .btn-pin-on:hover { background: #CE8CE9 !important; color: #2A0E42 !important; }
.content-actions .btn-singleview.btn-content { border: 1px solid #B86ADE !important; }
.content-actions .btn-singleview.btn-content:hover { background: rgba(184, 106, 222, .18) !important; border-color: #B86ADE !important; }
.btn-back { background: #A34AD8 !important; color: #FFFFFF !important; }
.btn-back:hover { background: #751E9F !important; color: #FFFFFF !important; }
.block-info-table td, .pm-info-table td { border-color: #B86ADE !important; }
@ -395,4 +388,41 @@ a.user-link:focus {
.tribe-subtribe-link:hover { background: #5A1A85 !important; }
.tribe-parent-image { border-color: #B86ADE !important; }
.tribe-parent-box { background: #3C1360 !important; }
.trending-card.own-content { box-shadow: inset 3px 0 0 #B86ADE; }
.trending-card.own-content, .addr-card.ubi-pub-card.own-content { box-shadow: inset 3px 0 0 #B86ADE; }
.map-stage { background: #2a0640 !important; border-color: #9B1C96 !important; }
.map-label-country { fill: #E5E5E5; stroke: #2a0640; }
.map-place-dot { fill: #ffffff; stroke: #2a0640; }
.map-place-capital { fill: #B86ADE; }
.map-place-label { fill: #E5E5E5; stroke: #2a0640; }
.map-pin-focus .map-pin-body, .map-cluster-dot { fill: #B86ADE; }
.map-pin-focus .map-pin-label-bg { stroke: #B86ADE; }
.map-pins-layer a:hover .map-pin-body, .map-pins a:hover .map-pin-body { fill: #B86ADE; }
.map-cluster-ring { fill: rgba(184, 106, 222, 0.28); }
.map-pick-ring, .map-pick-cross { stroke: #B86ADE; }
.map-scale-text { stroke: #2a0640; }
.map-attrib { fill: #9B7CAA; }
.map-ctrl { background: rgba(43, 10, 70, 0.9) !important; color: #E5E5E5 !important; border-color: #9B1C96 !important; }
.map-ctrl:hover { background: #B86ADE !important; color: #000000 !important; border-color: #B86ADE !important; }
.map-ctrl-off:hover { background: rgba(43, 10, 70, 0.9) !important; color: #E5E5E5 !important; border-color: #9B1C96 !important; }
.map-pick-cell, .map-pick-cell:hover { border: 0 !important; padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
.map-pick-cell { background: transparent !important; }
.map-pick-cell:hover { background: rgba(184, 106, 222, 0.22) !important; outline-color: rgba(184, 106, 222, 0.7); }
.map-place-result, .map-center-link { color: #E5E5E5 !important; border-color: #9B1C96 !important; }
.map-place-result:hover, .map-center-link:hover { background: #B86ADE !important; color: #000000 !important; border-color: #B86ADE !important; }
.map-picked { background: #3C1360 !important; color: #E5E5E5 !important; }
.map-picked-near { color: #C8C8C8 !important; }
.map-markers-list .map-marker-row { border-color: #5A1A85 !important; }
.map-markers-list .map-marker-row--focus { background: rgba(184, 106, 222, 0.1) !important; box-shadow: inset 3px 0 0 #B86ADE !important; }
.map-marker-row--focus .map-marker-idx { background: #B86ADE !important; color: #000000 !important; }
.map-marker-label { color: #B86ADE !important; }
.map-marker-date { color: #C8C8C8 !important; }
.map-popup-pointer { fill: #3C1360; stroke: #9B1C96; }
.map-stage .map-popup-card { background: #3C1360; border-color: #9B1C96; color: #E5E5E5; }
.map-stage .map-popup-text { color: #E5E5E5; }
.map-popup-coords { color: #ffffff; }
.map-stage .map-popup-meta { color: #C8C8C8; }
.map-popup-close { color: #C8C8C8; }
.map-popup-close:hover { color: #B86ADE; }
.oasis-pager-info { color: #9B7CAA; }
.oasis-pager-btn { background: #39006D; color: #C8C8C8; border: 1px solid #9B1C96; }
.oasis-pager-btn:hover, .oasis-pager-btn.active { border-color: #E5E5E5; color: #E5E5E5; }