@uptimizr/dashboard 0.4.6 → 0.4.8

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 (388) hide show
  1. package/out/404.html +1 -1
  2. package/out/__next.__PAGE__.txt +19 -5
  3. package/out/__next._full.txt +10 -10
  4. package/out/__next._tree.txt +1 -1
  5. package/out/_next/static/chunks/{3cp5nmtwxq4gr.js → 0-6mdj5wxsfid.js} +1 -1
  6. package/out/_next/static/chunks/{2clevl_9ayd0x.js → 0-qthfqvm1jyj.js} +1 -1
  7. package/out/_next/static/chunks/01viyuclp2gm9.js +1 -0
  8. package/out/_next/static/chunks/02aym4t2hgo5c.js +1 -0
  9. package/out/_next/static/chunks/{1fervgvgv10r-.js → 02ic9b5ejugow.js} +1 -1
  10. package/out/_next/static/chunks/03p70i4c7qt0v.js +1 -0
  11. package/out/_next/static/chunks/{3zv5kyos9vtmm.js → 03pjr-ivdicng.js} +1 -1
  12. package/out/_next/static/chunks/041a06-lxipy5.js +1 -0
  13. package/out/_next/static/chunks/{3-yhe6rcsjh88.js → 06dzkwetqis-5.js} +1 -1
  14. package/out/_next/static/chunks/{2mjjo0yj-4ro4.js → 06kvanz5-fo52.js} +1 -1
  15. package/out/_next/static/chunks/{28i3wgvgn_at1.js → 07y8ke_iy59dn.js} +1 -1
  16. package/out/_next/static/chunks/09jukc-4jl735.js +1 -0
  17. package/out/_next/static/chunks/{0cmyc-uvk93kl.js → 09khmdgez3t0a.js} +74 -74
  18. package/out/_next/static/chunks/{2x-7kbwq8tl-o.js → 0_dca4876jshu.js} +196 -196
  19. package/out/_next/static/chunks/0axcgnl5qzr6e.js +1 -0
  20. package/out/_next/static/chunks/0ay4fjomijs3n.js +1 -0
  21. package/out/_next/static/chunks/0c7fy79wlccat.js +1 -0
  22. package/out/_next/static/chunks/0cqe4-l3imct3.js +1 -0
  23. package/out/_next/static/chunks/0cssvelju788j.js +1 -0
  24. package/out/_next/static/chunks/{2-_a-v1xeo5hb.js → 0ctain5xq2wsd.js} +116 -115
  25. package/out/_next/static/chunks/{3yk0hzfq5rcs6.js → 0df-dr3otg_4w.js} +1 -1
  26. package/out/_next/static/chunks/{0i9wa8hjd-5tc.js → 0endw997j7ao9.js} +1 -1
  27. package/out/_next/static/chunks/0ev_pbit1v_qg.js +1 -0
  28. package/out/_next/static/chunks/0eyw9oiwipywb.js +1 -0
  29. package/out/_next/static/chunks/0fkzbuo1tex4u.js +1 -0
  30. package/out/_next/static/chunks/0govas0u0t4w3.js +1 -0
  31. package/out/_next/static/chunks/{287hakn2ijupp.js → 0guzhnususp3-.js} +2 -2
  32. package/out/_next/static/chunks/0h7bq_ysu17q7.js +3 -0
  33. package/out/_next/static/chunks/0hneh_3xzlo28.js +1 -0
  34. package/out/_next/static/chunks/0iaqwme19z_0s.js +1 -0
  35. package/out/_next/static/chunks/0ibmar10xndpn.js +1 -0
  36. package/out/_next/static/chunks/0ii8mqoteppgh.js +11 -0
  37. package/out/_next/static/chunks/{3ioxfi3bvznhh.js → 0ip6v64di_l6x.js} +1 -1
  38. package/out/_next/static/chunks/{184pz6z3dflfm.js → 0ixymgjgz3grn.js} +20 -20
  39. package/out/_next/static/chunks/0kuah8g7lt5ox.js +1 -0
  40. package/out/_next/static/chunks/0l3k4j19vxm17.js +1 -0
  41. package/out/_next/static/chunks/0l6hg0ohwh9-m.js +1 -0
  42. package/out/_next/static/chunks/0m4um4ylhlfan.js +1 -0
  43. package/out/_next/static/chunks/0mj837d4h0ddq.js +1 -0
  44. package/out/_next/static/chunks/0nyn-f4905o91.js +1 -0
  45. package/out/_next/static/chunks/0og6i9rsgkuif.js +1 -0
  46. package/out/_next/static/chunks/0os1x-fxzgnxs.js +1 -0
  47. package/out/_next/static/chunks/0otnra7mp0hog.js +1 -0
  48. package/out/_next/static/chunks/{3p03l0z65c8vc.js → 0oyf2xzv8ofkk.js} +253 -253
  49. package/out/_next/static/chunks/0qvsy3gcqjm12.js +1 -0
  50. package/out/_next/static/chunks/{0yd4_xh476fjn.js → 0rl4ddh2vgxyl.js} +97 -97
  51. package/out/_next/static/chunks/0rwpttmsmqvn_.js +1 -0
  52. package/out/_next/static/chunks/0so3wjp9ch93y.js +1 -0
  53. package/out/_next/static/chunks/{36pz_ews7u0xb.js → 0te4g160_rb5d.js} +1 -1
  54. package/out/_next/static/chunks/0uby-zvu799ef.js +1 -0
  55. package/out/_next/static/chunks/{2kk_vvmr2xm3d.js → 0uvn0op2mlr2u.js} +12 -12
  56. package/out/_next/static/chunks/0vwj4hxjm0igv.js +1 -0
  57. package/out/_next/static/chunks/{0r-x702_jvhud.js → 0w7c30w07uct2.js} +12 -12
  58. package/out/_next/static/chunks/0wm38z3u2133a.js +1 -0
  59. package/out/_next/static/chunks/0y7yk5al7_p8q.js +4 -0
  60. package/out/_next/static/chunks/0ycr0gi6fn6bt.js +1 -0
  61. package/out/_next/static/chunks/0ywvahq9t0tki.js +1 -0
  62. package/out/_next/static/chunks/0zh6nslagkby-.js +1 -0
  63. package/out/_next/static/chunks/{3twr9ds68-9us.js → 0zo8xa0nej3ex.js} +1 -1
  64. package/out/_next/static/chunks/{1lu7rjfvxj8yj.js → 0zsir95gpf3xw.js} +1 -1
  65. package/out/_next/static/chunks/{1j4c0nvdo5q68.js → 0zu6ryyj0ig-j.js} +1 -1
  66. package/out/_next/static/chunks/{1bv-jzy_2jiqs.js → 1-jv8k10q_1uw.js} +1 -1
  67. package/out/_next/static/chunks/{0xx7_7y5jdlh4.js → 1-s5ioie9a94e.js} +1 -1
  68. package/out/_next/static/chunks/{27z7j17kcrty_.js → 1-yos1h0qws5e.js} +11 -11
  69. package/out/_next/static/chunks/10o7brc3x027r.js +1 -0
  70. package/out/_next/static/chunks/{2xe4bgir5l-9b.js → 10pae4gb9i929.js} +504 -504
  71. package/out/_next/static/chunks/13p93itm8a3ym.js +1 -0
  72. package/out/_next/static/chunks/{2mrkv0z2i74pv.js → 147s8i_lktp4_.js} +2 -2
  73. package/out/_next/static/chunks/{3nwaovnpiyrt8.js → 14tgo5xt_3j4w.js} +3 -3
  74. package/out/_next/static/chunks/1699hx-vlak0n.js +22 -0
  75. package/out/_next/static/chunks/{2b5nt7yn-pq3a.js → 16d6n9e77rqti.js} +1 -1
  76. package/out/_next/static/chunks/{3nr48h9zwum-3.js → 16f3d5dv83rsr.js} +1 -1
  77. package/out/_next/static/chunks/16i_tpwn_cmr-.js +1 -0
  78. package/out/_next/static/chunks/{2117sv2qzo6yq.js → 16rfr165nbha0.js} +1 -1
  79. package/out/_next/static/chunks/16sl51pvzo4tf.js +1 -0
  80. package/out/_next/static/chunks/1760s-32qpwgg.js +1 -0
  81. package/out/_next/static/chunks/{3rj-5v0j_2-_2.js → 18kq07c5xy_4g.js} +4 -4
  82. package/out/_next/static/chunks/{2wgh5i70bzelt.js → 190tbzt861ao3.js} +392 -392
  83. package/out/_next/static/chunks/19bhv6cupnnyj.js +1 -0
  84. package/out/_next/static/chunks/1_14pn2wwebxy.js +1 -0
  85. package/out/_next/static/chunks/{2_lw4d7t-xcqi.js → 1_kikmeubh0wq.js} +523 -522
  86. package/out/_next/static/chunks/1ay3z6agelsvz.js +1 -0
  87. package/out/_next/static/chunks/1b-fi3bfmpe31.js +1 -0
  88. package/out/_next/static/chunks/1bae3tqv53x9_.js +1 -0
  89. package/out/_next/static/chunks/{2s4fzgzkwjluu.js → 1bf421g4peccx.js} +2 -2
  90. package/out/_next/static/chunks/1bfony5qsc5tp.js +1 -0
  91. package/out/_next/static/chunks/{3vtmucpx25o7q.js → 1ddt0ot7kl8vq.js} +584 -584
  92. package/out/_next/static/chunks/1emz2vjkgck4z.js +1 -0
  93. package/out/_next/static/chunks/1eogzzw8i1wsg.js +1 -0
  94. package/out/_next/static/chunks/1g9p2h1-31q8o.js +1 -0
  95. package/out/_next/static/chunks/1gcz1k1v1woca.js +1 -0
  96. package/out/_next/static/chunks/1h8lyicgqhpxa.js +1 -0
  97. package/out/_next/static/chunks/{0e5dcxmkprebg.js → 1hot663akaepl.js} +1 -1
  98. package/out/_next/static/chunks/1i7pgl3ks5ye0.js +1 -0
  99. package/out/_next/static/chunks/{0xzamrecplwzw.js → 1i8sk_qgpdjhs.js} +1 -1
  100. package/out/_next/static/chunks/1kk3ct7pkpf3b.js +1 -0
  101. package/out/_next/static/chunks/1kq9o8del67le.js +1 -0
  102. package/out/_next/static/chunks/1l7tzyx2mumlq.js +1 -0
  103. package/out/_next/static/chunks/1n_uwed9o--go.js +1 -0
  104. package/out/_next/static/chunks/1o351eldttogn.js +1 -0
  105. package/out/_next/static/chunks/{1f07l3q77zat1.js → 1ogs4_aj84bfn.js} +1 -1
  106. package/out/_next/static/chunks/{3_dm45k0vk1aa.js → 1p206txlluipi.js} +565 -565
  107. package/out/_next/static/chunks/1p2bt1w845v6c.js +1 -0
  108. package/out/_next/static/chunks/1p3rgz4aef1gk.js +1 -0
  109. package/out/_next/static/chunks/{0ypejzd74ixbw.js → 1qcgdx9yl0gfx.js} +15 -15
  110. package/out/_next/static/chunks/1ql3mm2w5r-m8.js +1 -0
  111. package/out/_next/static/chunks/1qvcyuyshi3ll.js +53 -0
  112. package/out/_next/static/chunks/1r0yyg5a_0knc.js +1 -0
  113. package/out/_next/static/chunks/{374lzksboll-t.js → 1sa6qiidtcyk2.js} +1 -1
  114. package/out/_next/static/chunks/1t-9vrdrsi8le.js +1 -0
  115. package/out/_next/static/chunks/1t97zo0tlpbnz.js +1 -0
  116. package/out/_next/static/chunks/1te2tinzqnwck.js +1 -0
  117. package/out/_next/static/chunks/{3j3ol_d1vsdhx.js → 1trt-m2nrck0v.js} +1 -1
  118. package/out/_next/static/chunks/{3vu5y270muh-7.js → 1ty9jpwr3o_st.js} +1 -1
  119. package/out/_next/static/chunks/{415g3asdds1ac.js → 1u6w6veke8rze.js} +1 -1
  120. package/out/_next/static/chunks/{0-laj-bivzp4x.js → 1u900urmrbv73.js} +1 -1
  121. package/out/_next/static/chunks/{0o73w0cn5n_vl.js → 1vz2gd8k74lpi.js} +1 -1
  122. package/out/_next/static/chunks/1wkpl9bfb0wn7.js +1 -0
  123. package/out/_next/static/chunks/1wrly9a9c3teq.js +1 -0
  124. package/out/_next/static/chunks/1x0m05155yy4e.js +1 -0
  125. package/out/_next/static/chunks/{1my968s78he8g.js → 1xf1wfow43ekc.js} +15 -15
  126. package/out/_next/static/chunks/1y10o40v9odam.js +1 -0
  127. package/out/_next/static/chunks/{3_gfl66zf638s.js → 1y_zykt3fpen4.js} +901 -906
  128. package/out/_next/static/chunks/1ye6xtbm16pg4.js +1 -0
  129. package/out/_next/static/chunks/1z6_57k5h31u7.js +1 -0
  130. package/out/_next/static/chunks/1zboqft0h6mop.js +1 -0
  131. package/out/_next/static/chunks/1zr3c351x0ri5.js +1 -0
  132. package/out/_next/static/chunks/2-5p2lcedvrli.js +1 -0
  133. package/out/_next/static/chunks/{1_4hh3dfop93j.js → 206hxrq60f1_e.js} +1 -1
  134. package/out/_next/static/chunks/20r05k3-studj.js +1 -0
  135. package/out/_next/static/chunks/22gs24kj2du56.js +1 -0
  136. package/out/_next/static/chunks/22x5pd1gyp7sf.js +1 -0
  137. package/out/_next/static/chunks/{3qo7e6b73mfxq.js → 22z-2t_yp1jzs.js} +1 -1
  138. package/out/_next/static/chunks/{3d43gd91r06y6.js → 23hmfdw6z5zfy.js} +507 -505
  139. package/out/_next/static/chunks/23y1krqnc-8sm.js +1 -0
  140. package/out/_next/static/chunks/{0gk5rnci1hznh.js → 24tbkj1qkux88.js} +2 -2
  141. package/out/_next/static/chunks/{2-i29-jdbwww6.js → 26cmri51v7497.js} +111 -111
  142. package/out/_next/static/chunks/27jalbk9zu-2b.js +1 -0
  143. package/out/_next/static/chunks/285d2s9096ryc.js +1 -0
  144. package/out/_next/static/chunks/296ykep2nvppv.js +1 -0
  145. package/out/_next/static/chunks/29nehg5cal-ug.js +1 -0
  146. package/out/_next/static/chunks/2_a56_k3x7to6.js +1 -0
  147. package/out/_next/static/chunks/2a-0l6eb1blh3.js +4 -0
  148. package/out/_next/static/chunks/{2oacwtbslo90t.js → 2a31-txop1jzg.js} +360 -360
  149. package/out/_next/static/chunks/2bse5vll1o-x0.js +1 -0
  150. package/out/_next/static/chunks/2ct40spu9wfj7.js +1 -0
  151. package/out/_next/static/chunks/{2epukrz6paj9n.js → 2ept01b7t-e03.js} +1 -1
  152. package/out/_next/static/chunks/{22yht3s7c-xih.js → 2ey5dqelco_g5.js} +1 -1
  153. package/out/_next/static/chunks/2fd_009hw7y0m.js +1 -0
  154. package/out/_next/static/chunks/{2fspbfbxbswzd.js → 2ftz9kaxrsgxh.js} +1 -1
  155. package/out/_next/static/chunks/2gefdnozflr7p.js +1 -0
  156. package/out/_next/static/chunks/{2as_br1awqk6k.js → 2gs-u1n5uv7iz.js} +496 -496
  157. package/out/_next/static/chunks/{1a94whad0y57f.js → 2hizqql79u-54.js} +1 -1
  158. package/out/_next/static/chunks/2iqf2dpdg_vfl.js +1 -0
  159. package/out/_next/static/chunks/2j7z127s_ycjd.js +1 -0
  160. package/out/_next/static/chunks/2kax7uslfxdnx.js +31 -0
  161. package/out/_next/static/chunks/{2laz1v9fg2a2z.js → 2lh_w9rzy3vek.js} +1 -1
  162. package/out/_next/static/chunks/{3mmy9zsb7zo-m.js → 2ln1na26qwp-3.js} +23 -23
  163. package/out/_next/static/chunks/2n08l1q5o_27e.js +1 -0
  164. package/out/_next/static/chunks/2n7268gyd9z-6.js +1 -0
  165. package/out/_next/static/chunks/2nq9cgjmtqwvp.js +1 -0
  166. package/out/_next/static/chunks/{25brs445bjbik.js → 2oj8qc_pv14nk.js} +2 -2
  167. package/out/_next/static/chunks/2q24e72-olbe8.js +1 -0
  168. package/out/_next/static/chunks/2qc4hscs26cro.js +1 -0
  169. package/out/_next/static/chunks/2qe46redkqhfg.js +1 -0
  170. package/out/_next/static/chunks/2qmfe0mqw150h.js +1 -0
  171. package/out/_next/static/chunks/2qtc0nbl_521e.js +1 -0
  172. package/out/_next/static/chunks/2rofu6gu1xzuq.js +1 -0
  173. package/out/_next/static/chunks/2tdi94rkq739i.js +1 -0
  174. package/out/_next/static/chunks/2u_2sacqa9xa7.js +1 -0
  175. package/out/_next/static/chunks/2ujqz6088shm5.js +1 -0
  176. package/out/_next/static/chunks/{3my05px5mv_s5.js → 2urh9qafp3fiw.js} +235 -235
  177. package/out/_next/static/chunks/{23-y1f_zw56vo.js → 2v06n4z8wsmn9.js} +1 -1
  178. package/out/_next/static/chunks/2vp-5skbk1nfu.js +1 -0
  179. package/out/_next/static/chunks/2vu973j_n6cpx.js +1 -0
  180. package/out/_next/static/chunks/2wwra56rehfcj.js +1 -0
  181. package/out/_next/static/chunks/2xpwr97h2asal.js +1 -0
  182. package/out/_next/static/chunks/3000-0b8n9t_2.js +1 -0
  183. package/out/_next/static/chunks/{0q0i4pdyq66gb.js → 30t3203d7p2da.js} +1 -1
  184. package/out/_next/static/chunks/{3t4ys6th6gf2w.js → 31kto7-dxkt3z.js} +1 -1
  185. package/out/_next/static/chunks/{0j0a0wvmmghxj.js → 32oflcl79d8mu.js} +1 -1
  186. package/out/_next/static/chunks/32ovg81ae0l03.js +1 -0
  187. package/out/_next/static/chunks/{2c8rmxz151fxa.js → 331kthnvoma7n.js} +224 -224
  188. package/out/_next/static/chunks/337kn1mn34rc6.js +1 -0
  189. package/out/_next/static/chunks/{336ckqpboqmbn.js → 33xug8kf0-a1o.js} +1 -1
  190. package/out/_next/static/chunks/34dcb7_flbrvo.js +1 -0
  191. package/out/_next/static/chunks/34zotyeqrz_nq.js +1 -0
  192. package/out/_next/static/chunks/351wsmi75l8db.js +1 -0
  193. package/out/_next/static/chunks/36yv-ialtpx98.js +1 -0
  194. package/out/_next/static/chunks/37hwasxtee5e0.js +1 -0
  195. package/out/_next/static/chunks/37t0iclgxes05.js +1 -0
  196. package/out/_next/static/chunks/{1x0j78ohufpul.js → 37xnvnx1jxfaf.js} +1 -1
  197. package/out/_next/static/chunks/{29hkkj9raxte9.js → 38w74ixqt-9co.js} +77 -77
  198. package/out/_next/static/chunks/{0jap7l5-bskj4.js → 39t2x_9zd2rst.js} +12 -12
  199. package/out/_next/static/chunks/{38q0enmlg5q9o.js → 39v73timmzwny.js} +2 -2
  200. package/out/_next/static/chunks/{3puu2_-t0lln9.js → 3_xqc3658d8sw.js} +12 -12
  201. package/out/_next/static/chunks/3ba8eudvlczwe.js +1 -0
  202. package/out/_next/static/chunks/3buezhxqc8n6n.js +1 -0
  203. package/out/_next/static/chunks/3c5iwwj-fhbue.js +1 -0
  204. package/out/_next/static/chunks/{2kmmk9coo9_b0.js → 3d8ot2tw6yqfq.js} +143 -143
  205. package/out/_next/static/chunks/3dc057ffe7ij-.js +1 -0
  206. package/out/_next/static/chunks/3djnlzwj9869o.js +1 -0
  207. package/out/_next/static/chunks/{2_6b9lraq-exh.js → 3fuqxjjf8o1v9.js} +5 -5
  208. package/out/_next/static/chunks/{0j2ygtc_-bo3m.js → 3gt6rzg9qw-an.js} +1 -1
  209. package/out/_next/static/chunks/{0rykrf_vofbad.js → 3h_05w5j8x538.js} +1 -1
  210. package/out/_next/static/chunks/{3txu-i5qn183a.js → 3hkhd1_k8xohv.js} +321 -321
  211. package/out/_next/static/chunks/{2h07np207nlx7.js → 3ijcc5tfisfnj.js} +1 -1
  212. package/out/_next/static/chunks/3j0dbpd9zop3p.js +1 -0
  213. package/out/_next/static/chunks/{14e4k-718qadd.js → 3ju83xk-ca7ma.js} +163 -168
  214. package/out/_next/static/chunks/3jxhl4apmhbm1.js +13 -0
  215. package/out/_next/static/chunks/{1h1gixjbjkbsl.js → 3la99oz_0p0r6.js} +5 -5
  216. package/out/_next/static/chunks/{1mt4cnd_d6jvf.js → 3n1b34fd5fdrh.js} +1 -1
  217. package/out/_next/static/chunks/3nq_hq4x3rn3r.js +1 -0
  218. package/out/_next/static/chunks/3pgb1kkqrdl9t.js +1 -0
  219. package/out/_next/static/chunks/3pik_-jj-zkfl.js +1 -0
  220. package/out/_next/static/chunks/{1zmx71cvc6ksk.js → 3q38kdbzd2nbd.js} +1 -1
  221. package/out/_next/static/chunks/3q5zl4ks17au2.js +1 -0
  222. package/out/_next/static/chunks/{1t2g1v0ubcsam.js → 3qr10445lte-n.js} +1 -1
  223. package/out/_next/static/chunks/3r-8bnguvxsyo.js +1 -0
  224. package/out/_next/static/chunks/3sg56j8boe-3o.js +1 -0
  225. package/out/_next/static/chunks/3u7zj1-jdg781.js +1 -0
  226. package/out/_next/static/chunks/{0o0qtv35dqv3i.js → 3wj5dmf6cywz8.js} +239 -239
  227. package/out/_next/static/chunks/{2iu0_3cx-ny74.js → 3wr_oijfsq8lr.js} +11 -11
  228. package/out/_next/static/chunks/3xu0dh1ikzwj2.js +1 -0
  229. package/out/_next/static/chunks/{0vzo-8t8c26k9.js → 3y5tpixt23-fl.js} +1 -1
  230. package/out/_next/static/chunks/40gjf-_jt8upu.js +5 -0
  231. package/out/_next/static/chunks/41f12o_5lf-i9.js +1 -0
  232. package/out/_next/static/chunks/42ma8lqduohlc.js +1 -0
  233. package/out/_next/static/chunks/43usshq2nc125.js +1 -0
  234. package/out/_next/static/chunks/{161yjxmdz9obc.js → 44bl4ufopbmyh.js} +1 -1
  235. package/out/_next/static/chunks/44iutzkw9r21x.js +1 -0
  236. package/out/_next/static/chunks/turbopack-1xrxa3noq196-.js +1 -0
  237. package/out/_not-found/__next._full.txt +11 -11
  238. package/out/_not-found/__next._not-found.__PAGE__.txt +19 -2
  239. package/out/_not-found/__next._tree.txt +1 -1
  240. package/out/_not-found.html +1 -1
  241. package/out/_not-found.txt +11 -11
  242. package/out/index.html +1 -1
  243. package/out/index.txt +10 -10
  244. package/package.json +11 -11
  245. package/out/__next._head.txt +0 -6
  246. package/out/__next._index.txt +0 -5
  247. package/out/_next/static/chunks/0-k4hp87gwues.js +0 -1
  248. package/out/_next/static/chunks/04zj0yf1qhk1o.js +0 -1
  249. package/out/_next/static/chunks/06fbalmyyfpsy.js +0 -1
  250. package/out/_next/static/chunks/07hgbbqksqd1g.js +0 -1
  251. package/out/_next/static/chunks/08ou2nvy48e0u.js +0 -1
  252. package/out/_next/static/chunks/08y5-irjbsiy8.js +0 -1
  253. package/out/_next/static/chunks/0_jrfk2u1u3fi.js +0 -1
  254. package/out/_next/static/chunks/0a475u_q5i_dd.js +0 -62
  255. package/out/_next/static/chunks/0aad2r4s4wl1x.js +0 -5
  256. package/out/_next/static/chunks/0d9pxx1w_zqr9.js +0 -1
  257. package/out/_next/static/chunks/0gnjtwq-474uc.js +0 -1
  258. package/out/_next/static/chunks/0gsh_d0m5xss1.js +0 -1
  259. package/out/_next/static/chunks/0ibzpjo0h731v.js +0 -1
  260. package/out/_next/static/chunks/0j_3k5qhv_mdx.js +0 -1
  261. package/out/_next/static/chunks/0jis2w2mfx062.js +0 -1
  262. package/out/_next/static/chunks/0jjvp2slpf7d6.js +0 -1
  263. package/out/_next/static/chunks/0ko10wo4rc9-b.js +0 -1
  264. package/out/_next/static/chunks/0lqmvz6k2h_of.js +0 -1
  265. package/out/_next/static/chunks/0lwjmr8efrlbt.js +0 -17
  266. package/out/_next/static/chunks/0noxyupihh8dk.js +0 -1
  267. package/out/_next/static/chunks/0o1vph7x9shzu.js +0 -1
  268. package/out/_next/static/chunks/0p6phe9kjlxn8.js +0 -1
  269. package/out/_next/static/chunks/0ptxb9dcwsw3o.js +0 -1
  270. package/out/_next/static/chunks/0q8pt8fd0ma30.js +0 -1
  271. package/out/_next/static/chunks/0qqx9aoz8l5d2.js +0 -1
  272. package/out/_next/static/chunks/0tsk32q-88t_7.js +0 -1
  273. package/out/_next/static/chunks/0u7577db_ivyr.js +0 -1
  274. package/out/_next/static/chunks/0unnrt0un064x.js +0 -1
  275. package/out/_next/static/chunks/0uygtr4mo3h0v.js +0 -1
  276. package/out/_next/static/chunks/0vf3facit951s.js +0 -1
  277. package/out/_next/static/chunks/0xyija62b6txc.js +0 -1
  278. package/out/_next/static/chunks/0zeb37703zcz3.js +0 -1
  279. package/out/_next/static/chunks/0zu5ato7-1-q9.js +0 -1
  280. package/out/_next/static/chunks/0zydv7y47dxgh.js +0 -1
  281. package/out/_next/static/chunks/103x4jwovb6d-.js +0 -1
  282. package/out/_next/static/chunks/107wfq84g9-kn.js +0 -1
  283. package/out/_next/static/chunks/10afagk8yn__n.js +0 -1
  284. package/out/_next/static/chunks/12ory_c78yl31.js +0 -1
  285. package/out/_next/static/chunks/133dqp8_7_yo6.js +0 -1
  286. package/out/_next/static/chunks/1365lgwdd4vuo.js +0 -1
  287. package/out/_next/static/chunks/146ou-ohb_qhs.js +0 -1
  288. package/out/_next/static/chunks/14orr68xgdykd.js +0 -1
  289. package/out/_next/static/chunks/15qfoj-vl9thu.js +0 -1
  290. package/out/_next/static/chunks/166yqx3_qvbpy.js +0 -1
  291. package/out/_next/static/chunks/16gwjao676ieb.js +0 -1
  292. package/out/_next/static/chunks/16rmmzhy2p7bw.js +0 -1
  293. package/out/_next/static/chunks/17_jjyx4jz9dd.js +0 -1
  294. package/out/_next/static/chunks/18h9ugdz6igdb.js +0 -1
  295. package/out/_next/static/chunks/19d8n5t7ka2fb.js +0 -1
  296. package/out/_next/static/chunks/1_rbzw3n4fk0g.js +0 -1
  297. package/out/_next/static/chunks/1aa9g197l4twm.js +0 -1
  298. package/out/_next/static/chunks/1bq0fcnt1wy86.js +0 -1
  299. package/out/_next/static/chunks/1c6mho7e0enta.js +0 -1
  300. package/out/_next/static/chunks/1dfaheve77dhi.js +0 -1
  301. package/out/_next/static/chunks/1dgf112ehnhm1.js +0 -1
  302. package/out/_next/static/chunks/1eirucr9s6-h5.js +0 -1
  303. package/out/_next/static/chunks/1fsof7un7igrn.js +0 -1
  304. package/out/_next/static/chunks/1gvu5a6ffbs7l.js +0 -1
  305. package/out/_next/static/chunks/1iel4pzhhh-c3.js +0 -1
  306. package/out/_next/static/chunks/1iojfx3-g4_n9.js +0 -1
  307. package/out/_next/static/chunks/1j4jt5q7px8sy.js +0 -1
  308. package/out/_next/static/chunks/1jjw9hxgi2vzi.js +0 -1
  309. package/out/_next/static/chunks/1k_8olnprvi8r.js +0 -1
  310. package/out/_next/static/chunks/1l0rt7d4m-xdk.js +0 -5
  311. package/out/_next/static/chunks/1s0dpdqy480hg.js +0 -1
  312. package/out/_next/static/chunks/1t-yolk97lmot.js +0 -12
  313. package/out/_next/static/chunks/1tbes2sv-qzcx.js +0 -1
  314. package/out/_next/static/chunks/1upy8a5cb75kt.js +0 -1
  315. package/out/_next/static/chunks/1xed71f608m4b.js +0 -1
  316. package/out/_next/static/chunks/1z790xxb46gxy.js +0 -1
  317. package/out/_next/static/chunks/219n3q-_eengm.js +0 -1
  318. package/out/_next/static/chunks/21wo3vdr_uby8.js +0 -1
  319. package/out/_next/static/chunks/25gep78-izw79.js +0 -4
  320. package/out/_next/static/chunks/26i7dn31afdtm.js +0 -1
  321. package/out/_next/static/chunks/27hbplu797elx.js +0 -1
  322. package/out/_next/static/chunks/2992eiy52nazj.js +0 -1
  323. package/out/_next/static/chunks/29_n5j-hg_gsa.js +0 -1
  324. package/out/_next/static/chunks/29bxq-67oazfg.js +0 -1
  325. package/out/_next/static/chunks/29ings58w7kp1.js +0 -1
  326. package/out/_next/static/chunks/2_n0cpkdsjzli.js +0 -1
  327. package/out/_next/static/chunks/2a3iy701j4r_y.js +0 -1
  328. package/out/_next/static/chunks/2al9dh3_1ixhv.js +0 -1
  329. package/out/_next/static/chunks/2awr1c_vfsutb.js +0 -1
  330. package/out/_next/static/chunks/2bxe3kjr17tdp.js +0 -1
  331. package/out/_next/static/chunks/2dvbzar93ooc-.js +0 -1
  332. package/out/_next/static/chunks/2e-vp0e11g9ew.js +0 -1
  333. package/out/_next/static/chunks/2exj9-0p6n9x-.js +0 -1
  334. package/out/_next/static/chunks/2gf8l6hbmt7v3.js +0 -1
  335. package/out/_next/static/chunks/2h9i_adbqaxs4.js +0 -1
  336. package/out/_next/static/chunks/2jio3sio-_43z.js +0 -1
  337. package/out/_next/static/chunks/2neieeo9g2u56.js +0 -1
  338. package/out/_next/static/chunks/2pb_uosb-aa8x.js +0 -1
  339. package/out/_next/static/chunks/2qu-gpm3ux1l6.js +0 -1
  340. package/out/_next/static/chunks/2rsi6v7qmqx2b.js +0 -1
  341. package/out/_next/static/chunks/2tdvuc-27khif.js +0 -1
  342. package/out/_next/static/chunks/2trolrgd7neax.js +0 -1
  343. package/out/_next/static/chunks/2uyuafmoe5wi0.js +0 -3
  344. package/out/_next/static/chunks/2w2e0pxgs-n8f.js +0 -1
  345. package/out/_next/static/chunks/2xujlsx3stqig.js +0 -1
  346. package/out/_next/static/chunks/30y71dxdpv52d.js +0 -1
  347. package/out/_next/static/chunks/32c-e_v8_2xkf.js +0 -1
  348. package/out/_next/static/chunks/32oj0iudhp8bm.js +0 -1
  349. package/out/_next/static/chunks/33p9du6y9eegg.js +0 -1
  350. package/out/_next/static/chunks/38om-j0h0rryk.js +0 -1
  351. package/out/_next/static/chunks/39cou9lia_g7l.js +0 -1
  352. package/out/_next/static/chunks/39pkya0_bvcaj.js +0 -1
  353. package/out/_next/static/chunks/39rhmj_32ujyj.js +0 -1
  354. package/out/_next/static/chunks/3_1zzmx92j9c0.js +0 -1
  355. package/out/_next/static/chunks/3_earszshuz4n.js +0 -1
  356. package/out/_next/static/chunks/3ap_uxc8lx7ni.js +0 -1
  357. package/out/_next/static/chunks/3b6na8zrex8jo.js +0 -1
  358. package/out/_next/static/chunks/3c0cxt72vilyz.js +0 -1
  359. package/out/_next/static/chunks/3g78x0pdaoi_4.js +0 -1
  360. package/out/_next/static/chunks/3gjvl1p-tugfe.js +0 -4
  361. package/out/_next/static/chunks/3i8iro1gas1vx.js +0 -1
  362. package/out/_next/static/chunks/3kpqfqr99vo7z.js +0 -1
  363. package/out/_next/static/chunks/3lladf_wemm-2.js +0 -1
  364. package/out/_next/static/chunks/3n62hbywoknop.js +0 -1
  365. package/out/_next/static/chunks/3o_dmzpahx-5g.js +0 -1
  366. package/out/_next/static/chunks/3r7v7un976sn7.js +0 -1
  367. package/out/_next/static/chunks/3rl_nhqwew40w.js +0 -1
  368. package/out/_next/static/chunks/3s7hqij6xp_4e.js +0 -1
  369. package/out/_next/static/chunks/3si3migsmvz9o.js +0 -1
  370. package/out/_next/static/chunks/3uarw1i1ij1er.js +0 -1
  371. package/out/_next/static/chunks/3un-w6wutw1qn.js +0 -1
  372. package/out/_next/static/chunks/3v8kgnjk27wbe.js +0 -1
  373. package/out/_next/static/chunks/3we1khqfexh3x.js +0 -1
  374. package/out/_next/static/chunks/3z35loj4i-id4.js +0 -1
  375. package/out/_next/static/chunks/42lqt7ig40wk5.js +0 -1
  376. package/out/_next/static/chunks/42s6ghsurq5q7.js +0 -1
  377. package/out/_next/static/chunks/42yctcfi2rfwr.js +0 -1
  378. package/out/_next/static/chunks/43_fau1gg69eo.js +0 -1
  379. package/out/_next/static/chunks/43ywrdzg_7af8.js +0 -31
  380. package/out/_next/static/chunks/44m1ijc5cv80x.js +0 -1
  381. package/out/_next/static/chunks/453_bg0lgesmp.js +0 -1
  382. package/out/_next/static/chunks/turbopack-1s36ieuku1ds3.js +0 -1
  383. package/out/_not-found/__next._head.txt +0 -6
  384. package/out/_not-found/__next._index.txt +0 -5
  385. package/out/_not-found/__next._not-found.txt +0 -5
  386. /package/out/_next/static/{5UjNvd7WCk97iC2cSmEGH → 4r0L0ZMJeBwOJCVDsvvZ4}/_buildManifest.js +0 -0
  387. /package/out/_next/static/{5UjNvd7WCk97iC2cSmEGH → 4r0L0ZMJeBwOJCVDsvvZ4}/_clientMiddlewareManifest.js +0 -0
  388. /package/out/_next/static/{5UjNvd7WCk97iC2cSmEGH → 4r0L0ZMJeBwOJCVDsvvZ4}/_ssgManifest.js +0 -0
