@rubytech/create-maxy-code 0.1.553 → 0.1.554

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 (614) hide show
  1. package/package.json +1 -1
  2. package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +22 -11
  3. package/payload/platform/plugins/admin/skills/whats-new/SKILL.md +6 -0
  4. package/payload/platform/plugins/docs/references/admin-ui.md +21 -10
  5. package/payload/server/public/activity.html +5 -5
  6. package/payload/server/public/agents.html +4 -4
  7. package/payload/server/public/assets/{AdminLoginScreens-Ca2QhL18.js → AdminLoginScreens-BDaJlf67.js} +1 -1
  8. package/payload/server/public/assets/AdminLoginScreens-BDaJlf67.js.br +0 -0
  9. package/payload/server/public/assets/AdminLoginScreens-BDaJlf67.js.gz +0 -0
  10. package/payload/server/public/assets/AdminShell-DUUw6WNs.js +2 -0
  11. package/payload/server/public/assets/AdminShell-DUUw6WNs.js.br +0 -0
  12. package/payload/server/public/assets/AdminShell-DUUw6WNs.js.gz +0 -0
  13. package/payload/server/public/assets/{activity-TSDKmIYb.js → activity-JpRW4yeS.js} +1 -1
  14. package/payload/server/public/assets/activity-JpRW4yeS.js.br +0 -0
  15. package/payload/server/public/assets/activity-JpRW4yeS.js.gz +0 -0
  16. package/payload/server/public/assets/admin-BH4gL0c2.js +1 -0
  17. package/payload/server/public/assets/admin-BH4gL0c2.js.br +0 -0
  18. package/payload/server/public/assets/admin-BH4gL0c2.js.gz +0 -0
  19. package/payload/server/public/assets/{agents-9hlQHOS5.js → agents-EtIviAPH.js} +1 -1
  20. package/payload/server/public/assets/agents-EtIviAPH.js.br +0 -0
  21. package/payload/server/public/assets/agents-EtIviAPH.js.gz +0 -0
  22. package/payload/server/public/assets/{arc-DaudCnXg.js → arc-DaI5MLTq.js} +1 -1
  23. package/payload/server/public/assets/arc-DaI5MLTq.js.br +0 -0
  24. package/payload/server/public/assets/arc-DaI5MLTq.js.gz +0 -0
  25. package/payload/server/public/assets/architecture-YZFGNWBL-DWZIX5aV.js +1 -0
  26. package/payload/server/public/assets/architecture-YZFGNWBL-DWZIX5aV.js.br +0 -0
  27. package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-Dj9L_JR0.js → architectureDiagram-Q4EWVU46-xZ0gDnJQ.js} +1 -1
  28. package/payload/server/public/assets/architectureDiagram-Q4EWVU46-xZ0gDnJQ.js.br +0 -0
  29. package/payload/server/public/assets/architectureDiagram-Q4EWVU46-xZ0gDnJQ.js.gz +0 -0
  30. package/payload/server/public/assets/{blockDiagram-DXYQGD6D-BTXKYwrR.js → blockDiagram-DXYQGD6D-DwWtWBJp.js} +1 -1
  31. package/payload/server/public/assets/blockDiagram-DXYQGD6D-DwWtWBJp.js.br +0 -0
  32. package/payload/server/public/assets/blockDiagram-DXYQGD6D-DwWtWBJp.js.gz +0 -0
  33. package/payload/server/public/assets/{browser-BrqoCsqh.js → browser-DntnPrfU.js} +1 -1
  34. package/payload/server/public/assets/browser-DntnPrfU.js.br +0 -0
  35. package/payload/server/public/assets/browser-DntnPrfU.js.gz +0 -0
  36. package/payload/server/public/assets/{c4Diagram-AHTNJAMY-BN7XeOWV.js → c4Diagram-AHTNJAMY-qRseEjtL.js} +1 -1
  37. package/payload/server/public/assets/c4Diagram-AHTNJAMY-qRseEjtL.js.br +0 -0
  38. package/payload/server/public/assets/c4Diagram-AHTNJAMY-qRseEjtL.js.gz +0 -0
  39. package/payload/server/public/assets/calendar-DnmkfQAe.js +1 -0
  40. package/payload/server/public/assets/calendar-DnmkfQAe.js.br +0 -0
  41. package/payload/server/public/assets/calendar-DnmkfQAe.js.gz +0 -0
  42. package/payload/server/public/assets/channel-DnchwXmx.js +1 -0
  43. package/payload/server/public/assets/chat-_Ok0sVx2.js +1 -0
  44. package/payload/server/public/assets/chat-_Ok0sVx2.js.br +2 -0
  45. package/payload/server/public/assets/chat-_Ok0sVx2.js.gz +0 -0
  46. package/payload/server/public/assets/chevron-left-udrHmjzu.js +1 -0
  47. package/payload/server/public/assets/chevron-left-udrHmjzu.js.br +0 -0
  48. package/payload/server/public/assets/{chunk-2KRD3SAO-BwEVlnxo.js → chunk-2KRD3SAO-B6koUoB7.js} +1 -1
  49. package/payload/server/public/assets/chunk-2KRD3SAO-B6koUoB7.js.br +0 -0
  50. package/payload/server/public/assets/chunk-2KRD3SAO-B6koUoB7.js.gz +0 -0
  51. package/payload/server/public/assets/{chunk-336JU56O-DR5EUh9D.js → chunk-336JU56O-ByZrJI-3.js} +2 -2
  52. package/payload/server/public/assets/chunk-336JU56O-ByZrJI-3.js.br +0 -0
  53. package/payload/server/public/assets/chunk-336JU56O-ByZrJI-3.js.gz +0 -0
  54. package/payload/server/public/assets/chunk-426QAEUC-fNi5i3SA.js +1 -0
  55. package/payload/server/public/assets/chunk-426QAEUC-fNi5i3SA.js.br +0 -0
  56. package/payload/server/public/assets/chunk-426QAEUC-fNi5i3SA.js.gz +0 -0
  57. package/payload/server/public/assets/{chunk-4BX2VUAB-C5p3xTC6.js → chunk-4BX2VUAB-7sO95xR2.js} +1 -1
  58. package/payload/server/public/assets/chunk-4BX2VUAB-7sO95xR2.js.br +0 -0
  59. package/payload/server/public/assets/chunk-4BX2VUAB-7sO95xR2.js.gz +0 -0
  60. package/payload/server/public/assets/{chunk-4TB4RGXK-CqrBvvGI.js → chunk-4TB4RGXK-KqKMvkA_.js} +1 -1
  61. package/payload/server/public/assets/chunk-4TB4RGXK-KqKMvkA_.js.br +0 -0
  62. package/payload/server/public/assets/chunk-4TB4RGXK-KqKMvkA_.js.gz +0 -0
  63. package/payload/server/public/assets/{chunk-55IACEB6-DDU_m1ra.js → chunk-55IACEB6-ggIJf_TC.js} +1 -1
  64. package/payload/server/public/assets/chunk-55IACEB6-ggIJf_TC.js.br +0 -0
  65. package/payload/server/public/assets/chunk-55IACEB6-ggIJf_TC.js.gz +0 -0
  66. package/payload/server/public/assets/{chunk-5FUZZQ4R-B21kX6ld.js → chunk-5FUZZQ4R-CEIokxZS.js} +1 -1
  67. package/payload/server/public/assets/chunk-5FUZZQ4R-CEIokxZS.js.br +0 -0
  68. package/payload/server/public/assets/chunk-5FUZZQ4R-CEIokxZS.js.gz +0 -0
  69. package/payload/server/public/assets/{chunk-5PVQY5BW-CYusrVbq.js → chunk-5PVQY5BW-BEsb0aTb.js} +1 -1
  70. package/payload/server/public/assets/chunk-5PVQY5BW-BEsb0aTb.js.br +0 -0
  71. package/payload/server/public/assets/chunk-5PVQY5BW-BEsb0aTb.js.gz +0 -0
  72. package/payload/server/public/assets/{chunk-67CJDMHE-9W0Qv0jm.js → chunk-67CJDMHE-LS8rUbii.js} +1 -1
  73. package/payload/server/public/assets/chunk-67CJDMHE-LS8rUbii.js.br +2 -0
  74. package/payload/server/public/assets/chunk-67CJDMHE-LS8rUbii.js.gz +0 -0
  75. package/payload/server/public/assets/{chunk-7N4EOEYR-B3gqydR3.js → chunk-7N4EOEYR-JKOVngS0.js} +1 -1
  76. package/payload/server/public/assets/chunk-7N4EOEYR-JKOVngS0.js.br +2 -0
  77. package/payload/server/public/assets/chunk-7N4EOEYR-JKOVngS0.js.gz +0 -0
  78. package/payload/server/public/assets/{chunk-AA7GKIK3-DW8a-2NK.js → chunk-AA7GKIK3-CoXnTVK6.js} +1 -1
  79. package/payload/server/public/assets/chunk-AA7GKIK3-CoXnTVK6.js.br +0 -0
  80. package/payload/server/public/assets/chunk-AA7GKIK3-CoXnTVK6.js.gz +0 -0
  81. package/payload/server/public/assets/{chunk-BSJP7CBP-DqXIO_5R.js → chunk-BSJP7CBP-CcsqObFg.js} +1 -1
  82. package/payload/server/public/assets/chunk-BSJP7CBP-CcsqObFg.js.br +0 -0
  83. package/payload/server/public/assets/chunk-BSJP7CBP-CcsqObFg.js.gz +0 -0
  84. package/payload/server/public/assets/{chunk-CIAEETIT-BMJfgj2u.js → chunk-CIAEETIT-CpsybR7q.js} +1 -1
  85. package/payload/server/public/assets/chunk-CIAEETIT-CpsybR7q.js.br +0 -0
  86. package/payload/server/public/assets/chunk-CIAEETIT-CpsybR7q.js.gz +0 -0
  87. package/payload/server/public/assets/{chunk-EDXVE4YY-CyjTyMkv.js → chunk-EDXVE4YY-CCCHYEbG.js} +1 -1
  88. package/payload/server/public/assets/chunk-EDXVE4YY-CCCHYEbG.js.br +2 -0
  89. package/payload/server/public/assets/chunk-EDXVE4YY-CCCHYEbG.js.gz +0 -0
  90. package/payload/server/public/assets/{chunk-ENJZ2VHE-B-k8uOTF.js → chunk-ENJZ2VHE-yVekovt2.js} +1 -1
  91. package/payload/server/public/assets/chunk-ENJZ2VHE-yVekovt2.js.br +0 -0
  92. package/payload/server/public/assets/chunk-ENJZ2VHE-yVekovt2.js.gz +0 -0
  93. package/payload/server/public/assets/{chunk-FMBD7UC4-CdPjwbtf.js → chunk-FMBD7UC4-D27VnSCa.js} +1 -1
  94. package/payload/server/public/assets/chunk-FMBD7UC4-D27VnSCa.js.br +0 -0
  95. package/payload/server/public/assets/chunk-FMBD7UC4-D27VnSCa.js.gz +0 -0
  96. package/payload/server/public/assets/{chunk-FOC6F5B3-Dl6l1KAh.js → chunk-FOC6F5B3-C0tU2UFl.js} +1 -1
  97. package/payload/server/public/assets/chunk-FOC6F5B3-C0tU2UFl.js.br +0 -0
  98. package/payload/server/public/assets/chunk-FOC6F5B3-C0tU2UFl.js.gz +0 -0
  99. package/payload/server/public/assets/{chunk-ICPOFSXX-CKQWnR1l.js → chunk-ICPOFSXX-BmWvYe_5.js} +2 -2
  100. package/payload/server/public/assets/chunk-ICPOFSXX-BmWvYe_5.js.br +0 -0
  101. package/payload/server/public/assets/chunk-ICPOFSXX-BmWvYe_5.js.gz +0 -0
  102. package/payload/server/public/assets/{chunk-K5T4RW27--g29_wjW.js → chunk-K5T4RW27-DIKxqyYw.js} +1 -1
  103. package/payload/server/public/assets/chunk-K5T4RW27-DIKxqyYw.js.br +0 -0
  104. package/payload/server/public/assets/chunk-K5T4RW27-DIKxqyYw.js.gz +0 -0
  105. package/payload/server/public/assets/{chunk-KGLVRYIC-CI77ENeO.js → chunk-KGLVRYIC-CiL4YVLo.js} +1 -1
  106. package/payload/server/public/assets/chunk-KGLVRYIC-CiL4YVLo.js.br +0 -0
  107. package/payload/server/public/assets/chunk-KGLVRYIC-CiL4YVLo.js.gz +0 -0
  108. package/payload/server/public/assets/{chunk-LIHQZDEY-CE-XByg6.js → chunk-LIHQZDEY-ejKezVlD.js} +1 -1
  109. package/payload/server/public/assets/chunk-LIHQZDEY-ejKezVlD.js.br +0 -0
  110. package/payload/server/public/assets/chunk-LIHQZDEY-ejKezVlD.js.gz +0 -0
  111. package/payload/server/public/assets/{chunk-ORNJ4GCN-DkjJQQSm.js → chunk-ORNJ4GCN-Cc0vqc-D.js} +1 -1
  112. package/payload/server/public/assets/chunk-ORNJ4GCN-Cc0vqc-D.js.br +0 -0
  113. package/payload/server/public/assets/chunk-ORNJ4GCN-Cc0vqc-D.js.gz +0 -0
  114. package/payload/server/public/assets/{chunk-OYMX7WX6-Dis40FU5.js → chunk-OYMX7WX6-BE4b8qC9.js} +1 -1
  115. package/payload/server/public/assets/chunk-OYMX7WX6-BE4b8qC9.js.br +0 -0
  116. package/payload/server/public/assets/chunk-OYMX7WX6-BE4b8qC9.js.gz +0 -0
  117. package/payload/server/public/assets/chunk-QZHKN3VN-Dhlh7Pkk.js +1 -0
  118. package/payload/server/public/assets/chunk-QZHKN3VN-Dhlh7Pkk.js.br +0 -0
  119. package/payload/server/public/assets/chunk-QZHKN3VN-Dhlh7Pkk.js.gz +0 -0
  120. package/payload/server/public/assets/{chunk-U2HBQHQK-DT3NLMic.js → chunk-U2HBQHQK-DcEL3so-.js} +1 -1
  121. package/payload/server/public/assets/chunk-U2HBQHQK-DcEL3so-.js.br +0 -0
  122. package/payload/server/public/assets/chunk-U2HBQHQK-DcEL3so-.js.gz +0 -0
  123. package/payload/server/public/assets/{chunk-X2U36JSP-Dxaab1tD.js → chunk-X2U36JSP-D0X5qpg6.js} +1 -1
  124. package/payload/server/public/assets/chunk-X2U36JSP-D0X5qpg6.js.br +0 -0
  125. package/payload/server/public/assets/chunk-X2U36JSP-D0X5qpg6.js.gz +0 -0
  126. package/payload/server/public/assets/{chunk-XPW4576I-DtqJwn2x.js → chunk-XPW4576I-DZqqB9Zi.js} +1 -1
  127. package/payload/server/public/assets/chunk-XPW4576I-DZqqB9Zi.js.br +0 -0
  128. package/payload/server/public/assets/chunk-XPW4576I-DZqqB9Zi.js.gz +0 -0
  129. package/payload/server/public/assets/{chunk-YZCP3GAM-CEEcRrOH.js → chunk-YZCP3GAM-BTxWHFTx.js} +1 -1
  130. package/payload/server/public/assets/chunk-YZCP3GAM-BTxWHFTx.js.br +0 -0
  131. package/payload/server/public/assets/chunk-YZCP3GAM-BTxWHFTx.js.gz +0 -0
  132. package/payload/server/public/assets/{chunk-ZZ45TVLE-CVhqjM4L.js → chunk-ZZ45TVLE-D8nE76c5.js} +1 -1
  133. package/payload/server/public/assets/chunk-ZZ45TVLE-D8nE76c5.js.br +0 -0
  134. package/payload/server/public/assets/chunk-ZZ45TVLE-D8nE76c5.js.gz +0 -0
  135. package/payload/server/public/assets/classDiagram-6PBFFD2Q-D9OvkaTQ.js +1 -0
  136. package/payload/server/public/assets/classDiagram-6PBFFD2Q-D9OvkaTQ.js.br +0 -0
  137. package/payload/server/public/assets/classDiagram-6PBFFD2Q-D9OvkaTQ.js.gz +0 -0
  138. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-BEuoBAgN.js +1 -0
  139. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-BEuoBAgN.js.br +0 -0
  140. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-BEuoBAgN.js.gz +0 -0
  141. package/payload/server/public/assets/clock-BmdrE7vz.js +1 -0
  142. package/payload/server/public/assets/clock-BmdrE7vz.js.br +0 -0
  143. package/payload/server/public/assets/clock-BmdrE7vz.js.gz +0 -0
  144. package/payload/server/public/assets/clone-C-YfAPQ_.js +1 -0
  145. package/payload/server/public/assets/{copy-BkbgmpJo.js → copy-BiOI6GeQ.js} +1 -1
  146. package/payload/server/public/assets/copy-BiOI6GeQ.js.br +0 -0
  147. package/payload/server/public/assets/copy-BiOI6GeQ.js.gz +0 -0
  148. package/payload/server/public/assets/{cose-bilkent-S5V4N54A-kEHVkDNn.js → cose-bilkent-S5V4N54A-D-95BzXL.js} +1 -1
  149. package/payload/server/public/assets/cose-bilkent-S5V4N54A-D-95BzXL.js.br +0 -0
  150. package/payload/server/public/assets/cose-bilkent-S5V4N54A-D-95BzXL.js.gz +0 -0
  151. package/payload/server/public/assets/{dagre-BgQxtxH1.js → dagre-CrjQCEN9.js} +1 -1
  152. package/payload/server/public/assets/dagre-CrjQCEN9.js.br +0 -0
  153. package/payload/server/public/assets/dagre-CrjQCEN9.js.gz +0 -0
  154. package/payload/server/public/assets/{dagre-KV5264BT-CgxwoTcv.js → dagre-KV5264BT-mcGXOajA.js} +1 -1
  155. package/payload/server/public/assets/dagre-KV5264BT-mcGXOajA.js.br +0 -0
  156. package/payload/server/public/assets/dagre-KV5264BT-mcGXOajA.js.gz +0 -0
  157. package/payload/server/public/assets/data-Za62pAv5.js +1 -0
  158. package/payload/server/public/assets/data-Za62pAv5.js.br +2 -0
  159. package/payload/server/public/assets/data-Za62pAv5.js.gz +0 -0
  160. package/payload/server/public/assets/{diagram-5BDNPKRD-MEZ1cQGO.js → diagram-5BDNPKRD-Colq2XR9.js} +1 -1
  161. package/payload/server/public/assets/diagram-5BDNPKRD-Colq2XR9.js.br +0 -0
  162. package/payload/server/public/assets/diagram-5BDNPKRD-Colq2XR9.js.gz +0 -0
  163. package/payload/server/public/assets/{diagram-G4DWMVQ6-DbZg9hWP.js → diagram-G4DWMVQ6-DafrIgN8.js} +1 -1
  164. package/payload/server/public/assets/diagram-G4DWMVQ6-DafrIgN8.js.br +0 -0
  165. package/payload/server/public/assets/diagram-G4DWMVQ6-DafrIgN8.js.gz +0 -0
  166. package/payload/server/public/assets/{diagram-MMDJMWI5-Bb1y8DFy.js → diagram-MMDJMWI5-CD9pSd2z.js} +1 -1
  167. package/payload/server/public/assets/diagram-MMDJMWI5-CD9pSd2z.js.br +0 -0
  168. package/payload/server/public/assets/diagram-MMDJMWI5-CD9pSd2z.js.gz +0 -0
  169. package/payload/server/public/assets/{diagram-TYMM5635-tbStCw5U.js → diagram-TYMM5635-DqhsN-Il.js} +1 -1
  170. package/payload/server/public/assets/diagram-TYMM5635-DqhsN-Il.js.br +0 -0
  171. package/payload/server/public/assets/diagram-TYMM5635-DqhsN-Il.js.gz +0 -0
  172. package/payload/server/public/assets/{erDiagram-SMLLAGMA-ClEFo_Bw.js → erDiagram-SMLLAGMA-mf9kQrIs.js} +1 -1
  173. package/payload/server/public/assets/erDiagram-SMLLAGMA-mf9kQrIs.js.br +0 -0
  174. package/payload/server/public/assets/erDiagram-SMLLAGMA-mf9kQrIs.js.gz +0 -0
  175. package/payload/server/public/assets/{file-text-DDCrqbWB.js → file-text-s2dqE-bu.js} +1 -1
  176. package/payload/server/public/assets/file-text-s2dqE-bu.js.br +0 -0
  177. package/payload/server/public/assets/file-text-s2dqE-bu.js.gz +0 -0
  178. package/payload/server/public/assets/{flatten-Bu-b1uTY.js → flatten-BtIc9jX7.js} +1 -1
  179. package/payload/server/public/assets/flatten-BtIc9jX7.js.br +0 -0
  180. package/payload/server/public/assets/flatten-BtIc9jX7.js.gz +0 -0
  181. package/payload/server/public/assets/{flowDiagram-DWJPFMVM-9yr262Ji.js → flowDiagram-DWJPFMVM-CJLkGmFm.js} +1 -1
  182. package/payload/server/public/assets/flowDiagram-DWJPFMVM-CJLkGmFm.js.br +0 -0
  183. package/payload/server/public/assets/flowDiagram-DWJPFMVM-CJLkGmFm.js.gz +0 -0
  184. package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-ZCSA0DtG.js → ganttDiagram-T4ZO3ILL-JV6PUFic.js} +1 -1
  185. package/payload/server/public/assets/ganttDiagram-T4ZO3ILL-JV6PUFic.js.br +0 -0
  186. package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-ZCSA0DtG.js.gz → ganttDiagram-T4ZO3ILL-JV6PUFic.js.gz} +0 -0
  187. package/payload/server/public/assets/gitGraph-7Q5UKJZL-C-FvNTHZ.js +1 -0
  188. package/payload/server/public/assets/gitGraph-7Q5UKJZL-C-FvNTHZ.js.br +0 -0
  189. package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-0KvpzpaU.js → gitGraphDiagram-UUTBAWPF-JhiumTtl.js} +1 -1
  190. package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-JhiumTtl.js.br +0 -0
  191. package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-JhiumTtl.js.gz +0 -0
  192. package/payload/server/public/assets/{graph-BKPdL5ph.js → graph-ClX4Zn0s.js} +2 -2
  193. package/payload/server/public/assets/graph-ClX4Zn0s.js.br +0 -0
  194. package/payload/server/public/assets/graph-ClX4Zn0s.js.gz +0 -0
  195. package/payload/server/public/assets/{graph-labels-B2PrHK6O.js → graph-labels-BdLfJumr.js} +1 -1
  196. package/payload/server/public/assets/graph-labels-BdLfJumr.js.br +0 -0
  197. package/payload/server/public/assets/graph-labels-BdLfJumr.js.gz +0 -0
  198. package/payload/server/public/assets/{graphlib-B3SsCJOd.js → graphlib-Z7cApv13.js} +1 -1
  199. package/payload/server/public/assets/graphlib-Z7cApv13.js.br +0 -0
  200. package/payload/server/public/assets/graphlib-Z7cApv13.js.gz +0 -0
  201. package/payload/server/public/assets/info-OMHHGYJF-BjLPgHAC.js +1 -0
  202. package/payload/server/public/assets/info-OMHHGYJF-BjLPgHAC.js.br +0 -0
  203. package/payload/server/public/assets/infoDiagram-42DDH7IO-B-6k2hmd.js +2 -0
  204. package/payload/server/public/assets/infoDiagram-42DDH7IO-B-6k2hmd.js.br +0 -0
  205. package/payload/server/public/assets/infoDiagram-42DDH7IO-B-6k2hmd.js.gz +0 -0
  206. package/payload/server/public/assets/{isEmpty-CjH0UASp.js → isEmpty-Bu4fZ8Kf.js} +1 -1
  207. package/payload/server/public/assets/isEmpty-Bu4fZ8Kf.js.br +0 -0
  208. package/payload/server/public/assets/isEmpty-Bu4fZ8Kf.js.gz +0 -0
  209. package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-DsDoNemz.js → ishikawaDiagram-UXIWVN3A-CQIGY8NI.js} +1 -1
  210. package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-CQIGY8NI.js.br +0 -0
  211. package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-CQIGY8NI.js.gz +0 -0
  212. package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-xyayGhw3.js → journeyDiagram-VCZTEJTY-O5rEHC1o.js} +1 -1
  213. package/payload/server/public/assets/journeyDiagram-VCZTEJTY-O5rEHC1o.js.br +0 -0
  214. package/payload/server/public/assets/journeyDiagram-VCZTEJTY-O5rEHC1o.js.gz +0 -0
  215. package/payload/server/public/assets/{kanban-definition-6JOO6SKY-DuV3Go_1.js → kanban-definition-6JOO6SKY-BS7huuG7.js} +1 -1
  216. package/payload/server/public/assets/kanban-definition-6JOO6SKY-BS7huuG7.js.br +0 -0
  217. package/payload/server/public/assets/kanban-definition-6JOO6SKY-BS7huuG7.js.gz +0 -0
  218. package/payload/server/public/assets/{line-Cpb8GRkf.js → line-DjHTnO_W.js} +1 -1
  219. package/payload/server/public/assets/line-DjHTnO_W.js.br +0 -0
  220. package/payload/server/public/assets/line-DjHTnO_W.js.gz +0 -0
  221. package/payload/server/public/assets/{linear-l39GooQ5.js → linear-RvwZxFzh.js} +1 -1
  222. package/payload/server/public/assets/linear-RvwZxFzh.js.br +0 -0
  223. package/payload/server/public/assets/linear-RvwZxFzh.js.gz +0 -0
  224. package/payload/server/public/assets/{mermaid-parser.core-9hkxt3j1.js → mermaid-parser.core-CUoZE61Z.js} +2 -2
  225. package/payload/server/public/assets/mermaid-parser.core-CUoZE61Z.js.br +0 -0
  226. package/payload/server/public/assets/mermaid-parser.core-CUoZE61Z.js.gz +0 -0
  227. package/payload/server/public/assets/{mermaid.core-iR6TQesD.js → mermaid.core-CHquUUrw.js} +3 -3
  228. package/payload/server/public/assets/mermaid.core-CHquUUrw.js.br +0 -0
  229. package/payload/server/public/assets/mermaid.core-CHquUUrw.js.gz +0 -0
  230. package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-LCKhTYzs.js → mindmap-definition-QFDTVHPH-pHUJa3IP.js} +1 -1
  231. package/payload/server/public/assets/mindmap-definition-QFDTVHPH-pHUJa3IP.js.br +0 -0
  232. package/payload/server/public/assets/mindmap-definition-QFDTVHPH-pHUJa3IP.js.gz +0 -0
  233. package/payload/server/public/assets/{operator-BVULmN09.js → operator-BQtleyx3.js} +1 -1
  234. package/payload/server/public/assets/operator-BQtleyx3.js.br +0 -0
  235. package/payload/server/public/assets/operator-BQtleyx3.js.gz +0 -0
  236. package/payload/server/public/assets/{ordinal-D6D6WcTC.js → ordinal-C2TEWKNu.js} +1 -1
  237. package/payload/server/public/assets/ordinal-C2TEWKNu.js.br +0 -0
  238. package/payload/server/public/assets/ordinal-C2TEWKNu.js.gz +0 -0
  239. package/payload/server/public/assets/packet-4T2RLAQJ-BBAZASfb.js +1 -0
  240. package/payload/server/public/assets/packet-4T2RLAQJ-BBAZASfb.js.br +0 -0
  241. package/payload/server/public/assets/{page-baQ9FQIg.js → page-BkMbmVu6.js} +1 -1
  242. package/payload/server/public/assets/page-BkMbmVu6.js.br +0 -0
  243. package/payload/server/public/assets/page-BkMbmVu6.js.gz +0 -0
  244. package/payload/server/public/assets/{page-BbzdSxuU.js → page-C-jQaGZ4.js} +3 -3
  245. package/payload/server/public/assets/page-C-jQaGZ4.js.br +0 -0
  246. package/payload/server/public/assets/page-C-jQaGZ4.js.gz +0 -0
  247. package/payload/server/public/assets/{pdf-render-DanMu_cf.js → pdf-render-Bwg_xv1L.js} +1 -1
  248. package/payload/server/public/assets/pdf-render-Bwg_xv1L.js.br +0 -0
  249. package/payload/server/public/assets/{pdf-render-DanMu_cf.js.gz → pdf-render-Bwg_xv1L.js.gz} +0 -0
  250. package/payload/server/public/assets/pie-ZZUOXDRM-CCJUnMeG.js +1 -0
  251. package/payload/server/public/assets/pie-ZZUOXDRM-CCJUnMeG.js.br +0 -0
  252. package/payload/server/public/assets/{pieDiagram-DEJITSTG-Oo7wgo0C.js → pieDiagram-DEJITSTG-DRIRqqhQ.js} +1 -1
  253. package/payload/server/public/assets/pieDiagram-DEJITSTG-DRIRqqhQ.js.br +0 -0
  254. package/payload/server/public/assets/pieDiagram-DEJITSTG-DRIRqqhQ.js.gz +0 -0
  255. package/payload/server/public/assets/play-Da69rmat.js +1 -0
  256. package/payload/server/public/assets/play-Da69rmat.js.br +0 -0
  257. package/payload/server/public/assets/play-Da69rmat.js.gz +0 -0
  258. package/payload/server/public/assets/{public-B_SEBxWy.js → public-BPlCLx7p.js} +1 -1
  259. package/payload/server/public/assets/public-BPlCLx7p.js.br +0 -0
  260. package/payload/server/public/assets/public-BPlCLx7p.js.gz +0 -0
  261. package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-B2hs2ord.js → quadrantDiagram-34T5L4WZ-7WHBrI_9.js} +1 -1
  262. package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-7WHBrI_9.js.br +0 -0
  263. package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-7WHBrI_9.js.gz +0 -0
  264. package/payload/server/public/assets/radar-PYXPWWZC-BsRU8Aep.js +1 -0
  265. package/payload/server/public/assets/radar-PYXPWWZC-BsRU8Aep.js.br +0 -0
  266. package/payload/server/public/assets/{reduce-BtXXK8Ma.js → reduce-BGpN5lgn.js} +1 -1
  267. package/payload/server/public/assets/reduce-BGpN5lgn.js.br +0 -0
  268. package/payload/server/public/assets/reduce-BGpN5lgn.js.gz +0 -0
  269. package/payload/server/public/assets/{requirementDiagram-MS252O5E-B8UkCUzW.js → requirementDiagram-MS252O5E-CatBEoHm.js} +1 -1
  270. package/payload/server/public/assets/requirementDiagram-MS252O5E-CatBEoHm.js.br +0 -0
  271. package/payload/server/public/assets/requirementDiagram-MS252O5E-CatBEoHm.js.gz +0 -0
  272. package/payload/server/public/assets/{rotate-ccw-DzXTXh3g.js → rotate-ccw-DpTlNy-M.js} +1 -1
  273. package/payload/server/public/assets/rotate-ccw-DpTlNy-M.js.br +0 -0
  274. package/payload/server/public/assets/rotate-ccw-DpTlNy-M.js.gz +0 -0
  275. package/payload/server/public/assets/routines-YlXtcZNz.js +2 -0
  276. package/payload/server/public/assets/routines-YlXtcZNz.js.br +0 -0
  277. package/payload/server/public/assets/routines-YlXtcZNz.js.gz +0 -0
  278. package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-Cojqqz7t.js → sankeyDiagram-XADWPNL6-DfefvhQ6.js} +1 -1
  279. package/payload/server/public/assets/sankeyDiagram-XADWPNL6-DfefvhQ6.js.br +0 -0
  280. package/payload/server/public/assets/sankeyDiagram-XADWPNL6-DfefvhQ6.js.gz +0 -0
  281. package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-C7ODsPjE.js → sequenceDiagram-FGHM5R23-51FmBwFt.js} +1 -1
  282. package/payload/server/public/assets/sequenceDiagram-FGHM5R23-51FmBwFt.js.br +0 -0
  283. package/payload/server/public/assets/sequenceDiagram-FGHM5R23-51FmBwFt.js.gz +0 -0
  284. package/payload/server/public/assets/{skills-yCZhYVIs.js → skills-CX4p0a2M.js} +1 -1
  285. package/payload/server/public/assets/skills-CX4p0a2M.js.br +0 -0
  286. package/payload/server/public/assets/skills-CX4p0a2M.js.gz +0 -0
  287. package/payload/server/public/assets/{stateDiagram-FHFEXIEX-BC8a_P9c.js → stateDiagram-FHFEXIEX-CPgxX16e.js} +1 -1
  288. package/payload/server/public/assets/stateDiagram-FHFEXIEX-CPgxX16e.js.br +0 -0
  289. package/payload/server/public/assets/stateDiagram-FHFEXIEX-CPgxX16e.js.gz +0 -0
  290. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-DrQl9xC9.js +1 -0
  291. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-DrQl9xC9.js.br +0 -0
  292. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-DrQl9xC9.js.gz +0 -0
  293. package/payload/server/public/assets/{tasks-DxNFLsHv.js → tasks-B51N5DIO.js} +2 -2
  294. package/payload/server/public/assets/tasks-B51N5DIO.js.br +0 -0
  295. package/payload/server/public/assets/tasks-B51N5DIO.js.gz +0 -0
  296. package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-BMxUC3ri.js → timeline-definition-GMOUNBTQ-DC4gTR2m.js} +1 -1
  297. package/payload/server/public/assets/timeline-definition-GMOUNBTQ-DC4gTR2m.js.br +0 -0
  298. package/payload/server/public/assets/timeline-definition-GMOUNBTQ-DC4gTR2m.js.gz +0 -0
  299. package/payload/server/public/assets/treeView-SZITEDCU-BDzhKA6v.js +1 -0
  300. package/payload/server/public/assets/treeView-SZITEDCU-BDzhKA6v.js.br +0 -0
  301. package/payload/server/public/assets/treemap-W4RFUUIX-epHpdeWa.js +1 -0
  302. package/payload/server/public/assets/treemap-W4RFUUIX-epHpdeWa.js.br +0 -0
  303. package/payload/server/public/assets/{triangle-alert-CYwHTcvU.js → triangle-alert-CkE_tzl3.js} +1 -1
  304. package/payload/server/public/assets/triangle-alert-CkE_tzl3.js.br +0 -0
  305. package/payload/server/public/assets/triangle-alert-CkE_tzl3.js.gz +0 -0
  306. package/payload/server/public/assets/{useCopyFeedback-BCRjKc-H.js → useCopyFeedback-3B_lN6ri.js} +1 -1
  307. package/payload/server/public/assets/useCopyFeedback-3B_lN6ri.js.br +0 -0
  308. package/payload/server/public/assets/useCopyFeedback-3B_lN6ri.js.gz +0 -0
  309. package/payload/server/public/assets/{useMediaQuery-Vxpamxqq.css → useMediaQuery-AAUlD_Av.css} +1 -1
  310. package/payload/server/public/assets/useMediaQuery-AAUlD_Av.css.br +0 -0
  311. package/payload/server/public/assets/useMediaQuery-AAUlD_Av.css.gz +0 -0
  312. package/payload/server/public/assets/{useVoiceRecorder-BaAtMu9T.js → useVoiceRecorder-DtP2IN-j.js} +2 -2
  313. package/payload/server/public/assets/useVoiceRecorder-DtP2IN-j.js.br +0 -0
  314. package/payload/server/public/assets/useVoiceRecorder-DtP2IN-j.js.gz +0 -0
  315. package/payload/server/public/assets/{vennDiagram-DHZGUBPP-BsRGBF0K.js → vennDiagram-DHZGUBPP-CADQLMv_.js} +1 -1
  316. package/payload/server/public/assets/vennDiagram-DHZGUBPP-CADQLMv_.js.br +0 -0
  317. package/payload/server/public/assets/{vennDiagram-DHZGUBPP-BsRGBF0K.js.gz → vennDiagram-DHZGUBPP-CADQLMv_.js.gz} +0 -0
  318. package/payload/server/public/assets/wardley-RL74JXVD-DNSZCrxV.js +1 -0
  319. package/payload/server/public/assets/wardley-RL74JXVD-DNSZCrxV.js.br +0 -0
  320. package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-oQh9A-Mq.js → wardleyDiagram-NUSXRM2D-Cs5AyyGo.js} +1 -1
  321. package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-Cs5AyyGo.js.br +0 -0
  322. package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-Cs5AyyGo.js.gz +0 -0
  323. package/payload/server/public/assets/{wrench-iI-vx-g2.js → wrench-B_4KM-f7.js} +1 -1
  324. package/payload/server/public/assets/wrench-B_4KM-f7.js.br +0 -0
  325. package/payload/server/public/assets/wrench-B_4KM-f7.js.gz +0 -0
  326. package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-0K87OmFI.js → xychartDiagram-5P7HB3ND-Bp_VDbBp.js} +1 -1
  327. package/payload/server/public/assets/xychartDiagram-5P7HB3ND-Bp_VDbBp.js.br +0 -0
  328. package/payload/server/public/assets/xychartDiagram-5P7HB3ND-Bp_VDbBp.js.gz +0 -0
  329. package/payload/server/public/browser.html +4 -4
  330. package/payload/server/public/calendar.html +7 -8
  331. package/payload/server/public/chat.html +14 -14
  332. package/payload/server/public/data.html +13 -13
  333. package/payload/server/public/graph.html +9 -9
  334. package/payload/server/public/index.html +15 -16
  335. package/payload/server/public/operator.html +15 -15
  336. package/payload/server/public/public.html +14 -14
  337. package/payload/server/public/routines.html +7 -7
  338. package/payload/server/public/skills.html +5 -5
  339. package/payload/server/public/tasks.html +6 -6
  340. package/payload/server/server.js +37 -11
  341. package/payload/server/public/assets/AdminLoginScreens-Ca2QhL18.js.br +0 -0
  342. package/payload/server/public/assets/AdminLoginScreens-Ca2QhL18.js.gz +0 -0
  343. package/payload/server/public/assets/AdminShell-Dc5du5xX.js +0 -2
  344. package/payload/server/public/assets/AdminShell-Dc5du5xX.js.br +0 -0
  345. package/payload/server/public/assets/AdminShell-Dc5du5xX.js.gz +0 -0
  346. package/payload/server/public/assets/activity-TSDKmIYb.js.br +0 -0
  347. package/payload/server/public/assets/activity-TSDKmIYb.js.gz +0 -0
  348. package/payload/server/public/assets/admin-Ba729Eyg.js +0 -1
  349. package/payload/server/public/assets/admin-Ba729Eyg.js.br +0 -0
  350. package/payload/server/public/assets/admin-Ba729Eyg.js.gz +0 -0
  351. package/payload/server/public/assets/agents-9hlQHOS5.js.br +0 -0
  352. package/payload/server/public/assets/agents-9hlQHOS5.js.gz +0 -0
  353. package/payload/server/public/assets/arc-DaudCnXg.js.br +0 -0
  354. package/payload/server/public/assets/arc-DaudCnXg.js.gz +0 -0
  355. package/payload/server/public/assets/architecture-YZFGNWBL-DPFsm5jD.js +0 -1
  356. package/payload/server/public/assets/architecture-YZFGNWBL-DPFsm5jD.js.br +0 -0
  357. package/payload/server/public/assets/architectureDiagram-Q4EWVU46-Dj9L_JR0.js.br +0 -0
  358. package/payload/server/public/assets/architectureDiagram-Q4EWVU46-Dj9L_JR0.js.gz +0 -0
  359. package/payload/server/public/assets/blockDiagram-DXYQGD6D-BTXKYwrR.js.br +0 -0
  360. package/payload/server/public/assets/blockDiagram-DXYQGD6D-BTXKYwrR.js.gz +0 -0
  361. package/payload/server/public/assets/browser-BrqoCsqh.js.br +0 -0
  362. package/payload/server/public/assets/browser-BrqoCsqh.js.gz +0 -0
  363. package/payload/server/public/assets/c4Diagram-AHTNJAMY-BN7XeOWV.js.br +0 -0
  364. package/payload/server/public/assets/c4Diagram-AHTNJAMY-BN7XeOWV.js.gz +0 -0
  365. package/payload/server/public/assets/calendar-DOObQ_m8.js +0 -1
  366. package/payload/server/public/assets/calendar-DOObQ_m8.js.br +0 -0
  367. package/payload/server/public/assets/calendar-DOObQ_m8.js.gz +0 -0
  368. package/payload/server/public/assets/channel-D08XWP9e.js +0 -1
  369. package/payload/server/public/assets/chat-Xaul2lLF.js +0 -1
  370. package/payload/server/public/assets/chat-Xaul2lLF.js.br +0 -3
  371. package/payload/server/public/assets/chat-Xaul2lLF.js.gz +0 -0
  372. package/payload/server/public/assets/chevron-left-BYH5vH4S.js +0 -1
  373. package/payload/server/public/assets/chevron-left-BYH5vH4S.js.br +0 -0
  374. package/payload/server/public/assets/chevron-right-XxQPHfNH.js +0 -1
  375. package/payload/server/public/assets/chevron-right-XxQPHfNH.js.br +0 -0
  376. package/payload/server/public/assets/chunk-2KRD3SAO-BwEVlnxo.js.br +0 -0
  377. package/payload/server/public/assets/chunk-2KRD3SAO-BwEVlnxo.js.gz +0 -0
  378. package/payload/server/public/assets/chunk-336JU56O-DR5EUh9D.js.br +0 -0
  379. package/payload/server/public/assets/chunk-336JU56O-DR5EUh9D.js.gz +0 -0
  380. package/payload/server/public/assets/chunk-426QAEUC-YPE0DZOq.js +0 -1
  381. package/payload/server/public/assets/chunk-426QAEUC-YPE0DZOq.js.br +0 -0
  382. package/payload/server/public/assets/chunk-426QAEUC-YPE0DZOq.js.gz +0 -0
  383. package/payload/server/public/assets/chunk-4BX2VUAB-C5p3xTC6.js.br +0 -0
  384. package/payload/server/public/assets/chunk-4BX2VUAB-C5p3xTC6.js.gz +0 -0
  385. package/payload/server/public/assets/chunk-4TB4RGXK-CqrBvvGI.js.br +0 -0
  386. package/payload/server/public/assets/chunk-4TB4RGXK-CqrBvvGI.js.gz +0 -0
  387. package/payload/server/public/assets/chunk-55IACEB6-DDU_m1ra.js.br +0 -0
  388. package/payload/server/public/assets/chunk-55IACEB6-DDU_m1ra.js.gz +0 -0
  389. package/payload/server/public/assets/chunk-5FUZZQ4R-B21kX6ld.js.br +0 -0
  390. package/payload/server/public/assets/chunk-5FUZZQ4R-B21kX6ld.js.gz +0 -0
  391. package/payload/server/public/assets/chunk-5PVQY5BW-CYusrVbq.js.br +0 -0
  392. package/payload/server/public/assets/chunk-5PVQY5BW-CYusrVbq.js.gz +0 -0
  393. package/payload/server/public/assets/chunk-67CJDMHE-9W0Qv0jm.js.br +0 -0
  394. package/payload/server/public/assets/chunk-67CJDMHE-9W0Qv0jm.js.gz +0 -0
  395. package/payload/server/public/assets/chunk-7N4EOEYR-B3gqydR3.js.br +0 -0
  396. package/payload/server/public/assets/chunk-7N4EOEYR-B3gqydR3.js.gz +0 -0
  397. package/payload/server/public/assets/chunk-AA7GKIK3-DW8a-2NK.js.br +0 -4
  398. package/payload/server/public/assets/chunk-AA7GKIK3-DW8a-2NK.js.gz +0 -0
  399. package/payload/server/public/assets/chunk-BSJP7CBP-DqXIO_5R.js.br +0 -0
  400. package/payload/server/public/assets/chunk-BSJP7CBP-DqXIO_5R.js.gz +0 -0
  401. package/payload/server/public/assets/chunk-CIAEETIT-BMJfgj2u.js.br +0 -0
  402. package/payload/server/public/assets/chunk-CIAEETIT-BMJfgj2u.js.gz +0 -0
  403. package/payload/server/public/assets/chunk-EDXVE4YY-CyjTyMkv.js.br +0 -0
  404. package/payload/server/public/assets/chunk-EDXVE4YY-CyjTyMkv.js.gz +0 -0
  405. package/payload/server/public/assets/chunk-ENJZ2VHE-B-k8uOTF.js.br +0 -0
  406. package/payload/server/public/assets/chunk-ENJZ2VHE-B-k8uOTF.js.gz +0 -0
  407. package/payload/server/public/assets/chunk-FMBD7UC4-CdPjwbtf.js.br +0 -0
  408. package/payload/server/public/assets/chunk-FMBD7UC4-CdPjwbtf.js.gz +0 -0
  409. package/payload/server/public/assets/chunk-FOC6F5B3-Dl6l1KAh.js.br +0 -0
  410. package/payload/server/public/assets/chunk-FOC6F5B3-Dl6l1KAh.js.gz +0 -0
  411. package/payload/server/public/assets/chunk-ICPOFSXX-CKQWnR1l.js.br +0 -0
  412. package/payload/server/public/assets/chunk-ICPOFSXX-CKQWnR1l.js.gz +0 -0
  413. package/payload/server/public/assets/chunk-K5T4RW27--g29_wjW.js.br +0 -0
  414. package/payload/server/public/assets/chunk-K5T4RW27--g29_wjW.js.gz +0 -0
  415. package/payload/server/public/assets/chunk-KGLVRYIC-CI77ENeO.js.br +0 -3
  416. package/payload/server/public/assets/chunk-KGLVRYIC-CI77ENeO.js.gz +0 -0
  417. package/payload/server/public/assets/chunk-LIHQZDEY-CE-XByg6.js.br +0 -0
  418. package/payload/server/public/assets/chunk-LIHQZDEY-CE-XByg6.js.gz +0 -0
  419. package/payload/server/public/assets/chunk-ORNJ4GCN-DkjJQQSm.js.br +0 -0
  420. package/payload/server/public/assets/chunk-ORNJ4GCN-DkjJQQSm.js.gz +0 -0
  421. package/payload/server/public/assets/chunk-OYMX7WX6-Dis40FU5.js.br +0 -0
  422. package/payload/server/public/assets/chunk-OYMX7WX6-Dis40FU5.js.gz +0 -0
  423. package/payload/server/public/assets/chunk-QZHKN3VN-DnqqL1de.js +0 -1
  424. package/payload/server/public/assets/chunk-QZHKN3VN-DnqqL1de.js.br +0 -0
  425. package/payload/server/public/assets/chunk-QZHKN3VN-DnqqL1de.js.gz +0 -0
  426. package/payload/server/public/assets/chunk-U2HBQHQK-DT3NLMic.js.br +0 -0
  427. package/payload/server/public/assets/chunk-U2HBQHQK-DT3NLMic.js.gz +0 -0
  428. package/payload/server/public/assets/chunk-X2U36JSP-Dxaab1tD.js.br +0 -0
  429. package/payload/server/public/assets/chunk-X2U36JSP-Dxaab1tD.js.gz +0 -0
  430. package/payload/server/public/assets/chunk-XPW4576I-DtqJwn2x.js.br +0 -0
  431. package/payload/server/public/assets/chunk-XPW4576I-DtqJwn2x.js.gz +0 -0
  432. package/payload/server/public/assets/chunk-YZCP3GAM-CEEcRrOH.js.br +0 -0
  433. package/payload/server/public/assets/chunk-YZCP3GAM-CEEcRrOH.js.gz +0 -0
  434. package/payload/server/public/assets/chunk-ZZ45TVLE-CVhqjM4L.js.br +0 -0
  435. package/payload/server/public/assets/chunk-ZZ45TVLE-CVhqjM4L.js.gz +0 -0
  436. package/payload/server/public/assets/classDiagram-6PBFFD2Q-BPY9jtfT.js +0 -1
  437. package/payload/server/public/assets/classDiagram-6PBFFD2Q-BPY9jtfT.js.br +0 -0
  438. package/payload/server/public/assets/classDiagram-6PBFFD2Q-BPY9jtfT.js.gz +0 -0
  439. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-CLgDbwDp.js +0 -1
  440. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-CLgDbwDp.js.br +0 -0
  441. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-CLgDbwDp.js.gz +0 -0
  442. package/payload/server/public/assets/clock-BNp2JTKh.js +0 -1
  443. package/payload/server/public/assets/clock-BNp2JTKh.js.br +0 -0
  444. package/payload/server/public/assets/clock-BNp2JTKh.js.gz +0 -0
  445. package/payload/server/public/assets/clone-B6yMH1PX.js +0 -1
  446. package/payload/server/public/assets/clone-B6yMH1PX.js.br +0 -0
  447. package/payload/server/public/assets/copy-BkbgmpJo.js.br +0 -0
  448. package/payload/server/public/assets/copy-BkbgmpJo.js.gz +0 -0
  449. package/payload/server/public/assets/cose-bilkent-S5V4N54A-kEHVkDNn.js.br +0 -0
  450. package/payload/server/public/assets/cose-bilkent-S5V4N54A-kEHVkDNn.js.gz +0 -0
  451. package/payload/server/public/assets/dagre-BgQxtxH1.js.br +0 -0
  452. package/payload/server/public/assets/dagre-BgQxtxH1.js.gz +0 -0
  453. package/payload/server/public/assets/dagre-KV5264BT-CgxwoTcv.js.br +0 -0
  454. package/payload/server/public/assets/dagre-KV5264BT-CgxwoTcv.js.gz +0 -0
  455. package/payload/server/public/assets/data-yuHj8g0C.js +0 -1
  456. package/payload/server/public/assets/data-yuHj8g0C.js.br +0 -3
  457. package/payload/server/public/assets/data-yuHj8g0C.js.gz +0 -0
  458. package/payload/server/public/assets/diagram-5BDNPKRD-MEZ1cQGO.js.br +0 -0
  459. package/payload/server/public/assets/diagram-5BDNPKRD-MEZ1cQGO.js.gz +0 -0
  460. package/payload/server/public/assets/diagram-G4DWMVQ6-DbZg9hWP.js.br +0 -0
  461. package/payload/server/public/assets/diagram-G4DWMVQ6-DbZg9hWP.js.gz +0 -0
  462. package/payload/server/public/assets/diagram-MMDJMWI5-Bb1y8DFy.js.br +0 -0
  463. package/payload/server/public/assets/diagram-MMDJMWI5-Bb1y8DFy.js.gz +0 -0
  464. package/payload/server/public/assets/diagram-TYMM5635-tbStCw5U.js.br +0 -0
  465. package/payload/server/public/assets/diagram-TYMM5635-tbStCw5U.js.gz +0 -0
  466. package/payload/server/public/assets/erDiagram-SMLLAGMA-ClEFo_Bw.js.br +0 -0
  467. package/payload/server/public/assets/erDiagram-SMLLAGMA-ClEFo_Bw.js.gz +0 -0
  468. package/payload/server/public/assets/file-text-DDCrqbWB.js.br +0 -0
  469. package/payload/server/public/assets/file-text-DDCrqbWB.js.gz +0 -0
  470. package/payload/server/public/assets/flatten-Bu-b1uTY.js.br +0 -0
  471. package/payload/server/public/assets/flatten-Bu-b1uTY.js.gz +0 -0
  472. package/payload/server/public/assets/flowDiagram-DWJPFMVM-9yr262Ji.js.br +0 -0
  473. package/payload/server/public/assets/flowDiagram-DWJPFMVM-9yr262Ji.js.gz +0 -0
  474. package/payload/server/public/assets/ganttDiagram-T4ZO3ILL-ZCSA0DtG.js.br +0 -0
  475. package/payload/server/public/assets/gitGraph-7Q5UKJZL-B0OUwOUx.js +0 -1
  476. package/payload/server/public/assets/gitGraph-7Q5UKJZL-B0OUwOUx.js.br +0 -0
  477. package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-0KvpzpaU.js.br +0 -0
  478. package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-0KvpzpaU.js.gz +0 -0
  479. package/payload/server/public/assets/graph-BKPdL5ph.js.br +0 -0
  480. package/payload/server/public/assets/graph-BKPdL5ph.js.gz +0 -0
  481. package/payload/server/public/assets/graph-labels-B2PrHK6O.js.br +0 -0
  482. package/payload/server/public/assets/graph-labels-B2PrHK6O.js.gz +0 -0
  483. package/payload/server/public/assets/graphlib-B3SsCJOd.js.br +0 -0
  484. package/payload/server/public/assets/graphlib-B3SsCJOd.js.gz +0 -0
  485. package/payload/server/public/assets/info-OMHHGYJF-C_8TwPDe.js +0 -1
  486. package/payload/server/public/assets/info-OMHHGYJF-C_8TwPDe.js.br +0 -0
  487. package/payload/server/public/assets/infoDiagram-42DDH7IO-B607bZBJ.js +0 -2
  488. package/payload/server/public/assets/infoDiagram-42DDH7IO-B607bZBJ.js.br +0 -0
  489. package/payload/server/public/assets/infoDiagram-42DDH7IO-B607bZBJ.js.gz +0 -0
  490. package/payload/server/public/assets/isEmpty-CjH0UASp.js.br +0 -0
  491. package/payload/server/public/assets/isEmpty-CjH0UASp.js.gz +0 -0
  492. package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-DsDoNemz.js.br +0 -0
  493. package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-DsDoNemz.js.gz +0 -0
  494. package/payload/server/public/assets/journeyDiagram-VCZTEJTY-xyayGhw3.js.br +0 -0
  495. package/payload/server/public/assets/journeyDiagram-VCZTEJTY-xyayGhw3.js.gz +0 -0
  496. package/payload/server/public/assets/kanban-definition-6JOO6SKY-DuV3Go_1.js.br +0 -0
  497. package/payload/server/public/assets/kanban-definition-6JOO6SKY-DuV3Go_1.js.gz +0 -0
  498. package/payload/server/public/assets/line-Cpb8GRkf.js.br +0 -0
  499. package/payload/server/public/assets/line-Cpb8GRkf.js.gz +0 -0
  500. package/payload/server/public/assets/linear-l39GooQ5.js.br +0 -0
  501. package/payload/server/public/assets/linear-l39GooQ5.js.gz +0 -0
  502. package/payload/server/public/assets/mermaid-parser.core-9hkxt3j1.js.br +0 -0
  503. package/payload/server/public/assets/mermaid-parser.core-9hkxt3j1.js.gz +0 -0
  504. package/payload/server/public/assets/mermaid.core-iR6TQesD.js.br +0 -0
  505. package/payload/server/public/assets/mermaid.core-iR6TQesD.js.gz +0 -0
  506. package/payload/server/public/assets/mindmap-definition-QFDTVHPH-LCKhTYzs.js.br +0 -0
  507. package/payload/server/public/assets/mindmap-definition-QFDTVHPH-LCKhTYzs.js.gz +0 -0
  508. package/payload/server/public/assets/operator-BVULmN09.js.br +0 -0
  509. package/payload/server/public/assets/operator-BVULmN09.js.gz +0 -0
  510. package/payload/server/public/assets/ordinal-D6D6WcTC.js.br +0 -0
  511. package/payload/server/public/assets/ordinal-D6D6WcTC.js.gz +0 -0
  512. package/payload/server/public/assets/packet-4T2RLAQJ-CCQdbIqO.js +0 -1
  513. package/payload/server/public/assets/packet-4T2RLAQJ-CCQdbIqO.js.br +0 -0
  514. package/payload/server/public/assets/page-BbzdSxuU.js.br +0 -0
  515. package/payload/server/public/assets/page-BbzdSxuU.js.gz +0 -0
  516. package/payload/server/public/assets/page-baQ9FQIg.js.br +0 -0
  517. package/payload/server/public/assets/page-baQ9FQIg.js.gz +0 -0
  518. package/payload/server/public/assets/pdf-render-DanMu_cf.js.br +0 -0
  519. package/payload/server/public/assets/pie-ZZUOXDRM-Bdw3Iqs7.js +0 -1
  520. package/payload/server/public/assets/pie-ZZUOXDRM-Bdw3Iqs7.js.br +0 -0
  521. package/payload/server/public/assets/pieDiagram-DEJITSTG-Oo7wgo0C.js.br +0 -0
  522. package/payload/server/public/assets/pieDiagram-DEJITSTG-Oo7wgo0C.js.gz +0 -0
  523. package/payload/server/public/assets/play-3hlqzxLI.js +0 -1
  524. package/payload/server/public/assets/play-3hlqzxLI.js.br +0 -0
  525. package/payload/server/public/assets/play-3hlqzxLI.js.gz +0 -0
  526. package/payload/server/public/assets/public-B_SEBxWy.js.br +0 -0
  527. package/payload/server/public/assets/public-B_SEBxWy.js.gz +0 -0
  528. package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-B2hs2ord.js.br +0 -0
  529. package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-B2hs2ord.js.gz +0 -0
  530. package/payload/server/public/assets/radar-PYXPWWZC-D3FUdA3r.js +0 -1
  531. package/payload/server/public/assets/radar-PYXPWWZC-D3FUdA3r.js.br +0 -0
  532. package/payload/server/public/assets/reduce-BtXXK8Ma.js.br +0 -0
  533. package/payload/server/public/assets/reduce-BtXXK8Ma.js.gz +0 -0
  534. package/payload/server/public/assets/requirementDiagram-MS252O5E-B8UkCUzW.js.br +0 -0
  535. package/payload/server/public/assets/requirementDiagram-MS252O5E-B8UkCUzW.js.gz +0 -0
  536. package/payload/server/public/assets/rotate-ccw-DzXTXh3g.js.br +0 -0
  537. package/payload/server/public/assets/rotate-ccw-DzXTXh3g.js.gz +0 -0
  538. package/payload/server/public/assets/routines-BQzE0xzC.js +0 -2
  539. package/payload/server/public/assets/routines-BQzE0xzC.js.br +0 -0
  540. package/payload/server/public/assets/routines-BQzE0xzC.js.gz +0 -0
  541. package/payload/server/public/assets/sankeyDiagram-XADWPNL6-Cojqqz7t.js.br +0 -0
  542. package/payload/server/public/assets/sankeyDiagram-XADWPNL6-Cojqqz7t.js.gz +0 -0
  543. package/payload/server/public/assets/sequenceDiagram-FGHM5R23-C7ODsPjE.js.br +0 -0
  544. package/payload/server/public/assets/sequenceDiagram-FGHM5R23-C7ODsPjE.js.gz +0 -0
  545. package/payload/server/public/assets/skills-yCZhYVIs.js.br +0 -0
  546. package/payload/server/public/assets/skills-yCZhYVIs.js.gz +0 -0
  547. package/payload/server/public/assets/stateDiagram-FHFEXIEX-BC8a_P9c.js.br +0 -0
  548. package/payload/server/public/assets/stateDiagram-FHFEXIEX-BC8a_P9c.js.gz +0 -0
  549. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-C7KvMtT5.js +0 -1
  550. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-C7KvMtT5.js.br +0 -0
  551. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-C7KvMtT5.js.gz +0 -0
  552. package/payload/server/public/assets/tasks-DxNFLsHv.js.br +0 -0
  553. package/payload/server/public/assets/tasks-DxNFLsHv.js.gz +0 -0
  554. package/payload/server/public/assets/timeline-definition-GMOUNBTQ-BMxUC3ri.js.br +0 -0
  555. package/payload/server/public/assets/timeline-definition-GMOUNBTQ-BMxUC3ri.js.gz +0 -0
  556. package/payload/server/public/assets/treeView-SZITEDCU-DetKw0D0.js +0 -1
  557. package/payload/server/public/assets/treeView-SZITEDCU-DetKw0D0.js.br +0 -0
  558. package/payload/server/public/assets/treemap-W4RFUUIX-zQkIANxW.js +0 -1
  559. package/payload/server/public/assets/treemap-W4RFUUIX-zQkIANxW.js.br +0 -0
  560. package/payload/server/public/assets/triangle-alert-CYwHTcvU.js.br +0 -0
  561. package/payload/server/public/assets/triangle-alert-CYwHTcvU.js.gz +0 -0
  562. package/payload/server/public/assets/useCopyFeedback-BCRjKc-H.js.br +0 -0
  563. package/payload/server/public/assets/useCopyFeedback-BCRjKc-H.js.gz +0 -0
  564. package/payload/server/public/assets/useMediaQuery-Vxpamxqq.css.br +0 -0
  565. package/payload/server/public/assets/useMediaQuery-Vxpamxqq.css.gz +0 -0
  566. package/payload/server/public/assets/useVoiceRecorder-BaAtMu9T.js.br +0 -0
  567. package/payload/server/public/assets/useVoiceRecorder-BaAtMu9T.js.gz +0 -0
  568. package/payload/server/public/assets/vennDiagram-DHZGUBPP-BsRGBF0K.js.br +0 -0
  569. package/payload/server/public/assets/wardley-RL74JXVD-DkQV3DvB.js +0 -1
  570. package/payload/server/public/assets/wardley-RL74JXVD-DkQV3DvB.js.br +0 -0
  571. package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-oQh9A-Mq.js.br +0 -0
  572. package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-oQh9A-Mq.js.gz +0 -0
  573. package/payload/server/public/assets/wrench-iI-vx-g2.js.br +0 -0
  574. package/payload/server/public/assets/wrench-iI-vx-g2.js.gz +0 -0
  575. package/payload/server/public/assets/xychartDiagram-5P7HB3ND-0K87OmFI.js.br +0 -0
  576. package/payload/server/public/assets/xychartDiagram-5P7HB3ND-0K87OmFI.js.gz +0 -0
  577. /package/payload/server/public/assets/{_baseFor-B12He5Rp.js → _baseFor-Be3EKK3K.js} +0 -0
  578. /package/payload/server/public/assets/{_baseFor-B12He5Rp.js.br → _baseFor-Be3EKK3K.js.br} +0 -0
  579. /package/payload/server/public/assets/{_baseFor-B12He5Rp.js.gz → _baseFor-Be3EKK3K.js.gz} +0 -0
  580. /package/payload/server/public/assets/{array-DO1uCttT.js → array-X0JlPOfd.js} +0 -0
  581. /package/payload/server/public/assets/{array-DO1uCttT.js.br → array-X0JlPOfd.js.br} +0 -0
  582. /package/payload/server/public/assets/{cytoscape.esm-DFn2foqy.js → cytoscape.esm-CI2IWMLB.js} +0 -0
  583. /package/payload/server/public/assets/{cytoscape.esm-DFn2foqy.js.br → cytoscape.esm-CI2IWMLB.js.br} +0 -0
  584. /package/payload/server/public/assets/{cytoscape.esm-DFn2foqy.js.gz → cytoscape.esm-CI2IWMLB.js.gz} +0 -0
  585. /package/payload/server/public/assets/{defaultLocale-ieI3yFoA.js → defaultLocale-B6RGN4id.js} +0 -0
  586. /package/payload/server/public/assets/{defaultLocale-ieI3yFoA.js.br → defaultLocale-B6RGN4id.js.br} +0 -0
  587. /package/payload/server/public/assets/{defaultLocale-ieI3yFoA.js.gz → defaultLocale-B6RGN4id.js.gz} +0 -0
  588. /package/payload/server/public/assets/{dist-DlU7AEeD.js → dist-QvbmK1IP.js} +0 -0
  589. /package/payload/server/public/assets/{dist-DlU7AEeD.js.br → dist-QvbmK1IP.js.br} +0 -0
  590. /package/payload/server/public/assets/{dist-DlU7AEeD.js.gz → dist-QvbmK1IP.js.gz} +0 -0
  591. /package/payload/server/public/assets/{file-download-DbNIjWiK.js → file-download-DiQesOd2.js} +0 -0
  592. /package/payload/server/public/assets/{file-download-DbNIjWiK.js.br → file-download-DiQesOd2.js.br} +0 -0
  593. /package/payload/server/public/assets/{file-download-DbNIjWiK.js.gz → file-download-DiQesOd2.js.gz} +0 -0
  594. /package/payload/server/public/assets/{init-BCRlEgNP.js → init-BmUWJJHz.js} +0 -0
  595. /package/payload/server/public/assets/{init-BCRlEgNP.js.br → init-BmUWJJHz.js.br} +0 -0
  596. /package/payload/server/public/assets/{init-BCRlEgNP.js.gz → init-BmUWJJHz.js.gz} +0 -0
  597. /package/payload/server/public/assets/{katex-gkTaZgi6.js → katex-BjZuzSQn.js} +0 -0
  598. /package/payload/server/public/assets/{katex-gkTaZgi6.js.br → katex-BjZuzSQn.js.br} +0 -0
  599. /package/payload/server/public/assets/{katex-gkTaZgi6.js.gz → katex-BjZuzSQn.js.gz} +0 -0
  600. /package/payload/server/public/assets/{path-DTmzQFjQ.js → path-CoPyR7c2.js} +0 -0
  601. /package/payload/server/public/assets/{path-DTmzQFjQ.js.br → path-CoPyR7c2.js.br} +0 -0
  602. /package/payload/server/public/assets/{path-DTmzQFjQ.js.gz → path-CoPyR7c2.js.gz} +0 -0
  603. /package/payload/server/public/assets/{preload-helper-BQrMkyGX.js → preload-helper-BJ2zoBc3.js} +0 -0
  604. /package/payload/server/public/assets/{preload-helper-BQrMkyGX.js.br → preload-helper-BJ2zoBc3.js.br} +0 -0
  605. /package/payload/server/public/assets/{preload-helper-BQrMkyGX.js.gz → preload-helper-BJ2zoBc3.js.gz} +0 -0
  606. /package/payload/server/public/assets/{rough.esm-BFJ-MgcB.js → rough.esm-jSt7UMyi.js} +0 -0
  607. /package/payload/server/public/assets/{rough.esm-BFJ-MgcB.js.br → rough.esm-jSt7UMyi.js.br} +0 -0
  608. /package/payload/server/public/assets/{rough.esm-BFJ-MgcB.js.gz → rough.esm-jSt7UMyi.js.gz} +0 -0
  609. /package/payload/server/public/assets/{src-9CNk4JU0.js → src-C2WwTWSY.js} +0 -0
  610. /package/payload/server/public/assets/{src-9CNk4JU0.js.br → src-C2WwTWSY.js.br} +0 -0
  611. /package/payload/server/public/assets/{src-9CNk4JU0.js.gz → src-C2WwTWSY.js.gz} +0 -0
  612. /package/payload/server/public/assets/{useMediaQuery-Baf4Huvv.js → useMediaQuery-CLxecNeT.js} +0 -0
  613. /package/payload/server/public/assets/{useMediaQuery-Baf4Huvv.js.br → useMediaQuery-CLxecNeT.js.br} +0 -0
  614. /package/payload/server/public/assets/{useMediaQuery-Baf4Huvv.js.gz → useMediaQuery-CLxecNeT.js.gz} +0 -0
