@innspel/react-native 0.7.0 → 0.8.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/dist/index.d.cts CHANGED
@@ -101,7 +101,7 @@ interface ScreenshotAdapterOptions {
101
101
  declare function createScreenshotAdapter(captureRef: CaptureRefFn, options?: ScreenshotAdapterOptions): ScreenshotAdapter;
102
102
 
103
103
  /**
104
- * tokens.ts — GENERERT fra theme/theme.ts (avtrykk 9c17bc0e5f8c).
104
+ * tokens.ts — GENERERT fra theme/theme.ts (avtrykk 6a743a62a4fd).
105
105
  * Rediger aldri denne filen. Endre temaet i kilden og kjør
106
106
  * `node scripts/generate-tokens.ts`, som CI verifiserer med `--check`.
107
107
  *
@@ -109,7 +109,7 @@ declare function createScreenshotAdapter(captureRef: CaptureRefFn, options?: Scr
109
109
  * Widgeten lever inne i vertsappen og skal arve dens flate (DD-21); dette er
110
110
  * bunnen, ikke fasiten.
111
111
  *
112
- * 72 kontrastpar er målt mot WCAG AA i begge paletter, og generatoren
112
+ * 73 kontrastpar er målt mot WCAG AA i begge paletter, og generatoren
113
113
  * nekter å skrive hvis ett faller under kravet. Farge bærer aldri mening alene
114
114
  * — hver status har ikon og tekstetikett (DD-08).
115
115
  *
@@ -303,7 +303,9 @@ declare const screenRules: {
303
303
  readonly brushFill: "#E5007D";
304
304
  readonly autoMaskFill: "#101114";
305
305
  readonly autoMaskStroke: "#E5007D";
306
+ readonly autoMaskText: "#FFFFFF";
306
307
  readonly previewBackdrop: "#000000";
308
+ readonly qrBackdrop: "#FFFFFF";
307
309
  readonly brushWidth: 28;
308
310
  readonly textBlurRadius: 24;
309
311
  };
@@ -494,19 +496,26 @@ declare function createStorage(pakke: AsyncStorageLike): InnspelStorage;
494
496
  declare function createMemoryStorage(): InnspelStorage;
495
497
 
496
498
  /**
497
- * DD-22: `complete` heter «Rettet» i feilsporet og «Levert» i ønskesporet —
498
- * samme maskinstatus, to navn. Klienten velger navnet; serveren gjør det ikke.
499
+ * Statusen slik innsenderen ser den. ALT kommer fra `submissionStatus` i
500
+ * `theme/theme.ts`, gjennom den genererte mappa: navnet per spor (DD-22),
501
+ * setningen innsenderen får (DD-08), IKONNAVNET og tokennavnene for farge.
499
502
  *
500
- * DD-08 / «Styling» i CLAUDE.md: **farge bærer aldri mening alene.** Hver status
501
- * har ikon OG tekstetikett. `brand ↔ info` og `brand ↔ danger` er målt til under
502
- * 1,5 i kontrast mot hverandre av tema-generatoren — to statuser er altså ikke
503
- * skillbare på farge for alle, og etiketten er det som faktisk bærer meningen.
503
+ * Navn, farge og løfte sto hardkodet her OG i `@innspel/web` OG i panelet før
504
+ * 2026-09-14 og spriket (UX-gjennomgangen C5). Ikonet sto igjen som emoji til
505
+ * 2026-09-15, fordi Ionicons i React Native krever en peer-avhengighet — se
506
+ * «`react-native-svg` som peer i @innspel/react-native» i `tech-decisions.md`.
507
+ *
508
+ * DD-08 / «Styling» i CLAUDE.md: **farge bærer aldri mening alene.** `brand` og
509
+ * `info`, og `brand` og `danger`, er målt til under 1,5 i innbyrdes kontrast av
510
+ * tema-generatoren, så etiketten er det som faktisk bærer meningen.
504
511
  */
505
512
  interface StatusVisning {
513
+ /** Ionicons-navn fra temaet — aldri en emoji (brand-ui-guidelines). */
506
514
  ikon: string;
507
515
  etikett: string;
508
516
  /** Tokennavn i den aktive paletten, ikke en farge. */
509
- farge: 'info' | 'success' | 'warning' | 'neutral' | 'danger';
517
+ fg: string;
518
+ bg: string;
510
519
  lofte: string;
511
520
  }
512
521
  /**
@@ -520,26 +529,14 @@ declare function statusVisning(status: SubmissionStatus, type: SubmissionType, d
520
529
  /** Raden som venter på nett (DD-41). Den har ingen saksnummer og intet løfte om svar. */
521
530
  declare const venterVisning: StatusVisning;
522
531
 
523
- /**
524
- * Hver streng innsenderen ser, ett sted.
525
- *
526
- * Ordlyden er ikke fri: den er tegnet i `design/wireframes/innsending-widget.jsx`
527
- * og bundet av beslutninger. Løftene under er DD-08 og skal stå ORDRETT likt i
528
- * SDK-et og i panelet — en innsender som får «Svar innen 3. desember» i appen og
529
- * noe annet i portalen har fått to løfter.
530
- *
531
- * Norsk bokmål. Ingen leietakernavn: strengen som nevner avsenderen tar navnet
532
- * som parameter, siden pakken skal kunne brukes av hvem som helst.
533
- */
534
532
  declare const tekst: {
535
533
  readonly valgTittel: "Hva gjelder det?";
536
- readonly valgUnder: "Ett valg. Vi spør aldri om kategori eller alvorlighet.";
537
534
  readonly sporFeil: "Noe virker ikke";
538
- readonly sporFeilUnder: "Feilsporet — kontekst legges ved";
535
+ readonly sporFeilUnder: "Noe er galt eller virker rart";
539
536
  readonly sporOnske: "Jeg ønsker meg noe";
540
- readonly sporOnskeUnder: "Ønskesporet — aldri spørsmål om reproduksjon";
537
+ readonly sporOnskeUnder: "Noe du savner eller vil ha annerledes";
541
538
  readonly kjenteFeilTittelFeil: "Er det dette du ser?";
542
- readonly kjenteFeilUnderFeil: "«Ja» registrerer deg på saken. «Ligner» sender ditt eget med lenke.";
539
+ readonly kjenteFeilUnderFeil: "Kjenner du igjen en av disse?";
543
540
  readonly kjenteFeilTittelOnske: "Har noen ønsket dette?";
544
541
  readonly kjenteFeilUnderOnske: "Ett trykk legger deg til på ønsket — ingen ny sak.";
545
542
  readonly svarJa: "Ja, jeg også";
@@ -560,7 +557,7 @@ declare const tekst: {
560
557
  readonly placeholderFeil: "Hva skjedde? Hva forventet du?";
561
558
  readonly placeholderOnske: "Hva ønsker du deg?";
562
559
  readonly send: "Send";
563
- readonly nesteOnske: "Neste — sjekk om noen har ønsket dette";
560
+ readonly sender: "Sender …";
564
561
  /** DD-44: minimum tegn er det ENESTE kravet. */
565
562
  readonly forKort: (min: number) => string;
566
563
  readonly tellerFull: " — kort og konkret holder";
@@ -583,14 +580,15 @@ declare const tekst: {
583
580
  readonly tegnOver: "Tegn over";
584
581
  readonly maskerAllTekst: "Masker all tekst";
585
582
  readonly maskertAvAppen: "Maskert av appen";
586
- readonly maskertAvAppenHint: "Registrert privat view. Penselen kan ikke oppheve den.";
587
- readonly dittStrok: "▲ ditt strøk — maskert (kan angres med ett trykk)";
583
+ readonly maskertAvAppenHint: "Dette feltet er alltid dekket og kan ikke avdekkes.";
584
+ readonly dittStrok: "Trykk på et dekket felt for å angre.";
585
+ readonly angreSiste: "Angre siste";
586
+ readonly angreSisteA11y: "Angre det siste feltet du dekket";
588
587
  readonly allTekstHint: "Hele bildet er gjort uskarpt så tekst ikke kan leses. Layouten er synlig.";
589
588
  readonly fjernBildet: "Fjern bildet";
590
- readonly leggVedOgFortsett: "Legg ved og fortsett";
591
- readonly leggVedHintDD42: "Teksten sendes først; bildet lastes opp for seg.";
592
- readonly skjermbildeLagtVed: "Skjermbilde lagt ved — maskert";
593
- readonly fjernSkjermbilde: "Fjern skjermbildet";
589
+ readonly leggVed: "Legg ved";
590
+ readonly bildeLagtVed: "Bilde lagt ved";
591
+ readonly fjernSkjermbilde: "Fjern bildet";
594
592
  readonly sendHintMedBilde: "Teksten sendes først; bildet lastes opp for seg.";
595
593
  readonly skjermbildeFeilet: "kunne ikke ta skjermbilde. Du kan sende uten.";
596
594
  readonly skjermbildeA11y: (auto: number, egne: number, uskarpt: boolean) => string;
@@ -607,7 +605,6 @@ declare const tekst: {
607
605
  readonly kvitteringSendt: "Sendt";
608
606
  readonly kvitteringRegistrert: "Registrert";
609
607
  readonly kvitteringFeil: "Du får beskjed når den er rettet, eller hvis vi trenger mer.";
610
- readonly kvitteringOnske: "Vurderes innen 90 dager. Du får et personlig svar — også hvis det er nei.";
611
608
  readonly kvitteringJaOgsa: "Du får beskjed når den er rettet.";
612
609
  readonly saksnummer: (nr: string) => string;
613
610
  readonly tilbakeTilAppen: "Tilbake til appen";
@@ -616,22 +613,26 @@ declare const tekst: {
616
613
  readonly tekstenErLagret: "Teksten din er lagret.";
617
614
  readonly vedleggFeiletBanner: "Bildet ble ikke lastet opp. Saken er sendt uten det — vil du, kan du sende et nytt innspill med bilde.";
618
615
  readonly saksnummerUtenVedlegg: (nr: string) => string;
619
- readonly offlineTittel: "Ingen nett";
616
+ readonly koKvitteringTittel: "Lagret — sendes når du er på nett";
620
617
  readonly offlineBanner: "Ingen nett. Lagres og sendes automatisk — du ser det under «Mine innspill» til det er sendt.";
621
- readonly offlineLagre: "Lagre — sendes automatisk";
618
+ readonly offlineLagre: "Lagre — sendes når du er på nett";
622
619
  /** DD-41: et skjermbilde køes aldri. */
623
620
  readonly offlineUtenBilde: "Skjermbilde kan ikke legges ved uten nett. Teksten sendes; bildet ble ikke lagret.";
624
621
  readonly sendefeilBanner: (arsak: string) => string;
625
622
  readonly provIgjen: "Prøv igjen";
626
623
  readonly mineTittel: "Mine innspill";
627
- readonly mineUnder: "Status og hva du kan vente deg — samme løfte som i kvitteringen.";
624
+ readonly mineUnder: "Status og hva du kan vente deg.";
628
625
  readonly mineTom: "Du har ikke sendt noe ennå.";
629
626
  readonly mineIkkeSendt: "Ikke sendt ennå";
630
627
  readonly mineSak: (nr: string) => string;
628
+ /** «Feil · sak 2041» — sporet først, aldri rå id og aldri kontraktens type (DD-50). */
629
+ readonly sakHode: (spor: string, nr: string) => string;
631
630
  readonly bildeFjernet: "Bildet er fjernet.";
632
631
  readonly svarFra: (leietaker: string) => string;
633
632
  readonly svarFraGenerisk: "Svar";
634
633
  readonly sendNytt: "Send nytt innspill";
634
+ /** Tom tilstand: det finnes ikke noe «nytt» å sende når ingenting er sendt. */
635
+ readonly sendForste: "Send innspill";
635
636
  readonly invitasjonRegion: "Invitasjon til betaprogram";
636
637
  readonly invitasjonHva: (navn: string) => string;
637
638
  readonly invitasjonKontakter: (maks: number) => string;
@@ -670,8 +671,8 @@ declare const tekst: {
670
671
  readonly oppgaveGjortMed: (utfall: string) => string;
671
672
  readonly hvordanGikkDet: "Hvordan gikk det?";
672
673
  readonly utfallFungerte: "Fungerte";
673
- readonly utfallDelvis: "Delvis";
674
- readonly utfallIkke: "Ikke";
674
+ readonly utfallDelvis: "Fungerte delvis";
675
+ readonly utfallIkke: "Fungerte ikke";
675
676
  readonly setningLabel: "Vil du si én setning om det? (valgfritt)";
676
677
  readonly setningPlaceholder: "Kopien kom, men rullesjefen manglet på torsdag.";
677
678
  readonly lagre: "Lagre";
@@ -690,24 +691,16 @@ declare const tekst: {
690
691
  readonly tilbake: "Tilbake";
691
692
  readonly lukk: "Lukk";
692
693
  readonly venterPaaNett: "Venter på nett — sendes automatisk";
694
+ readonly feil: "feil";
695
+ readonly onske: "ønske";
693
696
  };
694
697
  /**
695
- * Løftet per status (DD-08). Samme streng i SDK og panel. Det eneste tidsløftet
696
- * er svarfristen som DATO (DD-28) — aldri «innen X dager», som ville betydd noe
697
- * nytt hver gang innsenderen leser det.
698
+ * Løftene som IKKE hører til en innsendingsstatus. Statusenes løfter står i
699
+ * `submissionStatus` i `theme/theme.ts` og leses gjennom `status.ts` — det var
700
+ * tre kopier av dem før 2026-09-14 (UX-gjennomgangen C5).
698
701
  */
699
702
  declare const lofte: {
700
703
  readonly venterNett: "Sendes automatisk når du er på nett — kvitteringen kommer da.";
701
- readonly vurderes: (frist: string) => string;
702
- readonly vurderesUtenFrist: "Du får svar — også hvis det er nei.";
703
- readonly bygges: "Du får beskjed når den er rettet.";
704
- readonly planlagt: "Du får beskjed når den er rettet.";
705
- readonly rettet: "Ferdig. Ser du feilen igjen, send et nytt innspill.";
706
- readonly levert: "Ferdig. Takk for ønsket.";
707
- readonly ny: "Vi har fått den. Du hører fra oss.";
708
- readonly kjentFeil: "Kjent feil. Du får beskjed når den er rettet.";
709
- readonly duplikat: "Slått sammen med et innspill som ligner.";
710
- readonly avvist: "Vi har svart på denne.";
711
704
  };
712
705
 
713
706
  export { type AsyncStorageLike, type CaptureOptions, type CaptureRefFn, type ImageStepNote, type InnspelColors, InnspelPrivate, InnspelProgram, InnspelProvider, type InnspelTheme, type PartialTheme, type PickImageFn, type ScreenshotAdapter, type ScreenshotAdapterOptions, type ScreenshotCapture, type StatusVisning, type Tema, byggTema, createMemoryStorage, createScreenshotAdapter, createStorage, t as darkTokens, light, lofte, screenRules, statusVisning, tekst, useInnspel, useTema, venterVisning };
package/dist/index.d.ts CHANGED
@@ -101,7 +101,7 @@ interface ScreenshotAdapterOptions {
101
101
  declare function createScreenshotAdapter(captureRef: CaptureRefFn, options?: ScreenshotAdapterOptions): ScreenshotAdapter;
102
102
 
103
103
  /**
104
- * tokens.ts — GENERERT fra theme/theme.ts (avtrykk 9c17bc0e5f8c).
104
+ * tokens.ts — GENERERT fra theme/theme.ts (avtrykk 6a743a62a4fd).
105
105
  * Rediger aldri denne filen. Endre temaet i kilden og kjør
106
106
  * `node scripts/generate-tokens.ts`, som CI verifiserer med `--check`.
107
107
  *
@@ -109,7 +109,7 @@ declare function createScreenshotAdapter(captureRef: CaptureRefFn, options?: Scr
109
109
  * Widgeten lever inne i vertsappen og skal arve dens flate (DD-21); dette er
110
110
  * bunnen, ikke fasiten.
111
111
  *
112
- * 72 kontrastpar er målt mot WCAG AA i begge paletter, og generatoren
112
+ * 73 kontrastpar er målt mot WCAG AA i begge paletter, og generatoren
113
113
  * nekter å skrive hvis ett faller under kravet. Farge bærer aldri mening alene
114
114
  * — hver status har ikon og tekstetikett (DD-08).
115
115
  *
@@ -303,7 +303,9 @@ declare const screenRules: {
303
303
  readonly brushFill: "#E5007D";
304
304
  readonly autoMaskFill: "#101114";
305
305
  readonly autoMaskStroke: "#E5007D";
306
+ readonly autoMaskText: "#FFFFFF";
306
307
  readonly previewBackdrop: "#000000";
308
+ readonly qrBackdrop: "#FFFFFF";
307
309
  readonly brushWidth: 28;
308
310
  readonly textBlurRadius: 24;
309
311
  };
@@ -494,19 +496,26 @@ declare function createStorage(pakke: AsyncStorageLike): InnspelStorage;
494
496
  declare function createMemoryStorage(): InnspelStorage;
495
497
 
496
498
  /**
497
- * DD-22: `complete` heter «Rettet» i feilsporet og «Levert» i ønskesporet —
498
- * samme maskinstatus, to navn. Klienten velger navnet; serveren gjør det ikke.
499
+ * Statusen slik innsenderen ser den. ALT kommer fra `submissionStatus` i
500
+ * `theme/theme.ts`, gjennom den genererte mappa: navnet per spor (DD-22),
501
+ * setningen innsenderen får (DD-08), IKONNAVNET og tokennavnene for farge.
499
502
  *
500
- * DD-08 / «Styling» i CLAUDE.md: **farge bærer aldri mening alene.** Hver status
501
- * har ikon OG tekstetikett. `brand ↔ info` og `brand ↔ danger` er målt til under
502
- * 1,5 i kontrast mot hverandre av tema-generatoren — to statuser er altså ikke
503
- * skillbare på farge for alle, og etiketten er det som faktisk bærer meningen.
503
+ * Navn, farge og løfte sto hardkodet her OG i `@innspel/web` OG i panelet før
504
+ * 2026-09-14 og spriket (UX-gjennomgangen C5). Ikonet sto igjen som emoji til
505
+ * 2026-09-15, fordi Ionicons i React Native krever en peer-avhengighet — se
506
+ * «`react-native-svg` som peer i @innspel/react-native» i `tech-decisions.md`.
507
+ *
508
+ * DD-08 / «Styling» i CLAUDE.md: **farge bærer aldri mening alene.** `brand` og
509
+ * `info`, og `brand` og `danger`, er målt til under 1,5 i innbyrdes kontrast av
510
+ * tema-generatoren, så etiketten er det som faktisk bærer meningen.
504
511
  */
505
512
  interface StatusVisning {
513
+ /** Ionicons-navn fra temaet — aldri en emoji (brand-ui-guidelines). */
506
514
  ikon: string;
507
515
  etikett: string;
508
516
  /** Tokennavn i den aktive paletten, ikke en farge. */
509
- farge: 'info' | 'success' | 'warning' | 'neutral' | 'danger';
517
+ fg: string;
518
+ bg: string;
510
519
  lofte: string;
511
520
  }
512
521
  /**
@@ -520,26 +529,14 @@ declare function statusVisning(status: SubmissionStatus, type: SubmissionType, d
520
529
  /** Raden som venter på nett (DD-41). Den har ingen saksnummer og intet løfte om svar. */
521
530
  declare const venterVisning: StatusVisning;
522
531
 
523
- /**
524
- * Hver streng innsenderen ser, ett sted.
525
- *
526
- * Ordlyden er ikke fri: den er tegnet i `design/wireframes/innsending-widget.jsx`
527
- * og bundet av beslutninger. Løftene under er DD-08 og skal stå ORDRETT likt i
528
- * SDK-et og i panelet — en innsender som får «Svar innen 3. desember» i appen og
529
- * noe annet i portalen har fått to løfter.
530
- *
531
- * Norsk bokmål. Ingen leietakernavn: strengen som nevner avsenderen tar navnet
532
- * som parameter, siden pakken skal kunne brukes av hvem som helst.
533
- */
534
532
  declare const tekst: {
535
533
  readonly valgTittel: "Hva gjelder det?";
536
- readonly valgUnder: "Ett valg. Vi spør aldri om kategori eller alvorlighet.";
537
534
  readonly sporFeil: "Noe virker ikke";
538
- readonly sporFeilUnder: "Feilsporet — kontekst legges ved";
535
+ readonly sporFeilUnder: "Noe er galt eller virker rart";
539
536
  readonly sporOnske: "Jeg ønsker meg noe";
540
- readonly sporOnskeUnder: "Ønskesporet — aldri spørsmål om reproduksjon";
537
+ readonly sporOnskeUnder: "Noe du savner eller vil ha annerledes";
541
538
  readonly kjenteFeilTittelFeil: "Er det dette du ser?";
542
- readonly kjenteFeilUnderFeil: "«Ja» registrerer deg på saken. «Ligner» sender ditt eget med lenke.";
539
+ readonly kjenteFeilUnderFeil: "Kjenner du igjen en av disse?";
543
540
  readonly kjenteFeilTittelOnske: "Har noen ønsket dette?";
544
541
  readonly kjenteFeilUnderOnske: "Ett trykk legger deg til på ønsket — ingen ny sak.";
545
542
  readonly svarJa: "Ja, jeg også";
@@ -560,7 +557,7 @@ declare const tekst: {
560
557
  readonly placeholderFeil: "Hva skjedde? Hva forventet du?";
561
558
  readonly placeholderOnske: "Hva ønsker du deg?";
562
559
  readonly send: "Send";
563
- readonly nesteOnske: "Neste — sjekk om noen har ønsket dette";
560
+ readonly sender: "Sender …";
564
561
  /** DD-44: minimum tegn er det ENESTE kravet. */
565
562
  readonly forKort: (min: number) => string;
566
563
  readonly tellerFull: " — kort og konkret holder";
@@ -583,14 +580,15 @@ declare const tekst: {
583
580
  readonly tegnOver: "Tegn over";
584
581
  readonly maskerAllTekst: "Masker all tekst";
585
582
  readonly maskertAvAppen: "Maskert av appen";
586
- readonly maskertAvAppenHint: "Registrert privat view. Penselen kan ikke oppheve den.";
587
- readonly dittStrok: "▲ ditt strøk — maskert (kan angres med ett trykk)";
583
+ readonly maskertAvAppenHint: "Dette feltet er alltid dekket og kan ikke avdekkes.";
584
+ readonly dittStrok: "Trykk på et dekket felt for å angre.";
585
+ readonly angreSiste: "Angre siste";
586
+ readonly angreSisteA11y: "Angre det siste feltet du dekket";
588
587
  readonly allTekstHint: "Hele bildet er gjort uskarpt så tekst ikke kan leses. Layouten er synlig.";
589
588
  readonly fjernBildet: "Fjern bildet";
590
- readonly leggVedOgFortsett: "Legg ved og fortsett";
591
- readonly leggVedHintDD42: "Teksten sendes først; bildet lastes opp for seg.";
592
- readonly skjermbildeLagtVed: "Skjermbilde lagt ved — maskert";
593
- readonly fjernSkjermbilde: "Fjern skjermbildet";
589
+ readonly leggVed: "Legg ved";
590
+ readonly bildeLagtVed: "Bilde lagt ved";
591
+ readonly fjernSkjermbilde: "Fjern bildet";
594
592
  readonly sendHintMedBilde: "Teksten sendes først; bildet lastes opp for seg.";
595
593
  readonly skjermbildeFeilet: "kunne ikke ta skjermbilde. Du kan sende uten.";
596
594
  readonly skjermbildeA11y: (auto: number, egne: number, uskarpt: boolean) => string;
@@ -607,7 +605,6 @@ declare const tekst: {
607
605
  readonly kvitteringSendt: "Sendt";
608
606
  readonly kvitteringRegistrert: "Registrert";
609
607
  readonly kvitteringFeil: "Du får beskjed når den er rettet, eller hvis vi trenger mer.";
610
- readonly kvitteringOnske: "Vurderes innen 90 dager. Du får et personlig svar — også hvis det er nei.";
611
608
  readonly kvitteringJaOgsa: "Du får beskjed når den er rettet.";
612
609
  readonly saksnummer: (nr: string) => string;
613
610
  readonly tilbakeTilAppen: "Tilbake til appen";
@@ -616,22 +613,26 @@ declare const tekst: {
616
613
  readonly tekstenErLagret: "Teksten din er lagret.";
617
614
  readonly vedleggFeiletBanner: "Bildet ble ikke lastet opp. Saken er sendt uten det — vil du, kan du sende et nytt innspill med bilde.";
618
615
  readonly saksnummerUtenVedlegg: (nr: string) => string;
619
- readonly offlineTittel: "Ingen nett";
616
+ readonly koKvitteringTittel: "Lagret — sendes når du er på nett";
620
617
  readonly offlineBanner: "Ingen nett. Lagres og sendes automatisk — du ser det under «Mine innspill» til det er sendt.";
621
- readonly offlineLagre: "Lagre — sendes automatisk";
618
+ readonly offlineLagre: "Lagre — sendes når du er på nett";
622
619
  /** DD-41: et skjermbilde køes aldri. */
623
620
  readonly offlineUtenBilde: "Skjermbilde kan ikke legges ved uten nett. Teksten sendes; bildet ble ikke lagret.";
624
621
  readonly sendefeilBanner: (arsak: string) => string;
625
622
  readonly provIgjen: "Prøv igjen";
626
623
  readonly mineTittel: "Mine innspill";
627
- readonly mineUnder: "Status og hva du kan vente deg — samme løfte som i kvitteringen.";
624
+ readonly mineUnder: "Status og hva du kan vente deg.";
628
625
  readonly mineTom: "Du har ikke sendt noe ennå.";
629
626
  readonly mineIkkeSendt: "Ikke sendt ennå";
630
627
  readonly mineSak: (nr: string) => string;
628
+ /** «Feil · sak 2041» — sporet først, aldri rå id og aldri kontraktens type (DD-50). */
629
+ readonly sakHode: (spor: string, nr: string) => string;
631
630
  readonly bildeFjernet: "Bildet er fjernet.";
632
631
  readonly svarFra: (leietaker: string) => string;
633
632
  readonly svarFraGenerisk: "Svar";
634
633
  readonly sendNytt: "Send nytt innspill";
634
+ /** Tom tilstand: det finnes ikke noe «nytt» å sende når ingenting er sendt. */
635
+ readonly sendForste: "Send innspill";
635
636
  readonly invitasjonRegion: "Invitasjon til betaprogram";
636
637
  readonly invitasjonHva: (navn: string) => string;
637
638
  readonly invitasjonKontakter: (maks: number) => string;
@@ -670,8 +671,8 @@ declare const tekst: {
670
671
  readonly oppgaveGjortMed: (utfall: string) => string;
671
672
  readonly hvordanGikkDet: "Hvordan gikk det?";
672
673
  readonly utfallFungerte: "Fungerte";
673
- readonly utfallDelvis: "Delvis";
674
- readonly utfallIkke: "Ikke";
674
+ readonly utfallDelvis: "Fungerte delvis";
675
+ readonly utfallIkke: "Fungerte ikke";
675
676
  readonly setningLabel: "Vil du si én setning om det? (valgfritt)";
676
677
  readonly setningPlaceholder: "Kopien kom, men rullesjefen manglet på torsdag.";
677
678
  readonly lagre: "Lagre";
@@ -690,24 +691,16 @@ declare const tekst: {
690
691
  readonly tilbake: "Tilbake";
691
692
  readonly lukk: "Lukk";
692
693
  readonly venterPaaNett: "Venter på nett — sendes automatisk";
694
+ readonly feil: "feil";
695
+ readonly onske: "ønske";
693
696
  };
694
697
  /**
695
- * Løftet per status (DD-08). Samme streng i SDK og panel. Det eneste tidsløftet
696
- * er svarfristen som DATO (DD-28) — aldri «innen X dager», som ville betydd noe
697
- * nytt hver gang innsenderen leser det.
698
+ * Løftene som IKKE hører til en innsendingsstatus. Statusenes løfter står i
699
+ * `submissionStatus` i `theme/theme.ts` og leses gjennom `status.ts` — det var
700
+ * tre kopier av dem før 2026-09-14 (UX-gjennomgangen C5).
698
701
  */
699
702
  declare const lofte: {
700
703
  readonly venterNett: "Sendes automatisk når du er på nett — kvitteringen kommer da.";
701
- readonly vurderes: (frist: string) => string;
702
- readonly vurderesUtenFrist: "Du får svar — også hvis det er nei.";
703
- readonly bygges: "Du får beskjed når den er rettet.";
704
- readonly planlagt: "Du får beskjed når den er rettet.";
705
- readonly rettet: "Ferdig. Ser du feilen igjen, send et nytt innspill.";
706
- readonly levert: "Ferdig. Takk for ønsket.";
707
- readonly ny: "Vi har fått den. Du hører fra oss.";
708
- readonly kjentFeil: "Kjent feil. Du får beskjed når den er rettet.";
709
- readonly duplikat: "Slått sammen med et innspill som ligner.";
710
- readonly avvist: "Vi har svart på denne.";
711
704
  };
712
705
 
713
706
  export { type AsyncStorageLike, type CaptureOptions, type CaptureRefFn, type ImageStepNote, type InnspelColors, InnspelPrivate, InnspelProgram, InnspelProvider, type InnspelTheme, type PartialTheme, type PickImageFn, type ScreenshotAdapter, type ScreenshotAdapterOptions, type ScreenshotCapture, type StatusVisning, type Tema, byggTema, createMemoryStorage, createScreenshotAdapter, createStorage, t as darkTokens, light, lofte, screenRules, statusVisning, tekst, useInnspel, useTema, venterVisning };