package/out/index.txt CHANGED
@@ -1,20 +1,20 @@
1
1
  1:"$Sreact.fragment"
2
- 2:I[89244,["/_next/static/chunks/3c0cxt72vilyz.js"],"default"]
3
- 3:I[69789,["/_next/static/chunks/3c0cxt72vilyz.js"],"default"]
4
- 4:I[57272,["/_next/static/chunks/3c0cxt72vilyz.js"],"ClientPageRoot"]
5
- 5:I[14936,["/_next/static/chunks/3c0cxt72vilyz.js","/_next/static/chunks/2rsi6v7qmqx2b.js","/_next/static/chunks/0a475u_q5i_dd.js","/_next/static/chunks/2uyuafmoe5wi0.js"],"default"]
6
- 8:I[82682,["/_next/static/chunks/3c0cxt72vilyz.js"],"OutletBoundary"]
2
+ 2:I[61675,["/_next/static/chunks/19bhv6cupnnyj.js"],"default"]
3
+ 3:I[21758,["/_next/static/chunks/19bhv6cupnnyj.js"],"default"]
4
+ 4:I[10667,["/_next/static/chunks/19bhv6cupnnyj.js"],"ClientPageRoot"]
5
+ 5:I[14936,["/_next/static/chunks/19bhv6cupnnyj.js","/_next/static/chunks/0ycr0gi6fn6bt.js","/_next/static/chunks/43usshq2nc125.js","/_next/static/chunks/0h7bq_ysu17q7.js","/_next/static/chunks/1qvcyuyshi3ll.js"],"default"]
6
+ 8:I[95598,["/_next/static/chunks/19bhv6cupnnyj.js"],"OutletBoundary"]
7
7
  9:"$Sreact.suspense"
8
- b:I[82682,["/_next/static/chunks/3c0cxt72vilyz.js"],"ViewportBoundary"]
9
- d:I[82682,["/_next/static/chunks/3c0cxt72vilyz.js"],"MetadataBoundary"]
10
- f:I[94493,["/_next/static/chunks/3c0cxt72vilyz.js"],"default",1]
8
+ b:I[95598,["/_next/static/chunks/19bhv6cupnnyj.js"],"ViewportBoundary"]
9
+ d:I[95598,["/_next/static/chunks/19bhv6cupnnyj.js"],"MetadataBoundary"]
10
+ f:I[80978,["/_next/static/chunks/19bhv6cupnnyj.js"],"default",1]
11
11
  :HL["/_next/static/chunks/05s0t-besbvu1.css","style"]
