koboyo 0.0.0-stage → 0.1.0

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 (313) hide show
  1. package/LICENSE +28 -0
  2. package/README.md +425 -2
  3. package/assets/editor/assets/BalsamiqSansNeue-Bold.cyrillic-CVBrBZhM.woff2 +0 -0
  4. package/assets/editor/assets/BalsamiqSansNeue-Bold.latin-BJb5x83P.woff2 +0 -0
  5. package/assets/editor/assets/BalsamiqSansNeue-Bold.latin-ext-Csk71cK0.woff2 +0 -0
  6. package/assets/editor/assets/BalsamiqSansNeue-BoldItalic.cyrillic-CFuY28au.woff2 +0 -0
  7. package/assets/editor/assets/BalsamiqSansNeue-BoldItalic.latin-WebofK4-.woff2 +0 -0
  8. package/assets/editor/assets/BalsamiqSansNeue-BoldItalic.latin-ext-BqWl6v1C.woff2 +0 -0
  9. package/assets/editor/assets/BalsamiqSansNeue-Italic.cyrillic-CUdF-G4x.woff2 +0 -0
  10. package/assets/editor/assets/BalsamiqSansNeue-Italic.latin-CyILDe8W.woff2 +0 -0
  11. package/assets/editor/assets/BalsamiqSansNeue-Italic.latin-ext-Bg5wvO9o.woff2 +0 -0
  12. package/assets/editor/assets/BalsamiqSansNeue-Regular.cyrillic-D4ZtnIgi.woff2 +0 -0
  13. package/assets/editor/assets/BalsamiqSansNeue-Regular.latin-3K5WlOA9.woff2 +0 -0
  14. package/assets/editor/assets/BalsamiqSansNeue-Regular.latin-ext-Y3uJNqwv.woff2 +0 -0
  15. package/assets/editor/assets/DialogDescription-ZtZCUsfy.js +1 -0
  16. package/assets/editor/assets/DialogRoot-mHGRFW9m.js +1 -0
  17. package/assets/editor/assets/DialogTitle-CFhr-gP9.js +1 -0
  18. package/assets/editor/assets/FloatingPortalLite-Bf0q6fmL.js +1 -0
  19. package/assets/editor/assets/IconAlertTriangle-CxPhYpe-.js +1 -0
  20. package/assets/editor/assets/IconArrowBackUp-Brd2WpCh.js +1 -0
  21. package/assets/editor/assets/IconArrowLeft-DFk3Krim.js +1 -0
  22. package/assets/editor/assets/IconChevronLeft-BR0iwdRI.js +1 -0
  23. package/assets/editor/assets/IconChevronRight-DBDnxPYT.js +1 -0
  24. package/assets/editor/assets/IconCode-hd05zxU4.js +1 -0
  25. package/assets/editor/assets/IconEraser-DlZQe3-r.js +1 -0
  26. package/assets/editor/assets/IconFocusCentered-C5PcDeR0.js +1 -0
  27. package/assets/editor/assets/IconHelp-DKNacRqS.js +2 -0
  28. package/assets/editor/assets/IconLoader2-BQaF1LKo.js +1 -0
  29. package/assets/editor/assets/IconMinus-y4ejub-s.js +1 -0
  30. package/assets/editor/assets/IconMoodSmile-Bic_fw54.js +1 -0
  31. package/assets/editor/assets/IconNote-C0uYQWp-.js +1 -0
  32. package/assets/editor/assets/IconPencil-C5Y-Y4dC.js +1 -0
  33. package/assets/editor/assets/IconPhoto-CR36IK-b.js +1 -0
  34. package/assets/editor/assets/IconPlayerPlayFilled-D4OODBX7.js +1 -0
  35. package/assets/editor/assets/IconPlayerStopFilled-BUbX6ZO5.js +1 -0
  36. package/assets/editor/assets/IconPlus-BbmieIBT.js +1 -0
  37. package/assets/editor/assets/IconPresentation-DCrY3PKL.js +1 -0
  38. package/assets/editor/assets/IconSearch-C1K0_Pq_.js +1 -0
  39. package/assets/editor/assets/IconSparkles-WDcg8BA9.js +1 -0
  40. package/assets/editor/assets/IconTrash-DbN_RxB7.js +1 -0
  41. package/assets/editor/assets/IconUsers-Bwnyj4mm.js +1 -0
  42. package/assets/editor/assets/IconX-AlbPkO_g.js +1 -0
  43. package/assets/editor/assets/MenuSubmenuTrigger-CpN67g09.js +1 -0
  44. package/assets/editor/assets/PopoverPopup-BqGWd_uB.js +1 -0
  45. package/assets/editor/assets/asset-glyph-B3c--Mx2.js +1 -0
  46. package/assets/editor/assets/billing-C-BNGM3Z.js +1 -0
  47. package/assets/editor/assets/blob-CTPsKWYv.js +1 -0
  48. package/assets/editor/assets/build-pips-CIaHaEPB.js +1 -0
  49. package/assets/editor/assets/build-visibility-E1mHeDCW.js +1 -0
  50. package/assets/editor/assets/builders-DbF28yId.js +1 -0
  51. package/assets/editor/assets/catalog-module-DAuqzZdT.js +1 -0
  52. package/assets/editor/assets/caveat-cyrillic-400-normal-9cDH9rLW.woff2 +0 -0
  53. package/assets/editor/assets/caveat-cyrillic-700-normal-BIyejhEL.woff2 +0 -0
  54. package/assets/editor/assets/caveat-cyrillic-ext-400-normal-3iEGd-c5.woff2 +0 -0
  55. package/assets/editor/assets/caveat-cyrillic-ext-700-normal-CrK2-ngJ.woff2 +0 -0
  56. package/assets/editor/assets/caveat-latin-400-normal-D6LQsQ_v.woff2 +0 -0
  57. package/assets/editor/assets/caveat-latin-700-normal-D8_1Nw6V.woff2 +0 -0
  58. package/assets/editor/assets/caveat-latin-ext-400-normal-D7hBUiug.woff2 +0 -0
  59. package/assets/editor/assets/caveat-latin-ext-700-normal-DFbRgDry.woff2 +0 -0
  60. package/assets/editor/assets/chart-Z4HQx-0h.js +7 -0
  61. package/assets/editor/assets/chrome-C2RCq3SI.js +1 -0
  62. package/assets/editor/assets/chrome-layout-B8YmHznO.js +1 -0
  63. package/assets/editor/assets/clipboard-CO7YHov7.js +1 -0
  64. package/assets/editor/assets/code-panel-CVIEtmj2.js +43 -0
  65. package/assets/editor/assets/command-palette-BjFnQHnz.js +1 -0
  66. package/assets/editor/assets/config-a_lz-57R.js +1 -0
  67. package/assets/editor/assets/connector-labels-vVnYQJRz.js +2 -0
  68. package/assets/editor/assets/copy-image-dialog-CCY_6fM4.js +1 -0
  69. package/assets/editor/assets/core-CBnmD9hT.js +1 -0
  70. package/assets/editor/assets/createReactComponent-9UsI5fmM.js +1 -0
  71. package/assets/editor/assets/diagram-fingerprint-CsqZK4xZ.js +3 -0
  72. package/assets/editor/assets/dialog-B32krrce.js +1 -0
  73. package/assets/editor/assets/dom-PAoZruqo.js +1 -0
  74. package/assets/editor/assets/edit-BJ_kibk8.js +1 -0
  75. package/assets/editor/assets/editable-target-BTLnvKNi.js +1 -0
  76. package/assets/editor/assets/editor-B0tARd79.js +1 -0
  77. package/assets/editor/assets/elk-api-CdZ15eos.js +1 -0
  78. package/assets/editor/assets/elk-api-DnfklSaw.js +1 -0
  79. package/assets/editor/assets/elk-in-process-absent-CzI8UVp-.js +1 -0
  80. package/assets/editor/assets/elk-worker-loader-CC-I9MmI.js +3 -0
  81. package/assets/editor/assets/elk-worker.min-SDxTC6NI.js +1 -0
  82. package/assets/editor/assets/elk-worker.min-jQXdWJy_.js +22 -0
  83. package/assets/editor/assets/excalidraw-BwgRIDi9.js +1 -0
  84. package/assets/editor/assets/export-ChP0k5F5.js +2 -0
  85. package/assets/editor/assets/export-DEFKKRRi.js +6 -0
  86. package/assets/editor/assets/export-dialog-DPg1uzX5.js +1 -0
  87. package/assets/editor/assets/export-options-CJwykdP5.js +1 -0
  88. package/assets/editor/assets/flow-layer-CGYUYmni.js +1 -0
  89. package/assets/editor/assets/flow-panel-BNLlwdYm.js +1 -0
  90. package/assets/editor/assets/flow-stage-fiF5Nggn.js +1 -0
  91. package/assets/editor/assets/flow-start-ccYJ2KB9.js +1 -0
  92. package/assets/editor/assets/flows-GGbkNqs8.js +3 -0
  93. package/assets/editor/assets/frames-CRP8oPP8.js +1 -0
  94. package/assets/editor/assets/html2canvas-P2PH8bad.js +5 -0
  95. package/assets/editor/assets/icon-catalog-CbUlEKtK.js +1 -0
  96. package/assets/editor/assets/icon-catalog-CpBWFmwP.js +1 -0
  97. package/assets/editor/assets/icon-nodes-B36Mt8N0.json +47589 -0
  98. package/assets/editor/assets/icon-picker-NboB5Fvv.js +1 -0
  99. package/assets/editor/assets/icon-sources-CZI1h18s.js +1 -0
  100. package/assets/editor/assets/icon-tags-Bw7m3Jke.js +1 -0
  101. package/assets/editor/assets/icons-DzW1j-r3.js +2 -0
  102. package/assets/editor/assets/image-library-Bb6bV6eK.js +1 -0
  103. package/assets/editor/assets/index-By5YsjJ8.js +24 -0
  104. package/assets/editor/assets/index-DGJESAlV.css +1 -0
  105. package/assets/editor/assets/index.es-CZfJEQMh.js +5 -0
  106. package/assets/editor/assets/inter-latin-400-normal-C38fXH4l.woff2 +0 -0
  107. package/assets/editor/assets/inter-latin-500-normal-Cerq10X2.woff2 +0 -0
  108. package/assets/editor/assets/inter-latin-700-normal-Yt3aPRUw.woff2 +0 -0
  109. package/assets/editor/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2 +0 -0
  110. package/assets/editor/assets/jetbrains-mono-cyrillic-700-normal-BWTpRfYl.woff2 +0 -0
  111. package/assets/editor/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2 +0 -0
  112. package/assets/editor/assets/jetbrains-mono-greek-700-normal-C6CZE3T8.woff2 +0 -0
  113. package/assets/editor/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2 +0 -0
  114. package/assets/editor/assets/jetbrains-mono-latin-700-normal-BYuf6tUa.woff2 +0 -0
  115. package/assets/editor/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2 +0 -0
  116. package/assets/editor/assets/jetbrains-mono-latin-ext-700-normal-CZipNAKV.woff2 +0 -0
  117. package/assets/editor/assets/jspdf.es.min-CxZaZThI.js +79 -0
  118. package/assets/editor/assets/jsx-runtime-2Zwg-L3c.js +1 -0
  119. package/assets/editor/assets/kalam-devanagari-400-normal-Dy6c0U2e.woff2 +0 -0
  120. package/assets/editor/assets/kalam-devanagari-700-normal-BeU_-hjz.woff2 +0 -0
  121. package/assets/editor/assets/kalam-latin-400-normal-BthBl_aR.woff2 +0 -0
  122. package/assets/editor/assets/kalam-latin-700-normal-D2H-9ISU.woff2 +0 -0
  123. package/assets/editor/assets/kalam-latin-ext-400-normal-DtcdGa4L.woff2 +0 -0
  124. package/assets/editor/assets/kalam-latin-ext-700-normal-CwgfRD_T.woff2 +0 -0
  125. package/assets/editor/assets/keys-DrjiT9FL.js +1 -0
  126. package/assets/editor/assets/layout-offthread-BwetpTFH.js +18 -0
  127. package/assets/editor/assets/layout.worker-BIE1_z0S.js +27 -0
  128. package/assets/editor/assets/lazy-module-DkWvu4va.js +1 -0
  129. package/assets/editor/assets/menu-BPrc8Ara.js +1 -0
  130. package/assets/editor/assets/nanum-pen-script-0-400-normal-C5HHoB-U.woff2 +0 -0
  131. package/assets/editor/assets/nanum-pen-script-10-400-normal-C-VQO-7-.woff2 +0 -0
  132. package/assets/editor/assets/nanum-pen-script-100-400-normal-DxNrLNO4.woff2 +0 -0
  133. package/assets/editor/assets/nanum-pen-script-101-400-normal-DEUXDl7O.woff2 +0 -0
  134. package/assets/editor/assets/nanum-pen-script-102-400-normal-BGP58LEs.woff2 +0 -0
  135. package/assets/editor/assets/nanum-pen-script-103-400-normal-C-z2Uhrp.woff2 +0 -0
  136. package/assets/editor/assets/nanum-pen-script-104-400-normal-qPnLSXnR.woff2 +0 -0
  137. package/assets/editor/assets/nanum-pen-script-105-400-normal-C1d0ZPV0.woff2 +0 -0
  138. package/assets/editor/assets/nanum-pen-script-106-400-normal-N_LNZ2PG.woff2 +0 -0
  139. package/assets/editor/assets/nanum-pen-script-107-400-normal-DrEk-jhi.woff2 +0 -0
  140. package/assets/editor/assets/nanum-pen-script-108-400-normal-CK1_GQt0.woff2 +0 -0
  141. package/assets/editor/assets/nanum-pen-script-109-400-normal-BGx35qch.woff2 +0 -0
  142. package/assets/editor/assets/nanum-pen-script-11-400-normal-CldjYC4E.woff2 +0 -0
  143. package/assets/editor/assets/nanum-pen-script-110-400-normal-Cmz4IIB0.woff2 +0 -0
  144. package/assets/editor/assets/nanum-pen-script-111-400-normal-DD1i68y4.woff2 +0 -0
  145. package/assets/editor/assets/nanum-pen-script-112-400-normal-DkS1d5Rs.woff2 +0 -0
  146. package/assets/editor/assets/nanum-pen-script-113-400-normal-CoR-t3LB.woff2 +0 -0
  147. package/assets/editor/assets/nanum-pen-script-114-400-normal-CfW-WpY-.woff2 +0 -0
  148. package/assets/editor/assets/nanum-pen-script-115-400-normal-DHqzF8d7.woff2 +0 -0
  149. package/assets/editor/assets/nanum-pen-script-116-400-normal-DFpLQ1Ow.woff2 +0 -0
  150. package/assets/editor/assets/nanum-pen-script-117-400-normal-BdVw4GMz.woff2 +0 -0
  151. package/assets/editor/assets/nanum-pen-script-118-400-normal-CD4hJjSa.woff2 +0 -0
  152. package/assets/editor/assets/nanum-pen-script-119-400-normal-BazzWNUR.woff2 +0 -0
  153. package/assets/editor/assets/nanum-pen-script-12-400-normal-CVfq18h-.woff2 +0 -0
  154. package/assets/editor/assets/nanum-pen-script-13-400-normal-2Svx1U39.woff2 +0 -0
  155. package/assets/editor/assets/nanum-pen-script-14-400-normal-DWGO8REe.woff2 +0 -0
  156. package/assets/editor/assets/nanum-pen-script-15-400-normal-BS37bEYZ.woff2 +0 -0
  157. package/assets/editor/assets/nanum-pen-script-16-400-normal-DPoWM12K.woff2 +0 -0
  158. package/assets/editor/assets/nanum-pen-script-17-400-normal-DE1Vgqsb.woff2 +0 -0
  159. package/assets/editor/assets/nanum-pen-script-18-400-normal-Bv_R79JG.woff2 +0 -0
  160. package/assets/editor/assets/nanum-pen-script-19-400-normal-CuKO8OCv.woff2 +0 -0
  161. package/assets/editor/assets/nanum-pen-script-2-400-normal-Bcz-7qrX.woff2 +0 -0
  162. package/assets/editor/assets/nanum-pen-script-20-400-normal-DL4VgeZj.woff2 +0 -0
  163. package/assets/editor/assets/nanum-pen-script-21-400-normal-CBr5wnAx.woff2 +0 -0
  164. package/assets/editor/assets/nanum-pen-script-22-400-normal-C2FSoslO.woff2 +0 -0
  165. package/assets/editor/assets/nanum-pen-script-23-400-normal-BKUW0h-M.woff2 +0 -0
  166. package/assets/editor/assets/nanum-pen-script-24-400-normal-BLKYdVvr.woff2 +0 -0
  167. package/assets/editor/assets/nanum-pen-script-25-400-normal-CVpXJ_UE.woff2 +0 -0
  168. package/assets/editor/assets/nanum-pen-script-26-400-normal-DQfaWicL.woff2 +0 -0
  169. package/assets/editor/assets/nanum-pen-script-27-400-normal-e0XMMmyW.woff2 +0 -0
  170. package/assets/editor/assets/nanum-pen-script-28-400-normal-CzygeL7n.woff2 +0 -0
  171. package/assets/editor/assets/nanum-pen-script-29-400-normal-_o7My6i2.woff2 +0 -0
  172. package/assets/editor/assets/nanum-pen-script-3-400-normal-DfMknlv_.woff2 +0 -0
  173. package/assets/editor/assets/nanum-pen-script-30-400-normal-MFa-goCm.woff2 +0 -0
  174. package/assets/editor/assets/nanum-pen-script-31-400-normal-BrUktqWN.woff2 +0 -0
  175. package/assets/editor/assets/nanum-pen-script-32-400-normal-CPKw4nqt.woff2 +0 -0
  176. package/assets/editor/assets/nanum-pen-script-33-400-normal-B7PeD1_E.woff2 +0 -0
  177. package/assets/editor/assets/nanum-pen-script-34-400-normal-Dt18kgPy.woff2 +0 -0
  178. package/assets/editor/assets/nanum-pen-script-35-400-normal-EYw-yjCK.woff2 +0 -0
  179. package/assets/editor/assets/nanum-pen-script-36-400-normal-D5fUjml8.woff2 +0 -0
  180. package/assets/editor/assets/nanum-pen-script-37-400-normal-m6uq6I1Z.woff2 +0 -0
  181. package/assets/editor/assets/nanum-pen-script-38-400-normal-B-DItVF0.woff2 +0 -0
  182. package/assets/editor/assets/nanum-pen-script-39-400-normal-BdsbeYGg.woff2 +0 -0
  183. package/assets/editor/assets/nanum-pen-script-4-400-normal-BJphNoJz.woff2 +0 -0
  184. package/assets/editor/assets/nanum-pen-script-40-400-normal-VMX0e5c2.woff2 +0 -0
  185. package/assets/editor/assets/nanum-pen-script-41-400-normal-OHgRbeMk.woff2 +0 -0
  186. package/assets/editor/assets/nanum-pen-script-42-400-normal-B5JNIfYI.woff2 +0 -0
  187. package/assets/editor/assets/nanum-pen-script-43-400-normal-y6yNRxvh.woff2 +0 -0
  188. package/assets/editor/assets/nanum-pen-script-44-400-normal-DC3r3uo6.woff2 +0 -0
  189. package/assets/editor/assets/nanum-pen-script-45-400-normal-BWcbXS4O.woff2 +0 -0
  190. package/assets/editor/assets/nanum-pen-script-46-400-normal-EBAZpXJZ.woff2 +0 -0
  191. package/assets/editor/assets/nanum-pen-script-47-400-normal-CNQOhTDn.woff2 +0 -0
  192. package/assets/editor/assets/nanum-pen-script-48-400-normal-5tGyxozt.woff2 +0 -0
  193. package/assets/editor/assets/nanum-pen-script-49-400-normal-BKISADse.woff2 +0 -0
  194. package/assets/editor/assets/nanum-pen-script-5-400-normal-CxF69eCk.woff2 +0 -0
  195. package/assets/editor/assets/nanum-pen-script-50-400-normal-DHIdN88U.woff2 +0 -0
  196. package/assets/editor/assets/nanum-pen-script-51-400-normal-CcPZaMKQ.woff2 +0 -0
  197. package/assets/editor/assets/nanum-pen-script-52-400-normal-M038lTJS.woff2 +0 -0
  198. package/assets/editor/assets/nanum-pen-script-53-400-normal-CsLYJDT0.woff2 +0 -0
  199. package/assets/editor/assets/nanum-pen-script-54-400-normal-CaoTQqtW.woff2 +0 -0
  200. package/assets/editor/assets/nanum-pen-script-55-400-normal-DU8rFuR7.woff2 +0 -0
  201. package/assets/editor/assets/nanum-pen-script-56-400-normal-DICnRDDe.woff2 +0 -0
  202. package/assets/editor/assets/nanum-pen-script-57-400-normal-6vlHy9lg.woff2 +0 -0
  203. package/assets/editor/assets/nanum-pen-script-58-400-normal-DHEMgBnk.woff2 +0 -0
  204. package/assets/editor/assets/nanum-pen-script-59-400-normal-DxYZADPu.woff2 +0 -0
  205. package/assets/editor/assets/nanum-pen-script-6-400-normal-CM3Rx1wS.woff2 +0 -0
  206. package/assets/editor/assets/nanum-pen-script-60-400-normal-722OEvr5.woff2 +0 -0
  207. package/assets/editor/assets/nanum-pen-script-61-400-normal-DT8UYUWi.woff2 +0 -0
  208. package/assets/editor/assets/nanum-pen-script-62-400-normal-joxxnSgr.woff2 +0 -0
  209. package/assets/editor/assets/nanum-pen-script-63-400-normal-Ds3Kd1pl.woff2 +0 -0
  210. package/assets/editor/assets/nanum-pen-script-64-400-normal-Y6KAShHy.woff2 +0 -0
  211. package/assets/editor/assets/nanum-pen-script-65-400-normal-DnwChVdj.woff2 +0 -0
  212. package/assets/editor/assets/nanum-pen-script-7-400-normal-3hPYidSX.woff2 +0 -0
  213. package/assets/editor/assets/nanum-pen-script-8-400-normal-DptG2zAO.woff2 +0 -0
  214. package/assets/editor/assets/nanum-pen-script-9-400-normal-tIi2MHin.woff2 +0 -0
  215. package/assets/editor/assets/nanum-pen-script-93-400-normal-HMDU0mLj.woff2 +0 -0
  216. package/assets/editor/assets/nanum-pen-script-94-400-normal-D-SUtgEh.woff2 +0 -0
  217. package/assets/editor/assets/nanum-pen-script-97-400-normal-CK3GbDb8.woff2 +0 -0
  218. package/assets/editor/assets/nanum-pen-script-99-400-normal-DHkA7RD2.woff2 +0 -0
  219. package/assets/editor/assets/nanum-pen-script-latin-400-normal-_AdqYBm1.woff2 +0 -0
  220. package/assets/editor/assets/panel-controls-DYZ7QFT5.js +1 -0
  221. package/assets/editor/assets/panel-shell-CG2aq4Ia.js +1 -0
  222. package/assets/editor/assets/plan-jQm1jDpt.js +1 -0
  223. package/assets/editor/assets/preload-helper-Czpn1I53.js +1 -0
  224. package/assets/editor/assets/presentation-BavfNtxp.js +1 -0
  225. package/assets/editor/assets/presenter-keys-DVQcBdy1.js +1 -0
  226. package/assets/editor/assets/purify.es-ZPrpXrUc.js +3 -0
  227. package/assets/editor/assets/reflow-Cv75wPSh.js +1 -0
  228. package/assets/editor/assets/registry-DCgwH8wI.js +1 -0
  229. package/assets/editor/assets/renderer-environment-DmWXvuT4.js +1 -0
  230. package/assets/editor/assets/ride-overlay-DhygYdx1.js +1 -0
  231. package/assets/editor/assets/rolldown-runtime-aKtaBQYM.js +1 -0
  232. package/assets/editor/assets/selection-overlay-primitives-hWJ1xjF7.js +1 -0
  233. package/assets/editor/assets/shantell-sans-cyrillic-ext-wght-normal-C5IA4B3w.woff2 +0 -0
  234. package/assets/editor/assets/shantell-sans-cyrillic-wght-normal-C3g4RRlc.woff2 +0 -0
  235. package/assets/editor/assets/shantell-sans-latin-ext-wght-normal-CkCuiz5d.woff2 +0 -0
  236. package/assets/editor/assets/shantell-sans-latin-wght-normal-B8jqu5lV.woff2 +0 -0
  237. package/assets/editor/assets/shantell-sans-vietnamese-wght-normal-0TYE14Fi.woff2 +0 -0
  238. package/assets/editor/assets/shape-meta-BpwsiB82.js +1 -0
  239. package/assets/editor/assets/shared-DjLCTIA9.js +1 -0
  240. package/assets/editor/assets/sign-in-dialog-DRooo5xw.js +1 -0
  241. package/assets/editor/assets/slide-notes-dialog-DLdTmd7_.js +1 -0
  242. package/assets/editor/assets/slides-D9bnXqtf.js +15 -0
  243. package/assets/editor/assets/slides-panel-DV-zQJhV.js +26 -0
  244. package/assets/editor/assets/storage-CvDRYh5V.js +1 -0
  245. package/assets/editor/assets/style-BENGW2ZV.js +1 -0
  246. package/assets/editor/assets/surface-Dke4SWpE.js +1 -0
  247. package/assets/editor/assets/text-breaks-YU-ymaF9.js +7 -0
  248. package/assets/editor/assets/theme-palette-D1nbDFBC.js +1 -0
  249. package/assets/editor/assets/tidy-browser-BwodBnAH.js +1 -0
  250. package/assets/editor/assets/tidy-scope-BgBSUklT.js +1 -0
  251. package/assets/editor/assets/tldraw-CE87oKyq.js +2 -0
  252. package/assets/editor/assets/toast-Nu_fiCd9.js +1 -0
  253. package/assets/editor/assets/tool-catalog-DOYGpvRD.js +1 -0
  254. package/assets/editor/assets/tool-drawer-GdbF-XpT.js +1 -0
  255. package/assets/editor/assets/tooltip-DgEojto1.js +1 -0
  256. package/assets/editor/assets/tree-BSe8fgqT.js +1 -0
  257. package/assets/editor/assets/typeof-B5XbjTb1.js +1 -0
  258. package/assets/editor/assets/upgrade-dialog-DpZeaLDB.js +1 -0
  259. package/assets/editor/assets/use-drag-reorder-C3h4ZMoZ.js +1 -0
  260. package/assets/editor/assets/use-export-command-CPc7qug1.js +2 -0
  261. package/assets/editor/assets/use-grid-keyboard-nav-B88Qw-cQ.js +0 -0
  262. package/assets/editor/assets/use-icon-node-DJZFjABX.js +1 -0
  263. package/assets/editor/assets/use-recent-list-BEG0iBIm.js +1 -0
  264. package/assets/editor/assets/useAnchoredPopupScrollLock-BGKchwpi.js +1 -0
  265. package/assets/editor/assets/useBaseUiId-C0Zm5sUV.js +1 -0
  266. package/assets/editor/assets/useButton-D3eS7fh5.js +1 -0
  267. package/assets/editor/assets/useControlled-C5xhvPXX.js +1 -0
  268. package/assets/editor/assets/usePositioner-DA3aR0-T.js +1 -0
  269. package/assets/editor/assets/useScrollLock-B7mQdXyv.js +1 -0
  270. package/assets/editor/assets/useValueChanged-p8z-93L4.js +1 -0
  271. package/assets/editor/index.html +96 -0
  272. package/assets/fonts/@fontsource/caveat/files/caveat-latin-400-normal.woff2 +0 -0
  273. package/assets/fonts/@fontsource/caveat/files/caveat-latin-700-normal.woff2 +0 -0
  274. package/assets/fonts/@fontsource/inter/files/inter-latin-400-normal.woff2 +0 -0
  275. package/assets/fonts/@fontsource/inter/files/inter-latin-700-normal.woff2 +0 -0
  276. package/assets/fonts/@fontsource/jetbrains-mono/files/jetbrains-mono-latin-400-italic.woff2 +0 -0
  277. package/assets/fonts/@fontsource/jetbrains-mono/files/jetbrains-mono-latin-400-normal.woff2 +0 -0
  278. package/assets/fonts/@fontsource/jetbrains-mono/files/jetbrains-mono-latin-700-normal.woff2 +0 -0
  279. package/assets/fonts/@fontsource/kalam/files/kalam-latin-400-normal.woff2 +0 -0
  280. package/assets/fonts/@fontsource/kalam/files/kalam-latin-700-normal.woff2 +0 -0
  281. package/assets/fonts/@fontsource/nanum-pen-script/files/nanum-pen-script-latin-400-normal.woff2 +0 -0
  282. package/assets/fonts/@fontsource-variable/shantell-sans/files/shantell-sans-latin-wght-italic.woff2 +0 -0
  283. package/assets/fonts/@fontsource-variable/shantell-sans/files/shantell-sans-latin-wght-normal.woff2 +0 -0
  284. package/assets/icon-sets/aws.json +1 -0
  285. package/assets/icon-sets/azure.json +1 -0
  286. package/assets/icon-sets/emoji.json +1 -0
  287. package/assets/icon-sets/gcp.json +1 -0
  288. package/assets/icon-sets/mood.json +1 -0
  289. package/assets/icon-sets/tech.json +1 -0
  290. package/dist/THIRD-PARTY-NOTICES.txt +3285 -0
  291. package/dist/koboyo.js +2304 -0
  292. package/package.json +64 -3
  293. package/skills/koboyo/SKILL.md +166 -0
  294. package/skills/koboyo/references/architecture.md +293 -0
  295. package/skills/koboyo/references/bpmn.md +143 -0
  296. package/skills/koboyo/references/chart.md +160 -0
  297. package/skills/koboyo/references/cycle.md +74 -0
  298. package/skills/koboyo/references/erd.md +436 -0
  299. package/skills/koboyo/references/flowchart.md +156 -0
  300. package/skills/koboyo/references/funnel.md +83 -0
  301. package/skills/koboyo/references/gantt.md +128 -0
  302. package/skills/koboyo/references/gitgraph.md +107 -0
  303. package/skills/koboyo/references/journey.md +99 -0
  304. package/skills/koboyo/references/matrix.md +89 -0
  305. package/skills/koboyo/references/mindmap.md +155 -0
  306. package/skills/koboyo/references/orgchart.md +110 -0
  307. package/skills/koboyo/references/pyramid.md +83 -0
  308. package/skills/koboyo/references/sankey.md +95 -0
  309. package/skills/koboyo/references/sequence.md +199 -0
  310. package/skills/koboyo/references/statemachine.md +158 -0
  311. package/skills/koboyo/references/timeline.md +94 -0
  312. package/skills/koboyo/references/venn.md +87 -0
  313. package/skills/koboyo/references/wireframe.md +197 -0
