@semiont/react-ui 0.4.14 → 0.4.16

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 (169) hide show
  1. package/README.md +18 -12
  2. package/dist/KnowledgeBaseSessionContext-BNNunwzO.d.mts +175 -0
  3. package/dist/{PdfAnnotationCanvas.client-CW6SKH2U.mjs → PdfAnnotationCanvas.client-CHDCGQBR.mjs} +3 -3
  4. package/dist/{ar-R4CRNXEF.mjs → ar-3W37O3R3.mjs} +9 -3
  5. package/dist/ar-3W37O3R3.mjs.map +1 -0
  6. package/dist/{bn-CZKGRHTA.mjs → bn-JZTJLMVE.mjs} +9 -3
  7. package/dist/bn-JZTJLMVE.mjs.map +1 -0
  8. package/dist/chunk-FAI3S4BM.mjs +865 -0
  9. package/dist/chunk-FAI3S4BM.mjs.map +1 -0
  10. package/dist/{chunk-HVMAGUFA.mjs → chunk-NOD3NCXE.mjs} +3 -1
  11. package/dist/chunk-NOD3NCXE.mjs.map +1 -0
  12. package/dist/{chunk-HNZOXH4L.mjs → chunk-OZICDVH7.mjs} +5 -3
  13. package/dist/chunk-OZICDVH7.mjs.map +1 -0
  14. package/dist/{chunk-BQJWOK4C.mjs → chunk-VN5NY4SN.mjs} +9 -8
  15. package/dist/chunk-VN5NY4SN.mjs.map +1 -0
  16. package/dist/{cs-4WIB2IHH.mjs → cs-XYHH7HNE.mjs} +9 -3
  17. package/dist/cs-XYHH7HNE.mjs.map +1 -0
  18. package/dist/{da-JWYEUYPX.mjs → da-MZKIECVT.mjs} +9 -3
  19. package/dist/da-MZKIECVT.mjs.map +1 -0
  20. package/dist/{de-GWUQZGER.mjs → de-AYXTMRQW.mjs} +9 -3
  21. package/dist/de-AYXTMRQW.mjs.map +1 -0
  22. package/dist/{el-DM2GT7P5.mjs → el-A6CVQWAW.mjs} +9 -3
  23. package/dist/el-A6CVQWAW.mjs.map +1 -0
  24. package/dist/{en-IUV4ZXKH.mjs → en-YPQQBI4T.mjs} +2 -2
  25. package/dist/{es-6LVQIM3D.mjs → es-M2HXLJGT.mjs} +9 -3
  26. package/dist/es-M2HXLJGT.mjs.map +1 -0
  27. package/dist/{fa-IRUJY3QI.mjs → fa-V6JZJDYP.mjs} +9 -3
  28. package/dist/fa-V6JZJDYP.mjs.map +1 -0
  29. package/dist/{fi-53FBOEVT.mjs → fi-ONDTZ5H7.mjs} +9 -3
  30. package/dist/fi-ONDTZ5H7.mjs.map +1 -0
  31. package/dist/{fr-Q5KY7QL6.mjs → fr-PAPV4H4G.mjs} +9 -3
  32. package/dist/fr-PAPV4H4G.mjs.map +1 -0
  33. package/dist/{he-HJNKULBY.mjs → he-F6VTLJLW.mjs} +9 -3
  34. package/dist/he-F6VTLJLW.mjs.map +1 -0
  35. package/dist/{hi-UYZ4X6CR.mjs → hi-CFUAV4BF.mjs} +9 -3
  36. package/dist/hi-CFUAV4BF.mjs.map +1 -0
  37. package/dist/{id-UAQMH6U2.mjs → id-NBKLCCI7.mjs} +9 -3
  38. package/dist/id-NBKLCCI7.mjs.map +1 -0
  39. package/dist/index.d.mts +141 -169
  40. package/dist/index.mjs +2394 -2116
  41. package/dist/index.mjs.map +1 -1
  42. package/dist/{it-C7QEBNFA.mjs → it-SLSOWVVU.mjs} +9 -3
  43. package/dist/it-SLSOWVVU.mjs.map +1 -0
  44. package/dist/{ja-THS6AOSJ.mjs → ja-L5IG4ECE.mjs} +9 -3
  45. package/dist/ja-L5IG4ECE.mjs.map +1 -0
  46. package/dist/{ko-XKK3TWQG.mjs → ko-QYMTULKK.mjs} +9 -3
  47. package/dist/ko-QYMTULKK.mjs.map +1 -0
  48. package/dist/{ms-GSK7LIF7.mjs → ms-5DGSFKM2.mjs} +9 -3
  49. package/dist/ms-5DGSFKM2.mjs.map +1 -0
  50. package/dist/{nl-KUBWITGY.mjs → nl-VZPCGONO.mjs} +9 -3
  51. package/dist/nl-VZPCGONO.mjs.map +1 -0
  52. package/dist/{no-ECWZUHT6.mjs → no-MF6F352I.mjs} +9 -3
  53. package/dist/no-MF6F352I.mjs.map +1 -0
  54. package/dist/{pl-PLVWSZWS.mjs → pl-WIK72JUO.mjs} +9 -3
  55. package/dist/pl-WIK72JUO.mjs.map +1 -0
  56. package/dist/{pt-AL74ZTKB.mjs → pt-RRP5ZF6A.mjs} +9 -3
  57. package/dist/pt-RRP5ZF6A.mjs.map +1 -0
  58. package/dist/{ro-WTPHLHGS.mjs → ro-XHQLC3T7.mjs} +9 -3
  59. package/dist/ro-XHQLC3T7.mjs.map +1 -0
  60. package/dist/{sv-QCLI7SG4.mjs → sv-EWULDN6E.mjs} +9 -3
  61. package/dist/sv-EWULDN6E.mjs.map +1 -0
  62. package/dist/test-utils.d.mts +13 -62
  63. package/dist/test-utils.mjs +41 -22
  64. package/dist/test-utils.mjs.map +1 -1
  65. package/dist/{th-WCKVZU6U.mjs → th-TGOBHFG4.mjs} +9 -3
  66. package/dist/th-TGOBHFG4.mjs.map +1 -0
  67. package/dist/{tr-2CAFS2XS.mjs → tr-LMMPBMV7.mjs} +9 -3
  68. package/dist/tr-LMMPBMV7.mjs.map +1 -0
  69. package/dist/{uk-TDE4JLCY.mjs → uk-IPGRRJY6.mjs} +9 -3
  70. package/dist/uk-IPGRRJY6.mjs.map +1 -0
  71. package/dist/{vi-KKXZ4PCX.mjs → vi-Q676OJQS.mjs} +9 -3
  72. package/dist/vi-Q676OJQS.mjs.map +1 -0
  73. package/dist/{zh-VH4XN5PV.mjs → zh-F3MTWQDX.mjs} +9 -3
  74. package/dist/zh-F3MTWQDX.mjs.map +1 -0
  75. package/package.json +5 -3
  76. package/src/components/ProtectedErrorBoundary.tsx +95 -0
  77. package/src/components/__tests__/ProtectedErrorBoundary.test.tsx +197 -0
  78. package/src/components/modals/PermissionDeniedModal.tsx +140 -0
  79. package/src/components/modals/ReferenceWizardModal.tsx +3 -2
  80. package/src/components/modals/SessionExpiredModal.tsx +101 -0
  81. package/src/components/modals/__tests__/PermissionDeniedModal.test.tsx +150 -0
  82. package/src/components/modals/__tests__/SessionExpiredModal.test.tsx +115 -0
  83. package/src/components/resource/AnnotationHistory.tsx +5 -6
  84. package/src/components/resource/HistoryEvent.tsx +9 -8
  85. package/src/components/resource/__tests__/AnnotationHistory.test.tsx +33 -34
  86. package/src/components/resource/__tests__/HistoryEvent.test.tsx +18 -19
  87. package/src/components/resource/__tests__/event-formatting.test.ts +70 -94
  88. package/src/components/resource/event-formatting.ts +92 -56
  89. package/src/components/resource/panels/ReferenceEntry.tsx +7 -5
  90. package/src/components/resource/panels/ResourceInfoPanel.tsx +18 -6
  91. package/src/components/resource/panels/__tests__/ReferenceEntry.test.tsx +12 -12
  92. package/src/components/resource/panels/__tests__/ResourceInfoPanel.test.tsx +24 -0
  93. package/src/features/resource-compose/components/ResourceComposePage.tsx +10 -1
  94. package/src/features/resource-viewer/__tests__/AnnotationCreationPending.test.tsx +1 -1
  95. package/src/features/resource-viewer/__tests__/AnnotationDeletionIntegration.test.tsx +4 -4
  96. package/src/features/resource-viewer/__tests__/AnnotationProgressDismissal.test.tsx +5 -10
  97. package/src/features/resource-viewer/__tests__/BindFlowIntegration.test.tsx +23 -54
  98. package/src/features/resource-viewer/__tests__/DetectionFlowBug.test.tsx +6 -6
  99. package/src/features/resource-viewer/__tests__/DetectionFlowIntegration.test.tsx +7 -19
  100. package/src/features/resource-viewer/__tests__/ToastNotifications.test.tsx +1 -1
  101. package/src/features/resource-viewer/__tests__/YieldFlowIntegration.test.tsx +18 -44
  102. package/src/features/resource-viewer/__tests__/annotation-progress-flow.test.tsx +6 -6
  103. package/src/features/resource-viewer/components/ResourceViewerPage.tsx +26 -26
  104. package/src/styles/features/compose.css +63 -0
  105. package/translations/ar.json +6 -2
  106. package/translations/bn.json +6 -2
  107. package/translations/cs.json +6 -2
  108. package/translations/da.json +6 -2
  109. package/translations/de.json +6 -2
  110. package/translations/el.json +6 -2
  111. package/translations/en.json +2 -0
  112. package/translations/es.json +6 -2
  113. package/translations/fa.json +6 -2
  114. package/translations/fi.json +6 -2
  115. package/translations/fr.json +6 -2
  116. package/translations/he.json +6 -2
  117. package/translations/hi.json +6 -2
  118. package/translations/id.json +6 -2
  119. package/translations/it.json +6 -2
  120. package/translations/ja.json +6 -2
  121. package/translations/ko.json +6 -2
  122. package/translations/ms.json +6 -2
  123. package/translations/nl.json +6 -2
  124. package/translations/no.json +6 -2
  125. package/translations/pl.json +6 -2
  126. package/translations/pt.json +6 -2
  127. package/translations/ro.json +6 -2
  128. package/translations/sv.json +6 -2
  129. package/translations/th.json +6 -2
  130. package/translations/tr.json +6 -2
  131. package/translations/uk.json +6 -2
  132. package/translations/vi.json +6 -2
  133. package/translations/zh.json +6 -2
  134. package/dist/TranslationManager-CudgH3gw.d.mts +0 -107
  135. package/dist/ar-R4CRNXEF.mjs.map +0 -1
  136. package/dist/bn-CZKGRHTA.mjs.map +0 -1
  137. package/dist/chunk-BQJWOK4C.mjs.map +0 -1
  138. package/dist/chunk-HNZOXH4L.mjs.map +0 -1
  139. package/dist/chunk-HVMAGUFA.mjs.map +0 -1
  140. package/dist/chunk-OL5UST25.mjs +0 -413
  141. package/dist/chunk-OL5UST25.mjs.map +0 -1
  142. package/dist/cs-4WIB2IHH.mjs.map +0 -1
  143. package/dist/da-JWYEUYPX.mjs.map +0 -1
  144. package/dist/de-GWUQZGER.mjs.map +0 -1
  145. package/dist/el-DM2GT7P5.mjs.map +0 -1
  146. package/dist/es-6LVQIM3D.mjs.map +0 -1
  147. package/dist/fa-IRUJY3QI.mjs.map +0 -1
  148. package/dist/fi-53FBOEVT.mjs.map +0 -1
  149. package/dist/fr-Q5KY7QL6.mjs.map +0 -1
  150. package/dist/he-HJNKULBY.mjs.map +0 -1
  151. package/dist/hi-UYZ4X6CR.mjs.map +0 -1
  152. package/dist/id-UAQMH6U2.mjs.map +0 -1
  153. package/dist/it-C7QEBNFA.mjs.map +0 -1
  154. package/dist/ja-THS6AOSJ.mjs.map +0 -1
  155. package/dist/ko-XKK3TWQG.mjs.map +0 -1
  156. package/dist/ms-GSK7LIF7.mjs.map +0 -1
  157. package/dist/nl-KUBWITGY.mjs.map +0 -1
  158. package/dist/no-ECWZUHT6.mjs.map +0 -1
  159. package/dist/pl-PLVWSZWS.mjs.map +0 -1
  160. package/dist/pt-AL74ZTKB.mjs.map +0 -1
  161. package/dist/ro-WTPHLHGS.mjs.map +0 -1
  162. package/dist/sv-QCLI7SG4.mjs.map +0 -1
  163. package/dist/th-WCKVZU6U.mjs.map +0 -1
  164. package/dist/tr-2CAFS2XS.mjs.map +0 -1
  165. package/dist/uk-TDE4JLCY.mjs.map +0 -1
  166. package/dist/vi-KKXZ4PCX.mjs.map +0 -1
  167. package/dist/zh-VH4XN5PV.mjs.map +0 -1
  168. /package/dist/{PdfAnnotationCanvas.client-CW6SKH2U.mjs.map → PdfAnnotationCanvas.client-CHDCGQBR.mjs.map} +0 -0
  169. /package/dist/{en-IUV4ZXKH.mjs.map → en-YPQQBI4T.mjs.map} +0 -0
