@semiont/cli 0.5.5 → 0.5.7

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 (293) hide show
  1. package/README.md +1 -1
  2. package/dist/cli.mjs +20866 -10042
  3. package/dist/dashboard/dashboard.css +1 -1
  4. package/dist/dashboard/dashboard.css.map +3 -3
  5. package/dist/dashboard/dashboard.js +1 -1
  6. package/dist/dashboard/dashboard.js.map +1 -1
  7. package/dist/frontend/dist/assets/{ArrowsRightLeftIcon-eQUXtsyS.js → ArrowsRightLeftIcon-C7eE1lVN.js} +2 -2
  8. package/dist/frontend/dist/assets/{ArrowsRightLeftIcon-eQUXtsyS.js.map → ArrowsRightLeftIcon-C7eE1lVN.js.map} +1 -1
  9. package/dist/frontend/dist/assets/{ChevronLeftIcon-QLs1eT1j.js → ChevronLeftIcon-BItMAxjy.js} +2 -2
  10. package/dist/frontend/dist/assets/{ChevronLeftIcon-QLs1eT1j.js.map → ChevronLeftIcon-BItMAxjy.js.map} +1 -1
  11. package/dist/frontend/dist/assets/{CommandLineIcon-BEeeWFhQ.js → CommandLineIcon-BxjxKXBi.js} +2 -2
  12. package/dist/frontend/dist/assets/{CommandLineIcon-BEeeWFhQ.js.map → CommandLineIcon-BxjxKXBi.js.map} +1 -1
  13. package/dist/frontend/dist/assets/CookiePreferences-CQa2Mwuc.js +2 -0
  14. package/dist/frontend/dist/assets/CookiePreferences-CQa2Mwuc.js.map +1 -0
  15. package/dist/frontend/dist/assets/KeyboardShortcutsContext-4ZRypoQr.js +2 -0
  16. package/dist/frontend/dist/assets/KeyboardShortcutsContext-4ZRypoQr.js.map +1 -0
  17. package/dist/frontend/dist/assets/PdfAnnotationCanvas.client-NIMALXNZ-QiAmdknm.js +2 -0
  18. package/dist/frontend/dist/assets/PdfAnnotationCanvas.client-NIMALXNZ-QiAmdknm.js.map +1 -0
  19. package/dist/frontend/dist/assets/ToolbarPanels-BA4fpTjN.js +2 -0
  20. package/dist/frontend/dist/assets/ToolbarPanels-BA4fpTjN.js.map +1 -0
  21. package/dist/frontend/dist/assets/{XMarkIcon-CddZGiiz.js → XMarkIcon-D1vU4NLc.js} +2 -2
  22. package/dist/frontend/dist/assets/{XMarkIcon-CddZGiiz.js.map → XMarkIcon-D1vU4NLc.js.map} +1 -1
  23. package/dist/frontend/dist/assets/ar-SONK6MON-Bg_g0nKu.js +2 -0
  24. package/dist/frontend/dist/assets/ar-SONK6MON-Bg_g0nKu.js.map +1 -0
  25. package/dist/frontend/dist/assets/bn-ZKPRITNG-D3W-5Rrq.js +2 -0
  26. package/dist/frontend/dist/assets/bn-ZKPRITNG-D3W-5Rrq.js.map +1 -0
  27. package/dist/frontend/dist/assets/client-C5NXgCxS.js +2 -0
  28. package/dist/frontend/dist/assets/client-C5NXgCxS.js.map +1 -0
  29. package/dist/frontend/dist/assets/client-C8P-NF_R.js +2 -0
  30. package/dist/frontend/dist/assets/{client-myF3ozNf.js.map → client-C8P-NF_R.js.map} +1 -1
  31. package/dist/frontend/dist/assets/client-DdxBbstZ.js +2 -0
  32. package/dist/frontend/dist/assets/client-DdxBbstZ.js.map +1 -0
  33. package/dist/frontend/dist/assets/client-xSsFQAGt.js +2 -0
  34. package/dist/frontend/dist/assets/{client-C54EWgTc.js.map → client-xSsFQAGt.js.map} +1 -1
  35. package/dist/frontend/dist/assets/cs-LPXQ7NHQ-2LzMsUs5.js +2 -0
  36. package/dist/frontend/dist/assets/cs-LPXQ7NHQ-2LzMsUs5.js.map +1 -0
  37. package/dist/frontend/dist/assets/da-6TKY7MCY-DyKRptR2.js +2 -0
  38. package/dist/frontend/dist/assets/da-6TKY7MCY-DyKRptR2.js.map +1 -0
  39. package/dist/frontend/dist/assets/de-C3GNII74-DuEZ0oQs.js +2 -0
  40. package/dist/frontend/dist/assets/de-C3GNII74-DuEZ0oQs.js.map +1 -0
  41. package/dist/frontend/dist/assets/el-UBCXQDJ7-BfaVdiXe.js +2 -0
  42. package/dist/frontend/dist/assets/el-UBCXQDJ7-BfaVdiXe.js.map +1 -0
  43. package/dist/frontend/dist/assets/en-L45VK7BS-BREpSrvO.js +1 -0
  44. package/dist/frontend/dist/assets/es-BQ23TRI7-BOyWYGWS.js +2 -0
  45. package/dist/frontend/dist/assets/es-BQ23TRI7-BOyWYGWS.js.map +1 -0
  46. package/dist/frontend/dist/assets/fa-AFTBZB77-D2lXkg8T.js +2 -0
  47. package/dist/frontend/dist/assets/fa-AFTBZB77-D2lXkg8T.js.map +1 -0
  48. package/dist/frontend/dist/assets/fi-WOYNLZC2-cxycD0z_.js +2 -0
  49. package/dist/frontend/dist/assets/fi-WOYNLZC2-cxycD0z_.js.map +1 -0
  50. package/dist/frontend/dist/assets/fr-NDSMIFJM-BAn0-4x3.js +2 -0
  51. package/dist/frontend/dist/assets/fr-NDSMIFJM-BAn0-4x3.js.map +1 -0
  52. package/dist/frontend/dist/assets/he-VJXVRDOY-CO99w2C-.js +2 -0
  53. package/dist/frontend/dist/assets/he-VJXVRDOY-CO99w2C-.js.map +1 -0
  54. package/dist/frontend/dist/assets/hi-BF6PHIE2-B-glDmjd.js +2 -0
  55. package/dist/frontend/dist/assets/hi-BF6PHIE2-B-glDmjd.js.map +1 -0
  56. package/dist/frontend/dist/assets/i18n-X0oNIUcF.js +2 -0
  57. package/dist/frontend/dist/assets/i18n-X0oNIUcF.js.map +1 -0
  58. package/dist/frontend/dist/assets/id-GXG5QCZY-pIWqz5D1.js +2 -0
  59. package/dist/frontend/dist/assets/id-GXG5QCZY-pIWqz5D1.js.map +1 -0
  60. package/dist/frontend/dist/assets/index-C6By-chD.css +1 -0
  61. package/dist/frontend/dist/assets/index-DQSZfVR2.js +141 -0
  62. package/dist/frontend/dist/assets/index-DQSZfVR2.js.map +1 -0
  63. package/dist/frontend/dist/assets/it-XKHHCBAF-BIVnRKJx.js +2 -0
  64. package/dist/frontend/dist/assets/it-XKHHCBAF-BIVnRKJx.js.map +1 -0
  65. package/dist/frontend/dist/assets/ja-TX7VM4XD-C8mqh5If.js +2 -0
  66. package/dist/frontend/dist/assets/ja-TX7VM4XD-C8mqh5If.js.map +1 -0
  67. package/dist/frontend/dist/assets/ko-DNC7EQ7J-GlrkT0k0.js +2 -0
  68. package/dist/frontend/dist/assets/ko-DNC7EQ7J-GlrkT0k0.js.map +1 -0
  69. package/dist/frontend/dist/assets/layout-2BOrZAoT.js +2 -0
  70. package/dist/frontend/dist/assets/{layout-WUjhuEFR.js.map → layout-2BOrZAoT.js.map} +1 -1
  71. package/dist/frontend/dist/assets/layout-5FLtbdhm.js +2 -0
  72. package/dist/frontend/dist/assets/layout-5FLtbdhm.js.map +1 -0
  73. package/dist/frontend/dist/assets/layout-CDH3Am1z.js +2 -0
  74. package/dist/frontend/dist/assets/layout-CDH3Am1z.js.map +1 -0
  75. package/dist/frontend/dist/assets/layout-DzdDsd3P.js +2 -0
  76. package/dist/frontend/dist/assets/{layout-DGddEk2F.js.map → layout-DzdDsd3P.js.map} +1 -1
  77. package/dist/frontend/dist/assets/ms-POZGBKPH-CgcHbUoC.js +2 -0
  78. package/dist/frontend/dist/assets/ms-POZGBKPH-CgcHbUoC.js.map +1 -0
  79. package/dist/frontend/dist/assets/nl-IRMTKI7Z-DCK_99k9.js +2 -0
  80. package/dist/frontend/dist/assets/nl-IRMTKI7Z-DCK_99k9.js.map +1 -0
  81. package/dist/frontend/dist/assets/no-ZUDJA4S6-DAsTyX8P.js +2 -0
  82. package/dist/frontend/dist/assets/no-ZUDJA4S6-DAsTyX8P.js.map +1 -0
  83. package/dist/frontend/dist/assets/not-found-BMdN8mPs.js +2 -0
  84. package/dist/frontend/dist/assets/not-found-BMdN8mPs.js.map +1 -0
  85. package/dist/frontend/dist/assets/page-B3PCCUTg.js +2 -0
  86. package/dist/frontend/dist/assets/{page-DGGXDS8h.js.map → page-B3PCCUTg.js.map} +1 -1
  87. package/dist/frontend/dist/assets/page-BxQNNFfW.js +2 -0
  88. package/dist/frontend/dist/assets/{page-D3vt40lt.js.map → page-BxQNNFfW.js.map} +1 -1
  89. package/dist/frontend/dist/assets/page-BzpGsQbe.js +2 -0
  90. package/dist/frontend/dist/assets/{page-CoU19X7P.js.map → page-BzpGsQbe.js.map} +1 -1
  91. package/dist/frontend/dist/assets/page-C3vf9APn.js +2 -0
  92. package/dist/frontend/dist/assets/{page-V3GB89Xa.js.map → page-C3vf9APn.js.map} +1 -1
  93. package/dist/frontend/dist/assets/page-C7lI-Rdx.js +2 -0
  94. package/dist/frontend/dist/assets/{page-D9VjQ4Ci.js.map → page-C7lI-Rdx.js.map} +1 -1
  95. package/dist/frontend/dist/assets/page-CHEBd0hh.js +2 -0
  96. package/dist/frontend/dist/assets/{page-BXDwcCLI.js.map → page-CHEBd0hh.js.map} +1 -1
  97. package/dist/frontend/dist/assets/page-CqeyagPz.js +2 -0
  98. package/dist/frontend/dist/assets/{page-A0bP7R9_.js.map → page-CqeyagPz.js.map} +1 -1
  99. package/dist/frontend/dist/assets/page-Cx6TDy84.js +2 -0
  100. package/dist/frontend/dist/assets/page-Cx6TDy84.js.map +1 -0
  101. package/dist/frontend/dist/assets/page-D9v0O50E.js +2 -0
  102. package/dist/frontend/dist/assets/page-D9v0O50E.js.map +1 -0
  103. package/dist/frontend/dist/assets/page-DB8nPCSg.js +2 -0
  104. package/dist/frontend/dist/assets/page-DB8nPCSg.js.map +1 -0
  105. package/dist/frontend/dist/assets/page-DFTvfk1t.js +2 -0
  106. package/dist/frontend/dist/assets/{page-Db8QDovL.js.map → page-DFTvfk1t.js.map} +1 -1
  107. package/dist/frontend/dist/assets/page-D_ZFOdXa.js +2 -0
  108. package/dist/frontend/dist/assets/{page-3_orURnj.js.map → page-D_ZFOdXa.js.map} +1 -1
  109. package/dist/frontend/dist/assets/page-DiM4fD5f.js +2 -0
  110. package/dist/frontend/dist/assets/{page-ClOO6d4L.js.map → page-DiM4fD5f.js.map} +1 -1
  111. package/dist/frontend/dist/assets/{page-DWTT4pP82.js → page-DwNbxb_72.js} +2 -2
  112. package/dist/frontend/dist/assets/page-DwNbxb_72.js.map +1 -0
  113. package/dist/frontend/dist/assets/page-SMoiAlZl.js +2 -0
  114. package/dist/frontend/dist/assets/{page-vxSCIznX.js.map → page-SMoiAlZl.js.map} +1 -1
  115. package/dist/frontend/dist/assets/page-lhTg_rP4.js +8 -0
  116. package/dist/frontend/dist/assets/page-lhTg_rP4.js.map +1 -0
  117. package/dist/frontend/dist/assets/{page-Crea7MLa.js → page-q6M0EXCY.js} +2 -2
  118. package/dist/frontend/dist/assets/page-q6M0EXCY.js.map +1 -0
  119. package/dist/frontend/dist/assets/page-vslu8nIa.js +2 -0
  120. package/dist/frontend/dist/assets/page-vslu8nIa.js.map +1 -0
  121. package/dist/frontend/dist/assets/pl-2NGAXL5U-CMMCajpA.js +2 -0
  122. package/dist/frontend/dist/assets/pl-2NGAXL5U-CMMCajpA.js.map +1 -0
  123. package/dist/frontend/dist/assets/pt-ABMCXZUM-69xFHtfx.js +2 -0
  124. package/dist/frontend/dist/assets/pt-ABMCXZUM-69xFHtfx.js.map +1 -0
  125. package/dist/frontend/dist/assets/ro-VOJP6O5X-DMzHGaHE.js +2 -0
  126. package/dist/frontend/dist/assets/ro-VOJP6O5X-DMzHGaHE.js.map +1 -0
  127. package/dist/frontend/dist/assets/{routing-CcetIVef.js → routing-1L7p7DNA.js} +2 -2
  128. package/dist/frontend/dist/assets/{routing-CcetIVef.js.map → routing-1L7p7DNA.js.map} +1 -1
  129. package/dist/frontend/dist/assets/routing-BcOlOpMI.js +2 -0
  130. package/dist/frontend/dist/assets/{routing-Dqgz2rV4.js.map → routing-BcOlOpMI.js.map} +1 -1
  131. package/dist/frontend/dist/assets/sv-4HVFIIE5-BLvpn4fZ.js +2 -0
  132. package/dist/frontend/dist/assets/sv-4HVFIIE5-BLvpn4fZ.js.map +1 -0
  133. package/dist/frontend/dist/assets/th-IFPZP3HQ-Bgb4bUeg.js +2 -0
  134. package/dist/frontend/dist/assets/th-IFPZP3HQ-Bgb4bUeg.js.map +1 -0
  135. package/dist/frontend/dist/assets/tr-2GYEAMJ4-DfAWOqqm.js +2 -0
  136. package/dist/frontend/dist/assets/tr-2GYEAMJ4-DfAWOqqm.js.map +1 -0
  137. package/dist/frontend/dist/assets/uk-XCJBVLLD-Cr0S5UE-.js +2 -0
  138. package/dist/frontend/dist/assets/uk-XCJBVLLD-Cr0S5UE-.js.map +1 -0
  139. package/dist/frontend/dist/assets/{vendor-0HjOURbh.js → vendor-Bd-5Ya9C.js} +5 -5
  140. package/dist/frontend/dist/assets/{vendor-0HjOURbh.js.map → vendor-Bd-5Ya9C.js.map} +1 -1
  141. package/dist/frontend/dist/assets/vi-4FR7CB2F-CLx4LvVe.js +2 -0
  142. package/dist/frontend/dist/assets/vi-4FR7CB2F-CLx4LvVe.js.map +1 -0
  143. package/dist/frontend/dist/assets/web-DWMjUWgV.js +2 -0
  144. package/dist/frontend/dist/assets/web-DWMjUWgV.js.map +1 -0
  145. package/dist/frontend/dist/assets/zh-NSKFOINB-BpcLGXRm.js +2 -0
  146. package/dist/frontend/dist/assets/zh-NSKFOINB-BpcLGXRm.js.map +1 -0
  147. package/dist/frontend/dist/index.html +5 -7
  148. package/dist/frontend/dist/messages/ar.json +48 -58
  149. package/dist/frontend/dist/messages/bn.json +48 -58
  150. package/dist/frontend/dist/messages/cs.json +46 -56
  151. package/dist/frontend/dist/messages/da.json +50 -60
  152. package/dist/frontend/dist/messages/de.json +45 -55
  153. package/dist/frontend/dist/messages/el.json +48 -58
  154. package/dist/frontend/dist/messages/en.json +9 -17
  155. package/dist/frontend/dist/messages/es.json +56 -66
  156. package/dist/frontend/dist/messages/fa.json +48 -58
  157. package/dist/frontend/dist/messages/fi.json +48 -58
  158. package/dist/frontend/dist/messages/fr.json +48 -58
  159. package/dist/frontend/dist/messages/he.json +48 -58
  160. package/dist/frontend/dist/messages/hi.json +48 -58
  161. package/dist/frontend/dist/messages/id.json +48 -58
  162. package/dist/frontend/dist/messages/it.json +48 -58
  163. package/dist/frontend/dist/messages/ja.json +48 -58
  164. package/dist/frontend/dist/messages/ko.json +48 -58
  165. package/dist/frontend/dist/messages/ms.json +46 -56
  166. package/dist/frontend/dist/messages/nl.json +47 -57
  167. package/dist/frontend/dist/messages/no.json +66 -76
  168. package/dist/frontend/dist/messages/pl.json +47 -57
  169. package/dist/frontend/dist/messages/pt.json +399 -409
  170. package/dist/frontend/dist/messages/ro.json +46 -56
  171. package/dist/frontend/dist/messages/sv.json +88 -98
  172. package/dist/frontend/dist/messages/th.json +48 -58
  173. package/dist/frontend/dist/messages/tr.json +48 -58
  174. package/dist/frontend/dist/messages/uk.json +48 -58
  175. package/dist/frontend/dist/messages/vi.json +48 -58
  176. package/dist/frontend/dist/messages/zh.json +48 -58
  177. package/dist/frontend/package.json +1 -1
  178. package/package.json +34 -33
  179. package/dist/frontend/dist/assets/CookiePreferences-Vt05bBY7.js +0 -2
  180. package/dist/frontend/dist/assets/CookiePreferences-Vt05bBY7.js.map +0 -1
  181. package/dist/frontend/dist/assets/KeyboardShortcutsContext-CK7NFEft.js +0 -2
  182. package/dist/frontend/dist/assets/KeyboardShortcutsContext-CK7NFEft.js.map +0 -1
  183. package/dist/frontend/dist/assets/PdfAnnotationCanvas.client-CN3C3S55-DZ2osbg-.js +0 -2
  184. package/dist/frontend/dist/assets/PdfAnnotationCanvas.client-CN3C3S55-DZ2osbg-.js.map +0 -1
  185. package/dist/frontend/dist/assets/ToolbarPanels-wzZqAqCQ.js +0 -2
  186. package/dist/frontend/dist/assets/ToolbarPanels-wzZqAqCQ.js.map +0 -1
  187. package/dist/frontend/dist/assets/ar-U2EXWUMQ-Ds9Pt3_I.js +0 -2
  188. package/dist/frontend/dist/assets/ar-U2EXWUMQ-Ds9Pt3_I.js.map +0 -1
  189. package/dist/frontend/dist/assets/bn-DRJGV772-BUYrNEk8.js +0 -2
  190. package/dist/frontend/dist/assets/bn-DRJGV772-BUYrNEk8.js.map +0 -1
  191. package/dist/frontend/dist/assets/chunk-GERSK2DY-D2Q8aVeK.js +0 -2
  192. package/dist/frontend/dist/assets/chunk-GERSK2DY-D2Q8aVeK.js.map +0 -1
  193. package/dist/frontend/dist/assets/chunk-K6BJDL2I-CcwOtHVB.js +0 -2
  194. package/dist/frontend/dist/assets/chunk-K6BJDL2I-CcwOtHVB.js.map +0 -1
  195. package/dist/frontend/dist/assets/client-C54EWgTc.js +0 -2
  196. package/dist/frontend/dist/assets/client-D5yyxFbt.js +0 -2
  197. package/dist/frontend/dist/assets/client-D5yyxFbt.js.map +0 -1
  198. package/dist/frontend/dist/assets/client-DgzjF497.js +0 -2
  199. package/dist/frontend/dist/assets/client-DgzjF497.js.map +0 -1
  200. package/dist/frontend/dist/assets/client-myF3ozNf.js +0 -2
  201. package/dist/frontend/dist/assets/cs-PTWDM23V-DfbMzFEw.js +0 -2
  202. package/dist/frontend/dist/assets/cs-PTWDM23V-DfbMzFEw.js.map +0 -1
  203. package/dist/frontend/dist/assets/da-KSNIKYSS-BMtq201F.js +0 -2
  204. package/dist/frontend/dist/assets/da-KSNIKYSS-BMtq201F.js.map +0 -1
  205. package/dist/frontend/dist/assets/de-F2XBEWFY-ChjoYEH0.js +0 -2
  206. package/dist/frontend/dist/assets/de-F2XBEWFY-ChjoYEH0.js.map +0 -1
  207. package/dist/frontend/dist/assets/el-DLD2GWAP-ClFunpNV.js +0 -2
  208. package/dist/frontend/dist/assets/el-DLD2GWAP-ClFunpNV.js.map +0 -1
  209. package/dist/frontend/dist/assets/en-L45VK7BS-C9ArL-E1.js +0 -1
  210. package/dist/frontend/dist/assets/es-WLPYWGB5-C53vYarX.js +0 -2
  211. package/dist/frontend/dist/assets/es-WLPYWGB5-C53vYarX.js.map +0 -1
  212. package/dist/frontend/dist/assets/fa-BAXHSDZG-DJia4XF_.js +0 -2
  213. package/dist/frontend/dist/assets/fa-BAXHSDZG-DJia4XF_.js.map +0 -1
  214. package/dist/frontend/dist/assets/fi-FCHSYVOT-D2etzjyC.js +0 -2
  215. package/dist/frontend/dist/assets/fi-FCHSYVOT-D2etzjyC.js.map +0 -1
  216. package/dist/frontend/dist/assets/fr-3UERBSL6-Bi8o9u26.js +0 -2
  217. package/dist/frontend/dist/assets/fr-3UERBSL6-Bi8o9u26.js.map +0 -1
  218. package/dist/frontend/dist/assets/he-F6F3FV2K-CwGkucCK.js +0 -2
  219. package/dist/frontend/dist/assets/he-F6F3FV2K-CwGkucCK.js.map +0 -1
  220. package/dist/frontend/dist/assets/hi-4BK6IK7Q-fsSpyO-Z.js +0 -2
  221. package/dist/frontend/dist/assets/hi-4BK6IK7Q-fsSpyO-Z.js.map +0 -1
  222. package/dist/frontend/dist/assets/i18n-B53Yefbh.js +0 -2
  223. package/dist/frontend/dist/assets/i18n-B53Yefbh.js.map +0 -1
  224. package/dist/frontend/dist/assets/id-7ECCWP3J-MhvUbYNG.js +0 -2
  225. package/dist/frontend/dist/assets/id-7ECCWP3J-MhvUbYNG.js.map +0 -1
  226. package/dist/frontend/dist/assets/index-95t-6XJg.css +0 -1
  227. package/dist/frontend/dist/assets/index-DojEUBpq.js +0 -141
  228. package/dist/frontend/dist/assets/index-DojEUBpq.js.map +0 -1
  229. package/dist/frontend/dist/assets/it-234Z6XK6-n-8MkFtz.js +0 -2
  230. package/dist/frontend/dist/assets/it-234Z6XK6-n-8MkFtz.js.map +0 -1
  231. package/dist/frontend/dist/assets/ja-PJWQI4OQ-CbrcVSYZ.js +0 -2
  232. package/dist/frontend/dist/assets/ja-PJWQI4OQ-CbrcVSYZ.js.map +0 -1
  233. package/dist/frontend/dist/assets/ko-APUEW2RS-CLubHAbf.js +0 -2
  234. package/dist/frontend/dist/assets/ko-APUEW2RS-CLubHAbf.js.map +0 -1
  235. package/dist/frontend/dist/assets/layout-CpxxVgZl.js +0 -2
  236. package/dist/frontend/dist/assets/layout-CpxxVgZl.js.map +0 -1
  237. package/dist/frontend/dist/assets/layout-DGddEk2F.js +0 -2
  238. package/dist/frontend/dist/assets/layout-WUjhuEFR.js +0 -2
  239. package/dist/frontend/dist/assets/layout-osn4jTJF.js +0 -2
  240. package/dist/frontend/dist/assets/layout-osn4jTJF.js.map +0 -1
  241. package/dist/frontend/dist/assets/ms-PJBZWZWD-Bu45eJYe.js +0 -2
  242. package/dist/frontend/dist/assets/ms-PJBZWZWD-Bu45eJYe.js.map +0 -1
  243. package/dist/frontend/dist/assets/nl-L4C3ZBCU-bLU3oN_N.js +0 -2
  244. package/dist/frontend/dist/assets/nl-L4C3ZBCU-bLU3oN_N.js.map +0 -1
  245. package/dist/frontend/dist/assets/no-QE5N5KNG-BCG75Nm1.js +0 -2
  246. package/dist/frontend/dist/assets/no-QE5N5KNG-BCG75Nm1.js.map +0 -1
  247. package/dist/frontend/dist/assets/not-found-CXjr3aHk.js +0 -2
  248. package/dist/frontend/dist/assets/not-found-CXjr3aHk.js.map +0 -1
  249. package/dist/frontend/dist/assets/page-3_orURnj.js +0 -2
  250. package/dist/frontend/dist/assets/page-A0bP7R9_.js +0 -2
  251. package/dist/frontend/dist/assets/page-BXDwcCLI.js +0 -2
  252. package/dist/frontend/dist/assets/page-CR97hIaP.js +0 -2
  253. package/dist/frontend/dist/assets/page-CR97hIaP.js.map +0 -1
  254. package/dist/frontend/dist/assets/page-ClOO6d4L.js +0 -2
  255. package/dist/frontend/dist/assets/page-CoU19X7P.js +0 -2
  256. package/dist/frontend/dist/assets/page-Crea7MLa.js.map +0 -1
  257. package/dist/frontend/dist/assets/page-D3vt40lt.js +0 -2
  258. package/dist/frontend/dist/assets/page-D74-p81B.js +0 -8
  259. package/dist/frontend/dist/assets/page-D74-p81B.js.map +0 -1
  260. package/dist/frontend/dist/assets/page-D9VjQ4Ci.js +0 -2
  261. package/dist/frontend/dist/assets/page-DAaiG0_S.js +0 -2
  262. package/dist/frontend/dist/assets/page-DAaiG0_S.js.map +0 -1
  263. package/dist/frontend/dist/assets/page-DGGXDS8h.js +0 -2
  264. package/dist/frontend/dist/assets/page-DWTT4pP82.js.map +0 -1
  265. package/dist/frontend/dist/assets/page-Db8QDovL.js +0 -2
  266. package/dist/frontend/dist/assets/page-V3GB89Xa.js +0 -2
  267. package/dist/frontend/dist/assets/page-pid5J2JR.js +0 -2
  268. package/dist/frontend/dist/assets/page-pid5J2JR.js.map +0 -1
  269. package/dist/frontend/dist/assets/page-vxSCIznX.js +0 -2
  270. package/dist/frontend/dist/assets/page-yaV9evoV.js +0 -2
  271. package/dist/frontend/dist/assets/page-yaV9evoV.js.map +0 -1
  272. package/dist/frontend/dist/assets/pl-5Q2D23PD-DgP2517z.js +0 -2
  273. package/dist/frontend/dist/assets/pl-5Q2D23PD-DgP2517z.js.map +0 -1
  274. package/dist/frontend/dist/assets/pt-AIGUOIOC-CN21pR38.js +0 -2
  275. package/dist/frontend/dist/assets/pt-AIGUOIOC-CN21pR38.js.map +0 -1
  276. package/dist/frontend/dist/assets/ro-T56CSHTY-mCdsn9QL.js +0 -2
  277. package/dist/frontend/dist/assets/ro-T56CSHTY-mCdsn9QL.js.map +0 -1
  278. package/dist/frontend/dist/assets/routing-Dqgz2rV4.js +0 -2
  279. package/dist/frontend/dist/assets/sv-L4TJQ2UH-Cj1jmTXz.js +0 -2
  280. package/dist/frontend/dist/assets/sv-L4TJQ2UH-Cj1jmTXz.js.map +0 -1
  281. package/dist/frontend/dist/assets/th-6O7Y6O2Q-Db0HgJLY.js +0 -2
  282. package/dist/frontend/dist/assets/th-6O7Y6O2Q-Db0HgJLY.js.map +0 -1
  283. package/dist/frontend/dist/assets/tr-D4CQCSNO-B0u3f4nL.js +0 -2
  284. package/dist/frontend/dist/assets/tr-D4CQCSNO-B0u3f4nL.js.map +0 -1
  285. package/dist/frontend/dist/assets/uk-2HMQG6ND-Dx2FfvV4.js +0 -2
  286. package/dist/frontend/dist/assets/uk-2HMQG6ND-Dx2FfvV4.js.map +0 -1
  287. package/dist/frontend/dist/assets/vi-XVJ4RUEJ-CeoZ1h3m.js +0 -2
  288. package/dist/frontend/dist/assets/vi-XVJ4RUEJ-CeoZ1h3m.js.map +0 -1
  289. package/dist/frontend/dist/assets/web-DAgGdiC_.js +0 -2
  290. package/dist/frontend/dist/assets/web-DAgGdiC_.js.map +0 -1
  291. package/dist/frontend/dist/assets/zh-K2KDPGHK-BriluvPe.js +0 -2
  292. package/dist/frontend/dist/assets/zh-K2KDPGHK-BriluvPe.js.map +0 -1
  293. /package/dist/frontend/dist/assets/{rolldown-runtime-jpDsebLB.js → rolldown-runtime-Bh1tDfsg.js} +0 -0