package/LICENSE ADDED
@@ -0,0 +1,28 @@
1
+ Koboyo CLI License
2
+
3
+ Copyright (c) 2026 Koboyo. All rights reserved.
4
+
5
+ This license covers the koboyo command-line tool as published to the npm
6
+ registry (the "Software"). Third-party components bundled with it are covered
7
+ by their own licenses, listed in dist/THIRD-PARTY-NOTICES.txt.
8
+
9
+ 1. Use. You may install and run the Software, free of charge, for any purpose,
10
+ personal or commercial, on any number of machines. Diagrams and other output
11
+ you create with the Software are yours, without restriction.
12
+
13
+ 2. Redistribution. You may redistribute exact, unmodified copies of the
14
+ Software, including this license and the notices file, for example as a
15
+ dependency of your own project or inside a container image.
16
+
17
+ 3. Restrictions. You may not distribute modified copies of the Software or
18
+ works derived from it, and you may not remove or alter this license or any
19
+ copyright notice.
20
+
21
+ 4. No warranty. The Software is provided "as is", without warranty of any kind,
22
+ express or implied, including the warranties of merchantability, fitness for
23
+ a particular purpose and non-infringement. In no event shall the authors or
24
+ copyright holders be liable for any claim, damages or other liability arising
25
+ from the Software or its use.
26
+
27
+ Features that use Koboyo's online services are governed by the terms of service
28
+ at https://koboyo.com.
package/README.md CHANGED
@@ -1,3 +1,426 @@
1
- # Temporary Holding Version
1
+ # koboyo
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Draw diagrams from code on your own machine. `koboyo` turns Koboyo diagram code
4
+ into SVG, PNG or HTML with the same engine as the [Koboyo](https://koboyo.com)
5
+ editor. It runs locally and needs no account.
6
+
7
+ It is made to be used by people and by coding agents (Claude Code, Codex,
8
+ Cursor and others): output is plain files, `--json` gives a machine-readable
9
+ result, and exit codes tell success from errors.
10
+
11
+ ## Install
12
+
13
+ Run it without installing:
14
+
15
+ ```sh
16
+ npx koboyo render diagram.kbd
17
+ ```
18
+
19
+ Or install it globally:
20
+
21
+ ```sh
22
+ npm install -g koboyo
23
+ ```
24
+
25
+ Node.js 20 or newer is required. Works on macOS, Linux (including Alpine) and
26
+ Windows.
27
+
28
+ ## Render a diagram
29
+
30
+ Write diagram code in a file, for example `docs/checkout.kbd`:
31
+
32
+ ```text
33
+ title: Checkout
34
+ browser [monitor] -> api [tech/nodedotjs]
35
+ api -> database [aws/rds]: save order
36
+ api -> payments: charge card
37
+ ```
38
+
39
+ Render it. The image is written next to the code:
40
+
41
+ ```sh
42
+ koboyo render docs/checkout.kbd # docs/checkout.svg
43
+ koboyo render docs/checkout.kbd --preview # also docs/checkout.preview.png
44
+ koboyo render docs/*.kbd --theme dark # one SVG per file
45
+ koboyo render docs/checkout.kbd -o checkout.png # the extension picks the format
46
+ ```
47
+
48
+ The SVG is self-contained: fonts and icons are embedded, so it displays
49
+ anywhere, including inside an `<img>` tag.
50
+
51
+ Code from stdin goes to stdout:
52
+
53
+ ```sh
54
+ echo "build -> test -> deploy" | koboyo render - > pipeline.svg
55
+ ```
56
+
57
+ Mermaid code is accepted too and converted automatically. A `.mmd` or
58
+ `.mermaid` file is always read as Mermaid:
59
+
60
+ ```sh
61
+ koboyo render flow.mmd
62
+ ```
63
+
64
+ ## Formats and themes
65
+
66
+ - `--format svg` (default), `png`, `html` or `data-url`.
67
+ - `--theme light` (default), `dark`, or `auto`. An `auto` SVG carries both
68
+ themes and follows the reader's light or dark mode in the browser. A PNG
69
+ holds one theme.
70
+ - `--format html` writes a `<figure>` to paste into a page. The diagram's title
71
+ is its accessible name, and an "Edit in Koboyo" link under it opens the code
72
+ in the editor at koboyo.com. The code travels inside the link itself; nothing
73
+ is uploaded.
74
+ - `--format data-url` prints the SVG as a `data:` URL, one per line.
75
+ - `--width <px>` sets the display width (a PNG's width in pixels),
76
+ `--padding <px>` the space around the diagram, `--transparent` drops the
77
+ background.
78
+ - `--fonts-css <path>` writes the fonts once to a CSS file instead of into every
79
+ SVG, for a page that inlines many diagrams. Link that file from the page.
80
+
81
+ ## Other commands
82
+
83
+ ```sh
84
+ koboyo check docs/*.kbd # report errors and warnings, write nothing
85
+ koboyo syntax # list the diagram kinds
86
+ koboyo syntax sequence # how to write one, and what makes it look good
87
+ koboyo icons redis "route 53" # icon names to write in the code: [tech/redis]
88
+ koboyo convert flow.mmd # Mermaid to Koboyo code: flow.kbd
89
+ ```
90
+
91
+ Run `koboyo help` to see every command, and `koboyo help <command>` for its
92
+ options and examples.
93
+
94
+ ## Warnings in the code
95
+
96
+ Problems are printed with their line, the way compilers print them:
97
+
98
+ ```text
99
+ docs/checkout.kbd:3 error unmatched }
100
+ docs/checkout.kbd:2 warning unknown icon "tech/redsi" (did you mean: tech/redis?)
101
+ docs/checkout.kbd:4 warning "database" is drawn as a shape here. For the icon, write [icon: database]
102
+ ```
103
+
104
+ An error means a line cannot be drawn, so nothing is written. A warning means
105
+ the image was written but may not look as intended.
106
+
107
+ ## Edit a diagram in the browser
108
+
109
+ ```sh
110
+ koboyo open checkout.kbd
111
+ ```
112
+
113
+ This opens the Koboyo editor in your browser, served from your own machine on a
114
+ private `127.0.0.1` address. Your edits save to `checkout.kby` (the board, the
115
+ same file koboyo.com's **Open** and **Save to file** use) and `checkout.svg` is
116
+ redrawn on every save, hand edits included.
117
+
118
+ When `checkout.kbd` changes while the editor is open (an agent rewrote it), the
119
+ drawing follows. If you have edited the drawing by hand, the editor asks
120
+ whether to keep your edits or use the new code. Open a folder
121
+ (`koboyo open docs`) to get a list of every diagram in it.
122
+
123
+ An agent can hand the drawing to a person and wait for it to come back:
124
+
125
+ ```sh
126
+ koboyo open checkout.kbd --wait --agent-name "Claude Code" --json
127
+ ```
128
+
129
+ The editor shows **Send back to Claude Code**; the person can add a short note.
130
+ The command ends when they send it, close the tab, or after `--timeout`
131
+ (default `30m`; `0` waits forever), and prints:
132
+
133
+ ```json
134
+ {
135
+ "ok": true,
136
+ "command": "open",
137
+ "status": "sent",
138
+ "file": "/work/checkout.kbd",
139
+ "board": "/work/checkout.kby",
140
+ "svg": "/work/checkout.svg",
141
+ "png": "/tmp/koboyo-x1y2z3/checkout.png",
142
+ "changed": true,
143
+ "codeInSync": false,
144
+ "changes": {
145
+ "added": ["Cache"],
146
+ "removed": [],
147
+ "renamed": [{ "from": "DB", "to": "Postgres" }],
148
+ "edges": { "added": ["API -> Cache"], "removed": [] }
149
+ },
150
+ "note": "the cache sits in front of Postgres"
151
+ }
152
+ ```
153
+
154
+ `status` is `sent`, `closed`, `timeout` or `cancelled` (Ctrl-C, exit code 130).
155
+ `codeInSync` is false when the drawing has hand edits the code file does not
156
+ describe. `png` is a picture of the board for an agent that can look at images.
157
+ Without `--json`, the result is JSON when stdout is not a terminal and a short
158
+ summary when it is.
159
+
160
+ Other options: `--port <n>` (default: any free port), `--no-browser` (print the
161
+ link only). The link works once; the page then keeps a cookie for that session.
162
+
163
+ ## Save to your Koboyo account
164
+
165
+ To share a diagram as a link, or keep working on it on koboyo.com, save it to
166
+ your Koboyo account. This needs Koboyo Pro (there is a 14-day free trial at
167
+ [koboyo.com/start](https://koboyo.com/start)); everything else in koboyo works
168
+ without an account.
169
+
170
+ ```sh
171
+ koboyo login # sign in once, in your browser
172
+ koboyo save docs/checkout.kbd # prints the link to the board
173
+ ```
174
+
175
+ The first save makes a new board. Saving the same file again updates that
176
+ board, so a link you already shared shows the latest version. In the editor,
177
+ **Save to cloud** does the same, and offers to sign you in if you have not.
178
+
179
+ - If the board was changed on koboyo.com since your last save, nothing is
180
+ overwritten: pass `--replace` to overwrite it, or `--new` to save another
181
+ board. The editor asks.
182
+ - If you can save to more than one workspace, pass `--workspace <id>` (the
183
+ command lists them). Your choice is remembered for later boards.
184
+ - `koboyo save` saves a `.kbd` file's board (the `.kby` beside it, brought up to
185
+ date with the code), or draws one from the code if there is none yet. It
186
+ writes nothing on disk.
187
+
188
+ ```sh
189
+ koboyo whoami # the account, its plan, and its workspaces
190
+ koboyo logout # sign out, here and on the Koboyo server
191
+ ```
192
+
193
+ The sign-in is kept in koboyo's config folder (`~/Library/Application
194
+ Support/koboyo` on macOS, `~/.config/koboyo` on Linux, `%APPDATA%\koboyo` on
195
+ Windows), in a file only your user can read. It is never printed. The link
196
+ between each local file and its board is kept there too, not in the `.kby`, so
197
+ a teammate who saves the same file gets a board of their own.
198
+
199
+ ## For scripts and agents
200
+
201
+ `--json` prints a single JSON object on stdout and nothing else:
202
+
203
+ ```sh
204
+ koboyo render docs/checkout.kbd --json
205
+ ```
206
+
207
+ ```json
208
+ {
209
+ "ok": true,
210
+ "command": "render",
211
+ "input": "docs/checkout.kbd",
212
+ "output": {
213
+ "path": "/work/docs/checkout.svg",
214
+ "format": "svg",
215
+ "bytes": 61234,
216
+ "width": 742,
217
+ "height": 389
218
+ },
219
+ "preview": null,
220
+ "editLink": "https://koboyo.com/code#src=…",
221
+ "title": "Checkout",
222
+ "convertedFrom": null,
223
+ "diagnostics": [],
224
+ "warnings": [],
225
+ "fontsCss": null
226
+ }
227
+ ```
228
+
229
+ - When the result goes to stdout, the image is included as `output.content`
230
+ (UTF-8, or base64 for a PNG).
231
+ - Several input files give `{ "ok", "command", "files": [...], "fontsCss" }`,
232
+ with one entry per file.
233
+ - `check` gives `files: [{ input, ok, errors, warnings, diagnostics }]`. `icons`
234
+ gives `queries: [{ query, results: [{ ref, attribute, label, source }] }]`.
235
+ - A failure has `"ok": false` and an `error: { code, message, hint }`.
236
+ - Each diagnostic is `{ line, severity, message }`, plus `suggestions` when
237
+ koboyo can guess what was meant.
238
+
239
+ Exit codes:
240
+
241
+ | Code | Meaning |
242
+ | ---- | ------------------------------------------------------------------------------------- |
243
+ | 0 | Done. Warnings may still be printed. |
244
+ | 1 | The diagram code has errors, or nothing to draw. No image is written. |
245
+ | 2 | Wrong command line: unknown command or option, missing file. |
246
+ | 3 | Could not finish: a file could not be written, PNG output unavailable, not signed in. |
247
+ | 130 | `koboyo open --wait` was interrupted (Ctrl-C) before the person finished. |
248
+
249
+ ## Set up your coding agent
250
+
251
+ ```sh
252
+ npx koboyo setup
253
+ ```
254
+
255
+ This finds the coding agents on your machine (Claude Code, Codex, Cursor, VS
256
+ Code and Windsurf) and sets up each one:
257
+
258
+ - It installs the koboyo **skill**: when to draw, how to write each diagram
259
+ kind, how to render and check the picture, and how to hand a diagram to you
260
+ for edits.
261
+ - It adds the local **MCP server** (`koboyo mcp`, below), using the agent's own
262
+ command where it has one (`claude mcp add`, `codex mcp add`,
263
+ `code --add-mcp`).
264
+
265
+ It shows what it will change and asks before changing anything. Run it again
266
+ after upgrading koboyo to update the skill.
267
+
268
+ | Agent | Skill | MCP server |
269
+ | ----------- | ----------------------------------- | ------------------------------------- |
270
+ | Claude Code | `~/.claude/skills/koboyo` | `claude mcp add --scope user` |
271
+ | Codex | `~/.agents/skills/koboyo` | `codex mcp add` |
272
+ | Cursor | `~/.agents/skills/koboyo` | `~/.cursor/mcp.json` |
273
+ | VS Code | `~/.copilot/skills/koboyo` | `code --add-mcp` |
274
+ | Windsurf | `~/.codeium/windsurf/skills/koboyo` | `~/.codeium/windsurf/mcp_config.json` |
275
+
276
+ Options:
277
+
278
+ - `--dry-run` shows the plan and changes nothing. `--yes` skips the question,
279
+ for scripts and agents.
280
+ - `--agent claude-code,cursor` sets up only those agents, even ones it did not
281
+ find.
282
+ - `--project` sets up the folder you are in instead, so your team gets it
283
+ through the repository: `.claude/skills` and `.mcp.json` for Claude Code,
284
+ `.agents/skills` and `.cursor/mcp.json` for Cursor, `.github/skills` and
285
+ `.vscode/mcp.json` for VS Code.
286
+ - `--print` prints a section to paste into `AGENTS.md`, for an agent that does
287
+ not load skills: `npx koboyo setup --print >> AGENTS.md`.
288
+
289
+ A config file is copied to `<file>.koboyo-backup` before it is changed. A
290
+ config file with comments in it is left alone, and the entry to add is printed
291
+ instead. A skill folder or a `koboyo` server entry that koboyo did not write is
292
+ kept unless you pass `--force`.
293
+
294
+ The skill also ships inside the package, in `skills/koboyo/`, if you would
295
+ rather copy it yourself.
296
+
297
+ ## Use it from your coding agent (MCP)
298
+
299
+ `koboyo mcp` runs a local [MCP](https://modelcontextprotocol.io) server over
300
+ stdio, so an agent can write diagram code, look at the picture, and save the
301
+ image into your project. It is free, needs no account or key, and runs on your
302
+ machine.
303
+
304
+ **Claude Code**
305
+
306
+ ```sh
307
+ claude mcp add koboyo -- npx -y koboyo mcp
308
+ ```
309
+
310
+ Add `--scope project` to share it with your team through `.mcp.json`.
311
+
312
+ **Codex**
313
+
314
+ ```sh
315
+ codex mcp add koboyo -- npx -y koboyo mcp
316
+ ```
317
+
318
+ Or in `~/.codex/config.toml`:
319
+
320
+ ```toml
321
+ [mcp_servers.koboyo]
322
+ command = "npx"
323
+ args = ["-y", "koboyo", "mcp"]
324
+ ```
325
+
326
+ **Cursor** – `.cursor/mcp.json` in your project:
327
+
328
+ ```json
329
+ {
330
+ "mcpServers": {
331
+ "koboyo": {
332
+ "command": "npx",
333
+ "args": ["-y", "koboyo", "mcp", "--root", "${workspaceFolder}"]
334
+ }
335
+ }
336
+ }
337
+ ```
338
+
339
+ **VS Code** – `.vscode/mcp.json` in your project:
340
+
341
+ ```json
342
+ {
343
+ "servers": {
344
+ "koboyo": {
345
+ "type": "stdio",
346
+ "command": "npx",
347
+ "args": ["-y", "koboyo", "mcp", "--root", "${workspaceFolder}"]
348
+ }
349
+ }
350
+ }
351
+ ```
352
+
353
+ **Windsurf** – `~/.codeium/windsurf/mcp_config.json`, with the path to your
354
+ project:
355
+
356
+ ```json
357
+ {
358
+ "mcpServers": {
359
+ "koboyo": {
360
+ "command": "npx",
361
+ "args": ["-y", "koboyo", "mcp", "--root", "/path/to/your/project"]
362
+ }
363
+ }
364
+ }
365
+ ```
366
+
367
+ On Windows, if the client cannot start `npx`, use `"command": "cmd"` and put
368
+ `"/c", "npx"` at the start of `args`.
369
+
370
+ The server reads diagram files from, and writes images into, one folder: the
371
+ one it was started in, or `--root`. It refuses any path outside that folder,
372
+ including through a symlink. If it was started in your home folder or at the
373
+ root of the disk without `--root`, it writes nothing and asks for `--root`.
374
+
375
+ Tools:
376
+
377
+ | Tool | What it does |
378
+ | ----------------- | ------------------------------------------------------------------------- |
379
+ | `get_syntax` | The syntax sheet and style guide for one diagram kind. |
380
+ | `preview_diagram` | Renders code and returns the PNG, without writing anything. |
381
+ | `render_diagram` | Writes an SVG, PNG or HTML file into the project and returns the picture. |
382
+ | `check_diagram` | Lists errors and warnings by line, without drawing. |
383
+ | `find_icon` | Exact icon refs (`tech:redis`, `aws:lambda`) for many concepts at once. |
384
+ | `open_editor` | Opens a diagram in the Koboyo editor in your browser, with a message. |
385
+ | `wait_for_edits` | Returns what you changed once you press Send back, with a picture. |
386
+ | `read_drawing` | Describes a diagram's board as it stands, with a picture. |
387
+
388
+ With `open_editor` and `wait_for_edits`, an agent can hand you a diagram to fix
389
+ by hand and pick up your changes, the same round trip as `koboyo open --wait`.
390
+ The editor names the agent ("Send back to Claude Code") and shows its message.
391
+ `wait_for_edits` answers after 50 seconds at most, because most clients stop a
392
+ tool call after a minute; if you are still editing it says so, and the agent
393
+ calls it again. The editor stays open between calls.
394
+
395
+ The server also lists a few tools of the hosted Koboyo server, such as
396
+ `create_diagram`, which saves a diagram to a Koboyo board with live embed links.
397
+ Those need a Koboyo Pro account; called locally, they explain how to set that
398
+ up.
399
+
400
+ ## Icons and the network
401
+
402
+ The Lucide icons, the fonts and the names of every brand and cloud icon ship
403
+ inside the package, so `koboyo icons` and the icon warnings work offline. The
404
+ brand and cloud icon drawings (`tech/`, `aws/`, `gcp/`, `azure/`, emoji) are
405
+ downloaded from koboyo.com the first time a diagram uses them and cached on
406
+ disk, so later renders work offline. If an icon cannot be downloaded, the image
407
+ is still written and a warning says which icon is missing. Nothing else is sent
408
+ anywhere, except by `koboyo login`, `koboyo save` and Save to cloud, which talk
409
+ to koboyo.com when you run them.
410
+
411
+ Environment variables:
412
+
413
+ - `KOBOYO_CACHE_DIR` – where downloaded icons are kept (defaults to your
414
+ system's cache folder).
415
+ - `KOBOYO_OFFLINE=1` – never download; use only cached icons.
416
+ - `KOBOYO_CONFIG_DIR` – where the sign-in is kept (defaults to your system's
417
+ config folder).
418
+ - `KOBOYO_API_ORIGIN` – the Koboyo server to sign in to and save to, like
419
+ `--api-origin` (defaults to `https://api.koboyo.com`).
420
+ - `BROWSER=none` – never open a browser (`koboyo open`, `koboyo login` and the
421
+ MCP server's `open_editor` print the link instead).
422
+ - `NO_COLOR=1` – turn off colored output.
423
+
424
+ ## License
425
+
426
+ Free to use for personal and commercial work. See [LICENSE](./LICENSE).
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t}from"./jsx-runtime-2Zwg-L3c.js";import{ht as n}from"./useScrollLock-B7mQdXyv.js";import{t as r}from"./useBaseUiId-C0Zm5sUV.js";import{o as i}from"./DialogRoot-mHGRFW9m.js";var a=e(t(),1).forwardRef(function(e,t){let{render:a,className:o,style:s,id:c,...l}=e,{store:u}=i(),d=r(c);return u.useSyncedValueWithCleanup(`descriptionElementId`,d),n(`p`,e,{ref:t,props:[{id:d},l]})});export{a as t};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,t as n}from"./jsx-runtime-2Zwg-L3c.js";import{A as r,An as i,C as a,Cn as o,Gt as s,R as c,S as l,Tn as u,U as d,Wt as f,Y as p,_ as m,b as h,d as g,dt as _,f as v,g as y,ht as b,i as x,j as S,jn as C,k as w,l as T,mt as E,n as D,o as O,p as k,pt as A,r as j,t as M,u as N,v as P,x as F}from"./useScrollLock-B7mQdXyv.js";var I=n(),L=e(t(),1);function R(e){let{store:t,actionsRef:n}=e,r=t.useState(`open`);l(t,r),P(t);let{forceUnmount:i}=h(r,t),a=L.useCallback(()=>{t.setOpen(!1,d(p))},[t]);L.useImperativeHandle(n,()=>({unmount:i,close:a}),[i,a])}function z({store:e,parentContext:t,isDrawer:n}){let i=e.useState(`open`),a=e.useState(`disablePointerDismissal`),o=e.useState(`modal`),c=e.useState(`popupElement`),l=e.useState(`floatingRootContext`),[d,p]=L.useState(0),[m,h]=L.useState(0),g=d===0,_=r(l,{outsidePressEvent(){return e.context.internalBackdropRef.current||e.context.backdropRef.current?`intentional`:{mouse:o===`trap-focus`?`sloppy`:`intentional`,touch:`sloppy`}},outsidePress(t){if(!e.context.outsidePressEnabledRef.current||`button`in t&&t.button!==0||`touches`in t&&t.touches.length!==1)return!1;let n=s(t);return g&&!a?o&&(e.context.internalBackdropRef.current||e.context.backdropRef.current)?e.context.internalBackdropRef.current===n||e.context.backdropRef.current===n||f(n,c)&&!n?.hasAttribute(`data-base-ui-portal`):!0:!1},escapeKey:g});return M(i&&o===!0,c),e.useContextCallback(`onNestedDialogOpen`,(e,t)=>{p(e),h(t)}),e.useContextCallback(`onNestedDialogClose`,()=>{p(0),h(0)}),L.useEffect(()=>(t?.onNestedDialogOpen&&i&&t.onNestedDialogOpen(d+1,m+ +!!n),t?.onNestedDialogClose&&!i&&t.onNestedDialogClose(),()=>{t?.onNestedDialogClose&&i&&t.onNestedDialogClose()}),[n,i,d,m,t]),F(e,{activeTriggerProps:_.reference??u,inactiveTriggerProps:_.trigger??u,popupProps:_.floating??u,nestedOpenDialogCount:d,nestedOpenDrawerCount:m}),null}var B=L.createContext(!1),V=L.createContext(void 0);function H(e){let t=L.useContext(V);if(e===!1&&t===void 0)throw Error(C(27));return t}var U={...g,modal:i(e=>e.modal),nested:i(e=>e.nested),nestedOpenDialogCount:i(e=>e.nestedOpenDialogCount),nestedOpenDrawerCount:i(e=>e.nestedOpenDrawerCount),disablePointerDismissal:i(e=>e.disablePointerDismissal),openMethod:i(e=>e.openMethod),descriptionElementId:i(e=>e.descriptionElementId),titleElementId:i(e=>e.titleElementId),viewportElement:i(e=>e.viewportElement),role:i(e=>e.role)},W=class e extends o{constructor(e,t,n=!1){let r=new v,i=G(e);i.floatingRootContext=N(r,t,n),super(i,{popupRef:L.createRef(),backdropRef:L.createRef(),internalBackdropRef:L.createRef(),outsidePressEnabledRef:{current:!0},triggerElements:r,onOpenChange:void 0,onOpenChangeComplete:void 0},U)}setOpen=(e,t)=>{if(t.preventUnmountOnClose=()=>{this.set(`preventUnmountingOnClose`,!0)},!e&&t.trigger==null&&this.state.activeTriggerId!=null&&(t.trigger=this.state.activeTriggerElement??void 0),this.context.onOpenChange?.(e,t),t.isCanceled)return;this.state.floatingRootContext.dispatchOpenChange(e,t);let n={open:e};m(n,e,t.trigger),this.update(n)};static useStore(t,n){return a(t,(t,r)=>new e(n,t,r),!0).store}};function G(e={}){return{...T(),modal:!0,disablePointerDismissal:!1,popupElement:null,viewportElement:null,descriptionElementId:void 0,titleElementId:void 0,openMethod:null,nested:!1,nestedOpenDialogCount:0,nestedOpenDrawerCount:0,role:`dialog`,...e}}function K(e,t=`dialog`){let{children:n,open:r,defaultOpen:i=!1,onOpenChange:a,onOpenChangeComplete:o,disablePointerDismissal:s=!1,modal:c=!0,actionsRef:l,handle:u,triggerId:d,defaultTriggerId:f=null}=e,p=t===`drawer`,m=t===`alert-dialog`,h=m?!0:c,g=m||s,_=m?`alertdialog`:`dialog`,v=H(!0),y={modal:h,disablePointerDismissal:g,nested:!!v,role:_},b=W.useStore(u?.store,{open:i,openProp:r,activeTriggerId:f,triggerIdProp:d,...y});w(()=>{let e=r===void 0&&b.state.open===!1&&i===!0?{open:!0,activeTriggerId:f}:null;m?b.update(e?{...y,...e}:y):e&&b.update(e)}),b.useControlledProp(`openProp`,r),b.useControlledProp(`triggerIdProp`,d),b.useSyncedValues(y),b.useContextCallback(`onOpenChange`,a),b.useContextCallback(`onOpenChangeComplete`,o);let x=b.useState(`open`),S=b.useState(`mounted`),C=b.useState(`payload`);R({store:b,actionsRef:l});let T=x||S,E=L.useMemo(()=>({store:b}),[b]);return(0,I.jsx)(B.Provider,{value:!1,children:(0,I.jsxs)(V.Provider,{value:E,children:[T&&(0,I.jsx)(z,{store:b,parentContext:v?.store.context,isDrawer:p}),typeof n==`function`?n({payload:C}):n]})})}var q={...O,...A},J=L.forwardRef(function(e,t){let{render:n,className:r,style:i,forceRender:a=!1,...o}=e,{store:s}=H(),c=s.useState(`open`),l=s.useState(`nested`),u=s.useState(`mounted`);return b(`div`,e,{state:{open:c,transitionStatus:s.useState(`transitionStatus`)},ref:[s.context.backdropRef,t],stateAttributesMapping:q,props:[{role:`presentation`,hidden:!u,style:{userSelect:`none`,WebkitUserSelect:`none`}},o],enabled:a||!l})}),Y=function(e){return e.nestedDialogs=`--nested-dialogs`,e}({}),X=function(e){return e[e.open=x.open]=`open`,e[e.closed=x.closed]=`closed`,e[e.startingStyle=x.startingStyle]=`startingStyle`,e[e.endingStyle=x.endingStyle]=`endingStyle`,e.nested=`data-nested`,e.nestedDialogOpen=`data-nested-dialog-open`,e}({}),Z=L.createContext(void 0);function Q(){let e=L.useContext(Z);if(e===void 0)throw Error(C(26));return e}var $={...O,...A,nestedDialogOpen(e){return e?{[X.nestedDialogOpen]:``}:null}},ee=L.forwardRef(function(e,t){let{render:n,className:r,style:i,finalFocus:a,initialFocus:o,...s}=e,{store:c}=H(),l=c.useState(`descriptionElementId`),u=c.useState(`disablePointerDismissal`),d=c.useState(`floatingRootContext`),f=c.useState(`popupProps`),p=c.useState(`modal`),m=c.useState(`mounted`),h=c.useState(`nested`),g=c.useState(`nestedOpenDialogCount`),v=c.useState(`open`),x=c.useState(`openMethod`),C=c.useState(`titleElementId`),w=c.useState(`transitionStatus`),T=c.useState(`role`),E=d.useState(`floatingId`),D=s.id??E;Q(),_({open:v,ref:c.context.popupRef,onComplete(){v&&c.context.onOpenChangeComplete?.(!0)}});let O=o===void 0?y(c.context.popupRef):o,A=g>0,M=c.useStateSetter(`popupElement`),N=b(`div`,e,{state:{open:v,nested:h,transitionStatus:w,nestedDialogOpen:A},props:[f,{id:D,"aria-labelledby":C??void 0,"aria-describedby":l??void 0,role:T,...k,hidden:!m,onKeyDown(e){j.has(e.key)&&e.stopPropagation()},style:{[Y.nestedDialogs]:g}},s],ref:[t,c.context.popupRef,M],stateAttributesMapping:$});return(0,I.jsx)(S,{context:d,openInteractionType:x,disabled:!m,closeOnFocusOut:!u,initialFocus:O,returnFocus:a,modal:p!==!1,restoreFocus:`popup`,children:N})}),te=L.forwardRef(function(e,t){let{keepMounted:n=!1,...r}=e,{store:i}=H(),a=i.useState(`mounted`),o=i.useState(`modal`),s=i.useState(`open`);return a||n?(0,I.jsx)(Z.Provider,{value:n,children:(0,I.jsxs)(c,{ref:t,...r,children:[a&&o===!0&&(0,I.jsx)(D,{ref:i.context.internalBackdropRef,inert:E(!s)}),e.children]})}):null});function ne(e){return K(e,L.useContext(B)?`drawer`:`dialog`)}export{K as a,J as i,te as n,H as o,ee as r,ne as t};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t}from"./jsx-runtime-2Zwg-L3c.js";import{G as n,U as r,ht as i}from"./useScrollLock-B7mQdXyv.js";import{t as a}from"./useButton-D3eS7fh5.js";import{t as o}from"./useBaseUiId-C0Zm5sUV.js";import{o as s}from"./DialogRoot-mHGRFW9m.js";var c=e(t(),1),l=c.forwardRef(function(e,t){let{render:o,className:c,style:l,disabled:u=!1,nativeButton:d=!0,...f}=e,{store:p}=s(),m=p.useState(`open`),{getButtonProps:h,buttonRef:g}=a({disabled:u,native:d}),_={disabled:u};function v(e){m&&p.setOpen(!1,r(n,e.nativeEvent))}return i(`button`,e,{state:_,ref:[t,g],props:[{onClick:v},f,h]})}),u=c.forwardRef(function(e,t){let{render:n,className:r,style:a,id:c,...l}=e,{store:u}=s(),d=o(c);return u.useSyncedValueWithCleanup(`titleElementId`,d),i(`h2`,e,{ref:t,props:[{id:d},l]})});export{l as n,u as t};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,t as n}from"./jsx-runtime-2Zwg-L3c.js";import{Fn as r,z as i}from"./useScrollLock-B7mQdXyv.js";var a=e(t(),1),o=e(r(),1),s=n(),c=a.forwardRef(function(e,t){let{children:n,container:r,className:c,render:l,style:u,...d}=e,{portalNode:f,portalSubtree:p}=i({container:r,ref:t,componentProps:e,elementProps:d});return!p&&!f?null:(0,s.jsxs)(a.Fragment,{children:[p,f&&o.createPortal(n,f)]})});export{c as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./createReactComponent-9UsI5fmM.js";var t=e(`outline`,`alert-triangle`,`AlertTriangle`,[[`path`,{d:`M12 9v4`,key:`svg-0`}],[`path`,{d:`M10.363 3.591l-8.106 13.534a1.914 1.914 0 0 0 1.636 2.871h16.214a1.914 1.914 0 0 0 1.636 -2.87l-8.106 -13.536a1.914 1.914 0 0 0 -3.274 0`,key:`svg-1`}],[`path`,{d:`M12 16h.01`,key:`svg-2`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t}from"./jsx-runtime-2Zwg-L3c.js";import{_ as n}from"./selection-overlay-primitives-hWJ1xjF7.js";import{t as r}from"./editable-target-BTLnvKNi.js";import{t as i}from"./createReactComponent-9UsI5fmM.js";var a=e(t(),1),o=`button, a[href], summary, [role="button"], [role="link"], [role="menuitem"], [role="menuitemcheckbox"], [role="menuitemradio"], [role="tab"], [role="option"], [role="checkbox"], [role="switch"], [role="radio"]`;function s(e){return e instanceof Element&&e.closest(o)!==null}function c(e,t={}){let{preventDefault:i=!1}=t,[o,c]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{function t(t){t.code===e&&(r(t.target)||s(t.target)||(i&&t.preventDefault(),c(!0)))}function a(t){t.code!==e&&t.key!==`Meta`||c(!1)}window.addEventListener(`keydown`,t),window.addEventListener(`keyup`,a);let o=n(()=>c(!1));return()=>{window.removeEventListener(`keydown`,t),window.removeEventListener(`keyup`,a),o()}},[e,i]),o}var l=i(`outline`,`arrow-back-up`,`ArrowBackUp`,[[`path`,{d:`M9 14l-4 -4l4 -4`,key:`svg-0`}],[`path`,{d:`M5 10h11a4 4 0 1 1 0 8h-1`,key:`svg-1`}]]);export{s as n,c as r,l as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./createReactComponent-9UsI5fmM.js";var t=e(`outline`,`arrow-left`,`ArrowLeft`,[[`path`,{d:`M5 12l14 0`,key:`svg-0`}],[`path`,{d:`M5 12l6 6`,key:`svg-1`}],[`path`,{d:`M5 12l6 -6`,key:`svg-2`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./createReactComponent-9UsI5fmM.js";var t=e(`outline`,`chevron-left`,`ChevronLeft`,[[`path`,{d:`M15 6l-6 6l6 6`,key:`svg-0`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./createReactComponent-9UsI5fmM.js";var t=e(`outline`,`chevron-right`,`ChevronRight`,[[`path`,{d:`M9 6l6 6l-6 6`,key:`svg-0`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./createReactComponent-9UsI5fmM.js";var t=e(`outline`,`code`,`Code`,[[`path`,{d:`M7 8l-4 4l4 4`,key:`svg-0`}],[`path`,{d:`M17 8l4 4l-4 4`,key:`svg-1`}],[`path`,{d:`M14 4l-4 16`,key:`svg-2`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./createReactComponent-9UsI5fmM.js";var t=e(`outline`,`eraser`,`Eraser`,[[`path`,{d:`M19 20h-10.5l-4.21 -4.3a1 1 0 0 1 0 -1.41l10 -10a1 1 0 0 1 1.41 0l5 5a1 1 0 0 1 0 1.41l-9.2 9.3`,key:`svg-0`}],[`path`,{d:`M18 13.3l-6.3 -6.3`,key:`svg-1`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./createReactComponent-9UsI5fmM.js";var t=e(`outline`,`focus-centered`,`FocusCentered`,[[`path`,{d:`M11 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0`,key:`svg-0`}],[`path`,{d:`M4 8v-2a2 2 0 0 1 2 -2h2`,key:`svg-1`}],[`path`,{d:`M4 16v2a2 2 0 0 0 2 2h2`,key:`svg-2`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v2`,key:`svg-3`}],[`path`,{d:`M16 20h2a2 2 0 0 0 2 -2v-2`,key:`svg-4`}]]);export{t};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ride-overlay-DhygYdx1.js","assets/rolldown-runtime-aKtaBQYM.js","assets/jsx-runtime-2Zwg-L3c.js","assets/editor-B0tARd79.js","assets/reflow-Cv75wPSh.js","assets/style-BENGW2ZV.js","assets/slides-D9bnXqtf.js","assets/renderer-environment-DmWXvuT4.js","assets/editable-target-BTLnvKNi.js","assets/createReactComponent-9UsI5fmM.js","assets/IconTrash-DbN_RxB7.js","assets/IconArrowLeft-DFk3Krim.js","assets/IconPlayerStopFilled-BUbX6ZO5.js","assets/IconEraser-DlZQe3-r.js","assets/IconFocusCentered-C5PcDeR0.js","assets/IconPencil-C5Y-Y4dC.js","assets/IconX-AlbPkO_g.js","assets/IconPlayerPlayFilled-D4OODBX7.js","assets/storage-CvDRYh5V.js","assets/chrome-C2RCq3SI.js","assets/DialogRoot-mHGRFW9m.js","assets/useScrollLock-B7mQdXyv.js","assets/DialogTitle-CFhr-gP9.js","assets/useButton-D3eS7fh5.js","assets/useBaseUiId-C0Zm5sUV.js","assets/DialogDescription-ZtZCUsfy.js","assets/connector-labels-vVnYQJRz.js"])))=>i.map(i=>d[i]);
2
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,t as n}from"./jsx-runtime-2Zwg-L3c.js";import{o as r}from"./editor-B0tARd79.js";import{t as i}from"./preload-helper-Czpn1I53.js";import{i as a,n as o,r as s,t as c}from"./lazy-module-DkWvu4va.js";import{t as l}from"./createReactComponent-9UsI5fmM.js";var u=e(t(),1),d={status:`idle`};function f(e,t){switch(t.type){case`activate`:case`retry`:return e.status===`failed`?{status:`idle`}:e;case`load-start`:return e.status===`idle`?{status:`loading`}:e;case`load-resolve`:return e.status===`loading`?{status:`ready`}:e;case`load-reject`:return e.status===`loading`?{status:`failed`}:e;case`load-stale`:return e.status===`loading`||e.status===`failed`?{status:`stale`}:e}}function p(e,t){return t&&e.status===`idle`}function m(e,t,n){return e.status===`ready`?t||n:!1}function h(e,t){return t&&e.status===`loading`}function g(e,t){return t&&e.status===`failed`}function _(e,t){return t&&e.status===`stale`}var v=n(),y=`absolute left-1/2 top-[var(--chrome-top)] -translate-x-1/2 coarse:top-[calc(4.5rem+var(--koboyo-host-inset-top))]`;function b(e){let{children:t}=e;return(0,v.jsx)(`div`,{className:`pointer-events-none flex flex-col items-center gap-2 ${y}`,children:t})}function x(e){let{testId:t,tone:n,children:r,action:i}=e;return(0,v.jsxs)(`div`,{role:n===`error`?`alert`:`status`,"data-testid":t,"data-overlay":!0,className:`z-10 flex min-h-8 max-w-[min(24rem,calc(100vw-9rem))] items-center gap-2 rounded-xl bg-[var(--chrome-popup)] px-3 py-1.5 text-[12px] leading-snug text-[var(--chrome-fg-600)] shadow-md ring-1 ring-[var(--chrome-ring)] ${y}`,children:[(0,v.jsx)(`span`,{className:`min-w-0`,children:r}),i?(0,v.jsx)(`button`,{type:`button`,"data-testid":i.testId,onClick:i.onClick,className:`flex h-6 shrink-0 cursor-pointer items-center rounded-lg px-2 text-[var(--chrome-fg-500)] transition-colors hover:bg-[var(--chrome-hover)] hover:text-[var(--chrome-fg-900)]`,children:i.label}):null]})}function S(e){o(e.load)}function C(e){let{active:t,retain:n=!1,feature:r,fallback:i,children:o}=e,[l,y]=(0,u.useReducer)(f,d),b=(0,u.useRef)(!1);(0,u.useEffect)(()=>{t&&!b.current&&y({type:`activate`}),b.current=t},[t]);let S=(0,u.useRef)(!0);(0,u.useEffect)(()=>(S.current=!0,()=>{S.current=!1}),[]);let C=(0,u.useRef)(0),w=p(l,t);if((0,u.useEffect)(()=>{w&&(y({type:`load-start`}),s(r.load).then(()=>{S.current&&y({type:`load-resolve`})},e=>{C.current+=1,S.current&&y({type:`load-reject`}),c(e).then(e=>{e&&S.current&&y({type:`load-stale`})})}))},[w,r]),m(l,t,n)){let e=a(r.load);return e===void 0?null:(0,v.jsx)(v.Fragment,{children:o(r.pick(e))})}return h(l,t)?(0,v.jsx)(v.Fragment,{children:i??null}):_(l,t)?(0,v.jsx)(x,{testId:`lazy-feature-stale`,tone:`error`,action:{label:`Reload`,testId:`lazy-feature-reload`,onClick:()=>window.location.reload()},children:`New version available`}):g(l,t)?(0,v.jsx)(x,{testId:`lazy-feature-error`,tone:`error`,action:{label:`Retry`,testId:`lazy-feature-retry`,onClick:()=>{if(C.current>=2){window.location.reload();return}y({type:`retry`})}},children:`Couldn't load this panel`}):null}var w={load:()=>i(()=>import(`./ride-overlay-DhygYdx1.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26])),pick:e=>e.RideOverlay},T={at:null};function E(){let e=r(e=>e.rideMode),t=r(e=>e.presentingIndex!==null);return(0,u.useEffect)(()=>{let e=e=>{T.at={x:e.clientX,y:e.clientY}};return window.addEventListener(`pointermove`,e,{passive:!0}),()=>window.removeEventListener(`pointermove`,e)},[]),(0,v.jsx)(C,{active:e&&!t,feature:w,children:e=>(0,v.jsx)(e,{})})}var D=l(`outline`,`help`,`Help`,[[`path`,{d:`M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0`,key:`svg-0`}],[`path`,{d:`M12 17l0 .01`,key:`svg-1`}],[`path`,{d:`M12 13.5a1.5 1.5 0 0 1 1 -1.5a2.6 2.6 0 1 0 -3 -4`,key:`svg-2`}]]);export{S as a,b as c,C as i,E as n,x as o,T as r,y as s,D as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./createReactComponent-9UsI5fmM.js";var t=e(`outline`,`loader-2`,`Loader2`,[[`path`,{d:`M12 3a9 9 0 1 0 9 9`,key:`svg-0`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./createReactComponent-9UsI5fmM.js";var t=e(`outline`,`minus`,`Minus`,[[`path`,{d:`M5 12l14 0`,key:`svg-0`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./createReactComponent-9UsI5fmM.js";var t=e(`outline`,`mood-smile`,`MoodSmile`,[[`path`,{d:`M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0`,key:`svg-0`}],[`path`,{d:`M9 10l.01 0`,key:`svg-1`}],[`path`,{d:`M15 10l.01 0`,key:`svg-2`}],[`path`,{d:`M9.5 15a3.5 3.5 0 0 0 5 0`,key:`svg-3`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./createReactComponent-9UsI5fmM.js";var t=e(`outline`,`note`,`Note`,[[`path`,{d:`M13 20l7 -7`,key:`svg-0`}],[`path`,{d:`M13 20v-6a1 1 0 0 1 1 -1h6v-7a2 2 0 0 0 -2 -2h-12a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h7`,key:`svg-1`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./createReactComponent-9UsI5fmM.js";var t=e(`outline`,`pencil`,`Pencil`,[[`path`,{d:`M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4`,key:`svg-0`}],[`path`,{d:`M13.5 6.5l4 4`,key:`svg-1`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./createReactComponent-9UsI5fmM.js";var t=e(`outline`,`photo`,`Photo`,[[`path`,{d:`M15 8h.01`,key:`svg-0`}],[`path`,{d:`M3 6a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v12a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3v-12`,key:`svg-1`}],[`path`,{d:`M3 16l5 -5c.928 -.893 2.072 -.893 3 0l5 5`,key:`svg-2`}],[`path`,{d:`M14 14l1 -1c.928 -.893 2.072 -.893 3 0l3 3`,key:`svg-3`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./createReactComponent-9UsI5fmM.js";var t=e(`filled`,`player-play-filled`,`PlayerPlayFilled`,[[`path`,{d:`M6 4v16a1 1 0 0 0 1.524 .852l13 -8a1 1 0 0 0 0 -1.704l-13 -8a1 1 0 0 0 -1.524 .852z`,key:`svg-0`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./createReactComponent-9UsI5fmM.js";var t=e(`outline`,`arrow-right`,`ArrowRight`,[[`path`,{d:`M5 12l14 0`,key:`svg-0`}],[`path`,{d:`M13 18l6 -6`,key:`svg-1`}],[`path`,{d:`M13 6l6 6`,key:`svg-2`}]]),n=e(`filled`,`player-stop-filled`,`PlayerStopFilled`,[[`path`,{d:`M17 4h-10a3 3 0 0 0 -3 3v10a3 3 0 0 0 3 3h10a3 3 0 0 0 3 -3v-10a3 3 0 0 0 -3 -3z`,key:`svg-0`}]]);export{t as n,n as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./createReactComponent-9UsI5fmM.js";var t=e(`outline`,`plus`,`Plus`,[[`path`,{d:`M12 5l0 14`,key:`svg-0`}],[`path`,{d:`M5 12l14 0`,key:`svg-1`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./createReactComponent-9UsI5fmM.js";var t=e(`outline`,`arrow-up-right`,`ArrowUpRight`,[[`path`,{d:`M17 7l-10 10`,key:`svg-0`}],[`path`,{d:`M8 7l9 0l0 9`,key:`svg-1`}]]),n=e(`outline`,`device-floppy`,`DeviceFloppy`,[[`path`,{d:`M6 4h10l4 4v10a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2`,key:`svg-0`}],[`path`,{d:`M10 14a2 2 0 1 0 4 0a2 2 0 1 0 -4 0`,key:`svg-1`}],[`path`,{d:`M14 4l0 4l-6 0l0 -4`,key:`svg-2`}]]),r=e(`outline`,`presentation`,`Presentation`,[[`path`,{d:`M3 4l18 0`,key:`svg-0`}],[`path`,{d:`M4 4v10a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-10`,key:`svg-1`}],[`path`,{d:`M12 16l0 4`,key:`svg-2`}],[`path`,{d:`M9 20l6 0`,key:`svg-3`}],[`path`,{d:`M8 12l3 -3l2 2l3 -3`,key:`svg-4`}]]);export{n,t as r,r as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./createReactComponent-9UsI5fmM.js";var t=e(`outline`,`search`,`Search`,[[`path`,{d:`M3 10a7 7 0 1 0 14 0a7 7 0 1 0 -14 0`,key:`svg-0`}],[`path`,{d:`M21 21l-6 -6`,key:`svg-1`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./createReactComponent-9UsI5fmM.js";var t=e(`outline`,`sparkles`,`Sparkles`,[[`path`,{d:`M16 18a2 2 0 0 1 2 2a2 2 0 0 1 2 -2a2 2 0 0 1 -2 -2a2 2 0 0 1 -2 2m0 -12a2 2 0 0 1 2 2a2 2 0 0 1 2 -2a2 2 0 0 1 -2 -2a2 2 0 0 1 -2 2m-7 12a6 6 0 0 1 6 -6a6 6 0 0 1 -6 -6a6 6 0 0 1 -6 6a6 6 0 0 1 6 6`,key:`svg-0`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./createReactComponent-9UsI5fmM.js";var t=e(`outline`,`arrow-down`,`ArrowDown`,[[`path`,{d:`M12 5l0 14`,key:`svg-0`}],[`path`,{d:`M18 13l-6 6`,key:`svg-1`}],[`path`,{d:`M6 13l6 6`,key:`svg-2`}]]),n=e(`outline`,`arrow-up`,`ArrowUp`,[[`path`,{d:`M12 5l0 14`,key:`svg-0`}],[`path`,{d:`M18 11l-6 -6`,key:`svg-1`}],[`path`,{d:`M6 11l6 -6`,key:`svg-2`}]]),r=e(`outline`,`trash`,`Trash`,[[`path`,{d:`M4 7l16 0`,key:`svg-0`}],[`path`,{d:`M10 11l0 6`,key:`svg-1`}],[`path`,{d:`M14 11l0 6`,key:`svg-2`}],[`path`,{d:`M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12`,key:`svg-3`}],[`path`,{d:`M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3`,key:`svg-4`}]]);export{n,t as r,r as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./createReactComponent-9UsI5fmM.js";var t=e(`outline`,`users`,`Users`,[[`path`,{d:`M5 7a4 4 0 1 0 8 0a4 4 0 1 0 -8 0`,key:`svg-0`}],[`path`,{d:`M3 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2`,key:`svg-1`}],[`path`,{d:`M16 3.13a4 4 0 0 1 0 7.75`,key:`svg-2`}],[`path`,{d:`M21 21v-2a4 4 0 0 0 -3 -3.85`,key:`svg-3`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./createReactComponent-9UsI5fmM.js";var t=e(`outline`,`x`,`X`,[[`path`,{d:`M18 6l-12 12`,key:`svg-0`}],[`path`,{d:`M6 6l12 12`,key:`svg-1`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,t as n}from"./jsx-runtime-2Zwg-L3c.js";import{T as r,Tn as i,c as a,ht as o,jn as s}from"./useScrollLock-B7mQdXyv.js";import{i as c,r as l}from"./tooltip-DgEojto1.js";import{O as u,S as d,_ as f,d as p,l as m,u as h,x as g,y as _}from"./menu-BPrc8Ara.js";import{t as v}from"./createReactComponent-9UsI5fmM.js";import{t as y}from"./useBaseUiId-C0Zm5sUV.js";var b=v(`outline`,`route`,`Route`,[[`path`,{d:`M3 19a2 2 0 1 0 4 0a2 2 0 0 0 -4 0`,key:`svg-0`}],[`path`,{d:`M19 7a2 2 0 1 0 0 -4a2 2 0 0 0 0 4`,key:`svg-1`}],[`path`,{d:`M11 19h5.5a3.5 3.5 0 0 0 0 -7h-8a3.5 3.5 0 0 1 0 -7h4.5`,key:`svg-2`}]]),x=e(t(),1),S=n();function C(e){let t=g().store,n=x.useMemo(()=>({parentMenu:t}),[t]);return(0,S.jsx)(h.Provider,{value:n,children:(0,S.jsx)(m,{...e})})}var w=x.forwardRef(function(e,t){let{render:n,className:m,style:h,label:v,id:b,nativeButton:S=!1,openOnHover:C=!0,delay:w=100,closeDelay:T=0,disabled:E=!1,...D}=e,O=f({label:v}),k=d(),{store:A}=g(),j=y(b),M=A.useState(`open`),N=A.useState(`floatingRootContext`),P=A.useState(`floatingTreeRoot`),F=A.useState(`triggerPopupId`,j),I=r(j,A),L=x.useCallback(e=>{let t=I(e);return e!==null&&A.select(`open`)&&A.select(`activeTriggerId`)==null&&A.update({activeTriggerId:j,activeTriggerElement:e,closeDelay:T}),t},[I,T,A,j]),R=x.useRef(null),z=x.useCallback(e=>{R.current=e,A.set(`activeTriggerElement`,e)},[A]),B=p();if(!B?.parentMenu)throw Error(s(37));A.useSyncedValue(`closeDelay`,T);let V=B.parentMenu,H=A.useState(`disabled`),U=V.useState(`disabled`),W=E||H||U,G=V.useState(`itemProps`),K=V.useState(`isActive`,O.index),q=x.useMemo(()=>({type:`submenu-trigger`,setActive(){V.select(`highlightItemOnHover`)&&V.set(`activeIndex`,O.index)}}),[V,O.index]),{getItemProps:J,itemRef:Y}=_({closeOnClick:!1,disabled:W,highlighted:K,id:j,store:A,typingRef:V.context.typingRef,nativeButton:S,itemMetadata:q,nodeId:k?.context.nodeId}),X=c(N,{enabled:A.useState(`hoverEnabled`)&&C&&!W,handleClose:l({blockPointerEvents:!0}),mouseOnly:!0,move:!0,restMs:w,delay:{open:w,close:T},shouldOpen:w>0?()=>V.select(`allowMouseEnter`):void 0,triggerElementRef:R,externalTree:P,isClosing:()=>A.select(`transitionStatus`)===`ending`}),Z=u(N,{enabled:!W,event:`mousedown`,toggle:!C,ignoreMouse:C,stickIfOpen:!1}).reference??i,Q=A.useState(`triggerProps`,!0);return delete Q.id,o(`div`,e,{state:{disabled:W,highlighted:K,open:M},stateAttributesMapping:a,props:[Z,X,Q,G,{"aria-controls":F,tabIndex:M||K?0:-1,onBlur(){K&&V.set(`activeIndex`,null)}},D,J],ref:[t,O.ref,Y,L,z]})});export{C as n,b as r,w as t};