@forgeax/view 0.2.1-beta-20260924075842

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 (585) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +742 -0
  3. package/dist/modules/backend.mjs +54 -0
  4. package/dist/modules/backend.mjs.map +7 -0
  5. package/dist/modules/browser.mjs +180 -0
  6. package/dist/modules/browser.mjs.map +7 -0
  7. package/dist/modules/carrier-contract.mjs +38 -0
  8. package/dist/modules/carrier-contract.mjs.map +7 -0
  9. package/dist/modules/carrier.mjs +13 -0
  10. package/dist/modules/carrier.mjs.map +7 -0
  11. package/dist/modules/chunks/chunk-2ASWB6IX.mjs +225 -0
  12. package/dist/modules/chunks/chunk-2ASWB6IX.mjs.map +7 -0
  13. package/dist/modules/chunks/chunk-2IJKOG2F.mjs +801 -0
  14. package/dist/modules/chunks/chunk-2IJKOG2F.mjs.map +7 -0
  15. package/dist/modules/chunks/chunk-2K3BBJ5S.mjs +9 -0
  16. package/dist/modules/chunks/chunk-2K3BBJ5S.mjs.map +7 -0
  17. package/dist/modules/chunks/chunk-32GD5LL6.mjs +482 -0
  18. package/dist/modules/chunks/chunk-32GD5LL6.mjs.map +7 -0
  19. package/dist/modules/chunks/chunk-3B4KFAEC.mjs +10 -0
  20. package/dist/modules/chunks/chunk-3B4KFAEC.mjs.map +7 -0
  21. package/dist/modules/chunks/chunk-46O5WX43.mjs +25 -0
  22. package/dist/modules/chunks/chunk-46O5WX43.mjs.map +7 -0
  23. package/dist/modules/chunks/chunk-47J5JXAB.mjs +237 -0
  24. package/dist/modules/chunks/chunk-47J5JXAB.mjs.map +7 -0
  25. package/dist/modules/chunks/chunk-4BXQOUDQ.mjs +17 -0
  26. package/dist/modules/chunks/chunk-4BXQOUDQ.mjs.map +7 -0
  27. package/dist/modules/chunks/chunk-4GQWYU2V.mjs +126 -0
  28. package/dist/modules/chunks/chunk-4GQWYU2V.mjs.map +7 -0
  29. package/dist/modules/chunks/chunk-4N5X2PRQ.mjs +48 -0
  30. package/dist/modules/chunks/chunk-4N5X2PRQ.mjs.map +7 -0
  31. package/dist/modules/chunks/chunk-4WXD2KYX.mjs +56 -0
  32. package/dist/modules/chunks/chunk-4WXD2KYX.mjs.map +7 -0
  33. package/dist/modules/chunks/chunk-6ZWWVAZK.mjs +468 -0
  34. package/dist/modules/chunks/chunk-6ZWWVAZK.mjs.map +7 -0
  35. package/dist/modules/chunks/chunk-73UZNRHN.mjs +296 -0
  36. package/dist/modules/chunks/chunk-73UZNRHN.mjs.map +7 -0
  37. package/dist/modules/chunks/chunk-7ITLCRND.mjs +10 -0
  38. package/dist/modules/chunks/chunk-7ITLCRND.mjs.map +7 -0
  39. package/dist/modules/chunks/chunk-7TGVWKH7.mjs +59 -0
  40. package/dist/modules/chunks/chunk-7TGVWKH7.mjs.map +7 -0
  41. package/dist/modules/chunks/chunk-7URFF53W.mjs +42 -0
  42. package/dist/modules/chunks/chunk-7URFF53W.mjs.map +7 -0
  43. package/dist/modules/chunks/chunk-7YSDRIFN.mjs +14 -0
  44. package/dist/modules/chunks/chunk-7YSDRIFN.mjs.map +7 -0
  45. package/dist/modules/chunks/chunk-AAFVCQPK.mjs +52 -0
  46. package/dist/modules/chunks/chunk-AAFVCQPK.mjs.map +7 -0
  47. package/dist/modules/chunks/chunk-AEK7ZESQ.mjs +18 -0
  48. package/dist/modules/chunks/chunk-AEK7ZESQ.mjs.map +7 -0
  49. package/dist/modules/chunks/chunk-AL6ZWIEU.mjs +42 -0
  50. package/dist/modules/chunks/chunk-AL6ZWIEU.mjs.map +7 -0
  51. package/dist/modules/chunks/chunk-ALT7XVMQ.mjs +73 -0
  52. package/dist/modules/chunks/chunk-ALT7XVMQ.mjs.map +7 -0
  53. package/dist/modules/chunks/chunk-ASI2HBE6.mjs +116 -0
  54. package/dist/modules/chunks/chunk-ASI2HBE6.mjs.map +7 -0
  55. package/dist/modules/chunks/chunk-ATWGCH7I.mjs +174 -0
  56. package/dist/modules/chunks/chunk-ATWGCH7I.mjs.map +7 -0
  57. package/dist/modules/chunks/chunk-C45U6IIY.mjs +692 -0
  58. package/dist/modules/chunks/chunk-C45U6IIY.mjs.map +7 -0
  59. package/dist/modules/chunks/chunk-C7R3YRA7.mjs +98 -0
  60. package/dist/modules/chunks/chunk-C7R3YRA7.mjs.map +7 -0
  61. package/dist/modules/chunks/chunk-CRMICXKN.mjs +87 -0
  62. package/dist/modules/chunks/chunk-CRMICXKN.mjs.map +7 -0
  63. package/dist/modules/chunks/chunk-CUH2G6UF.mjs +81 -0
  64. package/dist/modules/chunks/chunk-CUH2G6UF.mjs.map +7 -0
  65. package/dist/modules/chunks/chunk-D7GWRZLL.mjs +77 -0
  66. package/dist/modules/chunks/chunk-D7GWRZLL.mjs.map +7 -0
  67. package/dist/modules/chunks/chunk-DBWUIBE3.mjs +10 -0
  68. package/dist/modules/chunks/chunk-DBWUIBE3.mjs.map +7 -0
  69. package/dist/modules/chunks/chunk-DQWVWWUU.mjs +77 -0
  70. package/dist/modules/chunks/chunk-DQWVWWUU.mjs.map +7 -0
  71. package/dist/modules/chunks/chunk-DZZ2WFEU.mjs +122 -0
  72. package/dist/modules/chunks/chunk-DZZ2WFEU.mjs.map +7 -0
  73. package/dist/modules/chunks/chunk-E4UIAN26.mjs +58 -0
  74. package/dist/modules/chunks/chunk-E4UIAN26.mjs.map +7 -0
  75. package/dist/modules/chunks/chunk-EJGBVKFE.mjs +77 -0
  76. package/dist/modules/chunks/chunk-EJGBVKFE.mjs.map +7 -0
  77. package/dist/modules/chunks/chunk-EPSTTHWV.mjs +173 -0
  78. package/dist/modules/chunks/chunk-EPSTTHWV.mjs.map +7 -0
  79. package/dist/modules/chunks/chunk-ER7T6QJ3.mjs +64 -0
  80. package/dist/modules/chunks/chunk-ER7T6QJ3.mjs.map +7 -0
  81. package/dist/modules/chunks/chunk-FD4BAJ6K.mjs +389 -0
  82. package/dist/modules/chunks/chunk-FD4BAJ6K.mjs.map +7 -0
  83. package/dist/modules/chunks/chunk-FJM6WWIY.mjs +80 -0
  84. package/dist/modules/chunks/chunk-FJM6WWIY.mjs.map +7 -0
  85. package/dist/modules/chunks/chunk-FKCQYDLX.mjs +162 -0
  86. package/dist/modules/chunks/chunk-FKCQYDLX.mjs.map +7 -0
  87. package/dist/modules/chunks/chunk-FLGC65SR.mjs +10 -0
  88. package/dist/modules/chunks/chunk-FLGC65SR.mjs.map +7 -0
  89. package/dist/modules/chunks/chunk-FMCACPX5.mjs +289 -0
  90. package/dist/modules/chunks/chunk-FMCACPX5.mjs.map +7 -0
  91. package/dist/modules/chunks/chunk-FOBRLUQV.mjs +51 -0
  92. package/dist/modules/chunks/chunk-FOBRLUQV.mjs.map +7 -0
  93. package/dist/modules/chunks/chunk-FV3DSKZB.mjs +33 -0
  94. package/dist/modules/chunks/chunk-FV3DSKZB.mjs.map +7 -0
  95. package/dist/modules/chunks/chunk-G7BAFAGO.mjs +98 -0
  96. package/dist/modules/chunks/chunk-G7BAFAGO.mjs.map +7 -0
  97. package/dist/modules/chunks/chunk-GQBZMCTK.mjs +145 -0
  98. package/dist/modules/chunks/chunk-GQBZMCTK.mjs.map +7 -0
  99. package/dist/modules/chunks/chunk-GYWIY7AL.mjs +131 -0
  100. package/dist/modules/chunks/chunk-GYWIY7AL.mjs.map +7 -0
  101. package/dist/modules/chunks/chunk-H3KNBALD.mjs +256 -0
  102. package/dist/modules/chunks/chunk-H3KNBALD.mjs.map +7 -0
  103. package/dist/modules/chunks/chunk-H3M22JDL.mjs +144 -0
  104. package/dist/modules/chunks/chunk-H3M22JDL.mjs.map +7 -0
  105. package/dist/modules/chunks/chunk-HES3DNTM.mjs +40 -0
  106. package/dist/modules/chunks/chunk-HES3DNTM.mjs.map +7 -0
  107. package/dist/modules/chunks/chunk-I5BFP7SS.mjs +2392 -0
  108. package/dist/modules/chunks/chunk-I5BFP7SS.mjs.map +7 -0
  109. package/dist/modules/chunks/chunk-IGRMZYRD.mjs +15 -0
  110. package/dist/modules/chunks/chunk-IGRMZYRD.mjs.map +7 -0
  111. package/dist/modules/chunks/chunk-IKNGC766.mjs +321 -0
  112. package/dist/modules/chunks/chunk-IKNGC766.mjs.map +7 -0
  113. package/dist/modules/chunks/chunk-IVHNYKZB.mjs +35 -0
  114. package/dist/modules/chunks/chunk-IVHNYKZB.mjs.map +7 -0
  115. package/dist/modules/chunks/chunk-JHOURMYW.mjs +101 -0
  116. package/dist/modules/chunks/chunk-JHOURMYW.mjs.map +7 -0
  117. package/dist/modules/chunks/chunk-JURXMRFA.mjs +282 -0
  118. package/dist/modules/chunks/chunk-JURXMRFA.mjs.map +7 -0
  119. package/dist/modules/chunks/chunk-JWZIREC3.mjs +18 -0
  120. package/dist/modules/chunks/chunk-JWZIREC3.mjs.map +7 -0
  121. package/dist/modules/chunks/chunk-KHRTIZ56.mjs +1400 -0
  122. package/dist/modules/chunks/chunk-KHRTIZ56.mjs.map +7 -0
  123. package/dist/modules/chunks/chunk-KLJZZ23J.mjs +102 -0
  124. package/dist/modules/chunks/chunk-KLJZZ23J.mjs.map +7 -0
  125. package/dist/modules/chunks/chunk-KNBAYU5I.mjs +49 -0
  126. package/dist/modules/chunks/chunk-KNBAYU5I.mjs.map +7 -0
  127. package/dist/modules/chunks/chunk-KSZNCFU4.mjs +125 -0
  128. package/dist/modules/chunks/chunk-KSZNCFU4.mjs.map +7 -0
  129. package/dist/modules/chunks/chunk-L45W6KM6.mjs +158 -0
  130. package/dist/modules/chunks/chunk-L45W6KM6.mjs.map +7 -0
  131. package/dist/modules/chunks/chunk-LERMYZRC.mjs +239 -0
  132. package/dist/modules/chunks/chunk-LERMYZRC.mjs.map +7 -0
  133. package/dist/modules/chunks/chunk-LKJCXYSJ.mjs +91 -0
  134. package/dist/modules/chunks/chunk-LKJCXYSJ.mjs.map +7 -0
  135. package/dist/modules/chunks/chunk-MBS3EICT.mjs +25 -0
  136. package/dist/modules/chunks/chunk-MBS3EICT.mjs.map +7 -0
  137. package/dist/modules/chunks/chunk-MUOQZPVH.mjs +609 -0
  138. package/dist/modules/chunks/chunk-MUOQZPVH.mjs.map +7 -0
  139. package/dist/modules/chunks/chunk-MVEPGFSB.mjs +1 -0
  140. package/dist/modules/chunks/chunk-MVEPGFSB.mjs.map +7 -0
  141. package/dist/modules/chunks/chunk-NBJKLWJ5.mjs +42 -0
  142. package/dist/modules/chunks/chunk-NBJKLWJ5.mjs.map +7 -0
  143. package/dist/modules/chunks/chunk-NBLGKTEM.mjs +86 -0
  144. package/dist/modules/chunks/chunk-NBLGKTEM.mjs.map +7 -0
  145. package/dist/modules/chunks/chunk-NI7CS3I2.mjs +110 -0
  146. package/dist/modules/chunks/chunk-NI7CS3I2.mjs.map +7 -0
  147. package/dist/modules/chunks/chunk-NJH2OJFC.mjs +2113 -0
  148. package/dist/modules/chunks/chunk-NJH2OJFC.mjs.map +7 -0
  149. package/dist/modules/chunks/chunk-OBK4LIJB.mjs +20 -0
  150. package/dist/modules/chunks/chunk-OBK4LIJB.mjs.map +7 -0
  151. package/dist/modules/chunks/chunk-PEUT3FW7.mjs +1 -0
  152. package/dist/modules/chunks/chunk-PEUT3FW7.mjs.map +7 -0
  153. package/dist/modules/chunks/chunk-PRZOWPDN.mjs +66 -0
  154. package/dist/modules/chunks/chunk-PRZOWPDN.mjs.map +7 -0
  155. package/dist/modules/chunks/chunk-Q4RXBGQS.mjs +55 -0
  156. package/dist/modules/chunks/chunk-Q4RXBGQS.mjs.map +7 -0
  157. package/dist/modules/chunks/chunk-QBHBKOIL.mjs +55 -0
  158. package/dist/modules/chunks/chunk-QBHBKOIL.mjs.map +7 -0
  159. package/dist/modules/chunks/chunk-QD6CCRMG.mjs +20 -0
  160. package/dist/modules/chunks/chunk-QD6CCRMG.mjs.map +7 -0
  161. package/dist/modules/chunks/chunk-QF4V23GW.mjs +39 -0
  162. package/dist/modules/chunks/chunk-QF4V23GW.mjs.map +7 -0
  163. package/dist/modules/chunks/chunk-QK6W7MJO.mjs +42 -0
  164. package/dist/modules/chunks/chunk-QK6W7MJO.mjs.map +7 -0
  165. package/dist/modules/chunks/chunk-QL7V6DK7.mjs +34 -0
  166. package/dist/modules/chunks/chunk-QL7V6DK7.mjs.map +7 -0
  167. package/dist/modules/chunks/chunk-QLBQQKRI.mjs +25 -0
  168. package/dist/modules/chunks/chunk-QLBQQKRI.mjs.map +7 -0
  169. package/dist/modules/chunks/chunk-QLZQGZDC.mjs +418 -0
  170. package/dist/modules/chunks/chunk-QLZQGZDC.mjs.map +7 -0
  171. package/dist/modules/chunks/chunk-QSKQZGK7.mjs +1625 -0
  172. package/dist/modules/chunks/chunk-QSKQZGK7.mjs.map +7 -0
  173. package/dist/modules/chunks/chunk-QURKBAG4.mjs +25 -0
  174. package/dist/modules/chunks/chunk-QURKBAG4.mjs.map +7 -0
  175. package/dist/modules/chunks/chunk-R274XBEH.mjs +53 -0
  176. package/dist/modules/chunks/chunk-R274XBEH.mjs.map +7 -0
  177. package/dist/modules/chunks/chunk-R4I4JEY5.mjs +77 -0
  178. package/dist/modules/chunks/chunk-R4I4JEY5.mjs.map +7 -0
  179. package/dist/modules/chunks/chunk-RR6L6VVR.mjs +9 -0
  180. package/dist/modules/chunks/chunk-RR6L6VVR.mjs.map +7 -0
  181. package/dist/modules/chunks/chunk-RXF7SBBZ.mjs +125 -0
  182. package/dist/modules/chunks/chunk-RXF7SBBZ.mjs.map +7 -0
  183. package/dist/modules/chunks/chunk-SR66S6EJ.mjs +138 -0
  184. package/dist/modules/chunks/chunk-SR66S6EJ.mjs.map +7 -0
  185. package/dist/modules/chunks/chunk-SSQMQJ52.mjs +27 -0
  186. package/dist/modules/chunks/chunk-SSQMQJ52.mjs.map +7 -0
  187. package/dist/modules/chunks/chunk-TP26TASL.mjs +20 -0
  188. package/dist/modules/chunks/chunk-TP26TASL.mjs.map +7 -0
  189. package/dist/modules/chunks/chunk-TSAEK5P3.mjs +50 -0
  190. package/dist/modules/chunks/chunk-TSAEK5P3.mjs.map +7 -0
  191. package/dist/modules/chunks/chunk-UAY27HT3.mjs +68 -0
  192. package/dist/modules/chunks/chunk-UAY27HT3.mjs.map +7 -0
  193. package/dist/modules/chunks/chunk-UDLIWGWS.mjs +103 -0
  194. package/dist/modules/chunks/chunk-UDLIWGWS.mjs.map +7 -0
  195. package/dist/modules/chunks/chunk-UDVQHPWV.mjs +89 -0
  196. package/dist/modules/chunks/chunk-UDVQHPWV.mjs.map +7 -0
  197. package/dist/modules/chunks/chunk-UM23W3G7.mjs +237 -0
  198. package/dist/modules/chunks/chunk-UM23W3G7.mjs.map +7 -0
  199. package/dist/modules/chunks/chunk-VDZJWEAA.mjs +214 -0
  200. package/dist/modules/chunks/chunk-VDZJWEAA.mjs.map +7 -0
  201. package/dist/modules/chunks/chunk-VIGOJWSO.mjs +42 -0
  202. package/dist/modules/chunks/chunk-VIGOJWSO.mjs.map +7 -0
  203. package/dist/modules/chunks/chunk-VY3S5BWI.mjs +284 -0
  204. package/dist/modules/chunks/chunk-VY3S5BWI.mjs.map +7 -0
  205. package/dist/modules/chunks/chunk-VZXGRZYU.mjs +47 -0
  206. package/dist/modules/chunks/chunk-VZXGRZYU.mjs.map +7 -0
  207. package/dist/modules/chunks/chunk-W5DMQZB5.mjs +42 -0
  208. package/dist/modules/chunks/chunk-W5DMQZB5.mjs.map +7 -0
  209. package/dist/modules/chunks/chunk-WOMHSTVZ.mjs +918 -0
  210. package/dist/modules/chunks/chunk-WOMHSTVZ.mjs.map +7 -0
  211. package/dist/modules/chunks/chunk-XFQT7XCG.mjs +42 -0
  212. package/dist/modules/chunks/chunk-XFQT7XCG.mjs.map +7 -0
  213. package/dist/modules/chunks/chunk-XJZEVRYX.mjs +98 -0
  214. package/dist/modules/chunks/chunk-XJZEVRYX.mjs.map +7 -0
  215. package/dist/modules/chunks/chunk-XUYFV23R.mjs +317 -0
  216. package/dist/modules/chunks/chunk-XUYFV23R.mjs.map +7 -0
  217. package/dist/modules/chunks/chunk-Y5HXCPPQ.mjs +58 -0
  218. package/dist/modules/chunks/chunk-Y5HXCPPQ.mjs.map +7 -0
  219. package/dist/modules/chunks/chunk-YTHGRKGI.mjs +147 -0
  220. package/dist/modules/chunks/chunk-YTHGRKGI.mjs.map +7 -0
  221. package/dist/modules/chunks/chunk-YVQSDKAO.mjs +341 -0
  222. package/dist/modules/chunks/chunk-YVQSDKAO.mjs.map +7 -0
  223. package/dist/modules/chunks/chunk-YYXQDUVT.mjs +123 -0
  224. package/dist/modules/chunks/chunk-YYXQDUVT.mjs.map +7 -0
  225. package/dist/modules/chunks/chunk-ZFXZ2NUI.mjs +142 -0
  226. package/dist/modules/chunks/chunk-ZFXZ2NUI.mjs.map +7 -0
  227. package/dist/modules/chunks/chunk-ZLNWF4ET.mjs +9 -0
  228. package/dist/modules/chunks/chunk-ZLNWF4ET.mjs.map +7 -0
  229. package/dist/modules/chunks/chunk-ZLU5QW2O.mjs +9 -0
  230. package/dist/modules/chunks/chunk-ZLU5QW2O.mjs.map +7 -0
  231. package/dist/modules/chunks/chunk-ZNZPYE2V.mjs +28 -0
  232. package/dist/modules/chunks/chunk-ZNZPYE2V.mjs.map +7 -0
  233. package/dist/modules/chunks/core-564N45MO.mjs +7480 -0
  234. package/dist/modules/chunks/core-564N45MO.mjs.map +7 -0
  235. package/dist/modules/chunks/css-BKH4SVJG.mjs +8 -0
  236. package/dist/modules/chunks/css-BKH4SVJG.mjs.map +7 -0
  237. package/dist/modules/chunks/engine-javascript-PDVIGNGR.mjs +3241 -0
  238. package/dist/modules/chunks/engine-javascript-PDVIGNGR.mjs.map +7 -0
  239. package/dist/modules/chunks/github-dark-default-6HVTHEWF.mjs +8 -0
  240. package/dist/modules/chunks/github-dark-default-6HVTHEWF.mjs.map +7 -0
  241. package/dist/modules/chunks/github-light-default-LAXRA6XL.mjs +8 -0
  242. package/dist/modules/chunks/github-light-default-LAXRA6XL.mjs.map +7 -0
  243. package/dist/modules/chunks/glsl-UC3YWUD2.mjs +18 -0
  244. package/dist/modules/chunks/glsl-UC3YWUD2.mjs.map +7 -0
  245. package/dist/modules/chunks/html-FRVIUV63.mjs +19 -0
  246. package/dist/modules/chunks/html-FRVIUV63.mjs.map +7 -0
  247. package/dist/modules/chunks/javascript-LN3OC7S2.mjs +8 -0
  248. package/dist/modules/chunks/javascript-LN3OC7S2.mjs.map +7 -0
  249. package/dist/modules/chunks/json-5CUGWTOP.mjs +11 -0
  250. package/dist/modules/chunks/json-5CUGWTOP.mjs.map +7 -0
  251. package/dist/modules/chunks/json5-YZQI5VNO.mjs +11 -0
  252. package/dist/modules/chunks/json5-YZQI5VNO.mjs.map +7 -0
  253. package/dist/modules/chunks/jsonc-SWID6VOZ.mjs +11 -0
  254. package/dist/modules/chunks/jsonc-SWID6VOZ.mjs.map +7 -0
  255. package/dist/modules/chunks/jsx-A7RDCLJO.mjs +11 -0
  256. package/dist/modules/chunks/jsx-A7RDCLJO.mjs.map +7 -0
  257. package/dist/modules/chunks/markdown-QTCU5KP5.mjs +11 -0
  258. package/dist/modules/chunks/markdown-QTCU5KP5.mjs.map +7 -0
  259. package/dist/modules/chunks/python-LAZONBIB.mjs +11 -0
  260. package/dist/modules/chunks/python-LAZONBIB.mjs.map +7 -0
  261. package/dist/modules/chunks/rust-XWTPJFJO.mjs +11 -0
  262. package/dist/modules/chunks/rust-XWTPJFJO.mjs.map +7 -0
  263. package/dist/modules/chunks/scss-CFXRHUUW.mjs +15 -0
  264. package/dist/modules/chunks/scss-CFXRHUUW.mjs.map +7 -0
  265. package/dist/modules/chunks/shellscript-OHO3LCVU.mjs +11 -0
  266. package/dist/modules/chunks/shellscript-OHO3LCVU.mjs.map +7 -0
  267. package/dist/modules/chunks/toml-IOHFZJ5B.mjs +11 -0
  268. package/dist/modules/chunks/toml-IOHFZJ5B.mjs.map +7 -0
  269. package/dist/modules/chunks/tsx-2E6WNX2E.mjs +11 -0
  270. package/dist/modules/chunks/tsx-2E6WNX2E.mjs.map +7 -0
  271. package/dist/modules/chunks/typescript-PBKAS54P.mjs +11 -0
  272. package/dist/modules/chunks/typescript-PBKAS54P.mjs.map +7 -0
  273. package/dist/modules/chunks/wgsl-PS6QPRLZ.mjs +11 -0
  274. package/dist/modules/chunks/wgsl-PS6QPRLZ.mjs.map +7 -0
  275. package/dist/modules/chunks/xml-JECR2ACB.mjs +18 -0
  276. package/dist/modules/chunks/xml-JECR2ACB.mjs.map +7 -0
  277. package/dist/modules/chunks/yaml-P2SV4LOE.mjs +11 -0
  278. package/dist/modules/chunks/yaml-P2SV4LOE.mjs.map +7 -0
  279. package/dist/modules/cli-contributions.mjs +32 -0
  280. package/dist/modules/cli-contributions.mjs.map +7 -0
  281. package/dist/modules/cli.mjs +14 -0
  282. package/dist/modules/cli.mjs.map +7 -0
  283. package/dist/modules/command-executor.mjs +65 -0
  284. package/dist/modules/command-executor.mjs.map +7 -0
  285. package/dist/modules/commands.mjs +10 -0
  286. package/dist/modules/commands.mjs.map +7 -0
  287. package/dist/modules/embedded.mjs +18608 -0
  288. package/dist/modules/embedded.mjs.map +7 -0
  289. package/dist/modules/extension-bridge.mjs +18 -0
  290. package/dist/modules/extension-bridge.mjs.map +7 -0
  291. package/dist/modules/frontend-root.mjs +61 -0
  292. package/dist/modules/frontend-root.mjs.map +7 -0
  293. package/dist/modules/index.mjs +784 -0
  294. package/dist/modules/index.mjs.map +7 -0
  295. package/dist/modules/page.mjs +45 -0
  296. package/dist/modules/page.mjs.map +7 -0
  297. package/dist/modules/pages/scene.mjs +18 -0
  298. package/dist/modules/pages/scene.mjs.map +7 -0
  299. package/dist/modules/plugin.mjs +56 -0
  300. package/dist/modules/plugin.mjs.map +7 -0
  301. package/dist/modules/plugins/asset/frontend.mjs +23 -0
  302. package/dist/modules/plugins/asset/frontend.mjs.map +7 -0
  303. package/dist/modules/plugins/asset/i18n.mjs +15 -0
  304. package/dist/modules/plugins/asset/i18n.mjs.map +7 -0
  305. package/dist/modules/plugins/asset/identity.mjs +42 -0
  306. package/dist/modules/plugins/asset/identity.mjs.map +7 -0
  307. package/dist/modules/plugins/asset/schema.mjs +10 -0
  308. package/dist/modules/plugins/asset/schema.mjs.map +7 -0
  309. package/dist/modules/plugins/asset/ui.mjs +16 -0
  310. package/dist/modules/plugins/asset/ui.mjs.map +7 -0
  311. package/dist/modules/plugins/content-browser/frontend.mjs +17 -0
  312. package/dist/modules/plugins/content-browser/frontend.mjs.map +7 -0
  313. package/dist/modules/plugins/content-browser/i18n.mjs +15 -0
  314. package/dist/modules/plugins/content-browser/i18n.mjs.map +7 -0
  315. package/dist/modules/plugins/content-browser/identity.mjs +22 -0
  316. package/dist/modules/plugins/content-browser/identity.mjs.map +7 -0
  317. package/dist/modules/plugins/content-browser/schema.mjs +12 -0
  318. package/dist/modules/plugins/content-browser/schema.mjs.map +7 -0
  319. package/dist/modules/plugins/content-browser/ui.mjs +15 -0
  320. package/dist/modules/plugins/content-browser/ui.mjs.map +7 -0
  321. package/dist/modules/plugins/display/api.mjs +10 -0
  322. package/dist/modules/plugins/display/api.mjs.map +7 -0
  323. package/dist/modules/plugins/display/backend.mjs +16 -0
  324. package/dist/modules/plugins/display/backend.mjs.map +7 -0
  325. package/dist/modules/plugins/display/carrier-contract.mjs +38 -0
  326. package/dist/modules/plugins/display/carrier-contract.mjs.map +7 -0
  327. package/dist/modules/plugins/display/carrier.mjs +13 -0
  328. package/dist/modules/plugins/display/carrier.mjs.map +7 -0
  329. package/dist/modules/plugins/display/effects.mjs +8 -0
  330. package/dist/modules/plugins/display/effects.mjs.map +7 -0
  331. package/dist/modules/plugins/display/frontend.mjs +14 -0
  332. package/dist/modules/plugins/display/frontend.mjs.map +7 -0
  333. package/dist/modules/plugins/display/i18n.mjs +58 -0
  334. package/dist/modules/plugins/display/i18n.mjs.map +7 -0
  335. package/dist/modules/plugins/display/identity.mjs +30 -0
  336. package/dist/modules/plugins/display/identity.mjs.map +7 -0
  337. package/dist/modules/plugins/display/page-broker.mjs +12 -0
  338. package/dist/modules/plugins/display/page-broker.mjs.map +7 -0
  339. package/dist/modules/plugins/display/schema.mjs +40 -0
  340. package/dist/modules/plugins/display/schema.mjs.map +7 -0
  341. package/dist/modules/plugins/display/ui.mjs +9 -0
  342. package/dist/modules/plugins/display/ui.mjs.map +7 -0
  343. package/dist/modules/plugins/inspector/frontend.mjs +17 -0
  344. package/dist/modules/plugins/inspector/frontend.mjs.map +7 -0
  345. package/dist/modules/plugins/inspector/i18n.mjs +15 -0
  346. package/dist/modules/plugins/inspector/i18n.mjs.map +7 -0
  347. package/dist/modules/plugins/inspector/identity.mjs +22 -0
  348. package/dist/modules/plugins/inspector/identity.mjs.map +7 -0
  349. package/dist/modules/plugins/inspector/schema.mjs +12 -0
  350. package/dist/modules/plugins/inspector/schema.mjs.map +7 -0
  351. package/dist/modules/plugins/inspector/ui.mjs +16 -0
  352. package/dist/modules/plugins/inspector/ui.mjs.map +7 -0
  353. package/dist/modules/plugins/material/frontend.mjs +25 -0
  354. package/dist/modules/plugins/material/frontend.mjs.map +7 -0
  355. package/dist/modules/plugins/material/i18n.mjs +15 -0
  356. package/dist/modules/plugins/material/i18n.mjs.map +7 -0
  357. package/dist/modules/plugins/material/identity.mjs +60 -0
  358. package/dist/modules/plugins/material/identity.mjs.map +7 -0
  359. package/dist/modules/plugins/material/schema.mjs +47 -0
  360. package/dist/modules/plugins/material/schema.mjs.map +7 -0
  361. package/dist/modules/plugins/material/ui.mjs +28 -0
  362. package/dist/modules/plugins/material/ui.mjs.map +7 -0
  363. package/dist/modules/plugins/mesh/frontend.mjs +23 -0
  364. package/dist/modules/plugins/mesh/frontend.mjs.map +7 -0
  365. package/dist/modules/plugins/mesh/i18n.mjs +15 -0
  366. package/dist/modules/plugins/mesh/i18n.mjs.map +7 -0
  367. package/dist/modules/plugins/mesh/identity.mjs +54 -0
  368. package/dist/modules/plugins/mesh/identity.mjs.map +7 -0
  369. package/dist/modules/plugins/mesh/schema.mjs +10 -0
  370. package/dist/modules/plugins/mesh/schema.mjs.map +7 -0
  371. package/dist/modules/plugins/mesh/ui.mjs +26 -0
  372. package/dist/modules/plugins/mesh/ui.mjs.map +7 -0
  373. package/dist/modules/plugins/plugins/api.mjs +11 -0
  374. package/dist/modules/plugins/plugins/api.mjs.map +7 -0
  375. package/dist/modules/plugins/plugins/backend.mjs +21 -0
  376. package/dist/modules/plugins/plugins/backend.mjs.map +7 -0
  377. package/dist/modules/plugins/plugins/cli.mjs +12 -0
  378. package/dist/modules/plugins/plugins/cli.mjs.map +7 -0
  379. package/dist/modules/plugins/plugins/frontend.mjs +17 -0
  380. package/dist/modules/plugins/plugins/frontend.mjs.map +7 -0
  381. package/dist/modules/plugins/plugins/i18n.mjs +15 -0
  382. package/dist/modules/plugins/plugins/i18n.mjs.map +7 -0
  383. package/dist/modules/plugins/plugins/identity.mjs +26 -0
  384. package/dist/modules/plugins/plugins/identity.mjs.map +7 -0
  385. package/dist/modules/plugins/plugins/runtime.mjs +50 -0
  386. package/dist/modules/plugins/plugins/runtime.mjs.map +7 -0
  387. package/dist/modules/plugins/plugins/schema.mjs +12 -0
  388. package/dist/modules/plugins/plugins/schema.mjs.map +7 -0
  389. package/dist/modules/plugins/plugins/ui/panel.mjs +14 -0
  390. package/dist/modules/plugins/plugins/ui/panel.mjs.map +7 -0
  391. package/dist/modules/plugins/plugins/ui.mjs +15 -0
  392. package/dist/modules/plugins/plugins/ui.mjs.map +7 -0
  393. package/dist/modules/plugins/scene/frontend.mjs +18 -0
  394. package/dist/modules/plugins/scene/frontend.mjs.map +7 -0
  395. package/dist/modules/plugins/scene/identity.mjs +14 -0
  396. package/dist/modules/plugins/scene/identity.mjs.map +7 -0
  397. package/dist/modules/plugins/scene-tree/frontend.mjs +17 -0
  398. package/dist/modules/plugins/scene-tree/frontend.mjs.map +7 -0
  399. package/dist/modules/plugins/scene-tree/i18n.mjs +15 -0
  400. package/dist/modules/plugins/scene-tree/i18n.mjs.map +7 -0
  401. package/dist/modules/plugins/scene-tree/identity.mjs +22 -0
  402. package/dist/modules/plugins/scene-tree/identity.mjs.map +7 -0
  403. package/dist/modules/plugins/scene-tree/schema.mjs +12 -0
  404. package/dist/modules/plugins/scene-tree/schema.mjs.map +7 -0
  405. package/dist/modules/plugins/scene-tree/ui.mjs +16 -0
  406. package/dist/modules/plugins/scene-tree/ui.mjs.map +7 -0
  407. package/dist/modules/plugins/texture/frontend.mjs +23 -0
  408. package/dist/modules/plugins/texture/frontend.mjs.map +7 -0
  409. package/dist/modules/plugins/texture/i18n.mjs +15 -0
  410. package/dist/modules/plugins/texture/i18n.mjs.map +7 -0
  411. package/dist/modules/plugins/texture/identity.mjs +54 -0
  412. package/dist/modules/plugins/texture/identity.mjs.map +7 -0
  413. package/dist/modules/plugins/texture/schema.mjs +10 -0
  414. package/dist/modules/plugins/texture/schema.mjs.map +7 -0
  415. package/dist/modules/plugins/texture/ui.mjs +26 -0
  416. package/dist/modules/plugins/texture/ui.mjs.map +7 -0
  417. package/dist/modules/plugins/viewport/frontend.mjs +27 -0
  418. package/dist/modules/plugins/viewport/frontend.mjs.map +7 -0
  419. package/dist/modules/plugins/viewport/identity.mjs +28 -0
  420. package/dist/modules/plugins/viewport/identity.mjs.map +7 -0
  421. package/dist/modules/plugins/viewport/presentation-identity.mjs +10 -0
  422. package/dist/modules/plugins/viewport/presentation-identity.mjs.map +7 -0
  423. package/dist/modules/plugins/viewport/presentation.mjs +18 -0
  424. package/dist/modules/plugins/viewport/presentation.mjs.map +7 -0
  425. package/dist/modules/plugins/viewport/schema.mjs +18 -0
  426. package/dist/modules/plugins/viewport/schema.mjs.map +7 -0
  427. package/dist/modules/plugins/viewport/workspace-shell.mjs +29 -0
  428. package/dist/modules/plugins/viewport/workspace-shell.mjs.map +7 -0
  429. package/dist/modules/shell/contract.mjs +10 -0
  430. package/dist/modules/shell/contract.mjs.map +7 -0
  431. package/dist/modules/shell/frontend.mjs +14 -0
  432. package/dist/modules/shell/frontend.mjs.map +7 -0
  433. package/dist/modules/shell/layout-zones.mjs +20 -0
  434. package/dist/modules/shell/layout-zones.mjs.map +7 -0
  435. package/dist/modules/start-cli.mjs +57 -0
  436. package/dist/modules/start-cli.mjs.map +7 -0
  437. package/dist/modules/start.mjs +18 -0
  438. package/dist/modules/start.mjs.map +7 -0
  439. package/dist/modules/viewer/catalog/backend.mjs +47 -0
  440. package/dist/modules/viewer/catalog/backend.mjs.map +7 -0
  441. package/dist/modules/viewer/catalog/frontend.mjs +55 -0
  442. package/dist/modules/viewer/catalog/frontend.mjs.map +7 -0
  443. package/dist/modules/viewer/catalog/shared.mjs +43 -0
  444. package/dist/modules/viewer/catalog/shared.mjs.map +7 -0
  445. package/dist/modules/viewer/catalog.mjs +85 -0
  446. package/dist/modules/viewer/catalog.mjs.map +7 -0
  447. package/dist/modules/viewer/cli.mjs +23 -0
  448. package/dist/modules/viewer/cli.mjs.map +7 -0
  449. package/dist/modules/viewer-host/frontend.mjs +65 -0
  450. package/dist/modules/viewer-host/frontend.mjs.map +7 -0
  451. package/dist/modules/viewer-host/page-registry.mjs +27 -0
  452. package/dist/modules/viewer-host/page-registry.mjs.map +7 -0
  453. package/dist/modules/viewer-host/slot-registry.mjs +8 -0
  454. package/dist/modules/viewer-host/slot-registry.mjs.map +7 -0
  455. package/dist/modules/viewer-host.mjs +43 -0
  456. package/dist/modules/viewer-host.mjs.map +7 -0
  457. package/dist/modules/viewer.mjs +85 -0
  458. package/dist/modules/viewer.mjs.map +7 -0
  459. package/dist/modules/workspace/adopt-surface.mjs +16 -0
  460. package/dist/modules/workspace/adopt-surface.mjs.map +7 -0
  461. package/dist/modules/workspace/api.mjs +8 -0
  462. package/dist/modules/workspace/api.mjs.map +7 -0
  463. package/dist/modules/workspace/backend.mjs +23 -0
  464. package/dist/modules/workspace/backend.mjs.map +7 -0
  465. package/dist/modules/workspace/broker.mjs +16 -0
  466. package/dist/modules/workspace/broker.mjs.map +7 -0
  467. package/dist/modules/workspace/cli.mjs +9 -0
  468. package/dist/modules/workspace/cli.mjs.map +7 -0
  469. package/dist/modules/workspace/client.mjs +15 -0
  470. package/dist/modules/workspace/client.mjs.map +7 -0
  471. package/dist/modules/workspace/command-error.mjs +16 -0
  472. package/dist/modules/workspace/command-error.mjs.map +7 -0
  473. package/dist/modules/workspace/contract.mjs +71 -0
  474. package/dist/modules/workspace/contract.mjs.map +7 -0
  475. package/dist/modules/workspace/demo-client.mjs +127 -0
  476. package/dist/modules/workspace/demo-client.mjs.map +7 -0
  477. package/dist/modules/workspace/engine-adapter.mjs +16 -0
  478. package/dist/modules/workspace/engine-adapter.mjs.map +7 -0
  479. package/dist/modules/workspace/engine-presentation.mjs +10 -0
  480. package/dist/modules/workspace/engine-presentation.mjs.map +7 -0
  481. package/dist/modules/workspace/extension-bridge.mjs +18 -0
  482. package/dist/modules/workspace/extension-bridge.mjs.map +7 -0
  483. package/dist/modules/workspace/frontend-plugin.mjs +18 -0
  484. package/dist/modules/workspace/frontend-plugin.mjs.map +7 -0
  485. package/dist/modules/workspace/frontend.mjs +29 -0
  486. package/dist/modules/workspace/frontend.mjs.map +7 -0
  487. package/dist/modules/workspace/id.mjs +8 -0
  488. package/dist/modules/workspace/id.mjs.map +7 -0
  489. package/dist/modules/workspace/inspection-presentation.mjs +12 -0
  490. package/dist/modules/workspace/inspection-presentation.mjs.map +7 -0
  491. package/dist/modules/workspace/locale-bridge.mjs +14 -0
  492. package/dist/modules/workspace/locale-bridge.mjs.map +7 -0
  493. package/dist/modules/workspace/page-title.mjs +13 -0
  494. package/dist/modules/workspace/page-title.mjs.map +7 -0
  495. package/dist/modules/workspace/presentation.mjs +18 -0
  496. package/dist/modules/workspace/presentation.mjs.map +7 -0
  497. package/dist/modules/workspace/preview-surface.mjs +17 -0
  498. package/dist/modules/workspace/preview-surface.mjs.map +7 -0
  499. package/dist/modules/workspace/project-session.mjs +18 -0
  500. package/dist/modules/workspace/project-session.mjs.map +7 -0
  501. package/dist/modules/workspace/render-resize-sync.mjs +12 -0
  502. package/dist/modules/workspace/render-resize-sync.mjs.map +7 -0
  503. package/dist/modules/workspace/resident.mjs +16 -0
  504. package/dist/modules/workspace/resident.mjs.map +7 -0
  505. package/dist/modules/workspace/resource-open.mjs +34 -0
  506. package/dist/modules/workspace/resource-open.mjs.map +7 -0
  507. package/dist/modules/workspace/resource-page.mjs +27 -0
  508. package/dist/modules/workspace/resource-page.mjs.map +7 -0
  509. package/dist/modules/workspace/tool-runtime.mjs +14 -0
  510. package/dist/modules/workspace/tool-runtime.mjs.map +7 -0
  511. package/dist/modules/workspace/view-trace.mjs +60 -0
  512. package/dist/modules/workspace/view-trace.mjs.map +7 -0
  513. package/dist/modules/workspace/workspace-client-connection.mjs +22 -0
  514. package/dist/modules/workspace/workspace-client-connection.mjs.map +7 -0
  515. package/dist/modules/workspace/workspace-recovery.mjs +35 -0
  516. package/dist/modules/workspace/workspace-recovery.mjs.map +7 -0
  517. package/dist/modules/workspace/workspace-state.mjs +12 -0
  518. package/dist/modules/workspace/workspace-state.mjs.map +7 -0
  519. package/dist/modules/workspace-frontend.mjs +17 -0
  520. package/dist/modules/workspace-frontend.mjs.map +7 -0
  521. package/dist/viewer/assets/chunk-CilyBKbf.js +1 -0
  522. package/dist/viewer/assets/core-DSQma37-.js +13 -0
  523. package/dist/viewer/assets/core-DSQma37-.js.map +1 -0
  524. package/dist/viewer/assets/css-Bq1BXecw.js +2 -0
  525. package/dist/viewer/assets/css-Bq1BXecw.js.map +1 -0
  526. package/dist/viewer/assets/css-CWQWazmX.js +1 -0
  527. package/dist/viewer/assets/embedded-D4ZDx--W.js +2 -0
  528. package/dist/viewer/assets/embedded-D4ZDx--W.js.map +1 -0
  529. package/dist/viewer/assets/engine-javascript-BvokIV9O.js +142 -0
  530. package/dist/viewer/assets/engine-javascript-BvokIV9O.js.map +1 -0
  531. package/dist/viewer/assets/github-dark-default-DaDlj-WZ.js +2 -0
  532. package/dist/viewer/assets/github-dark-default-DaDlj-WZ.js.map +1 -0
  533. package/dist/viewer/assets/github-light-default-BqhWxAZd.js +2 -0
  534. package/dist/viewer/assets/github-light-default-BqhWxAZd.js.map +1 -0
  535. package/dist/viewer/assets/glsl-BJgVnv11.js +2 -0
  536. package/dist/viewer/assets/glsl-BJgVnv11.js.map +1 -0
  537. package/dist/viewer/assets/html-AaaHGGyt.js +2 -0
  538. package/dist/viewer/assets/html-AaaHGGyt.js.map +1 -0
  539. package/dist/viewer/assets/javascript-BX9W64FE.js +1 -0
  540. package/dist/viewer/assets/javascript-DQODvD07.js +2 -0
  541. package/dist/viewer/assets/javascript-DQODvD07.js.map +1 -0
  542. package/dist/viewer/assets/json-CpcIDpT7.js +2 -0
  543. package/dist/viewer/assets/json-CpcIDpT7.js.map +1 -0
  544. package/dist/viewer/assets/json5-Czq4A7dk.js +2 -0
  545. package/dist/viewer/assets/json5-Czq4A7dk.js.map +1 -0
  546. package/dist/viewer/assets/jsonc-BXDfCMmu.js +2 -0
  547. package/dist/viewer/assets/jsonc-BXDfCMmu.js.map +1 -0
  548. package/dist/viewer/assets/jsx-DAWscEnf.js +2 -0
  549. package/dist/viewer/assets/jsx-DAWscEnf.js.map +1 -0
  550. package/dist/viewer/assets/main-C-2CHTN_.js +15 -0
  551. package/dist/viewer/assets/main-C-2CHTN_.js.map +1 -0
  552. package/dist/viewer/assets/markdown-Cx1FMNw-.js +2 -0
  553. package/dist/viewer/assets/markdown-Cx1FMNw-.js.map +1 -0
  554. package/dist/viewer/assets/panels-entry-Ddhfjgf0.js +46 -0
  555. package/dist/viewer/assets/panels-entry-Ddhfjgf0.js.map +1 -0
  556. package/dist/viewer/assets/python-CYPKjWV9.js +2 -0
  557. package/dist/viewer/assets/python-CYPKjWV9.js.map +1 -0
  558. package/dist/viewer/assets/rust-0e5cNx_V.js +2 -0
  559. package/dist/viewer/assets/rust-0e5cNx_V.js.map +1 -0
  560. package/dist/viewer/assets/scss-B-aKzLbT.js +2 -0
  561. package/dist/viewer/assets/scss-B-aKzLbT.js.map +1 -0
  562. package/dist/viewer/assets/shellscript-CpXD-pSm.js +2 -0
  563. package/dist/viewer/assets/shellscript-CpXD-pSm.js.map +1 -0
  564. package/dist/viewer/assets/style-ClttNKZk.css +2 -0
  565. package/dist/viewer/assets/styles-BXozhwiU.js +11 -0
  566. package/dist/viewer/assets/styles-BXozhwiU.js.map +1 -0
  567. package/dist/viewer/assets/toml-GmchYTXa.js +2 -0
  568. package/dist/viewer/assets/toml-GmchYTXa.js.map +1 -0
  569. package/dist/viewer/assets/tsx-Crj1Bi53.js +2 -0
  570. package/dist/viewer/assets/tsx-Crj1Bi53.js.map +1 -0
  571. package/dist/viewer/assets/typescript-xi0cSHCO.js +2 -0
  572. package/dist/viewer/assets/typescript-xi0cSHCO.js.map +1 -0
  573. package/dist/viewer/assets/wgsl-BoEPRo9U.js +2 -0
  574. package/dist/viewer/assets/wgsl-BoEPRo9U.js.map +1 -0
  575. package/dist/viewer/assets/xml-B8JqQrMD.js +2 -0
  576. package/dist/viewer/assets/xml-B8JqQrMD.js.map +1 -0
  577. package/dist/viewer/assets/yaml-DsIB85X9.js +2 -0
  578. package/dist/viewer/assets/yaml-DsIB85X9.js.map +1 -0
  579. package/dist/viewer/index.html +15 -0
  580. package/dist/viewer/panels.js +1 -0
  581. package/host.pack.json +13 -0
  582. package/package.json +174 -0
  583. package/skills/forgeax-view-cli/SKILL.md +74 -0
  584. package/skills/forgeax-view-start/SKILL.md +202 -0
  585. package/skills/forgeax-view-start/scripts/start-view.mjs +202 -0