@@ -28,7 +28,8 @@
28
28
  "creationMethod": "Metodo di creazione",
29
29
  "attributedTo": "Attribuito a",
30
30
  "derivedFrom": "Derivato da",
31
- "generatedBy": "Generato da"
31
+ "generatedBy": "Generato da",
32
+ "storageUri": "Archiviazione"
32
33
  },
33
34
  "CollaborationPanel": {
34
35
  "title": "Collaborazione",
@@ -373,5 +374,8 @@
373
374
  "semanticScoringHelp": "Usa l'IA per valutare i risultati in base alla rilevanza semantica",
374
375
  "searching": "Ricerca in corso...",
375
376
  "search": "Cerca"
377
+ },
378
+ "History": {
379
+ "embeddingComputed": "Embedding calcolato"
376
380
  }
377
- }
381
+ }
@@ -28,7 +28,8 @@
28
28
  "creationMethod": "作成方法",
29
29
  "attributedTo": "帰属先",
30
30
  "derivedFrom": "派生元",
31
- "generatedBy": "生成ツール"
31
+ "generatedBy": "生成ツール",
32
+ "storageUri": "ストレージ"
32
33
  },
33
34
  "CollaborationPanel": {
34
35
  "title": "コラボレーション",
@@ -373,5 +374,8 @@
373
374
  "semanticScoringHelp": "AIを使用して意味的関連性で結果をスコアリング",
374
375
  "searching": "検索中...",
375
376
  "search": "検索"
377
+ },
378
+ "History": {
379
+ "embeddingComputed": "埋め込み計算済み"
376
380
  }
377
- }
381
+ }
@@ -28,7 +28,8 @@
28
28
  "creationMethod": "생성 방법",
29
29
  "attributedTo": "귀속 대상",
30
30
  "derivedFrom": "파생 출처",
31
- "generatedBy": "생성 도구"
31
+ "generatedBy": "생성 도구",
32
+ "storageUri": "저장소"
32
33
  },
33
34
  "CollaborationPanel": {
34
35
  "title": "협업",
@@ -373,5 +374,8 @@
373
374
  "semanticScoringHelp": "AI를 사용하여 의미적 관련성에 따라 결과 점수 부여",
374
375
  "searching": "검색 중...",
375
376
  "search": "검색"
377
+ },
378
+ "History": {
379
+ "embeddingComputed": "임베딩 계산됨"
376
380
  }
377
- }
381
+ }
@@ -28,7 +28,8 @@
28
28
  "creationMethod": "Cara penciptaan",
29
29
  "attributedTo": "Dikaitkan dengan",
30
30
  "derivedFrom": "Diperoleh daripada",
31
- "generatedBy": "Dijana oleh"
31
+ "generatedBy": "Dijana oleh",
32
+ "storageUri": "Storan"
32
33
  },
33
34
  "CollaborationPanel": {
34
35
  "title": "Kolaborasi",
@@ -373,5 +374,8 @@
373
374
  "semanticScoringHelp": "Gunakan AI untuk menilai hasil mengikut kerelevanan semantik",
374
375
  "searching": "Mencari...",
375
376
  "search": "Cari"
377
+ },
378
+ "History": {
379
+ "embeddingComputed": "Embedding dikira"
376
380
  }
377
- }
381
+ }
@@ -28,7 +28,8 @@
28
28
  "creationMethod": "Aanmaakmethode",
29
29
  "attributedTo": "Toegeschreven aan",
30
30
  "derivedFrom": "Afgeleid van",
31
- "generatedBy": "Gegenereerd door"
31
+ "generatedBy": "Gegenereerd door",
32
+ "storageUri": "Opslag"
32
33
  },
33
34
  "CollaborationPanel": {
34
35
  "title": "Samenwerking",
@@ -376,5 +377,8 @@
376
377
  "semanticScoringHelp": "Gebruik AI om resultaten te beoordelen op semantische relevantie",
377
378
  "searching": "Zoeken...",
378
379
  "search": "Zoeken"
380
+ },
381
+ "History": {
382
+ "embeddingComputed": "Embedding berekend"
379
383
  }
380
- }
384
+ }
@@ -28,7 +28,8 @@
28
28
  "creationMethod": "Opprettelsesmetode",
29
29
  "attributedTo": "Tilskrevet",
30
30
  "derivedFrom": "Avledet fra",
31
- "generatedBy": "Generert av"
31
+ "generatedBy": "Generert av",
32
+ "storageUri": "Lagring"
32
33
  },
33
34
  "CollaborationPanel": {
34
35
  "title": "Samarbeid",
@@ -373,5 +374,8 @@
373
374
  "semanticScoringHelp": "Bruk AI til å score resultater etter semantisk relevans",
374
375
  "searching": "Søker...",
375
376
  "search": "Søk"
377
+ },
378
+ "History": {
379
+ "embeddingComputed": "Embedding beregnet"
376
380
  }
377
- }
381
+ }
@@ -28,7 +28,8 @@
28
28
  "creationMethod": "Sposób utworzenia",
29
29
  "attributedTo": "Przypisano do",
30
30
  "derivedFrom": "Pochodzi z",
31
- "generatedBy": "Wygenerowano przez"
31
+ "generatedBy": "Wygenerowano przez",
32
+ "storageUri": "Przechowywanie"
32
33
  },
33
34
  "CollaborationPanel": {
34
35
  "title": "Współpraca",
@@ -373,5 +374,8 @@
373
374
  "semanticScoringHelp": "Użyj AI do oceny wyników według semantycznego dopasowania",
374
375
  "searching": "Wyszukiwanie...",
375
376
  "search": "Szukaj"
377
+ },
378
+ "History": {
379
+ "embeddingComputed": "Embedding obliczony"
376
380
  }
377
- }
381
+ }
@@ -28,7 +28,8 @@
28
28
  "creationMethod": "Como foi criado",
29
29
  "attributedTo": "Atribuído a",
30
30
  "derivedFrom": "Derivado de",
31
- "generatedBy": "Gerado por"
31
+ "generatedBy": "Gerado por",
32
+ "storageUri": "Armazenamento"
32
33
  },
33
34
  "CollaborationPanel": {
34
35
  "title": "Colaboracao",
@@ -373,5 +374,8 @@
373
374
  "semanticScoringHelp": "Usar IA para pontuar resultados por relevância semântica",
374
375
  "searching": "Pesquisando...",
375
376
  "search": "Pesquisar"
377
+ },
378
+ "History": {
379
+ "embeddingComputed": "Embedding calculado"
376
380
  }
377
- }
381
+ }
@@ -28,7 +28,8 @@
28
28
  "creationMethod": "Metodă de creare",
29
29
  "attributedTo": "Atribuit",
30
30
  "derivedFrom": "Derivat din",
31
- "generatedBy": "Generat de"
31
+ "generatedBy": "Generat de",
32
+ "storageUri": "Stocare"
32
33
  },
33
34
  "CollaborationPanel": {
34
35
  "title": "Colaborare",
@@ -373,5 +374,8 @@
373
374
  "semanticScoringHelp": "Folosiți AI pentru a evalua rezultatele după relevanța semantică",
374
375
  "searching": "Se caută...",
375
376
  "search": "Caută"
377
+ },
378
+ "History": {
379
+ "embeddingComputed": "Embedding calculat"
376
380
  }
377
- }
381
+ }
@@ -28,7 +28,8 @@
28
28
  "creationMethod": "Skapandesätt",
29
29
  "attributedTo": "Tillskriven",
30
30
  "derivedFrom": "Härledd från",
31
- "generatedBy": "Genererad av"
31
+ "generatedBy": "Genererad av",
32
+ "storageUri": "Lagring"
32
33
  },
33
34
  "CollaborationPanel": {
34
35
  "title": "Samarbete",
@@ -373,5 +374,8 @@
373
374
  "semanticScoringHelp": "Använd AI för att poängsätta resultat efter semantisk relevans",
374
375
  "searching": "Söker...",
375
376
  "search": "Sök"
377
+ },
378
+ "History": {
379
+ "embeddingComputed": "Embedding beräknad"
376
380
  }
377
- }
381
+ }
@@ -28,7 +28,8 @@
28
28
  "creationMethod": "วิธีการสร้าง",
29
29
  "attributedTo": "อ้างอิงถึง",
30
30
  "derivedFrom": "ได้มาจาก",
31
- "generatedBy": "สร้างโดย"
31
+ "generatedBy": "สร้างโดย",
32
+ "storageUri": "ที่จัดเก็บ"
32
33
  },
33
34
  "CollaborationPanel": {
34
35
  "title": "การทำงานร่วมกัน",
@@ -373,5 +374,8 @@
373
374
  "semanticScoringHelp": "ใช้ AI เพื่อให้คะแนนผลลัพธ์ตามความเกี่ยวข้องเชิงความหมาย",
374
375
  "searching": "กำลังค้นหา...",
375
376
  "search": "ค้นหา"
377
+ },
378
+ "History": {
379
+ "embeddingComputed": "คำนวณเอ็มเบดดิงแล้ว"
376
380
  }
377
- }
381
+ }
@@ -28,7 +28,8 @@
28
28
  "creationMethod": "Oluşturma yöntemi",
29
29
  "attributedTo": "Atfedilen",
30
30
  "derivedFrom": "Kaynağı",
31
- "generatedBy": "Oluşturan"
31
+ "generatedBy": "Oluşturan",
32
+ "storageUri": "Depolama"
32
33
  },
33
34
  "CollaborationPanel": {
34
35
  "title": "İşbirliği",
@@ -373,5 +374,8 @@
373
374
  "semanticScoringHelp": "Sonuçları anlamsal alaka düzeyine göre puanlamak için yapay zeka kullanın",
374
375
  "searching": "Aranıyor...",
375
376
  "search": "Ara"
377
+ },
378
+ "History": {
379
+ "embeddingComputed": "Gömme hesaplandı"
376
380
  }
