@semiont/react-ui 0.5.32 → 0.5.33

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.
Files changed (72) hide show
  1. package/dist/{PdfAnnotationCanvas.client-LSH3PZPY.js → PdfAnnotationCanvas.client-7EYCQF6V.js} +3 -3
  2. package/dist/{ar-AZBRADEB.js → ar-PYOTZERT.js} +6 -3
  3. package/dist/{bn-CCEW6AOS.js → bn-5SYTY67O.js} +6 -3
  4. package/dist/{chunk-SDKFZLEX.js → chunk-BADNZBAL.js} +6 -3
  5. package/dist/{chunk-G4VHL4UA.js → chunk-D3TOB356.js} +31 -31
  6. package/dist/{cs-HXPF2CTE.js → cs-BCA77OVY.js} +6 -3
  7. package/dist/{da-K5NTK7LH.js → da-LFLFOUMU.js} +6 -3
  8. package/dist/{de-GMRQEDZI.js → de-55TAX5Q2.js} +6 -3
  9. package/dist/{el-EUB4CI4G.js → el-PZ7OBJZD.js} +6 -3
  10. package/dist/{en-R5XA26NF.js → en-H4MQUZWO.js} +2 -2
  11. package/dist/{es-Z32DAZ6W.js → es-PSVJOIBC.js} +6 -3
  12. package/dist/{fa-G7HN6B32.js → fa-CFR54IER.js} +6 -3
  13. package/dist/{fi-3YBLZO7I.js → fi-E7YPW5B3.js} +6 -3
  14. package/dist/{fr-VUBH7BBS.js → fr-4OOHYZSV.js} +6 -3
  15. package/dist/{he-WQQEY26B.js → he-TWJR3AKD.js} +6 -3
  16. package/dist/{hi-HJZ6W4JB.js → hi-F6RRLYIK.js} +6 -3
  17. package/dist/{id-ZOGZ37MI.js → id-JRC3ZLJW.js} +6 -3
  18. package/dist/index.css +4 -1
  19. package/dist/index.d.ts +8 -0
  20. package/dist/index.js +13 -5
  21. package/dist/{it-DT6UW66F.js → it-IWYDLO43.js} +6 -3
  22. package/dist/{ja-RUKQCOLO.js → ja-YETT5V5B.js} +6 -3
  23. package/dist/{ko-ZH5ADKZM.js → ko-YX5NVOG4.js} +6 -3
  24. package/dist/{ms-Y2AFPZTU.js → ms-3FAOUVYS.js} +6 -3
  25. package/dist/{nl-OQEWIXNA.js → nl-UYCI5TXI.js} +6 -3
  26. package/dist/{no-KPAYJZWY.js → no-ZR3EQ2NI.js} +6 -3
  27. package/dist/{pl-WSXK2UUD.js → pl-FPLBWLWX.js} +6 -3
  28. package/dist/{pt-NWRJRUCK.js → pt-JOJPVHDL.js} +6 -3
  29. package/dist/{ro-3CGVMOC6.js → ro-WHNIABHY.js} +6 -3
  30. package/dist/{sv-HGSEBA7S.js → sv-KWSW2ERR.js} +6 -3
  31. package/dist/test-utils.js +2 -2
  32. package/dist/{th-NZ4G352Z.js → th-5OOFP4VL.js} +6 -3
  33. package/dist/{tr-LGGS4DLW.js → tr-NJUOJ2KQ.js} +6 -3
  34. package/dist/{uk-AIX536L4.js → uk-MFJCRRB2.js} +6 -3
  35. package/dist/{vi-V6CVQZLQ.js → vi-TFR4NPYP.js} +6 -3
  36. package/dist/{zh-AGKPGI3L.js → zh-47SIEPEL.js} +6 -3
  37. package/package.json +5 -5
  38. package/src/components/AssistProgress.tsx +16 -0
  39. package/src/components/__tests__/AssistProgress.denominator.test.tsx +78 -0
  40. package/src/components/resource/panels/AssistSection.css +4 -1
  41. package/src/components/resource/panels/ReferencesPanel.tsx +2 -0
  42. package/src/components/resource/panels/UnifiedAnnotationsPanel.css +1 -1
  43. package/src/components/resource/panels/__tests__/HighlightPanel.out-of-order.test.tsx +99 -0
  44. package/translations/ar.json +5 -2
  45. package/translations/bn.json +5 -2
  46. package/translations/cs.json +5 -2
  47. package/translations/da.json +5 -2
  48. package/translations/de.json +5 -2
  49. package/translations/el.json +5 -2
  50. package/translations/en.json +5 -2
  51. package/translations/es.json +5 -2
  52. package/translations/fa.json +5 -2
  53. package/translations/fi.json +5 -2
  54. package/translations/fr.json +5 -2
  55. package/translations/he.json +5 -2
  56. package/translations/hi.json +5 -2
  57. package/translations/id.json +5 -2
  58. package/translations/it.json +5 -2
  59. package/translations/ja.json +5 -2
  60. package/translations/ko.json +5 -2
  61. package/translations/ms.json +5 -2
  62. package/translations/nl.json +5 -2
  63. package/translations/no.json +5 -2
  64. package/translations/pl.json +5 -2
  65. package/translations/pt.json +5 -2
  66. package/translations/ro.json +5 -2
  67. package/translations/sv.json +5 -2
  68. package/translations/th.json +5 -2
  69. package/translations/tr.json +5 -2
  70. package/translations/uk.json +5 -2
  71. package/translations/vi.json +5 -2
  72. package/translations/zh.json +5 -2
@@ -277,7 +277,8 @@ var ReferencesPanel = {
277
277
  noText: "Nessun testo",
278
278
  incomingReferencesFailed: "Impossibile caricare i riferimenti in entrata.",
279
279
  retry: "Riprova",
280
- entityTypesFailed: "Impossibile caricare i tipi di entit\xE0."
280
+ entityTypesFailed: "Impossibile caricare i tipi di entit\xE0.",
281
+ tally: "{{found}} di ~{{expected}} entit\xE0"
281
282
  };
