PageSourceSearch

https://mstudio.ai/build/assets/FramePairEditor.C5GYFgik.js

js mstudio.ai collected 2026-10-05 12:18:16 UTC 6,798 bytes, 2 lines download raw bytes

1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/FrameDesigner.o8TBrq-c.js","assets/entry-client.DX3aUoe5.js","assets/inertia.BE4YqsTM.js","assets/http.DWpeO7Ui.js","assets/rolldown-runtime.C1f3BsDW.js","assets/icons.ChOq_Y4q.js","assets/utils.CgzVjNgC.js","assets/react-core.CAMe6Z4j.js","assets/state.L8kQliOB.js","assets/app.BpxBHA-A.css","assets/dist.D4237Rk6.js","assets/dist.CoNAZqlp.js","assets/dist.DxccqHSW.js","assets/dist.BhzTvz6X.js","assets/dist.D4LCotyC.js","assets/dist.C1cc-Zbw.js","assets/dist.DbqQa_sy.js","assets/es2015.Cr2X04_P.js","assets/dropdown-menu.D1MnQ7U0.js","assets/select.vYEvBl4E.js","assets/dist.zmknLG-d.js","assets/input.GzdAc1Aj.js","assets/dist.B-JETxGF.js","assets/AssetGalleryModal.DteaM05Z.js","assets/Tooltip.D5vWPvw2.js","assets/dialog.Bb7MGeDP.js","assets/segmented.DHcH2lTJ.js","assets/characterMention.DcxgzALo.js","assets/imageValidation.BrtKjMLv.js","assets/DemoTutorialModal.n7nzQPTB.js","assets/AnimationShotParts.B3fNwJfT.js","assets/badge.CK53iWwP.js","assets/switch.D3Vh3rjF.js","assets/shotMedium.DYKLpru1.js","assets/projectStore.B74RetxK.js","assets/DeletedMediaNote.4QDTVou1.js","assets/FrameVersionHistory.B9DWBof-.js","assets/GenerationTimingLabel.K5WCvCRk.js","assets/useAIProviders.DpznsHqJ.js","assets/section-label.Cq6cQeLu.js","assets/PromptReferencesRow.Dil-fpz5.js","assets/ShotNavigator.Bf6k38ex.js","assets/ReviewShotsDialog.B0UjM6nz.js","assets/MentionText.Do-0ghUN.js","assets/locationStore.DwRNJtUf.js","assets/AddLocationButton.6fxYeEMu.js","assets/useLocationActions.DjW0qbmO.js","assets/usePolling.mKMvMVRm.js","assets/useGenerationJobPoller.BUhANv0M.js","assets/useLocationMentions.Ch75-YXw.js","assets/filmLookStore.CfGPY-XO.js","assets/MentionTextarea.BoOwGw9M.js","assets/ModelPicker.B9qrijHK.js","assets/kbd.F_PH3ELp.js","assets/useFreeTierGate.CwupVhTY.js","assets/usePreparePrompts.OtIhvjD2.js","assets/filmProgress.BMWLABZx.js","assets/savedDraft.D7Sdk2MK.js"])))=>i.map(i=>d[i]);
2import{r as P}from"./rolldown-runtime.C1f3BsDW.js";import"./http.DWpeO7Ui.js";import{I as z,Qr as U,fn as q}from"./icons.ChOq_Y4q.js";import{t as O}from"./react-core.CAMe6Z4j.js";import"./utils.CgzVjNgC.js";import"./state.L8kQliOB.js";import{Mt as n,Tt as x,Z as b,i as H,wt as Q}from"./entry-client.DX3aUoe5.js";import"./characterMention.DcxgzALo.js";import{t as Z}from"./projectStore.B74RetxK.js";import{t as $}from"./useFramePairCharacters.BTpVDOC8.js";import{r as B}from"./useAIProviders.DpznsHqJ.js";var r=P(U(),1);function G(e,s,d){const{fetchFrames:i}=Z(),l=H(a=>a.user?.free_tier?.preview_renderer),[u,c]=(0,r.useState)(()=>{const a=e.active_version?.data?.generated_image_url;return n(a)||void 0}),[g,m]=(0,r.useState)(()=>{const a=e.active_version?.data?.end_frame_image_url;return n(a)||void 0});(0,r.useEffect)(()=>{const a=e.active_version?.data?.generated_image_url;c(n(a)||void 0);const R=e.active_version?.data?.end_frame_image_url;m(n(R)||void 0);const h=e.active_version?.data?.image_provider_slug;h&&h!==l&&N(h)},[e.active_version?.id]);const[v,o]=(0,r.useState)(null),[_,f]=(0,r.useState)(!1),[E,I]=(0,r.useState)(!0),[T,y]=(0,r.useState)([]),[k,S]=(0,r.useState)(!1),[A,w]=(0,r.useState)(null),V=$(e,s),{providers:F,defaultSlug:j,isLoading:C}=B("image"),[p,N]=(0,r.useState)(null),D={providers:(0,r.useMemo)(()=>F.filter(a=>a.is_user_selectable!==!1),[F]),selectedSlug:p??j,setSelectedSlug:N,isLoading:C,effectiveSlug:p??j},L=p;(0,r.useEffect)(()=>{const a=e.active_version?.data;a?.generated_image_url&&c(n(a.generated_image_url)||void 0),a?.end_frame_image_url&&m(n(a.end_frame_image_url)||void 0)},[e.active_version?.data?.generated_image_url,e.active_version?.data?.end_frame_image_url]);const M=(0,r.useCallback)(async()=>{await i(s)},[i,s]);return{startFrameUrl:u,endFrameUrl:g,sidebarTab:v,setSidebarTab:o,isMinimized:_,setIsMinimized:f,isFullscreen:E,setIsFullscreen:I,frameVersions:T,isLoadingVersions:k,revertingVersionId:A,characters:V,provider:D,safeProviderSlug:L,handleShowHistory:(0,r.useCallback)(async()=>{o("history"),S(!0);try{y((await b.history(e.id)).data?.data||[])}catch{x.error("Could not load version history. Try again.")}finally{S(!1)}},[e.id]),handleRevertToVersion:(0,r.useCallback)(async a=>{w(a);try{await b.revertToVersion(e.id,a),await i(s),y((await b.history(e.id)).data?.data||[]),x.success("Earlier version restored.")}catch{x.error("Could not restore that version. Try again.")}finally{w(null)}},[e.id,s,i]),fetchFramesAndSync:M}}var t=P(O(),1),J=(0,r.lazy)(()=>Q(()=>import("./FrameDesigner.o8TBrq-c.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57])).then(e=>({default:e.FrameDesigner})));const K=(0,r.memo)(({frame:e,projectUuid:s,isOpen:d,onClose:i,onSave:l,whichFrame:u,currentStep:c,completedSteps:g,onNavigateToStep:m,onSwitchFrame:v})=>{const o=G(e,s,l),_=(0,r.useCallback)(async f=>{await l(f),await o.fetchFramesAndSync()}
2,[l,o.fetchFramesAndSync]);return d?(0,t.jsx)(r.Suspense,{fallback:null,children:(0,t.jsx)(J,{frame:e,whichFrame:u,projectUuid:s,shotState:o,onClose:i,onAccept:_,currentStep:c,completedSteps:g,onNavigateToStep:m,onSwitchFrame:v})}):null});K.displayName="FramePairEditor";var W=(0,r.memo)(({label:e,imageUrl:s,onClick:d})=>(0,t.jsxs)("button",{type:"button",onClick:d,className:"group relative flex min-h-[240px] w-full flex-col overflow-hidden rounded-xl border-2 border-border bg-card/50 transition-all hover:border-primary/50 hover:bg-card outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 sm:min-h-[280px]","aria-label":`Design ${e}`,children:[(0,t.jsx)("div",{className:"border-b border-border px-3 py-2.5 sm:px-4 sm:py-3",children:(0,t.jsx)("span",{className:"text-sm font-medium text-secondary-foreground",children:e})}),(0,t.jsxs)("div",{className:"relative flex flex-1 items-center justify-center p-4 sm:p-6",children:[s?(0,t.jsx)("img",{src:s,alt:e,className:"max-h-full max-w-full rounded-lg object-contain shadow-lg",draggable:!1}):(0,t.jsxs)("div",{className:"flex flex-col items-center gap-3 text-center",children:[(0,t.jsx)(q,{className:"h-12 w-12 text-muted-foreground/40"}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"Click to draw this storyboard picture"})]}),(0,t.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-black/0 transition-colors group-hover:bg-black/40",children:(0,t.jsxs)("div",{className:"scale-90 rounded-lg bg-primary px-5 py-2.5 text-sm font-medium text-primary-foreground opacity-0 shadow-lg transition-all group-hover:scale-100 group-hover:opacity-100",children:[(0,t.jsx)(z,{className:"mr-2 inline h-4 w-4"}),"Design"]})})]})]}));W.displayName="FrameThumbnail";export{K as FramePairEditor};

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.