@@ -8,7 +8,7 @@ const require = (name) => {
8
8
  throw new Error('Unknown module: ' + name);
9
9
  };
10
10
 
11
- "use strict";var SemiontDashboard=(()=>{var se=Object.create;var M=Object.defineProperty;var ne=Object.getOwnPropertyDescriptor;var ae=Object.getOwnPropertyNames;var oe=Object.getPrototypeOf,ie=Object.prototype.hasOwnProperty;var S=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var re=(e,t)=>{for(var n in t)M(e,n,{get:t[n],enumerable:!0})},F=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of ae(t))!ie.call(e,o)&&o!==n&&M(e,o,{get:()=>t[o],enumerable:!(a=ne(t,o))||a.enumerable});return e};var N=(e,t,n)=>(n=e!=null?se(oe(e)):{},F(t||!e||!e.__esModule?M(n,"default",{value:e,enumerable:!0}):n,e)),ce=e=>F(M({},"__esModule",{value:!0}),e);var De={};re(De,{WebDashboardApp:()=>q});var s=N(S("react"),1);var i=N(S("react"),1),le="semiont-tag semiont-tag--secondary semiont-tag--compact",me=new Set(["graph","neo4j","janusgraph","neptune"]),de=e=>e.toLowerCase().startsWith("inference.");function pe(e){let t=e.indexOf(".");if(t!==-1){let n=e.slice(0,t),a=e.slice(t+1);return n.charAt(0).toUpperCase()+n.slice(1)+" ("+a.charAt(0).toUpperCase()+a.slice(1)+")"}return e.charAt(0).toUpperCase()+e.slice(1)}var V=["proxy","frontend","backend","database"];function ue(e){switch(e){case"healthy":return"semiont-indicator semiont-indicator--online";case"unhealthy":return"semiont-indicator semiont-indicator--offline";case"warning":return"semiont-indicator semiont-indicator--busy";default:return"semiont-indicator"}}function ge(e){switch(e){case"healthy":return"healthy";case"unhealthy":return"unhealthy";case"warning":return"warning";default:return"unknown"}}function ve(e){switch(e){case"healthy":return"semiont-badge semiont-badge--success";case"unhealthy":return"semiont-badge semiont-badge--error";case"warning":return"semiont-badge semiont-badge--warning";default:return"semiont-badge semiont-badge--info"}}var he=({service:e})=>{let t=e.evidence&&e.evidence.length>0?[...e.evidence]:(()=>{let a=e.details||"",o=[],p=a.match(/[Pp][Ii][Dd]:\s*(\d+)/),v=a.match(/[Cc]ontainer:\s*(\S+)/);return p&&o.push(`pid ${p[1]}`),v&&o.push(`container ${v[1].slice(0,12)}`),e.runningCount!==void 0&&e.desiredCount!==void 0&&o.push(`${e.runningCount}/${e.desiredCount} tasks`),o})();e.checkedAt&&t.push(`checked ${new Date(e.checkedAt).toLocaleTimeString()}`);let n=fe(e);return i.default.createElement("div",{className:"service-row"},i.default.createElement("div",{className:"service-row__indicator"},i.default.createElement("span",{className:ue(e.status)})),i.default.createElement("div",{className:"service-row__name"},pe(e.name)),i.default.createElement("div",{className:"service-row__host"},e.hostname?i.default.createElement("span",{className:"service-row__hostname"},e.hostname):i.default.createElement("span",{className:"service-row__hostname service-row__hostname--dim"},"\u2014")),i.default.createElement("div",{className:"service-row__status"},i.default.createElement("span",{className:ve(e.status)},i.default.createElement("span",{className:"semiont-badge__text"},ge(e.status)))),i.default.createElement("div",{className:"service-row__tags"},t.map((a,o)=>i.default.createElement("span",{key:o,className:le},a))),i.default.createElement("div",{className:"service-row__actions"},n.map((a,o)=>i.default.createElement("a",{key:o,href:a.url,target:"_blank",rel:"noopener noreferrer",className:"semiont-tag semiont-tag--info semiont-tag--compact"},a.label))))};function fe(e){let t=[],n=e.awsRegion||"us-east-1";return e.ecsServiceName&&e.ecsClusterName&&(t.push({label:"Console \u2197",url:`https://console.aws.amazon.com/ecs/home?region=${n}#/clusters/${e.ecsClusterName}/services/${e.ecsServiceName}/details`}),e.logGroupName&&t.push({label:"Logs \u2197",url:`https://console.aws.amazon.com/cloudwatch/home?region=${n}#logsV2:log-groups/log-group/${encodeURIComponent(e.logGroupName)}`})),e.rdsInstanceId&&t.push({label:"Console \u2197",url:`https://console.aws.amazon.com/rds/home?region=${n}#database:id=${e.rdsInstanceId};is-cluster=false`}),t}var H=({services:e})=>{let n=[...e.filter(a=>!me.has(a.name.toLowerCase())&&!de(a.name))].sort((a,o)=>{let p=V.indexOf(a.name.toLowerCase()),v=V.indexOf(o.name.toLowerCase());return p===-1&&v===-1?a.name.localeCompare(o.name):p===-1?1:v===-1?-1:p-v});return i.default.createElement("div",{className:"service-list"},i.default.createElement("div",{className:"service-list__header"},i.default.createElement("div",{className:"service-row__indicator"}),i.default.createElement("div",{className:"service-row__name"},"Service"),i.default.createElement("div",{className:"service-row__host"},"Address"),i.default.createElement("div",{className:"service-row__status"},"Status"),i.default.createElement("div",{className:"service-row__tags"},"Details"),i.default.createElement("div",{className:"service-row__actions"})),n.map((a,o)=>i.default.createElement(he,{key:o,service:a})))};var g=N(S("react"),1);var d=N(S("react"),1),be="semiont-tag semiont-tag--secondary semiont-tag--compact",f=({indicator:e,label:t,value:n,tags:a})=>d.default.createElement("div",{className:"mm-row"},d.default.createElement("div",{className:"mm-row__indicator"},d.default.createElement("span",{className:e})),d.default.createElement("div",{className:"mm-row__label"},t),d.default.createElement("div",{className:"mm-row__value"},n),d.default.createElement("div",{className:"mm-row__tags"},a==null?void 0:a.filter(Boolean).map((o,p)=>d.default.createElement("span",{key:p,className:be},o)))),y=({title:e,children:t})=>d.default.createElement("div",{className:"mm-group"},d.default.createElement("div",{className:"mm-group__title"},e),d.default.createElement("div",{className:"mm-list"},t));function we(e){switch(e){case"healthy":return"semiont-indicator semiont-indicator--online";case"unhealthy":return"semiont-indicator semiont-indicator--offline";default:return"semiont-indicator"}}function Se(e){return e.includes(".")?e.slice(e.indexOf(".")+1).replace(/^\w/,t=>t.toUpperCase()):e}var L=({inferenceServices:e})=>e.length===0?null:d.default.createElement(y,{title:"Inference"},e.map(t=>d.default.createElement(f,{key:t.name,indicator:we(t.status),label:Se(t.name),value:t.status,tags:t.evidence})));function j(e){if(e===0)return"0 B";let t=1024,n=["B","KB","MB","GB","TB"],a=Math.floor(Math.log(e)/Math.log(t));return`${(e/Math.pow(t,a)).toFixed(1)} ${n[a]}`}function T(e,t=40){return e.length<=t?e:"\u2026"+e.slice(e.length-t+1)}function Ne(e){switch(e.state){case"active":return"semiont-indicator semiont-indicator--online semiont-indicator--pulse";case"idle":return"semiont-indicator semiont-indicator--online";case"error":return"semiont-indicator semiont-indicator--offline";default:return"semiont-indicator"}}function ye(e){switch(e){case"healthy":return"semiont-indicator semiont-indicator--online";case"unhealthy":return"semiont-indicator semiont-indicator--offline";default:return"semiont-indicator"}}var O=({makeMeaning:e,inferenceServices:t})=>g.default.createElement("div",{className:"mm-sections"},g.default.createElement(y,{title:"System of Record"},g.default.createElement(f,{indicator:"semiont-indicator semiont-indicator--online",label:"Event Log",value:e.eventLog.eventCount!==void 0?e.eventLog.eventCount.toLocaleString()+" events":"unknown",tags:[e.eventLog.streamCount!==void 0&&`${e.eventLog.streamCount} streams`,e.eventLog.sizeBytes!==void 0&&j(e.eventLog.sizeBytes),e.eventLog.path&&T(e.eventLog.path)]}),g.default.createElement(f,{indicator:"semiont-indicator semiont-indicator--online",label:"Content Store",value:e.contentStore.sizeBytes!==void 0?j(e.contentStore.sizeBytes):"unknown",tags:[e.contentStore.fileCount!==void 0&&`${e.contentStore.fileCount} files`,e.contentStore.path&&T(e.contentStore.path)]})),g.default.createElement(y,{title:"Projections"},g.default.createElement(f,{indicator:ye(e.graph.status),label:"Graph",value:e.graph.status,tags:[e.graph.address,e.graph.database,...e.graph.evidence??[]]}),g.default.createElement(f,{indicator:"semiont-indicator semiont-indicator--online",label:"Materialized Views",value:e.materializedViews.fileCount!==void 0?`${e.materializedViews.fileCount} projections`:"unknown",tags:[e.materializedViews.lastUpdated&&`updated ${new Date(e.materializedViews.lastUpdated).toLocaleTimeString()}`,e.materializedViews.path&&T(e.materializedViews.path)]})),g.default.createElement(y,{title:"Actors"},["gatherer","matcher","stower","browser"].map(n=>{let a=e.actors[n];return g.default.createElement(f,{key:n,indicator:Ne(a),label:n.charAt(0).toUpperCase()+n.slice(1),value:a.state,tags:[a.provider,a.model,a.errorMessage&&a.errorMessage.slice(0,40)]})})),g.default.createElement(L,{inferenceServices:t}));var r=N(S("react"),1);var b="semiont-tag semiont-tag--secondary semiont-tag--compact",ke={"reference-annotation":"Reference Annotation","highlight-annotation":"Highlight Annotation","assessment-annotation":"Assessment Annotation","comment-annotation":"Comment Annotation","tag-annotation":"Tag Annotation",generation:"Generation"};function Ce(e){let t=Date.now()-e.getTime(),n=Math.floor(t/6e4);if(n<1)return"just now";if(n<60)return`${n}m ago`;let a=Math.floor(n/60);return a<24?`${a}h ago`:`${Math.floor(a/24)}d ago`}function _e(e){return e.state==="error"?"semiont-indicator semiont-indicator--offline":e.activeCount>0?"semiont-indicator semiont-indicator--online semiont-indicator--pulse":e.pendingCount>10?"semiont-indicator semiont-indicator--busy":"semiont-indicator semiont-indicator--online"}var K=({workers:e,inferenceServices:t})=>r.default.createElement("div",{className:"mm-sections"},r.default.createElement("div",{className:"mm-group"},r.default.createElement("div",{className:"mm-group__title"},"Workers"),r.default.createElement("div",{className:"mm-list"},r.default.createElement("div",{className:"mm-row mm-row--header"},r.default.createElement("div",{className:"mm-row__indicator"}),r.default.createElement("div",{className:"mm-row__label"},"Worker"),r.default.createElement("div",{className:"mm-row__value"},"Status"),r.default.createElement("div",{className:"mm-row__tags"},"Details")),e.map((n,a)=>r.default.createElement("div",{key:a,className:"mm-row"},r.default.createElement("div",{className:"mm-row__indicator"},r.default.createElement("span",{className:_e(n)})),r.default.createElement("div",{className:"mm-row__label"},ke[n.type]),r.default.createElement("div",{className:"mm-row__value"},n.state),r.default.createElement("div",{className:"mm-row__tags"},r.default.createElement("span",{className:n.activeCount>0?"semiont-tag semiont-tag--success semiont-tag--compact":b},n.activeCount," active"),r.default.createElement("span",{className:b},n.pendingCount," pending"),n.completedCount>0&&r.default.createElement("span",{className:b},n.completedCount," done"),n.failedCount>0&&r.default.createElement("span",{className:"semiont-tag semiont-tag--warning semiont-tag--compact"},n.failedCount," failed"),n.state==="idle"&&!n.lastProcessed&&r.default.createElement("span",{className:b},"never used"),n.lastProcessed&&n.state==="idle"&&r.default.createElement("span",{className:b},"last used ",Ce(new Date(n.lastProcessed))),n.lastProcessed&&n.state!=="idle"&&r.default.createElement("span",{className:b},"last ",new Date(n.lastProcessed).toLocaleTimeString())))))),r.default.createElement(L,{inferenceServices:t}));var Me={eventLog:{path:""},contentStore:{path:""},graph:{status:"unknown"},materializedViews:{path:""},actors:{gatherer:{state:"unknown"},matcher:{state:"unknown"},stower:{state:"unknown"},browser:{state:"unknown"}}},U=({logs:e,service:t})=>{let n=t?e.filter(a=>a.service===t||!t):e;return s.default.createElement("div",{className:"semiont-panel semiont-panel--bordered dashboard-logs"},s.default.createElement("div",{className:"semiont-panel-header"},s.default.createElement("span",{className:"semiont-panel-header__title"},"Recent Logs")),n.length===0?s.default.createElement("div",{className:"logs-empty"},"No recent logs"):s.default.createElement("div",{className:"logs-list"},n.slice(0,50).map((a,o)=>s.default.createElement("div",{key:o,className:`log-entry log-entry--${a.level}`},s.default.createElement("span",{className:"log-timestamp"},new Date(a.timestamp).toLocaleTimeString()),s.default.createElement("span",{className:"log-service"},a.service),s.default.createElement("span",{className:`log-level semiont-badge semiont-badge--${a.level==="error"?"error":a.level==="warn"?"warning":"info"}`},s.default.createElement("span",{className:"semiont-badge__text"},a.level.toUpperCase())),s.default.createElement("span",{className:"log-message"},a.message)))))},Le=({active:e,onChange:t,webHealthy:n,webTotal:a,mmHealthy:o,mmTotal:p,wkHealthy:v,wkTotal:D})=>{let A=[{id:"make-meaning",label:"Make Meaning",healthy:o,total:p},{id:"workers",label:"Workers",healthy:v,total:D},{id:"web",label:"Web Interface",healthy:n,total:a}];function w(c,k){return k===0?"semiont-badge semiont-badge--info":c===k?"semiont-badge semiont-badge--success":c===0?"semiont-badge semiont-badge--error":"semiont-badge semiont-badge--warning"}return s.default.createElement("div",{className:"dashboard-tabs"},A.map(c=>s.default.createElement("button",{key:c.id,className:`dashboard-tab${e===c.id?" dashboard-tab--active":""}`,onClick:()=>t(c.id)},c.label,s.default.createElement("span",{className:w(c.healthy,c.total)},s.default.createElement("span",{className:"semiont-badge__text"},c.healthy,"/",c.total)))))},P=({time:e,label:t})=>s.default.createElement("span",{className:"tab-update-time"},t,": ",e?e.toLocaleTimeString():"\u2014"),q=({environment:e})=>{let[t,n]=(0,s.useState)("make-meaning"),[a,o]=(0,s.useState)([]),[p,v]=(0,s.useState)([]),[D,A]=(0,s.useState)(null),[w,c]=(0,s.useState)(Me),[k,E]=(0,s.useState)(null),[I,J]=(0,s.useState)([]),[Q,X]=(0,s.useState)(null),[W,$]=(0,s.useState)(!1),[x,z]=(0,s.useState)(!1);if((0,s.useEffect)(()=>{let m=window.io;if(!m){console.error("Socket.IO not loaded");return}let h=m();return h.on("connect",()=>$(!0)),h.on("disconnect",()=>$(!1)),h.on("services-update",u=>{o(u.services),v(u.logs),A(new Date),z(!0)}),h.on("make-meaning-update",u=>{let{lastUpdate:_,...te}=u;c(te),E(_?new Date(_):new Date)}),h.on("actors-update",u=>{c(_=>({..._,actors:u.actors})),u.lastUpdate&&E(new Date(u.lastUpdate))}),h.on("workers-update",u=>{J(u.workers),X(u.lastUpdate?new Date(u.lastUpdate):new Date),x||z(!0)}),()=>h.disconnect()},[]),!x)return s.default.createElement("div",{className:"dashboard-container"},s.default.createElement("div",{className:"dashboard-loading"},s.default.createElement("div",{className:"semiont-spinner"})));let C=a.find(m=>m.name.toLowerCase()==="graph"),l=C?{...w,graph:{...w.graph,status:C.status==="healthy"?"healthy":C.status==="unhealthy"?"unhealthy":"unknown",evidence:C.evidence}}:w,Y=new Set(["graph","neo4j","janusgraph","neptune"]),B=a.filter(m=>m.name.toLowerCase().startsWith("inference.")),G=a.filter(m=>!Y.has(m.name.toLowerCase())&&!m.name.toLowerCase().startsWith("inference.")),Z=G.filter(m=>m.status==="healthy").length,R=[l.eventLog.eventCount!==void 0,l.contentStore.fileCount!==void 0,l.graph.status==="healthy",l.materializedViews.fileCount!==void 0,l.actors.gatherer.state!=="error"&&l.actors.gatherer.state!=="unknown",l.actors.matcher.state!=="error"&&l.actors.matcher.state!=="unknown",l.actors.stower.state!=="error"&&l.actors.stower.state!=="unknown",l.actors.browser.state!=="error"&&l.actors.browser.state!=="unknown"].filter(Boolean).length,ee=I.filter(m=>m.state!=="error").length;return s.default.createElement("div",{className:"dashboard-container"},s.default.createElement("header",{className:"dashboard-header semiont-panel semiont-panel--bordered"},s.default.createElement("div",{className:"dashboard-header-left"},s.default.createElement("h1",{className:"dashboard-title"},"Semiont Dashboard"),s.default.createElement("span",{className:"semiont-badge semiont-badge--info dashboard-env"},s.default.createElement("span",{className:"semiont-badge__text"},e))),s.default.createElement("div",{className:"dashboard-header-right"},s.default.createElement("span",{className:`semiont-indicator ${W?"semiont-indicator--online":"semiont-indicator--offline"}`}),s.default.createElement("span",{className:"dashboard-connection-label"},W?"Live":"Disconnected"))),s.default.createElement("div",{className:"semiont-panel semiont-panel--bordered dashboard-tab-panel"},s.default.createElement(Le,{active:t,onChange:n,webHealthy:Z,webTotal:G.length,mmHealthy:R,mmTotal:8,wkHealthy:ee,wkTotal:I.length}),s.default.createElement("div",{className:"tab-content"},t==="web"&&s.default.createElement(s.default.Fragment,null,s.default.createElement("div",{className:"tab-meta"},s.default.createElement(P,{time:D,label:"updated"})),s.default.createElement(H,{services:a}),s.default.createElement(U,{logs:p})),t==="make-meaning"&&s.default.createElement(s.default.Fragment,null,s.default.createElement("div",{className:"tab-meta"},s.default.createElement(P,{time:k,label:"updated"})),s.default.createElement(O,{makeMeaning:l,inferenceServices:B}),s.default.createElement(U,{logs:[]})),t==="workers"&&s.default.createElement(s.default.Fragment,null,s.default.createElement("div",{className:"tab-meta"},s.default.createElement(P,{time:Q,label:"updated"})),s.default.createElement(K,{workers:I,inferenceServices:B}),s.default.createElement(U,{logs:[]})))))};typeof window<"u"&&(window.SemiontDashboard=window.SemiontDashboard||{},window.SemiontDashboard.WebDashboardApp=q);return ce(De);})();
11
+ "use strict";var SemiontDashboard=(()=>{var se=Object.create;var M=Object.defineProperty;var ne=Object.getOwnPropertyDescriptor;var ae=Object.getOwnPropertyNames;var oe=Object.getPrototypeOf,ie=Object.prototype.hasOwnProperty;var S=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var re=(e,t)=>{for(var n in t)M(e,n,{get:t[n],enumerable:!0})},F=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of ae(t))!ie.call(e,o)&&o!==n&&M(e,o,{get:()=>t[o],enumerable:!(a=ne(t,o))||a.enumerable});return e};var N=(e,t,n)=>(n=e!=null?se(oe(e)):{},F(t||!e||!e.__esModule?M(n,"default",{value:e,enumerable:!0}):n,e)),ce=e=>F(M({},"__esModule",{value:!0}),e);var De={};re(De,{WebDashboardApp:()=>q});var s=N(S("react"),1);var i=N(S("react"),1),le="semiont-tag semiont-tag--secondary semiont-tag--compact",me=new Set(["graph","neo4j","janusgraph","neptune"]),de=e=>e.toLowerCase().startsWith("inference.");function pe(e){let t=e.indexOf(".");if(t!==-1){let n=e.slice(0,t),a=e.slice(t+1);return n.charAt(0).toUpperCase()+n.slice(1)+" ("+a.charAt(0).toUpperCase()+a.slice(1)+")"}return e.charAt(0).toUpperCase()+e.slice(1)}var V=["proxy","frontend","backend","database"];function ue(e){switch(e){case"healthy":return"semiont-indicator semiont-indicator--online";case"unhealthy":return"semiont-indicator semiont-indicator--offline";case"warning":return"semiont-indicator semiont-indicator--busy";default:return"semiont-indicator"}}function ge(e){switch(e){case"healthy":return"healthy";case"unhealthy":return"unhealthy";case"warning":return"warning";default:return"unknown"}}function ve(e){switch(e){case"healthy":return"semiont-badge semiont-badge--success";case"unhealthy":return"semiont-badge semiont-badge--error";case"warning":return"semiont-badge semiont-badge--warning";default:return"semiont-badge semiont-badge--info"}}var he=({service:e})=>{let t=e.evidence&&e.evidence.length>0?[...e.evidence]:(()=>{let a=e.details||"",o=[],p=a.match(/[Pp][Ii][Dd]:\s*(\d+)/),v=a.match(/[Cc]ontainer:\s*(\S+)/);return p&&o.push(`pid ${p[1]}`),v&&o.push(`container ${v[1].slice(0,12)}`),e.runningCount!==void 0&&e.desiredCount!==void 0&&o.push(`${e.runningCount}/${e.desiredCount} tasks`),o})();e.checkedAt&&t.push(`checked ${new Date(e.checkedAt).toLocaleTimeString()}`);let n=fe(e);return i.default.createElement("div",{className:"service-row"},i.default.createElement("div",{className:"service-row__indicator"},i.default.createElement("span",{className:ue(e.status)})),i.default.createElement("div",{className:"service-row__name"},pe(e.name)),i.default.createElement("div",{className:"service-row__host"},e.hostname?i.default.createElement("span",{className:"service-row__hostname"},e.hostname):i.default.createElement("span",{className:"service-row__hostname service-row__hostname--dim"},"\u2014")),i.default.createElement("div",{className:"service-row__status"},i.default.createElement("span",{className:ve(e.status)},i.default.createElement("span",{className:"semiont-badge__text"},ge(e.status)))),i.default.createElement("div",{className:"service-row__tags"},t.map((a,o)=>i.default.createElement("span",{key:o,className:le},a))),i.default.createElement("div",{className:"service-row__actions"},n.map((a,o)=>i.default.createElement("a",{key:o,href:a.url,target:"_blank",rel:"noopener noreferrer",className:"semiont-tag semiont-tag--info semiont-tag--compact"},a.label))))};function fe(e){let t=[],n=e.awsRegion||"us-east-1";return e.ecsServiceName&&e.ecsClusterName&&(t.push({label:"Console \u2197",url:`https://console.aws.amazon.com/ecs/home?region=${n}#/clusters/${e.ecsClusterName}/services/${e.ecsServiceName}/details`}),e.logGroupName&&t.push({label:"Logs \u2197",url:`https://console.aws.amazon.com/cloudwatch/home?region=${n}#logsV2:log-groups/log-group/${encodeURIComponent(e.logGroupName)}`})),e.rdsInstanceId&&t.push({label:"Console \u2197",url:`https://console.aws.amazon.com/rds/home?region=${n}#database:id=${e.rdsInstanceId};is-cluster=false`}),t}var H=({services:e})=>{let n=[...e.filter(a=>!me.has(a.name.toLowerCase())&&!de(a.name))].sort((a,o)=>{let p=V.indexOf(a.name.toLowerCase()),v=V.indexOf(o.name.toLowerCase());return p===-1&&v===-1?a.name.localeCompare(o.name):p===-1?1:v===-1?-1:p-v});return i.default.createElement("div",{className:"service-list"},i.default.createElement("div",{className:"service-list__header"},i.default.createElement("div",{className:"service-row__indicator"}),i.default.createElement("div",{className:"service-row__name"},"Service"),i.default.createElement("div",{className:"service-row__host"},"Address"),i.default.createElement("div",{className:"service-row__status"},"Status"),i.default.createElement("div",{className:"service-row__tags"},"Details"),i.default.createElement("div",{className:"service-row__actions"})),n.map((a,o)=>i.default.createElement(he,{key:o,service:a})))};var g=N(S("react"),1);var d=N(S("react"),1),be="semiont-tag semiont-tag--secondary semiont-tag--compact",f=({indicator:e,label:t,value:n,tags:a})=>d.default.createElement("div",{className:"mm-row"},d.default.createElement("div",{className:"mm-row__indicator"},d.default.createElement("span",{className:e})),d.default.createElement("div",{className:"mm-row__label"},t),d.default.createElement("div",{className:"mm-row__value"},n),d.default.createElement("div",{className:"mm-row__tags"},a?.filter(Boolean).map((o,p)=>d.default.createElement("span",{key:p,className:be},o)))),y=({title:e,children:t})=>d.default.createElement("div",{className:"mm-group"},d.default.createElement("div",{className:"mm-group__title"},e),d.default.createElement("div",{className:"mm-list"},t));function we(e){switch(e){case"healthy":return"semiont-indicator semiont-indicator--online";case"unhealthy":return"semiont-indicator semiont-indicator--offline";default:return"semiont-indicator"}}function Se(e){return e.includes(".")?e.slice(e.indexOf(".")+1).replace(/^\w/,t=>t.toUpperCase()):e}var L=({inferenceServices:e})=>e.length===0?null:d.default.createElement(y,{title:"Inference"},e.map(t=>d.default.createElement(f,{key:t.name,indicator:we(t.status),label:Se(t.name),value:t.status,tags:t.evidence})));function j(e){if(e===0)return"0 B";let t=1024,n=["B","KB","MB","GB","TB"],a=Math.floor(Math.log(e)/Math.log(t));return`${(e/Math.pow(t,a)).toFixed(1)} ${n[a]}`}function T(e,t=40){return e.length<=t?e:"\u2026"+e.slice(e.length-t+1)}function Ne(e){switch(e.state){case"active":return"semiont-indicator semiont-indicator--online semiont-indicator--pulse";case"idle":return"semiont-indicator semiont-indicator--online";case"error":return"semiont-indicator semiont-indicator--offline";default:return"semiont-indicator"}}function ye(e){switch(e){case"healthy":return"semiont-indicator semiont-indicator--online";case"unhealthy":return"semiont-indicator semiont-indicator--offline";default:return"semiont-indicator"}}var O=({makeMeaning:e,inferenceServices:t})=>g.default.createElement("div",{className:"mm-sections"},g.default.createElement(y,{title:"System of Record"},g.default.createElement(f,{indicator:"semiont-indicator semiont-indicator--online",label:"Event Log",value:e.eventLog.eventCount!==void 0?e.eventLog.eventCount.toLocaleString()+" events":"unknown",tags:[e.eventLog.streamCount!==void 0&&`${e.eventLog.streamCount} streams`,e.eventLog.sizeBytes!==void 0&&j(e.eventLog.sizeBytes),e.eventLog.path&&T(e.eventLog.path)]}),g.default.createElement(f,{indicator:"semiont-indicator semiont-indicator--online",label:"Content Store",value:e.contentStore.sizeBytes!==void 0?j(e.contentStore.sizeBytes):"unknown",tags:[e.contentStore.fileCount!==void 0&&`${e.contentStore.fileCount} files`,e.contentStore.path&&T(e.contentStore.path)]})),g.default.createElement(y,{title:"Projections"},g.default.createElement(f,{indicator:ye(e.graph.status),label:"Graph",value:e.graph.status,tags:[e.graph.address,e.graph.database,...e.graph.evidence??[]]}),g.default.createElement(f,{indicator:"semiont-indicator semiont-indicator--online",label:"Materialized Views",value:e.materializedViews.fileCount!==void 0?`${e.materializedViews.fileCount} projections`:"unknown",tags:[e.materializedViews.lastUpdated&&`updated ${new Date(e.materializedViews.lastUpdated).toLocaleTimeString()}`,e.materializedViews.path&&T(e.materializedViews.path)]})),g.default.createElement(y,{title:"Actors"},["gatherer","matcher","stower","browser"].map(n=>{let a=e.actors[n];return g.default.createElement(f,{key:n,indicator:Ne(a),label:n.charAt(0).toUpperCase()+n.slice(1),value:a.state,tags:[a.provider,a.model,a.errorMessage&&a.errorMessage.slice(0,40)]})})),g.default.createElement(L,{inferenceServices:t}));var r=N(S("react"),1);var b="semiont-tag semiont-tag--secondary semiont-tag--compact",ke={"reference-annotation":"Reference Annotation","highlight-annotation":"Highlight Annotation","assessment-annotation":"Assessment Annotation","comment-annotation":"Comment Annotation","tag-annotation":"Tag Annotation",generation:"Generation"};function Ce(e){let t=Date.now()-e.getTime(),n=Math.floor(t/6e4);if(n<1)return"just now";if(n<60)return`${n}m ago`;let a=Math.floor(n/60);return a<24?`${a}h ago`:`${Math.floor(a/24)}d ago`}function _e(e){return e.state==="error"?"semiont-indicator semiont-indicator--offline":e.activeCount>0?"semiont-indicator semiont-indicator--online semiont-indicator--pulse":e.pendingCount>10?"semiont-indicator semiont-indicator--busy":"semiont-indicator semiont-indicator--online"}var K=({workers:e,inferenceServices:t})=>r.default.createElement("div",{className:"mm-sections"},r.default.createElement("div",{className:"mm-group"},r.default.createElement("div",{className:"mm-group__title"},"Workers"),r.default.createElement("div",{className:"mm-list"},r.default.createElement("div",{className:"mm-row mm-row--header"},r.default.createElement("div",{className:"mm-row__indicator"}),r.default.createElement("div",{className:"mm-row__label"},"Worker"),r.default.createElement("div",{className:"mm-row__value"},"Status"),r.default.createElement("div",{className:"mm-row__tags"},"Details")),e.map((n,a)=>r.default.createElement("div",{key:a,className:"mm-row"},r.default.createElement("div",{className:"mm-row__indicator"},r.default.createElement("span",{className:_e(n)})),r.default.createElement("div",{className:"mm-row__label"},ke[n.type]),r.default.createElement("div",{className:"mm-row__value"},n.state),r.default.createElement("div",{className:"mm-row__tags"},r.default.createElement("span",{className:n.activeCount>0?"semiont-tag semiont-tag--success semiont-tag--compact":b},n.activeCount," active"),r.default.createElement("span",{className:b},n.pendingCount," pending"),n.completedCount>0&&r.default.createElement("span",{className:b},n.completedCount," done"),n.failedCount>0&&r.default.createElement("span",{className:"semiont-tag semiont-tag--warning semiont-tag--compact"},n.failedCount," failed"),n.state==="idle"&&!n.lastProcessed&&r.default.createElement("span",{className:b},"never used"),n.lastProcessed&&n.state==="idle"&&r.default.createElement("span",{className:b},"last used ",Ce(new Date(n.lastProcessed))),n.lastProcessed&&n.state!=="idle"&&r.default.createElement("span",{className:b},"last ",new Date(n.lastProcessed).toLocaleTimeString())))))),r.default.createElement(L,{inferenceServices:t}));var Me={eventLog:{path:""},contentStore:{path:""},graph:{status:"unknown"},materializedViews:{path:""},actors:{gatherer:{state:"unknown"},matcher:{state:"unknown"},stower:{state:"unknown"},browser:{state:"unknown"}}},U=({logs:e,service:t})=>{let n=t?e.filter(a=>a.service===t||!t):e;return s.default.createElement("div",{className:"semiont-panel semiont-panel--bordered dashboard-logs"},s.default.createElement("div",{className:"semiont-panel-header"},s.default.createElement("span",{className:"semiont-panel-header__title"},"Recent Logs")),n.length===0?s.default.createElement("div",{className:"logs-empty"},"No recent logs"):s.default.createElement("div",{className:"logs-list"},n.slice(0,50).map((a,o)=>s.default.createElement("div",{key:o,className:`log-entry log-entry--${a.level}`},s.default.createElement("span",{className:"log-timestamp"},new Date(a.timestamp).toLocaleTimeString()),s.default.createElement("span",{className:"log-service"},a.service),s.default.createElement("span",{className:`log-level semiont-badge semiont-badge--${a.level==="error"?"error":a.level==="warn"?"warning":"info"}`},s.default.createElement("span",{className:"semiont-badge__text"},a.level.toUpperCase())),s.default.createElement("span",{className:"log-message"},a.message)))))},Le=({active:e,onChange:t,webHealthy:n,webTotal:a,mmHealthy:o,mmTotal:p,wkHealthy:v,wkTotal:D})=>{let A=[{id:"make-meaning",label:"Make Meaning",healthy:o,total:p},{id:"workers",label:"Workers",healthy:v,total:D},{id:"web",label:"Web Interface",healthy:n,total:a}];function w(c,k){return k===0?"semiont-badge semiont-badge--info":c===k?"semiont-badge semiont-badge--success":c===0?"semiont-badge semiont-badge--error":"semiont-badge semiont-badge--warning"}return s.default.createElement("div",{className:"dashboard-tabs"},A.map(c=>s.default.createElement("button",{key:c.id,className:`dashboard-tab${e===c.id?" dashboard-tab--active":""}`,onClick:()=>t(c.id)},c.label,s.default.createElement("span",{className:w(c.healthy,c.total)},s.default.createElement("span",{className:"semiont-badge__text"},c.healthy,"/",c.total)))))},P=({time:e,label:t})=>s.default.createElement("span",{className:"tab-update-time"},t,": ",e?e.toLocaleTimeString():"\u2014"),q=({environment:e})=>{let[t,n]=(0,s.useState)("make-meaning"),[a,o]=(0,s.useState)([]),[p,v]=(0,s.useState)([]),[D,A]=(0,s.useState)(null),[w,c]=(0,s.useState)(Me),[k,E]=(0,s.useState)(null),[I,J]=(0,s.useState)([]),[Q,X]=(0,s.useState)(null),[W,$]=(0,s.useState)(!1),[x,z]=(0,s.useState)(!1);if((0,s.useEffect)(()=>{let m=window.io;if(!m){console.error("Socket.IO not loaded");return}let h=m();return h.on("connect",()=>$(!0)),h.on("disconnect",()=>$(!1)),h.on("services-update",u=>{o(u.services),v(u.logs),A(new Date),z(!0)}),h.on("make-meaning-update",u=>{let{lastUpdate:_,...te}=u;c(te),E(_?new Date(_):new Date)}),h.on("actors-update",u=>{c(_=>({..._,actors:u.actors})),u.lastUpdate&&E(new Date(u.lastUpdate))}),h.on("workers-update",u=>{J(u.workers),X(u.lastUpdate?new Date(u.lastUpdate):new Date),x||z(!0)}),()=>h.disconnect()},[]),!x)return s.default.createElement("div",{className:"dashboard-container"},s.default.createElement("div",{className:"dashboard-loading"},s.default.createElement("div",{className:"semiont-spinner"})));let C=a.find(m=>m.name.toLowerCase()==="graph"),l=C?{...w,graph:{...w.graph,status:C.status==="healthy"?"healthy":C.status==="unhealthy"?"unhealthy":"unknown",evidence:C.evidence}}:w,Y=new Set(["graph","neo4j","janusgraph","neptune"]),B=a.filter(m=>m.name.toLowerCase().startsWith("inference.")),G=a.filter(m=>!Y.has(m.name.toLowerCase())&&!m.name.toLowerCase().startsWith("inference.")),Z=G.filter(m=>m.status==="healthy").length,R=[l.eventLog.eventCount!==void 0,l.contentStore.fileCount!==void 0,l.graph.status==="healthy",l.materializedViews.fileCount!==void 0,l.actors.gatherer.state!=="error"&&l.actors.gatherer.state!=="unknown",l.actors.matcher.state!=="error"&&l.actors.matcher.state!=="unknown",l.actors.stower.state!=="error"&&l.actors.stower.state!=="unknown",l.actors.browser.state!=="error"&&l.actors.browser.state!=="unknown"].filter(Boolean).length,ee=I.filter(m=>m.state!=="error").length;return s.default.createElement("div",{className:"dashboard-container"},s.default.createElement("header",{className:"dashboard-header semiont-panel semiont-panel--bordered"},s.default.createElement("div",{className:"dashboard-header-left"},s.default.createElement("h1",{className:"dashboard-title"},"Semiont Dashboard"),s.default.createElement("span",{className:"semiont-badge semiont-badge--info dashboard-env"},s.default.createElement("span",{className:"semiont-badge__text"},e))),s.default.createElement("div",{className:"dashboard-header-right"},s.default.createElement("span",{className:`semiont-indicator ${W?"semiont-indicator--online":"semiont-indicator--offline"}`}),s.default.createElement("span",{className:"dashboard-connection-label"},W?"Live":"Disconnected"))),s.default.createElement("div",{className:"semiont-panel semiont-panel--bordered dashboard-tab-panel"},s.default.createElement(Le,{active:t,onChange:n,webHealthy:Z,webTotal:G.length,mmHealthy:R,mmTotal:8,wkHealthy:ee,wkTotal:I.length}),s.default.createElement("div",{className:"tab-content"},t==="web"&&s.default.createElement(s.default.Fragment,null,s.default.createElement("div",{className:"tab-meta"},s.default.createElement(P,{time:D,label:"updated"})),s.default.createElement(H,{services:a}),s.default.createElement(U,{logs:p})),t==="make-meaning"&&s.default.createElement(s.default.Fragment,null,s.default.createElement("div",{className:"tab-meta"},s.default.createElement(P,{time:k,label:"updated"})),s.default.createElement(O,{makeMeaning:l,inferenceServices:B}),s.default.createElement(U,{logs:[]})),t==="workers"&&s.default.createElement(s.default.Fragment,null,s.default.createElement("div",{className:"tab-meta"},s.default.createElement(P,{time:Q,label:"updated"})),s.default.createElement(K,{workers:I,inferenceServices:B}),s.default.createElement(U,{logs:[]})))))};typeof window<"u"&&(window.SemiontDashboard=window.SemiontDashboard||{},window.SemiontDashboard.WebDashboardApp=q);return ce(De);})();
12
12
  // Ensure global is set