282
283
  var KeyboardShortcuts = {
283
284
  title: "Scorciatoie da Tastiera",
@@ -491,7 +492,9 @@ var OutcomeToasts = {
491
492
  decline_encrypted: "Questo PDF \xE8 protetto da password e il testo non \xE8 leggibile.",
492
493
  decline_corrupt: "Impossibile leggere questo PDF \u2014 il file potrebbe essere danneggiato.",
493
494
  "decline_too-large": "Questo documento \xE8 troppo grande per estrarne il testo.",
494
- decline_empty: "Questo documento non contiene testo da annotare."
495
+ decline_empty: "Questo documento non contiene testo da annotare.",
496
+ annotationCompletePartial: "Rilevamento terminato in modo incompleto \u2014 {{pieces}} parte/i sottostimate",
497
+ annotationFailedPartial: "Rilevamento non riuscito \u2014 i risultati di {{kept}} tipi completati sono stati conservati"
495
498
  };
496
499
  var it_default = {
497
500
  AssistProgress,
@@ -542,4 +545,4 @@ export {
542
545
  UnifiedAnnotationsPanel,
543
546
  it_default as default
544
547
  };
545
- //# sourceMappingURL=it-DT6UW66F.js.map
548
+ //# sourceMappingURL=it-IWYDLO43.js.map
@@ -277,7 +277,8 @@ var ReferencesPanel = {
277
277
  noText: "\u30C6\u30AD\u30B9\u30C8\u306A\u3057",
278
278
  incomingReferencesFailed: "\u53D7\u4FE1\u30EA\u30D5\u30A1\u30EC\u30F3\u30B9\u3092\u8AAD\u307F\u8FBC\u3081\u307E\u305B\u3093\u3067\u3057\u305F\u3002",
279
279
  retry: "\u518D\u8A66\u884C",
280
- entityTypesFailed: "\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u30BF\u30A4\u30D7\u3092\u8AAD\u307F\u8FBC\u3081\u307E\u305B\u3093\u3067\u3057\u305F\u3002"
280
+ entityTypesFailed: "\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u30BF\u30A4\u30D7\u3092\u8AAD\u307F\u8FBC\u3081\u307E\u305B\u3093\u3067\u3057\u305F\u3002",
281
+ tally: "{{found}} / \u7D04{{expected}} \u4EF6\u306E\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3"
281
282
  };
282
283
  var KeyboardShortcuts = {
283
284
  title: "\u30AD\u30FC\u30DC\u30FC\u30C9\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8",
@@ -491,7 +492,9 @@ var OutcomeToasts = {
491
492
  decline_encrypted: "\u3053\u306E PDF \u306F\u30D1\u30B9\u30EF\u30FC\u30C9\u4FDD\u8B77\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u3001\u30C6\u30AD\u30B9\u30C8\u3092\u8AAD\u307F\u53D6\u308C\u307E\u305B\u3093\u3002",
492
493
  decline_corrupt: "\u3053\u306E PDF \u3092\u8AAD\u307F\u53D6\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u30D5\u30A1\u30A4\u30EB\u304C\u7834\u640D\u3057\u3066\u3044\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002",
493
494
  "decline_too-large": "\u3053\u306E\u6587\u66F8\u306F\u5927\u304D\u3059\u304E\u3066\u30C6\u30AD\u30B9\u30C8\u3092\u62BD\u51FA\u3067\u304D\u307E\u305B\u3093\u3002",
494
- decline_empty: "\u3053\u306E\u6587\u66F8\u306B\u306F\u6CE8\u91C8\u3092\u4ED8\u3051\u308B\u30C6\u30AD\u30B9\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\u3002"
495
+ decline_empty: "\u3053\u306E\u6587\u66F8\u306B\u306F\u6CE8\u91C8\u3092\u4ED8\u3051\u308B\u30C6\u30AD\u30B9\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\u3002",
496
+ annotationCompletePartial: "\u691C\u51FA\u306F\u4E0D\u5B8C\u5168\u306B\u7D42\u4E86\u3057\u307E\u3057\u305F \u2014 {{pieces}} \u4EF6\u304C\u904E\u5C11\u5831\u544A",
497
+ annotationFailedPartial: "\u691C\u51FA\u306B\u5931\u6557\u3057\u307E\u3057\u305F \u2014 \u5B8C\u4E86\u3057\u305F {{kept}} \u7A2E\u985E\u306E\u7D50\u679C\u306F\u4FDD\u6301\u3055\u308C\u307E\u3059"
495
498
  };
496
499
  var ja_default = {
497
500
  AssistProgress,
@@ -542,4 +545,4 @@ export {
542
545
  UnifiedAnnotationsPanel,
543
546
  ja_default as default
544
547
  };
545
- //# sourceMappingURL=ja-RUKQCOLO.js.map
548
+ //# sourceMappingURL=ja-YETT5V5B.js.map
@@ -277,7 +277,8 @@ var ReferencesPanel = {
277
277
  noText: "\uD14D\uC2A4\uD2B8 \uC5C6\uC74C",
278
278
  incomingReferencesFailed: "\uC218\uC2E0 \uCC38\uC870\uB97C \uBD88\uB7EC\uC62C \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.",
279
279
  retry: "\uB2E4\uC2DC \uC2DC\uB3C4",
280
- entityTypesFailed: "\uAC1C\uCCB4 \uC720\uD615\uC744 \uBD88\uB7EC\uC62C \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."
280
+ entityTypesFailed: "\uAC1C\uCCB4 \uC720\uD615\uC744 \uBD88\uB7EC\uC62C \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.",
281
+ tally: "\uC57D {{expected}}\uAC1C \uC911 {{found}}\uAC1C \uC5D4\uD2F0\uD2F0"
281
282
  };
282
283
  var KeyboardShortcuts = {
283
284
  title: "\uD0A4\uBCF4\uB4DC \uB2E8\uCD95\uD0A4",
@@ -491,7 +492,9 @@ var OutcomeToasts = {
491
492
  decline_encrypted: "\uC774 PDF\uB294 \uC554\uD638\uB85C \uBCF4\uD638\uB418\uC5B4 \uD14D\uC2A4\uD2B8\uB97C \uC77D\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.",
492
493
  decline_corrupt: "\uC774 PDF\uB97C \uC77D\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4 \u2014 \uD30C\uC77C\uC774 \uC190\uC0C1\uB418\uC5C8\uC744 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",
493
494
  "decline_too-large": "\uC774 \uBB38\uC11C\uB294 \uB108\uBB34 \uCEE4\uC11C \uD14D\uC2A4\uD2B8\uB97C \uCD94\uCD9C\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.",
494
- decline_empty: "\uC774 \uBB38\uC11C\uC5D0\uB294 \uC8FC\uC11D\uC744 \uB2EC \uD14D\uC2A4\uD2B8\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4."
495
+ decline_empty: "\uC774 \uBB38\uC11C\uC5D0\uB294 \uC8FC\uC11D\uC744 \uB2EC \uD14D\uC2A4\uD2B8\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",
496
+ annotationCompletePartial: "\uAC10\uC9C0\uAC00 \uBD88\uC644\uC804\uD558\uAC8C \uB05D\uB0AC\uC2B5\uB2C8\uB2E4 \u2014 {{pieces}}\uAC1C \uACFC\uC18C \uBCF4\uACE0\uB428",
497
+ annotationFailedPartial: "\uAC10\uC9C0 \uC2E4\uD328 \u2014 \uC644\uB8CC\uB41C {{kept}}\uAC1C \uC720\uD615\uC758 \uACB0\uACFC\uB294 \uC720\uC9C0\uB429\uB2C8\uB2E4"
495
498
  };
496
499
  var ko_default = {
497
500
  AssistProgress,
@@ -542,4 +545,4 @@ export {
542
545
  UnifiedAnnotationsPanel,
543
546
  ko_default as default
544
547
  };
545
- //# sourceMappingURL=ko-ZH5ADKZM.js.map
548
+ //# sourceMappingURL=ko-YX5NVOG4.js.map
@@ -277,7 +277,8 @@ var ReferencesPanel = {
277
277
  noText: "Tiada teks",
278
278
  incomingReferencesFailed: "Tidak dapat memuatkan rujukan masuk.",
279
279
  retry: "Cuba lagi",
280
- entityTypesFailed: "Tidak dapat memuatkan jenis entiti."
280
+ entityTypesFailed: "Tidak dapat memuatkan jenis entiti.",
281
+ tally: "{{found}} daripada ~{{expected}} entiti"
281
282
  };
282
283
  var KeyboardShortcuts = {
283
284
  title: "Pintasan Papan Kekunci",
@@ -491,7 +492,9 @@ var OutcomeToasts = {
491
492
  decline_encrypted: "PDF ini dilindungi kata laluan, teksnya tidak boleh dibaca.",
492
493
  decline_corrupt: "PDF ini tidak dapat dibaca \u2014 fail mungkin rosak.",
493
494
  "decline_too-large": "Dokumen ini terlalu besar untuk mengekstrak teks.",
494
- decline_empty: "Dokumen ini tiada teks untuk dianotasi."
495
+ decline_empty: "Dokumen ini tiada teks untuk dianotasi.",
496
+ annotationCompletePartial: "Pengesanan tamat tidak lengkap \u2014 {{pieces}} bahagian kurang dilaporkan",
497
+ annotationFailedPartial: "Pengesanan gagal \u2014 penemuan daripada {{kept}} jenis yang selesai dikekalkan"
495
498
  };
496
499
  var ms_default = {
497
500
  AssistProgress,
@@ -542,4 +545,4 @@ export {
542
545
  UnifiedAnnotationsPanel,
543
546
  ms_default as default
544
547
  };
545
- //# sourceMappingURL=ms-Y2AFPZTU.js.map
548
+ //# sourceMappingURL=ms-3FAOUVYS.js.map
@@ -277,7 +277,8 @@ var ReferencesPanel = {
277
277
  noText: "Geen tekst",
278
278
  incomingReferencesFailed: "Kan de inkomende referenties niet laden.",
279
279
  retry: "Opnieuw proberen",
280
- entityTypesFailed: "Kan de entiteitstypen niet laden."
280
+ entityTypesFailed: "Kan de entiteitstypen niet laden.",
281
+ tally: "{{found}} van ~{{expected}} entiteiten"
281
282
  };
282
283
  var KeyboardShortcuts = {
283
284
  title: "Sneltoetsen",
@@ -491,7 +492,9 @@ var OutcomeToasts = {
491
492
  decline_encrypted: "Deze PDF is met een wachtwoord beveiligd; de tekst is onleesbaar.",
492
493
  decline_corrupt: "Deze PDF kon niet gelezen worden \u2014 het bestand is mogelijk beschadigd.",
493
494
  "decline_too-large": "Dit document is te groot om tekst uit te halen.",
494
- decline_empty: "Dit document bevat geen tekst om te annoteren."
495
+ decline_empty: "Dit document bevat geen tekst om te annoteren.",
496
+ annotationCompletePartial: "Detectie onvolledig be\xEBindigd \u2014 {{pieces}} deel/delen ondergerapporteerd",
497
+ annotationFailedPartial: "Detectie mislukt \u2014 resultaten van {{kept}} voltooide typen zijn bewaard"
495
498
  };
496
499
  var nl_default = {
497
500
  AssistProgress,
@@ -542,4 +545,4 @@ export {
542
545
  UnifiedAnnotationsPanel,
543
546
  nl_default as default
544
547
  };
545
- //# sourceMappingURL=nl-OQEWIXNA.js.map
548
+ //# sourceMappingURL=nl-UYCI5TXI.js.map
@@ -277,7 +277,8 @@ var ReferencesPanel = {
277
277
  noText: "Ingen tekst",
278
278
  incomingReferencesFailed: "Kunne ikke laste innkommende referanser.",
279
279
  retry: "Pr\xF8v igjen",
280
- entityTypesFailed: "Kunne ikke laste entitetstyper."
280
+ entityTypesFailed: "Kunne ikke laste entitetstyper.",
281
+ tally: "{{found}} av ~{{expected}} entiteter"
281
282
  };
282
283
  var KeyboardShortcuts = {
283
284
  title: "Tastatursnarveier",
@@ -491,7 +492,9 @@ var OutcomeToasts = {
491
492
  decline_encrypted: "Denne PDF-en er passordbeskyttet, s\xE5 teksten kan ikke leses.",
492
493
  decline_corrupt: "Denne PDF-en kunne ikke leses \u2014 filen kan v\xE6re skadet.",
493
494
  "decline_too-large": "Dette dokumentet er for stort til \xE5 hente ut tekst fra.",
494
- decline_empty: "Dette dokumentet har ingen tekst \xE5 merke."
495
+ decline_empty: "Dette dokumentet har ingen tekst \xE5 merke.",
496
+ annotationCompletePartial: "Deteksjon fullf\xF8rt ufullstendig \u2014 {{pieces}} del(er) underrapportert",
497
+ annotationFailedPartial: "Deteksjon mislyktes \u2014 funn fra {{kept}} fullf\xF8rte typer ble beholdt"
495
498
  };
496
499
  var no_default = {
497
500
  AssistProgress,
@@ -542,4 +545,4 @@ export {
542
545
  UnifiedAnnotationsPanel,
543
546
  no_default as default
544
547
  };
545
- //# sourceMappingURL=no-KPAYJZWY.js.map
548
+ //# sourceMappingURL=no-ZR3EQ2NI.js.map
@@ -277,7 +277,8 @@ var ReferencesPanel = {
277
277
  noText: "Brak tekstu",
278
278
  incomingReferencesFailed: "Nie mo\u017Cna za\u0142adowa\u0107 przychodz\u0105cych referencji.",
279
279
  retry: "Spr\xF3buj ponownie",
280
- entityTypesFailed: "Nie mo\u017Cna za\u0142adowa\u0107 typ\xF3w encji."
280
+ entityTypesFailed: "Nie mo\u017Cna za\u0142adowa\u0107 typ\xF3w encji.",
281
+ tally: "{{found}} z ~{{expected}} encji"
281
282
  };
282
283
  var KeyboardShortcuts = {
283
284
  title: "Skr\xF3ty klawiszowe",
@@ -491,7 +492,9 @@ var OutcomeToasts = {
491
492
  decline_encrypted: "Ten PDF jest chroniony has\u0142em, tekstu nie mo\u017Cna odczyta\u0107.",
492
493
  decline_corrupt: "Nie uda\u0142o si\u0119 odczyta\u0107 tego PDF-a \u2014 plik mo\u017Ce by\u0107 uszkodzony.",
493
494
  "decline_too-large": "Ten dokument jest zbyt du\u017Cy, aby wyodr\u0119bni\u0107 tekst.",
494
- decline_empty: "Ten dokument nie zawiera tekstu do adnotacji."
495
+ decline_empty: "Ten dokument nie zawiera tekstu do adnotacji.",
496
+ annotationCompletePartial: "Wykrywanie zako\u0144czone niekompletnie \u2014 {{pieces}} fragment(\xF3w) niedoraportowanych",
497
+ annotationFailedPartial: "Wykrywanie nie powiod\u0142o si\u0119 \u2014 wyniki z {{kept}} uko\u0144czonych typ\xF3w zachowano"
495
498
  };
496
499
  var pl_default = {
497
500
  AssistProgress,
@@ -542,4 +545,4 @@ export {
542
545
  UnifiedAnnotationsPanel,
543
546
  pl_default as default
544
547
  };
545
- //# sourceMappingURL=pl-WSXK2UUD.js.map
548
+ //# sourceMappingURL=pl-FPLBWLWX.js.map
@@ -277,7 +277,8 @@ var ReferencesPanel = {
277
277
  noText: "Sem texto",
278
278
  incomingReferencesFailed: "N\xE3o foi poss\xEDvel carregar as refer\xEAncias recebidas.",
279
279
  retry: "Tentar novamente",
280
- entityTypesFailed: "N\xE3o foi poss\xEDvel carregar os tipos de entidade."
280
+ entityTypesFailed: "N\xE3o foi poss\xEDvel carregar os tipos de entidade.",
281
+ tally: "{{found}} de ~{{expected}} entidades"
281
282
  };
282
283
  var KeyboardShortcuts = {
283
284
  title: "Atalhos de Teclado",
@@ -491,7 +492,9 @@ var OutcomeToasts = {
491
492
  decline_encrypted: "Este PDF est\xE1 protegido por palavra-passe e o texto n\xE3o pode ser lido.",
492
493
  decline_corrupt: "N\xE3o foi poss\xEDvel ler este PDF \u2014 o ficheiro pode estar danificado.",
493
494
  "decline_too-large": "Este documento \xE9 demasiado grande para extrair texto.",
494
- decline_empty: "Este documento n\xE3o tem texto para anotar."
495
+ decline_empty: "Este documento n\xE3o tem texto para anotar.",
496
+ annotationCompletePartial: "Detec\xE7\xE3o terminou incompleta \u2014 {{pieces}} parte(s) subnotificadas",
497
+ annotationFailedPartial: "Detec\xE7\xE3o falhou \u2014 os resultados de {{kept}} tipo(s) conclu\xEDdos foram mantidos"
495
498
  };
496
499
  var pt_default = {
497
500
  AssistProgress,
@@ -542,4 +545,4 @@ export {
542
545
  UnifiedAnnotationsPanel,
543
546
  pt_default as default
544
547
  };
545
- //# sourceMappingURL=pt-NWRJRUCK.js.map
548
+ //# sourceMappingURL=pt-JOJPVHDL.js.map
@@ -277,7 +277,8 @@ var ReferencesPanel = {
277
277
  noText: "F\u0103r\u0103 text",
278
278
  incomingReferencesFailed: "Nu s-au putut \xEEnc\u0103rca referin\u021Bele primite.",
279
279
  retry: "\xCEncearc\u0103 din nou",
280
- entityTypesFailed: "Nu s-au putut \xEEnc\u0103rca tipurile de entitate."
280
+ entityTypesFailed: "Nu s-au putut \xEEnc\u0103rca tipurile de entitate.",
281
+ tally: "{{found}} din ~{{expected}} entit\u0103\u021Bi"
281
282
  };
282
283
  var KeyboardShortcuts = {
283
284
  title: "Comenzi rapide de la tastatur\u0103",
@@ -491,7 +492,9 @@ var OutcomeToasts = {
491
492
  decline_encrypted: "Acest PDF este protejat prin parol\u0103, textul nu poate fi citit.",
492
493
  decline_corrupt: "Acest PDF nu a putut fi citit \u2014 fi\u0219ierul poate fi deteriorat.",
493
494
  "decline_too-large": "Acest document este prea mare pentru extragerea textului.",
494
- decline_empty: "Acest document nu are text de adnotat."
495
+ decline_empty: "Acest document nu are text de adnotat.",
496
+ annotationCompletePartial: "Detectarea s-a \xEEncheiat incomplet \u2014 {{pieces}} p\u0103r\u021Bi subraportate",
497
+ annotationFailedPartial: "Detectarea a e\u0219uat \u2014 rezultatele din {{kept}} tipuri finalizate au fost p\u0103strate"
495
498
  };
496
499
  var ro_default = {
497
500
  AssistProgress,
@@ -542,4 +545,4 @@ export {
542
545
  UnifiedAnnotationsPanel,
543
546
  ro_default as default
544
547
  };
545
- //# sourceMappingURL=ro-3CGVMOC6.js.map
548
+ //# sourceMappingURL=ro-WHNIABHY.js.map
@@ -277,7 +277,8 @@ var ReferencesPanel = {
277
277
  noText: "Ingen text",
278
278
  incomingReferencesFailed: "Det gick inte att l\xE4sa in inkommande referenser.",
279
279
  retry: "F\xF6rs\xF6k igen",
280
- entityTypesFailed: "Det gick inte att l\xE4sa in entitetstyper."
280
+ entityTypesFailed: "Det gick inte att l\xE4sa in entitetstyper.",
281
+ tally: "{{found}} av ~{{expected}} entiteter"
281
282
  };
282
283
  var KeyboardShortcuts = {
283
284
  title: "Tangentbordsgenv\xE4gar",
@@ -491,7 +492,9 @@ var OutcomeToasts = {
491
492
  decline_encrypted: "Denna PDF \xE4r l\xF6senordsskyddad och texten g\xE5r inte att l\xE4sa.",
492
493
  decline_corrupt: "Denna PDF kunde inte l\xE4sas \u2014 filen kan vara skadad.",
493
494
  "decline_too-large": "Detta dokument \xE4r f\xF6r stort f\xF6r att extrahera text ur.",
494
- decline_empty: "Detta dokument har ingen text att annotera."
495
+ decline_empty: "Detta dokument har ingen text att annotera.",
496
+ annotationCompletePartial: "Detektering avslutad ofullst\xE4ndigt \u2014 {{pieces}} del(ar) underrapporterade",
497
+ annotationFailedPartial: "Detektering misslyckades \u2014 fynd fr\xE5n {{kept}} slutf\xF6rda typer beh\xF6lls"
495
498
  };
496
499
  var sv_default = {
497
500
  AssistProgress,
@@ -542,4 +545,4 @@ export {
542
545
  UnifiedAnnotationsPanel,
543
546
  sv_default as default
544
547
  };
545
- //# sourceMappingURL=sv-HGSEBA7S.js.map
548
+ //# sourceMappingURL=sv-KWSW2ERR.js.map
@@ -7,8 +7,8 @@ import {
7
7
  } from "./chunk-BTUG3VJJ.js";
8
8
  import {
9
9
  TranslationProvider
10
- } from "./chunk-G4VHL4UA.js";
11
- import "./chunk-SDKFZLEX.js";
10
+ } from "./chunk-D3TOB356.js";
11
+ import "./chunk-BADNZBAL.js";
12
12
  import {
13
13
  __commonJS,
14
14
  __toESM
@@ -277,7 +277,8 @@ var ReferencesPanel = {
277
277
  noText: "\u0E44\u0E21\u0E48\u0E21\u0E35\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21",
278
278
  incomingReferencesFailed: "\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E42\u0E2B\u0E25\u0E14\u0E01\u0E32\u0E23\u0E2D\u0E49\u0E32\u0E07\u0E2D\u0E34\u0E07\u0E02\u0E32\u0E40\u0E02\u0E49\u0E32\u0E44\u0E14\u0E49",
279
279
  retry: "\u0E25\u0E2D\u0E07\u0E2D\u0E35\u0E01\u0E04\u0E23\u0E31\u0E49\u0E07",
280
- entityTypesFailed: "\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E42\u0E2B\u0E25\u0E14\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E40\u0E2D\u0E19\u0E17\u0E34\u0E15\u0E35\u0E44\u0E14\u0E49"
280
+ entityTypesFailed: "\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E42\u0E2B\u0E25\u0E14\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E40\u0E2D\u0E19\u0E17\u0E34\u0E15\u0E35\u0E44\u0E14\u0E49",
281
+ tally: "{{found}} \u0E08\u0E32\u0E01\u0E1B\u0E23\u0E30\u0E21\u0E32\u0E13 {{expected}} \u0E40\u0E2D\u0E19\u0E17\u0E34\u0E15\u0E35"
281
282
  };
282
283
  var KeyboardShortcuts = {
283
284
  title: "\u0E1B\u0E38\u0E48\u0E21\u0E25\u0E31\u0E14\u0E41\u0E1B\u0E49\u0E19\u0E1E\u0E34\u0E21\u0E1E\u0E4C",
@@ -491,7 +492,9 @@ var OutcomeToasts = {
491
492
  decline_encrypted: "PDF \u0E19\u0E35\u0E49\u0E1B\u0E49\u0E2D\u0E07\u0E01\u0E31\u0E19\u0E14\u0E49\u0E27\u0E22\u0E23\u0E2B\u0E31\u0E2A\u0E1C\u0E48\u0E32\u0E19 \u0E08\u0E36\u0E07\u0E2D\u0E48\u0E32\u0E19\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E44\u0E21\u0E48\u0E44\u0E14\u0E49",
492
493
  decline_corrupt: "\u0E2D\u0E48\u0E32\u0E19 PDF \u0E19\u0E35\u0E49\u0E44\u0E21\u0E48\u0E44\u0E14\u0E49 \u2014 \u0E44\u0E1F\u0E25\u0E4C\u0E2D\u0E32\u0E08\u0E40\u0E2A\u0E35\u0E22\u0E2B\u0E32\u0E22",
493
494
  "decline_too-large": "\u0E40\u0E2D\u0E01\u0E2A\u0E32\u0E23\u0E19\u0E35\u0E49\u0E43\u0E2B\u0E0D\u0E48\u0E40\u0E01\u0E34\u0E19\u0E01\u0E27\u0E48\u0E32\u0E08\u0E30\u0E14\u0E36\u0E07\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E44\u0E14\u0E49",
494
- decline_empty: "\u0E40\u0E2D\u0E01\u0E2A\u0E32\u0E23\u0E19\u0E35\u0E49\u0E44\u0E21\u0E48\u0E21\u0E35\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E43\u0E2B\u0E49\u0E17\u0E33\u0E04\u0E33\u0E2D\u0E18\u0E34\u0E1A\u0E32\u0E22\u0E1B\u0E23\u0E30\u0E01\u0E2D\u0E1A"
495
+ decline_empty: "\u0E40\u0E2D\u0E01\u0E2A\u0E32\u0E23\u0E19\u0E35\u0E49\u0E44\u0E21\u0E48\u0E21\u0E35\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E43\u0E2B\u0E49\u0E17\u0E33\u0E04\u0E33\u0E2D\u0E18\u0E34\u0E1A\u0E32\u0E22\u0E1B\u0E23\u0E30\u0E01\u0E2D\u0E1A",
496
+ annotationCompletePartial: "\u0E01\u0E32\u0E23\u0E15\u0E23\u0E27\u0E08\u0E08\u0E31\u0E1A\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E2A\u0E21\u0E1A\u0E39\u0E23\u0E13\u0E4C \u2014 {{pieces}} \u0E2A\u0E48\u0E27\u0E19\u0E23\u0E32\u0E22\u0E07\u0E32\u0E19\u0E44\u0E21\u0E48\u0E04\u0E23\u0E1A",
497
+ annotationFailedPartial: "\u0E01\u0E32\u0E23\u0E15\u0E23\u0E27\u0E08\u0E08\u0E31\u0E1A\u0E25\u0E49\u0E21\u0E40\u0E2B\u0E25\u0E27 \u2014 \u0E40\u0E01\u0E47\u0E1A\u0E1C\u0E25\u0E08\u0E32\u0E01 {{kept}} \u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E17\u0E35\u0E48\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E41\u0E25\u0E49\u0E27\u0E44\u0E27\u0E49"
495
498
  };
496
499
  var th_default = {
497
500
  AssistProgress,
@@ -542,4 +545,4 @@ export {
542
545
  UnifiedAnnotationsPanel,
543
546
  th_default as default
544
547
  };
545
- //# sourceMappingURL=th-NZ4G352Z.js.map
548
+ //# sourceMappingURL=th-5OOFP4VL.js.map
@@ -277,7 +277,8 @@ var ReferencesPanel = {
277
277
  noText: "Metin yok",
278
278
  incomingReferencesFailed: "Gelen referanslar y\xFCklenemedi.",
279
279
  retry: "Tekrar dene",
280
- entityTypesFailed: "Varl\u0131k t\xFCrleri y\xFCklenemedi."
280
+ entityTypesFailed: "Varl\u0131k t\xFCrleri y\xFCklenemedi.",
281
+ tally: "~{{expected}} varl\u0131ktan {{found}}"
281
282
  };
282
283
  var KeyboardShortcuts = {
283
284
  title: "Klavye K\u0131sayollar\u0131",
@@ -491,7 +492,9 @@ var OutcomeToasts = {
491
492
  decline_encrypted: "Bu PDF parola korumal\u0131, metni okunam\u0131yor.",
492
493
  decline_corrupt: "Bu PDF okunamad\u0131 \u2014 dosya bozuk olabilir.",
493
494
  "decline_too-large": "Bu belge metin \xE7\u0131karmak i\xE7in fazla b\xFCy\xFCk.",
494
- decline_empty: "Bu belgede a\xE7\u0131klama eklenecek metin yok."
495
+ decline_empty: "Bu belgede a\xE7\u0131klama eklenecek metin yok.",
496
+ annotationCompletePartial: "Alg\u0131lama eksik tamamland\u0131 \u2014 {{pieces}} b\xF6l\xFCm eksik raporland\u0131",
497
+ annotationFailedPartial: "Alg\u0131lama ba\u015Far\u0131s\u0131z \u2014 tamamlanan {{kept}} t\xFCr\xFCn bulgular\u0131 korundu"
495
498
  };
496
499
  var tr_default = {
497
500
  AssistProgress,
@@ -542,4 +545,4 @@ export {
542
545
  UnifiedAnnotationsPanel,
543
546
  tr_default as default
544
547
  };
545
- //# sourceMappingURL=tr-LGGS4DLW.js.map
548
+ //# sourceMappingURL=tr-NJUOJ2KQ.js.map
@@ -277,7 +277,8 @@ var ReferencesPanel = {
277
277
  noText: "\u041D\u0435\u043C\u0430\u0454 \u0442\u0435\u043A\u0441\u0442\u0443",
278
278
  incomingReferencesFailed: "\u041D\u0435 \u0432\u0434\u0430\u043B\u043E\u0441\u044F \u0437\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0438\u0442\u0438 \u0432\u0445\u0456\u0434\u043D\u0456 \u043F\u043E\u0441\u0438\u043B\u0430\u043D\u043D\u044F.",
279
279
  retry: "\u0421\u043F\u0440\u043E\u0431\u0443\u0432\u0430\u0442\u0438 \u0437\u043D\u043E\u0432\u0443",
280
- entityTypesFailed: "\u041D\u0435 \u0432\u0434\u0430\u043B\u043E\u0441\u044F \u0437\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0438\u0442\u0438 \u0442\u0438\u043F\u0438 \u0441\u0443\u0442\u043D\u043E\u0441\u0442\u0435\u0439."
280
+ entityTypesFailed: "\u041D\u0435 \u0432\u0434\u0430\u043B\u043E\u0441\u044F \u0437\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0438\u0442\u0438 \u0442\u0438\u043F\u0438 \u0441\u0443\u0442\u043D\u043E\u0441\u0442\u0435\u0439.",
281
+ tally: "{{found}} \u0437 ~{{expected}} \u0441\u0443\u0442\u043D\u043E\u0441\u0442\u0435\u0439"
281
282
  };
282
283
  var KeyboardShortcuts = {
283
284
  title: "\u041A\u043E\u043C\u0431\u0456\u043D\u0430\u0446\u0456\u0457 \u043A\u043B\u0430\u0432\u0456\u0448",
@@ -491,7 +492,9 @@ var OutcomeToasts = {
491
492
  decline_encrypted: "\u0426\u0435\u0439 PDF \u0437\u0430\u0445\u0438\u0449\u0435\u043D\u043E \u043F\u0430\u0440\u043E\u043B\u0435\u043C, \u0442\u0435\u043A\u0441\u0442 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u0438 \u043D\u0435\u043C\u043E\u0436\u043B\u0438\u0432\u043E.",
492
493
  decline_corrupt: "\u041D\u0435 \u0432\u0434\u0430\u043B\u043E\u0441\u044F \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u0438 \u0446\u0435\u0439 PDF \u2014 \u0444\u0430\u0439\u043B \u043C\u043E\u0436\u0435 \u0431\u0443\u0442\u0438 \u043F\u043E\u0448\u043A\u043E\u0434\u0436\u0435\u043D\u043E.",
493
494
  "decline_too-large": "\u0426\u0435\u0439 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442 \u0437\u0430\u0432\u0435\u043B\u0438\u043A\u0438\u0439 \u0434\u043B\u044F \u0432\u0438\u0434\u043E\u0431\u0443\u0432\u0430\u043D\u043D\u044F \u0442\u0435\u043A\u0441\u0442\u0443.",
494
- decline_empty: "\u0423 \u0446\u044C\u043E\u043C\u0443 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0456 \u043D\u0435\u043C\u0430\u0454 \u0442\u0435\u043A\u0441\u0442\u0443 \u0434\u043B\u044F \u0430\u043D\u043E\u0442\u0443\u0432\u0430\u043D\u043D\u044F."
495
+ decline_empty: "\u0423 \u0446\u044C\u043E\u043C\u0443 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0456 \u043D\u0435\u043C\u0430\u0454 \u0442\u0435\u043A\u0441\u0442\u0443 \u0434\u043B\u044F \u0430\u043D\u043E\u0442\u0443\u0432\u0430\u043D\u043D\u044F.",
496
+ annotationCompletePartial: "\u0412\u0438\u044F\u0432\u043B\u0435\u043D\u043D\u044F \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043E \u043D\u0435 \u043F\u043E\u0432\u043D\u0456\u0441\u0442\u044E \u2014 {{pieces}} \u0447\u0430\u0441\u0442\u0438\u043D \u043D\u0435\u0434\u043E\u0437\u0432\u0456\u0442\u043E\u0432\u0430\u043D\u043E",
497
+ annotationFailedPartial: "\u0412\u0438\u044F\u0432\u043B\u0435\u043D\u043D\u044F \u043D\u0435 \u0432\u0434\u0430\u043B\u043E\u0441\u044F \u2014 \u0437\u043D\u0430\u0445\u0456\u0434\u043A\u0438 \u0437 {{kept}} \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u0445 \u0442\u0438\u043F\u0456\u0432 \u0437\u0431\u0435\u0440\u0435\u0436\u0435\u043D\u043E"
495
498
  };
496
499
  var uk_default = {
497
500
  AssistProgress,
@@ -542,4 +545,4 @@ export {
542
545
  UnifiedAnnotationsPanel,
543
546
  uk_default as default
544
547
  };
545
- //# sourceMappingURL=uk-AIX536L4.js.map
548
+ //# sourceMappingURL=uk-MFJCRRB2.js.map
@@ -277,7 +277,8 @@ var ReferencesPanel = {
277
277
  noText: "Kh\xF4ng c\xF3 v\u0103n b\u1EA3n",
278
278
  incomingReferencesFailed: "Kh\xF4ng th\u1EC3 t\u1EA3i tham chi\u1EBFu \u0111\u1EBFn.",
279
279
  retry: "Th\u1EED l\u1EA1i",
280
- entityTypesFailed: "Kh\xF4ng th\u1EC3 t\u1EA3i lo\u1EA1i th\u1EF1c th\u1EC3."
280
+ entityTypesFailed: "Kh\xF4ng th\u1EC3 t\u1EA3i lo\u1EA1i th\u1EF1c th\u1EC3.",
281
+ tally: "{{found}} trong ~{{expected}} th\u1EF1c th\u1EC3"
281
282
  };
282
283
  var KeyboardShortcuts = {
283
284
  title: "Ph\xEDm t\u1EAFt",
@@ -491,7 +492,9 @@ var OutcomeToasts = {
491
492
  decline_encrypted: "PDF n\xE0y \u0111\u01B0\u1EE3c b\u1EA3o v\u1EC7 b\u1EB1ng m\u1EADt kh\u1EA9u n\xEAn kh\xF4ng \u0111\u1ECDc \u0111\u01B0\u1EE3c v\u0103n b\u1EA3n.",
492
493
  decline_corrupt: "Kh\xF4ng \u0111\u1ECDc \u0111\u01B0\u1EE3c PDF n\xE0y \u2014 t\u1EC7p c\xF3 th\u1EC3 b\u1ECB h\u1ECFng.",
493
494
  "decline_too-large": "T\xE0i li\u1EC7u n\xE0y qu\xE1 l\u1EDBn \u0111\u1EC3 tr\xEDch xu\u1EA5t v\u0103n b\u1EA3n.",
494
- decline_empty: "T\xE0i li\u1EC7u n\xE0y kh\xF4ng c\xF3 v\u0103n b\u1EA3n \u0111\u1EC3 ch\xFA th\xEDch."
495
+ decline_empty: "T\xE0i li\u1EC7u n\xE0y kh\xF4ng c\xF3 v\u0103n b\u1EA3n \u0111\u1EC3 ch\xFA th\xEDch.",
496
+ annotationCompletePartial: "Ph\xE1t hi\u1EC7n k\u1EBFt th\xFAc kh\xF4ng \u0111\u1EA7y \u0111\u1EE7 \u2014 {{pieces}} ph\u1EA7n b\u1ECB b\xE1o c\xE1o thi\u1EBFu",
497
+ annotationFailedPartial: "Ph\xE1t hi\u1EC7n th\u1EA5t b\u1EA1i \u2014 k\u1EBFt qu\u1EA3 t\u1EEB {{kept}} lo\u1EA1i \u0111\xE3 ho\xE0n th\xE0nh \u0111\u01B0\u1EE3c gi\u1EEF l\u1EA1i"
495
498
  };
496
499
  var vi_default = {
497
500
  AssistProgress,
@@ -542,4 +545,4 @@ export {
542
545
  UnifiedAnnotationsPanel,
543
546
  vi_default as default
544
547
  };
545
- //# sourceMappingURL=vi-V6CVQZLQ.js.map
548
+ //# sourceMappingURL=vi-TFR4NPYP.js.map
@@ -277,7 +277,8 @@ var ReferencesPanel = {
277
277
  noText: "\u65E0\u6587\u672C",
278
278
  incomingReferencesFailed: "\u65E0\u6CD5\u52A0\u8F7D\u4F20\u5165\u5F15\u7528\u3002",
279
279
  retry: "\u91CD\u8BD5",
280
- entityTypesFailed: "\u65E0\u6CD5\u52A0\u8F7D\u5B9E\u4F53\u7C7B\u578B\u3002"
280
+ entityTypesFailed: "\u65E0\u6CD5\u52A0\u8F7D\u5B9E\u4F53\u7C7B\u578B\u3002",
281
+ tally: "\u7EA6 {{expected}} \u4E2A\u5B9E\u4F53\u4E2D\u7684 {{found}} \u4E2A"
281
282
  };
282
283
  var KeyboardShortcuts = {
283
284
  title: "\u952E\u76D8\u5FEB\u6377\u952E",
@@ -491,7 +492,9 @@ var OutcomeToasts = {
491
492
  decline_encrypted: "\u6B64 PDF \u53D7\u5BC6\u7801\u4FDD\u62A4\uFF0C\u65E0\u6CD5\u8BFB\u53D6\u5176\u6587\u672C\u3002",
492
493
  decline_corrupt: "\u65E0\u6CD5\u8BFB\u53D6\u6B64 PDF \u2014 \u6587\u4EF6\u53EF\u80FD\u5DF2\u635F\u574F\u3002",
493
494
  "decline_too-large": "\u6B64\u6587\u6863\u8FC7\u5927\uFF0C\u65E0\u6CD5\u63D0\u53D6\u6587\u672C\u3002",
494
- decline_empty: "\u6B64\u6587\u6863\u6CA1\u6709\u53EF\u6279\u6CE8\u7684\u6587\u672C\u3002"
495
+ decline_empty: "\u6B64\u6587\u6863\u6CA1\u6709\u53EF\u6279\u6CE8\u7684\u6587\u672C\u3002",
496
+ annotationCompletePartial: "\u68C0\u6D4B\u672A\u5B8C\u6574\u7ED3\u675F \u2014 {{pieces}} \u4E2A\u90E8\u5206\u62A5\u544A\u4E0D\u8DB3",
497
+ annotationFailedPartial: "\u68C0\u6D4B\u5931\u8D25 \u2014 \u5DF2\u4FDD\u7559 {{kept}} \u4E2A\u5DF2\u5B8C\u6210\u7C7B\u578B\u7684\u7ED3\u679C"
495
498
  };
496
499
  var zh_default = {
497
500
  AssistProgress,
@@ -542,4 +545,4 @@ export {
542
545
  UnifiedAnnotationsPanel,
543
546
  zh_default as default
544
547
  };
545
- //# sourceMappingURL=zh-AGKPGI3L.js.map
548
+ //# sourceMappingURL=zh-47SIEPEL.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@semiont/react-ui",
3
- "version": "0.5.32",
3
+ "version": "0.5.33",
4
4
  "engines": {
5
5
  "node": ">=24.0.0"
6
6
  },
@@ -97,7 +97,7 @@
97
97
  "@types/react": "^19.2.18",
98
98
  "@types/react-dom": "^19.2.7",
99
99
  "@vitest/coverage-v8": "^4.1.11",
100
- "autoprefixer": "^10.5.4",
100
+ "autoprefixer": "^10.5.5",
101
101
  "axe-core": "^4.12.1",
102
102
  "cssnano": "^8.0.8",
103
103
  "fast-check": "^4.9.0",
@@ -122,9 +122,9 @@
122
122
  "directory": "packages/react-ui"
123
123
  },
124
124
  "dependencies": {
125
- "@semiont/core": "0.5.32",
126
- "@semiont/http-transport": "0.5.32",
127
- "@semiont/sdk": "0.5.32",
125
+ "@semiont/core": "0.5.33",
126
+ "@semiont/http-transport": "0.5.33",
127
+ "@semiont/sdk": "0.5.33",
128
128
  "clsx": "^2.1.1",
129
129
  "pdfjs-dist": "^6.2.108",
130
130
  "react-error-boundary": "^6.1.4",
@@ -44,6 +44,14 @@ export interface AssistProgressTranslations {
44
44
  paramLabel: (code: string) => string;
45
45
  /** Completed entity-type log line (reference flow only). */
46
46
  found?: (count: number) => string;
47
+ /**
48
+ * The found-of-~expected tally (reference flow only, RD5). Rendered only
49
+ * when the wire carries BOTH counts: `entitiesExpected` absent means the
50
+ * provider priced nothing — no claim — and a denominator is never
51
+ * manufactured from it. The ~ is the copy's to render: the wire calls the
52
+ * number approximate and the words should too.
53
+ */
54
+ tally?: (found: number, expected: number) => string;
47
55
  }
48
56
 
49
57
  /**
@@ -179,6 +187,14 @@ export function AssistProgress({
179
187
  </span>
180
188
  </div>
181
189
 
190
+ {/* RD5: the honest denominator. Present only when the count-verifier
191
+ priced one — both counts from the wire, zero manufactured. */}
192
+ {tr.tally && progress.entitiesFound !== undefined && progress.entitiesExpected !== undefined && (
193
+ <div className="semiont-assist-progress__tally" data-testid="semiont-assist-tally">
194
+ {tr.tally(progress.entitiesFound, progress.entitiesExpected)}
195
+ </div>
196
+ )}
197
+
182
198
  {/* H3: stage above, subject beneath. */}
183
199
  {current && (
184
200
  <div className="semiont-assist-progress__subject" data-testid="semiont-assist-subject">
@@ -0,0 +1,78 @@
1
+ /**
2
+ * DETECTION-RESULT-STREAMING P4, frontend half (RD5): the progress surface
3
+ * shows found-of-~expected when the count-verifier has priced a denominator.
4
+ *
5
+ * The wire's absence discipline carries through to the render, in both
6
+ * directions: `entitiesExpected` ABSENT means "no claim" (no verifying
7
+ * provider, or nothing priced yet) — no tally renders and no denominator is
8
+ * ever manufactured. `entitiesFound: 0` PRESENT is a real count — "0 of ~37"
9
+ * is information, not an error state. And per Lane A, the copy comes from a
10
+ * caller-supplied translator: no translator, no line, no English fallback.
11
+ */
12
+ import { describe, it, expect } from 'vitest';
13
+ import { render, screen } from '@testing-library/react';
14
+ import '@testing-library/jest-dom';
15
+ import type { components } from '@semiont/core';
16
+ import { AssistProgress, type AssistProgressTranslations } from '../AssistProgress';
17
+
18
+ type JobProgress = components['schemas']['JobProgress'];
19
+
20
+ const TALLY = 'semiont-assist-tally';
21
+
22
+ const T = (over: Partial<AssistProgressTranslations> = {}): AssistProgressTranslations =>
23
+ ({
24
+ cancel: 'tr.cancel',
25
+ close: 'tr.close',
26
+ inProgress: 'tr.inProgress',
27
+ message: (m: any) => `tr.code(${m.code})`,
28
+ subject: (c: { kind: string; value: string }) => `tr.subject(${c.kind}:${c.value})`,
29
+ paramLabel: (code: string) => `tr.param(${code})`,
30
+ tally: (found: number, expected: number) => `tr.tally(${found}/${expected})`,
31
+ ...over,
32
+ }) as AssistProgressTranslations;
33
+
34
+ const detecting = (over: Partial<JobProgress> = {}): JobProgress =>
35
+ ({
36
+ percentage: 40,
37
+ message: { code: 'detecting-entities', entityType: 'Person' },
38
+ ...over,
39
+ }) as JobProgress;
40
+
41
+ describe('AssistProgress — the denominator tally (RD5)', () => {
42
+ it('renders found of ~expected when the wire prices both', () => {
43
+ render(
44
+ <AssistProgress ended={false} dataType="reference" translations={T()}
45
+ progress={detecting({ entitiesFound: 7, entitiesExpected: 37 })}
46
+ />,
47
+ );
48
+ expect(screen.getByTestId(TALLY)).toHaveTextContent('tr.tally(7/37)');
49
+ });
50
+
51
+ it('renders NO tally when entitiesExpected is absent — a denominator is never manufactured', () => {
52
+ render(
53
+ <AssistProgress ended={false} dataType="reference" translations={T()}
54
+ progress={detecting({ entitiesFound: 7 })}
55
+ />,
56
+ );
57
+ expect(screen.queryByTestId(TALLY)).not.toBeInTheDocument();
58
+ });
59
+
60
+ it('zero found is a real count, not absence: renders 0 of ~expected', () => {
61
+ render(
62
+ <AssistProgress ended={false} dataType="reference" translations={T()}
63
+ progress={detecting({ entitiesFound: 0, entitiesExpected: 37 })}
64
+ />,
65
+ );
66
+ expect(screen.getByTestId(TALLY)).toHaveTextContent('tr.tally(0/37)');
67
+ });
68
+
69
+ it('no tally translator, no line — flows without the copy render nothing (Lane A)', () => {
70
+ render(
71
+ <AssistProgress ended={false} dataType="highlight"
72
+ translations={T({ tally: undefined })}
73
+ progress={detecting({ entitiesFound: 7, entitiesExpected: 37 })}
74
+ />,
75
+ );
76
+ expect(screen.queryByTestId(TALLY)).not.toBeInTheDocument();
77
+ });
78
+ });
@@ -159,17 +159,20 @@
159
159
 
160
160
  /* The subject and the parameters are context for the status, not peers of it. */
161
161
  .semiont-assist-progress__subject,
162
+ .semiont-assist-progress__tally,
162
163
  .semiont-assist-progress__params {
163
164
  font-size: var(--semiont-text-xs);
164
165
  color: var(--semiont-text-secondary);
165
166
  }
166
167
 
167
168
  [data-theme="dark"] .semiont-assist-progress__subject,
169
+ [data-theme="dark"] .semiont-assist-progress__tally,
168
170
  [data-theme="dark"] .semiont-assist-progress__params {
169
171
  color: var(--semiont-text-secondary);
170
172
  }
171
173
 
172
- .semiont-assist-progress__subject {
174
+ .semiont-assist-progress__subject,
175
+ .semiont-assist-progress__tally {
173
176
  font-variant-numeric: tabular-nums;
174
177
  }
175
178
 
@@ -381,6 +381,8 @@ export function ReferencesPanel({
381
381
  onDismiss: () => session?.client.mark.dismissProgress(),
382
382
  translations: assistProgressTranslations(ta, {
383
383
  found: (count: number) => t('found', { count }),
384
+ // RD5: rendered only when the wire prices a denominator.
385
+ tally: (found: number, expected: number) => t('tally', { found, expected }),
384
386
  }),
385
387
  }}
386
388
  form={
@@ -126,4 +126,4 @@
126
126
  height: 100%;
127
127
  }
128
128
 
129
- /* Motivation-specific detection styles moved to /styles/motivations/*.css */
129
+ /* Motivation-specific detection styles moved to /styles/motivations/*.css */