@semiont/cli 0.5.2 → 0.5.3

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 (218) hide show
  1. package/dist/cli.mjs +44 -10
  2. package/dist/frontend/dist/assets/{CookiePreferences-5feiOAX4.js → CookiePreferences-BizeRUGG.js} +2 -2
  3. package/dist/frontend/dist/assets/{CookiePreferences-5feiOAX4.js.map → CookiePreferences-BizeRUGG.js.map} +1 -1
  4. package/dist/frontend/dist/assets/{PdfAnnotationCanvas.client-5QESNO5H-Cxm4Es_X.js → PdfAnnotationCanvas.client-5QESNO5H-C_S4hy6Q.js} +2 -2
  5. package/dist/frontend/dist/assets/{PdfAnnotationCanvas.client-5QESNO5H-Cxm4Es_X.js.map → PdfAnnotationCanvas.client-5QESNO5H-C_S4hy6Q.js.map} +1 -1
  6. package/dist/frontend/dist/assets/{ToolbarPanels-D5L18Wxk.js → ToolbarPanels-Cz2uv68j.js} +2 -2
  7. package/dist/frontend/dist/assets/{ToolbarPanels-D5L18Wxk.js.map → ToolbarPanels-Cz2uv68j.js.map} +1 -1
  8. package/dist/frontend/dist/assets/ar-UUMMNQKF-xeh4Cwx2.js +2 -0
  9. package/dist/frontend/dist/assets/ar-UUMMNQKF-xeh4Cwx2.js.map +1 -0
  10. package/dist/frontend/dist/assets/bn-AL5BJSR3-Dz19S8vN.js +2 -0
  11. package/dist/frontend/dist/assets/bn-AL5BJSR3-Dz19S8vN.js.map +1 -0
  12. package/dist/frontend/dist/assets/{client-CTyYgbIC.js → client-BrB8xl9P.js} +2 -2
  13. package/dist/frontend/dist/assets/{client-CTyYgbIC.js.map → client-BrB8xl9P.js.map} +1 -1
  14. package/dist/frontend/dist/assets/{client-BmABw25x.js → client-C5p1ZZtM.js} +2 -2
  15. package/dist/frontend/dist/assets/{client-BmABw25x.js.map → client-C5p1ZZtM.js.map} +1 -1
  16. package/dist/frontend/dist/assets/{client-D7w_vlsg.js → client-D6q4B6bq.js} +2 -2
  17. package/dist/frontend/dist/assets/{client-D7w_vlsg.js.map → client-D6q4B6bq.js.map} +1 -1
  18. package/dist/frontend/dist/assets/{client-Cjf1Te8y.js → client-SkLMw-j7.js} +2 -2
  19. package/dist/frontend/dist/assets/{client-Cjf1Te8y.js.map → client-SkLMw-j7.js.map} +1 -1
  20. package/dist/frontend/dist/assets/cs-UMINALSU-HHT-dcWL.js +2 -0
  21. package/dist/frontend/dist/assets/cs-UMINALSU-HHT-dcWL.js.map +1 -0
  22. package/dist/frontend/dist/assets/da-FKUX6CDL-BpdJ67RW.js +2 -0
  23. package/dist/frontend/dist/assets/da-FKUX6CDL-BpdJ67RW.js.map +1 -0
  24. package/dist/frontend/dist/assets/de-XSJ3E25S-DJ6EvHYY.js +2 -0
  25. package/dist/frontend/dist/assets/de-XSJ3E25S-DJ6EvHYY.js.map +1 -0
  26. package/dist/frontend/dist/assets/el-UJXNRCBP-DhRdKHlx.js +2 -0
  27. package/dist/frontend/dist/assets/el-UJXNRCBP-DhRdKHlx.js.map +1 -0
  28. package/dist/frontend/dist/assets/es-VURP62BU-CgnB380t.js +2 -0
  29. package/dist/frontend/dist/assets/es-VURP62BU-CgnB380t.js.map +1 -0
  30. package/dist/frontend/dist/assets/{fa-V6JZJDYP-C8CwCeSd.js → fa-TIT5ZPZY-D28qBiUW.js} +2 -2
  31. package/dist/frontend/dist/assets/fa-TIT5ZPZY-D28qBiUW.js.map +1 -0
  32. package/dist/frontend/dist/assets/fi-F7VTGT4H-BeG0kw0Q.js +2 -0
  33. package/dist/frontend/dist/assets/fi-F7VTGT4H-BeG0kw0Q.js.map +1 -0
  34. package/dist/frontend/dist/assets/fr-2ZR26VF7-BwamaA96.js +2 -0
  35. package/dist/frontend/dist/assets/fr-2ZR26VF7-BwamaA96.js.map +1 -0
  36. package/dist/frontend/dist/assets/he-BXP2KYVZ-DuKmwNm_.js +2 -0
  37. package/dist/frontend/dist/assets/he-BXP2KYVZ-DuKmwNm_.js.map +1 -0
  38. package/dist/frontend/dist/assets/hi-PSWTP3NC-B7v6ttqy.js +2 -0
  39. package/dist/frontend/dist/assets/hi-PSWTP3NC-B7v6ttqy.js.map +1 -0
  40. package/dist/frontend/dist/assets/id-HO6TXGTO-Dj1JW3-q.js +2 -0
  41. package/dist/frontend/dist/assets/id-HO6TXGTO-Dj1JW3-q.js.map +1 -0
  42. package/dist/frontend/dist/assets/{index-BVOR3arc.js → index-QjYSiWWG.js} +53 -53
  43. package/dist/frontend/dist/assets/index-QjYSiWWG.js.map +1 -0
  44. package/dist/frontend/dist/assets/it-AGTDMBL3-Bq_I1CA1.js +2 -0
  45. package/dist/frontend/dist/assets/it-AGTDMBL3-Bq_I1CA1.js.map +1 -0
  46. package/dist/frontend/dist/assets/ja-TTGOVF5K-CkAQueln.js +2 -0
  47. package/dist/frontend/dist/assets/ja-TTGOVF5K-CkAQueln.js.map +1 -0
  48. package/dist/frontend/dist/assets/ko-FF77IQ7N-fJgs5Roz.js +2 -0
  49. package/dist/frontend/dist/assets/ko-FF77IQ7N-fJgs5Roz.js.map +1 -0
  50. package/dist/frontend/dist/assets/{layout-B1HJjFMW.js → layout-BO_gP65g.js} +2 -2
  51. package/dist/frontend/dist/assets/{layout-B1HJjFMW.js.map → layout-BO_gP65g.js.map} +1 -1
  52. package/dist/frontend/dist/assets/{layout-B7mIcfJU.js → layout-C-P8uUyx.js} +2 -2
  53. package/dist/frontend/dist/assets/{layout-B7mIcfJU.js.map → layout-C-P8uUyx.js.map} +1 -1
  54. package/dist/frontend/dist/assets/{layout-Cw-T4GPy.js → layout-C7qxASOF.js} +2 -2
  55. package/dist/frontend/dist/assets/{layout-Cw-T4GPy.js.map → layout-C7qxASOF.js.map} +1 -1
  56. package/dist/frontend/dist/assets/{layout-BK6OF3Hx.js → layout-DVrTweI_.js} +2 -2
  57. package/dist/frontend/dist/assets/{layout-BK6OF3Hx.js.map → layout-DVrTweI_.js.map} +1 -1
  58. package/dist/frontend/dist/assets/ms-UPQWWIL4-DEDFniGv.js +2 -0
  59. package/dist/frontend/dist/assets/ms-UPQWWIL4-DEDFniGv.js.map +1 -0
  60. package/dist/frontend/dist/assets/nl-W75HEPFL-D2_VQYac.js +2 -0
  61. package/dist/frontend/dist/assets/nl-W75HEPFL-D2_VQYac.js.map +1 -0
  62. package/dist/frontend/dist/assets/no-R4W7W7ZU-Duk86nrT.js +2 -0
  63. package/dist/frontend/dist/assets/no-R4W7W7ZU-Duk86nrT.js.map +1 -0
  64. package/dist/frontend/dist/assets/{not-found-uRBdv-bF.js → not-found-CVsHHn2n.js} +2 -2
  65. package/dist/frontend/dist/assets/{not-found-uRBdv-bF.js.map → not-found-CVsHHn2n.js.map} +1 -1
  66. package/dist/frontend/dist/assets/{page-CBL0MuAo.js → page-3CgxsYbh.js} +2 -2
  67. package/dist/frontend/dist/assets/{page-CBL0MuAo.js.map → page-3CgxsYbh.js.map} +1 -1
  68. package/dist/frontend/dist/assets/{page-BLt9SJto.js → page-8S-MQzsq.js} +2 -2
  69. package/dist/frontend/dist/assets/{page-BLt9SJto.js.map → page-8S-MQzsq.js.map} +1 -1
  70. package/dist/frontend/dist/assets/{page-Bnawjb1Y.js → page-B-leMN2k.js} +2 -2
  71. package/dist/frontend/dist/assets/{page-Bnawjb1Y.js.map → page-B-leMN2k.js.map} +1 -1
  72. package/dist/frontend/dist/assets/{page-CKCKmPQO.js → page-B5Dz_Nh-.js} +2 -2
  73. package/dist/frontend/dist/assets/{page-CKCKmPQO.js.map → page-B5Dz_Nh-.js.map} +1 -1
  74. package/dist/frontend/dist/assets/{page-5wC1as95.js → page-BfKm2iQ2.js} +2 -2
  75. package/dist/frontend/dist/assets/{page-5wC1as95.js.map → page-BfKm2iQ2.js.map} +1 -1
  76. package/dist/frontend/dist/assets/{page-wxqWVnqc.js → page-Br5SeiDL.js} +2 -2
  77. package/dist/frontend/dist/assets/{page-wxqWVnqc.js.map → page-Br5SeiDL.js.map} +1 -1
  78. package/dist/frontend/dist/assets/page-C6_MlYjr.js +2 -0
  79. package/dist/frontend/dist/assets/{page-C7vfVcap.js.map → page-C6_MlYjr.js.map} +1 -1
  80. package/dist/frontend/dist/assets/page-CXE3Zhkq.js +2 -0
  81. package/dist/frontend/dist/assets/page-CXE3Zhkq.js.map +1 -0
  82. package/dist/frontend/dist/assets/{page-CdqGKYBH.js → page-Cg1IhnH2.js} +2 -2
  83. package/dist/frontend/dist/assets/{page-CdqGKYBH.js.map → page-Cg1IhnH2.js.map} +1 -1
  84. package/dist/frontend/dist/assets/{page-BlU7QK_-.js → page-CqV1yD4w.js} +2 -2
  85. package/dist/frontend/dist/assets/{page-BlU7QK_-.js.map → page-CqV1yD4w.js.map} +1 -1
  86. package/dist/frontend/dist/assets/{page-Bcljtfsa.js → page-D6saO7D3.js} +2 -2
  87. package/dist/frontend/dist/assets/{page-Bcljtfsa.js.map → page-D6saO7D3.js.map} +1 -1
  88. package/dist/frontend/dist/assets/{page-Dgqi9Orl.js → page-D7ZN9Yo5.js} +2 -2
  89. package/dist/frontend/dist/assets/{page-Dgqi9Orl.js.map → page-D7ZN9Yo5.js.map} +1 -1
  90. package/dist/frontend/dist/assets/{page-CfMLSllg.js → page-DaL8x94G.js} +2 -2
  91. package/dist/frontend/dist/assets/{page-CfMLSllg.js.map → page-DaL8x94G.js.map} +1 -1
  92. package/dist/frontend/dist/assets/{page-BNaAGnc3.js → page-Dj5UZ_d6.js} +2 -2
  93. package/dist/frontend/dist/assets/{page-BNaAGnc3.js.map → page-Dj5UZ_d6.js.map} +1 -1
  94. package/dist/frontend/dist/assets/{page-SrDV7XYv.js → page-DyGU2n2w.js} +2 -2
  95. package/dist/frontend/dist/assets/{page-SrDV7XYv.js.map → page-DyGU2n2w.js.map} +1 -1
  96. package/dist/frontend/dist/assets/{page-D7w7NNd7.js → page-E4A7Vkwl.js} +2 -2
  97. package/dist/frontend/dist/assets/{page-D7w7NNd7.js.map → page-E4A7Vkwl.js.map} +1 -1
  98. package/dist/frontend/dist/assets/{page-Bf4MMijQ.js → page-OFxNMOoF.js} +2 -2
  99. package/dist/frontend/dist/assets/{page-Bf4MMijQ.js.map → page-OFxNMOoF.js.map} +1 -1
  100. package/dist/frontend/dist/assets/{page-DAH06BM4.js → page-RRMlL_4-.js} +2 -2
  101. package/dist/frontend/dist/assets/{page-DAH06BM4.js.map → page-RRMlL_4-.js.map} +1 -1
  102. package/dist/frontend/dist/assets/pl-GQC2ELWO-CYs9xZGI.js +2 -0
  103. package/dist/frontend/dist/assets/pl-GQC2ELWO-CYs9xZGI.js.map +1 -0
  104. package/dist/frontend/dist/assets/{privacy-Kk_oWnpO.js → privacy-Rbj4Ycw9.js} +2 -2
  105. package/dist/frontend/dist/assets/{privacy-Kk_oWnpO.js.map → privacy-Rbj4Ycw9.js.map} +1 -1
  106. package/dist/frontend/dist/assets/pt-YGVT62RU-pnVyr-_6.js +2 -0
  107. package/dist/frontend/dist/assets/pt-YGVT62RU-pnVyr-_6.js.map +1 -0
  108. package/dist/frontend/dist/assets/ro-TST6XS6X-CRozzX2s.js +2 -0
  109. package/dist/frontend/dist/assets/ro-TST6XS6X-CRozzX2s.js.map +1 -0
  110. package/dist/frontend/dist/assets/{routing-CKNCPdYO.js → routing-CUnWbO2L.js} +2 -2
  111. package/dist/frontend/dist/assets/{routing-CKNCPdYO.js.map → routing-CUnWbO2L.js.map} +1 -1
  112. package/dist/frontend/dist/assets/{routing-CGghUc0N.js → routing-CxPkffyg.js} +2 -2
  113. package/dist/frontend/dist/assets/{routing-CGghUc0N.js.map → routing-CxPkffyg.js.map} +1 -1
  114. package/dist/frontend/dist/assets/sv-TQLF6HV7-DNDzEE6l.js +2 -0
  115. package/dist/frontend/dist/assets/sv-TQLF6HV7-DNDzEE6l.js.map +1 -0
  116. package/dist/frontend/dist/assets/th-HJUIETVR-C8TRIJwR.js +2 -0
  117. package/dist/frontend/dist/assets/th-HJUIETVR-C8TRIJwR.js.map +1 -0
  118. package/dist/frontend/dist/assets/tr-CW3C46TW-wpHSGdDw.js +2 -0
  119. package/dist/frontend/dist/assets/tr-CW3C46TW-wpHSGdDw.js.map +1 -0
  120. package/dist/frontend/dist/assets/uk-WTHZQB2U-3kAkt5-3.js +2 -0
  121. package/dist/frontend/dist/assets/uk-WTHZQB2U-3kAkt5-3.js.map +1 -0
  122. package/dist/frontend/dist/assets/vi-PHWHJLKP-DYHi4xUC.js +2 -0
  123. package/dist/frontend/dist/assets/vi-PHWHJLKP-DYHi4xUC.js.map +1 -0
  124. package/dist/frontend/dist/assets/{web-DdXPBk3h.js → web-C8yeWrxL.js} +2 -2
  125. package/dist/frontend/dist/assets/{web-DdXPBk3h.js.map → web-C8yeWrxL.js.map} +1 -1
  126. package/dist/frontend/dist/assets/zh-MO3FCUD6-CLkb7wBO.js +2 -0
  127. package/dist/frontend/dist/assets/zh-MO3FCUD6-CLkb7wBO.js.map +1 -0
  128. package/dist/frontend/dist/index.html +1 -1
  129. package/dist/frontend/dist/messages/ar.json +1 -16
  130. package/dist/frontend/dist/messages/bn.json +1 -16
  131. package/dist/frontend/dist/messages/cs.json +1 -16
  132. package/dist/frontend/dist/messages/da.json +1 -16
  133. package/dist/frontend/dist/messages/de.json +1 -16
  134. package/dist/frontend/dist/messages/el.json +1 -16
  135. package/dist/frontend/dist/messages/en.json +1 -16
  136. package/dist/frontend/dist/messages/es.json +1 -16
  137. package/dist/frontend/dist/messages/fa.json +1 -16
  138. package/dist/frontend/dist/messages/fi.json +1 -16
  139. package/dist/frontend/dist/messages/fr.json +1 -16
  140. package/dist/frontend/dist/messages/he.json +1 -16
  141. package/dist/frontend/dist/messages/hi.json +1 -16
  142. package/dist/frontend/dist/messages/id.json +1 -16
  143. package/dist/frontend/dist/messages/it.json +1 -16
  144. package/dist/frontend/dist/messages/ja.json +1 -16
  145. package/dist/frontend/dist/messages/ko.json +1 -16
  146. package/dist/frontend/dist/messages/ms.json +1 -16
  147. package/dist/frontend/dist/messages/nl.json +1 -16
  148. package/dist/frontend/dist/messages/no.json +1 -16
  149. package/dist/frontend/dist/messages/pl.json +1 -16
  150. package/dist/frontend/dist/messages/pt.json +1 -16
  151. package/dist/frontend/dist/messages/ro.json +1 -16
  152. package/dist/frontend/dist/messages/sv.json +1 -16
  153. package/dist/frontend/dist/messages/th.json +1 -16
  154. package/dist/frontend/dist/messages/tr.json +1 -16
  155. package/dist/frontend/dist/messages/uk.json +1 -16
  156. package/dist/frontend/dist/messages/vi.json +1 -16
  157. package/dist/frontend/dist/messages/zh.json +1 -16
  158. package/dist/frontend/package.json +1 -1
  159. package/package.json +8 -8
  160. package/dist/frontend/dist/assets/ar-3W37O3R3-BJ1fDUvB.js +0 -2
  161. package/dist/frontend/dist/assets/ar-3W37O3R3-BJ1fDUvB.js.map +0 -1
  162. package/dist/frontend/dist/assets/bn-JZTJLMVE-k1gI6ffq.js +0 -2
  163. package/dist/frontend/dist/assets/bn-JZTJLMVE-k1gI6ffq.js.map +0 -1
  164. package/dist/frontend/dist/assets/cs-XYHH7HNE-BqQWIWM9.js +0 -2
  165. package/dist/frontend/dist/assets/cs-XYHH7HNE-BqQWIWM9.js.map +0 -1
  166. package/dist/frontend/dist/assets/da-MZKIECVT-pufSb0d_.js +0 -2
  167. package/dist/frontend/dist/assets/da-MZKIECVT-pufSb0d_.js.map +0 -1
  168. package/dist/frontend/dist/assets/de-AYXTMRQW-BRMduIa0.js +0 -2
  169. package/dist/frontend/dist/assets/de-AYXTMRQW-BRMduIa0.js.map +0 -1
  170. package/dist/frontend/dist/assets/el-A6CVQWAW-DycBhXUi.js +0 -2
  171. package/dist/frontend/dist/assets/el-A6CVQWAW-DycBhXUi.js.map +0 -1
  172. package/dist/frontend/dist/assets/es-M2HXLJGT-BFQ6WIpw.js +0 -2
  173. package/dist/frontend/dist/assets/es-M2HXLJGT-BFQ6WIpw.js.map +0 -1
  174. package/dist/frontend/dist/assets/fa-V6JZJDYP-C8CwCeSd.js.map +0 -1
  175. package/dist/frontend/dist/assets/fi-ONDTZ5H7-aby5--Ip.js +0 -2
  176. package/dist/frontend/dist/assets/fi-ONDTZ5H7-aby5--Ip.js.map +0 -1
  177. package/dist/frontend/dist/assets/fr-PAPV4H4G-D9SFT8MA.js +0 -2
  178. package/dist/frontend/dist/assets/fr-PAPV4H4G-D9SFT8MA.js.map +0 -1
  179. package/dist/frontend/dist/assets/he-F6VTLJLW-B8Rc1C-m.js +0 -2
  180. package/dist/frontend/dist/assets/he-F6VTLJLW-B8Rc1C-m.js.map +0 -1
  181. package/dist/frontend/dist/assets/hi-CFUAV4BF-CuWy2y7I.js +0 -2
  182. package/dist/frontend/dist/assets/hi-CFUAV4BF-CuWy2y7I.js.map +0 -1
  183. package/dist/frontend/dist/assets/id-NBKLCCI7-DnMwKKq7.js +0 -2
  184. package/dist/frontend/dist/assets/id-NBKLCCI7-DnMwKKq7.js.map +0 -1
  185. package/dist/frontend/dist/assets/index-BVOR3arc.js.map +0 -1
  186. package/dist/frontend/dist/assets/it-SLSOWVVU-hrlm8f9F.js +0 -2
  187. package/dist/frontend/dist/assets/it-SLSOWVVU-hrlm8f9F.js.map +0 -1
  188. package/dist/frontend/dist/assets/ja-L5IG4ECE-BvMVB5sy.js +0 -2
  189. package/dist/frontend/dist/assets/ja-L5IG4ECE-BvMVB5sy.js.map +0 -1
  190. package/dist/frontend/dist/assets/ko-QYMTULKK-CNEZe0oy.js +0 -2
  191. package/dist/frontend/dist/assets/ko-QYMTULKK-CNEZe0oy.js.map +0 -1
  192. package/dist/frontend/dist/assets/ms-5DGSFKM2-BlyezW6W.js +0 -2
  193. package/dist/frontend/dist/assets/ms-5DGSFKM2-BlyezW6W.js.map +0 -1
  194. package/dist/frontend/dist/assets/nl-VZPCGONO-BJ0llUPS.js +0 -2
  195. package/dist/frontend/dist/assets/nl-VZPCGONO-BJ0llUPS.js.map +0 -1
  196. package/dist/frontend/dist/assets/no-MF6F352I-Wf2ZNjHx.js +0 -2
  197. package/dist/frontend/dist/assets/no-MF6F352I-Wf2ZNjHx.js.map +0 -1
  198. package/dist/frontend/dist/assets/page-B6XEk2Ue.js +0 -2
  199. package/dist/frontend/dist/assets/page-B6XEk2Ue.js.map +0 -1
  200. package/dist/frontend/dist/assets/page-C7vfVcap.js +0 -2
  201. package/dist/frontend/dist/assets/pl-WIK72JUO-wOGg7Me5.js +0 -2
  202. package/dist/frontend/dist/assets/pl-WIK72JUO-wOGg7Me5.js.map +0 -1
  203. package/dist/frontend/dist/assets/pt-RRP5ZF6A-C32Vedhv.js +0 -2
  204. package/dist/frontend/dist/assets/pt-RRP5ZF6A-C32Vedhv.js.map +0 -1
  205. package/dist/frontend/dist/assets/ro-XHQLC3T7-uGs3uHRp.js +0 -2
  206. package/dist/frontend/dist/assets/ro-XHQLC3T7-uGs3uHRp.js.map +0 -1
  207. package/dist/frontend/dist/assets/sv-EWULDN6E-CkRBfwt9.js +0 -2
  208. package/dist/frontend/dist/assets/sv-EWULDN6E-CkRBfwt9.js.map +0 -1
  209. package/dist/frontend/dist/assets/th-TGOBHFG4-BGt_aO5K.js +0 -2
  210. package/dist/frontend/dist/assets/th-TGOBHFG4-BGt_aO5K.js.map +0 -1
  211. package/dist/frontend/dist/assets/tr-LMMPBMV7-CrGE1PKA.js +0 -2
  212. package/dist/frontend/dist/assets/tr-LMMPBMV7-CrGE1PKA.js.map +0 -1
  213. package/dist/frontend/dist/assets/uk-IPGRRJY6-CPaxgpd8.js +0 -2
  214. package/dist/frontend/dist/assets/uk-IPGRRJY6-CPaxgpd8.js.map +0 -1
  215. package/dist/frontend/dist/assets/vi-Q676OJQS-DpyIm6R1.js +0 -2
  216. package/dist/frontend/dist/assets/vi-Q676OJQS-DpyIm6R1.js.map +0 -1
  217. package/dist/frontend/dist/assets/zh-F3MTWQDX-C09t_PFf.js +0 -2
  218. package/dist/frontend/dist/assets/zh-F3MTWQDX-C09t_PFf.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import{u as O,c as T,e as J,$ as X,a0 as q,a1 as ee,j as e,a2 as te,a3 as H,a4 as P,a5 as ne,a6 as se,a7 as ae,a8 as ie,n as oe,a9 as re,k as le,aa as ce,ab as de,ac as me}from"./index-BVOR3arc.js";import{r as o}from"./vendor-DJo4KD8w.js";import{u as W,a as ue,b as he}from"./routing-CGghUc0N.js";import{u as U}from"./i18n-BbpF47i1.js";import{a as pe,F as ge}from"./XMarkIcon-KMKD47CF.js";function xe({title:i,titleId:n,...r},a){return o.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:a,"aria-labelledby":n},r),i?o.createElement("title",{id:n},i):null,o.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 9V5.25A2.25 2.25 0 0 0 13.5 3h-6a2.25 2.25 0 0 0-2.25 2.25v13.5A2.25 2.25 0 0 0 7.5 21h6a2.25 2.25 0 0 0 2.25-2.25V15m3 0 3-3m0 0-3-3m3 3H9"}))}const fe=o.forwardRef(xe);function ve({title:i,titleId:n,...r},a){return o.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:a,"aria-labelledby":n},r),i?o.createElement("title",{id:n},i):null,o.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 12.75 6 6 9-13.5"}))}const je=o.forwardRef(ve);function be({title:i,titleId:n,...r},a){return o.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:a,"aria-labelledby":n},r),i?o.createElement("title",{id:n},i):null,o.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 4.5v15m7.5-7.5h-15"}))}const ye=o.forwardRef(be),F="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGNpcmNsZSBjeD0iMTYiIGN5PSIxNiIgcj0iMTYiIGZpbGw9IiM2QjcyODAiLz4KPHBhdGggZD0iTTE2IDE2QzE4LjIwOTEgMTYgMjAgMTQuMjA5MSAyMCAxMkMyMCA5Ljc5MDg2IDE4LjIwOTEgOCAxNiA4QzEzLjc5MDkgOCAxMiA5Ljc5MDg2IDEyIDEyQzEyIDE0LjIwOTEgMTMuNzkwOSAxNiAxNiAxNloiIGZpbGw9IiNFNUU3RUIiLz4KPHBhdGggZD0iTTI0IDI1QzI0IDIxLjY4NjMgMjAuNDE4MyAxOSAxNiAxOUMxMS41ODE3IDE5IDggMjEuNjg2MyA4IDI1IiBzdHJva2U9IiNFNUU3RUIiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+Cjwvc3ZnPg==";function Se(){var A,l;const{t:i}=U(),n=(k,D)=>i(`UserPanel.${k}`,D),r=O(),a=T(r.activeSession$),s=T(a==null?void 0:a.user$)??null,p=(a==null?void 0:a.kb)??null,d=(s==null?void 0:s.name)??((A=s==null?void 0:s.email)==null?void 0:A.split("@")[0])??"User",f=(s==null?void 0:s.image)??null,m=(s==null?void 0:s.domain)||((l=s==null?void 0:s.email)==null?void 0:l.split("@")[1]),y=(s==null?void 0:s.isAdmin)??!1,u=(s==null?void 0:s.isModerator)??!1,v=a==null?void 0:a.client,h=J(()=>X(v)),j=W(),[S,E]=o.useState(!1),{timeRemaining:N}=q(),C=te(N)??"Unknown",w=(()=>{if(!f||S)return F;const k=ee(f);return k||(console.warn("Invalid profile image URL detected, using fallback"),F)})(),M=async()=>{await h.logout(),p&&await r.signOut(p.id),j.push("/")};return e.jsxs("div",{className:"semiont-user-panel",children:[e.jsx("h3",{className:"semiont-user-panel__title",children:n("account")}),p&&e.jsx("div",{style:{padding:"0 0.75rem 0.5rem",fontSize:"0.8rem",color:"var(--semiont-color-neutral-400)"},children:p.label}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("img",{src:w,alt:n("profileAlt",{name:d||n("user")}),width:48,height:48,className:"w-12 h-12 rounded-full object-cover",onError:()=>E(!0)}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"semiont-panel-text",children:d||n("user")}),m&&e.jsxs("div",{className:"semiont-panel-text-secondary",children:["@",m]})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"semiont-panel-label",children:n("session")}),e.jsx("div",{className:"semiont-session-box",children:e.jsx("div",{className:"semiont-panel-hint",children:n("expiresIn",{time:C})})})]}),(y||u)&&e.jsxs("div",{children:[e.jsx("label",{className:"semiont-panel-label",children:n("privileges")}),e.jsxs("div",{className:"space-y-1",children:[y&&e.jsx("div",{className:"semiont-privilege-badge semiont-privilege-badge--admin",children:e.jsx("span",{className:"semiont-privilege-text",children:n("administrator")})}),u&&e.jsx("div",{className:"semiont-privilege-badge semiont-privilege-badge--moderator",children:e.jsx("span",{className:"semiont-privilege-text",children:n("moderator")})})]})]}),e.jsx("div",{className:"semiont-panel-divider",children:e.jsx("button",{onClick:M,className:"semiont-signout-button",children:n("signOut")})})]})]})}const we={authenticated:"var(--semiont-color-success-500, #22c55e)",expired:"var(--semiont-color-warning-500, #eab308)","signed-out":"var(--semiont-color-neutral-400, #9ca3af)",unreachable:"var(--semiont-color-error-500, #ef4444)"},Ne={authenticated:"statusConnected",expired:"statusExpired","signed-out":"statusSignedOut",unreachable:"statusUnreachable"};function Ie({status:i,t:n}){return e.jsx("span",{title:n(Ne[i]),style:{width:"0.5rem",height:"0.5rem",borderRadius:"50%",backgroundColor:we[i],flexShrink:0}})}function Ae({t:i,onSubmit:n,onCancel:r,error:a,isSubmitting:s,autoFocus:p,pulsing:d,initialHost:f="localhost",initialPort:m=4e3,initialEmail:y="admin@example.com"}){const[u,v]=o.useState(f),[h,j]=o.useState(String(m)),[S,E]=o.useState(H(f)),[N,C]=o.useState(y),[w,M]=o.useState(""),A=l=>{v(l),E(H(l))};return e.jsxs("div",{className:d?"semiont-panel__login-form--pulsing":"",style:{margin:"0.5rem",padding:"0.75rem",border:"1px solid var(--semiont-color-neutral-200, #e5e7eb)",borderRadius:"var(--semiont-panel-border-radius, 0.5rem)",background:"var(--semiont-bg-secondary, transparent)"},children:[e.jsx("h3",{style:{fontSize:"0.8rem",fontWeight:600,marginBottom:"0.5rem"},children:i("connectTitle")}),e.jsxs("form",{onSubmit:l=>{l.preventDefault(),P(u)&&n(u,parseInt(h,10)||4e3,S,N,w)},style:{display:"flex",flexDirection:"column",gap:"0.5rem"},children:[e.jsxs("select",{value:S,onChange:l=>E(l.target.value),className:"semiont-input",children:[e.jsx("option",{value:"http",children:"HTTP"}),e.jsx("option",{value:"https",children:"HTTPS"})]}),e.jsx("input",{type:"text",value:u,onChange:l=>A(l.target.value),placeholder:"Host",className:"semiont-input",autoFocus:p}),e.jsx("input",{type:"number",value:h,onChange:l=>j(l.target.value),placeholder:"Port",className:"semiont-input"}),u&&!P(u)&&e.jsx("div",{style:{color:"var(--semiont-color-error-500, #ef4444)",fontSize:"0.75rem"},children:i("invalidHost")}),e.jsx("input",{type:"email",value:N,onChange:l=>C(l.target.value),placeholder:"Email",className:"semiont-input"}),e.jsx("input",{type:"password",value:w,onChange:l=>M(l.target.value),placeholder:"Password",className:"semiont-input"}),a&&e.jsx("div",{style:{color:"var(--semiont-color-error-500, #ef4444)",fontSize:"0.75rem"},children:a}),e.jsxs("div",{style:{display:"flex",gap:"0.5rem"},children:[e.jsx("button",{type:"submit",className:"semiont-button semiont-button--primary",style:{flex:1},disabled:s||!P(u),children:i(s?"connecting":"connect")}),e.jsx("button",{type:"button",className:"semiont-button",onClick:r,children:e.jsx(ge,{style:{width:"1rem",height:"1rem"}})})]})]})]})}function Ee({t:i,kb:n,onSubmit:r,onCancel:a,error:s,isSubmitting:p}){const[d,f]=o.useState("");return e.jsxs("form",{onSubmit:m=>{m.preventDefault(),r(d)},style:{padding:"0.5rem 0.75rem",display:"flex",flexDirection:"column",gap:"0.375rem"},children:[e.jsx("div",{style:{fontSize:"0.75rem",color:"var(--semiont-color-neutral-400)"},children:n.email}),e.jsx("input",{type:"password",value:d,onChange:m=>f(m.target.value),placeholder:"Password",className:"semiont-input",style:{fontSize:"0.8rem"},autoFocus:!0}),s&&e.jsx("div",{style:{color:"var(--semiont-color-error-500, #ef4444)",fontSize:"0.75rem"},children:s}),e.jsxs("div",{style:{display:"flex",gap:"0.375rem"},children:[e.jsx("button",{type:"submit",className:"semiont-button semiont-button--primary",style:{flex:1,fontSize:"0.8rem"},disabled:p,children:i(p?"signingIn":"signIn")}),e.jsx("button",{type:"button",className:"semiont-button",onClick:a,style:{fontSize:"0.8rem"},children:i("cancel")})]})]})}async function _(i,n,r,a,s){const p=`${r}://${i}:${n}`,d=new ne({baseUrl:se(p)}),f=new ae(d,new ie(d),d),m=await f.auth.password(a,s),y=m.token??m.accessToken,u=m.refreshToken;if(!y)throw new Error("No access token received");if(!u)throw new Error("No refresh token received");let v=`${i}:${n}`,h;try{const j=await f.admin.status();j.projectName&&(v=j.projectName),j.gitBranch&&(h=j.gitBranch)}catch{}return{token:y,refreshToken:u,label:v,...h?{gitBranch:h}:{}}}function ke(){var $;const{t:i}=U(),n=(t,g)=>i(`KnowledgeBasePanel.${t}`,g),r=O(),a=T(r.kbs$)??[],s=(($=T(r.activeSession$))==null?void 0:$.kb)??null,p=t=>{r.setActiveKb(t)},d=r.addKb.bind(r),f=r.removeKb.bind(r),m=r.updateKb.bind(r),y=(t,g,x)=>{r.signIn(t,g,x)},u=t=>{r.signOut(t)},[v,h]=o.useState(!1),[j,S]=o.useState(null),[E,N]=o.useState(!1),[C,w]=o.useState(null),[M,A]=o.useState(null),[l,k]=o.useState(!1),[D,L]=o.useState(null),[,Z]=o.useState(0);o.useEffect(()=>{a.length===0&&h(!0)},[a.length]),o.useEffect(()=>{const t=setInterval(()=>Z(g=>g+1),3e4);return()=>clearInterval(t)},[]);const G=()=>{h(!0),w(null),S(null)},Q=async(t,g,x,b,I)=>{S(null),N(!0);const R=a.find(c=>c.endpoint.kind==="http"&&c.endpoint.host===t&&c.endpoint.port===g);if(R){try{const{token:c,refreshToken:B,gitBranch:z}=await _(t,g,x,b,I);m(R.id,{...z?{gitBranch:z}:{}}),y(R.id,c,B),h(!1)}catch(c){S(c instanceof Error?c.message:String(c))}finally{N(!1)}return}try{const{token:c,refreshToken:B,label:z,gitBranch:K}=await _(t,g,x,b,I);d({label:z,email:b,endpoint:{kind:"http",host:t,port:g,protocol:x},...K?{gitBranch:K}:{}},c,B),h(!1)}catch(c){S(c instanceof Error?c.message:String(c))}finally{N(!1)}},Y=async(t,g)=>{const x=a.find(b=>b.id===t);if(x){if(A(null),k(!0),x.endpoint.kind!=="http"){A(`Re-auth is HTTP-only; KB endpoint kind "${x.endpoint.kind}" is not supported here.`),k(!1);return}try{const{token:b,refreshToken:I,label:R,gitBranch:c}=await _(x.endpoint.host,x.endpoint.port,x.endpoint.protocol,x.email,g);m(t,{label:R,...c?{gitBranch:c}:{}}),y(t,b,I),w(null)}catch(b){A(b instanceof Error?b.message:String(b))}finally{k(!1)}}},V=t=>{r.getKbSessionStatus(t.id)==="authenticated"?p(t.id):(w(t.id),h(!1),A(null))};return e.jsxs("div",{className:"semiont-panel",children:[e.jsx("div",{className:"semiont-panel-header",children:e.jsxs("h2",{className:"semiont-panel-header__title",children:[e.jsx("span",{className:"semiont-panel-header__text",children:n("title")}),e.jsxs("span",{className:"semiont-panel-header__count",children:["(",a.length,")"]})]})}),e.jsxs("div",{className:"semiont-panel__content",children:[e.jsx("div",{className:"semiont-panel__list",children:a.map(t=>{const g=r.getKbSessionStatus(t.id),x=t.id===(s==null?void 0:s.id),b=C===t.id;return e.jsxs("div",{children:[e.jsxs("div",{className:`semiont-panel-item semiont-panel-item--clickable${x?" semiont-panel-item--selected":""}`,style:{display:"flex",flexDirection:"column",gap:"0.25rem",cursor:"pointer",padding:"0.5rem 0.75rem"},onClick:()=>V(t),children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"0.5rem"},children:[e.jsx(Ie,{status:g,t:n}),e.jsx("span",{className:"semiont-panel-text",style:{flex:1,fontWeight:500},children:t.label}),x&&e.jsx(je,{style:{width:"1rem",height:"1rem",color:"var(--semiont-color-primary-500)",flexShrink:0}}),g==="authenticated"&&e.jsx("button",{onClick:I=>{I.stopPropagation(),u(t.id)},title:n("signOut"),style:{background:"none",border:"none",cursor:"pointer",padding:"0.125rem",color:"var(--semiont-color-neutral-400)"},children:e.jsx(fe,{style:{width:"0.875rem",height:"0.875rem"}})}),e.jsx("button",{onClick:I=>{I.stopPropagation(),L(t.id)},title:n("remove"),style:{background:"none",border:"none",cursor:"pointer",padding:"0.125rem",color:"var(--semiont-color-neutral-400)"},children:e.jsx(pe,{style:{width:"0.875rem",height:"0.875rem"}})})]}),e.jsxs("span",{className:"semiont-panel-text-secondary",style:{fontSize:"0.7rem",paddingLeft:"1rem"},children:[t.endpoint.kind==="http"?`${t.endpoint.host}:${t.endpoint.port}`:`local:${t.endpoint.kbId}`,t.gitBranch?` · ${t.gitBranch}`:""]})]}),D===t.id&&e.jsxs("div",{style:{padding:"0.5rem 0.75rem",fontSize:"0.8rem",display:"flex",alignItems:"center",gap:"0.5rem",background:"var(--semiont-bg-secondary, #f9fafb)",borderBottom:"1px solid var(--semiont-color-neutral-200, #e5e7eb)"},children:[e.jsx("span",{style:{flex:1,color:"var(--semiont-color-neutral-500)"},children:n("removeConfirm",{label:t.label})}),e.jsx("button",{onClick:()=>{f(t.id),L(null)},className:"semiont-button",style:{fontSize:"0.75rem",padding:"0.2rem 0.5rem",color:"var(--semiont-color-error-500, #ef4444)"},children:n("remove")}),e.jsx("button",{onClick:()=>L(null),className:"semiont-button",style:{fontSize:"0.75rem",padding:"0.2rem 0.5rem"},children:n("cancel")})]}),b&&e.jsx(Ee,{t:n,kb:t,onSubmit:I=>Y(t.id,I),onCancel:()=>w(null),error:M,isSubmitting:l})]},t.id)})}),v&&e.jsx(Ae,{t:n,onSubmit:Q,onCancel:()=>h(!1),error:j,isSubmitting:E,autoFocus:a.length===0,pulsing:a.length===0})]}),!v&&e.jsx("div",{className:"semiont-panel-footer",children:e.jsxs("button",{onClick:G,className:"semiont-panel-item semiont-panel-item--clickable",style:{width:"100%",display:"flex",alignItems:"center",gap:"0.5rem",color:"var(--semiont-color-primary-600)"},children:[e.jsx(ye,{style:{width:"1rem",height:"1rem",flexShrink:0}}),e.jsx("span",{className:"semiont-panel-text",style:{color:"inherit"},children:n("addKnowledgeBase")})]})})]})}function De({activePanel:i,theme:n,showLineNumbers:r,children:a}){const{hoverDelayMs:s}=oe(),{t:p}=U(),d=T(O().activeSession$),m=!!T(d==null?void 0:d.user$),y=ue(),u=W(),v=he(),[h,j]=o.useTransition(),{width:S,setWidth:E,minWidth:N,maxWidth:C}=re(),w=o.useCallback(({locale:M})=>{v&&j(()=>{u.replace(v,{locale:M})})},[v,u,j]);return le({"settings:locale-changed":w}),!i||!a&&!ce.includes(i)?null:e.jsxs("div",{className:"semiont-toolbar-panels",style:{width:`${S}px`,position:"relative"},children:[e.jsx(de,{onResize:E,minWidth:N,maxWidth:C,position:"left",ariaLabel:"Resize right panel"}),e.jsxs("div",{className:"semiont-toolbar-panels__content",children:[a,i==="knowledge-base"&&e.jsx(ke,{}),i==="user"&&(m?e.jsx(Se,{}):e.jsxs("div",{className:"semiont-panel",children:[e.jsx("div",{className:"semiont-panel-header",children:e.jsx("h2",{className:"semiont-panel-header__title",children:e.jsx("span",{className:"semiont-panel-header__text",children:p("UserPanel.account")})})}),e.jsx("div",{className:"semiont-panel__content",style:{padding:"1rem",textAlign:"center"},children:e.jsx("p",{style:{color:"var(--semiont-color-neutral-400)",fontSize:"0.85rem",lineHeight:1.5},children:p("AccountPanel.notAuthenticated")})})]})),i==="settings"&&e.jsx(me,{showLineNumbers:r,theme:n,hoverDelayMs:s,locale:y,isPendingLocaleChange:h})]})]})}export{ye as F,De as T};
2
- //# sourceMappingURL=ToolbarPanels-D5L18Wxk.js.map
1
+ import{u as O,c as T,e as J,$ as X,a0 as q,a1 as ee,j as e,a2 as te,a3 as H,a4 as P,a5 as ne,a6 as se,a7 as ae,a8 as ie,n as oe,a9 as re,k as le,aa as ce,ab as de,ac as me}from"./index-QjYSiWWG.js";import{r as o}from"./vendor-DJo4KD8w.js";import{u as W,a as ue,b as he}from"./routing-CxPkffyg.js";import{u as U}from"./i18n-BbpF47i1.js";import{a as pe,F as ge}from"./XMarkIcon-KMKD47CF.js";function xe({title:i,titleId:n,...r},a){return o.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:a,"aria-labelledby":n},r),i?o.createElement("title",{id:n},i):null,o.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 9V5.25A2.25 2.25 0 0 0 13.5 3h-6a2.25 2.25 0 0 0-2.25 2.25v13.5A2.25 2.25 0 0 0 7.5 21h6a2.25 2.25 0 0 0 2.25-2.25V15m3 0 3-3m0 0-3-3m3 3H9"}))}const fe=o.forwardRef(xe);function ve({title:i,titleId:n,...r},a){return o.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:a,"aria-labelledby":n},r),i?o.createElement("title",{id:n},i):null,o.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 12.75 6 6 9-13.5"}))}const je=o.forwardRef(ve);function be({title:i,titleId:n,...r},a){return o.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:a,"aria-labelledby":n},r),i?o.createElement("title",{id:n},i):null,o.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 4.5v15m7.5-7.5h-15"}))}const ye=o.forwardRef(be),F="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGNpcmNsZSBjeD0iMTYiIGN5PSIxNiIgcj0iMTYiIGZpbGw9IiM2QjcyODAiLz4KPHBhdGggZD0iTTE2IDE2QzE4LjIwOTEgMTYgMjAgMTQuMjA5MSAyMCAxMkMyMCA5Ljc5MDg2IDE4LjIwOTEgOCAxNiA4QzEzLjc5MDkgOCAxMiA5Ljc5MDg2IDEyIDEyQzEyIDE0LjIwOTEgMTMuNzkwOSAxNiAxNiAxNloiIGZpbGw9IiNFNUU3RUIiLz4KPHBhdGggZD0iTTI0IDI1QzI0IDIxLjY4NjMgMjAuNDE4MyAxOSAxNiAxOUMxMS41ODE3IDE5IDggMjEuNjg2MyA4IDI1IiBzdHJva2U9IiNFNUU3RUIiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+Cjwvc3ZnPg==";function Se(){var A,l;const{t:i}=U(),n=(k,D)=>i(`UserPanel.${k}`,D),r=O(),a=T(r.activeSession$),s=T(a==null?void 0:a.user$)??null,p=(a==null?void 0:a.kb)??null,d=(s==null?void 0:s.name)??((A=s==null?void 0:s.email)==null?void 0:A.split("@")[0])??"User",f=(s==null?void 0:s.image)??null,m=(s==null?void 0:s.domain)||((l=s==null?void 0:s.email)==null?void 0:l.split("@")[1]),y=(s==null?void 0:s.isAdmin)??!1,u=(s==null?void 0:s.isModerator)??!1,v=a==null?void 0:a.client,h=J(()=>X(v)),j=W(),[S,E]=o.useState(!1),{timeRemaining:N}=q(),C=te(N)??"Unknown",w=(()=>{if(!f||S)return F;const k=ee(f);return k||(console.warn("Invalid profile image URL detected, using fallback"),F)})(),M=async()=>{await h.logout(),p&&await r.signOut(p.id),j.push("/")};return e.jsxs("div",{className:"semiont-user-panel",children:[e.jsx("h3",{className:"semiont-user-panel__title",children:n("account")}),p&&e.jsx("div",{style:{padding:"0 0.75rem 0.5rem",fontSize:"0.8rem",color:"var(--semiont-color-neutral-400)"},children:p.label}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("img",{src:w,alt:n("profileAlt",{name:d||n("user")}),width:48,height:48,className:"w-12 h-12 rounded-full object-cover",onError:()=>E(!0)}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"semiont-panel-text",children:d||n("user")}),m&&e.jsxs("div",{className:"semiont-panel-text-secondary",children:["@",m]})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"semiont-panel-label",children:n("session")}),e.jsx("div",{className:"semiont-session-box",children:e.jsx("div",{className:"semiont-panel-hint",children:n("expiresIn",{time:C})})})]}),(y||u)&&e.jsxs("div",{children:[e.jsx("label",{className:"semiont-panel-label",children:n("privileges")}),e.jsxs("div",{className:"space-y-1",children:[y&&e.jsx("div",{className:"semiont-privilege-badge semiont-privilege-badge--admin",children:e.jsx("span",{className:"semiont-privilege-text",children:n("administrator")})}),u&&e.jsx("div",{className:"semiont-privilege-badge semiont-privilege-badge--moderator",children:e.jsx("span",{className:"semiont-privilege-text",children:n("moderator")})})]})]}),e.jsx("div",{className:"semiont-panel-divider",children:e.jsx("button",{onClick:M,className:"semiont-signout-button",children:n("signOut")})})]})]})}const we={authenticated:"var(--semiont-color-success-500, #22c55e)",expired:"var(--semiont-color-warning-500, #eab308)","signed-out":"var(--semiont-color-neutral-400, #9ca3af)",unreachable:"var(--semiont-color-error-500, #ef4444)"},Ne={authenticated:"statusConnected",expired:"statusExpired","signed-out":"statusSignedOut",unreachable:"statusUnreachable"};function Ie({status:i,t:n}){return e.jsx("span",{title:n(Ne[i]),style:{width:"0.5rem",height:"0.5rem",borderRadius:"50%",backgroundColor:we[i],flexShrink:0}})}function Ae({t:i,onSubmit:n,onCancel:r,error:a,isSubmitting:s,autoFocus:p,pulsing:d,initialHost:f="localhost",initialPort:m=4e3,initialEmail:y="admin@example.com"}){const[u,v]=o.useState(f),[h,j]=o.useState(String(m)),[S,E]=o.useState(H(f)),[N,C]=o.useState(y),[w,M]=o.useState(""),A=l=>{v(l),E(H(l))};return e.jsxs("div",{className:d?"semiont-panel__login-form--pulsing":"",style:{margin:"0.5rem",padding:"0.75rem",border:"1px solid var(--semiont-color-neutral-200, #e5e7eb)",borderRadius:"var(--semiont-panel-border-radius, 0.5rem)",background:"var(--semiont-bg-secondary, transparent)"},children:[e.jsx("h3",{style:{fontSize:"0.8rem",fontWeight:600,marginBottom:"0.5rem"},children:i("connectTitle")}),e.jsxs("form",{onSubmit:l=>{l.preventDefault(),P(u)&&n(u,parseInt(h,10)||4e3,S,N,w)},style:{display:"flex",flexDirection:"column",gap:"0.5rem"},children:[e.jsxs("select",{value:S,onChange:l=>E(l.target.value),className:"semiont-input",children:[e.jsx("option",{value:"http",children:"HTTP"}),e.jsx("option",{value:"https",children:"HTTPS"})]}),e.jsx("input",{type:"text",value:u,onChange:l=>A(l.target.value),placeholder:"Host",className:"semiont-input",autoFocus:p}),e.jsx("input",{type:"number",value:h,onChange:l=>j(l.target.value),placeholder:"Port",className:"semiont-input"}),u&&!P(u)&&e.jsx("div",{style:{color:"var(--semiont-color-error-500, #ef4444)",fontSize:"0.75rem"},children:i("invalidHost")}),e.jsx("input",{type:"email",value:N,onChange:l=>C(l.target.value),placeholder:"Email",className:"semiont-input"}),e.jsx("input",{type:"password",value:w,onChange:l=>M(l.target.value),placeholder:"Password",className:"semiont-input"}),a&&e.jsx("div",{style:{color:"var(--semiont-color-error-500, #ef4444)",fontSize:"0.75rem"},children:a}),e.jsxs("div",{style:{display:"flex",gap:"0.5rem"},children:[e.jsx("button",{type:"submit",className:"semiont-button semiont-button--primary",style:{flex:1},disabled:s||!P(u),children:i(s?"connecting":"connect")}),e.jsx("button",{type:"button",className:"semiont-button",onClick:r,children:e.jsx(ge,{style:{width:"1rem",height:"1rem"}})})]})]})]})}function Ee({t:i,kb:n,onSubmit:r,onCancel:a,error:s,isSubmitting:p}){const[d,f]=o.useState("");return e.jsxs("form",{onSubmit:m=>{m.preventDefault(),r(d)},style:{padding:"0.5rem 0.75rem",display:"flex",flexDirection:"column",gap:"0.375rem"},children:[e.jsx("div",{style:{fontSize:"0.75rem",color:"var(--semiont-color-neutral-400)"},children:n.email}),e.jsx("input",{type:"password",value:d,onChange:m=>f(m.target.value),placeholder:"Password",className:"semiont-input",style:{fontSize:"0.8rem"},autoFocus:!0}),s&&e.jsx("div",{style:{color:"var(--semiont-color-error-500, #ef4444)",fontSize:"0.75rem"},children:s}),e.jsxs("div",{style:{display:"flex",gap:"0.375rem"},children:[e.jsx("button",{type:"submit",className:"semiont-button semiont-button--primary",style:{flex:1,fontSize:"0.8rem"},disabled:p,children:i(p?"signingIn":"signIn")}),e.jsx("button",{type:"button",className:"semiont-button",onClick:a,style:{fontSize:"0.8rem"},children:i("cancel")})]})]})}async function _(i,n,r,a,s){const p=`${r}://${i}:${n}`,d=new ne({baseUrl:se(p)}),f=new ae(d,new ie(d),d),m=await f.auth.password(a,s),y=m.token??m.accessToken,u=m.refreshToken;if(!y)throw new Error("No access token received");if(!u)throw new Error("No refresh token received");let v=`${i}:${n}`,h;try{const j=await f.admin.status();j.projectName&&(v=j.projectName),j.gitBranch&&(h=j.gitBranch)}catch{}return{token:y,refreshToken:u,label:v,...h?{gitBranch:h}:{}}}function ke(){var $;const{t:i}=U(),n=(t,g)=>i(`KnowledgeBasePanel.${t}`,g),r=O(),a=T(r.kbs$)??[],s=(($=T(r.activeSession$))==null?void 0:$.kb)??null,p=t=>{r.setActiveKb(t)},d=r.addKb.bind(r),f=r.removeKb.bind(r),m=r.updateKb.bind(r),y=(t,g,x)=>{r.signIn(t,g,x)},u=t=>{r.signOut(t)},[v,h]=o.useState(!1),[j,S]=o.useState(null),[E,N]=o.useState(!1),[C,w]=o.useState(null),[M,A]=o.useState(null),[l,k]=o.useState(!1),[D,L]=o.useState(null),[,Z]=o.useState(0);o.useEffect(()=>{a.length===0&&h(!0)},[a.length]),o.useEffect(()=>{const t=setInterval(()=>Z(g=>g+1),3e4);return()=>clearInterval(t)},[]);const G=()=>{h(!0),w(null),S(null)},Q=async(t,g,x,b,I)=>{S(null),N(!0);const R=a.find(c=>c.endpoint.kind==="http"&&c.endpoint.host===t&&c.endpoint.port===g);if(R){try{const{token:c,refreshToken:B,gitBranch:z}=await _(t,g,x,b,I);m(R.id,{...z?{gitBranch:z}:{}}),y(R.id,c,B),h(!1)}catch(c){S(c instanceof Error?c.message:String(c))}finally{N(!1)}return}try{const{token:c,refreshToken:B,label:z,gitBranch:K}=await _(t,g,x,b,I);d({label:z,email:b,endpoint:{kind:"http",host:t,port:g,protocol:x},...K?{gitBranch:K}:{}},c,B),h(!1)}catch(c){S(c instanceof Error?c.message:String(c))}finally{N(!1)}},Y=async(t,g)=>{const x=a.find(b=>b.id===t);if(x){if(A(null),k(!0),x.endpoint.kind!=="http"){A(`Re-auth is HTTP-only; KB endpoint kind "${x.endpoint.kind}" is not supported here.`),k(!1);return}try{const{token:b,refreshToken:I,label:R,gitBranch:c}=await _(x.endpoint.host,x.endpoint.port,x.endpoint.protocol,x.email,g);m(t,{label:R,...c?{gitBranch:c}:{}}),y(t,b,I),w(null)}catch(b){A(b instanceof Error?b.message:String(b))}finally{k(!1)}}},V=t=>{r.getKbSessionStatus(t.id)==="authenticated"?p(t.id):(w(t.id),h(!1),A(null))};return e.jsxs("div",{className:"semiont-panel",children:[e.jsx("div",{className:"semiont-panel-header",children:e.jsxs("h2",{className:"semiont-panel-header__title",children:[e.jsx("span",{className:"semiont-panel-header__text",children:n("title")}),e.jsxs("span",{className:"semiont-panel-header__count",children:["(",a.length,")"]})]})}),e.jsxs("div",{className:"semiont-panel__content",children:[e.jsx("div",{className:"semiont-panel__list",children:a.map(t=>{const g=r.getKbSessionStatus(t.id),x=t.id===(s==null?void 0:s.id),b=C===t.id;return e.jsxs("div",{children:[e.jsxs("div",{className:`semiont-panel-item semiont-panel-item--clickable${x?" semiont-panel-item--selected":""}`,style:{display:"flex",flexDirection:"column",gap:"0.25rem",cursor:"pointer",padding:"0.5rem 0.75rem"},onClick:()=>V(t),children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"0.5rem"},children:[e.jsx(Ie,{status:g,t:n}),e.jsx("span",{className:"semiont-panel-text",style:{flex:1,fontWeight:500},children:t.label}),x&&e.jsx(je,{style:{width:"1rem",height:"1rem",color:"var(--semiont-color-primary-500)",flexShrink:0}}),g==="authenticated"&&e.jsx("button",{onClick:I=>{I.stopPropagation(),u(t.id)},title:n("signOut"),style:{background:"none",border:"none",cursor:"pointer",padding:"0.125rem",color:"var(--semiont-color-neutral-400)"},children:e.jsx(fe,{style:{width:"0.875rem",height:"0.875rem"}})}),e.jsx("button",{onClick:I=>{I.stopPropagation(),L(t.id)},title:n("remove"),style:{background:"none",border:"none",cursor:"pointer",padding:"0.125rem",color:"var(--semiont-color-neutral-400)"},children:e.jsx(pe,{style:{width:"0.875rem",height:"0.875rem"}})})]}),e.jsxs("span",{className:"semiont-panel-text-secondary",style:{fontSize:"0.7rem",paddingLeft:"1rem"},children:[t.endpoint.kind==="http"?`${t.endpoint.host}:${t.endpoint.port}`:`local:${t.endpoint.kbId}`,t.gitBranch?` · ${t.gitBranch}`:""]})]}),D===t.id&&e.jsxs("div",{style:{padding:"0.5rem 0.75rem",fontSize:"0.8rem",display:"flex",alignItems:"center",gap:"0.5rem",background:"var(--semiont-bg-secondary, #f9fafb)",borderBottom:"1px solid var(--semiont-color-neutral-200, #e5e7eb)"},children:[e.jsx("span",{style:{flex:1,color:"var(--semiont-color-neutral-500)"},children:n("removeConfirm",{label:t.label})}),e.jsx("button",{onClick:()=>{f(t.id),L(null)},className:"semiont-button",style:{fontSize:"0.75rem",padding:"0.2rem 0.5rem",color:"var(--semiont-color-error-500, #ef4444)"},children:n("remove")}),e.jsx("button",{onClick:()=>L(null),className:"semiont-button",style:{fontSize:"0.75rem",padding:"0.2rem 0.5rem"},children:n("cancel")})]}),b&&e.jsx(Ee,{t:n,kb:t,onSubmit:I=>Y(t.id,I),onCancel:()=>w(null),error:M,isSubmitting:l})]},t.id)})}),v&&e.jsx(Ae,{t:n,onSubmit:Q,onCancel:()=>h(!1),error:j,isSubmitting:E,autoFocus:a.length===0,pulsing:a.length===0})]}),!v&&e.jsx("div",{className:"semiont-panel-footer",children:e.jsxs("button",{onClick:G,className:"semiont-panel-item semiont-panel-item--clickable",style:{width:"100%",display:"flex",alignItems:"center",gap:"0.5rem",color:"var(--semiont-color-primary-600)"},children:[e.jsx(ye,{style:{width:"1rem",height:"1rem",flexShrink:0}}),e.jsx("span",{className:"semiont-panel-text",style:{color:"inherit"},children:n("addKnowledgeBase")})]})})]})}function De({activePanel:i,theme:n,showLineNumbers:r,children:a}){const{hoverDelayMs:s}=oe(),{t:p}=U(),d=T(O().activeSession$),m=!!T(d==null?void 0:d.user$),y=ue(),u=W(),v=he(),[h,j]=o.useTransition(),{width:S,setWidth:E,minWidth:N,maxWidth:C}=re(),w=o.useCallback(({locale:M})=>{v&&j(()=>{u.replace(v,{locale:M})})},[v,u,j]);return le({"settings:locale-changed":w}),!i||!a&&!ce.includes(i)?null:e.jsxs("div",{className:"semiont-toolbar-panels",style:{width:`${S}px`,position:"relative"},children:[e.jsx(de,{onResize:E,minWidth:N,maxWidth:C,position:"left",ariaLabel:"Resize right panel"}),e.jsxs("div",{className:"semiont-toolbar-panels__content",children:[a,i==="knowledge-base"&&e.jsx(ke,{}),i==="user"&&(m?e.jsx(Se,{}):e.jsxs("div",{className:"semiont-panel",children:[e.jsx("div",{className:"semiont-panel-header",children:e.jsx("h2",{className:"semiont-panel-header__title",children:e.jsx("span",{className:"semiont-panel-header__text",children:p("UserPanel.account")})})}),e.jsx("div",{className:"semiont-panel__content",style:{padding:"1rem",textAlign:"center"},children:e.jsx("p",{style:{color:"var(--semiont-color-neutral-400)",fontSize:"0.85rem",lineHeight:1.5},children:p("AccountPanel.notAuthenticated")})})]})),i==="settings"&&e.jsx(me,{showLineNumbers:r,theme:n,hoverDelayMs:s,locale:y,isPendingLocaleChange:h})]})]})}export{ye as F,De as T};
2
+ //# sourceMappingURL=ToolbarPanels-Cz2uv68j.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarPanels-D5L18Wxk.js","sources":["../../../../node_modules/@heroicons/react/24/outline/esm/ArrowRightStartOnRectangleIcon.js","../../../../node_modules/@heroicons/react/24/outline/esm/CheckIcon.js","../../../../node_modules/@heroicons/react/24/outline/esm/PlusIcon.js","../../src/components/UserPanel.tsx","../../src/components/KnowledgeBasePanel.tsx","../../src/components/toolbar/ToolbarPanels.tsx"],"sourcesContent":["import * as React from \"react\";\nfunction ArrowRightStartOnRectangleIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15.75 9V5.25A2.25 2.25 0 0 0 13.5 3h-6a2.25 2.25 0 0 0-2.25 2.25v13.5A2.25 2.25 0 0 0 7.5 21h6a2.25 2.25 0 0 0 2.25-2.25V15m3 0 3-3m0 0-3-3m3 3H9\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(ArrowRightStartOnRectangleIcon);\nexport default ForwardRef;","import * as React from \"react\";\nfunction CheckIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"m4.5 12.75 6 6 9-13.5\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(CheckIcon);\nexport default ForwardRef;","import * as React from \"react\";\nfunction PlusIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 4.5v15m7.5-7.5h-15\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(PlusIcon);\nexport default ForwardRef;","import React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n sanitizeImageURL,\n useSessionExpiry,\n formatTime,\n useSemiont,\n useObservable,\n createSessionStateUnit,\n useStateUnit,\n} from '@semiont/react-ui';\nimport { useRouter } from '@/i18n/routing';\n\n// Fallback avatar when image fails to load or is invalid\nconst FALLBACK_AVATAR = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGNpcmNsZSBjeD0iMTYiIGN5PSIxNiIgcj0iMTYiIGZpbGw9IiM2QjcyODAiLz4KPHBhdGggZD0iTTE2IDE2QzE4LjIwOTEgMTYgMjAgMTQuMjA5MSAyMCAxMkMyMCA5Ljc5MDg2IDE4LjIwOTEgOCAxNiA4QzEzLjc5MDkgOCAxMiA5Ljc5MDg2IDEyIDEyQzEyIDE0LjIwOTEgMTMuNzkwOSAxNiAxNiAxNloiIGZpbGw9IiNFNUU3RUIiLz4KPHBhdGggZD0iTTI0IDI1QzI0IDIxLjY4NjMgMjAuNDE4MyAxOSAxNiAxOUMxMS41ODE3IDE5IDggMjEuNjg2MyA4IDI1IiBzdHJva2U9IiNFNUU3RUIiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+Cjwvc3ZnPg==';\n\nexport function UserPanel() {\n const { t: _t } = useTranslation();\n const t = (k: string, p?: Record<string, unknown>) => _t(`UserPanel.${k}`, p as any) as string;\n const semiont = useSemiont();\n const session = useObservable(semiont.activeSession$);\n const user = useObservable(session?.user$) ?? null;\n const activeKnowledgeBase = session?.kb ?? null;\n const displayName = user?.name ?? user?.email?.split('@')[0] ?? 'User';\n const avatarUrl = user?.image ?? null;\n const userDomain = user?.domain || user?.email?.split('@')[1];\n const isAdmin = user?.isAdmin ?? false;\n const isModerator = user?.isModerator ?? false;\n const apiClient = session?.client;\n const sessionStateUnit = useStateUnit(() => createSessionStateUnit(apiClient!));\n const router = useRouter();\n const [imageError, setImageError] = useState(false);\n const { timeRemaining } = useSessionExpiry();\n const sessionTimeFormatted = formatTime(timeRemaining) ?? 'Unknown';\n\n // Sanitize and validate the profile image URL\n const profileImageUrl = (() => {\n if (!avatarUrl || imageError) {\n return FALLBACK_AVATAR;\n }\n\n const sanitized = sanitizeImageURL(avatarUrl);\n if (!sanitized) {\n console.warn('Invalid profile image URL detected, using fallback');\n return FALLBACK_AVATAR;\n }\n\n return sanitized;\n })();\n\n const handleSignOut = async () => {\n await sessionStateUnit.logout();\n if (activeKnowledgeBase) {\n await semiont.signOut(activeKnowledgeBase.id);\n }\n router.push('/');\n };\n\n return (\n <div className=\"semiont-user-panel\">\n <h3 className=\"semiont-user-panel__title\">\n {t('account')}\n </h3>\n\n {activeKnowledgeBase && (\n <div style={{ padding: '0 0.75rem 0.5rem', fontSize: '0.8rem', color: 'var(--semiont-color-neutral-400)' }}>\n {activeKnowledgeBase.label}\n </div>\n )}\n\n <div className=\"space-y-4\">\n {/* User Profile */}\n <div className=\"flex items-center gap-3\">\n <img\n src={profileImageUrl}\n alt={t('profileAlt', { name: displayName || t('user') })}\n width={48}\n height={48}\n className=\"w-12 h-12 rounded-full object-cover\"\n onError={() => setImageError(true)}\n />\n <div className=\"flex-1 min-w-0\">\n <div className=\"semiont-panel-text\">\n {displayName || t('user')}\n </div>\n {userDomain && (\n <div className=\"semiont-panel-text-secondary\">\n @{userDomain}\n </div>\n )}\n </div>\n </div>\n\n {/* Session Info */}\n <div>\n <label className=\"semiont-panel-label\">\n {t('session')}\n </label>\n <div className=\"semiont-session-box\">\n <div className=\"semiont-panel-hint\">\n {t('expiresIn', { time: sessionTimeFormatted })}\n </div>\n </div>\n </div>\n\n {/* Privileges */}\n {(isAdmin || isModerator) && (\n <div>\n <label className=\"semiont-panel-label\">\n {t('privileges')}\n </label>\n <div className=\"space-y-1\">\n {isAdmin && (\n <div className=\"semiont-privilege-badge semiont-privilege-badge--admin\">\n <span className=\"semiont-privilege-text\">\n {t('administrator')}\n </span>\n </div>\n )}\n {isModerator && (\n <div className=\"semiont-privilege-badge semiont-privilege-badge--moderator\">\n <span className=\"semiont-privilege-text\">\n {t('moderator')}\n </span>\n </div>\n )}\n </div>\n </div>\n )}\n\n {/* Sign Out Button */}\n <div className=\"semiont-panel-divider\">\n <button\n onClick={handleSignOut}\n className=\"semiont-signout-button\"\n >\n {t('signOut')}\n </button>\n </div>\n </div>\n </div>\n );\n}\n","import React, { useState, useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { CheckIcon, PlusIcon, ArrowRightStartOnRectangleIcon, XMarkIcon, TrashIcon } from '@heroicons/react/24/outline';\nimport { SemiontClient, defaultProtocol, isValidHostname, type KnowledgeBase, type KbSessionStatus } from '@semiont/sdk';\nimport { HttpContentTransport, HttpTransport } from '@semiont/api-client';\nimport { baseUrl } from '@semiont/core';\nimport {\n useSemiont,\n useObservable,\n} from '@semiont/react-ui';\n\ntype T = (key: string, params?: Record<string, unknown>) => string;\n\nconst STATUS_COLORS: Record<KbSessionStatus, string> = {\n authenticated: 'var(--semiont-color-success-500, #22c55e)',\n expired: 'var(--semiont-color-warning-500, #eab308)',\n 'signed-out': 'var(--semiont-color-neutral-400, #9ca3af)',\n unreachable: 'var(--semiont-color-error-500, #ef4444)',\n};\n\nconst STATUS_KEYS: Record<KbSessionStatus, string> = {\n authenticated: 'statusConnected',\n expired: 'statusExpired',\n 'signed-out': 'statusSignedOut',\n unreachable: 'statusUnreachable',\n};\n\nfunction StatusDot({ status, t }: { status: KbSessionStatus; t: T }) {\n return (\n <span\n title={t(STATUS_KEYS[status])}\n style={{\n width: '0.5rem',\n height: '0.5rem',\n borderRadius: '50%',\n backgroundColor: STATUS_COLORS[status],\n flexShrink: 0,\n }}\n />\n );\n}\n\nfunction LoginForm({ t, onSubmit, onCancel, error, isSubmitting, autoFocus, pulsing, initialHost = 'localhost', initialPort = 4000, initialEmail = 'admin@example.com' }: {\n t: T;\n onSubmit: (host: string, port: number, protocol: 'http' | 'https', email: string, password: string) => Promise<void>;\n onCancel: () => void;\n error: string | null;\n isSubmitting: boolean;\n autoFocus?: boolean;\n pulsing?: boolean;\n initialHost?: string;\n initialPort?: number;\n initialEmail?: string;\n}) {\n const [host, setHost] = useState(initialHost);\n const [port, setPort] = useState(String(initialPort));\n const [protocol, setProtocol] = useState<'http' | 'https'>(defaultProtocol(initialHost));\n const [email, setEmail] = useState(initialEmail);\n const [password, setPassword] = useState('');\n\n const handleHostChange = (newHost: string) => {\n setHost(newHost);\n setProtocol(defaultProtocol(newHost));\n };\n\n return (\n <div\n className={pulsing ? 'semiont-panel__login-form--pulsing' : ''}\n style={{\n margin: '0.5rem',\n padding: '0.75rem',\n border: '1px solid var(--semiont-color-neutral-200, #e5e7eb)',\n borderRadius: 'var(--semiont-panel-border-radius, 0.5rem)',\n background: 'var(--semiont-bg-secondary, transparent)',\n }}\n >\n <h3 style={{ fontSize: '0.8rem', fontWeight: 600, marginBottom: '0.5rem' }}>{t('connectTitle')}</h3>\n <form onSubmit={(e) => { e.preventDefault(); if (isValidHostname(host)) onSubmit(host, parseInt(port, 10) || 4000, protocol, email, password); }} style={{ display: 'flex', flexDirection: 'column', gap: '0.5rem' }}>\n <select value={protocol} onChange={e => setProtocol(e.target.value as 'http' | 'https')} className=\"semiont-input\">\n <option value=\"http\">HTTP</option>\n <option value=\"https\">HTTPS</option>\n </select>\n <input type=\"text\" value={host} onChange={e => handleHostChange(e.target.value)} placeholder=\"Host\" className=\"semiont-input\" autoFocus={autoFocus} />\n <input type=\"number\" value={port} onChange={e => setPort(e.target.value)} placeholder=\"Port\" className=\"semiont-input\" />\n {host && !isValidHostname(host) && (\n <div style={{ color: 'var(--semiont-color-error-500, #ef4444)', fontSize: '0.75rem' }}>{t('invalidHost')}</div>\n )}\n <input type=\"email\" value={email} onChange={e => setEmail(e.target.value)} placeholder=\"Email\" className=\"semiont-input\" />\n <input type=\"password\" value={password} onChange={e => setPassword(e.target.value)} placeholder=\"Password\" className=\"semiont-input\" />\n {error && <div style={{ color: 'var(--semiont-color-error-500, #ef4444)', fontSize: '0.75rem' }}>{error}</div>}\n <div style={{ display: 'flex', gap: '0.5rem' }}>\n <button type=\"submit\" className=\"semiont-button semiont-button--primary\" style={{ flex: 1 }} disabled={isSubmitting || !isValidHostname(host)}>\n {isSubmitting ? t('connecting') : t('connect')}\n </button>\n <button type=\"button\" className=\"semiont-button\" onClick={onCancel}>\n <XMarkIcon style={{ width: '1rem', height: '1rem' }} />\n </button>\n </div>\n </form>\n </div>\n );\n}\n\nfunction ReauthForm({ t, kb, onSubmit, onCancel, error, isSubmitting }: {\n t: T;\n kb: KnowledgeBase;\n onSubmit: (password: string) => Promise<void>;\n onCancel: () => void;\n error: string | null;\n isSubmitting: boolean;\n}) {\n const [password, setPassword] = useState('');\n\n return (\n <form onSubmit={(e) => { e.preventDefault(); onSubmit(password); }} style={{ padding: '0.5rem 0.75rem', display: 'flex', flexDirection: 'column', gap: '0.375rem' }}>\n <div style={{ fontSize: '0.75rem', color: 'var(--semiont-color-neutral-400)' }}>{kb.email}</div>\n <input type=\"password\" value={password} onChange={e => setPassword(e.target.value)} placeholder=\"Password\" className=\"semiont-input\" style={{ fontSize: '0.8rem' }} autoFocus />\n {error && <div style={{ color: 'var(--semiont-color-error-500, #ef4444)', fontSize: '0.75rem' }}>{error}</div>}\n <div style={{ display: 'flex', gap: '0.375rem' }}>\n <button type=\"submit\" className=\"semiont-button semiont-button--primary\" style={{ flex: 1, fontSize: '0.8rem' }} disabled={isSubmitting}>\n {isSubmitting ? t('signingIn') : t('signIn')}\n </button>\n <button type=\"button\" className=\"semiont-button\" onClick={onCancel} style={{ fontSize: '0.8rem' }}>\n {t('cancel')}\n </button>\n </div>\n </form>\n );\n}\n\nasync function authenticateWithBackend(host: string, port: number, protocol: 'http' | 'https', emailStr: string, password: string): Promise<{ token: string; refreshToken: string; label: string; gitBranch?: string }> {\n const origin = `${protocol}://${host}:${port}`;\n const transport = new HttpTransport({ baseUrl: baseUrl(origin) });\n const client = new SemiontClient(transport, new HttpContentTransport(transport), transport);\n\n const authResult = await client.auth!.password(emailStr, password);\n const token = (authResult as any).token ?? (authResult as any).accessToken;\n const refreshToken = (authResult as any).refreshToken;\n if (!token) throw new Error('No access token received');\n if (!refreshToken) throw new Error('No refresh token received');\n\n let label = `${host}:${port}`;\n let gitBranch: string | undefined;\n try {\n const status = await client.admin!.status();\n if ((status as any).projectName) label = (status as any).projectName;\n if ((status as any).gitBranch) gitBranch = (status as any).gitBranch;\n } catch { /* use default label */ }\n\n return { token, refreshToken, label, ...(gitBranch ? { gitBranch } : {}) };\n}\n\nexport function KnowledgeBasePanel() {\n const { t: _t } = useTranslation();\n const t = (k: string, p?: Record<string, unknown>) => _t(`KnowledgeBasePanel.${k}`, p as any) as string;\n const semiont = useSemiont();\n const knowledgeBases = useObservable(semiont.kbs$) ?? [];\n const activeKnowledgeBase = useObservable(semiont.activeSession$)?.kb ?? null;\n const setActiveKnowledgeBase = (id: string) => { void semiont.setActiveKb(id); };\n const addKnowledgeBase = semiont.addKb.bind(semiont);\n const removeKnowledgeBase = semiont.removeKb.bind(semiont);\n const updateKnowledgeBase = semiont.updateKb.bind(semiont);\n const signIn = (id: string, access: string, refresh: string) => { void semiont.signIn(id, access, refresh); };\n const signOut = (id: string) => { void semiont.signOut(id); };\n const [showAddForm, setShowAddForm] = useState(false);\n const [addError, setAddError] = useState<string | null>(null);\n const [addSubmitting, setAddSubmitting] = useState(false);\n const [reauthKbId, setReauthKbId] = useState<string | null>(null);\n const [reauthError, setReauthError] = useState<string | null>(null);\n const [reauthSubmitting, setReauthSubmitting] = useState(false);\n const [confirmRemoveKbId, setConfirmRemoveKbId] = useState<string | null>(null);\n const [, setTick] = useState(0);\n\n useEffect(() => {\n if (knowledgeBases.length === 0) setShowAddForm(true);\n }, [knowledgeBases.length]);\n\n useEffect(() => {\n const interval = setInterval(() => setTick(t => t + 1), 30_000);\n return () => clearInterval(interval);\n }, []);\n\n const openAddForm = () => {\n setShowAddForm(true);\n setReauthKbId(null);\n setAddError(null);\n };\n\n const handleAdd = async (host: string, port: number, protocol: 'http' | 'https', email: string, password: string) => {\n setAddError(null);\n setAddSubmitting(true);\n const existing = knowledgeBases.find(\n kb => kb.endpoint.kind === 'http' && kb.endpoint.host === host && kb.endpoint.port === port,\n );\n if (existing) {\n try {\n const { token, refreshToken, gitBranch } = await authenticateWithBackend(host, port, protocol, email, password);\n updateKnowledgeBase(existing.id, { ...(gitBranch ? { gitBranch } : {}) });\n signIn(existing.id, token, refreshToken);\n setShowAddForm(false);\n } catch (err) {\n setAddError(err instanceof Error ? err.message : String(err));\n } finally {\n setAddSubmitting(false);\n }\n return;\n }\n try {\n const { token, refreshToken, label, gitBranch } = await authenticateWithBackend(host, port, protocol, email, password);\n addKnowledgeBase(\n {\n label,\n email,\n endpoint: { kind: 'http', host, port, protocol },\n ...(gitBranch ? { gitBranch } : {}),\n },\n token,\n refreshToken,\n );\n setShowAddForm(false);\n } catch (err) {\n setAddError(err instanceof Error ? err.message : String(err));\n } finally {\n setAddSubmitting(false);\n }\n };\n\n const handleReauth = async (kbId: string, password: string) => {\n const kb = knowledgeBases.find(k => k.id === kbId);\n if (!kb) return;\n setReauthError(null);\n setReauthSubmitting(true);\n if (kb.endpoint.kind !== 'http') {\n setReauthError(`Re-auth is HTTP-only; KB endpoint kind \"${kb.endpoint.kind}\" is not supported here.`);\n setReauthSubmitting(false);\n return;\n }\n try {\n const { token, refreshToken, label, gitBranch } = await authenticateWithBackend(\n kb.endpoint.host, kb.endpoint.port, kb.endpoint.protocol, kb.email, password,\n );\n updateKnowledgeBase(kbId, { label, ...(gitBranch ? { gitBranch } : {}) });\n signIn(kbId, token, refreshToken);\n setReauthKbId(null);\n } catch (err) {\n setReauthError(err instanceof Error ? err.message : String(err));\n } finally {\n setReauthSubmitting(false);\n }\n };\n\n const handleKbClick = (kb: KnowledgeBase) => {\n const status = semiont.getKbSessionStatus(kb.id);\n if (status === 'authenticated') {\n setActiveKnowledgeBase(kb.id);\n } else {\n setReauthKbId(kb.id);\n setShowAddForm(false);\n setReauthError(null);\n }\n };\n\n return (\n <div className=\"semiont-panel\">\n <div className=\"semiont-panel-header\">\n <h2 className=\"semiont-panel-header__title\">\n <span className=\"semiont-panel-header__text\">{t('title')}</span>\n <span className=\"semiont-panel-header__count\">({knowledgeBases.length})</span>\n </h2>\n </div>\n <div className=\"semiont-panel__content\">\n <div className=\"semiont-panel__list\">\n {knowledgeBases.map((kb: KnowledgeBase) => {\n const status = semiont.getKbSessionStatus(kb.id);\n const isActive = kb.id === activeKnowledgeBase?.id;\n const isReauthing = reauthKbId === kb.id;\n\n return (\n <div key={kb.id}>\n <div\n className={`semiont-panel-item semiont-panel-item--clickable${isActive ? ' semiont-panel-item--selected' : ''}`}\n style={{ display: 'flex', flexDirection: 'column', gap: '0.25rem', cursor: 'pointer', padding: '0.5rem 0.75rem' }}\n onClick={() => handleKbClick(kb)}\n >\n <div style={{ display: 'flex', alignItems: 'center', gap: '0.5rem' }}>\n <StatusDot status={status} t={t} />\n <span className=\"semiont-panel-text\" style={{ flex: 1, fontWeight: 500 }}>{kb.label}</span>\n {isActive && (\n <CheckIcon style={{ width: '1rem', height: '1rem', color: 'var(--semiont-color-primary-500)', flexShrink: 0 }} />\n )}\n {status === 'authenticated' && (\n <button\n onClick={(e) => { e.stopPropagation(); signOut(kb.id); }}\n title={t('signOut')}\n style={{ background: 'none', border: 'none', cursor: 'pointer', padding: '0.125rem', color: 'var(--semiont-color-neutral-400)' }}\n >\n <ArrowRightStartOnRectangleIcon style={{ width: '0.875rem', height: '0.875rem' }} />\n </button>\n )}\n <button\n onClick={(e) => { e.stopPropagation(); setConfirmRemoveKbId(kb.id); }}\n title={t('remove')}\n style={{ background: 'none', border: 'none', cursor: 'pointer', padding: '0.125rem', color: 'var(--semiont-color-neutral-400)' }}\n >\n <TrashIcon style={{ width: '0.875rem', height: '0.875rem' }} />\n </button>\n </div>\n <span className=\"semiont-panel-text-secondary\" style={{ fontSize: '0.7rem', paddingLeft: '1rem' }}>\n {kb.endpoint.kind === 'http'\n ? `${kb.endpoint.host}:${kb.endpoint.port}`\n : `local:${kb.endpoint.kbId}`}\n {kb.gitBranch ? ` · ${kb.gitBranch}` : ''}\n </span>\n </div>\n {confirmRemoveKbId === kb.id && (\n <div style={{\n padding: '0.5rem 0.75rem',\n fontSize: '0.8rem',\n display: 'flex',\n alignItems: 'center',\n gap: '0.5rem',\n background: 'var(--semiont-bg-secondary, #f9fafb)',\n borderBottom: '1px solid var(--semiont-color-neutral-200, #e5e7eb)',\n }}>\n <span style={{ flex: 1, color: 'var(--semiont-color-neutral-500)' }}>{t('removeConfirm', { label: kb.label })}</span>\n <button\n onClick={() => { removeKnowledgeBase(kb.id); setConfirmRemoveKbId(null); }}\n className=\"semiont-button\"\n style={{ fontSize: '0.75rem', padding: '0.2rem 0.5rem', color: 'var(--semiont-color-error-500, #ef4444)' }}\n >\n {t('remove')}\n </button>\n <button\n onClick={() => setConfirmRemoveKbId(null)}\n className=\"semiont-button\"\n style={{ fontSize: '0.75rem', padding: '0.2rem 0.5rem' }}\n >\n {t('cancel')}\n </button>\n </div>\n )}\n {isReauthing && (\n <ReauthForm\n t={t}\n kb={kb}\n onSubmit={(password) => handleReauth(kb.id, password)}\n onCancel={() => setReauthKbId(null)}\n error={reauthError}\n isSubmitting={reauthSubmitting}\n />\n )}\n </div>\n );\n })}\n </div>\n\n {showAddForm && (\n <LoginForm\n t={t}\n onSubmit={handleAdd}\n onCancel={() => setShowAddForm(false)}\n error={addError}\n isSubmitting={addSubmitting}\n autoFocus={knowledgeBases.length === 0}\n pulsing={knowledgeBases.length === 0}\n />\n )}\n </div>\n\n {!showAddForm && (\n <div className=\"semiont-panel-footer\">\n <button\n onClick={openAddForm}\n className=\"semiont-panel-item semiont-panel-item--clickable\"\n style={{ width: '100%', display: 'flex', alignItems: 'center', gap: '0.5rem', color: 'var(--semiont-color-primary-600)' }}\n >\n <PlusIcon style={{ width: '1rem', height: '1rem', flexShrink: 0 }} />\n <span className=\"semiont-panel-text\" style={{ color: 'inherit' }}>{t('addKnowledgeBase')}</span>\n </button>\n </div>\n )}\n </div>\n );\n}\n","import React, { useTransition, useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n SettingsPanel,\n ResizeHandle,\n usePanelWidth,\n useEventSubscriptions,\n useSemiont,\n useObservable,\n useHoverDelay,\n} from '@semiont/react-ui';\nimport { UserPanel } from '../UserPanel';\nimport { KnowledgeBasePanel } from '../KnowledgeBasePanel';\nimport { useLocale } from '@/i18n/routing';\nimport { usePathname, useRouter } from '@/i18n/routing';\nimport { COMMON_PANELS } from '@semiont/react-ui';\nimport type { ToolbarPanelType } from '@semiont/react-ui';\n\ninterface ToolbarPanelsProps {\n activePanel: ToolbarPanelType | null;\n /** Theme setting */\n theme: 'light' | 'dark' | 'system';\n /** Line numbers setting */\n showLineNumbers: boolean;\n /** Custom panel content for context-specific panels */\n children?: React.ReactNode;\n}\n\n/**\n * Renders the toolbar panel container with common panels (user, settings)\n * and any context-specific panels passed as children.\n *\n * Settings changes are handled via GlobalSettingsEventBus - no callbacks needed.\n *\n * @example\n * // Simple context (compose, discover, moderate, admin pages)\n * <ToolbarPanels\n * activePanel={activePanel}\n * theme={theme}\n * showLineNumbers={showLineNumbers}\n * />\n *\n * @example\n * // Document context with custom panels\n * <ToolbarPanels\n * activePanel={activePanel}\n * theme={theme}\n * showLineNumbers={showLineNumbers}\n * >\n * {activePanel === 'annotations' && <UnifiedAnnotationsPanel ... />}\n * {activePanel === 'history' && <AnnotationHistory ... />}\n * {activePanel === 'info' && <ResourceInfoPanel ... />}\n * {activePanel === 'collaboration' && <CollaborationPanel ... />}\n * {activePanel === 'jsonld' && <JsonLdPanel ... />}\n * </ToolbarPanels>\n */\nexport function ToolbarPanels({\n activePanel,\n theme,\n showLineNumbers,\n children\n}: ToolbarPanelsProps) {\n // Source hover-delay from the shared hook so every page that mounts\n // ToolbarPanels gets the live value without prop-drilling. Previously\n // each page passed `hoverDelayMs` through as a prop; pages that forgot\n // (Discover, Admin, Moderation) rendered the Settings panel with\n // `undefined`, which surfaced as `{undefined}ms delay` after the\n // translation interpolation ran.\n const { hoverDelayMs } = useHoverDelay();\n const { t: _t } = useTranslation();\n const session = useObservable(useSemiont().activeSession$);\n const user = useObservable(session?.user$);\n const isAuthenticated = !!user;\n const locale = useLocale();\n const router = useRouter();\n const pathname = usePathname();\n const [isPending, startTransition] = useTransition();\n\n // Panel width management with localStorage persistence\n const { width, setWidth, minWidth, maxWidth } = usePanelWidth();\n\n // Handle locale change events\n const handleLocaleChanged = useCallback(({ locale: newLocale }: { locale: string }) => {\n if (!pathname) return;\n\n startTransition(() => {\n // The router from @/i18n/routing is locale-aware and will handle the locale prefix\n router.replace(pathname, { locale: newLocale });\n });\n }, [pathname, router, startTransition]);\n\n // Subscribe to locale change events\n useEventSubscriptions({\n 'settings:locale-changed': handleLocaleChanged,\n });\n\n // Don't render container if no panel is active\n if (!activePanel) {\n return null;\n }\n\n // In simple context (no children), only user and settings panels are valid.\n // If a resource-specific panel is still active from a previous route, hide the container.\n if (!children && !COMMON_PANELS.includes(activePanel)) {\n return null;\n }\n\n return (\n <div className=\"semiont-toolbar-panels\" style={{ width: `${width}px`, position: 'relative' }}>\n {/* Resize handle on left edge */}\n <ResizeHandle\n onResize={setWidth}\n minWidth={minWidth}\n maxWidth={maxWidth}\n position=\"left\"\n ariaLabel=\"Resize right panel\"\n />\n\n {/* Custom context-specific panels */}\n <div className=\"semiont-toolbar-panels__content\">\n {children}\n\n {/* Knowledge Base Panel - common to all contexts */}\n {activePanel === 'knowledge-base' && (\n <KnowledgeBasePanel />\n )}\n\n {/* User Panel - requires authentication */}\n {activePanel === 'user' && (\n isAuthenticated ? (\n <UserPanel />\n ) : (\n <div className=\"semiont-panel\">\n <div className=\"semiont-panel-header\">\n <h2 className=\"semiont-panel-header__title\">\n <span className=\"semiont-panel-header__text\">{_t('UserPanel.account')}</span>\n </h2>\n </div>\n <div className=\"semiont-panel__content\" style={{ padding: '1rem', textAlign: 'center' }}>\n <p style={{ color: 'var(--semiont-color-neutral-400)', fontSize: '0.85rem', lineHeight: 1.5 }}>\n {_t('AccountPanel.notAuthenticated')}\n </p>\n </div>\n </div>\n )\n )}\n\n {/* Settings Panel - common to all contexts */}\n {activePanel === 'settings' && (\n <SettingsPanel\n showLineNumbers={showLineNumbers}\n theme={theme}\n hoverDelayMs={hoverDelayMs}\n locale={locale}\n isPendingLocaleChange={isPending}\n />\n )}\n </div>\n </div>\n );\n}\n"],"names":["ArrowRightStartOnRectangleIcon","title","titleId","props","svgRef","React.createElement","ForwardRef","React.forwardRef","CheckIcon","PlusIcon","FALLBACK_AVATAR","UserPanel","_t","useTranslation","t","p","semiont","useSemiont","session","useObservable","user","activeKnowledgeBase","displayName","_a","avatarUrl","userDomain","_b","isAdmin","isModerator","apiClient","sessionStateUnit","useStateUnit","createSessionStateUnit","router","useRouter","imageError","setImageError","useState","timeRemaining","useSessionExpiry","sessionTimeFormatted","formatTime","profileImageUrl","sanitized","sanitizeImageURL","handleSignOut","jsxs","jsx","STATUS_COLORS","STATUS_KEYS","StatusDot","status","LoginForm","onSubmit","onCancel","error","isSubmitting","autoFocus","pulsing","initialHost","initialPort","initialEmail","host","setHost","port","setPort","protocol","setProtocol","defaultProtocol","email","setEmail","password","setPassword","handleHostChange","newHost","e","isValidHostname","XMarkIcon","ReauthForm","kb","authenticateWithBackend","emailStr","origin","transport","HttpTransport","baseUrl","client","SemiontClient","HttpContentTransport","authResult","token","refreshToken","label","gitBranch","KnowledgeBasePanel","k","knowledgeBases","setActiveKnowledgeBase","id","addKnowledgeBase","removeKnowledgeBase","updateKnowledgeBase","signIn","access","refresh","signOut","showAddForm","setShowAddForm","addError","setAddError","addSubmitting","setAddSubmitting","reauthKbId","setReauthKbId","reauthError","setReauthError","reauthSubmitting","setReauthSubmitting","confirmRemoveKbId","setConfirmRemoveKbId","setTick","useEffect","interval","openAddForm","handleAdd","existing","err","handleReauth","kbId","handleKbClick","isActive","isReauthing","TrashIcon","ToolbarPanels","activePanel","theme","showLineNumbers","children","hoverDelayMs","useHoverDelay","isAuthenticated","locale","useLocale","pathname","usePathname","isPending","startTransition","useTransition","width","setWidth","minWidth","maxWidth","usePanelWidth","handleLocaleChanged","useCallback","newLocale","useEventSubscriptions","COMMON_PANELS","ResizeHandle","SettingsPanel"],"mappings":"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","x_google_ignoreList":[0,1,2]}
1
+ {"version":3,"file":"ToolbarPanels-Cz2uv68j.js","sources":["../../../../node_modules/@heroicons/react/24/outline/esm/ArrowRightStartOnRectangleIcon.js","../../../../node_modules/@heroicons/react/24/outline/esm/CheckIcon.js","../../../../node_modules/@heroicons/react/24/outline/esm/PlusIcon.js","../../src/components/UserPanel.tsx","../../src/components/KnowledgeBasePanel.tsx","../../src/components/toolbar/ToolbarPanels.tsx"],"sourcesContent":["import * as React from \"react\";\nfunction ArrowRightStartOnRectangleIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15.75 9V5.25A2.25 2.25 0 0 0 13.5 3h-6a2.25 2.25 0 0 0-2.25 2.25v13.5A2.25 2.25 0 0 0 7.5 21h6a2.25 2.25 0 0 0 2.25-2.25V15m3 0 3-3m0 0-3-3m3 3H9\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(ArrowRightStartOnRectangleIcon);\nexport default ForwardRef;","import * as React from \"react\";\nfunction CheckIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"m4.5 12.75 6 6 9-13.5\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(CheckIcon);\nexport default ForwardRef;","import * as React from \"react\";\nfunction PlusIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 4.5v15m7.5-7.5h-15\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(PlusIcon);\nexport default ForwardRef;","import React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n sanitizeImageURL,\n useSessionExpiry,\n formatTime,\n useSemiont,\n useObservable,\n createSessionStateUnit,\n useStateUnit,\n} from '@semiont/react-ui';\nimport { useRouter } from '@/i18n/routing';\n\n// Fallback avatar when image fails to load or is invalid\nconst FALLBACK_AVATAR = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGNpcmNsZSBjeD0iMTYiIGN5PSIxNiIgcj0iMTYiIGZpbGw9IiM2QjcyODAiLz4KPHBhdGggZD0iTTE2IDE2QzE4LjIwOTEgMTYgMjAgMTQuMjA5MSAyMCAxMkMyMCA5Ljc5MDg2IDE4LjIwOTEgOCAxNiA4QzEzLjc5MDkgOCAxMiA5Ljc5MDg2IDEyIDEyQzEyIDE0LjIwOTEgMTMuNzkwOSAxNiAxNiAxNloiIGZpbGw9IiNFNUU3RUIiLz4KPHBhdGggZD0iTTI0IDI1QzI0IDIxLjY4NjMgMjAuNDE4MyAxOSAxNiAxOUMxMS41ODE3IDE5IDggMjEuNjg2MyA4IDI1IiBzdHJva2U9IiNFNUU3RUIiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+Cjwvc3ZnPg==';\n\nexport function UserPanel() {\n const { t: _t } = useTranslation();\n const t = (k: string, p?: Record<string, unknown>) => _t(`UserPanel.${k}`, p as any) as string;\n const semiont = useSemiont();\n const session = useObservable(semiont.activeSession$);\n const user = useObservable(session?.user$) ?? null;\n const activeKnowledgeBase = session?.kb ?? null;\n const displayName = user?.name ?? user?.email?.split('@')[0] ?? 'User';\n const avatarUrl = user?.image ?? null;\n const userDomain = user?.domain || user?.email?.split('@')[1];\n const isAdmin = user?.isAdmin ?? false;\n const isModerator = user?.isModerator ?? false;\n const apiClient = session?.client;\n const sessionStateUnit = useStateUnit(() => createSessionStateUnit(apiClient!));\n const router = useRouter();\n const [imageError, setImageError] = useState(false);\n const { timeRemaining } = useSessionExpiry();\n const sessionTimeFormatted = formatTime(timeRemaining) ?? 'Unknown';\n\n // Sanitize and validate the profile image URL\n const profileImageUrl = (() => {\n if (!avatarUrl || imageError) {\n return FALLBACK_AVATAR;\n }\n\n const sanitized = sanitizeImageURL(avatarUrl);\n if (!sanitized) {\n console.warn('Invalid profile image URL detected, using fallback');\n return FALLBACK_AVATAR;\n }\n\n return sanitized;\n })();\n\n const handleSignOut = async () => {\n await sessionStateUnit.logout();\n if (activeKnowledgeBase) {\n await semiont.signOut(activeKnowledgeBase.id);\n }\n router.push('/');\n };\n\n return (\n <div className=\"semiont-user-panel\">\n <h3 className=\"semiont-user-panel__title\">\n {t('account')}\n </h3>\n\n {activeKnowledgeBase && (\n <div style={{ padding: '0 0.75rem 0.5rem', fontSize: '0.8rem', color: 'var(--semiont-color-neutral-400)' }}>\n {activeKnowledgeBase.label}\n </div>\n )}\n\n <div className=\"space-y-4\">\n {/* User Profile */}\n <div className=\"flex items-center gap-3\">\n <img\n src={profileImageUrl}\n alt={t('profileAlt', { name: displayName || t('user') })}\n width={48}\n height={48}\n className=\"w-12 h-12 rounded-full object-cover\"\n onError={() => setImageError(true)}\n />\n <div className=\"flex-1 min-w-0\">\n <div className=\"semiont-panel-text\">\n {displayName || t('user')}\n </div>\n {userDomain && (\n <div className=\"semiont-panel-text-secondary\">\n @{userDomain}\n </div>\n )}\n </div>\n </div>\n\n {/* Session Info */}\n <div>\n <label className=\"semiont-panel-label\">\n {t('session')}\n </label>\n <div className=\"semiont-session-box\">\n <div className=\"semiont-panel-hint\">\n {t('expiresIn', { time: sessionTimeFormatted })}\n </div>\n </div>\n </div>\n\n {/* Privileges */}\n {(isAdmin || isModerator) && (\n <div>\n <label className=\"semiont-panel-label\">\n {t('privileges')}\n </label>\n <div className=\"space-y-1\">\n {isAdmin && (\n <div className=\"semiont-privilege-badge semiont-privilege-badge--admin\">\n <span className=\"semiont-privilege-text\">\n {t('administrator')}\n </span>\n </div>\n )}\n {isModerator && (\n <div className=\"semiont-privilege-badge semiont-privilege-badge--moderator\">\n <span className=\"semiont-privilege-text\">\n {t('moderator')}\n </span>\n </div>\n )}\n </div>\n </div>\n )}\n\n {/* Sign Out Button */}\n <div className=\"semiont-panel-divider\">\n <button\n onClick={handleSignOut}\n className=\"semiont-signout-button\"\n >\n {t('signOut')}\n </button>\n </div>\n </div>\n </div>\n );\n}\n","import React, { useState, useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { CheckIcon, PlusIcon, ArrowRightStartOnRectangleIcon, XMarkIcon, TrashIcon } from '@heroicons/react/24/outline';\nimport { SemiontClient, defaultProtocol, isValidHostname, type KnowledgeBase, type KbSessionStatus } from '@semiont/sdk';\nimport { HttpContentTransport, HttpTransport } from '@semiont/api-client';\nimport { baseUrl } from '@semiont/core';\nimport {\n useSemiont,\n useObservable,\n} from '@semiont/react-ui';\n\ntype T = (key: string, params?: Record<string, unknown>) => string;\n\nconst STATUS_COLORS: Record<KbSessionStatus, string> = {\n authenticated: 'var(--semiont-color-success-500, #22c55e)',\n expired: 'var(--semiont-color-warning-500, #eab308)',\n 'signed-out': 'var(--semiont-color-neutral-400, #9ca3af)',\n unreachable: 'var(--semiont-color-error-500, #ef4444)',\n};\n\nconst STATUS_KEYS: Record<KbSessionStatus, string> = {\n authenticated: 'statusConnected',\n expired: 'statusExpired',\n 'signed-out': 'statusSignedOut',\n unreachable: 'statusUnreachable',\n};\n\nfunction StatusDot({ status, t }: { status: KbSessionStatus; t: T }) {\n return (\n <span\n title={t(STATUS_KEYS[status])}\n style={{\n width: '0.5rem',\n height: '0.5rem',\n borderRadius: '50%',\n backgroundColor: STATUS_COLORS[status],\n flexShrink: 0,\n }}\n />\n );\n}\n\nfunction LoginForm({ t, onSubmit, onCancel, error, isSubmitting, autoFocus, pulsing, initialHost = 'localhost', initialPort = 4000, initialEmail = 'admin@example.com' }: {\n t: T;\n onSubmit: (host: string, port: number, protocol: 'http' | 'https', email: string, password: string) => Promise<void>;\n onCancel: () => void;\n error: string | null;\n isSubmitting: boolean;\n autoFocus?: boolean;\n pulsing?: boolean;\n initialHost?: string;\n initialPort?: number;\n initialEmail?: string;\n}) {\n const [host, setHost] = useState(initialHost);\n const [port, setPort] = useState(String(initialPort));\n const [protocol, setProtocol] = useState<'http' | 'https'>(defaultProtocol(initialHost));\n const [email, setEmail] = useState(initialEmail);\n const [password, setPassword] = useState('');\n\n const handleHostChange = (newHost: string) => {\n setHost(newHost);\n setProtocol(defaultProtocol(newHost));\n };\n\n return (\n <div\n className={pulsing ? 'semiont-panel__login-form--pulsing' : ''}\n style={{\n margin: '0.5rem',\n padding: '0.75rem',\n border: '1px solid var(--semiont-color-neutral-200, #e5e7eb)',\n borderRadius: 'var(--semiont-panel-border-radius, 0.5rem)',\n background: 'var(--semiont-bg-secondary, transparent)',\n }}\n >\n <h3 style={{ fontSize: '0.8rem', fontWeight: 600, marginBottom: '0.5rem' }}>{t('connectTitle')}</h3>\n <form onSubmit={(e) => { e.preventDefault(); if (isValidHostname(host)) onSubmit(host, parseInt(port, 10) || 4000, protocol, email, password); }} style={{ display: 'flex', flexDirection: 'column', gap: '0.5rem' }}>\n <select value={protocol} onChange={e => setProtocol(e.target.value as 'http' | 'https')} className=\"semiont-input\">\n <option value=\"http\">HTTP</option>\n <option value=\"https\">HTTPS</option>\n </select>\n <input type=\"text\" value={host} onChange={e => handleHostChange(e.target.value)} placeholder=\"Host\" className=\"semiont-input\" autoFocus={autoFocus} />\n <input type=\"number\" value={port} onChange={e => setPort(e.target.value)} placeholder=\"Port\" className=\"semiont-input\" />\n {host && !isValidHostname(host) && (\n <div style={{ color: 'var(--semiont-color-error-500, #ef4444)', fontSize: '0.75rem' }}>{t('invalidHost')}</div>\n )}\n <input type=\"email\" value={email} onChange={e => setEmail(e.target.value)} placeholder=\"Email\" className=\"semiont-input\" />\n <input type=\"password\" value={password} onChange={e => setPassword(e.target.value)} placeholder=\"Password\" className=\"semiont-input\" />\n {error && <div style={{ color: 'var(--semiont-color-error-500, #ef4444)', fontSize: '0.75rem' }}>{error}</div>}\n <div style={{ display: 'flex', gap: '0.5rem' }}>\n <button type=\"submit\" className=\"semiont-button semiont-button--primary\" style={{ flex: 1 }} disabled={isSubmitting || !isValidHostname(host)}>\n {isSubmitting ? t('connecting') : t('connect')}\n </button>\n <button type=\"button\" className=\"semiont-button\" onClick={onCancel}>\n <XMarkIcon style={{ width: '1rem', height: '1rem' }} />\n </button>\n </div>\n </form>\n </div>\n );\n}\n\nfunction ReauthForm({ t, kb, onSubmit, onCancel, error, isSubmitting }: {\n t: T;\n kb: KnowledgeBase;\n onSubmit: (password: string) => Promise<void>;\n onCancel: () => void;\n error: string | null;\n isSubmitting: boolean;\n}) {\n const [password, setPassword] = useState('');\n\n return (\n <form onSubmit={(e) => { e.preventDefault(); onSubmit(password); }} style={{ padding: '0.5rem 0.75rem', display: 'flex', flexDirection: 'column', gap: '0.375rem' }}>\n <div style={{ fontSize: '0.75rem', color: 'var(--semiont-color-neutral-400)' }}>{kb.email}</div>\n <input type=\"password\" value={password} onChange={e => setPassword(e.target.value)} placeholder=\"Password\" className=\"semiont-input\" style={{ fontSize: '0.8rem' }} autoFocus />\n {error && <div style={{ color: 'var(--semiont-color-error-500, #ef4444)', fontSize: '0.75rem' }}>{error}</div>}\n <div style={{ display: 'flex', gap: '0.375rem' }}>\n <button type=\"submit\" className=\"semiont-button semiont-button--primary\" style={{ flex: 1, fontSize: '0.8rem' }} disabled={isSubmitting}>\n {isSubmitting ? t('signingIn') : t('signIn')}\n </button>\n <button type=\"button\" className=\"semiont-button\" onClick={onCancel} style={{ fontSize: '0.8rem' }}>\n {t('cancel')}\n </button>\n </div>\n </form>\n );\n}\n\nasync function authenticateWithBackend(host: string, port: number, protocol: 'http' | 'https', emailStr: string, password: string): Promise<{ token: string; refreshToken: string; label: string; gitBranch?: string }> {\n const origin = `${protocol}://${host}:${port}`;\n const transport = new HttpTransport({ baseUrl: baseUrl(origin) });\n const client = new SemiontClient(transport, new HttpContentTransport(transport), transport);\n\n const authResult = await client.auth!.password(emailStr, password);\n const token = (authResult as any).token ?? (authResult as any).accessToken;\n const refreshToken = (authResult as any).refreshToken;\n if (!token) throw new Error('No access token received');\n if (!refreshToken) throw new Error('No refresh token received');\n\n let label = `${host}:${port}`;\n let gitBranch: string | undefined;\n try {\n const status = await client.admin!.status();\n if ((status as any).projectName) label = (status as any).projectName;\n if ((status as any).gitBranch) gitBranch = (status as any).gitBranch;\n } catch { /* use default label */ }\n\n return { token, refreshToken, label, ...(gitBranch ? { gitBranch } : {}) };\n}\n\nexport function KnowledgeBasePanel() {\n const { t: _t } = useTranslation();\n const t = (k: string, p?: Record<string, unknown>) => _t(`KnowledgeBasePanel.${k}`, p as any) as string;\n const semiont = useSemiont();\n const knowledgeBases = useObservable(semiont.kbs$) ?? [];\n const activeKnowledgeBase = useObservable(semiont.activeSession$)?.kb ?? null;\n const setActiveKnowledgeBase = (id: string) => { void semiont.setActiveKb(id); };\n const addKnowledgeBase = semiont.addKb.bind(semiont);\n const removeKnowledgeBase = semiont.removeKb.bind(semiont);\n const updateKnowledgeBase = semiont.updateKb.bind(semiont);\n const signIn = (id: string, access: string, refresh: string) => { void semiont.signIn(id, access, refresh); };\n const signOut = (id: string) => { void semiont.signOut(id); };\n const [showAddForm, setShowAddForm] = useState(false);\n const [addError, setAddError] = useState<string | null>(null);\n const [addSubmitting, setAddSubmitting] = useState(false);\n const [reauthKbId, setReauthKbId] = useState<string | null>(null);\n const [reauthError, setReauthError] = useState<string | null>(null);\n const [reauthSubmitting, setReauthSubmitting] = useState(false);\n const [confirmRemoveKbId, setConfirmRemoveKbId] = useState<string | null>(null);\n const [, setTick] = useState(0);\n\n useEffect(() => {\n if (knowledgeBases.length === 0) setShowAddForm(true);\n }, [knowledgeBases.length]);\n\n useEffect(() => {\n const interval = setInterval(() => setTick(t => t + 1), 30_000);\n return () => clearInterval(interval);\n }, []);\n\n const openAddForm = () => {\n setShowAddForm(true);\n setReauthKbId(null);\n setAddError(null);\n };\n\n const handleAdd = async (host: string, port: number, protocol: 'http' | 'https', email: string, password: string) => {\n setAddError(null);\n setAddSubmitting(true);\n const existing = knowledgeBases.find(\n kb => kb.endpoint.kind === 'http' && kb.endpoint.host === host && kb.endpoint.port === port,\n );\n if (existing) {\n try {\n const { token, refreshToken, gitBranch } = await authenticateWithBackend(host, port, protocol, email, password);\n updateKnowledgeBase(existing.id, { ...(gitBranch ? { gitBranch } : {}) });\n signIn(existing.id, token, refreshToken);\n setShowAddForm(false);\n } catch (err) {\n setAddError(err instanceof Error ? err.message : String(err));\n } finally {\n setAddSubmitting(false);\n }\n return;\n }\n try {\n const { token, refreshToken, label, gitBranch } = await authenticateWithBackend(host, port, protocol, email, password);\n addKnowledgeBase(\n {\n label,\n email,\n endpoint: { kind: 'http', host, port, protocol },\n ...(gitBranch ? { gitBranch } : {}),\n },\n token,\n refreshToken,\n );\n setShowAddForm(false);\n } catch (err) {\n setAddError(err instanceof Error ? err.message : String(err));\n } finally {\n setAddSubmitting(false);\n }\n };\n\n const handleReauth = async (kbId: string, password: string) => {\n const kb = knowledgeBases.find(k => k.id === kbId);\n if (!kb) return;\n setReauthError(null);\n setReauthSubmitting(true);\n if (kb.endpoint.kind !== 'http') {\n setReauthError(`Re-auth is HTTP-only; KB endpoint kind \"${kb.endpoint.kind}\" is not supported here.`);\n setReauthSubmitting(false);\n return;\n }\n try {\n const { token, refreshToken, label, gitBranch } = await authenticateWithBackend(\n kb.endpoint.host, kb.endpoint.port, kb.endpoint.protocol, kb.email, password,\n );\n updateKnowledgeBase(kbId, { label, ...(gitBranch ? { gitBranch } : {}) });\n signIn(kbId, token, refreshToken);\n setReauthKbId(null);\n } catch (err) {\n setReauthError(err instanceof Error ? err.message : String(err));\n } finally {\n setReauthSubmitting(false);\n }\n };\n\n const handleKbClick = (kb: KnowledgeBase) => {\n const status = semiont.getKbSessionStatus(kb.id);\n if (status === 'authenticated') {\n setActiveKnowledgeBase(kb.id);\n } else {\n setReauthKbId(kb.id);\n setShowAddForm(false);\n setReauthError(null);\n }\n };\n\n return (\n <div className=\"semiont-panel\">\n <div className=\"semiont-panel-header\">\n <h2 className=\"semiont-panel-header__title\">\n <span className=\"semiont-panel-header__text\">{t('title')}</span>\n <span className=\"semiont-panel-header__count\">({knowledgeBases.length})</span>\n </h2>\n </div>\n <div className=\"semiont-panel__content\">\n <div className=\"semiont-panel__list\">\n {knowledgeBases.map((kb: KnowledgeBase) => {\n const status = semiont.getKbSessionStatus(kb.id);\n const isActive = kb.id === activeKnowledgeBase?.id;\n const isReauthing = reauthKbId === kb.id;\n\n return (\n <div key={kb.id}>\n <div\n className={`semiont-panel-item semiont-panel-item--clickable${isActive ? ' semiont-panel-item--selected' : ''}`}\n style={{ display: 'flex', flexDirection: 'column', gap: '0.25rem', cursor: 'pointer', padding: '0.5rem 0.75rem' }}\n onClick={() => handleKbClick(kb)}\n >\n <div style={{ display: 'flex', alignItems: 'center', gap: '0.5rem' }}>\n <StatusDot status={status} t={t} />\n <span className=\"semiont-panel-text\" style={{ flex: 1, fontWeight: 500 }}>{kb.label}</span>\n {isActive && (\n <CheckIcon style={{ width: '1rem', height: '1rem', color: 'var(--semiont-color-primary-500)', flexShrink: 0 }} />\n )}\n {status === 'authenticated' && (\n <button\n onClick={(e) => { e.stopPropagation(); signOut(kb.id); }}\n title={t('signOut')}\n style={{ background: 'none', border: 'none', cursor: 'pointer', padding: '0.125rem', color: 'var(--semiont-color-neutral-400)' }}\n >\n <ArrowRightStartOnRectangleIcon style={{ width: '0.875rem', height: '0.875rem' }} />\n </button>\n )}\n <button\n onClick={(e) => { e.stopPropagation(); setConfirmRemoveKbId(kb.id); }}\n title={t('remove')}\n style={{ background: 'none', border: 'none', cursor: 'pointer', padding: '0.125rem', color: 'var(--semiont-color-neutral-400)' }}\n >\n <TrashIcon style={{ width: '0.875rem', height: '0.875rem' }} />\n </button>\n </div>\n <span className=\"semiont-panel-text-secondary\" style={{ fontSize: '0.7rem', paddingLeft: '1rem' }}>\n {kb.endpoint.kind === 'http'\n ? `${kb.endpoint.host}:${kb.endpoint.port}`\n : `local:${kb.endpoint.kbId}`}\n {kb.gitBranch ? ` · ${kb.gitBranch}` : ''}\n </span>\n </div>\n {confirmRemoveKbId === kb.id && (\n <div style={{\n padding: '0.5rem 0.75rem',\n fontSize: '0.8rem',\n display: 'flex',\n alignItems: 'center',\n gap: '0.5rem',\n background: 'var(--semiont-bg-secondary, #f9fafb)',\n borderBottom: '1px solid var(--semiont-color-neutral-200, #e5e7eb)',\n }}>\n <span style={{ flex: 1, color: 'var(--semiont-color-neutral-500)' }}>{t('removeConfirm', { label: kb.label })}</span>\n <button\n onClick={() => { removeKnowledgeBase(kb.id); setConfirmRemoveKbId(null); }}\n className=\"semiont-button\"\n style={{ fontSize: '0.75rem', padding: '0.2rem 0.5rem', color: 'var(--semiont-color-error-500, #ef4444)' }}\n >\n {t('remove')}\n </button>\n <button\n onClick={() => setConfirmRemoveKbId(null)}\n className=\"semiont-button\"\n style={{ fontSize: '0.75rem', padding: '0.2rem 0.5rem' }}\n >\n {t('cancel')}\n </button>\n </div>\n )}\n {isReauthing && (\n <ReauthForm\n t={t}\n kb={kb}\n onSubmit={(password) => handleReauth(kb.id, password)}\n onCancel={() => setReauthKbId(null)}\n error={reauthError}\n isSubmitting={reauthSubmitting}\n />\n )}\n </div>\n );\n })}\n </div>\n\n {showAddForm && (\n <LoginForm\n t={t}\n onSubmit={handleAdd}\n onCancel={() => setShowAddForm(false)}\n error={addError}\n isSubmitting={addSubmitting}\n autoFocus={knowledgeBases.length === 0}\n pulsing={knowledgeBases.length === 0}\n />\n )}\n </div>\n\n {!showAddForm && (\n <div className=\"semiont-panel-footer\">\n <button\n onClick={openAddForm}\n className=\"semiont-panel-item semiont-panel-item--clickable\"\n style={{ width: '100%', display: 'flex', alignItems: 'center', gap: '0.5rem', color: 'var(--semiont-color-primary-600)' }}\n >\n <PlusIcon style={{ width: '1rem', height: '1rem', flexShrink: 0 }} />\n <span className=\"semiont-panel-text\" style={{ color: 'inherit' }}>{t('addKnowledgeBase')}</span>\n </button>\n </div>\n )}\n </div>\n );\n}\n","import React, { useTransition, useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n SettingsPanel,\n ResizeHandle,\n usePanelWidth,\n useEventSubscriptions,\n useSemiont,\n useObservable,\n useHoverDelay,\n} from '@semiont/react-ui';\nimport { UserPanel } from '../UserPanel';\nimport { KnowledgeBasePanel } from '../KnowledgeBasePanel';\nimport { useLocale } from '@/i18n/routing';\nimport { usePathname, useRouter } from '@/i18n/routing';\nimport { COMMON_PANELS } from '@semiont/react-ui';\nimport type { ToolbarPanelType } from '@semiont/react-ui';\n\ninterface ToolbarPanelsProps {\n activePanel: ToolbarPanelType | null;\n /** Theme setting */\n theme: 'light' | 'dark' | 'system';\n /** Line numbers setting */\n showLineNumbers: boolean;\n /** Custom panel content for context-specific panels */\n children?: React.ReactNode;\n}\n\n/**\n * Renders the toolbar panel container with common panels (user, settings)\n * and any context-specific panels passed as children.\n *\n * Settings changes are handled via GlobalSettingsEventBus - no callbacks needed.\n *\n * @example\n * // Simple context (compose, discover, moderate, admin pages)\n * <ToolbarPanels\n * activePanel={activePanel}\n * theme={theme}\n * showLineNumbers={showLineNumbers}\n * />\n *\n * @example\n * // Document context with custom panels\n * <ToolbarPanels\n * activePanel={activePanel}\n * theme={theme}\n * showLineNumbers={showLineNumbers}\n * >\n * {activePanel === 'annotations' && <UnifiedAnnotationsPanel ... />}\n * {activePanel === 'history' && <AnnotationHistory ... />}\n * {activePanel === 'info' && <ResourceInfoPanel ... />}\n * {activePanel === 'collaboration' && <CollaborationPanel ... />}\n * {activePanel === 'jsonld' && <JsonLdPanel ... />}\n * </ToolbarPanels>\n */\nexport function ToolbarPanels({\n activePanel,\n theme,\n showLineNumbers,\n children\n}: ToolbarPanelsProps) {\n // Source hover-delay from the shared hook so every page that mounts\n // ToolbarPanels gets the live value without prop-drilling. Previously\n // each page passed `hoverDelayMs` through as a prop; pages that forgot\n // (Discover, Admin, Moderation) rendered the Settings panel with\n // `undefined`, which surfaced as `{undefined}ms delay` after the\n // translation interpolation ran.\n const { hoverDelayMs } = useHoverDelay();\n const { t: _t } = useTranslation();\n const session = useObservable(useSemiont().activeSession$);\n const user = useObservable(session?.user$);\n const isAuthenticated = !!user;\n const locale = useLocale();\n const router = useRouter();\n const pathname = usePathname();\n const [isPending, startTransition] = useTransition();\n\n // Panel width management with localStorage persistence\n const { width, setWidth, minWidth, maxWidth } = usePanelWidth();\n\n // Handle locale change events\n const handleLocaleChanged = useCallback(({ locale: newLocale }: { locale: string }) => {\n if (!pathname) return;\n\n startTransition(() => {\n // The router from @/i18n/routing is locale-aware and will handle the locale prefix\n router.replace(pathname, { locale: newLocale });\n });\n }, [pathname, router, startTransition]);\n\n // Subscribe to locale change events\n useEventSubscriptions({\n 'settings:locale-changed': handleLocaleChanged,\n });\n\n // Don't render container if no panel is active\n if (!activePanel) {\n return null;\n }\n\n // In simple context (no children), only user and settings panels are valid.\n // If a resource-specific panel is still active from a previous route, hide the container.\n if (!children && !COMMON_PANELS.includes(activePanel)) {\n return null;\n }\n\n return (\n <div className=\"semiont-toolbar-panels\" style={{ width: `${width}px`, position: 'relative' }}>\n {/* Resize handle on left edge */}\n <ResizeHandle\n onResize={setWidth}\n minWidth={minWidth}\n maxWidth={maxWidth}\n position=\"left\"\n ariaLabel=\"Resize right panel\"\n />\n\n {/* Custom context-specific panels */}\n <div className=\"semiont-toolbar-panels__content\">\n {children}\n\n {/* Knowledge Base Panel - common to all contexts */}\n {activePanel === 'knowledge-base' && (\n <KnowledgeBasePanel />\n )}\n\n {/* User Panel - requires authentication */}\n {activePanel === 'user' && (\n isAuthenticated ? (\n <UserPanel />\n ) : (\n <div className=\"semiont-panel\">\n <div className=\"semiont-panel-header\">\n <h2 className=\"semiont-panel-header__title\">\n <span className=\"semiont-panel-header__text\">{_t('UserPanel.account')}</span>\n </h2>\n </div>\n <div className=\"semiont-panel__content\" style={{ padding: '1rem', textAlign: 'center' }}>\n <p style={{ color: 'var(--semiont-color-neutral-400)', fontSize: '0.85rem', lineHeight: 1.5 }}>\n {_t('AccountPanel.notAuthenticated')}\n </p>\n </div>\n </div>\n )\n )}\n\n {/* Settings Panel - common to all contexts */}\n {activePanel === 'settings' && (\n <SettingsPanel\n showLineNumbers={showLineNumbers}\n theme={theme}\n hoverDelayMs={hoverDelayMs}\n locale={locale}\n isPendingLocaleChange={isPending}\n />\n )}\n </div>\n </div>\n );\n}\n"],"names":["ArrowRightStartOnRectangleIcon","title","titleId","props","svgRef","React.createElement","ForwardRef","React.forwardRef","CheckIcon","PlusIcon","FALLBACK_AVATAR","UserPanel","_t","useTranslation","t","p","semiont","useSemiont","session","useObservable","user","activeKnowledgeBase","displayName","_a","avatarUrl","userDomain","_b","isAdmin","isModerator","apiClient","sessionStateUnit","useStateUnit","createSessionStateUnit","router","useRouter","imageError","setImageError","useState","timeRemaining","useSessionExpiry","sessionTimeFormatted","formatTime","profileImageUrl","sanitized","sanitizeImageURL","handleSignOut","jsxs","jsx","STATUS_COLORS","STATUS_KEYS","StatusDot","status","LoginForm","onSubmit","onCancel","error","isSubmitting","autoFocus","pulsing","initialHost","initialPort","initialEmail","host","setHost","port","setPort","protocol","setProtocol","defaultProtocol","email","setEmail","password","setPassword","handleHostChange","newHost","e","isValidHostname","XMarkIcon","ReauthForm","kb","authenticateWithBackend","emailStr","origin","transport","HttpTransport","baseUrl","client","SemiontClient","HttpContentTransport","authResult","token","refreshToken","label","gitBranch","KnowledgeBasePanel","k","knowledgeBases","setActiveKnowledgeBase","id","addKnowledgeBase","removeKnowledgeBase","updateKnowledgeBase","signIn","access","refresh","signOut","showAddForm","setShowAddForm","addError","setAddError","addSubmitting","setAddSubmitting","reauthKbId","setReauthKbId","reauthError","setReauthError","reauthSubmitting","setReauthSubmitting","confirmRemoveKbId","setConfirmRemoveKbId","setTick","useEffect","interval","openAddForm","handleAdd","existing","err","handleReauth","kbId","handleKbClick","isActive","isReauthing","TrashIcon","ToolbarPanels","activePanel","theme","showLineNumbers","children","hoverDelayMs","useHoverDelay","isAuthenticated","locale","useLocale","pathname","usePathname","isPending","startTransition","useTransition","width","setWidth","minWidth","maxWidth","usePanelWidth","handleLocaleChanged","useCallback","newLocale","useEventSubscriptions","COMMON_PANELS","ResizeHandle","SettingsPanel"],"mappings":"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","x_google_ignoreList":[0,1,2]}
@@ -0,0 +1,2 @@
1
+ var u={annotations:"التعليقات التوضيحية",history:"السجل",resourceInfo:"معلومات المورد",collaboration:"التعاون",userAccount:"حساب المستخدم",settings:"الإعدادات",knowledgeBase:"قاعدة المعرفة"},A={title:"معلومات المورد",locale:"اللغة المحلية",notSpecified:"غير محدد",entityTypeTags:"علامات نوع الكيان",representation:"التمثيل",mediaType:"نوع الوسائط",byteSize:"الحجم",clone:"استنساخ",cloneDescription:"إنشاء رابط استنساخ قابل للمشاركة لهذا المورد",archive:"أرشفة",archiveDescription:"نقل هذا المورد إلى حالة الأرشيف",unarchive:"إلغاء الأرشفة",unarchiveDescription:"استعادة هذا المورد إلى الحالة النشطة",provenance:"المصدر والسلسلة",createdAt:"تاريخ الإنشاء",modifiedAt:"تاريخ التعديل",creationMethod:"طريقة الإنشاء",attributedTo:"منسوب إلى",derivedFrom:"مشتق من",generatedBy:"أُنشئ بواسطة",storageUri:"التخزين"},e={title:"التعاون",connectionStatus:"حالة الاتصال",live:"مباشر",disconnected:"غير متصل",events:"{{count}} أحداث",lastSync:"آخر مزامنة:",noActivity:"لا يوجد نشاط بعد",justNow:"الآن",secondsAgo:"منذ {{count}} ثوانٍ",minuteAgo:"منذ دقيقة واحدة",minutesAgo:"منذ {{count}} دقائق",hourAgo:"منذ ساعة واحدة",hoursAgo:"منذ {{count}} ساعات",realtimeActive:"التحديثات في الوقت الفعلي نشطة",reconnecting:"جارٍ إعادة الاتصال بالخادم...",sharing:"المشاركة",collaborationComingSoon:"ميزات التعاون قادمة قريبًا"},t={history:"السجل",loading:"جارٍ التحميل...",user:"المستخدم",method:"الطريقة",viewOriginal:"عرض الأصل",viewAnnotation:"عرض التعليق التوضيحي: {{content}}",resourceCreated:"تم إنشاء المورد",resourceCloned:"تم الاستنساخ",resourceArchived:"تمت الأرشفة",resourceUnarchived:"تم إلغاء الأرشفة",highlightAdded:"تمت إضافة تمييز",highlightRemoved:"تمت إزالة التمييز",referenceCreated:"تم إنشاء مرجع",referenceResolved:"تم حل المرجع",referenceDeleted:"تم حذف المرجع",entitytagAdded:"تمت إضافة علامة",entitytagRemoved:"تمت إزالة العلامة",assessmentAdded:"تمت إضافة تقييم",assessmentRemoved:"تمت إزالة التقييم",annotationAdded:"تمت إضافة تعليق توضيحي",annotationRemoved:"تمت إزالة التعليق التوضيحي",annotationBodyUpdated:"تم تحديث التعليق التوضيحي",jobEvent:"حدث مهمة",justNow:"الآن",minutesAgo:"منذ {{count}}د",hoursAgo:"منذ {{count}}س",daysAgo:"منذ {{count}}ي"},n={title:"التعليقات",noComments:"لا توجد تعليقات بعد. حدد نصًا وانقر على تعليق لإضافة واحد.",commentPlaceholder:"اكتب تعليقك هنا...",save:"حفظ",cancel:"إلغاء",edit:"تعديل",annotateComments:"توضيح التعليقات",instructions:"التعليمات",optional:"(اختياري)",instructionsPlaceholder:"مثال: التركيز على المصطلحات التقنية...",annotate:"توضيح",annotating:"جارٍ التوضيح...",toneLabel:"النبرة",toneOptional:"(اختياري)",toneScholarly:"أكاديمي",toneExplanatory:"توضيحي",toneConversational:"حواري",toneTechnical:"تقني",densityLabel:"الكثافة",densitySparse:"متفرق",densityDense:"كثيف",fragmentSelected:"تم تحديد جزء",imageRegionSelected:"تم تحديد منطقة من الصورة",closeProgress:"إغلاق"},a={title:"التمييزات",noHighlights:"لا توجد تمييزات بعد. استخدم التوضيح بالذكاء الاصطناعي للعثور على الفقرات المهمة.",annotateHighlights:"توضيح التمييزات",instructions:"التعليمات",optional:"(اختياري)",instructionsPlaceholder:"مثال: التركيز على المفاهيم التقنية الرئيسية...",annotate:"توضيح",annotating:"جارٍ التوضيح...",cancel:"إلغاء",densityLabel:"الكثافة",densitySparse:"متفرق",densityDense:"كثيف",closeProgress:"إغلاق"},o={title:"التقييمات",noAssessments:"لا توجد تقييمات بعد. استخدم التوضيح بالذكاء الاصطناعي لتقييم الفقرات.",assessmentPlaceholder:"اكتب تقييمك هنا...",save:"حفظ",cancel:"إلغاء",annotateAssessments:"توضيح التقييمات",instructions:"التعليمات",optional:"(اختياري)",instructionsPlaceholder:"مثال: تقييم الادعاءات من حيث الدقة والأدلة...",annotate:"توضيح",annotating:"جارٍ التوضيح...",toneLabel:"النبرة",toneOptional:"(اختياري)",toneAnalytical:"تحليلي",toneCritical:"نقدي",toneBalanced:"متوازن",toneConstructive:"بنّاء",densityLabel:"الكثافة",densitySparse:"متفرق",densityDense:"كثيف",fragmentSelected:"تم تحديد جزء",imageRegionSelected:"تم تحديد منطقة من الصورة",closeProgress:"إغلاق"},i={title:"العلامات",noTags:"لا توجد علامات بعد. استخدم التوضيح بالذكاء الاصطناعي لتحديد الأدوار الهيكلية.",noSchemas:"لا توجد مخططات وسوم مسجلة لقاعدة المعارف هذه. يجب على مسؤول قاعدة المعارف تسجيل مخطط تحليل هيكلي واحد على الأقل (مثلاً عبر مهارة `register-tag-schemas`) قبل استخدام الوسم.",annotateTags:"توضيح العلامات",selectSchema:"اختيار الإطار",selectCategories:"اختيار الفئات",annotate:"توضيح",annotating:"جارٍ التوضيح...",cancel:"إلغاء",selectAll:"تحديد الكل",deselectAll:"إلغاء تحديد الكل",categoriesSelected:"{count, plural, =0 {لم يتم تحديد فئات} =1 {فئة واحدة محددة} other {# فئات محددة}}",createTagForSelection:"إنشاء علامة للتحديد",selectCategory:"اختيار الفئة",chooseCategory:"اختر فئة...",fragmentSelected:"تم تحديد جزء",imageRegionSelected:"تم تحديد منطقة من الصورة"},s={title:"التعليقات التوضيحية",statistics:"الإحصائيات",highlight:"التمييزات",reference:"المراجع",assessment:"التقييمات",comment:"التعليقات",tag:"العلامات"},l={title:"الإحصائيات",highlights:"التمييزات",comments:"التعليقات",assessments:"التقييمات",tags:"العلامات",references:"المراجع",stub:"مبدئي",resolved:"محلول",entityTypes:"أنواع الكيانات"},r={title:"المراجع",noReferences:"لا توجد مراجع بعد. حدد نصًا لإنشاء مراجع لموارد أخرى.",outgoingReferences:"المراجع الصادرة",incomingReferences:"المراجع الواردة",noIncomingReferences:"لا توجد مراجع واردة",stub:"مرجع مبدئي (غير مربوط)",resolved:"مرجع محلول (مربوط)",open:"فتح",unlink:"إلغاء الربط",resolve:"حل المرجع",cancel:"إلغاء",createReference:"إنشاء مرجع",entityTypesOptional:"أنواع الكيانات (اختياري)",fragmentSelected:"تم تحديد جزء",imageRegionSelected:"تم تحديد منطقة من الصورة",annotateReferences:"توضيح المراجع",selectEntityTypes:"أنواع الكيانات:",select:"تحديد",deselect:"إلغاء التحديد",noEntityTypes:"لا توجد أنواع كيانات متاحة",typesSelected:"{count, plural, =1 {نوع واحد محدد} other {# أنواع محددة}}",annotate:"توضيح",annotating:"جارٍ التوضيح...",includeDescriptiveReferences:"تضمين المراجع الوصفية",descriptiveReferencesTooltip:"البحث أيضًا عن عبارات مثل 'الرئيس التنفيذي'، 'عملاق التكنولوجيا'، 'الفيزيائي' (بالإضافة إلى الأسماء)",annotationProgressTitle:"توضيح مراجع الكيانات",cancelAnnotation:"إلغاء التوضيح",found:"تم العثور على {{count}}",complete:"اكتمل التوضيح!",failed:"فشل التوضيح",current:"الحالي: {{entityType}}",closeProgress:"إغلاق",loading:"جارٍ التحميل...",loadingEllipsis:"جارٍ التحميل...",untitledResource:"مورد بدون عنوان",noText:"لا يوجد نص"},c={title:"اختصارات لوحة المفاتيح",closeDialog:"إغلاق مربع الحوار",or:"أو",navigationTitle:"التنقل",navOpenSearch:"فتح البحث الشامل",navOpenSearchAlt:"فتح البحث الشامل (بديل)",navCreateResource:"إنشاء مورد جديد",navCloseOverlays:"إغلاق جميع الطبقات العلوية (ضغط مزدوج)",navShowHelp:"عرض مساعدة اختصارات لوحة المفاتيح",sidebarTitle:"الشريط الجانبي للمعرفة",sidebarCollapse:"طي الشريط الجانبي",sidebarExpand:"توسيع الشريط الجانبي",sidebarPickup:"التقاط علامة تبويب المورد (عند التركيز)",sidebarMove:"نقل علامة تبويب المورد (أثناء السحب)",sidebarDrop:"إفلات علامة تبويب المورد (أثناء السحب)",sidebarCancel:"إلغاء عملية السحب",annotationsTitle:"تعليقات المورد التوضيحية",annotHighlight:"إنشاء تمييز من التعليق التوضيحي (مباشر)",annotReference:"فتح نافذة المرجع المنبثقة للتعليق التوضيحي",annotDelete:"حذف التعليق التوضيحي المركّز عليه",annotNavigate:"التنقل عبر التعليقات التوضيحية",annotNavigateBack:"التنقل عبر التعليقات التوضيحية للخلف",listsTitle:"القوائم والشبكات",listsFilterNav:"التنقل بين مرشحات أنواع الكيانات",listsGridNav:"التنقل في شبكة الموارد",listsJumpFirst:"الانتقال إلى العنصر الأول",listsJumpLast:"الانتقال إلى العنصر الأخير",searchModalTitle:"في نافذة البحث",searchNav:"التنقل في نتائج البحث",searchSelect:"اختيار النتيجة",searchClose:"إغلاق البحث",modalTitle:"عناصر التحكم في النوافذ المنبثقة",modalClose:"إغلاق النافذة المنبثقة النشطة",modalNavForward:"التنقل للأمام عبر الأزرار",modalNavBackward:"التنقل للخلف عبر الأزرار",modalActivate:"تفعيل الزر المركّز عليه",accessibilityTitle:"إمكانية الوصول",a11ySkipLinks:"الانتقال إلى روابط التخطي (عند بداية الصفحة)",a11yFollowLink:"اتباع رابط التخطي",macNote:"استخدام اختصارات لوحة مفاتيح Mac. ⌘ هو مفتاح Command.",windowsNote:"استخدام اختصارات لوحة مفاتيح Windows/Linux. Ctrl هو مفتاح التحكم.",footerHint:"اضغط {{key}} في أي وقت لعرض هذه المساعدة",close:"إغلاق"},D={modeGroup:"الوضع",browse:"تصفح",annotate:"توضيح",selectionGroup:"الدافع",clickGroup:"النقر",shapeGroup:"الشكل",none:"لا شيء",linking:"مرجع",highlighting:"تمييز",assessing:"تقييم",commenting:"تعليق",tagging:"علامة",detail:"تفصيل",follow:"متابعة",deleting:"حذف",jsonld:"JSON-LD",rectangle:"مستطيل",circle:"دائرة",polygon:"مضلع"},F={title:"التنقل",collapseSidebar:"طي الشريط الجانبي",expandSidebar:"توسيع الشريط الجانبي",dragToReorder:"اسحب لإعادة الترتيب",dragToReorderDoc:"اسحب لإعادة ترتيب {{name}}",closeResource:"إغلاق المورد",dragInstructions:"لإعادة ترتيب الموارد: استخدم Tab للانتقال إلى مورد. اضغط Alt+سهم لأعلى للتحريك لأعلى أو Alt+سهم لأسفل للتحريك لأسفل. للسحب والإفلات: اضغط على شريط المسافة لالتقاط العنصر. استخدم مفاتيح الأسهم لتحريكه. اضغط على شريط المسافة مرة أخرى للإفلات."},d={deleteConfirmationTitle:"حذف التعليق التوضيحي",deleteConfirmationMessage:"هل أنت متأكد أنك تريد حذف هذا التعليق التوضيحي؟ لا يمكن التراجع عن هذا الإجراء.",deleteConfirmationCancel:"إلغاء",deleteConfirmationDelete:"حذف"},g={title:"الإعدادات",lineNumbers:"أرقام الأسطر",lineNumbersVisible:"مرئية",lineNumbersHidden:"مخفية",theme:"السمة",themeLight:"فاتح",themeDark:"داكن",themeSystem:"النظام",themeSystemActive:"النظام ({{mode}})",themeModeActive:"استخدام وضع {{mode}}",language:"اللغة",languageHint:"تغيير اللغة في شريط التنقل الرئيسي",languageChanging:"جارٍ تغيير اللغة...",hoverDelay:"تأخير التمرير",hoverDelayFast:"سريع",hoverDelaySlow:"بطيء",hoverDelayDescription:"تأخير {{delay}} ميلي ثانية قبل ظهور تأثيرات التمرير"},C={},m={gatherTitle:"السياق المُجمَّع",configureGenerationTitle:"تكوين التوليد",configureSearchTitle:"إعدادات البحث",searchResultsTitle:"نتائج البحث",sourceContextLabel:"سياق التعليق التوضيحي في المورد",connectionsLabel:"التعليقات التوضيحية للأقران",citedByLabel:"المورد مُستشهد به من قِبل",userHintLabel:"تلميح",userHintPlaceholder:"صف ما يشير إليه هذا التعليق التوضيحي...",loadingContext:"جارٍ جمع السياق...",failedContext:"فشل في جمع السياق",cancel:"إلغاء",generate:"توليد",compose:"تأليف",resolutionStrategyLabel:"استراتيجية الحل",back:"رجوع",link:"رابط",score:"درجة",noResults:"لم يتم العثور على نتائج",resourceTitle:"عنوان المورد",resourceTitlePlaceholder:"أدخل عنوان المورد...",additionalInstructions:"تعليمات إضافية",additionalInstructionsPlaceholder:"أدخل تعليمات إضافية...",language:"اللغة",languageHelp:"لغة المحتوى المُولَّد",creativity:"الإبداع",creativityFocused:"مركّز",creativityCreative:"إبداعي",maxLength:"الحد الأقصى للطول",maxLengthHelp:"العدد الأقصى من الرموز",maxResults:"الحد الأقصى للنتائج",semanticScoring:"التقييم الدلالي",semanticScoringHelp:"استخدام الذكاء الاصطناعي لتقييم النتائج حسب الصلة الدلالية",searching:"جاري البحث...",search:"بحث"},h={embeddingComputed:"تم حساب التضمين"},v={Toolbar:u,ResourceInfoPanel:A,CollaborationPanel:e,AnnotationHistory:t,CommentsPanel:n,HighlightPanel:a,AssessmentPanel:o,TaggingPanel:i,UnifiedAnnotationsPanel:s,StatisticsPanel:l,ReferencesPanel:r,KeyboardShortcuts:c,AnnotateToolbar:D,CollapsibleResourceNavigation:F,ResourceViewer:d,Settings:g,AnnotateView:C,ReferenceWizard:m,History:h};export{D as AnnotateToolbar,C as AnnotateView,t as AnnotationHistory,o as AssessmentPanel,e as CollaborationPanel,F as CollapsibleResourceNavigation,n as CommentsPanel,a as HighlightPanel,h as History,c as KeyboardShortcuts,m as ReferenceWizard,r as ReferencesPanel,A as ResourceInfoPanel,d as ResourceViewer,g as Settings,l as StatisticsPanel,i as TaggingPanel,u as Toolbar,s as UnifiedAnnotationsPanel,v as default};
2
+ //# sourceMappingURL=ar-UUMMNQKF-xeh4Cwx2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ar-UUMMNQKF-xeh4Cwx2.js","sources":["../../../../packages/react-ui/dist/ar-UUMMNQKF.mjs"],"sourcesContent":["'use client';\nimport \"./chunk-D4GAAQMM.mjs\";\n\n// translations/ar.json\nvar Toolbar = {\n annotations: \"\\u0627\\u0644\\u062A\\u0639\\u0644\\u064A\\u0642\\u0627\\u062A \\u0627\\u0644\\u062A\\u0648\\u0636\\u064A\\u062D\\u064A\\u0629\",\n history: \"\\u0627\\u0644\\u0633\\u062C\\u0644\",\n resourceInfo: \"\\u0645\\u0639\\u0644\\u0648\\u0645\\u0627\\u062A \\u0627\\u0644\\u0645\\u0648\\u0631\\u062F\",\n collaboration: \"\\u0627\\u0644\\u062A\\u0639\\u0627\\u0648\\u0646\",\n userAccount: \"\\u062D\\u0633\\u0627\\u0628 \\u0627\\u0644\\u0645\\u0633\\u062A\\u062E\\u062F\\u0645\",\n settings: \"\\u0627\\u0644\\u0625\\u0639\\u062F\\u0627\\u062F\\u0627\\u062A\",\n knowledgeBase: \"\\u0642\\u0627\\u0639\\u062F\\u0629 \\u0627\\u0644\\u0645\\u0639\\u0631\\u0641\\u0629\"\n};\nvar ResourceInfoPanel = {\n title: \"\\u0645\\u0639\\u0644\\u0648\\u0645\\u0627\\u062A \\u0627\\u0644\\u0645\\u0648\\u0631\\u062F\",\n locale: \"\\u0627\\u0644\\u0644\\u063A\\u0629 \\u0627\\u0644\\u0645\\u062D\\u0644\\u064A\\u0629\",\n notSpecified: \"\\u063A\\u064A\\u0631 \\u0645\\u062D\\u062F\\u062F\",\n entityTypeTags: \"\\u0639\\u0644\\u0627\\u0645\\u0627\\u062A \\u0646\\u0648\\u0639 \\u0627\\u0644\\u0643\\u064A\\u0627\\u0646\",\n representation: \"\\u0627\\u0644\\u062A\\u0645\\u062B\\u064A\\u0644\",\n mediaType: \"\\u0646\\u0648\\u0639 \\u0627\\u0644\\u0648\\u0633\\u0627\\u0626\\u0637\",\n byteSize: \"\\u0627\\u0644\\u062D\\u062C\\u0645\",\n clone: \"\\u0627\\u0633\\u062A\\u0646\\u0633\\u0627\\u062E\",\n cloneDescription: \"\\u0625\\u0646\\u0634\\u0627\\u0621 \\u0631\\u0627\\u0628\\u0637 \\u0627\\u0633\\u062A\\u0646\\u0633\\u0627\\u062E \\u0642\\u0627\\u0628\\u0644 \\u0644\\u0644\\u0645\\u0634\\u0627\\u0631\\u0643\\u0629 \\u0644\\u0647\\u0630\\u0627 \\u0627\\u0644\\u0645\\u0648\\u0631\\u062F\",\n archive: \"\\u0623\\u0631\\u0634\\u0641\\u0629\",\n archiveDescription: \"\\u0646\\u0642\\u0644 \\u0647\\u0630\\u0627 \\u0627\\u0644\\u0645\\u0648\\u0631\\u062F \\u0625\\u0644\\u0649 \\u062D\\u0627\\u0644\\u0629 \\u0627\\u0644\\u0623\\u0631\\u0634\\u064A\\u0641\",\n unarchive: \"\\u0625\\u0644\\u063A\\u0627\\u0621 \\u0627\\u0644\\u0623\\u0631\\u0634\\u0641\\u0629\",\n unarchiveDescription: \"\\u0627\\u0633\\u062A\\u0639\\u0627\\u062F\\u0629 \\u0647\\u0630\\u0627 \\u0627\\u0644\\u0645\\u0648\\u0631\\u062F \\u0625\\u0644\\u0649 \\u0627\\u0644\\u062D\\u0627\\u0644\\u0629 \\u0627\\u0644\\u0646\\u0634\\u0637\\u0629\",\n provenance: \"\\u0627\\u0644\\u0645\\u0635\\u062F\\u0631 \\u0648\\u0627\\u0644\\u0633\\u0644\\u0633\\u0644\\u0629\",\n createdAt: \"\\u062A\\u0627\\u0631\\u064A\\u062E \\u0627\\u0644\\u0625\\u0646\\u0634\\u0627\\u0621\",\n modifiedAt: \"\\u062A\\u0627\\u0631\\u064A\\u062E \\u0627\\u0644\\u062A\\u0639\\u062F\\u064A\\u0644\",\n creationMethod: \"\\u0637\\u0631\\u064A\\u0642\\u0629 \\u0627\\u0644\\u0625\\u0646\\u0634\\u0627\\u0621\",\n attributedTo: \"\\u0645\\u0646\\u0633\\u0648\\u0628 \\u0625\\u0644\\u0649\",\n derivedFrom: \"\\u0645\\u0634\\u062A\\u0642 \\u0645\\u0646\",\n generatedBy: \"\\u0623\\u064F\\u0646\\u0634\\u0626 \\u0628\\u0648\\u0627\\u0633\\u0637\\u0629\",\n storageUri: \"\\u0627\\u0644\\u062A\\u062E\\u0632\\u064A\\u0646\"\n};\nvar CollaborationPanel = {\n title: \"\\u0627\\u0644\\u062A\\u0639\\u0627\\u0648\\u0646\",\n connectionStatus: \"\\u062D\\u0627\\u0644\\u0629 \\u0627\\u0644\\u0627\\u062A\\u0635\\u0627\\u0644\",\n live: \"\\u0645\\u0628\\u0627\\u0634\\u0631\",\n disconnected: \"\\u063A\\u064A\\u0631 \\u0645\\u062A\\u0635\\u0644\",\n events: \"{{count}} \\u0623\\u062D\\u062F\\u0627\\u062B\",\n lastSync: \"\\u0622\\u062E\\u0631 \\u0645\\u0632\\u0627\\u0645\\u0646\\u0629:\",\n noActivity: \"\\u0644\\u0627 \\u064A\\u0648\\u062C\\u062F \\u0646\\u0634\\u0627\\u0637 \\u0628\\u0639\\u062F\",\n justNow: \"\\u0627\\u0644\\u0622\\u0646\",\n secondsAgo: \"\\u0645\\u0646\\u0630 {{count}} \\u062B\\u0648\\u0627\\u0646\\u064D\",\n minuteAgo: \"\\u0645\\u0646\\u0630 \\u062F\\u0642\\u064A\\u0642\\u0629 \\u0648\\u0627\\u062D\\u062F\\u0629\",\n minutesAgo: \"\\u0645\\u0646\\u0630 {{count}} \\u062F\\u0642\\u0627\\u0626\\u0642\",\n hourAgo: \"\\u0645\\u0646\\u0630 \\u0633\\u0627\\u0639\\u0629 \\u0648\\u0627\\u062D\\u062F\\u0629\",\n hoursAgo: \"\\u0645\\u0646\\u0630 {{count}} \\u0633\\u0627\\u0639\\u0627\\u062A\",\n realtimeActive: \"\\u0627\\u0644\\u062A\\u062D\\u062F\\u064A\\u062B\\u0627\\u062A \\u0641\\u064A \\u0627\\u0644\\u0648\\u0642\\u062A \\u0627\\u0644\\u0641\\u0639\\u0644\\u064A \\u0646\\u0634\\u0637\\u0629\",\n reconnecting: \"\\u062C\\u0627\\u0631\\u064D \\u0625\\u0639\\u0627\\u062F\\u0629 \\u0627\\u0644\\u0627\\u062A\\u0635\\u0627\\u0644 \\u0628\\u0627\\u0644\\u062E\\u0627\\u062F\\u0645...\",\n sharing: \"\\u0627\\u0644\\u0645\\u0634\\u0627\\u0631\\u0643\\u0629\",\n collaborationComingSoon: \"\\u0645\\u064A\\u0632\\u0627\\u062A \\u0627\\u0644\\u062A\\u0639\\u0627\\u0648\\u0646 \\u0642\\u0627\\u062F\\u0645\\u0629 \\u0642\\u0631\\u064A\\u0628\\u064B\\u0627\"\n};\nvar AnnotationHistory = {\n history: \"\\u0627\\u0644\\u0633\\u062C\\u0644\",\n loading: \"\\u062C\\u0627\\u0631\\u064D \\u0627\\u0644\\u062A\\u062D\\u0645\\u064A\\u0644...\",\n user: \"\\u0627\\u0644\\u0645\\u0633\\u062A\\u062E\\u062F\\u0645\",\n method: \"\\u0627\\u0644\\u0637\\u0631\\u064A\\u0642\\u0629\",\n viewOriginal: \"\\u0639\\u0631\\u0636 \\u0627\\u0644\\u0623\\u0635\\u0644\",\n viewAnnotation: \"\\u0639\\u0631\\u0636 \\u0627\\u0644\\u062A\\u0639\\u0644\\u064A\\u0642 \\u0627\\u0644\\u062A\\u0648\\u0636\\u064A\\u062D\\u064A: {{content}}\",\n resourceCreated: \"\\u062A\\u0645 \\u0625\\u0646\\u0634\\u0627\\u0621 \\u0627\\u0644\\u0645\\u0648\\u0631\\u062F\",\n resourceCloned: \"\\u062A\\u0645 \\u0627\\u0644\\u0627\\u0633\\u062A\\u0646\\u0633\\u0627\\u062E\",\n resourceArchived: \"\\u062A\\u0645\\u062A \\u0627\\u0644\\u0623\\u0631\\u0634\\u0641\\u0629\",\n resourceUnarchived: \"\\u062A\\u0645 \\u0625\\u0644\\u063A\\u0627\\u0621 \\u0627\\u0644\\u0623\\u0631\\u0634\\u0641\\u0629\",\n highlightAdded: \"\\u062A\\u0645\\u062A \\u0625\\u0636\\u0627\\u0641\\u0629 \\u062A\\u0645\\u064A\\u064A\\u0632\",\n highlightRemoved: \"\\u062A\\u0645\\u062A \\u0625\\u0632\\u0627\\u0644\\u0629 \\u0627\\u0644\\u062A\\u0645\\u064A\\u064A\\u0632\",\n referenceCreated: \"\\u062A\\u0645 \\u0625\\u0646\\u0634\\u0627\\u0621 \\u0645\\u0631\\u062C\\u0639\",\n referenceResolved: \"\\u062A\\u0645 \\u062D\\u0644 \\u0627\\u0644\\u0645\\u0631\\u062C\\u0639\",\n referenceDeleted: \"\\u062A\\u0645 \\u062D\\u0630\\u0641 \\u0627\\u0644\\u0645\\u0631\\u062C\\u0639\",\n entitytagAdded: \"\\u062A\\u0645\\u062A \\u0625\\u0636\\u0627\\u0641\\u0629 \\u0639\\u0644\\u0627\\u0645\\u0629\",\n entitytagRemoved: \"\\u062A\\u0645\\u062A \\u0625\\u0632\\u0627\\u0644\\u0629 \\u0627\\u0644\\u0639\\u0644\\u0627\\u0645\\u0629\",\n assessmentAdded: \"\\u062A\\u0645\\u062A \\u0625\\u0636\\u0627\\u0641\\u0629 \\u062A\\u0642\\u064A\\u064A\\u0645\",\n assessmentRemoved: \"\\u062A\\u0645\\u062A \\u0625\\u0632\\u0627\\u0644\\u0629 \\u0627\\u0644\\u062A\\u0642\\u064A\\u064A\\u0645\",\n annotationAdded: \"\\u062A\\u0645\\u062A \\u0625\\u0636\\u0627\\u0641\\u0629 \\u062A\\u0639\\u0644\\u064A\\u0642 \\u062A\\u0648\\u0636\\u064A\\u062D\\u064A\",\n annotationRemoved: \"\\u062A\\u0645\\u062A \\u0625\\u0632\\u0627\\u0644\\u0629 \\u0627\\u0644\\u062A\\u0639\\u0644\\u064A\\u0642 \\u0627\\u0644\\u062A\\u0648\\u0636\\u064A\\u062D\\u064A\",\n annotationBodyUpdated: \"\\u062A\\u0645 \\u062A\\u062D\\u062F\\u064A\\u062B \\u0627\\u0644\\u062A\\u0639\\u0644\\u064A\\u0642 \\u0627\\u0644\\u062A\\u0648\\u0636\\u064A\\u062D\\u064A\",\n jobEvent: \"\\u062D\\u062F\\u062B \\u0645\\u0647\\u0645\\u0629\",\n justNow: \"\\u0627\\u0644\\u0622\\u0646\",\n minutesAgo: \"\\u0645\\u0646\\u0630 {{count}}\\u062F\",\n hoursAgo: \"\\u0645\\u0646\\u0630 {{count}}\\u0633\",\n daysAgo: \"\\u0645\\u0646\\u0630 {{count}}\\u064A\"\n};\nvar CommentsPanel = {\n title: \"\\u0627\\u0644\\u062A\\u0639\\u0644\\u064A\\u0642\\u0627\\u062A\",\n noComments: \"\\u0644\\u0627 \\u062A\\u0648\\u062C\\u062F \\u062A\\u0639\\u0644\\u064A\\u0642\\u0627\\u062A \\u0628\\u0639\\u062F. \\u062D\\u062F\\u062F \\u0646\\u0635\\u064B\\u0627 \\u0648\\u0627\\u0646\\u0642\\u0631 \\u0639\\u0644\\u0649 \\u062A\\u0639\\u0644\\u064A\\u0642 \\u0644\\u0625\\u0636\\u0627\\u0641\\u0629 \\u0648\\u0627\\u062D\\u062F.\",\n commentPlaceholder: \"\\u0627\\u0643\\u062A\\u0628 \\u062A\\u0639\\u0644\\u064A\\u0642\\u0643 \\u0647\\u0646\\u0627...\",\n save: \"\\u062D\\u0641\\u0638\",\n cancel: \"\\u0625\\u0644\\u063A\\u0627\\u0621\",\n edit: \"\\u062A\\u0639\\u062F\\u064A\\u0644\",\n annotateComments: \"\\u062A\\u0648\\u0636\\u064A\\u062D \\u0627\\u0644\\u062A\\u0639\\u0644\\u064A\\u0642\\u0627\\u062A\",\n instructions: \"\\u0627\\u0644\\u062A\\u0639\\u0644\\u064A\\u0645\\u0627\\u062A\",\n optional: \"(\\u0627\\u062E\\u062A\\u064A\\u0627\\u0631\\u064A)\",\n instructionsPlaceholder: \"\\u0645\\u062B\\u0627\\u0644: \\u0627\\u0644\\u062A\\u0631\\u0643\\u064A\\u0632 \\u0639\\u0644\\u0649 \\u0627\\u0644\\u0645\\u0635\\u0637\\u0644\\u062D\\u0627\\u062A \\u0627\\u0644\\u062A\\u0642\\u0646\\u064A\\u0629...\",\n annotate: \"\\u062A\\u0648\\u0636\\u064A\\u062D\",\n annotating: \"\\u062C\\u0627\\u0631\\u064D \\u0627\\u0644\\u062A\\u0648\\u0636\\u064A\\u062D...\",\n toneLabel: \"\\u0627\\u0644\\u0646\\u0628\\u0631\\u0629\",\n toneOptional: \"(\\u0627\\u062E\\u062A\\u064A\\u0627\\u0631\\u064A)\",\n toneScholarly: \"\\u0623\\u0643\\u0627\\u062F\\u064A\\u0645\\u064A\",\n toneExplanatory: \"\\u062A\\u0648\\u0636\\u064A\\u062D\\u064A\",\n toneConversational: \"\\u062D\\u0648\\u0627\\u0631\\u064A\",\n toneTechnical: \"\\u062A\\u0642\\u0646\\u064A\",\n densityLabel: \"\\u0627\\u0644\\u0643\\u062B\\u0627\\u0641\\u0629\",\n densitySparse: \"\\u0645\\u062A\\u0641\\u0631\\u0642\",\n densityDense: \"\\u0643\\u062B\\u064A\\u0641\",\n fragmentSelected: \"\\u062A\\u0645 \\u062A\\u062D\\u062F\\u064A\\u062F \\u062C\\u0632\\u0621\",\n imageRegionSelected: \"\\u062A\\u0645 \\u062A\\u062D\\u062F\\u064A\\u062F \\u0645\\u0646\\u0637\\u0642\\u0629 \\u0645\\u0646 \\u0627\\u0644\\u0635\\u0648\\u0631\\u0629\",\n closeProgress: \"\\u0625\\u063A\\u0644\\u0627\\u0642\"\n};\nvar HighlightPanel = {\n title: \"\\u0627\\u0644\\u062A\\u0645\\u064A\\u064A\\u0632\\u0627\\u062A\",\n noHighlights: \"\\u0644\\u0627 \\u062A\\u0648\\u062C\\u062F \\u062A\\u0645\\u064A\\u064A\\u0632\\u0627\\u062A \\u0628\\u0639\\u062F. \\u0627\\u0633\\u062A\\u062E\\u062F\\u0645 \\u0627\\u0644\\u062A\\u0648\\u0636\\u064A\\u062D \\u0628\\u0627\\u0644\\u0630\\u0643\\u0627\\u0621 \\u0627\\u0644\\u0627\\u0635\\u0637\\u0646\\u0627\\u0639\\u064A \\u0644\\u0644\\u0639\\u062B\\u0648\\u0631 \\u0639\\u0644\\u0649 \\u0627\\u0644\\u0641\\u0642\\u0631\\u0627\\u062A \\u0627\\u0644\\u0645\\u0647\\u0645\\u0629.\",\n annotateHighlights: \"\\u062A\\u0648\\u0636\\u064A\\u062D \\u0627\\u0644\\u062A\\u0645\\u064A\\u064A\\u0632\\u0627\\u062A\",\n instructions: \"\\u0627\\u0644\\u062A\\u0639\\u0644\\u064A\\u0645\\u0627\\u062A\",\n optional: \"(\\u0627\\u062E\\u062A\\u064A\\u0627\\u0631\\u064A)\",\n instructionsPlaceholder: \"\\u0645\\u062B\\u0627\\u0644: \\u0627\\u0644\\u062A\\u0631\\u0643\\u064A\\u0632 \\u0639\\u0644\\u0649 \\u0627\\u0644\\u0645\\u0641\\u0627\\u0647\\u064A\\u0645 \\u0627\\u0644\\u062A\\u0642\\u0646\\u064A\\u0629 \\u0627\\u0644\\u0631\\u0626\\u064A\\u0633\\u064A\\u0629...\",\n annotate: \"\\u062A\\u0648\\u0636\\u064A\\u062D\",\n annotating: \"\\u062C\\u0627\\u0631\\u064D \\u0627\\u0644\\u062A\\u0648\\u0636\\u064A\\u062D...\",\n cancel: \"\\u0625\\u0644\\u063A\\u0627\\u0621\",\n densityLabel: \"\\u0627\\u0644\\u0643\\u062B\\u0627\\u0641\\u0629\",\n densitySparse: \"\\u0645\\u062A\\u0641\\u0631\\u0642\",\n densityDense: \"\\u0643\\u062B\\u064A\\u0641\",\n closeProgress: \"\\u0625\\u063A\\u0644\\u0627\\u0642\"\n};\nvar AssessmentPanel = {\n title: \"\\u0627\\u0644\\u062A\\u0642\\u064A\\u064A\\u0645\\u0627\\u062A\",\n noAssessments: \"\\u0644\\u0627 \\u062A\\u0648\\u062C\\u062F \\u062A\\u0642\\u064A\\u064A\\u0645\\u0627\\u062A \\u0628\\u0639\\u062F. \\u0627\\u0633\\u062A\\u062E\\u062F\\u0645 \\u0627\\u0644\\u062A\\u0648\\u0636\\u064A\\u062D \\u0628\\u0627\\u0644\\u0630\\u0643\\u0627\\u0621 \\u0627\\u0644\\u0627\\u0635\\u0637\\u0646\\u0627\\u0639\\u064A \\u0644\\u062A\\u0642\\u064A\\u064A\\u0645 \\u0627\\u0644\\u0641\\u0642\\u0631\\u0627\\u062A.\",\n assessmentPlaceholder: \"\\u0627\\u0643\\u062A\\u0628 \\u062A\\u0642\\u064A\\u064A\\u0645\\u0643 \\u0647\\u0646\\u0627...\",\n save: \"\\u062D\\u0641\\u0638\",\n cancel: \"\\u0625\\u0644\\u063A\\u0627\\u0621\",\n annotateAssessments: \"\\u062A\\u0648\\u0636\\u064A\\u062D \\u0627\\u0644\\u062A\\u0642\\u064A\\u064A\\u0645\\u0627\\u062A\",\n instructions: \"\\u0627\\u0644\\u062A\\u0639\\u0644\\u064A\\u0645\\u0627\\u062A\",\n optional: \"(\\u0627\\u062E\\u062A\\u064A\\u0627\\u0631\\u064A)\",\n instructionsPlaceholder: \"\\u0645\\u062B\\u0627\\u0644: \\u062A\\u0642\\u064A\\u064A\\u0645 \\u0627\\u0644\\u0627\\u062F\\u0639\\u0627\\u0621\\u0627\\u062A \\u0645\\u0646 \\u062D\\u064A\\u062B \\u0627\\u0644\\u062F\\u0642\\u0629 \\u0648\\u0627\\u0644\\u0623\\u062F\\u0644\\u0629...\",\n annotate: \"\\u062A\\u0648\\u0636\\u064A\\u062D\",\n annotating: \"\\u062C\\u0627\\u0631\\u064D \\u0627\\u0644\\u062A\\u0648\\u0636\\u064A\\u062D...\",\n toneLabel: \"\\u0627\\u0644\\u0646\\u0628\\u0631\\u0629\",\n toneOptional: \"(\\u0627\\u062E\\u062A\\u064A\\u0627\\u0631\\u064A)\",\n toneAnalytical: \"\\u062A\\u062D\\u0644\\u064A\\u0644\\u064A\",\n toneCritical: \"\\u0646\\u0642\\u062F\\u064A\",\n toneBalanced: \"\\u0645\\u062A\\u0648\\u0627\\u0632\\u0646\",\n toneConstructive: \"\\u0628\\u0646\\u0651\\u0627\\u0621\",\n densityLabel: \"\\u0627\\u0644\\u0643\\u062B\\u0627\\u0641\\u0629\",\n densitySparse: \"\\u0645\\u062A\\u0641\\u0631\\u0642\",\n densityDense: \"\\u0643\\u062B\\u064A\\u0641\",\n fragmentSelected: \"\\u062A\\u0645 \\u062A\\u062D\\u062F\\u064A\\u062F \\u062C\\u0632\\u0621\",\n imageRegionSelected: \"\\u062A\\u0645 \\u062A\\u062D\\u062F\\u064A\\u062F \\u0645\\u0646\\u0637\\u0642\\u0629 \\u0645\\u0646 \\u0627\\u0644\\u0635\\u0648\\u0631\\u0629\",\n closeProgress: \"\\u0625\\u063A\\u0644\\u0627\\u0642\"\n};\nvar TaggingPanel = {\n title: \"\\u0627\\u0644\\u0639\\u0644\\u0627\\u0645\\u0627\\u062A\",\n noTags: \"\\u0644\\u0627 \\u062A\\u0648\\u062C\\u062F \\u0639\\u0644\\u0627\\u0645\\u0627\\u062A \\u0628\\u0639\\u062F. \\u0627\\u0633\\u062A\\u062E\\u062F\\u0645 \\u0627\\u0644\\u062A\\u0648\\u0636\\u064A\\u062D \\u0628\\u0627\\u0644\\u0630\\u0643\\u0627\\u0621 \\u0627\\u0644\\u0627\\u0635\\u0637\\u0646\\u0627\\u0639\\u064A \\u0644\\u062A\\u062D\\u062F\\u064A\\u062F \\u0627\\u0644\\u0623\\u062F\\u0648\\u0627\\u0631 \\u0627\\u0644\\u0647\\u064A\\u0643\\u0644\\u064A\\u0629.\",\n noSchemas: \"\\u0644\\u0627 \\u062A\\u0648\\u062C\\u062F \\u0645\\u062E\\u0637\\u0637\\u0627\\u062A \\u0648\\u0633\\u0648\\u0645 \\u0645\\u0633\\u062C\\u0644\\u0629 \\u0644\\u0642\\u0627\\u0639\\u062F\\u0629 \\u0627\\u0644\\u0645\\u0639\\u0627\\u0631\\u0641 \\u0647\\u0630\\u0647. \\u064A\\u062C\\u0628 \\u0639\\u0644\\u0649 \\u0645\\u0633\\u0624\\u0648\\u0644 \\u0642\\u0627\\u0639\\u062F\\u0629 \\u0627\\u0644\\u0645\\u0639\\u0627\\u0631\\u0641 \\u062A\\u0633\\u062C\\u064A\\u0644 \\u0645\\u062E\\u0637\\u0637 \\u062A\\u062D\\u0644\\u064A\\u0644 \\u0647\\u064A\\u0643\\u0644\\u064A \\u0648\\u0627\\u062D\\u062F \\u0639\\u0644\\u0649 \\u0627\\u0644\\u0623\\u0642\\u0644 (\\u0645\\u062B\\u0644\\u0627\\u064B \\u0639\\u0628\\u0631 \\u0645\\u0647\\u0627\\u0631\\u0629 `register-tag-schemas`) \\u0642\\u0628\\u0644 \\u0627\\u0633\\u062A\\u062E\\u062F\\u0627\\u0645 \\u0627\\u0644\\u0648\\u0633\\u0645.\",\n annotateTags: \"\\u062A\\u0648\\u0636\\u064A\\u062D \\u0627\\u0644\\u0639\\u0644\\u0627\\u0645\\u0627\\u062A\",\n selectSchema: \"\\u0627\\u062E\\u062A\\u064A\\u0627\\u0631 \\u0627\\u0644\\u0625\\u0637\\u0627\\u0631\",\n selectCategories: \"\\u0627\\u062E\\u062A\\u064A\\u0627\\u0631 \\u0627\\u0644\\u0641\\u0626\\u0627\\u062A\",\n annotate: \"\\u062A\\u0648\\u0636\\u064A\\u062D\",\n annotating: \"\\u062C\\u0627\\u0631\\u064D \\u0627\\u0644\\u062A\\u0648\\u0636\\u064A\\u062D...\",\n cancel: \"\\u0625\\u0644\\u063A\\u0627\\u0621\",\n selectAll: \"\\u062A\\u062D\\u062F\\u064A\\u062F \\u0627\\u0644\\u0643\\u0644\",\n deselectAll: \"\\u0625\\u0644\\u063A\\u0627\\u0621 \\u062A\\u062D\\u062F\\u064A\\u062F \\u0627\\u0644\\u0643\\u0644\",\n categoriesSelected: \"{count, plural, =0 {\\u0644\\u0645 \\u064A\\u062A\\u0645 \\u062A\\u062D\\u062F\\u064A\\u062F \\u0641\\u0626\\u0627\\u062A} =1 {\\u0641\\u0626\\u0629 \\u0648\\u0627\\u062D\\u062F\\u0629 \\u0645\\u062D\\u062F\\u062F\\u0629} other {# \\u0641\\u0626\\u0627\\u062A \\u0645\\u062D\\u062F\\u062F\\u0629}}\",\n createTagForSelection: \"\\u0625\\u0646\\u0634\\u0627\\u0621 \\u0639\\u0644\\u0627\\u0645\\u0629 \\u0644\\u0644\\u062A\\u062D\\u062F\\u064A\\u062F\",\n selectCategory: \"\\u0627\\u062E\\u062A\\u064A\\u0627\\u0631 \\u0627\\u0644\\u0641\\u0626\\u0629\",\n chooseCategory: \"\\u0627\\u062E\\u062A\\u0631 \\u0641\\u0626\\u0629...\",\n fragmentSelected: \"\\u062A\\u0645 \\u062A\\u062D\\u062F\\u064A\\u062F \\u062C\\u0632\\u0621\",\n imageRegionSelected: \"\\u062A\\u0645 \\u062A\\u062D\\u062F\\u064A\\u062F \\u0645\\u0646\\u0637\\u0642\\u0629 \\u0645\\u0646 \\u0627\\u0644\\u0635\\u0648\\u0631\\u0629\"\n};\nvar UnifiedAnnotationsPanel = {\n title: \"\\u0627\\u0644\\u062A\\u0639\\u0644\\u064A\\u0642\\u0627\\u062A \\u0627\\u0644\\u062A\\u0648\\u0636\\u064A\\u062D\\u064A\\u0629\",\n statistics: \"\\u0627\\u0644\\u0625\\u062D\\u0635\\u0627\\u0626\\u064A\\u0627\\u062A\",\n highlight: \"\\u0627\\u0644\\u062A\\u0645\\u064A\\u064A\\u0632\\u0627\\u062A\",\n reference: \"\\u0627\\u0644\\u0645\\u0631\\u0627\\u062C\\u0639\",\n assessment: \"\\u0627\\u0644\\u062A\\u0642\\u064A\\u064A\\u0645\\u0627\\u062A\",\n comment: \"\\u0627\\u0644\\u062A\\u0639\\u0644\\u064A\\u0642\\u0627\\u062A\",\n tag: \"\\u0627\\u0644\\u0639\\u0644\\u0627\\u0645\\u0627\\u062A\"\n};\nvar StatisticsPanel = {\n title: \"\\u0627\\u0644\\u0625\\u062D\\u0635\\u0627\\u0626\\u064A\\u0627\\u062A\",\n highlights: \"\\u0627\\u0644\\u062A\\u0645\\u064A\\u064A\\u0632\\u0627\\u062A\",\n comments: \"\\u0627\\u0644\\u062A\\u0639\\u0644\\u064A\\u0642\\u0627\\u062A\",\n assessments: \"\\u0627\\u0644\\u062A\\u0642\\u064A\\u064A\\u0645\\u0627\\u062A\",\n tags: \"\\u0627\\u0644\\u0639\\u0644\\u0627\\u0645\\u0627\\u062A\",\n references: \"\\u0627\\u0644\\u0645\\u0631\\u0627\\u062C\\u0639\",\n stub: \"\\u0645\\u0628\\u062F\\u0626\\u064A\",\n resolved: \"\\u0645\\u062D\\u0644\\u0648\\u0644\",\n entityTypes: \"\\u0623\\u0646\\u0648\\u0627\\u0639 \\u0627\\u0644\\u0643\\u064A\\u0627\\u0646\\u0627\\u062A\"\n};\nvar ReferencesPanel = {\n title: \"\\u0627\\u0644\\u0645\\u0631\\u0627\\u062C\\u0639\",\n noReferences: \"\\u0644\\u0627 \\u062A\\u0648\\u062C\\u062F \\u0645\\u0631\\u0627\\u062C\\u0639 \\u0628\\u0639\\u062F. \\u062D\\u062F\\u062F \\u0646\\u0635\\u064B\\u0627 \\u0644\\u0625\\u0646\\u0634\\u0627\\u0621 \\u0645\\u0631\\u0627\\u062C\\u0639 \\u0644\\u0645\\u0648\\u0627\\u0631\\u062F \\u0623\\u062E\\u0631\\u0649.\",\n outgoingReferences: \"\\u0627\\u0644\\u0645\\u0631\\u0627\\u062C\\u0639 \\u0627\\u0644\\u0635\\u0627\\u062F\\u0631\\u0629\",\n incomingReferences: \"\\u0627\\u0644\\u0645\\u0631\\u0627\\u062C\\u0639 \\u0627\\u0644\\u0648\\u0627\\u0631\\u062F\\u0629\",\n noIncomingReferences: \"\\u0644\\u0627 \\u062A\\u0648\\u062C\\u062F \\u0645\\u0631\\u0627\\u062C\\u0639 \\u0648\\u0627\\u0631\\u062F\\u0629\",\n stub: \"\\u0645\\u0631\\u062C\\u0639 \\u0645\\u0628\\u062F\\u0626\\u064A (\\u063A\\u064A\\u0631 \\u0645\\u0631\\u0628\\u0648\\u0637)\",\n resolved: \"\\u0645\\u0631\\u062C\\u0639 \\u0645\\u062D\\u0644\\u0648\\u0644 (\\u0645\\u0631\\u0628\\u0648\\u0637)\",\n open: \"\\u0641\\u062A\\u062D\",\n unlink: \"\\u0625\\u0644\\u063A\\u0627\\u0621 \\u0627\\u0644\\u0631\\u0628\\u0637\",\n resolve: \"\\u062D\\u0644 \\u0627\\u0644\\u0645\\u0631\\u062C\\u0639\",\n cancel: \"\\u0625\\u0644\\u063A\\u0627\\u0621\",\n createReference: \"\\u0625\\u0646\\u0634\\u0627\\u0621 \\u0645\\u0631\\u062C\\u0639\",\n entityTypesOptional: \"\\u0623\\u0646\\u0648\\u0627\\u0639 \\u0627\\u0644\\u0643\\u064A\\u0627\\u0646\\u0627\\u062A (\\u0627\\u062E\\u062A\\u064A\\u0627\\u0631\\u064A)\",\n fragmentSelected: \"\\u062A\\u0645 \\u062A\\u062D\\u062F\\u064A\\u062F \\u062C\\u0632\\u0621\",\n imageRegionSelected: \"\\u062A\\u0645 \\u062A\\u062D\\u062F\\u064A\\u062F \\u0645\\u0646\\u0637\\u0642\\u0629 \\u0645\\u0646 \\u0627\\u0644\\u0635\\u0648\\u0631\\u0629\",\n annotateReferences: \"\\u062A\\u0648\\u0636\\u064A\\u062D \\u0627\\u0644\\u0645\\u0631\\u0627\\u062C\\u0639\",\n selectEntityTypes: \"\\u0623\\u0646\\u0648\\u0627\\u0639 \\u0627\\u0644\\u0643\\u064A\\u0627\\u0646\\u0627\\u062A:\",\n select: \"\\u062A\\u062D\\u062F\\u064A\\u062F\",\n deselect: \"\\u0625\\u0644\\u063A\\u0627\\u0621 \\u0627\\u0644\\u062A\\u062D\\u062F\\u064A\\u062F\",\n noEntityTypes: \"\\u0644\\u0627 \\u062A\\u0648\\u062C\\u062F \\u0623\\u0646\\u0648\\u0627\\u0639 \\u0643\\u064A\\u0627\\u0646\\u0627\\u062A \\u0645\\u062A\\u0627\\u062D\\u0629\",\n typesSelected: \"{count, plural, =1 {\\u0646\\u0648\\u0639 \\u0648\\u0627\\u062D\\u062F \\u0645\\u062D\\u062F\\u062F} other {# \\u0623\\u0646\\u0648\\u0627\\u0639 \\u0645\\u062D\\u062F\\u062F\\u0629}}\",\n annotate: \"\\u062A\\u0648\\u0636\\u064A\\u062D\",\n annotating: \"\\u062C\\u0627\\u0631\\u064D \\u0627\\u0644\\u062A\\u0648\\u0636\\u064A\\u062D...\",\n includeDescriptiveReferences: \"\\u062A\\u0636\\u0645\\u064A\\u0646 \\u0627\\u0644\\u0645\\u0631\\u0627\\u062C\\u0639 \\u0627\\u0644\\u0648\\u0635\\u0641\\u064A\\u0629\",\n descriptiveReferencesTooltip: \"\\u0627\\u0644\\u0628\\u062D\\u062B \\u0623\\u064A\\u0636\\u064B\\u0627 \\u0639\\u0646 \\u0639\\u0628\\u0627\\u0631\\u0627\\u062A \\u0645\\u062B\\u0644 '\\u0627\\u0644\\u0631\\u0626\\u064A\\u0633 \\u0627\\u0644\\u062A\\u0646\\u0641\\u064A\\u0630\\u064A'\\u060C '\\u0639\\u0645\\u0644\\u0627\\u0642 \\u0627\\u0644\\u062A\\u0643\\u0646\\u0648\\u0644\\u0648\\u062C\\u064A\\u0627'\\u060C '\\u0627\\u0644\\u0641\\u064A\\u0632\\u064A\\u0627\\u0626\\u064A' (\\u0628\\u0627\\u0644\\u0625\\u0636\\u0627\\u0641\\u0629 \\u0625\\u0644\\u0649 \\u0627\\u0644\\u0623\\u0633\\u0645\\u0627\\u0621)\",\n annotationProgressTitle: \"\\u062A\\u0648\\u0636\\u064A\\u062D \\u0645\\u0631\\u0627\\u062C\\u0639 \\u0627\\u0644\\u0643\\u064A\\u0627\\u0646\\u0627\\u062A\",\n cancelAnnotation: \"\\u0625\\u0644\\u063A\\u0627\\u0621 \\u0627\\u0644\\u062A\\u0648\\u0636\\u064A\\u062D\",\n found: \"\\u062A\\u0645 \\u0627\\u0644\\u0639\\u062B\\u0648\\u0631 \\u0639\\u0644\\u0649 {{count}}\",\n complete: \"\\u0627\\u0643\\u062A\\u0645\\u0644 \\u0627\\u0644\\u062A\\u0648\\u0636\\u064A\\u062D!\",\n failed: \"\\u0641\\u0634\\u0644 \\u0627\\u0644\\u062A\\u0648\\u0636\\u064A\\u062D\",\n current: \"\\u0627\\u0644\\u062D\\u0627\\u0644\\u064A: {{entityType}}\",\n closeProgress: \"\\u0625\\u063A\\u0644\\u0627\\u0642\",\n loading: \"\\u062C\\u0627\\u0631\\u064D \\u0627\\u0644\\u062A\\u062D\\u0645\\u064A\\u0644...\",\n loadingEllipsis: \"\\u062C\\u0627\\u0631\\u064D \\u0627\\u0644\\u062A\\u062D\\u0645\\u064A\\u0644...\",\n untitledResource: \"\\u0645\\u0648\\u0631\\u062F \\u0628\\u062F\\u0648\\u0646 \\u0639\\u0646\\u0648\\u0627\\u0646\",\n noText: \"\\u0644\\u0627 \\u064A\\u0648\\u062C\\u062F \\u0646\\u0635\"\n};\nvar KeyboardShortcuts = {\n title: \"\\u0627\\u062E\\u062A\\u0635\\u0627\\u0631\\u0627\\u062A \\u0644\\u0648\\u062D\\u0629 \\u0627\\u0644\\u0645\\u0641\\u0627\\u062A\\u064A\\u062D\",\n closeDialog: \"\\u0625\\u063A\\u0644\\u0627\\u0642 \\u0645\\u0631\\u0628\\u0639 \\u0627\\u0644\\u062D\\u0648\\u0627\\u0631\",\n or: \"\\u0623\\u0648\",\n navigationTitle: \"\\u0627\\u0644\\u062A\\u0646\\u0642\\u0644\",\n navOpenSearch: \"\\u0641\\u062A\\u062D \\u0627\\u0644\\u0628\\u062D\\u062B \\u0627\\u0644\\u0634\\u0627\\u0645\\u0644\",\n navOpenSearchAlt: \"\\u0641\\u062A\\u062D \\u0627\\u0644\\u0628\\u062D\\u062B \\u0627\\u0644\\u0634\\u0627\\u0645\\u0644 (\\u0628\\u062F\\u064A\\u0644)\",\n navCreateResource: \"\\u0625\\u0646\\u0634\\u0627\\u0621 \\u0645\\u0648\\u0631\\u062F \\u062C\\u062F\\u064A\\u062F\",\n navCloseOverlays: \"\\u0625\\u063A\\u0644\\u0627\\u0642 \\u062C\\u0645\\u064A\\u0639 \\u0627\\u0644\\u0637\\u0628\\u0642\\u0627\\u062A \\u0627\\u0644\\u0639\\u0644\\u0648\\u064A\\u0629 (\\u0636\\u063A\\u0637 \\u0645\\u0632\\u062F\\u0648\\u062C)\",\n navShowHelp: \"\\u0639\\u0631\\u0636 \\u0645\\u0633\\u0627\\u0639\\u062F\\u0629 \\u0627\\u062E\\u062A\\u0635\\u0627\\u0631\\u0627\\u062A \\u0644\\u0648\\u062D\\u0629 \\u0627\\u0644\\u0645\\u0641\\u0627\\u062A\\u064A\\u062D\",\n sidebarTitle: \"\\u0627\\u0644\\u0634\\u0631\\u064A\\u0637 \\u0627\\u0644\\u062C\\u0627\\u0646\\u0628\\u064A \\u0644\\u0644\\u0645\\u0639\\u0631\\u0641\\u0629\",\n sidebarCollapse: \"\\u0637\\u064A \\u0627\\u0644\\u0634\\u0631\\u064A\\u0637 \\u0627\\u0644\\u062C\\u0627\\u0646\\u0628\\u064A\",\n sidebarExpand: \"\\u062A\\u0648\\u0633\\u064A\\u0639 \\u0627\\u0644\\u0634\\u0631\\u064A\\u0637 \\u0627\\u0644\\u062C\\u0627\\u0646\\u0628\\u064A\",\n sidebarPickup: \"\\u0627\\u0644\\u062A\\u0642\\u0627\\u0637 \\u0639\\u0644\\u0627\\u0645\\u0629 \\u062A\\u0628\\u0648\\u064A\\u0628 \\u0627\\u0644\\u0645\\u0648\\u0631\\u062F (\\u0639\\u0646\\u062F \\u0627\\u0644\\u062A\\u0631\\u0643\\u064A\\u0632)\",\n sidebarMove: \"\\u0646\\u0642\\u0644 \\u0639\\u0644\\u0627\\u0645\\u0629 \\u062A\\u0628\\u0648\\u064A\\u0628 \\u0627\\u0644\\u0645\\u0648\\u0631\\u062F (\\u0623\\u062B\\u0646\\u0627\\u0621 \\u0627\\u0644\\u0633\\u062D\\u0628)\",\n sidebarDrop: \"\\u0625\\u0641\\u0644\\u0627\\u062A \\u0639\\u0644\\u0627\\u0645\\u0629 \\u062A\\u0628\\u0648\\u064A\\u0628 \\u0627\\u0644\\u0645\\u0648\\u0631\\u062F (\\u0623\\u062B\\u0646\\u0627\\u0621 \\u0627\\u0644\\u0633\\u062D\\u0628)\",\n sidebarCancel: \"\\u0625\\u0644\\u063A\\u0627\\u0621 \\u0639\\u0645\\u0644\\u064A\\u0629 \\u0627\\u0644\\u0633\\u062D\\u0628\",\n annotationsTitle: \"\\u062A\\u0639\\u0644\\u064A\\u0642\\u0627\\u062A \\u0627\\u0644\\u0645\\u0648\\u0631\\u062F \\u0627\\u0644\\u062A\\u0648\\u0636\\u064A\\u062D\\u064A\\u0629\",\n annotHighlight: \"\\u0625\\u0646\\u0634\\u0627\\u0621 \\u062A\\u0645\\u064A\\u064A\\u0632 \\u0645\\u0646 \\u0627\\u0644\\u062A\\u0639\\u0644\\u064A\\u0642 \\u0627\\u0644\\u062A\\u0648\\u0636\\u064A\\u062D\\u064A (\\u0645\\u0628\\u0627\\u0634\\u0631)\",\n annotReference: \"\\u0641\\u062A\\u062D \\u0646\\u0627\\u0641\\u0630\\u0629 \\u0627\\u0644\\u0645\\u0631\\u062C\\u0639 \\u0627\\u0644\\u0645\\u0646\\u0628\\u062B\\u0642\\u0629 \\u0644\\u0644\\u062A\\u0639\\u0644\\u064A\\u0642 \\u0627\\u0644\\u062A\\u0648\\u0636\\u064A\\u062D\\u064A\",\n annotDelete: \"\\u062D\\u0630\\u0641 \\u0627\\u0644\\u062A\\u0639\\u0644\\u064A\\u0642 \\u0627\\u0644\\u062A\\u0648\\u0636\\u064A\\u062D\\u064A \\u0627\\u0644\\u0645\\u0631\\u0643\\u0651\\u0632 \\u0639\\u0644\\u064A\\u0647\",\n annotNavigate: \"\\u0627\\u0644\\u062A\\u0646\\u0642\\u0644 \\u0639\\u0628\\u0631 \\u0627\\u0644\\u062A\\u0639\\u0644\\u064A\\u0642\\u0627\\u062A \\u0627\\u0644\\u062A\\u0648\\u0636\\u064A\\u062D\\u064A\\u0629\",\n annotNavigateBack: \"\\u0627\\u0644\\u062A\\u0646\\u0642\\u0644 \\u0639\\u0628\\u0631 \\u0627\\u0644\\u062A\\u0639\\u0644\\u064A\\u0642\\u0627\\u062A \\u0627\\u0644\\u062A\\u0648\\u0636\\u064A\\u062D\\u064A\\u0629 \\u0644\\u0644\\u062E\\u0644\\u0641\",\n listsTitle: \"\\u0627\\u0644\\u0642\\u0648\\u0627\\u0626\\u0645 \\u0648\\u0627\\u0644\\u0634\\u0628\\u0643\\u0627\\u062A\",\n listsFilterNav: \"\\u0627\\u0644\\u062A\\u0646\\u0642\\u0644 \\u0628\\u064A\\u0646 \\u0645\\u0631\\u0634\\u062D\\u0627\\u062A \\u0623\\u0646\\u0648\\u0627\\u0639 \\u0627\\u0644\\u0643\\u064A\\u0627\\u0646\\u0627\\u062A\",\n listsGridNav: \"\\u0627\\u0644\\u062A\\u0646\\u0642\\u0644 \\u0641\\u064A \\u0634\\u0628\\u0643\\u0629 \\u0627\\u0644\\u0645\\u0648\\u0627\\u0631\\u062F\",\n listsJumpFirst: \"\\u0627\\u0644\\u0627\\u0646\\u062A\\u0642\\u0627\\u0644 \\u0625\\u0644\\u0649 \\u0627\\u0644\\u0639\\u0646\\u0635\\u0631 \\u0627\\u0644\\u0623\\u0648\\u0644\",\n listsJumpLast: \"\\u0627\\u0644\\u0627\\u0646\\u062A\\u0642\\u0627\\u0644 \\u0625\\u0644\\u0649 \\u0627\\u0644\\u0639\\u0646\\u0635\\u0631 \\u0627\\u0644\\u0623\\u062E\\u064A\\u0631\",\n searchModalTitle: \"\\u0641\\u064A \\u0646\\u0627\\u0641\\u0630\\u0629 \\u0627\\u0644\\u0628\\u062D\\u062B\",\n searchNav: \"\\u0627\\u0644\\u062A\\u0646\\u0642\\u0644 \\u0641\\u064A \\u0646\\u062A\\u0627\\u0626\\u062C \\u0627\\u0644\\u0628\\u062D\\u062B\",\n searchSelect: \"\\u0627\\u062E\\u062A\\u064A\\u0627\\u0631 \\u0627\\u0644\\u0646\\u062A\\u064A\\u062C\\u0629\",\n searchClose: \"\\u0625\\u063A\\u0644\\u0627\\u0642 \\u0627\\u0644\\u0628\\u062D\\u062B\",\n modalTitle: \"\\u0639\\u0646\\u0627\\u0635\\u0631 \\u0627\\u0644\\u062A\\u062D\\u0643\\u0645 \\u0641\\u064A \\u0627\\u0644\\u0646\\u0648\\u0627\\u0641\\u0630 \\u0627\\u0644\\u0645\\u0646\\u0628\\u062B\\u0642\\u0629\",\n modalClose: \"\\u0625\\u063A\\u0644\\u0627\\u0642 \\u0627\\u0644\\u0646\\u0627\\u0641\\u0630\\u0629 \\u0627\\u0644\\u0645\\u0646\\u0628\\u062B\\u0642\\u0629 \\u0627\\u0644\\u0646\\u0634\\u0637\\u0629\",\n modalNavForward: \"\\u0627\\u0644\\u062A\\u0646\\u0642\\u0644 \\u0644\\u0644\\u0623\\u0645\\u0627\\u0645 \\u0639\\u0628\\u0631 \\u0627\\u0644\\u0623\\u0632\\u0631\\u0627\\u0631\",\n modalNavBackward: \"\\u0627\\u0644\\u062A\\u0646\\u0642\\u0644 \\u0644\\u0644\\u062E\\u0644\\u0641 \\u0639\\u0628\\u0631 \\u0627\\u0644\\u0623\\u0632\\u0631\\u0627\\u0631\",\n modalActivate: \"\\u062A\\u0641\\u0639\\u064A\\u0644 \\u0627\\u0644\\u0632\\u0631 \\u0627\\u0644\\u0645\\u0631\\u0643\\u0651\\u0632 \\u0639\\u0644\\u064A\\u0647\",\n accessibilityTitle: \"\\u0625\\u0645\\u0643\\u0627\\u0646\\u064A\\u0629 \\u0627\\u0644\\u0648\\u0635\\u0648\\u0644\",\n a11ySkipLinks: \"\\u0627\\u0644\\u0627\\u0646\\u062A\\u0642\\u0627\\u0644 \\u0625\\u0644\\u0649 \\u0631\\u0648\\u0627\\u0628\\u0637 \\u0627\\u0644\\u062A\\u062E\\u0637\\u064A (\\u0639\\u0646\\u062F \\u0628\\u062F\\u0627\\u064A\\u0629 \\u0627\\u0644\\u0635\\u0641\\u062D\\u0629)\",\n a11yFollowLink: \"\\u0627\\u062A\\u0628\\u0627\\u0639 \\u0631\\u0627\\u0628\\u0637 \\u0627\\u0644\\u062A\\u062E\\u0637\\u064A\",\n macNote: \"\\u0627\\u0633\\u062A\\u062E\\u062F\\u0627\\u0645 \\u0627\\u062E\\u062A\\u0635\\u0627\\u0631\\u0627\\u062A \\u0644\\u0648\\u062D\\u0629 \\u0645\\u0641\\u0627\\u062A\\u064A\\u062D Mac. \\u2318 \\u0647\\u0648 \\u0645\\u0641\\u062A\\u0627\\u062D Command.\",\n windowsNote: \"\\u0627\\u0633\\u062A\\u062E\\u062F\\u0627\\u0645 \\u0627\\u062E\\u062A\\u0635\\u0627\\u0631\\u0627\\u062A \\u0644\\u0648\\u062D\\u0629 \\u0645\\u0641\\u0627\\u062A\\u064A\\u062D Windows/Linux. Ctrl \\u0647\\u0648 \\u0645\\u0641\\u062A\\u0627\\u062D \\u0627\\u0644\\u062A\\u062D\\u0643\\u0645.\",\n footerHint: \"\\u0627\\u0636\\u063A\\u0637 {{key}} \\u0641\\u064A \\u0623\\u064A \\u0648\\u0642\\u062A \\u0644\\u0639\\u0631\\u0636 \\u0647\\u0630\\u0647 \\u0627\\u0644\\u0645\\u0633\\u0627\\u0639\\u062F\\u0629\",\n close: \"\\u0625\\u063A\\u0644\\u0627\\u0642\"\n};\nvar AnnotateToolbar = {\n modeGroup: \"\\u0627\\u0644\\u0648\\u0636\\u0639\",\n browse: \"\\u062A\\u0635\\u0641\\u062D\",\n annotate: \"\\u062A\\u0648\\u0636\\u064A\\u062D\",\n selectionGroup: \"\\u0627\\u0644\\u062F\\u0627\\u0641\\u0639\",\n clickGroup: \"\\u0627\\u0644\\u0646\\u0642\\u0631\",\n shapeGroup: \"\\u0627\\u0644\\u0634\\u0643\\u0644\",\n none: \"\\u0644\\u0627 \\u0634\\u064A\\u0621\",\n linking: \"\\u0645\\u0631\\u062C\\u0639\",\n highlighting: \"\\u062A\\u0645\\u064A\\u064A\\u0632\",\n assessing: \"\\u062A\\u0642\\u064A\\u064A\\u0645\",\n commenting: \"\\u062A\\u0639\\u0644\\u064A\\u0642\",\n tagging: \"\\u0639\\u0644\\u0627\\u0645\\u0629\",\n detail: \"\\u062A\\u0641\\u0635\\u064A\\u0644\",\n follow: \"\\u0645\\u062A\\u0627\\u0628\\u0639\\u0629\",\n deleting: \"\\u062D\\u0630\\u0641\",\n jsonld: \"JSON-LD\",\n rectangle: \"\\u0645\\u0633\\u062A\\u0637\\u064A\\u0644\",\n circle: \"\\u062F\\u0627\\u0626\\u0631\\u0629\",\n polygon: \"\\u0645\\u0636\\u0644\\u0639\"\n};\nvar CollapsibleResourceNavigation = {\n title: \"\\u0627\\u0644\\u062A\\u0646\\u0642\\u0644\",\n collapseSidebar: \"\\u0637\\u064A \\u0627\\u0644\\u0634\\u0631\\u064A\\u0637 \\u0627\\u0644\\u062C\\u0627\\u0646\\u0628\\u064A\",\n expandSidebar: \"\\u062A\\u0648\\u0633\\u064A\\u0639 \\u0627\\u0644\\u0634\\u0631\\u064A\\u0637 \\u0627\\u0644\\u062C\\u0627\\u0646\\u0628\\u064A\",\n dragToReorder: \"\\u0627\\u0633\\u062D\\u0628 \\u0644\\u0625\\u0639\\u0627\\u062F\\u0629 \\u0627\\u0644\\u062A\\u0631\\u062A\\u064A\\u0628\",\n dragToReorderDoc: \"\\u0627\\u0633\\u062D\\u0628 \\u0644\\u0625\\u0639\\u0627\\u062F\\u0629 \\u062A\\u0631\\u062A\\u064A\\u0628 {{name}}\",\n closeResource: \"\\u0625\\u063A\\u0644\\u0627\\u0642 \\u0627\\u0644\\u0645\\u0648\\u0631\\u062F\",\n dragInstructions: \"\\u0644\\u0625\\u0639\\u0627\\u062F\\u0629 \\u062A\\u0631\\u062A\\u064A\\u0628 \\u0627\\u0644\\u0645\\u0648\\u0627\\u0631\\u062F: \\u0627\\u0633\\u062A\\u062E\\u062F\\u0645 Tab \\u0644\\u0644\\u0627\\u0646\\u062A\\u0642\\u0627\\u0644 \\u0625\\u0644\\u0649 \\u0645\\u0648\\u0631\\u062F. \\u0627\\u0636\\u063A\\u0637 Alt+\\u0633\\u0647\\u0645 \\u0644\\u0623\\u0639\\u0644\\u0649 \\u0644\\u0644\\u062A\\u062D\\u0631\\u064A\\u0643 \\u0644\\u0623\\u0639\\u0644\\u0649 \\u0623\\u0648 Alt+\\u0633\\u0647\\u0645 \\u0644\\u0623\\u0633\\u0641\\u0644 \\u0644\\u0644\\u062A\\u062D\\u0631\\u064A\\u0643 \\u0644\\u0623\\u0633\\u0641\\u0644. \\u0644\\u0644\\u0633\\u062D\\u0628 \\u0648\\u0627\\u0644\\u0625\\u0641\\u0644\\u0627\\u062A: \\u0627\\u0636\\u063A\\u0637 \\u0639\\u0644\\u0649 \\u0634\\u0631\\u064A\\u0637 \\u0627\\u0644\\u0645\\u0633\\u0627\\u0641\\u0629 \\u0644\\u0627\\u0644\\u062A\\u0642\\u0627\\u0637 \\u0627\\u0644\\u0639\\u0646\\u0635\\u0631. \\u0627\\u0633\\u062A\\u062E\\u062F\\u0645 \\u0645\\u0641\\u0627\\u062A\\u064A\\u062D \\u0627\\u0644\\u0623\\u0633\\u0647\\u0645 \\u0644\\u062A\\u062D\\u0631\\u064A\\u0643\\u0647. \\u0627\\u0636\\u063A\\u0637 \\u0639\\u0644\\u0649 \\u0634\\u0631\\u064A\\u0637 \\u0627\\u0644\\u0645\\u0633\\u0627\\u0641\\u0629 \\u0645\\u0631\\u0629 \\u0623\\u062E\\u0631\\u0649 \\u0644\\u0644\\u0625\\u0641\\u0644\\u0627\\u062A.\"\n};\nvar ResourceViewer = {\n deleteConfirmationTitle: \"\\u062D\\u0630\\u0641 \\u0627\\u0644\\u062A\\u0639\\u0644\\u064A\\u0642 \\u0627\\u0644\\u062A\\u0648\\u0636\\u064A\\u062D\\u064A\",\n deleteConfirmationMessage: \"\\u0647\\u0644 \\u0623\\u0646\\u062A \\u0645\\u062A\\u0623\\u0643\\u062F \\u0623\\u0646\\u0643 \\u062A\\u0631\\u064A\\u062F \\u062D\\u0630\\u0641 \\u0647\\u0630\\u0627 \\u0627\\u0644\\u062A\\u0639\\u0644\\u064A\\u0642 \\u0627\\u0644\\u062A\\u0648\\u0636\\u064A\\u062D\\u064A\\u061F \\u0644\\u0627 \\u064A\\u0645\\u0643\\u0646 \\u0627\\u0644\\u062A\\u0631\\u0627\\u062C\\u0639 \\u0639\\u0646 \\u0647\\u0630\\u0627 \\u0627\\u0644\\u0625\\u062C\\u0631\\u0627\\u0621.\",\n deleteConfirmationCancel: \"\\u0625\\u0644\\u063A\\u0627\\u0621\",\n deleteConfirmationDelete: \"\\u062D\\u0630\\u0641\"\n};\nvar Settings = {\n title: \"\\u0627\\u0644\\u0625\\u0639\\u062F\\u0627\\u062F\\u0627\\u062A\",\n lineNumbers: \"\\u0623\\u0631\\u0642\\u0627\\u0645 \\u0627\\u0644\\u0623\\u0633\\u0637\\u0631\",\n lineNumbersVisible: \"\\u0645\\u0631\\u0626\\u064A\\u0629\",\n lineNumbersHidden: \"\\u0645\\u062E\\u0641\\u064A\\u0629\",\n theme: \"\\u0627\\u0644\\u0633\\u0645\\u0629\",\n themeLight: \"\\u0641\\u0627\\u062A\\u062D\",\n themeDark: \"\\u062F\\u0627\\u0643\\u0646\",\n themeSystem: \"\\u0627\\u0644\\u0646\\u0638\\u0627\\u0645\",\n themeSystemActive: \"\\u0627\\u0644\\u0646\\u0638\\u0627\\u0645 ({{mode}})\",\n themeModeActive: \"\\u0627\\u0633\\u062A\\u062E\\u062F\\u0627\\u0645 \\u0648\\u0636\\u0639 {{mode}}\",\n language: \"\\u0627\\u0644\\u0644\\u063A\\u0629\",\n languageHint: \"\\u062A\\u063A\\u064A\\u064A\\u0631 \\u0627\\u0644\\u0644\\u063A\\u0629 \\u0641\\u064A \\u0634\\u0631\\u064A\\u0637 \\u0627\\u0644\\u062A\\u0646\\u0642\\u0644 \\u0627\\u0644\\u0631\\u0626\\u064A\\u0633\\u064A\",\n languageChanging: \"\\u062C\\u0627\\u0631\\u064D \\u062A\\u063A\\u064A\\u064A\\u0631 \\u0627\\u0644\\u0644\\u063A\\u0629...\",\n hoverDelay: \"\\u062A\\u0623\\u062E\\u064A\\u0631 \\u0627\\u0644\\u062A\\u0645\\u0631\\u064A\\u0631\",\n hoverDelayFast: \"\\u0633\\u0631\\u064A\\u0639\",\n hoverDelaySlow: \"\\u0628\\u0637\\u064A\\u0621\",\n hoverDelayDescription: \"\\u062A\\u0623\\u062E\\u064A\\u0631 {{delay}} \\u0645\\u064A\\u0644\\u064A \\u062B\\u0627\\u0646\\u064A\\u0629 \\u0642\\u0628\\u0644 \\u0638\\u0647\\u0648\\u0631 \\u062A\\u0623\\u062B\\u064A\\u0631\\u0627\\u062A \\u0627\\u0644\\u062A\\u0645\\u0631\\u064A\\u0631\"\n};\nvar AnnotateView = {};\nvar ReferenceWizard = {\n gatherTitle: \"\\u0627\\u0644\\u0633\\u064A\\u0627\\u0642 \\u0627\\u0644\\u0645\\u064F\\u062C\\u0645\\u064E\\u0651\\u0639\",\n configureGenerationTitle: \"\\u062A\\u0643\\u0648\\u064A\\u0646 \\u0627\\u0644\\u062A\\u0648\\u0644\\u064A\\u062F\",\n configureSearchTitle: \"\\u0625\\u0639\\u062F\\u0627\\u062F\\u0627\\u062A \\u0627\\u0644\\u0628\\u062D\\u062B\",\n searchResultsTitle: \"\\u0646\\u062A\\u0627\\u0626\\u062C \\u0627\\u0644\\u0628\\u062D\\u062B\",\n sourceContextLabel: \"\\u0633\\u064A\\u0627\\u0642 \\u0627\\u0644\\u062A\\u0639\\u0644\\u064A\\u0642 \\u0627\\u0644\\u062A\\u0648\\u0636\\u064A\\u062D\\u064A \\u0641\\u064A \\u0627\\u0644\\u0645\\u0648\\u0631\\u062F\",\n connectionsLabel: \"\\u0627\\u0644\\u062A\\u0639\\u0644\\u064A\\u0642\\u0627\\u062A \\u0627\\u0644\\u062A\\u0648\\u0636\\u064A\\u062D\\u064A\\u0629 \\u0644\\u0644\\u0623\\u0642\\u0631\\u0627\\u0646\",\n citedByLabel: \"\\u0627\\u0644\\u0645\\u0648\\u0631\\u062F \\u0645\\u064F\\u0633\\u062A\\u0634\\u0647\\u062F \\u0628\\u0647 \\u0645\\u0646 \\u0642\\u0650\\u0628\\u0644\",\n userHintLabel: \"\\u062A\\u0644\\u0645\\u064A\\u062D\",\n userHintPlaceholder: \"\\u0635\\u0641 \\u0645\\u0627 \\u064A\\u0634\\u064A\\u0631 \\u0625\\u0644\\u064A\\u0647 \\u0647\\u0630\\u0627 \\u0627\\u0644\\u062A\\u0639\\u0644\\u064A\\u0642 \\u0627\\u0644\\u062A\\u0648\\u0636\\u064A\\u062D\\u064A...\",\n loadingContext: \"\\u062C\\u0627\\u0631\\u064D \\u062C\\u0645\\u0639 \\u0627\\u0644\\u0633\\u064A\\u0627\\u0642...\",\n failedContext: \"\\u0641\\u0634\\u0644 \\u0641\\u064A \\u062C\\u0645\\u0639 \\u0627\\u0644\\u0633\\u064A\\u0627\\u0642\",\n cancel: \"\\u0625\\u0644\\u063A\\u0627\\u0621\",\n generate: \"\\u062A\\u0648\\u0644\\u064A\\u062F\",\n compose: \"\\u062A\\u0623\\u0644\\u064A\\u0641\",\n resolutionStrategyLabel: \"\\u0627\\u0633\\u062A\\u0631\\u0627\\u062A\\u064A\\u062C\\u064A\\u0629 \\u0627\\u0644\\u062D\\u0644\",\n back: \"\\u0631\\u062C\\u0648\\u0639\",\n link: \"\\u0631\\u0627\\u0628\\u0637\",\n score: \"\\u062F\\u0631\\u062C\\u0629\",\n noResults: \"\\u0644\\u0645 \\u064A\\u062A\\u0645 \\u0627\\u0644\\u0639\\u062B\\u0648\\u0631 \\u0639\\u0644\\u0649 \\u0646\\u062A\\u0627\\u0626\\u062C\",\n resourceTitle: \"\\u0639\\u0646\\u0648\\u0627\\u0646 \\u0627\\u0644\\u0645\\u0648\\u0631\\u062F\",\n resourceTitlePlaceholder: \"\\u0623\\u062F\\u062E\\u0644 \\u0639\\u0646\\u0648\\u0627\\u0646 \\u0627\\u0644\\u0645\\u0648\\u0631\\u062F...\",\n additionalInstructions: \"\\u062A\\u0639\\u0644\\u064A\\u0645\\u0627\\u062A \\u0625\\u0636\\u0627\\u0641\\u064A\\u0629\",\n additionalInstructionsPlaceholder: \"\\u0623\\u062F\\u062E\\u0644 \\u062A\\u0639\\u0644\\u064A\\u0645\\u0627\\u062A \\u0625\\u0636\\u0627\\u0641\\u064A\\u0629...\",\n language: \"\\u0627\\u0644\\u0644\\u063A\\u0629\",\n languageHelp: \"\\u0644\\u063A\\u0629 \\u0627\\u0644\\u0645\\u062D\\u062A\\u0648\\u0649 \\u0627\\u0644\\u0645\\u064F\\u0648\\u0644\\u064E\\u0651\\u062F\",\n creativity: \"\\u0627\\u0644\\u0625\\u0628\\u062F\\u0627\\u0639\",\n creativityFocused: \"\\u0645\\u0631\\u0643\\u0651\\u0632\",\n creativityCreative: \"\\u0625\\u0628\\u062F\\u0627\\u0639\\u064A\",\n maxLength: \"\\u0627\\u0644\\u062D\\u062F \\u0627\\u0644\\u0623\\u0642\\u0635\\u0649 \\u0644\\u0644\\u0637\\u0648\\u0644\",\n maxLengthHelp: \"\\u0627\\u0644\\u0639\\u062F\\u062F \\u0627\\u0644\\u0623\\u0642\\u0635\\u0649 \\u0645\\u0646 \\u0627\\u0644\\u0631\\u0645\\u0648\\u0632\",\n maxResults: \"\\u0627\\u0644\\u062D\\u062F \\u0627\\u0644\\u0623\\u0642\\u0635\\u0649 \\u0644\\u0644\\u0646\\u062A\\u0627\\u0626\\u062C\",\n semanticScoring: \"\\u0627\\u0644\\u062A\\u0642\\u064A\\u064A\\u0645 \\u0627\\u0644\\u062F\\u0644\\u0627\\u0644\\u064A\",\n semanticScoringHelp: \"\\u0627\\u0633\\u062A\\u062E\\u062F\\u0627\\u0645 \\u0627\\u0644\\u0630\\u0643\\u0627\\u0621 \\u0627\\u0644\\u0627\\u0635\\u0637\\u0646\\u0627\\u0639\\u064A \\u0644\\u062A\\u0642\\u064A\\u064A\\u0645 \\u0627\\u0644\\u0646\\u062A\\u0627\\u0626\\u062C \\u062D\\u0633\\u0628 \\u0627\\u0644\\u0635\\u0644\\u0629 \\u0627\\u0644\\u062F\\u0644\\u0627\\u0644\\u064A\\u0629\",\n searching: \"\\u062C\\u0627\\u0631\\u064A \\u0627\\u0644\\u0628\\u062D\\u062B...\",\n search: \"\\u0628\\u062D\\u062B\"\n};\nvar History = {\n embeddingComputed: \"\\u062A\\u0645 \\u062D\\u0633\\u0627\\u0628 \\u0627\\u0644\\u062A\\u0636\\u0645\\u064A\\u0646\"\n};\nvar ar_default = {\n Toolbar,\n ResourceInfoPanel,\n CollaborationPanel,\n AnnotationHistory,\n CommentsPanel,\n HighlightPanel,\n AssessmentPanel,\n TaggingPanel,\n UnifiedAnnotationsPanel,\n StatisticsPanel,\n ReferencesPanel,\n KeyboardShortcuts,\n AnnotateToolbar,\n CollapsibleResourceNavigation,\n ResourceViewer,\n Settings,\n AnnotateView,\n ReferenceWizard,\n History\n};\nexport {\n AnnotateToolbar,\n AnnotateView,\n AnnotationHistory,\n AssessmentPanel,\n CollaborationPanel,\n CollapsibleResourceNavigation,\n CommentsPanel,\n HighlightPanel,\n History,\n KeyboardShortcuts,\n ReferenceWizard,\n ReferencesPanel,\n ResourceInfoPanel,\n ResourceViewer,\n Settings,\n StatisticsPanel,\n TaggingPanel,\n Toolbar,\n UnifiedAnnotationsPanel,\n ar_default as default\n};\n//# sourceMappingURL=ar-UUMMNQKF.mjs.map"],"names":["Toolbar","ResourceInfoPanel","CollaborationPanel","AnnotationHistory","CommentsPanel","HighlightPanel","AssessmentPanel","TaggingPanel","UnifiedAnnotationsPanel","StatisticsPanel","ReferencesPanel","KeyboardShortcuts","AnnotateToolbar","CollapsibleResourceNavigation","ResourceViewer","Settings","AnnotateView","ReferenceWizard","History","ar_default"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ var u={annotations:"টীকাসমূহ",history:"ইতিহাস",resourceInfo:"সম্পদের তথ্য",collaboration:"সহযোগিতা",userAccount:"ব্যবহারকারীর অ্যাকাউন্ট",settings:"সেটিংস",knowledgeBase:"জ্ঞান ভান্ডার"},B={title:"সম্পদের তথ্য",locale:"লোকেল",notSpecified:"নির্দিষ্ট করা হয়নি",entityTypeTags:"সত্তার ধরনের ট্যাগ",representation:"উপস্থাপনা",mediaType:"মিডিয়ার ধরন",byteSize:"আকার",clone:"ক্লোন",cloneDescription:"এই সম্পদের জন্য একটি শেয়ারযোগ্য ক্লোন লিঙ্ক তৈরি করুন",archive:"সংরক্ষণাগারভুক্ত করুন",archiveDescription:"এই সম্পদটিকে সংরক্ষণাগারভুক্ত অবস্থায় স্থানান্তর করুন",unarchive:"সংরক্ষণাগার থেকে পুনরুদ্ধার করুন",unarchiveDescription:"এই সম্পদটিকে সক্রিয় অবস্থায় পুনরুদ্ধার করুন",provenance:"উৎস ও উদ্ভব",createdAt:"তৈরির তারিখ",modifiedAt:"পরিবর্তনের তারিখ",creationMethod:"তৈরির পদ্ধতি",attributedTo:"সম্পাদককৃত",derivedFrom:"থেকে উৎপন্ন",generatedBy:"তৈরিকারক",storageUri:"সঞ্চয়স্থান"},A={title:"সহযোগিতা",connectionStatus:"সংযোগের অবস্থা",live:"সরাসরি",disconnected:"সংযোগ বিচ্ছিন্ন",events:"{{count}} ঘটনা",lastSync:"সর্বশেষ সিঙ্ক:",noActivity:"এখনো কোনো কার্যকলাপ নেই",justNow:"এইমাত্র",secondsAgo:"{{count}} সেকেন্ড আগে",minuteAgo:"১ মিনিট আগে",minutesAgo:"{{count}} মিনিট আগে",hourAgo:"১ ঘণ্টা আগে",hoursAgo:"{{count}} ঘণ্টা আগে",realtimeActive:"রিয়েল-টাইম আপডেট সক্রিয় আছে",reconnecting:"সার্ভারে পুনরায় সংযোগ হচ্ছে...",sharing:"শেয়ারিং",collaborationComingSoon:"সহযোগিতা বৈশিষ্ট্য শীঘ্রই আসছে"},C={history:"ইতিহাস",loading:"লোড হচ্ছে...",user:"ব্যবহারকারী",method:"পদ্ধতি",viewOriginal:"মূল দেখুন",viewAnnotation:"টীকা দেখুন: {{content}}",resourceCreated:"সম্পদ তৈরি হয়েছে",resourceCloned:"ক্লোন করা হয়েছে",resourceArchived:"সংরক্ষণাগারভুক্ত",resourceUnarchived:"সংরক্ষণাগার থেকে পুনরুদ্ধারকৃত",highlightAdded:"হাইলাইট যোগ করা হয়েছে",highlightRemoved:"হাইলাইট অপসারিত হয়েছে",referenceCreated:"রেফারেন্স তৈরি হয়েছে",referenceResolved:"রেফারেন্স সমাধান হয়েছে",referenceDeleted:"রেফারেন্স মুছে ফেলা হয়েছে",entitytagAdded:"ট্যাগ যোগ করা হয়েছে",entitytagRemoved:"ট্যাগ অপসারিত হয়েছে",assessmentAdded:"মূল্যায়ন যোগ করা হয়েছে",assessmentRemoved:"মূল্যায়ন অপসারিত হয়েছে",annotationAdded:"টীকা যোগ করা হয়েছে",annotationRemoved:"টীকা অপসারিত হয়েছে",annotationBodyUpdated:"টীকা আপডেট হয়েছে",jobEvent:"কাজের ঘটনা",justNow:"এইমাত্র",minutesAgo:"{{count}} মি. আগে",hoursAgo:"{{count}} ঘ. আগে",daysAgo:"{{count}} দি. আগে"},E={title:"মন্তব্যসমূহ",noComments:"এখনো কোনো মন্তব্য নেই। পাঠ্য নির্বাচন করুন এবং একটি যোগ করতে মন্তব্যে ক্লিক করুন।",commentPlaceholder:"এখানে আপনার মন্তব্য লিখুন...",save:"সংরক্ষণ করুন",cancel:"বাতিল করুন",edit:"সম্পাদনা করুন",annotateComments:"মন্তব্য টীকাকরণ",instructions:"নির্দেশনা",optional:"(ঐচ্ছিক)",instructionsPlaceholder:"যেমন, প্রযুক্তিগত পরিভাষায় মনোযোগ দিন...",annotate:"টীকাকরণ",annotating:"টীকাকরণ হচ্ছে...",toneLabel:"সুর",toneOptional:"(ঐচ্ছিক)",toneScholarly:"পাণ্ডিত্যপূর্ণ",toneExplanatory:"ব্যাখ্যামূলক",toneConversational:"কথোপকথনমূলক",toneTechnical:"প্রযুক্তিগত",densityLabel:"ঘনত্ব",densitySparse:"বিরল",densityDense:"ঘন",fragmentSelected:"অংশ নির্বাচিত",imageRegionSelected:"ছবির অঞ্চল নির্বাচিত",closeProgress:"বন্ধ করুন"},e={title:"হাইলাইটসমূহ",noHighlights:"এখনো কোনো হাইলাইট নেই। গুরুত্বপূর্ণ অনুচ্ছেদ খুঁজতে AI টীকাকরণ ব্যবহার করুন।",annotateHighlights:"হাইলাইট টীকাকরণ",instructions:"নির্দেশনা",optional:"(ঐচ্ছিক)",instructionsPlaceholder:"যেমন, মূল প্রযুক্তিগত ধারণাগুলিতে মনোযোগ দিন...",annotate:"টীকাকরণ",annotating:"টীকাকরণ হচ্ছে...",cancel:"বাতিল করুন",densityLabel:"ঘনত্ব",densitySparse:"বিরল",densityDense:"ঘন",closeProgress:"বন্ধ করুন"},F={title:"মূল্যায়নসমূহ",noAssessments:"এখনো কোনো মূল্যায়ন নেই। অনুচ্ছেদ মূল্যায়ন করতে AI টীকাকরণ ব্যবহার করুন।",assessmentPlaceholder:"এখানে আপনার মূল্যায়ন লিখুন...",save:"সংরক্ষণ করুন",cancel:"বাতিল করুন",annotateAssessments:"মূল্যায়ন টীকাকরণ",instructions:"নির্দেশনা",optional:"(ঐচ্ছিক)",instructionsPlaceholder:"যেমন, সঠিকতা এবং প্রমাণের জন্য দাবিগুলি মূল্যায়ন করুন...",annotate:"টীকাকরণ",annotating:"টীকাকরণ হচ্ছে...",toneLabel:"সুর",toneOptional:"(ঐচ্ছিক)",toneAnalytical:"বিশ্লেষণাত্মক",toneCritical:"সমালোচনামূলক",toneBalanced:"ভারসাম্যপূর্ণ",toneConstructive:"গঠনমূলক",densityLabel:"ঘনত্ব",densitySparse:"বিরল",densityDense:"ঘন",fragmentSelected:"অংশ নির্বাচিত",imageRegionSelected:"ছবির অঞ্চল নির্বাচিত",closeProgress:"বন্ধ করুন"},D={title:"ট্যাগসমূহ",noTags:"এখনো কোনো ট্যাগ নেই। কাঠামোগত ভূমিকা শনাক্ত করতে AI টীকাকরণ ব্যবহার করুন।",noSchemas:"এই জ্ঞান ভাণ্ডারের জন্য কোনো ট্যাগ স্কিমা নিবন্ধিত নেই। ট্যাগিং ব্যবহার করার আগে একজন KB প্রশাসককে কমপক্ষে একটি কাঠামোগত-বিশ্লেষণ স্কিমা নিবন্ধন করতে হবে (যেমন `register-tag-schemas` দক্ষতার মাধ্যমে)।",annotateTags:"ট্যাগ টীকাকরণ",selectSchema:"ফ্রেমওয়ার্ক নির্বাচন করুন",selectCategories:"বিভাগ নির্বাচন করুন",annotate:"টীকাকরণ",annotating:"টীকাকরণ হচ্ছে...",cancel:"বাতিল করুন",selectAll:"সমস্ত নির্বাচন করুন",deselectAll:"সমস্ত অনির্বাচন করুন",categoriesSelected:"{count, plural, =0 {কোনো বিভাগ নির্বাচিত নয়} =1 {১টি বিভাগ নির্বাচিত} other {# টি বিভাগ নির্বাচিত}}",createTagForSelection:"নির্বাচনের জন্য ট্যাগ তৈরি করুন",selectCategory:"বিভাগ নির্বাচন করুন",chooseCategory:"একটি বিভাগ বেছে নিন...",fragmentSelected:"অংশ নির্বাচিত",imageRegionSelected:"ছবির অঞ্চল নির্বাচিত"},t={title:"টীকাসমূহ",statistics:"পরিসংখ্যান",highlight:"হাইলাইটসমূহ",reference:"রেফারেন্সসমূহ",assessment:"মূল্যায়নসমূহ",comment:"মন্তব্যসমূহ",tag:"ট্যাগসমূহ"},n={title:"পরিসংখ্যান",highlights:"হাইলাইটসমূহ",comments:"মন্তব্যসমূহ",assessments:"মূল্যায়নসমূহ",tags:"ট্যাগসমূহ",references:"রেফারেন্সসমূহ",stub:"অসম্পূর্ণ",resolved:"সমাধানকৃত",entityTypes:"সত্তার ধরন"},a={title:"রেফারেন্সসমূহ",noReferences:"এখনো কোনো রেফারেন্স নেই। অন্যান্য সম্পদের রেফারেন্স তৈরি করতে পাঠ্য নির্বাচন করুন।",outgoingReferences:"বহির্গামী রেফারেন্স",incomingReferences:"আগত রেফারেন্স",noIncomingReferences:"কোনো আগত রেফারেন্স নেই",stub:"অসম্পূর্ণ রেফারেন্স (সংযুক্ত নয়)",resolved:"সমাধানকৃত রেফারেন্স (সংযুক্ত)",open:"খুলুন",unlink:"সংযোগ বিচ্ছিন্ন করুন",resolve:"রেফারেন্স সমাধান করুন",cancel:"বাতিল করুন",createReference:"রেফারেন্স তৈরি করুন",entityTypesOptional:"সত্তার ধরন (ঐচ্ছিক)",fragmentSelected:"অংশ নির্বাচিত",imageRegionSelected:"ছবির অঞ্চল নির্বাচিত",annotateReferences:"রেফারেন্স টীকাকরণ",selectEntityTypes:"সত্তার ধরন:",select:"নির্বাচন করুন",deselect:"অনির্বাচন করুন",noEntityTypes:"কোনো সত্তার ধরন উপলব্ধ নেই",typesSelected:"{count, plural, =1 {১টি ধরন নির্বাচিত} other {# টি ধরন নির্বাচিত}}",annotate:"টীকাকরণ",annotating:"টীকাকরণ হচ্ছে...",includeDescriptiveReferences:"বর্ণনামূলক রেফারেন্স অন্তর্ভুক্ত করুন",descriptiveReferencesTooltip:"নামের পাশাপাশি 'সিইও', 'প্রযুক্তি জায়ান্ট', 'পদার্থবিদ' এর মতো বাক্যাংশও খুঁজুন",annotationProgressTitle:"সত্তা রেফারেন্স টীকাকরণ হচ্ছে",cancelAnnotation:"টীকাকরণ বাতিল করুন",found:"{{count}} টি পাওয়া গেছে",complete:"টীকাকরণ সম্পূর্ণ!",failed:"টীকাকরণ ব্যর্থ",current:"বর্তমান: {{entityType}}",closeProgress:"বন্ধ করুন",loading:"লোড হচ্ছে...",loadingEllipsis:"লোড হচ্ছে...",untitledResource:"শিরোনামবিহীন সম্পদ",noText:"কোনো পাঠ্য নেই"},o={title:"কীবোর্ড শর্টকাট",closeDialog:"ডায়ালগ বন্ধ করুন",or:"অথবা",navigationTitle:"নেভিগেশন",navOpenSearch:"গ্লোবাল অনুসন্ধান খুলুন",navOpenSearchAlt:"গ্লোবাল অনুসন্ধান খুলুন (বিকল্প)",navCreateResource:"নতুন সম্পদ তৈরি করুন",navCloseOverlays:"সমস্ত ওভারলে বন্ধ করুন (দুইবার চাপুন)",navShowHelp:"কীবোর্ড শর্টকাট সাহায্য দেখান",sidebarTitle:"জ্ঞান সাইডবার",sidebarCollapse:"সাইডবার সংকুচিত করুন",sidebarExpand:"সাইডবার প্রসারিত করুন",sidebarPickup:"সম্পদ ট্যাব তুলে নিন (ফোকাসে থাকলে)",sidebarMove:"সম্পদ ট্যাব সরান (টানাটানির সময়)",sidebarDrop:"সম্পদ ট্যাব ছেড়ে দিন (টানাটানির সময়)",sidebarCancel:"টানাটানি কার্যক্রম বাতিল করুন",annotationsTitle:"সম্পদ টীকাসমূহ",annotHighlight:"টীকা থেকে হাইলাইট তৈরি করুন (সরাসরি)",annotReference:"টীকার জন্য রেফারেন্স পপআপ খুলুন",annotDelete:"ফোকাসকৃত টীকা মুছে ফেলুন",annotNavigate:"টীকাসমূহের মধ্যে নেভিগেট করুন",annotNavigateBack:"টীকাসমূহে পেছনে নেভিগেট করুন",listsTitle:"তালিকা এবং গ্রিড",listsFilterNav:"সত্তার ধরনের ফিল্টার নেভিগেট করুন",listsGridNav:"সম্পদ গ্রিড নেভিগেট করুন",listsJumpFirst:"প্রথম আইটেমে যান",listsJumpLast:"শেষ আইটেমে যান",searchModalTitle:"অনুসন্ধান মোডালে",searchNav:"অনুসন্ধান ফলাফল নেভিগেট করুন",searchSelect:"ফলাফল নির্বাচন করুন",searchClose:"অনুসন্ধান বন্ধ করুন",modalTitle:"মোডাল নিয়ন্ত্রণ",modalClose:"সক্রিয় মোডাল বন্ধ করুন",modalNavForward:"বোতামগুলির মধ্যে সামনে নেভিগেট করুন",modalNavBackward:"বোতামগুলির মধ্যে পেছনে নেভিগেট করুন",modalActivate:"ফোকাসকৃত বোতাম সক্রিয় করুন",accessibilityTitle:"অভিগম্যতা",a11ySkipLinks:"স্কিপ লিঙ্কে নেভিগেট করুন (পৃষ্ঠার শুরুতে থাকলে)",a11yFollowLink:"স্কিপ লিঙ্ক অনুসরণ করুন",macNote:"Mac কীবোর্ড শর্টকাট ব্যবহার হচ্ছে। ⌘ হলো Command কী।",windowsNote:"Windows/Linux কীবোর্ড শর্টকাট ব্যবহার হচ্ছে। Ctrl হলো Control কী।",footerHint:"এই সাহায্য দেখাতে যেকোনো সময় {{key}} চাপুন",close:"বন্ধ করুন"},i={modeGroup:"মোড",browse:"ব্রাউজ",annotate:"টীকাকরণ",selectionGroup:"উদ্দেশ্য",clickGroup:"ক্লিক",shapeGroup:"আকৃতি",none:"কিছু নয়",linking:"রেফারেন্স",highlighting:"হাইলাইট",assessing:"মূল্যায়ন",commenting:"মন্তব্য",tagging:"ট্যাগ",detail:"বিস্তারিত",follow:"অনুসরণ",deleting:"মুছে ফেলুন",jsonld:"JSON-LD",rectangle:"আয়তক্ষেত্র",circle:"বৃত্ত",polygon:"বহুভুজ"},s={title:"নেভিগেশন",collapseSidebar:"সাইডবার সংকুচিত করুন",expandSidebar:"সাইডবার প্রসারিত করুন",dragToReorder:"পুনর্বিন্যাস করতে টানুন",dragToReorderDoc:"{{name}} পুনর্বিন্যাস করতে টানুন",closeResource:"সম্পদ বন্ধ করুন",dragInstructions:"সম্পদ পুনর্বিন্যাস করতে: একটি সম্পদে নেভিগেট করতে Tab ব্যবহার করুন। উপরে যেতে Alt+উপরের তীর বা নিচে যেতে Alt+নিচের তীর চাপুন। টানা এবং ছাড়ার জন্য: আইটেম তুলে নিতে স্পেসবার চাপুন। সরাতে তীর কী ব্যবহার করুন। ছেড়ে দিতে আবার স্পেসবার চাপুন।"},l={deleteConfirmationTitle:"টীকা মুছে ফেলুন",deleteConfirmationMessage:"আপনি কি নিশ্চিতভাবে এই টীকাটি মুছে ফেলতে চান? এই কাজটি পূর্বাবস্থায় ফেরানো যাবে না।",deleteConfirmationCancel:"বাতিল করুন",deleteConfirmationDelete:"মুছে ফেলুন"},r={title:"সেটিংস",lineNumbers:"লাইন নম্বর",lineNumbersVisible:"দৃশ্যমান",lineNumbersHidden:"লুকানো",theme:"থিম",themeLight:"হালকা",themeDark:"গাঢ়",themeSystem:"সিস্টেম",themeSystemActive:"সিস্টেম ({{mode}})",themeModeActive:"{{mode}} মোড ব্যবহার হচ্ছে",language:"ভাষা",languageHint:"প্রধান নেভিগেশনে ভাষা পরিবর্তন করুন",languageChanging:"ভাষা পরিবর্তন হচ্ছে...",hoverDelay:"হোভার বিলম্ব",hoverDelayFast:"দ্রুত",hoverDelaySlow:"ধীর",hoverDelayDescription:"হোভার প্রভাব প্রদর্শনের আগে {{delay}}মি.সে. বিলম্ব"},c={},d={gatherTitle:"সংগৃহীত প্রসঙ্গ",configureGenerationTitle:"জেনারেশন কনফিগার করুন",configureSearchTitle:"অনুসন্ধান কনফিগার করুন",searchResultsTitle:"অনুসন্ধান ফলাফল",sourceContextLabel:"সম্পদে টীকার প্রসঙ্গ",connectionsLabel:"সমকক্ষ টীকাসমূহ",citedByLabel:"সম্পদ উদ্ধৃতকারী",userHintLabel:"ইঙ্গিত",userHintPlaceholder:"এই টীকাটি কী বোঝায় তা বর্ণনা করুন...",loadingContext:"প্রসঙ্গ সংগ্রহ হচ্ছে...",failedContext:"প্রসঙ্গ সংগ্রহ ব্যর্থ",cancel:"বাতিল করুন",generate:"তৈরি করুন",compose:"রচনা করুন",resolutionStrategyLabel:"রেজোলিউশন কৌশল",back:"পিছনে",link:"লিঙ্ক",score:"স্কোর",noResults:"কোনো ফলাফল পাওয়া যায়নি",resourceTitle:"সম্পদের শিরোনাম",resourceTitlePlaceholder:"সম্পদের শিরোনাম লিখুন...",additionalInstructions:"অতিরিক্ত নির্দেশনা",additionalInstructionsPlaceholder:"অতিরিক্ত নির্দেশনা লিখুন...",language:"ভাষা",languageHelp:"তৈরি করা বিষয়বস্তুর ভাষা",creativity:"সৃজনশীলতা",creativityFocused:"কেন্দ্রীভূত",creativityCreative:"সৃজনশীল",maxLength:"সর্বোচ্চ দৈর্ঘ্য",maxLengthHelp:"সর্বোচ্চ টোকেন সংখ্যা",maxResults:"সর্বোচ্চ ফলাফল",semanticScoring:"অর্থগত স্কোরিং",semanticScoringHelp:"অর্থগত প্রাসঙ্গিকতা অনুযায়ী ফলাফল স্কোর করতে AI ব্যবহার করুন",searching:"অনুসন্ধান করা হচ্ছে...",search:"অনুসন্ধান"},g={embeddingComputed:"এমবেডিং গণনা করা হয়েছে"},m={Toolbar:u,ResourceInfoPanel:B,CollaborationPanel:A,AnnotationHistory:C,CommentsPanel:E,HighlightPanel:e,AssessmentPanel:F,TaggingPanel:D,UnifiedAnnotationsPanel:t,StatisticsPanel:n,ReferencesPanel:a,KeyboardShortcuts:o,AnnotateToolbar:i,CollapsibleResourceNavigation:s,ResourceViewer:l,Settings:r,AnnotateView:c,ReferenceWizard:d,History:g};export{i as AnnotateToolbar,c as AnnotateView,C as AnnotationHistory,F as AssessmentPanel,A as CollaborationPanel,s as CollapsibleResourceNavigation,E as CommentsPanel,e as HighlightPanel,g as History,o as KeyboardShortcuts,d as ReferenceWizard,a as ReferencesPanel,B as ResourceInfoPanel,l as ResourceViewer,r as Settings,n as StatisticsPanel,D as TaggingPanel,u as Toolbar,t as UnifiedAnnotationsPanel,m as default};
2
+ //# sourceMappingURL=bn-AL5BJSR3-Dz19S8vN.js.map