PageSourceSearch

https://app.spaitial.ai/assets/dev-settings-modal-WEJ6CDDN--WTS9C84-344d37dac6c1.js

js spaitial.ai collected 2026-10-02 05:15:29 UTC 23,385 bytes, 3 lines download raw bytes

1!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._posthogChunkIds=e._posthogChunkIds||{},e._posthogChunkIds[n]="01a0f713-a050-7f10-b67a-c98de53ad316")}catch(e){}}();import{u,D as r,a as I,b as T,d as z,e as V,f as H,B as A,T as g,g as v,h as j,c as y,I as L}from"./viewer-ui-BntQHU_P-344d37dac6c1.js";import{r as p,j as e}from"./react-D8xgUSms-344d37dac6c1.js";import{v as B}from"./index-_TbRVc-i-344d37dac6c1.js";import{P as _,F as D,k as U}from"./icons-rJxGrmf1-344d37dac6c1.js";import{V as $}from"./three.core-CsquiZWW-344d37dac6c1.js";import{X as Y,Y as G,Z as W,_ as q}from"./radix-Dn5s4LcD-344d37dac6c1.js";import"./index-Bh1DGqOl-344d37dac6c1.js";import"./posthog-CTdkyuxI-344d37dac6c1.js";import"./tanstack-router-CEQu-TrB-344d37dac6c1.js";import"./tanstack-query-DTiRSa1W-344d37dac6c1.js";import"./supabase-BcuDcHL0-344d37dac6c1.js";function Q({className:s,orientation:i="horizontal",...t}){return e.jsx(Y,{"data-slot":"tabs","data-orientation":i,orientation:i,className:y("group/tabs flex gap-2 data-[orientation=horizontal]:flex-col",s),...t})}var X=B("group/tabs-list inline-flex w-fit items-center justify-center rounded-lg p-[3px] text-muted-foreground group-data-[orientation=horizontal]/tabs:h-9 group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col data-[variant=line]:rounded-none",{variants:{variant:{default:"bg-muted",line:"gap-1 bg-transparent"}},defaultVariants:{variant:"default"}});function Z({className:s,variant:i="default",...t}){return e.jsx(G,{"data-slot":"tabs-list","data-variant":i,className:y(X({variant:i}),s),...t})}function b({className:s,...i}){return e.jsx(W,{"data-slot":"tabs-trigger",className:y("relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap text-foreground/60 transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 group-data-[variant=default]/tabs-list:data-[state=active]:shadow-sm group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none dark:text-muted-foreground dark:hover:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4","group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:border-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent","data-[state=active]:bg-background data-[state=active]:text-foreground dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 dark:data-[state=active]:text-foreground","after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-[state=active]:after:opacity-100",s),...i})}function f({className:s,...i}){return e.jsx(q,{"data-slot":"tabs-content",className:y("flex-1 outline-none",s),...i})}var S={introDuration:"How long the opening point-cloud-to-splat animation takes",pointCloudPhaseFraction:"How much of the intro is spent showing flat dots before they bloom into splats",dollyDistance:"How far the camera pushes forward during the intro",introPointSize:"How big the point-cloud dots are during phase 1. Larger = more visible particles",introPointMaxStdDev:"Max gaussian spread of dots during point-cloud phase. Tiny = crisp dots",introSpringStiffness:"Spring constant for the bloom transition. Higher = faster snap to final. ~400 is default",introSpringDamping:"Damping ratio for bloom spring. <1 = bouncy overshoot, 1 = no bounce, >1 = sluggish",introPixelRevealDuration:"How long maxPixelRadius takes to lerp from point size to full. Separate from main duration",explosionEnabled:"Enable GPU-side per-splat spring explosion. Splats fly out from a point in front of the camera",explosionVelocity:"How fast splats travel outward during phase 1 (constant velocity). Units/sec",explosionAcceleration:"Spring stiffness for the settle phase (phase 2). Higher = faster oscillation",explosionDamping:"Spring damping ratio. <1 = bouncy overshoot, 1 = critically damped, >1 = overdamped",explosionRefDistance:"Distance threshold for time compression. Farther splats get scaled time to arrive simultaneously",explosionOriginOffset:"How far in front of the camera the explosion origin is placed",pointCloudMode:"Render the scene with a dynamic point cloud instead of gaussian splats",renderTransitionDuration:"How long the crossfade takes when switching between point cloud and splat mode",autoCameraSpeed:"Rotation/movement speed for auto camera modes. For turntable: radians/sec. For dolly: units/sec",autoCameraF
1ocusDistance:"How far ahead of the camera the orbit pivot point is placed (turntable/crane)",autoCameraVerticalSpeed:"How fast the camera rises during crane mode. Units/sec",maxStdDev:"Size limit for each splat's gaussian footprint. Lower = sharper but can show gaps",preBlurAmount:"Extra blur applied to every splat before rendering. Softens the whole scene",blurAmount:"Anti-aliased blur with opacity compensation. Helps close-up splats blend instead of showing their footprint",minPixelRadius:"Smallest a splat can appear on screen. Raise to make tiny splats more visible",maxPixelRadius:"Largest a splat can appear on screen. Cap to avoid huge close-up blobs",minAlpha:"Splats more transparent than this are hidden. Raise to cull faint splats for speed",moveSpeed:"WASD movement speed in units per second",fastMultiplier:"Speed boost when holding Shift (sprint)",lookSpeed:"Mouse sensitivity for looking around",rotateInertia:"Rotation momentum decay time. Higher = more follow-through after releasing mouse",scrollSpeed:"How fast scroll-wheel zooms in and out",scrollInertia:"Scroll momentum decay time. Higher = more coast after scrolling",moveInertia:"WASD momentum decay time. Higher = more glide after releasing keys",pointerSmoothing:"Smoothing applied to mouse/touch input. 1.0 = raw, lower = smoother",invertOrbitControls:"Invert orbit direction so dragging feels like grabbing the scene (legacy behavior)",lodEnabled:"Spark 2.0 Level-of-Detail. Renders a viewpoint-prioritized subset of splats. Toggling applies on next world load",lodSplatScale:"Multiplier on the LOD splat budget. 1.0 = platform default (500K mobile / 2.5M desktop). Higher = more detail, lower fps",lodRenderScale:"Minimum on-screen pixel size of LOD splats. Higher skips tiny splats. 1.5 is a safe perf default",coneFov0:"Foveation: cone (degrees) of full resolution at the camera center",coneFov:"Foveation: outer cone (degrees) where peripheral down-scaling reaches max",coneFoveate:"Foveation: scale factor at the outer cone edge. Smaller = stronger peripheral down-budgeting",behindFoveate:"Foveation: scale factor for splats behind the camera. 0.1 = 10x coarser → big budget savings during fast yaws"};function o({label:s,settingKey:i,min:t,max:l,step:c,engine:a,unit:m}){const x=u(d=>d[i]),n=u(d=>d.set),[w,h]=p.useState(""),[E,C]=p.useState(!1),k=S[i],K=m?`${k} (${m})`:k,P=c<.001?4:c<.1?2:c<1?1:0,M=E?w:x.toFixed(P),O=p.useCallback(d=>{const R=parseFloat(d);if(Number.isNaN(R))return;const F=Math.min(l,Math.max(t,R));n(i,F),N(i,F,a)},[i,t,l,n,a]);return e.jsxs("div",{className:"flex items-center justify-between gap-4 py-2",children:[e.jsxs("div",{className:"flex items-center gap-1.5 min-w-0",children:[e.jsx("span",{className:"text-[13px] font-medium text-foreground truncate",children:s}),e.jsxs(g,{children:[e.jsx(v,{asChild:!0,children:e.jsx(D,{className:"size-3.5 text-muted-foreground/50 hover:text-muted-foreground transition-colors cursor-help shrink-0"})}),e.jsx(j,{side:"top",className:"max-w-[220px] text-xs",children:K})]})]}),e.jsx(L,{type:"number",min:t,max:l,step:c,value:M,onFocus:d=>{C(!0),h(x.toFixed(P)),d.target.select()},onChange:d=>{h(d.target.value),O(d.target.value)},onBlur:()=>C(!1),onKeyDown:d=>{d.key==="Enter"&&d.target.blur()},className:"h-7 w-20 shrink-0 px-2 text-xs font-mono tabular-nums text-right [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none"})]})}var J=["maxStdDev","preBlurAmount","blurAmount","minPixelRadius","maxPixelRadius","minAlpha"],ee=["moveSpeed","fastMultiplier","lookSpeed","rotateInertia","scrollSpeed","scrollInertia","moveInertia","pointerSmoothing","invertOrbitControls"],te=["lodEnabled","lodSplatScale","lodRenderScale","coneFov0","coneFov","coneFoveate","behindFoveate"];function N(s,i,t){t&&(J.includes(s)&&t.updateSparkParams({[s]:i}),ee.includes(s)&&t.getCameraManager().updateParams({[s]:i}),te.includes(s)&&(s==="lodEnabled"?t.updateLodParams({enableLod:i}):t.updateLodParams({[s]:i})))}var ae=[{value:"off",label:"Off",hotkey:""},{value:"turntable",label:"Turntable",hotkey:"T"},{value:"dolly",label:"Dolly",hotkey:"Y"},{value:"crane",label:"Crane",hotkey:"U"}];function oe({engine:s,devMode:i}){const t=u(),l=p.useSyncExternalStore(p.useCallback(a=>
1{if(!s)return()=>{};const m=setInterval(a,200);return()=>clearInterval(m)},[s]),()=>s?.getAutoCameraMode()??"off"),c=p.useCallback(a=>{s&&(a==="off"?s.stopAutoCamera():s.startAutoCamera(a,{speed:t.autoCameraSpeed,verticalSpeed:t.autoCameraVerticalSpeed}))},[s,t.autoCameraSpeed,t.autoCameraVerticalSpeed]);return e.jsxs("div",{className:"pt-3 pb-1 space-y-4",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-[11px] text-muted-foreground/70 mb-3",children:"Pick a cinema motion. Hit the same hotkey or click the active button again to stop."}),e.jsx("div",{className:"flex gap-1 mb-3",children:ae.map(a=>e.jsxs("button",{type:"button",onClick:()=>c(a.value),className:`flex-1 px-2 py-1.5 text-xs rounded-md border transition-colors ${l===a.value?a.value==="off"?"bg-muted border-border text-foreground":"bg-primary/10 border-primary/30 text-primary":"border-border text-muted-foreground hover:text-foreground hover:bg-muted/50"}`,children:[e.jsx("span",{className:"block",children:a.label}),a.hotkey&&e.jsx("span",{className:"block text-[10px] opacity-50 mt-0.5",children:a.hotkey})]},a.value))}),e.jsxs("div",{className:"divide-y divide-border",children:[e.jsx(o,{label:"Speed",settingKey:"autoCameraSpeed",min:.01,max:3,step:.01,engine:s,unit:"rad/s"}),i&&e.jsxs(e.Fragment,{children:[e.jsx(o,{label:"Focus Distance",settingKey:"autoCameraFocusDistance",min:.5,max:20,step:.1,engine:s}),e.jsx(o,{label:"Vertical Speed",settingKey:"autoCameraVerticalSpeed",min:-3,max:3,step:.05,engine:s,unit:"u/s"}),e.jsx(o,{label:"Render Transition",settingKey:"renderTransitionDuration",min:0,max:5e3,step:50,engine:s,unit:"ms"})]})]})]}),e.jsx("div",{className:"pt-2 border-t border-border",children:e.jsxs("p",{className:"text-[11px] text-muted-foreground/70",children:[e.jsx("span",{className:"font-medium text-muted-foreground",children:"Shortcuts:"})," ","T = turntable · Y = dolly · U = crane",i&&" · P = toggle point cloud"]})})]})}function he({open:s,onClose:i,engine:t,devMode:l}){const c=u(n=>n.reset),a=u(),m=p.useCallback(()=>{c(),t&&(t.updateSparkParams({maxStdDev:r.maxStdDev,preBlurAmount:r.preBlurAmount,blurAmount:r.blurAmount,minPixelRadius:r.minPixelRadius,maxPixelRadius:r.maxPixelRadius,minAlpha:r.minAlpha}),t.getCameraManager().updateParams({moveSpeed:r.moveSpeed,fastMultiplier:r.fastMultiplier,lookSpeed:r.lookSpeed,rotateInertia:r.rotateInertia,scrollSpeed:r.scrollSpeed,scrollInertia:r.scrollInertia,moveInertia:r.moveInertia,pointerSmoothing:r.pointerSmoothing,invertOrbitControls:r.invertOrbitControls}),t.updateLodParams({enableLod:r.lodEnabled,lodSplatScale:r.lodSplatScale,lodRenderScale:r.lodRenderScale,coneFov0:r.coneFov0,coneFov:r.coneFov,coneFoveate:r.coneFoveate,behindFoveate:r.behindFoveate}),t.setPointCloudMode(!1))},[c,t]),x=p.useCallback(()=>{if(!t)return;const n=t.getCamera(),w=new $(0,0,-1).applyQuaternion(n.quaternion),h=n.position.clone().add(w.multiplyScalar(a.explosionOriginOffset));t.replayIntro({duration:a.introDuration,pointCloudPhaseFraction:a.pointCloudPhaseFraction,dollyDistance:a.dollyDistance,pointSize:a.introPointSize,pointMaxStdDev:a.introPointMaxStdDev,springStiffness:a.introSpringStiffness,springDamping:a.introSpringDamping,pixelRevealDuration:a.introPixelRevealDuration,explosion:a.explosionEnabled?{velocity:a.explosionVelocity,acceleration:a.explosionAcceleration,damping:a.explosionDamping,refDistance:a.explosionRefDistance,explosionOrigin:h}:!1})},[t,a.introDuration,a.pointCloudPhaseFraction,a.dollyDistance,a.introPointSize,a.introPointMaxStdDev,a.introSpringStiffness,a.introSpringDamping,a.introPixelRevealDuration,a.explosionEnabled,a.explosionVelocity,a.explosionAcceleration,a.explosionDamping,a.explosionRefDistance,a.explosionOriginOffset]);return e.jsx(I,{open:s,onOpenChange:n=>!n&&i(),children:e.jsxs(T,{className:"sm:max-w-lg flex flex-col overflow-hidden",onOpenAutoFocus:n=>n.preventDefault(),children:[e.jsxs(z,{children:[e.jsxs(V,{className:"flex items-center gap-2",children:[l&&e.jsx("span",{className:"inline-flex items-center rounded-md bg-amber-500/10 px-1.5 py-0.5 text-xs font-medium text-amber-500 ring-1 ring-inset ring-amber-500/20",children:"DEV"}
1),"Settings"]}),e.jsx(H,{children:"Tweak camera and cinema controls."})]}),e.jsxs(Q,{defaultValue:l?"animation":"camera",className:"flex-1 min-h-0",children:[e.jsxs(Z,{className:"w-full",variant:"line",children:[l&&e.jsx(b,{value:"animation",children:"Animation"}),l&&e.jsx(b,{value:"rendering",children:"Rendering"}),e.jsx(b,{value:"camera",children:"Camera"}),e.jsx(b,{value:"cinema",children:"Cinema"})]}),l&&e.jsx(f,{value:"animation",className:"overflow-y-auto overflow-x-hidden max-h-[calc(85vh-220px)] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",children:e.jsxs("div",{className:"pt-3 pb-1",children:[e.jsxs("div",{className:"flex items-center justify-between mb-2",children:[e.jsx("p",{className:"text-xs text-muted-foreground",children:"The opening reveal when a world loads"}),e.jsxs(A,{variant:"outline",size:"sm",className:"h-7 gap-1.5 text-xs shrink-0",onClick:x,children:[e.jsx(_,{className:"size-3"}),"Replay"]})]}),e.jsxs("div",{className:"divide-y divide-border",children:[e.jsx(o,{label:"Duration",settingKey:"introDuration",min:200,max:1e5,step:100,engine:t,unit:"ms"}),e.jsx(o,{label:"Point Cloud Phase",settingKey:"pointCloudPhaseFraction",min:0,max:1,step:.01,engine:t}),e.jsx(o,{label:"Point Size",settingKey:"introPointSize",min:.1,max:20,step:.1,engine:t,unit:"px"}),e.jsx(o,{label:"Point Max Std Dev",settingKey:"introPointMaxStdDev",min:.01,max:3,step:.01,engine:t}),e.jsx(o,{label:"Spring Stiffness",settingKey:"introSpringStiffness",min:5,max:5e3,step:5,engine:t}),e.jsx(o,{label:"Spring Damping",settingKey:"introSpringDamping",min:.05,max:2,step:.05,engine:t}),e.jsx(o,{label:"Pixel Reveal Duration",settingKey:"introPixelRevealDuration",min:100,max:1e4,step:100,engine:t,unit:"ms"}),e.jsx(o,{label:"Dolly Distance",settingKey:"dollyDistance",min:0,max:100,step:.01,engine:t})]}),e.jsxs("div",{className:"mt-4",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx("h4",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider",children:"GPU Explosion"}),e.jsxs("label",{className:"flex items-center gap-1.5 ml-auto cursor-pointer",children:[e.jsx("span",{className:"text-[11px] text-muted-foreground",children:a.explosionEnabled?"On":"Off"}),e.jsx("button",{type:"button",role:"switch","aria-checked":a.explosionEnabled,onClick:()=>a.set("explosionEnabled",!a.explosionEnabled),className:`relative inline-flex h-4 w-7 shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors ${a.explosionEnabled?"bg-primary":"bg-muted"}`,children:e.jsx("span",{className:`pointer-events-none block h-3 w-3 rounded-full bg-background shadow-sm ring-0 transition-transform ${a.explosionEnabled?"translate-x-3":"translate-x-0"}`})})]})]}),e.jsx("p",{className:"text-[11px] text-muted-foreground/70 mb-2",children:"Per-splat spring physics on the GPU. Splats fly from an origin point and settle with overshoot."}),e.jsxs("div",{className:"divide-y divide-border",children:[e.jsx(o,{label:"Velocity",settingKey:"explosionVelocity",min:.1,max:50,step:.1,engine:t,unit:"u/s"}),e.jsx(o,{label:"Acceleration",settingKey:"explosionAcceleration",min:1,max:5e3,step:1,engine:t}),e.jsx(o,{label:"Damping",settingKey:"explosionDamping",min:.01,max:2,step:.01,engine:t}),e.jsx(o,{label:"Ref Distance",settingKey:"explosionRefDistance",min:.1,max:100,step:.1,engine:t}),e.jsx(o,{label:"Origin Offset",settingKey:"explosionOriginOffset",min:0,max:20,step:.1,engine:t})]})]})]})}),l&&e.jsx(f,{value:"rendering",className:"overflow-y-auto overflow-x-hidden max-h-[calc(85vh-220px)] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",children:e.jsxs("div",{className:"pt-3 pb-1",children:[e.jsx("p",{className:"text-xs text-muted-foreground mb-2",children:"Controls how gaussian splats are drawn on screen"}),e.jsxs("div",{className:"divide-y divide-border",children:[e.jsxs("div",{className:"flex items-center justify-between gap-4 py-2",children:[e.jsxs("div",{className:"flex items-center gap-1.5 min-w-0",children:[e.jsx("span",{className:"text-[13px] font-medium text-foreground truncate",children:"Point Cloud Mode"}),e.jsxs(g,{children:[e.jsx(v,{asChild:!0,children:e.jsx(D,{className:"size-3.5 text-muted-foreground
1/50 hover:text-muted-foreground transition-colors cursor-help shrink-0"})}),e.jsx(j,{side:"top",className:"max-w-[220px] text-xs",children:S.pointCloudMode})]})]}),e.jsx("input",{type:"checkbox",checked:a.pointCloudMode,onChange:()=>{const n=!a.pointCloudMode;a.set("pointCloudMode",n),t?.setPointCloudMode(n)},className:"h-4 w-4 shrink-0 rounded border border-input accent-primary cursor-pointer"})]}),e.jsx(o,{label:"Max Std Dev",settingKey:"maxStdDev",min:.1,max:5,step:.01,engine:t}),e.jsx(o,{label:"Pre-blur Amount",settingKey:"preBlurAmount",min:0,max:5,step:.01,engine:t}),e.jsx(o,{label:"Blur Amount",settingKey:"blurAmount",min:0,max:2,step:.01,engine:t}),e.jsx(o,{label:"Min Pixel Radius",settingKey:"minPixelRadius",min:0,max:10,step:.1,engine:t,unit:"px"}),e.jsx(o,{label:"Max Pixel Radius",settingKey:"maxPixelRadius",min:1,max:1024,step:1,engine:t,unit:"px"}),e.jsx(o,{label:"Min Alpha",settingKey:"minAlpha",min:0,max:1,step:.001,engine:t})]}),e.jsxs("div",{className:"mt-4",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx("h4",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider",children:"Level of Detail (Spark 2.0)"}),e.jsxs("label",{className:"flex items-center gap-1.5 ml-auto cursor-pointer",children:[e.jsx("span",{className:"text-[11px] text-muted-foreground",children:a.lodEnabled?"On":"Off"}),e.jsxs(g,{children:[e.jsx(v,{asChild:!0,children:e.jsx("button",{type:"button",role:"switch","aria-checked":a.lodEnabled,onClick:()=>{const n=!a.lodEnabled;a.set("lodEnabled",n),N("lodEnabled",n,t)},className:`relative inline-flex h-4 w-7 shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors ${a.lodEnabled?"bg-primary":"bg-muted"}`,children:e.jsx("span",{className:`pointer-events-none block h-3 w-3 rounded-full bg-background shadow-sm ring-0 transition-transform ${a.lodEnabled?"translate-x-3":"translate-x-0"}`})})}),e.jsx(j,{side:"top",className:"max-w-[240px] text-xs",children:S.lodEnabled})]})]})]}),e.jsx("p",{className:"text-[11px] text-muted-foreground/70 mb-2",children:"Renders a viewpoint-prioritized subset of splats from a worker-built tree. Toggle requires a world reload to build the LOD tree; scales/foveation apply live."}),e.jsxs("div",{className:"divide-y divide-border",children:[e.jsx(o,{label:"Splat Scale",settingKey:"lodSplatScale",min:.1,max:4,step:.05,engine:t,unit:"x"}),e.jsx(o,{label:"Render Scale",settingKey:"lodRenderScale",min:.5,max:5,step:.1,engine:t,unit:"px"}),e.jsx(o,{label:"Cone FoV 0",settingKey:"coneFov0",min:10,max:180,step:1,engine:t,unit:"°"}),e.jsx(o,{label:"Cone FoV",settingKey:"coneFov",min:10,max:180,step:1,engine:t,unit:"°"}),e.jsx(o,{label:"Cone Foveate",settingKey:"coneFoveate",min:.05,max:1,step:.01,engine:t}),e.jsx(o,{label:"Behind Foveate",settingKey:"behindFoveate",min:.05,max:1,step:.01,engine:t})]})]})]})}),e.jsx(f,{value:"camera",className:"overflow-y-auto overflow-x-hidden max-h-[calc(85vh-220px)] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",children:e.jsxs("div",{className:"pt-3 pb-1",children:[e.jsx("p",{className:"text-xs text-muted-foreground mb-2",children:"WASD, mouse look and scroll zoom behavior"}),e.jsxs("div",{className:"divide-y divide-border",children:[e.jsxs("div",{className:"flex items-center justify-between gap-4 py-2",children:[e.jsxs("div",{className:"flex items-center gap-1.5 min-w-0",children:[e.jsx("span",{className:"text-[13px] font-medium text-foreground truncate",children:"Invert Orbit"}),e.jsxs(g,{children:[e.jsx(v,{asChild:!0,children:e.jsx(D,{className:"size-3.5 text-muted-foreground/50 hover:text-muted-foreground transition-colors cursor-help shrink-0"})}),e.jsx(j,{side:"top",className:"max-w-[220px] text-xs",children:S.invertOrbitControls})]})]}),e.jsx("input",{type:"checkbox",checked:a.invertOrbitControls,onChange:()=>{const n=!a.invertOrbitControls;a.set("invertOrbitControls",n),N("invertOrbitControls",n,t)},className:"h-4 w-4 shrink-0 rounded border border-input accent-primary cursor-pointer"})]}),e.jsx(o,{label:"Move Speed",settingKey:"moveSpeed",min:.5,max:20,step:.5,engine:t,unit:"u/s"}),e.jsx(o,{label:"Look Speed",settingKey:"lookSpeed",min:1e-4,max:.02,step:1e-4,engine:t}),l&&e.jsxs(e.Fragment,{children:[e.jsx(o,{label:"Sprint Multiplier",settingKey:"fastMultiplier",min:1,max:10,step:.1,engine:t,unit:"x"}),e.jsx(o,{label:"Rotate Inertia",settingKey:"rotateInertia",min:.01,max:.5,step:.
101,engine:t,unit:"s"}),e.jsx(o,{label:"Scroll Speed",settingKey:"scrollSpeed",min:.1,max:10,step:.1,engine:t,unit:"u/s"}),e.jsx(o,{label:"Scroll Inertia",settingKey:"scrollInertia",min:.01,max:.5,step:.01,engine:t,unit:"s"}),e.jsx(o,{label:"Move Inertia",settingKey:"moveInertia",min:.01,max:.5,step:.01,engine:t,unit:"s"}),e.jsx(o,{label:"Pointer Smoothing",settingKey:"pointerSmoothing",min:.1,max:1,step:.05,engine:t})]})]})]})}),e.jsx(f,{value:"cinema",className:"overflow-y-auto overflow-x-hidden max-h-[calc(85vh-220px)] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",children:e.jsx(oe,{engine:t,devMode:l})})]}),e.jsx("div",{className:"flex justify-end pt-2 border-t",children:e.jsxs(A,{variant:"outline",size:"sm",className:"gap-1.5",onClick:m,children:[e.jsx(U,{className:"size-3.5"}),"Reset All"]})})]})})}export{he as DevSettingsModal};
2
3//# chunkId=01a0f713-a050-7f10-b67a-c98de53ad316

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.