@@ -0,0 +1,46 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/javascript-BX9W64FE.js","assets/javascript-DQODvD07.js","assets/css-CWQWazmX.js","assets/css-Bq1BXecw.js","assets/scss-B-aKzLbT.js","assets/html-AaaHGGyt.js","assets/core-DSQma37-.js","assets/chunk-CilyBKbf.js"])))=>i.map(i=>d[i]);
2
+ import{n as e,r as t}from"./chunk-CilyBKbf.js";import{$t as n,At as r,Bt as i,Ct as a,Dt as o,Et as s,Ft as c,Gt as l,Ht as u,It as d,J as f,Jt as p,Kt as m,Lt as h,Mt as g,Nt as _,O as v,Ot as y,Pt as b,Qt as x,Tt as S,Ut as C,Vt as w,Wt as T,Xt as E,Y as D,Yt as O,Z as ee,Zt as k,an as A,b as j,bt as te,c as ne,cn as re,dt as M,f as ie,ft as ae,g as N,gt as oe,ht as se,in as P,jt as F,k as I,kt as ce,lt as le,mt as ue,n as L,nn as de,on as fe,ot as R,pt as pe,qt as me,rn as he,sn as ge,tn as z,tt as B,vt as V,wt as _e,xt as H,zt as ve}from"./styles-BXozhwiU.js";var U=t(re(),1);function ye(e){let t=e?.transport;return!!(t&&typeof t.request==`function`&&t.connected!==!1)}function be(e){return(0,U.useSyncExternalStore)(t=>e?.onDisconnect?.(t)??(()=>{}),()=>ye(e),()=>ye(e))}var xe=A(`ArrowDownWideNarrow`,[[`path`,{d:`m3 16 4 4 4-4`,key:`1co6wj`}],[`path`,{d:`M7 20V4`,key:`1yoxec`}],[`path`,{d:`M11 4h10`,key:`1w87gc`}],[`path`,{d:`M11 8h7`,key:`djye34`}],[`path`,{d:`M11 12h4`,key:`q8tih4`}]]),Se=A(`ArrowUpDown`,[[`path`,{d:`m21 16-4 4-4-4`,key:`f6ql7i`}],[`path`,{d:`M17 20V4`,key:`1ejh1v`}],[`path`,{d:`m3 8 4-4 4 4`,key:`11wl7u`}],[`path`,{d:`M7 4v16`,key:`1glfcx`}]]),Ce=A(`ArrowUpNarrowWide`,[[`path`,{d:`m3 8 4-4 4 4`,key:`11wl7u`}],[`path`,{d:`M7 4v16`,key:`1glfcx`}],[`path`,{d:`M11 12h4`,key:`q8tih4`}],[`path`,{d:`M11 16h7`,key:`uosisv`}],[`path`,{d:`M11 20h10`,key:`jvxblo`}]]),we=A(`Bone`,[[`path`,{d:`M17 10c.7-.7 1.69 0 2.5 0a2.5 2.5 0 1 0 0-5 .5.5 0 0 1-.5-.5 2.5 2.5 0 1 0-5 0c0 .81.7 1.8 0 2.5l-7 7c-.7.7-1.69 0-2.5 0a2.5 2.5 0 0 0 0 5c.28 0 .5.22.5.5a2.5 2.5 0 1 0 5 0c0-.81-.7-1.8 0-2.5Z`,key:`w610uw`}]]),Te=A(`Braces`,[[`path`,{d:`M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1`,key:`ezmyqa`}],[`path`,{d:`M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1`,key:`e1hn23`}]]),Ee=A(`Camera`,[[`path`,{d:`M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3l-2.5-3z`,key:`1tc9qg`}],[`circle`,{cx:`12`,cy:`13`,r:`3`,key:`1vg3eu`}]]),De=A(`CaseSensitive`,[[`path`,{d:`m3 15 4-8 4 8`,key:`1vwr6u`}],[`path`,{d:`M4 13h6`,key:`1r9ots`}],[`circle`,{cx:`18`,cy:`12`,r:`3`,key:`1kchzo`}],[`path`,{d:`M21 9v6`,key:`anns31`}]]),Oe=A(`ChevronLeft`,[[`path`,{d:`m15 18-6-6 6-6`,key:`1wnfg3`}]]),ke=A(`CircleUserRound`,[[`path`,{d:`M18 20a6 6 0 0 0-12 0`,key:`1qehca`}],[`circle`,{cx:`12`,cy:`10`,r:`4`,key:`1h16sb`}],[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]]),Ae=A(`Clock`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`polyline`,{points:`12 6 12 12 16 14`,key:`68esgv`}]]),je=A(`Crosshair`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`22`,x2:`18`,y1:`12`,y2:`12`,key:`l9bcsi`}],[`line`,{x1:`6`,x2:`2`,y1:`12`,y2:`12`,key:`13hhkx`}],[`line`,{x1:`12`,x2:`12`,y1:`6`,y2:`2`,key:`10w3f3`}],[`line`,{x1:`12`,x2:`12`,y1:`22`,y2:`18`,key:`15g9kq`}]]),Me=A(`Database`,[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`,key:`msslwz`}],[`path`,{d:`M3 5V19A9 3 0 0 0 21 19V5`,key:`1wlel7`}],[`path`,{d:`M3 12A9 3 0 0 0 21 12`,key:`mv7ke4`}]]),Ne=A(`Ellipsis`,[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`19`,cy:`12`,r:`1`,key:`1wjl8i`}],[`circle`,{cx:`5`,cy:`12`,r:`1`,key:`1pcz8c`}]]),Pe=A(`Film`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M7 3v18`,key:`bbkbws`}],[`path`,{d:`M3 7.5h4`,key:`zfgn84`}],[`path`,{d:`M3 12h18`,key:`1i2n21`}],[`path`,{d:`M3 16.5h4`,key:`1230mu`}],[`path`,{d:`M17 3v18`,key:`in4fa5`}],[`path`,{d:`M17 7.5h4`,key:`myr1c1`}],[`path`,{d:`M17 16.5h4`,key:`go4c1d`}]]),Fe=A(`Filter`,[[`polygon`,{points:`22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3`,key:`1yg77f`}]]),Ie=A(`Focus`,[[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}],[`path`,{d:`M3 7V5a2 2 0 0 1 2-2h2`,key:`aa7l1z`}],[`path`,{d:`M17 3h2a2 2 0 0 1 2 2v2`,key:`4qcy5o`}],[`path`,{d:`M21 17v2a2 2 0 0 1-2 2h-2`,key:`6vwrx8`}],[`path`,{d:`M7 21H5a2 2 0 0 1-2-2v-2`,key:`ioqczr`}]]),Le=A(`FolderOpen`,[[`path`,{d:`m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2`,key:`usdka0`}]]),Re=A(`Folder`,[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]),ze=A(`Globe`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20`,key:`13o1zl`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}]]),Be=A(`Grid2x2`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M3 12h18`,key:`1i2n21`}],[`path`,{d:`M12 3v18`,key:`108xh3`}]]),Ve=A(`HardDrive`,[[`line`,{x1:`22`,x2:`2`,y1:`12`,y2:`12`,key:`1y58io`}],[`path`,{d:`M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z`,key:`oot6mr`}],[`line`,{x1:`6`,x2:`6.01`,y1:`16`,y2:`16`,key:`sgf278`}],[`line`,{x1:`10`,x2:`10.01`,y1:`16`,y2:`16`,key:`1l4acy`}]]),He=A(`Hexagon`,[[`path`,{d:`M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z`,key:`yt0hxn`}]]),W=A(`Layers`,[[`path`,{d:`m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z`,key:`8b97xw`}],[`path`,{d:`m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65`,key:`dd6zsq`}],[`path`,{d:`m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65`,key:`ep9fru`}]]),Ue=A(`Lightbulb`,[[`path`,{d:`M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5`,key:`1gvzjb`}],[`path`,{d:`M9 18h6`,key:`x1upvd`}],[`path`,{d:`M10 22h4`,key:`ceow96`}]]),We=A(`List`,[[`path`,{d:`M3 12h.01`,key:`nlz23k`}],[`path`,{d:`M3 18h.01`,key:`1tta3j`}],[`path`,{d:`M3 6h.01`,key:`1rqtza`}],[`path`,{d:`M8 12h13`,key:`1za7za`}],[`path`,{d:`M8 18h13`,key:`1lx6n3`}],[`path`,{d:`M8 6h13`,key:`ik3vkj`}]]),Ge=A(`Maximize2`,[[`polyline`,{points:`15 3 21 3 21 9`,key:`mznyad`}],[`polyline`,{points:`9 21 3 21 3 15`,key:`1avn1i`}],[`line`,{x1:`21`,x2:`14`,y1:`3`,y2:`10`,key:`ota7mn`}],[`line`,{x1:`3`,x2:`10`,y1:`21`,y2:`14`,key:`1atl0r`}]]),Ke=A(`Minimize2`,[[`polyline`,{points:`4 14 10 14 10 20`,key:`11kfnr`}],[`polyline`,{points:`20 10 14 10 14 4`,key:`rlmsce`}],[`line`,{x1:`14`,x2:`21`,y1:`10`,y2:`3`,key:`o5lafz`}],[`line`,{x1:`3`,x2:`10`,y1:`21`,y2:`14`,key:`1atl0r`}]]),qe=A(`MousePointer2`,[[`path`,{d:`M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z`,key:`edeuup`}]]),Je=A(`Move3d`,[[`path`,{d:`M5 3v16h16`,key:`1mqmf9`}],[`path`,{d:`m5 19 6-6`,key:`jh6hbb`}],[`path`,{d:`m2 6 3-3 3 3`,key:`tkyvxa`}],[`path`,{d:`m18 16 3 3-3 3`,key:`1d4glt`}]]),Ye=A(`Paintbrush`,[[`path`,{d:`m14.622 17.897-10.68-2.913`,key:`vj2p1u`}],[`path`,{d:`M18.376 2.622a1 1 0 1 1 3.002 3.002L17.36 9.643a.5.5 0 0 0 0 .707l.944.944a2.41 2.41 0 0 1 0 3.408l-.944.944a.5.5 0 0 1-.707 0L8.354 7.348a.5.5 0 0 1 0-.707l.944-.944a2.41 2.41 0 0 1 3.408 0l.944.944a.5.5 0 0 0 .707 0z`,key:`18tc5c`}],[`path`,{d:`M9 8c-1.804 2.71-3.97 3.46-6.583 3.948a.507.507 0 0 0-.302.819l7.32 8.883a1 1 0 0 0 1.185.204C12.735 20.405 16 16.792 16 15`,key:`ytzfxy`}]]),Xe=A(`SearchX`,[[`path`,{d:`m13.5 8.5-5 5`,key:`1cs55j`}],[`path`,{d:`m8.5 8.5 5 5`,key:`a8mexj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}],[`path`,{d:`m21 21-4.3-4.3`,key:`1qie3q`}]]),Ze=A(`Settings`,[[`path`,{d:`M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z`,key:`1qme2f`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),Qe=A(`Shapes`,[[`path`,{d:`M8.3 10a.7.7 0 0 1-.626-1.079L11.4 3a.7.7 0 0 1 1.198-.043L16.3 8.9a.7.7 0 0 1-.572 1.1Z`,key:`1bo67w`}],[`rect`,{x:`3`,y:`14`,width:`7`,height:`7`,rx:`1`,key:`1bkyp8`}],[`circle`,{cx:`17.5`,cy:`17.5`,r:`3.5`,key:`w3z12y`}]]),$e=A(`ShieldCheck`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),et=A(`SlidersHorizontal`,[[`line`,{x1:`21`,x2:`14`,y1:`4`,y2:`4`,key:`obuewd`}],[`line`,{x1:`10`,x2:`3`,y1:`4`,y2:`4`,key:`1q6298`}],[`line`,{x1:`21`,x2:`12`,y1:`12`,y2:`12`,key:`1iu8h1`}],[`line`,{x1:`8`,x2:`3`,y1:`12`,y2:`12`,key:`ntss68`}],[`line`,{x1:`21`,x2:`16`,y1:`20`,y2:`20`,key:`14d8ph`}],[`line`,{x1:`12`,x2:`3`,y1:`20`,y2:`20`,key:`m0wm8r`}],[`line`,{x1:`14`,x2:`14`,y1:`2`,y2:`6`,key:`14e1ph`}],[`line`,{x1:`8`,x2:`8`,y1:`10`,y2:`14`,key:`1i6ji0`}],[`line`,{x1:`16`,x2:`16`,y1:`18`,y2:`22`,key:`1lctlv`}]]),tt=A(`StarOff`,[[`path`,{d:`M8.34 8.34 2 9.27l5 4.87L5.82 21 12 17.77 18.18 21l-.59-3.43`,key:`16m0ql`}],[`path`,{d:`M18.42 12.76 22 9.27l-6.91-1L12 2l-1.44 2.91`,key:`1vt8nq`}],[`line`,{x1:`2`,x2:`22`,y1:`2`,y2:`22`,key:`a6p6uj`}]]),nt=A(`Star`,[[`path`,{d:`M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z`,key:`r04s7s`}]]),rt=A(`Table2`,[[`path`,{d:`M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18`,key:`gugj83`}]]);function G(e){if(e==null)return``;let t=String(e);return t?t.replace(/([a-z0-9])([A-Z])/g,`$1 $2`).replace(/([A-Z]+)([A-Z][a-z])/g,`$1 $2`).split(/[\s_-]+/).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(` `):``}function it(e){return!Array.isArray(e)||e.length===0||!e.every(e=>typeof e==`number`&&Number.isFinite(e))?null:e}function at(e){return typeof e==`string`?e.toLowerCase():e&&typeof e==`object`&&typeof e.type==`string`?e.type.toLowerCase():``}var ot=/^#(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/;function st(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e,n=t.guid??t.id;return typeof n!=`string`||n.trim()===``?!1:Object.values(t).every(e=>typeof e!=`object`||!e)}function ct(e,t){let n=at(e);if(typeof t==`boolean`||n.includes(`bool`))return`bool`;if(typeof t==`number`||n===`f32`||n===`f64`||n===`i32`||n===`u32`||n===`number`)return`number`;let r=it(t);if(r?.length===3)return`vector3`;if(r?.length===4)return`vector4`;if(t&&typeof t==`object`&&!Array.isArray(t)){let e=t;if(typeof e.x==`number`&&typeof e.y==`number`&&typeof e.z==`number`)return typeof e.w==`number`?`vector4`:`vector3`}return n.includes(`enum`)||e&&typeof e==`object`&&Array.isArray(e.enum)?`enum`:n.includes(`color`)||typeof t==`string`&&ot.test(t)?`color`:n.includes(`asset`)||n.includes(`guid`)||n.includes(`ref`)||st(t)?`asset`:`text`}function lt(e,t){if(e===void 0)return`Unavailable`;if(t===`vector3`){let t=it(e);if(t?.length===3)return{x:t[0],y:t[1],z:t[2]};if(e&&typeof e==`object`&&!Array.isArray(e)){let t=e;return{x:t.x??0,y:t.y??0,z:t.z??0}}return{x:0,y:0,z:0}}if(t===`vector4`){let t=it(e);if(t?.length===4)return{x:t[0],y:t[1],z:t[2],w:t[3]};if(e&&typeof e==`object`&&!Array.isArray(e)){let t=e;return{x:t.x??0,y:t.y??0,z:t.z??0,w:t.w??0}}return{x:0,y:0,z:0,w:0}}if(t===`asset`&&e&&typeof e==`object`&&!Array.isArray(e)){let t=e;return String(t.name??t.guid??t.id??``)}return t===`bool`||t===`number`?e:typeof e==`object`?JSON.stringify(e):e}function ut(e,t,n,r,i){return Object.freeze({key:e,label:t,kind:n,value:lt(r,n),...i===void 0?{}:{options:Object.freeze([...i])}})}function dt(e){return Object.freeze({key:e.key,name:e.name,category:e.category,fields:Object.freeze(e.fields),groups:Object.freeze(e.groups)})}function ft(e){return!Array.isArray(e)||e.length===0||!e.every(e=>e&&typeof e==`object`&&!Array.isArray(e))?null:e}function pt(e,t){let n=[],r=[];for(let[i,a]of Object.entries(e)){if(a==null||typeof a==`string`&&a.trim()===``)continue;let e=t?`${t}.${i}`:i,o=G(i),s=ft(a);if(s){let t=ht(s,e,o);t&&r.push(t);continue}let c=ct(void 0,a);if(a&&typeof a==`object`&&!Array.isArray(a)&&c!==`vector3`&&c!==`vector4`&&c!==`asset`){let t=mt(a,e,o,`all`);t&&r.push(t);continue}n.push(ut(i,o,c,a))}return{fields:n,groups:r}}function mt(e,t,n,r){let i=pt(e,t);return i.fields.length===0&&i.groups.length===0?null:dt({key:t,name:n,category:r,fields:i.fields,groups:i.groups})}function ht(e,t,n){let r=[];for(let[n,i]of e.entries()){let e=i.name??i.id??i.slotName??i.guid??String(n),a=mt(i,`${t}.${n}`,G(String(e)),`type`);a&&r.push(a)}return r.length===0?null:dt({key:t,name:n,category:`capability`,fields:[],groups:r})}function gt(e){let t=e.asset&&typeof e.asset==`object`?e.asset:{},n=[[`guid`,`GUID`,e.guid??t.guid],[`kind`,`Kind`,t.kind],[`name`,`Name`,t.name],[`path`,`Path`,t.path],[`source`,`Source`,e.source?.path??t.sourcePath],[`revision`,`Revision`,e.revision??t.revision??e.source?.revision],[`package`,`Package`,t.packageId??t.packageUrl],[`ddc`,`DDC`,e.ddc?.state]],r=[];for(let[e,t,i]of n)i!=null&&(typeof i==`string`&&i.trim()===``||r.push(ut(e,t,ct(void 0,i),i)));return r}function _t(e,t={}){if(!e||typeof e!=`object`||Array.isArray(e))return Object.freeze([]);let n=t.identityTitle??`Asset`,r=gt(e),i=e.meta,a=[],o=[];if(i&&typeof i==`object`&&!Array.isArray(i)){let e=pt(i,`meta`);a=e.fields,o=e.groups}let s=[],c=[...r,...a];return c.length&&s.push(dt({key:`identity`,name:n,category:`type`,fields:c,groups:[]})),s.push(...o),Object.freeze(s)}var K=ge(),vt={readOnly:!0,tabIndex:-1};function yt({axes:e,vector:t}){return(0,K.jsx)(`span`,{className:`fx-inspector-form__vec${e.length>3?` fx-inspector-form__vec--4`:``}`,children:e.map(e=>(0,K.jsxs)(`span`,{className:`fx-inspector-form__vcell fx-inspector-form__vcell--${e}`,children:[(0,K.jsx)(`span`,{className:`fx-inspector-form__axis`,children:e.toUpperCase()}),(0,K.jsx)(`span`,{className:`fx-inspector-form__numfield`,children:(0,K.jsx)(d,{className:`fx-inspector-form__input fx-inspector-form__input--number`,type:`number`,value:t[e],...vt})})]},e))})}function bt({field:e}){if(e.kind===`vector3`&&typeof e.value==`object`&&e.value!==null){let t=e.value;return(0,K.jsx)(yt,{axes:[`x`,`y`,`z`],vector:{...t,w:0}})}if(e.kind===`vector4`&&typeof e.value==`object`&&e.value!==null){let t=e.value;return(0,K.jsx)(yt,{axes:[`x`,`y`,`z`,`w`],vector:t})}if(e.kind===`bool`)return(0,K.jsx)(ue,{className:`fx-inspector-form__checkbox`,checked:e.value===!0,disabled:!0,hideLabel:!0,label:e.label});if(e.kind===`enum`)return(0,K.jsx)(`span`,{className:`fx-inspector-form__select`,children:(0,K.jsx)(r,{className:`fx-inspector-form__input`,value:String(e.value),disabled:!0,children:(e.options??[String(e.value)]).map(e=>(0,K.jsx)(`option`,{value:e,children:e},e))})});if(e.kind===`color`)return(0,K.jsxs)(`span`,{className:`fx-inspector-form__color`,children:[(0,K.jsx)(`span`,{className:`fx-inspector-form__swatch`,"aria-hidden":!0,style:{background:String(e.value)}}),(0,K.jsx)(d,{className:`fx-inspector-form__input fx-inspector-form__input--hex`,value:String(e.value),...vt})]});if(e.kind===`asset`){let t=!String(e.value);return(0,K.jsxs)(`span`,{className:`fx-inspector-form__asset`,children:[(0,K.jsx)(`span`,{className:`fx-inspector-form__asset-thumb${t?` is-empty`:``}`,children:t?null:(0,K.jsx)(P,{size:16})}),(0,K.jsx)(`span`,{className:`fx-inspector-form__asset-body`,children:(0,K.jsx)(`span`,{className:`fx-inspector-form__asset-combo`,children:(0,K.jsx)(`span`,{className:`fx-inspector-form__asset-label${t?` is-empty`:``}`,children:t?`None`:String(e.value)})})})]})}return(0,K.jsx)(`span`,{className:e.kind===`number`?`fx-inspector-form__numfield fx-inspector-form__numfield--solo`:void 0,children:(0,K.jsx)(d,{className:`fx-inspector-form__input ${e.kind===`number`?`fx-inspector-form__input--number`:`fx-inspector-form__input--text`}`,type:e.kind===`number`?`number`:`text`,value:String(e.value),...vt})})}function xt({group:e,nested:t=!1}){let[n,r]=(0,U.useState)(!0);return(0,K.jsx)(`div`,{className:`fx-inspector-form__group fx-inspector-form__group--${e.category===`all`?`all`:e.category===`capability`?`cap`:`type`}${t?` is-nested`:``}`,children:(0,K.jsx)(se,{open:n,onOpenChange:r,title:(0,K.jsxs)(`span`,{className:`fx-inspector-form__title`,children:[(0,K.jsx)(`span`,{className:`fx-inspector-form__icon`,children:(0,K.jsx)(P,{size:13,strokeWidth:1.7})}),(0,K.jsx)(`span`,{children:e.name})]}),children:(0,K.jsxs)(`div`,{className:`fx-inspector-form__fields`,children:[e.fields.map(t=>(0,K.jsx)(`div`,{className:`fx-inspector-form__row`,"data-testid":`inspector-form-field-${e.key}-${t.key}`,children:(0,K.jsx)(o,{className:`fx-inspector-form__property`,label:(0,K.jsx)(`span`,{title:t.key,children:t.label}),children:(0,K.jsx)(bt,{field:t})})},t.key)),(e.groups??[]).map(e=>(0,K.jsx)(xt,{group:e,nested:!0},e.key))]})})})}function St({groups:e,inspection:t,identityTitle:n,className:r,empty:i}){let a=e??_t(t,{identityTitle:n});return a.length===0?i??null:(0,K.jsx)(`div`,{className:[`fx-inspector-form`,r].filter(Boolean).join(` `),"data-view-readonly":`true`,children:a.map(e=>(0,K.jsx)(xt,{group:e},e.key))})}var Ct={contentBrowser:{title:`Assets`,search:`Search assets`,empty:`No assets in project`,noProject:`No project open`,openProjectHint:`Open a project using the project path in the header to browse its assets.`,openHint:`Open the selected item. You can also double-click or press Enter.`,opening:`Opening…`,unavailable:`Workspace unavailable`,favorites:`Favorites`,noFavorites:`No favorites yet`,all:`All`,back:`Back`,forward:`Forward`,refresh:`Refresh`,settings:`Content Browser settings`,layout:`Layout`,layoutGrid:`Tiles`,layoutList:`List`,layoutColumn:`Details`,thumbnailSize:`Thumbnail size`,filterAll:`All`,filterByType:`Filter by type`,fileTypeSection:`File Type`,assetTypeSection:`Asset Type`,clearFilters:`Clear all filters`,sortBy:`Sort by`,sortName:`Name`,sortKind:`Type`,sortSize:`Size`,sortModified:`Modified`,searchPlaceholder:`Search assets…`,emptyTitle:`No matching assets`,emptyDescription:`Adjust search or filters and try again.`,unavailableDescription:`The workspace API is not connected.`,loadErrorDescription:`Could not load assets from the workspace. See the error notice for details.`,statusCount:`{{count}} items`,statusSelected:`{{count}} items · {{selected}} selected`,favorite:`Favorite`,unfavorite:`Remove from favorites`,contextMenu:`Content Browser actions`,readOnlyTitle:`Read-only Content Browser`,sort:{name:`Name`,kind:`Kind`,modified:`Modified`,size:`Size`,by:`Sort by`,order:`Order`,asc:`Ascending`,desc:`Descending`},details:{colName:`Name`,colType:`Type`,colSize:`Size`,colModified:`Modified`,typeFolder:`Folder`,itemCount:`{{count}} items`},actions:{detailPanel:`Details panel`,thumbnailSize:`Thumbnail size: {{size}}px`,resizePreview:`Drag to resize preview`,resizeFolderTree:`Drag to resize folder tree`,editPath:`Click to type a path`,editPathPlaceholder:`Enter a folder path and press Enter`,openSubfolders:`Subfolders of {{name}}`},preview:{close:`Close preview`,folderMeta:`Folder · {{path}}`,fileMeta:`{{kind}} · {{path}}`,assetMeta:`{{kind}} · {{path}}`,emptyFolder:`Empty folder`,noTextPreview:`No text preview for this file type`,noMediaPreview:`Preview could not be loaded`,previewTooLarge:`File is too large to preview here`,previewEngineRequired:`Open in the editor to preview this asset`,fontSample:`Aa Bb Cc 0123 游戏字体`,loadingSource:`Loading…`,highlightSkipped:`Large file — highlighting skipped`,nothingSelected:`Select an item to inspect`,modeAssets:`Assets`,modeSource:`Source`,items:`{{count}} items`},menu:{open:`Open`,copyPath:`Copy path`,copyAssetPath:`Copy asset path`,copyGuid:`Copy GUID`,copyCurrentPath:`Copy current path`,addToFavorites:`Add to favorites`,removeFromFavorites:`Remove from favorites`,expandSubAssets:`Expand sub-assets`},fileKinds:{dir:`Folder`,code:`Code`,config:`Config`,doc:`Document`,scene:`Scene`,pack:`Asset Pack`,meta:`Metadata`,image:`Image`,audio:`Audio`,model:`3D Model`,assetPackage:`Asset Package`,font:`Font`,ui:`UI Asset`,data:`Data`,other:`File`},assetKinds:{plugin:`Plugin`,scene:`Scene`,mesh:`Mesh`,texture:`Texture`,equirect:`Equirect`,"cube-texture":`Cubemap`,sampler:`Sampler`,material:`Material`,"material-shader":`Material Shader`,skeleton:`Skeleton`,skin:`Skin`,"animation-clip":`Animation`,"animation-graph":`Animation Graph`,audio:`Audio`,font:`Font`,"render-pipeline":`Render Pipeline`,tileset:`Tileset`,video:`Video`,"particle-effect":`Particle Effect`,image:`Image`,ui:`UI`,default:`Asset`}}},wt={contentBrowser:{title:`资产`,search:`搜索资产`,empty:`项目中无资产`,opening:`正在打开…`,unavailable:`工作区不可用`,favorites:`收藏夹`,noFavorites:`暂无收藏`,all:`全部`,back:`后退`,forward:`前进`,refresh:`刷新`,settings:`内容浏览器设置`,layout:`布局`,layoutGrid:`平铺`,layoutList:`列表`,layoutColumn:`详细信息`,thumbnailSize:`缩略图大小`,filterAll:`全部`,filterByType:`按类型筛选`,fileTypeSection:`文件类型`,assetTypeSection:`资产类型`,clearFilters:`清除全部筛选`,sortBy:`排序方式`,sortName:`名称`,sortKind:`类型`,sortSize:`大小`,sortModified:`修改时间`,searchPlaceholder:`搜索资产…`,emptyTitle:`没有匹配的资产`,emptyDescription:`调整搜索或筛选条件后重试。`,unavailableDescription:`未连接到工作区 API。`,loadErrorDescription:`无法从工作区加载资产,请查看错误通知。`,statusCount:`{{count}} 项`,statusSelected:`{{count}} 项 · 已选择 {{selected}} 项`,favorite:`收藏`,unfavorite:`取消收藏`,contextMenu:`内容浏览器操作`,readOnlyTitle:`只读内容浏览器`,sort:{name:`名称`,kind:`类型`,modified:`修改时间`,size:`大小`,by:`排序方式`,order:`顺序`,asc:`升序`,desc:`降序`},details:{colName:`名称`,colType:`类型`,colSize:`大小`,colModified:`修改时间`,typeFolder:`文件夹`,itemCount:`{{count}} 项`},actions:{detailPanel:`详情面板`,thumbnailSize:`缩略图尺寸:{{size}}px`,resizePreview:`拖拽调整预览宽度`,resizeFolderTree:`拖拽调整目录树宽度`,editPath:`点击输入路径`,editPathPlaceholder:`输入文件夹路径并回车`,openSubfolders:`{{name}} 的子文件夹`},preview:{close:`关闭预览`,folderMeta:`文件夹 · {{path}}`,fileMeta:`{{kind}} · {{path}}`,assetMeta:`{{kind}} · {{path}}`,emptyFolder:`空文件夹`,noTextPreview:`此文件类型暂无文本预览`,noMediaPreview:`无法加载预览`,previewTooLarge:`文件过大,无法在此处预览`,previewEngineRequired:`需在编辑器中预览该资产`,fontSample:`Aa Bb Cc 0123 游戏字体`,loadingSource:`正在加载…`,highlightSkipped:`文件较大,已跳过高亮`,nothingSelected:`选择一个项目查看详情`,modeAssets:`资产列表`,modeSource:`源码`,items:`{{count}} 项`},menu:{open:`打开`,copyPath:`复制路径`,copyAssetPath:`复制资产路径`,copyGuid:`复制 GUID`,copyCurrentPath:`复制当前路径`,addToFavorites:`添加到收藏夹`,removeFromFavorites:`从收藏夹移除`,expandSubAssets:`展开子资产`},fileKinds:{dir:`文件夹`,code:`代码`,config:`配置`,doc:`文档`,scene:`场景`,pack:`资产包`,meta:`元数据`,image:`图片`,audio:`音频`,model:`3D 模型`,assetPackage:`资源包`,font:`字体`,ui:`UI 资产`,data:`数据`,other:`文件`},assetKinds:{plugin:`插件`,scene:`场景`,mesh:`网格`,texture:`贴图`,equirect:`全景贴图`,"cube-texture":`立方体贴图`,sampler:`采样器`,material:`材质`,"material-shader":`材质着色器`,skeleton:`骨骼`,skin:`蒙皮`,"animation-clip":`动画`,"animation-graph":`动画图`,audio:`音频`,font:`字体`,"render-pipeline":`渲染管线`,tileset:`瓦片集`,video:`视频`,"particle-effect":`粒子特效`,image:`图片`,ui:`界面`,default:`资产`}}};function Tt(e){let t=`zh`,n=new Set,r=(e,t)=>t.split(`.`).reduce((e,t)=>e?.[t],e);return{t:(n,i)=>{let a=r(e[t],n)??r(e.en,n)??n;return i?a.replace(/\{\{(\w+)\}\}/g,(e,t)=>String(i[t]??``)):a},subscribe:e=>(n.add(e),()=>n.delete(e)),getLocale:()=>t,setLocale:e=>{if(!(e!==`en`&&e!==`zh`)){t=e;for(let e of n)e()}}}}var Et=Tt({en:Ct,zh:wt}),Dt=Et.t,Ot=Et.subscribe,kt=Et.getLocale;Et.setLocale,L(Et.setLocale);var At=ae();function jt(){let e=(0,U.useSyncExternalStore)(Ot,kt,kt);return{t:(0,U.useCallback)((e,t)=>Dt(e,t),[e]),locale:e}}var Mt=`forgeax.view.content-browser.ui/1`,q=Object.freeze({search:`content-browser.search`,navigate:`content-browser.navigate`,navigateBack:`content-browser.navigate.back`,navigateForward:`content-browser.navigate.forward`,refresh:`content-browser.refresh`,setView:`content-browser.view.set`,setThumbnailSize:`content-browser.thumbnail-size.set`,setFilter:`content-browser.filter.set`,setSort:`content-browser.sort.set`,select:`content-browser.select`,activate:`content-browser.activate`,toggleFavorite:`content-browser.favorite.toggle`,toggleSourceGroup:`content-browser.source-group.toggle`,toggleDetailPanel:`content-browser.detail-panel.toggle`,togglePackExpansion:`content-browser.pack.expand.toggle`,showContextMenu:`content-browser.context-menu.show`,copyPath:`content-browser.copy-path`});Object.freeze({$id:Mt,type:`object`,required:[`projectLabel`,`folder`,`view`,`files`,`folders`],properties:{projectLabel:{type:`string`},folder:{type:`string`},view:{enum:[`grid`,`list`,`column`]},thumbnailSize:{type:`number`,minimum:48,maximum:200},detailPanelOpen:{type:`boolean`},favorites:{type:`array`,items:{type:`string`}},expandedPacks:{type:`array`,items:{type:`string`}},folders:{type:`array`,items:{type:`object`,required:[`type`,`path`,`name`,`childCount`],properties:{type:{const:`folder`},path:{type:`string`},name:{type:`string`},childCount:{type:`number`}}}},files:{type:`array`,items:{type:`object`,required:[`type`,`path`,`name`,`family`,`assets`],properties:{type:{const:`file`},path:{type:`string`},name:{type:`string`},family:{enum:[`code`,`config`,`doc`,`scene`,`pack`,`meta`,`image`,`audio`,`model`,`font`,`ui`,`data`,`other`]},isAssetPackage:{type:`boolean`},assets:{type:`array`,items:{type:`object`,required:[`type`,`guid`,`kind`,`name`,`packPath`],properties:{type:{const:`asset`},guid:{type:`string`},kind:{type:`string`},name:{type:`string`},packPath:{type:`string`},estimatedSize:{type:`number`},packModifiedAt:{type:`number`}}}}}}}}});var Nt=[`dir`,`scene`,`pack`,`meta`,`model`,`image`,`audio`,`font`,`ui`,`code`,`config`,`doc`,`data`],Pt=[`plugin`,`mesh`,`material`,`texture`,`equirect`,`cube-texture`,`animation-clip`,`skeleton`,`audio`,`font`,`ui`],Ft=new Set([`code`,`config`,`doc`,`data`,`pack`,`meta`,`scene`]),It=new Set([`ts`,`tsx`,`js`,`jsx`,`mjs`,`cjs`,`json`]);function Lt(e){let t=e.lastIndexOf(`/`);return t<0?``:e.slice(0,t)}function Rt(e){return e.trim().replace(/\\/g,`/`).replace(/\/+/g,`/`).replace(/^\/+|\/+$/g,``)}function J(e){return e.type===`asset`?e.guid:e.path}function zt(e){return e>1}function Bt(e){let t=e.toLowerCase();if(t.endsWith(`.meta.json`))return`meta`;if(t.endsWith(`.pack.ts`))return`pack`;if(t.endsWith(`.pack.json`))return t.includes(`scene`)?`scene`:`pack`;if(t.endsWith(`.scene.json`)||t===`scene.json`)return`scene`;if(t.endsWith(`.colliders.json`))return`data`;let n=t.split(`.`).pop()??``;return[`html`,`css`,`ts`,`tsx`,`js`,`jsx`,`mjs`,`cjs`,`py`].includes(n)?`code`:[`json`,`lock`].includes(n)?`config`:[`md`,`markdown`,`txt`].includes(n)?`doc`:[`png`,`jpg`,`jpeg`,`webp`,`gif`,`svg`,`ico`,`hdr`].includes(n)?`image`:[`mp3`,`wav`,`ogg`,`flac`,`aac`,`m4a`,`opus`].includes(n)?`audio`:[`glb`,`gltf`,`fbx`].includes(n)?`model`:[`ttf`,`otf`,`woff`,`woff2`].includes(n)?`font`:`other`}function Vt(e,t){if(e.toLowerCase().endsWith(`.pack.ts`))return`pack`;let n=Bt(e);return n===`pack`&&t.some(e=>e.kind===`scene`)?`scene`:n}function Ht(e){let t=e.toLowerCase();if(t.endsWith(`.pack.json`)||t.endsWith(`.pack.ts`))return!0;let n=t.includes(`.`)?t.slice(t.lastIndexOf(`.`)+1):t;return It.has(n)}function Ut(e){return e.assets.length===0?!1:Ft.has(e.family)||Ht(e.name)}function Wt(e,t){if(e.type===`file`)return e;if(e.type===`asset`)return t.find(t=>t.path===e.packPath)}function Gt(e){return e===void 0||e<=0?``:e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function Kt(e){if(!e)return``;try{return new Date(e).toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`})}catch{return``}}function qt(e,t,n,r){let i=r===`desc`?-1:1;return n===`kind`?i*Jt(e).localeCompare(Jt(t))||i*e.name.localeCompare(t.name):n===`packModifiedAt`?i*(Yt(e)-Yt(t)||e.name.localeCompare(t.name)):n===`estimatedSize`?i*(Xt(e)-Xt(t)||e.name.localeCompare(t.name)):i*e.name.localeCompare(t.name)}function Jt(e){return e.type===`folder`?`folder`:e.type===`file`?e.kindLabel||e.family:e.kind}function Yt(e){return e.type===`asset`||e.type===`file`?e.packModifiedAt??0:0}function Xt(e){return e.type===`asset`||e.type===`file`?e.estimatedSize??0:0}function Zt(e,t){return t?e.type===`folder`?e.name.toLowerCase().includes(t)||e.path.toLowerCase().includes(t):e.type===`file`?e.name.toLowerCase().includes(t)||e.path.toLowerCase().includes(t)||e.assets.some(e=>e.name.toLowerCase().includes(t)||e.kind.toLowerCase().includes(t)):e.name.toLowerCase().includes(t)||e.guid.toLowerCase().startsWith(t)||e.kind.toLowerCase().includes(t):!0}var Qt={dir:Re,scene:n,pack:m,meta:W,model:P,image:p,audio:me,font:u,ui:Ye,code:k,config:Te,doc:E,data:Me,other:O},$t={plugin:l,mesh:P,material:Ye,texture:p,image:p,equirect:ze,"cube-texture":ze,sampler:W,"animation-clip":Pe,"animation-graph":Pe,skeleton:we,skin:we,scene:n,ui:Ye,audio:me,font:u,video:Pe,tileset:W,"particle-effect":W,"render-pipeline":W};function en(e){return Qt[e]??O}function tn(e){return $t[e]??m}function nn(e,t=!1){return e.type===`folder`?t?Le:Re:e.type===`file`?en(e.family):tn(e.kind)}function rn(e,t,n){let r=e(t);return r===t?e(n):r}function an(e,t){return rn(t,`contentBrowser.assetKinds.${e}`,`contentBrowser.assetKinds.default`)}function on(e,t){return Nt.map(n=>({id:`family:${n}`,family:n,label:rn(t,n===`dir`?`contentBrowser.fileKinds.dir`:`contentBrowser.fileKinds.${n}`,`contentBrowser.fileKinds.other`),active:e.has(n)}))}function sn(e,t){return Pt.map(n=>({id:`kind:${n}`,kind:n,label:an(n,t),active:e.has(n)}))}function cn(e,t,n){let[r,i]=e.split(`:`),a=new Set(t),o=new Set(n);if(r===`kind`&&i)return o.has(i)?o.delete(i):o.add(i),{families:a,kinds:o};let s=i;return a.has(s)?a.delete(s):a.add(s),{families:a,kinds:o}}function ln(e,t){return e.isAssetPackage?t(`contentBrowser.fileKinds.assetPackage`):rn(t,`contentBrowser.fileKinds.${e.family}`,`contentBrowser.fileKinds.other`)}function un({folders:e,files:t,currentPath:n,searchQuery:r,activeFamilies:i,activeKinds:a,sortState:o,expandedPacks:s,withKindLabel:c}){let l=r.trim().toLowerCase(),u=l!==``,d=a.size>0,f=t.map(c),p=e.filter(e=>Lt(e.path)===n).filter(()=>i.size===0||i.has(`dir`)).filter(e=>{if(!l)return!0;let t=`${e.path}/`;return Zt(e,l)||f.some(e=>e.path.startsWith(t)&&Zt(e,l))}).toSorted((e,t)=>qt(e,t,`name`,o.dir)),m=f.filter(e=>Lt(e.path)===n).filter(e=>i.size===0||i.has(e.family)).filter(e=>!l||Zt(e,l)).toSorted((e,t)=>qt(e,t,o.key,o.dir));if(d){let e=new Set,t=[];for(let n of m)for(let r of n.assets)e.has(r.guid)||!a.has(r.kind)||l&&!Zt(r,l)&&!n.name.toLowerCase().includes(l)||(e.add(r.guid),t.push(r));return t.sort((e,t)=>e.name.localeCompare(t.name)),{foldersInPath:[],filesInPath:m,viewItems:t,searchActive:u,kindFilterActive:d}}let h=[...p];for(let e of m){if(e.assets.length===0){h.push(e);continue}if(e.assets.length===1){h.push(...e.assets);continue}h.push(e),(u||s.has(e.path))&&h.push(...e.assets)}return{foldersInPath:p,filesInPath:m,viewItems:h,searchActive:u,kindFilterActive:d}}function dn(e,t){return e.key===t?{key:t,dir:e.dir===`asc`?`desc`:`asc`}:{key:t,dir:`asc`}}function fn(e,t){return e.dir===t?e:{...e,dir:t}}var pn=[{key:`name`,labelKey:`contentBrowser.details.colName`,track:`minmax(160px, 1fr)`},{key:`kind`,labelKey:`contentBrowser.details.colType`,track:`160px`},{key:`estimatedSize`,labelKey:`contentBrowser.details.colSize`,track:`90px`},{key:`packModifiedAt`,labelKey:`contentBrowser.details.colModified`,track:`130px`}];function mn({items:e,selectedIds:t,openingKeys:n,sortState:r,onSort:i,onSelect:a,onActivate:o,onContextMenu:s,onBlankClick:c}){let{t:l}=jt();return(0,K.jsxs)(`div`,{className:`cb-details-view cb-details-column`,role:`grid`,style:{"--cb-details-cols":pn.map(e=>e.track).join(` `)},onClick:e=>{e.target===e.currentTarget&&c()},children:[(0,K.jsx)(`div`,{className:`cb-details-header`,role:`row`,children:pn.map(e=>{let t=r.key===e.key;return(0,K.jsxs)(`button`,{type:`button`,role:`columnheader`,className:`cb-details-cell cb-details-th${t?` active`:``}`,"data-active":t?`true`:`false`,"aria-sort":t?r.dir===`asc`?`ascending`:`descending`:`none`,onClick:()=>i(e.key),children:[(0,K.jsx)(`span`,{children:l(e.labelKey)}),t?(0,K.jsx)(`span`,{className:`cb-details-sort-arrow`,"aria-hidden":`true`,children:r.dir===`asc`?`▲`:`▼`}):null]},e.key)})}),(0,K.jsx)(`div`,{className:`cb-details-body`,children:e.map(e=>{let r=J(e),i=t.has(r),c=n?.has(r)??!1,u=nn(e),d=e.type===`folder`?l(`contentBrowser.details.typeFolder`):e.type===`file`?e.kindLabel||ln(e,l):an(e.kind,l),f=e.type===`folder`?l(`contentBrowser.details.itemCount`,{count:e.childCount}):Gt((e.type,e.estimatedSize)),p=e.type===`folder`?``:Kt(e.packModifiedAt);return(0,K.jsxs)(`div`,{role:`row`,tabIndex:0,className:`cb-details-row${i?` sel`:``}${c?` is-busy`:``}`,"data-action":q.select,"aria-selected":i,"aria-busy":c||void 0,onClick:t=>a(e,t),onDoubleClick:()=>o(e),onKeyDown:t=>{t.key===`Enter`?(t.preventDefault(),o(e)):t.key===` `&&(t.preventDefault(),a(e,t))},onContextMenu:t=>s(t,e),children:[(0,K.jsxs)(`div`,{className:`cb-details-cell cb-details-name`,role:`gridcell`,children:[(0,K.jsx)(`span`,{className:`cb-details-icon${e.type===`folder`?` cb-folder-icon`:``}`,children:(0,K.jsx)(u,{size:16})}),(0,K.jsx)(`span`,{className:`cb-details-label`,children:e.name}),c?(0,K.jsx)(F,{className:`cb-item-busy-inline`,label:l(`contentBrowser.opening`)}):null]}),(0,K.jsx)(`div`,{className:`cb-details-cell cb-details-type`,role:`gridcell`,children:d}),(0,K.jsx)(`div`,{className:`cb-details-cell cb-details-size`,role:`gridcell`,children:f}),(0,K.jsx)(`div`,{className:`cb-details-cell cb-details-modified`,role:`gridcell`,children:p})]},r)})})]})}function hn({items:e,thumbnailSize:t,layout:n,searchActive:r,expandedPacks:i,selectedIds:a,openingKeys:o,onSelect:s,onActivate:c,onContextMenu:l,onTogglePackExpansion:u,onBlankClick:d}){let{t:f}=jt(),p=(0,U.useRef)(null),[m,h]=(0,U.useState)([]),g=!r,_=(0,U.useCallback)(()=>{let e=p.current;if(!e){h(e=>e.length?[]:e);return}let t=e.querySelectorAll(`[data-cb-group]`);if(t.length===0){h(e=>e.length?[]:e);return}let r=new Map;t.forEach(e=>{let t=e.dataset.cbGroup;if(!t)return;let n=r.get(t);n?n.push(e):r.set(t,[e])});let i=n===`list`?2:4,a=e.clientWidth,o=[];for(let[e,t]of r){let n=[];for(let e of t){let t=e.offsetTop,r=n.find(e=>Math.abs(e.top-t)<=4);r?r.els.push(e):n.push({top:t,els:[e]})}let r=n.length>1;n.forEach((t,s)=>{let c=1/0,l=-1/0,u=1/0,d=-1/0;for(let e of t.els)c=Math.min(c,e.offsetLeft),l=Math.max(l,e.offsetLeft+e.offsetWidth),u=Math.min(u,e.offsetTop),d=Math.max(d,e.offsetTop+e.offsetHeight);let f=r&&s>0,p=r&&s<n.length-1,m=f?0:c-i,h=p?a:l+i;o.push({key:`${e}#${s}`,left:m,top:u-i,width:h-m,height:d-u+i*2,radius:`${f?0:8}px ${p?0:8}px ${p?0:8}px ${f?0:8}px`})})}h(o)},[n]);(0,U.useLayoutEffect)(()=>{_();let e=p.current;if(!e)return;let t=0,n=new ResizeObserver(()=>{cancelAnimationFrame(t),t=requestAnimationFrame(_)});return n.observe(e),e.querySelectorAll(`[data-cb-group]`).forEach(e=>n.observe(e)),()=>{cancelAnimationFrame(t),n.disconnect()}},[_,e,i,t,r]);let v=(e,t=!1,r)=>{let i=J(e),d=a.has(i),p=o?.has(i)??!1,m=nn(e),h=e.type===`folder`,_=e.type===`file`,v=g&&_&&e.assets.length>=2?e.assets.length:0,y=v>=2,b=h?null:_?e.kindLabel:an(e.kind,f);return(0,K.jsxs)(`div`,{role:`button`,tabIndex:0,className:`cb-grid-item cb-fe-card${h?` cb-grid-folder`:``}${_?` cb-file-card`:``}${d?` sel`:``}${t?` cb-pack-expanded`:``}${y?` cb-group-card`:``}${r?` cb-group-member`:``}${p?` is-busy`:``}`,"data-action":q.select,"data-cb-group":r,"aria-selected":d,"aria-busy":p||void 0,onClick:t=>s(e,t),onDoubleClick:()=>c(e),onKeyDown:t=>{t.key===`Enter`?(t.preventDefault(),c(e)):t.key===` `&&(t.preventDefault(),s(e,t))},onContextMenu:t=>l(t,e),children:[(0,K.jsxs)(`span`,{className:`cb-grid-thumb cb-fe-thumb${_?` cb-file-thumb`:``}${h?` cb-folder-thumb`:``}`,children:[(0,K.jsx)(`span`,{className:h?`cb-folder-icon`:`cb-grid-icon`,children:(0,K.jsx)(m,{})}),v>=1?(0,K.jsxs)(`button`,{type:`button`,className:`cb-group-badge${t?` open`:``}`,"data-action":q.togglePackExpansion,title:f(`contentBrowser.menu.expandSubAssets`),onClick:t=>{t.stopPropagation(),s(e,t),u(e.path)},children:[(0,K.jsx)(`span`,{className:`cb-group-badge-num`,children:v}),(0,K.jsx)(de,{size:11})]}):null]}),(0,K.jsxs)(`span`,{className:`cb-grid-label cb-fe-label${b?` has-kind`:``}`,children:[(0,K.jsx)(`span`,{className:`cb-fe-name`,children:e.name}),b?(0,K.jsx)(`span`,{className:`cb-card-meta`,children:b}):null]}),p?n===`list`?(0,K.jsx)(F,{className:`cb-item-busy-inline`,label:f(`contentBrowser.opening`)}):(0,K.jsx)(`span`,{className:`cb-item-busy-veil`,children:(0,K.jsx)(F,{label:f(`contentBrowser.opening`)})}):null]},i)},y=[];for(let t=0;t<e.length;){let n=e[t];if(!n){t+=1;continue}if(g&&n.type===`file`&&n.assets.length>=2&&i.has(n.path)){let r=new Set(n.assets.map(e=>e.guid));y.push(v(n,!0,n.path));let i=t+1;for(;i<e.length;i+=1){let t=e[i];if(!t||t.type!==`asset`||!r.has(t.guid))break;y.push(v(t,!1,n.path))}t=i;continue}y.push(v(n)),t+=1}return(0,K.jsxs)(`div`,{ref:p,className:`cb-grid-view cb-fe-grid cb-layout-${n}`,style:{"--cb-thumb":`${t}px`},onClick:e=>{e.target===e.currentTarget&&d()},children:[m.length>0?(0,K.jsx)(`div`,{className:`cb-group-backdrops`,"aria-hidden":`true`,children:m.map(e=>(0,K.jsx)(`div`,{className:`cb-group-backdrop`,style:{left:e.left,top:e.top,width:e.width,height:e.height,borderRadius:e.radius}},e.key))}):null,y]})}function gn(e,t){let n=t?`${t}/`:``,r=t?t.split(`/`).length:0,i=[];for(let a of e)t&&a===t||a.startsWith(n)&&a.split(`/`).length===r+1&&i.push({name:a.split(`/`).pop()??a,path:a});return i.sort((e,t)=>e.name.localeCompare(t.name))}function _n({levelPath:e,activeNextSeg:t,allDirs:n,onNavigate:r,label:i}){let a=gn(n,e);return a.length===0?(0,K.jsx)(`span`,{className:`cb-crumb-chevron`,"aria-hidden":`true`,children:(0,K.jsx)(z,{size:12})}):(0,K.jsx)(`span`,{className:`cb-crumb-chevron`,onClick:e=>e.stopPropagation(),children:(0,K.jsx)(_e,{label:i,align:`start`,className:`cb-crumb-menu`,trigger:(0,K.jsx)(`button`,{type:`button`,className:`cb-crumb-chevron-btn`,"aria-label":i,title:i,onClick:e=>e.stopPropagation(),children:(0,K.jsx)(z,{size:12})}),items:a.map(e=>({id:e.path,label:e.name,icon:(0,K.jsx)(Re,{size:14}),buttonProps:e.name===t?{"data-active":``}:void 0,onSelect:()=>r(e.path)}))})})}function vn({currentPath:e,projectLabel:t,allDirs:n,canGoBack:r,canGoForward:i,refreshDisabled:a,onBack:o,onForward:s,onRefresh:c,onNavigate:l}){let{t:u}=jt(),d=e?e.split(`/`).filter(Boolean):[],[f,p]=(0,U.useState)(!1),[m,g]=(0,U.useState)(``),_=(0,U.useCallback)(()=>{g(e),p(!0)},[e]),v=(0,U.useCallback)(()=>{l(Rt(m)),p(!1)},[m,l]),y=(0,U.useCallback)(e=>{e.key===`Enter`?(e.preventDefault(),v()):e.key===`Escape`&&(e.preventDefault(),p(!1))},[v]),b=(0,U.useCallback)(e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),_())},[_]),x=(e,t)=>{e.stopPropagation(),l(t)};return(0,K.jsxs)(h,{className:`cb-navigation-bar`,children:[(0,K.jsx)(H,{size:`compact`,variant:`quiet`,label:u(`contentBrowser.back`),icon:(0,K.jsx)(Oe,{size:14}),"data-action":q.navigateBack,disabled:!r,onClick:o}),(0,K.jsx)(H,{size:`compact`,variant:`quiet`,label:u(`contentBrowser.forward`),icon:(0,K.jsx)(z,{size:14}),"data-action":q.navigateForward,disabled:!i,onClick:s}),(0,K.jsx)(H,{size:`compact`,variant:`quiet`,label:u(`contentBrowser.refresh`),disabled:a,icon:(0,K.jsx)(T,{size:13}),"data-action":q.refresh,onClick:c}),(0,K.jsx)(`div`,{className:`cb-address-slot`,children:f?(0,K.jsx)(`input`,{autoFocus:!0,spellCheck:!1,className:`cb-address-input`,value:m,placeholder:u(`contentBrowser.actions.editPathPlaceholder`),onChange:e=>g(e.target.value),onKeyDown:y,onBlur:()=>p(!1),onFocus:e=>e.currentTarget.select()}):(0,K.jsx)(`div`,{className:`cb-address`,role:`button`,tabIndex:0,title:u(`contentBrowser.actions.editPath`),onClick:_,onKeyDown:b,children:(0,K.jsxs)(`div`,{className:`cb-address-crumb`,children:[(0,K.jsx)(`button`,{type:`button`,className:d.length?`cb-crumb-item`:`cb-crumb-item cb-crumb-current`,"aria-current":d.length===0?`page`:void 0,"data-action":q.navigate,onClick:e=>x(e,``),children:t}),d.map((e,r)=>{let i=d.slice(0,r+1).join(`/`),a=d.slice(0,r).join(`/`),o=r===0?t:d[r-1]??t,s=r===d.length-1;return(0,K.jsxs)(`span`,{className:`cb-crumb-segment`,children:[(0,K.jsx)(_n,{levelPath:a,activeNextSeg:e,allDirs:n,onNavigate:l,label:u(`contentBrowser.actions.openSubfolders`,{name:o})}),(0,K.jsx)(`button`,{type:`button`,className:s?`cb-crumb-item cb-crumb-current`:`cb-crumb-item`,"aria-current":s?`page`:void 0,"data-action":q.navigate,onClick:e=>x(e,i),children:e})]},i)})]})})})]})}function yn(e){return e===`image`||e===`audio`||e===`video`}function bn(e){return e.kind===`binary`&&e.mime.startsWith(`font/`)}function xn(e){return e===`image`||e===`audio`||e===`font`}function Sn(e){return e===`model`}function Cn(e){return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`}function wn(e){return e.dataUrl||e.kind===`image`&&e.content?null:e.size>10485760?`too-large`:`unavailable`}function Tn({info:e,fileName:t,t:n}){if(bn(e))return(0,K.jsx)(En,{info:e,sample:t,t:n});if(!yn(e.kind))return(0,K.jsx)(`div`,{className:`cb-preview-note`,children:n(`contentBrowser.preview.noMediaPreview`)});let r=wn(e);if(r===`too-large`)return(0,K.jsx)(`div`,{className:`cb-preview-note`,children:n(`contentBrowser.preview.previewTooLarge`)});if(r===`unavailable`)return(0,K.jsx)(`div`,{className:`cb-preview-note`,children:n(`contentBrowser.preview.noMediaPreview`)});let i=e.dataUrl??(e.content?Cn(e.content):void 0);return i?e.kind===`audio`?(0,K.jsx)(`div`,{className:`cb-preview-media`,children:(0,K.jsx)(`audio`,{className:`cb-preview-audio`,controls:!0,preload:`metadata`,src:i,"aria-label":t})}):e.kind===`video`?(0,K.jsx)(`div`,{className:`cb-preview-media`,children:(0,K.jsx)(`video`,{className:`cb-preview-video`,controls:!0,preload:`metadata`,src:i,"aria-label":t})}):(0,K.jsx)(`div`,{className:`cb-preview-media`,children:(0,K.jsx)(`img`,{className:`cb-preview-image`,src:i,alt:t,decoding:`async`})}):(0,K.jsx)(`div`,{className:`cb-preview-note`,children:n(`contentBrowser.preview.noMediaPreview`)})}function En({info:e,sample:t,t:n}){if(wn(e)===`too-large`)return(0,K.jsx)(`div`,{className:`cb-preview-note`,children:n(`contentBrowser.preview.previewTooLarge`)});if(!e.dataUrl)return(0,K.jsx)(`div`,{className:`cb-preview-note`,children:n(`contentBrowser.preview.noMediaPreview`)});let r=`cb-preview-font-${e.path.replace(/[^\w-]+/g,`-`)}`;return(0,K.jsxs)(`div`,{className:`cb-preview-media cb-preview-font`,children:[(0,K.jsx)(`style`,{children:`@font-face{font-family:${r};src:url(${e.dataUrl});font-display:swap;}`}),(0,K.jsx)(`p`,{className:`cb-preview-font-sample`,style:{fontFamily:r},children:n(`contentBrowser.preview.fontSample`)}),(0,K.jsx)(`p`,{className:`cb-preview-font-meta`,children:t})]})}var Dn={ts:{lang:`typescript`,label:`TypeScript`},mts:{lang:`typescript`,label:`TypeScript`},cts:{lang:`typescript`,label:`TypeScript`},tsx:{lang:`tsx`,label:`TSX`},js:{lang:`javascript`,label:`JavaScript`},mjs:{lang:`javascript`,label:`JavaScript`},cjs:{lang:`javascript`,label:`JavaScript`},jsx:{lang:`jsx`,label:`JSX`},json:{lang:`json`,label:`JSON`},jsonc:{lang:`jsonc`,label:`JSONC`},json5:{lang:`json5`,label:`JSON5`},css:{lang:`css`,label:`CSS`},scss:{lang:`scss`,label:`SCSS`},html:{lang:`html`,label:`HTML`},htm:{lang:`html`,label:`HTML`},md:{lang:`markdown`,label:`Markdown`},markdown:{lang:`markdown`,label:`Markdown`},py:{lang:`python`,label:`Python`},rs:{lang:`rust`,label:`Rust`},wgsl:{lang:`wgsl`,label:`WGSL`},glsl:{lang:`glsl`,label:`GLSL`},vert:{lang:`glsl`,label:`GLSL`},frag:{lang:`glsl`,label:`GLSL`},sh:{lang:`shellscript`,label:`Shell`},bash:{lang:`shellscript`,label:`Shell`},zsh:{lang:`shellscript`,label:`Shell`},yaml:{lang:`yaml`,label:`YAML`},yml:{lang:`yaml`,label:`YAML`},toml:{lang:`toml`,label:`TOML`},xml:{lang:`xml`,label:`XML`}};function On(e){return Dn[e.replace(/^\./,``).toLowerCase()]}function kn(e){let t=1;for(let n=0;n<e.length;n+=1)e.charCodeAt(n)===10&&(t+=1);return t}function An(e){let{ext:t,size:n,content:r}=e;if(r==null)return{highlight:!1,reason:`no-content`};let i=On(t);return i?Math.max(n,r.length)>204800||kn(r)>5e3?{highlight:!1,reason:`too-large`}:{highlight:!0,lang:i.lang,label:i.label}:{highlight:!1,reason:`unknown-language`}}var jn={light:`github-light-default`,dark:`github-dark-default`},Mn={typescript:()=>M(()=>import(`./typescript-xi0cSHCO.js`),[]),tsx:()=>M(()=>import(`./tsx-Crj1Bi53.js`),[]),javascript:()=>M(()=>import(`./javascript-BX9W64FE.js`),__vite__mapDeps([0,1])),jsx:()=>M(()=>import(`./jsx-DAWscEnf.js`),[]),json:()=>M(()=>import(`./json-CpcIDpT7.js`),[]),jsonc:()=>M(()=>import(`./jsonc-BXDfCMmu.js`),[]),json5:()=>M(()=>import(`./json5-Czq4A7dk.js`),[]),css:()=>M(()=>import(`./css-CWQWazmX.js`),__vite__mapDeps([2,3])),scss:()=>M(()=>import(`./scss-B-aKzLbT.js`),__vite__mapDeps([4,3])),html:()=>M(()=>import(`./html-AaaHGGyt.js`),__vite__mapDeps([5,3,1])),markdown:()=>M(()=>import(`./markdown-Cx1FMNw-.js`),[]),python:()=>M(()=>import(`./python-CYPKjWV9.js`),[]),rust:()=>M(()=>import(`./rust-0e5cNx_V.js`),[]),wgsl:()=>M(()=>import(`./wgsl-BoEPRo9U.js`),[]),glsl:()=>M(()=>import(`./glsl-BJgVnv11.js`),[]),shellscript:()=>M(()=>import(`./shellscript-CpXD-pSm.js`),[]),yaml:()=>M(()=>import(`./yaml-DsIB85X9.js`),[]),toml:()=>M(()=>import(`./toml-GmchYTXa.js`),[]),xml:()=>M(()=>import(`./xml-B8JqQrMD.js`),[])},Nn=null,Pn=new Set,Fn=new Map;async function In(){return Nn||=(async()=>{let[e,t,n,r]=await Promise.all([M(()=>import(`./core-DSQma37-.js`),__vite__mapDeps([6,7])),M(()=>import(`./engine-javascript-BvokIV9O.js`),[]),M(()=>import(`./github-dark-default-DaDlj-WZ.js`),[]),M(()=>import(`./github-light-default-BqhWxAZd.js`),[])]);return await e.createHighlighterCore({themes:[n.default,r.default],langs:[],engine:t.createJavaScriptRegexEngine({forgiving:!0})})})(),Nn}async function Ln(e,t){if(Pn.has(t))return!0;let n=Mn[t];if(!n)return!1;let r=Fn.get(t);return r||(r=(async()=>{let r=await n();return await e.loadLanguage(r.default),Pn.add(t),!0})(),Fn.set(t,r)),r}async function Rn(e,t,n=`dark`){let r=await In();return await Ln(r,t)?r.codeToHtml(e,{lang:t,theme:jn[n]}):null}function zn(){return typeof document>`u`?`light`:document.documentElement.dataset.theme===`dark`?`dark`:`light`}function Bn(){let[e,t]=(0,U.useState)(zn);return(0,U.useEffect)(()=>{let e=document.documentElement,n=()=>t(zn());n();let r=new MutationObserver(n);return r.observe(e,{attributes:!0,attributeFilter:[`data-theme`]}),()=>r.disconnect()},[]),e}function Vn({name:e,ext:t,size:n,content:r}){let{t:i}=jt(),a=Bn(),o=An({ext:t,size:n,content:r}),s=o.highlight?o.lang:null,c=On(t)?.label??t.toUpperCase(),[l,u]=(0,U.useState)(null);(0,U.useEffect)(()=>{if(u(null),s==null)return;let e=!1;return Rn(r,s,a).then(t=>{e||u(t)}).catch(()=>{e||u(null)}),()=>{e=!0}},[a,r,s]);let d=!o.highlight&&o.reason===`too-large`;return(0,K.jsxs)(`div`,{className:`cb-preview-code`,"data-lang":On(t)?.lang??`text`,children:[(0,K.jsxs)(`div`,{className:`cb-preview-code-head`,children:[(0,K.jsx)(`span`,{className:`cb-preview-code-badge`,children:c}),d?(0,K.jsx)(`span`,{className:`cb-preview-code-hint`,children:i(`contentBrowser.preview.highlightSkipped`)}):null]}),l==null?(0,K.jsx)(`pre`,{className:`cb-preview-code-plain`,"aria-label":e,children:r}):(0,K.jsx)(`div`,{className:`cb-preview-code-shiki`,dangerouslySetInnerHTML:{__html:l}})]})}function Hn({file:e,previewInfo:t,status:n,pendingRemote:r,t:i}){if(n===`loading`||r)return(0,K.jsx)(`div`,{className:`cb-preview-note`,children:i(`contentBrowser.preview.loadingSource`)});if(t&&(yn(t.kind)||bn(t)))return(0,K.jsx)(Tn,{info:t,fileName:e.name,t:i});if(t?.kind===`model`||Sn(e.family))return(0,K.jsx)(`div`,{className:`cb-preview-note`,children:i(`contentBrowser.preview.previewEngineRequired`)});if(!t&&xn(e.family))return(0,K.jsx)(`div`,{className:`cb-preview-note`,children:i(`contentBrowser.preview.noMediaPreview`)});let a=t?.content??e.sourcePreview;if(a==null)return(0,K.jsx)(`div`,{className:`cb-preview-note`,children:i(`contentBrowser.preview.noTextPreview`)});let o=e.name.lastIndexOf(`.`),s=o>=0?e.name.slice(o+1).toLowerCase():``;return On(s)?(0,K.jsx)(Vn,{name:e.name,ext:s,size:t?.size??e.estimatedSize??0,content:a}):(0,K.jsx)(`pre`,{className:`cb-preview-source`,children:(0,K.jsx)(`code`,{children:a})})}function Un(e,t,n,r){let i=e=>Math.min(r,Math.max(n,e)),[a,o]=(0,U.useState)(()=>{if(typeof window>`u`)return t;try{let n=window.localStorage.getItem(e);if(!n)return t;let r=Number(n);return Number.isFinite(r)?i(r):t}catch{return t}});return(0,U.useEffect)(()=>{try{window.localStorage.setItem(e,String(a))}catch{}},[e,a]),[a,e=>{o(t=>i(typeof e==`function`?e(t):e))}]}function Wn({onDrag:e,onDragEnd:t,title:n}){let r=(0,U.useRef)(null),i=e=>{e.preventDefault(),e.currentTarget.setPointerCapture(e.pointerId),r.current=e.clientX,document.body.style.cursor=`col-resize`,document.body.style.userSelect=`none`},a=t=>{if(r.current==null)return;let n=t.clientX-r.current;r.current=t.clientX,e(n)},o=e=>{if(r.current!=null){r.current=null;try{e.currentTarget.releasePointerCapture(e.pointerId)}catch{}document.body.style.cursor=``,document.body.style.userSelect=``,t?.()}};return(0,K.jsx)(`div`,{className:`cb-resize-handle`,onPointerDown:i,onPointerMove:a,onPointerUp:o,onPointerCancel:o,title:n,role:`separator`,"aria-orientation":`vertical`})}function Gn({previewItem:e,foldersInPath:t,diskFiles:n,projectLabel:r,readPreview:i,onClose:a,onDrag:o,onDragEnd:s}){let{t:c}=jt(),[l,u]=(0,U.useState)(`assets`),[d,f]=(0,U.useState)(null),[p,m]=(0,U.useState)(`idle`),h=e?Wt(e,n):void 0,g=h!==void 0&&Ut(h),_=e?e.type===`asset`?e.guid:e.path:null,v=h?.diskPath||h?.path||null,y=h?.assets.length??0,b=h?Ut(h):!1,x=h?.sourcePreview??null,S=typeof i==`function`;if((0,U.useEffect)(()=>{u(`assets`)},[_]),(0,U.useEffect)(()=>{if(!v){f(null),m(`idle`);return}if(!(y===0||b&&l===`source`)){f(null),m(`idle`);return}if(x!=null&&!S){f({path:h?.path??v,kind:`text`,mime:`text/plain; charset=utf-8`,size:h?.estimatedSize??x.length,mtime:h?.packModifiedAt??0,content:x}),m(`ready`);return}if(!S||!i){f(null),m(`ready`);return}let e=!1;f(null),m(`loading`);let t=new AbortController;return i(v,{signal:t.signal}).then(t=>{e||(f(t),m(`ready`))}).catch(()=>{e||(f(null),m(`ready`))}),()=>{e=!0,t.abort()}},[S,y,b,x,l,v,i]),!e)return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(Wn,{onDrag:o,onDragEnd:s,title:c(`contentBrowser.actions.resizePreview`)}),(0,K.jsx)(`aside`,{className:`cb-preview-panel cb-preview-empty`,children:(0,K.jsx)(`div`,{className:`cb-preview-body`,children:(0,K.jsx)(`div`,{className:`cb-preview-note`,children:c(`contentBrowser.preview.nothingSelected`)})})})]});let C=nn(e,!0),T=e.type===`folder`?c(`contentBrowser.preview.folderMeta`,{path:e.path||r}):e.type===`file`?c(`contentBrowser.preview.fileMeta`,{kind:e.kindLabel,path:e.path}):c(`contentBrowser.preview.assetMeta`,{kind:an(e.kind,c),path:e.packPath}),E;if(e.type===`folder`){let r=[...t.filter(t=>Lt(t.path)===e.path),...n.filter(t=>Lt(t.path)===e.path)].slice(0,40);E=r.length===0?(0,K.jsx)(`div`,{className:`cb-preview-note`,children:c(`contentBrowser.preview.emptyFolder`)}):(0,K.jsx)(`div`,{className:`cb-preview-list`,children:r.map(e=>{let t=nn(e);return(0,K.jsxs)(`div`,{className:`cb-preview-list-item`,children:[(0,K.jsx)(`span`,{className:`cb-preview-list-ico${e.type===`folder`?` cb-folder-icon`:``}`,children:(0,K.jsx)(t,{size:15})}),(0,K.jsx)(`span`,{children:e.name}),(0,K.jsx)(`span`,{className:`sub`,children:e.type===`folder`?c(`contentBrowser.preview.items`,{count:e.childCount}):e.kindLabel||ln(e,c)})]},e.path)})})}else if(e.type===`file`){let t=l===`source`&&g;E=e.assets.length>0&&!t?(0,K.jsx)(Kn,{file:e,t:c}):(0,K.jsx)(Hn,{file:g?h??e:e,previewInfo:d,status:p,pendingRemote:qn(S,p,d,g?h??e:e),t:c})}else E=g&&l===`source`&&h?(0,K.jsx)(Hn,{file:h,previewInfo:d,status:p,pendingRemote:qn(S,p,d,h),t:c}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`div`,{className:`cb-preview-media cb-preview-asset-hero`,children:(0,K.jsx)(`span`,{className:`cb-preview-hero-icon`,children:(0,K.jsx)(C,{size:64})})}),(0,K.jsx)(`div`,{className:`cb-preview-asset-list`,children:(0,K.jsxs)(`div`,{className:`cb-preview-asset-row`,children:[(0,K.jsx)(`span`,{className:`cb-preview-list-ico`,children:(0,K.jsx)(C,{size:15})}),(0,K.jsxs)(`div`,{className:`cb-preview-asset-main`,title:e.packPath,children:[(0,K.jsx)(`div`,{title:e.name,children:e.name}),(0,K.jsx)(`div`,{className:`kind`,title:e.packPath,children:e.packPath})]}),(0,K.jsx)(`span`,{className:`guid`,title:e.guid,children:e.guid})]})})]});return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(Wn,{onDrag:o,onDragEnd:s,title:c(`contentBrowser.actions.resizePreview`)}),(0,K.jsxs)(`aside`,{className:`cb-preview-panel`,"data-subject-id":e.type===`asset`?e.guid:e.path,children:[(0,K.jsxs)(`div`,{className:`cb-preview-head`,children:[(0,K.jsx)(`span`,{className:`cb-preview-ico${e.type===`folder`?` cb-folder-icon`:``}`,children:(0,K.jsx)(C,{size:15})}),(0,K.jsxs)(`div`,{className:`cb-preview-title`,children:[(0,K.jsx)(`div`,{className:`name`,children:e.name}),(0,K.jsx)(`div`,{className:`meta`,children:T})]}),(0,K.jsx)(H,{size:`compact`,variant:`quiet`,className:`cb-preview-close`,label:c(`contentBrowser.preview.close`),icon:(0,K.jsx)(w,{size:14}),onClick:a})]}),g?(0,K.jsxs)(`div`,{className:`cb-preview-mode-bar`,role:`tablist`,"aria-label":c(`contentBrowser.preview.modeAssets`),children:[(0,K.jsx)(`button`,{type:`button`,role:`tab`,className:`cb-preview-mode-btn${l===`assets`?` is-active`:``}`,"aria-selected":l===`assets`,onClick:()=>u(`assets`),children:c(`contentBrowser.preview.modeAssets`)}),(0,K.jsx)(`button`,{type:`button`,role:`tab`,className:`cb-preview-mode-btn${l===`source`?` is-active`:``}`,"aria-selected":l===`source`,onClick:()=>u(`source`),children:c(`contentBrowser.preview.modeSource`)})]}):null,(0,K.jsx)(`div`,{className:`cb-preview-body`,children:E})]})]})}function Kn({file:e,t}){return(0,K.jsx)(`div`,{className:`cb-preview-asset-list`,children:e.assets.map(e=>(0,K.jsxs)(`div`,{className:`cb-preview-asset-row`,children:[(0,K.jsx)(`span`,{className:`cb-preview-list-ico`,children:(0,K.jsx)(nn(e),{size:15})}),(0,K.jsxs)(`div`,{className:`cb-preview-asset-main`,children:[(0,K.jsx)(`div`,{title:e.name,children:e.name}),(0,K.jsx)(`div`,{className:`kind`,title:an(e.kind,t),children:an(e.kind,t)})]}),(0,K.jsx)(`span`,{className:`guid`,title:e.guid,children:e.guid})]},e.guid))})}function qn(e,t,n,r){return!e||t!==`idle`||n?!1:r.sourcePreview==null}var Jn=`47 game`,Y=Date.parse(`2026-09-18T04:00:00Z`),X=Date.parse(`2026-09-17T04:00:00Z`);function Z(e,t,n,r,i,a,o){return{type:`asset`,guid:e,kind:t,name:n,packPath:r,packIndex:i,payload:{mock:!0},refs:[],estimatedSize:a,packModifiedAt:o}}function Q(e,t,n={}){let r=e.slice(e.lastIndexOf(`/`)+1),i=Vt(r,t),a=zt(t.length);return{type:`file`,path:e,diskPath:e,name:r,family:i,assets:t,isAssetPackage:a,kindLabel:a?``:i,sourcePreview:n.sourcePreview,estimatedSize:n.estimatedSize,packModifiedAt:n.packModifiedAt??t[0]?.packModifiedAt}}var Yn=[Z(`11111111-1111-4111-8111-111111111111`,`mesh`,`HeroMesh`,`assets/character.glb`,0,482e3,Y),Z(`11111111-1111-4111-8111-111111111112`,`material`,`HeroMaterial`,`assets/character.glb`,1,12400,Y),Z(`11111111-1111-4111-8111-111111111113`,`texture`,`HeroAlbedo`,`assets/character.glb`,2,1024e3,Y)],Xn=[Z(`22222222-2222-4222-8222-222222222221`,`mesh`,`EnvMesh`,`assets/environment.fbx`,0,128e4,X),Z(`22222222-2222-4222-8222-222222222222`,`material`,`EnvMaterial`,`assets/environment.fbx`,1,18200,X),Z(`22222222-2222-4222-8222-222222222223`,`animation-clip`,`WalkClip`,`assets/environment.fbx`,2,96e3,X),Z(`22222222-2222-4222-8222-222222222224`,`skeleton`,`EnvSkeleton`,`assets/environment.fbx`,3,22e3,X)],Zn=[Z(`33333333-3333-4333-8333-333333333331`,`material`,`Metal`,`assets/materials.pack.json`,0,9700,Y),Z(`33333333-3333-4333-8333-333333333332`,`material`,`Wood`,`assets/materials.pack.json`,1,8200,Y)],Qn=Z(`44444444-4444-4444-8444-444444444441`,`scene`,`Main Scene`,`assets/scene-main.pack.json`,0,18200,Y),$n=Z(`55555555-5555-4555-8555-555555555551`,`material`,`BaseMaterial`,`assets/base-material.pack.json`,0,9700,Y),er=Z(`66666666-6666-4666-8666-666666666661`,`cube-texture`,`SkyCubemap`,`assets/sky.pack.json`,0,24e5,X),tr=Z(`77777777-7777-4777-8777-777777777771`,`ui`,`HUD`,`assets/hud.pack.json`,0,12500,X),nr=[Q(`AGENTS.md`,[],{sourcePreview:`# AGENTS
3
+
4
+ Project agent notes.
5
+ `,estimatedSize:7200,packModifiedAt:Y}),Q(`FORGE.md`,[],{sourcePreview:`# FORGE
6
+
7
+ Workspace contract.
8
+ `,estimatedSize:4800,packModifiedAt:X}),Q(`capability-adapters.json`,[],{sourcePreview:`{
9
+ "adapters": ["content-browser", "inspector"]
10
+ }
11
+ `,estimatedSize:3100,packModifiedAt:Y}),Q(`package.json`,[],{sourcePreview:`{
12
+ "name": "47-game",
13
+ "private": true
14
+ }
15
+ `,estimatedSize:1600,packModifiedAt:Y}),Q(`main.ts`,[],{sourcePreview:`export function boot() {
16
+ return "47 game";
17
+ }
18
+ `,estimatedSize:2400,packModifiedAt:Y}),Q(`assets/character.glb`,Yn,{estimatedSize:152e4,packModifiedAt:Y}),Q(`assets/environment.fbx`,Xn,{estimatedSize:24e5,packModifiedAt:X}),Q(`assets/materials.pack.json`,Zn,{sourcePreview:`{
19
+ "assets": [
20
+ { "kind": "material", "name": "Metal" },
21
+ { "kind": "material", "name": "Wood" }
22
+ ]
23
+ }
24
+ `,estimatedSize:4200,packModifiedAt:Y}),Q(`assets/scene-main.pack.json`,[Qn],{sourcePreview:`{
25
+ "assets": [{ "kind": "scene", "name": "Main Scene" }]
26
+ }
27
+ `,estimatedSize:18200,packModifiedAt:Y}),Q(`assets/base-material.pack.json`,[$n],{sourcePreview:`{
28
+ "assets": [{ "kind": "material", "name": "BaseMaterial" }]
29
+ }
30
+ `,estimatedSize:9700,packModifiedAt:Y}),Q(`assets/sky.pack.json`,[er],{sourcePreview:`{
31
+ "assets": [{ "kind": "cube-texture", "name": "SkyCubemap" }]
32
+ }
33
+ `,estimatedSize:24e5,packModifiedAt:X}),Q(`assets/hud.pack.json`,[tr],{sourcePreview:`{
34
+ "assets": [{ "kind": "ui", "name": "HUD" }]
35
+ }
36
+ `,estimatedSize:12500,packModifiedAt:X}),Q(`assets/hero.png`,[],{estimatedSize:84e3,packModifiedAt:Y}),Q(`assets/shot.wav`,[],{estimatedSize:22e4,packModifiedAt:X}),Q(`assets/Inter.ttf`,[],{estimatedSize:31e4,packModifiedAt:X}),Q(`assets/ground.colliders.json`,[],{sourcePreview:`{
37
+ "colliders": [{ "shape": "box" }]
38
+ }
39
+ `,estimatedSize:1200,packModifiedAt:Y}),Q(`scripts/smoke-geometry.mjs`,[],{sourcePreview:`export const geometry = { kind: "box" };
40
+ `,estimatedSize:3800,packModifiedAt:Y}),Q(`scripts/smoke-rotation.mjs`,[],{sourcePreview:`export function rotate(dt) { return dt * 0.2; }
41
+ `,estimatedSize:2100,packModifiedAt:X}),Q(`sessions/logs/debug.log`,[],{sourcePreview:`[info] boot
42
+ [debug] frame 1
43
+ `,estimatedSize:31e3,packModifiedAt:Y}),Q(`sessions/logs/latest.log`,[],{sourcePreview:`[info] ready
44
+ `,estimatedSize:11e3,packModifiedAt:Y}),Q(`src/index.ts`,[],{sourcePreview:`export {};
45
+ `,estimatedSize:80,packModifiedAt:X})],rr=[`assets`,`scripts`,`sessions`,`sessions/logs`,`src`],ir=rr.map(e=>{let t=`${e}/`,n=nr.filter(e=>e.path.startsWith(t)).length,r=rr.filter(n=>n!==e&&n.startsWith(t)&&!n.slice(t.length).includes(`/`)).length;return{type:`folder`,path:e,name:e.slice(e.lastIndexOf(`/`)+1),childCount:n+r}}),ar=ir.map(e=>({path:e.path,name:e.name,depth:e.path.split(`/`).length-1}));function or(e,t){let n=new Map,r=`${e.replaceAll(`\\`,`/`).replace(/\/$/,``)}/`;for(let e of t){let t=(e.sourcePath??e.path??e.guid).replaceAll(`\\`,`/`),i=t.startsWith(r)?t.slice(r.length):t,a=i.startsWith(`/`)||/^[a-z]:\//i.test(i)||i.split(`/`).includes(`..`)?`External assets/${encodeURIComponent(t)}`:i.replace(/^\.\//,``),o=n.get(a);o||(o={type:`file`,path:a,diskPath:t,name:t.split(`/`).at(-1),family:`pack`,assets:[],isAssetPackage:!1,kindLabel:``},n.set(a,o));let s={type:`asset`,guid:e.guid,kind:e.kind,name:(t.toLowerCase().endsWith(`.pack.ts`)?e.sourceKey:void 0)??e.name??e.label??e.guid,packPath:a};o.assets.push(s),o.family=Vt(o.name,o.assets),o.isAssetPackage=zt(o.assets.length)}let i=new Map;for(let e of n.values()){let t=e.path.split(`/`).filter(Boolean).slice(0,-1);for(let e=0;e<t.length;e++){let n=t.slice(0,e+1).join(`/`);i.has(n)||i.set(n,{type:`folder`,path:n,name:t[e],childCount:0})}}for(let e of i.values())e.childCount=[...i.values(),...n.values()].filter(t=>t.path.slice(0,t.path.lastIndexOf(`/`))===e.path).length;return{files:[...n.values()],folders:[...i.values()]}}var sr=[{mode:`grid`,icon:(0,K.jsx)(Be,{size:14}),labelKey:`contentBrowser.layoutGrid`},{mode:`list`,icon:(0,K.jsx)(We,{size:14}),labelKey:`contentBrowser.layoutList`},{mode:`column`,icon:(0,K.jsx)(rt,{size:14}),labelKey:`contentBrowser.layoutColumn`}],cr=[`name`,`kind`,`packModifiedAt`,`estimatedSize`],lr={name:De,kind:Qe,packModifiedAt:Ae,estimatedSize:Ve};function ur(e){return e.classList.contains(`cb-grid-item`)||e.classList.contains(`cb-fe-card`)||e.classList.contains(`cb-details-row`)||e.classList.contains(`cb-source-row`)}function dr(e,t){return e.map(e=>e.kind===`separator`?{type:`separator`}:e.kind===`title`?{type:`title`,label:(0,K.jsxs)(`span`,{className:`cb-menu-title`,children:[e.icon,e.label]})}:{id:e.id,label:e.label,icon:e.icon,shortcut:e.shortcut,disabled:e.disabled,danger:e.danger,buttonProps:{"data-operation":e.id},onSelect:()=>{e.action(),t?.()}})}function fr({client:e,demo:t=!1}){let{t:n}=jt(),[r,i]=(0,U.useState)({}),[a,o]=(0,U.useState)(!1),[c,l]=(0,U.useState)(``),[u,d]=(0,U.useState)(!1),[f,p]=(0,U.useState)(new Set),m=r.project,g=t?Jn:m?.name??m?.root??`No project`,_=(0,U.useMemo)(()=>or(m?.root??``,r.assets??[]),[m?.root,r.assets]),v=t?nr:_.files,S=t?ir:_.folders,w=t?ar:S.map(e=>({...e,depth:e.path.split(`/`).length-1})),T=(0,U.useRef)(e);T.current=e;let E=be(t?void 0:e),D=(0,U.useCallback)((e,n)=>{if(t)return Promise.resolve(null);let r=T.current?.transport;return typeof r?.request==`function`?r.request(ee,{path:e},n):Promise.resolve(null)},[t]),O=(0,U.useCallback)(async n=>{if(!(t||!E||!m||!e)){d(!0);try{await e.listAssets(m.id,{tabId:B,signal:n}),n?.aborted||o(!1)}catch{n?.aborted||o(!0)}finally{n?.aborted||d(!1)}}},[e,E,t,m?.id]);(0,U.useEffect)(()=>{if(t)return;if(!e||!E){e||o(!0);return}let n=new AbortController;i({});let r=e=>{n.signal.aborted||(i(t=>(e.revision??0)<(t.revision??0)||le(e)===le(t)?t:e),o(!1))},a=e.subscribe(r);return e.getState({signal:n.signal}).then(r).catch(()=>{n.signal.aborted||o(!0)}),()=>{n.abort(),a?.()}},[e,E,t]),(0,U.useEffect)(()=>{if(!E)return;let e=new AbortController;return O(e.signal),()=>e.abort()},[E,O]);let[k,A]=(0,U.useState)(`grid`),[j,ne]=(0,U.useState)(80),[re,M]=(0,U.useState)(!0),[ie,ae]=(0,U.useState)(``),[N,se]=(0,U.useState)(new Set),[P,F]=(0,U.useState)(new Set),[I,L]=(0,U.useState)({key:`name`,dir:`asc`}),[R,me]=(0,U.useState)([``]),[he,ge]=(0,U.useState)(0),[z,_e]=(0,U.useState)(null),[ve,ye]=(0,U.useState)(null),[we,Te]=(0,U.useState)(null),Ee=(0,U.useRef)(null),De=(0,U.useRef)(null),Oe=(0,U.useRef)(null),ke=(0,U.useRef)(null),[Ae,je]=(0,U.useState)({favorites:!0,project:!0}),[Me,Ne]=(0,U.useState)(new Set(t?[`assets`,`scripts`]:[])),[Pe,Ie]=(0,U.useState)(new Set),[ze,Be]=(0,U.useState)(new Set),[Ve,He]=(0,U.useState)(new Set),[W,Ue]=(0,U.useState)(null),[We,Ge]=(0,U.useState)(null),Ke=[...S,...v.flatMap(e=>[e,...e.assets])].find(e=>J(e)===We)??null,[qe,Je]=Un(`view.cb.sourceWidth`,200,140,420),[Ye,Xe]=Un(`view.cb.previewWidth`,280,180,560);(0,U.useEffect)(()=>{me([``]),ge(0),He(new Set),Ue(null),Ge(null),Be(new Set),Ne(new Set(t?[`assets`,`scripts`]:[])),ae(``)},[m?.id,t]);let Ze=R[he]??``,Qe=(0,U.useMemo)(()=>on(N,n),[N,n]),$e=(0,U.useMemo)(()=>sn(P,n),[P,n]),et=N.size+P.size,rt=(0,U.useMemo)(()=>v.map(e=>({...e,kindLabel:ln(e,n)})),[v,n]),{viewItems:G,foldersInPath:it,searchActive:at}=(0,U.useMemo)(()=>un({folders:S,files:rt,currentPath:Ze,searchQuery:ie,activeFamilies:N,activeKinds:P,sortState:I,expandedPacks:ze,withKindLabel:e=>e}),[N,P,ze,Ze,S,rt,ie,I]),ot=e=>{let t=Rt(e);if(t===Ze)return;let n=R.slice(0,he+1);n.push(t),me(n),ge(n.length-1)},st=(n,r)=>{l(``);let i=J(n),a=!!((r?.ctrlKey||r?.metaKey)&&Ve.has(i));He(e=>{if(r?.shiftKey&&W){let t=G.findIndex(e=>J(e)===W),n=G.findIndex(e=>J(e)===i);if(t>=0&&n>=0){let i=G.slice(Math.min(t,n),Math.max(t,n)+1).map(e=>J(e));return new Set(r.ctrlKey||r.metaKey?[...e,...i]:i)}}if(r?.ctrlKey||r?.metaKey){let t=new Set(e);return t.has(i)?t.delete(i):t.add(i),t}return new Set([i])}),Ue(i),Ge(J(n)),!t&&!a&&n.type===`asset`&&e&&m&&e.inspectAsset(n.guid,{projectId:m.id,tabId:B}).catch(()=>{})},ct=e=>e.type===`asset`?e:e.type===`file`?e.assets.find(e=>e.kind===`scene`)??e.assets[0]:void 0,lt=n=>n.type===`folder`||!t&&!!e&&!!m&&!!ct(n),ut=n=>{if(l(``),n.type===`folder`){ot(n.path);return}if(t||!e||!m)return;let r=ct(n)?.guid;if(!r)return;let i=J(n);f.has(i)||(p(e=>new Set(e).add(i)),e.openAsset(r,{projectId:m.id,tabId:B}).catch(e=>l(e instanceof Error?e.message:String(e))).finally(()=>{p(e=>{if(!e.has(i))return e;let t=new Set(e);return t.delete(i),t})}))},dt=e=>Ne(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n}),ft=e=>Be(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n}),pt=e=>Ie(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n});(0,U.useEffect)(()=>{z!==`filter`&&z!==`sort`&&z!==`settings`&&Te(null)},[z]);let mt=(e,t)=>{e.preventDefault(),e.stopPropagation(),_e(null),Te(null);let n=e.currentTarget;ye({anchor:ur(n)?n.getBoundingClientRect():fe(e.clientX,e.clientY),items:t})},ht=e=>{if(z===e){_e(null);return}let t=(e===`filter`?Ee:e===`sort`?De:Oe).current?.getBoundingClientRect();t&&Te(t),_e(e)},gt=(e,t)=>[{kind:`title`,label:t,icon:(0,K.jsx)(Re,{className:`cb-folder-icon`,size:14})},{kind:`item`,id:`open`,label:n(`contentBrowser.menu.open`),icon:(0,K.jsx)(Le,{size:14}),action:()=>ot(e)},{kind:`item`,id:`copy-path`,label:n(`contentBrowser.menu.copyPath`),icon:(0,K.jsx)(x,{size:14}),action:()=>void navigator.clipboard?.writeText(e||g)},{kind:`item`,id:`favorite`,label:Me.has(e)?n(`contentBrowser.menu.removeFromFavorites`):n(`contentBrowser.menu.addToFavorites`),icon:Me.has(e)?(0,K.jsx)(tt,{size:14}):(0,K.jsx)(nt,{size:14}),action:()=>dt(e)}],_t=e=>{let t=nn(e);return e.type===`folder`?gt(e.path,e.name):[{kind:`title`,label:e.name,icon:(0,K.jsx)(t,{size:14})},...lt(e)?[{kind:`item`,id:`open`,label:n(`contentBrowser.menu.open`),shortcut:`Enter`,action:()=>ut(e)}]:[],...e.type===`asset`?[{kind:`item`,id:`copy-guid`,label:n(`contentBrowser.menu.copyGuid`),icon:(0,K.jsx)(x,{size:14}),action:()=>void navigator.clipboard?.writeText(e.guid)}]:[],{kind:`item`,id:`copy-path`,label:n(`contentBrowser.menu.copyAssetPath`),icon:(0,K.jsx)(x,{size:14}),shortcut:`Ctrl+Shift+C`,action:()=>void navigator.clipboard?.writeText(e.type===`asset`?e.packPath:e.path)}]};n(`contentBrowser.readOnlyTitle`),n(`contentBrowser.menu.copyCurrentPath`);let vt=e=>{let t=cn(e,N,P);se(t.families),F(t.kinds)},yt=(e,t,r,i=!1)=>{let a=w.some(t=>t.path.startsWith(`${e}/`)),o=!Pe.has(e),s=S.find(t=>t.path===e),c=Ze===e,l=Ze.startsWith(`${e}/`),u=(0,K.jsxs)(`button`,{type:`button`,className:`cb-source-row${c?` is-sel`:l?` is-path`:``}${a&&!o?` collapsed`:``}`,style:{paddingLeft:`calc(var(--fx-ref-space-16) + ${r} * (var(--fx-ref-space-12) + var(--fx-ref-space-2)))`},onClick:()=>{ot(e),s&&(Ge(J(s)),He(new Set([e])),Ue(e))},onDoubleClick:()=>a&&pt(e),onContextMenu:n=>mt(n,gt(e,t)),children:[(0,K.jsx)(`span`,{className:`cb-source-chev${a?``:` hidden`}${o?``:` collapsed`}`,onClick:t=>{a&&(t.stopPropagation(),pt(e))},children:(0,K.jsx)(de,{size:12})}),(0,K.jsx)(`span`,{className:`cb-source-icon`,children:o?(0,K.jsx)(Le,{size:15}):(0,K.jsx)(Re,{size:15})}),(0,K.jsx)(`span`,{className:`cb-source-name`,children:t})]});return i?(0,K.jsxs)(`div`,{className:`cb-source-fav-row${c?` is-sel`:l?` is-path`:``}`,children:[u,(0,K.jsx)(`button`,{type:`button`,className:`cb-source-unfav`,"data-action":q.toggleFavorite,title:n(`contentBrowser.unfavorite`),"aria-label":n(`contentBrowser.unfavorite`),onClick:t=>{t.stopPropagation(),dt(e)},children:(0,K.jsx)(nt,{size:11,fill:`currentColor`})})]},`fav-${e}`):(0,K.jsx)(`div`,{children:u},`tree-${e}`)},bt=et===0?n(`contentBrowser.filterAll`):et===1?(Qe.find(e=>e.active)??$e.find(e=>e.active)).label:n(`contentBrowser.filterByType`),xt={name:n(`contentBrowser.sort.name`),kind:n(`contentBrowser.sort.kind`),packModifiedAt:n(`contentBrowser.sort.modified`),estimatedSize:n(`contentBrowser.sort.size`)};return(0,K.jsxs)(`div`,{className:`cb-root`,"data-testid":`panel-content-browser`,"data-view-readonly":`true`,children:[(0,K.jsxs)(`div`,{className:`cb-split`,ref:ke,style:{"--cb-src-w":`${qe}px`,"--cb-preview-w":`${Ye}px`},children:[(0,K.jsx)(`aside`,{className:`cb-source-panel`,children:(0,K.jsxs)(`div`,{className:`cb-source-tree`,children:[(0,K.jsxs)(`section`,{className:`cb-source-group`,children:[(0,K.jsxs)(`button`,{type:`button`,"data-action":q.toggleSourceGroup,className:`cb-source-group-head${Ae.favorites?``:` collapsed`}`,onClick:()=>je(e=>({...e,favorites:!e.favorites})),children:[(0,K.jsx)(`span`,{className:`cb-source-chev`,children:(0,K.jsx)(de,{size:12})}),(0,K.jsx)(nt,{className:`cb-source-group-icon`,size:15}),(0,K.jsx)(`span`,{className:`cb-source-group-name`,children:n(`contentBrowser.favorites`)})]}),Ae.favorites?(0,K.jsx)(`div`,{className:`cb-source-group-body`,children:Me.size?[...Me].map(e=>yt(e,e.split(`/`).at(-1)??e,0,!0)):(0,K.jsx)(`div`,{className:`cb-source-empty`,children:n(`contentBrowser.noFavorites`)})}):null]}),(0,K.jsxs)(`section`,{className:`cb-source-group`,children:[(0,K.jsxs)(`button`,{type:`button`,"data-action":q.toggleSourceGroup,className:`cb-source-group-head${Ae.project?``:` collapsed`}`,onClick:()=>je(e=>({...e,project:!e.project})),children:[(0,K.jsx)(`span`,{className:`cb-source-chev`,children:(0,K.jsx)(de,{size:12})}),(0,K.jsx)(Le,{className:`cb-source-group-icon cb-folder-icon`,size:15}),(0,K.jsx)(`span`,{className:`cb-source-group-name`,children:g})]}),Ae.project?(0,K.jsxs)(`div`,{className:`cb-source-group-body`,children:[(0,K.jsxs)(`button`,{type:`button`,className:`cb-source-row cb-source-virtual-root${Ze===``?` is-sel`:``}`,onClick:()=>ot(``),onContextMenu:e=>mt(e,gt(``,g)),children:[(0,K.jsx)(`span`,{className:`cb-source-chev`,children:(0,K.jsx)(de,{size:12})}),(0,K.jsx)(`span`,{className:`cb-source-icon`,children:(0,K.jsx)(Le,{size:15})}),(0,K.jsx)(`span`,{className:`cb-source-name`,children:n(`contentBrowser.all`)})]}),w.filter(e=>{if(e.depth===0)return!0;let t=e.path.slice(0,e.path.lastIndexOf(`/`));return!Pe.has(t)}).map(e=>yt(e.path,e.name,e.depth+1))]}):null]})]})}),(0,K.jsx)(Wn,{title:n(`contentBrowser.actions.resizeFolderTree`),onDrag:e=>{let t=qe+e;Je(t),ke.current?.style.setProperty(`--cb-src-w`,`${Math.min(420,Math.max(140,t))}px`)}}),(0,K.jsxs)(`section`,{className:`cb-asset-view`,children:[(0,K.jsx)(s,{className:`cb-toolbar`,center:(0,K.jsx)(vn,{currentPath:Ze,projectLabel:g,allDirs:S.map(e=>e.path),canGoBack:he>0,canGoForward:he<R.length-1,refreshDisabled:!t&&(!m||u),onBack:()=>ge(e=>Math.max(0,e-1)),onForward:()=>ge(e=>Math.min(R.length-1,e+1)),onRefresh:()=>void O(),onNavigate:ot}),end:(0,K.jsx)(H,{ref:Oe,size:`compact`,variant:`quiet`,label:n(`contentBrowser.settings`),icon:(0,K.jsx)(C,{size:14}),onClick:()=>ht(`settings`)})}),(0,K.jsxs)(`div`,{className:`cb-content-body`,children:[(0,K.jsxs)(`div`,{className:`cb-grid-column`,children:[(0,K.jsxs)(h,{className:`cb-filter-bar`,children:[(0,K.jsx)(pe,{size:`compact`,variant:`quiet`,"data-action":q.activate,disabled:Ve.size!==1||!Ke||!lt(Ke),loading:!!(Ke&&f.has(J(Ke))),title:n(`contentBrowser.openHint`),onClick:()=>{Ke&&ut(Ke)},children:n(`contentBrowser.menu.open`)}),(0,K.jsx)(pe,{ref:Ee,size:`compact`,variant:`quiet`,"data-action":q.setFilter,className:et?`is-active`:void 0,leadingIcon:(0,K.jsx)(Fe,{size:14}),onClick:()=>ht(`filter`),children:bt}),(0,K.jsx)(ce,{className:`cb-search-box`,"data-action":q.search,value:ie,onChange:e=>ae(e.target.value),onClear:()=>ae(``),placeholder:n(`contentBrowser.searchPlaceholder`),label:n(`contentBrowser.search`)}),(0,K.jsx)(pe,{ref:De,size:`compact`,variant:`quiet`,"data-action":q.setSort,leadingIcon:(0,K.jsx)(Se,{size:14}),onClick:()=>ht(`sort`),children:xt[I.key]})]}),u?(0,K.jsx)(`div`,{role:`status`,children:`Loading assets...`}):null,c?(0,K.jsx)(`div`,{role:`alert`,children:c}):null,a?(0,K.jsx)(V,{className:`cb-empty`,title:n(`contentBrowser.unavailable`),description:n(t||e?`contentBrowser.loadErrorDescription`:`contentBrowser.unavailableDescription`),icon:(0,K.jsx)(Le,{size:28})}):!t&&!m?(0,K.jsx)(V,{className:`cb-empty`,title:n(`contentBrowser.noProject`),description:n(`contentBrowser.openProjectHint`),icon:(0,K.jsx)(Le,{size:28})}):G.length===0?(0,K.jsx)(V,{className:`cb-empty`,title:n(`contentBrowser.emptyTitle`),description:n(`contentBrowser.emptyDescription`),icon:(0,K.jsx)(Le,{size:28})}):k===`column`?(0,K.jsx)(mn,{items:G,selectedIds:Ve,openingKeys:f,sortState:I,onSort:e=>L(t=>dn(t,e)),onSelect:st,onActivate:ut,onContextMenu:(e,t)=>mt(e,_t(t)),onBlankClick:()=>He(new Set)}):(0,K.jsx)(hn,{items:G,thumbnailSize:j,layout:k,searchActive:at,expandedPacks:ze,selectedIds:Ve,openingKeys:f,onSelect:st,onActivate:ut,onContextMenu:(e,t)=>mt(e,_t(t)),onTogglePackExpansion:ft,onBlankClick:()=>He(new Set)}),(0,K.jsxs)(`footer`,{className:`cb-status`,children:[(0,K.jsx)(`span`,{children:Ve.size?n(`contentBrowser.statusSelected`,{count:G.length,selected:Ve.size}):n(`contentBrowser.statusCount`,{count:G.length})}),(0,K.jsx)(`span`,{children:Ze||g})]})]}),re?(0,K.jsx)(Gn,{previewItem:Ke,foldersInPath:S,diskFiles:rt,projectLabel:g,readPreview:t?void 0:D,onClose:()=>Ge(null),onDrag:e=>{let t=Ye-e;Xe(t),ke.current?.style.setProperty(`--cb-preview-w`,`${Math.min(560,Math.max(180,t))}px`)},onDragEnd:()=>void 0}):null]})]})]}),(0,K.jsx)(te,{open:!!(we&&z===`filter`),anchorRect:we,onClose:()=>_e(null),ignorePointerWithin:[Ee],className:`cb-filter-menu`,containerProps:{onPointerDown:e=>e.stopPropagation()},children:(0,K.jsxs)(`div`,{className:`cb-filter-menu-body`,"data-action":q.setFilter,children:[(0,K.jsx)(`div`,{className:`cb-filter-section`,children:n(`contentBrowser.fileTypeSection`)}),Qe.map(e=>{let t=en(e.family);return(0,K.jsxs)(`button`,{type:`button`,className:`cb-filter-option`,"data-active":e.active?`true`:`false`,onClick:()=>vt(e.id),children:[(0,K.jsx)(ue,{checked:e.active,onChange:()=>vt(e.id),tabIndex:-1,hideLabel:!0,label:e.label,className:`cb-filter-check`}),(0,K.jsx)(t,{size:14,className:`cb-filter-option-icon${e.family===`dir`?` cb-folder-icon`:``}`}),e.label]},e.id)}),(0,K.jsx)(`div`,{className:`cb-filter-separator`}),(0,K.jsx)(`div`,{className:`cb-filter-section`,children:n(`contentBrowser.assetTypeSection`)}),$e.map(e=>{let t=tn(e.kind);return(0,K.jsxs)(`button`,{type:`button`,className:`cb-filter-option`,"data-active":e.active?`true`:`false`,onClick:()=>vt(e.id),children:[(0,K.jsx)(ue,{checked:e.active,onChange:()=>vt(e.id),tabIndex:-1,hideLabel:!0,label:e.label,className:`cb-filter-check`}),(0,K.jsx)(t,{size:14,className:`cb-filter-option-icon`}),e.label]},e.id)}),(0,K.jsx)(`div`,{className:`cb-filter-separator`}),(0,K.jsx)(`button`,{type:`button`,className:`cb-filter-option cb-filter-clear`,disabled:et===0,onClick:()=>{se(new Set),F(new Set)},children:n(`contentBrowser.clearFilters`)})]})}),(0,K.jsx)(te,{open:!!(we&&z===`sort`),anchorRect:we,onClose:()=>_e(null),ignorePointerWithin:[De],containerProps:{onPointerDown:e=>e.stopPropagation()},children:(0,K.jsxs)(`div`,{className:`cb-filter-menu-body`,children:[(0,K.jsx)(`div`,{className:`cb-filter-section`,children:n(`contentBrowser.sort.by`)}),cr.map(e=>{let t=lr[e],n=I.key===e;return(0,K.jsxs)(`button`,{type:`button`,className:`cb-filter-option`,"data-active":n?`true`:`false`,onClick:()=>L(t=>dn(t,e)),children:[(0,K.jsx)(`span`,{className:`cb-radio-menu`,"data-checked":n?`true`:`false`}),(0,K.jsx)(t,{size:14,className:`cb-filter-option-icon`}),xt[e]]},e)}),(0,K.jsx)(`div`,{className:`cb-filter-separator`}),(0,K.jsx)(`div`,{className:`cb-filter-section`,children:n(`contentBrowser.sort.order`)}),[[`asc`,Ce],[`desc`,xe]].map(([e,t])=>{let r=I.dir===e;return(0,K.jsxs)(`button`,{type:`button`,className:`cb-filter-option`,"data-active":r?`true`:`false`,onClick:()=>L(t=>fn(t,e)),children:[(0,K.jsx)(`span`,{className:`cb-radio-menu`,"data-checked":r?`true`:`false`}),(0,K.jsx)(t,{size:14,className:`cb-filter-option-icon`}),n(e===`asc`?`contentBrowser.sort.asc`:`contentBrowser.sort.desc`)]},e)})]})}),(0,K.jsx)(te,{open:!!(we&&z===`settings`),anchorRect:we,onClose:()=>_e(null),ignorePointerWithin:[Oe],containerProps:{onPointerDown:e=>e.stopPropagation()},children:(0,K.jsxs)(`div`,{className:`cb-settings-menu`,children:[(0,K.jsx)(`strong`,{children:n(`contentBrowser.layout`)}),(0,K.jsx)(`div`,{className:`fx-segmented cb-layout-switch`,children:sr.map(({mode:e,icon:t,labelKey:r})=>(0,K.jsxs)(`button`,{type:`button`,"data-action":q.setView,className:`fx-segmented__item fx-segmented__item--stacked`,"data-checked":k===e?`true`:`false`,onClick:()=>A(e),children:[t,(0,K.jsx)(`span`,{children:n(r)})]},e))}),(0,K.jsxs)(`label`,{className:`cb-settings-row`,children:[(0,K.jsx)(`span`,{className:`cb-settings-label`,children:n(`contentBrowser.thumbnailSize`)}),(0,K.jsx)(y,{"data-action":q.setThumbnailSize,className:`cb-settings-range`,min:48,max:200,step:4,value:j,onChange:e=>ne(Number(e.target.value)),title:n(`contentBrowser.actions.thumbnailSize`,{size:j})})]}),(0,K.jsx)(b,{layout:`row`,className:`cb-settings-switch-row`,label:n(`contentBrowser.actions.detailPanel`),checked:re,"data-action":q.toggleDetailPanel,onCheckedChange:M})]})}),(0,K.jsx)(oe,{open:!!ve,anchorRect:ve?.anchor??null,items:ve?dr(ve.items):[],onClose:()=>ye(null),label:n(`contentBrowser.contextMenu`),containerProps:{"data-action":q.showContextMenu}})]})}async function pr(e){if(!e.mountElement)throw TypeError(`mountContentBrowserPanel requires mountElement`);let t=(0,At.createRoot)(e.mountElement);return t.render((0,K.jsx)(S,{root:e.overlayRoot??e.mountElement,children:(0,K.jsx)(fr,{client:e.client,demo:e.demo})})),async()=>t.unmount()}var mr={inspector:{title:`Inspector`,contextMenu:`Inspector context menu`,focusObject:`Focus on object`,copyJson:`Copy JSON`,searchPlaceholder:`Search properties…`,searchLabel:`Search properties`,displaySettings:`Display settings`,advancedVisible:`Show advanced properties`,expandAll:`Expand all`,collapseAll:`Collapse all`,components:`Components`,more:`More`,noMatchTitle:`No matching properties`,noMatchDescription:`Adjust the search or display settings.`,noMatchComponent:`Properties for this component are hidden by the current filter.`,emptyTitle:`No object selected`,emptyDescription:`Select an object in the Scene Tree or viewport.`,loading:`Loading inspection…`,menu:{copyComponentJson:`Copy component JSON`,copyValue:`Copy value`,focusViewport:`Focus in viewport`,copyObjectJson:`Copy object JSON`}}},hr={inspector:{title:`检查器`,contextMenu:`检查器上下文菜单`,focusObject:`聚焦到对象`,copyJson:`复制 JSON`,searchPlaceholder:`搜索属性…`,searchLabel:`搜索属性`,displaySettings:`显示设置`,advancedVisible:`显示高级属性`,expandAll:`全部展开`,collapseAll:`全部折叠`,components:`组件`,more:`更多`,noMatchTitle:`没有匹配的属性`,noMatchDescription:`请调整搜索词或显示设置。`,noMatchComponent:`该组件的属性已被当前筛选隐藏。`,emptyTitle:`未选中对象`,emptyDescription:`在场景树或视图中选择一个对象。`,loading:`正在加载检查器…`,menu:{copyComponentJson:`复制组件 JSON`,copyValue:`复制值`,focusViewport:`在视口中聚焦`,copyObjectJson:`复制对象 JSON`}}};function gr(e){let t=`zh`,n=new Set,r=(e,t)=>t.split(`.`).reduce((e,t)=>e?.[t],e);return{t:(n,i)=>{let a=r(e[t],n)??r(e.en,n)??n;return i?a.replace(/\{\{(\w+)\}\}/g,(e,t)=>String(i[t]??``)):a},subscribe:e=>(n.add(e),()=>n.delete(e)),getLocale:()=>t,setLocale:e=>{if(!(e!==`en`&&e!==`zh`)){t=e;for(let e of n)e()}}}}var _r=gr({en:mr,zh:hr}),vr=_r.t,yr=_r.subscribe,br=_r.getLocale;_r.setLocale,L(_r.setLocale);var xr=t(i(),1);function Sr(){let e=(0,U.useSyncExternalStore)(yr,br,br);return{t:(0,U.useCallback)((e,t)=>vr(e,t),[e]),locale:e}}var Cr=`forgeax.view.inspector.ui/1`,wr=Object.freeze({search:`inspector.search`,focus:`inspector.focus`,copyEntity:`inspector.entity.copy`,expandAll:`inspector.expand-all`,collapseAll:`inspector.collapse-all`,toggleComponent:`inspector.component.toggle`,copyComponent:`inspector.component.copy`,copyField:`inspector.field.copy`,showContextMenu:`inspector.context-menu.show`});Object.freeze({$id:Cr,type:[`object`,`null`],required:[`id`,`name`,`components`],properties:{id:{type:`string`},name:{type:`string`},badge:{type:`string`},components:{type:`array`,items:{type:`object`,required:[`name`,`fields`],properties:{name:{type:`string`},icon:{type:`string`},fields:{type:`array`,items:{type:`object`,required:[`key`,`label`,`kind`,`value`],properties:{key:{type:`string`},label:{type:`string`},kind:{enum:[`vector3`,`vector4`,`number`,`bool`,`text`,`enum`,`color`,`asset`]},value:{},options:{type:`array`,items:{type:`string`}}}}}}}}}});var Tr={ground:{id:`ground`,name:`Ground`,badge:`Mesh`,components:[{name:`Transform`,icon:`move3d`,category:`all`,fields:[{key:`position`,label:`Position`,kind:`vector3`,value:{x:0,y:0,z:0}},{key:`rotation`,label:`Rotation`,kind:`vector3`,value:{x:0,y:0,z:0}},{key:`scale`,label:`Scale`,kind:`vector3`,value:{x:10,y:.2,z:8}}]},{name:`MeshFilter`,icon:`box`,category:`type`,fields:[{key:`mesh`,label:`Mesh`,kind:`asset`,value:`Plane`}]},{name:`MeshRenderer`,icon:`layers`,category:`capability`,fields:[{key:`material`,label:`Material 0`,kind:`asset`,value:`Ground Material`},{key:`castShadows`,label:`Cast Shadows`,kind:`bool`,value:!0},{key:`receiveShadows`,label:`Receive Shadows`,kind:`bool`,value:!0}]},{name:`Collider`,icon:`hexagon`,category:`capability`,fields:[{key:`shape`,label:`Shape`,kind:`enum`,value:`Box`,options:[`Box`,`Sphere`,`Capsule`,`Mesh`]},{key:`center`,label:`Center`,kind:`vector3`,value:{x:0,y:0,z:0}},{key:`isTrigger`,label:`Is Trigger`,kind:`bool`,value:!1}]}]},"red-box":{id:`red-box`,name:`RedBox`,badge:`Mesh`,components:[{name:`Transform`,icon:`move3d`,category:`all`,fields:[{key:`position`,label:`Position`,kind:`vector3`,value:{x:0,y:.5,z:2.4}},{key:`rotation`,label:`Rotation`,kind:`vector3`,value:{x:0,y:45,z:0}},{key:`scale`,label:`Scale`,kind:`vector3`,value:{x:1,y:1,z:1}}]},{name:`MeshFilter`,icon:`box`,category:`type`,fields:[{key:`mesh`,label:`Mesh`,kind:`asset`,value:`Cube`}]},{name:`MeshRenderer`,icon:`layers`,category:`capability`,fields:[{key:`material`,label:`Material 0`,kind:`asset`,value:`Red Material`},{key:`castShadows`,label:`Cast Shadows`,kind:`bool`,value:!0}]}]},player:{id:`player`,name:`Player`,badge:`Character`,components:[{name:`Transform`,icon:`move3d`,category:`all`,fields:[{key:`position`,label:`Position`,kind:`vector3`,value:{x:-1.2,y:0,z:0}},{key:`rotation`,label:`Rotation`,kind:`vector3`,value:{x:0,y:0,z:0}},{key:`scale`,label:`Scale`,kind:`vector3`,value:{x:1,y:1,z:1}}]},{name:`CharacterController`,icon:`user`,category:`capability`,fields:[{key:`speed`,label:`Move Speed`,kind:`number`,value:6},{key:`jumpHeight`,label:`Jump Height`,kind:`number`,value:1.4},{key:`enabled`,label:`Enabled`,kind:`bool`,value:!0}]}]},sun:{id:`sun`,name:`Sun`,badge:`Light`,components:[{name:`Transform`,icon:`move3d`,category:`all`,fields:[{key:`rotation`,label:`Rotation`,kind:`vector3`,value:{x:50,y:-30,z:0}}]},{name:`Light`,icon:`sun`,category:`type`,fields:[{key:`type`,label:`Type`,kind:`enum`,value:`Directional`,options:[`Directional`,`Point`,`Spot`]},{key:`color`,label:`Color`,kind:`color`,value:`#fff4d6`},{key:`intensity`,label:`Intensity`,kind:`number`,value:3.2},{key:`castShadows`,label:`Cast Shadows`,kind:`bool`,value:!0}]}]}};function Er(e,{demo:t=!1,mockById:n=null}={}){return e?.entityId&&t&&n?.[e.entityId]?n[e.entityId]:null}function Dr(e){return!e?.entityId||!Array.isArray(e.components)?null:{id:e.entityId,name:e.name??(e.entity===void 0?e.entityId:`Entity ${e.entity}`),badge:`Entity`,components:e.components.map(e=>({name:e.name,icon:`box`,category:`all`,fields:Object.entries(e.fields??{}).map(([t,n])=>{let r=e.values?.[t],i=ct(n,r);return{key:t,label:G(t),kind:i,value:lt(r,i)}})}))}}function Or(e,t,n){return!e||!t?.entityId||!n?.targetId?!1:e.entityId===t.entityId&&e.targetId===n.targetId&&e.generation===n.generation}function kr(e,t=13){let n={size:t,strokeWidth:1.7};return e.name===`Transform`?(0,K.jsx)(Je,{...n}):e.name===`Light`?(0,K.jsx)(Ue,{...n}):e.name===`Camera`?(0,K.jsx)(Ee,{...n}):e.name.includes(`Renderer`)?(0,K.jsx)(W,{...n}):e.name.includes(`Body`)||e.name.includes(`Collider`)?(0,K.jsx)(He,{...n}):e.name.includes(`Character`)?(0,K.jsx)(ke,{...n}):(0,K.jsx)(P,{...n})}function Ar({state:e,close:t}){let n=ve(),{t:r}=Sr();return(0,U.useEffect)(()=>{let e=()=>t(),n=e=>e.key===`Escape`&&t();return window.addEventListener(`pointerdown`,e),window.addEventListener(`keydown`,n),()=>{window.removeEventListener(`pointerdown`,e),window.removeEventListener(`keydown`,n)}},[t]),(0,xr.createPortal)((0,K.jsx)(`div`,{className:`insp-context-menu fx-ui`,"data-action":wr.showContextMenu,style:{left:Math.max(8,Math.min(e.x,window.innerWidth-238)),top:Math.max(8,Math.min(e.y,window.innerHeight-300))},onPointerDown:e=>e.stopPropagation(),onContextMenu:e=>e.preventDefault(),children:(0,K.jsx)(a,{label:r(`inspector.contextMenu`),items:e.items.map(e=>e.kind===`separator`?{type:`separator`}:e.kind===`title`?{type:`title`,label:e.label}:{id:e.id,label:e.label,icon:e.forge?(0,K.jsx)(`span`,{className:`insp-menu-forge`,children:e.icon}):e.icon,disabled:e.disabled,danger:e.danger,onSelect:()=>{e.action(),t()}})})}),n??document.body)}function jr({source:e,focus:t}){let{t:n}=Sr(),r=e.name,i=(0,U.useMemo)(()=>structuredClone(e.components),[e]),[l,u]=(0,U.useState)(new Set),[d,f]=(0,U.useState)(``),[p,m]=(0,U.useState)(!1),[g,_]=(0,U.useState)(null),v=(0,U.useRef)(null),[y,b]=(0,U.useState)(!1),[S,C]=(0,U.useState)(null),w=(0,U.useRef)({});(0,U.useEffect)(()=>{p||_(null)},[p]);let T=()=>{if(p){m(!1);return}let e=v.current?.getBoundingClientRect();e&&_(e),m(!0)},E=(e,t)=>{e.preventDefault(),e.stopPropagation(),m(!1),C({x:e.clientX,y:e.clientY,items:t})},D=e=>[{kind:`title`,label:e.name},{kind:`item`,id:`copy`,label:n(`inspector.menu.copyComponentJson`),icon:(0,K.jsx)(x,{size:14}),action:()=>void navigator.clipboard?.writeText(JSON.stringify({[e.name]:e.fields},null,2))}],O=(e,t)=>[{kind:`title`,label:`${e.name}.${t.label}`},{kind:`item`,id:`copy-value`,label:n(`inspector.menu.copyValue`),icon:(0,K.jsx)(x,{size:14}),action:()=>void navigator.clipboard?.writeText(JSON.stringify(t.value))}],ee=(0,U.useMemo)(()=>{let e=d.trim().toLowerCase();return i.map(t=>({...t,fields:t.fields.filter(n=>!e||t.name.toLowerCase().includes(e)||n.label.toLowerCase().includes(e)||n.key.toLowerCase().includes(e))})).filter(t=>!e||t.name.toLowerCase().includes(e)||t.fields.length>0)},[i,d]);return(0,K.jsxs)(`div`,{className:`fx-inspector__body`,children:[(0,K.jsx)(s,{className:`insp-header`,onContextMenu:e=>E(e,[{kind:`title`,label:r},{kind:`item`,id:`focus`,label:n(`inspector.menu.focusViewport`),icon:(0,K.jsx)(Ie,{size:14}),action:()=>t?.(),disabled:!t},{kind:`item`,id:`copy`,label:n(`inspector.menu.copyObjectJson`),icon:(0,K.jsx)(x,{size:14}),action:()=>void navigator.clipboard?.writeText(JSON.stringify({name:r,components:i},null,2))}]),start:(0,K.jsxs)(`span`,{className:`insp-header-identity`,children:[(0,K.jsx)(`span`,{className:`tico`,children:e.badge===`Light`?(0,K.jsx)(Ue,{size:15}):e.badge===`Character`?(0,K.jsx)(ke,{size:15}):(0,K.jsx)(P,{size:15})}),(0,K.jsx)(`span`,{className:`insp-header-copy`,children:(0,K.jsx)(c,{as:`span`,variant:`label`,className:`insp-header-name`,title:r,children:r})})]}),end:(0,K.jsxs)(`span`,{className:`insp-header-end`,children:[e.badge?(0,K.jsx)(`span`,{className:`badge`,title:e.badge,children:e.badge}):null,(0,K.jsx)(H,{"data-action":wr.focus,onClick:t,disabled:!t,label:n(`inspector.focusObject`),icon:(0,K.jsx)(je,{size:15}),variant:`quiet`,size:`compact`}),(0,K.jsx)(H,{"data-action":wr.copyEntity,label:n(`inspector.copyJson`),icon:y?(0,K.jsx)(he,{size:15}):(0,K.jsx)(x,{size:15}),variant:`quiet`,size:`compact`,onClick:()=>{navigator.clipboard?.writeText(JSON.stringify({name:r,components:i},null,2)),b(!0),window.setTimeout(()=>b(!1),1e3)}})]})}),(0,K.jsxs)(h,{className:`insp-toolbar`,children:[(0,K.jsx)(ce,{"data-testid":`insp-search`,"data-action":wr.search,value:d,onChange:e=>f(e.target.value),onClear:()=>f(``),placeholder:n(`inspector.searchPlaceholder`),label:n(`inspector.searchLabel`)}),(0,K.jsx)(H,{ref:v,className:p?`is-active`:void 0,"data-testid":`insp-settings`,label:n(`inspector.displaySettings`),icon:(0,K.jsx)(et,{size:15}),variant:`secondary`,size:`compact`,onClick:T})]}),(0,K.jsxs)(`div`,{className:`insp-scroll`,"data-testid":`insp-scroll`,children:[(0,K.jsxs)(`div`,{className:`dp-comp`,children:[(0,K.jsx)(`div`,{className:`ch`,children:(0,K.jsx)(c,{as:`span`,variant:`caption`,tone:`muted`,children:n(`inspector.components`)})}),i.map(e=>(0,K.jsxs)(`div`,{role:`button`,tabIndex:0,className:`comp-row`,"data-testid":`insp-comprow-${e.name}`,onClick:()=>{u(t=>{let n=new Set(t);return n.delete(e.name),n}),w.current[e.name]?.scrollIntoView({behavior:`smooth`,block:`start`})},onContextMenu:t=>E(t,D(e)),children:[(0,K.jsx)(`span`,{className:`ci`,children:kr(e)}),(0,K.jsx)(`span`,{className:`comp-name`,children:e.name})]},e.name))]}),(0,K.jsx)(`div`,{className:`dp-body`,children:ee.length===0?(0,K.jsx)(V,{className:`no-match`,title:n(`inspector.noMatchTitle`),description:n(`inspector.noMatchDescription`)}):ee.map(e=>{let t=l.has(e.name)&&!d;return(0,K.jsx)(`div`,{className:`cat ${e.category===`all`?`dim-all`:e.category===`capability`?`dim-cap`:`dim-type`}`,ref:t=>{w.current[e.name]=t},onContextMenu:t=>E(t,D(e)),children:(0,K.jsx)(se,{open:!t,onOpenChange:t=>u(n=>{let r=new Set(n);return t?r.delete(e.name):r.add(e.name),r}),triggerProps:{"data-action":wr.toggleComponent},title:(0,K.jsxs)(`span`,{className:`cat-title`,children:[(0,K.jsx)(`span`,{className:`cat-icon`,children:kr(e)}),(0,K.jsx)(`span`,{children:e.name})]}),trailing:(0,K.jsxs)(`span`,{className:`cacts`,children:[(0,K.jsx)(H,{className:`cact`,"data-action":wr.copyComponent,label:n(`inspector.menu.copyComponentJson`),icon:(0,K.jsx)(x,{size:13}),variant:`quiet`,size:`compact`,onClick:t=>{t.stopPropagation(),navigator.clipboard?.writeText(JSON.stringify(e,null,2))}}),(0,K.jsx)(H,{className:`cact more`,label:n(`inspector.more`),icon:(0,K.jsx)(Ne,{size:14}),variant:`quiet`,size:`compact`,onClick:t=>E(t,D(e))})]}),children:(0,K.jsx)(`div`,{className:`cat-fields`,children:e.fields.length===0?(0,K.jsx)(V,{className:`no-match`,title:n(`inspector.noMatchTitle`),description:n(`inspector.noMatchComponent`)}):e.fields.map(t=>(0,K.jsx)(`div`,{className:`f-row-wrap`,"data-testid":`insp-field-${e.name}-${t.key}`,onContextMenu:n=>{n.stopPropagation(),E(n,O(e,t))},children:(0,K.jsx)(o,{className:`f-row`,label:(0,K.jsx)(`span`,{title:t.key,children:t.label}),children:(0,K.jsx)(bt,{field:t})})},t.key))})})},e.name)})})]}),(0,K.jsx)(te,{open:!!(g&&p),anchorRect:g,onClose:()=>m(!1),ignorePointerWithin:[v],containerProps:{onPointerDown:e=>e.stopPropagation()},children:(0,K.jsx)(`div`,{className:`fx-insp-menu`,children:(0,K.jsx)(a,{label:n(`inspector.displaySettings`),items:[{type:`title`,label:n(`inspector.displaySettings`)},{id:`expand`,label:n(`inspector.expandAll`),buttonProps:{"data-action":wr.expandAll},icon:(0,K.jsx)(Ge,{size:14}),onSelect:()=>{u(new Set),m(!1)}},{id:`collapse`,label:n(`inspector.collapseAll`),buttonProps:{"data-action":wr.collapseAll},icon:(0,K.jsx)(Ke,{size:14}),onSelect:()=>{u(new Set(i.map(e=>e.name))),m(!1)}}]})})}),S?(0,K.jsx)(Ar,{state:S,close:()=>C(null)}):null]})}function Mr(e){let{t}=Sr(),n=(0,U.useMemo)(()=>D(e.client),[e.client]),r=(0,U.useSyncExternalStore)(n.subscribe,()=>n.getSnapshot(),()=>n.getSnapshot()),i=r?.sceneSelection?.primary??null,a=r?.preview?.target,o=be(e.demo?void 0:e.client),[s,c]=(0,U.useState)(null),[l,u]=(0,U.useState)(!1),[d,p]=(0,U.useState)(null),m=(0,U.useRef)(null),h=i?.entityId&&a?.targetId?`${i.entityId}:${a.targetId}:${a.generation??``}`:null;(0,U.useEffect)(()=>{i?.entityId||(m.current=null)},[i?.entityId]),(0,U.useEffect)(()=>{if(e.demo||!e.client||!o||!i?.entityId||!a?.targetId){u(!1);return}let t=f(n,e=>e?.sceneSelection?.primary?.entityId===i.entityId&&e?.preview?.target?.targetId===a.targetId&&e?.preview?.target?.generation===a.generation),{signal:r}=t,s;u(!0),p(null);let l=async()=>{if(!r.aborted){try{let t=await e.client.call(`entity.inspect`,{entityId:i.entityId,targetId:a.targetId,targetGeneration:a.generation},{signal:r});if(r.aborted)return;let n=Dr(t);c(e=>{let t={entityId:i.entityId,targetId:a.targetId,generation:a.generation,source:n};return e&&e.entityId===t.entityId&&e.targetId===t.targetId&&e.generation===t.generation&&R(e.source,t.source)?e:t}),p(null),u(!1)}catch(e){if(r.aborted)return;c(e=>e==null?e:null),p(String(e)),u(!1)}r.aborted||(s=setTimeout(l,500))}};return l(),()=>{t.dispose(),clearTimeout(s)}},[e.client,e.demo,o,h,n,r]);let g=Or(s,i,a),_=g?s?.source??null:null;(0,U.useEffect)(()=>{_&&(m.current=_)},[_]);let v=Er(i,{demo:!0,mockById:Tr}),y=!!i?.entityId,b=e.demo?v:_??(y?m.current:null),x=e.client&&a&&i?.entityId?()=>{e.client.call(`entity.focus`,{entityId:i.entityId,targetId:a.targetId,targetGeneration:a.generation}).catch(e=>p(String(e)))}:void 0,S=e.demo?!v:!y||!b&&!l,C=!e.demo&&y&&!b&&l,w=!e.demo&&y&&!g&&l&&!!b;return(0,K.jsx)(`div`,{className:`fx-inspector fx-ui`,"data-testid":`panel-inspector`,"data-view-readonly":`true`,"data-entity-id":g?_?.id:i?.entityId??b?.id,"data-inspector-loading":w||C?`true`:void 0,children:S?(0,K.jsx)(V,{className:`dp-empty`,"data-testid":`insp-empty`,title:t(`inspector.emptyTitle`),description:d??t(`inspector.emptyDescription`),icon:(0,K.jsx)(qe,{})}):C?(0,K.jsx)(`div`,{className:`fx-inspector__loading-pane`,"data-testid":`insp-loading`,children:(0,K.jsx)(F,{label:t(`inspector.loading`)})}):b?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(jr,{source:b,focus:x},b.id),w?(0,K.jsx)(`div`,{className:`fx-inspector__loading-veil`,"aria-hidden":!0,children:(0,K.jsx)(F,{label:t(`inspector.loading`)})}):null]}):null})}async function Nr(e){if(!e.mountElement)throw TypeError(`mountInspectorPanel requires mountElement`);let t=(0,At.createRoot)(e.mountElement);return t.render((0,K.jsx)(S,{root:e.overlayRoot??e.mountElement,children:(0,K.jsx)(Mr,{client:e.client,demo:e.demo})})),async()=>t.unmount()}var Pr={material:{title:`Material`,empty:`Open a material asset`,unavailable:`Material inspection unavailable`,inspectFailed:`Engine asset.inspect did not return material facts for this GUID.`,facts:`Material facts`,toolbar:`Material actions`,expandAll:`Expand all`,collapseAll:`Collapse all`,searchField:`Search parameters`,searchLabel:`Search material parameters`,searchPlaceholder:`Search parameters…`,subtitle:`Material · Surface`,parameters:`Parameter contract`,publication:`Publication`,renderState:`Render state`,surface:`Surface`,textureSlots:`Texture references`,baseColorMap:`Base Color Map`,normalMap:`Normal Map`,unbound:`Unbound`,colorPreview:`Color preview: {{color}}`,roughnessValue:`Roughness value`,metallicValue:`Metallic value`,previewTitle:`Material preview`,previewDemo:`UI debug uses a local mock. Connect Engine to attach the real preview target.`,previewUnavailable:`Material preview unavailable`,previewConnect:`Connect to the View workspace API to attach the Engine preview target.`,previewEmpty:`No material preview`,previewEmptyDescription:`Open a material asset from the Content Browser.`,previewCapabilityMissing:`Engine did not return a preview target for this material.`}},Fr={material:{title:`材质`,empty:`打开材质资产`,unavailable:`材质检查不可用`,inspectFailed:`Engine asset.inspect 没有返回该 GUID 的材质事实。`,facts:`材质事实`,toolbar:`材质操作`,expandAll:`全部展开`,collapseAll:`全部折叠`,searchField:`搜索参数`,searchLabel:`搜索材质参数`,searchPlaceholder:`搜索参数…`,subtitle:`材质 · 表面`,parameters:`参数契约`,publication:`发布信息`,renderState:`渲染状态`,surface:`表面`,textureSlots:`纹理引用`,baseColorMap:`Base Color Map`,normalMap:`Normal Map`,unbound:`未绑定`,colorPreview:`颜色预览:{{color}}`,roughnessValue:`Roughness 数值`,metallicValue:`Metallic 数值`,previewTitle:`材质预览`,previewDemo:`UI 调试使用本地 mock。连接 Engine 后才会附着真实预览目标。`,previewUnavailable:`材质预览不可用`,previewConnect:`连接到 View 工作区 API 以附着 Engine 预览目标。`,previewEmpty:`没有材质预览`,previewEmptyDescription:`请从内容浏览器打开材质资产。`,previewCapabilityMissing:`Engine 没有为该材质返回预览目标。`}};function Ir(e){let t=`zh`,n=new Set,r=(e,t)=>t.split(`.`).reduce((e,t)=>e?.[t],e);return{t:(n,i)=>{let a=r(e[t],n)??r(e.en,n)??n;return i?a.replace(/\{\{(\w+)\}\}/g,(e,t)=>String(i[t]??``)):a},subscribe:e=>(n.add(e),()=>n.delete(e)),getLocale:()=>t,setLocale:e=>{if(!(e!==`en`&&e!==`zh`)){t=e;for(let e of n)e()}}}}var Lr=Ir({en:Pr,zh:Fr}),Rr=Lr.t,zr=Lr.subscribe,Br=Lr.getLocale;Lr.setLocale,L(Lr.setLocale);function Vr(){let e=(0,U.useSyncExternalStore)(zr,Br,Br);return{t:(0,U.useCallback)((e,t)=>Rr(e,t),[e]),locale:e}}function Hr(e){if(!e||typeof e!=`object`)return null;let t=`inspection`in e&&e.inspection!==void 0?e.inspection:e;return t&&typeof t==`object`&&!Array.isArray(t)?t:null}function Ur(e){return(0,K.jsx)(Wr,{...e})}function Wr({client:e,demo:t=!1}){let{t:n}=Vr();return t?(0,K.jsx)(Kr,{}):e?(0,K.jsx)(Gr,{client:e}):(0,K.jsx)(`div`,{className:`fx-asset-editor fx-ui`,"data-testid":`panel-material-properties`,children:(0,K.jsx)(V,{title:n(`material.unavailable`),description:n(`material.empty`)})})}function Gr({client:e}){let{t}=Vr(),n=(0,U.useMemo)(()=>D(e),[e]),r=(0,U.useSyncExternalStore)(n.subscribe,()=>n.getSnapshot(),()=>n.getSnapshot()),i=I(r,N),a=r?.project?.id,[o,c]=(0,U.useState)(null),[l,u]=(0,U.useState)(!1);return(0,U.useEffect)(()=>{if(!i?.guid||!a){c(null),u(!1);return}let t=new AbortController;return e.inspectAsset(i.guid,{projectId:a,tabId:B,signal:t.signal}).then(e=>{t.signal.aborted||(c(Hr(e)),u(!1))}).catch(()=>{t.signal.aborted||(c(null),u(!0))}),()=>t.abort()},[e,i?.guid,a]),i?l?(0,K.jsx)(`div`,{className:`fx-asset-editor fx-ui`,"data-testid":`panel-material-properties`,children:(0,K.jsx)(V,{title:t(`material.unavailable`),description:t(`material.inspectFailed`)})}):(0,K.jsxs)(`div`,{className:`fx-asset-editor fx-ui`,"data-testid":`panel-material-properties`,"data-view-readonly":`true`,children:[(0,K.jsx)(s,{start:(0,K.jsx)(`span`,{children:(0,K.jsx)(`strong`,{children:String(i.name??i.guid)})})}),(0,K.jsx)(St,{inspection:o??{guid:i.guid,asset:i},identityTitle:t(`material.facts`)})]}):(0,K.jsx)(`div`,{className:`fx-asset-editor fx-ui`,"data-testid":`panel-material-properties`,children:(0,K.jsx)(V,{title:t(`material.empty`),description:t(`material.unavailable`)})})}function Kr(){let{t:e}=Vr(),t=[{key:`surface`,name:e(`material.surface`),category:`type`,fields:[{key:`baseColor`,label:`Base Color`,kind:`color`,value:`#91a874`},{key:`roughness`,label:`Roughness`,kind:`number`,value:.48},{key:`metallic`,label:`Metallic`,kind:`number`,value:.1}]},{key:`textures`,name:e(`material.textureSlots`),category:`capability`,fields:[{key:`baseColorMap`,label:e(`material.baseColorMap`),kind:`asset`,value:`grass_albedo.png`},{key:`normalMap`,label:e(`material.normalMap`),kind:`asset`,value:``}]}];return(0,K.jsxs)(`div`,{className:`fx-asset-editor fx-ui`,"data-testid":`panel-material-properties`,"data-view-readonly":`true`,children:[(0,K.jsx)(s,{start:(0,K.jsx)(`span`,{children:(0,K.jsx)(`strong`,{children:`base-material.pack.json`})})}),(0,K.jsx)(St,{groups:t})]})}function qr({client:e,presentation:t,owner:n,demo:r=!1}){let{t:i}=Vr();return r||!e?(0,K.jsx)(Jr,{title:i(`material.previewEmpty`),description:i(`material.previewUnavailable`)}):(0,K.jsx)(Yr,{client:e,presentation:t,owner:n})}function Jr({title:e,description:t}){return(0,K.jsx)(`div`,{className:`fx-asset-editor fx-asset-preview fx-ui`,"data-testid":`panel-material-preview`,children:(0,K.jsx)(V,{title:e,description:t})})}function Yr({client:e,presentation:t,owner:n}){let{t:r}=Vr(),i=(0,U.useMemo)(()=>D(e),[e]),a=(0,U.useSyncExternalStore)(i.subscribe,i.getSnapshot,i.getSnapshot),o=I(a,N),s=v(a,o?.guid),c=(0,U.useRef)(null),[l,u]=(0,U.useState)();return(0,U.useEffect)(()=>{let r=c.current;if(!r||!s?.target)return;let i=j({presentation:t,target:s.target,container:r,owner:n,api:e,editorTargetId:a?.editorPreview?.target?.targetId});if(!i.ok){u(i.error);return}return u(void 0),()=>{i.dispose?.()}},[t,n,s?.target,s?.target?.targetId,s?.target?.generation,s?.target?.surfaceId,a?.editorPreview?.target?.targetId,e]),o?s?.target?(0,K.jsxs)(`div`,{className:`fx-asset-editor fx-asset-preview fx-ui`,"data-testid":`panel-material-preview`,children:[(0,K.jsx)(`div`,{ref:c,className:`fx-asset-preview-surface`,"data-forgeax-asset-preview":s.target.targetId,hidden:!!l}),l?(0,K.jsx)(V,{title:r(`material.previewUnavailable`),description:l.hint??l.expected??r(`material.previewCapabilityMissing`)}):null]}):(0,K.jsx)(Jr,{title:r(`material.previewUnavailable`),description:r(`material.previewCapabilityMissing`)}):(0,K.jsx)(Jr,{title:r(`material.previewEmpty`),description:r(`material.previewEmptyDescription`)})}function Xr(e,t){if(!t.mountElement)throw TypeError(`material panel mount requires mountElement`);let n=(0,At.createRoot)(t.mountElement);return n.render((0,K.jsx)(S,{root:t.overlayRoot??t.mountElement,children:e})),async()=>n.unmount()}async function Zr(e){return Xr((0,K.jsx)(Ur,{demo:e.demo,client:e.client}),e)}async function Qr(e){return Xr((0,K.jsx)(Wr,{demo:e.demo,client:e.client}),e)}async function $r(e){return Xr((0,K.jsx)(qr,{demo:e.demo,client:e.client,presentation:e.presentation,owner:e.owner}),e)}var ei={mesh:{empty:`Open a mesh asset`,unavailable:`Mesh inspection unavailable`,inspectFailed:`Engine asset.inspect did not return mesh facts for this GUID.`,previewUnavailable:`Mesh preview unavailable`,previewCapabilityMissing:`Engine did not return a preview target for this mesh.`,previewEmpty:`No mesh preview`,facts:`Mesh facts`,slots:`Material slots`}},ti={mesh:{empty:`打开网格资产`,unavailable:`网格检查不可用`,inspectFailed:`Engine asset.inspect 没有返回该 GUID 的网格事实。`,previewUnavailable:`网格预览不可用`,previewCapabilityMissing:`Engine 没有为该网格返回预览目标。`,previewEmpty:`没有网格预览`,facts:`网格事实`,slots:`材质槽`}};function ni(e){let t=`zh`,n=new Set,r=(e,t)=>t.split(`.`).reduce((e,t)=>e?.[t],e);return{t:(n,i)=>{let a=r(e[t],n)??r(e.en,n)??n;return i?a.replace(/\{\{(\w+)\}\}/g,(e,t)=>String(i[t]??``)):a},subscribe:e=>(n.add(e),()=>n.delete(e)),getLocale:()=>t,setLocale:e=>{if(!(e!==`en`&&e!==`zh`)){t=e;for(let e of n)e()}}}}var ri=ni({en:ei,zh:ti}),ii=ri.t,ai=ri.subscribe,oi=ri.getLocale;ri.setLocale,L(ri.setLocale);function si(){let e=(0,U.useSyncExternalStore)(ai,oi,oi);return{t:(0,U.useCallback)((e,t)=>ii(e,t),[e]),locale:e}}function ci({client:e,presentation:t,owner:n,demo:r=!1}){let{t:i}=si();return r||!e?(0,K.jsx)(li,{title:i(`mesh.previewEmpty`),description:i(`mesh.previewUnavailable`)}):(0,K.jsx)(ui,{client:e,presentation:t,owner:n})}function li({title:e,description:t}){return(0,K.jsx)(`div`,{className:`fx-asset-editor fx-asset-preview fx-ui`,"data-testid":`panel-mesh-preview`,children:(0,K.jsx)(V,{title:e,description:t})})}function ui({client:e,presentation:t,owner:n}){let{t:r}=si(),i=(0,U.useMemo)(()=>D(e),[e]),a=(0,U.useSyncExternalStore)(i.subscribe,()=>i.getSnapshot(),()=>i.getSnapshot()),o=I(a,ie),s=v(a,o?.guid),c=(0,U.useRef)(null),[l,u]=(0,U.useState)();return(0,U.useEffect)(()=>{let r=c.current;if(!r||!s?.target)return;let i=j({presentation:t,target:s.target,container:r,owner:n,api:e,editorTargetId:a?.editorPreview?.target?.targetId});if(!i.ok){u(i.error);return}return u(void 0),()=>{i.dispose?.()}},[t,n,s?.target,s?.target?.targetId,s?.target?.generation,s?.target?.surfaceId,a?.editorPreview?.target?.targetId,e]),o?s?.target?(0,K.jsxs)(`div`,{className:`fx-asset-editor fx-asset-preview fx-ui`,"data-testid":`panel-mesh-preview`,children:[(0,K.jsx)(`div`,{ref:c,className:`fx-asset-preview-surface`,"data-forgeax-asset-preview":s.target.targetId,hidden:!!l}),l?(0,K.jsx)(V,{title:r(`mesh.previewUnavailable`),description:l.hint??l.expected??r(`mesh.previewCapabilityMissing`)}):null]}):(0,K.jsx)(li,{title:r(`mesh.previewUnavailable`),description:r(`mesh.previewCapabilityMissing`)}):(0,K.jsx)(li,{title:r(`mesh.previewEmpty`),description:r(`mesh.empty`)})}function di({client:e,demo:t=!1}){let{t:n}=si();return t||!e?(0,K.jsx)(`div`,{className:`fx-asset-editor fx-ui`,"data-testid":`panel-mesh-properties`,children:(0,K.jsx)(V,{title:n(`mesh.unavailable`),description:n(`mesh.empty`)})}):(0,K.jsx)(fi,{client:e})}function fi({client:e}){let{t}=si(),n=(0,U.useMemo)(()=>D(e),[e]),r=(0,U.useSyncExternalStore)(n.subscribe,()=>n.getSnapshot(),()=>n.getSnapshot()),i=I(r,ie),a=r?.project?.id,[o,c]=(0,U.useState)(null),[l,u]=(0,U.useState)(!1);return(0,U.useEffect)(()=>{if(!i?.guid||!a){c(null),u(!1);return}let t=new AbortController;return e.inspectAsset(i.guid,{projectId:a,tabId:B,signal:t.signal}).then(e=>{t.signal.aborted||(c(Hr(e)),u(!1))}).catch(()=>{t.signal.aborted||(c(null),u(!0))}),()=>t.abort()},[e,i?.guid,a]),i?l?(0,K.jsx)(`div`,{className:`fx-asset-editor fx-ui`,"data-testid":`panel-mesh-properties`,children:(0,K.jsx)(V,{title:t(`mesh.unavailable`),description:t(`mesh.inspectFailed`)})}):(0,K.jsxs)(`div`,{className:`fx-asset-editor fx-ui`,"data-testid":`panel-mesh-properties`,"data-view-readonly":`true`,children:[(0,K.jsx)(s,{start:(0,K.jsx)(`span`,{children:(0,K.jsx)(`strong`,{children:String(i.name??i.guid)})})}),(0,K.jsx)(St,{inspection:o??{guid:i.guid,asset:i},identityTitle:t(`mesh.facts`)})]}):(0,K.jsx)(`div`,{className:`fx-asset-editor fx-ui`,"data-testid":`panel-mesh-properties`,children:(0,K.jsx)(V,{title:t(`mesh.empty`),description:t(`mesh.unavailable`)})})}function pi(e,t){if(!t.mountElement)throw TypeError(`mesh panel mount requires mountElement`);let n=(0,At.createRoot)(t.mountElement);return n.render((0,K.jsx)(S,{root:t.overlayRoot??t.mountElement,children:e})),async()=>n.unmount()}async function mi(e){return pi((0,K.jsx)(ci,{demo:e.demo,client:e.client,presentation:e.presentation,owner:e.owner}),e)}async function hi(e){return pi((0,K.jsx)(di,{demo:e.demo,client:e.client}),e)}var gi={texture:{empty:`Open a texture asset`,unavailable:`Texture inspection unavailable`,inspectFailed:`Engine asset.inspect did not return texture facts for this GUID.`,previewUnavailable:`Texture preview unavailable`,previewCapabilityMissing:`Engine did not return a preview target for this texture.`,previewEmpty:`No texture preview`,facts:`Texture facts`}},_i={texture:{empty:`打开纹理资产`,unavailable:`纹理检查不可用`,inspectFailed:`Engine asset.inspect 没有返回该 GUID 的纹理事实。`,previewUnavailable:`纹理预览不可用`,previewCapabilityMissing:`Engine 没有为该纹理返回预览目标。`,previewEmpty:`没有纹理预览`,facts:`纹理事实`}};function vi(e){let t=`zh`,n=new Set,r=(e,t)=>t.split(`.`).reduce((e,t)=>e?.[t],e);return{t:(n,i)=>{let a=r(e[t],n)??r(e.en,n)??n;return i?a.replace(/\{\{(\w+)\}\}/g,(e,t)=>String(i[t]??``)):a},subscribe:e=>(n.add(e),()=>n.delete(e)),getLocale:()=>t,setLocale:e=>{if(!(e!==`en`&&e!==`zh`)){t=e;for(let e of n)e()}}}}var yi=vi({en:gi,zh:_i}),bi=yi.t,xi=yi.subscribe,Si=yi.getLocale;yi.setLocale,L(yi.setLocale);function Ci(){let e=(0,U.useSyncExternalStore)(xi,Si,Si);return{t:(0,U.useCallback)((e,t)=>bi(e,t),[e]),locale:e}}function wi({client:e,presentation:t,owner:n,demo:r=!1}){let{t:i}=Ci();return r||!e?(0,K.jsx)(Ti,{title:i(`texture.previewEmpty`),description:i(`texture.previewUnavailable`)}):(0,K.jsx)(Ei,{client:e,presentation:t,owner:n})}function Ti({title:e,description:t}){return(0,K.jsx)(`div`,{className:`fx-asset-editor fx-asset-preview fx-ui`,"data-testid":`panel-texture-preview`,children:(0,K.jsx)(V,{title:e,description:t})})}function Ei({client:e,presentation:t,owner:n}){let{t:r}=Ci(),i=(0,U.useMemo)(()=>D(e),[e]),a=(0,U.useSyncExternalStore)(i.subscribe,()=>i.getSnapshot(),()=>i.getSnapshot()),o=I(a,ne),s=v(a,o?.guid),c=(0,U.useRef)(null),[l,u]=(0,U.useState)();return(0,U.useEffect)(()=>{let r=c.current;if(!r||!s?.target)return;let i=j({presentation:t,target:s.target,container:r,owner:n,api:e,editorTargetId:a?.editorPreview?.target?.targetId});if(!i.ok){u(i.error);return}return u(void 0),()=>{i.dispose?.()}},[t,n,s?.target,s?.target?.targetId,s?.target?.generation,s?.target?.surfaceId,a?.editorPreview?.target?.targetId,e]),o?s?.target?(0,K.jsxs)(`div`,{className:`fx-asset-editor fx-asset-preview fx-ui`,"data-testid":`panel-texture-preview`,children:[(0,K.jsx)(`div`,{ref:c,className:`fx-asset-preview-surface`,"data-forgeax-asset-preview":s.target.targetId,hidden:!!l}),l?(0,K.jsx)(V,{title:r(`texture.previewUnavailable`),description:l.hint??l.expected??r(`texture.previewCapabilityMissing`)}):null]}):(0,K.jsx)(Ti,{title:r(`texture.previewUnavailable`),description:r(`texture.previewCapabilityMissing`)}):(0,K.jsx)(Ti,{title:r(`texture.previewEmpty`),description:r(`texture.empty`)})}function Di({client:e,demo:t=!1}){let{t:n}=Ci();return t||!e?(0,K.jsx)(`div`,{className:`fx-asset-editor fx-ui`,"data-testid":`panel-texture-properties`,children:(0,K.jsx)(V,{title:n(`texture.unavailable`),description:n(`texture.empty`)})}):(0,K.jsx)(Oi,{client:e})}function Oi({client:e}){let{t}=Ci(),n=(0,U.useMemo)(()=>D(e),[e]),r=(0,U.useSyncExternalStore)(n.subscribe,()=>n.getSnapshot(),()=>n.getSnapshot()),i=I(r,ne),a=r?.project?.id,[o,c]=(0,U.useState)(null),[l,u]=(0,U.useState)(!1);return(0,U.useEffect)(()=>{if(!i?.guid||!a){c(null),u(!1);return}let t=new AbortController;return e.inspectAsset(i.guid,{projectId:a,tabId:B,signal:t.signal}).then(e=>{t.signal.aborted||(c(Hr(e)),u(!1))}).catch(()=>{t.signal.aborted||(c(null),u(!0))}),()=>t.abort()},[e,i?.guid,a]),i?l?(0,K.jsx)(`div`,{className:`fx-asset-editor fx-ui`,"data-testid":`panel-texture-properties`,children:(0,K.jsx)(V,{title:t(`texture.unavailable`),description:t(`texture.inspectFailed`)})}):(0,K.jsxs)(`div`,{className:`fx-asset-editor fx-ui`,"data-testid":`panel-texture-properties`,"data-view-readonly":`true`,children:[(0,K.jsx)(s,{start:(0,K.jsx)(`span`,{children:(0,K.jsx)(`strong`,{children:String(i.name??i.guid)})})}),(0,K.jsx)(St,{inspection:o??{guid:i.guid,asset:i},identityTitle:t(`texture.facts`)})]}):(0,K.jsx)(`div`,{className:`fx-asset-editor fx-ui`,"data-testid":`panel-texture-properties`,children:(0,K.jsx)(V,{title:t(`texture.empty`),description:t(`texture.unavailable`)})})}function ki(e,t){if(!t.mountElement)throw TypeError(`texture panel mount requires mountElement`);let n=(0,At.createRoot)(t.mountElement);return n.render((0,K.jsx)(S,{root:t.overlayRoot??t.mountElement,children:e})),async()=>n.unmount()}async function Ai(e){return ki((0,K.jsx)(wi,{demo:e.demo,client:e.client,presentation:e.presentation,owner:e.owner}),e)}async function ji(e){return ki((0,K.jsx)(Di,{demo:e.demo,client:e.client}),e)}var Mi={asset:{empty:`Open an asset`,unavailable:`Asset inspection unavailable`,inspectFailed:`Engine asset.inspect did not return facts for this GUID.`,facts:`Asset facts`}},Ni={asset:{empty:`打开资产`,unavailable:`资产检查不可用`,inspectFailed:`Engine asset.inspect 没有返回该 GUID 的事实。`,facts:`资产事实`}};function Pi(e){let t=`zh`,n=new Set,r=(e,t)=>t.split(`.`).reduce((e,t)=>e?.[t],e);return{t:(n,i)=>{let a=r(e[t],n)??r(e.en,n)??n;return i?a.replace(/\{\{(\w+)\}\}/g,(e,t)=>String(i[t]??``)):a},subscribe:e=>(n.add(e),()=>n.delete(e)),getLocale:()=>t,setLocale:e=>{if(!(e!==`en`&&e!==`zh`)){t=e;for(let e of n)e()}}}}var Fi=Pi({en:Mi,zh:Ni}),Ii=Fi.t,Li=Fi.subscribe,Ri=Fi.getLocale;Fi.setLocale,L(Fi.setLocale);function zi(){let e=(0,U.useSyncExternalStore)(Li,Ri,Ri);return{t:(0,U.useCallback)((e,t)=>Ii(e,t),[e]),locale:e}}function Bi({client:e,demo:t=!1}){let{t:n}=zi();return t||!e?(0,K.jsx)(`div`,{className:`fx-asset-editor fx-ui`,"data-testid":`panel-asset-properties`,children:(0,K.jsx)(V,{title:n(`asset.unavailable`),description:n(`asset.empty`)})}):(0,K.jsx)(Vi,{client:e})}function Vi({client:e}){let{t}=zi(),n=(0,U.useMemo)(()=>D(e),[e]),r=(0,U.useSyncExternalStore)(n.subscribe,()=>n.getSnapshot(),()=>n.getSnapshot()),i=r?.openRequest?.asset,a=r?.project?.id,[o,c]=(0,U.useState)(null),[l,u]=(0,U.useState)(!1);if((0,U.useEffect)(()=>{if(!i?.guid||!a){c(null),u(!1);return}let t=new AbortController;return e.inspectAsset(i.guid,{projectId:a,tabId:B,signal:t.signal}).then(e=>{t.signal.aborted||(c(Hr(e)),u(!1))}).catch(()=>{t.signal.aborted||(c(null),u(!0))}),()=>t.abort()},[e,i?.guid,a]),!i)return(0,K.jsx)(`div`,{className:`fx-asset-editor fx-ui`,"data-testid":`panel-asset-properties`,children:(0,K.jsx)(V,{title:t(`asset.empty`),description:t(`asset.unavailable`)})});if(l)return(0,K.jsx)(`div`,{className:`fx-asset-editor fx-ui`,"data-testid":`panel-asset-properties`,children:(0,K.jsx)(V,{title:t(`asset.unavailable`),description:t(`asset.inspectFailed`)})});let d=o??{guid:i.guid,asset:i};return(0,K.jsxs)(`div`,{className:`fx-asset-editor fx-ui`,"data-testid":`panel-asset-properties`,"data-view-readonly":`true`,children:[(0,K.jsx)(s,{start:(0,K.jsx)(`span`,{children:(0,K.jsx)(`strong`,{children:String(i.name??i.guid)})})}),(0,K.jsx)(St,{inspection:d,identityTitle:t(`asset.facts`)})]})}async function Hi(e){if(!e.mountElement)throw TypeError(`asset panel mount requires mountElement`);let t=(0,At.createRoot)(e.mountElement);return t.render((0,K.jsx)(S,{root:e.overlayRoot??e.mountElement,children:(0,K.jsx)(Bi,{demo:e.demo,client:e.client})})),async()=>t.unmount()}var Ui={plugins:{loading:`Loading`,observed:`Host entries`,partial:`Partial inventory`,hosts:`Hosts`,allHosts:`All hosts`,thisFrontend:`This frontend`,tags:`Tags`,reset:`Reset filters`,resultCount:`Entries {{count}} / {{total}}`,sourceAssetGuid:`Source asset GUID`,unnamed:`Unnamed plugin`,sourceAssetGuidHelp:`The PluginAsset that supplied this Fiber. Child plugins can share this GUID; native plugins have no source asset GUID.`,filterHelp:`Match all selected tags. API / CLI describe tool and command contributions, not separate processes.`,gameUnavailable:`No game plugin entries have been reported by the connected sources. This does not mean no game is running.`,tag:{backend:`Backend`,frontend:`Frontend`,game:`Game`,asset:`Asset`,api:`API`,cli:`CLI`},tagHelp:{backend:`Entries observed on a backend Host`,frontend:`Entries observed on a frontend Host`,game:`Reported game sources or engine entries with World / GameHost dependencies`,asset:`Native Fiber mounted from a Pack plugin asset`,api:`Providers with observed Tool API contributions`,cli:`Entries with a command contract or Tool API command paths`},title:`Plugins`,filter:`Filter plugins, modules, entries, or services`,filterLabel:`Filter plugins`,filterPlaceholder:`Filter plugins…`,toolbar:`Plugin toolbar`,refresh:`Refresh`,loadedCount:`Entries {{count}}`,hostHealthy:`Host healthy`,emptyTitle:`No matching plugins`,emptyDescription:`Adjust the Host, tags or search keywords, or reset all filters.`,loadErrorTitle:`Could not load plugins`,retry:`Retry`,stateAll:`All states`,empty:`No plugin sources`,unavailable:`Plugin inspection unavailable`}},Wi={plugins:{loading:`Loading`,observed:`Host entries`,partial:`Partial inventory`,hosts:`Hosts`,allHosts:`All hosts`,thisFrontend:`This frontend`,tags:`Tags`,reset:`Reset filters`,resultCount:`Entries {{count}} / {{total}}`,sourceAssetGuid:`来源资产 GUID`,unnamed:`未命名插件`,sourceAssetGuidHelp:`提供此 Fiber 的插件资产;子插件可能共用该 GUID,原生插件没有来源资产 GUID。`,filterHelp:`Match all selected tags. API / CLI describe tool and command contributions, not separate processes.`,gameUnavailable:`No game plugin entries have been reported by the connected sources. This does not mean no game is running.`,tag:{backend:`Backend`,frontend:`Frontend`,game:`Game`,asset:`资产`,api:`API`,cli:`CLI`},tagHelp:{backend:`Entries observed on a backend Host`,frontend:`Entries observed on a frontend Host`,game:`Reported game sources or engine entries with World / GameHost dependencies`,asset:`从 Pack 插件资产挂载的原生 Fiber`,api:`Providers with observed Tool API contributions`,cli:`Entries with a command contract or Tool API command paths`},title:`插件`,filter:`筛选插件、模块、条目或服务`,filterLabel:`筛选插件`,filterPlaceholder:`筛选插件…`,toolbar:`插件工具栏`,refresh:`刷新`,loadedCount:`条目 {{count}}`,hostHealthy:`Host 正常`,emptyTitle:`没有匹配的插件`,emptyDescription:`请调整搜索关键词后重试。`,loadErrorTitle:`无法载入插件`,retry:`重试`,stateAll:`全部状态`,empty:`无插件来源`,unavailable:`插件检查不可用`}};function Gi(e){let t=`zh`,n=new Set,r=(e,t)=>t.split(`.`).reduce((e,t)=>e?.[t],e);return{t:(n,i)=>{let a=r(e[t],n)??r(e.en,n)??n;return i?a.replace(/\{\{(\w+)\}\}/g,(e,t)=>String(i[t]??``)):a},subscribe:e=>(n.add(e),()=>n.delete(e)),getLocale:()=>t,setLocale:e=>{if(!(e!==`en`&&e!==`zh`)){t=e;for(let e of n)e()}}}}var Ki=Gi({en:Ui,zh:Wi}),qi=Ki.t,Ji=Ki.subscribe,Yi=Ki.getLocale;Ki.setLocale,L(Ki.setLocale);function Xi(){let e=(0,U.useSyncExternalStore)(Ji,Yi,Yi);return{t:(0,U.useCallback)((e,t)=>qi(e,t),[e]),locale:e}}var Zi=`forgeax.view.plugins.ui/1`,Qi=Object.freeze({search:`plugins.search`,refresh:`plugins.refresh`,select:`plugins.select`});Object.freeze({$id:Zi,type:`object`,required:[`entries`],properties:{entries:{type:`array`,items:{type:`object`,required:[`sourceId`,`label`,`version`,`state`],properties:{sourceId:{type:`string`},label:{type:`string`},version:{type:`string`},state:{enum:[`active`,`inactive`,`error`]}}}}}});var $i=Object.freeze([`backend`,`frontend`,`game`,`asset`,`api`,`cli`]);function ea(e){let{sourceId:t,kind:n,assembly:r,actual:i,plugins:a=[],api:o}=e,s=new Map((i?.entries??[]).map(e=>[e.entryId??e.id,e])),c=a,l=new Map;for(let e of c){let t=e.entryId??e.id;l.set(t,{...l.get(t),...e})}let u=new Map;for(let e of l.values()){let i=e.entryId??e.id;if(!i)continue;let a=e.module??e.name,c=s.get(i),l=c?.realm??e.realm,d=(o?.operations??[]).filter(({owner:t})=>t&&(i===`provider:${t.sourceId}:${t.providerId}`||i===t.fiberId||e.fiberId!==void 0&&String(e.fiberId)===String(t.fiberId))),f=new Set;(n===`backend`||n===`frontend`)&&f.add(n);let p=c?.requiredServices??e.requiredServices??[];(n===`game`||n===`engine`||l===`engine`&&p.some(e=>e===`world`||e===`gameHost`))&&f.add(`game`),e.assetGuid&&f.add(`asset`),d.length&&f.add(`api`);let m=d.map(({descriptor:e})=>e?.path??e?.id?.split(`.`)).filter(e=>Array.isArray(e)&&e.length>0).map(e=>e.join(` `));(m.length||e.commandContract)&&f.add(`cli`),u.set(i,{sourceId:t,entryId:i,module:a,label:a&&a!==`unknown`?a:e.program||e.assetGuid||``,kind:n,...e.assetGuid?{assetGuid:e.assetGuid}:{},...e.program?{program:e.program}:{},realm:l,version:e.program&&e.program===r?.root?.program?r.root.codeRevision:``,state:c?.fiberState??e.fiberState??(e.disabled||e.desiredState===`disabled`?`disabled`:`unknown`),tags:[...f],operations:d.map(e=>e.descriptor.id),commands:m})}return[...u.values()]}function ta(e){let t=typeof e?.inspect==`function`?e.inspect:e?.inspectPlugins;if(!(typeof e?.sources!=`function`||typeof t!=`function`))return{sources:e.sources.bind(e),inspect:t.bind(e)}}async function na({client:e,hostAssembly:t,connectionId:n}={}){let r=[],i=[],a=t?{sourceId:n?`view-frontend:${n}`:`view-frontend`,kind:`frontend`,assembly:t.current,actual:t.status,plugins:(t.inspection??[]).map(e=>({entryId:`fiber:${e.uid}`,module:e.name,fiberState:e.state,...e.origin?.guid?{assetGuid:e.origin.guid}:{},...e.origin?.program?{program:e.origin.program}:{},missingServices:e.missingServices})),local:!0}:void 0,o=ta(e);if(!o)i.push({sourceId:`remote-hosts`,message:`Remote Host inspection unavailable. Only locally observed entries are shown.`});else try{let e=await o.sources(),t=n??e.caller?.connectionId;a&&t&&(a.sourceId=`view-frontend:${t}`);let s=(e.sources??[]).filter(e=>!a||!t||e.sourceId!==a.sourceId&&e.connection?.connectionId!==t);(await Promise.allSettled(s.map(e=>o.inspect({sourceId:e.sourceId,generation:e.generation})))).forEach((e,t)=>{let n=s[t];e.status===`fulfilled`?r.push({...n,...e.value}):(r.push({...n,unavailable:!0}),i.push({sourceId:n.sourceId,message:e.reason?.message??String(e.reason)}))})}catch(e){i.push({sourceId:`remote-hosts`,message:e?.message??String(e)})}return a&&r.push(a),r.sort((e,t)=>(e.kind===`backend`?0:1)-(t.kind===`backend`?0:1)||e.sourceId.localeCompare(t.sourceId)),{sources:r,entries:r.flatMap(ea),issues:i}}function ra(e,{query:t=``,sourceId:n=``,tags:r=[]}={}){let i=t.trim().toLowerCase();return e.filter(e=>(!n||e.sourceId===n)&&r.every(t=>e.tags.includes(t))&&[e.entryId,e.module,e.assetGuid,e.program,e.sourceId,e.kind,e.realm,e.state,...e.tags,...e.operations,...e.commands].join(` `).toLowerCase().includes(i))}function ia({sources:e,sourceId:t,tags:n,counts:r,total:i,onSource:a,onTag:o,onReset:s}){let{t:l}=Xi();return(0,K.jsxs)(`div`,{className:`fx-plugins-filters`,children:[(0,K.jsxs)(`div`,{className:`fx-plugins-filter-row`,role:`group`,"aria-label":l(`plugins.hosts`),children:[(0,K.jsx)(c,{variant:`caption`,className:`fx-plugins-filter-label`,children:l(`plugins.hosts`)}),(0,K.jsxs)(pe,{size:`compact`,variant:`quiet`,className:`fx-plugin-filter`,"aria-pressed":!t,"data-plugin-host":`all`,onClick:()=>a(``),children:[l(`plugins.allHosts`),` `,(0,K.jsx)(`span`,{children:i})]}),e.map(e=>(0,K.jsxs)(pe,{size:`compact`,variant:`quiet`,className:`fx-plugin-filter`,"aria-pressed":t===e.sourceId,title:e.sourceId,"data-plugin-host":e.sourceId,onClick:()=>a(e.sourceId),children:[e.local?l(`plugins.thisFrontend`):e.sourceId,(0,K.jsxs)(`span`,{children:[r[`host:${e.sourceId}`]??0,e.unavailable?` !`:``]})]},e.sourceId))]}),(0,K.jsxs)(`div`,{className:`fx-plugins-filter-row`,role:`group`,"aria-label":l(`plugins.tags`),children:[(0,K.jsx)(c,{variant:`caption`,className:`fx-plugins-filter-label`,children:l(`plugins.tags`)}),$i.map(e=>(0,K.jsxs)(pe,{size:`compact`,variant:`quiet`,className:`fx-plugin-filter`,"aria-pressed":n.includes(e),title:l(`plugins.tagHelp.${e}`),"data-plugin-tag":e,onClick:()=>o(e),children:[l(`plugins.tag.${e}`),` `,(0,K.jsx)(`span`,{children:r[e]??0})]},e)),(0,K.jsx)(pe,{size:`compact`,variant:`quiet`,"data-action":`plugins.reset`,onClick:s,children:l(`plugins.reset`)})]}),(0,K.jsx)(c,{variant:`caption`,className:`fx-plugins-filter-help`,children:l(`plugins.filterHelp`)})]})}function aa(e){return e.kind??`unknown`}function oa(e){return e===`active`?`success`:e===`failed`||e===`error`?`error`:e===`pending`||e===`loading`||e===`unloading`?`warning`:`info`}function sa(e){let{t}=Xi(),n=e.client??e.workspaceClient,[r,i]=(0,U.useState)([]),[a,o]=(0,U.useState)([]),[l,u]=(0,U.useState)([]),[d,f]=(0,U.useState)(``),[p,v]=(0,U.useState)([]),[y,b]=(0,U.useState)(``),[x,S]=(0,U.useState)(null),[C,w]=(0,U.useState)(!1),[E,D]=(0,U.useState)(null),O=(0,U.useRef)(0),ee=(0,U.useCallback)(async()=>{let r=++O.current;w(!0),S(null);try{let t=await na({client:n,hostAssembly:e.hostAssembly,connectionId:e.connectionId});if(r!==O.current)return;i(e=>R(e,t.entries)?e:t.entries),o(e=>R(e,t.sources)?e:t.sources),u(e=>R(e,t.issues)?e:t.issues)}catch(e){if(r!==O.current)return;i([]),o([]),u([]),S(e instanceof Error?e.message:t(`plugins.loadErrorTitle`))}finally{r===O.current&&w(!1)}},[n,e.hostAssembly,e.connectionId,t]);(0,U.useEffect)(()=>(ee(),()=>{O.current+=1}),[ee]);let k=ra(r,{query:y,sourceId:d,tags:p}),A=ra(r,{query:y,sourceId:d}),j=Object.fromEntries($i.map(e=>[e,A.filter(t=>t.tags.includes(e)).length]));for(let e of a)j[`host:${e.sourceId}`]=r.filter(t=>t.sourceId===e.sourceId).length;let te=()=>{b(``),f(``),v([])},ne=x?`error`:C||l.length?`warning`:`info`,re=x?t(`plugins.loadErrorTitle`):C?t(`plugins.loading`):l.length?t(`plugins.partial`):t(`plugins.observed`);return(0,K.jsxs)(_,{className:`fx-plugins fx-ui`,tone:`sidebar`,"data-testid":`panel-plugins`,children:[(0,K.jsx)(s,{className:`fx-plugins-header`,start:(0,K.jsx)(c,{as:`h2`,variant:`heading`,children:t(`plugins.title`)}),center:(0,K.jsx)(h,{className:`fx-plugins-toolbar`,"aria-label":t(`plugins.toolbar`),children:(0,K.jsx)(ce,{"data-action":Qi.search,label:t(`plugins.filterLabel`),value:y,onChange:e=>b(e.target.value),onClear:()=>b(``),placeholder:t(`plugins.filterPlaceholder`)})}),end:(0,K.jsx)(H,{"data-action":Qi.refresh,label:t(`plugins.refresh`),icon:(0,K.jsx)(T,{className:`fx-icon`}),variant:`quiet`,size:`compact`,disabled:C,onClick:()=>void ee()})}),(0,K.jsx)(ia,{sources:a,sourceId:d,tags:p,counts:j,total:r.length,onSource:f,onTag:e=>v(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e]),onReset:te}),(0,K.jsxs)(`div`,{className:`fx-plugins-summary`,children:[(0,K.jsxs)(c,{as:`span`,variant:`caption`,children:[(0,K.jsx)($e,{className:`fx-icon`}),` `,t(`plugins.resultCount`,{count:k.length,total:r.length})]}),(0,K.jsx)(g,{tone:ne,children:re})]}),l.length>0?(0,K.jsx)(`div`,{className:`fx-plugins-notice`,role:`status`,"data-testid":`plugins-partial`,children:l.map(e=>(0,K.jsxs)(`p`,{children:[e.sourceId,`: `,e.message]},e.sourceId))}):null,(0,K.jsxs)(`div`,{className:`fx-plugins-list`,children:[!x&&a.filter(e=>k.some(t=>t.sourceId===e.sourceId)).map(e=>(0,K.jsxs)(`section`,{className:`fx-plugin-source`,"aria-label":e.sourceId,children:[(0,K.jsxs)(`div`,{className:`fx-plugin-source-header`,children:[(0,K.jsx)(c,{variant:`caption`,children:e.sourceId}),(0,K.jsx)(c,{variant:`caption`,children:k.filter(t=>t.sourceId===e.sourceId).length})]}),k.filter(t=>t.sourceId===e.sourceId).map(e=>{let n=`${e.sourceId}:${e.entryId}`,r=e.sourceId,i=e.label||t(`plugins.unnamed`),a=e.version||`—`,o=E===n,s=aa(e);return(0,K.jsxs)(`button`,{type:`button`,"data-action":Qi.select,className:`fx-plugin-row${o?` selected`:``}`,"data-plugin-kind":s,"data-plugin-tags":e.tags.join(` `),"data-source-id":r,"data-entry-id":e.entryId,"data-asset-guid":e.assetGuid,"aria-pressed":o,onClick:()=>D(n),children:[(0,K.jsx)(`span`,{className:`fx-plugin-icon`,children:r.includes(`view-plugin`)||r.includes(`viewport`)?(0,K.jsx)(m,{size:15}):(0,K.jsx)(P,{size:15})}),(0,K.jsxs)(`span`,{className:`fx-plugin-copy`,children:[(0,K.jsx)(`strong`,{title:i,children:i}),e.program&&e.program!==i?(0,K.jsx)(`small`,{title:e.program,children:e.program}):null,e.assetGuid?(0,K.jsxs)(`small`,{title:t(`plugins.sourceAssetGuidHelp`),children:[t(`plugins.sourceAssetGuid`),`: `,e.assetGuid]}):null,o&&e.operations.length>0?(0,K.jsx)(`small`,{className:`fx-plugin-operations`,children:e.commands.join(` · `)}):null]}),(0,K.jsx)(`span`,{className:`fx-plugin-tags`,children:e.tags.map(e=>(0,K.jsx)(g,{className:`fx-plugin-type`,tone:`info`,pill:!0,icon:null,children:t(`plugins.tag.${e}`)},e))}),(0,K.jsx)(`span`,{className:`fx-plugin-version`,children:a}),(0,K.jsx)(g,{className:`fx-plugin-state`,tone:oa(e.state),pill:!0,children:e.state})]},n)})]},e.sourceId)),!x&&!C&&k.length===0?(0,K.jsx)(V,{icon:(0,K.jsx)(Xe,{className:`fx-plugins-empty-icon`}),title:r.length===0?t(`plugins.empty`):t(`plugins.emptyTitle`),description:p.includes(`game`)&&!r.some(e=>e.tags.includes(`game`))?t(`plugins.gameUnavailable`):r.length===0?t(`plugins.unavailable`):t(`plugins.emptyDescription`)}):null,x?(0,K.jsx)(V,{title:t(`plugins.loadErrorTitle`),description:x,action:(0,K.jsx)(H,{label:t(`plugins.retry`),icon:(0,K.jsx)(T,{className:`fx-icon`}),onClick:()=>void ee()})}):null]})]})}async function ca(e){if(!e.mountElement)throw TypeError(`mountPluginsPanel requires mountElement`);let t=(0,At.createRoot)(e.mountElement);return t.render((0,K.jsx)(S,{root:e.overlayRoot??e.mountElement,children:(0,K.jsx)(sa,{hostAssembly:e.hostAssembly,connectionId:e.connectionId,client:e.client,workspaceClient:e.workspaceClient})})),async()=>t.unmount()}var la={sceneTree:{title:`Hierarchy`,sceneRoot:`Scene`,empty:`No hierarchy data`,unavailable:`Scene tree unavailable`,loadErrorDescription:`Could not load the scene hierarchy. See the error notice for details.`,filterByType:`Filter by type`,clearFilters:`Clear filters`,displaySettings:`Display settings`,searchPlaceholder:`Search name or type…`,searchLabel:`Search scene name or type`,columns:`Columns`,columnType:`Type`,columnId:`ID`,expandAll:`Expand all`,collapseAll:`Collapse all`,columnName:`Name`,noMatchTitle:`No matches`,noMatchDescription:`Adjust the search text or type filters.`,readOnlyTitle:`Read-only scene tree`,show:`Show`,hide:`Hide`,filters:{mesh:`Mesh`,light:`Light`,camera:`Camera`,character:`Character`,group:`Group`},types:{mesh:`Mesh`,directionalLight:`Directional light`,sky:`Sky`,folder:`Folder`,entity:`Entity`,playerStart:`Player start`,camera:`Camera`},menu:{create:`Create`,emptyEntity:`Empty entity`,cube:`Cube`,directionalLight:`Directional light`,camera:`Camera`,playerStart:`Player Start`,newFolder:`New folder`,paste:`Paste`,groupSelection:`Group selection`,groupSelectionCount:`Group selection ({{count}})`,clearSearchAndFilters:`Clear search and filters`,showAll:`Show all`,focusSelection:`Focus selection`,refresh:`Refresh scene tree`,createChild:`Create child`,rename:`Rename`,duplicate:`Duplicate`,copyJson:`Copy JSON`,referenceInChat:`Reference in chat`,focusInViewport:`Focus in viewport`,moveTo:`Move to…`,delete:`Delete`,deleteSelection:`Delete selection ({{count}})`}}},ua={sceneTree:{title:`场景树`,sceneRoot:`场景`,empty:`无层级数据`,unavailable:`场景树不可用`,loadErrorDescription:`无法加载场景层级,请查看错误通知。`,filterByType:`按类型筛选`,clearFilters:`清除筛选`,displaySettings:`显示设置`,searchPlaceholder:`搜索名称/类型…`,searchLabel:`搜索场景名称或类型`,columns:`列`,columnType:`类型`,columnId:`ID`,expandAll:`全部展开`,collapseAll:`全部折叠`,columnName:`名称`,noMatchTitle:`无匹配项`,noMatchDescription:`请调整搜索文字或类型筛选。`,readOnlyTitle:`只读场景树`,show:`显示`,hide:`隐藏`,filters:{mesh:`网格`,light:`灯光`,camera:`摄像机`,character:`角色`,group:`组`},types:{mesh:`网格`,directionalLight:`平行光`,sky:`天空`,folder:`文件夹`,entity:`实体`,playerStart:`起点`,camera:`摄像机`},menu:{create:`创建`,emptyEntity:`空实体`,cube:`立方体`,directionalLight:`平行光`,camera:`摄像机`,playerStart:`Player Start`,newFolder:`新建文件夹`,paste:`粘贴`,groupSelection:`将选中项编组`,groupSelectionCount:`将选中项编组 ({{count}})`,clearSearchAndFilters:`清除搜索和筛选`,showAll:`显示全部`,focusSelection:`聚焦选中对象`,refresh:`刷新场景树`,createChild:`创建子对象`,rename:`重命名`,duplicate:`复制`,copyJson:`复制 JSON`,referenceInChat:`在聊天中引用`,focusInViewport:`在视口中聚焦`,moveTo:`移动到…`,delete:`删除`,deleteSelection:`删除选中项 ({{count}})`}}};function da(e){let t=`zh`,n=new Set,r=(e,t)=>t.split(`.`).reduce((e,t)=>e?.[t],e);return{t:(n,i)=>{let a=r(e[t],n)??r(e.en,n)??n;return i?a.replace(/\{\{(\w+)\}\}/g,(e,t)=>String(i[t]??``)):a},subscribe:e=>(n.add(e),()=>n.delete(e)),getLocale:()=>t,setLocale:e=>{if(!(e!==`en`&&e!==`zh`)){t=e;for(let e of n)e()}}}}var fa=da({en:la,zh:ua}),pa=fa.t,ma=fa.subscribe,ha=fa.getLocale;fa.setLocale,L(fa.setLocale);function ga(){let e=(0,U.useSyncExternalStore)(ma,ha,ha);return{t:(0,U.useCallback)((e,t)=>pa(e,t),[e]),locale:e}}var _a=`forgeax.view.scene-tree.ui/1`,va=Object.freeze({search:`scene-tree.search`,toggleColumn:`scene-tree.column.toggle`,expandAll:`scene-tree.expand-all`,collapseAll:`scene-tree.collapse-all`,toggleExpanded:`scene-tree.expanded.toggle`,toggleVisibility:`scene-tree.visibility.toggle`,select:`scene-tree.select`,selectRange:`scene-tree.select-range`,create:`scene-tree.create`,rename:`scene-tree.rename`,duplicate:`scene-tree.duplicate`,delete:`scene-tree.delete`,reparent:`scene-tree.reparent`,group:`scene-tree.group`,focus:`scene-tree.focus`,copyJson:`scene-tree.copy-json`,referenceInChat:`scene-tree.reference-in-chat`,showContextMenu:`scene-tree.context-menu.show`});Object.freeze({$id:_a,type:`object`,required:[`rows`],properties:{rows:{type:`array`,items:{type:`object`,required:[`id`,`name`,`typeLabel`,`depth`,`kind`],properties:{id:{type:`string`},name:{type:`string`},typeLabel:{type:`string`},depth:{type:`integer`,minimum:0},kind:{enum:[`folder`,`entity`]},hidden:{type:`boolean`},hasChildren:{type:`boolean`},expanded:{type:`boolean`}}}}}});var ya=[{test:/Camera/,category:`camera`},{test:/Light/,category:`light`},{test:/Character|Controller/,category:`character`},{test:/PlayerStart/,category:`start`},{test:/Spawner/,category:`spawner`},{test:/Mesh/,category:`mesh`}];function ba(e){let t=ya.findIndex(t=>t.category===e);return t===-1?ya.length:t}function xa(e){if(e===`group`)return`group`;if(e===`entity`)return`entity`;for(let t of ya)if(t.test.test(e))return t.category;return`generic`}function Sa(e,t){return ba(xa(e))-ba(xa(t))||e.localeCompare(t)}function Ca(e,t){return t.size===0?!0:e.some(e=>t.has(e))}function wa(e,t=new Map){let n=new Set,r=[];for(let i of e){let e=String(i);if(!e||n.has(e))continue;n.add(e);let a=t.get(e);r.push({id:e,...a===void 0?{}:{count:a}})}return r.sort((e,t)=>Sa(e.id,t.id)),r}function Ta(e){if(!e||typeof e!=`object`)return[];let t=e.nodes;if(!Array.isArray(t))return[];let n=[],r=new Set,i=t.filter(e=>e&&typeof e==`object`),a=new Map(i.map(e=>[String(e.entityId),e])),o=new Map;for(let e of i)if(e.parentId&&a.has(e.parentId)){let t=o.get(e.parentId)??[];t.push(e),o.set(e.parentId,t)}let s=e=>{let t=[{node:e,depth:0}];for(;t.length;){let{node:e,depth:i}=t.pop(),a=String(e.entityId??``);if(!a||r.has(a))continue;r.add(a);let s=o.get(a)??[],c=Array.isArray(e.componentNames)?e.componentNames.filter(e=>typeof e==`string`):[],l=c.includes(`Camera`)?`camera`:c.includes(`DirectionalLight`)?`directionalLight`:c.includes(`MeshFilter`)?`mesh`:`entity`;n.push({id:a,componentNames:c,name:String(e.name??(e.entity===void 0?a:`Entity ${e.entity}`)),typeKey:l,depth:i,kind:`entity`,...s.length?{hasChildren:!0,expanded:i<1}:{}});for(let e=s.length-1;e>=0;e--)t.push({node:s[e],depth:i+1})}};for(let e of i)(!e.parentId||!a.has(e.parentId))&&s(e);for(let e of i)s(e);return n}function Ea(e){let t=new Map;for(let n of e)for(let e of n.componentNames??[])t.set(e,(t.get(e)??0)+1);return wa([...t.keys()],t)}var Da=`hierarchy:scene-root`;function $(e){return e?.id===Da}function Oa(e){return e.some($)?e.map(e=>$(e)?{...e,virtual:!0}:e):[{id:Da,name:`Scene`,typeKey:`folder`,depth:0,kind:`folder`,virtual:!0,hasChildren:e.length>0,expanded:!0},...e.map(e=>({...e,depth:e.depth+1}))]}function ka(e){return Oa(Ta(e))}var Aa=[{id:Da,name:`Scene`,typeKey:`folder`,depth:0,kind:`folder`,virtual:!0,hasChildren:!0,expanded:!0},{id:`ground`,name:`Ground`,typeKey:`mesh`,componentNames:[`MeshRenderer`,`Transform`],depth:1,kind:`entity`},{id:`tree-trunk`,name:`TreeTrunk`,typeKey:`mesh`,componentNames:[`MeshRenderer`,`Transform`],depth:1,kind:`entity`},{id:`red-box`,name:`RedBox`,typeKey:`mesh`,componentNames:[`MeshRenderer`,`Transform`],depth:1,kind:`entity`},{id:`blue-ball`,name:`BlueBall`,typeKey:`mesh`,componentNames:[`MeshRenderer`,`Transform`],depth:1,kind:`entity`},{id:`sun`,name:`Sun`,typeKey:`directionalLight`,componentNames:[`DirectionalLight`,`Transform`],depth:1,kind:`entity`},{id:`skybox`,name:`Skybox`,typeKey:`sky`,componentNames:[`SkyLight`,`Transform`],depth:1,kind:`entity`},{id:`player`,name:`Player`,typeKey:`mesh`,componentNames:[`CharacterController`,`MeshRenderer`,`Transform`],depth:1,kind:`entity`},{id:`props`,name:`Props`,depth:1,kind:`folder`,hasChildren:!0,expanded:!0},{id:`crate-a`,name:`Crate_A`,typeKey:`mesh`,componentNames:[`MeshRenderer`,`Transform`],depth:2,kind:`entity`},{id:`crate-b`,name:`Crate_B`,typeKey:`mesh`,componentNames:[`MeshRenderer`,`Transform`],depth:2,kind:`entity`}].map(e=>({...e}));function ja(e){return Array.isArray(e.componentNames)&&e.componentNames.length>0?e.componentNames:e.typeKey?[String(e.typeKey)]:[]}function Ma(e){if($(e))return`scene`;if(e.kind===`folder`)return`group`;let t=ja(e).find(e=>e!==`Transform`)??e.typeKey;return t?xa(String(t)):`mesh`}function Na(e){switch(xa(e)){case`camera`:return(0,K.jsx)(Ee,{size:14});case`light`:return(0,K.jsx)(Ue,{size:14});case`character`:return(0,K.jsx)(ke,{size:14});case`group`:return(0,K.jsx)(W,{size:14});default:return(0,K.jsx)(P,{size:14})}}function Pa({row:e}){return $(e)?(0,K.jsx)(Re,{size:15}):e.kind===`folder`?(0,K.jsx)(W,{size:15}):e.typeKey===`directionalLight`?(0,K.jsx)(Ue,{size:15}):e.typeKey===`camera`?(0,K.jsx)(Ee,{size:15}):e.name===`Player`?(0,K.jsx)(ke,{size:15}):(0,K.jsx)(P,{size:15})}function Fa({state:e,close:t}){let n=ve(),[r,i]=(0,U.useState)(null);(0,U.useEffect)(()=>{let e=()=>t(),n=e=>e.key===`Escape`&&t();return window.addEventListener(`pointerdown`,e),window.addEventListener(`keydown`,n),()=>{window.removeEventListener(`pointerdown`,e),window.removeEventListener(`keydown`,n)}},[t]);let a=(e,n=!1)=>(0,K.jsx)(`div`,{className:n?`hier-context-submenu`:`hier-context-menu`,children:e.map((e,n)=>e.kind===`separator`?(0,K.jsx)(`i`,{className:`hier-context-separator`},`sep-${n}`):e.kind===`title`?(0,K.jsxs)(`div`,{className:`hier-context-title`,children:[e.icon,e.label]},`title-${n}`):(0,K.jsxs)(`div`,{className:`hier-context-item-wrap`,onPointerEnter:()=>e.children&&i(e.id),children:[(0,K.jsxs)(`button`,{type:`button`,role:`menuitem`,"data-operation":e.id,"data-danger":e.danger||void 0,"data-forge":e.forge||void 0,disabled:e.disabled,onClick:()=>{if(e.children){i(r===e.id?null:e.id);return}e.action?.(),t()},children:[(0,K.jsx)(`span`,{className:`hier-context-icon`,children:e.icon}),(0,K.jsx)(`span`,{children:e.label}),e.shortcut?(0,K.jsx)(`kbd`,{children:e.shortcut}):null,e.children?(0,K.jsx)(z,{size:12}):null]}),e.children&&r===e.id?a(e.children,!0):null]},e.id))});return(0,xr.createPortal)((0,K.jsx)(`div`,{className:`hier-context-position`,"data-action":va.showContextMenu,role:`menu`,style:{left:Math.max(8,Math.min(e.x,window.innerWidth-260)),top:Math.max(8,Math.min(e.y,window.innerHeight-420))},onPointerDown:e=>e.stopPropagation(),onContextMenu:e=>e.preventDefault(),children:a(e.items)}),n??document.body)}function Ia(e,t){let n=e.toLowerCase().indexOf(t.toLowerCase());return!t||n<0?e:(0,K.jsxs)(K.Fragment,{children:[e.slice(0,n),(0,K.jsx)(`mark`,{className:`hl`,children:e.slice(n,n+t.length)}),e.slice(n+t.length)]})}function La(e){return e.demo?(0,K.jsx)(Ba,{client:e.client}):e.client?(0,K.jsx)(za,{client:e.client}):(0,K.jsx)(V,{title:`Scene hierarchy unavailable`,description:`Connect to the View workspace API to load the Engine scene tree.`})}function Ra(e,t,n,r){let[i,a]=(0,U.useState)(null),[o,s]=(0,U.useState)(1),c=t?.preview?.target,l=t?.project?.id,u=`${c?.targetId}:${c?.generation}`,d=i?.key===u?i:null,p=d?.rows??[];return(0,U.useEffect)(()=>{s(1)},[c?.targetId,c?.generation]),(0,U.useEffect)(()=>{if(!n||!c?.targetId||!l){if(!n)return;a(null);return}let t=f(r,e=>e?.project?.id===l&&e?.preview?.target?.targetId===c.targetId&&e?.preview?.target?.generation===c.generation),{signal:i}=t,s,d=async()=>{if(i.aborted)return;let t=500;try{let t={tabId:B,projectId:l,targetId:c.targetId,targetGeneration:c.generation,signal:i},n=await e.getSceneTree({...t,limit:1e3});if(i.aborted)return;let r=[...n.nodes??[]],s=n.nextOffset;for(let a=1;a<o&&s!=null;a++){let a=await e.getSceneTree({...t,offset:s,revision:n.revision,limit:1e3});if(i.aborted)return;r.push(...a.nodes),s=a.nextOffset}if(i.aborted)return;a(e=>{let t={key:u,rows:ka({...n,nodes:r}),hasMore:s!=null,failed:!1};return e?.key===t.key&&e.failed===t.failed&&e.hasMore===t.hasMore&&R(e.rows,t.rows)?e:t})}catch{if(i.aborted)return;a(e=>e?.key===u&&e.failed&&!e.hasMore&&e.rows.length===0?e:{key:u,rows:[],hasMore:!1,failed:!0}),t=1500}i.aborted||(s=setTimeout(d,t))};return d(),()=>{t.dispose(),clearTimeout(s)}},[e,n,l,c?.targetId,c?.generation,o,u,r,t]),{rows:p,filterOptions:Ea(p),failed:d?.failed??!1,hasMore:d?.hasMore??!1,loadMore:()=>s(e=>e+1)}}function za({client:e}){let{t}=ga(),n=(0,U.useMemo)(()=>D(e),[e]),r=(0,U.useSyncExternalStore)(n.subscribe,()=>n.getSnapshot(),()=>n.getSnapshot()),{rows:i,filterOptions:a,failed:o,hasMore:s,loadMore:c}=Ra(e,r,be(e),n);return r?.preview?.target?.targetId?o?(0,K.jsx)(V,{title:t(`sceneTree.unavailable`),description:t(`sceneTree.loadErrorDescription`)}):i.length===0?(0,K.jsx)(V,{title:`Loading hierarchy`,description:`Reading the selected Engine target.`}):(0,K.jsxs)(K.Fragment,{children:[s&&(0,K.jsxs)(`button`,{type:`button`,onClick:c,children:[`Showing `,Math.max(0,i.length-1),` entities. Load more`]}),(0,K.jsx)(Ba,{client:e,rows:i,filterOptions:a},`${r.preview?.target?.targetId}:${r.preview?.target?.generation}`)]}):(0,K.jsx)(V,{title:t(`sceneTree.unavailable`),description:`Open a scene preview from the Content Browser to load the Engine hierarchy.`})}function Ba({client:e,rows:t,filterOptions:n=[]}){let{t:r}=ga(),i=(0,U.useMemo)(()=>D(e),[e]),a=(0,U.useSyncExternalStore)(i.subscribe,()=>i.getSnapshot(),()=>i.getSnapshot()),o=a?.sceneSelection?.primary?.entityId??null,c=a?.preview?.asset?.guid??a?.preview?.target?.targetId??null,l=t??Aa,u=(0,U.useCallback)(e=>$(e)?r(`sceneTree.sceneRoot`):e.name,[r]),d=(0,U.useCallback)(e=>{if(e.kind===`folder`)return r(`sceneTree.types.folder`);if(e.typeKey){let t=`sceneTree.types.${e.typeKey}`,n=r(t);return n===t?r(`sceneTree.types.entity`):n}return``},[r]),f=n,p=(0,U.useCallback)(e=>{let t=`sceneTree.types.${e}`,n=r(t);return n===t?e:n},[r]),m=(0,U.useMemo)(()=>f.map(e=>({...e,label:e.label??p(e.id)})),[p,f]),[g,_]=(0,U.useState)(``),[v,y]=(0,U.useState)(new Set),[b,x]=(0,U.useState)(()=>new Set(l.filter(e=>e.expanded||$(e)).map(e=>e.id))),[S,C]=(0,U.useState)({type:!0,id:!1}),[T,E]=(0,U.useState)(null),[O,ee]=(0,U.useState)(null),k=(0,U.useRef)(null),A=(0,U.useRef)(null),[j,ne]=(0,U.useState)(null),[re,M]=(0,U.useState)(new Set),[ie,ae]=(0,U.useState)(null);(0,U.useEffect)(()=>{x(e=>{if(e.has(`hierarchy:scene-root`))return e;let t=new Set(e);return t.add(Da),t})},[c]),(0,U.useEffect)(()=>{o&&l.some(e=>e.id===o)&&(M(new Set([o])),ae(o))},[o,l]),(0,U.useEffect)(()=>{let e=new Set(m.map(e=>e.id));y(t=>{if(t.size===0)return t;let n=new Set([...t].filter(t=>e.has(t)));return n.size===t.size?t:n})},[m]);let N=t=>{if(t.kind!==`entity`||!e?.selectSceneEntity)return;let n=a?.preview?.target;n?.targetId&&e.selectSceneEntity(t.id,{label:t.name,tabId:B,targetId:n.targetId,targetGeneration:n.generation}).catch(()=>{})},oe=(0,U.useMemo)(()=>{let e=g.trim().toLowerCase();if(e.length>0||v.size>0)return l.filter(t=>{let n=ja(t),r=d(t).toLowerCase(),i=n.join(` `).toLowerCase(),a=!e||u(t).toLowerCase().includes(e)||r.includes(e)||i.includes(e),o=Ca(n,v);return!$(t)&&a&&o}).map(e=>({...e,depth:0}));let t=[];return l.filter(e=>{for(;t.length&&t.at(-1)>=e.depth;)t.pop();let n=t.length>0;return e.hasChildren&&!b.has(e.id)&&t.push(e.depth),!n})},[b,v,g,u,l,d]),se=(e,t)=>{if(e.kind===`folder`){x(t=>{let n=new Set(t);return n.has(e.id)?n.delete(e.id):n.add(e.id),n});return}let n=oe.filter(e=>e.kind===`entity`).map(e=>e.id),r;if(t.shiftKey&&ie){let t=n.indexOf(ie),i=n.indexOf(e.id);r=new Set(n.slice(Math.min(t,i),Math.max(t,i)+1))}else t.ctrlKey||t.metaKey?(r=new Set(re),r.has(e.id)?r.delete(e.id):r.add(e.id),ae(e.id)):(r=new Set([e.id]),ae(e.id));M(r),N(e)},P=(e,t)=>{e.preventDefault(),e.stopPropagation(),E(null),ne({x:e.clientX,y:e.clientY,items:t})},F=(0,U.useCallback)(()=>[{kind:`title`,label:r(`sceneTree.readOnlyTitle`)},{kind:`item`,id:`clear-filter`,label:r(`sceneTree.menu.clearSearchAndFilters`),icon:(0,K.jsx)(w,{size:14}),disabled:!g&&v.size===0,action:()=>{_(``),y(new Set)}},{kind:`item`,id:`focus`,label:r(`sceneTree.menu.focusSelection`),icon:(0,K.jsx)(je,{size:14}),shortcut:`F`,disabled:re.size===0,action:()=>{}}],[v.size,g,re.size,r]),I=(0,U.useCallback)(t=>[{kind:`title`,label:u(t),icon:(0,K.jsx)(Pa,{row:t})},{kind:`item`,id:`copy-json`,label:r(`sceneTree.menu.copyJson`),icon:(0,K.jsx)(Te,{size:14}),action:()=>void navigator.clipboard?.writeText(JSON.stringify(t,null,2))},{kind:`item`,id:`focus`,label:r(`sceneTree.menu.focusInViewport`),icon:(0,K.jsx)(je,{size:14}),shortcut:`F`,disabled:!a?.preview||$(t),action:()=>{let n=a?.preview?.target;n&&e?.call(`entity.focus`,{entityId:t.id,targetId:n.targetId,targetGeneration:n.generation})}}],[u,r,e,a?.preview]);(0,U.useEffect)(()=>{T||ee(null)},[T]);let le=e=>{if(T===e){E(null);return}let t=(e===`filter`?k:A).current?.getBoundingClientRect();t&&ee(t),E(e)},L=e=>{y(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})};return(0,K.jsxs)(`div`,{className:`panel outliner-panel`,"data-testid":`panel-hierarchy`,"data-view-readonly":`true`,role:`tree`,tabIndex:0,onKeyDown:e=>{(e.ctrlKey||e.metaKey)&&e.key.toLowerCase()===`a`&&(e.preventDefault(),M(new Set(l.filter(e=>e.kind===`entity`).map(e=>e.id))))},children:[(0,K.jsx)(s,{className:`fx-hier-toolbar`,"data-testid":`hier-toolbar`,start:(0,K.jsx)(h,{children:(0,K.jsx)(H,{ref:k,className:v.size?`active`:void 0,label:r(`sceneTree.filterByType`),icon:(0,K.jsx)(Fe,{size:14}),size:`compact`,onClick:()=>le(`filter`)})}),center:(0,K.jsx)(ce,{className:`fx-hier-search`,"data-testid":`hier-search`,"data-action":va.search,value:g,onChange:e=>_(e.target.value),onClear:()=>_(``),placeholder:r(`sceneTree.searchPlaceholder`),label:r(`sceneTree.searchLabel`)}),end:(0,K.jsx)(h,{children:(0,K.jsx)(H,{ref:A,label:r(`sceneTree.displaySettings`),icon:(0,K.jsx)(Ze,{size:14}),size:`compact`,onClick:()=>le(`settings`)})})}),(0,K.jsxs)(`div`,{className:`ol-colhead`,"data-testid":`hier-colhead`,children:[(0,K.jsx)(`span`,{className:`ch-caret`,"aria-hidden":!0}),(0,K.jsx)(`span`,{className:`ch-name sortable`,children:r(`sceneTree.columnName`)}),S.type?(0,K.jsx)(`span`,{className:`ch-type sortable col-type`,children:r(`sceneTree.columnType`)}):null,S.id?(0,K.jsx)(`span`,{className:`ch-id sortable col-id`,children:r(`sceneTree.columnId`)}):null]}),(0,K.jsx)(`div`,{className:`ol-body`,"data-testid":`hier-root-dropzone`,onClick:e=>{e.target===e.currentTarget&&M(new Set)},onContextMenu:e=>{e.target.closest(`.tn`)||P(e,F())},children:oe.length===0?(0,K.jsx)(V,{className:`hier-no-match`,title:r(`sceneTree.noMatchTitle`),description:r(`sceneTree.noMatchDescription`)}):oe.map(e=>{let t=re.has(e.id),n=e.hidden===!0,r=b.has(e.id);return(0,K.jsxs)(`div`,{className:`tn k-${Ma(e)}${t?` sel`:``}${n?` dim`:``}`,"data-testid":$(e)?`hier-row-scene-folder`:`hier-row-${e.id}`,"data-action":va.select,style:{paddingLeft:`calc(var(--fx-ref-space-8) + ${e.depth} * var(--hier-indent-step, calc(var(--fx-ref-space-12) + var(--fx-ref-space-2))))`},role:`treeitem`,"aria-selected":t,tabIndex:t?0:-1,onClick:t=>se(e,t),onContextMenu:t=>{re.has(e.id)||(M(new Set([e.id])),e.kind===`entity`&&N(e)),P(t,$(e)?F():I(e))},children:[(0,K.jsx)(`button`,{type:`button`,className:`caret`,"data-action":va.toggleExpanded,disabled:!e.hasChildren,tabIndex:-1,onClick:t=>{t.stopPropagation(),e.hasChildren&&x(t=>{let n=new Set(t);return n.has(e.id)?n.delete(e.id):n.add(e.id),n})},children:e.hasChildren?r?(0,K.jsx)(de,{size:12}):(0,K.jsx)(z,{size:12}):null}),(0,K.jsx)(`span`,{className:`ico`,children:(0,K.jsx)(Pa,{row:e})}),(0,K.jsx)(`span`,{className:`name-cell`,children:(0,K.jsx)(`span`,{className:`nm`,children:Ia(u(e),g)})}),S.type?(0,K.jsx)(`span`,{className:`cell type col-type`,children:(0,K.jsx)(`span`,{className:`kind`,children:d(e)})}):null,S.id?(0,K.jsx)(`span`,{className:`cell id col-id`,children:$(e)?``:`#${e.id}`}):null]},e.id)})}),(0,K.jsx)(te,{open:!!(O&&T===`filter`),anchorRect:O,onClose:()=>E(null),ignorePointerWithin:[k],className:`hier-filter-menu`,containerProps:{onPointerDown:e=>e.stopPropagation()},children:(0,K.jsxs)(`div`,{className:`hier-filter-menu-body`,children:[(0,K.jsx)(`div`,{className:`hier-filter-section`,children:r(`sceneTree.filterByType`)}),m.map(e=>{let t=v.has(e.id);return(0,K.jsxs)(`button`,{type:`button`,className:`hier-filter-option`,"data-active":t?`true`:`false`,onClick:()=>L(e.id),children:[(0,K.jsx)(ue,{checked:t,onChange:()=>L(e.id),tabIndex:-1,hideLabel:!0,label:e.label,className:`hier-filter-check`}),(0,K.jsx)(`span`,{className:`hier-filter-option-icon`,"aria-hidden":!0,children:Na(e.id)}),e.label]},e.id)}),(0,K.jsx)(`div`,{className:`hier-filter-separator`}),(0,K.jsx)(`button`,{type:`button`,className:`hier-filter-option hier-filter-clear`,disabled:v.size===0,onClick:()=>y(new Set),children:r(`sceneTree.clearFilters`)})]})}),(0,K.jsx)(te,{open:!!(O&&T===`settings`),anchorRect:O,onClose:()=>E(null),ignorePointerWithin:[A],className:`hier-filter-menu`,containerProps:{onPointerDown:e=>e.stopPropagation()},children:(0,K.jsxs)(`div`,{className:`hier-filter-menu-body hierarchy-header-menu-settings`,children:[(0,K.jsx)(`div`,{className:`hier-filter-section`,children:r(`sceneTree.columns`)}),[`type`,`id`].map(e=>{let t=r(e===`type`?`sceneTree.columnType`:`sceneTree.columnId`),n=S[e],i=()=>C(t=>({...t,[e]:!t[e]}));return(0,K.jsxs)(`button`,{type:`button`,className:`hier-filter-option`,"data-action":va.toggleColumn,"data-active":n?`true`:`false`,onClick:i,children:[(0,K.jsx)(ue,{checked:n,onChange:i,tabIndex:-1,hideLabel:!0,label:t,className:`hier-filter-check`}),t]},e)}),(0,K.jsx)(`div`,{className:`hier-filter-separator`}),(0,K.jsxs)(`button`,{type:`button`,className:`hier-filter-option hier-filter-action`,"data-action":va.expandAll,onClick:()=>x(new Set(l.filter(e=>e.hasChildren).map(e=>e.id))),children:[(0,K.jsx)(Ge,{size:14,className:`hier-filter-option-icon`}),r(`sceneTree.expandAll`)]}),(0,K.jsxs)(`button`,{type:`button`,className:`hier-filter-option hier-filter-action`,"data-action":va.collapseAll,onClick:()=>x(new Set(l.filter($).map(e=>e.id))),children:[(0,K.jsx)(Ke,{size:14,className:`hier-filter-option-icon`}),r(`sceneTree.collapseAll`)]})]})}),j?(0,K.jsx)(Fa,{state:j,close:()=>ne(null)}):null]})}async function Va(e){if(!e.mountElement)throw TypeError(`mountSceneTreePanel requires mountElement`);let t=(0,At.createRoot)(e.mountElement);return t.render((0,K.jsx)(S,{root:e.overlayRoot??e.mountElement,children:(0,K.jsx)(La,{client:e.client,demo:e.demo})})),async()=>t.unmount()}var Ha=e({mountAssetPropertiesPanel:()=>Hi,mountContentBrowserPanel:()=>pr,mountInspectorPanel:()=>Nr,mountMaterialPanel:()=>Zr,mountMaterialPreviewPanel:()=>$r,mountMaterialPropertiesPanel:()=>Qr,mountMeshPreviewPanel:()=>mi,mountMeshPropertiesPanel:()=>hi,mountPluginsPanel:()=>ca,mountSceneTreePanel:()=>Va,mountTexturePreviewPanel:()=>Ai,mountTexturePropertiesPanel:()=>ji});export{Ai as a,hi as c,Qr as d,Nr as f,Hi as i,Zr as l,Va as n,ji as o,pr as p,ca as r,mi as s,Ha as t,$r as u};
46
+ //# sourceMappingURL=panels-entry-Ddhfjgf0.js.map