@volter/game-editor 0.5.65

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 (653) hide show
  1. package/BUNDLED_NOTICES +11228 -0
  2. package/LICENSE +686 -0
  3. package/LICENSE-BLENDER +1409 -0
  4. package/LICENSE-MCP +21 -0
  5. package/NOTICE +21 -0
  6. package/catalog/entries/audio.json +14 -0
  7. package/catalog/entries/bake.json +36 -0
  8. package/catalog/entries/blender.json +17 -0
  9. package/catalog/entries/react-root.json +24 -0
  10. package/catalog/entries/reflections.json +29 -0
  11. package/catalog/entries/static-batch.json +25 -0
  12. package/catalog/project-source/LICENSE +37 -0
  13. package/catalog/project-source/src/contributions/bake.kind.ts +40 -0
  14. package/catalog/project-source/src/contributions/builder-document.tsx +65 -0
  15. package/catalog/project-source/src/contributions/builder-state.ts +27 -0
  16. package/catalog/project-source/src/contributions/builder-ui.tsx +61 -0
  17. package/catalog/project-source/src/contributions/module-source.ts +502 -0
  18. package/catalog/project-source/src/contributions/pages.finder.ts +61 -0
  19. package/catalog/project-source/src/lib/audio/sfx.ts +255 -0
  20. package/catalog/project-source/src/lib/bake/asset-seed.ts +128 -0
  21. package/catalog/project-source/src/lib/bake/bake-schema.ts +65 -0
  22. package/catalog/project-source/src/lib/bake/clip-layering.ts +203 -0
  23. package/catalog/project-source/src/lib/bake/gltf-bake.ts +657 -0
  24. package/catalog/project-source/src/lib/bake/mesh-slice.ts +157 -0
  25. package/catalog/project-source/src/lib/bake/node-image.ts +463 -0
  26. package/catalog/project-source/src/lib/bake/object3d-bake.ts +121 -0
  27. package/catalog/project-source/src/lib/bake/object3d-lifecycle.ts +15 -0
  28. package/catalog/project-source/src/lib/bake/object3d-source.ts +8 -0
  29. package/catalog/project-source/src/lib/bake/params.ts +75 -0
  30. package/catalog/project-source/src/lib/bake/rest-relative-animation.ts +217 -0
  31. package/catalog/project-source/src/lib/bake/use-model.ts +95 -0
  32. package/catalog/project-source/src/lib/react-root/index.ts +20 -0
  33. package/catalog/project-source/src/lib/react-root/react-root-adapter.tsx +57 -0
  34. package/catalog/project-source/src/lib/reflections/ReflectionProbe.tsx +201 -0
  35. package/catalog/project-source/src/lib/reflections/index.ts +19 -0
  36. package/catalog/project-source/src/lib/reflections/probe-controller.ts +75 -0
  37. package/catalog/project-source/src/lib/reflections/reflection-probe-registry.ts +402 -0
  38. package/catalog/project-source/src/lib/reflections/volume-reflection-material.ts +416 -0
  39. package/catalog/project-source/src/lib/static-batch/Frozen.tsx +91 -0
  40. package/catalog/project-source/src/lib/static-batch/freeze.ts +579 -0
  41. package/catalog/project-source/src/lib/static-batch/index.ts +44 -0
  42. package/catalog/project-source/src/lib/static-batch/mutation-watch.ts +149 -0
  43. package/catalog/project-source/src/lib/static-batch/shadow-cache.ts +171 -0
  44. package/catalog/project-source/src/tools/bake-module.tool.ts +139 -0
  45. package/catalog/project-source/src/tools/bake-preview.tool.ts +475 -0
  46. package/dist/.vite/manifest.json +8304 -0
  47. package/dist/assets/AssetBudgetPanel-J9--TZPU.js +23 -0
  48. package/dist/assets/AudioViewer-CR7333fe.js +1 -0
  49. package/dist/assets/BVHLoader-6bQIXhMX.js +1 -0
  50. package/dist/assets/BufferGeometryUtils-Nz37EVXf.js +1 -0
  51. package/dist/assets/CCDIKSolver-CD7vLpsK.js +1 -0
  52. package/dist/assets/CSS3DRenderer-CL7ABLVK.js +1 -0
  53. package/dist/assets/CanvasSceneViewport-Bpi6gVTC.js +1 -0
  54. package/dist/assets/ColladaLoader-aVOPIsCh.js +3 -0
  55. package/dist/assets/ColorInput-DQBNrW-K.js +1 -0
  56. package/dist/assets/ConvexGeometry-CAzXlPVG.js +1 -0
  57. package/dist/assets/ConvexHull-BINCESFp.js +1 -0
  58. package/dist/assets/CopyShader-BzTUYzf6.js +24 -0
  59. package/dist/assets/DecalGeometry-160KRdfg.js +1 -0
  60. package/dist/assets/EXRLoader-Cdans_oJ.js +1 -0
  61. package/dist/assets/EffectComposer-DQxfsXBZ.js +1 -0
  62. package/dist/assets/EntityModelDocument-Ccvw66N9.js +1 -0
  63. package/dist/assets/EnvironmentAssetDocument-Dg-Qq6O6.js +1 -0
  64. package/dist/assets/FBXLoader-B4MoUtAn.js +1 -0
  65. package/dist/assets/Fbo-Dz-Soul3.js +1 -0
  66. package/dist/assets/FontLoader-CvGoVI5a.js +2 -0
  67. package/dist/assets/GLTFExporter-HgrCle4L.js +1 -0
  68. package/dist/assets/GameplaySessionTimeline-B52W3FVZ.js +1 -0
  69. package/dist/assets/Gltf-UHVWKz65.js +2 -0
  70. package/dist/assets/HDRLoader-THU88oVD.js +5 -0
  71. package/dist/assets/ImageViewer-Tn7s_MnW.js +1 -0
  72. package/dist/assets/InspectorCanvasPreview-CEr_Kxna.js +1 -0
  73. package/dist/assets/InspectorObjectPreview-CVejvLRg.js +1 -0
  74. package/dist/assets/JsonAssetDocument-C7VGcLhu.js +3 -0
  75. package/dist/assets/LineSegments2-CsOpKSiM.js +370 -0
  76. package/dist/assets/MTLLoader-_Xzd4_0p.js +2 -0
  77. package/dist/assets/MarchingCubes-Bsp4wrzd.js +1 -0
  78. package/dist/assets/MeshBVH-BiDHDcu-.js +1 -0
  79. package/dist/assets/ModelAssetDocument-F5GACirk.js +1 -0
  80. package/dist/assets/NonThreeAuthoringBootstrap-C3woOMxX.js +1 -0
  81. package/dist/assets/OBJLoader-BhIC6Hwo.js +5 -0
  82. package/dist/assets/Object3DDocumentViewport-DB7T0NTl.js +2 -0
  83. package/dist/assets/Object3DPreview-DL8oi7Xs.js +2 -0
  84. package/dist/assets/OnlineAssetDetail-C6z9RvYK.js +2 -0
  85. package/dist/assets/OrbitControls-CM3bPray.js +1 -0
  86. package/dist/assets/OrbitControls-DLpayAaK.js +1 -0
  87. package/dist/assets/OrthographicCamera-bQozawrh.js +1 -0
  88. package/dist/assets/PLYLoader-DYQqs5Ik.js +2 -0
  89. package/dist/assets/PerspectiveCamera-CQ2lh01o.js +1 -0
  90. package/dist/assets/PlayBar-BR-Vg3Jb.js +2 -0
  91. package/dist/assets/RGBELoader-BgBcQv8j.js +1 -0
  92. package/dist/assets/RectAreaLightUniformsLib-CMMoWfll.js +1 -0
  93. package/dist/assets/RenderPass-DPrn-Uky.js +1 -0
  94. package/dist/assets/ResolutionPicker-C67vs1F3.js +1 -0
  95. package/dist/assets/RootSelectionOverlay-BZPlxmXU.js +1 -0
  96. package/dist/assets/RoundedBox-BDGBg6QZ.js +1 -0
  97. package/dist/assets/RoundedBoxGeometry-CyUuYPfW.js +1 -0
  98. package/dist/assets/STLLoader-Dyv3lsxY.js +1 -0
  99. package/dist/assets/SelectionBox-D_75KrNW.js +1 -0
  100. package/dist/assets/ShaderPass-QYRpPuFJ.js +1 -0
  101. package/dist/assets/ShadowEditor-DkImwu1Y.js +1 -0
  102. package/dist/assets/SimplifyModifier-C8ayvRzd.js +1 -0
  103. package/dist/assets/SkeletonUtils-Cps8GOC6.js +1 -0
  104. package/dist/assets/Sky-CQKCgYDs.js +154 -0
  105. package/dist/assets/SourceAssetViewer-2SWQoUut.js +12 -0
  106. package/dist/assets/StageHost-BN-IoTef.js +2 -0
  107. package/dist/assets/StoryPreviewMount-DjyxRCXu.js +1 -0
  108. package/dist/assets/TDSLoader-D_T8XJ81.js +1 -0
  109. package/dist/assets/TextGeometry-DOWAEUV0.js +1 -0
  110. package/dist/assets/ThreeBoardDocument-CVncZyIq.js +2 -0
  111. package/dist/assets/ThreeIsolationSceneContent-C8C8whSF.js +1 -0
  112. package/dist/assets/ToolObject3DPreview-BRoDWe4Q.js +1 -0
  113. package/dist/assets/TrackballControls-DfznuQTh.js +1 -0
  114. package/dist/assets/TransientHint-BB1fwrvK.js +1 -0
  115. package/dist/assets/UnrealBloomPass-CR-cS_K5.js +83 -0
  116. package/dist/assets/VideoViewer-C6kocgIU.js +1 -0
  117. package/dist/assets/_commonjsHelpers-D6-XlEtG.js +1 -0
  118. package/dist/assets/active-ingest-CT6jSGhr.js +3 -0
  119. package/dist/assets/adapter-surface-Y37Nzcyw.js +1 -0
  120. package/dist/assets/after-paint-CB4bz1-e.js +1 -0
  121. package/dist/assets/agx-base-srgb-BjWZJgrZ.lut +0 -0
  122. package/dist/assets/agx-look-medium-high-contrast-D5F_ob1L.lut +0 -0
  123. package/dist/assets/agx-look-punchy-dxsnycNs.lut +0 -0
  124. package/dist/assets/animation-clock-CnjZqfJp.js +1 -0
  125. package/dist/assets/asset-budget-asset.menu-Di3KiQCd.js +1 -0
  126. package/dist/assets/asset-budget.action-DCzzcuTh.js +1 -0
  127. package/dist/assets/asset-budget.document-BWU8wnVW.js +1 -0
  128. package/dist/assets/asset-budget.menu-BGZpT_31.js +1 -0
  129. package/dist/assets/asset-editor-persistence-BBaONOJt.js +1 -0
  130. package/dist/assets/asset-loaders-BOy5Ss8k.js +2 -0
  131. package/dist/assets/asset-parse-error-BHMwBRU3.js +3 -0
  132. package/dist/assets/assets-BuSoGjBX.js +1 -0
  133. package/dist/assets/audio-meter-CyiToeUW.js +1 -0
  134. package/dist/assets/audio-unlock.service-CfUgUQVy.js +1 -0
  135. package/dist/assets/audio.utility-C6K6jem8.js +1 -0
  136. package/dist/assets/authoring-CgcOFhGS.js +1 -0
  137. package/dist/assets/autoplay.service-BZBGNSvt.js +1 -0
  138. package/dist/assets/axe-LkjAB6Lv.js +30 -0
  139. package/dist/assets/babylon-authoring-adapter-CL02gWDn.js +1 -0
  140. package/dist/assets/binding-Bmxqznjk.js +1 -0
  141. package/dist/assets/binding-identity-DcTpbvyg.js +1 -0
  142. package/dist/assets/binding-resolver-Dsh-6Vor.js +2 -0
  143. package/dist/assets/blender-emscripten-engine-9ZIRYNhe.js +2 -0
  144. package/dist/assets/blender-node-editor.document-iIDkB9sI.js +1 -0
  145. package/dist/assets/blender-properties-tab-C5CyPydi.js +3 -0
  146. package/dist/assets/blender-runtime-host-BpBwGv7r.js +4 -0
  147. package/dist/assets/blender-runtime-skin-DyQ9B6CR.js +7140 -0
  148. package/dist/assets/blender-runtime.document-lIYhhPtv.js +8 -0
  149. package/dist/assets/blender-timeline.document-77fx96N7.js +1 -0
  150. package/dist/assets/blender-uv-editor.document-fsT7B4gV.js +1 -0
  151. package/dist/assets/blender-version.status-o6dBm3n6.js +1 -0
  152. package/dist/assets/blender-wali-engine-wTOcrOMC.js +2 -0
  153. package/dist/assets/blender.command-BtJeWk-A.js +1 -0
  154. package/dist/assets/blender.keymap-GAQgeklK.js +1 -0
  155. package/dist/assets/blender.status-ujwGU6dU.js +1 -0
  156. package/dist/assets/blender.style-Dcem5f_T.js +1 -0
  157. package/dist/assets/board-guides-DziKSTss.js +1 -0
  158. package/dist/assets/body-marks-h_xDxiDE.js +1 -0
  159. package/dist/assets/bridge.command-o5gDNEwa.js +3 -0
  160. package/dist/assets/browserAll-DeWblVez.js +1 -0
  161. package/dist/assets/build-profiles.document-kW8iw8Xj.js +2 -0
  162. package/dist/assets/build-progress.status-BNRLytg2.js +1 -0
  163. package/dist/assets/build-session-C_sg3CEn.js +9 -0
  164. package/dist/assets/build.action-lYjTLb7K.js +1 -0
  165. package/dist/assets/build.command-DIGgUPU_.js +1 -0
  166. package/dist/assets/build.header-CKajx5U3.js +1 -0
  167. package/dist/assets/build.menu-BdU0QXny.js +1 -0
  168. package/dist/assets/build.service-CbBAyeu3.js +1 -0
  169. package/dist/assets/bus-mixer-CGfWDP3C.js +1 -0
  170. package/dist/assets/camera-KEsKvOL7.js +1 -0
  171. package/dist/assets/camera-runtime.inspector-B7unX4g1.js +1 -0
  172. package/dist/assets/canvas-entry-runtime-SfBxaR9M.js +2 -0
  173. package/dist/assets/capability-coverage-Czas4C18.js +7 -0
  174. package/dist/assets/chrome-trace-YZHMz60-.js +1 -0
  175. package/dist/assets/client-DNXj_opT.js +25 -0
  176. package/dist/assets/clip-planes-CnAI6DZn.js +1 -0
  177. package/dist/assets/collaboration-presence-DLoZ7EA3.js +1 -0
  178. package/dist/assets/collider-Bw0mXlsW.js +1 -0
  179. package/dist/assets/collider-dimensions-9xoFADXN.js +1 -0
  180. package/dist/assets/collision-system-DpNUJRJ3.js +1 -0
  181. package/dist/assets/command-results-CUQD49AB.js +1 -0
  182. package/dist/assets/component-board-registry-DrIa2csL.js +1 -0
  183. package/dist/assets/component-board.service-DCwcUssB.js +2 -0
  184. package/dist/assets/component-board.service-DidCyM4O.js +2 -0
  185. package/dist/assets/component-verbs.command-7xzfjGMZ.js +1 -0
  186. package/dist/assets/component-verbs.service-Bv9jId3q.js +1 -0
  187. package/dist/assets/config-CEZk921y.js +6 -0
  188. package/dist/assets/configurations-DTBMdaTL.js +1 -0
  189. package/dist/assets/connection.status-BifnQdOs.js +1 -0
  190. package/dist/assets/console-bridge-CHcb-xk5.js +1 -0
  191. package/dist/assets/constraint-De8f1Uiq.js +1 -0
  192. package/dist/assets/constraints.inspector-B9U9Yj-u.js +1 -0
  193. package/dist/assets/countdown-timer-CUm74dom.js +1 -0
  194. package/dist/assets/coverage.service-VTX5Mcsx.js +3 -0
  195. package/dist/assets/crash-null-boundary-v3a0uEgw.js +1 -0
  196. package/dist/assets/create-runtime-CVCc1BDx.js +1 -0
  197. package/dist/assets/curve-7Q79VgU4.js +1 -0
  198. package/dist/assets/data-asset-4hjS642k.js +5 -0
  199. package/dist/assets/data-check-core-CQEjuFyt.js +1 -0
  200. package/dist/assets/data-ref-CQI28C0D.js +1 -0
  201. package/dist/assets/debug-bridge-CCohG-d-.js +1 -0
  202. package/dist/assets/debug-registry-Dgvitx8M.js +1 -0
  203. package/dist/assets/defaults-DKiBJCPN.js +1 -0
  204. package/dist/assets/deferred-commands-CEMmvL47.js +1 -0
  205. package/dist/assets/deferred-ingest-play-DCJi_Pgu.js +2 -0
  206. package/dist/assets/design-time-layers-wYgOTgni.js +1 -0
  207. package/dist/assets/design-time-mount-registry-DUpXCg1U.js +1 -0
  208. package/dist/assets/design-time-mount.service-BzY21e1F.js +2 -0
  209. package/dist/assets/design-time-react-mount-DM9WLrF2.js +1 -0
  210. package/dist/assets/dev-build-gDYrq68M.js +1 -0
  211. package/dist/assets/directional-shadow-fit-BVkOKAv2.js +1 -0
  212. package/dist/assets/document-preview-three-Kbg2GCLm.js +1 -0
  213. package/dist/assets/dom-authoring-adapter-CY8C7f4T.js +1 -0
  214. package/dist/assets/draco3d-BBUTcNkz.js +1 -0
  215. package/dist/assets/draco_decoder-DsQ12WqX.wasm +0 -0
  216. package/dist/assets/draco_encoder-2Tcju8Ns.wasm +0 -0
  217. package/dist/assets/edit-mode-audio.service-Bzetwd5B.js +1 -0
  218. package/dist/assets/edit-mode-authoring-B47TfLqu.js +1 -0
  219. package/dist/assets/edit-mode-networking.service-YCX6RRb_.js +1 -0
  220. package/dist/assets/editor-api-BoJIcyZG.js +1 -0
  221. package/dist/assets/editor-port-C_FeBdeV.js +1 -0
  222. package/dist/assets/editor-presentation-activity-C7SNSmTd.js +1 -0
  223. package/dist/assets/entry-adjudication-Cq8Yeb74.js +1 -0
  224. package/dist/assets/environment-capture-7himRh2L.js +1 -0
  225. package/dist/assets/esbuild-BHljloGq.wasm +0 -0
  226. package/dist/assets/events-156d8d12.esm-ErOhDXXB.js +36 -0
  227. package/dist/assets/extend-B-eOccUm.js +36 -0
  228. package/dist/assets/extends-CF3RwP-h.js +1 -0
  229. package/dist/assets/eyedropper-session-bjPXnfeX.js +1 -0
  230. package/dist/assets/fflate.module-DPuTF8aG.js +6 -0
  231. package/dist/assets/filmic-srgb-Ct35FIH6.lut +0 -0
  232. package/dist/assets/first-party-audio-system-DxnGJOER.js +1 -0
  233. package/dist/assets/first-party-navigation-system-CL5Bquub.js +1 -0
  234. package/dist/assets/fork-menu-BoVyw2Wu.js +1 -0
  235. package/dist/assets/frame-debugger-store-D1Mf_5up.js +1 -0
  236. package/dist/assets/frame-delta-D2nsw_Ht.js +1 -0
  237. package/dist/assets/frame-pacing-D5acoOzO.js +1 -0
  238. package/dist/assets/frame-selector-cache-cCeUbcjG.js +1 -0
  239. package/dist/assets/game-DHOZVb-7.js +1 -0
  240. package/dist/assets/game-contract-seams-a5YXejOu.js +1 -0
  241. package/dist/assets/game-css-scope-transform-Eng4wS8E.js +33 -0
  242. package/dist/assets/game-document.service-DbRfx2V0.js +1 -0
  243. package/dist/assets/game-eval.command-D-7Dxbj_.js +2 -0
  244. package/dist/assets/game-input-seams-CIQdetRw.js +1 -0
  245. package/dist/assets/game-loop-CZvXlY00.js +1 -0
  246. package/dist/assets/game-module-access-B2mFxv-i.js +1 -0
  247. package/dist/assets/game.layout-CBASrvQu.js +1 -0
  248. package/dist/assets/gameplay-export-BoKXm51x.js +1 -0
  249. package/dist/assets/gameplay-replay-e5umMlXv.js +1 -0
  250. package/dist/assets/gameplay-rng-trap-CTNhm-UW.js +3 -0
  251. package/dist/assets/gameplay.command-DxcVYX6F.js +1 -0
  252. package/dist/assets/generation-DhwCUHPf.css +1 -0
  253. package/dist/assets/generation-jobs-BQrXbGp_.js +1 -0
  254. package/dist/assets/generation.service-CDIgObuw.js +1 -0
  255. package/dist/assets/generations-DzUogZsM.js +1 -0
  256. package/dist/assets/generations.status-CgOUBCum.js +1 -0
  257. package/dist/assets/hierarchy-marks-BLPfSIym.js +1 -0
  258. package/dist/assets/host-pointer-DbGSCjE9.js +1 -0
  259. package/dist/assets/hosted-asset-materialization-CiIvWkGU.js +2 -0
  260. package/dist/assets/ibl-override-material-BlmCxFKq.js +6 -0
  261. package/dist/assets/index-96FBF1Oj.js +1 -0
  262. package/dist/assets/index-BAWkB0dv.js +1 -0
  263. package/dist/assets/index-BDnS2b6S.js +1 -0
  264. package/dist/assets/index-BHp07vN0.js +2 -0
  265. package/dist/assets/index-BMxv2MNV.js +1 -0
  266. package/dist/assets/index-BP6wv2A0.js +5 -0
  267. package/dist/assets/index-BcCBqgM_.js +952 -0
  268. package/dist/assets/index-Bge9JUr6.js +1 -0
  269. package/dist/assets/index-BjTCPEQ7.js +134 -0
  270. package/dist/assets/index-BncK9THk.js +1 -0
  271. package/dist/assets/index-CJbYy-CF.js +3 -0
  272. package/dist/assets/index-CVCb_ImQ.js +1 -0
  273. package/dist/assets/index-CZd9o7Lu.js +1 -0
  274. package/dist/assets/index-CanA16PU.js +2 -0
  275. package/dist/assets/index-CinJrH5C.js +9 -0
  276. package/dist/assets/index-CtzuWnCS.js +1 -0
  277. package/dist/assets/index-D2fNXpHa.css +1 -0
  278. package/dist/assets/index-DUpHH6JR.js +3120 -0
  279. package/dist/assets/index-DUqP1RMl.js +1 -0
  280. package/dist/assets/index-D_NuPfjr.js +9 -0
  281. package/dist/assets/index-Da9JhEvW.js +25 -0
  282. package/dist/assets/index-DgapqSPi.js +7 -0
  283. package/dist/assets/index-FUuS4qwW.js +562 -0
  284. package/dist/assets/index-GIL7oGEO.js +4894 -0
  285. package/dist/assets/index-IEjydI9d.js +1 -0
  286. package/dist/assets/index-OrYXPk3Z.js +487 -0
  287. package/dist/assets/index-V1R-e5Bd.js +1 -0
  288. package/dist/assets/index-bQE2NA0D.js +1 -0
  289. package/dist/assets/index-gHZae-lw.js +13 -0
  290. package/dist/assets/index-mjWQmGhM.js +1 -0
  291. package/dist/assets/index-nmcBqr7Y.js +1 -0
  292. package/dist/assets/inference-diagnostics-Dhmtfbq_.js +1 -0
  293. package/dist/assets/ingest-BbYMC2vQ.js +1 -0
  294. package/dist/assets/ingest-boot-viewport-D5rI_Kk_.js +1 -0
  295. package/dist/assets/ingest-siblings-Bop2kqVl.js +1 -0
  296. package/dist/assets/ingest-source-persistence-C_6Hiyra.js +1 -0
  297. package/dist/assets/ingest.service-BTDnQfM1.js +1 -0
  298. package/dist/assets/input-manager-DH_hGW6d.js +1 -0
  299. package/dist/assets/input-router-BNQvtIqw.js +1 -0
  300. package/dist/assets/inspect-BZfi3mmo.js +1 -0
  301. package/dist/assets/inspection-CObLhnrs.js +1 -0
  302. package/dist/assets/instance-fork-actions-D3sRzS3K.js +1 -0
  303. package/dist/assets/instances.command-D6UkZNO8.js +1 -0
  304. package/dist/assets/instruments-CKR02Y8I.js +1 -0
  305. package/dist/assets/json-history-resource-BbxllWfV.js +1 -0
  306. package/dist/assets/jsx-runtime-DPjLkJKQ.js +9 -0
  307. package/dist/assets/light-D-_wsKTq.js +1 -0
  308. package/dist/assets/light-camera-factory-CWbbe9gI.js +1 -0
  309. package/dist/assets/lil-gui.module.min-BF55BEwA.js +10 -0
  310. package/dist/assets/live-behaviors-Bxq49Maz.js +1 -0
  311. package/dist/assets/live-gesture-lock-DJbrjOqf.js +1 -0
  312. package/dist/assets/loader-CaF_I7Yt.js +1 -0
  313. package/dist/assets/logger-Dqis-7W1.js +1 -0
  314. package/dist/assets/loop-gate-report-N52EWFGD.js +1 -0
  315. package/dist/assets/matcap-texture-CVfalpWT.js +1 -0
  316. package/dist/assets/material-CpAdjDxn.js +1 -0
  317. package/dist/assets/material-factory-Bz6h__6g.js +1 -0
  318. package/dist/assets/mesh-B3WPtNKO.js +1 -0
  319. package/dist/assets/mesh-shadow-CZnXrw_l.js +1 -0
  320. package/dist/assets/mikktspace.module-DO88SLib.js +1 -0
  321. package/dist/assets/model-asset-sections-CFvvihfx.css +1 -0
  322. package/dist/assets/model-asset-sections.service-CHhFS3ZX.js +1 -0
  323. package/dist/assets/model.layout-BJUEQYUI.js +1 -0
  324. package/dist/assets/models.finder-G2jQgIRu.js +1 -0
  325. package/dist/assets/module-mode-DVBLT9d-.js +2 -0
  326. package/dist/assets/mount-canvas-ingest-root-DDuAWf_C.js +2 -0
  327. package/dist/assets/mount-dom-ingest-root-D_EiBgpn.js +2 -0
  328. package/dist/assets/mount-game-6t9cKNo4.js +1 -0
  329. package/dist/assets/mount-ingest-root-glv2SSWf.js +2 -0
  330. package/dist/assets/mount-manifest-CGVxhmAw.js +1 -0
  331. package/dist/assets/mount-readiness-Ds0HvvLH.js +4 -0
  332. package/dist/assets/mount-three-ingest-root-hrUt9VVU.js +1 -0
  333. package/dist/assets/mounted-authoring-Dmg5xmhP.js +1 -0
  334. package/dist/assets/mounted-story-viewport-source-DjP6RA9U.js +1 -0
  335. package/dist/assets/native-debug-module-CWicoSGD.js +1 -0
  336. package/dist/assets/native-entry-surface-BE8LJNdu.js +1 -0
  337. package/dist/assets/navigation-CIiCx-SM.js +1 -0
  338. package/dist/assets/navmesh-workflow-store-Cmnm57TB.js +1 -0
  339. package/dist/assets/navmesh.menu-CAKiH8PW.js +1 -0
  340. package/dist/assets/navmesh.service-jgDWlgj1.js +1 -0
  341. package/dist/assets/network.utility-CEu5nHf7.js +1 -0
  342. package/dist/assets/object-marks-DwvIEBOK.js +1 -0
  343. package/dist/assets/object3d-authoring-subject-CH5sI2oP.js +1 -0
  344. package/dist/assets/output-DK8waum9.js +195 -0
  345. package/dist/assets/particles-Y626p22p.js +1 -0
  346. package/dist/assets/particles-factory-DnLOHXT8.js +1 -0
  347. package/dist/assets/pasteboard-materialize-BqSS4QzV.js +20 -0
  348. package/dist/assets/pasteboard.action-DU3UHtJG.js +2 -0
  349. package/dist/assets/performance-profiler-D_Jey87L.js +1 -0
  350. package/dist/assets/physics-registry-B2Jkp8e6.js +1 -0
  351. package/dist/assets/physics-registry-CUB9cT9p.js +1 -0
  352. package/dist/assets/pixi-authoring-adapter-CjibysC3.js +1 -0
  353. package/dist/assets/pixi-live-write-target-DuWydlWb.js +1 -0
  354. package/dist/assets/pixi-primitive-DlWbUPN9.js +1 -0
  355. package/dist/assets/pixi-react-root-factory-DYsznYRQ.js +1 -0
  356. package/dist/assets/pixi-story-model-DNkfnWUV.js +1 -0
  357. package/dist/assets/pixi-transform-channels-VjdohT11.js +1 -0
  358. package/dist/assets/play-mode-BFU2PCkG.js +22 -0
  359. package/dist/assets/play.command-BpqqLqkq.js +2 -0
  360. package/dist/assets/playtest-BXIL1JEF.js +1 -0
  361. package/dist/assets/pose-guard-6Osb2cFu.js +1 -0
  362. package/dist/assets/presentation-BPP5pXeQ.js +1 -0
  363. package/dist/assets/product-DFhyARJj.js +1 -0
  364. package/dist/assets/profiler.action-CaXJDp3t.js +1 -0
  365. package/dist/assets/profiler.menu-BIMF6Bi4.js +1 -0
  366. package/dist/assets/profiler.utility-BExw9wBO.js +1 -0
  367. package/dist/assets/project-authoring-session-Bnt6icLr.js +2 -0
  368. package/dist/assets/project-provenance-BoP3nrle.js +1 -0
  369. package/dist/assets/prompt-labels-DSMdM2_B.js +1 -0
  370. package/dist/assets/properties-bone-constraints.inspector-ByT6p7S-.js +1 -0
  371. package/dist/assets/properties-bone.inspector-z4qJwKO5.js +1 -0
  372. package/dist/assets/properties-collection.inspector-D0_3ijWU.js +1 -0
  373. package/dist/assets/properties-constraints.inspector-CESzjuls.js +1 -0
  374. package/dist/assets/properties-data.inspector-hG8Wgyzb.js +1 -0
  375. package/dist/assets/properties-material.inspector-CzY0JCQ6.js +1 -0
  376. package/dist/assets/properties-modifiers.inspector-3dDhwf7g.js +1 -0
  377. package/dist/assets/properties-object.inspector-CiarfxkT.js +1 -0
  378. package/dist/assets/properties-output.inspector-DKJxmKSD.js +1 -0
  379. package/dist/assets/properties-particles.inspector-CCEdYWGm.js +1 -0
  380. package/dist/assets/properties-physics.inspector-B2c0KUyA.js +1 -0
  381. package/dist/assets/properties-render.inspector-Bcm0HLRW.js +1 -0
  382. package/dist/assets/properties-scene.inspector-PIM_eTb_.js +1 -0
  383. package/dist/assets/properties-texture.inspector-CgFlnyr8.js +1 -0
  384. package/dist/assets/properties-view-layer.inspector-DGjF_Aqo.js +1 -0
  385. package/dist/assets/properties-world.inspector-CrMvaRvB.js +1 -0
  386. package/dist/assets/r3f-design-session-D-4yyDO9.js +2 -0
  387. package/dist/assets/r3f-physics-binding-BBo8oma9.js +1 -0
  388. package/dist/assets/r3f-root-factory-z9llD1OU.js +1 -0
  389. package/dist/assets/r3f-source-authoring-adapter-w6Bc60K-.js +13 -0
  390. package/dist/assets/rapier-physics-adapter-CaZqWLu0.js +1 -0
  391. package/dist/assets/rapier-physics-bridge-CMoeVo3Y.js +1 -0
  392. package/dist/assets/react-18-By2b4xR9.js +1 -0
  393. package/dist/assets/react-inspector.service-B_neRnSK.js +1 -0
  394. package/dist/assets/react-root-CEz5NTck.js +1 -0
  395. package/dist/assets/react-story-board-BDDwiE2H.js +1 -0
  396. package/dist/assets/react-three-fiber.esm-CycrbDlA.js +1 -0
  397. package/dist/assets/react-three-rapier.esm-CEfKpvxT.js +1 -0
  398. package/dist/assets/react-world-authoring-adapter-DmrwM3py.js +1 -0
  399. package/dist/assets/realm-services-CobQsq_X.js +1 -0
  400. package/dist/assets/rebind-controller-Dtq19Vb3.js +1 -0
  401. package/dist/assets/recast-navigation.wasm-compat-Dsoa_MD-.js +1 -0
  402. package/dist/assets/reflection-probe-Don-M3Fj.js +1 -0
  403. package/dist/assets/reflection-probe-capture.inspector-CmFUoJCx.js +1 -0
  404. package/dist/assets/register-render-vitals-BiZk29b2.js +1 -0
  405. package/dist/assets/registry-02YZjMNp.js +1 -0
  406. package/dist/assets/relative-path-guard-GiM7Lsz8.js +1 -0
  407. package/dist/assets/render-audio-control-vMRlePWb.js +1 -0
  408. package/dist/assets/render-batch-system-0vq7p0VC.js +1 -0
  409. package/dist/assets/render-census-BrQX_CXv.js +1 -0
  410. package/dist/assets/render-control-Df3yTiyr.js +1 -0
  411. package/dist/assets/render-env-D2IV2x5k.js +1 -0
  412. package/dist/assets/render-features-CPQ_e568.js +1 -0
  413. package/dist/assets/render-seed-DF4JHy7P.js +1 -0
  414. package/dist/assets/render-settings-Bw4W9SYF.js +1 -0
  415. package/dist/assets/render-vitals-BZ5HtvMi.js +1 -0
  416. package/dist/assets/renderer-config-BqG4O8i9.js +1 -0
  417. package/dist/assets/resolve-three-SZE_WWUM.js +702 -0
  418. package/dist/assets/root-seam-contract-Z0VWX3Bk.js +1 -0
  419. package/dist/assets/rrweb-Cd2ifIRP.js +142 -0
  420. package/dist/assets/run-ticks-settled-C4ksViyA.js +1 -0
  421. package/dist/assets/runtime-inspection-l2iFQSsg.js +1 -0
  422. package/dist/assets/scene-capture-BQKzU0NT.js +1 -0
  423. package/dist/assets/scene-capture-CGYF-Viw.js +1 -0
  424. package/dist/assets/scene-document.service-qkDjUrlP.js +2 -0
  425. package/dist/assets/scene-framing-Cat0GtyJ.js +1 -0
  426. package/dist/assets/scene-index-B6BZOHMk.js +1 -0
  427. package/dist/assets/scene-query-C7_N-TpI.js +1 -0
  428. package/dist/assets/schema-kl9-2B_J.js +1 -0
  429. package/dist/assets/sculpt.layout-zJF55yCR.js +1 -0
  430. package/dist/assets/seeded-random-i3mtgBKZ.js +1 -0
  431. package/dist/assets/session-CZ5JPg-z.js +4877 -0
  432. package/dist/assets/setup-audio-S8GQF91f.js +1 -0
  433. package/dist/assets/setup-particles-GCXlnkj_.js +1 -0
  434. package/dist/assets/setup-physics-BeZ7-LKD.js +1 -0
  435. package/dist/assets/setup-renderer-DVXaSGin.js +1587 -0
  436. package/dist/assets/shading.layout-DULYZV6M.js +1 -0
  437. package/dist/assets/sim-clock-CLflx7kg.js +1 -0
  438. package/dist/assets/sky-precompute-worker-ChN7J87v.js +1 -0
  439. package/dist/assets/soft-particle-depth-DGvfQDi1.js +1 -0
  440. package/dist/assets/source-object3d-authoring-adapter-B-L6Ha6f.js +1 -0
  441. package/dist/assets/source-persistence-backend-C-aR-B_Y.js +1 -0
  442. package/dist/assets/spark-renderer-lifecycle-ynWESJcv.js +1 -0
  443. package/dist/assets/spark.module-4pXQoz5d.js +12120 -0
  444. package/dist/assets/stage-invalidation-DBg3C3Ta.js +1 -0
  445. package/dist/assets/stage-keyboard-n-5kKH-m.js +1 -0
  446. package/dist/assets/stage-overlay-set-B9zp2sLB.js +1 -0
  447. package/dist/assets/stage-presence-markers-DiGI6A45.js +1 -0
  448. package/dist/assets/standard-viewport-dressing-CzjAe_0A.js +7 -0
  449. package/dist/assets/state-bridge-DLP1jLRW.js +1 -0
  450. package/dist/assets/state-watch.action-BOvQR2qt.js +1 -0
  451. package/dist/assets/state-watch.menu-CNLvDeeY.js +1 -0
  452. package/dist/assets/state-watch.utility-Bg1tTTQU.js +1 -0
  453. package/dist/assets/static-batch-advisor-B13QEH7d.js +1 -0
  454. package/dist/assets/stats.module-BL02l9NC.js +1 -0
  455. package/dist/assets/story-arg-descriptors-Ek86ExX7.js +1 -0
  456. package/dist/assets/story-capture-_gC8dXV-.js +1 -0
  457. package/dist/assets/story-documents--TDLaPeL.js +3 -0
  458. package/dist/assets/story-documents.service-BiS_YbNQ.js +1 -0
  459. package/dist/assets/story-documents.service-CxOPYJ2j.js +1 -0
  460. package/dist/assets/story-media-presence-BHzk2IV5.js +1 -0
  461. package/dist/assets/story-mount-turn-DFRTj5hi.js +1 -0
  462. package/dist/assets/story-pixi-preview-BUrOJZXS.js +1 -0
  463. package/dist/assets/story-presentation-j2AVN-mK.js +1 -0
  464. package/dist/assets/story-three-preview-BHEDZzcl.js +2 -0
  465. package/dist/assets/structural-ids-Dc-7rEwi.js +1 -0
  466. package/dist/assets/structural-signature-0w-i_ats.js +1 -0
  467. package/dist/assets/surface-content-Dg9Kkazf.js +1 -0
  468. package/dist/assets/surface-state-DaxyruCj.js +3 -0
  469. package/dist/assets/system-adapters-rIC8FSGP.js +1 -0
  470. package/dist/assets/system-runner-DkOjxEBt.js +1 -0
  471. package/dist/assets/system-slot-E2mEdiih.js +1 -0
  472. package/dist/assets/team-playtest.service-DqOinFVA.js +1 -0
  473. package/dist/assets/texture.layout-DASpHVht.js +1 -0
  474. package/dist/assets/three-CDSueJyJ.js +1 -0
  475. package/dist/assets/three-authoring-adapter-CmSQ3Vui.js +1 -0
  476. package/dist/assets/three-authoring.service-iuHLwtf1.js +2 -0
  477. package/dist/assets/three-ingest-runtime-QzDYk6tU.js +1 -0
  478. package/dist/assets/three-projection-core-BmKMZ-nf.js +1 -0
  479. package/dist/assets/three-viewport-presentation-QBQpSdMh.js +1 -0
  480. package/dist/assets/three.module-D396a9Mn.js +3840 -0
  481. package/dist/assets/three.quarks.esm-B1C61jGo.js +1039 -0
  482. package/dist/assets/tools-B_NJsk05.js +1 -0
  483. package/dist/assets/transform-writer-BhBBTx33.js +1 -0
  484. package/dist/assets/transport.header-B-6HQlU2.js +1 -0
  485. package/dist/assets/trigger-volume-BNK2XzPL.js +1 -0
  486. package/dist/assets/tuples-CIQ4Bn1U.js +1 -0
  487. package/dist/assets/tween.module-DciWpAG6.js +1 -0
  488. package/dist/assets/ui-board-document-Bwtt--xp.js +2 -0
  489. package/dist/assets/unexported-game-trap-Dm1JYKHy.js +2 -0
  490. package/dist/assets/unmanaged-root-detector-B8CpbkSN.js +2 -0
  491. package/dist/assets/upstream-pin-BdgRH6ID.js +1 -0
  492. package/dist/assets/use-data-Dzq-MytE.js +1 -0
  493. package/dist/assets/use-live-actor-state-DErbWQWF.js +1 -0
  494. package/dist/assets/use-selection-DbR73-xd.js +1 -0
  495. package/dist/assets/user-data-BB2Of6Ht.js +1 -0
  496. package/dist/assets/utility-view-state-BHypxA33.js +1 -0
  497. package/dist/assets/uv-editing.layout-BEKHxmHw.js +1 -0
  498. package/dist/assets/vgai-shared-fontawesome-CU65D4Ij.js +1 -0
  499. package/dist/assets/vgai-shared-jsx-dev-runtime-DFDKL7fx.js +1 -0
  500. package/dist/assets/vgai-shared-jsx-runtime-DIqBpTut.js +1 -0
  501. package/dist/assets/vgai-shared-react-BT7rMc2H.js +1 -0
  502. package/dist/assets/vgai-shared-react-dom-DFajMqMT.js +1 -0
  503. package/dist/assets/vgai-shared-react-dom-client-S0ozfl6_.js +1 -0
  504. package/dist/assets/vgai-shared-three-Bc5PvpLM.js +1 -0
  505. package/dist/assets/viewport-pick-context-DkawXbEi.js +1 -0
  506. package/dist/assets/viewport-root-presentation-CWsE56K6.js +1 -0
  507. package/dist/assets/viewport-shading-BuA88e_A.js +1 -0
  508. package/dist/assets/viewport-shading-boundary-B_-_gABg.js +82 -0
  509. package/dist/assets/viewport-surface-status-B3om4Kcf.js +1 -0
  510. package/dist/assets/vision_bundle-DX0dWqEa.js +15 -0
  511. package/dist/assets/voxel-surface-DtcsSWRL.js +1 -0
  512. package/dist/assets/wav-encode-D31zWF6O.js +1 -0
  513. package/dist/assets/webgl-frame-capture-FlF9zQmW.js +1 -0
  514. package/dist/assets/webgl-gpu-timer-D3YX7RaD.js +1 -0
  515. package/dist/assets/webworkerAll-CM2o_dnz.js +1 -0
  516. package/dist/assets/worker-UrMcrc5_.js +2 -0
  517. package/dist/assets/world-documents-147tiFZe.js +1 -0
  518. package/dist/assets/world-root-stage-binding-vwTrtBz6.js +1 -0
  519. package/dist/assets/world-state-BWG-IcOd.js +1 -0
  520. package/dist/assets/writer-B-KovzkA.js +5 -0
  521. package/dist/assets/xstate-animation-binding-Brd0NST6.js +1 -0
  522. package/dist/assets/xstate-animation-meta-Q3u9zh_m.js +1 -0
  523. package/dist/assets/xstate-behavior.action-B8UluFBK.js +1 -0
  524. package/dist/assets/xstate-behavior.document-CKAsE45I.js +1 -0
  525. package/dist/assets/xstate-behavior.inspector-vJJyuifc.js +1 -0
  526. package/dist/assets/xstate-behavior.menu-BXbPICIh.js +1 -0
  527. package/dist/assets/xstate-inspection-BsZv8LS9.js +1 -0
  528. package/dist/vgai-shared-react.json +10 -0
  529. package/dist/vgai-shared-three.json +3 -0
  530. package/dist-node/cli.js +9320 -0
  531. package/dist-node/create.js +3239 -0
  532. package/package.json +91 -0
  533. package/presets.mjs +2 -0
  534. package/src/contributions.d.ts +4 -0
  535. package/src/index.ts +38 -0
  536. package/starter/cube.blend +0 -0
  537. package/starter/cube.py +81 -0
  538. package/template/.agents/references/project-manual.md +341 -0
  539. package/template/.agents/skills/editor/SKILL.md +53 -0
  540. package/template/.agents/skills/editor/agents/openai.yaml +4 -0
  541. package/template/.agents/skills/editor/references/editor-control.md +363 -0
  542. package/template/.agents/skills/vgai-3d-models/SKILL.md +64 -0
  543. package/template/.agents/skills/vgai-ingest-existing-game/SKILL.md +112 -0
  544. package/template/.agents/skills/vgai-threejs-authoring/SKILL.md +347 -0
  545. package/template/.agents/skills/vgai-threejs-authoring/agents/openai.yaml +4 -0
  546. package/template/.agents/skills/vgai-threejs-authoring/references/helper-catalog.md +65 -0
  547. package/template/.claude/skills/editor/SKILL.md +53 -0
  548. package/template/.claude/skills/editor/agents/openai.yaml +4 -0
  549. package/template/.claude/skills/editor/references/editor-control.md +363 -0
  550. package/template/.claude/skills/vgai-3d-models/SKILL.md +64 -0
  551. package/template/.claude/skills/vgai-ingest-existing-game/SKILL.md +112 -0
  552. package/template/.claude/skills/vgai-threejs-authoring/SKILL.md +347 -0
  553. package/template/.claude/skills/vgai-threejs-authoring/agents/openai.yaml +4 -0
  554. package/template/.claude/skills/vgai-threejs-authoring/references/helper-catalog.md +65 -0
  555. package/template/.github/copilot-instructions.md +6 -0
  556. package/template/.github/skills/editor/SKILL.md +53 -0
  557. package/template/.github/skills/editor/agents/openai.yaml +4 -0
  558. package/template/.github/skills/editor/references/editor-control.md +363 -0
  559. package/template/.github/skills/vgai-3d-models/SKILL.md +64 -0
  560. package/template/.github/skills/vgai-ingest-existing-game/SKILL.md +112 -0
  561. package/template/.github/skills/vgai-threejs-authoring/SKILL.md +347 -0
  562. package/template/.github/skills/vgai-threejs-authoring/agents/openai.yaml +4 -0
  563. package/template/.github/skills/vgai-threejs-authoring/references/helper-catalog.md +65 -0
  564. package/template/.mcp.json +12 -0
  565. package/template/.vgai/assets.json +1 -0
  566. package/template/.vgai/provenance.json +4 -0
  567. package/template/.volter/tracker/validation/.preset.base.mts +178 -0
  568. package/template/.volter/tracker/validation/preset.mts +186 -0
  569. package/template/.volter/tracker/visualizer/.extension.base.tsx +14 -0
  570. package/template/.volter/tracker/visualizer/extension.tsx +14 -0
  571. package/template/.volter/tracker-config.json +17 -0
  572. package/template/AGENTS.md +176 -0
  573. package/template/CLAUDE.md +1 -0
  574. package/template/DEVLOG.md +20 -0
  575. package/template/IDIOMS.md +118 -0
  576. package/template/LICENSE +30 -0
  577. package/template/README.md +83 -0
  578. package/template/ROADMAP.md +20 -0
  579. package/template/asset-manifest.json +3 -0
  580. package/template/check-idioms.ts +1533 -0
  581. package/template/index.html +18 -0
  582. package/template/manifest-entry-modules-plugin.ts +53 -0
  583. package/template/package.json +62 -0
  584. package/template/public/jsm/libs/basis/basis_transcoder.js +19 -0
  585. package/template/public/jsm/libs/basis/basis_transcoder.wasm +0 -0
  586. package/template/public/jsm/libs/draco/gltf/draco_decoder.js +33 -0
  587. package/template/public/jsm/libs/draco/gltf/draco_decoder.wasm +0 -0
  588. package/template/public/jsm/libs/draco/gltf/draco_encoder.js +33 -0
  589. package/template/public/jsm/libs/draco/gltf/draco_wasm_wrapper.js +116 -0
  590. package/template/public/shaders/daylight-sky.frag.glsl +15 -0
  591. package/template/public/shaders/daylight-sky.vert.glsl +7 -0
  592. package/template/scripts/patch-drei-stats-gl.mjs +35 -0
  593. package/template/server/colyseus-setup.ts +111 -0
  594. package/template/server/loopback.ts +76 -0
  595. package/template/server/main.ts +78 -0
  596. package/template/server/rooms/arena-room.ts +488 -0
  597. package/template/server/rooms/game-room.ts +274 -0
  598. package/template/server/rooms.ts +15 -0
  599. package/template/server/tsconfig.json +19 -0
  600. package/template/src/bot/QaTester.tsx +35 -0
  601. package/template/src/bot/behaviors.ts +203 -0
  602. package/template/src/bot/bot-station.ts +192 -0
  603. package/template/src/bot/tester-run.ts +238 -0
  604. package/template/src/bot/tester-station.ts +193 -0
  605. package/template/src/components/environment/DaylightSky.tsx +54 -0
  606. package/template/src/components/environment/Ground.tsx +129 -0
  607. package/template/src/components/environment/SceneAtmosphere.tsx +14 -0
  608. package/template/src/components/environment/SoftGroundShadow.tsx +62 -0
  609. package/template/src/components/environment/SunShadowFit.tsx +141 -0
  610. package/template/src/contributions/README.md +98 -0
  611. package/template/src/contributions/analytics.analytics.tsx +26 -0
  612. package/template/src/contributions/data.document.tsx +35 -0
  613. package/template/src/contributions/pages.finder.ts +61 -0
  614. package/template/src/contributions/tester.inspector.tsx +64 -0
  615. package/template/src/contributions/use-game-modules.ts +80 -0
  616. package/template/src/data/README.md +17 -0
  617. package/template/src/input.ts +97 -0
  618. package/template/src/lib/audio/capability.json +4 -0
  619. package/template/src/lib/audio/sfx.ts +255 -0
  620. package/template/src/lib/react-root/capability.json +4 -0
  621. package/template/src/lib/react-root/index.ts +20 -0
  622. package/template/src/lib/react-root/react-root-adapter.tsx +57 -0
  623. package/template/src/lib/reflections/ReflectionProbe.tsx +201 -0
  624. package/template/src/lib/reflections/capability.json +4 -0
  625. package/template/src/lib/reflections/index.ts +19 -0
  626. package/template/src/lib/reflections/probe-controller.ts +75 -0
  627. package/template/src/lib/reflections/reflection-probe-registry.ts +402 -0
  628. package/template/src/lib/reflections/volume-reflection-material.ts +416 -0
  629. package/template/src/lib/static-batch/Frozen.tsx +91 -0
  630. package/template/src/lib/static-batch/capability.json +4 -0
  631. package/template/src/lib/static-batch/freeze.ts +579 -0
  632. package/template/src/lib/static-batch/index.ts +44 -0
  633. package/template/src/lib/static-batch/mutation-watch.ts +149 -0
  634. package/template/src/lib/static-batch/shadow-cache.ts +171 -0
  635. package/template/src/main.ts +63 -0
  636. package/template/src/manifest-entry-modules.d.ts +3 -0
  637. package/template/src/prefabs/HeroBox.stories.tsx +23 -0
  638. package/template/src/prefabs/HeroBox.tsx +35 -0
  639. package/template/src/scenes/MainScene.tsx +77 -0
  640. package/template/src/world.tsx +87 -0
  641. package/template/tsconfig.json +35 -0
  642. package/template/tsconfig.node.json +32 -0
  643. package/template/tsconfig.tools.json +22 -0
  644. package/template/validate-asset-content.ts +27 -0
  645. package/template/validate-assets.ts +60 -0
  646. package/template/validate-manifest.ts +55 -0
  647. package/template/vgai.adapter.ts +76 -0
  648. package/template/vgai.project.json +24 -0
  649. package/template/vite.config.ts +247 -0
  650. package/template-dotfiles/gitignore +63 -0
  651. package/workbench/src/media/game-cover.css +83 -0
  652. package/workbench/src/product.contribution.ts +188 -0
  653. package/workbench/src/vgaiGameSkew.ts +276 -0
@@ -0,0 +1 @@
1
+ import{EditorSelection as h,Text as ke,findClusterBreak as T,StateField as tt,Transaction as K,Facet as Ae,Annotation as Be,combineConfig as nt,StateEffect as Se,ChangeSet as rt,ChangeDesc as ot,countColumn as ee,CharCategory as D}from"./index-BP6wv2A0.js";import{E as O,b as lt}from"./index-DgapqSPi.js";import{I as Ce,g as De,i as G,s as te,N as Q,m as E,a as X,b as st}from"./index-CJbYy-CF.js";const ct=e=>{let{state:t}=e,n=t.doc.lineAt(t.selection.main.from),r=ne(e.state,n.from);return r.line?it(e):r.block?ft(e):!1};function L(e,t){return({state:n,dispatch:r})=>{if(n.readOnly)return!1;let l=e(t,n);return l?(r(n.update(l)),!0):!1}}const it=L(re,0),kn=L(re,1),An=L(re,2),ut=L(V,0),Bn=L(V,1),Sn=L(V,2),ft=L((e,t)=>V(e,t,ht(t)),0);function ne(e,t){let n=e.languageDataAt("commentTokens",t,1);return n.length?n[0]:{}}const v=50;function at(e,{open:t,close:n},r,l){let o=e.sliceDoc(r-v,r),s=e.sliceDoc(l,l+v),c=/\s*$/.exec(o)[0].length,i=/^\s*/.exec(s)[0].length,f=o.length-c;if(o.slice(f-t.length,f)==t&&s.slice(i,i+n.length)==n)return{open:{pos:r-c,margin:c&&1},close:{pos:l+i,margin:i&&1}};let u,a;l-r<=2*v?u=a=e.sliceDoc(r,l):(u=e.sliceDoc(r,r+v),a=e.sliceDoc(l-v,l));let d=/^\s*/.exec(u)[0].length,B=/\s*$/.exec(a)[0].length,k=a.length-B-n.length;return u.slice(d,d+t.length)==t&&a.slice(k,k+n.length)==n?{open:{pos:r+d+t.length,margin:/\s/.test(u.charAt(d+t.length))?1:0},close:{pos:l-B-n.length,margin:/\s/.test(a.charAt(k-1))?1:0}}:null}function ht(e){let t=[];for(let n of e.selection.ranges){let r=e.doc.lineAt(n.from),l=n.to<=r.to?r:e.doc.lineAt(n.to);l.from>r.from&&l.from==n.to&&(l=n.to==r.to+1?r:e.doc.lineAt(n.to-1));let o=t.length-1;o>=0&&t[o].to>r.from?t[o].to=l.to:t.push({from:r.from+/^\s*/.exec(r.text)[0].length,to:l.to})}return t}function V(e,t,n=t.selection.ranges){let r=n.map(o=>ne(t,o.from).block);if(!r.every(o=>o))return null;let l=n.map((o,s)=>at(t,r[s],o.from,o.to));if(e!=2&&!l.every(o=>o))return{changes:t.changes(n.map((o,s)=>l[s]?[]:[{from:o.from,insert:r[s].open+" "},{from:o.to,insert:" "+r[s].close}]))};if(e!=1&&l.some(o=>o)){let o=[];for(let s=0,c;s<l.length;s++)if(c=l[s]){let i=r[s],{open:f,close:u}=c;o.push({from:f.pos-i.open.length,to:f.pos+f.margin},{from:u.pos-u.margin,to:u.pos+i.close.length})}return{changes:o}}return null}function re(e,t,n=t.selection.ranges){let r=[],l=-1;e:for(let{from:o,to:s}of n){let c=r.length,i=1e9,f;for(let u=o;u<=s;){let a=t.doc.lineAt(u);if(f==null&&(f=ne(t,a.from).line,!f))continue e;if(a.from>l&&(o==s||s>a.from)){l=a.from;let d=/^\s*/.exec(a.text)[0].length,B=d==a.length,k=a.text.slice(d,d+f.length)==f?d:-1;d<a.text.length&&d<i&&(i=d),r.push({line:a,comment:k,token:f,indent:d,empty:B,single:!1})}u=a.to+1}if(i<1e9)for(let u=c;u<r.length;u++)r[u].indent<r[u].line.text.length&&(r[u].indent=i);r.length==c+1&&(r[c].single=!0)}if(e!=2&&r.some(o=>o.comment<0&&(!o.empty||o.single))){let o=[];for(let{line:c,token:i,indent:f,empty:u,single:a}of r)(a||!u)&&o.push({from:c.from+f,insert:i+" "});let s=t.changes(o);return{changes:s,selection:t.selection.map(s,1)}}else if(e!=1&&r.some(o=>o.comment>=0)){let o=[];for(let{line:s,comment:c,token:i}of r)if(c>=0){let f=s.from+c,u=f+i.length;s.text[u-s.from]==" "&&u++,o.push({from:f,to:u})}return{changes:o}}return null}const Y=Be.define(),dt=Be.define(),mt=Ae.define(),xe=Ae.define({combine(e){return nt(e,{minDepth:100,newGroupDelay:500,joinToEvent:(t,n)=>n},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(t,n)=>(r,l)=>t(r,l)||n(r,l)})}}),N=tt.define({create(){return C.empty},update(e,t){let n=t.state.facet(xe),r=t.annotation(Y);if(r){let i=g.fromTransaction(t,r.selection),f=r.side,u=f==0?e.undone:e.done;return i?u=U(u,u.length,n.minDepth,i):u=Ee(u,t.startState.selection),new C(f==0?r.rest:u,f==0?u:r.rest)}let l=t.annotation(dt);if((l=="full"||l=="before")&&(e=e.isolate()),t.annotation(K.addToHistory)===!1)return t.changes.empty?e:e.addMapping(t.changes.desc);let o=g.fromTransaction(t),s=t.annotation(K.time),c=t.annotation(K.userEvent);return o?e=e.addChanges(o,s,c,n,t):t.selection&&(e=e.addSelection(t.startState.selection,s,c,n.newGroupDelay)),(l=="full"||l=="after")&&(e=e.isolate()),e},toJSON(e){return{done:e.done.map(t=>t.toJSON()),undone:e.undone.map(t=>t.toJSON())}},fromJSON(e){return new C(e.done.map(g.fromJSON),e.undone.map(g.fromJSON))}});function Cn(e={}){return[N,xe.of(e),O.domEventHandlers({beforeinput(t,n){let r=t.inputType=="historyUndo"?Le:t.inputType=="historyRedo"?Z:null;return r?(t.preventDefault(),r(n)):!1}})]}const Dn=N;function P(e,t){return function({state:n,dispatch:r}){if(!t&&n.readOnly)return!1;let l=n.field(N,!1);if(!l)return!1;let o=l.pop(e,n,t);return o?(r(o),!0):!1}}const Le=P(0,!1),Z=P(1,!1),pt=P(0,!0),gt=P(1,!0);function Me(e){return function(t){let n=t.field(N,!1);if(!n)return 0;let r=e==0?n.done:n.undone;return r.length-(r.length&&!r[0].changes?1:0)}}const xn=Me(0),Ln=Me(1);class g{constructor(t,n,r,l,o){this.changes=t,this.effects=n,this.mapped=r,this.startSelection=l,this.selectionsAfter=o}setSelAfter(t){return new g(this.changes,this.effects,this.mapped,this.startSelection,t)}toJSON(){var t,n,r;return{changes:(t=this.changes)===null||t===void 0?void 0:t.toJSON(),mapped:(n=this.mapped)===null||n===void 0?void 0:n.toJSON(),startSelection:(r=this.startSelection)===null||r===void 0?void 0:r.toJSON(),selectionsAfter:this.selectionsAfter.map(l=>l.toJSON())}}static fromJSON(t){return new g(t.changes&&rt.fromJSON(t.changes),[],t.mapped&&ot.fromJSON(t.mapped),t.startSelection&&h.fromJSON(t.startSelection),t.selectionsAfter.map(h.fromJSON))}static fromTransaction(t,n){let r=A;for(let l of t.startState.facet(mt)){let o=l(t);o.length&&(r=r.concat(o))}return!r.length&&t.changes.empty?null:new g(t.changes.invert(t.startState.doc),r,void 0,n||t.startState.selection,A)}static selection(t){return new g(void 0,A,void 0,void 0,t)}}function U(e,t,n,r){let l=t+1>n+20?t-n-1:0,o=e.slice(l,t);return o.push(r),o}function yt(e,t){let n=[],r=!1;return e.iterChangedRanges((l,o)=>n.push(l,o)),t.iterChangedRanges((l,o,s,c)=>{for(let i=0;i<n.length;){let f=n[i++],u=n[i++];c>=f&&s<=u&&(r=!0)}}),r}function kt(e,t){return e.ranges.length==t.ranges.length&&e.ranges.filter((n,r)=>n.empty!=t.ranges[r].empty).length===0}function be(e,t){return e.length?t.length?e.concat(t):e:t}const A=[],At=200;function Ee(e,t){if(e.length){let n=e[e.length-1],r=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-At));return r.length&&r[r.length-1].eq(t)?e:(r.push(t),U(e,e.length-1,1e9,n.setSelAfter(r)))}else return[g.selection([t])]}function Bt(e){let t=e[e.length-1],n=e.slice();return n[e.length-1]=t.setSelAfter(t.selectionsAfter.slice(0,t.selectionsAfter.length-1)),n}function $(e,t){if(!e.length)return e;let n=e.length,r=A;for(;n;){let l=St(e[n-1],t,r);if(l.changes&&!l.changes.empty||l.effects.length){let o=e.slice(0,n);return o[n-1]=l,o}else t=l.mapped,n--,r=l.selectionsAfter}return r.length?[g.selection(r)]:A}function St(e,t,n){let r=be(e.selectionsAfter.length?e.selectionsAfter.map(c=>c.map(t)):A,n);if(!e.changes)return g.selection(r);let l=e.changes.map(t),o=t.mapDesc(e.changes,!0),s=e.mapped?e.mapped.composeDesc(o):o;return new g(l,Se.mapEffects(e.effects,t),s,e.startSelection.map(o),r)}const Ct=/^(input\.type|delete)($|\.)/;class C{constructor(t,n,r=0,l=void 0){this.done=t,this.undone=n,this.prevTime=r,this.prevUserEvent=l}isolate(){return this.prevTime?new C(this.done,this.undone):this}addChanges(t,n,r,l,o){let s=this.done,c=s[s.length-1];return c&&c.changes&&!c.changes.empty&&t.changes&&(!r||Ct.test(r))&&(!c.selectionsAfter.length&&n-this.prevTime<l.newGroupDelay&&l.joinToEvent(o,yt(c.changes,t.changes))||r=="input.type.compose")?s=U(s,s.length-1,l.minDepth,new g(t.changes.compose(c.changes),be(Se.mapEffects(t.effects,c.changes),c.effects),c.mapped,c.startSelection,A)):s=U(s,s.length,l.minDepth,t),new C(s,A,n,r)}addSelection(t,n,r,l){let o=this.done.length?this.done[this.done.length-1].selectionsAfter:A;return o.length>0&&n-this.prevTime<l&&r==this.prevUserEvent&&r&&/^select($|\.)/.test(r)&&kt(o[o.length-1],t)?this:new C(Ee(this.done,t),this.undone,n,r)}addMapping(t){return new C($(this.done,t),$(this.undone,t),this.prevTime,this.prevUserEvent)}pop(t,n,r){let l=t==0?this.done:this.undone;if(l.length==0)return null;let o=l[l.length-1],s=o.selectionsAfter[0]||(o.startSelection?o.startSelection.map(o.changes.invertedDesc,1):n.selection);if(r&&o.selectionsAfter.length)return n.update({selection:o.selectionsAfter[o.selectionsAfter.length-1],annotations:Y.of({side:t,rest:Bt(l),selection:s}),userEvent:t==0?"select.undo":"select.redo",scrollIntoView:!0});if(o.changes){let c=l.length==1?A:l.slice(0,l.length-1);return o.mapped&&(c=$(c,o.mapped)),n.update({changes:o.changes,selection:o.startSelection,effects:o.effects,annotations:Y.of({side:t,rest:c,selection:s}),filter:!1,userEvent:t==0?"undo":"redo",scrollIntoView:!0})}else return null}}C.empty=new C(A,A);const Mn=[{key:"Mod-z",run:Le,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:Z,preventDefault:!0},{linux:"Ctrl-Shift-z",run:Z,preventDefault:!0},{key:"Mod-u",run:pt,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:gt,preventDefault:!0}];function I(e,t){return h.create(e.ranges.map(t),e.mainIndex)}function S(e,t){return e.update({selection:t,scrollIntoView:!0,userEvent:"select"})}function y({state:e,dispatch:t},n){let r=I(e.selection,n);return r.eq(e.selection,!0)?!1:(t(S(e,r)),!0)}function M(e,t){return h.cursor(t?e.to:e.from)}function J(e,t){return y(e,n=>n.empty?e.moveByChar(n,t):M(n,t))}function m(e){return e.textDirectionAt(e.state.selection.main.head)==lt.LTR}const Te=e=>J(e,!m(e)),Oe=e=>J(e,m(e)),bn=e=>J(e,!0),En=e=>J(e,!1);function oe(e,t,n){let r=t.head,l=e.doc.lineAt(r);return r==(n?l.to:l.from)?r=n?Math.min(e.doc.length,l.to+1):Math.max(0,l.from-1):r=l.from+T(l.text,r-l.from,n),h.cursor(r,n?-1:1)}function Ie(e,t){return y(e,n=>n.empty?oe(e.state,n,t):M(n,t))}const Tn=e=>Ie(e,!0),On=e=>Ie(e,!1);function w(e,t){return y(e,n=>n.empty?e.moveByGroup(n,t):M(n,t))}const Dt=e=>w(e,!m(e)),xt=e=>w(e,m(e)),In=e=>w(e,!0),vn=e=>w(e,!1);function le(e,t,n){let r=e.state.charCategorizer(t),l=r(n),o=l!=D.Space;return s=>{let c=r(s);return c!=D.Space?o&&c==l:(o=!1,!0)}}const Rn=e=>y(e,t=>t.empty?e.moveByChar(t,!0,n=>le(e,t.head,n)):M(t,!0)),ue=typeof Intl<"u"&&Intl.Segmenter?new Intl.Segmenter(void 0,{granularity:"word"}):null;function ve(e,t,n){let r=e.state.charCategorizer(t.from),l=D.Space,o=t.from,s=0,c=!1,i=!1,f=!1,u=d=>{if(c)return!1;o+=n?d.length:-d.length;let B=r(d),k;if(B==D.Word&&d.charCodeAt(0)<128&&/[\W_]/.test(d)&&(B=-1),l==D.Space&&(l=B),l!=B)return!1;if(l==D.Word)if(d.toLowerCase()==d){if(!n&&i)return!1;f=!0}else if(f){if(n)return!1;c=!0}else{if(i&&n&&r(k=e.state.sliceDoc(o,o+1))==D.Word&&k.toLowerCase()==k)return!1;i=!0}return s++,!0},a=e.moveByChar(t,n,d=>(u(d),u));if(ue&&l==D.Word&&a.from==t.from+s*(n?1:-1)){let d=Math.min(t.head,a.head),B=Math.max(t.head,a.head),k=e.state.sliceDoc(d,B);if(k.length>1&&/[\u4E00-\uffff]/.test(k)){let R=Array.from(ue.segment(k));if(R.length>1)return n?h.cursor(t.head+R[1].index,-1):h.cursor(a.head+R[R.length-1].index,1)}}return a}function Re(e,t){return y(e,n=>n.empty?ve(e,n,t):M(n,t))}const Fn=e=>Re(e,!0),Gn=e=>Re(e,!1);function Lt(e,t,n){if(t.type.prop(n))return!0;let r=t.to-t.from;return r&&(r>2||/[^\s,.;:]/.test(e.sliceDoc(t.from,t.to)))||t.firstChild}function z(e,t,n){let r=te(e).resolveInner(t.head),l=n?Q.closedBy:Q.openedBy;for(let i=t.head;;){let f=n?r.childAfter(i):r.childBefore(i);if(!f)break;Lt(e,f,l)?r=f:i=n?f.to:f.from}let o=r.type.prop(l),s,c;return o&&(s=n?E(e,r.from,1):E(e,r.to,-1))&&s.matched?c=n?s.end.to:s.end.from:c=n?r.to:r.from,h.cursor(c,n?-1:1)}const Mt=e=>y(e,t=>z(e.state,t,!m(e))),bt=e=>y(e,t=>z(e.state,t,m(e)));function Fe(e,t){return y(e,n=>{if(!n.empty)return M(n,t);let r=e.moveVertically(n,t);return r.head!=n.head?r:e.moveToLineBoundary(n,t)})}const Ge=e=>Fe(e,!1),Ue=e=>Fe(e,!0);function Ve(e){let t=e.scrollDOM.clientHeight<e.scrollDOM.scrollHeight-2,n=0,r=0,l;if(t){for(let o of e.state.facet(O.scrollMargins)){let s=o(e);s?.top&&(n=Math.max(s?.top,n)),s?.bottom&&(r=Math.max(s?.bottom,r))}l=e.scrollDOM.clientHeight-n-r}else l=(e.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:n,marginBottom:r,selfScroll:t,height:Math.max(e.defaultLineHeight,l-5)}}function Ne(e,t){let n=Ve(e),{state:r}=e,l=I(r.selection,s=>s.empty?e.moveVertically(s,t,n.height):M(s,t));if(l.eq(r.selection))return!1;let o;if(n.selfScroll){let s=e.coordsAtPos(r.selection.main.head),c=e.scrollDOM.getBoundingClientRect(),i=c.top+n.marginTop,f=c.bottom-n.marginBottom;s&&s.top>i&&s.bottom<f&&(o=O.scrollIntoView(l.main.head,{y:"start",yMargin:s.top-i}))}return e.dispatch(S(r,l),{effects:o}),!0}const fe=e=>Ne(e,!1),_=e=>Ne(e,!0);function x(e,t,n){let r=e.lineBlockAt(t.head),l=e.moveToLineBoundary(t,n);if(l.head==t.head&&l.head!=(n?r.to:r.from)&&(l=e.moveToLineBoundary(t,n,!1)),!n&&l.head==r.from&&r.length){let o=/^\s*/.exec(e.state.sliceDoc(r.from,Math.min(r.from+100,r.to)))[0].length;o&&t.head!=r.from+o&&(l=h.cursor(r.from+o))}return l}const Et=e=>y(e,t=>x(e,t,!0)),Tt=e=>y(e,t=>x(e,t,!1)),Ot=e=>y(e,t=>x(e,t,!m(e))),It=e=>y(e,t=>x(e,t,m(e))),vt=e=>y(e,t=>h.cursor(e.lineBlockAt(t.head).from,1)),Rt=e=>y(e,t=>h.cursor(e.lineBlockAt(t.head).to,-1));function Pe(e,t,n){let r=!1,l=I(e.selection,o=>{let s=E(e,o.head,-1)||E(e,o.head,1)||o.head>0&&E(e,o.head-1,1)||o.head<e.doc.length&&E(e,o.head+1,-1);if(!s||!s.end)return o;r=!0;let c=s.start.from==o.head?s.end.to:s.end.from;return n?h.range(o.anchor,c):h.cursor(c)});return r?(t(S(e,l)),!0):!1}const Ft=({state:e,dispatch:t})=>Pe(e,t,!1),Un=({state:e,dispatch:t})=>Pe(e,t,!0);function p(e,t,n){let r=I(e.state.selection,l=>{l.undirectional&&l.head>=l.anchor!=t&&(l=h.range(l.head,l.anchor));let o=n(l);return h.range(l.anchor,o.head,o.goalColumn,o.bidiLevel||void 0,o.assoc)});return r.eq(e.state.selection)?!1:(e.dispatch(S(e.state,r)),!0)}function W(e,t){return p(e,t,n=>e.moveByChar(n,t))}const Je=e=>W(e,!m(e)),we=e=>W(e,m(e)),Vn=e=>W(e,!0),Nn=e=>W(e,!1),Pn=e=>p(e,!0,t=>oe(e.state,t,!0)),Jn=e=>p(e,!1,t=>oe(e.state,t,!1));function H(e,t){return p(e,t,n=>e.moveByGroup(n,t))}const Gt=e=>H(e,!m(e)),Ut=e=>H(e,m(e)),wn=e=>H(e,!0),zn=e=>H(e,!1),Wn=e=>p(e,!0,t=>e.moveByChar(t,!0,n=>le(e,t.head,n)));function ze(e,t){return p(e,t,n=>ve(e,n,t))}const Hn=e=>ze(e,!0),qn=e=>ze(e,!1),Vt=e=>{let t=!m(e);return p(e,t,n=>z(e.state,n,t))},Nt=e=>{let t=m(e);return p(e,t,n=>z(e.state,n,t))};function We(e,t){return p(e,t,n=>e.moveVertically(n,t))}const He=e=>We(e,!1),qe=e=>We(e,!0);function Ke(e,t){return p(e,t,n=>e.moveVertically(n,t,Ve(e).height))}const ae=e=>Ke(e,!1),he=e=>Ke(e,!0),Pt=e=>p(e,!0,t=>x(e,t,!0)),Jt=e=>p(e,!1,t=>x(e,t,!1)),wt=e=>{let t=!m(e);return p(e,t,n=>x(e,n,t))},zt=e=>{let t=m(e);return p(e,t,n=>x(e,n,t))},Wt=e=>p(e,!1,t=>h.cursor(e.lineBlockAt(t.head).from)),Ht=e=>p(e,!0,t=>h.cursor(e.lineBlockAt(t.head).to)),de=({state:e,dispatch:t})=>(t(S(e,{anchor:0})),!0),me=({state:e,dispatch:t})=>(t(S(e,{anchor:e.doc.length})),!0),pe=({state:e,dispatch:t})=>(t(S(e,{anchor:e.selection.main.anchor,head:0})),!0),ge=({state:e,dispatch:t})=>(t(S(e,{anchor:e.selection.main.anchor,head:e.doc.length})),!0),qt=({state:e,dispatch:t})=>(t(e.update({selection:{anchor:0,head:e.doc.length},userEvent:"select"})),!0),Kt=({state:e,dispatch:t})=>{let n=q(e).map(({from:r,to:l})=>h.range(r,Math.min(l+1,e.doc.length)));return t(e.update({selection:h.create(n),userEvent:"select"})),!0},$t=({state:e,dispatch:t})=>{let n=I(e.selection,r=>{let l=te(e),o=l.resolveStack(r.from,1);if(r.empty){let s=l.resolveStack(r.from,-1);s.node.from>=o.node.from&&s.node.to<=o.node.to&&(o=s)}for(let s=o;s;s=s.next){let{node:c}=s;if((c.from<r.from&&c.to>=r.to||c.to>r.to&&c.from<=r.from)&&s.next)return h.range(c.to,c.from)}return r});return n.eq(e.selection)?!1:(t(S(e,n)),!0)};function $e(e,t){let{state:n}=e,r=n.selection,l=n.selection.ranges.slice();for(let o of n.selection.ranges){let s=n.doc.lineAt(o.head);if(t?s.to<e.state.doc.length:s.from>0)for(let c=o;;){let i=e.moveVertically(c,t);if(i.head<s.from||i.head>s.to){l.some(f=>f.head==i.head)||l.push(i);break}else{if(i.head==c.head)break;c=i}}}return l.length==r.ranges.length?!1:(e.dispatch(S(n,h.create(l,l.length-1))),!0)}const Qt=e=>$e(e,!1),Xt=e=>$e(e,!0),Yt=({state:e,dispatch:t})=>{let n=e.selection,r=null;return n.ranges.length>1?r=h.create([n.main]):n.main.empty||(r=h.create([h.cursor(n.main.head)])),r?(t(S(e,r)),!0):!1};function b(e,t){if(e.state.readOnly)return!1;let n="delete.selection",{state:r}=e,l=r.changeByRange(o=>{let{from:s,to:c}=o;if(s==c){let i=t(o);i<s?(n="delete.backward",i=F(e,i,!1)):i>s&&(n="delete.forward",i=F(e,i,!0)),s=Math.min(s,i),c=Math.max(c,i)}else s=F(e,s,!1),c=F(e,c,!0);return s==c?{range:o}:{changes:{from:s,to:c},range:h.cursor(s,s<o.head?-1:1)}});return l.changes.empty?!1:(e.dispatch(r.update(l,{scrollIntoView:!0,userEvent:n,effects:n=="delete.selection"?O.announce.of(r.phrase("Selection deleted")):void 0})),!0)}function F(e,t,n){if(e instanceof O)for(let r of e.state.facet(O.atomicRanges).map(l=>l(e)))r.between(t,t,(l,o)=>{l<t&&o>t&&(t=n?o:l)});return t}const se=(e,t,n)=>b(e,r=>{let l=r.from,{state:o}=e,s=o.doc.lineAt(l),c,i;if(n&&!t&&l>s.from&&l<s.from+200&&!/[^ \t]/.test(c=s.text.slice(0,l-s.from))){if(c[c.length-1]==" ")return l-1;let f=ee(c,o.tabSize),u=f%X(o)||X(o);for(let a=0;a<u&&c[c.length-1-a]==" ";a++)l--;i=l}else i=T(s.text,l-s.from,t,t)+s.from,i==l&&s.number!=(t?o.doc.lines:1)?i+=t?1:-1:!t&&/[\ufe00-\ufe0f]/.test(s.text.slice(i-s.from,l-s.from))&&(i=T(s.text,i-s.from,!1,!1)+s.from);return i}),j=e=>se(e,!1,!0),Kn=e=>se(e,!1,!1),Qe=e=>se(e,!0,!1),Xe=(e,t)=>b(e,n=>{let r=n.head,{state:l}=e,o=l.doc.lineAt(r),s=l.charCategorizer(r);for(let c=null;;){if(r==(t?o.to:o.from)){r==n.head&&o.number!=(t?l.doc.lines:1)&&(r+=t?1:-1);break}let i=T(o.text,r-o.from,t)+o.from,f=o.text.slice(Math.min(r,i)-o.from,Math.max(r,i)-o.from),u=s(f);if(c!=null&&u!=c)break;(f!=" "||r!=n.head)&&(c=u),r=i}return r}),Ye=e=>Xe(e,!1),Zt=e=>Xe(e,!0),$n=e=>b(e,t=>e.moveByChar(t,!0,n=>le(e,t.head,n)).head),_t=e=>b(e,t=>{let n=e.lineBlockAt(t.head).to;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)}),Qn=e=>b(e,t=>{let n=e.lineBlockAt(t.head).from;return t.head>n?n:Math.max(0,t.head-1)}),jt=e=>b(e,t=>{let n=e.moveToLineBoundary(t,!1).head;return t.head>n?n:Math.max(0,t.head-1)}),en=e=>b(e,t=>{let n=e.moveToLineBoundary(t,!0).head;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)}),Xn=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=[];for(let r=0,l="",o=e.doc.iter();;){if(o.next(),o.lineBreak||o.done){let s=l.search(/\s+$/);if(s>-1&&n.push({from:r-(l.length-s),to:r}),o.done)break;l=""}else l=o.value;r+=o.value.length}return n.length?(t(e.update({changes:n,userEvent:"delete"})),!0):!1},tn=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(r=>({changes:{from:r.from,to:r.to,insert:ke.of(["",""])},range:h.cursor(r.from)}));return t(e.update(n,{scrollIntoView:!0,userEvent:"input"})),!0},nn=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(r=>{if(!r.empty||r.from==0||r.from==e.doc.length)return{range:r};let l=r.from,o=e.doc.lineAt(l),s=l==o.from?l-1:T(o.text,l-o.from,!1)+o.from,c=l==o.to?l+1:T(o.text,l-o.from,!0)+o.from;return{changes:{from:s,to:c,insert:e.doc.slice(l,c).append(e.doc.slice(s,l))},range:h.cursor(c)}});return n.changes.empty?!1:(t(e.update(n,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function q(e){let t=[],n=-1;for(let r of e.selection.ranges){let l=e.doc.lineAt(r.from),o=e.doc.lineAt(r.to);if(!r.empty&&r.to==o.from&&(o=e.doc.lineAt(r.to-1)),n>=l.number){let s=t[t.length-1];s.to=o.to,s.ranges.push(r)}else t.push({from:l.from,to:o.to,ranges:[r]});n=o.number+1}return t}function Ze(e,t,n){if(e.readOnly)return!1;let r=[],l=[];for(let o of q(e)){if(n?o.to==e.doc.length:o.from==0)continue;let s=e.doc.lineAt(n?o.to+1:o.from-1),c=s.length+1;if(n){r.push({from:o.to,to:s.to},{from:o.from,insert:s.text+e.lineBreak});for(let i of o.ranges)l.push(h.range(Math.min(e.doc.length,i.anchor+c),Math.min(e.doc.length,i.head+c)))}else{r.push({from:s.from,to:o.from},{from:o.to,insert:e.lineBreak+s.text});for(let i of o.ranges)l.push(h.range(i.anchor-c,i.head-c))}}return r.length?(t(e.update({changes:r,scrollIntoView:!0,selection:h.create(l,e.selection.mainIndex),userEvent:"move.line"})),!0):!1}const rn=({state:e,dispatch:t})=>Ze(e,t,!1),on=({state:e,dispatch:t})=>Ze(e,t,!0);function _e(e,t,n){if(e.readOnly)return!1;let r=[];for(let o of q(e))n?r.push({from:o.from,insert:e.doc.slice(o.from,o.to)+e.lineBreak}):r.push({from:o.to,insert:e.lineBreak+e.doc.slice(o.from,o.to)});let l=e.changes(r);return t(e.update({changes:l,selection:e.selection.map(l,n?1:-1),scrollIntoView:!0,userEvent:"input.copyline"})),!0}const ln=({state:e,dispatch:t})=>_e(e,t,!1),sn=({state:e,dispatch:t})=>_e(e,t,!0),cn=e=>{if(e.state.readOnly)return!1;let{state:t}=e,n=t.changes(q(t).map(({from:l,to:o})=>(l>0?l--:o<t.doc.length&&o++,{from:l,to:o}))),r=I(t.selection,l=>{let o;if(e.lineWrapping){let s=e.lineBlockAt(l.head),c=e.coordsAtPos(l.head,l.assoc||1);c&&(o=s.bottom+e.documentTop-c.bottom+e.defaultLineHeight/2)}return e.moveVertically(l,!0,o)}).map(n);return e.dispatch({changes:n,selection:r,scrollIntoView:!0,userEvent:"delete.line"}),!0},Yn=({state:e,dispatch:t})=>(t(e.update(e.replaceSelection(e.lineBreak),{scrollIntoView:!0,userEvent:"input"})),!0),Zn=({state:e,dispatch:t})=>(t(e.update(e.changeByRange(n=>{let r=/^\s*/.exec(e.doc.lineAt(n.from).text)[0];return{changes:{from:n.from,to:n.to,insert:e.lineBreak+r},range:h.cursor(n.from+r.length+1)}}),{scrollIntoView:!0,userEvent:"input"})),!0);function un(e,t){if(/\(\)|\[\]|\{\}/.test(e.sliceDoc(t-1,t+1)))return{from:t,to:t};let n=te(e).resolveInner(t),r=n.childBefore(t),l=n.childAfter(t),o;return r&&l&&r.to<=t&&l.from>=t&&(o=r.type.prop(Q.closedBy))&&o.indexOf(l.name)>-1&&e.doc.lineAt(r.to).from==e.doc.lineAt(l.from).from&&!/\S/.test(e.sliceDoc(r.to,l.from))?{from:r.to,to:l.from}:null}const ye=je(!1),fn=je(!0);function je(e){return({state:t,dispatch:n})=>{if(t.readOnly)return!1;let r=t.changeByRange(l=>{let{from:o,to:s}=l,c=t.doc.lineAt(o),i=!e&&o==s&&un(t,o);e&&(o=s=(s<=c.to?c:t.doc.lineAt(s)).to);let f=new Ce(t,{simulateBreak:o,simulateDoubleBreak:!!i}),u=De(f,o);for(u==null&&(u=ee(/^\s*/.exec(t.doc.lineAt(o).text)[0],t.tabSize));s<c.to&&/\s/.test(c.text[s-c.from]);)s++;i?{from:o,to:s}=i:o>c.from&&o<c.from+100&&!/\S/.test(c.text.slice(0,o))&&(o=c.from);let a=["",G(t,u)];return i&&a.push(G(t,f.lineIndent(c.from,-1))),{changes:{from:o,to:s,insert:ke.of(a)},range:h.cursor(o+1+a[1].length)}});return n(t.update(r,{scrollIntoView:!0,userEvent:"input"})),!0}}function ce(e,t){let n=-1;return e.changeByRange(r=>{let l=[];for(let s=r.from;s<=r.to;){let c=e.doc.lineAt(s);c.number>n&&(r.empty||r.to>c.from)&&(t(c,l,r),n=c.number),s=c.to+1}let o=e.changes(l);return{changes:l,range:h.range(o.mapPos(r.anchor,1),o.mapPos(r.head,1))}})}const an=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=Object.create(null),r=new Ce(e,{overrideIndentation:o=>{let s=n[o];return s??-1}}),l=ce(e,(o,s,c)=>{let i=De(r,o.from);if(i==null)return;/\S/.test(o.text)||(i=0);let f=/^\s*/.exec(o.text)[0],u=G(e,i);(f!=u||c.from<o.from+f.length)&&(n[o.from]=i,s.push({from:o.from,to:o.from+f.length,insert:u}))});return l.changes.empty||t(e.update(l,{userEvent:"indent"})),!0},ie=({state:e,dispatch:t})=>e.readOnly?!1:(t(e.update(ce(e,(n,r)=>{r.push({from:n.from,insert:e.facet(st)})}),{userEvent:"input.indent"})),!0),et=({state:e,dispatch:t})=>e.readOnly?!1:(t(e.update(ce(e,(n,r)=>{let l=/^\s*/.exec(n.text)[0];if(!l)return;let o=ee(l,e.tabSize),s=0,c=G(e,Math.max(0,o-X(e)));for(;s<l.length&&s<c.length&&l.charCodeAt(s)==c.charCodeAt(s);)s++;r.push({from:n.from+s,to:n.from+l.length,insert:c.slice(s)})}),{userEvent:"delete.dedent"})),!0),hn=e=>(e.setTabFocusMode(),!0),_n=e=>(e.setTabFocusMode(2e3),!0),jn=({state:e,dispatch:t})=>e.selection.ranges.some(n=>!n.empty)?ie({state:e,dispatch:t}):(t(e.update(e.replaceSelection(" "),{scrollIntoView:!0,userEvent:"input"})),!0),dn=[{key:"Ctrl-b",run:Te,shift:Je,preventDefault:!0},{key:"Ctrl-f",run:Oe,shift:we},{key:"Ctrl-p",run:Ge,shift:He},{key:"Ctrl-n",run:Ue,shift:qe},{key:"Ctrl-a",run:vt,shift:Wt},{key:"Ctrl-e",run:Rt,shift:Ht},{key:"Ctrl-d",run:Qe},{key:"Ctrl-h",run:j},{key:"Ctrl-k",run:_t},{key:"Ctrl-Alt-h",run:Ye},{key:"Ctrl-o",run:tn},{key:"Ctrl-t",run:nn},{key:"Ctrl-v",run:_}],mn=[{key:"ArrowLeft",run:Te,shift:Je,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:Dt,shift:Gt,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:Ot,shift:wt,preventDefault:!0},{key:"ArrowRight",run:Oe,shift:we,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:xt,shift:Ut,preventDefault:!0},{mac:"Cmd-ArrowRight",run:It,shift:zt,preventDefault:!0},{key:"ArrowUp",run:Ge,shift:He,preventDefault:!0},{mac:"Cmd-ArrowUp",run:de,shift:pe},{mac:"Ctrl-ArrowUp",run:fe,shift:ae},{key:"ArrowDown",run:Ue,shift:qe,preventDefault:!0},{mac:"Cmd-ArrowDown",run:me,shift:ge},{mac:"Ctrl-ArrowDown",run:_,shift:he},{key:"PageUp",run:fe,shift:ae},{key:"PageDown",run:_,shift:he},{key:"Home",run:Tt,shift:Jt,preventDefault:!0},{key:"Mod-Home",run:de,shift:pe},{key:"End",run:Et,shift:Pt,preventDefault:!0},{key:"Mod-End",run:me,shift:ge},{key:"Enter",run:ye,shift:ye},{key:"Mod-a",run:qt},{key:"Backspace",run:j,shift:j,preventDefault:!0},{key:"Delete",run:Qe,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:Ye,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:Zt,preventDefault:!0},{mac:"Mod-Backspace",run:jt,preventDefault:!0},{mac:"Mod-Delete",run:en,preventDefault:!0}].concat(dn.map(e=>({mac:e.key,run:e.run,shift:e.shift}))),er=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:Mt,shift:Vt},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:bt,shift:Nt},{key:"Alt-ArrowUp",run:rn},{key:"Shift-Alt-ArrowUp",run:ln},{key:"Alt-ArrowDown",run:on},{key:"Shift-Alt-ArrowDown",run:sn},{key:"Mod-Alt-ArrowUp",run:Qt},{key:"Mod-Alt-ArrowDown",run:Xt},{key:"Escape",run:Yt},{key:"Mod-Enter",run:fn},{key:"Alt-l",mac:"Ctrl-l",run:Kt},{key:"Mod-i",run:$t,preventDefault:!0},{key:"Mod-[",run:et},{key:"Mod-]",run:ie},{key:"Mod-Alt-\\",run:an},{key:"Shift-Mod-k",run:cn},{key:"Shift-Mod-\\",run:Ft},{key:"Mod-/",run:ct},{key:"Alt-A",run:ut},{key:"Ctrl-m",mac:"Shift-Alt-m",run:hn}].concat(mn),tr={key:"Tab",run:ie,shift:et};export{Qt as addCursorAbove,Xt as addCursorBelow,Bn as blockComment,Sn as blockUncomment,sn as copyLineDown,ln as copyLineUp,En as cursorCharBackward,On as cursorCharBackwardLogical,bn as cursorCharForward,Tn as cursorCharForwardLogical,Te as cursorCharLeft,Oe as cursorCharRight,me as cursorDocEnd,de as cursorDocStart,vn as cursorGroupBackward,In as cursorGroupForward,Rn as cursorGroupForwardWin,Dt as cursorGroupLeft,xt as cursorGroupRight,Tt as cursorLineBoundaryBackward,Et as cursorLineBoundaryForward,Ot as cursorLineBoundaryLeft,It as cursorLineBoundaryRight,Ue as cursorLineDown,Rt as cursorLineEnd,vt as cursorLineStart,Ge as cursorLineUp,Ft as cursorMatchingBracket,_ as cursorPageDown,fe as cursorPageUp,Gn as cursorSubwordBackward,Fn as cursorSubwordForward,Mt as cursorSyntaxLeft,bt as cursorSyntaxRight,er as defaultKeymap,j as deleteCharBackward,Kn as deleteCharBackwardStrict,Qe as deleteCharForward,Ye as deleteGroupBackward,Zt as deleteGroupForward,$n as deleteGroupForwardWin,cn as deleteLine,jt as deleteLineBoundaryBackward,en as deleteLineBoundaryForward,_t as deleteToLineEnd,Qn as deleteToLineStart,Xn as deleteTrailingWhitespace,dn as emacsStyleKeymap,Cn as history,Dn as historyField,Mn as historyKeymap,et as indentLess,ie as indentMore,an as indentSelection,tr as indentWithTab,fn as insertBlankLine,Yn as insertNewline,ye as insertNewlineAndIndent,Zn as insertNewlineKeepIndent,jn as insertTab,mt as invertedEffects,dt as isolateHistory,kn as lineComment,An as lineUncomment,on as moveLineDown,rn as moveLineUp,Z as redo,Ln as redoDepth,gt as redoSelection,qt as selectAll,Nn as selectCharBackward,Jn as selectCharBackwardLogical,Vn as selectCharForward,Pn as selectCharForwardLogical,Je as selectCharLeft,we as selectCharRight,ge as selectDocEnd,pe as selectDocStart,zn as selectGroupBackward,wn as selectGroupForward,Wn as selectGroupForwardWin,Gt as selectGroupLeft,Ut as selectGroupRight,Kt as selectLine,Jt as selectLineBoundaryBackward,Pt as selectLineBoundaryForward,wt as selectLineBoundaryLeft,zt as selectLineBoundaryRight,qe as selectLineDown,Ht as selectLineEnd,Wt as selectLineStart,He as selectLineUp,Un as selectMatchingBracket,he as selectPageDown,ae as selectPageUp,$t as selectParentSyntax,qn as selectSubwordBackward,Hn as selectSubwordForward,Vt as selectSyntaxLeft,Nt as selectSyntaxRight,Yt as simplifySelection,tn as splitLine,mn as standardKeymap,_n as temporarilySetTabFocusMode,ut as toggleBlockComment,ft as toggleBlockCommentByLine,ct as toggleComment,it as toggleLineComment,hn as toggleTabFocusMode,nn as transposeChars,Le as undo,xn as undoDepth,pt as undoSelection};
@@ -0,0 +1,134 @@
1
+ import{V as R,p as $n,a0 as Qt,g as Je,M as Ve,a as kt,bi as ut,bj as _t,q as yn,ap as Qe,aF as me,aC as Jt,aB as On,aX as Oe,C as Ge,a$ as ze,r as Ln,b0 as $e,aZ as tr,bt as nr,H as er,z as rr}from"./three.module-D396a9Mn.js";import{M as or,E as Gn}from"./MeshBVH-BiDHDcu-.js";const Re=1e-6,ir=Re*.5,ke=Math.pow(10,-Math.log10(Re)),ar=ir*ke;function Tt(d){return~~(d*ke+ar)}function hr(d){return`${Tt(d.x)},${Tt(d.y)}`}function Fn(d){return`${Tt(d.x)},${Tt(d.y)},${Tt(d.z)}`}function cr(d){return`${Tt(d.x)},${Tt(d.y)},${Tt(d.z)},${Tt(d.w)}`}function fe(d,r,h){h.direction.subVectors(r,d).normalize();const p=d.dot(h.direction);return h.origin.copy(d).addScaledVector(h.direction,-p),h}function Le(){return typeof SharedArrayBuffer<"u"}function sr(d){if(d.buffer instanceof SharedArrayBuffer)return d;const r=d.constructor,h=d.buffer,p=new SharedArrayBuffer(h.byteLength),w=new Uint8Array(h);return new Uint8Array(p).set(w,0),new r(p)}function gr(d){return d.index?d.index.count:d.attributes.position.count}function mt(d){return gr(d)/3}const lr=1e-8,vr=new R;function pr(d){return~~(d/3)}function ur(d){return d%3}function jn(d,r){return d.start-r.start}function Hn(d,r){return vr.subVectors(r,d.origin).dot(d.direction)}function wr(d,r,h,p=lr){d.sort(jn),r.sort(jn);for(let x=0;x<d.length;x++){const I=d[x];for(let v=0;v<r.length;v++){const o=r[v];if(!(o.start>I.end)){if(I.end<o.start||o.end<I.start)continue;if(I.start<=o.start&&I.end>=o.end)y(o.end,I.end)||d.splice(x+1,0,{start:o.end,end:I.end,index:I.index}),I.end=o.start,o.start=0,o.end=0;else if(I.start>=o.start&&I.end<=o.end)y(I.end,o.end)||r.splice(v+1,0,{start:I.end,end:o.end,index:o.index}),o.end=I.start,I.start=0,I.end=0;else if(I.start<=o.start&&I.end<=o.end){const g=I.end;I.end=o.start,o.start=g}else if(I.start>=o.start&&I.end>=o.end){const g=o.end;o.end=I.start,I.start=g}else throw new Error}if(h.has(I.index)||h.set(I.index,[]),h.has(o.index)||h.set(o.index,[]),h.get(I.index).push(o.index),h.get(o.index).push(I.index),T(o)&&(r.splice(v,1),v--),T(I)){d.splice(x,1),x--;break}}}w(d),w(r);function w(x){for(let I=0;I<x.length;I++)T(x[I])&&(x.splice(I,1),I--)}function y(x,I){return Math.abs(I-x)<p}function T(x){return Math.abs(x.end-x.start)<p}}const Un=1e-5,qn=1e-4;class yr{constructor(){this._rays=[]}addRay(r){this._rays.push(r)}findClosestRay(r){const h=this._rays,p=r.clone();p.direction.multiplyScalar(-1);let w=1/0,y=null;for(let I=0,v=h.length;I<v;I++){const o=h[I];if(T(o,r)&&T(o,p))continue;const g=x(o,r),u=x(o,p),A=Math.min(g,u);A<w&&(w=A,y=o)}return y;function T(I,v){const o=I.origin.distanceTo(v.origin)>Un;return I.direction.angleTo(v.direction)>qn||o}function x(I,v){const o=I.origin.distanceTo(v.origin),g=I.direction.angleTo(v.direction);return o/Un+g/qn}}}const bn=new R,dn=new R,tn=new $n;function xr(d,r,h){const p=d.attributes,w=d.index,y=p.position,T=new Map,x=new Map,I=Array.from(r),v=new yr;for(let o=0,g=I.length;o<g;o++){const u=I[o],A=pr(u),E=ur(u);let M=3*A+E,S=3*A+(E+1)%3;w&&(M=w.getX(M),S=w.getX(S)),bn.fromBufferAttribute(y,M),dn.fromBufferAttribute(y,S),fe(bn,dn,tn);let C,P=v.findClosestRay(tn);P===null&&(P=tn.clone(),v.addRay(P)),x.has(P)||x.set(P,{forward:[],reverse:[],ray:P}),C=x.get(P);let e=Hn(P,bn),n=Hn(P,dn);e>n&&([e,n]=[n,e]),tn.direction.dot(P.direction)<0?C.reverse.push({start:e,end:n,index:u}):C.forward.push({start:e,end:n,index:u})}return x.forEach(({forward:o,reverse:g},u)=>{wr(o,g,T,h),o.length===0&&g.length===0&&x.delete(u)}),{disjointConnectivityMap:T,fragmentMap:x}}const br=new Je,_n=new R,dr=new Qt,In=["","",""];class _r{constructor(){this.data=null,this.disjointConnections=null,this.unmatchedDisjointEdges=null,this.unmatchedEdges=-1,this.matchedEdges=-1,this.useDrawRange=!0,this.useAllAttributes=!1,this.matchDisjointEdges=!1,this.degenerateEpsilon=1e-8}getSiblingTriangleIndex(r,h){const p=this.data[r*3+h];return p===-1?-1:~~(p/3)}getSiblingEdgeIndex(r,h){const p=this.data[r*3+h];return p===-1?-1:p%3}getDisjointSiblingTriangleIndices(r,h){const p=r*3+h,w=this.disjointConnections.get(p);return w?w.map(y=>~~(y/3)):[]}getDisjointSiblingEdgeIndices(r,h){const p=r*3+h,w=this.disjointConnections.get(p);return w?w.map(y=>y%3):[]}isFullyConnected(){return this.unmatchedEdges===0}updateFrom(r){const{useAllAttributes:h,useDrawRange:p,matchDisjointEdges:w,degenerateEpsilon:y}=this,T=h?e:P,x=new Map,{attributes:I}=r,v=h?Object.keys(I):null,o=r.index,g=I.position;let u=mt(r);const A=u;let E=0;p&&(E=r.drawRange.start,r.drawRange.count!==1/0&&(u=~~(r.drawRange.count/3)));let M=this.data;(!M||M.length<3*A)&&(M=new Int32Array(3*A)),M.fill(-1);let S=0,C=new Set;for(let n=E,i=u*3+E;n<i;n+=3){const t=n;for(let D=0;D<3;D++){let b=t+D;o&&(b=o.getX(b)),In[D]=T(b)}for(let D=0;D<3;D++){const b=(D+1)%3,a=In[D],c=In[b],s=`${c}_${a}`;if(x.has(s)){const l=t+D,_=x.get(s);M[l]=_,M[_]=l,x.delete(s),S+=2,C.delete(_)}else{const l=`${a}_${c}`,_=t+D;x.set(l,_),C.add(_)}}}if(w){const{fragmentMap:n,disjointConnectivityMap:i}=xr(r,C,y);C.clear(),n.forEach(({forward:t,reverse:D})=>{t.forEach(({index:b})=>C.add(b)),D.forEach(({index:b})=>C.add(b))}),this.unmatchedDisjointEdges=n,this.disjointConnections=i,S=u*3-C.size}this.matchedEdges=S,this.unmatchedEdges=C.size,this.data=M;function P(n){return _n.fromBufferAttribute(g,n),Fn(_n)}function e(n){let i="";for(let t=0,D=v.length;t<D;t++){const b=I[v[t]];let a;switch(b.itemSize){case 1:a=Tt(b.getX(n));break;case 2:a=hr(br.fromBufferAttribute(b,n));break;case 3:a=Fn(_n.fromBufferAttribute(b,n));break;case 4:a=cr(dr.fromBufferAttribute(b,n));break}i!==""&&(i+="|"),i+=a}return i}}}class zn extends Ve{constructor(...r){super(...r),this.isBrush=!0,this._previousMatrix=new kt,this._previousMatrix.elements.fill(0),this._halfEdges=null,this._boundsTree=null,this._groupIndices=null,this._hash=null}markUpdated(){this._previousMatrix.copy(this.matrix)}isDirty(){const{matrix:r,_previousMatrix:h}=this,p=r.elements,w=h.elements;for(let y=0;y<16;y++)if(p[y]!==w[y])return!0;return!1}prepareGeometry(){const r=this.geometry,h=r.attributes,p=Le(),w=r.index,y=r.attributes.position,T=w?`${w.uuid}_${w.count}_${w.version}`:"-1_-1_-1",x=`${y.uuid}_${y.count}_${y.version}`,I=`${r.uuid}_${T}_${x}`;if(this._hash===I)return;if(this._hash=I,p)for(const u in h){const A=h[u];if(A.isInterleavedBufferAttribute)throw new Error("Brush: InterleavedBufferAttributes are not supported.");A.array=sr(A.array)}r.boundsTree=new or(r,{maxLeafSize:3,indirect:!0,useSharedArrayBuffer:p}),r.halfEdges||(r.halfEdges=new _r),r.halfEdges.updateFrom(r);const v=mt(r);(!r.groupIndices||r.groupIndices.length!==v)&&(r.groupIndices=new Uint16Array(v));const o=r.groupIndices,g=r.groups;for(let u=0,A=g.length;u<A;u++){const{start:E,count:M}=g[u];for(let S=E/3,C=(E+M)/3;S<C;S++)o[S]=u}}disposeCacheData(){const{geometry:r}=this;r.halfEdges=null,r.boundsTree=null,r.groupIndices=null}}var Ir=Object.getOwnPropertyNames,wt=(d,r)=>function(){return r||(0,d[Ir(d)[0]])((r={exports:{}}).exports,r),r.exports},xn=wt({"node_modules/binary-search-bounds/search-bounds.js"(d,r){function h(I,v,o,g,u){for(var A=u+1;g<=u;){var E=g+u>>>1,M=I[E],S=o!==void 0?o(M,v):M-v;S>=0?(A=E,u=E-1):g=E+1}return A}function p(I,v,o,g,u){for(var A=u+1;g<=u;){var E=g+u>>>1,M=I[E],S=o!==void 0?o(M,v):M-v;S>0?(A=E,u=E-1):g=E+1}return A}function w(I,v,o,g,u){for(var A=g-1;g<=u;){var E=g+u>>>1,M=I[E],S=o!==void 0?o(M,v):M-v;S<0?(A=E,g=E+1):u=E-1}return A}function y(I,v,o,g,u){for(var A=g-1;g<=u;){var E=g+u>>>1,M=I[E],S=o!==void 0?o(M,v):M-v;S<=0?(A=E,g=E+1):u=E-1}return A}function T(I,v,o,g,u){for(;g<=u;){var A=g+u>>>1,E=I[A],M=o!==void 0?o(E,v):E-v;if(M===0)return A;M<=0?g=A+1:u=A-1}return-1}function x(I,v,o,g,u,A){return typeof o=="function"?A(I,v,o,g===void 0?0:g|0,u===void 0?I.length-1:u|0):A(I,v,void 0,o===void 0?0:o|0,g===void 0?I.length-1:g|0)}r.exports={ge:function(I,v,o,g,u){return x(I,v,o,g,u,h)},gt:function(I,v,o,g,u){return x(I,v,o,g,u,p)},lt:function(I,v,o,g,u){return x(I,v,o,g,u,w)},le:function(I,v,o,g,u){return x(I,v,o,g,u,y)},eq:function(I,v,o,g,u){return x(I,v,o,g,u,T)}}}}),Rn=wt({"node_modules/two-product/two-product.js"(d,r){r.exports=p;var h=+(Math.pow(2,27)+1);function p(w,y,T){var x=w*y,I=h*w,v=I-w,o=I-v,g=w-o,u=h*y,A=u-y,E=u-A,M=y-E,S=x-o*E,C=S-g*E,P=C-o*M,e=g*M-P;return T?(T[0]=e,T[1]=x,T):[e,x]}}}),Fe=wt({"node_modules/robust-sum/robust-sum.js"(d,r){r.exports=p;function h(w,y){var T=w+y,x=T-w,I=T-x,v=y-x,o=w-I,g=o+v;return g?[g,T]:[T]}function p(w,y){var T=w.length|0,x=y.length|0;if(T===1&&x===1)return h(w[0],y[0]);var I=T+x,v=new Array(I),o=0,g=0,u=0,A=Math.abs,E=w[g],M=A(E),S=y[u],C=A(S),P,e;M<C?(e=E,g+=1,g<T&&(E=w[g],M=A(E))):(e=S,u+=1,u<x&&(S=y[u],C=A(S))),g<T&&M<C||u>=x?(P=E,g+=1,g<T&&(E=w[g],M=A(E))):(P=S,u+=1,u<x&&(S=y[u],C=A(S)));for(var n=P+e,i=n-P,t=e-i,D=t,b=n,a,c,s,l,_;g<T&&u<x;)M<C?(P=E,g+=1,g<T&&(E=w[g],M=A(E))):(P=S,u+=1,u<x&&(S=y[u],C=A(S))),e=D,n=P+e,i=n-P,t=e-i,t&&(v[o++]=t),a=b+n,c=a-b,s=a-c,l=n-c,_=b-s,D=_+l,b=a;for(;g<T;)P=E,e=D,n=P+e,i=n-P,t=e-i,t&&(v[o++]=t),a=b+n,c=a-b,s=a-c,l=n-c,_=b-s,D=_+l,b=a,g+=1,g<T&&(E=w[g]);for(;u<x;)P=S,e=D,n=P+e,i=n-P,t=e-i,t&&(v[o++]=t),a=b+n,c=a-b,s=a-c,l=n-c,_=b-s,D=_+l,b=a,u+=1,u<x&&(S=y[u]);return D&&(v[o++]=D),b&&(v[o++]=b),o||(v[o++]=0),v.length=o,v}}}),Ar=wt({"node_modules/two-sum/two-sum.js"(d,r){r.exports=h;function h(p,w,y){var T=p+w,x=T-p,I=T-x,v=w-x,o=p-I;return y?(y[0]=o+v,y[1]=T,y):[o+v,T]}}}),je=wt({"node_modules/robust-scale/robust-scale.js"(d,r){var h=Rn(),p=Ar();r.exports=w;function w(y,T){var x=y.length;if(x===1){var I=h(y[0],T);return I[0]?I:[I[1]]}var v=new Array(2*x),o=[.1,.1],g=[.1,.1],u=0;h(y[0],T,o),o[0]&&(v[u++]=o[0]);for(var A=1;A<x;++A){h(y[A],T,g);var E=o[1];p(E,g[0],o),o[0]&&(v[u++]=o[0]);var M=g[1],S=o[1],C=M+S,P=C-M,e=S-P;o[1]=C,e&&(v[u++]=e)}return o[1]&&(v[u++]=o[1]),u===0&&(v[u++]=0),v.length=u,v}}}),He=wt({"node_modules/robust-subtract/robust-diff.js"(d,r){r.exports=p;function h(w,y){var T=w+y,x=T-w,I=T-x,v=y-x,o=w-I,g=o+v;return g?[g,T]:[T]}function p(w,y){var T=w.length|0,x=y.length|0;if(T===1&&x===1)return h(w[0],-y[0]);var I=T+x,v=new Array(I),o=0,g=0,u=0,A=Math.abs,E=w[g],M=A(E),S=-y[u],C=A(S),P,e;M<C?(e=E,g+=1,g<T&&(E=w[g],M=A(E))):(e=S,u+=1,u<x&&(S=-y[u],C=A(S))),g<T&&M<C||u>=x?(P=E,g+=1,g<T&&(E=w[g],M=A(E))):(P=S,u+=1,u<x&&(S=-y[u],C=A(S)));for(var n=P+e,i=n-P,t=e-i,D=t,b=n,a,c,s,l,_;g<T&&u<x;)M<C?(P=E,g+=1,g<T&&(E=w[g],M=A(E))):(P=S,u+=1,u<x&&(S=-y[u],C=A(S))),e=D,n=P+e,i=n-P,t=e-i,t&&(v[o++]=t),a=b+n,c=a-b,s=a-c,l=n-c,_=b-s,D=_+l,b=a;for(;g<T;)P=E,e=D,n=P+e,i=n-P,t=e-i,t&&(v[o++]=t),a=b+n,c=a-b,s=a-c,l=n-c,_=b-s,D=_+l,b=a,g+=1,g<T&&(E=w[g]);for(;u<x;)P=S,e=D,n=P+e,i=n-P,t=e-i,t&&(v[o++]=t),a=b+n,c=a-b,s=a-c,l=n-c,_=b-s,D=_+l,b=a,u+=1,u<x&&(S=-y[u]);return D&&(v[o++]=D),b&&(v[o++]=b),o||(v[o++]=0),v.length=o,v}}}),Tr=wt({"node_modules/robust-orientation/orientation.js"(d,r){var h=Rn(),p=Fe(),w=je(),y=He(),T=5,x=11102230246251565e-32,I=(3+16*x)*x,v=(7+56*x)*x;function o(n,i,t,D){return function(a,c,s){var l=n(n(i(c[1],s[0]),i(-s[1],c[0])),n(i(a[1],c[0]),i(-c[1],a[0]))),_=n(i(a[1],s[0]),i(-s[1],a[0])),G=D(l,_);return G[G.length-1]}}function g(n,i,t,D){return function(a,c,s,l){var _=n(n(t(n(i(s[1],l[0]),i(-l[1],s[0])),c[2]),n(t(n(i(c[1],l[0]),i(-l[1],c[0])),-s[2]),t(n(i(c[1],s[0]),i(-s[1],c[0])),l[2]))),n(t(n(i(c[1],l[0]),i(-l[1],c[0])),a[2]),n(t(n(i(a[1],l[0]),i(-l[1],a[0])),-c[2]),t(n(i(a[1],c[0]),i(-c[1],a[0])),l[2])))),G=n(n(t(n(i(s[1],l[0]),i(-l[1],s[0])),a[2]),n(t(n(i(a[1],l[0]),i(-l[1],a[0])),-s[2]),t(n(i(a[1],s[0]),i(-s[1],a[0])),l[2]))),n(t(n(i(c[1],s[0]),i(-s[1],c[0])),a[2]),n(t(n(i(a[1],s[0]),i(-s[1],a[0])),-c[2]),t(n(i(a[1],c[0]),i(-c[1],a[0])),s[2])))),N=D(_,G);return N[N.length-1]}}function u(n,i,t,D){return function(a,c,s,l,_){var G=n(n(n(t(n(t(n(i(l[1],_[0]),i(-_[1],l[0])),s[2]),n(t(n(i(s[1],_[0]),i(-_[1],s[0])),-l[2]),t(n(i(s[1],l[0]),i(-l[1],s[0])),_[2]))),c[3]),n(t(n(t(n(i(l[1],_[0]),i(-_[1],l[0])),c[2]),n(t(n(i(c[1],_[0]),i(-_[1],c[0])),-l[2]),t(n(i(c[1],l[0]),i(-l[1],c[0])),_[2]))),-s[3]),t(n(t(n(i(s[1],_[0]),i(-_[1],s[0])),c[2]),n(t(n(i(c[1],_[0]),i(-_[1],c[0])),-s[2]),t(n(i(c[1],s[0]),i(-s[1],c[0])),_[2]))),l[3]))),n(t(n(t(n(i(s[1],l[0]),i(-l[1],s[0])),c[2]),n(t(n(i(c[1],l[0]),i(-l[1],c[0])),-s[2]),t(n(i(c[1],s[0]),i(-s[1],c[0])),l[2]))),-_[3]),n(t(n(t(n(i(l[1],_[0]),i(-_[1],l[0])),c[2]),n(t(n(i(c[1],_[0]),i(-_[1],c[0])),-l[2]),t(n(i(c[1],l[0]),i(-l[1],c[0])),_[2]))),a[3]),t(n(t(n(i(l[1],_[0]),i(-_[1],l[0])),a[2]),n(t(n(i(a[1],_[0]),i(-_[1],a[0])),-l[2]),t(n(i(a[1],l[0]),i(-l[1],a[0])),_[2]))),-c[3])))),n(n(t(n(t(n(i(c[1],_[0]),i(-_[1],c[0])),a[2]),n(t(n(i(a[1],_[0]),i(-_[1],a[0])),-c[2]),t(n(i(a[1],c[0]),i(-c[1],a[0])),_[2]))),l[3]),n(t(n(t(n(i(c[1],l[0]),i(-l[1],c[0])),a[2]),n(t(n(i(a[1],l[0]),i(-l[1],a[0])),-c[2]),t(n(i(a[1],c[0]),i(-c[1],a[0])),l[2]))),-_[3]),t(n(t(n(i(s[1],l[0]),i(-l[1],s[0])),c[2]),n(t(n(i(c[1],l[0]),i(-l[1],c[0])),-s[2]),t(n(i(c[1],s[0]),i(-s[1],c[0])),l[2]))),a[3]))),n(t(n(t(n(i(s[1],l[0]),i(-l[1],s[0])),a[2]),n(t(n(i(a[1],l[0]),i(-l[1],a[0])),-s[2]),t(n(i(a[1],s[0]),i(-s[1],a[0])),l[2]))),-c[3]),n(t(n(t(n(i(c[1],l[0]),i(-l[1],c[0])),a[2]),n(t(n(i(a[1],l[0]),i(-l[1],a[0])),-c[2]),t(n(i(a[1],c[0]),i(-c[1],a[0])),l[2]))),s[3]),t(n(t(n(i(c[1],s[0]),i(-s[1],c[0])),a[2]),n(t(n(i(a[1],s[0]),i(-s[1],a[0])),-c[2]),t(n(i(a[1],c[0]),i(-c[1],a[0])),s[2]))),-l[3]))))),N=n(n(n(t(n(t(n(i(l[1],_[0]),i(-_[1],l[0])),s[2]),n(t(n(i(s[1],_[0]),i(-_[1],s[0])),-l[2]),t(n(i(s[1],l[0]),i(-l[1],s[0])),_[2]))),a[3]),t(n(t(n(i(l[1],_[0]),i(-_[1],l[0])),a[2]),n(t(n(i(a[1],_[0]),i(-_[1],a[0])),-l[2]),t(n(i(a[1],l[0]),i(-l[1],a[0])),_[2]))),-s[3])),n(t(n(t(n(i(s[1],_[0]),i(-_[1],s[0])),a[2]),n(t(n(i(a[1],_[0]),i(-_[1],a[0])),-s[2]),t(n(i(a[1],s[0]),i(-s[1],a[0])),_[2]))),l[3]),t(n(t(n(i(s[1],l[0]),i(-l[1],s[0])),a[2]),n(t(n(i(a[1],l[0]),i(-l[1],a[0])),-s[2]),t(n(i(a[1],s[0]),i(-s[1],a[0])),l[2]))),-_[3]))),n(n(t(n(t(n(i(s[1],_[0]),i(-_[1],s[0])),c[2]),n(t(n(i(c[1],_[0]),i(-_[1],c[0])),-s[2]),t(n(i(c[1],s[0]),i(-s[1],c[0])),_[2]))),a[3]),t(n(t(n(i(s[1],_[0]),i(-_[1],s[0])),a[2]),n(t(n(i(a[1],_[0]),i(-_[1],a[0])),-s[2]),t(n(i(a[1],s[0]),i(-s[1],a[0])),_[2]))),-c[3])),n(t(n(t(n(i(c[1],_[0]),i(-_[1],c[0])),a[2]),n(t(n(i(a[1],_[0]),i(-_[1],a[0])),-c[2]),t(n(i(a[1],c[0]),i(-c[1],a[0])),_[2]))),s[3]),t(n(t(n(i(c[1],s[0]),i(-s[1],c[0])),a[2]),n(t(n(i(a[1],s[0]),i(-s[1],a[0])),-c[2]),t(n(i(a[1],c[0]),i(-c[1],a[0])),s[2]))),-_[3])))),O=D(G,N);return O[O.length-1]}}function A(n){var i=n===3?o:n===4?g:u;return i(p,h,w,y)}var E=A(3),M=A(4),S=[function(){return 0},function(){return 0},function(i,t){return t[0]-i[0]},function(i,t,D){var b=(i[1]-D[1])*(t[0]-D[0]),a=(i[0]-D[0])*(t[1]-D[1]),c=b-a,s;if(b>0){if(a<=0)return c;s=b+a}else if(b<0){if(a>=0)return c;s=-(b+a)}else return c;var l=I*s;return c>=l||c<=-l?c:E(i,t,D)},function(i,t,D,b){var a=i[0]-b[0],c=t[0]-b[0],s=D[0]-b[0],l=i[1]-b[1],_=t[1]-b[1],G=D[1]-b[1],N=i[2]-b[2],O=t[2]-b[2],B=D[2]-b[2],V=c*G,z=s*_,Q=s*l,$=a*G,k=a*_,F=c*l,f=N*(V-z)+O*(Q-$)+B*(k-F),j=(Math.abs(V)+Math.abs(z))*Math.abs(N)+(Math.abs(Q)+Math.abs($))*Math.abs(O)+(Math.abs(k)+Math.abs(F))*Math.abs(B),nt=v*j;return f>nt||-f>nt?f:M(i,t,D,b)}];function C(n){var i=S[n.length];return i||(i=S[n.length]=A(n.length)),i.apply(void 0,n)}function P(n,i,t,D,b,a,c){return function(l,_,G,N,O){switch(arguments.length){case 0:case 1:return 0;case 2:return D(l,_);case 3:return b(l,_,G);case 4:return a(l,_,G,N);case 5:return c(l,_,G,N,O)}for(var B=new Array(arguments.length),V=0;V<arguments.length;++V)B[V]=arguments[V];return n(B)}}function e(){for(;S.length<=T;)S.push(A(S.length));r.exports=P.apply(void 0,[C].concat(S));for(var n=0;n<=T;++n)r.exports[n]=S[n]}e()}}),Er=wt({"node_modules/cdt2d/lib/monotone.js"(d,r){var h=xn(),p=Tr()[3],w=0,y=1,T=2;r.exports=M;function x(S,C,P,e,n){this.a=S,this.b=C,this.idx=P,this.lowerIds=e,this.upperIds=n}function I(S,C,P,e){this.a=S,this.b=C,this.type=P,this.idx=e}function v(S,C){var P=S.a[0]-C.a[0]||S.a[1]-C.a[1]||S.type-C.type;return P||S.type!==w&&(P=p(S.a,S.b,C.b),P)?P:S.idx-C.idx}function o(S,C){return p(S.a,S.b,C)}function g(S,C,P,e,n){for(var i=h.lt(C,e,o),t=h.gt(C,e,o),D=i;D<t;++D){for(var b=C[D],a=b.lowerIds,s=a.length;s>1&&p(P[a[s-2]],P[a[s-1]],e)>0;)S.push([a[s-1],a[s-2],n]),s-=1;a.length=s,a.push(n);for(var c=b.upperIds,s=c.length;s>1&&p(P[c[s-2]],P[c[s-1]],e)<0;)S.push([c[s-2],c[s-1],n]),s-=1;c.length=s,c.push(n)}}function u(S,C){var P;return S.a[0]<C.a[0]?P=p(S.a,S.b,C.a):P=p(C.b,C.a,S.a),P||(C.b[0]<S.b[0]?P=p(S.a,S.b,C.b):P=p(C.b,C.a,S.b),P||S.idx-C.idx)}function A(S,C,P){var e=h.le(S,P,u),n=S[e],i=n.upperIds,t=i[i.length-1];n.upperIds=[t],S.splice(e+1,0,new x(P.a,P.b,P.idx,[t],i))}function E(S,C,P){var e=P.a;P.a=P.b,P.b=e;var n=h.eq(S,P,u),i=S[n],t=S[n-1];t.upperIds=i.upperIds,S.splice(n,1)}function M(S,C){for(var P=S.length,e=C.length,n=[],i=0;i<P;++i)n.push(new I(S[i],null,w,i));for(var i=0;i<e;++i){var t=C[i],D=S[t[0]],b=S[t[1]];D[0]<b[0]?n.push(new I(D,b,T,i),new I(b,D,y,i)):D[0]>b[0]&&n.push(new I(b,D,T,i),new I(D,b,y,i))}n.sort(v);for(var a=n[0].a[0]-(1+Math.abs(n[0].a[0]))*Math.pow(2,-52),c=[new x([a,1],[a,0],-1,[],[])],s=[],i=0,l=n.length;i<l;++i){var _=n[i],G=_.type;G===w?g(s,c,S,_.a,_.idx):G===T?A(c,S,_):E(c,S,_)}return s}}}),Sr=wt({"node_modules/cdt2d/lib/triangulation.js"(d,r){var h=xn();r.exports=T;function p(x,I){this.stars=x,this.edges=I}var w=p.prototype;function y(x,I,v){for(var o=1,g=x.length;o<g;o+=2)if(x[o-1]===I&&x[o]===v){x[o-1]=x[g-2],x[o]=x[g-1],x.length=g-2;return}}w.isConstraint=(function(){var x=[0,0];function I(v,o){return v[0]-o[0]||v[1]-o[1]}return function(v,o){return x[0]=Math.min(v,o),x[1]=Math.max(v,o),h.eq(this.edges,x,I)>=0}})(),w.removeTriangle=function(x,I,v){var o=this.stars;y(o[x],I,v),y(o[I],v,x),y(o[v],x,I)},w.addTriangle=function(x,I,v){var o=this.stars;o[x].push(I,v),o[I].push(v,x),o[v].push(x,I)},w.opposite=function(x,I){for(var v=this.stars[I],o=1,g=v.length;o<g;o+=2)if(v[o]===x)return v[o-1];return-1},w.flip=function(x,I){var v=this.opposite(x,I),o=this.opposite(I,x);this.removeTriangle(x,I,v),this.removeTriangle(I,x,o),this.addTriangle(x,o,v),this.addTriangle(I,v,o)},w.edges=function(){for(var x=this.stars,I=[],v=0,o=x.length;v<o;++v)for(var g=x[v],u=0,A=g.length;u<A;u+=2)I.push([g[u],g[u+1]]);return I},w.cells=function(){for(var x=this.stars,I=[],v=0,o=x.length;v<o;++v)for(var g=x[v],u=0,A=g.length;u<A;u+=2){var E=g[u],M=g[u+1];v<Math.min(E,M)&&I.push([v,E,M])}return I};function T(x,I){for(var v=new Array(x),o=0;o<x;++o)v[o]=[];return new p(v,I)}}}),Mr=wt({"node_modules/robust-in-sphere/in-sphere.js"(d,r){var h=Rn(),p=Fe(),w=He(),y=je(),T=6;function x(e){var n=e===3?g:e===4?u:e===5?A:E;return n(p,w,h,y)}function I(){return 0}function v(){return 0}function o(){return 0}function g(e,n,i,t){function D(b,a,c){var s=i(b[0],b[0]),l=t(s,a[0]),_=t(s,c[0]),G=i(a[0],a[0]),N=t(G,b[0]),O=t(G,c[0]),B=i(c[0],c[0]),V=t(B,b[0]),z=t(B,a[0]),Q=e(n(z,O),n(N,l)),$=n(V,_),k=n(Q,$);return k[k.length-1]}return D}function u(e,n,i,t){function D(b,a,c,s){var l=e(i(b[0],b[0]),i(b[1],b[1])),_=t(l,a[0]),G=t(l,c[0]),N=t(l,s[0]),O=e(i(a[0],a[0]),i(a[1],a[1])),B=t(O,b[0]),V=t(O,c[0]),z=t(O,s[0]),Q=e(i(c[0],c[0]),i(c[1],c[1])),$=t(Q,b[0]),k=t(Q,a[0]),F=t(Q,s[0]),f=e(i(s[0],s[0]),i(s[1],s[1])),j=t(f,b[0]),nt=t(f,a[0]),H=t(f,c[0]),q=e(e(t(n(H,F),a[1]),e(t(n(nt,z),-c[1]),t(n(k,V),s[1]))),e(t(n(nt,z),b[1]),e(t(n(j,N),-a[1]),t(n(B,_),s[1])))),L=e(e(t(n(H,F),b[1]),e(t(n(j,N),-c[1]),t(n($,G),s[1]))),e(t(n(k,V),b[1]),e(t(n($,G),-a[1]),t(n(B,_),c[1])))),U=n(q,L);return U[U.length-1]}return D}function A(e,n,i,t){function D(b,a,c,s,l){var _=e(i(b[0],b[0]),e(i(b[1],b[1]),i(b[2],b[2]))),G=t(_,a[0]),N=t(_,c[0]),O=t(_,s[0]),B=t(_,l[0]),V=e(i(a[0],a[0]),e(i(a[1],a[1]),i(a[2],a[2]))),z=t(V,b[0]),Q=t(V,c[0]),$=t(V,s[0]),k=t(V,l[0]),F=e(i(c[0],c[0]),e(i(c[1],c[1]),i(c[2],c[2]))),f=t(F,b[0]),j=t(F,a[0]),nt=t(F,s[0]),H=t(F,l[0]),q=e(i(s[0],s[0]),e(i(s[1],s[1]),i(s[2],s[2]))),L=t(q,b[0]),U=t(q,a[0]),X=t(q,c[0]),yt=t(q,l[0]),J=e(i(l[0],l[0]),e(i(l[1],l[1]),i(l[2],l[2]))),W=t(J,b[0]),K=t(J,a[0]),Y=t(J,c[0]),Z=t(J,s[0]),Nt=e(e(e(t(e(t(n(Z,yt),c[1]),e(t(n(Y,H),-s[1]),t(n(X,nt),l[1]))),a[2]),e(t(e(t(n(Z,yt),a[1]),e(t(n(K,k),-s[1]),t(n(U,$),l[1]))),-c[2]),t(e(t(n(Y,H),a[1]),e(t(n(K,k),-c[1]),t(n(j,Q),l[1]))),s[2]))),e(t(e(t(n(X,nt),a[1]),e(t(n(U,$),-c[1]),t(n(j,Q),s[1]))),-l[2]),e(t(e(t(n(Z,yt),a[1]),e(t(n(K,k),-s[1]),t(n(U,$),l[1]))),b[2]),t(e(t(n(Z,yt),b[1]),e(t(n(W,B),-s[1]),t(n(L,O),l[1]))),-a[2])))),e(e(t(e(t(n(K,k),b[1]),e(t(n(W,B),-a[1]),t(n(z,G),l[1]))),s[2]),e(t(e(t(n(U,$),b[1]),e(t(n(L,O),-a[1]),t(n(z,G),s[1]))),-l[2]),t(e(t(n(X,nt),a[1]),e(t(n(U,$),-c[1]),t(n(j,Q),s[1]))),b[2]))),e(t(e(t(n(X,nt),b[1]),e(t(n(L,O),-c[1]),t(n(f,N),s[1]))),-a[2]),e(t(e(t(n(U,$),b[1]),e(t(n(L,O),-a[1]),t(n(z,G),s[1]))),c[2]),t(e(t(n(j,Q),b[1]),e(t(n(f,N),-a[1]),t(n(z,G),c[1]))),-s[2]))))),tt=e(e(e(t(e(t(n(Z,yt),c[1]),e(t(n(Y,H),-s[1]),t(n(X,nt),l[1]))),b[2]),t(e(t(n(Z,yt),b[1]),e(t(n(W,B),-s[1]),t(n(L,O),l[1]))),-c[2])),e(t(e(t(n(Y,H),b[1]),e(t(n(W,B),-c[1]),t(n(f,N),l[1]))),s[2]),t(e(t(n(X,nt),b[1]),e(t(n(L,O),-c[1]),t(n(f,N),s[1]))),-l[2]))),e(e(t(e(t(n(Y,H),a[1]),e(t(n(K,k),-c[1]),t(n(j,Q),l[1]))),b[2]),t(e(t(n(Y,H),b[1]),e(t(n(W,B),-c[1]),t(n(f,N),l[1]))),-a[2])),e(t(e(t(n(K,k),b[1]),e(t(n(W,B),-a[1]),t(n(z,G),l[1]))),c[2]),t(e(t(n(j,Q),b[1]),e(t(n(f,N),-a[1]),t(n(z,G),c[1]))),-l[2])))),m=n(Nt,tt);return m[m.length-1]}return D}function E(e,n,i,t){function D(b,a,c,s,l,_){var G=e(e(i(b[0],b[0]),i(b[1],b[1])),e(i(b[2],b[2]),i(b[3],b[3]))),N=t(G,a[0]),O=t(G,c[0]),B=t(G,s[0]),V=t(G,l[0]),z=t(G,_[0]),Q=e(e(i(a[0],a[0]),i(a[1],a[1])),e(i(a[2],a[2]),i(a[3],a[3]))),$=t(Q,b[0]),k=t(Q,c[0]),F=t(Q,s[0]),f=t(Q,l[0]),j=t(Q,_[0]),nt=e(e(i(c[0],c[0]),i(c[1],c[1])),e(i(c[2],c[2]),i(c[3],c[3]))),H=t(nt,b[0]),q=t(nt,a[0]),L=t(nt,s[0]),U=t(nt,l[0]),X=t(nt,_[0]),yt=e(e(i(s[0],s[0]),i(s[1],s[1])),e(i(s[2],s[2]),i(s[3],s[3]))),J=t(yt,b[0]),W=t(yt,a[0]),K=t(yt,c[0]),Y=t(yt,l[0]),Z=t(yt,_[0]),Nt=e(e(i(l[0],l[0]),i(l[1],l[1])),e(i(l[2],l[2]),i(l[3],l[3]))),tt=t(Nt,b[0]),m=t(Nt,a[0]),et=t(Nt,c[0]),rt=t(Nt,s[0]),ot=t(Nt,_[0]),Xt=e(e(i(_[0],_[0]),i(_[1],_[1])),e(i(_[2],_[2]),i(_[3],_[3]))),it=t(Xt,b[0]),at=t(Xt,a[0]),ht=t(Xt,c[0]),ct=t(Xt,s[0]),st=t(Xt,l[0]),Ye=e(e(e(t(e(e(t(e(t(n(st,ot),s[1]),e(t(n(ct,Z),-l[1]),t(n(rt,Y),_[1]))),c[2]),t(e(t(n(st,ot),c[1]),e(t(n(ht,X),-l[1]),t(n(et,U),_[1]))),-s[2])),e(t(e(t(n(ct,Z),c[1]),e(t(n(ht,X),-s[1]),t(n(K,L),_[1]))),l[2]),t(e(t(n(rt,Y),c[1]),e(t(n(et,U),-s[1]),t(n(K,L),l[1]))),-_[2]))),a[3]),e(t(e(e(t(e(t(n(st,ot),s[1]),e(t(n(ct,Z),-l[1]),t(n(rt,Y),_[1]))),a[2]),t(e(t(n(st,ot),a[1]),e(t(n(at,j),-l[1]),t(n(m,f),_[1]))),-s[2])),e(t(e(t(n(ct,Z),a[1]),e(t(n(at,j),-s[1]),t(n(W,F),_[1]))),l[2]),t(e(t(n(rt,Y),a[1]),e(t(n(m,f),-s[1]),t(n(W,F),l[1]))),-_[2]))),-c[3]),t(e(e(t(e(t(n(st,ot),c[1]),e(t(n(ht,X),-l[1]),t(n(et,U),_[1]))),a[2]),t(e(t(n(st,ot),a[1]),e(t(n(at,j),-l[1]),t(n(m,f),_[1]))),-c[2])),e(t(e(t(n(ht,X),a[1]),e(t(n(at,j),-c[1]),t(n(q,k),_[1]))),l[2]),t(e(t(n(et,U),a[1]),e(t(n(m,f),-c[1]),t(n(q,k),l[1]))),-_[2]))),s[3]))),e(e(t(e(e(t(e(t(n(ct,Z),c[1]),e(t(n(ht,X),-s[1]),t(n(K,L),_[1]))),a[2]),t(e(t(n(ct,Z),a[1]),e(t(n(at,j),-s[1]),t(n(W,F),_[1]))),-c[2])),e(t(e(t(n(ht,X),a[1]),e(t(n(at,j),-c[1]),t(n(q,k),_[1]))),s[2]),t(e(t(n(K,L),a[1]),e(t(n(W,F),-c[1]),t(n(q,k),s[1]))),-_[2]))),-l[3]),t(e(e(t(e(t(n(rt,Y),c[1]),e(t(n(et,U),-s[1]),t(n(K,L),l[1]))),a[2]),t(e(t(n(rt,Y),a[1]),e(t(n(m,f),-s[1]),t(n(W,F),l[1]))),-c[2])),e(t(e(t(n(et,U),a[1]),e(t(n(m,f),-c[1]),t(n(q,k),l[1]))),s[2]),t(e(t(n(K,L),a[1]),e(t(n(W,F),-c[1]),t(n(q,k),s[1]))),-l[2]))),_[3])),e(t(e(e(t(e(t(n(st,ot),s[1]),e(t(n(ct,Z),-l[1]),t(n(rt,Y),_[1]))),a[2]),t(e(t(n(st,ot),a[1]),e(t(n(at,j),-l[1]),t(n(m,f),_[1]))),-s[2])),e(t(e(t(n(ct,Z),a[1]),e(t(n(at,j),-s[1]),t(n(W,F),_[1]))),l[2]),t(e(t(n(rt,Y),a[1]),e(t(n(m,f),-s[1]),t(n(W,F),l[1]))),-_[2]))),b[3]),t(e(e(t(e(t(n(st,ot),s[1]),e(t(n(ct,Z),-l[1]),t(n(rt,Y),_[1]))),b[2]),t(e(t(n(st,ot),b[1]),e(t(n(it,z),-l[1]),t(n(tt,V),_[1]))),-s[2])),e(t(e(t(n(ct,Z),b[1]),e(t(n(it,z),-s[1]),t(n(J,B),_[1]))),l[2]),t(e(t(n(rt,Y),b[1]),e(t(n(tt,V),-s[1]),t(n(J,B),l[1]))),-_[2]))),-a[3])))),e(e(e(t(e(e(t(e(t(n(st,ot),a[1]),e(t(n(at,j),-l[1]),t(n(m,f),_[1]))),b[2]),t(e(t(n(st,ot),b[1]),e(t(n(it,z),-l[1]),t(n(tt,V),_[1]))),-a[2])),e(t(e(t(n(at,j),b[1]),e(t(n(it,z),-a[1]),t(n($,N),_[1]))),l[2]),t(e(t(n(m,f),b[1]),e(t(n(tt,V),-a[1]),t(n($,N),l[1]))),-_[2]))),s[3]),t(e(e(t(e(t(n(ct,Z),a[1]),e(t(n(at,j),-s[1]),t(n(W,F),_[1]))),b[2]),t(e(t(n(ct,Z),b[1]),e(t(n(it,z),-s[1]),t(n(J,B),_[1]))),-a[2])),e(t(e(t(n(at,j),b[1]),e(t(n(it,z),-a[1]),t(n($,N),_[1]))),s[2]),t(e(t(n(W,F),b[1]),e(t(n(J,B),-a[1]),t(n($,N),s[1]))),-_[2]))),-l[3])),e(t(e(e(t(e(t(n(rt,Y),a[1]),e(t(n(m,f),-s[1]),t(n(W,F),l[1]))),b[2]),t(e(t(n(rt,Y),b[1]),e(t(n(tt,V),-s[1]),t(n(J,B),l[1]))),-a[2])),e(t(e(t(n(m,f),b[1]),e(t(n(tt,V),-a[1]),t(n($,N),l[1]))),s[2]),t(e(t(n(W,F),b[1]),e(t(n(J,B),-a[1]),t(n($,N),s[1]))),-l[2]))),_[3]),t(e(e(t(e(t(n(ct,Z),c[1]),e(t(n(ht,X),-s[1]),t(n(K,L),_[1]))),a[2]),t(e(t(n(ct,Z),a[1]),e(t(n(at,j),-s[1]),t(n(W,F),_[1]))),-c[2])),e(t(e(t(n(ht,X),a[1]),e(t(n(at,j),-c[1]),t(n(q,k),_[1]))),s[2]),t(e(t(n(K,L),a[1]),e(t(n(W,F),-c[1]),t(n(q,k),s[1]))),-_[2]))),b[3]))),e(e(t(e(e(t(e(t(n(ct,Z),c[1]),e(t(n(ht,X),-s[1]),t(n(K,L),_[1]))),b[2]),t(e(t(n(ct,Z),b[1]),e(t(n(it,z),-s[1]),t(n(J,B),_[1]))),-c[2])),e(t(e(t(n(ht,X),b[1]),e(t(n(it,z),-c[1]),t(n(H,O),_[1]))),s[2]),t(e(t(n(K,L),b[1]),e(t(n(J,B),-c[1]),t(n(H,O),s[1]))),-_[2]))),-a[3]),t(e(e(t(e(t(n(ct,Z),a[1]),e(t(n(at,j),-s[1]),t(n(W,F),_[1]))),b[2]),t(e(t(n(ct,Z),b[1]),e(t(n(it,z),-s[1]),t(n(J,B),_[1]))),-a[2])),e(t(e(t(n(at,j),b[1]),e(t(n(it,z),-a[1]),t(n($,N),_[1]))),s[2]),t(e(t(n(W,F),b[1]),e(t(n(J,B),-a[1]),t(n($,N),s[1]))),-_[2]))),c[3])),e(t(e(e(t(e(t(n(ht,X),a[1]),e(t(n(at,j),-c[1]),t(n(q,k),_[1]))),b[2]),t(e(t(n(ht,X),b[1]),e(t(n(it,z),-c[1]),t(n(H,O),_[1]))),-a[2])),e(t(e(t(n(at,j),b[1]),e(t(n(it,z),-a[1]),t(n($,N),_[1]))),c[2]),t(e(t(n(q,k),b[1]),e(t(n(H,O),-a[1]),t(n($,N),c[1]))),-_[2]))),-s[3]),t(e(e(t(e(t(n(K,L),a[1]),e(t(n(W,F),-c[1]),t(n(q,k),s[1]))),b[2]),t(e(t(n(K,L),b[1]),e(t(n(J,B),-c[1]),t(n(H,O),s[1]))),-a[2])),e(t(e(t(n(W,F),b[1]),e(t(n(J,B),-a[1]),t(n($,N),s[1]))),c[2]),t(e(t(n(q,k),b[1]),e(t(n(H,O),-a[1]),t(n($,N),c[1]))),-s[2]))),_[3]))))),Ze=e(e(e(t(e(e(t(e(t(n(st,ot),s[1]),e(t(n(ct,Z),-l[1]),t(n(rt,Y),_[1]))),c[2]),t(e(t(n(st,ot),c[1]),e(t(n(ht,X),-l[1]),t(n(et,U),_[1]))),-s[2])),e(t(e(t(n(ct,Z),c[1]),e(t(n(ht,X),-s[1]),t(n(K,L),_[1]))),l[2]),t(e(t(n(rt,Y),c[1]),e(t(n(et,U),-s[1]),t(n(K,L),l[1]))),-_[2]))),b[3]),e(t(e(e(t(e(t(n(st,ot),s[1]),e(t(n(ct,Z),-l[1]),t(n(rt,Y),_[1]))),b[2]),t(e(t(n(st,ot),b[1]),e(t(n(it,z),-l[1]),t(n(tt,V),_[1]))),-s[2])),e(t(e(t(n(ct,Z),b[1]),e(t(n(it,z),-s[1]),t(n(J,B),_[1]))),l[2]),t(e(t(n(rt,Y),b[1]),e(t(n(tt,V),-s[1]),t(n(J,B),l[1]))),-_[2]))),-c[3]),t(e(e(t(e(t(n(st,ot),c[1]),e(t(n(ht,X),-l[1]),t(n(et,U),_[1]))),b[2]),t(e(t(n(st,ot),b[1]),e(t(n(it,z),-l[1]),t(n(tt,V),_[1]))),-c[2])),e(t(e(t(n(ht,X),b[1]),e(t(n(it,z),-c[1]),t(n(H,O),_[1]))),l[2]),t(e(t(n(et,U),b[1]),e(t(n(tt,V),-c[1]),t(n(H,O),l[1]))),-_[2]))),s[3]))),e(e(t(e(e(t(e(t(n(ct,Z),c[1]),e(t(n(ht,X),-s[1]),t(n(K,L),_[1]))),b[2]),t(e(t(n(ct,Z),b[1]),e(t(n(it,z),-s[1]),t(n(J,B),_[1]))),-c[2])),e(t(e(t(n(ht,X),b[1]),e(t(n(it,z),-c[1]),t(n(H,O),_[1]))),s[2]),t(e(t(n(K,L),b[1]),e(t(n(J,B),-c[1]),t(n(H,O),s[1]))),-_[2]))),-l[3]),t(e(e(t(e(t(n(rt,Y),c[1]),e(t(n(et,U),-s[1]),t(n(K,L),l[1]))),b[2]),t(e(t(n(rt,Y),b[1]),e(t(n(tt,V),-s[1]),t(n(J,B),l[1]))),-c[2])),e(t(e(t(n(et,U),b[1]),e(t(n(tt,V),-c[1]),t(n(H,O),l[1]))),s[2]),t(e(t(n(K,L),b[1]),e(t(n(J,B),-c[1]),t(n(H,O),s[1]))),-l[2]))),_[3])),e(t(e(e(t(e(t(n(st,ot),c[1]),e(t(n(ht,X),-l[1]),t(n(et,U),_[1]))),a[2]),t(e(t(n(st,ot),a[1]),e(t(n(at,j),-l[1]),t(n(m,f),_[1]))),-c[2])),e(t(e(t(n(ht,X),a[1]),e(t(n(at,j),-c[1]),t(n(q,k),_[1]))),l[2]),t(e(t(n(et,U),a[1]),e(t(n(m,f),-c[1]),t(n(q,k),l[1]))),-_[2]))),b[3]),t(e(e(t(e(t(n(st,ot),c[1]),e(t(n(ht,X),-l[1]),t(n(et,U),_[1]))),b[2]),t(e(t(n(st,ot),b[1]),e(t(n(it,z),-l[1]),t(n(tt,V),_[1]))),-c[2])),e(t(e(t(n(ht,X),b[1]),e(t(n(it,z),-c[1]),t(n(H,O),_[1]))),l[2]),t(e(t(n(et,U),b[1]),e(t(n(tt,V),-c[1]),t(n(H,O),l[1]))),-_[2]))),-a[3])))),e(e(e(t(e(e(t(e(t(n(st,ot),a[1]),e(t(n(at,j),-l[1]),t(n(m,f),_[1]))),b[2]),t(e(t(n(st,ot),b[1]),e(t(n(it,z),-l[1]),t(n(tt,V),_[1]))),-a[2])),e(t(e(t(n(at,j),b[1]),e(t(n(it,z),-a[1]),t(n($,N),_[1]))),l[2]),t(e(t(n(m,f),b[1]),e(t(n(tt,V),-a[1]),t(n($,N),l[1]))),-_[2]))),c[3]),t(e(e(t(e(t(n(ht,X),a[1]),e(t(n(at,j),-c[1]),t(n(q,k),_[1]))),b[2]),t(e(t(n(ht,X),b[1]),e(t(n(it,z),-c[1]),t(n(H,O),_[1]))),-a[2])),e(t(e(t(n(at,j),b[1]),e(t(n(it,z),-a[1]),t(n($,N),_[1]))),c[2]),t(e(t(n(q,k),b[1]),e(t(n(H,O),-a[1]),t(n($,N),c[1]))),-_[2]))),-l[3])),e(t(e(e(t(e(t(n(et,U),a[1]),e(t(n(m,f),-c[1]),t(n(q,k),l[1]))),b[2]),t(e(t(n(et,U),b[1]),e(t(n(tt,V),-c[1]),t(n(H,O),l[1]))),-a[2])),e(t(e(t(n(m,f),b[1]),e(t(n(tt,V),-a[1]),t(n($,N),l[1]))),c[2]),t(e(t(n(q,k),b[1]),e(t(n(H,O),-a[1]),t(n($,N),c[1]))),-l[2]))),_[3]),t(e(e(t(e(t(n(rt,Y),c[1]),e(t(n(et,U),-s[1]),t(n(K,L),l[1]))),a[2]),t(e(t(n(rt,Y),a[1]),e(t(n(m,f),-s[1]),t(n(W,F),l[1]))),-c[2])),e(t(e(t(n(et,U),a[1]),e(t(n(m,f),-c[1]),t(n(q,k),l[1]))),s[2]),t(e(t(n(K,L),a[1]),e(t(n(W,F),-c[1]),t(n(q,k),s[1]))),-l[2]))),b[3]))),e(e(t(e(e(t(e(t(n(rt,Y),c[1]),e(t(n(et,U),-s[1]),t(n(K,L),l[1]))),b[2]),t(e(t(n(rt,Y),b[1]),e(t(n(tt,V),-s[1]),t(n(J,B),l[1]))),-c[2])),e(t(e(t(n(et,U),b[1]),e(t(n(tt,V),-c[1]),t(n(H,O),l[1]))),s[2]),t(e(t(n(K,L),b[1]),e(t(n(J,B),-c[1]),t(n(H,O),s[1]))),-l[2]))),-a[3]),t(e(e(t(e(t(n(rt,Y),a[1]),e(t(n(m,f),-s[1]),t(n(W,F),l[1]))),b[2]),t(e(t(n(rt,Y),b[1]),e(t(n(tt,V),-s[1]),t(n(J,B),l[1]))),-a[2])),e(t(e(t(n(m,f),b[1]),e(t(n(tt,V),-a[1]),t(n($,N),l[1]))),s[2]),t(e(t(n(W,F),b[1]),e(t(n(J,B),-a[1]),t(n($,N),s[1]))),-l[2]))),c[3])),e(t(e(e(t(e(t(n(et,U),a[1]),e(t(n(m,f),-c[1]),t(n(q,k),l[1]))),b[2]),t(e(t(n(et,U),b[1]),e(t(n(tt,V),-c[1]),t(n(H,O),l[1]))),-a[2])),e(t(e(t(n(m,f),b[1]),e(t(n(tt,V),-a[1]),t(n($,N),l[1]))),c[2]),t(e(t(n(q,k),b[1]),e(t(n(H,O),-a[1]),t(n($,N),c[1]))),-l[2]))),-s[3]),t(e(e(t(e(t(n(K,L),a[1]),e(t(n(W,F),-c[1]),t(n(q,k),s[1]))),b[2]),t(e(t(n(K,L),b[1]),e(t(n(J,B),-c[1]),t(n(H,O),s[1]))),-a[2])),e(t(e(t(n(W,F),b[1]),e(t(n(J,B),-a[1]),t(n($,N),s[1]))),c[2]),t(e(t(n(q,k),b[1]),e(t(n(H,O),-a[1]),t(n($,N),c[1]))),-s[2]))),l[3]))))),fn=n(Ye,Ze);return fn[fn.length-1]}return D}var M=[I,v,o];function S(e){var n=M[e.length];return n||(n=M[e.length]=x(e.length)),n.apply(void 0,e)}function C(e,n,i,t,D,b,a,c){function s(l,_,G,N,O,B){switch(arguments.length){case 0:case 1:return 0;case 2:return t(l,_);case 3:return D(l,_,G);case 4:return b(l,_,G,N);case 5:return a(l,_,G,N,O);case 6:return c(l,_,G,N,O,B)}for(var V=new Array(arguments.length),z=0;z<arguments.length;++z)V[z]=arguments[z];return e(V)}return s}function P(){for(;M.length<=T;)M.push(x(M.length));r.exports=C.apply(void 0,[S].concat(M));for(var e=0;e<=T;++e)r.exports[e]=M[e]}P()}}),Pr=wt({"node_modules/cdt2d/lib/delaunay.js"(d,r){var h=Mr()[4];xn(),r.exports=w;function p(y,T,x,I,v,o){var g=T.opposite(I,v);if(!(g<0)){if(v<I){var u=I;I=v,v=u,u=o,o=g,g=u}T.isConstraint(I,v)||h(y[I],y[v],y[o],y[g])<0&&x.push(I,v)}}function w(y,T){for(var x=[],I=y.length,v=T.stars,o=0;o<I;++o)for(var g=v[o],u=1;u<g.length;u+=2){var A=g[u];if(!(A<o)&&!T.isConstraint(o,A)){for(var E=g[u-1],M=-1,S=1;S<g.length;S+=2)if(g[S-1]===A){M=g[S];break}M<0||h(y[o],y[A],y[E],y[M])<0&&x.push(o,A)}}for(;x.length>0;){for(var A=x.pop(),o=x.pop(),E=-1,M=-1,g=v[o],C=1;C<g.length;C+=2){var P=g[C-1],e=g[C];P===A?M=e:e===A&&(E=P)}E<0||M<0||h(y[o],y[A],y[E],y[M])>=0||(T.flip(o,A),p(y,T,x,E,o,M),p(y,T,x,o,M,E),p(y,T,x,M,A,E),p(y,T,x,A,E,M))}}}}),Cr=wt({"node_modules/cdt2d/lib/filter.js"(d,r){var h=xn();r.exports=I;function p(v,o,g,u,A,E,M){this.cells=v,this.neighbor=o,this.flags=u,this.constraint=g,this.active=A,this.next=E,this.boundary=M}var w=p.prototype;function y(v,o){return v[0]-o[0]||v[1]-o[1]||v[2]-o[2]}w.locate=(function(){var v=[0,0,0];return function(o,g,u){var A=o,E=g,M=u;return g<u?g<o&&(A=g,E=u,M=o):u<o&&(A=u,E=o,M=g),A<0?-1:(v[0]=A,v[1]=E,v[2]=M,h.eq(this.cells,v,y))}})();function T(v,o){for(var g=v.cells(),u=g.length,A=0;A<u;++A){var E=g[A],M=E[0],S=E[1],C=E[2];S<C?S<M&&(E[0]=S,E[1]=C,E[2]=M):C<M&&(E[0]=C,E[1]=M,E[2]=S)}g.sort(y);for(var P=new Array(u),A=0;A<P.length;++A)P[A]=0;var e=[],n=[],i=new Array(3*u),t=new Array(3*u),D=null;o&&(D=[]);for(var b=new p(g,i,t,P,e,n,D),A=0;A<u;++A)for(var E=g[A],a=0;a<3;++a){var M=E[a],S=E[(a+1)%3],c=i[3*A+a]=b.locate(S,M,v.opposite(S,M)),s=t[3*A+a]=v.isConstraint(M,S);c<0&&(s?n.push(A):(e.push(A),P[A]=1),o&&D.push([S,M,-1]))}return b}function x(v,o,g){for(var u=0,A=0;A<v.length;++A)o[A]===g&&(v[u++]=v[A]);return v.length=u,v}function I(v,o,g){var u=T(v,g);if(o===0)return g?u.cells.concat(u.boundary):u.cells;for(var A=1,E=u.active,M=u.next,S=u.flags,C=u.cells,P=u.constraint,e=u.neighbor;E.length>0||M.length>0;){for(;E.length>0;){var n=E.pop();if(S[n]!==-A){S[n]=A,C[n];for(var i=0;i<3;++i){var t=e[3*n+i];t>=0&&S[t]===0&&(P[3*n+i]?M.push(t):(E.push(t),S[t]=A))}}}var D=M;M=E,E=D,M.length=0,A=-A}var b=x(C,S,o);return g?b.concat(u.boundary):b}}}),Dr=wt({"node_modules/cdt2d/cdt2d.js"(d,r){var h=Er(),p=Sr(),w=Pr(),y=Cr();r.exports=o;function T(g){return[Math.min(g[0],g[1]),Math.max(g[0],g[1])]}function x(g,u){return g[0]-u[0]||g[1]-u[1]}function I(g){return g.map(T).sort(x)}function v(g,u,A){return u in g?g[u]:A}function o(g,u,A){Array.isArray(u)?(A=A||{},u=u||[]):(A=u||{},u=[]);var E=!!v(A,"delaunay",!0),M=!!v(A,"interior",!0),S=!!v(A,"exterior",!0),C=!!v(A,"infinity",!1);if(!M&&!S||g.length===0)return[];var P=h(g,u);if(E||M!==S||C){for(var e=p(g.length,I(u)),n=0;n<P.length;++n){var i=P[n];e.addTriangle(i[0],i[1],i[2])}return E&&w(g,e),S?M?C?y(e,0,C):e.cells():y(e,1,C):y(e,-1)}else return P}}});const Br=Dr();class Rt{constructor(r){this.createFn=r,this._pool=[],this._index=0}getInstance(){return this._index>=this._pool.length&&this._pool.push(this.createFn()),this._pool[this._index++]}clear(){this._index=0}reset(){this._pool.length=0,this._index=0}}const Xn=1e-16,Nr=1e-16,zt=new R,Wn=new R,Kn=new Rt(()=>({param:0,index:0})),Vr=new Rt(()=>new R);function Or(d,r,h,p){Kn.clear(),r.length=0,h.length=0;for(let v=0,o=d.length;v<o;v++){const g=d[v];I(g.start),I(g.end)}for(let v=0,o=d.length;v<o;v++){const g=d[v];for(let u=v+1;u<o;u++){const A=d[u];g.distanceSqToLine3(A,zt,Wn)<Xn*p&&I(Wn)}}const w=[];for(let v=0,o=d.length;v<o;v++){w.length=0;const g=d[v];for(let u=0,A=r.length;u<A;u++){const E=r[u],M=g.closestPointToPointParameter(E,!0);if(g.at(M,zt),E.distanceToSquared(zt)<Xn*p){const S=Kn.getInstance();S.param=M,S.index=u,w.push(S)}}w.sort(x);for(let u=0,A=w.length-1;u<A;u++){const E=w[u].index,M=w[u+1].index;E!==M&&h.push([E,M])}}const y=new Set;let T=0;for(let v=0,o=h.length;v<o;v++){const g=h[v],u=Math.min(g[0],g[1]),A=Math.max(g[0],g[1]),E=u+","+A;y.has(E)||(y.add(E),h[T++]=g)}h.length=T;function x(v,o){return v.param-o.param}function I(v){for(let o=0;o<r.length;o++){const g=r[o];if(v===g||v.distanceToSquared(g)<Nr*p)return o}return r.push(Vr.getInstance().copy(v)),r.length-1}}class Yn{constructor(){this.trianglePool=new Rt(()=>new Gn),this.linePool=new Rt(()=>new ut),this.triangles=[],this.triangleIndices=[],this.constrainedEdges=[],this.triangleConnectivity=[],this.normal=new R,this.projOrigin=new R,this.projU=new R,this.projV=new R,this.baseTri=new Gn,this.baseIndices=new Array(3)}initialize(r,h=null,p=null,w=null){this.reset();const{normal:y,baseTri:T,projU:x,projV:I,projOrigin:v,constrainedEdges:o,linePool:g,baseIndices:u}=this;r.getNormal(y),T.copy(r),T.update(),u[0]=h,u[1]=p,u[2]=w,o.length=0;const A=g.getInstance();A.start.copy(T.a),A.end.copy(T.b);const E=g.getInstance();E.start.copy(T.b),E.end.copy(T.c);const M=g.getInstance();M.start.copy(T.c),M.end.copy(T.a),o.push(A,E,M),v.copy(T.a),x.subVectors(T.b,T.a).normalize(),I.crossVectors(y,x).normalize()}addConstraintEdge(r){const{constrainedEdges:h,linePool:p}=this,w=p.getInstance().copy(r);h.push(w)}_to2D(r,h){const{projOrigin:p,projU:w,projV:y}=this;return zt.subVectors(r,p),h.set(zt.dot(w),zt.dot(y),0)}_from2D(r,h,p){const{projOrigin:w,projU:y,projV:T}=this;return p.copy(w).addScaledVector(y,r).addScaledVector(T,h),p}triangulate(){const{triangles:r,trianglePool:h,triangleConnectivity:p,triangleIndices:w,linePool:y,baseTri:T,constrainedEdges:x,baseIndices:I}=this;r.length=0,h.clear();const v=[];for(let C=0,P=x.length;C<P;C++){const e=x[C],n=y.getInstance();this._to2D(e.start,n.start),this._to2D(e.end,n.end),v.push(n)}let o=0;for(let C=0;C<3;C++){const P=this._to2D(T.points[C],zt);o=Math.max(o,Math.abs(P.x),Math.abs(P.y))}const g=[],u=[];Or(v,g,u,o);const A=[];for(let C=0,P=g.length;C<P;C++){const e=g[C];A.push([e.x,e.y])}const E=Br(A,u,{exterior:!1}),M=new Map;for(let C=0,P=u.length;C<P;C++){const e=u[C];M.set(`${e[0]}_${e[1]}`,-1),M.set(`${e[1]}_${e[0]}`,-1)}const S=`${I[0]}_${I[1]}_${I[2]}_`;for(let C=0,P=E.length;C<P;C++){const e=E[C],[n,i,t]=e,D=h.getInstance();this._from2D(A[n][0],A[n][1],D.a),this._from2D(A[i][0],A[i][1],D.b),this._from2D(A[t][0],A[t][1],D.c),r.push(D);const b=[];p.push(b);const a=[];w.push(a);for(let c=0;c<3;c++){const s=e[c];a.push(s<3?I[s]:S+s);const l=e[(c+1)%3],_=`${s}_${l}`;if(M.has(_)){const G=M.get(_);G!==-1&&(b.push(G),p[G].push(C))}else{const G=`${l}_${s}`;M.set(G,C)}}}}reset(){this.trianglePool.clear(),this.linePool.clear(),this.triangles.length=0,this.triangleIndices.length=0,this.triangleConnectivity.length=0,this.constrainedEdges.length=0}}const Gr=1e-14,An=new R,Zn=new R,Jn=new R;function Dt(d,r=Gr){An.subVectors(d.b,d.a),Zn.subVectors(d.c,d.a),Jn.subVectors(d.b,d.c);const h=An.angleTo(Zn),p=An.angleTo(Jn),w=Math.PI-h-p;return Math.abs(h)<r||Math.abs(p)<r||Math.abs(w)<r||d.a.distanceToSquared(d.b)<r||d.a.distanceToSquared(d.c)<r||d.b.distanceToSquared(d.c)<r}const Tn=1e-10,Wt=1e-10,Et=new ut,gt=new ut,St=new R,Qn=new R,mn=new R,nn=new yn,En=new Gn;class te{constructor(){this.trianglePool=new Rt(()=>new _t),this.triangles=[],this.normal=new R}initialize(r){this.reset();const{triangles:h,trianglePool:p,normal:w}=this;if(Array.isArray(r))for(let y=0,T=r.length;y<T;y++){const x=r[y];if(y===0)x.getNormal(w);else if(Math.abs(1-x.getNormal(St).dot(w))>Tn)throw new Error("Triangle Splitter: Cannot initialize with triangles that have different normals.");const I=p.getInstance();I.copy(x),h.push(I)}else{r.getNormal(w);const y=p.getInstance();y.copy(r),h.push(y)}}splitByTriangle(r,h){const{triangles:p}=this;if(h){for(let y=0,T=p.length;y<T;y++){const x=p[y];x.coplanarCount=0}const w=[r.a,r.b,r.c];for(let y=0;y<3;y++){const T=(y+1)%3,x=w[y],I=w[T];r.getNormal(Qn).normalize(),St.subVectors(I,x).normalize(),mn.crossVectors(Qn,St),nn.setFromNormalAndCoplanarPoint(mn,x),this.splitByPlane(nn,r)}}else r.getPlane(nn),this.splitByPlane(nn,r)}splitByPlane(r,h){const{triangles:p,trianglePool:w}=this;En.copy(h),En.needsUpdate=!0;for(let y=0,T=p.length;y<T;y++){const x=p[y];if(!En.intersectsTriangle(x,Et,!0))continue;const{a:I,b:v,c:o}=x;let g=0,u=-1,A=!1,E=[],M=[];const S=[I,v,o];for(let C=0;C<3;C++){const P=(C+1)%3;Et.start.copy(S[C]),Et.end.copy(S[P]);const e=r.distanceToPoint(Et.start),n=r.distanceToPoint(Et.end);if(Math.abs(e)<Wt&&Math.abs(n)<Wt){A=!0;break}if(e>0?E.push(C):M.push(C),Math.abs(e)<Wt)continue;let i=!!r.intersectLine(Et,St);!i&&Math.abs(n)<Wt&&(St.copy(Et.end),i=!0),i&&!(St.distanceTo(Et.start)<Tn)&&(St.distanceTo(Et.end)<Tn&&(u=C),g===0?gt.start.copy(St):gt.end.copy(St),g++)}if(!A&&g===2&&gt.distance()>Wt)if(u!==-1){u=(u+1)%3;let C=0;C===u&&(C=(C+1)%3);let P=C+1;P===u&&(P=(P+1)%3);const e=w.getInstance();e.a.copy(S[P]),e.b.copy(gt.end),e.c.copy(gt.start),Dt(e)||p.push(e),x.a.copy(S[C]),x.b.copy(gt.start),x.c.copy(gt.end),Dt(x)&&(p.splice(y,1),y--,T--)}else{const C=E.length>=2?M[0]:E[0];if(C===0){let t=gt.start;gt.start=gt.end,gt.end=t}const P=(C+1)%3,e=(C+2)%3,n=w.getInstance(),i=w.getInstance();S[P].distanceToSquared(gt.start)<S[e].distanceToSquared(gt.end)?(n.a.copy(S[P]),n.b.copy(gt.start),n.c.copy(gt.end),i.a.copy(S[P]),i.b.copy(S[e]),i.c.copy(gt.start)):(n.a.copy(S[e]),n.b.copy(gt.start),n.c.copy(gt.end),i.a.copy(S[P]),i.b.copy(S[e]),i.c.copy(gt.end)),x.a.copy(S[C]),x.b.copy(gt.end),x.c.copy(gt.start),Dt(n)||p.push(n),Dt(i)||p.push(i),Dt(x)&&(p.splice(y,1),y--,T--)}else g===3&&console.warn("TriangleClipper: Coplanar clip not handled")}}reset(){this.triangles.length=0,this.trianglePool.clear()}}class ne{constructor(){this.coplanarSet=new Map,this.intersectionSet=new Map,this.edgeSet=new Map,this.ids=[]}add(r,h,p=!1){const{intersectionSet:w,coplanarSet:y,ids:T}=this;w.has(r)||(w.set(r,[]),T.push(r)),w.get(r).push(h),p&&(y.has(r)||y.set(r,new Set),y.get(r).add(h))}addIntersectionEdge(r,h){const{edgeSet:p}=this;p.has(r)||p.set(r,new Set),p.get(r).add(h)}getIntersectionEdges(r){return this.edgeSet.get(r)||null}}const Ue=0,zr=1,$r=2,Rr=3,kr=4,qe=5,Xe=6,Sn=1e-10,fr=1e-15,Lr=1e-10,Fr=1e-10,ee=new ut,ft=new ut,re=new R,oe=new R,ie=new R,Mn=new yn,Ut=new R,wn=new R;function jr(d,r){d.getNormal(Ut),r.getNormal(wn);const h=Ut.dot(wn);if(Math.abs(1-Math.abs(h))>=Lr)return!1;const p=Ut.dot(d.a),w=Ut.dot(r.a);return Math.abs(p-w)<Fr}function ae(d,r,h,p){let w=0,y=1;d.delta(re);const T=[r.a,r.b,r.c];for(let x=0;x<3;x++){const I=T[x],v=T[(x+1)%3];oe.subVectors(v,I),ie.crossVectors(h,oe),Mn.setFromNormalAndCoplanarPoint(ie,I);const o=Mn.distanceToPoint(d.start),g=Mn.normal.dot(re);if(Math.abs(g)<fr){if(o<-Sn)return null;continue}const u=-o/g;if(g>0?w=Math.max(w,u):y=Math.min(y,u),w>y+Sn)return null}return y-w<Sn?null:(d.at(w,p.start),d.at(y,p.end),p)}function he(d,r,h){let p=0;d.getNormal(Ut),r.getNormal(wn);const w=[r.a,r.b,r.c];for(let T=0;T<3;T++){ft.start.copy(w[T]),ft.end.copy(w[(T+1)%3]);const x=ae(ft,d,Ut,ee);x!==null&&(p>=h.length&&h.push(new ut),h[p].copy(x),p++)}const y=[d.a,d.b,d.c];for(let T=0;T<3;T++){ft.start.copy(y[T]),ft.end.copy(y[(T+1)%3]);const x=ae(ft,r,wn,ee);x!==null&&(p>=h.length&&h.push(new ut),h[p].copy(x),p++)}return p}const Lt=new $n,ce=new kt,en=new ut,Pn=[],rn=new Rt(()=>new ut),jt=-1,Ht=1,vn=-2,pn=2,Zt=0,Vt=1,kn=2;let un=null;function se(d){un=d}function We(d,r,h=null){d.getMidpoint(Lt.origin),d.getNormal(Lt.direction),h&&(Lt.origin.applyMatrix4(h),Lt.direction.transformDirection(h));const p=r.raycastFirst(Lt,Qe);return!!(p&&Lt.direction.dot(p.face.normal)>0)?jt:Ht}function Hr(d,r){const h=new ne,p=new ne;return rn.clear(),ce.copy(d.matrixWorld).invert().multiply(r.matrixWorld),d.geometry.boundsTree.bvhcast(r.geometry.boundsTree,ce,{intersectsTriangles(w,y,T,x){if(!Dt(w)&&!Dt(y)){const v=(jr(w,y)?he(w,y,Pn):0)>2;if(v||w.intersectsTriangle(y,en,!0)){const g=d.geometry.boundsTree.resolveTriangleIndex(T),u=r.geometry.boundsTree.resolveTriangleIndex(x);if(h.add(g,u,v),p.add(u,g,v),v){const A=he(w,y,Pn);for(let E=0;E<A;E++){const M=rn.getInstance().copy(Pn[E]);h.addIntersectionEdge(g,M),p.addIntersectionEdge(u,M)}}else{const A=rn.getInstance().copy(en),E=rn.getInstance().copy(en);h.addIntersectionEdge(g,A),p.addIntersectionEdge(u,E)}un&&(un.addEdge(en),un.addIntersectingTriangles(T,w,x,y))}}return!1}}),{aIntersections:h,bIntersections:p}}function Ke(d,r,h=!1){switch(d){case Ue:if(r===Ht||r===pn&&!h)return Vt;break;case zr:if(h){if(r===jt)return Zt}else if(r===Ht||r===vn)return Vt;break;case $r:if(h){if(r===Ht||r===vn)return Vt}else if(r===jt)return Zt;break;case kr:if(r===jt)return Zt;if(r===Ht)return Vt;break;case Rr:if(r===jt||r===pn&&!h)return Vt;break;case qe:if(!h&&(r===Ht||r===vn))return Vt;break;case Xe:if(!h&&(r===jt||r===pn))return Vt;break;default:throw new Error(`Unrecognized CSG operation enum "${d}".`)}return kn}class Ur{constructor(r){this.triangle=new _t().copy(r),this.intersects={}}addTriangle(r,h){this.intersects[r]=new _t().copy(h)}getIntersectArray(){const r=[],{intersects:h}=this;for(const p in h)r.push(h[p]);return r}}class ge{constructor(){this.data={}}addTriangleIntersection(r,h,p,w){const{data:y}=this;y[r]||(y[r]=new Ur(h)),y[r].addTriangle(p,w)}getTrianglesAsArray(r=null){const{data:h}=this,p=[];if(r!==null)r in h&&p.push(h[r].triangle);else for(const w in h)p.push(h[w].triangle);return p}getTriangleIndices(){return Object.keys(this.data).map(r=>parseInt(r))}getIntersectionIndices(r){const{data:h}=this;return h[r]?Object.keys(h[r].intersects).map(p=>parseInt(p)):[]}getIntersectionsAsArray(r=null,h=null){const{data:p}=this,w=new Set,y=[],T=x=>{if(p[x])if(h!==null)p[x].intersects[h]&&y.push(p[x].intersects[h]);else{const I=p[x].intersects;for(const v in I)w.has(v)||(w.add(v),y.push(I[v]))}};if(r!==null)T(r);else for(const x in p)T(x);return y}reset(){this.data={}}}class qr{constructor(){this.enabled=!1,this.triangleIntersectsA=new ge,this.triangleIntersectsB=new ge,this.intersectionEdges=[]}addIntersectingTriangles(r,h,p,w){const{triangleIntersectsA:y,triangleIntersectsB:T}=this;y.addTriangleIntersection(r,h,p,w),T.addTriangleIntersection(p,w,r,h)}addEdge(r){this.intersectionEdges.push(r.clone())}reset(){this.triangleIntersectsA.reset(),this.triangleIntersectsB.reset(),this.intersectionEdges=[]}init(){this.enabled&&(this.reset(),se(this))}complete(){this.enabled&&se(null)}}const pt=new kt,Ot=new kt,vt=new kt,Ct=new me,xt=new _t,Gt=new _t,bt=new _t,Pt=new _t,$t=[],At=[],on=new Set,le=new R,ve=new R,pe=new Rt(()=>new _t),ue=new R,an=[];function Xr(d,r,h,p,w,y={}){const{useGroups:T=!0}=y,{aIntersections:x,bIntersections:I}=Hr(d,r),v=[];let o=null,g;return g=T?0:-1,ye(d,r,x,h,!1,w,g),we(d,r,x,h,!1,p,w,g),h.findIndex(A=>A!==Xe&&A!==qe)!==-1&&(w.forEach(A=>A.clearIndexMap()),g=T?d.geometry.groups.length||1:-1,ye(r,d,I,h,!0,w,g),we(r,d,I,h,!0,p,w,g)),w.forEach(A=>A.clearIndexMap()),$t.length=0,{groups:v,materials:o}}function we(d,r,h,p,w,y,T,x=0){pt.copy(r.matrixWorld).invert().multiply(d.matrixWorld),Ot.copy(pt).invert(),w?vt.copy(pt):vt.identity();const I=vt.determinant()<0;Ct.getNormalMatrix(vt).multiplyScalar(I?-1:1);const v=d.geometry.groupIndices,o=d.geometry.index,g=d.geometry.attributes.position,u=r.geometry.boundsTree,A=r.geometry.index,E=r.geometry.attributes.position,M=h.ids;for(let S=0,C=M.length;S<C;S++){const P=M[S],e=x===-1?0:v[P]+x,n=3*P;let i=n+0,t=n+1,D=n+2;o&&(i=o.getX(i),t=o.getX(t),D=o.getX(D)),xt.a.fromBufferAttribute(g,i),xt.b.fromBufferAttribute(g,t),xt.c.fromBufferAttribute(g,D),w&&(xt.a.applyMatrix4(pt),xt.b.applyMatrix4(pt),xt.c.applyMatrix4(pt)),y.reset(),y.initialize(xt,i,t,D),an.length=0,pe.clear(),xt.getNormal(ve);const b=h.coplanarSet.get(P);if(b)for(const l of b){const _=3*l;let G=_+0,N=_+1,O=_+2;A&&(G=A.getX(G),N=A.getX(N),O=A.getX(O));const B=pe.getInstance();B.a.fromBufferAttribute(E,G),B.b.fromBufferAttribute(E,N),B.c.fromBufferAttribute(E,O),w||(B.a.applyMatrix4(Ot),B.b.applyMatrix4(Ot),B.c.applyMatrix4(Ot)),an.push(B)}if(y.addConstraintEdge){const l=h.getIntersectionEdges(P);if(l)for(const _ of l)y.addConstraintEdge(_);y.triangulate()}else{const _=h.intersectionSet.get(P);for(let G=0,N=_.length;G<N;G++){const O=_[G],B=b&&b.has(O),V=3*O;let z=V+0,Q=V+1,$=V+2;A&&(z=A.getX(z),Q=A.getX(Q),$=A.getX($)),Gt.a.fromBufferAttribute(E,z),Gt.b.fromBufferAttribute(E,Q),Gt.c.fromBufferAttribute(E,$),w||(Gt.a.applyMatrix4(Ot),Gt.b.applyMatrix4(Ot),Gt.c.applyMatrix4(Ot)),y.splitByTriangle(Gt,B)}}const{triangles:a,triangleIndices:c=[],triangleConnectivity:s=[]}=y;for(let l=0,_=T.length;l<_;l++)T[l].initInterpolatedAttributeData(d.geometry,vt,Ct,i,t,D);on.clear();for(let l=0,_=a.length;l<_;l++){if(on.has(l))continue;const G=a[l],N=w?null:pt;let O=null;G.getMidpoint(le);for(let B=0,V=an.length;B<V;B++){const z=an[B];if(z.containsPoint(le)){z.getNormal(ue),O=ve.dot(ue)>0?pn:vn;break}}O===null&&(O=We(G,u,N)),$t.length=0,At.length=0;for(let B=0,V=p.length;B<V;B++){const z=Ke(p[B],O,w);z!==kn&&($t.push(z),At.push(T[B]))}if(At.length!==0){const B=[l];for(;B.length>0;){const V=B.pop();if(on.has(V))continue;on.add(V);const z=c[V];let Q=null,$=null,k=null;z&&(Q=z[0],$=z[1],k=z[2]);const F=a[V];xt.getBarycoord(F.a,Pt.a),xt.getBarycoord(F.b,Pt.b),xt.getBarycoord(F.c,Pt.c);for(let f=0,j=At.length;f<j;f++){const nt=At[f],q=$t[f]===Zt,L=I!==q;nt.appendInterpolatedAttributeData(e,Pt.a,Q,L),L?(nt.appendInterpolatedAttributeData(e,Pt.c,k,L),nt.appendInterpolatedAttributeData(e,Pt.b,$,L)):(nt.appendInterpolatedAttributeData(e,Pt.b,$,L),nt.appendInterpolatedAttributeData(e,Pt.c,k,L))}}}}}return M.length}function ye(d,r,h,p,w,y,T=0){pt.copy(r.matrixWorld).invert().multiply(d.matrixWorld),w?vt.copy(pt):vt.identity();const x=vt.determinant()<0;Ct.getNormalMatrix(vt).multiplyScalar(x?-1:1);const I=r.geometry.boundsTree,v=d.geometry.groupIndices,o=d.geometry.index,u=d.geometry.attributes.position,A=[],E=d.geometry.halfEdges,M=new Set(h.ids),S=mt(d.geometry);for(let C=0;C<S&&M.size!==S;C++){if(M.has(C))continue;M.add(C),A.push(C);const P=3*C;let e=P+0,n=P+1,i=P+2;o&&(e=o.getX(e),n=o.getX(n),i=o.getX(i)),bt.a.fromBufferAttribute(u,e),bt.b.fromBufferAttribute(u,n),bt.c.fromBufferAttribute(u,i),w&&(bt.a.applyMatrix4(pt),bt.b.applyMatrix4(pt),bt.c.applyMatrix4(pt));const t=We(bt,I,w?null:pt);$t.length=0,At.length=0;for(let D=0,b=p.length;D<b;D++){const a=Ke(p[D],t,w);a!==kn&&($t.push(a),At.push(y[D]))}for(;A.length>0;){const D=A.pop();for(let b=0;b<3;b++){const a=E.getSiblingTriangleIndex(D,b);a!==-1&&!M.has(a)&&(A.push(a),M.add(a))}if(At.length!==0){const b=3*D;let a=b+0,c=b+1,s=b+2;o&&(a=o.getX(a),c=o.getX(c),s=o.getX(s));const l=T===-1?0:v[D]+T;if(bt.a.fromBufferAttribute(u,a),bt.b.fromBufferAttribute(u,c),bt.c.fromBufferAttribute(u,s),!Dt(bt))for(let _=0,G=At.length;_<G;_++){const N=At[_],V=$t[_]===Zt!==x;N.appendIndexFromGeometry(d.geometry,vt,Ct,l,a,V),V?(N.appendIndexFromGeometry(d.geometry,vt,Ct,l,s,V),N.appendIndexFromGeometry(d.geometry,vt,Ct,l,c,V)):(N.appendIndexFromGeometry(d.geometry,vt,Ct,l,c,V),N.appendIndexFromGeometry(d.geometry,vt,Ct,l,s,V))}}}}}function Wr(d){return d=~~d,d+4-d%4}class Kr{constructor(r,h=500){this.expansionFactor=1.5,this.type=r,this.length=0,this.array=null,this.setSize(h)}setType(r){if(r===this.type)return;if(this.length!==0)throw new Error("TypeBackedArray: Cannot change the type while there is used data in the buffer.");const h=this.array.buffer;this.array=new r(h),this.type=r}setSize(r){if(this.array&&r===this.array.length)return;const h=this.type,p=Le()?SharedArrayBuffer:ArrayBuffer,w=new h(new p(Wr(r*h.BYTES_PER_ELEMENT)));this.array&&w.set(this.array,0),this.array=w}expand(){const{array:r,expansionFactor:h}=this;this.setSize(r.length*h)}push(...r){let{array:h,length:p}=this;p+r.length>h.length&&(this.expand(),h=this.array);for(let w=0,y=r.length;w<y;w++)h[p+w]=r[w];this.length+=r.length}clear(){this.length=0}}const lt=new R,Cn=new R,Dn=new R,Bn=new R,hn=new Qt,Yr=new Qt,Zr=new Qt,Jr=new Qt;function Qr(d,r,h,p,w,y=!1,T=!1){return w.set(0,0,0,0).addScaledVector(d,p.x).addScaledVector(r,p.y).addScaledVector(h,p.z),y&&w.normalize(),T&&w.multiplyScalar(-1),w}function xe(d,r,h){switch(r){case 1:h.push(d.x);break;case 2:h.push(d.x,d.y);break;case 3:h.push(d.x,d.y,d.z);break;case 4:h.push(d.x,d.y,d.z,d.w);break}}class Nn extends Kr{get count(){return this.length/this.itemSize}constructor(...r){super(...r),this.itemSize=1,this.normalized=!1}}class mr{constructor(){this.attributeData={},this.groupIndices=[],this.forwardIndexMap=new Map,this.invertedIndexMap=new Map,this.interpolatedFields={}}initFromGeometry(r,h){this.clear();const{attributeData:p}=this,w=r.attributes;for(let y=0,T=h.length;y<T;y++){const x=h[y],I=w[x],v=I.array.constructor;p[x]||(p[x]=new Nn(v)),p[x].setType(v),p[x].itemSize=I.itemSize,p[x].normalized=I.normalized}for(const y in p.attributes)h.includes(y)||p.delete(y)}initInterpolatedAttributeData(r,h,p,w,y,T){const{attributeData:x,interpolatedFields:I}=this,{attributes:v}=r;for(const o in x){const g=v[o];if(!g)throw new Error(`CSG Operations: Attribute ${o} not available on geometry.`);let u,A,E;if(o==="position"?(u=Cn.fromBufferAttribute(g,w).applyMatrix4(h),A=Dn.fromBufferAttribute(g,y).applyMatrix4(h),E=Bn.fromBufferAttribute(g,T).applyMatrix4(h)):o==="normal"?(u=Cn.fromBufferAttribute(g,w).applyNormalMatrix(p),A=Dn.fromBufferAttribute(g,y).applyNormalMatrix(p),E=Bn.fromBufferAttribute(g,T).applyNormalMatrix(p)):o==="tangent"?(u=Cn.fromBufferAttribute(g,w).transformDirection(h),A=Dn.fromBufferAttribute(g,y).transformDirection(h),E=Bn.fromBufferAttribute(g,T).transformDirection(h)):(u=Yr.fromBufferAttribute(g,w),A=Zr.fromBufferAttribute(g,y),E=Jr.fromBufferAttribute(g,T)),!I[o])I[o]=[u.clone(),A.clone(),E.clone()];else{const M=I[o];M[0].copy(u),M[1].copy(A),M[2].copy(E)}}}appendInterpolatedAttributeData(r,h,p=null,w=!1){const{groupIndices:y,attributeData:T,interpolatedFields:x,forwardIndexMap:I,invertedIndexMap:v}=this;for(;y.length<=r;)y.push(new Nn(Uint32Array));const o=w?v:I,g=y[r];if(p!==null&&o.has(p))g.push(o.get(p));else{o.set(p,T.position.count),g.push(T.position.count);for(const u in x){const A=T[u],E=u==="normal"||u==="tangent",M=w&&E,S=A.itemSize,[C,P,e]=x[u];Qr(C,P,e,h,hn,E,M),xe(hn,S,A)}}}appendIndexFromGeometry(r,h,p,w,y,T=!1){const{groupIndices:x,attributeData:I,forwardIndexMap:v,invertedIndexMap:o}=this;for(;x.length<=w;)x.push(new Nn(Uint32Array));const g=T?o:v,u=x[w];if(y!==null&&g.has(y))u.push(g.get(y));else{g.set(y,I.position.count),u.push(I.position.count);const{attributes:A}=r;for(const E in I){const M=I[E],S=A[E];if(!S)throw new Error(`CSG Operations: Attribute ${E} not available on geometry.`);const C=S.itemSize;E==="position"?(lt.fromBufferAttribute(S,y).applyMatrix4(h),M.push(lt.x,lt.y,lt.z)):E==="normal"?(lt.fromBufferAttribute(S,y).applyNormalMatrix(p),T&&lt.multiplyScalar(-1),M.push(lt.x,lt.y,lt.z)):E==="tangent"?(lt.fromBufferAttribute(S,y).transformDirection(h),T&&lt.multiplyScalar(-1),M.push(lt.x,lt.y,lt.z)):(hn.fromBufferAttribute(S,y),xe(hn,C,M))}}}buildGeometry(r,h){let p=!1;const{groupIndices:w,attributeData:y}=this,{attributes:T,index:x}=r;for(const o in y){const g=y[o],{type:u,itemSize:A,normalized:E,length:M,count:S}=g,C=g.array.buffer;let P=T[o];(!P||P.count<S||P.array.type!==u)&&(P=new Jt(new u(M),A,E),r.setAttribute(o,P),p=!0),P.array.set(new u(C,0,M),0),P.needsUpdate=!0}const I=w.reduce((o,g)=>g.count+o,0);(!r.index||x.count<I||x.array.type!==Uint32Array)&&(r.setIndex(new Jt(new Uint32Array(I),1)),p=!0),r.clearGroups();let v=0;for(let o=0,g=Math.min(h.length,w.length);o<g;o++){const{index:u,materialIndex:A}=h[o],{count:E}=w[u],M=w[u].array.buffer;E!==0&&(r.index.array.set(new Uint32Array(M,0,E),v),r.addGroup(v,E,A),v+=E)}r.setDrawRange(0,v),r.boundsTree=null,r.boundingBox=null,r.boundingSphere=null,p&&r.dispose()}clearIndexMap(){this.forwardIndexMap.clear(),this.invertedIndexMap.clear()}clear(){const{groupIndices:r,attributeData:h}=this;this.interpolatedFields={};for(const p in h)h[p].clear();r.forEach(p=>{p.clear()}),this.clearIndexMap()}}function to(d,r){for(const h in d.attributes)r.includes(h)||(d.deleteAttribute(h),d.dispose());return d}function no(d,r){const h=[];for(let p=0,w=d.length;p<w;p++){const y=d[p],T=r[y.materialIndex];h.push({...y,materialIndex:r.indexOf(T)})}return h}function eo(d,r){const h=[],p=new Map;for(let w=0,y=d.length;w<y;w++){const T=d[w];p.has(T.materialIndex)||(p.set(T.materialIndex,h.length),h.push(r[T.materialIndex])),T.materialIndex=p.get(T.materialIndex)}return h}function ro(d){for(let r=0;r<d.length-1;r++){const h=d[r],p=d[r+1];if(h.materialIndex===p.materialIndex){const w=h.start,y=p.start+p.count;p.start=w,p.count=y-w,d.splice(r,1),r--}}}function be(d,r){let h=r;return Array.isArray(r)||(h=[],d.forEach(p=>{h[p.materialIndex]=r})),h}class po{get useCDTClipping(){return this.triangleSplitter instanceof Yn}set useCDTClipping(r){r!==this.useCDTClipping&&(this.triangleSplitter=r?new Yn:new te)}constructor(){this.triangleSplitter=new te,this.geometryBuilders=[],this.attributes=["position","uv","normal"],this.useGroups=!0,this.consolidateGroups=!0,this.removeUnusedMaterials=!0,this.debug=new qr}getGroupRanges(r){return!this.useGroups||r.groups.length===0?[{start:0,count:1/0,materialIndex:0}]:r.groups.map(p=>({...p}))}evaluate(r,h,p,w=new zn){let y=!0;if(Array.isArray(p)||(p=[p]),Array.isArray(w)||(w=[w],y=!1),w.length!==p.length)throw new Error("Evaluator: operations and target array passed as different sizes.");r.prepareGeometry(),h.prepareGeometry();const{triangleSplitter:T,geometryBuilders:x,attributes:I,useGroups:v,consolidateGroups:o,removeUnusedMaterials:g,debug:u}=this;for(;x.length<w.length;)x.push(new mr);w.forEach((e,n)=>{x[n].initFromGeometry(r.geometry,I),to(e.geometry,I)}),u.init(),Xr(r,h,p,T,x,{useGroups:v}),u.complete();const A=this.getGroupRanges(r.geometry),E=be(A,r.material),M=this.getGroupRanges(h.geometry),S=be(M,h.material);M.forEach(e=>e.materialIndex+=E.length);const C=[...E,...S];let P=[...A,...M].map((e,n)=>({...e,index:n}));return v?v&&o&&(P=no(P,C),P.sort((e,n)=>e.materialIndex-n.materialIndex)):P=[{start:0,count:1/0,index:0,materialIndex:0}],w.forEach((e,n)=>{const i=e.geometry;x[n].buildGeometry(i,P),r.matrixWorld.decompose(e.position,e.quaternion,e.scale),e.updateMatrix(),e.matrixWorld.copy(r.matrixWorld),v?(e.material=C,o&&ro(i.groups),g&&(e.material=eo(i.groups,C))):e.material=C[0]}),y?w:w[0]}evaluateHierarchy(r,h=new zn){r.updateMatrixWorld(!0);const p=(y,T)=>{const x=y.children;for(let I=0,v=x.length;I<v;I++){const o=x[I];o.isOperationGroup?p(o,T):T(o)}},w=y=>{const T=y.children;let x=!1;for(let v=0,o=T.length;v<o;v++){const g=T[v];x=w(g)||x}const I=y.isDirty();if(I&&y.markUpdated(),x&&!y.isOperationGroup){let v;return p(y,o=>{v?v=this.evaluate(v,o,o.operation):v=this.evaluate(y,o,o.operation)}),y._cachedGeometry=v.geometry,y._cachedMaterials=v.material,!0}else return x||I};return w(r),h.geometry=r._cachedGeometry,h.material=r._cachedMaterials,h}reset(){this.triangleSplitter.reset()}}class uo extends zn{constructor(...r){super(...r),this.isOperation=!0,this.operation=Ue,this._cachedGeometry=new On,this._cachedMaterials=null,this._previousOperation=null}markUpdated(){super.markUpdated(),this._previousOperation=this.operation}isDirty(){return this.operation!==this._previousOperation||super.isDirty()}insertBefore(r){const h=this.parent,p=h.children.indexOf(this);h.children.splice(p,0,r)}insertAfter(r){const h=this.parent,p=h.children.indexOf(this);h.children.splice(p+1,0,r)}}class wo extends Oe{constructor(){super(),this.isOperationGroup=!0,this._previousMatrix=new kt}markUpdated(){this._previousMatrix.copy(this.matrix)}isDirty(){const{matrix:r,_previousMatrix:h}=this,p=r.elements,w=h.elements;for(let y=0;y<16;y++)if(p[y]!==w[y])return!0;return!1}}function oo(d){if(!/varying\s+vec3\s+wPosition/.test(d.vertexShader))return d.vertexShader=`
2
+ varying vec3 wPosition;
3
+ ${d.vertexShader}
4
+ `.replace(/#include <displacementmap_vertex>/,r=>`${r}
5
+ wPosition = (modelMatrix * vec4( transformed, 1.0 )).xyz;
6
+ `),d.fragmentShader=`
7
+ varying vec3 wPosition;
8
+ ${d.fragmentShader}
9
+ `,d}function io(d){return d.uniforms={...d.uniforms,checkerboardColor:{value:new Ge(1118481)}},oo(d),d.defines={CSG_GRID:1},d.fragmentShader=d.fragmentShader.replace(/#include <common>/,r=>`
10
+ ${r}
11
+
12
+ uniform vec3 checkerboardColor;
13
+ float getCheckerboard( vec2 p, float scale ) {
14
+
15
+ p /= scale;
16
+ p += vec2( 0.5 );
17
+
18
+ vec2 line = mod( p, 2.0 ) - vec2( 1.0 );
19
+ line = abs( line );
20
+
21
+ vec2 pWidth = fwidth( line );
22
+ vec2 value = smoothstep( 0.5 - pWidth / 2.0, 0.5 + pWidth / 2.0, line );
23
+ float result = value.x * value.y + ( 1.0 - value.x ) * ( 1.0 - value.y );
24
+
25
+ return result;
26
+
27
+ }
28
+
29
+ float getGrid( vec2 p, float scale, float thickness ) {
30
+
31
+ p /= 0.5 * scale;
32
+
33
+ vec2 stride = mod( p, 2.0 ) - vec2( 1.0 );
34
+ stride = abs( stride );
35
+
36
+ vec2 pWidth = fwidth( p );
37
+ vec2 line = smoothstep( 1.0 - pWidth / 2.0, 1.0 + pWidth / 2.0, stride + thickness * pWidth );
38
+
39
+ return max( line.x, line.y );
40
+
41
+ }
42
+
43
+ vec3 getFaceColor( vec2 p, vec3 color ) {
44
+
45
+ float checkLarge = getCheckerboard( p, 1.0 );
46
+ float checkSmall = abs( getCheckerboard( p, 0.1 ) );
47
+ float lines = getGrid( p, 10.0, 1.0 );
48
+
49
+ vec3 checkColor = mix(
50
+ vec3( 0.7 ) * color,
51
+ vec3( 1.0 ) * color,
52
+ checkSmall * 0.4 + checkLarge * 0.6
53
+ );
54
+
55
+ vec3 gridColor = vec3( 1.0 );
56
+
57
+ return mix( checkColor, gridColor, lines );
58
+
59
+ }
60
+
61
+ float angleBetween( vec3 a, vec3 b ) {
62
+
63
+ return acos( abs( dot( a, b ) ) );
64
+
65
+ }
66
+
67
+ vec3 planeProject( vec3 norm, vec3 other ) {
68
+
69
+ float d = dot( norm, other );
70
+ return normalize( other - norm * d );
71
+
72
+ }
73
+
74
+ vec3 getBlendFactors( vec3 norm ) {
75
+
76
+ vec3 xVec = vec3( 1.0, 0.0, 0.0 );
77
+ vec3 yVec = vec3( 0.0, 1.0, 0.0 );
78
+ vec3 zVec = vec3( 0.0, 0.0, 1.0 );
79
+
80
+ vec3 projX = planeProject( xVec, norm );
81
+ vec3 projY = planeProject( yVec, norm );
82
+ vec3 projZ = planeProject( zVec, norm );
83
+
84
+ float xAngle = max(
85
+ angleBetween( xVec, projY ),
86
+ angleBetween( xVec, projZ )
87
+ );
88
+
89
+ float yAngle = max(
90
+ angleBetween( yVec, projX ),
91
+ angleBetween( yVec, projZ )
92
+ );
93
+
94
+ float zAngle = max(
95
+ angleBetween( zVec, projX ),
96
+ angleBetween( zVec, projY )
97
+ );
98
+
99
+ return vec3( xAngle, yAngle, zAngle ) / ( 0.5 * PI );
100
+
101
+ }
102
+ `).replace(/#include <normal_fragment_maps>/,r=>`${r}
103
+ #if CSG_GRID
104
+ {
105
+
106
+ vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );
107
+
108
+ float yCont = abs( dot( vec3( 0.0, 1.0, 0.0 ), worldNormal ) );
109
+ float zCont = abs( dot( vec3( 0.0, 0.0, 1.0 ), worldNormal ) );
110
+ float xCont = abs( dot( vec3( 1.0, 0.0, 0.0 ), worldNormal ) );
111
+
112
+ vec3 factors = getBlendFactors( worldNormal );
113
+ factors = smoothstep( vec3( 0.475 ), vec3( 0.525 ), vec3( 1.0 ) - factors );
114
+
115
+ float weight = factors.x + factors.y + factors.z;
116
+ factors /= weight;
117
+
118
+ vec3 color =
119
+ getFaceColor( wPosition.yz, diffuseColor.rgb ) * factors.x +
120
+ getFaceColor( wPosition.xz, diffuseColor.rgb ) * factors.y +
121
+ getFaceColor( wPosition.xy, diffuseColor.rgb ) * factors.z;
122
+
123
+ diffuseColor.rgb = color;
124
+
125
+ }
126
+ #endif
127
+ `),d}class yo extends ze{get enableGrid(){return!!this._enableGrid}set enableGrid(r){this._enableGrid!==r&&(this._enableGrid=r,this.needsUpdate=!0)}constructor(...r){super(...r),this.enableGrid=!0}onBeforeCompile(r){io(r),r.defines.CSG_GRID=Number(this.enableGrid)}customProgramCacheKey(){return this.enableGrid.toString()}}function ao(...d){function r(h){return`new THREE.Vector3( ${h.x}, ${h.y}, ${h.z} )`}return d.map(h=>`
128
+ new THREE.Triangle(
129
+ ${r(h.a)},
130
+ ${r(h.b)},
131
+ ${r(h.c)},
132
+ )
133
+ `.trim())}function xo(...d){console.log(ao(...d).join(`,
134
+ `))}function bo(d){const r=d.attributes.position,h=new Float32Array(r.count*3),p=new Ge;for(let w=0,y=h.length;w<y;w+=9)p.setHSL(Math.random(),Ln.lerp(.5,1,Math.random()),Ln.lerp(.5,.75,Math.random())),h[w+0]=p.r,h[w+1]=p.g,h[w+2]=p.b,h[w+3]=p.r,h[w+4]=p.g,h[w+5]=p.b,h[w+6]=p.r,h[w+7]=p.g,h[w+8]=p.b;d.setAttribute("color",new Jt(h,3))}class _o extends Oe{get color(){return this._mesh.material.color}get side(){return this._mesh.material.side}set side(r){this._mesh.material.side=r}constructor(r=[]){super();const h=new On,p=new On;this._mesh=new Ve(h,new ze({flatShading:!0,transparent:!0,opacity:.25,depthWrite:!1})),this._lines=new $e(p,new tr),this._mesh.material.color=this._lines.material.color,this._lines.frustumCulled=!1,this._mesh.frustumCulled=!1,this.add(this._lines,this._mesh),this.setTriangles(r)}setTriangles(r){const h=new Float32Array(9*r.length),p=new Float32Array(18*r.length);for(let w=0,y=r.length;w<y;w++){const T=9*w,x=18*w,I=r[w];I.a.toArray(h,T+0),I.b.toArray(h,T+3),I.c.toArray(h,T+6),I.a.toArray(p,x+0),I.b.toArray(p,x+3),I.b.toArray(p,x+6),I.c.toArray(p,x+9),I.c.toArray(p,x+12),I.a.toArray(p,x+15)}this._mesh.geometry.dispose(),this._mesh.geometry.setAttribute("position",new Jt(h,3)),this._lines.geometry.dispose(),this._lines.geometry.setAttribute("position",new Jt(p,3))}}class ho extends $e{get color(){return this.material.color}constructor(r=[]){super(),this.frustumCulled=!1,this.setEdges(r)}setEdges(r){const{geometry:h}=this,p=r.flatMap(w=>[w.start,w.end]);h.dispose(),h.deleteAttribute("position"),h.setFromPoints(p)}}const de=new kt;class Io extends nr{get color(){return this.material.color}constructor(r=1e3,h=[]){super(new er(.025),new rr,r),this.frustumCulled=!1,this.setPoints(h)}setPoints(r){for(let h=0,p=r.length;h<p;h++){const w=r[h];de.makeTranslation(w.x,w.y,w.z),this.setMatrixAt(h,de)}this.count=r.length}}const Bt=["a","b","c"],Mt=new _t,Kt=new _t,Ft=new R,Yt=new R,_e=new R,Ie=new R,cn=new R,sn=new R,Ae=new R,Te=new R,qt=new R,Ee=new R,Se=new R,Me=new R,Pe=new yn,Ce=new yn,gn=new R,dt=new $n,Vn=new ut;function ln(d,r,h){const p=3*r;let w=p+0,y=p+1,T=p+2;const x=d.index,I=d.attributes.position;return x&&(w=x.getX(w),y=x.getX(y),T=x.getX(T)),h.a.fromBufferAttribute(I,w),h.b.fromBufferAttribute(I,y),h.c.fromBufferAttribute(I,T),h}function co(d,r,h,p,w){const y=(r+1)%3,T=d[Bt[r]],x=d[Bt[y]],I=(p+1)%3,v=h[Bt[p]],o=h[Bt[I]];fe(T,x,dt);let g=qt.subVectors(T,dt.origin).dot(dt.direction),u=qt.subVectors(x,dt.origin).dot(dt.direction);g>u&&([g,u]=[u,g]);let A=qt.subVectors(v,dt.origin).dot(dt.direction),E=qt.subVectors(o,dt.origin).dot(dt.direction);A>E&&([A,E]=[E,A]);const M=Math.max(g,A),S=Math.min(u,E);dt.at(M,w.start),dt.at(S,w.end)}class Ao extends ho{constructor(r=null,h=null){super(),this.straightEdges=!1,this.displayDisconnectedEdges=!1,r&&h&&this.setHalfEdges(r,h)}setHalfEdges(r,h){const{straightEdges:p,displayDisconnectedEdges:w}=this,y=[],T=r.drawRange.start;let x=mt(r);if(r.drawRange.count!==1/0&&(x=~~(r.drawRange.count/3)),w)if(h.unmatchedDisjointEdges)h.unmatchedDisjointEdges.forEach(({forward:v,reverse:o,ray:g})=>{[...v,...o].forEach(({start:u,end:A})=>{const E=new ut;g.at(u,E.start),g.at(A,E.end),y.push(E)})});else for(let v=T;v<x;v++){ln(r,v,Mt);for(let o=0;o<3;o++)if(h.getSiblingTriangleIndex(v,o)===-1){const u=(o+1)%3,A=Mt[Bt[o]],E=Mt[Bt[u]],M=new ut;M.start.copy(A),M.end.copy(E),y.push(M)}}else for(let v=T;v<x;v++){ln(r,v,Mt);for(let o=0;o<3;o++){const g=h.getSiblingTriangleIndex(v,o);if(g===-1)continue;ln(r,g,Kt);const u=(o+1)%3,A=Mt[Bt[o]],E=Mt[Bt[u]];gn.lerpVectors(A,E,.5),I(Mt,Kt,gn)}if(h.disjointConnections)for(let o=0;o<3;o++){const g=h.getDisjointSiblingTriangleIndices(v,o),u=h.getDisjointSiblingEdgeIndices(v,o);for(let A=0;A<g.length;A++){const E=g[A],M=u[A];ln(r,E,Kt),co(Mt,o,Kt,M,Vn),gn.lerpVectors(Vn.start,Vn.end,.5),I(Mt,Kt,gn)}}}super.setEdges(y);function I(v,o,g){v.getMidpoint(Ft),o.getMidpoint(Yt),v.getPlane(Pe),o.getPlane(Ce);const u=new ut;u.start.copy(Ft),p?(Pe.projectPoint(Yt,_e),Ce.projectPoint(Ft,Ie),cn.subVectors(_e,Ft),sn.subVectors(Ie,Yt),Ae.subVectors(g,Ft),Te.subVectors(g,Yt),cn.dot(Ae)<0&&cn.multiplyScalar(-1),sn.dot(Te)<0&&sn.multiplyScalar(-1),qt.addVectors(Ft,cn),Ee.addVectors(Yt,sn),v.closestPointToPoint(qt,Se),o.closestPointToPoint(Ee,Me),u.end.lerpVectors(Se,Me,.5)):u.end.copy(g),y.push(u)}}}const It=new _t,De=new R,Be=new R;function To(d){let r,h;d.isBufferGeometry?(r=d,h=null):(r=d.geometry,h=Math.abs(d.matrixWorld.determinant()-1)<1e-15?null:d.matrixWorld);const p=r.index,w=r.attributes.position,y=r.drawRange,T=Math.min(mt(r),y.count/3);It.setFromAttributeAndIndices(w,0,1,2),Ne(It,h),It.getNormal(De),It.getMidpoint(Be).add(De);let x=0;const I=y.start/3;for(let v=I,o=I+T;v<o;v++){let g=3*v+0,u=3*v+1,A=3*v+2;p&&(g=p.getX(g),u=p.getX(u),A=p.getX(A)),It.setFromAttributeAndIndices(w,g,u,A),Ne(It,h),go(It,Be),x+=so(It.a,It.b,It.c)}return Math.abs(x)}function so(d,r,h){const p=h.x*r.y*d.z,w=r.x*h.y*d.z,y=h.x*d.y*r.z,T=d.x*h.y*r.z,x=r.x*d.y*h.z,I=d.x*r.y*h.z;return 1/6*(-p+w+y-T-x+I)}function go(d,r){d.a.sub(r),d.b.sub(r),d.c.sub(r)}function Ne(d,r=null){r!==null&&(d.a.applyMatrix4(r),d.b.applyMatrix4(r),d.c.applyMatrix4(r))}export{Ue as ADDITION,zn as Brush,Yn as CDTTriangleSplitter,kr as DIFFERENCE,ho as EdgesHelper,po as Evaluator,yo as GridMaterial,Xe as HOLLOW_INTERSECTION,qe as HOLLOW_SUBTRACTION,Ao as HalfEdgeHelper,_r as HalfEdgeMap,Rr as INTERSECTION,te as LegacyTriangleSplitter,uo as Operation,wo as OperationGroup,Io as PointsHelper,$r as REVERSE_SUBTRACTION,zr as SUBTRACTION,_o as TriangleSetHelper,To as computeMeshVolume,bo as generateRandomTriangleColors,ao as getTriangleDefinitions,xo as logTriangleDefinitions};
@@ -0,0 +1 @@
1
+ import{P as L,c as $,d as E,D as j,N as y,T as S,e as G}from"./index-CJbYy-CF.js";var N={};class v{constructor(t,e,s,i,h,r,n,o,a,u=0,f){this.p=t,this.stack=e,this.state=s,this.reducePos=i,this.pos=h,this.score=r,this.buffer=n,this.bufferBase=o,this.curContext=a,this.lookAhead=u,this.parent=f}toString(){return`[${this.stack.filter((t,e)=>e%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(t,e,s=0){let i=t.parser.context;return new v(t,[],e,s,s,0,[],0,i?new R(i,i.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(t,e){this.stack.push(this.state,e,this.bufferBase+this.buffer.length),this.state=t}reduce(t){var e;let s=t>>19,i=t&65535,{parser:h}=this.p,r=this.reducePos<this.pos-25&&this.setLookAhead(this.pos),n=h.dynamicPrecedence(i);if(n&&(this.score+=n),s==0){i<h.minRepeatTerm&&this.reducePos<this.pos&&(this.reducePos=this.pos),this.pushState(h.getGoto(this.state,i,!0),this.reducePos),i<h.minRepeatTerm&&this.storeNode(i,this.reducePos,this.reducePos,r?8:4,!0),this.reduceContext(i,this.reducePos);return}let o=this.stack.length-(s-1)*3-(t&262144?6:0),a=o?this.stack[o-2]:this.p.ranges[0].from;i<h.minRepeatTerm&&a==this.reducePos&&this.reducePos<this.pos&&(this.reducePos=this.pos);let u=this.reducePos-a;u>=2e3&&!(!((e=this.p.parser.nodeSet.types[i])===null||e===void 0)&&e.isAnonymous)&&(a==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=u):this.p.lastBigReductionSize<u&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=a,this.p.lastBigReductionSize=u));let f=o?this.stack[o-1]:0,d=this.bufferBase+this.buffer.length-f;if(i<h.minRepeatTerm||t&131072){let c=h.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(i,a,c,d+4,!0)}if(t&262144)this.state=this.stack[o];else{let c=this.stack[o-3];this.state=h.getGoto(c,i,!0)}for(;this.stack.length>o;)this.stack.pop();this.reduceContext(i,a)}storeNode(t,e,s,i=4,h=!1){if(t==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let r=this.buffer.length;if(r>0&&this.buffer[r-4]==0&&this.buffer[r-1]>-1){if(e==s)return;if(this.buffer[r-2]>=e){this.buffer[r-2]=s;return}}}if(!h||this.pos==s)this.buffer.push(t,e,s,i);else{let r=this.buffer.length;if(r>0&&(this.buffer[r-4]!=0||this.buffer[r-1]<0)){let n=!1;for(let o=r;o>0&&this.buffer[o-2]>s;o-=4)if(this.buffer[o-1]>=0){n=!0;break}if(n)for(;r>0&&this.buffer[r-2]>s;)this.buffer[r]=this.buffer[r-4],this.buffer[r+1]=this.buffer[r-3],this.buffer[r+2]=this.buffer[r-2],this.buffer[r+3]=this.buffer[r-1],r-=4,i>4&&(i-=4)}this.buffer[r]=t,this.buffer[r+1]=e,this.buffer[r+2]=s,this.buffer[r+3]=i}}shift(t,e,s,i){if(t&131072)this.pushState(t&65535,this.pos);else if((t&262144)==0){let h=t,{parser:r}=this.p;this.pos=i;let n=r.stateFlag(h,1);!n&&(i>s||e<=r.maxNode)&&(this.reducePos=i),this.pushState(h,n?s:Math.min(s,this.reducePos)),this.shiftContext(e,s),e<=r.maxNode&&this.buffer.push(e,s,i,4)}else this.pos=i,this.shiftContext(e,s),e<=this.p.parser.maxNode&&this.buffer.push(e,s,i,4)}apply(t,e,s,i){t&65536?this.reduce(t):this.shift(t,e,s,i)}useNode(t,e){let s=this.p.reused.length-1;(s<0||this.p.reused[s]!=t)&&(this.p.reused.push(t),s++);let i=this.pos;this.reducePos=this.pos=i+t.length,this.pushState(e,i),this.buffer.push(s,i,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,t,this,this.p.stream.reset(this.pos-t.length)))}split(){let t=this,e=t.buffer.length;for(e&&t.buffer[e-4]==0&&(e-=4);e>0&&t.buffer[e-2]>t.reducePos;)e-=4;let s=t.buffer.slice(e),i=t.bufferBase+e;for(;t&&i==t.bufferBase;)t=t.parent;return new v(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,s,i,this.curContext,this.lookAhead,t)}recoverByDelete(t,e){let s=t<=this.p.parser.maxNode;s&&this.storeNode(t,this.pos,e,4),this.storeNode(0,this.pos,e,s?8:4),this.pos=this.reducePos=e,this.score-=190}canShift(t){for(let e=new U(this);;){let s=this.p.parser.stateSlot(e.state,4)||this.p.parser.hasAction(e.state,t);if(s==0)return!1;if((s&65536)==0)return!0;e.reduce(s)}}recoverByInsert(t){if(this.stack.length>=300)return[];let e=this.p.parser.nextStates(this.state);if(e.length>8||this.stack.length>=120){let i=[];for(let h=0,r;h<e.length;h+=2)(r=e[h+1])!=this.state&&this.p.parser.hasAction(r,t)&&i.push(e[h],r);if(this.stack.length<120)for(let h=0;i.length<8&&h<e.length;h+=2){let r=e[h+1];i.some((n,o)=>o&1&&n==r)||i.push(e[h],r)}e=i}let s=[];for(let i=0;i<e.length&&s.length<4;i+=2){let h=e[i+1];if(h==this.state)continue;let r=this.split();r.pushState(h,this.pos),r.storeNode(0,r.pos,r.pos,4,!0),r.shiftContext(e[i],this.pos),r.reducePos=this.pos,r.score-=200,s.push(r)}return s}forceReduce(){let{parser:t}=this.p,e=t.stateSlot(this.state,5);if((e&65536)==0)return!1;if(!t.validAction(this.state,e)){let s=e>>19,i=e&65535,h=this.stack.length-s*3;if(h<0||t.getGoto(this.stack[h],i,!1)<0){let r=this.findForcedReduction();if(r==null)return!1;e=r}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(e),!0}findForcedReduction(){let{parser:t}=this.p,e=[],s=(i,h)=>{if(!e.includes(i))return e.push(i),t.allActions(i,r=>{if(!(r&393216))if(r&65536){let n=(r>>19)-h;if(n>1){let o=r&65535,a=this.stack.length-n*3;if(a>=0&&t.getGoto(this.stack[a],o,!1)>=0)return n<<19|65536|o}}else{let n=s(r,h+1);if(n!=null)return n}})};return s(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:t}=this.p;return t.data[t.stateSlot(this.state,1)]==65535&&!t.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(t){if(this.state!=t.state||this.stack.length!=t.stack.length)return!1;for(let e=0;e<this.stack.length;e+=3)if(this.stack[e]!=t.stack[e])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(t){return this.p.parser.dialect.flags[t]}shiftContext(t,e){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,t,this,this.p.stream.reset(e)))}reduceContext(t,e){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,t,this,this.p.stream.reset(e)))}emitContext(){let t=this.buffer.length-1;(t<0||this.buffer[t]!=-3)&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let t=this.buffer.length-1;(t<0||this.buffer[t]!=-4)&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(t){if(t!=this.curContext.context){let e=new R(this.curContext.tracker,t);e.hash!=this.curContext.hash&&this.emitContext(),this.curContext=e}}setLookAhead(t){return t<=this.lookAhead?!1:(this.emitLookAhead(),this.lookAhead=t,!0)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class R{constructor(t,e){this.tracker=t,this.context=e,this.hash=t.strict?t.hash(e):0}}class U{constructor(t){this.start=t,this.state=t.state,this.stack=t.stack,this.base=this.stack.length}reduce(t){let e=t&65535,s=t>>19;s==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(s-1)*3;let i=this.start.p.parser.getGoto(this.stack[this.base-3],e,!0);this.state=i}}class A{constructor(t,e,s){this.stack=t,this.pos=e,this.index=s,this.buffer=t.buffer,this.index==0&&this.maybeNext()}static create(t,e=t.bufferBase+t.buffer.length){return new A(t,e,e-t.bufferBase)}maybeNext(){let t=this.stack.parent;t!=null&&(this.index=this.stack.bufferBase-t.bufferBase,this.stack=t,this.buffer=t.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new A(this.stack,this.pos,this.index)}}function x(l,t=Uint16Array){if(typeof l!="string")return l;let e=null;for(let s=0,i=0;s<l.length;){let h=0;for(;;){let r=l.charCodeAt(s++),n=!1;if(r==126){h=65535;break}r>=92&&r--,r>=34&&r--;let o=r-32;if(o>=46&&(o-=46,n=!0),h+=o,n)break;h*=46}e?e[i++]=h:e=new t(h)}return e}class P{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const z=new P;class H{constructor(t,e){this.input=t,this.ranges=e,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=z,this.rangeIndex=0,this.pos=this.chunkPos=e[0].from,this.range=e[0],this.end=e[e.length-1].to,this.readNext()}resolveOffset(t,e){let s=this.range,i=this.rangeIndex,h=this.pos+t;for(;h<s.from;){if(!i)return null;let r=this.ranges[--i];h-=s.from-r.to,s=r}for(;e<0?h>s.to:h>=s.to;){if(i==this.ranges.length-1)return null;let r=this.ranges[++i];h+=r.from-s.to,s=r}return h}clipPos(t){if(t>=this.range.from&&t<this.range.to)return t;for(let e of this.ranges)if(e.to>t)return Math.max(t,e.from);return this.end}peek(t){let e=this.chunkOff+t,s,i;if(e>=0&&e<this.chunk.length)s=this.pos+t,i=this.chunk.charCodeAt(e);else{let h=this.resolveOffset(t,1);if(h==null)return-1;if(s=h,s>=this.chunk2Pos&&s<this.chunk2Pos+this.chunk2.length)i=this.chunk2.charCodeAt(s-this.chunk2Pos);else{let r=this.rangeIndex,n=this.range;for(;n.to<=s;)n=this.ranges[++r];this.chunk2=this.input.chunk(this.chunk2Pos=s),s+this.chunk2.length>n.to&&(this.chunk2=this.chunk2.slice(0,n.to-s)),i=this.chunk2.charCodeAt(0)}}return s>=this.token.lookAhead&&(this.token.lookAhead=s+1),i}acceptToken(t,e=0){let s=e?this.resolveOffset(e,-1):this.pos;if(s==null||s<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=t,this.token.end=s}acceptTokenTo(t,e){this.token.value=t,this.token.end=e}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:t,chunkPos:e}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=t,this.chunk2Pos=e,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let t=this.input.chunk(this.pos),e=this.pos+t.length;this.chunk=e>this.range.to?t.slice(0,this.range.to-this.pos):t,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(t=1){for(this.chunkOff+=t;this.pos+t>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();t-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=t,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(t,e){if(e?(this.token=e,e.start=t,e.lookAhead=t+1,e.value=e.extended=-1):this.token=z,this.pos!=t){if(this.pos=t,t==this.end)return this.setDone(),this;for(;t<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;t>=this.range.to;)this.range=this.ranges[++this.rangeIndex];t>=this.chunkPos&&t<this.chunkPos+this.chunk.length?this.chunkOff=t-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(t,e){if(t>=this.chunkPos&&e<=this.chunkPos+this.chunk.length)return this.chunk.slice(t-this.chunkPos,e-this.chunkPos);if(t>=this.chunk2Pos&&e<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(t-this.chunk2Pos,e-this.chunk2Pos);if(t>=this.range.from&&e<=this.range.to)return this.input.read(t,e);let s="";for(let i of this.ranges){if(i.from>=e)break;i.to>t&&(s+=this.input.read(Math.max(i.from,t),Math.min(i.to,e)))}return s}}class m{constructor(t,e){this.data=t,this.id=e}token(t,e){let{parser:s}=e.p;O(this.data,t,e,this.id,s.data,s.tokenPrecTable)}}m.prototype.contextual=m.prototype.fallback=m.prototype.extend=!1;class W{constructor(t,e,s){this.precTable=e,this.elseToken=s,this.data=typeof t=="string"?x(t):t}token(t,e){let s=t.pos,i=0;for(;;){let h=t.next<0,r=t.resolveOffset(1,1);if(O(this.data,t,e,0,this.data,this.precTable),t.token.value>-1)break;if(this.elseToken==null)return;if(h||i++,r==null)break;t.reset(r,t.token)}i&&(t.reset(s,t.token),t.acceptToken(this.elseToken,i))}}W.prototype.contextual=m.prototype.fallback=m.prototype.extend=!1;class Z{constructor(t,e={}){this.token=t,this.contextual=!!e.contextual,this.fallback=!!e.fallback,this.extend=!!e.extend}}function O(l,t,e,s,i,h){let r=0,n=1<<s,{dialect:o}=e.p.parser;t:for(;(n&l[r])!=0;){let a=l[r+1];for(let c=r+3;c<a;c+=2)if((l[c+1]&n)>0){let p=l[c];if(o.allows(p)&&(t.token.value==-1||t.token.value==p||q(p,t.token.value,i,h))){t.acceptToken(p);break}}let u=t.next,f=0,d=l[r+2];if(t.next<0&&d>f&&l[a+d*3-3]==65535){r=l[a+d*3-1];continue t}for(;f<d;){let c=f+d>>1,p=a+c+(c<<1),b=l[p],M=l[p+1]||65536;if(u<b)d=c;else if(u>=M)f=c+1;else{r=l[p+2],t.advance();continue t}}break}}function I(l,t,e){for(let s=t,i;(i=l[s])!=65535;s++)if(i==e)return s-t;return-1}function q(l,t,e,s){let i=I(e,s,t);return i<0||I(e,s,l)<i}const g=typeof process<"u"&&N&&/\bparse\b/.test(N.LOG);let T=null;function D(l,t,e){let s=l.cursor(G.IncludeAnonymous);for(s.moveTo(t);;)if(!(e<0?s.childBefore(t):s.childAfter(t)))for(;;){if((e<0?s.to<t:s.from>t)&&!s.type.isError)return e<0?Math.max(0,Math.min(s.to-1,t-25)):Math.min(l.length,Math.max(s.from+1,t+25));if(e<0?s.prevSibling():s.nextSibling())break;if(!s.parent())return e<0?0:l.length}}class J{constructor(t,e){this.fragments=t,this.nodeSet=e,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let t=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(t){for(this.safeFrom=t.openStart?D(t.tree,t.from+t.offset,1)-t.offset:t.from,this.safeTo=t.openEnd?D(t.tree,t.to+t.offset,-1)-t.offset:t.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(t.tree),this.start.push(-t.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(t){if(t<this.nextStart)return null;for(;this.fragment&&this.safeTo<=t;)this.nextFragment();if(!this.fragment)return null;for(;;){let e=this.trees.length-1;if(e<0)return this.nextFragment(),null;let s=this.trees[e],i=this.index[e];if(i==s.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let h=s.children[i],r=this.start[e]+s.positions[i];if(r>t)return this.nextStart=r,null;if(h instanceof S){if(r==t){if(r<this.safeFrom)return null;let n=r+h.length;if(n<=this.safeTo){let o=h.prop(y.lookAhead);if(!o||n+o<this.fragment.to)return h}}this.index[e]++,r+h.length>=Math.max(this.safeFrom,t)&&(this.trees.push(h),this.start.push(r),this.index.push(0))}else this.index[e]++,this.nextStart=r+h.length}}}class K{constructor(t,e){this.stream=e,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=t.tokenizers.map(s=>new P)}getActions(t){let e=0,s=null,{parser:i}=t.p,{tokenizers:h}=i,r=i.stateSlot(t.state,3),n=t.curContext?t.curContext.hash:0,o=0;for(let a=0;a<h.length;a++){if((1<<a&r)==0)continue;let u=h[a],f=this.tokens[a];if(!(s&&!u.fallback)&&((u.contextual||f.start!=t.pos||f.mask!=r||f.context!=n)&&(this.updateCachedToken(f,u,t),f.mask=r,f.context=n),f.lookAhead>f.end+25&&(o=Math.max(f.lookAhead,o)),f.value!=0)){let d=e;if(f.extended>-1&&(e=this.addActions(t,f.extended,f.end,e)),e=this.addActions(t,f.value,f.end,e),!u.extend&&(s=f,e>d))break}}for(;this.actions.length>e;)this.actions.pop();return o&&t.setLookAhead(o),!s&&t.pos==this.stream.end&&(s=new P,s.value=t.p.parser.eofTerm,s.start=s.end=t.pos,e=this.addActions(t,s.value,s.end,e)),this.mainToken=s,this.actions}getMainToken(t){if(this.mainToken)return this.mainToken;let e=new P,{pos:s,p:i}=t;return e.start=s,e.end=Math.min(s+1,i.stream.end),e.value=s==i.stream.end?i.parser.eofTerm:0,e}updateCachedToken(t,e,s){let i=this.stream.clipPos(s.pos);if(e.token(this.stream.reset(i,t),s),t.value>-1){let{parser:h}=s.p;for(let r=0;r<h.specialized.length;r++)if(h.specialized[r]==t.value){let n=h.specializers[r](this.stream.read(t.start,t.end),s);if(n>=0&&s.p.parser.dialect.allows(n>>1)){(n&1)==0?t.value=n>>1:t.extended=n>>1;break}}}else t.value=0,t.end=this.stream.clipPos(i+1)}putAction(t,e,s,i){for(let h=0;h<i;h+=3)if(this.actions[h]==t)return i;return this.actions[i++]=t,this.actions[i++]=e,this.actions[i++]=s,i}addActions(t,e,s,i){let{state:h}=t,{parser:r}=t.p,{data:n}=r;for(let o=0;o<2;o++)for(let a=r.stateSlot(h,o?2:1);;a+=3){if(n[a]==65535)if(n[a+1]==1)a=k(n,a+2);else{i==0&&n[a+1]==2&&(i=this.putAction(k(n,a+2),e,s,i));break}n[a]==e&&(i=this.putAction(k(n,a+1),e,s,i))}return i}}class Q{constructor(t,e,s,i){this.parser=t,this.input=e,this.ranges=i,this.recovering=0,this.nextStackID=9812,this.minStackPos=0,this.reused=[],this.stoppedAt=null,this.lastBigReductionStart=-1,this.lastBigReductionSize=0,this.bigReductionCount=0,this.stream=new H(e,i),this.tokens=new K(t,this.stream),this.topTerm=t.top[1];let{from:h}=i[0];this.stacks=[v.start(this,t.top[0],h)],this.fragments=s.length&&this.stream.end-h>t.bufferLength*4?new J(s,t.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let t=this.stacks,e=this.minStackPos,s=this.stacks=[],i,h;if(this.bigReductionCount>300&&t.length==1){let[r]=t;for(;r.forceReduce()&&r.stack.length&&r.stack[r.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let r=0;r<t.length;r++){let n=t[r];for(;;){if(this.tokens.mainToken=null,n.pos>e)s.push(n);else{if(this.advanceStack(n,s,t))continue;{i||(i=[],h=[]),i.push(n);let o=this.tokens.getMainToken(n);h.push(o.value,o.end)}}break}}if(!s.length){let r=i&&X(i);if(r)return g&&console.log("Finish with "+this.stackID(r)),this.stackToTree(r);if(this.parser.strict)throw g&&i&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+e);this.recovering||(this.recovering=5)}if(this.recovering&&i){let r=this.stoppedAt!=null&&i[0].pos>this.stoppedAt?i[0]:this.runRecovery(i,h,s);if(r)return g&&console.log("Force-finish "+this.stackID(r)),this.stackToTree(r.forceAll())}if(this.recovering){let r=this.recovering==1?1:this.recovering*3;if(s.length>r)for(s.sort((n,o)=>o.score-n.score);s.length>r;)s.pop();s.some(n=>n.reducePos>e)&&this.recovering--}else if(s.length>1){t:for(let r=0;r<s.length-1;r++){let n=s[r];for(let o=r+1;o<s.length;o++){let a=s[o];if(n.sameState(a)||n.buffer.length>500&&a.buffer.length>500)if((n.score-a.score||n.buffer.length-a.buffer.length)>0)s.splice(o--,1);else{s.splice(r--,1);continue t}}}s.length>12&&(s.sort((r,n)=>n.score-r.score),s.splice(12,s.length-12))}this.minStackPos=s[0].pos;for(let r=1;r<s.length;r++)s[r].pos<this.minStackPos&&(this.minStackPos=s[r].pos);return null}stopAt(t){if(this.stoppedAt!=null&&this.stoppedAt<t)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=t}advanceStack(t,e,s){let i=t.pos,{parser:h}=this,r=g?this.stackID(t)+" -> ":"";if(this.stoppedAt!=null&&i>this.stoppedAt)return t.forceReduce()?t:null;if(this.fragments){let a=t.curContext&&t.curContext.tracker.strict,u=a?t.curContext.hash:0;for(let f=this.fragments.nodeAt(i);f;){let d=this.parser.nodeSet.types[f.type.id]==f.type?h.getGoto(t.state,f.type.id):-1;if(d>-1&&f.length&&(!a||(f.prop(y.contextHash)||0)==u))return t.useNode(f,d),g&&console.log(r+this.stackID(t)+` (via reuse of ${h.getName(f.type.id)})`),!0;if(!(f instanceof S)||f.children.length==0||f.positions[0]>0)break;let c=f.children[0];if(c instanceof S&&f.positions[0]==0)f=c;else break}}let n=h.stateSlot(t.state,4);if(n>0)return t.reduce(n),g&&console.log(r+this.stackID(t)+` (via always-reduce ${h.getName(n&65535)})`),!0;if(t.stack.length>=8400)for(;t.stack.length>6e3&&t.forceReduce(););let o=this.tokens.getActions(t);for(let a=0;a<o.length;){let u=o[a++],f=o[a++],d=o[a++],c=a==o.length||!s,p=c?t:t.split(),b=this.tokens.mainToken;if(p.apply(u,f,b?b.start:p.pos,d),g&&console.log(r+this.stackID(p)+` (via ${(u&65536)==0?"shift":`reduce of ${h.getName(u&65535)}`} for ${h.getName(f)} @ ${i}${p==t?"":", split"})`),c)return!0;p.pos>i?e.push(p):s.push(p)}return!1}advanceFully(t,e){let s=t.pos;for(;;){if(!this.advanceStack(t,null,null))return!1;if(t.pos>s)return B(t,e),!0}}runRecovery(t,e,s){let i=null,h=!1;for(let r=0;r<t.length;r++){let n=t[r],o=e[r<<1],a=e[(r<<1)+1],u=g?this.stackID(n)+" -> ":"";if(n.deadEnd&&(h||(h=!0,n.restart(),g&&console.log(u+this.stackID(n)+" (restarted)"),this.advanceFully(n,s))))continue;let f=n.split(),d=u;for(let c=0;c<10&&f.forceReduce()&&(g&&console.log(d+this.stackID(f)+" (via force-reduce)"),!this.advanceFully(f,s));c++)g&&(d=this.stackID(f)+" -> ");for(let c of n.recoverByInsert(o))g&&console.log(u+this.stackID(c)+" (via recover-insert)"),this.advanceFully(c,s);this.stream.end>n.pos?(a==n.pos&&(a++,o=0),n.recoverByDelete(o,a),g&&console.log(u+this.stackID(n)+` (via recover-delete ${this.parser.getName(o)})`),B(n,s)):(!i||i.score<f.score)&&(i=f)}return i}stackToTree(t){return t.close(),S.build({buffer:A.create(t),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:t.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm})}stackID(t){let e=(T||(T=new WeakMap)).get(t);return e||T.set(t,e=String.fromCodePoint(this.nextStackID++)),e+t}}function B(l,t){for(let e=0;e<t.length;e++){let s=t[e];if(s.pos==l.pos&&s.sameState(l)){t[e].score<l.score&&(t[e]=l);return}}t.push(l)}class V{constructor(t,e,s){this.source=t,this.flags=e,this.disabled=s}allows(t){return!this.disabled||this.disabled[t]==0}}const C=l=>l;class _{constructor(t){this.start=t.start,this.shift=t.shift||C,this.reduce=t.reduce||C,this.reuse=t.reuse||C,this.hash=t.hash||(()=>0),this.strict=t.strict!==!1}}class w extends L{constructor(t){if(super(),this.wrappers=[],t.version!=14)throw new RangeError(`Parser version (${t.version}) doesn't match runtime version (14)`);let e=t.nodeNames.split(" ");this.minRepeatTerm=e.length;for(let n=0;n<t.repeatNodeCount;n++)e.push("");let s=Object.keys(t.topRules).map(n=>t.topRules[n][1]),i=[];for(let n=0;n<e.length;n++)i.push([]);function h(n,o,a){i[n].push([o,o.deserialize(String(a))])}if(t.nodeProps)for(let n of t.nodeProps){let o=n[0];typeof o=="string"&&(o=y[o]);for(let a=1;a<n.length;){let u=n[a++];if(u>=0)h(u,o,n[a++]);else{let f=n[a+-u];for(let d=-u;d>0;d--)h(n[a++],o,f);a++}}}this.nodeSet=new $(e.map((n,o)=>E.define({name:o>=this.minRepeatTerm?void 0:n,id:o,props:i[o],top:s.indexOf(o)>-1,error:o==0,skipped:t.skippedNodes&&t.skippedNodes.indexOf(o)>-1}))),t.propSources&&(this.nodeSet=this.nodeSet.extend(...t.propSources)),this.strict=!1,this.bufferLength=j;let r=x(t.tokenData);this.context=t.context,this.specializerSpecs=t.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let n=0;n<this.specializerSpecs.length;n++)this.specialized[n]=this.specializerSpecs[n].term;this.specializers=this.specializerSpecs.map(F),this.states=x(t.states,Uint32Array),this.data=x(t.stateData),this.goto=x(t.goto),this.maxTerm=t.maxTerm,this.tokenizers=t.tokenizers.map(n=>typeof n=="number"?new m(r,n):n),this.topRules=t.topRules,this.dialects=t.dialects||{},this.dynamicPrecedences=t.dynamicPrecedences||null,this.tokenPrecTable=t.tokenPrec,this.termNames=t.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(t,e,s){let i=new Q(this,t,e,s);for(let h of this.wrappers)i=h(i,t,e,s);return i}getGoto(t,e,s=!1){let i=this.goto;if(e>=i[0])return-1;for(let h=i[e+1];;){let r=i[h++],n=r&1,o=i[h++];if(n&&s)return o;for(let a=h+(r>>1);h<a;h++)if(i[h]==t)return o;if(n)return-1}}hasAction(t,e){let s=this.data;for(let i=0;i<2;i++)for(let h=this.stateSlot(t,i?2:1),r;;h+=3){if((r=s[h])==65535)if(s[h+1]==1)r=s[h=k(s,h+2)];else{if(s[h+1]==2)return k(s,h+2);break}if(r==e||r==0)return k(s,h+1)}return 0}stateSlot(t,e){return this.states[t*6+e]}stateFlag(t,e){return(this.stateSlot(t,0)&e)>0}validAction(t,e){return!!this.allActions(t,s=>s==e?!0:null)}allActions(t,e){let s=this.stateSlot(t,4),i=s?e(s):void 0;for(let h=this.stateSlot(t,1);i==null;h+=3){if(this.data[h]==65535)if(this.data[h+1]==1)h=k(this.data,h+2);else break;i=e(k(this.data,h+1))}return i}nextStates(t){let e=[];for(let s=this.stateSlot(t,1);;s+=3){if(this.data[s]==65535)if(this.data[s+1]==1)s=k(this.data,s+2);else break;if((this.data[s+2]&1)==0){let i=this.data[s+1];e.some((h,r)=>r&1&&h==i)||e.push(this.data[s],i)}}return e}configure(t){let e=Object.assign(Object.create(w.prototype),this);if(t.props&&(e.nodeSet=this.nodeSet.extend(...t.props)),t.top){let s=this.topRules[t.top];if(!s)throw new RangeError(`Invalid top rule name ${t.top}`);e.top=s}return t.tokenizers&&(e.tokenizers=this.tokenizers.map(s=>{let i=t.tokenizers.find(h=>h.from==s);return i?i.to:s})),t.specializers&&(e.specializers=this.specializers.slice(),e.specializerSpecs=this.specializerSpecs.map((s,i)=>{let h=t.specializers.find(n=>n.from==s.external);if(!h)return s;let r=Object.assign(Object.assign({},s),{external:h.to});return e.specializers[i]=F(r),r})),t.contextTracker&&(e.context=t.contextTracker),t.dialect&&(e.dialect=this.parseDialect(t.dialect)),t.strict!=null&&(e.strict=t.strict),t.wrap&&(e.wrappers=e.wrappers.concat(t.wrap)),t.bufferLength!=null&&(e.bufferLength=t.bufferLength),e}hasWrappers(){return this.wrappers.length>0}getName(t){return this.termNames?this.termNames[t]:String(t<=this.maxNode&&this.nodeSet.types[t].name||t)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(t){let e=this.dynamicPrecedences;return e==null?0:e[t]||0}parseDialect(t){let e=Object.keys(this.dialects),s=e.map(()=>!1);if(t)for(let h of t.split(" ")){let r=e.indexOf(h);r>=0&&(s[r]=!0)}let i=null;for(let h=0;h<e.length;h++)if(!s[h])for(let r=this.dialects[e[h]],n;(n=this.data[r++])!=65535;)(i||(i=new Uint8Array(this.maxTerm+1)))[n]=1;return new V(t,s,i)}static deserialize(t){return new w(t)}}function k(l,t){return l[t]|l[t+1]<<16}function X(l){let t=null;for(let e of l){let s=e.p.stoppedAt;(e.pos==e.p.stream.end||s!=null&&e.pos>s)&&e.p.parser.stateFlag(e.state,2)&&(!t||t.score<e.score)&&(t=e)}return t}function F(l){if(l.external){let t=l.extend?1:0;return(e,s)=>l.external(e,s)<<1|t}return l.get}export{_ as C,Z as E,w as L,W as a};
@@ -0,0 +1,3 @@
1
+ import{countColumn as An,EditorState as yt,Facet as Q,StateEffect as jt,RangeSetBuilder as ne,RangeSet as Fe,StateField as je,Prec as We,combineConfig as He}from"./index-BP6wv2A0.js";import{V as Pt,d as Pn,D as R,E as U,S as Se,b as _t,G as Tn,W as Ue,l as Nn}from"./index-DgapqSPi.js";const In=1024;let Bn=0;class Ut{constructor(t,e){this.from=t,this.to=e}}class y{constructor(t={}){this.id=Bn++,this.perNode=!!t.perNode,this.deserialize=t.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")}),this.combine=t.combine||null}add(t){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof t!="function"&&(t=L.match(t)),e=>{let n=t(e);return n===void 0?null:[this,n]}}}y.closedBy=new y({deserialize:r=>r.split(" ")});y.openedBy=new y({deserialize:r=>r.split(" ")});y.group=new y({deserialize:r=>r.split(" ")});y.isolate=new y({deserialize:r=>{if(r&&r!="rtl"&&r!="ltr"&&r!="auto")throw new RangeError("Invalid value for isolate: "+r);return r||"auto"}});y.contextHash=new y({perNode:!0});y.lookAhead=new y({perNode:!0});y.mounted=new y({perNode:!0});class xt{constructor(t,e,n,i=!1){this.tree=t,this.overlay=e,this.parser=n,this.bracketed=i}static get(t){return t&&t.props&&t.props[y.mounted.id]}}const On=Object.create(null);class L{constructor(t,e,n,i=0){this.name=t,this.props=e,this.id=n,this.flags=i}static define(t){let e=t.props&&t.props.length?Object.create(null):On,n=(t.top?1:0)|(t.skipped?2:0)|(t.error?4:0)|(t.name==null?8:0),i=new L(t.name||"",e,t.id,n);if(t.props){for(let s of t.props)if(Array.isArray(s)||(s=s(i)),s){if(s[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");e[s[0].id]=s[1]}}return i}prop(t){return this.props[t.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(t){if(typeof t=="string"){if(this.name==t)return!0;let e=this.prop(y.group);return e?e.indexOf(t)>-1:!1}return this.id==t}static match(t){let e=Object.create(null);for(let n in t)for(let i of n.split(" "))e[i]=t[n];return n=>{for(let i=n.prop(y.group),s=-1;s<(i?i.length:0);s++){let l=e[s<0?n.name:i[s]];if(l)return l}}}}L.none=new L("",Object.create(null),0,8);class re{constructor(t){this.types=t;for(let e=0;e<t.length;e++)if(t[e].id!=e)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...t){let e=[];for(let n of this.types){let i=null;for(let s of t){let l=s(n);if(l){i||(i=Object.assign({},n.props));let o=l[1],a=l[0];a.combine&&a.id in i&&(o=a.combine(i[a.id],o)),i[a.id]=o}}e.push(i?new L(n.name,i,n.id,n.flags):n)}return new re(e)}}const Bt=new WeakMap,Ce=new WeakMap;var I;(function(r){r[r.ExcludeBuffers=1]="ExcludeBuffers",r[r.IncludeAnonymous=2]="IncludeAnonymous",r[r.IgnoreMounts=4]="IgnoreMounts",r[r.IgnoreOverlays=8]="IgnoreOverlays",r[r.EnterBracketed=16]="EnterBracketed"})(I||(I={}));class C{constructor(t,e,n,i,s){if(this.type=t,this.children=e,this.positions=n,this.length=i,this.props=null,s&&s.length){this.props=Object.create(null);for(let[l,o]of s)this.props[typeof l=="number"?l:l.id]=o}}toString(){let t=xt.get(this);if(t&&!t.overlay)return t.tree.toString();let e="";for(let n of this.children){let i=n.toString();i&&(e&&(e+=","),e+=i)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(e.length?"("+e+")":""):e}cursor(t=0){return new Qt(this.topNode,t)}cursorAt(t,e=0,n=0){let i=Bt.get(this)||this.topNode,s=new Qt(i);return s.moveTo(t,e),Bt.set(this,s._tree),s}get topNode(){return new _(this,0,0,null)}resolve(t,e=0){let n=wt(Bt.get(this)||this.topNode,t,e,!1);return Bt.set(this,n),n}resolveInner(t,e=0){let n=wt(Ce.get(this)||this.topNode,t,e,!0);return Ce.set(this,n),n}resolveStack(t,e=0){return En(this,t,e)}iterate(t){let{enter:e,leave:n,from:i=0,to:s=this.length}=t,l=t.mode||0,o=(l&I.IncludeAnonymous)>0;for(let a=this.cursor(l|I.IncludeAnonymous);;){let h=!1;if(a.from<=s&&a.to>=i&&(!o&&a.type.isAnonymous||e(a)!==!1)){if(a.firstChild())continue;h=!0}for(;h&&n&&(o||!a.type.isAnonymous)&&n(a),!a.nextSibling();){if(!a.parent())return;h=!0}}}prop(t){return t.perNode?this.props?this.props[t.id]:void 0:this.type.prop(t)}get propValues(){let t=[];if(this.props)for(let e in this.props)t.push([+e,this.props[e]]);return t}balance(t={}){return this.children.length<=8?this:le(L.none,this.children,this.positions,0,this.children.length,0,this.length,(e,n,i)=>new C(this.type,e,n,i,this.propValues),t.makeTree||((e,n,i)=>new C(L.none,e,n,i)))}static build(t){return Rn(t)}}C.empty=new C(L.none,[],[],0);class ie{constructor(t,e){this.buffer=t,this.index=e}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new ie(this.buffer,this.index)}}class it{constructor(t,e,n){this.buffer=t,this.length=e,this.set=n}get type(){return L.none}toString(){let t=[];for(let e=0;e<this.buffer.length;)t.push(this.childString(e)),e=this.buffer[e+3];return t.join(",")}childString(t){let e=this.buffer[t],n=this.buffer[t+3],i=this.set.types[e],s=i.name;if(/\W/.test(s)&&!i.isError&&(s=JSON.stringify(s)),t+=4,n==t)return s;let l=[];for(;t<n;)l.push(this.childString(t)),t=this.buffer[t+3];return s+"("+l.join(",")+")"}findChild(t,e,n,i,s){let{buffer:l}=this,o=-1;for(let a=t;a!=e&&!(Ve(s,i,l[a+1],l[a+2])&&(o=a,n>0));a=l[a+3]);return o}slice(t,e,n){let i=this.buffer,s=new Uint16Array(e-t),l=0;for(let o=t,a=0;o<e;){s[a++]=i[o++],s[a++]=i[o++]-n;let h=s[a++]=i[o++]-n;s[a++]=i[o++]-t,l=Math.max(l,h)}return new it(s,l,this.set)}}function Ve(r,t,e,n){switch(r){case-2:return e<t;case-1:return n>=t&&e<t;case 0:return e<t&&n>t;case 1:return e<=t&&n>t;case 2:return n>t;case 4:return!0}}function wt(r,t,e,n){for(var i;r.from==r.to||(e<1?r.from>=t:r.from>t)||(e>-1?r.to<=t:r.to<t);){let l=!n&&r instanceof _&&r.index<0?null:r.parent;if(!l)return r;r=l}let s=n?0:I.IgnoreOverlays;if(n)for(let l=r,o=l.parent;o;l=o,o=l.parent)l instanceof _&&l.index<0&&((i=o.enter(t,e,s))===null||i===void 0?void 0:i.from)!=l.from&&(r=o);for(;;){let l=r.enter(t,e,s);if(!l)return r;r=l}}class $e{cursor(t=0){return new Qt(this,t)}getChild(t,e=null,n=null){let i=Ae(this,t,e,n);return i.length?i[0]:null}getChildren(t,e=null,n=null){return Ae(this,t,e,n)}resolve(t,e=0){return wt(this,t,e,!1)}resolveInner(t,e=0){return wt(this,t,e,!0)}matchContext(t){return Kt(this.parent,t)}enterUnfinishedNodesBefore(t){let e=this.childBefore(t),n=this;for(;e;){let i=e.lastChild;if(!i||i.to!=e.to)break;i.type.isError&&i.from==i.to?(n=e,e=i.prevSibling):e=i}return n}get node(){return this}get next(){return this.parent}}class _ extends $e{constructor(t,e,n,i){super(),this._tree=t,this.from=e,this.index=n,this._parent=i}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(t,e,n,i,s=0){for(let l=this;;){for(let{children:o,positions:a}=l._tree,h=e>0?o.length:-1;t!=h;t+=e){let f=o[t],d=a[t]+l.from,g;if(!(!(s&I.EnterBracketed&&f instanceof C&&(g=xt.get(f))&&!g.overlay&&g.bracketed&&n>=d&&n<=d+f.length)&&!Ve(i,n,d,d+f.length))){if(f instanceof it){if(s&I.ExcludeBuffers)continue;let k=f.findChild(0,f.buffer.length,e,n-d,i);if(k>-1)return new K(new Dn(l,f,t,d),null,k)}else if(s&I.IncludeAnonymous||!f.type.isAnonymous||se(f)){let k;if(!(s&I.IgnoreMounts)&&(k=xt.get(f))&&!k.overlay)return new _(k.tree,d,t,l);let w=new _(f,d,t,l);return s&I.IncludeAnonymous||!w.type.isAnonymous?w:w.nextChild(e<0?f.children.length-1:0,e,n,i,s)}}}if(s&I.IncludeAnonymous||!l.type.isAnonymous||(l.index>=0?t=l.index+e:t=e<0?-1:l._parent._tree.children.length,l=l._parent,!l))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(t){return this.nextChild(0,1,t,2)}childBefore(t){return this.nextChild(this._tree.children.length-1,-1,t,-2)}prop(t){return this._tree.prop(t)}enter(t,e,n=0){let i;if(!(n&I.IgnoreOverlays)&&(i=xt.get(this._tree))&&i.overlay){let s=t-this.from,l=n&I.EnterBracketed&&i.bracketed;for(let{from:o,to:a}of i.overlay)if((e>0||l?o<=s:o<s)&&(e<0||l?a>=s:a>s))return new _(i.tree,i.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,t,e,n)}nextSignificantParent(){let t=this;for(;t.type.isAnonymous&&t._parent;)t=t._parent;return t}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}}function Ae(r,t,e,n){let i=r.cursor(),s=[];if(!i.firstChild())return s;if(e!=null){for(let l=!1;!l;)if(l=i.type.is(e),!i.nextSibling())return s}for(;;){if(n!=null&&i.type.is(n))return s;if(i.type.is(t)&&s.push(i.node),!i.nextSibling())return n==null?s:[]}}function Kt(r,t,e=t.length-1){for(let n=r;e>=0;n=n.parent){if(!n)return!1;if(!n.type.isAnonymous){if(t[e]&&t[e]!=n.name)return!1;e--}}return!0}class Dn{constructor(t,e,n,i){this.parent=t,this.buffer=e,this.index=n,this.start=i}}class K extends $e{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(t,e,n){super(),this.context=t,this._parent=e,this.index=n,this.type=t.buffer.set.types[t.buffer.buffer[n]]}child(t,e,n){let{buffer:i}=this.context,s=i.findChild(this.index+4,i.buffer[this.index+3],t,e-this.context.start,n);return s<0?null:new K(this.context,this,s)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(t){return this.child(1,t,2)}childBefore(t){return this.child(-1,t,-2)}prop(t){return this.type.prop(t)}enter(t,e,n=0){if(n&I.ExcludeBuffers)return null;let{buffer:i}=this.context,s=i.findChild(this.index+4,i.buffer[this.index+3],e>0?1:-1,t-this.context.start,e);return s<0?null:new K(this.context,this,s)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(t){return this._parent?null:this.context.parent.nextChild(this.context.index+t,t,0,4)}get nextSibling(){let{buffer:t}=this.context,e=t.buffer[this.index+3];return e<(this._parent?t.buffer[this._parent.index+3]:t.buffer.length)?new K(this.context,this._parent,e):this.externalSibling(1)}get prevSibling(){let{buffer:t}=this.context,e=this._parent?this._parent.index+4:0;return this.index==e?this.externalSibling(-1):new K(this.context,this._parent,t.findChild(e,this.index,-1,0,4))}get tree(){return null}toTree(){let t=[],e=[],{buffer:n}=this.context,i=this.index+4,s=n.buffer[this.index+3];if(s>i){let l=n.buffer[this.index+1];t.push(n.slice(i,s,l)),e.push(0)}return new C(this.type,t,e,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function qe(r){if(!r.length)return null;let t=0,e=r[0];for(let s=1;s<r.length;s++){let l=r[s];(l.from>e.from||l.to<e.to)&&(e=l,t=s)}let n=e instanceof _&&e.index<0?null:e.parent,i=r.slice();return n?i[t]=n:i.splice(t,1),new Mn(i,e)}class Mn{constructor(t,e){this.heads=t,this.node=e}get next(){return qe(this.heads)}}function En(r,t,e){let n=r.resolveInner(t,e),i=null;for(let s=n instanceof _?n:n.context.parent;s;s=s.parent)if(s.index<0){let l=s.parent;(i||(i=[n])).push(l.resolve(t,e)),s=l}else{let l=xt.get(s.tree);if(l&&l.overlay&&l.overlay[0].from<=t&&l.overlay[l.overlay.length-1].to>=t){let o=new _(l.tree,l.overlay[0].from+s.from,-1,s);(i||(i=[n])).push(wt(o,t,e,!1))}}return i?qe(i):n}class Qt{get name(){return this.type.name}constructor(t,e=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=e&~I.EnterBracketed,t instanceof _)this.yieldNode(t);else{this._tree=t.context.parent,this.buffer=t.context;for(let n=t._parent;n;n=n._parent)this.stack.unshift(n.index);this.bufferNode=t,this.yieldBuf(t.index)}}yieldNode(t){return t?(this._tree=t,this.type=t.type,this.from=t.from,this.to=t.to,!0):!1}yieldBuf(t,e){this.index=t;let{start:n,buffer:i}=this.buffer;return this.type=e||i.set.types[i.buffer[t]],this.from=n+i.buffer[t+1],this.to=n+i.buffer[t+2],!0}yield(t){return t?t instanceof _?(this.buffer=null,this.yieldNode(t)):(this.buffer=t.context,this.yieldBuf(t.index,t.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(t,e,n){if(!this.buffer)return this.yield(this._tree.nextChild(t<0?this._tree._tree.children.length-1:0,t,e,n,this.mode));let{buffer:i}=this.buffer,s=i.findChild(this.index+4,i.buffer[this.index+3],t,e-this.buffer.start,n);return s<0?!1:(this.stack.push(this.index),this.yieldBuf(s))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(t){return this.enterChild(1,t,2)}childBefore(t){return this.enterChild(-1,t,-2)}enter(t,e,n=this.mode){return this.buffer?n&I.ExcludeBuffers?!1:this.enterChild(1,t,e):this.yield(this._tree.enter(t,e,n))}parent(){if(!this.buffer)return this.yieldNode(this.mode&I.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let t=this.mode&I.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(t)}sibling(t){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+t,t,0,4,this.mode)):!1;let{buffer:e}=this.buffer,n=this.stack.length-1;if(t<0){let i=n<0?0:this.stack[n]+4;if(this.index!=i)return this.yieldBuf(e.findChild(i,this.index,-1,0,4))}else{let i=e.buffer[this.index+3];if(i<(n<0?e.buffer.length:e.buffer[this.stack[n]+3]))return this.yieldBuf(i)}return n<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+t,t,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(t){let e,n,{buffer:i}=this;if(i){if(t>0){if(this.index<i.buffer.buffer.length)return!1}else for(let s=0;s<this.index;s++)if(i.buffer.buffer[s+3]<this.index)return!1;({index:e,parent:n}=i)}else({index:e,_parent:n}=this._tree);for(;n;{index:e,_parent:n}=n)if(e>-1)for(let s=e+t,l=t<0?-1:n._tree.children.length;s!=l;s+=t){let o=n._tree.children[s];if(this.mode&I.IncludeAnonymous||o instanceof it||!o.type.isAnonymous||se(o))return!1}return!0}move(t,e){if(e&&this.enterChild(t,0,4))return!0;for(;;){if(this.sibling(t))return!0;if(this.atLastNode(t)||!this.parent())return!1}}next(t=!0){return this.move(1,t)}prev(t=!0){return this.move(-1,t)}moveTo(t,e=0){for(;(this.from==this.to||(e<1?this.from>=t:this.from>t)||(e>-1?this.to<=t:this.to<t))&&this.parent(););for(;this.enterChild(1,t,e););return this}get node(){if(!this.buffer)return this._tree;let t=this.bufferNode,e=null,n=0;if(t&&t.context==this.buffer)t:for(let i=this.index,s=this.stack.length;s>=0;){for(let l=t;l;l=l._parent)if(l.index==i){if(i==this.index)return l;e=l,n=s+1;break t}i=this.stack[--s]}for(let i=n;i<this.stack.length;i++)e=new K(this.buffer,e,this.stack[i]);return this.bufferNode=new K(this.buffer,e,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(t,e){for(let n=0;;){let i=!1;if(this.type.isAnonymous||t(this)!==!1){if(this.firstChild()){n++;continue}this.type.isAnonymous||(i=!0)}for(;;){if(i&&e&&e(this),i=this.type.isAnonymous,!n)return;if(this.nextSibling())break;this.parent(),n--,i=!0}}}matchContext(t){if(!this.buffer)return Kt(this.node.parent,t);let{buffer:e}=this.buffer,{types:n}=e.set;for(let i=t.length-1,s=this.stack.length-1;i>=0;s--){if(s<0)return Kt(this._tree,t,i);let l=n[e.buffer[this.stack[s]]];if(!l.isAnonymous){if(t[i]&&t[i]!=l.name)return!1;i--}}return!0}}function se(r){return r.children.some(t=>t instanceof it||!t.type.isAnonymous||se(t))}function Rn(r){var t;let{buffer:e,nodeSet:n,maxBufferLength:i=In,reused:s=[],minRepeatType:l=n.types.length}=r,o=Array.isArray(e)?new ie(e,e.length):e,a=n.types,h=0,f=0;function d(x,A,p,T,v,N){let{id:b,start:m,end:S,size:P}=o,D=f,tt=h;if(P<0)if(o.next(),P==-1){let X=s[b];p.push(X),T.push(m-x);return}else if(P==-3){h=b;return}else if(P==-4){f=b;return}else throw new RangeError(`Unrecognized record size: ${P}`);let gt=a[b],Nt,st,we=m-x;if(S-m<=i&&(st=j(o.pos-A,v))){let X=new Uint16Array(st.size-st.skip),W=o.pos-st.size,$=X.length;for(;o.pos>W;)$=M(st.start,X,$);Nt=new it(X,S-st.start,n),we=st.start-x}else{let X=o.pos-P;o.next();let W=[],$=[],lt=b>=l?b:-1,ut=0,It=S;for(;o.pos>X;)lt>=0&&o.id==lt&&o.size>=0?(o.end<=It-i&&(w(W,$,m,ut,o.end,It,lt,D,tt),ut=W.length,It=o.end),o.next()):N>2500?g(m,X,W,$):d(m,X,W,$,lt,N+1);if(lt>=0&&ut>0&&ut<W.length&&w(W,$,m,ut,m,It,lt,D,tt),W.reverse(),$.reverse(),lt>-1&&ut>0){let ve=k(gt,tt);Nt=le(gt,W,$,0,W.length,0,S-m,ve,ve)}else Nt=O(gt,W,$,S-m,D-S,tt)}p.push(Nt),T.push(we)}function g(x,A,p,T){let v=[],N=0,b=-1;for(;o.pos>A;){let{id:m,start:S,end:P,size:D}=o;if(D>4)o.next();else{if(b>-1&&S<b)break;b<0&&(b=P-i),v.push(m,S,P),N++,o.next()}}if(N){let m=new Uint16Array(N*4),S=v[v.length-2];for(let P=v.length-3,D=0;P>=0;P-=3)m[D++]=v[P],m[D++]=v[P+1]-S,m[D++]=v[P+2]-S,m[D++]=D;p.push(new it(m,v[2]-S,n)),T.push(S-x)}}function k(x,A){return(p,T,v)=>{let N=0,b=p.length-1,m,S;if(b>=0&&(m=p[b])instanceof C){if(!b&&m.type==x&&m.length==v)return m;(S=m.prop(y.lookAhead))&&(N=T[b]+m.length+S)}return O(x,p,T,v,N,A)}}function w(x,A,p,T,v,N,b,m,S){let P=[],D=[];for(;x.length>T;)P.push(x.pop()),D.push(A.pop()+p-v);x.push(O(n.types[b],P,D,N-v,m-N,S)),A.push(v-p)}function O(x,A,p,T,v,N,b){if(N){let m=[y.contextHash,N];b=b?[m].concat(b):[m]}if(v>25){let m=[y.lookAhead,v];b=b?[m].concat(b):[m]}return new C(x,A,p,T,b)}function j(x,A){let p=o.fork(),T=0,v=0,N=0,b=p.end-i,m={size:0,start:0,skip:0};t:for(let S=p.pos-x;p.pos>S;){let P=p.size;if(p.id==A&&P>=0){m.size=T,m.start=v,m.skip=N,N+=4,T+=4,p.next();continue}let D=p.pos-P;if(P<0||D<S||p.start<b)break;let tt=p.id>=l?4:0,gt=p.start;for(p.next();p.pos>D;){if(p.size<0)if(p.size==-3||p.size==-4)tt+=4;else break t;else p.id>=l&&(tt+=4);p.next()}v=gt,T+=P,N+=tt}return(A<0||T==x)&&(m.size=T,m.start=v,m.skip=N),m.size>4?m:void 0}function M(x,A,p){let{id:T,start:v,end:N,size:b}=o;if(o.next(),b>=0&&T<l){let m=p;if(b>4){let S=o.pos-(b-4);for(;o.pos>S;)p=M(x,A,p)}A[--p]=m,A[--p]=N-x,A[--p]=v-x,A[--p]=T}else b==-3?h=T:b==-4&&(f=T);return p}let F=[],B=[];for(;o.pos>0;)d(r.start||0,r.bufferStart||0,F,B,-1,0);let V=(t=r.length)!==null&&t!==void 0?t:F.length?B[0]+F[0].length:0;return new C(a[r.topID],F.reverse(),B.reverse(),V)}const Pe=new WeakMap;function Et(r,t){if(!r.isAnonymous||t instanceof it||t.type!=r)return 1;let e=Pe.get(t);if(e==null){e=1;for(let n of t.children){if(n.type!=r||!(n instanceof C)){e=1;break}e+=Et(r,n)}Pe.set(t,e)}return e}function le(r,t,e,n,i,s,l,o,a){let h=0;for(let w=n;w<i;w++)h+=Et(r,t[w]);let f=Math.ceil(h*1.5/8),d=[],g=[];function k(w,O,j,M,F){for(let B=j;B<M;){let V=B,x=O[B],A=Et(r,w[B]);for(B++;B<M;B++){let p=Et(r,w[B]);if(A+p>=f)break;A+=p}if(B==V+1){if(A>f){let p=w[V];k(p.children,p.positions,0,p.children.length,O[V]+F);continue}d.push(w[V])}else{let p=O[B-1]+w[B-1].length-x;d.push(le(r,w,O,V,B,x,p,null,a))}g.push(x+F-s)}}return k(t,e,n,i,0),(o||a)(d,g,l)}class Kr{constructor(){this.map=new WeakMap}setBuffer(t,e,n){let i=this.map.get(t);i||this.map.set(t,i=new Map),i.set(e,n)}getBuffer(t,e){let n=this.map.get(t);return n&&n.get(e)}set(t,e){t instanceof K?this.setBuffer(t.context.buffer,t.index,e):t instanceof _&&this.map.set(t.tree,e)}get(t){return t instanceof K?this.getBuffer(t.context.buffer,t.index):t instanceof _?this.map.get(t.tree):void 0}cursorSet(t,e){t.buffer?this.setBuffer(t.buffer.buffer,t.index,e):this.map.set(t.tree,e)}cursorGet(t){return t.buffer?this.getBuffer(t.buffer.buffer,t.index):this.map.get(t.tree)}}class at{constructor(t,e,n,i,s=!1,l=!1){this.from=t,this.to=e,this.tree=n,this.offset=i,this.open=(s?1:0)|(l?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(t,e=[],n=!1){let i=[new at(0,t.length,t,0,!1,n)];for(let s of e)s.to>t.length&&i.push(s);return i}static applyChanges(t,e,n=128){if(!e.length)return t;let i=[],s=1,l=t.length?t[0]:null;for(let o=0,a=0,h=0;;o++){let f=o<e.length?e[o]:null,d=f?f.fromA:1e9;if(d-a>=n)for(;l&&l.from<d;){let g=l;if(a>=g.from||d<=g.to||h){let k=Math.max(g.from,a)-h,w=Math.min(g.to,d)-h;g=k>=w?null:new at(k,w,g.tree,g.offset+h,o>0,!!f)}if(g&&i.push(g),l.to>d)break;l=s<t.length?t[s++]:null}if(!f)break;a=f.toA,h=f.toA-f.toB}return i}}class Ge{startParse(t,e,n){return typeof t=="string"&&(t=new _n(t)),n=n?n.length?n.map(i=>new Ut(i.from,i.to)):[new Ut(0,0)]:[new Ut(0,t.length)],this.createParse(t,e||[],n)}parse(t,e,n){let i=this.startParse(t,e,n);for(;;){let s=i.advance();if(s)return s}}}class _n{constructor(t){this.string=t}get length(){return this.string.length}chunk(t){return this.string.slice(t)}get lineChunks(){return!1}read(t,e){return this.string.slice(t,e)}}new y({perNode:!0});let Ln=0;class H{constructor(t,e,n,i){this.name=t,this.set=e,this.base=n,this.modified=i,this.id=Ln++}toString(){let{name:t}=this;for(let e of this.modified)e.name&&(t=`${e.name}(${t})`);return t}static define(t,e){let n=typeof t=="string"?t:"?";if(t instanceof H&&(e=t),e?.base)throw new Error("Can not derive from a modified tag");let i=new H(n,[],null,[]);if(i.set.push(i),e)for(let s of e.set)i.set.push(s);return i}static defineModifier(t){let e=new Lt(t);return n=>n.modified.indexOf(e)>-1?n:Lt.get(n.base||n,n.modified.concat(e).sort((i,s)=>i.id-s.id))}}let zn=0;class Lt{constructor(t){this.name=t,this.instances=[],this.id=zn++}static get(t,e){if(!e.length)return t;let n=e[0].instances.find(o=>o.base==t&&Fn(e,o.modified));if(n)return n;let i=[],s=new H(t.name,i,t,e);for(let o of e)o.instances.push(s);let l=jn(e);for(let o of t.set)if(!o.modified.length)for(let a of l)i.push(Lt.get(o,a));return s}}function Fn(r,t){return r.length==t.length&&r.every((e,n)=>e==t[n])}function jn(r){let t=[[]];for(let e=0;e<r.length;e++)for(let n=0,i=t.length;n<i;n++)t.push(t[n].concat(r[e]));return t.sort((e,n)=>n.length-e.length)}function Wn(r){let t=Object.create(null);for(let e in r){let n=r[e];Array.isArray(n)||(n=[n]);for(let i of e.split(" "))if(i){let s=[],l=2,o=i;for(let d=0;;){if(o=="..."&&d>0&&d+3==i.length){l=1;break}let g=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(o);if(!g)throw new RangeError("Invalid path: "+i);if(s.push(g[0]=="*"?"":g[0][0]=='"'?JSON.parse(g[0]):g[0]),d+=g[0].length,d==i.length)break;let k=i[d++];if(d==i.length&&k=="!"){l=0;break}if(k!="/")throw new RangeError("Invalid path: "+i);o=i.slice(d)}let a=s.length-1,h=s[a];if(!h)throw new RangeError("Invalid path: "+i);let f=new vt(n,l,a>0?s.slice(0,a):null);t[h]=f.sort(t[h])}}return Je.add(t)}const Je=new y({combine(r,t){let e,n,i;for(;r||t;){if(!r||t&&r.depth>=t.depth?(i=t,t=t.next):(i=r,r=r.next),e&&e.mode==i.mode&&!i.context&&!e.context)continue;let s=new vt(i.tags,i.mode,i.context);e?e.next=s:n=s,e=s}return n}});class vt{constructor(t,e,n,i){this.tags=t,this.mode=e,this.context=n,this.next=i}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(t){return!t||t.depth<this.depth?(this.next=t,this):(t.next=this.sort(t.next),t)}get depth(){return this.context?this.context.length:0}}vt.empty=new vt([],2,null);function Ke(r,t){let e=Object.create(null);for(let s of r)if(!Array.isArray(s.tag))e[s.tag.id]=s.class;else for(let l of s.tag)e[l.id]=s.class;let{scope:n,all:i=null}=t||{};return{style:s=>{let l=i;for(let o of s)for(let a of o.set){let h=e[a.id];if(h){l=l?l+" "+h:h;break}}return l},scope:n}}function Hn(r,t){let e=null;for(let n of r){let i=n.style(t);i&&(e=e?e+" "+i:i)}return e}function Un(r,t,e,n=0,i=r.length){let s=new Vn(n,Array.isArray(t)?t:[t],e);s.highlightRange(r.cursor(),n,i,"",s.highlighters),s.flush(i)}class Vn{constructor(t,e,n){this.at=t,this.highlighters=e,this.span=n,this.class=""}startSpan(t,e){e!=this.class&&(this.flush(t),t>this.at&&(this.at=t),this.class=e)}flush(t){t>this.at&&this.class&&this.span(this.at,t,this.class)}highlightRange(t,e,n,i,s){let{type:l,from:o,to:a}=t;if(o>=n||a<=e)return;l.isTop&&(s=this.highlighters.filter(k=>!k.scope||k.scope(l)));let h=i,f=$n(t)||vt.empty,d=Hn(s,f.tags);if(d&&(h&&(h+=" "),h+=d,f.mode==1&&(i+=(i?" ":"")+d)),this.startSpan(Math.max(e,o),h),f.opaque)return;let g=t.tree&&t.tree.prop(y.mounted);if(g&&g.overlay){let k=t.node.enter(g.overlay[0].from+o,1),w=this.highlighters.filter(j=>!j.scope||j.scope(g.tree.type)),O=t.firstChild();for(let j=0,M=o;;j++){let F=j<g.overlay.length?g.overlay[j]:null,B=F?F.from+o:a,V=Math.max(e,M),x=Math.min(n,B);if(V<x&&O)for(;t.from<x&&(this.highlightRange(t,V,x,i,s),this.startSpan(Math.min(x,t.to),h),!(t.to>=B||!t.nextSibling())););if(!F||B>n)break;M=F.to+o,M>e&&(this.highlightRange(k.cursor(),Math.max(e,F.from+o),Math.min(n,M),"",w),this.startSpan(Math.min(n,M),h))}O&&t.parent()}else if(t.firstChild()){g&&(i="");do if(!(t.to<=e)){if(t.from>=n)break;this.highlightRange(t,e,n,i,s),this.startSpan(Math.min(n,t.to),h)}while(t.nextSibling());t.parent()}}}function $n(r){let t=r.type.prop(Je);for(;t&&t.context&&!r.matchContext(t.context);)t=t.next;return t||null}const u=H.define,Ot=u(),et=u(),Te=u(et),Ne=u(et),nt=u(),Dt=u(nt),Vt=u(nt),J=u(),ot=u(J),q=u(),G=u(),Xt=u(),mt=u(Xt),Mt=u(),c={comment:Ot,lineComment:u(Ot),blockComment:u(Ot),docComment:u(Ot),name:et,variableName:u(et),typeName:Te,tagName:u(Te),propertyName:Ne,attributeName:u(Ne),className:u(et),labelName:u(et),namespace:u(et),macroName:u(et),literal:nt,string:Dt,docString:u(Dt),character:u(Dt),attributeValue:u(Dt),number:Vt,integer:u(Vt),float:u(Vt),bool:u(nt),regexp:u(nt),escape:u(nt),color:u(nt),url:u(nt),keyword:q,self:u(q),null:u(q),atom:u(q),unit:u(q),modifier:u(q),operatorKeyword:u(q),controlKeyword:u(q),definitionKeyword:u(q),moduleKeyword:u(q),operator:G,derefOperator:u(G),arithmeticOperator:u(G),logicOperator:u(G),bitwiseOperator:u(G),compareOperator:u(G),updateOperator:u(G),definitionOperator:u(G),typeOperator:u(G),controlOperator:u(G),punctuation:Xt,separator:u(Xt),bracket:mt,angleBracket:u(mt),squareBracket:u(mt),paren:u(mt),brace:u(mt),content:J,heading:ot,heading1:u(ot),heading2:u(ot),heading3:u(ot),heading4:u(ot),heading5:u(ot),heading6:u(ot),contentSeparator:u(J),list:u(J),quote:u(J),emphasis:u(J),strong:u(J),link:u(J),monospace:u(J),strikethrough:u(J),inserted:u(),deleted:u(),changed:u(),invalid:u(),meta:Mt,documentMeta:u(Mt),annotation:u(Mt),processingInstruction:u(Mt),definition:H.defineModifier("definition"),constant:H.defineModifier("constant"),function:H.defineModifier("function"),standard:H.defineModifier("standard"),local:H.defineModifier("local"),special:H.defineModifier("special")};for(let r in c){let t=c[r];t instanceof H&&(t.name=r)}Ke([{tag:c.link,class:"tok-link"},{tag:c.heading,class:"tok-heading"},{tag:c.emphasis,class:"tok-emphasis"},{tag:c.strong,class:"tok-strong"},{tag:c.keyword,class:"tok-keyword"},{tag:c.atom,class:"tok-atom"},{tag:c.bool,class:"tok-bool"},{tag:c.url,class:"tok-url"},{tag:c.labelName,class:"tok-labelName"},{tag:c.inserted,class:"tok-inserted"},{tag:c.deleted,class:"tok-deleted"},{tag:c.literal,class:"tok-literal"},{tag:c.string,class:"tok-string"},{tag:c.number,class:"tok-number"},{tag:[c.regexp,c.escape,c.special(c.string)],class:"tok-string2"},{tag:c.variableName,class:"tok-variableName"},{tag:c.local(c.variableName),class:"tok-variableName tok-local"},{tag:c.definition(c.variableName),class:"tok-variableName tok-definition"},{tag:c.special(c.variableName),class:"tok-variableName2"},{tag:c.definition(c.propertyName),class:"tok-propertyName tok-definition"},{tag:c.typeName,class:"tok-typeName"},{tag:c.namespace,class:"tok-namespace"},{tag:c.className,class:"tok-className"},{tag:c.macroName,class:"tok-macroName"},{tag:c.propertyName,class:"tok-propertyName"},{tag:c.operator,class:"tok-operator"},{tag:c.comment,class:"tok-comment"},{tag:c.meta,class:"tok-meta"},{tag:c.invalid,class:"tok-invalid"},{tag:c.punctuation,class:"tok-punctuation"}]);var $t;const rt=new y;function oe(r){return Q.define({combine:r?t=>t.concat(r):void 0})}const Qe=new y;class E{constructor(t,e,n=[],i=""){this.data=t,this.name=i,yt.prototype.hasOwnProperty("tree")||Object.defineProperty(yt.prototype,"tree",{get(){return z(this)}}),this.parser=e,this.extension=[Y.of(this),yt.languageData.of((s,l,o)=>{let a=Ie(s,l,o),h=a.type.prop(rt);if(!h)return[];let f=s.facet(h),d=a.type.prop(Qe);if(d){let g=a.resolve(l-a.from,o);for(let k of d)if(k.test(g,s)){let w=s.facet(k.facet);return k.type=="replace"?w:w.concat(f)}}return f})].concat(n)}isActiveAt(t,e,n=-1){return Ie(t,e,n).type.prop(rt)==this.data}findRegions(t){let e=t.facet(Y);if(e?.data==this.data)return[{from:0,to:t.doc.length}];if(!e||!e.allowsNesting)return[];let n=[],i=(s,l)=>{if(s.prop(rt)==this.data){n.push({from:l,to:l+s.length});return}let o=s.prop(y.mounted);if(o){if(o.tree.prop(rt)==this.data){if(o.overlay)for(let a of o.overlay)n.push({from:a.from+l,to:a.to+l});else n.push({from:l,to:l+s.length});return}else if(o.overlay){let a=n.length;if(i(o.tree,o.overlay[0].from+l),n.length>a)return}}for(let a=0;a<s.children.length;a++){let h=s.children[a];h instanceof C&&i(h,s.positions[a]+l)}};return i(z(t),0),n}get allowsNesting(){return!0}}E.setState=jt.define();function Ie(r,t,e){let n=r.facet(Y),i=z(r).topNode;if(!n||n.allowsNesting)for(let s=i;s;s=s.enter(t,e,I.ExcludeBuffers|I.EnterBracketed))s.type.isTop&&(i=s);return i}class zt extends E{constructor(t,e,n){super(t,e,[],n),this.parser=e}static define(t){let e=oe(t.languageData);return new zt(e,t.parser.configure({props:[rt.add(n=>n.isTop?e:void 0)]}),t.name)}configure(t,e){return new zt(this.data,this.parser.configure(t),e||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function z(r){let t=r.field(E.state,!1);return t?t.tree:C.empty}function Xe(r,t,e=50){var n;let i=(n=r.field(E.state,!1))===null||n===void 0?void 0:n.context;if(!i)return null;let s=i.viewport;i.updateViewport({from:0,to:t});let l=i.isDone(t)||i.work(e,t)?i.tree:null;return i.updateViewport(s),l}function qn(r,t=r.doc.length){var e;return((e=r.field(E.state,!1))===null||e===void 0?void 0:e.context.isDone(t))||!1}function Gn(r,t=r.viewport.to,e=100){let n=Xe(r.state,t,e);return n!=z(r.state)&&r.dispatch({}),!!n}function Jn(r){var t;return((t=r.plugin(tn))===null||t===void 0?void 0:t.isWorking())||!1}class Ye{constructor(t){this.doc=t,this.cursorPos=0,this.string="",this.cursor=t.iter()}get length(){return this.doc.length}syncTo(t){return this.string=this.cursor.next(t-this.cursorPos).value,this.cursorPos=t+this.string.length,this.cursorPos-this.string.length}chunk(t){return this.syncTo(t),this.string}get lineChunks(){return!0}read(t,e){let n=this.cursorPos-this.string.length;return t<n||e>=this.cursorPos?this.doc.sliceString(t,e):this.string.slice(t-n,e-n)}}let kt=null;class ht{constructor(t,e,n=[],i,s,l,o,a){this.parser=t,this.state=e,this.fragments=n,this.tree=i,this.treeLen=s,this.viewport=l,this.skipped=o,this.scheduleOn=a,this.parse=null,this.tempSkipped=[]}static create(t,e,n){return new ht(t,e,[],C.empty,0,n,[],null)}startParse(){return this.parser.startParse(new Ye(this.state.doc),this.fragments)}work(t,e){return e!=null&&e>=this.state.doc.length&&(e=void 0),this.tree!=C.empty&&this.isDone(e??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var n;if(typeof t=="number"){let i=Date.now()+t;t=()=>Date.now()>i}for(this.parse||(this.parse=this.startParse()),e!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&e<this.state.doc.length&&this.parse.stopAt(e);;){let i=this.parse.advance();if(i)if(this.fragments=this.withoutTempSkipped(at.addTree(i,this.fragments,this.parse.stoppedAt!=null)),this.treeLen=(n=this.parse.stoppedAt)!==null&&n!==void 0?n:this.state.doc.length,this.tree=i,this.parse=null,this.treeLen<(e??this.state.doc.length))this.parse=this.startParse();else return!0;if(t())return!1}})}takeTree(){let t,e;this.parse&&(t=this.parse.parsedPos)>=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>t)&&this.parse.stopAt(t),this.withContext(()=>{for(;!(e=this.parse.advance()););}),this.treeLen=t,this.tree=e,this.fragments=this.withoutTempSkipped(at.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(t){let e=kt;kt=this;try{return t()}finally{kt=e}}withoutTempSkipped(t){for(let e;e=this.tempSkipped.pop();)t=Be(t,e.from,e.to);return t}changes(t,e){let{fragments:n,tree:i,treeLen:s,viewport:l,skipped:o}=this;if(this.takeTree(),!t.empty){let a=[];if(t.iterChangedRanges((h,f,d,g)=>a.push({fromA:h,toA:f,fromB:d,toB:g})),n=at.applyChanges(n,a),i=C.empty,s=0,l={from:t.mapPos(l.from,-1),to:t.mapPos(l.to,1)},this.skipped.length){o=[];for(let h of this.skipped){let f=t.mapPos(h.from,1),d=t.mapPos(h.to,-1);f<d&&o.push({from:f,to:d})}}}return new ht(this.parser,e,n,i,s,l,o,this.scheduleOn)}updateViewport(t){if(this.viewport.from==t.from&&this.viewport.to==t.to)return!1;this.viewport=t;let e=this.skipped.length;for(let n=0;n<this.skipped.length;n++){let{from:i,to:s}=this.skipped[n];i<t.to&&s>t.from&&(this.fragments=Be(this.fragments,i,s),this.skipped.splice(n--,1))}return this.skipped.length>=e?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(t,e){this.skipped.push({from:t,to:e})}static getSkippingParser(t){return new class extends Ge{createParse(e,n,i){let s=i[0].from,l=i[i.length-1].to;return{parsedPos:s,advance(){let a=kt;if(a){for(let h of i)a.tempSkipped.push(h);t&&(a.scheduleOn=a.scheduleOn?Promise.all([a.scheduleOn,t]):t)}return this.parsedPos=l,new C(L.none,[],[],l-s)},stoppedAt:null,stopAt(){}}}}}isDone(t){t=Math.min(t,this.state.doc.length);let e=this.fragments;return this.treeLen>=t&&e.length&&e[0].from==0&&e[0].to>=t}static get(){return kt}}function Be(r,t,e){return at.applyChanges(r,[{fromA:t,toA:e,fromB:t,toB:e}])}class ct{constructor(t){this.context=t,this.tree=t.tree}apply(t){if(!t.docChanged&&this.tree==this.context.tree)return this;let e=this.context.changes(t.changes,t.state),n=this.context.treeLen==t.startState.doc.length?void 0:Math.max(t.changes.mapPos(this.context.treeLen),e.viewport.to);return e.work(20,n)||e.takeTree(),new ct(e)}static init(t){let e=Math.min(3e3,t.doc.length),n=ht.create(t.facet(Y).parser,t,{from:0,to:e});return n.work(20,e)||n.takeTree(),new ct(n)}}E.state=je.define({create:ct.init,update(r,t){for(let e of t.effects)if(e.is(E.setState))return e.value;return t.startState.facet(Y)!=t.state.facet(Y)?ct.init(t.state):r.apply(t)}});let Ze=r=>{let t=setTimeout(()=>r(),500);return()=>clearTimeout(t)};typeof requestIdleCallback<"u"&&(Ze=r=>{let t=-1,e=setTimeout(()=>{t=requestIdleCallback(r,{timeout:400})},100);return()=>t<0?clearTimeout(e):cancelIdleCallback(t)});const qt=typeof navigator<"u"&&(!(($t=navigator.scheduling)===null||$t===void 0)&&$t.isInputPending)?()=>navigator.scheduling.isInputPending():null,tn=Pt.fromClass(class{constructor(t){this.view=t,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(t){let e=this.view.state.field(E.state).context;(e.updateViewport(t.view.viewport)||this.view.viewport.to>e.treeLen)&&this.scheduleWork(),(t.docChanged||t.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(e)}scheduleWork(){if(this.working)return;let{state:t}=this.view,e=t.field(E.state);(e.tree!=e.context.tree||!e.context.isDone(t.doc.length))&&(this.working=Ze(this.work))}work(t){this.working=null;let e=Date.now();if(this.chunkEnd<e&&(this.chunkEnd<0||this.view.hasFocus)&&(this.chunkEnd=e+3e4,this.chunkBudget=3e3),this.chunkBudget<=0)return;let{state:n,viewport:{to:i}}=this.view,s=n.field(E.state);if(s.tree==s.context.tree&&s.context.isDone(i+1e5))return;let l=Date.now()+Math.min(this.chunkBudget,100,t&&!qt?Math.max(25,t.timeRemaining()-5):1e9),o=s.context.treeLen<i&&n.doc.length>i+1e3,a=s.context.work(()=>qt&&qt()||Date.now()>l,i+(o?0:1e5));this.chunkBudget-=Date.now()-e,(a||this.chunkBudget<=0)&&(s.context.takeTree(),this.view.dispatch({effects:E.setState.of(new ct(s.context))})),this.chunkBudget>0&&!(a&&!o)&&this.scheduleWork(),this.checkAsyncSchedule(s.context)}checkAsyncSchedule(t){t.scheduleOn&&(this.workScheduled++,t.scheduleOn.then(()=>this.scheduleWork()).catch(e=>Nn(this.view.state,e)).then(()=>this.workScheduled--),t.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),Y=Q.define({combine(r){return r.length?r[0]:null},enables:r=>[E.state,tn,U.contentAttributes.compute([r],t=>{let e=t.facet(r);return e&&e.name?{"data-language":e.name}:{}})]});class Kn{constructor(t,e=[]){this.language=t,this.support=e,this.extension=[t,e]}}class ae{constructor(t,e,n,i,s,l=void 0){this.name=t,this.alias=e,this.extensions=n,this.filename=i,this.loadFunc=s,this.support=l,this.loading=null}load(){return this.loading||(this.loading=this.loadFunc().then(t=>this.support=t,t=>{throw this.loading=null,t}))}static of(t){let{load:e,support:n}=t;if(!e){if(!n)throw new RangeError("Must pass either 'load' or 'support' to LanguageDescription.of");e=()=>Promise.resolve(n)}return new ae(t.name,(t.alias||[]).concat(t.name).map(i=>i.toLowerCase()),t.extensions||[],t.filename,e,n)}static matchFilename(t,e){for(let i of t)if(i.filename&&i.filename.test(e))return i;let n=/\.([^.]+)$/.exec(e);if(n){for(let i of t)if(i.extensions.indexOf(n[1])>-1)return i}return null}static matchLanguageName(t,e,n=!0){e=e.toLowerCase();for(let i of t)if(i.alias.some(s=>s==e))return i;if(n)for(let i of t)for(let s of i.alias){let l=e.indexOf(s);if(l>-1&&(s.length>2||!/\w/.test(e[l-1])&&!/\w/.test(e[l+s.length])))return i}return null}}const en=Q.define(),he=Q.define({combine:r=>{if(!r.length)return" ";let t=r[0];if(!t||/\S/.test(t)||Array.from(t).some(e=>e!=t[0]))throw new Error("Invalid indent unit: "+JSON.stringify(r[0]));return t}});function St(r){let t=r.facet(he);return t.charCodeAt(0)==9?r.tabSize*t.length:t.length}function fe(r,t){let e="",n=r.tabSize,i=r.facet(he)[0];if(i==" "){for(;t>=n;)e+=" ",t-=n;i=" "}for(let s=0;s<t;s++)e+=i;return e}function ue(r,t){r instanceof yt&&(r=new Wt(r));for(let n of r.state.facet(en)){let i=n(r,t);if(i!==void 0)return i}let e=z(r.state);return e.length>=t?Xn(r,e,t):null}function Qn(r,t,e){let n=Object.create(null),i=new Wt(r,{overrideIndentation:l=>{var o;return(o=n[l])!==null&&o!==void 0?o:-1}}),s=[];for(let l=t;l<=e;){let o=r.doc.lineAt(l);l=o.to+1;let a=ue(i,o.from);if(a==null)continue;/\S/.test(o.text)||(a=0);let h=/^\s*/.exec(o.text)[0],f=fe(r,a);h!=f&&(n[o.from]=a,s.push({from:o.from,to:o.from+h.length,insert:f}))}return r.changes(s)}class Wt{constructor(t,e={}){this.state=t,this.options=e,this.unit=St(t)}lineAt(t,e=1){let n=this.state.doc.lineAt(t),{simulateBreak:i,simulateDoubleBreak:s}=this.options;return i!=null&&i>=n.from&&i<=n.to?s&&i==t?{text:"",from:t}:(e<0?i<t:i<=t)?{text:n.text.slice(i-n.from),from:i}:{text:n.text.slice(0,i-n.from),from:n.from}:n}textAfterPos(t,e=1){if(this.options.simulateDoubleBreak&&t==this.options.simulateBreak)return"";let{text:n,from:i}=this.lineAt(t,e);return n.slice(t-i,Math.min(n.length,t+100-i))}column(t,e=1){let{text:n,from:i}=this.lineAt(t,e),s=this.countColumn(n,t-i),l=this.options.overrideIndentation?this.options.overrideIndentation(i):-1;return l>-1&&(s+=l-this.countColumn(n,n.search(/\S|$/))),s}countColumn(t,e=t.length){return An(t,this.state.tabSize,e)}lineIndent(t,e=1){let{text:n,from:i}=this.lineAt(t,e),s=this.options.overrideIndentation;if(s){let l=s(i);if(l>-1)return l}return this.countColumn(n,n.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const ce=new y;function Xn(r,t,e){let n=t.resolveStack(e),i=t.resolveInner(e,-1).resolve(e,0).enterUnfinishedNodesBefore(e);if(i!=n.node){let s=[];for(let l=i;l&&!(l.from<n.node.from||l.to>n.node.to||l.from==n.node.from&&l.type==n.node.type);l=l.parent)s.push(l);for(let l=s.length-1;l>=0;l--)n={node:s[l],next:n}}return nn(n,r,e)}function nn(r,t,e){for(let n=r;n;n=n.next){let i=Zn(n.node);if(i)return i(Ht.create(t,e,n))}return 0}function Yn(r){return r.pos==r.options.simulateBreak&&r.options.simulateDoubleBreak}function Zn(r){let t=r.type.prop(ce);if(t)return t;let e=r.firstChild,n;if(e&&(n=e.type.prop(y.closedBy))){let i=r.lastChild,s=i&&n.indexOf(i.name)>-1;return l=>rn(l,!0,1,void 0,s&&!Yn(l)?i.from:void 0)}return r.parent==null?tr:null}function tr(){return 0}class Ht extends Wt{constructor(t,e,n){super(t.state,t.options),this.base=t,this.pos=e,this.context=n}get node(){return this.context.node}static create(t,e,n){return new Ht(t,e,n)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(t){let e=this.state.doc.lineAt(t.from);for(;;){let n=t.resolve(e.from);for(;n.parent&&n.parent.from==n.from;)n=n.parent;if(er(n,t))break;e=this.state.doc.lineAt(n.from)}return this.lineIndent(e.from)}continue(){return nn(this.context.next,this.base,this.pos)}}function er(r,t){for(let e=t;e;e=e.parent)if(r==e)return!0;return!1}function nr(r){let t=r.node,e=t.childAfter(t.from),n=t.lastChild;if(!e)return null;let i=r.options.simulateBreak,s=r.state.doc.lineAt(e.from),l=i==null||i<=s.from?s.to:Math.min(s.to,i);for(let o=e.to;;){let a=t.childAfter(o);if(!a||a==n)return null;if(!a.type.isSkipped){if(a.from>=l)return null;let h=/^ */.exec(s.text.slice(e.to-s.from))[0].length;return{from:e.from,to:e.to+h}}o=a.to}}function rr({closing:r,align:t=!0,units:e=1}){return n=>rn(n,t,e,r)}function rn(r,t,e,n,i){let s=r.textAfter,l=s.match(/^\s*/)[0].length,o=n&&s.slice(l,l+n.length)==n||i==r.pos+l,a=t?nr(r):null;return a?o?r.column(a.from):r.column(a.to):r.baseIndent+(o?0:r.unit*e)}const ir=r=>r.baseIndent;function sr({except:r,units:t=1}={}){return e=>{let n=r&&r.test(e.textAfter);return e.baseIndent+(n?0:t*e.unit)}}const lr=200;function or(){return yt.transactionFilter.of(r=>{if(!r.docChanged||!r.isUserEvent("input.type")&&!r.isUserEvent("input.complete"))return r;let t=r.startState.languageDataAt("indentOnInput",r.startState.selection.main.head);if(!t.length)return r;let e=r.newDoc,{head:n}=r.newSelection.main,i=e.lineAt(n);if(n>i.from+lr)return r;let s=e.sliceString(i.from,n);if(!t.some(h=>h.test(s)))return r;let{state:l}=r,o=-1,a=[];for(let{head:h}of l.selection.ranges){let f=l.doc.lineAt(h);if(f.from==o)continue;o=f.from;let d=ue(l,f.from);if(d==null)continue;let g=/^\s*/.exec(f.text)[0],k=fe(l,d);g!=k&&a.push({from:f.from,to:f.from+g.length,insert:k})}return a.length?[r,{changes:a,sequential:!0}]:r})}const sn=Q.define(),ln=new y;function ar(r){let t=r.firstChild,e=r.lastChild;return t&&t.to<e.from?{from:t.to,to:e.type.isError?r.to:e.from}:null}function hr(r,t,e){let n=z(r);if(n.length<e)return null;let i=n.resolveStack(e,1),s=null;for(let l=i;l;l=l.next){let o=l.node;if(o.to<=e||o.from>e)continue;if(s&&o.from<t)break;let a=o.type.prop(ln);if(a&&(o.to<n.length-50||n.length==r.doc.length||!fr(o))){let h=a(o,r);h&&h.from<=e&&h.from>=t&&h.to>e&&(s=h)}}return s}function fr(r){let t=r.lastChild;return t&&t.to==r.to&&t.type.isError}function dt(r,t,e){for(let n of r.facet(sn)){let i=n(r,t,e);if(i)return i}return hr(r,t,e)}function on(r,t){let e=t.mapPos(r.from,1),n=t.mapPos(r.to,-1);return e>=n?void 0:{from:e,to:n}}const pt=jt.define({map:on}),ft=jt.define({map:on});function de(r){let t=[];for(let{head:e}of r.state.selection.ranges)t.some(n=>n.from<=e&&n.to>=e)||t.push(r.lineBlockAt(e));return t}const Z=je.define({create(){return R.none},update(r,t){t.isUserEvent("delete")&&t.changes.iterChangedRanges((n,i)=>r=Oe(r,n,i)),r=r.map(t.changes);let e=[];for(let n of t.effects)n.is(pt)&&!cr(r,n.value.from,n.value.to)?e.push(n.value):n.is(ft)&&(r=r.update({filter:(i,s)=>n.value.from!=i||n.value.to!=s,filterFrom:n.value.from,filterTo:n.value.to}));if(e.length){let{preparePlaceholder:n}=t.state.facet(ge),i=e.map(s=>(n?R.replace({widget:new kr(n(t.state,s))}):De).range(s.from,s.to));r=r.update({add:i})}return t.selection&&(r=Oe(r,t.selection.main.head)),r},provide:r=>U.decorations.from(r),toJSON(r,t){let e=[];return r.between(0,t.doc.length,(n,i)=>{e.push(n,i)}),e},fromJSON(r){if(!Array.isArray(r)||r.length%2)throw new RangeError("Invalid JSON for fold state");let t=[];for(let e=0;e<r.length;){let n=r[e++],i=r[e++];if(typeof n!="number"||typeof i!="number")throw new RangeError("Invalid JSON for fold state");t.push(De.range(n,i))}return R.set(t,!0)}});function Oe(r,t,e=t){let n=!1;return r.between(t,e,(i,s)=>{i<e&&s>t&&(n=!0)}),n?r.update({filterFrom:t,filterTo:e,filter:(i,s)=>i>=e||s<=t}):r}function ur(r){return r.field(Z,!1)||Fe.empty}function Ct(r,t,e){var n;let i=null;return(n=r.field(Z,!1))===null||n===void 0||n.between(t,e,(s,l)=>{(!i||i.from>s)&&(i={from:s,to:l})}),i}function cr(r,t,e){let n=!1;return r.between(t,t,(i,s)=>{i==t&&s==e&&(n=!0)}),n}function pe(r,t){return r.field(Z,!1)?t:t.concat(jt.appendConfig.of(me()))}const an=r=>{for(let t of de(r)){let e=dt(r.state,t.from,t.to);if(e)return r.dispatch({effects:pe(r.state,[pt.of(e),Ft(r,e)])}),!0}return!1},hn=r=>{if(!r.state.field(Z,!1))return!1;let t=[];for(let e of de(r)){let n=Ct(r.state,e.from,e.to);n&&t.push(ft.of(n),Ft(r,n,!1))}return t.length&&r.dispatch({effects:t}),t.length>0};function Ft(r,t,e=!0){let n=r.state.doc.lineAt(t.from).number,i=r.state.doc.lineAt(t.to).number;return U.announce.of(`${r.state.phrase(e?"Folded lines":"Unfolded lines")} ${n} ${r.state.phrase("to")} ${i}.`)}const fn=r=>{let{state:t}=r,e=[];for(let n=0;n<t.doc.length;){let i=r.lineBlockAt(n),s=dt(t,i.from,i.to);s&&e.push(pt.of(s)),n=(s?r.lineBlockAt(s.to):i).to+1}return e.length&&r.dispatch({effects:pe(r.state,e)}),!!e.length},un=r=>{let t=r.state.field(Z,!1);if(!t||!t.size)return!1;let e=[];return t.between(0,r.state.doc.length,(n,i)=>{e.push(ft.of({from:n,to:i}))}),r.dispatch({effects:e}),!0};function dr(r,t){for(let e=t;;){let n=dt(r.state,e.from,e.to);if(n&&n.to>t.from)return n;if(!e.from)return null;e=r.lineBlockAt(e.from-1)}}const pr=r=>{let t=[];for(let e of de(r)){let n=Ct(r.state,e.from,e.to);if(n)t.push(ft.of(n),Ft(r,n,!1));else{let i=dr(r,e);i&&t.push(pt.of(i),Ft(r,i))}}return t.length>0&&r.dispatch({effects:pe(r.state,t)}),!!t.length},gr=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:an},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:hn},{key:"Ctrl-Alt-[",run:fn},{key:"Ctrl-Alt-]",run:un}],mr={placeholderDOM:null,preparePlaceholder:null,placeholderText:"…"},ge=Q.define({combine(r){return He(r,mr)}});function me(r){let t=[Z,xr];return r&&t.push(ge.of(r)),t}function cn(r,t){let{state:e}=r,n=e.facet(ge),i=l=>{let o=r.lineBlockAt(r.posAtDOM(l.target)),a=Ct(r.state,o.from,o.to);a&&r.dispatch({effects:ft.of(a)}),l.preventDefault()};if(n.placeholderDOM)return n.placeholderDOM(r,i,t);let s=document.createElement("span");return s.textContent=n.placeholderText,s.setAttribute("aria-label",e.phrase("folded code")),s.title=e.phrase("unfold"),s.className="cm-foldPlaceholder",s.onclick=i,s}const De=R.replace({widget:new class extends Ue{toDOM(r){return cn(r,null)}}});class kr extends Ue{constructor(t){super(),this.value=t}eq(t){return this.value==t.value}toDOM(t){return cn(t,this.value)}}const br={openText:"⌄",closedText:"›",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class Gt extends Tn{constructor(t,e){super(),this.config=t,this.open=e}eq(t){return this.config==t.config&&this.open==t.open}toDOM(t){if(this.config.markerDOM)return this.config.markerDOM(this.open);let e=document.createElement("span");return e.textContent=this.open?this.config.openText:this.config.closedText,e.title=t.state.phrase(this.open?"Fold line":"Unfold line"),e}}function yr(r={}){let t={...br,...r},e=new Gt(t,!0),n=new Gt(t,!1),i=Pt.fromClass(class{constructor(l){this.from=l.viewport.from,this.markers=this.buildMarkers(l)}update(l){(l.docChanged||l.viewportChanged||l.startState.facet(Y)!=l.state.facet(Y)||l.startState.field(Z,!1)!=l.state.field(Z,!1)||z(l.startState)!=z(l.state)||t.foldingChanged(l))&&(this.markers=this.buildMarkers(l.view))}buildMarkers(l){let o=new ne;for(let a of l.viewportLineBlocks){let h=Ct(l.state,a.from,a.to)?n:dt(l.state,a.from,a.to)?e:null;h&&o.add(a.from,a.from,h)}return o.finish()}}),{domEventHandlers:s}=t;return[i,Pn({class:"cm-foldGutter",markers(l){var o;return((o=l.plugin(i))===null||o===void 0?void 0:o.markers)||Fe.empty},initialSpacer(){return new Gt(t,!1)},domEventHandlers:{...s,click:(l,o,a)=>{if(s.click&&s.click(l,o,a))return!0;let h=Ct(l.state,o.from,o.to);if(h)return l.dispatch({effects:ft.of(h)}),!0;let f=dt(l.state,o.from,o.to);return f?(l.dispatch({effects:pt.of(f)}),!0):!1}}}),me()]}const xr=U.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}});class Tt{constructor(t,e){this.specs=t;let n;function i(o){let a=Se.newName();return(n||(n=Object.create(null)))["."+a]=o,a}const s=typeof e.all=="string"?e.all:e.all?i(e.all):void 0,l=e.scope;this.scope=l instanceof E?o=>o.prop(rt)==l.data:l?o=>o==l:void 0,this.style=Ke(t.map(o=>({tag:o.tag,class:o.class||i(Object.assign({},o,{tag:null}))})),{all:s}).style,this.module=n?new Se(n):null,this.themeType=e.themeType}static define(t,e){return new Tt(t,e||{})}}const Yt=Q.define(),dn=Q.define({combine(r){return r.length?[r[0]]:null}});function Rt(r){let t=r.facet(Yt);return t.length?t:r.facet(dn)}function wr(r,t){let e=[Cr],n;return r instanceof Tt&&(r.module&&e.push(U.styleModule.of(r.module)),n=r.themeType),t?.fallback?e.push(dn.of(r)):n?e.push(Yt.computeN([U.darkTheme],i=>i.facet(U.darkTheme)==(n=="dark")?[r]:[])):e.push(Yt.of(r)),e}function vr(r,t,e){let n=Rt(r),i=null;if(n){for(let s of n)if(!s.scope||e&&s.scope(e)){let l=s.style(t);l&&(i=i?i+" "+l:l)}}return i}class Sr{constructor(t){this.markCache=Object.create(null),this.tree=z(t.state),this.decorations=this.buildDeco(t,Rt(t.state)),this.decoratedTo=t.viewport.to}update(t){let e=z(t.state),n=Rt(t.state),i=n!=Rt(t.startState),{viewport:s}=t.view,l=t.changes.mapPos(this.decoratedTo,1);e.length<s.to&&!i&&e.type==this.tree.type&&l>=s.to?(this.decorations=this.decorations.map(t.changes),this.decoratedTo=l):(e!=this.tree||t.viewportChanged||i)&&(this.tree=e,this.decorations=this.buildDeco(t.view,n),this.decoratedTo=s.to)}buildDeco(t,e){if(!e||!this.tree.length)return R.none;let n=new ne;for(let{from:i,to:s}of t.visibleRanges)Un(this.tree,e,(l,o,a)=>{n.add(l,o,this.markCache[a]||(this.markCache[a]=R.mark({class:a})))},i,s);return n.finish()}}const Cr=We.high(Pt.fromClass(Sr,{decorations:r=>r.decorations})),Ar=Tt.define([{tag:c.meta,color:"#404740"},{tag:c.link,textDecoration:"underline"},{tag:c.heading,textDecoration:"underline",fontWeight:"bold"},{tag:c.emphasis,fontStyle:"italic"},{tag:c.strong,fontWeight:"bold"},{tag:c.strikethrough,textDecoration:"line-through"},{tag:c.keyword,color:"#708"},{tag:[c.atom,c.bool,c.url,c.contentSeparator,c.labelName],color:"#219"},{tag:[c.literal,c.inserted],color:"#164"},{tag:[c.string,c.deleted],color:"#a11"},{tag:[c.regexp,c.escape,c.special(c.string)],color:"#e40"},{tag:c.definition(c.variableName),color:"#00f"},{tag:c.local(c.variableName),color:"#30a"},{tag:[c.typeName,c.namespace],color:"#085"},{tag:c.className,color:"#167"},{tag:[c.special(c.variableName),c.macroName],color:"#256"},{tag:c.definition(c.propertyName),color:"#00c"},{tag:c.comment,color:"#940"},{tag:c.invalid,color:"#f00"}]),Pr=U.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),pn=1e4,gn="()[]{}",mn=Q.define({combine(r){return He(r,{afterCursor:!0,brackets:gn,maxScanDistance:pn,renderMatch:Ir})}}),Tr=R.mark({class:"cm-matchingBracket"}),Nr=R.mark({class:"cm-nonmatchingBracket"});function Ir(r){let t=[],e=r.matched?Tr:Nr;return t.push(e.range(r.start.from,r.start.to)),r.end&&t.push(e.range(r.end.from,r.end.to)),t}function Me(r){let t=[],e=r.facet(mn);for(let n of r.selection.ranges){if(!n.empty)continue;let i=bt(r,n.head,-1,e)||n.head>0&&bt(r,n.head-1,1,e)||e.afterCursor&&(bt(r,n.head,1,e)||n.head<r.doc.length&&bt(r,n.head+1,-1,e));i&&(t=t.concat(e.renderMatch(i,r)))}return R.set(t,!0)}const Br=Pt.fromClass(class{constructor(r){this.paused=!1,this.decorations=Me(r.state)}update(r){(r.docChanged||r.selectionSet||this.paused)&&(r.view.composing?(this.decorations=this.decorations.map(r.changes),this.paused=!0):(this.decorations=Me(r.state),this.paused=!1))}},{decorations:r=>r.decorations}),Or=[Br,Pr];function Dr(r={}){return[mn.of(r),Or]}const kn=new y;function Zt(r,t,e){let n=r.prop(t<0?y.openedBy:y.closedBy);if(n)return n;if(r.name.length==1){let i=e.indexOf(r.name);if(i>-1&&i%2==(t<0?1:0))return[e[i+t]]}return null}function te(r){let t=r.type.prop(kn);return t?t(r.node):r}function bt(r,t,e,n={}){let i=n.maxScanDistance||pn,s=n.brackets||gn,l=z(r),o=l.resolveInner(t,e);for(let a=o;a;a=a.parent){let h=Zt(a.type,e,s);if(h&&a.from<a.to){let f=te(a);if(f&&(e>0?t>=f.from&&t<f.to:t>f.from&&t<=f.to))return Mr(r,t,e,a,f,h,s)}}return Er(r,t,e,l,o.type,i,s)}function Mr(r,t,e,n,i,s,l){let o=n.parent,a={from:i.from,to:i.to},h=0,f=o?.cursor();if(f&&(e<0?f.childBefore(n.from):f.childAfter(n.to)))do if(e<0?f.to<=n.from:f.from>=n.to){if(h==0&&s.indexOf(f.type.name)>-1&&f.from<f.to){let d=te(f);return{start:a,end:d?{from:d.from,to:d.to}:void 0,matched:!0}}else if(Zt(f.type,e,l))h++;else if(Zt(f.type,-e,l)){if(h==0){let d=te(f);return{start:a,end:d&&d.from<d.to?{from:d.from,to:d.to}:void 0,matched:!1}}h--}}while(e<0?f.prevSibling():f.nextSibling());return{start:a,matched:!1}}function Er(r,t,e,n,i,s,l){if(e<0?!t:t==r.doc.length)return null;let o=e<0?r.sliceDoc(t-1,t):r.sliceDoc(t,t+1),a=l.indexOf(o);if(a<0||a%2==0!=e>0)return null;let h={from:e<0?t-1:t,to:e>0?t+1:t},f=r.doc.iterRange(t,e>0?r.doc.length:0),d=0;for(let g=0;!f.next().done&&g<=s;){let k=f.value;e<0&&(g+=k.length);let w=t+g*e;for(let O=e>0?0:k.length-1,j=e>0?k.length:-1;O!=j;O+=e){let M=l.indexOf(k[O]);if(!(M<0||n.resolveInner(w+O,1).type!=i))if(M%2==0==e>0)d++;else{if(d==1)return{start:h,end:{from:w+O,to:w+O+1},matched:M>>1==a>>1};d--}}e>0&&(g+=k.length)}return f.done?{start:h,matched:!1}:null}function Ee(r,t,e,n=0,i=0){t==null&&(t=r.search(/[^\s\u00a0]/),t==-1&&(t=r.length));let s=i;for(let l=n;l<t;l++)r.charCodeAt(l)==9?s+=e-s%e:s++;return s}class ke{constructor(t,e,n,i){this.string=t,this.tabSize=e,this.indentUnit=n,this.overrideIndent=i,this.pos=0,this.start=0,this.lastColumnPos=0,this.lastColumnValue=0}eol(){return this.pos>=this.string.length}sol(){return this.pos==0}peek(){return this.string.charAt(this.pos)||void 0}next(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)}eat(t){let e=this.string.charAt(this.pos),n;if(typeof t=="string"?n=e==t:n=e&&(t instanceof RegExp?t.test(e):t(e)),n)return++this.pos,e}eatWhile(t){let e=this.pos;for(;this.eat(t););return this.pos>e}eatSpace(){let t=this.pos;for(;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>t}skipToEnd(){this.pos=this.string.length}skipTo(t){let e=this.string.indexOf(t,this.pos);if(e>-1)return this.pos=e,!0}backUp(t){this.pos-=t}column(){return this.lastColumnPos<this.start&&(this.lastColumnValue=Ee(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue}indentation(){var t;return(t=this.overrideIndent)!==null&&t!==void 0?t:Ee(this.string,null,this.tabSize)}match(t,e,n){if(typeof t=="string"){let i=l=>n?l.toLowerCase():l,s=this.string.substr(this.pos,t.length);return i(s)==i(t)?(e!==!1&&(this.pos+=t.length),!0):null}else{let i=this.string.slice(this.pos).match(t);return i&&i.index>0?null:(i&&e!==!1&&(this.pos+=i[0].length),i)}}current(){return this.string.slice(this.start,this.pos)}}function Rr(r){return{name:r.name||"",token:r.token,blankLine:r.blankLine||(()=>{}),startState:r.startState||(()=>!0),copyState:r.copyState||_r,indent:r.indent||(()=>null),languageData:r.languageData||{},tokenTable:r.tokenTable||xe,mergeTokens:r.mergeTokens!==!1}}function _r(r){if(typeof r!="object")return r;let t={};for(let e in r){let n=r[e];t[e]=n instanceof Array?n.slice():n}return t}const Re=new WeakMap;class be extends E{constructor(t){let e=oe(t.languageData),n=Rr(t),i,s=new class extends Ge{createParse(l,o,a){return new zr(i,l,o,a)}};super(e,s,[],t.name),this.topNode=Wr(e,this),i=this,this.streamParser=n,this.stateAfter=new y({perNode:!0}),this.tokenTable=t.tokenTable?new wn(n.tokenTable):jr}static define(t){return new be(t)}getIndent(t){let e,{overrideIndentation:n}=t.options;n&&(e=Re.get(t.state),e!=null&&e<t.pos-1e4&&(e=void 0));let i=ye(this,t.node.tree,t.node.from,t.node.from,e??t.pos),s,l;if(i?(l=i.state,s=i.pos+1):(l=this.streamParser.startState(t.unit),s=t.node.from),t.pos-s>1e4)return null;for(;s<t.pos;){let a=t.state.doc.lineAt(s),h=Math.min(t.pos,a.to);if(a.length){let f=n?n(a.from):-1,d=new ke(a.text,t.state.tabSize,t.unit,f<0?void 0:f);for(;d.pos<h-a.from;)yn(this.streamParser.token,d,l)}else this.streamParser.blankLine(l,t.unit);if(h==t.pos)break;s=a.to+1}let o=t.lineAt(t.pos);return n&&e==null&&Re.set(t.state,o.from),this.streamParser.indent(l,/^\s*(.*)/.exec(o.text)[1],t)}get allowsNesting(){return!1}}function ye(r,t,e,n,i){let s=e>=n&&e+t.length<=i&&t.prop(r.stateAfter);if(s)return{state:r.streamParser.copyState(s),pos:e+t.length};for(let l=t.children.length-1;l>=0;l--){let o=t.children[l],a=e+t.positions[l],h=o instanceof C&&a<i&&ye(r,o,a,n,i);if(h)return h}return null}function bn(r,t,e,n,i){if(i&&e<=0&&n>=t.length)return t;!i&&e==0&&t.type==r.topNode&&(i=!0);for(let s=t.children.length-1;s>=0;s--){let l=t.positions[s],o=t.children[s],a;if(l<n&&o instanceof C){if(!(a=bn(r,o,e-l,n-l,i)))break;return i?new C(t.type,t.children.slice(0,s).concat(a),t.positions.slice(0,s+1),l+a.length):a}}return null}function Lr(r,t,e,n,i){for(let s of t){let l=s.from+(s.openStart?25:0),o=s.to-(s.openEnd?25:0),a=l<=e&&o>e&&ye(r,s.tree,0-s.offset,e,o),h;if(a&&a.pos<=n&&(h=bn(r,s.tree,e+s.offset,a.pos+s.offset,!1)))return{state:a.state,tree:h}}return{state:r.streamParser.startState(i?St(i):4),tree:C.empty}}class zr{constructor(t,e,n,i){this.lang=t,this.input=e,this.fragments=n,this.ranges=i,this.stoppedAt=null,this.chunks=[],this.chunkPos=[],this.chunk=[],this.chunkReused=void 0,this.rangeIndex=0,this.to=i[i.length-1].to;let s=ht.get(),l=i[0].from,{state:o,tree:a}=Lr(t,n,l,this.to,s?.state);this.state=o,this.parsedPos=this.chunkStart=l+a.length;for(let h=0;h<a.children.length;h++)this.chunks.push(a.children[h]),this.chunkPos.push(a.positions[h]);s&&this.parsedPos<s.viewport.from-1e5&&i.some(h=>h.from<=s.viewport.from&&h.to>=s.viewport.from)&&(this.state=this.lang.streamParser.startState(St(s.state)),s.skipUntilInView(this.parsedPos,s.viewport.from),this.parsedPos=s.viewport.from),this.moveRangeIndex()}advance(){let t=ht.get(),e=this.stoppedAt==null?this.to:Math.min(this.to,this.stoppedAt),n=Math.min(e,this.chunkStart+512);for(t&&(n=Math.min(n,t.viewport.to));this.parsedPos<n;)this.parseLine(t);return this.chunkStart<this.parsedPos&&this.finishChunk(),this.parsedPos>=e?this.finish():t&&this.parsedPos>=t.viewport.to?(t.skipUntilInView(this.parsedPos,e),this.finish()):null}stopAt(t){this.stoppedAt=t}lineAfter(t){let e=this.input.chunk(t);if(this.input.lineChunks)e==`
2
+ `&&(e="");else{let n=e.indexOf(`
3
+ `);n>-1&&(e=e.slice(0,n))}return t+e.length<=this.to?e:e.slice(0,this.to-t)}nextLine(){let t=this.parsedPos,e=this.lineAfter(t),n=t+e.length;for(let i=this.rangeIndex;;){let s=this.ranges[i].to;if(s>=n||(e=e.slice(0,s-(n-e.length)),i++,i==this.ranges.length))break;let l=this.ranges[i].from,o=this.lineAfter(l);e+=o,n=l+o.length}return{line:e,end:n}}skipGapsTo(t,e,n){for(;;){let i=this.ranges[this.rangeIndex].to,s=t+e;if(n>0?i>s:i>=s)break;let l=this.ranges[++this.rangeIndex].from;e+=l-i}return e}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to<this.parsedPos;)this.rangeIndex++}emitToken(t,e,n,i){let s=4;if(this.ranges.length>1){i=this.skipGapsTo(e,i,1),e+=i;let o=this.chunk.length;i=this.skipGapsTo(n,i,-1),n+=i,s+=this.chunk.length-o}let l=this.chunk.length-4;return this.lang.streamParser.mergeTokens&&s==4&&l>=0&&this.chunk[l]==t&&this.chunk[l+2]==e?this.chunk[l+2]=n:this.chunk.push(t,e,n,s),i}parseLine(t){let{line:e,end:n}=this.nextLine(),i=0,{streamParser:s}=this.lang,l=new ke(e,t?t.state.tabSize:4,t?St(t.state):2);if(l.eol())s.blankLine(this.state,l.indentUnit);else for(;!l.eol();){let o=yn(s.token,l,this.state);if(o&&(i=this.emitToken(this.lang.tokenTable.resolve(o),this.parsedPos+l.start,this.parsedPos+l.pos,i)),l.start>1e4)break}this.parsedPos=n,this.moveRangeIndex(),this.parsedPos<this.to&&this.parsedPos++}finishChunk(){let t=C.build({buffer:this.chunk,start:this.chunkStart,length:this.parsedPos-this.chunkStart,nodeSet:Fr,topID:0,maxBufferLength:512,reused:this.chunkReused});t=new C(t.type,t.children,t.positions,t.length,[[this.lang.stateAfter,this.lang.streamParser.copyState(this.state)]]),this.chunks.push(t),this.chunkPos.push(this.chunkStart-this.ranges[0].from),this.chunk=[],this.chunkReused=void 0,this.chunkStart=this.parsedPos}finish(){return new C(this.lang.topNode,this.chunks,this.chunkPos,this.parsedPos-this.ranges[0].from).balance()}}function yn(r,t,e){t.start=t.pos;for(let n=0;n<10;n++){let i=r(t,e);if(t.pos>t.start)return i}throw new Error("Stream parser failed to advance stream.")}const xe=Object.create(null),At=[L.none],Fr=new re(At),_e=[],Le=Object.create(null),xn=Object.create(null);for(let[r,t]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])xn[r]=vn(xe,t);class wn{constructor(t){this.extra=t,this.table=Object.assign(Object.create(null),xn)}resolve(t){return t?this.table[t]||(this.table[t]=vn(this.extra,t)):0}}const jr=new wn(xe);function Jt(r,t){_e.indexOf(r)>-1||(_e.push(r),console.warn(t))}function vn(r,t){let e=[];for(let o of t.split(" ")){let a=[];for(let h of o.split(".")){let f=r[h]||c[h];f?typeof f=="function"?a.length?a=a.map(f):Jt(h,`Modifier ${h} used at start of tag`):a.length?Jt(h,`Tag ${h} used as modifier`):a=Array.isArray(f)?f:[f]:Jt(h,`Unknown highlighting tag ${h}`)}for(let h of a)e.push(h)}if(!e.length)return 0;let n=t.replace(/ /g,"_"),i=n+" "+e.map(o=>o.id),s=Le[i];if(s)return s.id;let l=Le[i]=L.define({id:At.length,name:n,props:[Wn({[n]:e})]});return At.push(l),l.id}function Wr(r,t){let e=L.define({id:At.length,name:"Document",props:[rt.add(()=>r),ce.add(()=>n=>t.getIndent(n))],top:!0});return At.push(e),e}function Sn(r){return r.length<=4096&&/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/.test(r)}function Cn(r){for(let t=r.iter();!t.next().done;)if(Sn(t.value))return!0;return!1}function Hr(r){let t=!1;return r.iterChanges((e,n,i,s,l)=>{!t&&Cn(l)&&(t=!0)}),t}const ee=Q.define({combine:r=>r.some(t=>t)});function Ur(r={}){let t=[Vr];return r.alwaysIsolate&&t.push(ee.of(!0)),t}const Vr=Pt.fromClass(class{constructor(r){this.always=r.state.facet(ee)||r.textDirection!=_t.LTR||r.state.facet(U.perLineTextDirection),this.hasRTL=!this.always&&Cn(r.state.doc),this.tree=z(r.state),this.decorations=this.always||this.hasRTL?ze(r,this.tree,this.always):R.none}update(r){let t=r.state.facet(ee)||r.view.textDirection!=_t.LTR||r.state.facet(U.perLineTextDirection);if(!t&&!this.hasRTL&&Hr(r.changes)&&(this.hasRTL=!0),!t&&!this.hasRTL)return;let e=z(r.state);(t!=this.always||e!=this.tree||r.docChanged||r.viewportChanged)&&(this.tree=e,this.always=t,this.decorations=ze(r.view,e,t))}},{provide:r=>{function t(e){var n,i;return(i=(n=e.plugin(r))===null||n===void 0?void 0:n.decorations)!==null&&i!==void 0?i:R.none}return[U.outerDecorations.of(t),We.lowest(U.bidiIsolatedRanges.of(t))]}});function ze(r,t,e){let n=new ne,i=r.visibleRanges;e||(i=$r(i,r.state.doc));for(let{from:s,to:l}of i)t.iterate({enter:o=>{let a=o.type.prop(y.isolate);a&&n.add(o.from,o.to,qr[a])},from:s,to:l});return n.finish()}function $r(r,t){let e=t.iter(),n=0,i=[],s=null;for(let{from:l,to:o}of r)if(!(s&&s.to>l&&(l=s.to,l>=o)))for(n+e.value.length<l&&(e.next(l-(n+e.value.length)),n=l);;){let a=n,h=n+e.value.length;if(!e.lineBreak&&Sn(e.value)&&(s&&s.to>a-10?s.to=Math.min(o,h):i.push(s={from:a,to:Math.min(o,h)})),h>=o)break;n=h,e.next()}return i}const qr={rtl:R.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"rtl"},bidiIsolate:_t.RTL}),ltr:R.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"ltr"},bidiIsolate:_t.LTR}),auto:R.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"auto"},bidiIsolate:null})},Xr=Object.freeze(Object.defineProperty({__proto__:null,DocInput:Ye,HighlightStyle:Tt,IndentContext:Wt,LRLanguage:zt,Language:E,LanguageDescription:ae,LanguageSupport:Kn,ParseContext:ht,StreamLanguage:be,StringStream:ke,TreeIndentContext:Ht,bidiIsolates:Ur,bracketMatching:Dr,bracketMatchingHandle:kn,codeFolding:me,continuedIndent:sr,defaultHighlightStyle:Ar,defineLanguageFacet:oe,delimitedIndent:rr,ensureSyntaxTree:Xe,flatIndent:ir,foldAll:fn,foldCode:an,foldEffect:pt,foldGutter:yr,foldInside:ar,foldKeymap:gr,foldNodeProp:ln,foldService:sn,foldState:Z,foldable:dt,foldedRanges:ur,forceParsing:Gn,getIndentUnit:St,getIndentation:ue,highlightingFor:vr,indentNodeProp:ce,indentOnInput:or,indentRange:Qn,indentService:en,indentString:fe,indentUnit:he,language:Y,languageDataProp:rt,matchBrackets:bt,sublanguageProp:Qe,syntaxHighlighting:wr,syntaxParserRunning:Jn,syntaxTree:z,syntaxTreeAvailable:qn,toggleFold:pr,unfoldAll:un,unfoldCode:hn,unfoldEffect:ft},Symbol.toStringTag,{value:"Module"}));export{In as D,Tt as H,Wt as I,Kn as L,y as N,Ge as P,C as T,St as a,he as b,re as c,L as d,I as e,wr as f,ue as g,Wn as h,fe as i,zt as j,ce as k,sr as l,bt as m,ln as n,ar as o,ir as p,rr as q,Qe as r,z as s,c as t,oe as u,Kr as v,Xr as w};
@@ -0,0 +1 @@
1
+ import{AuthoringAdapter2D as U,STRUCTURAL_CANVAS_IDENTITY as _}from"./authoring-CgcOFhGS.js";import{mountIngestGame2D as G}from"./ingest-BbYMC2vQ.js";import{createPhysics2DRegistry as V}from"./physics-registry-B2Jkp8e6.js";import{installSceneCapture2D as b}from"./scene-capture-CGYF-Viw.js";import{createPhysicsAdapter2D as k}from"./system-adapters-rIC8FSGP.js";import"./resolve-three-SZE_WWUM.js";import"./index-GIL7oGEO.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./three.module-D396a9Mn.js";import"./capability-coverage-Czas4C18.js";import"./game-contract-seams-a5YXejOu.js";import"./json-history-resource-BbxllWfV.js";import"./dom-authoring-adapter-CY8C7f4T.js";import"./react-world-authoring-adapter-DmrwM3py.js";import"./board-guides-DziKSTss.js";import"./writer-B-KovzkA.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-BZfi3mmo.js";import"./inference-diagnostics-Dhmtfbq_.js";import"./debug-registry-Dgvitx8M.js";import"./playtest-BXIL1JEF.js";import"./webgl-frame-capture-FlF9zQmW.js";import"./active-ingest-CT6jSGhr.js";import"./ingest-source-persistence-C_6Hiyra.js";export{U as AuthoringAdapter2D,_ as STRUCTURAL_CANVAS_IDENTITY,V as createPhysics2DRegistry,k as createPhysicsAdapter2D,b as installSceneCapture2D,G as mountIngestGame2D};
@@ -0,0 +1 @@
1
+ import{PixiPrimitive as E,adoptNow as F}from"./pixi-primitive-DlWbUPN9.js";import{resolveCanvasEntryAdapter as r}from"./pixi-react-root-factory-DYsznYRQ.js";import{pixiReactRootFactory as b}from"./pixi-react-root-factory-DYsznYRQ.js";import"./extend-B-eOccUm.js";import"./jsx-runtime-DPjLkJKQ.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-bQE2NA0D.js";import"./index-nmcBqr7Y.js";import"./index-D_NuPfjr.js";import"./index-GIL7oGEO.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./three.module-D396a9Mn.js";import"./world-state-BWG-IcOd.js";import"./debug-registry-Dgvitx8M.js";import"./frame-selector-cache-cCeUbcjG.js";import"./game-input-seams-CIQdetRw.js";import"./seeded-random-i3mtgBKZ.js";import"./render-seed-DF4JHy7P.js";export{E as PixiPrimitive,F as adoptNow,b as pixiReactRootFactory,r as resolveCanvasEntryAdapter};