@uptimizr/dashboard 0.3.0 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/out/404.html +1 -1
- package/out/__next.__PAGE__.txt +4 -4
- package/out/__next._full.txt +11 -11
- package/out/__next._head.txt +4 -4
- package/out/__next._index.txt +4 -4
- package/out/__next._tree.txt +2 -2
- package/out/_next/static/chunks/0-29qf-q72olu.js +1 -0
- package/out/_next/static/chunks/0-tk5ptli--r0.js +1 -0
- package/out/_next/static/chunks/006nix8mv66z_.js +1 -0
- package/out/_next/static/chunks/01aeari2x_tlz.js +1 -0
- package/out/_next/static/chunks/0296l8lzd69ns.js +1 -0
- package/out/_next/static/chunks/02tc9r3sc7fgc.js +1 -0
- package/out/_next/static/chunks/{256k1jw1m--l7.js → 03st_hmor6qju.js} +1 -1
- package/out/_next/static/chunks/{2ue1wo4ryk87z.js → 04pk6n3z75dcy.js} +1 -1
- package/out/_next/static/chunks/05l3dluxivcor.js +1 -0
- package/out/_next/static/chunks/06ljadw2-i91-.js +1 -0
- package/out/_next/static/chunks/06m_64ysu9kn0.js +1 -0
- package/out/_next/static/chunks/{2ycvtdd68gub7.js → 08bm3ye5govev.js} +1 -1
- package/out/_next/static/chunks/{32ahba5ezp467.js → 08rk1dp1wb-gm.js} +38 -38
- package/out/_next/static/chunks/091ll-lp6spu3.js +1 -0
- package/out/_next/static/chunks/09p5fltt7o3to.js +1 -0
- package/out/_next/static/chunks/{3mbnfpufs2-7e.js → 0_tqu60oxaj7q.js} +1 -1
- package/out/_next/static/chunks/{3riekaxl3uxfb.js → 0_ux41xcoea3u.js} +40 -40
- package/out/_next/static/chunks/0b7-mrrg7ryj2.js +1 -0
- package/out/_next/static/chunks/{29tfeb6amdkjb.js → 0c2k-gvwph4qs.js} +1 -1
- package/out/_next/static/chunks/0e7xuupmrw4-e.js +1 -0
- package/out/_next/static/chunks/0f_nv15a8q415.js +1 -0
- package/out/_next/static/chunks/0fxfsshoxnnh6.js +4 -0
- package/out/_next/static/chunks/0g6u34xkzrpjn.js +1 -0
- package/out/_next/static/chunks/0g7p8zp2kxve5.js +1 -0
- package/out/_next/static/chunks/0gblbgw7w7r9w.js +1 -0
- package/out/_next/static/chunks/0gwa154w_0wuh.js +1 -0
- package/out/_next/static/chunks/0h-ohf4gntwtj.js +1 -0
- package/out/_next/static/chunks/0h1o0cr3327tt.js +1 -0
- package/out/_next/static/chunks/0i9oqg-xbq-a9.js +1 -0
- package/out/_next/static/chunks/0ioyy42h35hnd.js +1 -0
- package/out/_next/static/chunks/{242xhzxxetctz.js → 0jf3n5n5yrr4o.js} +1 -1
- package/out/_next/static/chunks/{3idaz_s77e-j_.js → 0jxklh_ayjd4b.js} +12 -12
- package/out/_next/static/chunks/{07eeopuufsqp-.js → 0k79ryqehst0b.js} +11 -11
- package/out/_next/static/chunks/{3be6s4_kn9q-o.js → 0kcbdjbdxu_wa.js} +1 -1
- package/out/_next/static/chunks/0kr-bd6fuqc2s.js +1 -0
- package/out/_next/static/chunks/0l3wwyl93sqh9.js +1 -0
- package/out/_next/static/chunks/{3l1dr_qm_x5kp.js → 0m0n7kjzscx0y.js} +1 -1
- package/out/_next/static/chunks/0m3yjobjg36ce.js +1 -0
- package/out/_next/static/chunks/{1a9l89j7e6mqu.js → 0mk8tangq9equ.js} +1 -1
- package/out/_next/static/chunks/0mqi0xn_c010j.js +1 -0
- package/out/_next/static/chunks/0msckddycfy76.js +1 -0
- package/out/_next/static/chunks/0ngai1_zxwsk8.js +1 -0
- package/out/_next/static/chunks/0ngiuj5k-or6g.js +1 -0
- package/out/_next/static/chunks/0nx_t8iq-324h.js +1 -0
- package/out/_next/static/chunks/0oap0o8a8a_cl.js +1 -0
- package/out/_next/static/chunks/{3tm-pqpmq_ppw.js → 0ostjlqtwkhqr.js} +1 -1
- package/out/_next/static/chunks/{1uu-rt_8p1edp.js → 0ptp4ne7j6yg6.js} +11 -11
- package/out/_next/static/chunks/0rruvj1cyflrh.js +1 -0
- package/out/_next/static/chunks/{0o_mp98xzqfyf.js → 0tl8j9f8lt0yf.js} +1 -1
- package/out/_next/static/chunks/{0sqys6o2pbe1q.js → 0ufakw529sr9d.js} +38 -38
- package/out/_next/static/chunks/{3ne77mjdz2y7o.js → 0vddljjnmozzx.js} +1 -1
- package/out/_next/static/chunks/{0dm32-jq30tg8.js → 0w0sx062qmcsh.js} +1 -1
- package/out/_next/static/chunks/{0rys92_73hdb0.js → 0x4-zyy8pzmlq.js} +1 -1
- package/out/_next/static/chunks/0x6i6e6863tir.js +1 -0
- package/out/_next/static/chunks/{3k9d4ylc3li2t.js → 0zcdc17ie6lmh.js} +10 -10
- package/out/_next/static/chunks/{44nxswtahaq4w.js → 0zo4x1j8ug-kb.js} +5 -5
- package/out/_next/static/chunks/{0jmn7u31w95ly.js → 0zwkmsojeuekb.js} +2 -2
- package/out/_next/static/chunks/{3m6nmp2dca6un.js → 1--aypw9o8yng.js} +37 -37
- package/out/_next/static/chunks/1--kelnig7pxx.js +1 -0
- package/out/_next/static/chunks/1-ud6hztxiazp.js +1 -0
- package/out/_next/static/chunks/10v4rskkrjgd_.js +1 -0
- package/out/_next/static/chunks/117ys3lltfmcu.js +1 -0
- package/out/_next/static/chunks/14klj_i6-l-10.js +1 -0
- package/out/_next/static/chunks/159u-hx80yfaw.js +1 -0
- package/out/_next/static/chunks/{3gimb3z_mteou.js → 168r9r65o9jnc.js} +1 -1
- package/out/_next/static/chunks/{0w8_1yjvol1f0.js → 16d4a4iopj2if.js} +5 -5
- package/out/_next/static/chunks/{2z_jn9ud28fk7.js → 17d1isrw8gtnb.js} +1 -1
- package/out/_next/static/chunks/17dabmbnkkplu.js +1 -0
- package/out/_next/static/chunks/17dmbt396_tyq.js +1 -0
- package/out/_next/static/chunks/17ev44x54_jrd.js +1 -0
- package/out/_next/static/chunks/17svumd4o0qnc.js +1 -0
- package/out/_next/static/chunks/17v12p4sfraa0.js +1 -0
- package/out/_next/static/chunks/18avgwx9nlxp9.js +1 -0
- package/out/_next/static/chunks/{0tw4dyl-cp-hd.js → 18k-0jn63_5ie.js} +1 -1
- package/out/_next/static/chunks/18r387bj9iv0j.js +1 -0
- package/out/_next/static/chunks/18ss4ls60s31e.js +1 -0
- package/out/_next/static/chunks/1a7cup181rjod.js +1 -0
- package/out/_next/static/chunks/1ajmblsp0wj0_.js +1 -0
- package/out/_next/static/chunks/{1dsy2ngmfflis.js → 1b2tkk7e_2o0k.js} +2 -2
- package/out/_next/static/chunks/{1ltux4lwz7muf.js → 1bv97vf67p_ri.js} +33 -33
- package/out/_next/static/chunks/1e1zozntzsx42.js +1 -0
- package/out/_next/static/chunks/1ek5rtpo6rxev.js +1 -0
- package/out/_next/static/chunks/1evp209qbr4cr.js +5 -0
- package/out/_next/static/chunks/1f1vq3goue1w4.js +1 -0
- package/out/_next/static/chunks/{296w2ke-v5tbm.js → 1f92k-xa0pl-3.js} +1 -1
- package/out/_next/static/chunks/1fa265388524p.js +1 -0
- package/out/_next/static/chunks/1fruncg3k-3pu.js +3 -0
- package/out/_next/static/chunks/{1_qzlkuxukhpq.js → 1fvlbwp6r93wo.js} +22 -22
- package/out/_next/static/chunks/1g3z43o3h-024.js +31 -0
- package/out/_next/static/chunks/1g_27texazqcj.js +1 -0
- package/out/_next/static/chunks/1iaxzjly2pap1.js +1 -0
- package/out/_next/static/chunks/{0c83pe1mpx456.js → 1j--a56ji33_x.js} +1 -1
- package/out/_next/static/chunks/{112hws17nz665.js → 1kl5xxohpr6-4.js} +1 -1
- package/out/_next/static/chunks/1kmsg9ef5djl3.js +1 -0
- package/out/_next/static/chunks/1kq86iv41cet4.js +1 -0
- package/out/_next/static/chunks/1l12hkz1g7uhf.js +1 -0
- package/out/_next/static/chunks/{3figbil1t4ssj.js → 1ll0ta8a2qx1p.js} +16 -16
- package/out/_next/static/chunks/{1ynju1jqfrcv0.js → 1oara6fkfvgs3.js} +1 -1
- package/out/_next/static/chunks/1par9m038tiov.js +1 -0
- package/out/_next/static/chunks/1rcfy_gzean3n.js +1 -0
- package/out/_next/static/chunks/{35h5n42wxwgzk.js → 1rne-b-ktit5c.js} +2 -2
- package/out/_next/static/chunks/1t60cososq7b0.js +1 -0
- package/out/_next/static/chunks/1tdg_eolxlcdl.js +1 -0
- package/out/_next/static/chunks/1vkww9l6lgqag.js +1 -0
- package/out/_next/static/chunks/1vpcaaf-0dn7q.js +1 -0
- package/out/_next/static/chunks/1vzmzrjhlm1q5.js +1 -0
- package/out/_next/static/chunks/1w9xu1qa9-wmv.js +1 -0
- package/out/_next/static/chunks/1wyr4at61q29n.js +1 -0
- package/out/_next/static/chunks/{3_mu-4rdjajna.js → 1y12bjsbq18_t.js} +34 -34
- package/out/_next/static/chunks/1y20bv6vl4ylk.js +1 -0
- package/out/_next/static/chunks/{0tnlbw78tgaxp.js → 1zcrrq1fx8g2y.js} +2 -2
- package/out/_next/static/chunks/224_scesvd739.js +1 -0
- package/out/_next/static/chunks/229mkx-mtfcgf.js +1 -0
- package/out/_next/static/chunks/{3yfrsm8lfi6ls.js → 22qzld31fbhbv.js} +1 -1
- package/out/_next/static/chunks/245h82k-g1nxr.js +1 -0
- package/out/_next/static/chunks/24cqjhy669845.js +1 -0
- package/out/_next/static/chunks/25ctnyh7njp-d.js +4 -0
- package/out/_next/static/chunks/2716si10ouwu-.js +1 -0
- package/out/_next/static/chunks/286ggpetqnwyo.js +3 -0
- package/out/_next/static/chunks/28f1onw3nywbz.js +1 -0
- package/out/_next/static/chunks/28ycc-1519hl2.js +1 -0
- package/out/_next/static/chunks/{17xd8hnazzr0g.js → 29v8falcmjvev.js} +34 -33
- package/out/_next/static/chunks/{0o6ayai0s01js.js → 2_7dp91937mqi.js} +1 -1
- package/out/_next/static/chunks/2_hgfg-cjqw1-.js +1 -0
- package/out/_next/static/chunks/2ab-99frxpah-.js +1 -0
- package/out/_next/static/chunks/2apt1vh-7rl2l.js +1 -0
- package/out/_next/static/chunks/2bn9u9r0rfhvc.js +1 -0
- package/out/_next/static/chunks/{45bwefvdpztfs.js → 2btqzk0tj0gz6.js} +1 -1
- package/out/_next/static/chunks/2cvvxifoedn6j.js +1 -0
- package/out/_next/static/chunks/2dhv35o59yzao.js +1 -0
- package/out/_next/static/chunks/{17q0c2h5ui10r.js → 2dolerz81xb52.js} +1 -1
- package/out/_next/static/chunks/{2xwy0-qfho1iz.js → 2dqg85hsevk3c.js} +2 -2
- package/out/_next/static/chunks/{41wt50z9tx9cx.js → 2enlv4yy0t-9j.js} +12 -12
- package/out/_next/static/chunks/2ey30qeaob985.js +1 -0
- package/out/_next/static/chunks/2f0r-df7tb3pu.js +1 -0
- package/out/_next/static/chunks/2gh4z57fem0_v.js +1 -0
- package/out/_next/static/chunks/2gtebfttq1v0o.js +1 -0
- package/out/_next/static/chunks/{1ua15kzid0_8p.js → 2h051-1hu4co_.js} +9 -9
- package/out/_next/static/chunks/2h1uw3cluvmmo.js +1 -0
- package/out/_next/static/chunks/2ib62lnqqaf4p.js +1 -0
- package/out/_next/static/chunks/2j-sax2xfdv7l.js +1 -0
- package/out/_next/static/chunks/{3z84au-mitjjw.js → 2k4s5rt7-l8jr.js} +1 -1
- package/out/_next/static/chunks/2kje_jvmwsvwo.js +1 -0
- package/out/_next/static/chunks/{2cbmf9m7lqv6k.js → 2kn_dqzbyabtn.js} +1 -1
- package/out/_next/static/chunks/2ktxjmx03u9l3.js +1 -0
- package/out/_next/static/chunks/2kw33jl_i9o5j.css +3 -0
- package/out/_next/static/chunks/2l_oqx9idxcs8.js +1 -0
- package/out/_next/static/chunks/{42k2-4_2hrg6u.js → 2mleh3pbge181.js} +1 -1
- package/out/_next/static/chunks/{31u5lbu1vxznh.js → 2npk7tr63h7rl.js} +1 -1
- package/out/_next/static/chunks/2op88btas-hl8.js +1 -0
- package/out/_next/static/chunks/{1gs-5722l4u59.js → 2p8dbh81chhon.js} +1 -1
- package/out/_next/static/chunks/{2yph6f7khgqii.js → 2reukv9c7cq_9.js} +1 -1
- package/out/_next/static/chunks/{14ggsmqwej_tt.js → 2rjc8yn50ducj.js} +34 -34
- package/out/_next/static/chunks/2s0dwzg7kq36n.js +1 -0
- package/out/_next/static/chunks/2vaoftqgc44cg.js +1 -0
- package/out/_next/static/chunks/{3_gku1pwluoo0.js → 2vmybybb3dvia.js} +1 -1
- package/out/_next/static/chunks/2w7yf7ouyrlkb.js +1 -0
- package/out/_next/static/chunks/{3218lp8l0a5g_.js → 2y75diyxqlhzl.js} +1 -1
- package/out/_next/static/chunks/{0fh-9h9ylxskr.js → 2yr9wt421xdjr.js} +17 -17
- package/out/_next/static/chunks/{0otsec99kdkt7.js → 2yzui3v-besdu.js} +4 -4
- package/out/_next/static/chunks/{3wi9gzq2mtr_q.js → 2z9ot-w1x60fv.js} +1 -1
- package/out/_next/static/chunks/2zljunurdji0q.js +1 -0
- package/out/_next/static/chunks/30363ptka3vzy.js +1 -0
- package/out/_next/static/chunks/{38x3c1ra5slhe.js → 3043pprgv9ors.js} +23 -23
- package/out/_next/static/chunks/340pg0qkv5tqq.js +1 -0
- package/out/_next/static/chunks/{37epa8fz59vba.js → 348hdbpkkcq_2.js} +22 -21
- package/out/_next/static/chunks/34gp3hvr3j6um.js +1 -0
- package/out/_next/static/chunks/38ea9kqlbxt86.js +1 -0
- package/out/_next/static/chunks/38g9jpxjoxn2x.js +1 -0
- package/out/_next/static/chunks/390fogn9oz13i.js +1 -0
- package/out/_next/static/chunks/{3w9go565cjhq3.js → 39lxb7c--3_2u.js} +30 -30
- package/out/_next/static/chunks/39ojyykom0z2r.js +1 -0
- package/out/_next/static/chunks/{2bjlls8-qe05r.js → 3_bzxvqtk1t53.js} +12 -12
- package/out/_next/static/chunks/3ajhvedcs_lzb.js +1 -0
- package/out/_next/static/chunks/3bsvp8qhjqdu0.js +1 -0
- package/out/_next/static/chunks/{023axeoslq39i.js → 3d0ejsnhbzi-j.js} +1 -1
- package/out/_next/static/chunks/3d5yb9ybkz7hx.js +1 -0
- package/out/_next/static/chunks/{0echnagbkyx79.js → 3efuvh_35yhes.js} +39 -39
- package/out/_next/static/chunks/3fx3sriw1w3sa.js +1 -0
- package/out/_next/static/chunks/{2qq3uzsbiicw3.js → 3fz7tc-4j13uv.js} +21 -21
- package/out/_next/static/chunks/3g4e2txsrb2p2.js +1 -0
- package/out/_next/static/chunks/{1m_buecgcq67j.js → 3g5ae-38cepwm.js} +199 -199
- package/out/_next/static/chunks/3g_h_00xs9u59.js +1 -0
- package/out/_next/static/chunks/3gi0f1kg72xsf.js +1 -0
- package/out/_next/static/chunks/{38fhw7fatsyvd.js → 3he9bxsc67ivq.js} +1 -1
- package/out/_next/static/chunks/3hr-mlwi78nov.js +1 -0
- package/out/_next/static/chunks/3jha6wlqw8459.js +1 -0
- package/out/_next/static/chunks/3kr1polwvt6o_.js +1 -0
- package/out/_next/static/chunks/{0j__xaq_8_di1.js → 3mwoauxszd3mn.js} +1 -1
- package/out/_next/static/chunks/3ovd8o_usay7j.js +1 -0
- package/out/_next/static/chunks/3pdpaqzwhhijn.js +1 -0
- package/out/_next/static/chunks/3pyggl13glbdc.js +1 -0
- package/out/_next/static/chunks/3rl45k759wfi1.js +1 -0
- package/out/_next/static/chunks/{0flc7nppbmsl1.js → 3sbm1ak54_2ep.js} +1 -1
- package/out/_next/static/chunks/3sg4zff4-h3t1.js +1 -0
- package/out/_next/static/chunks/3urd7r018nel4.js +1 -0
- package/out/_next/static/chunks/3v0td-ziuai2i.js +1 -0
- package/out/_next/static/chunks/3vaho-xrtuchd.js +2 -0
- package/out/_next/static/chunks/3vxkkhs0vi_xa.js +1 -0
- package/out/_next/static/chunks/{1g7emwu85bifo.js → 3w1a2o8nevap8.js} +18 -18
- package/out/_next/static/chunks/3wqs57qehored.js +1 -0
- package/out/_next/static/chunks/3x6wpv_z5m6rz.js +1 -0
- package/out/_next/static/chunks/{1qg_etglhvp9h.js → 3y9c26fv1poq_.js} +199 -199
- package/out/_next/static/chunks/{0ql-s-tsmel_u.js → 404f_93w2e8ty.js} +1 -1
- package/out/_next/static/chunks/40acif2eh_unv.js +1 -0
- package/out/_next/static/chunks/{1hatz-jlztrn0.js → 4227p7752rnny.js} +1 -1
- package/out/_next/static/chunks/42oyfkhdvb-u3.js +1 -0
- package/out/_next/static/chunks/44gsjajjdhf51.js +1 -0
- package/out/_next/static/chunks/{turbopack-19105pdhzxp1x.js → turbopack-16ab30_1p4vhq.js} +1 -1
- package/out/_not-found/__next._full.txt +9 -9
- package/out/_not-found/__next._head.txt +4 -4
- package/out/_not-found/__next._index.txt +4 -4
- package/out/_not-found/__next._not-found.__PAGE__.txt +2 -2
- package/out/_not-found/__next._not-found.txt +3 -3
- package/out/_not-found/__next._tree.txt +2 -2
- package/out/_not-found.html +1 -1
- package/out/_not-found.txt +9 -9
- package/out/index.html +1 -1
- package/out/index.txt +11 -11
- package/package.json +8 -8
- package/out/_next/static/chunks/002cjeoit6-up.js +0 -1
- package/out/_next/static/chunks/02n1uiltexy3w.js +0 -1
- package/out/_next/static/chunks/03ab2khhe8-x5.js +0 -1
- package/out/_next/static/chunks/04_yytpc2paxy.js +0 -1
- package/out/_next/static/chunks/06qot1qvlsqaz.js +0 -1
- package/out/_next/static/chunks/08a5xek662n8n.js +0 -1
- package/out/_next/static/chunks/08wuc9--s8zn_.js +0 -1
- package/out/_next/static/chunks/0927l-ygd5c8d.js +0 -1
- package/out/_next/static/chunks/09510356f0lad.js +0 -1
- package/out/_next/static/chunks/0_eu72k69lxj7.js +0 -1
- package/out/_next/static/chunks/0beajlqy8p8b5.js +0 -1
- package/out/_next/static/chunks/0dn0yx0rn6mpf.js +0 -1
- package/out/_next/static/chunks/0eh1ml86u8dh7.js +0 -1
- package/out/_next/static/chunks/0fzmc1up21g1i.js +0 -1
- package/out/_next/static/chunks/0g_v2zswo4l6f.js +0 -1
- package/out/_next/static/chunks/0grlb9lo8e502.js +0 -1
- package/out/_next/static/chunks/0h22pg-0xrxnm.js +0 -1
- package/out/_next/static/chunks/0j6p1pmc14t96.js +0 -1
- package/out/_next/static/chunks/0j_6dx-sttgsy.js +0 -1
- package/out/_next/static/chunks/0kfd-cvj5fvtz.js +0 -1
- package/out/_next/static/chunks/0r47gs_e93cka.js +0 -1
- package/out/_next/static/chunks/0titqrn1qmcsv.js +0 -1
- package/out/_next/static/chunks/0tl_moiyi2txt.js +0 -1
- package/out/_next/static/chunks/0v82oqyoy9zol.js +0 -1
- package/out/_next/static/chunks/0vbce-8omgurc.js +0 -1
- package/out/_next/static/chunks/0vfsg5byzep_0.js +0 -1
- package/out/_next/static/chunks/0xh144a5fz58h.js +0 -1
- package/out/_next/static/chunks/0xjltg_pph0c8.js +0 -1
- package/out/_next/static/chunks/0yeqgh0dnas8d.js +0 -1
- package/out/_next/static/chunks/101-7e_7up7rk.js +0 -1
- package/out/_next/static/chunks/128e51hj_04r0.js +0 -1
- package/out/_next/static/chunks/12kv810lohbsx.js +0 -5
- package/out/_next/static/chunks/14bws-suyy5zu.js +0 -1
- package/out/_next/static/chunks/15s7425ffrec9.js +0 -3
- package/out/_next/static/chunks/17genz6pkmty_.js +0 -1
- package/out/_next/static/chunks/18dczy9ylt2s_.js +0 -1
- package/out/_next/static/chunks/18xs_kvsaolb0.js +0 -1
- package/out/_next/static/chunks/19016f8-ry0z6.js +0 -1
- package/out/_next/static/chunks/1_6oejyxj39li.js +0 -1
- package/out/_next/static/chunks/1_aon8nz9p1fr.js +0 -1
- package/out/_next/static/chunks/1akaj5rhgitn3.js +0 -1
- package/out/_next/static/chunks/1bvl1ws7b_3gn.js +0 -1
- package/out/_next/static/chunks/1cdbk6kxyr1c9.js +0 -1
- package/out/_next/static/chunks/1fbjkk55uu4_g.js +0 -1
- package/out/_next/static/chunks/1furcfsgrw_3g.js +0 -1
- package/out/_next/static/chunks/1g0-f1g3gn_rs.js +0 -1
- package/out/_next/static/chunks/1gt4kh0_xmigy.js +0 -1
- package/out/_next/static/chunks/1h8xzuuhhglu9.js +0 -1
- package/out/_next/static/chunks/1iioifo7i0t0_.js +0 -1
- package/out/_next/static/chunks/1iiz7jqgj20z0.js +0 -1
- package/out/_next/static/chunks/1kujmd5n0j9nk.js +0 -1
- package/out/_next/static/chunks/1n9sy0yt5d2vq.js +0 -1
- package/out/_next/static/chunks/1nj82er7msdto.js +0 -2
- package/out/_next/static/chunks/1p1gz6dseck--.js +0 -1
- package/out/_next/static/chunks/1p1xtsfwvpuqo.js +0 -1
- package/out/_next/static/chunks/1p8f6okk2ewbz.js +0 -1
- package/out/_next/static/chunks/1pdep2_c530sg.js +0 -1
- package/out/_next/static/chunks/1th_t5ujeqlkf.js +0 -1
- package/out/_next/static/chunks/1thr-mdzbu96v.js +0 -1
- package/out/_next/static/chunks/1tta1a064979p.js +0 -1
- package/out/_next/static/chunks/1u_riwm0nfww7.js +0 -1
- package/out/_next/static/chunks/1uu93wuxigx4k.js +0 -1
- package/out/_next/static/chunks/1vuq3dos1406d.css +0 -3
- package/out/_next/static/chunks/1zfojlgb15okk.js +0 -1
- package/out/_next/static/chunks/1zj8x5wbgnzz-.js +0 -1
- package/out/_next/static/chunks/1zl6t15gh34nn.js +0 -1
- package/out/_next/static/chunks/2-qo2o1_fmpy-.js +0 -3
- package/out/_next/static/chunks/223vrr_4sfhsj.js +0 -1
- package/out/_next/static/chunks/22cr2b04btguf.js +0 -1
- package/out/_next/static/chunks/24essz5mmvx-6.js +0 -1
- package/out/_next/static/chunks/259obyrpxcv6r.js +0 -1
- package/out/_next/static/chunks/26v9yqicofqba.js +0 -1
- package/out/_next/static/chunks/2712627rfsmwn.js +0 -1
- package/out/_next/static/chunks/290d93hmm_e8b.js +0 -1
- package/out/_next/static/chunks/2_2fk7iddrs43.js +0 -1
- package/out/_next/static/chunks/2ckd7f1wbfod-.js +0 -1
- package/out/_next/static/chunks/2d6hru4qo23tt.js +0 -1
- package/out/_next/static/chunks/2ejvntxtvf5o9.js +0 -1
- package/out/_next/static/chunks/2f7_3tzf7xhps.js +0 -1
- package/out/_next/static/chunks/2gxd_o1g89_bv.js +0 -1
- package/out/_next/static/chunks/2hd2txb4-m9k1.js +0 -1
- package/out/_next/static/chunks/2hpxou_cnp4f_.js +0 -1
- package/out/_next/static/chunks/2izioctrfc0s5.js +0 -1
- package/out/_next/static/chunks/2jhnk4h4n0udv.js +0 -1
- package/out/_next/static/chunks/2jpkhkk9zi8-f.js +0 -1
- package/out/_next/static/chunks/2kpet_l1kq2sx.js +0 -1
- package/out/_next/static/chunks/2nck5w4c7leb7.js +0 -1
- package/out/_next/static/chunks/2qqqpu0ahfdda.js +0 -1
- package/out/_next/static/chunks/2r3ct6se2qn8z.js +0 -1
- package/out/_next/static/chunks/2u-f7mmxvk8wj.js +0 -1
- package/out/_next/static/chunks/2uk-vwlxe9-xr.js +0 -1
- package/out/_next/static/chunks/2ur5-lxdvv1jm.js +0 -1
- package/out/_next/static/chunks/2veqsohwfhfqc.js +0 -1
- package/out/_next/static/chunks/2vqlv9wnewhu9.js +0 -1
- package/out/_next/static/chunks/2wzshintp5lf8.js +0 -1
- package/out/_next/static/chunks/2x-00glogc485.js +0 -1
- package/out/_next/static/chunks/2yfxy0f5fqs4o.js +0 -1
- package/out/_next/static/chunks/2z88mt3ixktu3.js +0 -1
- package/out/_next/static/chunks/3-eswqjobiqk1.js +0 -1
- package/out/_next/static/chunks/30-tbi7pys6fp.js +0 -4
- package/out/_next/static/chunks/30c-nsedy_ce0.js +0 -1
- package/out/_next/static/chunks/337hn35kts7ud.js +0 -1
- package/out/_next/static/chunks/33dgpebv-tf73.js +0 -1
- package/out/_next/static/chunks/36jkdhq6kb-cf.js +0 -1
- package/out/_next/static/chunks/3833xfnz0a-ub.js +0 -1
- package/out/_next/static/chunks/38awrh_qxn22k.js +0 -1
- package/out/_next/static/chunks/39idqlqlcp5b9.js +0 -1
- package/out/_next/static/chunks/3coacc4-g-g5c.js +0 -1
- package/out/_next/static/chunks/3e00fzdfkclzq.js +0 -1
- package/out/_next/static/chunks/3e8fmlq0k5wkg.js +0 -1
- package/out/_next/static/chunks/3e9tzyrt4_98z.js +0 -1
- package/out/_next/static/chunks/3edelqkq92pil.js +0 -1
- package/out/_next/static/chunks/3j-4wuhs5weba.js +0 -1
- package/out/_next/static/chunks/3jjfnwvybayy7.js +0 -1
- package/out/_next/static/chunks/3jwm5dfk_78gc.js +0 -1
- package/out/_next/static/chunks/3l3_0ack3gy4k.js +0 -1
- package/out/_next/static/chunks/3lwhs5ja7tun3.js +0 -1
- package/out/_next/static/chunks/3mcd08gmt038z.js +0 -1
- package/out/_next/static/chunks/3mt5th7b1i_u9.js +0 -1
- package/out/_next/static/chunks/3puhrqtujktyv.js +0 -1
- package/out/_next/static/chunks/3rdifucupcgkg.js +0 -1
- package/out/_next/static/chunks/3sdoskq_buttj.js +0 -1
- package/out/_next/static/chunks/3sjq_xoi4rbyg.js +0 -31
- package/out/_next/static/chunks/3tg-ma9tv9xu4.js +0 -1
- package/out/_next/static/chunks/3xagd_2_9zft2.js +0 -1
- package/out/_next/static/chunks/3xsq_anpad-fb.js +0 -1
- package/out/_next/static/chunks/3ycv2qq7vpbua.js +0 -1
- package/out/_next/static/chunks/4030dhur2h70-.js +0 -1
- package/out/_next/static/chunks/40ffffml4h_3r.js +0 -4
- package/out/_next/static/chunks/431slrqh0wa0g.js +0 -1
- package/out/_next/static/chunks/43s_lbd1i2krj.js +0 -1
- /package/out/_next/static/{1NTbwHeIsn3AW-SeH9aP0 → 2AsIePMYsPfJoAl46w-g4}/_buildManifest.js +0 -0
- /package/out/_next/static/{1NTbwHeIsn3AW-SeH9aP0 → 2AsIePMYsPfJoAl46w-g4}/_clientMiddlewareManifest.js +0 -0
- /package/out/_next/static/{1NTbwHeIsn3AW-SeH9aP0 → 2AsIePMYsPfJoAl46w-g4}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,13329,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"BailoutToCSR",{enumerable:!0,get:function(){return l}});let n=e.r(65711);function l({reason:e,children:t}){if("u"<typeof window)throw Object.defineProperty(new n.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t}},18316,(e,t,s)=>{"use strict";function n(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"encodeURIPath",{enumerable:!0,get:function(){return n}})},18480,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"PreloadChunks",{enumerable:!0,get:function(){return o}});let n=e.r(28100),l=e.r(49698),r=e.r(75126),a=e.r(18316),i=e.r(60177);function o({moduleIds:e}){if("u">typeof window)return null;let t=r.workAsyncStorage.getStore();if(void 0===t)return null;let s=[];if(t.reactLoadableManifest&&e){let n=t.reactLoadableManifest;for(let t of e){if(!n[t])continue;let e=n[t].files;s.push(...e)}}if(0===s.length)return null;let c=(0,i.getAssetTokenQuery)();return(0,n.jsx)(n.Fragment,{children:s.map(e=>{let s=`${t.assetPrefix}/_next/${(0,a.encodeURIPath)(e)}${c}`;return e.endsWith(".css")?(0,n.jsx)("link",{precedence:"dynamic",href:s,rel:"stylesheet",as:"style",nonce:t.nonce},e):((0,l.preload)(s,{as:"script",fetchPriority:"low",nonce:t.nonce}),null)})})}},61401,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"default",{enumerable:!0,get:function(){return c}});let n=e.r(28100),l=e.r(11623),r=e.r(13329),a=e.r(18480);function i(e){return{default:e&&"default"in e?e.default:e}}let o={loader:()=>Promise.resolve(i(()=>null)),loading:null,ssr:!0},c=function(e){let t={...o,...e},s=(0,l.lazy)(()=>t.loader().then(i)),c=t.loading;function d(e){let i=c?(0,n.jsx)(c,{isLoading:!0,pastDelay:!0,error:null}):null,o=!t.ssr||!!t.loading,d=o?l.Suspense:l.Fragment,u=t.ssr?(0,n.jsxs)(n.Fragment,{children:["u"<typeof window?(0,n.jsx)(a.PreloadChunks,{moduleIds:t.modules}):null,(0,n.jsx)(s,{...e})]}):(0,n.jsx)(r.BailoutToCSR,{reason:"next/dynamic",children:(0,n.jsx)(s,{...e})});return(0,n.jsx)(d,{...o?{fallback:i}:{},children:u})}return d.displayName="LoadableComponent",d}},61776,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"default",{enumerable:!0,get:function(){return l}});let n=e.r(81258)._(e.r(61401));function l(e,t){let s={};"function"==typeof e&&(s.loader=e);let l={...s,...t};return(0,n.default)({...l,modules:l.loadableGenerated?.modules})}("function"==typeof s.default||"object"==typeof s.default&&null!==s.default)&&void 0===s.default.__esModule&&(Object.defineProperty(s.default,"__esModule",{value:!0}),Object.assign(s.default,s),t.exports=s.default)},14936,e=>{"use strict";var t=e.i(37998),s=e.i(28100),n=e.i(61776),l=e.i(11623),r=e.i(82665),a=e.i(20880);let i={window:"1h"},o=[{id:"1h",label:"Last hour"},{id:"24h",label:"Last 24h"},{id:"7d",label:"Last 7 days"},{id:"all",label:"All time"}],c={"1h":36e5,"24h":864e5,"7d":6048e5};function d(e,t=Date.now()){return"all"===e.window?{}:"custom"===e.window?{since:e.since,until:e.until}:{since:t-c[e.window],until:t}}function u(e,t=Date.now()){return{...d(e,t),scene:e.scene&&e.scene.length>0?e.scene:void 0,source:e.source,cameraMode:e.cameraMode}}let m=[60,300,900,1800,3600,10800,21600,43200,86400,604800];function x(e,t=80){let s=Math.max(60,Math.round(e/t/1e3));return m.find(e=>e>=s)??604800}function p(e){return"xr-controller"===e?"XR controller":e.charAt(0).toUpperCase()+e.slice(1)}let h=["mouse","touch","stylus","pen","xr-controller","hand","gaze","transient","other"];var g=e.i(56054);function f(e,t=1){let[s,n,l]=(0,g.heatRgb)(e);return`rgba(${Math.round(255*s)}, ${Math.round(255*n)}, ${Math.round(255*l)}, ${t})`}function b(e,t=0){return Number.isFinite(e)?e.toLocaleString(void 0,{maximumFractionDigits:t}):"—"}var v=e.i(60614),j=e.i(88725);let y=e=>import(e);async function w(e,t={}){var s;let n,l=t.fetchImpl??fetch;try{let s=await l(e,{signal:t.signal});if(!s.ok)return{source:e,code:"manifest-fetch",message:`HTTP ${s.status}`};n=await s.json()}catch(t){return{source:e,code:"manifest-fetch",message:S(t)}}return"object"==typeof(s=n)&&null!==s&&"number"==typeof s.version&&Array.isArray(s.panels)&&s.panels.every(e=>"object"==typeof e&&null!==e&&"string"==typeof e.url&&e.url.length>0&&"number"==typeof e.contract&&(void 0===e.export||"string"==typeof e.export)&&(void 0===e.id||"string"==typeof e.id))?n:{source:e,code:"manifest-invalid",message:"Manifest shape is invalid"}}async function N(e,t={}){let s=t.importModule??y,n=[],l=[];for(let r of(await Promise.all(e.panels.map(e=>k(e,s,t.allowOrigins)))))"panel"in r?n.push(r.panel):l.push(r.error);return{panels:n,errors:l}}async function k(e,t,s){var n;let l,r,a=e.url;if(1!==e.contract)return{error:{source:a,code:"incompatible",message:`Panel declares contract ${e.contract}; host requires 1`}};if(!function(e,t){let s;if(!t||0===t.length)return!0;try{s=new URL(e).origin}catch{return!1}return t.includes(s)}(e.url,s))return{error:{source:a,code:"origin-blocked",message:"Module origin is not in the allowlist"}};try{l=await t(e.url)}catch(e){return{error:{source:a,code:"import-failed",message:S(e)}}}let i=e.export??"default",o=void 0!==(r=(n=l)[i])?r:"default"===i&&void 0!==n.panel?n.panel:void 0;return void 0===o?{error:{source:a,code:"export-missing",message:`No "${i}" export found`}}:"object"==typeof o&&null!==o&&"string"==typeof o.id&&0!==o.id.length&&"string"==typeof o.title&&"function"==typeof o.render&&(void 0===o.load||"function"==typeof o.load)&&(void 0===o.enabled||"function"==typeof o.enabled)&&(void 0===o.span||1===o.span||2===o.span)&&(void 0===o.surfaces||Array.isArray(o.surfaces))&&1?{panel:o}:{error:{source:a,code:"invalid-panel",message:"Export is not a valid PanelDefinition"}}}function S(e){return e instanceof Error?e.message:String(e)}var M=l;let P={hidden:[],settings:{}},C={load:()=>P,save:()=>{}};var _=e.i(93425);function z({panelId:e,spec:t,values:n,onChange:r,onReset:a,showReset:i=!0}){let o=(0,l.useId)(),c=Object.keys(t);return 0===c.length?null:(0,s.jsxs)("div",{className:"space-y-3","data-panel-settings":e,children:[c.map(e=>{let l=t[e];if(!l)return null;let a=`${o}-${e}`,i=l.label??e;return(0,s.jsxs)("div",{className:"space-y-1",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,s.jsx)("label",{htmlFor:a,className:"text-xs font-medium text-fg",children:i}),"number"===l.type?(0,s.jsxs)("span",{className:"text-xs tabular-nums text-fg-muted",children:[String(n[e]),l.unit?` ${l.unit}`:""]}):null]}),"number"===l.type?(0,s.jsx)("input",{id:a,type:"range",className:"w-full accent-amber",min:l.min,max:l.max,step:l.step??1,value:Number(n[e]),onChange:t=>r(e,Number(t.target.value))}):null,"boolean"===l.type?(0,s.jsxs)("label",{htmlFor:a,className:"flex items-center gap-2 text-xs text-fg-muted",children:[(0,s.jsx)("input",{id:a,type:"checkbox",className:"accent-amber",checked:!!n[e],onChange:t=>r(e,t.target.checked)}),l.help??"Enabled"]}):null,"select"===l.type?(0,s.jsx)("select",{id:a,className:"w-full rounded-md border border-edge bg-ink px-2 py-1 text-xs text-fg",value:String(n[e]),onChange:t=>r(e,t.target.value),children:l.options.map(e=>(0,s.jsx)("option",{value:e.value,children:e.label??e.value},e.value))}):null,"boolean"!==l.type&&l.help?(0,s.jsx)("p",{className:"text-[11px] leading-tight text-fg-muted",children:l.help}):null]},e)}),i?(0,s.jsx)("button",{type:"button",onClick:a,className:"text-[11px] text-fg-muted underline-offset-2 transition hover:text-amber hover:underline",children:"Reset to defaults"}):null]})}function R({panels:e,ctx:t,surface:n,revision:r=0}){let a=function(e,t){let s=(0,l.useMemo)(()=>{var t;let s;return(void 0)??(t=`uptimizr:dashboard:panels:${e}`,(s=window.localStorage?window.localStorage:null)?{load(){try{let e=s.getItem(t);return e?function(e){if(!e||"object"!=typeof e)return P;let t=Array.isArray(e.hidden)?e.hidden.filter(e=>"string"==typeof e):[],s={};if(e.settings&&"object"==typeof e.settings)for(let[t,n]of Object.entries(e.settings)){if(!n||"object"!=typeof n)continue;let e={};for(let[t,s]of Object.entries(n))("number"==typeof s||"boolean"==typeof s||"string"==typeof s)&&(e[t]=s);Object.keys(e).length>0&&(s[t]=e)}return{hidden:t,settings:s}}(JSON.parse(e)):P}catch{return P}},save(e){try{0===e.hidden.length&&0===Object.keys(e.settings).length?s.removeItem(t):s.setItem(t,JSON.stringify(e))}catch{}}}:C)},[void 0,e]),[n,r]=(0,l.useState)(P),[a,i]=(0,l.useState)(!1),o=(0,l.useRef)(t);o.current=t,(0,l.useEffect)(()=>{r(s.load()),i(!0)},[s]);let c=(0,l.useCallback)(e=>{r(e),s.save(e)},[s]),d=(0,l.useCallback)(e=>{r(t=>{if(t.hidden.includes(e))return t;let n={...t,hidden:[...t.hidden,e]};return s.save(n),n})},[s]),u=(0,l.useCallback)(e=>{r(t=>{if(!t.hidden.includes(e))return t;let n={...t,hidden:t.hidden.filter(t=>t!==e)};return s.save(n),n})},[s]),m=(0,l.useCallback)(()=>{r(e=>{if(0===e.hidden.length)return e;let t={...e,hidden:[]};return s.save(t),t})},[s]),x=(0,l.useCallback)((e,t,n)=>{r(l=>{let r={...l.settings[e]??{},[t]:n},a=function(e,t){let s={};if(!e)return s;for(let n of Object.keys(t)){let l=e[n];l&&t[n]!==l.default&&(s[n]=t[n])}return s}(o.current(e),r),i={...l.settings};Object.keys(a).length>0?i[e]=a:delete i[e];let c={...l,settings:i};return s.save(c),c})},[s]),p=(0,l.useCallback)(e=>{r(t=>{if(!t.settings[e])return t;let n={...t.settings};delete n[e];let l={...t,settings:n};return s.save(l),l})},[s]),h=(0,l.useCallback)(e=>n.settings[e]??{},[n]),g=(0,l.useCallback)(e=>n.hidden.includes(e),[n]);return{hydrated:a,hidden:n.hidden,isHidden:g,hide:d,show:u,showAll:m,overridesFor:h,setSetting:x,resetSettings:p,replace:c}}(n,(0,M.useCallback)(t=>e.find(e=>e.id===t)?.settings,[e])),i=(0,M.useMemo)(()=>e.filter(e=>(e.surfaces??["overview"]).includes(n)).map(e=>{let s=function(e,t){let s={};if(!e)return s;for(let n of Object.keys(e))s[n]=function(e,t){switch(e.type){case"number":var s,n;let l;if("number"!=typeof t||!Number.isFinite(t))return e.default;return s=e.min,n=e.max,l=t,"number"==typeof s&&l<s&&(l=s),"number"==typeof n&&l>n&&(l=n),l;case"boolean":return"boolean"==typeof t?t:e.default;case"select":if("string"!=typeof t)return e.default;return e.options.some(e=>e.value===t)?t:e.default}}(e[n],t?.[n]);return s}(e.settings,a.overridesFor(e.id));return{panel:e,panelCtx:{...t,settings:s}}}).filter(({panel:e,panelCtx:t})=>{if(!e.enabled)return!0;try{return e.enabled(t)}catch(t){return console.error(`Panel "${e.id}" enabled() threw; hiding it`,t),!1}}),[e,n,t,a]),o=a.hydrated?i.filter(({panel:e})=>!a.isHidden(e.id)):i,c=a.hydrated?i.filter(({panel:e})=>a.isHidden(e.id)):[];return(0,s.jsxs)(s.Fragment,{children:[c.length>0?(0,s.jsx)("div",{className:"lg:col-span-2",children:(0,s.jsx)(T,{hidden:c.map(({panel:e})=>({id:e.id,title:e.title})),onRestore:a.show,onRestoreAll:a.showAll})}):null,o.map(({panel:e,panelCtx:t})=>(0,s.jsx)("div",{className:2===e.span?"lg:col-span-2":void 0,children:(0,s.jsx)(A,{panel:e,ctx:t,revision:r,onHide:()=>a.hide(e.id),settingsForm:e.settings?(0,s.jsx)(z,{panelId:e.id,spec:e.settings,values:t.settings,onChange:(t,s)=>a.setSetting(e.id,t,s),onReset:()=>a.resetSettings(e.id)}):void 0})},e.id))]})}function T({hidden:e,onRestore:t,onRestoreAll:n}){return(0,s.jsxs)("section",{className:"flex flex-wrap items-center gap-2 rounded-xl border border-dashed border-edge bg-panel/60 px-4 py-2.5 text-xs text-fg-muted",children:[(0,s.jsxs)("span",{className:"font-medium uppercase tracking-wide",children:["Hidden panels (",e.length,")"]}),e.map(e=>(0,s.jsxs)("button",{type:"button",onClick:()=>t(e.id),className:"rounded-md border border-edge px-2 py-1 text-fg transition hover:border-amber hover:text-fg-hi",children:["+ ",e.title]},e.id)),(0,s.jsx)("button",{type:"button",onClick:n,className:"ml-auto text-fg-muted underline-offset-2 transition hover:text-amber hover:underline",children:"Show all"})]})}function A({panel:e,ctx:t,revision:n,onHide:r,settingsForm:a}){let{data:i,loading:o,error:c}=function(e,t,s=0){let[n,r]=(0,l.useState)({data:null,loading:!!e.load,error:null}),a=JSON.stringify({params:t.params,settings:t.settings});return(0,l.useEffect)(()=>{if(!e.load)return void r({data:null,loading:!1,error:null});let s=!0,n=new AbortController;return r(e=>({...e,loading:!0,error:null})),e.load({...t,signal:n.signal}).then(e=>{s&&r({data:e,loading:!1,error:null})},e=>{s&&!n.signal.aborted&&r({data:null,loading:!1,error:e instanceof Error?e:Error(String(e))})}),()=>{s=!1,n.abort()}},[e,a,t.surface,t.sessionId,s]),n}(e,t,n),d="function"==typeof e.subtitle?e.subtitle(t):e.subtitle,u=o&&!!e.load&&null==i,m=function(){let[e,t]=(0,M.useState)(!1);return(0,M.useEffect)(()=>t(!0),[]),e}(),x=!e.clientOnly||m;return(0,s.jsx)(_.Panel,{title:e.title,subtitle:d,help:e.help,collapsible:e.collapsible,onHide:r,settings:a,children:x?c?(0,s.jsxs)("p",{className:"text-sm text-fg-muted",children:["Could not load: ",c.message]}):u?(0,s.jsx)("p",{className:"text-sm text-fg-muted",children:"Loading…"}):(0,s.jsx)(E,{panelId:e.id,children:e.render({data:i,ctx:t})}):null})}class E extends M.Component{state={error:null};static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e){console.error(`Panel "${this.props.panelId}" failed to render`,e)}componentDidUpdate(e){e.panelId!==this.props.panelId&&this.state.error&&this.setState({error:null})}render(){return this.state.error?(0,s.jsxs)("p",{className:"text-sm text-fg-muted",children:["Could not render: ",this.state.error.message]}):this.props.children}}var I=e.i(18637);function $({bins:e,cellSize:t}){let n=(0,l.useRef)(null);return(0,l.useEffect)(()=>{let t=n.current;if(!t)return;let s=t.getContext("2d");if(!s||(s.clearRect(0,0,360,360),s.fillStyle="#0b0e14",s.fillRect(0,0,360,360),0===e.length))return;let l=1/0,r=-1/0,a=1/0,i=-1/0,o=0;for(let t of e)t.gx<l&&(l=t.gx),t.gx>r&&(r=t.gx),t.gz<a&&(a=t.gz),t.gz>i&&(i=t.gz),t.count>o&&(o=t.count);let c=344/Math.max(r-l+1,i-a+1);for(let t of e){s.fillStyle=f(o>0?t.count/o:0,.9);let e=8+(t.gx-l)*c,n=8+(i-t.gz)*c;s.fillRect(e,n,Math.ceil(c),Math.ceil(c))}},[e,t]),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"flex justify-center",children:(0,s.jsxs)("div",{className:"relative inline-block",children:[(0,s.jsx)("canvas",{ref:n,width:360,height:360,className:"rounded-lg border border-edge","aria-label":"Floor-plan position heatmap"}),e.length>0?(0,s.jsx)(I.HeatLegend,{title:"Dwell density",lowLabel:"rarely",highLabel:"most",note:`${t} m cells`}):null]})}),0===e.length?(0,s.jsx)("p",{className:"mt-2 text-center text-xs text-fg-muted",children:"No camera-position data in range. Capture a first-person session to populate the plan."}):null]})}function D({points:e}){let t=(0,l.useRef)(null);return(0,l.useEffect)(()=>{let s=t.current;if(!s)return;let n=s.getContext("2d");if(!n||(n.clearRect(0,0,360,360),n.fillStyle="#0b0e14",n.fillRect(0,0,360,360),0===e.length))return;let l=1/0,r=-1/0,a=1/0,i=-1/0;for(let t of e)t.gx<l&&(l=t.gx),t.gx>r&&(r=t.gx),t.gz<a&&(a=t.gz),t.gz>i&&(i=t.gz);let o=344/Math.max(r-l+1,i-a+1),c=(e,t)=>[8+(e-l+.5)*o,8+(i-t+.5)*o],d=function(e){let t=new Map;for(let s of e){let e=t.get(s.session_id);e||(e=[],t.set(s.session_id,e));let n=e[e.length-1];n&&n.gx===s.gx&&n.gz===s.gz||e.push({gx:s.gx,gz:s.gz})}return[...t.values()].map(e=>({cells:e}))}(e);for(let e of(n.lineWidth=2,n.lineJoin="round",n.lineCap="round",n.globalCompositeOperation="lighter",n.strokeStyle="rgba(251, 191, 36, 0.18)",d)){if(e.cells.length<2)continue;n.beginPath();let[t,s]=c(e.cells[0].gx,e.cells[0].gz);n.moveTo(t,s);for(let t=1;t<e.cells.length;t++){let[s,l]=c(e.cells[t].gx,e.cells[t].gz);n.lineTo(s,l)}n.stroke()}n.globalCompositeOperation="source-over"},[e]),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"flex justify-center",children:(0,s.jsx)("canvas",{ref:t,width:360,height:360,className:"rounded-lg border border-edge","aria-label":"Aggregate desire-line paths"})}),0===e.length?(0,s.jsx)("p",{className:"mt-2 text-center text-xs text-fg-muted",children:"No camera-path data in range. Capture first-person sessions to populate the desire lines."}):null]})}let F={hover:"#60a5fa",pick:"#34d399",click:"#fbbf24",drag:"#f472b6",select:"#a78bfa",squeeze:"#fb7185",grab:"#22d3ee",release:"#94a3b8",teleport:"#f59e0b"};function L(e){return F[e]??"#64748b"}function O({rows:e,topN:t=8}){let n=function(e,t){let s=new Map;for(let t of e){let e=s.get(t.mesh);e||(e={mesh:t.mesh,total:0,kinds:[]},s.set(t.mesh,e)),e.kinds.push({kind:t.kind,count:t.count}),e.total+=t.count}let n=[...s.values()].sort((e,t)=>t.total-e.total).slice(0,t);for(let e of n)e.kinds.sort((e,t)=>t.count-e.count);return n}(e,t);if(0===n.length)return(0,s.jsx)("p",{className:"text-sm text-fg-muted",children:"No mesh interactions in range."});let l=[...new Set(e.map(e=>e.kind))];return(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsx)("ul",{className:"space-y-2",children:n.map(e=>(0,s.jsxs)("li",{className:"text-sm",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,s.jsx)("span",{className:"truncate font-mono text-xs text-fg",children:e.mesh}),(0,s.jsx)("span",{className:"tabular-nums text-fg-muted",children:b(e.total)})]}),(0,s.jsx)("div",{className:"mt-1 flex h-2 w-full overflow-hidden rounded bg-ink/60",children:e.kinds.map(t=>(0,s.jsx)("div",{className:"h-full",style:{width:`${e.total>0?t.count/e.total*100:0}%`,backgroundColor:L(t.kind)},title:`${t.kind}: ${b(t.count)}`},t.kind))})]},e.mesh))}),(0,s.jsx)("ul",{className:"flex flex-wrap gap-x-3 gap-y-1",children:l.map(e=>(0,s.jsxs)("li",{className:"flex items-center gap-1.5 text-xs text-fg-muted",children:[(0,s.jsx)("span",{className:"inline-block h-2 w-2 rounded-sm",style:{backgroundColor:L(e)}}),e]},e))})]})}let U={mouse:"#60a5fa",touch:"#34d399",stylus:"#a78bfa",pen:"#a78bfa","xr-controller":"#fbbf24",hand:"#f472b6",gaze:"#22d3ee",transient:"#fb7185",keyboard:"#f59e0b",gamepad:"#c084fc",other:"#94a3b8"};function B(e){return U[e]??"#64748b"}function H({buckets:e}){if(e.length<2)return(0,s.jsx)("span",{className:"text-[10px] text-fg-muted",children:"—"});let t=e.reduce((e,t)=>Math.max(e,t),0)||1;return(0,s.jsx)("div",{className:"flex h-5 items-end gap-px","aria-hidden":!0,children:e.map((e,n)=>(0,s.jsx)("div",{className:"w-1 rounded-sm bg-sky-400/70",style:{height:`${Math.max(8,e/t*100)}%`}},n))})}function G({delta:e}){return e>0?(0,s.jsxs)("span",{className:"tabular-nums text-xs text-emerald-400",children:["▲ ",b(e)]}):e<0?(0,s.jsxs)("span",{className:"tabular-nums text-xs text-rose-400",children:["▼ ",b(-e)]}):(0,s.jsx)("span",{className:"text-xs text-fg-muted",children:"—"})}function K({sources:e,trend:t,topN:n=8}){let l=function(e,t,s){let n=new Map;for(let t of e){let e=n.get(t.mesh);e||(e={total:0,sources:new Map},n.set(t.mesh,e)),e.total+=t.count,e.sources.set(t.source,(e.sources.get(t.source)??0)+t.count)}let l=new Map;for(let e of t){let t=l.get(e.mesh);t?t.push(e):l.set(e.mesh,[e])}return[...n.entries()].map(([e,t])=>{let s=(l.get(e)??[]).slice().sort((e,t)=>e.bucket-t.bucket).map(e=>e.count),n=Math.floor(s.length/2),r=s.slice(0,n).reduce((e,t)=>e+t,0),a=s.slice(n).reduce((e,t)=>e+t,0);return{mesh:e,total:t.total,sources:[...t.sources.entries()].map(([e,t])=>({source:e,count:t})).sort((e,t)=>t.count-e.count),buckets:s,delta:a-r}}).sort((e,t)=>t.total-e.total).slice(0,s)}(e,t,n);return 0===l.length?(0,s.jsx)("p",{className:"text-sm text-fg-muted",children:"No mesh interactions in range."}):(0,s.jsx)("ol",{className:"space-y-2",children:l.map((e,t)=>(0,s.jsx)("li",{className:"text-sm",children:(0,s.jsxs)("details",{className:"group",children:[(0,s.jsxs)("summary",{className:"flex cursor-pointer list-none items-center gap-3",children:[(0,s.jsx)("span",{className:"w-5 shrink-0 text-right tabular-nums text-xs text-fg-muted",children:t+1}),(0,s.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-xs text-fg",children:e.mesh}),(0,s.jsx)(H,{buckets:e.buckets}),(0,s.jsx)(G,{delta:e.delta}),(0,s.jsx)("span",{className:"w-12 shrink-0 text-right tabular-nums text-fg-muted",children:b(e.total)})]}),(0,s.jsx)("ul",{className:"mt-1.5 space-y-1 pl-8",children:e.sources.map(t=>(0,s.jsxs)("li",{className:"flex items-center gap-2 text-xs",children:[(0,s.jsx)("span",{className:"inline-block h-2 w-2 shrink-0 rounded-sm",style:{backgroundColor:B(t.source)}}),(0,s.jsx)("span",{className:"w-24 shrink-0 truncate text-fg-muted",children:t.source}),(0,s.jsx)("div",{className:"h-1.5 flex-1 overflow-hidden rounded bg-ink/60",children:(0,s.jsx)("div",{className:"h-full rounded",style:{width:`${e.total>0?t.count/e.total*100:0}%`,backgroundColor:B(t.source)}})}),(0,s.jsx)("span",{className:"w-10 shrink-0 text-right tabular-nums text-fg-muted",children:b(t.count)})]},t.source))})]})},e.mesh))})}let V={mouse:"#60a5fa",touch:"#34d399",stylus:"#a78bfa",pen:"#a78bfa","xr-controller":"#fbbf24",hand:"#f472b6",gaze:"#22d3ee",transient:"#fb7185",keyboard:"#f59e0b",gamepad:"#c084fc",other:"#94a3b8"};function W(e){return V[e]??"#64748b"}function X({sources:e,actions:t,topActions:n=8}){let l=function(e){let t=new Map;for(let s of e)t.set(s.source,(t.get(s.source)??0)+s.count);let s=[...t.values()].reduce((e,t)=>e+t,0);return[...t.entries()].map(([e,t])=>({source:e,count:t,share:s>0?t/s:0})).sort((e,t)=>t.count-e.count)}(e),r=t.slice(0,n);return 0===l.length&&0===r.length?(0,s.jsx)("p",{className:"text-sm text-fg-muted",children:"No input interactions in range."}):(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h4",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-fg-muted",children:"Modality share"}),0===l.length?(0,s.jsx)("p",{className:"text-sm text-fg-muted",children:"No source-bearing interactions in range."}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"flex h-3 w-full overflow-hidden rounded bg-ink/60",children:l.map(e=>(0,s.jsx)("div",{className:"h-full",style:{width:`${100*e.share}%`,backgroundColor:W(e.source)},title:`${e.source}: ${b(e.count)}`},e.source))}),(0,s.jsx)("ul",{className:"mt-2 flex flex-wrap gap-x-3 gap-y-1",children:l.map(e=>(0,s.jsxs)("li",{className:"flex items-center gap-1.5 text-xs text-fg-muted",children:[(0,s.jsx)("span",{className:"inline-block h-2 w-2 rounded-sm",style:{backgroundColor:W(e.source)}}),e.source,(0,s.jsxs)("span",{className:"tabular-nums text-fg",children:[Math.round(100*e.share),"%"]})]},e.source))})]})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h4",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-fg-muted",children:"Most-used shortcuts"}),0===r.length?(0,s.jsx)("p",{className:"text-sm text-fg-muted",children:"No input_action events in range."}):(0,s.jsx)("ul",{className:"space-y-1.5",children:r.map(e=>(0,s.jsxs)("li",{className:"flex items-center gap-2 text-sm",children:[(0,s.jsx)("span",{className:"inline-block h-2 w-2 shrink-0 rounded-sm",style:{backgroundColor:W(e.source)}}),(0,s.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-xs text-fg",children:e.action}),(0,s.jsx)("span",{className:"shrink-0 text-xs text-fg-muted",children:e.source}),(0,s.jsx)("span",{className:"w-12 shrink-0 text-right tabular-nums text-fg-muted",children:b(e.count)})]},`${e.action}/${e.source}`))})]})]})}function J({coverage:e,proxyMeshes:t,cellSize:n,topN:l=12}){if(0===t.length)return(0,s.jsxs)("div",{className:"space-y-2 text-sm text-fg-muted",children:[(0,s.jsx)("p",{children:"No scene proxy is registered, so there is no reference geometry to call “dead”."}),(0,s.jsx)("p",{children:"Register proxy geometry (ADR 0014) via the scene representation API to enumerate the regions visitors could approach."})]});if(0===e.length)return(0,s.jsx)("p",{className:"text-sm text-fg-muted",children:"No camera-position samples in range — every region reads as dead. Widen the range or check that first-person camera samples are being captured."});let r=function(e,t,s,n=1){let l=s*n,r=t.slice(0,600).map(t=>{let n=0;for(let r of e)(function(e,t,s,n,l,r){let a=(e+.5)*n,i=(t+.5)*n,o=(s+.5)*n,[c,d,u,m,x,p]=l;return a>=c-r&&a<=m+r&&i>=d-r&&i<=x+r&&o>=u-r&&o<=p+r})(r.vx,r.vy,r.vz,s,t.aabb,l)&&(n+=r.count);return{mesh:t.name,path:t.path,nearbySamples:n,dead:0===n}});return r.sort((e,t)=>e.nearbySamples-t.nearbySamples),{rows:r,deadCount:r.filter(e=>e.dead).length,total:r.length}}(e,t,n),a=r.rows.reduce((e,t)=>Math.max(e,t.nearbySamples),0)||1,i=r.rows.slice(0,l);return(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsxs)("p",{className:"text-xs text-fg-muted",children:[(0,s.jsx)("span",{className:"tabular-nums text-fg",children:b(r.deadCount)})," of"," ",(0,s.jsx)("span",{className:"tabular-nums text-fg",children:b(r.total)})," proxy meshes are dead (no nearby camera samples)."]}),(0,s.jsx)("ul",{className:"space-y-1.5",children:i.map(e=>(0,s.jsxs)("li",{className:"text-sm",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,s.jsx)("span",{className:"truncate font-mono text-xs text-fg",title:e.path??e.mesh,children:e.mesh}),e.dead?(0,s.jsx)("span",{className:"shrink-0 rounded bg-rose-500/20 px-1.5 text-xs text-rose-300",children:"dead"}):(0,s.jsx)("span",{className:"shrink-0 tabular-nums text-xs text-fg-muted",children:b(e.nearbySamples)})]}),(0,s.jsx)("div",{className:"mt-1 h-1.5 w-full overflow-hidden rounded bg-ink/60",children:(0,s.jsx)("div",{className:"h-full rounded bg-sky-500/70",style:{width:`${e.nearbySamples/a*100}%`}})})]},e.path??e.mesh))})]})}function q({label:e,value:t}){return(0,s.jsxs)("div",{className:"rounded-lg bg-ink/60 p-3",children:[(0,s.jsx)("div",{className:"text-xs uppercase tracking-wide text-fg-muted",children:e}),(0,s.jsx)("div",{className:"mt-1 text-2xl font-semibold tabular-nums text-fg-hi",children:t})]})}function Y({bins:e}){if(0===e.length)return(0,s.jsx)("p",{className:"text-sm text-fg-muted",children:"No FPS samples in range."});let t=[...e].sort((e,t)=>e.bucket-t.bucket),n=t.reduce((e,t)=>Math.max(e,t.sessions),0)||1,l=t.length>1?t[1].bucket-t[0].bucket:10;return(0,s.jsx)("div",{className:"space-y-1.5",children:t.map(e=>(0,s.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,s.jsxs)("span",{className:"w-16 shrink-0 text-right tabular-nums text-fg-muted",children:[e.bucket,"–",e.bucket+l]}),(0,s.jsx)("div",{className:"h-4 flex-1 overflow-hidden rounded bg-ink/60",children:(0,s.jsx)("div",{className:"h-full rounded bg-emerald-500/70",style:{width:`${e.sessions/n*100}%`}})}),(0,s.jsx)("span",{className:"w-10 shrink-0 tabular-nums text-fg-muted",children:e.sessions})]},e.bucket))})}function Z({distribution:e,histogram:t}){return e&&0!==e.samples?(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-3 sm:grid-cols-4",children:[(0,s.jsx)(q,{label:"p05 FPS (worst)",value:b(e.p05_fps,1)}),(0,s.jsx)(q,{label:"p50 FPS (typical)",value:b(e.p50_fps,1)}),(0,s.jsx)(q,{label:"p95 FPS (best)",value:b(e.p95_fps,1)}),(0,s.jsx)(q,{label:"Sessions",value:b(e.sessions)})]}),(0,s.jsx)(Y,{bins:t})]}):(0,s.jsx)("p",{className:"text-sm text-fg-muted",children:"No performance samples in range."})}function Q(e){return`${Math.round(100*e)}%`}function ee({data:e}){if(!e||0===e.samples)return(0,s.jsx)("p",{className:"text-sm text-fg-muted",children:"No frame-perf samples in range."});let t=e.p50_fps>=50&&e.p50_render_scale>0&&e.p50_render_scale<.9,n=[{label:"Median FPS",value:b(Math.round(e.p50_fps))},{label:"Avg FPS",value:b(Math.round(e.avg_fps))},{label:"Median render scale",value:Q(e.p50_render_scale)},{label:"Avg render scale",value:Q(e.avg_render_scale)},{label:"Downscaled frames",value:Q(e.downscaled_share)},{label:"Samples",value:b(e.samples)}];return(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsx)("dl",{className:"grid grid-cols-2 gap-x-4 gap-y-3 sm:grid-cols-3",children:n.map(e=>(0,s.jsxs)("div",{children:[(0,s.jsx)("dt",{className:"text-xs text-fg-muted",children:e.label}),(0,s.jsx)("dd",{className:"tabular-nums text-lg text-fg",children:e.value})]},e.label))}),t?(0,s.jsxs)("p",{className:"rounded-md border border-amber/40 bg-amber/10 px-3 py-2 text-xs text-amber",children:["Good FPS is being bought with resolution — the median frame renders at"," ",Q(e.p50_render_scale)," scale. The headline FPS overstates the device experience."]}):null]})}let et={orbit:"Orbit",pan:"Pan",dolly:"Dolly",zoom:"Zoom",roll:"Roll",fly:"Fly",navigate:"Navigate"};function es({stats:e}){let t=[...e].sort((e,t)=>t.gestures-e.gestures),n=t.reduce((e,t)=>e+t.gestures,0),l=t.reduce((e,t)=>Math.max(e,t.gestures),0);return 0===t.length||0===n?(0,s.jsxs)("p",{className:"text-sm text-fg-muted",children:["No camera-navigation gestures in range. Enable ",(0,s.jsx)("code",{children:"cameraGesture"})," capture in the SDK (on by default for Babylon) to populate this."]}):(0,s.jsx)("ul",{className:"space-y-3",children:t.map(e=>{var t,r;let a=n>0?e.gestures/n*100:0;return(0,s.jsxs)("li",{className:"text-sm",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,s.jsx)("span",{className:"font-medium text-fg",children:et[t=e.kind]??t.charAt(0).toUpperCase()+t.slice(1)}),(0,s.jsxs)("span",{className:"tabular-nums text-fg-muted",children:[b(e.gestures),(0,s.jsxs)("span",{className:"ml-1 text-xs text-fg-muted",children:["· ",a.toFixed(0),"%"]}),(0,s.jsxs)("span",{className:"ml-2 text-xs text-fg-muted",children:["avg ",!Number.isFinite(r=e.avg_ms)||r<=0?"0 ms":r<1e3?`${Math.round(r)} ms`:`${(r/1e3).toFixed(r<1e4?2:1)} s`]})]})]}),(0,s.jsx)("div",{className:"mt-1 h-1.5 w-full overflow-hidden rounded bg-ink/60",children:(0,s.jsx)("div",{className:"h-full rounded bg-amber",style:{width:`${l>0?e.gestures/l*100:0}%`}})})]},e.kind)})})}let en="#161210",el={fontSize:13,color:"#a8917c"},er={padding:"6px 10px",fontSize:13,borderTop:"1px solid #34291f"};function ea({sessions:e,onSelect:t,selectedId:n}){return 0===e.length?(0,s.jsx)("p",{style:el,children:"No sessions in range."}):(0,s.jsx)("div",{style:{maxHeight:320,overflow:"auto"},children:(0,s.jsxs)("table",{style:{width:"100%",borderCollapse:"collapse",textAlign:"left"},children:[(0,s.jsx)("thead",{children:(0,s.jsxs)("tr",{style:{fontSize:11,textTransform:"uppercase",color:"#a8917c"},children:[(0,s.jsx)("th",{style:{padding:"6px 10px"},children:"Session"}),(0,s.jsx)("th",{style:{padding:"6px 10px"},children:"Visitor"}),(0,s.jsx)("th",{style:{padding:"6px 10px",textAlign:"right"},children:"Events"}),(0,s.jsx)("th",{style:{padding:"6px 10px"},children:"Started"})]})}),(0,s.jsx)("tbody",{children:e.map(e=>{var l;let r,a=e.session_id===n;return(0,s.jsxs)("tr",{onClick:t?()=>t(e.session_id):void 0,style:{cursor:t?"pointer":"default",background:a?"rgba(237,166,62,0.15)":void 0},children:[(0,s.jsx)("td",{style:{...er,fontFamily:"ui-monospace, monospace",color:"#d8c8b8"},children:e.session_id.slice(0,12)}),(0,s.jsx)("td",{style:{...er,fontFamily:"ui-monospace, monospace",color:"#a8917c"},children:e.visitor_id.slice(0,8)}),(0,s.jsx)("td",{style:{...er,textAlign:"right",fontVariantNumeric:"tabular-nums"},children:b(e.events)}),(0,s.jsx)("td",{style:{...er,fontSize:12,color:"#a8917c"},children:Number.isNaN((r=new Date((l=e.started_at).includes("T")?l:l.replace(" ","T")+"Z")).getTime())?l:r.toLocaleString()})]},e.session_id)})})]})})}function ei({bins:e,gridSize:t,size:n=320,className:r,style:a}){let i=(0,l.useRef)(null);return(0,l.useEffect)(()=>{let s=i.current;if(!s)return;let l=s.getContext("2d");l&&function(e,t,s,n){if(e.clearRect(0,0,n,n),e.fillStyle=en,e.fillRect(0,0,n,n),0===t.length)return;let l=t.reduce((e,t)=>Math.max(e,t.count),0),r=n/s;for(let s of t)e.fillStyle=f(l>0?s.count/l:0,.85),e.fillRect(s.gx*r,s.gy*r,Math.ceil(r),Math.ceil(r))}(l,e,t,n)},[e,t,n]),(0,s.jsx)("canvas",{ref:i,width:n,height:n,className:r,style:a,"aria-label":"Pointer heatmap"})}function eo({bins:e,gridSize:t,size:n=340,className:r,style:a}){let i=(0,l.useRef)(null);return(0,l.useEffect)(()=>{let s=i.current;if(!s)return;let l=s.getContext("2d");if(!l)return;let r=Math.min(window.devicePixelRatio||1,2);s.width=n*r,s.height=n*r,l.setTransform(r,0,0,r,0,0),function(e,t,s,n){let l=n/2,r=n/2,a=n/2-18;if(e.clearRect(0,0,n,n),e.fillStyle=en,e.fillRect(0,0,n,n),e.strokeStyle="#34291f",e.lineWidth=1,e.beginPath(),e.arc(l,r,a,0,2*Math.PI),e.stroke(),e.beginPath(),e.arc(l,r,a/2,0,2*Math.PI),e.stroke(),t.length>0){let n=t.reduce((e,t)=>Math.max(e,t.count),0),i=2*Math.PI/s;for(let o of t){let t=n>0?o.count/n:0,c=1-(o.elevation_bin+1)/s,d=1-o.elevation_bin/s,u=Math.max(0,c)*a,m=Math.max(0,d)*a,x=o.azimuth_bin*i,p=x+i;e.beginPath(),e.arc(l,r,m,x,p),e.arc(l,r,u,p,x,!0),e.closePath(),e.fillStyle=f(t,.85),e.fill()}}let i=(t,s,n)=>{e.lineWidth=3,e.strokeStyle="rgba(22,18,16,0.9)",e.strokeText(t,s,n),e.fillStyle="#d8c8b8",e.fillText(t,s,n)};for(let t of(e.font="600 10px ui-sans-serif, system-ui, sans-serif",e.textAlign="left",e.textBaseline="middle",e.strokeStyle="rgba(203,213,225,0.35)",e.lineWidth=1,e.beginPath(),e.moveTo(l,r),e.lineTo(l,r-a),e.stroke(),[0,a/2,a]))e.beginPath(),e.moveTo(l-3,r-t),e.lineTo(l+3,r-t),e.stroke();i("up",l+6,r),i("horizon",l+6,r-a/2),i("down",l+6,r-a+2)}(l,e,t,n)},[e,t,n]),(0,s.jsx)("canvas",{ref:i,className:r,style:{width:n,height:n,...a},"aria-label":"Camera view-direction heatmap: top-down polar plot where the center is looking up, the middle ring is the horizon, and the rim is looking down; color shows how often each direction was viewed."})}let ec={background:"rgba(32,25,19,0.6)",borderRadius:8,padding:12},ed={fontSize:11,textTransform:"uppercase",letterSpacing:"0.04em",color:"#a8917c"},eu={marginTop:4,fontSize:24,fontWeight:600,color:"#f4eadf",fontVariantNumeric:"tabular-nums"};function em({label:e,value:t}){return(0,s.jsxs)("div",{style:ec,children:[(0,s.jsx)("div",{style:ed,children:e}),(0,s.jsx)("div",{style:eu,children:t})]})}function ex({perf:e}){return e&&0!==e.samples?(0,s.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(2, minmax(0, 1fr))",gap:12},children:[(0,s.jsx)(em,{label:"Samples",value:b(e.samples)}),(0,s.jsx)(em,{label:"Avg FPS",value:b(e.avg_fps,1)}),(0,s.jsx)(em,{label:"p50 FPS",value:b(e.p50_fps,1)}),(0,s.jsx)(em,{label:"Min FPS",value:b(e.min_fps,1)})]}):(0,s.jsx)("p",{style:el,children:"No performance samples in range."})}function ep({bins:e,gridSize:t}){return(0,s.jsx)("div",{className:"flex justify-center",children:(0,s.jsx)(ei,{bins:e,gridSize:t,className:"rounded-lg border border-edge"})})}function eh({meshes:e}){let t=e.reduce((e,t)=>Math.max(e,t.count),0);return 0===e.length?(0,s.jsx)("p",{className:"text-sm text-fg-muted",children:"No mesh interactions in range."}):(0,s.jsx)("ul",{className:"space-y-1.5",children:e.map(e=>(0,s.jsxs)("li",{className:"text-sm",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,s.jsx)("span",{className:"truncate font-mono text-xs text-fg",children:e.mesh}),(0,s.jsx)("span",{className:"tabular-nums text-fg-muted",children:b(e.count)})]}),(0,s.jsx)("div",{className:"mt-1 h-1.5 w-full overflow-hidden rounded bg-ink/60",children:(0,s.jsx)("div",{className:"h-full rounded bg-amber",style:{width:`${t>0?e.count/t*100:0}%`}})})]},e.mesh))})}var eg=e.i(37215);let ef=(0,l.lazy)(()=>e.A(78573).then(e=>({default:e.CameraDome3DView}))),eb=(0,l.lazy)(()=>e.A(47410).then(e=>({default:e.WorldHeatmap3DView}))),ev=(0,l.lazy)(()=>e.A(70162).then(e=>({default:e.FlowSankey3DView}))),ej=(0,l.lazy)(()=>e.A(21269).then(e=>({default:e.GazeClickDivergence3DView})));function ey({children:e}){return(0,s.jsx)(l.Suspense,{fallback:(0,s.jsx)("div",{className:"grid min-h-[12rem] place-items-center text-sm text-fg-muted",children:"Loading 3D view…"}),children:e})}function ew(e){return"session"===e.surface&&e.sessionId?{...e.params,session:e.sessionId}:e.params}async function eN(e){let t=e.params.scene;if(t){let s=await e.api.sceneRepresentation(t).catch(()=>null);return s?.proxy?.meshes??[]}return(0,v.mergeSceneProxies)(e.api,e.params)}let ek=[{id:"top-meshes",title:"Top meshes",subtitle:"Most-interacted meshes",span:1,surfaces:["overview","session"],settings:{limit:{type:"number",label:"Top N",help:"How many meshes to rank in the list.",default:25,min:5,max:100,step:5}},load:e=>e.api.topMeshes({...ew(e),source:void 0,scene:void 0,limit:e.settings.limit}),render:({data:e})=>(0,s.jsx)(eh,{meshes:e??[]})},{id:"mesh-leaderboard",title:"Part-popularity leaderboard",subtitle:"Ranked meshes, with trend and input split",help:"The most-interacted meshes ranked by total active interactions (clicks / hovers / picks / drags — passive gaze is excluded), each with a trend sparkline (rising/falling over the range) and an input-source split (mouse / touch / XR / …). Expand a row to see which sources drove it. Unlike the plain Top-meshes list, gaze-only hits don't inflate the ranking.",span:1,surfaces:["overview","session"],load:async e=>{let[t,s]=await Promise.all([e.api.topMeshesBySource({...ew(e),source:void 0,limit:400}),e.api.topMeshesTrend({...ew(e),source:void 0,interval:function(e){let{since:t,until:s}=e.params;return null==t||null==s||s<=t?3600:x(s-t,24)}(e),limit:2e3})]);return{sources:t,trend:s}},render:({data:e})=>(0,s.jsx)(K,{sources:e.sources??[],trend:e.trend??[]})},{id:"pointer-heatmap",title:"Pointer heatmap",subtitle:"Normalized screen positions",span:1,surfaces:["overview","session"],clientOnly:!0,settings:{bins:{type:"number",label:"Grid resolution",help:"Bins per axis for the 2D pointer grid. More bins sharpen detail; fewer smooth the heat.",default:50,min:10,max:120,step:10}},load:e=>e.api.pointerHeatmap({...ew(e),bins:e.settings.bins}),render:({data:e,ctx:t})=>(0,s.jsx)(ep,{bins:e??[],gridSize:t.settings.bins})},{id:"camera-dome-3d",title:eg.CAMERA_DOME_TITLE,subtitle:eg.CAMERA_DOME_SUBTITLE,span:2,surfaces:["overview","session"],clientOnly:!0,settings:{bins:{type:"number",label:"Direction resolution",help:"Angular bins for the view-direction dome. More bins resolve finer look-directions; fewer aggregate them.",default:36,min:12,max:72,step:6}},load:e=>e.api.cameraHeatmap({...ew(e),source:void 0,bins:e.settings.bins}),render:({data:e,ctx:t})=>(0,s.jsx)(ey,{children:(0,s.jsx)(ef,{bins:e??[],gridSize:t.settings.bins})})},{id:"floor-plan",title:"Floor-plan heatmap",subtitle:"Where visitors stand (top-down, first-person)",help:"Camera positions binned on the ground plane — the first-person counterpart of the pointer heatmap. Filter to the first-person camera mode to isolate walkable sessions.",span:1,surfaces:["overview","session"],clientOnly:!0,settings:{cellSize:{type:"number",label:"Cell size",help:"Ground-plane bin size in world units. Larger cells smooth the dwell heat; smaller cells sharpen spatial resolution.",default:1,min:.25,max:5,step:.25,unit:"m"}},enabled:e=>"viewer"!==e.filters.cameraMode,load:e=>e.api.cameraPositionHeatmap({...ew(e),cellSize:e.settings.cellSize}),render:({data:e,ctx:t})=>(0,s.jsx)($,{bins:e??[],cellSize:t.settings.cellSize})},{id:"desire-lines",title:"Desire lines",subtitle:"The routes visitors actually walk",help:"Every session's camera path, binned onto the ground plane and overlaid as a faint poly-line. Where many visitors walk the same way the lines pile up into bright 'desire lines' — the routes people take vs. the ones the scene intended. Filter to the first-person camera mode to isolate walkable sessions.",span:1,surfaces:["overview"],clientOnly:!0,enabled:e=>"viewer"!==e.filters.cameraMode,load:e=>e.api.aggregatePaths({...ew(e),cellSize:1}),render:({data:e})=>(0,s.jsx)(D,{points:e??[]})},{id:"mesh-interaction-kinds",title:"Interaction kinds",subtitle:"How visitors act on each mesh",help:"Per-mesh breakdown of interaction kinds (hover, pick, click, drag, …) from mesh_interaction events. The dwell ranking says which objects draw attention; this says how people act on them — a hovered-but-never-picked mesh reads very differently from a dragged one.",span:1,surfaces:["overview","session"],load:e=>e.api.meshKinds({...ew(e),limit:200}),render:({data:e})=>(0,s.jsx)(O,{rows:e??[]})},{id:"input-modality-split",title:"Input-modality split",subtitle:"Keyboard / gamepad / touch / XR — and top shortcuts",help:"How visitors drive the experience: the share of interactions per input source (mouse / touch / keyboard / gamepad / XR), from the input-source breakdown (ADR 0011), paired with the most-used app-level shortcuts/actions from input_action events (ADR 0023).",span:1,surfaces:["overview","session"],load:async e=>{let[t,s]=await Promise.all([e.api.interactionsBySource({...ew(e),source:void 0,limit:100}),e.api.topInputActions({...ew(e),source:void 0,limit:50})]);return{sources:t,actions:s}},render:({data:e})=>(0,s.jsx)(X,{sources:e.sources??[],actions:e.actions??[]})},{id:"render-scale-truth",title:"Render-scale truth",subtitle:"Is that FPS real, or downscaled?",help:"Adaptive renderers keep frame rate up by quietly dropping resolution. This pairs the FPS headline with the render scale that bought it, and flags the 'good FPS at a low render scale' case where the headline overstates the real device experience.",span:1,surfaces:["overview","session"],load:e=>e.api.renderScale(ew(e)),render:({data:e})=>(0,s.jsx)(ee,{data:e})},{id:"perf-distribution",title:"Performance distribution",subtitle:"p05 / p50 / p95 FPS bands, not just the average",help:"The shape of rendering performance, not a single average: p05 (worst), p50 (typical) and p95 (best) FPS computed per-session then aggregated (ADR 0028 §1), plus a histogram of per-session median FPS. One session contributes one data point, so a few chatty sessions can't skew the curve.",span:1,surfaces:["overview","session"],load:async e=>{let[t,s]=await Promise.all([e.api.perfDistribution(ew(e)),e.api.fpsHistogram(ew(e))]);return{distribution:t,histogram:s}},render:({data:e})=>(0,s.jsx)(Z,{distribution:e.distribution,histogram:e.histogram??[]})},{id:"world-heatmap-3d",title:eg.WORLD_HEATMAP_TITLE,subtitle:eg.WORLD_HEATMAP_SUBTITLE,span:2,surfaces:["overview","session"],clientOnly:!0,settings:{cellSize:{type:"number",label:"Voxel size",help:"World-space voxel size for binning pointer hits. Larger voxels smooth the heat; smaller ones sharpen spatial detail.",default:.5,min:.1,max:2,step:.1,unit:"m"}},load:async e=>{let[t,s,n]=await Promise.all([e.api.worldHeatmap({...ew(e),cellSize:e.settings.cellSize}),eN(e),e.api.worldHeatmapStats({...ew(e),cellSize:e.settings.cellSize})]);return{voxels:t,proxyMeshes:s,totals:{cells:n.cells,hits:n.hits}}},render:({data:e,ctx:t})=>(0,s.jsx)(ey,{children:(0,s.jsx)(eb,{voxels:e.voxels,cellSize:t.settings.cellSize,proxyMeshes:e.proxyMeshes,totals:e.totals})})},{id:"navigation-mix",title:"Navigation-style mix",subtitle:"Orbit / pan / dolly / zoom / roll / fly share + avg gesture duration",span:1,surfaces:["overview","session"],load:e=>e.api.cameraGestures({...ew(e),source:void 0}),render:({data:e})=>(0,s.jsx)(es,{stats:e??[]})},{id:"dead-zone-report",title:"Dead-zone report",subtitle:"Scene parts visitors never approach",help:"The negative space: registered proxy meshes (ADR 0014) with near-zero camera proximity, computed by subtracting the occupied camera-position voxels (scene coverage) from the scene's proxy geometry. Ranked coldest first. Requires a registered scene proxy to know which regions could be visited.",span:1,surfaces:["overview","session"],load:async e=>{let[t,s]=await Promise.all([e.api.coverage({...ew(e),cellSize:1}),eN(e)]);return{coverage:t,proxyMeshes:s}},render:({data:e})=>(0,s.jsx)(J,{coverage:e.coverage??[],proxyMeshes:e.proxyMeshes??[],cellSize:1})},{id:"flow-sankey-3d",title:eg.FLOW_SANKEY_TITLE,subtitle:eg.FLOW_SANKEY_SUBTITLE,help:eg.FLOW_SANKEY_HELP,span:2,surfaces:["overview","session"],clientOnly:!0,settings:{maxLinks:{type:"number",label:"Max links",help:"Maximum aggregate flow links drawn before the panel caps for legibility.",default:80,min:10,max:200,step:10}},load:async e=>{let t={...ew(e),cameraMode:void 0},[s,n]=await Promise.all([e.api.flowHeatmap({...t,bins:36,limit:400,groupByOrigin:!0}),eN(e)]);return{links:s,proxyMeshes:n,flowQuery:t}},render:({data:e,ctx:t})=>(0,s.jsx)(ey,{children:(0,s.jsx)(ev,{links:e.links,gridSize:36,proxyMeshes:e.proxyMeshes,maxLinks:t.settings.maxLinks,baseUrl:t.baseUrl,apiKey:t.apiKey,flowQuery:e.flowQuery,hasFirstPerson:t.capabilities.hasFirstPerson})})},{id:"gaze-click-divergence-3d",title:eg.GAZE_CLICK_TITLE,subtitle:eg.GAZE_CLICK_SUBTITLE,span:2,surfaces:["overview","session"],clientOnly:!0,settings:{cellSize:{type:"number",label:"Voxel size",help:"Shared world-space voxel size for both the gaze and click grids, so the divergence field stays aligned.",default:.5,min:.1,max:2,step:.1,unit:"m"}},load:async e=>{let[t,s,n]=await Promise.all([e.api.gazeHeatmap({...ew(e),source:void 0,cellSize:e.settings.cellSize}),e.api.worldHeatmap({...ew(e),cellSize:e.settings.cellSize}),eN(e)]);return{gaze:t,click:s,proxyMeshes:n}},render:({data:e,ctx:t})=>(0,s.jsx)(ey,{children:(0,s.jsx)(ej,{gazeVoxels:e.gaze,clickVoxels:e.click,cellSize:t.settings.cellSize,proxyMeshes:e.proxyMeshes})})}];function eS(e){return e?e.split(",").map(e=>e.trim()).filter(e=>e.length>0):[]}let eM={panels:[],errors:[],loading:!1};function eP({errors:e}){let[t,n]=(0,l.useState)(!1);return 0===e.length||t?null:(0,s.jsxs)("section",{className:"rounded-xl border border-dashed border-amber/60 bg-panel/60 px-4 py-3 text-xs text-fg-muted",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,s.jsxs)("span",{className:"font-medium uppercase tracking-wide text-fg",children:[e.length," panel",1===e.length?"":"s"," failed to load"]}),(0,s.jsx)("button",{type:"button",onClick:()=>n(!0),className:"text-fg-muted underline-offset-2 transition hover:text-amber hover:underline",children:"Dismiss"})]}),(0,s.jsx)("ul",{className:"mt-2 space-y-1",children:e.map((e,t)=>(0,s.jsxs)("li",{className:"font-mono",children:[(0,s.jsx)("span",{className:"text-fg",children:e.source}),(0,s.jsxs)("span",{className:"text-fg-muted",children:[" ","— [",e.code,"] ",e.message]})]},`${e.source}-${t}`))})]})}function eC({bins:e,gridSize:t}){return(0,s.jsx)(_.Panel,{title:"View-direction heatmap",subtitle:"Top-down sphere — center = looking up, rim = looking down",help:(0,s.jsxs)(s.Fragment,{children:["A flattened top-down view of where the camera pointed."," ",(0,s.jsx)("strong",{children:"Distance from the center"})," is the up/down tilt: the ",(0,s.jsx)("strong",{children:"center"})," ","is looking straight up, the ",(0,s.jsx)("strong",{children:"middle ring"})," is the horizon (level), and the"," ",(0,s.jsx)("strong",{children:"outer rim"})," is looking straight down. The"," ",(0,s.jsx)("strong",{children:"angle around the disc"})," is the facing (azimuth) direction. Color shows how often each direction was viewed, normalized to the most-viewed direction in range."]}),children:(0,s.jsxs)("div",{className:"flex flex-col items-center gap-3",children:[(0,s.jsx)(eo,{bins:e,gridSize:t,className:"rounded-lg border border-edge"}),e.length>0?(0,s.jsxs)("div",{className:"flex items-center gap-2 text-[10px] text-fg-muted",children:[(0,s.jsx)("span",{className:"font-medium text-fg",children:"View density"}),(0,s.jsx)("span",{children:"rarely"}),(0,s.jsx)("span",{className:"h-2 w-28 rounded-sm",style:{background:g.HEAT_GRADIENT}}),(0,s.jsx)("span",{children:"most-viewed"})]}):null]})})}function e_(e){return null==e?"":new Date(e-6e4*new Date(e).getTimezoneOffset()).toISOString().slice(0,16)}function ez(e){if(!e)return;let t=new Date(e).getTime();return Number.isNaN(t)?void 0:t}function eR({filters:e,scenes:t,onChange:n,busy:l}){let r=t=>n({...e,...t});return(0,s.jsxs)("section",{className:"mb-6 flex flex-wrap items-end gap-x-4 gap-y-3 rounded-xl border border-edge bg-panel p-4",children:[(0,s.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,s.jsx)("span",{className:"text-xs text-fg-muted",children:"Time window"}),(0,s.jsxs)("div",{className:"flex flex-wrap gap-1",role:"group","aria-label":"Time window",children:[o.map(t=>{let n=e.window===t.id;return(0,s.jsx)("button",{type:"button",onClick:()=>r({window:t.id}),className:`rounded-md border px-2.5 py-1.5 text-xs transition ${n?"border-amber bg-amber/10 text-saffron":"border-edge text-fg hover:border-amber/60 hover:text-fg-hi"}`,children:t.label},t.id)}),(0,s.jsx)("button",{type:"button",onClick:()=>r({window:"custom",since:e.since??Date.now()-864e5,until:e.until??Date.now()}),className:`rounded-md border px-2.5 py-1.5 text-xs transition ${"custom"===e.window?"border-amber bg-amber/10 text-saffron":"border-edge text-fg hover:border-amber/60 hover:text-fg-hi"}`,children:"Custom"})]})]}),"custom"===e.window?(0,s.jsxs)("div",{className:"flex items-end gap-2",children:[(0,s.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-fg-muted",children:["From",(0,s.jsx)("input",{type:"datetime-local",value:e_(e.since),onChange:e=>r({since:ez(e.target.value)}),className:"rounded-md border border-edge bg-ink px-2 py-1.5 text-xs text-fg outline-none focus:border-saffron"})]}),(0,s.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-fg-muted",children:["To",(0,s.jsx)("input",{type:"datetime-local",value:e_(e.until),onChange:e=>r({until:ez(e.target.value)}),className:"rounded-md border border-edge bg-ink px-2 py-1.5 text-xs text-fg outline-none focus:border-saffron"})]})]}):null,(0,s.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-fg-muted",children:["Scene",(0,s.jsxs)("select",{value:e.scene??"",onChange:e=>r({scene:e.target.value||void 0}),className:"min-w-40 rounded-md border border-edge bg-ink px-2 py-1.5 text-xs text-fg outline-none focus:border-saffron",children:[(0,s.jsx)("option",{value:"",children:"All scenes"}),t.map(e=>(0,s.jsxs)("option",{value:e.scene_id,children:[e.scene_id," (",e.events.toLocaleString(),")"]},e.scene_id))]})]}),(0,s.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-fg-muted",children:["Input source",(0,s.jsxs)("select",{value:e.source??"",onChange:e=>r({source:e.target.value||void 0}),className:"min-w-36 rounded-md border border-edge bg-ink px-2 py-1.5 text-xs text-fg outline-none focus:border-saffron",children:[(0,s.jsx)("option",{value:"",children:"All sources"}),h.map(e=>(0,s.jsx)("option",{value:e,children:p(e)},e))]})]}),(0,s.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-fg-muted",children:["Camera mode",(0,s.jsxs)("select",{value:e.cameraMode??"",onChange:e=>r({cameraMode:e.target.value||void 0}),className:"min-w-36 rounded-md border border-edge bg-ink px-2 py-1.5 text-xs text-fg outline-none focus:border-saffron",children:[(0,s.jsx)("option",{value:"",children:"All cameras"}),(0,s.jsx)("option",{value:"viewer",children:"Viewer (orbit)"}),(0,s.jsx)("option",{value:"first-person",children:"First-person (walk)"})]})]}),(0,s.jsx)("span",{className:`ml-auto text-xs ${l?"text-saffron":"text-fg-muted"}`,"aria-live":"polite",children:l?"Refreshing…":"Up to date"})]})}function eT({rows:e}){let t=function(e){let t=new Map;for(let s of e){let e=t.get(s.source);e||(e={source:s.source,total:0,sessions:0,byType:[]},t.set(s.source,e)),e.total+=s.count,e.sessions=Math.max(e.sessions,s.sessions),e.byType.push({event_type:s.event_type,count:s.count})}for(let e of t.values())e.byType.sort((e,t)=>t.count-e.count);return[...t.values()].sort((e,t)=>t.total-e.total)}(e),n=t.reduce((e,t)=>Math.max(e,t.total),0);return(0,s.jsx)(_.Panel,{title:"Input sources",subtitle:"Interactions by input source",children:0===t.length?(0,s.jsx)("p",{className:"text-sm text-fg-muted",children:"No source-bearing interactions in range."}):(0,s.jsx)("ul",{className:"space-y-3",children:t.map(e=>(0,s.jsxs)("li",{className:"text-sm",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,s.jsx)("span",{className:"font-medium text-fg",children:p(e.source)}),(0,s.jsxs)("span",{className:"tabular-nums text-fg-muted",children:[b(e.total),(0,s.jsxs)("span",{className:"ml-1 text-xs text-fg-muted",children:["· ",b(e.sessions)," ",1===e.sessions?"session":"sessions"]})]})]}),(0,s.jsx)("div",{className:"mt-1 h-1.5 w-full overflow-hidden rounded bg-ink/60",children:(0,s.jsx)("div",{className:"h-full rounded bg-amber",style:{width:`${n>0?e.total/n*100:0}%`}})}),(0,s.jsx)("div",{className:"mt-1.5 flex flex-wrap gap-1.5",children:e.byType.map(e=>{let t;return(0,s.jsxs)("span",{className:"rounded bg-ink/60 px-1.5 py-0.5 font-mono text-[11px] text-fg-muted",children:[(t=e.event_type.replace(/_/g," ")).charAt(0).toUpperCase()+t.slice(1)," ",b(e.count)]},e.event_type)})})]},e.source))})})}function eA({perf:e}){return(0,s.jsx)(_.Panel,{title:"Rendering performance",subtitle:"frame_perf samples",children:(0,s.jsx)(ex,{perf:e})})}function eE({label:e,value:t,unit:n}){return(0,s.jsxs)("div",{className:"rounded-lg bg-ink/60 p-3",children:[(0,s.jsx)("div",{className:"text-xs uppercase tracking-wide text-fg-muted",children:e}),(0,s.jsxs)("div",{className:"mt-1 text-2xl font-semibold tabular-nums text-fg-hi",children:[t,n?(0,s.jsx)("span",{className:"ml-1 text-sm font-normal text-fg-muted",children:n}):null]})]})}function eI(e){return b(e/1048576,1)}function e$({bins:e}){if(0===e.length)return(0,s.jsx)("p",{className:"text-sm text-fg-muted",children:"No FPS samples in range."});let t=[...e].sort((e,t)=>e.bucket-t.bucket),n=t.reduce((e,t)=>Math.max(e,t.sessions),0)||1,l=t.length>1?t[1].bucket-t[0].bucket:10;return(0,s.jsx)("div",{className:"space-y-1.5",children:t.map(e=>(0,s.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,s.jsxs)("span",{className:"w-16 shrink-0 text-right tabular-nums text-fg-muted",children:[e.bucket,"–",e.bucket+l]}),(0,s.jsx)("div",{className:"h-4 flex-1 overflow-hidden rounded bg-ink/60",children:(0,s.jsx)("div",{className:"h-full rounded bg-emerald-500/70",style:{width:`${e.sessions/n*100}%`}})}),(0,s.jsx)("span",{className:"w-10 shrink-0 tabular-nums text-fg-muted",children:e.sessions})]},e.bucket))})}function eD({data:e}){let{distribution:t,histogram:n,frameTime:l,jank:r,byDevice:a,byScene:i,resources:o,stability:c}=e,d=(t?.samples??0)>0;return(0,s.jsxs)("section",{className:"space-y-4",children:[(0,s.jsx)("h2",{className:"text-sm font-semibold uppercase tracking-wide text-fg-muted",children:"Performance"}),(0,s.jsx)(_.Panel,{title:"FPS distribution",subtitle:"per-session p05 / p50 / p95, summarized across sessions",children:d?(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-3 sm:grid-cols-4",children:[(0,s.jsx)(eE,{label:"p05 FPS (worst)",value:b(t.p05_fps,1)}),(0,s.jsx)(eE,{label:"p50 FPS (typical)",value:b(t.p50_fps,1)}),(0,s.jsx)(eE,{label:"p95 FPS (best)",value:b(t.p95_fps,1)}),(0,s.jsx)(eE,{label:"Sessions",value:b(t.sessions)})]}),(0,s.jsx)(e$,{bins:n})]}):(0,s.jsx)("p",{className:"text-sm text-fg-muted",children:"No performance samples in range."})}),(0,s.jsxs)("div",{className:"grid grid-cols-1 gap-4 lg:grid-cols-2",children:[(0,s.jsx)(_.Panel,{title:"Frame time",subtitle:"per-session median & worst-window p95",children:l&&0!==l.sessions?(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,s.jsx)(eE,{label:"p50 frame time",value:b(l.p50_ms,1),unit:"ms"}),(0,s.jsx)(eE,{label:"p95 frame time",value:b(l.p95_ms,1),unit:"ms"})]}):(0,s.jsx)("p",{className:"text-sm text-fg-muted",children:"No frame-time samples in range."})}),(0,s.jsx)(_.Panel,{title:"Jank",subtitle:"long frames per sample window",children:r&&0!==r.sessions?(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,s.jsx)(eE,{label:"Median session",value:b(r.median_rate,2)}),(0,s.jsx)(eE,{label:"Worst decile",value:b(r.worst_decile_rate,2)})]}):(0,s.jsx)("p",{className:"text-sm text-fg-muted",children:"No jank data in range."})})]}),(0,s.jsx)(_.Panel,{title:"FPS by device",subtitle:"per-session median FPS, by session_start.device + UA-derived browser/OS",children:0===a.length?(0,s.jsx)("p",{className:"text-sm text-fg-muted",children:"No device data in range."}):(0,s.jsx)("div",{className:"overflow-x-auto",children:(0,s.jsxs)("table",{className:"w-full text-left text-sm",children:[(0,s.jsx)("thead",{className:"text-xs uppercase tracking-wide text-fg-muted",children:(0,s.jsxs)("tr",{children:[(0,s.jsx)("th",{className:"py-1 pr-4 font-medium",children:"Backend"}),(0,s.jsx)("th",{className:"py-1 pr-4 font-medium",children:"Browser"}),(0,s.jsx)("th",{className:"py-1 pr-4 font-medium",children:"OS"}),(0,s.jsx)("th",{className:"py-1 pr-4 font-medium",children:"Mobile"}),(0,s.jsx)("th",{className:"py-1 pr-4 font-medium",children:"GPU"}),(0,s.jsx)("th",{className:"py-1 pr-4 text-right font-medium",children:"Sessions"}),(0,s.jsx)("th",{className:"py-1 text-right font-medium",children:"p50 FPS"})]})}),(0,s.jsx)("tbody",{className:"text-fg",children:a.map((e,t)=>(0,s.jsxs)("tr",{className:"border-t border-ink/60",children:[(0,s.jsx)("td",{className:"py-1 pr-4",children:e.engine||"—"}),(0,s.jsx)("td",{className:"py-1 pr-4",children:e.browser||"—"}),(0,s.jsx)("td",{className:"py-1 pr-4",children:e.os||"—"}),(0,s.jsx)("td",{className:"py-1 pr-4",children:"true"===e.is_mobile?"yes":"no"}),(0,s.jsx)("td",{className:"py-1 pr-4 max-w-[16rem] truncate",title:e.renderer,children:e.renderer||"—"}),(0,s.jsx)("td",{className:"py-1 pr-4 text-right tabular-nums",children:b(e.sessions)}),(0,s.jsx)("td",{className:"py-1 text-right tabular-nums",children:b(e.p50_fps,1)})]},`${e.engine}|${e.browser}|${e.os}|${e.is_mobile}|${e.renderer}|${t}`))})]})})}),(0,s.jsxs)("div",{className:"grid grid-cols-1 gap-4 lg:grid-cols-2",children:[(0,s.jsx)(_.Panel,{title:"FPS by scene",subtitle:"per-session median FPS per scene",children:0===i.length?(0,s.jsx)("p",{className:"text-sm text-fg-muted",children:"No scene data in range."}):(0,s.jsxs)("table",{className:"w-full text-left text-sm",children:[(0,s.jsx)("thead",{className:"text-xs uppercase tracking-wide text-fg-muted",children:(0,s.jsxs)("tr",{children:[(0,s.jsx)("th",{className:"py-1 pr-4 font-medium",children:"Scene"}),(0,s.jsx)("th",{className:"py-1 pr-4 text-right font-medium",children:"Sessions"}),(0,s.jsx)("th",{className:"py-1 text-right font-medium",children:"p50 FPS"})]})}),(0,s.jsx)("tbody",{className:"text-fg",children:i.map(e=>(0,s.jsxs)("tr",{className:"border-t border-ink/60",children:[(0,s.jsx)("td",{className:"py-1 pr-4",children:e.scene_id||"—"}),(0,s.jsx)("td",{className:"py-1 pr-4 text-right tabular-nums",children:b(e.sessions)}),(0,s.jsx)("td",{className:"py-1 text-right tabular-nums",children:b(e.p50_fps,1)})]},e.scene_id))})]})}),(0,s.jsx)(_.Panel,{title:"Stability",subtitle:"hard failures frame_perf can't show",children:c?(0,s.jsxs)("div",{className:"grid grid-cols-3 gap-3",children:[(0,s.jsx)(eE,{label:"Context losses",value:b(c.context_losses)}),(0,s.jsx)(eE,{label:"Compile stalls",value:b(c.compile_stalls)}),(0,s.jsx)(eE,{label:"Incidents",value:b(c.incidents)})]}):(0,s.jsx)("p",{className:"text-sm text-fg-muted",children:"No stability data in range."})})]}),(0,s.jsx)(_.Panel,{title:"Resource footprint",subtitle:"per-session p50 / p95 of what the scene asked of the device",children:o&&0!==o.sessions?(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-3 sm:grid-cols-3",children:[(0,s.jsx)(eE,{label:"p50 JS heap",value:eI(o.p50_js_heap_bytes),unit:"MB"}),(0,s.jsx)(eE,{label:"p50 texture",value:eI(o.p50_texture_bytes),unit:"MB"}),(0,s.jsx)(eE,{label:"p50 triangles",value:b(o.p50_triangles)}),(0,s.jsx)(eE,{label:"p95 JS heap",value:eI(o.p95_js_heap_bytes),unit:"MB"}),(0,s.jsx)(eE,{label:"p95 texture",value:eI(o.p95_texture_bytes),unit:"MB"}),(0,s.jsx)(eE,{label:"p95 triangles",value:b(o.p95_triangles)})]}):(0,s.jsx)("p",{className:"text-sm text-fg-muted",children:"No resource samples in range."})})]})}function eF({label:e,value:t,tone:n="neutral",hint:l}){return(0,s.jsxs)("div",{className:"rounded-lg border border-edge bg-ink/40 px-3 py-2.5",children:[(0,s.jsx)("p",{className:"text-xs uppercase tracking-wide text-fg-muted",children:e}),(0,s.jsx)("p",{className:`mt-0.5 text-lg font-semibold tabular-nums ${"bad"===n?"text-red-300":"warn"===n?"text-amber-300":"good"===n?"text-emerald-300":"text-fg-hi"}`,children:t}),l?(0,s.jsx)("p",{className:"text-[11px] text-fg-muted",children:l}):null]})}function eL({counts:e,perf:t}){let n=new Map(e.map(e=>[e.event_type,e.count])),l=e=>n.get(e)??0,r=l("session_start"),a=l("runtime_error"),i=l("context_lost"),o=l("focus_change"),c=l("visibility_change"),d=l("viewport_resize"),u=e.reduce((e,t)=>e+t.count,0),m=r>0?a/r:0;return(0,s.jsx)(_.Panel,{title:"Scene health",subtitle:"Errors, GPU context loss & attention gaps in the selected window",children:u>0?(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-2 sm:grid-cols-3",children:[(0,s.jsx)(eF,{label:"Errors",value:b(a),tone:a>0?"bad":"good",hint:r>0?`${m.toFixed(2)} / session`:void 0}),(0,s.jsx)(eF,{label:"Context loss",value:b(i),tone:i>0?"warn":"good",hint:"GPU device lost"}),(0,s.jsx)(eF,{label:"Avg FPS",value:t&&t.samples>0?b(t.avg_fps,1):"—",tone:t&&t.samples>0?t.avg_fps>=50?"good":"warn":"neutral",hint:t&&t.samples>0?`min ${b(t.min_fps,0)}`:void 0}),(0,s.jsx)(eF,{label:"Sessions",value:b(r)}),(0,s.jsx)(eF,{label:"Attention",value:b(o+c),hint:"focus + visibility changes"}),(0,s.jsx)(eF,{label:"Resizes",value:b(d),hint:"viewport changes"})]}):(0,s.jsx)("p",{className:"text-sm text-fg-muted",children:"No events in range."})})}let eO=["fatal","error","warning","info"];function eU(e){let t=eO.indexOf(e);return -1===t?eO.length:t}function eB({label:e,value:t,tone:n="neutral"}){return(0,s.jsxs)("div",{className:"rounded-lg border border-edge bg-ink/40 px-3 py-2.5",children:[(0,s.jsx)("p",{className:"truncate text-xs uppercase tracking-wide text-fg-muted",title:e,children:e}),(0,s.jsx)("p",{className:`mt-0.5 text-lg font-semibold tabular-nums ${"bad"===n?"text-red-300":"warn"===n?"text-amber-300":"text-fg-hi"}`,children:t})]})}function eH({title:e,buckets:t,tones:n}){return(0,s.jsxs)("div",{children:[(0,s.jsx)("p",{className:"mb-1.5 text-xs font-medium uppercase tracking-wide text-fg-muted",children:e}),(0,s.jsx)("div",{className:"grid grid-cols-2 gap-2 sm:grid-cols-3",children:t.map(e=>(0,s.jsx)(eB,{label:e.label,value:b(e.count),tone:n?.(e)},e.key))})]})}function eG({rows:e}){let{bySeverity:t,byCategory:n,byBackend:l,total:r}=function(e){let t=new Map,s=new Map,n=new Map,l=0;for(let r of e){let e=Number(r.incidents)||0;if(e<=0)continue;l+=e,t.set(r.severity,(t.get(r.severity)??0)+e),s.set(r.category,(s.get(r.category)??0)+e);let a=""===r.backend?"unknown":r.backend;n.set(a,(n.get(a)??0)+e)}let r=e=>[...e.entries()].map(([e,t])=>({key:e,label:e,count:t})),a=r(t).sort((e,t)=>eU(e.key)-eU(t.key)||e.key.localeCompare(t.key)),i=(e,t)=>t.count-e.count||e.key.localeCompare(t.key);return{bySeverity:a,byCategory:r(s).sort(i),byBackend:r(n).sort(i),total:l}}(e);return(0,s.jsx)(_.Panel,{title:"Engine diagnostics",subtitle:"GPU-health incidents by severity, category & backend in the selected window",children:0===r?(0,s.jsxs)("div",{className:"space-y-1.5",children:[(0,s.jsx)("p",{className:"text-sm text-fg-muted",children:"No engine diagnostics in range."}),(0,s.jsxs)("p",{className:"text-xs text-fg-muted",children:["Engine diagnostics (",(0,s.jsx)("code",{className:"text-fg-hi",children:"graphics_diagnostic"}),") are"," ",(0,s.jsx)("span",{className:"text-fg-hi",children:"opt-in and off by default"}),". Enable"," ",(0,s.jsx)("code",{className:"text-fg-hi",children:"captureGraphicsDiagnostics"})," in the SDK to surface GPU errors, device losses, and shader-compile failures here."]})]}):(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsx)(eH,{title:"By severity",buckets:t,tones:e=>{var t;return"fatal"===(t=e.key)||"error"===t?"bad":"warning"===t?"warn":"neutral"}}),(0,s.jsx)(eH,{title:"By category",buckets:n}),(0,s.jsx)(eH,{title:"By backend",buckets:l})]})})}function eK({label:e,value:t}){return(0,s.jsxs)("div",{className:"rounded-lg border border-edge bg-ink/40 px-3 py-2.5",children:[(0,s.jsx)("p",{className:"truncate text-xs uppercase tracking-wide text-fg-muted",title:e,children:e}),(0,s.jsx)("p",{className:"mt-0.5 text-lg font-semibold tabular-nums text-fg-hi",children:t})]})}function eV({title:e,buckets:t}){return(0,s.jsxs)("div",{children:[(0,s.jsx)("p",{className:"mb-1.5 text-xs font-medium uppercase tracking-wide text-fg-muted",children:e}),(0,s.jsx)("div",{className:"grid grid-cols-2 gap-2 sm:grid-cols-3",children:t.map(e=>(0,s.jsx)(eK,{label:e.label,value:b(e.count)},e.key))})]})}function eW({rows:e}){let{byApi:t,byBackend:n,byShadingLanguage:l,total:r}=function(e){let t=new Map,s=new Map,n=new Map,l=0;for(let r of e){let e=Number(r.sessions)||0;if(e<=0)continue;l+=e;let a=(t,s)=>{let n=""===s?"unknown":s;t.set(n,(t.get(n)??0)+e)};a(t,r.api),a(s,r.backend),a(n,r.shadingLanguage)}let r=(e,t)=>t.count-e.count||e.key.localeCompare(t.key),a=e=>[...e.entries()].map(([e,t])=>({key:e,label:e,count:t})).sort(r);return{byApi:a(t),byBackend:a(s),byShadingLanguage:a(n),total:l}}(e);return(0,s.jsx)(_.Panel,{title:"Rendering technology",subtitle:"Sessions by graphics API, backend & shading language in the selected window",children:0===r?(0,s.jsx)("p",{className:"text-sm text-fg-muted",children:"No sessions in range."}):(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsx)(eV,{title:"By API",buckets:t}),(0,s.jsx)(eV,{title:"By backend",buckets:n}),(0,s.jsx)(eV,{title:"By shading language",buckets:l})]})})}function eX({label:e,value:t,hint:n}){return(0,s.jsxs)("div",{className:"rounded-lg border border-edge bg-ink/40 px-3 py-2.5",children:[(0,s.jsx)("p",{className:"text-xs uppercase tracking-wide text-fg-muted",children:e}),(0,s.jsx)("p",{className:"mt-0.5 text-lg font-semibold tabular-nums text-fg-hi",children:t}),n?(0,s.jsx)("p",{className:"text-[11px] text-fg-muted",children:n}):null]})}function eJ({buckets:e,bucketSize:t}){if(0===e.length)return(0,s.jsx)("p",{className:"text-sm text-fg-muted",children:"No camera samples in range."});let n=[...e].sort((e,t)=>e.bucket-t.bucket),l=n.reduce((e,t)=>Math.max(e,t.count),0)||1;return(0,s.jsx)("div",{className:"flex flex-col gap-1",children:n.map(e=>{let n=e.bucket*t;return(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsxs)("span",{className:"w-24 shrink-0 text-right font-mono text-[11px] text-fg-muted",children:[b(n,1),"–",b(n+t,1)]}),(0,s.jsx)("div",{className:"h-3.5 flex-1 overflow-hidden rounded-sm bg-ink/60",children:(0,s.jsx)("div",{className:"h-full rounded-sm bg-amber",style:{width:`${e.count/l*100}%`}})}),(0,s.jsx)("span",{className:"w-12 shrink-0 text-right font-mono text-[11px] text-fg-muted",children:b(e.count)})]},e.bucket)})})}function eq({coverage:e,cellSize:t,distance:n,bucketSize:l,navigation:r}){let a=e.length,i=e.reduce((e,t)=>e+t.count,0),o=r.reduce((e,t)=>e+t.total_distance,0),c=r.reduce((e,t)=>e+t.segments,0),d=r.reduce((e,t)=>e+t.active_segments,0),u=r.length,m=a>0||r.length>0;return(0,s.jsx)(_.Panel,{title:"Scene traversal",subtitle:"Coverage, camera distance & navigation effort — derived from camera_sample",collapsible:!0,defaultCollapsed:!0,children:m?(0,s.jsxs)("div",{className:"flex flex-col gap-5",children:[(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-2 sm:grid-cols-4",children:[(0,s.jsx)(eX,{label:"Visited cells",value:b(a),hint:`${b(t,2)} u voxels`}),(0,s.jsx)(eX,{label:"Camera samples",value:b(i)}),(0,s.jsx)(eX,{label:"Avg travel",value:b(u>0?o/u:0,1),hint:u>0?`over ${b(u)} sessions`:void 0}),(0,s.jsx)(eX,{label:"Active movement",value:`${b(100*(c>0?d/c:0),0)}%`,hint:"of camera segments"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("p",{className:"mb-1.5 text-xs uppercase tracking-wide text-fg-muted",children:"Camera distance distribution"}),(0,s.jsx)(eJ,{buckets:n,bucketSize:l})]})]}):(0,s.jsx)("p",{className:"text-sm text-fg-muted",children:"No camera samples in range."})})}let eY={babylon:"Babylon.js","babylon-lite":"Babylon (lite)",three:"three.js",playcanvas:"PlayCanvas",r3f:"react-three-fiber",aframe:"A-Frame"};function eZ({project:e,playgroundUrl:t,onView:n,onOpenOverlay:r}){var a;let i=e.scene,o=i?.engines.length?i.engines:[],[c,d]=(0,l.useState)(i?.defaultEngine??o[0]??""),u=t.length>0&&c.length>0;return(0,s.jsxs)("div",{className:"flex flex-col gap-3 rounded-xl border border-edge bg-panel p-4",children:[(0,s.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-sm font-semibold text-fg-hi",children:i?.label??e.name}),(0,s.jsx)("p",{className:"text-xs text-fg-muted",children:e.name})]}),i?(0,s.jsx)("span",{className:"shrink-0 rounded-full border border-edge bg-ink/50 px-2 py-0.5 text-[11px] text-fg-muted",children:"first-person"===i.cameraMode?"first-person":"viewer"}):null]}),i?.description?(0,s.jsx)("p",{className:"text-xs leading-relaxed text-fg-muted",children:i.description}):(0,s.jsx)("p",{className:"text-xs leading-relaxed text-fg-muted",children:"A project without scene metadata — open its analytics directly."}),o.length>1?(0,s.jsxs)("label",{className:"flex flex-col gap-1 text-[11px] text-fg-muted",children:["Engine",(0,s.jsx)("select",{className:"rounded-md border border-edge bg-ink px-2 py-1.5 text-xs text-fg outline-none focus:border-saffron",value:c,onChange:e=>d(e.target.value),children:o.map(e=>(0,s.jsx)("option",{value:e,children:eY[e]??e},e))})]}):1===o.length?(0,s.jsxs)("p",{className:"text-[11px] text-fg-muted",children:["Engine: ",eY[a=o[0]]??a]}):null,(0,s.jsxs)("div",{className:"mt-auto flex flex-wrap gap-2 pt-1",children:[(0,s.jsx)("button",{type:"button",onClick:()=>n(e),className:"rounded-md bg-amber px-3 py-1.5 text-xs font-medium text-ink transition hover:bg-ember",children:"View analytics"}),i?(0,s.jsx)("button",{type:"button",disabled:!u,onClick:()=>r(e,c),className:"rounded-md border border-edge px-3 py-1.5 text-xs text-fg transition hover:border-amber hover:text-fg-hi disabled:opacity-40",children:"Open live scene"}):null]})]})}function eQ({projects:e,playgroundUrl:t,onView:n}){let[r,a]=(0,l.useState)(null),i=(0,l.useMemo)(()=>{let t=[],s=[],n=[];for(let l of e)l.scene?"first-person"===l.scene.cameraMode?s.push(l):t.push(l):n.push(l);return{viewer:t,firstPerson:s,other:n}},[e]),o=(e,s)=>{let n=e.scene;n&&t&&a({url:`${t.replace(/\/$/,"")}/?scene=${encodeURIComponent(n.id)}&engine=${encodeURIComponent(s)}`,title:`${n.label} \xb7 ${eY[s]??s}`})},c=(e,l)=>l.length>0?(0,s.jsxs)("section",{className:"flex flex-col gap-3",children:[(0,s.jsx)("h2",{className:"text-xs font-semibold uppercase tracking-wide text-fg-muted",children:e}),(0,s.jsx)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3",children:l.map(e=>(0,s.jsx)(eZ,{project:e,playgroundUrl:t,onView:n,onOpenOverlay:o},e.id))})]}):null;return(0,s.jsxs)(_.Panel,{title:"Scenes",subtitle:"Pick a scene to explore its analytics, or open it live to test capture.",children:[(0,s.jsxs)("div",{className:"flex flex-col gap-6",children:[c("Viewer",i.viewer),c("First-person",i.firstPerson),c("Other projects",i.other)]}),r?(0,s.jsx)("div",{className:"fixed inset-0 z-50 flex flex-col bg-black/70 p-4 sm:p-8",role:"dialog","aria-modal":"true","aria-label":"Live scene overlay",children:(0,s.jsxs)("div",{className:"mx-auto flex h-full w-full max-w-6xl flex-col overflow-hidden rounded-xl border border-edge bg-panel",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-3 border-b border-edge px-4 py-2.5",children:[(0,s.jsx)("p",{className:"text-sm text-fg",children:r.title}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("a",{href:r.url,target:"_blank",rel:"noreferrer",className:"rounded-md border border-edge px-3 py-1.5 text-xs text-fg transition hover:border-amber hover:text-fg-hi",children:"Open in new tab ↗"}),(0,s.jsx)("button",{type:"button",onClick:()=>a(null),className:"rounded-md border border-edge px-3 py-1.5 text-xs text-fg transition hover:border-amber hover:text-fg-hi",children:"Close ✕"})]})]}),(0,s.jsx)("iframe",{title:r.title,src:r.url,className:"h-full w-full flex-1 bg-ink"})]})}):null]})}function e0({sessions:e,onSelect:t,selectedId:n}){return(0,s.jsx)(_.Panel,{title:"Sessions",subtitle:t?`${e.length} most recent \xb7 select to drill in`:`${e.length} most recent`,children:(0,s.jsx)(ea,{sessions:e,onSelect:t,selectedId:n})})}function e1({baseUrl:e,apiKey:t,sessionId:n,scene:r}){let i=(0,l.useRef)(null),[o,c]=(0,l.useState)([]),[d,u]=(0,l.useState)("loading");return(0,l.useEffect)(()=>{let s=!1;return u("loading"),new a.CollectorApi(e,t).sessionTrajectory(n,{scene:r,limit:5e3}).then(e=>{s||(c(e),u("ready"))}).catch(()=>{s||(c([]),u("error"))}),()=>{s=!0}},[e,t,n,r]),(0,l.useEffect)(()=>{let e=i.current;if(!e)return;let t=e.getContext("2d");if(!t||(t.clearRect(0,0,360,360),t.fillStyle="#0b0e14",t.fillRect(0,0,360,360),0===o.length))return;let s=1/0,n=-1/0,l=1/0,r=-1/0;for(let e of o)e.x<s&&(s=e.x),e.x>n&&(n=e.x),e.z<l&&(l=e.z),e.z>r&&(r=e.z);let a=328/Math.max(n-s,r-l,.001),c=e=>[16+(e.x-s)*a,16+(r-e.z)*a];t.lineWidth=2,t.strokeStyle="#38bdf8",t.beginPath(),o.forEach((e,s)=>{let[n,l]=c(e);0===s?t.moveTo(n,l):t.lineTo(n,l)}),t.stroke();let d=o[0],u=o[o.length-1];if(d){let[e,s]=c(d);t.fillStyle="#22c55e",t.beginPath(),t.arc(e,s,5,0,2*Math.PI),t.fill()}if(u){let[e,s]=c(u);t.fillStyle="#ef4444",t.beginPath(),t.arc(e,s,5,0,2*Math.PI),t.fill()}},[o]),(0,s.jsxs)(_.Panel,{title:"Walked path",subtitle:"Camera trajectory (top-down)",help:"The ordered route this session's camera took across the X/Z ground plane — green is the start, red is the end. Meaningful for first-person (walkable) sessions.",children:[(0,s.jsx)("div",{className:"flex justify-center",children:(0,s.jsx)("canvas",{ref:i,width:360,height:360,className:"rounded-lg border border-edge","aria-label":"Session camera trajectory"})}),"loading"===d?(0,s.jsx)("p",{className:"mt-2 text-center text-xs text-fg-muted",children:"Loading trajectory…"}):"error"===d?(0,s.jsx)("p",{className:"mt-2 text-center text-xs text-red-400",children:"Failed to load trajectory."}):0===o.length?(0,s.jsx)("p",{className:"mt-2 text-center text-xs text-fg-muted",children:"No camera movement recorded for this session."}):null]})}function e2(e){return e>=36e5?`${Math.round(e/36e5)}h`:e>=6e4?`${Math.round(e/6e4)}m`:e>=1e3?`${Math.round(e/1e3)}s`:`${e}ms`}function e5({buckets:e,intervalMs:t,onBrush:n,onClear:r,brushed:a}){let i=(0,l.useRef)(null),o=(0,l.useRef)(null),[c,d]=(0,l.useState)(640),u=(0,l.useRef)(null),[m,x]=(0,l.useState)(null);(0,l.useEffect)(()=>{let e=i.current;if(!e)return;let t=()=>d(Math.max(320,e.clientWidth));t();let s=new ResizeObserver(t);return s.observe(e),()=>s.disconnect()},[]);let p={x:40,y:14,w:Math.max(1,c-40-36),h:114},h=e.length>0?{start:e[0].bucket,end:e[e.length-1].bucket+t}:null,g=(0,l.useCallback)(e=>{if(!h)return 0;let t=(e-p.x)/p.w;return Math.round(h.start+Math.max(0,Math.min(1,t))*(h.end-h.start))},[h,p.x,p.w]);(0,l.useEffect)(()=>{let s=o.current;if(!s)return;let n=s.getContext("2d");if(!n)return;if(n.clearRect(0,0,c,150),n.fillStyle="#0b0e14",n.fillRect(0,0,c,150),0===e.length||!h){n.fillStyle="#64748b",n.font="12px system-ui, sans-serif",n.textAlign="center",n.fillText("No events in range",c/2,75);return}let l=e.reduce((e,t)=>Math.max(e,t.events),0)||1,r=h.end-h.start,a=Math.max(1,p.w/e.length*.8);for(let t of e){let e=p.x+(t.bucket-h.start)/r*p.w,s=t.events/l*p.h;n.fillStyle="rgba(56, 189, 248, 0.55)",n.fillRect(e,p.y+p.h-s,a,s)}if(n.font="10px system-ui, sans-serif",n.textBaseline="middle",n.fillStyle="rgba(56, 189, 248, 0.95)",n.textAlign="right",n.fillText(String(l),p.x-5,p.y+4),n.fillText("0",p.x-5,p.y+p.h),n.textBaseline="alphabetic",n.fillStyle="rgba(56, 189, 248, 0.7)",n.textAlign="left",n.fillText(`events / ${e2(t)}`,p.x,144),m){let e=Math.min(m.x0,m.x1),t=Math.max(m.x0,m.x1);n.fillStyle="rgba(56, 189, 248, 0.18)",n.fillRect(e,p.y,t-e,p.h),n.strokeStyle="rgba(56, 189, 248, 0.8)",n.lineWidth=1,n.strokeRect(e,p.y,t-e,p.h)}},[e,c,h,m,t,p.x,p.y,p.w,p.h]);let f=()=>{let e=u.current;if(u.current=null,x(null),!e||4>Math.abs(e.x1-e.x0))return;let t=g(Math.min(e.x0,e.x1)),s=g(Math.max(e.x0,e.x1));s>t&&n(t,s)};return(0,s.jsx)(_.Panel,{title:"Event volume over time",subtitle:`Bars: events per ${e2(t)} \xb7 drag to zoom the time window`,children:(0,s.jsxs)("div",{ref:i,className:"relative",children:[(0,s.jsx)("canvas",{ref:o,width:c,height:150,className:"w-full cursor-crosshair rounded-lg border border-edge",onMouseDown:e=>{let t=e.currentTarget.getBoundingClientRect(),s=e.clientX-t.left;u.current={x0:s,x1:s},x({x0:s,x1:s})},onMouseMove:e=>{if(!u.current)return;let t=e.currentTarget.getBoundingClientRect(),s={...u.current,x1:e.clientX-t.left};u.current=s,x(s)},onMouseUp:f,onMouseLeave:f,"aria-label":"Event volume time series"}),a&&r?(0,s.jsx)("button",{type:"button",onClick:r,className:"absolute right-2 top-2 rounded-md border border-edge bg-ink/80 px-2 py-1 text-xs text-fg transition hover:border-amber hover:text-fg-hi",children:"Clear zoom"}):null]})})}var e3=e.i(19761);function e4({label:e,value:t}){return(0,s.jsxs)("div",{className:"flex items-baseline justify-between gap-3 py-0.5",children:[(0,s.jsx)("span",{className:"shrink-0 text-xs text-fg-muted",children:e}),(0,s.jsx)("span",{className:"min-w-0 truncate text-right font-mono text-xs text-fg",title:t,children:t})]})}function e6({title:e,rows:t}){return 0===t.length?null:(0,s.jsxs)("div",{className:"rounded-lg border border-edge bg-ink/40 p-3",children:[(0,s.jsx)("p",{className:"mb-1.5 text-[10px] font-semibold uppercase tracking-wide text-fg-muted",children:e}),t.map(([e,t])=>(0,s.jsx)(e4,{label:e,value:t},e))]})}function e8(e){let t=[];for(let[s,n]of e){let e=null==n||""===n?null:Array.isArray(n)?n.join(" × "):"boolean"==typeof n?n?"yes":"no":"object"==typeof n?JSON.stringify(n):String(n);null!=e&&t.push([s,e])}return t}function e9({baseUrl:e,apiKey:t,sessionId:n,hiddenTypes:r,onToggleType:a,onSetAllHidden:i}){let o,c,d,[u,m]=(0,l.useState)([]),[x,p]=(0,l.useState)("loading"),[h,g]=(0,l.useState)(null),[f,b]=(0,l.useState)(new Set);(0,l.useEffect)(()=>{let s=!1;return p("loading"),g(null),m([]),b(new Set),(async()=>{try{let l=await (0,e3.fetchSessionEvents)({endpoint:e,apiKey:t,sessionId:n});if(s)return;m(l),p(0===l.length?"empty":"ready")}catch(e){if(s)return;p("error"),g(e instanceof Error?e.message:"Failed to load session data.")}})(),()=>{s=!0}},[e,t,n]);let{meta:v,byType:j,allTypes:y,sorted:w}=(0,l.useMemo)(()=>{let e=[...u].sort((e,t)=>e.ts-t.ts),t=new Map;for(let s of e)t.set(s.type,(t.get(s.type)??0)+1);let s=[...t.keys()].sort(),n=e[0];return{meta:{start:n,end:e[e.length-1],startEvent:e.find(e=>"session_start"===e.type)},byType:t,allTypes:s,sorted:e}},[u]);if("ready"!==x)return(0,s.jsx)(_.Panel,{title:"Session data",subtitle:"Metadata and captured event breakdown",children:(0,s.jsx)("p",{className:"py-6 text-center text-sm text-fg-muted",children:"loading"===x?"Loading session data…":"empty"===x?"No events captured for this session.":h??"Session data unavailable."})});let N=v.start,k=v.end,S=v.startEvent,M=N&&k?k.ts-N.ts:0,P=e=>e?new Date(e).toLocaleString():"—",C=N?.pageMeta,z=e8([["Project",N?.projectId],["Session",N?.sessionId],["Visitor",N?.visitorId],["SDK",N?.sdkVersion],["Scene ID",N?.sceneId],["URL",N?.url],["Started",P(N?.ts)],["Ended",P(k?.ts)],["Duration",(c=Math.floor((o=Math.round(M/1e3))/60),d=o%60,c>0?`${c}m ${d}s`:`${d}s`)],["Events",String(w.length)]]),R=C?e8([["Title",C.title],["Language",C.language],["Referrer",C.referrer],["Viewport",C.viewport],["Device pixel ratio",C.devicePixelRatio]]):[],T=S?.type==="session_start"?S.device:void 0,A=S?.type==="session_start"?S.graphics:void 0,E=S?.type==="session_start"?S.scene:void 0,I=S?.type==="session_start"?S.connector:void 0,$=S?.type==="session_start"?S.user:void 0,D=e8([["Engine",T?.engine],["Graphics API",A?.api],["Backend",A?.backend],["API version",A?.apiVersion],["Shading language",A?.shadingLanguage],["GPU vendor",T?.vendor],["GPU renderer",T?.renderer],["Max texture size",T?.maxTextureSize],["CPU cores",T?.hardwareConcurrency],["Device memory (GB)",T?.deviceMemoryGb],["Mobile",T?.isMobile]]),F=e8([["Connector",I?[I.name,I.version].filter(Boolean).join(" "):null],["Coordinate system",I?.coordinateSystem],["Description",E?.description],["Camera type",E?.cameraType],["Camera name",E?.cameraName],["Mesh count",E?.meshCount],["User id",$?.id],["User traits",$?.traits]]),L=y.every(e=>r.has(e));return(0,s.jsxs)(_.Panel,{title:"Session data",subtitle:"Metadata that was sent and a per-feature breakdown — toggle a type to show/hide it in the replay, expand to inspect raw payloads",help:(0,s.jsxs)(s.Fragment,{children:["Project-level metadata beyond the ",(0,s.jsx)("strong",{children:"Project ID"}),"isn't stored in the OSS collector (Phase 1) — everything here is derived from the session's own events. The"," ",(0,s.jsx)("strong",{children:"Device / graphics"})," and ",(0,s.jsx)("strong",{children:"Scene / connector"})," blocks come from the one-time ",(0,s.jsx)("code",{children:"session_start"})," event."]}),children:[(0,s.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,s.jsx)(e6,{title:"Identity",rows:z}),(0,s.jsx)(e6,{title:"Page context",rows:R}),(0,s.jsx)(e6,{title:"Device / graphics",rows:D}),(0,s.jsx)(e6,{title:"Scene / connector",rows:F})]}),(0,s.jsxs)("div",{className:"mt-4",children:[(0,s.jsxs)("div",{className:"mb-2 flex items-center justify-between",children:[(0,s.jsxs)("p",{className:"text-[10px] font-semibold uppercase tracking-wide text-fg-muted",children:["Captured features (",y.length," event types)"]}),(0,s.jsx)("button",{type:"button",onClick:()=>i(!L,y),className:"rounded-md border border-edge px-2 py-1 text-xs text-fg transition hover:border-amber hover:text-fg-hi",children:L?"Show all":"Hide all"})]}),(0,s.jsx)("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-2 lg:grid-cols-3",children:y.map(e=>{let t=!r.has(e),n=f.has(e),l=w.filter(t=>t.type===e).slice(0,3);return(0,s.jsxs)("div",{className:`self-start rounded-lg border border-edge bg-ink/40 ${n?"sm:col-span-2 lg:col-span-3":""}`,children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 px-2.5 py-1.5",children:[(0,s.jsxs)("label",{className:"flex min-w-0 flex-1 cursor-pointer items-center gap-2",children:[(0,s.jsx)("input",{type:"checkbox",checked:t,onChange:()=>a(e),className:"accent-amber"}),(0,s.jsx)("span",{className:"truncate font-mono text-xs text-fg",children:e})]}),(0,s.jsx)("span",{className:"tabular-nums text-xs text-fg-muted",children:j.get(e)}),(0,s.jsx)("button",{type:"button",onClick:()=>b(t=>{let s=new Set(t);return s.has(e)?s.delete(e):s.add(e),s}),"aria-expanded":n?"true":"false",className:"rounded border border-edge px-1.5 py-0.5 text-[10px] text-fg-muted transition hover:border-amber hover:text-fg-hi",children:n?"Hide raw":"Raw"})]}),n?(0,s.jsxs)("pre",{className:"max-h-64 overflow-auto border-t border-edge bg-black/30 px-3 py-2 text-[10px] leading-relaxed text-fg",children:[l.map(e=>JSON.stringify(e,null,2)).join("\n\n"),(j.get(e)??0)>l.length?`
|
|
2
|
+
|
|
3
|
+
… ${(j.get(e)??0)-l.length} more`:""]}):null]},e)})})]})]})}function e7(e){return e.length>10?`${e.slice(0,8)}…`:e}function te(e,t){let s=Math.max(0,Math.round((t-e)/1e3));if(s<60)return`${s}s ago`;let n=Math.floor(s/60);return n<60?`${n}m ago`:`${Math.floor(n/60)}h ago`}let tt={active:"bg-emerald-400",recent:"bg-amber-400",idle:"bg-fg-muted"},ts={idle:"offline",connecting:"connecting…",open:"live",reconnecting:"reconnecting…"};function tn({status:e,sessions:t}){let n="open"===e;return(0,s.jsxs)("span",{className:"inline-flex items-center gap-2 rounded-full border border-edge bg-ink px-3 py-1 text-xs",children:[(0,s.jsxs)("span",{className:"relative flex h-2 w-2",children:[n?(0,s.jsx)("span",{className:"absolute inline-flex h-full w-full animate-ping rounded-full bg-emerald-400 opacity-75"}):null,(0,s.jsx)("span",{className:`relative inline-flex h-2 w-2 rounded-full ${n?"bg-emerald-400":"idle"===e?"bg-fg-muted":"bg-amber-400"}`})]}),(0,s.jsx)("span",{className:"font-medium text-fg",children:n?`${b(t)} live now`:ts[e]})]})}function tl({snapshot:e,status:t,feed:n,now:l,onSelectSession:r}){let a=e?.sessions??[],i=e?.activeSessions??0,o=e?.activeVisitors??0;return(0,s.jsxs)(_.Panel,{title:"Live now",subtitle:"Active sessions and a real-time event feed, updating in place.",help:(0,s.jsx)(s.Fragment,{children:"Sessions seen within the liveness window, streamed over SSE from the collector. The roster is intentionally non-identifying — no geo, user-agent, or visitor id. Click a session to follow it live."}),children:[(0,s.jsxs)("div",{className:"mb-3 flex flex-wrap items-center gap-4",children:[(0,s.jsx)(tn,{status:t,sessions:i}),(0,s.jsxs)("span",{className:"text-xs text-fg-muted",children:[(0,s.jsx)("span",{className:"font-semibold text-fg",children:b(o)})," visitor",1===o?"":"s"]})]}),(0,s.jsxs)("div",{className:"grid grid-cols-1 gap-4 lg:grid-cols-2",children:[(0,s.jsxs)("div",{children:[(0,s.jsxs)("p",{className:"mb-2 text-xs uppercase tracking-wide text-fg-muted",children:["Sessions (",a.length,")"]}),0===a.length?(0,s.jsx)("p",{className:"text-sm text-fg-muted",children:"open"===t?"No active sessions right now.":"Waiting for live data…"}):(0,s.jsx)("ul",{className:"flex max-h-64 flex-col gap-1 overflow-y-auto pr-1",children:a.map(e=>(0,s.jsx)("li",{children:r?(0,s.jsxs)("button",{type:"button",onClick:()=>r(e.sessionId),className:"flex w-full items-center gap-2 rounded-md border border-transparent px-2 py-1.5 text-left transition hover:border-edge hover:bg-ink",children:[(0,s.jsx)("span",{className:`h-2 w-2 flex-none rounded-full ${tt[e.activity]}`,"aria-hidden":"true"}),(0,s.jsx)("span",{className:"font-mono text-xs text-fg",children:e7(e.sessionId)}),(0,s.jsx)("span",{className:"truncate text-xs text-fg-muted",children:e.sceneId}),(0,s.jsx)("span",{className:"ml-auto flex-none text-xs text-fg-muted",children:te(e.lastSeen,l)})]}):(0,s.jsxs)("div",{className:"flex w-full items-center gap-2 px-2 py-1.5",children:[(0,s.jsx)("span",{className:`h-2 w-2 flex-none rounded-full ${tt[e.activity]}`,"aria-hidden":"true"}),(0,s.jsx)("span",{className:"font-mono text-xs text-fg",children:e7(e.sessionId)}),(0,s.jsx)("span",{className:"truncate text-xs text-fg-muted",children:e.sceneId}),(0,s.jsx)("span",{className:"ml-auto flex-none text-xs text-fg-muted",children:te(e.lastSeen,l)})]})},e.sessionId))})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("p",{className:"mb-2 text-xs uppercase tracking-wide text-fg-muted",children:"Event feed"}),0===n.length?(0,s.jsx)("p",{className:"text-sm text-fg-muted",children:"open"===t?"Listening for events…":"Waiting for live data…"}):(0,s.jsx)("ul",{className:"flex max-h-64 flex-col gap-1 overflow-y-auto pr-1 font-mono text-xs",children:n.map((e,t)=>(0,s.jsxs)("li",{className:"flex items-center gap-2 rounded-md px-2 py-1",children:[(0,s.jsx)("span",{className:"flex-none rounded bg-amber/15 px-1.5 py-0.5 text-[11px] text-saffron",children:e.type}),(0,s.jsx)("span",{className:"text-fg-muted",children:e7(e.sessionId)}),(0,s.jsx)("span",{className:"ml-auto flex-none text-fg-muted",children:te(e.ts,l)})]},`${e.sessionId}-${e.ts}-${t}`))})]})]})]})}let tr=(0,n.default)(()=>e.A(69091).then(e=>e.SessionReplay),{loadableGenerated:{modules:[12449]},ssr:!1}),ta=(0,n.default)(()=>e.A(15867).then(e=>e.WorldHeatmap3DView),{loadableGenerated:{modules:[94452]},ssr:!1}),ti=(0,n.default)(()=>e.A(15867).then(e=>e.ClickRays3DView),{loadableGenerated:{modules:[94452]},ssr:!1}),to={sessions:[],camera:[],perf:null,gaze:[],clickRays:[],hasFirstPerson:!1,proxyMeshes:[],timeseries:[],counts:[],diagnostics:[],renderingTech:[],coverage:[],distance:[],navigation:[],sources:[],floorPlan:[],performance:{distribution:null,histogram:[],frameTime:null,jank:null,byDevice:[],byScene:[],resources:null,stability:null},intervalMs:36e5};e.s(["default",0,function(){let[e,n]=(0,l.useState)(r.DEFAULT_COLLECTOR_URL),[o,c]=(0,l.useState)(r.DEFAULT_API_KEY),[m,p]=(0,l.useState)([]),[h,g]=(0,l.useState)(""),[f,b]=(0,l.useState)(i),[y,k]=(0,l.useState)([]),[S,M]=(0,l.useState)(to),[P,C]=(0,l.useState)("idle"),[z,T]=(0,l.useState)(null),[A,E]=(0,l.useState)(null),[I,$]=(0,l.useState)("idle"),[D,F]=(0,l.useState)(new Set),[L,O]=(0,l.useState)([]),[U,B]=(0,l.useState)(()=>Date.now()),[H,G]=(0,l.useState)(0),[K,V]=(0,l.useState)(void 0),W=(0,l.useRef)(void 0),X=(0,l.useRef)(new Set),J=(0,l.useRef)(f);J.current=f;let q=(0,l.useRef)(i.window),Y=(0,l.useRef)(h);Y.current=h;let Z=(0,l.useRef)(A);Z.current=A;let Q=(0,l.useRef)(null),ee=(0,l.useRef)(null),et=(0,l.useRef)(!1),es=(0,l.useCallback)((e,t)=>{let s=`/projects/${encodeURIComponent(e)}`;return t?`${s}/session/${encodeURIComponent(t)}`:s},[]),en=(0,l.useCallback)(e=>{window.location.pathname!==e&&window.history.pushState({},"",e)},[]);(0,l.useEffect)(()=>{let e=window.location.pathname.match(/^\/projects\/([^/]+)(?:\/session\/([^/]+))?/);e?.[1]&&(Q.current=decodeURIComponent(e[1]),e[2]&&(ee.current=decodeURIComponent(e[2])))},[]),(0,l.useEffect)(()=>{r.COLLECTOR_URL_IS_PINNED||n(window.location.origin)},[]),(0,l.useEffect)(()=>{let e=!1;return fetch("/api/projects").then(e=>e.ok?e.json():[]).then(t=>{if(e||!Array.isArray(t)||0===t.length)return;p(t);let[s]=t,n=Q.current,l=(n?t.find(e=>e.id===n):void 0)??t.find(e=>e.apiKey===r.DEFAULT_API_KEY)??s;l&&(g(l.id),c(l.apiKey),(n&&l.id===n||1===t.length&&!l.scene)&&(et.current=!0))}).catch(()=>{}),()=>{e=!0}},[]);let el=(0,l.useCallback)(async t=>{let s=t??o;if(!s){C("error"),T("An API key is required.");return}C("loading"),T(null),E(null),$("idle");let n=J.current,l=u(n),r=d(n),i=new a.CollectorApi(e,s);try{let e=await i.sessions({...l,source:void 0,limit:100}),t=r.until??Date.now(),s=r.since;if(null==s){let n=e.reduce((e,t)=>{var s;let n=(s=t.started_at,new Date(s.includes("T")?s:s.replace(" ","T")+"Z").getTime());return Number.isFinite(n)?Math.min(e,n):e},Date.now());s=Number.isFinite(n)?n:t-864e5}let n=x(Math.max(6e4,t-s)),a=1e3*n,[o,c,d,u,m,p,h,g,f,b,v,j,y,w,N]=await Promise.all([i.cameraHeatmap({...l,source:void 0,bins:36}),i.perf({...l,source:void 0}),i.gazeHeatmap({...l,source:void 0,cellSize:.5}),i.clickRays({...l,cellSize:.5}),i.scenes({since:r.since,until:r.until,limit:200}),i.timeseries({since:r.since,until:r.until,scene:l.scene,interval:n}),i.eventCounts({since:r.since,until:r.until,scene:l.scene}),i.graphicsDiagnosticCounts({...l,source:void 0}),i.renderingTechnology({...l,source:void 0}),i.coverage({...l,source:void 0,cellSize:1}),i.cameraDistance({...l,source:void 0,bucketSize:1}),i.navigation({...l,source:void 0}),i.interactionsBySource(l),i.cameraPositionHeatmap({...l,source:void 0,cameraMode:"first-person",cellSize:1}),(async()=>{let[e,t,s,n,r,a,o,c]=await Promise.all([i.perfDistribution({...l,source:void 0}),i.fpsHistogram({...l,source:void 0}),i.frameTimePercentiles({...l,source:void 0}),i.jankRate({...l,source:void 0}),i.perfByDevice({...l,source:void 0}),i.perfByScene({...l,source:void 0,scene:void 0}),i.resourcePercentiles({...l,source:void 0}),i.stabilityCounts({...l,source:void 0})]);return{distribution:e,histogram:t,frameTime:s,jank:n,byDevice:r,byScene:a,resources:o,stability:c}})()]);k(m),M(t=>({sessions:e,camera:o,perf:c,gaze:d,clickRays:u,hasFirstPerson:w.length>0,proxyMeshes:t.proxyMeshes,timeseries:p,counts:h,diagnostics:g,renderingTech:f,coverage:b,distance:v,navigation:j,sources:y,floorPlan:w,performance:N,intervalMs:a})),C("ready")}catch(e){M(to),C("error"),T(e instanceof a.ApiError?`${e.status}: ${e.message}`:e instanceof Error?e.message:"Request failed.")}},[o,e]),er=(0,l.useCallback)(e=>{g(e.id),c(e.apiKey),V(void 0),W.current=void 0,en(es(e.id)),el(e.apiKey)},[el,es,en]);(0,l.useEffect)(()=>{if("idle"===P)return;let e=setTimeout(()=>void el(),300);return()=>clearTimeout(e)},[f]);let ea="idle"!==P&&!!o,ei=(0,l.useRef)(0),eo=(0,l.useRef)(!1);eo.current=null!=A;let ec=(0,l.useCallback)(e=>{O(t=>[e,...t].slice(0,30)),X.current.forEach(t=>t(e)),!eo.current&&e.sceneId&&e.sceneId!==W.current&&(W.current=e.sceneId,V(e.sceneId),G(e=>e+1));let t=Date.now();eo.current||t-ei.current<5e3||(ei.current=t,el(),G(e=>e+1))},[el]),{snapshot:ed,status:eu}=(0,j.useLivePresence)(e,o,ea);(0,j.useLiveStream)(e,o,ea,ec),(0,l.useEffect)(()=>{if(!ea)return;let e=setInterval(()=>B(Date.now()),1e3);return()=>clearInterval(e)},[ea]),(0,l.useEffect)(()=>{if(!ea)return;let t=new a.CollectorApi(e,o),s=!1,n=async()=>{let e=d(J.current),n=await t.scenes({since:e.since,until:e.until,limit:200}).catch(()=>null);!s&&n&&k(n)},l=setInterval(()=>void n(),5e3);return()=>{s=!0,clearInterval(l)}},[ea,e,o]);let em=f.scene&&f.scene.length>0?f.scene:void 0;(0,l.useEffect)(()=>{if("idle"===P)return;let t=!1;return(async()=>{let s=new a.CollectorApi(e,o),n=em?(await s.sceneRepresentation(em).catch(()=>null))?.proxy?.meshes??[]:await (0,v.mergeSceneProxies)(s,u(J.current));t||M(e=>({...e,proxyMeshes:n}))})(),()=>{t=!0}},[em,e,o,P,H]);let ex=(0,l.useCallback)(async t=>{let s=u(J.current),n=new a.CollectorApi(e,o),[l,r,i]=await Promise.all([n.cameraHeatmap({...s,source:void 0,bins:36,session:t}),n.perf({...s,source:void 0,session:t}),n.sessionMeta(t).catch(()=>null)]);return{id:t,meta:i,camera:l,perf:r}},[e,o]),ep=(0,l.useCallback)(async e=>{let t=Y.current;t&&en(es(t,e)),window.scrollTo({top:0,behavior:"smooth"}),E({id:e,meta:null,camera:[],perf:null}),$("loading"),F(new Set);try{E(await ex(e)),$("ready")}catch(e){$("error"),T(e instanceof a.ApiError?`${e.status}: ${e.message}`:e instanceof Error?e.message:"Request failed.")}},[ex,es,en]),eh=(0,l.useCallback)(()=>{let e=Y.current;e&&en(es(e)),E(null),$("idle"),F(new Set)},[es,en]),eg=(0,l.useCallback)(e=>{let t=m.find(t=>t.id===e);g(e),t&&c(t.apiKey),M(to),k([]),C("idle"),T(null),E(null),$("idle"),F(new Set)},[m]),ef=(0,l.useCallback)(e=>{F(t=>{let s=new Set(t);return s.has(e)?s.delete(e):s.add(e),s})},[]),eb=(0,l.useCallback)((e,t)=>{F(e?new Set(t):new Set)},[]),ev=(0,l.useCallback)((e,t)=>{b(s=>("custom"!==s.window&&(q.current=s.window),{...s,window:"custom",since:e,until:t}))},[]),ej=(0,l.useCallback)(()=>{b(e=>({...e,window:q.current}))},[]);(0,l.useEffect)(()=>{et.current&&o&&(et.current=!1,el())},[m,o,el]),(0,l.useEffect)(()=>{if("ready"===P&&ee.current){let e=ee.current;ee.current=null,ep(e)}},[P,ep]),(0,l.useEffect)(()=>{let e=()=>{let e=window.location.pathname.match(/^\/projects\/[^/]+(?:\/session\/([^/]+))?/),t=e?.[1]?decodeURIComponent(e[1]):null;t?Z.current?.id!==t&&ep(t):Z.current&&eh()};return window.addEventListener("popstate",e),()=>window.removeEventListener("popstate",e)},[ep,eh]);let ey="loading"===P,ew=(0,l.useMemo)(()=>new a.CollectorApi(e,o),[e,o]),eN=(0,l.useMemo)(()=>u(f),[f,H]),e_=(0,l.useCallback)(e=>{let t=X.current;return t.add(e),()=>{t.delete(e)}},[]),ez=(0,l.useMemo)(()=>({selectSession:e=>void ep(e),setTimeRange:(e,t)=>ev(e,t),setFilters:e=>b(t=>({...t,...e}))}),[ep,ev]),eE={api:ew,baseUrl:e,apiKey:o,params:eN,filters:f,capabilities:{hasFirstPerson:S.hasFirstPerson},actions:ez,live:{presence:ed,enabled:ea,subscribe:e_,sceneId:ea?K:void 0},settings:{}},eI={...eE,surface:"overview"},e$=A?{...eE,surface:"session",sessionId:A.id}:null,eF=function(){let[e,s]=(0,l.useState)(eM);return(0,l.useEffect)(()=>{let e,n,l=(e=eS(t.default.env.NEXT_PUBLIC_PANELS_MANIFEST_URL),n=eS(t.default.env.NEXT_PUBLIC_PANELS_ALLOWED_ORIGINS),{enabled:e.length>0,manifestUrls:e,allowOrigins:n});if(!l.enabled)return;let r=!1,a=new AbortController;return s({panels:[],errors:[],loading:!0}),(async()=>{let e=[],t=[],n=new Set;for(let s of l.manifestUrls){let r=await w(s,{signal:a.signal});if("code"in r){t.push(r);continue}let i=await N(r,{allowOrigins:l.allowOrigins.length>0?l.allowOrigins:void 0});for(let s of(t.push(...i.errors),i.panels)){if(n.has(s.id)){t.push({source:s.id,code:"invalid-panel",message:`Duplicate panel id "${s.id}" from another manifest — ignored`});continue}n.add(s.id),e.push(s)}}r||s({panels:e,errors:t,loading:!1})})(),()=>{r=!0,a.abort()}},[]),e}(),eO=(0,l.useMemo)(()=>(function(e,t){let s=new Map;for(let t of e)s.set(t.id,t);let n=[...e],l=[];for(let e of t){if(s.has(e.id)){l.push({source:e.id,code:"invalid-panel",message:`Duplicate panel id "${e.id}" — kept the existing panel`});continue}s.set(e.id,e),n.push(e)}return{panels:n,errors:l}})(ek,eF.panels),[eF.panels]),eU=eO.panels,eB=(0,l.useMemo)(()=>[...eF.errors,...eO.errors],[eF.errors,eO.errors]),eH=!!(A&&ed?.sessions.some(e=>e.sessionId===A.id)),eK=(0,l.useRef)(eH);return(0,l.useEffect)(()=>{let e=eK.current;if(eK.current=eH,!e||eH)return;let t=Z.current;if(!t||"ready"!==I)return;let s=t.id,n=!1;return(async()=>{try{let e=await ex(s);n||Z.current?.id!==s||E(e)}catch{}})(),()=>{n=!0}},[eH,I,ex]),(0,l.useEffect)(()=>{if(!eH||"ready"!==I)return;let e=Z.current?.id;if(!e)return;let t=!1,s=setInterval(()=>{(async()=>{try{let s=await ex(e);t||Z.current?.id!==e||E(s)}catch{}})()},1e3);return()=>{t=!0,clearInterval(s)}},[eH,I,ex]),(0,s.jsxs)("main",{className:"mx-auto max-w-6xl px-6 py-8",children:[(0,s.jsxs)("header",{className:"mb-6 flex items-center gap-3",children:[(0,s.jsx)("img",{src:"/logo.svg",alt:"Uptimizr",width:36,height:36,className:"h-9 w-9 shrink-0"}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h1",{className:"font-display text-2xl font-bold text-fg-hi",children:"Uptimizr"}),(0,s.jsx)("p",{className:"text-sm text-fg-muted",children:"Analytics for 3D scenes — open-source collector."})]})]}),(0,s.jsxs)("form",{className:"mb-6 flex flex-wrap items-end gap-3 rounded-xl border border-edge bg-panel p-4",onSubmit:e=>{e.preventDefault(),h&&en(es(h)),el()},children:[m.length>0?(0,s.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-fg-muted",children:["Project",(0,s.jsx)("select",{className:"min-w-56 rounded-md border border-edge bg-ink px-3 py-2 text-sm text-fg outline-none focus:border-saffron",value:h,onChange:e=>eg(e.target.value),children:m.map(e=>(0,s.jsx)("option",{value:e.id,children:e.name},e.id))})]}):null,(0,s.jsxs)("label",{className:"flex flex-1 flex-col gap-1 text-xs text-fg-muted",children:["Collector URL",(0,s.jsx)("input",{className:"min-w-56 rounded-md border border-edge bg-ink px-3 py-2 text-sm text-fg outline-none focus:border-saffron",value:e,onChange:e=>n(e.target.value),placeholder:"http://localhost:4318"})]}),(0,s.jsxs)("label",{className:"flex flex-1 flex-col gap-1 text-xs text-fg-muted",children:["Project API key",(0,s.jsx)("input",{className:"min-w-56 rounded-md border border-edge bg-ink px-3 py-2 text-sm text-fg outline-none focus:border-saffron",value:o,onChange:e=>c(e.target.value),type:"password",placeholder:"utk_…"})]}),(0,s.jsx)("button",{type:"submit",disabled:"loading"===P,className:"rounded-md bg-amber px-4 py-2 text-sm font-medium text-ink transition hover:bg-ember disabled:opacity-50",children:"loading"===P?"Loading…":"Load"})]}),"idle"!==P?(0,s.jsx)(eR,{filters:f,scenes:y,onChange:b,busy:ey}):null,z?(0,s.jsx)("div",{className:"mb-6 rounded-lg border border-red-900/60 bg-red-950/40 px-4 py-3 text-sm text-red-300",children:z}):null,"idle"===P?m.length>0?(0,s.jsx)(eQ,{projects:m,playgroundUrl:r.DEFAULT_PLAYGROUND_URL,onView:er}):(0,s.jsx)("p",{className:"text-sm text-fg-muted",children:"Enter your collector URL and a project API key, then load to view analytics."}):A?(0,s.jsxs)("div",{className:"grid grid-cols-1 gap-5 lg:grid-cols-2",children:[eB.length>0?(0,s.jsx)("div",{className:"lg:col-span-2",children:(0,s.jsx)(eP,{errors:eB})}):null,(0,s.jsxs)("div",{className:"lg:col-span-2 flex flex-wrap items-center justify-between gap-3 rounded-xl border border-edge bg-panel p-4",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("p",{className:"text-xs uppercase tracking-wide text-fg-muted",children:"Session"}),(0,s.jsx)("p",{className:"font-mono text-sm text-fg",children:A.id}),(0,s.jsx)("p",{className:"mt-1 text-xs text-fg-muted",children:"loading"===I?"Loading session…":[A.meta?.scene?.sceneId?`scene: ${A.meta.scene.sceneId}`:null,A.meta?.device?.gpu?`gpu: ${A.meta.device.gpu}`:null,A.meta?.startedAt?`started: ${A.meta.startedAt}`:null].filter(Boolean).join(" · ")||"No session metadata."})]}),(0,s.jsx)("button",{type:"button",onClick:eh,className:"rounded-md border border-edge px-3 py-2 text-sm text-fg transition hover:border-amber hover:text-fg-hi",children:"← All sessions"})]}),(0,s.jsx)("div",{className:"lg:col-span-2",children:(0,s.jsx)(tr,{baseUrl:e,apiKey:o,sessionId:A.id,hiddenTypes:D,isLive:eH})}),(0,s.jsx)("div",{className:"lg:col-span-2",children:(0,s.jsx)(e9,{baseUrl:e,apiKey:o,sessionId:A.id,hiddenTypes:D,onToggleType:ef,onSetAllHidden:eb})}),(0,s.jsx)(eA,{perf:A.perf}),e$?(0,s.jsx)(R,{panels:eU,ctx:e$,surface:"session",revision:H}):null,(0,s.jsx)(eC,{bins:A.camera,gridSize:36}),A.meta?.scene?.cameraType==="free"?(0,s.jsx)(e1,{baseUrl:e,apiKey:o,sessionId:A.id,scene:A.meta?.scene?.sceneId??f.scene}):null,(0,s.jsx)("div",{className:"lg:col-span-2",children:(0,s.jsx)(e0,{sessions:S.sessions,selectedId:A.id,onSelect:ep})})]}):(0,s.jsxs)("div",{className:"grid grid-cols-1 gap-5 lg:grid-cols-2",children:[eB.length>0?(0,s.jsx)("div",{className:"lg:col-span-2",children:(0,s.jsx)(eP,{errors:eB})}):null,(0,s.jsx)("div",{className:"lg:col-span-2",children:(0,s.jsx)(tl,{snapshot:ed,status:eu,feed:L,now:U,onSelectSession:ep})}),(0,s.jsx)("div",{className:"lg:col-span-2",children:(0,s.jsx)(e5,{buckets:S.timeseries,intervalMs:S.intervalMs,onBrush:ev,brushed:"custom"===f.window,onClear:ej})}),(0,s.jsx)("div",{className:"lg:col-span-2",children:(0,s.jsx)(eL,{counts:S.counts,perf:S.perf})}),(0,s.jsx)("div",{className:"lg:col-span-2",children:(0,s.jsx)(eG,{rows:S.diagnostics})}),(0,s.jsx)("div",{className:"lg:col-span-2",children:(0,s.jsx)(eW,{rows:S.renderingTech})}),(0,s.jsx)("div",{className:"lg:col-span-2",children:(0,s.jsx)(eq,{coverage:S.coverage,cellSize:1,distance:S.distance,bucketSize:1,navigation:S.navigation})}),(0,s.jsx)(eA,{perf:S.perf}),(0,s.jsx)(R,{panels:eU,ctx:eI,surface:"overview",revision:H}),(0,s.jsx)("div",{className:"lg:col-span-2",children:(0,s.jsx)(eD,{data:S.performance})}),(0,s.jsx)(eT,{rows:S.sources}),(0,s.jsx)(eC,{bins:S.camera,gridSize:36}),(0,s.jsx)("div",{className:"lg:col-span-2",children:(0,s.jsx)(_.Panel,{title:"Gaze heatmap (3D)",subtitle:"Camera-pose gaze hit-points voxel-binned in world space — what viewers actually look at",children:(0,s.jsx)(ta,{voxels:S.gaze,cellSize:.5,proxyMeshes:S.proxyMeshes,legendTitle:"Gaze density",legendLow:"few looks",legendHigh:"most looks",legendNote:"Each marker is a voxel where the camera-forward (gaze) ray hit your scene. Enable gaze capture in the SDK to populate this.",emptyLabel:"No gaze hit-points in range. Enable gaze capture in the SDK."})})}),(0,s.jsx)("div",{className:"lg:col-span-2",children:(0,s.jsx)(_.Panel,{title:"Click rays (3D)",subtitle:"Each click joined to the view it was made from — gate by viewpoint or focus a mesh; double-click to recenter",children:(0,s.jsx)(ti,{rays:S.clickRays,cellSize:.5,proxyMeshes:S.proxyMeshes})})}),(0,s.jsx)("div",{className:"lg:col-span-2",children:(0,s.jsx)(e0,{sessions:S.sessions,onSelect:ep})})]})]})}],14936)}]);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,70882,e=>{"use strict";var r=e.i(1719);let t="helperFunctions",a=`const PI: f32=3.1415926535897932384626433832795;const TWO_PI: f32=6.283185307179586;const HALF_PI: f32=1.5707963267948966;const RECIPROCAL_PI: f32=0.3183098861837907;const RECIPROCAL_PI2: f32=0.15915494309189535;const RECIPROCAL_PI4: f32=0.07957747154594767;const HALF_MIN: f32=5.96046448e-08;
|
|
2
2
|
const LinearEncodePowerApprox: f32=2.2;const GammaEncodePowerApprox: f32=1.0/LinearEncodePowerApprox;const LuminanceEncodeApprox: vec3f=vec3f(0.2126,0.7152,0.0722);const Epsilon:f32=0.0000001;fn square(x: f32)->f32 {return x*x;}
|
|
3
3
|
fn saturate(x: f32)->f32 {return clamp(x,0.0,1.0);}
|
|
4
4
|
fn saturateVec3(x: vec3f)->vec3f {return clamp(x,vec3f(),vec3f(1.0));}
|
|
@@ -84,7 +84,7 @@ fn max3(v: vec3f)->f32 {return max(v.x,max(v.y,v.z));}
|
|
|
84
84
|
fn uint2float(i: u32)->f32 {return bitcast<f32>(0x3F800000u | (i>>9u))-1.0;}
|
|
85
85
|
fn plasticSequence(rstate: u32)->vec2f {return vec2f(uint2float(rstate*3242174889u),
|
|
86
86
|
uint2float(rstate*2447445414u));}
|
|
87
|
-
`;r.ShaderStore.IncludesShadersStoreWGSL[t]||(r.ShaderStore.IncludesShadersStoreWGSL[t]=a),e.s(["helperFunctionsWGSL",0,{name:t,shader:a}])},
|
|
87
|
+
`;r.ShaderStore.IncludesShadersStoreWGSL[t]||(r.ShaderStore.IncludesShadersStoreWGSL[t]=a),e.s(["helperFunctionsWGSL",0,{name:t,shader:a}])},95611,e=>{"use strict";var r=e.i(1719);let t="sceneUboDeclaration",a=`struct Scene {viewProjection : mat4x4<f32>,
|
|
88
88
|
#ifdef MULTIVIEW
|
|
89
89
|
viewProjectionR : mat4x4<f32>,
|
|
90
90
|
#endif
|
|
@@ -94,16 +94,16 @@ vEyePosition : vec4<f32>,
|
|
|
94
94
|
inverseProjection : mat4x4<f32>,};
|
|
95
95
|
#define SCENE_UBO
|
|
96
96
|
var<uniform> scene : Scene;
|
|
97
|
-
`;r.ShaderStore.IncludesShadersStoreWGSL[t]||(r.ShaderStore.IncludesShadersStoreWGSL[t]=a),e.s(["sceneUboDeclarationWGSL",0,{name:t,shader:a}])},
|
|
97
|
+
`;r.ShaderStore.IncludesShadersStoreWGSL[t]||(r.ShaderStore.IncludesShadersStoreWGSL[t]=a),e.s(["sceneUboDeclarationWGSL",0,{name:t,shader:a}])},96024,58834,23681,e=>{"use strict";var r=e.i(1719);let t="meshUboDeclaration",a=`struct Mesh {world : mat4x4<f32>,
|
|
98
98
|
visibility : f32,};var<uniform> mesh : Mesh;
|
|
99
99
|
#define WORLD_UBO
|
|
100
|
-
`;r.ShaderStore.IncludesShadersStoreWGSL[t]||(r.ShaderStore.IncludesShadersStoreWGSL[t]=a),e.s(["meshUboDeclarationWGSL",0,{name:t,shader:a}],
|
|
100
|
+
`;r.ShaderStore.IncludesShadersStoreWGSL[t]||(r.ShaderStore.IncludesShadersStoreWGSL[t]=a),e.s(["meshUboDeclarationWGSL",0,{name:t,shader:a}],96024);let o="mainUVVaryingDeclaration",f=`#ifdef MAINUV{X}
|
|
101
101
|
varying vMainUV{X}: vec2f;
|
|
102
102
|
#endif
|
|
103
|
-
`;r.ShaderStore.IncludesShadersStoreWGSL[o]||(r.ShaderStore.IncludesShadersStoreWGSL[o]=f),e.s(["mainUVVaryingDeclarationWGSL",0,{name:o,shader:f}],
|
|
103
|
+
`;r.ShaderStore.IncludesShadersStoreWGSL[o]||(r.ShaderStore.IncludesShadersStoreWGSL[o]=f),e.s(["mainUVVaryingDeclarationWGSL",0,{name:o,shader:f}],58834);let i="logDepthDeclaration",v=`#ifdef LOGARITHMICDEPTH
|
|
104
104
|
uniform logarithmicDepthConstant: f32;varying vFragmentDepth: f32;
|
|
105
105
|
#endif
|
|
106
|
-
`;r.ShaderStore.IncludesShadersStoreWGSL[i]||(r.ShaderStore.IncludesShadersStoreWGSL[i]=v),e.s(["logDepthDeclarationWGSL",0,{name:i,shader:v}],
|
|
106
|
+
`;r.ShaderStore.IncludesShadersStoreWGSL[i]||(r.ShaderStore.IncludesShadersStoreWGSL[i]=v),e.s(["logDepthDeclarationWGSL",0,{name:i,shader:v}],23681)},92091,40422,e=>{"use strict";var r=e.i(1719);let t="clipPlaneFragmentDeclaration",a=`#ifdef CLIPPLANE
|
|
107
107
|
varying fClipDistance: f32;
|
|
108
108
|
#endif
|
|
109
109
|
#ifdef CLIPPLANE2
|
|
@@ -121,7 +121,7 @@ varying fClipDistance5: f32;
|
|
|
121
121
|
#ifdef CLIPPLANE6
|
|
122
122
|
varying fClipDistance6: f32;
|
|
123
123
|
#endif
|
|
124
|
-
`;r.ShaderStore.IncludesShadersStoreWGSL[t]||(r.ShaderStore.IncludesShadersStoreWGSL[t]=a),e.s(["clipPlaneFragmentDeclarationWGSL",0,{name:t,shader:a}],
|
|
124
|
+
`;r.ShaderStore.IncludesShadersStoreWGSL[t]||(r.ShaderStore.IncludesShadersStoreWGSL[t]=a),e.s(["clipPlaneFragmentDeclarationWGSL",0,{name:t,shader:a}],92091);let o="clipPlaneFragment",f=`#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6)
|
|
125
125
|
if (false) {}
|
|
126
126
|
#endif
|
|
127
127
|
#ifdef CLIPPLANE
|
|
@@ -148,7 +148,7 @@ else if (fragmentInputs.fClipDistance5>0.0)
|
|
|
148
148
|
else if (fragmentInputs.fClipDistance6>0.0)
|
|
149
149
|
{discard;}
|
|
150
150
|
#endif
|
|
151
|
-
`;r.ShaderStore.IncludesShadersStoreWGSL[o]||(r.ShaderStore.IncludesShadersStoreWGSL[o]=f),e.s(["clipPlaneFragmentWGSL",0,{name:o,shader:f}],
|
|
151
|
+
`;r.ShaderStore.IncludesShadersStoreWGSL[o]||(r.ShaderStore.IncludesShadersStoreWGSL[o]=f),e.s(["clipPlaneFragmentWGSL",0,{name:o,shader:f}],40422)},86205,10292,e=>{"use strict";var r=e.i(1719);let t="fogFragmentDeclaration",a=`#ifdef FOG
|
|
152
152
|
#define FOGMODE_NONE 0.
|
|
153
153
|
#define FOGMODE_EXP 1.
|
|
154
154
|
#define FOGMODE_EXP2 2.
|
|
@@ -162,14 +162,14 @@ else if (FOGMODE_EXP2==uniforms.vFogInfos.x)
|
|
|
162
162
|
{fogCoeff=1.0/pow(E,fogDistance*fogDistance*fogDensity*fogDensity);}
|
|
163
163
|
return clamp(fogCoeff,0.0,1.0);}
|
|
164
164
|
#endif
|
|
165
|
-
`;r.ShaderStore.IncludesShadersStoreWGSL[t]||(r.ShaderStore.IncludesShadersStoreWGSL[t]=a),e.s(["fogFragmentDeclarationWGSL",0,{name:t,shader:a}],
|
|
165
|
+
`;r.ShaderStore.IncludesShadersStoreWGSL[t]||(r.ShaderStore.IncludesShadersStoreWGSL[t]=a),e.s(["fogFragmentDeclarationWGSL",0,{name:t,shader:a}],86205);let o="fogFragment",f=`#ifdef FOG
|
|
166
166
|
var fog: f32=CalcFogFactor();
|
|
167
167
|
#ifdef PBR
|
|
168
168
|
fog=toLinearSpace(fog);
|
|
169
169
|
#endif
|
|
170
170
|
color= vec4f(mix(uniforms.vFogColor,color.rgb,fog),color.a);
|
|
171
171
|
#endif
|
|
172
|
-
`;r.ShaderStore.IncludesShadersStoreWGSL[o]||(r.ShaderStore.IncludesShadersStoreWGSL[o]=f),e.s(["fogFragmentWGSL",0,{name:o,shader:f}],
|
|
172
|
+
`;r.ShaderStore.IncludesShadersStoreWGSL[o]||(r.ShaderStore.IncludesShadersStoreWGSL[o]=f),e.s(["fogFragmentWGSL",0,{name:o,shader:f}],10292)},78828,95727,86589,e=>{"use strict";var r=e.i(1719);let t="prePassDeclaration",a=`#ifdef PREPASS
|
|
173
173
|
#ifdef PREPASS_LOCAL_POSITION
|
|
174
174
|
varying vPosition : vec3f;
|
|
175
175
|
#endif
|
|
@@ -183,11 +183,11 @@ varying vNormViewDepth: f32;
|
|
|
183
183
|
varying vCurrentPosition: vec4f;varying vPreviousPosition: vec4f;
|
|
184
184
|
#endif
|
|
185
185
|
#endif
|
|
186
|
-
`;r.ShaderStore.IncludesShadersStoreWGSL[t]||(r.ShaderStore.IncludesShadersStoreWGSL[t]=a),e.s(["prePassDeclarationWGSL",0,{name:t,shader:a}],
|
|
186
|
+
`;r.ShaderStore.IncludesShadersStoreWGSL[t]||(r.ShaderStore.IncludesShadersStoreWGSL[t]=a),e.s(["prePassDeclarationWGSL",0,{name:t,shader:a}],78828);let o="oitDeclaration",f=`#ifdef ORDER_INDEPENDENT_TRANSPARENCY
|
|
187
187
|
#define MAX_DEPTH 99999.0
|
|
188
188
|
var oitDepthSamplerSampler: sampler;var oitDepthSampler: texture_2d<f32>;var oitFrontColorSamplerSampler: sampler;var oitFrontColorSampler: texture_2d<f32>;
|
|
189
189
|
#endif
|
|
190
|
-
`;r.ShaderStore.IncludesShadersStoreWGSL[o]||(r.ShaderStore.IncludesShadersStoreWGSL[o]=f),e.s(["oitDeclarationWGSL",0,{name:o,shader:f}],
|
|
190
|
+
`;r.ShaderStore.IncludesShadersStoreWGSL[o]||(r.ShaderStore.IncludesShadersStoreWGSL[o]=f),e.s(["oitDeclarationWGSL",0,{name:o,shader:f}],95727);let i="lightUboDeclaration",v=`#ifdef LIGHT{X}
|
|
191
191
|
struct Light{X}
|
|
192
192
|
{vLightData: vec4f,
|
|
193
193
|
vLightDiffuse: vec4f,
|
|
@@ -264,7 +264,7 @@ uniform lightMatrix{X}: mat4x4f;
|
|
|
264
264
|
#endif
|
|
265
265
|
#endif
|
|
266
266
|
#endif
|
|
267
|
-
`;r.ShaderStore.IncludesShadersStoreWGSL[i]||(r.ShaderStore.IncludesShadersStoreWGSL[i]=v),e.s(["lightUboDeclarationWGSL",0,{name:i,shader:v}],
|
|
267
|
+
`;r.ShaderStore.IncludesShadersStoreWGSL[i]||(r.ShaderStore.IncludesShadersStoreWGSL[i]=v),e.s(["lightUboDeclarationWGSL",0,{name:i,shader:v}],86589)},81006,69914,e=>{"use strict";var r=e.i(1719);let t="ltcHelperFunctions",a=`fn LTCUv(N: vec3f,V: vec3f,roughness: f32)->vec2f {var LUTSIZE: f32=64.0;var LUTSCALE: f32=( LUTSIZE-1.0 )/LUTSIZE;var LUTBIAS:f32=0.5/LUTSIZE;var dotNV:f32=saturate( dot( N,V ) );var uv:vec2f=vec2f( roughness,sqrt( 1.0-dotNV ) );uv=uv*LUTSCALE+LUTBIAS;return uv;}
|
|
268
268
|
fn LTCClippedSphereFormFactor( f:vec3f )->f32 {var l: f32=length( f );return max( ( l*l+f.z )/( l+1.0 ),0.0 );}
|
|
269
269
|
fn LTCEdgeVectorFormFactor( v1:vec3f,v2:vec3f )->vec3f {var x:f32=dot( v1,v2 );var y:f32=abs( x );var a:f32=0.8543985+( 0.4965155+0.0145206*y )*y;var b:f32=3.4175940+( 4.1616724+y )*y;var v:f32=a/b;var thetaSintheta:f32=0.0;if( x>0.0 )
|
|
270
270
|
{thetaSintheta=v;}
|
|
@@ -308,7 +308,7 @@ vec3f(1,0,0),
|
|
|
308
308
|
vec3f(0,1,0),
|
|
309
309
|
vec3f(0,0,1)
|
|
310
310
|
);result.Diffuse=LTCEvaluateWithEmission(normal,viewDir,position,mInvEmpty,rectCoords0,rectCoords1,rectCoords2,rectCoords3,emissionTexture,emissionTextureSampler);return result;}
|
|
311
|
-
`;r.ShaderStore.IncludesShadersStoreWGSL[t]||(r.ShaderStore.IncludesShadersStoreWGSL[t]=a),e.s(["ltcHelperFunctionsWGSL",0,{name:t,shader:a}],
|
|
311
|
+
`;r.ShaderStore.IncludesShadersStoreWGSL[t]||(r.ShaderStore.IncludesShadersStoreWGSL[t]=a),e.s(["ltcHelperFunctionsWGSL",0,{name:t,shader:a}],81006);let o="clusteredLightingFunctions",f=`struct ClusteredLight {vLightData: vec4f,
|
|
312
312
|
vLightDiffuse: vec4f,
|
|
313
313
|
vLightSpecular: vec4f,
|
|
314
314
|
vLightDirection: vec4f,
|
|
@@ -321,7 +321,7 @@ textureLoad(lightDataTexture,vec2u(3,index),0),
|
|
|
321
321
|
textureLoad(lightDataTexture,vec2u(4,index),0)
|
|
322
322
|
);}
|
|
323
323
|
fn getClusteredSliceIndex(sliceData: vec2f,viewDepth: f32)->i32 {return i32(log(viewDepth)*sliceData.x+sliceData.y);}
|
|
324
|
-
`;r.ShaderStore.IncludesShadersStoreWGSL[o]||(r.ShaderStore.IncludesShadersStoreWGSL[o]=f),e.s(["clusteredLightingFunctionsWGSL",0,{name:o,shader:f}],
|
|
324
|
+
`;r.ShaderStore.IncludesShadersStoreWGSL[o]||(r.ShaderStore.IncludesShadersStoreWGSL[o]=f),e.s(["clusteredLightingFunctionsWGSL",0,{name:o,shader:f}],69914)},11213,e=>{"use strict";var r=e.i(1719);let t="shadowsFragmentFunctions",a=`#ifdef SHADOWS
|
|
325
325
|
#ifndef SHADOWFLOAT
|
|
326
326
|
fn unpack(color: vec4f)->f32
|
|
327
327
|
{const bit_shift: vec4f= vec4f(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);return dot(color,bit_shift);}
|
|
@@ -613,7 +613,7 @@ fn computeShadowWithCSMPCSS32(layer: i32,vPositionFromLight: vec4f,depthMetric:
|
|
|
613
613
|
fn computeShadowWithCSMPCSS64(layer: i32,vPositionFromLight: vec4f,depthMetric: f32,depthTexture: texture_2d_array<f32>,depthSampler: sampler,shadowTexture: texture_depth_2d_array,shadowSampler: sampler_comparison,shadowMapSizeInverse: f32,lightSizeUV: f32,darkness: f32,frustumEdgeFalloff: f32,lightSizeUVCorrection: vec2f,depthCorrection: f32,penumbraDarkness: f32)->f32
|
|
614
614
|
{return computeShadowWithCSMPCSS(layer,vPositionFromLight,depthMetric,depthTexture,depthSampler,shadowTexture,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,32,64,PoissonSamplers64,lightSizeUVCorrection,depthCorrection,penumbraDarkness);}
|
|
615
615
|
#endif
|
|
616
|
-
`;r.ShaderStore.IncludesShadersStoreWGSL[t]||(r.ShaderStore.IncludesShadersStoreWGSL[t]=a),e.s(["shadowsFragmentFunctionsWGSL",0,{name:t,shader:a}])},
|
|
616
|
+
`;r.ShaderStore.IncludesShadersStoreWGSL[t]||(r.ShaderStore.IncludesShadersStoreWGSL[t]=a),e.s(["shadowsFragmentFunctionsWGSL",0,{name:t,shader:a}])},36971,e=>{"use strict";var r=e.i(1719);let t="imageProcessingDeclaration",a=`#ifdef EXPOSURE
|
|
617
617
|
uniform exposureLinear: f32;
|
|
618
618
|
#endif
|
|
619
619
|
#ifdef CONTRAST
|
|
@@ -639,7 +639,7 @@ uniform colorTransformSettings: vec4f;
|
|
|
639
639
|
#ifdef DITHER
|
|
640
640
|
uniform ditherIntensity: f32;
|
|
641
641
|
#endif
|
|
642
|
-
`;r.ShaderStore.IncludesShadersStoreWGSL[t]||(r.ShaderStore.IncludesShadersStoreWGSL[t]=a),e.s(["imageProcessingDeclarationWGSL",0,{name:t,shader:a}])},
|
|
642
|
+
`;r.ShaderStore.IncludesShadersStoreWGSL[t]||(r.ShaderStore.IncludesShadersStoreWGSL[t]=a),e.s(["imageProcessingDeclarationWGSL",0,{name:t,shader:a}])},50532,e=>{"use strict";var r=e.i(1719);let t="imageProcessingFunctions",a=`#if TONEMAPPING==3
|
|
643
643
|
const PBRNeutralStartCompression: f32=0.8-0.04;const PBRNeutralDesaturation: f32=0.15;fn PBRNeutralToneMapping( color: vec3f )->vec3f {var x: f32=min(color.r,min(color.g,color.b));var offset: f32=select(0.04,x-6.25*x*x,x<0.08);var result=color;result-=offset;var peak: f32=max(result.r,max(result.g,result.b));if (peak<PBRNeutralStartCompression) {return result;}
|
|
644
644
|
var d: f32=1.-PBRNeutralStartCompression;var newPeak: f32=1.-d*d/(peak+d-PBRNeutralStartCompression);result*=newPeak/peak;var g: f32=1.-1./(PBRNeutralDesaturation*(peak-newPeak)+1.);return mix(result,newPeak* vec3f(1,1,1),g);}
|
|
645
645
|
#endif
|
|
@@ -701,7 +701,7 @@ var luma: f32=getLuminance(rgb);var curveMix: vec2f=clamp( vec2f(luma*3.0-1.5,lu
|
|
|
701
701
|
var rand: f32=getRand(fragmentInputs.position.xy*uniforms.vInverseScreenSize);var dither: f32=mix(-uniforms.ditherIntensity,uniforms.ditherIntensity,rand);rgb=saturateVec3(rgb+ vec3f(dither));
|
|
702
702
|
#endif
|
|
703
703
|
#define CUSTOM_IMAGEPROCESSINGFUNCTIONS_UPDATERESULT_ATEND
|
|
704
|
-
return vec4f(rgb,result.a);}`;r.ShaderStore.IncludesShadersStoreWGSL[t]||(r.ShaderStore.IncludesShadersStoreWGSL[t]=a),e.s(["imageProcessingFunctionsWGSL",0,{name:t,shader:a}])},
|
|
704
|
+
return vec4f(rgb,result.a);}`;r.ShaderStore.IncludesShadersStoreWGSL[t]||(r.ShaderStore.IncludesShadersStoreWGSL[t]=a),e.s(["imageProcessingFunctionsWGSL",0,{name:t,shader:a}])},79181,e=>{"use strict";var r=e.i(1719);let t="textureRepetitionFunctions",a=`#if TEXTURE_REPETITION_MODE>0
|
|
705
705
|
fn _texRepHash4(p: vec2f)->vec4f {return fract(sin(vec4f(
|
|
706
706
|
1.0+dot(p,vec2f(37.0,17.0)),
|
|
707
707
|
2.0+dot(p,vec2f(11.0,47.0)),
|
|
@@ -742,16 +742,16 @@ fn TEXRD(t: texture_2d<f32>,ts: sampler,uv: vec2f)->vec4f {return _texRepSample(
|
|
|
742
742
|
fn TEXRD(t: texture_2d<f32>,ts: sampler,uv: vec2f)->vec4f {return textureSample(t,ts,uv);}
|
|
743
743
|
#endif
|
|
744
744
|
#define TEXRD_DEFINED
|
|
745
|
-
`;r.ShaderStore.IncludesShadersStoreWGSL[t]||(r.ShaderStore.IncludesShadersStoreWGSL[t]=a),e.s(["textureRepetitionFunctionsWGSL",0,{name:t,shader:a}])},
|
|
745
|
+
`;r.ShaderStore.IncludesShadersStoreWGSL[t]||(r.ShaderStore.IncludesShadersStoreWGSL[t]=a),e.s(["textureRepetitionFunctionsWGSL",0,{name:t,shader:a}])},1002,88495,80196,e=>{"use strict";var r=e.i(1719);let t="depthPrePass",a=`#ifdef DEPTHPREPASS
|
|
746
746
|
#if !defined(PREPASS) && !defined(ORDER_INDEPENDENT_TRANSPARENCY)
|
|
747
747
|
fragmentOutputs.color= vec4f(0.,0.,0.,1.0);
|
|
748
748
|
#endif
|
|
749
749
|
return fragmentOutputs;
|
|
750
750
|
#endif
|
|
751
|
-
`;r.ShaderStore.IncludesShadersStoreWGSL[t]||(r.ShaderStore.IncludesShadersStoreWGSL[t]=a),e.s(["depthPrePassWGSL",0,{name:t,shader:a}],
|
|
751
|
+
`;r.ShaderStore.IncludesShadersStoreWGSL[t]||(r.ShaderStore.IncludesShadersStoreWGSL[t]=a),e.s(["depthPrePassWGSL",0,{name:t,shader:a}],1002);let o="logDepthFragment",f=`#ifdef LOGARITHMICDEPTH
|
|
752
752
|
fragmentOutputs.fragDepth=log2(fragmentInputs.vFragmentDepth)*uniforms.logarithmicDepthConstant*0.5;
|
|
753
753
|
#endif
|
|
754
|
-
`;r.ShaderStore.IncludesShadersStoreWGSL[o]||(r.ShaderStore.IncludesShadersStoreWGSL[o]=f),e.s(["logDepthFragmentWGSL",0,{name:o,shader:f}],
|
|
754
|
+
`;r.ShaderStore.IncludesShadersStoreWGSL[o]||(r.ShaderStore.IncludesShadersStoreWGSL[o]=f),e.s(["logDepthFragmentWGSL",0,{name:o,shader:f}],88495);let i="oitFragment",v=`#ifdef ORDER_INDEPENDENT_TRANSPARENCY
|
|
755
755
|
var fragDepth: f32=fragmentInputs.position.z;
|
|
756
756
|
#ifdef ORDER_INDEPENDENT_TRANSPARENCY_16BITS
|
|
757
757
|
var halfFloat: u32=pack2x16float( vec2f(fragDepth));var full: vec2f=unpack2x16float(halfFloat);fragDepth=full.x;
|
|
@@ -776,4 +776,4 @@ if (fragDepth>nearestDepth && fragDepth<furthestDepth) {
|
|
|
776
776
|
#endif
|
|
777
777
|
fragmentOutputs.depth=vec2f(-fragDepth,fragDepth);return fragmentOutputs;}
|
|
778
778
|
#endif
|
|
779
|
-
`;r.ShaderStore.IncludesShadersStoreWGSL[i]||(r.ShaderStore.IncludesShadersStoreWGSL[i]=v),e.s(["oitFragmentWGSL",0,{name:i,shader:v}],
|
|
779
|
+
`;r.ShaderStore.IncludesShadersStoreWGSL[i]||(r.ShaderStore.IncludesShadersStoreWGSL[i]=v),e.s(["oitFragmentWGSL",0,{name:i,shader:v}],80196)}]);
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,60177,(e,t,r)=>{"use strict";let n;Object.defineProperty(r,"__esModule",{value:!0});var o={getAssetToken:function(){return a},getAssetTokenQuery:function(){return c},getDeploymentId:function(){return u},getDeploymentIdQuery:function(){return s}};for(var i in o)Object.defineProperty(r,i,{enumerable:!0,get:o[i]});function u(){return n}function s(e=!1){let t=n;return t?`${e?"&":"?"}dpl=${t}`:""}function a(){return!1}function c(e=!1){return""}"u">typeof window?(n=document.documentElement.dataset.dplId,delete document.documentElement.dataset.dplId):n=void 0},65711,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={BailoutToCSRError:function(){return u},isBailoutToCSRError:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let i="BAILOUT_TO_CLIENT_SIDE_RENDERING";class u extends Error{constructor(e){super(`Bail out to client-side rendering: ${e}`),this.reason=e,this.digest=i}}function s(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===i}},8354,(e,t,r)=>{"use strict";var n=e.r(11623);function o(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var r=2;r<arguments.length;r++)t+="&args[]="+encodeURIComponent(arguments[r])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function i(){}var u={d:{f:i,r:function(){throw Error(o(522))},D:i,C:i,L:i,m:i,X:i,S:i,M:i},p:0,findDOMNode:null},s=Symbol.for("react.portal"),a=Symbol.for("react.optimistic_key"),c=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function l(e,t){return"font"===e?"":"string"==typeof t?"use-credentials"===t?t:"":void 0}r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=u,r.createPortal=function(e,t){var r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!t||1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType)throw Error(o(299));return function(e,t,r){var n=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:s,key:null==n?null:n===a?a:""+n,children:e,containerInfo:t,implementation:r}}(e,t,null,r)},r.flushSync=function(e){var t=c.T,r=u.p;try{if(c.T=null,u.p=2,e)return e()}finally{c.T=t,u.p=r,u.d.f()}},r.preconnect=function(e,t){"string"==typeof e&&(t=t?"string"==typeof(t=t.crossOrigin)?"use-credentials"===t?t:"":void 0:null,u.d.C(e,t))},r.prefetchDNS=function(e){"string"==typeof e&&u.d.D(e)},r.preinit=function(e,t){if("string"==typeof e&&t&&"string"==typeof t.as){var r=t.as,n=l(r,t.crossOrigin),o="string"==typeof t.integrity?t.integrity:void 0,i="string"==typeof t.fetchPriority?t.fetchPriority:void 0;"style"===r?u.d.S(e,"string"==typeof t.precedence?t.precedence:void 0,{crossOrigin:n,integrity:o,fetchPriority:i}):"script"===r&&u.d.X(e,{crossOrigin:n,integrity:o,fetchPriority:i,nonce:"string"==typeof t.nonce?t.nonce:void 0})}},r.preinitModule=function(e,t){if("string"==typeof e)if("object"==typeof t&&null!==t){if(null==t.as||"script"===t.as){var r=l(t.as,t.crossOrigin);u.d.M(e,{crossOrigin:r,integrity:"string"==typeof t.integrity?t.integrity:void 0,nonce:"string"==typeof t.nonce?t.nonce:void 0})}}else null==t&&u.d.M(e)},r.preload=function(e,t){if("string"==typeof e&&"object"==typeof t&&null!==t&&"string"==typeof t.as){var r=t.as,n=l(r,t.crossOrigin);u.d.L(e,r,{crossOrigin:n,integrity:"string"==typeof t.integrity?t.integrity:void 0,nonce:"string"==typeof t.nonce?t.nonce:void 0,type:"string"==typeof t.type?t.type:void 0,fetchPriority:"string"==typeof t.fetchPriority?t.fetchPriority:void 0,referrerPolicy:"string"==typeof t.referrerPolicy?t.referrerPolicy:void 0,imageSrcSet:"string"==typeof t.imageSrcSet?t.imageSrcSet:void 0,imageSizes:"string"==typeof t.imageSizes?t.imageSizes:void 0,media:"string"==typeof t.media?t.media:void 0})}},r.preloadModule=function(e,t){if("string"==typeof e)if(t){var r=l(t.as,t.crossOrigin);u.d.m(e,{as:"string"==typeof t.as&&"script"!==t.as?t.as:void 0,crossOrigin:r,integrity:"string"==typeof t.integrity?t.integrity:void 0})}else u.d.m(e)},r.requestFormReset=function(e){u.d.r(e)},r.unstable_batchedUpdates=function(e,t){return e(t)},r.useFormState=function(e,t,r){return c.H.useFormState(e,t,r)},r.useFormStatus=function(){return c.H.useHostTransitionStatus()},r.version="19.3.0-canary-3f0b9e61-20260317"},49698,(e,t,r)=>{"use strict";!function e(){if("u">typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),t.exports=e.r(8354)},76523,(e,t,r)=>{var n={229:function(e){var t,r,n,o=e.exports={};function i(){throw Error("setTimeout has not been defined")}function u(){throw Error("clearTimeout has not been defined")}try{t="function"==typeof setTimeout?setTimeout:i}catch(e){t=i}try{r="function"==typeof clearTimeout?clearTimeout:u}catch(e){r=u}function s(e){if(t===setTimeout)return setTimeout(e,0);if((t===i||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(r){try{return t.call(null,e,0)}catch(r){return t.call(this,e,0)}}}var a=[],c=!1,l=-1;function f(){c&&n&&(c=!1,n.length?a=n.concat(a):l=-1,a.length&&d())}function d(){if(!c){var e=s(f);c=!0;for(var t=a.length;t;){for(n=a,a=[];++l<t;)n&&n[l].run();l=-1,t=a.length}n=null,c=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===u||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function p(e,t){this.fun=e,this.array=t}function y(){}o.nextTick=function(e){var t=Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];a.push(new p(e,t)),1!==a.length||c||s(d)},p.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=y,o.addListener=y,o.once=y,o.off=y,o.removeListener=y,o.removeAllListeners=y,o.emit=y,o.prependListener=y,o.prependOnceListener=y,o.listeners=function(e){return[]},o.binding=function(e){throw Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(e){throw Error("process.chdir is not supported")},o.umask=function(){return 0}}},o={};function i(e){var t=o[e];if(void 0!==t)return t.exports;var r=o[e]={exports:{}},u=!0;try{n[e](r,r.exports,i),u=!1}finally{u&&delete o[e]}return r.exports}i.ab="/ROOT/node_modules/.pnpm/next@16.2.9_@playwright+test@1.61.1_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/next/dist/compiled/process/",t.exports=i(229)},37998,(e,t,r)=>{"use strict";var n,o;t.exports=(null==(n=e.g.process)?void 0:n.env)&&"object"==typeof(null==(o=e.g.process)?void 0:o.env)?e.g.process:e.r(76523)},2011,(e,t,r)=>{"use strict";var n=Symbol.for("react.transitional.element");function o(e,t,r){var o=null;if(void 0!==r&&(o=""+r),void 0!==t.key&&(o=""+t.key),"key"in t)for(var i in r={},t)"key"!==i&&(r[i]=t[i]);else r=t;return{$$typeof:n,type:e,key:o,ref:void 0!==(t=r.ref)?t:null,props:r}}r.Fragment=Symbol.for("react.fragment"),r.jsx=o,r.jsxs=o},28100,(e,t,r)=>{"use strict";t.exports=e.r(2011)},29055,(e,t,r)=>{"use strict";var n=e.i(37998),o=Symbol.for("react.transitional.element"),i=Symbol.for("react.portal"),u=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),c=Symbol.for("react.consumer"),l=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),p=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),g=Symbol.for("react.activity"),h=Symbol.for("react.view_transition"),b=Symbol.iterator,v={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m=Object.assign,_={};function x(e,t,r){this.props=e,this.context=t,this.refs=_,this.updater=r||v}function S(){}function O(e,t,r){this.props=e,this.context=t,this.refs=_,this.updater=r||v}x.prototype.isReactComponent={},x.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},x.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},S.prototype=x.prototype;var E=O.prototype=new S;E.constructor=O,m(E,x.prototype),E.isPureReactComponent=!0;var j=Array.isArray;function T(){}var w={H:null,A:null,T:null,S:null},R=Object.prototype.hasOwnProperty;function C(e,t,r){var n=r.ref;return{$$typeof:o,type:e,key:t,ref:void 0!==n?n:null,props:r}}function A(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var k=/\/+/g;function H(e,t){var r,n;return"object"==typeof e&&null!==e&&null!=e.key?(r=""+e.key,n={"=":"=0",":":"=2"},"$"+r.replace(/[=:]/g,function(e){return n[e]})):t.toString(36)}function P(e,t,r){if(null==e)return e;var n=[],u=0;return!function e(t,r,n,u,s){var a,c,l,f=typeof t;("undefined"===f||"boolean"===f)&&(t=null);var d=!1;if(null===t)d=!0;else switch(f){case"bigint":case"string":case"number":d=!0;break;case"object":switch(t.$$typeof){case o:case i:d=!0;break;case y:return e((d=t._init)(t._payload),r,n,u,s)}}if(d)return s=s(t),d=""===u?"."+H(t,0):u,j(s)?(n="",null!=d&&(n=d.replace(k,"$&/")+"/"),e(s,r,n,"",function(e){return e})):null!=s&&(A(s)&&(a=s,c=n+(null==s.key||t&&t.key===s.key?"":(""+s.key).replace(k,"$&/")+"/")+d,s=C(a.type,c,a.props)),r.push(s)),1;d=0;var p=""===u?".":u+":";if(j(t))for(var g=0;g<t.length;g++)f=p+H(u=t[g],g),d+=e(u,r,n,f,s);else if("function"==typeof(g=null===(l=t)||"object"!=typeof l?null:"function"==typeof(l=b&&l[b]||l["@@iterator"])?l:null))for(t=g.call(t),g=0;!(u=t.next()).done;)f=p+H(u=u.value,g++),d+=e(u,r,n,f,s);else if("object"===f){if("function"==typeof t.then)return e(function(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch("string"==typeof e.status?e.then(T,T):(e.status="pending",e.then(function(t){"pending"===e.status&&(e.status="fulfilled",e.value=t)},function(t){"pending"===e.status&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}(t),r,n,u,s);throw Error("Objects are not valid as a React child (found: "+("[object Object]"===(r=String(t))?"object with keys {"+Object.keys(t).join(", ")+"}":r)+"). If you meant to render a collection of children, use an array instead.")}return d}(e,n,"","",function(e){return t.call(r,e,u++)}),n}function I(e){if(-1===e._status){var t=(0,e._result)();t.then(function(r){(0===e._status||-1===e._status)&&(e._status=1,e._result=r,void 0===t.status&&(t.status="fulfilled",t.value=r))},function(r){(0===e._status||-1===e._status)&&(e._status=2,e._result=r,void 0===t.status&&(t.status="rejected",t.reason=r))}),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var M="function"==typeof reportError?reportError:function(e){if("object"==typeof window&&"function"==typeof window.ErrorEvent){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"==typeof e&&null!==e&&"string"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if("object"==typeof n.default&&"function"==typeof n.default.emit)return void n.default.emit("uncaughtException",e);console.error(e)};function L(e){var t=w.T,r={};r.types=null!==t?t.types:null,w.T=r;try{var n=e(),o=w.S;null!==o&&o(r,n),"object"==typeof n&&null!==n&&"function"==typeof n.then&&n.then(T,M)}catch(e){M(e)}finally{null!==t&&null!==r.types&&(t.types=r.types),w.T=t}}function N(e){var t=w.T;if(null!==t){var r=t.types;null===r?t.types=[e]:-1===r.indexOf(e)&&r.push(e)}else L(N.bind(null,e))}r.Activity=g,r.Children={map:P,forEach:function(e,t,r){P(e,function(){t.apply(this,arguments)},r)},count:function(e){var t=0;return P(e,function(){t++}),t},toArray:function(e){return P(e,function(e){return e})||[]},only:function(e){if(!A(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},r.Component=x,r.Fragment=u,r.Profiler=a,r.PureComponent=O,r.StrictMode=s,r.Suspense=d,r.ViewTransition=h,r.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=w,r.__COMPILER_RUNTIME={__proto__:null,c:function(e){return w.H.useMemoCache(e)}},r.addTransitionType=N,r.cache=function(e){return function(){return e.apply(null,arguments)}},r.cacheSignal=function(){return null},r.cloneElement=function(e,t,r){if(null==e)throw Error("The argument must be a React element, but you passed "+e+".");var n=m({},e.props),o=e.key;if(null!=t)for(i in void 0!==t.key&&(o=""+t.key),t)R.call(t,i)&&"key"!==i&&"__self"!==i&&"__source"!==i&&("ref"!==i||void 0!==t.ref)&&(n[i]=t[i]);var i=arguments.length-2;if(1===i)n.children=r;else if(1<i){for(var u=Array(i),s=0;s<i;s++)u[s]=arguments[s+2];n.children=u}return C(e.type,o,n)},r.createContext=function(e){return(e={$$typeof:l,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider=e,e.Consumer={$$typeof:c,_context:e},e},r.createElement=function(e,t,r){var n,o={},i=null;if(null!=t)for(n in void 0!==t.key&&(i=""+t.key),t)R.call(t,n)&&"key"!==n&&"__self"!==n&&"__source"!==n&&(o[n]=t[n]);var u=arguments.length-2;if(1===u)o.children=r;else if(1<u){for(var s=Array(u),a=0;a<u;a++)s[a]=arguments[a+2];o.children=s}if(e&&e.defaultProps)for(n in u=e.defaultProps)void 0===o[n]&&(o[n]=u[n]);return C(e,i,o)},r.createRef=function(){return{current:null}},r.forwardRef=function(e){return{$$typeof:f,render:e}},r.isValidElement=A,r.lazy=function(e){return{$$typeof:y,_payload:{_status:-1,_result:e},_init:I}},r.memo=function(e,t){return{$$typeof:p,type:e,compare:void 0===t?null:t}},r.startTransition=L,r.unstable_useCacheRefresh=function(){return w.H.useCacheRefresh()},r.use=function(e){return w.H.use(e)},r.useActionState=function(e,t,r){return w.H.useActionState(e,t,r)},r.useCallback=function(e,t){return w.H.useCallback(e,t)},r.useContext=function(e){return w.H.useContext(e)},r.useDebugValue=function(){},r.useDeferredValue=function(e,t){return w.H.useDeferredValue(e,t)},r.useEffect=function(e,t){return w.H.useEffect(e,t)},r.useEffectEvent=function(e){return w.H.useEffectEvent(e)},r.useId=function(){return w.H.useId()},r.useImperativeHandle=function(e,t,r){return w.H.useImperativeHandle(e,t,r)},r.useInsertionEffect=function(e,t){return w.H.useInsertionEffect(e,t)},r.useLayoutEffect=function(e,t){return w.H.useLayoutEffect(e,t)},r.useMemo=function(e,t){return w.H.useMemo(e,t)},r.useOptimistic=function(e,t){return w.H.useOptimistic(e,t)},r.useReducer=function(e,t,r){return w.H.useReducer(e,t,r)},r.useRef=function(e){return w.H.useRef(e)},r.useState=function(e){return w.H.useState(e)},r.useSyncExternalStore=function(e,t,r){return w.H.useSyncExternalStore(e,t,r)},r.useTransition=function(){return w.H.useTransition()},r.version="19.3.0-canary-3f0b9e61-20260317"},11623,(e,t,r)=>{"use strict";t.exports=e.r(29055)},81258,(e,t,r)=>{"use strict";r._=function(e){return e&&e.__esModule?e:{default:e}}},34886,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={bindSnapshot:function(){return c},createAsyncLocalStorage:function(){return a},createSnapshot:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let i=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class u{disable(){throw i}getStore(){}run(){throw i}exit(){throw i}enterWith(){throw i}static bind(e){return e}}let s="u">typeof globalThis&&globalThis.AsyncLocalStorage;function a(){return s?new s:new u}function c(e){return s?s.bind(e):u.bind(e)}function l(){return s?s.snapshot():function(e,...t){return e(...t)}}},4202,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"workAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(34886).createAsyncLocalStorage)()},75126,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"workAsyncStorage",{enumerable:!0,get:function(){return n.workAsyncStorageInstance}});let n=e.r(4202)},11085,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"handleISRError",{enumerable:!0,get:function(){return o}});let n="u"<typeof window?e.r(75126).workAsyncStorage:void 0;function o({error:e}){if(n){let t=n.getStore();if(t?.isStaticGeneration)throw e&&console.error(e),e}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},25196,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={WarningIcon:function(){return a},errorStyles:function(){return u},errorThemeCss:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});e.r(81258);let i=e.r(28100);e.r(11623);let u={container:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",display:"flex",alignItems:"center",justifyContent:"center"},card:{marginTop:"-32px",maxWidth:"325px",padding:"32px 28px",textAlign:"left"},icon:{marginBottom:"24px"},title:{fontSize:"24px",fontWeight:500,letterSpacing:"-0.02em",lineHeight:"32px",margin:"0 0 12px 0",color:"var(--next-error-title)"},message:{fontSize:"14px",fontWeight:400,lineHeight:"21px",margin:"0 0 20px 0",color:"var(--next-error-message)"},form:{margin:0},buttonGroup:{display:"flex",gap:"8px",alignItems:"center"},button:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-text)",background:"var(--next-error-btn-bg)",border:"var(--next-error-btn-border)"},buttonSecondary:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-secondary-text)",background:"var(--next-error-btn-secondary-bg)",border:"var(--next-error-btn-secondary-border)"},digestFooter:{position:"fixed",bottom:"32px",left:"0",right:"0",textAlign:"center",fontFamily:'ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace',fontSize:"12px",lineHeight:"18px",fontWeight:400,margin:"0",color:"var(--next-error-digest)"}},s=`
|
|
2
|
+
:root {
|
|
3
|
+
--next-error-bg: #fff;
|
|
4
|
+
--next-error-text: #171717;
|
|
5
|
+
--next-error-title: #171717;
|
|
6
|
+
--next-error-message: #171717;
|
|
7
|
+
--next-error-digest: #666666;
|
|
8
|
+
--next-error-btn-text: #fff;
|
|
9
|
+
--next-error-btn-bg: #171717;
|
|
10
|
+
--next-error-btn-border: none;
|
|
11
|
+
--next-error-btn-secondary-text: #171717;
|
|
12
|
+
--next-error-btn-secondary-bg: transparent;
|
|
13
|
+
--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);
|
|
14
|
+
}
|
|
15
|
+
@media (prefers-color-scheme: dark) {
|
|
16
|
+
:root {
|
|
17
|
+
--next-error-bg: #0a0a0a;
|
|
18
|
+
--next-error-text: #ededed;
|
|
19
|
+
--next-error-title: #ededed;
|
|
20
|
+
--next-error-message: #ededed;
|
|
21
|
+
--next-error-digest: #a0a0a0;
|
|
22
|
+
--next-error-btn-text: #0a0a0a;
|
|
23
|
+
--next-error-btn-bg: #ededed;
|
|
24
|
+
--next-error-btn-border: none;
|
|
25
|
+
--next-error-btn-secondary-text: #ededed;
|
|
26
|
+
--next-error-btn-secondary-bg: transparent;
|
|
27
|
+
--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }
|
|
31
|
+
`.replace(/\n\s*/g,"");function a(){return(0,i.jsx)("svg",{width:"32",height:"32",viewBox:"-0.2 -1.5 32 32",fill:"none",style:u.icon,children:(0,i.jsx)("path",{d:"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z",fill:"var(--next-error-title)"})})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},19606,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return u}}),e.r(81258);let n=e.r(28100);e.r(11623);let o=e.r(11085),i=e.r(25196),u=function({error:e}){let t=e?.digest,r=!!t;return(0,o.handleISRError)({error:e}),(0,n.jsxs)("html",{id:"__next_error__",children:[(0,n.jsx)("head",{children:(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:i.errorThemeCss}})}),(0,n.jsxs)("body",{children:[(0,n.jsx)("div",{style:i.errorStyles.container,children:(0,n.jsxs)("div",{style:i.errorStyles.card,children:[(0,n.jsx)(i.WarningIcon,{}),(0,n.jsx)("h1",{style:i.errorStyles.title,children:"This page couldn’t load"}),(0,n.jsx)("p",{style:i.errorStyles.message,children:r?"A server error occurred. Reload to try again.":"Reload to try again, or go back."}),(0,n.jsxs)("div",{style:i.errorStyles.buttonGroup,children:[(0,n.jsx)("form",{style:i.errorStyles.form,children:(0,n.jsx)("button",{type:"submit",style:i.errorStyles.button,children:"Reload"})}),!r&&(0,n.jsx)("button",{type:"button",style:i.errorStyles.buttonSecondary,onClick:()=>{window.history.length>1?window.history.back():window.location.href="/"},children:"Back"})]})]})}),t&&(0,n.jsxs)("p",{style:i.errorStyles.digestFooter,children:["ERROR ",t]})]})]})};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)}]);
|