@@ -1 +1 @@
1
- import{o as e}from"./chunk-CltuBf4Z.js";import{M as t,O as n,U as r,V as i,at as a,ct as o,j as s,k as c,nt as l,ot as u}from"./useMediaQuery-Baf4Huvv.js";import{h as d,k as f,t as p}from"./AdminShell-Dc5du5xX.js";import{t as m}from"./file-text-DDCrqbWB.js";var h=u(),g=e(o(),1),_=l();function v({summary:e,adminFetch:n,onClose:a,onDeleted:o}){let[c,l]=(0,g.useState)(null),[u,f]=(0,g.useState)(!0),[p,h]=(0,g.useState)(null),[v,y]=(0,g.useState)(!1),[b,x]=(0,g.useState)(!1);(0,g.useEffect)(()=>{let t=!1;return f(!0),h(null),n(`/api/admin/skills/${encodeURIComponent(e.plugin)}/${encodeURIComponent(e.skill)}`).then(async e=>{if(!t){if(!e.ok)throw Error(`HTTP ${e.status}`);l((await e.json()).skill)}}).catch(e=>{t||h(e instanceof Error?e.message:`Failed to load`)}).finally(()=>{t||f(!1)}),()=>{t=!0}},[n,e.plugin,e.skill]),(0,g.useEffect)(()=>{let e=e=>{e.key===`Escape`&&!b&&a()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[b,a]);let S=(0,g.useCallback)(async()=>{x(!0),h(null);try{let t=await n(`/api/admin/skills/${encodeURIComponent(e.plugin)}/${encodeURIComponent(e.skill)}`,{method:`DELETE`,headers:{"content-type":`application/json`}});if(!t.ok){let e=await t.json().catch(()=>({}));throw Error(e.error??`HTTP ${t.status}`)}o(e)}catch(e){h(e instanceof Error?e.message:`Delete failed`),x(!1),y(!1)}},[n,e,o]);return(0,_.jsx)(`div`,{className:`cal-modal-overlay`,onClick:()=>{b||a()},children:(0,_.jsxs)(`div`,{className:`cal-modal cal-modal-wide`,role:`dialog`,"aria-modal":`true`,"aria-label":`Skill detail`,onClick:e=>e.stopPropagation(),children:[(0,_.jsxs)(`div`,{className:`cal-modal-header`,children:[(0,_.jsxs)(`span`,{className:`cal-modal-kind`,children:[(0,_.jsx)(d,{size:13}),` Skill`]}),(0,_.jsx)(`button`,{type:`button`,className:`cal-modal-close`,onClick:a,"aria-label":`Close`,autoFocus:!0,disabled:b,children:(0,_.jsx)(s,{size:16})})]}),(0,_.jsxs)(`div`,{className:`cal-modal-body`,children:[(0,_.jsx)(`div`,{className:`cal-modal-title`,children:e.skill}),(0,_.jsxs)(`div`,{className:`cal-modal-row cal-modal-meta`,children:[(0,_.jsx)(m,{size:14}),(0,_.jsx)(`span`,{children:e.plugin})]}),u&&(0,_.jsxs)(`div`,{className:`cal-modal-row cal-modal-meta`,children:[(0,_.jsx)(i,{size:14,className:`spin`}),(0,_.jsx)(`span`,{children:`Loading…`})]}),c&&(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(`div`,{className:`cal-modal-row cal-modal-meta`,children:(0,_.jsx)(`span`,{children:c.frontmatter.description||`No description.`})}),c.frontmatter.publicEmbed&&(0,_.jsxs)(`div`,{className:`cal-modal-row cal-modal-meta`,children:[(0,_.jsx)(r,{size:14}),(0,_.jsx)(`span`,{children:`Public embed`})]}),(0,_.jsx)(`pre`,{className:`skill-body`,children:c.body.trim()||`No body content.`}),c.references.length>0&&(0,_.jsxs)(`div`,{className:`skill-refs`,children:[(0,_.jsx)(`span`,{className:`skill-refs-label`,children:`References`}),c.references.map(e=>(0,_.jsxs)(`span`,{className:`skill-ref`,children:[(0,_.jsx)(m,{size:13}),` `,e]},e))]})]})]}),p&&(0,_.jsx)(`div`,{className:`cal-modal-error`,children:p}),(0,_.jsxs)(`div`,{className:`cal-modal-actions`,children:[!v&&(0,_.jsxs)(`button`,{type:`button`,className:`cal-modal-btn cal-modal-btn-danger`,onClick:()=>y(!0),disabled:b||u,children:[(0,_.jsx)(t,{size:14}),` Delete`]}),v&&(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(`span`,{className:`cal-modal-confirm-text`,children:`Delete this skill?`}),(0,_.jsxs)(`button`,{type:`button`,className:`cal-modal-btn cal-modal-btn-danger`,onClick:S,disabled:b,children:[b?(0,_.jsx)(i,{size:14,className:`spin`}):(0,_.jsx)(t,{size:14}),` Delete`]}),(0,_.jsx)(`button`,{type:`button`,className:`cal-modal-btn`,onClick:()=>y(!1),disabled:b,children:`Cancel`})]})]})]})})}var y=`maxy-admin-session-key`;function b(){let[e,t]=(0,g.useState)(null),[r,i]=(0,g.useState)(!1),[a,o]=(0,g.useState)(void 0),[s,l]=(0,g.useState)(null),[u,d]=(0,g.useState)(void 0),[m,h]=(0,g.useState)(null),[v,b]=(0,g.useState)(null);(0,g.useEffect)(()=>{let e=!1,n=null;try{n=sessionStorage.getItem(y)}catch{}if(!n){i(!0);return}return fetch(`/api/admin/session?session_key=${encodeURIComponent(n)}`).then(async r=>{if(!e){if(r.status===401){try{sessionStorage.removeItem(y)}catch{}window.location.href=`/`;return}if(r.ok)try{let e=await r.json();typeof e.businessName==`string`&&o(e.businessName),e.sessionId!==void 0&&l(e.sessionId??null),b(e.role??null),d(e.userName===void 0?null:e.userName),h(e.avatar??null)}catch{}t(n),i(!0)}}).catch(()=>{e||(t(n),i(!0))}),()=>{e=!0}},[]);let S=(0,g.useCallback)(()=>{try{sessionStorage.removeItem(y)}catch{}window.location.href=`/`},[]),[C,w]=(0,g.useState)(!1),T=(0,g.useCallback)(async()=>{w(!0);try{let e=await f();if(e){try{sessionStorage.removeItem(y)}catch{}window.location.href=`/`}return e}finally{w(!1)}},[]);return r?e?(0,_.jsx)(c,{cacheKey:e,surface:`skills`,onSessionExpired:({code:e,path:t})=>{console.warn(`[admin-auth] outcome=session-expired-redirect code=${e} path=${t} surface=skills`);try{sessionStorage.removeItem(y)}catch{}window.location.href=`/`},children:(0,_.jsx)(p,{cacheKey:e,businessName:a,sessionId:s,onLogout:S,onDisconnect:T,disconnecting:C,userName:u,userAvatar:m,role:v,children:(0,_.jsx)(x,{cacheKey:e})})}):(0,_.jsx)(`div`,{className:`cal-page`,children:(0,_.jsxs)(`div`,{className:`cal-empty`,children:[(0,_.jsx)(`p`,{children:`You are not signed in.`}),(0,_.jsxs)(`p`,{children:[`Open the `,(0,_.jsx)(`a`,{href:`/`,className:`cal-link`,children:`main admin page`}),` and log in, then return here.`]})]})}):(0,_.jsx)(n,{surface:`gate`})}function x({cacheKey:e}){let{adminFetch:t,sessionRefetchNonce:r}=a({initialCacheKey:e,surface:`skills`}),[o,s]=(0,g.useState)([]),[c,l]=(0,g.useState)(!1),[u,f]=(0,g.useState)(!1),[p,h]=(0,g.useState)(null),[y,b]=(0,g.useState)(null),x=(0,g.useCallback)(()=>{let e=!1;return l(!0),h(null),t(`/api/admin/skills`).then(async t=>{if(e)return;if(!t.ok)throw Error(`HTTP ${t.status}`);let n=await t.json();s(Array.isArray(n.skills)?n.skills:[])}).catch(t=>{e||(h(t instanceof Error?t.message:`Failed to load`),s([]))}).finally(()=>{e||(l(!1),f(!0))}),()=>{e=!0}},[t]);(0,g.useEffect)(()=>x(),[x,r]);let S=(0,g.useCallback)(e=>{s(t=>t.filter(t=>!(t.plugin===e.plugin&&t.skill===e.skill))),b(null),x()},[x]);return u?(0,_.jsxs)(`div`,{className:`cal-page`,children:[(0,_.jsx)(`header`,{className:`cal-header`,children:(0,_.jsxs)(`div`,{className:`cal-nav`,children:[(0,_.jsxs)(`span`,{className:`cal-range-label`,children:[(0,_.jsx)(d,{size:16}),` Skills`]}),c&&(0,_.jsx)(i,{size:16,className:`spin`})]})}),(0,_.jsxs)(`div`,{className:`cal-body`,children:[p&&(0,_.jsxs)(`div`,{className:`cal-error`,children:[`Could not load skills: `,p]}),!p&&!c&&o.length===0&&(0,_.jsx)(`div`,{className:`cal-empty`,children:(0,_.jsx)(`p`,{children:`No skills yet. Ask in chat to create one.`})}),o.length>0&&(0,_.jsx)(`div`,{className:`routine-list`,children:o.map(e=>(0,_.jsxs)(`button`,{type:`button`,className:`admin-card admin-card--padded routine-card`,onClick:()=>b(e),children:[(0,_.jsx)(`span`,{className:`admin-card-title routine-card-title`,children:e.skill}),(0,_.jsxs)(`span`,{className:`routine-card-sched`,children:[(0,_.jsx)(m,{size:13}),` `,e.plugin]}),(0,_.jsx)(`span`,{className:`skill-card-desc`,children:e.description||`No description.`}),(0,_.jsx)(`span`,{className:`routine-card-meta`,children:e.refCount===0?`No references`:`${e.refCount} reference${e.refCount===1?``:`s`}`})]},`${e.plugin}/${e.skill}`))})]}),y&&(0,_.jsx)(v,{summary:y,adminFetch:t,onClose:()=>b(null),onDeleted:S})]}):(0,_.jsx)(n,{surface:`gate`})}(0,h.createRoot)(document.getElementById(`root`)).render((0,_.jsx)(b,{}));
1
+ import{o as e}from"./chunk-CltuBf4Z.js";import{M as t,O as n,U as r,V as i,at as a,ct as o,j as s,k as c,nt as l,ot as u}from"./useMediaQuery-CLxecNeT.js";import{A as d,h as f,t as p}from"./AdminShell-DUUw6WNs.js";import{t as m}from"./file-text-s2dqE-bu.js";var h=u(),g=e(o(),1),_=l();function v({summary:e,adminFetch:n,onClose:a,onDeleted:o}){let[c,l]=(0,g.useState)(null),[u,d]=(0,g.useState)(!0),[p,h]=(0,g.useState)(null),[v,y]=(0,g.useState)(!1),[b,x]=(0,g.useState)(!1);(0,g.useEffect)(()=>{let t=!1;return d(!0),h(null),n(`/api/admin/skills/${encodeURIComponent(e.plugin)}/${encodeURIComponent(e.skill)}`).then(async e=>{if(!t){if(!e.ok)throw Error(`HTTP ${e.status}`);l((await e.json()).skill)}}).catch(e=>{t||h(e instanceof Error?e.message:`Failed to load`)}).finally(()=>{t||d(!1)}),()=>{t=!0}},[n,e.plugin,e.skill]),(0,g.useEffect)(()=>{let e=e=>{e.key===`Escape`&&!b&&a()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[b,a]);let S=(0,g.useCallback)(async()=>{x(!0),h(null);try{let t=await n(`/api/admin/skills/${encodeURIComponent(e.plugin)}/${encodeURIComponent(e.skill)}`,{method:`DELETE`,headers:{"content-type":`application/json`}});if(!t.ok){let e=await t.json().catch(()=>({}));throw Error(e.error??`HTTP ${t.status}`)}o(e)}catch(e){h(e instanceof Error?e.message:`Delete failed`),x(!1),y(!1)}},[n,e,o]);return(0,_.jsx)(`div`,{className:`cal-modal-overlay`,onClick:()=>{b||a()},children:(0,_.jsxs)(`div`,{className:`cal-modal cal-modal-wide`,role:`dialog`,"aria-modal":`true`,"aria-label":`Skill detail`,onClick:e=>e.stopPropagation(),children:[(0,_.jsxs)(`div`,{className:`cal-modal-header`,children:[(0,_.jsxs)(`span`,{className:`cal-modal-kind`,children:[(0,_.jsx)(f,{size:13}),` Skill`]}),(0,_.jsx)(`button`,{type:`button`,className:`cal-modal-close`,onClick:a,"aria-label":`Close`,autoFocus:!0,disabled:b,children:(0,_.jsx)(s,{size:16})})]}),(0,_.jsxs)(`div`,{className:`cal-modal-body`,children:[(0,_.jsx)(`div`,{className:`cal-modal-title`,children:e.skill}),(0,_.jsxs)(`div`,{className:`cal-modal-row cal-modal-meta`,children:[(0,_.jsx)(m,{size:14}),(0,_.jsx)(`span`,{children:e.plugin})]}),u&&(0,_.jsxs)(`div`,{className:`cal-modal-row cal-modal-meta`,children:[(0,_.jsx)(i,{size:14,className:`spin`}),(0,_.jsx)(`span`,{children:`Loading…`})]}),c&&(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(`div`,{className:`cal-modal-row cal-modal-meta`,children:(0,_.jsx)(`span`,{children:c.frontmatter.description||`No description.`})}),c.frontmatter.publicEmbed&&(0,_.jsxs)(`div`,{className:`cal-modal-row cal-modal-meta`,children:[(0,_.jsx)(r,{size:14}),(0,_.jsx)(`span`,{children:`Public embed`})]}),(0,_.jsx)(`pre`,{className:`skill-body`,children:c.body.trim()||`No body content.`}),c.references.length>0&&(0,_.jsxs)(`div`,{className:`skill-refs`,children:[(0,_.jsx)(`span`,{className:`skill-refs-label`,children:`References`}),c.references.map(e=>(0,_.jsxs)(`span`,{className:`skill-ref`,children:[(0,_.jsx)(m,{size:13}),` `,e]},e))]})]})]}),p&&(0,_.jsx)(`div`,{className:`cal-modal-error`,children:p}),(0,_.jsxs)(`div`,{className:`cal-modal-actions`,children:[!v&&(0,_.jsxs)(`button`,{type:`button`,className:`cal-modal-btn cal-modal-btn-danger`,onClick:()=>y(!0),disabled:b||u,children:[(0,_.jsx)(t,{size:14}),` Delete`]}),v&&(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(`span`,{className:`cal-modal-confirm-text`,children:`Delete this skill?`}),(0,_.jsxs)(`button`,{type:`button`,className:`cal-modal-btn cal-modal-btn-danger`,onClick:S,disabled:b,children:[b?(0,_.jsx)(i,{size:14,className:`spin`}):(0,_.jsx)(t,{size:14}),` Delete`]}),(0,_.jsx)(`button`,{type:`button`,className:`cal-modal-btn`,onClick:()=>y(!1),disabled:b,children:`Cancel`})]})]})]})})}var y=`maxy-admin-session-key`;function b(){let[e,t]=(0,g.useState)(null),[r,i]=(0,g.useState)(!1),[a,o]=(0,g.useState)(void 0),[s,l]=(0,g.useState)(null),[u,f]=(0,g.useState)(void 0),[m,h]=(0,g.useState)(null),[v,b]=(0,g.useState)(null);(0,g.useEffect)(()=>{let e=!1,n=null;try{n=sessionStorage.getItem(y)}catch{}if(!n){i(!0);return}return fetch(`/api/admin/session?session_key=${encodeURIComponent(n)}`).then(async r=>{if(!e){if(r.status===401){try{sessionStorage.removeItem(y)}catch{}window.location.href=`/`;return}if(r.ok)try{let e=await r.json();typeof e.businessName==`string`&&o(e.businessName),e.sessionId!==void 0&&l(e.sessionId??null),b(e.role??null),f(e.userName===void 0?null:e.userName),h(e.avatar??null)}catch{}t(n),i(!0)}}).catch(()=>{e||(t(n),i(!0))}),()=>{e=!0}},[]);let S=(0,g.useCallback)(()=>{try{sessionStorage.removeItem(y)}catch{}window.location.href=`/`},[]),[C,w]=(0,g.useState)(!1),T=(0,g.useCallback)(async()=>{w(!0);try{let e=await d();if(e){try{sessionStorage.removeItem(y)}catch{}window.location.href=`/`}return e}finally{w(!1)}},[]);return r?e?(0,_.jsx)(c,{cacheKey:e,surface:`skills`,onSessionExpired:({code:e,path:t})=>{console.warn(`[admin-auth] outcome=session-expired-redirect code=${e} path=${t} surface=skills`);try{sessionStorage.removeItem(y)}catch{}window.location.href=`/`},children:(0,_.jsx)(p,{cacheKey:e,businessName:a,sessionId:s,onLogout:S,onDisconnect:T,disconnecting:C,userName:u,userAvatar:m,role:v,children:(0,_.jsx)(x,{cacheKey:e})})}):(0,_.jsx)(`div`,{className:`cal-page`,children:(0,_.jsxs)(`div`,{className:`cal-empty`,children:[(0,_.jsx)(`p`,{children:`You are not signed in.`}),(0,_.jsxs)(`p`,{children:[`Open the `,(0,_.jsx)(`a`,{href:`/`,className:`cal-link`,children:`main admin page`}),` and log in, then return here.`]})]})}):(0,_.jsx)(n,{surface:`gate`})}function x({cacheKey:e}){let{adminFetch:t,sessionRefetchNonce:r}=a({initialCacheKey:e,surface:`skills`}),[o,s]=(0,g.useState)([]),[c,l]=(0,g.useState)(!1),[u,d]=(0,g.useState)(!1),[p,h]=(0,g.useState)(null),[y,b]=(0,g.useState)(null),x=(0,g.useCallback)(()=>{let e=!1;return l(!0),h(null),t(`/api/admin/skills`).then(async t=>{if(e)return;if(!t.ok)throw Error(`HTTP ${t.status}`);let n=await t.json();s(Array.isArray(n.skills)?n.skills:[])}).catch(t=>{e||(h(t instanceof Error?t.message:`Failed to load`),s([]))}).finally(()=>{e||(l(!1),d(!0))}),()=>{e=!0}},[t]);(0,g.useEffect)(()=>x(),[x,r]);let S=(0,g.useCallback)(e=>{s(t=>t.filter(t=>!(t.plugin===e.plugin&&t.skill===e.skill))),b(null),x()},[x]);return u?(0,_.jsxs)(`div`,{className:`cal-page`,children:[(0,_.jsx)(`header`,{className:`cal-header`,children:(0,_.jsxs)(`div`,{className:`cal-nav`,children:[(0,_.jsxs)(`span`,{className:`cal-range-label`,children:[(0,_.jsx)(f,{size:16}),` Skills`]}),c&&(0,_.jsx)(i,{size:16,className:`spin`})]})}),(0,_.jsxs)(`div`,{className:`cal-body`,children:[p&&(0,_.jsxs)(`div`,{className:`cal-error`,children:[`Could not load skills: `,p]}),!p&&!c&&o.length===0&&(0,_.jsx)(`div`,{className:`cal-empty`,children:(0,_.jsx)(`p`,{children:`No skills yet. Ask in chat to create one.`})}),o.length>0&&(0,_.jsx)(`div`,{className:`routine-list`,children:o.map(e=>(0,_.jsxs)(`button`,{type:`button`,className:`admin-card admin-card--padded routine-card`,onClick:()=>b(e),children:[(0,_.jsx)(`span`,{className:`admin-card-title routine-card-title`,children:e.skill}),(0,_.jsxs)(`span`,{className:`routine-card-sched`,children:[(0,_.jsx)(m,{size:13}),` `,e.plugin]}),(0,_.jsx)(`span`,{className:`skill-card-desc`,children:e.description||`No description.`}),(0,_.jsx)(`span`,{className:`routine-card-meta`,children:e.refCount===0?`No references`:`${e.refCount} reference${e.refCount===1?``:`s`}`})]},`${e.plugin}/${e.skill}`))})]}),y&&(0,_.jsx)(v,{summary:y,adminFetch:t,onClose:()=>b(null),onDeleted:S})]}):(0,_.jsx)(n,{surface:`gate`})}(0,h.createRoot)(document.getElementById(`root`)).render((0,_.jsx)(b,{}));
@@ -1 +1 @@
1
- import{g as e,h as t,p as n}from"./src-9CNk4JU0.js";import{D as r,b as i,c as a,s as o}from"./chunk-ICPOFSXX-CKQWnR1l.js";import"./dist-DlU7AEeD.js";import{H as s,h as c}from"./chunk-5PVQY5BW-CYusrVbq.js";import{t as l}from"./line-Cpb8GRkf.js";import"./chunk-U2HBQHQK-DT3NLMic.js";import"./chunk-BSJP7CBP-DqXIO_5R.js";import"./chunk-ZZ45TVLE-CVhqjM4L.js";import{t as u}from"./graphlib-B3SsCJOd.js";import{t as d}from"./dagre-BgQxtxH1.js";import"./chunk-55IACEB6-DDU_m1ra.js";import"./chunk-EDXVE4YY-CyjTyMkv.js";import"./chunk-X2U36JSP-Dxaab1tD.js";import"./chunk-5FUZZQ4R-B21kX6ld.js";import"./chunk-ENJZ2VHE-B-k8uOTF.js";import"./chunk-336JU56O-DR5EUh9D.js";import{i as f,n as p,t as m}from"./chunk-OYMX7WX6-Dis40FU5.js";var h=t(e=>e.append(`circle`).attr(`class`,`start-state`).attr(`r`,i().state.sizeUnit).attr(`cx`,i().state.padding+i().state.sizeUnit).attr(`cy`,i().state.padding+i().state.sizeUnit),`drawStartState`),g=t(e=>e.append(`line`).style(`stroke`,`grey`).style(`stroke-dasharray`,`3`).attr(`x1`,i().state.textHeight).attr(`class`,`divider`).attr(`x2`,i().state.textHeight*2).attr(`y1`,0).attr(`y2`,0),`drawDivider`),_=t((e,t)=>{let n=e.append(`text`).attr(`x`,2*i().state.padding).attr(`y`,i().state.textHeight+2*i().state.padding).attr(`font-size`,i().state.fontSize).attr(`class`,`state-title`).text(t.id),r=n.node().getBBox();return e.insert(`rect`,`:first-child`).attr(`x`,i().state.padding).attr(`y`,i().state.padding).attr(`width`,r.width+2*i().state.padding).attr(`height`,r.height+2*i().state.padding).attr(`rx`,i().state.radius),n},`drawSimpleState`),v=t((e,n)=>{let r=t(function(e,t,n){let r=e.append(`tspan`).attr(`x`,2*i().state.padding).text(t);n||r.attr(`dy`,i().state.textHeight)},`addTspan`),a=e.append(`text`).attr(`x`,2*i().state.padding).attr(`y`,i().state.textHeight+1.3*i().state.padding).attr(`font-size`,i().state.fontSize).attr(`class`,`state-title`).text(n.descriptions[0]).node().getBBox(),o=a.height,s=e.append(`text`).attr(`x`,i().state.padding).attr(`y`,o+i().state.padding*.4+i().state.dividerMargin+i().state.textHeight).attr(`class`,`state-description`),c=!0,l=!0;n.descriptions.forEach(function(e){c||(r(s,e,l),l=!1),c=!1});let u=e.append(`line`).attr(`x1`,i().state.padding).attr(`y1`,i().state.padding+o+i().state.dividerMargin/2).attr(`y2`,i().state.padding+o+i().state.dividerMargin/2).attr(`class`,`descr-divider`),d=s.node().getBBox(),f=Math.max(d.width,a.width);return u.attr(`x2`,f+3*i().state.padding),e.insert(`rect`,`:first-child`).attr(`x`,i().state.padding).attr(`y`,i().state.padding).attr(`width`,f+2*i().state.padding).attr(`height`,d.height+o+2*i().state.padding).attr(`rx`,i().state.radius),e},`drawDescrState`),y=t((e,t,n)=>{let r=i().state.padding,a=2*i().state.padding,o=e.node().getBBox(),s=o.width,c=o.x,l=e.append(`text`).attr(`x`,0).attr(`y`,i().state.titleShift).attr(`font-size`,i().state.fontSize).attr(`class`,`state-title`).text(t.id),u=l.node().getBBox().width+a,d=Math.max(u,s);d===s&&(d+=a);let f,p=e.node().getBBox();t.doc,f=c-r,u>s&&(f=(s-d)/2+r),Math.abs(c-p.x)<r&&u>s&&(f=c-(u-s)/2);let m=1-i().state.textHeight;return e.insert(`rect`,`:first-child`).attr(`x`,f).attr(`y`,m).attr(`class`,n?`alt-composit`:`composit`).attr(`width`,d).attr(`height`,p.height+i().state.textHeight+i().state.titleShift+1).attr(`rx`,`0`),l.attr(`x`,f+r),u<=s&&l.attr(`x`,c+(d-a)/2-u/2+r),e.insert(`rect`,`:first-child`).attr(`x`,f).attr(`y`,i().state.titleShift-i().state.textHeight-i().state.padding).attr(`width`,d).attr(`height`,i().state.textHeight*3).attr(`rx`,i().state.radius),e.insert(`rect`,`:first-child`).attr(`x`,f).attr(`y`,i().state.titleShift-i().state.textHeight-i().state.padding).attr(`width`,d).attr(`height`,p.height+3+2*i().state.textHeight).attr(`rx`,i().state.radius),e},`addTitleAndBox`),b=t(e=>(e.append(`circle`).attr(`class`,`end-state-outer`).attr(`r`,i().state.sizeUnit+i().state.miniPadding).attr(`cx`,i().state.padding+i().state.sizeUnit+i().state.miniPadding).attr(`cy`,i().state.padding+i().state.sizeUnit+i().state.miniPadding),e.append(`circle`).attr(`class`,`end-state-inner`).attr(`r`,i().state.sizeUnit).attr(`cx`,i().state.padding+i().state.sizeUnit+2).attr(`cy`,i().state.padding+i().state.sizeUnit+2)),`drawEndState`),x=t((e,t)=>{let n=i().state.forkWidth,r=i().state.forkHeight;if(t.parentId){let e=n;n=r,r=e}return e.append(`rect`).style(`stroke`,`black`).style(`fill`,`black`).attr(`width`,n).attr(`height`,r).attr(`x`,i().state.padding).attr(`y`,i().state.padding)},`drawForkJoinState`),S=t((e,t,n,r)=>{let a=0,s=r.append(`text`);s.style(`text-anchor`,`start`),s.attr(`class`,`noteText`);let c=e.replace(/\r\n/g,`<br/>`);c=c.replace(/\n/g,`<br/>`);let l=c.split(o.lineBreakRegex),u=1.25*i().state.noteMargin;for(let e of l){let r=e.trim();if(r.length>0){let e=s.append(`tspan`);if(e.text(r),u===0){let t=e.node().getBBox();u+=t.height}a+=u,e.attr(`x`,t+i().state.noteMargin),e.attr(`y`,n+a+1.25*i().state.noteMargin)}}return{textWidth:s.node().getBBox().width,textHeight:a}},`_drawLongText`),C=t((e,t)=>{t.attr(`class`,`state-note`);let n=t.append(`rect`).attr(`x`,0).attr(`y`,i().state.padding),{textWidth:r,textHeight:a}=S(e,0,0,t.append(`g`));return n.attr(`height`,a+2*i().state.noteMargin),n.attr(`width`,r+i().state.noteMargin*2),n},`drawNote`),w=t(function(e,t){let n=t.id,r={id:n,label:t.id,width:0,height:0},a=e.append(`g`).attr(`id`,n).attr(`class`,`stateGroup`);t.type===`start`&&h(a),t.type===`end`&&b(a),(t.type===`fork`||t.type===`join`)&&x(a,t),t.type===`note`&&C(t.note.text,a),t.type===`divider`&&g(a),t.type===`default`&&t.descriptions.length===0&&_(a,t),t.type===`default`&&t.descriptions.length>0&&v(a,t);let o=a.node().getBBox();return r.width=o.width+2*i().state.padding,r.height=o.height+2*i().state.padding,r},`drawState`),T=0,E=t(function(n,a,u){let d=t(function(e){switch(e){case m.relationType.AGGREGATION:return`aggregation`;case m.relationType.EXTENSION:return`extension`;case m.relationType.COMPOSITION:return`composition`;case m.relationType.DEPENDENCY:return`dependency`}},`getRelationType`);a.points=a.points.filter(e=>!Number.isNaN(e.y));let f=a.points,p=l().x(function(e){return e.x}).y(function(e){return e.y}).curve(s),h=n.append(`path`).attr(`d`,p(f)).attr(`id`,`edge`+T).attr(`class`,`transition`),g=``;if(i().state.arrowMarkerAbsolute&&(g=r(!0)),h.attr(`marker-end`,`url(`+g+`#`+d(m.relationType.DEPENDENCY)+`End)`),u.title!==void 0){let t=n.append(`g`).attr(`class`,`stateLabel`),{x:r,y:s}=c.calcLabelPosition(a.points),l=o.getRows(u.title),d=0,f=[],p=0,m=0;for(let n=0;n<=l.length;n++){let i=t.append(`text`).attr(`text-anchor`,`middle`).text(l[n]).attr(`x`,r).attr(`y`,s+d),a=i.node().getBBox();p=Math.max(p,a.width),m=Math.min(m,a.x),e.info(a.x,r,s+d),d===0&&(d=i.node().getBBox().height,e.info(`Title height`,d,s)),f.push(i)}let h=d*l.length;if(l.length>1){let e=(l.length-1)*d*.5;f.forEach((t,n)=>t.attr(`y`,s+n*d-e)),h=d*l.length}let g=t.node().getBBox();t.insert(`rect`,`:first-child`).attr(`class`,`box`).attr(`x`,r-p/2-i().state.padding/2).attr(`y`,s-h/2-i().state.padding/2-3.5).attr(`width`,p+i().state.padding).attr(`height`,h+i().state.padding),e.info(g)}T++},`drawEdge`),D,O={},k=t(function(){},`setConf`),A=t(function(e){e.append(`defs`).append(`marker`).attr(`id`,`dependencyEnd`).attr(`refX`,19).attr(`refY`,7).attr(`markerWidth`,20).attr(`markerHeight`,28).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 19,7 L9,13 L14,7 L9,1 Z`)},`insertMarkers`),j=t(function(t,r,o,s){D=i().state;let c=i().securityLevel,l;c===`sandbox`&&(l=n(`#i`+r));let u=n(c===`sandbox`?l.nodes()[0].contentDocument.body:`body`),d=c===`sandbox`?l.nodes()[0].contentDocument:document;e.debug(`Rendering diagram `+t);let f=u.select(`[id='${r}']`);A(f),N(s.db.getRootDoc(),f.append(`g`).attr(`id`,r+`-root`),void 0,!1,u,d,s);let p=D.padding,m=f.node().getBBox(),h=m.width+p*2,g=m.height+p*2;a(f,g,h*1.75,D.useMaxWidth),f.attr(`viewBox`,`${m.x-D.padding} ${m.y-D.padding} `+h+` `+g)},`draw`),M=t(e=>e?e.length*D.fontSizeFactor:1,`getLabelWidth`),N=t((t,n,r,i,a,s,c)=>{let l=new u({compound:!0,multigraph:!0}),f,p=!0;for(f=0;f<t.length;f++)if(t[f].stmt===`relation`){p=!1;break}r?l.setGraph({rankdir:`LR`,multigraph:!0,compound:!0,ranker:`tight-tree`,ranksep:p?1:D.edgeLengthFactor,nodeSep:p?1:50,isMultiGraph:!0}):l.setGraph({rankdir:`TB`,multigraph:!0,compound:!0,ranksep:p?1:D.edgeLengthFactor,nodeSep:p?1:50,ranker:`tight-tree`,isMultiGraph:!0}),l.setDefaultEdgeLabel(function(){return{}});let m=c.db.getStates(),h=c.db.getRelations(),g=Object.keys(m);for(let e of g){let t=m[e];r&&(t.parentId=r);let o;if(t.doc){let e=n.append(`g`).attr(`id`,t.id).attr(`class`,`stateGroup`);o=N(t.doc,e,t.id,!i,a,s,c);{e=y(e,t,i);let n=e.node().getBBox();o.width=n.width,o.height=n.height+D.padding/2,O[t.id]={y:D.compositTitleSize}}}else o=w(n,t,l);if(t.note){let e=w(n,{descriptions:[],id:t.id+`-note`,note:t.note,type:`note`},l);t.note.position===`left of`?(l.setNode(o.id+`-note`,e),l.setNode(o.id,o)):(l.setNode(o.id,o),l.setNode(o.id+`-note`,e)),l.setParent(o.id,o.id+`-group`),l.setParent(o.id+`-note`,o.id+`-group`)}else l.setNode(o.id,o)}e.debug(`Count=`,l.nodeCount(),l);let _=0;h.forEach(function(t){_++,e.debug(`Setting edge`,t),l.setEdge(t.id1,t.id2,{relation:t,width:M(t.title),height:D.labelHeight*o.getRows(t.title).length,labelpos:`c`},`id`+_)}),d(l),e.debug(`Graph after layout`,l.nodes());let v=n.node();l.nodes().forEach(function(t){t!==void 0&&l.node(t)!==void 0?(e.warn(`Node `+t+`: `+JSON.stringify(l.node(t))),a.select(`#`+v.id+` #`+t).attr(`transform`,`translate(`+(l.node(t).x-l.node(t).width/2)+`,`+(l.node(t).y+(O[t]?O[t].y:0)-l.node(t).height/2)+` )`),a.select(`#`+v.id+` #`+t).attr(`data-x-shift`,l.node(t).x-l.node(t).width/2),s.querySelectorAll(`#`+v.id+` #`+t+` .divider`).forEach(e=>{let t=e.parentElement,n=0,r=0;t&&(t.parentElement&&(n=t.parentElement.getBBox().width),r=parseInt(t.getAttribute(`data-x-shift`),10),Number.isNaN(r)&&(r=0)),e.setAttribute(`x1`,0-r+8),e.setAttribute(`x2`,n-r-8)})):e.debug(`No Node `+t+`: `+JSON.stringify(l.node(t)))});let b=v.getBBox();l.edges().forEach(function(t){t!==void 0&&l.edge(t)!==void 0&&(e.debug(`Edge `+t.v+` -> `+t.w+`: `+JSON.stringify(l.edge(t))),E(n,l.edge(t),l.edge(t).relation))}),b=v.getBBox();let x={id:r||`root`,label:r||`root`,width:0,height:0};return x.width=b.width+2*D.padding,x.height=b.height+2*D.padding,e.debug(`Doc rendered`,x,l),x},`renderDoc`),P={parser:p,get db(){return new m(1)},renderer:{setConf:k,draw:j},styles:f,init:t(e=>{e.state||={},e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute},`init`)};export{P as diagram};
1
+ import{g as e,h as t,p as n}from"./src-C2WwTWSY.js";import{D as r,b as i,c as a,s as o}from"./chunk-ICPOFSXX-BmWvYe_5.js";import"./dist-QvbmK1IP.js";import{H as s,h as c}from"./chunk-5PVQY5BW-BEsb0aTb.js";import{t as l}from"./line-DjHTnO_W.js";import"./chunk-U2HBQHQK-DcEL3so-.js";import"./chunk-BSJP7CBP-CcsqObFg.js";import"./chunk-ZZ45TVLE-D8nE76c5.js";import{t as u}from"./graphlib-Z7cApv13.js";import{t as d}from"./dagre-CrjQCEN9.js";import"./chunk-55IACEB6-ggIJf_TC.js";import"./chunk-EDXVE4YY-CCCHYEbG.js";import"./chunk-X2U36JSP-D0X5qpg6.js";import"./chunk-5FUZZQ4R-CEIokxZS.js";import"./chunk-ENJZ2VHE-yVekovt2.js";import"./chunk-336JU56O-ByZrJI-3.js";import{i as f,n as p,t as m}from"./chunk-OYMX7WX6-BE4b8qC9.js";var h=t(e=>e.append(`circle`).attr(`class`,`start-state`).attr(`r`,i().state.sizeUnit).attr(`cx`,i().state.padding+i().state.sizeUnit).attr(`cy`,i().state.padding+i().state.sizeUnit),`drawStartState`),g=t(e=>e.append(`line`).style(`stroke`,`grey`).style(`stroke-dasharray`,`3`).attr(`x1`,i().state.textHeight).attr(`class`,`divider`).attr(`x2`,i().state.textHeight*2).attr(`y1`,0).attr(`y2`,0),`drawDivider`),_=t((e,t)=>{let n=e.append(`text`).attr(`x`,2*i().state.padding).attr(`y`,i().state.textHeight+2*i().state.padding).attr(`font-size`,i().state.fontSize).attr(`class`,`state-title`).text(t.id),r=n.node().getBBox();return e.insert(`rect`,`:first-child`).attr(`x`,i().state.padding).attr(`y`,i().state.padding).attr(`width`,r.width+2*i().state.padding).attr(`height`,r.height+2*i().state.padding).attr(`rx`,i().state.radius),n},`drawSimpleState`),v=t((e,n)=>{let r=t(function(e,t,n){let r=e.append(`tspan`).attr(`x`,2*i().state.padding).text(t);n||r.attr(`dy`,i().state.textHeight)},`addTspan`),a=e.append(`text`).attr(`x`,2*i().state.padding).attr(`y`,i().state.textHeight+1.3*i().state.padding).attr(`font-size`,i().state.fontSize).attr(`class`,`state-title`).text(n.descriptions[0]).node().getBBox(),o=a.height,s=e.append(`text`).attr(`x`,i().state.padding).attr(`y`,o+i().state.padding*.4+i().state.dividerMargin+i().state.textHeight).attr(`class`,`state-description`),c=!0,l=!0;n.descriptions.forEach(function(e){c||(r(s,e,l),l=!1),c=!1});let u=e.append(`line`).attr(`x1`,i().state.padding).attr(`y1`,i().state.padding+o+i().state.dividerMargin/2).attr(`y2`,i().state.padding+o+i().state.dividerMargin/2).attr(`class`,`descr-divider`),d=s.node().getBBox(),f=Math.max(d.width,a.width);return u.attr(`x2`,f+3*i().state.padding),e.insert(`rect`,`:first-child`).attr(`x`,i().state.padding).attr(`y`,i().state.padding).attr(`width`,f+2*i().state.padding).attr(`height`,d.height+o+2*i().state.padding).attr(`rx`,i().state.radius),e},`drawDescrState`),y=t((e,t,n)=>{let r=i().state.padding,a=2*i().state.padding,o=e.node().getBBox(),s=o.width,c=o.x,l=e.append(`text`).attr(`x`,0).attr(`y`,i().state.titleShift).attr(`font-size`,i().state.fontSize).attr(`class`,`state-title`).text(t.id),u=l.node().getBBox().width+a,d=Math.max(u,s);d===s&&(d+=a);let f,p=e.node().getBBox();t.doc,f=c-r,u>s&&(f=(s-d)/2+r),Math.abs(c-p.x)<r&&u>s&&(f=c-(u-s)/2);let m=1-i().state.textHeight;return e.insert(`rect`,`:first-child`).attr(`x`,f).attr(`y`,m).attr(`class`,n?`alt-composit`:`composit`).attr(`width`,d).attr(`height`,p.height+i().state.textHeight+i().state.titleShift+1).attr(`rx`,`0`),l.attr(`x`,f+r),u<=s&&l.attr(`x`,c+(d-a)/2-u/2+r),e.insert(`rect`,`:first-child`).attr(`x`,f).attr(`y`,i().state.titleShift-i().state.textHeight-i().state.padding).attr(`width`,d).attr(`height`,i().state.textHeight*3).attr(`rx`,i().state.radius),e.insert(`rect`,`:first-child`).attr(`x`,f).attr(`y`,i().state.titleShift-i().state.textHeight-i().state.padding).attr(`width`,d).attr(`height`,p.height+3+2*i().state.textHeight).attr(`rx`,i().state.radius),e},`addTitleAndBox`),b=t(e=>(e.append(`circle`).attr(`class`,`end-state-outer`).attr(`r`,i().state.sizeUnit+i().state.miniPadding).attr(`cx`,i().state.padding+i().state.sizeUnit+i().state.miniPadding).attr(`cy`,i().state.padding+i().state.sizeUnit+i().state.miniPadding),e.append(`circle`).attr(`class`,`end-state-inner`).attr(`r`,i().state.sizeUnit).attr(`cx`,i().state.padding+i().state.sizeUnit+2).attr(`cy`,i().state.padding+i().state.sizeUnit+2)),`drawEndState`),x=t((e,t)=>{let n=i().state.forkWidth,r=i().state.forkHeight;if(t.parentId){let e=n;n=r,r=e}return e.append(`rect`).style(`stroke`,`black`).style(`fill`,`black`).attr(`width`,n).attr(`height`,r).attr(`x`,i().state.padding).attr(`y`,i().state.padding)},`drawForkJoinState`),S=t((e,t,n,r)=>{let a=0,s=r.append(`text`);s.style(`text-anchor`,`start`),s.attr(`class`,`noteText`);let c=e.replace(/\r\n/g,`<br/>`);c=c.replace(/\n/g,`<br/>`);let l=c.split(o.lineBreakRegex),u=1.25*i().state.noteMargin;for(let e of l){let r=e.trim();if(r.length>0){let e=s.append(`tspan`);if(e.text(r),u===0){let t=e.node().getBBox();u+=t.height}a+=u,e.attr(`x`,t+i().state.noteMargin),e.attr(`y`,n+a+1.25*i().state.noteMargin)}}return{textWidth:s.node().getBBox().width,textHeight:a}},`_drawLongText`),C=t((e,t)=>{t.attr(`class`,`state-note`);let n=t.append(`rect`).attr(`x`,0).attr(`y`,i().state.padding),{textWidth:r,textHeight:a}=S(e,0,0,t.append(`g`));return n.attr(`height`,a+2*i().state.noteMargin),n.attr(`width`,r+i().state.noteMargin*2),n},`drawNote`),w=t(function(e,t){let n=t.id,r={id:n,label:t.id,width:0,height:0},a=e.append(`g`).attr(`id`,n).attr(`class`,`stateGroup`);t.type===`start`&&h(a),t.type===`end`&&b(a),(t.type===`fork`||t.type===`join`)&&x(a,t),t.type===`note`&&C(t.note.text,a),t.type===`divider`&&g(a),t.type===`default`&&t.descriptions.length===0&&_(a,t),t.type===`default`&&t.descriptions.length>0&&v(a,t);let o=a.node().getBBox();return r.width=o.width+2*i().state.padding,r.height=o.height+2*i().state.padding,r},`drawState`),T=0,E=t(function(n,a,u){let d=t(function(e){switch(e){case m.relationType.AGGREGATION:return`aggregation`;case m.relationType.EXTENSION:return`extension`;case m.relationType.COMPOSITION:return`composition`;case m.relationType.DEPENDENCY:return`dependency`}},`getRelationType`);a.points=a.points.filter(e=>!Number.isNaN(e.y));let f=a.points,p=l().x(function(e){return e.x}).y(function(e){return e.y}).curve(s),h=n.append(`path`).attr(`d`,p(f)).attr(`id`,`edge`+T).attr(`class`,`transition`),g=``;if(i().state.arrowMarkerAbsolute&&(g=r(!0)),h.attr(`marker-end`,`url(`+g+`#`+d(m.relationType.DEPENDENCY)+`End)`),u.title!==void 0){let t=n.append(`g`).attr(`class`,`stateLabel`),{x:r,y:s}=c.calcLabelPosition(a.points),l=o.getRows(u.title),d=0,f=[],p=0,m=0;for(let n=0;n<=l.length;n++){let i=t.append(`text`).attr(`text-anchor`,`middle`).text(l[n]).attr(`x`,r).attr(`y`,s+d),a=i.node().getBBox();p=Math.max(p,a.width),m=Math.min(m,a.x),e.info(a.x,r,s+d),d===0&&(d=i.node().getBBox().height,e.info(`Title height`,d,s)),f.push(i)}let h=d*l.length;if(l.length>1){let e=(l.length-1)*d*.5;f.forEach((t,n)=>t.attr(`y`,s+n*d-e)),h=d*l.length}let g=t.node().getBBox();t.insert(`rect`,`:first-child`).attr(`class`,`box`).attr(`x`,r-p/2-i().state.padding/2).attr(`y`,s-h/2-i().state.padding/2-3.5).attr(`width`,p+i().state.padding).attr(`height`,h+i().state.padding),e.info(g)}T++},`drawEdge`),D,O={},k=t(function(){},`setConf`),A=t(function(e){e.append(`defs`).append(`marker`).attr(`id`,`dependencyEnd`).attr(`refX`,19).attr(`refY`,7).attr(`markerWidth`,20).attr(`markerHeight`,28).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 19,7 L9,13 L14,7 L9,1 Z`)},`insertMarkers`),j=t(function(t,r,o,s){D=i().state;let c=i().securityLevel,l;c===`sandbox`&&(l=n(`#i`+r));let u=n(c===`sandbox`?l.nodes()[0].contentDocument.body:`body`),d=c===`sandbox`?l.nodes()[0].contentDocument:document;e.debug(`Rendering diagram `+t);let f=u.select(`[id='${r}']`);A(f),N(s.db.getRootDoc(),f.append(`g`).attr(`id`,r+`-root`),void 0,!1,u,d,s);let p=D.padding,m=f.node().getBBox(),h=m.width+p*2,g=m.height+p*2;a(f,g,h*1.75,D.useMaxWidth),f.attr(`viewBox`,`${m.x-D.padding} ${m.y-D.padding} `+h+` `+g)},`draw`),M=t(e=>e?e.length*D.fontSizeFactor:1,`getLabelWidth`),N=t((t,n,r,i,a,s,c)=>{let l=new u({compound:!0,multigraph:!0}),f,p=!0;for(f=0;f<t.length;f++)if(t[f].stmt===`relation`){p=!1;break}r?l.setGraph({rankdir:`LR`,multigraph:!0,compound:!0,ranker:`tight-tree`,ranksep:p?1:D.edgeLengthFactor,nodeSep:p?1:50,isMultiGraph:!0}):l.setGraph({rankdir:`TB`,multigraph:!0,compound:!0,ranksep:p?1:D.edgeLengthFactor,nodeSep:p?1:50,ranker:`tight-tree`,isMultiGraph:!0}),l.setDefaultEdgeLabel(function(){return{}});let m=c.db.getStates(),h=c.db.getRelations(),g=Object.keys(m);for(let e of g){let t=m[e];r&&(t.parentId=r);let o;if(t.doc){let e=n.append(`g`).attr(`id`,t.id).attr(`class`,`stateGroup`);o=N(t.doc,e,t.id,!i,a,s,c);{e=y(e,t,i);let n=e.node().getBBox();o.width=n.width,o.height=n.height+D.padding/2,O[t.id]={y:D.compositTitleSize}}}else o=w(n,t,l);if(t.note){let e=w(n,{descriptions:[],id:t.id+`-note`,note:t.note,type:`note`},l);t.note.position===`left of`?(l.setNode(o.id+`-note`,e),l.setNode(o.id,o)):(l.setNode(o.id,o),l.setNode(o.id+`-note`,e)),l.setParent(o.id,o.id+`-group`),l.setParent(o.id+`-note`,o.id+`-group`)}else l.setNode(o.id,o)}e.debug(`Count=`,l.nodeCount(),l);let _=0;h.forEach(function(t){_++,e.debug(`Setting edge`,t),l.setEdge(t.id1,t.id2,{relation:t,width:M(t.title),height:D.labelHeight*o.getRows(t.title).length,labelpos:`c`},`id`+_)}),d(l),e.debug(`Graph after layout`,l.nodes());let v=n.node();l.nodes().forEach(function(t){t!==void 0&&l.node(t)!==void 0?(e.warn(`Node `+t+`: `+JSON.stringify(l.node(t))),a.select(`#`+v.id+` #`+t).attr(`transform`,`translate(`+(l.node(t).x-l.node(t).width/2)+`,`+(l.node(t).y+(O[t]?O[t].y:0)-l.node(t).height/2)+` )`),a.select(`#`+v.id+` #`+t).attr(`data-x-shift`,l.node(t).x-l.node(t).width/2),s.querySelectorAll(`#`+v.id+` #`+t+` .divider`).forEach(e=>{let t=e.parentElement,n=0,r=0;t&&(t.parentElement&&(n=t.parentElement.getBBox().width),r=parseInt(t.getAttribute(`data-x-shift`),10),Number.isNaN(r)&&(r=0)),e.setAttribute(`x1`,0-r+8),e.setAttribute(`x2`,n-r-8)})):e.debug(`No Node `+t+`: `+JSON.stringify(l.node(t)))});let b=v.getBBox();l.edges().forEach(function(t){t!==void 0&&l.edge(t)!==void 0&&(e.debug(`Edge `+t.v+` -> `+t.w+`: `+JSON.stringify(l.edge(t))),E(n,l.edge(t),l.edge(t).relation))}),b=v.getBBox();let x={id:r||`root`,label:r||`root`,width:0,height:0};return x.width=b.width+2*D.padding,x.height=b.height+2*D.padding,e.debug(`Doc rendered`,x,l),x},`renderDoc`),P={parser:p,get db(){return new m(1)},renderer:{setConf:k,draw:j},styles:f,init:t(e=>{e.state||={},e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute},`init`)};export{P as diagram};
@@ -0,0 +1 @@
1
+ import{h as e}from"./src-C2WwTWSY.js";import"./chunk-ICPOFSXX-BmWvYe_5.js";import"./dist-QvbmK1IP.js";import"./chunk-5PVQY5BW-BEsb0aTb.js";import"./chunk-U2HBQHQK-DcEL3so-.js";import"./chunk-BSJP7CBP-CcsqObFg.js";import"./chunk-ZZ45TVLE-D8nE76c5.js";import"./chunk-55IACEB6-ggIJf_TC.js";import"./chunk-EDXVE4YY-CCCHYEbG.js";import"./chunk-X2U36JSP-D0X5qpg6.js";import"./chunk-5FUZZQ4R-CEIokxZS.js";import"./chunk-ENJZ2VHE-yVekovt2.js";import"./chunk-336JU56O-ByZrJI-3.js";import{i as t,n,r,t as i}from"./chunk-OYMX7WX6-BE4b8qC9.js";var a={parser:n,get db(){return new i(2)},renderer:r,styles:t,init:e(e=>{e.state||={},e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute},`init`)};export{a as diagram};
@@ -1,3 +1,3 @@
1
- import{o as e}from"./chunk-CltuBf4Z.js";import{L as t,M as n,N as r,O as i,a,at as o,ct as s,j as c,k as l,nt as u,ot as d,q as f}from"./useMediaQuery-Baf4Huvv.js";import{a as p,f as m,k as h,n as g,t as _,v as ee}from"./AdminShell-Dc5du5xX.js";import{t as te}from"./play-3hlqzxLI.js";import{t as v}from"./rotate-ccw-DzXTXh3g.js";var y=d(),b=e(s(),1);function ne(e=3e4){let[t,n]=(0,b.useState)(()=>Date.now());return(0,b.useEffect)(()=>{let t=setInterval(()=>n(Date.now()),e);return()=>clearInterval(t)},[e]),t}function re(e,t){let n=new Map,r=(e,t,r)=>{let i=n.get(e)??{openCount:0,totalSeconds:0};i.totalSeconds+=t,r&&(i.openCount+=1),n.set(e,i)};for(let t of e)t.clientName&&r(t.clientName,t.secondsLogged,!0);for(let e of t)e.clientName&&r(e.clientName,e.secondsLogged,!1);let i=[...n.entries()].map(([e,t])=>({name:e,openCount:t.openCount,totalSeconds:t.totalSeconds}));return i.sort((e,t)=>t.openCount-e.openCount||e.name.localeCompare(t.name)),x(e,i),i}function x(e,t){let n=t.reduce((e,t)=>e+t.openCount,0),r=e.filter(e=>!e.clientName).length,i=n+r===e.length;return i||console.warn(`[tasks-clients] reconcile-mismatch assigned=${n} unassigned=${r} openTotal=${e.length}`),i}var S=`__unassigned__`;function C(e,t){return e===`__unassigned__`?`Unassigned`:t||e.slice(0,8)}function w(e){return e===null||e===``?S:e}function ie(e,t){let n=new Map,r=(e,t)=>{let r=w(e.assigneeUserId),i=n.get(r)??{name:null,openCount:0,totalCount:0};i.name===null&&e.assigneeName&&(i.name=e.assigneeName),i.totalCount+=1,t&&(i.openCount+=1),n.set(r,i)};for(let t of e)r(t,!0);for(let e of t)r(e,!1);let i=[...n.entries()].map(([e,t])=>({userId:e,label:C(e,t.name),openCount:t.openCount,totalCount:t.totalCount}));return i.sort((e,t)=>t.openCount-e.openCount||e.label.localeCompare(t.label)),i}function T(e,t){return t===null?!0:w(e.assigneeUserId)===t}var E=u();function D(e){let t=e.name??e.userId.slice(0,8);return e.kind===`owner`?`${t} (owner)`:t}var O=`maxy-admin-session-key`;function k(e){let t=[];return e.clientName&&t.push(e.clientName),e.propertyAddress&&t.push(e.propertyAddress),e.fee!=null&&t.push(`£${e.fee}`),t.join(` · `)}function A(e){if(!e)return``;let t=Date.parse(e);if(!Number.isFinite(t))return``;let n=new Date(t);return`${n.getUTCDate()} ${[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`][n.getUTCMonth()]} ${n.getUTCFullYear()}`}function j(e){return e.assigneeName?e.assigneeName:e.assigneeUserId?e.assigneeUserId.slice(0,8):`Unassigned`}function M(e,t){return[t,A(e.createdAt),j(e)].filter(Boolean).join(` · `)}function ae(e,t){if(e.running&&e.runningStartedAt){let n=Date.parse(e.runningStartedAt);if(Number.isFinite(n))return e.secondsLogged+Math.max(0,(t-n)/1e3)}return e.secondsLogged}function oe(e){let t=[`Task: ${e.title}\nTask id: ${e.taskId}`],n=e.description.trim();n.length>0&&t.push(n);let r=e.notes.trim();return r.length>0&&t.push(`Notes:\n${r}`),t.join(`
1
+ import{o as e}from"./chunk-CltuBf4Z.js";import{L as t,M as n,N as r,O as i,a,at as o,ct as s,j as c,k as l,nt as u,ot as d,q as f}from"./useMediaQuery-CLxecNeT.js";import{A as p,a as m,f as h,n as g,t as _,v as ee}from"./AdminShell-DUUw6WNs.js";import{t as te}from"./play-Da69rmat.js";import{t as v}from"./rotate-ccw-DpTlNy-M.js";var y=d(),b=e(s(),1);function ne(e=3e4){let[t,n]=(0,b.useState)(()=>Date.now());return(0,b.useEffect)(()=>{let t=setInterval(()=>n(Date.now()),e);return()=>clearInterval(t)},[e]),t}function re(e,t){let n=new Map,r=(e,t,r)=>{let i=n.get(e)??{openCount:0,totalSeconds:0};i.totalSeconds+=t,r&&(i.openCount+=1),n.set(e,i)};for(let t of e)t.clientName&&r(t.clientName,t.secondsLogged,!0);for(let e of t)e.clientName&&r(e.clientName,e.secondsLogged,!1);let i=[...n.entries()].map(([e,t])=>({name:e,openCount:t.openCount,totalSeconds:t.totalSeconds}));return i.sort((e,t)=>t.openCount-e.openCount||e.name.localeCompare(t.name)),x(e,i),i}function x(e,t){let n=t.reduce((e,t)=>e+t.openCount,0),r=e.filter(e=>!e.clientName).length,i=n+r===e.length;return i||console.warn(`[tasks-clients] reconcile-mismatch assigned=${n} unassigned=${r} openTotal=${e.length}`),i}var S=`__unassigned__`;function C(e,t){return e===`__unassigned__`?`Unassigned`:t||e.slice(0,8)}function w(e){return e===null||e===``?S:e}function ie(e,t){let n=new Map,r=(e,t)=>{let r=w(e.assigneeUserId),i=n.get(r)??{name:null,openCount:0,totalCount:0};i.name===null&&e.assigneeName&&(i.name=e.assigneeName),i.totalCount+=1,t&&(i.openCount+=1),n.set(r,i)};for(let t of e)r(t,!0);for(let e of t)r(e,!1);let i=[...n.entries()].map(([e,t])=>({userId:e,label:C(e,t.name),openCount:t.openCount,totalCount:t.totalCount}));return i.sort((e,t)=>t.openCount-e.openCount||e.label.localeCompare(t.label)),i}function T(e,t){return t===null?!0:w(e.assigneeUserId)===t}var E=u();function D(e){let t=e.name??e.userId.slice(0,8);return e.kind===`owner`?`${t} (owner)`:t}var O=`maxy-admin-session-key`;function k(e){let t=[];return e.clientName&&t.push(e.clientName),e.propertyAddress&&t.push(e.propertyAddress),e.fee!=null&&t.push(`£${e.fee}`),t.join(` · `)}function A(e){if(!e)return``;let t=Date.parse(e);if(!Number.isFinite(t))return``;let n=new Date(t);return`${n.getUTCDate()} ${[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`][n.getUTCMonth()]} ${n.getUTCFullYear()}`}function j(e){return e.assigneeName?e.assigneeName:e.assigneeUserId?e.assigneeUserId.slice(0,8):`Unassigned`}function M(e,t){return[t,A(e.createdAt),j(e)].filter(Boolean).join(` · `)}function ae(e,t){if(e.running&&e.runningStartedAt){let n=Date.parse(e.runningStartedAt);if(Number.isFinite(n))return e.secondsLogged+Math.max(0,(t-n)/1e3)}return e.secondsLogged}function oe(e){let t=[`Task: ${e.title}\nTask id: ${e.taskId}`],n=e.description.trim();n.length>0&&t.push(n);let r=e.notes.trim();return r.length>0&&t.push(`Notes:\n${r}`),t.join(`
2
2
 
3
- `).slice(0,2e3)}function se({clients:e,onSelect:t}){return(0,E.jsxs)(`section`,{className:`admin-card tasks-card`,children:[(0,E.jsxs)(`div`,{className:`tasks-card-head`,children:[(0,E.jsx)(`span`,{className:`tasks-card-title`,children:`Clients`}),(0,E.jsxs)(`span`,{className:`tasks-card-count`,children:[e.length,` total`]})]}),e.length===0&&(0,E.jsx)(`div`,{className:`tasks-empty`,children:`No clients yet.`}),e.map(e=>(0,E.jsx)(`button`,{className:`tasks-row tasks-client-row`,onClick:()=>t(e.name),children:(0,E.jsxs)(`div`,{className:`tasks-row-main`,children:[(0,E.jsx)(`div`,{className:`tasks-row-name`,children:e.name}),(0,E.jsxs)(`div`,{className:`tasks-row-sub`,children:[e.openCount,` open · `,a(e.totalSeconds),` logged`]})]})},e.name))]})}function ce({task:e,roster:t,busy:n,onAssign:r,onClose:i}){return(0,b.useEffect)(()=>{let e=e=>{e.key===`Escape`&&i()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[i]),(0,E.jsx)(`div`,{className:`tasks-detail-backdrop`,onClick:i,children:(0,E.jsxs)(`div`,{className:`tasks-detail`,role:`dialog`,"aria-modal":`true`,"aria-label":`Task detail`,onClick:e=>e.stopPropagation(),children:[(0,E.jsxs)(`div`,{className:`tasks-detail-head`,children:[(0,E.jsx)(`h2`,{className:`tasks-detail-title`,children:e?e.name:`Task no longer available`}),(0,E.jsx)(`button`,{className:`tasks-detail-close`,"aria-label":`Close`,onClick:i,children:(0,E.jsx)(c,{size:16})})]}),e===null?(0,E.jsx)(`p`,{className:`tasks-detail-gone`,children:`This task is no longer in the list. It may have been completed, cancelled or removed. Close this and reload to see the current list.`}):(0,E.jsxs)(`dl`,{className:`tasks-detail-fields`,children:[(0,E.jsx)(`dt`,{children:`Status`}),(0,E.jsx)(`dd`,{children:e.status}),(0,E.jsx)(`dt`,{children:`Logged`}),(0,E.jsx)(`dd`,{children:a(e.secondsLogged)}),(0,E.jsx)(`dt`,{children:`Created`}),(0,E.jsx)(`dd`,{children:A(e.createdAt)||`Not recorded`}),(0,E.jsx)(`dt`,{children:`Assignee`}),(0,E.jsx)(`dd`,{children:e.taskId===null?j(e):(0,E.jsxs)(`select`,{className:`tasks-assign-select`,"aria-label":`Assignee`,disabled:n,value:e.assigneeUserId??``,onChange:t=>r(e.taskId,t.target.value===``?null:t.target.value),children:[(0,E.jsx)(`option`,{value:``,children:`Unassigned`}),e.assigneeUserId&&!t.some(t=>t.userId===e.assigneeUserId)&&(0,E.jsxs)(`option`,{value:e.assigneeUserId,children:[j(e),` (not in roster)`]}),t.map(e=>(0,E.jsx)(`option`,{value:e.userId,children:D(e)},e.userId))]})}),e.clientName&&(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(`dt`,{children:`Client`}),(0,E.jsx)(`dd`,{children:e.clientName})]}),e.propertyAddress&&(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(`dt`,{children:`Property`}),(0,E.jsx)(`dd`,{children:e.propertyAddress})]}),e.fee!=null&&(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(`dt`,{children:`Fee`}),(0,E.jsxs)(`dd`,{children:[`£`,e.fee]})]})]})]})})}function N({adminFetch:e}){let[o,s]=(0,b.useState)({open:[],completed:[]}),[l,u]=(0,b.useState)(!1),[d,h]=(0,b.useState)(!1),_=(0,b.useRef)(!1),y=(0,b.useRef)(``),x=ne(1e3),[S,C]=(0,b.useState)(`open`),[w,D]=(0,b.useState)(null),[O,A]=(0,b.useState)(null),[j,N]=(0,b.useState)(null),[P,F]=(0,b.useState)(``),[I,L]=(0,b.useState)(null),[le,R]=(0,b.useState)(null),[z,B]=(0,b.useState)(null),V=(0,b.useRef)(new Map),H=(0,b.useRef)(new Set),[ue,U]=(0,b.useState)(new Set),W=(0,b.useMemo)(()=>{if(I!==null)return[...o.open,...o.completed].find(e=>e.rowKey===I)??null},[o,I]),G=(0,b.useMemo)(()=>z===null?null:[...o.open,...o.completed].find(e=>e.rowKey===z)??null,[o,z]);(0,b.useEffect)(()=>{I!==null&&W===null&&console.error(`[tasks-ui] op=detail-failed rowKey=${I} reason=not-in-list`)},[I,W]);let K=(0,b.useMemo)(()=>re(o.open,o.completed),[o]),q=(0,b.useMemo)(()=>w===null?{open:o.open,completed:o.completed}:{open:o.open.filter(e=>e.clientName===w),completed:o.completed.filter(e=>e.clientName===w)},[o,w]),J=(0,b.useMemo)(()=>ie(q.open,q.completed),[q]),de=(0,b.useCallback)(e=>{D(e),C(`open`)},[]);(0,b.useEffect)(()=>{w&&!K.some(e=>e.name===w)&&D(null)},[K,w]),(0,b.useEffect)(()=>{O&&!J.some(e=>e.userId===O)&&A(null)},[J,O]),(0,b.useEffect)(()=>{R(null),B(null)},[S,w,O]);let Y=o.open.filter(e=>e.running||(w===null||e.clientName===w)&&T(e,O)),X=(w?o.completed.filter(e=>e.clientName===w):o.completed).filter(e=>T(e,O)),[fe,pe]=(0,b.useState)([]),Z=(0,b.useCallback)(async()=>{let t=await e(`/api/admin/tasks-list`);t.ok&&s(await t.json()),u(!0)},[e]);(0,b.useEffect)(()=>{Z()},[Z]),(0,b.useEffect)(()=>{(async()=>{let t=await e(`/api/admin/admin-users-list`);if(t.ok){let e=await t.json();e.ok&&Array.isArray(e.users)&&pe(e.users)}})()},[e]);let Q=(0,b.useCallback)(async(t,n,r)=>{if(_.current)return!1;_.current=!0,h(!0);try{return await e(t,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({taskId:n,...r})}),await Z(),!0}finally{_.current=!1,h(!1)}},[e,Z]),me=(0,b.useCallback)(async e=>{await Q(`/api/admin/task-complete`,e)},[Q]),he=(0,b.useCallback)(async e=>{await Q(`/api/admin/task-delete`,e,{confirmed:!0})},[Q]),ge=(0,b.useCallback)((e,t)=>{let n=String(Math.round(e.secondsLogged/60));y.current=n,N(t),F(n)},[]),$=(0,b.useCallback)(()=>{N(null),F(``)},[]),_e=(0,b.useCallback)(async e=>{let t=P.trim(),n=Number(t);if(!(t===``||!Number.isInteger(n)||n<0)){if(t===y.current){$();return}N(null),F(``),await Q(`/api/admin/task-time-adjust`,e,{newSeconds:n*60})}},[P,Q,$]),ve=(0,b.useCallback)(e=>{Q(`/api/admin/task-time-adjust`,e,{newSeconds:0})},[Q]),ye=(0,b.useCallback)((e,t)=>{Q(`/api/admin/task-assign`,e,{assigneeUserId:t})},[Q]),be=(0,b.useCallback)(async t=>{if(!H.current.has(t)){H.current.add(t),U(new Set(H.current));try{let n=await e(`/api/admin/task-session-open`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({taskId:t})});if(!n.ok){console.error(`[admin-ui] task-session op=open-failed taskId=${t} status=${n.status}`);return}let{sessionId:r,title:i,description:a,notes:o}=await n.json();if(r!==null){let e=`/chat?session=${r}`;window.location.assign(e);return}let s=oe({title:i,taskId:t,description:a??``,notes:o??``}),c=await e(`/api/admin/session-rc-spawn`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({title:i,initialMessage:s})}),l=await c.json().catch(()=>({})),u=g(c.ok,c.status,l),d=l.sessionId??null;if(u.kind!==`navigate`){console.error(`[admin-ui] task-session op=spawn-failed taskId=${t} reason=${u.reason}`);return}if(d!==null){let n=await e(`/api/admin/task-session-link`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({taskId:t,sessionId:d})});n.ok&&(await n.json().catch(()=>({}))).linked}else console.error(`[admin-ui] task-session op=link-skipped taskId=${t} reason=no-landed-session-id`);window.location.assign(u.url)}catch(e){console.error(`[admin-ui] task-session op=failed taskId=${t} error=${e instanceof Error?e.message:String(e)}`)}finally{H.current.delete(t),U(new Set(H.current))}}},[e]);if(!l)return(0,E.jsx)(i,{surface:`gate`});let xe=e=>e.taskId!==null&&j===e.taskId,Se=e=>(0,E.jsxs)(`div`,{className:`tasks-edit`,children:[(0,E.jsx)(`input`,{className:`tasks-edit-input`,type:`number`,min:0,step:1,"aria-label":`Logged minutes`,value:P,onChange:e=>F(e.target.value)}),(0,E.jsx)(`span`,{className:`tasks-edit-unit`,children:`min`}),(0,E.jsxs)(`button`,{className:`admin-btn-cta tasks-btn-action`,disabled:d,onClick:()=>void _e(e),children:[(0,E.jsx)(f,{size:14}),` Save`]}),(0,E.jsxs)(`button`,{className:`tasks-btn-secondary tasks-btn-action`,onClick:$,children:[(0,E.jsx)(c,{size:14}),` Cancel`]})]}),Ce=(e,r)=>[{key:`edit-time`,label:`Edit logged time for task: ${e.name}`,menuLabel:`Edit time`,title:e.running?`Stop the timer before editing time`:`Set the logged time for this task`,icon:(0,E.jsx)(t,{size:12}),disabled:d||e.running,onClick:()=>ge(e,r)},{key:`reset-time`,label:`Reset logged time for task: ${e.name}`,menuLabel:`Reset logged time to 0:00`,title:e.running?`Stop the timer before resetting time`:`Set the logged time back to zero`,icon:(0,E.jsx)(v,{size:12}),disabled:d||e.running,onClick:()=>ve(r)},{key:`session`,label:`Open session for task: ${e.name}`,menuLabel:`Session`,title:e.sessionId?`Resume this task’s session`:`Start a session for this task`,icon:(0,E.jsx)(ee,{size:12}),disabled:ue.has(r),onClick:()=>{be(r)}},{key:`delete`,label:`Delete task: ${e.name}`,menuLabel:`Delete`,title:e.running?`Stop the timer before deleting`:`Delete this task and its time records`,icon:(0,E.jsx)(n,{size:12}),danger:!0,disabled:d||e.running,onClick:()=>B(e.rowKey)}];return(0,E.jsxs)(`div`,{className:`ui-page ui-page--full tasks-body`,children:[I!==null&&(0,E.jsx)(ce,{task:W??null,roster:fe,busy:d,onAssign:ye,onClose:()=>L(null)}),(0,E.jsx)(p,{target:G?{name:G.name,secondsLogged:G.secondsLogged}:null,anchorEl:z?V.current.get(z)??null:null,onCancel:()=>B(null),onConfirm:()=>{let e=G;B(null),e?.taskId&&he(e.taskId)}},z??`none`),(0,E.jsxs)(`div`,{className:`tasks-tabs`,children:[(0,E.jsxs)(`button`,{className:`admin-chip ${S===`open`?`is-active`:``}`,onClick:()=>C(`open`),children:[`Open `,(0,E.jsx)(`span`,{className:`tasks-tab-badge`,children:o.open.length})]}),(0,E.jsxs)(`button`,{className:`admin-chip ${S===`completed`?`is-active`:``}`,onClick:()=>C(`completed`),children:[`Completed `,(0,E.jsx)(`span`,{className:`tasks-tab-badge`,children:o.completed.length})]}),(0,E.jsxs)(`button`,{className:`admin-chip ${S===`clients`?`is-active`:``}`,onClick:()=>C(`clients`),children:[`Clients `,(0,E.jsx)(`span`,{className:`tasks-tab-badge`,children:K.length})]})]}),S===`clients`?(0,E.jsx)(se,{clients:K,onSelect:de}):(0,E.jsxs)(E.Fragment,{children:[w&&(0,E.jsxs)(`div`,{className:`tasks-filter-banner`,children:[(0,E.jsxs)(`span`,{children:[`Showing `,w]}),(0,E.jsx)(`button`,{className:`tasks-filter-clear`,onClick:()=>D(null),children:`Clear`})]}),J.length>0&&(0,E.jsxs)(`div`,{className:`tasks-assignee-bar`,children:[(0,E.jsxs)(`button`,{className:`admin-chip ${O===null?`is-active`:``}`,"aria-pressed":O===null,onClick:()=>A(null),children:[`All `,(0,E.jsx)(`span`,{className:`tasks-assignee-count`,children:q.open.length})]}),J.map(e=>(0,E.jsxs)(`button`,{className:`admin-chip ${O===e.userId?`is-active`:``}`,"aria-pressed":O===e.userId,"aria-label":`Assignee ${e.label}`,title:e.userId===`__unassigned__`?`Tasks with no assigned admin`:`AdminUser ${e.userId}`,onClick:()=>A(O===e.userId?null:e.userId),children:[e.label,` `,(0,E.jsx)(`span`,{className:`tasks-assignee-count`,children:e.openCount})]},e.userId))]}),S===`open`?(0,E.jsxs)(`section`,{className:`admin-card tasks-card`,children:[(0,E.jsxs)(`div`,{className:`tasks-card-head`,children:[(0,E.jsx)(`span`,{className:`tasks-card-title`,children:`Open tasks`}),(0,E.jsxs)(`span`,{className:`tasks-card-count`,children:[Y.length,` to do`]})]}),Y.length===0&&(0,E.jsx)(`div`,{className:`tasks-empty`,children:`No open tasks.`}),Y.map(e=>(0,E.jsxs)(`div`,{className:`tasks-row`,ref:t=>{t?V.current.set(e.rowKey,t):V.current.delete(e.rowKey)},children:[(0,E.jsx)(`button`,{className:`tasks-row-open`,"aria-label":`Open task detail: ${e.name}`,onClick:()=>L(e.rowKey),children:(0,E.jsxs)(`div`,{className:`tasks-row-main`,children:[(0,E.jsx)(`div`,{className:`tasks-row-name`,children:e.name}),(0,E.jsx)(`div`,{className:`tasks-row-sub`,children:M(e,k(e))})]})}),(0,E.jsx)(`div`,{className:`tasks-row-elapsed ${e.running?`tasks-row-elapsed-running`:``}`,children:a(ae(e,x))}),(0,E.jsx)(`div`,{className:`tasks-row-controls`,children:e.taskId!==null&&le===e.taskId?(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(`span`,{className:`tasks-confirm-label`,children:`Complete?`}),(0,E.jsxs)(`button`,{className:`admin-btn-cta tasks-btn-action`,disabled:d,onClick:()=>{R(null),me(e.taskId)},children:[(0,E.jsx)(f,{size:14}),` Confirm complete`]}),(0,E.jsxs)(`button`,{className:`tasks-btn-secondary tasks-btn-action`,onClick:()=>R(null),children:[(0,E.jsx)(c,{size:14}),` Keep open`]})]}):e.taskId===null?(0,E.jsx)(`span`,{className:`tasks-row-broken`,title:`This task has no id, so it cannot be started, edited or completed. Repair it by running platform/scripts/backfill-task-ids.sh on this install.`,children:`Needs repair`}):xe(e)?Se(e.taskId):(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(m,{actions:Ce(e,e.taskId),disabled:!1,label:`Task actions`}),(0,E.jsx)(`button`,{className:`tasks-btn-secondary tasks-btn-action tasks-btn-icon`,"aria-label":`Complete task: ${e.name}`,disabled:d||e.running,title:e.running?`Stop the timer before completing`:`Complete task`,onClick:()=>R(e.taskId),children:(0,E.jsx)(f,{size:14})}),e.running?(0,E.jsxs)(`button`,{className:`admin-btn-danger tasks-btn-action`,disabled:d,title:`Stop the timer`,onClick:()=>void Q(`/api/admin/task-timer-stop`,e.taskId),children:[(0,E.jsx)(r,{size:14}),` Stop`]}):(0,E.jsxs)(`button`,{className:`admin-btn-cta tasks-btn-action`,disabled:d,title:`Start the timer`,onClick:()=>void Q(`/api/admin/task-timer-start`,e.taskId),children:[(0,E.jsx)(te,{size:14}),` Start`]})]})})]},e.rowKey))]}):(0,E.jsxs)(`section`,{className:`admin-card tasks-card`,children:[(0,E.jsxs)(`div`,{className:`tasks-card-head`,children:[(0,E.jsx)(`span`,{className:`tasks-card-title`,children:`Completed`}),(0,E.jsxs)(`span`,{className:`tasks-card-count`,children:[X.length,` done`]})]}),X.length===0&&(0,E.jsx)(`div`,{className:`tasks-empty`,children:`Nothing completed yet.`}),X.map(e=>(0,E.jsxs)(`div`,{className:`tasks-row tasks-row-done`,ref:t=>{t?V.current.set(e.rowKey,t):V.current.delete(e.rowKey)},children:[(0,E.jsx)(`button`,{className:`tasks-row-open`,"aria-label":`Open task detail: ${e.name}`,onClick:()=>L(e.rowKey),children:(0,E.jsxs)(`div`,{className:`tasks-row-main`,children:[(0,E.jsx)(`div`,{className:`tasks-row-name`,children:e.name}),(0,E.jsx)(`div`,{className:`tasks-row-sub`,children:M(e,k(e))})]})}),(0,E.jsx)(`div`,{className:`tasks-row-elapsed`,children:a(e.secondsLogged)}),(0,E.jsx)(`div`,{className:`tasks-row-controls`,children:e.taskId===null?(0,E.jsx)(`span`,{className:`tasks-row-broken`,title:`This task has no id, so its logged time cannot be edited. Repair it by running platform/scripts/backfill-task-ids.sh on this install.`,children:`Needs repair`}):xe(e)?Se(e.taskId):(0,E.jsx)(m,{actions:Ce(e,e.taskId),disabled:!1,label:`Task actions`})})]},e.rowKey))]})]})]})}function P({cacheKey:e}){let{adminFetch:t}=o({initialCacheKey:e,surface:`tasks`});return(0,E.jsx)(N,{adminFetch:t})}function F(){let[e,t]=(0,b.useState)(null),[n,r]=(0,b.useState)(!1),[a,o]=(0,b.useState)(void 0),[s,c]=(0,b.useState)(null),[u,d]=(0,b.useState)(null),[f,p]=(0,b.useState)(null),[m,g]=(0,b.useState)(null);(0,b.useEffect)(()=>{let e=!1,n=null;try{n=sessionStorage.getItem(O)}catch{}if(!n){t(null),r(!0);return}return fetch(`/api/admin/session?session_key=${encodeURIComponent(n)}`).then(async i=>{if(!e){if(i.status===401){try{sessionStorage.removeItem(O)}catch{}window.location.href=`/`;return}if(i.ok)try{let e=await i.json();typeof e.businessName==`string`&&o(e.businessName),e.sessionId!==void 0&&c(e.sessionId??null),d(e.role??null),p(e.userName===void 0?null:e.userName),g(e.avatar??null)}catch{}t(n),r(!0)}}).catch(()=>{e||(t(n),r(!0))}),()=>{e=!0}},[]);let ee=(0,b.useCallback)(()=>{try{sessionStorage.removeItem(O)}catch{}window.location.href=`/`},[]),[te,v]=(0,b.useState)(!1),y=(0,b.useCallback)(async()=>{v(!0);try{let e=await h();if(e){try{sessionStorage.removeItem(O)}catch{}window.location.href=`/`}return e}finally{v(!1)}},[]);return n?e?(0,E.jsx)(l,{cacheKey:e,surface:`tasks`,onSessionExpired:({code:e,path:t})=>{console.warn(`[admin-auth] outcome=session-expired-redirect code=${e} path=${t} surface=tasks`);try{sessionStorage.removeItem(O)}catch{}window.location.href=`/`},children:(0,E.jsx)(_,{cacheKey:e,businessName:a,sessionId:s,onLogout:ee,onDisconnect:y,disconnecting:te,userName:f,userAvatar:m,role:u,children:(0,E.jsx)(P,{cacheKey:e})})}):(0,E.jsx)(`div`,{className:`tasks-page`,children:(0,E.jsxs)(`div`,{className:`tasks-empty`,children:[(0,E.jsx)(`p`,{children:`You are not signed in.`}),(0,E.jsxs)(`p`,{children:[`Open the `,(0,E.jsx)(`a`,{href:`/`,className:`tasks-link`,children:`main admin page`}),` and log in, then return here.`]})]})}):(0,E.jsx)(i,{surface:`gate`})}(0,y.createRoot)(document.getElementById(`root`)).render((0,E.jsx)(F,{}));
3
+ `).slice(0,2e3)}function se({clients:e,onSelect:t}){return(0,E.jsxs)(`section`,{className:`admin-card tasks-card`,children:[(0,E.jsxs)(`div`,{className:`tasks-card-head`,children:[(0,E.jsx)(`span`,{className:`tasks-card-title`,children:`Clients`}),(0,E.jsxs)(`span`,{className:`tasks-card-count`,children:[e.length,` total`]})]}),e.length===0&&(0,E.jsx)(`div`,{className:`tasks-empty`,children:`No clients yet.`}),e.map(e=>(0,E.jsx)(`button`,{className:`tasks-row tasks-client-row`,onClick:()=>t(e.name),children:(0,E.jsxs)(`div`,{className:`tasks-row-main`,children:[(0,E.jsx)(`div`,{className:`tasks-row-name`,children:e.name}),(0,E.jsxs)(`div`,{className:`tasks-row-sub`,children:[e.openCount,` open · `,a(e.totalSeconds),` logged`]})]})},e.name))]})}function ce({task:e,roster:t,busy:n,onAssign:r,onClose:i}){return(0,b.useEffect)(()=>{let e=e=>{e.key===`Escape`&&i()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[i]),(0,E.jsx)(`div`,{className:`tasks-detail-backdrop`,onClick:i,children:(0,E.jsxs)(`div`,{className:`tasks-detail`,role:`dialog`,"aria-modal":`true`,"aria-label":`Task detail`,onClick:e=>e.stopPropagation(),children:[(0,E.jsxs)(`div`,{className:`tasks-detail-head`,children:[(0,E.jsx)(`h2`,{className:`tasks-detail-title`,children:e?e.name:`Task no longer available`}),(0,E.jsx)(`button`,{className:`tasks-detail-close`,"aria-label":`Close`,onClick:i,children:(0,E.jsx)(c,{size:16})})]}),e===null?(0,E.jsx)(`p`,{className:`tasks-detail-gone`,children:`This task is no longer in the list. It may have been completed, cancelled or removed. Close this and reload to see the current list.`}):(0,E.jsxs)(`dl`,{className:`tasks-detail-fields`,children:[(0,E.jsx)(`dt`,{children:`Status`}),(0,E.jsx)(`dd`,{children:e.status}),(0,E.jsx)(`dt`,{children:`Logged`}),(0,E.jsx)(`dd`,{children:a(e.secondsLogged)}),(0,E.jsx)(`dt`,{children:`Created`}),(0,E.jsx)(`dd`,{children:A(e.createdAt)||`Not recorded`}),(0,E.jsx)(`dt`,{children:`Assignee`}),(0,E.jsx)(`dd`,{children:e.taskId===null?j(e):(0,E.jsxs)(`select`,{className:`tasks-assign-select`,"aria-label":`Assignee`,disabled:n,value:e.assigneeUserId??``,onChange:t=>r(e.taskId,t.target.value===``?null:t.target.value),children:[(0,E.jsx)(`option`,{value:``,children:`Unassigned`}),e.assigneeUserId&&!t.some(t=>t.userId===e.assigneeUserId)&&(0,E.jsxs)(`option`,{value:e.assigneeUserId,children:[j(e),` (not in roster)`]}),t.map(e=>(0,E.jsx)(`option`,{value:e.userId,children:D(e)},e.userId))]})}),e.clientName&&(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(`dt`,{children:`Client`}),(0,E.jsx)(`dd`,{children:e.clientName})]}),e.propertyAddress&&(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(`dt`,{children:`Property`}),(0,E.jsx)(`dd`,{children:e.propertyAddress})]}),e.fee!=null&&(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(`dt`,{children:`Fee`}),(0,E.jsxs)(`dd`,{children:[`£`,e.fee]})]})]})]})})}function N({adminFetch:e}){let[o,s]=(0,b.useState)({open:[],completed:[]}),[l,u]=(0,b.useState)(!1),[d,p]=(0,b.useState)(!1),_=(0,b.useRef)(!1),y=(0,b.useRef)(``),x=ne(1e3),[S,C]=(0,b.useState)(`open`),[w,D]=(0,b.useState)(null),[O,A]=(0,b.useState)(null),[j,N]=(0,b.useState)(null),[P,F]=(0,b.useState)(``),[I,L]=(0,b.useState)(null),[le,R]=(0,b.useState)(null),[z,B]=(0,b.useState)(null),V=(0,b.useRef)(new Map),H=(0,b.useRef)(new Set),[ue,U]=(0,b.useState)(new Set),W=(0,b.useMemo)(()=>{if(I!==null)return[...o.open,...o.completed].find(e=>e.rowKey===I)??null},[o,I]),G=(0,b.useMemo)(()=>z===null?null:[...o.open,...o.completed].find(e=>e.rowKey===z)??null,[o,z]);(0,b.useEffect)(()=>{I!==null&&W===null&&console.error(`[tasks-ui] op=detail-failed rowKey=${I} reason=not-in-list`)},[I,W]);let K=(0,b.useMemo)(()=>re(o.open,o.completed),[o]),q=(0,b.useMemo)(()=>w===null?{open:o.open,completed:o.completed}:{open:o.open.filter(e=>e.clientName===w),completed:o.completed.filter(e=>e.clientName===w)},[o,w]),J=(0,b.useMemo)(()=>ie(q.open,q.completed),[q]),de=(0,b.useCallback)(e=>{D(e),C(`open`)},[]);(0,b.useEffect)(()=>{w&&!K.some(e=>e.name===w)&&D(null)},[K,w]),(0,b.useEffect)(()=>{O&&!J.some(e=>e.userId===O)&&A(null)},[J,O]),(0,b.useEffect)(()=>{R(null),B(null)},[S,w,O]);let Y=o.open.filter(e=>e.running||(w===null||e.clientName===w)&&T(e,O)),X=(w?o.completed.filter(e=>e.clientName===w):o.completed).filter(e=>T(e,O)),[fe,pe]=(0,b.useState)([]),Z=(0,b.useCallback)(async()=>{let t=await e(`/api/admin/tasks-list`);t.ok&&s(await t.json()),u(!0)},[e]);(0,b.useEffect)(()=>{Z()},[Z]),(0,b.useEffect)(()=>{(async()=>{let t=await e(`/api/admin/admin-users-list`);if(t.ok){let e=await t.json();e.ok&&Array.isArray(e.users)&&pe(e.users)}})()},[e]);let Q=(0,b.useCallback)(async(t,n,r)=>{if(_.current)return!1;_.current=!0,p(!0);try{return await e(t,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({taskId:n,...r})}),await Z(),!0}finally{_.current=!1,p(!1)}},[e,Z]),me=(0,b.useCallback)(async e=>{await Q(`/api/admin/task-complete`,e)},[Q]),he=(0,b.useCallback)(async e=>{await Q(`/api/admin/task-delete`,e,{confirmed:!0})},[Q]),ge=(0,b.useCallback)((e,t)=>{let n=String(Math.round(e.secondsLogged/60));y.current=n,N(t),F(n)},[]),$=(0,b.useCallback)(()=>{N(null),F(``)},[]),_e=(0,b.useCallback)(async e=>{let t=P.trim(),n=Number(t);if(!(t===``||!Number.isInteger(n)||n<0)){if(t===y.current){$();return}N(null),F(``),await Q(`/api/admin/task-time-adjust`,e,{newSeconds:n*60})}},[P,Q,$]),ve=(0,b.useCallback)(e=>{Q(`/api/admin/task-time-adjust`,e,{newSeconds:0})},[Q]),ye=(0,b.useCallback)((e,t)=>{Q(`/api/admin/task-assign`,e,{assigneeUserId:t})},[Q]),be=(0,b.useCallback)(async t=>{if(!H.current.has(t)){H.current.add(t),U(new Set(H.current));try{let n=await e(`/api/admin/task-session-open`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({taskId:t})});if(!n.ok){console.error(`[admin-ui] task-session op=open-failed taskId=${t} status=${n.status}`);return}let{sessionId:r,title:i,description:a,notes:o}=await n.json();if(r!==null){let e=`/chat?session=${r}`;window.location.assign(e);return}let s=oe({title:i,taskId:t,description:a??``,notes:o??``}),c=await e(`/api/admin/session-rc-spawn`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({title:i,initialMessage:s})}),l=await c.json().catch(()=>({})),u=g(c.ok,c.status,l),d=l.sessionId??null;if(u.kind!==`navigate`){console.error(`[admin-ui] task-session op=spawn-failed taskId=${t} reason=${u.reason}`);return}if(d!==null){let n=await e(`/api/admin/task-session-link`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({taskId:t,sessionId:d})});n.ok&&(await n.json().catch(()=>({}))).linked}else console.error(`[admin-ui] task-session op=link-skipped taskId=${t} reason=no-landed-session-id`);window.location.assign(u.url)}catch(e){console.error(`[admin-ui] task-session op=failed taskId=${t} error=${e instanceof Error?e.message:String(e)}`)}finally{H.current.delete(t),U(new Set(H.current))}}},[e]);if(!l)return(0,E.jsx)(i,{surface:`gate`});let xe=e=>e.taskId!==null&&j===e.taskId,Se=e=>(0,E.jsxs)(`div`,{className:`tasks-edit`,children:[(0,E.jsx)(`input`,{className:`tasks-edit-input`,type:`number`,min:0,step:1,"aria-label":`Logged minutes`,value:P,onChange:e=>F(e.target.value)}),(0,E.jsx)(`span`,{className:`tasks-edit-unit`,children:`min`}),(0,E.jsxs)(`button`,{className:`admin-btn-cta tasks-btn-action`,disabled:d,onClick:()=>void _e(e),children:[(0,E.jsx)(f,{size:14}),` Save`]}),(0,E.jsxs)(`button`,{className:`tasks-btn-secondary tasks-btn-action`,onClick:$,children:[(0,E.jsx)(c,{size:14}),` Cancel`]})]}),Ce=(e,r)=>[{key:`edit-time`,label:`Edit logged time for task: ${e.name}`,menuLabel:`Edit time`,title:e.running?`Stop the timer before editing time`:`Set the logged time for this task`,icon:(0,E.jsx)(t,{size:12}),disabled:d||e.running,onClick:()=>ge(e,r)},{key:`reset-time`,label:`Reset logged time for task: ${e.name}`,menuLabel:`Reset logged time to 0:00`,title:e.running?`Stop the timer before resetting time`:`Set the logged time back to zero`,icon:(0,E.jsx)(v,{size:12}),disabled:d||e.running,onClick:()=>ve(r)},{key:`session`,label:`Open session for task: ${e.name}`,menuLabel:`Session`,title:e.sessionId?`Resume this task’s session`:`Start a session for this task`,icon:(0,E.jsx)(ee,{size:12}),disabled:ue.has(r),onClick:()=>{be(r)}},{key:`delete`,label:`Delete task: ${e.name}`,menuLabel:`Delete`,title:e.running?`Stop the timer before deleting`:`Delete this task and its time records`,icon:(0,E.jsx)(n,{size:12}),danger:!0,disabled:d||e.running,onClick:()=>B(e.rowKey)}];return(0,E.jsxs)(`div`,{className:`ui-page ui-page--full tasks-body`,children:[I!==null&&(0,E.jsx)(ce,{task:W??null,roster:fe,busy:d,onAssign:ye,onClose:()=>L(null)}),(0,E.jsx)(m,{target:G?{name:G.name,secondsLogged:G.secondsLogged}:null,anchorEl:z?V.current.get(z)??null:null,onCancel:()=>B(null),onConfirm:()=>{let e=G;B(null),e?.taskId&&he(e.taskId)}},z??`none`),(0,E.jsxs)(`div`,{className:`tasks-tabs`,children:[(0,E.jsxs)(`button`,{className:`admin-chip ${S===`open`?`is-active`:``}`,onClick:()=>C(`open`),children:[`Open `,(0,E.jsx)(`span`,{className:`tasks-tab-badge`,children:o.open.length})]}),(0,E.jsxs)(`button`,{className:`admin-chip ${S===`completed`?`is-active`:``}`,onClick:()=>C(`completed`),children:[`Completed `,(0,E.jsx)(`span`,{className:`tasks-tab-badge`,children:o.completed.length})]}),(0,E.jsxs)(`button`,{className:`admin-chip ${S===`clients`?`is-active`:``}`,onClick:()=>C(`clients`),children:[`Clients `,(0,E.jsx)(`span`,{className:`tasks-tab-badge`,children:K.length})]})]}),S===`clients`?(0,E.jsx)(se,{clients:K,onSelect:de}):(0,E.jsxs)(E.Fragment,{children:[w&&(0,E.jsxs)(`div`,{className:`tasks-filter-banner`,children:[(0,E.jsxs)(`span`,{children:[`Showing `,w]}),(0,E.jsx)(`button`,{className:`tasks-filter-clear`,onClick:()=>D(null),children:`Clear`})]}),J.length>0&&(0,E.jsxs)(`div`,{className:`tasks-assignee-bar`,children:[(0,E.jsxs)(`button`,{className:`admin-chip ${O===null?`is-active`:``}`,"aria-pressed":O===null,onClick:()=>A(null),children:[`All `,(0,E.jsx)(`span`,{className:`tasks-assignee-count`,children:q.open.length})]}),J.map(e=>(0,E.jsxs)(`button`,{className:`admin-chip ${O===e.userId?`is-active`:``}`,"aria-pressed":O===e.userId,"aria-label":`Assignee ${e.label}`,title:e.userId===`__unassigned__`?`Tasks with no assigned admin`:`AdminUser ${e.userId}`,onClick:()=>A(O===e.userId?null:e.userId),children:[e.label,` `,(0,E.jsx)(`span`,{className:`tasks-assignee-count`,children:e.openCount})]},e.userId))]}),S===`open`?(0,E.jsxs)(`section`,{className:`admin-card tasks-card`,children:[(0,E.jsxs)(`div`,{className:`tasks-card-head`,children:[(0,E.jsx)(`span`,{className:`tasks-card-title`,children:`Open tasks`}),(0,E.jsxs)(`span`,{className:`tasks-card-count`,children:[Y.length,` to do`]})]}),Y.length===0&&(0,E.jsx)(`div`,{className:`tasks-empty`,children:`No open tasks.`}),Y.map(e=>(0,E.jsxs)(`div`,{className:`tasks-row`,ref:t=>{t?V.current.set(e.rowKey,t):V.current.delete(e.rowKey)},children:[(0,E.jsx)(`button`,{className:`tasks-row-open`,"aria-label":`Open task detail: ${e.name}`,onClick:()=>L(e.rowKey),children:(0,E.jsxs)(`div`,{className:`tasks-row-main`,children:[(0,E.jsx)(`div`,{className:`tasks-row-name`,children:e.name}),(0,E.jsx)(`div`,{className:`tasks-row-sub`,children:M(e,k(e))})]})}),(0,E.jsx)(`div`,{className:`tasks-row-elapsed ${e.running?`tasks-row-elapsed-running`:``}`,children:a(ae(e,x))}),(0,E.jsx)(`div`,{className:`tasks-row-controls`,children:e.taskId!==null&&le===e.taskId?(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(`span`,{className:`tasks-confirm-label`,children:`Complete?`}),(0,E.jsxs)(`button`,{className:`admin-btn-cta tasks-btn-action`,disabled:d,onClick:()=>{R(null),me(e.taskId)},children:[(0,E.jsx)(f,{size:14}),` Confirm complete`]}),(0,E.jsxs)(`button`,{className:`tasks-btn-secondary tasks-btn-action`,onClick:()=>R(null),children:[(0,E.jsx)(c,{size:14}),` Keep open`]})]}):e.taskId===null?(0,E.jsx)(`span`,{className:`tasks-row-broken`,title:`This task has no id, so it cannot be started, edited or completed. Repair it by running platform/scripts/backfill-task-ids.sh on this install.`,children:`Needs repair`}):xe(e)?Se(e.taskId):(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(h,{actions:Ce(e,e.taskId),disabled:!1,label:`Task actions`}),(0,E.jsx)(`button`,{className:`tasks-btn-secondary tasks-btn-action tasks-btn-icon`,"aria-label":`Complete task: ${e.name}`,disabled:d||e.running,title:e.running?`Stop the timer before completing`:`Complete task`,onClick:()=>R(e.taskId),children:(0,E.jsx)(f,{size:14})}),e.running?(0,E.jsxs)(`button`,{className:`admin-btn-danger tasks-btn-action`,disabled:d,title:`Stop the timer`,onClick:()=>void Q(`/api/admin/task-timer-stop`,e.taskId),children:[(0,E.jsx)(r,{size:14}),` Stop`]}):(0,E.jsxs)(`button`,{className:`admin-btn-cta tasks-btn-action`,disabled:d,title:`Start the timer`,onClick:()=>void Q(`/api/admin/task-timer-start`,e.taskId),children:[(0,E.jsx)(te,{size:14}),` Start`]})]})})]},e.rowKey))]}):(0,E.jsxs)(`section`,{className:`admin-card tasks-card`,children:[(0,E.jsxs)(`div`,{className:`tasks-card-head`,children:[(0,E.jsx)(`span`,{className:`tasks-card-title`,children:`Completed`}),(0,E.jsxs)(`span`,{className:`tasks-card-count`,children:[X.length,` done`]})]}),X.length===0&&(0,E.jsx)(`div`,{className:`tasks-empty`,children:`Nothing completed yet.`}),X.map(e=>(0,E.jsxs)(`div`,{className:`tasks-row tasks-row-done`,ref:t=>{t?V.current.set(e.rowKey,t):V.current.delete(e.rowKey)},children:[(0,E.jsx)(`button`,{className:`tasks-row-open`,"aria-label":`Open task detail: ${e.name}`,onClick:()=>L(e.rowKey),children:(0,E.jsxs)(`div`,{className:`tasks-row-main`,children:[(0,E.jsx)(`div`,{className:`tasks-row-name`,children:e.name}),(0,E.jsx)(`div`,{className:`tasks-row-sub`,children:M(e,k(e))})]})}),(0,E.jsx)(`div`,{className:`tasks-row-elapsed`,children:a(e.secondsLogged)}),(0,E.jsx)(`div`,{className:`tasks-row-controls`,children:e.taskId===null?(0,E.jsx)(`span`,{className:`tasks-row-broken`,title:`This task has no id, so its logged time cannot be edited. Repair it by running platform/scripts/backfill-task-ids.sh on this install.`,children:`Needs repair`}):xe(e)?Se(e.taskId):(0,E.jsx)(h,{actions:Ce(e,e.taskId),disabled:!1,label:`Task actions`})})]},e.rowKey))]})]})]})}function P({cacheKey:e}){let{adminFetch:t}=o({initialCacheKey:e,surface:`tasks`});return(0,E.jsx)(N,{adminFetch:t})}function F(){let[e,t]=(0,b.useState)(null),[n,r]=(0,b.useState)(!1),[a,o]=(0,b.useState)(void 0),[s,c]=(0,b.useState)(null),[u,d]=(0,b.useState)(null),[f,m]=(0,b.useState)(null),[h,g]=(0,b.useState)(null);(0,b.useEffect)(()=>{let e=!1,n=null;try{n=sessionStorage.getItem(O)}catch{}if(!n){t(null),r(!0);return}return fetch(`/api/admin/session?session_key=${encodeURIComponent(n)}`).then(async i=>{if(!e){if(i.status===401){try{sessionStorage.removeItem(O)}catch{}window.location.href=`/`;return}if(i.ok)try{let e=await i.json();typeof e.businessName==`string`&&o(e.businessName),e.sessionId!==void 0&&c(e.sessionId??null),d(e.role??null),m(e.userName===void 0?null:e.userName),g(e.avatar??null)}catch{}t(n),r(!0)}}).catch(()=>{e||(t(n),r(!0))}),()=>{e=!0}},[]);let ee=(0,b.useCallback)(()=>{try{sessionStorage.removeItem(O)}catch{}window.location.href=`/`},[]),[te,v]=(0,b.useState)(!1),y=(0,b.useCallback)(async()=>{v(!0);try{let e=await p();if(e){try{sessionStorage.removeItem(O)}catch{}window.location.href=`/`}return e}finally{v(!1)}},[]);return n?e?(0,E.jsx)(l,{cacheKey:e,surface:`tasks`,onSessionExpired:({code:e,path:t})=>{console.warn(`[admin-auth] outcome=session-expired-redirect code=${e} path=${t} surface=tasks`);try{sessionStorage.removeItem(O)}catch{}window.location.href=`/`},children:(0,E.jsx)(_,{cacheKey:e,businessName:a,sessionId:s,onLogout:ee,onDisconnect:y,disconnecting:te,userName:f,userAvatar:h,role:u,children:(0,E.jsx)(P,{cacheKey:e})})}):(0,E.jsx)(`div`,{className:`tasks-page`,children:(0,E.jsxs)(`div`,{className:`tasks-empty`,children:[(0,E.jsx)(`p`,{children:`You are not signed in.`}),(0,E.jsxs)(`p`,{children:[`Open the `,(0,E.jsx)(`a`,{href:`/`,className:`tasks-link`,children:`main admin page`}),` and log in, then return here.`]})]})}):(0,E.jsx)(i,{surface:`gate`})}(0,y.createRoot)(document.getElementById(`root`)).render((0,E.jsx)(F,{}));
@@ -1,4 +1,4 @@
1
- import{g as e,h as t,m as n,p as r}from"./src-9CNk4JU0.js";import{$ as i,K as a,Q as o,a as s,b as c,o as l,tt as u,y as d}from"./chunk-ICPOFSXX-CKQWnR1l.js";import"./dist-DlU7AEeD.js";import{t as f}from"./arc-DaudCnXg.js";import{f as p}from"./chunk-5PVQY5BW-CYusrVbq.js";import{t as m}from"./chunk-426QAEUC-YPE0DZOq.js";var h=(function(){var e=t(function(e,t,n,r){for(n||={},r=e.length;r--;n[e[r]]=t);return n},`o`),n=[6,11,13,14,15,17,19,20,23,24],r=[1,12],i=[1,13],a=[1,14],o=[1,15],s=[1,16],c=[1,19],l=[1,20],u={trace:t(function(){},`trace`),yy:{},symbols_:{error:2,start:3,timeline_header:4,document:5,EOF:6,timeline:7,timeline_lr:8,timeline_td:9,line:10,SPACE:11,statement:12,NEWLINE:13,title:14,acc_title:15,acc_title_value:16,acc_descr:17,acc_descr_value:18,acc_descr_multiline_value:19,section:20,period_statement:21,event_statement:22,period:23,event:24,$accept:0,$end:1},terminals_:{2:`error`,6:`EOF`,7:`timeline`,8:`timeline_lr`,9:`timeline_td`,11:`SPACE`,13:`NEWLINE`,14:`title`,15:`acc_title`,16:`acc_title_value`,17:`acc_descr`,18:`acc_descr_value`,19:`acc_descr_multiline_value`,20:`section`,23:`period`,24:`event`},productions_:[0,[3,3],[4,1],[4,1],[4,1],[5,0],[5,2],[10,2],[10,1],[10,1],[10,1],[12,1],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[21,1],[22,1]],performAction:t(function(e,t,n,r,i,a,o){var s=a.length-1;switch(i){case 1:return a[s-1];case 3:r.setDirection(`LR`);break;case 4:r.setDirection(`TD`);break;case 5:this.$=[];break;case 6:a[s-1].push(a[s]),this.$=a[s-1];break;case 7:case 8:this.$=a[s];break;case 9:case 10:this.$=[];break;case 11:r.getCommonDb().setDiagramTitle(a[s].substr(6)),this.$=a[s].substr(6);break;case 12:this.$=a[s].trim(),r.getCommonDb().setAccTitle(this.$);break;case 13:case 14:this.$=a[s].trim(),r.getCommonDb().setAccDescription(this.$);break;case 15:r.addSection(a[s].substr(8)),this.$=a[s].substr(8);break;case 18:r.addTask(a[s],0,``),this.$=a[s];break;case 19:r.addEvent(a[s].substr(2)),this.$=a[s];break}},`anonymous`),table:[{3:1,4:2,7:[1,3],8:[1,4],9:[1,5]},{1:[3]},e(n,[2,5],{5:6}),e(n,[2,2]),e(n,[2,3]),e(n,[2,4]),{6:[1,7],10:8,11:[1,9],12:10,13:[1,11],14:r,15:i,17:a,19:o,20:s,21:17,22:18,23:c,24:l},e(n,[2,10],{1:[2,1]}),e(n,[2,6]),{12:21,14:r,15:i,17:a,19:o,20:s,21:17,22:18,23:c,24:l},e(n,[2,8]),e(n,[2,9]),e(n,[2,11]),{16:[1,22]},{18:[1,23]},e(n,[2,14]),e(n,[2,15]),e(n,[2,16]),e(n,[2,17]),e(n,[2,18]),e(n,[2,19]),e(n,[2,7]),e(n,[2,12]),e(n,[2,13])],defaultActions:{},parseError:t(function(e,t){if(t.recoverable)this.trace(e);else{var n=Error(e);throw n.hash=t,n}},`parseError`),parse:t(function(e){var n=this,r=[0],i=[],a=[null],o=[],s=this.table,c=``,l=0,u=0,d=0,f=2,p=1,m=o.slice.call(arguments,1),h=Object.create(this.lexer),g={yy:{}};for(var _ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,_)&&(g.yy[_]=this.yy[_]);h.setInput(e,g.yy),g.yy.lexer=h,g.yy.parser=this,h.yylloc===void 0&&(h.yylloc={});var v=h.yylloc;o.push(v);var y=h.options&&h.options.ranges;typeof g.yy.parseError==`function`?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function b(e){r.length-=2*e,a.length-=e,o.length-=e}t(b,`popStack`);function x(){var e=i.pop()||h.lex()||p;return typeof e!=`number`&&(e instanceof Array&&(i=e,e=i.pop()),e=n.symbols_[e]||e),e}t(x,`lex`);for(var S,C,w,T,E,D={},O,k,A,j;;){if(w=r[r.length-1],this.defaultActions[w]?T=this.defaultActions[w]:(S??=x(),T=s[w]&&s[w][S]),T===void 0||!T.length||!T[0]){var M=``;for(O in j=[],s[w])this.terminals_[O]&&O>f&&j.push(`'`+this.terminals_[O]+`'`);M=h.showPosition?`Parse error on line `+(l+1)+`:
1
+ import{g as e,h as t,m as n,p as r}from"./src-C2WwTWSY.js";import{$ as i,K as a,Q as o,a as s,b as c,o as l,tt as u,y as d}from"./chunk-ICPOFSXX-BmWvYe_5.js";import"./dist-QvbmK1IP.js";import{t as f}from"./arc-DaI5MLTq.js";import{f as p}from"./chunk-5PVQY5BW-BEsb0aTb.js";import{t as m}from"./chunk-426QAEUC-fNi5i3SA.js";var h=(function(){var e=t(function(e,t,n,r){for(n||={},r=e.length;r--;n[e[r]]=t);return n},`o`),n=[6,11,13,14,15,17,19,20,23,24],r=[1,12],i=[1,13],a=[1,14],o=[1,15],s=[1,16],c=[1,19],l=[1,20],u={trace:t(function(){},`trace`),yy:{},symbols_:{error:2,start:3,timeline_header:4,document:5,EOF:6,timeline:7,timeline_lr:8,timeline_td:9,line:10,SPACE:11,statement:12,NEWLINE:13,title:14,acc_title:15,acc_title_value:16,acc_descr:17,acc_descr_value:18,acc_descr_multiline_value:19,section:20,period_statement:21,event_statement:22,period:23,event:24,$accept:0,$end:1},terminals_:{2:`error`,6:`EOF`,7:`timeline`,8:`timeline_lr`,9:`timeline_td`,11:`SPACE`,13:`NEWLINE`,14:`title`,15:`acc_title`,16:`acc_title_value`,17:`acc_descr`,18:`acc_descr_value`,19:`acc_descr_multiline_value`,20:`section`,23:`period`,24:`event`},productions_:[0,[3,3],[4,1],[4,1],[4,1],[5,0],[5,2],[10,2],[10,1],[10,1],[10,1],[12,1],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[21,1],[22,1]],performAction:t(function(e,t,n,r,i,a,o){var s=a.length-1;switch(i){case 1:return a[s-1];case 3:r.setDirection(`LR`);break;case 4:r.setDirection(`TD`);break;case 5:this.$=[];break;case 6:a[s-1].push(a[s]),this.$=a[s-1];break;case 7:case 8:this.$=a[s];break;case 9:case 10:this.$=[];break;case 11:r.getCommonDb().setDiagramTitle(a[s].substr(6)),this.$=a[s].substr(6);break;case 12:this.$=a[s].trim(),r.getCommonDb().setAccTitle(this.$);break;case 13:case 14:this.$=a[s].trim(),r.getCommonDb().setAccDescription(this.$);break;case 15:r.addSection(a[s].substr(8)),this.$=a[s].substr(8);break;case 18:r.addTask(a[s],0,``),this.$=a[s];break;case 19:r.addEvent(a[s].substr(2)),this.$=a[s];break}},`anonymous`),table:[{3:1,4:2,7:[1,3],8:[1,4],9:[1,5]},{1:[3]},e(n,[2,5],{5:6}),e(n,[2,2]),e(n,[2,3]),e(n,[2,4]),{6:[1,7],10:8,11:[1,9],12:10,13:[1,11],14:r,15:i,17:a,19:o,20:s,21:17,22:18,23:c,24:l},e(n,[2,10],{1:[2,1]}),e(n,[2,6]),{12:21,14:r,15:i,17:a,19:o,20:s,21:17,22:18,23:c,24:l},e(n,[2,8]),e(n,[2,9]),e(n,[2,11]),{16:[1,22]},{18:[1,23]},e(n,[2,14]),e(n,[2,15]),e(n,[2,16]),e(n,[2,17]),e(n,[2,18]),e(n,[2,19]),e(n,[2,7]),e(n,[2,12]),e(n,[2,13])],defaultActions:{},parseError:t(function(e,t){if(t.recoverable)this.trace(e);else{var n=Error(e);throw n.hash=t,n}},`parseError`),parse:t(function(e){var n=this,r=[0],i=[],a=[null],o=[],s=this.table,c=``,l=0,u=0,d=0,f=2,p=1,m=o.slice.call(arguments,1),h=Object.create(this.lexer),g={yy:{}};for(var _ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,_)&&(g.yy[_]=this.yy[_]);h.setInput(e,g.yy),g.yy.lexer=h,g.yy.parser=this,h.yylloc===void 0&&(h.yylloc={});var v=h.yylloc;o.push(v);var y=h.options&&h.options.ranges;typeof g.yy.parseError==`function`?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function b(e){r.length-=2*e,a.length-=e,o.length-=e}t(b,`popStack`);function x(){var e=i.pop()||h.lex()||p;return typeof e!=`number`&&(e instanceof Array&&(i=e,e=i.pop()),e=n.symbols_[e]||e),e}t(x,`lex`);for(var S,C,w,T,E,D={},O,k,A,j;;){if(w=r[r.length-1],this.defaultActions[w]?T=this.defaultActions[w]:(S??=x(),T=s[w]&&s[w][S]),T===void 0||!T.length||!T[0]){var M=``;for(O in j=[],s[w])this.terminals_[O]&&O>f&&j.push(`'`+this.terminals_[O]+`'`);M=h.showPosition?`Parse error on line `+(l+1)+`:
2
2
  `+h.showPosition()+`
3
3
  Expecting `+j.join(`, `)+`, got '`+(this.terminals_[S]||S)+`'`:`Parse error on line `+(l+1)+`: Unexpected `+(S==p?`end of input`:`'`+(this.terminals_[S]||S)+`'`),this.parseError(M,{text:h.match,token:this.terminals_[S]||S,line:h.yylineno,loc:v,expected:j})}if(T[0]instanceof Array&&T.length>1)throw Error(`Parse Error: multiple actions possible at state: `+w+`, token: `+S);switch(T[0]){case 1:r.push(S),a.push(h.yytext),o.push(h.yylloc),r.push(T[1]),S=null,C?(S=C,C=null):(u=h.yyleng,c=h.yytext,l=h.yylineno,v=h.yylloc,d>0&&d--);break;case 2:if(k=this.productions_[T[1]][1],D.$=a[a.length-k],D._$={first_line:o[o.length-(k||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(k||1)].first_column,last_column:o[o.length-1].last_column},y&&(D._$.range=[o[o.length-(k||1)].range[0],o[o.length-1].range[1]]),E=this.performAction.apply(D,[c,u,l,g.yy,T[1],a,o].concat(m)),E!==void 0)return E;k&&(r=r.slice(0,-1*k*2),a=a.slice(0,-1*k),o=o.slice(0,-1*k)),r.push(this.productions_[T[1]][0]),a.push(D.$),o.push(D._$),A=s[r[r.length-2]][r[r.length-1]],r.push(A);break;case 3:return!0}}return!0},`parse`)};u.lexer=(function(){return{EOF:1,parseError:t(function(e,t){if(this.yy.parser)this.yy.parser.parseError(e,t);else throw Error(e)},`parseError`),setInput:t(function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=``,this.conditionStack=[`INITIAL`],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},`setInput`),input:t(function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},`input`),unput:t(function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},`unput`),more:t(function(){return this._more=!0,this},`more`),reject:t(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError(`Lexical error on line `+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
4
  `+this.showPosition(),{text:``,token:null,line:this.yylineno});return this},`reject`),less:t(function(e){this.unput(this.match.slice(e))},`less`),pastInput:t(function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?`...`:``)+e.substr(-20).replace(/\n/g,``)},`pastInput`),upcomingInput:t(function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?`...`:``)).replace(/\n/g,``)},`upcomingInput`),showPosition:t(function(){var e=this.pastInput(),t=Array(e.length+1).join(`-`);return e+this.upcomingInput()+`
@@ -0,0 +1 @@
1
+ import"./chunk-K5T4RW27-DIKxqyYw.js";import{n as e}from"./chunk-ORNJ4GCN-Cc0vqc-D.js";export{e as createTreeViewServices};
@@ -0,0 +1 @@
1
+ import"./chunk-K5T4RW27-DIKxqyYw.js";import{n as e}from"./chunk-LIHQZDEY-ejKezVlD.js";export{e as createTreemapServices};
@@ -1 +1 @@
1
- import{Z as e}from"./useMediaQuery-Baf4Huvv.js";var t=e(`triangle-alert`,[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]);export{t};
1
+ import{Z as e}from"./useMediaQuery-CLxecNeT.js";var t=e(`triangle-alert`,[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]);export{t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-CltuBf4Z.js";import{ct as t,i as n}from"./useMediaQuery-Baf4Huvv.js";var r=e(t(),1);function i(e){let[t,i]=(0,r.useState)(`idle`),a=(0,r.useRef)(null),o=(0,r.useRef)(e?.onResult);return o.current=e?.onResult,(0,r.useEffect)(()=>()=>{a.current&&clearTimeout(a.current)},[]),{status:t,copy:(0,r.useCallback)(async e=>{let t=await n(e);i(t?`ok`:`fail`),o.current?.(t),a.current&&clearTimeout(a.current),a.current=setTimeout(()=>i(`idle`),1500)},[])}}export{i as t};
1
+ import{o as e}from"./chunk-CltuBf4Z.js";import{ct as t,i as n}from"./useMediaQuery-CLxecNeT.js";var r=e(t(),1);function i(e){let[t,i]=(0,r.useState)(`idle`),a=(0,r.useRef)(null),o=(0,r.useRef)(e?.onResult);return o.current=e?.onResult,(0,r.useEffect)(()=>()=>{a.current&&clearTimeout(a.current)},[]),{status:t,copy:(0,r.useCallback)(async e=>{let t=await n(e);i(t?`ok`:`fail`),o.current?.(t),a.current&&clearTimeout(a.current),a.current=setTimeout(()=>i(`idle`),1500)},[])}}export{i as t};