377
- }
381
+ }
@@ -28,7 +28,8 @@
28
28
  "creationMethod": "Спосіб створення",
29
29
  "attributedTo": "Авторство",
30
30
  "derivedFrom": "Походить від",
31
- "generatedBy": "Створено за допомогою"
31
+ "generatedBy": "Створено за допомогою",
32
+ "storageUri": "Сховище"
32
33
  },
33
34
  "CollaborationPanel": {
34
35
  "title": "Співпраця",
@@ -373,5 +374,8 @@
373
374
  "semanticScoringHelp": "Використовувати ШІ для оцінки результатів за семантичною релевантністю",
374
375
  "searching": "Пошук...",
375
376
  "search": "Пошук"
377
+ },
378
+ "History": {
379
+ "embeddingComputed": "Ембединг обчислено"
376
380
  }
377
- }
381
+ }
@@ -28,7 +28,8 @@
28
28
  "creationMethod": "Cách tạo",
29
29
  "attributedTo": "Được gán cho",
30
30
  "derivedFrom": "Bắt nguồn từ",
31
- "generatedBy": "Được tạo bởi"
31
+ "generatedBy": "Được tạo bởi",
32
+ "storageUri": "Lưu trữ"
32
33
  },
33
34
  "CollaborationPanel": {
34
35
  "title": "Cộng tác",
@@ -373,5 +374,8 @@
373
374
  "semanticScoringHelp": "Sử dụng AI để chấm điểm kết quả theo mức độ liên quan ngữ nghĩa",
374
375
  "searching": "Đang tìm kiếm...",
375
376
  "search": "Tìm kiếm"
377
+ },
378
+ "History": {
379
+ "embeddingComputed": "Đã tính embedding"
376
380
  }
377
- }
381
+ }
@@ -28,7 +28,8 @@
28
28
  "creationMethod": "创建方式",
29
29
  "attributedTo": "归属于",
30
30
  "derivedFrom": "派生自",
31
- "generatedBy": "由…生成"
31
+ "generatedBy": "由…生成",
32
+ "storageUri": "存储"
32
33
  },
33
34
  "CollaborationPanel": {
34
35
  "title": "协作",
@@ -373,5 +374,8 @@
373
374
  "semanticScoringHelp": "使用 AI 按语义相关性对结果进行评分",
374
375
  "searching": "搜索中...",
375
376
  "search": "搜索"
377
+ },
378
+ "History": {
379
+ "embeddingComputed": "嵌入计算完成"
376
380
  }
