PageSourceSearch

https://mstudio.ai/build/assets/LocationPanel.BIYbZa-u.js

js mstudio.ai collected 2026-10-05 12:18:35 UTC 2,684 bytes, 1 lines download raw bytes

1import{r as l}from"./rolldown-runtime.C1f3BsDW.js";import"./inertia.BE4YqsTM.js";import"./http.DWpeO7Ui.js";import{Wt as a,Xt as m,ct as n}from"./icons.ChOq_Y4q.js";import{t as c}from"./react-core.CAMe6Z4j.js";import"./utils.CgzVjNgC.js";import"./state.L8kQliOB.js";import{A as x,k as p}from"./entry-client.DX3aUoe5.js";import"./dist.CoNAZqlp.js";import"./dist.DxccqHSW.js";import"./es2015.Cr2X04_P.js";import"./dist.DbqQa_sy.js";import"./dialog.Bb7MGeDP.js";import"./locationStore.DwRNJtUf.js";import{t as u}from"./LocationCard.721G6Ja_.js";import"./usePolling.mKMvMVRm.js";import{n as h,t as f}from"./useLocationActions.DjW0qbmO.js";var e=l(c(),1);const z=({projectUuid:o,onClose:i})=>{const{locations:r,loaded:d}=h(o),s=f(o);return(0,e.jsxs)("div",{className:"flex h-full w-full flex-col border-l border-border bg-card lg:w-80",children:[(0,e.jsxs)("div",{className:"flex items-center justify-between border-b border-border px-4 py-3",children:[(0,e.jsxs)("div",{className:"flex items-center gap-2",children:[(0,e.jsx)(a,{className:"h-4 w-4 text-muted-foreground","aria-hidden":"true"}),(0,e.jsx)("h3",{className:"text-sm font-semibold",children:"Film sets"}),r.length>0&&(0,e.jsx)("span",{className:"rounded-full bg-secondary px-1.5 py-0.5 text-xs text-muted-foreground",children:r.length})]}),(0,e.jsx)(x,{onClick:i,"aria-label":"Close film sets panel"})]}),(0,e.jsx)("div",{className:"border-b border-border/50 px-3 py-2",children:(0,e.jsxs)(p,{size:"sm",variant:"outline",className:"w-full justify-center gap-1.5",onClick:s.add,children:[(0,e.jsx)(n,{className:"h-3.5 w-3.5","aria-hidden":"true"}),"Add a film set"]})}),(0,e.jsx)("div",{className:"flex-1 space-y-2 overflow-y-auto px-3 py-2",children:d?r.length===0?(0,e.jsxs)("div",{className:"px-4 py-8 text-center",children:[(0,e.jsx)("div",{className:"mx-auto mb-3 flex h-12 w-12 items-center justify-center rounded-xl bg-secondary",children:(0,e.jsx)(a,{className:"h-6 w-6 text-muted-foreground/50","aria-hidden":"true"})}),(0,e.jsx)("p",{className:"mb-1 text-sm font-medium text-foreground",children:"No film sets yet"}),(0,e.jsx)("p",{className:"text-xs text-muted-foreground",children:"Add the places your film is shot in. Every shot set in one is drawn from its image, so the place looks the same in every shot."})]}):r.map(t=>(0,e.jsx)(u,{variant:"panel",location:t,busy:s.busy.has(t.key),onUsePhoto:()=>s.pickPhoto(t),onRedraw:()=>s.redraw(t),onEdit:()=>s.edit(t),onDelete:()=>void s.remove(t)},t.key)):(0,e.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,e.jsx)(m,{className:"h-5 w-5 animate-spin text-muted-foreground","aria-hidden":"true"})})}),s.dialogs]})};export{z as LocationPanel};

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