c454474f49
Ispezione: - Stato sync visibile: badge per-scheda (Da inviare/Inviato) e contatore "N da inviare" per reparto (nuovo SchedaSyncHelper) - Completamento: progresso reale nell'overlay + spunta di successo; NON completa se una scheda fallisce (resta editabile, schede "Da inviare") - Export reparto/completamento blindati: conferma + guardia anti doppio-tap, try/finally che libera sempre l'overlay - Accento corallo unico per l'azione "invia"; target di tocco >=44px; empty state; solo il primo pannello espanso di default - Tasto "Invia" nascosto sulle schede gia inviate - Messaggio d'errore comprensibile in campo (dettaglio tecnico nei log) - Fix OnSchedaModified (index >= 0) Aspetto card: - SchedaCard e InspectionCard: superficie Carta + hairline border + ombra morbida (nuovo token --card-box-shadow); pagina con tinta Grigio Campo - SchedaCard compattata Form scheda (ModalFormScheda): - Tasto Salva/Aggiorna full-width - Fix "Suggerisci note descrittive": la nota selezionata ora viene inserita nel campo (metodo async sul thread UI + OnAfterChangeValue) StatusEnum: etichette in sentence-case Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
184 lines
3.2 KiB
CSS
184 lines
3.2 KiB
CSS
.overlay-content {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: 1.5rem;
|
|
padding: 0 2rem;
|
|
text-align: center;
|
|
}
|
|
|
|
.overlay-message {
|
|
margin: 0;
|
|
max-width: 30ch;
|
|
font-weight: 700;
|
|
font-size: 1.05rem;
|
|
line-height: 1.4;
|
|
/* Inchiostro su fondo chiaro dell'overlay: leggibile anche al sole */
|
|
color: var(--mud-palette-text-primary);
|
|
}
|
|
|
|
.success-checkmark {
|
|
width: 80px;
|
|
height: 80px;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
/* Reduced motion: mostra la spunta di successo statica, senza coreografia */
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.success-checkmark .check-icon::after,
|
|
.icon-line.line-tip,
|
|
.icon-line.line-long {
|
|
animation: none !important;
|
|
}
|
|
}
|
|
|
|
.success-checkmark .check-icon {
|
|
width: 80px;
|
|
height: 80px;
|
|
position: relative;
|
|
border-radius: 50%;
|
|
box-sizing: content-box;
|
|
border: 4px solid var(--mud-palette-success);
|
|
}
|
|
|
|
.success-checkmark .check-icon::before {
|
|
top: 3px;
|
|
left: -2px;
|
|
width: 30px;
|
|
transform-origin: 100% 50%;
|
|
border-radius: 100px 0 0 100px;
|
|
}
|
|
|
|
.success-checkmark .check-icon::after {
|
|
top: 0;
|
|
left: 30px;
|
|
width: 60px;
|
|
transform-origin: 0 50%;
|
|
border-radius: 0 100px 100px 0;
|
|
animation: rotate-circle 4.25s ease-in;
|
|
}
|
|
|
|
.success-checkmark .check-icon::before,
|
|
.success-checkmark .check-icon::after {
|
|
content: '';
|
|
height: 100px;
|
|
position: absolute;
|
|
transform: rotate(-45deg);
|
|
z-index: 2;
|
|
}
|
|
|
|
.icon-line {
|
|
height: 5px;
|
|
background-color: var(--mud-palette-success);
|
|
display: block;
|
|
border-radius: 2px;
|
|
position: absolute;
|
|
z-index: 10;
|
|
}
|
|
|
|
.icon-line.line-tip {
|
|
top: 46px;
|
|
left: 14px;
|
|
width: 25px;
|
|
transform: rotate(45deg);
|
|
animation: icon-line-tip 0.75s;
|
|
}
|
|
|
|
.icon-line.line-long {
|
|
top: 38px;
|
|
right: 8px;
|
|
width: 47px;
|
|
transform: rotate(-45deg);
|
|
animation: icon-line-long 0.75s;
|
|
}
|
|
|
|
|
|
.icon-circle {
|
|
top: -4px;
|
|
left: -4px;
|
|
z-index: 10;
|
|
width: 80px;
|
|
height: 80px;
|
|
border-radius: 50%;
|
|
position: absolute;
|
|
box-sizing: content-box;
|
|
border: 4px solid var(--mud-palette-success);
|
|
}
|
|
|
|
.icon-fix {
|
|
top: 8px;
|
|
width: 5px;
|
|
left: 26px;
|
|
z-index: 1;
|
|
height: 85px;
|
|
position: absolute;
|
|
transform: rotate(-45deg);
|
|
}
|
|
|
|
@keyframes rotate-circle {
|
|
0% { transform: rotate(-45deg); }
|
|
|
|
5% { transform: rotate(-45deg); }
|
|
|
|
12% { transform: rotate(-405deg); }
|
|
|
|
100% { transform: rotate(-405deg); }
|
|
}
|
|
|
|
@keyframes icon-line-tip {
|
|
0% {
|
|
width: 0;
|
|
left: 1px;
|
|
top: 19px;
|
|
}
|
|
|
|
54% {
|
|
width: 0;
|
|
left: 1px;
|
|
top: 19px;
|
|
}
|
|
|
|
70% {
|
|
width: 50px;
|
|
left: -8px;
|
|
top: 37px;
|
|
}
|
|
|
|
84% {
|
|
width: 17px;
|
|
left: 21px;
|
|
top: 48px;
|
|
}
|
|
|
|
100% {
|
|
width: 25px;
|
|
left: 14px;
|
|
top: 45px;
|
|
}
|
|
}
|
|
|
|
@keyframes icon-line-long {
|
|
0% {
|
|
width: 0;
|
|
right: 46px;
|
|
top: 54px;
|
|
}
|
|
|
|
65% {
|
|
width: 0;
|
|
right: 46px;
|
|
top: 54px;
|
|
}
|
|
|
|
84% {
|
|
width: 55px;
|
|
right: 0px;
|
|
top: 35px;
|
|
}
|
|
|
|
100% {
|
|
width: 47px;
|
|
right: 8px;
|
|
top: 38px;
|
|
}
|
|
} |