@wzh-/ai-chat-example 1.0.0 → 1.0.2

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 (1176) hide show
  1. package/dist/App.vue.d.ts +2 -0
  2. package/dist/_basePickBy-CkZky1V-.js +135 -0
  3. package/dist/_baseUniq-f11MNaXe.js +573 -0
  4. package/dist/abap--jVlqvLx.js +2 -0
  5. package/dist/actionscript-3-N1AoJtTA.js +2 -0
  6. package/dist/ada-CYGINLea.js +2 -0
  7. package/dist/andromeeda-CvsZnG9k.js +2 -0
  8. package/dist/angular-html-C5vmpet2.js +14 -0
  9. package/dist/angular-html-CLTv4jM9.js +5 -0
  10. package/dist/angular-ts-BKqJWrwt.js +19 -0
  11. package/dist/apache-D6X-_dyJ.js +2 -0
  12. package/dist/apex-C7VgAgAE.js +2 -0
  13. package/dist/apl-BcJs32yU.js +15 -0
  14. package/dist/applescript-DN64Su6U.js +2 -0
  15. package/dist/ara-Dm1jHrgg.js +2 -0
  16. package/dist/arc-Dh_0vvHo.js +78 -0
  17. package/dist/architecture-U656AL7Q-BqUSHYp0.js +8 -0
  18. package/dist/architectureDiagram-VXUJARFQ-BQvEdgpc.js +4053 -0
  19. package/dist/array-CkdOJbdT.js +5 -0
  20. package/dist/asciidoc-BpqtqRF5.js +2 -0
  21. package/dist/asm-DUGlKYIq.js +2 -0
  22. package/dist/astro-q-huTQEP.js +16 -0
  23. package/dist/aurora-x-DwOih-un.js +2 -0
  24. package/dist/awk-DcnVbJrN.js +2 -0
  25. package/dist/ayu-dark-Bd-89MKE.js +2 -0
  26. package/dist/ballerina-BQVdQd9X.js +2 -0
  27. package/dist/bash-DI_p7w58.js +2 -0
  28. package/dist/bat-juB1J52r.js +2 -0
  29. package/dist/beancount-ThxIlRc3.js +2 -0
  30. package/dist/berry-qC18BfC_.js +2 -0
  31. package/dist/bibtex-CahMDY_0.js +2 -0
  32. package/dist/bicep-CHLBKS47.js +2 -0
  33. package/dist/blade-Ckff5WJQ.js +19 -0
  34. package/dist/blockDiagram-VD42YOAC-DKkDshq3.js +3013 -0
  35. package/dist/bsl-BTNab0FD.js +3 -0
  36. package/dist/c-BYDGkYzS.js +2 -0
  37. package/dist/c-CX6yudYR.js +2 -0
  38. package/dist/c4Diagram-YG6GDRKO-KsGqOrVB.js +2955 -0
  39. package/dist/cadence-DA5J9-Di.js +2 -0
  40. package/dist/cairo-DUZgbTPW.js +3 -0
  41. package/dist/catppuccin-frappe-CE3kxG1f.js +2 -0
  42. package/dist/catppuccin-latte-DW2FXeIv.js +2 -0
  43. package/dist/catppuccin-macchiato-CD5qjRSF.js +2 -0
  44. package/dist/catppuccin-mocha-BYwVJvjI.js +2 -0
  45. package/dist/channel-BrxVk5HC.js +3 -0
  46. package/dist/chunk-4BX2VUAB-BGxl5VGr.js +6 -0
  47. package/dist/chunk-55IACEB6-CDMD5yu1.js +6 -0
  48. package/dist/chunk-76Q3JFCE-Db4Lkmow.js +19 -0
  49. package/dist/chunk-ABZYJK2D-BZvlc6Ej.js +2515 -0
  50. package/dist/chunk-ATLVNIR6-C3g7rsIT.js +65 -0
  51. package/dist/chunk-B4BG7PRW-Dx-bGI1r.js +3108 -0
  52. package/dist/chunk-CVBHYZKI-DxEBlSK7.js +10 -0
  53. package/dist/chunk-DI55MBZ5-CCWuZnfW.js +1994 -0
  54. package/dist/chunk-DNh5sLlG.js +18 -0
  55. package/dist/chunk-EXTU4WIE-BjMX7pAs.js +7 -0
  56. package/dist/chunk-FMBD7UC4-Dj3Ok4Bk.js +3 -0
  57. package/dist/chunk-FPAJGGOC-nWbO3e1v.js +12252 -0
  58. package/dist/chunk-FWNWRKHM-CjcwRw2u.js +56 -0
  59. package/dist/chunk-HN2XXSSU-Lv4Ef0co.js +74 -0
  60. package/dist/chunk-JA3XYJ7Z-Dhh1_u_p.js +463 -0
  61. package/dist/chunk-JZLCHNYA-vrb_Ucuc.js +4861 -0
  62. package/dist/chunk-LBM3YZW2-D8lrIfGo.js +19 -0
  63. package/dist/chunk-LHMN2FUI-DLQ0i8hl.js +19 -0
  64. package/dist/chunk-MI3HLSF2-Dy6F9XgR.js +1140 -0
  65. package/dist/chunk-N4CR4FBY-BdaGxHlZ.js +39 -0
  66. package/dist/chunk-O7ZBX7Z2-D8Yaukr5.js +26 -0
  67. package/dist/chunk-QN33PNHL-DnPw7tni.js +23 -0
  68. package/dist/chunk-QXUST7PY-D9mGQ-UP.js +486 -0
  69. package/dist/chunk-QZHKN3VN-ClanGuXA.js +11 -0
  70. package/dist/chunk-S3R3BYOJ-DHTsHczu.js +1074 -0
  71. package/dist/chunk-S6J4BHB3-8RrHs9bD.js +19 -0
  72. package/dist/chunk-T53DSG4Q-C2BDA_QX.js +24 -0
  73. package/dist/chunk-TZMSLE5B-F4nHm7N1.js +55 -0
  74. package/dist/chunk-XAJISQIX-Bz7ki7DY.js +135 -0
  75. package/dist/clarity-CsFOkG3c.js +2 -0
  76. package/dist/classDiagram-2ON5EDUG-C_ZEMlKu.js +33 -0
  77. package/dist/classDiagram-v2-WZHVMYZB-BHb5nZOM.js +33 -0
  78. package/dist/clojure-u1TZmmdQ.js +2 -0
  79. package/dist/clone-BRioDvRr.js +7 -0
  80. package/dist/cmake-CA3Lfsq7.js +2 -0
  81. package/dist/cmake-K1k8HMYR.js +2 -0
  82. package/dist/cobol-DhzLzJib.js +10 -0
  83. package/dist/codeowners-l4eSxhtA.js +2 -0
  84. package/dist/codeql-5CeQaktT.js +2 -0
  85. package/dist/coffee-P21KTKMu.js +3 -0
  86. package/dist/common-lisp-BVttGbYJ.js +2 -0
  87. package/dist/components/ChatConversation/ChatConversation.vue.d.ts +7 -0
  88. package/dist/components/ChatConversation/index.d.ts +1 -0
  89. package/dist/components/ChatPromptInputProvider/ChatPromptInputProvider.vue.d.ts +17 -0
  90. package/dist/components/ChatPromptInputProvider/index.d.ts +1 -0
  91. package/dist/components/ai-elements/artifact/Artifact.vue.d.ts +21 -0
  92. package/dist/components/ai-elements/artifact/ArtifactAction.vue.d.ts +32 -0
  93. package/dist/components/ai-elements/artifact/ArtifactActions.vue.d.ts +21 -0
  94. package/dist/components/ai-elements/artifact/ArtifactClose.vue.d.ts +27 -0
  95. package/dist/components/ai-elements/artifact/ArtifactContent.vue.d.ts +21 -0
  96. package/dist/components/ai-elements/artifact/ArtifactDescription.vue.d.ts +21 -0
  97. package/dist/components/ai-elements/artifact/ArtifactHeader.vue.d.ts +21 -0
  98. package/dist/components/ai-elements/artifact/ArtifactTitle.vue.d.ts +21 -0
  99. package/dist/components/ai-elements/artifact/index.d.ts +8 -0
  100. package/dist/components/ai-elements/canvas/index.d.ts +1 -0
  101. package/dist/components/ai-elements/chain-of-thought/ChainOfThought.vue.d.ts +30 -0
  102. package/dist/components/ai-elements/chain-of-thought/ChainOfThoughtContent.vue.d.ts +21 -0
  103. package/dist/components/ai-elements/chain-of-thought/ChainOfThoughtHeader.vue.d.ts +21 -0
  104. package/dist/components/ai-elements/chain-of-thought/ChainOfThoughtImage.vue.d.ts +22 -0
  105. package/dist/components/ai-elements/chain-of-thought/ChainOfThoughtSearchResult.vue.d.ts +21 -0
  106. package/dist/components/ai-elements/chain-of-thought/ChainOfThoughtSearchResults.vue.d.ts +21 -0
  107. package/dist/components/ai-elements/chain-of-thought/ChainOfThoughtStep.vue.d.ts +28 -0
  108. package/dist/components/ai-elements/chain-of-thought/context.d.ts +6 -0
  109. package/dist/components/ai-elements/chain-of-thought/index.d.ts +7 -0
  110. package/dist/components/ai-elements/checkpoint/Checkpoint.vue.d.ts +21 -0
  111. package/dist/components/ai-elements/checkpoint/CheckpointIcon.vue.d.ts +21 -0
  112. package/dist/components/ai-elements/checkpoint/CheckpointTrigger.vue.d.ts +27 -0
  113. package/dist/components/ai-elements/checkpoint/index.d.ts +3 -0
  114. package/dist/components/ai-elements/code-block/CodeBlock.vue.d.ts +27 -0
  115. package/dist/components/ai-elements/code-block/CodeBlockCopyButton.vue.d.ts +30 -0
  116. package/dist/components/ai-elements/code-block/context.d.ts +5 -0
  117. package/dist/components/ai-elements/code-block/index.d.ts +2 -0
  118. package/dist/components/ai-elements/code-block/utils.d.ts +2 -0
  119. package/dist/components/ai-elements/confirmation/Confirmation.vue.d.ts +25 -0
  120. package/dist/components/ai-elements/confirmation/ConfirmationAccepted.vue.d.ts +17 -0
  121. package/dist/components/ai-elements/confirmation/ConfirmationAction.vue.d.ts +17 -0
  122. package/dist/components/ai-elements/confirmation/ConfirmationActions.vue.d.ts +21 -0
  123. package/dist/components/ai-elements/confirmation/ConfirmationRejected.vue.d.ts +17 -0
  124. package/dist/components/ai-elements/confirmation/ConfirmationRequest.vue.d.ts +17 -0
  125. package/dist/components/ai-elements/confirmation/ConfirmationTitle.vue.d.ts +21 -0
  126. package/dist/components/ai-elements/confirmation/context.d.ts +29 -0
  127. package/dist/components/ai-elements/confirmation/index.d.ts +7 -0
  128. package/dist/components/ai-elements/connection/Connection.vue.d.ts +3 -0
  129. package/dist/components/ai-elements/connection/index.d.ts +1 -0
  130. package/dist/components/ai-elements/context/Context.vue.d.ts +25 -0
  131. package/dist/components/ai-elements/context/ContextCacheUsage.vue.d.ts +21 -0
  132. package/dist/components/ai-elements/context/ContextContent.vue.d.ts +21 -0
  133. package/dist/components/ai-elements/context/ContextContentBody.vue.d.ts +21 -0
  134. package/dist/components/ai-elements/context/ContextContentFooter.vue.d.ts +21 -0
  135. package/dist/components/ai-elements/context/ContextContentHeader.vue.d.ts +21 -0
  136. package/dist/components/ai-elements/context/ContextIcon.vue.d.ts +2 -0
  137. package/dist/components/ai-elements/context/ContextInputUsage.vue.d.ts +21 -0
  138. package/dist/components/ai-elements/context/ContextOutputUsage.vue.d.ts +21 -0
  139. package/dist/components/ai-elements/context/ContextReasoningUsage.vue.d.ts +21 -0
  140. package/dist/components/ai-elements/context/ContextTrigger.vue.d.ts +17 -0
  141. package/dist/components/ai-elements/context/TokensWithCost.vue.d.ts +6 -0
  142. package/dist/components/ai-elements/context/context.d.ts +11 -0
  143. package/dist/components/ai-elements/context/index.d.ts +12 -0
  144. package/dist/components/ai-elements/controls/Controls.vue.d.ts +6 -0
  145. package/dist/components/ai-elements/controls/index.d.ts +1 -0
  146. package/dist/components/ai-elements/conversation/Conversation.vue.d.ts +47 -0
  147. package/dist/components/ai-elements/conversation/ConversationContent.vue.d.ts +21 -0
  148. package/dist/components/ai-elements/conversation/ConversationEmptyState.vue.d.ts +27 -0
  149. package/dist/components/ai-elements/conversation/ConversationScrollButton.vue.d.ts +6 -0
  150. package/dist/components/ai-elements/conversation/index.d.ts +4 -0
  151. package/dist/components/ai-elements/edge/Animated.vue.d.ts +4 -0
  152. package/dist/components/ai-elements/edge/Temporary.vue.d.ts +4 -0
  153. package/dist/components/ai-elements/edge/index.d.ts +2 -0
  154. package/dist/components/ai-elements/image/Image.vue.d.ts +8 -0
  155. package/dist/components/ai-elements/image/index.d.ts +1 -0
  156. package/dist/components/ai-elements/inline-citation/InlineCitation.vue.d.ts +21 -0
  157. package/dist/components/ai-elements/inline-citation/InlineCitationCard.vue.d.ts +24 -0
  158. package/dist/components/ai-elements/inline-citation/InlineCitationCardBody.vue.d.ts +21 -0
  159. package/dist/components/ai-elements/inline-citation/InlineCitationCardTrigger.vue.d.ts +7 -0
  160. package/dist/components/ai-elements/inline-citation/InlineCitationCarousel.vue.d.ts +21 -0
  161. package/dist/components/ai-elements/inline-citation/InlineCitationCarouselContent.vue.d.ts +17 -0
  162. package/dist/components/ai-elements/inline-citation/InlineCitationCarouselHeader.vue.d.ts +21 -0
  163. package/dist/components/ai-elements/inline-citation/InlineCitationCarouselIndex.vue.d.ts +21 -0
  164. package/dist/components/ai-elements/inline-citation/InlineCitationCarouselItem.vue.d.ts +21 -0
  165. package/dist/components/ai-elements/inline-citation/InlineCitationCarouselNext.vue.d.ts +6 -0
  166. package/dist/components/ai-elements/inline-citation/InlineCitationCarouselPrev.vue.d.ts +6 -0
  167. package/dist/components/ai-elements/inline-citation/InlineCitationQuote.vue.d.ts +21 -0
  168. package/dist/components/ai-elements/inline-citation/InlineCitationSource.vue.d.ts +24 -0
  169. package/dist/components/ai-elements/inline-citation/InlineCitationText.vue.d.ts +21 -0
  170. package/dist/components/ai-elements/inline-citation/index.d.ts +14 -0
  171. package/dist/components/ai-elements/loader/Loader.vue.d.ts +9 -0
  172. package/dist/components/ai-elements/loader/LoaderIcon.vue.d.ts +7 -0
  173. package/dist/components/ai-elements/loader/index.d.ts +2 -0
  174. package/dist/components/ai-elements/message/Message.vue.d.ts +23 -0
  175. package/dist/components/ai-elements/message/MessageAction.vue.d.ts +28 -0
  176. package/dist/components/ai-elements/message/MessageActions.vue.d.ts +21 -0
  177. package/dist/components/ai-elements/message/MessageAttachment.vue.d.ts +12 -0
  178. package/dist/components/ai-elements/message/MessageAttachments.vue.d.ts +21 -0
  179. package/dist/components/ai-elements/message/MessageAvatar.vue.d.ts +8 -0
  180. package/dist/components/ai-elements/message/MessageBranch.vue.d.ts +28 -0
  181. package/dist/components/ai-elements/message/MessageBranchContent.vue.d.ts +6 -0
  182. package/dist/components/ai-elements/message/MessageBranchNext.vue.d.ts +17 -0
  183. package/dist/components/ai-elements/message/MessageBranchPage.vue.d.ts +6 -0
  184. package/dist/components/ai-elements/message/MessageBranchPrevious.vue.d.ts +17 -0
  185. package/dist/components/ai-elements/message/MessageBranchSelector.vue.d.ts +21 -0
  186. package/dist/components/ai-elements/message/MessageContent.vue.d.ts +21 -0
  187. package/dist/components/ai-elements/message/MessageResponse.vue.d.ts +7 -0
  188. package/dist/components/ai-elements/message/MessageToolbar.vue.d.ts +21 -0
  189. package/dist/components/ai-elements/message/context.d.ts +11 -0
  190. package/dist/components/ai-elements/message/index.d.ts +15 -0
  191. package/dist/components/ai-elements/model-selector/ModelSelector.vue.d.ts +17 -0
  192. package/dist/components/ai-elements/model-selector/ModelSelectorContent.vue.d.ts +24 -0
  193. package/dist/components/ai-elements/model-selector/ModelSelectorDialog.vue.d.ts +17 -0
  194. package/dist/components/ai-elements/model-selector/ModelSelectorEmpty.vue.d.ts +17 -0
  195. package/dist/components/ai-elements/model-selector/ModelSelectorGroup.vue.d.ts +17 -0
  196. package/dist/components/ai-elements/model-selector/ModelSelectorInput.vue.d.ts +6 -0
  197. package/dist/components/ai-elements/model-selector/ModelSelectorItem.vue.d.ts +17 -0
  198. package/dist/components/ai-elements/model-selector/ModelSelectorList.vue.d.ts +17 -0
  199. package/dist/components/ai-elements/model-selector/ModelSelectorLogo.vue.d.ts +7 -0
  200. package/dist/components/ai-elements/model-selector/ModelSelectorLogoGroup.vue.d.ts +21 -0
  201. package/dist/components/ai-elements/model-selector/ModelSelectorName.vue.d.ts +21 -0
  202. package/dist/components/ai-elements/model-selector/ModelSelectorSeparator.vue.d.ts +2 -0
  203. package/dist/components/ai-elements/model-selector/ModelSelectorShortcut.vue.d.ts +17 -0
  204. package/dist/components/ai-elements/model-selector/ModelSelectorTrigger.vue.d.ts +17 -0
  205. package/dist/components/ai-elements/model-selector/index.d.ts +14 -0
  206. package/dist/components/ai-elements/node/Node.vue.d.ts +26 -0
  207. package/dist/components/ai-elements/node/NodeAction.vue.d.ts +17 -0
  208. package/dist/components/ai-elements/node/NodeContent.vue.d.ts +21 -0
  209. package/dist/components/ai-elements/node/NodeDescription.vue.d.ts +17 -0
  210. package/dist/components/ai-elements/node/NodeFooter.vue.d.ts +21 -0
  211. package/dist/components/ai-elements/node/NodeHeader.vue.d.ts +21 -0
  212. package/dist/components/ai-elements/node/NodeTitle.vue.d.ts +17 -0
  213. package/dist/components/ai-elements/node/index.d.ts +7 -0
  214. package/dist/components/ai-elements/open-in-chat/OpenIn.vue.d.ts +20 -0
  215. package/dist/components/ai-elements/open-in-chat/OpenInContent.vue.d.ts +21 -0
  216. package/dist/components/ai-elements/open-in-chat/OpenInItemLink.vue.d.ts +8 -0
  217. package/dist/components/ai-elements/open-in-chat/OpenInTrigger.vue.d.ts +17 -0
  218. package/dist/components/ai-elements/open-in-chat/context.d.ts +7 -0
  219. package/dist/components/ai-elements/open-in-chat/index.d.ts +9 -0
  220. package/dist/components/ai-elements/open-in-chat/providers/icons/ChatGPT.vue.d.ts +2 -0
  221. package/dist/components/ai-elements/open-in-chat/providers/icons/Claude.vue.d.ts +2 -0
  222. package/dist/components/ai-elements/open-in-chat/providers/icons/Cursor.vue.d.ts +2 -0
  223. package/dist/components/ai-elements/open-in-chat/providers/icons/Github.vue.d.ts +2 -0
  224. package/dist/components/ai-elements/open-in-chat/providers/icons/Scira.vue.d.ts +2 -0
  225. package/dist/components/ai-elements/open-in-chat/providers/icons/V0.vue.d.ts +2 -0
  226. package/dist/components/ai-elements/open-in-chat/providers/icons/index.d.ts +6 -0
  227. package/dist/components/ai-elements/open-in-chat/providers/index.d.ts +38 -0
  228. package/dist/components/ai-elements/open-in-chat/providers/items/OpenInChatGPT.vue.d.ts +2 -0
  229. package/dist/components/ai-elements/open-in-chat/providers/items/OpenInClaude.vue.d.ts +2 -0
  230. package/dist/components/ai-elements/open-in-chat/providers/items/OpenInCursor.vue.d.ts +2 -0
  231. package/dist/components/ai-elements/open-in-chat/providers/items/OpenInScira.vue.d.ts +2 -0
  232. package/dist/components/ai-elements/open-in-chat/providers/items/OpenInT3.vue.d.ts +2 -0
  233. package/dist/components/ai-elements/open-in-chat/providers/items/OpenInv0.vue.d.ts +2 -0
  234. package/dist/components/ai-elements/panel/Panel.vue.d.ts +25 -0
  235. package/dist/components/ai-elements/panel/index.d.ts +1 -0
  236. package/dist/components/ai-elements/plan/Plan.vue.d.ts +24 -0
  237. package/dist/components/ai-elements/plan/PlanAction.vue.d.ts +17 -0
  238. package/dist/components/ai-elements/plan/PlanContent.vue.d.ts +17 -0
  239. package/dist/components/ai-elements/plan/PlanDescription.vue.d.ts +22 -0
  240. package/dist/components/ai-elements/plan/PlanFooter.vue.d.ts +17 -0
  241. package/dist/components/ai-elements/plan/PlanHeader.vue.d.ts +21 -0
  242. package/dist/components/ai-elements/plan/PlanTitle.vue.d.ts +18 -0
  243. package/dist/components/ai-elements/plan/PlanTrigger.vue.d.ts +6 -0
  244. package/dist/components/ai-elements/plan/context.d.ts +7 -0
  245. package/dist/components/ai-elements/plan/index.d.ts +8 -0
  246. package/dist/components/ai-elements/prompt-input/PromptInput.vue.d.ts +46 -0
  247. package/dist/components/ai-elements/prompt-input/PromptInputActionAddAttachments.vue.d.ts +7 -0
  248. package/dist/components/ai-elements/prompt-input/PromptInputActionMenu.vue.d.ts +21 -0
  249. package/dist/components/ai-elements/prompt-input/PromptInputActionMenuContent.vue.d.ts +23 -0
  250. package/dist/components/ai-elements/prompt-input/PromptInputActionMenuItem.vue.d.ts +23 -0
  251. package/dist/components/ai-elements/prompt-input/PromptInputActionMenuTrigger.vue.d.ts +23 -0
  252. package/dist/components/ai-elements/prompt-input/PromptInputAttachment.vue.d.ts +8 -0
  253. package/dist/components/ai-elements/prompt-input/PromptInputAttachments.vue.d.ts +23 -0
  254. package/dist/components/ai-elements/prompt-input/PromptInputBody.vue.d.ts +21 -0
  255. package/dist/components/ai-elements/prompt-input/PromptInputButton.vue.d.ts +20 -0
  256. package/dist/components/ai-elements/prompt-input/PromptInputCommand.vue.d.ts +23 -0
  257. package/dist/components/ai-elements/prompt-input/PromptInputCommandEmpty.vue.d.ts +23 -0
  258. package/dist/components/ai-elements/prompt-input/PromptInputCommandGroup.vue.d.ts +23 -0
  259. package/dist/components/ai-elements/prompt-input/PromptInputCommandInput.vue.d.ts +8 -0
  260. package/dist/components/ai-elements/prompt-input/PromptInputCommandItem.vue.d.ts +23 -0
  261. package/dist/components/ai-elements/prompt-input/PromptInputCommandList.vue.d.ts +8 -0
  262. package/dist/components/ai-elements/prompt-input/PromptInputCommandSeparator.vue.d.ts +8 -0
  263. package/dist/components/ai-elements/prompt-input/PromptInputFooter.vue.d.ts +23 -0
  264. package/dist/components/ai-elements/prompt-input/PromptInputHeader.vue.d.ts +23 -0
  265. package/dist/components/ai-elements/prompt-input/PromptInputHoverCard.vue.d.ts +26 -0
  266. package/dist/components/ai-elements/prompt-input/PromptInputHoverCardContent.vue.d.ts +23 -0
  267. package/dist/components/ai-elements/prompt-input/PromptInputHoverCardTrigger.vue.d.ts +21 -0
  268. package/dist/components/ai-elements/prompt-input/PromptInputProvider.vue.d.ts +43 -0
  269. package/dist/components/ai-elements/prompt-input/PromptInputSelect.vue.d.ts +21 -0
  270. package/dist/components/ai-elements/prompt-input/PromptInputSelectContent.vue.d.ts +23 -0
  271. package/dist/components/ai-elements/prompt-input/PromptInputSelectItem.vue.d.ts +23 -0
  272. package/dist/components/ai-elements/prompt-input/PromptInputSelectTrigger.vue.d.ts +23 -0
  273. package/dist/components/ai-elements/prompt-input/PromptInputSelectValue.vue.d.ts +23 -0
  274. package/dist/components/ai-elements/prompt-input/PromptInputSpeechButton.vue.d.ts +51 -0
  275. package/dist/components/ai-elements/prompt-input/PromptInputSubmit.vue.d.ts +30 -0
  276. package/dist/components/ai-elements/prompt-input/PromptInputTab.vue.d.ts +21 -0
  277. package/dist/components/ai-elements/prompt-input/PromptInputTabBody.vue.d.ts +21 -0
  278. package/dist/components/ai-elements/prompt-input/PromptInputTabItem.vue.d.ts +21 -0
  279. package/dist/components/ai-elements/prompt-input/PromptInputTabLabel.vue.d.ts +21 -0
  280. package/dist/components/ai-elements/prompt-input/PromptInputTabsList.vue.d.ts +21 -0
  281. package/dist/components/ai-elements/prompt-input/PromptInputTextarea.vue.d.ts +8 -0
  282. package/dist/components/ai-elements/prompt-input/PromptInputTools.vue.d.ts +21 -0
  283. package/dist/components/ai-elements/prompt-input/context.d.ts +22 -0
  284. package/dist/components/ai-elements/prompt-input/index.d.ts +39 -0
  285. package/dist/components/ai-elements/prompt-input/types.d.ts +24 -0
  286. package/dist/components/ai-elements/queue/Queue.vue.d.ts +21 -0
  287. package/dist/components/ai-elements/queue/QueueItem.vue.d.ts +21 -0
  288. package/dist/components/ai-elements/queue/QueueItemAction.vue.d.ts +21 -0
  289. package/dist/components/ai-elements/queue/QueueItemActions.vue.d.ts +21 -0
  290. package/dist/components/ai-elements/queue/QueueItemAttachment.vue.d.ts +21 -0
  291. package/dist/components/ai-elements/queue/QueueItemContent.vue.d.ts +24 -0
  292. package/dist/components/ai-elements/queue/QueueItemDescription.vue.d.ts +24 -0
  293. package/dist/components/ai-elements/queue/QueueItemFile.vue.d.ts +21 -0
  294. package/dist/components/ai-elements/queue/QueueItemImage.vue.d.ts +6 -0
  295. package/dist/components/ai-elements/queue/QueueItemIndicator.vue.d.ts +9 -0
  296. package/dist/components/ai-elements/queue/QueueList.vue.d.ts +21 -0
  297. package/dist/components/ai-elements/queue/QueueSection.vue.d.ts +24 -0
  298. package/dist/components/ai-elements/queue/QueueSectionContent.vue.d.ts +21 -0
  299. package/dist/components/ai-elements/queue/QueueSectionLabel.vue.d.ts +23 -0
  300. package/dist/components/ai-elements/queue/QueueSectionTrigger.vue.d.ts +21 -0
  301. package/dist/components/ai-elements/queue/index.d.ts +15 -0
  302. package/dist/components/ai-elements/reasoning/Reasoning.vue.d.ts +35 -0
  303. package/dist/components/ai-elements/reasoning/ReasoningContent.vue.d.ts +7 -0
  304. package/dist/components/ai-elements/reasoning/ReasoningTrigger.vue.d.ts +21 -0
  305. package/dist/components/ai-elements/reasoning/context.d.ts +9 -0
  306. package/dist/components/ai-elements/reasoning/index.d.ts +3 -0
  307. package/dist/components/ai-elements/shimmer/Shimmer.vue.d.ts +28 -0
  308. package/dist/components/ai-elements/shimmer/index.d.ts +1 -0
  309. package/dist/components/ai-elements/sources/Source.vue.d.ts +23 -0
  310. package/dist/components/ai-elements/sources/Sources.vue.d.ts +21 -0
  311. package/dist/components/ai-elements/sources/SourcesContent.vue.d.ts +21 -0
  312. package/dist/components/ai-elements/sources/SourcesTrigger.vue.d.ts +22 -0
  313. package/dist/components/ai-elements/sources/index.d.ts +4 -0
  314. package/dist/components/ai-elements/suggestion/Suggestion.vue.d.ts +31 -0
  315. package/dist/components/ai-elements/suggestion/Suggestions.vue.d.ts +21 -0
  316. package/dist/components/ai-elements/suggestion/index.d.ts +2 -0
  317. package/dist/components/ai-elements/task/Task.vue.d.ts +28 -0
  318. package/dist/components/ai-elements/task/TaskContent.vue.d.ts +21 -0
  319. package/dist/components/ai-elements/task/TaskItem.vue.d.ts +21 -0
  320. package/dist/components/ai-elements/task/TaskItemFile.vue.d.ts +21 -0
  321. package/dist/components/ai-elements/task/TaskTrigger.vue.d.ts +22 -0
  322. package/dist/components/ai-elements/task/index.d.ts +5 -0
  323. package/dist/components/ai-elements/tool/Tool.vue.d.ts +21 -0
  324. package/dist/components/ai-elements/tool/ToolContent.vue.d.ts +21 -0
  325. package/dist/components/ai-elements/tool/ToolHeader.vue.d.ts +10 -0
  326. package/dist/components/ai-elements/tool/ToolInput.vue.d.ts +8 -0
  327. package/dist/components/ai-elements/tool/ToolOutput.vue.d.ts +9 -0
  328. package/dist/components/ai-elements/tool/ToolStatusBadge.vue.d.ts +6 -0
  329. package/dist/components/ai-elements/tool/index.d.ts +5 -0
  330. package/dist/components/ai-elements/toolbar/Toolbar.vue.d.ts +25 -0
  331. package/dist/components/ai-elements/toolbar/index.d.ts +1 -0
  332. package/dist/components/ai-elements/web-preview/WebPreview.vue.d.ts +34 -0
  333. package/dist/components/ai-elements/web-preview/WebPreviewBody.vue.d.ts +24 -0
  334. package/dist/components/ai-elements/web-preview/WebPreviewConsole.vue.d.ts +30 -0
  335. package/dist/components/ai-elements/web-preview/WebPreviewNavigation.vue.d.ts +21 -0
  336. package/dist/components/ai-elements/web-preview/WebPreviewNavigationButton.vue.d.ts +30 -0
  337. package/dist/components/ai-elements/web-preview/WebPreviewUrl.vue.d.ts +9 -0
  338. package/dist/components/ai-elements/web-preview/context.d.ts +9 -0
  339. package/dist/components/ai-elements/web-preview/index.d.ts +7 -0
  340. package/dist/components/ui/alert/Alert.vue.d.ts +23 -0
  341. package/dist/components/ui/alert/AlertDescription.vue.d.ts +21 -0
  342. package/dist/components/ui/alert/AlertTitle.vue.d.ts +21 -0
  343. package/dist/components/ui/alert/index.d.ts +8 -0
  344. package/dist/components/ui/avatar/Avatar.vue.d.ts +21 -0
  345. package/dist/components/ui/avatar/AvatarFallback.vue.d.ts +22 -0
  346. package/dist/components/ui/avatar/AvatarImage.vue.d.ts +18 -0
  347. package/dist/components/ui/avatar/index.d.ts +3 -0
  348. package/dist/components/ui/badge/Badge.vue.d.ts +24 -0
  349. package/dist/components/ui/badge/index.d.ts +6 -0
  350. package/dist/components/ui/button/Button.vue.d.ts +27 -0
  351. package/dist/components/ui/button/index.d.ts +7 -0
  352. package/dist/components/ui/button-group/ButtonGroup.vue.d.ts +23 -0
  353. package/dist/components/ui/button-group/ButtonGroupSeparator.vue.d.ts +9 -0
  354. package/dist/components/ui/button-group/ButtonGroupText.vue.d.ts +26 -0
  355. package/dist/components/ui/button-group/index.d.ts +8 -0
  356. package/dist/components/ui/card/Card.vue.d.ts +21 -0
  357. package/dist/components/ui/card/CardAction.vue.d.ts +21 -0
  358. package/dist/components/ui/card/CardContent.vue.d.ts +21 -0
  359. package/dist/components/ui/card/CardDescription.vue.d.ts +21 -0
  360. package/dist/components/ui/card/CardFooter.vue.d.ts +21 -0
  361. package/dist/components/ui/card/CardHeader.vue.d.ts +21 -0
  362. package/dist/components/ui/card/CardTitle.vue.d.ts +21 -0
  363. package/dist/components/ui/card/index.d.ts +7 -0
  364. package/dist/components/ui/carousel/CarouselContent.vue.d.ts +22 -0
  365. package/dist/components/ui/carousel/CarouselItem.vue.d.ts +18 -0
  366. package/dist/components/ui/carousel/CarouselNext.vue.d.ts +26 -0
  367. package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +26 -0
  368. package/dist/components/ui/carousel/index.d.ts +7 -0
  369. package/dist/components/ui/carousel/interface.d.ts +19 -0
  370. package/dist/components/ui/collapsible/Collapsible.vue.d.ts +24 -0
  371. package/dist/components/ui/collapsible/CollapsibleContent.vue.d.ts +18 -0
  372. package/dist/components/ui/collapsible/CollapsibleTrigger.vue.d.ts +18 -0
  373. package/dist/components/ui/collapsible/index.d.ts +3 -0
  374. package/dist/components/ui/command/Command.vue.d.ts +40 -0
  375. package/dist/components/ui/command/CommandDialog.vue.d.ts +32 -0
  376. package/dist/components/ui/command/CommandEmpty.vue.d.ts +22 -0
  377. package/dist/components/ui/command/CommandGroup.vue.d.ts +23 -0
  378. package/dist/components/ui/command/CommandInput.vue.d.ts +7 -0
  379. package/dist/components/ui/command/CommandItem.vue.d.ts +30 -0
  380. package/dist/components/ui/command/CommandList.vue.d.ts +22 -0
  381. package/dist/components/ui/command/CommandSeparator.vue.d.ts +22 -0
  382. package/dist/components/ui/command/CommandShortcut.vue.d.ts +21 -0
  383. package/dist/components/ui/command/index.d.ts +90 -0
  384. package/dist/components/ui/dialog/Dialog.vue.d.ts +25 -0
  385. package/dist/components/ui/dialog/DialogClose.vue.d.ts +18 -0
  386. package/dist/components/ui/dialog/DialogContent.vue.d.ts +39 -0
  387. package/dist/components/ui/dialog/DialogDescription.vue.d.ts +22 -0
  388. package/dist/components/ui/dialog/DialogFooter.vue.d.ts +21 -0
  389. package/dist/components/ui/dialog/DialogHeader.vue.d.ts +21 -0
  390. package/dist/components/ui/dialog/DialogOverlay.vue.d.ts +22 -0
  391. package/dist/components/ui/dialog/DialogScrollContent.vue.d.ts +36 -0
  392. package/dist/components/ui/dialog/DialogTitle.vue.d.ts +22 -0
  393. package/dist/components/ui/dialog/DialogTrigger.vue.d.ts +18 -0
  394. package/dist/components/ui/dialog/index.d.ts +10 -0
  395. package/dist/components/ui/dropdown-menu/DropdownMenu.vue.d.ts +24 -0
  396. package/dist/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue.d.ts +29 -0
  397. package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +36 -0
  398. package/dist/components/ui/dropdown-menu/DropdownMenuGroup.vue.d.ts +18 -0
  399. package/dist/components/ui/dropdown-menu/DropdownMenuItem.vue.d.ts +26 -0
  400. package/dist/components/ui/dropdown-menu/DropdownMenuLabel.vue.d.ts +23 -0
  401. package/dist/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue.d.ts +22 -0
  402. package/dist/components/ui/dropdown-menu/DropdownMenuRadioItem.vue.d.ts +27 -0
  403. package/dist/components/ui/dropdown-menu/DropdownMenuSeparator.vue.d.ts +7 -0
  404. package/dist/components/ui/dropdown-menu/DropdownMenuShortcut.vue.d.ts +21 -0
  405. package/dist/components/ui/dropdown-menu/DropdownMenuSub.vue.d.ts +22 -0
  406. package/dist/components/ui/dropdown-menu/DropdownMenuSubContent.vue.d.ts +38 -0
  407. package/dist/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue.d.ts +23 -0
  408. package/dist/components/ui/dropdown-menu/DropdownMenuTrigger.vue.d.ts +18 -0
  409. package/dist/components/ui/dropdown-menu/index.d.ts +15 -0
  410. package/dist/components/ui/hover-card/HoverCard.vue.d.ts +24 -0
  411. package/dist/components/ui/hover-card/HoverCardContent.vue.d.ts +24 -0
  412. package/dist/components/ui/hover-card/HoverCardTrigger.vue.d.ts +18 -0
  413. package/dist/components/ui/hover-card/index.d.ts +3 -0
  414. package/dist/components/ui/input/Input.vue.d.ts +12 -0
  415. package/dist/components/ui/input/index.d.ts +1 -0
  416. package/dist/components/ui/input-group/InputGroup.vue.d.ts +21 -0
  417. package/dist/components/ui/input-group/InputGroupAddon.vue.d.ts +25 -0
  418. package/dist/components/ui/input-group/InputGroupButton.vue.d.ts +21 -0
  419. package/dist/components/ui/input-group/InputGroupInput.vue.d.ts +6 -0
  420. package/dist/components/ui/input-group/InputGroupText.vue.d.ts +21 -0
  421. package/dist/components/ui/input-group/InputGroupTextarea.vue.d.ts +6 -0
  422. package/dist/components/ui/input-group/index.d.ts +22 -0
  423. package/dist/components/ui/progress/Progress.vue.d.ts +9 -0
  424. package/dist/components/ui/progress/index.d.ts +1 -0
  425. package/dist/components/ui/scroll-area/ScrollArea.vue.d.ts +22 -0
  426. package/dist/components/ui/scroll-area/ScrollBar.vue.d.ts +9 -0
  427. package/dist/components/ui/scroll-area/index.d.ts +2 -0
  428. package/dist/components/ui/select/Select.vue.d.ts +28 -0
  429. package/dist/components/ui/select/SelectContent.vue.d.ts +32 -0
  430. package/dist/components/ui/select/SelectGroup.vue.d.ts +18 -0
  431. package/dist/components/ui/select/SelectItem.vue.d.ts +23 -0
  432. package/dist/components/ui/select/SelectItemText.vue.d.ts +18 -0
  433. package/dist/components/ui/select/SelectLabel.vue.d.ts +22 -0
  434. package/dist/components/ui/select/SelectScrollDownButton.vue.d.ts +22 -0
  435. package/dist/components/ui/select/SelectScrollUpButton.vue.d.ts +22 -0
  436. package/dist/components/ui/select/SelectSeparator.vue.d.ts +7 -0
  437. package/dist/components/ui/select/SelectTrigger.vue.d.ts +25 -0
  438. package/dist/components/ui/select/SelectValue.vue.d.ts +18 -0
  439. package/dist/components/ui/select/index.d.ts +11 -0
  440. package/dist/components/ui/separator/Separator.vue.d.ts +10 -0
  441. package/dist/components/ui/separator/index.d.ts +1 -0
  442. package/dist/components/ui/textarea/Textarea.vue.d.ts +12 -0
  443. package/dist/components/ui/textarea/index.d.ts +1 -0
  444. package/dist/components/ui/tooltip/Tooltip.vue.d.ts +24 -0
  445. package/dist/components/ui/tooltip/TooltipContent.vue.d.ts +30 -0
  446. package/dist/components/ui/tooltip/TooltipProvider.vue.d.ts +20 -0
  447. package/dist/components/ui/tooltip/TooltipTrigger.vue.d.ts +18 -0
  448. package/dist/components/ui/tooltip/index.d.ts +4 -0
  449. package/dist/composables/useChat.d.ts +8 -0
  450. package/dist/coq-CZjzQDnb.js +2 -0
  451. package/dist/cose-bilkent-S5V4N54A-Dy-do3hl.js +2250 -0
  452. package/dist/cpp-C6JyDxZu.js +16 -0
  453. package/dist/cpp-GAIEvywS.js +6 -0
  454. package/dist/crystal-BJfcoGS4.js +16 -0
  455. package/dist/csharp-BbUwciq4.js +2 -0
  456. package/dist/csharp-JE-9ns6W.js +2 -0
  457. package/dist/css-Crp0iO_o.js +2 -0
  458. package/dist/css-Cy-fypCV.js +2 -0
  459. package/dist/csv-DJ7xG4PY.js +2 -0
  460. package/dist/csv-DtT8LmMi.js +2 -0
  461. package/dist/cue-BwjaQTCz.js +2 -0
  462. package/dist/cypher-B7e06enY.js +2 -0
  463. package/dist/cytoscape.esm-CWqS6puh.js +18100 -0
  464. package/dist/d-q60wkid4.js +2 -0
  465. package/dist/dagre-6UL2VRFP-B38_sZWh.js +298 -0
  466. package/dist/dagre-DtvXp3zQ.js +1395 -0
  467. package/dist/dark-plus-D_fA88xf.js +2 -0
  468. package/dist/dart-DjkWvBgr.js +2 -0
  469. package/dist/dax-lueLIZQI.js +2 -0
  470. package/dist/defaultLocale-CoJOMwPq.js +177 -0
  471. package/dist/desktop-DaphHKD5.js +2 -0
  472. package/dist/diagram-PSM6KHXK-D6swsG-y.js +497 -0
  473. package/dist/diagram-QEK2KX5R-B7Hi0LAL.js +226 -0
  474. package/dist/diagram-S2PKOQOG-DLx7PlpM.js +144 -0
  475. package/dist/diff-COB48_rb.js +2 -0
  476. package/dist/diff-DlXnqUMK.js +2 -0
  477. package/dist/dist-CrnZo_23.js +49 -0
  478. package/dist/docker-DZKmuwpA.js +2 -0
  479. package/dist/dotenv-hmNahw-8.js +2 -0
  480. package/dist/dracula-ddM3a7au.js +2 -0
  481. package/dist/dracula-soft-vfA-TA_S.js +2 -0
  482. package/dist/dream-maker-Cxa2a8FY.js +2 -0
  483. package/dist/edge-Dm7HQa9N.js +12 -0
  484. package/dist/elixir-BkvHyCNd.js +5 -0
  485. package/dist/elm-rz9wTSrn.js +4 -0
  486. package/dist/emacs-lisp-w5URnZPZ.js +2 -0
  487. package/dist/erDiagram-Q2GNP2WA-B67FD8rh.js +1603 -0
  488. package/dist/erb-DyrwQYVz.js +25 -0
  489. package/dist/erlang-DLFKZs5N.js +3 -0
  490. package/dist/everforest-dark-DAPtv4yI.js +2 -0
  491. package/dist/everforest-light-nQzYm8GO.js +2 -0
  492. package/dist/fennel-CJDNJZTU.js +2 -0
  493. package/dist/fish-BkYaLI4-.js +2 -0
  494. package/dist/flowDiagram-NV44I4VS-DHXgrdJY.js +4132 -0
  495. package/dist/fluent-DShra35H.js +2 -0
  496. package/dist/fortran-fixed-form-SzB0QY3n.js +3 -0
  497. package/dist/fortran-free-form-CgbOAJnm.js +2 -0
  498. package/dist/fortran-free-form-Js8JrQQE.js +2 -0
  499. package/dist/fsharp-CtWO0jvL.js +3 -0
  500. package/dist/ganttDiagram-JELNMOA3-CGIqBt1P.js +3009 -0
  501. package/dist/gdresource-CgyXKpe4.js +8 -0
  502. package/dist/gdscript-DnurdQnh.js +2 -0
  503. package/dist/gdscript-STdmRKv-.js +2 -0
  504. package/dist/gdshader-Bs2s6cSB.js +2 -0
  505. package/dist/gdshader-YiVaPq6D.js +2 -0
  506. package/dist/genie-BppkvzZC.js +2 -0
  507. package/dist/gherkin-Bp4zdWMb.js +2 -0
  508. package/dist/git-commit--0GGwZNa.js +3 -0
  509. package/dist/git-rebase-orw-bSIZ.js +3 -0
  510. package/dist/gitGraph-F6HP7TQM-CH5XLm5Z.js +8 -0
  511. package/dist/gitGraphDiagram-NY62KEGX-Cq8AbOhM.js +634 -0
  512. package/dist/github-dark-CMN1tZPn.js +2 -0
  513. package/dist/github-dark-DxCf_Qaz.js +2 -0
  514. package/dist/github-dark-default-DVCJut02.js +2 -0
  515. package/dist/github-dark-dimmed-DXu9oDqW.js +2 -0
  516. package/dist/github-dark-high-contrast-BBZdE-mX.js +2 -0
  517. package/dist/github-light-CfdX7txK.js +2 -0
  518. package/dist/github-light-Y8g-VxKq.js +2 -0
  519. package/dist/github-light-default-BNGkGE--.js +2 -0
  520. package/dist/github-light-high-contrast-DiSIc-nG.js +2 -0
  521. package/dist/gleam-Lw0tKp8T.js +2 -0
  522. package/dist/glimmer-js-C6E6wJv0.js +12 -0
  523. package/dist/glimmer-ts-C6GgTGNO.js +12 -0
  524. package/dist/glsl-D8_YBRKT.js +3 -0
  525. package/dist/glsl-rwn_QCp2.js +3 -0
  526. package/dist/gnuplot-BeA3etmO.js +2 -0
  527. package/dist/go-BhDDN9y4.js +2 -0
  528. package/dist/go-xfE7BrfS.js +2 -0
  529. package/dist/graphlib-BZdVmxO6.js +223 -0
  530. package/dist/graphql-DQHhbQm2.js +6 -0
  531. package/dist/graphql-DoBLseH6.js +12 -0
  532. package/dist/groovy-C5-mv4io.js +2 -0
  533. package/dist/gruvbox-dark-hard-CULu6kVy.js +2 -0
  534. package/dist/gruvbox-dark-medium-BJM4uQXO.js +2 -0
  535. package/dist/gruvbox-dark-soft-CVaORUwa.js +2 -0
  536. package/dist/gruvbox-light-hard-B-WJAGLa.js +2 -0
  537. package/dist/gruvbox-light-medium-jc8FWnuC.js +2 -0
  538. package/dist/gruvbox-light-soft-CmvYQK92.js +2 -0
  539. package/dist/hack-DEAxoi73.js +10 -0
  540. package/dist/haml-BG2d3iX4.js +4 -0
  541. package/dist/haml-mA656Lm7.js +8 -0
  542. package/dist/handlebars-CO5xAxJ3.js +12 -0
  543. package/dist/haskell-Hsexh2aP.js +2 -0
  544. package/dist/haxe-BJVSeYxy.js +2 -0
  545. package/dist/haxe-CD_Rs3P5.js +2 -0
  546. package/dist/hcl-D098sJ_J.js +2 -0
  547. package/dist/hjson-BwXHX5r6.js +2 -0
  548. package/dist/hlsl-B0pnUVYG.js +2 -0
  549. package/dist/hlsl-Dt9-unql.js +2 -0
  550. package/dist/houston-C7hMWO_I.js +2 -0
  551. package/dist/html-DFCxtjnd.js +4 -0
  552. package/dist/html-DKSj3FeM.js +8 -0
  553. package/dist/html-derivative-BCRkrTcD.js +5 -0
  554. package/dist/html-derivative-C-vidKoA.js +3 -0
  555. package/dist/http-CYP1tEDW.js +17 -0
  556. package/dist/hurl-BJexUSKz.js +15 -0
  557. package/dist/hxml-XfuSEjM-.js +3 -0
  558. package/dist/hy-DPQ04rHt.js +2 -0
  559. package/dist/imba-Bgu2n5Mo.js +2 -0
  560. package/dist/index.d.ts +3 -0
  561. package/dist/index.js +2984 -0
  562. package/dist/index.mjs +37693 -0
  563. package/dist/info-NVLQJR56-hEN1y0nS.js +8 -0
  564. package/dist/infoDiagram-WHAUD3N6-btPwHXxp.js +31 -0
  565. package/dist/ini-g9mZnyrk.js +2 -0
  566. package/dist/init-CBay3kgM.js +13 -0
  567. package/dist/isArrayLikeObject-Dz_TDfw0.js +459 -0
  568. package/dist/isEmpty-CCym_WUL.js +32 -0
  569. package/dist/java-CUbPyze1.js +2 -0
  570. package/dist/java-DIOGgqAD.js +2 -0
  571. package/dist/javascript-9-JPeKdm.js +2 -0
  572. package/dist/javascript-De1qhUaI.js +2 -0
  573. package/dist/jinja-CVFxFRh6.js +5 -0
  574. package/dist/jison-0X6LppGq.js +3 -0
  575. package/dist/journeyDiagram-XKPGCS4Q-3OxtBx3I.js +884 -0
  576. package/dist/json-DJtYdWQK.js +2 -0
  577. package/dist/json-fcFpRaf3.js +2 -0
  578. package/dist/json5-CPTZJOmf.js +2 -0
  579. package/dist/jsonc-CYrayg0k.js +2 -0
  580. package/dist/jsonl-Bsv7LjJ3.js +2 -0
  581. package/dist/jsonnet-B7LkHJxg.js +2 -0
  582. package/dist/jssm-BopKGZKg.js +2 -0
  583. package/dist/jsx-Bf3Nk9Di.js +2 -0
  584. package/dist/jsx-qo0JNHpZ.js +2 -0
  585. package/dist/julia-ChGs-n_c.js +17 -0
  586. package/dist/kanagawa-dragon-CSqqi78I.js +2 -0
  587. package/dist/kanagawa-lotus-l2vgoxpH.js +2 -0
  588. package/dist/kanagawa-wave-BWhFcnLj.js +2 -0
  589. package/dist/kanban-definition-3W4ZIXB7-zdtnJaXz.js +971 -0
  590. package/dist/katex-BcWXJDMd.js +22097 -0
  591. package/dist/katex-K1dsczyg.js +2 -0
  592. package/dist/kdl-BbokxoZ9.js +2 -0
  593. package/dist/kotlin-3dXKmwyJ.js +2 -0
  594. package/dist/kusto-Os6_yHEz.js +2 -0
  595. package/dist/laserwave-8RcN1zf8.js +2 -0
  596. package/dist/latex-BnWZlY4q.js +4 -0
  597. package/dist/lean--0Wr4Cy4.js +2 -0
  598. package/dist/less-B4ybD-7s.js +2 -0
  599. package/dist/less-Cb54jO7u.js +2 -0
  600. package/dist/lib/utils.d.ts +2 -0
  601. package/dist/light-plus-CP_iZQDF.js +2 -0
  602. package/dist/line-EpckC7pZ.js +30 -0
  603. package/dist/linear-DjVN4o4U.js +250 -0
  604. package/dist/liquid-pc5Mduds.js +12 -0
  605. package/dist/llvm-ILH_SX7E.js +2 -0
  606. package/dist/log-DwO_GzA0.js +2 -0
  607. package/dist/logo-B4FeRowR.js +2 -0
  608. package/dist/lua-0TqNbT8C.js +3 -0
  609. package/dist/lua-6pXga3HV.js +3 -0
  610. package/dist/luau-DsUEyLJN.js +2 -0
  611. package/dist/main.d.ts +0 -0
  612. package/dist/make-p6NYc19I.js +2 -0
  613. package/dist/markdown-CCRtgC0b.js +2 -0
  614. package/dist/markdown-LaaQ4Eua.js +2 -0
  615. package/dist/marked.esm-D9xINNve.js +1384 -0
  616. package/dist/marko-D8uDUUEs.js +12 -0
  617. package/dist/material-theme-D__z84-n.js +2 -0
  618. package/dist/material-theme-darker-CWC5BoMv.js +2 -0
  619. package/dist/material-theme-lighter-BJrV5b2o.js +2 -0
  620. package/dist/material-theme-ocean-DYpMfDiX.js +2 -0
  621. package/dist/material-theme-palenight-3Ix3iI7Q.js +2 -0
  622. package/dist/math-CJAnbPum.js +8 -0
  623. package/dist/matlab-CL0oMGfq.js +2 -0
  624. package/dist/mdc-Ki3KnB5U.js +13 -0
  625. package/dist/mdx-BTufVkNP.js +2 -0
  626. package/dist/mermaid-FCjIh1A7.js +2 -0
  627. package/dist/mermaid-parser.core-DVXSGppp.js +48 -0
  628. package/dist/mermaid.core-Ra1JFCui.js +895 -0
  629. package/dist/min-dark-B4KRMcN3.js +2 -0
  630. package/dist/min-light-BQVJODr0.js +2 -0
  631. package/dist/mindmap-definition-VGOIOE7T-CRPO52xV.js +960 -0
  632. package/dist/mipsasm-Cn6AQ4lM.js +2 -0
  633. package/dist/mojo-C9IiQhp4.js +2 -0
  634. package/dist/monokai-vDwMMRi4.js +2 -0
  635. package/dist/move-BdizQ4_I.js +2 -0
  636. package/dist/narrat-BP2kx-u2.js +2 -0
  637. package/dist/nextflow-CyRmCGOe.js +2 -0
  638. package/dist/nginx-B46vdQ9n.js +4 -0
  639. package/dist/night-owl-DmjkOa5g.js +2 -0
  640. package/dist/nim-BxQNx10D.js +19 -0
  641. package/dist/nix-qPhlsqZI.js +2 -0
  642. package/dist/nord-sjxbvIbg.js +2 -0
  643. package/dist/nushell-puA-1bCW.js +2 -0
  644. package/dist/objective-c-D-qDLNy5.js +2 -0
  645. package/dist/objective-cpp-CFxSAM6p.js +2 -0
  646. package/dist/ocaml-CsLB7SWJ.js +2 -0
  647. package/dist/one-dark-pro-BHH-VjFD.js +2 -0
  648. package/dist/one-light-BqE6erWk.js +2 -0
  649. package/dist/openscad-DJCIQfnJ.js +2 -0
  650. package/dist/ordinal-CYQpsShT.js +61 -0
  651. package/dist/packet-BFZMPI3H-Bnlch4JI.js +8 -0
  652. package/dist/pascal-CPg9_ZFN.js +2 -0
  653. package/dist/path-esxOUfAH.js +79 -0
  654. package/dist/perl-D1bDaADZ.js +15 -0
  655. package/dist/php-BX51InqL.js +9 -0
  656. package/dist/php-D5tmU8Cr.js +16 -0
  657. package/dist/pie-7BOR55EZ-B9egLHl5.js +8 -0
  658. package/dist/pieDiagram-ADFJNKIX-CKSgB7fx.js +172 -0
  659. package/dist/pkl-BQQ96hvn.js +2 -0
  660. package/dist/plastic-BrNUBdSC.js +2 -0
  661. package/dist/plsql-Co7Bxe7U.js +2 -0
  662. package/dist/po-BqzJCro7.js +2 -0
  663. package/dist/poimandres-C_AK8TlO.js +2 -0
  664. package/dist/polar-CtdYIPEe.js +2 -0
  665. package/dist/postcss-ChqFKb46.js +2 -0
  666. package/dist/postcss-ainQkoyY.js +2 -0
  667. package/dist/powerquery-CDugc1w-.js +2 -0
  668. package/dist/powershell-j5X-IA59.js +2 -0
  669. package/dist/prisma-Cyl7YhUw.js +2 -0
  670. package/dist/prolog-DELKnUYf.js +2 -0
  671. package/dist/proto-C4A_gDBY.js +2 -0
  672. package/dist/pug-BcLlS7Yb.js +10 -0
  673. package/dist/puppet-DFC9LyFj.js +2 -0
  674. package/dist/purescript-eECq7_n2.js +2 -0
  675. package/dist/python-BhdCuCld.js +2 -0
  676. package/dist/python-CuBu5pyY.js +2 -0
  677. package/dist/qml-MD0NqqIl.js +3 -0
  678. package/dist/qmldir-BpJII-Ze.js +2 -0
  679. package/dist/qss-CpMcemMc.js +2 -0
  680. package/dist/quadrantDiagram-AYHSOK5B-BHzqivzD.js +1970 -0
  681. package/dist/r-CQeHOO4c.js +2 -0
  682. package/dist/r-D90zdkbN.js +2 -0
  683. package/dist/racket-COTs6Zfi.js +2 -0
  684. package/dist/radar-NHE76QYJ-DdALhlvV.js +8 -0
  685. package/dist/raku-DfOtwMUC.js +2 -0
  686. package/dist/razor-eRwFWsjJ.js +10 -0
  687. package/dist/red-CWGFZsim.js +2 -0
  688. package/dist/reg-BX5DwoEA.js +2 -0
  689. package/dist/regexp-Ca0eDBa2.js +2 -0
  690. package/dist/regexp-Cap8fK_2.js +2 -0
  691. package/dist/rel-CzXuLSk3.js +2 -0
  692. package/dist/request/index.d.ts +6 -0
  693. package/dist/requirementDiagram-UZGBJVZJ-Darhwvir.js +2194 -0
  694. package/dist/riscv-DnFIiqh3.js +2 -0
  695. package/dist/rose-pine-C4v2iQVe.js +2 -0
  696. package/dist/rose-pine-dawn-D5sdDB-J.js +2 -0
  697. package/dist/rose-pine-moon-2Vb7bLLO.js +2 -0
  698. package/dist/rosmsg-D02ul3fM.js +2 -0
  699. package/dist/rst-DFmSdXGd.js +34 -0
  700. package/dist/ruby-BAEFomR0.js +20 -0
  701. package/dist/ruby-DDMUvAvC.js +28 -0
  702. package/dist/rust-s3hBbfQg.js +2 -0
  703. package/dist/sankeyDiagram-TZEHDZUN-KiSvBN_C.js +884 -0
  704. package/dist/sas-TjtLSnOp.js +3 -0
  705. package/dist/sass-v3HeJ9Fl.js +2 -0
  706. package/dist/scala-BTIBM_Vn.js +2 -0
  707. package/dist/scheme-C4NQMf7a.js +2 -0
  708. package/dist/scss-C-bthdG1.js +3 -0
  709. package/dist/scss-D-6-mg-f.js +3 -0
  710. package/dist/sdbl-BA3l-JrH.js +2 -0
  711. package/dist/sdbl-gc7zIVWR.js +2 -0
  712. package/dist/sequenceDiagram-WL72ISMW-D2Mo7Vtj.js +3560 -0
  713. package/dist/shaderlab-BRlB5fpk.js +3 -0
  714. package/dist/shellscript-BQ8mKDAF.js +2 -0
  715. package/dist/shellscript-DZa_4vvb.js +2 -0
  716. package/dist/shellsession-CIlmlgbR.js +3 -0
  717. package/dist/slack-dark-DhXO5DWr.js +2 -0
  718. package/dist/slack-ochin-aAGl4PPH.js +2 -0
  719. package/dist/smalltalk-DbwVUw_i.js +2 -0
  720. package/dist/snazzy-light-B4S5mk83.js +2 -0
  721. package/dist/solarized-dark-Dexkq3Fm.js +2 -0
  722. package/dist/solarized-light-I-Bzy8UC.js +2 -0
  723. package/dist/solidity-SMk0TJDc.js +2 -0
  724. package/dist/soy-DwSCrzEF.js +5 -0
  725. package/dist/sparql-D9kVSpEx.js +3 -0
  726. package/dist/splunk-DXXu2r7r.js +2 -0
  727. package/dist/sql-Bi3LyNPb.js +2 -0
  728. package/dist/sql-D0eLHBiZ.js +2 -0
  729. package/dist/src-B-SBGd0A.js +1975 -0
  730. package/dist/ssh-config-DyVcFTfI.js +2 -0
  731. package/dist/stata-DkEObyNb.js +3 -0
  732. package/dist/stateDiagram-FKZM4ZOC-BRQN2Npg.js +224 -0
  733. package/dist/stateDiagram-v2-4FDKWEC3-CeeIKiFG.js +32 -0
  734. package/dist/stylus-BKTuFHcX.js +2 -0
  735. package/dist/stylus-DEHALDNh.js +2 -0
  736. package/dist/svelte-KFuclcR6.js +12 -0
  737. package/dist/swift-Cenptrnf.js +2 -0
  738. package/dist/synthwave-84-BRkDuVE-.js +2 -0
  739. package/dist/system-verilog-Cvgukx4v.js +2 -0
  740. package/dist/systemd-BepdslJQ.js +2 -0
  741. package/dist/talonscript-Q98m-VXh.js +2 -0
  742. package/dist/tasl-uebrX98X.js +2 -0
  743. package/dist/tcl-B1Ny4XFf.js +2 -0
  744. package/dist/templ-C5mtYbb_.js +10 -0
  745. package/dist/terraform-0mA5ERTe.js +2 -0
  746. package/dist/tex-B4uYy1vC.js +3 -0
  747. package/dist/tex-BoVFa1ir.js +3 -0
  748. package/dist/timeline-definition-IT6M3QCI-CSwH0Pnx.js +830 -0
  749. package/dist/tokyo-night-D0mU3-u8.js +2 -0
  750. package/dist/toml-vMAjra5M.js +2 -0
  751. package/dist/treemap-KMMF4GRG-COjpj6-C.js +8 -0
  752. package/dist/ts-tags-DRdTXGhb.js +38 -0
  753. package/dist/tsv-BnmbkntZ.js +2 -0
  754. package/dist/tsx-BaaPsUbd.js +2 -0
  755. package/dist/tsx-C0w0w5St.js +2 -0
  756. package/dist/turtle-4UWi_qX6.js +2 -0
  757. package/dist/turtle-BRmolh-6.js +2 -0
  758. package/dist/twig-cEhAbahS.js +33 -0
  759. package/dist/typescript-4YtK2JL4.js +2 -0
  760. package/dist/typescript-CmJ8D0yY.js +2 -0
  761. package/dist/typespec-CILw3zvZ.js +2 -0
  762. package/dist/typst-CLajFw6q.js +2 -0
  763. package/dist/v-MJV2RQvK.js +2 -0
  764. package/dist/vala-Dc1TiHw1.js +2 -0
  765. package/dist/vb-CoJdNmGs.js +2 -0
  766. package/dist/verilog-C7aVmiO0.js +2 -0
  767. package/dist/vesper-Cvcqyrim.js +2 -0
  768. package/dist/vhdl-CYQvzAG1.js +2 -0
  769. package/dist/viml-DOyjiDI8.js +2 -0
  770. package/dist/vitesse-black-CUYJaB5b.js +2 -0
  771. package/dist/vitesse-dark-BNlzDJ1Z.js +2 -0
  772. package/dist/vitesse-light-JU98KqVa.js +2 -0
  773. package/dist/vue-B3C4YeUK.js +8 -0
  774. package/dist/vue-DMpjAWNv.js +20 -0
  775. package/dist/vue-html-BIZN50ug.js +13 -0
  776. package/dist/vue-vine-DxezWcjL.js +22 -0
  777. package/dist/vyper-JU_r7Ch6.js +2 -0
  778. package/dist/wasm-DJ1S--fN.js +2 -0
  779. package/dist/wasm-eLFiAU8u.js +2 -0
  780. package/dist/wenyan-CqkzmyWz.js +2 -0
  781. package/dist/wgsl-gV62iTnF.js +2 -0
  782. package/dist/wikitext-BfUl8La4.js +2 -0
  783. package/dist/wit-kp_bCf2U.js +2 -0
  784. package/dist/wolfram-aPsN9AKt.js +2 -0
  785. package/dist/xml-BglBgo29.js +3 -0
  786. package/dist/xml-BxRdgEAX.js +3 -0
  787. package/dist/xsl-Cni90e0k.js +4 -0
  788. package/dist/xychartDiagram-PRI3JC2R-CGXFYn39.js +2022 -0
  789. package/dist/yaml-DQRfaSRo.js +2 -0
  790. package/dist/yaml-P2kjOPvW.js +2 -0
  791. package/dist/zenscript-BuY4FX-t.js +2 -0
  792. package/dist/zig-CGDGjytz.js +2 -0
  793. package/package.json +66 -60
  794. package/.vscode/extensions.json +0 -3
  795. package/.vscode/settings.json +0 -6
  796. package/auto-imports.d.ts +0 -73
  797. package/components.d.ts +0 -312
  798. package/components.json +0 -21
  799. package/index.html +0 -13
  800. package/src/App.vue +0 -68
  801. package/src/components/ChatConversation/ChatConversation.vue +0 -97
  802. package/src/components/ChatConversation/index.ts +0 -1
  803. package/src/components/ChatPromptInputProvider/ChatPromptInputProvider.vue +0 -47
  804. package/src/components/ChatPromptInputProvider/index.ts +0 -1
  805. package/src/components/ai-elements/artifact/Artifact.vue +0 -23
  806. package/src/components/ai-elements/artifact/ArtifactAction.vue +0 -72
  807. package/src/components/ai-elements/artifact/ArtifactActions.vue +0 -19
  808. package/src/components/ai-elements/artifact/ArtifactClose.vue +0 -39
  809. package/src/components/ai-elements/artifact/ArtifactContent.vue +0 -20
  810. package/src/components/ai-elements/artifact/ArtifactDescription.vue +0 -20
  811. package/src/components/ai-elements/artifact/ArtifactHeader.vue +0 -23
  812. package/src/components/ai-elements/artifact/ArtifactTitle.vue +0 -20
  813. package/src/components/ai-elements/artifact/index.ts +0 -8
  814. package/src/components/ai-elements/canvas/Canvas.vue +0 -37
  815. package/src/components/ai-elements/canvas/index.ts +0 -1
  816. package/src/components/ai-elements/chain-of-thought/ChainOfThought.vue +0 -41
  817. package/src/components/ai-elements/chain-of-thought/ChainOfThoughtContent.vue +0 -32
  818. package/src/components/ai-elements/chain-of-thought/ChainOfThoughtHeader.vue +0 -43
  819. package/src/components/ai-elements/chain-of-thought/ChainOfThoughtImage.vue +0 -25
  820. package/src/components/ai-elements/chain-of-thought/ChainOfThoughtSearchResult.vue +0 -24
  821. package/src/components/ai-elements/chain-of-thought/ChainOfThoughtSearchResults.vue +0 -17
  822. package/src/components/ai-elements/chain-of-thought/ChainOfThoughtStep.vue +0 -54
  823. package/src/components/ai-elements/chain-of-thought/context.ts +0 -22
  824. package/src/components/ai-elements/chain-of-thought/index.ts +0 -7
  825. package/src/components/ai-elements/checkpoint/Checkpoint.vue +0 -19
  826. package/src/components/ai-elements/checkpoint/CheckpointIcon.vue +0 -19
  827. package/src/components/ai-elements/checkpoint/CheckpointTrigger.vue +0 -46
  828. package/src/components/ai-elements/checkpoint/index.ts +0 -3
  829. package/src/components/ai-elements/code-block/CodeBlock.vue +0 -84
  830. package/src/components/ai-elements/code-block/CodeBlockCopyButton.vue +0 -84
  831. package/src/components/ai-elements/code-block/context.ts +0 -7
  832. package/src/components/ai-elements/code-block/index.ts +0 -2
  833. package/src/components/ai-elements/code-block/utils.ts +0 -46
  834. package/src/components/ai-elements/confirmation/Confirmation.vue +0 -30
  835. package/src/components/ai-elements/confirmation/ConfirmationAccepted.vue +0 -18
  836. package/src/components/ai-elements/confirmation/ConfirmationAction.vue +0 -9
  837. package/src/components/ai-elements/confirmation/ConfirmationActions.vue +0 -23
  838. package/src/components/ai-elements/confirmation/ConfirmationRejected.vue +0 -18
  839. package/src/components/ai-elements/confirmation/ConfirmationRequest.vue +0 -11
  840. package/src/components/ai-elements/confirmation/ConfirmationTitle.vue +0 -18
  841. package/src/components/ai-elements/confirmation/context.ts +0 -46
  842. package/src/components/ai-elements/confirmation/index.ts +0 -7
  843. package/src/components/ai-elements/connection/Connection.vue +0 -36
  844. package/src/components/ai-elements/connection/index.ts +0 -1
  845. package/src/components/ai-elements/context/Context.vue +0 -29
  846. package/src/components/ai-elements/context/ContextCacheUsage.vue +0 -45
  847. package/src/components/ai-elements/context/ContextContent.vue +0 -20
  848. package/src/components/ai-elements/context/ContextContentBody.vue +0 -14
  849. package/src/components/ai-elements/context/ContextContentFooter.vue +0 -49
  850. package/src/components/ai-elements/context/ContextContentHeader.vue +0 -49
  851. package/src/components/ai-elements/context/ContextIcon.vue +0 -62
  852. package/src/components/ai-elements/context/ContextInputUsage.vue +0 -46
  853. package/src/components/ai-elements/context/ContextOutputUsage.vue +0 -45
  854. package/src/components/ai-elements/context/ContextReasoningUsage.vue +0 -48
  855. package/src/components/ai-elements/context/ContextTrigger.vue +0 -32
  856. package/src/components/ai-elements/context/TokensWithCost.vue +0 -25
  857. package/src/components/ai-elements/context/context.ts +0 -23
  858. package/src/components/ai-elements/context/index.ts +0 -12
  859. package/src/components/ai-elements/controls/Controls.vue +0 -25
  860. package/src/components/ai-elements/controls/index.ts +0 -1
  861. package/src/components/ai-elements/conversation/Conversation.vue +0 -37
  862. package/src/components/ai-elements/conversation/ConversationContent.vue +0 -21
  863. package/src/components/ai-elements/conversation/ConversationEmptyState.vue +0 -40
  864. package/src/components/ai-elements/conversation/ConversationScrollButton.vue +0 -34
  865. package/src/components/ai-elements/conversation/index.ts +0 -4
  866. package/src/components/ai-elements/edge/Animated.vue +0 -91
  867. package/src/components/ai-elements/edge/Temporary.vue +0 -28
  868. package/src/components/ai-elements/edge/index.ts +0 -2
  869. package/src/components/ai-elements/image/Image.vue +0 -29
  870. package/src/components/ai-elements/image/index.ts +0 -1
  871. package/src/components/ai-elements/inline-citation/InlineCitation.vue +0 -14
  872. package/src/components/ai-elements/inline-citation/InlineCitationCard.vue +0 -17
  873. package/src/components/ai-elements/inline-citation/InlineCitationCardBody.vue +0 -15
  874. package/src/components/ai-elements/inline-citation/InlineCitationCardTrigger.vue +0 -35
  875. package/src/components/ai-elements/inline-citation/InlineCitationCarousel.vue +0 -15
  876. package/src/components/ai-elements/inline-citation/InlineCitationCarouselContent.vue +0 -9
  877. package/src/components/ai-elements/inline-citation/InlineCitationCarouselHeader.vue +0 -16
  878. package/src/components/ai-elements/inline-citation/InlineCitationCarouselIndex.vue +0 -46
  879. package/src/components/ai-elements/inline-citation/InlineCitationCarouselItem.vue +0 -15
  880. package/src/components/ai-elements/inline-citation/InlineCitationCarouselNext.vue +0 -23
  881. package/src/components/ai-elements/inline-citation/InlineCitationCarouselPrev.vue +0 -23
  882. package/src/components/ai-elements/inline-citation/InlineCitationQuote.vue +0 -16
  883. package/src/components/ai-elements/inline-citation/InlineCitationSource.vue +0 -26
  884. package/src/components/ai-elements/inline-citation/InlineCitationText.vue +0 -14
  885. package/src/components/ai-elements/inline-citation/index.ts +0 -14
  886. package/src/components/ai-elements/loader/Loader.vue +0 -23
  887. package/src/components/ai-elements/loader/LoaderIcon.vue +0 -38
  888. package/src/components/ai-elements/loader/index.ts +0 -2
  889. package/src/components/ai-elements/message/Message.vue +0 -27
  890. package/src/components/ai-elements/message/MessageAction.vue +0 -45
  891. package/src/components/ai-elements/message/MessageActions.vue +0 -19
  892. package/src/components/ai-elements/message/MessageAttachment.vue +0 -87
  893. package/src/components/ai-elements/message/MessageAttachments.vue +0 -25
  894. package/src/components/ai-elements/message/MessageAvatar.vue +0 -22
  895. package/src/components/ai-elements/message/MessageBranch.vue +0 -66
  896. package/src/components/ai-elements/message/MessageBranchContent.vue +0 -51
  897. package/src/components/ai-elements/message/MessageBranchNext.vue +0 -23
  898. package/src/components/ai-elements/message/MessageBranchPage.vue +0 -28
  899. package/src/components/ai-elements/message/MessageBranchPrevious.vue +0 -23
  900. package/src/components/ai-elements/message/MessageBranchSelector.vue +0 -23
  901. package/src/components/ai-elements/message/MessageContent.vue +0 -26
  902. package/src/components/ai-elements/message/MessageResponse.vue +0 -42
  903. package/src/components/ai-elements/message/MessageToolbar.vue +0 -24
  904. package/src/components/ai-elements/message/context.ts +0 -22
  905. package/src/components/ai-elements/message/index.ts +0 -15
  906. package/src/components/ai-elements/model-selector/ModelSelector.vue +0 -9
  907. package/src/components/ai-elements/model-selector/ModelSelectorContent.vue +0 -29
  908. package/src/components/ai-elements/model-selector/ModelSelectorDialog.vue +0 -9
  909. package/src/components/ai-elements/model-selector/ModelSelectorEmpty.vue +0 -9
  910. package/src/components/ai-elements/model-selector/ModelSelectorGroup.vue +0 -9
  911. package/src/components/ai-elements/model-selector/ModelSelectorInput.vue +0 -18
  912. package/src/components/ai-elements/model-selector/ModelSelectorItem.vue +0 -10
  913. package/src/components/ai-elements/model-selector/ModelSelectorList.vue +0 -9
  914. package/src/components/ai-elements/model-selector/ModelSelectorLogo.vue +0 -22
  915. package/src/components/ai-elements/model-selector/ModelSelectorLogoGroup.vue +0 -24
  916. package/src/components/ai-elements/model-selector/ModelSelectorName.vue +0 -19
  917. package/src/components/ai-elements/model-selector/ModelSelectorSeparator.vue +0 -7
  918. package/src/components/ai-elements/model-selector/ModelSelectorShortcut.vue +0 -9
  919. package/src/components/ai-elements/model-selector/ModelSelectorTrigger.vue +0 -9
  920. package/src/components/ai-elements/model-selector/index.ts +0 -14
  921. package/src/components/ai-elements/node/Node.vue +0 -31
  922. package/src/components/ai-elements/node/NodeAction.vue +0 -9
  923. package/src/components/ai-elements/node/NodeContent.vue +0 -15
  924. package/src/components/ai-elements/node/NodeDescription.vue +0 -9
  925. package/src/components/ai-elements/node/NodeFooter.vue +0 -15
  926. package/src/components/ai-elements/node/NodeHeader.vue +0 -15
  927. package/src/components/ai-elements/node/NodeTitle.vue +0 -9
  928. package/src/components/ai-elements/node/index.ts +0 -7
  929. package/src/components/ai-elements/open-in-chat/OpenIn.vue +0 -20
  930. package/src/components/ai-elements/open-in-chat/OpenInContent.vue +0 -25
  931. package/src/components/ai-elements/open-in-chat/OpenInItemLink.vue +0 -30
  932. package/src/components/ai-elements/open-in-chat/OpenInTrigger.vue +0 -16
  933. package/src/components/ai-elements/open-in-chat/context.ts +0 -20
  934. package/src/components/ai-elements/open-in-chat/index.ts +0 -9
  935. package/src/components/ai-elements/open-in-chat/providers/icons/ChatGPT.vue +0 -13
  936. package/src/components/ai-elements/open-in-chat/providers/icons/Claude.vue +0 -15
  937. package/src/components/ai-elements/open-in-chat/providers/icons/Cursor.vue +0 -13
  938. package/src/components/ai-elements/open-in-chat/providers/icons/Github.vue +0 -8
  939. package/src/components/ai-elements/open-in-chat/providers/icons/Scira.vue +0 -58
  940. package/src/components/ai-elements/open-in-chat/providers/icons/V0.vue +0 -15
  941. package/src/components/ai-elements/open-in-chat/providers/icons/index.ts +0 -6
  942. package/src/components/ai-elements/open-in-chat/providers/index.ts +0 -69
  943. package/src/components/ai-elements/open-in-chat/providers/items/OpenInChatGPT.vue +0 -18
  944. package/src/components/ai-elements/open-in-chat/providers/items/OpenInClaude.vue +0 -18
  945. package/src/components/ai-elements/open-in-chat/providers/items/OpenInCursor.vue +0 -18
  946. package/src/components/ai-elements/open-in-chat/providers/items/OpenInScira.vue +0 -18
  947. package/src/components/ai-elements/open-in-chat/providers/items/OpenInT3.vue +0 -18
  948. package/src/components/ai-elements/open-in-chat/providers/items/OpenInv0.vue +0 -18
  949. package/src/components/ai-elements/panel/Panel.vue +0 -28
  950. package/src/components/ai-elements/panel/index.ts +0 -1
  951. package/src/components/ai-elements/plan/Plan.vue +0 -32
  952. package/src/components/ai-elements/plan/PlanAction.vue +0 -9
  953. package/src/components/ai-elements/plan/PlanContent.vue +0 -12
  954. package/src/components/ai-elements/plan/PlanDescription.vue +0 -25
  955. package/src/components/ai-elements/plan/PlanFooter.vue +0 -9
  956. package/src/components/ai-elements/plan/PlanHeader.vue +0 -18
  957. package/src/components/ai-elements/plan/PlanTitle.vue +0 -16
  958. package/src/components/ai-elements/plan/PlanTrigger.vue +0 -25
  959. package/src/components/ai-elements/plan/context.ts +0 -20
  960. package/src/components/ai-elements/plan/index.ts +0 -8
  961. package/src/components/ai-elements/prompt-input/PromptInput.vue +0 -116
  962. package/src/components/ai-elements/prompt-input/PromptInputActionAddAttachments.vue +0 -22
  963. package/src/components/ai-elements/prompt-input/PromptInputActionMenu.vue +0 -15
  964. package/src/components/ai-elements/prompt-input/PromptInputActionMenuContent.vue +0 -21
  965. package/src/components/ai-elements/prompt-input/PromptInputActionMenuItem.vue +0 -19
  966. package/src/components/ai-elements/prompt-input/PromptInputActionMenuTrigger.vue +0 -22
  967. package/src/components/ai-elements/prompt-input/PromptInputAttachment.vue +0 -94
  968. package/src/components/ai-elements/prompt-input/PromptInputAttachments.vue +0 -22
  969. package/src/components/ai-elements/prompt-input/PromptInputBody.vue +0 -12
  970. package/src/components/ai-elements/prompt-input/PromptInputButton.vue +0 -56
  971. package/src/components/ai-elements/prompt-input/PromptInputCommand.vue +0 -19
  972. package/src/components/ai-elements/prompt-input/PromptInputCommandEmpty.vue +0 -19
  973. package/src/components/ai-elements/prompt-input/PromptInputCommandGroup.vue +0 -19
  974. package/src/components/ai-elements/prompt-input/PromptInputCommandInput.vue +0 -17
  975. package/src/components/ai-elements/prompt-input/PromptInputCommandItem.vue +0 -19
  976. package/src/components/ai-elements/prompt-input/PromptInputCommandList.vue +0 -17
  977. package/src/components/ai-elements/prompt-input/PromptInputCommandSeparator.vue +0 -16
  978. package/src/components/ai-elements/prompt-input/PromptInputFooter.vue +0 -23
  979. package/src/components/ai-elements/prompt-input/PromptInputHeader.vue +0 -23
  980. package/src/components/ai-elements/prompt-input/PromptInputHoverCard.vue +0 -23
  981. package/src/components/ai-elements/prompt-input/PromptInputHoverCardContent.vue +0 -19
  982. package/src/components/ai-elements/prompt-input/PromptInputHoverCardTrigger.vue +0 -15
  983. package/src/components/ai-elements/prompt-input/PromptInputProvider.vue +0 -32
  984. package/src/components/ai-elements/prompt-input/PromptInputSelect.vue +0 -15
  985. package/src/components/ai-elements/prompt-input/PromptInputSelectContent.vue +0 -19
  986. package/src/components/ai-elements/prompt-input/PromptInputSelectItem.vue +0 -19
  987. package/src/components/ai-elements/prompt-input/PromptInputSelectTrigger.vue +0 -26
  988. package/src/components/ai-elements/prompt-input/PromptInputSelectValue.vue +0 -19
  989. package/src/components/ai-elements/prompt-input/PromptInputSpeechButton.vue +0 -137
  990. package/src/components/ai-elements/prompt-input/PromptInputSubmit.vue +0 -60
  991. package/src/components/ai-elements/prompt-input/PromptInputTab.vue +0 -16
  992. package/src/components/ai-elements/prompt-input/PromptInputTabBody.vue +0 -16
  993. package/src/components/ai-elements/prompt-input/PromptInputTabItem.vue +0 -16
  994. package/src/components/ai-elements/prompt-input/PromptInputTabLabel.vue +0 -16
  995. package/src/components/ai-elements/prompt-input/PromptInputTabsList.vue +0 -16
  996. package/src/components/ai-elements/prompt-input/PromptInputTextarea.vue +0 -78
  997. package/src/components/ai-elements/prompt-input/PromptInputTools.vue +0 -12
  998. package/src/components/ai-elements/prompt-input/context.ts +0 -223
  999. package/src/components/ai-elements/prompt-input/index.ts +0 -39
  1000. package/src/components/ai-elements/prompt-input/types.ts +0 -28
  1001. package/src/components/ai-elements/queue/Queue.vue +0 -21
  1002. package/src/components/ai-elements/queue/QueueItem.vue +0 -21
  1003. package/src/components/ai-elements/queue/QueueItemAction.vue +0 -25
  1004. package/src/components/ai-elements/queue/QueueItemActions.vue +0 -14
  1005. package/src/components/ai-elements/queue/QueueItemAttachment.vue +0 -14
  1006. package/src/components/ai-elements/queue/QueueItemContent.vue +0 -32
  1007. package/src/components/ai-elements/queue/QueueItemDescription.vue +0 -32
  1008. package/src/components/ai-elements/queue/QueueItemFile.vue +0 -25
  1009. package/src/components/ai-elements/queue/QueueItemImage.vue +0 -18
  1010. package/src/components/ai-elements/queue/QueueItemIndicator.vue +0 -30
  1011. package/src/components/ai-elements/queue/QueueList.vue +0 -22
  1012. package/src/components/ai-elements/queue/QueueSection.vue +0 -26
  1013. package/src/components/ai-elements/queue/QueueSectionContent.vue +0 -15
  1014. package/src/components/ai-elements/queue/QueueSectionLabel.vue +0 -26
  1015. package/src/components/ai-elements/queue/QueueSectionTrigger.vue +0 -25
  1016. package/src/components/ai-elements/queue/index.ts +0 -15
  1017. package/src/components/ai-elements/reasoning/Reasoning.vue +0 -94
  1018. package/src/components/ai-elements/reasoning/ReasoningContent.vue +0 -41
  1019. package/src/components/ai-elements/reasoning/ReasoningTrigger.vue +0 -61
  1020. package/src/components/ai-elements/reasoning/context.ts +0 -19
  1021. package/src/components/ai-elements/reasoning/index.ts +0 -3
  1022. package/src/components/ai-elements/shimmer/Shimmer.vue +0 -69
  1023. package/src/components/ai-elements/shimmer/index.ts +0 -1
  1024. package/src/components/ai-elements/sources/Source.vue +0 -26
  1025. package/src/components/ai-elements/sources/Sources.vue +0 -17
  1026. package/src/components/ai-elements/sources/SourcesContent.vue +0 -23
  1027. package/src/components/ai-elements/sources/SourcesTrigger.vue +0 -24
  1028. package/src/components/ai-elements/sources/index.ts +0 -4
  1029. package/src/components/ai-elements/suggestion/Suggestion.vue +0 -38
  1030. package/src/components/ai-elements/suggestion/Suggestions.vue +0 -20
  1031. package/src/components/ai-elements/suggestion/index.ts +0 -2
  1032. package/src/components/ai-elements/task/Task.vue +0 -32
  1033. package/src/components/ai-elements/task/TaskContent.vue +0 -27
  1034. package/src/components/ai-elements/task/TaskItem.vue +0 -16
  1035. package/src/components/ai-elements/task/TaskItemFile.vue +0 -18
  1036. package/src/components/ai-elements/task/TaskTrigger.vue +0 -33
  1037. package/src/components/ai-elements/task/index.ts +0 -5
  1038. package/src/components/ai-elements/tool/Tool.vue +0 -18
  1039. package/src/components/ai-elements/tool/ToolContent.vue +0 -23
  1040. package/src/components/ai-elements/tool/ToolHeader.vue +0 -38
  1041. package/src/components/ai-elements/tool/ToolInput.vue +0 -32
  1042. package/src/components/ai-elements/tool/ToolOutput.vue +0 -69
  1043. package/src/components/ai-elements/tool/ToolStatusBadge.vue +0 -63
  1044. package/src/components/ai-elements/tool/index.ts +0 -5
  1045. package/src/components/ai-elements/toolbar/Toolbar.vue +0 -32
  1046. package/src/components/ai-elements/toolbar/index.ts +0 -1
  1047. package/src/components/ai-elements/web-preview/WebPreview.vue +0 -60
  1048. package/src/components/ai-elements/web-preview/WebPreviewBody.vue +0 -34
  1049. package/src/components/ai-elements/web-preview/WebPreviewConsole.vue +0 -92
  1050. package/src/components/ai-elements/web-preview/WebPreviewNavigation.vue +0 -21
  1051. package/src/components/ai-elements/web-preview/WebPreviewNavigationButton.vue +0 -45
  1052. package/src/components/ai-elements/web-preview/WebPreviewUrl.vue +0 -43
  1053. package/src/components/ai-elements/web-preview/context.ts +0 -25
  1054. package/src/components/ai-elements/web-preview/index.ts +0 -7
  1055. package/src/components/ui/alert/Alert.vue +0 -21
  1056. package/src/components/ui/alert/AlertDescription.vue +0 -17
  1057. package/src/components/ui/alert/AlertTitle.vue +0 -17
  1058. package/src/components/ui/alert/index.ts +0 -24
  1059. package/src/components/ui/avatar/Avatar.vue +0 -18
  1060. package/src/components/ui/avatar/AvatarFallback.vue +0 -21
  1061. package/src/components/ui/avatar/AvatarImage.vue +0 -16
  1062. package/src/components/ui/avatar/index.ts +0 -3
  1063. package/src/components/ui/badge/Badge.vue +0 -26
  1064. package/src/components/ui/badge/index.ts +0 -26
  1065. package/src/components/ui/button/Button.vue +0 -29
  1066. package/src/components/ui/button/index.ts +0 -38
  1067. package/src/components/ui/button-group/ButtonGroup.vue +0 -22
  1068. package/src/components/ui/button-group/ButtonGroupSeparator.vue +0 -24
  1069. package/src/components/ui/button-group/ButtonGroupText.vue +0 -29
  1070. package/src/components/ui/button-group/index.ts +0 -25
  1071. package/src/components/ui/card/Card.vue +0 -22
  1072. package/src/components/ui/card/CardAction.vue +0 -17
  1073. package/src/components/ui/card/CardContent.vue +0 -17
  1074. package/src/components/ui/card/CardDescription.vue +0 -17
  1075. package/src/components/ui/card/CardFooter.vue +0 -17
  1076. package/src/components/ui/card/CardHeader.vue +0 -17
  1077. package/src/components/ui/card/CardTitle.vue +0 -17
  1078. package/src/components/ui/card/index.ts +0 -7
  1079. package/src/components/ui/carousel/Carousel.vue +0 -53
  1080. package/src/components/ui/carousel/CarouselContent.vue +0 -33
  1081. package/src/components/ui/carousel/CarouselItem.vue +0 -24
  1082. package/src/components/ui/carousel/CarouselNext.vue +0 -41
  1083. package/src/components/ui/carousel/CarouselPrevious.vue +0 -41
  1084. package/src/components/ui/carousel/index.ts +0 -10
  1085. package/src/components/ui/carousel/interface.ts +0 -26
  1086. package/src/components/ui/carousel/useCarousel.ts +0 -56
  1087. package/src/components/ui/collapsible/Collapsible.vue +0 -19
  1088. package/src/components/ui/collapsible/CollapsibleContent.vue +0 -15
  1089. package/src/components/ui/collapsible/CollapsibleTrigger.vue +0 -15
  1090. package/src/components/ui/collapsible/index.ts +0 -3
  1091. package/src/components/ui/command/Command.vue +0 -87
  1092. package/src/components/ui/command/CommandDialog.vue +0 -31
  1093. package/src/components/ui/command/CommandEmpty.vue +0 -27
  1094. package/src/components/ui/command/CommandGroup.vue +0 -45
  1095. package/src/components/ui/command/CommandInput.vue +0 -39
  1096. package/src/components/ui/command/CommandItem.vue +0 -76
  1097. package/src/components/ui/command/CommandList.vue +0 -25
  1098. package/src/components/ui/command/CommandSeparator.vue +0 -21
  1099. package/src/components/ui/command/CommandShortcut.vue +0 -17
  1100. package/src/components/ui/command/index.ts +0 -25
  1101. package/src/components/ui/dialog/Dialog.vue +0 -19
  1102. package/src/components/ui/dialog/DialogClose.vue +0 -15
  1103. package/src/components/ui/dialog/DialogContent.vue +0 -53
  1104. package/src/components/ui/dialog/DialogDescription.vue +0 -23
  1105. package/src/components/ui/dialog/DialogFooter.vue +0 -15
  1106. package/src/components/ui/dialog/DialogHeader.vue +0 -17
  1107. package/src/components/ui/dialog/DialogOverlay.vue +0 -21
  1108. package/src/components/ui/dialog/DialogScrollContent.vue +0 -59
  1109. package/src/components/ui/dialog/DialogTitle.vue +0 -23
  1110. package/src/components/ui/dialog/DialogTrigger.vue +0 -15
  1111. package/src/components/ui/dialog/index.ts +0 -10
  1112. package/src/components/ui/dropdown-menu/DropdownMenu.vue +0 -19
  1113. package/src/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +0 -39
  1114. package/src/components/ui/dropdown-menu/DropdownMenuContent.vue +0 -39
  1115. package/src/components/ui/dropdown-menu/DropdownMenuGroup.vue +0 -15
  1116. package/src/components/ui/dropdown-menu/DropdownMenuItem.vue +0 -31
  1117. package/src/components/ui/dropdown-menu/DropdownMenuLabel.vue +0 -23
  1118. package/src/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +0 -21
  1119. package/src/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +0 -40
  1120. package/src/components/ui/dropdown-menu/DropdownMenuSeparator.vue +0 -23
  1121. package/src/components/ui/dropdown-menu/DropdownMenuShortcut.vue +0 -17
  1122. package/src/components/ui/dropdown-menu/DropdownMenuSub.vue +0 -18
  1123. package/src/components/ui/dropdown-menu/DropdownMenuSubContent.vue +0 -27
  1124. package/src/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +0 -30
  1125. package/src/components/ui/dropdown-menu/DropdownMenuTrigger.vue +0 -17
  1126. package/src/components/ui/dropdown-menu/index.ts +0 -16
  1127. package/src/components/ui/hover-card/HoverCard.vue +0 -19
  1128. package/src/components/ui/hover-card/HoverCardContent.vue +0 -43
  1129. package/src/components/ui/hover-card/HoverCardTrigger.vue +0 -15
  1130. package/src/components/ui/hover-card/index.ts +0 -3
  1131. package/src/components/ui/input/Input.vue +0 -33
  1132. package/src/components/ui/input/index.ts +0 -1
  1133. package/src/components/ui/input-group/InputGroup.vue +0 -37
  1134. package/src/components/ui/input-group/InputGroupAddon.vue +0 -36
  1135. package/src/components/ui/input-group/InputGroupButton.vue +0 -21
  1136. package/src/components/ui/input-group/InputGroupInput.vue +0 -19
  1137. package/src/components/ui/input-group/InputGroupText.vue +0 -19
  1138. package/src/components/ui/input-group/InputGroupTextarea.vue +0 -19
  1139. package/src/components/ui/input-group/index.ts +0 -59
  1140. package/src/components/ui/progress/Progress.vue +0 -38
  1141. package/src/components/ui/progress/index.ts +0 -1
  1142. package/src/components/ui/scroll-area/ScrollArea.vue +0 -33
  1143. package/src/components/ui/scroll-area/ScrollBar.vue +0 -32
  1144. package/src/components/ui/scroll-area/index.ts +0 -2
  1145. package/src/components/ui/select/Select.vue +0 -19
  1146. package/src/components/ui/select/SelectContent.vue +0 -51
  1147. package/src/components/ui/select/SelectGroup.vue +0 -15
  1148. package/src/components/ui/select/SelectItem.vue +0 -44
  1149. package/src/components/ui/select/SelectItemText.vue +0 -15
  1150. package/src/components/ui/select/SelectLabel.vue +0 -17
  1151. package/src/components/ui/select/SelectScrollDownButton.vue +0 -26
  1152. package/src/components/ui/select/SelectScrollUpButton.vue +0 -26
  1153. package/src/components/ui/select/SelectSeparator.vue +0 -19
  1154. package/src/components/ui/select/SelectTrigger.vue +0 -33
  1155. package/src/components/ui/select/SelectValue.vue +0 -15
  1156. package/src/components/ui/select/index.ts +0 -11
  1157. package/src/components/ui/separator/Separator.vue +0 -29
  1158. package/src/components/ui/separator/index.ts +0 -1
  1159. package/src/components/ui/textarea/Textarea.vue +0 -28
  1160. package/src/components/ui/textarea/index.ts +0 -1
  1161. package/src/components/ui/tooltip/Tooltip.vue +0 -19
  1162. package/src/components/ui/tooltip/TooltipContent.vue +0 -34
  1163. package/src/components/ui/tooltip/TooltipProvider.vue +0 -14
  1164. package/src/components/ui/tooltip/TooltipTrigger.vue +0 -15
  1165. package/src/components/ui/tooltip/index.ts +0 -4
  1166. package/src/composables/useChat.ts +0 -46
  1167. package/src/index.ts +0 -3
  1168. package/src/lib/utils.ts +0 -7
  1169. package/src/main.ts +0 -5
  1170. package/src/request/index.ts +0 -41
  1171. package/src/style.css +0 -120
  1172. package/tsconfig.app.json +0 -25
  1173. package/tsconfig.json +0 -13
  1174. package/tsconfig.node.json +0 -26
  1175. package/vite.config.ts +0 -26
  1176. /package/{public → dist}/vite.svg +0 -0
@@ -0,0 +1,4861 @@
1
+ import { a as decodeEntities, p as parseFontSize, r as calculateTextWidth, u as handleUndefinedAttr } from "./chunk-S3R3BYOJ-DHTsHczu.js";
2
+ import { g as log, h as __name, p as select_default } from "./src-B-SBGd0A.js";
3
+ import { A as parseGenericTypes, I as sanitizeText, L as sanitizeText3, N as renderKatexSanitized, O as hasKatex, b as getConfig2, d as defaultConfig_default, h as evaluate, s as common_default, y as getConfig } from "./chunk-ABZYJK2D-BZvlc6Ej.js";
4
+ import { n as createText, r as getIconSVG } from "./chunk-JA3XYJ7Z-Dhh1_u_p.js";
5
+ import { t as getSubGraphTitleMargins } from "./chunk-CVBHYZKI-DxEBlSK7.js";
6
+ import { a as userNodeOverrides, i as styles2String, r as solidStateFill, t as compileStyles } from "./chunk-ATLVNIR6-C3g7rsIT.js";
7
+ function t(St, lr, ur) {
8
+ if (St && St.length) {
9
+ let [dr, fr] = lr, pr = Math.PI / 180 * ur, mr = Math.cos(pr), hr = Math.sin(pr);
10
+ for (let lr of St) {
11
+ let [St, ur] = lr;
12
+ lr[0] = (St - dr) * mr - (ur - fr) * hr + dr, lr[1] = (St - dr) * hr + (ur - fr) * mr + fr;
13
+ }
14
+ }
15
+ }
16
+ function e(St, lr) {
17
+ return St[0] === lr[0] && St[1] === lr[1];
18
+ }
19
+ function s(St, lr, ur, dr = 1) {
20
+ let fr = ur, pr = Math.max(lr, .1), mr = St[0] && St[0][0] && typeof St[0][0] == "number" ? [St] : St, hr = [0, 0];
21
+ if (fr) for (let St of mr) t(St, hr, fr);
22
+ let gr = function(St, lr, ur) {
23
+ let dr = [];
24
+ for (let lr of St) {
25
+ let St = [...lr];
26
+ e(St[0], St[St.length - 1]) || St.push([St[0][0], St[0][1]]), St.length > 2 && dr.push(St);
27
+ }
28
+ let fr = [];
29
+ lr = Math.max(lr, .1);
30
+ let pr = [];
31
+ for (let St of dr) for (let lr = 0; lr < St.length - 1; lr++) {
32
+ let ur = St[lr], dr = St[lr + 1];
33
+ if (ur[1] !== dr[1]) {
34
+ let St = Math.min(ur[1], dr[1]);
35
+ pr.push({
36
+ ymin: St,
37
+ ymax: Math.max(ur[1], dr[1]),
38
+ x: St === ur[1] ? ur[0] : dr[0],
39
+ islope: (dr[0] - ur[0]) / (dr[1] - ur[1])
40
+ });
41
+ }
42
+ }
43
+ if (pr.sort(((St, lr) => St.ymin < lr.ymin ? -1 : St.ymin > lr.ymin ? 1 : St.x < lr.x ? -1 : St.x > lr.x ? 1 : St.ymax === lr.ymax ? 0 : (St.ymax - lr.ymax) / Math.abs(St.ymax - lr.ymax))), !pr.length) return fr;
44
+ let mr = [], hr = pr[0].ymin, gr = 0;
45
+ for (; mr.length || pr.length;) {
46
+ if (pr.length) {
47
+ let St = -1;
48
+ for (let lr = 0; lr < pr.length && !(pr[lr].ymin > hr); lr++) St = lr;
49
+ pr.splice(0, St + 1).forEach(((St) => {
50
+ mr.push({
51
+ s: hr,
52
+ edge: St
53
+ });
54
+ }));
55
+ }
56
+ if (mr = mr.filter(((St) => !(St.edge.ymax <= hr))), mr.sort(((St, lr) => St.edge.x === lr.edge.x ? 0 : (St.edge.x - lr.edge.x) / Math.abs(St.edge.x - lr.edge.x))), (ur !== 1 || gr % lr == 0) && mr.length > 1) for (let St = 0; St < mr.length; St += 2) {
57
+ let lr = St + 1;
58
+ if (lr >= mr.length) break;
59
+ let ur = mr[St].edge, dr = mr[lr].edge;
60
+ fr.push([[Math.round(ur.x), hr], [Math.round(dr.x), hr]]);
61
+ }
62
+ hr += ur, mr.forEach(((St) => {
63
+ St.edge.x = St.edge.x + ur * St.edge.islope;
64
+ })), gr++;
65
+ }
66
+ return fr;
67
+ }(mr, pr, dr);
68
+ if (fr) {
69
+ for (let St of mr) t(St, hr, -fr);
70
+ (function(St, lr, ur) {
71
+ let dr = [];
72
+ St.forEach(((St) => dr.push(...St))), t(dr, lr, ur);
73
+ })(gr, hr, -fr);
74
+ }
75
+ return gr;
76
+ }
77
+ function n(St, lr) {
78
+ let ur = lr.hachureAngle + 90, dr = lr.hachureGap;
79
+ dr < 0 && (dr = 4 * lr.strokeWidth), dr = Math.round(Math.max(dr, .1));
80
+ let fr = 1;
81
+ return lr.roughness >= 1 && (lr.randomizer?.next() || Math.random()) > .7 && (fr = dr), s(St, dr, ur, fr || 1);
82
+ }
83
+ var o = class {
84
+ constructor(St) {
85
+ this.helper = St;
86
+ }
87
+ fillPolygons(St, lr) {
88
+ return this._fillPolygons(St, lr);
89
+ }
90
+ _fillPolygons(St, lr) {
91
+ let ur = n(St, lr);
92
+ return {
93
+ type: "fillSketch",
94
+ ops: this.renderLines(ur, lr)
95
+ };
96
+ }
97
+ renderLines(St, lr) {
98
+ let ur = [];
99
+ for (let dr of St) ur.push(...this.helper.doubleLineOps(dr[0][0], dr[0][1], dr[1][0], dr[1][1], lr));
100
+ return ur;
101
+ }
102
+ };
103
+ function a(St) {
104
+ let lr = St[0], ur = St[1];
105
+ return Math.sqrt((lr[0] - ur[0]) ** 2 + (lr[1] - ur[1]) ** 2);
106
+ }
107
+ var h = class extends o {
108
+ fillPolygons(St, lr) {
109
+ let ur = lr.hachureGap;
110
+ ur < 0 && (ur = 4 * lr.strokeWidth), ur = Math.max(ur, .1);
111
+ let dr = n(St, Object.assign({}, lr, { hachureGap: ur })), fr = Math.PI / 180 * lr.hachureAngle, pr = [], mr = .5 * ur * Math.cos(fr), hr = .5 * ur * Math.sin(fr);
112
+ for (let [St, lr] of dr) a([St, lr]) && pr.push([[St[0] - mr, St[1] + hr], [...lr]], [[St[0] + mr, St[1] - hr], [...lr]]);
113
+ return {
114
+ type: "fillSketch",
115
+ ops: this.renderLines(pr, lr)
116
+ };
117
+ }
118
+ }, r = class extends o {
119
+ fillPolygons(St, lr) {
120
+ let ur = this._fillPolygons(St, lr), dr = Object.assign({}, lr, { hachureAngle: lr.hachureAngle + 90 }), fr = this._fillPolygons(St, dr);
121
+ return ur.ops = ur.ops.concat(fr.ops), ur;
122
+ }
123
+ }, i = class {
124
+ constructor(St) {
125
+ this.helper = St;
126
+ }
127
+ fillPolygons(St, lr) {
128
+ let ur = n(St, lr = Object.assign({}, lr, { hachureAngle: 0 }));
129
+ return this.dotsOnLines(ur, lr);
130
+ }
131
+ dotsOnLines(St, lr) {
132
+ let ur = [], dr = lr.hachureGap;
133
+ dr < 0 && (dr = 4 * lr.strokeWidth), dr = Math.max(dr, .1);
134
+ let fr = lr.fillWeight;
135
+ fr < 0 && (fr = lr.strokeWidth / 2);
136
+ let pr = dr / 4;
137
+ for (let mr of St) {
138
+ let St = a(mr), hr = St / dr, gr = Math.ceil(hr) - 1, _r = St - gr * dr, vr = (mr[0][0] + mr[1][0]) / 2 - dr / 4, yr = Math.min(mr[0][1], mr[1][1]);
139
+ for (let St = 0; St < gr; St++) {
140
+ let mr = yr + _r + St * dr, hr = vr - pr + 2 * Math.random() * pr, gr = mr - pr + 2 * Math.random() * pr, br = this.helper.ellipse(hr, gr, fr, fr, lr);
141
+ ur.push(...br.ops);
142
+ }
143
+ }
144
+ return {
145
+ type: "fillSketch",
146
+ ops: ur
147
+ };
148
+ }
149
+ }, c = class {
150
+ constructor(St) {
151
+ this.helper = St;
152
+ }
153
+ fillPolygons(St, lr) {
154
+ let ur = n(St, lr);
155
+ return {
156
+ type: "fillSketch",
157
+ ops: this.dashedLine(ur, lr)
158
+ };
159
+ }
160
+ dashedLine(St, lr) {
161
+ let ur = lr.dashOffset < 0 ? lr.hachureGap < 0 ? 4 * lr.strokeWidth : lr.hachureGap : lr.dashOffset, dr = lr.dashGap < 0 ? lr.hachureGap < 0 ? 4 * lr.strokeWidth : lr.hachureGap : lr.dashGap, fr = [];
162
+ return St.forEach(((St) => {
163
+ let pr = a(St), mr = Math.floor(pr / (ur + dr)), hr = (pr + dr - mr * (ur + dr)) / 2, gr = St[0], _r = St[1];
164
+ gr[0] > _r[0] && (gr = St[1], _r = St[0]);
165
+ let vr = Math.atan((_r[1] - gr[1]) / (_r[0] - gr[0]));
166
+ for (let St = 0; St < mr; St++) {
167
+ let pr = St * (ur + dr), mr = pr + ur, _r = [gr[0] + pr * Math.cos(vr) + hr * Math.cos(vr), gr[1] + pr * Math.sin(vr) + hr * Math.sin(vr)], yr = [gr[0] + mr * Math.cos(vr) + hr * Math.cos(vr), gr[1] + mr * Math.sin(vr) + hr * Math.sin(vr)];
168
+ fr.push(...this.helper.doubleLineOps(_r[0], _r[1], yr[0], yr[1], lr));
169
+ }
170
+ })), fr;
171
+ }
172
+ }, l = class {
173
+ constructor(St) {
174
+ this.helper = St;
175
+ }
176
+ fillPolygons(St, lr) {
177
+ let ur = lr.hachureGap < 0 ? 4 * lr.strokeWidth : lr.hachureGap, dr = lr.zigzagOffset < 0 ? ur : lr.zigzagOffset, fr = n(St, lr = Object.assign({}, lr, { hachureGap: ur + dr }));
178
+ return {
179
+ type: "fillSketch",
180
+ ops: this.zigzagLines(fr, dr, lr)
181
+ };
182
+ }
183
+ zigzagLines(St, lr, ur) {
184
+ let dr = [];
185
+ return St.forEach(((St) => {
186
+ let fr = a(St), pr = Math.round(fr / (2 * lr)), mr = St[0], hr = St[1];
187
+ mr[0] > hr[0] && (mr = St[1], hr = St[0]);
188
+ let gr = Math.atan((hr[1] - mr[1]) / (hr[0] - mr[0]));
189
+ for (let St = 0; St < pr; St++) {
190
+ let fr = 2 * St * lr, pr = 2 * (St + 1) * lr, hr = Math.sqrt(2 * lr ** 2), _r = [mr[0] + fr * Math.cos(gr), mr[1] + fr * Math.sin(gr)], vr = [mr[0] + pr * Math.cos(gr), mr[1] + pr * Math.sin(gr)], yr = [_r[0] + hr * Math.cos(gr + Math.PI / 4), _r[1] + hr * Math.sin(gr + Math.PI / 4)];
191
+ dr.push(...this.helper.doubleLineOps(_r[0], _r[1], yr[0], yr[1], ur), ...this.helper.doubleLineOps(yr[0], yr[1], vr[0], vr[1], ur));
192
+ }
193
+ })), dr;
194
+ }
195
+ }, u = {}, p = class {
196
+ constructor(St) {
197
+ this.seed = St;
198
+ }
199
+ next() {
200
+ return this.seed ? (2 ** 31 - 1 & (this.seed = Math.imul(48271, this.seed))) / 2 ** 31 : Math.random();
201
+ }
202
+ }, f = 0, d = 1, g = 2, M = {
203
+ A: 7,
204
+ a: 7,
205
+ C: 6,
206
+ c: 6,
207
+ H: 1,
208
+ h: 1,
209
+ L: 2,
210
+ l: 2,
211
+ M: 2,
212
+ m: 2,
213
+ Q: 4,
214
+ q: 4,
215
+ S: 4,
216
+ s: 4,
217
+ T: 2,
218
+ t: 2,
219
+ V: 1,
220
+ v: 1,
221
+ Z: 0,
222
+ z: 0
223
+ };
224
+ function k(St, lr) {
225
+ return St.type === lr;
226
+ }
227
+ function b(St) {
228
+ let lr = [], ur = function(St) {
229
+ let lr = [];
230
+ for (; St !== "";) if (St.match(/^([ \t\r\n,]+)/)) St = St.substr(RegExp.$1.length);
231
+ else if (St.match(/^([aAcChHlLmMqQsStTvVzZ])/)) lr[lr.length] = {
232
+ type: f,
233
+ text: RegExp.$1
234
+ }, St = St.substr(RegExp.$1.length);
235
+ else {
236
+ if (!St.match(/^(([-+]?[0-9]+(\.[0-9]*)?|[-+]?\.[0-9]+)([eE][-+]?[0-9]+)?)/)) return [];
237
+ lr[lr.length] = {
238
+ type: d,
239
+ text: `${parseFloat(RegExp.$1)}`
240
+ }, St = St.substr(RegExp.$1.length);
241
+ }
242
+ return lr[lr.length] = {
243
+ type: g,
244
+ text: ""
245
+ }, lr;
246
+ }(St), dr = "BOD", fr = 0, pr = ur[fr];
247
+ for (; !k(pr, g);) {
248
+ let mr = 0, hr = [];
249
+ if (dr === "BOD") {
250
+ if (pr.text !== "M" && pr.text !== "m") return b("M0,0" + St);
251
+ fr++, mr = M[pr.text], dr = pr.text;
252
+ } else k(pr, d) ? mr = M[dr] : (fr++, mr = M[pr.text], dr = pr.text);
253
+ if (!(fr + mr < ur.length)) throw Error("Path data ended short");
254
+ for (let St = fr; St < fr + mr; St++) {
255
+ let lr = ur[St];
256
+ if (!k(lr, d)) throw Error("Param not a number: " + dr + "," + lr.text);
257
+ hr[hr.length] = +lr.text;
258
+ }
259
+ if (typeof M[dr] != "number") throw Error("Bad segment: " + dr);
260
+ {
261
+ let St = {
262
+ key: dr,
263
+ data: hr
264
+ };
265
+ lr.push(St), fr += mr, pr = ur[fr], dr === "M" && (dr = "L"), dr === "m" && (dr = "l");
266
+ }
267
+ }
268
+ return lr;
269
+ }
270
+ function y(St) {
271
+ let lr = 0, ur = 0, dr = 0, fr = 0, pr = [];
272
+ for (let { key: mr, data: hr } of St) switch (mr) {
273
+ case "M":
274
+ pr.push({
275
+ key: "M",
276
+ data: [...hr]
277
+ }), [lr, ur] = hr, [dr, fr] = hr;
278
+ break;
279
+ case "m":
280
+ lr += hr[0], ur += hr[1], pr.push({
281
+ key: "M",
282
+ data: [lr, ur]
283
+ }), dr = lr, fr = ur;
284
+ break;
285
+ case "L":
286
+ pr.push({
287
+ key: "L",
288
+ data: [...hr]
289
+ }), [lr, ur] = hr;
290
+ break;
291
+ case "l":
292
+ lr += hr[0], ur += hr[1], pr.push({
293
+ key: "L",
294
+ data: [lr, ur]
295
+ });
296
+ break;
297
+ case "C":
298
+ pr.push({
299
+ key: "C",
300
+ data: [...hr]
301
+ }), lr = hr[4], ur = hr[5];
302
+ break;
303
+ case "c": {
304
+ let St = hr.map(((St, dr) => dr % 2 ? St + ur : St + lr));
305
+ pr.push({
306
+ key: "C",
307
+ data: St
308
+ }), lr = St[4], ur = St[5];
309
+ break;
310
+ }
311
+ case "Q":
312
+ pr.push({
313
+ key: "Q",
314
+ data: [...hr]
315
+ }), lr = hr[2], ur = hr[3];
316
+ break;
317
+ case "q": {
318
+ let St = hr.map(((St, dr) => dr % 2 ? St + ur : St + lr));
319
+ pr.push({
320
+ key: "Q",
321
+ data: St
322
+ }), lr = St[2], ur = St[3];
323
+ break;
324
+ }
325
+ case "A":
326
+ pr.push({
327
+ key: "A",
328
+ data: [...hr]
329
+ }), lr = hr[5], ur = hr[6];
330
+ break;
331
+ case "a":
332
+ lr += hr[5], ur += hr[6], pr.push({
333
+ key: "A",
334
+ data: [
335
+ hr[0],
336
+ hr[1],
337
+ hr[2],
338
+ hr[3],
339
+ hr[4],
340
+ lr,
341
+ ur
342
+ ]
343
+ });
344
+ break;
345
+ case "H":
346
+ pr.push({
347
+ key: "H",
348
+ data: [...hr]
349
+ }), lr = hr[0];
350
+ break;
351
+ case "h":
352
+ lr += hr[0], pr.push({
353
+ key: "H",
354
+ data: [lr]
355
+ });
356
+ break;
357
+ case "V":
358
+ pr.push({
359
+ key: "V",
360
+ data: [...hr]
361
+ }), ur = hr[0];
362
+ break;
363
+ case "v":
364
+ ur += hr[0], pr.push({
365
+ key: "V",
366
+ data: [ur]
367
+ });
368
+ break;
369
+ case "S":
370
+ pr.push({
371
+ key: "S",
372
+ data: [...hr]
373
+ }), lr = hr[2], ur = hr[3];
374
+ break;
375
+ case "s": {
376
+ let St = hr.map(((St, dr) => dr % 2 ? St + ur : St + lr));
377
+ pr.push({
378
+ key: "S",
379
+ data: St
380
+ }), lr = St[2], ur = St[3];
381
+ break;
382
+ }
383
+ case "T":
384
+ pr.push({
385
+ key: "T",
386
+ data: [...hr]
387
+ }), lr = hr[0], ur = hr[1];
388
+ break;
389
+ case "t":
390
+ lr += hr[0], ur += hr[1], pr.push({
391
+ key: "T",
392
+ data: [lr, ur]
393
+ });
394
+ break;
395
+ case "Z":
396
+ case "z": pr.push({
397
+ key: "Z",
398
+ data: []
399
+ }), lr = dr, ur = fr;
400
+ }
401
+ return pr;
402
+ }
403
+ function m(St) {
404
+ let lr = [], ur = "", dr = 0, fr = 0, pr = 0, mr = 0, hr = 0, gr = 0;
405
+ for (let { key: _r, data: vr } of St) {
406
+ switch (_r) {
407
+ case "M":
408
+ lr.push({
409
+ key: "M",
410
+ data: [...vr]
411
+ }), [dr, fr] = vr, [pr, mr] = vr;
412
+ break;
413
+ case "C":
414
+ lr.push({
415
+ key: "C",
416
+ data: [...vr]
417
+ }), dr = vr[4], fr = vr[5], hr = vr[2], gr = vr[3];
418
+ break;
419
+ case "L":
420
+ lr.push({
421
+ key: "L",
422
+ data: [...vr]
423
+ }), [dr, fr] = vr;
424
+ break;
425
+ case "H":
426
+ dr = vr[0], lr.push({
427
+ key: "L",
428
+ data: [dr, fr]
429
+ });
430
+ break;
431
+ case "V":
432
+ fr = vr[0], lr.push({
433
+ key: "L",
434
+ data: [dr, fr]
435
+ });
436
+ break;
437
+ case "S": {
438
+ let St = 0, pr = 0;
439
+ ur === "C" || ur === "S" ? (St = dr + (dr - hr), pr = fr + (fr - gr)) : (St = dr, pr = fr), lr.push({
440
+ key: "C",
441
+ data: [
442
+ St,
443
+ pr,
444
+ ...vr
445
+ ]
446
+ }), hr = vr[0], gr = vr[1], dr = vr[2], fr = vr[3];
447
+ break;
448
+ }
449
+ case "T": {
450
+ let [St, pr] = vr, mr = 0, _r = 0;
451
+ ur === "Q" || ur === "T" ? (mr = dr + (dr - hr), _r = fr + (fr - gr)) : (mr = dr, _r = fr);
452
+ let yr = dr + 2 * (mr - dr) / 3, br = fr + 2 * (_r - fr) / 3, xr = St + 2 * (mr - St) / 3, Sr = pr + 2 * (_r - pr) / 3;
453
+ lr.push({
454
+ key: "C",
455
+ data: [
456
+ yr,
457
+ br,
458
+ xr,
459
+ Sr,
460
+ St,
461
+ pr
462
+ ]
463
+ }), hr = mr, gr = _r, dr = St, fr = pr;
464
+ break;
465
+ }
466
+ case "Q": {
467
+ let [St, ur, pr, mr] = vr, _r = dr + 2 * (St - dr) / 3, yr = fr + 2 * (ur - fr) / 3, br = pr + 2 * (St - pr) / 3, xr = mr + 2 * (ur - mr) / 3;
468
+ lr.push({
469
+ key: "C",
470
+ data: [
471
+ _r,
472
+ yr,
473
+ br,
474
+ xr,
475
+ pr,
476
+ mr
477
+ ]
478
+ }), hr = St, gr = ur, dr = pr, fr = mr;
479
+ break;
480
+ }
481
+ case "A": {
482
+ let St = Math.abs(vr[0]), ur = Math.abs(vr[1]), pr = vr[2], mr = vr[3], hr = vr[4], gr = vr[5], _r = vr[6];
483
+ St === 0 || ur === 0 ? (lr.push({
484
+ key: "C",
485
+ data: [
486
+ dr,
487
+ fr,
488
+ gr,
489
+ _r,
490
+ gr,
491
+ _r
492
+ ]
493
+ }), dr = gr, fr = _r) : (dr !== gr || fr !== _r) && (x(dr, fr, gr, _r, St, ur, pr, mr, hr).forEach((function(St) {
494
+ lr.push({
495
+ key: "C",
496
+ data: St
497
+ });
498
+ })), dr = gr, fr = _r);
499
+ break;
500
+ }
501
+ case "Z": lr.push({
502
+ key: "Z",
503
+ data: []
504
+ }), dr = pr, fr = mr;
505
+ }
506
+ ur = _r;
507
+ }
508
+ return lr;
509
+ }
510
+ function w(St, lr, ur) {
511
+ return [St * Math.cos(ur) - lr * Math.sin(ur), St * Math.sin(ur) + lr * Math.cos(ur)];
512
+ }
513
+ function x(St, lr, ur, dr, fr, pr, mr, hr, gr, _r) {
514
+ let vr = (yr = mr, Math.PI * yr / 180);
515
+ var yr;
516
+ let br = [], xr = 0, Sr = 0, Cr = 0, wr = 0;
517
+ if (_r) [xr, Sr, Cr, wr] = _r;
518
+ else {
519
+ [St, lr] = w(St, lr, -vr), [ur, dr] = w(ur, dr, -vr);
520
+ let mr = (St - ur) / 2, _r = (lr - dr) / 2, yr = mr * mr / (fr * fr) + _r * _r / (pr * pr);
521
+ yr > 1 && (yr = Math.sqrt(yr), fr *= yr, pr *= yr);
522
+ let br = fr * fr, Tr = pr * pr, Er = br * Tr - br * _r * _r - Tr * mr * mr, Dr = br * _r * _r + Tr * mr * mr, Or = (hr === gr ? -1 : 1) * Math.sqrt(Math.abs(Er / Dr));
523
+ Cr = Or * fr * _r / pr + (St + ur) / 2, wr = Or * -pr * mr / fr + (lr + dr) / 2, xr = Math.asin(parseFloat(((lr - wr) / pr).toFixed(9))), Sr = Math.asin(parseFloat(((dr - wr) / pr).toFixed(9))), St < Cr && (xr = Math.PI - xr), ur < Cr && (Sr = Math.PI - Sr), xr < 0 && (xr = 2 * Math.PI + xr), Sr < 0 && (Sr = 2 * Math.PI + Sr), gr && xr > Sr && (xr -= 2 * Math.PI), !gr && Sr > xr && (Sr -= 2 * Math.PI);
524
+ }
525
+ let Tr = Sr - xr;
526
+ if (Math.abs(Tr) > 120 * Math.PI / 180) {
527
+ let St = Sr, lr = ur, hr = dr;
528
+ Sr = gr && Sr > xr ? xr + 120 * Math.PI / 180 * 1 : xr + 120 * Math.PI / 180 * -1, br = x(ur = Cr + fr * Math.cos(Sr), dr = wr + pr * Math.sin(Sr), lr, hr, fr, pr, mr, 0, gr, [
529
+ Sr,
530
+ St,
531
+ Cr,
532
+ wr
533
+ ]);
534
+ }
535
+ Tr = Sr - xr;
536
+ let Er = Math.cos(xr), Dr = Math.sin(xr), Or = Math.cos(Sr), kr = Math.sin(Sr), Ar = Math.tan(Tr / 4), jr = 4 / 3 * fr * Ar, Mr = 4 / 3 * pr * Ar, Nr = [St, lr], Pr = [St + jr * Dr, lr - Mr * Er], Fr = [ur + jr * kr, dr - Mr * Or], Ir = [ur, dr];
537
+ if (Pr[0] = 2 * Nr[0] - Pr[0], Pr[1] = 2 * Nr[1] - Pr[1], _r) return [
538
+ Pr,
539
+ Fr,
540
+ Ir
541
+ ].concat(br);
542
+ {
543
+ br = [
544
+ Pr,
545
+ Fr,
546
+ Ir
547
+ ].concat(br);
548
+ let St = [];
549
+ for (let lr = 0; lr < br.length; lr += 3) {
550
+ let ur = w(br[lr][0], br[lr][1], vr), dr = w(br[lr + 1][0], br[lr + 1][1], vr), fr = w(br[lr + 2][0], br[lr + 2][1], vr);
551
+ St.push([
552
+ ur[0],
553
+ ur[1],
554
+ dr[0],
555
+ dr[1],
556
+ fr[0],
557
+ fr[1]
558
+ ]);
559
+ }
560
+ return St;
561
+ }
562
+ }
563
+ var P = {
564
+ randOffset: function(St, lr) {
565
+ return G(St, lr);
566
+ },
567
+ randOffsetWithRange: function(St, lr, ur) {
568
+ return E(St, lr, ur);
569
+ },
570
+ ellipse: function(St, lr, ur, dr, fr) {
571
+ return D(St, lr, fr, T(ur, dr, fr)).opset;
572
+ },
573
+ doubleLineOps: function(St, lr, ur, dr, fr) {
574
+ return $(St, lr, ur, dr, fr, !0);
575
+ }
576
+ };
577
+ function v(St, lr, ur, dr, fr) {
578
+ return {
579
+ type: "path",
580
+ ops: $(St, lr, ur, dr, fr)
581
+ };
582
+ }
583
+ function S(St, lr, ur) {
584
+ let dr = (St || []).length;
585
+ if (dr > 2) {
586
+ let fr = [];
587
+ for (let lr = 0; lr < dr - 1; lr++) fr.push(...$(St[lr][0], St[lr][1], St[lr + 1][0], St[lr + 1][1], ur));
588
+ return lr && fr.push(...$(St[dr - 1][0], St[dr - 1][1], St[0][0], St[0][1], ur)), {
589
+ type: "path",
590
+ ops: fr
591
+ };
592
+ }
593
+ return dr === 2 ? v(St[0][0], St[0][1], St[1][0], St[1][1], ur) : {
594
+ type: "path",
595
+ ops: []
596
+ };
597
+ }
598
+ function O(St, lr, ur, dr, fr) {
599
+ return function(St, lr) {
600
+ return S(St, !0, lr);
601
+ }([
602
+ [St, lr],
603
+ [St + ur, lr],
604
+ [St + ur, lr + dr],
605
+ [St, lr + dr]
606
+ ], fr);
607
+ }
608
+ function L(St, lr) {
609
+ if (St.length) {
610
+ let ur = typeof St[0][0] == "number" ? [St] : St, dr = j(ur[0], 1 * (1 + .2 * lr.roughness), lr), fr = lr.disableMultiStroke ? [] : j(ur[0], 1.5 * (1 + .22 * lr.roughness), z(lr));
611
+ for (let St = 1; St < ur.length; St++) {
612
+ let pr = ur[St];
613
+ if (pr.length) {
614
+ let St = j(pr, 1 * (1 + .2 * lr.roughness), lr), ur = lr.disableMultiStroke ? [] : j(pr, 1.5 * (1 + .22 * lr.roughness), z(lr));
615
+ for (let lr of St) lr.op !== "move" && dr.push(lr);
616
+ for (let St of ur) St.op !== "move" && fr.push(St);
617
+ }
618
+ }
619
+ return {
620
+ type: "path",
621
+ ops: dr.concat(fr)
622
+ };
623
+ }
624
+ return {
625
+ type: "path",
626
+ ops: []
627
+ };
628
+ }
629
+ function T(St, lr, ur) {
630
+ let dr = Math.sqrt(2 * Math.PI * Math.sqrt(((St / 2) ** 2 + (lr / 2) ** 2) / 2)), fr = Math.ceil(Math.max(ur.curveStepCount, ur.curveStepCount / Math.sqrt(200) * dr)), pr = 2 * Math.PI / fr, mr = Math.abs(St / 2), hr = Math.abs(lr / 2), gr = 1 - ur.curveFitting;
631
+ return mr += G(mr * gr, ur), hr += G(hr * gr, ur), {
632
+ increment: pr,
633
+ rx: mr,
634
+ ry: hr
635
+ };
636
+ }
637
+ function D(St, lr, ur, dr) {
638
+ let [fr, pr] = F(dr.increment, St, lr, dr.rx, dr.ry, 1, dr.increment * E(.1, E(.4, 1, ur), ur), ur), mr = q(fr, null, ur);
639
+ if (!ur.disableMultiStroke && ur.roughness !== 0) {
640
+ let [fr] = F(dr.increment, St, lr, dr.rx, dr.ry, 1.5, 0, ur), pr = q(fr, null, ur);
641
+ mr = mr.concat(pr);
642
+ }
643
+ return {
644
+ estimatedPoints: pr,
645
+ opset: {
646
+ type: "path",
647
+ ops: mr
648
+ }
649
+ };
650
+ }
651
+ function A(St, lr, ur, dr, fr, pr, mr, hr, gr) {
652
+ let _r = St, vr = lr, yr = Math.abs(ur / 2), br = Math.abs(dr / 2);
653
+ yr += G(.01 * yr, gr), br += G(.01 * br, gr);
654
+ let xr = fr, Sr = pr;
655
+ for (; xr < 0;) xr += 2 * Math.PI, Sr += 2 * Math.PI;
656
+ Sr - xr > 2 * Math.PI && (xr = 0, Sr = 2 * Math.PI);
657
+ let Cr = 2 * Math.PI / gr.curveStepCount, wr = Math.min(Cr / 2, (Sr - xr) / 2), Tr = V(wr, _r, vr, yr, br, xr, Sr, 1, gr);
658
+ if (!gr.disableMultiStroke) {
659
+ let St = V(wr, _r, vr, yr, br, xr, Sr, 1.5, gr);
660
+ Tr.push(...St);
661
+ }
662
+ return mr && (hr ? Tr.push(...$(_r, vr, _r + yr * Math.cos(xr), vr + br * Math.sin(xr), gr), ...$(_r, vr, _r + yr * Math.cos(Sr), vr + br * Math.sin(Sr), gr)) : Tr.push({
663
+ op: "lineTo",
664
+ data: [_r, vr]
665
+ }, {
666
+ op: "lineTo",
667
+ data: [_r + yr * Math.cos(xr), vr + br * Math.sin(xr)]
668
+ })), {
669
+ type: "path",
670
+ ops: Tr
671
+ };
672
+ }
673
+ function _(St, lr) {
674
+ let ur = m(y(b(St))), dr = [], fr = [0, 0], pr = [0, 0];
675
+ for (let { key: St, data: mr } of ur) switch (St) {
676
+ case "M":
677
+ pr = [mr[0], mr[1]], fr = [mr[0], mr[1]];
678
+ break;
679
+ case "L":
680
+ dr.push(...$(pr[0], pr[1], mr[0], mr[1], lr)), pr = [mr[0], mr[1]];
681
+ break;
682
+ case "C": {
683
+ let [St, ur, fr, hr, gr, _r] = mr;
684
+ dr.push(...Z(St, ur, fr, hr, gr, _r, pr, lr)), pr = [gr, _r];
685
+ break;
686
+ }
687
+ case "Z": dr.push(...$(pr[0], pr[1], fr[0], fr[1], lr)), pr = [fr[0], fr[1]];
688
+ }
689
+ return {
690
+ type: "path",
691
+ ops: dr
692
+ };
693
+ }
694
+ function I(St, lr) {
695
+ let ur = [];
696
+ for (let dr of St) if (dr.length) {
697
+ let St = lr.maxRandomnessOffset || 0, fr = dr.length;
698
+ if (fr > 2) {
699
+ ur.push({
700
+ op: "move",
701
+ data: [dr[0][0] + G(St, lr), dr[0][1] + G(St, lr)]
702
+ });
703
+ for (let pr = 1; pr < fr; pr++) ur.push({
704
+ op: "lineTo",
705
+ data: [dr[pr][0] + G(St, lr), dr[pr][1] + G(St, lr)]
706
+ });
707
+ }
708
+ }
709
+ return {
710
+ type: "fillPath",
711
+ ops: ur
712
+ };
713
+ }
714
+ function C(St, lr) {
715
+ return function(St, lr) {
716
+ let ur = St.fillStyle || "hachure";
717
+ if (!u[ur]) switch (ur) {
718
+ case "zigzag":
719
+ u[ur] || (u[ur] = new h(lr));
720
+ break;
721
+ case "cross-hatch":
722
+ u[ur] || (u[ur] = new r(lr));
723
+ break;
724
+ case "dots":
725
+ u[ur] || (u[ur] = new i(lr));
726
+ break;
727
+ case "dashed":
728
+ u[ur] || (u[ur] = new c(lr));
729
+ break;
730
+ case "zigzag-line":
731
+ u[ur] || (u[ur] = new l(lr));
732
+ break;
733
+ default: ur = "hachure", u[ur] || (u[ur] = new o(lr));
734
+ }
735
+ return u[ur];
736
+ }(lr, P).fillPolygons(St, lr);
737
+ }
738
+ function z(St) {
739
+ let lr = Object.assign({}, St);
740
+ return lr.randomizer = void 0, St.seed && (lr.seed = St.seed + 1), lr;
741
+ }
742
+ function W(St) {
743
+ return St.randomizer ||= new p(St.seed || 0), St.randomizer.next();
744
+ }
745
+ function E(St, lr, ur, dr = 1) {
746
+ return ur.roughness * dr * (W(ur) * (lr - St) + St);
747
+ }
748
+ function G(St, lr, ur = 1) {
749
+ return E(-St, St, lr, ur);
750
+ }
751
+ function $(St, lr, ur, dr, fr, pr = !1) {
752
+ let mr = pr ? fr.disableMultiStrokeFill : fr.disableMultiStroke, hr = R(St, lr, ur, dr, fr, !0, !1);
753
+ if (mr) return hr;
754
+ let gr = R(St, lr, ur, dr, fr, !0, !0);
755
+ return hr.concat(gr);
756
+ }
757
+ function R(St, lr, ur, dr, fr, pr, mr) {
758
+ let hr = (St - ur) ** 2 + (lr - dr) ** 2, gr = Math.sqrt(hr), _r = 1;
759
+ _r = gr < 200 ? 1 : gr > 500 ? .4 : -.0016668 * gr + 1.233334;
760
+ let vr = fr.maxRandomnessOffset || 0;
761
+ vr * vr * 100 > hr && (vr = gr / 10);
762
+ let yr = vr / 2, br = .2 + .2 * W(fr), xr = fr.bowing * fr.maxRandomnessOffset * (dr - lr) / 200, Sr = fr.bowing * fr.maxRandomnessOffset * (St - ur) / 200;
763
+ xr = G(xr, fr, _r), Sr = G(Sr, fr, _r);
764
+ let Cr = [], wr = () => G(yr, fr, _r), Tr = () => G(vr, fr, _r), Er = fr.preserveVertices;
765
+ return pr && (mr ? Cr.push({
766
+ op: "move",
767
+ data: [St + (Er ? 0 : wr()), lr + (Er ? 0 : wr())]
768
+ }) : Cr.push({
769
+ op: "move",
770
+ data: [St + (Er ? 0 : G(vr, fr, _r)), lr + (Er ? 0 : G(vr, fr, _r))]
771
+ })), mr ? Cr.push({
772
+ op: "bcurveTo",
773
+ data: [
774
+ xr + St + (ur - St) * br + wr(),
775
+ Sr + lr + (dr - lr) * br + wr(),
776
+ xr + St + 2 * (ur - St) * br + wr(),
777
+ Sr + lr + 2 * (dr - lr) * br + wr(),
778
+ ur + (Er ? 0 : wr()),
779
+ dr + (Er ? 0 : wr())
780
+ ]
781
+ }) : Cr.push({
782
+ op: "bcurveTo",
783
+ data: [
784
+ xr + St + (ur - St) * br + Tr(),
785
+ Sr + lr + (dr - lr) * br + Tr(),
786
+ xr + St + 2 * (ur - St) * br + Tr(),
787
+ Sr + lr + 2 * (dr - lr) * br + Tr(),
788
+ ur + (Er ? 0 : Tr()),
789
+ dr + (Er ? 0 : Tr())
790
+ ]
791
+ }), Cr;
792
+ }
793
+ function j(St, lr, ur) {
794
+ if (!St.length) return [];
795
+ let dr = [];
796
+ dr.push([St[0][0] + G(lr, ur), St[0][1] + G(lr, ur)]), dr.push([St[0][0] + G(lr, ur), St[0][1] + G(lr, ur)]);
797
+ for (let fr = 1; fr < St.length; fr++) dr.push([St[fr][0] + G(lr, ur), St[fr][1] + G(lr, ur)]), fr === St.length - 1 && dr.push([St[fr][0] + G(lr, ur), St[fr][1] + G(lr, ur)]);
798
+ return q(dr, null, ur);
799
+ }
800
+ function q(St, lr, ur) {
801
+ let dr = St.length, fr = [];
802
+ if (dr > 3) {
803
+ let pr = [], mr = 1 - ur.curveTightness;
804
+ fr.push({
805
+ op: "move",
806
+ data: [St[1][0], St[1][1]]
807
+ });
808
+ for (let lr = 1; lr + 2 < dr; lr++) {
809
+ let ur = St[lr];
810
+ pr[0] = [ur[0], ur[1]], pr[1] = [ur[0] + (mr * St[lr + 1][0] - mr * St[lr - 1][0]) / 6, ur[1] + (mr * St[lr + 1][1] - mr * St[lr - 1][1]) / 6], pr[2] = [St[lr + 1][0] + (mr * St[lr][0] - mr * St[lr + 2][0]) / 6, St[lr + 1][1] + (mr * St[lr][1] - mr * St[lr + 2][1]) / 6], pr[3] = [St[lr + 1][0], St[lr + 1][1]], fr.push({
811
+ op: "bcurveTo",
812
+ data: [
813
+ pr[1][0],
814
+ pr[1][1],
815
+ pr[2][0],
816
+ pr[2][1],
817
+ pr[3][0],
818
+ pr[3][1]
819
+ ]
820
+ });
821
+ }
822
+ if (lr && lr.length === 2) {
823
+ let St = ur.maxRandomnessOffset;
824
+ fr.push({
825
+ op: "lineTo",
826
+ data: [lr[0] + G(St, ur), lr[1] + G(St, ur)]
827
+ });
828
+ }
829
+ } else dr === 3 ? (fr.push({
830
+ op: "move",
831
+ data: [St[1][0], St[1][1]]
832
+ }), fr.push({
833
+ op: "bcurveTo",
834
+ data: [
835
+ St[1][0],
836
+ St[1][1],
837
+ St[2][0],
838
+ St[2][1],
839
+ St[2][0],
840
+ St[2][1]
841
+ ]
842
+ })) : dr === 2 && fr.push(...R(St[0][0], St[0][1], St[1][0], St[1][1], ur, !0, !0));
843
+ return fr;
844
+ }
845
+ function F(St, lr, ur, dr, fr, pr, mr, hr) {
846
+ let gr = [], _r = [];
847
+ if (hr.roughness === 0) {
848
+ St /= 4, _r.push([lr + dr * Math.cos(-St), ur + fr * Math.sin(-St)]);
849
+ for (let pr = 0; pr <= 2 * Math.PI; pr += St) {
850
+ let St = [lr + dr * Math.cos(pr), ur + fr * Math.sin(pr)];
851
+ gr.push(St), _r.push(St);
852
+ }
853
+ _r.push([lr + dr * Math.cos(0), ur + fr * Math.sin(0)]), _r.push([lr + dr * Math.cos(St), ur + fr * Math.sin(St)]);
854
+ } else {
855
+ let vr = G(.5, hr) - Math.PI / 2;
856
+ _r.push([G(pr, hr) + lr + .9 * dr * Math.cos(vr - St), G(pr, hr) + ur + .9 * fr * Math.sin(vr - St)]);
857
+ let yr = 2 * Math.PI + vr - .01;
858
+ for (let mr = vr; mr < yr; mr += St) {
859
+ let St = [G(pr, hr) + lr + dr * Math.cos(mr), G(pr, hr) + ur + fr * Math.sin(mr)];
860
+ gr.push(St), _r.push(St);
861
+ }
862
+ _r.push([G(pr, hr) + lr + dr * Math.cos(vr + 2 * Math.PI + .5 * mr), G(pr, hr) + ur + fr * Math.sin(vr + 2 * Math.PI + .5 * mr)]), _r.push([G(pr, hr) + lr + .98 * dr * Math.cos(vr + mr), G(pr, hr) + ur + .98 * fr * Math.sin(vr + mr)]), _r.push([G(pr, hr) + lr + .9 * dr * Math.cos(vr + .5 * mr), G(pr, hr) + ur + .9 * fr * Math.sin(vr + .5 * mr)]);
863
+ }
864
+ return [_r, gr];
865
+ }
866
+ function V(St, lr, ur, dr, fr, pr, mr, hr, gr) {
867
+ let _r = pr + G(.1, gr), vr = [];
868
+ vr.push([G(hr, gr) + lr + .9 * dr * Math.cos(_r - St), G(hr, gr) + ur + .9 * fr * Math.sin(_r - St)]);
869
+ for (let pr = _r; pr <= mr; pr += St) vr.push([G(hr, gr) + lr + dr * Math.cos(pr), G(hr, gr) + ur + fr * Math.sin(pr)]);
870
+ return vr.push([lr + dr * Math.cos(mr), ur + fr * Math.sin(mr)]), vr.push([lr + dr * Math.cos(mr), ur + fr * Math.sin(mr)]), q(vr, null, gr);
871
+ }
872
+ function Z(St, lr, ur, dr, fr, pr, mr, hr) {
873
+ let gr = [], _r = [hr.maxRandomnessOffset || 1, (hr.maxRandomnessOffset || 1) + .3], vr = [0, 0], yr = hr.disableMultiStroke ? 1 : 2, br = hr.preserveVertices;
874
+ for (let xr = 0; xr < yr; xr++) xr === 0 ? gr.push({
875
+ op: "move",
876
+ data: [mr[0], mr[1]]
877
+ }) : gr.push({
878
+ op: "move",
879
+ data: [mr[0] + (br ? 0 : G(_r[0], hr)), mr[1] + (br ? 0 : G(_r[0], hr))]
880
+ }), vr = br ? [fr, pr] : [fr + G(_r[xr], hr), pr + G(_r[xr], hr)], gr.push({
881
+ op: "bcurveTo",
882
+ data: [
883
+ St + G(_r[xr], hr),
884
+ lr + G(_r[xr], hr),
885
+ ur + G(_r[xr], hr),
886
+ dr + G(_r[xr], hr),
887
+ vr[0],
888
+ vr[1]
889
+ ]
890
+ });
891
+ return gr;
892
+ }
893
+ function Q(St) {
894
+ return [...St];
895
+ }
896
+ function H(St, lr = 0) {
897
+ let ur = St.length;
898
+ if (ur < 3) throw Error("A curve must have at least three points.");
899
+ let dr = [];
900
+ if (ur === 3) dr.push(Q(St[0]), Q(St[1]), Q(St[2]), Q(St[2]));
901
+ else {
902
+ let ur = [];
903
+ ur.push(St[0], St[0]);
904
+ for (let lr = 1; lr < St.length; lr++) ur.push(St[lr]), lr === St.length - 1 && ur.push(St[lr]);
905
+ let fr = [], pr = 1 - lr;
906
+ dr.push(Q(ur[0]));
907
+ for (let St = 1; St + 2 < ur.length; St++) {
908
+ let lr = ur[St];
909
+ fr[0] = [lr[0], lr[1]], fr[1] = [lr[0] + (pr * ur[St + 1][0] - pr * ur[St - 1][0]) / 6, lr[1] + (pr * ur[St + 1][1] - pr * ur[St - 1][1]) / 6], fr[2] = [ur[St + 1][0] + (pr * ur[St][0] - pr * ur[St + 2][0]) / 6, ur[St + 1][1] + (pr * ur[St][1] - pr * ur[St + 2][1]) / 6], fr[3] = [ur[St + 1][0], ur[St + 1][1]], dr.push(fr[1], fr[2], fr[3]);
910
+ }
911
+ }
912
+ return dr;
913
+ }
914
+ function N(St, lr) {
915
+ return (St[0] - lr[0]) ** 2 + (St[1] - lr[1]) ** 2;
916
+ }
917
+ function B(St, lr, ur) {
918
+ let dr = N(lr, ur);
919
+ if (dr === 0) return N(St, lr);
920
+ let fr = ((St[0] - lr[0]) * (ur[0] - lr[0]) + (St[1] - lr[1]) * (ur[1] - lr[1])) / dr;
921
+ return fr = Math.max(0, Math.min(1, fr)), N(St, J(lr, ur, fr));
922
+ }
923
+ function J(St, lr, ur) {
924
+ return [St[0] + (lr[0] - St[0]) * ur, St[1] + (lr[1] - St[1]) * ur];
925
+ }
926
+ function K(St, lr, ur, dr) {
927
+ let fr = dr || [];
928
+ if (function(St, lr) {
929
+ let ur = St[lr + 0], dr = St[lr + 1], fr = St[lr + 2], pr = St[lr + 3], mr = 3 * dr[0] - 2 * ur[0] - pr[0];
930
+ mr *= mr;
931
+ let hr = 3 * dr[1] - 2 * ur[1] - pr[1];
932
+ hr *= hr;
933
+ let gr = 3 * fr[0] - 2 * pr[0] - ur[0];
934
+ gr *= gr;
935
+ let _r = 3 * fr[1] - 2 * pr[1] - ur[1];
936
+ return _r *= _r, mr < gr && (mr = gr), hr < _r && (hr = _r), mr + hr;
937
+ }(St, lr) < ur) {
938
+ let ur = St[lr + 0];
939
+ fr.length ? (pr = fr[fr.length - 1], mr = ur, Math.sqrt(N(pr, mr))) > 1 && fr.push(ur) : fr.push(ur), fr.push(St[lr + 3]);
940
+ } else {
941
+ let dr = .5, pr = St[lr + 0], mr = St[lr + 1], hr = St[lr + 2], gr = St[lr + 3], _r = J(pr, mr, dr), vr = J(mr, hr, dr), yr = J(hr, gr, dr), br = J(_r, vr, dr), xr = J(vr, yr, dr), Sr = J(br, xr, dr);
942
+ K([
943
+ pr,
944
+ _r,
945
+ br,
946
+ Sr
947
+ ], 0, ur, fr), K([
948
+ Sr,
949
+ xr,
950
+ yr,
951
+ gr
952
+ ], 0, ur, fr);
953
+ }
954
+ var pr, mr;
955
+ return fr;
956
+ }
957
+ function U(St, lr) {
958
+ return X(St, 0, St.length, lr);
959
+ }
960
+ function X(St, lr, ur, dr, fr) {
961
+ let pr = fr || [], mr = St[lr], hr = St[ur - 1], gr = 0, _r = 1;
962
+ for (let dr = lr + 1; dr < ur - 1; ++dr) {
963
+ let lr = B(St[dr], mr, hr);
964
+ lr > gr && (gr = lr, _r = dr);
965
+ }
966
+ return Math.sqrt(gr) > dr ? (X(St, lr, _r + 1, dr, pr), X(St, _r, ur, dr, pr)) : (pr.length || pr.push(mr), pr.push(hr)), pr;
967
+ }
968
+ function Y(St, lr = .15, ur) {
969
+ let dr = [], fr = (St.length - 1) / 3;
970
+ for (let ur = 0; ur < fr; ur++) K(St, 3 * ur, lr, dr);
971
+ return ur && ur > 0 ? X(dr, 0, dr.length, ur) : dr;
972
+ }
973
+ var tt = "none", et = class {
974
+ constructor(St) {
975
+ this.defaultOptions = {
976
+ maxRandomnessOffset: 2,
977
+ roughness: 1,
978
+ bowing: 1,
979
+ stroke: "#000",
980
+ strokeWidth: 1,
981
+ curveTightness: 0,
982
+ curveFitting: .95,
983
+ curveStepCount: 9,
984
+ fillStyle: "hachure",
985
+ fillWeight: -1,
986
+ hachureAngle: -41,
987
+ hachureGap: -1,
988
+ dashOffset: -1,
989
+ dashGap: -1,
990
+ zigzagOffset: -1,
991
+ seed: 0,
992
+ disableMultiStroke: !1,
993
+ disableMultiStrokeFill: !1,
994
+ preserveVertices: !1,
995
+ fillShapeRoughnessGain: .8
996
+ }, this.config = St || {}, this.config.options && (this.defaultOptions = this._o(this.config.options));
997
+ }
998
+ static newSeed() {
999
+ return Math.floor(Math.random() * 2 ** 31);
1000
+ }
1001
+ _o(St) {
1002
+ return St ? Object.assign({}, this.defaultOptions, St) : this.defaultOptions;
1003
+ }
1004
+ _d(St, lr, ur) {
1005
+ return {
1006
+ shape: St,
1007
+ sets: lr || [],
1008
+ options: ur || this.defaultOptions
1009
+ };
1010
+ }
1011
+ line(St, lr, ur, dr, fr) {
1012
+ let pr = this._o(fr);
1013
+ return this._d("line", [v(St, lr, ur, dr, pr)], pr);
1014
+ }
1015
+ rectangle(St, lr, ur, dr, fr) {
1016
+ let pr = this._o(fr), mr = [], hr = O(St, lr, ur, dr, pr);
1017
+ if (pr.fill) {
1018
+ let fr = [
1019
+ [St, lr],
1020
+ [St + ur, lr],
1021
+ [St + ur, lr + dr],
1022
+ [St, lr + dr]
1023
+ ];
1024
+ pr.fillStyle === "solid" ? mr.push(I([fr], pr)) : mr.push(C([fr], pr));
1025
+ }
1026
+ return pr.stroke !== tt && mr.push(hr), this._d("rectangle", mr, pr);
1027
+ }
1028
+ ellipse(St, lr, ur, dr, fr) {
1029
+ let pr = this._o(fr), mr = [], hr = T(ur, dr, pr), gr = D(St, lr, pr, hr);
1030
+ if (pr.fill) if (pr.fillStyle === "solid") {
1031
+ let ur = D(St, lr, pr, hr).opset;
1032
+ ur.type = "fillPath", mr.push(ur);
1033
+ } else mr.push(C([gr.estimatedPoints], pr));
1034
+ return pr.stroke !== tt && mr.push(gr.opset), this._d("ellipse", mr, pr);
1035
+ }
1036
+ circle(St, lr, ur, dr) {
1037
+ let fr = this.ellipse(St, lr, ur, ur, dr);
1038
+ return fr.shape = "circle", fr;
1039
+ }
1040
+ linearPath(St, lr) {
1041
+ let ur = this._o(lr);
1042
+ return this._d("linearPath", [S(St, !1, ur)], ur);
1043
+ }
1044
+ arc(St, lr, ur, dr, fr, pr, mr = !1, hr) {
1045
+ let gr = this._o(hr), _r = [], vr = A(St, lr, ur, dr, fr, pr, mr, !0, gr);
1046
+ if (mr && gr.fill) if (gr.fillStyle === "solid") {
1047
+ let mr = Object.assign({}, gr);
1048
+ mr.disableMultiStroke = !0;
1049
+ let hr = A(St, lr, ur, dr, fr, pr, !0, !1, mr);
1050
+ hr.type = "fillPath", _r.push(hr);
1051
+ } else _r.push(function(St, lr, ur, dr, fr, pr, mr) {
1052
+ let hr = St, gr = lr, _r = Math.abs(ur / 2), vr = Math.abs(dr / 2);
1053
+ _r += G(.01 * _r, mr), vr += G(.01 * vr, mr);
1054
+ let yr = fr, br = pr;
1055
+ for (; yr < 0;) yr += 2 * Math.PI, br += 2 * Math.PI;
1056
+ br - yr > 2 * Math.PI && (yr = 0, br = 2 * Math.PI);
1057
+ let xr = (br - yr) / mr.curveStepCount, Sr = [];
1058
+ for (let St = yr; St <= br; St += xr) Sr.push([hr + _r * Math.cos(St), gr + vr * Math.sin(St)]);
1059
+ return Sr.push([hr + _r * Math.cos(br), gr + vr * Math.sin(br)]), Sr.push([hr, gr]), C([Sr], mr);
1060
+ }(St, lr, ur, dr, fr, pr, gr));
1061
+ return gr.stroke !== tt && _r.push(vr), this._d("arc", _r, gr);
1062
+ }
1063
+ curve(St, lr) {
1064
+ let ur = this._o(lr), dr = [], fr = L(St, ur);
1065
+ if (ur.fill && ur.fill !== tt) if (ur.fillStyle === "solid") {
1066
+ let lr = L(St, Object.assign(Object.assign({}, ur), {
1067
+ disableMultiStroke: !0,
1068
+ roughness: ur.roughness ? ur.roughness + ur.fillShapeRoughnessGain : 0
1069
+ }));
1070
+ dr.push({
1071
+ type: "fillPath",
1072
+ ops: this._mergedShape(lr.ops)
1073
+ });
1074
+ } else {
1075
+ let lr = [], fr = St;
1076
+ if (fr.length) {
1077
+ let St = typeof fr[0][0] == "number" ? [fr] : fr;
1078
+ for (let dr of St) dr.length < 3 ? lr.push(...dr) : dr.length === 3 ? lr.push(...Y(H([
1079
+ dr[0],
1080
+ dr[0],
1081
+ dr[1],
1082
+ dr[2]
1083
+ ]), 10, (1 + ur.roughness) / 2)) : lr.push(...Y(H(dr), 10, (1 + ur.roughness) / 2));
1084
+ }
1085
+ lr.length && dr.push(C([lr], ur));
1086
+ }
1087
+ return ur.stroke !== tt && dr.push(fr), this._d("curve", dr, ur);
1088
+ }
1089
+ polygon(St, lr) {
1090
+ let ur = this._o(lr), dr = [], fr = S(St, !0, ur);
1091
+ return ur.fill && (ur.fillStyle === "solid" ? dr.push(I([St], ur)) : dr.push(C([St], ur))), ur.stroke !== tt && dr.push(fr), this._d("polygon", dr, ur);
1092
+ }
1093
+ path(St, lr) {
1094
+ let ur = this._o(lr), dr = [];
1095
+ if (!St) return this._d("path", dr, ur);
1096
+ St = (St || "").replace(/\n/g, " ").replace(/(-\s)/g, "-").replace("/(ss)/g", " ");
1097
+ let fr = ur.fill && ur.fill !== "transparent" && ur.fill !== tt, pr = ur.stroke !== tt, mr = !!(ur.simplification && ur.simplification < 1), hr = function(St, lr, ur) {
1098
+ let dr = m(y(b(St))), fr = [], pr = [], mr = [0, 0], hr = [], gr = () => {
1099
+ hr.length >= 4 && pr.push(...Y(hr, lr)), hr = [];
1100
+ }, _r = () => {
1101
+ gr(), pr.length && (fr.push(pr), pr = []);
1102
+ };
1103
+ for (let { key: St, data: lr } of dr) switch (St) {
1104
+ case "M":
1105
+ _r(), mr = [lr[0], lr[1]], pr.push(mr);
1106
+ break;
1107
+ case "L":
1108
+ gr(), pr.push([lr[0], lr[1]]);
1109
+ break;
1110
+ case "C":
1111
+ if (!hr.length) {
1112
+ let St = pr.length ? pr[pr.length - 1] : mr;
1113
+ hr.push([St[0], St[1]]);
1114
+ }
1115
+ hr.push([lr[0], lr[1]]), hr.push([lr[2], lr[3]]), hr.push([lr[4], lr[5]]);
1116
+ break;
1117
+ case "Z": gr(), pr.push([mr[0], mr[1]]);
1118
+ }
1119
+ if (_r(), !ur) return fr;
1120
+ let vr = [];
1121
+ for (let St of fr) {
1122
+ let lr = U(St, ur);
1123
+ lr.length && vr.push(lr);
1124
+ }
1125
+ return vr;
1126
+ }(St, 1, mr ? 4 - 4 * (ur.simplification || 1) : (1 + ur.roughness) / 2), gr = _(St, ur);
1127
+ if (fr) if (ur.fillStyle === "solid") if (hr.length === 1) {
1128
+ let lr = _(St, Object.assign(Object.assign({}, ur), {
1129
+ disableMultiStroke: !0,
1130
+ roughness: ur.roughness ? ur.roughness + ur.fillShapeRoughnessGain : 0
1131
+ }));
1132
+ dr.push({
1133
+ type: "fillPath",
1134
+ ops: this._mergedShape(lr.ops)
1135
+ });
1136
+ } else dr.push(I(hr, ur));
1137
+ else dr.push(C(hr, ur));
1138
+ return pr && (mr ? hr.forEach(((St) => {
1139
+ dr.push(S(St, !1, ur));
1140
+ })) : dr.push(gr)), this._d("path", dr, ur);
1141
+ }
1142
+ opsToPath(St, lr) {
1143
+ let ur = "";
1144
+ for (let dr of St.ops) {
1145
+ let St = typeof lr == "number" && lr >= 0 ? dr.data.map(((St) => +St.toFixed(lr))) : dr.data;
1146
+ switch (dr.op) {
1147
+ case "move":
1148
+ ur += `M${St[0]} ${St[1]} `;
1149
+ break;
1150
+ case "bcurveTo":
1151
+ ur += `C${St[0]} ${St[1]}, ${St[2]} ${St[3]}, ${St[4]} ${St[5]} `;
1152
+ break;
1153
+ case "lineTo": ur += `L${St[0]} ${St[1]} `;
1154
+ }
1155
+ }
1156
+ return ur.trim();
1157
+ }
1158
+ toPaths(St) {
1159
+ let lr = St.sets || [], ur = St.options || this.defaultOptions, dr = [];
1160
+ for (let St of lr) {
1161
+ let lr = null;
1162
+ switch (St.type) {
1163
+ case "path":
1164
+ lr = {
1165
+ d: this.opsToPath(St),
1166
+ stroke: ur.stroke,
1167
+ strokeWidth: ur.strokeWidth,
1168
+ fill: tt
1169
+ };
1170
+ break;
1171
+ case "fillPath":
1172
+ lr = {
1173
+ d: this.opsToPath(St),
1174
+ stroke: tt,
1175
+ strokeWidth: 0,
1176
+ fill: ur.fill || tt
1177
+ };
1178
+ break;
1179
+ case "fillSketch": lr = this.fillSketch(St, ur);
1180
+ }
1181
+ lr && dr.push(lr);
1182
+ }
1183
+ return dr;
1184
+ }
1185
+ fillSketch(St, lr) {
1186
+ let ur = lr.fillWeight;
1187
+ return ur < 0 && (ur = lr.strokeWidth / 2), {
1188
+ d: this.opsToPath(St),
1189
+ stroke: lr.fill || tt,
1190
+ strokeWidth: ur,
1191
+ fill: tt
1192
+ };
1193
+ }
1194
+ _mergedShape(St) {
1195
+ return St.filter(((St, lr) => lr === 0 || St.op !== "move"));
1196
+ }
1197
+ }, st = class {
1198
+ constructor(St, lr) {
1199
+ this.canvas = St, this.ctx = this.canvas.getContext("2d"), this.gen = new et(lr);
1200
+ }
1201
+ draw(St) {
1202
+ let lr = St.sets || [], ur = St.options || this.getDefaultOptions(), dr = this.ctx, fr = St.options.fixedDecimalPlaceDigits;
1203
+ for (let pr of lr) switch (pr.type) {
1204
+ case "path":
1205
+ dr.save(), dr.strokeStyle = ur.stroke === "none" ? "transparent" : ur.stroke, dr.lineWidth = ur.strokeWidth, ur.strokeLineDash && dr.setLineDash(ur.strokeLineDash), ur.strokeLineDashOffset && (dr.lineDashOffset = ur.strokeLineDashOffset), this._drawToContext(dr, pr, fr), dr.restore();
1206
+ break;
1207
+ case "fillPath": {
1208
+ dr.save(), dr.fillStyle = ur.fill || "";
1209
+ let lr = St.shape === "curve" || St.shape === "polygon" || St.shape === "path" ? "evenodd" : "nonzero";
1210
+ this._drawToContext(dr, pr, fr, lr), dr.restore();
1211
+ break;
1212
+ }
1213
+ case "fillSketch": this.fillSketch(dr, pr, ur);
1214
+ }
1215
+ }
1216
+ fillSketch(St, lr, ur) {
1217
+ let dr = ur.fillWeight;
1218
+ dr < 0 && (dr = ur.strokeWidth / 2), St.save(), ur.fillLineDash && St.setLineDash(ur.fillLineDash), ur.fillLineDashOffset && (St.lineDashOffset = ur.fillLineDashOffset), St.strokeStyle = ur.fill || "", St.lineWidth = dr, this._drawToContext(St, lr, ur.fixedDecimalPlaceDigits), St.restore();
1219
+ }
1220
+ _drawToContext(St, lr, ur, dr = "nonzero") {
1221
+ St.beginPath();
1222
+ for (let dr of lr.ops) {
1223
+ let lr = typeof ur == "number" && ur >= 0 ? dr.data.map(((St) => +St.toFixed(ur))) : dr.data;
1224
+ switch (dr.op) {
1225
+ case "move":
1226
+ St.moveTo(lr[0], lr[1]);
1227
+ break;
1228
+ case "bcurveTo":
1229
+ St.bezierCurveTo(lr[0], lr[1], lr[2], lr[3], lr[4], lr[5]);
1230
+ break;
1231
+ case "lineTo": St.lineTo(lr[0], lr[1]);
1232
+ }
1233
+ }
1234
+ lr.type === "fillPath" ? St.fill(dr) : St.stroke();
1235
+ }
1236
+ get generator() {
1237
+ return this.gen;
1238
+ }
1239
+ getDefaultOptions() {
1240
+ return this.gen.defaultOptions;
1241
+ }
1242
+ line(St, lr, ur, dr, fr) {
1243
+ let pr = this.gen.line(St, lr, ur, dr, fr);
1244
+ return this.draw(pr), pr;
1245
+ }
1246
+ rectangle(St, lr, ur, dr, fr) {
1247
+ let pr = this.gen.rectangle(St, lr, ur, dr, fr);
1248
+ return this.draw(pr), pr;
1249
+ }
1250
+ ellipse(St, lr, ur, dr, fr) {
1251
+ let pr = this.gen.ellipse(St, lr, ur, dr, fr);
1252
+ return this.draw(pr), pr;
1253
+ }
1254
+ circle(St, lr, ur, dr) {
1255
+ let fr = this.gen.circle(St, lr, ur, dr);
1256
+ return this.draw(fr), fr;
1257
+ }
1258
+ linearPath(St, lr) {
1259
+ let ur = this.gen.linearPath(St, lr);
1260
+ return this.draw(ur), ur;
1261
+ }
1262
+ polygon(St, lr) {
1263
+ let ur = this.gen.polygon(St, lr);
1264
+ return this.draw(ur), ur;
1265
+ }
1266
+ arc(St, lr, ur, dr, fr, pr, mr = !1, hr) {
1267
+ let gr = this.gen.arc(St, lr, ur, dr, fr, pr, mr, hr);
1268
+ return this.draw(gr), gr;
1269
+ }
1270
+ curve(St, lr) {
1271
+ let ur = this.gen.curve(St, lr);
1272
+ return this.draw(ur), ur;
1273
+ }
1274
+ path(St, lr) {
1275
+ let ur = this.gen.path(St, lr);
1276
+ return this.draw(ur), ur;
1277
+ }
1278
+ }, nt = "http://www.w3.org/2000/svg", ot = class {
1279
+ constructor(St, lr) {
1280
+ this.svg = St, this.gen = new et(lr);
1281
+ }
1282
+ draw(St) {
1283
+ let lr = St.sets || [], ur = St.options || this.getDefaultOptions(), dr = this.svg.ownerDocument || window.document, fr = dr.createElementNS(nt, "g"), pr = St.options.fixedDecimalPlaceDigits;
1284
+ for (let mr of lr) {
1285
+ let lr = null;
1286
+ switch (mr.type) {
1287
+ case "path":
1288
+ lr = dr.createElementNS(nt, "path"), lr.setAttribute("d", this.opsToPath(mr, pr)), lr.setAttribute("stroke", ur.stroke), lr.setAttribute("stroke-width", ur.strokeWidth + ""), lr.setAttribute("fill", "none"), ur.strokeLineDash && lr.setAttribute("stroke-dasharray", ur.strokeLineDash.join(" ").trim()), ur.strokeLineDashOffset && lr.setAttribute("stroke-dashoffset", `${ur.strokeLineDashOffset}`);
1289
+ break;
1290
+ case "fillPath":
1291
+ lr = dr.createElementNS(nt, "path"), lr.setAttribute("d", this.opsToPath(mr, pr)), lr.setAttribute("stroke", "none"), lr.setAttribute("stroke-width", "0"), lr.setAttribute("fill", ur.fill || ""), St.shape !== "curve" && St.shape !== "polygon" || lr.setAttribute("fill-rule", "evenodd");
1292
+ break;
1293
+ case "fillSketch": lr = this.fillSketch(dr, mr, ur);
1294
+ }
1295
+ lr && fr.appendChild(lr);
1296
+ }
1297
+ return fr;
1298
+ }
1299
+ fillSketch(St, lr, ur) {
1300
+ let dr = ur.fillWeight;
1301
+ dr < 0 && (dr = ur.strokeWidth / 2);
1302
+ let fr = St.createElementNS(nt, "path");
1303
+ return fr.setAttribute("d", this.opsToPath(lr, ur.fixedDecimalPlaceDigits)), fr.setAttribute("stroke", ur.fill || ""), fr.setAttribute("stroke-width", dr + ""), fr.setAttribute("fill", "none"), ur.fillLineDash && fr.setAttribute("stroke-dasharray", ur.fillLineDash.join(" ").trim()), ur.fillLineDashOffset && fr.setAttribute("stroke-dashoffset", `${ur.fillLineDashOffset}`), fr;
1304
+ }
1305
+ get generator() {
1306
+ return this.gen;
1307
+ }
1308
+ getDefaultOptions() {
1309
+ return this.gen.defaultOptions;
1310
+ }
1311
+ opsToPath(St, lr) {
1312
+ return this.gen.opsToPath(St, lr);
1313
+ }
1314
+ line(St, lr, ur, dr, fr) {
1315
+ let pr = this.gen.line(St, lr, ur, dr, fr);
1316
+ return this.draw(pr);
1317
+ }
1318
+ rectangle(St, lr, ur, dr, fr) {
1319
+ let pr = this.gen.rectangle(St, lr, ur, dr, fr);
1320
+ return this.draw(pr);
1321
+ }
1322
+ ellipse(St, lr, ur, dr, fr) {
1323
+ let pr = this.gen.ellipse(St, lr, ur, dr, fr);
1324
+ return this.draw(pr);
1325
+ }
1326
+ circle(St, lr, ur, dr) {
1327
+ let fr = this.gen.circle(St, lr, ur, dr);
1328
+ return this.draw(fr);
1329
+ }
1330
+ linearPath(St, lr) {
1331
+ let ur = this.gen.linearPath(St, lr);
1332
+ return this.draw(ur);
1333
+ }
1334
+ polygon(St, lr) {
1335
+ let ur = this.gen.polygon(St, lr);
1336
+ return this.draw(ur);
1337
+ }
1338
+ arc(St, lr, ur, dr, fr, pr, mr = !1, hr) {
1339
+ let gr = this.gen.arc(St, lr, ur, dr, fr, pr, mr, hr);
1340
+ return this.draw(gr);
1341
+ }
1342
+ curve(St, lr) {
1343
+ let ur = this.gen.curve(St, lr);
1344
+ return this.draw(ur);
1345
+ }
1346
+ path(St, lr) {
1347
+ let ur = this.gen.path(St, lr);
1348
+ return this.draw(ur);
1349
+ }
1350
+ }, at = {
1351
+ canvas: (St, lr) => new st(St, lr),
1352
+ svg: (St, lr) => new ot(St, lr),
1353
+ generator: (St) => new et(St),
1354
+ newSeed: () => et.newSeed()
1355
+ }, labelHelper = /* @__PURE__ */ __name(async (ur, fr, hr) => {
1356
+ let _r, vr = fr.useHtmlLabels || evaluate(getConfig2()?.htmlLabels);
1357
+ _r = hr || "node default";
1358
+ let yr = ur.insert("g").attr("class", _r).attr("id", fr.domId || fr.id), Cr = yr.insert("g").attr("class", "label").attr("style", handleUndefinedAttr(fr.labelStyle)), wr;
1359
+ wr = fr.label === void 0 ? "" : typeof fr.label == "string" ? fr.label : fr.label[0];
1360
+ let Er = await createText(Cr, sanitizeText(decodeEntities(wr), getConfig2()), {
1361
+ useHtmlLabels: vr,
1362
+ width: fr.width || getConfig2().flowchart?.wrappingWidth,
1363
+ cssClasses: "markdown-node-label",
1364
+ style: fr.labelStyle,
1365
+ addSvgBackground: !!fr.icon || !!fr.img
1366
+ }), Dr = Er.getBBox(), Or = (fr?.padding ?? 0) / 2;
1367
+ if (vr) {
1368
+ let St = Er.children[0], ur = select_default(Er), dr = St.getElementsByTagName("img");
1369
+ if (dr) {
1370
+ let St = wr.replace(/<img[^>]*>/g, "").trim() === "";
1371
+ await Promise.all([...dr].map((ur) => new Promise((dr) => {
1372
+ function fr() {
1373
+ if (ur.style.display = "flex", ur.style.flexDirection = "column", St) {
1374
+ let [St = defaultConfig_default.fontSize] = parseFontSize(getConfig2().fontSize ? getConfig2().fontSize : window.getComputedStyle(document.body).fontSize), dr = St * 5 + "px";
1375
+ ur.style.minWidth = dr, ur.style.maxWidth = dr;
1376
+ } else ur.style.width = "100%";
1377
+ dr(ur);
1378
+ }
1379
+ __name(fr, "setupImage"), setTimeout(() => {
1380
+ ur.complete && fr();
1381
+ }), ur.addEventListener("error", fr), ur.addEventListener("load", fr);
1382
+ })));
1383
+ }
1384
+ Dr = St.getBoundingClientRect(), ur.attr("width", Dr.width), ur.attr("height", Dr.height);
1385
+ }
1386
+ return vr ? Cr.attr("transform", "translate(" + -Dr.width / 2 + ", " + -Dr.height / 2 + ")") : Cr.attr("transform", "translate(0, " + -Dr.height / 2 + ")"), fr.centerLabel && Cr.attr("transform", "translate(" + -Dr.width / 2 + ", " + -Dr.height / 2 + ")"), Cr.insert("rect", ":first-child"), {
1387
+ shapeSvg: yr,
1388
+ bbox: Dr,
1389
+ halfPadding: Or,
1390
+ label: Cr
1391
+ };
1392
+ }, "labelHelper"), insertLabel = /* @__PURE__ */ __name(async (lr, ur, dr) => {
1393
+ let fr = dr.useHtmlLabels || evaluate(getConfig2()?.flowchart?.htmlLabels), pr = lr.insert("g").attr("class", "label").attr("style", dr.labelStyle || ""), hr = await createText(pr, sanitizeText(decodeEntities(ur), getConfig2()), {
1394
+ useHtmlLabels: fr,
1395
+ width: dr.width || getConfig2()?.flowchart?.wrappingWidth,
1396
+ style: dr.labelStyle,
1397
+ addSvgBackground: !!dr.icon || !!dr.img
1398
+ }), _r = hr.getBBox(), vr = dr.padding / 2;
1399
+ if (evaluate(getConfig2()?.flowchart?.htmlLabels)) {
1400
+ let St = hr.children[0], lr = select_default(hr);
1401
+ _r = St.getBoundingClientRect(), lr.attr("width", _r.width), lr.attr("height", _r.height);
1402
+ }
1403
+ return fr ? pr.attr("transform", "translate(" + -_r.width / 2 + ", " + -_r.height / 2 + ")") : pr.attr("transform", "translate(0, " + -_r.height / 2 + ")"), dr.centerLabel && pr.attr("transform", "translate(" + -_r.width / 2 + ", " + -_r.height / 2 + ")"), pr.insert("rect", ":first-child"), {
1404
+ shapeSvg: lr,
1405
+ bbox: _r,
1406
+ halfPadding: vr,
1407
+ label: pr
1408
+ };
1409
+ }, "insertLabel"), updateNodeBounds = /* @__PURE__ */ __name((St, lr) => {
1410
+ let ur = lr.node().getBBox();
1411
+ St.width = ur.width, St.height = ur.height;
1412
+ }, "updateNodeBounds"), getNodeClasses = /* @__PURE__ */ __name((St, lr) => (St.look === "handDrawn" ? "rough-node" : "node") + " " + St.cssClasses + " " + (lr || ""), "getNodeClasses");
1413
+ function createPathFromPoints(St) {
1414
+ let lr = St.map((St, lr) => `${lr === 0 ? "M" : "L"}${St.x},${St.y}`);
1415
+ return lr.push("Z"), lr.join(" ");
1416
+ }
1417
+ __name(createPathFromPoints, "createPathFromPoints");
1418
+ function generateFullSineWavePoints(St, lr, ur, dr, fr, pr) {
1419
+ let mr = [], hr = ur - St, gr = dr - lr, _r = hr / pr, vr = 2 * Math.PI / _r, yr = lr + gr / 2;
1420
+ for (let lr = 0; lr <= 50; lr++) {
1421
+ let ur = St + lr / 50 * hr, dr = yr + fr * Math.sin(vr * (ur - St));
1422
+ mr.push({
1423
+ x: ur,
1424
+ y: dr
1425
+ });
1426
+ }
1427
+ return mr;
1428
+ }
1429
+ __name(generateFullSineWavePoints, "generateFullSineWavePoints");
1430
+ function generateCirclePoints(St, lr, ur, dr, fr, pr) {
1431
+ let mr = [], hr = fr * Math.PI / 180, gr = (pr * Math.PI / 180 - hr) / (dr - 1);
1432
+ for (let fr = 0; fr < dr; fr++) {
1433
+ let dr = hr + fr * gr, pr = St + ur * Math.cos(dr), _r = lr + ur * Math.sin(dr);
1434
+ mr.push({
1435
+ x: -pr,
1436
+ y: -_r
1437
+ });
1438
+ }
1439
+ return mr;
1440
+ }
1441
+ __name(generateCirclePoints, "generateCirclePoints");
1442
+ var intersect_rect_default = /* @__PURE__ */ __name((St, lr) => {
1443
+ var ur = St.x, dr = St.y, fr = lr.x - ur, pr = lr.y - dr, mr = St.width / 2, hr = St.height / 2, gr, _r;
1444
+ return Math.abs(pr) * mr > Math.abs(fr) * hr ? (pr < 0 && (hr = -hr), gr = pr === 0 ? 0 : hr * fr / pr, _r = hr) : (fr < 0 && (mr = -mr), gr = mr, _r = fr === 0 ? 0 : mr * pr / fr), {
1445
+ x: ur + gr,
1446
+ y: dr + _r
1447
+ };
1448
+ }, "intersectRect");
1449
+ function applyStyle(St, lr) {
1450
+ lr && St.attr("style", lr);
1451
+ }
1452
+ __name(applyStyle, "applyStyle");
1453
+ async function addHtmlLabel(St) {
1454
+ let lr = select_default(document.createElementNS("http://www.w3.org/2000/svg", "foreignObject")), ur = lr.append("xhtml:div"), dr = getConfig2(), fr = St.label;
1455
+ St.label && hasKatex(St.label) && (fr = await renderKatexSanitized(St.label.replace(common_default.lineBreakRegex, "\n"), dr));
1456
+ let pr = "<span class=\"" + (St.isNode ? "nodeLabel" : "edgeLabel") + "\" " + (St.labelStyle ? "style=\"" + St.labelStyle + "\"" : "") + ">" + fr + "</span>";
1457
+ return ur.html(sanitizeText(pr, dr)), applyStyle(ur, St.labelStyle), ur.style("display", "inline-block"), ur.style("padding-right", "1px"), ur.style("white-space", "nowrap"), ur.attr("xmlns", "http://www.w3.org/1999/xhtml"), lr.node();
1458
+ }
1459
+ __name(addHtmlLabel, "addHtmlLabel");
1460
+ var createLabel_default = /* @__PURE__ */ __name(async (lr, ur, dr, pr) => {
1461
+ let mr = lr || "";
1462
+ if (typeof mr == "object" && (mr = mr[0]), evaluate(getConfig2().flowchart.htmlLabels)) return mr = mr.replace(/\\n|\n/g, "<br />"), log.info("vertexText" + mr), await addHtmlLabel({
1463
+ isNode: pr,
1464
+ label: decodeEntities(mr).replace(/fa[blrs]?:fa-[\w-]+/g, (St) => `<i class='${St.replace(":", " ")}'></i>`),
1465
+ labelStyle: ur && ur.replace("fill:", "color:")
1466
+ });
1467
+ {
1468
+ let St = document.createElementNS("http://www.w3.org/2000/svg", "text");
1469
+ St.setAttribute("style", ur.replace("color:", "fill:"));
1470
+ let lr = [];
1471
+ lr = typeof mr == "string" ? mr.split(/\\n|\n|<br\s*\/?>/gi) : Array.isArray(mr) ? mr : [];
1472
+ for (let ur of lr) {
1473
+ let lr = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
1474
+ lr.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve"), lr.setAttribute("dy", "1em"), lr.setAttribute("x", "0"), dr ? lr.setAttribute("class", "title-row") : lr.setAttribute("class", "row"), lr.textContent = ur.trim(), St.appendChild(lr);
1475
+ }
1476
+ return St;
1477
+ }
1478
+ }, "createLabel"), createRoundedRectPathD = /* @__PURE__ */ __name((St, lr, ur, dr, fr) => [
1479
+ "M",
1480
+ St + fr,
1481
+ lr,
1482
+ "H",
1483
+ St + ur - fr,
1484
+ "A",
1485
+ fr,
1486
+ fr,
1487
+ 0,
1488
+ 0,
1489
+ 1,
1490
+ St + ur,
1491
+ lr + fr,
1492
+ "V",
1493
+ lr + dr - fr,
1494
+ "A",
1495
+ fr,
1496
+ fr,
1497
+ 0,
1498
+ 0,
1499
+ 1,
1500
+ St + ur - fr,
1501
+ lr + dr,
1502
+ "H",
1503
+ St + fr,
1504
+ "A",
1505
+ fr,
1506
+ fr,
1507
+ 0,
1508
+ 0,
1509
+ 1,
1510
+ St,
1511
+ lr + dr - fr,
1512
+ "V",
1513
+ lr + fr,
1514
+ "A",
1515
+ fr,
1516
+ fr,
1517
+ 0,
1518
+ 0,
1519
+ 1,
1520
+ St + fr,
1521
+ lr,
1522
+ "Z"
1523
+ ].join(" "), "createRoundedRectPathD"), rect = /* @__PURE__ */ __name(async (St, lr) => {
1524
+ log.info("Creating subgraph rect for ", lr.id, lr);
1525
+ let ur = getConfig2(), { themeVariables: dr, handDrawnSeed: pr } = ur, { clusterBkg: hr, clusterBorder: gr } = dr, { labelStyles: _r, nodeStyles: vr, borderStyles: yr, backgroundStyles: xr } = styles2String(lr), Cr = St.insert("g").attr("class", "cluster " + lr.cssClasses).attr("id", lr.id).attr("data-look", lr.look), wr = evaluate(ur.flowchart.htmlLabels), Er = Cr.insert("g").attr("class", "cluster-label "), Ar = await createText(Er, lr.label, {
1526
+ style: lr.labelStyle,
1527
+ useHtmlLabels: wr,
1528
+ isNode: !0
1529
+ }), jr = Ar.getBBox();
1530
+ if (evaluate(ur.flowchart.htmlLabels)) {
1531
+ let St = Ar.children[0], lr = select_default(Ar);
1532
+ jr = St.getBoundingClientRect(), lr.attr("width", jr.width), lr.attr("height", jr.height);
1533
+ }
1534
+ let Mr = lr.width <= jr.width + lr.padding ? jr.width + lr.padding : lr.width;
1535
+ lr.width <= jr.width + lr.padding ? lr.diff = (Mr - lr.width) / 2 - lr.padding : lr.diff = -lr.padding;
1536
+ let Nr = lr.height, Pr = lr.x - Mr / 2, Fr = lr.y - Nr / 2;
1537
+ log.trace("Data ", lr, JSON.stringify(lr));
1538
+ let Ir;
1539
+ if (lr.look === "handDrawn") {
1540
+ let St = at.svg(Cr), ur = userNodeOverrides(lr, {
1541
+ roughness: .7,
1542
+ fill: hr,
1543
+ stroke: gr,
1544
+ fillWeight: 3,
1545
+ seed: pr
1546
+ }), dr = St.path(createRoundedRectPathD(Pr, Fr, Mr, Nr, 0), ur);
1547
+ Ir = Cr.insert(() => (log.debug("Rough node insert CXC", dr), dr), ":first-child"), Ir.select("path:nth-child(2)").attr("style", yr.join(";")), Ir.select("path").attr("style", xr.join(";").replace("fill", "stroke"));
1548
+ } else Ir = Cr.insert("rect", ":first-child"), Ir.attr("style", vr).attr("rx", lr.rx).attr("ry", lr.ry).attr("x", Pr).attr("y", Fr).attr("width", Mr).attr("height", Nr);
1549
+ let { subGraphTitleTopMargin: Lr } = getSubGraphTitleMargins(ur);
1550
+ if (Er.attr("transform", `translate(${lr.x - jr.width / 2}, ${lr.y - lr.height / 2 + Lr})`), _r) {
1551
+ let St = Er.select("span");
1552
+ St && St.attr("style", _r);
1553
+ }
1554
+ let Rr = Ir.node().getBBox();
1555
+ return lr.offsetX = 0, lr.width = Rr.width, lr.height = Rr.height, lr.offsetY = jr.height - lr.padding / 2, lr.intersect = function(St) {
1556
+ return intersect_rect_default(lr, St);
1557
+ }, {
1558
+ cluster: Cr,
1559
+ labelBBox: jr
1560
+ };
1561
+ }, "rect"), shapes = {
1562
+ rect,
1563
+ squareRect: rect,
1564
+ roundedWithTitle: /* @__PURE__ */ __name(async (St, lr) => {
1565
+ let ur = getConfig2(), { themeVariables: dr, handDrawnSeed: fr } = ur, { altBackground: pr, compositeBackground: hr, compositeTitleBackground: gr, nodeBorder: _r } = dr, vr = St.insert("g").attr("class", lr.cssClasses).attr("id", lr.id).attr("data-id", lr.id).attr("data-look", lr.look), yr = vr.insert("g", ":first-child"), xr = vr.insert("g").attr("class", "cluster-label"), Cr = vr.append("rect"), wr = xr.node().appendChild(await createLabel_default(lr.label, lr.labelStyle, void 0, !0)), Tr = wr.getBBox();
1566
+ if (evaluate(ur.flowchart.htmlLabels)) {
1567
+ let St = wr.children[0], lr = select_default(wr);
1568
+ Tr = St.getBoundingClientRect(), lr.attr("width", Tr.width), lr.attr("height", Tr.height);
1569
+ }
1570
+ let Er = 0 * lr.padding, Dr = Er / 2, Or = (lr.width <= Tr.width + lr.padding ? Tr.width + lr.padding : lr.width) + Er;
1571
+ lr.width <= Tr.width + lr.padding ? lr.diff = (Or - lr.width) / 2 - lr.padding : lr.diff = -lr.padding;
1572
+ let kr = lr.height + Er, Ar = lr.height + Er - Tr.height - 6, jr = lr.x - Or / 2, Mr = lr.y - kr / 2;
1573
+ lr.width = Or;
1574
+ let Nr = lr.y - lr.height / 2 - Dr + Tr.height + 2, Pr;
1575
+ if (lr.look === "handDrawn") {
1576
+ let St = lr.cssClasses.includes("statediagram-cluster-alt"), ur = at.svg(vr), dr = lr.rx || lr.ry ? ur.path(createRoundedRectPathD(jr, Mr, Or, kr, 10), {
1577
+ roughness: .7,
1578
+ fill: gr,
1579
+ fillStyle: "solid",
1580
+ stroke: _r,
1581
+ seed: fr
1582
+ }) : ur.rectangle(jr, Mr, Or, kr, { seed: fr });
1583
+ Pr = vr.insert(() => dr, ":first-child");
1584
+ let mr = ur.rectangle(jr, Nr, Or, Ar, {
1585
+ fill: St ? pr : hr,
1586
+ fillStyle: St ? "hachure" : "solid",
1587
+ stroke: _r,
1588
+ seed: fr
1589
+ });
1590
+ Pr = vr.insert(() => dr, ":first-child"), Cr = vr.insert(() => mr);
1591
+ } else Pr = yr.insert("rect", ":first-child"), Pr.attr("class", "outer").attr("x", jr).attr("y", Mr).attr("width", Or).attr("height", kr).attr("data-look", lr.look), Cr.attr("class", "inner").attr("x", jr).attr("y", Nr).attr("width", Or).attr("height", Ar);
1592
+ return xr.attr("transform", `translate(${lr.x - Tr.width / 2}, ${Mr + 1 - (evaluate(ur.flowchart.htmlLabels) ? 0 : 3)})`), lr.height = Pr.node().getBBox().height, lr.offsetX = 0, lr.offsetY = Tr.height - lr.padding / 2, lr.labelBBox = Tr, lr.intersect = function(St) {
1593
+ return intersect_rect_default(lr, St);
1594
+ }, {
1595
+ cluster: vr,
1596
+ labelBBox: Tr
1597
+ };
1598
+ }, "roundedWithTitle"),
1599
+ noteGroup: /* @__PURE__ */ __name((St, lr) => {
1600
+ let ur = St.insert("g").attr("class", "note-cluster").attr("id", lr.id), dr = ur.insert("rect", ":first-child"), fr = 0 * lr.padding, pr = fr / 2;
1601
+ dr.attr("rx", lr.rx).attr("ry", lr.ry).attr("x", lr.x - lr.width / 2 - pr).attr("y", lr.y - lr.height / 2 - pr).attr("width", lr.width + fr).attr("height", lr.height + fr).attr("fill", "none");
1602
+ let mr = dr.node().getBBox();
1603
+ return lr.width = mr.width, lr.height = mr.height, lr.intersect = function(St) {
1604
+ return intersect_rect_default(lr, St);
1605
+ }, {
1606
+ cluster: ur,
1607
+ labelBBox: {
1608
+ width: 0,
1609
+ height: 0
1610
+ }
1611
+ };
1612
+ }, "noteGroup"),
1613
+ divider: /* @__PURE__ */ __name((St, lr) => {
1614
+ let { themeVariables: ur, handDrawnSeed: dr } = getConfig2(), { nodeBorder: fr } = ur, pr = St.insert("g").attr("class", lr.cssClasses).attr("id", lr.id).attr("data-look", lr.look), mr = pr.insert("g", ":first-child"), hr = 0 * lr.padding, gr = lr.width + hr;
1615
+ lr.diff = -lr.padding;
1616
+ let _r = lr.height + hr, vr = lr.x - gr / 2, yr = lr.y - _r / 2;
1617
+ lr.width = gr;
1618
+ let xr;
1619
+ if (lr.look === "handDrawn") {
1620
+ let St = at.svg(pr).rectangle(vr, yr, gr, _r, {
1621
+ fill: "lightgrey",
1622
+ roughness: .5,
1623
+ strokeLineDash: [5],
1624
+ stroke: fr,
1625
+ seed: dr
1626
+ });
1627
+ xr = pr.insert(() => St, ":first-child");
1628
+ } else xr = mr.insert("rect", ":first-child"), xr.attr("class", "divider").attr("x", vr).attr("y", yr).attr("width", gr).attr("height", _r).attr("data-look", lr.look);
1629
+ return lr.height = xr.node().getBBox().height, lr.offsetX = 0, lr.offsetY = 0, lr.intersect = function(St) {
1630
+ return intersect_rect_default(lr, St);
1631
+ }, {
1632
+ cluster: pr,
1633
+ labelBBox: {}
1634
+ };
1635
+ }, "divider"),
1636
+ kanbanSection: /* @__PURE__ */ __name(async (St, lr) => {
1637
+ log.info("Creating subgraph rect for ", lr.id, lr);
1638
+ let ur = getConfig2(), { themeVariables: dr, handDrawnSeed: pr } = ur, { clusterBkg: hr, clusterBorder: gr } = dr, { labelStyles: _r, nodeStyles: vr, borderStyles: yr, backgroundStyles: xr } = styles2String(lr), Cr = St.insert("g").attr("class", "cluster " + lr.cssClasses).attr("id", lr.id).attr("data-look", lr.look), wr = evaluate(ur.flowchart.htmlLabels), Er = Cr.insert("g").attr("class", "cluster-label "), Ar = await createText(Er, lr.label, {
1639
+ style: lr.labelStyle,
1640
+ useHtmlLabels: wr,
1641
+ isNode: !0,
1642
+ width: lr.width
1643
+ }), jr = Ar.getBBox();
1644
+ if (evaluate(ur.flowchart.htmlLabels)) {
1645
+ let St = Ar.children[0], lr = select_default(Ar);
1646
+ jr = St.getBoundingClientRect(), lr.attr("width", jr.width), lr.attr("height", jr.height);
1647
+ }
1648
+ let Mr = lr.width <= jr.width + lr.padding ? jr.width + lr.padding : lr.width;
1649
+ lr.width <= jr.width + lr.padding ? lr.diff = (Mr - lr.width) / 2 - lr.padding : lr.diff = -lr.padding;
1650
+ let Nr = lr.height, Pr = lr.x - Mr / 2, Fr = lr.y - Nr / 2;
1651
+ log.trace("Data ", lr, JSON.stringify(lr));
1652
+ let Ir;
1653
+ if (lr.look === "handDrawn") {
1654
+ let St = at.svg(Cr), ur = userNodeOverrides(lr, {
1655
+ roughness: .7,
1656
+ fill: hr,
1657
+ stroke: gr,
1658
+ fillWeight: 4,
1659
+ seed: pr
1660
+ }), dr = St.path(createRoundedRectPathD(Pr, Fr, Mr, Nr, lr.rx), ur);
1661
+ Ir = Cr.insert(() => (log.debug("Rough node insert CXC", dr), dr), ":first-child"), Ir.select("path:nth-child(2)").attr("style", yr.join(";")), Ir.select("path").attr("style", xr.join(";").replace("fill", "stroke"));
1662
+ } else Ir = Cr.insert("rect", ":first-child"), Ir.attr("style", vr).attr("rx", lr.rx).attr("ry", lr.ry).attr("x", Pr).attr("y", Fr).attr("width", Mr).attr("height", Nr);
1663
+ let { subGraphTitleTopMargin: Lr } = getSubGraphTitleMargins(ur);
1664
+ if (Er.attr("transform", `translate(${lr.x - jr.width / 2}, ${lr.y - lr.height / 2 + Lr})`), _r) {
1665
+ let St = Er.select("span");
1666
+ St && St.attr("style", _r);
1667
+ }
1668
+ let Rr = Ir.node().getBBox();
1669
+ return lr.offsetX = 0, lr.width = Rr.width, lr.height = Rr.height, lr.offsetY = jr.height - lr.padding / 2, lr.intersect = function(St) {
1670
+ return intersect_rect_default(lr, St);
1671
+ }, {
1672
+ cluster: Cr,
1673
+ labelBBox: jr
1674
+ };
1675
+ }, "kanbanSection")
1676
+ }, clusterElems = /* @__PURE__ */ new Map(), insertCluster = /* @__PURE__ */ __name(async (St, lr) => {
1677
+ let ur = await shapes[lr.shape || "rect"](St, lr);
1678
+ return clusterElems.set(lr.id, ur), ur;
1679
+ }, "insertCluster"), clear = /* @__PURE__ */ __name(() => {
1680
+ clusterElems = /* @__PURE__ */ new Map();
1681
+ }, "clear");
1682
+ function intersectNode(St, lr) {
1683
+ return St.intersect(lr);
1684
+ }
1685
+ __name(intersectNode, "intersectNode");
1686
+ var intersect_node_default = intersectNode;
1687
+ function intersectEllipse(St, lr, ur, dr) {
1688
+ var fr = St.x, pr = St.y, mr = fr - dr.x, hr = pr - dr.y, gr = Math.sqrt(lr * lr * hr * hr + ur * ur * mr * mr), _r = Math.abs(lr * ur * mr / gr);
1689
+ dr.x < fr && (_r = -_r);
1690
+ var vr = Math.abs(lr * ur * hr / gr);
1691
+ return dr.y < pr && (vr = -vr), {
1692
+ x: fr + _r,
1693
+ y: pr + vr
1694
+ };
1695
+ }
1696
+ __name(intersectEllipse, "intersectEllipse");
1697
+ var intersect_ellipse_default = intersectEllipse;
1698
+ function intersectCircle(St, lr, ur) {
1699
+ return intersect_ellipse_default(St, lr, lr, ur);
1700
+ }
1701
+ __name(intersectCircle, "intersectCircle");
1702
+ var intersect_circle_default = intersectCircle;
1703
+ function intersectLine(St, lr, ur, dr) {
1704
+ {
1705
+ let fr = lr.y - St.y, pr = St.x - lr.x, mr = lr.x * St.y - St.x * lr.y, hr = fr * ur.x + pr * ur.y + mr, gr = fr * dr.x + pr * dr.y + mr, _r = 1e-6;
1706
+ if (hr !== 0 && gr !== 0 && sameSign(hr, gr)) return;
1707
+ let vr = dr.y - ur.y, yr = ur.x - dr.x, br = dr.x * ur.y - ur.x * dr.y, xr = vr * St.x + yr * St.y + br, Sr = vr * lr.x + yr * lr.y + br;
1708
+ if (Math.abs(xr) < _r && Math.abs(Sr) < _r && sameSign(xr, Sr)) return;
1709
+ let Cr = fr * yr - vr * pr;
1710
+ if (Cr === 0) return;
1711
+ let wr = Math.abs(Cr / 2), Tr = pr * br - yr * mr, Er = Tr < 0 ? (Tr - wr) / Cr : (Tr + wr) / Cr;
1712
+ return Tr = vr * mr - fr * br, {
1713
+ x: Er,
1714
+ y: Tr < 0 ? (Tr - wr) / Cr : (Tr + wr) / Cr
1715
+ };
1716
+ }
1717
+ }
1718
+ __name(intersectLine, "intersectLine");
1719
+ function sameSign(St, lr) {
1720
+ return St * lr > 0;
1721
+ }
1722
+ __name(sameSign, "sameSign");
1723
+ var intersect_line_default = intersectLine;
1724
+ function intersectPolygon(St, lr, ur) {
1725
+ let dr = St.x, fr = St.y, pr = [], mr = Infinity, hr = Infinity;
1726
+ typeof lr.forEach == "function" ? lr.forEach(function(St) {
1727
+ mr = Math.min(mr, St.x), hr = Math.min(hr, St.y);
1728
+ }) : (mr = Math.min(mr, lr.x), hr = Math.min(hr, lr.y));
1729
+ let gr = dr - St.width / 2 - mr, _r = fr - St.height / 2 - hr;
1730
+ for (let dr = 0; dr < lr.length; dr++) {
1731
+ let fr = lr[dr], mr = lr[dr < lr.length - 1 ? dr + 1 : 0], hr = intersect_line_default(St, ur, {
1732
+ x: gr + fr.x,
1733
+ y: _r + fr.y
1734
+ }, {
1735
+ x: gr + mr.x,
1736
+ y: _r + mr.y
1737
+ });
1738
+ hr && pr.push(hr);
1739
+ }
1740
+ return pr.length ? (pr.length > 1 && pr.sort(function(St, lr) {
1741
+ let dr = St.x - ur.x, fr = St.y - ur.y, pr = Math.sqrt(dr * dr + fr * fr), mr = lr.x - ur.x, hr = lr.y - ur.y, gr = Math.sqrt(mr * mr + hr * hr);
1742
+ return pr < gr ? -1 : pr === gr ? 0 : 1;
1743
+ }), pr[0]) : St;
1744
+ }
1745
+ __name(intersectPolygon, "intersectPolygon");
1746
+ var intersect_default = {
1747
+ node: intersect_node_default,
1748
+ circle: intersect_circle_default,
1749
+ ellipse: intersect_ellipse_default,
1750
+ polygon: intersectPolygon,
1751
+ rect: intersect_rect_default
1752
+ };
1753
+ function anchor(St, lr) {
1754
+ let { labelStyles: ur } = styles2String(lr);
1755
+ lr.labelStyle = ur;
1756
+ let pr = getNodeClasses(lr), mr = pr;
1757
+ pr || (mr = "anchor");
1758
+ let hr = St.insert("g").attr("class", mr).attr("id", lr.domId || lr.id), { cssStyles: gr } = lr, _r = at.svg(hr), vr = userNodeOverrides(lr, {
1759
+ fill: "black",
1760
+ stroke: "none",
1761
+ fillStyle: "solid"
1762
+ });
1763
+ lr.look !== "handDrawn" && (vr.roughness = 0);
1764
+ let yr = _r.circle(0, 0, 2, vr), br = hr.insert(() => yr, ":first-child");
1765
+ return br.attr("class", "anchor").attr("style", handleUndefinedAttr(gr)), updateNodeBounds(lr, br), lr.intersect = function(St) {
1766
+ return log.info("Circle intersect", lr, 1, St), intersect_default.circle(lr, 1, St);
1767
+ }, hr;
1768
+ }
1769
+ __name(anchor, "anchor");
1770
+ function generateArcPoints(St, lr, ur, dr, fr, pr, mr) {
1771
+ let hr = (St + ur) / 2, gr = (lr + dr) / 2, _r = Math.atan2(dr - lr, ur - St), vr = (ur - St) / 2, yr = (dr - lr) / 2, br = vr / fr, xr = yr / pr, Sr = Math.sqrt(br ** 2 + xr ** 2);
1772
+ if (Sr > 1) throw Error("The given radii are too small to create an arc between the points.");
1773
+ let Cr = Math.sqrt(1 - Sr ** 2), wr = hr + Cr * pr * Math.sin(_r) * (mr ? -1 : 1), Tr = gr - Cr * fr * Math.cos(_r) * (mr ? -1 : 1), Er = Math.atan2((lr - Tr) / pr, (St - wr) / fr), Dr = Math.atan2((dr - Tr) / pr, (ur - wr) / fr) - Er;
1774
+ mr && Dr < 0 && (Dr += 2 * Math.PI), !mr && Dr > 0 && (Dr -= 2 * Math.PI);
1775
+ let Or = [];
1776
+ for (let St = 0; St < 20; St++) {
1777
+ let lr = Er + St / 19 * Dr, ur = wr + fr * Math.cos(lr), dr = Tr + pr * Math.sin(lr);
1778
+ Or.push({
1779
+ x: ur,
1780
+ y: dr
1781
+ });
1782
+ }
1783
+ return Or;
1784
+ }
1785
+ __name(generateArcPoints, "generateArcPoints");
1786
+ async function bowTieRect(St, lr) {
1787
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
1788
+ lr.labelStyle = ur;
1789
+ let { shapeSvg: fr, bbox: pr } = await labelHelper(St, lr, getNodeClasses(lr)), mr = pr.width + lr.padding + 20, hr = pr.height + lr.padding, gr = hr / 2, _r = gr / (2.5 + hr / 50), { cssStyles: vr } = lr, yr = [
1790
+ {
1791
+ x: mr / 2,
1792
+ y: -hr / 2
1793
+ },
1794
+ {
1795
+ x: -mr / 2,
1796
+ y: -hr / 2
1797
+ },
1798
+ ...generateArcPoints(-mr / 2, -hr / 2, -mr / 2, hr / 2, _r, gr, !1),
1799
+ {
1800
+ x: mr / 2,
1801
+ y: hr / 2
1802
+ },
1803
+ ...generateArcPoints(mr / 2, hr / 2, mr / 2, -hr / 2, _r, gr, !0)
1804
+ ], br = at.svg(fr), xr = userNodeOverrides(lr, {});
1805
+ lr.look !== "handDrawn" && (xr.roughness = 0, xr.fillStyle = "solid");
1806
+ let Sr = createPathFromPoints(yr), Cr = br.path(Sr, xr), wr = fr.insert(() => Cr, ":first-child");
1807
+ return wr.attr("class", "basic label-container"), vr && lr.look !== "handDrawn" && wr.selectAll("path").attr("style", vr), dr && lr.look !== "handDrawn" && wr.selectAll("path").attr("style", dr), wr.attr("transform", `translate(${_r / 2}, 0)`), updateNodeBounds(lr, wr), lr.intersect = function(St) {
1808
+ return intersect_default.polygon(lr, yr, St);
1809
+ }, fr;
1810
+ }
1811
+ __name(bowTieRect, "bowTieRect");
1812
+ function insertPolygonShape(St, lr, ur, dr) {
1813
+ return St.insert("polygon", ":first-child").attr("points", dr.map(function(St) {
1814
+ return St.x + "," + St.y;
1815
+ }).join(" ")).attr("class", "label-container").attr("transform", "translate(" + -lr / 2 + "," + ur / 2 + ")");
1816
+ }
1817
+ __name(insertPolygonShape, "insertPolygonShape");
1818
+ async function card(St, lr) {
1819
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
1820
+ lr.labelStyle = ur;
1821
+ let { shapeSvg: fr, bbox: pr } = await labelHelper(St, lr, getNodeClasses(lr)), mr = pr.height + lr.padding, hr = pr.width + lr.padding + 12, gr = hr, _r = -mr, vr = [
1822
+ {
1823
+ x: 12,
1824
+ y: _r
1825
+ },
1826
+ {
1827
+ x: gr,
1828
+ y: _r
1829
+ },
1830
+ {
1831
+ x: gr,
1832
+ y: 0
1833
+ },
1834
+ {
1835
+ x: 0,
1836
+ y: 0
1837
+ },
1838
+ {
1839
+ x: 0,
1840
+ y: _r + 12
1841
+ },
1842
+ {
1843
+ x: 12,
1844
+ y: _r
1845
+ }
1846
+ ], yr, { cssStyles: br } = lr;
1847
+ if (lr.look === "handDrawn") {
1848
+ let St = at.svg(fr), ur = userNodeOverrides(lr, {}), dr = createPathFromPoints(vr), pr = St.path(dr, ur);
1849
+ yr = fr.insert(() => pr, ":first-child").attr("transform", `translate(${-hr / 2}, ${mr / 2})`), br && yr.attr("style", br);
1850
+ } else yr = insertPolygonShape(fr, hr, mr, vr);
1851
+ return dr && yr.attr("style", dr), updateNodeBounds(lr, yr), lr.intersect = function(St) {
1852
+ return intersect_default.polygon(lr, vr, St);
1853
+ }, fr;
1854
+ }
1855
+ __name(card, "card");
1856
+ function choice(St, lr) {
1857
+ let { nodeStyles: ur } = styles2String(lr);
1858
+ lr.label = "";
1859
+ let dr = St.insert("g").attr("class", getNodeClasses(lr)).attr("id", lr.domId ?? lr.id), { cssStyles: fr } = lr, pr = Math.max(28, lr.width ?? 0), mr = [
1860
+ {
1861
+ x: 0,
1862
+ y: pr / 2
1863
+ },
1864
+ {
1865
+ x: pr / 2,
1866
+ y: 0
1867
+ },
1868
+ {
1869
+ x: 0,
1870
+ y: -pr / 2
1871
+ },
1872
+ {
1873
+ x: -pr / 2,
1874
+ y: 0
1875
+ }
1876
+ ], hr = at.svg(dr), gr = userNodeOverrides(lr, {});
1877
+ lr.look !== "handDrawn" && (gr.roughness = 0, gr.fillStyle = "solid");
1878
+ let _r = createPathFromPoints(mr), vr = hr.path(_r, gr), yr = dr.insert(() => vr, ":first-child");
1879
+ return fr && lr.look !== "handDrawn" && yr.selectAll("path").attr("style", fr), ur && lr.look !== "handDrawn" && yr.selectAll("path").attr("style", ur), lr.width = 28, lr.height = 28, lr.intersect = function(St) {
1880
+ return intersect_default.polygon(lr, mr, St);
1881
+ }, dr;
1882
+ }
1883
+ __name(choice, "choice");
1884
+ async function circle(St, lr, ur) {
1885
+ let { labelStyles: pr, nodeStyles: mr } = styles2String(lr);
1886
+ lr.labelStyle = pr;
1887
+ let { shapeSvg: hr, bbox: gr, halfPadding: _r } = await labelHelper(St, lr, getNodeClasses(lr)), vr = ur?.padding ?? _r, yr = gr.width / 2 + vr, br, { cssStyles: xr } = lr;
1888
+ if (lr.look === "handDrawn") {
1889
+ let St = at.svg(hr), ur = userNodeOverrides(lr, {}), fr = St.circle(0, 0, yr * 2, ur);
1890
+ br = hr.insert(() => fr, ":first-child"), br.attr("class", "basic label-container").attr("style", handleUndefinedAttr(xr));
1891
+ } else br = hr.insert("circle", ":first-child").attr("class", "basic label-container").attr("style", mr).attr("r", yr).attr("cx", 0).attr("cy", 0);
1892
+ return updateNodeBounds(lr, br), lr.calcIntersect = function(St, lr) {
1893
+ let ur = St.width / 2;
1894
+ return intersect_default.circle(St, ur, lr);
1895
+ }, lr.intersect = function(St) {
1896
+ return log.info("Circle intersect", lr, yr, St), intersect_default.circle(lr, yr, St);
1897
+ }, hr;
1898
+ }
1899
+ __name(circle, "circle");
1900
+ function createLine(St) {
1901
+ let lr = Math.cos(Math.PI / 4), ur = Math.sin(Math.PI / 4), dr = St * 2, fr = {
1902
+ x: dr / 2 * lr,
1903
+ y: dr / 2 * ur
1904
+ }, pr = {
1905
+ x: -(dr / 2) * lr,
1906
+ y: dr / 2 * ur
1907
+ }, mr = {
1908
+ x: -(dr / 2) * lr,
1909
+ y: -(dr / 2) * ur
1910
+ }, hr = {
1911
+ x: dr / 2 * lr,
1912
+ y: -(dr / 2) * ur
1913
+ };
1914
+ return `M ${pr.x},${pr.y} L ${hr.x},${hr.y}
1915
+ M ${fr.x},${fr.y} L ${mr.x},${mr.y}`;
1916
+ }
1917
+ __name(createLine, "createLine");
1918
+ function crossedCircle(St, lr) {
1919
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
1920
+ lr.labelStyle = ur, lr.label = "";
1921
+ let pr = St.insert("g").attr("class", getNodeClasses(lr)).attr("id", lr.domId ?? lr.id), mr = Math.max(30, lr?.width ?? 0), { cssStyles: hr } = lr, gr = at.svg(pr), _r = userNodeOverrides(lr, {});
1922
+ lr.look !== "handDrawn" && (_r.roughness = 0, _r.fillStyle = "solid");
1923
+ let vr = gr.circle(0, 0, mr * 2, _r), yr = createLine(mr), br = gr.path(yr, _r), xr = pr.insert(() => vr, ":first-child");
1924
+ return xr.insert(() => br), hr && lr.look !== "handDrawn" && xr.selectAll("path").attr("style", hr), dr && lr.look !== "handDrawn" && xr.selectAll("path").attr("style", dr), updateNodeBounds(lr, xr), lr.intersect = function(St) {
1925
+ return log.info("crossedCircle intersect", lr, {
1926
+ radius: mr,
1927
+ point: St
1928
+ }), intersect_default.circle(lr, mr, St);
1929
+ }, pr;
1930
+ }
1931
+ __name(crossedCircle, "crossedCircle");
1932
+ function generateCirclePoints2(St, lr, ur, dr = 100, fr = 0, pr = 180) {
1933
+ let mr = [], hr = fr * Math.PI / 180, gr = (pr * Math.PI / 180 - hr) / (dr - 1);
1934
+ for (let fr = 0; fr < dr; fr++) {
1935
+ let dr = hr + fr * gr, pr = St + ur * Math.cos(dr), _r = lr + ur * Math.sin(dr);
1936
+ mr.push({
1937
+ x: -pr,
1938
+ y: -_r
1939
+ });
1940
+ }
1941
+ return mr;
1942
+ }
1943
+ __name(generateCirclePoints2, "generateCirclePoints");
1944
+ async function curlyBraceLeft(St, lr) {
1945
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
1946
+ lr.labelStyle = ur;
1947
+ let { shapeSvg: fr, bbox: pr, label: mr } = await labelHelper(St, lr, getNodeClasses(lr)), hr = pr.width + (lr.padding ?? 0), gr = pr.height + (lr.padding ?? 0), _r = Math.max(5, gr * .1), { cssStyles: vr } = lr, yr = [
1948
+ ...generateCirclePoints2(hr / 2, -gr / 2, _r, 30, -90, 0),
1949
+ {
1950
+ x: -hr / 2 - _r,
1951
+ y: _r
1952
+ },
1953
+ ...generateCirclePoints2(hr / 2 + _r * 2, -_r, _r, 20, -180, -270),
1954
+ ...generateCirclePoints2(hr / 2 + _r * 2, _r, _r, 20, -90, -180),
1955
+ {
1956
+ x: -hr / 2 - _r,
1957
+ y: -gr / 2
1958
+ },
1959
+ ...generateCirclePoints2(hr / 2, gr / 2, _r, 20, 0, 90)
1960
+ ], br = [
1961
+ {
1962
+ x: hr / 2,
1963
+ y: -gr / 2 - _r
1964
+ },
1965
+ {
1966
+ x: -hr / 2,
1967
+ y: -gr / 2 - _r
1968
+ },
1969
+ ...generateCirclePoints2(hr / 2, -gr / 2, _r, 20, -90, 0),
1970
+ {
1971
+ x: -hr / 2 - _r,
1972
+ y: -_r
1973
+ },
1974
+ ...generateCirclePoints2(hr / 2 + hr * .1, -_r, _r, 20, -180, -270),
1975
+ ...generateCirclePoints2(hr / 2 + hr * .1, _r, _r, 20, -90, -180),
1976
+ {
1977
+ x: -hr / 2 - _r,
1978
+ y: gr / 2
1979
+ },
1980
+ ...generateCirclePoints2(hr / 2, gr / 2, _r, 20, 0, 90),
1981
+ {
1982
+ x: -hr / 2,
1983
+ y: gr / 2 + _r
1984
+ },
1985
+ {
1986
+ x: hr / 2,
1987
+ y: gr / 2 + _r
1988
+ }
1989
+ ], xr = at.svg(fr), Sr = userNodeOverrides(lr, { fill: "none" });
1990
+ lr.look !== "handDrawn" && (Sr.roughness = 0, Sr.fillStyle = "solid");
1991
+ let Cr = createPathFromPoints(yr).replace("Z", ""), wr = xr.path(Cr, Sr), Tr = createPathFromPoints(br), Er = xr.path(Tr, { ...Sr }), Dr = fr.insert("g", ":first-child");
1992
+ return Dr.insert(() => Er, ":first-child").attr("stroke-opacity", 0), Dr.insert(() => wr, ":first-child"), Dr.attr("class", "text"), vr && lr.look !== "handDrawn" && Dr.selectAll("path").attr("style", vr), dr && lr.look !== "handDrawn" && Dr.selectAll("path").attr("style", dr), Dr.attr("transform", `translate(${_r}, 0)`), mr.attr("transform", `translate(${-hr / 2 + _r - (pr.x - (pr.left ?? 0))},${-gr / 2 + (lr.padding ?? 0) / 2 - (pr.y - (pr.top ?? 0))})`), updateNodeBounds(lr, Dr), lr.intersect = function(St) {
1993
+ return intersect_default.polygon(lr, br, St);
1994
+ }, fr;
1995
+ }
1996
+ __name(curlyBraceLeft, "curlyBraceLeft");
1997
+ function generateCirclePoints3(St, lr, ur, dr = 100, fr = 0, pr = 180) {
1998
+ let mr = [], hr = fr * Math.PI / 180, gr = (pr * Math.PI / 180 - hr) / (dr - 1);
1999
+ for (let fr = 0; fr < dr; fr++) {
2000
+ let dr = hr + fr * gr, pr = St + ur * Math.cos(dr), _r = lr + ur * Math.sin(dr);
2001
+ mr.push({
2002
+ x: pr,
2003
+ y: _r
2004
+ });
2005
+ }
2006
+ return mr;
2007
+ }
2008
+ __name(generateCirclePoints3, "generateCirclePoints");
2009
+ async function curlyBraceRight(St, lr) {
2010
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
2011
+ lr.labelStyle = ur;
2012
+ let { shapeSvg: fr, bbox: pr, label: mr } = await labelHelper(St, lr, getNodeClasses(lr)), hr = pr.width + (lr.padding ?? 0), gr = pr.height + (lr.padding ?? 0), _r = Math.max(5, gr * .1), { cssStyles: vr } = lr, yr = [
2013
+ ...generateCirclePoints3(hr / 2, -gr / 2, _r, 20, -90, 0),
2014
+ {
2015
+ x: hr / 2 + _r,
2016
+ y: -_r
2017
+ },
2018
+ ...generateCirclePoints3(hr / 2 + _r * 2, -_r, _r, 20, -180, -270),
2019
+ ...generateCirclePoints3(hr / 2 + _r * 2, _r, _r, 20, -90, -180),
2020
+ {
2021
+ x: hr / 2 + _r,
2022
+ y: gr / 2
2023
+ },
2024
+ ...generateCirclePoints3(hr / 2, gr / 2, _r, 20, 0, 90)
2025
+ ], br = [
2026
+ {
2027
+ x: -hr / 2,
2028
+ y: -gr / 2 - _r
2029
+ },
2030
+ {
2031
+ x: hr / 2,
2032
+ y: -gr / 2 - _r
2033
+ },
2034
+ ...generateCirclePoints3(hr / 2, -gr / 2, _r, 20, -90, 0),
2035
+ {
2036
+ x: hr / 2 + _r,
2037
+ y: -_r
2038
+ },
2039
+ ...generateCirclePoints3(hr / 2 + _r * 2, -_r, _r, 20, -180, -270),
2040
+ ...generateCirclePoints3(hr / 2 + _r * 2, _r, _r, 20, -90, -180),
2041
+ {
2042
+ x: hr / 2 + _r,
2043
+ y: gr / 2
2044
+ },
2045
+ ...generateCirclePoints3(hr / 2, gr / 2, _r, 20, 0, 90),
2046
+ {
2047
+ x: hr / 2,
2048
+ y: gr / 2 + _r
2049
+ },
2050
+ {
2051
+ x: -hr / 2,
2052
+ y: gr / 2 + _r
2053
+ }
2054
+ ], xr = at.svg(fr), Sr = userNodeOverrides(lr, { fill: "none" });
2055
+ lr.look !== "handDrawn" && (Sr.roughness = 0, Sr.fillStyle = "solid");
2056
+ let Cr = createPathFromPoints(yr).replace("Z", ""), wr = xr.path(Cr, Sr), Tr = createPathFromPoints(br), Er = xr.path(Tr, { ...Sr }), Dr = fr.insert("g", ":first-child");
2057
+ return Dr.insert(() => Er, ":first-child").attr("stroke-opacity", 0), Dr.insert(() => wr, ":first-child"), Dr.attr("class", "text"), vr && lr.look !== "handDrawn" && Dr.selectAll("path").attr("style", vr), dr && lr.look !== "handDrawn" && Dr.selectAll("path").attr("style", dr), Dr.attr("transform", `translate(${-_r}, 0)`), mr.attr("transform", `translate(${-hr / 2 + (lr.padding ?? 0) / 2 - (pr.x - (pr.left ?? 0))},${-gr / 2 + (lr.padding ?? 0) / 2 - (pr.y - (pr.top ?? 0))})`), updateNodeBounds(lr, Dr), lr.intersect = function(St) {
2058
+ return intersect_default.polygon(lr, br, St);
2059
+ }, fr;
2060
+ }
2061
+ __name(curlyBraceRight, "curlyBraceRight");
2062
+ function generateCirclePoints4(St, lr, ur, dr = 100, fr = 0, pr = 180) {
2063
+ let mr = [], hr = fr * Math.PI / 180, gr = (pr * Math.PI / 180 - hr) / (dr - 1);
2064
+ for (let fr = 0; fr < dr; fr++) {
2065
+ let dr = hr + fr * gr, pr = St + ur * Math.cos(dr), _r = lr + ur * Math.sin(dr);
2066
+ mr.push({
2067
+ x: -pr,
2068
+ y: -_r
2069
+ });
2070
+ }
2071
+ return mr;
2072
+ }
2073
+ __name(generateCirclePoints4, "generateCirclePoints");
2074
+ async function curlyBraces(St, lr) {
2075
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
2076
+ lr.labelStyle = ur;
2077
+ let { shapeSvg: fr, bbox: pr, label: mr } = await labelHelper(St, lr, getNodeClasses(lr)), hr = pr.width + (lr.padding ?? 0), gr = pr.height + (lr.padding ?? 0), _r = Math.max(5, gr * .1), { cssStyles: vr } = lr, yr = [
2078
+ ...generateCirclePoints4(hr / 2, -gr / 2, _r, 30, -90, 0),
2079
+ {
2080
+ x: -hr / 2 - _r,
2081
+ y: _r
2082
+ },
2083
+ ...generateCirclePoints4(hr / 2 + _r * 2, -_r, _r, 20, -180, -270),
2084
+ ...generateCirclePoints4(hr / 2 + _r * 2, _r, _r, 20, -90, -180),
2085
+ {
2086
+ x: -hr / 2 - _r,
2087
+ y: -gr / 2
2088
+ },
2089
+ ...generateCirclePoints4(hr / 2, gr / 2, _r, 20, 0, 90)
2090
+ ], br = [
2091
+ ...generateCirclePoints4(-hr / 2 + _r + _r / 2, -gr / 2, _r, 20, -90, -180),
2092
+ {
2093
+ x: hr / 2 - _r / 2,
2094
+ y: _r
2095
+ },
2096
+ ...generateCirclePoints4(-hr / 2 - _r / 2, -_r, _r, 20, 0, 90),
2097
+ ...generateCirclePoints4(-hr / 2 - _r / 2, _r, _r, 20, -90, 0),
2098
+ {
2099
+ x: hr / 2 - _r / 2,
2100
+ y: -_r
2101
+ },
2102
+ ...generateCirclePoints4(-hr / 2 + _r + _r / 2, gr / 2, _r, 30, -180, -270)
2103
+ ], xr = [
2104
+ {
2105
+ x: hr / 2,
2106
+ y: -gr / 2 - _r
2107
+ },
2108
+ {
2109
+ x: -hr / 2,
2110
+ y: -gr / 2 - _r
2111
+ },
2112
+ ...generateCirclePoints4(hr / 2, -gr / 2, _r, 20, -90, 0),
2113
+ {
2114
+ x: -hr / 2 - _r,
2115
+ y: -_r
2116
+ },
2117
+ ...generateCirclePoints4(hr / 2 + _r * 2, -_r, _r, 20, -180, -270),
2118
+ ...generateCirclePoints4(hr / 2 + _r * 2, _r, _r, 20, -90, -180),
2119
+ {
2120
+ x: -hr / 2 - _r,
2121
+ y: gr / 2
2122
+ },
2123
+ ...generateCirclePoints4(hr / 2, gr / 2, _r, 20, 0, 90),
2124
+ {
2125
+ x: -hr / 2,
2126
+ y: gr / 2 + _r
2127
+ },
2128
+ {
2129
+ x: hr / 2 - _r - _r / 2,
2130
+ y: gr / 2 + _r
2131
+ },
2132
+ ...generateCirclePoints4(-hr / 2 + _r + _r / 2, -gr / 2, _r, 20, -90, -180),
2133
+ {
2134
+ x: hr / 2 - _r / 2,
2135
+ y: _r
2136
+ },
2137
+ ...generateCirclePoints4(-hr / 2 - _r / 2, -_r, _r, 20, 0, 90),
2138
+ ...generateCirclePoints4(-hr / 2 - _r / 2, _r, _r, 20, -90, 0),
2139
+ {
2140
+ x: hr / 2 - _r / 2,
2141
+ y: -_r
2142
+ },
2143
+ ...generateCirclePoints4(-hr / 2 + _r + _r / 2, gr / 2, _r, 30, -180, -270)
2144
+ ], Sr = at.svg(fr), Cr = userNodeOverrides(lr, { fill: "none" });
2145
+ lr.look !== "handDrawn" && (Cr.roughness = 0, Cr.fillStyle = "solid");
2146
+ let wr = createPathFromPoints(yr).replace("Z", ""), Tr = Sr.path(wr, Cr), Er = createPathFromPoints(br).replace("Z", ""), Dr = Sr.path(Er, Cr), Ar = createPathFromPoints(xr), jr = Sr.path(Ar, { ...Cr }), Mr = fr.insert("g", ":first-child");
2147
+ return Mr.insert(() => jr, ":first-child").attr("stroke-opacity", 0), Mr.insert(() => Tr, ":first-child"), Mr.insert(() => Dr, ":first-child"), Mr.attr("class", "text"), vr && lr.look !== "handDrawn" && Mr.selectAll("path").attr("style", vr), dr && lr.look !== "handDrawn" && Mr.selectAll("path").attr("style", dr), Mr.attr("transform", `translate(${_r - _r / 4}, 0)`), mr.attr("transform", `translate(${-hr / 2 + (lr.padding ?? 0) / 2 - (pr.x - (pr.left ?? 0))},${-gr / 2 + (lr.padding ?? 0) / 2 - (pr.y - (pr.top ?? 0))})`), updateNodeBounds(lr, Mr), lr.intersect = function(St) {
2148
+ return intersect_default.polygon(lr, xr, St);
2149
+ }, fr;
2150
+ }
2151
+ __name(curlyBraces, "curlyBraces");
2152
+ async function curvedTrapezoid(St, lr) {
2153
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
2154
+ lr.labelStyle = ur;
2155
+ let { shapeSvg: fr, bbox: pr } = await labelHelper(St, lr, getNodeClasses(lr)), mr = Math.max(80, (pr.width + (lr.padding ?? 0) * 2) * 1.25, lr?.width ?? 0), hr = Math.max(20, pr.height + (lr.padding ?? 0) * 2, lr?.height ?? 0), gr = hr / 2, { cssStyles: _r } = lr, vr = at.svg(fr), yr = userNodeOverrides(lr, {});
2156
+ lr.look !== "handDrawn" && (yr.roughness = 0, yr.fillStyle = "solid");
2157
+ let br = mr, xr = hr, Sr = br - gr, Cr = xr / 4, wr = [
2158
+ {
2159
+ x: Sr,
2160
+ y: 0
2161
+ },
2162
+ {
2163
+ x: Cr,
2164
+ y: 0
2165
+ },
2166
+ {
2167
+ x: 0,
2168
+ y: xr / 2
2169
+ },
2170
+ {
2171
+ x: Cr,
2172
+ y: xr
2173
+ },
2174
+ {
2175
+ x: Sr,
2176
+ y: xr
2177
+ },
2178
+ ...generateCirclePoints(-Sr, -xr / 2, gr, 50, 270, 90)
2179
+ ], Tr = createPathFromPoints(wr), Er = vr.path(Tr, yr), Dr = fr.insert(() => Er, ":first-child");
2180
+ return Dr.attr("class", "basic label-container"), _r && lr.look !== "handDrawn" && Dr.selectChildren("path").attr("style", _r), dr && lr.look !== "handDrawn" && Dr.selectChildren("path").attr("style", dr), Dr.attr("transform", `translate(${-mr / 2}, ${-hr / 2})`), updateNodeBounds(lr, Dr), lr.intersect = function(St) {
2181
+ return intersect_default.polygon(lr, wr, St);
2182
+ }, fr;
2183
+ }
2184
+ __name(curvedTrapezoid, "curvedTrapezoid");
2185
+ var createCylinderPathD = /* @__PURE__ */ __name((St, lr, ur, dr, fr, pr) => [
2186
+ `M${St},${lr + pr}`,
2187
+ `a${fr},${pr} 0,0,0 ${ur},0`,
2188
+ `a${fr},${pr} 0,0,0 ${-ur},0`,
2189
+ `l0,${dr}`,
2190
+ `a${fr},${pr} 0,0,0 ${ur},0`,
2191
+ `l0,${-dr}`
2192
+ ].join(" "), "createCylinderPathD"), createOuterCylinderPathD = /* @__PURE__ */ __name((St, lr, ur, dr, fr, pr) => [
2193
+ `M${St},${lr + pr}`,
2194
+ `M${St + ur},${lr + pr}`,
2195
+ `a${fr},${pr} 0,0,0 ${-ur},0`,
2196
+ `l0,${dr}`,
2197
+ `a${fr},${pr} 0,0,0 ${ur},0`,
2198
+ `l0,${-dr}`
2199
+ ].join(" "), "createOuterCylinderPathD"), createInnerCylinderPathD = /* @__PURE__ */ __name((St, lr, ur, dr, fr, pr) => [`M${St - ur / 2},${-dr / 2}`, `a${fr},${pr} 0,0,0 ${ur},0`].join(" "), "createInnerCylinderPathD");
2200
+ async function cylinder(St, lr) {
2201
+ let { labelStyles: ur, nodeStyles: fr } = styles2String(lr);
2202
+ lr.labelStyle = ur;
2203
+ let { shapeSvg: pr, bbox: mr, label: hr } = await labelHelper(St, lr, getNodeClasses(lr)), gr = Math.max(mr.width + lr.padding, lr.width ?? 0), _r = gr / 2, vr = _r / (2.5 + gr / 50), yr = Math.max(mr.height + vr + lr.padding, lr.height ?? 0), br, { cssStyles: xr } = lr;
2204
+ if (lr.look === "handDrawn") {
2205
+ let St = at.svg(pr), ur = createOuterCylinderPathD(0, 0, gr, yr, _r, vr), dr = createInnerCylinderPathD(0, vr, gr, yr, _r, vr), fr = St.path(ur, userNodeOverrides(lr, {})), mr = St.path(dr, userNodeOverrides(lr, { fill: "none" }));
2206
+ br = pr.insert(() => mr, ":first-child"), br = pr.insert(() => fr, ":first-child"), br.attr("class", "basic label-container"), xr && br.attr("style", xr);
2207
+ } else {
2208
+ let St = createCylinderPathD(0, 0, gr, yr, _r, vr);
2209
+ br = pr.insert("path", ":first-child").attr("d", St).attr("class", "basic label-container").attr("style", handleUndefinedAttr(xr)).attr("style", fr);
2210
+ }
2211
+ return br.attr("label-offset-y", vr), br.attr("transform", `translate(${-gr / 2}, ${-(yr / 2 + vr)})`), updateNodeBounds(lr, br), hr.attr("transform", `translate(${-(mr.width / 2) - (mr.x - (mr.left ?? 0))}, ${-(mr.height / 2) + (lr.padding ?? 0) / 1.5 - (mr.y - (mr.top ?? 0))})`), lr.intersect = function(St) {
2212
+ let ur = intersect_default.rect(lr, St), dr = ur.x - (lr.x ?? 0);
2213
+ if (_r != 0 && (Math.abs(dr) < (lr.width ?? 0) / 2 || Math.abs(dr) == (lr.width ?? 0) / 2 && Math.abs(ur.y - (lr.y ?? 0)) > (lr.height ?? 0) / 2 - vr)) {
2214
+ let fr = vr * vr * (1 - dr * dr / (_r * _r));
2215
+ fr > 0 && (fr = Math.sqrt(fr)), fr = vr - fr, St.y - (lr.y ?? 0) > 0 && (fr = -fr), ur.y += fr;
2216
+ }
2217
+ return ur;
2218
+ }, pr;
2219
+ }
2220
+ __name(cylinder, "cylinder");
2221
+ async function dividedRectangle(St, lr) {
2222
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
2223
+ lr.labelStyle = ur;
2224
+ let { shapeSvg: fr, bbox: pr, label: mr } = await labelHelper(St, lr, getNodeClasses(lr)), hr = pr.width + lr.padding, gr = pr.height + lr.padding, _r = gr * .2, vr = -hr / 2, yr = -gr / 2 - _r / 2, { cssStyles: br } = lr, xr = at.svg(fr), Sr = userNodeOverrides(lr, {});
2225
+ lr.look !== "handDrawn" && (Sr.roughness = 0, Sr.fillStyle = "solid");
2226
+ let Cr = [
2227
+ {
2228
+ x: vr,
2229
+ y: yr + _r
2230
+ },
2231
+ {
2232
+ x: -vr,
2233
+ y: yr + _r
2234
+ },
2235
+ {
2236
+ x: -vr,
2237
+ y: -yr
2238
+ },
2239
+ {
2240
+ x: vr,
2241
+ y: -yr
2242
+ },
2243
+ {
2244
+ x: vr,
2245
+ y: yr
2246
+ },
2247
+ {
2248
+ x: -vr,
2249
+ y: yr
2250
+ },
2251
+ {
2252
+ x: -vr,
2253
+ y: yr + _r
2254
+ }
2255
+ ], wr = xr.polygon(Cr.map((St) => [St.x, St.y]), Sr), Tr = fr.insert(() => wr, ":first-child");
2256
+ return Tr.attr("class", "basic label-container"), br && lr.look !== "handDrawn" && Tr.selectAll("path").attr("style", br), dr && lr.look !== "handDrawn" && Tr.selectAll("path").attr("style", dr), mr.attr("transform", `translate(${vr + (lr.padding ?? 0) / 2 - (pr.x - (pr.left ?? 0))}, ${yr + _r + (lr.padding ?? 0) / 2 - (pr.y - (pr.top ?? 0))})`), updateNodeBounds(lr, Tr), lr.intersect = function(St) {
2257
+ return intersect_default.rect(lr, St);
2258
+ }, fr;
2259
+ }
2260
+ __name(dividedRectangle, "dividedRectangle");
2261
+ async function doublecircle(St, lr) {
2262
+ let { labelStyles: ur, nodeStyles: pr } = styles2String(lr);
2263
+ lr.labelStyle = ur;
2264
+ let { shapeSvg: mr, bbox: hr, halfPadding: gr } = await labelHelper(St, lr, getNodeClasses(lr)), _r = hr.width / 2 + gr + 5, vr = hr.width / 2 + gr, yr, { cssStyles: br } = lr;
2265
+ if (lr.look === "handDrawn") {
2266
+ let St = at.svg(mr), ur = userNodeOverrides(lr, {
2267
+ roughness: .2,
2268
+ strokeWidth: 2.5
2269
+ }), fr = userNodeOverrides(lr, {
2270
+ roughness: .2,
2271
+ strokeWidth: 1.5
2272
+ }), pr = St.circle(0, 0, _r * 2, ur), hr = St.circle(0, 0, vr * 2, fr);
2273
+ yr = mr.insert("g", ":first-child"), yr.attr("class", handleUndefinedAttr(lr.cssClasses)).attr("style", handleUndefinedAttr(br)), yr.node()?.appendChild(pr), yr.node()?.appendChild(hr);
2274
+ } else {
2275
+ yr = mr.insert("g", ":first-child");
2276
+ let St = yr.insert("circle", ":first-child"), lr = yr.insert("circle");
2277
+ yr.attr("class", "basic label-container").attr("style", pr), St.attr("class", "outer-circle").attr("style", pr).attr("r", _r).attr("cx", 0).attr("cy", 0), lr.attr("class", "inner-circle").attr("style", pr).attr("r", vr).attr("cx", 0).attr("cy", 0);
2278
+ }
2279
+ return updateNodeBounds(lr, yr), lr.intersect = function(St) {
2280
+ return log.info("DoubleCircle intersect", lr, _r, St), intersect_default.circle(lr, _r, St);
2281
+ }, mr;
2282
+ }
2283
+ __name(doublecircle, "doublecircle");
2284
+ function filledCircle(St, lr, { config: { themeVariables: ur } }) {
2285
+ let { labelStyles: dr, nodeStyles: pr } = styles2String(lr);
2286
+ lr.label = "", lr.labelStyle = dr;
2287
+ let mr = St.insert("g").attr("class", getNodeClasses(lr)).attr("id", lr.domId ?? lr.id), { cssStyles: hr } = lr, gr = at.svg(mr), { nodeBorder: _r } = ur, vr = userNodeOverrides(lr, { fillStyle: "solid" });
2288
+ lr.look !== "handDrawn" && (vr.roughness = 0);
2289
+ let yr = gr.circle(0, 0, 14, vr), br = mr.insert(() => yr, ":first-child");
2290
+ return br.selectAll("path").attr("style", `fill: ${_r} !important;`), hr && hr.length > 0 && lr.look !== "handDrawn" && br.selectAll("path").attr("style", hr), pr && lr.look !== "handDrawn" && br.selectAll("path").attr("style", pr), updateNodeBounds(lr, br), lr.intersect = function(St) {
2291
+ return log.info("filledCircle intersect", lr, {
2292
+ radius: 7,
2293
+ point: St
2294
+ }), intersect_default.circle(lr, 7, St);
2295
+ }, mr;
2296
+ }
2297
+ __name(filledCircle, "filledCircle");
2298
+ async function flippedTriangle(St, lr) {
2299
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
2300
+ lr.labelStyle = ur;
2301
+ let { shapeSvg: pr, bbox: mr, label: hr } = await labelHelper(St, lr, getNodeClasses(lr)), gr = mr.width + (lr.padding ?? 0), _r = gr + mr.height, vr = gr + mr.height, yr = [
2302
+ {
2303
+ x: 0,
2304
+ y: -_r
2305
+ },
2306
+ {
2307
+ x: vr,
2308
+ y: -_r
2309
+ },
2310
+ {
2311
+ x: vr / 2,
2312
+ y: 0
2313
+ }
2314
+ ], { cssStyles: br } = lr, xr = at.svg(pr), Sr = userNodeOverrides(lr, {});
2315
+ lr.look !== "handDrawn" && (Sr.roughness = 0, Sr.fillStyle = "solid");
2316
+ let Cr = createPathFromPoints(yr), wr = xr.path(Cr, Sr), Tr = pr.insert(() => wr, ":first-child").attr("transform", `translate(${-_r / 2}, ${_r / 2})`);
2317
+ return br && lr.look !== "handDrawn" && Tr.selectChildren("path").attr("style", br), dr && lr.look !== "handDrawn" && Tr.selectChildren("path").attr("style", dr), lr.width = gr, lr.height = _r, updateNodeBounds(lr, Tr), hr.attr("transform", `translate(${-mr.width / 2 - (mr.x - (mr.left ?? 0))}, ${-_r / 2 + (lr.padding ?? 0) / 2 + (mr.y - (mr.top ?? 0))})`), lr.intersect = function(St) {
2318
+ return log.info("Triangle intersect", lr, yr, St), intersect_default.polygon(lr, yr, St);
2319
+ }, pr;
2320
+ }
2321
+ __name(flippedTriangle, "flippedTriangle");
2322
+ function forkJoin(St, lr, { dir: ur, config: { state: dr, themeVariables: fr } }) {
2323
+ let { nodeStyles: pr } = styles2String(lr);
2324
+ lr.label = "";
2325
+ let mr = St.insert("g").attr("class", getNodeClasses(lr)).attr("id", lr.domId ?? lr.id), { cssStyles: hr } = lr, gr = Math.max(70, lr?.width ?? 0), _r = Math.max(10, lr?.height ?? 0);
2326
+ ur === "LR" && (gr = Math.max(10, lr?.width ?? 0), _r = Math.max(70, lr?.height ?? 0));
2327
+ let vr = -1 * gr / 2, yr = -1 * _r / 2, br = at.svg(mr), xr = userNodeOverrides(lr, {
2328
+ stroke: fr.lineColor,
2329
+ fill: fr.lineColor
2330
+ });
2331
+ lr.look !== "handDrawn" && (xr.roughness = 0, xr.fillStyle = "solid");
2332
+ let Sr = br.rectangle(vr, yr, gr, _r, xr), Cr = mr.insert(() => Sr, ":first-child");
2333
+ hr && lr.look !== "handDrawn" && Cr.selectAll("path").attr("style", hr), pr && lr.look !== "handDrawn" && Cr.selectAll("path").attr("style", pr), updateNodeBounds(lr, Cr);
2334
+ let wr = dr?.padding ?? 0;
2335
+ return lr.width && lr.height && (lr.width += wr / 2 || 0, lr.height += wr / 2 || 0), lr.intersect = function(St) {
2336
+ return intersect_default.rect(lr, St);
2337
+ }, mr;
2338
+ }
2339
+ __name(forkJoin, "forkJoin");
2340
+ async function halfRoundedRectangle(St, lr) {
2341
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
2342
+ lr.labelStyle = ur;
2343
+ let { shapeSvg: pr, bbox: mr } = await labelHelper(St, lr, getNodeClasses(lr)), hr = Math.max(80, mr.width + (lr.padding ?? 0) * 2, lr?.width ?? 0), gr = Math.max(50, mr.height + (lr.padding ?? 0) * 2, lr?.height ?? 0), _r = gr / 2, { cssStyles: vr } = lr, yr = at.svg(pr), br = userNodeOverrides(lr, {});
2344
+ lr.look !== "handDrawn" && (br.roughness = 0, br.fillStyle = "solid");
2345
+ let xr = [
2346
+ {
2347
+ x: -hr / 2,
2348
+ y: -gr / 2
2349
+ },
2350
+ {
2351
+ x: hr / 2 - _r,
2352
+ y: -gr / 2
2353
+ },
2354
+ ...generateCirclePoints(-hr / 2 + _r, 0, _r, 50, 90, 270),
2355
+ {
2356
+ x: hr / 2 - _r,
2357
+ y: gr / 2
2358
+ },
2359
+ {
2360
+ x: -hr / 2,
2361
+ y: gr / 2
2362
+ }
2363
+ ], Sr = createPathFromPoints(xr), Cr = yr.path(Sr, br), wr = pr.insert(() => Cr, ":first-child");
2364
+ return wr.attr("class", "basic label-container"), vr && lr.look !== "handDrawn" && wr.selectChildren("path").attr("style", vr), dr && lr.look !== "handDrawn" && wr.selectChildren("path").attr("style", dr), updateNodeBounds(lr, wr), lr.intersect = function(St) {
2365
+ return log.info("Pill intersect", lr, {
2366
+ radius: _r,
2367
+ point: St
2368
+ }), intersect_default.polygon(lr, xr, St);
2369
+ }, pr;
2370
+ }
2371
+ __name(halfRoundedRectangle, "halfRoundedRectangle");
2372
+ async function hexagon(St, lr) {
2373
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
2374
+ lr.labelStyle = ur;
2375
+ let { shapeSvg: fr, bbox: pr } = await labelHelper(St, lr, getNodeClasses(lr)), mr = pr.height + (lr.padding ?? 0), hr = pr.width + (lr.padding ?? 0) * 2.5, { cssStyles: gr } = lr, _r = at.svg(fr), vr = userNodeOverrides(lr, {});
2376
+ lr.look !== "handDrawn" && (vr.roughness = 0, vr.fillStyle = "solid");
2377
+ let yr = hr / 2, br = yr / 6;
2378
+ yr += br;
2379
+ let xr = mr / 2, Sr = xr / 2, Cr = yr - Sr, wr = [
2380
+ {
2381
+ x: -Cr,
2382
+ y: -xr
2383
+ },
2384
+ {
2385
+ x: 0,
2386
+ y: -xr
2387
+ },
2388
+ {
2389
+ x: Cr,
2390
+ y: -xr
2391
+ },
2392
+ {
2393
+ x: yr,
2394
+ y: 0
2395
+ },
2396
+ {
2397
+ x: Cr,
2398
+ y: xr
2399
+ },
2400
+ {
2401
+ x: 0,
2402
+ y: xr
2403
+ },
2404
+ {
2405
+ x: -Cr,
2406
+ y: xr
2407
+ },
2408
+ {
2409
+ x: -yr,
2410
+ y: 0
2411
+ }
2412
+ ], Tr = createPathFromPoints(wr), Er = _r.path(Tr, vr), Dr = fr.insert(() => Er, ":first-child");
2413
+ return Dr.attr("class", "basic label-container"), gr && lr.look !== "handDrawn" && Dr.selectChildren("path").attr("style", gr), dr && lr.look !== "handDrawn" && Dr.selectChildren("path").attr("style", dr), lr.width = hr, lr.height = mr, updateNodeBounds(lr, Dr), lr.intersect = function(St) {
2414
+ return intersect_default.polygon(lr, wr, St);
2415
+ }, fr;
2416
+ }
2417
+ __name(hexagon, "hexagon");
2418
+ async function hourglass(St, lr) {
2419
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
2420
+ lr.label = "", lr.labelStyle = ur;
2421
+ let { shapeSvg: pr } = await labelHelper(St, lr, getNodeClasses(lr)), mr = Math.max(30, lr?.width ?? 0), hr = Math.max(30, lr?.height ?? 0), { cssStyles: gr } = lr, _r = at.svg(pr), vr = userNodeOverrides(lr, {});
2422
+ lr.look !== "handDrawn" && (vr.roughness = 0, vr.fillStyle = "solid");
2423
+ let yr = [
2424
+ {
2425
+ x: 0,
2426
+ y: 0
2427
+ },
2428
+ {
2429
+ x: mr,
2430
+ y: 0
2431
+ },
2432
+ {
2433
+ x: 0,
2434
+ y: hr
2435
+ },
2436
+ {
2437
+ x: mr,
2438
+ y: hr
2439
+ }
2440
+ ], br = createPathFromPoints(yr), xr = _r.path(br, vr), Sr = pr.insert(() => xr, ":first-child");
2441
+ return Sr.attr("class", "basic label-container"), gr && lr.look !== "handDrawn" && Sr.selectChildren("path").attr("style", gr), dr && lr.look !== "handDrawn" && Sr.selectChildren("path").attr("style", dr), Sr.attr("transform", `translate(${-mr / 2}, ${-hr / 2})`), updateNodeBounds(lr, Sr), lr.intersect = function(St) {
2442
+ return log.info("Pill intersect", lr, { points: yr }), intersect_default.polygon(lr, yr, St);
2443
+ }, pr;
2444
+ }
2445
+ __name(hourglass, "hourglass");
2446
+ async function icon(St, lr, { config: { themeVariables: ur, flowchart: dr } }) {
2447
+ let { labelStyles: pr } = styles2String(lr);
2448
+ lr.labelStyle = pr;
2449
+ let mr = lr.assetHeight ?? 48, hr = lr.assetWidth ?? 48, gr = Math.max(mr, hr), _r = dr?.wrappingWidth;
2450
+ lr.width = Math.max(gr, _r ?? 0);
2451
+ let { shapeSvg: vr, bbox: yr, label: br } = await labelHelper(St, lr, "icon-shape default"), xr = lr.pos === "t", Sr = gr, Cr = gr, { nodeBorder: wr } = ur, { stylesMap: Tr } = compileStyles(lr), Dr = -Cr / 2, Ar = -Sr / 2, Mr = lr.label ? 8 : 0, Nr = at.svg(vr), Pr = userNodeOverrides(lr, {
2452
+ stroke: "none",
2453
+ fill: "none"
2454
+ });
2455
+ lr.look !== "handDrawn" && (Pr.roughness = 0, Pr.fillStyle = "solid");
2456
+ let Fr = Nr.rectangle(Dr, Ar, Cr, Sr, Pr), Ir = Math.max(Cr, yr.width), Lr = Sr + yr.height + Mr, Rr = Nr.rectangle(-Ir / 2, -Lr / 2, Ir, Lr, {
2457
+ ...Pr,
2458
+ fill: "transparent",
2459
+ stroke: "none"
2460
+ }), zr = vr.insert(() => Fr, ":first-child"), Br = vr.insert(() => Rr);
2461
+ if (lr.icon) {
2462
+ let St = vr.append("g");
2463
+ St.html(`<g>${await getIconSVG(lr.icon, {
2464
+ height: gr,
2465
+ width: gr,
2466
+ fallbackPrefix: ""
2467
+ })}</g>`);
2468
+ let ur = St.node().getBBox(), dr = ur.width, fr = ur.height, pr = ur.x, mr = ur.y;
2469
+ St.attr("transform", `translate(${-dr / 2 - pr},${xr ? yr.height / 2 + Mr / 2 - fr / 2 - mr : -yr.height / 2 - Mr / 2 - fr / 2 - mr})`), St.attr("style", `color: ${Tr.get("stroke") ?? wr};`);
2470
+ }
2471
+ return br.attr("transform", `translate(${-yr.width / 2 - (yr.x - (yr.left ?? 0))},${xr ? -Lr / 2 : Lr / 2 - yr.height})`), zr.attr("transform", `translate(0,${xr ? yr.height / 2 + Mr / 2 : -yr.height / 2 - Mr / 2})`), updateNodeBounds(lr, Br), lr.intersect = function(St) {
2472
+ if (log.info("iconSquare intersect", lr, St), !lr.label) return intersect_default.rect(lr, St);
2473
+ let ur = lr.x ?? 0, dr = lr.y ?? 0, pr = lr.height ?? 0, mr = [];
2474
+ return mr = xr ? [
2475
+ {
2476
+ x: ur - yr.width / 2,
2477
+ y: dr - pr / 2
2478
+ },
2479
+ {
2480
+ x: ur + yr.width / 2,
2481
+ y: dr - pr / 2
2482
+ },
2483
+ {
2484
+ x: ur + yr.width / 2,
2485
+ y: dr - pr / 2 + yr.height + Mr
2486
+ },
2487
+ {
2488
+ x: ur + Cr / 2,
2489
+ y: dr - pr / 2 + yr.height + Mr
2490
+ },
2491
+ {
2492
+ x: ur + Cr / 2,
2493
+ y: dr + pr / 2
2494
+ },
2495
+ {
2496
+ x: ur - Cr / 2,
2497
+ y: dr + pr / 2
2498
+ },
2499
+ {
2500
+ x: ur - Cr / 2,
2501
+ y: dr - pr / 2 + yr.height + Mr
2502
+ },
2503
+ {
2504
+ x: ur - yr.width / 2,
2505
+ y: dr - pr / 2 + yr.height + Mr
2506
+ }
2507
+ ] : [
2508
+ {
2509
+ x: ur - Cr / 2,
2510
+ y: dr - pr / 2
2511
+ },
2512
+ {
2513
+ x: ur + Cr / 2,
2514
+ y: dr - pr / 2
2515
+ },
2516
+ {
2517
+ x: ur + Cr / 2,
2518
+ y: dr - pr / 2 + Sr
2519
+ },
2520
+ {
2521
+ x: ur + yr.width / 2,
2522
+ y: dr - pr / 2 + Sr
2523
+ },
2524
+ {
2525
+ x: ur + yr.width / 2 / 2,
2526
+ y: dr + pr / 2
2527
+ },
2528
+ {
2529
+ x: ur - yr.width / 2,
2530
+ y: dr + pr / 2
2531
+ },
2532
+ {
2533
+ x: ur - yr.width / 2,
2534
+ y: dr - pr / 2 + Sr
2535
+ },
2536
+ {
2537
+ x: ur - Cr / 2,
2538
+ y: dr - pr / 2 + Sr
2539
+ }
2540
+ ], intersect_default.polygon(lr, mr, St);
2541
+ }, vr;
2542
+ }
2543
+ __name(icon, "icon");
2544
+ async function iconCircle(St, lr, { config: { themeVariables: ur, flowchart: dr } }) {
2545
+ let { labelStyles: pr } = styles2String(lr);
2546
+ lr.labelStyle = pr;
2547
+ let mr = lr.assetHeight ?? 48, hr = lr.assetWidth ?? 48, gr = Math.max(mr, hr), _r = dr?.wrappingWidth;
2548
+ lr.width = Math.max(gr, _r ?? 0);
2549
+ let { shapeSvg: vr, bbox: yr, label: br } = await labelHelper(St, lr, "icon-shape default"), xr = lr.label ? 8 : 0, Sr = lr.pos === "t", { nodeBorder: Cr, mainBkg: wr } = ur, { stylesMap: Tr } = compileStyles(lr), Dr = at.svg(vr), Ar = userNodeOverrides(lr, {});
2550
+ lr.look !== "handDrawn" && (Ar.roughness = 0, Ar.fillStyle = "solid"), Ar.stroke = Tr.get("fill") ?? wr;
2551
+ let Mr = vr.append("g");
2552
+ lr.icon && Mr.html(`<g>${await getIconSVG(lr.icon, {
2553
+ height: gr,
2554
+ width: gr,
2555
+ fallbackPrefix: ""
2556
+ })}</g>`);
2557
+ let Nr = Mr.node().getBBox(), Pr = Nr.width, Fr = Nr.height, Ir = Nr.x, Lr = Nr.y, Rr = Math.max(Pr, Fr) * Math.SQRT2 + 40, zr = Dr.circle(0, 0, Rr, Ar), Br = Math.max(Rr, yr.width), Vr = Rr + yr.height + xr, Hr = Dr.rectangle(-Br / 2, -Vr / 2, Br, Vr, {
2558
+ ...Ar,
2559
+ fill: "transparent",
2560
+ stroke: "none"
2561
+ }), Ur = vr.insert(() => zr, ":first-child"), Wr = vr.insert(() => Hr);
2562
+ return Mr.attr("transform", `translate(${-Pr / 2 - Ir},${Sr ? yr.height / 2 + xr / 2 - Fr / 2 - Lr : -yr.height / 2 - xr / 2 - Fr / 2 - Lr})`), Mr.attr("style", `color: ${Tr.get("stroke") ?? Cr};`), br.attr("transform", `translate(${-yr.width / 2 - (yr.x - (yr.left ?? 0))},${Sr ? -Vr / 2 : Vr / 2 - yr.height})`), Ur.attr("transform", `translate(0,${Sr ? yr.height / 2 + xr / 2 : -yr.height / 2 - xr / 2})`), updateNodeBounds(lr, Wr), lr.intersect = function(St) {
2563
+ return log.info("iconSquare intersect", lr, St), intersect_default.rect(lr, St);
2564
+ }, vr;
2565
+ }
2566
+ __name(iconCircle, "iconCircle");
2567
+ async function iconRounded(St, lr, { config: { themeVariables: ur, flowchart: dr } }) {
2568
+ let { labelStyles: pr } = styles2String(lr);
2569
+ lr.labelStyle = pr;
2570
+ let mr = lr.assetHeight ?? 48, hr = lr.assetWidth ?? 48, gr = Math.max(mr, hr), _r = dr?.wrappingWidth;
2571
+ lr.width = Math.max(gr, _r ?? 0);
2572
+ let { shapeSvg: vr, bbox: yr, halfPadding: br, label: xr } = await labelHelper(St, lr, "icon-shape default"), Sr = lr.pos === "t", Cr = gr + br * 2, wr = gr + br * 2, { nodeBorder: Tr, mainBkg: Dr } = ur, { stylesMap: Ar } = compileStyles(lr), Mr = -wr / 2, Nr = -Cr / 2, Pr = lr.label ? 8 : 0, Fr = at.svg(vr), Ir = userNodeOverrides(lr, {});
2573
+ lr.look !== "handDrawn" && (Ir.roughness = 0, Ir.fillStyle = "solid"), Ir.stroke = Ar.get("fill") ?? Dr;
2574
+ let Lr = Fr.path(createRoundedRectPathD(Mr, Nr, wr, Cr, 5), Ir), Rr = Math.max(wr, yr.width), zr = Cr + yr.height + Pr, Br = Fr.rectangle(-Rr / 2, -zr / 2, Rr, zr, {
2575
+ ...Ir,
2576
+ fill: "transparent",
2577
+ stroke: "none"
2578
+ }), Vr = vr.insert(() => Lr, ":first-child").attr("class", "icon-shape2"), Hr = vr.insert(() => Br);
2579
+ if (lr.icon) {
2580
+ let St = vr.append("g");
2581
+ St.html(`<g>${await getIconSVG(lr.icon, {
2582
+ height: gr,
2583
+ width: gr,
2584
+ fallbackPrefix: ""
2585
+ })}</g>`);
2586
+ let ur = St.node().getBBox(), dr = ur.width, fr = ur.height, pr = ur.x, mr = ur.y;
2587
+ St.attr("transform", `translate(${-dr / 2 - pr},${Sr ? yr.height / 2 + Pr / 2 - fr / 2 - mr : -yr.height / 2 - Pr / 2 - fr / 2 - mr})`), St.attr("style", `color: ${Ar.get("stroke") ?? Tr};`);
2588
+ }
2589
+ return xr.attr("transform", `translate(${-yr.width / 2 - (yr.x - (yr.left ?? 0))},${Sr ? -zr / 2 : zr / 2 - yr.height})`), Vr.attr("transform", `translate(0,${Sr ? yr.height / 2 + Pr / 2 : -yr.height / 2 - Pr / 2})`), updateNodeBounds(lr, Hr), lr.intersect = function(St) {
2590
+ if (log.info("iconSquare intersect", lr, St), !lr.label) return intersect_default.rect(lr, St);
2591
+ let ur = lr.x ?? 0, dr = lr.y ?? 0, pr = lr.height ?? 0, mr = [];
2592
+ return mr = Sr ? [
2593
+ {
2594
+ x: ur - yr.width / 2,
2595
+ y: dr - pr / 2
2596
+ },
2597
+ {
2598
+ x: ur + yr.width / 2,
2599
+ y: dr - pr / 2
2600
+ },
2601
+ {
2602
+ x: ur + yr.width / 2,
2603
+ y: dr - pr / 2 + yr.height + Pr
2604
+ },
2605
+ {
2606
+ x: ur + wr / 2,
2607
+ y: dr - pr / 2 + yr.height + Pr
2608
+ },
2609
+ {
2610
+ x: ur + wr / 2,
2611
+ y: dr + pr / 2
2612
+ },
2613
+ {
2614
+ x: ur - wr / 2,
2615
+ y: dr + pr / 2
2616
+ },
2617
+ {
2618
+ x: ur - wr / 2,
2619
+ y: dr - pr / 2 + yr.height + Pr
2620
+ },
2621
+ {
2622
+ x: ur - yr.width / 2,
2623
+ y: dr - pr / 2 + yr.height + Pr
2624
+ }
2625
+ ] : [
2626
+ {
2627
+ x: ur - wr / 2,
2628
+ y: dr - pr / 2
2629
+ },
2630
+ {
2631
+ x: ur + wr / 2,
2632
+ y: dr - pr / 2
2633
+ },
2634
+ {
2635
+ x: ur + wr / 2,
2636
+ y: dr - pr / 2 + Cr
2637
+ },
2638
+ {
2639
+ x: ur + yr.width / 2,
2640
+ y: dr - pr / 2 + Cr
2641
+ },
2642
+ {
2643
+ x: ur + yr.width / 2 / 2,
2644
+ y: dr + pr / 2
2645
+ },
2646
+ {
2647
+ x: ur - yr.width / 2,
2648
+ y: dr + pr / 2
2649
+ },
2650
+ {
2651
+ x: ur - yr.width / 2,
2652
+ y: dr - pr / 2 + Cr
2653
+ },
2654
+ {
2655
+ x: ur - wr / 2,
2656
+ y: dr - pr / 2 + Cr
2657
+ }
2658
+ ], intersect_default.polygon(lr, mr, St);
2659
+ }, vr;
2660
+ }
2661
+ __name(iconRounded, "iconRounded");
2662
+ async function iconSquare(St, lr, { config: { themeVariables: ur, flowchart: dr } }) {
2663
+ let { labelStyles: pr } = styles2String(lr);
2664
+ lr.labelStyle = pr;
2665
+ let mr = lr.assetHeight ?? 48, hr = lr.assetWidth ?? 48, gr = Math.max(mr, hr), _r = dr?.wrappingWidth;
2666
+ lr.width = Math.max(gr, _r ?? 0);
2667
+ let { shapeSvg: vr, bbox: yr, halfPadding: br, label: xr } = await labelHelper(St, lr, "icon-shape default"), Sr = lr.pos === "t", Cr = gr + br * 2, wr = gr + br * 2, { nodeBorder: Tr, mainBkg: Dr } = ur, { stylesMap: Ar } = compileStyles(lr), Mr = -wr / 2, Nr = -Cr / 2, Pr = lr.label ? 8 : 0, Fr = at.svg(vr), Ir = userNodeOverrides(lr, {});
2668
+ lr.look !== "handDrawn" && (Ir.roughness = 0, Ir.fillStyle = "solid"), Ir.stroke = Ar.get("fill") ?? Dr;
2669
+ let Lr = Fr.path(createRoundedRectPathD(Mr, Nr, wr, Cr, .1), Ir), Rr = Math.max(wr, yr.width), zr = Cr + yr.height + Pr, Br = Fr.rectangle(-Rr / 2, -zr / 2, Rr, zr, {
2670
+ ...Ir,
2671
+ fill: "transparent",
2672
+ stroke: "none"
2673
+ }), Vr = vr.insert(() => Lr, ":first-child"), Hr = vr.insert(() => Br);
2674
+ if (lr.icon) {
2675
+ let St = vr.append("g");
2676
+ St.html(`<g>${await getIconSVG(lr.icon, {
2677
+ height: gr,
2678
+ width: gr,
2679
+ fallbackPrefix: ""
2680
+ })}</g>`);
2681
+ let ur = St.node().getBBox(), dr = ur.width, fr = ur.height, pr = ur.x, mr = ur.y;
2682
+ St.attr("transform", `translate(${-dr / 2 - pr},${Sr ? yr.height / 2 + Pr / 2 - fr / 2 - mr : -yr.height / 2 - Pr / 2 - fr / 2 - mr})`), St.attr("style", `color: ${Ar.get("stroke") ?? Tr};`);
2683
+ }
2684
+ return xr.attr("transform", `translate(${-yr.width / 2 - (yr.x - (yr.left ?? 0))},${Sr ? -zr / 2 : zr / 2 - yr.height})`), Vr.attr("transform", `translate(0,${Sr ? yr.height / 2 + Pr / 2 : -yr.height / 2 - Pr / 2})`), updateNodeBounds(lr, Hr), lr.intersect = function(St) {
2685
+ if (log.info("iconSquare intersect", lr, St), !lr.label) return intersect_default.rect(lr, St);
2686
+ let ur = lr.x ?? 0, dr = lr.y ?? 0, pr = lr.height ?? 0, mr = [];
2687
+ return mr = Sr ? [
2688
+ {
2689
+ x: ur - yr.width / 2,
2690
+ y: dr - pr / 2
2691
+ },
2692
+ {
2693
+ x: ur + yr.width / 2,
2694
+ y: dr - pr / 2
2695
+ },
2696
+ {
2697
+ x: ur + yr.width / 2,
2698
+ y: dr - pr / 2 + yr.height + Pr
2699
+ },
2700
+ {
2701
+ x: ur + wr / 2,
2702
+ y: dr - pr / 2 + yr.height + Pr
2703
+ },
2704
+ {
2705
+ x: ur + wr / 2,
2706
+ y: dr + pr / 2
2707
+ },
2708
+ {
2709
+ x: ur - wr / 2,
2710
+ y: dr + pr / 2
2711
+ },
2712
+ {
2713
+ x: ur - wr / 2,
2714
+ y: dr - pr / 2 + yr.height + Pr
2715
+ },
2716
+ {
2717
+ x: ur - yr.width / 2,
2718
+ y: dr - pr / 2 + yr.height + Pr
2719
+ }
2720
+ ] : [
2721
+ {
2722
+ x: ur - wr / 2,
2723
+ y: dr - pr / 2
2724
+ },
2725
+ {
2726
+ x: ur + wr / 2,
2727
+ y: dr - pr / 2
2728
+ },
2729
+ {
2730
+ x: ur + wr / 2,
2731
+ y: dr - pr / 2 + Cr
2732
+ },
2733
+ {
2734
+ x: ur + yr.width / 2,
2735
+ y: dr - pr / 2 + Cr
2736
+ },
2737
+ {
2738
+ x: ur + yr.width / 2 / 2,
2739
+ y: dr + pr / 2
2740
+ },
2741
+ {
2742
+ x: ur - yr.width / 2,
2743
+ y: dr + pr / 2
2744
+ },
2745
+ {
2746
+ x: ur - yr.width / 2,
2747
+ y: dr - pr / 2 + Cr
2748
+ },
2749
+ {
2750
+ x: ur - wr / 2,
2751
+ y: dr - pr / 2 + Cr
2752
+ }
2753
+ ], intersect_default.polygon(lr, mr, St);
2754
+ }, vr;
2755
+ }
2756
+ __name(iconSquare, "iconSquare");
2757
+ async function imageSquare(St, lr, { config: { flowchart: ur } }) {
2758
+ let dr = new Image();
2759
+ dr.src = lr?.img ?? "", await dr.decode();
2760
+ let pr = Number(dr.naturalWidth.toString().replace("px", "")), mr = Number(dr.naturalHeight.toString().replace("px", ""));
2761
+ lr.imageAspectRatio = pr / mr;
2762
+ let { labelStyles: hr } = styles2String(lr);
2763
+ lr.labelStyle = hr;
2764
+ let gr = ur?.wrappingWidth;
2765
+ lr.defaultWidth = ur?.wrappingWidth;
2766
+ let _r = Math.max(lr.label ? gr ?? 0 : 0, lr?.assetWidth ?? pr), vr = lr.constraint === "on" && lr?.assetHeight ? lr.assetHeight * lr.imageAspectRatio : _r, yr = lr.constraint === "on" ? vr / lr.imageAspectRatio : lr?.assetHeight ?? mr;
2767
+ lr.width = Math.max(vr, gr ?? 0);
2768
+ let { shapeSvg: br, bbox: xr, label: Sr } = await labelHelper(St, lr, "image-shape default"), Cr = lr.pos === "t", wr = -vr / 2, Tr = -yr / 2, Er = lr.label ? 8 : 0, Dr = at.svg(br), Ar = userNodeOverrides(lr, {});
2769
+ lr.look !== "handDrawn" && (Ar.roughness = 0, Ar.fillStyle = "solid");
2770
+ let jr = Dr.rectangle(wr, Tr, vr, yr, Ar), Mr = Math.max(vr, xr.width), Nr = yr + xr.height + Er, Pr = Dr.rectangle(-Mr / 2, -Nr / 2, Mr, Nr, {
2771
+ ...Ar,
2772
+ fill: "none",
2773
+ stroke: "none"
2774
+ }), Fr = br.insert(() => jr, ":first-child"), Ir = br.insert(() => Pr);
2775
+ if (lr.img) {
2776
+ let St = br.append("image");
2777
+ St.attr("href", lr.img), St.attr("width", vr), St.attr("height", yr), St.attr("preserveAspectRatio", "none"), St.attr("transform", `translate(${-vr / 2},${Cr ? Nr / 2 - yr : -Nr / 2})`);
2778
+ }
2779
+ return Sr.attr("transform", `translate(${-xr.width / 2 - (xr.x - (xr.left ?? 0))},${Cr ? -yr / 2 - xr.height / 2 - Er / 2 : yr / 2 - xr.height / 2 + Er / 2})`), Fr.attr("transform", `translate(0,${Cr ? xr.height / 2 + Er / 2 : -xr.height / 2 - Er / 2})`), updateNodeBounds(lr, Ir), lr.intersect = function(St) {
2780
+ if (log.info("iconSquare intersect", lr, St), !lr.label) return intersect_default.rect(lr, St);
2781
+ let ur = lr.x ?? 0, dr = lr.y ?? 0, pr = lr.height ?? 0, mr = [];
2782
+ return mr = Cr ? [
2783
+ {
2784
+ x: ur - xr.width / 2,
2785
+ y: dr - pr / 2
2786
+ },
2787
+ {
2788
+ x: ur + xr.width / 2,
2789
+ y: dr - pr / 2
2790
+ },
2791
+ {
2792
+ x: ur + xr.width / 2,
2793
+ y: dr - pr / 2 + xr.height + Er
2794
+ },
2795
+ {
2796
+ x: ur + vr / 2,
2797
+ y: dr - pr / 2 + xr.height + Er
2798
+ },
2799
+ {
2800
+ x: ur + vr / 2,
2801
+ y: dr + pr / 2
2802
+ },
2803
+ {
2804
+ x: ur - vr / 2,
2805
+ y: dr + pr / 2
2806
+ },
2807
+ {
2808
+ x: ur - vr / 2,
2809
+ y: dr - pr / 2 + xr.height + Er
2810
+ },
2811
+ {
2812
+ x: ur - xr.width / 2,
2813
+ y: dr - pr / 2 + xr.height + Er
2814
+ }
2815
+ ] : [
2816
+ {
2817
+ x: ur - vr / 2,
2818
+ y: dr - pr / 2
2819
+ },
2820
+ {
2821
+ x: ur + vr / 2,
2822
+ y: dr - pr / 2
2823
+ },
2824
+ {
2825
+ x: ur + vr / 2,
2826
+ y: dr - pr / 2 + yr
2827
+ },
2828
+ {
2829
+ x: ur + xr.width / 2,
2830
+ y: dr - pr / 2 + yr
2831
+ },
2832
+ {
2833
+ x: ur + xr.width / 2 / 2,
2834
+ y: dr + pr / 2
2835
+ },
2836
+ {
2837
+ x: ur - xr.width / 2,
2838
+ y: dr + pr / 2
2839
+ },
2840
+ {
2841
+ x: ur - xr.width / 2,
2842
+ y: dr - pr / 2 + yr
2843
+ },
2844
+ {
2845
+ x: ur - vr / 2,
2846
+ y: dr - pr / 2 + yr
2847
+ }
2848
+ ], intersect_default.polygon(lr, mr, St);
2849
+ }, br;
2850
+ }
2851
+ __name(imageSquare, "imageSquare");
2852
+ async function inv_trapezoid(St, lr) {
2853
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
2854
+ lr.labelStyle = ur;
2855
+ let { shapeSvg: fr, bbox: pr } = await labelHelper(St, lr, getNodeClasses(lr)), mr = Math.max(pr.width + (lr.padding ?? 0) * 2, lr?.width ?? 0), hr = Math.max(pr.height + (lr.padding ?? 0) * 2, lr?.height ?? 0), gr = [
2856
+ {
2857
+ x: 0,
2858
+ y: 0
2859
+ },
2860
+ {
2861
+ x: mr,
2862
+ y: 0
2863
+ },
2864
+ {
2865
+ x: mr + 3 * hr / 6,
2866
+ y: -hr
2867
+ },
2868
+ {
2869
+ x: -3 * hr / 6,
2870
+ y: -hr
2871
+ }
2872
+ ], _r, { cssStyles: vr } = lr;
2873
+ if (lr.look === "handDrawn") {
2874
+ let St = at.svg(fr), ur = userNodeOverrides(lr, {}), dr = createPathFromPoints(gr), pr = St.path(dr, ur);
2875
+ _r = fr.insert(() => pr, ":first-child").attr("transform", `translate(${-mr / 2}, ${hr / 2})`), vr && _r.attr("style", vr);
2876
+ } else _r = insertPolygonShape(fr, mr, hr, gr);
2877
+ return dr && _r.attr("style", dr), lr.width = mr, lr.height = hr, updateNodeBounds(lr, _r), lr.intersect = function(St) {
2878
+ return intersect_default.polygon(lr, gr, St);
2879
+ }, fr;
2880
+ }
2881
+ __name(inv_trapezoid, "inv_trapezoid");
2882
+ async function drawRect(St, lr, ur) {
2883
+ let { labelStyles: fr, nodeStyles: pr } = styles2String(lr);
2884
+ lr.labelStyle = fr;
2885
+ let { shapeSvg: mr, bbox: hr } = await labelHelper(St, lr, getNodeClasses(lr)), gr = Math.max(hr.width + ur.labelPaddingX * 2, lr?.width || 0), _r = Math.max(hr.height + ur.labelPaddingY * 2, lr?.height || 0), vr = -gr / 2, yr = -_r / 2, br, { rx: xr, ry: Sr } = lr, { cssStyles: Cr } = lr;
2886
+ if (ur?.rx && ur.ry && (xr = ur.rx, Sr = ur.ry), lr.look === "handDrawn") {
2887
+ let St = at.svg(mr), ur = userNodeOverrides(lr, {}), fr = xr || Sr ? St.path(createRoundedRectPathD(vr, yr, gr, _r, xr || 0), ur) : St.rectangle(vr, yr, gr, _r, ur);
2888
+ br = mr.insert(() => fr, ":first-child"), br.attr("class", "basic label-container").attr("style", handleUndefinedAttr(Cr));
2889
+ } else br = mr.insert("rect", ":first-child"), br.attr("class", "basic label-container").attr("style", pr).attr("rx", handleUndefinedAttr(xr)).attr("ry", handleUndefinedAttr(Sr)).attr("x", vr).attr("y", yr).attr("width", gr).attr("height", _r);
2890
+ return updateNodeBounds(lr, br), lr.calcIntersect = function(St, lr) {
2891
+ return intersect_default.rect(St, lr);
2892
+ }, lr.intersect = function(St) {
2893
+ return intersect_default.rect(lr, St);
2894
+ }, mr;
2895
+ }
2896
+ __name(drawRect, "drawRect");
2897
+ async function labelRect(St, lr) {
2898
+ let { shapeSvg: ur, bbox: dr, label: fr } = await labelHelper(St, lr, "label"), pr = ur.insert("rect", ":first-child");
2899
+ return pr.attr("width", .1).attr("height", .1), ur.attr("class", "label edgeLabel"), fr.attr("transform", `translate(${-(dr.width / 2) - (dr.x - (dr.left ?? 0))}, ${-(dr.height / 2) - (dr.y - (dr.top ?? 0))})`), updateNodeBounds(lr, pr), lr.intersect = function(St) {
2900
+ return intersect_default.rect(lr, St);
2901
+ }, ur;
2902
+ }
2903
+ __name(labelRect, "labelRect");
2904
+ async function lean_left(St, lr) {
2905
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
2906
+ lr.labelStyle = ur;
2907
+ let { shapeSvg: fr, bbox: pr } = await labelHelper(St, lr, getNodeClasses(lr)), mr = Math.max(pr.width + (lr.padding ?? 0), lr?.width ?? 0), hr = Math.max(pr.height + (lr.padding ?? 0), lr?.height ?? 0), gr = [
2908
+ {
2909
+ x: 0,
2910
+ y: 0
2911
+ },
2912
+ {
2913
+ x: mr + 3 * hr / 6,
2914
+ y: 0
2915
+ },
2916
+ {
2917
+ x: mr,
2918
+ y: -hr
2919
+ },
2920
+ {
2921
+ x: -(3 * hr) / 6,
2922
+ y: -hr
2923
+ }
2924
+ ], _r, { cssStyles: vr } = lr;
2925
+ if (lr.look === "handDrawn") {
2926
+ let St = at.svg(fr), ur = userNodeOverrides(lr, {}), dr = createPathFromPoints(gr), pr = St.path(dr, ur);
2927
+ _r = fr.insert(() => pr, ":first-child").attr("transform", `translate(${-mr / 2}, ${hr / 2})`), vr && _r.attr("style", vr);
2928
+ } else _r = insertPolygonShape(fr, mr, hr, gr);
2929
+ return dr && _r.attr("style", dr), lr.width = mr, lr.height = hr, updateNodeBounds(lr, _r), lr.intersect = function(St) {
2930
+ return intersect_default.polygon(lr, gr, St);
2931
+ }, fr;
2932
+ }
2933
+ __name(lean_left, "lean_left");
2934
+ async function lean_right(St, lr) {
2935
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
2936
+ lr.labelStyle = ur;
2937
+ let { shapeSvg: fr, bbox: pr } = await labelHelper(St, lr, getNodeClasses(lr)), mr = Math.max(pr.width + (lr.padding ?? 0), lr?.width ?? 0), hr = Math.max(pr.height + (lr.padding ?? 0), lr?.height ?? 0), gr = [
2938
+ {
2939
+ x: -3 * hr / 6,
2940
+ y: 0
2941
+ },
2942
+ {
2943
+ x: mr,
2944
+ y: 0
2945
+ },
2946
+ {
2947
+ x: mr + 3 * hr / 6,
2948
+ y: -hr
2949
+ },
2950
+ {
2951
+ x: 0,
2952
+ y: -hr
2953
+ }
2954
+ ], _r, { cssStyles: vr } = lr;
2955
+ if (lr.look === "handDrawn") {
2956
+ let St = at.svg(fr), ur = userNodeOverrides(lr, {}), dr = createPathFromPoints(gr), pr = St.path(dr, ur);
2957
+ _r = fr.insert(() => pr, ":first-child").attr("transform", `translate(${-mr / 2}, ${hr / 2})`), vr && _r.attr("style", vr);
2958
+ } else _r = insertPolygonShape(fr, mr, hr, gr);
2959
+ return dr && _r.attr("style", dr), lr.width = mr, lr.height = hr, updateNodeBounds(lr, _r), lr.intersect = function(St) {
2960
+ return intersect_default.polygon(lr, gr, St);
2961
+ }, fr;
2962
+ }
2963
+ __name(lean_right, "lean_right");
2964
+ function lightningBolt(St, lr) {
2965
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
2966
+ lr.label = "", lr.labelStyle = ur;
2967
+ let pr = St.insert("g").attr("class", getNodeClasses(lr)).attr("id", lr.domId ?? lr.id), { cssStyles: mr } = lr, hr = Math.max(35, lr?.width ?? 0), gr = Math.max(35, lr?.height ?? 0), _r = [
2968
+ {
2969
+ x: hr,
2970
+ y: 0
2971
+ },
2972
+ {
2973
+ x: 0,
2974
+ y: gr + 7 / 2
2975
+ },
2976
+ {
2977
+ x: hr - 14,
2978
+ y: gr + 7 / 2
2979
+ },
2980
+ {
2981
+ x: 0,
2982
+ y: 2 * gr
2983
+ },
2984
+ {
2985
+ x: hr,
2986
+ y: gr - 7 / 2
2987
+ },
2988
+ {
2989
+ x: 14,
2990
+ y: gr - 7 / 2
2991
+ }
2992
+ ], vr = at.svg(pr), yr = userNodeOverrides(lr, {});
2993
+ lr.look !== "handDrawn" && (yr.roughness = 0, yr.fillStyle = "solid");
2994
+ let br = createPathFromPoints(_r), xr = vr.path(br, yr), Sr = pr.insert(() => xr, ":first-child");
2995
+ return mr && lr.look !== "handDrawn" && Sr.selectAll("path").attr("style", mr), dr && lr.look !== "handDrawn" && Sr.selectAll("path").attr("style", dr), Sr.attr("transform", `translate(-${hr / 2},${-gr})`), updateNodeBounds(lr, Sr), lr.intersect = function(St) {
2996
+ return log.info("lightningBolt intersect", lr, St), intersect_default.polygon(lr, _r, St);
2997
+ }, pr;
2998
+ }
2999
+ __name(lightningBolt, "lightningBolt");
3000
+ var createCylinderPathD2 = /* @__PURE__ */ __name((St, lr, ur, dr, fr, pr, mr) => [
3001
+ `M${St},${lr + pr}`,
3002
+ `a${fr},${pr} 0,0,0 ${ur},0`,
3003
+ `a${fr},${pr} 0,0,0 ${-ur},0`,
3004
+ `l0,${dr}`,
3005
+ `a${fr},${pr} 0,0,0 ${ur},0`,
3006
+ `l0,${-dr}`,
3007
+ `M${St},${lr + pr + mr}`,
3008
+ `a${fr},${pr} 0,0,0 ${ur},0`
3009
+ ].join(" "), "createCylinderPathD"), createOuterCylinderPathD2 = /* @__PURE__ */ __name((St, lr, ur, dr, fr, pr, mr) => [
3010
+ `M${St},${lr + pr}`,
3011
+ `M${St + ur},${lr + pr}`,
3012
+ `a${fr},${pr} 0,0,0 ${-ur},0`,
3013
+ `l0,${dr}`,
3014
+ `a${fr},${pr} 0,0,0 ${ur},0`,
3015
+ `l0,${-dr}`,
3016
+ `M${St},${lr + pr + mr}`,
3017
+ `a${fr},${pr} 0,0,0 ${ur},0`
3018
+ ].join(" "), "createOuterCylinderPathD"), createInnerCylinderPathD2 = /* @__PURE__ */ __name((St, lr, ur, dr, fr, pr) => [`M${St - ur / 2},${-dr / 2}`, `a${fr},${pr} 0,0,0 ${ur},0`].join(" "), "createInnerCylinderPathD");
3019
+ async function linedCylinder(St, lr) {
3020
+ let { labelStyles: ur, nodeStyles: fr } = styles2String(lr);
3021
+ lr.labelStyle = ur;
3022
+ let { shapeSvg: pr, bbox: mr, label: hr } = await labelHelper(St, lr, getNodeClasses(lr)), gr = Math.max(mr.width + (lr.padding ?? 0), lr.width ?? 0), _r = gr / 2, vr = _r / (2.5 + gr / 50), yr = Math.max(mr.height + vr + (lr.padding ?? 0), lr.height ?? 0), br = yr * .1, xr, { cssStyles: Sr } = lr;
3023
+ if (lr.look === "handDrawn") {
3024
+ let St = at.svg(pr), ur = createOuterCylinderPathD2(0, 0, gr, yr, _r, vr, br), dr = createInnerCylinderPathD2(0, vr, gr, yr, _r, vr), fr = userNodeOverrides(lr, {}), mr = St.path(ur, fr), hr = St.path(dr, fr);
3025
+ pr.insert(() => hr, ":first-child").attr("class", "line"), xr = pr.insert(() => mr, ":first-child"), xr.attr("class", "basic label-container"), Sr && xr.attr("style", Sr);
3026
+ } else {
3027
+ let St = createCylinderPathD2(0, 0, gr, yr, _r, vr, br);
3028
+ xr = pr.insert("path", ":first-child").attr("d", St).attr("class", "basic label-container").attr("style", handleUndefinedAttr(Sr)).attr("style", fr);
3029
+ }
3030
+ return xr.attr("label-offset-y", vr), xr.attr("transform", `translate(${-gr / 2}, ${-(yr / 2 + vr)})`), updateNodeBounds(lr, xr), hr.attr("transform", `translate(${-(mr.width / 2) - (mr.x - (mr.left ?? 0))}, ${-(mr.height / 2) + vr - (mr.y - (mr.top ?? 0))})`), lr.intersect = function(St) {
3031
+ let ur = intersect_default.rect(lr, St), dr = ur.x - (lr.x ?? 0);
3032
+ if (_r != 0 && (Math.abs(dr) < (lr.width ?? 0) / 2 || Math.abs(dr) == (lr.width ?? 0) / 2 && Math.abs(ur.y - (lr.y ?? 0)) > (lr.height ?? 0) / 2 - vr)) {
3033
+ let fr = vr * vr * (1 - dr * dr / (_r * _r));
3034
+ fr > 0 && (fr = Math.sqrt(fr)), fr = vr - fr, St.y - (lr.y ?? 0) > 0 && (fr = -fr), ur.y += fr;
3035
+ }
3036
+ return ur;
3037
+ }, pr;
3038
+ }
3039
+ __name(linedCylinder, "linedCylinder");
3040
+ async function linedWaveEdgedRect(St, lr) {
3041
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3042
+ lr.labelStyle = ur;
3043
+ let { shapeSvg: fr, bbox: pr, label: mr } = await labelHelper(St, lr, getNodeClasses(lr)), hr = Math.max(pr.width + (lr.padding ?? 0) * 2, lr?.width ?? 0), gr = Math.max(pr.height + (lr.padding ?? 0) * 2, lr?.height ?? 0), _r = gr / 4, vr = gr + _r, { cssStyles: yr } = lr, br = at.svg(fr), xr = userNodeOverrides(lr, {});
3044
+ lr.look !== "handDrawn" && (xr.roughness = 0, xr.fillStyle = "solid");
3045
+ let Sr = [
3046
+ {
3047
+ x: -hr / 2 - hr / 2 * .1,
3048
+ y: -vr / 2
3049
+ },
3050
+ {
3051
+ x: -hr / 2 - hr / 2 * .1,
3052
+ y: vr / 2
3053
+ },
3054
+ ...generateFullSineWavePoints(-hr / 2 - hr / 2 * .1, vr / 2, hr / 2 + hr / 2 * .1, vr / 2, _r, .8),
3055
+ {
3056
+ x: hr / 2 + hr / 2 * .1,
3057
+ y: -vr / 2
3058
+ },
3059
+ {
3060
+ x: -hr / 2 - hr / 2 * .1,
3061
+ y: -vr / 2
3062
+ },
3063
+ {
3064
+ x: -hr / 2,
3065
+ y: -vr / 2
3066
+ },
3067
+ {
3068
+ x: -hr / 2,
3069
+ y: vr / 2 * 1.1
3070
+ },
3071
+ {
3072
+ x: -hr / 2,
3073
+ y: -vr / 2
3074
+ }
3075
+ ], Cr = br.polygon(Sr.map((St) => [St.x, St.y]), xr), wr = fr.insert(() => Cr, ":first-child");
3076
+ return wr.attr("class", "basic label-container"), yr && lr.look !== "handDrawn" && wr.selectAll("path").attr("style", yr), dr && lr.look !== "handDrawn" && wr.selectAll("path").attr("style", dr), wr.attr("transform", `translate(0,${-_r / 2})`), mr.attr("transform", `translate(${-hr / 2 + (lr.padding ?? 0) + hr / 2 * .1 / 2 - (pr.x - (pr.left ?? 0))},${-gr / 2 + (lr.padding ?? 0) - _r / 2 - (pr.y - (pr.top ?? 0))})`), updateNodeBounds(lr, wr), lr.intersect = function(St) {
3077
+ return intersect_default.polygon(lr, Sr, St);
3078
+ }, fr;
3079
+ }
3080
+ __name(linedWaveEdgedRect, "linedWaveEdgedRect");
3081
+ async function multiRect(St, lr) {
3082
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3083
+ lr.labelStyle = ur;
3084
+ let { shapeSvg: fr, bbox: pr, label: mr } = await labelHelper(St, lr, getNodeClasses(lr)), hr = Math.max(pr.width + (lr.padding ?? 0) * 2, lr?.width ?? 0), gr = Math.max(pr.height + (lr.padding ?? 0) * 2, lr?.height ?? 0), _r = -hr / 2, vr = -gr / 2, { cssStyles: yr } = lr, br = at.svg(fr), xr = userNodeOverrides(lr, {}), Sr = [
3085
+ {
3086
+ x: _r - 5,
3087
+ y: vr + 5
3088
+ },
3089
+ {
3090
+ x: _r - 5,
3091
+ y: vr + gr + 5
3092
+ },
3093
+ {
3094
+ x: _r + hr - 5,
3095
+ y: vr + gr + 5
3096
+ },
3097
+ {
3098
+ x: _r + hr - 5,
3099
+ y: vr + gr
3100
+ },
3101
+ {
3102
+ x: _r + hr,
3103
+ y: vr + gr
3104
+ },
3105
+ {
3106
+ x: _r + hr,
3107
+ y: vr + gr - 5
3108
+ },
3109
+ {
3110
+ x: _r + hr + 5,
3111
+ y: vr + gr - 5
3112
+ },
3113
+ {
3114
+ x: _r + hr + 5,
3115
+ y: vr - 5
3116
+ },
3117
+ {
3118
+ x: _r + 5,
3119
+ y: vr - 5
3120
+ },
3121
+ {
3122
+ x: _r + 5,
3123
+ y: vr
3124
+ },
3125
+ {
3126
+ x: _r,
3127
+ y: vr
3128
+ },
3129
+ {
3130
+ x: _r,
3131
+ y: vr + 5
3132
+ }
3133
+ ], Cr = [
3134
+ {
3135
+ x: _r,
3136
+ y: vr + 5
3137
+ },
3138
+ {
3139
+ x: _r + hr - 5,
3140
+ y: vr + 5
3141
+ },
3142
+ {
3143
+ x: _r + hr - 5,
3144
+ y: vr + gr
3145
+ },
3146
+ {
3147
+ x: _r + hr,
3148
+ y: vr + gr
3149
+ },
3150
+ {
3151
+ x: _r + hr,
3152
+ y: vr
3153
+ },
3154
+ {
3155
+ x: _r,
3156
+ y: vr
3157
+ }
3158
+ ];
3159
+ lr.look !== "handDrawn" && (xr.roughness = 0, xr.fillStyle = "solid");
3160
+ let wr = createPathFromPoints(Sr), Tr = br.path(wr, xr), Er = createPathFromPoints(Cr), Dr = br.path(Er, {
3161
+ ...xr,
3162
+ fill: "none"
3163
+ }), Ar = fr.insert(() => Dr, ":first-child");
3164
+ return Ar.insert(() => Tr, ":first-child"), Ar.attr("class", "basic label-container"), yr && lr.look !== "handDrawn" && Ar.selectAll("path").attr("style", yr), dr && lr.look !== "handDrawn" && Ar.selectAll("path").attr("style", dr), mr.attr("transform", `translate(${-(pr.width / 2) - 5 - (pr.x - (pr.left ?? 0))}, ${-(pr.height / 2) + 5 - (pr.y - (pr.top ?? 0))})`), updateNodeBounds(lr, Ar), lr.intersect = function(St) {
3165
+ return intersect_default.polygon(lr, Sr, St);
3166
+ }, fr;
3167
+ }
3168
+ __name(multiRect, "multiRect");
3169
+ async function multiWaveEdgedRectangle(St, lr) {
3170
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3171
+ lr.labelStyle = ur;
3172
+ let { shapeSvg: fr, bbox: pr, label: mr } = await labelHelper(St, lr, getNodeClasses(lr)), hr = Math.max(pr.width + (lr.padding ?? 0) * 2, lr?.width ?? 0), gr = Math.max(pr.height + (lr.padding ?? 0) * 2, lr?.height ?? 0), _r = gr / 4, vr = gr + _r, yr = -hr / 2, br = -vr / 2, { cssStyles: xr } = lr, Sr = generateFullSineWavePoints(yr - 5, br + vr + 5, yr + hr - 5, br + vr + 5, _r, .8), Cr = Sr?.[Sr.length - 1], wr = [
3173
+ {
3174
+ x: yr - 5,
3175
+ y: br + 5
3176
+ },
3177
+ {
3178
+ x: yr - 5,
3179
+ y: br + vr + 5
3180
+ },
3181
+ ...Sr,
3182
+ {
3183
+ x: yr + hr - 5,
3184
+ y: Cr.y - 5
3185
+ },
3186
+ {
3187
+ x: yr + hr,
3188
+ y: Cr.y - 5
3189
+ },
3190
+ {
3191
+ x: yr + hr,
3192
+ y: Cr.y - 10
3193
+ },
3194
+ {
3195
+ x: yr + hr + 5,
3196
+ y: Cr.y - 10
3197
+ },
3198
+ {
3199
+ x: yr + hr + 5,
3200
+ y: br - 5
3201
+ },
3202
+ {
3203
+ x: yr + 5,
3204
+ y: br - 5
3205
+ },
3206
+ {
3207
+ x: yr + 5,
3208
+ y: br
3209
+ },
3210
+ {
3211
+ x: yr,
3212
+ y: br
3213
+ },
3214
+ {
3215
+ x: yr,
3216
+ y: br + 5
3217
+ }
3218
+ ], Tr = [
3219
+ {
3220
+ x: yr,
3221
+ y: br + 5
3222
+ },
3223
+ {
3224
+ x: yr + hr - 5,
3225
+ y: br + 5
3226
+ },
3227
+ {
3228
+ x: yr + hr - 5,
3229
+ y: Cr.y - 5
3230
+ },
3231
+ {
3232
+ x: yr + hr,
3233
+ y: Cr.y - 5
3234
+ },
3235
+ {
3236
+ x: yr + hr,
3237
+ y: br
3238
+ },
3239
+ {
3240
+ x: yr,
3241
+ y: br
3242
+ }
3243
+ ], Er = at.svg(fr), Dr = userNodeOverrides(lr, {});
3244
+ lr.look !== "handDrawn" && (Dr.roughness = 0, Dr.fillStyle = "solid");
3245
+ let Ar = createPathFromPoints(wr), jr = Er.path(Ar, Dr), Mr = createPathFromPoints(Tr), Nr = Er.path(Mr, Dr), Pr = fr.insert(() => jr, ":first-child");
3246
+ return Pr.insert(() => Nr), Pr.attr("class", "basic label-container"), xr && lr.look !== "handDrawn" && Pr.selectAll("path").attr("style", xr), dr && lr.look !== "handDrawn" && Pr.selectAll("path").attr("style", dr), Pr.attr("transform", `translate(0,${-_r / 2})`), mr.attr("transform", `translate(${-(pr.width / 2) - 5 - (pr.x - (pr.left ?? 0))}, ${-(pr.height / 2) + 5 - _r / 2 - (pr.y - (pr.top ?? 0))})`), updateNodeBounds(lr, Pr), lr.intersect = function(St) {
3247
+ return intersect_default.polygon(lr, wr, St);
3248
+ }, fr;
3249
+ }
3250
+ __name(multiWaveEdgedRectangle, "multiWaveEdgedRectangle");
3251
+ async function note(St, lr, { config: { themeVariables: ur } }) {
3252
+ let { labelStyles: dr, nodeStyles: fr } = styles2String(lr);
3253
+ lr.labelStyle = dr, lr.useHtmlLabels || getConfig().flowchart?.htmlLabels !== !1 || (lr.centerLabel = !0);
3254
+ let { shapeSvg: pr, bbox: mr, label: hr } = await labelHelper(St, lr, getNodeClasses(lr)), gr = Math.max(mr.width + (lr.padding ?? 0) * 2, lr?.width ?? 0), _r = Math.max(mr.height + (lr.padding ?? 0) * 2, lr?.height ?? 0), vr = -gr / 2, yr = -_r / 2, { cssStyles: br } = lr, xr = at.svg(pr), Sr = userNodeOverrides(lr, {
3255
+ fill: ur.noteBkgColor,
3256
+ stroke: ur.noteBorderColor
3257
+ });
3258
+ lr.look !== "handDrawn" && (Sr.roughness = 0, Sr.fillStyle = "solid");
3259
+ let Cr = xr.rectangle(vr, yr, gr, _r, Sr), Tr = pr.insert(() => Cr, ":first-child");
3260
+ return Tr.attr("class", "basic label-container"), br && lr.look !== "handDrawn" && Tr.selectAll("path").attr("style", br), fr && lr.look !== "handDrawn" && Tr.selectAll("path").attr("style", fr), hr.attr("transform", `translate(${-mr.width / 2 - (mr.x - (mr.left ?? 0))}, ${-(mr.height / 2) - (mr.y - (mr.top ?? 0))})`), updateNodeBounds(lr, Tr), lr.intersect = function(St) {
3261
+ return intersect_default.rect(lr, St);
3262
+ }, pr;
3263
+ }
3264
+ __name(note, "note");
3265
+ var createDecisionBoxPathD = /* @__PURE__ */ __name((St, lr, ur) => [
3266
+ `M${St + ur / 2},${lr}`,
3267
+ `L${St + ur},${lr - ur / 2}`,
3268
+ `L${St + ur / 2},${lr - ur}`,
3269
+ `L${St},${lr - ur / 2}`,
3270
+ "Z"
3271
+ ].join(" "), "createDecisionBoxPathD");
3272
+ async function question(St, lr) {
3273
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3274
+ lr.labelStyle = ur;
3275
+ let { shapeSvg: fr, bbox: pr } = await labelHelper(St, lr, getNodeClasses(lr)), mr = pr.width + lr.padding + (pr.height + lr.padding), hr = .5, gr = [
3276
+ {
3277
+ x: mr / 2,
3278
+ y: 0
3279
+ },
3280
+ {
3281
+ x: mr,
3282
+ y: -mr / 2
3283
+ },
3284
+ {
3285
+ x: mr / 2,
3286
+ y: -mr
3287
+ },
3288
+ {
3289
+ x: 0,
3290
+ y: -mr / 2
3291
+ }
3292
+ ], _r, { cssStyles: vr } = lr;
3293
+ if (lr.look === "handDrawn") {
3294
+ let St = at.svg(fr), ur = userNodeOverrides(lr, {}), dr = createDecisionBoxPathD(0, 0, mr), pr = St.path(dr, ur);
3295
+ _r = fr.insert(() => pr, ":first-child").attr("transform", `translate(${-mr / 2 + hr}, ${mr / 2})`), vr && _r.attr("style", vr);
3296
+ } else _r = insertPolygonShape(fr, mr, mr, gr), _r.attr("transform", `translate(${-mr / 2 + hr}, ${mr / 2})`);
3297
+ return dr && _r.attr("style", dr), updateNodeBounds(lr, _r), lr.calcIntersect = function(St, lr) {
3298
+ let ur = St.width, dr = [
3299
+ {
3300
+ x: ur / 2,
3301
+ y: 0
3302
+ },
3303
+ {
3304
+ x: ur,
3305
+ y: -ur / 2
3306
+ },
3307
+ {
3308
+ x: ur / 2,
3309
+ y: -ur
3310
+ },
3311
+ {
3312
+ x: 0,
3313
+ y: -ur / 2
3314
+ }
3315
+ ], fr = intersect_default.polygon(St, dr, lr);
3316
+ return {
3317
+ x: fr.x - .5,
3318
+ y: fr.y - .5
3319
+ };
3320
+ }, lr.intersect = function(St) {
3321
+ return this.calcIntersect(lr, St);
3322
+ }, fr;
3323
+ }
3324
+ __name(question, "question");
3325
+ async function rect_left_inv_arrow(St, lr) {
3326
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3327
+ lr.labelStyle = ur;
3328
+ let { shapeSvg: fr, bbox: pr, label: mr } = await labelHelper(St, lr, getNodeClasses(lr)), hr = Math.max(pr.width + (lr.padding ?? 0), lr?.width ?? 0), gr = Math.max(pr.height + (lr.padding ?? 0), lr?.height ?? 0), _r = -hr / 2, vr = -gr / 2, yr = vr / 2, br = [
3329
+ {
3330
+ x: _r + yr,
3331
+ y: vr
3332
+ },
3333
+ {
3334
+ x: _r,
3335
+ y: 0
3336
+ },
3337
+ {
3338
+ x: _r + yr,
3339
+ y: -vr
3340
+ },
3341
+ {
3342
+ x: -_r,
3343
+ y: -vr
3344
+ },
3345
+ {
3346
+ x: -_r,
3347
+ y: vr
3348
+ }
3349
+ ], { cssStyles: xr } = lr, Sr = at.svg(fr), Cr = userNodeOverrides(lr, {});
3350
+ lr.look !== "handDrawn" && (Cr.roughness = 0, Cr.fillStyle = "solid");
3351
+ let wr = createPathFromPoints(br), Tr = Sr.path(wr, Cr), Er = fr.insert(() => Tr, ":first-child");
3352
+ return Er.attr("class", "basic label-container"), xr && lr.look !== "handDrawn" && Er.selectAll("path").attr("style", xr), dr && lr.look !== "handDrawn" && Er.selectAll("path").attr("style", dr), Er.attr("transform", `translate(${-yr / 2},0)`), mr.attr("transform", `translate(${-yr / 2 - pr.width / 2 - (pr.x - (pr.left ?? 0))}, ${-(pr.height / 2) - (pr.y - (pr.top ?? 0))})`), updateNodeBounds(lr, Er), lr.intersect = function(St) {
3353
+ return intersect_default.polygon(lr, br, St);
3354
+ }, fr;
3355
+ }
3356
+ __name(rect_left_inv_arrow, "rect_left_inv_arrow");
3357
+ async function rectWithTitle(St, lr) {
3358
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3359
+ lr.labelStyle = ur;
3360
+ let pr;
3361
+ pr = lr.cssClasses ? "node " + lr.cssClasses : "node default";
3362
+ let hr = St.insert("g").attr("class", pr).attr("id", lr.domId || lr.id), gr = hr.insert("g"), _r = hr.insert("g").attr("class", "label").attr("style", dr), vr = lr.description, yr = lr.label, xr = _r.node().appendChild(await createLabel_default(yr, lr.labelStyle, !0, !0)), Cr = {
3363
+ width: 0,
3364
+ height: 0
3365
+ };
3366
+ if (evaluate(getConfig2()?.flowchart?.htmlLabels)) {
3367
+ let St = xr.children[0], lr = select_default(xr);
3368
+ Cr = St.getBoundingClientRect(), lr.attr("width", Cr.width), lr.attr("height", Cr.height);
3369
+ }
3370
+ log.info("Text 2", vr);
3371
+ let wr = vr || [], Tr = xr.getBBox(), Er = _r.node().appendChild(await createLabel_default(wr.join ? wr.join("<br/>") : wr, lr.labelStyle, !0, !0)), Dr = Er.children[0], Ar = select_default(Er);
3372
+ Cr = Dr.getBoundingClientRect(), Ar.attr("width", Cr.width), Ar.attr("height", Cr.height);
3373
+ let jr = (lr.padding || 0) / 2;
3374
+ select_default(Er).attr("transform", "translate( " + (Cr.width > Tr.width ? 0 : (Tr.width - Cr.width) / 2) + ", " + (Tr.height + jr + 5) + ")"), select_default(xr).attr("transform", "translate( " + (Cr.width < Tr.width ? 0 : -(Tr.width - Cr.width) / 2) + ", 0)"), Cr = _r.node().getBBox(), _r.attr("transform", "translate(" + -Cr.width / 2 + ", " + (-Cr.height / 2 - jr + 3) + ")");
3375
+ let Mr = Cr.width + (lr.padding || 0), Nr = Cr.height + (lr.padding || 0), Pr = -Cr.width / 2 - jr, Fr = -Cr.height / 2 - jr, Ir, Lr;
3376
+ if (lr.look === "handDrawn") {
3377
+ let St = at.svg(hr), ur = userNodeOverrides(lr, {}), dr = St.path(createRoundedRectPathD(Pr, Fr, Mr, Nr, lr.rx || 0), ur), pr = St.line(-Cr.width / 2 - jr, -Cr.height / 2 - jr + Tr.height + jr, Cr.width / 2 + jr, -Cr.height / 2 - jr + Tr.height + jr, ur);
3378
+ Lr = hr.insert(() => (log.debug("Rough node insert CXC", dr), pr), ":first-child"), Ir = hr.insert(() => (log.debug("Rough node insert CXC", dr), dr), ":first-child");
3379
+ } else Ir = gr.insert("rect", ":first-child"), Lr = gr.insert("line"), Ir.attr("class", "outer title-state").attr("style", dr).attr("x", -Cr.width / 2 - jr).attr("y", -Cr.height / 2 - jr).attr("width", Cr.width + (lr.padding || 0)).attr("height", Cr.height + (lr.padding || 0)), Lr.attr("class", "divider").attr("x1", -Cr.width / 2 - jr).attr("x2", Cr.width / 2 + jr).attr("y1", -Cr.height / 2 - jr + Tr.height + jr).attr("y2", -Cr.height / 2 - jr + Tr.height + jr);
3380
+ return updateNodeBounds(lr, Ir), lr.intersect = function(St) {
3381
+ return intersect_default.rect(lr, St);
3382
+ }, hr;
3383
+ }
3384
+ __name(rectWithTitle, "rectWithTitle");
3385
+ function generateArcPoints2(St, lr, ur, dr, fr, pr, mr) {
3386
+ let hr = (St + ur) / 2, gr = (lr + dr) / 2, _r = Math.atan2(dr - lr, ur - St), vr = (ur - St) / 2, yr = (dr - lr) / 2, br = vr / fr, xr = yr / pr, Sr = Math.sqrt(br ** 2 + xr ** 2);
3387
+ if (Sr > 1) throw Error("The given radii are too small to create an arc between the points.");
3388
+ let Cr = Math.sqrt(1 - Sr ** 2), wr = hr + Cr * pr * Math.sin(_r) * (mr ? -1 : 1), Tr = gr - Cr * fr * Math.cos(_r) * (mr ? -1 : 1), Er = Math.atan2((lr - Tr) / pr, (St - wr) / fr), Dr = Math.atan2((dr - Tr) / pr, (ur - wr) / fr) - Er;
3389
+ mr && Dr < 0 && (Dr += 2 * Math.PI), !mr && Dr > 0 && (Dr -= 2 * Math.PI);
3390
+ let Or = [];
3391
+ for (let St = 0; St < 20; St++) {
3392
+ let lr = Er + St / 19 * Dr, ur = wr + fr * Math.cos(lr), dr = Tr + pr * Math.sin(lr);
3393
+ Or.push({
3394
+ x: ur,
3395
+ y: dr
3396
+ });
3397
+ }
3398
+ return Or;
3399
+ }
3400
+ __name(generateArcPoints2, "generateArcPoints");
3401
+ async function roundedRect(St, lr) {
3402
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3403
+ lr.labelStyle = ur;
3404
+ let { shapeSvg: fr, bbox: pr } = await labelHelper(St, lr, getNodeClasses(lr)), mr = lr?.padding ?? 0, hr = lr?.padding ?? 0, gr = (lr?.width ? lr?.width : pr.width) + mr * 2, _r = (lr?.height ? lr?.height : pr.height) + hr * 2, vr = lr.radius || 5, yr = lr.taper || 5, { cssStyles: br } = lr, xr = at.svg(fr), Sr = userNodeOverrides(lr, {});
3405
+ lr.stroke && (Sr.stroke = lr.stroke), lr.look !== "handDrawn" && (Sr.roughness = 0, Sr.fillStyle = "solid");
3406
+ let Cr = [
3407
+ {
3408
+ x: -gr / 2 + yr,
3409
+ y: -_r / 2
3410
+ },
3411
+ {
3412
+ x: gr / 2 - yr,
3413
+ y: -_r / 2
3414
+ },
3415
+ ...generateArcPoints2(gr / 2 - yr, -_r / 2, gr / 2, -_r / 2 + yr, vr, vr, !0),
3416
+ {
3417
+ x: gr / 2,
3418
+ y: -_r / 2 + yr
3419
+ },
3420
+ {
3421
+ x: gr / 2,
3422
+ y: _r / 2 - yr
3423
+ },
3424
+ ...generateArcPoints2(gr / 2, _r / 2 - yr, gr / 2 - yr, _r / 2, vr, vr, !0),
3425
+ {
3426
+ x: gr / 2 - yr,
3427
+ y: _r / 2
3428
+ },
3429
+ {
3430
+ x: -gr / 2 + yr,
3431
+ y: _r / 2
3432
+ },
3433
+ ...generateArcPoints2(-gr / 2 + yr, _r / 2, -gr / 2, _r / 2 - yr, vr, vr, !0),
3434
+ {
3435
+ x: -gr / 2,
3436
+ y: _r / 2 - yr
3437
+ },
3438
+ {
3439
+ x: -gr / 2,
3440
+ y: -_r / 2 + yr
3441
+ },
3442
+ ...generateArcPoints2(-gr / 2, -_r / 2 + yr, -gr / 2 + yr, -_r / 2, vr, vr, !0)
3443
+ ], wr = createPathFromPoints(Cr), Tr = xr.path(wr, Sr), Er = fr.insert(() => Tr, ":first-child");
3444
+ return Er.attr("class", "basic label-container outer-path"), br && lr.look !== "handDrawn" && Er.selectChildren("path").attr("style", br), dr && lr.look !== "handDrawn" && Er.selectChildren("path").attr("style", dr), updateNodeBounds(lr, Er), lr.intersect = function(St) {
3445
+ return intersect_default.polygon(lr, Cr, St);
3446
+ }, fr;
3447
+ }
3448
+ __name(roundedRect, "roundedRect");
3449
+ async function shadedProcess(St, lr) {
3450
+ let { labelStyles: ur, nodeStyles: fr } = styles2String(lr);
3451
+ lr.labelStyle = ur;
3452
+ let { shapeSvg: pr, bbox: mr, label: hr } = await labelHelper(St, lr, getNodeClasses(lr)), gr = lr?.padding ?? 0, _r = Math.max(mr.width + (lr.padding ?? 0) * 2, lr?.width ?? 0), vr = Math.max(mr.height + (lr.padding ?? 0) * 2, lr?.height ?? 0), yr = -mr.width / 2 - gr, br = -mr.height / 2 - gr, { cssStyles: xr } = lr, Sr = at.svg(pr), Cr = userNodeOverrides(lr, {});
3453
+ lr.look !== "handDrawn" && (Cr.roughness = 0, Cr.fillStyle = "solid");
3454
+ let wr = [
3455
+ {
3456
+ x: yr,
3457
+ y: br
3458
+ },
3459
+ {
3460
+ x: yr + _r + 8,
3461
+ y: br
3462
+ },
3463
+ {
3464
+ x: yr + _r + 8,
3465
+ y: br + vr
3466
+ },
3467
+ {
3468
+ x: yr - 8,
3469
+ y: br + vr
3470
+ },
3471
+ {
3472
+ x: yr - 8,
3473
+ y: br
3474
+ },
3475
+ {
3476
+ x: yr,
3477
+ y: br
3478
+ },
3479
+ {
3480
+ x: yr,
3481
+ y: br + vr
3482
+ }
3483
+ ], Tr = Sr.polygon(wr.map((St) => [St.x, St.y]), Cr), Er = pr.insert(() => Tr, ":first-child");
3484
+ return Er.attr("class", "basic label-container").attr("style", handleUndefinedAttr(xr)), fr && lr.look !== "handDrawn" && Er.selectAll("path").attr("style", fr), xr && lr.look !== "handDrawn" && Er.selectAll("path").attr("style", fr), hr.attr("transform", `translate(${-_r / 2 + 4 + (lr.padding ?? 0) - (mr.x - (mr.left ?? 0))},${-vr / 2 + (lr.padding ?? 0) - (mr.y - (mr.top ?? 0))})`), updateNodeBounds(lr, Er), lr.intersect = function(St) {
3485
+ return intersect_default.rect(lr, St);
3486
+ }, pr;
3487
+ }
3488
+ __name(shadedProcess, "shadedProcess");
3489
+ async function slopedRect(St, lr) {
3490
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3491
+ lr.labelStyle = ur;
3492
+ let { shapeSvg: fr, bbox: pr, label: mr } = await labelHelper(St, lr, getNodeClasses(lr)), hr = Math.max(pr.width + (lr.padding ?? 0) * 2, lr?.width ?? 0), gr = Math.max(pr.height + (lr.padding ?? 0) * 2, lr?.height ?? 0), _r = -hr / 2, vr = -gr / 2, { cssStyles: yr } = lr, br = at.svg(fr), xr = userNodeOverrides(lr, {});
3493
+ lr.look !== "handDrawn" && (xr.roughness = 0, xr.fillStyle = "solid");
3494
+ let Sr = [
3495
+ {
3496
+ x: _r,
3497
+ y: vr
3498
+ },
3499
+ {
3500
+ x: _r,
3501
+ y: vr + gr
3502
+ },
3503
+ {
3504
+ x: _r + hr,
3505
+ y: vr + gr
3506
+ },
3507
+ {
3508
+ x: _r + hr,
3509
+ y: vr - gr / 2
3510
+ }
3511
+ ], Cr = createPathFromPoints(Sr), wr = br.path(Cr, xr), Tr = fr.insert(() => wr, ":first-child");
3512
+ return Tr.attr("class", "basic label-container"), yr && lr.look !== "handDrawn" && Tr.selectChildren("path").attr("style", yr), dr && lr.look !== "handDrawn" && Tr.selectChildren("path").attr("style", dr), Tr.attr("transform", `translate(0, ${gr / 4})`), mr.attr("transform", `translate(${-hr / 2 + (lr.padding ?? 0) - (pr.x - (pr.left ?? 0))}, ${-gr / 4 + (lr.padding ?? 0) - (pr.y - (pr.top ?? 0))})`), updateNodeBounds(lr, Tr), lr.intersect = function(St) {
3513
+ return intersect_default.polygon(lr, Sr, St);
3514
+ }, fr;
3515
+ }
3516
+ __name(slopedRect, "slopedRect");
3517
+ async function squareRect2(St, lr) {
3518
+ return drawRect(St, lr, {
3519
+ rx: 0,
3520
+ ry: 0,
3521
+ classes: "",
3522
+ labelPaddingX: lr.labelPaddingX ?? (lr?.padding || 0) * 2,
3523
+ labelPaddingY: (lr?.padding || 0) * 1
3524
+ });
3525
+ }
3526
+ __name(squareRect2, "squareRect");
3527
+ async function stadium(St, lr) {
3528
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3529
+ lr.labelStyle = ur;
3530
+ let { shapeSvg: fr, bbox: pr } = await labelHelper(St, lr, getNodeClasses(lr)), mr = pr.height + lr.padding, hr = pr.width + mr / 4 + lr.padding, gr = mr / 2, { cssStyles: _r } = lr, vr = at.svg(fr), yr = userNodeOverrides(lr, {});
3531
+ lr.look !== "handDrawn" && (yr.roughness = 0, yr.fillStyle = "solid");
3532
+ let br = [
3533
+ {
3534
+ x: -hr / 2 + gr,
3535
+ y: -mr / 2
3536
+ },
3537
+ {
3538
+ x: hr / 2 - gr,
3539
+ y: -mr / 2
3540
+ },
3541
+ ...generateCirclePoints(-hr / 2 + gr, 0, gr, 50, 90, 270),
3542
+ {
3543
+ x: hr / 2 - gr,
3544
+ y: mr / 2
3545
+ },
3546
+ ...generateCirclePoints(hr / 2 - gr, 0, gr, 50, 270, 450)
3547
+ ], xr = createPathFromPoints(br), Sr = vr.path(xr, yr), Cr = fr.insert(() => Sr, ":first-child");
3548
+ return Cr.attr("class", "basic label-container outer-path"), _r && lr.look !== "handDrawn" && Cr.selectChildren("path").attr("style", _r), dr && lr.look !== "handDrawn" && Cr.selectChildren("path").attr("style", dr), updateNodeBounds(lr, Cr), lr.intersect = function(St) {
3549
+ return intersect_default.polygon(lr, br, St);
3550
+ }, fr;
3551
+ }
3552
+ __name(stadium, "stadium");
3553
+ async function state(St, lr) {
3554
+ return drawRect(St, lr, {
3555
+ rx: 5,
3556
+ ry: 5,
3557
+ classes: "flowchart-node"
3558
+ });
3559
+ }
3560
+ __name(state, "state");
3561
+ function stateEnd(St, lr, { config: { themeVariables: ur } }) {
3562
+ let { labelStyles: dr, nodeStyles: fr } = styles2String(lr);
3563
+ lr.labelStyle = dr;
3564
+ let { cssStyles: pr } = lr, { lineColor: mr, stateBorder: hr, nodeBorder: gr } = ur, _r = St.insert("g").attr("class", "node default").attr("id", lr.domId || lr.id), vr = at.svg(_r), yr = userNodeOverrides(lr, {});
3565
+ lr.look !== "handDrawn" && (yr.roughness = 0, yr.fillStyle = "solid");
3566
+ let br = vr.circle(0, 0, 14, {
3567
+ ...yr,
3568
+ stroke: mr,
3569
+ strokeWidth: 2
3570
+ }), xr = hr ?? gr, Sr = vr.circle(0, 0, 5, {
3571
+ ...yr,
3572
+ fill: xr,
3573
+ stroke: xr,
3574
+ strokeWidth: 2,
3575
+ fillStyle: "solid"
3576
+ }), Cr = _r.insert(() => br, ":first-child");
3577
+ return Cr.insert(() => Sr), pr && Cr.selectAll("path").attr("style", pr), fr && Cr.selectAll("path").attr("style", fr), updateNodeBounds(lr, Cr), lr.intersect = function(St) {
3578
+ return intersect_default.circle(lr, 7, St);
3579
+ }, _r;
3580
+ }
3581
+ __name(stateEnd, "stateEnd");
3582
+ function stateStart(St, lr, { config: { themeVariables: ur } }) {
3583
+ let { lineColor: dr } = ur, fr = St.insert("g").attr("class", "node default").attr("id", lr.domId || lr.id), pr;
3584
+ if (lr.look === "handDrawn") {
3585
+ let St = at.svg(fr).circle(0, 0, 14, solidStateFill(dr));
3586
+ pr = fr.insert(() => St), pr.attr("class", "state-start").attr("r", 7).attr("width", 14).attr("height", 14);
3587
+ } else pr = fr.insert("circle", ":first-child"), pr.attr("class", "state-start").attr("r", 7).attr("width", 14).attr("height", 14);
3588
+ return updateNodeBounds(lr, pr), lr.intersect = function(St) {
3589
+ return intersect_default.circle(lr, 7, St);
3590
+ }, fr;
3591
+ }
3592
+ __name(stateStart, "stateStart");
3593
+ async function subroutine(St, lr) {
3594
+ let { labelStyles: ur, nodeStyles: fr } = styles2String(lr);
3595
+ lr.labelStyle = ur;
3596
+ let { shapeSvg: pr, bbox: mr } = await labelHelper(St, lr, getNodeClasses(lr)), hr = (lr?.padding || 0) / 2, gr = mr.width + lr.padding, _r = mr.height + lr.padding, vr = -mr.width / 2 - hr, yr = -mr.height / 2 - hr, br = [
3597
+ {
3598
+ x: 0,
3599
+ y: 0
3600
+ },
3601
+ {
3602
+ x: gr,
3603
+ y: 0
3604
+ },
3605
+ {
3606
+ x: gr,
3607
+ y: -_r
3608
+ },
3609
+ {
3610
+ x: 0,
3611
+ y: -_r
3612
+ },
3613
+ {
3614
+ x: 0,
3615
+ y: 0
3616
+ },
3617
+ {
3618
+ x: -8,
3619
+ y: 0
3620
+ },
3621
+ {
3622
+ x: gr + 8,
3623
+ y: 0
3624
+ },
3625
+ {
3626
+ x: gr + 8,
3627
+ y: -_r
3628
+ },
3629
+ {
3630
+ x: -8,
3631
+ y: -_r
3632
+ },
3633
+ {
3634
+ x: -8,
3635
+ y: 0
3636
+ }
3637
+ ];
3638
+ if (lr.look === "handDrawn") {
3639
+ let St = at.svg(pr), ur = userNodeOverrides(lr, {}), fr = St.rectangle(vr - 8, yr, gr + 16, _r, ur), mr = St.line(vr, yr, vr, yr + _r, ur), hr = St.line(vr + gr, yr, vr + gr, yr + _r, ur);
3640
+ pr.insert(() => mr, ":first-child"), pr.insert(() => hr, ":first-child");
3641
+ let br = pr.insert(() => fr, ":first-child"), { cssStyles: xr } = lr;
3642
+ br.attr("class", "basic label-container").attr("style", handleUndefinedAttr(xr)), updateNodeBounds(lr, br);
3643
+ } else {
3644
+ let St = insertPolygonShape(pr, gr, _r, br);
3645
+ fr && St.attr("style", fr), updateNodeBounds(lr, St);
3646
+ }
3647
+ return lr.intersect = function(St) {
3648
+ return intersect_default.polygon(lr, br, St);
3649
+ }, pr;
3650
+ }
3651
+ __name(subroutine, "subroutine");
3652
+ async function taggedRect(St, lr) {
3653
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3654
+ lr.labelStyle = ur;
3655
+ let { shapeSvg: fr, bbox: pr } = await labelHelper(St, lr, getNodeClasses(lr)), mr = Math.max(pr.width + (lr.padding ?? 0) * 2, lr?.width ?? 0), hr = Math.max(pr.height + (lr.padding ?? 0) * 2, lr?.height ?? 0), gr = -mr / 2, _r = -hr / 2, vr = .2 * hr, yr = .2 * hr, { cssStyles: br } = lr, xr = at.svg(fr), Sr = userNodeOverrides(lr, {}), Cr = [
3656
+ {
3657
+ x: gr - vr / 2,
3658
+ y: _r
3659
+ },
3660
+ {
3661
+ x: gr + mr + vr / 2,
3662
+ y: _r
3663
+ },
3664
+ {
3665
+ x: gr + mr + vr / 2,
3666
+ y: _r + hr
3667
+ },
3668
+ {
3669
+ x: gr - vr / 2,
3670
+ y: _r + hr
3671
+ }
3672
+ ], wr = [
3673
+ {
3674
+ x: gr + mr - vr / 2,
3675
+ y: _r + hr
3676
+ },
3677
+ {
3678
+ x: gr + mr + vr / 2,
3679
+ y: _r + hr
3680
+ },
3681
+ {
3682
+ x: gr + mr + vr / 2,
3683
+ y: _r + hr - yr
3684
+ }
3685
+ ];
3686
+ lr.look !== "handDrawn" && (Sr.roughness = 0, Sr.fillStyle = "solid");
3687
+ let Tr = createPathFromPoints(Cr), Er = xr.path(Tr, Sr), Dr = createPathFromPoints(wr), Ar = xr.path(Dr, {
3688
+ ...Sr,
3689
+ fillStyle: "solid"
3690
+ }), jr = fr.insert(() => Ar, ":first-child");
3691
+ return jr.insert(() => Er, ":first-child"), jr.attr("class", "basic label-container"), br && lr.look !== "handDrawn" && jr.selectAll("path").attr("style", br), dr && lr.look !== "handDrawn" && jr.selectAll("path").attr("style", dr), updateNodeBounds(lr, jr), lr.intersect = function(St) {
3692
+ return intersect_default.polygon(lr, Cr, St);
3693
+ }, fr;
3694
+ }
3695
+ __name(taggedRect, "taggedRect");
3696
+ async function taggedWaveEdgedRectangle(St, lr) {
3697
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3698
+ lr.labelStyle = ur;
3699
+ let { shapeSvg: fr, bbox: pr, label: mr } = await labelHelper(St, lr, getNodeClasses(lr)), hr = Math.max(pr.width + (lr.padding ?? 0) * 2, lr?.width ?? 0), gr = Math.max(pr.height + (lr.padding ?? 0) * 2, lr?.height ?? 0), _r = gr / 4, vr = .2 * hr, yr = .2 * gr, br = gr + _r, { cssStyles: xr } = lr, Sr = at.svg(fr), Cr = userNodeOverrides(lr, {});
3700
+ lr.look !== "handDrawn" && (Cr.roughness = 0, Cr.fillStyle = "solid");
3701
+ let wr = [
3702
+ {
3703
+ x: -hr / 2 - hr / 2 * .1,
3704
+ y: br / 2
3705
+ },
3706
+ ...generateFullSineWavePoints(-hr / 2 - hr / 2 * .1, br / 2, hr / 2 + hr / 2 * .1, br / 2, _r, .8),
3707
+ {
3708
+ x: hr / 2 + hr / 2 * .1,
3709
+ y: -br / 2
3710
+ },
3711
+ {
3712
+ x: -hr / 2 - hr / 2 * .1,
3713
+ y: -br / 2
3714
+ }
3715
+ ], Tr = -hr / 2 + hr / 2 * .1, Er = -br / 2 - yr * .4, Dr = [
3716
+ {
3717
+ x: Tr + hr - vr,
3718
+ y: (Er + gr) * 1.4
3719
+ },
3720
+ {
3721
+ x: Tr + hr,
3722
+ y: Er + gr - yr
3723
+ },
3724
+ {
3725
+ x: Tr + hr,
3726
+ y: (Er + gr) * .9
3727
+ },
3728
+ ...generateFullSineWavePoints(Tr + hr, (Er + gr) * 1.3, Tr + hr - vr, (Er + gr) * 1.5, -gr * .03, .5)
3729
+ ], Ar = createPathFromPoints(wr), jr = Sr.path(Ar, Cr), Mr = createPathFromPoints(Dr), Nr = Sr.path(Mr, {
3730
+ ...Cr,
3731
+ fillStyle: "solid"
3732
+ }), Pr = fr.insert(() => Nr, ":first-child");
3733
+ return Pr.insert(() => jr, ":first-child"), Pr.attr("class", "basic label-container"), xr && lr.look !== "handDrawn" && Pr.selectAll("path").attr("style", xr), dr && lr.look !== "handDrawn" && Pr.selectAll("path").attr("style", dr), Pr.attr("transform", `translate(0,${-_r / 2})`), mr.attr("transform", `translate(${-hr / 2 + (lr.padding ?? 0) - (pr.x - (pr.left ?? 0))},${-gr / 2 + (lr.padding ?? 0) - _r / 2 - (pr.y - (pr.top ?? 0))})`), updateNodeBounds(lr, Pr), lr.intersect = function(St) {
3734
+ return intersect_default.polygon(lr, wr, St);
3735
+ }, fr;
3736
+ }
3737
+ __name(taggedWaveEdgedRectangle, "taggedWaveEdgedRectangle");
3738
+ async function text(St, lr) {
3739
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3740
+ lr.labelStyle = ur;
3741
+ let { shapeSvg: fr, bbox: pr } = await labelHelper(St, lr, getNodeClasses(lr)), mr = Math.max(pr.width + lr.padding, lr?.width || 0), hr = Math.max(pr.height + lr.padding, lr?.height || 0), gr = -mr / 2, _r = -hr / 2, vr = fr.insert("rect", ":first-child");
3742
+ return vr.attr("class", "text").attr("style", dr).attr("rx", 0).attr("ry", 0).attr("x", gr).attr("y", _r).attr("width", mr).attr("height", hr), updateNodeBounds(lr, vr), lr.intersect = function(St) {
3743
+ return intersect_default.rect(lr, St);
3744
+ }, fr;
3745
+ }
3746
+ __name(text, "text");
3747
+ var createCylinderPathD3 = /* @__PURE__ */ __name((St, lr, ur, dr, fr, pr) => `M${St},${lr}
3748
+ a${fr},${pr} 0,0,1 0,${-dr}
3749
+ l${ur},0
3750
+ a${fr},${pr} 0,0,1 0,${dr}
3751
+ M${ur},${-dr}
3752
+ a${fr},${pr} 0,0,0 0,${dr}
3753
+ l${-ur},0`, "createCylinderPathD"), createOuterCylinderPathD3 = /* @__PURE__ */ __name((St, lr, ur, dr, fr, pr) => [
3754
+ `M${St},${lr}`,
3755
+ `M${St + ur},${lr}`,
3756
+ `a${fr},${pr} 0,0,0 0,${-dr}`,
3757
+ `l${-ur},0`,
3758
+ `a${fr},${pr} 0,0,0 0,${dr}`,
3759
+ `l${ur},0`
3760
+ ].join(" "), "createOuterCylinderPathD"), createInnerCylinderPathD3 = /* @__PURE__ */ __name((St, lr, ur, dr, fr, pr) => [`M${St + ur / 2},${-dr / 2}`, `a${fr},${pr} 0,0,0 0,${dr}`].join(" "), "createInnerCylinderPathD");
3761
+ async function tiltedCylinder(St, lr) {
3762
+ let { labelStyles: ur, nodeStyles: fr } = styles2String(lr);
3763
+ lr.labelStyle = ur;
3764
+ let { shapeSvg: pr, bbox: mr, label: hr, halfPadding: gr } = await labelHelper(St, lr, getNodeClasses(lr)), _r = lr.look === "neo" ? gr * 2 : gr, vr = mr.height + _r, yr = vr / 2, br = yr / (2.5 + vr / 50), xr = mr.width + br + _r, { cssStyles: Sr } = lr, Cr;
3765
+ if (lr.look === "handDrawn") {
3766
+ let St = at.svg(pr), ur = createOuterCylinderPathD3(0, 0, xr, vr, br, yr), dr = createInnerCylinderPathD3(0, 0, xr, vr, br, yr), fr = St.path(ur, userNodeOverrides(lr, {})), mr = St.path(dr, userNodeOverrides(lr, { fill: "none" }));
3767
+ Cr = pr.insert(() => mr, ":first-child"), Cr = pr.insert(() => fr, ":first-child"), Cr.attr("class", "basic label-container"), Sr && Cr.attr("style", Sr);
3768
+ } else {
3769
+ let St = createCylinderPathD3(0, 0, xr, vr, br, yr);
3770
+ Cr = pr.insert("path", ":first-child").attr("d", St).attr("class", "basic label-container").attr("style", handleUndefinedAttr(Sr)).attr("style", fr), Cr.attr("class", "basic label-container"), Sr && Cr.selectAll("path").attr("style", Sr), fr && Cr.selectAll("path").attr("style", fr);
3771
+ }
3772
+ return Cr.attr("label-offset-x", br), Cr.attr("transform", `translate(${-xr / 2}, ${vr / 2} )`), hr.attr("transform", `translate(${-(mr.width / 2) - br - (mr.x - (mr.left ?? 0))}, ${-(mr.height / 2) - (mr.y - (mr.top ?? 0))})`), updateNodeBounds(lr, Cr), lr.intersect = function(St) {
3773
+ let ur = intersect_default.rect(lr, St), dr = ur.y - (lr.y ?? 0);
3774
+ if (yr != 0 && (Math.abs(dr) < (lr.height ?? 0) / 2 || Math.abs(dr) == (lr.height ?? 0) / 2 && Math.abs(ur.x - (lr.x ?? 0)) > (lr.width ?? 0) / 2 - br)) {
3775
+ let fr = br * br * (1 - dr * dr / (yr * yr));
3776
+ fr != 0 && (fr = Math.sqrt(Math.abs(fr))), fr = br - fr, St.x - (lr.x ?? 0) > 0 && (fr = -fr), ur.x += fr;
3777
+ }
3778
+ return ur;
3779
+ }, pr;
3780
+ }
3781
+ __name(tiltedCylinder, "tiltedCylinder");
3782
+ async function trapezoid(St, lr) {
3783
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3784
+ lr.labelStyle = ur;
3785
+ let { shapeSvg: fr, bbox: pr } = await labelHelper(St, lr, getNodeClasses(lr)), mr = pr.width + lr.padding, hr = pr.height + lr.padding, gr = [
3786
+ {
3787
+ x: -3 * hr / 6,
3788
+ y: 0
3789
+ },
3790
+ {
3791
+ x: mr + 3 * hr / 6,
3792
+ y: 0
3793
+ },
3794
+ {
3795
+ x: mr,
3796
+ y: -hr
3797
+ },
3798
+ {
3799
+ x: 0,
3800
+ y: -hr
3801
+ }
3802
+ ], _r, { cssStyles: vr } = lr;
3803
+ if (lr.look === "handDrawn") {
3804
+ let St = at.svg(fr), ur = userNodeOverrides(lr, {}), dr = createPathFromPoints(gr), pr = St.path(dr, ur);
3805
+ _r = fr.insert(() => pr, ":first-child").attr("transform", `translate(${-mr / 2}, ${hr / 2})`), vr && _r.attr("style", vr);
3806
+ } else _r = insertPolygonShape(fr, mr, hr, gr);
3807
+ return dr && _r.attr("style", dr), lr.width = mr, lr.height = hr, updateNodeBounds(lr, _r), lr.intersect = function(St) {
3808
+ return intersect_default.polygon(lr, gr, St);
3809
+ }, fr;
3810
+ }
3811
+ __name(trapezoid, "trapezoid");
3812
+ async function trapezoidalPentagon(St, lr) {
3813
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3814
+ lr.labelStyle = ur;
3815
+ let { shapeSvg: fr, bbox: pr } = await labelHelper(St, lr, getNodeClasses(lr)), mr = Math.max(60, pr.width + (lr.padding ?? 0) * 2, lr?.width ?? 0), hr = Math.max(20, pr.height + (lr.padding ?? 0) * 2, lr?.height ?? 0), { cssStyles: gr } = lr, _r = at.svg(fr), vr = userNodeOverrides(lr, {});
3816
+ lr.look !== "handDrawn" && (vr.roughness = 0, vr.fillStyle = "solid");
3817
+ let yr = [
3818
+ {
3819
+ x: -mr / 2 * .8,
3820
+ y: -hr / 2
3821
+ },
3822
+ {
3823
+ x: mr / 2 * .8,
3824
+ y: -hr / 2
3825
+ },
3826
+ {
3827
+ x: mr / 2,
3828
+ y: -hr / 2 * .6
3829
+ },
3830
+ {
3831
+ x: mr / 2,
3832
+ y: hr / 2
3833
+ },
3834
+ {
3835
+ x: -mr / 2,
3836
+ y: hr / 2
3837
+ },
3838
+ {
3839
+ x: -mr / 2,
3840
+ y: -hr / 2 * .6
3841
+ }
3842
+ ], br = createPathFromPoints(yr), xr = _r.path(br, vr), Sr = fr.insert(() => xr, ":first-child");
3843
+ return Sr.attr("class", "basic label-container"), gr && lr.look !== "handDrawn" && Sr.selectChildren("path").attr("style", gr), dr && lr.look !== "handDrawn" && Sr.selectChildren("path").attr("style", dr), updateNodeBounds(lr, Sr), lr.intersect = function(St) {
3844
+ return intersect_default.polygon(lr, yr, St);
3845
+ }, fr;
3846
+ }
3847
+ __name(trapezoidalPentagon, "trapezoidalPentagon");
3848
+ async function triangle(St, lr) {
3849
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3850
+ lr.labelStyle = ur;
3851
+ let { shapeSvg: pr, bbox: mr, label: hr } = await labelHelper(St, lr, getNodeClasses(lr)), gr = evaluate(getConfig2().flowchart?.htmlLabels), _r = mr.width + (lr.padding ?? 0), vr = _r + mr.height, yr = _r + mr.height, xr = [
3852
+ {
3853
+ x: 0,
3854
+ y: 0
3855
+ },
3856
+ {
3857
+ x: yr,
3858
+ y: 0
3859
+ },
3860
+ {
3861
+ x: yr / 2,
3862
+ y: -vr
3863
+ }
3864
+ ], { cssStyles: Cr } = lr, wr = at.svg(pr), Tr = userNodeOverrides(lr, {});
3865
+ lr.look !== "handDrawn" && (Tr.roughness = 0, Tr.fillStyle = "solid");
3866
+ let Er = createPathFromPoints(xr), Dr = wr.path(Er, Tr), Ar = pr.insert(() => Dr, ":first-child").attr("transform", `translate(${-vr / 2}, ${vr / 2})`);
3867
+ return Cr && lr.look !== "handDrawn" && Ar.selectChildren("path").attr("style", Cr), dr && lr.look !== "handDrawn" && Ar.selectChildren("path").attr("style", dr), lr.width = _r, lr.height = vr, updateNodeBounds(lr, Ar), hr.attr("transform", `translate(${-mr.width / 2 - (mr.x - (mr.left ?? 0))}, ${vr / 2 - (mr.height + (lr.padding ?? 0) / (gr ? 2 : 1) - (mr.y - (mr.top ?? 0)))})`), lr.intersect = function(St) {
3868
+ return log.info("Triangle intersect", lr, xr, St), intersect_default.polygon(lr, xr, St);
3869
+ }, pr;
3870
+ }
3871
+ __name(triangle, "triangle");
3872
+ async function waveEdgedRectangle(St, lr) {
3873
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3874
+ lr.labelStyle = ur;
3875
+ let { shapeSvg: fr, bbox: pr, label: mr } = await labelHelper(St, lr, getNodeClasses(lr)), hr = Math.max(pr.width + (lr.padding ?? 0) * 2, lr?.width ?? 0), gr = Math.max(pr.height + (lr.padding ?? 0) * 2, lr?.height ?? 0), _r = gr / 8, vr = gr + _r, { cssStyles: yr } = lr, br = 70 - hr, xr = br > 0 ? br / 2 : 0, Sr = at.svg(fr), Cr = userNodeOverrides(lr, {});
3876
+ lr.look !== "handDrawn" && (Cr.roughness = 0, Cr.fillStyle = "solid");
3877
+ let wr = [
3878
+ {
3879
+ x: -hr / 2 - xr,
3880
+ y: vr / 2
3881
+ },
3882
+ ...generateFullSineWavePoints(-hr / 2 - xr, vr / 2, hr / 2 + xr, vr / 2, _r, .8),
3883
+ {
3884
+ x: hr / 2 + xr,
3885
+ y: -vr / 2
3886
+ },
3887
+ {
3888
+ x: -hr / 2 - xr,
3889
+ y: -vr / 2
3890
+ }
3891
+ ], Tr = createPathFromPoints(wr), Er = Sr.path(Tr, Cr), Dr = fr.insert(() => Er, ":first-child");
3892
+ return Dr.attr("class", "basic label-container"), yr && lr.look !== "handDrawn" && Dr.selectAll("path").attr("style", yr), dr && lr.look !== "handDrawn" && Dr.selectAll("path").attr("style", dr), Dr.attr("transform", `translate(0,${-_r / 2})`), mr.attr("transform", `translate(${-hr / 2 + (lr.padding ?? 0) - (pr.x - (pr.left ?? 0))},${-gr / 2 + (lr.padding ?? 0) - _r - (pr.y - (pr.top ?? 0))})`), updateNodeBounds(lr, Dr), lr.intersect = function(St) {
3893
+ return intersect_default.polygon(lr, wr, St);
3894
+ }, fr;
3895
+ }
3896
+ __name(waveEdgedRectangle, "waveEdgedRectangle");
3897
+ async function waveRectangle(St, lr) {
3898
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3899
+ lr.labelStyle = ur;
3900
+ let { shapeSvg: fr, bbox: pr } = await labelHelper(St, lr, getNodeClasses(lr)), mr = Math.max(pr.width + (lr.padding ?? 0) * 2, lr?.width ?? 0), hr = Math.max(pr.height + (lr.padding ?? 0) * 2, lr?.height ?? 0), gr = mr / hr, _r = mr, vr = hr;
3901
+ _r > vr * gr ? vr = _r / gr : _r = vr * gr, _r = Math.max(_r, 100), vr = Math.max(vr, 50);
3902
+ let yr = Math.min(vr * .2, vr / 4), br = vr + yr * 2, { cssStyles: xr } = lr, Sr = at.svg(fr), Cr = userNodeOverrides(lr, {});
3903
+ lr.look !== "handDrawn" && (Cr.roughness = 0, Cr.fillStyle = "solid");
3904
+ let wr = [
3905
+ {
3906
+ x: -_r / 2,
3907
+ y: br / 2
3908
+ },
3909
+ ...generateFullSineWavePoints(-_r / 2, br / 2, _r / 2, br / 2, yr, 1),
3910
+ {
3911
+ x: _r / 2,
3912
+ y: -br / 2
3913
+ },
3914
+ ...generateFullSineWavePoints(_r / 2, -br / 2, -_r / 2, -br / 2, yr, -1)
3915
+ ], Tr = createPathFromPoints(wr), Er = Sr.path(Tr, Cr), Dr = fr.insert(() => Er, ":first-child");
3916
+ return Dr.attr("class", "basic label-container"), xr && lr.look !== "handDrawn" && Dr.selectAll("path").attr("style", xr), dr && lr.look !== "handDrawn" && Dr.selectAll("path").attr("style", dr), updateNodeBounds(lr, Dr), lr.intersect = function(St) {
3917
+ return intersect_default.polygon(lr, wr, St);
3918
+ }, fr;
3919
+ }
3920
+ __name(waveRectangle, "waveRectangle");
3921
+ async function windowPane(St, lr) {
3922
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
3923
+ lr.labelStyle = ur;
3924
+ let { shapeSvg: fr, bbox: pr, label: mr } = await labelHelper(St, lr, getNodeClasses(lr)), hr = Math.max(pr.width + (lr.padding ?? 0) * 2, lr?.width ?? 0), gr = Math.max(pr.height + (lr.padding ?? 0) * 2, lr?.height ?? 0), _r = -hr / 2, vr = -gr / 2, { cssStyles: yr } = lr, br = at.svg(fr), xr = userNodeOverrides(lr, {}), Sr = [
3925
+ {
3926
+ x: _r - 5,
3927
+ y: vr - 5
3928
+ },
3929
+ {
3930
+ x: _r - 5,
3931
+ y: vr + gr
3932
+ },
3933
+ {
3934
+ x: _r + hr,
3935
+ y: vr + gr
3936
+ },
3937
+ {
3938
+ x: _r + hr,
3939
+ y: vr - 5
3940
+ }
3941
+ ], Cr = `M${_r - 5},${vr - 5} L${_r + hr},${vr - 5} L${_r + hr},${vr + gr} L${_r - 5},${vr + gr} L${_r - 5},${vr - 5}
3942
+ M${_r - 5},${vr} L${_r + hr},${vr}
3943
+ M${_r},${vr - 5} L${_r},${vr + gr}`;
3944
+ lr.look !== "handDrawn" && (xr.roughness = 0, xr.fillStyle = "solid");
3945
+ let wr = br.path(Cr, xr), Tr = fr.insert(() => wr, ":first-child");
3946
+ return Tr.attr("transform", `translate(${5 / 2}, ${5 / 2})`), Tr.attr("class", "basic label-container"), yr && lr.look !== "handDrawn" && Tr.selectAll("path").attr("style", yr), dr && lr.look !== "handDrawn" && Tr.selectAll("path").attr("style", dr), mr.attr("transform", `translate(${-(pr.width / 2) + 5 / 2 - (pr.x - (pr.left ?? 0))}, ${-(pr.height / 2) + 5 / 2 - (pr.y - (pr.top ?? 0))})`), updateNodeBounds(lr, Tr), lr.intersect = function(St) {
3947
+ return intersect_default.polygon(lr, Sr, St);
3948
+ }, fr;
3949
+ }
3950
+ __name(windowPane, "windowPane");
3951
+ async function erBox(St, lr) {
3952
+ let dr = lr;
3953
+ if (dr.alias && (lr.label = dr.alias), lr.look === "handDrawn") {
3954
+ let { themeVariables: ur } = getConfig(), { background: dr } = ur;
3955
+ await erBox(St, {
3956
+ ...lr,
3957
+ id: lr.id + "-background",
3958
+ look: "default",
3959
+ cssStyles: ["stroke: none", `fill: ${dr}`]
3960
+ });
3961
+ }
3962
+ let fr = getConfig();
3963
+ lr.useHtmlLabels = fr.htmlLabels;
3964
+ let pr = fr.er?.diagramPadding ?? 10, hr = fr.er?.entityPadding ?? 6, { cssStyles: gr } = lr, { labelStyles: _r, nodeStyles: vr } = styles2String(lr);
3965
+ if (dr.attributes.length === 0 && lr.label) {
3966
+ let dr = {
3967
+ rx: 0,
3968
+ ry: 0,
3969
+ labelPaddingX: pr,
3970
+ labelPaddingY: pr * 1.5,
3971
+ classes: ""
3972
+ };
3973
+ calculateTextWidth(lr.label, fr) + dr.labelPaddingX * 2 < fr.er.minEntityWidth && (lr.width = fr.er.minEntityWidth);
3974
+ let mr = await drawRect(St, lr, dr);
3975
+ if (!evaluate(fr.htmlLabels)) {
3976
+ let St = mr.select("text"), lr = St.node()?.getBBox();
3977
+ St.attr("transform", `translate(${-lr.width / 2}, 0)`);
3978
+ }
3979
+ return mr;
3980
+ }
3981
+ fr.htmlLabels || (pr *= 1.25, hr *= 1.25);
3982
+ let yr = getNodeClasses(lr);
3983
+ yr ||= "node default";
3984
+ let br = St.insert("g").attr("class", yr).attr("id", lr.domId || lr.id), xr = await addText(br, lr.label ?? "", fr, 0, 0, ["name"], _r);
3985
+ xr.height += hr;
3986
+ let Cr = 0, Tr = [], Er = [], Dr = 0, Ar = 0, jr = 0, Mr = 0, Nr = !0, Pr = !0;
3987
+ for (let St of dr.attributes) {
3988
+ let lr = await addText(br, St.type, fr, 0, Cr, ["attribute-type"], _r);
3989
+ Dr = Math.max(Dr, lr.width + pr);
3990
+ let ur = await addText(br, St.name, fr, 0, Cr, ["attribute-name"], _r);
3991
+ Ar = Math.max(Ar, ur.width + pr);
3992
+ let dr = await addText(br, St.keys.join(), fr, 0, Cr, ["attribute-keys"], _r);
3993
+ jr = Math.max(jr, dr.width + pr);
3994
+ let mr = await addText(br, St.comment, fr, 0, Cr, ["attribute-comment"], _r);
3995
+ Mr = Math.max(Mr, mr.width + pr);
3996
+ let gr = Math.max(lr.height, ur.height, dr.height, mr.height) + hr;
3997
+ Er.push({
3998
+ yOffset: Cr,
3999
+ rowHeight: gr
4000
+ }), Cr += gr;
4001
+ }
4002
+ let Fr = 4;
4003
+ jr <= pr && (Nr = !1, jr = 0, Fr--), Mr <= pr && (Pr = !1, Mr = 0, Fr--);
4004
+ let Ir = br.node().getBBox();
4005
+ if (xr.width + pr * 2 - (Dr + Ar + jr + Mr) > 0) {
4006
+ let St = xr.width + pr * 2 - (Dr + Ar + jr + Mr);
4007
+ Dr += St / Fr, Ar += St / Fr, jr > 0 && (jr += St / Fr), Mr > 0 && (Mr += St / Fr);
4008
+ }
4009
+ let Lr = Dr + Ar + jr + Mr, Rr = at.svg(br), zr = userNodeOverrides(lr, {});
4010
+ lr.look !== "handDrawn" && (zr.roughness = 0, zr.fillStyle = "solid");
4011
+ let Br = 0;
4012
+ Er.length > 0 && (Br = Er.reduce((St, lr) => St + (lr?.rowHeight ?? 0), 0));
4013
+ let Vr = Math.max(Ir.width + pr * 2, lr?.width || 0, Lr), Hr = Math.max((Br ?? 0) + xr.height, lr?.height || 0), Ur = -Vr / 2, Wr = -Hr / 2;
4014
+ br.selectAll("g:not(:first-child)").each((St, lr, ur) => {
4015
+ let dr = select_default(ur[lr]), fr = dr.attr("transform"), gr = 0, _r = 0;
4016
+ if (fr) {
4017
+ let St = RegExp(/translate\(([^,]+),([^)]+)\)/).exec(fr);
4018
+ St && (gr = parseFloat(St[1]), _r = parseFloat(St[2]), dr.attr("class").includes("attribute-name") ? gr += Dr : dr.attr("class").includes("attribute-keys") ? gr += Dr + Ar : dr.attr("class").includes("attribute-comment") && (gr += Dr + Ar + jr));
4019
+ }
4020
+ dr.attr("transform", `translate(${Ur + pr / 2 + gr}, ${_r + Wr + xr.height + hr / 2})`);
4021
+ }), br.select(".name").attr("transform", "translate(" + -xr.width / 2 + ", " + (Wr + hr / 2) + ")");
4022
+ let Gr = Rr.rectangle(Ur, Wr, Vr, Hr, zr), Kr = br.insert(() => Gr, ":first-child").attr("style", gr.join("")), { themeVariables: qr } = getConfig(), { rowEven: Jr, rowOdd: Yr, nodeBorder: Xr } = qr;
4023
+ Tr.push(0);
4024
+ for (let [St, lr] of Er.entries()) {
4025
+ let ur = (St + 1) % 2 == 0 && lr.yOffset !== 0, dr = Rr.rectangle(Ur, xr.height + Wr + lr?.yOffset, Vr, lr?.rowHeight, {
4026
+ ...zr,
4027
+ fill: ur ? Jr : Yr,
4028
+ stroke: Xr
4029
+ });
4030
+ br.insert(() => dr, "g.label").attr("style", gr.join("")).attr("class", `row-rect-${ur ? "even" : "odd"}`);
4031
+ }
4032
+ let Zr = Rr.line(Ur, xr.height + Wr, Vr + Ur, xr.height + Wr, zr);
4033
+ br.insert(() => Zr).attr("class", "divider"), Zr = Rr.line(Dr + Ur, xr.height + Wr, Dr + Ur, Hr + Wr, zr), br.insert(() => Zr).attr("class", "divider"), Nr && (Zr = Rr.line(Dr + Ar + Ur, xr.height + Wr, Dr + Ar + Ur, Hr + Wr, zr), br.insert(() => Zr).attr("class", "divider")), Pr && (Zr = Rr.line(Dr + Ar + jr + Ur, xr.height + Wr, Dr + Ar + jr + Ur, Hr + Wr, zr), br.insert(() => Zr).attr("class", "divider"));
4034
+ for (let St of Tr) Zr = Rr.line(Ur, xr.height + Wr + St, Vr + Ur, xr.height + Wr + St, zr), br.insert(() => Zr).attr("class", "divider");
4035
+ if (updateNodeBounds(lr, Kr), vr && lr.look !== "handDrawn") {
4036
+ let St = vr.split(";")?.filter((St) => St.includes("stroke"))?.map((St) => `${St}`).join("; ");
4037
+ br.selectAll("path").attr("style", St ?? ""), br.selectAll(".row-rect-even path").attr("style", vr);
4038
+ }
4039
+ return lr.intersect = function(St) {
4040
+ return intersect_default.rect(lr, St);
4041
+ }, br;
4042
+ }
4043
+ __name(erBox, "erBox");
4044
+ async function addText(St, lr, dr, fr = 0, pr = 0, gr = [], _r = "") {
4045
+ let vr = St.insert("g").attr("class", `label ${gr.join(" ")}`).attr("transform", `translate(${fr}, ${pr})`).attr("style", _r);
4046
+ lr !== parseGenericTypes(lr) && (lr = parseGenericTypes(lr), lr = lr.replaceAll("<", "&lt;").replaceAll(">", "&gt;"));
4047
+ let yr = vr.node().appendChild(await createText(vr, lr, {
4048
+ width: calculateTextWidth(lr, dr) + 100,
4049
+ style: _r,
4050
+ useHtmlLabels: dr.htmlLabels
4051
+ }, dr));
4052
+ if (lr.includes("&lt;") || lr.includes("&gt;")) {
4053
+ let St = yr.children[0];
4054
+ for (St.textContent = St.textContent.replaceAll("&lt;", "<").replaceAll("&gt;", ">"); St.childNodes[0];) St = St.childNodes[0], St.textContent = St.textContent.replaceAll("&lt;", "<").replaceAll("&gt;", ">");
4055
+ }
4056
+ let br = yr.getBBox();
4057
+ if (evaluate(dr.htmlLabels)) {
4058
+ let St = yr.children[0];
4059
+ St.style.textAlign = "start";
4060
+ let lr = select_default(yr);
4061
+ br = St.getBoundingClientRect(), lr.attr("width", br.width), lr.attr("height", br.height);
4062
+ }
4063
+ return br;
4064
+ }
4065
+ __name(addText, "addText");
4066
+ async function textHelper(St, lr, ur, dr, fr = ur.class.padding ?? 12) {
4067
+ let pr = dr ? 0 : 3, mr = St.insert("g").attr("class", getNodeClasses(lr)).attr("id", lr.domId || lr.id), hr = null, gr = null, _r = null, vr = null, yr = 0, br = 0, xr = 0;
4068
+ if (hr = mr.insert("g").attr("class", "annotation-group text"), lr.annotations.length > 0) {
4069
+ let St = lr.annotations[0];
4070
+ await addText2(hr, { text: `\xAB${St}\xBB` }, 0), yr = hr.node().getBBox().height;
4071
+ }
4072
+ gr = mr.insert("g").attr("class", "label-group text"), await addText2(gr, lr, 0, ["font-weight: bolder"]);
4073
+ let Sr = gr.node().getBBox();
4074
+ br = Sr.height, _r = mr.insert("g").attr("class", "members-group text");
4075
+ let Cr = 0;
4076
+ for (let St of lr.members) {
4077
+ let lr = await addText2(_r, St, Cr, [St.parseClassifier()]);
4078
+ Cr += lr + pr;
4079
+ }
4080
+ xr = _r.node().getBBox().height, xr <= 0 && (xr = fr / 2), vr = mr.insert("g").attr("class", "methods-group text");
4081
+ let wr = 0;
4082
+ for (let St of lr.methods) {
4083
+ let lr = await addText2(vr, St, wr, [St.parseClassifier()]);
4084
+ wr += lr + pr;
4085
+ }
4086
+ let Tr = mr.node().getBBox();
4087
+ if (hr !== null) {
4088
+ let St = hr.node().getBBox();
4089
+ hr.attr("transform", `translate(${-St.width / 2})`);
4090
+ }
4091
+ return gr.attr("transform", `translate(${-Sr.width / 2}, ${yr})`), Tr = mr.node().getBBox(), _r.attr("transform", `translate(0, ${yr + br + fr * 2})`), Tr = mr.node().getBBox(), vr.attr("transform", `translate(0, ${yr + br + (xr ? xr + fr * 4 : fr * 2)})`), Tr = mr.node().getBBox(), {
4092
+ shapeSvg: mr,
4093
+ bbox: Tr
4094
+ };
4095
+ }
4096
+ __name(textHelper, "textHelper");
4097
+ async function addText2(lr, dr, fr, hr = []) {
4098
+ let gr = lr.insert("g").attr("class", "label").attr("style", hr.join("; ")), vr = getConfig(), br = "useHtmlLabels" in dr ? dr.useHtmlLabels : evaluate(vr.htmlLabels) ?? !0, xr = "";
4099
+ xr = "text" in dr ? dr.text : dr.label, !br && xr.startsWith("\\") && (xr = xr.substring(1)), hasKatex(xr) && (br = !0);
4100
+ let Cr = await createText(gr, sanitizeText3(decodeEntities(xr)), {
4101
+ width: calculateTextWidth(xr, vr) + 50,
4102
+ classes: "markdown-node-label",
4103
+ useHtmlLabels: br
4104
+ }, vr), Er, Dr = 1;
4105
+ if (br) {
4106
+ let St = Cr.children[0], lr = select_default(Cr);
4107
+ Dr = St.innerHTML.split("<br>").length, St.innerHTML.includes("</math>") && (Dr += St.innerHTML.split("<mrow>").length - 1);
4108
+ let ur = St.getElementsByTagName("img");
4109
+ if (ur) {
4110
+ let St = xr.replace(/<img[^>]*>/g, "").trim() === "";
4111
+ await Promise.all([...ur].map((lr) => new Promise((ur) => {
4112
+ function dr() {
4113
+ if (lr.style.display = "flex", lr.style.flexDirection = "column", St) {
4114
+ let St = vr.fontSize?.toString() ?? window.getComputedStyle(document.body).fontSize, ur = parseInt(St, 10) * 5 + "px";
4115
+ lr.style.minWidth = ur, lr.style.maxWidth = ur;
4116
+ } else lr.style.width = "100%";
4117
+ ur(lr);
4118
+ }
4119
+ __name(dr, "setupImage"), setTimeout(() => {
4120
+ lr.complete && dr();
4121
+ }), lr.addEventListener("error", dr), lr.addEventListener("load", dr);
4122
+ })));
4123
+ }
4124
+ Er = St.getBoundingClientRect(), lr.attr("width", Er.width), lr.attr("height", Er.height);
4125
+ } else {
4126
+ hr.includes("font-weight: bolder") && select_default(Cr).selectAll("tspan").attr("font-weight", ""), Dr = Cr.children.length;
4127
+ let St = Cr.children[0];
4128
+ (Cr.textContent === "" || Cr.textContent.includes("&gt")) && (St.textContent = xr[0] + xr.substring(1).replaceAll("&gt;", ">").replaceAll("&lt;", "<").trim(), xr[1] === " " && (St.textContent = St.textContent[0] + " " + St.textContent.substring(1))), St.textContent === "undefined" && (St.textContent = ""), Er = Cr.getBBox();
4129
+ }
4130
+ return gr.attr("transform", "translate(0," + (-Er.height / (2 * Dr) + fr) + ")"), Er.height;
4131
+ }
4132
+ __name(addText2, "addText");
4133
+ async function classBox(St, lr) {
4134
+ let ur = getConfig2(), dr = ur.class.padding ?? 12, fr = dr, pr = lr.useHtmlLabels ?? evaluate(ur.htmlLabels) ?? !0, hr = lr;
4135
+ hr.annotations = hr.annotations ?? [], hr.members = hr.members ?? [], hr.methods = hr.methods ?? [];
4136
+ let { shapeSvg: gr, bbox: _r } = await textHelper(St, lr, ur, pr, fr), { labelStyles: vr, nodeStyles: yr } = styles2String(lr);
4137
+ lr.labelStyle = vr, lr.cssStyles = hr.styles || "";
4138
+ let xr = hr.styles?.join(";") || yr || "";
4139
+ lr.cssStyles ||= xr.replaceAll("!important", "").split(";");
4140
+ let Cr = hr.members.length === 0 && hr.methods.length === 0 && !ur.class?.hideEmptyMembersBox, wr = at.svg(gr), Tr = userNodeOverrides(lr, {});
4141
+ lr.look !== "handDrawn" && (Tr.roughness = 0, Tr.fillStyle = "solid");
4142
+ let Er = _r.width, Dr = _r.height;
4143
+ hr.members.length === 0 && hr.methods.length === 0 ? Dr += fr : hr.members.length > 0 && hr.methods.length === 0 && (Dr += fr * 2);
4144
+ let Ar = -Er / 2, jr = -Dr / 2, Mr = wr.rectangle(Ar - dr, jr - dr - (Cr ? dr : hr.members.length === 0 && hr.methods.length === 0 ? -dr / 2 : 0), Er + 2 * dr, Dr + 2 * dr + (Cr ? dr * 2 : hr.members.length === 0 && hr.methods.length === 0 ? -dr : 0), Tr), Nr = gr.insert(() => Mr, ":first-child");
4145
+ Nr.attr("class", "basic label-container");
4146
+ let Pr = Nr.node().getBBox();
4147
+ gr.selectAll(".text").each((St, lr, ur) => {
4148
+ let fr = select_default(ur[lr]), _r = fr.attr("transform"), vr = 0;
4149
+ if (_r) {
4150
+ let St = RegExp(/translate\(([^,]+),([^)]+)\)/).exec(_r);
4151
+ St && (vr = parseFloat(St[2]));
4152
+ }
4153
+ let yr = vr + jr + dr - (Cr ? dr : hr.members.length === 0 && hr.methods.length === 0 ? -dr / 2 : 0);
4154
+ pr || (yr -= 4);
4155
+ let br = Ar;
4156
+ (fr.attr("class").includes("label-group") || fr.attr("class").includes("annotation-group")) && (br = -fr.node()?.getBBox().width / 2 || 0, gr.selectAll("text").each(function(St, lr, ur) {
4157
+ window.getComputedStyle(ur[lr]).textAnchor === "middle" && (br = 0);
4158
+ })), fr.attr("transform", `translate(${br}, ${yr})`);
4159
+ });
4160
+ let Fr = gr.select(".annotation-group").node().getBBox().height - (Cr ? dr / 2 : 0) || 0, Ir = gr.select(".label-group").node().getBBox().height - (Cr ? dr / 2 : 0) || 0, Lr = gr.select(".members-group").node().getBBox().height - (Cr ? dr / 2 : 0) || 0;
4161
+ if (hr.members.length > 0 || hr.methods.length > 0 || Cr) {
4162
+ let St = wr.line(Pr.x, Fr + Ir + jr + dr, Pr.x + Pr.width, Fr + Ir + jr + dr, Tr);
4163
+ gr.insert(() => St).attr("class", "divider").attr("style", xr);
4164
+ }
4165
+ if (Cr || hr.members.length > 0 || hr.methods.length > 0) {
4166
+ let St = wr.line(Pr.x, Fr + Ir + Lr + jr + fr * 2 + dr, Pr.x + Pr.width, Fr + Ir + Lr + jr + dr + fr * 2, Tr);
4167
+ gr.insert(() => St).attr("class", "divider").attr("style", xr);
4168
+ }
4169
+ if (hr.look !== "handDrawn" && gr.selectAll("path").attr("style", xr), Nr.select(":nth-child(2)").attr("style", xr), gr.selectAll(".divider").select("path").attr("style", xr), lr.labelStyle ? gr.selectAll("span").attr("style", lr.labelStyle) : gr.selectAll("span").attr("style", xr), !pr) {
4170
+ let St = RegExp(/color\s*:\s*([^;]*)/), lr = St.exec(xr);
4171
+ if (lr) {
4172
+ let St = lr[0].replace("color", "fill");
4173
+ gr.selectAll("tspan").attr("style", St);
4174
+ } else if (vr) {
4175
+ let lr = St.exec(vr);
4176
+ if (lr) {
4177
+ let St = lr[0].replace("color", "fill");
4178
+ gr.selectAll("tspan").attr("style", St);
4179
+ }
4180
+ }
4181
+ }
4182
+ return updateNodeBounds(lr, Nr), lr.intersect = function(St) {
4183
+ return intersect_default.rect(lr, St);
4184
+ }, gr;
4185
+ }
4186
+ __name(classBox, "classBox");
4187
+ async function requirementBox(St, lr) {
4188
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
4189
+ lr.labelStyle = ur;
4190
+ let fr = lr, pr = lr, hr = "verifyMethod" in lr, gr = getNodeClasses(lr), _r = St.insert("g").attr("class", gr).attr("id", lr.domId ?? lr.id), vr;
4191
+ vr = hr ? await addText3(_r, `&lt;&lt;${fr.type}&gt;&gt;`, 0, lr.labelStyle) : await addText3(_r, "&lt;&lt;Element&gt;&gt;", 0, lr.labelStyle);
4192
+ let yr = vr, br = await addText3(_r, fr.name, yr, lr.labelStyle + "; font-weight: bold;");
4193
+ if (yr += br + 20, hr) {
4194
+ let St = await addText3(_r, `${fr.requirementId ? `ID: ${fr.requirementId}` : ""}`, yr, lr.labelStyle);
4195
+ yr += St;
4196
+ let ur = await addText3(_r, `${fr.text ? `Text: ${fr.text}` : ""}`, yr, lr.labelStyle);
4197
+ yr += ur;
4198
+ let dr = await addText3(_r, `${fr.risk ? `Risk: ${fr.risk}` : ""}`, yr, lr.labelStyle);
4199
+ yr += dr, await addText3(_r, `${fr.verifyMethod ? `Verification: ${fr.verifyMethod}` : ""}`, yr, lr.labelStyle);
4200
+ } else {
4201
+ let St = await addText3(_r, `${pr.type ? `Type: ${pr.type}` : ""}`, yr, lr.labelStyle);
4202
+ yr += St, await addText3(_r, `${pr.docRef ? `Doc Ref: ${pr.docRef}` : ""}`, yr, lr.labelStyle);
4203
+ }
4204
+ let xr = (_r.node()?.getBBox().width ?? 200) + 20, Sr = (_r.node()?.getBBox().height ?? 200) + 20, Cr = -xr / 2, wr = -Sr / 2, Tr = at.svg(_r), Er = userNodeOverrides(lr, {});
4205
+ lr.look !== "handDrawn" && (Er.roughness = 0, Er.fillStyle = "solid");
4206
+ let Dr = Tr.rectangle(Cr, wr, xr, Sr, Er), Ar = _r.insert(() => Dr, ":first-child");
4207
+ if (Ar.attr("class", "basic label-container").attr("style", dr), _r.selectAll(".label").each((St, lr, ur) => {
4208
+ let dr = select_default(ur[lr]), fr = dr.attr("transform"), pr = 0, hr = 0;
4209
+ if (fr) {
4210
+ let St = RegExp(/translate\(([^,]+),([^)]+)\)/).exec(fr);
4211
+ St && (pr = parseFloat(St[1]), hr = parseFloat(St[2]));
4212
+ }
4213
+ let gr = hr - Sr / 2, _r = Cr + 20 / 2;
4214
+ (lr === 0 || lr === 1) && (_r = pr), dr.attr("transform", `translate(${_r}, ${gr + 20})`);
4215
+ }), yr > vr + br + 20) {
4216
+ let St = Tr.line(Cr, wr + vr + br + 20, Cr + xr, wr + vr + br + 20, Er);
4217
+ _r.insert(() => St).attr("style", dr);
4218
+ }
4219
+ return updateNodeBounds(lr, Ar), lr.intersect = function(St) {
4220
+ return intersect_default.rect(lr, St);
4221
+ }, _r;
4222
+ }
4223
+ __name(requirementBox, "requirementBox");
4224
+ async function addText3(lr, dr, fr, pr = "") {
4225
+ if (dr === "") return 0;
4226
+ let hr = lr.insert("g").attr("class", "label").attr("style", pr), gr = getConfig2(), vr = gr.htmlLabels ?? !0, yr = await createText(hr, sanitizeText3(decodeEntities(dr)), {
4227
+ width: calculateTextWidth(dr, gr) + 50,
4228
+ classes: "markdown-node-label",
4229
+ useHtmlLabels: vr,
4230
+ style: pr
4231
+ }, gr), xr;
4232
+ if (vr) {
4233
+ let St = yr.children[0], lr = select_default(yr);
4234
+ xr = St.getBoundingClientRect(), lr.attr("width", xr.width), lr.attr("height", xr.height);
4235
+ } else {
4236
+ let St = yr.children[0];
4237
+ for (let lr of St.children) lr.textContent = lr.textContent.replaceAll("&gt;", ">").replaceAll("&lt;", "<"), pr && lr.setAttribute("style", pr);
4238
+ xr = yr.getBBox(), xr.height += 6;
4239
+ }
4240
+ return hr.attr("transform", `translate(${-xr.width / 2},${-xr.height / 2 + fr})`), xr.height;
4241
+ }
4242
+ __name(addText3, "addText");
4243
+ var colorFromPriority = /* @__PURE__ */ __name((St) => {
4244
+ switch (St) {
4245
+ case "Very High": return "red";
4246
+ case "High": return "orange";
4247
+ case "Medium": return null;
4248
+ case "Low": return "blue";
4249
+ case "Very Low": return "lightblue";
4250
+ }
4251
+ }, "colorFromPriority");
4252
+ async function kanbanItem(St, lr, { config: ur }) {
4253
+ let { labelStyles: dr, nodeStyles: fr } = styles2String(lr);
4254
+ lr.labelStyle = dr || "";
4255
+ let pr = lr.width;
4256
+ lr.width = (lr.width ?? 200) - 10;
4257
+ let { shapeSvg: mr, bbox: hr, label: gr } = await labelHelper(St, lr, getNodeClasses(lr)), _r = lr.padding || 10, vr = "", yr;
4258
+ "ticket" in lr && lr.ticket && ur?.kanban?.ticketBaseUrl && (vr = ur?.kanban?.ticketBaseUrl.replace("#TICKET#", lr.ticket), yr = mr.insert("svg:a", ":first-child").attr("class", "kanban-ticket-link").attr("xlink:href", vr).attr("target", "_blank"));
4259
+ let br = {
4260
+ useHtmlLabels: lr.useHtmlLabels,
4261
+ labelStyle: lr.labelStyle || "",
4262
+ width: lr.width,
4263
+ img: lr.img,
4264
+ padding: lr.padding || 8,
4265
+ centerLabel: !1
4266
+ }, xr, Sr;
4267
+ yr ? {label: xr, bbox: Sr} = await insertLabel(yr, "ticket" in lr && lr.ticket || "", br) : {label: xr, bbox: Sr} = await insertLabel(mr, "ticket" in lr && lr.ticket || "", br);
4268
+ let { label: Cr, bbox: wr } = await insertLabel(mr, "assigned" in lr && lr.assigned || "", br);
4269
+ lr.width = pr;
4270
+ let Tr = lr?.width || 0, Er = Math.max(Sr.height, wr.height) / 2, Dr = Math.max(hr.height + 20, lr?.height || 0) + Er, Ar = -Tr / 2, jr = -Dr / 2;
4271
+ gr.attr("transform", "translate(" + (_r - Tr / 2) + ", " + (-Er - hr.height / 2) + ")"), xr.attr("transform", "translate(" + (_r - Tr / 2) + ", " + (-Er + hr.height / 2) + ")"), Cr.attr("transform", "translate(" + (_r + Tr / 2 - wr.width - 20) + ", " + (-Er + hr.height / 2) + ")");
4272
+ let Mr, { rx: Nr, ry: Pr } = lr, { cssStyles: Fr } = lr;
4273
+ if (lr.look === "handDrawn") {
4274
+ let St = at.svg(mr), ur = userNodeOverrides(lr, {}), dr = Nr || Pr ? St.path(createRoundedRectPathD(Ar, jr, Tr, Dr, Nr || 0), ur) : St.rectangle(Ar, jr, Tr, Dr, ur);
4275
+ Mr = mr.insert(() => dr, ":first-child"), Mr.attr("class", "basic label-container").attr("style", Fr || null);
4276
+ } else {
4277
+ Mr = mr.insert("rect", ":first-child"), Mr.attr("class", "basic label-container __APA__").attr("style", fr).attr("rx", Nr ?? 5).attr("ry", Pr ?? 5).attr("x", Ar).attr("y", jr).attr("width", Tr).attr("height", Dr);
4278
+ let St = "priority" in lr && lr.priority;
4279
+ if (St) {
4280
+ let lr = mr.append("line"), ur = Ar + 2, dr = jr + Math.floor((Nr ?? 0) / 2), fr = jr + Dr - Math.floor((Nr ?? 0) / 2);
4281
+ lr.attr("x1", ur).attr("y1", dr).attr("x2", ur).attr("y2", fr).attr("stroke-width", "4").attr("stroke", colorFromPriority(St));
4282
+ }
4283
+ }
4284
+ return updateNodeBounds(lr, Mr), lr.height = Dr, lr.intersect = function(St) {
4285
+ return intersect_default.rect(lr, St);
4286
+ }, mr;
4287
+ }
4288
+ __name(kanbanItem, "kanbanItem");
4289
+ async function bang(St, lr) {
4290
+ let { labelStyles: ur, nodeStyles: pr } = styles2String(lr);
4291
+ lr.labelStyle = ur;
4292
+ let { shapeSvg: mr, bbox: hr, halfPadding: gr, label: _r } = await labelHelper(St, lr, getNodeClasses(lr)), vr = hr.width + 10 * gr, yr = hr.height + 8 * gr, br = .15 * vr, { cssStyles: xr } = lr, Sr = hr.width + 20, Cr = hr.height + 20, wr = Math.max(vr, Sr), Tr = Math.max(yr, Cr);
4293
+ _r.attr("transform", `translate(${-hr.width / 2}, ${-hr.height / 2})`);
4294
+ let Er, Dr = `M0 0
4295
+ a${br},${br} 1 0,0 ${wr * .25},${-1 * Tr * .1}
4296
+ a${br},${br} 1 0,0 ${wr * .25},0
4297
+ a${br},${br} 1 0,0 ${wr * .25},0
4298
+ a${br},${br} 1 0,0 ${wr * .25},${Tr * .1}
4299
+
4300
+ a${br},${br} 1 0,0 ${wr * .15},${Tr * .33}
4301
+ a${br * .8},${br * .8} 1 0,0 0,${Tr * .34}
4302
+ a${br},${br} 1 0,0 ${-1 * wr * .15},${Tr * .33}
4303
+
4304
+ a${br},${br} 1 0,0 ${-1 * wr * .25},${Tr * .15}
4305
+ a${br},${br} 1 0,0 ${-1 * wr * .25},0
4306
+ a${br},${br} 1 0,0 ${-1 * wr * .25},0
4307
+ a${br},${br} 1 0,0 ${-1 * wr * .25},${-1 * Tr * .15}
4308
+
4309
+ a${br},${br} 1 0,0 ${-1 * wr * .1},${-1 * Tr * .33}
4310
+ a${br * .8},${br * .8} 1 0,0 0,${-1 * Tr * .34}
4311
+ a${br},${br} 1 0,0 ${wr * .1},${-1 * Tr * .33}
4312
+ H0 V0 Z`;
4313
+ if (lr.look === "handDrawn") {
4314
+ let St = at.svg(mr), ur = userNodeOverrides(lr, {}), fr = St.path(Dr, ur);
4315
+ Er = mr.insert(() => fr, ":first-child"), Er.attr("class", "basic label-container").attr("style", handleUndefinedAttr(xr));
4316
+ } else Er = mr.insert("path", ":first-child").attr("class", "basic label-container").attr("style", pr).attr("d", Dr);
4317
+ return Er.attr("transform", `translate(${-wr / 2}, ${-Tr / 2})`), updateNodeBounds(lr, Er), lr.calcIntersect = function(St, lr) {
4318
+ return intersect_default.rect(St, lr);
4319
+ }, lr.intersect = function(St) {
4320
+ return log.info("Bang intersect", lr, St), intersect_default.rect(lr, St);
4321
+ }, mr;
4322
+ }
4323
+ __name(bang, "bang");
4324
+ async function cloud(St, lr) {
4325
+ let { labelStyles: ur, nodeStyles: pr } = styles2String(lr);
4326
+ lr.labelStyle = ur;
4327
+ let { shapeSvg: mr, bbox: hr, halfPadding: gr, label: _r } = await labelHelper(St, lr, getNodeClasses(lr)), vr = hr.width + 2 * gr, yr = hr.height + 2 * gr, br = .15 * vr, xr = .25 * vr, Sr = .35 * vr, Cr = .2 * vr, { cssStyles: wr } = lr, Tr, Er = `M0 0
4328
+ a${br},${br} 0 0,1 ${vr * .25},${-1 * vr * .1}
4329
+ a${Sr},${Sr} 1 0,1 ${vr * .4},${-1 * vr * .1}
4330
+ a${xr},${xr} 1 0,1 ${vr * .35},${vr * .2}
4331
+
4332
+ a${br},${br} 1 0,1 ${vr * .15},${yr * .35}
4333
+ a${Cr},${Cr} 1 0,1 ${-1 * vr * .15},${yr * .65}
4334
+
4335
+ a${xr},${br} 1 0,1 ${-1 * vr * .25},${vr * .15}
4336
+ a${Sr},${Sr} 1 0,1 ${-1 * vr * .5},0
4337
+ a${br},${br} 1 0,1 ${-1 * vr * .25},${-1 * vr * .15}
4338
+
4339
+ a${br},${br} 1 0,1 ${-1 * vr * .1},${-1 * yr * .35}
4340
+ a${Cr},${Cr} 1 0,1 ${vr * .1},${-1 * yr * .65}
4341
+ H0 V0 Z`;
4342
+ if (lr.look === "handDrawn") {
4343
+ let St = at.svg(mr), ur = userNodeOverrides(lr, {}), fr = St.path(Er, ur);
4344
+ Tr = mr.insert(() => fr, ":first-child"), Tr.attr("class", "basic label-container").attr("style", handleUndefinedAttr(wr));
4345
+ } else Tr = mr.insert("path", ":first-child").attr("class", "basic label-container").attr("style", pr).attr("d", Er);
4346
+ return _r.attr("transform", `translate(${-hr.width / 2}, ${-hr.height / 2})`), Tr.attr("transform", `translate(${-vr / 2}, ${-yr / 2})`), updateNodeBounds(lr, Tr), lr.calcIntersect = function(St, lr) {
4347
+ return intersect_default.rect(St, lr);
4348
+ }, lr.intersect = function(St) {
4349
+ return log.info("Cloud intersect", lr, St), intersect_default.rect(lr, St);
4350
+ }, mr;
4351
+ }
4352
+ __name(cloud, "cloud");
4353
+ async function defaultMindmapNode(St, lr) {
4354
+ let { labelStyles: ur, nodeStyles: dr } = styles2String(lr);
4355
+ lr.labelStyle = ur;
4356
+ let { shapeSvg: fr, bbox: pr, halfPadding: mr, label: hr } = await labelHelper(St, lr, getNodeClasses(lr)), gr = pr.width + 8 * mr, _r = pr.height + 2 * mr, vr = `
4357
+ M${-gr / 2} ${_r / 2 - 5}
4358
+ v${-_r + 10}
4359
+ q0,-5 5,-5
4360
+ h${gr - 10}
4361
+ q5,0 5,5
4362
+ v${_r - 10}
4363
+ q0,5 -5,5
4364
+ h${-gr + 10}
4365
+ q-5,0 -5,-5
4366
+ Z
4367
+ `, yr = fr.append("path").attr("id", "node-" + lr.id).attr("class", "node-bkg node-" + lr.type).attr("style", dr).attr("d", vr);
4368
+ return fr.append("line").attr("class", "node-line-").attr("x1", -gr / 2).attr("y1", _r / 2).attr("x2", gr / 2).attr("y2", _r / 2), hr.attr("transform", `translate(${-pr.width / 2}, ${-pr.height / 2})`), fr.append(() => hr.node()), updateNodeBounds(lr, yr), lr.calcIntersect = function(St, lr) {
4369
+ return intersect_default.rect(St, lr);
4370
+ }, lr.intersect = function(St) {
4371
+ return intersect_default.rect(lr, St);
4372
+ }, fr;
4373
+ }
4374
+ __name(defaultMindmapNode, "defaultMindmapNode");
4375
+ async function mindmapCircle(St, lr) {
4376
+ return circle(St, lr, { padding: lr.padding ?? 0 });
4377
+ }
4378
+ __name(mindmapCircle, "mindmapCircle");
4379
+ var shapesDefs = [
4380
+ {
4381
+ semanticName: "Process",
4382
+ name: "Rectangle",
4383
+ shortName: "rect",
4384
+ description: "Standard process shape",
4385
+ aliases: [
4386
+ "proc",
4387
+ "process",
4388
+ "rectangle"
4389
+ ],
4390
+ internalAliases: ["squareRect"],
4391
+ handler: squareRect2
4392
+ },
4393
+ {
4394
+ semanticName: "Event",
4395
+ name: "Rounded Rectangle",
4396
+ shortName: "rounded",
4397
+ description: "Represents an event",
4398
+ aliases: ["event"],
4399
+ internalAliases: ["roundedRect"],
4400
+ handler: roundedRect
4401
+ },
4402
+ {
4403
+ semanticName: "Terminal Point",
4404
+ name: "Stadium",
4405
+ shortName: "stadium",
4406
+ description: "Terminal point",
4407
+ aliases: ["terminal", "pill"],
4408
+ handler: stadium
4409
+ },
4410
+ {
4411
+ semanticName: "Subprocess",
4412
+ name: "Framed Rectangle",
4413
+ shortName: "fr-rect",
4414
+ description: "Subprocess",
4415
+ aliases: [
4416
+ "subprocess",
4417
+ "subproc",
4418
+ "framed-rectangle",
4419
+ "subroutine"
4420
+ ],
4421
+ handler: subroutine
4422
+ },
4423
+ {
4424
+ semanticName: "Database",
4425
+ name: "Cylinder",
4426
+ shortName: "cyl",
4427
+ description: "Database storage",
4428
+ aliases: [
4429
+ "db",
4430
+ "database",
4431
+ "cylinder"
4432
+ ],
4433
+ handler: cylinder
4434
+ },
4435
+ {
4436
+ semanticName: "Start",
4437
+ name: "Circle",
4438
+ shortName: "circle",
4439
+ description: "Starting point",
4440
+ aliases: ["circ"],
4441
+ handler: circle
4442
+ },
4443
+ {
4444
+ semanticName: "Bang",
4445
+ name: "Bang",
4446
+ shortName: "bang",
4447
+ description: "Bang",
4448
+ aliases: ["bang"],
4449
+ handler: bang
4450
+ },
4451
+ {
4452
+ semanticName: "Cloud",
4453
+ name: "Cloud",
4454
+ shortName: "cloud",
4455
+ description: "cloud",
4456
+ aliases: ["cloud"],
4457
+ handler: cloud
4458
+ },
4459
+ {
4460
+ semanticName: "Decision",
4461
+ name: "Diamond",
4462
+ shortName: "diam",
4463
+ description: "Decision-making step",
4464
+ aliases: [
4465
+ "decision",
4466
+ "diamond",
4467
+ "question"
4468
+ ],
4469
+ handler: question
4470
+ },
4471
+ {
4472
+ semanticName: "Prepare Conditional",
4473
+ name: "Hexagon",
4474
+ shortName: "hex",
4475
+ description: "Preparation or condition step",
4476
+ aliases: ["hexagon", "prepare"],
4477
+ handler: hexagon
4478
+ },
4479
+ {
4480
+ semanticName: "Data Input/Output",
4481
+ name: "Lean Right",
4482
+ shortName: "lean-r",
4483
+ description: "Represents input or output",
4484
+ aliases: ["lean-right", "in-out"],
4485
+ internalAliases: ["lean_right"],
4486
+ handler: lean_right
4487
+ },
4488
+ {
4489
+ semanticName: "Data Input/Output",
4490
+ name: "Lean Left",
4491
+ shortName: "lean-l",
4492
+ description: "Represents output or input",
4493
+ aliases: ["lean-left", "out-in"],
4494
+ internalAliases: ["lean_left"],
4495
+ handler: lean_left
4496
+ },
4497
+ {
4498
+ semanticName: "Priority Action",
4499
+ name: "Trapezoid Base Bottom",
4500
+ shortName: "trap-b",
4501
+ description: "Priority action",
4502
+ aliases: [
4503
+ "priority",
4504
+ "trapezoid-bottom",
4505
+ "trapezoid"
4506
+ ],
4507
+ handler: trapezoid
4508
+ },
4509
+ {
4510
+ semanticName: "Manual Operation",
4511
+ name: "Trapezoid Base Top",
4512
+ shortName: "trap-t",
4513
+ description: "Represents a manual task",
4514
+ aliases: [
4515
+ "manual",
4516
+ "trapezoid-top",
4517
+ "inv-trapezoid"
4518
+ ],
4519
+ internalAliases: ["inv_trapezoid"],
4520
+ handler: inv_trapezoid
4521
+ },
4522
+ {
4523
+ semanticName: "Stop",
4524
+ name: "Double Circle",
4525
+ shortName: "dbl-circ",
4526
+ description: "Represents a stop point",
4527
+ aliases: ["double-circle"],
4528
+ internalAliases: ["doublecircle"],
4529
+ handler: doublecircle
4530
+ },
4531
+ {
4532
+ semanticName: "Text Block",
4533
+ name: "Text Block",
4534
+ shortName: "text",
4535
+ description: "Text block",
4536
+ handler: text
4537
+ },
4538
+ {
4539
+ semanticName: "Card",
4540
+ name: "Notched Rectangle",
4541
+ shortName: "notch-rect",
4542
+ description: "Represents a card",
4543
+ aliases: ["card", "notched-rectangle"],
4544
+ handler: card
4545
+ },
4546
+ {
4547
+ semanticName: "Lined/Shaded Process",
4548
+ name: "Lined Rectangle",
4549
+ shortName: "lin-rect",
4550
+ description: "Lined process shape",
4551
+ aliases: [
4552
+ "lined-rectangle",
4553
+ "lined-process",
4554
+ "lin-proc",
4555
+ "shaded-process"
4556
+ ],
4557
+ handler: shadedProcess
4558
+ },
4559
+ {
4560
+ semanticName: "Start",
4561
+ name: "Small Circle",
4562
+ shortName: "sm-circ",
4563
+ description: "Small starting point",
4564
+ aliases: ["start", "small-circle"],
4565
+ internalAliases: ["stateStart"],
4566
+ handler: stateStart
4567
+ },
4568
+ {
4569
+ semanticName: "Stop",
4570
+ name: "Framed Circle",
4571
+ shortName: "fr-circ",
4572
+ description: "Stop point",
4573
+ aliases: ["stop", "framed-circle"],
4574
+ internalAliases: ["stateEnd"],
4575
+ handler: stateEnd
4576
+ },
4577
+ {
4578
+ semanticName: "Fork/Join",
4579
+ name: "Filled Rectangle",
4580
+ shortName: "fork",
4581
+ description: "Fork or join in process flow",
4582
+ aliases: ["join"],
4583
+ internalAliases: ["forkJoin"],
4584
+ handler: forkJoin
4585
+ },
4586
+ {
4587
+ semanticName: "Collate",
4588
+ name: "Hourglass",
4589
+ shortName: "hourglass",
4590
+ description: "Represents a collate operation",
4591
+ aliases: ["hourglass", "collate"],
4592
+ handler: hourglass
4593
+ },
4594
+ {
4595
+ semanticName: "Comment",
4596
+ name: "Curly Brace",
4597
+ shortName: "brace",
4598
+ description: "Adds a comment",
4599
+ aliases: ["comment", "brace-l"],
4600
+ handler: curlyBraceLeft
4601
+ },
4602
+ {
4603
+ semanticName: "Comment Right",
4604
+ name: "Curly Brace",
4605
+ shortName: "brace-r",
4606
+ description: "Adds a comment",
4607
+ handler: curlyBraceRight
4608
+ },
4609
+ {
4610
+ semanticName: "Comment with braces on both sides",
4611
+ name: "Curly Braces",
4612
+ shortName: "braces",
4613
+ description: "Adds a comment",
4614
+ handler: curlyBraces
4615
+ },
4616
+ {
4617
+ semanticName: "Com Link",
4618
+ name: "Lightning Bolt",
4619
+ shortName: "bolt",
4620
+ description: "Communication link",
4621
+ aliases: ["com-link", "lightning-bolt"],
4622
+ handler: lightningBolt
4623
+ },
4624
+ {
4625
+ semanticName: "Document",
4626
+ name: "Document",
4627
+ shortName: "doc",
4628
+ description: "Represents a document",
4629
+ aliases: ["doc", "document"],
4630
+ handler: waveEdgedRectangle
4631
+ },
4632
+ {
4633
+ semanticName: "Delay",
4634
+ name: "Half-Rounded Rectangle",
4635
+ shortName: "delay",
4636
+ description: "Represents a delay",
4637
+ aliases: ["half-rounded-rectangle"],
4638
+ handler: halfRoundedRectangle
4639
+ },
4640
+ {
4641
+ semanticName: "Direct Access Storage",
4642
+ name: "Horizontal Cylinder",
4643
+ shortName: "h-cyl",
4644
+ description: "Direct access storage",
4645
+ aliases: ["das", "horizontal-cylinder"],
4646
+ handler: tiltedCylinder
4647
+ },
4648
+ {
4649
+ semanticName: "Disk Storage",
4650
+ name: "Lined Cylinder",
4651
+ shortName: "lin-cyl",
4652
+ description: "Disk storage",
4653
+ aliases: ["disk", "lined-cylinder"],
4654
+ handler: linedCylinder
4655
+ },
4656
+ {
4657
+ semanticName: "Display",
4658
+ name: "Curved Trapezoid",
4659
+ shortName: "curv-trap",
4660
+ description: "Represents a display",
4661
+ aliases: ["curved-trapezoid", "display"],
4662
+ handler: curvedTrapezoid
4663
+ },
4664
+ {
4665
+ semanticName: "Divided Process",
4666
+ name: "Divided Rectangle",
4667
+ shortName: "div-rect",
4668
+ description: "Divided process shape",
4669
+ aliases: [
4670
+ "div-proc",
4671
+ "divided-rectangle",
4672
+ "divided-process"
4673
+ ],
4674
+ handler: dividedRectangle
4675
+ },
4676
+ {
4677
+ semanticName: "Extract",
4678
+ name: "Triangle",
4679
+ shortName: "tri",
4680
+ description: "Extraction process",
4681
+ aliases: ["extract", "triangle"],
4682
+ handler: triangle
4683
+ },
4684
+ {
4685
+ semanticName: "Internal Storage",
4686
+ name: "Window Pane",
4687
+ shortName: "win-pane",
4688
+ description: "Internal storage",
4689
+ aliases: ["internal-storage", "window-pane"],
4690
+ handler: windowPane
4691
+ },
4692
+ {
4693
+ semanticName: "Junction",
4694
+ name: "Filled Circle",
4695
+ shortName: "f-circ",
4696
+ description: "Junction point",
4697
+ aliases: ["junction", "filled-circle"],
4698
+ handler: filledCircle
4699
+ },
4700
+ {
4701
+ semanticName: "Loop Limit",
4702
+ name: "Trapezoidal Pentagon",
4703
+ shortName: "notch-pent",
4704
+ description: "Loop limit step",
4705
+ aliases: ["loop-limit", "notched-pentagon"],
4706
+ handler: trapezoidalPentagon
4707
+ },
4708
+ {
4709
+ semanticName: "Manual File",
4710
+ name: "Flipped Triangle",
4711
+ shortName: "flip-tri",
4712
+ description: "Manual file operation",
4713
+ aliases: ["manual-file", "flipped-triangle"],
4714
+ handler: flippedTriangle
4715
+ },
4716
+ {
4717
+ semanticName: "Manual Input",
4718
+ name: "Sloped Rectangle",
4719
+ shortName: "sl-rect",
4720
+ description: "Manual input step",
4721
+ aliases: ["manual-input", "sloped-rectangle"],
4722
+ handler: slopedRect
4723
+ },
4724
+ {
4725
+ semanticName: "Multi-Document",
4726
+ name: "Stacked Document",
4727
+ shortName: "docs",
4728
+ description: "Multiple documents",
4729
+ aliases: [
4730
+ "documents",
4731
+ "st-doc",
4732
+ "stacked-document"
4733
+ ],
4734
+ handler: multiWaveEdgedRectangle
4735
+ },
4736
+ {
4737
+ semanticName: "Multi-Process",
4738
+ name: "Stacked Rectangle",
4739
+ shortName: "st-rect",
4740
+ description: "Multiple processes",
4741
+ aliases: [
4742
+ "procs",
4743
+ "processes",
4744
+ "stacked-rectangle"
4745
+ ],
4746
+ handler: multiRect
4747
+ },
4748
+ {
4749
+ semanticName: "Stored Data",
4750
+ name: "Bow Tie Rectangle",
4751
+ shortName: "bow-rect",
4752
+ description: "Stored data",
4753
+ aliases: ["stored-data", "bow-tie-rectangle"],
4754
+ handler: bowTieRect
4755
+ },
4756
+ {
4757
+ semanticName: "Summary",
4758
+ name: "Crossed Circle",
4759
+ shortName: "cross-circ",
4760
+ description: "Summary",
4761
+ aliases: ["summary", "crossed-circle"],
4762
+ handler: crossedCircle
4763
+ },
4764
+ {
4765
+ semanticName: "Tagged Document",
4766
+ name: "Tagged Document",
4767
+ shortName: "tag-doc",
4768
+ description: "Tagged document",
4769
+ aliases: ["tag-doc", "tagged-document"],
4770
+ handler: taggedWaveEdgedRectangle
4771
+ },
4772
+ {
4773
+ semanticName: "Tagged Process",
4774
+ name: "Tagged Rectangle",
4775
+ shortName: "tag-rect",
4776
+ description: "Tagged process",
4777
+ aliases: [
4778
+ "tagged-rectangle",
4779
+ "tag-proc",
4780
+ "tagged-process"
4781
+ ],
4782
+ handler: taggedRect
4783
+ },
4784
+ {
4785
+ semanticName: "Paper Tape",
4786
+ name: "Flag",
4787
+ shortName: "flag",
4788
+ description: "Paper tape",
4789
+ aliases: ["paper-tape"],
4790
+ handler: waveRectangle
4791
+ },
4792
+ {
4793
+ semanticName: "Odd",
4794
+ name: "Odd",
4795
+ shortName: "odd",
4796
+ description: "Odd shape",
4797
+ internalAliases: ["rect_left_inv_arrow"],
4798
+ handler: rect_left_inv_arrow
4799
+ },
4800
+ {
4801
+ semanticName: "Lined Document",
4802
+ name: "Lined Document",
4803
+ shortName: "lin-doc",
4804
+ description: "Lined document",
4805
+ aliases: ["lined-document"],
4806
+ handler: linedWaveEdgedRect
4807
+ }
4808
+ ], shapes2 = (/* @__PURE__ */ __name(() => {
4809
+ let St = {
4810
+ state,
4811
+ choice,
4812
+ note,
4813
+ rectWithTitle,
4814
+ labelRect,
4815
+ iconSquare,
4816
+ iconCircle,
4817
+ icon,
4818
+ iconRounded,
4819
+ imageSquare,
4820
+ anchor,
4821
+ kanbanItem,
4822
+ mindmapCircle,
4823
+ defaultMindmapNode,
4824
+ classBox,
4825
+ erBox,
4826
+ requirementBox
4827
+ }, lr = [...Object.entries(St), ...shapesDefs.flatMap((St) => [
4828
+ St.shortName,
4829
+ ..."aliases" in St ? St.aliases : [],
4830
+ ..."internalAliases" in St ? St.internalAliases : []
4831
+ ].map((lr) => [lr, St.handler]))];
4832
+ return Object.fromEntries(lr);
4833
+ }, "generateShapeMap"))();
4834
+ function isValidShape(St) {
4835
+ return St in shapes2;
4836
+ }
4837
+ __name(isValidShape, "isValidShape");
4838
+ var nodeElems = /* @__PURE__ */ new Map();
4839
+ async function insertNode(St, lr, ur) {
4840
+ let dr, fr;
4841
+ lr.shape === "rect" && (lr.rx && lr.ry ? lr.shape = "roundedRect" : lr.shape = "squareRect");
4842
+ let pr = lr.shape ? shapes2[lr.shape] : void 0;
4843
+ if (!pr) throw Error(`No such shape: ${lr.shape}. Please check your syntax.`);
4844
+ if (lr.link) {
4845
+ let mr;
4846
+ ur.config.securityLevel === "sandbox" ? mr = "_top" : lr.linkTarget && (mr = lr.linkTarget || "_blank"), dr = St.insert("svg:a").attr("xlink:href", lr.link).attr("target", mr ?? null), fr = await pr(dr, lr, ur);
4847
+ } else fr = await pr(St, lr, ur), dr = fr;
4848
+ return lr.tooltip && fr.attr("title", lr.tooltip), nodeElems.set(lr.id, dr), lr.haveCallback && dr.attr("class", dr.attr("class") + " clickable"), dr;
4849
+ }
4850
+ __name(insertNode, "insertNode");
4851
+ var setNodeElem = /* @__PURE__ */ __name((St, lr) => {
4852
+ nodeElems.set(lr.id, St);
4853
+ }, "setNodeElem"), clear2 = /* @__PURE__ */ __name(() => {
4854
+ nodeElems.clear();
4855
+ }, "clear"), positionNode = /* @__PURE__ */ __name((St) => {
4856
+ let lr = nodeElems.get(St.id);
4857
+ log.trace("Transforming node", St.diff, St, "translate(" + (St.x - St.width / 2 - 5) + ", " + St.width / 2 + ")");
4858
+ let ur = St.diff || 0;
4859
+ return St.clusterNode ? lr.attr("transform", "translate(" + (St.x + ur - St.width / 2) + ", " + (St.y - St.height / 2 - 8) + ")") : lr.attr("transform", "translate(" + St.x + ", " + St.y + ")"), ur;
4860
+ }, "positionNode");
4861
+ export { insertNode as a, positionNode as c, at as d, insertCluster as i, setNodeElem as l, clear2 as n, isValidShape as o, createLabel_default as r, labelHelper as s, clear as t, updateNodeBounds as u };