@semiont/react-ui 0.4.2 → 0.4.4

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 (163) hide show
  1. package/dist/{PdfAnnotationCanvas.client-PVTVPDBQ.mjs → PdfAnnotationCanvas.client-LF6DDTCV.mjs} +3 -3
  2. package/dist/{ar-5REA6P4J.mjs → ar-RJLR7NDD.mjs} +13 -11
  3. package/dist/ar-RJLR7NDD.mjs.map +1 -0
  4. package/dist/{bn-YHRYHHPD.mjs → bn-4NU2UAZ7.mjs} +13 -11
  5. package/dist/bn-4NU2UAZ7.mjs.map +1 -0
  6. package/dist/{chunk-VVCCMJS7.mjs → chunk-2VWLGQIO.mjs} +13 -11
  7. package/dist/chunk-2VWLGQIO.mjs.map +1 -0
  8. package/dist/chunk-5JZFKRLW.mjs +62 -0
  9. package/dist/chunk-5JZFKRLW.mjs.map +1 -0
  10. package/dist/{chunk-PFQYNPQJ.mjs → chunk-EKQMINCV.mjs} +61 -92
  11. package/dist/chunk-EKQMINCV.mjs.map +1 -0
  12. package/dist/{chunk-ZPV43WN2.mjs → chunk-XMCUHQ2Y.mjs} +72 -3
  13. package/dist/chunk-XMCUHQ2Y.mjs.map +1 -0
  14. package/dist/{cs-JTJXTX2T.mjs → cs-6UJZFF55.mjs} +13 -11
  15. package/dist/cs-6UJZFF55.mjs.map +1 -0
  16. package/dist/{da-MK37SJB6.mjs → da-CFFBBOH3.mjs} +13 -11
  17. package/dist/da-CFFBBOH3.mjs.map +1 -0
  18. package/dist/{de-LGBCWERA.mjs → de-2KAG6KMX.mjs} +13 -11
  19. package/dist/de-2KAG6KMX.mjs.map +1 -0
  20. package/dist/{el-FKJMFCWY.mjs → el-KVPQ7VNF.mjs} +13 -11
  21. package/dist/el-KVPQ7VNF.mjs.map +1 -0
  22. package/dist/{en-AOSMPC2M.mjs → en-ZW4UKTVX.mjs} +2 -2
  23. package/dist/{es-LVDPIXWU.mjs → es-ZU2ECPVG.mjs} +13 -11
  24. package/dist/es-ZU2ECPVG.mjs.map +1 -0
  25. package/dist/{fa-3VA2PIUD.mjs → fa-CBIVKDIQ.mjs} +13 -11
  26. package/dist/fa-CBIVKDIQ.mjs.map +1 -0
  27. package/dist/{fi-3WM75ZLR.mjs → fi-5HUVT7IK.mjs} +13 -11
  28. package/dist/fi-5HUVT7IK.mjs.map +1 -0
  29. package/dist/{fr-NK4A72WA.mjs → fr-O5WU2US2.mjs} +13 -11
  30. package/dist/fr-O5WU2US2.mjs.map +1 -0
  31. package/dist/{he-IACZDZMB.mjs → he-WP4C2SNJ.mjs} +13 -11
  32. package/dist/he-WP4C2SNJ.mjs.map +1 -0
  33. package/dist/{hi-JZ7MGMMS.mjs → hi-HLQXNRWI.mjs} +13 -11
  34. package/dist/hi-HLQXNRWI.mjs.map +1 -0
  35. package/dist/{id-P3KDQGNK.mjs → id-DTJT2ZA6.mjs} +13 -11
  36. package/dist/id-DTJT2ZA6.mjs.map +1 -0
  37. package/dist/index.css +213 -0
  38. package/dist/index.css.map +1 -1
  39. package/dist/index.d.mts +48 -50
  40. package/dist/index.mjs +1492 -1474
  41. package/dist/index.mjs.map +1 -1
  42. package/dist/{it-LQS33SUY.mjs → it-2DK57IMT.mjs} +13 -11
  43. package/dist/it-2DK57IMT.mjs.map +1 -0
  44. package/dist/{ja-G4FKZPWD.mjs → ja-52ZNY72Y.mjs} +13 -11
  45. package/dist/ja-52ZNY72Y.mjs.map +1 -0
  46. package/dist/{ko-2XWKQ7BA.mjs → ko-4Z2IMYZO.mjs} +13 -11
  47. package/dist/ko-4Z2IMYZO.mjs.map +1 -0
  48. package/dist/{ms-2SNONIUD.mjs → ms-HKU73KEX.mjs} +13 -11
  49. package/dist/ms-HKU73KEX.mjs.map +1 -0
  50. package/dist/{nl-BMZUAJ7J.mjs → nl-HPHQMXPT.mjs} +13 -11
  51. package/dist/nl-HPHQMXPT.mjs.map +1 -0
  52. package/dist/{no-6J3WIZ6L.mjs → no-Q7G4PVFT.mjs} +13 -11
  53. package/dist/no-Q7G4PVFT.mjs.map +1 -0
  54. package/dist/{pl-QQ7DAUVK.mjs → pl-D43C2CE3.mjs} +13 -11
  55. package/dist/pl-D43C2CE3.mjs.map +1 -0
  56. package/dist/{pt-MU3GN7MW.mjs → pt-V3GFSY7B.mjs} +13 -11
  57. package/dist/pt-V3GFSY7B.mjs.map +1 -0
  58. package/dist/{ro-6GBE72QK.mjs → ro-3UIRV3OA.mjs} +13 -11
  59. package/dist/ro-3UIRV3OA.mjs.map +1 -0
  60. package/dist/{sv-NQIL7PEM.mjs → sv-BMW26A7M.mjs} +13 -11
  61. package/dist/sv-BMW26A7M.mjs.map +1 -0
  62. package/dist/test-utils.mjs +4 -4
  63. package/dist/{th-6OCNZQBE.mjs → th-CMND2QET.mjs} +13 -11
  64. package/dist/th-CMND2QET.mjs.map +1 -0
  65. package/dist/{tr-XWJ5P3SC.mjs → tr-P3AD7MYA.mjs} +13 -11
  66. package/dist/tr-P3AD7MYA.mjs.map +1 -0
  67. package/dist/{uk-AKSN6DGW.mjs → uk-QPONRQ5O.mjs} +13 -11
  68. package/dist/uk-QPONRQ5O.mjs.map +1 -0
  69. package/dist/{vi-23GHQ45M.mjs → vi-G2OMVMCI.mjs} +13 -11
  70. package/dist/vi-G2OMVMCI.mjs.map +1 -0
  71. package/dist/{zh-ITT4QBSN.mjs → zh-HTDN4LKE.mjs} +13 -11
  72. package/dist/zh-HTDN4LKE.mjs.map +1 -0
  73. package/package.json +3 -5
  74. package/src/components/CodeMirrorRenderer.tsx +9 -9
  75. package/src/components/ResourceTagsInline.tsx +1 -1
  76. package/src/components/__tests__/ResourceTagsInline.test.tsx +3 -3
  77. package/src/components/modals/ContextSummary.tsx +56 -165
  78. package/src/components/modals/GatherContextStep.tsx +124 -42
  79. package/src/components/modals/ReferenceWizardModal.tsx +8 -25
  80. package/src/components/modals/SearchModal.css +241 -0
  81. package/src/components/resource/AnnotateView.tsx +3 -3
  82. package/src/components/resource/BrowseView.tsx +2 -2
  83. package/src/components/resource/ResourceViewer.tsx +4 -4
  84. package/src/components/resource/__tests__/annotation-interactions.test.tsx +1 -1
  85. package/src/components/resource/panels/AssessmentPanel.tsx +3 -0
  86. package/src/components/resource/panels/AssistSection.tsx +4 -1
  87. package/src/components/resource/panels/CommentsPanel.tsx +3 -0
  88. package/src/components/resource/panels/ResourceInfoPanel.tsx +82 -0
  89. package/src/components/resource/panels/UnifiedAnnotationsPanel.tsx +4 -0
  90. package/src/components/resource/panels/__tests__/ResourceInfoPanel.test.tsx +94 -0
  91. package/src/features/resource-viewer/__tests__/AnnotationCreationPending.test.tsx +6 -6
  92. package/src/features/resource-viewer/__tests__/AnnotationProgressDismissal.test.tsx +4 -4
  93. package/src/features/resource-viewer/__tests__/BindFlowIntegration.test.tsx +23 -17
  94. package/src/features/resource-viewer/__tests__/DetectionFlowBug.test.tsx +4 -4
  95. package/src/features/resource-viewer/__tests__/DetectionFlowIntegration.test.tsx +14 -14
  96. package/src/features/resource-viewer/__tests__/ResourceViewerPage.test.tsx +2 -2
  97. package/src/features/resource-viewer/__tests__/YieldFlowIntegration.test.tsx +2 -2
  98. package/src/features/resource-viewer/__tests__/annotation-progress-flow.test.tsx +4 -4
  99. package/src/features/resource-viewer/components/ResourceViewerPage.tsx +12 -10
  100. package/translations/ar.json +12 -10
  101. package/translations/bn.json +12 -10
  102. package/translations/cs.json +12 -10
  103. package/translations/da.json +12 -10
  104. package/translations/de.json +12 -10
  105. package/translations/el.json +12 -10
  106. package/translations/en.json +13 -11
  107. package/translations/es.json +12 -10
  108. package/translations/fa.json +12 -10
  109. package/translations/fi.json +12 -10
  110. package/translations/fr.json +12 -10
  111. package/translations/he.json +12 -10
  112. package/translations/hi.json +12 -10
  113. package/translations/id.json +12 -10
  114. package/translations/it.json +12 -10
  115. package/translations/ja.json +12 -10
  116. package/translations/ko.json +12 -10
  117. package/translations/ms.json +12 -10
  118. package/translations/nl.json +12 -10
  119. package/translations/no.json +12 -10
  120. package/translations/pl.json +12 -10
  121. package/translations/pt.json +12 -10
  122. package/translations/ro.json +12 -10
  123. package/translations/sv.json +12 -10
  124. package/translations/th.json +12 -10
  125. package/translations/tr.json +12 -10
  126. package/translations/uk.json +12 -10
  127. package/translations/vi.json +12 -10
  128. package/translations/zh.json +12 -10
  129. package/dist/ar-5REA6P4J.mjs.map +0 -1
  130. package/dist/bn-YHRYHHPD.mjs.map +0 -1
  131. package/dist/chunk-2HGWOLVN.mjs +0 -31
  132. package/dist/chunk-2HGWOLVN.mjs.map +0 -1
  133. package/dist/chunk-PFQYNPQJ.mjs.map +0 -1
  134. package/dist/chunk-VVCCMJS7.mjs.map +0 -1
  135. package/dist/chunk-ZPV43WN2.mjs.map +0 -1
  136. package/dist/cs-JTJXTX2T.mjs.map +0 -1
  137. package/dist/da-MK37SJB6.mjs.map +0 -1
  138. package/dist/de-LGBCWERA.mjs.map +0 -1
  139. package/dist/el-FKJMFCWY.mjs.map +0 -1
  140. package/dist/es-LVDPIXWU.mjs.map +0 -1
  141. package/dist/fa-3VA2PIUD.mjs.map +0 -1
  142. package/dist/fi-3WM75ZLR.mjs.map +0 -1
  143. package/dist/fr-NK4A72WA.mjs.map +0 -1
  144. package/dist/he-IACZDZMB.mjs.map +0 -1
  145. package/dist/hi-JZ7MGMMS.mjs.map +0 -1
  146. package/dist/id-P3KDQGNK.mjs.map +0 -1
  147. package/dist/it-LQS33SUY.mjs.map +0 -1
  148. package/dist/ja-G4FKZPWD.mjs.map +0 -1
  149. package/dist/ko-2XWKQ7BA.mjs.map +0 -1
  150. package/dist/ms-2SNONIUD.mjs.map +0 -1
  151. package/dist/nl-BMZUAJ7J.mjs.map +0 -1
  152. package/dist/no-6J3WIZ6L.mjs.map +0 -1
  153. package/dist/pl-QQ7DAUVK.mjs.map +0 -1
  154. package/dist/pt-MU3GN7MW.mjs.map +0 -1
  155. package/dist/ro-6GBE72QK.mjs.map +0 -1
  156. package/dist/sv-NQIL7PEM.mjs.map +0 -1
  157. package/dist/th-6OCNZQBE.mjs.map +0 -1
  158. package/dist/tr-XWJ5P3SC.mjs.map +0 -1
  159. package/dist/uk-AKSN6DGW.mjs.map +0 -1
  160. package/dist/vi-23GHQ45M.mjs.map +0 -1
  161. package/dist/zh-ITT4QBSN.mjs.map +0 -1
  162. /package/dist/{PdfAnnotationCanvas.client-PVTVPDBQ.mjs.map → PdfAnnotationCanvas.client-LF6DDTCV.mjs.map} +0 -0
  163. /package/dist/{en-AOSMPC2M.mjs.map → en-ZW4UKTVX.mjs.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../translations/zh.json"],"sourcesContent":["{\n \"Toolbar\": {\n \"annotations\": \"注释\",\n \"history\": \"历史\",\n \"resourceInfo\": \"资源信息\",\n \"collaboration\": \"协作\",\n \"userAccount\": \"用户帐户\",\n \"settings\": \"设置\"\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\": \"1 分钟前\",\n \"minutesAgo\": \"{count} 分钟前\",\n \"hourAgo\": \"1 小时前\",\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 {已选择 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 {已选择 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 是 Command 键。\",\n \"windowsNote\": \"使用 Windows/Linux 键盘快捷键。Ctrl 是 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}ms\"\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}\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@semiont/react-ui",
3
- "version": "0.4.2",
3
+ "version": "0.4.4",
4
4
  "description": "React components and hooks for Semiont",
5
5
  "main": "./dist/index.mjs",
6
6
  "types": "./dist/index.d.mts",
@@ -89,8 +89,7 @@
89
89
  "jsdom": "^28.0.0",
90
90
  "postcss-import": "^16.1.1",
91
91
  "tsup": "^8.0.1",
92
- "typescript": "^5.6.3",
93
- "vitest": "^4.0.18"
92
+ "typescript": "^5.6.3"
94
93
  },
95
94
  "publishConfig": {
96
95
  "access": "public"
@@ -104,7 +103,6 @@
104
103
  },
105
104
  "dependencies": {
106
105
  "@semiont/api-client": "*",
107
- "@semiont/core": "*",
108
- "@vitest/ui": "4.0.18"
106
+ "@semiont/core": "*"
109
107
  }
110
108
  }