13
13
  if (typeof window !== "undefined") { window.SemiontDashboard = SemiontDashboard; }
14
14
  //# sourceMappingURL=dashboard.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/core/dashboard/web-dashboard-app.tsx", "../../src/core/dashboard/sections/section-web-interface.tsx", "../../src/core/dashboard/sections/section-make-meaning.tsx", "../../src/core/dashboard/sections/dashboard-shared.tsx", "../../src/core/dashboard/sections/section-workers.tsx"],
4
4
  "sourcesContent": ["/**\n * Web Dashboard React Application\n */\n\nimport '@semiont/react-ui/styles/index.css';\nimport React, { useState, useEffect } from 'react';\nimport type { ServiceStatus, LogEntry, MakeMeaningStatus, WorkerStatus } from './dashboard-components.js';\nimport { SectionWebInterface } from './sections/section-web-interface.js';\nimport { SectionMakeMeaning } from './sections/section-make-meaning.js';\nimport { SectionWorkers } from './sections/section-workers.js';\n\ndeclare const window: any;\n\nconst DEFAULT_MAKE_MEANING: MakeMeaningStatus = {\n eventLog: { path: '' },\n contentStore: { path: '' },\n graph: { status: 'unknown' },\n materializedViews: { path: '' },\n actors: {\n gatherer: { state: 'unknown' },\n matcher: { state: 'unknown' },\n stower: { state: 'unknown' },\n browser: { state: 'unknown' },\n },\n};\n\ntype TabId = 'web' | 'make-meaning' | 'workers';\n\nconst LogViewer: React.FC<{ logs: LogEntry[]; service?: string }> = ({ logs, service }) => {\n const filtered = service ? logs.filter(l => l.service === service || !service) : logs;\n return (\n <div className=\"semiont-panel semiont-panel--bordered dashboard-logs\">\n <div className=\"semiont-panel-header\">\n <span className=\"semiont-panel-header__title\">Recent Logs</span>\n </div>\n {filtered.length === 0 ? (\n <div className=\"logs-empty\">No recent logs</div>\n ) : (\n <div className=\"logs-list\">\n {filtered.slice(0, 50).map((log, i) => (\n <div key={i} className={`log-entry log-entry--${log.level}`}>\n <span className=\"log-timestamp\">{new Date(log.timestamp).toLocaleTimeString()}</span>\n <span className=\"log-service\">{log.service}</span>\n <span className={`log-level semiont-badge semiont-badge--${log.level === 'error' ? 'error' : log.level === 'warn' ? 'warning' : 'info'}`}>\n <span className=\"semiont-badge__text\">{log.level.toUpperCase()}</span>\n </span>\n <span className=\"log-message\">{log.message}</span>\n </div>\n ))}\n </div>\n )}\n </div>\n );\n};\n\nconst TabBar: React.FC<{\n active: TabId;\n onChange: (t: TabId) => void;\n webHealthy: number; webTotal: number;\n mmHealthy: number; mmTotal: number;\n wkHealthy: number; wkTotal: number;\n}> = ({ active, onChange, webHealthy, webTotal, mmHealthy, mmTotal, wkHealthy, wkTotal }) => {\n const tabs: { id: TabId; label: string; healthy: number; total: number }[] = [\n { id: 'make-meaning', label: 'Make Meaning', healthy: mmHealthy, total: mmTotal },\n { id: 'workers', label: 'Workers', healthy: wkHealthy, total: wkTotal },\n { id: 'web', label: 'Web Interface', healthy: webHealthy, total: webTotal },\n ];\n\n function badgeClass(healthy: number, total: number) {\n if (total === 0) return 'semiont-badge semiont-badge--info';\n if (healthy === total) return 'semiont-badge semiont-badge--success';\n if (healthy === 0) return 'semiont-badge semiont-badge--error';\n return 'semiont-badge semiont-badge--warning';\n }\n\n return (\n <div className=\"dashboard-tabs\">\n {tabs.map(tab => (\n <button\n key={tab.id}\n className={`dashboard-tab${active === tab.id ? ' dashboard-tab--active' : ''}`}\n onClick={() => onChange(tab.id)}\n >\n {tab.label}\n <span className={badgeClass(tab.healthy, tab.total)}>\n <span className=\"semiont-badge__text\">{tab.healthy}/{tab.total}</span>\n </span>\n </button>\n ))}\n </div>\n );\n};\n\nconst UpdateTime: React.FC<{ time: Date | null; label: string }> = ({ time, label }) => (\n <span className=\"tab-update-time\">\n {label}: {time ? time.toLocaleTimeString() : '\u2014'}\n </span>\n);\n\nexport const WebDashboardApp: React.FC<{\n environment: string;\n refreshInterval: number;\n}> = ({ environment }) => {\n const [activeTab, setActiveTab] = useState<TabId>('make-meaning');\n\n const [services, setServices] = useState<ServiceStatus[]>([]);\n const [serviceLogs, setServiceLogs] = useState<LogEntry[]>([]);\n const [servicesUpdated, setServicesUpdated] = useState<Date | null>(null);\n\n const [makeMeaning, setMakeMeaning] = useState<MakeMeaningStatus>(DEFAULT_MAKE_MEANING);\n const [mmUpdated, setMmUpdated] = useState<Date | null>(null);\n\n const [workers, setWorkers] = useState<WorkerStatus[]>([]);\n const [workersUpdated, setWorkersUpdated] = useState<Date | null>(null);\n\n const [connected, setConnected] = useState(false);\n const [ready, setReady] = useState(false);\n\n useEffect(() => {\n const io = window.io;\n if (!io) { console.error('Socket.IO not loaded'); return; }\n\n const socket = io();\n socket.on('connect', () => setConnected(true));\n socket.on('disconnect', () => setConnected(false));\n\n socket.on('services-update', (d: { services: ServiceStatus[]; logs: LogEntry[]; lastUpdate: Date }) => {\n setServices(d.services);\n setServiceLogs(d.logs);\n setServicesUpdated(new Date());\n setReady(true);\n });\n\n socket.on('make-meaning-update', (d: MakeMeaningStatus & { lastUpdate?: Date }) => {\n const { lastUpdate, ...mm } = d as any;\n setMakeMeaning(mm);\n setMmUpdated(lastUpdate ? new Date(lastUpdate) : new Date());\n });\n\n socket.on('actors-update', (d: { actors: MakeMeaningStatus['actors']; lastUpdate?: Date }) => {\n setMakeMeaning(prev => ({ ...prev, actors: d.actors }));\n if (d.lastUpdate) setMmUpdated(new Date(d.lastUpdate));\n });\n\n socket.on('workers-update', (d: { workers: WorkerStatus[]; lastUpdate?: Date }) => {\n setWorkers(d.workers);\n setWorkersUpdated(d.lastUpdate ? new Date(d.lastUpdate) : new Date());\n if (!ready) setReady(true);\n });\n\n return () => socket.disconnect();\n }, []);\n\n if (!ready) {\n return (\n <div className=\"dashboard-container\">\n <div className=\"dashboard-loading\">\n <div className=\"semiont-spinner\" />\n </div>\n </div>\n );\n }\n\n // Bridge graph status from services array into makeMeaning\n const graphService = services.find((s: ServiceStatus) => s.name.toLowerCase() === 'graph');\n const mm: MakeMeaningStatus = graphService\n ? { ...makeMeaning, graph: { ...makeMeaning.graph,\n status: graphService.status === 'healthy' ? 'healthy'\n : graphService.status === 'unhealthy' ? 'unhealthy' : 'unknown',\n evidence: graphService.evidence } }\n : makeMeaning;\n\n const MAKE_MEANING_SERVICES = new Set(['graph', 'neo4j', 'janusgraph', 'neptune']);\n const inferenceServices = services.filter(s => s.name.toLowerCase().startsWith('inference.'));\n const webServices = services.filter(s => !MAKE_MEANING_SERVICES.has(s.name.toLowerCase()) && !s.name.toLowerCase().startsWith('inference.'));\n const webHealthy = webServices.filter(s => s.status === 'healthy').length;\n\n const mmHealthy = [\n mm.eventLog.eventCount !== undefined,\n mm.contentStore.fileCount !== undefined,\n mm.graph.status === 'healthy',\n mm.materializedViews.fileCount !== undefined,\n mm.actors.gatherer.state !== 'error' && mm.actors.gatherer.state !== 'unknown',\n mm.actors.matcher.state !== 'error' && mm.actors.matcher.state !== 'unknown',\n mm.actors.stower.state !== 'error' && mm.actors.stower.state !== 'unknown',\n mm.actors.browser.state !== 'error' && mm.actors.browser.state !== 'unknown',\n ].filter(Boolean).length;\n\n const wkHealthy = workers.filter(w => w.state !== 'error').length;\n\n return (\n <div className=\"dashboard-container\">\n <header className=\"dashboard-header semiont-panel semiont-panel--bordered\">\n <div className=\"dashboard-header-left\">\n <h1 className=\"dashboard-title\">Semiont Dashboard</h1>\n <span className=\"semiont-badge semiont-badge--info dashboard-env\">\n <span className=\"semiont-badge__text\">{environment}</span>\n </span>\n </div>\n <div className=\"dashboard-header-right\">\n <span className={`semiont-indicator ${connected ? 'semiont-indicator--online' : 'semiont-indicator--offline'}`} />\n <span className=\"dashboard-connection-label\">{connected ? 'Live' : 'Disconnected'}</span>\n </div>\n </header>\n\n <div className=\"semiont-panel semiont-panel--bordered dashboard-tab-panel\">\n <TabBar\n active={activeTab} onChange={setActiveTab}\n webHealthy={webHealthy} webTotal={webServices.length}\n mmHealthy={mmHealthy} mmTotal={8}\n wkHealthy={wkHealthy} wkTotal={workers.length}\n />\n\n <div className=\"tab-content\">\n {activeTab === 'web' && (\n <>\n <div className=\"tab-meta\">\n <UpdateTime time={servicesUpdated} label=\"updated\" />\n </div>\n <SectionWebInterface services={services} />\n <LogViewer logs={serviceLogs} />\n </>\n )}\n\n {activeTab === 'make-meaning' && (\n <>\n <div className=\"tab-meta\">\n <UpdateTime time={mmUpdated} label=\"updated\" />\n </div>\n <SectionMakeMeaning makeMeaning={mm} inferenceServices={inferenceServices} />\n <LogViewer logs={[]} />\n </>\n )}\n\n {activeTab === 'workers' && (\n <>\n <div className=\"tab-meta\">\n <UpdateTime time={workersUpdated} label=\"updated\" />\n </div>\n <SectionWorkers workers={workers} inferenceServices={inferenceServices} />\n <LogViewer logs={[]} />\n </>\n )}\n </div>\n </div>\n </div>\n );\n};\n\nif (typeof window !== 'undefined') {\n window.SemiontDashboard = window.SemiontDashboard || {};\n window.SemiontDashboard.WebDashboardApp = WebDashboardApp;\n}\n", "import React from 'react';\nimport type { ServiceStatus } from '../dashboard-components.js';\n\nconst TAG = 'semiont-tag semiont-tag--secondary semiont-tag--compact';\n\nconst MAKE_MEANING_SERVICES = new Set(['graph', 'neo4j', 'janusgraph', 'neptune']);\nconst isInferenceService = (name: string) => name.toLowerCase().startsWith('inference.');\n\nfunction formatServiceName(name: string): string {\n // \"inference.anthropic\" \u2192 \"Inference (Anthropic)\"\n const dotIdx = name.indexOf('.');\n if (dotIdx !== -1) {\n const base = name.slice(0, dotIdx);\n const qualifier = name.slice(dotIdx + 1);\n return base.charAt(0).toUpperCase() + base.slice(1) +\n ' (' + qualifier.charAt(0).toUpperCase() + qualifier.slice(1) + ')';\n }\n return name.charAt(0).toUpperCase() + name.slice(1);\n}\n\n// Display order for web interface services\nconst SERVICE_ORDER = ['proxy', 'frontend', 'backend', 'database'];\n\nfunction indicatorClass(status: ServiceStatus['status']): string {\n switch (status) {\n case 'healthy': return 'semiont-indicator semiont-indicator--online';\n case 'unhealthy': return 'semiont-indicator semiont-indicator--offline';\n case 'warning': return 'semiont-indicator semiont-indicator--busy';\n default: return 'semiont-indicator';\n }\n}\n\nfunction statusLabel(status: ServiceStatus['status']): string {\n switch (status) {\n case 'healthy': return 'healthy';\n case 'unhealthy': return 'unhealthy';\n case 'warning': return 'warning';\n default: return 'unknown';\n }\n}\n\nfunction statusBadgeClass(status: ServiceStatus['status']): string {\n switch (status) {\n case 'healthy': return 'semiont-badge semiont-badge--success';\n case 'unhealthy': return 'semiont-badge semiont-badge--error';\n case 'warning': return 'semiont-badge semiont-badge--warning';\n default: return 'semiont-badge semiont-badge--info';\n }\n}\n\nconst ServiceRow: React.FC<{ service: ServiceStatus }> = ({ service }) => {\n // Evidence tags: prefer structured evidence, fall back to parsing details string\n const tags: string[] = service.evidence && service.evidence.length > 0\n ? [...service.evidence]\n : (() => {\n const details = service.details || '';\n const out: string[] = [];\n const pidMatch = details.match(/[Pp][Ii][Dd]:\\s*(\\d+)/);\n const containerMatch = details.match(/[Cc]ontainer:\\s*(\\S+)/);\n if (pidMatch) out.push(`pid ${pidMatch[1]}`);\n if (containerMatch) out.push(`container ${containerMatch[1].slice(0, 12)}`);\n if (service.runningCount !== undefined && service.desiredCount !== undefined) {\n out.push(`${service.runningCount}/${service.desiredCount} tasks`);\n }\n return out;\n })();\n\n if (service.checkedAt) {\n tags.push(`checked ${new Date(service.checkedAt).toLocaleTimeString()}`);\n }\n\n const consoleLinks = getConsoleLinks(service);\n\n return (\n <div className=\"service-row\">\n <div className=\"service-row__indicator\">\n <span className={indicatorClass(service.status)} />\n </div>\n <div className=\"service-row__name\">{formatServiceName(service.name)}</div>\n <div className=\"service-row__host\">\n {service.hostname\n ? <span className=\"service-row__hostname\">{service.hostname}</span>\n : <span className=\"service-row__hostname service-row__hostname--dim\">\u2014</span>\n }\n </div>\n <div className=\"service-row__status\">\n <span className={statusBadgeClass(service.status)}>\n <span className=\"semiont-badge__text\">{statusLabel(service.status)}</span>\n </span>\n </div>\n <div className=\"service-row__tags\">\n {tags.map((t, i) => <span key={i} className={TAG}>{t}</span>)}\n </div>\n <div className=\"service-row__actions\">\n {consoleLinks.map((link, i) => (\n <a key={i} href={link.url} target=\"_blank\" rel=\"noopener noreferrer\"\n className=\"semiont-tag semiont-tag--info semiont-tag--compact\">\n {link.label}\n </a>\n ))}\n </div>\n </div>\n );\n};\n\nfunction getConsoleLinks(service: ServiceStatus) {\n const links: { label: string; url: string }[] = [];\n const region = service.awsRegion || 'us-east-1';\n if (service.ecsServiceName && service.ecsClusterName) {\n links.push({ label: 'Console \u2197', url: `https://console.aws.amazon.com/ecs/home?region=${region}#/clusters/${service.ecsClusterName}/services/${service.ecsServiceName}/details` });\n if (service.logGroupName) {\n links.push({ label: 'Logs \u2197', url: `https://console.aws.amazon.com/cloudwatch/home?region=${region}#logsV2:log-groups/log-group/${encodeURIComponent(service.logGroupName)}` });\n }\n }\n if (service.rdsInstanceId) {\n links.push({ label: 'Console \u2197', url: `https://console.aws.amazon.com/rds/home?region=${region}#database:id=${service.rdsInstanceId};is-cluster=false` });\n }\n return links;\n}\n\ninterface Props {\n services: ServiceStatus[];\n}\n\nexport const SectionWebInterface: React.FC<Props> = ({ services }) => {\n const webServices = services.filter(s => !MAKE_MEANING_SERVICES.has(s.name.toLowerCase()) && !isInferenceService(s.name));\n\n // Sort by preferred order, then alphabetically for anything unknown\n const sorted = [...webServices].sort((a, b) => {\n const ai = SERVICE_ORDER.indexOf(a.name.toLowerCase());\n const bi = SERVICE_ORDER.indexOf(b.name.toLowerCase());\n if (ai === -1 && bi === -1) return a.name.localeCompare(b.name);\n if (ai === -1) return 1;\n if (bi === -1) return -1;\n return ai - bi;\n });\n\n return (\n <div className=\"service-list\">\n <div className=\"service-list__header\">\n <div className=\"service-row__indicator\" />\n <div className=\"service-row__name\">Service</div>\n <div className=\"service-row__host\">Address</div>\n <div className=\"service-row__status\">Status</div>\n <div className=\"service-row__tags\">Details</div>\n <div className=\"service-row__actions\" />\n </div>\n {sorted.map((s, i) => <ServiceRow key={i} service={s} />)}\n </div>\n );\n};\n", "import React from 'react';\nimport type { MakeMeaningStatus, ActorStatus, ServiceStatus } from '../dashboard-components.js';\nimport { MmRow, MmGroup, SectionInference } from './dashboard-shared.js';\n\nfunction formatBytes(bytes: number): string {\n if (bytes === 0) return '0 B';\n const k = 1024;\n const sizes = ['B', 'KB', 'MB', 'GB', 'TB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return `${(bytes / Math.pow(k, i)).toFixed(1)} ${sizes[i]}`;\n}\n\nfunction truncatePath(p: string, max = 40): string {\n if (p.length <= max) return p;\n return '\u2026' + p.slice(p.length - max + 1);\n}\n\nfunction actorIndicatorClass(actor: ActorStatus): string {\n switch (actor.state) {\n case 'active': return 'semiont-indicator semiont-indicator--online semiont-indicator--pulse';\n case 'idle': return 'semiont-indicator semiont-indicator--online';\n case 'error': return 'semiont-indicator semiont-indicator--offline';\n default: return 'semiont-indicator';\n }\n}\n\nfunction graphIndicatorClass(status: MakeMeaningStatus['graph']['status']): string {\n switch (status) {\n case 'healthy': return 'semiont-indicator semiont-indicator--online';\n case 'unhealthy': return 'semiont-indicator semiont-indicator--offline';\n default: return 'semiont-indicator';\n }\n}\n\ninterface Props {\n makeMeaning: MakeMeaningStatus;\n inferenceServices: ServiceStatus[];\n}\n\nexport const SectionMakeMeaning: React.FC<Props> = ({ makeMeaning: mm, inferenceServices }) => {\n return (\n <div className=\"mm-sections\">\n\n <MmGroup title=\"System of Record\">\n <MmRow\n indicator=\"semiont-indicator semiont-indicator--online\"\n label=\"Event Log\"\n value={mm.eventLog.eventCount !== undefined\n ? mm.eventLog.eventCount.toLocaleString() + ' events'\n : 'unknown'}\n tags={[\n mm.eventLog.streamCount !== undefined && `${mm.eventLog.streamCount} streams`,\n mm.eventLog.sizeBytes !== undefined && formatBytes(mm.eventLog.sizeBytes),\n mm.eventLog.path && truncatePath(mm.eventLog.path),\n ]}\n />\n <MmRow\n indicator=\"semiont-indicator semiont-indicator--online\"\n label=\"Content Store\"\n value={mm.contentStore.sizeBytes !== undefined\n ? formatBytes(mm.contentStore.sizeBytes)\n : 'unknown'}\n tags={[\n mm.contentStore.fileCount !== undefined && `${mm.contentStore.fileCount} files`,\n mm.contentStore.path && truncatePath(mm.contentStore.path),\n ]}\n />\n </MmGroup>\n\n <MmGroup title=\"Projections\">\n <MmRow\n indicator={graphIndicatorClass(mm.graph.status)}\n label=\"Graph\"\n value={mm.graph.status}\n tags={[\n mm.graph.address,\n mm.graph.database,\n ...(mm.graph.evidence ?? []),\n ]}\n />\n <MmRow\n indicator=\"semiont-indicator semiont-indicator--online\"\n label=\"Materialized Views\"\n value={mm.materializedViews.fileCount !== undefined\n ? `${mm.materializedViews.fileCount} projections`\n : 'unknown'}\n tags={[\n mm.materializedViews.lastUpdated &&\n `updated ${new Date(mm.materializedViews.lastUpdated).toLocaleTimeString()}`,\n mm.materializedViews.path && truncatePath(mm.materializedViews.path),\n ]}\n />\n </MmGroup>\n\n <MmGroup title=\"Actors\">\n {(['gatherer', 'matcher', 'stower', 'browser'] as const).map(name => {\n const actor = mm.actors[name];\n return (\n <MmRow\n key={name}\n indicator={actorIndicatorClass(actor)}\n label={name.charAt(0).toUpperCase() + name.slice(1)}\n value={actor.state}\n tags={[\n actor.provider,\n actor.model,\n actor.errorMessage && actor.errorMessage.slice(0, 40),\n ]}\n />\n );\n })}\n </MmGroup>\n\n <SectionInference inferenceServices={inferenceServices} />\n\n </div>\n );\n};\n", "import React from 'react';\nimport type { ServiceStatus } from '../dashboard-components.js';\n\nconst TAG = 'semiont-tag semiont-tag--secondary semiont-tag--compact';\n\nexport const MmRow: React.FC<{\n indicator: string;\n label: string;\n value: string;\n tags?: (string | undefined | false)[];\n}> = ({ indicator, label, value, tags }) => (\n <div className=\"mm-row\">\n <div className=\"mm-row__indicator\"><span className={indicator} /></div>\n <div className=\"mm-row__label\">{label}</div>\n <div className=\"mm-row__value\">{value}</div>\n <div className=\"mm-row__tags\">\n {tags?.filter(Boolean).map((t, i) => (\n <span key={i} className={TAG}>{t as string}</span>\n ))}\n </div>\n </div>\n);\n\nexport const MmGroup: React.FC<{ title: string; children: React.ReactNode }> = ({ title, children }) => (\n <div className=\"mm-group\">\n <div className=\"mm-group__title\">{title}</div>\n <div className=\"mm-list\">{children}</div>\n </div>\n);\n\nexport function inferenceIndicatorClass(status: ServiceStatus['status']): string {\n switch (status) {\n case 'healthy': return 'semiont-indicator semiont-indicator--online';\n case 'unhealthy': return 'semiont-indicator semiont-indicator--offline';\n default: return 'semiont-indicator';\n }\n}\n\nexport function inferenceServiceLabel(name: string): string {\n // \"inference.anthropic\" \u2192 \"Anthropic\"\n return name.includes('.')\n ? name.slice(name.indexOf('.') + 1).replace(/^\\w/, c => c.toUpperCase())\n : name;\n}\n\nexport const SectionInference: React.FC<{ inferenceServices: ServiceStatus[] }> = ({ inferenceServices }) => {\n if (inferenceServices.length === 0) return null;\n return (\n <MmGroup title=\"Inference\">\n {inferenceServices.map(svc => (\n <MmRow\n key={svc.name}\n indicator={inferenceIndicatorClass(svc.status)}\n label={inferenceServiceLabel(svc.name)}\n value={svc.status}\n tags={svc.evidence}\n />\n ))}\n </MmGroup>\n );\n};\n", "import React from 'react';\nimport type { WorkerStatus, ServiceStatus } from '../dashboard-components.js';\nimport { SectionInference } from './dashboard-shared.js';\n\nconst TAG_SEC = 'semiont-tag semiont-tag--secondary semiont-tag--compact';\n\nconst WORKER_LABELS: Record<WorkerStatus['type'], string> = {\n 'reference-annotation': 'Reference Annotation',\n 'highlight-annotation': 'Highlight Annotation',\n 'assessment-annotation': 'Assessment Annotation',\n 'comment-annotation': 'Comment Annotation',\n 'tag-annotation': 'Tag Annotation',\n 'generation': 'Generation',\n};\n\nfunction idleSince(last: Date): string {\n const ms = Date.now() - last.getTime();\n const mins = Math.floor(ms / 60000);\n if (mins < 1) return 'just now';\n if (mins < 60) return `${mins}m ago`;\n const hrs = Math.floor(mins / 60);\n if (hrs < 24) return `${hrs}h ago`;\n return `${Math.floor(hrs / 24)}d ago`;\n}\n\nfunction workerIndicatorClass(w: WorkerStatus): string {\n if (w.state === 'error') return 'semiont-indicator semiont-indicator--offline';\n if (w.activeCount > 0) return 'semiont-indicator semiont-indicator--online semiont-indicator--pulse';\n if (w.pendingCount > 10) return 'semiont-indicator semiont-indicator--busy';\n return 'semiont-indicator semiont-indicator--online';\n}\n\ninterface Props {\n workers: WorkerStatus[];\n inferenceServices: ServiceStatus[];\n}\n\nexport const SectionWorkers: React.FC<Props> = ({ workers, inferenceServices }) => {\n return (\n <div className=\"mm-sections\">\n <div className=\"mm-group\">\n <div className=\"mm-group__title\">Workers</div>\n <div className=\"mm-list\">\n <div className=\"mm-row mm-row--header\">\n <div className=\"mm-row__indicator\" />\n <div className=\"mm-row__label\">Worker</div>\n <div className=\"mm-row__value\">Status</div>\n <div className=\"mm-row__tags\">Details</div>\n </div>\n {workers.map((w, i) => (\n <div key={i} className=\"mm-row\">\n <div className=\"mm-row__indicator\"><span className={workerIndicatorClass(w)} /></div>\n <div className=\"mm-row__label\">{WORKER_LABELS[w.type]}</div>\n <div className=\"mm-row__value\">{w.state}</div>\n <div className=\"mm-row__tags\">\n <span className={w.activeCount > 0 ? 'semiont-tag semiont-tag--success semiont-tag--compact' : TAG_SEC}>\n {w.activeCount} active\n </span>\n <span className={TAG_SEC}>{w.pendingCount} pending</span>\n {w.completedCount > 0 && (\n <span className={TAG_SEC}>{w.completedCount} done</span>\n )}\n {w.failedCount > 0 && (\n <span className={'semiont-tag semiont-tag--warning semiont-tag--compact'}>{w.failedCount} failed</span>\n )}\n {w.state === 'idle' && !w.lastProcessed && (\n <span className={TAG_SEC}>never used</span>\n )}\n {w.lastProcessed && w.state === 'idle' && (\n <span className={TAG_SEC}>last used {idleSince(new Date(w.lastProcessed))}</span>\n )}\n {w.lastProcessed && w.state !== 'idle' && (\n <span className={TAG_SEC}>last {new Date(w.lastProcessed).toLocaleTimeString()}</span>\n )}\n </div>\n </div>\n ))}\n </div>\n </div>\n\n <SectionInference inferenceServices={inferenceServices} />\n </div>\n );\n};\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["web_dashboard_app_exports", "__export", "WebDashboardApp", "import_react", "import_react", "TAG", "MAKE_MEANING_SERVICES", "isInferenceService", "name", "formatServiceName", "dotIdx", "base", "qualifier", "SERVICE_ORDER", "indicatorClass", "status", "statusLabel", "statusBadgeClass", "ServiceRow", "service", "tags", "details", "out", "pidMatch", "containerMatch", "consoleLinks", "getConsoleLinks", "React", "t", "i", "link", "links", "region", "SectionWebInterface", "services", "sorted", "s", "b", "ai", "bi", "import_react", "import_react", "TAG", "MmRow", "indicator", "label", "value", "tags", "React", "t", "i", "MmGroup", "title", "children", "inferenceIndicatorClass", "status", "inferenceServiceLabel", "name", "c", "SectionInference", "inferenceServices", "svc", "formatBytes", "bytes", "k", "sizes", "i", "truncatePath", "p", "max", "actorIndicatorClass", "actor", "graphIndicatorClass", "status", "SectionMakeMeaning", "mm", "inferenceServices", "React", "MmGroup", "MmRow", "name", "SectionInference", "import_react", "TAG_SEC", "WORKER_LABELS", "idleSince", "last", "ms", "mins", "hrs", "workerIndicatorClass", "w", "SectionWorkers", "workers", "inferenceServices", "React", "i", "SectionInference", "DEFAULT_MAKE_MEANING", "LogViewer", "logs", "service", "filtered", "l", "React", "log", "i", "TabBar", "active", "onChange", "webHealthy", "webTotal", "mmHealthy", "mmTotal", "wkHealthy", "wkTotal", "tabs", "badgeClass", "healthy", "total", "tab", "UpdateTime", "time", "label", "WebDashboardApp", "environment", "activeTab", "setActiveTab", "services", "setServices", "serviceLogs", "setServiceLogs", "servicesUpdated", "setServicesUpdated", "makeMeaning", "setMakeMeaning", "mmUpdated", "setMmUpdated", "workers", "setWorkers", "workersUpdated", "setWorkersUpdated", "connected", "setConnected", "ready", "setReady", "io", "socket", "d", "lastUpdate", "mm", "prev", "graphService", "s", "MAKE_MEANING_SERVICES", "inferenceServices", "webServices", "w", "SectionWebInterface", "SectionMakeMeaning", "SectionWorkers"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{n as e}from"./rolldown-runtime-jpDsebLB.js";import{i as t}from"./i18n-B53Yefbh.js";var n=e(t());function r({title:e,titleId:t,...r},i){return n.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:i,"aria-labelledby":t},r),e?n.createElement(`title`,{id:t},e):null,n.createElement(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5`}))}var i=n.forwardRef(r);export{i as t};
2
- //# sourceMappingURL=ArrowsRightLeftIcon-eQUXtsyS.js.map
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{i as t}from"./i18n-X0oNIUcF.js";var n=e(t());function r({title:e,titleId:t,...r},i){return n.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:i,"aria-labelledby":t},r),e?n.createElement(`title`,{id:t},e):null,n.createElement(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5`}))}var i=n.forwardRef(r);export{i as t};
2
+ //# sourceMappingURL=ArrowsRightLeftIcon-C7eE1lVN.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArrowsRightLeftIcon-eQUXtsyS.js","names":[],"sources":["../../../../node_modules/@heroicons/react/24/outline/esm/ArrowsRightLeftIcon.js"],"sourcesContent":["import * as React from \"react\";\nfunction ArrowsRightLeftIcon({\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: \"M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(ArrowsRightLeftIcon);\nexport default ForwardRef;"],"x_google_ignoreList":[0],"mappings":"uGACA,SAAS,EAAoB,CAC3B,QACA,UACA,GAAG,GACF,EAAQ,CACT,OAAoB,EAAM,cAAc,MAAO,OAAO,OAAO,CAC3D,MAAO,6BACP,KAAM,OACN,QAAS,YACT,YAAa,IACb,OAAQ,eACR,cAAe,OACf,YAAa,OACb,IAAK,EACL,kBAAmB,EACpB,CAAE,EAAM,CAAE,EAAqB,EAAM,cAAc,QAAS,CAC3D,GAAI,EACL,CAAE,EAAM,CAAG,KAAmB,EAAM,cAAc,OAAQ,CACzD,cAAe,QACf,eAAgB,QAChB,EAAG,6EACJ,CAAC,CAAC,CAEL,IAAM,EAA2B,EAAM,WAAW,EAAoB"}
1
+ {"version":3,"file":"ArrowsRightLeftIcon-C7eE1lVN.js","names":[],"sources":["../../../../node_modules/@heroicons/react/24/outline/esm/ArrowsRightLeftIcon.js"],"sourcesContent":["import * as React from \"react\";\nfunction ArrowsRightLeftIcon({\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: \"M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(ArrowsRightLeftIcon);\nexport default ForwardRef;"],"x_google_ignoreList":[0],"mappings":"uGACA,SAAS,EAAoB,CAC3B,QACA,UACA,GAAG,GACF,EAAQ,CACT,OAAoB,EAAM,cAAc,MAAO,OAAO,OAAO,CAC3D,MAAO,6BACP,KAAM,OACN,QAAS,YACT,YAAa,IACb,OAAQ,eACR,cAAe,OACf,YAAa,OACb,IAAK,EACL,kBAAmB,CACrB,EAAG,CAAK,EAAG,EAAqB,EAAM,cAAc,QAAS,CAC3D,GAAI,CACN,EAAG,CAAK,EAAI,KAAmB,EAAM,cAAc,OAAQ,CACzD,cAAe,QACf,eAAgB,QAChB,EAAG,4EACL,CAAC,CAAC,CACJ,CACA,IAAM,EAA2B,EAAM,WAAW,CAAmB"}
@@ -1,2 +1,2 @@
1
- import{n as e}from"./rolldown-runtime-jpDsebLB.js";import{i as t}from"./i18n-B53Yefbh.js";var n=e(t());function r({title:e,titleId:t,...r},i){return n.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:i,"aria-labelledby":t},r),e?n.createElement(`title`,{id:t},e):null,n.createElement(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5`}))}var i=n.forwardRef(r);function a({title:e,titleId:t,...r},i){return n.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:i,"aria-labelledby":t},r),e?n.createElement(`title`,{id:t},e):null,n.createElement(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M15.75 19.5 8.25 12l7.5-7.5`}))}var o=n.forwardRef(a);export{i as n,o as t};
2
- //# sourceMappingURL=ChevronLeftIcon-QLs1eT1j.js.map
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{i as t}from"./i18n-X0oNIUcF.js";var n=e(t());function r({title:e,titleId:t,...r},i){return n.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:i,"aria-labelledby":t},r),e?n.createElement(`title`,{id:t},e):null,n.createElement(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5`}))}var i=n.forwardRef(r);function a({title:e,titleId:t,...r},i){return n.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:i,"aria-labelledby":t},r),e?n.createElement(`title`,{id:t},e):null,n.createElement(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M15.75 19.5 8.25 12l7.5-7.5`}))}var o=n.forwardRef(a);export{i as n,o as t};
2
+ //# sourceMappingURL=ChevronLeftIcon-BItMAxjy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChevronLeftIcon-QLs1eT1j.js","names":["ForwardRef"],"sources":["../../../../node_modules/@heroicons/react/24/outline/esm/Bars3Icon.js","../../../../node_modules/@heroicons/react/24/outline/esm/ChevronLeftIcon.js"],"sourcesContent":["import * as React from \"react\";\nfunction Bars3Icon({\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: \"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(Bars3Icon);\nexport default ForwardRef;","import * as React from \"react\";\nfunction ChevronLeftIcon({\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 19.5 8.25 12l7.5-7.5\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(ChevronLeftIcon);\nexport default ForwardRef;"],"x_google_ignoreList":[0,1],"mappings":"uGACA,SAAS,EAAU,CACjB,QACA,UACA,GAAG,GACF,EAAQ,CACT,OAAoB,EAAM,cAAc,MAAO,OAAO,OAAO,CAC3D,MAAO,6BACP,KAAM,OACN,QAAS,YACT,YAAa,IACb,OAAQ,eACR,cAAe,OACf,YAAa,OACb,IAAK,EACL,kBAAmB,EACpB,CAAE,EAAM,CAAE,EAAqB,EAAM,cAAc,QAAS,CAC3D,GAAI,EACL,CAAE,EAAM,CAAG,KAAmB,EAAM,cAAc,OAAQ,CACzD,cAAe,QACf,eAAgB,QAChB,EAAG,+CACJ,CAAC,CAAC,CAEL,IAAMA,EAA2B,EAAM,WAAW,EAAU,CCvB5D,SAAS,EAAgB,CACvB,QACA,UACA,GAAG,GACF,EAAQ,CACT,OAAoB,EAAM,cAAc,MAAO,OAAO,OAAO,CAC3D,MAAO,6BACP,KAAM,OACN,QAAS,YACT,YAAa,IACb,OAAQ,eACR,cAAe,OACf,YAAa,OACb,IAAK,EACL,kBAAmB,EACpB,CAAE,EAAM,CAAE,EAAqB,EAAM,cAAc,QAAS,CAC3D,GAAI,EACL,CAAE,EAAM,CAAG,KAAmB,EAAM,cAAc,OAAQ,CACzD,cAAe,QACf,eAAgB,QAChB,EAAG,8BACJ,CAAC,CAAC,CAEL,IAAM,EAA2B,EAAM,WAAW,EAAgB"}
1
+ {"version":3,"file":"ChevronLeftIcon-BItMAxjy.js","names":["ForwardRef"],"sources":["../../../../node_modules/@heroicons/react/24/outline/esm/Bars3Icon.js","../../../../node_modules/@heroicons/react/24/outline/esm/ChevronLeftIcon.js"],"sourcesContent":["import * as React from \"react\";\nfunction Bars3Icon({\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: \"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(Bars3Icon);\nexport default ForwardRef;","import * as React from \"react\";\nfunction ChevronLeftIcon({\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 19.5 8.25 12l7.5-7.5\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(ChevronLeftIcon);\nexport default ForwardRef;"],"x_google_ignoreList":[0,1],"mappings":"uGACA,SAAS,EAAU,CACjB,QACA,UACA,GAAG,GACF,EAAQ,CACT,OAAoB,EAAM,cAAc,MAAO,OAAO,OAAO,CAC3D,MAAO,6BACP,KAAM,OACN,QAAS,YACT,YAAa,IACb,OAAQ,eACR,cAAe,OACf,YAAa,OACb,IAAK,EACL,kBAAmB,CACrB,EAAG,CAAK,EAAG,EAAqB,EAAM,cAAc,QAAS,CAC3D,GAAI,CACN,EAAG,CAAK,EAAI,KAAmB,EAAM,cAAc,OAAQ,CACzD,cAAe,QACf,eAAgB,QAChB,EAAG,8CACL,CAAC,CAAC,CACJ,CACA,IAAMA,EAA2B,EAAM,WAAW,CAAS,ECvB3D,SAAS,EAAgB,CACvB,QACA,UACA,GAAG,GACF,EAAQ,CACT,OAAoB,EAAM,cAAc,MAAO,OAAO,OAAO,CAC3D,MAAO,6BACP,KAAM,OACN,QAAS,YACT,YAAa,IACb,OAAQ,eACR,cAAe,OACf,YAAa,OACb,IAAK,EACL,kBAAmB,CACrB,EAAG,CAAK,EAAG,EAAqB,EAAM,cAAc,QAAS,CAC3D,GAAI,CACN,EAAG,CAAK,EAAI,KAAmB,EAAM,cAAc,OAAQ,CACzD,cAAe,QACf,eAAgB,QAChB,EAAG,6BACL,CAAC,CAAC,CACJ,CACA,IAAM,EAA2B,EAAM,WAAW,CAAe"}
@@ -1,2 +1,2 @@
1
- import{n as e}from"./rolldown-runtime-jpDsebLB.js";import{i as t}from"./i18n-B53Yefbh.js";var n=e(t());function r({title:e,titleId:t,...r},i){return n.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:i,"aria-labelledby":t},r),e?n.createElement(`title`,{id:t},e):null,n.createElement(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`m6.75 7.5 3 2.25-3 2.25m4.5 0h3m-9 8.25h13.5A2.25 2.25 0 0 0 21 18V6a2.25 2.25 0 0 0-2.25-2.25H5.25A2.25 2.25 0 0 0 3 6v12a2.25 2.25 0 0 0 2.25 2.25Z`}))}var i=n.forwardRef(r);export{i as t};
2
- //# sourceMappingURL=CommandLineIcon-BEeeWFhQ.js.map
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{i as t}from"./i18n-X0oNIUcF.js";var n=e(t());function r({title:e,titleId:t,...r},i){return n.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:i,"aria-labelledby":t},r),e?n.createElement(`title`,{id:t},e):null,n.createElement(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`m6.75 7.5 3 2.25-3 2.25m4.5 0h3m-9 8.25h13.5A2.25 2.25 0 0 0 21 18V6a2.25 2.25 0 0 0-2.25-2.25H5.25A2.25 2.25 0 0 0 3 6v12a2.25 2.25 0 0 0 2.25 2.25Z`}))}var i=n.forwardRef(r);export{i as t};
2
+ //# sourceMappingURL=CommandLineIcon-BxjxKXBi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CommandLineIcon-BEeeWFhQ.js","names":[],"sources":["../../../../node_modules/@heroicons/react/24/outline/esm/CommandLineIcon.js"],"sourcesContent":["import * as React from \"react\";\nfunction CommandLineIcon({\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: \"m6.75 7.5 3 2.25-3 2.25m4.5 0h3m-9 8.25h13.5A2.25 2.25 0 0 0 21 18V6a2.25 2.25 0 0 0-2.25-2.25H5.25A2.25 2.25 0 0 0 3 6v12a2.25 2.25 0 0 0 2.25 2.25Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(CommandLineIcon);\nexport default ForwardRef;"],"x_google_ignoreList":[0],"mappings":"uGACA,SAAS,EAAgB,CACvB,QACA,UACA,GAAG,GACF,EAAQ,CACT,OAAoB,EAAM,cAAc,MAAO,OAAO,OAAO,CAC3D,MAAO,6BACP,KAAM,OACN,QAAS,YACT,YAAa,IACb,OAAQ,eACR,cAAe,OACf,YAAa,OACb,IAAK,EACL,kBAAmB,EACpB,CAAE,EAAM,CAAE,EAAqB,EAAM,cAAc,QAAS,CAC3D,GAAI,EACL,CAAE,EAAM,CAAG,KAAmB,EAAM,cAAc,OAAQ,CACzD,cAAe,QACf,eAAgB,QAChB,EAAG,wJACJ,CAAC,CAAC,CAEL,IAAM,EAA2B,EAAM,WAAW,EAAgB"}
1
+ {"version":3,"file":"CommandLineIcon-BxjxKXBi.js","names":[],"sources":["../../../../node_modules/@heroicons/react/24/outline/esm/CommandLineIcon.js"],"sourcesContent":["import * as React from \"react\";\nfunction CommandLineIcon({\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: \"m6.75 7.5 3 2.25-3 2.25m4.5 0h3m-9 8.25h13.5A2.25 2.25 0 0 0 21 18V6a2.25 2.25 0 0 0-2.25-2.25H5.25A2.25 2.25 0 0 0 3 6v12a2.25 2.25 0 0 0 2.25 2.25Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(CommandLineIcon);\nexport default ForwardRef;"],"x_google_ignoreList":[0],"mappings":"uGACA,SAAS,EAAgB,CACvB,QACA,UACA,GAAG,GACF,EAAQ,CACT,OAAoB,EAAM,cAAc,MAAO,OAAO,OAAO,CAC3D,MAAO,6BACP,KAAM,OACN,QAAS,YACT,YAAa,IACb,OAAQ,eACR,cAAe,OACf,YAAa,OACb,IAAK,EACL,kBAAmB,CACrB,EAAG,CAAK,EAAG,EAAqB,EAAM,cAAc,QAAS,CAC3D,GAAI,CACN,EAAG,CAAK,EAAI,KAAmB,EAAM,cAAc,OAAQ,CACzD,cAAe,QACf,eAAgB,QAChB,EAAG,uJACL,CAAC,CAAC,CACJ,CACA,IAAM,EAA2B,EAAM,WAAW,CAAe"}
@@ -0,0 +1,2 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{i as t,t as n}from"./i18n-X0oNIUcF.js";import{t as r}from"./vendor-Bd-5Ya9C.js";import{c as i,i as a,r as o,s,u as c}from"./KeyboardShortcutsContext-4ZRypoQr.js";import{n as l,t as u}from"./XMarkIcon-D1vU4NLc.js";var d=e(t());function f({title:e,titleId:t,...n},r){return d.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:r,"aria-labelledby":t},n),e?d.createElement(`title`,{id:t},e):null,d.createElement(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3`}))}var p=d.forwardRef(f);function m({title:e,titleId:t,...n},r){return d.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:r,"aria-labelledby":t},n),e?d.createElement(`title`,{id:t},e):null,d.createElement(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M4.5 12a7.5 7.5 0 0 0 15 0m-15 0a7.5 7.5 0 1 1 15 0m-15 0H3m16.5 0H21m-1.5 0H12m-8.457 3.077 1.41-.513m14.095-5.13 1.41-.513M5.106 17.785l1.15-.964m11.49-9.642 1.149-.964M7.501 19.795l.75-1.3m7.5-12.99.75-1.3m-6.063 16.658.26-1.477m2.605-14.772.26-1.477m0 17.726-.26-1.477M10.698 4.614l-.26-1.477M16.5 19.794l-.75-1.299M7.5 4.205 12 12m6.894 5.785-1.149-.964M6.256 7.178l-1.15-.964m15.352 8.864-1.41-.513M4.954 9.435l-1.41-.514M12.002 12l-3.75 6.495`}))}var h=d.forwardRef(m);function g({title:e,titleId:t,...n},r){return d.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:r,"aria-labelledby":t},n),e?d.createElement(`title`,{id:t},e):null,d.createElement(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M9 12.75 11.25 15 15 9.75m-3-7.036A11.959 11.959 0 0 1 3.598 6 11.99 11.99 0 0 0 3 9.749c0 5.592 3.824 10.29 9 11.623 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.571-.598-3.751h-.152c-3.196 0-6.1-1.248-8.25-3.285Z`}))}var _=d.forwardRef(g),v=r();function y({isOpen:e,onClose:t}){let{t:r}=n(),f=(e,t)=>r(`CookiePreferences.${e}`,t),[m,g]=(0,d.useState)(null),[y,b]=(0,d.useState)(!1),[x,S]=(0,d.useState)(!1),C=(0,d.useRef)(t);(0,d.useEffect)(()=>{C.current=t}),(0,d.useEffect)(()=>{e&&g(s()||{necessary:!0,analytics:!1,marketing:!1,preferences:!1,timestamp:new Date().toISOString(),version:`1.0`})},[e]),(0,d.useEffect)(()=>{if(!e)return;let t=e=>{e.key===`Escape`&&C.current()};return document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`keydown`,t)}},[e]);let w=async()=>{m&&(b(!0),i(m),b(!1),t())},T=e=>{e===`necessary`||!m||g(t=>t?{...t,[e]:!t[e]}:null)};return!e||!m?null:(0,v.jsxs)(`div`,{className:`fixed inset-0 z-50 overflow-y-auto`,children:[(0,v.jsxs)(`div`,{className:`flex items-center justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0`,children:[(0,v.jsx)(`div`,{className:`fixed inset-0 transition-opacity bg-gray-500 bg-opacity-75`,onClick:t}),(0,v.jsxs)(`div`,{className:`inline-block align-bottom bg-white rounded-lg px-4 pt-5 pb-4 text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-2xl sm:w-full sm:p-6 relative`,children:[(0,v.jsx)(`button`,{onClick:t,className:`absolute top-4 right-4 text-gray-400 hover:text-gray-600 transition-colors focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 rounded-lg p-1`,"aria-label":`Close`,children:(0,v.jsx)(u,{className:`h-6 w-6`})}),(0,v.jsxs)(`div`,{className:`sm:flex sm:items-start`,children:[(0,v.jsx)(`div`,{className:`mx-auto flex-shrink-0 flex items-center justify-center h-12 w-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10`,children:(0,v.jsx)(h,{className:`h-6 w-6 text-blue-600`})}),(0,v.jsxs)(`div`,{className:`mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left flex-1 pr-8`,children:[(0,v.jsx)(`h3`,{className:`text-lg leading-6 font-medium text-gray-900`,children:f(`title`)}),(0,v.jsx)(`div`,{className:`mt-2`,children:(0,v.jsx)(`p`,{className:`text-sm text-gray-500`,children:f(`description`)})})]})]}),(0,v.jsx)(`div`,{className:`mt-6`,children:(0,v.jsxs)(`div`,{className:`space-y-6`,children:[(0,v.jsxs)(`div`,{className:`bg-gray-50 rounded-lg p-4`,children:[(0,v.jsxs)(`div`,{className:`flex items-center`,children:[(0,v.jsx)(_,{className:`h-5 w-5 text-green-500 mr-2`}),(0,v.jsx)(`span`,{className:`text-sm font-medium text-gray-900`,children:f(`currentSettings`)})]}),(0,v.jsxs)(`div`,{className:`mt-2 text-xs text-gray-600`,children:[(0,v.jsx)(`p`,{children:f(`lastUpdated`,{date:new Date(m.timestamp).toLocaleDateString()})}),(0,v.jsx)(`p`,{children:f(`version`,{version:m.version})})]})]}),(0,v.jsxs)(`div`,{className:`space-y-4`,children:[(0,v.jsx)(`h4`,{className:`text-base font-medium text-gray-900`,children:f(`cookieCategories`)}),c.map(e=>(0,v.jsx)(`div`,{className:`border border-gray-200 rounded-lg p-4`,children:(0,v.jsx)(`div`,{className:`flex items-start justify-between`,children:(0,v.jsxs)(`div`,{className:`flex-1`,children:[(0,v.jsxs)(`div`,{className:`flex items-center`,children:[(0,v.jsx)(`input`,{id:`pref-${e.id}`,type:`checkbox`,checked:m[e.id]||!1,onChange:()=>T(e.id),disabled:e.required||y,className:`h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300 rounded-sm disabled:opacity-50`}),(0,v.jsxs)(`label`,{htmlFor:`pref-${e.id}`,className:`ml-3 text-sm font-medium text-gray-900 cursor-pointer`,children:[e.name,e.required&&(0,v.jsx)(`span`,{className:`text-xs text-gray-500 ml-1`,children:f(`required`)})]})]}),(0,v.jsx)(`p`,{className:`mt-1 text-sm text-gray-600`,children:e.description}),(0,v.jsxs)(`details`,{className:`mt-2`,children:[(0,v.jsx)(`summary`,{className:`text-xs text-blue-600 cursor-pointer hover:text-blue-800`,children:f(`viewCookies`,{count:e.cookies.length})}),(0,v.jsx)(`div`,{className:`mt-1 text-xs text-gray-500 bg-gray-50 rounded-sm p-2`,children:(0,v.jsx)(`ul`,{className:`list-disc list-inside space-y-1`,children:e.cookies.map(e=>(0,v.jsx)(`li`,{children:e},e))})})]})]})})},e.id))]}),(0,v.jsxs)(`div`,{className:`border-t border-gray-200 pt-6`,children:[(0,v.jsx)(`h4`,{className:`text-base font-medium text-gray-900 mb-4`,children:f(`dataManagement`)}),(0,v.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-4`,children:[(0,v.jsxs)(`button`,{onClick:()=>{let e=a(),t=new Blob([JSON.stringify(e,null,2)],{type:`application/json`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`semiont-user-data-${new Date().toISOString().split(`T`)[0]}.json`,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)},className:`flex items-center justify-center px-4 py-2 border border-gray-300 rounded-md shadow-xs text-sm font-medium text-gray-700 bg-white hover:bg-gray-50 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-blue-500`,children:[(0,v.jsx)(p,{className:`h-4 w-4 mr-2`}),f(`exportMyData`)]}),(0,v.jsxs)(`button`,{onClick:()=>S(!0),className:`flex items-center justify-center px-4 py-2 border border-red-300 rounded-md shadow-xs text-sm font-medium text-red-700 bg-white hover:bg-red-50 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-red-500`,children:[(0,v.jsx)(l,{className:`h-4 w-4 mr-2`}),f(`deleteAllData`)]})]}),(0,v.jsx)(`p`,{className:`mt-2 text-xs text-gray-500`,children:f(`dataManagementDescription`)})]})]})}),(0,v.jsxs)(`div`,{className:`mt-6 flex flex-wrap gap-2 justify-center`,children:[(0,v.jsx)(`button`,{type:`button`,onClick:()=>{g(e=>e?{...e,necessary:!0,analytics:!1,marketing:!1,preferences:!1}:null)},disabled:y,className:`px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 disabled:opacity-50 transition-colors`,children:f(`rejectAll`)}),(0,v.jsx)(`button`,{type:`button`,onClick:()=>{g(e=>e?{...e,necessary:!0,analytics:!0,marketing:!0,preferences:!0}:null)},disabled:y,className:`px-4 py-2 text-sm font-medium text-white bg-blue-600 border border-transparent rounded-md hover:bg-blue-700 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 disabled:opacity-50 transition-colors`,children:f(`acceptAll`)})]}),(0,v.jsxs)(`div`,{className:`mt-6 sm:flex sm:flex-row-reverse`,children:[(0,v.jsx)(`button`,{type:`button`,onClick:w,disabled:y,className:`w-full inline-flex justify-center rounded-md border border-transparent shadow-xs px-4 py-2 bg-blue-600 text-base font-medium text-white hover:bg-blue-700 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 sm:ml-3 sm:w-auto sm:text-sm disabled:opacity-50`,children:f(y?`saving`:`saveChanges`)}),(0,v.jsx)(`button`,{type:`button`,onClick:t,className:`mt-3 w-full inline-flex justify-center rounded-md border border-gray-300 shadow-xs px-4 py-2 bg-white text-base font-medium text-gray-700 hover:bg-gray-50 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 sm:mt-0 sm:w-auto sm:text-sm`,children:f(`cancel`)})]})]})]}),x&&(0,v.jsx)(`div`,{className:`fixed inset-0 z-60 overflow-y-auto`,children:(0,v.jsxs)(`div`,{className:`flex items-center justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0`,children:[(0,v.jsx)(`div`,{className:`fixed inset-0 transition-opacity bg-gray-500 bg-opacity-75`}),(0,v.jsxs)(`div`,{className:`inline-block align-bottom bg-white rounded-lg px-4 pt-5 pb-4 text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-lg sm:w-full sm:p-6`,children:[(0,v.jsxs)(`div`,{className:`sm:flex sm:items-start`,children:[(0,v.jsx)(`div`,{className:`mx-auto flex-shrink-0 flex items-center justify-center h-12 w-12 rounded-full bg-red-100 sm:mx-0 sm:h-10 sm:w-10`,children:(0,v.jsx)(l,{className:`h-6 w-6 text-red-600`})}),(0,v.jsxs)(`div`,{className:`mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left`,children:[(0,v.jsx)(`h3`,{className:`text-lg leading-6 font-medium text-gray-900`,children:f(`deleteConfirmTitle`)}),(0,v.jsx)(`div`,{className:`mt-2`,children:(0,v.jsx)(`p`,{className:`text-sm text-gray-500`,children:f(`deleteConfirmDescription`)})})]})]}),(0,v.jsxs)(`div`,{className:`mt-5 sm:mt-4 sm:flex sm:flex-row-reverse`,children:[(0,v.jsx)(`button`,{type:`button`,onClick:()=>{o()},className:`w-full inline-flex justify-center rounded-md border border-transparent shadow-xs px-4 py-2 bg-red-600 text-base font-medium text-white hover:bg-red-700 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-red-500 sm:ml-3 sm:w-auto sm:text-sm`,children:f(`deleteAllData`)}),(0,v.jsx)(`button`,{type:`button`,onClick:()=>S(!1),className:`mt-3 w-full inline-flex justify-center rounded-md border border-gray-300 shadow-xs px-4 py-2 bg-white text-base font-medium text-gray-700 hover:bg-gray-50 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 sm:mt-0 sm:w-auto sm:text-sm`,children:f(`cancel`)})]})]})]})})]})}export{_ as n,y as t};
2
+ //# sourceMappingURL=CookiePreferences-CQa2Mwuc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CookiePreferences-CQa2Mwuc.js","names":["ForwardRef","ForwardRef"],"sources":["../../../../node_modules/@heroicons/react/24/outline/esm/ArrowDownTrayIcon.js","../../../../node_modules/@heroicons/react/24/outline/esm/CogIcon.js","../../../../node_modules/@heroicons/react/24/outline/esm/ShieldCheckIcon.js","../../src/components/CookiePreferences.tsx"],"sourcesContent":["import * as React from \"react\";\nfunction ArrowDownTrayIcon({\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: \"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(ArrowDownTrayIcon);\nexport default ForwardRef;","import * as React from \"react\";\nfunction CogIcon({\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 12a7.5 7.5 0 0 0 15 0m-15 0a7.5 7.5 0 1 1 15 0m-15 0H3m16.5 0H21m-1.5 0H12m-8.457 3.077 1.41-.513m14.095-5.13 1.41-.513M5.106 17.785l1.15-.964m11.49-9.642 1.149-.964M7.501 19.795l.75-1.3m7.5-12.99.75-1.3m-6.063 16.658.26-1.477m2.605-14.772.26-1.477m0 17.726-.26-1.477M10.698 4.614l-.26-1.477M16.5 19.794l-.75-1.299M7.5 4.205 12 12m6.894 5.785-1.149-.964M6.256 7.178l-1.15-.964m15.352 8.864-1.41-.513M4.954 9.435l-1.41-.514M12.002 12l-3.75 6.495\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(CogIcon);\nexport default ForwardRef;","import * as React from \"react\";\nfunction ShieldCheckIcon({\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: \"M9 12.75 11.25 15 15 9.75m-3-7.036A11.959 11.959 0 0 1 3.598 6 11.99 11.99 0 0 0 3 9.749c0 5.592 3.824 10.29 9 11.623 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.571-.598-3.751h-.152c-3.196 0-6.1-1.248-8.25-3.285Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(ShieldCheckIcon);\nexport default ForwardRef;","\"use client\";\n\nimport { useState, useEffect, useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n getCookieConsent,\n setCookieConsent,\n COOKIE_CATEGORIES,\n CookieConsent,\n exportUserData,\n deleteAllUserData,\n type CookieCategory\n} from '@/lib/cookies';\nimport {\n CogIcon,\n TrashIcon,\n ArrowDownTrayIcon,\n ShieldCheckIcon,\n XMarkIcon\n} from '@heroicons/react/24/outline';\n\ninterface CookiePreferencesProps {\n isOpen: boolean;\n onClose: () => void;\n}\n\nexport function CookiePreferences({ isOpen, onClose }: CookiePreferencesProps) {\n const { t: _t } = useTranslation();\n const t = (k: string, p?: Record<string, unknown>) => _t(`CookiePreferences.${k}`, p as any) as string;\n const [consent, setConsent] = useState<CookieConsent | null>(null);\n const [isLoading, setIsLoading] = useState(false);\n const [showDeleteConfirm, setShowDeleteConfirm] = useState(false);\n\n // Store callback in ref to avoid including in dependency arrays\n const onCloseRef = useRef(onClose);\n useEffect(() => {\n onCloseRef.current = onClose;\n });\n\n useEffect(() => {\n if (isOpen) {\n const currentConsent = getCookieConsent();\n setConsent(currentConsent || {\n necessary: true,\n analytics: false,\n marketing: false,\n preferences: false,\n timestamp: new Date().toISOString(),\n version: '1.0'\n });\n }\n }, [isOpen]);\n\n // Handle ESC key to close modal\n useEffect(() => {\n if (!isOpen) {\n return undefined;\n }\n\n const handleEsc = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n onCloseRef.current();\n }\n };\n\n document.addEventListener('keydown', handleEsc);\n return () => {\n document.removeEventListener('keydown', handleEsc);\n };\n }, [isOpen]);\n\n const handleSave = async () => {\n if (!consent) return;\n \n setIsLoading(true);\n setCookieConsent(consent);\n setIsLoading(false);\n onClose();\n };\n\n const handleCategoryToggle = (categoryId: keyof Omit<CookieConsent, 'timestamp' | 'version'>) => {\n if (categoryId === 'necessary' || !consent) return;\n \n setConsent(prev => prev ? {\n ...prev,\n [categoryId]: !prev[categoryId]\n } : null);\n };\n\n const handleExportData = () => {\n const data = exportUserData();\n const blob = new Blob([JSON.stringify(data, null, 2)], { \n type: 'application/json' \n });\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = `semiont-user-data-${new Date().toISOString().split('T')[0]}.json`;\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n URL.revokeObjectURL(url);\n };\n\n const handleDeleteAllData = () => {\n deleteAllUserData();\n };\n\n if (!isOpen || !consent) return null;\n\n return (\n <div className=\"fixed inset-0 z-50 overflow-y-auto\">\n <div className=\"flex items-center justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0\">\n {/* Background overlay */}\n <div \n className=\"fixed inset-0 transition-opacity bg-gray-500 bg-opacity-75\"\n onClick={onClose}\n />\n\n {/* Modal panel */}\n <div className=\"inline-block align-bottom bg-white rounded-lg px-4 pt-5 pb-4 text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-2xl sm:w-full sm:p-6 relative\">\n {/* Close button in upper right */}\n <button\n onClick={onClose}\n className=\"absolute top-4 right-4 text-gray-400 hover:text-gray-600 transition-colors focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 rounded-lg p-1\"\n aria-label=\"Close\"\n >\n <XMarkIcon className=\"h-6 w-6\" />\n </button>\n\n <div className=\"sm:flex sm:items-start\">\n <div className=\"mx-auto flex-shrink-0 flex items-center justify-center h-12 w-12 rounded-full bg-blue-100 sm:mx-0 sm:h-10 sm:w-10\">\n <CogIcon className=\"h-6 w-6 text-blue-600\" />\n </div>\n <div className=\"mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left flex-1 pr-8\">\n <h3 className=\"text-lg leading-6 font-medium text-gray-900\">\n {t('title')}\n </h3>\n <div className=\"mt-2\">\n <p className=\"text-sm text-gray-500\">\n {t('description')}\n </p>\n </div>\n </div>\n </div>\n\n <div className=\"mt-6\">\n <div className=\"space-y-6\">\n {/* Current consent info */}\n <div className=\"bg-gray-50 rounded-lg p-4\">\n <div className=\"flex items-center\">\n <ShieldCheckIcon className=\"h-5 w-5 text-green-500 mr-2\" />\n <span className=\"text-sm font-medium text-gray-900\">\n {t('currentSettings')}\n </span>\n </div>\n <div className=\"mt-2 text-xs text-gray-600\">\n <p>{t('lastUpdated', { date: new Date(consent.timestamp).toLocaleDateString() })}</p>\n <p>{t('version', { version: consent.version })}</p>\n </div>\n </div>\n\n {/* Cookie categories */}\n <div className=\"space-y-4\">\n <h4 className=\"text-base font-medium text-gray-900\">\n {t('cookieCategories')}\n </h4>\n \n {COOKIE_CATEGORIES.map((category: CookieCategory) => (\n <div key={category.id} className=\"border border-gray-200 rounded-lg p-4\">\n <div className=\"flex items-start justify-between\">\n <div className=\"flex-1\">\n <div className=\"flex items-center\">\n <input\n id={`pref-${category.id}`}\n type=\"checkbox\"\n checked={consent[category.id] || false}\n onChange={() => handleCategoryToggle(category.id)}\n disabled={category.required || isLoading}\n className=\"h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300 rounded-sm disabled:opacity-50\"\n />\n <label\n htmlFor={`pref-${category.id}`}\n className=\"ml-3 text-sm font-medium text-gray-900 cursor-pointer\"\n >\n {category.name}\n {category.required && (\n <span className=\"text-xs text-gray-500 ml-1\">{t('required')}</span>\n )}\n </label>\n </div>\n <p className=\"mt-1 text-sm text-gray-600\">\n {category.description}\n </p>\n <details className=\"mt-2\">\n <summary className=\"text-xs text-blue-600 cursor-pointer hover:text-blue-800\">\n {t('viewCookies', { count: category.cookies.length })}\n </summary>\n <div className=\"mt-1 text-xs text-gray-500 bg-gray-50 rounded-sm p-2\">\n <ul className=\"list-disc list-inside space-y-1\">\n {category.cookies.map(cookie => (\n <li key={cookie}>{cookie}</li>\n ))}\n </ul>\n </div>\n </details>\n </div>\n </div>\n </div>\n ))}\n </div>\n\n {/* Data management section */}\n <div className=\"border-t border-gray-200 pt-6\">\n <h4 className=\"text-base font-medium text-gray-900 mb-4\">\n {t('dataManagement')}\n </h4>\n\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-4\">\n <button\n onClick={handleExportData}\n className=\"flex items-center justify-center px-4 py-2 border border-gray-300 rounded-md shadow-xs text-sm font-medium text-gray-700 bg-white hover:bg-gray-50 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-blue-500\"\n >\n <ArrowDownTrayIcon className=\"h-4 w-4 mr-2\" />\n {t('exportMyData')}\n </button>\n\n <button\n onClick={() => setShowDeleteConfirm(true)}\n className=\"flex items-center justify-center px-4 py-2 border border-red-300 rounded-md shadow-xs text-sm font-medium text-red-700 bg-white hover:bg-red-50 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-red-500\"\n >\n <TrashIcon className=\"h-4 w-4 mr-2\" />\n {t('deleteAllData')}\n </button>\n </div>\n\n <p className=\"mt-2 text-xs text-gray-500\">\n {t('dataManagementDescription')}\n </p>\n </div>\n </div>\n </div>\n\n {/* Quick Actions */}\n <div className=\"mt-6 flex flex-wrap gap-2 justify-center\">\n <button\n type=\"button\"\n onClick={() => {\n setConsent(prev => prev ? {\n ...prev,\n necessary: true,\n analytics: false,\n marketing: false,\n preferences: false\n } : null);\n }}\n disabled={isLoading}\n className=\"px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 disabled:opacity-50 transition-colors\"\n >\n {t('rejectAll')}\n </button>\n <button\n type=\"button\"\n onClick={() => {\n setConsent(prev => prev ? {\n ...prev,\n necessary: true,\n analytics: true,\n marketing: true,\n preferences: true\n } : null);\n }}\n disabled={isLoading}\n className=\"px-4 py-2 text-sm font-medium text-white bg-blue-600 border border-transparent rounded-md hover:bg-blue-700 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 disabled:opacity-50 transition-colors\"\n >\n {t('acceptAll')}\n </button>\n </div>\n\n {/* Action buttons */}\n <div className=\"mt-6 sm:flex sm:flex-row-reverse\">\n <button\n type=\"button\"\n onClick={handleSave}\n disabled={isLoading}\n className=\"w-full inline-flex justify-center rounded-md border border-transparent shadow-xs px-4 py-2 bg-blue-600 text-base font-medium text-white hover:bg-blue-700 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 sm:ml-3 sm:w-auto sm:text-sm disabled:opacity-50\"\n >\n {isLoading ? t('saving') : t('saveChanges')}\n </button>\n <button\n type=\"button\"\n onClick={onClose}\n className=\"mt-3 w-full inline-flex justify-center rounded-md border border-gray-300 shadow-xs px-4 py-2 bg-white text-base font-medium text-gray-700 hover:bg-gray-50 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 sm:mt-0 sm:w-auto sm:text-sm\"\n >\n {t('cancel')}\n </button>\n </div>\n </div>\n </div>\n\n {/* Delete confirmation modal */}\n {showDeleteConfirm && (\n <div className=\"fixed inset-0 z-60 overflow-y-auto\">\n <div className=\"flex items-center justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0\">\n <div className=\"fixed inset-0 transition-opacity bg-gray-500 bg-opacity-75\" />\n <div className=\"inline-block align-bottom bg-white rounded-lg px-4 pt-5 pb-4 text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-lg sm:w-full sm:p-6\">\n <div className=\"sm:flex sm:items-start\">\n <div className=\"mx-auto flex-shrink-0 flex items-center justify-center h-12 w-12 rounded-full bg-red-100 sm:mx-0 sm:h-10 sm:w-10\">\n <TrashIcon className=\"h-6 w-6 text-red-600\" />\n </div>\n <div className=\"mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left\">\n <h3 className=\"text-lg leading-6 font-medium text-gray-900\">\n {t('deleteConfirmTitle')}\n </h3>\n <div className=\"mt-2\">\n <p className=\"text-sm text-gray-500\">\n {t('deleteConfirmDescription')}\n </p>\n </div>\n </div>\n </div>\n <div className=\"mt-5 sm:mt-4 sm:flex sm:flex-row-reverse\">\n <button\n type=\"button\"\n onClick={handleDeleteAllData}\n className=\"w-full inline-flex justify-center rounded-md border border-transparent shadow-xs px-4 py-2 bg-red-600 text-base font-medium text-white hover:bg-red-700 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-red-500 sm:ml-3 sm:w-auto sm:text-sm\"\n >\n {t('deleteAllData')}\n </button>\n <button\n type=\"button\"\n onClick={() => setShowDeleteConfirm(false)}\n className=\"mt-3 w-full inline-flex justify-center rounded-md border border-gray-300 shadow-xs px-4 py-2 bg-white text-base font-medium text-gray-700 hover:bg-gray-50 focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 sm:mt-0 sm:w-auto sm:text-sm\"\n >\n {t('cancel')}\n </button>\n </div>\n </div>\n </div>\n </div>\n )}\n </div>\n );\n}\n\nexport default CookiePreferences;"],"x_google_ignoreList":[0,1,2],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{i as t,t as n}from"./i18n-X0oNIUcF.js";import{t as r}from"./vendor-Bd-5Ya9C.js";import{X as i,d as a,q as o,w as s}from"./index-DQSZfVR2.js";import{i as c}from"./routing-BcOlOpMI.js";var l=[{id:`necessary`,name:`Strictly Necessary`,description:`These cookies are essential for the website to function properly. They enable core functionality such as security, network management, and accessibility.`,required:!0,cookies:[`semiont-token`,`consent-preferences`]},{id:`analytics`,name:`Analytics`,description:`These cookies help us understand how visitors interact with our website by collecting and reporting information anonymously.`,required:!1,cookies:[`_ga`,`_ga_*`,`_gid`,`_gat`,`lighthouse-*`]},{id:`marketing`,name:`Marketing`,description:`These cookies are used to track visitors across websites to display relevant advertisements and measure campaign effectiveness.`,required:!1,cookies:[`_fbp`,`_fbc`,`fr`,`ads-*`]},{id:`preferences`,name:`Preferences`,description:`These cookies remember your choices and preferences to provide a more personalized experience.`,required:!1,cookies:[`theme-preference`,`language-preference`,`ui-settings`]}],u=`semiont-cookie-consent`,d={necessary:!0,analytics:!1,marketing:!1,preferences:!1,timestamp:new Date().toISOString(),version:`1.0`},f=e=>{typeof window>`u`||l.forEach(t=>{t.required||e[t.id]||t.cookies.forEach(e=>{if(e.includes(`*`)){let t=e.replace(`*`,``);document.cookie.split(`;`).forEach(e=>{let n=e.split(`=`)[0]?.trim();n&&n.startsWith(t)&&p(n)})}else p(e)})})},p=e=>{document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/`,document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; domain=${window.location.hostname}`;let t=window.location.hostname.split(`.`).slice(-2).join(`.`);document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; domain=.${t}`},m=()=>{if(typeof window>`u`)return null;try{let e=localStorage.getItem(u);if(!e)return null;let t=JSON.parse(e);return t.version===`1.0`?t:null}catch(e){return console.warn(`Failed to parse cookie consent:`,e),null}},h=e=>{if(typeof window>`u`)return;let t={...d,...e,necessary:!0,timestamp:new Date().toISOString(),version:`1.0`};try{localStorage.setItem(u,JSON.stringify(t)),f(t),window.dispatchEvent(new CustomEvent(`cookieConsentChanged`,{detail:t}))}catch(e){console.error(`Failed to save cookie consent:`,e)}},g=()=>{let e=m();if(!e)return!1;let t=new Date(e.timestamp),n=new Date;return n.setMonth(n.getMonth()-13),t>n},_=()=>typeof window>`u`?!1:!g(),v=async()=>{try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;return e.includes(`Europe/`)?`EU`:e.includes(`America/Los_Angeles`)||e.includes(`America/Vancouver`)?`CA`:e.includes(`America/`)?`US`:`OTHER`}catch{return`OTHER`}},y=async()=>await v()===`CA`,b=async()=>await v()===`EU`,x=()=>{if(typeof window>`u`)return{};let e={};document.cookie.split(`;`).forEach(t=>{let[n,r]=t.trim().split(`=`);n&&r&&(e[`cookie_${n}`]=decodeURIComponent(r))});for(let t=0;t<localStorage.length;t++){let n=localStorage.key(t);n&&(e[`localStorage_${n}`]=localStorage.getItem(n)||``)}for(let t=0;t<sessionStorage.length;t++){let n=sessionStorage.key(t);n&&(e[`sessionStorage_${n}`]=sessionStorage.getItem(n)||``)}return e},S=()=>{typeof window>`u`||(localStorage.clear(),sessionStorage.clear(),document.cookie.split(`;`).forEach(e=>{let t=e.split(`=`)[0]?.trim();t&&p(t)}),window.location.reload())},C=e(t()),w=r();function T({isOpen:e,onClose:t}){let r=c(),{t:i}=n(),a=(e,t)=>i(`Search.${e}`,t);return(0,w.jsx)(s,{isOpen:e,onClose:t,onNavigate:(e,t)=>{e===`resource`?r.push(`/know/resource/${encodeURIComponent(t)}`):r.push(`/know/entity/${t}`)},translations:{placeholder:a(`placeholder`),searching:a(`searching`),noResults:a(`noResults`),startTyping:a(`startTyping`),navigate:a(`navigate`),select:a(`select`),close:a(`close`),enter:a(`enter`),esc:a(`esc`)}})}var E=(0,C.createContext)(null);function D({children:e}){let t=c(),[n,r]=(0,C.useState)(!1),[s,l]=(0,C.useState)(!1),[u,d]=(0,C.useState)([]),f=(0,C.useCallback)(()=>{r(!0)},[]),p=(0,C.useCallback)(()=>{l(!0)},[]),m=(0,C.useCallback)(()=>{r(!1),l(!1),u.forEach(e=>e()),d([])},[u]);i([{key:`k`,ctrlOrCmd:!0,handler:()=>{f()},description:`Open global search`},{key:`n`,ctrlOrCmd:!0,handler:()=>{t.push(`/know/compose`)},description:`Create new resource`},{key:`/`,handler:()=>{f()},description:`Open global search (alternative)`},{key:`?`,shift:!0,handler:()=>{p()},description:`Show keyboard shortcuts help`}]),o(`Escape`,m,300);let h={openGlobalSearch:f,openKeyboardHelp:p,closeAllOverlays:m};return(0,w.jsxs)(E.Provider,{value:h,children:[e,n&&(0,w.jsx)(T,{isOpen:n,onClose:()=>r(!1)}),s&&(0,w.jsx)(a,{isOpen:s,onClose:()=>l(!1)})]})}export{y as a,h as c,x as i,_ as l,D as n,b as o,S as r,m as s,E as t,l as u};
2
+ //# sourceMappingURL=KeyboardShortcutsContext-4ZRypoQr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KeyboardShortcutsContext-4ZRypoQr.js","names":[],"sources":["../../src/lib/cookies/constants.ts","../../src/lib/cookies/cleanup.ts","../../src/lib/cookies/consent.ts","../../src/lib/cookies/privacy.ts","../../src/components/modals/GlobalSearchModal.tsx","../../src/contexts/KeyboardShortcutsContext.tsx"],"sourcesContent":["import type { CookieCategory, CookieConsent } from './types';\n\n// Cookie categories with descriptions\nexport const COOKIE_CATEGORIES: CookieCategory[] = [\n {\n id: 'necessary',\n name: 'Strictly Necessary',\n description: 'These cookies are essential for the website to function properly. They enable core functionality such as security, network management, and accessibility.',\n required: true,\n cookies: ['semiont-token', 'consent-preferences']\n },\n {\n id: 'analytics',\n name: 'Analytics',\n description: 'These cookies help us understand how visitors interact with our website by collecting and reporting information anonymously.',\n required: false,\n cookies: ['_ga', '_ga_*', '_gid', '_gat', 'lighthouse-*']\n },\n {\n id: 'marketing',\n name: 'Marketing',\n description: 'These cookies are used to track visitors across websites to display relevant advertisements and measure campaign effectiveness.',\n required: false,\n cookies: ['_fbp', '_fbc', 'fr', 'ads-*']\n },\n {\n id: 'preferences',\n name: 'Preferences',\n description: 'These cookies remember your choices and preferences to provide a more personalized experience.',\n required: false,\n cookies: ['theme-preference', 'language-preference', 'ui-settings']\n }\n];\n\n// Current consent version (increment when privacy policy changes)\nexport const CONSENT_VERSION = '1.0';\n\n// Cookie names\nexport const CONSENT_COOKIE_NAME = 'semiont-cookie-consent';\nexport const PREFERENCES_COOKIE_NAME = 'semiont-cookie-preferences';\n\n// Default consent state\nexport const DEFAULT_CONSENT: CookieConsent = {\n necessary: true, // Always true, required for functionality\n analytics: false,\n marketing: false,\n preferences: false,\n timestamp: new Date().toISOString(),\n version: CONSENT_VERSION\n};\n","import type { CookieConsent } from './types';\nimport { COOKIE_CATEGORIES } from './constants';\n\n// Clean up cookies based on consent\nexport const cleanupCookies = (consent: CookieConsent): void => {\n if (typeof window === 'undefined') return;\n\n COOKIE_CATEGORIES.forEach(category => {\n if (category.required) return; // Never clean up required cookies\n\n const hasConsent = consent[category.id];\n if (!hasConsent) {\n // Remove cookies for this category\n category.cookies.forEach(cookieName => {\n if (cookieName.includes('*')) {\n // Handle wildcard cookies\n const prefix = cookieName.replace('*', '');\n document.cookie.split(';').forEach(cookie => {\n const name = cookie.split('=')[0]?.trim();\n if (name && name.startsWith(prefix)) {\n deleteCookie(name);\n }\n });\n } else {\n deleteCookie(cookieName);\n }\n });\n }\n });\n};\n\n// Delete a specific cookie\nexport const deleteCookie = (name: string): void => {\n // Delete for current domain\n document.cookie = `${name}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/`;\n // Delete for parent domain\n document.cookie = `${name}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; domain=${window.location.hostname}`;\n // Delete for root domain\n const rootDomain = window.location.hostname.split('.').slice(-2).join('.');\n document.cookie = `${name}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; domain=.${rootDomain}`;\n};\n","import type { CookieConsent } from './types';\nimport { CONSENT_COOKIE_NAME, CONSENT_VERSION, DEFAULT_CONSENT } from './constants';\nimport { cleanupCookies } from './cleanup';\n\nexport const getCookieConsent = (): CookieConsent | null => {\n if (typeof window === 'undefined') return null;\n\n try {\n const consent = localStorage.getItem(CONSENT_COOKIE_NAME);\n if (!consent) return null;\n\n const parsed = JSON.parse(consent) as CookieConsent;\n\n // Check if consent is for current version\n if (parsed.version !== CONSENT_VERSION) {\n return null; // Force re-consent for new version\n }\n\n return parsed;\n } catch (error) {\n console.warn('Failed to parse cookie consent:', error);\n return null;\n }\n};\n\nexport const setCookieConsent = (consent: Partial<CookieConsent>): void => {\n if (typeof window === 'undefined') return;\n\n const fullConsent: CookieConsent = {\n ...DEFAULT_CONSENT,\n ...consent,\n necessary: true, // Always true\n timestamp: new Date().toISOString(),\n version: CONSENT_VERSION\n };\n\n try {\n localStorage.setItem(CONSENT_COOKIE_NAME, JSON.stringify(fullConsent));\n\n // Clean up cookies based on consent\n cleanupCookies(fullConsent);\n\n // Dispatch custom event for components to react to consent changes\n window.dispatchEvent(new CustomEvent('cookieConsentChanged', {\n detail: fullConsent\n }));\n } catch (error) {\n console.error('Failed to save cookie consent:', error);\n }\n};\n\nexport const hasValidConsent = (): boolean => {\n const consent = getCookieConsent();\n if (!consent) return false;\n\n // Check if consent is less than 13 months old (GDPR requirement)\n const consentDate = new Date(consent.timestamp);\n const thirteenMonthsAgo = new Date();\n thirteenMonthsAgo.setMonth(thirteenMonthsAgo.getMonth() - 13);\n\n return consentDate > thirteenMonthsAgo;\n};\n\nexport const shouldShowBanner = (): boolean => {\n if (typeof window === 'undefined') return false;\n return !hasValidConsent();\n};\n","import { deleteCookie } from './cleanup';\n\n// Get user's location for CCPA vs GDPR detection (simplified)\nexport const getUserLocation = async (): Promise<'EU' | 'CA' | 'US' | 'OTHER'> => {\n try {\n // In a real implementation, you'd use a geolocation service\n // For now, we'll detect based on timezone as a rough approximation\n const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\n if (timezone.includes('Europe/')) return 'EU';\n if (timezone.includes('America/Los_Angeles') || timezone.includes('America/Vancouver')) return 'CA';\n if (timezone.includes('America/')) return 'US';\n\n return 'OTHER';\n } catch {\n return 'OTHER';\n }\n};\n\n// Check if CCPA applies (California residents)\nexport const isCCPAApplicable = async (): Promise<boolean> => {\n const location = await getUserLocation();\n return location === 'CA';\n};\n\n// Check if GDPR applies (EU residents)\nexport const isGDPRApplicable = async (): Promise<boolean> => {\n const location = await getUserLocation();\n return location === 'EU';\n};\n\n// Export all cookies currently set\nexport const exportUserData = (): Record<string, string> => {\n if (typeof window === 'undefined') return {};\n\n const data: Record<string, string> = {};\n\n // Get all cookies\n document.cookie.split(';').forEach(cookie => {\n const [name, value] = cookie.trim().split('=');\n if (name && value) {\n data[`cookie_${name}`] = decodeURIComponent(value);\n }\n });\n\n // Get localStorage data\n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n if (key) {\n data[`localStorage_${key}`] = localStorage.getItem(key) || '';\n }\n }\n\n // Get sessionStorage data\n for (let i = 0; i < sessionStorage.length; i++) {\n const key = sessionStorage.key(i);\n if (key) {\n data[`sessionStorage_${key}`] = sessionStorage.getItem(key) || '';\n }\n }\n\n return data;\n};\n\n// Delete all user data (GDPR right to be forgotten)\nexport const deleteAllUserData = (): void => {\n if (typeof window === 'undefined') return;\n\n // Clear all localStorage\n localStorage.clear();\n\n // Clear all sessionStorage\n sessionStorage.clear();\n\n // Delete all cookies\n document.cookie.split(';').forEach(cookie => {\n const name = cookie.split('=')[0]?.trim();\n if (name) {\n deleteCookie(name);\n }\n });\n\n // Reload page to ensure clean state\n window.location.reload();\n};\n","import { useRouter } from '@/i18n/routing';\nimport { SearchModal } from '@semiont/react-ui';\nimport { useTranslation } from 'react-i18next';\n\ninterface GlobalSearchModalProps {\n isOpen: boolean;\n onClose: () => void;\n}\n\nexport function GlobalSearchModal({ isOpen, onClose }: GlobalSearchModalProps) {\n const router = useRouter();\n const { t: _t } = useTranslation();\n const t = (k: string, p?: Record<string, unknown>) => _t(`Search.${k}`, p as any) as string;\n\n const handleNavigate = (type: 'resource' | 'entity', id: string) => {\n if (type === 'resource') {\n router.push(`/know/resource/${encodeURIComponent(id)}`);\n } else {\n router.push(`/know/entity/${id}`);\n }\n };\n\n return (\n <SearchModal\n isOpen={isOpen}\n onClose={onClose}\n onNavigate={handleNavigate}\n translations={{\n placeholder: t('placeholder'),\n searching: t('searching'),\n noResults: t('noResults'),\n startTyping: t('startTyping'),\n navigate: t('navigate'),\n select: t('select'),\n close: t('close'),\n enter: t('enter'),\n esc: t('esc'),\n }}\n />\n );\n}","import React, { createContext, useContext, useState, useCallback } from 'react';\nimport { useRouter } from '@/i18n/routing';\nimport { useKeyboardShortcuts, useDoubleKeyPress, KeyboardShortcutsHelpModal } from '@semiont/react-ui';\nimport { GlobalSearchModal } from '../components/modals/GlobalSearchModal';\n\ninterface KeyboardShortcutsContextType {\n openGlobalSearch: () => void;\n openKeyboardHelp: () => void;\n closeAllOverlays: () => void;\n}\n\nexport const KeyboardShortcutsContext = createContext<KeyboardShortcutsContextType | null>(null);\n\nexport function useKeyboardShortcutsContext() {\n const context = useContext(KeyboardShortcutsContext);\n if (!context) {\n throw new Error('useKeyboardShortcutsContext must be used within KeyboardShortcutsProvider');\n }\n return context;\n}\n\ninterface KeyboardShortcutsProviderProps {\n children: React.ReactNode;\n}\n\nexport function KeyboardShortcutsProvider({ children }: KeyboardShortcutsProviderProps) {\n const router = useRouter();\n const [isSearchOpen, setIsSearchOpen] = useState(false);\n const [isHelpOpen, setIsHelpOpen] = useState(false);\n const [overlayCloseCallbacks, setOverlayCloseCallbacks] = useState<(() => void)[]>([]);\n\n // Open global search\n const openGlobalSearch = useCallback(() => {\n setIsSearchOpen(true);\n }, []);\n\n // Open keyboard help\n const openKeyboardHelp = useCallback(() => {\n setIsHelpOpen(true);\n }, []);\n\n // Close all overlays\n const closeAllOverlays = useCallback(() => {\n // Close all modals\n setIsSearchOpen(false);\n setIsHelpOpen(false);\n\n // Call all registered overlay close callbacks\n overlayCloseCallbacks.forEach(callback => callback());\n\n // Clear the callbacks\n setOverlayCloseCallbacks([]);\n }, [overlayCloseCallbacks]);\n\n // Register global keyboard shortcuts\n useKeyboardShortcuts([\n {\n key: 'k',\n ctrlOrCmd: true,\n handler: () => {\n openGlobalSearch();\n },\n description: 'Open global search'\n },\n {\n key: 'n',\n ctrlOrCmd: true,\n handler: () => {\n // Navigate to compose page to create new resource\n router.push('/know/compose');\n },\n description: 'Create new resource'\n },\n {\n key: '/',\n handler: () => {\n // Alternative search trigger (like GitHub)\n openGlobalSearch();\n },\n description: 'Open global search (alternative)'\n },\n {\n key: '?',\n shift: true,\n handler: () => {\n // Open keyboard shortcuts help\n openKeyboardHelp();\n },\n description: 'Show keyboard shortcuts help'\n }\n ]);\n\n // Double Escape to close all overlays\n useDoubleKeyPress('Escape', closeAllOverlays, 300);\n\n const contextValue: KeyboardShortcutsContextType = {\n openGlobalSearch,\n openKeyboardHelp,\n closeAllOverlays\n };\n\n return (\n <KeyboardShortcutsContext.Provider value={contextValue}>\n {children}\n {isSearchOpen && (\n <GlobalSearchModal\n isOpen={isSearchOpen}\n onClose={() => setIsSearchOpen(false)}\n />\n )}\n {isHelpOpen && (\n <KeyboardShortcutsHelpModal\n isOpen={isHelpOpen}\n onClose={() => setIsHelpOpen(false)}\n />\n )}\n </KeyboardShortcutsContext.Provider>\n );\n}"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{i as t}from"./i18n-X0oNIUcF.js";import{t as n}from"./vendor-Bd-5Ya9C.js";import{At as r,Mt as i,Nt as a,jt as o,ut as s}from"./index-DQSZfVR2.js";var c=e(t(),1),l=n();function u(e,t,n,r,i=1){let a=Math.min(e.startX,e.endX),o=Math.min(e.startY,e.endY),s=Math.max(e.startX,e.endX),c=Math.max(e.startY,e.endY),l=a/i,u=(s-a)/i,d=r-c/i,f=(c-o)/i;return{page:t,x:Math.round(l),y:Math.round(d),width:Math.round(u),height:Math.round(f)}}function d(e,t,n=1){let r=e.x*n,i=e.width*n;return{x:r,y:(t-e.y-e.height)*n,width:i,height:e.height*n}}async function f(){return typeof window<`u`&&window.pdfjsLib?window.pdfjsLib:new Promise((e,t)=>{let n=document.createElement(`script`);n.src=`/pdfjs/pdf.min.mjs`,n.type=`module`,n.onload=()=>{let n=window.pdfjsLib;if(!n){t(Error(`PDF.js loaded but pdfjsLib not available`));return}n.GlobalWorkerOptions.workerSrc=`/pdfjs/pdf.worker.min.mjs`,e(n)},n.onerror=()=>{t(Error(`Failed to load PDF.js from /pdfjs/pdf.min.mjs`))},document.head.appendChild(n)})}async function p(e){return(await f()).getDocument({url:e}).promise}async function m(e,t=1){let n=e.getViewport({scale:t}),r=document.createElement(`canvas`),i=r.getContext(`2d`);if(!i)throw Error(`Failed to get 2D context`);return r.width=n.width,r.height=n.height,await e.render({canvasContext:i,viewport:n}).promise,{dataUrl:r.toDataURL(`image/png`),width:n.width,height:n.height}}function h(e){if(!e)return{stroke:`rgb(156, 163, 175)`,fill:`rgba(156, 163, 175, 0.2)`};switch(e){case`highlighting`:return{stroke:`rgb(250, 204, 21)`,fill:`rgba(250, 204, 21, 0.3)`};case`linking`:return{stroke:`rgb(59, 130, 246)`,fill:`rgba(59, 130, 246, 0.2)`};case`assessing`:return{stroke:`rgb(239, 68, 68)`,fill:`rgba(239, 68, 68, 0.2)`};case`commenting`:return{stroke:`rgb(255, 255, 255)`,fill:`rgba(255, 255, 255, 0.2)`};default:return{stroke:`rgb(156, 163, 175)`,fill:`rgba(156, 163, 175, 0.2)`}}}function g({pdfUrl:e,existingAnnotations:t=[],drawingMode:n,selectedMotivation:f,session:g,hoveredAnnotationId:_,selectedAnnotationId:v,hoverDelayMs:y=150}){let[b,x]=(0,c.useState)(null),[S,C]=(0,c.useState)(0),[w,T]=(0,c.useState)(1),[E,D]=(0,c.useState)(null),[O,k]=(0,c.useState)(!0),[A,j]=(0,c.useState)(null),[M,N]=(0,c.useState)(null),[P,F]=(0,c.useState)(null),[I]=(0,c.useState)(1.5),[L,R]=(0,c.useState)(!1),[z,B]=(0,c.useState)(null),V=(0,c.useRef)(null),H=(0,c.useRef)(null);(0,c.useEffect)(()=>{let t=!1;async function n(){try{k(!0),j(null);let n=await p(e);if(t)return;x(n),C(n.numPages),k(!1)}catch(e){if(t)return;console.error(`Error loading PDF:`,e),j(`Failed to load PDF`),k(!1)}}return n(),()=>{t=!0}},[e]),(0,c.useEffect)(()=>{if(!b)return;let e=!1,t=b;async function n(){try{let n=await t.getPage(w);if(e)return;let r=n.getViewport({scale:1});N({width:r.width,height:r.height});let{dataUrl:i}=await m(n,I);if(e)return;D(i)}catch(t){if(e)return;console.error(`Error loading page:`,t),j(`Failed to load page`)}}return n(),()=>{e=!0}},[b,w,I]),(0,c.useEffect)(()=>{let e=()=>{H.current&&F({width:H.current.clientWidth,height:H.current.clientHeight})};e();let t=null;try{t=new ResizeObserver(e),H.current&&t.observe(H.current)}catch{console.warn(`ResizeObserver not supported, falling back to window resize listener`),window.addEventListener(`resize`,e)}return()=>{t?t.disconnect():window.removeEventListener(`resize`,e)}},[E]);let U=(0,c.useCallback)(e=>{if(!n||!H.current)return;let t=H.current.getBoundingClientRect(),r=e.clientX-t.left,i=e.clientY-t.top;R(!0),B({startX:r,startY:i,endX:r,endY:i})},[n]),W=(0,c.useCallback)(e=>{if(!L||!z||!H.current)return;let t=H.current.getBoundingClientRect();B({...z,endX:e.clientX-t.left,endY:e.clientY-t.top})},[L,z]),G=(0,c.useCallback)(()=>{if(!L||!z||!M||!P||!g){R(!1),B(null);return}if(Math.sqrt((z.endX-z.startX)**2+(z.endY-z.startY)**2)<10){if(t.length>0){let e=q.find(e=>{let t=K(e.target);if(!t)return!1;let n=a(t.value);if(!n)return!1;let r=d(n,M.height,1),i=P.width/M.width,o=P.height/M.height,s=r.x*i,c=r.y*o,l=r.width*i,u=r.height*o;return z.endX>=s&&z.endX<=s+l&&z.endY>=c&&z.endY<=c+u});if(e){g?.client.browse.click(e.id,e.motivation),R(!1),B(null);return}}R(!1),B(null);return}let e=M.width/P.width,n=M.height/P.height,i=r(u({startX:z.startX*e,startY:z.startY*n,endX:z.endX*e,endY:z.endY*n},w,M.width,M.height,1));f&&g.client.mark.request({type:`FragmentSelector`,conformsTo:`http://tools.ietf.org/rfc/rfc3778`,value:i},f),R(!1)},[L,z,w,M,P,f,t]),K=e=>{let t=i(e);if(!t)return null;let n=(Array.isArray(t)?t:[t]).find(e=>e.type===`FragmentSelector`);return!n||n.type!==`FragmentSelector`?null:n},q=t.filter(e=>{let t=K(e.target);return t?o(t.value)===w:!1}),{handleMouseEnter:J,handleMouseLeave:Y}=(0,c.useMemo)(()=>s(e=>g?.client.beckon.hover(e),y),[g,y]),{stroke:X,fill:Z}=h(f??null);return A?(0,l.jsx)(`div`,{className:`semiont-pdf-annotation-canvas__error`,children:A}):(0,l.jsxs)(`div`,{className:`semiont-pdf-annotation-canvas`,children:[O&&(0,l.jsx)(`div`,{className:`semiont-pdf-annotation-canvas__loading`,children:`Loading PDF...`}),(0,l.jsxs)(`div`,{ref:V,className:`semiont-pdf-annotation-canvas__container`,style:{display:O?`none`:void 0},onMouseDown:U,onMouseMove:W,onMouseUp:G,onMouseLeave:()=>{L&&(R(!1),B(null))},"data-drawing-mode":n||`none`,children:[E&&(0,l.jsx)(`img`,{ref:H,src:E,alt:`PDF page ${w}`,className:`semiont-pdf-annotation-canvas__image`,draggable:!1,style:{pointerEvents:`none`},onLoad:()=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{H.current&&F({width:H.current.clientWidth,height:H.current.clientHeight})})})}}),P&&M&&(0,l.jsx)(`div`,{className:`semiont-pdf-annotation-canvas__overlay-container`,children:(0,l.jsx)(`div`,{className:`semiont-pdf-annotation-canvas__overlay`,children:(0,l.jsxs)(`svg`,{className:`semiont-pdf-annotation-canvas__svg`,width:P.width,height:P.height,children:[q.map(e=>{let t=K(e.target);if(!t)return null;let n=a(t.value);if(!n)return null;let r=d(n,M.height,1),i=P.width/M.width,o=P.height/M.height,s=e.id===_,c=e.id===v,u=e.motivation,{stroke:f,fill:p}=h(u);return(0,l.jsx)(`rect`,{x:r.x*i,y:r.y*o,width:r.width*i,height:r.height*o,stroke:f,strokeWidth:c?4:s?3:2,fill:p,style:{pointerEvents:`auto`,cursor:`pointer`,opacity:c?1:s?.9:.7},onClick:()=>g?.client.browse.click(e.id,e.motivation),onMouseEnter:()=>J(e.id),onMouseLeave:Y},e.id)}),z&&(0,l.jsx)(`rect`,{x:Math.min(z.startX,z.endX),y:Math.min(z.startY,z.endY),width:Math.abs(z.endX-z.startX),height:Math.abs(z.endY-z.startY),stroke:X,strokeWidth:2,strokeDasharray:`5,5`,fill:Z,pointerEvents:`none`})]})})})]}),S>0&&(0,l.jsxs)(`div`,{className:`semiont-pdf-annotation-canvas__controls`,children:[(0,l.jsx)(`button`,{disabled:w<=1,onClick:()=>T(w-1),className:`semiont-pdf-annotation-canvas__button`,children:`Previous`}),(0,l.jsxs)(`span`,{className:`semiont-pdf-annotation-canvas__page-info`,children:[`Page `,w,` of `,S]}),(0,l.jsx)(`button`,{disabled:w>=S,onClick:()=>T(w+1),className:`semiont-pdf-annotation-canvas__button`,children:`Next`})]})]})}export{g as PdfAnnotationCanvas};
2
+ //# sourceMappingURL=PdfAnnotationCanvas.client-NIMALXNZ-QiAmdknm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PdfAnnotationCanvas.client-NIMALXNZ-QiAmdknm.js","names":[],"sources":["../../../../packages/react-ui/dist/PdfAnnotationCanvas.client-NIMALXNZ.js"],"sourcesContent":["'use client';\n\"use client\";\nimport \"./chunk-K6BJDL2I.js\";\n\n// src/components/pdf-annotation/PdfAnnotationCanvas.tsx\nimport { useRef, useState, useCallback, useEffect, useMemo } from \"react\";\nimport {\n getTargetSelector,\n createFragmentSelector,\n parseFragmentSelector,\n getPageFromFragment\n} from \"@semiont/core\";\nimport { createHoverHandlers } from \"@semiont/sdk\";\n\n// src/lib/pdf-coordinates.ts\nfunction canvasToPdfCoordinates(canvasRect, page, _pageWidth, pageHeight, scale = 1) {\n const x1 = Math.min(canvasRect.startX, canvasRect.endX);\n const y1 = Math.min(canvasRect.startY, canvasRect.endY);\n const x2 = Math.max(canvasRect.startX, canvasRect.endX);\n const y2 = Math.max(canvasRect.startY, canvasRect.endY);\n const pdfX = x1 / scale;\n const pdfWidth = (x2 - x1) / scale;\n const pdfY = pageHeight - y2 / scale;\n const pdfHeight = (y2 - y1) / scale;\n return {\n page,\n x: Math.round(pdfX),\n y: Math.round(pdfY),\n width: Math.round(pdfWidth),\n height: Math.round(pdfHeight)\n };\n}\nfunction pdfToCanvasCoordinates(pdfCoord, pageHeight, scale = 1) {\n const canvasX = pdfCoord.x * scale;\n const canvasWidth = pdfCoord.width * scale;\n const canvasY = (pageHeight - pdfCoord.y - pdfCoord.height) * scale;\n const canvasHeight = pdfCoord.height * scale;\n return {\n x: canvasX,\n y: canvasY,\n width: canvasWidth,\n height: canvasHeight\n };\n}\n\n// src/lib/browser-pdfjs.ts\nasync function ensurePdfJs() {\n if (typeof window !== \"undefined\" && window.pdfjsLib) {\n return window.pdfjsLib;\n }\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = \"/pdfjs/pdf.min.mjs\";\n script.type = \"module\";\n script.onload = () => {\n const pdfjsLib = window.pdfjsLib;\n if (!pdfjsLib) {\n reject(new Error(\"PDF.js loaded but pdfjsLib not available\"));\n return;\n }\n pdfjsLib.GlobalWorkerOptions.workerSrc = \"/pdfjs/pdf.worker.min.mjs\";\n resolve(pdfjsLib);\n };\n script.onerror = () => {\n reject(new Error(\"Failed to load PDF.js from /pdfjs/pdf.min.mjs\"));\n };\n document.head.appendChild(script);\n });\n}\nasync function loadPdfDocument(url) {\n const pdfjsLib = await ensurePdfJs();\n const loadingTask = pdfjsLib.getDocument({ url });\n return loadingTask.promise;\n}\nasync function renderPdfPageToDataUrl(page, scale = 1) {\n const viewport = page.getViewport({ scale });\n const canvas = document.createElement(\"canvas\");\n const context = canvas.getContext(\"2d\");\n if (!context) {\n throw new Error(\"Failed to get 2D context\");\n }\n canvas.width = viewport.width;\n canvas.height = viewport.height;\n const renderTask = page.render({\n canvasContext: context,\n viewport\n });\n await renderTask.promise;\n return {\n dataUrl: canvas.toDataURL(\"image/png\"),\n width: viewport.width,\n height: viewport.height\n };\n}\n\n// src/components/pdf-annotation/PdfAnnotationCanvas.tsx\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nfunction getMotivationColor(motivation) {\n if (!motivation) {\n return { stroke: \"rgb(156, 163, 175)\", fill: \"rgba(156, 163, 175, 0.2)\" };\n }\n switch (motivation) {\n case \"highlighting\":\n return { stroke: \"rgb(250, 204, 21)\", fill: \"rgba(250, 204, 21, 0.3)\" };\n case \"linking\":\n return { stroke: \"rgb(59, 130, 246)\", fill: \"rgba(59, 130, 246, 0.2)\" };\n case \"assessing\":\n return { stroke: \"rgb(239, 68, 68)\", fill: \"rgba(239, 68, 68, 0.2)\" };\n case \"commenting\":\n return { stroke: \"rgb(255, 255, 255)\", fill: \"rgba(255, 255, 255, 0.2)\" };\n default:\n return { stroke: \"rgb(156, 163, 175)\", fill: \"rgba(156, 163, 175, 0.2)\" };\n }\n}\nfunction PdfAnnotationCanvas({\n pdfUrl,\n existingAnnotations = [],\n drawingMode,\n selectedMotivation,\n session,\n hoveredAnnotationId,\n selectedAnnotationId,\n hoverDelayMs = 150\n}) {\n const [pdfDoc, setPdfDoc] = useState(null);\n const [numPages, setNumPages] = useState(0);\n const [pageNumber, setPageNumber] = useState(1);\n const [pageImageUrl, setPageImageUrl] = useState(null);\n const [isLoading, setIsLoading] = useState(true);\n const [error, setError] = useState(null);\n const [pageDimensions, setPageDimensions] = useState(null);\n const [displayDimensions, setDisplayDimensions] = useState(null);\n const [scale] = useState(1.5);\n const [isDrawing, setIsDrawing] = useState(false);\n const [selection, setSelection] = useState(null);\n const containerRef = useRef(null);\n const imageRef = useRef(null);\n useEffect(() => {\n let cancelled = false;\n async function loadPdf() {\n try {\n setIsLoading(true);\n setError(null);\n const doc = await loadPdfDocument(pdfUrl);\n if (cancelled) return;\n setPdfDoc(doc);\n setNumPages(doc.numPages);\n setIsLoading(false);\n } catch (err) {\n if (cancelled) return;\n console.error(\"Error loading PDF:\", err);\n setError(\"Failed to load PDF\");\n setIsLoading(false);\n }\n }\n loadPdf();\n return () => {\n cancelled = true;\n };\n }, [pdfUrl]);\n useEffect(() => {\n if (!pdfDoc) return;\n let cancelled = false;\n const doc = pdfDoc;\n async function loadPage() {\n try {\n const page = await doc.getPage(pageNumber);\n if (cancelled) return;\n const viewport = page.getViewport({ scale: 1 });\n setPageDimensions({\n width: viewport.width,\n height: viewport.height\n });\n const { dataUrl } = await renderPdfPageToDataUrl(page, scale);\n if (cancelled) return;\n setPageImageUrl(dataUrl);\n } catch (err) {\n if (cancelled) return;\n console.error(\"Error loading page:\", err);\n setError(\"Failed to load page\");\n }\n }\n loadPage();\n return () => {\n cancelled = true;\n };\n }, [pdfDoc, pageNumber, scale]);\n useEffect(() => {\n const updateDisplayDimensions = () => {\n if (imageRef.current) {\n setDisplayDimensions({\n width: imageRef.current.clientWidth,\n height: imageRef.current.clientHeight\n });\n }\n };\n updateDisplayDimensions();\n let resizeObserver = null;\n try {\n resizeObserver = new ResizeObserver(updateDisplayDimensions);\n if (imageRef.current) {\n resizeObserver.observe(imageRef.current);\n }\n } catch (error2) {\n console.warn(\"ResizeObserver not supported, falling back to window resize listener\");\n window.addEventListener(\"resize\", updateDisplayDimensions);\n }\n return () => {\n if (resizeObserver) {\n resizeObserver.disconnect();\n } else {\n window.removeEventListener(\"resize\", updateDisplayDimensions);\n }\n };\n }, [pageImageUrl]);\n const handleMouseDown = useCallback((e) => {\n if (!drawingMode) return;\n if (!imageRef.current) return;\n const rect = imageRef.current.getBoundingClientRect();\n const x = e.clientX - rect.left;\n const y = e.clientY - rect.top;\n setIsDrawing(true);\n setSelection({\n startX: x,\n startY: y,\n endX: x,\n endY: y\n });\n }, [drawingMode]);\n const handleMouseMove = useCallback((e) => {\n if (!isDrawing || !selection || !imageRef.current) return;\n const rect = imageRef.current.getBoundingClientRect();\n setSelection({\n ...selection,\n endX: e.clientX - rect.left,\n endY: e.clientY - rect.top\n });\n }, [isDrawing, selection]);\n const handleMouseUp = useCallback(() => {\n if (!isDrawing || !selection || !pageDimensions || !displayDimensions || !session) {\n setIsDrawing(false);\n setSelection(null);\n return;\n }\n const dragDistance = Math.sqrt(\n Math.pow(selection.endX - selection.startX, 2) + Math.pow(selection.endY - selection.startY, 2)\n );\n const MIN_DRAG_DISTANCE = 10;\n if (dragDistance < MIN_DRAG_DISTANCE) {\n if (existingAnnotations.length > 0) {\n const clickedAnnotation = pageAnnotations.find((ann) => {\n const fragmentSel = getFragmentSelector(ann.target);\n if (!fragmentSel) return false;\n const pdfCoord2 = parseFragmentSelector(fragmentSel.value);\n if (!pdfCoord2) return false;\n const rect = pdfToCanvasCoordinates(pdfCoord2, pageDimensions.height, 1);\n const scaleX2 = displayDimensions.width / pageDimensions.width;\n const scaleY2 = displayDimensions.height / pageDimensions.height;\n const displayX = rect.x * scaleX2;\n const displayY = rect.y * scaleY2;\n const displayWidth = rect.width * scaleX2;\n const displayHeight = rect.height * scaleY2;\n return selection.endX >= displayX && selection.endX <= displayX + displayWidth && selection.endY >= displayY && selection.endY <= displayY + displayHeight;\n });\n if (clickedAnnotation) {\n session?.client.browse.click(clickedAnnotation.id, clickedAnnotation.motivation);\n setIsDrawing(false);\n setSelection(null);\n return;\n }\n }\n setIsDrawing(false);\n setSelection(null);\n return;\n }\n const scaleX = pageDimensions.width / displayDimensions.width;\n const scaleY = pageDimensions.height / displayDimensions.height;\n const nativeSelection = {\n startX: selection.startX * scaleX,\n startY: selection.startY * scaleY,\n endX: selection.endX * scaleX,\n endY: selection.endY * scaleY\n };\n const pdfCoord = canvasToPdfCoordinates(\n nativeSelection,\n pageNumber,\n pageDimensions.width,\n pageDimensions.height,\n 1\n // Use scale 1.0 since we already scaled to native coords\n );\n const fragmentSelector = createFragmentSelector(pdfCoord);\n if (selectedMotivation) {\n session.client.mark.request(\n {\n type: \"FragmentSelector\",\n conformsTo: \"http://tools.ietf.org/rfc/rfc3778\",\n value: fragmentSelector\n },\n selectedMotivation\n );\n }\n setIsDrawing(false);\n }, [isDrawing, selection, pageNumber, pageDimensions, displayDimensions, selectedMotivation, existingAnnotations]);\n const getFragmentSelector = (target) => {\n const selector = getTargetSelector(target);\n if (!selector) return null;\n const selectors = Array.isArray(selector) ? selector : [selector];\n const found = selectors.find((s) => s.type === \"FragmentSelector\");\n if (!found || found.type !== \"FragmentSelector\") return null;\n return found;\n };\n const pageAnnotations = existingAnnotations.filter((ann) => {\n const fragmentSel = getFragmentSelector(ann.target);\n if (!fragmentSel) return false;\n const page = getPageFromFragment(fragmentSel.value);\n return page === pageNumber;\n });\n const { handleMouseEnter, handleMouseLeave } = useMemo(\n () => createHoverHandlers((id) => session?.client.beckon.hover(id), hoverDelayMs),\n [session, hoverDelayMs]\n );\n const { stroke, fill } = getMotivationColor(selectedMotivation ?? null);\n if (error) {\n return /* @__PURE__ */ jsx(\"div\", { className: \"semiont-pdf-annotation-canvas__error\", children: error });\n }\n return /* @__PURE__ */ jsxs(\"div\", { className: \"semiont-pdf-annotation-canvas\", children: [\n isLoading && /* @__PURE__ */ jsx(\"div\", { className: \"semiont-pdf-annotation-canvas__loading\", children: \"Loading PDF...\" }),\n /* @__PURE__ */ jsxs(\n \"div\",\n {\n ref: containerRef,\n className: \"semiont-pdf-annotation-canvas__container\",\n style: { display: isLoading ? \"none\" : void 0 },\n onMouseDown: handleMouseDown,\n onMouseMove: handleMouseMove,\n onMouseUp: handleMouseUp,\n onMouseLeave: () => {\n if (isDrawing) {\n setIsDrawing(false);\n setSelection(null);\n }\n },\n \"data-drawing-mode\": drawingMode || \"none\",\n children: [\n pageImageUrl && /* @__PURE__ */ jsx(\n \"img\",\n {\n ref: imageRef,\n src: pageImageUrl,\n alt: `PDF page ${pageNumber}`,\n className: \"semiont-pdf-annotation-canvas__image\",\n draggable: false,\n style: { pointerEvents: \"none\" },\n onLoad: () => {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (imageRef.current) {\n setDisplayDimensions({\n width: imageRef.current.clientWidth,\n height: imageRef.current.clientHeight\n });\n }\n });\n });\n }\n }\n ),\n displayDimensions && pageDimensions && /* @__PURE__ */ jsx(\"div\", { className: \"semiont-pdf-annotation-canvas__overlay-container\", children: /* @__PURE__ */ jsx(\"div\", { className: \"semiont-pdf-annotation-canvas__overlay\", children: /* @__PURE__ */ jsxs(\n \"svg\",\n {\n className: \"semiont-pdf-annotation-canvas__svg\",\n width: displayDimensions.width,\n height: displayDimensions.height,\n children: [\n pageAnnotations.map((ann) => {\n const fragmentSel = getFragmentSelector(ann.target);\n if (!fragmentSel) return null;\n const pdfCoord = parseFragmentSelector(fragmentSel.value);\n if (!pdfCoord) return null;\n const rect = pdfToCanvasCoordinates(pdfCoord, pageDimensions.height, 1);\n const scaleX = displayDimensions.width / pageDimensions.width;\n const scaleY = displayDimensions.height / pageDimensions.height;\n const isHovered = ann.id === hoveredAnnotationId;\n const isSelected = ann.id === selectedAnnotationId;\n const annMotivation = ann.motivation;\n const { stroke: annStroke, fill: annFill } = getMotivationColor(annMotivation);\n return /* @__PURE__ */ jsx(\n \"rect\",\n {\n x: rect.x * scaleX,\n y: rect.y * scaleY,\n width: rect.width * scaleX,\n height: rect.height * scaleY,\n stroke: annStroke,\n strokeWidth: isSelected ? 4 : isHovered ? 3 : 2,\n fill: annFill,\n style: {\n pointerEvents: \"auto\",\n cursor: \"pointer\",\n opacity: isSelected ? 1 : isHovered ? 0.9 : 0.7\n },\n onClick: () => session?.client.browse.click(ann.id, ann.motivation),\n onMouseEnter: () => handleMouseEnter(ann.id),\n onMouseLeave: handleMouseLeave\n },\n ann.id\n );\n }),\n selection && (() => {\n const rectX = Math.min(selection.startX, selection.endX);\n const rectY = Math.min(selection.startY, selection.endY);\n const rectWidth = Math.abs(selection.endX - selection.startX);\n const rectHeight = Math.abs(selection.endY - selection.startY);\n return /* @__PURE__ */ jsx(\n \"rect\",\n {\n x: rectX,\n y: rectY,\n width: rectWidth,\n height: rectHeight,\n stroke,\n strokeWidth: 2,\n strokeDasharray: \"5,5\",\n fill,\n pointerEvents: \"none\"\n }\n );\n })()\n ]\n }\n ) }) })\n ]\n }\n ),\n numPages > 0 && /* @__PURE__ */ jsxs(\"div\", { className: \"semiont-pdf-annotation-canvas__controls\", children: [\n /* @__PURE__ */ jsx(\n \"button\",\n {\n disabled: pageNumber <= 1,\n onClick: () => setPageNumber(pageNumber - 1),\n className: \"semiont-pdf-annotation-canvas__button\",\n children: \"Previous\"\n }\n ),\n /* @__PURE__ */ jsxs(\"span\", { className: \"semiont-pdf-annotation-canvas__page-info\", children: [\n \"Page \",\n pageNumber,\n \" of \",\n numPages\n ] }),\n /* @__PURE__ */ jsx(\n \"button\",\n {\n disabled: pageNumber >= numPages,\n onClick: () => setPageNumber(pageNumber + 1),\n className: \"semiont-pdf-annotation-canvas__button\",\n children: \"Next\"\n }\n )\n ] })\n ] });\n}\nexport {\n PdfAnnotationCanvas\n};\n//# sourceMappingURL=PdfAnnotationCanvas.client-NIMALXNZ.js.map"],"mappings":"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"}