12
12
  :HL["/_next/static/media/0c89a48fa5027cee-s.p.2cyn07wtgehh0.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
13
13
  :HL["/_next/static/media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
14
- 0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/05s0t-besbvu1.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/3c0cxt72vilyz.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"space_grotesk_59d6dcf5-module__z_Ctiq__variable jetbrains_mono_38c99671-module__5Dhsuq__variable","children":["$","body",null,{"children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/2rsi6v7qmqx2b.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0a475u_q5i_dd.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/2uyuafmoe5wi0.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$Lc"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$Le"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$f",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/05s0t-besbvu1.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"5UjNvd7WCk97iC2cSmEGH"}
14
+ 0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{},"$undefined","$undefined",4608]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/05s0t-besbvu1.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/19bhv6cupnnyj.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"space_grotesk_59d6dcf5-module__z_Ctiq__variable jetbrains_mono_38c99671-module__5Dhsuq__variable","children":["$","body",null,{"children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/0ycr0gi6fn6bt.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/43usshq2nc125.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/0h7bq_ysu17q7.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/1qvcyuyshi3ll.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$Lc"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$Le"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$f",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/05s0t-besbvu1.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"4r0L0ZMJeBwOJCVDsvvZ4"}
15
15
  6:{}
16
16
  7:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params"
17
17
  c:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
18
- 10:I[88715,["/_next/static/chunks/3c0cxt72vilyz.js"],"IconMark"]
18
+ 10:I[98900,["/_next/static/chunks/19bhv6cupnnyj.js"],"IconMark"]
19
19
  a:null
20
20
  e:[["$","title","0",{"children":"Uptimizr — 3D Scene Analytics"}],["$","meta","1",{"name":"description","content":"Open-source analytics dashboard for 3D scenes."}],["$","link","2",{"rel":"icon","href":"/icon.svg?icon.08h29dad3pcxg.svg","sizes":"any","type":"image/svg+xml"}],["$","$L10","3",{}]]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uptimizr/dashboard",
3
- "version": "0.4.6",
3
+ "version": "0.4.8",
4
4
  "description": "Uptimizr analytics dashboard — a static-export SPA that reads the collector query API. Serve it standalone, all-in-one via the collector, or drop the assets on any static host.",
5
5
  "keywords": [
6
6
  "uptimizr",
@@ -36,25 +36,25 @@
36
36
  "LICENSE"
37
37
  ],
38
38
  "dependencies": {
39
- "@babylonjs/core": "^9.19.0",
40
- "@babylonjs/loaders": "^9.19.0",
41
- "@mlc-ai/web-llm": "^0.2.79",
42
- "next": "^16.2.12",
39
+ "@babylonjs/core": "^9.23.0",
40
+ "@babylonjs/loaders": "^9.23.0",
41
+ "@mlc-ai/web-llm": "^0.2.84",
42
+ "next": "^16.3.3",
43
43
  "react": "^19.2.8",
44
44
  "react-dom": "^19.2.8",
45
- "@uptimizr/react": "0.13.0",
46
45
  "@uptimizr/heatmap": "0.1.3",
47
- "@uptimizr/replay": "0.2.5"
46
+ "@uptimizr/react": "0.13.1",
47
+ "@uptimizr/replay": "0.2.6"
48
48
  },
49
49
  "devDependencies": {
50
50
  "@tailwindcss/postcss": "^4.3.3",
51
- "@types/node": "^26.1.2",
51
+ "@types/node": "^26.4.0",
52
52
  "@types/react": "^19.2.18",
53
- "@types/react-dom": "^19.2.4",
54
- "postcss": "^8.5.25",
53
+ "@types/react-dom": "^19.2.5",
54
+ "postcss": "^8.5.26",
55
55
  "tailwindcss": "^4.3.3",
56
56
  "typescript": "^6.0.3",
57
- "vitest": "^4.1.10"
57
+ "vitest": "^4.1.11"
58
58
  },
59
59
  "scripts": {
60
60
  "dev": "dotenv -e ../../../.env -- next dev -p 3000",
@@ -1,6 +0,0 @@
1
- 1:"$Sreact.fragment"
2
- 2:I[82682,["/_next/static/chunks/3c0cxt72vilyz.js"],"ViewportBoundary"]
3
- 3:I[82682,["/_next/static/chunks/3c0cxt72vilyz.js"],"MetadataBoundary"]
4
- 4:"$Sreact.suspense"
5
- 5:I[88715,["/_next/static/chunks/3c0cxt72vilyz.js"],"IconMark"]
6
- 0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Uptimizr — 3D Scene Analytics"}],["$","meta","1",{"name":"description","content":"Open-source analytics dashboard for 3D scenes."}],["$","link","2",{"rel":"icon","href":"/icon.svg?icon.08h29dad3pcxg.svg","sizes":"any","type":"image/svg+xml"}],["$","$L5","3",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"5UjNvd7WCk97iC2cSmEGH"}
@@ -1,5 +0,0 @@
1
- 1:"$Sreact.fragment"
2
- 2:I[89244,["/_next/static/chunks/3c0cxt72vilyz.js"],"default"]
3
- 3:I[69789,["/_next/static/chunks/3c0cxt72vilyz.js"],"default"]
4
- :HL["/_next/static/chunks/05s0t-besbvu1.css","style"]
5
- 0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/05s0t-besbvu1.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/3c0cxt72vilyz.js","async":true}]],["$","html",null,{"lang":"en","className":"space_grotesk_59d6dcf5-module__z_Ctiq__variable jetbrains_mono_38c99671-module__5Dhsuq__variable","children":["$","body",null,{"children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"5UjNvd7WCk97iC2cSmEGH"}
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,62750,e=>{"use strict";var t=e.i(17884),i=e.i(75105);let s="cachedOperationValue",l="cachedExecutionId";class a extends t.FlowGraphBlock{constructor(e,t){super(t),this.value=this.registerDataOutput("value",e),this.isValid=this.registerDataOutput("isValid",i.RichTypeBoolean)}_updateOutputs(e){let t=e._getExecutionVariable(this,l,-1),i=e._getExecutionVariable(this,s,null);if(null!=i&&t===e.executionId)this.isValid.setValue(!0,e),this.value.setValue(i,e);else try{let t=this._doOperation(e);if(null==t)return void this.isValid.setValue(!1,e);e._setExecutionVariable(this,s,t),e._setExecutionVariable(this,l,e.executionId),this.value.setValue(t,e),this.isValid.setValue(!0,e)}catch(t){this.isValid.setValue(!1,e)}}}e.s(["FlowGraphCachedOperationBlock",0,a])},40491,e=>{"use strict";var t=e.i(75105),i=e.i(62750),s=e.i(44520);class l extends i.FlowGraphCachedOperationBlock{constructor(e){super(t.RichTypeNumber,e),this.sound=this.registerDataInput("sound",t.RichTypeAny)}_doOperation(e){let t=this.sound.getValue(e);if(t)return t.volume}getClassName(){return"FlowGraphGetSoundVolumeBlock"}}let a=!1;function o(){a||(a=!0,(0,s.RegisterClass)("FlowGraphGetSoundVolumeBlock",l))}e.s(["FlowGraphGetSoundVolumeBlock",0,l,"RegisterFlowGraphGetSoundVolumeBlock",0,o],34918),o(),e.s([],92045),e.i(92045),e.i(34918),e.s(["FlowGraphGetSoundVolumeBlock",0,l],40491)}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,69163,e=>{"use strict";var t=e.i(62478),i=e.i(75105),o=e.i(79105),s=e.i(32304),r=e.i(44520);class n extends t.FlowGraphExecutionBlockWithOutSignal{constructor(e){super(e),this.startIndex=this.registerDataInput("startIndex",i.RichTypeAny,0),this.endIndex=this.registerDataInput("endIndex",i.RichTypeAny),this.step=this.registerDataInput("step",i.RichTypeNumber,1),this.index=this.registerDataOutput("index",i.RichTypeFlowGraphInteger,new s.FlowGraphInteger((0,o.getNumericValue)(e?.initialIndex??0))),this.executionFlow=this._registerSignalOutput("executionFlow"),this.completed=this._registerSignalOutput("completed"),this._unregisterSignalOutput("out")}_execute(e){let t=(0,o.getNumericValue)(this.startIndex.getValue(e)),i=this.step.getValue(e),r=(0,o.getNumericValue)(this.endIndex.getValue(e));for(let a=t;a<r&&(this.index.setValue(new s.FlowGraphInteger(a),e),this.executionFlow._activateSignal(e),r=(0,o.getNumericValue)(this.endIndex.getValue(e)),!(a>n.MaxLoopIterations*i));a+=i);this.config?.incrementIndexWhenLoopDone&&this.index.setValue(new s.FlowGraphInteger((0,o.getNumericValue)(this.index.getValue(e))+i),e),this.completed._activateSignal(e)}getClassName(){return"FlowGraphForLoopBlock"}}n.MaxLoopIterations=1e3;let a=!1;function l(){a||(a=!0,(0,r.RegisterClass)("FlowGraphForLoopBlock",n))}e.s(["FlowGraphForLoopBlock",0,n,"RegisterFlowGraphForLoopBlock",0,l],31219),l(),e.s([],1977),e.i(1977),e.i(31219),e.s(["FlowGraphForLoopBlock",0,n],69163)}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,16308,e=>{"use strict";var a=e.i(17884),i=e.i(75105),l=e.i(44520);class t extends a.FlowGraphBlock{constructor(e){super(e),this.config=e,this.value=this.registerDataOutput("value",i.RichTypeAny,e.initialValue)}_updateOutputs(e){let a=this.config.variable;e.hasVariable(a)&&this.value.setValue(e.getVariable(a),e)}serialize(e){super.serialize(e),e.config.variable=this.config.variable}getClassName(){return"FlowGraphGetVariableBlock"}}let r=!1;function s(){r||(r=!0,(0,l.RegisterClass)("FlowGraphGetVariableBlock",t))}e.s(["FlowGraphGetVariableBlock",0,t,"RegisterFlowGraphGetVariableBlock",0,s],75383),s(),e.s([],41421),e.i(41421),e.i(75383),e.s(["FlowGraphGetVariableBlock",0,t],16308)}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,62750,t=>{"use strict";var e=t.i(17884),i=t.i(75105);let s="cachedOperationValue",r="cachedExecutionId";class a extends e.FlowGraphBlock{constructor(t,e){super(e),this.value=this.registerDataOutput("value",t),this.isValid=this.registerDataOutput("isValid",i.RichTypeBoolean)}_updateOutputs(t){let e=t._getExecutionVariable(this,r,-1),i=t._getExecutionVariable(this,s,null);if(null!=i&&e===t.executionId)this.isValid.setValue(!0,t),this.value.setValue(i,t);else try{let e=this._doOperation(t);if(null==e)return void this.isValid.setValue(!1,t);t._setExecutionVariable(this,s,e),t._setExecutionVariable(this,r,t.executionId),this.value.setValue(e,t),this.isValid.setValue(!0,t)}catch(e){this.isValid.setValue(!1,t)}}}t.s(["FlowGraphCachedOperationBlock",0,a])},94106,t=>{"use strict";var e=t.i(75105),i=t.i(62750),s=t.i(44520);class r extends i.FlowGraphCachedOperationBlock{constructor(t){super(e.RichTypeAny,t),this.config=t,this.object=this.registerDataInput("object",e.RichTypeAny,t.object),this.propertyName=this.registerDataInput("propertyName",e.RichTypeString,t.propertyName),this.customGetFunction=this.registerDataInput("customGetFunction",e.RichTypeAny)}_doOperation(t){let e,i=this.customGetFunction.getValue(t);if(i)e=i(this.object.getValue(t),this.propertyName.getValue(t),t);else{let i=this.object.getValue(t),s=this.propertyName.getValue(t);e=i&&s?this._getPropertyValue(i,s):void 0}return e}_getPropertyValue(t,e){let i=e.split("."),s=t;for(let t of i)if(void 0===(s=s[t]))return;return s}getClassName(){return"FlowGraphGetPropertyBlock"}}let a=!1;function o(){a||(a=!0,(0,s.RegisterClass)("FlowGraphGetPropertyBlock",r))}t.s(["FlowGraphGetPropertyBlock",0,r,"RegisterFlowGraphGetPropertyBlock",0,o],97539),o(),t.s([],54635),t.i(54635),t.i(97539),t.s(["FlowGraphGetPropertyBlock",0,r],94106)}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,67213,t=>{"use strict";var e=t.i(51843);let i=!1;t.s(["RegisterAbstractEngineRenderPass",0,function(){i||(i=!0,e.AbstractEngine.prototype.getRenderPassNames=function(){return this._renderPassNames},e.AbstractEngine.prototype.getCurrentRenderPassName=function(){return this._renderPassNames[this.currentRenderPassId]},e.AbstractEngine.prototype.createRenderPassId=function(t){let i=++e.AbstractEngine._RenderPassIdCounter;return this._renderPassNames[i]=t??"NONAME",i},e.AbstractEngine.prototype.releaseRenderPassId=function(t){this._renderPassNames[t]=void 0;for(let e=0;e<this.scenes.length;++e){let i=this.scenes[e];for(let e=0;e<i.meshes.length;++e){let s=i.meshes[e];if(s._releaseRenderPassId(t),s.subMeshes)for(let e=0;e<s.subMeshes.length;++e)s.subMeshes[e]._removeDrawWrapper(t)}}})}])},55288,t=>{"use strict";let e,i,s,r,a,o,n,h,c,l,_,m,u,g,d,p,f,R,P,M,C,v,x,b,I,E,S,O,T,A,V,D,y,z,Z,L,N,w,F,j,k,H,q,B,G;var W,U=t.i(57575),X=t.i(9855),Y=t.i(32451),K=t.i(3864),Q=t.i(69400),$=t.i(52624),J=t.i(16347),tt=t.i(44520),te=t.i(85050),ti=t.i(12877),ts=t.i(57660),tr=t.i(67213),ta=t.i(2060);let to=(P=$.Node,M=[],C=[],v=[],x=[],b=[],I=[],E=[],S=[],O=[],T=[],A=[],V=[],D=[],y=[],z=[],Z=[],L=[],N=[],w=[],F=[],j=[],k=[],H=[],q=[],B=[],W=class extends P{get position(){return this._position}set position(t){this._position=t}set upVector(t){this._upVector=t}get upVector(){return this._upVector}get screenArea(){let t,e;if(this.mode===W.PERSPECTIVE_CAMERA)this.fovMode===W.FOVMODE_VERTICAL_FIXED?(e=2*this.minZ*Math.tan(this.fov/2),t=this.getEngine().getAspectRatio(this)*e):e=(t=2*this.minZ*Math.tan(this.fov/2))/this.getEngine().getAspectRatio(this);else{let i=this.getEngine().getRenderWidth()/2,s=this.getEngine().getRenderHeight()/2;t=(this.orthoRight??i)-(this.orthoLeft??-i),e=(this.orthoTop??s)-(this.orthoBottom??-s)}return t*e}set orthoLeft(t){for(let e of(this._orthoLeft=t,this._rigCameras))e.orthoLeft=t}get orthoLeft(){return this._orthoLeft}set orthoRight(t){for(let e of(this._orthoRight=t,this._rigCameras))e.orthoRight=t}get orthoRight(){return this._orthoRight}set orthoBottom(t){for(let e of(this._orthoBottom=t,this._rigCameras))e.orthoBottom=t}get orthoBottom(){return this._orthoBottom}set orthoTop(t){for(let e of(this._orthoTop=t,this._rigCameras))e.orthoTop=t}get orthoTop(){return this._orthoTop}setFocalLength(t,e=36){this.fov=2*Math.atan(e/(2*t))}get inertia(){return this._baseInertia}set inertia(t){this._baseInertia=t}set mode(t){for(let e of(this._mode=t,this._rigCameras))e.mode=t}get mode(){return this._mode}get hasMoved(){return this._hasMoved}constructor(t,e,i,s=!0){(0,tr.RegisterAbstractEngineRenderPass)(),super(t,i,!1),this.inputs=(0,U.__runInitializers)(this,M),this._position=(0,U.__runInitializers)(this,C,Q.Vector3.Zero()),this._upVector=((0,U.__runInitializers)(this,v),(0,U.__runInitializers)(this,x,Q.Vector3.Up())),this.oblique=((0,U.__runInitializers)(this,b),null),this._orthoLeft=null,this._orthoRight=null,this._orthoBottom=null,this._orthoTop=null,this.fov=(0,U.__runInitializers)(this,I,.8),this.projectionPlaneTilt=((0,U.__runInitializers)(this,E),(0,U.__runInitializers)(this,S,0)),this.minZ=((0,U.__runInitializers)(this,O),(0,U.__runInitializers)(this,T,1)),this.maxZ=((0,U.__runInitializers)(this,A),(0,U.__runInitializers)(this,V,1e4)),this._baseInertia=((0,U.__runInitializers)(this,D),.9),this._mode=W.PERSPECTIVE_CAMERA,this.isIntermediate=!1,this.viewport=new ti.Viewport(0,0,1,1),this.layerMask=(0,U.__runInitializers)(this,y,0xfffffff),this.fovMode=((0,U.__runInitializers)(this,z),(0,U.__runInitializers)(this,Z,W.FOVMODE_VERTICAL_FIXED)),this.cameraRigMode=((0,U.__runInitializers)(this,L),(0,U.__runInitializers)(this,N,W.RIG_MODE_NONE)),this.interaxialDistance=((0,U.__runInitializers)(this,w),(0,U.__runInitializers)(this,F,void 0)),this.isStereoscopicSideBySide=((0,U.__runInitializers)(this,j),(0,U.__runInitializers)(this,k,void 0)),this.ignoreCameraMaxZ=((0,U.__runInitializers)(this,H),(0,U.__runInitializers)(this,q,!1)),this.customRenderTargets=((0,U.__runInitializers)(this,B),[]),this.outputRenderTarget=null,this.onViewMatrixChangedObservable=new K.Observable,this.onProjectionMatrixChangedObservable=new K.Observable,this.onAfterCheckInputsObservable=new K.Observable,this.onRestoreStateObservable=new K.Observable,this.isRigCamera=!1,this._hasMoved=!1,this._rigCameras=[],this._skipRendering=!1,this._projectionMatrix=new Q.Matrix,this._postProcesses=[],this._activeMeshes=new Y.SmartArray(256),this._globalPosition=Q.Vector3.Zero(),this._computedViewMatrix=Q.Matrix.Identity(),this._doNotComputeProjectionMatrix=!1,this._transformMatrix=Q.Matrix.Zero(),this._refreshFrustumPlanes=!0,this._absoluteRotation=Q.Quaternion.Identity(),this._isCamera=!0,this._isLeftCamera=!1,this._isRightCamera=!1,this.layerMask=this.getScene().defaultCameraLayerMask,this.getScene().addCamera(this),s&&!this.getScene().activeCamera&&(this.getScene().activeCamera=this),this.position=e,this.renderPassId=this.getScene().getEngine().createRenderPassId(`Camera ${t}`)}storeState(){return this._stateStored=!0,this._storedFov=this.fov,this}hasStateStored(){return!!this._stateStored}_restoreStateValues(){return!!this._stateStored&&(this.fov=this._storedFov,!0)}restoreState(){return!!this._restoreStateValues()&&(this.onRestoreStateObservable.notifyObservers(this),!0)}getClassName(){return"Camera"}toString(t){let e="Name: "+this.name;if(e+=", type: "+this.getClassName(),this.animations)for(let i=0;i<this.animations.length;i++)e+=", animation[0]: "+this.animations[i].toString(t);return e}applyVerticalCorrection(){let t=this.absoluteRotation.toEulerAngles();this.projectionPlaneTilt=this._scene.useRightHandedSystem?-t.x:t.x}get globalPosition(){return this._globalPosition}getActiveMeshes(){return this._activeMeshes}isActiveMesh(t){return -1!==this._activeMeshes.indexOf(t)}isReady(t=!1){if(t){for(let t of this._postProcesses)if(t&&!t.isReady())return!1}return super.isReady(t)}_initCache(){super._initCache(),this._cache.position=new Q.Vector3(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),this._cache.upVector=new Q.Vector3(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),this._cache.mode=void 0,this._cache.minZ=void 0,this._cache.maxZ=void 0,this._cache.fov=void 0,this._cache.fovMode=void 0,this._cache.aspectRatio=void 0,this._cache.orthoLeft=void 0,this._cache.orthoRight=void 0,this._cache.orthoBottom=void 0,this._cache.orthoTop=void 0,this._cache.obliqueAngle=void 0,this._cache.obliqueLength=void 0,this._cache.obliqueOffset=void 0,this._cache.renderWidth=void 0,this._cache.renderHeight=void 0}_updateCache(t){t||super._updateCache(),this._cache.position.copyFrom(this.position),this._cache.upVector.copyFrom(this.upVector)}_isSynchronized(){return this._isSynchronizedViewMatrix()&&this._isSynchronizedProjectionMatrix()}_isSynchronizedViewMatrix(){return!!super._isSynchronized()&&this._cache.position.equals(this.position)&&this._cache.upVector.equals(this.upVector)&&this.isSynchronizedWithParent()}_isSynchronizedProjectionMatrix(){let t=this.ignoreCameraMaxZ?0:this.maxZ,e=this._cache.mode===this.mode&&this._cache.minZ===this.minZ&&this._cache.maxZ===t;if(!e)return!1;let i=this.getEngine();return this.mode===W.PERSPECTIVE_CAMERA?e=this._cache.fov===this.fov&&this._cache.fovMode===this.fovMode&&this._cache.aspectRatio===i.getAspectRatio(this)&&this._cache.projectionPlaneTilt===this.projectionPlaneTilt:(e=this._cache.orthoLeft===this.orthoLeft&&this._cache.orthoRight===this.orthoRight&&this._cache.orthoBottom===this.orthoBottom&&this._cache.orthoTop===this.orthoTop&&this._cache.renderWidth===i.getRenderWidth()&&this._cache.renderHeight===i.getRenderHeight(),this.oblique&&(e=e&&this._cache.obliqueAngle===this.oblique.angle&&this._cache.obliqueLength===this.oblique.length&&this._cache.obliqueOffset===this.oblique.offset)),e}attachControl(t,e){}detachControl(t){}update(){this._hasMoved=!1,this._checkInputs(),this.cameraRigMode!==W.RIG_MODE_NONE&&this._updateRigCameras(),this.getViewMatrix(),this.getProjectionMatrix()}_checkInputs(){this.onAfterCheckInputsObservable.notifyObservers(this)}get rigCameras(){return this._rigCameras}get rigPostProcess(){return this._rigPostProcess}_getFirstPostProcess(){for(let t=0;t<this._postProcesses.length;t++)if(null!==this._postProcesses[t])return this._postProcesses[t];return null}_cascadePostProcessesToRigCams(){let t=this._getFirstPostProcess();t&&t.markTextureDirty();for(let t=0,e=this._rigCameras.length;t<e;t++){let e=this._rigCameras[t],i=e._rigPostProcess;i?("pass"===i.getEffectName()&&(e.isIntermediate=0===this._postProcesses.length),e._postProcesses=this._postProcesses.slice(0).concat(i),i.markTextureDirty()):e._postProcesses=this._postProcesses.slice(0)}}attachPostProcess(t,e=null){return!t.isReusable()&&this._postProcesses.indexOf(t)>-1?(J.Logger.Error("You're trying to reuse a post process not defined as reusable."),0):(null==e||e<0?this._postProcesses.push(t):null===this._postProcesses[e]?this._postProcesses[e]=t:this._postProcesses.splice(e,0,t),this._cascadePostProcessesToRigCams(),this._scene.prePassRenderer&&this._scene.prePassRenderer.markAsDirty(),this._postProcesses.indexOf(t))}detachPostProcess(t){let e=this._postProcesses.indexOf(t);-1!==e&&(this._postProcesses[e]=null),this._scene.prePassRenderer&&this._scene.prePassRenderer.markAsDirty(),this._cascadePostProcessesToRigCams()}getWorldMatrix(){return this._isSynchronizedViewMatrix()||this.getViewMatrix(),this._worldMatrix}_getViewMatrix(){return Q.Matrix.Identity()}getViewMatrix(t){return!t&&this._isSynchronizedViewMatrix()||(this._hasMoved=!0,this.updateCache(),this._computedViewMatrix=this._getViewMatrix(),this._currentRenderId=this.getScene().getRenderId(),this._childUpdateId++,this._refreshFrustumPlanes=!0,this._cameraRigParams&&this._cameraRigParams.vrPreViewMatrix&&this._computedViewMatrix.multiplyToRef(this._cameraRigParams.vrPreViewMatrix,this._computedViewMatrix),this.parent&&this.parent.onViewMatrixChangedObservable&&this.parent.onViewMatrixChangedObservable.notifyObservers(this.parent),this.onViewMatrixChangedObservable.notifyObservers(this),this._computedViewMatrix.invertToRef(this._worldMatrix),this._worldMatrix.getTranslationToRef(this._globalPosition)),this._computedViewMatrix}freezeProjectionMatrix(t){this._doNotComputeProjectionMatrix=!0,void 0!==t&&(this._projectionMatrix=t)}unfreezeProjectionMatrix(){this._doNotComputeProjectionMatrix=!1}getProjectionMatrix(t){if(this._doNotComputeProjectionMatrix||!t&&this._isSynchronizedProjectionMatrix())return this._projectionMatrix;let e=this.ignoreCameraMaxZ?0:this.maxZ;this._cache.mode=this.mode,this._cache.minZ=this.minZ,this._cache.maxZ=e,this._refreshFrustumPlanes=!0;let i=this.getEngine(),s=this.getScene(),r=i.useReverseDepthBuffer;if(this.mode===W.PERSPECTIVE_CAMERA)this._cache.fov=this.fov,this._cache.fovMode=this.fovMode,this._cache.aspectRatio=i.getAspectRatio(this),this._cache.projectionPlaneTilt=this.projectionPlaneTilt,this.minZ<=0&&(this.minZ=.1),(s.useRightHandedSystem?Q.Matrix.PerspectiveFovRHToRef:Q.Matrix.PerspectiveFovLHToRef)(this.fov,i.getAspectRatio(this),r?e:this.minZ,r?this.minZ:e,this._projectionMatrix,this.fovMode===W.FOVMODE_VERTICAL_FIXED,i.isNDCHalfZRange,this.projectionPlaneTilt,r);else{let t=i.getRenderWidth()/2,a=i.getRenderHeight()/2;s.useRightHandedSystem?this.oblique?Q.Matrix.ObliqueOffCenterRHToRef(this.orthoLeft??-t,this.orthoRight??t,this.orthoBottom??-a,this.orthoTop??a,r?e:this.minZ,r?this.minZ:e,this.oblique.length,this.oblique.angle,this._computeObliqueDistance(this.oblique.offset),this._projectionMatrix,i.isNDCHalfZRange):Q.Matrix.OrthoOffCenterRHToRef(this.orthoLeft??-t,this.orthoRight??t,this.orthoBottom??-a,this.orthoTop??a,r?e:this.minZ,r?this.minZ:e,this._projectionMatrix,i.isNDCHalfZRange):this.oblique?Q.Matrix.ObliqueOffCenterLHToRef(this.orthoLeft??-t,this.orthoRight??t,this.orthoBottom??-a,this.orthoTop??a,r?e:this.minZ,r?this.minZ:e,this.oblique.length,this.oblique.angle,this._computeObliqueDistance(this.oblique.offset),this._projectionMatrix,i.isNDCHalfZRange):Q.Matrix.OrthoOffCenterLHToRef(this.orthoLeft??-t,this.orthoRight??t,this.orthoBottom??-a,this.orthoTop??a,r?e:this.minZ,r?this.minZ:e,this._projectionMatrix,i.isNDCHalfZRange),this._cache.orthoLeft=this.orthoLeft,this._cache.orthoRight=this.orthoRight,this._cache.orthoBottom=this.orthoBottom,this._cache.orthoTop=this.orthoTop,this._cache.obliqueAngle=this.oblique?.angle,this._cache.obliqueLength=this.oblique?.length,this._cache.obliqueOffset=this.oblique?.offset,this._cache.renderWidth=i.getRenderWidth(),this._cache.renderHeight=i.getRenderHeight()}return this.onProjectionMatrixChangedObservable.notifyObservers(this),this._projectionMatrix}getTransformationMatrix(){return this._computedViewMatrix.multiplyToRef(this._projectionMatrix,this._transformMatrix),this._transformMatrix}_computeObliqueDistance(t){return(this.radius||(this.target?Q.Vector3.Distance(this.position,this.target):this.position.length()))+t}_updateFrustumPlanes(){this._refreshFrustumPlanes&&(this.getTransformationMatrix(),this._frustumPlanes?ts.Frustum.GetPlanesToRef(this._transformMatrix,this._frustumPlanes):this._frustumPlanes=ts.Frustum.GetPlanes(this._transformMatrix),this._refreshFrustumPlanes=!1)}isInFrustum(t,e=!1){if(this._updateFrustumPlanes(),!e||!(this.rigCameras.length>0))return t.isInFrustum(this._frustumPlanes);{let e=!1;for(let i of this.rigCameras)i._updateFrustumPlanes(),e=e||t.isInFrustum(i._frustumPlanes);return e}}isCompletelyInFrustum(t){return this._updateFrustumPlanes(),t.isCompletelyInFrustum(this._frustumPlanes)}getForwardRay(t=100,e,i){throw(0,te._WarnImport)("Ray")}getForwardRayToRef(t,e=100,i,s){throw(0,te._WarnImport)("Ray")}dispose(t,e=!1){for(this.onViewMatrixChangedObservable.clear(),this.onProjectionMatrixChangedObservable.clear(),this.onAfterCheckInputsObservable.clear(),this.onRestoreStateObservable.clear(),this.inputs&&this.inputs.clear(),this.getScene().stopAnimation(this),this.getScene().removeCamera(this);this._rigCameras.length>0;){let t=this._rigCameras.pop();t&&t.dispose()}if(this._parentContainer){let t=this._parentContainer.cameras.indexOf(this);t>-1&&this._parentContainer.cameras.splice(t,1),this._parentContainer=null}if(this._rigPostProcess)this._rigPostProcess.dispose(this),this._rigPostProcess=null,this._postProcesses.length=0;else if(this.cameraRigMode!==W.RIG_MODE_NONE)this._rigPostProcess=null,this._postProcesses.length=0;else{let t=this._postProcesses.length;for(;--t>=0;){let e=this._postProcesses[t];e&&e.dispose(this)}}let i=this.customRenderTargets.length;for(;--i>=0;)this.customRenderTargets[i].dispose();this.customRenderTargets.length=0,this._activeMeshes.dispose(),this.getScene().getEngine().releaseRenderPassId(this.renderPassId),super.dispose(t,e)}get isLeftCamera(){return this._isLeftCamera}get isRightCamera(){return this._isRightCamera}get leftCamera(){return this._rigCameras.length<1?null:this._rigCameras[0]}get rightCamera(){return this._rigCameras.length<2?null:this._rigCameras[1]}getLeftTarget(){return this._rigCameras.length<1?null:this._rigCameras[0].getTarget()}getRightTarget(){return this._rigCameras.length<2?null:this._rigCameras[1].getTarget()}setCameraRigMode(t,e){if(this.cameraRigMode!==t){for(;this._rigCameras.length>0;){let t=this._rigCameras.pop();t&&t.dispose()}if(this.cameraRigMode=t,this._cameraRigParams={},this._cameraRigParams.interaxialDistance=e.interaxialDistance||.0637,this._cameraRigParams.stereoHalfAngle=this._cameraRigParams.interaxialDistance/.0637*(Math.PI/180),this.cameraRigMode!==W.RIG_MODE_NONE){let t=this.createRigCamera(this.name+"_L",0);t&&(t._isLeftCamera=!0);let e=this.createRigCamera(this.name+"_R",1);e&&(e._isRightCamera=!0),t&&e&&(this._rigCameras.push(t),this._rigCameras.push(e))}this._setRigMode(e),this._cascadePostProcessesToRigCams(),this.update()}}_setRigMode(t){}_getVRProjectionMatrix(){return Q.Matrix.PerspectiveFovLHToRef(this._cameraRigParams.vrMetrics.aspectRatioFov,this._cameraRigParams.vrMetrics.aspectRatio,this.minZ,this.ignoreCameraMaxZ?0:this.maxZ,this._cameraRigParams.vrWorkMatrix,!0,this.getEngine().isNDCHalfZRange),this._cameraRigParams.vrWorkMatrix.multiplyToRef(this._cameraRigParams.vrHMatrix,this._projectionMatrix),this._projectionMatrix}setCameraRigParameter(t,e){this._cameraRigParams||(this._cameraRigParams={}),this._cameraRigParams[t]=e,"interaxialDistance"===t&&(this._cameraRigParams.stereoHalfAngle=e/.0637*(Math.PI/180))}createRigCamera(t,e){return null}_updateRigCameras(){for(let t=0;t<this._rigCameras.length;t++)this._rigCameras[t].minZ=this.minZ,this._rigCameras[t].maxZ=this.ignoreCameraMaxZ?0:this.maxZ,this._rigCameras[t].fov=this.fov,this._rigCameras[t].upVector.copyFrom(this.upVector);this.cameraRigMode===W.RIG_MODE_STEREOSCOPIC_ANAGLYPH&&(this._rigCameras[0].viewport=this._rigCameras[1].viewport=this.viewport)}_setupInputs(){}serialize(){let t=ta.SerializationHelper.Serialize(this);return t.uniqueId=this.uniqueId,t.type=this.getClassName(),this.parent&&this.parent._serializeAsParent(t),this.inputs&&this.inputs.serialize(t),ta.SerializationHelper.AppendSerializedAnimations(this,t),t.ranges=this.serializeAnimationRanges(),t.isEnabled=this.isEnabled(),t}clone(t,e=null){let i=ta.SerializationHelper.Clone(W.GetConstructorFromName(this.getClassName(),t,this.getScene(),this.interaxialDistance,this.isStereoscopicSideBySide),this);return i.name=t,i.parent=e,this.onClonedObservable.notifyObservers(i),i}getDirection(t){let e=Q.Vector3.Zero();return this.getDirectionToRef(t,e),e}get absoluteRotation(){return this.getWorldMatrix().decompose(void 0,this._absoluteRotation),this._absoluteRotation}getDirectionToRef(t,e){Q.Vector3.TransformNormalToRef(t,this.getWorldMatrix(),e)}static GetConstructorFromName(t,e,i,s=0,r=!0){let a=$.Node.Construct(t,e,i,{interaxial_distance:s,isStereoscopicSideBySide:r});return a||(()=>W._CreateDefaultParsedCamera(e,i))}computeWorldMatrix(){return this.getWorldMatrix()}_calculateHandednessMultiplier(){let t=this.getScene().useRightHandedSystem?-1:1;return this.parent&&0>this.parent._getWorldMatrixDeterminant()&&(t*=-1),t}},G="function"==typeof Symbol&&Symbol.metadata?Object.create(P[Symbol.metadata]??null):void 0,e=[(0,X.serializeAsVector3)("position")],i=[(0,X.serializeAsVector3)("upVector")],s=[(0,X.serialize)()],r=[(0,X.serialize)()],a=[(0,X.serialize)()],o=[(0,X.serialize)()],n=[(0,X.serialize)()],h=[(0,X.serialize)()],c=[(0,X.serialize)()],l=[(0,X.serialize)()],_=[(0,X.serialize)()],m=[(0,X.serialize)()],u=[(0,X.serialize)()],g=[(0,X.serialize)()],d=[(0,X.serialize)()],p=[(0,X.serialize)()],f=[(0,X.serialize)()],R=[(0,X.serialize)()],(0,U.__esDecorate)(W,null,s,{kind:"getter",name:"orthoLeft",static:!1,private:!1,access:{has:t=>"orthoLeft"in t,get:t=>t.orthoLeft},metadata:G},null,M),(0,U.__esDecorate)(W,null,r,{kind:"getter",name:"orthoRight",static:!1,private:!1,access:{has:t=>"orthoRight"in t,get:t=>t.orthoRight},metadata:G},null,M),(0,U.__esDecorate)(W,null,a,{kind:"getter",name:"orthoBottom",static:!1,private:!1,access:{has:t=>"orthoBottom"in t,get:t=>t.orthoBottom},metadata:G},null,M),(0,U.__esDecorate)(W,null,o,{kind:"getter",name:"orthoTop",static:!1,private:!1,access:{has:t=>"orthoTop"in t,get:t=>t.orthoTop},metadata:G},null,M),(0,U.__esDecorate)(W,null,_,{kind:"getter",name:"inertia",static:!1,private:!1,access:{has:t=>"inertia"in t,get:t=>t.inertia},metadata:G},null,M),(0,U.__esDecorate)(W,null,m,{kind:"getter",name:"mode",static:!1,private:!1,access:{has:t=>"mode"in t,get:t=>t.mode},metadata:G},null,M),(0,U.__esDecorate)(null,null,e,{kind:"field",name:"_position",static:!1,private:!1,access:{has:t=>"_position"in t,get:t=>t._position,set:(t,e)=>{t._position=e}},metadata:G},C,v),(0,U.__esDecorate)(null,null,i,{kind:"field",name:"_upVector",static:!1,private:!1,access:{has:t=>"_upVector"in t,get:t=>t._upVector,set:(t,e)=>{t._upVector=e}},metadata:G},x,b),(0,U.__esDecorate)(null,null,n,{kind:"field",name:"fov",static:!1,private:!1,access:{has:t=>"fov"in t,get:t=>t.fov,set:(t,e)=>{t.fov=e}},metadata:G},I,E),(0,U.__esDecorate)(null,null,h,{kind:"field",name:"projectionPlaneTilt",static:!1,private:!1,access:{has:t=>"projectionPlaneTilt"in t,get:t=>t.projectionPlaneTilt,set:(t,e)=>{t.projectionPlaneTilt=e}},metadata:G},S,O),(0,U.__esDecorate)(null,null,c,{kind:"field",name:"minZ",static:!1,private:!1,access:{has:t=>"minZ"in t,get:t=>t.minZ,set:(t,e)=>{t.minZ=e}},metadata:G},T,A),(0,U.__esDecorate)(null,null,l,{kind:"field",name:"maxZ",static:!1,private:!1,access:{has:t=>"maxZ"in t,get:t=>t.maxZ,set:(t,e)=>{t.maxZ=e}},metadata:G},V,D),(0,U.__esDecorate)(null,null,u,{kind:"field",name:"layerMask",static:!1,private:!1,access:{has:t=>"layerMask"in t,get:t=>t.layerMask,set:(t,e)=>{t.layerMask=e}},metadata:G},y,z),(0,U.__esDecorate)(null,null,g,{kind:"field",name:"fovMode",static:!1,private:!1,access:{has:t=>"fovMode"in t,get:t=>t.fovMode,set:(t,e)=>{t.fovMode=e}},metadata:G},Z,L),(0,U.__esDecorate)(null,null,d,{kind:"field",name:"cameraRigMode",static:!1,private:!1,access:{has:t=>"cameraRigMode"in t,get:t=>t.cameraRigMode,set:(t,e)=>{t.cameraRigMode=e}},metadata:G},N,w),(0,U.__esDecorate)(null,null,p,{kind:"field",name:"interaxialDistance",static:!1,private:!1,access:{has:t=>"interaxialDistance"in t,get:t=>t.interaxialDistance,set:(t,e)=>{t.interaxialDistance=e}},metadata:G},F,j),(0,U.__esDecorate)(null,null,f,{kind:"field",name:"isStereoscopicSideBySide",static:!1,private:!1,access:{has:t=>"isStereoscopicSideBySide"in t,get:t=>t.isStereoscopicSideBySide,set:(t,e)=>{t.isStereoscopicSideBySide=e}},metadata:G},k,H),(0,U.__esDecorate)(null,null,R,{kind:"field",name:"ignoreCameraMaxZ",static:!1,private:!1,access:{has:t=>"ignoreCameraMaxZ"in t,get:t=>t.ignoreCameraMaxZ,set:(t,e)=>{t.ignoreCameraMaxZ=e}},metadata:G},q,B),G&&Object.defineProperty(W,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:G}),W._CreateDefaultParsedCamera=(t,e)=>{throw(0,te._WarnImport)("UniversalCamera")},W.PERSPECTIVE_CAMERA=0,W.ORTHOGRAPHIC_CAMERA=1,W.FOVMODE_VERTICAL_FIXED=0,W.FOVMODE_HORIZONTAL_FIXED=1,W.RIG_MODE_NONE=0,W.RIG_MODE_STEREOSCOPIC_ANAGLYPH=10,W.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL=11,W.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED=12,W.RIG_MODE_STEREOSCOPIC_OVERUNDER=13,W.RIG_MODE_STEREOSCOPIC_INTERLACED=14,W.RIG_MODE_VR=20,W.RIG_MODE_CUSTOM=22,W.ForceAttachControlToAlwaysPreventDefault=!1,W);function tn(t,e){let i=t.type,s=to.GetConstructorFromName(i,t.name,e,t.interaxial_distance,t.isStereoscopicSideBySide),r=ta.SerializationHelper.Parse(s,t,e);if(void 0!==t.parentId&&(r._waitingParentId=t.parentId),void 0!==t.parentInstanceIndex&&(r._waitingParentInstanceIndex=t.parentInstanceIndex),r.inputs&&(r.inputs.parse(t),r._setupInputs()),t.upVector&&(r.upVector=Q.Vector3.FromArray(t.upVector)),r.setPosition&&(r.position.copyFromFloats(0,0,0),r.setPosition(Q.Vector3.FromArray(t.position))),t.target&&r.setTarget&&r.setTarget(Q.Vector3.FromArray(t.target)),t.cameraRigMode){let e=t.interaxial_distance?{interaxialDistance:t.interaxial_distance}:{};r.setCameraRigMode(t.cameraRigMode,e)}if(t.animations){for(let e=0;e<t.animations.length;e++){let i=t.animations[e],s=(0,tt.GetClass)("BABYLON.Animation");s&&r.animations.push(s.Parse(i))}$.Node.ParseAnimationRanges(r,t,e)}return t.autoAnimate&&e.beginAnimation(r,t.autoAnimateFrom,t.autoAnimateTo,t.autoAnimateLoop,t.autoAnimateSpeed||1),void 0!==t.isEnabled&&r.setEnabled(t.isEnabled),r}let th=!1;t.s(["Camera",0,to,"RegisterCamera",0,function(){th||(th=!0,to.Parse=tn)}])}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,2348,2413,e=>{"use strict";let t=1/1.2;e.s(["ZOOM_IN_FACTOR",0,t,"ZOOM_OUT_FACTOR",0,1.2,"attachDoubleClickFocus",0,function(e,t,n){let a=()=>{let t=e.pick(e.pointerX,e.pointerY);t?.hit&&t.pickedPoint&&n.setTarget(t.pickedPoint)};return t.addEventListener("dblclick",a),()=>t.removeEventListener("dblclick",a)},"disableWheelZoom",0,function(e){e.inputs.removeByType("ArcRotateCameraMouseWheelInput")},"resetFocus",0,function(e,t){e.setTarget(t.target),e.alpha=t.alpha,e.beta=t.beta,e.radius=t.radius},"stepZoom",0,function(e,t){let n=e.lowerRadiusLimit??.01,a=e.upperRadiusLimit??1/0;e.radius=Math.min(a,Math.max(n,e.radius*t))}],2348);var n=e.i(79047);e.s(["ZoomButtons",0,function({onZoom:e,onReset:a}){let r="grid h-8 w-8 place-items-center rounded-md border border-edge bg-ink/80 text-lg leading-none text-fg backdrop-blur transition hover:bg-ink hover:text-white";return(0,n.jsxs)("div",{className:"absolute right-3 top-3 flex flex-col gap-1",children:[(0,n.jsx)("button",{type:"button","aria-label":"Zoom in",className:r,onClick:()=>e(t),children:"+"}),(0,n.jsx)("button",{type:"button","aria-label":"Zoom out",className:r,onClick:()=>e(1.2),children:"−"}),a?(0,n.jsx)("button",{type:"button","aria-label":"Reset camera focus to center",title:"Reset focus to center",className:r,onClick:a,children:(0,n.jsxs)("svg",{viewBox:"0 0 16 16",width:"16",height:"16",fill:"none",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"8",cy:"8",r:"3"}),(0,n.jsx)("path",{d:"M8 1v2.5M8 12.5V15M1 8h2.5M12.5 8H15"})]})}):null]})}],2413)},87456,e=>{"use strict";e.s(["attachMeshHover",0,function(e,t,n){let a=0,r=null,s=t=>{let s=t.offsetX,i=t.offsetY;a||(a=requestAnimationFrame(()=>{var t,l;let o;a=0;let u=e.pick(s,i,e=>e.isPickable&&e.isEnabled()),c=u?.pickedMesh?(t=u.pickedMesh,l=u.thinInstanceIndex??-1,(o=t.metadata)?l>=0&&o.hoverLabels?o.hoverLabels[l]??null:o.hoverLabel??null:null):null;c?n({label:c,x:s,y:i}):null!==r&&n(null),r=c}))},i=()=>{a&&(cancelAnimationFrame(a),a=0),null!==r&&(r=null,n(null))};return t.addEventListener("pointermove",s),t.addEventListener("pointerleave",i),()=>{t.removeEventListener("pointermove",s),t.removeEventListener("pointerleave",i),a&&cancelAnimationFrame(a)}}])},30215,e=>{"use strict";var t=e.i(79047),n=e.i(57431),a=e.i(56054),r=e.i(2348),s=e.i(87456),i=e.i(18637),l=e.i(2413);function o({shape:e,onChange:n}){let a=e=>`h-8 px-2.5 text-xs font-medium leading-none transition first:rounded-l-md last:rounded-r-md ${e?"bg-ink text-white":"bg-ink/80 text-fg hover:text-white"}`,r="sphere"===e,s="cube"===e;return(0,t.jsxs)("div",{className:"absolute left-3 top-3 flex overflow-hidden rounded-md border border-edge backdrop-blur",role:"group","aria-label":"Voxel marker shape",children:[(0,t.jsx)("button",{type:"button",className:a(r),"aria-pressed":r,onClick:()=>n("sphere"),children:"Spheres"}),(0,t.jsx)("button",{type:"button",className:a(s),"aria-pressed":s,onClick:()=>n("cube"),children:"Cubes"})]})}e.s(["WorldHeatmap3DView",0,function({voxels:u,cellSize:c,proxyMeshes:h=[],legendTitle:d="Pointer-hit density",legendLow:m="few hits",legendHigh:f="most hits",legendNote:p="Each marker is a voxel where the pointer hit your scene. Color & size scale with hits, normalized to the 95th-percentile cell so a few hotspots don't wash out the rest.",emptyLabel:g="No 3D hit-points in range.",totals:b,voxelLabels:x}){let w=(0,n.useRef)(null),v=(0,n.useRef)(null),k=(0,n.useRef)(null),[y,j]=(0,n.useState)("loading"),[M,_]=(0,n.useState)(null),[z,C]=(0,n.useState)("sphere"),[S,R]=(0,n.useState)(null),L=(0,n.useRef)(u),I=(0,n.useRef)(h),A=(0,n.useRef)(x);L.current=u,I.current=h,A.current=x;let P=(0,n.useRef)(null),E=u.length>0||h.length>0;(0,n.useEffect)(()=>{let t=w.current;if(!t)return;if(!E)return void j("empty");let n=!1,i=null;return j("loading"),_(null),(async()=>{try{let[{Engine:l},{Scene:o},{ArcRotateCamera:u},{HemisphericLight:h},{Vector3:d,Color3:m,Color4:f,Matrix:p},{MeshBuilder:g},{StandardMaterial:b}]=await Promise.all([e.A(48159),e.A(7614),e.A(41656),e.A(84694),e.A(13160),e.A(9786),e.A(33664),e.A(28911),e.A(4977)]);if(n)return;let x=L.current,w=I.current,y=0,M=0,_=0,C=0;for(let e of x)y+=(e.vx+.5)*c,M+=(e.vy+.5)*c,_+=(e.vz+.5)*c,C++;if(0===C)for(let e of w)y+=(e.aabb[0]+e.aabb[3])/2,M+=(e.aabb[1]+e.aabb[4])/2,_+=(e.aabb[2]+e.aabb[5])/2,C++;let S=new d(y/C,M/C,_/C),E=4*c;for(let e of x){let t=(e.vx+.5)*c-S.x,n=(e.vy+.5)*c-S.y,a=(e.vz+.5)*c-S.z;E=Math.max(E,Math.sqrt(t*t+n*n+a*a))}for(let e of w){let t=(e.aabb[0]+e.aabb[3])/2-S.x,n=(e.aabb[1]+e.aabb[4])/2-S.y,a=(e.aabb[2]+e.aabb[5])/2-S.z;E=Math.max(E,Math.sqrt(t*t+n*n+a*a))}let $=new l(t,!0,{preserveDrawingBuffer:!1}),N=new o($);N.clearColor=new f(.04,.05,.07,1);let T=new u("world-cam",Math.PI/4,Math.PI/3,2.4*E,S,N);T.attachControl(t,!0),(0,r.disableWheelZoom)(T),v.current=T,k.current={target:S,alpha:T.alpha,beta:T.beta,radius:T.radius},new h("world-light",new d(.4,1,.3),N);let B=Math.max(.02*E,.25*c)/(.9*c),F=T.radius,V="cube"===z?g.CreateBox("world-voxel",{size:.9*c},N):g.CreateSphere("world-voxel",{diameter:.9*c,segments:6},N),O=new b("world-voxel-mat",N);O.diffuseColor=new m(1,1,1),O.specularColor=new m(0,0,0),V.material=O;let Z=0,D=new Float32Array(0),q=new Float32Array(0),W=-1,H=()=>{if(0===Z)return;let e=Math.min(8,Math.max(.6,T.radius/F));if(!(.01>Math.abs(e-W))){W=e;for(let t=0;t<Z;t++){let n=q[t]*e,a=16*t;D[a]=n,D[a+5]=n,D[a+10]=n}V.thinInstanceBufferUpdated("matrix")}};N.onBeforeRenderObservable.add(H);let K=null,U="\0",G=()=>{(()=>{let e=I.current,t=e.map(e=>`${e.name}:${e.aabb.join(",")}`).join("|");if(t===U||(U=t,K&&(K.dispose(!1,!0),K=null),0===e.length))return;K=g.CreateBox("scene-proxy",{size:1},N);let n=new b("scene-proxy-mat",N);n.wireframe=!0,n.disableLighting=!0,n.emissiveColor=new m(.32,.4,.52),n.alpha=.35,K.material=n,K.isPickable=!0,K.thinInstanceEnablePicking=!0,K.metadata={hoverLabels:e.map(e=>e.name)};let a=e.length,r=new Float32Array(16*a);for(let t=0;t<a;t++){let n=e[t].aabb,a=Math.max(n[3]-n[0],.001),s=Math.max(n[4]-n[1],.001),i=Math.max(n[5]-n[2],.001);p.Scaling(a,s,i).multiply(p.Translation((n[0]+n[3])/2,(n[1]+n[4])/2,(n[2]+n[5])/2)).copyToArray(r,16*t)}K.thinInstanceSetBuffer("matrix",r,16,!0)})(),(()=>{let e=L.current,t=A.current,n=e.length;if(0===n){Z=0,V.isVisible=!1;return}let r=(0,a.percentileMax)(e.map(e=>e.count),.95),s=new Float32Array(16*n),i=new Float32Array(4*n),l=new Float32Array(n);for(let t=0;t<n;t++){let n=e[t],o=Math.min(1,n.count/r),u=B*(.5+.5*o);l[t]=u,p.Scaling(u,u,u).multiply(p.Translation((n.vx+.5)*c,(n.vy+.5)*c,(n.vz+.5)*c)).copyToArray(s,16*t);let[h,d,m]=(0,a.heatRgb)(o);i[4*t]=h,i[4*t+1]=d,i[4*t+2]=m,i[4*t+3]=1}Z=n,D=s,q=l,V.isVisible=!0,V.isPickable=!!t,V.thinInstanceEnablePicking=!!t,V.metadata=t?{hoverLabels:t}:null,V.thinInstanceSetBuffer("matrix",D,16,!1),V.thinInstanceSetBuffer("color",i,4,!0),W=-1,H()})()};P.current=G,G(),$.runRenderLoop(()=>N.render());let Y=()=>$.resize();window.addEventListener("resize",Y);let X=(0,s.attachMeshHover)(N,t,R),J=(0,r.attachDoubleClickFocus)(N,t,T);j("ready"),i=()=>{window.removeEventListener("resize",Y),X(),J(),R(null),P.current=null,v.current=null,k.current=null,N.dispose(),$.dispose()}}catch(e){if(n)return;j("error"),_(e instanceof Error?e.message:"Failed to render heatmap.")}})(),()=>{n=!0,i?.()}},[z,c,E]),(0,n.useEffect)(()=>{P.current?.()},[u,h,x]);let $=b?b.cells>u.length?` Showing the ${u.length.toLocaleString()} busiest of ${b.cells.toLocaleString()} occupied cells (${b.hits.toLocaleString()} total hits).`:` ${b.cells.toLocaleString()} occupied cells, ${b.hits.toLocaleString()} total hits.`:"";return(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("canvas",{ref:w,className:"aspect-video w-full rounded-lg border border-edge bg-ink"}),S?(0,t.jsx)("div",{className:"pointer-events-none absolute z-10 max-w-[16rem] truncate rounded border border-edge bg-ink/90 px-1.5 py-0.5 text-xs text-white shadow backdrop-blur",style:{left:S.x+12,top:S.y+12},children:S.label}):null,"ready"===y?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(o,{shape:z,onChange:C}),(0,t.jsx)(l.ZoomButtons,{onZoom:e=>v.current&&(0,r.stepZoom)(v.current,e),onReset:()=>v.current&&k.current&&(0,r.resetFocus)(v.current,k.current)}),(0,t.jsx)(i.HeatLegend,{title:d,lowLabel:m,highLabel:f,note:p+$})]}):(0,t.jsx)("div",{className:"pointer-events-none absolute inset-0 grid place-items-center text-sm text-fg-muted",children:"loading"===y?"Rendering…":"empty"===y?g:"error"===y?M??"Heatmap unavailable.":null})]})}])},48939,e=>{"use strict";var t=e.i(79047),n=e.i(57431);function a(e){return Number.isNaN(e)||e<0?0:e>1?1:e}function r(e){let t=a(e),n=[[0,.1,.9],[0,.85,1],[.1,.9,.2],[1,.85,0],[1,.15,0],[1,1,1]],r=n.length-1,s=t*r,i=Math.min(Math.floor(s),r-1),l=s-i,o=n[i],u=n[i+1];return o&&u?[o[0]+(u[0]-o[0])*l,o[1]+(u[1]-o[1])*l,o[2]+(u[2]-o[2])*l]:[1,1,1]}var s=e.i(56054),i=e.i(2348),l=e.i(87456),o=e.i(18637),u=e.i(2413);e.s(["CameraDome3DView",0,function({bins:c,gridSize:h}){let d=(0,n.useRef)(null),m=(0,n.useRef)(null),f=(0,n.useRef)(null),[p,g]=(0,n.useState)("loading"),[b,x]=(0,n.useState)(null),[w,v]=(0,n.useState)("markers"),[k,y]=(0,n.useState)(null),j=(0,n.useRef)(c),M=(0,n.useRef)(h),_=(0,n.useRef)(w);j.current=c,M.current=h,_.current=w;let z=(0,n.useRef)(null),C=c.length>0;return(0,n.useEffect)(()=>{let t=d.current;if(!t)return;if(!C)return void g("empty");let n=!1,o=null;return g("loading"),x(null),(async()=>{try{let[{Engine:u},{Scene:c},{ArcRotateCamera:h},{HemisphericLight:d},{Vector3:p,Color3:b,Color4:x,Matrix:w},{MeshBuilder:v},{StandardMaterial:k},{Mesh:C},{DynamicTexture:S}]=await Promise.all([e.A(48159),e.A(7614),e.A(41656),e.A(84694),e.A(13160),e.A(9786),e.A(33664),e.A(86489),e.A(72003),e.A(28911),e.A(4977)]);if(n)return;let R=new u(t,!0,{preserveDrawingBuffer:!1}),L=new c(R);L.clearColor=new x(.04,.05,.07,1);let I=p.Zero(),A=new h("dome-cam",Math.PI/3,Math.PI/2.4,3.6,I,L);A.attachControl(t,!0),A.lowerRadiusLimit=1.6,A.upperRadiusLimit=8,(0,i.disableWheelZoom)(A),m.current=A,f.current={target:I,alpha:A.alpha,beta:A.beta,radius:A.radius},new d("dome-light",new p(.3,1,.2),L);let P=v.CreateSphere("dome",{diameter:2,segments:20},L),E=new k("dome-mat",L);E.wireframe=!0,E.disableLighting=!0,E.emissiveColor=new b(.16,.2,.28),E.alpha=.5,P.material=E,P.isPickable=!1;let $=[];for(let e=0;e<=64;e++){let t=e/64*Math.PI*2;$.push(new p(Math.cos(t),0,Math.sin(t)))}let N=v.CreateLines("dome-horizon",{points:$},L);N.color=new b(.3,.36,.46),N.isPickable=!1;let T=v.CreateLines("dome-forward",{points:[p.Zero(),new p(1.25,0,0)]},L);T.color=new b(.4,.7,.95),T.isPickable=!1;let B=[],F=()=>{for(let e of B)e.dispose(!1,!0);B=[];let e=j.current;if(0===e.length)return;let t=e.reduce((e,t)=>Math.max(e,t.count),1),n=M.current>0?M.current:1;if("markers"===_.current){let a=v.CreateBox("dome-marker",{size:1},L),r=new k("dome-marker-mat",L);r.disableLighting=!0,r.emissiveColor=b.White(),r.specularColor=new b(0,0,0),a.material=r,a.isPickable=!0,a.thinInstanceEnablePicking=!0;let i=e.length,l=new Float32Array(16*i),o=new Float32Array(4*i),u=Array(i);for(let a=0;a<i;a++){let r=e[a],i=(r.azimuth_bin+.5)/n*Math.PI*2-Math.PI,c=(r.elevation_bin+.5)/n*Math.PI-Math.PI/2,h=Math.cos(c),d=h*Math.cos(i),m=Math.sin(c),f=h*Math.sin(i),p=r.count/t,g=.03+.12*p;w.Scaling(g,g,g).multiply(w.Translation(d,m,f)).copyToArray(l,16*a);let[b,x,v]=(0,s.heatRgb)(p);o[4*a]=b,o[4*a+1]=x,o[4*a+2]=v,o[4*a+3]=1,u[a]=`dir (${r.azimuth_bin}, ${r.elevation_bin}) \xb7 ${r.count}`}a.thinInstanceSetBuffer("matrix",l,16,!0),a.thinInstanceSetBuffer("color",o,4,!0),a.metadata={hoverLabels:u},B.push(a)}else{let t=function(e,t={}){let n=void 0!==t.width&&t.width>0?Math.floor(t.width):256,s=void 0!==t.height&&t.height>0?Math.floor(t.height):Math.max(1,Math.floor(n/2)),i=t.colorRamp??r,l=void 0!==t.blurBins&&t.blurBins>0?t.blurBins:1.5,o=a(t.alphaFloor??0),u=a(t.opacity??1),c=e.gridSize>0?e.gridSize:1,h=new Uint8ClampedArray(n*s*4),d=e.bins.filter(e=>e.count>0);if(0===d.length)return{width:n,height:s,rgba:h};let m=Math.max(1e-4,Math.PI/c*l),f=2*m*m,p=Math.cos(Math.min(Math.PI,3*m)),g=d.map(e=>{var t,n;let a,[r,s]=(t=e.azimuthBin,n=e.elevationBin,[(t+.5)/c*Math.PI*2-Math.PI,(n+.5)/c*Math.PI-Math.PI/2]);return[(a=Math.cos(s))*Math.cos(r),Math.sin(s),a*Math.sin(r)]}),b=new Float32Array(n*s),x=0;for(let e=0;e<s;e++){let t=Math.PI/2-(e+.5)/s*Math.PI,a=Math.cos(t),r=Math.sin(t);for(let t=0;t<n;t++){let s=(t+.5)/n*Math.PI*2-Math.PI,i=a*Math.cos(s),l=a*Math.sin(s),o=0;for(let e=0;e<d.length;e++){let t=g[e],n=i*t[0]+r*t[1]+l*t[2];if(n<p)continue;let a=Math.acos(n>1?1:n<-1?-1:n);o+=d[e].count*Math.exp(-(a*a)/f)}b[e*n+t]=o,o>x&&(x=o)}}if(x<=0)return{width:n,height:s,rgba:h};for(let e=0;e<b.length;e++){let t=a(b[e]/x),[n,r,s]=i(t),l=(o+(1-o)*t)*u,c=4*e;h[c]=Math.round(255*n),h[c+1]=Math.round(255*r),h[c+2]=Math.round(255*s),h[c+3]=Math.round(255*a(l))}return{width:n,height:s,rgba:h}}({bins:e.map(e=>({azimuthBin:e.azimuth_bin,elevationBin:e.elevation_bin,count:e.count})),gridSize:n},{width:256,blurBins:1.5,opacity:.95}),s=new S("dome-skytex",{width:t.width,height:t.height},L,!1);s.hasAlpha=!0;let i=s.getContext(),l=i.createImageData(t.width,t.height);l.data.set(t.rgba),i.putImageData(l,0,0),s.update();let o=v.CreateSphere("dome-sky",{diameter:2,segments:48,sideOrientation:C.DOUBLESIDE},L),u=new k("dome-sky-mat",L);u.disableLighting=!0,u.emissiveColor=b.White(),u.diffuseColor=new b(0,0,0),u.specularColor=new b(0,0,0),u.emissiveTexture=s,u.opacityTexture=s,u.backFaceCulling=!1,o.material=u,o.isPickable=!1,B.push(o)}};z.current=F,F(),R.runRenderLoop(()=>L.render());let V=()=>R.resize();window.addEventListener("resize",V);let O=(0,l.attachMeshHover)(L,t,y),Z=(0,i.attachDoubleClickFocus)(L,t,A);g("ready"),o=()=>{window.removeEventListener("resize",V),O(),Z(),y(null),z.current=null,m.current=null,f.current=null,L.dispose(),R.dispose()}}catch(e){if(n)return;g("error"),x(e instanceof Error?e.message:"Failed to render dome.")}})(),()=>{n=!0,o?.()}},[C]),(0,n.useEffect)(()=>{z.current?.()},[c,h,w]),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("canvas",{ref:d,className:"aspect-video w-full rounded-lg border border-edge bg-ink"}),k?(0,t.jsx)("div",{className:"pointer-events-none absolute z-10 max-w-[16rem] truncate rounded border border-edge bg-ink/90 px-1.5 py-0.5 text-xs text-white shadow backdrop-blur",style:{left:k.x+12,top:k.y+12},children:k.label}):null,"ready"===p?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"absolute left-3 top-3 flex overflow-hidden rounded-md border border-edge bg-ink/80 text-xs backdrop-blur",children:["markers","skydome"].map(e=>(0,t.jsx)("button",{type:"button",onClick:()=>v(e),className:`px-2.5 py-1 ${w===e?"bg-fg/15 font-medium text-white":"text-fg-muted hover:text-fg"}`,children:"markers"===e?"Markers":"Skydome"},e))}),(0,t.jsx)(u.ZoomButtons,{onZoom:e=>m.current&&(0,i.stepZoom)(m.current,e),onReset:()=>m.current&&f.current&&(0,i.resetFocus)(m.current,f.current)}),(0,t.jsx)(o.HeatLegend,{title:"Gaze density",lowLabel:"rarely",highLabel:"most-viewed",note:"markers"===w?"Each marker is a look-direction (camera forward). Blue line = forward, ring = horizon. Color & size scale with how often that direction was viewed.":"Continuous equirectangular heat field: the same gaze bins splatted into a smooth thermal texture wrapped on the dome. The in-scene SDK overlay (showGazeSkydome) renders this inward so you can stand inside it in WebXR."})]}):(0,t.jsx)("div",{className:"pointer-events-none absolute inset-0 grid place-items-center text-sm text-fg-muted",children:"loading"===p?"Rendering…":"empty"===p?"No camera samples in range.":"error"===p?b??"Dome unavailable.":null})]})}],48939)},39592,e=>{"use strict";var t=e.i(79047),n=e.i(57431),a=e.i(56054),r=e.i(2348),s=e.i(87456),i=e.i(2413);function l(e){let t=Math.min(1,Math.max(0,e));return[.118+(.22-.118)*t,.227+.513*t,.541+(.97-.541)*t]}function o(e){return`${e.vx}|${e.vy}|${e.vz}`}function u({mode:e}){return(0,t.jsxs)("div",{className:"absolute bottom-3 right-3 max-w-72 rounded-md border border-edge bg-ink/80 px-2 py-1.5 text-xs text-fg backdrop-blur",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{className:"inline-block h-2.5 w-2.5 rounded-sm bg-[#38bdf8]"}),"divergence"===e?"Gaze-heavy":"Gaze"]}),(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{className:"inline-block h-2.5 w-2.5 rounded-sm bg-[#f4c84b]"}),"divergence"===e?"Click-heavy":"Clicks"]})]}),(0,t.jsx)("p",{className:"mt-1 text-fg-muted",children:"divergence"===e?"Per-voxel normalized difference: which signal dominates each cell. Color & size scale with the gap.":"Gaze = where viewers looked; Clicks = where they acted. Cells with gaze but no clicks are looked-at but un-acted-on."})]})}function c({active:e,onClick:n,children:a}){return(0,t.jsx)("button",{type:"button",onClick:n,className:`rounded px-2 py-0.5 font-medium transition ${e?"bg-amber text-ink":"text-fg-muted hover:text-fg"}`,children:a})}e.s(["GazeClickDivergence3DView",0,function({gazeVoxels:h,clickVoxels:d,cellSize:m,proxyMeshes:f=[]}){let p=(0,n.useRef)(null),g=(0,n.useRef)(null),b=(0,n.useRef)(null),[x,w]=(0,n.useState)("loading"),[v,k]=(0,n.useState)(null),[y,j]=(0,n.useState)("overlay"),[M,_]=(0,n.useState)(null),z=(0,n.useRef)(h),C=(0,n.useRef)(d),S=(0,n.useRef)(f),R=(0,n.useRef)(y);z.current=h,C.current=d,S.current=f,R.current=y;let L=(0,n.useRef)(null),I=h.length>0||d.length>0||f.length>0;return(0,n.useEffect)(()=>{let t=p.current;if(!t)return;if(!I)return void w("empty");let n=!1,i=null;return w("loading"),k(null),(async()=>{try{let[{Engine:u},{Scene:c},{ArcRotateCamera:h},{HemisphericLight:d},{Vector3:f,Color3:p,Color4:x,Matrix:v},{MeshBuilder:k},{StandardMaterial:y}]=await Promise.all([e.A(48159),e.A(7614),e.A(41656),e.A(84694),e.A(13160),e.A(9786),e.A(33664),e.A(28911),e.A(4977)]);if(n)return;let j=z.current,M=C.current,I=S.current,A=[...j,...M],P=0,E=0,$=0,N=0;for(let e of A)P+=(e.vx+.5)*m,E+=(e.vy+.5)*m,$+=(e.vz+.5)*m,N++;if(0===N)for(let e of I)P+=(e.aabb[0]+e.aabb[3])/2,E+=(e.aabb[1]+e.aabb[4])/2,$+=(e.aabb[2]+e.aabb[5])/2,N++;let T=new f(P/N,E/N,$/N),B=4*m;for(let e of A){let t=(e.vx+.5)*m-T.x,n=(e.vy+.5)*m-T.y,a=(e.vz+.5)*m-T.z;B=Math.max(B,Math.sqrt(t*t+n*n+a*a))}for(let e of I){let t=(e.aabb[0]+e.aabb[3])/2-T.x,n=(e.aabb[1]+e.aabb[4])/2-T.y,a=(e.aabb[2]+e.aabb[5])/2-T.z;B=Math.max(B,Math.sqrt(t*t+n*n+a*a))}let F=new u(t,!0,{preserveDrawingBuffer:!1}),V=new c(F);V.clearColor=new x(.04,.05,.07,1);let O=new h("divergence-cam",Math.PI/4,Math.PI/3,2.4*B,T,V);O.attachControl(t,!0),(0,r.disableWheelZoom)(O),g.current=O,b.current={target:T,alpha:O.alpha,beta:O.beta,radius:O.radius},new d("divergence-light",new f(.4,1,.3),V);let Z=null,D="\0",q=Math.max(.02*B,.25*m)/(.9*m),W=[],H=(e,t,n,a,r)=>{if(0===t.length)return;let s=k.CreateSphere(e,{diameter:.9*m,segments:6},V),i=new y(`${e}-mat`,V);i.diffuseColor=new p(1,1,1),i.specularColor=new p(0,0,0),s.material=i,s.metadata={hoverLabel:r},W.push(s);let l=t.length,o=new Float32Array(16*l),u=new Float32Array(4*l);for(let e=0;e<l;e++){let r=t[e],s=r.count/n,i=q*(.5+.5*s);v.Scaling(i,i,i).multiply(v.Translation((r.vx+.5)*m,(r.vy+.5)*m,(r.vz+.5)*m)).copyToArray(o,16*e);let[l,c,h]=a(s);u[4*e]=l,u[4*e+1]=c,u[4*e+2]=h,u[4*e+3]=1}s.thinInstanceSetBuffer("matrix",o,16,!1),s.thinInstanceSetBuffer("color",u,4,!0)},K=()=>{for(let e of((()=>{let e=S.current,t=e.map(e=>`${e.name}:${e.aabb.join(",")}`).join("|");if(t===D||(D=t,Z&&(Z.dispose(!1,!0),Z=null),0===e.length))return;Z=k.CreateBox("scene-proxy",{size:1},V);let n=new y("scene-proxy-mat",V);n.wireframe=!0,n.disableLighting=!0,n.emissiveColor=new p(.32,.4,.52),n.alpha=.35,Z.material=n,Z.isPickable=!0,Z.thinInstanceEnablePicking=!0,Z.metadata={hoverLabels:e.map(e=>e.name)};let a=e.length,r=new Float32Array(16*a);for(let t=0;t<a;t++){let n=e[t].aabb,a=Math.max(n[3]-n[0],.001),s=Math.max(n[4]-n[1],.001),i=Math.max(n[5]-n[2],.001);v.Scaling(a,s,i).multiply(v.Translation((n[0]+n[3])/2,(n[1]+n[4])/2,(n[2]+n[5])/2)).copyToArray(r,16*t)}Z.thinInstanceSetBuffer("matrix",r,16,!0)})(),W))e.dispose(!1,!0);W=[];let e=z.current,t=C.current,n=e.reduce((e,t)=>Math.max(e,t.count),1),r=t.reduce((e,t)=>Math.max(e,t.count),1),s=R.current;if("divergence"===s){let s=new Map(e.map(e=>[o(e),e])),i=new Map(t.map(e=>[o(e),e])),u=new Set([...s.keys(),...i.keys()]),c=[],h=[];for(let e of u){let t=(s.get(e)?.count??0)/n,a=(i.get(e)?.count??0)/r,l=i.get(e)??s.get(e),o=a-t,u={vx:l.vx,vy:l.vy,vz:l.vz,count:1e3*Math.abs(o)};(o>=0?c:h).push(u)}H("div-click",c,1e3,a.heatRgb,"Click-heavy"),H("div-gaze",h,1e3,l,"Gaze-heavy")}else("overlay"===s||"gaze"===s)&&H("gaze-voxel",e,n,l,"Gaze"),("overlay"===s||"click"===s)&&H("click-voxel",t,r,a.heatRgb,"Click")};L.current=K,K(),F.runRenderLoop(()=>V.render());let U=()=>F.resize();window.addEventListener("resize",U);let G=(0,s.attachMeshHover)(V,t,_),Y=(0,r.attachDoubleClickFocus)(V,t,O);w("ready"),i=()=>{window.removeEventListener("resize",U),G(),Y(),_(null),L.current=null,g.current=null,b.current=null,V.dispose(),F.dispose()}}catch(e){if(n)return;w("error"),k(e instanceof Error?e.message:"Failed to render overlay.")}})(),()=>{n=!0,i?.()}},[I,m]),(0,n.useEffect)(()=>{L.current?.()},[h,d,f,m,y]),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("canvas",{ref:p,className:"aspect-video w-full rounded-lg border border-edge bg-ink"}),M?(0,t.jsx)("div",{className:"pointer-events-none absolute z-10 max-w-64 truncate rounded border border-edge bg-ink/90 px-1.5 py-0.5 text-xs text-white shadow backdrop-blur",style:{left:M.x+12,top:M.y+12},children:M.label}):null,"ready"===x?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"absolute left-3 top-3 flex items-center gap-1 rounded-md border border-edge bg-ink/80 p-0.5 text-xs backdrop-blur",children:[(0,t.jsx)(c,{active:"overlay"===y,onClick:()=>j("overlay"),children:"Overlay"}),(0,t.jsx)(c,{active:"gaze"===y,onClick:()=>j("gaze"),children:"Gaze"}),(0,t.jsx)(c,{active:"click"===y,onClick:()=>j("click"),children:"Clicks"}),(0,t.jsx)(c,{active:"divergence"===y,onClick:()=>j("divergence"),children:"Divergence"})]}),(0,t.jsx)(i.ZoomButtons,{onZoom:e=>g.current&&(0,r.stepZoom)(g.current,e),onReset:()=>g.current&&b.current&&(0,r.resetFocus)(g.current,b.current)}),(0,t.jsx)(u,{mode:y})]}):(0,t.jsx)("div",{className:"pointer-events-none absolute inset-0 grid place-items-center text-sm text-fg-muted",children:"loading"===x?"Rendering…":"empty"===x?"No gaze or click hit-points in range. Enable gaze + pointer capture in the SDK.":"error"===x?v??"Overlay unavailable.":null})]})}])},19399,e=>{"use strict";var t=e.i(79047),n=e.i(57431);let a="__other_sp__",r="__other_mesh__";function s(e){return`${e[0]}|${e[1]}|${e[2]}`}function i(e,t){return t<=1?0:1.4-e/(t-1)*2.8}var l=e.i(56054),o=e.i(2348),u=e.i(87456),c=e.i(18637),h=e.i(2413);let d="__all__",m={maxStandpoints:6,maxMeshes:10,maxRibbons:70};function f(e,t){return`${e}|${t}`}function p(e){let t=e.aabb;return[(t[0]+t[3])/2,(t[1]+t[4])/2,(t[2]+t[5])/2]}function g(e){let t=0;for(let n=0;n<e.length;n++)t=31*t+e.charCodeAt(n)|0;return Math.abs(t)}function b({label:e,value:n,onChange:a,allLabel:r,options:s}){return(0,t.jsxs)("label",{className:"flex items-center gap-1.5 rounded-md border border-edge bg-ink/80 px-2 py-1 text-xs text-fg backdrop-blur",children:[(0,t.jsx)("span",{className:"font-medium text-fg-muted",children:e}),(0,t.jsxs)("select",{className:"max-w-[12rem] bg-transparent text-white outline-none",value:n,onChange:e=>a(e.target.value),children:[(0,t.jsx)("option",{value:d,children:r}),s.map(e=>(0,t.jsx)("option",{value:e.value,children:e.label},e.value))]})]})}function x({active:e,onClick:n,children:a,disabled:r=!1,title:s}){return(0,t.jsx)("button",{type:"button",onClick:n,disabled:r,title:s,className:`rounded px-2 py-0.5 font-medium transition ${r?"cursor-not-allowed text-fg-muted/40":e?"bg-amber text-ink":"text-fg-muted hover:text-fg"}`,children:a})}function w({standpoints:e,proxyMeshes:a,selectedKey:r,onSelect:s}){let i=(0,n.useRef)(null),l=(0,n.useMemo)(()=>e.filter(e=>e.origin),[e]),o=(0,n.useMemo)(()=>{let e=1/0,t=-1/0,n=1/0,r=-1/0,s=(a,s)=>{e=Math.min(e,a),t=Math.max(t,a),n=Math.min(n,s),r=Math.max(r,s)};for(let e of a)s(e.aabb[0],e.aabb[2]),s(e.aabb[3],e.aabb[5]);for(let e of l)s(e.origin[0],e.origin[2]);return Number.isFinite(e)?(t-e<.001&&(e-=1,t+=1),r-n<.001&&(n-=1,r+=1),{minX:e,maxX:t,minZ:n,maxZ:r}):{minX:-1,maxX:1,minZ:-1,maxZ:1}},[a,l]),u=(0,n.useMemo)(()=>{let e=Math.min(134/(o.maxX-o.minX),94/(o.maxZ-o.minZ));return(t,n)=>[8+(t-o.minX)*e,8+(n-o.minZ)*e]},[o]),c=(0,n.useMemo)(()=>l.reduce((e,t)=>Math.max(e,t.count),1),[l]);return(0,n.useEffect)(()=>{let e=i.current,t=e?.getContext("2d");if(!t)return;let n=window.devicePixelRatio||1;for(let r of(e.width=150*n,e.height=110*n,t.setTransform(n,0,0,n,0,0),t.clearRect(0,0,150,110),t.fillStyle="rgba(8,10,14,0.85)",t.fillRect(0,0,150,110),t.strokeStyle="rgba(120,140,170,0.35)",t.lineWidth=1,a)){let[e,n]=u(r.aabb[0],r.aabb[2]),[a,s]=u(r.aabb[3],r.aabb[5]);t.strokeRect(Math.min(e,a),Math.min(n,s),Math.abs(a-e),Math.abs(s-n))}for(let e of l){let[n,a]=u(e.origin[0],e.origin[2]),s=2+e.count/c*4,i=e.key===r;t.beginPath(),t.arc(n,a,s,0,2*Math.PI),t.fillStyle=i?"rgba(242,115,242,1)":"rgba(242,115,242,0.55)",t.fill(),i&&(t.beginPath(),t.arc(n,a,s+2.5,0,2*Math.PI),t.strokeStyle="rgba(255,255,255,0.9)",t.lineWidth=1.5,t.stroke())}},[a,l,u,c,r]),(0,t.jsxs)("div",{className:"absolute right-3 top-3 rounded-md border border-edge bg-ink/80 p-1 backdrop-blur",children:[(0,t.jsx)("div",{className:"px-1 pb-0.5 text-[10px] font-medium text-fg-muted",children:"Standpoints (top view)"}),(0,t.jsx)("canvas",{ref:i,className:"h-27.5 w-37.5 cursor-pointer rounded",onClick:e=>{let t=i.current;if(!t||0===l.length)return;let n=t.getBoundingClientRect(),a=(e.clientX-n.left)/n.width*150,r=(e.clientY-n.top)/n.height*110,o=null,c=1/0;for(let e of l){let[t,n]=u(e.origin[0],e.origin[2]),s=(t-a)**2+(n-r)**2;s<c&&(c=s,o=e)}o&&c<=196&&s(o.key)}})]})}e.s(["FlowSankey3DView",0,function({links:v,gridSize:k,proxyMeshes:y=[],maxLinks:j=80,api:M,flowQuery:_,hasFirstPerson:z=!1}){let C=(0,n.useRef)(null),S=(0,n.useRef)(null),R=(0,n.useRef)(null),[L,I]=(0,n.useState)("loading"),[A,P]=(0,n.useState)(null),[E,$]=(0,n.useState)(d),[N,T]=(0,n.useState)(d),[B,F]=(0,n.useState)(d),[V,O]=(0,n.useState)("aggregate"),[Z,D]=(0,n.useState)(null),[q,W]=(0,n.useState)("all"),[H,K]=(0,n.useState)(v),U=!!(M&&_),G=(0,n.useMemo)(()=>_?JSON.stringify(_):"",[_]),Y=(0,n.useRef)(!1);(0,n.useEffect)(()=>{!Y.current&&z&&(W("first-person"),Y.current=!0)},[z]),(0,n.useEffect)(()=>{z&&"viewer"===q&&W("first-person")},[z,q]),(0,n.useEffect)(()=>{U||K(v)},[v,U]),(0,n.useEffect)(()=>{if(!M||!_)return;let e=!1,t="all"===q?void 0:q;return M.flowHeatmap({..._,bins:k,limit:400,groupByOrigin:!0,cameraMode:t}).then(t=>{e||K(t)}).catch(()=>{e||K([])}),()=>{e=!0}},[M,G,q,k]);let X=(0,n.useMemo)(()=>{let e=new Map;for(let t of H){if(!t.originVoxel)continue;let n=s(t.originVoxel),a=t.origin,r=e.get(n);r?(r.count+=t.count,a&&(r.ox+=a[0]*t.count,r.oy+=a[1]*t.count,r.oz+=a[2]*t.count,r.wsum+=t.count)):e.set(n,{key:n,voxel:t.originVoxel,count:t.count,ox:a?a[0]*t.count:0,oy:a?a[1]*t.count:0,oz:a?a[2]*t.count:0,wsum:a?t.count:0})}return[...e.values()].map(e=>({key:e.key,voxel:e.voxel,count:e.count,origin:e.wsum>0?[e.ox/e.wsum,e.oy/e.wsum,e.oz/e.wsum]:void 0})).sort((e,t)=>t.count-e.count)},[H]),J=X.length>0,Q=(0,n.useMemo)(()=>B===d?null:X.find(e=>e.key===B)??null,[X,B]),ee=(0,n.useMemo)(()=>(function(e,t,n,l){let o=e.filter(e=>e.originVoxel);if(0===o.length)return{standpoints:[],gazes:[],meshes:[],ribbons:[],maxCount:1};let u=t.slice(0,Math.max(1,l.maxStandpoints)),c=new Set(u.map(e=>e.key)),h=e=>{let t=e.originVoxel?s(e.originVoxel):a;return c.has(t)?t:a},d=new Map;for(let e of o)d.set(e.mesh,(d.get(e.mesh)??0)+e.count);let m=new Set([...d.entries()].sort((e,t)=>t[1]-e[1]).slice(0,Math.max(1,l.maxMeshes)).map(([e])=>e)),f=e=>m.has(e)?e:r,p=new Map;for(let e of o){let t=h(e),n=f(e.mesh),a=`${t}|${e.azimuth_bin}|${e.elevation_bin}|${n}`,r=p.get(a);r?r.count+=e.count:p.set(a,{standpointId:t,gazeId:`${t}|${e.azimuth_bin}|${e.elevation_bin}`,meshId:n,azimuthBin:e.azimuth_bin,elevationBin:e.elevation_bin,count:e.count})}let g=[...p.values()].sort((e,t)=>t.count-e.count),b=g.slice(0,Math.max(1,l.maxRibbons)),x=g.slice(Math.max(1,l.maxRibbons));if(x.length>0){let e=new Map(b.map(e=>[`${e.standpointId}|${e.azimuthBin}|${e.elevationBin}|${r}`,e]));for(let t of x){let n=`${t.standpointId}|${t.azimuthBin}|${t.elevationBin}|${r}`,a=e.get(n);if(a)a.count+=t.count;else{let a={standpointId:t.standpointId,gazeId:t.gazeId,meshId:r,azimuthBin:t.azimuthBin,elevationBin:t.elevationBin,count:t.count};e.set(n,a),b.push(a)}}}let w=new Set(b.map(e=>e.standpointId)),v=new Set(b.map(e=>e.meshId)),k=[...u.filter(e=>w.has(e.key)).map(e=>e.key),...w.has(a)?[a]:[]],y=k.map((e,t)=>{let n=u.find(t=>t.key===e),r=b.filter(t=>t.standpointId===e).reduce((e,t)=>e+t.count,0);return{id:e,kind:"standpoint",pos:[-2.6,i(t,k.length),0],count:r,label:n?`[${n.voxel[0]}, ${n.voxel[1]}, ${n.voxel[2]}]`:"Other standpoints",isOther:e===a}}),j=new Map(y.map(e=>[e.id,e.pos[1]])),M=new Map;for(let e of b)M.set(e.meshId,(M.get(e.meshId)??0)+e.count);let _=[...v].sort((e,t)=>(M.get(t)??0)-(M.get(e)??0));_.sort((e,t)=>(e===r)-(t===r));let z=_.map((e,t)=>({id:e,kind:"mesh",pos:[2.6,i(t,_.length),0],count:M.get(e)??0,label:e===r?"Other meshes":e,isOther:e===r})),C=new Map;for(let e of b){let t=C.get(e.gazeId);t?t.count+=e.count:C.set(e.gazeId,{az:e.azimuthBin,el:e.elevationBin,sp:e.standpointId,count:e.count})}let S=[...C.entries()].map(([e,t])=>{let a=j.get(t.sp)??0,r=(t.az+.5)/n-.5;return{id:e,kind:"gaze",pos:[0,a+((t.el+.5)/n-.5)*.85,1.6*r],count:t.count,label:`(${t.az}, ${t.el})`,isOther:!1}}),R=b.reduce((e,t)=>Math.max(e,t.count),1);return{standpoints:y,gazes:S,meshes:z,ribbons:b,maxCount:R}})(H,X,k,m),[H,X,k]),et="twostage"===V&&J;(0,n.useEffect)(()=>{"twostage"!==V||J||O("aggregate")},[V,J]);let en=(0,n.useMemo)(()=>{if(B!==d&&J)return H.filter(e=>e.originVoxel&&s(e.originVoxel)===B);if(!J)return H;let e=new Map;for(let t of H){let n=`${t.azimuth_bin}|${t.elevation_bin}|${t.mesh}`,a=e.get(n);a?a.count+=t.count:e.set(n,{azimuth_bin:t.azimuth_bin,elevation_bin:t.elevation_bin,mesh:t.mesh,count:t.count})}return[...e.values()]},[H,B,J]),ea=(0,n.useMemo)(()=>[...en].sort((e,t)=>t.count-e.count).slice(0,Math.max(1,j)),[en,j]),er=(0,n.useMemo)(()=>{let e=new Map;for(let t of ea)e.set(t.mesh,(e.get(t.mesh)??0)+t.count);return[...e.entries()].sort((e,t)=>t[1]-e[1])},[ea]),es=(0,n.useMemo)(()=>{let e=new Map;for(let t of ea){let n=f(t.azimuth_bin,t.elevation_bin),a=e.get(n);a?a.count+=t.count:e.set(n,{azimuthBin:t.azimuth_bin,elevationBin:t.elevation_bin,count:t.count})}return[...e.values()].sort((e,t)=>t.count-e.count)},[ea]);(0,n.useEffect)(()=>{!et&&E!==d&&(er.some(([e])=>e===E)||$(d))},[et,E,er]),(0,n.useEffect)(()=>{!et&&N!==d&&(es.some(e=>f(e.azimuthBin,e.elevationBin)===N)||T(d))},[et,N,es]),(0,n.useEffect)(()=>{!et&&B!==d&&(X.some(e=>e.key===B)||F(d))},[et,B,X]),(0,n.useEffect)(()=>{$(d),T(d),F(d)},[V]);let ei=(0,n.useMemo)(()=>et?ee.ribbons.filter(e=>{let t=B===d||e.standpointId===B,n=N===d||f(e.azimuthBin,e.elevationBin)===N,a=E===d||e.meshId===E;return t&&n&&a}).length:ea.filter(e=>{let t=N===d||f(e.azimuth_bin,e.elevation_bin)===N,n=E===d||e.mesh===E;return t&&n}).length,[et,ee,ea,E,N,B]),el=et?ee.ribbons.length:ea.length,eo=(0,n.useMemo)(()=>et?ee.standpoints.map(e=>({value:e.id,label:`${e.label} \xb7 ${e.count}`})):X.slice(0,24).map(e=>({value:e.key,label:`[${e.voxel[0]}, ${e.voxel[1]}, ${e.voxel[2]}] \xb7 ${e.count}`})),[et,ee,X]),eu=(0,n.useMemo)(()=>{if(et){let e=new Map;for(let t of ee.ribbons){let n=f(t.azimuthBin,t.elevationBin),a=e.get(n);a?a.count+=t.count:e.set(n,{az:t.azimuthBin,el:t.elevationBin,count:t.count})}return[...e.values()].sort((e,t)=>t.count-e.count).map(e=>({value:f(e.az,e.el),label:`(${e.az}, ${e.el}) \xb7 ${e.count}`}))}return es.map(e=>({value:f(e.azimuthBin,e.elevationBin),label:`(${e.azimuthBin}, ${e.elevationBin}) \xb7 ${e.count}`}))},[et,ee,es]),ec=(0,n.useMemo)(()=>et?ee.meshes.map(e=>({value:e.id,label:`${e.label} \xb7 ${e.count}`})):er.map(([e,t])=>({value:e,label:`${e} \xb7 ${t}`})),[et,ee,er]),eh=(0,n.useRef)(ea);eh.current=ea;let ed=(0,n.useRef)(ee);ed.current=ee;let em=(0,n.useRef)(y);em.current=y;let ef=(0,n.useRef)(er);ef.current=er;let ep=(0,n.useRef)(E);ep.current=E;let eg=(0,n.useRef)(N);eg.current=N;let eb=(0,n.useRef)(B);eb.current=B;let ex=(0,n.useRef)(Q);ex.current=Q;let ew=(0,n.useRef)(null),ev=et?ee.ribbons.length>0:ea.length>0;return(0,n.useEffect)(()=>{let t=C.current;if(!t)return;if(!ev)return void I("empty");let n=!1,a=null;return I("loading"),P(null),(async()=>{try{let r,[{Engine:s},{Scene:i},{ArcRotateCamera:c},{HemisphericLight:h},{Vector3:m,Color3:b,Color4:x},{MeshBuilder:w},{StandardMaterial:v}]=await Promise.all([e.A(48159),e.A(7614),e.A(41656),e.A(84694),e.A(13160),e.A(9786),e.A(33664),e.A(4977)]);if(n)return;let y=new s(t,!0,{preserveDrawingBuffer:!1}),j=new i(y);j.clearColor=new x(.04,.05,.07,1);let M=[],_=()=>{for(let e of M)e.dispose();M=[]};if(et){let e=m.Zero();(r=new c("ts-cam",Math.PI/2,Math.PI/2.4,8.5,e,j)).attachControl(t,!0),(0,o.disableWheelZoom)(r),S.current=r,R.current={target:e,alpha:r.alpha,beta:r.beta,radius:r.radius},new h("ts-light",new m(.3,1,.2),j);let n={standpoint:[.95,.45,.95],gaze:[.45,.75,1],mesh:[1,.82,.42]},a={standpoint:.26,gaze:.13,mesh:.22},s=(e,t,n)=>{let a=e[0],r=e[1],s=e[2],i=t[0],l=t[1],o=t[2],u=[(a+i)/2,(r+l)/2+n,(s+o)/2],c=[];for(let e=0;e<=12;e++){let t=e/12,n=1-t;c.push(new m(n*n*a+2*n*t*u[0]+t*t*i,n*n*r+2*n*t*u[1]+t*t*l,n*n*s+2*n*t*u[2]+t*t*o))}return c},i=()=>{_();let e=ed.current;if(0===e.ribbons.length)return;let t=eb.current,r=eg.current,i=ep.current,o=e=>{let n=t===d||e.standpointId===t,a=r===d||f(e.azimuthBin,e.elevationBin)===r,s=i===d||e.meshId===i;return n&&a&&s},u=t!==d||r!==d||i!==d,c=new Set;for(let t of e.ribbons)o(t)&&(c.add(t.standpointId),c.add(t.gazeId),c.add(t.meshId));let h=[...e.standpoints,...e.gazes,...e.meshes],p=new Map(h.map(e=>[e.id,e.pos])),g=new Map(h.map(e=>[e.id,e.label]));for(let e of h){let t=w.CreateSphere(`ts-node-${e.kind}-${e.id}`,{diameter:a[e.kind],segments:8},j);t.position=new m(e.pos[0],e.pos[1],e.pos[2]);let r=new v(`ts-node-mat-${e.kind}-${e.id}`,j);r.disableLighting=!0;let[s,i,l]=n[e.kind];r.emissiveColor=new b(s,i,l),r.alpha=!u||c.has(e.id)?1:.2,t.material=r,t.isPickable=!0,t.metadata={hoverLabel:e.label},M.push(t,r)}for(let t of e.ribbons){let n=p.get(t.standpointId),a=p.get(t.gazeId),r=p.get(t.meshId);if(!n||!a||!r)continue;let i=t.count/e.maxCount,c=.18+.5*i,h=[...s(n,a,c),...s(a,r,c).slice(1)],d=o(t),[m,f,x]=(0,l.heatRgb)(i),k=w.CreateTube(`ts-link-${t.standpointId}-${t.gazeId}-${t.meshId}`,{path:h,radius:(d?1:.4)*(.012+.04*i),tessellation:8,cap:0,sideOrientation:0},j),y=new v(`ts-link-mat-${t.standpointId}-${t.gazeId}-${t.meshId}`,j);y.disableLighting=!0,y.emissiveColor=new b(m,f,x),y.alpha=d?.35+.65*i:u?.06:.18,k.material=y,k.isPickable=!0,k.metadata={hoverLabel:g.get(t.meshId)??t.meshId},M.push(k,y)}};ew.current=i,i()}else{let e=new Map;for(let t of em.current)e.set(t.name,p(t));let n=new Map,a=ef.current.map(([e])=>e).filter(t=>!e.has(t));for(let e=0;e<a.length;e++){let t=a[e],r=g(t),s=e/Math.max(1,a.length)*Math.PI*2+r%100/100*.35;n.set(t,[2.2*Math.cos(s),-.35+(r%7-3)*.06,2.2*Math.sin(s)])}for(let[t,a]of e.entries())n.set(t,a);let s=0,i=0,u=0,x=0;for(let e of n.values())s+=e[0],i+=e[1],u+=e[2],x++;let y=new m(s/Math.max(1,x),i/Math.max(1,x),u/Math.max(1,x)),z=1.8;for(let e of n.values()){let t=e[0]-y.x,n=e[1]-y.y,a=e[2]-y.z;z=Math.max(z,Math.sqrt(t*t+n*n+a*a))}let C=.75*z+1,L=Math.max(1,z/1.8);(r=new c("flow-cam",Math.PI/4,Math.PI/3,3.4*z,y,j)).attachControl(t,!0),(0,o.disableWheelZoom)(r),S.current=r,R.current={target:y,alpha:r.alpha,beta:r.beta,radius:r.radius},new h("flow-light",new m(.3,1,.2),j);let I=w.CreateSphere("flow-source-dome",{diameter:2*C,segments:20},j);I.position=y;let A=new v("flow-source-dome-mat",j);A.wireframe=!0,A.disableLighting=!0,A.emissiveColor=new b(.16,.2,.28),A.alpha=.35,I.material=A,I.isPickable=!1;let P=()=>{_();let e=eh.current;if(0===e.length)return;let t=ep.current,n=eg.current,a=ex.current,r=new Map;for(let e of em.current)r.set(e.name,p(e));let s=new Map,i=ef.current.map(([e])=>e).filter(e=>!r.has(e));for(let e=0;e<i.length;e++){let t=i[e],n=g(t),a=e/Math.max(1,i.length)*Math.PI*2+n%100/100*.35;s.set(t,[2.2*Math.cos(a),-.35+(n%7-3)*.06,2.2*Math.sin(a)])}for(let[e,t]of r.entries())s.set(e,t);let o=e.reduce((e,t)=>Math.max(e,t.count),1),u=new v("flow-source-node",j);u.disableLighting=!0,u.emissiveColor=new b(.45,.75,1);let c=new v("flow-target-node",j);c.disableLighting=!0,c.emissiveColor=new b(1,.82,.42),M.push(u,c);let h=new Set,x=new Set,z=e=>{let a=n===d||f(e.azimuth_bin,e.elevation_bin)===n,r=t===d||e.mesh===t;return a&&r},S=new Set,R=new Set;for(let t of e)z(t)&&(S.add(f(t.azimuth_bin,t.elevation_bin)),R.add(t.mesh));for(let a of e){let e=`${a.azimuth_bin}|${a.elevation_bin}`,r=s.get(a.mesh);if(!r)continue;let i=z(a),f=(a.azimuth_bin+.5)/k*Math.PI*2-Math.PI,p=(a.elevation_bin+.5)/k*Math.PI-Math.PI/2,g=Math.cos(p),_=g*Math.cos(f),I=Math.sin(p),A=g*Math.sin(f),P=new m(y.x+_*C,y.y+I*C,y.z+A*C),E=new m(r[0],r[1],r[2]);if(!h.has(e)){let a=w.CreateSphere(`flow-src-${e}`,{diameter:.12*L,segments:6},j);a.position=P;let r=u.clone(`flow-src-mat-${e}`);r.alpha=S.has(e)||t===d&&n===d?1:.22,a.material=r,a.isPickable=!1,h.add(e),M.push(a,r)}if(!x.has(a.mesh)){let e=w.CreateSphere(`flow-target-${a.mesh}`,{diameter:.2*L,segments:7},j);e.position=E;let r=c.clone(`flow-target-mat-${a.mesh}`);r.alpha=R.has(a.mesh)||t===d&&n===d?1:.22,e.material=r,e.isPickable=!0,e.metadata={hoverLabel:a.mesh},x.add(a.mesh),M.push(e,r)}let $=P.add(E).scale(.5),N=$.subtract(y),T=Math.sqrt(N.x*N.x+N.y*N.y+N.z*N.z),B=T>1e-6?N.x/T:0,F=T>1e-6?N.y/T:1,V=T>1e-6?N.z/T:0,O=(.35+a.count/o*.75)*L,Z=new m($.x+B*O,$.y+F*O+.12*L,$.z+V*O),D=[];for(let e=0;e<=18;e++){let t=e/18,n=1-t;D.push(new m(n*n*P.x+2*n*t*Z.x+t*t*E.x,n*n*P.y+2*n*t*Z.y+t*t*E.y,n*n*P.z+2*n*t*Z.z+t*t*E.z))}let q=a.count/o,[W,H,K]=(0,l.heatRgb)(q),U=w.CreateTube(`flow-link-${a.mesh}-${e}`,{path:D,radius:(i?1:.4)*(.012+.04*q)*L,tessellation:8,cap:0,sideOrientation:0},j),G=new v(`flow-link-mat-${a.mesh}-${e}`,j);G.disableLighting=!0,G.emissiveColor=new b(W,H,K),G.alpha=i?.35+.65*q:.08,U.material=G,U.isPickable=!0,U.metadata={hoverLabel:a.mesh},M.push(U,G)}let I=a?.origin;if(I){let e=new m(I[0],I[1],I[2]),t=w.CreateSphere("flow-standpoint",{diameter:.26*L,segments:10},j);t.position=e;let n=new v("flow-standpoint-mat",j);n.disableLighting=!0,n.emissiveColor=new b(.95,.45,.95),t.material=n,t.isPickable=!1;let a=w.CreateLines("flow-standpoint-stem",{points:[e,new m(e.x,y.y,e.z)]},j);a.color=new b(.95,.45,.95),a.isPickable=!1,M.push(t,n,a)}};ew.current=P,P()}y.runRenderLoop(()=>j.render());let z=()=>y.resize();window.addEventListener("resize",z);let C=(0,u.attachMeshHover)(j,t,D),L=(0,o.attachDoubleClickFocus)(j,t,r);I("ready"),a=()=>{window.removeEventListener("resize",z),C(),L(),D(null),ew.current=null,S.current=null,R.current=null,_(),j.dispose(),y.dispose()}}catch(e){if(n)return;I("error"),P(e instanceof Error?e.message:"Failed to render flow links.")}})(),()=>{n=!0,a?.()}},[et,k,ev]),(0,n.useEffect)(()=>{ew.current?.()},[ea,ee,y,E,N,B,Q]),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("canvas",{ref:C,className:"aspect-video w-full rounded-lg border border-edge bg-ink"}),Z?(0,t.jsx)("div",{className:"pointer-events-none absolute z-10 max-w-[16rem] truncate rounded border border-edge bg-ink/90 px-1.5 py-0.5 text-xs text-white shadow backdrop-blur",style:{left:Z.x+12,top:Z.y+12},children:Z.label}):null,"ready"===L?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"absolute left-3 top-3 flex flex-wrap gap-2",children:[J?(0,t.jsxs)("div",{className:"flex items-center gap-1 rounded-md border border-edge bg-ink/80 p-0.5 text-xs backdrop-blur",children:[(0,t.jsx)(x,{active:!et,onClick:()=>O("aggregate"),children:"Aggregate"}),(0,t.jsx)(x,{active:et,onClick:()=>O("twostage"),children:"Two-stage"})]}):null,U?(0,t.jsxs)("div",{className:"flex items-center gap-1 rounded-md border border-edge bg-ink/80 p-0.5 text-xs backdrop-blur",children:[(0,t.jsx)(x,{active:"first-person"===q,onClick:()=>W("first-person"),children:"Walk"}),(0,t.jsx)(x,{active:"viewer"===q,onClick:()=>W("viewer"),disabled:z,title:z?"Orbit (viewer) flow isn't available for walkable scenes":void 0,children:"Orbit"}),(0,t.jsx)(x,{active:"all"===q,onClick:()=>W("all"),children:"All"})]}):null,J?(0,t.jsx)(b,{label:"Standpoint",value:B,onChange:F,allLabel:"All standpoints",options:eo}):null,(0,t.jsx)(b,{label:et?"Gaze":"Source",value:N,onChange:T,allLabel:et?"All gaze sectors":"All sources",options:eu}),(0,t.jsx)(b,{label:"Mesh",value:E,onChange:$,allLabel:"All meshes",options:ec})]}),et?(0,t.jsx)(w,{standpoints:X,proxyMeshes:y,selectedKey:B,onSelect:e=>F(t=>t===e?d:e)}):null,(0,t.jsxs)("div",{className:"pointer-events-none absolute bottom-3 right-3 flex max-w-[20rem] flex-col items-end gap-2",children:[U&&!z?(0,t.jsxs)("div",{className:"rounded-md border border-edge bg-ink/80 px-2 py-1 text-xs text-fg-muted backdrop-blur",children:["Orbit-dominated scene — viewer ",(0,t.jsx)("em",{children:"position"})," adds little here. Use the"," ",(0,t.jsx)("strong",{children:"View dome"})," (§7.5) above for where viewers looked."]}):null,(0,t.jsxs)("div",{className:"rounded-md border border-edge bg-ink/80 px-2 py-1 text-xs text-fg backdrop-blur",children:["Active links: ",ei,"/",el]})]}),(0,t.jsx)(h.ZoomButtons,{onZoom:e=>S.current&&(0,o.stepZoom)(S.current,e),onReset:()=>S.current&&R.current&&(0,o.resetFocus)(S.current,R.current)}),(0,t.jsx)(c.HeatLegend,{title:"Flow volume",lowLabel:"fewer links",highLabel:"dominant links",note:et?"Three columns: standpoint → gaze sector → mesh. Top standpoints/meshes are kept; the tail folds into an “Other” node. Pick a standpoint (or click the minimap), gaze sector, or mesh to emphasize matching ribbons.":"Each arc aggregates clicks from one camera-direction bin to a mesh. Pick a source or mesh to emphasize matching links and dim the rest."})]}):(0,t.jsx)("div",{className:"pointer-events-none absolute inset-0 grid place-items-center text-sm text-fg-muted",children:"loading"===L?"Rendering…":"empty"===L?"No aggregate flow links in range.":"error"===L?A??"Flow view unavailable.":null})]})}],19399)},76421,e=>{"use strict";var t=e.i(79047),n=e.i(57431);let a={status:"idle",gated:!1,count:0};var r=e.i(60614),s=e.i(2348),i=e.i(2413);let l=new Set,o=[{key:"interaction",label:"Clicks & picks",color:"#fb923c",types:new Set(["pointer_click","mesh_interaction"])},{key:"actors",label:"Scene actors",color:"#e879f9",types:new Set(["node_transform"])},{key:"custom",label:"Custom",color:"#34d399",types:new Set(["custom"])},{key:"camera",label:"Camera",color:"#38bdf8",types:new Set(["camera_sample"])},{key:"pointer",label:"Pointer",color:"#94a3b8",types:new Set(["pointer_move","pointer_down","pointer_up"])},{key:"perf",label:"Perf",color:"#a78bfa",types:new Set(["frame_perf"])},{key:"lifecycle",label:"Lifecycle",color:"#f472b6",types:new Set(["session_start","session_end","scene_change","focus_change","visibility_change","viewport_resize","context_lost","context_restored","runtime_error","capability_change","input_action","resource_sample","compile_stall","mesh_visibility","hover_dwell"])}];function u(e,t,n){let a=Math.max(1,n),r=new Map;o.forEach((e,t)=>{for(let n of e.types)r.set(n,t)});let s=o.map(()=>new Set);for(let n of e){let e=r.get(n.type);if(void 0===e)continue;let i=Math.min(1,Math.max(0,(n.ts-t)/a));s[e].add(Math.round(600*i))}return o.map((e,t)=>({key:e.key,label:e.label,color:e.color,marks:[...s[t]].sort((e,t)=>e-t).map(e=>e/600)})).filter(e=>e.marks.length>0)}function c(e){let t=Math.max(0,Math.round(e/1e3)),n=Math.floor(t/60);return`${n}:${(t%60).toString().padStart(2,"0")}`}function h(e){let t=e.slice(e.lastIndexOf("/")+1);return t.length>20?`${t.slice(0,19)}\u2026`:t}function d({lanes:e,duration:n,progress:a,onSeek:r,hiddenTypes:s}){let i=e.filter(e=>{let t=o.find(t=>t.key===e.key);if(!t)return!0;for(let e of t.types)if(!s.has(e))return!0;return!1});if(0===i.length)return null;let l=`${Math.min(100,Math.max(0,a/Math.max(1,n)*100))}%`;return(0,t.jsxs)("div",{className:"mt-4",children:[(0,t.jsx)("div",{className:"mb-1.5 flex flex-wrap items-center gap-x-3 gap-y-1 text-[10px] text-fg-muted",children:i.map(e=>(0,t.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,t.jsx)("span",{"aria-hidden":!0,className:"inline-block h-2 w-2 rounded-sm",style:{backgroundColor:e.color}}),e.label,(0,t.jsxs)("span",{className:"tabular-nums text-fg-muted",children:["(",e.marks.length,")"]})]},e.key))}),(0,t.jsxs)("button",{type:"button","aria-label":"Event timeline — click to seek",className:"relative block w-full cursor-pointer select-none rounded-md border border-edge bg-ink/60 p-1.5 text-left",onClick:e=>{var t;let a;return t=e.clientX,void r(Math.min(1,Math.max(0,(t-(a=e.currentTarget.getBoundingClientRect()).left)/(a.width||1)))*n)},children:[(0,t.jsx)("div",{className:"flex flex-col gap-1",children:i.map(e=>(0,t.jsx)("div",{className:"relative h-2.5 rounded-sm bg-white/5",children:e.marks.map((n,a)=>(0,t.jsx)("span",{"aria-hidden":!0,className:"pointer-events-none absolute top-0 h-full w-px",style:{left:`${100*n}%`,backgroundColor:e.color,opacity:.85}},a))},e.key))}),(0,t.jsx)("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-y-1 w-px bg-saffron",style:{left:l}})]})]})}e.s(["SessionReplayView",0,function({api:o,sessionId:m,hiddenTypes:f,isLive:p=!1}){let g=(0,n.useRef)(null),b=(0,n.useRef)(null),x=(0,n.useRef)(0),w=(0,n.useRef)(f??l),v=(0,n.useRef)(!1),k=(0,n.useRef)(null),y=(0,n.useRef)(!1),j=(0,n.useRef)(!1),M=(0,n.useRef)(null),_=(0,n.useRef)(0),z=(0,n.useRef)([]),C=(0,n.useRef)([]),S=(0,n.useRef)([]),R=(0,n.useRef)(!0),L=(0,n.useRef)("birdview"),I=(0,n.useRef)(null),A=(0,n.useRef)(null),P=(0,n.useRef)([]),E=(0,n.useRef)(null),$=(0,n.useRef)(null),[N,T]=(0,n.useState)("idle"),[B,F]=(0,n.useState)(null),[V,O]=(0,n.useState)(0),[Z,D]=(0,n.useState)(0),[q,W]=(0,n.useState)(!1),[H,K]=(0,n.useState)([]),[U,G]=(0,n.useState)([]),[Y,X]=(0,n.useState)([]),[J,Q]=(0,n.useState)(!0),[ee,et]=(0,n.useState)(!1),[en,ea]=(0,n.useState)("birdview"),[er,es]=(0,n.useState)(null),[ei,el]=(0,n.useState)(!1),[eo,eu]=(0,n.useState)(!1),[ec,eh]=(0,n.useState)(null);(0,n.useEffect)(()=>{R.current=J},[J]),(0,n.useEffect)(()=>{j.current=q},[q]),(0,n.useEffect)(()=>{y.current=ee},[ee]),(0,n.useEffect)(()=>{L.current=en,v.current=!0},[en]),(0,n.useEffect)(()=>{w.current=f??l,v.current=!0},[f]),(0,n.useEffect)(()=>{let t=g.current;if(!t)return;let n=!1,a=null;return T("loading"),F(null),W(!1),O(0),D(0),K([]),G([]),X([]),es(null),I.current=null,z.current=[],C.current=[],S.current=[],x.current=0,E.current=null,P.current=[],A.current=null,el(!1),eu(!1),eh(null),(async()=>{try{let[{Engine:i},{Scene:l},{ArcRotateCamera:c},{UniversalCamera:h},{HemisphericLight:d},{Vector3:f,Color3:g,Color4:$,Matrix:N},{MeshBuilder:B},{StandardMaterial:F},{ReplayPlayer:V}]=await Promise.all([e.A(48159),e.A(7614),e.A(41656),e.A(95809),e.A(84694),e.A(13160),e.A(9786),e.A(33664),e.A(85461),e.A(4977)]),Z=await o.sessionEvents(m);if(n)return;if(0===Z.length)return void T("empty");let q=Z[0].ts,H=Z[0].ts;for(let e of Z)e.ts<q&&(q=e.ts),e.ts>H&&(H=e.ts);let U=await (0,r.mergeSceneProxies)(o,{since:q-1,until:H+1});if(n)return;let Y=[...Z].sort((e,t)=>e.ts-t.ts),J=Y[0].ts,Q=[],ee=[],en=new Map,ea=null;for(let e of Y){let t=e.ts-J;if("camera_sample"===e.type){ea=[e.position[0],e.position[1],e.position[2]],Q.push({at:t,position:ea,direction:[e.direction[0],e.direction[1],e.direction[2]],..."number"==typeof e.fov?{fov:e.fov}:{}});continue}if("node_transform"===e.type){if(e.boneId)continue;let n=e.childPath?`${e.nodeId}/${e.childPath}`:e.nodeId,a=en.get(n);a||(a=[],en.set(n,a)),a.push({at:t,position:[e.position[0],e.position[1],e.position[2]]});continue}if("pointer_click"===e.type&&e.hitPoint){let n=e.ray?.origin??ea;if(!n)continue;ee.push({at:t,type:"pointer_click",origin:[n[0],n[1],n[2]],hit:[e.hitPoint[0],e.hitPoint[1],e.hitPoint[2]],...e.hitMesh?{mesh:e.hitMesh}:{}});continue}if("mesh_interaction"===e.type&&e.point){if(!ea)continue;ee.push({at:t,type:"mesh_interaction",origin:[ea[0],ea[1],ea[2]],hit:[e.point[0],e.point[1],e.point[2]],...e.mesh?{mesh:e.mesh}:{}})}}if(0===Q.length&&0===ee.length&&0===en.size)return void T("empty");let er=new i(t,!0,{preserveDrawingBuffer:!1}),ei=new l(er);ei.clearColor=new $(.04,.05,.07,1),A.current=ei;let el=new c("birdview-cam",-Math.PI/2,.22,12,f.Zero(),ei);el.attachControl(t,!0),(0,s.disableWheelZoom)(el),b.current=el,new d("replay-light",new f(0,1,0),ei);let eo=new h("replay-follow-cam",f.Zero(),ei);eo.minZ=.05,eo.fov=Math.PI/3,ei.activeCamera=el;let eu="birdview",ec=B.CreateGround("replay-ground",{width:20,height:20,subdivisions:20},ei),eh=new F("replay-ground-mat",ei);eh.diffuseColor=new g(.12,.14,.18),eh.wireframe=!0,ec.material=eh;let ed=new Set(en.keys()),em=new Set(Array.from(ed,e=>e.slice(e.lastIndexOf("/")+1))),ef=[],ep=[],eg=new Set,eb=e=>{if(eg.has(e.name)||(e=>{if(e.path){for(let t of ed)if(e.path===t||e.path.endsWith(`/${t}`))return!0}return em.has(e.name)})(e))return!1;eg.add(e.name);let t=e.aabb,n=Math.max(t[3]-t[0],.001),a=Math.max(t[4]-t[1],.001),r=Math.max(t[5]-t[2],.001),s=B.CreateBox(`replay-proxy-${e.name}`,{width:n,height:a,depth:r},ei);s.position=new f((t[0]+t[3])/2,(t[1]+t[4])/2,(t[2]+t[5])/2);let i=new F(`replay-proxy-mat-${e.name}`,ei);return i.wireframe=!0,i.disableLighting=!0,i.emissiveColor=new g(.32,.4,.52),i.alpha=.35,s.material=i,s.isPickable=!1,E.current&&s.setEnabled(!1),ep.push(s),ef.push({name:e.name,center:new f((t[0]+t[3])/2,t[4],(t[2]+t[5])/2)}),!0};for(let e of U)eb(e);z.current=ef,C.current=ef.map(()=>null),G(ef.map(e=>e.name)),P.current=ep;let ex=async()=>{let e=await (0,r.mergeSceneProxies)(o,{since:q-1}).catch(()=>null);if(n||!e)return;let t=!1;for(let n of e)eb(n)&&(t=!0);t&&(z.current=ef,C.current=ef.map((e,t)=>C.current[t]??null),G(ef.map(e=>e.name)),v.current=!0)},ew=[[.91,.47,.98],[.4,.95,.6],[.98,.8,.3],[.45,.85,1]],ev=e=>{let t=e.indexOf("/");return -1===t?e:e.slice(0,t)},ek=[],ey=new Map,ej=0,eM=(e,t,n)=>{let a=B.CreateSphere(`replay-actor-${e}`,{diameter:.5,segments:12},ei),r=new F(`replay-actor-mat-${e}`,ei);r.disableLighting=!0;let s=ew[ej%ew.length];r.emissiveColor=new g(s[0],s[1],s[2]),a.material=r,a.isPickable=!1,a.isVisible=!1,ej++;let i={key:e,mesh:a,samples:n,driveKey:t};return ek.push(i),ey.set(e,i),i},e_=new Map,ez=new Map;for(let[e,t]of en){if(0===t.length)continue;let n=ev(e);if(e===n)e_.set(n,t);else{let a=ez.get(n);(!a||t.length>a.samples.length)&&ez.set(n,{key:e,samples:t})}}for(let e of new Set([...e_.keys(),...ez.keys()])){let t=e_.get(e);if(t)eM(e,e,t);else{let t=ez.get(e);eM(e,t.key,t.samples)}}S.current=ek.map(()=>null),X(ek.map(e=>e.key));let eC=(e,t)=>{if(0===e.length||t<e[0].at)return null;let n=0,a=e.length-1,r=-1;for(;n<=a;){let s=n+a>>1;e[s].at<=t?(r=s,n=s+1):a=s-1}if(r<0)return null;let s=e[r],i=e[r+1];if(!i)return s.position;let l=i.at-s.at;if(l<=0)return s.position;let o=Math.max(0,Math.min(1,(t-s.at)/l));return[s.position[0]+(i.position[0]-s.position[0])*o,s.position[1]+(i.position[1]-s.position[1])*o,s.position[2]+(i.position[2]-s.position[2])*o]},eS=1,eR=1.4,eL=B.CreateSphere("replay-camera-origin",{diameter:.35,segments:12},ei),eI=new F("replay-camera-origin-mat",ei);eI.disableLighting=!0,eI.emissiveColor=new g(.6,.9,1),eL.material=eI;let eA=B.CreateLines("replay-camera-frustum",{points:[f.Zero(),new f(0,0,1)]},ei);eA.color=new g(.7,.95,1),eA.isPickable=!1;let eP=B.CreateCylinder("replay-camera-cone",{height:1,diameterTop:0,diameterBottom:1,tessellation:24},ei);eP.bakeTransformIntoVertices(N.RotationX(-Math.PI/2).multiply(N.Translation(0,0,.5)));let eE=new F("replay-camera-cone-mat",ei);eE.disableLighting=!0,eE.emissiveColor=new g(.4,.78,1),eE.alpha=.16,eE.backFaceCulling=!1,eP.material=eE,eP.isPickable=!1,eP.isVisible=!1;let e$=(e,t,n,a)=>{if(e?.dispose(),0===n.length)return null;let r=B.CreateLineSystem(t,{lines:n,...a?{colors:a,useVertexAlpha:!0}:{}},ei);return r.isPickable=!1,r},eN=null,eT=null,eB=null,eF=()=>{let e=w.current,t=[],n=[];for(let a of ee){if(e.has(a.type))continue;let[r,s,i]=a.hit,l="mesh_interaction"===a.type?new $(.45,.85,1,.32):new $(1,.7,.35,.32);t.push([new f(r-.1,s,i),new f(r+.1,s,i)]),t.push([new f(r,s-.1,i),new f(r,s+.1,i)]),t.push([new f(r,s,i-.1),new f(r,s,i+.1)]),n.push([l,l],[l,l],[l,l])}eB=e$(eB,"replay-persistent-marks",t,n)};eF();let eV=B.CreateSphere("replay-glow",{diameter:1,segments:12},ei),eO=new F("replay-glow-mat",ei);eO.disableLighting=!0,eO.emissiveColor=new g(1,.62,.2),eO.alpha=0,eV.material=eO,eV.isPickable=!1,eV.isVisible=!1;let eZ=1/0,eD=1/0,eq=1/0,eW=-1/0,eH=-1/0,eK=-1/0,eU=!1,eG=e=>{eZ=Math.min(eZ,e[0]),eD=Math.min(eD,e[1]),eq=Math.min(eq,e[2]),eW=Math.max(eW,e[0]),eH=Math.max(eH,e[1]),eK=Math.max(eK,e[2])},eY=()=>{let e;if(eU||!Number.isFinite(eZ))return;let t=(eZ+eW)/2,n=(eD+eH)/2,a=(eq+eK)/2,r=eW-eZ,s=eH-eD,i=eK-eq,l=Math.sqrt(r*r+s*s+i*i);el.setTarget(new f(t,n,a)),e=1.3*l,el.radius=Number.isFinite(e)?Math.max(8,e):12,eU=!0};for(let e of Q)eG(e.position);for(let e of ee)eG(e.origin),eG(e.hit);for(let e of en.values())for(let t of e)eG(t.position);for(let e of U)eG(e.aabb.slice(0,3)),eG(e.aabb.slice(3,6));eY();{let e=eW-eZ,t=eH-eD,n=eK-eq,a=Number.isFinite(e)?Math.sqrt(e*e+t*t+n*n):0,r=Math.min(Math.max(.035*a,.45),Math.max(.45,.18*a));eS=r/.35,eR=Math.max(.16*a,3.2*r,1.4),eL.scaling.setAll(eS)}let eX=-1,eJ=e=>{var a;let r=v.current;if(!r&&e===eX)return;v.current=!1,eX=e,r&&eF();let s=w.current;(a=L.current)!==eu&&(eu=a,"follow"===a?(el.detachControl(),ei.activeCamera=eo):(ei.activeCamera=el,el.attachControl(t,!0)));let i="follow"===L.current,l=s.has("camera_sample")?null:(e=>{if(0===Q.length)return null;let t=0,n=Q.length-1,a=-1;for(;t<=n;){let r=t+n>>1;Q[r].at<=e?(a=r,t=r+1):n=r-1}return a>=0?Q[a]:null})(e);if(l){eL.position.set(l.position[0],l.position[1],l.position[2]);let e=l.direction,t=Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2])||1,n=eR,a=new f(l.position[0]+e[0]/t*n,l.position[1]+e[1]/t*n,l.position[2]+e[2]/t*n);if(i)eL.isVisible=!1,eA.isVisible=!1,eP.isVisible=!1,eo.position.set(l.position[0],l.position[1],l.position[2]),eo.setTarget(a),l.fov&&l.fov>0&&(eo.fov=l.fov);else{eL.isVisible=!0,eA.isVisible=!0,eA=B.CreateLines("replay-camera-frustum",{points:[eL.position.clone(),a],instance:eA},ei);let e=(l.fov&&l.fov>0?l.fov:Math.PI/3)/2,t=n*Math.tan(e);eP.isVisible=!0,eP.position.copyFrom(eL.position),eP.lookAt(a),eP.scaling.set(2*t,2*t,n)}}else eL.isVisible=!1,eA.isVisible=!1,eP.isVisible=!1;let o=s.has("node_transform");for(let t of ek){let n=o?null:eC(t.samples,e);if(!n){t.mesh.isVisible=!1;continue}t.mesh.isVisible=!0,t.mesh.position.set(n[0],n[1],n[2])}let u=ee.filter(t=>!s.has(t.type)&&t.at<=e&&t.at>=e-2200),c=[],h=[],d=[],m=[],p=null;for(let t of u){let n=e-t.at,a=Math.max(0,Math.min(1,1-n/2200)),r=new $(1,.62,.2,.18+.72*a),s=new f(t.origin[0],t.origin[1],t.origin[2]),i=new f(t.hit[0],t.hit[1],t.hit[2]);c.push([s,i]),h.push([r,r]);let l=.12+.08*a;d.push([new f(i.x-l,i.y,i.z),new f(i.x+l,i.y,i.z)]),d.push([new f(i.x,i.y-l,i.z),new f(i.x,i.y+l,i.z)]),d.push([new f(i.x,i.y,i.z-l),new f(i.x,i.y,i.z+l)]);let o=new $(1,.78,.42,.22+.72*a);if(m.push([o,o],[o,o],[o,o]),n<=900){let e=1-n/900;(!p||e>p.t)&&(p={hit:t.hit,t:e})}}if(p){let e=.25+.9*p.t;eV.isVisible=!0,eV.scaling.set(e,e,e),eV.position.set(p.hit[0],p.hit[1],p.hit[2]),eO.alpha=.12+.5*p.t}else eV.isVisible=!1;let g=null,b=-1/0;for(let e of u)e.mesh&&e.at>b&&(b=e.at,g=e.mesh);g!==I.current&&(I.current=g,n||es(g)),eN=e$(eN,"replay-trail-lines",c,h),eT=e$(eT,"replay-trail-hits",d,m)},eQ=Y.length>0?Y[Y.length-1].ts-J:0,e0=eQ,e1=Y.length>0?Y[Y.length-1].ts:-1/0,e2=Y.map(e=>({type:e.type,ts:e.ts})),e3=0,e5=null;if(p)k.current=null,M.current=e=>{if(n)return;let t="number"==typeof e.ts?e.ts:NaN;if(!Number.isFinite(t)||t<=e1)return;e1=t;let a=t-J;if(a>e0&&(e0=a),a>eQ&&(eQ=a),e2.push({type:e.type,ts:t}),"camera_sample"===e.type){let t=e.position,n=e.direction;if(t&&n){let r=[t[0],t[1],t[2]];ea=r;let s="number"==typeof e.fov?e.fov:void 0;Q.push({at:a,position:r,direction:[n[0],n[1],n[2]],...void 0!==s?{fov:s}:{}}),eG(r),eY()}}else if("pointer_click"===e.type){let t=e.hitPoint,n=e.ray,r=n?.origin??ea;if(t&&r){let n="string"==typeof e.hitMesh?e.hitMesh:void 0;ee.push({at:a,type:"pointer_click",origin:[r[0],r[1],r[2]],hit:[t[0],t[1],t[2]],...n?{mesh:n}:{}}),eG(t),v.current=!0}}else if("mesh_interaction"===e.type){let t=e.point;if(t&&ea){let n="string"==typeof e.mesh?e.mesh:void 0;ee.push({at:a,type:"mesh_interaction",origin:[ea[0],ea[1],ea[2]],hit:[t[0],t[1],t[2]],...n?{mesh:n}:{}}),eG(t),v.current=!0}}else if("node_transform"===e.type){let t=e.position;if(e.boneId||"string"!=typeof e.nodeId||!t)return;let n="string"==typeof e.childPath?e.childPath:void 0,r=n?`${e.nodeId}/${n}`:e.nodeId;((e,t)=>{let n=ev(e),a=ey.get(n);if(!a){a=eM(n,e,[]);let t=S.current;S.current=ek.map((e,n)=>t[n]??null),X(ek.map(e=>e.key))}e===a.driveKey?a.samples.push(t):e===n&&a.driveKey!==n&&(a.driveKey=n,a.samples.length=0,a.samples.push(t))})(r,{at:a,position:[t[0],t[1],t[2]]}),eG(t)}let r=performance.now();r-e3>250&&(e3=r,K(u(e2,J,Math.max(1,eQ)))),y.current&&a>x.current&&(x.current=a)},_.current=eQ,x.current=eQ,y.current=!0,et(!0),W(!1),O(eQ),D(eQ),K(u(e2,J,Math.max(1,eQ))),eJ(eQ),e5=setInterval(()=>void ex(),4e3);else{let e=new V(Z,{reset(){},apply(){}},{onProgress:e=>{n||(x.current=e,D(e))},onComplete:()=>{n||W(!1)}});k.current=e,O(e.durationMs),K(u(Y,J,e.durationMs)),e.update(0),eJ(0)}let e4=N.Identity(),e6=new Map,e8=e=>{let t=e6.get(e);if(t)return t;let n={w:e.offsetWidth||60,h:e.offsetHeight||16};return e.offsetWidth>0&&e6.set(e,n),n},e7=performance.now(),e9=0;er.runRenderLoop(()=>{if(p){let e=performance.now(),t=e-e7;if(e7=e,y.current)x.current+=t,x.current>eQ&&(eQ=x.current),_.current=eQ,D(x.current),e-e9>250&&(e9=e,O(eQ));else if(j.current){let e=x.current+t;e>=eQ&&(e=eQ),x.current=e,D(e)}}eJ(x.current),ei.render(),(()=>{if(!R.current)return;let e=t.clientWidth||er.getRenderWidth(),n=t.clientHeight||er.getRenderHeight(),a=el.viewport.toGlobal(e,n),r=ei.getTransformMatrix(),s=I.current,i=e=>e.slice(e.lastIndexOf("/")+1),l=e=>!!s&&(s===e||i(s)===i(e)||e.endsWith(`/${s}`)||s.endsWith(`/${e}`)),o=[],u=z.current,c=C.current;for(let e=0;e<u.length;e++){let t=c[e];if(!t)continue;let n=f.Project(u[e].center,e4,r,a);if(n.z<0||n.z>1){t.style.opacity="0";continue}o.push({el:t,x:n.x,y:n.y,liftPct:140,highlighted:l(u[e].name)})}let h=S.current;for(let e=0;e<ek.length;e++){let t=h[e];if(!t)continue;let n=ek[e].mesh;if(!n.isVisible){t.style.opacity="0";continue}let s=f.Project(n.position,e4,r,a);if(s.z<0||s.z>1){t.style.opacity="0";continue}o.push({el:t,x:s.x,y:s.y,liftPct:180,highlighted:l(ek[e].key)})}o.sort((e,t)=>e.highlighted!==t.highlighted?e.highlighted?-1:1:e.y-t.y||e.x-t.x);let d=[];for(let e of o){let{w:t,h:n}=e8(e.el),a=e.x-t/2,r=e.x+t/2,s=e.y-e.liftPct/100*n,i=s,l=!0,o=0;for(;l&&o++<256;)for(let e of(l=!1,d))a<e.right&&r>e.left&&i<e.bottom&&i+n>e.top&&(i=e.bottom+1,l=!0);d.push({left:a,right:r,top:i,bottom:i+n});let u=i-s;e.el.style.opacity="1",e.el.style.zIndex=e.highlighted?"10":"",e.el.style.transform=`translate(${e.x}px, ${e.y+u}px) translate(-50%, -${e.liftPct}%)`}})()});let te=()=>er.resize();window.addEventListener("resize",te),T("ready"),a=()=>{window.removeEventListener("resize",te),e5&&clearInterval(e5),M.current=null,k.current?.pause(),eA.dispose(),eP.dispose(),eN?.dispose(),eT?.dispose(),eB?.dispose(),eV.dispose(),E.current?.dispose(),E.current=null,P.current=[],A.current=null,ei.dispose(),er.dispose(),b.current=null,k.current=null}}catch(e){if(n)return;T("error"),F(e instanceof Error?e.message:"Failed to load replay.")}})(),()=>{n=!0,a?.()}},[o,m,p]);let ed=(0,n.useCallback)(()=>{if(p){et(!1),y.current=!1,W(e=>{let t=!e;return j.current=t,t});return}let e=k.current;e&&W(t=>(t?e.pause():e.play(),!t))},[p]),em=(0,n.useCallback)(e=>{if(p){et(!1),y.current=!1,W(!1),j.current=!1,x.current=e,D(e);return}let t=k.current;t&&(t.pause(),t.seek(e),W(!1),x.current=e,D(e))},[p]),ef=(0,n.useCallback)(()=>{et(!0),y.current=!0,W(!1),j.current=!1,x.current=_.current,D(_.current)},[]),{gated:ep}=function(e,t,r,s,i){let[l,o]=(0,n.useState)(a),u=(0,n.useRef)(s),c=(0,n.useRef)(i);return u.current=s,c.current=i,(0,n.useEffect)(()=>r?e.liveSession(t,e=>u.current(e),{onReset:()=>c.current(),onState:o}):void o(a),[e,t,r]),l}(o,m,p&&"ready"===N,e=>M.current?.(e),()=>{}),eg=(0,n.useCallback)(e=>{if(!er)return!1;if(er===e)return!0;let t=e=>e.slice(e.lastIndexOf("/")+1);return t(er)===t(e)||e.endsWith(`/${er}`)||er.endsWith(`/${e}`)},[er]),eb=(0,n.useCallback)(async t=>{let n=A.current;if(n){eu(!0),eh(`Loading ${t.name}…`);try{let[{loadSceneBackdrop:a}]=await Promise.all([e.A(3633),e.A(24235)]);if(A.current!==n)return;E.current?.dispose();let r=await a(n,t);if(A.current!==n)return void r.dispose();for(let e of(E.current=r,P.current))e.setEnabled(!1);v.current=!0,el(!0),eh(`Loaded ${t.name} (${r.meshes.length} meshes).`)}catch(e){eh(e instanceof Error?e.message:"Could not load model.")}finally{eu(!1)}}},[]),ex=(0,n.useCallback)(e=>{let t=e.target.files?.[0];e.target.value="",t&&eb(t)},[eb]),ew=(0,n.useCallback)(()=>{for(let e of(E.current?.dispose(),E.current=null,P.current))e.setEnabled(!0);v.current=!0,el(!1),eh(null)},[]);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("canvas",{ref:g,className:"aspect-video w-full rounded-lg border border-edge bg-ink"}),(0,t.jsxs)("div",{className:`pointer-events-none absolute inset-0 overflow-hidden ${J?"":"hidden"}`,children:[U.map((e,n)=>(0,t.jsx)("div",{title:e,ref:e=>{e&&(C.current[n]=e)},className:`absolute left-0 top-0 whitespace-nowrap rounded px-1.5 py-0.5 text-[10px] font-medium opacity-0 transition-colors ${eg(e)?"bg-amber/30 text-white ring-2 ring-amber shadow-lg shadow-amber/30":"bg-ink/80 text-saffron ring-1 ring-amber/30"}`,children:h(e)},e)),Y.map((e,n)=>(0,t.jsx)("div",{title:e,ref:e=>{e&&(S.current[n]=e)},className:`absolute left-0 top-0 whitespace-nowrap rounded px-1.5 py-0.5 text-[10px] font-medium opacity-0 transition-colors ${eg(e)?"bg-fuchsia-400/30 text-white ring-2 ring-fuchsia-300 shadow-lg shadow-fuchsia-500/30":"bg-ink/80 text-fuchsia-300 ring-1 ring-fuchsia-400/30"}`,children:h(e)},`actor-${e}`))]}),"ready"===N&&(U.length>0||Y.length>0)?(0,t.jsx)("button",{type:"button",onClick:()=>Q(e=>!e),className:"absolute left-3 top-3 rounded-md border border-edge bg-ink/80 px-2 py-1 text-xs font-medium text-fg transition hover:bg-ink hover:text-white","aria-pressed":J?"true":"false",children:J?"Hide labels":"Show labels"}):null,"ready"===N&&"birdview"===en?(0,t.jsx)(i.ZoomButtons,{onZoom:e=>b.current&&(0,s.stepZoom)(b.current,e)}):null,"ready"!==N?(0,t.jsx)("div",{className:"pointer-events-none absolute inset-0 grid place-items-center text-sm text-fg-muted",children:"loading"===N?"Loading replay…":"empty"===N?"No replayable events (raw retention may be disabled).":"error"===N?B??"Replay unavailable.":null}):null]}),(0,t.jsxs)("div",{className:"mt-3 flex items-center gap-3",children:[(0,t.jsx)("button",{type:"button",onClick:ed,disabled:"ready"!==N,className:"rounded-md bg-amber px-3 py-1.5 text-sm font-medium text-ink transition hover:bg-ember disabled:opacity-40",children:q?"Pause":"Play"}),p?(0,t.jsxs)("button",{type:"button",onClick:ef,disabled:"ready"!==N,"aria-pressed":ee?"true":"false",className:`flex items-center gap-1.5 rounded-md px-2.5 py-1.5 text-sm font-medium transition disabled:opacity-40 ${ee?"bg-rose-500/20 text-rose-300 ring-1 ring-rose-400/40":"border border-edge text-fg hover:bg-ink hover:text-white"}`,children:[(0,t.jsx)("span",{className:`inline-block h-2 w-2 rounded-full ${ee?"animate-pulse bg-rose-400":"bg-fg-muted"}`}),ee?"LIVE":"Resume live"]}):null,(0,t.jsxs)("div",{role:"group","aria-label":"Camera view",className:"flex items-center rounded-md border border-edge p-0.5 text-xs font-medium",children:[(0,t.jsx)("button",{type:"button",onClick:()=>ea("birdview"),disabled:"ready"!==N,"aria-pressed":"birdview"===en?"true":"false",className:`rounded px-2 py-1 transition disabled:opacity-40 ${"birdview"===en?"bg-amber text-ink":"text-fg hover:text-white"}`,children:"Birdview"}),(0,t.jsx)("button",{type:"button",onClick:()=>ea("follow"),disabled:"ready"!==N,"aria-pressed":"follow"===en?"true":"false",className:`rounded px-2 py-1 transition disabled:opacity-40 ${"follow"===en?"bg-amber text-ink":"text-fg hover:text-white"}`,children:"Follow camera"})]}),(0,t.jsx)("span",{className:"w-12 text-right font-mono text-xs tabular-nums text-fg-muted",children:c(Z)}),(0,t.jsx)("input",{type:"range",min:0,max:Math.max(1,V),step:50,value:Math.min(Z,V),onChange:e=>em(Number(e.target.value)),disabled:"ready"!==N,className:"flex-1 accent-amber"}),(0,t.jsx)("span",{className:"w-12 font-mono text-xs tabular-nums text-fg-muted",children:c(V)})]}),"ready"===N?(0,t.jsxs)("div",{className:"mt-3 flex flex-wrap items-center gap-3",children:[(0,t.jsx)("input",{ref:$,type:"file",accept:".glb,.gltf,model/gltf-binary,model/gltf+json",onChange:ex,className:"hidden"}),(0,t.jsx)("button",{type:"button",onClick:()=>$.current?.click(),disabled:eo,className:"rounded-md border border-edge bg-ink/80 px-2.5 py-1.5 text-xs font-medium text-fg transition hover:bg-ink hover:text-white disabled:opacity-40",children:eo?"Loading model…":ei?"Replace model (.glb)":"Load model (.glb)"}),ei?(0,t.jsx)("button",{type:"button",onClick:ew,disabled:eo,className:"rounded-md border border-edge px-2.5 py-1.5 text-xs font-medium text-fg transition hover:bg-ink hover:text-white disabled:opacity-40",children:"Remove model"}):null,ec?(0,t.jsx)("span",{className:"text-xs text-fg-muted",role:"status",children:ec}):(0,t.jsx)("span",{className:"text-xs text-fg-muted",children:"Load a glTF model to replace the wireframe boxes with your real scene."})]}):null,"ready"===N?(0,t.jsx)(d,{lanes:H,duration:V,progress:Z,onSeek:em,hiddenTypes:f??l}):null,p&&ep&&"ready"===N?(0,t.jsx)("p",{className:"mt-2 text-xs text-fg-muted",children:"Live follow is unavailable — raw session retention is disabled on the collector."}):null]})}],76421)},64434,e=>{"use strict";e.s([],4255),e.i(4255);var t=e.i(48939),n=e.i(30215),a=e.i(19399),r=e.i(39592),s=e.i(79047),i=e.i(57431),l=e.i(56054),o=e.i(2348),u=e.i(87456),c=e.i(18637),h=e.i(2413);let d="__all__";function m(e){return`${e[0]},${e[1]},${e[2]}`}function f({label:e,value:t,onChange:n,allLabel:a,options:r}){return(0,s.jsxs)("label",{className:"flex items-center gap-1.5 rounded-md border border-edge bg-ink/80 px-2 py-1 text-xs text-fg backdrop-blur",children:[(0,s.jsx)("span",{className:"font-medium text-fg-muted",children:e}),(0,s.jsxs)("select",{className:"max-w-[12rem] bg-transparent text-white outline-none",value:t,onChange:e=>n(e.target.value),children:[(0,s.jsx)("option",{value:d,children:a}),r.map(e=>(0,s.jsx)("option",{value:e.value,children:e.label},e.value))]})]})}var p=e.i(76421),g=e.i(37215);e.s(["CAMERA_DOME_SUBTITLE",()=>g.CAMERA_DOME_SUBTITLE,"CAMERA_DOME_TITLE",()=>g.CAMERA_DOME_TITLE,"CLICK_RAYS_SUBTITLE",()=>g.CLICK_RAYS_SUBTITLE,"CLICK_RAYS_TITLE",()=>g.CLICK_RAYS_TITLE,"CameraDome3DView",()=>t.CameraDome3DView,"ClickRays3DView",0,function({rays:t,cellSize:n,proxyMeshes:a=[]}){let r=(0,i.useRef)(null),p=(0,i.useRef)(null),g=(0,i.useRef)(null),[b,x]=(0,i.useState)("loading"),[w,v]=(0,i.useState)(null),[k,y]=(0,i.useState)(d),[j,M]=(0,i.useState)(d),[_,z]=(0,i.useState)(null),C=(0,i.useRef)(t),S=(0,i.useRef)(a),R=(0,i.useRef)(k),L=(0,i.useRef)(j);C.current=t,S.current=a,R.current=k,L.current=j;let I=(0,i.useRef)(null),A=t.length>0,P=(0,i.useMemo)(()=>{let e=new Map;for(let n of t){let t=m(n.camVoxel),a=e.get(t);a?a.count+=n.count:e.set(t,{key:t,voxel:n.camVoxel,count:n.count})}return[...e.values()].sort((e,t)=>t.count-e.count)},[t]),E=(0,i.useMemo)(()=>{let e=new Map;for(let n of t)""!==n.mesh&&e.set(n.mesh,(e.get(n.mesh)??0)+n.count);return[...e.entries()].map(([e,t])=>({name:e,count:t})).sort((e,t)=>t.count-e.count)},[t]);return(0,i.useEffect)(()=>{k!==d&&(P.some(e=>e.key===k)||y(d))},[k,P]),(0,i.useEffect)(()=>{j!==d&&(E.some(e=>e.name===j)||M(d))},[j,E]),(0,i.useEffect)(()=>{let t=r.current;if(!t)return;if(!A)return void x("empty");let a=!1,s=null;return x("loading"),v(null),(async()=>{try{let[{Engine:r},{Scene:i},{ArcRotateCamera:c},{HemisphericLight:h},{Vector3:f,Color3:b,Color4:w,Matrix:v},{MeshBuilder:k},{StandardMaterial:y}]=await Promise.all([e.A(48159),e.A(7614),e.A(41656),e.A(84694),e.A(13160),e.A(9786),e.A(33664),e.A(28911),e.A(4977)]);if(a)return;let j=C.current,M=0,_=0,A=0,P=0,E=(e,t,n)=>{M+=e,_+=t,A+=n,P++};for(let e of j)E(e.origin[0],e.origin[1],e.origin[2]),E(e.hit[0],e.hit[1],e.hit[2]);let $=P>0?new f(M/P,_/P,A/P):f.Zero(),N=4*n;for(let e of j)for(let t of[e.origin,e.hit]){let e=t[0]-$.x,n=t[1]-$.y,a=t[2]-$.z;N=Math.max(N,Math.sqrt(e*e+n*n+a*a))}let T=new r(t,!0,{preserveDrawingBuffer:!1}),B=new i(T);B.clearColor=new w(.04,.05,.07,1);let F=new c("rays-cam",Math.PI/4,Math.PI/3,2.4*N,$,B);F.attachControl(t,!0),(0,o.disableWheelZoom)(F),p.current=F,g.current={target:$,alpha:F.alpha,beta:F.beta,radius:F.radius},new h("rays-light",new f(.4,1,.3),B);let V=null,O="\0",Z=[],D=Math.max(3*n,.18*N),q=()=>{for(let e of((()=>{let e=S.current,t=e.map(e=>`${e.name}:${e.aabb.join(",")}`).join("|");if(t===O||(O=t,V&&(V.dispose(!1,!0),V=null),0===e.length))return;V=k.CreateBox("scene-proxy",{size:1},B);let n=new y("scene-proxy-mat",B);n.wireframe=!0,n.disableLighting=!0,n.emissiveColor=new b(.32,.4,.52),n.alpha=.35,V.material=n,V.isPickable=!0,V.thinInstanceEnablePicking=!0,V.metadata={hoverLabels:e.map(e=>e.name)};let a=e.length,r=new Float32Array(16*a);for(let t=0;t<a;t++){let n=e[t].aabb,a=Math.max(n[3]-n[0],.001),s=Math.max(n[4]-n[1],.001),i=Math.max(n[5]-n[2],.001);v.Scaling(a,s,i).multiply(v.Translation((n[0]+n[3])/2,(n[1]+n[4])/2,(n[2]+n[5])/2)).copyToArray(r,16*t)}V.thinInstanceSetBuffer("matrix",r,16,!0)})(),Z))e.dispose(!1,!0);Z=[];let e=C.current,t=S.current,a=R.current,r=L.current,s=a===d?e:e.filter(e=>m(e.camVoxel)===a),i=s.reduce((e,t)=>Math.max(e,t.count),1),o=[],u=[];for(let e of s){let t=e.count/i,[n,a,r]=(0,l.heatRgb)(t),s=new w(n,a,r,.35+.65*t);o.push([new f(e.origin[0],e.origin[1],e.origin[2]),new f(e.hit[0],e.hit[1],e.hit[2])]),u.push([s,s])}if(o.length>0){let e=k.CreateLineSystem("click-rays",{lines:o,colors:u,useVertexAlpha:!0},B);e.isPickable=!1,Z.push(e)}let c=new Map;for(let e of s)c.set(m(e.camVoxel),e.camVoxel);if(c.size>0){let e=k.CreateSphere("rays-eye",{diameter:.6*n,segments:6},B),t=new y("rays-eye-mat",B);t.disableLighting=!0,t.emissiveColor=new b(.9,.95,1),e.material=t;let a=[...c.values()],r=new Float32Array(16*a.length);for(let e=0;e<a.length;e++){let t=a[e];v.Translation((t[0]+.5)*n,(t[1]+.5)*n,(t[2]+.5)*n).copyToArray(r,16*e)}e.thinInstanceSetBuffer("matrix",r,16,!0),Z.push(e)}if(r!==d){let a=e.filter(e=>e.mesh===r);if(a.length>0){let e,s=t.find(e=>e.name===r);if(s){let t=s.aabb;e=new f((t[0]+t[3])/2,(t[1]+t[4])/2,(t[2]+t[5])/2)}else{let t=0,n=0,r=0;for(let e of a)t+=e.hit[0],n+=e.hit[1],r+=e.hit[2];e=new f(t/a.length,n/a.length,r/a.length)}let i=a.reduce((e,t)=>Math.max(e,t.count),1),o=[],u=[];for(let t of a){let n=t.origin[0]-t.hit[0],a=t.origin[1]-t.hit[1],r=t.origin[2]-t.hit[2],s=Math.sqrt(n*n+a*a+r*r)||1,c=t.count/i,h=D*(.4+.6*c),d=new f(e.x+n/s*h,e.y+a/s*h,e.z+r/s*h),[m,p,g]=(0,l.heatRgb)(c),b=new w(m,p,g,1);o.push([e.clone(),d]),u.push([new w(m,p,g,.25),b])}if(o.length>0){let e=k.CreateLineSystem("mesh-rose",{lines:o,colors:u,useVertexAlpha:!0},B);e.isPickable=!1,Z.push(e)}let c=k.CreateSphere("mesh-rose-hub",{diameter:.8*n,segments:8},B),h=new y("mesh-rose-hub-mat",B);h.disableLighting=!0,h.emissiveColor=new b(1,.85,.4),c.material=h,c.position=e,c.isPickable=!0,c.metadata={hoverLabel:r},Z.push(c)}}};I.current=q,q(),T.runRenderLoop(()=>B.render());let W=()=>T.resize();window.addEventListener("resize",W);let H=(0,u.attachMeshHover)(B,t,z),K=(0,o.attachDoubleClickFocus)(B,t,F);x("ready"),s=()=>{window.removeEventListener("resize",W),H(),K(),z(null),I.current=null,p.current=null,g.current=null,B.dispose(),T.dispose()}}catch(e){if(a)return;x("error"),v(e instanceof Error?e.message:"Failed to render click rays.")}})(),()=>{a=!0,s?.()}},[A,n]),(0,i.useEffect)(()=>{I.current?.()},[t,a,n,k,j]),(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsx)("canvas",{ref:r,className:"aspect-video w-full rounded-lg border border-edge bg-ink"}),_?(0,s.jsx)("div",{className:"pointer-events-none absolute z-10 max-w-[16rem] truncate rounded border border-edge bg-ink/90 px-1.5 py-0.5 text-xs text-white shadow backdrop-blur",style:{left:_.x+12,top:_.y+12},children:_.label}):null,"ready"===b?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"absolute left-3 top-3 flex gap-2",children:[(0,s.jsx)(f,{label:"Viewpoint",value:k,onChange:y,allLabel:"All viewpoints",options:P.map(e=>({value:e.key,label:`(${e.voxel.join(", ")}) \xb7 ${e.count}`}))}),(0,s.jsx)(f,{label:"Mesh rose",value:j,onChange:M,allLabel:"No mesh focus",options:E.map(e=>({value:e.name,label:`${e.name} \xb7 ${e.count}`}))})]}),(0,s.jsx)(h.ZoomButtons,{onZoom:e=>p.current&&(0,o.stepZoom)(p.current,e),onReset:()=>p.current&&g.current&&(0,o.resetFocus)(p.current,g.current)}),(0,s.jsx)(c.HeatLegend,{title:"Click volume",lowLabel:"few clicks",highLabel:"most clicks",note:"Lines run from the camera position (bright eye) to where the click landed. Pick a viewpoint to see only clicks made from there; pick a mesh to see which directions its clicks came from."})]}):(0,s.jsx)("div",{className:"pointer-events-none absolute inset-0 grid place-items-center text-sm text-fg-muted",children:"loading"===b?"Rendering…":"empty"===b?"No correlated clicks in range.":"error"===b?w??"Click rays unavailable.":null})]})},"ERROR_HEATMAP_SUBTITLE",()=>g.ERROR_HEATMAP_SUBTITLE,"ERROR_HEATMAP_TITLE",()=>g.ERROR_HEATMAP_TITLE,"FLOW_SANKEY_HELP",()=>g.FLOW_SANKEY_HELP,"FLOW_SANKEY_SUBTITLE",()=>g.FLOW_SANKEY_SUBTITLE,"FLOW_SANKEY_TITLE",()=>g.FLOW_SANKEY_TITLE,"FlowSankey3DView",()=>a.FlowSankey3DView,"GAZE_CLICK_SUBTITLE",()=>g.GAZE_CLICK_SUBTITLE,"GAZE_CLICK_TITLE",()=>g.GAZE_CLICK_TITLE,"GazeClickDivergence3DView",()=>r.GazeClickDivergence3DView,"SESSION_REPLAY_TITLE",()=>g.SESSION_REPLAY_TITLE,"SessionReplayView",()=>p.SessionReplayView,"WORLD_HEATMAP_SUBTITLE",()=>g.WORLD_HEATMAP_SUBTITLE,"WORLD_HEATMAP_TITLE",()=>g.WORLD_HEATMAP_TITLE,"WorldHeatmap3DView",()=>n.WorldHeatmap3DView,"sessionReplaySubtitle",()=>g.sessionReplaySubtitle,"sessionReplayTitle",()=>g.sessionReplayTitle],64434)},94452,e=>{e.n(e.i(64434))},48159,e=>{e.v(t=>Promise.all(["static/chunks/1365lgwdd4vuo.js","static/chunks/27hbplu797elx.js","static/chunks/1iojfx3-g4_n9.js","static/chunks/3rl_nhqwew40w.js","static/chunks/2s4fzgzkwjluu.js","static/chunks/103x4jwovb6d-.js","static/chunks/12ory_c78yl31.js","static/chunks/3gjvl1p-tugfe.js","static/chunks/1dgf112ehnhm1.js"].map(t=>e.l(t))).then(()=>t(85303)))},7614,e=>{e.v(t=>Promise.all(["static/chunks/2pb_uosb-aa8x.js","static/chunks/1iojfx3-g4_n9.js","static/chunks/1iel4pzhhh-c3.js","static/chunks/3lladf_wemm-2.js","static/chunks/3gjvl1p-tugfe.js","static/chunks/0q8pt8fd0ma30.js","static/chunks/0u7577db_ivyr.js","static/chunks/3o_dmzpahx-5g.js","static/chunks/2s4fzgzkwjluu.js"].map(t=>e.l(t))).then(()=>t(34769)))},41656,e=>{e.v(t=>Promise.all(["static/chunks/2gf8l6hbmt7v3.js","static/chunks/1iojfx3-g4_n9.js","static/chunks/0gsh_d0m5xss1.js","static/chunks/0u7577db_ivyr.js","static/chunks/1iel4pzhhh-c3.js","static/chunks/3r7v7un976sn7.js","static/chunks/2s4fzgzkwjluu.js","static/chunks/15qfoj-vl9thu.js","static/chunks/0q8pt8fd0ma30.js","static/chunks/2a3iy701j4r_y.js","static/chunks/3lladf_wemm-2.js","static/chunks/3gjvl1p-tugfe.js"].map(t=>e.l(t))).then(()=>t(29183)))},84694,e=>{e.v(t=>Promise.all(["static/chunks/1iojfx3-g4_n9.js","static/chunks/1upy8a5cb75kt.js","static/chunks/0u7577db_ivyr.js","static/chunks/3gjvl1p-tugfe.js","static/chunks/43_fau1gg69eo.js"].map(t=>e.l(t))).then(()=>t(5153)))},13160,e=>{e.v(t=>Promise.all(["static/chunks/18h9ugdz6igdb.js","static/chunks/3gjvl1p-tugfe.js","static/chunks/1iojfx3-g4_n9.js"].map(t=>e.l(t))).then(()=>t(82297)))},9786,e=>{e.v(t=>Promise.all(["static/chunks/2gf8l6hbmt7v3.js","static/chunks/39pkya0_bvcaj.js","static/chunks/0zydv7y47dxgh.js","static/chunks/1iel4pzhhh-c3.js","static/chunks/3lladf_wemm-2.js","static/chunks/3s7hqij6xp_4e.js","static/chunks/1iojfx3-g4_n9.js","static/chunks/2s4fzgzkwjluu.js","static/chunks/0q8pt8fd0ma30.js","static/chunks/15qfoj-vl9thu.js","static/chunks/0u7577db_ivyr.js","static/chunks/3gjvl1p-tugfe.js","static/chunks/3v8kgnjk27wbe.js","static/chunks/3o_dmzpahx-5g.js","static/chunks/166yqx3_qvbpy.js","static/chunks/2a3iy701j4r_y.js"].map(t=>e.l(t))).then(()=>t(40810)))},33664,e=>{e.v(t=>Promise.all(["static/chunks/146ou-ohb_qhs.js","static/chunks/1iojfx3-g4_n9.js","static/chunks/16gwjao676ieb.js","static/chunks/0u7577db_ivyr.js","static/chunks/1iel4pzhhh-c3.js","static/chunks/25gep78-izw79.js","static/chunks/2jio3sio-_43z.js","static/chunks/3gjvl1p-tugfe.js","static/chunks/0q8pt8fd0ma30.js","static/chunks/3o_dmzpahx-5g.js","static/chunks/3lladf_wemm-2.js","static/chunks/15qfoj-vl9thu.js","static/chunks/2s4fzgzkwjluu.js"].map(t=>e.l(t))).then(()=>t(754)))},86489,e=>{e.v(t=>Promise.all(["static/chunks/1fsof7un7igrn.js","static/chunks/0ko10wo4rc9-b.js","static/chunks/08ou2nvy48e0u.js","static/chunks/3lladf_wemm-2.js","static/chunks/1iojfx3-g4_n9.js","static/chunks/0u7577db_ivyr.js","static/chunks/2s4fzgzkwjluu.js","static/chunks/3gjvl1p-tugfe.js","static/chunks/0q8pt8fd0ma30.js","static/chunks/15qfoj-vl9thu.js","static/chunks/1iel4pzhhh-c3.js","static/chunks/2a3iy701j4r_y.js"].map(t=>e.l(t))).then(()=>t(39703)))},72003,e=>{e.v(t=>Promise.all(["static/chunks/0xyija62b6txc.js","static/chunks/107wfq84g9-kn.js","static/chunks/1iojfx3-g4_n9.js","static/chunks/3gjvl1p-tugfe.js","static/chunks/2s4fzgzkwjluu.js","static/chunks/103x4jwovb6d-.js","static/chunks/0jjvp2slpf7d6.js"].map(t=>e.l(t))).then(()=>t(88725)))},28911,e=>{e.v(t=>Promise.all(["static/chunks/219n3q-_eengm.js","static/chunks/0ko10wo4rc9-b.js","static/chunks/08ou2nvy48e0u.js","static/chunks/3lladf_wemm-2.js","static/chunks/1iojfx3-g4_n9.js","static/chunks/0u7577db_ivyr.js","static/chunks/2s4fzgzkwjluu.js","static/chunks/15qfoj-vl9thu.js","static/chunks/0q8pt8fd0ma30.js","static/chunks/3gjvl1p-tugfe.js","static/chunks/1iel4pzhhh-c3.js","static/chunks/2a3iy701j4r_y.js"].map(t=>e.l(t))).then(()=>t(27870)))},4977,e=>{e.v(t=>Promise.all(["static/chunks/1iojfx3-g4_n9.js","static/chunks/3lladf_wemm-2.js","static/chunks/1iel4pzhhh-c3.js","static/chunks/0tsk32q-88t_7.js","static/chunks/1xed71f608m4b.js","static/chunks/3o_dmzpahx-5g.js","static/chunks/0u7577db_ivyr.js","static/chunks/3gjvl1p-tugfe.js","static/chunks/2s4fzgzkwjluu.js","static/chunks/0q8pt8fd0ma30.js"].map(t=>e.l(t))).then(()=>t(12675)))},95809,e=>{e.v(t=>Promise.all(["static/chunks/2gf8l6hbmt7v3.js","static/chunks/10afagk8yn__n.js","static/chunks/1iojfx3-g4_n9.js","static/chunks/0ptxb9dcwsw3o.js","static/chunks/32oj0iudhp8bm.js","static/chunks/2s4fzgzkwjluu.js","static/chunks/1iel4pzhhh-c3.js","static/chunks/3gjvl1p-tugfe.js"].map(t=>e.l(t))).then(()=>t(3470)))},3633,e=>{e.v(t=>Promise.all(["static/chunks/3z35loj4i-id4.js","static/chunks/3gjvl1p-tugfe.js"].map(t=>e.l(t))).then(()=>t(97900)))},24235,e=>{e.v(t=>Promise.all(["static/chunks/2gf8l6hbmt7v3.js","static/chunks/1bq0fcnt1wy86.js","static/chunks/2al9dh3_1ixhv.js","static/chunks/0vf3facit951s.js","static/chunks/25gep78-izw79.js","static/chunks/1fervgvgv10r-.js","static/chunks/2s4fzgzkwjluu.js","static/chunks/2qu-gpm3ux1l6.js","static/chunks/10afagk8yn__n.js","static/chunks/29ings58w7kp1.js","static/chunks/1iojfx3-g4_n9.js","static/chunks/42yctcfi2rfwr.js","static/chunks/2tdvuc-27khif.js","static/chunks/3gjvl1p-tugfe.js","static/chunks/3kpqfqr99vo7z.js","static/chunks/2jio3sio-_43z.js","static/chunks/2_n0cpkdsjzli.js","static/chunks/1l0rt7d4m-xdk.js","static/chunks/3lladf_wemm-2.js","static/chunks/2a3iy701j4r_y.js","static/chunks/3s7hqij6xp_4e.js","static/chunks/3o_dmzpahx-5g.js","static/chunks/1iel4pzhhh-c3.js","static/chunks/15qfoj-vl9thu.js","static/chunks/166yqx3_qvbpy.js","static/chunks/0q8pt8fd0ma30.js","static/chunks/0gnjtwq-474uc.js"].map(t=>e.l(t))).then(()=>t(69546)))}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,82719,e=>{"use strict";var a=e.i(62478),i=e.i(75105),t=e.i(44520);class r extends a.FlowGraphExecutionBlockWithOutSignal{constructor(e){if(super(e),e.variables&&e.variable)throw Error("FlowGraphSetVariableBlock: variable and variables are both defined");if(e.variables)for(const a of e.variables)this.registerDataInput(a,i.RichTypeAny);else this.registerDataInput("value",i.RichTypeAny)}_execute(e,a){if(this.config?.variables)for(let a of this.config.variables)this._saveVariable(e,a);else this._saveVariable(e,this.config?.variable,"value");this.out._activateSignal(e)}_saveVariable(e,a,i){let t=e._getGlobalContextVariable("currentlyRunningAnimationGroups",[]);for(let i of t){let r=e.assetsContext.animationGroups.find(e=>e.uniqueId==i);if(r){for(let l of r.targetedAnimations)if(l.target===e&&l.animation.targetProperty===a){r.stop();let a=t.indexOf(i);a>-1&&t.splice(a,1),e._setGlobalContextVariable("currentlyRunningAnimationGroups",t);break}}}let r=this.getDataInput(i||a)?.getValue(e);e.setVariable(a,r)}getClassName(){return"FlowGraphSetVariableBlock"}serialize(e){super.serialize(e),e.config.variable=this.config?.variable}}let l=!1;function o(){l||(l=!0,(0,t.RegisterClass)("FlowGraphSetVariableBlock",r))}e.s(["FlowGraphSetVariableBlock",0,r,"RegisterFlowGraphSetVariableBlock",0,o],37307),o(),e.s([],60326),e.i(60326),e.i(37307),e.s(["FlowGraphSetVariableBlock",0,r],82719)}]);