@@ -44,7 +44,7 @@ interface Props {
44
44
  showLineNumbers?: boolean; // If true, show line numbers
45
45
  enableWidgets?: boolean; // If true, show inline widgets (reference previews, entity badges)
46
46
  eventBus?: EventBus;
47
- getTargetDocumentName?: (documentId: string) => string | undefined;
47
+ getTargetResourceName?: (resourceId: string) => string | undefined;
48
48
  generatingReferenceId?: string | null; // ID of reference currently generating a document
49
49
  hoverDelayMs: number; // Hover delay in milliseconds for accessibility
50
50
  }
@@ -62,7 +62,7 @@ interface WidgetUpdate {
62
62
  content: string;
63
63
  segments: TextSegment[];
64
64
  generatingReferenceId?: string | null | undefined;
65
- getTargetDocumentName?: (documentId: string) => string | undefined;
65
+ getTargetResourceName?: (resourceId: string) => string | undefined;
66
66
  }
67
67
 
68
68
  const updateWidgetsEffect = StateEffect.define<WidgetUpdate>();
@@ -116,10 +116,10 @@ function buildWidgetDecorations(
116
116
  _content: string,
117
117
  segments: TextSegment[],
118
118
  generatingReferenceId: string | null | undefined,
119
- getTargetDocumentName?: (documentId: string) => string | undefined
119
+ getTargetResourceName?: (resourceId: string) => string | undefined
120
120
  ): DecorationSet {
121
121
  const builder = new RangeSetBuilder<Decoration>();
122
- const widgetMetas = computeWidgetDecorations(segments, generatingReferenceId, getTargetDocumentName);
122
+ const widgetMetas = computeWidgetDecorations(segments, generatingReferenceId, getTargetResourceName);
123
123
 
124
124
  // We still need the full annotation objects for ReferenceResolutionWidget
125
125
  const annotationsByEnd = new Map<number, TextSegment>();
@@ -158,7 +158,7 @@ const widgetDecorationsField = StateField.define<DecorationSet>({
158
158
  effect.value.content,
159
159
  effect.value.segments,
160
160
  effect.value.generatingReferenceId,
161
- effect.value.getTargetDocumentName
161
+ effect.value.getTargetResourceName
162
162
  );
163
163
  }
164
164
  }
