diff --git a/felsokning/app/src/alva/komponenter.tsx b/felsokning/app/src/alva/komponenter.tsx index 8c3fe51..f260abe 100644 --- a/felsokning/app/src/alva/komponenter.tsx +++ b/felsokning/app/src/alva/komponenter.tsx @@ -341,7 +341,19 @@ export function Knapp({ // `h-full` och inte bara `w-full`: lika breda knappar där den ena // texten bryts till två rader blir olika HÖGA, vilket är samma // obalans en rad ned. Bägge fyller sin cell. - className={`border px-4 py-2 text-[13px] font-semibold uppercase tracking-[0.08em] disabled:opacity-40${ + // Gemener, inte versaler. + // + // Etiketter och rubriker är versala i ALVA — de är uppmärkning, och + // ett tekniskt dokument märker upp sina fält så. En knapp är inte + // uppmärkning utan en uppmaning, och i arbetsvyn är uppmaningen ofta + // en hel mening: "Photograph the instrument panel". Versal sats är + // långsammare att läsa och bryts sämre, och just den knappen trycks + // med handskar bredvid ett fordon. + // + // Regeln gäller båda ytorna. Att låta portalen behålla versaler hade + // gett två knappspråk i samma produkt, vilket är precis det som + // skulle bort. + className={`border px-4 py-2 text-[13px] font-semibold tracking-[0.02em] disabled:opacity-40${ bred ? " h-full w-full" : "" }`} style={{ diff --git a/felsokning/app/src/felsokning/Bilagevisning.tsx b/felsokning/app/src/felsokning/Bilagevisning.tsx index 885eec1..bccf028 100644 --- a/felsokning/app/src/felsokning/Bilagevisning.tsx +++ b/felsokning/app/src/felsokning/Bilagevisning.tsx @@ -28,7 +28,7 @@ function useKalla(bilaga: Bilaga, delningskod?: string): string | null | "laddar function Platshallare({ text }: { text: string }) { return ( -

+

{text}

); diff --git a/felsokning/app/src/felsokning/DelatArendeVy.tsx b/felsokning/app/src/felsokning/DelatArendeVy.tsx index 56cd270..70ef5c9 100644 --- a/felsokning/app/src/felsokning/DelatArendeVy.tsx +++ b/felsokning/app/src/felsokning/DelatArendeVy.tsx @@ -28,8 +28,8 @@ function BeslutsKnappar({ const [fel, setFel] = useState(""); return ( -
-

+

+

Your decision to the workshop

@@ -43,14 +43,14 @@ function BeslutsKnappar({ {val && ( <> {fel &&

{fel}

} @@ -66,7 +66,7 @@ function BeslutsKnappar({ > {skickar ? "Sending …" : "Send decision"} -

+

The decision is recorded in the case and cannot be changed here — contact the workshop if you change your mind.

@@ -88,14 +88,14 @@ function IdentitetsPanel({ arende, avslutat }: { arende: Arende; avslutat: boole ["Status", avslutat ? "Closed" : "Diagnosis in progress"], ]; return ( -
+
{idn.beskrivning &&

{idn.beskrivning}

}

{falt .filter(([, varde]) => varde) .map(([etikett, varde]) => ( - {etikett}: {varde} + {etikett}: {varde} ))}

@@ -145,8 +145,8 @@ export function DelatArendeVy({ rubrik={b.objekt?.beskrivning ?? "Case"} hoger={ {avslutat ? "Closed" : "Diagnosis in progress"} @@ -185,7 +185,7 @@ export function DelatArendeVy({ {rader.map(([etikett, text]) => (
{etikett}
-
{text}
+
{text}
))} @@ -193,7 +193,7 @@ export function DelatArendeVy({ ); })()} -

+

{notis}

@@ -212,20 +212,20 @@ export function DelatArendeVy({

{h.beskrivning}

{h.uppskattadKostnad && ( -

Uppskattad kostnad: {h.uppskattadKostnad}

+

Uppskattad kostnad: {h.uppskattadKostnad}

)}
); })} {beslut?.handelse.typ === "kundbeslut" ? ( -

+

Ditt besked: {KUNDBESLUT_LABEL[beslut.handelse.beslut]}{" "} - (registrerat via {beslut.handelse.kanal}) + (registrerat via {beslut.handelse.kanal})

) : vidBeslut ? ( ) : ( -

+

Awaiting your decision — contact the workshop to approve or decline.

)} @@ -234,11 +234,11 @@ export function DelatArendeVy({ {b.utfordaKontroller.map((k, i) => ( -

{k.text}

+

{k.text}

))} - {!avslutat && pagaende &&

{pagaende}

} + {!avslutat && pagaende &&

{pagaende}

} {b.ejKontrollerat.slice(avslutat ? 0 : 1).map((e, i) => ( -

{e}

+

{e}

))}
@@ -246,8 +246,8 @@ export function DelatArendeVy({ {klipp.map((v, i) => (
- -
{v.beskrivning}
+ +
{v.beskrivning}
))}
@@ -257,8 +257,8 @@ export function DelatArendeVy({
{bilder.map((bild, i) => (
- -
{bild.beskrivning}
+ +
{bild.beskrivning}
))}
@@ -273,9 +273,9 @@ export function DelatArendeVy({ const h = p.handelse; if (h.typ !== "matvarde") return null; return ( - - {h.beskrivning} - + + {h.beskrivning} + {h.varde} {h.enhet ? ` ${h.enhet}` : ""} @@ -289,8 +289,8 @@ export function DelatArendeVy({ {kundposter.map((post) => ( -

- {tidKlockslag(post.tidpunkt)}{" "} +

+ {tidKlockslag(post.tidpunkt)}{" "} {handelseRubrik(post)}

))} @@ -305,13 +305,13 @@ export function DelatArendeVy({

{b.totalArbetstid}

{tidsfordelningsRader(arende, nu).map((r) => ( -

+

{r.label}: {r.tid}

))}
-

+

Case #{arende.nummer} · started {tidDatum(arende.skapad)} · generated from the case log

diff --git a/felsokning/app/src/felsokning/Mikrofon.tsx b/felsokning/app/src/felsokning/Mikrofon.tsx index 6cdc173..bac9dd7 100644 --- a/felsokning/app/src/felsokning/Mikrofon.tsx +++ b/felsokning/app/src/felsokning/Mikrofon.tsx @@ -48,10 +48,10 @@ export function MikrofonKnapp({ paText }: { paText: (text: string) => void }) { type="button" onClick={() => (lyssnar ? stoppa() : starta())} aria-label={lyssnar ? "Stop recording" : "Start voice input"} - className={`min-h-8 min-w-11 border px-3 text-[14px] font-semibold transition-colors ${ + className={`min-h-8 min-w-11 border px-4 text-[14px] font-semibold ${ lyssnar - ? "animate-pulse border-[#6E1414] bg-[#8B1A1A] text-white" - : "border-[#ADADAD] bg-white text-[#1A1A1A] hover:border-[#00437A]" + ? "border-[#8B1A1A] bg-[#8B1A1A] text-white" + : "border-[#D7DCE2] bg-white text-[#1B1E22] hover:border-[#005CA9]" }`} > {lyssnar ? "■" : } diff --git a/felsokning/app/src/felsokning/Slutsats.tsx b/felsokning/app/src/felsokning/Slutsats.tsx index c807a29..af41879 100644 --- a/felsokning/app/src/felsokning/Slutsats.tsx +++ b/felsokning/app/src/felsokning/Slutsats.tsx @@ -171,7 +171,7 @@ export function Slutsatspanel({ arende, skicka }: { arende: Arende; skicka: (h: > {etikett} -

+

{f.fraga}