@spawnite/devtools 0.1.0-beta.15
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/LICENSE.md +169 -0
- package/README.md +21 -0
- package/dist/CQCYoLJa.js +3 -0
- package/dist/THIRD-PARTY-NOTICES +3 -0
- package/dist/index.d.ts +1658 -0
- package/dist/index.js +7 -0
- package/dist/nxAMn9sr.js +16 -0
- package/dist/styles.css +3 -0
- package/fonts.css +62 -0
- package/package.json +54 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import"./styles.css";import{A as e,C as t,D as n,E as r,M as i,N as a,O as o,S as s,T as c,_ as l,a as u,b as d,c as f,d as p,f as m,g as h,h as g,i as _,j as v,k as y,l as b,m as x,n as S,o as C,p as w,r as ee,s as T,t as te,u as ne,v as re,w as E,x as D,y as ie}from"./nxAMn9sr.js";import"../fonts.css";import{Fragment as ae,Suspense as oe,createContext as se,lazy as ce,use as le,useCallback as ue,useEffect as O,useEffectEvent as de,useId as k,useLayoutEffect as A,useMemo as j,useRef as M,useState as N,useSyncExternalStore as fe}from"react";import{clsx as P}from"clsx";import{Activity as pe,Anchor as me,ArrowDownToLine as he,ArrowRight as F,BookOpen as ge,Box as _e,Boxes as ve,Camera as ye,Check as be,ChevronDown as I,ChevronRight as L,ChevronsDownUp as xe,ChevronsUpDown as Se,Circle as Ce,Clapperboard as we,Clipboard as Te,CloudRain as Ee,Copy as De,CornerLeftUp as Oe,Crosshair as ke,Cylinder as Ae,Droplets as je,Eject as Me,Ellipsis as Ne,Equal as Pe,Eraser as Fe,Eye as Ie,EyeOff as Le,FileText as Re,Gamepad2 as ze,Globe as Be,Hash as Ve,Keyboard as He,ListTree as Ue,Map as We,Mountain as Ge,MountainSnow as Ke,MousePointer2 as qe,MoveVertical as Je,PaintBucket as Ye,Paintbrush as Xe,PanelLeft as Ze,Pause as Qe,Pin as $e,Pipette as et,Play as tt,Plus as nt,Redo2 as rt,RefreshCw as it,RotateCcw as at,Sailboat as ot,Save as st,Search as ct,Send as lt,SlidersHorizontal as ut,Square as dt,Star as ft,StepForward as pt,Terminal as mt,Trash2 as ht,TreeDeciduous as gt,Trees as _t,Undo2 as vt,Waves as yt,X as bt}from"lucide-react";import{AbilityCastState as xt,AbilityKind as St,Camera as Ct,Panel as wt,PanelVariant as Tt,Slot as Et,World as Dt,gameInsetLengths as Ot,mapPreviewScene as kt,useInspect as At,useLoading as jt}from"@spawnite/engine";import{AbilityProbes as Mt,AbilityRings as Nt,ClipState as Pt,GameStoresContext as Ft,PanelEntryKind as It,PlayFromHere as Lt,StatsBehaviour as Rt,findEntityNode as zt,installDeclaredInput as Bt,isUiOwned as Vt,labelRow as Ht,matchFavorite as Ut,pickGroundSpot as Wt,pickRow as Gt,pickRowHit as Kt,readFrameCost as qt,readPanelEntry as Jt,recordingSeconds as Yt,useClip as Xt,useDeclaredPanel as Zt,useFavoritesStore as Qt,usePageLink as $t,usePresetsStore as en,useRowAbilities as tn,useRowMachines as nn,useRowStats as rn,useWorldSettings as an,watchTerrainWrites as on,wikiPageSaved as sn,wikiPagesRoute as cn}from"@spawnite/engine/internal/devtools";import{DevtoolsAction as ln,DevtoolsNodeKind as R,LogLevel as un,PlaceableKind as dn,RoomStatus as fn,RowPanel as pn,SendOutcome as mn,captureLog as hn,findNode as gn,findPath as _n,findScatterPropRow as vn,readModelSilhouette as yn,readModelThumbnail as bn,resolveStat as xn,sceneRowId as Sn,terrainBrushLimits as Cn,useDevtools as z,useHudRows as wn,useRoom as Tn,useTerrainEditor as B,useTime as En}from"@spawnite/engine/devtools";import{Logomark as Dn,Select as On,Slider as kn,Text as An,Wordmark as jn,gripPointer as Mn,press as Nn,springs as V}from"@spawnite/ui";import{Fragment as H,jsx as U,jsxs as W}from"react/jsx-runtime";import{AnimatePresence as Pn,Reorder as Fn,animate as In,useMotionValue as Ln,useReducedMotionConfig as G,useTransform as Rn}from"motion/react";import{twMerge as zn}from"tailwind-merge";import{AgentState as Bn,ClipShape as Vn,FavoriteKind as Hn,PropShape as Un,ScatterFamily as Wn,agentActivityEvent as Gn,agentHeartbeatMilliseconds as Kn,chatPath as qn,clipsFolderName as Jn,clipsPath as Yn,formatClipLength as Xn,formatClipSize as Zn,formatLinkConditions as Qn,isLinkDirect as $n,mapPoint as er,parseLinkConditions as tr,readClipStartTime as nr,reverseWikiRelation as rr,shotsPath as ir,spawniteFolderName as ar,toDisplayName as or,wikiOverviewPath as sr,wikiPagePath as cr,writeLinkSettings as lr}from"@spawnite/schema";import{createPortal as ur}from"react-dom";import{create as dr,useStore as fr}from"zustand";import{persist as pr}from"zustand/middleware";function mr({on:e,className:t}){return/* @__PURE__ */ U(e?ze:Me,{"aria-hidden":!0,className:t})}function K({className:e,pressable:t,...n}){let r=G();return/* @__PURE__ */ U(v,{whileTap:t&&!r?Nn:void 0,...n,className:zn(P(`pointer-events-auto overflow-hidden rounded-2xl text-white`,a.glassSurface,a.glassBorder,a.glassShadow,e))})}function hr({label:e,icon:t,onPress:n,pressed:r,className:i,shortcut:o,detail:s,disabledReason:l,children:u}){return/* @__PURE__ */ W(K,{pressable:!0,className:`w-fit rounded-full`,children:[/* @__PURE__ */ U(E,{label:e,hideLabel:!0,tone:c.Plain,pressed:r,onPress:n,shortcut:o,detail:s,disabledReason:l,className:P(`size-[42px] justify-center rounded-full px-0`,r&&a.accentTint,i),icon:t}),u]})}function gr({on:t,onToggle:n}){let r=G()?{}:{rotate:90,scale:0};return/* @__PURE__ */ U(hr,{label:`Free camera`,pressed:t,onPress:n,icon:/* @__PURE__ */ U(Pn,{initial:!1,mode:`popLayout`,children:/* @__PURE__ */ U(e,{initial:{...r,rotate:-(r.rotate??0)},animate:{rotate:0,scale:1},exit:r,transition:V.snappy,className:`inline-flex`,children:/* @__PURE__ */ U(mr,{on:t,className:`size-5`})},t?`free`:`game`)})})}function q({label:e,pressed:t,lit:i,shortcut:o,disabledReason:s,onPress:c,children:l}){let u=G(),d=s!==void 0;return/* @__PURE__ */ U(n,{label:e,keys:o,disabledReason:s,children:/* @__PURE__ */ U(r,{type:`button`,"aria-label":e,"aria-pressed":t,"aria-disabled":d||void 0,onClick:d?void 0:c,whileTap:u||d?void 0:Nn,className:P(`inline-flex size-7 items-center justify-center rounded-lg border border-white/20 text-white outline-none`,d?`opacity-40`:`cursor-pointer`,a.accentRing,t||i?a.accentTint:`bg-transparent`),children:l})})}var _r=1500;function vr({onCapture:t,phone:n}){let r=G(),[i,o]=N(),s=M(void 0);O(()=>()=>clearTimeout(s.current),[]);let c=r?{}:{rotate:90,scale:0};async function l(){let e=await t();clearTimeout(s.current),o(e),s.current=setTimeout(()=>o(void 0),_r)}let u=i===void 0?ye:i?be:bt,d=/* @__PURE__ */ U(Pn,{initial:!1,mode:`popLayout`,children:/* @__PURE__ */ U(e,{initial:{...c,rotate:-(c.rotate??0)},animate:{rotate:0,scale:1},exit:c,transition:V.snappy,className:`inline-flex`,children:/* @__PURE__ */ U(u,{"aria-hidden":!0,className:n?`size-3.5`:`size-5`})},String(i))}),f=/* @__PURE__ */ U(e,{role:`status`,className:`sr-only`,children:i===void 0?``:i?`Copied`:`Not copied`});return n?/* @__PURE__ */ W(H,{children:[/* @__PURE__ */ U(q,{label:`Screenshot`,onPress:l,children:d}),f]}):/* @__PURE__ */ U(hr,{label:`Screenshot`,onPress:l,className:P(i===!0&&a.accentTint,i===!1&&a.errorTint),icon:d,children:f})}var yr=/* @__PURE__ */ function(e){return e.Tree=`tree`,e.Inspector=`inspector`,e.Console=`console`,e.TopBar=`top-bar`,e.Scene=`scene`,e}({}),J=/* @__PURE__ */ function(e){return e.ToggleEditMode=`toggle-edit-mode`,e.ShowShortcuts=`show-shortcuts`,e.SendToAgent=`send-to-agent`,e.CopyAgentBundle=`copy-agent-bundle`,e.Undo=`undo`,e.Redo=`redo`,e.Save=`save`,e.ShowRailSection=`show-rail-section`,e.ToggleConsole=`toggle-console`,e.NextGamePanel=`next-game-panel`,e.FoldSidebar=`fold-sidebar`,e.Close=`close`,e.Select=`select`,e.AddToSelection=`add-to-selection`,e.SelectParent=`select-parent`,e.OpenContextMenu=`open-context-menu`,e.Inspect=`inspect`,e.FocusCamera=`focus-camera`,e.Hide=`hide`,e.Duplicate=`duplicate`,e.Delete=`delete`,e.AddBehaviour=`add-behaviour`,e.CopyId=`copy-id`,e.FilterTree=`filter-tree`,e.MoveInTree=`move-in-tree`,e.ExpandInTree=`expand-in-tree`,e.SelectInTree=`select-in-tree`,e.ShowBehaviours=`show-behaviours`,e.NextProp=`next-prop`,e.SavePreset=`save-preset`,e.ResetProps=`reset-props`,e.ClearConsole=`clear-console`,e.TogglePause=`toggle-pause`,e.ToggleClip=`toggle-clip`,e.StepFrame=`step-frame`,e.StepBack=`step-back`,e.LowerTerrain=`lower-terrain`,e.SmoothTerrain=`smooth-terrain`,e.ResizeBrush=`resize-brush`,e.BrushStrength=`brush-strength`,e.PutToolDown=`put-tool-down`,e.PutCardDown=`put-card-down`,e}({}),{Tree:br,Inspector:xr,Console:Sr,TopBar:Cr,Scene:wr}=yr,Tr=[{name:`Global`,scope:`anywhere`,bindings:[{action:`toggle-edit-mode`,label:`Toggle edit mode`,chords:[[`⌘`,`E`]]},{action:`show-shortcuts`,label:`Shortcuts`,chords:[[`?`]]},{action:`send-to-agent`,label:`Send the selection to the agent`,chords:[[`⌘`,`↵`]],surface:xr},{action:`copy-agent-bundle`,label:`Copy the agent bundle`,chords:[[`⌘`,`⇧`,`C`]],surface:xr},{action:`undo`,label:`Undo a map edit`,chords:[[`⌘`,`Z`]]},{action:`redo`,label:`Redo a map edit`,chords:[[`⇧`,`⌘`,`Z`]]},{action:`save`,label:`Save the map's edits`,chords:[[`⌘`,`S`]]},{action:`show-rail-section`,label:`Open the rail's first to ninth section`,chords:[[`⌘`,`1–9`]]},{action:`toggle-console`,label:`Open or fold the console`,chords:[[`⌘`,`J`]],surface:Sr},{action:`toggle-clip`,label:`Record a clip, or stop it`,chords:[[`F9`]]},{action:`next-game-panel`,label:`Next game section`,chords:[[`⌘`,`G`]]},{action:`fold-sidebar`,label:`Fold the sidebar`,chords:[[`⌘`,`[`]]},{action:`close`,label:`Close a panel or dialog`,chords:[[`Esc`]]}]},{name:`Scene`,scope:`pointer over the game`,bindings:[{action:`select`,label:`Select`,chords:[[`Click`]]},{action:`add-to-selection`,label:`Add to or take from the selection`,chords:[[`⇧`,`Click`],[`⌘`,`Click`]]},{action:`select-parent`,label:`Select the parent`,chords:[[`⌥`,`↑`]]},{action:`open-context-menu`,label:`Context menu`,chords:[[`Right click`]]},{action:`inspect`,label:`Inspect`,chords:[[`I`]]},{action:`focus-camera`,label:`Focus the camera`,chords:[[`F`]]},{action:`hide`,label:`Hide`,chords:[[`H`]]},{action:`duplicate`,label:`Duplicate`,chords:[[`⌘`,`D`]]},{action:`delete`,label:`Delete`,chords:[[`⌫`]]},{action:`add-behaviour`,label:`Add a behaviour`,chords:[[`⇧`,`A`]]},{action:`copy-id`,label:`Copy the id`,chords:[[`⌘`,`C`]]}].map(e=>({...e,surface:wr}))},{name:`Tree`,scope:`panel focused`,bindings:[{action:`filter-tree`,label:`Filter`,chords:[[`/`]]},{action:`move-in-tree`,label:`Move`,chords:[[`↑`],[`↓`]]},{action:`expand-in-tree`,label:`Expand or collapse`,chords:[[`→`],[`←`]]},{action:`select-in-tree`,label:`Select`,chords:[[`↵`]]}].map(e=>({...e,surface:br}))},{name:`Inspector`,scope:`panel focused`,bindings:[{action:`show-behaviours`,label:`Behaviours`,chords:[[`B`]]},{action:`next-prop`,label:`Next or previous prop`,chords:[[`Tab`],[`⇧`,`Tab`]]},{action:`save-preset`,label:`Save a preset`,chords:[[`⌘`,`S`]]},{action:`reset-props`,label:`Reset to defaults`,chords:[[`⌘`,`0`]]}].map(e=>({...e,surface:xr}))},{name:`Console`,scope:`console open`,bindings:[{action:`clear-console`,label:`Clear the console`,chords:[[`⌘`,`K`]],surface:Sr}]},{name:`Playback`,scope:`edit mode`,bindings:[{action:`toggle-pause`,label:`Pause or resume`,chords:[[`Space`]]},{action:`step-frame`,label:`Step one frame`,chords:[[`.`]]},{action:`step-back`,label:`Step back one frame`,chords:[[`,`]]}].map(e=>({...e,surface:Cr}))},{name:`Terrain`,scope:`a terrain tool in hand`,bindings:[{action:`lower-terrain`,label:`Lower while sculpting`,chords:[[`Ctrl`,`Drag`]]},{action:`smooth-terrain`,label:`Smooth while held`,chords:[[`⇧`,`Drag`]]},{action:`resize-brush`,label:`Resize the brush`,chords:[[`[`],[`]`],[`B`,`Drag`]]},{action:`brush-strength`,label:`Change the brush's strength`,chords:[[`⇧`,`B`,`Drag`]]},{action:`put-tool-down`,label:`Put the tool down`,chords:[[`Esc`]]}]},{name:`Assets`,scope:`a card in hand`,bindings:[{action:`put-card-down`,label:`Put the card down`,chords:[[`Esc`]]}]}],Er=new Map(Tr.flatMap(({bindings:e})=>e.map(e=>[e.action,e])));function Dr(e){return Er.get(e)}function Y(e){return Dr(e).chords[0]}function Or({shiftKey:e,metaKey:t,ctrlKey:n}){return e||t||n}function kr(){let e=Xt(e=>e.recording),[t,n]=N(()=>performance.now());return O(()=>{if(!e)return;let t=setInterval(()=>n(performance.now()),250);return()=>clearInterval(t)},[e]),e?Math.max(0,t-e.startedAt):0}function Ar({onPress:t}){let n=G(),r=Xt(e=>e.supported),i=Xt(e=>e.recording),o=Xt(e=>e.state),s=o===Pt.Stopping,c=kr(),l=i!==null||s;return/* @__PURE__ */ U(hr,{label:s?`Saving the clip`:l?`Stop recording`:`Record a clip`,pressed:l,shortcut:Y(J.ToggleClip),detail:i?`${Xn(c)} of ${Xn(i.maxSeconds*1e3)}`:void 0,disabledReason:r===!0?s?`The clip saves: it shows in the Clips section once it is written`:o===Pt.Starting?`The clip starts`:void 0:r,onPress:t,className:P(`relative`,l&&a.errorTint),icon:l?/* @__PURE__ */ W(H,{children:[/* @__PURE__ */ U(dt,{"aria-hidden":!0,className:`size-4 fill-current`}),/* @__PURE__ */ U(e,{"aria-hidden":!0,className:`absolute top-1.5 right-1.5 size-2 rounded-full bg-[#FF6B6B]`,animate:n?void 0:{opacity:[1,.25,1]},transition:{duration:1.2,repeat:1/0}})]}):/* @__PURE__ */ U(Ce,{"aria-hidden":!0,className:`size-4 fill-[#FF6B6B] text-[#FF6B6B]`})})}var jr={[mn.Sent]:`sent`,[mn.Copied]:`copied to clipboard, no dev server`,[mn.Failed]:`not sent`};async function Mr(e,t){try{let n=await fetch(e,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(t)});if(!n.ok)return;let{file:r}=await n.json();return r}catch{return}}function Nr(e){return Mr(ir,{png:e})}async function Pr(e,t){let n=await Mr(qn,e),r=n===void 0?await navigator.clipboard.writeText(e.text).then(()=>mn.Copied,()=>mn.Failed):mn.Sent;return z.getState().recordSent({id:crypto.randomUUID(),text:t,outcome:r,file:n,attachments:e.attachments}),r}function Fr({label:t,options:i,value:o,onChange:s,disabledReason:c,className:l}){let u=c!==void 0,d=k();return/* @__PURE__ */ U(v,{role:`group`,"aria-label":t,className:zn(P(`inline-flex h-7 items-center gap-0.5 rounded-lg border border-white/20 bg-black/18 px-0.5`,l)),children:i.map(t=>{let i=t.value===o,l=t.icon?`rounded-2xl`:`rounded-md`;return/* @__PURE__ */ U(n,{label:t.label,keys:t.shortcut,disabledReason:c,children:/* @__PURE__ */ W(r,{type:`button`,"aria-pressed":i,"aria-label":t.icon?t.label:void 0,"aria-disabled":u||void 0,onClick:u?void 0:()=>s(t.value),className:P(`relative inline-flex shrink-0 items-center gap-1 px-[7px] text-[11.5px] text-white outline-none`,l,t.icon?`min-w-11 flex-col justify-center self-stretch`:`h-6`,u?`opacity-40`:`cursor-pointer`,i?`font-semibold`:t.icon?`font-normal`:`font-medium`,a.accentRing),children:[i&&/* @__PURE__ */ U(e,{layoutId:d,transition:V.snappy,className:P(`absolute inset-0 shadow-[inset_0_0_0_1px_#FFC14D]`,l,a.accentTint)}),t.icon&&/* @__PURE__ */ U(e,{className:`relative`,children:t.icon}),(i||!t.icon)&&/* @__PURE__ */ U(e,{className:`relative`,children:t.label})]})},t.value)})})}var Ir=se(null),Lr=32,Rr=240;function zr({label:e,value:t,onChange:r,placeholder:a,shortcut:o,onKeyDown:s,ref:c}){let l=le(Ir),u=G(),d=M(null),[f,p]=N(!1),m=k(),h=f||t!==``;function g(e){d.current=e,typeof c==`function`?c(e):c&&(c.current=e)}let _=/* @__PURE__ */ U(`label`,{htmlFor:m,"data-open":h,className:`contents`,children:/* @__PURE__ */ W(v,{initial:!1,animate:{width:h?Rr:Lr,backgroundColor:h?`rgba(255,255,255,0.14)`:`rgba(255,255,255,0)`,borderColor:f?i.accent:h?`rgba(255,255,255,0.3)`:`rgba(255,255,255,0)`},transition:u?{duration:0}:V.snappy,className:P(`flex h-8 max-w-full min-w-8 shrink items-center gap-1.5 overflow-hidden rounded-lg border px-2 text-xs text-white normal-case tracking-normal`,h?`cursor-text`:`cursor-pointer`),children:[/* @__PURE__ */ U(ct,{"aria-hidden":!0,className:`size-3.5 shrink-0`}),/* @__PURE__ */ U(n,{label:e,keys:o,children:/* @__PURE__ */ U(`input`,{ref:g,id:m,type:`text`,"aria-label":e,value:t,placeholder:h?a:void 0,onChange:e=>r(e.target.value),onKeyDown:s,onFocus:()=>p(!0),onBlur:()=>p(!1),className:P(`min-w-0 flex-1 bg-transparent outline-none placeholder:text-white/50`,!h&&`opacity-0`)})})]})});return l?ur(_,l):_}function Br({label:t,icon:n,onPress:i,expanded:s,hint:c,children:l,className:u}){let d=i&&/* @__PURE__ */ W(r,{type:`button`,"aria-expanded":s,onClick:i,className:P(`flex cursor-pointer items-center gap-2 rounded uppercase outline-none hover:text-white`,a.accentRing),children:[n,t]});return/* @__PURE__ */ W(v,{className:zn(P(`flex items-center justify-between gap-2 px-3.5 py-2.5 text-[11px] tracking-[0.06em] uppercase`,a.mutedText),u),children:[d?c?/* @__PURE__ */ U(o,{content:c,children:d}):d:/* @__PURE__ */ W(e,{className:`flex items-center gap-2`,children:[n,t]}),l]})}function Vr({title:t,icon:n,onClose:r,className:i,children:a}){let[o]=N(()=>{let e=document.createElement(`span`);return e.className=`flex min-w-0 flex-1 justify-end`,e}),s=r&&/* @__PURE__ */ U(q,{label:`Close ${t.toLowerCase()}`,onPress:r,children:/* @__PURE__ */ U(bt,{"aria-hidden":!0,className:`size-3.5`})});return/* @__PURE__ */ U(K,{className:zn(`flex h-full w-full flex-col`,i),children:typeof a==`function`?a(s):/* @__PURE__ */ W(Ir,{value:o,children:[/* @__PURE__ */ U(Br,{label:t,icon:n,children:/* @__PURE__ */ W(e,{className:`flex min-w-0 flex-1 items-center justify-end gap-1.5`,children:[/* @__PURE__ */ U(e,{ref:e=>{e?.appendChild(o)},className:`flex min-w-0 flex-1 justify-end`}),s]})}),a]})})}var Hr=[{value:Vn.Wide,label:`16:9`},{value:Vn.Tall,label:`9:16`}];function Ur(e,t){return`/${ar}/${Jn}/${e}/${t}`}async function Wr(e){let t=await fetch(Ur(e,`sheet.webp`)),n=await createImageBitmap(await t.blob()),r=document.createElement(`canvas`);return r.width=n.width,r.height=n.height,r.getContext(`2d`)?.drawImage(n,0,0),n.close(),r.toDataURL(`image/png`)}async function Gr({name:e,meta:t}){let n=await Nr(await Wr(e));await Pr({text:`A clip I recorded: ${Xn(t.durationMs)} of the game at ${t.width}x${t.height}, in .spawnite/clips/${e}/ (clip.mp4, sheet.webp, frames/, clip.json). Its contact sheet is attached. read_clip with name "${e}" returns its stills and the events in it; from and to, in seconds, narrow them.`,shots:n?[n]:[],attachments:[]},`Clip ${e}`)}function Kr({onClose:e,className:t}){let n=Xt(e=>e.shape),r=Xt(e=>e.state),i=Xt(e=>e.recording),o=Xt(e=>e.error),s=Xt(e=>e.finished),c=Xt(e=>e.supported),l=kr(),[u,d]=N([]),[f,p]=N(null),[m,h]=N(null),g=ue(async()=>{try{let e=await fetch(Yn);if(!e.ok)throw Error(`The dev server answered ${e.status}.`);d((await e.json()).clips),h(null)}catch(e){h(String(e))}},[]);O(()=>{g()},[g,s]);async function _(e){await fetch(`${Yn}/${e}`,{method:`DELETE`}),await g()}let y=i?`${Xn(l)} / ${Xn(i.maxSeconds*1e3)} · ${n}`:r===Pt.Stopping?`Finishing the clip…`:c===!0?`Record, or F9, records what the game draws.`:c;return/* @__PURE__ */ U(Vr,{title:`Clips`,icon:/* @__PURE__ */ U(we,{"aria-hidden":!0,className:`size-4`}),onClose:e,className:t,children:/* @__PURE__ */ W(v,{className:`flex min-h-0 flex-1 flex-col gap-2 overflow-auto px-2.5 pb-3 text-xs`,children:[/* @__PURE__ */ U(v,{role:`status`,className:a.mutedText,children:y}),(o??m)&&/* @__PURE__ */ U(v,{role:`alert`,className:`text-[#FF6B6B]`,children:o??m}),/* @__PURE__ */ U(Fr,{label:`Shape`,options:Hr,value:n,onChange:e=>Xt.getState().setShape(e),disabledReason:r===Pt.Idle?void 0:`Stop recording to change the shape`}),u.length===0?/* @__PURE__ */ U(v,{className:P(`py-6 text-center`,a.mutedText),children:`No clips yet.`}):/* @__PURE__ */ U(`ul`,{className:`flex flex-col gap-1.5`,children:u.map(e=>/* @__PURE__ */ U(qr,{clip:e,playing:f===e.name,onPlay:()=>p(f===e.name?null:e.name),onDelete:()=>void _(e.name)},e.name))})]})})}function qr({clip:t,playing:n,onPlay:r,onDelete:i}){let{name:o,meta:s}=t,c=nr(o);return/* @__PURE__ */ W(`li`,{"aria-label":`Clip ${c}`,className:P(`flex flex-col gap-1.5 rounded-lg p-1.5`,a.glassBorder),children:[/* @__PURE__ */ W(v,{className:`flex items-center gap-2`,children:[/* @__PURE__ */ U(`img`,{alt:``,src:Ur(o,s.frames[0]?.file??``),className:`h-9 w-16 shrink-0 rounded object-cover`}),/* @__PURE__ */ W(v,{className:`flex min-w-0 flex-1 flex-col`,children:[/* @__PURE__ */ U(e,{className:`font-semibold`,children:c}),/* @__PURE__ */ U(e,{className:a.mutedText,children:`${Xn(s.durationMs)} · ${Zn(s.bytes)} · ${s.shape}`})]}),/* @__PURE__ */ U(q,{label:`Play`,pressed:n,onPress:r,children:/* @__PURE__ */ U(tt,{"aria-hidden":!0,className:`size-3.5`})}),/* @__PURE__ */ U(q,{label:`Send to agent`,onPress:()=>void Gr(t),children:/* @__PURE__ */ U(lt,{"aria-hidden":!0,className:`size-3.5`})}),/* @__PURE__ */ U(q,{label:`Delete`,onPress:i,children:/* @__PURE__ */ U(ht,{"aria-hidden":!0,className:`size-3.5`})})]}),n&&/* @__PURE__ */ U(`video`,{controls:!0,autoPlay:!0,src:Ur(o,`clip.mp4`),className:`w-full rounded`})]})}function Jr({on:e,onToggle:t,phone:n}){let r=/* @__PURE__ */ U(We,{"aria-hidden":!0,className:n?`size-3.5`:`size-5`});return n?/* @__PURE__ */ U(q,{label:`Map camera`,pressed:e,onPress:t,children:r}):/* @__PURE__ */ U(hr,{label:`Map camera`,pressed:e,onPress:t,icon:r})}var Yr=`(max-width: 767px)`;function Xr(e){let t=window.matchMedia(Yr);return t.addEventListener(`change`,e),()=>t.removeEventListener(`change`,e)}function Zr(){return window.matchMedia(Yr).matches}function Qr(){return fe(Xr,Zr,()=>!1)}function $r({state:e,action:t}){return e===Bn.Busy&&t?`Agent: ${t}`:`Agent connected`}function ei({on:t,onToggle:n,agent:r}){let i=Qr(),a=i&&t,o=G(),s=r?.state===Bn.Busy&&!o,l=P(r&&`drop-shadow-[0_0_6px_rgb(124_227_139/0.8)]`,s&&`animate-pulse`);return/* @__PURE__ */ W(e,{className:`relative inline-flex`,children:[r&&/* @__PURE__ */ U(e,{"aria-hidden":!0,"data-agent-glow":!0,className:P(`pointer-events-none absolute inset-0 rounded-xl shadow-[0_0_12px_rgb(124_227_139/0.8)]`,s&&`animate-pulse`)}),/* @__PURE__ */ U(K,{pressable:!0,"data-agent":r?r.state:void 0,className:P(`rounded-xl`,r&&`ring-1 ring-[#7CE38B]/80`),children:/* @__PURE__ */ U(E,{label:`Spawnite`,hideLabel:!0,tone:c.Plain,icon:a?/* @__PURE__ */ U(bt,{"aria-hidden":!0,className:`size-4`}):i?/* @__PURE__ */ U(Dn,{className:P(`size-5`,l)}):/* @__PURE__ */ U(jn,{animated:!0,flips:!1,gemClassName:l,className:`text-[19px]`}),shortcut:Y(J.ToggleEditMode),detail:r?`Edit mode. ${$r(r)}`:`Edit mode`,pressed:t,onPress:n,className:`h-9 rounded-xl px-3.5`})})]})}function ti({on:e,onToggle:t}){let n=e?xe:Se;return/* @__PURE__ */ U(K,{pressable:!0,className:`rounded-xl`,children:/* @__PURE__ */ U(E,{label:`Toolbar`,hideLabel:!0,tone:c.Plain,pressed:e,onPress:t,className:`h-9 w-9 justify-center rounded-xl px-0`,icon:/* @__PURE__ */ U(n,{"aria-hidden":!0,className:`size-4`})})})}var ni=/* @__PURE__ */ function(e){return e.TreeItem=`treeitem`,e.MenuItem=`menuitem`,e.MenuItemRadio=`menuitemradio`,e.Option=`option`,e}({});function ri({id:t,role:n,label:r,leading:i,detail:s,trailing:c,depth:l=0,expanded:u,tabbable:d=!1,selected:f=!1,disabledReason:p,onPress:m,onHover:h,hint:g,className:_}){let y=p!==void 0,b=/* @__PURE__ */ W(v,{id:t,role:n,"aria-selected":n===`menuitem`||n===`menuitemradio`?void 0:f,"aria-checked":n===`menuitemradio`?f:void 0,"aria-expanded":u,"aria-level":n===`treeitem`?l+1:void 0,"aria-disabled":y||void 0,tabIndex:d?0:-1,onClick:y?void 0:m,onKeyDown:e=>{y||e.metaKey||e.ctrlKey||(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),m?.())},onPointerEnter:h,style:{paddingLeft:8+l*14},className:zn(P(`flex h-6 items-center gap-1.5 rounded-md pr-2 text-xs whitespace-nowrap text-white outline-none focus-visible:bg-white/8`,y?`opacity-40`:`cursor-pointer`,f?[a.accentTint,`shadow-[inset_2px_0_0_#FFC14D]`]:!y&&`hover:bg-white/8`),_),children:[i&&/* @__PURE__ */ U(e,{className:P(`inline-flex`,a.mutedText),children:i}),/* @__PURE__ */ U(e,{className:f?`font-semibold`:`font-medium`,children:r}),s&&/* @__PURE__ */ U(e,{className:P(`text-[11px]`,a.mutedText),children:s}),/* @__PURE__ */ W(e,{className:`ml-auto inline-flex items-center gap-1.5`,children:[p&&!g&&/* @__PURE__ */ U(e,{className:P(`text-[10.5px]`,a.mutedText),children:p}),c]})]});return g?/* @__PURE__ */ U(o,{content:p??g,children:b}):b}function ii({label:e,value:t,onChange:r,placeholder:i,icon:a,shortcut:o,ref:s,className:c,...l}){return/* @__PURE__ */ W(`label`,{className:zn(P(`flex h-7 items-center gap-1.5 rounded-lg border border-white/20 bg-black/22 px-2 text-xs text-white focus-within:border-[#FFC14D]`,c)),children:[a,/* @__PURE__ */ U(n,{label:e,keys:o,children:/* @__PURE__ */ U(`input`,{...l,ref:s,type:`text`,"aria-label":e,value:t,placeholder:i,onChange:e=>r(e.target.value),className:`min-w-0 flex-1 bg-transparent outline-none placeholder:text-white/50`})})]})}function ai({options:t,onAdd:n,onClose:r,className:i}){let[o,s]=N(``),[c,l]=N(0),u=M(null),d=k(),f=G(),p=o.trim().toLowerCase(),m=t.filter(({name:e})=>e.toLowerCase().includes(p)),h=Math.min(c,m.length-1);O(()=>u.current?.focus(),[]);function g(e){let t=m[e];t&&n(t.name)}function _(e){let t={ArrowDown:1,ArrowUp:-1}[e.key];if(e.key===`Escape`)r();else if(e.key===`Enter`)g(h);else if(t!==void 0&&m.length>0)l((h+t+m.length)%m.length);else if(!o&&/^[1-9]$/.test(e.key))g(Number(e.key)-1);else return;e.preventDefault()}return/* @__PURE__ */ U(v,{initial:!f&&{scale:.96},animate:{scale:1},transition:V.snappy,className:P(`w-56 origin-top-right`,i),children:/* @__PURE__ */ W(K,{className:`flex flex-col gap-1.5 rounded-xl p-1.5 text-xs`,children:[/* @__PURE__ */ U(ii,{ref:u,label:`Search behaviours`,icon:/* @__PURE__ */ U(ct,{"aria-hidden":!0,className:`size-3.5`}),value:o,onChange:e=>{s(e),l(0)},role:`combobox`,"aria-controls":d,"aria-expanded":!0,"aria-activedescendant":m.length>0?`${d}-${h}`:void 0,onKeyDown:_}),/* @__PURE__ */ U(v,{id:d,role:`listbox`,"aria-label":`Behaviours`,className:`flex flex-col gap-0.5`,children:m.map(({name:t,summary:r},i)=>/* @__PURE__ */ U(ri,{id:`${d}-${i}`,role:ni.Option,label:t,selected:i===h,trailing:/* @__PURE__ */ U(e,{className:P(`text-[11px]`,a.mutedText),children:r}),onPress:()=>n(t),onHover:()=>l(i)},t))})]})})}function oi({entityId:e,index:t}){return`#${e??t}`}function si(e){return`${e<0?`−`:``}${Math.abs(e).toFixed(1)}`}var ci=/* @__PURE__ */ function(e){return e.Plain=`plain`,e.Accent=`accent`,e}({}),li={plain:`text-white`,accent:`text-[#FFC14D]`};function ui({tone:t}){return/* @__PURE__ */ U(e,{"aria-hidden":!0,"data-spark":t,className:P(`inline-flex size-4 shrink-0`,li[t]),children:/* @__PURE__ */ W(`svg`,{viewBox:`0 0 128 128`,className:`size-full`,fill:`currentColor`,children:[/* @__PURE__ */ U(`path`,{fillRule:`evenodd`,clipRule:`evenodd`,d:`M81 36 64 0 47 36l-1 2-9-10a6 6 0 0 0-9 9l10 10h-2L0 64l36 17h2L28 91a6 6 0 1 0 9 9l9-10 1 2 17 36 17-36v-2l9 10a6 6 0 1 0 9-9l-9-9 2-1 36-17-36-17-2-1 9-9a6 6 0 1 0-9-9l-9 10v-2Zm-17 2-2 5c-4 8-11 15-19 19l-5 2 5 2c8 4 15 11 19 19l2 5 2-5c4-8 11-15 19-19l5-2-5-2c-8-4-15-11-19-19l-2-5Z`}),/* @__PURE__ */ U(`path`,{d:`M118 19a6 6 0 0 0-9-9l-3 3a6 6 0 1 0 9 9l3-3Zm-96 4c-2 2-6 2-9 0l-3-3a6 6 0 1 1 9-9l3 3c3 2 3 6 0 9Zm0 82c-2-2-6-2-9 0l-3 3a6 6 0 1 0 9 9l3-3c3-2 3-6 0-9Zm96 4a6 6 0 0 1-9 9l-3-3a6 6 0 1 1 9-9l3 3Z`})]})})}function di(e,t){let n={ArrowDown:1,ArrowUp:-1}[t];if(n===void 0)return!1;let r=Array.from(e?.querySelectorAll(`[role="menuitem"], [role="menuitemradio"]`)??[]);return r[(r.indexOf(document.activeElement)+n+r.length)%r.length]?.focus(),!0}var fi=/* @__PURE__ */ function(e){return e.SendToAgent=`sendToAgent`,e.Inspect=`inspect`,e.SelectParent=`selectParent`,e.FocusCamera=`focusCamera`,e.Hide=`hide`,e.Duplicate=`duplicate`,e.Delete=`delete`,e.AddBehaviour=`addBehaviour`,e.CopyId=`copyId`,e}({}),pi=`size-3.5`,mi=[{title:`Agent`,entries:[{action:`sendToAgent`,label:`Send to agent`,icon:/* @__PURE__ */ U(ui,{tone:ci.Accent}),shortcut:Y(J.SendToAgent)}]},{title:`Selection`,entries:[{action:`inspect`,label:`Inspect`,icon:/* @__PURE__ */ U(Ie,{className:pi}),shortcut:Y(J.Inspect)},{action:`selectParent`,label:`Select parent`,icon:/* @__PURE__ */ U(Oe,{className:pi}),shortcut:Y(J.SelectParent)},{action:`focusCamera`,label:`Focus camera`,icon:/* @__PURE__ */ U(ke,{className:pi}),shortcut:Y(J.FocusCamera)},{action:`hide`,label:`Hide`,icon:/* @__PURE__ */ U(Le,{className:pi}),shortcut:Y(J.Hide)}]},{title:`Edit`,entries:[{action:`duplicate`,label:`Duplicate`,icon:/* @__PURE__ */ U(De,{className:pi}),shortcut:Y(J.Duplicate)},{action:`delete`,label:`Delete`,icon:/* @__PURE__ */ U(ht,{className:pi}),shortcut:Y(J.Delete)},{action:`addBehaviour`,label:`Add behaviour`,icon:/* @__PURE__ */ U(nt,{className:pi}),shortcut:Y(J.AddBehaviour)}]},{title:`Copy`,entries:[{action:`copyId`,label:`Copy id`,icon:/* @__PURE__ */ U(Ve,{className:pi}),shortcut:Y(J.CopyId)}]}],hi=mi.flatMap(e=>e.entries),gi=/* @__PURE__ */ new Map([[`Enter`,`↵`],[`ArrowUp`,`↑`],[`Backspace`,`⌫`]]);function _i(e){let t=[e.metaKey||e.ctrlKey?`⌘`:``,e.altKey?`⌥`:``,e.shiftKey?`⇧`:``,gi.get(e.key)??e.key.toUpperCase()].join(``);return hi.find(({shortcut:e})=>e.join(``)===t)?.action}function vi({x:e,y:t,z:n}){return`x ${si(e)} z ${si(n)} height ${si(t)}`}function yi({name:t,entityId:n,type:r,point:i,disabled:o={},onAction:s,onClose:c,className:l}){let u=M(null),f=G();O(()=>{u.current?.querySelector(`[role="menuitem"]`)?.focus()},[]);function p(e){if(e.key===`Escape`){e.preventDefault(),c();return}let t=_i(e);if(t){e.preventDefault(),o[t]||s(t);return}di(u.current,e.key)&&e.preventDefault()}return/* @__PURE__ */ U(v,{initial:!f&&{scale:.96},animate:{scale:1},transition:V.snappy,className:P(`w-60 origin-top-left`,l),children:/* @__PURE__ */ W(K,{className:`rounded-xl text-xs`,children:[/* @__PURE__ */ W(v,{className:P(`flex items-center gap-1.5 border-b px-3 py-2.5`,a.divider),children:[/* @__PURE__ */ U(e,{className:`text-[13px] font-semibold`,children:t}),/* @__PURE__ */ U(e,{className:P(a.mono,a.mutedText),children:n}),/* @__PURE__ */ U(d,{tone:D.Accent,className:`ml-auto`,children:r})]}),i&&/* @__PURE__ */ U(`p`,{className:P(`border-b px-3 py-1.5 whitespace-pre-wrap`,a.divider,a.mono,a.mutedText),children:vi(i)}),/* @__PURE__ */ U(v,{ref:u,role:`menu`,"aria-label":`${t} ${n}`,tabIndex:-1,onKeyDown:p,className:`flex flex-col gap-0.5 p-1.5 outline-none`,children:mi.map(({title:e,entries:t},n)=>/* @__PURE__ */ W(v,{role:`group`,"aria-label":e,className:P(`flex flex-col gap-0.5`,n>0&&[`border-t pt-0.5`,a.divider]),children:[/* @__PURE__ */ U(Br,{label:e}),t.map(({action:e,label:t,icon:n,shortcut:r})=>/* @__PURE__ */ U(ri,{role:ni.MenuItem,label:t,leading:n,disabledReason:o[e],trailing:/* @__PURE__ */ W(H,{children:[/* @__PURE__ */ U(y,{keys:r}),e===`addBehaviour`&&/* @__PURE__ */ U(L,{"aria-hidden":!0,className:`size-3`})]}),onPress:()=>s(e)},e))]},e))})]})})}var bi={Space:` `,Esc:`Escape`,"↵":`Enter`,"⌫":`Backspace`,"↑":`ArrowUp`,"↓":`ArrowDown`,"←":`ArrowLeft`,"→":`ArrowRight`},xi=/* @__PURE__ */ new Set([`enter`,`z`]);function Si(e,t){let n=e.includes(`⌘`);if(n!==(t.metaKey||t.ctrlKey)||e.includes(`⌥`)!==t.altKey||(e.includes(`⇧`)?!t.shiftKey:n&&t.shiftKey))return!1;let r=e[e.length-1],i=bi[r]??r;if((!n||xi.has(i.toLowerCase()))&&i!==`Escape`&&Vt(t))return!1;let a=/^(\d)–(\d)$/.exec(i);return a?t.key.length===1&&t.key>=a[1]&&t.key<=a[2]:i.toLowerCase()===t.key.toLowerCase()}function X(e,t,{enabled:n=!0,repeat:r=!1,capture:i=!1}={}){O(()=>{if(!n)return;let{chords:a}=Dr(e);function o(e){e.key===`Escape`&&e.defaultPrevented||a.some(t=>Si(t,e))&&(e.preventDefault(),(!e.repeat||r)&&t(e))}return window.addEventListener(`keydown`,o,{capture:i}),()=>window.removeEventListener(`keydown`,o,{capture:i})},[e,t,n,r,i])}var Ci=`Add another beside this one`,wi=6;function Ti(e,t){O(()=>{if(!e)return;function n(e){let n=e.target;if(!(n instanceof HTMLCanvasElement))return;let{left:r,top:i,width:a,height:o}=n.getBoundingClientRect(),s=Kt((e.clientX-r)/a*2-1,1-(e.clientY-i)/o*2);s!==null&&(e.preventDefault(),t({...s,x:e.clientX,y:e.clientY}))}return window.addEventListener(`contextmenu`,n),()=>window.removeEventListener(`contextmenu`,n)},[e,t])}function Ei({anchor:{id:e,x:t,y:n,point:r},onSendToAgent:i,onClose:a}){let o=z(e=>e.tree),s=z(e=>e.hiddenIds),[c,l]=N(!1),u=M(null),d=M(null);A(()=>{let e=u.current;if(!e)return;let{innerWidth:r,innerHeight:i}=window,{width:a,height:o}=e.getBoundingClientRect(),s=Math.max(0,Math.min(t,r-a)),c=Math.max(0,Math.min(n,i-o));e.style.left=`${s}px`,e.style.top=`${c}px`;let l=d.current;if(!l)return;let f=l.getBoundingClientRect(),p=s+a+wi,m=p+f.width<=r?p:Math.max(0,s-wi-f.width);l.style.left=`${m}px`,l.style.top=`${Math.max(0,Math.min(c,i-f.height))}px`},[t,n,c]),O(()=>{function e(e){e.target instanceof Node&&u.current?.contains(e.target)||a()}return window.addEventListener(`pointerdown`,e),()=>window.removeEventListener(`pointerdown`,e)},[a]),X(J.Close,()=>c?l(!1):a(),{capture:!0});let f=_n(o,e),p=f?.at(-1);if(!p)return null;let m=z.getState(),h;try{h=m.readDisabledActions(e)}catch{return null}let g=s.includes(e),_=f?.at(-2)?.id;function y(t){switch(t){case fi.SendToAgent:i(e,``);break;case fi.Inspect:m.select(e);break;case fi.SelectParent:_!==void 0&&m.select(_);break;case fi.FocusCamera:m.focusCamera(e);break;case fi.Hide:g?m.show(e):m.hide(e);break;case fi.Duplicate:i(e,Ci);break;case fi.Delete:m.deleteEntity(e);break;case fi.AddBehaviour:l(!0);return;case fi.CopyId:navigator.clipboard.writeText(e).catch(e=>console.error(`The id did not reach the clipboard`,e))}a()}return/* @__PURE__ */ W(v,{ref:u,"data-devtools-escape":!0,className:`pointer-events-auto fixed z-20`,children:[/* @__PURE__ */ U(yi,{name:p.name,entityId:oi(p),type:p.kind,point:r,disabled:{[fi.FocusCamera]:h[ln.FocusCamera],[fi.Hide]:g?void 0:h[ln.Hide],[fi.Delete]:h[ln.Delete],[fi.AddBehaviour]:h[ln.AddBehaviour]},onAction:y,onClose:a}),c&&/* @__PURE__ */ U(v,{ref:d,className:`fixed z-20`,children:/* @__PURE__ */ U(ai,{options:m.behaviourOptions(e),onAdd:t=>{m.addBehaviour(e,t),a()},onClose:()=>l(!1)})})]})}var Di=[{tool:`sculpt`,label:`Sculpt`,detail:`Raises the ground; Ctrl lowers it and Shift smooths.`,icon:Ge},{tool:`smooth`,label:`Smooth`,detail:`Softens bumps: each point moves toward the average of its neighbours.`,icon:yt},{tool:`flatten`,label:`Flatten`,detail:`Pulls everything under the brush to one level: where the stroke starts, or the level picked.`,icon:Pe},{tool:`paint`,label:`Paint`,detail:`Lays the material under the brush; Alt and a click picks one.`,icon:Xe},{tool:`fill`,label:`Fill`,detail:`Lays the material over a dragged rectangle or a region.`,icon:Ye},{tool:`scatter`,label:`Scatter`,detail:`Paints how thick trees, bushes, rocks or grass grow: more, thin or erase.`,icon:_t}],Oi=/* @__PURE__ */ function(e){return e.SendToAgent=`sendToAgent`,e.PlayFromHere=`playFromHere`,e.PickMaterial=`pickMaterial`,e.RemoveScattered=`removeScattered`,e.PickHeight=`pickHeight`,e.ResetHere=`resetHere`,e.CopyPosition=`copyPosition`,e.DuplicateMaterial=`duplicateMaterial`,e.ToggleWet=`toggleWet`,e.ToggleLower=`toggleLower`,e.SetSea=`setSea`,e.Undo=`undo`,e.Redo=`redo`,e}({}),ki=`size-3.5`,Ai=(t,n,r,i,o,s,c)=>({main:[{action:`sendToAgent`,label:`Send to agent`,hint:`Ask your agent to change the ground here`,icon:/* @__PURE__ */ U(ui,{tone:ci.Accent})},{action:`playFromHere`,label:`Play from here`,hint:`Stand the player here, facing as the camera faces, and play`,icon:/* @__PURE__ */ U(tt,{className:ki}),disabledReason:o},{action:`pickMaterial`,label:`Pick material`,hint:`Paint and Fill lay the material under the cursor`,icon:/* @__PURE__ */ U(et,{className:ki})},...c===void 0?[]:[{action:`removeScattered`,label:`Remove this`,hint:`Erase this ${c} from the map; More over the spot grows it back`,icon:/* @__PURE__ */ U(Fe,{className:ki})}],{action:`undo`,label:`Undo`,hint:`Undo the last map edit`,icon:/* @__PURE__ */ U(vt,{className:ki}),trailing:/* @__PURE__ */ U(y,{keys:Y(J.Undo)}),disabledReason:r?void 0:`Nothing to undo`},{action:`redo`,label:`Redo`,hint:`Redo the map edit undone last`,icon:/* @__PURE__ */ U(rt,{className:ki}),trailing:/* @__PURE__ */ U(y,{keys:Y(J.Redo)}),disabledReason:i?void 0:`Nothing to redo`}],other:[...s===null?[]:[{action:`toggleLower`,label:`Lower`,hint:`Sculpt lowers the ground rather than raising it, below the base too; Ctrl flips it while held`,icon:/* @__PURE__ */ U(he,{className:ki}),trailing:/* @__PURE__ */ U(e,{className:a.mutedText,children:s?`On`:`Off`})}],{action:`toggleWet`,label:`Wet`,hint:`Rain ripples and a wet sheen on this material`,icon:/* @__PURE__ */ U(je,{className:ki}),trailing:/* @__PURE__ */ U(e,{className:a.mutedText,children:n?`On`:`Off`})},{action:`duplicateMaterial`,label:`Duplicate ${t}`,hint:`Copy ${t} as a new material you can refine on its own`,icon:/* @__PURE__ */ U(De,{className:ki})},{action:`pickHeight`,label:`Pick height`,hint:`Flatten levels to the height here`,icon:/* @__PURE__ */ U(Pe,{className:ki})},{action:`setSea`,label:`Set sea to here`,hint:`The map's sea rises or falls to the height here; the ground below it is under water`,icon:/* @__PURE__ */ U(ot,{className:ki})},{action:`resetHere`,label:`Reset to base here`,hint:`Hand the ground under the brush back to the map's base`,icon:/* @__PURE__ */ U(at,{className:ki})},{action:`copyPosition`,label:`Copy position`,hint:`Copy x, z and the height to the clipboard`,icon:/* @__PURE__ */ U(Te,{className:ki})}]});function ji({entries:e,onAction:t}){return e.map(({action:e,label:n,icon:r,trailing:i,disabledReason:a,hint:o})=>/* @__PURE__ */ U(ri,{role:ni.MenuItem,label:n,leading:r,trailing:i,disabledReason:a,hint:o,onPress:()=>t(e)},e))}function Mi(e,t){let n=0;for(let r=e;r instanceof HTMLElement&&r!==t;r=r.offsetParent)n+=r.offsetTop;return n}var Ni=6,Pi=120,Fi=[{mode:`select`,label:`Select`,detail:`The pointer picks entities, and their menu moves, turns and scales them.`,icon:/* @__PURE__ */ U(qe,{"aria-hidden":!0,className:`size-4`})},{mode:`terrain`,label:`Terrain`,detail:`The pointer sculpts and paints the ground with a terrain tool.`,icon:/* @__PURE__ */ U(Ke,{"aria-hidden":!0,className:`size-4`})}],{max:Ii}=Cn.radius,Li=[Ii/30,Ii/6,Ii/3,Ii/2],Ri=`h-8 justify-center px-0`,zi=e=>e?c.Accent:c.Neutral;function Bi({material:e,height:t,slope:n}){return`${e} · ${t.toFixed(1)} m · slope ${Math.round(n)}°`}function Vi({map:t,spot:n,material:r,wet:i,undoable:o,redoable:s,playFromHereDisabledReason:c,mode:l,tool:u,brush:d,lower:f,scattered:p,onMode:m,onTool:h,onBrush:g,onAction:_,onClose:y,defaultOtherOpen:b=!1,className:x}){let S=M(null),C=M(null),w=M(null),ee=M(null),[T,te]=N(b),ne=M(void 0),re=M(!1);O(()=>()=>window.clearTimeout(ne.current),[]);function D(e){return t=>{t.pointerType===`mouse`&&(window.clearTimeout(ne.current),ne.current=window.setTimeout(()=>{re.current=e,te(e)},Pi))}}function ie(){if(window.clearTimeout(ne.current),re.current&&T){re.current=!1;return}te(!T)}let ae=G(),{main:oe,other:se}=Ai(r,i,o,s,c,u===`sculpt`?f:null,p);O(()=>{(ee.current??C.current)?.querySelector(`[role="menuitem"]`)?.focus()},[]),A(()=>{let e=S.current,t=w.current,n=ee.current;if(!T||!e||!t||!n)return;let{left:r,right:i,top:a}=e.getBoundingClientRect(),{offsetWidth:o,offsetHeight:s}=n,c=Mi(t,e),l=Math.max(0,a+c+s-window.innerHeight),u=i+Ni+o<=window.innerWidth?e.offsetWidth+Ni:r-Ni-o>=0?-6-o:e.offsetWidth-o;n.style.left=`${u}px`,n.style.top=`${c-l}px`,n.style.transformOrigin=`${u>0?0:o}px ${l}px`,n.querySelector(`[role="menuitem"]`)?.focus()},[T]),O(()=>{if(!T)return;function e(e){e.target instanceof Node&&(ee.current?.contains(e.target)||w.current?.contains(e.target))||te(!1)}return window.addEventListener(`pointerdown`,e),()=>window.removeEventListener(`pointerdown`,e)},[T]);function ce(e){if(e.stopPropagation(),e.key===`Escape`){e.preventDefault(),te(!1),w.current?.querySelector(`[role="menuitem"]`)?.focus();return}di(ee.current,e.key)&&e.preventDefault()}function le(e){if(e.key===`Escape`){e.preventDefault(),y();return}di(C.current,e.key)&&e.preventDefault()}return/* @__PURE__ */ W(v,{ref:S,initial:!ae&&{scale:0},animate:{scale:1},transition:V.snappy,className:P(`relative w-60 origin-top-left`,x),children:[/* @__PURE__ */ W(K,{className:`rounded-xl text-xs`,children:[/* @__PURE__ */ W(v,{className:P(`flex flex-col gap-0.5 border-b px-3 py-2.5`,a.divider),children:[/* @__PURE__ */ W(v,{className:`flex items-center gap-1.5`,children:[/* @__PURE__ */ U(e,{className:`text-[13px] font-semibold`,children:`Ground`}),/* @__PURE__ */ U(e,{className:P(a.mono,a.mutedText),children:t})]}),/* @__PURE__ */ U(e,{className:a.mutedText,children:Bi(n)})]}),/* @__PURE__ */ W(v,{ref:C,role:`menu`,"aria-label":`Ground of ${t}`,tabIndex:-1,onKeyDown:le,className:`flex flex-col gap-0.5 p-1.5 outline-none`,children:[/* @__PURE__ */ W(v,{className:`flex flex-col gap-2.5`,children:[/* @__PURE__ */ U(v,{role:`group`,"aria-label":`Mode`,className:`grid grid-cols-2 gap-1`,children:Fi.map(e=>/* @__PURE__ */ U(E,{menuItem:!0,label:e.label,hideLabel:!0,detail:e.detail,tone:zi(l===e.mode),icon:e.icon,pressed:l===e.mode,className:Ri,onPress:()=>m(e.mode)},e.mode))}),l===`terrain`&&/* @__PURE__ */ U(H,{children:/* @__PURE__ */ U(v,{role:`group`,"aria-label":`Terrain tools`,className:`grid grid-cols-6 gap-1`,children:Di.map(e=>/* @__PURE__ */ U(E,{menuItem:!0,label:e.label,hideLabel:!0,detail:e.detail,tone:zi(u===e.tool),icon:/* @__PURE__ */ U(e.icon,{"aria-hidden":!0,className:`size-4`}),pressed:u===e.tool,className:Ri,onPress:()=>h(e.tool)},e.tool))})}),l===`terrain`&&u!==null&&/* @__PURE__ */ U(H,{children:/* @__PURE__ */ U(v,{role:`group`,"aria-label":`Brush`,className:`grid grid-cols-4 gap-1`,children:Li.map(e=>/* @__PURE__ */ U(E,{menuItem:!0,label:`${e} m`,detail:`Set the brush size to ${e} m`,tone:zi(d.radius===e),pressed:d.radius===e,className:P(Ri,`text-[11px]`),onPress:()=>g({radius:e})},e))})})]}),/* @__PURE__ */ U(v,{role:`separator`,className:P(`my-1 border-t`,a.divider)}),/* @__PURE__ */ U(ji,{entries:oe,onAction:_}),/* @__PURE__ */ U(v,{ref:w,onPointerEnter:D(!0),onPointerLeave:D(!1),children:/* @__PURE__ */ U(ri,{role:ni.MenuItem,label:`Other`,leading:/* @__PURE__ */ U(Ne,{className:ki}),trailing:/* @__PURE__ */ U(L,{"aria-hidden":!0,className:`size-3`}),expanded:T,hint:`${u===`sculpt`?`Lower, `:``}Wet, Duplicate, Pick height, Set sea to here, Reset here and Copy position`,onPress:ie})})]})]}),/* @__PURE__ */ U(Pn,{children:T&&/* @__PURE__ */ U(v,{ref:ee,role:`menu`,"aria-label":`Other`,tabIndex:-1,onKeyDown:ce,onPointerEnter:D(!0),onPointerLeave:D(!1),initial:!ae&&{scale:0},animate:{scale:1},exit:ae?void 0:{scale:0},transition:V.snappy,className:`absolute top-0 left-0 w-56 outline-none`,children:/* @__PURE__ */ U(K,{className:`flex flex-col gap-0.5 rounded-xl p-1.5 text-xs`,children:/* @__PURE__ */ U(ji,{entries:se,onAction:_})})})})]})}var Hi={[Un.Box]:/* @__PURE__ */ U(_e,{"aria-hidden":!0,className:`size-8`}),[Un.Sphere]:/* @__PURE__ */ U(Ce,{"aria-hidden":!0,className:`size-8`}),[Un.Cylinder]:/* @__PURE__ */ U(Ae,{"aria-hidden":!0,className:`size-8`}),[Un.Plane]:/* @__PURE__ */ U(dt,{"aria-hidden":!0,className:`size-8`})};function Ui(e,t){let[n,r]=N(!1),[i,a]=N();return O(()=>{if(!t||n)return;if(typeof IntersectionObserver>`u`){r(!0);return}let e=new IntersectionObserver(([e])=>{e.isIntersecting&&r(!0)});return e.observe(t),()=>e.disconnect()},[t,n]),O(()=>{if(!n||!e)return;let t=!1;return bn(e).then(e=>{t||a(e)}).catch(()=>void 0),()=>{t=!0}},[n,e]),i}function Wi(e){return e.replace(/([a-z])([A-Z])/g,`$1 $2`).replaceAll(/[-_]/g,` `).toLowerCase()}function Gi({placeable:t,held:n=!1,onPress:i}){let{kind:s,name:c,url:l,height:u,count:d}=t,[f,p]=N(null),m=Ui(l,f),h=j(()=>s===dn.Model?yn(c):void 0,[s,c]),g=s===dn.Shape,_=s!==dn.Avatar,v=i!==void 0&&(_||d>0),y=Wi(c),b=n?`In hand: click the ground to place, Esc puts it down`:_?g||d===0?`Press, then click the ground to place`:`${d} in the map: press to select them and place more`:d===0?`None stands in the map`:`${d} in the map, press to select`,x=_?()=>B.getState().preloadCard(t):void 0;function S(e){v&&i(e.shiftKey||e.metaKey||e.ctrlKey)}return/* @__PURE__ */ U(o,{content:b,children:/* @__PURE__ */ W(r,{ref:p,type:`button`,"aria-label":g?y:`${y}, ${d} in the map`,"aria-disabled":!v,"aria-pressed":_?n:void 0,onClick:S,onPointerEnter:x,onFocus:x,className:P(`flex w-full flex-col gap-1 rounded-[10px] border p-1.5 text-left text-white outline-none`,a.accentRing,n?[a.accentBorder,a.accentTint]:`border-white/14 bg-black/25`,v?n?`cursor-pointer`:`cursor-pointer hover:border-white/30 hover:bg-white/8`:`cursor-default`),children:[/* @__PURE__ */ U(e,{className:`flex aspect-square w-full items-center justify-center overflow-hidden rounded-md bg-white/6`,children:m?/* @__PURE__ */ U(`img`,{src:m,alt:``,className:`size-full object-contain`}):h?/* @__PURE__ */ U(`svg`,{"aria-hidden":!0,viewBox:`0 0 1 1`,className:`size-3/4 fill-white/30`,children:/* @__PURE__ */ U(`polygon`,{points:h.map(([e,t])=>`${e},${t}`).join(` `)})}):/* @__PURE__ */ U(e,{className:`text-white/40`,children:Hi[c]??/* @__PURE__ */ U(_e,{"aria-hidden":!0,className:`size-8`})})}),/* @__PURE__ */ U(e,{className:`truncate text-[11px] leading-tight`,children:y}),/* @__PURE__ */ W(e,{className:P(`flex items-center justify-between text-[10px]`,a.mono,a.mutedText),children:[/* @__PURE__ */ U(e,{children:u===void 0?``:`${u.toFixed(1)} m`}),!g&&/* @__PURE__ */ W(e,{className:d>0?`text-white`:``,children:[`×`,d]})]})]})})}var Ki=4;function qi(e,t,n){O(()=>{if(!e)return;let r=null;function i(e){let n=e.target;if(!(n instanceof HTMLCanvasElement))return null;let{left:r,top:i,width:a,height:o}=n.getBoundingClientRect(),s=(e.clientX-r)/a*2-1,c=1-(e.clientY-i)/o*2;return t&&Kt(s,c)!==null?null:Wt(s,c)}function a(e){r=e.button===2?{x:e.clientX,y:e.clientY}:null}function o(e){if(e.button!==2||!r)return;let t=Math.hypot(e.clientX-r.x,e.clientY-r.y);if(r=null,t>Ki)return;let a=i(e);a&&n({x:e.clientX,y:e.clientY,spot:a})}function s(e){i(e)&&e.preventDefault()}return window.addEventListener(`pointerdown`,a,!0),window.addEventListener(`pointerup`,o,!0),window.addEventListener(`contextmenu`,s),()=>{window.removeEventListener(`pointerdown`,a,!0),window.removeEventListener(`pointerup`,o,!0),window.removeEventListener(`contextmenu`,s)}},[e,t,n])}var Ji=({x:e,z:t,height:n})=>[e,t,n].map(e=>e.toFixed(2)).join(`, `);function Yi({anchor:{x:e,y:t,spot:n},onSendToAgent:r,onClose:i}){let a=M(null),o=B(e=>e.mode),s=B(e=>e.tool),c=B(e=>e.brush),l=B(e=>e.lower),u=B(e=>e.undoSteps.length>0),d=B(e=>e.redoSteps.length>0),{cellMaterial:f,map:p}=n,{wet:m}=B.getState().readMaterialLook(p,f);A(()=>{let n=a.current;if(!n)return;let{width:r,height:i}=n.getBoundingClientRect();n.style.left=`${Math.max(0,Math.min(e,window.innerWidth-r))}px`,n.style.top=`${Math.max(0,Math.min(t,window.innerHeight-i))}px`},[e,t]),O(()=>{function e(e){e.target instanceof Node&&a.current?.contains(e.target)||i()}return window.addEventListener(`pointerdown`,e),()=>window.removeEventListener(`pointerdown`,e)},[i]);function h(e){let t=B.getState();switch(e){case Oi.SendToAgent:r(n);break;case Oi.PlayFromHere:z.getState().playFromHere([n.x,n.height,n.z]);break;case Oi.PickMaterial:t.setMaterial(n.cellMaterial);break;case Oi.RemoveScattered:n.scattered&&t.removeScattered(n.scattered);break;case Oi.PickHeight:t.setLevel(n.height);break;case Oi.SetSea:t.setSea(n.map,n.height);break;case Oi.ResetHere:t.resetHere(n.map,n.surface,[n.x,n.z]);break;case Oi.DuplicateMaterial:t.duplicateMaterial(p,f);break;case Oi.ToggleLower:t.setLower(!l);break;case Oi.ToggleWet:t.refineMaterial(p,f,{wet:!m});break;case Oi.Undo:t.undo();break;case Oi.Redo:t.redo();break;case Oi.CopyPosition:navigator.clipboard.writeText(Ji(n)).catch(e=>console.error(`The position did not reach the clipboard`,e))}i()}return/* @__PURE__ */ U(v,{ref:a,"data-devtools-escape":!0,className:`pointer-events-auto fixed z-20`,children:/* @__PURE__ */ U(Vi,{map:p,spot:n,material:f,wet:m,undoable:u,redoable:d,playFromHereDisabledReason:z.getState().readPlayFromHereReason(),mode:o,tool:s,brush:c,lower:l,...n.scattered&&{scattered:Wi(n.scattered.kind)},onMode:e=>{B.getState().setMode(e),e!==`terrain`&&i()},onTool:e=>{B.getState().holdTool(e),i()},onBrush:e=>{B.getState().setBrush(e),i()},onAction:h,onClose:()=>{B.getState().holdTool(null),i()}})})}function Xi(e){return e.flatMap(e=>[...e.entityId===void 0?[]:[e],...Xi(e.children)])}function Zi(e,t){return(t.component===void 0||t.component===e.name)&&e.children.some(e=>t.kind===Hn.Stat?e.stats:e.kind===R.Behaviour&&e.name===t.behaviour)}function Qi(e,t){let n=Xi(e),r=/* @__PURE__ */ new Map,i=(e,t)=>{let n=r.get(e)??{name:e,favorites:[],entities:[]};return n.favorites.includes(t)||n.favorites.push(t),r.set(e,n),n};for(let e of t){if(e.kind===Hn.World)continue;let t=n.filter(t=>Zi(t,e));t.length===0&&i(e.component??e.behaviour??``,e);for(let n of t){let t=i(n.name,e);t.entities.includes(n)||t.entities.push(n)}}for(let e of r.values())e.entities.sort((e,t)=>n.indexOf(e)-n.indexOf(t));return[...r.values()]}function $i(){let{worldName:e,gravity:t,hour:n,dayLengthSeconds:r,clockReadOnlyReason:i,setGravity:a,setHour:o,setDayLength:s}=an(),c={gravity:a,hour:o,dayLength:s},l=[];return t!==void 0&&l.push({kind:g.Number,name:`gravity`,value:t,min:0,max:30,step:.1}),n!==void 0&&r!==void 0&&l.push({kind:g.Number,name:`hour`,value:Math.round(n*10)/10,min:0,max:24,step:.1,readOnlyReason:i},{kind:g.Number,name:`dayLength`,value:r,min:10,max:3600,step:10,readOnlyReason:i}),{name:e??`World`,props:l,write:(e,t)=>{typeof t==`number`&&c[e]?.(t)}}}function ea(e){if(typeof e==`function`)return`function`;try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function ta({icon:t,title:n,detail:r,actions:i,children:o}){return/* @__PURE__ */ W(v,{className:P(`flex flex-col gap-1 border-b px-3 pt-2.5 pb-2`,a.divider),children:[/* @__PURE__ */ W(v,{className:`flex items-center gap-2`,children:[t,/* @__PURE__ */ U(e,{className:`text-base font-semibold`,children:n}),r&&/* @__PURE__ */ U(e,{className:a.mutedText,children:r}),i&&/* @__PURE__ */ U(e,{className:`ml-auto inline-flex items-center gap-1.5`,children:i})]}),o]})}var na=`inline-flex items-baseline gap-1`;function Z({value:t,unit:n,outlined:r}){let i=/* @__PURE__ */ W(H,{children:[/* @__PURE__ */ U(e,{className:P(`font-semibold`,a.mono),children:t}),/* @__PURE__ */ U(e,{className:a.mutedText,children:n})]});return r?/* @__PURE__ */ U(An,{size:`xs`,className:na,children:i}):/* @__PURE__ */ U(e,{className:na,children:i})}var ra=e=>`${e.toFixed(1)} m`;function ia(e){let t=Object.entries(e).map(([e,t])=>`${e} ${t}`);return t.length>0?t.join(`, `):`free`}function aa({state:e,castSecondsLeft:t}){return e===xt.Casting&&t!==null?`casting ${t.toFixed(1)} s`:e}function oa({name:t,children:n}){return/* @__PURE__ */ W(e,{className:`inline-flex items-baseline gap-1`,children:[/* @__PURE__ */ U(e,{className:a.mutedText,children:t}),/* @__PURE__ */ U(e,{className:a.mono,children:n})]})}function sa({name:t,children:n}){return/* @__PURE__ */ U(re,{name:t,middle:/* @__PURE__ */ U(e,{className:P(`col-span-2 flex items-center justify-end gap-1.5 truncate text-right`,a.mono),children:n})})}function ca({inspection:n,selected:i,onSelect:o,rings:c,onRingsChange:l,className:u}){let{target:d,abilities:f,unregistered:p,refused:m}=n,_=f.find(({name:e})=>e===i)?.inRange;return/* @__PURE__ */ W(`section`,{"aria-label":`Abilities`,className:P(h,u),children:[/* @__PURE__ */ U(x,{prop:{kind:g.Toggle,name:`Range rings`,value:c},onChange:(e,t)=>{typeof t==`boolean`&&l(t)}}),d?/* @__PURE__ */ W(H,{children:[/* @__PURE__ */ U(sa,{name:`Target`,children:d.key}),/* @__PURE__ */ U(sa,{name:`Reach`,children:ra(d.reach)}),_!=null&&/* @__PURE__ */ W(sa,{name:`Range`,children:[/* @__PURE__ */ U(s,{tone:_?t.Live:t.Error}),_?`In range`:`Out of range`]}),/* @__PURE__ */ W(sa,{name:`Sight`,children:[/* @__PURE__ */ U(s,{tone:d.inSight?t.Live:t.Error}),d.inSight?`In sight`:`Blocked`]})]}):/* @__PURE__ */ U(sa,{name:`Target`,children:`No target`}),/* @__PURE__ */ U(sa,{name:`Last refusal`,children:m?.text??`None yet`}),p.length>0&&/* @__PURE__ */ U(sa,{name:`Unregistered`,children:p.join(`, `)}),/* @__PURE__ */ U(v,{className:`mt-1 flex flex-col gap-1`,children:f.map(t=>/* @__PURE__ */ W(r,{type:`button`,"aria-pressed":t.name===i,onClick:()=>o(t.name),className:P(`flex cursor-pointer flex-col gap-0.5 rounded-lg border px-2 py-1.5 text-left outline-none`,a.accentRing,t.name===i?[a.accentBorder,a.accentTint]:`border-white/20 bg-white/4`),children:[/* @__PURE__ */ W(e,{className:`flex items-baseline justify-between gap-2`,children:[/* @__PURE__ */ U(e,{className:`font-semibold`,children:t.label}),/* @__PURE__ */ U(e,{className:P(a.mutedText),children:t.kind===St.Area?`area`:t.kind})]}),/* @__PURE__ */ W(e,{className:`flex flex-wrap gap-x-3 gap-y-0.5`,children:[/* @__PURE__ */ U(oa,{name:t.kind===St.Area?`radius`:`range`,children:`${t.range} m`}),/* @__PURE__ */ U(oa,{name:`cost`,children:ia(t.cost)}),/* @__PURE__ */ U(oa,{name:`cooldown`,children:`${t.cooldownLeft.toFixed(1)} s`}),/* @__PURE__ */ U(oa,{name:`state`,children:aa(t)})]})]},t.name))})]})}function la(e){let t=e.replace(/([a-z\d])([A-Z])/g,`$1 $2`).toLowerCase();return t.charAt(0).toUpperCase()+t.slice(1)}function ua(e){return typeof e==`number`?Number.isInteger(e)?String(e):si(e):Array.isArray(e)&&e.every(e=>typeof e==`number`)?e.map(si).join(`, `):typeof e==`string`?e:ea(e)}var da=P(a.control,`col-span-2 h-[22px] w-full rounded-[5px] bg-black/28 px-1.5`);function fa({label:e,value:t,options:n,onChange:r}){return/* @__PURE__ */ U(re,{name:e,middle:/* @__PURE__ */ U(On,{label:e,options:n.map((e,t)=>({value:String(t),label:String(e)})),value:String(n.indexOf(t)),onChange:e=>r(n[Number(e)]),className:da})})}function pa({label:t,entry:n}){switch(n.kind){case It.Readout:return/* @__PURE__ */ U(re,{name:t,middle:/* @__PURE__ */ U(e,{className:P(`col-span-2 truncate text-right`,a.mono),children:ua(n.value)})});case It.Number:{let{value:e,min:r,max:i,step:a,options:o,onChange:s}=n.field;return o?/* @__PURE__ */ U(fa,{label:t,value:e,options:o,onChange:s}):/* @__PURE__ */ U(x,{prop:{kind:g.Number,name:t,value:e,min:r,max:i,step:a},onChange:(e,t)=>{typeof t==`number`&&s(t)}})}case It.Toggle:{let{value:e,onChange:r}=n.field;return/* @__PURE__ */ U(x,{prop:{kind:g.Toggle,name:t,value:e},onChange:(e,t)=>{typeof t==`boolean`&&r(t)}})}case It.Text:{let{value:e,options:r,onChange:i}=n.field;return r?/* @__PURE__ */ U(fa,{label:t,value:e,options:r,onChange:i}):/* @__PURE__ */ U(x,{prop:{kind:g.Text,name:t,value:e},onChange:(e,t)=>{typeof t==`string`&&i(t)}})}case It.Button:return/* @__PURE__ */ U(v,{className:`flex`,children:/* @__PURE__ */ U(E,{label:t,tone:c.Neutral,onPress:n.onPress})});case It.Custom:return/* @__PURE__ */ U(v,{children:n.element})}}function ma({name:t,schema:n,className:r}){return/* @__PURE__ */ W(`section`,{"aria-label":t,className:P(h,r),children:[/* @__PURE__ */ U(e,{className:P(`text-[12.5px] font-semibold`,a.mono),children:t}),Object.entries(n).map(([e,t])=>/* @__PURE__ */ U(pa,{label:la(e),entry:Jt(t)},e))]})}var ha=P(a.control,`w-full min-w-0`,a.mono);function ga({prop:t,position:n,onMakeEditable:r,onMove:i,onDelete:o,className:s}){if(t===null)return/* @__PURE__ */ U(E,{label:`Make editable`,detail:`Makes it a prop of the map, to move or delete; the seeded one is erased.`,tone:c.Neutral,icon:/* @__PURE__ */ U(gt,{"aria-hidden":!0,className:`size-4`}),onPress:r,className:s});let[l,u]=n,d=e=>t=>{let n=Number(t);t.trim()!==``&&Number.isFinite(n)&&i(e===0?[n,u]:[l,n])};return/* @__PURE__ */ W(v,{role:`group`,"aria-label":`The prop ${t}`,className:P(`grid grid-cols-[auto_1fr_auto_1fr_auto] items-center gap-2 text-xs`,s),children:[/* @__PURE__ */ U(e,{className:a.mutedText,children:`x`}),/* @__PURE__ */ U(ie,{label:`x`,inputMode:`decimal`,value:l,onCommit:d(0),className:ha}),/* @__PURE__ */ U(e,{className:a.mutedText,children:`z`}),/* @__PURE__ */ U(ie,{label:`z`,inputMode:`decimal`,value:u,onCommit:d(1),className:ha}),/* @__PURE__ */ U(E,{label:`Delete`,hideLabel:!0,detail:`Takes ${t} out of the map`,tone:c.Neutral,icon:/* @__PURE__ */ U(ht,{"aria-hidden":!0,className:`size-4`}),onPress:o,className:`h-7 justify-center px-2`})]})}function _a(e){return String(Number(e.toFixed(4)))}function va(e,t=``){return`${e<0?`−`:`+`}${_a(Math.abs(e))}${t}`}function ya({flat:e,percent:t,more:n}){return[e!==void 0&&va(e),t!==void 0&&va(t*100,`%`),n!==void 0&&`×${_a(1+n)}`].filter(Boolean).join(` `)}function ba({stats:t,onChange:n,description:r,docsHref:i,changed:o=!1,copyText:s,readOnlyReason:c,favorite:l,className:u}){return/* @__PURE__ */ U(w,{name:`Stats`,description:r,docsHref:i,changed:o,copyText:s,props:t.map(({name:e,base:t,range:n})=>({kind:g.Number,name:e,value:t,...n,open:!0})),onChange:(e,t)=>n(e,Number(t)),readOnlyReason:c,favorite:l,className:u,children:t.filter(({base:e,value:t,modifiers:n})=>n.length>0||t!==e).map(({name:t,value:n,modifiers:r})=>/* @__PURE__ */ W(v,{role:`group`,"aria-label":t,className:`flex flex-wrap items-center gap-1.5 py-0.5`,children:[/* @__PURE__ */ U(e,{className:a.mono,children:t}),/* @__PURE__ */ W(e,{className:P(`font-semibold`,a.mono),children:[`= `,_a(n)]}),r.map((t,n)=>/* @__PURE__ */ W(d,{tone:D.Neutral,children:[/* @__PURE__ */ U(e,{children:t.source}),/* @__PURE__ */ U(e,{className:a.mono,children:ya(t)}),t.seconds!==void 0&&/* @__PURE__ */ W(e,{className:a.mutedText,children:[t.seconds.toFixed(1),` s`]})]},n))]},t))})}var xa=[`x`,`y`,`z`];function Sa({entity:e,onChange:t,onStatChange:n,component:r,className:i}){return/* @__PURE__ */ W(v,{className:P(`flex flex-col gap-1.5`,i),children:[e.behaviours.map(({id:e,...n})=>/* @__PURE__ */ U(w,{...n,onChange:(n,r)=>t({id:e,name:n,value:r}),favorite:r===void 0||n.readOnlyReason!==void 0?void 0:e=>({kind:Hn.Behaviour,component:r,behaviour:n.name,field:e})},e)),e.stats&&/* @__PURE__ */ U(ba,{...e.stats,onChange:n,favorite:r===void 0||e.stats.readOnlyReason!==void 0?void 0:e=>({kind:Hn.Stat,component:r,field:e})},e.entityId),e.machines?.map(e=>/* @__PURE__ */ U(w,{changed:!1,...e,onChange:()=>void 0},e.name))]})}function Ca({entity:t,presets:n,preset:r,onChange:i,onStatChange:o,onSendToAgent:s,onSelectEntity:l,onPreset:u,onSavePreset:f,onDeletePreset:p,onScatter:m,close:h}){return t?/* @__PURE__ */ W(v,{className:`flex min-h-0 flex-1 flex-col text-xs`,children:[/* @__PURE__ */ W(v,{className:`min-h-0 flex-1 overflow-auto pb-2`,children:[/* @__PURE__ */ U(ta,{title:t.name,detail:t.entityId!==void 0&&/* @__PURE__ */ U(e,{className:P(`text-base font-medium`,a.mono),children:t.entityId}),actions:/* @__PURE__ */ W(H,{children:[t.type&&/* @__PURE__ */ U(d,{tone:D.Accent,children:t.type}),t.entityId!==void 0&&/* @__PURE__ */ U(E,{label:`Agent`,tone:c.Accent,icon:/* @__PURE__ */ U(lt,{"aria-hidden":!0,className:`size-3.5`}),shortcut:Y(J.SendToAgent),onPress:s}),h]}),children:/* @__PURE__ */ W(`dl`,{className:`grid grid-cols-[52px_minmax(0,1fr)] gap-x-2 gap-y-0.5 text-[11.5px]`,children:[t.model&&/* @__PURE__ */ W(H,{children:[/* @__PURE__ */ U(`dt`,{className:a.mutedText,children:`model`}),/* @__PURE__ */ U(`dd`,{className:a.mono,children:t.model})]}),t.position&&/* @__PURE__ */ W(H,{children:[/* @__PURE__ */ U(`dt`,{className:a.mutedText,children:`position`}),/* @__PURE__ */ U(`dd`,{className:P(`flex gap-3`,a.mono),children:t.position.map((t,n)=>/* @__PURE__ */ W(e,{className:`flex gap-1`,children:[/* @__PURE__ */ U(e,{className:a.mutedText,children:xa[n]}),/* @__PURE__ */ U(e,{children:si(t)})]},xa[n]))})]})]})}),t.readOnlyCard?/* @__PURE__ */ W(H,{children:[/* @__PURE__ */ U(w,{changed:!1,...t.readOnlyCard,onChange:()=>void 0,className:`mx-2.5 mt-2`}),t.scatter&&m&&/* @__PURE__ */ U(ga,{...t.scatter,...m,className:`mx-2.5 mt-2`})]}):t.entityId===void 0?null:/* @__PURE__ */ W(H,{children:[t.panel&&/* @__PURE__ */ U(ma,{...t.panel,className:`mx-2.5 mt-2`}),/* @__PURE__ */ U(Br,{label:`Behaviours`,children:/* @__PURE__ */ U(Z,{value:t.behaviours.length+Number(t.stats!==void 0),unit:`attached`})}),/* @__PURE__ */ U(Sa,{entity:t,onChange:i,onStatChange:o,component:t.name,className:`px-2.5`})]}),t.abilities&&t.entityId!==void 0&&/* @__PURE__ */ W(H,{children:[/* @__PURE__ */ U(Br,{label:`Abilities`,children:/* @__PURE__ */ U(Z,{value:t.abilities.inspection.abilities.length,unit:`held`})}),/* @__PURE__ */ U(ca,{...t.abilities,className:`mx-2.5`})]}),t.systems.length>0&&/* @__PURE__ */ W(H,{children:[/* @__PURE__ */ U(Br,{label:`Systems`,children:`loop order`}),/* @__PURE__ */ U(`ol`,{"aria-label":`Systems`,className:`grid grid-cols-[16px_88px_1fr] gap-x-3 gap-y-1 px-3`,children:[...t.systems].sort((e,t)=>e.order-t.order).map(({order:t,name:n,note:r})=>/* @__PURE__ */ W(`li`,{className:`col-span-3 grid grid-cols-subgrid`,children:[/* @__PURE__ */ U(e,{className:P(a.mono,a.mutedText),children:t}),/* @__PURE__ */ U(e,{className:a.mono,children:n}),/* @__PURE__ */ U(e,{className:a.mutedText,children:r})]},n))})]}),t.relations.length>0&&/* @__PURE__ */ W(H,{children:[/* @__PURE__ */ U(Br,{label:`Relations`}),/* @__PURE__ */ U(`dl`,{className:`grid grid-cols-[auto_1fr] items-center gap-x-3 gap-y-1.5 px-3`,children:t.relations.map(({label:t,entities:n})=>/* @__PURE__ */ W(v,{className:`contents`,children:[/* @__PURE__ */ U(`dt`,{className:a.mutedText,children:t}),/* @__PURE__ */ U(`dd`,{className:`flex flex-wrap gap-1.5`,children:n.map(({id:t,name:n,detail:r})=>/* @__PURE__ */ W(d,{tone:D.Neutral,onPress:()=>l(t),children:[n,r&&/* @__PURE__ */ U(e,{className:a.mutedText,children:r})]},t))})]},t))})]})]}),t.behaviours.length>0&&/* @__PURE__ */ W(v,{className:P(`flex items-center gap-1.5 border-t px-3 py-2`,a.divider),children:[/* @__PURE__ */ U(e,{className:P(`text-[11px] tracking-[0.06em] uppercase`,a.mutedText),children:`Preset`}),/* @__PURE__ */ U(On,{label:`Preset`,options:n,value:r,onChange:u,placeholder:`Select preset`,className:P(a.control,`font-semibold`)}),/* @__PURE__ */ U(E,{label:`Save`,tone:c.Neutral,icon:/* @__PURE__ */ U(st,{"aria-hidden":!0,className:`size-3.5`}),shortcut:Y(J.SavePreset),onPress:f,className:`ml-auto`}),/* @__PURE__ */ U(E,{label:`Delete`,tone:c.Neutral,icon:/* @__PURE__ */ U(ht,{"aria-hidden":!0,className:`size-3.5`}),onPress:p})]})]}):/* @__PURE__ */ W(v,{className:`relative flex flex-1 flex-col items-center justify-center gap-1.5 text-xs`,children:[h&&/* @__PURE__ */ U(e,{className:`absolute top-2.5 right-3`,children:h}),/* @__PURE__ */ U(`p`,{className:`text-[13px] font-semibold`,children:`Nothing selected`}),/* @__PURE__ */ U(`p`,{className:a.mutedText,children:`Click an entity in the scene or the tree.`})]})}var wa=[{label:`Dawn`,hour:1},{label:`Morning`,hour:5},{label:`Noon`,hour:10},{label:`Afternoon`,hour:15},{label:`Dusk`,hour:19}];function Ta(){let{name:e,props:t,write:n}=$i(),{hour:r,clockReadOnlyReason:i,setHour:o}=an(),[s,l]=N(0),u=z(e=>e.worldPanels),d=z(e=>e.setWorldPanels),f=wa[s];return/* @__PURE__ */ W(H,{children:[t.length===0?/* @__PURE__ */ U(`p`,{className:a.mutedText,children:`No world to set.`}):/* @__PURE__ */ U(w,{name:e,description:`Shared by every entity in it.`,changed:!1,props:t,onChange:n,favorite:e=>({kind:Hn.World,field:e}),className:`self-stretch`}),r!==void 0&&/* @__PURE__ */ U(E,{label:`Jump to ${f.label}`,tone:c.Neutral,disabledReason:i,onPress:()=>{o(f.hour),l(e=>(e+1)%wa.length)}}),/* @__PURE__ */ U(w,{name:`Debugger`,description:`A pinned entity's panel stands over it in the world.`,changed:!1,props:[{kind:g.Toggle,name:`World panels`,value:u}],onChange:(e,t)=>d(t===!0),className:`self-stretch`})]})}function Ea(e,t){return t.map(({node:t})=>(_n(e,t.id)??[t]).map(Ht))}function Da({behaviours:e,systems:t,screenshot:n,traits:r,placement:i,panel:a},o,s){return[{id:`screenshot`,title:`Screenshot`,summary:n?`framed on it`:``,image:n},{id:`screen`,title:`Screen`,summary:s?`what the player sees`:``,image:s},{id:`place`,title:`Place in tree`,summary:o.join(` › `)},{id:`placement`,title:`Placement`,summary:i?`${i.height} m tall at ${i.position.join(`, `)}`:``},{id:`panel`,title:`Declared panel`,summary:Object.keys(a??{}).join(`, `)},{id:`behaviours`,title:`Behaviours with values`,summary:e.map(({name:e})=>e).join(`, `)},{id:`systems`,title:`Systems`,summary:t.map(({name:e})=>e).join(`, `)},{id:`traits`,title:`Traits`,summary:Object.keys(r??{}).join(`, `)},{id:`source`,title:`Source files`,summary:e.flatMap(({source:e})=>e??[]).join(`, `)},{id:`docs`,title:`Docs pages`,summary:e.flatMap(({wiki:e})=>e??[]).join(`, `)}].filter(({summary:e})=>e)}function Oa({behaviours:e,systems:t,traits:n,placement:r,panel:i},a,o){let s=[`behaviours`,`source`,`docs`].some(o),c={place:o(`place`)?a:void 0,placement:o(`placement`)?r:void 0,panel:o(`panel`)?i:void 0,behaviours:s?e.map(({name:e,props:t,source:n,wiki:r})=>({name:e,props:o(`behaviours`)?t:void 0,source:o(`source`)?n:void 0,wiki:o(`docs`)&&r?l(r):void 0})):void 0,systems:o(`systems`)?t:void 0,traits:o(`traits`)?n:void 0};return`\`\`\`json\n${JSON.stringify(c,null,2)}\n\`\`\``}function ka({descriptions:e,page:t,places:n,intent:r,includedIds:i}){let a=e=>i?.includes(e)??!0,o=e.map(({node:e})=>Ht(e)),s=e.map((t,r)=>{let i=Oa(t,n[r],a);return e.length>1?`## ${o[r]}\n\n${i}`:i});return[`# ${t??o.join(`, `)}`,r,...s].filter(Boolean).join(`
|
|
2
|
+
|
|
3
|
+
`)}function Aa(e){let t=/* @__PURE__ */ new Map;for(let n of e){let e=t.get(n.id);e?e.summary.split(` · `).includes(n.summary)||(e.summary+=` · ${n.summary}`):t.set(n.id,{...n})}return[...t.values()]}function ja({name:t,entityId:n,intent:r,onIntentChange:i,parts:o,onTogglePart:s,bundleKilobytes:l,sending:u,outcome:f,onSend:p,onCopyBundle:m,onCancel:h,className:g}){let _=o.filter(e=>e.included),y=M(null);O(()=>y.current?.focus(),[]);function b(e){e.defaultPrevented||(e.key===`Escape`?(e.preventDefault(),h()):e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),p()))}return/* @__PURE__ */ U(K,{"data-devtools-escape":!0,className:P(`flex flex-col text-xs`,g),children:/* @__PURE__ */ W(v,{role:`dialog`,"aria-label":`Send ${t} ${n} to the agent`,className:`relative flex min-h-0 flex-1 flex-col`,children:[/* @__PURE__ */ U(ta,{icon:/* @__PURE__ */ U(ui,{tone:ci.Accent}),title:`Send to agent`,detail:/* @__PURE__ */ W(e,{children:[t,` `,/* @__PURE__ */ U(e,{className:a.mono,children:n})]}),actions:/* @__PURE__ */ U(q,{label:`Cancel`,shortcut:Y(J.Close),onPress:h,children:/* @__PURE__ */ U(bt,{"aria-hidden":!0,className:`size-3.5`})})}),/* @__PURE__ */ U(Br,{label:`Intent`,children:`one line`}),/* @__PURE__ */ U(ii,{label:`Intent`,value:r,onChange:i,placeholder:`What should the agent do?`,ref:y,onKeyDown:b,className:`mx-2.5`}),/* @__PURE__ */ U(v,{className:`flex min-h-0 flex-1 flex-col gap-1.5 overflow-auto p-2.5`,children:o.map(({id:t,title:n,summary:r,included:i,image:o})=>/* @__PURE__ */ W(`label`,{className:P(`flex cursor-pointer gap-2.5 rounded-[10px] border border-white/20 bg-white/6 px-2.5 py-2`,!i&&`opacity-55`),children:[/* @__PURE__ */ U(`input`,{type:`checkbox`,checked:i,onChange:()=>s(t),onKeyDown:b,className:`mt-0.5 size-4 shrink-0 cursor-pointer accent-[#FFC14D]`}),/* @__PURE__ */ W(e,{className:`flex min-w-0 flex-col gap-0.5`,children:[/* @__PURE__ */ U(e,{className:`font-semibold`,children:n}),/* @__PURE__ */ U(e,{className:a.mutedText,children:r}),o&&/* @__PURE__ */ U(`img`,{src:o,alt:``,className:`mt-1 aspect-video w-full rounded-md object-cover`})]})]},t))}),/* @__PURE__ */ W(v,{className:P(`flex items-center gap-1.5 border-t px-3 py-2`,a.divider),children:[/* @__PURE__ */ W(e,{className:`flex gap-3`,children:[/* @__PURE__ */ U(Z,{value:`${_.length}/${o.length}`,unit:`parts`}),/* @__PURE__ */ U(Z,{value:`~${l}`,unit:`KB`})]}),f&&/* @__PURE__ */ U(d,{tone:D.Neutral,children:jr[f]}),/* @__PURE__ */ U(E,{label:`Copy bundle`,tone:c.Neutral,shortcut:Y(J.CopyAgentBundle),onPress:m,className:`ml-auto`}),/* @__PURE__ */ U(E,{label:`Send`,tone:c.Accent,icon:/* @__PURE__ */ U(lt,{"aria-hidden":!0,className:`size-3.5`}),shortcut:Y(J.SendToAgent),onPress:p})]}),u&&/* @__PURE__ */ W(K,{className:`absolute inset-x-6 top-1/2 flex -translate-y-1/2 flex-col gap-2 rounded-xl p-3`,children:[/* @__PURE__ */ W(`p`,{className:`flex items-center gap-2 font-semibold`,children:[/* @__PURE__ */ U(ui,{tone:ci.Accent}),`Sending to `,u.agent]}),/* @__PURE__ */ U(v,{role:`progressbar`,"aria-label":`Sent`,"aria-valuenow":Math.round(u.progress*100),className:`h-1 overflow-hidden rounded-full bg-black/35`,children:/* @__PURE__ */ U(v,{className:P(`h-full`,a.accentFill),style:{width:`${u.progress*100}%`}})}),/* @__PURE__ */ U(`ul`,{className:P(`flex flex-wrap gap-x-3 gap-y-0.5`,a.mono),children:_.map(({id:t,title:n})=>{let r=u.sentPartIds.includes(t);return/* @__PURE__ */ W(`li`,{"aria-label":n,className:P(`flex items-center gap-1`,!r&&a.mutedText),children:[n,r?/* @__PURE__ */ U(be,{"aria-hidden":!0,className:`size-3 text-[#7CE38B]`}):/* @__PURE__ */ U(e,{"aria-hidden":!0,children:`…`}),/* @__PURE__ */ U(e,{className:`sr-only`,children:r?`sent`:`waiting`})]},t)})}),/* @__PURE__ */ U(`p`,{className:P(`flex items-center gap-1`,a.mutedText),children:`Lands in the agent's session as one message.`})]})]})})}function Ma({descriptions:e,page:t,spot:n,initialIntent:r=``,screen:i,tree:a,onClose:o,className:s}){let[c,l]=N(r),[u,d]=N([]),[f,p]=N(),[m,h]=N(),g=Ea(a,e),_=Aa(e.flatMap((e,t)=>Da(e,g[t],i))).map(e=>({...e,included:!u.includes(e.id)})),v=ka({descriptions:e,page:n??t,places:g,intent:c,includedIds:_.filter(e=>e.included).map(({id:e})=>e)}),y=_.filter(e=>e.included&&e.image),b=n?`Ground`:t?`Wiki page`:e.length===1?e[0].node.name:`${e.length} entities`;async function x(){return(await Promise.all(y.flatMap(({image:e})=>e?[Nr(e)]:[]))).filter(e=>e!==void 0)}async function S(){if(f)return;h(void 0),p({agent:`the agent`,progress:0,sentPartIds:[]});let t=await x(),n=await Pr({text:v,shots:t,attachments:e.map(({node:e})=>({id:e.id,label:Ht(e)}))},c||b);p(void 0),n===mn.Sent?o():h(n)}async function C(){let e=await x(),t=[v,...e.map(e=>`Screenshot: ${e}`)].join(`
|
|
4
|
+
|
|
5
|
+
`);await navigator.clipboard.writeText(t).catch(e=>console.error(`The bundle did not reach the clipboard`,e))}return X(J.Close,o),X(J.SendToAgent,()=>void S()),X(J.CopyAgentBundle,()=>void C()),/* @__PURE__ */ U(ja,{name:b,entityId:n??t??e.map(({node:e})=>oi(e)).join(` `),intent:c,onIntentChange:l,parts:_,onTogglePart:e=>d(u.includes(e)?u.filter(t=>t!==e):[...u,e]),bundleKilobytes:Math.ceil(v.length/1024),sending:f,outcome:m,onSend:()=>void S(),onCopyBundle:()=>void C(),onCancel:o,className:s})}var Na=dr()(e=>({rings:!1,ability:null,setRings:t=>e({rings:t}),selectAbility:t=>e({ability:t})}));function Pa(e,t,n){switch(typeof t){case`boolean`:return{kind:g.Toggle,name:e,value:t};case`number`:return{kind:g.Number,name:e,value:t,...n};case`string`:return{kind:g.Text,name:e,value:t};default:return{kind:g.Text,name:e,value:ea(t)}}}function Fa(e){return typeof e==`number`?String(Number(e.toFixed(4))):ea(e)}function Ia({propName:e,props:t,edits:n}){if(e===void 0||!n)return;let r=Object.entries(n).filter(([e,n])=>n!==t?.[e]).map(([e,t])=>`${e}: ${Fa(t)}`);return r.length>0?`${e}={{ ${r.join(`, `)} }}`:void 0}function La({statEdits:e,children:t}){let n=t.find(e=>e.stats)?.props,r=Object.entries(e??{}).map(([e,t])=>({name:e,base:t,prop:n?.[e]})).filter(({prop:e,base:t})=>e&&t!==e.base).map(({name:e,base:t,prop:n})=>`${e}={{ ${Object.entries({...n,base:t}).map(([e,t])=>`${e}: ${Fa(t)}`).join(`, `)} }}`);return r.length>0?r.join(` `):void 0}function Ra(e,t){let n=10**(Math.floor(Math.log10(Math.abs(e)||1))+1);return{min:Math.min(0,e),max:Math.max(t??n,e),step:n/100}}function za({stats:e,readOnlyReason:t},n,r){let{description:i,wiki:a}=Rt;return{description:i,docsHref:a&&l(a),changed:r.statEdits!==void 0,copyText:La(r),readOnlyReason:t,stats:Object.entries(e).map(([e,t])=>({name:e,base:t.base,value:xn(t),modifiers:t.modifiers,range:Ra(n?.[e]?.base??t.base,t.max)}))}}function Ba({name:e,state:t,secondsLeft:n,states:r,routine:i,step:a}){return{name:e,readOnlyReason:`Moved by its events and its waits`,props:[...i===void 0||a===void 0?[]:[Pa(`routine`,i,void 0),Pa(`step`,a,void 0)],Pa(`state`,t,void 0),...n===void 0?[]:[Pa(`seconds left`,n,void 0)],Pa(`states`,r.join(`, `),void 0)]}}function Va(e,t,n,r,i){let a=t?.placement,o=Object.fromEntries(e.children.map(({id:e})=>[e,i(e)]));return{name:e.name,entityId:oi(e),position:er.safeParse(a?.position??t?.traits?.transform?.position).data,readOnlyCard:a&&{name:`Placement`,readOnlyReason:a.prop?`The map's prop ${a.prop}`:e.readOnlyReason,props:[`height`,`yaw`,`tilt`].map(e=>Pa(e,a[e],void 0))},...a?.map!==void 0&&a.family!==void 0&&(a.prop!==void 0||a.family!==Wn.Tuft)&&{scatter:{prop:a.prop??null,position:[a.position[0],a.position[2]]}},behaviours:e.children.filter(e=>e.kind===R.Behaviour&&!e.stats).map(e=>({id:e.id,name:e.name,description:e.description,docsHref:e.wiki&&l(e.wiki),changed:e.edits!==void 0,readOnlyReason:e.readOnlyReason,copyText:Ia(e),props:Object.entries(e.readOnlyReason===void 0?{...e.props,...e.edits}:{...e.props}).filter(([t])=>!Object.hasOwn(o[e.id],t)).map(([t,n])=>Pa(t,n,e.ranges?.[t]))})),stats:n&&za(n,t?.traits?.stats,e),machines:r.map(Ba),systems:t?.systems??[],relations:t?.relations??[]}}function Ha({name:e},t){let n=Object.entries(t??{});return{name:e,type:`Hud`,behaviours:[],systems:[],relations:[],readOnlyCard:n.length>0?{name:`Props`,readOnlyReason:`Written in the game's code`,props:n.map(([e,t])=>Pa(e,t,void 0))}:void 0}}function Ua(e){let{tree:t,selectedIds:n,describe:r,captureScreen:i}=z.getState();return{ids:n,descriptions:n.flatMap(e=>{let n=gn(t,e);if(n===void 0||(n.entityId??n.index)===void 0)return[];try{return[{...r(e),node:n}]}catch(t){return console.warn(`Send to agent left out row ${e}`,t),[]}}),intent:e,screen:i()}}function Wa(e,t){let{selectedIds:n}=z.getState();return{ids:n,descriptions:[],intent:t,page:e}}var Ga=30;function Ka(e,t,n,r,i=Ga){let a=vn(e,t,r);a===void 0?i>0&&requestAnimationFrame(()=>Ka(e,t,n,r,i-1)):n(a)}function qa({onClose:e,request:t,onRequest:n,className:r}){let i=z(e=>e.tree),a=z(e=>e.selectedId),o=z(e=>e.describe),s=z(e=>e.select),c=z(e=>e.setProp),l=z(e=>e.setStatBase),u=z(e=>e.readStatFields),d=en(),f=fr(d,e=>e.savePreset),p=fr(d,e=>e.applyPreset),m=fr(d,e=>e.deletePreset),[h,g]=N(null);h&&h.rowId!==a&&g(null);let _=a===null?void 0:gn(i,a),y=wn(e=>a===null?void 0:e[a]?.props),b=_?.entityId??_?.index,x=_?.id,S=_?.children.filter(e=>e.kind===R.Behaviour)??[],C=fr(d,e=>e.presetsByComponent),w=_?Object.keys(C[_.name]??{}):[],[ee,T]=N(0),te=j(()=>{if(x!==void 0&&b!==void 0)try{return o(x,{screenshot:!1})}catch{return}},[o,x,b,ee]),ne=rn(x??null),re=nn(x??null),E=Zt(x??null),D=tn(x??null),{rings:ie,ability:ae,setRings:oe,selectAbility:se}=Na(),ce=D?.abilities.some(({name:e})=>e===ae)?ae:D?.abilities[0]?.name??null,le=_&&b!==void 0?{...Va(_,te,ne,re,u),panel:E,abilities:D&&{inspection:D,selected:ce,onSelect:se,rings:ie,onRingsChange:oe}}:_?.kind===R.Hud?Ha(_,y):void 0,ue=te?.placement,O=ue?.map===void 0||ue.family===void 0?void 0:{onMakeEditable:()=>{let{map:e,family:t}=ue;B.getState().makeEditable({...ue,map:e,family:t,kind:ue.kind}).then(t=>Ka(e,t,s))},onMove:e=>{let{map:t,prop:n}=ue;n!==void 0&&B.getState().moveProp(t,n,e).then(()=>Ka(t,n,e=>{s(e),T(e=>e+1)},e))},onDelete:()=>{let{map:e,prop:t}=ue;t!==void 0&&(B.getState().removeProp(e,t),s(null))}};function de(){_&&n(Ua(``))}return X(J.SendToAgent,de,{enabled:b!==void 0&&t===null}),t?/* @__PURE__ */ U(Ma,{descriptions:t.descriptions,page:t.page,spot:t.spot,initialIntent:t.intent,screen:t.screen,tree:i,onClose:()=>n(e=>e===t?null:e),className:r},`${t.ids.join()}:${t.intent}:${t.spot}`):_?.kind===R.World?/* @__PURE__ */ U(Vr,{title:_.name,icon:/* @__PURE__ */ U(Be,{"aria-hidden":!0,className:`size-4`}),onClose:e,className:r,children:/* @__PURE__ */ U(v,{className:`flex min-h-0 flex-1 flex-col items-start gap-1 overflow-auto px-3.5 pb-3 text-xs`,children:/* @__PURE__ */ U(Ta,{})})}):/* @__PURE__ */ U(Vr,{title:`Inspector`,icon:/* @__PURE__ */ U(ut,{"aria-hidden":!0,className:`size-4`}),onClose:e,className:r,children:e=>/* @__PURE__ */ W(H,{children:[/* @__PURE__ */ U(Ca,{entity:le,presets:w,preset:h?.name??``,onChange:e=>{c(e),g(null)},onStatChange:(e,t)=>{_&&l({id:_.id,name:e,base:t})},onSendToAgent:de,onSelectEntity:s,onPreset:e=>{_&&(p({component:_.name,name:e,rows:S,setProp:c,readStatFields:u}),g({rowId:_.id,name:e}))},onScatter:O,onSavePreset:()=>{if(!_)return;let e=window.prompt(`Save preset as`,_.name);e&&(f({component:_.name,name:e,rows:S}),g({rowId:_.id,name:e}))},onDeletePreset:()=>{_&&h&&(m(_.name,h.name),g(null))},close:e}),ie&&x!==void 0&&ce&&/* @__PURE__ */ U(Nt,{id:x,ability:ce})]})})}function Ja(e,t){return e.flatMap(({children:e})=>e.filter(e=>e.kind===R.Behaviour&&e.name===t))}function Ya({children:e},t){return e.some(e=>e.stats&&(e.props===void 0||Object.hasOwn(e.props,t)))}function Xa(e,t){return t.some(t=>t!==e&&t.field===e.field&&t.behaviour!==e.behaviour)&&e.behaviour?`${e.behaviour}.${e.field}`:e.field}function Za({group:e}){let{name:t,favorites:n,entities:r}=e,i=z(e=>e.setProp),a=z(e=>e.setStatBase),o=n.filter(({kind:e})=>e===Hn.Stat).map(({field:e})=>e),s=r.find(e=>o.some(t=>Ya(e,t))),c=rn(s?.id??null),l=/* @__PURE__ */ new Map,u=[],d=[];for(let e of n){let{field:t}=e,i=Xa(e,n);if(l.has(i))continue;if(l.set(i,e),e.kind===Hn.Stat){let e=c?.stats[t];d.push(c?.readOnlyReason),u.push(e?{kind:g.Number,name:i,value:e.base,...Ra(e.base,e.max),open:!0}:{kind:g.Text,name:i,value:``});continue}let a=Ja(r,e.behaviour);d.push(a.every(e=>e.readOnlyReason!==void 0)?a[0]?.readOnlyReason:void 0);let[o]=a,s=o?.readOnlyReason===void 0?{...o?.props,...o?.edits}[t]:o.props?.[t];u.push(s===void 0?{kind:g.Text,name:i,value:``}:Pa(i,s,o?.ranges?.[t]))}let f=r.length===0?`Not in the scene`:d.every(e=>e!==void 0)?d[0]:void 0;return/* @__PURE__ */ U(w,{name:t,description:r.length>1?`${r.length} in the scene, edited together`:void 0,changed:!1,props:u,onChange:(e,t)=>{let n=l.get(e);if(!n)return;let{field:o}=n;if(n.kind===Hn.Stat){if(c?.readOnlyReason!==void 0)return;for(let e of r)Ya(e,o)&&a({id:e.id,name:o,base:Number(t)});return}for(let e of Ja(r,n.behaviour))e.readOnlyReason===void 0&&i({id:e.id,name:o,value:t})},readOnlyReason:f,favorite:e=>l.get(e)??{kind:Hn.Behaviour,field:e}})}function Qa({onClose:e,className:t}){let n=fr(Qt(),e=>e.favorites),r=z(e=>e.tree),i=j(()=>Qi(r,n),[r,n]),o=$i(),s=o.props.filter(({name:e})=>n.some(t=>Ut(t,{kind:Hn.World,field:e})));return/* @__PURE__ */ U(Vr,{title:`Favorites`,icon:/* @__PURE__ */ U(ft,{"aria-hidden":!0,className:`size-4`}),onClose:e,className:t,children:/* @__PURE__ */ U(v,{className:`flex min-h-0 flex-1 flex-col gap-1.5 overflow-auto px-2.5 pb-3 text-xs`,children:n.length===0?/* @__PURE__ */ W(v,{className:`flex flex-1 flex-col items-center justify-center gap-1.5 text-center`,children:[/* @__PURE__ */ U(`p`,{className:`text-[13px] font-semibold`,children:`No favorites`}),/* @__PURE__ */ U(`p`,{className:a.mutedText,children:`Star a field in the inspector to keep it here.`})]}):/* @__PURE__ */ W(H,{children:[s.length>0&&/* @__PURE__ */ U(w,{name:o.name,changed:!1,props:s,onChange:o.write,favorite:e=>({kind:Hn.World,field:e})}),i.map(e=>/* @__PURE__ */ U(Za,{group:e},e.name))]})})})}var $a=14;function eo({framesPerSecond:t,frameMilliseconds:n,history:r}){let i=n>0;return/* @__PURE__ */ W(v,{role:`group`,"aria-label":`Frame rate`,className:`flex h-9 items-center gap-2`,children:[/* @__PURE__ */ U(e,{"aria-hidden":!0,className:`inline-flex items-end gap-px`,style:{height:$a},children:r.map((t,n)=>/* @__PURE__ */ U(e,{className:P(`w-[3px]`,a.readoutBar),style:{height:Math.round(Math.min(Math.max(t,0),1)*$a)}},n))}),/* @__PURE__ */ W(e,{className:`flex gap-3`,children:[/* @__PURE__ */ U(Z,{outlined:!0,value:i?Math.round(t):`–`,unit:`fps`}),/* @__PURE__ */ U(Z,{outlined:!0,value:i?n.toFixed(1):`–`,unit:`ms`})]})]})}var to={[un.Info]:t.Info,[un.Warning]:t.Warning,[un.Error]:t.Error},no={[un.Info]:`info`,[un.Warning]:`warn`,[un.Error]:`error`};function ro({lines:t,onClear:n,onClose:r,className:i}){let[o,l]=N(``),[u,f]=N(/* @__PURE__ */ new Set),p=e=>t.filter(t=>t.level===e).length,m=o.trim().toLowerCase(),h=t.filter(({level:e,source:t,message:n})=>!u.has(e)&&`${t} ${n}`.toLowerCase().includes(m));function g(e){f(t=>{let n=new Set(t);return n.delete(e)||n.add(e),n})}return/* @__PURE__ */ W(K,{className:P(`flex flex-col text-xs`,i),children:[/* @__PURE__ */ U(Br,{label:`Console`,children:/* @__PURE__ */ W(e,{className:`flex items-center gap-1.5 normal-case tracking-normal`,children:[Object.values(un).map(e=>/* @__PURE__ */ U(d,{tone:D.Neutral,lamp:to[e],pressed:!u.has(e),onPress:()=>g(e),label:`${no[e]} ${p(e)}`,children:p(e)},e)),r&&/* @__PURE__ */ U(q,{label:`Close console`,onPress:r,children:/* @__PURE__ */ U(bt,{"aria-hidden":!0,className:`size-3.5`})})]})}),/* @__PURE__ */ W(v,{className:P(`flex items-center gap-1.5 border-b px-3 pb-2`,a.divider),children:[/* @__PURE__ */ U(ii,{label:`Filter the console`,placeholder:`Filter`,icon:/* @__PURE__ */ U(ct,{"aria-hidden":!0,className:`size-3.5`}),value:o,onChange:l,className:`min-w-0 flex-1`}),/* @__PURE__ */ U(E,{label:`Clear`,tone:c.Neutral,shortcut:Y(J.ClearConsole),onPress:n})]}),/* @__PURE__ */ U(`ol`,{"aria-label":`Log`,className:P(`min-h-0 flex-1 overflow-auto px-3 pt-2 pb-2`,a.mono),children:h.map(({id:t,seconds:n,level:r,source:i,message:o})=>/* @__PURE__ */ W(`li`,{className:`group grid grid-cols-[8px_1fr] items-baseline gap-x-2 py-0.5`,children:[/* @__PURE__ */ U(s,{tone:to[r]}),/* @__PURE__ */ U(e,{className:P(`break-words`,r===un.Error&&`text-[#FF6B6B]`),children:o}),/* @__PURE__ */ W(e,{className:P(`col-start-2 flex gap-2 text-[10.5px]`,a.mutedText),children:[i,/* @__PURE__ */ W(e,{className:`hidden group-hover:inline`,children:[n.toFixed(2),` s`]})]})]},t))})]})}function io({onClose:e}){let t=z(e=>e.log),n=z(e=>e.clearLog);return X(J.ClearConsole,n,{repeat:!0}),/* @__PURE__ */ U(ro,{lines:t,onClear:n,onClose:e,className:`h-full`})}async function ao(){let e=z.getState().captureScreen();if(!e)return!1;let t=fetch(e).then(e=>e.blob());try{return await navigator.clipboard.write([new ClipboardItem({"image/png":t})]),!0}catch(e){return console.error(`The screenshot did not reach the clipboard`,e),!1}}var oo=new Intl.NumberFormat(`en-US`),so=new Intl.NumberFormat(`en-US`,{notation:`compact`,maximumFractionDigits:1});function co({frameMilliseconds:t,simulatedSeconds:n,frameSplit:r,cost:i,room:a}){return/* @__PURE__ */ W(H,{children:[/* @__PURE__ */ W(e,{className:`flex flex-wrap gap-3 whitespace-nowrap`,children:[/* @__PURE__ */ U(Z,{value:t.toFixed(1),unit:`ms`}),r&&/* @__PURE__ */ W(e,{role:`group`,"aria-label":`Frame split`,className:`flex gap-3`,children:[/* @__PURE__ */ U(Z,{value:r.cpu.meanMilliseconds.toFixed(1),unit:`cpu ms`}),/* @__PURE__ */ U(Z,{value:r.gpu.meanMilliseconds.toFixed(1),unit:`${r.gpu.name} ms`}),i&&/* @__PURE__ */ W(H,{children:[/* @__PURE__ */ U(Z,{value:oo.format(i.drawCalls),unit:`draws`}),/* @__PURE__ */ U(Z,{value:so.format(i.triangles),unit:`triangles`})]})]}),/* @__PURE__ */ U(Z,{value:n.toFixed(2),unit:`s`})]}),a&&/* @__PURE__ */ W(e,{role:`group`,"aria-label":`Room`,className:`flex flex-wrap gap-3 whitespace-nowrap`,children:[/* @__PURE__ */ U(Z,{value:Math.round(a.roundTripMilliseconds),unit:`round trip ms`}),/* @__PURE__ */ U(Z,{value:a.stepMilliseconds.toFixed(2),unit:`step ms`}),a.roomStepMilliseconds!=null&&/* @__PURE__ */ U(Z,{value:a.roomStepMilliseconds.toFixed(1),unit:`server tick ms`}),/* @__PURE__ */ U(Z,{value:Math.round(a.snapshotsPerSecond),unit:`snapshots/s`}),/* @__PURE__ */ U(Z,{value:(a.bytesPerSecond/1e3).toFixed(1),unit:`kB/s`}),/* @__PURE__ */ U(Z,{value:a.players,unit:`players`}),/* @__PURE__ */ U(Z,{value:a.corrections,unit:`corrections/s`}),/* @__PURE__ */ U(Z,{value:Math.round(a.correctionMetres*100),unit:`cm`})]})]})}var lo=/* @__PURE__ */ function(e){return e.Direct=`direct`,e.GoodWifi=`good-wifi`,e.Phone=`phone-4g`,e.BadHotel=`bad-hotel`,e}({}),uo={direct:{label:`Direct`,conditions:{latencyMilliseconds:0,jitterMilliseconds:0,stall:null}},"good-wifi":{label:`Good Wi-Fi`,conditions:{latencyMilliseconds:40,jitterMilliseconds:5,stall:null}},"phone-4g":{label:`Phone, 4G`,conditions:{latencyMilliseconds:120,jitterMilliseconds:25,stall:{milliseconds:400,everySeconds:30}}},"bad-hotel":{label:`Bad hotel`,conditions:{latencyMilliseconds:250,jitterMilliseconds:60,stall:{milliseconds:1e3,everySeconds:15}}}};function fo(e){return Object.values(lo).find(t=>{let{conditions:n}=uo[t];return n.latencyMilliseconds===e.latencyMilliseconds&&n.jitterMilliseconds===e.jitterMilliseconds&&n.stall?.milliseconds===e.stall?.milliseconds&&n.stall?.everySeconds===e.stall?.everySeconds})}var po=`custom`,mo={value:po,label:`Custom`},ho=[{setting:`latency`,label:`Round trip, ms`},{setting:`jitter`,label:`Jitter, ms`},{setting:`stall`,label:`Stall, ms/every s`}],go=P(a.control,`h-[22px] w-20 rounded-[5px] bg-black/28 px-1.5 text-right focus:border-[#FFC14D]`);function _o({link:t,onChange:n}){let r=fo(t),[i,a]=N(!1),[o,s]=N(null),c=i||r===void 0,l=lr(t),u=[...Object.values(lo).map(e=>({value:e,label:uo[e].label})),mo],d=(e,t)=>{try{n(tr({...l,[e]:t.trim()===``?void 0:t})),s(null)}catch(e){s(e instanceof Error?e.message:String(e))}};return/* @__PURE__ */ W(e,{className:`flex flex-col items-start gap-1`,children:[/* @__PURE__ */ U(Fr,{label:`Link to the room`,options:u,value:c?po:r,onChange:e=>{a(e===po),s(null),e!==po&&n(uo[e].conditions)}}),c&&/* @__PURE__ */ U(e,{className:`flex flex-wrap gap-2`,children:ho.map(({setting:e,label:t})=>/* @__PURE__ */ U(ie,{label:t,placeholder:t,value:l[e]??``,onCommit:t=>d(e,t),className:go},e))}),o!==null&&/* @__PURE__ */ U(e,{role:`alert`,className:`text-[11.5px] text-[#FF8A80]`,children:o}),!$n(t)&&/* @__PURE__ */ U(e,{className:`text-[11.5px] text-white/70`,children:Qn(t)})]})}function vo({time:{name:e,meanMilliseconds:t,worstMilliseconds:n},total:r}){return/* @__PURE__ */ W(`tr`,{className:P(r&&[`border-t`,a.divider]),children:[/* @__PURE__ */ U(`th`,{scope:`row`,className:`pr-3 text-left font-normal`,children:e}),/* @__PURE__ */ U(`td`,{className:P(`pl-3 text-right`,a.mono),children:t.toFixed(2)}),/* @__PURE__ */ U(`td`,{className:P(`pl-3 text-right`,a.mono),children:n.toFixed(2)})]})}function yo({split:e}){return e?/* @__PURE__ */ W(`table`,{"aria-label":`Frame split`,className:`self-stretch`,children:[/* @__PURE__ */ U(`thead`,{className:a.mutedText,children:/* @__PURE__ */ W(`tr`,{children:[/* @__PURE__ */ U(`td`,{}),/* @__PURE__ */ U(`th`,{scope:`col`,className:`pl-3 text-right font-normal`,children:`mean ms`}),/* @__PURE__ */ U(`th`,{scope:`col`,className:`pl-3 text-right font-normal`,children:`worst ms`})]})}),/* @__PURE__ */ W(`tbody`,{children:[e.parts.map(e=>/* @__PURE__ */ U(vo,{time:e},e.name)),/* @__PURE__ */ U(vo,{time:e.cpu,total:!0}),/* @__PURE__ */ U(vo,{time:e.gpu}),/* @__PURE__ */ U(vo,{time:e.frame})]})]}):/* @__PURE__ */ U(`p`,{className:a.mutedText,children:`No frames timed yet.`})}var bo=60;function xo(){let e=z(e=>e.frameSplit),[t,n]=N(null),[r,i]=N([]),a=e?.frame.meanMilliseconds??0,o=a>0?1e3/a:0;return e!==t&&(n(e),i(e?[...r,Math.min(o/bo,1)].slice(-11):[])),{framesPerSecond:o,frameMilliseconds:a,history:r}}var So=se(0);function Co(e,t){let{seek:n}=z.getState(),r=n(e-1);if(r){for(let e=0,i;i=n(e);e++)if(i.seconds-r.seconds>=t)return i.seconds;return r.seconds}}function wo(){let{frameMilliseconds:e}=xo(),t=En(e=>e.seconds),n=le(So),r=z(e=>e.recordedFrames),i=z(e=>e.frameSplit),a=j(()=>i?qt():null,[i]),o=Tn(),{conditions:s,setConditions:c}=$t(),l=o.status!==fn.Closed;return/* @__PURE__ */ W(H,{children:[/* @__PURE__ */ U(co,{frameMilliseconds:e,simulatedSeconds:n<0?Co(r,n)??t:t,frameSplit:i,cost:a,room:l?o:void 0}),l&&/* @__PURE__ */ U(_o,{link:s,onChange:c}),/* @__PURE__ */ U(yo,{split:i})]})}function To({from:e,delay:t,className:n,children:r}){let i=G();return/* @__PURE__ */ U(Pn,{initial:!1,children:r&&/* @__PURE__ */ U(v,{initial:!i&&e,animate:{x:0,y:0,transition:{...V.snappy,delay:t}},exit:i?void 0:e,transition:V.snappy,className:n,children:r},`surface`)})}function Eo({topBar:e,leading:t,camera:n,rail:r,sidebar:i,outline:o,menu:s,tabBar:c,sheet:l,phone:u}){let d=G();return/* @__PURE__ */ W(v,{"data-devtools":!0,className:P(`pointer-events-none fixed inset-0 z-50 flex flex-col p-4 pt-[max(1rem,env(safe-area-inset-top))] pb-[max(1rem,env(safe-area-inset-bottom))] text-white`,a.sans),children:[/* @__PURE__ */ U(v,{className:`absolute inset-0 isolate`,children:o}),/* @__PURE__ */ U(v,{className:`@container flex min-h-0 flex-1 flex-col gap-5`,children:u?/* @__PURE__ */ W(H,{children:[/* @__PURE__ */ U(v,{className:`flex flex-col gap-3`,style:{paddingTop:`calc(1rem + ${Ot.top} + 2.25rem + 2px + 0.5rem - max(1rem, env(safe-area-inset-top)))`},children:/* @__PURE__ */ U(To,{from:{y:`-300%`},children:e})}),/* @__PURE__ */ U(v,{className:`min-h-0 flex-1`}),/* @__PURE__ */ W(v,{className:`flex flex-col gap-2`,children:[/* @__PURE__ */ U(Pn,{initial:!1,children:l&&/* @__PURE__ */ U(v,{initial:!d&&{height:0},animate:{height:`45vh`},exit:d?void 0:{height:0},transition:V.snappy,className:`-mx-10 flex shrink-0 flex-col justify-end overflow-hidden px-10`,children:/* @__PURE__ */ U(v,{className:`h-[45vh] shrink-0`,children:l})},`sheet`)}),/* @__PURE__ */ U(To,{from:{y:`200%`},className:`flex max-w-full self-center`,children:c})]}),s]}):/* @__PURE__ */ W(H,{children:[/* @__PURE__ */ W(v,{className:`flex items-start gap-4`,children:[/* @__PURE__ */ U(v,{className:`grow basis-0`}),/* @__PURE__ */ U(To,{from:{y:`-300%`},className:`flex min-w-0 max-w-[1000px] items-start gap-2`,children:e&&/* @__PURE__ */ W(H,{children:[t,e,n]})}),/* @__PURE__ */ U(v,{className:`grow basis-0`})]}),/* @__PURE__ */ W(v,{className:`flex min-h-0 flex-1 gap-2`,children:[/* @__PURE__ */ U(To,{from:{x:`-300%`},className:`flex`,children:r}),/* @__PURE__ */ U(v,{className:`flex min-h-0 min-w-0`,children:/* @__PURE__ */ U(Pn,{initial:!1,children:i})})]}),s]})})]})}var Q=/* @__PURE__ */ function(e){return e.Entities=`entities`,e.Map=`map`,e.Wiki=`wiki`,e.Assets=`assets`,e.Inspector=`inspector`,e.Console=`console`,e.Clips=`clips`,e}({});function Do({tabs:e,active:t,onSelect:n}){return/* @__PURE__ */ U(K,{className:`flex rounded-[22px]`,children:/* @__PURE__ */ U(Fr,{label:`Panels`,options:e,value:t??``,onChange:e=>n(e===t?null:e),className:`h-16 max-w-full gap-1 overflow-x-auto rounded-[22px] border-transparent bg-transparent px-1.5 py-1.5`})})}var Oo={[un.Error]:`bg-[#FF6B6B] text-[#1B1206]`,[un.Warning]:P(a.accentFill,a.accentText),[un.Info]:`bg-white/72 text-[#1B1206]`},ko=99;function Ao({count:t,level:n}){return t===0||n===void 0?null:/* @__PURE__ */ U(e,{"data-level":n,className:P(`absolute -top-1 -right-1 flex h-4 min-w-4 items-center justify-center rounded-full px-1 text-[10px] leading-none font-semibold shadow-[0_0_0_2px_#121620,0_2px_6px_rgba(0,0,0,0.45)]`,a.mono,Oo[n]),children:t>ko?`${ko}+`:t})}var jo=`flex min-h-0 flex-1 flex-col items-center gap-2 self-stretch overflow-y-auto pt-1 [scrollbar-width:none]`,Mo=`relative flex size-8 cursor-pointer items-center justify-center rounded-lg outline-none`;function No({items:t,footItems:i,apart:o,active:s,onSelect:c,onOrder:l,className:u}){let d=G(),f=k(),[p,m]=N(null),h=M(null),g=M(!1),_=t.map(({id:e})=>e),y=p?.filter(e=>_.includes(e))??_,b=e=>{h.current=e,m(e)},x=()=>{let e=h.current;h.current=null,m(null),e&&e.join()!==_.join()&&l?.(e)},S=d?{duration:0}:V.snappy,C=({id:t,title:i,icon:o,shortcut:l,unread:u})=>{let p=t===s,m=u?.level===void 0?i:`${i}, ${u.count} unread, ${u.level}`;return/* @__PURE__ */ U(n,{label:i,keys:l,iconOnly:!0,children:/* @__PURE__ */ W(r,{type:`button`,"aria-label":m,"aria-pressed":p,onClick:e=>{if(g.current&&e.detail>0){g.current=!1;return}c(t)},whileTap:d?void 0:Nn,className:P(Mo,a.accentRing,p?`text-white`:`text-white/72 hover:text-white`),children:[p&&/* @__PURE__ */ U(e,{layoutId:f,transition:d?{duration:0}:V.snappy,className:P(`absolute inset-0 rounded-lg shadow-[inset_0_0_0_1px_#FFC14D]`,a.accentTint)}),/* @__PURE__ */ U(e,{className:`relative flex`,children:o}),u&&/* @__PURE__ */ U(Ao,{...u})]})},t)};return/* @__PURE__ */ U(K,{className:P(`flex w-11 shrink-0 flex-col items-center gap-2 overflow-visible rounded-[14px] py-1.5`,u),children:/* @__PURE__ */ W(`nav`,{"aria-label":`Sections`,onPointerDownCapture:()=>{g.current=!1},className:`flex min-h-0 flex-1 flex-col items-center gap-2 self-stretch`,children:[l?/* @__PURE__ */ U(Fn.Group,{as:`div`,axis:`y`,values:y,onReorder:b,layoutScroll:!0,className:jo,children:y.map(e=>{let n=t.find(t=>t.id===e);return n&&/* @__PURE__ */ U(Fn.Item,{as:`div`,value:e,transition:S,whileDrag:d?void 0:{scale:1.12},onDragStart:()=>{g.current=!0},onDragEnd:x,className:`relative flex cursor-grab active:cursor-grabbing`,children:C(n)},e)})}):/* @__PURE__ */ U(v,{className:jo,children:t.map(C)}),i.map(C),o&&/* @__PURE__ */ W(H,{children:[/* @__PURE__ */ U(e,{"aria-hidden":!0,className:P(`h-px w-5 shrink-0 border-t`,a.divider)}),C(o)]})]})})}var Po=/* @__PURE__ */ function(e){return e.Horizontal=`horizontal`,e.Vertical=`vertical`,e}({}),Fo=16;function Io({label:e,axis:t,onMove:n,onDragging:r,className:i}){let o=t===`horizontal`,s=M(null),c=e=>o?e.clientX:e.clientY,l=o?{ArrowLeft:-16,ArrowRight:Fo}:{ArrowUp:-16,ArrowDown:Fo};function u(){s.current=null,r?.(!1)}function d(e){let t=l[e.key];t!==void 0&&(e.preventDefault(),n(t))}return/* @__PURE__ */ U(v,{role:`separator`,"aria-orientation":o?`vertical`:`horizontal`,"aria-label":e,tabIndex:0,onPointerDown:e=>{s.current=c(e),r?.(!0),e.currentTarget.setPointerCapture?.(e.pointerId)},onPointerMove:e=>{if(s.current===null)return;let t=c(e);n(t-s.current),s.current=t},onPointerUp:u,onPointerCancel:u,onKeyDown:d,className:P(`pointer-events-auto flex shrink-0 touch-none items-center justify-center rounded-full outline-none`,o?`w-2 cursor-col-resize`:`h-2 cursor-row-resize`,a.accentRing,i),children:/* @__PURE__ */ U(v,{className:P(`rounded-full bg-white/30`,o?`h-8 w-0.5`:`h-0.5 w-8`)})})}function Lo({width:e,onWidth:t,children:n}){let r=G(),[i,a]=N(!1);return/* @__PURE__ */ U(v,{initial:!r&&{width:0},animate:{width:e},exit:r?void 0:{width:0},transition:r||i?{duration:0}:V.snappy,className:`flex h-full min-h-0 max-w-[calc(100cqw-3.25rem)] justify-end overflow-hidden`,children:/* @__PURE__ */ W(v,{className:`flex h-full max-w-[calc(100cqw-3.25rem)] shrink-0`,style:{width:e},children:[/* @__PURE__ */ U(v,{className:`h-full min-w-0 flex-1`,children:n}),/* @__PURE__ */ U(Io,{label:`Resize the sidebar`,axis:Po.Horizontal,onMove:n=>t(e+n),onDragging:a})]})})}function Ro({top:e,bottom:t,share:n,onShare:r}){let i=M(null),a=G(),[o,s]=N(!1),c=a||o;return/* @__PURE__ */ W(v,{ref:i,className:`flex h-full min-h-0 flex-col overflow-hidden`,children:[/* @__PURE__ */ U(v,{className:`min-h-0 shrink-0 grow-0`,initial:!1,animate:{flexBasis:t?`${n*100}%`:`100%`},transition:c?{duration:0}:V.snappy,children:e}),/* @__PURE__ */ U(Pn,{initial:!1,children:t&&/* @__PURE__ */ W(v,{className:`flex min-h-0 flex-1 flex-col`,initial:!a&&{opacity:0,y:24},animate:{opacity:1,y:0},exit:a?void 0:{opacity:0,y:24},transition:V.snappy,children:[/* @__PURE__ */ U(Io,{label:`Resize the inspector`,axis:Po.Vertical,onMove:e=>{let t=i.current?.clientHeight;t&&r(n+e/t)},onDragging:s,className:`w-full`}),/* @__PURE__ */ U(v,{className:`min-h-0 flex-1`,children:t})]},`bottom`)})]})}var $=/* @__PURE__ */ function(e){return e.Entities=`entities`,e.Map=`map`,e.Assets=`assets`,e.Favorites=`favorites`,e.Clips=`clips`,e.Wiki=`wiki`,e.Console=`console`,e.Shortcuts=`shortcuts`,e}({}),zo=288,Bo=560;function Vo(e){return Math.min(Bo,Math.max(zo,e))}function Ho(e){return Math.min(.8,Math.max(.2,e))}function Uo(e,t){let n=t.flatMap(t=>e.filter(e=>e.id===t));return e.forEach((t,r)=>{if(n.includes(t))return;let i=e[r-1];n.splice(i?n.indexOf(i)+1:0,0,t)}),n}var Wo=dr()(pr((e,t)=>({section:`entities`,open:!0,width:372,treeShare:.5,railOrder:[],pressSection:n=>{let{section:r,open:i}=t();e({section:n,open:n!==r||!i})},openSection:t=>e({section:t,open:!0}),setWidth:t=>e({width:Vo(t)}),setTreeShare:t=>e({treeShare:Ho(t)}),setRailOrder:t=>e({railOrder:t}),resetRailOrder:()=>e({railOrder:[]})}),{name:`spawnite-devtools-layout`})),Go={[R.Scene]:`◇`,[R.World]:`◎`,[R.Group]:`⧉`,[R.Entity]:`▣`,[R.Behaviour]:`ƒ`,[R.Scatter]:`❋`,[R.Hud]:`▭`};function Ko(e,t){return e.name.toLowerCase().includes(t)||e.children.some(e=>Ko(e,t))}function qo(e,t,n,r=0,i=[]){for(let a of e)(!n||Ko(a,n))&&(i.push({node:a,depth:r}),(n||!t.has(a.id))&&qo(a.children,t,n,r+1,i));return i}function Jo(e,t){return e.reduce((e,n)=>e+Number(n.kind===t)+Jo(n.children,t),0)}function Yo({nodes:t,initiallyCollapsed:n=[],selectedId:r,selectedIds:i=[],onSelect:o,onHover:s,onContextMenu:c}){let[l,u]=N(()=>new Set(n)),[d,f]=N(``),[p,m]=N(),h=M(null),g=M(null),_=d.trim().toLowerCase(),y=qo(t,l,_),b=y.findIndex(({node:e})=>e.id===r),x=y.findIndex(({node:e})=>e.id===p),S=x===-1?Math.max(b,0):x;function C(e,t){u(n=>{let r=new Set(n);return t?r.delete(e):r.add(e),r})}function w(){return Array.from(g.current?.querySelectorAll(`[role="treeitem"]`)??[])}function ee(e){if(e.key===`/`){e.preventDefault(),h.current?.focus();return}let t=w(),n=t.indexOf(document.activeElement);if(n===-1)return;let{node:r}=y[n];if(e.key===`ArrowDown`)t[n+1]?.focus();else if(e.key===`ArrowUp`)t[n-1]?.focus();else if(e.key===`ArrowRight`)C(r.id,!0);else if(e.key===`ArrowLeft`)C(r.id,!1);else return;e.preventDefault()}return/* @__PURE__ */ W(v,{className:`flex min-h-0 flex-1 flex-col`,children:[/* @__PURE__ */ U(zr,{ref:h,label:`Filter entities`,placeholder:`Filter`,shortcut:Y(J.FilterTree),value:d,onChange:f}),/* @__PURE__ */ U(v,{ref:g,role:`tree`,"aria-label":`Entities`,tabIndex:-1,onKeyDown:ee,onFocus:e=>{let t=w().findIndex(t=>t===e.target);t!==-1&&m(y[t].node.id)},onPointerLeave:s&&(()=>s(null)),onContextMenu:c&&(e=>{let t=w().findIndex(t=>e.target instanceof Node&&t.contains(e.target));t!==-1&&c(y[t].node.id,e)}),className:`min-h-0 flex-1 overflow-auto px-1.5 outline-none`,children:y.map(({node:t,depth:n},c)=>{let u=t.children.length>0,d=u&&(!!_||!l.has(t.id)),f=t.kind===R.Group?t.children.length:t.count;return/* @__PURE__ */ U(ri,{role:ni.TreeItem,label:t.name,depth:n,expanded:u?d:void 0,tabbable:c===S,selected:t.id===r||i.includes(t.id),leading:/* @__PURE__ */ W(e,{className:`flex items-center gap-1.5`,children:[/* @__PURE__ */ U(L,{className:P(`size-3`,d&&`rotate-90`,!u&&`invisible`)}),/* @__PURE__ */ U(e,{"aria-hidden":!0,className:P(`w-3 text-center text-[11px]`,t.kind===R.Entity&&`text-[#FFC14D]`),children:Go[t.kind]})]}),detail:t.entityId!==void 0&&/* @__PURE__ */ W(e,{className:a.mono,children:[`#`,t.entityId]}),trailing:f!==void 0&&/* @__PURE__ */ U(e,{className:P(`flex h-4 items-center rounded-full bg-white/12 px-1.5 text-[10.5px]`,a.mono,a.mutedText),children:f}),onPress:e=>{o(t.id,!!e&&Or(e)),u&&C(t.id,!d)},onHover:s&&(()=>s(t.id))},t.id)})}),/* @__PURE__ */ U(`footer`,{className:P(`flex items-center justify-between gap-3 border-t px-3 py-2 text-[11px]`,a.divider),children:/* @__PURE__ */ W(e,{className:`flex flex-wrap gap-x-3`,children:[/* @__PURE__ */ U(Z,{value:Jo(t,R.Entity),unit:`entities`}),/* @__PURE__ */ U(Z,{value:Jo(t,R.Group),unit:`components`}),/* @__PURE__ */ U(Z,{value:Jo(t,R.Behaviour),unit:`behaviours`})]})})]})}function Xo({label:t,placeables:n,searching:r,foldable:i,held:o,onPress:s}){let c=n.reduce((e,{count:t})=>e+t,0),[l,u]=N(!i);return/* @__PURE__ */ W(v,{role:`group`,"aria-label":t,hidden:n.length===0,children:[/* @__PURE__ */ U(Br,{label:t,icon:i?/* @__PURE__ */ U(L,{"aria-hidden":!0,className:P(`size-3`,l&&`rotate-90`)}):void 0,onPress:i?()=>u(!l):void 0,expanded:i?l:void 0,children:c>0&&/* @__PURE__ */ U(e,{className:a.mono,children:c})}),(l||r)&&/* @__PURE__ */ U(v,{className:`grid grid-cols-3 gap-1.5 px-2.5 pb-2.5`,children:n.map(e=>/* @__PURE__ */ U(Gi,{placeable:e,held:Zo(o,e),onPress:t=>s(e,t)},e.name))})]})}var Zo=(e,t)=>e?.kind===t.kind&&e.name===t.name;function Qo({onSelect:e}){let t=z(e=>e.tree),n=z(e=>e.readPalette),r=z(e=>e.selectPlaceable),i=B(e=>e.card),a=B(e=>e.holdCard),o=j(()=>n(),[n,t]),[s,c]=N(``),l=Wi(s.trim()),u=e=>l?e.filter(({name:e})=>Wi(e).includes(l)):e;function d(t,n){r(t,n),t.kind===dn.Avatar?e?.():a(Zo(i,t)?null:t)}return/* @__PURE__ */ W(v,{className:`flex min-h-0 flex-1 flex-col`,children:[/* @__PURE__ */ U(zr,{label:`Search the palette`,placeholder:`Filter by name`,value:s,onChange:c}),/* @__PURE__ */ W(v,{className:`min-h-0 flex-1 overflow-y-auto`,children:[/* @__PURE__ */ U(Xo,{label:`Models`,placeables:u(o.models),searching:l!==``,held:i,onPress:d}),/* @__PURE__ */ U(Xo,{label:`Avatars`,placeables:u(o.avatars),searching:l!==``,held:i,onPress:d}),/* @__PURE__ */ U(Xo,{label:`Scatter`,placeables:u(o.scatter),searching:l!==``,held:i,onPress:d}),/* @__PURE__ */ U(Xo,{label:`Shapes`,placeables:u(o.shapes),searching:l!==``,foldable:!0,held:i,onPress:d})]})]})}function $o({label:t,value:n,min:r,max:i,step:s,format:c,onChange:l,onCommit:u,hint:d}){let f=k();return/* @__PURE__ */ U(o,{content:d,children:/* @__PURE__ */ W(v,{className:`grid grid-cols-[64px_1fr_48px] items-center gap-2`,children:[/* @__PURE__ */ U(`label`,{htmlFor:f,className:a.mutedText,children:t}),/* @__PURE__ */ U(kn,{id:f,label:t,min:r,max:i,step:s,value:n,valueText:c(n),onChange:l,onCommit:u,className:`h-7 w-full`}),/* @__PURE__ */ U(e,{className:P(a.mono,`text-right`),children:c(n)})]})})}var es=.1,ts=4,ns=e=>Math.round(e/es)/(1/es);function rs(e){let{label:t,value:n,empty:r,emptyLabel:i,hint:s,onPreview:c,onCancel:l}=e,u=e.onCommit,f=k(),p=M(null),m=M(l);m.current=l,O(()=>()=>{p.current&&m.current?.()},[]);function h(){p.current&&(p.current=null,l?.())}return/* @__PURE__ */ U(o,{content:s,children:/* @__PURE__ */ W(v,{className:`grid grid-cols-[64px_1fr_auto] items-center gap-2`,children:[/* @__PURE__ */ U(`label`,{htmlFor:f,className:P(a.mutedText,`cursor-ew-resize touch-none select-none`),onPointerDown:e=>{e.currentTarget.setPointerCapture(e.pointerId),p.current={x:e.clientX,from:n??0,at:n??0}},onPointerMove:e=>{let t=p.current;if(!t)return;let n=Math.round((e.clientX-t.x)/ts);t.at=ns(t.from+n*es),(c??u)(t.at)},onPointerUp:()=>{let e=p.current;p.current=null,e&&c&&u(e.at)},onPointerCancel:h,onLostPointerCapture:h,children:t}),/* @__PURE__ */ U(ie,{id:f,label:t,type:`number`,step:es,placeholder:r,value:n===null?``:Number(n.toFixed(2)),onCommit:e=>{e.trim()===``?r!==void 0&&u(null):u(Number.parseFloat(e))},className:P(a.control,`min-w-0 text-right [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none`,a.mono)}),r!==void 0&&n!==null&&/* @__PURE__ */ W(d,{tone:D.Neutral,label:i,onPress:()=>u(null),children:[r,/* @__PURE__ */ U(bt,{"aria-hidden":!0,className:`size-3`})]})]})})}var is=[{value:`raise`,label:`Raise`},{value:`lower`,label:`Lower`}];function as(){let[e,t]=N(!1);return O(()=>{let e=e=>t(e.ctrlKey),n=()=>t(!1);return window.addEventListener(`keydown`,e),window.addEventListener(`keyup`,e),window.addEventListener(`blur`,n),()=>{window.removeEventListener(`keydown`,e),window.removeEventListener(`keyup`,e),window.removeEventListener(`blur`,n)}},[]),e}function os({lower:t,onChange:n}){let r=as(),i=t===r?`raise`:`lower`;return/* @__PURE__ */ U(o,{content:`Sculpt raises the ground or lowers it, below the base too; Ctrl held flips it while it is held`,children:/* @__PURE__ */ W(v,{className:`grid grid-cols-[64px_1fr] items-center gap-2`,children:[/* @__PURE__ */ U(e,{className:a.mutedText,children:`Sculpt`}),/* @__PURE__ */ U(Fr,{label:`Raise or lower`,options:is,value:i,onChange:e=>n(e===`lower`!==r),className:`justify-self-start`})]})})}function ss({look:t,onPreview:n,onCommit:r,className:i}){let[s,l]=N(t),u=k();function d(e){l({...s,...e}),n(e)}return/* @__PURE__ */ W(v,{className:P(`flex flex-col gap-2.5`,i),children:[/* @__PURE__ */ U(o,{content:`A colour multiplied over the texture`,children:/* @__PURE__ */ W(v,{className:`grid grid-cols-[64px_1fr_48px] items-center gap-2`,children:[/* @__PURE__ */ U(`label`,{htmlFor:u,className:a.mutedText,children:`Tint`}),/* @__PURE__ */ U(`input`,{id:u,type:`color`,value:s.tint,onChange:e=>d({tint:e.currentTarget.value}),onBlur:e=>e.currentTarget.value!==t.tint&&r({tint:e.currentTarget.value}),className:`h-6 w-full cursor-pointer rounded border border-white/20 bg-transparent`}),/* @__PURE__ */ U(e,{className:P(a.mono,`text-right`),children:s.tint})]})}),/* @__PURE__ */ U($o,{label:`Tint amount`,value:s.tintAmount,min:0,max:1,step:.05,format:e=>e.toFixed(2),onChange:e=>d({tintAmount:e}),onCommit:e=>r({tintAmount:e}),hint:`How much of the tint applies: 0 leaves the texture as is`}),/* @__PURE__ */ U($o,{label:`Tile`,value:s.tile,min:.5,max:20,step:.5,format:e=>`${e.toFixed(1)} m`,hint:`How many metres one texture repeat covers`,onChange:e=>d({tile:e}),onCommit:e=>r({tile:e})}),/* @__PURE__ */ U($o,{label:`Bumps`,value:s.bumps,min:0,max:2,step:.05,format:e=>e.toFixed(2),hint:`How strong the surface relief reads`,onChange:e=>d({bumps:e}),onCommit:e=>r({bumps:e})}),/* @__PURE__ */ U(E,{label:`Wet`,detail:`Rain ripples and a wet sheen on this material`,tone:c.Neutral,icon:/* @__PURE__ */ U(Ee,{"aria-hidden":!0,className:`size-3.5`}),pressed:s.wet,className:P(`self-start`,s.wet&&[a.accentTint,a.accentBorder]),onPress:()=>{l({...s,wet:!s.wet}),r({wet:!s.wet})}})]})}function cs({label:t,open:n,onToggle:r,hint:i,count:o,actions:s,children:c}){let l=G();return/* @__PURE__ */ W(`section`,{"aria-label":t,className:P(`[section+&]:border-t`,a.divider),children:[/* @__PURE__ */ U(Br,{label:t,icon:r&&/* @__PURE__ */ U(L,{"aria-hidden":!0,className:P(`size-3`,n&&`rotate-90`)}),onPress:r,expanded:r&&n,hint:i,className:P(`font-semibold text-white`,n&&`pb-1`),children:(o!==void 0||s)&&/* @__PURE__ */ W(e,{className:`inline-flex items-center gap-1.5`,children:[o,s]})}),/* @__PURE__ */ U(Pn,{initial:!1,children:n&&/* @__PURE__ */ U(v,{initial:!l&&{height:0,overflow:`hidden`},animate:{height:`auto`,transitionEnd:{overflow:`visible`}},exit:l?void 0:{height:0,overflow:`hidden`},children:/* @__PURE__ */ U(v,{className:`pb-1 pl-5`,children:c})},`body`)})]})}function ls(e){let t=/* @__PURE__ */ new Map;for(let n of e)t.set(n.family,[...t.get(n.family)??[],n]);let n=[...t].filter(([,e])=>e.length>1),r=e.filter(({family:e})=>t.get(e).length===1);return r.length>0&&n.push([`Other`,r]),n}function us({materials:t,value:n,onChange:i,fold:o,className:s}){return/* @__PURE__ */ U(v,{role:`radiogroup`,"aria-label":`Material`,className:P(`flex flex-col`,s),children:ls(t).map(([t,s])=>/* @__PURE__ */ U(cs,{...o(t),children:/* @__PURE__ */ U(v,{className:`grid grid-cols-[repeat(auto-fill,minmax(80px,1fr))] gap-1.5 pr-3.5 pb-2`,children:s.map(({name:t,swatch:o,texture:s,tint:c})=>{let l=t===n;return/* @__PURE__ */ W(r,{type:`button`,role:`radio`,"aria-checked":l,"aria-label":t,onClick:()=>i(t),className:P(`flex min-w-0 cursor-pointer flex-col gap-1 rounded-lg p-1 outline-none`,a.accentRing,l&&a.accentTint),children:[/* @__PURE__ */ U(e,{"data-texture":!0,style:{backgroundColor:o,backgroundImage:s?`linear-gradient(${c}, ${c}), url("${s}")`:`linear-gradient(${c}, ${c})`,backgroundBlendMode:s?`multiply, normal`:`multiply`,backgroundSize:`cover`},className:P(`block aspect-square w-full rounded-md border`,l?[a.accentBorder,`ring-2 ring-[#FFC14D]/70`]:`border-white/20`)}),/* @__PURE__ */ U(e,{className:`truncate text-center text-[11px] text-white`,children:t})]},t)})})},t))})}var ds=[.16,1,.3,1];function fs({maps:t,value:n,onPick:i,unsaved:s=!1,onSave:l,onDiscard:u,onResetToBase:d}){let[f,p]=N(!1),[m,h]=N(null),g=M(null),_=M(null),y=M(null),b=G();O(()=>{if(!f)return;let e=y.current?.querySelectorAll(`[role="menuitemradio"], button`);(Array.from(e??[]).find(e=>e.getAttribute(`aria-checked`)===`true`)??e?.[0])?.focus();function t(e){e.target instanceof Node&&g.current?.contains(e.target)||p(!1)}return window.addEventListener(`pointerdown`,t),()=>window.removeEventListener(`pointerdown`,t)},[f,m]);function x(){p(!1),h(null),_.current?.focus()}function S(e){if(s&&e!==n){h({map:e});return}i(e),x()}async function C(e,t){if(!(t===`save`?await l?.():await u?.())){x();return}i(e),x()}function w(e){if(e.key===`Escape`){e.preventDefault(),e.stopPropagation(),x();return}di(y.current,e.key)&&e.preventDefault()}return/* @__PURE__ */ W(e,{ref:g,className:`relative inline-flex min-w-0`,children:[/* @__PURE__ */ U(o,{content:`Switch the map you edit`,children:/* @__PURE__ */ W(r,{ref:_,type:`button`,"aria-haspopup":`menu`,"aria-expanded":f,onClick:()=>p(!f),className:P(`inline-flex h-6 min-w-0 cursor-pointer items-center gap-1 rounded-full px-2 text-xs font-semibold tracking-normal text-white normal-case outline-none hover:bg-white/12`,a.sans,a.accentRing,f&&`bg-white/12`),children:[/* @__PURE__ */ U(e,{className:`truncate`,children:n||`No map`}),/* @__PURE__ */ U(I,{"aria-hidden":!0,className:P(`size-3.5 shrink-0 transition-transform`,f&&`rotate-180`)})]})}),/* @__PURE__ */ U(Pn,{onExitComplete:()=>h(null),children:f&&/* @__PURE__ */ U(v,{initial:!b&&{scaleY:0},animate:{scaleY:1,transition:{duration:.14,ease:ds}},exit:b?void 0:{scaleY:0,transition:{duration:.1,ease:ds}},className:`absolute top-full left-0 z-30 mt-1 w-48 origin-top tracking-normal normal-case`,children:/* @__PURE__ */ U(K,{className:`rounded-xl`,children:/* @__PURE__ */ U(v,{ref:y,role:m?`alertdialog`:`menu`,"aria-label":m?`Confirm`:`Maps`,tabIndex:-1,onKeyDown:w,className:`flex flex-col gap-0.5 p-1.5 outline-none`,children:m?/* @__PURE__ */ W(v,{className:`flex flex-col gap-2 p-1.5`,children:[/* @__PURE__ */ U(e,{className:`text-xs`,children:m===`reset`?`This removes every edit to ${n}. The file's history in git is the only way back.`:`Save changes to ${n}?`}),/* @__PURE__ */ W(v,{className:`flex flex-wrap justify-end gap-1.5`,children:[/* @__PURE__ */ U(E,{label:`Cancel`,tone:c.Neutral,onPress:x}),m===`reset`?/* @__PURE__ */ U(E,{label:`Reset to base`,tone:c.Accent,onPress:()=>{d?.(),x()}}):/* @__PURE__ */ W(H,{children:[/* @__PURE__ */ U(E,{label:`Discard`,tone:c.Neutral,onPress:()=>void C(m.map,`discard`)}),/* @__PURE__ */ U(E,{label:`Save`,tone:c.Accent,onPress:()=>void C(m.map,`save`)})]})]})]}):/* @__PURE__ */ W(H,{children:[t.map(({name:e,mounted:t})=>/* @__PURE__ */ U(ri,{role:ni.MenuItemRadio,label:e,detail:t?`on screen`:void 0,selected:e===n,onPress:()=>S(e)},e)),d&&n!==``&&/* @__PURE__ */ U(ri,{role:ni.MenuItem,label:`Reset ${n} to base…`,className:P(`mt-1 border-t pt-1`,a.divider,a.mutedText),onPress:()=>h(`reset`)})]})})})})})]})}var ps={[Wn.Tree]:`Trees`,[Wn.Bush]:`Bushes`,[Wn.Rock]:`Rocks`,[Wn.Tuft]:`Grass`},ms=[{value:`more`,label:`More`},{value:`thin`,label:`Thin`},{value:`erase`,label:`Erase`}];function hs({families:t,action:n,onChange:r,className:i}){function o(e){let n=t.includes(e)?t.filter(t=>t!==e):[...t,e];n.length>0&&r({families:n})}return/* @__PURE__ */ W(v,{role:`group`,"aria-label":`Scatter`,className:P(`flex flex-col gap-2`,i),children:[/* @__PURE__ */ W(v,{className:`grid grid-cols-[64px_1fr] items-center gap-2`,children:[/* @__PURE__ */ U(e,{className:a.mutedText,children:`Families`}),/* @__PURE__ */ U(v,{className:`flex flex-wrap gap-1`,children:Object.values(Wn).map(e=>/* @__PURE__ */ U(d,{tone:D.Neutral,pressed:t.includes(e),onPress:()=>o(e),children:ps[e]},e))})]}),/* @__PURE__ */ U(Fr,{label:`What a stroke does`,options:ms,value:n,onChange:e=>r({action:e})})]})}function gs({sections:t,onSections:n}){let r=z(e=>e.tree),i=B(e=>e.readMapChoices),o=j(()=>i(),[i,r]),s=B(e=>e.map),l=B(e=>e.tool),u=B(e=>e.brush),d=B(e=>e.undoSteps.length),f=B(e=>e.redoSteps.length),p=B(e=>e.notice),m=B(e=>e.baseMoved),h=B(e=>e.unsaved),g=B(e=>e.changedOnDisk),_=B(e=>e.material),y=B(e=>e.readPaintMaterials),b=B(e=>e.readMapRegions),x=B(e=>e.clear),S=B(e=>e.level),C=B(e=>e.lower),w=B(e=>e.seaPreview),ee=B(e=>e.scatter),{openMap:T,holdTool:te,setBrush:ne,setMaterial:re,setClear:D,setLevel:ie,setLower:ae,setScatter:oe,readSea:se,previewSea:ce,setSea:ue,cancelStroke:O,fillRegion:de,readMaterialLook:A,previewMaterial:M,refineMaterial:fe,duplicateMaterial:pe,settleBase:he,undo:F,redo:ge,save:_e,revert:ve,resetToBase:ye}=B.getState(),be=k(),I=G(),L=s??o.find(({mounted:e})=>e)?.name??``,xe=j(()=>L===``?[]:y(L),[y,L,_,d,f]),Se=j(()=>L===``?[]:b(L),[b,L]),[Ce,we]=N(null),Te=Ce!==null&&Se.includes(Ce)?Ce:Se[0],Ee=(e,r=e)=>{let i=t[r]??!0;return{label:e,open:i,onToggle:()=>n({...t,[r]:!i})}},Oe=le(Ir),ke=/* @__PURE__ */ W(e,{className:`flex min-w-0 flex-1 items-center justify-between gap-1`,children:[/* @__PURE__ */ U(fs,{maps:o,value:L,onPick:T,unsaved:h,onSave:()=>_e(),onDiscard:ve,onResetToBase:()=>void ye(L)}),/* @__PURE__ */ W(e,{className:`flex items-center gap-1`,children:[/* @__PURE__ */ U(e,{className:P(`mr-0.5 text-[11px] tracking-normal normal-case`,a.mutedText),children:g?`Changed on disk`:h?`Unsaved`:`Saved`}),m&&/* @__PURE__ */ W(H,{children:[/* @__PURE__ */ U(q,{label:`Keep my heights`,onPress:()=>void he(`keep-heights`),children:/* @__PURE__ */ U(me,{"aria-hidden":!0,className:`size-3.5`})}),/* @__PURE__ */ U(q,{label:`Move my edits with the ground`,onPress:()=>void he(`move-with-ground`),children:/* @__PURE__ */ U(Je,{"aria-hidden":!0,className:`size-3.5`})})]}),/* @__PURE__ */ U(q,{label:`Undo`,shortcut:Y(J.Undo),disabledReason:d>0?void 0:`Nothing to undo`,onPress:()=>void F(),children:/* @__PURE__ */ U(vt,{"aria-hidden":!0,className:`size-3.5`})}),/* @__PURE__ */ U(q,{label:`Redo`,shortcut:Y(J.Redo),disabledReason:f>0?void 0:`Nothing to redo`,onPress:()=>void ge(),children:/* @__PURE__ */ U(rt,{"aria-hidden":!0,className:`size-3.5`})}),g?/* @__PURE__ */ U(q,{label:`Reload`,onPress:()=>void ve(),children:/* @__PURE__ */ U(it,{"aria-hidden":!0,className:`size-3.5`})}):/* @__PURE__ */ U(q,{label:`Reset`,disabledReason:h?void 0:`Nothing unsaved to reset`,onPress:()=>void ve(),children:/* @__PURE__ */ U(at,{"aria-hidden":!0,className:`size-3.5`})}),/* @__PURE__ */ U(q,{label:g?`Save anyway`:`Save`,shortcut:Y(J.Save),lit:h,disabledReason:h?void 0:`Saved`,onPress:()=>void(g?_e({anyway:!0}):_e()),children:/* @__PURE__ */ U(st,{"aria-hidden":!0,className:`size-3.5`})})]})]});return/* @__PURE__ */ W(v,{role:`group`,"aria-label":`Terrain`,className:`flex flex-col pb-3 text-xs text-white`,children:[Oe&&ur(ke,Oe),/* @__PURE__ */ W(v,{className:P(`sticky top-0 z-10 flex flex-col gap-2.5 px-3.5 py-1`,`bg-[#121620cc] backdrop-blur-[14px]`),children:[!Oe&&ke,/* @__PURE__ */ W(v,{role:`group`,"aria-label":`Terrain tools`,className:`grid grid-cols-7 gap-1.5`,children:[Di.map(({tool:e,label:t,detail:n,icon:r})=>/* @__PURE__ */ U(E,{label:t,hideLabel:!0,detail:n,tone:l===e?c.Accent:c.Neutral,icon:/* @__PURE__ */ U(r,{"aria-hidden":!0,className:`size-4`}),pressed:l===e,className:`h-8 justify-center px-0`,onPress:()=>te(l===e?null:e)},e)),/* @__PURE__ */ U(E,{label:`Clear`,hideLabel:!0,detail:`Paint the base material back`,tone:x?c.Accent:c.Neutral,icon:/* @__PURE__ */ U(Fe,{"aria-hidden":!0,className:`size-4`}),pressed:x,className:`h-8 justify-center px-0`,onPress:()=>D(!x)})]})]}),p&&/* @__PURE__ */ U(e,{role:`status`,initial:!I&&{scaleY:0},animate:{scaleY:1},className:P(`origin-top px-3.5 pt-2`,a.mutedText),children:p},p),/* @__PURE__ */ U(cs,{...Ee(`Brush`),children:/* @__PURE__ */ W(v,{className:`flex flex-col gap-2.5 pr-3.5 pb-2`,children:[/* @__PURE__ */ U($o,{label:`Size`,value:u.radius,...Cn.radius,step:.1,format:e=>`${e.toFixed(1)} m`,hint:`How wide the brush is, in metres`,onChange:e=>ne({radius:e})}),l===`sculpt`&&/* @__PURE__ */ U(os,{lower:C,onChange:ae}),/* @__PURE__ */ U($o,{label:`Strength`,value:u.strength,...Cn.strength,step:.05,format:e=>e.toFixed(2),hint:`How much one dab changes: height for Sculpt, blend for Paint`,onChange:e=>ne({strength:e})}),l===`flatten`&&/* @__PURE__ */ U(rs,{label:`Level`,value:S,empty:`auto`,emptyLabel:`Level where each stroke starts`,hint:`The height Flatten levels to, in metres: type it, drag the label, or Alt+click the ground. A negative level cuts below the map's base, as a pond's bed. Auto levels where each stroke starts.`,onCommit:ie}),l===`scatter`&&/* @__PURE__ */ U(hs,{...ee,onChange:oe}),l===`fill`&&Te!==void 0&&/* @__PURE__ */ W(v,{className:`grid grid-cols-[64px_1fr_auto] items-center gap-2`,children:[/* @__PURE__ */ U(`label`,{htmlFor:be,className:a.mutedText,children:`Region`}),/* @__PURE__ */ U(On,{id:be,label:`Region`,options:Se,value:Te,onChange:we,className:P(a.control,`min-w-0`)}),/* @__PURE__ */ U(E,{label:`Fill region`,tone:c.Neutral,onPress:()=>void de(L,Te)})]})]})}),!x&&xe.some(({name:e})=>e===_)&&/* @__PURE__ */ U(cs,{...Ee(_,`Material`),hint:`Adjust how ${_} looks on this map`,actions:/* @__PURE__ */ U(E,{label:`Duplicate`,hideLabel:!0,detail:`Copy ${_} as a new material you can refine on its own`,tone:c.Plain,icon:/* @__PURE__ */ U(De,{"aria-hidden":!0,className:`size-3.5`}),className:`h-6 px-1`,onPress:()=>void pe(L,_)}),children:/* @__PURE__ */ U(ss,{look:A(L,_),onPreview:e=>M(L,_,e),onCommit:e=>void fe(L,_,e),className:`pr-3.5 pb-2`},`${L}:${_}:${d}:${f}`)}),/* @__PURE__ */ U(us,{materials:xe,value:_,onChange:re,fold:e=>Ee(e,`family:${e}`),className:P(x&&`opacity-40`)}),L!==``&&/* @__PURE__ */ U(cs,{...Ee(`Map`),children:/* @__PURE__ */ U(v,{className:`pr-3.5 pb-2`,children:/* @__PURE__ */ U(rs,{label:`Sea`,value:w?.map===L?w.level:se(L),hint:`The height of the map's sea, in metres: the ground below it is under water, and the coast is where it rises out. Type it, drag the label, or Alt+click the ground with no tool held. A new map's sea stands 1 m below its lowest ground.`,onPreview:e=>ce(L,e),onCommit:e=>ue(L,e),onCancel:O})})})]})}var _s=/* @__PURE__ */ new Map,vs=/* @__PURE__ */ new Map,ys=!1;function bs(e){let{path:t}=e.detail;_s.delete(t),vs.delete(t)}async function xs(e){let t=e.split(`/`).map(encodeURIComponent).join(`/`),n=await fetch(`${cn}${t}`),r=n.headers.get(`Content-Type`)??``;return n.ok&&r.startsWith(`text/markdown`)?n.text():null}function Ss(e){ys||window.addEventListener(sn,bs),ys=!0;let t=_s.get(e);if(!t){let n=xs(e);n.then(t=>{_s.get(e)===n&&vs.set(e,t)},()=>{_s.get(e)===n&&_s.delete(e)}),_s.set(e,n),t=n}return t}function Cs(e){let[t,n]=N();return O(()=>{if(e===void 0)return;let t=!0,r=()=>{let r=Ss(e);return r.then(i=>{t&&_s.get(e)===r&&n({path:e,text:i})},t=>console.error(`The devtools could not read ${e}`,t))},i=t=>{t.detail.path===e&&r()};return r(),window.addEventListener(sn,i),()=>{t=!1,window.removeEventListener(sn,i)}},[e]),t&&t.path===e?t.text:e===void 0?void 0:vs.get(e)}var ws=8,Ts=[0,0,3,2];function Es(e){return e.replace(/[#"<>&]/g,e=>`#${e.charCodeAt(0)};`)}function Ds(e,t){return e.kind===t.kind&&e.name===t.name}function Os({name:e,detail:t,label:n}){return n??(t?`${e}, ${t}`:e)}var ks={name:`Game`,press:{centre:null}};function As(e,t=`Kind`){return{name:or(e),detail:t,press:{centre:{kind:e}}}}function js(e){return{name:or(e.name),detail:or(e.kind),press:{centre:{kind:e.kind,name:e.name}}}}var Ms=/* @__PURE__ */ function(e){return e[e.Game=0]=`Game`,e[e.InUse=1]=`InUse`,e[e.Engine=2]=`Engine`,e}({});function Ns({entries:e}){let t=({kind:e,name:t})=>`${e}:${t}`,n=new Set(e.filter(({engine:e})=>!e).flatMap(({links:e,parent:t})=>t?[...e,t]:e).map(t)),r=e=>e.engine?e.usedBy.length>0||n.has(t(e))?1:2:0;return{ofEntry:r,ofKind:({name:t})=>Math.min(2,...e.filter(({kind:e})=>e===t).map(r))}}function Ps(e,t){return[...e].sort((e,n)=>t(e)-t(n)||or(e.name).localeCompare(or(n.name),void 0,{numeric:!0}))}function Fs(e){return e?T.Engine:T.Game}function Is(e,t){let n=e.filter(({className:e})=>e!==T.Game),r=Math.max(0,t-(e.length-n.length)),i=new Set(n.slice(r));return{shown:e.filter(e=>!i.has(e)),hidden:i.size}}function Ls(e,t){return t>1?`${e} ×${t}`:e}function Rs(e){let t=/* @__PURE__ */ new Map;for(let n of e)t.set(n.name,[...t.get(n.name)??[],n]);return[...t.values()]}function zs([e,...t]){return{name:Ls(e.name,t.length+1),press:{entity:e.id}}}function Bs(e,t,n=2){let{shown:r,hidden:i}=Is(e,Ts[n]);return[...r.map(e=>({...e,detail:void 0,className:e.className===T.Game?T.Game:T.Faded})),...i>0?[{name:`+${i}`,label:`${i} more of ${t.name}`,className:T.Faded,press:t.press}]:[]]}function Vs(e,t){let n=e.map(e=>zt(t,e)),r=n.filter(e=>e!==void 0),i=Rs(r).map(zs),a=n.length-r.length;return a>0&&i.push({name:Ls(`not in the tree`,a),className:T.OffTree}),i}function Hs(e,t){let n=e.kind===R.Behaviour&&t.entries.find(({kind:t,name:n})=>t===`behaviour`&&n.toLowerCase()===e.name.toLowerCase());return{name:e.name,press:n?{centre:{kind:n.kind,name:n.name}}:{entity:e.id},className:n&&!n.engine?T.Game:void 0}}function Us(e,t,n){let r=e.children.flatMap(e=>[e,...e.children]).filter(({kind:e})=>e!==R.Behaviour);return Rs(r).map(e=>{let i=zs(e),a=e[0].children.filter(e=>!r.includes(e));return{...i,next:n>1?Bs(a.map(e=>Hs(e,t)),i):void 0}})}function Ws(e,t){return t.kind===`scene`?gn(e,Sn(t.name)):void 0}function Gs(e,t,{steps:n}){let r=t=>e.entries.find(e=>Ds(e,t)),i=t=>e.entries.filter(({parent:e})=>e&&Ds(e,t)),a=e=>e.links.filter(t=>!i(e).some(e=>Ds(e,t))),o=e=>e.flatMap(e=>r(e)??[]),s=e=>o(a(e)),c=e=>[...i(e),...s(e)],l=e=>t!==null&&`name`in t&&Ds(t,e),u=Ns(e),d=e=>Ps(e,u.ofEntry);function f(e,t,r=2,i=[]){return Bs(d(e.filter(e=>!l(e)&&!i.some(t=>Ds(t,e)))).map(e=>({...js(e),className:Fs(e.engine),next:r<n?f(c(e),e,r+1,[...i,e]):void 0})),typeof t==`string`?As(t):js(t),r)}function p(e,t,r){return{...e,next:n>1?f(t,r,2,typeof r==`string`?[]:[r]):void 0}}function m(e){return p({...js(e),className:Fs(e.engine)},c(e),e)}function h(e,t=[]){let n=r(e)?.parent;return!n||t.some(e=>Ds(e,n))?[]:[...h(n,[...t,n]),n]}function g(e){let t=h(e);return[ks,As(t[0]?.kind??e.kind),...t.map(js)].slice(-n)}function _(e){let t=a(e),n=[...new Set(t.flatMap(({relation:e})=>e??[]))],r=e=>d(o(t.filter(t=>t.relation===e))).map(m);return[{group:T.RefersTo,title:`Refers to`,nodes:r()},...n.map((e,t)=>({group:T.RefersTo,id:`relation${t}`,title:e.charAt(0).toUpperCase()+e.slice(1),nodes:r(e)}))]}function v(t){let n=[...i(t),...s(t)],r=e.entries.flatMap(e=>n.some(t=>Ds(t,e))||t.parent&&Ds(t.parent,e)?[]:e.links.filter(e=>Ds(e,t)).map(t=>({source:e,word:rr(t.relation)})));return[...new Set(r.map(({word:e})=>e))].map((e,t)=>({group:T.RefersTo,id:`backlink${t}`,title:e.charAt(0).toUpperCase()+e.slice(1),nodes:d(r.filter(t=>t.word===e).map(({source:e})=>e)).map(m)}))}return{find:r,madeOf:i,linkGroups:_,backlinkGroups:v,tiers:u,sortEntries:d,withParts:p,entryNode:m,chainOf:g}}function Ks(e,t,n,r){let{find:i,madeOf:a,linkGroups:o,backlinkGroups:s,tiers:c,sortEntries:l,withParts:u,entryNode:d,chainOf:f}=Gs(e,n,r),p=n&&`name`in n&&i(n);if(p){let n=Ws(t,p);return{centre:js(p),chain:f(p),right:[{group:T.MadeOf,title:`Made of`,nodes:l(a(p)).map(d)},...o(p),...s(p),{group:T.UsedBy,title:`Used by`,nodes:Vs(p.usedBy,t)},{group:T.Holds,title:`Holds`,nodes:n?Us(n,e,r.steps):[]}]}}return n&&!(`name`in n)?{centre:{name:or(n.kind),detail:`Kind`},chain:[ks],right:[{group:T.MadeOf,title:`Made of`,nodes:l(e.entries.filter(({kind:e})=>e===n.kind)).map(d)}]}:{centre:{name:`Game`},chain:[],right:[{group:T.MadeOf,title:`Made of`,nodes:Ps(e.kinds,c.ofKind).flatMap(({name:t})=>{let n=e.entries.filter(e=>e.kind===t);return n.length>0?[u({...As(t,String(n.length)),className:Fs(n.every(({engine:e})=>e))},n,t)]:[]})}]}}function qs(e,t,n,{unfolded:r=[],steps:i=2}={}){let{centre:a,chain:o,right:s}=Ks(e,t,n,{steps:i}),c=[`flowchart LR`],l=[],u={},d=0;function f(e,t,n=`n${d++}`){let r=[Es(e.name),e.detail?`<br/><small>${Es(e.detail)}</small>`:``].join(``);return c.push(`${n}["${r}"]:::${e.className??t}`),e.press&&(u[n]={label:Os(e),press:e.press}),n}function p({group:e,id:t=e,title:n,nodes:i}){if(i.length===0)return;let{shown:a,hidden:o}=r.includes(t)?{shown:i,hidden:0}:Is(i,ws),s=o>0?[...a,{name:`${o} more`,className:T.Fold,press:{unfold:t}}]:a;c.push(`subgraph ${t}["${Es(n)}"]`);let u=s.map(t=>f(t,e));c.push(`end`),l.push(`c --- ${t}`),s.forEach(({next:e},t)=>m(u[t],e))}function m(e,t=[]){let n=t.map(t=>{let n=f(t,T.Faded);return l.push(`${e} --- ${n}`),n});t.forEach(({next:e},t)=>m(n[t],e))}f({...a,press:void 0},T.Centre,`c`);let h=o.map(e=>f(e,T.BelongsTo));h.forEach((e,t)=>{l.push(`${e} --- ${h[t+1]??`c`}`)});for(let e of s)p(e);return{source:[...c,...l].join(`
|
|
6
|
+
`),buttons:u,title:Os(a)}}var Js=[],Ys=`[id*="-flowchart-c-"]`,Xs;function Zs({wiki:e,tree:t,centre:n,onCentre:r,onSelectEntity:i,steps:a=2,theme:o=b,className:s}){let c=JSON.stringify(n),[l,u]=N({centre:c,groups:Js}),d=l.centre===c?l.groups:Js,f=M(null),p=M(!1),h=M(void 0),g=`wiki-diagram-${k().replace(/\W/g,``)}`,_=j(()=>qs(e,t,n,{unfolded:d,steps:a}),[e,t,n,d,a]),{source:y}=_,x=[y,...Object.entries(o.classes).map(([e,t])=>`classDef ${e} ${t}`)].join(`
|
|
7
|
+
`),[S,w]=N(()=>Xs?.text===x&&Xs.theme===o?Xs:null),[ee,T]=N(!1),te=S?.theme===o?S.text:void 0,ne=M(_);return O(()=>{ne.current=_}),O(()=>{if(te===x)return;let e=!0;return C(g,x,o).then(({svg:t,id:n})=>{e&&(Xs={...ne.current,svg:t,id:n,text:x,theme:o},w(Xs))}).catch(t=>{console.error(t),e&&T(!0)}),()=>{e=!1}},[x,te,o,g]),O(()=>{let e=S?.source===y?_.buttons:S?.buttons;function t(e){p.current=f.current?.contains(document.activeElement)??!1,`entity`in e?i(e.entity):`unfold`in e?u({centre:c,groups:[...d,e.unfold]}):r(e.centre)}let n=e=>f.current?.querySelector(`[id^="${S?.id}-flowchart-${e}-"]`),a=Object.entries(e??{}).map(([e,{label:r,press:i}])=>{let a=n(e);if(!a)return console.error(`The diagram has no node for "${r}", so it takes no press`),()=>void 0;a.setAttribute(`role`,`button`),a.setAttribute(`tabindex`,`0`),a.setAttribute(`aria-label`,r);let o=()=>t(i),s=e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),t(i))};return a.addEventListener(`click`,o),a.addEventListener(`keydown`,s),()=>{a.removeEventListener(`click`,o),a.removeEventListener(`keydown`,s)}});if(p.current&&S?.source===y){p.current=!1;let e=n(`c`);e?.setAttribute(`tabindex`,`-1`),e?.setAttribute(`aria-label`,S.title),(e??f.current)?.focus()}return()=>{for(let e of a)e()}},[S,y,_,d,c,r,i]),A(()=>{let e=f.current,t=e?.querySelector(Ys);if(!S||!e||!t||h.current===S.title)return;h.current=S.title;let n=e.getBoundingClientRect(),r=t.getBoundingClientRect();e.scrollLeft+=r.left+r.width/2-n.left-e.clientWidth/2,e.scrollTop+=r.top+r.height/2-n.top-e.clientHeight/2},[S]),!S&&!ee?/* @__PURE__ */ U(m,{label:`Drawing the map`,className:zn(`h-40`,s)}):/* @__PURE__ */ U(v,{className:zn(`relative flex flex-col`,s),children:/* @__PURE__ */ U(v,{ref:f,role:`figure`,"aria-label":S?.title,tabIndex:-1,className:`min-h-0 overflow-auto px-2 pt-1 pb-2 outline-none [&>svg]:mx-auto [&>svg]:block`,dangerouslySetInnerHTML:{__html:S?.svg??``}})})}var Qs=ce(()=>import(`./CQCYoLJa.js`).then(e=>({default:e.WikiReader})));function $s(e){return/* @__PURE__ */ U(oe,{fallback:/* @__PURE__ */ U(m,{label:`Loading the reader`,className:zn(`h-16`,e.className)}),children:/* @__PURE__ */ U(Qs,{...e})})}function ec(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function tc({properties:t,readOnlyReason:n,readOnlyReasonId:r}){let i=(e,t,i)=>/* @__PURE__ */ U(v,{role:`group`,"aria-label":t,className:P(`flex flex-col gap-1 border-l pl-2.5`,a.divider),children:/* @__PURE__ */ U(tc,{properties:i,readOnlyReason:n,readOnlyReasonId:r})},e);return Object.entries(t).map(([t,o])=>{let s=Array.isArray(o)&&o.every(ec)?o:[];return ec(o)||s.length>0?/* @__PURE__ */ W(ae,{children:[/* @__PURE__ */ U(re,{name:t,readOnlyReason:n}),ec(o)?i(t,t,o):s.map((e,n)=>i(String(n),`${t} ${n+1}`,e))]},t):o===`function`?/* @__PURE__ */ U(re,{name:t,middle:/* @__PURE__ */ U(e,{className:a.mutedText,children:`function`}),readOnlyReason:n},t):/* @__PURE__ */ U(x,{prop:Pa(t,o,void 0),onChange:()=>void 0,readOnlyReason:n,readOnlyReasonId:r},t)})}function nc({properties:e,readOnlyReason:t,className:n}){let r=k();return/* @__PURE__ */ W(v,{className:P(h,n),children:[/* @__PURE__ */ U(`p`,{id:r,className:a.mutedText,children:t}),/* @__PURE__ */ U(tc,{properties:e,readOnlyReason:t,readOnlyReasonId:r})]})}function rc({entry:e,className:t}){let n=z(e=>e.tree),{name:r,usedBy:i}=e,[a]=N(()=>{try{return z.getState().dump().entities}catch{return{}}}),o=Object.fromEntries(i.map(e=>{let t=zt(n,e),i=a[e]?.[r];return[t?Ht(t):e,JSON.parse(JSON.stringify(i??null))]}));return/* @__PURE__ */ U(nc,{properties:o,readOnlyReason:`Read from the running game as this opened`,className:t})}var ic=/* @__PURE__ */ new Set([`behaviour`,`trait`]);function ac({entry:e,kindPage:t,onOpen:n,openRoute:i,onSendToAgent:o,fold:s,note:c}){let d=e.engine?e.page??t:e.page,[f,p]=d?.split(`#`)??[],h=e.engine?f?.slice(1):cr(e),g=Cs(h),[_,y]=N(!1);return/* @__PURE__ */ W(H,{children:[/* @__PURE__ */ U(ta,{title:or(e.name),detail:or(e.kind),actions:/* @__PURE__ */ U(te,{code:e.name,page:d,source:e.source}),children:_&&g&&d&&e.engine?/* @__PURE__ */ U(`a`,{href:l(d),target:`_blank`,rel:`noreferrer`,className:P(`self-start`,u,a.mono),children:d}):_&&g&&h?/* @__PURE__ */ U(`a`,{href:ee(h),onClick:S,className:P(`self-start`,u,a.mono),children:h}):void 0}),/* @__PURE__ */ W(v,{className:`min-h-0 flex-1 overflow-auto pb-2 text-xs`,children:[e.description&&/* @__PURE__ */ U(`p`,{className:`px-3.5 pt-2.5`,children:e.description}),c&&/* @__PURE__ */ U(`p`,{className:P(`px-3.5 pt-2.5`,a.mutedText),children:c}),e.properties&&/* @__PURE__ */ U(cs,{...s(`Properties`),children:/* @__PURE__ */ U(nc,{properties:e.properties,readOnlyReason:e.engine?`Written in the engine's code`:`Written in the game's code`,className:`mx-3.5 mb-2.5`})}),ic.has(e.kind)&&e.usedBy.length>0&&/* @__PURE__ */ U(cs,{...s(`Used by`),count:e.usedBy.length,children:/* @__PURE__ */ U(rc,{entry:e,className:`mx-3.5 mb-2.5`})}),g===void 0&&h?/* @__PURE__ */ U(cs,{...s(`Page`),children:/* @__PURE__ */ U(m,{label:`Reading the page`,className:`mx-3.5 mb-2.5 h-16`})}):g&&h?/* @__PURE__ */ U(cs,{...s(`Page`),actions:_&&/* @__PURE__ */ U(r,{type:`button`,onClick:()=>y(!1),className:P(u,`tracking-normal normal-case`),children:`Show less`}),children:/* @__PURE__ */ W(v,{className:`px-3.5 pb-2.5`,children:[/* @__PURE__ */ U($s,{text:g,path:h,onOpen:n,openRoute:i,opening:!_,section:e.engine?p:void 0}),!_&&/* @__PURE__ */ U(r,{type:`button`,onClick:()=>y(!0),className:u,children:`Read more`})]})}):g===null&&h&&!e.engine&&/* @__PURE__ */ U(cs,{...s(`Page`),children:/* @__PURE__ */ W(r,{type:`button`,title:`Send to agent`,onClick:()=>o(h,`Write the wiki page for ${e.kind} ${e.name} with the write_wiki_page tool.`),className:P(`mx-3.5 mb-2.5 flex items-center gap-1 text-[11px] outline-none hover:underline`,a.mono,a.mutedText,a.accentRing),children:[/* @__PURE__ */ U(Re,{"aria-hidden":!0,className:`size-3`}),h]})})]})]})}function oc(e){let t={ArrowDown:1,ArrowUp:-1}[e.key];if(t===void 0)return;let n=Array.from(e.currentTarget.querySelectorAll(`[role="option"]`)),r=n.indexOf(document.activeElement);r!==-1&&(e.preventDefault(),n[r+t]?.focus())}function sc({label:t,entries:n,showKind:r=!1,onOpen:i}){return/* @__PURE__ */ U(v,{role:`listbox`,"aria-label":t,tabIndex:-1,onKeyDown:oc,className:`px-1.5 outline-none`,children:n.map(({kind:t,name:n,usedBy:o,engine:s},c)=>/* @__PURE__ */ U(ri,{role:ni.Option,label:or(n),detail:r&&or(t),tabbable:c===0,trailing:o.length>0&&/* @__PURE__ */ U(e,{className:P(`flex h-4 items-center rounded-full bg-white/12 px-1.5 text-[10.5px]`,a.mono,a.mutedText),children:o.length}),onPress:()=>i({kind:t,name:n}),className:P(s&&a.mutedText)},`${t}:${n}`))})}function cc({label:e,entries:t,unused:n,unusedFold:r,onOpen:i}){return/* @__PURE__ */ W(H,{children:[t.length>0&&/* @__PURE__ */ U(sc,{label:e,entries:t,onOpen:i}),n.length>0&&/* @__PURE__ */ U(cs,{...r(`${n.length} more from the engine`),children:/* @__PURE__ */ U(sc,{label:`${e} from the engine`,entries:n,onOpen:i})})]})}function lc({label:e,onPress:t}){let n=`Open ${e}`;return/* @__PURE__ */ U(o,{content:n,description:``,children:/* @__PURE__ */ U(r,{type:`button`,"aria-label":n,onClick:t,className:P(_,`-my-1.5`),children:/* @__PURE__ */ U(F,{"aria-hidden":!0,className:`size-3.5`})})})}function uc({kind:e,count:t,fold:n,children:r}){return/* @__PURE__ */ W(H,{children:[/* @__PURE__ */ U(ta,{title:or(e.name),detail:`Kind`,actions:/* @__PURE__ */ U(te,{code:e.name,page:e.page})}),/* @__PURE__ */ W(v,{className:`min-h-0 flex-1 overflow-auto pb-2 text-xs`,children:[/* @__PURE__ */ U(`p`,{className:`px-3.5 pt-2.5`,children:e.description}),t>0&&/* @__PURE__ */ U(cs,{...n(`Entries`),count:t,children:r})]})]})}var dc={search:``,kind:null,sections:{}},fc={server:`on the room alone`,client:`on each page alone`,both:`on the room and on each page`};function pc({name:e,kind:t,description:n=``},r){return[e,or(e),t,n].some(e=>e.toLowerCase().includes(r))}function mc({kinds:e,entries:t},n){let r=[...t,...e.map(({name:e,page:t})=>({kind:e,page:t}))],[i]=n.split(`#`);return r.find(({page:e})=>e===n)??r.find(({page:e})=>e===i)}function hc({wiki:e,tree:t,open:n,onOpen:r,browse:i,onBrowse:o,onSelectEntity:s,onSendToAgent:c,className:l}){let{search:u,sections:d}=i,f=u.trim().toLowerCase(),p=n&&e.entries.find(({kind:e,name:t})=>e===n.kind&&t===n.name),h=e.kinds.find(({name:e})=>e===i.kind),g=Cs(p||h?void 0:sr),_=j(()=>p?{kind:p.kind,name:p.name}:h?{kind:h.name}:null,[p,h]);function y(e){r(null),o({...i,kind:e})}let b=(e,t=e,n=!0)=>{let r=d[t]??n;return{label:e,open:r,onToggle:()=>o({...i,sections:{...d,[t]:!r}})}},x=(e,t)=>f?{label:e,open:!0}:b(e,t),S=j(()=>Ns(e),[e]),C=e=>S.ofEntry(e)!==Ms.Engine;function w(t,n=``){let i=Ps(e.entries.filter(e=>e.kind===t&&pc(e,n)),S.ofEntry),a=/* @__PURE__ */ U(cc,{label:or(t),entries:n?i:i.filter(C),unused:n?[]:i.filter(e=>!C(e)),unusedFold:e=>b(e,`engine:${t}`,!1),onOpen:r});return{count:i.length,list:a}}let ee=Ps(e.kinds,S.ofKind).map(({name:e})=>({name:e,...w(e,f)})).filter(({count:e})=>e>0),T=h&&{kind:h,...w(h.name)};return/* @__PURE__ */ W(v,{className:zn(`flex min-h-0 flex-1 flex-col`,l),children:[/* @__PURE__ */ U(Zs,{wiki:e,tree:t,centre:_,onCentre:e=>e&&`name`in e?r(e):y(e?.kind??null),onSelectEntity:s,className:P(`max-h-[40%] shrink-0 border-b`,a.divider)}),p?/* @__PURE__ */ U(ac,{entry:p,kindPage:e.kinds.find(({name:e})=>e===p.kind)?.page,onOpen:e=>e?r(e):y(null),openRoute:t=>{let n=mc(e,t);if(n)return`name`in n?()=>r(n):()=>y(n.kind)},onSendToAgent:c,fold:e=>b(e,e,e!==`Page`),note:p.kind===`scene`&&!Ws(t,p)?`Holds nothing until it runs.`:p.phase&&`Runs in the ${p.phase} phase of the step${p.runsOn?`, ${fc[p.runsOn]}`:``}.`},`${p.kind}:${p.name}`):T?/* @__PURE__ */ U(uc,{kind:T.kind,count:T.count,fold:b,children:T.list}):/* @__PURE__ */ W(H,{children:[/* @__PURE__ */ U(zr,{label:`Search the wiki`,placeholder:`Names, kinds, descriptions`,value:u,onChange:e=>o({...i,search:e})}),/* @__PURE__ */ W(v,{className:`min-h-0 flex-1 overflow-auto pb-2`,children:[ee.length>0&&/* @__PURE__ */ U(cs,{...x(`Your game`),children:ee.map(({name:e,count:t,list:n})=>/* @__PURE__ */ U(cs,{...x(or(e),`kind:${e}`),count:t,actions:/* @__PURE__ */ U(lc,{label:or(e),onPress:()=>y(e)}),children:n},e))}),g!==null&&!f&&/* @__PURE__ */ U(cs,{...b(`Overview`,`Overview`,!1),children:g===void 0?/* @__PURE__ */ U(m,{label:`Reading the overview`,className:`mx-3.5 h-16`}):/* @__PURE__ */ U($s,{text:g,path:sr,onOpen:e=>e?r(e):y(null),className:`px-3.5 pb-2 text-xs`})})]})]})]})}var gc=/* @__PURE__ */ function(e){return e.Entities=`entities`,e.Map=`map`,e.Wiki=`wiki`,e.Assets=`assets`,e}({}),_c={entities:{title:`Entities`,icon:/* @__PURE__ */ U(Ue,{"aria-hidden":!0,className:`size-4`})},map:{title:`Map`,icon:/* @__PURE__ */ U(Ke,{"aria-hidden":!0,className:`size-4`})},wiki:{title:`Wiki`,icon:/* @__PURE__ */ U(ge,{"aria-hidden":!0,className:`size-4`})},assets:{title:`Assets`,icon:/* @__PURE__ */ U(ve,{"aria-hidden":!0,className:`size-4`})}};function vc(e){try{return e()}catch{return{kinds:[],entries:[]}}}function yc({tab:e,onTab:t,open:n,onOpen:r,browse:i,onBrowse:a,mapSections:o,onMapSections:s,onClose:c,onOpenMenu:l,onSelect:u,onSendToAgent:d}){let f=z(e=>e.tree),p=z(e=>e.selectedId),m=z(e=>e.selectedIds),h=z(e=>e.select),g=z(e=>e.toggleSelect),_=z(e=>e.wiki),y=_c[e];function b(e){h(e),u?.()}let x=j(()=>e===`wiki`?vc(_):void 0,[e,_,f]),S=e===`assets`?/* @__PURE__ */ U(Qo,{onSelect:u}):e===`map`?/* @__PURE__ */ U(v,{className:`min-h-0 flex-1 overflow-y-auto`,children:/* @__PURE__ */ U(gs,{sections:o,onSections:s})}):x?/* @__PURE__ */ U(hc,{wiki:x,tree:f,open:n,onOpen:r,onSelectEntity:e=>{t?.(`entities`),b(e)},browse:i,onBrowse:a,onSendToAgent:d}):/* @__PURE__ */ U(Yo,{nodes:f,selectedId:p??void 0,selectedIds:m,onSelect:(e,t)=>{t?g(e):h(e),u?.()},onContextMenu:(e,t)=>{gn(f,e)?.entityId!==void 0&&(t.preventDefault(),l({id:e,x:t.clientX,y:t.clientY}))}});return/* @__PURE__ */ U(Vr,{title:y.title,icon:y.icon,onClose:c,children:S})}function bc({id:e,title:t}){return`panel:${e??t}`}function xc(e){return[...e].sort((e,t)=>(e.order??1/0)-(t.order??1/0)||0)}function Sc({rect:e,anchor:t,size:n,...r}){let i=G(),a=Ln(e.left),o=Ln(e.top),s=Ln(e.width),c=Ln(e.height),l=Ln(t.x),u=Ln(t.y),d=Rn([a,s,l],([e,t,r])=>Cc(e+r*t,window.innerWidth-n.width)),f=Rn([o,c,u],([e,t,r])=>Cc(e+r*t,window.innerHeight-n.height));return A(()=>{a.set(e.left),o.set(e.top),s.set(e.width),c.set(e.height)},[a,o,s,c,e]),A(()=>{if(i){l.jump(t.x),u.jump(t.y);return}let e=[In(l,t.x,V.snappy),In(u,t.y,V.snappy)];return()=>e.forEach(e=>e.stop())},[l,u,t.x,t.y,i]),/* @__PURE__ */ U(v,{...r,style:{position:`absolute`,left:d,top:f}})}function Cc(e,t){return Math.max(0,Math.min(e,t))}var wc=[`-top-1 -left-1`,`-top-1 -right-1`,`-bottom-1 -left-1`,`-bottom-1 -right-1`],Tc={x:1,y:1},Ec=`size-7`,Dc=112,Oc=40,kc={scale:.5,opacity:0},Ac={scale:1,opacity:1},jc=`size-3.5`;function Mc({rect:t,name:n,type:r,selected:i=!1,anchor:o=Tc,pinned:s=!1,bare:c=!1,nameless:l=!1,onSendToAgent:u,onInspect:d,onTogglePin:f}){let p=G(),m=p?{}:{rotate:90,scale:0},h=s?bt:$e;return/* @__PURE__ */ W(v,{className:`pointer-events-none`,children:[(i||s)&&d&&/* @__PURE__ */ U(Sc,{"data-strip":!0,rect:t,anchor:o,size:{width:Dc,height:Oc},className:`pointer-events-auto z-10`,children:/* @__PURE__ */ W(v,{initial:!p&&kc,animate:Ac,className:`flex origin-top-left gap-1 pt-1.5 pl-1.5`,children:[u&&/* @__PURE__ */ U(hr,{label:`Send to agent`,icon:/* @__PURE__ */ U(ui,{tone:ci.Plain}),onPress:u,className:Ec}),/* @__PURE__ */ U(hr,{label:`Inspect`,icon:/* @__PURE__ */ U(ut,{"aria-hidden":!0,className:jc}),onPress:d,className:Ec}),f&&/* @__PURE__ */ U(hr,{label:s?`Unpin`:`Pin`,pressed:s,icon:/* @__PURE__ */ U(Pn,{initial:!1,mode:`popLayout`,children:/* @__PURE__ */ U(e,{initial:{...m,rotate:-(m.rotate??0)},animate:{rotate:0,scale:1},exit:m,transition:V.snappy,className:`inline-flex`,children:/* @__PURE__ */ U(h,{"aria-hidden":!0,className:jc})},s?`unpin`:`pin`)}),onPress:f,className:Ec})]})}),!c&&!l&&/* @__PURE__ */ W(v,{"aria-hidden":!0,"data-outline-name":!0,style:{left:t.left,top:t.top},className:`absolute flex -translate-y-full items-baseline gap-1.5 pb-1 whitespace-nowrap`,children:[/* @__PURE__ */ U(An,{className:P(`font-semibold`,a.mono),children:n}),/* @__PURE__ */ U(An,{size:`xs`,className:`font-medium opacity-90`,children:r})]}),!c&&/* @__PURE__ */ U(H,{children:/* @__PURE__ */ U(v,{"aria-hidden":!0,"data-outline":!0,style:t,className:P(`absolute rounded-md`,i?`border-2 border-[#FFC14D] shadow-[0_0_0_1.5px_rgba(8,12,22,0.9),inset_0_0_0_1.5px_rgba(8,12,22,0.9)]`:`border-[1.5px] border-white shadow-[0_0_0_1px_rgba(8,12,22,0.9),inset_0_0_0_1px_rgba(8,12,22,0.9)]`),children:i&&wc.map(t=>/* @__PURE__ */ U(e,{"data-handle":!0,className:P(`absolute size-2 shadow-[0_0_0_1.5px_rgba(8,12,22,0.9)]`,a.accentFill,t)},t))})})]})}function Nc({target:e}){return e instanceof HTMLCanvasElement?e:!(e instanceof HTMLElement)||e.querySelector(`[data-devtools]`)?null:e.querySelector(`canvas`)}function Pc({onSendToAgent:e,onInspect:t,onSelect:n}){let r=de(()=>n?.()),i=z(e=>e.tree),a=z(e=>e.selectedIds),o=z(e=>e.screenRects),s=z(e=>e.pinnedIds),c=z(e=>e.hoveredId),l=z(e=>e.worldPanels),{pin:u,unpin:d}=z.getState(),[f,p]=N({});return O(()=>{p(e=>{let t=Object.entries(e).filter(([e])=>a.includes(e)||s.includes(e));return t.length===Object.keys(e).length?e:Object.fromEntries(t)})},[a,s]),O(()=>{let{hover:e,select:t,toggleSelect:n}=z.getState();function i(e){let t=Nc(e);if(!t)return null;let{left:n,top:r,width:i,height:a}=t.getBoundingClientRect();return Gt((e.clientX-n)/i*2-1,1-(e.clientY-r)/a*2)}function a(t){e(i(t))}function o(e){if(B.getState().card)return;let a=i(e);if(!a)return;let o=z.getState().screenRects[a],s=Nc(e).getBoundingClientRect();o&&p(t=>({...t,[a]:{x:(e.clientX-s.left-o.left)/o.width,y:(e.clientY-s.top-o.top)/o.height}})),Or(e)?n(a):t(a),r()}return window.addEventListener(`pointermove`,a),window.addEventListener(`click`,o),()=>{window.removeEventListener(`pointermove`,a),window.removeEventListener(`click`,o),e(null)}},[]),Object.entries(o).map(([n,r])=>{let o=gn(i,n);if(!o)return null;let p=s.includes(n);return/* @__PURE__ */ U(Mc,{rect:r,name:Ht(o),type:o.children.filter(({kind:e})=>e===R.Behaviour).map(({name:e})=>e).join(`, `),selected:a.includes(n),bare:p&&!a.includes(n)&&n!==c,nameless:p&&l,anchor:f[n],pinned:p,onSendToAgent:(o.entityId??o.index)===void 0?void 0:()=>e(n),onInspect:()=>t(n),onTogglePin:o.kind===R.Entity?()=>p?d(n):u(n):void 0},n)})}function Fc(e){e.stopPropagation()}var Ic={scale:.3,opacity:0,y:24},Lc={scale:1,opacity:1,y:0};function Rc({entity:t,panel:n,onChange:r,onStatChange:i,onUnpin:o,folding:s=!1,onFolded:c}){let[l,u]=N(!1),d=G(),f=t.behaviours.length+Number(t.stats!==void 0)+(t.machines?.length??0);return/* @__PURE__ */ W(K,{"aria-label":`${t.name} ${t.entityId??``}`.trim(),role:`region`,onPointerDown:Fc,onClick:Fc,onWheel:Fc,onContextMenu:Fc,initial:!d&&Ic,animate:s?Ic:Lc,onAnimationComplete:()=>{s&&c?.()},className:P(`flex w-72 origin-bottom flex-col gap-1.5 p-2 text-xs whitespace-normal`,a.sans),children:[/* @__PURE__ */ W(v,{className:`flex items-center gap-2 pl-1`,children:[/* @__PURE__ */ U(e,{className:`text-[13px] font-semibold`,children:t.name}),t.entityId!==void 0&&/* @__PURE__ */ U(e,{className:P(a.mono,a.mutedText),children:t.entityId}),/* @__PURE__ */ U(e,{className:`ml-auto`,children:/* @__PURE__ */ U(q,{label:`Unpin`,onPress:o,children:/* @__PURE__ */ U(bt,{"aria-hidden":!0,className:`size-3.5`})})})]}),n&&/* @__PURE__ */ U(ma,{...n}),f>0&&/* @__PURE__ */ U(cs,{label:`Behaviours`,count:f,open:l,onToggle:()=>u(!l),children:/* @__PURE__ */ U(Sa,{entity:t,onChange:r,onStatChange:i})})]})}function zc(e,t){let[n,r]=N(e),[i,a]=N([]);return n!==e&&(r(e),t&&a([...i,...n].filter(t=>!e.includes(t)))),{leaving:i,done:e=>a(t=>t.filter(t=>t!==e))}}var Bc=.9,Vc=30;function Hc({id:e,folding:t,onFolded:n}){let r=z(e=>e.tree),i=Zt(e),a=rn(e),o=nn(e),{setProp:s,setStatBase:c,readStatFields:l,unpin:u}=z.getState(),d=gn(r,e),f=t&&!d;if(O(()=>{f&&n()}),!d)return null;let{behaviours:p,stats:m,machines:h}=Va(d,void 0,a,o,l);return/* @__PURE__ */ U(pn,{id:e,width:Bc,maxDistance:Vc,children:/* @__PURE__ */ U(Rc,{entity:{name:d.name,entityId:oi(d),behaviours:p,stats:m,machines:h},panel:i,onChange:s,onStatChange:(t,n)=>c({id:e,name:t,base:n}),onUnpin:()=>u(e),folding:t,onFolded:n})})}function Uc(){let e=z(e=>e.worldPanels),t=z(e=>e.pinnedIds),{leaving:n,done:r}=zc(t,!G());return e?[...t,...n].map(e=>/* @__PURE__ */ U(Hc,{id:e,folding:n.includes(e),onFolded:()=>r(e)},e)):null}var Wc=[{value:`0.25`,label:`0.25×`},{value:`1`,label:`1×`},{value:`2`,label:`2×`}],Gc=10,Kc=-10,qc=.1,Jc=Array.from({length:11},(e,t)=>t*10),Yc=`The room keeps running`;function Xc(e){return Math.round(Math.min(Math.max(e,-10),0)*10)/10}function Zc(){return/* @__PURE__ */ U(e,{"aria-hidden":!0,className:`h-[22px] w-px shrink-0 bg-white/14`})}function Qc({paused:n,speed:r,recording:i,playheadSeconds:o,framesPerSecond:c,room:l,camera:u,onTogglePause:d,onStep:f,onSpeed:p,onSeek:m,scrubber:h=!0,className:g}){let _=o<0,y=l?Yc:void 0,b=(1+o/Gc)*100,x=100/Math.max(i.length,1),S=M(null),C=de(e=>{let t=S.current;if(!t)return;let{left:n,width:r}=t.getBoundingClientRect();m(Xc(((e.clientX-n)/r-1)*Gc))});O(()=>{let e=S.current;if(e)return Mn({host:e,onGrab:e=>C(e),onMove:e=>C(e),onRelease:()=>void 0})},[]);function w(e){let t={ArrowLeft:o-qc,ArrowRight:o+qc,Home:-10,End:0}[e.key];t!==void 0&&(e.preventDefault(),m(Xc(t)))}return/* @__PURE__ */ W(K,{className:P(`flex min-h-11 flex-wrap items-center gap-2 rounded-[22px] px-2.5 py-1.5 text-xs`,g),children:[/* @__PURE__ */ U(q,{label:n?`Play`:`Pause`,shortcut:Y(J.TogglePause),disabledReason:y,onPress:d,children:U(n?tt:Qe,{"aria-hidden":!0,className:`size-3.5`})}),/* @__PURE__ */ U(q,{label:`Step one frame`,shortcut:Y(J.StepFrame),disabledReason:y,onPress:f,children:/* @__PURE__ */ U(pt,{"aria-hidden":!0,className:`size-3.5`})}),/* @__PURE__ */ U(Zc,{}),/* @__PURE__ */ U(Fr,{label:`Speed`,options:Wc,value:String(r),onChange:e=>p(Number(e)),disabledReason:y}),h&&/* @__PURE__ */ W(H,{children:[/* @__PURE__ */ U(Zc,{}),/* @__PURE__ */ W(v,{role:`slider`,tabIndex:0,"aria-label":`Replay the last ${Gc} seconds`,"aria-valuemin":Kc,"aria-valuemax":0,"aria-valuenow":o,ref:S,onKeyDown:w,className:P(`relative h-[30px] w-[200px] shrink-0 cursor-pointer touch-none overflow-hidden rounded-lg border bg-black/25 outline-none`,a.accentRing,_?a.accentBorder:`border-white/20`),children:[i.map((t,n)=>/* @__PURE__ */ U(e,{className:P(`absolute bottom-[9px] rounded-[1px]`,n*x<b?`bg-white/22`:`bg-white/10`),style:{left:`${n*x}%`,width:`${x*.6}%`,height:Math.max(2,Math.round(t*12))}},n)),Jc.map(t=>/* @__PURE__ */ U(e,{className:P(`absolute bottom-0 w-px bg-white/60`,t%50==0?`h-[9px]`:`h-[5px]`),style:{left:`${t}%`}},t)),_&&/* @__PURE__ */ U(e,{className:`absolute inset-y-0 right-0 bg-[repeating-linear-gradient(135deg,rgba(255,193,77,0.18)_0_4px,transparent_4px_8px)]`,style:{left:`${b}%`}}),/* @__PURE__ */ U(e,{className:P(`absolute inset-y-0 w-0.5 -translate-x-px shadow-[0_0_0_1px_rgba(8,12,22,0.9)]`,_?a.accentFill:`bg-white`),style:{left:`${b}%`}}),/* @__PURE__ */ W(e,{className:P(`absolute inset-y-0 left-1.5 flex translate-y-2 items-center text-[10px]`,a.mono,a.mutedText),children:[`−`,Gc,` s`]}),/* @__PURE__ */ U(e,{className:P(`absolute inset-y-0 right-1.5 flex translate-y-2 items-center gap-1 text-[10px]`,a.mono,_?`font-semibold text-[#FFC14D]`:n?a.mutedText:`text-[#7CE38B]`),children:_?`−${Math.abs(o).toFixed(1)} s`:n?`now`:/* @__PURE__ */ W(H,{children:[/* @__PURE__ */ U(s,{tone:t.Live}),`live`]})})]})]}),/* @__PURE__ */ U(Zc,{}),u,/* @__PURE__ */ U(e,{className:`ml-auto`,children:/* @__PURE__ */ U(Z,{value:c>0?Math.round(c):`–`,unit:`fps`})})]})}var $c=50;function el(e){let{seek:t}=z.getState(),n=t(e-1);if(!n)return[];let r=n.seconds-Yt,i=Array($c).fill(0);for(let e=0,n;n=t(e);e++){let e=Math.floor((n.seconds-r)/Yt*$c);i[Math.min(Math.max(e,0),49)]+=1}let a=Math.max(...i);return i.map(e=>e/a)}function tl(e,t){let{seek:n}=z.getState(),r=n(e-1);if(!r)return t;let i=t;for(let e=0,a;a=n(e);e++){let e=a.seconds-r.seconds;if(e>=t)break;i=e}return i}function nl(){let{paused:e,pause:t,resume:n}=z.getState();(e?n:t)()}function rl({playheadSeconds:e,onPlayheadSeconds:t,framesPerSecond:n,scrubber:r,camera:i,className:a}){let o=z(e=>e.paused),s=z(e=>e.speed),c=z(e=>e.recordedFrames),l=En(e=>e.seconds),u=Tn(),d=Math.floor(l*$c/Yt),f=j(()=>el(c),[c,d]);return X(J.TogglePause,nl,{capture:!0}),X(J.StepFrame,()=>z.getState().stepFrame(),{capture:!0,repeat:!0}),X(J.StepBack,()=>t(e=>tl(z.getState().recordedFrames,e)),{capture:!0,repeat:!0}),/* @__PURE__ */ U(Qc,{paused:o,speed:s,recording:f,playheadSeconds:e,framesPerSecond:n,room:u.status===fn.Closed?void 0:u,camera:i,onTogglePause:nl,onStep:()=>z.getState().stepFrame(),onSpeed:e=>z.getState().setSpeed(e),onSeek:t,scrubber:r,className:a})}var il=[un.Error,un.Warning,un.Info];function al(e,t){let n=e.filter(({id:e})=>Number(e)>t);return{count:n.length,level:il.find(e=>n.some(t=>t.level===e))}}function ol(){let[e,t]=N();return O(()=>{let e,n=n=>{let{detail:r}=n;if(clearTimeout(e),r.state===Bn.Detached){t(void 0);return}t(r),e=setTimeout(()=>t(void 0),Kn*3)};return window.addEventListener(Gn,n),()=>{clearTimeout(e),window.removeEventListener(Gn,n)}},[]),e}function sl({map:e}){let t=z(e=>e.previewPlayer);return/* @__PURE__ */ U(Dt,{map:e,children:t?/* @__PURE__ */ U(Lt,{position:t.position,facing:t.facing}):/* @__PURE__ */ U(Ct,{follow:null})})}function cl(){let e=le(Ft)?.scenes,t=B(e=>e.map);At(`map preview`,()=>{let{readMapChoices:e,openMap:t}=B.getState();return{maps:e(),open:t}}),O(()=>{let n=t??new URLSearchParams(window.location.search).get(`map`);if(n===null||!e)return;let{registerScene:r,go:i}=e.getState(),a=r(kt,()=>/* @__PURE__ */ U(sl,{map:n}));return i(kt),()=>{a(),z.setState({previewPlayer:null})}},[e,t])}var ll=1.1;function ul(e){let t=B(e=>e.tool!==null),n=B(e=>e.card!==null),{undo:r,redo:i,save:a,holdTool:o,holdCard:s,setBrush:c,setAdjusting:l}=B.getState(),u=e&&t;X(J.Undo,()=>void r(),{enabled:e}),X(J.Redo,()=>void i(),{enabled:e}),X(J.Save,()=>void a(),{enabled:e}),X(J.ResizeBrush,({key:e})=>{let{radius:t}=B.getState().brush;c({radius:e===`[`?t/ll:t*ll})},{enabled:u,repeat:!0}),X(J.PutToolDown,()=>o(null),{enabled:u}),X(J.PutCardDown,()=>s(null),{enabled:e&&n}),O(()=>{if(!u)return;function e(e){e.key.toLowerCase()===`b`&&(e.metaKey||e.ctrlKey||Vt(e)||l(e.shiftKey?`strength`:`size`))}function t(e){e.key.toLowerCase()===`b`&&l(null)}function n(){l(null)}return window.addEventListener(`keydown`,e),window.addEventListener(`keyup`,t),window.addEventListener(`blur`,n),()=>{window.removeEventListener(`keydown`,e),window.removeEventListener(`keyup`,t),window.removeEventListener(`blur`,n),l(null)}},[u,l])}function dl(e){O(()=>(window.__GAME_PLAYTEST_ACTIONS__={list:()=>e.map(e=>e.name),run:async t=>{let n=e.find(e=>e.name.toLowerCase()===t.toLowerCase());if(!n)throw Error(`No playtest action is named ${JSON.stringify(t)}: the game lists ${e.map(e=>e.name).join(`, `)||`none`}.`);let r=await n.run();return typeof r==`string`?r:void 0}},()=>{delete window.__GAME_PLAYTEST_ACTIONS__}),[e])}function fl({panel:t,onClose:n}){let{title:r,icon:i=Ze,component:a}=t;return/* @__PURE__ */ U(Vr,{title:r,icon:/* @__PURE__ */ U(e,{"aria-hidden":!0,className:`flex`,children:/* @__PURE__ */ U(i,{className:`size-4`})}),onClose:n,children:/* @__PURE__ */ U(v,{className:`flex min-h-0 flex-1 flex-col items-start gap-1 overflow-auto px-3.5 pb-3 text-xs`,children:/* @__PURE__ */ U(a,{})})})}function pl({label:e,chords:t},n){return[e,...t.flat()].some(e=>e.toLowerCase().includes(n))}function ml({onClose:t,focusSearch:n,surfaces:r,unanswered:i=[],className:o}){let[s,c]=N(``),l=M(null);O(()=>{n&&l.current?.focus()},[n]);let u=s.trim().toLowerCase(),d=Tr.map(e=>({...e,bindings:e.bindings.filter(e=>pl(e,u))})).filter(e=>e.bindings.length>0);function f(e){e.key===`Escape`&&(e.preventDefault(),t())}return/* @__PURE__ */ W(v,{"data-devtools-escape":!0,className:P(`flex min-h-0 flex-col text-xs`,o),children:[/* @__PURE__ */ U(zr,{label:`Search shortcuts`,placeholder:`Actions or keys`,value:s,onChange:c,onKeyDown:f,ref:l}),/* @__PURE__ */ U(v,{className:`pb-2`,children:d.map(({name:t,scope:n,bindings:o})=>/* @__PURE__ */ W(`section`,{"aria-label":t,children:[/* @__PURE__ */ U(Br,{label:t,children:n}),/* @__PURE__ */ U(`ul`,{children:o.map(({action:t,label:n,chords:o,surface:s})=>{let c=(!r||!s||r.includes(s))&&!i.includes(t);return/* @__PURE__ */ W(`li`,{"aria-disabled":!c||void 0,className:P(`flex h-6 items-center justify-between gap-3 px-3`,!c&&`opacity-40`),children:[n,/* @__PURE__ */ W(e,{className:`flex items-center gap-1.5`,children:[!c&&/* @__PURE__ */ U(e,{className:P(`text-[10.5px]`,a.mutedText),children:`not yet`}),o.map(e=>/* @__PURE__ */ U(y,{keys:e},e.join(`+`)))]})]},t)})})]},t))})]})}function hl({asked:e,onClose:t,surfaces:n,unanswered:r,onResetRail:i}){return/* @__PURE__ */ W(Vr,{title:`Shortcuts`,icon:/* @__PURE__ */ U(He,{"aria-hidden":!0,className:`size-4`}),children:[/* @__PURE__ */ U(ml,{onClose:t,focusSearch:e,surfaces:n,unanswered:r,className:`flex-1 overflow-auto`}),/* @__PURE__ */ U(v,{className:`flex px-3.5 pt-1 pb-3`,children:/* @__PURE__ */ U(E,{label:`Reset rail order`,tone:c.Neutral,icon:/* @__PURE__ */ U(at,{"aria-hidden":!0,className:`size-3.5`}),onPress:i})})]})}var gl=[yr.Tree,yr.Inspector,yr.TopBar,yr.Console],_l=[J.ShowBehaviours,J.SavePreset,J.ResetProps],vl={id:`performance`,title:`Performance`,icon:pe,component:wo},yl=`size-4`,bl=520,xl=`gap-1.5 px-2`,Sl=[{value:Q.Entities,label:`Entities`,icon:/* @__PURE__ */ U(Ue,{"aria-hidden":!0,className:yl})},{value:Q.Map,label:`Map`,icon:/* @__PURE__ */ U(Ke,{"aria-hidden":!0,className:yl})},{value:Q.Wiki,label:`Wiki`,icon:/* @__PURE__ */ U(ge,{"aria-hidden":!0,className:yl})},{value:Q.Assets,label:`Assets`,icon:/* @__PURE__ */ U(ve,{"aria-hidden":!0,className:yl})},{value:Q.Inspector,label:`Inspector`,icon:/* @__PURE__ */ U(ut,{"aria-hidden":!0,className:yl})},{value:Q.Console,label:`Console`,icon:/* @__PURE__ */ U(mt,{"aria-hidden":!0,className:yl})},{value:Q.Clips,label:`Clips`,icon:/* @__PURE__ */ U(we,{"aria-hidden":!0,className:yl})}],Cl={[Q.Entities]:gc.Entities,[Q.Map]:gc.Map,[Q.Wiki]:gc.Wiki,[Q.Assets]:gc.Assets},wl={[$.Entities]:gc.Entities,[$.Map]:gc.Map,[$.Assets]:gc.Assets,[$.Wiki]:gc.Wiki},Tl={id:$.Entities,title:`Entities`,icon:/* @__PURE__ */ U(Ue,{"aria-hidden":!0,className:yl})},El={id:$.Map,title:`Map`,icon:/* @__PURE__ */ U(Ke,{"aria-hidden":!0,className:yl})},Dl={id:$.Assets,title:`Assets`,icon:/* @__PURE__ */ U(ve,{"aria-hidden":!0,className:yl})},Ol={id:$.Favorites,title:`Favorites`,icon:/* @__PURE__ */ U(ft,{"aria-hidden":!0,className:yl})},kl={id:$.Clips,title:`Clips`,icon:/* @__PURE__ */ U(we,{"aria-hidden":!0,className:yl})},Al={id:$.Wiki,title:`Wiki`,icon:/* @__PURE__ */ U(ge,{"aria-hidden":!0,className:yl})},jl={id:$.Console,title:`Console`,icon:/* @__PURE__ */ U(mt,{"aria-hidden":!0,className:yl}),shortcut:Y(J.ToggleConsole)},Ml={id:$.Shortcuts,title:`Shortcuts`,icon:/* @__PURE__ */ U(He,{"aria-hidden":!0,className:yl}),shortcut:Y(J.ShowShortcuts)};function Nl({icon:t=Ze}){return/* @__PURE__ */ U(e,{"aria-hidden":!0,className:`flex`,children:/* @__PURE__ */ U(t,{className:yl})})}function Pl(e){return{id:bc(e),title:e.title,icon:Nl(e)}}function Fl(e){return`panel:${e}`}var Il=[];function Ll({panels:t=[],playtestActions:n=Il}){dl(n);let r=z(e=>e.editing),i=jt(e=>e.covered),o=z(e=>e.setEditing),s=z(e=>e.freeCamera),c=z(e=>e.setFreeCamera),l=z(e=>e.mapCamera),u=z(e=>e.setMapCamera),d=z(e=>e.panels),f=z(e=>e.tree),p=z(e=>e.selectedId),m=z(e=>e.selectedIds),h=z(e=>e.log),g=Wo(e=>e.section),_=Wo(e=>e.open),y=Wo(e=>e.width),b=Wo(e=>e.treeShare),x=Wo(e=>e.railOrder),{pressSection:S,openSection:C,setWidth:w,setTreeShare:ee,setRailOrder:T,resetRailOrder:te}=Wo.getState(),[ne,re]=N(null),[E,D]=N(dc),[ie,ae]=N({}),[oe,se]=N(null),[ce,le]=N(null),[ue,de]=N(0),k=Qr(),[A,j]=N(null),M=()=>j(null),[fe,pe]=N(!0),[me,he]=N(p);p!==me&&(he(p),k&&p!==null&&j(Q.Inspector));let[F,ge]=N(null);!r&&oe&&se(null),!r&&ce&&le(null),!r&&A!==null&&j(null),F&&F.ids.join()!==m.join()&&ge(null);let _e=xo(),ve=ol(),ye=xc([...t,...d]),be=[vl,...ye],I=[...Object.values($),...be.map(bc)].includes(g)?g:$.Entities,L=B(e=>e.mode===`select`),xe=B(e=>e.card!==null),Se=l||(k?A===Q.Map:I===$.Map);Ti(r&&L&&!Se,se),qi(r,L&&!Se,le);let Ce=be.find(e=>bc(e)===I)??vl,we=r&&(k?A===Q.Console:_&&I===$.Console),Te=Number(h.at(-1)?.id??0),[Ee,De]=N(0);we&&Ee!==Te&&De(Te);let[Oe,ke]=N(null),Ae=_&&I===$.Shortcuts;Oe&&!Ae&&ke(null);let je=Oe!==null,Me=()=>{ke({section:I,open:_}),C($.Shortcuts)},Ne=()=>{Oe&&Wo.setState(Oe),ke(null)},Pe=e=>{ge(null),ke(null),C(e)},Fe=e=>{if(F){Pe(e);return}ke(null),S(e)},Ie=(e,t)=>{ge(Wa(e,t)),k&&j(Q.Inspector)},Le=(e,t)=>{let{select:n,selectedIds:r}=z.getState();r.includes(e)||n(e),ge(Ua(t)),!k&&!_&&C(I)},Re=e=>{let{x:t,z:n,height:r,map:i}=e;ge({ids:z.getState().selectedIds,descriptions:[],intent:``,spot:`The ${i} map's ground at x ${t.toFixed(2)}, z ${n.toFixed(2)}, ${r.toFixed(2)} m high: ${Bi(e)}`}),k?j(Q.Inspector):_||C(I)},ze=()=>{u(!l),!l&&(k?j(Q.Map):Pe($.Map))},Be=()=>{let e=Xt.getState().state===Pt.Recording;Xt.getState().toggle(),e&&o(!0),k?j(Q.Clips):Pe($.Clips)};O(()=>Xt.subscribe((e,t)=>{t.state===Pt.Starting&&e.state===Pt.Recording?z.getState().setEditing(!1):e.error&&!t.error&&z.getState().setEditing(!0)}),[]);let Ve=Xt(e=>e.state===Pt.Recording||e.state===Pt.Stopping),He=e=>{z.getState().select(e),ge(null),k?j(Q.Inspector):C($.Entities)},Ue=p===null?void 0:gn(f,p),We=Ue!==void 0&&((Ue.entityId??Ue.index)!==void 0||Ue.kind===R.Hud||Ue.kind===R.World),Ge=A?.startsWith(`panel:`)?be[Number(A.slice(6))]:void 0;O(()=>{window.__GAME_DEVTOOLS__=z;let e=Bt();return z.getState().setFrameTiming(!0),()=>{e(),delete window.__GAME_DEVTOOLS__,z.getState().setEditing(!1),z.getState().setFrameTiming(!1)}},[]),O(()=>hn(),[]),cl(),ul(r),O(()=>on(),[]),O(()=>{function e(e){B.getState().unsaved&&e.preventDefault()}return window.addEventListener(`beforeunload`,e),()=>window.removeEventListener(`beforeunload`,e)},[]);let Ke=r&&!k,qe=Uo([Tl,El,Dl,Ol,kl,...ye.map(Pl)],x).map((e,t)=>t<9?{...e,shortcut:[`⌘`,String(t+1)]}:e),[Je,Ye]=N(0);O(()=>{Je!==0&&document.querySelector(`[data-devtools] input[aria-label="Filter entities"]`)?.focus()},[Je]),X(J.Close,Ne,{enabled:Ke&&je}),X(J.ShowShortcuts,()=>je?Ne():Me(),{enabled:Ke}),X(J.ToggleEditMode,()=>o(!r),{enabled:!i}),X(J.ToggleClip,Be,{enabled:!i}),X(J.NextGamePanel,()=>{if(ye.length===0)return;let e=ye.findIndex(e=>bc(e)===I);Pe(bc(ye[(e+1)%ye.length]))},{enabled:Ke,repeat:!0}),X(J.FoldSidebar,()=>S(I),{enabled:Ke}),X(J.ShowRailSection,e=>{let t=qe[Number(e.key)-1];t&&(Pe(t.id),t.id===$.Entities&&Ye(e=>e+1))},{enabled:Ke});let Xe=k?A!==null&&A!==Q.Map:I!==$.Map;O(()=>{Xe&&B.getState().holdTool(null)},[Xe]);let Ze=k?A!==null&&A!==Q.Assets:I!==$.Assets;return O(()=>{Ze&&B.getState().holdCard(null)},[Ze]),X(J.ToggleConsole,()=>Fe($.Console),{enabled:Ke}),i?null:/* @__PURE__ */ W(So,{value:ue,children:[/* @__PURE__ */ U(wt,{slot:Et.TopLeft,order:-2,variant:Tt.Bare,children:/* @__PURE__ */ W(v,{"data-devtools":!0,className:P(`flex items-center gap-4`,a.sans),children:[/* @__PURE__ */ U(ei,{agent:ve,on:r,onToggle:()=>o(!r)}),!r&&Ve&&/* @__PURE__ */ U(Ar,{onPress:Be}),!r&&/* @__PURE__ */ U(eo,{..._e}),r&&k&&/* @__PURE__ */ U(ti,{on:fe,onToggle:()=>pe(!fe)})]})}),/* @__PURE__ */ U(Eo,{topBar:r&&(!k||fe)&&/* @__PURE__ */ U(rl,{playheadSeconds:ue,onPlayheadSeconds:de,framesPerSecond:_e.framesPerSecond,scrubber:!k,className:k?xl:void 0,camera:k&&/* @__PURE__ */ W(H,{children:[/* @__PURE__ */ U(q,{label:`Free camera`,pressed:s,onPress:()=>c(!s),children:/* @__PURE__ */ U(mr,{on:s,className:`size-3.5`})}),/* @__PURE__ */ U(Jr,{phone:!0,on:l,onToggle:ze}),/* @__PURE__ */ U(vr,{phone:!0,onCapture:ao})]})}),leading:r&&!k&&/* @__PURE__ */ W(H,{children:[/* @__PURE__ */ U(Ar,{onPress:Be}),/* @__PURE__ */ U(vr,{onCapture:ao})]}),camera:r&&!k&&/* @__PURE__ */ W(H,{children:[/* @__PURE__ */ U(gr,{on:s,onToggle:()=>c(!s)}),/* @__PURE__ */ U(Jr,{on:l,onToggle:ze})]}),rail:Ke&&/* @__PURE__ */ U(No,{items:qe,onOrder:T,footItems:[Al,Pl(vl),Ml],apart:{...jl,unread:al(h,Ee)},active:_?I:null,onSelect:Fe}),sidebar:Ke&&_&&/* @__PURE__ */ U(Lo,{width:I===$.Console?Math.max(y,bl):y,onWidth:w,children:/* @__PURE__ */ U(Ro,{share:b,onShare:ee,top:F?/* @__PURE__ */ U(Ma,{descriptions:F.descriptions,page:F.page,spot:F.spot,initialIntent:F.intent,screen:F.screen,tree:f,onClose:()=>ge(e=>e===F?null:e),className:`h-full`},`${F.ids.join()}:${F.intent}:${F.spot}`):I===$.Entities||I===$.Map||I===$.Assets||I===$.Wiki?/* @__PURE__ */ U(yc,{tab:wl[I],onTab:()=>C($.Entities),open:ne,onOpen:re,browse:E,onBrowse:D,mapSections:ie,onMapSections:ae,onOpenMenu:se,onSendToAgent:Ie,onSelect:()=>C($.Entities)}):I===$.Favorites?/* @__PURE__ */ U(Qa,{}):I===$.Clips?/* @__PURE__ */ U(Kr,{}):I===$.Console?/* @__PURE__ */ U(io,{}):I===$.Shortcuts?/* @__PURE__ */ U(hl,{asked:je,onClose:Ne,surfaces:gl,unanswered:_l,onResetRail:te}):/* @__PURE__ */ U(fl,{panel:Ce}),bottom:!F&&I===$.Entities&&We&&/* @__PURE__ */ U(qa,{request:null,onRequest:ge})})},`sidebar`),sheet:r&&k&&(A===Q.Entities||A===Q.Map||A===Q.Wiki||A===Q.Assets?/* @__PURE__ */ U(yc,{tab:Cl[A],open:ne,onOpen:re,browse:E,onBrowse:D,mapSections:ie,onMapSections:ae,onClose:M,onOpenMenu:se,onSelect:()=>j(Q.Inspector),onSendToAgent:Ie}):A===Q.Inspector?/* @__PURE__ */ U(qa,{onClose:M,request:F,onRequest:ge}):A===Q.Console?/* @__PURE__ */ U(io,{onClose:M}):A===Q.Clips?/* @__PURE__ */ U(Kr,{onClose:M}):Ge&&/* @__PURE__ */ U(fl,{panel:Ge,onClose:M})),tabBar:r&&k&&/* @__PURE__ */ U(Do,{tabs:[...Sl,...be.map((e,t)=>({value:Fl(t),label:e.title,icon:Nl(e)}))],active:A,onSelect:j}),outline:/* @__PURE__ */ W(H,{children:[/* @__PURE__ */ U(Mt,{}),r&&/* @__PURE__ */ W(H,{children:[L&&/* @__PURE__ */ U(Pc,{onSendToAgent:e=>Le(e,``),onInspect:He,onSelect:()=>{k||C($.Entities)}}),/* @__PURE__ */ U(Uc,{}),xe&&/* @__PURE__ */ U(e,{hidden:!0,"data-devtools-escape":!0})]})]}),phone:k,menu:oe&&/* @__PURE__ */ U(Ei,{anchor:oe,onSendToAgent:Le,onClose:()=>se(null)},`${oe.id}:${oe.x}:${oe.y}`)||ce&&/* @__PURE__ */ U(Yi,{anchor:ce,onSendToAgent:Re,onClose:()=>le(null)},`${ce.x}:${ce.y}`)})]})}var Rl={[mn.Sent]:t.Live,[mn.Copied]:t.Warning,[mn.Failed]:t.Error};function zl({sent:t,attachments:n,onDetach:i,text:c,onTextChange:l,onSend:u,onClose:f,className:p}){let m=c.trim()===``,h=M(null);O(()=>{h.current&&(h.current.scrollTop=h.current.scrollHeight)},[t.length]);function g(e){e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),m||u())}return/* @__PURE__ */ W(K,{className:P(`flex flex-col text-xs`,p),children:[/* @__PURE__ */ U(Br,{label:`Chat`,children:f&&/* @__PURE__ */ U(q,{label:`Close chat`,onPress:f,children:/* @__PURE__ */ U(bt,{"aria-hidden":!0,className:`size-3.5`})})}),t.length>0&&/* @__PURE__ */ U(`ol`,{ref:h,"aria-label":`Sent`,className:`flex max-h-12 flex-col gap-1 overflow-y-auto px-3 pb-2`,children:t.map(({id:t,text:n,outcome:i,attachments:a})=>/* @__PURE__ */ W(`li`,{className:`flex items-start gap-2`,children:[/* @__PURE__ */ U(o,{content:jr[i],pressToggles:!0,children:/* @__PURE__ */ U(r,{type:`button`,"aria-label":jr[i],className:`mt-1 flex shrink-0 outline-none`,children:/* @__PURE__ */ U(s,{tone:Rl[i]})})}),/* @__PURE__ */ U(e,{className:`min-w-0 flex-1 whitespace-pre-wrap`,children:n}),a.map(({id:e,label:t})=>/* @__PURE__ */ U(d,{tone:D.Neutral,className:`shrink-0`,children:t},e))]},t))}),/* @__PURE__ */ W(v,{className:P(`flex flex-col gap-1.5 border-t px-3 py-2`,a.divider),children:[n.length>0&&/* @__PURE__ */ U(v,{className:`flex flex-wrap gap-1.5`,children:n.map(({id:e,label:t})=>/* @__PURE__ */ W(d,{tone:D.Accent,label:`Detach ${t}`,onPress:()=>i(e),children:[t,/* @__PURE__ */ U(bt,{"aria-hidden":!0,className:`size-3`})]},e))}),/* @__PURE__ */ W(v,{className:`flex items-end gap-1.5`,children:[/* @__PURE__ */ U(`textarea`,{"aria-label":`Message`,rows:2,value:c,placeholder:`Tell the agent what you see`,onChange:e=>l(e.target.value),onKeyDown:g,className:`field-sizing-content max-h-[6.5rem] min-w-0 flex-1 resize-none rounded-lg border border-white/20 bg-black/22 px-2 py-1.5 text-xs text-white outline-none focus:border-[#FFC14D]`}),/* @__PURE__ */ U(q,{label:`Send message`,shortcut:Y(J.SendToAgent),disabledReason:m?`Type a message first`:void 0,onPress:u,children:/* @__PURE__ */ U(lt,{"aria-hidden":!0,className:`size-3.5`})})]})]})]})}export{ca as AbilitiesCard,ai as AddBehaviourMenu,Sc as AnchoredBox,w as BehaviourCard,E as Button,c as ButtonTone,gr as CameraToggle,vr as CaptureButton,zl as ChatStrip,d as Chip,D as ChipTone,Kr as ClipsPanel,ro as ConsoleStrip,yi as ContextMenu,Ll as Devtools,Eo as DevtoolsOverlay,T as DiagramClass,ei as EditToggle,fi as EntityAction,Mc as EntityOutline,Yo as EntityTree,Qa as FavoritesPanel,eo as FrameRate,co as FrameStats,yo as FrameTimes,mr as FreeCameraIcon,K as GlassPane,Oi as GroundAction,Vi as GroundContextMenu,Ca as Inspector,n as KeyboardShortcut,s as Lamp,t as LampTone,yc as LeftPanel,gc as LeftPanelTab,ri as ListRow,ni as ListRowRole,Qo as MapPalette,fs as MapPicker,Jr as MapToggle,ss as MaterialRefine,us as MaterialTiles,Gi as PaletteCard,ta as PaneHeader,Q as PhoneTab,Do as PhoneTabBar,g as PropKind,No as Rail,Ar as RecordButton,Po as ResizeAxis,Io as ResizeHandle,hr as RoundButton,hs as ScatterControls,ga as ScatterInstanceActions,ii as SearchField,$ as SectionId,Br as SectionLabel,fl as SectionPane,Fr as SegmentedControl,ja as SendToAgent,y as Shortcut,ml as ShortcutsPanel,Vr as SidePanel,Lo as Sidebar,ui as SparkMark,ci as SparkTone,Ro as SplitPane,Z as Stat,ba as StatsCard,gs as TerrainSection,q as ToolButton,ti as ToolbarToggle,o as Tooltip,Qc as TopBar,Ao as UnreadBadge,hc as WikiBrowser,Zs as WikiDiagram,sc as WikiEntryList,ac as WikiEntryPage,uc as WikiKindPage,te as WikiLinks,f as cardDiagramTheme,b as diagramTheme,ne as glassDiagramTheme,Uo as orderRail,p as outlineDiagramTheme,a as palette,Wo as useLayout};
|
package/dist/nxAMn9sr.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import"./styles.css";import{useEffect as e,useId as t,useState as n}from"react";import{clsx as r}from"clsx";import{BookOpen as i,Check as a,Copy as o,FileCode as s,FileText as c,Star as l}from"lucide-react";import{matchFavorite as u,useFavoritesStore as d}from"@spawnite/engine/internal/devtools";import*as f from"motion/react-client";import{LoadingRing as p,TextField as m,Tooltip as ee,press as te,springs as h}from"@spawnite/ui";import{Fragment as g,jsx as _,jsxs as v}from"react/jsx-runtime";import{useAnimate as ne,useReducedMotionConfig as y}from"motion/react";import{twMerge as b}from"tailwind-merge";import{wikiSite as re}from"@spawnite/schema";import{useStore as x}from"zustand";var S={accent:`#FFC14D`,onAccent:`#1B1206`,accentTint:`#FFC14D38`,glass:`#12162094`,border:`#FFFFFF33`,divider:`#FFFFFF24`,muted:`#FFFFFFB8`,white:`#FFFFFF`},C={sans:`'IBM Plex Sans',system-ui,sans-serif`,mono:`'IBM Plex Mono',ui-monospace,monospace`},w={sans:`font-['IBM_Plex_Sans',system-ui,sans-serif]`,mono:`font-['IBM_Plex_Mono',ui-monospace,monospace]`,glassSurface:`bg-[#12162094] bg-clip-padding backdrop-blur-[14px] backdrop-saturate-90`,glassBorder:`border border-[#FFFFFF33]`,glassShadow:`shadow-[0_8px_28px_rgba(0,0,0,0.28),inset_0_1px_0_rgba(255,255,255,0.28)]`,mutedText:`text-[#FFFFFFB8]`,divider:`border-[#FFFFFF24]`,readoutBar:`bg-white shadow-[0_0_0_1px_rgba(8,12,22,0.9)]`,accentFill:`bg-[#FFC14D]`,accentText:`text-[#1B1206]`,accentGlow:`shadow-[0_0_0_2px_rgba(0,0,0,0.35),0_0_10px_#FFC14D]`,accentRing:`focus-visible:ring-2 focus-visible:ring-[#FFC14D]`,control:`h-7 focus-visible:ring-2 focus-visible:ring-[#FFC14D] focus-visible:ring-offset-0`,accentTint:`bg-[#FFC14D38]`,errorTint:`bg-[rgba(255,107,107,0.22)]`,accentBorder:`border-[#FFC14D]`,keycap:`min-w-[18px] h-[18px] px-[5px] rounded-[5px] border border-b-2 border-current/35 bg-current/12 text-[10.5px] font-medium leading-none opacity-90`};function T({transition:e=h.snappy,...t}){return/* @__PURE__ */ _(f.div,{transition:e,...t})}function E({transition:e=h.snappy,...t}){return/* @__PURE__ */ _(f.span,{transition:e,...t})}function D({keys:e,className:t}){return/* @__PURE__ */ _(`kbd`,{className:b(`inline-flex gap-1`,t),children:e.map((e,t)=>/* @__PURE__ */ _(`kbd`,{className:r(`inline-flex items-center justify-center`,w.mono,w.keycap),children:e},t))})}function O(e){return/* @__PURE__ */ _(ee,{...e,className:r(`flex items-center gap-1.5 overflow-hidden rounded-md px-2 py-1.5 text-[13px] leading-snug font-medium text-white`,w.glassSurface,w.glassBorder,w.glassShadow,w.sans)})}function k({label:e,keys:t,disabledReason:n,iconOnly:r,detail:i,children:a}){return/* @__PURE__ */ _(O,{content:n??(t||r||i?/* @__PURE__ */ v(g,{children:[e,t&&/* @__PURE__ */ _(D,{keys:t}),i&&/* @__PURE__ */ _(E,{className:`block font-normal text-white/72`,children:i})]}):void 0),description:n??(t||r||i?[t?.join(` `),i].filter(Boolean).join(`, `):void 0),children:a})}function A({transition:e=h.snappy,...t}){return/* @__PURE__ */ _(f.button,{transition:e,...t})}var j=/* @__PURE__ */ function(e){return e.Accent=`accent`,e.Neutral=`neutral`,e.Plain=`plain`,e}({}),ie={accent:r(`border-transparent`,w.accentFill,w.accentText),neutral:`border-white/20 bg-white/14 text-white`,plain:`border-transparent bg-transparent text-white`};function M({label:e,hideLabel:t,tone:n,icon:i,shortcut:a,detail:o,disabledReason:s,pressed:c,menuItem:l,onPress:u,className:d}){let f=y(),p=s!==void 0;return/* @__PURE__ */ _(k,{label:e,keys:a,iconOnly:t,detail:o,disabledReason:s,children:/* @__PURE__ */ v(A,{type:`button`,"aria-label":e,...l?{role:`menuitemradio`,"aria-checked":c??!1,tabIndex:-1}:{"aria-pressed":c},"aria-disabled":p||void 0,onClick:p?void 0:u,whileTap:f||p||n===`plain`?void 0:te,className:b(r(`pointer-events-auto inline-flex h-7 cursor-pointer items-center gap-1.5 rounded-lg border px-2.5 text-xs font-semibold outline-none`,w.sans,w.accentRing,ie[n],p&&`cursor-default opacity-40`,d)),children:[i,!t&&/* @__PURE__ */ _(E,{children:e})]})})}var N=/* @__PURE__ */ function(e){return e.Accent=`accent`,e.Live=`live`,e.Idle=`idle`,e.Info=`info`,e.Warning=`warning`,e.Error=`error`,e}({}),ae={accent:r(w.accentFill,w.accentGlow),live:`bg-[#7CE38B] shadow-[0_0_0_1px_rgba(8,12,22,0.9),0_0_8px_#7CE38B]`,idle:`bg-white/45 shadow-[0_0_0_2px_rgba(0,0,0,0.35)]`,info:`bg-white/72`,warning:w.accentFill,error:`bg-[#FF6B6B]`};function P({tone:e}){return/* @__PURE__ */ _(E,{"aria-hidden":!0,"data-lamp":e,className:r(`inline-block size-2 shrink-0 rounded-full`,ae[e])})}var F=/* @__PURE__ */ function(e){return e.Accent=`accent`,e.Neutral=`neutral`,e}({}),oe={accent:r(`font-semibold tracking-[0.04em]`,w.accentTint,w.accentBorder),neutral:`border-white/20 bg-white/8`};function I({tone:e,lamp:t,onPress:n,pressed:i,label:a,"aria-describedby":o,className:s,children:c}){let l=b(r(`inline-flex h-[22px] items-center gap-1.5 rounded-md border px-2 text-[11px] text-white`,oe[e],n&&[`cursor-pointer outline-none`,w.accentRing],i===!1&&`opacity-55`,s)),u=/* @__PURE__ */ v(g,{children:[t&&/* @__PURE__ */ _(P,{tone:t}),c]});return n?/* @__PURE__ */ _(A,{type:`button`,"aria-pressed":i,"aria-label":a,"aria-describedby":o,onClick:n,className:l,children:u}):/* @__PURE__ */ _(E,{"aria-describedby":o,className:l,children:u})}function L({value:e,onCommit:t,...r}){let[i,a]=n(null);return/* @__PURE__ */ _(m,{...r,value:i??String(e),onChange:a,onCommit:()=>{i!==null&&(t(i),a(null))}})}var se={type:`spring`,duration:.4,bounce:.55};function ce({field:e,label:t}){let n=d(),i=x(n,t=>t.favorites.some(t=>u(t,e))),a=x(n,e=>e.toggleFavorite),o=y(),[s,c]=ne();return/* @__PURE__ */ _(A,{ref:s,type:`button`,"aria-label":`Favorite ${t}`,"aria-pressed":i,onClick:()=>{!i&&!o&&c(s.current,{scale:[.4,1]},se),a(e)},className:r(`flex size-4 shrink-0 cursor-pointer items-center justify-center rounded outline-none`,w.accentRing,i?`text-[#FFC14D]`:`text-white/72 opacity-0 group-hover/row:opacity-100 hover:text-white focus-visible:opacity-100 [@media(hover:none)]:opacity-100`),children:/* @__PURE__ */ _(l,{"aria-hidden":!0,fill:i?`currentColor`:`none`,className:`size-3`})})}function R({name:e,middle:t,end:n,readOnlyReason:i,star:a}){return/* @__PURE__ */ _(O,{content:i,description:``,children:/* @__PURE__ */ v(T,{className:`group/row grid h-[26px] grid-cols-[96px_minmax(0,1fr)_62px] items-center gap-2`,children:[/* @__PURE__ */ v(E,{className:`flex min-w-0 items-center gap-1`,children:[a,/* @__PURE__ */ _(E,{className:r(`truncate`,w.mono),children:e})]}),t??/* @__PURE__ */ _(E,{}),n]})})}var le=/* @__PURE__ */ function(e){return e.Number=`number`,e.Toggle=`toggle`,e.Entity=`entity`,e.Text=`text`,e}({});function ue(e){navigator.clipboard.writeText(e).catch(e=>console.error(`The prop did not reach the clipboard`,e))}function z(e){return new URL(e,re).href}var B=`flex flex-col gap-1 rounded-[10px] border border-white/20 bg-white/6 px-2.5 py-2 text-[11.5px]`,V=r(w.control,`h-[22px] w-full rounded-[5px] bg-black/28 px-1.5 text-right focus:border-[#FFC14D] read-only:opacity-40 read-only:focus:border-white/20`);function H({prop:e,onChange:t,readOnlyReason:n,readOnlyReasonId:i,favorite:a}){let{name:o}=e,s=n!==void 0,c=null,l;switch(e.kind){case`number`:{let{min:n,max:a,open:u}=e,d=n!==void 0&&a!==void 0,f=r=>{let i=Number.parseFloat(r);(u?Number.isFinite(i):!Number.isNaN(i)&&(n===void 0||i>=n)&&(a===void 0||i<=a))&&i!==e.value&&t(o,i)},p=e.step??(d?(a-n)/100:`any`);c=d?/* @__PURE__ */ _(`input`,{type:`range`,"aria-label":o,"aria-describedby":i,min:n,max:a,step:p,value:e.value,disabled:s,onChange:e=>t(o,e.currentTarget.valueAsNumber),className:`w-full cursor-pointer accent-[#FFC14D] disabled:cursor-default disabled:opacity-40`}):null,l=/* @__PURE__ */ _(L,{type:`number`,label:o,"aria-describedby":i,min:u?void 0:n,max:u?void 0:a,step:p,value:e.value,readOnly:s,onCommit:f,className:r(V,`[appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none`)});break}case`toggle`:l=/* @__PURE__ */ _(`input`,{type:`checkbox`,role:`switch`,"aria-label":o,"aria-describedby":i,checked:e.value,disabled:s,onChange:e=>t(o,e.currentTarget.checked),className:r(`relative h-5 w-[34px] cursor-pointer appearance-none disabled:cursor-default disabled:opacity-40 justify-self-end rounded-full border border-white/20 bg-black/30 outline-none before:absolute before:top-0.5 before:left-0.5 before:size-3.5 before:rounded-full before:bg-white before:shadow-[0_0_0_1px_rgba(8,12,22,0.9)] checked:border-transparent checked:bg-[#FFC14D] checked:before:translate-x-3.5`,w.accentRing)});break;case`entity`:c=/* @__PURE__ */ _(E,{className:w.mutedText,children:`entity`}),l=/* @__PURE__ */ _(I,{tone:F.Neutral,"aria-describedby":i,className:`justify-self-end`,children:e.value});break;case`text`:c=/* @__PURE__ */ _(E,{className:w.mutedText,children:`string`}),l=/* @__PURE__ */ _(L,{type:`text`,label:o,"aria-describedby":i,value:e.value,readOnly:s,onCommit:n=>{n!==e.value&&t(o,n)},className:V})}return/* @__PURE__ */ _(R,{name:o,middle:c,end:l,readOnlyReason:n,star:a&&/* @__PURE__ */ _(ce,{field:a(o),label:o})})}function de({name:e,description:n,docsHref:i,changed:a,props:o,onChange:s,readOnlyReason:l,copyText:u,favorite:d,children:f,className:p}){let m=t();return/* @__PURE__ */ v(`section`,{"aria-label":e,className:r(B,p),children:[/* @__PURE__ */ v(T,{className:`flex items-center gap-1.5`,children:[/* @__PURE__ */ _(E,{className:r(`text-[12.5px] font-semibold`,w.mono),children:e}),a&&/* @__PURE__ */ v(E,{className:`flex`,children:[/* @__PURE__ */ _(P,{tone:N.Accent}),/* @__PURE__ */ _(E,{className:`sr-only`,children:`changed from defaults`})]}),i&&/* @__PURE__ */ v(`a`,{href:i,target:`_blank`,rel:`noreferrer`,className:r(`ml-auto inline-flex items-center gap-1 text-[11px] text-[#FFC14D] outline-none`,w.accentRing),children:[/* @__PURE__ */ _(c,{"aria-hidden":!0,className:`size-3`}),`docs`]})]}),n&&/* @__PURE__ */ _(`p`,{className:w.mutedText,children:n}),l&&/* @__PURE__ */ _(`p`,{id:m,className:w.mutedText,children:l}),o.map(e=>{let t=l??e.readOnlyReason;return/* @__PURE__ */ _(H,{prop:e,onChange:(e,n)=>{t===void 0&&s(e,n)},readOnlyReason:t,readOnlyReasonId:l?m:void 0,favorite:d},e.name)}),f,a&&l===void 0&&/* @__PURE__ */ v(T,{className:`flex items-center gap-2`,children:[/* @__PURE__ */ _(`p`,{className:w.mutedText,children:`Tried, not saved`}),u&&/* @__PURE__ */ _(M,{label:`Copy as prop`,tone:j.Neutral,onPress:()=>ue(u),className:`ml-auto`})]})]})}var U=12,fe=100;function pe({label:t,className:r}){let[i,a]=n(0);return e(()=>{let e=setInterval(()=>{a(e=>(e+1)%U)},fe);return()=>{clearInterval(e)}},[]),/* @__PURE__ */ _(T,{role:`progressbar`,"aria-busy":`true`,"aria-label":t,className:b(`flex items-center justify-center`,w.mutedText,r),children:/* @__PURE__ */ _(p,{value:i/U,className:`size-6`})})}var me=/* @__PURE__ */ function(e){return e.Centre=`centre`,e.BelongsTo=`belongsTo`,e.MadeOf=`madeOf`,e.RefersTo=`refersTo`,e.UsedBy=`usedBy`,e.Holds=`holds`,e.Fold=`fold`,e.OffTree=`offTree`,e.Game=`game`,e.Engine=`engine`,e.Faded=`faded`,e}({});function W(e,t){let n=e.slice(0,7);return t===void 0?n:`${n}${Math.round(t*255).toString(16).padStart(2,`0`).toUpperCase()}`}var{white:G}=S,K=W(S.glass),q={theme:`base`,layout:`dagre`,look:`classic`,securityLevel:`strict`,fontFamily:C.sans,fontSize:12,htmlLabels:!0,flowchart:{nodeSpacing:8,rankSpacing:16,padding:6,diagramPadding:4,subGraphTitleMargin:{top:2,bottom:6},useMaxWidth:!0,minNodeWidth:64,inheritDir:!0}},J=`
|
|
2
|
+
.nodeLabel small { font-family: ${C.mono}; font-size: 10.5px; opacity: 0.72; }
|
|
3
|
+
.node.belongsTo .nodeLabel small { opacity: 1; }
|
|
4
|
+
.cluster-label .nodeLabel { font-size: 10.5px; letter-spacing: 0.06em; text-transform: uppercase; color: ${S.muted}; }
|
|
5
|
+
.node { outline: none; }
|
|
6
|
+
.node[role=button] { cursor: pointer; }
|
|
7
|
+
.node[role=button]:hover { filter: brightness(1.3); }
|
|
8
|
+
.node:focus-visible { filter: drop-shadow(0 0 6px ${S.accent}); }
|
|
9
|
+
.node[role=button]:focus-visible rect { stroke: ${S.accent} !important; stroke-width: 2px !important; }
|
|
10
|
+
`;function Y(e,t){return{darkMode:!0,background:K,fontFamily:C.sans,fontSize:`12px`,primaryColor:e,primaryTextColor:G,primaryBorderColor:S.border,secondaryColor:S.accentTint,tertiaryColor:e,lineColor:t,textColor:G,nodeTextColor:G,titleColor:S.muted,clusterBkg:W(S.glass,.4),clusterBorder:S.divider,edgeLabelBackground:K,noteBkgColor:S.accentTint,noteBorderColor:S.accent,noteTextColor:G,actorBkg:e,actorBorder:S.border,actorTextColor:G,signalColor:t,signalTextColor:G}}var he={background:K,mermaid:{...q,flowchart:{...q.flowchart,curve:`basis`},themeVariables:Y(W(G,.12),W(G,.3)),themeCSS:`${J}
|
|
11
|
+
.node rect { rx: 8px; ry: 8px; }
|
|
12
|
+
.cluster rect { rx: 12px; ry: 12px; }`},classes:{centre:`fill:${S.accent},stroke:${S.accent},color:${S.onAccent},font-weight:600`,belongsTo:`fill:${W(G,.06)},stroke:${S.border},color:${S.muted}`,madeOf:`fill:${W(G,.12)},stroke:${S.border},color:${G}`,refersTo:`fill:${W(G,.12)},stroke:${S.border},color:${G}`,usedBy:`fill:${S.accentTint},stroke:${S.accent},color:${G}`,holds:`fill:${S.accentTint},stroke:${S.accent},color:${G}`,fold:`fill:none,stroke:${S.border},stroke-dasharray:3 3,color:${S.muted}`,offTree:`fill:none,stroke:none,color:${S.muted}`,game:`fill:${W(G,.12)},stroke:${S.accent},color:${G}`,engine:`fill:${W(G,.04)},stroke:${S.divider},color:${S.muted}`,faded:`fill:none,stroke:${S.divider},color:${W(G,.5)}`}},ge={background:K,mermaid:{...q,flowchart:{...q.flowchart,curve:`bumpX`},themeVariables:{...Y(`transparent`,W(G,.25)),clusterBkg:W(S.glass,.3)},themeCSS:`${J}
|
|
13
|
+
.node rect { rx: 11px; ry: 11px; }
|
|
14
|
+
.cluster rect { rx: 14px; ry: 14px; stroke-dasharray: 4 4; }`},classes:{centre:`fill:${S.accent},stroke:${S.accent},color:${S.onAccent},font-weight:600`,belongsTo:`fill:none,stroke:${S.border},color:${S.muted}`,madeOf:`fill:none,stroke:${W(G,.45)},color:${G}`,refersTo:`fill:none,stroke:${W(G,.45)},color:${G}`,usedBy:`fill:none,stroke:${S.accent},color:${G}`,holds:`fill:none,stroke:${S.accent},color:${G}`,fold:`fill:none,stroke:${S.border},stroke-dasharray:3 3,color:${S.muted}`,offTree:`fill:none,stroke:none,color:${S.muted}`,game:`fill:none,stroke:${S.accent},stroke-width:2px,color:${G}`,engine:`fill:none,stroke:${S.divider},color:${S.muted}`,faded:`fill:none,stroke:${S.divider},stroke-dasharray:2 2,color:${W(G,.5)}`}},X={background:K,mermaid:{...q,flowchart:{...q.flowchart,curve:`step`},themeVariables:{...Y(`#262C3A`,W(G,.35)),clusterBkg:W(S.glass,.55),clusterBorder:`transparent`},themeCSS:`${J}
|
|
15
|
+
.node rect { rx: 6px; ry: 6px; }
|
|
16
|
+
.cluster rect { rx: 10px; ry: 10px; }`},classes:{centre:`fill:${S.accent},stroke:none,color:${S.onAccent},font-weight:600`,belongsTo:`fill:#1C212C,stroke:${S.divider},color:${S.muted}`,madeOf:`fill:#262C3A,stroke:${S.divider},color:${G}`,refersTo:`fill:#262C3A,stroke:${S.divider},color:${G}`,usedBy:`fill:#3A3122,stroke:${W(S.accent,.4)},color:${G}`,holds:`fill:#3A3122,stroke:${W(S.accent,.4)},color:${G}`,fold:`fill:#1C212C,stroke:none,color:${S.muted}`,offTree:`fill:none,stroke:none,color:${S.muted}`,game:`fill:#262C3A,stroke:${S.accent},color:${G}`,engine:`fill:#1C212C,stroke:none,color:${S.muted}`,faded:`fill:none,stroke:${S.divider},color:${W(G,.55)}`}},_e=X,Z,ve=0;async function ye(e,t,n){let r=`${e}-${++ve}`;Z??=import(`mermaid`).then(e=>e.default);let i=await Z;i.initialize({startOnLoad:!1,...n.mermaid,suppressErrorRendering:!0});let{svg:a}=await i.render(r,t);return{svg:a,id:r}}var be=r(`inline-flex items-center gap-1 text-[11px] text-[#FFC14D] outline-none`,w.accentRing),Q=r(`inline-flex size-6 cursor-pointer items-center justify-center rounded-md text-[#FFC14D] outline-none hover:bg-white/8`,w.accentRing);function $(e){return`/__open-in-editor?file=${encodeURIComponent(e)}`}function xe(e){e.preventDefault(),fetch(e.currentTarget.href).catch(e=>console.error(`The editor did not open the file`,e))}function Se({code:e,page:t,source:c,className:l}){let[u,d]=n(!1);return!e&&!t&&!c?null:/* @__PURE__ */ v(T,{className:r(`flex items-center gap-0.5`,l),children:[e&&/* @__PURE__ */ _(O,{content:u?`Copied`:e,description:``,children:/* @__PURE__ */ _(A,{type:`button`,"aria-label":`Copy ${e}`,onClick:()=>{navigator.clipboard.writeText(e).then(()=>d(!0)).catch(e=>console.error(`The code name was not copied`,e))},onPointerLeave:()=>d(!1),className:Q,children:_(u?a:o,{"aria-hidden":!0,className:`size-3.5`})})}),t&&/* @__PURE__ */ _(O,{content:`Wiki page`,description:``,children:/* @__PURE__ */ _(`a`,{href:z(t),target:`_blank`,rel:`noreferrer`,"aria-label":`Wiki page`,className:Q,children:/* @__PURE__ */ _(i,{"aria-hidden":!0,className:`size-3.5`})})}),c&&/* @__PURE__ */ _(O,{content:c,description:``,children:/* @__PURE__ */ _(`a`,{href:$(c),onClick:xe,"aria-label":c,className:Q,children:/* @__PURE__ */ _(s,{"aria-hidden":!0,className:`size-3.5`})})})]})}export{E as A,N as C,k as D,A as E,S as M,w as N,O,P as S,j as T,z as _,be as a,I as b,X as c,ge as d,pe as f,B as g,le as h,Q as i,T as j,D as k,_e as l,H as m,xe as n,ye as o,de as p,$ as r,me as s,Se as t,he as u,R as v,M as w,F as x,L as y};
|
package/dist/styles.css
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
|
|
2
|
+
@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-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking: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-content:""}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-black:#000;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-normal:0em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--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);--font-spawnite-display:"Archivo", "Arial Narrow", system-ui, sans-serif;--color-spawnite-text:#e8edf5;--color-spawnite-accent:#3d6bf5;--color-spawnite-secondary:#ffba3a}}@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,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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:where(:not(iframe)){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,utilities;@layer utilities.devtools{.\@container{container-type:inline-size}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-6{inset-inline:calc(var(--spacing) * 6)}.inset-y-0{inset-block:0}.-top-1{top:calc(var(--spacing) * -1)}.top-0{top:0}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-1\/2{top:50%}.top-2\.5{top:calc(var(--spacing) * 2.5)}.top-full{top:100%}.-right-1{right:calc(var(--spacing) * -1)}.right-0{right:0}.right-1\.5{right:calc(var(--spacing) * 1.5)}.right-3{right:calc(var(--spacing) * 3)}.-bottom-1{bottom:calc(var(--spacing) * -1)}.bottom-0{bottom:0}.bottom-\[9px\]{bottom:9px}.-left-1{left:calc(var(--spacing) * -1)}.left-0{left:0}.left-1\.5{left:calc(var(--spacing) * 1.5)}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-start-2{grid-column-start:2}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.-mx-10{margin-inline:calc(var(--spacing) * -10)}.mx-2\.5{margin-inline:calc(var(--spacing) * 2.5)}.mx-3\.5{margin-inline:calc(var(--spacing) * 3.5)}.-my-1\.5{margin-block:calc(var(--spacing) * -1.5)}.my-1{margin-block:var(--spacing)}.my-2{margin-block:calc(var(--spacing) * 2)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mr-0\.5{margin-right:calc(var(--spacing) * .5)}.mb-2\.5{margin-bottom:calc(var(--spacing) * 2.5)}.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}.field-sizing-content{field-sizing:content}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:var(--aspect-video)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-3\/4{width:75%;height:75%}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-\[42px\]{width:42px;height:42px}.size-full{width:100%;height:100%}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1{height:var(--spacing)}.h-2{height:calc(var(--spacing) * 2)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-16{height:calc(var(--spacing) * 16)}.h-32{height:calc(var(--spacing) * 32)}.h-40{height:calc(var(--spacing) * 40)}.h-\[5px\]{height:5px}.h-\[9px\]{height:9px}.h-\[18px\]{height:18px}.h-\[22px\]{height:22px}.h-\[26px\]{height:26px}.h-\[30px\]{height:30px}.h-\[45vh\]{height:45vh}.h-full{height:100%}.h-px{height:1px}.max-h-12{max-height:calc(var(--spacing) * 12)}.max-h-\[6\.5rem\]{max-height:6.5rem}.max-h-\[40\%\]{max-height:40%}.min-h-0{min-height:0}.min-h-11{min-height:calc(var(--spacing) * 11)}.w-0\.5{width:calc(var(--spacing) * .5)}.w-2{width:calc(var(--spacing) * 2)}.w-3{width:calc(var(--spacing) * 3)}.w-5{width:calc(var(--spacing) * 5)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-11{width:calc(var(--spacing) * 11)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-48{width:calc(var(--spacing) * 48)}.w-56{width:calc(var(--spacing) * 56)}.w-60{width:calc(var(--spacing) * 60)}.w-72{width:calc(var(--spacing) * 72)}.w-\[3px\]{width:3px}.w-\[34px\]{width:34px}.w-\[200px\]{width:200px}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-\[1000px\]{max-width:1000px}.max-w-\[calc\(100cqw-3\.25rem\)\]{max-width:calc(100cqw - 3.25rem)}.max-w-full{max-width:100%}.min-w-0{min-width:0}.min-w-4{min-width:calc(var(--spacing) * 4)}.min-w-8{min-width:calc(var(--spacing) * 8)}.min-w-11{min-width:calc(var(--spacing) * 11)}.min-w-\[18px\]{min-width:18px}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-0{flex-basis:0}.origin-bottom{transform-origin:bottom}.origin-top{transform-origin:top}.origin-top-left{transform-origin:0 0}.origin-top-right{transform-origin:100% 0}.-translate-x-px{--tw-translate-x:-1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-full{--tw-translate-y:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-2{--tw-translate-y:calc(var(--spacing) * 2);translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-ew-resize{cursor:ew-resize}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.cursor-row-resize{cursor:row-resize}.cursor-text{cursor:text}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.\[scrollbar-width\:none\]{scrollbar-width:none}.\[appearance\:textfield\]{appearance:textfield}.appearance-none{appearance:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-\[8px_1fr\]{grid-template-columns:8px 1fr}.grid-cols-\[16px_88px_1fr\]{grid-template-columns:16px 88px 1fr}.grid-cols-\[52px_minmax\(0\,1fr\)\]{grid-template-columns:52px minmax(0,1fr)}.grid-cols-\[64px_1fr\]{grid-template-columns:64px 1fr}.grid-cols-\[64px_1fr_48px\]{grid-template-columns:64px 1fr 48px}.grid-cols-\[64px_1fr_auto\]{grid-template-columns:64px 1fr auto}.grid-cols-\[96px_minmax\(0\,1fr\)_62px\]{grid-template-columns:96px minmax(0,1fr) 62px}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.grid-cols-\[auto_1fr_auto_1fr_auto\]{grid-template-columns:auto 1fr auto 1fr auto}.grid-cols-\[repeat\(auto-fill\,minmax\(80px\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(80px,1fr))}.grid-cols-subgrid{grid-template-columns:subgrid}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.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}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-px{gap:1px}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-y-0\.5{row-gap:calc(var(--spacing) * .5)}.gap-y-1{row-gap:var(--spacing)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.self-center{align-self:center}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.justify-self-end{justify-self:flex-end}.justify-self-start{justify-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\[1px\]{border-radius:1px}.rounded-\[5px\]{border-radius:5px}.rounded-\[10px\]{border-radius:10px}.rounded-\[14px\]{border-radius:14px}.rounded-\[22px\]{border-radius:22px}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-\[1\.5px\]{border-style:var(--tw-border-style);border-width:1.5px}.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-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-\[\#FFC14D\]{border-color:#ffc14d}.border-\[\#FFFFFF24\]{border-color:#ffffff24}.border-\[\#FFFFFF33\]{border-color:#fff3}.border-current\/35{border-color:currentColor}@supports (color:color-mix(in lab, red, red)){.border-current\/35{border-color:color-mix(in oklab, currentcolor 35%, transparent)}}.border-spawnite-accent{border-color:var(--color-spawnite-accent)}.border-spawnite-secondary{border-color:var(--color-spawnite-secondary)}.border-transparent{border-color:#0000}.border-white{border-color:var(--color-white)}.border-white\/14{border-color:#ffffff24}@supports (color:color-mix(in lab, red, red)){.border-white\/14{border-color:color-mix(in oklab, var(--color-white) 14%, transparent)}}.border-white\/20{border-color:#fff3}@supports (color:color-mix(in lab, red, red)){.border-white\/20{border-color:color-mix(in oklab, var(--color-white) 20%, transparent)}}.bg-\[\#7CE38B\]{background-color:#7ce38b}.bg-\[\#121620cc\]{background-color:#121620cc}.bg-\[\#12162094\]{background-color:#12162094}.bg-\[\#FF6B6B\]{background-color:#ff6b6b}.bg-\[\#FFC14D38\]{background-color:#ffc14d38}.bg-\[\#FFC14D\]{background-color:#ffc14d}.bg-\[rgba\(255\,107\,107\,0\.22\)\]{background-color:#ff6b6b38}.bg-black\/18{background-color:#0000002e}@supports (color:color-mix(in lab, red, red)){.bg-black\/18{background-color:color-mix(in oklab, var(--color-black) 18%, transparent)}}.bg-black\/22{background-color:#00000038}@supports (color:color-mix(in lab, red, red)){.bg-black\/22{background-color:color-mix(in oklab, var(--color-black) 22%, transparent)}}.bg-black\/25{background-color:#00000040}@supports (color:color-mix(in lab, red, red)){.bg-black\/25{background-color:color-mix(in oklab, var(--color-black) 25%, transparent)}}.bg-black\/28{background-color:#00000047}@supports (color:color-mix(in lab, red, red)){.bg-black\/28{background-color:color-mix(in oklab, var(--color-black) 28%, 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\/35{background-color:#00000059}@supports (color:color-mix(in lab, red, red)){.bg-black\/35{background-color:color-mix(in oklab, var(--color-black) 35%, transparent)}}.bg-current\/12{background-color:currentColor}@supports (color:color-mix(in lab, red, red)){.bg-current\/12{background-color:color-mix(in oklab, currentcolor 12%, transparent)}}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\/4{background-color:#ffffff0a}@supports (color:color-mix(in lab, red, red)){.bg-white\/4{background-color:color-mix(in oklab, var(--color-white) 4%, transparent)}}.bg-white\/6{background-color:#ffffff0f}@supports (color:color-mix(in lab, red, red)){.bg-white\/6{background-color:color-mix(in oklab, var(--color-white) 6%, transparent)}}.bg-white\/8{background-color:#ffffff14}@supports (color:color-mix(in lab, red, red)){.bg-white\/8{background-color:color-mix(in oklab, var(--color-white) 8%, transparent)}}.bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.bg-white\/10{background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.bg-white\/12{background-color:#ffffff1f}@supports (color:color-mix(in lab, red, red)){.bg-white\/12{background-color:color-mix(in oklab, var(--color-white) 12%, transparent)}}.bg-white\/14{background-color:#ffffff24}@supports (color:color-mix(in lab, red, red)){.bg-white\/14{background-color:color-mix(in oklab, var(--color-white) 14%, transparent)}}.bg-white\/22{background-color:#ffffff38}@supports (color:color-mix(in lab, red, red)){.bg-white\/22{background-color:color-mix(in oklab, var(--color-white) 22%, transparent)}}.bg-white\/30{background-color:#ffffff4d}@supports (color:color-mix(in lab, red, red)){.bg-white\/30{background-color:color-mix(in oklab, var(--color-white) 30%, transparent)}}.bg-white\/45{background-color:#ffffff73}@supports (color:color-mix(in lab, red, red)){.bg-white\/45{background-color:color-mix(in oklab, var(--color-white) 45%, transparent)}}.bg-white\/60{background-color:#fff9}@supports (color:color-mix(in lab, red, red)){.bg-white\/60{background-color:color-mix(in oklab, var(--color-white) 60%, transparent)}}.bg-white\/72{background-color:#ffffffb8}@supports (color:color-mix(in lab, red, red)){.bg-white\/72{background-color:color-mix(in oklab, var(--color-white) 72%, transparent)}}.bg-\[repeating-linear-gradient\(135deg\,rgba\(255\,193\,77\,0\.18\)_0_4px\,transparent_4px_8px\)\]{background-image:repeating-linear-gradient(135deg,#ffc14d2e 0 4px,#0000 4px 8px)}.bg-clip-padding{background-clip:padding-box}.fill-\[\#FF6B6B\]{fill:#ff6b6b}.fill-current{fill:currentColor}.fill-spawnite-accent{fill:var(--color-spawnite-accent)}.fill-spawnite-secondary{fill:var(--color-spawnite-secondary)}.fill-white\/30{fill:#ffffff4d}@supports (color:color-mix(in lab, red, red)){.fill-white\/30{fill:color-mix(in oklab, var(--color-white) 30%, transparent)}}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.px-0{padding-inline:0}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.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-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-10{padding-inline:calc(var(--spacing) * 10)}.px-\[5px\]{padding-inline:5px}.px-\[7px\]{padding-inline:7px}.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-6{padding-block:calc(var(--spacing) * 6)}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-\[max\(1rem\,env\(safe-area-inset-top\)\)\]{padding-top:max(1rem, env(safe-area-inset-top))}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-3\.5{padding-right:calc(var(--spacing) * 3.5)}.pb-1{padding-bottom:var(--spacing)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-2\.5{padding-bottom:calc(var(--spacing) * 2.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-\[max\(1rem\,env\(safe-area-inset-bottom\)\)\]{padding-bottom:max(1rem, env(safe-area-inset-bottom))}.pl-1{padding-left:var(--spacing)}.pl-1\.5{padding-left:calc(var(--spacing) * 1.5)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-\[\'IBM_Plex_Mono\'\,ui-monospace\,monospace\]{font-family:IBM Plex Mono,ui-monospace,monospace}.font-\[\'IBM_Plex_Sans\'\,system-ui\,sans-serif\]{font-family:IBM Plex Sans,system-ui,sans-serif}.font-spawnite-display{font-family:var(--font-spawnite-display)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11\.5px\]{font-size:11.5px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[13px\]{font-size:13px}.text-\[19px\]{font-size:19px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.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-\[0\.04em\]{--tw-tracking:.04em;letter-spacing:.04em}.tracking-\[0\.06em\]{--tw-tracking:.06em;letter-spacing:.06em}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.break-words{overflow-wrap:break-word}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#1B1206\]{color:#1b1206}.text-\[\#7CE38B\]{color:#7ce38b}.text-\[\#FF6B6B\]{color:#ff6b6b}.text-\[\#FF8A80\]{color:#ff8a80}.text-\[\#FFC14D\]{color:#ffc14d}.text-\[\#FFFFFFB8\]{color:#ffffffb8}.text-spawnite-text{color:var(--color-spawnite-text)}.text-white{color:var(--color-white)}.text-white\/40{color:#fff6}@supports (color:color-mix(in lab, red, red)){.text-white\/40{color:color-mix(in oklab, var(--color-white) 40%, transparent)}}.text-white\/70{color:#ffffffb3}@supports (color:color-mix(in lab, red, red)){.text-white\/70{color:color-mix(in oklab, var(--color-white) 70%, transparent)}}.text-white\/72{color:#ffffffb8}@supports (color:color-mix(in lab, red, red)){.text-white\/72{color:color-mix(in oklab, var(--color-white) 72%, transparent)}}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.accent-\[\#FFC14D\]{accent-color:#ffc14d}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-55{opacity:.55}.opacity-90{opacity:.9}.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-\[0_0_0_1\.5px_rgba\(8\,12\,22\,0\.9\)\,inset_0_0_0_1\.5px_rgba\(8\,12\,22\,0\.9\)\]{--tw-shadow:0 0 0 1.5px var(--tw-shadow-color,#080c16e6), inset 0 0 0 1.5px var(--tw-shadow-color,#080c16e6);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_0_1\.5px_rgba\(8\,12\,22\,0\.9\)\]{--tw-shadow:0 0 0 1.5px var(--tw-shadow-color,#080c16e6);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_0_1px_rgba\(8\,12\,22\,0\.9\)\,0_0_8px_\#7CE38B\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,#080c16e6), 0 0 8px var(--tw-shadow-color,#7ce38b);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_0_1px_rgba\(8\,12\,22\,0\.9\)\,inset_0_0_0_1px_rgba\(8\,12\,22\,0\.9\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,#080c16e6), inset 0 0 0 1px var(--tw-shadow-color,#080c16e6);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_0_1px_rgba\(8\,12\,22\,0\.9\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,#080c16e6);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_0_2px_\#121620\,0_2px_6px_rgba\(0\,0\,0\,0\.45\)\]{--tw-shadow:0 0 0 2px var(--tw-shadow-color,#121620), 0 2px 6px var(--tw-shadow-color,#00000073);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_0_2px_rgba\(0\,0\,0\,0\.35\)\,0_0_10px_\#FFC14D\]{--tw-shadow:0 0 0 2px var(--tw-shadow-color,#00000059), 0 0 10px var(--tw-shadow-color,#ffc14d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_0_2px_rgba\(0\,0\,0\,0\.35\)\]{--tw-shadow:0 0 0 2px var(--tw-shadow-color,#00000059);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_12px_rgb\(124_227_139\/0\.8\)\]{--tw-shadow:0 0 12px var(--tw-shadow-color,#7ce38bcc);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_8px_28px_rgba\(0\,0\,0\,0\.28\)\,inset_0_1px_0_rgba\(255\,255\,255\,0\.28\)\]{--tw-shadow:0 8px 28px var(--tw-shadow-color,#00000047), inset 0 1px 0 var(--tw-shadow-color,#ffffff47);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[inset_0_0_0_1px_\#FFC14D\]{--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,#ffc14d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[inset_2px_0_0_\#FFC14D\]{--tw-shadow:inset 2px 0 0 var(--tw-shadow-color,#ffc14d);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)}.ring-\[\#7CE38B\]\/80{--tw-ring-color:oklab(83.184% -.130964 .0841602/.8)}.ring-\[\#FFC14D\]\/70{--tw-ring-color:oklab(84.7298% .0259397 .144539/.7)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);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,)}.drop-shadow-\[0_0_6px_rgb\(124_227_139\/0\.8\)\]{--tw-drop-shadow-size:drop-shadow(0 0 6px var(--tw-drop-shadow-color,#7ce38bcc));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.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-\[14px\]{--tw-backdrop-blur:blur(14px);-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-saturate-90{--tw-backdrop-saturate:saturate(90%);-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-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\:inline:is(:where(.group):hover *){display:inline}.group-hover\/row\:opacity-100:is(:where(.group\/row):hover *){opacity:1}}.placeholder\:text-white\/50::placeholder{color:#ffffff80}@supports (color:color-mix(in lab, red, red)){.placeholder\:text-white\/50::placeholder{color:color-mix(in oklab, var(--color-white) 50%, transparent)}}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:top-0\.5:before{content:var(--tw-content);top:calc(var(--spacing) * .5)}.before\:left-0\.5:before{content:var(--tw-content);left:calc(var(--spacing) * .5)}.before\:size-3\.5:before{content:var(--tw-content);width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.before\:rounded-full:before{content:var(--tw-content);border-radius:2147483647px}.before\:bg-white:before{content:var(--tw-content);background-color:var(--color-white)}.before\:shadow-\[0_0_0_1px_rgba\(8\,12\,22\,0\.9\)\]:before{content:var(--tw-content);--tw-shadow:0 0 0 1px var(--tw-shadow-color,#080c16e6);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.checked\:border-transparent:checked{border-color:#0000}.checked\:bg-\[\#FFC14D\]:checked{background-color:#ffc14d}.checked\:before\:translate-x-3\.5:checked:before{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * 3.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.read-only\:opacity-40:read-only{opacity:.4}.focus-within\:border-\[\#FFC14D\]:focus-within{border-color:#ffc14d}@media (hover:hover){.hover\:border-white\/30:hover{border-color:#ffffff4d}@supports (color:color-mix(in lab, red, red)){.hover\:border-white\/30:hover{border-color:color-mix(in oklab, var(--color-white) 30%, transparent)}}.hover\:bg-white\/8:hover{background-color:#ffffff14}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/8:hover{background-color:color-mix(in oklab, var(--color-white) 8%, transparent)}}.hover\:bg-white\/12:hover{background-color:#ffffff1f}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/12:hover{background-color:color-mix(in oklab, var(--color-white) 12%, transparent)}}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:border-\[\#FFC14D\]:focus{border-color:#ffc14d}.read-only\:focus\:border-white\/20:read-only:focus{border-color:#fff3}@supports (color:color-mix(in lab, red, red)){.read-only\:focus\:border-white\/20:read-only:focus{border-color:color-mix(in oklab, var(--color-white) 20%, transparent)}}.focus-visible\:bg-white\/8:focus-visible{background-color:#ffffff14}@supports (color:color-mix(in lab, red, red)){.focus-visible\:bg-white\/8:focus-visible{background-color:color-mix(in oklab, var(--color-white) 8%, transparent)}}.focus-visible\:opacity-100:focus-visible{opacity:1}.focus-visible\:ring-2:focus-visible{--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)}.focus-visible\:ring-\[\#FFC14D\]:focus-visible{--tw-ring-color:#ffc14d}.focus-visible\:ring-offset-0:focus-visible{--tw-ring-offset-width:0px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:cursor-default:disabled{cursor:default}.disabled\:opacity-40:disabled{opacity:.4}.\[\&_blockquote\]\:my-2 blockquote{margin-block:calc(var(--spacing) * 2)}.\[\&_blockquote\]\:border-l-2 blockquote{border-left-style:var(--tw-border-style);border-left-width:2px}.\[\&_blockquote\]\:border-\[\#FFFFFF33\] blockquote{border-color:#fff3}.\[\&_blockquote\]\:pl-2 blockquote{padding-left:calc(var(--spacing) * 2)}.\[\&_code\]\:rounded code{border-radius:.25rem}.\[\&_code\]\:bg-white\/10 code{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.\[\&_code\]\:bg-white\/10 code{background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.\[\&_code\]\:px-1 code{padding-inline:var(--spacing)}.\[\&_code\]\:font-\[\'IBM_Plex_Mono\'\,ui-monospace\,monospace\] code{font-family:IBM Plex Mono,ui-monospace,monospace}.\[\&_code\]\:text-\[11px\] code{font-size:11px}.\[\&_h1\]\:mt-3 h1{margin-top:calc(var(--spacing) * 3)}.\[\&_h1\]\:mb-1\.5 h1{margin-bottom:calc(var(--spacing) * 1.5)}.\[\&_h1\]\:text-\[13px\] h1{font-size:13px}.\[\&_h1\]\:font-semibold h1{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.\[\&_h2\]\:mt-3 h2{margin-top:calc(var(--spacing) * 3)}.\[\&_h2\]\:mb-1 h2{margin-bottom:var(--spacing)}.\[\&_h2\]\:font-semibold h2{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.\[\&_h3\]\:mt-2\.5 h3{margin-top:calc(var(--spacing) * 2.5)}.\[\&_h3\]\:mb-1 h3{margin-bottom:var(--spacing)}.\[\&_h3\]\:font-semibold h3{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.\[\&_h4\]\:mt-2 h4{margin-top:calc(var(--spacing) * 2)}.\[\&_h4\]\:mb-1 h4{margin-bottom:var(--spacing)}.\[\&_h4\]\:font-semibold h4{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.\[\&_hr\]\:my-3 hr{margin-block:calc(var(--spacing) * 3)}.\[\&_hr\]\:border-\[\#FFFFFF24\] hr{border-color:#ffffff24}.\[\&_li\]\:my-0\.5 li{margin-block:calc(var(--spacing) * .5)}.\[\&_ol\]\:my-1\.5 ol{margin-block:calc(var(--spacing) * 1.5)}.\[\&_ol\]\:list-decimal ol{list-style-type:decimal}.\[\&_ol\]\:pl-4 ol{padding-left:calc(var(--spacing) * 4)}.\[\&_p\]\:my-1\.5 p{margin-block:calc(var(--spacing) * 1.5)}.\[\&_pre\]\:my-2 pre{margin-block:calc(var(--spacing) * 2)}.\[\&_pre\]\:overflow-auto pre{overflow:auto}.\[\&_pre\]\:rounded-md pre{border-radius:var(--radius-md)}.\[\&_pre\]\:bg-black\/30 pre{background-color:#0000004d}@supports (color:color-mix(in lab, red, red)){.\[\&_pre\]\:bg-black\/30 pre{background-color:color-mix(in oklab, var(--color-black) 30%, transparent)}}.\[\&_pre\]\:p-2 pre{padding:calc(var(--spacing) * 2)}.\[\&_pre_code\]\:bg-transparent pre code{background-color:#0000}.\[\&_pre_code\]\:p-0 pre code{padding:0}.\[\&_table\]\:my-2 table{margin-block:calc(var(--spacing) * 2)}.\[\&_table\]\:w-full table{width:100%}.\[\&_td\]\:py-0\.5 td{padding-block:calc(var(--spacing) * .5)}.\[\&_td\]\:pr-2 td{padding-right:calc(var(--spacing) * 2)}.\[\&_th\]\:border-b th{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_th\]\:border-\[\#FFFFFF24\] th{border-color:#ffffff24}.\[\&_th\]\:py-1 th{padding-block:var(--spacing)}.\[\&_th\]\:pr-2 th{padding-right:calc(var(--spacing) * 2)}.\[\&_th\]\:text-left th{text-align:left}.\[\&_ul\]\:my-1\.5 ul{margin-block:calc(var(--spacing) * 1.5)}.\[\&_ul\]\:list-disc ul{list-style-type:disc}.\[\&_ul\]\:pl-4 ul{padding-left:calc(var(--spacing) * 4)}.\[\&\:\:-webkit-inner-spin-button\]\:appearance-none::-webkit-inner-spin-button{appearance:none}.\[\&\>\:first-child\]\:mt-0>:first-child{margin-top:0}.\[\&\>svg\]\:mx-auto>svg{margin-inline:auto}.\[\&\>svg\]\:block>svg{display:block}@media (hover:none){.\[\@media\(hover\:none\)\]\:opacity-100{opacity:1}}section+.\[section\+\&\]\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}}[data-devtools]{--color-menu-raised:#0000002e;--color-menu-edge:#fff3;--color-menu-muted:#ffffffb8;--color-menu-ink:#fff;--color-menu-accent:#ffc14d;--color-menu-accent-ink:#1b1206;--radius-field:.5rem;--text-field:12px}@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-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-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-content{syntax:"*";inherits:false;initial-value:""}@keyframes pulse{50%{opacity:.5}}
|
|
3
|
+
/*$vite$:1*/
|