377
- }
381
+ }
@@ -1,107 +0,0 @@
1
- /**
2
- * Open Resources Manager Interface
3
- *
4
- * Manages a list of open resources (documents/files) with persistence.
5
- * This interface allows apps to provide their own implementation of resource management
6
- * (localStorage, sessionStorage, database, etc.) while components remain framework-agnostic.
7
- *
8
- * Components accept this manager as a prop instead of consuming from Context.
9
- *
10
- * @example
11
- * ```tsx
12
- * // In app (e.g., frontend/src/hooks/useOpenResourcesManager.ts)
13
- * export function useOpenResourcesManager(): OpenResourcesManager {
14
- * const [openResources, setOpenResources] = useState<OpenResource[]>([]);
15
- *
16
- * // Implementation details...
17
- *
18
- * return {
19
- * openResources,
20
- * addResource,
21
- * removeResource,
22
- * updateResourceName,
23
- * reorderResources
24
- * };
25
- * }
26
- *
27
- * // Pass to components as props
28
- * <KnowledgeNavigation openResourcesManager={openResourcesManager} />
29
- * ```
30
- */
31
- interface OpenResource {
32
- /** Unique identifier for the resource */
33
- id: string;
34
- /** Display name of the resource */
35
- name: string;
36
- /** Timestamp when the resource was opened */
37
- openedAt: number;
38
- /** Order/position for manual sorting (optional for backward compatibility) */
39
- order?: number;
40
- /** Media type for icon display (e.g., 'application/pdf', 'text/plain') */
41
- mediaType?: string;
42
- /** Working-tree URI (e.g. "file://docs/overview.md") — used as tooltip in navigation */
43
- storageUri?: string;
44
- }
45
- interface OpenResourcesManager {
46
- /** List of currently open resources */
47
- openResources: OpenResource[];
48
- /**
49
- * Add a new resource to the open list or update if already exists
50
- * @param id - Unique resource identifier
51
- * @param name - Display name of the resource
52
- * @param mediaType - Optional media type for icon display
53
- * @param storageUri - Optional working-tree URI (e.g. "file://docs/overview.md")
54
- */
55
- addResource: (id: string, name: string, mediaType?: string, storageUri?: string) => void;
56
- /**
57
- * Remove a resource from the open list
58
- * @param id - Resource identifier to remove
59
- */
60
- removeResource: (id: string) => void;
61
- /**
62
- * Update the display name of an open resource
63
- * @param id - Resource identifier
64
- * @param name - New display name
65
- */
66
- updateResourceName: (id: string, name: string) => void;
67
- /**
68
- * Reorder resources by moving from one index to another
69
- * @param oldIndex - Current position index
70
- * @param newIndex - Desired position index
71
- */
72
- reorderResources: (oldIndex: number, newIndex: number) => void;
73
- }
74
-
75
- /**
76
- * Session management interface for handling authentication state and session expiry
77
- * Apps implement this interface and pass it to SessionProvider
78
- */
79
- interface SessionState {
80
- /** Whether the user is currently authenticated */
81
- isAuthenticated: boolean;
82
- /** When the session expires (null if not authenticated) */
83
- expiresAt: Date | null;
84
- /** Time in milliseconds until session expires (null if not authenticated) */
85
- timeUntilExpiry: number | null;
86
- /** Whether the session is expiring soon (< 5 minutes) */
87
- isExpiringSoon: boolean;
88
- }
89
- interface SessionManager extends SessionState {
90
- }
91
-
92
- /**
93
- * Translation management interface
94
- * Apps implement this to provide translations using their preferred i18n library
95
- */
96
- interface TranslationManager {
97
- /**
98
- * Translate a key within a namespace
99
- * @param namespace - Translation namespace (e.g., 'Toolbar', 'ResourceViewer')
100
- * @param key - Translation key within the namespace
101
- * @param params - Optional parameters for interpolation
102
- * @returns Translated string
103
- */
104
- t: (namespace: string, key: string, params?: Record<string, any>) => string;
105
- }
106
-
107
- export type { OpenResourcesManager as O, SessionManager as S, TranslationManager as T, OpenResource as a, SessionState as b };
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../translations/ar.json"],"sourcesContent":["{\n \"Toolbar\": {\n \"annotations\": \"التعليقات التوضيحية\",\n \"history\": \"السجل\",\n \"resourceInfo\": \"معلومات المورد\",\n \"collaboration\": \"التعاون\",\n \"userAccount\": \"حساب المستخدم\",\n \"settings\": \"الإعدادات\",\n \"knowledgeBase\": \"قاعدة المعرفة\"\n },\n \"ResourceInfoPanel\": {\n \"title\": \"معلومات المورد\",\n \"locale\": \"اللغة المحلية\",\n \"notSpecified\": \"غير محدد\",\n \"entityTypeTags\": \"علامات نوع الكيان\",\n \"representation\": \"التمثيل\",\n \"mediaType\": \"نوع الوسائط\",\n \"byteSize\": \"الحجم\",\n \"clone\": \"استنساخ\",\n \"cloneDescription\": \"إنشاء رابط استنساخ قابل للمشاركة لهذا المورد\",\n \"archive\": \"أرشفة\",\n \"archiveDescription\": \"نقل هذا المورد إلى حالة الأرشيف\",\n \"unarchive\": \"إلغاء الأرشفة\",\n \"unarchiveDescription\": \"استعادة هذا المورد إلى الحالة النشطة\",\n \"provenance\": \"المصدر والسلسلة\",\n \"createdAt\": \"تاريخ الإنشاء\",\n \"modifiedAt\": \"تاريخ التعديل\",\n \"creationMethod\": \"طريقة الإنشاء\",\n \"attributedTo\": \"منسوب إلى\",\n \"derivedFrom\": \"مشتق من\",\n \"generatedBy\": \"أُنشئ بواسطة\"\n },\n \"CollaborationPanel\": {\n \"title\": \"التعاون\",\n \"connectionStatus\": \"حالة الاتصال\",\n \"live\": \"مباشر\",\n \"disconnected\": \"غير متصل\",\n \"events\": \"{{count}} أحداث\",\n \"lastSync\": \"آخر مزامنة:\",\n \"noActivity\": \"لا يوجد نشاط بعد\",\n \"justNow\": \"الآن\",\n \"secondsAgo\": \"منذ {{count}} ثوانٍ\",\n \"minuteAgo\": \"منذ دقيقة واحدة\",\n \"minutesAgo\": \"منذ {{count}} دقائق\",\n \"hourAgo\": \"منذ ساعة واحدة\",\n \"hoursAgo\": \"منذ {{count}} ساعات\",\n \"realtimeActive\": \"التحديثات في الوقت الفعلي نشطة\",\n \"reconnecting\": \"جارٍ إعادة الاتصال بالخادم...\",\n \"sharing\": \"المشاركة\",\n \"collaborationComingSoon\": \"ميزات التعاون قادمة قريبًا\"\n },\n \"AnnotationHistory\": {\n \"history\": \"السجل\",\n \"loading\": \"جارٍ التحميل...\",\n \"user\": \"المستخدم\",\n \"method\": \"الطريقة\",\n \"viewOriginal\": \"عرض الأصل\",\n \"viewAnnotation\": \"عرض التعليق التوضيحي: {{content}}\",\n \"resourceCreated\": \"تم إنشاء المورد\",\n \"resourceCloned\": \"تم الاستنساخ\",\n \"resourceArchived\": \"تمت الأرشفة\",\n \"resourceUnarchived\": \"تم إلغاء الأرشفة\",\n \"highlightAdded\": \"تمت إضافة تمييز\",\n \"highlightRemoved\": \"تمت إزالة التمييز\",\n \"referenceCreated\": \"تم إنشاء مرجع\",\n \"referenceResolved\": \"تم حل المرجع\",\n \"referenceDeleted\": \"تم حذف المرجع\",\n \"entitytagAdded\": \"تمت إضافة علامة\",\n \"entitytagRemoved\": \"تمت إزالة العلامة\",\n \"assessmentAdded\": \"تمت إضافة تقييم\",\n \"assessmentRemoved\": \"تمت إزالة التقييم\",\n \"annotationAdded\": \"تمت إضافة تعليق توضيحي\",\n \"annotationRemoved\": \"تمت إزالة التعليق التوضيحي\",\n \"annotationBodyUpdated\": \"تم تحديث التعليق التوضيحي\",\n \"jobEvent\": \"حدث مهمة\",\n \"justNow\": \"الآن\",\n \"minutesAgo\": \"منذ {{count}}د\",\n \"hoursAgo\": \"منذ {{count}}س\",\n \"daysAgo\": \"منذ {{count}}ي\"\n },\n \"CommentsPanel\": {\n \"title\": \"التعليقات\",\n \"noComments\": \"لا توجد تعليقات بعد. حدد نصًا وانقر على تعليق لإضافة واحد.\",\n \"commentPlaceholder\": \"اكتب تعليقك هنا...\",\n \"save\": \"حفظ\",\n \"cancel\": \"إلغاء\",\n \"edit\": \"تعديل\",\n \"annotateComments\": \"توضيح التعليقات\",\n \"instructions\": \"التعليمات\",\n \"optional\": \"(اختياري)\",\n \"instructionsPlaceholder\": \"مثال: التركيز على المصطلحات التقنية...\",\n \"annotate\": \"توضيح\",\n \"annotating\": \"جارٍ التوضيح...\",\n \"toneLabel\": \"النبرة\",\n \"toneOptional\": \"(اختياري)\",\n \"toneScholarly\": \"أكاديمي\",\n \"toneExplanatory\": \"توضيحي\",\n \"toneConversational\": \"حواري\",\n \"toneTechnical\": \"تقني\",\n \"densityLabel\": \"الكثافة\",\n \"densitySparse\": \"متفرق\",\n \"densityDense\": \"كثيف\",\n \"fragmentSelected\": \"تم تحديد جزء\",\n \"imageRegionSelected\": \"تم تحديد منطقة من الصورة\",\n \"closeProgress\": \"إغلاق\"\n },\n \"HighlightPanel\": {\n \"title\": \"التمييزات\",\n \"noHighlights\": \"لا توجد تمييزات بعد. استخدم التوضيح بالذكاء الاصطناعي للعثور على الفقرات المهمة.\",\n \"annotateHighlights\": \"توضيح التمييزات\",\n \"instructions\": \"التعليمات\",\n \"optional\": \"(اختياري)\",\n \"instructionsPlaceholder\": \"مثال: التركيز على المفاهيم التقنية الرئيسية...\",\n \"annotate\": \"توضيح\",\n \"annotating\": \"جارٍ التوضيح...\",\n \"cancel\": \"إلغاء\",\n \"densityLabel\": \"الكثافة\",\n \"densitySparse\": \"متفرق\",\n \"densityDense\": \"كثيف\",\n \"closeProgress\": \"إغلاق\"\n },\n \"AssessmentPanel\": {\n \"title\": \"التقييمات\",\n \"noAssessments\": \"لا توجد تقييمات بعد. استخدم التوضيح بالذكاء الاصطناعي لتقييم الفقرات.\",\n \"assessmentPlaceholder\": \"اكتب تقييمك هنا...\",\n \"save\": \"حفظ\",\n \"cancel\": \"إلغاء\",\n \"annotateAssessments\": \"توضيح التقييمات\",\n \"instructions\": \"التعليمات\",\n \"optional\": \"(اختياري)\",\n \"instructionsPlaceholder\": \"مثال: تقييم الادعاءات من حيث الدقة والأدلة...\",\n \"annotate\": \"توضيح\",\n \"annotating\": \"جارٍ التوضيح...\",\n \"toneLabel\": \"النبرة\",\n \"toneOptional\": \"(اختياري)\",\n \"toneAnalytical\": \"تحليلي\",\n \"toneCritical\": \"نقدي\",\n \"toneBalanced\": \"متوازن\",\n \"toneConstructive\": \"بنّاء\",\n \"densityLabel\": \"الكثافة\",\n \"densitySparse\": \"متفرق\",\n \"densityDense\": \"كثيف\",\n \"fragmentSelected\": \"تم تحديد جزء\",\n \"imageRegionSelected\": \"تم تحديد منطقة من الصورة\",\n \"closeProgress\": \"إغلاق\"\n },\n \"TaggingPanel\": {\n \"title\": \"العلامات\",\n \"noTags\": \"لا توجد علامات بعد. استخدم التوضيح بالذكاء الاصطناعي لتحديد الأدوار الهيكلية.\",\n \"annotateTags\": \"توضيح العلامات\",\n \"selectSchema\": \"اختيار الإطار\",\n \"schemaLegal\": \"التحليل القانوني (IRAC)\",\n \"schemaScientific\": \"الورقة العلمية (IMRAD)\",\n \"schemaArgument\": \"بنية الحجة (Toulmin)\",\n \"selectCategories\": \"اختيار الفئات\",\n \"categoryIssue\": \"القضية\",\n \"categoryRule\": \"القاعدة\",\n \"categoryApplication\": \"التطبيق\",\n \"categoryConclusion\": \"الخاتمة\",\n \"categoryIntroduction\": \"المقدمة\",\n \"categoryMethods\": \"المناهج\",\n \"categoryResults\": \"النتائج\",\n \"categoryDiscussion\": \"المناقشة\",\n \"categoryClaim\": \"الادعاء\",\n \"categoryEvidence\": \"الدليل\",\n \"categoryWarrant\": \"المبرر\",\n \"categoryCounterargument\": \"الحجة المضادة\",\n \"categoryRebuttal\": \"الدحض\",\n \"annotate\": \"توضيح\",\n \"annotating\": \"جارٍ التوضيح...\",\n \"cancel\": \"إلغاء\",\n \"selectAll\": \"تحديد الكل\",\n \"deselectAll\": \"إلغاء تحديد الكل\",\n \"categoriesSelected\": \"{count, plural, =0 {لم يتم تحديد فئات} =1 {فئة واحدة محددة} other {# فئات محددة}}\",\n \"createTagForSelection\": \"إنشاء علامة للتحديد\",\n \"selectCategory\": \"اختيار الفئة\",\n \"chooseCategory\": \"اختر فئة...\",\n \"fragmentSelected\": \"تم تحديد جزء\",\n \"imageRegionSelected\": \"تم تحديد منطقة من الصورة\"\n },\n \"UnifiedAnnotationsPanel\": {\n \"title\": \"التعليقات التوضيحية\",\n \"statistics\": \"الإحصائيات\",\n \"highlight\": \"التمييزات\",\n \"reference\": \"المراجع\",\n \"assessment\": \"التقييمات\",\n \"comment\": \"التعليقات\",\n \"tag\": \"العلامات\"\n },\n \"StatisticsPanel\": {\n \"title\": \"الإحصائيات\",\n \"highlights\": \"التمييزات\",\n \"comments\": \"التعليقات\",\n \"assessments\": \"التقييمات\",\n \"tags\": \"العلامات\",\n \"references\": \"المراجع\",\n \"stub\": \"مبدئي\",\n \"resolved\": \"محلول\",\n \"entityTypes\": \"أنواع الكيانات\"\n },\n \"ReferencesPanel\": {\n \"title\": \"المراجع\",\n \"noReferences\": \"لا توجد مراجع بعد. حدد نصًا لإنشاء مراجع لموارد أخرى.\",\n \"outgoingReferences\": \"المراجع الصادرة\",\n \"incomingReferences\": \"المراجع الواردة\",\n \"noIncomingReferences\": \"لا توجد مراجع واردة\",\n \"stub\": \"مرجع مبدئي (غير مربوط)\",\n \"resolved\": \"مرجع محلول (مربوط)\",\n \"open\": \"فتح\",\n \"unlink\": \"إلغاء الربط\",\n \"resolve\": \"حل المرجع\",\n \"cancel\": \"إلغاء\",\n \"createReference\": \"إنشاء مرجع\",\n \"entityTypesOptional\": \"أنواع الكيانات (اختياري)\",\n \"fragmentSelected\": \"تم تحديد جزء\",\n \"imageRegionSelected\": \"تم تحديد منطقة من الصورة\",\n \"annotateReferences\": \"توضيح المراجع\",\n \"selectEntityTypes\": \"أنواع الكيانات:\",\n \"select\": \"تحديد\",\n \"deselect\": \"إلغاء التحديد\",\n \"noEntityTypes\": \"لا توجد أنواع كيانات متاحة\",\n \"typesSelected\": \"{count, plural, =1 {نوع واحد محدد} other {# أنواع محددة}}\",\n \"annotate\": \"توضيح\",\n \"annotating\": \"جارٍ التوضيح...\",\n \"includeDescriptiveReferences\": \"تضمين المراجع الوصفية\",\n \"descriptiveReferencesTooltip\": \"البحث أيضًا عن عبارات مثل 'الرئيس التنفيذي'، 'عملاق التكنولوجيا'، 'الفيزيائي' (بالإضافة إلى الأسماء)\",\n \"annotationProgressTitle\": \"توضيح مراجع الكيانات\",\n \"cancelAnnotation\": \"إلغاء التوضيح\",\n \"found\": \"تم العثور على {{count}}\",\n \"complete\": \"اكتمل التوضيح!\",\n \"failed\": \"فشل التوضيح\",\n \"current\": \"الحالي: {{entityType}}\",\n \"closeProgress\": \"إغلاق\",\n \"loading\": \"جارٍ التحميل...\",\n \"loadingEllipsis\": \"جارٍ التحميل...\",\n \"untitledResource\": \"مورد بدون عنوان\",\n \"noText\": \"لا يوجد نص\"\n },\n \"KeyboardShortcuts\": {\n \"title\": \"اختصارات لوحة المفاتيح\",\n \"closeDialog\": \"إغلاق مربع الحوار\",\n \"or\": \"أو\",\n \"navigationTitle\": \"التنقل\",\n \"navOpenSearch\": \"فتح البحث الشامل\",\n \"navOpenSearchAlt\": \"فتح البحث الشامل (بديل)\",\n \"navCreateResource\": \"إنشاء مورد جديد\",\n \"navCloseOverlays\": \"إغلاق جميع الطبقات العلوية (ضغط مزدوج)\",\n \"navShowHelp\": \"عرض مساعدة اختصارات لوحة المفاتيح\",\n \"sidebarTitle\": \"الشريط الجانبي للمعرفة\",\n \"sidebarCollapse\": \"طي الشريط الجانبي\",\n \"sidebarExpand\": \"توسيع الشريط الجانبي\",\n \"sidebarPickup\": \"التقاط علامة تبويب المورد (عند التركيز)\",\n \"sidebarMove\": \"نقل علامة تبويب المورد (أثناء السحب)\",\n \"sidebarDrop\": \"إفلات علامة تبويب المورد (أثناء السحب)\",\n \"sidebarCancel\": \"إلغاء عملية السحب\",\n \"annotationsTitle\": \"تعليقات المورد التوضيحية\",\n \"annotHighlight\": \"إنشاء تمييز من التعليق التوضيحي (مباشر)\",\n \"annotReference\": \"فتح نافذة المرجع المنبثقة للتعليق التوضيحي\",\n \"annotDelete\": \"حذف التعليق التوضيحي المركّز عليه\",\n \"annotNavigate\": \"التنقل عبر التعليقات التوضيحية\",\n \"annotNavigateBack\": \"التنقل عبر التعليقات التوضيحية للخلف\",\n \"listsTitle\": \"القوائم والشبكات\",\n \"listsFilterNav\": \"التنقل بين مرشحات أنواع الكيانات\",\n \"listsGridNav\": \"التنقل في شبكة الموارد\",\n \"listsJumpFirst\": \"الانتقال إلى العنصر الأول\",\n \"listsJumpLast\": \"الانتقال إلى العنصر الأخير\",\n \"searchModalTitle\": \"في نافذة البحث\",\n \"searchNav\": \"التنقل في نتائج البحث\",\n \"searchSelect\": \"اختيار النتيجة\",\n \"searchClose\": \"إغلاق البحث\",\n \"modalTitle\": \"عناصر التحكم في النوافذ المنبثقة\",\n \"modalClose\": \"إغلاق النافذة المنبثقة النشطة\",\n \"modalNavForward\": \"التنقل للأمام عبر الأزرار\",\n \"modalNavBackward\": \"التنقل للخلف عبر الأزرار\",\n \"modalActivate\": \"تفعيل الزر المركّز عليه\",\n \"accessibilityTitle\": \"إمكانية الوصول\",\n \"a11ySkipLinks\": \"الانتقال إلى روابط التخطي (عند بداية الصفحة)\",\n \"a11yFollowLink\": \"اتباع رابط التخطي\",\n \"macNote\": \"استخدام اختصارات لوحة مفاتيح Mac. ⌘ هو مفتاح Command.\",\n \"windowsNote\": \"استخدام اختصارات لوحة مفاتيح Windows/Linux. Ctrl هو مفتاح التحكم.\",\n \"footerHint\": \"اضغط {{key}} في أي وقت لعرض هذه المساعدة\",\n \"close\": \"إغلاق\"\n },\n \"AnnotateToolbar\": {\n \"modeGroup\": \"الوضع\",\n \"browse\": \"تصفح\",\n \"annotate\": \"توضيح\",\n \"selectionGroup\": \"الدافع\",\n \"clickGroup\": \"النقر\",\n \"shapeGroup\": \"الشكل\",\n \"none\": \"لا شيء\",\n \"linking\": \"مرجع\",\n \"highlighting\": \"تمييز\",\n \"assessing\": \"تقييم\",\n \"commenting\": \"تعليق\",\n \"tagging\": \"علامة\",\n \"detail\": \"تفصيل\",\n \"follow\": \"متابعة\",\n \"deleting\": \"حذف\",\n \"jsonld\": \"JSON-LD\",\n \"rectangle\": \"مستطيل\",\n \"circle\": \"دائرة\",\n \"polygon\": \"مضلع\"\n },\n \"CollapsibleResourceNavigation\": {\n \"title\": \"التنقل\",\n \"collapseSidebar\": \"طي الشريط الجانبي\",\n \"expandSidebar\": \"توسيع الشريط الجانبي\",\n \"dragToReorder\": \"اسحب لإعادة الترتيب\",\n \"dragToReorderDoc\": \"اسحب لإعادة ترتيب {{name}}\",\n \"closeResource\": \"إغلاق المورد\",\n \"dragInstructions\": \"لإعادة ترتيب الموارد: استخدم Tab للانتقال إلى مورد. اضغط Alt+سهم لأعلى للتحريك لأعلى أو Alt+سهم لأسفل للتحريك لأسفل. للسحب والإفلات: اضغط على شريط المسافة لالتقاط العنصر. استخدم مفاتيح الأسهم لتحريكه. اضغط على شريط المسافة مرة أخرى للإفلات.\"\n },\n \"ResourceViewer\": {\n \"deleteConfirmationTitle\": \"حذف التعليق التوضيحي\",\n \"deleteConfirmationMessage\": \"هل أنت متأكد أنك تريد حذف هذا التعليق التوضيحي؟ لا يمكن التراجع عن هذا الإجراء.\",\n \"deleteConfirmationCancel\": \"إلغاء\",\n \"deleteConfirmationDelete\": \"حذف\"\n },\n \"Settings\": {\n \"title\": \"الإعدادات\",\n \"lineNumbers\": \"أرقام الأسطر\",\n \"lineNumbersVisible\": \"مرئية\",\n \"lineNumbersHidden\": \"مخفية\",\n \"theme\": \"السمة\",\n \"themeLight\": \"فاتح\",\n \"themeDark\": \"داكن\",\n \"themeSystem\": \"النظام\",\n \"themeSystemActive\": \"النظام ({{mode}})\",\n \"themeModeActive\": \"استخدام وضع {{mode}}\",\n \"language\": \"اللغة\",\n \"languageHint\": \"تغيير اللغة في شريط التنقل الرئيسي\",\n \"languageChanging\": \"جارٍ تغيير اللغة...\",\n \"hoverDelay\": \"تأخير التمرير\",\n \"hoverDelayFast\": \"سريع\",\n \"hoverDelaySlow\": \"بطيء\",\n \"hoverDelayDescription\": \"تأخير {{delay}} ميلي ثانية قبل ظهور تأثيرات التمرير\"\n },\n \"AnnotateView\": {},\n \"ReferenceWizard\": {\n \"gatherTitle\": \"السياق المُجمَّع\",\n \"configureGenerationTitle\": \"تكوين التوليد\",\n \"configureSearchTitle\": \"إعدادات البحث\",\n \"searchResultsTitle\": \"نتائج البحث\",\n \"sourceContextLabel\": \"سياق التعليق التوضيحي في المورد\",\n \"connectionsLabel\": \"التعليقات التوضيحية للأقران\",\n \"citedByLabel\": \"المورد مُستشهد به من قِبل\",\n \"userHintLabel\": \"تلميح\",\n \"userHintPlaceholder\": \"صف ما يشير إليه هذا التعليق التوضيحي...\",\n \"loadingContext\": \"جارٍ جمع السياق...\",\n \"failedContext\": \"فشل في جمع السياق\",\n \"cancel\": \"إلغاء\",\n \"generate\": \"توليد\",\n \"compose\": \"تأليف\",\n \"resolutionStrategyLabel\": \"استراتيجية الحل\",\n \"back\": \"رجوع\",\n \"link\": \"رابط\",\n \"score\": \"درجة\",\n \"noResults\": \"لم يتم العثور على نتائج\",\n \"resourceTitle\": \"عنوان المورد\",\n \"resourceTitlePlaceholder\": \"أدخل عنوان المورد...\",\n \"additionalInstructions\": \"تعليمات إضافية\",\n \"additionalInstructionsPlaceholder\": \"أدخل تعليمات إضافية...\",\n \"language\": \"اللغة\",\n \"languageHelp\": \"لغة المحتوى المُولَّد\",\n \"creativity\": \"الإبداع\",\n \"creativityFocused\": \"مركّز\",\n \"creativityCreative\": \"إبداعي\",\n \"maxLength\": \"الحد الأقصى للطول\",\n \"maxLengthHelp\": \"العدد الأقصى من الرموز\",\n \"maxResults\": \"الحد الأقصى للنتائج\",\n \"semanticScoring\": \"التقييم الدلالي\",\n \"semanticScoringHelp\": \"استخدام الذكاء الاصطناعي لتقييم النتائج حسب الصلة الدلالية\",\n \"searching\": \"جاري البحث...\",\n \"search\": \"بحث\"\n }\n}"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../translations/bn.json"],"sourcesContent":["{\n \"Toolbar\": {\n \"annotations\": \"টীকাসমূহ\",\n \"history\": \"ইতিহাস\",\n \"resourceInfo\": \"সম্পদের তথ্য\",\n \"collaboration\": \"সহযোগিতা\",\n \"userAccount\": \"ব্যবহারকারীর অ্যাকাউন্ট\",\n \"settings\": \"সেটিংস\",\n \"knowledgeBase\": \"জ্ঞান ভান্ডার\"\n },\n \"ResourceInfoPanel\": {\n \"title\": \"সম্পদের তথ্য\",\n \"locale\": \"লোকেল\",\n \"notSpecified\": \"নির্দিষ্ট করা হয়নি\",\n \"entityTypeTags\": \"সত্তার ধরনের ট্যাগ\",\n \"representation\": \"উপস্থাপনা\",\n \"mediaType\": \"মিডিয়ার ধরন\",\n \"byteSize\": \"আকার\",\n \"clone\": \"ক্লোন\",\n \"cloneDescription\": \"এই সম্পদের জন্য একটি শেয়ারযোগ্য ক্লোন লিঙ্ক তৈরি করুন\",\n \"archive\": \"সংরক্ষণাগারভুক্ত করুন\",\n \"archiveDescription\": \"এই সম্পদটিকে সংরক্ষণাগারভুক্ত অবস্থায় স্থানান্তর করুন\",\n \"unarchive\": \"সংরক্ষণাগার থেকে পুনরুদ্ধার করুন\",\n \"unarchiveDescription\": \"এই সম্পদটিকে সক্রিয় অবস্থায় পুনরুদ্ধার করুন\",\n \"provenance\": \"উৎস ও উদ্ভব\",\n \"createdAt\": \"তৈরির তারিখ\",\n \"modifiedAt\": \"পরিবর্তনের তারিখ\",\n \"creationMethod\": \"তৈরির পদ্ধতি\",\n \"attributedTo\": \"সম্পাদককৃত\",\n \"derivedFrom\": \"থেকে উৎপন্ন\",\n \"generatedBy\": \"তৈরিকারক\"\n },\n \"CollaborationPanel\": {\n \"title\": \"সহযোগিতা\",\n \"connectionStatus\": \"সংযোগের অবস্থা\",\n \"live\": \"সরাসরি\",\n \"disconnected\": \"সংযোগ বিচ্ছিন্ন\",\n \"events\": \"{{count}} ঘটনা\",\n \"lastSync\": \"সর্বশেষ সিঙ্ক:\",\n \"noActivity\": \"এখনো কোনো কার্যকলাপ নেই\",\n \"justNow\": \"এইমাত্র\",\n \"secondsAgo\": \"{{count}} সেকেন্ড আগে\",\n \"minuteAgo\": \"১ মিনিট আগে\",\n \"minutesAgo\": \"{{count}} মিনিট আগে\",\n \"hourAgo\": \"১ ঘণ্টা আগে\",\n \"hoursAgo\": \"{{count}} ঘণ্টা আগে\",\n \"realtimeActive\": \"রিয়েল-টাইম আপডেট সক্রিয় আছে\",\n \"reconnecting\": \"সার্ভারে পুনরায় সংযোগ হচ্ছে...\",\n \"sharing\": \"শেয়ারিং\",\n \"collaborationComingSoon\": \"সহযোগিতা বৈশিষ্ট্য শীঘ্রই আসছে\"\n },\n \"AnnotationHistory\": {\n \"history\": \"ইতিহাস\",\n \"loading\": \"লোড হচ্ছে...\",\n \"user\": \"ব্যবহারকারী\",\n \"method\": \"পদ্ধতি\",\n \"viewOriginal\": \"মূল দেখুন\",\n \"viewAnnotation\": \"টীকা দেখুন: {{content}}\",\n \"resourceCreated\": \"সম্পদ তৈরি হয়েছে\",\n \"resourceCloned\": \"ক্লোন করা হয়েছে\",\n \"resourceArchived\": \"সংরক্ষণাগারভুক্ত\",\n \"resourceUnarchived\": \"সংরক্ষণাগার থেকে পুনরুদ্ধারকৃত\",\n \"highlightAdded\": \"হাইলাইট যোগ করা হয়েছে\",\n \"highlightRemoved\": \"হাইলাইট অপসারিত হয়েছে\",\n \"referenceCreated\": \"রেফারেন্স তৈরি হয়েছে\",\n \"referenceResolved\": \"রেফারেন্স সমাধান হয়েছে\",\n \"referenceDeleted\": \"রেফারেন্স মুছে ফেলা হয়েছে\",\n \"entitytagAdded\": \"ট্যাগ যোগ করা হয়েছে\",\n \"entitytagRemoved\": \"ট্যাগ অপসারিত হয়েছে\",\n \"assessmentAdded\": \"মূল্যায়ন যোগ করা হয়েছে\",\n \"assessmentRemoved\": \"মূল্যায়ন অপসারিত হয়েছে\",\n \"annotationAdded\": \"টীকা যোগ করা হয়েছে\",\n \"annotationRemoved\": \"টীকা অপসারিত হয়েছে\",\n \"annotationBodyUpdated\": \"টীকা আপডেট হয়েছে\",\n \"jobEvent\": \"কাজের ঘটনা\",\n \"justNow\": \"এইমাত্র\",\n \"minutesAgo\": \"{{count}} মি. আগে\",\n \"hoursAgo\": \"{{count}} ঘ. আগে\",\n \"daysAgo\": \"{{count}} দি. আগে\"\n },\n \"CommentsPanel\": {\n \"title\": \"মন্তব্যসমূহ\",\n \"noComments\": \"এখনো কোনো মন্তব্য নেই। পাঠ্য নির্বাচন করুন এবং একটি যোগ করতে মন্তব্যে ক্লিক করুন।\",\n \"commentPlaceholder\": \"এখানে আপনার মন্তব্য লিখুন...\",\n \"save\": \"সংরক্ষণ করুন\",\n \"cancel\": \"বাতিল করুন\",\n \"edit\": \"সম্পাদনা করুন\",\n \"annotateComments\": \"মন্তব্য টীকাকরণ\",\n \"instructions\": \"নির্দেশনা\",\n \"optional\": \"(ঐচ্ছিক)\",\n \"instructionsPlaceholder\": \"যেমন, প্রযুক্তিগত পরিভাষায় মনোযোগ দিন...\",\n \"annotate\": \"টীকাকরণ\",\n \"annotating\": \"টীকাকরণ হচ্ছে...\",\n \"toneLabel\": \"সুর\",\n \"toneOptional\": \"(ঐচ্ছিক)\",\n \"toneScholarly\": \"পাণ্ডিত্যপূর্ণ\",\n \"toneExplanatory\": \"ব্যাখ্যামূলক\",\n \"toneConversational\": \"কথোপকথনমূলক\",\n \"toneTechnical\": \"প্রযুক্তিগত\",\n \"densityLabel\": \"ঘনত্ব\",\n \"densitySparse\": \"বিরল\",\n \"densityDense\": \"ঘন\",\n \"fragmentSelected\": \"অংশ নির্বাচিত\",\n \"imageRegionSelected\": \"ছবির অঞ্চল নির্বাচিত\",\n \"closeProgress\": \"বন্ধ করুন\"\n },\n \"HighlightPanel\": {\n \"title\": \"হাইলাইটসমূহ\",\n \"noHighlights\": \"এখনো কোনো হাইলাইট নেই। গুরুত্বপূর্ণ অনুচ্ছেদ খুঁজতে AI টীকাকরণ ব্যবহার করুন।\",\n \"annotateHighlights\": \"হাইলাইট টীকাকরণ\",\n \"instructions\": \"নির্দেশনা\",\n \"optional\": \"(ঐচ্ছিক)\",\n \"instructionsPlaceholder\": \"যেমন, মূল প্রযুক্তিগত ধারণাগুলিতে মনোযোগ দিন...\",\n \"annotate\": \"টীকাকরণ\",\n \"annotating\": \"টীকাকরণ হচ্ছে...\",\n \"cancel\": \"বাতিল করুন\",\n \"densityLabel\": \"ঘনত্ব\",\n \"densitySparse\": \"বিরল\",\n \"densityDense\": \"ঘন\",\n \"closeProgress\": \"বন্ধ করুন\"\n },\n \"AssessmentPanel\": {\n \"title\": \"মূল্যায়নসমূহ\",\n \"noAssessments\": \"এখনো কোনো মূল্যায়ন নেই। অনুচ্ছেদ মূল্যায়ন করতে AI টীকাকরণ ব্যবহার করুন।\",\n \"assessmentPlaceholder\": \"এখানে আপনার মূল্যায়ন লিখুন...\",\n \"save\": \"সংরক্ষণ করুন\",\n \"cancel\": \"বাতিল করুন\",\n \"annotateAssessments\": \"মূল্যায়ন টীকাকরণ\",\n \"instructions\": \"নির্দেশনা\",\n \"optional\": \"(ঐচ্ছিক)\",\n \"instructionsPlaceholder\": \"যেমন, সঠিকতা এবং প্রমাণের জন্য দাবিগুলি মূল্যায়ন করুন...\",\n \"annotate\": \"টীকাকরণ\",\n \"annotating\": \"টীকাকরণ হচ্ছে...\",\n \"toneLabel\": \"সুর\",\n \"toneOptional\": \"(ঐচ্ছিক)\",\n \"toneAnalytical\": \"বিশ্লেষণাত্মক\",\n \"toneCritical\": \"সমালোচনামূলক\",\n \"toneBalanced\": \"ভারসাম্যপূর্ণ\",\n \"toneConstructive\": \"গঠনমূলক\",\n \"densityLabel\": \"ঘনত্ব\",\n \"densitySparse\": \"বিরল\",\n \"densityDense\": \"ঘন\",\n \"fragmentSelected\": \"অংশ নির্বাচিত\",\n \"imageRegionSelected\": \"ছবির অঞ্চল নির্বাচিত\",\n \"closeProgress\": \"বন্ধ করুন\"\n },\n \"TaggingPanel\": {\n \"title\": \"ট্যাগসমূহ\",\n \"noTags\": \"এখনো কোনো ট্যাগ নেই। কাঠামোগত ভূমিকা শনাক্ত করতে AI টীকাকরণ ব্যবহার করুন।\",\n \"annotateTags\": \"ট্যাগ টীকাকরণ\",\n \"selectSchema\": \"ফ্রেমওয়ার্ক নির্বাচন করুন\",\n \"schemaLegal\": \"আইনি বিশ্লেষণ (IRAC)\",\n \"schemaScientific\": \"বৈজ্ঞানিক গবেষণাপত্র (IMRAD)\",\n \"schemaArgument\": \"যুক্তি কাঠামো (Toulmin)\",\n \"selectCategories\": \"বিভাগ নির্বাচন করুন\",\n \"categoryIssue\": \"বিষয়\",\n \"categoryRule\": \"নিয়ম\",\n \"categoryApplication\": \"প্রয়োগ\",\n \"categoryConclusion\": \"উপসংহার\",\n \"categoryIntroduction\": \"ভূমিকা\",\n \"categoryMethods\": \"পদ্ধতি\",\n \"categoryResults\": \"ফলাফল\",\n \"categoryDiscussion\": \"আলোচনা\",\n \"categoryClaim\": \"দাবি\",\n \"categoryEvidence\": \"প্রমাণ\",\n \"categoryWarrant\": \"যুক্তিসূত্র\",\n \"categoryCounterargument\": \"প্রতিযুক্তি\",\n \"categoryRebuttal\": \"খণ্ডন\",\n \"annotate\": \"টীকাকরণ\",\n \"annotating\": \"টীকাকরণ হচ্ছে...\",\n \"cancel\": \"বাতিল করুন\",\n \"selectAll\": \"সমস্ত নির্বাচন করুন\",\n \"deselectAll\": \"সমস্ত অনির্বাচন করুন\",\n \"categoriesSelected\": \"{count, plural, =0 {কোনো বিভাগ নির্বাচিত নয়} =1 {১টি বিভাগ নির্বাচিত} other {# টি বিভাগ নির্বাচিত}}\",\n \"createTagForSelection\": \"নির্বাচনের জন্য ট্যাগ তৈরি করুন\",\n \"selectCategory\": \"বিভাগ নির্বাচন করুন\",\n \"chooseCategory\": \"একটি বিভাগ বেছে নিন...\",\n \"fragmentSelected\": \"অংশ নির্বাচিত\",\n \"imageRegionSelected\": \"ছবির অঞ্চল নির্বাচিত\"\n },\n \"UnifiedAnnotationsPanel\": {\n \"title\": \"টীকাসমূহ\",\n \"statistics\": \"পরিসংখ্যান\",\n \"highlight\": \"হাইলাইটসমূহ\",\n \"reference\": \"রেফারেন্সসমূহ\",\n \"assessment\": \"মূল্যায়নসমূহ\",\n \"comment\": \"মন্তব্যসমূহ\",\n \"tag\": \"ট্যাগসমূহ\"\n },\n \"StatisticsPanel\": {\n \"title\": \"পরিসংখ্যান\",\n \"highlights\": \"হাইলাইটসমূহ\",\n \"comments\": \"মন্তব্যসমূহ\",\n \"assessments\": \"মূল্যায়নসমূহ\",\n \"tags\": \"ট্যাগসমূহ\",\n \"references\": \"রেফারেন্সসমূহ\",\n \"stub\": \"অসম্পূর্ণ\",\n \"resolved\": \"সমাধানকৃত\",\n \"entityTypes\": \"সত্তার ধরন\"\n },\n \"ReferencesPanel\": {\n \"title\": \"রেফারেন্সসমূহ\",\n \"noReferences\": \"এখনো কোনো রেফারেন্স নেই। অন্যান্য সম্পদের রেফারেন্স তৈরি করতে পাঠ্য নির্বাচন করুন।\",\n \"outgoingReferences\": \"বহির্গামী রেফারেন্স\",\n \"incomingReferences\": \"আগত রেফারেন্স\",\n \"noIncomingReferences\": \"কোনো আগত রেফারেন্স নেই\",\n \"stub\": \"অসম্পূর্ণ রেফারেন্স (সংযুক্ত নয়)\",\n \"resolved\": \"সমাধানকৃত রেফারেন্স (সংযুক্ত)\",\n \"open\": \"খুলুন\",\n \"unlink\": \"সংযোগ বিচ্ছিন্ন করুন\",\n \"resolve\": \"রেফারেন্স সমাধান করুন\",\n \"cancel\": \"বাতিল করুন\",\n \"createReference\": \"রেফারেন্স তৈরি করুন\",\n \"entityTypesOptional\": \"সত্তার ধরন (ঐচ্ছিক)\",\n \"fragmentSelected\": \"অংশ নির্বাচিত\",\n \"imageRegionSelected\": \"ছবির অঞ্চল নির্বাচিত\",\n \"annotateReferences\": \"রেফারেন্স টীকাকরণ\",\n \"selectEntityTypes\": \"সত্তার ধরন:\",\n \"select\": \"নির্বাচন করুন\",\n \"deselect\": \"অনির্বাচন করুন\",\n \"noEntityTypes\": \"কোনো সত্তার ধরন উপলব্ধ নেই\",\n \"typesSelected\": \"{count, plural, =1 {১টি ধরন নির্বাচিত} other {# টি ধরন নির্বাচিত}}\",\n \"annotate\": \"টীকাকরণ\",\n \"annotating\": \"টীকাকরণ হচ্ছে...\",\n \"includeDescriptiveReferences\": \"বর্ণনামূলক রেফারেন্স অন্তর্ভুক্ত করুন\",\n \"descriptiveReferencesTooltip\": \"নামের পাশাপাশি 'সিইও', 'প্রযুক্তি জায়ান্ট', 'পদার্থবিদ' এর মতো বাক্যাংশও খুঁজুন\",\n \"annotationProgressTitle\": \"সত্তা রেফারেন্স টীকাকরণ হচ্ছে\",\n \"cancelAnnotation\": \"টীকাকরণ বাতিল করুন\",\n \"found\": \"{{count}} টি পাওয়া গেছে\",\n \"complete\": \"টীকাকরণ সম্পূর্ণ!\",\n \"failed\": \"টীকাকরণ ব্যর্থ\",\n \"current\": \"বর্তমান: {{entityType}}\",\n \"closeProgress\": \"বন্ধ করুন\",\n \"loading\": \"লোড হচ্ছে...\",\n \"loadingEllipsis\": \"লোড হচ্ছে...\",\n \"untitledResource\": \"শিরোনামবিহীন সম্পদ\",\n \"noText\": \"কোনো পাঠ্য নেই\"\n },\n \"KeyboardShortcuts\": {\n \"title\": \"কীবোর্ড শর্টকাট\",\n \"closeDialog\": \"ডায়ালগ বন্ধ করুন\",\n \"or\": \"অথবা\",\n \"navigationTitle\": \"নেভিগেশন\",\n \"navOpenSearch\": \"গ্লোবাল অনুসন্ধান খুলুন\",\n \"navOpenSearchAlt\": \"গ্লোবাল অনুসন্ধান খুলুন (বিকল্প)\",\n \"navCreateResource\": \"নতুন সম্পদ তৈরি করুন\",\n \"navCloseOverlays\": \"সমস্ত ওভারলে বন্ধ করুন (দুইবার চাপুন)\",\n \"navShowHelp\": \"কীবোর্ড শর্টকাট সাহায্য দেখান\",\n \"sidebarTitle\": \"জ্ঞান সাইডবার\",\n \"sidebarCollapse\": \"সাইডবার সংকুচিত করুন\",\n \"sidebarExpand\": \"সাইডবার প্রসারিত করুন\",\n \"sidebarPickup\": \"সম্পদ ট্যাব তুলে নিন (ফোকাসে থাকলে)\",\n \"sidebarMove\": \"সম্পদ ট্যাব সরান (টানাটানির সময়)\",\n \"sidebarDrop\": \"সম্পদ ট্যাব ছেড়ে দিন (টানাটানির সময়)\",\n \"sidebarCancel\": \"টানাটানি কার্যক্রম বাতিল করুন\",\n \"annotationsTitle\": \"সম্পদ টীকাসমূহ\",\n \"annotHighlight\": \"টীকা থেকে হাইলাইট তৈরি করুন (সরাসরি)\",\n \"annotReference\": \"টীকার জন্য রেফারেন্স পপআপ খুলুন\",\n \"annotDelete\": \"ফোকাসকৃত টীকা মুছে ফেলুন\",\n \"annotNavigate\": \"টীকাসমূহের মধ্যে নেভিগেট করুন\",\n \"annotNavigateBack\": \"টীকাসমূহে পেছনে নেভিগেট করুন\",\n \"listsTitle\": \"তালিকা এবং গ্রিড\",\n \"listsFilterNav\": \"সত্তার ধরনের ফিল্টার নেভিগেট করুন\",\n \"listsGridNav\": \"সম্পদ গ্রিড নেভিগেট করুন\",\n \"listsJumpFirst\": \"প্রথম আইটেমে যান\",\n \"listsJumpLast\": \"শেষ আইটেমে যান\",\n \"searchModalTitle\": \"অনুসন্ধান মোডালে\",\n \"searchNav\": \"অনুসন্ধান ফলাফল নেভিগেট করুন\",\n \"searchSelect\": \"ফলাফল নির্বাচন করুন\",\n \"searchClose\": \"অনুসন্ধান বন্ধ করুন\",\n \"modalTitle\": \"মোডাল নিয়ন্ত্রণ\",\n \"modalClose\": \"সক্রিয় মোডাল বন্ধ করুন\",\n \"modalNavForward\": \"বোতামগুলির মধ্যে সামনে নেভিগেট করুন\",\n \"modalNavBackward\": \"বোতামগুলির মধ্যে পেছনে নেভিগেট করুন\",\n \"modalActivate\": \"ফোকাসকৃত বোতাম সক্রিয় করুন\",\n \"accessibilityTitle\": \"অভিগম্যতা\",\n \"a11ySkipLinks\": \"স্কিপ লিঙ্কে নেভিগেট করুন (পৃষ্ঠার শুরুতে থাকলে)\",\n \"a11yFollowLink\": \"স্কিপ লিঙ্ক অনুসরণ করুন\",\n \"macNote\": \"Mac কীবোর্ড শর্টকাট ব্যবহার হচ্ছে। ⌘ হলো Command কী।\",\n \"windowsNote\": \"Windows/Linux কীবোর্ড শর্টকাট ব্যবহার হচ্ছে। Ctrl হলো Control কী।\",\n \"footerHint\": \"এই সাহায্য দেখাতে যেকোনো সময় {{key}} চাপুন\",\n \"close\": \"বন্ধ করুন\"\n },\n \"AnnotateToolbar\": {\n \"modeGroup\": \"মোড\",\n \"browse\": \"ব্রাউজ\",\n \"annotate\": \"টীকাকরণ\",\n \"selectionGroup\": \"উদ্দেশ্য\",\n \"clickGroup\": \"ক্লিক\",\n \"shapeGroup\": \"আকৃতি\",\n \"none\": \"কিছু নয়\",\n \"linking\": \"রেফারেন্স\",\n \"highlighting\": \"হাইলাইট\",\n \"assessing\": \"মূল্যায়ন\",\n \"commenting\": \"মন্তব্য\",\n \"tagging\": \"ট্যাগ\",\n \"detail\": \"বিস্তারিত\",\n \"follow\": \"অনুসরণ\",\n \"deleting\": \"মুছে ফেলুন\",\n \"jsonld\": \"JSON-LD\",\n \"rectangle\": \"আয়তক্ষেত্র\",\n \"circle\": \"বৃত্ত\",\n \"polygon\": \"বহুভুজ\"\n },\n \"CollapsibleResourceNavigation\": {\n \"title\": \"নেভিগেশন\",\n \"collapseSidebar\": \"সাইডবার সংকুচিত করুন\",\n \"expandSidebar\": \"সাইডবার প্রসারিত করুন\",\n \"dragToReorder\": \"পুনর্বিন্যাস করতে টানুন\",\n \"dragToReorderDoc\": \"{{name}} পুনর্বিন্যাস করতে টানুন\",\n \"closeResource\": \"সম্পদ বন্ধ করুন\",\n \"dragInstructions\": \"সম্পদ পুনর্বিন্যাস করতে: একটি সম্পদে নেভিগেট করতে Tab ব্যবহার করুন। উপরে যেতে Alt+উপরের তীর বা নিচে যেতে Alt+নিচের তীর চাপুন। টানা এবং ছাড়ার জন্য: আইটেম তুলে নিতে স্পেসবার চাপুন। সরাতে তীর কী ব্যবহার করুন। ছেড়ে দিতে আবার স্পেসবার চাপুন।\"\n },\n \"ResourceViewer\": {\n \"deleteConfirmationTitle\": \"টীকা মুছে ফেলুন\",\n \"deleteConfirmationMessage\": \"আপনি কি নিশ্চিতভাবে এই টীকাটি মুছে ফেলতে চান? এই কাজটি পূর্বাবস্থায় ফেরানো যাবে না।\",\n \"deleteConfirmationCancel\": \"বাতিল করুন\",\n \"deleteConfirmationDelete\": \"মুছে ফেলুন\"\n },\n \"Settings\": {\n \"title\": \"সেটিংস\",\n \"lineNumbers\": \"লাইন নম্বর\",\n \"lineNumbersVisible\": \"দৃশ্যমান\",\n \"lineNumbersHidden\": \"লুকানো\",\n \"theme\": \"থিম\",\n \"themeLight\": \"হালকা\",\n \"themeDark\": \"গাঢ়\",\n \"themeSystem\": \"সিস্টেম\",\n \"themeSystemActive\": \"সিস্টেম ({{mode}})\",\n \"themeModeActive\": \"{{mode}} মোড ব্যবহার হচ্ছে\",\n \"language\": \"ভাষা\",\n \"languageHint\": \"প্রধান নেভিগেশনে ভাষা পরিবর্তন করুন\",\n \"languageChanging\": \"ভাষা পরিবর্তন হচ্ছে...\",\n \"hoverDelay\": \"হোভার বিলম্ব\",\n \"hoverDelayFast\": \"দ্রুত\",\n \"hoverDelaySlow\": \"ধীর\",\n \"hoverDelayDescription\": \"হোভার প্রভাব প্রদর্শনের আগে {{delay}}মি.সে. বিলম্ব\"\n },\n \"AnnotateView\": {},\n \"ReferenceWizard\": {\n \"gatherTitle\": \"সংগৃহীত প্রসঙ্গ\",\n \"configureGenerationTitle\": \"জেনারেশন কনফিগার করুন\",\n \"configureSearchTitle\": \"অনুসন্ধান কনফিগার করুন\",\n \"searchResultsTitle\": \"অনুসন্ধান ফলাফল\",\n \"sourceContextLabel\": \"সম্পদে টীকার প্রসঙ্গ\",\n \"connectionsLabel\": \"সমকক্ষ টীকাসমূহ\",\n \"citedByLabel\": \"সম্পদ উদ্ধৃতকারী\",\n \"userHintLabel\": \"ইঙ্গিত\",\n \"userHintPlaceholder\": \"এই টীকাটি কী বোঝায় তা বর্ণনা করুন...\",\n \"loadingContext\": \"প্রসঙ্গ সংগ্রহ হচ্ছে...\",\n \"failedContext\": \"প্রসঙ্গ সংগ্রহ ব্যর্থ\",\n \"cancel\": \"বাতিল করুন\",\n \"generate\": \"তৈরি করুন\",\n \"compose\": \"রচনা করুন\",\n \"resolutionStrategyLabel\": \"রেজোলিউশন কৌশল\",\n \"back\": \"পিছনে\",\n \"link\": \"লিঙ্ক\",\n \"score\": \"স্কোর\",\n \"noResults\": \"কোনো ফলাফল পাওয়া যায়নি\",\n \"resourceTitle\": \"সম্পদের শিরোনাম\",\n \"resourceTitlePlaceholder\": \"সম্পদের শিরোনাম লিখুন...\",\n \"additionalInstructions\": \"অতিরিক্ত নির্দেশনা\",\n \"additionalInstructionsPlaceholder\": \"অতিরিক্ত নির্দেশনা লিখুন...\",\n \"language\": \"ভাষা\",\n \"languageHelp\": \"তৈরি করা বিষয়বস্তুর ভাষা\",\n \"creativity\": \"সৃজনশীলতা\",\n \"creativityFocused\": \"কেন্দ্রীভূত\",\n \"creativityCreative\": \"সৃজনশীল\",\n \"maxLength\": \"সর্বোচ্চ দৈর্ঘ্য\",\n \"maxLengthHelp\": \"সর্বোচ্চ টোকেন সংখ্যা\",\n \"maxResults\": \"সর্বোচ্চ ফলাফল\",\n \"semanticScoring\": \"অর্থগত স্কোরিং\",\n \"semanticScoringHelp\": \"অর্থগত প্রাসঙ্গিকতা অনুযায়ী ফলাফল স্কোর করতে AI ব্যবহার করুন\",\n \"searching\": \"অনুসন্ধান করা হচ্ছে...\",\n \"search\": \"অনুসন্ধান\"\n }\n}"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/contexts/AuthTokenContext.tsx","../src/contexts/useEventSubscription.ts","../src/hooks/useBeckonFlow.ts"],"sourcesContent":["'use client';\n\n/**\n * Auth Token Context - Manages authentication token lifecycle\n *\n * Simple approach: Just pass the token value through context.\n * When the token changes, context updates, components re-render.\n * No complex machinery needed.\n */\n\nimport { createContext, useContext, ReactNode } from 'react';\n\nconst AuthTokenContext = createContext<string | null | undefined>(undefined);\n\nexport interface AuthTokenProviderProps {\n token: string | null;\n children: ReactNode;\n}\n\n/**\n * Provider for auth token\n * Pass the current token value - React handles the rest\n */\nexport function AuthTokenProvider({\n token,\n children,\n}: AuthTokenProviderProps) {\n return (\n <AuthTokenContext.Provider value={token}>\n {children}\n </AuthTokenContext.Provider>\n );\n}\n\n/**\n * Hook to get current auth token\n *\n * Returns the current token value from context.\n * Re-renders automatically when token changes (normal React behavior).\n *\n * @returns Current access token (null if not authenticated)\n * @throws Error if used outside AuthTokenProvider\n */\nexport function useAuthToken(): string | null {\n const context = useContext(AuthTokenContext);\n\n if (context === undefined) {\n throw new Error('useAuthToken must be used within an AuthTokenProvider');\n }\n\n return context;\n}\n","import { useEffect, useRef, useMemo } from 'react';\nimport type { EventMap } from '@semiont/core';\nimport { useEventBus } from './EventBusContext';\n\n/**\n * Subscribe to an event bus event with automatic cleanup.\n *\n * This hook solves the \"stale closure\" problem by always using the latest\n * version of the handler without re-subscribing.\n *\n * @example\n * ```tsx\n * useEventSubscription('mark:created', ({ annotation }) => {\n * // This always uses the latest props/state\n * triggerSparkleAnimation(annotation.id);\n * });\n * ```\n */\nexport function useEventSubscription<K extends keyof EventMap>(\n eventName: K,\n handler: (payload: EventMap[K]) => void\n): void {\n const eventBus = useEventBus();\n\n // Store the latest handler in a ref to avoid stale closures\n const handlerRef = useRef(handler);\n\n // Update ref on every render (no re-subscription needed)\n useEffect(() => {\n handlerRef.current = handler;\n });\n\n // Subscribe once, using a stable wrapper that calls the current handler\n useEffect(() => {\n const stableHandler = (payload: EventMap[K]) => {\n handlerRef.current(payload);\n };\n\n // RxJS EventBus.get() returns Subject, subscribe returns Subscription\n const subscription = eventBus.get(eventName).subscribe(stableHandler);\n\n return () => {\n subscription.unsubscribe();\n };\n }, [eventName, eventBus]); // eventBus is stable, only re-subscribe if event name changes\n}\n\n/**\n * Subscribe to multiple events at once.\n *\n * @example\n * ```tsx\n * useEventSubscriptions({\n * 'mark:created': ({ annotation }) => setNewAnnotation(annotation),\n * 'mark:deleted': ({ annotationId }) => removeAnnotation(annotationId),\n * });\n * ```\n */\nexport function useEventSubscriptions(\n subscriptions: {\n [K in keyof EventMap]?: (payload: EventMap[K]) => void;\n }\n): void {\n const eventBus = useEventBus();\n\n // Store the latest handlers in refs\n const handlersRef = useRef(subscriptions);\n\n // Update refs on every render\n useEffect(() => {\n handlersRef.current = subscriptions;\n });\n\n // Get stable list of event names to subscribe to\n const eventNames = useMemo(\n () => Object.keys(subscriptions).sort(),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [Object.keys(subscriptions).sort().join(',')]\n );\n\n // Subscribe once per event - only re-subscribe if event names actually change\n useEffect(() => {\n const subscriptions: Array<{ unsubscribe: () => void }> = [];\n\n // Create stable wrappers for each subscription\n for (const eventName of eventNames) {\n const stableHandler = (payload: any) => {\n const currentHandler = handlersRef.current[eventName as keyof EventMap];\n if (currentHandler) {\n currentHandler(payload);\n } else {\n console.warn('[useEventSubscriptions] No current handler found for:', eventName);\n }\n };\n\n // RxJS EventBus.get() returns Subject, subscribe returns Subscription\n const subscription = eventBus.get(eventName as keyof EventMap).subscribe(stableHandler);\n subscriptions.push(subscription);\n }\n\n // Cleanup: unsubscribe from all subscriptions\n return () => {\n for (const subscription of subscriptions) {\n subscription.unsubscribe();\n }\n };\n }, [eventNames, eventBus]); // eventBus is stable singleton - never in deps; only re-subscribe if event names change\n}\n","/**\n * useBeckonFlow — Annotation attention / pointer coordination hook\n *\n * Manages which annotation currently has the user's attention:\n * - Hover state (hoveredAnnotationId)\n * - Hover → sparkle relay\n * - Click → focus relay\n *\n * Follows react-rxjs-guide.md Layer 2 pattern: Hook bridge that\n * subscribes to events and pushes values into React state.\n *\n * Note: beckon:sparkle visual effect (triggerSparkleAnimation) is owned by\n * ResourceViewerPage, which subscribes to beckon:sparkle and delegates to\n * ResourceAnnotationsContext. This hook emits the signal; it does not render the effect.\n *\n * @subscribes beckon:hover - Sets hoveredAnnotationId; emits beckon:sparkle\n * @subscribes browse:click - Emits beckon:focus (attention relay only)\n * @emits beckon:sparkle\n * @emits beckon:focus\n */\n\n/**\n * useHoverEmitter / createHoverHandlers — annotation hover emission utilities\n *\n * Centralises two hover quality-of-life behaviours:\n *\n * 1. currentHover guard — suppresses redundant emissions when the mouse\n * moves within the same annotation element (prevents event bus noise).\n *\n * 2. Debounce delay (HOVER_DELAY_MS) — a short timer before emitting\n * beckon:hover, so that transient pass-through movements (user dragging\n * the mouse across the panel to reach a button elsewhere) do not trigger\n * sparkle animations or cross-highlight effects.\n * The delay is cancelled immediately on mouseLeave, so leaving is always instant.\n *\n * Two forms are provided:\n *\n * useHoverEmitter(annotationId)\n * React hook. Returns { onMouseEnter, onMouseLeave } props for JSX elements.\n * Use in panel entries (HighlightEntry, CommentEntry, …).\n *\n * createHoverHandlers(emit)\n * Plain factory. Returns { handleMouseEnter(id), handleMouseLeave(), cleanup }.\n * Use inside useEffect / imperative setup code where hooks cannot be called\n * (BrowseView, CodeMirrorRenderer, AnnotationOverlay, PdfAnnotationCanvas).\n */\n\nimport { useState, useRef, useCallback, useEffect } from 'react';\nimport { accessToken } from '@semiont/core';\nimport { useEventBus } from '../contexts/EventBusContext';\nimport { useEventSubscriptions } from '../contexts/useEventSubscription';\nimport { useApiClient } from '../contexts/ApiClientContext';\nimport { useAuthToken } from '../contexts/AuthTokenContext';\nimport type { StreamStatus } from './useResourceEvents';\n\n// ─── useBeckonFlow ─────────────────────────────────────────────────────────\n\nexport interface BeckonFlowState {\n hoveredAnnotationId: string | null;\n}\n\nexport function useBeckonFlow(): BeckonFlowState {\n const eventBus = useEventBus();\n const [hoveredAnnotationId, setHoveredAnnotationId] = useState<string | null>(null);\n\n const handleAnnotationHover = useCallback(({ annotationId }: { annotationId: string | null }) => {\n setHoveredAnnotationId(annotationId);\n if (annotationId) {\n eventBus.get('beckon:sparkle').next({ annotationId });\n }\n }, []); // eventBus is stable singleton - never in deps\n\n const handleAnnotationClick = useCallback(({ annotationId }: { annotationId: string }) => {\n eventBus.get('beckon:focus').next({ annotationId });\n // Scroll to annotation handled by BrowseView via beckon:focus subscription\n }, []); // eventBus is stable singleton - never in deps\n\n useEventSubscriptions({\n 'beckon:hover': handleAnnotationHover,\n 'browse:click': handleAnnotationClick,\n });\n\n return { hoveredAnnotationId };\n}\n\n// ─── createHoverHandlers (use inside useEffect / imperative setup) ────────────\n\n/** Default milliseconds the mouse must dwell before beckon:hover is emitted. */\nexport const HOVER_DELAY_MS = 150;\n\ntype EmitHover = (annotationId: string | null) => void;\n\nexport interface HoverHandlers {\n /** Call with the annotation ID when the mouse enters an annotation element. */\n handleMouseEnter: (annotationId: string) => void;\n /** Call when the mouse leaves the annotation element. */\n handleMouseLeave: () => void;\n /** Cancel any pending timer — call in the useEffect cleanup. */\n cleanup: () => void;\n}\n\n/**\n * Creates hover handlers for imperative code (non-hook contexts).\n * @param emit - Callback to emit hover events\n * @param delayMs - Hover delay in milliseconds\n */\nexport function createHoverHandlers(emit: EmitHover, delayMs: number): HoverHandlers {\n let currentHover: string | null = null;\n let timer: ReturnType<typeof setTimeout> | null = null;\n\n const cancelTimer = () => {\n if (timer !== null) {\n clearTimeout(timer);\n timer = null;\n }\n };\n\n const handleMouseEnter = (annotationId: string) => {\n if (currentHover === annotationId) return; // already hovering this one\n cancelTimer();\n timer = setTimeout(() => {\n timer = null;\n currentHover = annotationId;\n emit(annotationId);\n }, delayMs);\n };\n\n const handleMouseLeave = () => {\n cancelTimer();\n if (currentHover !== null) {\n currentHover = null;\n emit(null);\n }\n };\n\n return { handleMouseEnter, handleMouseLeave, cleanup: cancelTimer };\n}\n\n// ─── useHoverEmitter (use in JSX onMouseEnter / onMouseLeave props) ───────────\n\nexport interface HoverEmitterProps {\n onMouseEnter: () => void;\n onMouseLeave: () => void;\n}\n\n/**\n * React hook that returns onMouseEnter / onMouseLeave props for a single\n * annotation entry element.\n *\n * @param annotationId - The ID of the annotation this element represents.\n * @param hoverDelayMs - Hover delay in milliseconds (defaults to HOVER_DELAY_MS for panel entries)\n */\nexport function useHoverEmitter(annotationId: string, hoverDelayMs: number = HOVER_DELAY_MS): HoverEmitterProps {\n const eventBus = useEventBus();\n const currentHoverRef = useRef<string | null>(null);\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const onMouseEnter = useCallback(() => {\n if (currentHoverRef.current === annotationId) return;\n if (timerRef.current !== null) {\n clearTimeout(timerRef.current);\n }\n timerRef.current = setTimeout(() => {\n timerRef.current = null;\n currentHoverRef.current = annotationId;\n eventBus.get('beckon:hover').next({ annotationId });\n }, hoverDelayMs);\n }, [annotationId, hoverDelayMs]); // eventBus is stable singleton - never in deps\n\n const onMouseLeave = useCallback(() => {\n if (timerRef.current !== null) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n if (currentHoverRef.current !== null) {\n currentHoverRef.current = null;\n eventBus.get('beckon:hover').next({ annotationId: null });\n }\n }, []); // eventBus is stable singleton - never in deps\n\n // Cleanup timer on unmount\n useEffect(() => {\n return () => {\n if (timerRef.current !== null) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n };\n }, []);\n\n return { onMouseEnter, onMouseLeave };\n}\n\n// ─── useAttentionStream ───────────────────────────────────────────────────────\n\n/**\n * Opens a participant-scoped SSE connection to receive cross-participant\n * beckon signals. Each incoming signal is emitted as beckon:focus on the\n * EventBus — the existing scroll/highlight machinery handles it automatically.\n *\n * Signals are ephemeral: delivered if connected, silently dropped if not.\n *\n * @example\n * ```tsx\n * // In your layout (render-nothing connector):\n * useAttentionStream();\n * ```\n */\nexport function useAttentionStream(): { status: StreamStatus } {\n const client = useApiClient();\n const token = useAuthToken();\n const tokenRef = useRef(token);\n useEffect(() => { tokenRef.current = token; });\n const [status, setStatus] = useState<StreamStatus>('disconnected');\n\n useEffect(() => {\n setStatus('connecting');\n try {\n const sub = client.flows.attentionStream(() =>\n tokenRef.current ? accessToken(tokenRef.current) : undefined\n );\n setStatus('connected');\n return () => { sub.unsubscribe(); setStatus('disconnected'); };\n } catch (error) {\n console.error('[AttentionStream] Failed to connect:', error);\n setStatus('error');\n return;\n }\n }, [client]);\n\n return { status };\n}\n"],"mappings":"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","names":["subscriptions","useRef","useEffect","useRef","useEffect"]}