@uptimizr/dashboard 0.3.1 → 0.3.3
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 +2 -2
- package/out/__next._full.txt +3 -3
- package/out/__next._head.txt +1 -1
- package/out/__next._index.txt +2 -2
- package/out/__next._tree.txt +2 -2
- package/out/_next/static/chunks/06m_64ysu9kn0.js +1 -0
- package/out/_next/static/chunks/0hol9-rsh00k6.js +3 -0
- package/out/_next/static/chunks/0ljf5zpstyrg7.js +1 -0
- package/out/_next/static/chunks/1i89ao_sm6o4o.js +1 -0
- package/out/_next/static/chunks/2_hgfg-cjqw1-.js +1 -0
- package/out/_next/static/chunks/{2mleh3pbge181.js → 2t9zu9v_g9kr9.js} +1 -1
- package/out/_next/static/chunks/35f-9p5adh1sc.js +1 -0
- package/out/_next/static/chunks/39ojyykom0z2r.js +1 -0
- package/out/_next/static/chunks/3ef6upwlgr4q-.css +3 -0
- package/out/_next/static/chunks/3jha6wlqw8459.js +1 -0
- package/out/_not-found/__next._full.txt +2 -2
- package/out/_not-found/__next._head.txt +1 -1
- package/out/_not-found/__next._index.txt +2 -2
- package/out/_not-found/__next._not-found.__PAGE__.txt +1 -1
- package/out/_not-found/__next._not-found.txt +1 -1
- package/out/_not-found/__next._tree.txt +2 -2
- package/out/_not-found.html +1 -1
- package/out/_not-found.txt +2 -2
- package/out/index.html +1 -1
- package/out/index.txt +3 -3
- package/package.json +3 -3
- package/out/_next/static/chunks/0g_v2zswo4l6f.js +0 -1
- package/out/_next/static/chunks/1my2rhysaxjw4.js +0 -3
- package/out/_next/static/chunks/1vuq3dos1406d.css +0 -3
- package/out/_next/static/chunks/31nbg0n1q43p2.js +0 -1
- package/out/_next/static/chunks/3qw6q7d74g5wp.js +0 -1
- package/out/_next/static/chunks/3s2d9ymcd0l4e.js +0 -1
- /package/out/_next/static/{-UlF345C3V4TG3ZtvR-5_ → W_AwLgpmWJNo9qUUBPat3}/_buildManifest.js +0 -0
- /package/out/_next/static/{-UlF345C3V4TG3ZtvR-5_ → W_AwLgpmWJNo9qUUBPat3}/_clientMiddlewareManifest.js +0 -0
- /package/out/_next/static/{-UlF345C3V4TG3ZtvR-5_ → W_AwLgpmWJNo9qUUBPat3}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,56054,e=>{"use strict";e.s(["HEAT_GRADIENT",0,"linear-gradient(to right, rgb(178,47,38), rgb(224,123,57), rgb(244,200,75))","heatRgb",0,function(e){let t=Math.max(0,Math.min(1,e)),s=[.878,.482,.224],r=(e,t,s)=>[e[0]+(t[0]-e[0])*s,e[1]+(t[1]-e[1])*s,e[2]+(t[2]-e[2])*s];return t<.5?r([.698,.184,.149],s,t/.5):r(s,[.957,.784,.294],(t-.5)/.5)},"percentileMax",0,function(e,t=.95){if(0===e.length)return 1;let s=[...e].sort((e,t)=>e-t),r=Math.max(0,Math.min(1,t))*(s.length-1),n=Math.floor(r),i=Math.ceil(r);return Math.max(1,n===i?s[n]:s[n]+(s[i]-s[n])*(r-n))}])},18637,e=>{"use strict";var t=e.i(28100),s=e.i(56054);e.s(["HeatLegend",0,function({title:e,lowLabel:r="low",highLabel:n="high",note:i}){return(0,t.jsxs)("div",{className:"pointer-events-none absolute bottom-3 left-3 rounded-md border border-edge bg-ink/80 px-3 py-2 text-fg backdrop-blur-sm",children:[(0,t.jsx)("div",{className:"mb-1 text-xs font-medium text-fg",children:e}),(0,t.jsx)("div",{className:"h-2 w-36 rounded-sm",style:{background:s.HEAT_GRADIENT}}),(0,t.jsxs)("div",{className:"mt-1 flex w-36 justify-between text-[10px] text-fg-muted",children:[(0,t.jsx)("span",{children:r}),(0,t.jsx)("span",{children:n})]}),i?(0,t.jsx)("div",{className:"mt-1 max-w-44 text-[10px] leading-tight text-fg-muted",children:i}):null]})}])},20880,e=>{"use strict";class t extends Error{status;constructor(e,t){super(e),this.status=t,this.name="ApiError"}}function s(e){return e.endsWith("/")?e:`${e}/`}e.s(["ApiError",0,t,"CollectorApi",0,class{baseUrl;apiKey;constructor(e,t){this.baseUrl=e,this.apiKey=t}async get(e,r={}){let n=new URL(e,s(this.baseUrl));for(let[e,t]of Object.entries(r))null!=t&&n.searchParams.set(e,String(t));let i=await fetch(n,{headers:{"x-api-key":this.apiKey},cache:"no-store"});if(!i.ok)throw new t(await i.text().catch(()=>"")||i.statusText,i.status);return await i.json()}sessions(e){return this.get("api/v1/sessions",e).then(e=>e.map(e=>({...e,events:Number(e.events)})))}pointerHeatmap(e){return this.get("api/v1/heatmaps/pointer",e)}meshUvHeatmap(e){return this.get("api/v1/heatmaps/mesh-uv",e)}cameraHeatmap(e){return this.get("api/v1/heatmaps/camera",e)}viewCoverageHistogram(e){return this.get("api/v1/coverage/view-histogram",e).then(e=>e.map(e=>({bucket:Number(e.bucket??0),sessions:Number(e.sessions??0)})))}topMeshes(e){return this.get("api/v1/meshes/top",e).then(e=>e.map(e=>({...e,count:Number(e.count)})))}meshBlindSpots(e){return this.get("api/v1/meshes/blind-spots",e).then(e=>e.map(e=>({mesh:String(e.mesh??""),visible_ms:Number(e.visible_ms??0),vis_samples:Number(e.vis_samples??0),interactions:Number(e.interactions??0),hover_ms:Number(e.hover_ms??0),hover_episodes:Number(e.hover_episodes??0)})))}meshKinds(e){return this.get("api/v1/meshes/kinds",e).then(e=>e.map(e=>({mesh:String(e.mesh??""),kind:String(e.kind??""),count:Number(e.count??0)})))}reachability(e){return this.get("api/v1/meshes/reachability",e).then(e=>e.map(e=>({mesh:String(e.mesh??""),bucket:Number(e.bucket??0),count:Number(e.count??0),avg_distance:Number(e.avg_distance??0)})))}topMeshesBySource(e){return this.get("api/v1/meshes/sources",e).then(e=>e.map(e=>({mesh:String(e.mesh??""),source:String(e.source??""),count:Number(e.count??0)})))}topMeshesTrend(e){return this.get("api/v1/meshes/trend",e).then(e=>e.map(e=>({mesh:String(e.mesh??""),bucket:Number(e.bucket??0),count:Number(e.count??0)})))}topInputActions(e){return this.get("api/v1/input-actions/top",e).then(e=>e.map(e=>({action:String(e.action??""),source:String(e.source??""),count:Number(e.count??0)})))}perf(e){return this.get("api/v1/perf",e).then(e=>({samples:Number(e.samples??0),avg_fps:Number(e.avg_fps??0),min_fps:Number(e.min_fps??0),p50_fps:Number(e.p50_fps??0)}))}renderScale(e){return this.get("api/v1/perf/render-scale",e).then(e=>{let t=e[0]??{},s=Number(t.downscaled_samples??0),r=Number(t.scale_samples??0);return{samples:Number(t.samples??0),avg_fps:Number(t.avg_fps??0),p50_fps:Number(t.p50_fps??0),avg_render_scale:Number(t.avg_render_scale??0),p50_render_scale:Number(t.p50_render_scale??0),downscaled_samples:s,scale_samples:r,downscaled_share:r>0?s/r:0}})}perfDistribution(e){return this.get("api/v1/perf/distribution",e).then(e=>{let t=e[0]??{};return{sessions:Number(t.sessions??0),samples:Number(t.samples??0),p05_fps:Number(t.p05_fps??0),p50_fps:Number(t.p50_fps??0),p95_fps:Number(t.p95_fps??0)}})}fpsHistogram(e){return this.get("api/v1/perf/fps-histogram",e).then(e=>e.map(e=>({bucket:Number(e.bucket??0),sessions:Number(e.sessions??0)})))}frameTimePercentiles(e){return this.get("api/v1/perf/frame-time",e).then(e=>{let t=e[0]??{};return{sessions:Number(t.sessions??0),samples:Number(t.samples??0),p50_ms:Number(t.p50_ms??0),p95_ms:Number(t.p95_ms??0)}})}jankRate(e){return this.get("api/v1/perf/jank",e).then(e=>{let t=e[0]??{};return{sessions:Number(t.sessions??0),total_long_frames:Number(t.total_long_frames??0),median_rate:Number(t.median_rate??0),worst_decile_rate:Number(t.worst_decile_rate??0)}})}perfChurn(e){return this.get("api/v1/perf/churn",e).then(e=>{let t=e[0]??{};return{sessions:Number(t.sessions??0),churn_sessions:Number(t.churn_sessions??0),fps_churn_sessions:Number(t.fps_churn_sessions??0),stall_churn_sessions:Number(t.stall_churn_sessions??0)}})}perfByDevice(e){return this.get("api/v1/perf/by-device",e).then(e=>e.map(e=>({engine:String(e.engine??""),is_mobile:String(e.is_mobile??""),renderer:String(e.renderer??""),browser:String(e.browser??""),os:String(e.os??""),sessions:Number(e.sessions??0),samples:Number(e.samples??0),p50_fps:Number(e.p50_fps??0)})))}perfByScene(e){return this.get("api/v1/perf/by-scene",e).then(e=>e.map(e=>({scene_id:String(e.scene_id??""),sessions:Number(e.sessions??0),samples:Number(e.samples??0),p50_fps:Number(e.p50_fps??0)})))}resourcePercentiles(e){return this.get("api/v1/perf/resource-percentiles",e).then(e=>{let t=e[0]??{};return{sessions:Number(t.sessions??0),samples:Number(t.samples??0),p50_js_heap_bytes:Number(t.p50_js_heap_bytes??0),p95_js_heap_bytes:Number(t.p95_js_heap_bytes??0),p50_texture_bytes:Number(t.p50_texture_bytes??0),p95_texture_bytes:Number(t.p95_texture_bytes??0),p50_triangles:Number(t.p50_triangles??0),p95_triangles:Number(t.p95_triangles??0)}})}stabilityCounts(e){return this.get("api/v1/perf/stability",e).then(e=>{let t=e[0]??{};return{context_losses:Number(t.context_losses??0),compile_stalls:Number(t.compile_stalls??0),incidents:Number(t.incidents??0)}})}graphicsDiagnosticCounts(e){return this.get("api/v1/graphics-diagnostics",e).then(e=>e.map(e=>({severity:String(e.severity??""),category:String(e.category??""),backend:String(e.backend??""),incidents:Number(e.incidents??0)})))}renderingTechnology(e){return this.get("api/v1/rendering-technology",e).then(e=>e.map(e=>({api:String(e.api??""),backend:String(e.backend??""),apiVersion:String(e.api_version??""),shadingLanguage:String(e.shading_language??""),sessions:Number(e.sessions??0)})))}worldHeatmap(e){return this.get("api/v1/heatmaps/world",e).then(e=>e.map(e=>({vx:Number(e.vx),vy:Number(e.vy),vz:Number(e.vz),count:Number(e.count)})))}gazeHeatmap(e){return this.get("api/v1/heatmaps/gaze",e).then(e=>e.map(e=>({vx:Number(e.vx),vy:Number(e.vy),vz:Number(e.vz),count:Number(e.count)})))}errorHeatmap(e){return this.get("api/v1/heatmaps/errors",e).then(e=>e.map(e=>({vx:Number(e.vx),vy:Number(e.vy),vz:Number(e.vz),count:Number(e.count)})))}worldHeatmapStats(e){return this.get("api/v1/heatmaps/world/stats",e).then(e=>({cellSize:Number(e.cellSize??0),cells:Number(e.cells??0),hits:Number(e.hits??0)}))}gazeHeatmapStats(e){return this.get("api/v1/heatmaps/gaze/stats",e).then(e=>({cellSize:Number(e.cellSize??0),cells:Number(e.cells??0),hits:Number(e.hits??0)}))}cameraPositionHeatmap(e){return this.get("api/v1/heatmaps/position",e).then(e=>e.map(e=>({gx:Number(e.gx),gz:Number(e.gz),avg_y:Number(e.avg_y??0),count:Number(e.count??0)})))}sessionTrajectory(e,t){return this.get(`api/v1/sessions/${encodeURIComponent(e)}/trajectory`,t).then(e=>e.map(e=>({ts:Number(e.ts),x:Number(e.x),y:Number(e.y),z:Number(e.z)})))}aggregatePaths(e){return this.get("api/v1/paths",e).then(e=>e.map(e=>({session_id:String(e.session_id??""),ts:Number(e.ts),gx:Number(e.gx),gz:Number(e.gz)})))}clickRays(e){return this.get("api/v1/heatmaps/click-rays",e).then(e=>e.map(e=>({camVoxel:[Number(e.cam_vx),Number(e.cam_vy),Number(e.cam_vz)],origin:[Number(e.origin_x),Number(e.origin_y),Number(e.origin_z)],hitVoxel:[Number(e.hit_vx),Number(e.hit_vy),Number(e.hit_vz)],hit:[Number(e.hit_x),Number(e.hit_y),Number(e.hit_z)],mesh:String(e.mesh??""),count:Number(e.count)})))}flowHeatmap(e){return this.get("api/v1/heatmaps/flow",e).then(e=>e.map(e=>{let t={azimuth_bin:Number(e.azimuth_bin),elevation_bin:Number(e.elevation_bin),mesh:String(e.mesh??""),count:Number(e.count)};return null!=e.origin_vx&&(t.originVoxel=[Number(e.origin_vx),Number(e.origin_vy),Number(e.origin_vz)],t.origin=[Number(e.origin_x),Number(e.origin_y),Number(e.origin_z)]),t}))}scenes(e){return this.get("api/v1/scenes",e).then(e=>e.map(e=>({...e,events:Number(e.events)})))}timeseries(e){return this.get("api/v1/timeseries",e).then(e=>e.map(e=>({bucket:Number(e.bucket),events:Number(e.events??0),avg_fps:Number(e.avg_fps??0)})))}eventCounts(e){return this.get("api/v1/event-counts",e).then(e=>e.map(e=>({event_type:String(e.event_type),count:Number(e.count??0)})))}funnel(e,t){return this.get("api/v1/funnel",{...t,steps:JSON.stringify(e)}).then(e=>e.map(e=>({step:Number(e.step),sessions:Number(e.sessions??0)})))}sceneRetention(e){return this.get("api/v1/scene-retention",e).then(e=>e.map(e=>({from:String(e.from_scene??""),to:String(e.to_scene??""),sessions:Number(e.sessions??0)})))}loadBounce(e){let{bands:t,...s}=e??{};return this.get("api/v1/load-bounce",{...s,...null!=t&&t.length>0?{bands:t.join(",")}:{}}).then(e=>e.map(e=>({band:Number(e.band??0),sessions:Number(e.sessions??0),bounced:Number(e.bounced??0)})))}variantLeaderboard(e={},t){return this.get("api/v1/variant-leaderboard",{...t,variant:e.variant?JSON.stringify(e.variant):void 0,conversion:e.conversion?JSON.stringify(e.conversion):void 0}).then(e=>e.map(e=>{let t=Number(e.sessions??0),s=Number(e.conversions??0);return{variant:String(e.variant),views:Number(e.views??0),sessions:t,conversions:s,avgDwellMs:Number(e.avg_dwell_ms??0),conversionRate:t>0?s/t:0}}))}coverage(e){return this.get("api/v1/coverage",e).then(e=>e.map(e=>({vx:Number(e.vx),vy:Number(e.vy),vz:Number(e.vz),count:Number(e.count??0)})))}perfHeatmap(e){return this.get("api/v1/heatmaps/perf",e).then(e=>e.map(e=>({vx:Number(e.vx),vy:Number(e.vy),vz:Number(e.vz),samples:Number(e.samples??0),avgFps:Number(e.avg_fps??0),minFps:Number(e.min_fps??0)})))}cameraDistance(e){return this.get("api/v1/camera/distance",e).then(e=>e.map(e=>({bucket:Number(e.bucket),count:Number(e.count??0)})))}navigation(e){return this.get("api/v1/navigation",e).then(e=>e.map(e=>({session_id:String(e.session_id??""),segments:Number(e.segments??0),total_distance:Number(e.total_distance??0),active_segments:Number(e.active_segments??0),active_distance:Number(e.active_distance??0)})))}backtrackRatio(e){return this.get("api/v1/backtrack",e).then(e=>e.map(e=>({scene:String(e.scene??""),sessions:Number(e.sessions??0),entries:Number(e.entries??0),revisits:Number(e.revisits??0),backtrack_ratio:Number(e.backtrack_ratio??0)})))}cameraGestures(e){return this.get("api/v1/camera-gestures",e).then(e=>e.map(e=>({kind:String(e.kind??""),gestures:Number(e.gestures??0),total_ms:Number(e.total_ms??0),avg_ms:Number(e.avg_ms??0),max_ms:Number(e.max_ms??0)})))}interactionsBySource(e){return this.get("api/v1/interactions/sources",e).then(e=>e.map(e=>({event_type:String(e.event_type??""),source:String(e.source??""),count:Number(e.count??0),sessions:Number(e.sessions??0)})))}xrLocomotion(e){return this.get("api/v1/xr/locomotion",e).then(e=>e.map(e=>({session_id:String(e.session_id??""),fly_gestures:Number(e.fly_gestures??0),navigate_gestures:Number(e.navigate_gestures??0),teleports:Number(e.teleports??0),locomotion_ms:Number(e.locomotion_ms??0),started_at:String(e.started_at??""),ended_at:String(e.ended_at??"")})))}sessionMeta(e){return this.get(`api/v1/sessions/${encodeURIComponent(e)}/meta`)}async sceneRepresentation(e){try{return await this.get(`api/v1/scenes/${encodeURIComponent(e)}/representation`)}catch(e){if(e instanceof t&&404===e.status)return null;throw e}}async liveToken(){let e=new URL("api/v1/live/token",s(this.baseUrl)),r=await fetch(e,{method:"POST",headers:{"x-api-key":this.apiKey},cache:"no-store"});if(!r.ok)throw new t(await r.text().catch(()=>"")||r.statusText,r.status);return await r.json()}livePresenceUrl(e){let t=new URL("api/v1/live/presence",s(this.baseUrl));return t.searchParams.set("token",e),t.toString()}liveStreamUrl(e,t){let r=new URL("api/v1/live/stream",s(this.baseUrl));return r.searchParams.set("token",e),t&&t.length>0&&r.searchParams.set("types",t.join(",")),r.toString()}liveSessionUrl(e,t){let r=new URL(`api/v1/live/sessions/${encodeURIComponent(t)}`,s(this.baseUrl));return r.searchParams.set("token",e),r.toString()}}])},37215,e=>{"use strict";var t=e.i(28100);let s=(0,t.jsxs)(t.Fragment,{children:["Each ",(0,t.jsx)("strong",{children:"source"})," is a camera ",(0,t.jsx)("em",{children:"gaze-direction bin"})," — a cell on the sphere of where viewers were looking (grouped by azimuth/elevation). Each ",(0,t.jsx)("strong",{children:"target"})," is a"," ",(0,t.jsx)("em",{children:"mesh that was clicked"}),". A ribbon's thickness is how many clicks on that mesh happened while viewers looked from that direction, so you can see which viewpoints drive interaction with which objects. When the scene reports ",(0,t.jsx)("em",{children:"standpoints"}),' (where the viewer stood, §7.8), pick one to gate the flow to clicks made from that vantage — a pin marks it in the scene. "All standpoints" is the aggregate view. Switch to ',(0,t.jsx)("strong",{children:"Two-stage"})," ","for a three-column ",(0,t.jsx)("em",{children:"standpoint → gaze sector → mesh"}),' flow with a birdview minimap; the busiest standpoints/meshes are kept and the tail folds into an "Other" node.']});e.s(["CAMERA_DOME_SUBTITLE",0,"Where the audience looked, mapped onto a sphere — drag to orbit, +/- to zoom, double-click to focus","CAMERA_DOME_TITLE",0,"View-direction dome (3D)","CLICK_RAYS_SUBTITLE",0,"Each click joined to the view it was made from — gate by viewpoint or focus a mesh; double-click to recenter","CLICK_RAYS_TITLE",0,"Click rays (3D)","ERROR_HEATMAP_SUBTITLE",0,"Where errors & engine diagnostics fired, voxel-binned by the camera position at the moment they hit — drag to orbit, double-click to focus","ERROR_HEATMAP_TITLE",0,"Error heatmap (3D)","FLOW_SANKEY_HELP",0,s,"FLOW_SANKEY_SUBTITLE",0,"Direction-bin → mesh links (aggregate), or standpoint → gaze → mesh (two-stage) — double-click to focus","FLOW_SANKEY_TITLE",0,"Flow Sankey (3D)","GAZE_CLICK_SUBTITLE",0,"Where viewers look (gaze) vs. where they act (clicks), voxel-binned in world space — double-click to focus","GAZE_CLICK_TITLE",0,"Gaze vs. click divergence","PERF_HEATMAP_SUBTITLE",0,"Where FPS is bad in your scene — frame_perf samples voxel-binned by camera position; hot = slow. Drag to orbit, +/- to zoom, double-click to focus","PERF_HEATMAP_TITLE",0,"Performance heatmap (3D)","WORLD_HEATMAP_SUBTITLE",0,"Pointer hit-points voxel-binned in world space — drag to orbit, +/- to zoom, double-click to focus","WORLD_HEATMAP_TITLE",0,"World heatmap (3D)"])},82665,e=>{"use strict";var t=e.i(37998);let s=!!t.default.env.NEXT_PUBLIC_COLLECTOR_URL,r=t.default.env.NEXT_PUBLIC_COLLECTOR_URL??"http://localhost:4318",n="1"===t.default.env.DASHBOARD_STATIC?"":t.default.env.NEXT_PUBLIC_API_KEY??"",i=t.default.env.NEXT_PUBLIC_PLAYGROUND_URL??"http://localhost:5173";e.s(["COLLECTOR_URL_IS_PINNED",0,s,"DEFAULT_API_KEY",0,n,"DEFAULT_COLLECTOR_URL",0,r,"DEFAULT_PLAYGROUND_URL",0,i])},60614,e=>{"use strict";async function t(e,t){let s=await e.scenes(t).catch(()=>[]);if(0===s.length)return[];let r=await Promise.all(s.map(t=>e.sceneRepresentation(t.scene_id).catch(()=>null))),n=new Set,i=[];for(let e of r)for(let t of e?.proxy?.meshes??[])n.has(t.name)||(n.add(t.name),i.push(t));return i}e.s(["mergeSceneProxies",0,t])},88725,e=>{"use strict";var t=e.i(11623);e.i(82665);var s=e.i(20880);function r(e,t,s,r){let n={cancelled:!1,source:null,timer:null},i=0,a=async()=>{let a;if(n.cancelled)return;r(0===i?"connecting":"reconnecting");try{let{token:s}=await e.liveToken();a=t(s)}catch{o();return}if(n.cancelled)return;let u=new EventSource(a);n.source=u,u.onopen=()=>{i=0,r("open")},u.onerror=()=>{u.close(),n.source===u&&(n.source=null),o()},s(u)},o=()=>{if(n.cancelled)return;r("reconnecting");let e=Math.min(1e3*2**i,15e3);i+=1,n.timer=setTimeout(()=>void a(),e)};return a(),()=>{n.cancelled=!0,n.timer&&clearTimeout(n.timer),n.source?.close(),n.source=null}}async function n(e,t,s){let r=e.getReader(),n=new TextDecoder,i="";for(t.addEventListener("abort",()=>void r.cancel().catch(()=>{}));;){let{done:e,value:t}=await r.read();if(e)return;let a=(i+=n.decode(t,{stream:!0})).indexOf("\n\n");for(;a>=0;){let e=i.slice(0,a);i=i.slice(a+2);let t="message",r=[];for(let s of e.split("\n"))!s.startsWith(":")&&(s.startsWith("event:")?t=s.slice(6).trim():s.startsWith("data:")&&r.push(s.slice(5).replace(/^ /,"")));"event"===t&&r.length>0&&s(r.join("\n")),a=i.indexOf("\n\n")}}}e.s(["useLivePresence",0,function(e,n,i){let[a,o]=(0,t.useState)(null),[u,c]=(0,t.useState)("idle");return(0,t.useEffect)(()=>{if(!i||!n||!e){c("idle"),o(null);return}let t=new s.CollectorApi(e,n);return r(t,e=>t.livePresenceUrl(e),e=>{e.addEventListener("presence",e=>{try{o(JSON.parse(e.data))}catch{}})},c)},[e,n,i]),{snapshot:a,status:u}},"useLiveSession",0,function(e,r,i,a,o,u){let[c,m]=(0,t.useState)("idle"),[l,h]=(0,t.useState)(!1),[p,b]=(0,t.useState)(0),d=(0,t.useRef)(o),g=(0,t.useRef)(u);return d.current=o,g.current=u,(0,t.useEffect)(()=>{if(!a||!r||!e||!i)return void m("idle");let t=new s.CollectorApi(e,r),o=!1,u=0,c=null,l=null;h(!1),b(0);let p=()=>{if(o)return;m("reconnecting");let e=Math.min(1e3*2**u,15e3);u+=1,l=setTimeout(()=>void v(),e)},v=async()=>{let e;if(!o){m(0===u?"connecting":"reconnecting"),g.current(),b(0);try{({token:e}=await t.liveToken())}catch{p();return}if(!o){c=new AbortController;try{let s=await fetch(t.liveSessionUrl(e,i),{headers:{accept:"text/event-stream"},cache:"no-store",signal:c.signal});if(403===s.status){h(!0),m("idle");return}if(!s.ok||!s.body)return void p();u=0,m("open"),await n(s.body,c.signal,e=>{try{d.current(JSON.parse(e)),b(e=>e+1)}catch{}}),o||p()}catch{o||p()}}}};return v(),()=>{o=!0,l&&clearTimeout(l),c?.abort()}},[e,r,i,a]),{status:c,gated:l,count:p}},"useLiveStream",0,function(e,n,i,a,o){let[u,c]=(0,t.useState)("idle"),m=(0,t.useRef)(a);m.current=a;let l=o&&o.length>0?[...o].sort().join(","):"";return(0,t.useEffect)(()=>{if(!i||!n||!e)return void c("idle");let t=new s.CollectorApi(e,n),a=l?l.split(","):void 0;return r(t,e=>t.liveStreamUrl(e,a),e=>{e.addEventListener("event",e=>{try{m.current(JSON.parse(e.data))}catch{}})},c)},[e,n,i,l]),{status:u}}])},93425,e=>{"use strict";var t=e.i(28100),s=e.i(11623);function r({children:e,label:s="More information"}){return(0,t.jsxs)("span",{className:"group relative inline-flex",children:[(0,t.jsx)("button",{type:"button","aria-label":s,className:"flex h-4 w-4 items-center justify-center rounded-full border border-edge text-[10px] font-bold leading-none text-fg-muted transition hover:border-amber hover:text-fg-hi focus:outline-none focus:ring-1 focus:ring-amber",children:"?"}),(0,t.jsx)("span",{role:"tooltip",className:"pointer-events-none absolute left-1/2 top-6 z-20 w-64 -translate-x-1/2 rounded-md border border-edge bg-ink/95 p-2.5 text-xs font-normal normal-case leading-relaxed tracking-normal text-fg opacity-0 shadow-lg shadow-black/40 transition-opacity duration-150 group-hover:opacity-100 group-focus-within:opacity-100",children:e})]})}function n({label:e,onClick:s,active:r=!1,children:i}){return(0,t.jsx)("button",{type:"button","aria-label":e,title:e,onClick:s,"aria-pressed":r,className:`flex h-6 w-6 items-center justify-center rounded-md border text-sm leading-none transition focus:outline-none focus:ring-1 focus:ring-amber ${r?"border-amber text-amber":"border-edge text-fg-muted hover:border-amber hover:text-fg-hi"}`,children:i})}e.s(["Panel",0,function({title:e,subtitle:i,help:a,children:o,className:u="",collapsible:c=!1,defaultCollapsed:m=!1,onHide:l,settings:h}){let[p,b]=(0,s.useState)(c&&m),[d,g]=(0,s.useState)(!1),v=(0,t.jsxs)("header",{className:p?"":"mb-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("h2",{className:"text-sm font-semibold uppercase tracking-wide text-fg",children:e}),c?(0,t.jsx)("span",{"aria-hidden":"true",className:"text-xs text-fg-muted",children:p?"▸":"▾"}):null,a?(0,t.jsx)(r,{label:`About: ${e}`,children:a}):null]}),i?(0,t.jsx)("p",{className:"mt-0.5 text-xs text-fg-muted",children:i}):null]}),_=!!h||!!l;return(0,t.jsxs)("section",{className:`rounded-xl border border-edge bg-panel p-4 shadow-lg shadow-black/20 ${u}`,children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[c?(0,t.jsx)("button",{type:"button",onClick:()=>b(e=>!e),"aria-expanded":p?"false":"true",className:"min-w-0 flex-1 text-left",children:v}):(0,t.jsx)("div",{className:"min-w-0 flex-1",children:v}),_?(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-1",children:[h?(0,t.jsx)(n,{label:`${e} settings`,active:d,onClick:()=>g(e=>!e),children:(0,t.jsx)("span",{"aria-hidden":"true",children:"⚙"})}):null,l?(0,t.jsx)(n,{label:`Hide ${e}`,onClick:l,children:(0,t.jsx)("span",{"aria-hidden":"true",children:"×"})}):null]}):null]}),h&&d?(0,t.jsx)("div",{className:"mb-3 rounded-lg border border-edge bg-ink/40 p-3",children:h}):null,p?null:o]})}])},78573,e=>{e.v(t=>Promise.all(["static/chunks/39ojyykom0z2r.js"].map(t=>e.l(t))).then(()=>t(48939)))},47410,e=>{e.v(t=>Promise.all(["static/chunks/0ljf5zpstyrg7.js"].map(t=>e.l(t))).then(()=>t(53993)))},70162,e=>{e.v(t=>Promise.all(["static/chunks/3jha6wlqw8459.js"].map(t=>e.l(t))).then(()=>t(19399)))},21269,e=>{e.v(t=>Promise.all(["static/chunks/2_hgfg-cjqw1-.js"].map(t=>e.l(t))).then(()=>t(39592)))},69091,e=>{e.v(t=>Promise.all(["static/chunks/06m_64ysu9kn0.js"].map(t=>e.l(t))).then(()=>t(12449)))},15867,e=>{e.v(t=>Promise.all(["static/chunks/1i89ao_sm6o4o.js"].map(t=>e.l(t))).then(()=>t(94452)))}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,2348,2413,t=>{"use strict";let e=1/1.2;t.s(["ZOOM_IN_FACTOR",0,e,"ZOOM_OUT_FACTOR",0,1.2,"attachDoubleClickFocus",0,function(t,e,s){let a=()=>{let e=t.pick(t.pointerX,t.pointerY);e?.hit&&e.pickedPoint&&s.setTarget(e.pickedPoint)};return e.addEventListener("dblclick",a),()=>e.removeEventListener("dblclick",a)},"disableWheelZoom",0,function(t){t.inputs.removeByType("ArcRotateCameraMouseWheelInput")},"resetFocus",0,function(t,e){t.setTarget(e.target),t.alpha=e.alpha,t.beta=e.beta,t.radius=e.radius},"stepZoom",0,function(t,e){let s=t.lowerRadiusLimit??.01,a=t.upperRadiusLimit??1/0;t.radius=Math.min(a,Math.max(s,t.radius*e))}],2348);var s=t.i(28100);t.s(["ZoomButtons",0,function({onZoom:t,onReset:a}){let n="grid h-8 w-8 place-items-center rounded-md border border-edge bg-ink/80 text-lg leading-none text-fg backdrop-blur transition hover:bg-ink hover:text-white";return(0,s.jsxs)("div",{className:"absolute right-3 top-3 flex flex-col gap-1",children:[(0,s.jsx)("button",{type:"button","aria-label":"Zoom in",className:n,onClick:()=>t(e),children:"+"}),(0,s.jsx)("button",{type:"button","aria-label":"Zoom out",className:n,onClick:()=>t(1.2),children:"−"}),a?(0,s.jsx)("button",{type:"button","aria-label":"Reset camera focus to center",title:"Reset focus to center",className:n,onClick:a,children:(0,s.jsxs)("svg",{viewBox:"0 0 16 16",width:"16",height:"16",fill:"none",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round","aria-hidden":"true",children:[(0,s.jsx)("circle",{cx:"8",cy:"8",r:"3"}),(0,s.jsx)("path",{d:"M8 1v2.5M8 12.5V15M1 8h2.5M12.5 8H15"})]})}):null]})}],2413)},25476,t=>{"use strict";t.s(["attachMeshHover",0,function(t,e,s){let a=0,n=null,i=e=>{let i=e.offsetX,c=e.offsetY;a||(a=requestAnimationFrame(()=>{var e,r;let h;a=0;let l=t.pick(i,c,t=>t.isPickable&&t.isEnabled()),o=l?.pickedMesh?(e=l.pickedMesh,r=l.thinInstanceIndex??-1,(h=e.metadata)?r>=0&&h.hoverLabels?h.hoverLabels[r]??null:h.hoverLabel??null:null):null;o?s({label:o,x:i,y:c}):null!==n&&s(null),n=o}))},c=()=>{a&&(cancelAnimationFrame(a),a=0),null!==n&&(n=null,s(null))};return e.addEventListener("pointermove",i),e.addEventListener("pointerleave",c),()=>{e.removeEventListener("pointermove",i),e.removeEventListener("pointerleave",c),a&&cancelAnimationFrame(a)}}])},48939,t=>{"use strict";var e=t.i(28100),s=t.i(11623);function a(t){return Number.isNaN(t)||t<0?0:t>1?1:t}function n(t){let e=a(t),s=[[0,.1,.9],[0,.85,1],[.1,.9,.2],[1,.85,0],[1,.15,0],[1,1,1]],n=s.length-1,i=e*n,c=Math.min(Math.floor(i),n-1),r=i-c,h=s[c],l=s[c+1];return h&&l?[h[0]+(l[0]-h[0])*r,h[1]+(l[1]-h[1])*r,h[2]+(l[2]-h[2])*r]:[1,1,1]}var i=t.i(56054),c=t.i(2348),r=t.i(25476),h=t.i(18637),l=t.i(2413);t.s(["CameraDome3DView",0,function({bins:o,gridSize:u}){let d=(0,s.useRef)(null),m=(0,s.useRef)(null),j=(0,s.useRef)(null),[k,p]=(0,s.useState)("loading"),[v,g]=(0,s.useState)(null),[b,f]=(0,s.useState)("markers"),[w,x]=(0,s.useState)(null);return(0,s.useEffect)(()=>{let e=d.current;if(!e)return;if(0===o.length)return void p("empty");let s=!1,h=null;return p("loading"),g(null),(async()=>{try{let[{Engine:l},{Scene:d},{ArcRotateCamera:k},{HemisphericLight:v},{Vector3:g,Color3:f,Color4:w,Matrix:M},{MeshBuilder:y},{StandardMaterial:z},{Mesh:q},{DynamicTexture:P}]=await Promise.all([t.A(3905),t.A(94432),t.A(59694),t.A(88004),t.A(27940),t.A(27124),t.A(14074),t.A(2213),t.A(15002),t.A(35983),t.A(18561)]);if(s)return;let _=new l(e,!0,{preserveDrawingBuffer:!1}),C=new d(_);C.clearColor=new w(.04,.05,.07,1);let I=g.Zero(),L=new k("dome-cam",Math.PI/3,Math.PI/2.4,3.6,I,C);L.attachControl(e,!0),L.lowerRadiusLimit=1.6,L.upperRadiusLimit=8,(0,c.disableWheelZoom)(L),m.current=L,j.current={target:I,alpha:L.alpha,beta:L.beta,radius:L.radius},new v("dome-light",new g(.3,1,.2),C);let A=y.CreateSphere("dome",{diameter:2,segments:20},C),B=new z("dome-mat",C);B.wireframe=!0,B.disableLighting=!0,B.emissiveColor=new f(.16,.2,.28),B.alpha=.5,A.material=B,A.isPickable=!1;let R=[];for(let t=0;t<=64;t++){let e=t/64*Math.PI*2;R.push(new g(Math.cos(e),0,Math.sin(e)))}let S=y.CreateLines("dome-horizon",{points:R},C);S.color=new f(.3,.36,.46),S.isPickable=!1;let F=y.CreateLines("dome-forward",{points:[g.Zero(),new g(1.25,0,0)]},C);F.color=new f(.4,.7,.95),F.isPickable=!1;let E=o.reduce((t,e)=>Math.max(t,e.count),1),N=u>0?u:1;if("markers"===b){let t=y.CreateBox("dome-marker",{size:1},C),e=new z("dome-marker-mat",C);e.disableLighting=!0,e.emissiveColor=f.White(),e.specularColor=new f(0,0,0),t.material=e,t.isPickable=!0,t.thinInstanceEnablePicking=!0;let s=o.length,a=new Float32Array(16*s),n=new Float32Array(4*s),c=Array(s);for(let t=0;t<s;t++){let e=o[t],s=(e.azimuth_bin+.5)/N*Math.PI*2-Math.PI,r=(e.elevation_bin+.5)/N*Math.PI-Math.PI/2,h=Math.cos(r),l=h*Math.cos(s),u=Math.sin(r),d=h*Math.sin(s),m=e.count/E,j=.03+.12*m;M.Scaling(j,j,j).multiply(M.Translation(l,u,d)).copyToArray(a,16*t);let[k,p,v]=(0,i.heatRgb)(m);n[4*t]=k,n[4*t+1]=p,n[4*t+2]=v,n[4*t+3]=1,c[t]=`dir (${e.azimuth_bin}, ${e.elevation_bin}) \xb7 ${e.count}`}t.thinInstanceSetBuffer("matrix",a,16,!0),t.thinInstanceSetBuffer("color",n,4,!0),t.metadata={hoverLabels:c}}else{let t=function(t,e={}){let s=void 0!==e.width&&e.width>0?Math.floor(e.width):256,i=void 0!==e.height&&e.height>0?Math.floor(e.height):Math.max(1,Math.floor(s/2)),c=e.colorRamp??n,r=void 0!==e.blurBins&&e.blurBins>0?e.blurBins:1.5,h=a(e.alphaFloor??0),l=a(e.opacity??1),o=t.gridSize>0?t.gridSize:1,u=new Uint8ClampedArray(s*i*4),d=t.bins.filter(t=>t.count>0);if(0===d.length)return{width:s,height:i,rgba:u};let m=Math.max(1e-4,Math.PI/o*r),j=2*m*m,k=Math.cos(Math.min(Math.PI,3*m)),p=d.map(t=>{var e,s;let a,[n,i]=(e=t.azimuthBin,s=t.elevationBin,[(e+.5)/o*Math.PI*2-Math.PI,(s+.5)/o*Math.PI-Math.PI/2]);return[(a=Math.cos(i))*Math.cos(n),Math.sin(i),a*Math.sin(n)]}),v=new Float32Array(s*i),g=0;for(let t=0;t<i;t++){let e=Math.PI/2-(t+.5)/i*Math.PI,a=Math.cos(e),n=Math.sin(e);for(let e=0;e<s;e++){let i=(e+.5)/s*Math.PI*2-Math.PI,c=a*Math.cos(i),r=a*Math.sin(i),h=0;for(let t=0;t<d.length;t++){let e=p[t],s=c*e[0]+n*e[1]+r*e[2];if(s<k)continue;let a=Math.acos(s>1?1:s<-1?-1:s);h+=d[t].count*Math.exp(-(a*a)/j)}v[t*s+e]=h,h>g&&(g=h)}}if(g<=0)return{width:s,height:i,rgba:u};for(let t=0;t<v.length;t++){let e=a(v[t]/g),[s,n,i]=c(e),r=(h+(1-h)*e)*l,o=4*t;u[o]=Math.round(255*s),u[o+1]=Math.round(255*n),u[o+2]=Math.round(255*i),u[o+3]=Math.round(255*a(r))}return{width:s,height:i,rgba:u}}({bins:o.map(t=>({azimuthBin:t.azimuth_bin,elevationBin:t.elevation_bin,count:t.count})),gridSize:N},{width:256,blurBins:1.5,opacity:.95}),e=new P("dome-skytex",{width:t.width,height:t.height},C,!1);e.hasAlpha=!0;let s=e.getContext(),i=s.createImageData(t.width,t.height);i.data.set(t.rgba),s.putImageData(i,0,0),e.update();let c=y.CreateSphere("dome-sky",{diameter:2,segments:48,sideOrientation:q.DOUBLESIDE},C),r=new z("dome-sky-mat",C);r.disableLighting=!0,r.emissiveColor=f.White(),r.diffuseColor=new f(0,0,0),r.specularColor=new f(0,0,0),r.emissiveTexture=e,r.opacityTexture=e,r.backFaceCulling=!1,c.material=r,c.isPickable=!1}_.runRenderLoop(()=>C.render());let T=()=>_.resize();window.addEventListener("resize",T);let Z=(0,r.attachMeshHover)(C,e,x),D=(0,c.attachDoubleClickFocus)(C,e,L);p("ready"),h=()=>{window.removeEventListener("resize",T),Z(),D(),x(null),m.current=null,j.current=null,C.dispose(),_.dispose()}}catch(t){if(s)return;p("error"),g(t instanceof Error?t.message:"Failed to render dome.")}})(),()=>{s=!0,h?.()}},[o,u,b]),(0,e.jsxs)("div",{className:"relative",children:[(0,e.jsx)("canvas",{ref:d,className:"aspect-video w-full rounded-lg border border-edge bg-ink"}),w?(0,e.jsx)("div",{className:"pointer-events-none absolute z-10 max-w-[16rem] truncate rounded border border-edge bg-ink/90 px-1.5 py-0.5 text-xs text-white shadow backdrop-blur",style:{left:w.x+12,top:w.y+12},children:w.label}):null,"ready"===k?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("div",{className:"absolute left-3 top-3 flex overflow-hidden rounded-md border border-edge bg-ink/80 text-xs backdrop-blur",children:["markers","skydome"].map(t=>(0,e.jsx)("button",{type:"button",onClick:()=>f(t),className:`px-2.5 py-1 ${b===t?"bg-fg/15 font-medium text-white":"text-fg-muted hover:text-fg"}`,children:"markers"===t?"Markers":"Skydome"},t))}),(0,e.jsx)(l.ZoomButtons,{onZoom:t=>m.current&&(0,c.stepZoom)(m.current,t),onReset:()=>m.current&&j.current&&(0,c.resetFocus)(m.current,j.current)}),(0,e.jsx)(h.HeatLegend,{title:"Gaze density",lowLabel:"rarely",highLabel:"most-viewed",note:"markers"===b?"Each marker is a look-direction (camera forward). Blue line = forward, ring = horizon. Color & size scale with how often that direction was viewed.":"Continuous equirectangular heat field: the same gaze bins splatted into a smooth thermal texture wrapped on the dome. The in-scene SDK overlay (showGazeSkydome) renders this inward so you can stand inside it in WebXR."})]}):(0,e.jsx)("div",{className:"pointer-events-none absolute inset-0 grid place-items-center text-sm text-fg-muted",children:"loading"===k?"Rendering…":"empty"===k?"No camera samples in range.":"error"===k?v??"Dome unavailable.":null})]})}],48939)},3905,t=>{t.v(e=>Promise.all(["static/chunks/3pdpaqzwhhijn.js","static/chunks/08bm3ye5govev.js","static/chunks/0g6u34xkzrpjn.js","static/chunks/25ctnyh7njp-d.js","static/chunks/2gh4z57fem0_v.js","static/chunks/3vaho-xrtuchd.js","static/chunks/0g7p8zp2kxve5.js"].map(e=>t.l(e))).then(()=>e(66232)))},94432,t=>{t.v(e=>Promise.all(["static/chunks/2kje_jvmwsvwo.js","static/chunks/1j--a56ji33_x.js","static/chunks/3pdpaqzwhhijn.js","static/chunks/2npk7tr63h7rl.js","static/chunks/3vaho-xrtuchd.js","static/chunks/3g_h_00xs9u59.js","static/chunks/1vzmzrjhlm1q5.js","static/chunks/25ctnyh7njp-d.js","static/chunks/1vpcaaf-0dn7q.js"].map(e=>t.l(e))).then(()=>e(92494)))},59694,t=>{t.v(e=>Promise.all(["static/chunks/1j--a56ji33_x.js","static/chunks/0oap0o8a8a_cl.js","static/chunks/0f_nv15a8q415.js","static/chunks/1vzmzrjhlm1q5.js","static/chunks/3pdpaqzwhhijn.js","static/chunks/245h82k-g1nxr.js","static/chunks/3ovd8o_usay7j.js","static/chunks/3vaho-xrtuchd.js","static/chunks/1vpcaaf-0dn7q.js","static/chunks/25ctnyh7njp-d.js","static/chunks/2npk7tr63h7rl.js","static/chunks/3pyggl13glbdc.js"].map(e=>t.l(e))).then(()=>e(67186)))},88004,t=>{t.v(e=>Promise.all(["static/chunks/2p8dbh81chhon.js","static/chunks/1oara6fkfvgs3.js","static/chunks/1vzmzrjhlm1q5.js","static/chunks/25ctnyh7njp-d.js","static/chunks/3pdpaqzwhhijn.js"].map(e=>t.l(e))).then(()=>e(15768)))},27940,t=>{t.v(e=>Promise.all(["static/chunks/0w0sx062qmcsh.js","static/chunks/25ctnyh7njp-d.js","static/chunks/3pdpaqzwhhijn.js"].map(e=>t.l(e))).then(()=>e(23235)))},27124,t=>{t.v(e=>Promise.all(["static/chunks/1par9m038tiov.js","static/chunks/1j--a56ji33_x.js","static/chunks/2j-sax2xfdv7l.js","static/chunks/340pg0qkv5tqq.js","static/chunks/3pdpaqzwhhijn.js","static/chunks/0gwa154w_0wuh.js","static/chunks/0oap0o8a8a_cl.js","static/chunks/0f_nv15a8q415.js","static/chunks/3vaho-xrtuchd.js","static/chunks/3pyggl13glbdc.js","static/chunks/1vzmzrjhlm1q5.js","static/chunks/3g_h_00xs9u59.js","static/chunks/1vpcaaf-0dn7q.js","static/chunks/25ctnyh7njp-d.js","static/chunks/2npk7tr63h7rl.js","static/chunks/01aeari2x_tlz.js"].map(e=>t.l(e))).then(()=>e(70928)))},14074,t=>{t.v(e=>Promise.all(["static/chunks/1zcrrq1fx8g2y.js","static/chunks/1tdg_eolxlcdl.js","static/chunks/1j--a56ji33_x.js","static/chunks/1vzmzrjhlm1q5.js","static/chunks/0vddljjnmozzx.js","static/chunks/3pdpaqzwhhijn.js","static/chunks/1vpcaaf-0dn7q.js","static/chunks/3vaho-xrtuchd.js","static/chunks/0f_nv15a8q415.js","static/chunks/3g_h_00xs9u59.js","static/chunks/2npk7tr63h7rl.js","static/chunks/25ctnyh7njp-d.js"].map(e=>t.l(e))).then(()=>e(87566)))},2213,t=>{t.v(e=>Promise.all(["static/chunks/3wqs57qehored.js","static/chunks/1j--a56ji33_x.js","static/chunks/1vzmzrjhlm1q5.js","static/chunks/2npk7tr63h7rl.js","static/chunks/1vkww9l6lgqag.js","static/chunks/1vpcaaf-0dn7q.js","static/chunks/0f_nv15a8q415.js","static/chunks/3pyggl13glbdc.js","static/chunks/3vaho-xrtuchd.js","static/chunks/25ctnyh7njp-d.js","static/chunks/3pdpaqzwhhijn.js"].map(e=>t.l(e))).then(()=>e(95758)))},15002,t=>{t.v(e=>Promise.all(["static/chunks/34gp3hvr3j6um.js","static/chunks/0x6i6e6863tir.js","static/chunks/3pdpaqzwhhijn.js","static/chunks/3vaho-xrtuchd.js","static/chunks/2gh4z57fem0_v.js","static/chunks/25ctnyh7njp-d.js","static/chunks/28ycc-1519hl2.js"].map(e=>t.l(e))).then(()=>e(95729)))},35983,t=>{t.v(e=>Promise.all(["static/chunks/4227p7752rnny.js","static/chunks/1j--a56ji33_x.js","static/chunks/1vzmzrjhlm1q5.js","static/chunks/2npk7tr63h7rl.js","static/chunks/1vkww9l6lgqag.js","static/chunks/25ctnyh7njp-d.js","static/chunks/0f_nv15a8q415.js","static/chunks/3vaho-xrtuchd.js","static/chunks/1vpcaaf-0dn7q.js","static/chunks/3pyggl13glbdc.js","static/chunks/3pdpaqzwhhijn.js"].map(e=>t.l(e))).then(()=>e(50608)))},18561,t=>{t.v(e=>Promise.all(["static/chunks/1j--a56ji33_x.js","static/chunks/1vkww9l6lgqag.js","static/chunks/3pdpaqzwhhijn.js","static/chunks/2npk7tr63h7rl.js","static/chunks/117ys3lltfmcu.js","static/chunks/25ctnyh7njp-d.js","static/chunks/1vzmzrjhlm1q5.js","static/chunks/3g_h_00xs9u59.js","static/chunks/1vpcaaf-0dn7q.js","static/chunks/3vaho-xrtuchd.js"].map(e=>t.l(e))).then(()=>e(85106)))}]);
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/32687112bd2dd8db-s.1gepa_7fcx9fm.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/28868e710e86be81-s.2eksvhm1z0jwa.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/0c89a48fa5027cee-s.p.2cyn07wtgehh0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk Fallback;src:local(Arial);ascent-override:89.71%;descent-override:26.62%;line-gap-override:0.0%;size-adjust:109.69%}.space_grotesk_59d6dcf5-module__z_Ctiq__className{font-family:Space Grotesk,Space Grotesk Fallback;font-style:normal}.space_grotesk_59d6dcf5-module__z_Ctiq__variable{--font-space-grotesk:"Space Grotesk", "Space Grotesk Fallback"}
|
|
2
|
+
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/13bf9871fe164e7f-s.2f7nqdagzwx2-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/cc545e633e20c56d-s.176arc174-8zp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/71b036adf157cdcf-s.0bp8oijd_gu96.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/89b21bb081cb7469-s.1fby2rem9ngyr.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/3fe682a82f50d426-s.0vfdmo25voy_0.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_38c99671-module__5Dhsuq__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_38c99671-module__5Dhsuq__variable{--font-jetbrains-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
|
|
3
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:var(--font-jetbrains-mono), ui-monospace, SFMono-Regular, monospace;--color-red-300:#ffa3a3;--color-red-400:#ff6568;--color-red-900:#82181a;--color-red-950:#460809;--color-amber-300:#ffd236;--color-amber-400:#fcbb00;--color-amber-500:#f99c00;--color-emerald-300:#5ee9b5;--color-emerald-400:#00d294;--color-emerald-500:#00bb7f;--color-sky-400:#00bcfe;--color-sky-500:#00a5ef;--color-fuchsia-300:#f2a9ff;--color-fuchsia-400:#ec6cff;--color-fuchsia-500:#e12afb;--color-rose-300:#ffa2ae;--color-rose-400:#ff667f;--color-rose-500:#ff2357;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-normal:0em;--tracking-wide:.025em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--aspect-video:16 / 9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-ink:#161210;--color-panel:#201913;--color-edge:#34291f;--color-fg-hi:#f4eadf;--color-fg:#d8c8b8;--color-fg-muted:#a8917c;--color-saffron:#f4c84b;--color-amber:#eda63e;--color-ember:#e07b39;--font-display:var(--font-space-grotesk), system-ui, sans-serif;--font-body:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}@supports (color:lab(0% 0 0)){:root,:host{--color-red-300:lab(76.5514% 36.422 15.5335);--color-red-400:lab(63.7053% 60.745 31.3109);--color-red-900:lab(28.5139% 44.5539 29.0463);--color-red-950:lab(13.003% 29.04 16.7519);--color-amber-300:lab(86.4156% 6.13147 78.3961);--color-amber-400:lab(80.1641% 16.6016 99.2089);--color-amber-500:lab(72.7183% 31.8672 97.9407);--color-emerald-300:lab(83.9203% -48.7124 13.8849);--color-emerald-400:lab(75.0771% -60.7313 19.4147);--color-emerald-500:lab(66.9756% -58.27 19.5419);--color-sky-400:lab(70.687% -23.6078 -45.9483);--color-sky-500:lab(63.3038% -18.433 -51.0407);--color-fuchsia-300:lab(78.5378% 39.3533 -32.9615);--color-fuchsia-400:lab(66.1178% 66.0652 -52.4733);--color-fuchsia-500:lab(56.4256% 83.132 -64.639);--color-rose-300:lab(76.6339% 38.3549 9.68835);--color-rose-400:lab(64.4125% 63.0291 19.2068);--color-rose-500:lab(56.101% 79.4328 31.4532)}}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:0}.inset-y-1{inset-block:var(--spacing)}.top-0{top:0}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.top-6{top:calc(var(--spacing) * 6)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.bottom-3{bottom:calc(var(--spacing) * 3)}.left-0{left:0}.left-1\/2{left:50%}.left-3{left:calc(var(--spacing) * 3)}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-auto{margin-top:auto}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-8{margin-left:calc(var(--spacing) * 8)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-video{aspect-ratio:var(--aspect-video)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-27\.5{height:calc(var(--spacing) * 27.5)}.h-full{height:100%}.max-h-64{max-height:calc(var(--spacing) * 64)}.min-h-\[8rem\]{min-height:8rem}.min-h-\[12rem\]{min-height:12rem}.w-1{width:var(--spacing)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-16{width:calc(var(--spacing) * 16)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-36{width:calc(var(--spacing) * 36)}.w-37\.5{width:calc(var(--spacing) * 37.5)}.w-64{width:calc(var(--spacing) * 64)}.w-full{width:100%}.w-px{width:1px}.max-w-6xl{max-width:var(--container-6xl)}.max-w-44{max-width:calc(var(--spacing) * 44)}.max-w-64{max-width:calc(var(--spacing) * 64)}.max-w-72{max-width:calc(var(--spacing) * 72)}.max-w-\[12rem\]{max-width:12rem}.max-w-\[16rem\]{max-width:16rem}.max-w-\[20rem\]{max-width:20rem}.min-w-0{min-width:0}.min-w-36{min-width:calc(var(--spacing) * 36)}.min-w-40{min-width:calc(var(--spacing) * 40)}.min-w-56{min-width:calc(var(--spacing) * 56)}.flex-1{flex:1}.flex-none{flex:none}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.cursor-crosshair{cursor:crosshair}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-px{gap:1px}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-y-1{row-gap:var(--spacing)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-amber{border-color:var(--color-amber)}.border-amber\/40{border-color:#eda63e66}@supports (color:color-mix(in lab, red, red)){.border-amber\/40{border-color:color-mix(in oklab, var(--color-amber) 40%, transparent)}}.border-amber\/60{border-color:#eda63e99}@supports (color:color-mix(in lab, red, red)){.border-amber\/60{border-color:color-mix(in oklab, var(--color-amber) 60%, transparent)}}.border-edge{border-color:var(--color-edge)}.border-ink\/40{border-color:#16121066}@supports (color:color-mix(in lab, red, red)){.border-ink\/40{border-color:color-mix(in oklab, var(--color-ink) 40%, transparent)}}.border-ink\/60{border-color:#16121099}@supports (color:color-mix(in lab, red, red)){.border-ink\/60{border-color:color-mix(in oklab, var(--color-ink) 60%, transparent)}}.border-red-900\/60{border-color:#82181a99}@supports (color:color-mix(in lab, red, red)){.border-red-900\/60{border-color:color-mix(in oklab, var(--color-red-900) 60%, transparent)}}.border-transparent{border-color:#0000}.bg-\[\#38bdf8\]{background-color:#38bdf8}.bg-\[\#f4c84b\]{background-color:#f4c84b}.bg-amber{background-color:var(--color-amber)}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-500\/70{background-color:#f99c00b3}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/70{background-color:color-mix(in oklab, var(--color-amber-500) 70%, transparent)}}.bg-amber\/10{background-color:#eda63e1a}@supports (color:color-mix(in lab, red, red)){.bg-amber\/10{background-color:color-mix(in oklab, var(--color-amber) 10%, transparent)}}.bg-amber\/15{background-color:#eda63e26}@supports (color:color-mix(in lab, red, red)){.bg-amber\/15{background-color:color-mix(in oklab, var(--color-amber) 15%, transparent)}}.bg-amber\/30{background-color:#eda63e4d}@supports (color:color-mix(in lab, red, red)){.bg-amber\/30{background-color:color-mix(in oklab, var(--color-amber) 30%, transparent)}}.bg-black\/30{background-color:#0000004d}@supports (color:color-mix(in lab, red, red)){.bg-black\/30{background-color:color-mix(in oklab, var(--color-black) 30%, transparent)}}.bg-black\/70{background-color:#000000b3}@supports (color:color-mix(in lab, red, red)){.bg-black\/70{background-color:color-mix(in oklab, var(--color-black) 70%, transparent)}}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-emerald-500\/70{background-color:#00bb7fb3}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/70{background-color:color-mix(in oklab, var(--color-emerald-500) 70%, transparent)}}.bg-fg-muted{background-color:var(--color-fg-muted)}.bg-fg\/15{background-color:#d8c8b826}@supports (color:color-mix(in lab, red, red)){.bg-fg\/15{background-color:color-mix(in oklab, var(--color-fg) 15%, transparent)}}.bg-fg\/50{background-color:#d8c8b880}@supports (color:color-mix(in lab, red, red)){.bg-fg\/50{background-color:color-mix(in oklab, var(--color-fg) 50%, transparent)}}.bg-fuchsia-400\/30{background-color:#ec6cff4d}@supports (color:color-mix(in lab, red, red)){.bg-fuchsia-400\/30{background-color:color-mix(in oklab, var(--color-fuchsia-400) 30%, transparent)}}.bg-ink{background-color:var(--color-ink)}.bg-ink\/40{background-color:#16121066}@supports (color:color-mix(in lab, red, red)){.bg-ink\/40{background-color:color-mix(in oklab, var(--color-ink) 40%, transparent)}}.bg-ink\/50{background-color:#16121080}@supports (color:color-mix(in lab, red, red)){.bg-ink\/50{background-color:color-mix(in oklab, var(--color-ink) 50%, transparent)}}.bg-ink\/60{background-color:#16121099}@supports (color:color-mix(in lab, red, red)){.bg-ink\/60{background-color:color-mix(in oklab, var(--color-ink) 60%, transparent)}}.bg-ink\/80{background-color:#161210cc}@supports (color:color-mix(in lab, red, red)){.bg-ink\/80{background-color:color-mix(in oklab, var(--color-ink) 80%, transparent)}}.bg-ink\/90{background-color:#161210e6}@supports (color:color-mix(in lab, red, red)){.bg-ink\/90{background-color:color-mix(in oklab, var(--color-ink) 90%, transparent)}}.bg-ink\/95{background-color:#161210f2}@supports (color:color-mix(in lab, red, red)){.bg-ink\/95{background-color:color-mix(in oklab, var(--color-ink) 95%, transparent)}}.bg-panel{background-color:var(--color-panel)}.bg-panel\/60{background-color:#20191399}@supports (color:color-mix(in lab, red, red)){.bg-panel\/60{background-color:color-mix(in oklab, var(--color-panel) 60%, transparent)}}.bg-red-950\/40{background-color:#46080966}@supports (color:color-mix(in lab, red, red)){.bg-red-950\/40{background-color:color-mix(in oklab, var(--color-red-950) 40%, transparent)}}.bg-rose-400{background-color:var(--color-rose-400)}.bg-rose-500\/20{background-color:#ff235733}@supports (color:color-mix(in lab, red, red)){.bg-rose-500\/20{background-color:color-mix(in oklab, var(--color-rose-500) 20%, transparent)}}.bg-rose-500\/70{background-color:#ff2357b3}@supports (color:color-mix(in lab, red, red)){.bg-rose-500\/70{background-color:color-mix(in oklab, var(--color-rose-500) 70%, transparent)}}.bg-saffron{background-color:var(--color-saffron)}.bg-sky-400\/70{background-color:#00bcfeb3}@supports (color:color-mix(in lab, red, red)){.bg-sky-400\/70{background-color:color-mix(in oklab, var(--color-sky-400) 70%, transparent)}}.bg-sky-500\/70{background-color:#00a5efb3}@supports (color:color-mix(in lab, red, red)){.bg-sky-500\/70{background-color:color-mix(in oklab, var(--color-sky-500) 70%, transparent)}}.bg-transparent{background-color:#0000}.bg-white\/5{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.bg-white\/5{background-color:color-mix(in oklab, var(--color-white) 5%, transparent)}}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.pt-1{padding-top:var(--spacing)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pr-1{padding-right:var(--spacing)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pb-0\.5{padding-bottom:calc(var(--spacing) * .5)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-display{font-family:var(--font-display)}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.whitespace-nowrap{white-space:nowrap}.text-amber{color:var(--color-amber)}.text-amber-300{color:var(--color-amber-300)}.text-emerald-300{color:var(--color-emerald-300)}.text-emerald-400{color:var(--color-emerald-400)}.text-fg{color:var(--color-fg)}.text-fg-hi{color:var(--color-fg-hi)}.text-fg-muted{color:var(--color-fg-muted)}.text-fg-muted\/40{color:#a8917c66}@supports (color:color-mix(in lab, red, red)){.text-fg-muted\/40{color:color-mix(in oklab, var(--color-fg-muted) 40%, transparent)}}.text-fuchsia-300{color:var(--color-fuchsia-300)}.text-ink{color:var(--color-ink)}.text-red-300{color:var(--color-red-300)}.text-red-400{color:var(--color-red-400)}.text-rose-300{color:var(--color-rose-300)}.text-rose-400{color:var(--color-rose-400)}.text-saffron{color:var(--color-saffron)}.text-white{color:var(--color-white)}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline-offset-2{text-underline-offset:2px}.accent-amber{accent-color:var(--color-amber)}.opacity-0{opacity:0}.opacity-75{opacity:.75}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-amber\/30{--tw-shadow-color:#eda63e4d}@supports (color:color-mix(in lab, red, red)){.shadow-amber\/30{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-amber) 30%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-black\/20{--tw-shadow-color:#0003}@supports (color:color-mix(in lab, red, red)){.shadow-black\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-black\/40{--tw-shadow-color:#0006}@supports (color:color-mix(in lab, red, red)){.shadow-black\/40{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 40%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-fuchsia-500\/30{--tw-shadow-color:#e12afb4d}@supports (color:color-mix(in lab, red, red)){.shadow-fuchsia-500\/30{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-fuchsia-500) 30%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-amber{--tw-ring-color:var(--color-amber)}.ring-amber\/30{--tw-ring-color:#eda63e4d}@supports (color:color-mix(in lab, red, red)){.ring-amber\/30{--tw-ring-color:color-mix(in oklab, var(--color-amber) 30%, transparent)}}.ring-fuchsia-300{--tw-ring-color:var(--color-fuchsia-300)}.ring-fuchsia-400\/30{--tw-ring-color:#ec6cff4d}@supports (color:color-mix(in lab, red, red)){.ring-fuchsia-400\/30{--tw-ring-color:color-mix(in oklab, var(--color-fuchsia-400) 30%, transparent)}}.ring-rose-400\/40{--tw-ring-color:#ff667f66}@supports (color:color-mix(in lab, red, red)){.ring-rose-400\/40{--tw-ring-color:color-mix(in oklab, var(--color-rose-400) 40%, transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.group-focus-within\:opacity-100:is(:where(.group):focus-within *){opacity:1}@media (hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.first\:rounded-l-md:first-child{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.last\:rounded-r-md:last-child{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}@media (hover:hover){.hover\:border-amber:hover{border-color:var(--color-amber)}.hover\:border-amber\/60:hover{border-color:#eda63e99}@supports (color:color-mix(in lab, red, red)){.hover\:border-amber\/60:hover{border-color:color-mix(in oklab, var(--color-amber) 60%, transparent)}}.hover\:border-edge:hover{border-color:var(--color-edge)}.hover\:bg-ember:hover{background-color:var(--color-ember)}.hover\:bg-ink:hover{background-color:var(--color-ink)}.hover\:text-amber:hover{color:var(--color-amber)}.hover\:text-fg:hover{color:var(--color-fg)}.hover\:text-fg-hi:hover{color:var(--color-fg-hi)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:border-saffron:focus{border-color:var(--color-saffron)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-amber:focus{--tw-ring-color:var(--color-amber)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}@media (min-width:40rem){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:p-8{padding:calc(var(--spacing) * 8)}}@media (min-width:64rem){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{background-color:var(--color-ink);color:var(--color-fg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:var(--font-body)}h1,h2,h3,h4{font-family:var(--font-display)}code,kbd,samp,pre{font-family:var(--font-mono)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,2348,2413,e=>{"use strict";let t=1/1.2;e.s(["ZOOM_IN_FACTOR",0,t,"ZOOM_OUT_FACTOR",0,1.2,"attachDoubleClickFocus",0,function(e,t,n){let a=()=>{let t=e.pick(e.pointerX,e.pointerY);t?.hit&&t.pickedPoint&&n.setTarget(t.pickedPoint)};return t.addEventListener("dblclick",a),()=>t.removeEventListener("dblclick",a)},"disableWheelZoom",0,function(e){e.inputs.removeByType("ArcRotateCameraMouseWheelInput")},"resetFocus",0,function(e,t){e.setTarget(t.target),e.alpha=t.alpha,e.beta=t.beta,e.radius=t.radius},"stepZoom",0,function(e,t){let n=e.lowerRadiusLimit??.01,a=e.upperRadiusLimit??1/0;e.radius=Math.min(a,Math.max(n,e.radius*t))}],2348);var n=e.i(28100);e.s(["ZoomButtons",0,function({onZoom:e,onReset:a}){let s="grid h-8 w-8 place-items-center rounded-md border border-edge bg-ink/80 text-lg leading-none text-fg backdrop-blur transition hover:bg-ink hover:text-white";return(0,n.jsxs)("div",{className:"absolute right-3 top-3 flex flex-col gap-1",children:[(0,n.jsx)("button",{type:"button","aria-label":"Zoom in",className:s,onClick:()=>e(t),children:"+"}),(0,n.jsx)("button",{type:"button","aria-label":"Zoom out",className:s,onClick:()=>e(1.2),children:"−"}),a?(0,n.jsx)("button",{type:"button","aria-label":"Reset camera focus to center",title:"Reset focus to center",className:s,onClick:a,children:(0,n.jsxs)("svg",{viewBox:"0 0 16 16",width:"16",height:"16",fill:"none",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"8",cy:"8",r:"3"}),(0,n.jsx)("path",{d:"M8 1v2.5M8 12.5V15M1 8h2.5M12.5 8H15"})]})}):null]})}],2413)},25476,e=>{"use strict";e.s(["attachMeshHover",0,function(e,t,n){let a=0,s=null,i=t=>{let i=t.offsetX,l=t.offsetY;a||(a=requestAnimationFrame(()=>{var t,o;let r;a=0;let c=e.pick(i,l,e=>e.isPickable&&e.isEnabled()),u=c?.pickedMesh?(t=c.pickedMesh,o=c.thinInstanceIndex??-1,(r=t.metadata)?o>=0&&r.hoverLabels?r.hoverLabels[o]??null:r.hoverLabel??null:null):null;u?n({label:u,x:i,y:l}):null!==s&&n(null),s=u}))},l=()=>{a&&(cancelAnimationFrame(a),a=0),null!==s&&(s=null,n(null))};return t.addEventListener("pointermove",i),t.addEventListener("pointerleave",l),()=>{t.removeEventListener("pointermove",i),t.removeEventListener("pointerleave",l),a&&cancelAnimationFrame(a)}}])},19399,e=>{"use strict";var t=e.i(28100),n=e.i(11623),a=e.i(20880);let s="__other_sp__",i="__other_mesh__";function l(e){return`${e[0]}|${e[1]}|${e[2]}`}function o(e,t){return t<=1?0:1.4-e/(t-1)*2.8}var r=e.i(56054),c=e.i(2348),u=e.i(25476),h=e.i(18637),d=e.i(2413);let m="__all__",p={maxStandpoints:6,maxMeshes:10,maxRibbons:70};function b(e,t){return`${e}|${t}`}function g({label:e,value:n,onChange:a,allLabel:s,options:i}){return(0,t.jsxs)("label",{className:"flex items-center gap-1.5 rounded-md border border-edge bg-ink/80 px-2 py-1 text-xs text-fg backdrop-blur",children:[(0,t.jsx)("span",{className:"font-medium text-fg-muted",children:e}),(0,t.jsxs)("select",{className:"max-w-[12rem] bg-transparent text-white outline-none",value:n,onChange:e=>a(e.target.value),children:[(0,t.jsx)("option",{value:m,children:s}),i.map(e=>(0,t.jsx)("option",{value:e.value,children:e.label},e.value))]})]})}function f({active:e,onClick:n,children:a,disabled:s=!1,title:i}){return(0,t.jsx)("button",{type:"button",onClick:n,disabled:s,title:i,className:`rounded px-2 py-0.5 font-medium transition ${s?"cursor-not-allowed text-fg-muted/40":e?"bg-amber text-ink":"text-fg-muted hover:text-fg"}`,children:a})}function v({standpoints:e,proxyMeshes:a,selectedKey:s,onSelect:i}){let l=(0,n.useRef)(null),o=(0,n.useMemo)(()=>e.filter(e=>e.origin),[e]),r=(0,n.useMemo)(()=>{let e=1/0,t=-1/0,n=1/0,s=-1/0,i=(a,i)=>{e=Math.min(e,a),t=Math.max(t,a),n=Math.min(n,i),s=Math.max(s,i)};for(let e of a)i(e.aabb[0],e.aabb[2]),i(e.aabb[3],e.aabb[5]);for(let e of o)i(e.origin[0],e.origin[2]);return Number.isFinite(e)?(t-e<.001&&(e-=1,t+=1),s-n<.001&&(n-=1,s+=1),{minX:e,maxX:t,minZ:n,maxZ:s}):{minX:-1,maxX:1,minZ:-1,maxZ:1}},[a,o]),c=(0,n.useMemo)(()=>{let e=Math.min(134/(r.maxX-r.minX),94/(r.maxZ-r.minZ));return(t,n)=>[8+(t-r.minX)*e,8+(n-r.minZ)*e]},[r]),u=(0,n.useMemo)(()=>o.reduce((e,t)=>Math.max(e,t.count),1),[o]);return(0,n.useEffect)(()=>{let e=l.current,t=e?.getContext("2d");if(!t)return;let n=window.devicePixelRatio||1;for(let s of(e.width=150*n,e.height=110*n,t.setTransform(n,0,0,n,0,0),t.clearRect(0,0,150,110),t.fillStyle="rgba(8,10,14,0.85)",t.fillRect(0,0,150,110),t.strokeStyle="rgba(120,140,170,0.35)",t.lineWidth=1,a)){let[e,n]=c(s.aabb[0],s.aabb[2]),[a,i]=c(s.aabb[3],s.aabb[5]);t.strokeRect(Math.min(e,a),Math.min(n,i),Math.abs(a-e),Math.abs(i-n))}for(let e of o){let[n,a]=c(e.origin[0],e.origin[2]),i=2+e.count/u*4,l=e.key===s;t.beginPath(),t.arc(n,a,i,0,2*Math.PI),t.fillStyle=l?"rgba(242,115,242,1)":"rgba(242,115,242,0.55)",t.fill(),l&&(t.beginPath(),t.arc(n,a,i+2.5,0,2*Math.PI),t.strokeStyle="rgba(255,255,255,0.9)",t.lineWidth=1.5,t.stroke())}},[a,o,c,u,s]),(0,t.jsxs)("div",{className:"absolute right-3 top-3 rounded-md border border-edge bg-ink/80 p-1 backdrop-blur",children:[(0,t.jsx)("div",{className:"px-1 pb-0.5 text-[10px] font-medium text-fg-muted",children:"Standpoints (top view)"}),(0,t.jsx)("canvas",{ref:l,className:"h-27.5 w-37.5 cursor-pointer rounded",onClick:e=>{let t=l.current;if(!t||0===o.length)return;let n=t.getBoundingClientRect(),a=(e.clientX-n.left)/n.width*150,s=(e.clientY-n.top)/n.height*110,r=null,u=1/0;for(let e of o){let[t,n]=c(e.origin[0],e.origin[2]),i=(t-a)**2+(n-s)**2;i<u&&(u=i,r=e)}r&&u<=196&&i(r.key)}})]})}e.s(["FlowSankey3DView",0,function({links:x,gridSize:k,proxyMeshes:w=[],maxLinks:j=80,baseUrl:z,apiKey:M,flowQuery:y,hasFirstPerson:_=!1}){let $=(0,n.useRef)(null),I=(0,n.useRef)(null),C=(0,n.useRef)(null),[P,B]=(0,n.useState)("loading"),[L,S]=(0,n.useState)(null),[A,q]=(0,n.useState)(m),[R,E]=(0,n.useState)(m),[N,O]=(0,n.useState)(m),[Z,F]=(0,n.useState)("aggregate"),[T,V]=(0,n.useState)(null),[W,X]=(0,n.useState)("all"),[D,H]=(0,n.useState)(x),U=!!(z&&y),K=(0,n.useMemo)(()=>y?JSON.stringify(y):"",[y]),Y=(0,n.useRef)(!1);(0,n.useEffect)(()=>{!Y.current&&_&&(X("first-person"),Y.current=!0)},[_]),(0,n.useEffect)(()=>{_&&"viewer"===W&&X("first-person")},[_,W]),(0,n.useEffect)(()=>{U||H(x)},[x,U]),(0,n.useEffect)(()=>{if(!z||!y)return;let e=!1,t=new a.CollectorApi(z,M??""),n="all"===W?void 0:W;return t.flowHeatmap({...y,bins:k,limit:400,groupByOrigin:!0,cameraMode:n}).then(t=>{e||H(t)}).catch(()=>{e||H([])}),()=>{e=!0}},[z,M,K,W,k]);let G=(0,n.useMemo)(()=>{let e=new Map;for(let t of D){if(!t.originVoxel)continue;let n=l(t.originVoxel),a=t.origin,s=e.get(n);s?(s.count+=t.count,a&&(s.ox+=a[0]*t.count,s.oy+=a[1]*t.count,s.oz+=a[2]*t.count,s.wsum+=t.count)):e.set(n,{key:n,voxel:t.originVoxel,count:t.count,ox:a?a[0]*t.count:0,oy:a?a[1]*t.count:0,oz:a?a[2]*t.count:0,wsum:a?t.count:0})}return[...e.values()].map(e=>({key:e.key,voxel:e.voxel,count:e.count,origin:e.wsum>0?[e.ox/e.wsum,e.oy/e.wsum,e.oz/e.wsum]:void 0})).sort((e,t)=>t.count-e.count)},[D]),J=G.length>0,Q=(0,n.useMemo)(()=>N===m?null:G.find(e=>e.key===N)??null,[G,N]),ee=(0,n.useMemo)(()=>(function(e,t,n,a){let r=e.filter(e=>e.originVoxel);if(0===r.length)return{standpoints:[],gazes:[],meshes:[],ribbons:[],maxCount:1};let c=t.slice(0,Math.max(1,a.maxStandpoints)),u=new Set(c.map(e=>e.key)),h=e=>{let t=e.originVoxel?l(e.originVoxel):s;return u.has(t)?t:s},d=new Map;for(let e of r)d.set(e.mesh,(d.get(e.mesh)??0)+e.count);let m=new Set([...d.entries()].sort((e,t)=>t[1]-e[1]).slice(0,Math.max(1,a.maxMeshes)).map(([e])=>e)),p=e=>m.has(e)?e:i,b=new Map;for(let e of r){let t=h(e),n=p(e.mesh),a=`${t}|${e.azimuth_bin}|${e.elevation_bin}|${n}`,s=b.get(a);s?s.count+=e.count:b.set(a,{standpointId:t,gazeId:`${t}|${e.azimuth_bin}|${e.elevation_bin}`,meshId:n,azimuthBin:e.azimuth_bin,elevationBin:e.elevation_bin,count:e.count})}let g=[...b.values()].sort((e,t)=>t.count-e.count),f=g.slice(0,Math.max(1,a.maxRibbons)),v=g.slice(Math.max(1,a.maxRibbons));if(v.length>0){let e=new Map(f.map(e=>[`${e.standpointId}|${e.azimuthBin}|${e.elevationBin}|${i}`,e]));for(let t of v){let n=`${t.standpointId}|${t.azimuthBin}|${t.elevationBin}|${i}`,a=e.get(n);if(a)a.count+=t.count;else{let a={standpointId:t.standpointId,gazeId:t.gazeId,meshId:i,azimuthBin:t.azimuthBin,elevationBin:t.elevationBin,count:t.count};e.set(n,a),f.push(a)}}}let x=new Set(f.map(e=>e.standpointId)),k=new Set(f.map(e=>e.meshId)),w=[...c.filter(e=>x.has(e.key)).map(e=>e.key),...x.has(s)?[s]:[]],j=w.map((e,t)=>{let n=c.find(t=>t.key===e),a=f.filter(t=>t.standpointId===e).reduce((e,t)=>e+t.count,0);return{id:e,kind:"standpoint",pos:[-2.6,o(t,w.length),0],count:a,label:n?`[${n.voxel[0]}, ${n.voxel[1]}, ${n.voxel[2]}]`:"Other standpoints",isOther:e===s}}),z=new Map(j.map(e=>[e.id,e.pos[1]])),M=new Map;for(let e of f)M.set(e.meshId,(M.get(e.meshId)??0)+e.count);let y=[...k].sort((e,t)=>(M.get(t)??0)-(M.get(e)??0));y.sort((e,t)=>(e===i)-(t===i));let _=y.map((e,t)=>({id:e,kind:"mesh",pos:[2.6,o(t,y.length),0],count:M.get(e)??0,label:e===i?"Other meshes":e,isOther:e===i})),$=new Map;for(let e of f){let t=$.get(e.gazeId);t?t.count+=e.count:$.set(e.gazeId,{az:e.azimuthBin,el:e.elevationBin,sp:e.standpointId,count:e.count})}let I=[...$.entries()].map(([e,t])=>{let a=z.get(t.sp)??0,s=(t.az+.5)/n-.5;return{id:e,kind:"gaze",pos:[0,a+((t.el+.5)/n-.5)*.85,1.6*s],count:t.count,label:`(${t.az}, ${t.el})`,isOther:!1}}),C=f.reduce((e,t)=>Math.max(e,t.count),1);return{standpoints:j,gazes:I,meshes:_,ribbons:f,maxCount:C}})(D,G,k,p),[D,G,k]),et="twostage"===Z&&J;(0,n.useEffect)(()=>{"twostage"!==Z||J||F("aggregate")},[Z,J]);let en=(0,n.useMemo)(()=>{if(N!==m&&J)return D.filter(e=>e.originVoxel&&l(e.originVoxel)===N);if(!J)return D;let e=new Map;for(let t of D){let n=`${t.azimuth_bin}|${t.elevation_bin}|${t.mesh}`,a=e.get(n);a?a.count+=t.count:e.set(n,{azimuth_bin:t.azimuth_bin,elevation_bin:t.elevation_bin,mesh:t.mesh,count:t.count})}return[...e.values()]},[D,N,J]),ea=(0,n.useMemo)(()=>[...en].sort((e,t)=>t.count-e.count).slice(0,Math.max(1,j)),[en,j]),es=(0,n.useMemo)(()=>{let e=new Map;for(let t of ea)e.set(t.mesh,(e.get(t.mesh)??0)+t.count);return[...e.entries()].sort((e,t)=>t[1]-e[1])},[ea]),ei=(0,n.useMemo)(()=>{let e=new Map;for(let t of ea){let n=b(t.azimuth_bin,t.elevation_bin),a=e.get(n);a?a.count+=t.count:e.set(n,{azimuthBin:t.azimuth_bin,elevationBin:t.elevation_bin,count:t.count})}return[...e.values()].sort((e,t)=>t.count-e.count)},[ea]);(0,n.useEffect)(()=>{!et&&A!==m&&(es.some(([e])=>e===A)||q(m))},[et,A,es]),(0,n.useEffect)(()=>{!et&&R!==m&&(ei.some(e=>b(e.azimuthBin,e.elevationBin)===R)||E(m))},[et,R,ei]),(0,n.useEffect)(()=>{!et&&N!==m&&(G.some(e=>e.key===N)||O(m))},[et,N,G]),(0,n.useEffect)(()=>{q(m),E(m),O(m)},[Z]);let el=(0,n.useMemo)(()=>et?ee.ribbons.filter(e=>{let t=N===m||e.standpointId===N,n=R===m||b(e.azimuthBin,e.elevationBin)===R,a=A===m||e.meshId===A;return t&&n&&a}).length:ea.filter(e=>{let t=R===m||b(e.azimuth_bin,e.elevation_bin)===R,n=A===m||e.mesh===A;return t&&n}).length,[et,ee,ea,A,R,N]),eo=et?ee.ribbons.length:ea.length,er=(0,n.useMemo)(()=>et?ee.standpoints.map(e=>({value:e.id,label:`${e.label} \xb7 ${e.count}`})):G.slice(0,24).map(e=>({value:e.key,label:`[${e.voxel[0]}, ${e.voxel[1]}, ${e.voxel[2]}] \xb7 ${e.count}`})),[et,ee,G]),ec=(0,n.useMemo)(()=>{if(et){let e=new Map;for(let t of ee.ribbons){let n=b(t.azimuthBin,t.elevationBin),a=e.get(n);a?a.count+=t.count:e.set(n,{az:t.azimuthBin,el:t.elevationBin,count:t.count})}return[...e.values()].sort((e,t)=>t.count-e.count).map(e=>({value:b(e.az,e.el),label:`(${e.az}, ${e.el}) \xb7 ${e.count}`}))}return ei.map(e=>({value:b(e.azimuthBin,e.elevationBin),label:`(${e.azimuthBin}, ${e.elevationBin}) \xb7 ${e.count}`}))},[et,ee,ei]),eu=(0,n.useMemo)(()=>et?ee.meshes.map(e=>({value:e.id,label:`${e.label} \xb7 ${e.count}`})):es.map(([e,t])=>({value:e,label:`${e} \xb7 ${t}`})),[et,ee,es]);return(0,n.useEffect)(()=>{let t=$.current;if(!t||et)return;if(0===ea.length)return void B("empty");let n=!1,a=null;return B("loading"),S(null),(async()=>{try{let[{Engine:s},{Scene:i},{ArcRotateCamera:l},{HemisphericLight:o},{Vector3:h,Color3:d,Color4:p},{MeshBuilder:g},{StandardMaterial:f}]=await Promise.all([e.A(3905),e.A(94432),e.A(59694),e.A(88004),e.A(27940),e.A(27124),e.A(14074),e.A(18561)]);if(n)return;let v=new s(t,!0,{preserveDrawingBuffer:!1}),x=new i(v);x.clearColor=new p(.04,.05,.07,1);let j=new Map;for(let e of w)j.set(e.name,function(e){let t=e.aabb;return[(t[0]+t[3])/2,(t[1]+t[4])/2,(t[2]+t[5])/2]}(e));let z=new Map,M=es.map(([e])=>e).filter(e=>!j.has(e));for(let e=0;e<M.length;e++){let t=M[e],n=function(e){let t=0;for(let n=0;n<e.length;n++)t=31*t+e.charCodeAt(n)|0;return Math.abs(t)}(t),a=e/Math.max(1,M.length)*Math.PI*2+n%100/100*.35;z.set(t,[2.2*Math.cos(a),-.35+(n%7-3)*.06,2.2*Math.sin(a)])}for(let[e,t]of j.entries())z.set(e,t);let y=0,_=0,$=0,P=0;for(let e of z.values())y+=e[0],_+=e[1],$+=e[2],P++;let L=new h(y/Math.max(1,P),_/Math.max(1,P),$/Math.max(1,P)),S=1.8;for(let e of z.values()){let t=e[0]-L.x,n=e[1]-L.y,a=e[2]-L.z;S=Math.max(S,Math.sqrt(t*t+n*n+a*a))}let q=.75*S+1,E=Math.max(1,S/1.8),N=ea.reduce((e,t)=>Math.max(e,t.count),1),O=new f("flow-source-node",x);O.disableLighting=!0,O.emissiveColor=new d(.45,.75,1);let Z=new f("flow-target-node",x);Z.disableLighting=!0,Z.emissiveColor=new d(1,.82,.42);let F=new Set,T=new Set,W=e=>{let t=R===m||b(e.azimuth_bin,e.elevation_bin)===R,n=A===m||e.mesh===A;return t&&n},X=new Set,D=new Set;for(let e of ea)W(e)&&(X.add(b(e.azimuth_bin,e.elevation_bin)),D.add(e.mesh));for(let e of ea){let t=`${e.azimuth_bin}|${e.elevation_bin}`,n=z.get(e.mesh);if(!n)continue;let a=W(e),s=(e.azimuth_bin+.5)/k*Math.PI*2-Math.PI,i=(e.elevation_bin+.5)/k*Math.PI-Math.PI/2,l=Math.cos(i),o=l*Math.cos(s),c=Math.sin(i),u=l*Math.sin(s),p=new h(L.x+o*q,L.y+c*q,L.z+u*q),b=new h(n[0],n[1],n[2]);if(!F.has(t)){let e=g.CreateSphere(`flow-src-${t}`,{diameter:.12*E,segments:6},x);e.position=p;let n=O.clone(`flow-src-mat-${t}`);n.alpha=X.has(t)||A===m&&R===m?1:.22,e.material=n,e.isPickable=!1,F.add(t)}if(!T.has(e.mesh)){let t=g.CreateSphere(`flow-target-${e.mesh}`,{diameter:.2*E,segments:7},x);t.position=b;let n=Z.clone(`flow-target-mat-${e.mesh}`);n.alpha=D.has(e.mesh)||A===m&&R===m?1:.22,t.material=n,t.isPickable=!0,t.metadata={hoverLabel:e.mesh},T.add(e.mesh)}let v=p.add(b).scale(.5),w=v.subtract(L),j=Math.sqrt(w.x*w.x+w.y*w.y+w.z*w.z),M=j>1e-6?w.x/j:0,y=j>1e-6?w.y/j:1,_=j>1e-6?w.z/j:0,$=(.35+e.count/N*.75)*E,I=new h(v.x+M*$,v.y+y*$+.12*E,v.z+_*$),C=[];for(let e=0;e<=18;e++){let t=e/18,n=1-t;C.push(new h(n*n*p.x+2*n*t*I.x+t*t*b.x,n*n*p.y+2*n*t*I.y+t*t*b.y,n*n*p.z+2*n*t*I.z+t*t*b.z))}let P=e.count/N,[B,S,V]=(0,r.heatRgb)(P),H=g.CreateTube(`flow-link-${e.mesh}-${t}`,{path:C,radius:(a?1:.4)*(.012+.04*P)*E,tessellation:8,cap:0,sideOrientation:0},x),U=new f(`flow-link-mat-${e.mesh}-${t}`,x);U.disableLighting=!0,U.emissiveColor=new d(B,S,V),U.alpha=a?.35+.65*P:.08,H.material=U,H.isPickable=!0,H.metadata={hoverLabel:e.mesh}}let H=new l("flow-cam",Math.PI/4,Math.PI/3,3.4*S,L,x);H.attachControl(t,!0),(0,c.disableWheelZoom)(H),I.current=H,C.current={target:L,alpha:H.alpha,beta:H.beta,radius:H.radius},new o("flow-light",new h(.3,1,.2),x);let U=g.CreateSphere("flow-source-dome",{diameter:2*q,segments:20},x);U.position=L;let K=new f("flow-source-dome-mat",x);K.wireframe=!0,K.disableLighting=!0,K.emissiveColor=new d(.16,.2,.28),K.alpha=.35,U.material=K,U.isPickable=!1;let Y=Q?.origin;if(Y){let e=new h(Y[0],Y[1],Y[2]),t=g.CreateSphere("flow-standpoint",{diameter:.26*E,segments:10},x);t.position=e;let n=new f("flow-standpoint-mat",x);n.disableLighting=!0,n.emissiveColor=new d(.95,.45,.95),t.material=n,t.isPickable=!1;let a=g.CreateLines("flow-standpoint-stem",{points:[e,new h(e.x,L.y,e.z)]},x);a.color=new d(.95,.45,.95),a.isPickable=!1}v.runRenderLoop(()=>x.render());let G=()=>v.resize();window.addEventListener("resize",G);let J=(0,u.attachMeshHover)(x,t,V),ee=(0,c.attachDoubleClickFocus)(x,t,H);B("ready"),a=()=>{window.removeEventListener("resize",G),J(),ee(),V(null),I.current=null,C.current=null,x.dispose(),v.dispose()}}catch(e){if(n)return;B("error"),S(e instanceof Error?e.message:"Failed to render flow links.")}})(),()=>{n=!0,a?.()}},[ea,k,w,A,R,Q,et]),(0,n.useEffect)(()=>{let t=$.current;if(!t||!et)return;if(0===ee.ribbons.length)return void B("empty");let n=!1,a=null;return B("loading"),S(null),(async()=>{try{let[{Engine:s},{Scene:i},{ArcRotateCamera:l},{HemisphericLight:o},{Vector3:h,Color3:d,Color4:p},{MeshBuilder:g},{StandardMaterial:f}]=await Promise.all([e.A(3905),e.A(94432),e.A(59694),e.A(88004),e.A(27940),e.A(27124),e.A(14074),e.A(18561)]);if(n)return;let v=new s(t,!0,{preserveDrawingBuffer:!1}),x=new i(v);x.clearColor=new p(.04,.05,.07,1);let k=e=>{let t=N===m||e.standpointId===N,n=R===m||b(e.azimuthBin,e.elevationBin)===R,a=A===m||e.meshId===A;return t&&n&&a},w=N!==m||R!==m||A!==m,j=new Set;for(let e of ee.ribbons)k(e)&&(j.add(e.standpointId),j.add(e.gazeId),j.add(e.meshId));let z={standpoint:[.95,.45,.95],gaze:[.45,.75,1],mesh:[1,.82,.42]},M={standpoint:.26,gaze:.13,mesh:.22},y=[...ee.standpoints,...ee.gazes,...ee.meshes],_=new Map(y.map(e=>[e.id,e.pos])),$=new Map(y.map(e=>[e.id,e.label]));for(let e of y){let t=g.CreateSphere(`ts-node-${e.kind}-${e.id}`,{diameter:M[e.kind],segments:8},x);t.position=new h(e.pos[0],e.pos[1],e.pos[2]);let n=new f(`ts-node-mat-${e.kind}-${e.id}`,x);n.disableLighting=!0;let[a,s,i]=z[e.kind];n.emissiveColor=new d(a,s,i),n.alpha=!w||j.has(e.id)?1:.2,t.material=n,t.isPickable=!0,t.metadata={hoverLabel:e.label}}let P=(e,t,n)=>{let a=e[0],s=e[1],i=e[2],l=t[0],o=t[1],r=t[2],c=[(a+l)/2,(s+o)/2+n,(i+r)/2],u=[];for(let e=0;e<=12;e++){let t=e/12,n=1-t;u.push(new h(n*n*a+2*n*t*c[0]+t*t*l,n*n*s+2*n*t*c[1]+t*t*o,n*n*i+2*n*t*c[2]+t*t*r))}return u};for(let e of ee.ribbons){let t=_.get(e.standpointId),n=_.get(e.gazeId),a=_.get(e.meshId);if(!t||!n||!a)continue;let s=e.count/ee.maxCount,i=.18+.5*s,l=[...P(t,n,i),...P(n,a,i).slice(1)],o=k(e),[c,u,h]=(0,r.heatRgb)(s),m=g.CreateTube(`ts-link-${e.standpointId}-${e.gazeId}-${e.meshId}`,{path:l,radius:(o?1:.4)*(.012+.04*s),tessellation:8,cap:0,sideOrientation:0},x),p=new f(`ts-link-mat-${e.standpointId}-${e.gazeId}-${e.meshId}`,x);p.disableLighting=!0,p.emissiveColor=new d(c,u,h),p.alpha=o?.35+.65*s:w?.06:.18,m.material=p,m.isPickable=!0,m.metadata={hoverLabel:$.get(e.meshId)??e.meshId}}let L=h.Zero(),S=new l("ts-cam",Math.PI/2,Math.PI/2.4,8.5,L,x);S.attachControl(t,!0),(0,c.disableWheelZoom)(S),I.current=S,C.current={target:L,alpha:S.alpha,beta:S.beta,radius:S.radius},new o("ts-light",new h(.3,1,.2),x),v.runRenderLoop(()=>x.render());let q=()=>v.resize();window.addEventListener("resize",q);let E=(0,u.attachMeshHover)(x,t,V),O=(0,c.attachDoubleClickFocus)(x,t,S);B("ready"),a=()=>{window.removeEventListener("resize",q),E(),O(),V(null),I.current=null,C.current=null,x.dispose(),v.dispose()}}catch(e){if(n)return;B("error"),S(e instanceof Error?e.message:"Failed to render flow links.")}})(),()=>{n=!0,a?.()}},[et,ee,N,R,A]),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("canvas",{ref:$,className:"aspect-video w-full rounded-lg border border-edge bg-ink"}),T?(0,t.jsx)("div",{className:"pointer-events-none absolute z-10 max-w-[16rem] truncate rounded border border-edge bg-ink/90 px-1.5 py-0.5 text-xs text-white shadow backdrop-blur",style:{left:T.x+12,top:T.y+12},children:T.label}):null,"ready"===P?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"absolute left-3 top-3 flex flex-wrap gap-2",children:[J?(0,t.jsxs)("div",{className:"flex items-center gap-1 rounded-md border border-edge bg-ink/80 p-0.5 text-xs backdrop-blur",children:[(0,t.jsx)(f,{active:!et,onClick:()=>F("aggregate"),children:"Aggregate"}),(0,t.jsx)(f,{active:et,onClick:()=>F("twostage"),children:"Two-stage"})]}):null,U?(0,t.jsxs)("div",{className:"flex items-center gap-1 rounded-md border border-edge bg-ink/80 p-0.5 text-xs backdrop-blur",children:[(0,t.jsx)(f,{active:"first-person"===W,onClick:()=>X("first-person"),children:"Walk"}),(0,t.jsx)(f,{active:"viewer"===W,onClick:()=>X("viewer"),disabled:_,title:_?"Orbit (viewer) flow isn't available for walkable scenes":void 0,children:"Orbit"}),(0,t.jsx)(f,{active:"all"===W,onClick:()=>X("all"),children:"All"})]}):null,J?(0,t.jsx)(g,{label:"Standpoint",value:N,onChange:O,allLabel:"All standpoints",options:er}):null,(0,t.jsx)(g,{label:et?"Gaze":"Source",value:R,onChange:E,allLabel:et?"All gaze sectors":"All sources",options:ec}),(0,t.jsx)(g,{label:"Mesh",value:A,onChange:q,allLabel:"All meshes",options:eu})]}),et?(0,t.jsx)(v,{standpoints:G,proxyMeshes:w,selectedKey:N,onSelect:e=>O(t=>t===e?m:e)}):null,(0,t.jsxs)("div",{className:"pointer-events-none absolute bottom-3 right-3 flex max-w-[20rem] flex-col items-end gap-2",children:[U&&!_?(0,t.jsxs)("div",{className:"rounded-md border border-edge bg-ink/80 px-2 py-1 text-xs text-fg-muted backdrop-blur",children:["Orbit-dominated scene — viewer ",(0,t.jsx)("em",{children:"position"})," adds little here. Use the"," ",(0,t.jsx)("strong",{children:"View dome"})," (§7.5) above for where viewers looked."]}):null,(0,t.jsxs)("div",{className:"rounded-md border border-edge bg-ink/80 px-2 py-1 text-xs text-fg backdrop-blur",children:["Active links: ",el,"/",eo]})]}),(0,t.jsx)(d.ZoomButtons,{onZoom:e=>I.current&&(0,c.stepZoom)(I.current,e),onReset:()=>I.current&&C.current&&(0,c.resetFocus)(I.current,C.current)}),(0,t.jsx)(h.HeatLegend,{title:"Flow volume",lowLabel:"fewer links",highLabel:"dominant links",note:et?"Three columns: standpoint → gaze sector → mesh. Top standpoints/meshes are kept; the tail folds into an “Other” node. Pick a standpoint (or click the minimap), gaze sector, or mesh to emphasize matching ribbons.":"Each arc aggregates clicks from one camera-direction bin to a mesh. Pick a source or mesh to emphasize matching links and dim the rest."})]}):(0,t.jsx)("div",{className:"pointer-events-none absolute inset-0 grid place-items-center text-sm text-fg-muted",children:"loading"===P?"Rendering…":"empty"===P?"No aggregate flow links in range.":"error"===P?L??"Flow view unavailable.":null})]})}],19399)},3905,e=>{e.v(t=>Promise.all(["static/chunks/3pdpaqzwhhijn.js","static/chunks/08bm3ye5govev.js","static/chunks/0g6u34xkzrpjn.js","static/chunks/25ctnyh7njp-d.js","static/chunks/2gh4z57fem0_v.js","static/chunks/3vaho-xrtuchd.js","static/chunks/0g7p8zp2kxve5.js"].map(t=>e.l(t))).then(()=>t(66232)))},94432,e=>{e.v(t=>Promise.all(["static/chunks/2kje_jvmwsvwo.js","static/chunks/1j--a56ji33_x.js","static/chunks/3pdpaqzwhhijn.js","static/chunks/2npk7tr63h7rl.js","static/chunks/3vaho-xrtuchd.js","static/chunks/3g_h_00xs9u59.js","static/chunks/1vzmzrjhlm1q5.js","static/chunks/25ctnyh7njp-d.js","static/chunks/1vpcaaf-0dn7q.js"].map(t=>e.l(t))).then(()=>t(92494)))},59694,e=>{e.v(t=>Promise.all(["static/chunks/1j--a56ji33_x.js","static/chunks/0oap0o8a8a_cl.js","static/chunks/0f_nv15a8q415.js","static/chunks/1vzmzrjhlm1q5.js","static/chunks/3pdpaqzwhhijn.js","static/chunks/245h82k-g1nxr.js","static/chunks/3ovd8o_usay7j.js","static/chunks/3vaho-xrtuchd.js","static/chunks/1vpcaaf-0dn7q.js","static/chunks/25ctnyh7njp-d.js","static/chunks/2npk7tr63h7rl.js","static/chunks/3pyggl13glbdc.js"].map(t=>e.l(t))).then(()=>t(67186)))},88004,e=>{e.v(t=>Promise.all(["static/chunks/2p8dbh81chhon.js","static/chunks/1oara6fkfvgs3.js","static/chunks/1vzmzrjhlm1q5.js","static/chunks/25ctnyh7njp-d.js","static/chunks/3pdpaqzwhhijn.js"].map(t=>e.l(t))).then(()=>t(15768)))},27940,e=>{e.v(t=>Promise.all(["static/chunks/0w0sx062qmcsh.js","static/chunks/25ctnyh7njp-d.js","static/chunks/3pdpaqzwhhijn.js"].map(t=>e.l(t))).then(()=>t(23235)))},27124,e=>{e.v(t=>Promise.all(["static/chunks/1par9m038tiov.js","static/chunks/1j--a56ji33_x.js","static/chunks/2j-sax2xfdv7l.js","static/chunks/340pg0qkv5tqq.js","static/chunks/3pdpaqzwhhijn.js","static/chunks/0gwa154w_0wuh.js","static/chunks/0oap0o8a8a_cl.js","static/chunks/0f_nv15a8q415.js","static/chunks/3vaho-xrtuchd.js","static/chunks/3pyggl13glbdc.js","static/chunks/1vzmzrjhlm1q5.js","static/chunks/3g_h_00xs9u59.js","static/chunks/1vpcaaf-0dn7q.js","static/chunks/25ctnyh7njp-d.js","static/chunks/2npk7tr63h7rl.js","static/chunks/01aeari2x_tlz.js"].map(t=>e.l(t))).then(()=>t(70928)))},14074,e=>{e.v(t=>Promise.all(["static/chunks/1zcrrq1fx8g2y.js","static/chunks/1tdg_eolxlcdl.js","static/chunks/1j--a56ji33_x.js","static/chunks/1vzmzrjhlm1q5.js","static/chunks/0vddljjnmozzx.js","static/chunks/3pdpaqzwhhijn.js","static/chunks/1vpcaaf-0dn7q.js","static/chunks/3vaho-xrtuchd.js","static/chunks/0f_nv15a8q415.js","static/chunks/3g_h_00xs9u59.js","static/chunks/2npk7tr63h7rl.js","static/chunks/25ctnyh7njp-d.js"].map(t=>e.l(t))).then(()=>t(87566)))},18561,e=>{e.v(t=>Promise.all(["static/chunks/1j--a56ji33_x.js","static/chunks/1vkww9l6lgqag.js","static/chunks/3pdpaqzwhhijn.js","static/chunks/2npk7tr63h7rl.js","static/chunks/117ys3lltfmcu.js","static/chunks/25ctnyh7njp-d.js","static/chunks/1vzmzrjhlm1q5.js","static/chunks/3g_h_00xs9u59.js","static/chunks/1vpcaaf-0dn7q.js","static/chunks/3vaho-xrtuchd.js"].map(t=>e.l(t))).then(()=>t(85106)))}]);
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
8:I[1750,["/_next/static/chunks/1ek5rtpo6rxev.js"],"ViewportBoundary"]
|
|
7
7
|
a:I[1750,["/_next/static/chunks/1ek5rtpo6rxev.js"],"MetadataBoundary"]
|
|
8
8
|
c:I[19606,["/_next/static/chunks/1ek5rtpo6rxev.js"],"default",1]
|
|
9
|
-
:HL["/_next/static/chunks/
|
|
10
|
-
0:{"P":null,"c":["","_not-found"],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/
|
|
9
|
+
:HL["/_next/static/chunks/3ef6upwlgr4q-.css","style"]
|
|
10
|
+
0:{"P":null,"c":["","_not-found"],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3ef6upwlgr4q-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/1ek5rtpo6rxev.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"space_grotesk_59d6dcf5-module__z_Ctiq__variable jetbrains_mono_38c99671-module__5Dhsuq__variable","children":["$","body",null,{"children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"]},null,false,null],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3ef6upwlgr4q-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"W_AwLgpmWJNo9qUUBPat3"}
|
|
11
11
|
d:[]
|
|
12
12
|
7:"$Wd"
|
|
13
13
|
9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
3:I[1750,["/_next/static/chunks/1ek5rtpo6rxev.js"],"MetadataBoundary"]
|
|
4
4
|
4:"$Sreact.suspense"
|
|
5
5
|
5:I[11936,["/_next/static/chunks/1ek5rtpo6rxev.js"],"IconMark"]
|
|
6
|
-
0:{"rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Uptimizr — 3D Scene Analytics"}],["$","meta","1",{"name":"description","content":"Open-source analytics dashboard for 3D scenes."}],["$","link","2",{"rel":"icon","href":"/icon.svg?icon.08h29dad3pcxg.svg","sizes":"any","type":"image/svg+xml"}],["$","$L5","3",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"
|
|
6
|
+
0:{"rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Uptimizr — 3D Scene Analytics"}],["$","meta","1",{"name":"description","content":"Open-source analytics dashboard for 3D scenes."}],["$","link","2",{"rel":"icon","href":"/icon.svg?icon.08h29dad3pcxg.svg","sizes":"any","type":"image/svg+xml"}],["$","$L5","3",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"W_AwLgpmWJNo9qUUBPat3"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
2
|
2:I[16190,["/_next/static/chunks/1ek5rtpo6rxev.js"],"default"]
|
|
3
3
|
3:I[62242,["/_next/static/chunks/1ek5rtpo6rxev.js"],"default"]
|
|
4
|
-
:HL["/_next/static/chunks/
|
|
5
|
-
0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/
|
|
4
|
+
:HL["/_next/static/chunks/3ef6upwlgr4q-.css","style"]
|
|
5
|
+
0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3ef6upwlgr4q-.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/1ek5rtpo6rxev.js","async":true}]],["$","html",null,{"lang":"en","className":"space_grotesk_59d6dcf5-module__z_Ctiq__variable jetbrains_mono_38c99671-module__5Dhsuq__variable","children":["$","body",null,{"children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"W_AwLgpmWJNo9qUUBPat3"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
2
|
2:I[1750,["/_next/static/chunks/1ek5rtpo6rxev.js"],"OutletBoundary"]
|
|
3
3
|
3:"$Sreact.suspense"
|
|
4
|
-
0:{"rsc":["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"
|
|
4
|
+
0:{"rsc":["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"W_AwLgpmWJNo9qUUBPat3"}
|
|
5
5
|
4:null
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
2:I[16190,["/_next/static/chunks/1ek5rtpo6rxev.js"],"default"]
|
|
3
3
|
3:I[62242,["/_next/static/chunks/1ek5rtpo6rxev.js"],"default"]
|
|
4
4
|
4:[]
|
|
5
|
-
0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"
|
|
5
|
+
0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"W_AwLgpmWJNo9qUUBPat3"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
:HL["/_next/static/chunks/
|
|
2
|
-
0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"/_not-found","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"
|
|
1
|
+
:HL["/_next/static/chunks/3ef6upwlgr4q-.css","style"]
|
|
2
|
+
0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"/_not-found","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"W_AwLgpmWJNo9qUUBPat3"}
|
package/out/_not-found.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en" class="space_grotesk_59d6dcf5-module__z_Ctiq__variable jetbrains_mono_38c99671-module__5Dhsuq__variable"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/
|
|
1
|
+
<!DOCTYPE html><html lang="en" class="space_grotesk_59d6dcf5-module__z_Ctiq__variable jetbrains_mono_38c99671-module__5Dhsuq__variable"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/3ef6upwlgr4q-.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/1g3z43o3h-024.js"/><script src="/_next/static/chunks/1evp209qbr4cr.js" async=""></script><script src="/_next/static/chunks/28f1onw3nywbz.js" async=""></script><script src="/_next/static/chunks/turbopack-16ab30_1p4vhq.js" async=""></script><script src="/_next/static/chunks/1ek5rtpo6rxev.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><title>Uptimizr — 3D Scene Analytics</title><meta name="description" content="Open-source analytics dashboard for 3D scenes."/><link rel="icon" href="/icon.svg?icon.08h29dad3pcxg.svg" sizes="any" type="image/svg+xml"/><script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/1g3z43o3h-024.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[16190,[\"/_next/static/chunks/1ek5rtpo6rxev.js\"],\"default\"]\n3:I[62242,[\"/_next/static/chunks/1ek5rtpo6rxev.js\"],\"default\"]\n4:I[1750,[\"/_next/static/chunks/1ek5rtpo6rxev.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[1750,[\"/_next/static/chunks/1ek5rtpo6rxev.js\"],\"ViewportBoundary\"]\na:I[1750,[\"/_next/static/chunks/1ek5rtpo6rxev.js\"],\"MetadataBoundary\"]\nc:I[19606,[\"/_next/static/chunks/1ek5rtpo6rxev.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/3ef6upwlgr4q-.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/3ef6upwlgr4q-.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/1ek5rtpo6rxev.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"space_grotesk_59d6dcf5-module__z_Ctiq__variable jetbrains_mono_38c99671-module__5Dhsuq__variable\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/3ef6upwlgr4q-.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"W_AwLgpmWJNo9qUUBPat3\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"e:I[11936,[\"/_next/static/chunks/1ek5rtpo6rxev.js\"],\"IconMark\"]\n6:null\nb:[[\"$\",\"title\",\"0\",{\"children\":\"Uptimizr — 3D Scene Analytics\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Open-source analytics dashboard for 3D scenes.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/icon.svg?icon.08h29dad3pcxg.svg\",\"sizes\":\"any\",\"type\":\"image/svg+xml\"}],[\"$\",\"$Le\",\"3\",{}]]\n"])</script></body></html>
|
package/out/_not-found.txt
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
8:I[1750,["/_next/static/chunks/1ek5rtpo6rxev.js"],"ViewportBoundary"]
|
|
7
7
|
a:I[1750,["/_next/static/chunks/1ek5rtpo6rxev.js"],"MetadataBoundary"]
|
|
8
8
|
c:I[19606,["/_next/static/chunks/1ek5rtpo6rxev.js"],"default",1]
|
|
9
|
-
:HL["/_next/static/chunks/
|
|
10
|
-
0:{"P":null,"c":["","_not-found"],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/
|
|
9
|
+
:HL["/_next/static/chunks/3ef6upwlgr4q-.css","style"]
|
|
10
|
+
0:{"P":null,"c":["","_not-found"],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3ef6upwlgr4q-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/1ek5rtpo6rxev.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"space_grotesk_59d6dcf5-module__z_Ctiq__variable jetbrains_mono_38c99671-module__5Dhsuq__variable","children":["$","body",null,{"children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"]},null,false,null],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3ef6upwlgr4q-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"W_AwLgpmWJNo9qUUBPat3"}
|
|
11
11
|
d:[]
|
|
12
12
|
7:"$Wd"
|
|
13
13
|
9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
package/out/index.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en" class="space_grotesk_59d6dcf5-module__z_Ctiq__variable jetbrains_mono_38c99671-module__5Dhsuq__variable"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/0c89a48fa5027cee-s.p.2cyn07wtgehh0.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" as="image" href="/logo.svg"/><link rel="stylesheet" href="/_next/static/chunks/
|
|
1
|
+
<!DOCTYPE html><html lang="en" class="space_grotesk_59d6dcf5-module__z_Ctiq__variable jetbrains_mono_38c99671-module__5Dhsuq__variable"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/0c89a48fa5027cee-s.p.2cyn07wtgehh0.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" as="image" href="/logo.svg"/><link rel="stylesheet" href="/_next/static/chunks/3ef6upwlgr4q-.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/1g3z43o3h-024.js"/><script src="/_next/static/chunks/1evp209qbr4cr.js" async=""></script><script src="/_next/static/chunks/28f1onw3nywbz.js" async=""></script><script src="/_next/static/chunks/turbopack-16ab30_1p4vhq.js" async=""></script><script src="/_next/static/chunks/1ek5rtpo6rxev.js" async=""></script><script src="/_next/static/chunks/35f-9p5adh1sc.js" async=""></script><script src="/_next/static/chunks/2t9zu9v_g9kr9.js" async=""></script><script src="/_next/static/chunks/0hol9-rsh00k6.js" async=""></script><meta name="next-size-adjust" content=""/><title>Uptimizr — 3D Scene Analytics</title><meta name="description" content="Open-source analytics dashboard for 3D scenes."/><link rel="icon" href="/icon.svg?icon.08h29dad3pcxg.svg" sizes="any" type="image/svg+xml"/><script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><main class="mx-auto max-w-6xl px-6 py-8"><header class="mb-6 flex items-center gap-3"><img src="/logo.svg" alt="Uptimizr" width="36" height="36" class="h-9 w-9 shrink-0"/><div><h1 class="font-display text-2xl font-bold text-fg-hi">Uptimizr</h1><p class="text-sm text-fg-muted">Analytics for 3D scenes — open-source collector.</p></div></header><form class="mb-6 flex flex-wrap items-end gap-3 rounded-xl border border-edge bg-panel p-4"><label class="flex flex-1 flex-col gap-1 text-xs text-fg-muted">Collector URL<input class="min-w-56 rounded-md border border-edge bg-ink px-3 py-2 text-sm text-fg outline-none focus:border-saffron" placeholder="http://localhost:4318" value="http://localhost:4318"/></label><label class="flex flex-1 flex-col gap-1 text-xs text-fg-muted">Project API key<input class="min-w-56 rounded-md border border-edge bg-ink px-3 py-2 text-sm text-fg outline-none focus:border-saffron" type="password" placeholder="utk_…" value=""/></label><button type="submit" class="rounded-md bg-amber px-4 py-2 text-sm font-medium text-ink transition hover:bg-ember disabled:opacity-50">Load</button></form><p class="text-sm text-fg-muted">Enter your collector URL and a project API key, then load to view analytics.</p></main><!--$--><!--/$--><script src="/_next/static/chunks/1g3z43o3h-024.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[16190,[\"/_next/static/chunks/1ek5rtpo6rxev.js\"],\"default\"]\n3:I[62242,[\"/_next/static/chunks/1ek5rtpo6rxev.js\"],\"default\"]\n4:I[85960,[\"/_next/static/chunks/1ek5rtpo6rxev.js\"],\"ClientPageRoot\"]\n5:I[14936,[\"/_next/static/chunks/1ek5rtpo6rxev.js\",\"/_next/static/chunks/35f-9p5adh1sc.js\",\"/_next/static/chunks/2t9zu9v_g9kr9.js\",\"/_next/static/chunks/0hol9-rsh00k6.js\"],\"default\"]\n8:I[1750,[\"/_next/static/chunks/1ek5rtpo6rxev.js\"],\"OutletBoundary\"]\n9:\"$Sreact.suspense\"\nb:I[1750,[\"/_next/static/chunks/1ek5rtpo6rxev.js\"],\"ViewportBoundary\"]\nd:I[1750,[\"/_next/static/chunks/1ek5rtpo6rxev.js\"],\"MetadataBoundary\"]\nf:I[19606,[\"/_next/static/chunks/1ek5rtpo6rxev.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/3ef6upwlgr4q-.css\",\"style\"]\n:HL[\"/_next/static/media/0c89a48fa5027cee-s.p.2cyn07wtgehh0.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/3ef6upwlgr4q-.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/1ek5rtpo6rxev.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"space_grotesk_59d6dcf5-module__z_Ctiq__variable jetbrains_mono_38c99671-module__5Dhsuq__variable\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L4\",null,{\"Component\":\"$5\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":[\"$@6\",\"$@7\"]}}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/35f-9p5adh1sc.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/2t9zu9v_g9kr9.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/0hol9-rsh00k6.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L8\",null,{\"children\":[\"$\",\"$9\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@a\"}]}]]}],{},null,false,null]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$9\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Le\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/3ef6upwlgr4q-.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"W_AwLgpmWJNo9qUUBPat3\"}\n"])</script><script>self.__next_f.push([1,"6:{}\n7:\"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params\"\n"])</script><script>self.__next_f.push([1,"c:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"10:I[11936,[\"/_next/static/chunks/1ek5rtpo6rxev.js\"],\"IconMark\"]\na:null\ne:[[\"$\",\"title\",\"0\",{\"children\":\"Uptimizr — 3D Scene Analytics\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Open-source analytics dashboard for 3D scenes.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/icon.svg?icon.08h29dad3pcxg.svg\",\"sizes\":\"any\",\"type\":\"image/svg+xml\"}],[\"$\",\"$L10\",\"3\",{}]]\n"])</script></body></html>
|