@@ -180,7 +180,7 @@ export function CodeMirrorRenderer({
180
180
  showLineNumbers = false,
181
181
  enableWidgets = false,
182
182
  eventBus,
183
- getTargetDocumentName,
183
+ getTargetResourceName,
184
184
  generatingReferenceId,
185
185
  hoverDelayMs
186
186
  }: Props) {
@@ -197,7 +197,7 @@ export function CodeMirrorRenderer({
197
197
  const segmentsByIdRef = useRef(new Map<string, TextSegment>());
198
198
  const lineNumbersCompartment = useRef(new Compartment());
199
199
  const eventBusRef = useRef(eventBus);
200
- const getTargetDocumentNameRef = useRef(getTargetDocumentName);
200
+ const getTargetResourceNameRef = useRef(getTargetResourceName);
201
201
 
202
202
  // Update refs when they change
203
203
  segmentsRef.current = segments;
@@ -207,7 +207,7 @@ export function CodeMirrorRenderer({
207
207
  }
208
208
  segmentsByIdRef.current = segmentsById;
209
209
  eventBusRef.current = eventBus;
210
- getTargetDocumentNameRef.current = getTargetDocumentName;
210
+ getTargetResourceNameRef.current = getTargetResourceName;
211
211
 
212
212
  // Initialize CodeMirror view once
213
213
  useEffect(() => {
@@ -421,7 +421,7 @@ export function CodeMirrorRenderer({
421
421
  content,
422
422
  segments: convertedSegments,
423
423
  generatingReferenceId,
424
- getTargetDocumentName: getTargetDocumentNameRef.current
424
+ getTargetResourceName: getTargetResourceNameRef.current
425
425
  })
426
426
  });
427
427
  }, [content, convertedSegments, enableWidgets, generatingReferenceId]);
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
 
3
3
  interface ResourceTagsInlineProps {
4
- documentId: string;
4
+ resourceId: string;
5
5
  tags: string[];
6
6
  isEditing: boolean;
7
7
  onUpdate: (tags: string[]) => Promise<void>;
@@ -5,7 +5,7 @@ import { ResourceTagsInline } from '../ResourceTagsInline';
5
5
  describe('ResourceTagsInline', () => {
6
6
  const mockOnUpdate = vi.fn();
7
7
  const defaultProps = {
8
- documentId: 'doc-123',
8
+ resourceId: 'doc-123',
9
9
  tags: ['tag1', 'tag2', 'tag3'],
10
10
  isEditing: false,
11
11
  onUpdate: mockOnUpdate,
@@ -74,12 +74,12 @@ describe('ResourceTagsInline', () => {
74
74
  expect(screen.getByText('tag1')).toBeInTheDocument();
75
75
  });
76
76
 
77
- it('should work with different documentId values', () => {
77
+ it('should work with different resourceId values', () => {
78
78
  const { rerender } = render(<ResourceTagsInline {...defaultProps} />);
79
79
 
80
80
  expect(screen.getByText('tag1')).toBeInTheDocument();
81
81
 
82
- rerender(<ResourceTagsInline {...defaultProps} documentId="doc-456" />);
82
+ rerender(<ResourceTagsInline {...defaultProps} resourceId="doc-456" />);
83
83
 
84
84
  expect(screen.getByText('tag1')).toBeInTheDocument();
85
85
  });
@@ -3,200 +3,91 @@
3
3
  import type { GatheredContext } from '@semiont/core';
4
4
 
5
5
  export interface ContextSummaryTranslations {
6
- annotationLabel: string;
7
- sourceResourceLabel: string;
8
- motivationLabel: string;
9
6
  sourceContextLabel: string;
10
- entityTypesLabel: string;
11
- graphContextLabel: string;
12
7
  connectionsLabel: string;
13
8
  citedByLabel: string;
14
- siblingTypesLabel: string;
15
9
  userHintLabel: string;
16
10
  userHintPlaceholder: string;
17
11
  }
18
12
 
19
13
  export interface ContextSummaryProps {
20
14
  context: GatheredContext;
21
- userHint?: string;
22
- onUserHintChange?: (value: string) => void;
23
15
  translations: ContextSummaryTranslations;
24
16
  }
25
17
 
26
- export function ContextSummary({ context, userHint, onUserHintChange, translations: t }: ContextSummaryProps) {
27
- const annotation = context.annotation;
28
- const sourceResource = context.sourceResource;
29
- const sourceContext = context.sourceContext;
18
+ export function ContextSummary({ context, translations: t }: ContextSummaryProps) {
30
19
  const graphContext = context.graphContext;
31
- const entityTypes = context.metadata?.entityTypes ?? [];
32
20
  const connections = graphContext?.connections ?? [];
33
21
  const citedBy = graphContext?.citedBy ?? [];
34
22
  const citedByCount = graphContext?.citedByCount ?? 0;
35
- const siblingEntityTypes = graphContext?.siblingEntityTypes ?? [];
36
23
 
37
24
  return (
38
25
  <>
39
- {/* Annotation & Source Resource */}
40
- <div className="semiont-form__field">
41
- <label className="semiont-form__label">
42
- {t.annotationLabel}
43
- </label>
44
- <div style={{
45
- padding: '0.5rem 0.75rem',
46
- backgroundColor: 'var(--semiont-bg-secondary)',
47
- borderRadius: 'var(--semiont-radius-md)',
48
- border: '1px solid var(--semiont-border-primary)',
49
- fontSize: 'var(--semiont-text-sm)',
50
- display: 'flex',
51
- flexDirection: 'column',
52
- gap: '0.25rem',
53
- }}>
54
- <div style={{ display: 'flex', gap: '0.5rem', alignItems: 'center' }}>
55
- <span style={{ fontWeight: 500, color: 'var(--semiont-text-secondary)' }}>{t.motivationLabel}:</span>
56
- <span className="semiont-chip" style={{ fontSize: 'var(--semiont-text-xs)', padding: '0.125rem 0.5rem' }}>
57
- {annotation.motivation}
58
- </span>
59
- </div>
60
- <div style={{ display: 'flex', gap: '0.5rem', alignItems: 'center' }}>
61
- <span style={{ fontWeight: 500, color: 'var(--semiont-text-secondary)' }}>{t.sourceResourceLabel}:</span>
62
- <span style={{ color: 'var(--semiont-text-primary)' }}>{sourceResource.name}</span>
63
- </div>
64
- </div>
65
- </div>
26
+ {graphContext && (connections.length > 0 || citedByCount > 0) && (
27
+ <div style={{ display: 'flex', flexDirection: 'column', gap: '1rem' }}>
66
28
 
67
- {/* Source Context Preview */}
68
- {sourceContext && (
69
- <div className="semiont-form__field">
70
- <label className="semiont-form__label">
71
- {t.sourceContextLabel}
72
- </label>
73
- <div style={{
74
- padding: '0.75rem',
75
- backgroundColor: 'var(--semiont-bg-secondary)',
76
- borderRadius: 'var(--semiont-radius-md)',
77
- border: '1px solid var(--semiont-border-primary)',
78
- maxHeight: '200px',
79
- overflowY: 'auto',
80
- }}>
81
- <div style={{ fontSize: 'var(--semiont-text-sm)', fontFamily: 'monospace', whiteSpace: 'pre-wrap', color: 'var(--semiont-text-secondary)' }}>
82
- {sourceContext.before && <span>{sourceContext.before}</span>}
83
- <span style={{
84
- backgroundColor: 'var(--semiont-color-primary-100)',
85
- padding: '0 0.25rem',
86
- fontWeight: 600,
87
- color: 'var(--semiont-color-primary-900)',
29
+ {connections.length > 0 && (
30
+ <div>
31
+ <div style={{
32
+ fontSize: 'var(--semiont-text-xs)',
33
+ fontWeight: 700,
34
+ textTransform: 'uppercase',
35
+ letterSpacing: '0.06em',
36
+ color: 'var(--semiont-text-tertiary)',
37
+ marginBottom: '0.375rem',
88
38
  }}>
89
- {sourceContext.selected}
90
- </span>
91
- {sourceContext.after && <span>{sourceContext.after}</span>}
39
+ {t.connectionsLabel}
40
+ </div>
41
+ <ul style={{ display: 'flex', flexDirection: 'column', gap: '0.375rem', listStyle: 'none', padding: 0, margin: 0 }}>
42
+ {connections.map(conn => (
43
+ <li key={conn.resourceId} style={{
44
+ display: 'flex',
45
+ flexWrap: 'wrap',
46
+ alignItems: 'center',
47
+ gap: '0.375rem',
48
+ fontSize: 'var(--semiont-text-sm)',
49
+ }}>
50
+ <span style={{ color: 'var(--semiont-text-primary)', fontWeight: 500 }}>{conn.resourceName}</span>
51
+ {conn.bidirectional && (
52
+ <span className="semiont-chip" style={{ fontSize: 'var(--semiont-text-xs)', padding: '0.125rem 0.375rem' }}>mutual</span>
53
+ )}
54
+ {conn.entityTypes && conn.entityTypes.map(et => (
55
+ <span key={et} className="semiont-chip" style={{ fontSize: 'var(--semiont-text-xs)', padding: '0.125rem 0.375rem' }}>
56
+ {et}
57
+ </span>
58
+ ))}
59
+ </li>
60
+ ))}
61
+ </ul>
92
62
  </div>
93
- </div>
94
- </div>
95
- )}
63
+ )}
96
64
 
97
- {/* Entity Types */}
98
- {entityTypes.length > 0 && (
99
- <div className="semiont-form__field">
100
- <label className="semiont-form__label">
101
- {t.entityTypesLabel}
102
- </label>
103
- <div style={{ display: 'flex', flexWrap: 'wrap', gap: '0.375rem' }}>
104
- {entityTypes.map(et => (
105
- <span key={et} className="semiont-chip" style={{ fontSize: 'var(--semiont-text-xs)', padding: '0.125rem 0.5rem' }}>
106
- {et}
107
- </span>
108
- ))}
109
- </div>
110
- </div>
111
- )}
112
-
113
- {/* Graph Context */}
114
- {graphContext && (connections.length > 0 || citedByCount > 0 || siblingEntityTypes.length > 0) && (
115
- <div className="semiont-form__field">
116
- <label className="semiont-form__label">
117
- {t.graphContextLabel}
118
- </label>
119
- <div style={{
120
- padding: '0.75rem',
121
- backgroundColor: 'var(--semiont-bg-secondary)',
122
- borderRadius: 'var(--semiont-radius-md)',
123
- border: '1px solid var(--semiont-border-primary)',
124
- fontSize: 'var(--semiont-text-sm)',
125
- display: 'flex',
126
- flexDirection: 'column',
127
- gap: '0.5rem',
128
- }}>
129
- {/* Connections */}
130
- {connections.length > 0 && (
131
- <div>
132
- <span style={{ fontWeight: 500, color: 'var(--semiont-text-secondary)' }}>{t.connectionsLabel}</span>
133
- <ul style={{ marginTop: '0.25rem', display: 'flex', flexDirection: 'column', gap: '0.125rem', listStyle: 'none', padding: 0 }}>
134
- {connections.map(conn => (
135
- <li key={conn.resourceId} style={{ color: 'var(--semiont-text-secondary)', display: 'flex', alignItems: 'center', gap: '0.375rem' }}>
136
- <span>{conn.resourceName}</span>
137
- {conn.bidirectional && (
138
- <span className="semiont-chip" style={{ fontSize: 'var(--semiont-text-xs)', padding: '0.125rem 0.375rem' }}>mutual</span>
139
- )}
140
- {conn.entityTypes && conn.entityTypes.length > 0 && (
141
- <span style={{ fontSize: 'var(--semiont-text-xs)', color: 'var(--semiont-text-tertiary)' }}>
142
- {conn.entityTypes.join(', ')}
143
- </span>
144
- )}
65
+ {citedByCount > 0 && (
66
+ <div>
67
+ <div style={{
68
+ fontSize: 'var(--semiont-text-xs)',
69
+ fontWeight: 700,
70
+ textTransform: 'uppercase',
71
+ letterSpacing: '0.06em',
72
+ color: 'var(--semiont-text-tertiary)',
73
+ marginBottom: '0.375rem',
74
+ }}>
75
+ {t.citedByLabel} ({citedByCount})
76
+ </div>
77
+ {citedBy.length > 0 && (
78
+ <ul style={{ display: 'flex', flexDirection: 'column', gap: '0.25rem', listStyle: 'none', padding: 0, margin: 0 }}>
79
+ {citedBy.map(ref => (
80
+ <li key={ref.resourceId} style={{ fontSize: 'var(--semiont-text-sm)', color: 'var(--semiont-text-primary)', fontWeight: 500 }}>
81
+ {ref.resourceName}
145
82
  </li>
146
83
  ))}
147
84
  </ul>
148
- </div>
149
- )}
150
-
151
- {/* Cited By */}
152
- {citedByCount > 0 && (
153
- <div>
154
- <span style={{ fontWeight: 500, color: 'var(--semiont-text-secondary)' }}>
155
- {t.citedByLabel} ({citedByCount})
156
- </span>
157
- {citedBy.length > 0 && (
158
- <ul style={{ marginTop: '0.25rem', display: 'flex', flexDirection: 'column', gap: '0.125rem', listStyle: 'none', padding: 0 }}>
159
- {citedBy.map(ref => (
160
- <li key={ref.resourceId} style={{ color: 'var(--semiont-text-secondary)' }}>
161
- {ref.resourceName}
162
- </li>
163
- ))}
164
- </ul>
165
- )}
166
- </div>
167
- )}
85
+ )}
86
+ </div>
87
+ )}
168
88
 
169
- {/* Sibling Entity Types */}
170
- {siblingEntityTypes.length > 0 && (
171
- <div>
172
- <span style={{ fontWeight: 500, color: 'var(--semiont-text-secondary)' }}>{t.siblingTypesLabel}</span>
173
- <div style={{ display: 'flex', flexWrap: 'wrap', gap: '0.25rem', marginTop: '0.25rem' }}>
174
- {siblingEntityTypes.map(et => (
175
- <span key={et} className="semiont-chip" style={{ fontSize: 'var(--semiont-text-xs)', padding: '0.125rem 0.5rem' }}>
176
- {et}
177
- </span>
178
- ))}
179
- </div>
180
- </div>
181
- )}
182
- </div>
183
89
  </div>
184
90
  )}
185
-
186
- {/* User Hint */}
187
- <div className="semiont-form__field">
188
- <label className="semiont-form__label">
189
- {t.userHintLabel}
190
- </label>
191
- <input
192
- type="text"
193
- value={userHint ?? ''}
194
- onChange={onUserHintChange ? (e) => onUserHintChange(e.target.value) : undefined}
195
- readOnly={!onUserHintChange}
196
- placeholder={t.userHintPlaceholder}
197
- className="semiont-search-modal__search-input"
198
- />
199
- </div>
200
91
  </>
201
92
  );
202
93
  }