allyhub 0.2.0 → 0.3.0
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/dist/cli-version.js +2 -0
- package/dist/commands/add.js +5 -5
- package/dist/commands/dev.js +2 -2
- package/dist/commands/mcp.js +1 -1
- package/dist/commands/model.js +1 -1
- package/dist/commands/render.js +1 -1
- package/dist/commands/skills.js +3 -3
- package/dist/main.js +7 -7
- package/dist/works.js +1 -1
- package/editor-app/view.html +3 -3
- package/editor-web/assets/chevron-left-W6sP7nB1.js +1 -0
- package/editor-web/assets/{chevron-up-BMNXDEBs.js → chevron-up-566GQpAm.js} +1 -1
- package/editor-web/assets/{dist-B4VKfY-H.js → dist-BKDr73BR.js} +4 -4
- package/editor-web/assets/dist-CPCNTYVu.js +8 -0
- package/editor-web/assets/{dist-Coblfc3T.js → dist-C_NajYp0.js} +1 -1
- package/editor-web/assets/{dist-BcInw4os.js → dist-mA6NrAKh.js} +34 -34
- package/editor-web/assets/{floating-ui.react-dom-DSyn5TRd.js → floating-ui.react-dom-BUxFRF6t.js} +1 -1
- package/editor-web/assets/index-CFZhjTQW.js +56 -0
- package/editor-web/assets/index-DgU-lyX6.css +2 -0
- package/editor-web/assets/{react-Bo429Bov.js → react-Ff_buMj8.js} +1 -1
- package/editor-web/assets/{undo-2-CWgOKQ3L.js → undo-2-BKFItM3X.js} +1 -1
- package/editor-web/index.html +4 -4
- package/node_modules/@allyhub-next/audio/package.json +1 -1
- package/node_modules/@allyhub-next/browser/package.json +1 -1
- package/node_modules/@allyhub-next/build/dist/scan.js +1 -1
- package/node_modules/@allyhub-next/build/package.json +1 -1
- package/node_modules/@allyhub-next/check/dist/check.js +3 -3
- package/node_modules/@allyhub-next/check/package.json +1 -1
- package/node_modules/@allyhub-next/cloud/dist/index.js +1 -1
- package/node_modules/@allyhub-next/cloud/dist/token.js +1 -1
- package/node_modules/@allyhub-next/cloud/package.json +1 -1
- package/node_modules/@allyhub-next/components/package.json +1 -1
- package/node_modules/@allyhub-next/dev-server/dist/live.js +1 -1
- package/node_modules/@allyhub-next/dev-server/dist/tools.js +1 -1
- package/node_modules/@allyhub-next/dev-server/package.json +1 -1
- package/node_modules/@allyhub-next/doc/package.json +1 -1
- package/node_modules/@allyhub-next/export/dist/export.d.ts +5 -2
- package/node_modules/@allyhub-next/export/dist/export.js +2 -2
- package/node_modules/@allyhub-next/export/package.json +1 -1
- package/node_modules/@allyhub-next/formats/dist/items.d.ts +5 -0
- package/node_modules/@allyhub-next/formats/dist/items.js +1 -1
- package/node_modules/@allyhub-next/formats/dist/layout.d.ts +2 -0
- package/node_modules/@allyhub-next/formats/dist/layout.js +1 -1
- package/node_modules/@allyhub-next/formats/package.json +1 -1
- package/node_modules/@allyhub-next/measure/package.json +1 -1
- package/node_modules/@allyhub-next/media/package.json +1 -1
- package/node_modules/@allyhub-next/model/dist/report.d.ts +1 -1
- package/node_modules/@allyhub-next/model/package.json +1 -1
- package/node_modules/@allyhub-next/project/package.json +1 -1
- package/node_modules/@allyhub-next/protocol/dist/app.d.ts +3 -0
- package/node_modules/@allyhub-next/protocol/dist/auth.d.ts +17 -0
- package/node_modules/@allyhub-next/protocol/dist/auth.js +1 -1
- package/node_modules/@allyhub-next/protocol/dist/cli.d.ts +1 -1
- package/node_modules/@allyhub-next/protocol/dist/cli.js +1 -1
- package/node_modules/@allyhub-next/protocol/dist/editor.d.ts +4 -0
- package/node_modules/@allyhub-next/protocol/dist/registry.d.ts +3 -1
- package/node_modules/@allyhub-next/protocol/dist/registry.js +1 -1
- package/node_modules/@allyhub-next/protocol/dist/routes.js +1 -1
- package/node_modules/@allyhub-next/protocol/dist/tools.d.ts +1 -0
- package/node_modules/@allyhub-next/protocol/package.json +1 -1
- package/node_modules/@allyhub-next/registry/package.json +1 -1
- package/node_modules/@allyhub-next/render/package.json +1 -1
- package/node_modules/@allyhub-next/runtime/dist/page.js +1 -1
- package/node_modules/@allyhub-next/runtime/package.json +1 -1
- package/node_modules/@allyhub-next/runtimes/package.json +1 -1
- package/node_modules/@allyhub-next/scaffold/dist/index.js +5 -5
- package/node_modules/@allyhub-next/scaffold/package.json +1 -1
- package/node_modules/@allyhub-next/scenery/package.json +1 -1
- package/node_modules/@allyhub-next/scenery-host/dist/bundle.d.ts +1 -0
- package/node_modules/@allyhub-next/scenery-host/dist/bundle.js +3 -3
- package/node_modules/@allyhub-next/scenery-host/dist/model-stage.d.ts +32 -0
- package/node_modules/@allyhub-next/scenery-host/dist/model-stage.js +3 -0
- package/node_modules/@allyhub-next/scenery-host/package.json +1 -1
- package/node_modules/@allyhub-next/sheet/package.json +1 -1
- package/node_modules/@allyhub-next/site/package.json +1 -1
- package/node_modules/@allyhub-next/stage/package.json +1 -1
- package/node_modules/@allyhub-next/video-core/dist/problem.d.ts +4 -0
- package/node_modules/@allyhub-next/video-core/dist/problem.js +1 -1
- package/node_modules/@allyhub-next/video-core/package.json +1 -1
- package/package.json +28 -28
- package/editor-web/assets/chevron-left-D1vfOP5S.js +0 -1
- package/editor-web/assets/dist-BIEloJVS.js +0 -8
- package/editor-web/assets/index-BSFR4plz.css +0 -2
- package/editor-web/assets/index-Dc8FX_sp.js +0 -56
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import{O as e,a as t,c as n,d as r,f as i,i as a,j as o,l as s,n as c,r as l,u,v as d}from"./react-Ff_buMj8.js";import{P as f}from"./floating-ui.react-dom-BUxFRF6t.js";import{n as p,r as m,t as h}from"./chevron-up-566GQpAm.js";import{t as g}from"./chevron-left-W6sP7nB1.js";import{$ as _,A as v,B as y,C as b,D as x,E as S,G as C,H as w,I as T,J as E,K as D,L as O,M as k,O as A,Q as ee,R as te,S as ne,T as re,U as j,V as M,W as ie,X as N,Y as P,_ as F,b as I,et as ae,g as L,h as R,j as z,k as oe,ot as se,q as ce,st as le,v as B,w as ue,x as de,y as fe,z as pe}from"./index-CFZhjTQW.js";var me=n(`audio-lines`,[[`path`,{d:`M2 10v3`,key:`1fnikh`}],[`path`,{d:`M6 6v11`,key:`11sgs0`}],[`path`,{d:`M10 3v18`,key:`yhl04a`}],[`path`,{d:`M14 8v7`,key:`3a1oy3`}],[`path`,{d:`M18 5v13`,key:`123xd1`}],[`path`,{d:`M22 10v3`,key:`154ddg`}]]),he=n(`file-output`,[[`path`,{d:`M4.226 20.925A2 2 0 0 0 6 22h12a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v3.127`,key:`wfxp4w`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`m5 11-3 3`,key:`1dgrs4`}],[`path`,{d:`m5 17-3-3h10`,key:`1mvvaf`}]]),ge=n(`mic`,[[`path`,{d:`M12 19v3`,key:`npa21l`}],[`path`,{d:`M19 10v2a7 7 0 0 1-14 0v-2`,key:`1vc78b`}],[`rect`,{x:`9`,y:`2`,width:`6`,height:`13`,rx:`3`,key:`s6n7sd`}]]),_e=n(`music`,[[`path`,{d:`M9 18V5l12-2v13`,key:`1jmyc2`}],[`circle`,{cx:`6`,cy:`18`,r:`3`,key:`fqmcym`}],[`circle`,{cx:`18`,cy:`16`,r:`3`,key:`1hluhg`}]]),ve=n(`pause`,[[`rect`,{x:`14`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`kaeet6`}],[`rect`,{x:`5`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`1wsw3u`}]]),ye=n(`play`,[[`path`,{d:`M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z`,key:`10ikf1`}]]),be=n(`square`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}]]),V=o(e(),1),H=s(),xe=Object.defineProperty,Se=(e,t)=>xe(e,`name`,{value:t,configurable:!0}),Ce=Object.freeze({position:`absolute`,border:0,width:1,height:1,padding:0,margin:-1,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,wordWrap:`normal`}),we=V.forwardRef(Se(function(e,t){return(0,H.jsx)(D.span,{...e,ref:t,style:{...Ce,...e.style}})},`VisuallyHidden`)),Te=Object.defineProperty,U=(e,t)=>Te(e,`name`,{value:t,configurable:!0}),Ee=`Checkbox`,[De,Oe]=C(Ee),[ke,Ae]=De(Ee);function je(e){let{__scopeCheckbox:t,checked:n,children:r,defaultChecked:i,disabled:a,form:o,name:s,onCheckedChange:c,required:l,value:u=`on`,internal_do_not_use_render:d}=e,[f,p]=M({prop:n,defaultProp:i??!1,onChange:c,caller:Ee}),[m,h]=V.useState(null),[g,_]=V.useState(null),v=V.useRef(!1),[y,b]=V.useReducer(e=>e+1,0),x=!m||!!o||!!m.closest(`form`),S={checked:f,disabled:a,setChecked:p,control:m,setControl:h,name:s,form:o,value:u,hasConsumerStoppedPropagationRef:v,userInteractionCount:y,onUserInteraction:b,required:l,defaultChecked:!W(i)&&i,isFormControl:x,bubbleInput:g,setBubbleInput:_};return(0,H.jsx)(ke,{scope:t,...S,children:ze(d)?d(S):r})}U(je,`CheckboxProvider`);var Me=`CheckboxTrigger`,Ne=V.forwardRef(U(function({__scopeCheckbox:e,onKeyDown:t,onClick:n,...r},i){let{control:a,value:o,disabled:s,checked:c,required:l,setControl:u,setChecked:d,hasConsumerStoppedPropagationRef:f,onUserInteraction:p,isFormControl:m,bubbleInput:h}=Ae(Me,e),g=P(i,u),_=V.useRef(c);return V.useEffect(()=>{let e=a?.form;if(e){let t=U(()=>d(_.current),`reset`);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[a,d]),(0,H.jsx)(D.button,{type:`button`,role:`checkbox`,"aria-checked":W(c)?`mixed`:c,"aria-required":l,"data-state":Be(c),"data-disabled":s?``:void 0,disabled:s,value:o,...r,ref:g,onKeyDown:j(t,e=>{e.key===`Enter`&&e.preventDefault()}),onClick:j(n,e=>{p(),d(e=>W(e)?!0:!e),h&&m&&(f.current=e.isPropagationStopped(),f.current||e.stopPropagation())})})},`CheckboxTrigger`)),Pe=V.forwardRef(U(function(e,t){let{__scopeCheckbox:n,name:r,checked:i,defaultChecked:a,required:o,disabled:s,value:c,onCheckedChange:l,form:u,...d}=e;return(0,H.jsx)(je,{__scopeCheckbox:n,checked:i,defaultChecked:a,disabled:s,required:o,onCheckedChange:l,name:r,form:u,value:c,internal_do_not_use_render:({isFormControl:e})=>(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(Ne,{...d,ref:t,__scopeCheckbox:n}),e&&(0,H.jsx)(Re,{__scopeCheckbox:n})]})})},`Checkbox`)),Fe=`CheckboxIndicator`,Ie=V.forwardRef(U(function(e,t){let{__scopeCheckbox:n,forceMount:r,...i}=e,a=Ae(Fe,n);return(0,H.jsx)(y,{present:r||W(a.checked)||a.checked===!0,children:(0,H.jsx)(D.span,{"data-state":Be(a.checked),"data-disabled":a.disabled?``:void 0,...i,ref:t,style:{pointerEvents:`none`,...e.style}})})},`CheckboxIndicator`)),Le=`CheckboxBubbleInput`,Re=V.forwardRef(U(function({__scopeCheckbox:e,onClick:t,...n},r){let{control:i,hasConsumerStoppedPropagationRef:a,userInteractionCount:o,checked:s,defaultChecked:c,required:l,disabled:u,name:d,value:f,form:p,bubbleInput:m,setBubbleInput:h}=Ae(Le,e),g=P(r,h),_=de(i),v=V.useRef(!1),y=V.useRef(s),b=V.useRef(o);V.useEffect(()=>{let e=m;if(!e)return;let t=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(t,`checked`).set,r=o!==b.current;b.current=o;let i=y.current!==s;y.current=s;let c=!(r&&a.current);if(i&&n){v.current=!r;let t=new Event(`click`,{bubbles:c});e.indeterminate=W(s),n.call(e,!W(s)&&s),e.dispatchEvent(t),v.current=!1}},[m,s,a,o]);let x=V.useRef(!W(s)&&s);return(0,H.jsx)(D.input,{type:`checkbox`,"aria-hidden":!0,defaultChecked:c??x.current,required:l,disabled:u,name:d,value:f,form:p,...n,tabIndex:-1,ref:g,onClick:j(t,e=>{v.current&&e.stopPropagation()}),style:{...n.style,..._,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0,transform:`translateX(-100%)`}})},`CheckboxBubbleInput`));function ze(e){return typeof e==`function`}U(ze,`isFunction`);function W(e){return e===`indeterminate`}U(W,`isIndeterminate`);function Be(e){return W(e)?`indeterminate`:e?`checked`:`unchecked`}U(Be,`getState`);var Ve=Object.defineProperty,He=(e,t)=>Ve(e,`name`,{value:t,configurable:!0});function Ue(e){let t=V.useRef({value:e,previous:e});return V.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}He(Ue,`usePrevious`);var We=Object.defineProperty,Ge=(e,t)=>We(e,`name`,{value:t,configurable:!0});function Ke(e,[t,n]){return Math.min(n,Math.max(t,e))}Ge(Ke,`clamp`);var qe=Object.defineProperty,G=(e,t)=>qe(e,`name`,{value:t,configurable:!0}),Je=`Progress`,Ye=100,[Xe,Ze]=C(Je),[Qe,$e]=Xe(Je),et=V.forwardRef(G(function(e,t){let{__scopeProgress:n,value:r=null,max:i,getValueLabel:a=rt,...o}=e;(i||i===0)&&!ot(i)&&console.error(ct(`${i}`,`Progress`));let s=ot(i)?i:Ye;r!==null&&!st(r,s)&&console.error(lt(`${r}`,`Progress`));let c=st(r,s)?r:null,l=at(c)?a(c,s):void 0;return(0,H.jsx)(Qe,{scope:n,value:c,max:s,children:(0,H.jsx)(D.div,{"aria-valuemax":s,"aria-valuemin":0,"aria-valuenow":at(c)?c:void 0,"aria-valuetext":l,role:`progressbar`,"data-state":it(c,s),"data-value":c??void 0,"data-max":s,...o,ref:t})})},`Progress`)),tt=`ProgressIndicator`,nt=V.forwardRef(G(function(e,t){let{__scopeProgress:n,...r}=e,i=$e(tt,n);return(0,H.jsx)(D.div,{"data-state":it(i.value,i.max),"data-value":i.value??void 0,"data-max":i.max,...r,ref:t})},`ProgressIndicator`));function rt(e,t){return`${Math.round(e/t*100)}%`}G(rt,`defaultGetValueLabel`);function it(e,t){return e==null?`indeterminate`:e===t?`complete`:`loading`}G(it,`getProgressState`);function at(e){return typeof e==`number`}G(at,`isNumber`);function ot(e){return at(e)&&!isNaN(e)&&e>0}G(ot,`isValidMaxNumber`);function st(e,t){return at(e)&&!isNaN(e)&&e<=t&&e>=0}G(st,`isValidValueNumber`);function ct(e,t){return`Invalid prop \`max\` of value \`${e}\` supplied to \`${t}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${Ye}\`.`}G(ct,`getInvalidMaxError`);function lt(e,t){return`Invalid prop \`value\` of value \`${e}\` supplied to \`${t}\`. The \`value\` prop must be:
|
|
2
|
+
- a positive number
|
|
3
|
+
- less than the value passed to \`max\` (or ${Ye} if no \`max\` prop is set)
|
|
4
|
+
- \`null\` or \`undefined\` if the progress is indeterminate.
|
|
5
|
+
|
|
6
|
+
Defaulting to \`null\`.`}G(lt,`getInvalidValueError`);var ut=o(f(),1),dt=Object.defineProperty,K=(e,t)=>dt(e,`name`,{value:t,configurable:!0}),ft={ItemAligned:`item-aligned`,Popper:`popper`},pt={LTR:`ltr`,RTL:`rtl`},mt=[` `,`Enter`,`ArrowUp`,`ArrowDown`],ht=[` `,`Enter`],gt=`Select`,[_t,vt,yt]=ie(gt),[bt,xt]=C(gt,[yt,I]),St=I(),[Ct,q]=bt(gt),[wt,Tt]=bt(gt);function Et(e){let{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:a,value:o,defaultValue:s,onValueChange:c,dir:l,name:u,autoComplete:d,disabled:f,required:p,form:m,internal_do_not_use_render:h}=e,g=St(t),[_,v]=V.useState(null),[y,b]=V.useState(null),[x,S]=V.useState(!1),C=te(l),[w,T]=M({prop:r,defaultProp:i??!1,onChange:a,caller:gt}),[E,D]=M({prop:o,defaultProp:s,onChange:c,caller:gt}),O=V.useRef(null),k=V.useRef(E);V.useEffect(()=>{let e=m?_?.ownerDocument.getElementById(m):_?.form;if(e instanceof HTMLFormElement){let t=K(()=>D(k.current),`reset`);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[m,_,D]);let A=!_||!!m||!!_.closest(`form`),[ee,ne]=V.useState(new Set),re=pe(),j=Array.from(ee).map(e=>e.props.value).join(`;`),ie=V.useCallback(e=>{ne(t=>new Set(t).add(e))},[]),N=V.useCallback(e=>{ne(t=>{let n=new Set(t);return n.delete(e),n})},[]),P={required:p,trigger:_,onTriggerChange:v,valueNode:y,onValueNodeChange:b,valueNodeHasChildren:x,onValueNodeHasChildrenChange:S,contentId:re,value:E,onValueChange:D,open:w,onOpenChange:T,dir:C,triggerPointerDownPosRef:O,disabled:f,name:u,autoComplete:d,form:m,nativeOptions:ee,nativeSelectKey:j,isFormControl:A};return(0,H.jsx)(L,{...g,children:(0,H.jsx)(Ct,{scope:t,...P,children:(0,H.jsx)(_t.Provider,{scope:t,children:(0,H.jsx)(wt,{scope:t,onNativeOptionAdd:ie,onNativeOptionRemove:N,children:pn(h)?h(P):n})})})})}K(Et,`SelectProvider`);var Dt=K(e=>{let{__scopeSelect:t,children:n,...r}=e;return(0,H.jsx)(Et,{__scopeSelect:t,...r,internal_do_not_use_render:({isFormControl:e})=>(0,H.jsxs)(H.Fragment,{children:[n,e?(0,H.jsx)(fn,{__scopeSelect:t}):null]})})},`Select`),Ot=`SelectTrigger`,kt=V.forwardRef(K(function(e,t){let{__scopeSelect:n,disabled:r=!1,...i}=e,a=St(n),o=q(Ot,n),s=o.disabled||r,c=P(t,o.onTriggerChange),l=vt(n),u=V.useRef(`touch`),[d,f,p]=hn(e=>{let t=l().filter(e=>!e.disabled),n=gn(t,e,t.find(e=>e.value===o.value));n!==void 0&&o.onValueChange(n.value)}),m=K(e=>{s||(o.onOpenChange(!0),p()),e&&(o.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})},`handleOpen`);return(0,H.jsx)(F,{asChild:!0,...a,children:(0,H.jsx)(D.button,{type:`button`,role:`combobox`,"aria-controls":o.open?o.contentId:void 0,"aria-expanded":o.open,"aria-required":o.required,"aria-autocomplete":`none`,dir:o.dir,"data-state":o.open?`open`:`closed`,disabled:s,"data-disabled":s?``:void 0,"data-placeholder":mn(o.value)?``:void 0,...i,ref:c,onClick:j(i.onClick,e=>{e.currentTarget.focus(),u.current!==`mouse`&&m(e)}),onPointerDown:j(i.onPointerDown,e=>{u.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&e.pointerType===`mouse`&&(m(e),e.preventDefault())}),onKeyDown:j(i.onKeyDown,e=>{let t=d.current!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&f(e.key),!(t&&e.key===` `)&&mt.includes(e.key)&&(m(),e.preventDefault())})})})},`SelectTrigger`)),At=`SelectValue`,jt=V.forwardRef(K(function(e,t){let{__scopeSelect:n,className:r,style:i,children:a,placeholder:o=``,...s}=e,c=q(At,n),{onValueNodeHasChildrenChange:l}=c,u=a!==void 0,d=P(t,c.onValueNodeChange);w(()=>{l(u)},[l,u]);let f=mn(c.value);return(0,H.jsx)(D.span,{...s,asChild:!f&&s.asChild,ref:d,style:{pointerEvents:`none`},children:(0,H.jsx)(V.Fragment,{children:f?o:a},f?`placeholder`:`value`)})},`SelectValue`)),Mt=V.forwardRef(K(function(e,t){let{__scopeSelect:n,children:r,...i}=e;return(0,H.jsx)(D.span,{"aria-hidden":!0,...i,ref:t,children:r||`▼`})},`SelectIcon`)),[Nt,Pt]=bt(`SelectPortal`,{forceMount:void 0}),Ft=K(e=>{let{__scopeSelect:t,forceMount:n,...r}=e;return(0,H.jsx)(Nt,{scope:e.__scopeSelect,forceMount:n,children:(0,H.jsx)(z,{asChild:!0,...r})})},`SelectPortal`),It=`SelectContent`,Lt=V.forwardRef(K(function(e,t){let n=Pt(It,e.__scopeSelect),{forceMount:r=n.forceMount,...i}=e,a=q(It,e.__scopeSelect),[o,s]=V.useState();return w(()=>{s(new DocumentFragment)},[]),(0,H.jsx)(y,{present:r||a.open,children:({present:e})=>e?(0,H.jsx)(Ht,{...i,ref:t}):(0,H.jsx)(Rt,{...i,fragment:o})})},`SelectContent`)),Rt=V.forwardRef(K(function(e,t){let{__scopeSelect:n,children:r,fragment:i}=e;return i?ut.createPortal((0,H.jsx)(zt,{scope:n,children:(0,H.jsx)(_t.Slot,{scope:n,children:(0,H.jsx)(`div`,{ref:t,children:r})})}),i):null},`SelectContentFragment`)),J=10,[zt,Bt]=bt(It),Vt=ce(`SelectContent.RemoveScroll`),Ht=V.forwardRef(K(function(e,t){let{__scopeSelect:n}=e,{position:r=ft.ItemAligned,onCloseAutoFocus:i,onEscapeKeyDown:a,onPointerDownOutside:o,side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:f,collisionPadding:p,sticky:m,hideWhenDetached:h,avoidCollisions:g,..._}=e,y=q(It,n),[b,x]=V.useState(null),[S,C]=V.useState(null),w=P(t,x),[E,D]=V.useState(null),[O,ee]=V.useState(null),te=vt(n),[ne,re]=V.useState(!1),M=V.useRef(!1);V.useEffect(()=>{if(b)return A(b)},[b]),v();let ie=V.useCallback(e=>{let[t,...n]=te().map(e=>e.ref.current),[r]=n.slice(-1),i=document.activeElement;for(let n of e)if(n===i||(n?.scrollIntoView({block:`nearest`}),n===t&&S&&(S.scrollTop=0),n===r&&S&&(S.scrollTop=S.scrollHeight),n?.focus(),document.activeElement!==i))return},[te,S]),N=V.useCallback(()=>ie([E,b]),[ie,E,b]);V.useEffect(()=>{ne&&N()},[ne,N]);let{onOpenChange:F,triggerPointerDownPosRef:I}=y;V.useEffect(()=>{if(b){let e={x:0,y:0},t=K(t=>{e={x:Math.abs(Math.round(t.pageX)-(I.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(I.current?.y??0))}},`handlePointerMove`),n=K(n=>{e.x<=10&&e.y<=10?n.preventDefault():n.composedPath().includes(b)||F(!1),document.removeEventListener(`pointermove`,t),I.current=null},`handlePointerUp`);return I.current!==null&&(document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n,{capture:!0,once:!0})),()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n,{capture:!0})}}},[b,F,I]),V.useEffect(()=>{let e=K(()=>F(!1),`close`);return window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e)}},[F]);let[ae,L]=hn(e=>{let t=te().filter(e=>!e.disabled),n=gn(t,e,t.find(e=>e.ref.current===document.activeElement));n&&setTimeout(()=>n.ref.current?.focus())}),R=V.useCallback((e,t,n)=>{let r=!M.current&&!n;(y.value!==void 0&&y.value===t||r)&&(D(e),r&&(M.current=!0))},[y.value]),z=V.useCallback(()=>b?.focus(),[b]),se=V.useCallback((e,t,n)=>{let r=!M.current&&!n;(y.value!==void 0&&y.value===t||r)&&ee(e)},[y.value]),ce=r===ft.Popper?Wt:Ut,le=ce===Wt?{side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:f,collisionPadding:p,sticky:m,hideWhenDetached:h,avoidCollisions:g}:{};return(0,H.jsx)(zt,{scope:n,content:b,viewport:S,onViewportChange:C,itemRefCallback:R,selectedItem:E,onItemLeave:z,itemTextRefCallback:se,focusSelectedItem:N,selectedItemText:O,position:r,isPositioned:ne,searchRef:ae,children:(0,H.jsx)(oe,{as:Vt,allowPinchZoom:!0,children:(0,H.jsx)(k,{asChild:!0,trapped:y.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:j(i,e=>{y.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,H.jsx)(T,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>y.onOpenChange(!1),children:(0,H.jsx)(ce,{role:`listbox`,id:y.contentId,"data-state":y.open?`open`:`closed`,dir:y.dir,onContextMenu:e=>e.preventDefault(),..._,...le,onPlaced:()=>re(!0),ref:w,style:{display:`flex`,flexDirection:`column`,outline:`none`,..._.style},onKeyDown:j(_.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&L(e.key),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=te().filter(e=>!e.disabled).map(e=>e.ref.current);if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>ie(t)),e.preventDefault()}})})})})})})},`SelectContentImpl`)),Ut=V.forwardRef(K(function(e,t){let{__scopeSelect:n,onPlaced:r,...i}=e,a=q(It,n),o=Bt(It,n),[s,c]=V.useState(null),[l,u]=V.useState(null),d=P(t,u),f=vt(n),p=V.useRef(!1),m=V.useRef(!0),{viewport:h,selectedItem:g,selectedItemText:_,focusSelectedItem:v}=o,y=V.useCallback(()=>{if(a.trigger&&a.valueNode&&s&&l&&h&&g&&_){let e=a.trigger.getBoundingClientRect(),t=l.getBoundingClientRect(),n=a.valueNode.getBoundingClientRect(),i=_.getBoundingClientRect();if(a.dir!==pt.RTL){let r=i.left-t.left,a=n.left-r,o=e.left-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-J,d=Ke(a,[J,Math.max(J,u-l)]);s.style.minWidth=c+`px`,s.style.left=d+`px`}else{let r=t.right-i.right,a=window.innerWidth-n.right-r,o=window.innerWidth-e.right-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-J,d=Ke(a,[J,Math.max(J,u-l)]);s.style.minWidth=c+`px`,s.style.right=d+`px`}let o=f(),c=window.innerHeight-J*2,u=h.scrollHeight,d=window.getComputedStyle(l),m=parseInt(d.borderTopWidth,10),v=parseInt(d.paddingTop,10),y=parseInt(d.borderBottomWidth,10),b=parseInt(d.paddingBottom,10),x=m+v+u+b+y,S=Math.min(g.offsetHeight*5,x),C=window.getComputedStyle(h),w=parseInt(C.paddingTop,10),T=parseInt(C.paddingBottom,10),E=e.top+e.height/2-J,D=c-E,O=g.offsetHeight/2,k=g.offsetTop+O,A=m+v+k,ee=x-A;if(A<=E){let e=o.length>0&&g===o[o.length-1].ref.current;s.style.bottom=`0px`;let t=l.clientHeight-h.offsetTop-h.offsetHeight,n=A+Math.max(D,O+(e?T:0)+t+y);s.style.height=n+`px`}else{let e=o.length>0&&g===o[0].ref.current;s.style.top=`0px`;let t=Math.max(E,m+h.offsetTop+(e?w:0)+O)+ee;s.style.height=t+`px`,h.scrollTop=A-E+h.offsetTop}s.style.margin=`${J}px 0`,s.style.minHeight=S+`px`,s.style.maxHeight=c+`px`,r?.(),requestAnimationFrame(()=>p.current=!0)}},[f,a.trigger,a.valueNode,s,l,h,g,_,a.dir,r]);w(()=>y(),[y]);let[b,x]=V.useState();w(()=>{l&&x(window.getComputedStyle(l).zIndex)},[l]);let S=V.useCallback(e=>{e&&m.current===!0&&(y(),v?.(),m.current=!1)},[y,v]);return(0,H.jsx)(Gt,{scope:n,contentWrapper:s,shouldExpandOnScrollRef:p,onScrollButtonChange:S,children:(0,H.jsx)(`div`,{ref:c,style:{display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:b},children:(0,H.jsx)(D.div,{...i,ref:d,style:{boxSizing:`border-box`,maxHeight:`100%`,...i.style}})})})},`SelectItemAlignedPosition`)),Wt=V.forwardRef(K(function(e,t){let{__scopeSelect:n,align:r=`start`,collisionPadding:i=J,...a}=e,o=St(n);return(0,H.jsx)(fe,{...o,...a,ref:t,align:r,collisionPadding:i,style:{boxSizing:`border-box`,...a.style,"--radix-select-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-select-content-available-width":`var(--radix-popper-available-width)`,"--radix-select-content-available-height":`var(--radix-popper-available-height)`,"--radix-select-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-select-trigger-height":`var(--radix-popper-anchor-height)`}})},`SelectPopperPosition`)),[Gt,Kt]=bt(It,{}),qt=`SelectViewport`,Jt=V.forwardRef(K(function(e,t){let{__scopeSelect:n,nonce:r,...i}=e,a=Bt(qt,n),o=Kt(qt,n),s=P(t,a.onViewportChange),c=V.useRef(0);return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`},nonce:r}),(0,H.jsx)(_t.Slot,{scope:n,children:(0,H.jsx)(D.div,{"data-radix-select-viewport":``,role:`presentation`,...i,ref:s,style:{position:`relative`,flex:1,overflow:`hidden auto`,...i.style},onScroll:j(i.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=o;if(r?.current&&n){let e=Math.abs(c.current-t.scrollTop);if(e>0){let r=window.innerHeight-J*2,i=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),o=Math.max(i,a);if(o<r){let i=o+e,a=Math.min(r,i),s=i-a;n.style.height=a+`px`,n.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,n.style.justifyContent=`flex-end`)}}}c.current=t.scrollTop})})})]})},`SelectViewport`)),[Yt,Xt]=bt(`SelectGroup`),Zt=`SelectItem`,[Qt,$t]=bt(Zt),en=V.forwardRef(K(function(e,t){let{__scopeSelect:n,value:r,disabled:i=!1,textValue:a,...o}=e,s=q(Zt,n),c=Bt(Zt,n),l=s.value===r,[u,d]=V.useState(a??``),[f,p]=V.useState(!1),m=O(e=>c.itemRefCallback?.(e,r,i)),h=P(t,m),g=pe(),_=V.useRef(`touch`),v=K(()=>{s.onValueChange(r),s.onOpenChange(!1)},`handleSelect`);return(0,H.jsx)(Qt,{scope:n,value:r,disabled:i,textId:g,isSelected:l,onItemTextChange:V.useCallback(e=>{d(t=>t||(e?.textContent??``).trim())},[]),children:(0,H.jsx)(_t.ItemSlot,{scope:n,value:r,disabled:i,textValue:u,children:(0,H.jsx)(D.div,{role:`option`,"aria-labelledby":g,"data-highlighted":f?``:void 0,"aria-selected":l&&f,"data-state":l?`checked`:`unchecked`,"aria-disabled":i||void 0,"data-disabled":i?``:void 0,tabIndex:i?void 0:-1,...o,ref:h,onFocus:j(o.onFocus,()=>p(!0)),onBlur:j(o.onBlur,()=>p(!1)),onClick:j(o.onClick,()=>{i||_.current!==`mouse`&&v()}),onPointerUp:j(o.onPointerUp,()=>{i||_.current===`mouse`&&v()}),onPointerDown:j(o.onPointerDown,e=>{_.current=e.pointerType}),onPointerMove:j(o.onPointerMove,e=>{_.current=e.pointerType,i?c.onItemLeave?.():_.current===`mouse`&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:j(o.onPointerLeave,e=>{e.currentTarget===document.activeElement&&c.onItemLeave?.()}),onKeyDown:j(o.onKeyDown,e=>{i||e.target!==e.currentTarget||(c.searchRef?.current===``||e.key!==` `)&&(ht.includes(e.key)&&v(),e.key===` `&&e.preventDefault())})})})})},`SelectItem`)),tn=`SelectItemText`,nn=V.forwardRef(K(function(e,t){let{__scopeSelect:n,className:r,style:i,...a}=e,o=q(tn,n),s=Bt(tn,n),c=$t(tn,n),l=Tt(tn,n),[u,d]=V.useState(null),f=O(e=>s.itemTextRefCallback?.(e,c.value,c.disabled)),p=P(t,d,c.onItemTextChange,f),m=u?.textContent,h=V.useMemo(()=>(0,H.jsx)(`option`,{value:c.value,disabled:c.disabled,children:m},c.value),[c.disabled,c.value,m]),{onNativeOptionAdd:g,onNativeOptionRemove:_}=l;return w(()=>(g(h),()=>_(h)),[g,_,h]),(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(D.span,{id:c.textId,...a,ref:p}),c.isSelected&&o.valueNode&&!o.valueNodeHasChildren&&!mn(o.value)?ut.createPortal(a.children,o.valueNode):null]})},`SelectItemText`)),rn=`SelectItemIndicator`,an=V.forwardRef(K(function(e,t){let{__scopeSelect:n,...r}=e;return $t(rn,n).isSelected?(0,H.jsx)(D.span,{"aria-hidden":!0,...r,ref:t}):null},`SelectItemIndicator`)),on=`SelectScrollUpButton`,sn=V.forwardRef(K(function(e,t){let n=Bt(on,e.__scopeSelect),r=Kt(on,e.__scopeSelect),[i,a]=V.useState(!1),o=P(t,r.onScrollButtonChange);return w(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollTop>0;a(e)};K(e,`handleScroll`);let t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,H.jsx)(un,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop-=t.offsetHeight)}}):null},`SelectScrollUpButton`)),cn=`SelectScrollDownButton`,ln=V.forwardRef(K(function(e,t){let n=Bt(cn,e.__scopeSelect),r=Kt(cn,e.__scopeSelect),[i,a]=V.useState(!1),o=P(t,r.onScrollButtonChange);return w(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight,n=Math.ceil(t.scrollTop)<e;a(n)};K(e,`handleScroll`);let t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,H.jsx)(un,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop+=t.offsetHeight)}}):null},`SelectScrollDownButton`)),un=V.forwardRef(K(function(e,t){let{__scopeSelect:n,onAutoScroll:r,...i}=e,a=Bt(`SelectScrollButton`,n),o=V.useRef(null),s=vt(n),c=V.useCallback(()=>{o.current!==null&&(window.clearInterval(o.current),o.current=null)},[]);return V.useEffect(()=>()=>c(),[c]),w(()=>{s().find(e=>e.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:`nearest`})},[s]),(0,H.jsx)(D.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:j(i.onPointerDown,()=>{o.current===null&&(o.current=window.setInterval(r,50))}),onPointerMove:j(i.onPointerMove,()=>{a.onItemLeave?.(),o.current===null&&(o.current=window.setInterval(r,50))}),onPointerLeave:j(i.onPointerLeave,()=>{c()})})},`SelectScrollButtonImpl`)),dn=`SelectBubbleInput`,fn=V.forwardRef(K(function({__scopeSelect:e,...t},n){let r=q(dn,e),{value:i,onValueChange:a,required:o,disabled:s,name:c,autoComplete:l,form:u}=r,{nativeOptions:d,nativeSelectKey:f}=r,p=V.useRef(null),m=P(n,p),h=i??``,g=Ue(h),_=Array.from(d).some(e=>(e.props.value??``)===``);return V.useEffect(()=>{let e=p.current;if(!e)return;let t=window.HTMLSelectElement.prototype,n=Object.getOwnPropertyDescriptor(t,`value`).set;if(g!==h&&n){let t=new Event(`change`,{bubbles:!0});n.call(e,h),e.dispatchEvent(t)}},[g,h]),(0,H.jsxs)(D.select,{"aria-hidden":!0,required:o,tabIndex:-1,name:c,autoComplete:l,disabled:s,form:u,onChange:e=>a(e.target.value),...t,style:{...Ce,...t.style},ref:m,defaultValue:h,children:[mn(i)&&!_?(0,H.jsx)(`option`,{value:``}):null,Array.from(d)]},f)},`SelectBubbleInput`));function pn(e){return typeof e==`function`}K(pn,`isFunction`);function mn(e){return e===``||e===void 0}K(mn,`shouldShowPlaceholder`);function hn(e){let t=O(e),n=V.useRef(``),r=V.useRef(0),i=V.useCallback(e=>{let i=n.current+e;t(i),K((function e(t){n.current=t,window.clearTimeout(r.current),t!==``&&(r.current=window.setTimeout(()=>e(``),1e3))}),`updateSearch`)(i)},[t]),a=V.useCallback(()=>{n.current=``,window.clearTimeout(r.current)},[]);return V.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,a]}K(hn,`useTypeaheadSearch`);function gn(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=_n(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.textValue.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}K(gn,`findNextItem`);function _n(e,t){return e.map((n,r)=>e[(t+r)%e.length])}K(_n,`wrapArray`);var vn=Object.defineProperty,Y=(e,t)=>vn(e,`name`,{value:t,configurable:!0}),[yn,bn]=C(`Tooltip`,[I]),xn=I(),Sn=`TooltipProvider`,Cn=700,wn=`tooltip.open`,[Tn,En]=yn(Sn),Dn=Y(e=>{let{__scopeTooltip:t,delayDuration:n=Cn,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:a}=e,o=V.useRef(!0),s=V.useRef(!1),c=V.useRef(0);return V.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,H.jsx)(Tn,{scope:t,isOpenDelayedRef:o,delayDuration:n,onOpen:V.useCallback(()=>{r<=0||(window.clearTimeout(c.current),o.current=!1)},[r]),onClose:V.useCallback(()=>{r<=0||(window.clearTimeout(c.current),c.current=window.setTimeout(()=>o.current=!0,r))},[r]),isPointerInTransitRef:s,onPointerInTransitChange:V.useCallback(e=>{s.current=e},[]),disableHoverableContent:i,children:a})},`TooltipProvider`),On=`Tooltip`,[kn,An]=yn(On),jn=Y(e=>{let{__scopeTooltip:t,children:n,open:r,defaultOpen:i,onOpenChange:a,disableHoverableContent:o,delayDuration:s}=e,c=En(On,e.__scopeTooltip),l=xn(t),[u,d]=V.useState(null),[f,p]=V.useState(void 0),m=pe(),h=V.useRef(0),g=o??c.disableHoverableContent,_=s??c.delayDuration,v=V.useRef(!1),[y,b]=M({prop:r,defaultProp:i??!1,onChange:Y(e=>{e?(c.onOpen(),document.dispatchEvent(new CustomEvent(wn))):c.onClose(),a?.(e)},`onChange`),caller:On}),x=V.useMemo(()=>y?v.current?`delayed-open`:`instant-open`:`closed`,[y]),S=V.useCallback(()=>{window.clearTimeout(h.current),h.current=0,v.current=!1,b(!0)},[b]),C=V.useCallback(()=>{window.clearTimeout(h.current),h.current=0,b(!1)},[b]),w=V.useCallback(()=>{window.clearTimeout(h.current),h.current=window.setTimeout(()=>{v.current=!0,b(!0),h.current=0},_)},[_,b]);V.useEffect(()=>()=>{h.current&&=(window.clearTimeout(h.current),0)},[]);let T=f??m;return(0,H.jsx)(L,{...l,children:(0,H.jsx)(kn,{scope:t,contentId:T,setContentId:p,open:y,stateAttribute:x,trigger:u,onTriggerChange:d,onTriggerEnter:V.useCallback(()=>{c.isOpenDelayedRef.current?w():S()},[c.isOpenDelayedRef,w,S]),onTriggerLeave:V.useCallback(()=>{g?C():(window.clearTimeout(h.current),h.current=0)},[C,g]),onOpen:S,onClose:C,disableHoverableContent:g,children:n})})},`Tooltip`),Mn=`TooltipTrigger`,Nn=V.forwardRef(Y(function(e,t){let{__scopeTooltip:n,"aria-describedby":r,...i}=e,a=An(Mn,n),o=En(Mn,n),s=xn(n),c=V.useRef(null),l=P(t,c,a.onTriggerChange),u=V.useRef(!1),d=V.useRef(!1),f=V.useCallback(()=>u.current=!1,[]);return V.useEffect(()=>()=>document.removeEventListener(`pointerup`,f),[f]),(0,H.jsx)(F,{asChild:!0,...s,children:(0,H.jsx)(D.button,{"aria-describedby":a.open?Xn(r,a.contentId):r,"data-state":a.stateAttribute,...i,ref:l,onPointerMove:j(e.onPointerMove,e=>{e.pointerType!==`touch`&&!d.current&&!o.isPointerInTransitRef.current&&(a.onTriggerEnter(),d.current=!0)}),onPointerLeave:j(e.onPointerLeave,()=>{a.onTriggerLeave(),d.current=!1}),onPointerDown:j(e.onPointerDown,()=>{a.open&&a.onClose(),u.current=!0,document.addEventListener(`pointerup`,f,{once:!0})}),onFocus:j(e.onFocus,()=>{u.current||a.onOpen()}),onBlur:j(e.onBlur,a.onClose),onClick:j(e.onClick,a.onClose)})})},`TooltipTrigger`)),Pn=`TooltipPortal`,[Fn,In]=yn(Pn,{forceMount:void 0}),Ln=Y(e=>{let{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,a=An(Pn,t);return(0,H.jsx)(Fn,{scope:t,forceMount:n,children:(0,H.jsx)(y,{present:n||a.open,children:(0,H.jsx)(z,{asChild:!0,container:i,children:r})})})},`TooltipPortal`),Rn=`TooltipContent`,zn=V.forwardRef(Y(function(e,t){let n=In(Rn,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i=`top`,...a}=e,o=An(Rn,e.__scopeTooltip);return(0,H.jsx)(y,{present:r||o.open,children:o.disableHoverableContent?(0,H.jsx)(Hn,{side:i,...a,ref:t}):(0,H.jsx)(Bn,{side:i,...a,ref:t})})},`TooltipContent`)),Bn=V.forwardRef(Y(function(e,t){let n=An(Rn,e.__scopeTooltip),r=En(Rn,e.__scopeTooltip),i=V.useRef(null),a=P(t,i),[o,s]=V.useState(null),{trigger:c,onClose:l}=n,u=i.current,{onPointerInTransitChange:d}=r,f=V.useCallback(()=>{s(null),d(!1)},[d]),p=V.useCallback((e,t)=>{let n=e.currentTarget,r={x:e.clientX,y:e.clientY},i=Gn(r,Wn(r,n.getBoundingClientRect())),a=Kn(t.getBoundingClientRect()),o=Jn([...i,...a]);s(o),d(!0)},[d]);return V.useEffect(()=>()=>f(),[f]),V.useEffect(()=>{if(c&&u){let e=Y(e=>p(e,u),`handleTriggerLeave`),t=Y(e=>p(e,c),`handleContentLeave`);return c.addEventListener(`pointerleave`,e),u.addEventListener(`pointerleave`,t),()=>{c.removeEventListener(`pointerleave`,e),u.removeEventListener(`pointerleave`,t)}}},[c,u,p,f]),V.useEffect(()=>{if(o){let e=Y(e=>{let t=e.target,n={x:e.clientX,y:e.clientY},r=c?.contains(t)||u?.contains(t),i=!qn(n,o);r?f():i&&(f(),l())},`handleTrackPointerGrace`);return document.addEventListener(`pointermove`,e),()=>document.removeEventListener(`pointermove`,e)}},[c,u,o,l,f]),(0,H.jsx)(Hn,{...e,ref:a})},`TooltipContentHoverable`)),Vn=E(`TooltipContent`),Hn=V.forwardRef(Y(function(e,t){let{__scopeTooltip:n,children:r,"aria-label":i,id:a,onEscapeKeyDown:o,onPointerDownOutside:s,...c}=e,l=An(Rn,n),u=xn(n),{onClose:d}=l;V.useEffect(()=>(document.addEventListener(wn,d),()=>document.removeEventListener(wn,d)),[d]),V.useEffect(()=>{if(l.trigger){let e=Y(e=>{e.target instanceof Node&&e.target.contains(l.trigger)&&d()},`handleScroll`);return window.addEventListener(`scroll`,e,{capture:!0}),()=>window.removeEventListener(`scroll`,e,{capture:!0})}},[l.trigger,d]);let{setContentId:f}=l;return w(()=>(f(a),()=>{f(void 0)}),[a,f]),(0,H.jsx)(T,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:o,onPointerDownOutside:s,onFocusOutside:e=>e.preventDefault(),onDismiss:d,children:(0,H.jsxs)(fe,{"data-state":l.stateAttribute,role:i?void 0:`tooltip`,id:i?void 0:l.contentId,...u,...c,ref:t,style:{...c.style,"--radix-tooltip-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-tooltip-content-available-width":`var(--radix-popper-available-width)`,"--radix-tooltip-content-available-height":`var(--radix-popper-available-height)`,"--radix-tooltip-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-tooltip-trigger-height":`var(--radix-popper-anchor-height)`},children:[(0,H.jsx)(Vn,{children:r}),i?(0,H.jsx)(we,{id:l.contentId,role:`tooltip`,children:i}):null]})})},`TooltipContentImpl`)),Un=V.forwardRef(Y(function(e,t){let{__scopeTooltip:n,...r}=e,i=xn(n);return(0,H.jsx)(B,{...i,...r,ref:t})},`TooltipArrow`));function Wn(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}Y(Wn,`getExitSideFromRect`);function Gn(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n})}return r}Y(Gn,`getPaddedExitPoints`);function Kn(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}Y(Kn,`getPointsFromRect`);function qn(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}Y(qn,`isPointInPolygon`);function Jn(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:+(e.y>t.y)),Yn(t)}Y(Jn,`getHull`);function Yn(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t[t.length-1],n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n[n.length-1],t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}Y(Yn,`getHullPresorted`);function Xn(...e){let t=new Set;for(let n of e)if(typeof n==`string`)for(let e of String(n).trim().split(/\s+/))e&&t.add(e);return t.size>0?Array.from(t).join(` `):void 0}Y(Xn,`concatAriaDescribedby`);function Zn({className:e,...t}){return(0,H.jsx)(`span`,{className:N(`text-muted-foreground font-mono text-micro leading-4 font-normal tracking-label uppercase`,e),...t})}function Qn({label:e,count:t=4,size:n=10,className:r}){return(0,H.jsx)(`span`,{role:`status`,"aria-label":e,className:N(`inline-flex items-end gap-[3px]`,r),children:Array.from({length:t},(e,t)=>(0,H.jsx)(`span`,{className:`bg-foreground animate-squares-drop block`,style:{width:n,height:n,animationDelay:`${String(t*120)}ms`}},t))})}function $n({title:e,children:t,action:n,className:r}){return(0,H.jsxs)(`div`,{className:N(`animate-set-in flex flex-col items-center gap-5 px-6 py-16 text-center`,r),children:[(0,H.jsxs)(`div`,{className:`flex max-w-sm flex-col gap-1.5`,children:[(0,H.jsx)(`h2`,{className:`font-serif text-heading font-semibold`,children:e}),t?(0,H.jsx)(`div`,{className:`text-muted-foreground text-sm leading-relaxed`,children:t}):null]}),n]})}function er({...e}){return(0,H.jsx)(Dt,{"data-slot":`select`,...e})}function tr({...e}){return(0,H.jsx)(jt,{"data-slot":`select-value`,...e})}function nr({className:e,size:t=`default`,children:n,...r}){return(0,H.jsxs)(kt,{"data-slot":`select-trigger`,"data-size":t,className:N(`flex w-fit items-center justify-between gap-2 rounded-md border border-input bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[placeholder]:text-muted-foreground data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground`,e),...r,children:[n,(0,H.jsx)(Mt,{asChild:!0,children:(0,H.jsx)(p,{className:`size-4 opacity-50`})})]})}function rr({className:e,children:t,position:n=`item-aligned`,align:r=`center`,...i}){return(0,H.jsx)(Ft,{children:(0,H.jsxs)(Lt,{"data-slot":`select-content`,className:N(`relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95`,n===`popper`&&`data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1`,e),position:n,align:r,...i,children:[(0,H.jsx)(ar,{}),(0,H.jsx)(Jt,{className:N(`p-1`,n===`popper`&&`h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1`),children:t}),(0,H.jsx)(or,{})]})})}function ir({className:e,children:t,...n}){return(0,H.jsxs)(en,{"data-slot":`select-item`,className:N(`relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2`,e),...n,children:[(0,H.jsx)(`span`,{"data-slot":`select-item-indicator`,className:`absolute right-2 flex size-3.5 items-center justify-center`,children:(0,H.jsx)(an,{children:(0,H.jsx)(m,{className:`size-4`})})}),(0,H.jsx)(nn,{children:t})]})}function ar({className:e,...t}){return(0,H.jsx)(sn,{"data-slot":`select-scroll-up-button`,className:N(`flex cursor-default items-center justify-center py-1`,e),...t,children:(0,H.jsx)(h,{className:`size-4`})})}function or({className:e,...t}){return(0,H.jsx)(ln,{"data-slot":`select-scroll-down-button`,className:N(`flex cursor-default items-center justify-center py-1`,e),...t,children:(0,H.jsx)(p,{className:`size-4`})})}function sr({className:e,...t}){return(0,H.jsx)(Pe,{"data-slot":`checkbox`,className:N(`peer size-4 shrink-0 rounded-[4px] border border-input shadow-xs transition-shadow outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=checked]:border-primary data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:bg-input/30 dark:aria-invalid:ring-destructive/40 dark:data-[state=checked]:bg-primary`,e),...t,children:(0,H.jsx)(Ie,{"data-slot":`checkbox-indicator`,className:`grid place-content-center text-current transition-none`,children:(0,H.jsx)(m,{className:`size-3.5`})})})}function cr({className:e,value:t,...n}){return(0,H.jsx)(et,{"data-slot":`progress`,className:N(`relative h-2 w-full overflow-hidden rounded-full bg-primary/20`,e),...n,children:(0,H.jsx)(nt,{"data-slot":`progress-indicator`,className:`h-full w-full flex-1 bg-primary transition-all`,style:{transform:`translateX(-${100-(t||0)}%)`}})})}function lr({...e}){return(0,H.jsx)(ne,{"data-slot":`sheet`,...e})}function ur({...e}){return(0,H.jsx)(S,{"data-slot":`sheet-portal`,...e})}function dr({className:e,...t}){return(0,H.jsx)(re,{"data-slot":`sheet-overlay`,className:N(`fixed inset-0 z-50 bg-black/50 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0`,e),...t})}function fr({className:e,children:t,side:n=`right`,showCloseButton:r=!0,...i}){return(0,H.jsxs)(ur,{children:[(0,H.jsx)(dr,{}),(0,H.jsxs)(ue,{"data-slot":`sheet-content`,className:N(`fixed z-50 flex flex-col gap-4 bg-background shadow-lg transition ease-in-out data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:animate-in data-[state=open]:duration-500`,n===`right`&&`inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm`,n===`left`&&`inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm`,n===`top`&&`inset-x-0 top-0 h-auto border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top`,n===`bottom`&&`inset-x-0 bottom-0 h-auto border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom`,e),...i,children:[t,r&&(0,H.jsxs)(b,{className:`absolute top-4 right-4 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none data-[state=open]:bg-secondary`,children:[(0,H.jsx)(_,{className:`size-4`}),(0,H.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})]})}function pr({className:e,...t}){return(0,H.jsx)(`div`,{"data-slot":`sheet-header`,className:N(`flex flex-col gap-1.5 p-4`,e),...t})}function mr({className:e,...t}){return(0,H.jsx)(x,{"data-slot":`sheet-title`,className:N(`font-semibold text-foreground`,e),...t})}var hr={video:[`mp4`,`mov`,`webm`,`gif`,`png`,`srt`,`vtt`,`cover`,`wav`,`pdf`,`pptx`],paged:[`png`,`pdf`,`pptx`]},gr=e=>Number.isFinite(e)&&e>0?e:0,X=e=>{let t=gr(e);return`${String(Math.floor(t/60))}:${String(Math.floor(t%60)).padStart(2,`0`)}`},_r=e=>{let t=gr(e);return`${String(Math.floor(t/60))}:${(t%60).toFixed(1).padStart(4,`0`)}`},vr=(e,t)=>Math.floor(e*t+1e-9)/t,yr=e=>e.split(/[/\\]/u).at(-1)??e,br={loading:`Vorschau wird geladen`,loadFailed:`Die Vorschau wurde nicht geladen`,noVideo:`Das ist kein Video`,previewTitle:`Vorschau`,denoising:`Sprache wird entrauscht; Wiedergabe wie aufgenommen`,uncut:e=>`Noch keine Personenmaske für ${e}: Ebenen hinter der Person erscheinen davor`,play:`Abspielen`,pause:`Pause`,seek:`Springen`,prevPage:`Vorherige Seite`,nextPage:`Nächste Seite`,pageOf:(e,t)=>`Seite ${String(e)} von ${String(t)}`,timeOf:(e,t,n)=>`${e} von ${t}${n?`, ${n}`:``}`,hideTimeline:`Zeitleiste ausblenden`,showTimeline:`Zeitleiste einblenden`,rows:{scenes:`Szenen`,voice:`Sprache`,music:`Musik`,sound:`Ton`},noVoice:`Keine Sprache`,noMusic:`Keine Musik`,noCues:`Keine Soundeffekte`,ducked:`unter Sprache abgesenkt`,version:`Sprache`,exportTitle:`Exportieren`,previewFailed:`Mit diesem Video ist etwas schiefgelaufen.`,previewFailedKept:`Bei der letzten Änderung ist etwas schiefgelaufen. Das ist die letzte Version, die funktioniert hat.`,problemsHere:e=>e===1?`1 Problem in dieser Version`:`${String(e)} Probleme in dieser Version`,levelError:`Muss behoben werden`,levelWarn:`Vorschlag`,exports:{title:`Exportieren`,close:`Schließen`,versions:`Sprachen`,onShow:`angezeigt`,types:`Dateitypen`,type:{mov:`MOV (ProRes)`,srt:`Untertitel (SRT)`,vtt:`Untertitel (WebVTT)`,cover:`Titelbild`,wav:`Ton (WAV)`,png:`PNG-Seiten`,pptx:`PowerPoint`},waitCheck:`Zuerst wird geprüft. Der Export öffnet sich, wenn die Prüfung fertig ist.`,blocked:e=>e===1?`1 Problem, das behoben werden muss, verhindert den Export`:`${String(e)} Probleme, die behoben werden müssen, verhindern den Export`,start:`Exportieren`,startN:e=>`${String(e)} Versionen exportieren`,queued:`Wartet`,queuedAhead:e=>`Wartet, ${String(e)} davor`,running:e=>`Export läuft: ${String(e)} %`,done:`Fertig`,cancelled:`Abgebrochen`,failed:`Fehlgeschlagen`,cancel:`Abbrechen`,open:`Öffnen`,startFailed:`Der Export ist nicht gestartet`,nVersions:e=>`${String(e)} Versionen`,all:`Alle`,none:`Keine`}},xr={loading:`Loading the preview`,loadFailed:`The preview did not load`,noVideo:`This is not a video`,previewTitle:`Preview`,denoising:`Denoising the speech; playing it as recorded`,uncut:e=>`No person matte for ${e} yet: layers behind the person show in front`,play:`Play`,pause:`Pause`,seek:`Seek`,prevPage:`Previous page`,nextPage:`Next page`,pageOf:(e,t)=>`Page ${String(e)} of ${String(t)}`,timeOf:(e,t,n)=>`${e} of ${t}${n?`, ${n}`:``}`,hideTimeline:`Hide timeline`,showTimeline:`Show timeline`,rows:{scenes:`Scenes`,voice:`Speech`,music:`Music`,sound:`Sound`},noVoice:`No speech`,noMusic:`No music`,noCues:`No sound cues`,ducked:`lowered under speech`,version:`Language`,exportTitle:`Export`,previewFailed:`Something went wrong with this video.`,previewFailedKept:`Something went wrong with the latest change. This is the last version that worked.`,problemsHere:e=>`${String(e)} problem${e===1?``:`s`} in this version`,levelError:`Must fix`,levelWarn:`Suggestion`,exports:{title:`Export`,close:`Close`,versions:`Languages`,onShow:`on show`,types:`File types`,type:{mov:`MOV (ProRes)`,srt:`Captions (SRT)`,vtt:`Captions (WebVTT)`,cover:`Cover image`,wav:`Sound (WAV)`,png:`PNG pages`,pptx:`PowerPoint`},waitCheck:`Checking first. Export opens when the check is done.`,blocked:e=>`${String(e)} must-fix problem${e===1?``:`s`} stop the export`,start:`Export`,startN:e=>`Export ${String(e)} versions`,queued:`Waiting`,queuedAhead:e=>`Waiting, ${String(e)} ahead`,running:e=>`Exporting ${String(e)}%`,done:`Done`,cancelled:`Cancelled`,failed:`Failed`,cancel:`Cancel`,open:`Open`,startFailed:`The export did not start`,nVersions:e=>`${String(e)} versions`,all:`All`,none:`None`}},Sr={loading:`Cargando la vista previa`,loadFailed:`La vista previa no se cargó`,noVideo:`Esto no es un video`,previewTitle:`Vista previa`,denoising:`Reduciendo el ruido de la voz; se reproduce tal como se grabó`,uncut:e=>`Aún no hay máscara de persona para ${e}: las capas detrás de la persona se ven delante`,play:`Reproducir`,pause:`Pausa`,seek:`Buscar`,prevPage:`Página anterior`,nextPage:`Página siguiente`,pageOf:(e,t)=>`Página ${String(e)} de ${String(t)}`,timeOf:(e,t,n)=>`${e} de ${t}${n?`, ${n}`:``}`,hideTimeline:`Ocultar la línea de tiempo`,showTimeline:`Mostrar la línea de tiempo`,rows:{scenes:`Escenas`,voice:`Voz`,music:`Música`,sound:`Sonido`},noVoice:`Sin voz`,noMusic:`Sin música`,noCues:`Sin efectos de sonido`,ducked:`bajada bajo la voz`,version:`Idioma`,exportTitle:`Exportar`,previewFailed:`Algo salió mal con este video.`,previewFailedKept:`Algo salió mal con el último cambio. Esta es la última versión que funcionó.`,problemsHere:e=>e===1?`1 problema en esta versión`:`${String(e)} problemas en esta versión`,levelError:`Corregir`,levelWarn:`Sugerencia`,exports:{title:`Exportar`,close:`Cerrar`,versions:`Idiomas`,onShow:`en pantalla`,types:`Tipos de archivo`,type:{mov:`MOV (ProRes)`,srt:`Subtítulos (SRT)`,vtt:`Subtítulos (WebVTT)`,cover:`Imagen de portada`,wav:`Sonido (WAV)`,png:`Páginas PNG`,pptx:`PowerPoint`},waitCheck:`Primero se comprueba. La exportación se abre cuando termina la comprobación.`,blocked:e=>e===1?`1 problema que hay que corregir impide la exportación`:`${String(e)} problemas que hay que corregir impiden la exportación`,start:`Exportar`,startN:e=>`Exportar ${String(e)} versiones`,queued:`En espera`,queuedAhead:e=>`En espera, ${String(e)} delante`,running:e=>`Exportando ${String(e)} %`,done:`Listo`,cancelled:`Cancelada`,failed:`Falló`,cancel:`Cancelar`,open:`Abrir`,startFailed:`La exportación no empezó`,nVersions:e=>`${String(e)} versiones`,all:`Todas`,none:`Ninguna`}},Cr={loading:`Chargement de l’aperçu`,loadFailed:`L’aperçu ne s’est pas chargé`,noVideo:`Ce n’est pas une vidéo`,previewTitle:`Aperçu`,denoising:`Débruitage de la voix\xA0; lecture telle qu’enregistrée`,uncut:e=>`Pas encore de masque de personne pour ${e}\u00a0: les calques derrière la personne passent devant`,play:`Lire`,pause:`Pause`,seek:`Position`,prevPage:`Page précédente`,nextPage:`Page suivante`,pageOf:(e,t)=>`Page ${String(e)} sur ${String(t)}`,timeOf:(e,t,n)=>`${e} sur ${t}${n?`, ${n}`:``}`,hideTimeline:`Masquer la timeline`,showTimeline:`Afficher la timeline`,rows:{scenes:`Scènes`,voice:`Voix`,music:`Musique`,sound:`Son`},noVoice:`Pas de voix`,noMusic:`Pas de musique`,noCues:`Pas d’effets sonores`,ducked:`baissée sous la voix`,version:`Langue`,exportTitle:`Exporter`,previewFailed:`Un problème est survenu avec cette vidéo.`,previewFailedKept:`Un problème est survenu avec la dernière modification. Voici la dernière version qui fonctionnait.`,problemsHere:e=>e===1?`1 problème dans cette version`:`${String(e)} problèmes dans cette version`,levelError:`À corriger`,levelWarn:`Suggestion`,exports:{title:`Exporter`,close:`Fermer`,versions:`Langues`,onShow:`affichée`,types:`Types de fichier`,type:{mov:`MOV (ProRes)`,srt:`Sous-titres (SRT)`,vtt:`Sous-titres (WebVTT)`,cover:`Image de couverture`,wav:`Son (WAV)`,png:`Pages PNG`,pptx:`PowerPoint`},waitCheck:`Vérification d’abord. L’export s’ouvre une fois la vérification terminée.`,blocked:e=>e===1?`1 problème à corriger bloque l’export`:`${String(e)} problèmes à corriger bloquent l’export`,start:`Exporter`,startN:e=>`Exporter ${String(e)} versions`,queued:`En attente`,queuedAhead:e=>`En attente, ${String(e)} avant celui-ci`,running:e=>`Export ${String(e)}\u00a0%`,done:`Terminé`,cancelled:`Annulé`,failed:`Échec`,cancel:`Annuler`,open:`Ouvrir`,startFailed:`L’export n’a pas démarré`,nVersions:e=>`${String(e)} versions`,all:`Toutes`,none:`Aucune`}},wr=new Intl.PluralRules(`hi`),Tr=(e,t,n)=>`${String(e)} ${wr.select(e)===`one`?t:n}`,Er={loading:`प्रीव्यू लोड हो रहा है`,loadFailed:`प्रीव्यू लोड नहीं हुआ`,noVideo:`यह वीडियो नहीं है`,previewTitle:`प्रीव्यू`,denoising:`आवाज़ से शोर हटाया जा रहा है; तब तक रिकॉर्डिंग जैसी है वैसी चल रही है`,uncut:e=>`${e} के लिए अभी पर्सन मैट नहीं है: व्यक्ति के पीछे वाली लेयर आगे दिखती हैं`,play:`चलाएँ`,pause:`रोकें`,seek:`आगे-पीछे करें`,prevPage:`पिछला पेज`,nextPage:`अगला पेज`,pageOf:(e,t)=>`पेज ${String(e)} / ${String(t)}`,timeOf:(e,t,n)=>`${t} में से ${e}${n?`, ${n}`:``}`,hideTimeline:`टाइमलाइन छिपाएँ`,showTimeline:`टाइमलाइन दिखाएँ`,rows:{scenes:`सीन`,voice:`आवाज़`,music:`संगीत`,sound:`साउंड`},noVoice:`कोई आवाज़ नहीं`,noMusic:`कोई संगीत नहीं`,noCues:`कोई साउंड इफ़ेक्ट नहीं`,ducked:`बोलते समय धीमा`,version:`भाषा`,exportTitle:`एक्सपोर्ट`,previewFailed:`इस वीडियो में कुछ गड़बड़ हो गई।`,previewFailedKept:`सबसे नए बदलाव में कुछ गड़बड़ हो गई। यह आखिरी चलने वाला वर्शन है।`,problemsHere:e=>`इस वर्शन में ${Tr(e,`समस्या`,`समस्याएँ`)}`,levelError:`ठीक करना ज़रूरी`,levelWarn:`सुझाव`,exports:{title:`एक्सपोर्ट`,close:`बंद करें`,versions:`भाषाएँ`,onShow:`दिखाया जा रहा`,types:`फ़ाइल प्रकार`,type:{mov:`MOV (ProRes)`,srt:`कैप्शन (SRT)`,vtt:`कैप्शन (WebVTT)`,cover:`कवर इमेज`,wav:`साउंड (WAV)`,png:`PNG पेज`,pptx:`PowerPoint`},waitCheck:`पहले जाँच हो रही है। जाँच पूरी होने पर एक्सपोर्ट खुलेगा।`,blocked:e=>`${Tr(e,`ज़रूरी समस्या`,`ज़रूरी समस्याएँ`)} एक्सपोर्ट रोक रही हैं`,start:`एक्सपोर्ट करें`,startN:e=>`${String(e)} वर्शन एक्सपोर्ट करें`,queued:`प्रतीक्षा में`,queuedAhead:e=>`प्रतीक्षा में, आगे ${String(e)}`,running:e=>`एक्सपोर्ट हो रहा है ${String(e)}%`,done:`हो गया`,cancelled:`रद्द किया गया`,failed:`विफल`,cancel:`रद्द करें`,open:`खोलें`,startFailed:`एक्सपोर्ट शुरू नहीं हुआ`,nVersions:e=>`${String(e)} वर्शन`,all:`सभी`,none:`कोई नहीं`}},Dr={loading:`Caricamento dell'anteprima`,loadFailed:`L'anteprima non si è caricata`,noVideo:`Questo non è un video`,previewTitle:`Anteprima`,denoising:`Riduzione del rumore della voce; riprodotta così come è stata registrata`,uncut:e=>`Ancora nessuna maschera della persona per ${e}: i livelli dietro la persona appaiono davanti`,play:`Riproduci`,pause:`Pausa`,seek:`Vai a`,prevPage:`Pagina precedente`,nextPage:`Pagina successiva`,pageOf:(e,t)=>`Pagina ${String(e)} di ${String(t)}`,timeOf:(e,t,n)=>`${e} di ${t}${n?`, ${n}`:``}`,hideTimeline:`Nascondi la timeline`,showTimeline:`Mostra la timeline`,rows:{scenes:`Scene`,voice:`Voce`,music:`Musica`,sound:`Suono`},noVoice:`Nessuna voce`,noMusic:`Nessuna musica`,noCues:`Nessun effetto sonoro`,ducked:`abbassata sotto la voce`,version:`Lingua`,exportTitle:`Esporta`,previewFailed:`Qualcosa è andato storto con questo video.`,previewFailedKept:`Qualcosa è andato storto con l'ultima modifica. Questa è l'ultima versione che funzionava.`,problemsHere:e=>e===1?`1 problema in questa versione`:`${String(e)} problemi in questa versione`,levelError:`Da correggere`,levelWarn:`Suggerimento`,exports:{title:`Esporta`,close:`Chiudi`,versions:`Lingue`,onShow:`visualizzata`,types:`Tipi di file`,type:{mov:`MOV (ProRes)`,srt:`Sottotitoli (SRT)`,vtt:`Sottotitoli (WebVTT)`,cover:`Immagine di copertina`,wav:`Audio (WAV)`,png:`Pagine PNG`,pptx:`PowerPoint`},waitCheck:`Prima il controllo. L'esportazione si apre quando il controllo è finito.`,blocked:e=>e===1?`1 problema da correggere blocca l'esportazione`:`${String(e)} problemi da correggere bloccano l'esportazione`,start:`Esporta`,startN:e=>`Esporta ${String(e)} versioni`,queued:`In attesa`,queuedAhead:e=>`In attesa, ${String(e)} prima`,running:e=>`Esportazione ${String(e)}%`,done:`Fatto`,cancelled:`Annullata`,failed:`Non riuscita`,cancel:`Annulla`,open:`Apri`,startFailed:`L'esportazione non è partita`,nVersions:e=>`${String(e)} versioni`,all:`Tutte`,none:`Nessuna`}},Or={loading:`プレビューを読み込み中`,loadFailed:`プレビューを読み込めませんでした`,noVideo:`これは動画ではありません`,previewTitle:`プレビュー`,denoising:`音声のノイズを除去中。録音のまま再生しています`,uncut:e=>`${e} の人物マットはまだありません。人物の後ろのレイヤーが前に表示されます`,play:`再生`,pause:`一時停止`,seek:`再生位置`,prevPage:`前のページ`,nextPage:`次のページ`,pageOf:(e,t)=>`${String(e)} / ${String(t)} ページ`,timeOf:(e,t,n)=>`${e} / ${t}${n?`、${n}`:``}`,hideTimeline:`タイムラインを隠す`,showTimeline:`タイムラインを表示`,rows:{scenes:`シーン`,voice:`音声`,music:`音楽`,sound:`効果音`},noVoice:`音声なし`,noMusic:`音楽なし`,noCues:`効果音なし`,ducked:`音声の間は音量を下げる`,version:`言語`,exportTitle:`書き出し`,previewFailed:`この動画で問題が起きました。`,previewFailedKept:`最新の変更で問題が起きました。これは最後に正しく動いたバージョンです。`,problemsHere:e=>`このバージョンに ${String(e)} 件の問題`,levelError:`要修正`,levelWarn:`提案`,exports:{title:`書き出し`,close:`閉じる`,versions:`言語`,onShow:`表示中`,types:`ファイル形式`,type:{mov:`MOV(ProRes)`,srt:`字幕(SRT)`,vtt:`字幕(WebVTT)`,cover:`カバー画像`,wav:`音声(WAV)`,png:`PNG ページ`,pptx:`PowerPoint`},waitCheck:`先にチェックしています。完了すると書き出せます。`,blocked:e=>`要修正の問題が ${String(e)} 件あるため書き出せません`,start:`書き出す`,startN:e=>`${String(e)} 個のバージョンを書き出す`,queued:`待機中`,queuedAhead:e=>`待機中、前に ${String(e)} 件`,running:e=>`書き出し中 ${String(e)}%`,done:`完了`,cancelled:`キャンセル済み`,failed:`失敗`,cancel:`キャンセル`,open:`開く`,startFailed:`書き出しを開始できませんでした`,nVersions:e=>`${String(e)} 個のバージョン`,all:`すべて`,none:`なし`}},kr={loading:`미리보기를 불러오는 중`,loadFailed:`미리보기를 불러오지 못했습니다`,noVideo:`동영상이 아닙니다`,previewTitle:`미리보기`,denoising:`음성의 잡음을 제거하는 중입니다. 녹음된 그대로 재생합니다`,uncut:e=>`${e}의 인물 매트가 아직 없습니다. 인물 뒤 레이어가 앞에 보입니다`,play:`재생`,pause:`일시정지`,seek:`재생 위치`,prevPage:`이전 페이지`,nextPage:`다음 페이지`,pageOf:(e,t)=>`${String(t)}페이지 중 ${String(e)}페이지`,timeOf:(e,t,n)=>`${e} / ${t}${n?`, ${n}`:``}`,hideTimeline:`타임라인 숨기기`,showTimeline:`타임라인 보기`,rows:{scenes:`장면`,voice:`음성`,music:`음악`,sound:`사운드`},noVoice:`음성 없음`,noMusic:`음악 없음`,noCues:`효과음 없음`,ducked:`음성 아래로 낮춤`,version:`언어`,exportTitle:`내보내기`,previewFailed:`이 동영상에 문제가 생겼습니다.`,previewFailedKept:`최근 변경에서 문제가 생겼습니다. 마지막으로 정상 작동한 버전입니다.`,problemsHere:e=>`이 버전의 문제 ${String(e)}개`,levelError:`수정 필요`,levelWarn:`제안`,exports:{title:`내보내기`,close:`닫기`,versions:`언어`,onShow:`표시 중`,types:`파일 형식`,type:{mov:`MOV (ProRes)`,srt:`자막 (SRT)`,vtt:`자막 (WebVTT)`,cover:`표지 이미지`,wav:`사운드 (WAV)`,png:`PNG 페이지`,pptx:`PowerPoint`},waitCheck:`먼저 검사하는 중입니다. 검사가 끝나면 내보낼 수 있습니다.`,blocked:e=>`수정이 필요한 문제 ${String(e)}개 때문에 내보낼 수 없습니다`,start:`내보내기`,startN:e=>`버전 ${String(e)}개 내보내기`,queued:`대기 중`,queuedAhead:e=>`대기 중, 앞에 ${String(e)}개`,running:e=>`내보내는 중 ${String(e)}%`,done:`완료`,cancelled:`취소됨`,failed:`실패`,cancel:`취소`,open:`열기`,startFailed:`내보내기를 시작하지 못했습니다`,nVersions:e=>`버전 ${String(e)}개`,all:`모두`,none:`없음`}},Ar={loading:`Carregando a prévia`,loadFailed:`A prévia não carregou`,noVideo:`Isto não é um vídeo`,previewTitle:`Prévia`,denoising:`Removendo o ruído da fala; tocando como foi gravada`,uncut:e=>`Ainda não há máscara de pessoa para ${e}: as camadas atrás da pessoa aparecem na frente`,play:`Reproduzir`,pause:`Pausar`,seek:`Posição`,prevPage:`Página anterior`,nextPage:`Próxima página`,pageOf:(e,t)=>`Página ${String(e)} de ${String(t)}`,timeOf:(e,t,n)=>`${e} de ${t}${n?`, ${n}`:``}`,hideTimeline:`Ocultar a linha do tempo`,showTimeline:`Mostrar a linha do tempo`,rows:{scenes:`Cenas`,voice:`Fala`,music:`Música`,sound:`Som`},noVoice:`Sem fala`,noMusic:`Sem música`,noCues:`Sem efeitos sonoros`,ducked:`abaixada sob a fala`,version:`Idioma`,exportTitle:`Exportar`,previewFailed:`Algo deu errado com este vídeo.`,previewFailedKept:`Algo deu errado com a última alteração. Esta é a última versão que funcionou.`,problemsHere:e=>e===1?`1 problema nesta versão`:`${String(e)} problemas nesta versão`,levelError:`Corrigir`,levelWarn:`Sugestão`,exports:{title:`Exportar`,close:`Fechar`,versions:`Idiomas`,onShow:`em exibição`,types:`Tipos de arquivo`,type:{mov:`MOV (ProRes)`,srt:`Legendas (SRT)`,vtt:`Legendas (WebVTT)`,cover:`Imagem de capa`,wav:`Som (WAV)`,png:`Páginas PNG`,pptx:`PowerPoint`},waitCheck:`Verificando primeiro. A exportação abre quando a verificação terminar.`,blocked:e=>e===1?`1 problema a corrigir impede a exportação`:`${String(e)} problemas a corrigir impedem a exportação`,start:`Exportar`,startN:e=>`Exportar ${String(e)} versões`,queued:`Aguardando`,queuedAhead:e=>`Aguardando, ${String(e)} na frente`,running:e=>`Exportando ${String(e)}%`,done:`Pronto`,cancelled:`Cancelada`,failed:`Falhou`,cancel:`Cancelar`,open:`Abrir`,startFailed:`A exportação não começou`,nVersions:e=>`${String(e)} versões`,all:`Todas`,none:`Nenhuma`}},jr=new Intl.PluralRules(`ru`),Mr=(e,t,n,r)=>{let i=jr.select(e);return`${String(e)} ${i===`one`?t:i===`many`?r:n}`},Nr=r({en:xr,"zh-cn":{loading:`正在加载预览`,loadFailed:`预览没能加载`,noVideo:`这不是视频`,previewTitle:`预览`,denoising:`正在降噪,先播原声`,uncut:e=>`${e} 还没有人像遮罩:人物后面的图层暂时画在人物前面`,play:`播放`,pause:`暂停`,seek:`进度`,prevPage:`上一页`,nextPage:`下一页`,pageOf:(e,t)=>`第 ${String(e)} 页,共 ${String(t)} 页`,timeOf:(e,t,n)=>`${e} / ${t}${n?`,${n}`:``}`,hideTimeline:`收起时间线`,showTimeline:`展开时间线`,rows:{scenes:`分段`,voice:`说话`,music:`音乐`,sound:`音效`},noVoice:`没有人说话`,noMusic:`没有音乐`,noCues:`没有音效`,ducked:`有人说话时压低`,version:`语言`,exportTitle:`导出`,previewFailed:`这个视频出了点问题。`,previewFailedKept:`最新的改动出了点问题,这里是上一版正常的画面。`,problemsHere:e=>`这个版本有 ${String(e)} 个问题`,levelError:`必须改`,levelWarn:`建议`,exports:{title:`导出`,close:`关闭`,versions:`语言`,onShow:`当前显示`,types:`文件类型`,type:{mov:`MOV(ProRes)`,srt:`字幕(SRT)`,vtt:`字幕(WebVTT)`,cover:`封面图`,wav:`声音(WAV)`,png:`PNG 页面`,pptx:`PowerPoint`},waitCheck:`正在检查,检查完成后才能导出。`,blocked:e=>`有 ${String(e)} 个必修问题,暂时不能导出`,start:`导出`,startN:e=>`导出 ${String(e)} 个版本`,queued:`排队中`,queuedAhead:e=>`排队中,前面还有 ${String(e)} 个`,running:e=>`导出中 ${String(e)}%`,done:`已完成`,cancelled:`已取消`,failed:`失败`,cancel:`取消`,open:`打开`,startFailed:`导出没有开始`,nVersions:e=>`${String(e)} 个版本`,all:`全选`,none:`全不选`}},"zh-tw":{loading:`正在載入預覽`,loadFailed:`預覽未能載入`,noVideo:`這不是影片`,previewTitle:`預覽`,denoising:`正在降噪,先播放原始錄音`,uncut:e=>`${e} 還沒有人像遮罩:人物後方的圖層暫時顯示在人物前面`,play:`播放`,pause:`暫停`,seek:`播放位置`,prevPage:`上一頁`,nextPage:`下一頁`,pageOf:(e,t)=>`第 ${String(e)} 頁,共 ${String(t)} 頁`,timeOf:(e,t,n)=>`${e} / ${t}${n?`,${n}`:``}`,hideTimeline:`收合時間軸`,showTimeline:`展開時間軸`,rows:{scenes:`段落`,voice:`語音`,music:`音樂`,sound:`音效`},noVoice:`沒有語音`,noMusic:`沒有音樂`,noCues:`沒有音效`,ducked:`有語音時降低音量`,version:`語言`,exportTitle:`匯出`,previewFailed:`這部影片出了點問題。`,previewFailedKept:`最新的修改出了點問題,這裡是上一個正常的版本。`,problemsHere:e=>`這個版本有 ${String(e)} 個問題`,levelError:`必須修正`,levelWarn:`建議`,exports:{title:`匯出`,close:`關閉`,versions:`語言`,onShow:`目前顯示`,types:`檔案類型`,type:{mov:`MOV(ProRes)`,srt:`字幕(SRT)`,vtt:`字幕(WebVTT)`,cover:`封面圖`,wav:`聲音(WAV)`,png:`PNG 頁面`,pptx:`PowerPoint`},waitCheck:`正在檢查,檢查完成後才能匯出。`,blocked:e=>`有 ${String(e)} 個必須修正的問題,暫時無法匯出`,start:`匯出`,startN:e=>`匯出 ${String(e)} 個版本`,queued:`排隊中`,queuedAhead:e=>`排隊中,前面還有 ${String(e)} 個`,running:e=>`匯出中 ${String(e)}%`,done:`已完成`,cancelled:`已取消`,failed:`失敗`,cancel:`取消`,open:`開啟`,startFailed:`匯出沒有開始`,nVersions:e=>`${String(e)} 個版本`,all:`全選`,none:`全不選`}},ja:Or,ko:kr,es:Sr,fr:Cr,de:br,it:Dr,pt:Ar,ru:{loading:`Загрузка предпросмотра`,loadFailed:`Предпросмотр не загрузился`,noVideo:`Это не видео`,previewTitle:`Предпросмотр`,denoising:`Шумоподавление речи; пока звучит исходная запись`,uncut:e=>`Для ${e} ещё нет маски человека: слои за человеком показаны перед ним`,play:`Воспроизвести`,pause:`Пауза`,seek:`Перемотка`,prevPage:`Предыдущая страница`,nextPage:`Следующая страница`,pageOf:(e,t)=>`Страница ${String(e)} из ${String(t)}`,timeOf:(e,t,n)=>`${e} из ${t}${n?`, ${n}`:``}`,hideTimeline:`Скрыть таймлайн`,showTimeline:`Показать таймлайн`,rows:{scenes:`Сцены`,voice:`Речь`,music:`Музыка`,sound:`Звук`},noVoice:`Нет речи`,noMusic:`Нет музыки`,noCues:`Нет звуковых эффектов`,ducked:`приглушено под речью`,version:`Язык`,exportTitle:`Экспорт`,previewFailed:`С этим видео что-то пошло не так.`,previewFailedKept:`С последним изменением что-то пошло не так. Это последняя рабочая версия.`,problemsHere:e=>`${Mr(e,`проблема`,`проблемы`,`проблем`)} в этой версии`,levelError:`Нужно исправить`,levelWarn:`Совет`,exports:{title:`Экспорт`,close:`Закрыть`,versions:`Языки`,onShow:`показана`,types:`Типы файлов`,type:{mov:`MOV (ProRes)`,srt:`Субтитры (SRT)`,vtt:`Субтитры (WebVTT)`,cover:`Обложка`,wav:`Звук (WAV)`,png:`Страницы PNG`,pptx:`PowerPoint`},waitCheck:`Сначала проверка. Экспорт откроется, когда она закончится.`,blocked:e=>`Экспорт остановлен: ${Mr(e,`проблема`,`проблемы`,`проблем`)} нужно исправить`,start:`Экспортировать`,startN:e=>`Экспортировать ${Mr(e,`версию`,`версии`,`версий`)}`,queued:`Ожидание`,queuedAhead:e=>`Ожидание, впереди: ${String(e)}`,running:e=>`Экспорт ${String(e)}%`,done:`Готово`,cancelled:`Отменено`,failed:`Ошибка`,cancel:`Отменить`,open:`Открыть`,startFailed:`Экспорт не начался`,nVersions:e=>Mr(e,`версия`,`версии`,`версий`),all:`Все`,none:`Ни одной`}},tr:{loading:`Önizleme yükleniyor`,loadFailed:`Önizleme yüklenmedi`,noVideo:`Bu bir video değil`,previewTitle:`Önizleme`,denoising:`Konuşmadaki gürültü temizleniyor; kaydedildiği gibi çalınıyor`,uncut:e=>`${e} için henüz kişi maskesi yok: kişinin arkasındaki katmanlar önde görünür`,play:`Oynat`,pause:`Duraklat`,seek:`Konum`,prevPage:`Önceki sayfa`,nextPage:`Sonraki sayfa`,pageOf:(e,t)=>`Sayfa ${String(e)} / ${String(t)}`,timeOf:(e,t,n)=>`${e} / ${t}${n?`, ${n}`:``}`,hideTimeline:`Zaman çizelgesini gizle`,showTimeline:`Zaman çizelgesini göster`,rows:{scenes:`Sahneler`,voice:`Konuşma`,music:`Müzik`,sound:`Ses`},noVoice:`Konuşma yok`,noMusic:`Müzik yok`,noCues:`Ses efekti yok`,ducked:`konuşmanın altında kısıldı`,version:`Dil`,exportTitle:`Dışa aktar`,previewFailed:`Bu videoda bir şeyler ters gitti.`,previewFailedKept:`Son değişiklikte bir şeyler ters gitti. Bu, çalışan son sürüm.`,problemsHere:e=>`Bu sürümde ${String(e)} sorun var`,levelError:`Düzeltilmeli`,levelWarn:`Öneri`,exports:{title:`Dışa aktar`,close:`Kapat`,versions:`Diller`,onShow:`gösterilen`,types:`Dosya türleri`,type:{mov:`MOV (ProRes)`,srt:`Altyazı (SRT)`,vtt:`Altyazı (WebVTT)`,cover:`Kapak görseli`,wav:`Ses (WAV)`,png:`PNG sayfaları`,pptx:`PowerPoint`},waitCheck:`Önce denetleniyor. Denetim bitince dışa aktarma açılır.`,blocked:e=>`Düzeltilmesi gereken ${String(e)} sorun dışa aktarmayı durduruyor`,start:`Dışa aktar`,startN:e=>`${String(e)} sürümü dışa aktar`,queued:`Bekliyor`,queuedAhead:e=>`Bekliyor, önünde ${String(e)} iş var`,running:e=>`Dışa aktarılıyor %${String(e)}`,done:`Bitti`,cancelled:`İptal edildi`,failed:`Başarısız`,cancel:`İptal`,open:`Aç`,startFailed:`Dışa aktarma başlamadı`,nVersions:e=>`${String(e)} sürüm`,all:`Tümü`,none:`Hiçbiri`}},vi:{loading:`Đang tải bản xem trước`,loadFailed:`Không tải được bản xem trước`,noVideo:`Đây không phải video`,previewTitle:`Xem trước`,denoising:`Đang khử nhiễu giọng nói; tạm phát như bản thu gốc`,uncut:e=>`Chưa có mặt nạ người cho ${e}: các lớp phía sau người hiện ở phía trước`,play:`Phát`,pause:`Tạm dừng`,seek:`Tua`,prevPage:`Trang trước`,nextPage:`Trang sau`,pageOf:(e,t)=>`Trang ${String(e)}/${String(t)}`,timeOf:(e,t,n)=>`${e} / ${t}${n?`, ${n}`:``}`,hideTimeline:`Ẩn dòng thời gian`,showTimeline:`Hiện dòng thời gian`,rows:{scenes:`Cảnh`,voice:`Lời nói`,music:`Nhạc`,sound:`Âm thanh`},noVoice:`Không có lời nói`,noMusic:`Không có nhạc`,noCues:`Không có hiệu ứng âm thanh`,ducked:`giảm âm lượng khi có lời nói`,version:`Ngôn ngữ`,exportTitle:`Xuất`,previewFailed:`Video này đã gặp sự cố.`,previewFailedKept:`Thay đổi mới nhất đã gặp sự cố. Đây là phiên bản chạy được gần nhất.`,problemsHere:e=>`${String(e)} vấn đề trong phiên bản này`,levelError:`Cần sửa`,levelWarn:`Gợi ý`,exports:{title:`Xuất`,close:`Đóng`,versions:`Ngôn ngữ`,onShow:`đang hiển thị`,types:`Loại tệp`,type:{mov:`MOV (ProRes)`,srt:`Phụ đề (SRT)`,vtt:`Phụ đề (WebVTT)`,cover:`Ảnh bìa`,wav:`Âm thanh (WAV)`,png:`Các trang PNG`,pptx:`PowerPoint`},waitCheck:`Đang kiểm tra trước. Có thể xuất khi kiểm tra xong.`,blocked:e=>`${String(e)} vấn đề cần sửa đang chặn việc xuất`,start:`Xuất`,startN:e=>`Xuất ${String(e)} phiên bản`,queued:`Đang chờ`,queuedAhead:e=>`Đang chờ, còn ${String(e)} việc phía trước`,running:e=>`Đang xuất ${String(e)}%`,done:`Xong`,cancelled:`Đã hủy`,failed:`Thất bại`,cancel:`Hủy`,open:`Mở`,startFailed:`Không bắt đầu xuất được`,nVersions:e=>`${String(e)} phiên bản`,all:`Tất cả`,none:`Không chọn`}},th:{loading:`กำลังโหลดตัวอย่าง`,loadFailed:`โหลดตัวอย่างไม่สำเร็จ`,noVideo:`นี่ไม่ใช่วิดีโอ`,previewTitle:`ตัวอย่าง`,denoising:`กำลังลดเสียงรบกวนของเสียงพูด ระหว่างนี้จะเล่นตามที่บันทึกไว้`,uncut:e=>`ยังไม่มีมาสก์บุคคลสำหรับ ${e}: เลเยอร์ที่อยู่หลังบุคคลจะแสดงอยู่ด้านหน้า`,play:`เล่น`,pause:`หยุดชั่วคราว`,seek:`เลื่อนตำแหน่ง`,prevPage:`หน้าก่อนหน้า`,nextPage:`หน้าถัดไป`,pageOf:(e,t)=>`หน้า ${String(e)} จาก ${String(t)}`,timeOf:(e,t,n)=>`${e} จาก ${t}${n?`, ${n}`:``}`,hideTimeline:`ซ่อนไทม์ไลน์`,showTimeline:`แสดงไทม์ไลน์`,rows:{scenes:`ฉาก`,voice:`เสียงพูด`,music:`เพลง`,sound:`เสียง`},noVoice:`ไม่มีเสียงพูด`,noMusic:`ไม่มีเพลง`,noCues:`ไม่มีเอฟเฟกต์เสียง`,ducked:`ลดเสียงลงขณะมีเสียงพูด`,version:`ภาษา`,exportTitle:`ส่งออก`,previewFailed:`วิดีโอนี้เกิดข้อผิดพลาด`,previewFailedKept:`การเปลี่ยนแปลงล่าสุดเกิดข้อผิดพลาด นี่คือเวอร์ชันล่าสุดที่ใช้ได้`,problemsHere:e=>`มีปัญหา ${String(e)} รายการในเวอร์ชันนี้`,levelError:`ต้องแก้ไข`,levelWarn:`คำแนะนำ`,exports:{title:`ส่งออก`,close:`ปิด`,versions:`ภาษา`,onShow:`ที่แสดงอยู่`,types:`ประเภทไฟล์`,type:{mov:`MOV (ProRes)`,srt:`คำบรรยาย (SRT)`,vtt:`คำบรรยาย (WebVTT)`,cover:`ภาพหน้าปก`,wav:`เสียง (WAV)`,png:`หน้า PNG`,pptx:`PowerPoint`},waitCheck:`กำลังตรวจสอบก่อน การส่งออกจะเปิดเมื่อตรวจสอบเสร็จ`,blocked:e=>`มีปัญหาที่ต้องแก้ ${String(e)} รายการ ทำให้ส่งออกไม่ได้`,start:`ส่งออก`,startN:e=>`ส่งออก ${String(e)} เวอร์ชัน`,queued:`กำลังรอ`,queuedAhead:e=>`กำลังรอ มีอีก ${String(e)} งานก่อนหน้า`,running:e=>`กำลังส่งออก ${String(e)}%`,done:`เสร็จแล้ว`,cancelled:`ยกเลิกแล้ว`,failed:`ล้มเหลว`,cancel:`ยกเลิก`,open:`เปิด`,startFailed:`เริ่มส่งออกไม่ได้`,nVersions:e=>`${String(e)} เวอร์ชัน`,all:`ทั้งหมด`,none:`ไม่เลือก`}},hi:Er});function Z(){return Nr.of(l()?.locale)}function Pr(e,t,n){let r=c(),[i,a]=(0,V.useState)(),o=JSON.stringify([e,t,...n]);return(0,V.useEffect)(()=>{if(t===void 0)return;let n=!0;return d(r,e,t).then(e=>{n&&a({key:o,data:e})},e=>{n&&a({key:o,error:e instanceof Error?e:Error(String(e))})}),()=>{n=!1}},[r,o]),{data:i?.data,error:i?.key===o?i.error:void 0}}function Fr(){let[e,t]=(0,V.useState)(0);return a(`project/changed`,e=>{t(e.revision)}),e}function Ir(){let e=c(),[t,n]=(0,V.useState)();return(0,V.useEffect)(()=>{let t=!0;return d(e,`check/results`,{}).then(e=>{t&&n(t=>t??e)},()=>void 0),()=>{t=!1}},[e]),a(`check/changed`,n),t}function Lr(){let e=c(),[t,n]=(0,V.useState)([]);return(0,V.useEffect)(()=>{let t=!0;return d(e,`export/list`,{}).then(e=>{t&&n(e.jobs)},()=>void 0),()=>{t=!1}},[e]),a(`export/changed`,({job:e})=>{n(t=>{let n=t.findIndex(t=>t.id===e.id);return n<0?[...t,e]:t.map((t,r)=>r===n?e:t)})}),t}function Rr(e,t){let n=c(),[r,i]=(0,V.useState)();(0,V.useEffect)(()=>{let r=!0;return n[`storage/get`]({key:e}).then(n=>{r&&i({key:e,value:n.value===null?t:n.value})},()=>{r&&i({key:e,value:t})}),()=>{r=!1}},[n,e]);let a=(0,V.useCallback)(t=>{i({key:e,value:t}),n[`storage/set`]({key:e,value:t}).catch(()=>void 0)},[n,e]);return[r?.key===e?r.value:void 0,a]}async function zr(e,t){try{return(await e[`files/url`]({path:t})).url}catch{return}}function Br(e,t){return e.versions.find(e=>e.key===t)??e.versions[0]}function Vr(e,t,n){return e.filter(e=>e.piece===t&&(e.combo===void 0||n.lang===void 0||e.combo.lang===n.lang))}function Hr(e,t){try{return new Intl.DisplayNames([t],{type:`language`}).of(e)??e}catch{return e}}var Ur={mp4:`MP4`,gif:`GIF`,webm:`WebM`,pdf:`PDF`},Wr=(e,t)=>Ur[t]??(t in e.exports.type?e.exports.type[t]:t);function Gr(e,t,n,r){return r.length===0?e.exports.nVersions(t.versions.length):r.length>4?e.exports.nVersions(r.length):r.map(e=>{let r=t.versions.find(t=>t.key===e);return r?n(r):e}).join(`, `)}function Kr({job:e,piece:t,label:n,ahead:r}){let i=Z(),a=c(),o=e.state===`running`||e.state===`queued`;return(0,H.jsxs)(`div`,{className:`space-y-2 rounded-md border p-3`,"data-testid":`export-job`,"data-state":e.state,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2 text-dense`,children:[(0,H.jsx)(`span`,{className:`font-medium`,children:e.state===`queued`?r>0?i.exports.queuedAhead(r):i.exports.queued:e.state===`running`?i.exports.running(Math.round(e.progress*100)):e.state===`done`?i.exports.done:e.state===`cancelled`?i.exports.cancelled:i.exports.failed}),(0,H.jsxs)(`span`,{className:`text-muted-foreground min-w-0 truncate font-mono text-micro`,title:e.versions.join(`
|
|
7
|
+
`),children:[Gr(i,t,n,e.versions),` ·`,` `,e.types.join(`, `)||`—`]}),o?(0,H.jsxs)(R,{size:`xs`,variant:`ghost`,className:`ml-auto`,onClick:()=>{d(a,`export/cancel`,{job:e.id}).catch(()=>void 0)},children:[(0,H.jsx)(be,{}),i.exports.cancel]}):null]}),o?(0,H.jsx)(cr,{value:e.progress*100,className:`h-1.5`}):null,e.error?(0,H.jsx)(`p`,{className:`text-problem-text text-dense leading-relaxed break-words`,children:e.error}):null,e.files.length?(0,H.jsx)(`ul`,{className:`space-y-1`,children:e.files.map(e=>(0,H.jsxs)(`li`,{className:`flex items-center gap-1.5`,"data-testid":`export-file`,children:[(0,H.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-xs`,title:e,children:yr(e)}),(0,H.jsx)(R,{size:`icon-xs`,variant:`ghost`,"aria-label":i.exports.open,title:i.exports.open,onClick:()=>{a[`items/open`]({target:{type:`file`,path:e}}).catch(()=>void 0)},children:(0,H.jsx)(he,{})})]},e))}):null]})}function qr({item:e,piece:t,version:n,label:r,open:i,onOpenChange:a,check:o}){let s=Z(),l=c(),u=Lr(),f=hr[t.kind===`slides`?`paged`:`video`],p=t.versions.map(e=>e.key),[m,h]=(0,V.useState)([n.key]),[g,v]=(0,V.useState)(f.slice(0,1)),[y,b]=(0,V.useState)(!1),x=m.filter(e=>p.includes(e)),S=o?.status===`waiting`||o?.status===`running`,C=o?.status===`done`?t.versions.filter(e=>x.includes(e.key)).flatMap(e=>Vr(o.problems,t.piece,e)).filter((e,t,n)=>e.level===`error`&&n.indexOf(e)===t):[],w=u.filter(t=>t.item===e).reverse(),T=u.filter(e=>e.state===`running`||e.state===`queued`).map(e=>e.id),E=e=>Math.max(0,T.indexOf(e)),D=(e,t,n)=>n?[...new Set([...e,t])]:e.filter(e=>e!==t),O=async()=>{b(!0);try{await d(l,`export/start`,{item:e,versions:x,types:g})}catch(e){ee.error(s.exports.startFailed,{description:e instanceof Error?e.message:String(e)})}finally{b(!1)}};return(0,H.jsx)(lr,{open:i,onOpenChange:a,children:(0,H.jsxs)(fr,{showCloseButton:!1,className:`w-[min(420px,100vw)] gap-0 sm:max-w-none`,"data-testid":`export-sheet`,children:[(0,H.jsxs)(pr,{className:`flex-row items-center border-b`,children:[(0,H.jsx)(mr,{className:`flex-1`,children:s.exports.title}),(0,H.jsx)(R,{size:`icon-sm`,variant:`ghost`,"aria-label":s.exports.close,title:s.exports.close,onClick:()=>{a(!1)},children:(0,H.jsx)(_,{})})]}),(0,H.jsxs)(`div`,{className:`flex-1 space-y-5 overflow-y-auto p-4`,children:[p.length>1?(0,H.jsxs)(`section`,{className:`space-y-2.5`,"data-testid":`export-versions`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(Zn,{children:s.exports.versions}),(0,H.jsxs)(`span`,{className:`text-muted-foreground font-mono text-micro tabular-nums`,children:[x.length,`/`,p.length]}),(0,H.jsxs)(`span`,{className:`ml-auto flex items-center gap-0.5`,children:[(0,H.jsx)(R,{size:`xs`,variant:`ghost`,onClick:()=>{h(p)},children:s.exports.all}),(0,H.jsx)(R,{size:`xs`,variant:`ghost`,onClick:()=>{h([])},children:s.exports.none})]})]}),(0,H.jsx)(`ul`,{className:`-mx-1.5 max-h-72 space-y-0.5 overflow-x-hidden overflow-y-auto`,children:t.versions.map(e=>(0,H.jsx)(`li`,{children:(0,H.jsxs)(`label`,{className:`hover:bg-accent/50 flex items-center gap-2 rounded-sm px-1.5 py-1 text-dense`,title:e.key,children:[(0,H.jsx)(sr,{checked:x.includes(e.key),"data-version":e.key,onCheckedChange:t=>{h(D(x,e.key,t===!0))}}),(0,H.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:r(e)}),e.key===n.key?(0,H.jsx)(`span`,{className:`text-muted-foreground shrink-0 text-xs`,children:s.exports.onShow}):null]})},e.key))})]}):null,(0,H.jsxs)(`section`,{className:`space-y-2`,"data-testid":`export-types`,children:[(0,H.jsx)(Zn,{children:s.exports.types}),(0,H.jsx)(`ul`,{className:`grid grid-cols-2 gap-1.5`,children:f.map(e=>(0,H.jsx)(`li`,{children:(0,H.jsxs)(`label`,{className:`flex items-center gap-2 text-dense`,children:[(0,H.jsx)(sr,{checked:g.includes(e),"data-type":e,onCheckedChange:t=>{v(D(g,e,t===!0))}}),Wr(s,e)]})},e))})]}),S?(0,H.jsx)(`p`,{className:`text-muted-foreground text-dense`,children:s.exports.waitCheck}):C.length?(0,H.jsxs)(`div`,{className:`space-y-2 rounded-md border border-current/20 p-3`,"data-testid":`export-blocked`,children:[(0,H.jsxs)(`p`,{className:`text-problem-text flex items-center gap-1.5 text-dense font-medium`,children:[(0,H.jsx)(ae,{className:`size-3.5`,"aria-hidden":!0}),s.exports.blocked(C.length)]}),(0,H.jsx)(`ul`,{className:`text-muted-foreground list-disc space-y-1 pl-4 text-xs`,children:C.slice(0,5).map((e,t)=>(0,H.jsxs)(`li`,{className:`break-words`,children:[e.code,`: `,e.message]},`${e.code}-${String(t)}`))})]}):null,(0,H.jsx)(R,{className:`w-full`,disabled:S||C.length>0||y||x.length===0||g.length===0,"data-testid":`export-start`,onClick:()=>{O()},children:x.length>1?s.exports.startN(x.length):s.exports.start}),w.length?(0,H.jsx)(`section`,{className:`space-y-2`,children:w.map(e=>(0,H.jsx)(Kr,{job:e,piece:t,label:r,ahead:E(e.id)},e.id))}):null]})]})})}function Jr(e){if(typeof e==`object`&&e&&e.allyhub===!0&&typeof e.type==`string`)return e}function Yr(e,t){e?.postMessage({allyhub:!0,...t},`*`)}function Xr({delayDuration:e=0,...t}){return(0,H.jsx)(Dn,{"data-slot":`tooltip-provider`,delayDuration:e,...t})}function Zr({...e}){return(0,H.jsx)(jn,{"data-slot":`tooltip`,...e})}function Qr({...e}){return(0,H.jsx)(Nn,{"data-slot":`tooltip-trigger`,...e})}function $r({className:e,sideOffset:t=0,children:n,...r}){return(0,H.jsx)(Ln,{children:(0,H.jsxs)(zn,{"data-slot":`tooltip-content`,sideOffset:t,className:N(`z-50 w-fit origin-(--radix-tooltip-content-transform-origin) animate-in rounded-md bg-foreground px-3 py-1.5 text-xs text-balance text-background fade-in-0 zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95`,e),...r,children:[n,(0,H.jsx)(Un,{className:`z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground`})]})})}function ei(e,t,n,r=4){let i=e.map(({x:e,width:n},r)=>{let i=e+n>t&&e-n>=0?`before`:`after`;return i===`after`?{i:r,side:i,from:e,to:e+n}:{i:r,side:i,from:e-n,to:e}}),a=[],o=e.map(()=>null);for(let e of[...i].sort((e,t)=>e.from-t.from||e.i-t.i)){let t=0;for(;t<n&&(a[t]??-1/0)+r>e.from;)t++;t!==n&&(a[t]=e.to,o[e.i]={lane:t,side:e.side})}return o}var ti=.01,ni=new Map;async function ri(e){try{let t=await fetch(e);if(!t.ok)return;let n=await t.arrayBuffer(),r=await new OfflineAudioContext(1,1,44100).decodeAudioData(n),i=r.sampleRate/50,a=Math.ceil(r.length/i),o=new Float32Array(a),s=0;for(let e=0;e<r.numberOfChannels;e++){let t=r.getChannelData(e);for(let e=0;e<a;e++){let n=Math.min(t.length,Math.floor((e+1)*i)),r=o[e]??0;for(let a=Math.floor(e*i);a<n;a++){let e=Math.abs(t[a]??0);e>r&&(r=e)}o[e]=r,r>s&&(s=r)}}if(s<ti)return;let c=Float32Array.from(o).sort(),l=c[Math.floor(c.length*.95)]??s;return{duration:r.duration,data:o,max:l>0?l:s}}catch{return}}function ii(e){let t=ni.get(e);return t||(t=ri(e),ni.set(e,t)),t}function ai(e){let[t,n]=(0,V.useState)();(0,V.useEffect)(()=>{if(e===void 0)return;let t=!0;return ii(e).then(r=>{t&&n({url:e,peaks:r})}),()=>{t=!1}},[e]);let r=t?.url===e?t:void 0;return{peaks:r?.peaks,settled:e===void 0||r!==void 0}}function oi(e,t,n){let r=Math.max(0,Math.floor(t*50)),i=Math.min(e.data.length,Math.max(r+1,Math.ceil(n*50))),a=0;for(let t=r;t<i;t++){let n=e.data[t]??0;n>a&&(a=n)}return a}function si(e,t){if(e.length===0)return 0;let n=e[0];if(!n||t<=n.t)return n?.db??0;for(let n=1;n<e.length;n++){let r=e[n-1],i=e[n];if(r&&i&&t<=i.t)return i.t===r.t?i.db:r.db+(i.db-r.db)*(t-r.t)/(i.t-r.t)}return e.at(-1)?.db??0}function ci(e,t,n){let r=new Map(t.map(e=>[e.key,e])),i=e.parts.flatMap(e=>{let t=e.speech;if(!t)return[];let n=r.get(e.key);return[{...n?.speechKey===void 0?{}:{key:n.speechKey},part:e.key,start:t.start,end:t.end,text:n?.spoken??``,file:t.file,from:t.from,speed:t.speed??1,...t.cuts?{cuts:t.cuts}:{}}]}),a=n?.music,o;if(a&&a.segments.length>0){let t=a.segments[0],n=a.segments.at(-1),r=Math.min(e.duration,a.until??(n?n.at+n.dur:e.duration)),i=[];for(let e=1;e<a.duck.length;e++){let t=a.duck[e-1],n=a.duck[e];if(t&&n&&t.db<0&&n.db<0){let e=i.at(-1);e&&Math.abs(e.end-t.t)<1e-9?e.end=n.t:i.push({start:t.t,end:n.t})}}o={file:a.file,start:t?.at??0,end:r,stretches:a.segments.map(e=>({at:e.at,from:e.from,dur:e.dur})),ducked:i,duck:a.duck,fadeIn:a.fadeIn,fadeOut:a.fadeOut}}return{cues:e.cues,speech:i,music:o}}function li(e,t){if(t<e.start||t>=e.end)return;let n=e.start,r=e.from;for(let i of e.cuts??[]){if(i.at>t)break;n=i.at,r=i.from}return r+(t-n)*e.speed}function ui(e,t){for(let n=e.stretches.length-1;n>=0;n--){let r=e.stretches[n];if(r&&t>=r.at&&t<r.at+r.dur)return r.from+(t-r.at)}}function di(e,t){let n=10**(si(e.duck,t)/20);return e.fadeIn>0&&t-e.start<e.fadeIn&&(n*=Math.max(0,t-e.start)/e.fadeIn),e.fadeOut>0&&e.end-t<e.fadeOut&&(n*=Math.max(0,e.end-t)/e.fadeOut),Math.max(0,n)}function fi(e){let t=new Set((e.index??[]).filter(e=>e.matte).map(e=>e.file));return e.parts.flatMap(n=>{let r=(e.footage??[]).find(e=>e.part===n.key&&t.has(e.file));return r?[{part:n.key,file:r.file}]:[]})}var pi={scenes:`text-track-scene`,voice:`text-track-voice`,music:`text-track-music`,sound:`text-track-sound`},Q={ruler:20,scenes:36,voice:40,music:32,sound:28};function mi(e){return Q.ruler+1+Q.scenes+1+e.reduce((e,t)=>e+Q[t]+1,0)}var hi=6;function gi(e,t){let n=e=>e.join(` `).replace(/\s+([.,!?;:。,!?;:、])/g,`$1`).trim(),[r,...i]=e;if(r===t&&i.length>0){let e=n(i);if(/^[^a-z]/.test(e))return e}return n(e)}function _i(e){return e<=60?{minor:1,major:5}:e<=180?{minor:1,major:10}:e<=600?{minor:5,major:30}:e<=1800?{minor:10,major:60}:{minor:60,major:300}}var $=(e,t)=>`${String(e/Math.max(t,1e-6)*100)}%`;function vi({title:e,mono:t=!1,time:n,line:r,children:i}){return(0,H.jsxs)(Zr,{children:[(0,H.jsx)(Qr,{asChild:!0,children:i}),(0,H.jsx)($r,{side:`top`,sideOffset:6,className:`max-w-[20rem]`,children:(0,H.jsxs)(`span`,{className:`flex flex-col gap-0.5 text-left`,children:[(0,H.jsx)(`span`,{className:N(t&&`font-mono text-micro`),children:e}),(0,H.jsx)(`span`,{className:`font-mono text-micro tabular-nums opacity-70`,children:n}),r?(0,H.jsx)(`span`,{className:`opacity-80`,children:r}):null]})})]})}function yi(e){let t=c(),[n,r]=(0,V.useState)();return(0,V.useEffect)(()=>{let n=!0;return zr(t,e).then(t=>{n&&r({file:e,url:t})}),()=>{n=!1}},[t,e]),n?.file===e?n.url:void 0}function bi({file:e,from:t,to:n,sample:r,alpha:i,className:a}){let o=(0,V.useRef)(null),{peaks:s,settled:c}=ai(yi(e)),[l,u]=(0,V.useState)(!1);return(0,V.useEffect)(()=>{let e=o.current;if(!e||!s)return;let a=()=>{let a=window.devicePixelRatio||1,o=Math.round(e.clientWidth*a),c=Math.round(e.clientHeight*a);if(!o||!c)return;e.width=o,e.height=c;let l=e.getContext(`2d`);if(!l)return;l.fillStyle=getComputedStyle(e).color,l.globalAlpha=i;let d=1/Math.max(s.max,.05),f=n-t,p=c-2*Math.round(2*a);for(let e=0;e<o;e+=2){let n=r(t+e/o*f);if(!n)continue;let i=oi(s,n.at,n.at+2/o*f)*d*n.gain,a=Math.max(1,Math.round(Math.min(1,i)**xi*p));l.fillRect(e,Math.round((c-a)/2),1,a)}u(!0)};a();let c=new ResizeObserver(a);c.observe(e);let l=new MutationObserver(a);return l.observe(document.documentElement,{attributes:!0,attributeFilter:[`class`]}),()=>{c.disconnect(),l.disconnect()}},[s,t,n,r,i]),(0,H.jsx)(`canvas`,{ref:o,"aria-hidden":!0,"data-wave":l?`ready`:c?`none`:`pending`,className:N(`pointer-events-none absolute inset-0 size-full opacity-0 transition-opacity data-[wave=ready]:opacity-100`,a)})}var xi=.7,Si=`focus-visible:outline-ring absolute inset-y-1 overflow-hidden rounded-xs border focus-visible:outline-1 focus-visible:outline-solid focus-visible:-outline-offset-1`;function Ci({line:e,duration:t,onSeek:n}){let r=(0,V.useCallback)(t=>{let n=li(e,t);return n===void 0?void 0:{at:n,gain:1}},[e]);return(0,H.jsx)(vi,{title:e.text,time:`${_r(e.start)} – ${_r(e.end)} · ${yr(e.file)}`,children:(0,H.jsxs)(`button`,{type:`button`,"data-sentence":e.key??e.part,"data-start":e.start.toFixed(4),className:N(Si,`bg-track-voice/15 border-track-voice/60 hover:bg-track-voice/25 text-left`),style:{left:$(e.start,t),width:$(e.end-e.start,t)},onPointerDown:e=>{e.stopPropagation()},onClick:()=>{n(e.start)},children:[(0,H.jsx)(`span`,{className:`absolute inset-x-1.5 top-0 block h-[14px] truncate text-micro leading-[14px]`,children:e.text}),(0,H.jsx)(`span`,{className:`absolute inset-x-0 top-[14px] bottom-0`,children:(0,H.jsx)(bi,{file:e.file,from:e.start,to:e.end,sample:r,alpha:.7,className:`text-track-voice`})})]})})}var wi=2,Ti=.75;function Ei({parts:e,duration:t}){let n=(0,V.useRef)(null),r=(0,V.useRef)(new Map),[i,a]=(0,V.useState)(0),[o,s]=(0,V.useState)(()=>new Map),c=e.flatMap(e=>(e.anchors??[]).map(t=>({id:`${e.key}@${t.name}`,part:e.key,anchor:t}))),l=c.map(e=>e.id).join(`
|
|
8
|
+
`);(0,V.useLayoutEffect)(()=>{let e=n.current;if(!e)return;let t=()=>{a(e.clientWidth);let t=new Map;for(let[e,n]of r.current)t.set(e,n.offsetWidth);s(e=>e.size===t.size&&[...t].every(([t,n])=>e.get(t)===n)?e:t)};t();let i=new ResizeObserver(t);i.observe(e);for(let e of r.current.values())i.observe(e);return()=>{i.disconnect()}},[l]);let u=ei(c.map(e=>({x:e.anchor.at/Math.max(t,1e-6)*i,width:o.get(e.id)??0})),i,wi);return(0,H.jsx)(`div`,{ref:n,className:`pointer-events-none absolute inset-0`,children:c.map((e,n)=>(0,H.jsx)(Di,{part:e.part,anchor:e.anchor,duration:t,place:u[n]??null,nameRef:t=>(r.current.set(e.id,t),()=>{r.current.delete(e.id)})},e.id))})}function Di({part:e,anchor:t,duration:n,place:r,nameRef:i}){let{at:a,end:o}=t,s=(a,o)=>(0,H.jsx)(`span`,{"data-anchor":`${e}:${t.name}${a?`:end`:``}`,"data-time":o.toFixed(4),title:t.name,className:`before:bg-foreground/70 absolute inset-y-0 z-10 -ml-1 w-2 before:absolute before:inset-y-0 before:left-1/2 before:w-px`,style:{left:$(o,n)},children:!a&&(0,H.jsx)(`span`,{ref:i,"data-anchor-lane":r?String(r.lane):void 0,className:N(`bg-background text-muted-foreground absolute rounded-xs px-0.5 font-mono text-micro leading-3 whitespace-nowrap`,r?.side===`before`?`right-1/2 mr-px`:`left-1/2 ml-px`,!r&&`invisible`),style:{bottom:`${String((r?.lane??0)*Ti)}rem`},children:t.name})},a?`end`:`at`);return(0,H.jsxs)(H.Fragment,{children:[o!==void 0&&o>a&&(0,H.jsx)(`span`,{className:`bg-foreground/50 pointer-events-none absolute bottom-0 z-10 h-px`,style:{left:$(a,n),width:$(o-a,n)}}),s(!1,a),o!==void 0&&s(!0,o)]})}function Oi({music:e,duration:t,ducked:n}){let{start:r,end:i}=e,a=(0,V.useCallback)(t=>{let n=ui(e,t);return n===void 0?void 0:{at:n,gain:di(e,t)}},[e]),o=yr(e.file);return(0,H.jsx)(vi,{mono:!0,title:o,time:`${_r(r)} – ${_r(i)}`,line:e.ducked.length?n:void 0,children:(0,H.jsxs)(`div`,{"data-music":o,className:N(Si,`bg-track-music/15 border-track-music/60`),style:{left:$(r,t),width:$(i-r,t)},children:[(0,H.jsx)(bi,{file:e.file,from:r,to:i,sample:a,alpha:.6,className:`text-track-music`}),(0,H.jsx)(`span`,{className:`bg-background/85 text-foreground absolute top-1/2 left-1.5 -translate-y-1/2 rounded-xs px-1 font-mono text-micro leading-[14px]`,children:o})]})})}var ki=(0,V.memo)(function({timeline:e,texts:t,tracks:n,rows:r,current:i,second:a,onSeek:o}){let s=Z(),{duration:c,parts:l}=e,u=e=>(0,H.jsx)(`span`,{className:`text-muted-foreground bg-background pointer-events-none absolute top-1/2 left-3 -translate-y-1/2 px-1 text-xs leading-4`,children:e}),d=n.speech,f=n.music?[n.music]:[],p=n.cues,m=e=>l.find(t=>t.key===e)?.title??e;return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`div`,{className:`relative border-t`,style:{height:Q.scenes+1},"data-row":`scenes`,children:l.map((e,n)=>{let r=e.key===i,s=e.title??e.key,l=t.find(t=>t.key===e.key),u=l?.spoken??gi(l?.onScreen??[],s),d=(e.end-e.start)*a<56;return(0,H.jsx)(vi,{title:(0,H.jsx)(`span`,{className:`font-serif text-dense`,children:s}),time:`${_r(e.start)} – ${_r(e.end)}`,line:u||void 0,children:(0,H.jsxs)(`button`,{type:`button`,"data-chapter":e.key,"data-start":e.start.toFixed(4),"aria-current":r?`true`:void 0,className:N(Si,`flex items-center gap-1.5 px-2 text-left transition-colors`,r?`bg-track-scene/25 border-track-scene`:`bg-track-scene/10 border-track-scene/45 hover:bg-track-scene/20`),style:{left:$(e.start,c),width:`calc(${$(e.end-e.start,c)} - 1px)`},onPointerDown:e=>{e.stopPropagation()},onClick:()=>{o(e.start)},children:[(0,H.jsx)(`span`,{className:N(`font-mono text-micro tabular-nums`,r?`text-foreground/70`:`text-muted-foreground`),children:String(n+1)}),d?null:(0,H.jsx)(`span`,{className:N(`min-w-0 truncate font-serif text-xs`,r?`font-semibold`:`text-foreground/80`),children:s})]})},e.key)})}),r.includes(`voice`)?(0,H.jsxs)(`div`,{className:`relative border-t`,style:{height:Q.voice+1},"data-row":`voice`,children:[d.length>0?d.map(e=>(0,H.jsx)(Ci,{line:e,duration:c,onSeek:o},`${e.part}@${String(e.start)}`)):u(s.noVoice),(0,H.jsx)(Ei,{parts:l,duration:c})]}):null,r.includes(`music`)?(0,H.jsx)(`div`,{className:`relative border-t`,style:{height:Q.music+1},"data-row":`music`,children:f.length?f.map(e=>(0,H.jsx)(Oi,{music:e,duration:c,ducked:s.ducked},`${e.file}@${String(e.start)}`)):u(s.noMusic)}):null,r.includes(`sound`)?(0,H.jsxs)(`div`,{className:`relative border-t`,style:{height:Q.sound+1},"data-row":`sound`,children:[(0,H.jsx)(`span`,{className:`bg-rule-strong absolute inset-x-0 top-1/2 h-px`}),p.length?p.map((e,t)=>(0,H.jsx)(vi,{mono:!0,title:e.sound,time:`${_r(e.t)} · ${m(e.part)}`,line:e.what,children:(0,H.jsx)(`span`,{"data-cue":e.sound,className:`absolute top-1/2 block size-[7px] -translate-y-1/2`,style:{left:$(e.t,c)},children:(0,H.jsx)(`span`,{className:N(`bg-track-sound block size-full rotate-45`,e.t*a<5?`translate-x-[2px]`:`-translate-x-1/2`)})})},`${e.sound}@${String(e.t)}#${String(t)}`)):u(s.noCues)]}):null]})});function Ai({timeline:e,texts:t,tracks:n,rows:r,state:i,onSeek:a}){let o=Z(),{duration:s,fps:c,parts:l}=e,u=Math.max(0,s-1/c),d=(0,V.useRef)(null),f=(0,V.useRef)(null),[p,m]=(0,V.useState)(0),[h,g]=(0,V.useState)(!1),[_,v]=(0,V.useState)();(0,V.useLayoutEffect)(()=>{let e=d.current;if(!e)return;let t=()=>{m(e.clientWidth)};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[]);let y=p>0&&p/s<hi,b=y?Math.ceil(s*hi):p,x=b/Math.max(s,1e-6),{t:S,playing:C}=i;(0,V.useEffect)(()=>{let e=f.current;if(!e)return;let t=t=>{let n=Math.min(Math.max(t,0),s)*x;e.style.transform=`translateX(${String(n)}px)`;let r=d.current;y&&C&&r&&(n<r.scrollLeft+24||n>r.scrollLeft+r.clientWidth-24)&&(r.scrollLeft=Math.max(0,n-r.clientWidth*.2))};if(t(S),!C)return;let n=performance.now(),r=requestAnimationFrame(function e(i){t(Math.min(S+(i-n)/1e3,u)),r=requestAnimationFrame(e)});return()=>{cancelAnimationFrame(r)}},[S,C,x,s,u,y]);let w=e=>{let t=e.currentTarget.getBoundingClientRect(),n=Math.min(t.width,Math.max(0,e.clientX-t.left))/Math.max(t.width,1)*s;return Math.min(Math.max(vr(n,c),0),u)},T=e=>{a(Math.min(Math.max(vr(e,c),0),u))},E=l.find(e=>i.t>=e.start&&i.t<e.end)??l.at(-1),{minor:D,major:O}=_i(s),k=[];for(let e=0;e<=s+1e-6;e+=D)k.push(e);let A=(e,t)=>(0,H.jsxs)(`div`,{className:`flex items-center gap-1.5 overflow-hidden border-t pr-2 pl-3 max-[559px]:justify-center max-[559px]:px-0`,style:{height:Q[e]+1},"data-track":e,children:[(0,H.jsx)(`span`,{role:`img`,"aria-label":o.rows[e],className:N(`shrink-0 [&_svg]:size-3.5`,pi[e]),children:t}),(0,H.jsx)(Zn,{"aria-hidden":!0,className:`text-micro whitespace-nowrap max-[559px]:hidden`,children:o.rows[e]})]});return(0,H.jsx)(Xr,{delayDuration:250,children:(0,H.jsxs)(`div`,{className:`flex border-t`,style:{height:mi(r)+1},"data-testid":`timeline`,children:[(0,H.jsxs)(`div`,{className:`w-max min-w-20 shrink-0 border-r max-[559px]:w-10 max-[559px]:min-w-10`,children:[(0,H.jsx)(`div`,{style:{height:Q.ruler}}),A(`scenes`,(0,H.jsx)(se,{})),r.includes(`voice`)?A(`voice`,(0,H.jsx)(ge,{})):null,r.includes(`music`)?A(`music`,(0,H.jsx)(_e,{})):null,r.includes(`sound`)?A(`sound`,(0,H.jsx)(me,{})):null]}),(0,H.jsx)(`div`,{ref:d,className:N(`relative min-w-0 flex-1 overflow-y-hidden border-l border-transparent`,y?`overflow-x-auto`:`overflow-x-hidden`),"data-testid":`tracks`,children:(0,H.jsxs)(`div`,{className:`relative h-full cursor-pointer touch-none`,style:{width:b||`100%`},onPointerDown:e=>{e.currentTarget.setPointerCapture(e.pointerId),g(!0),a(w(e))},onPointerMove:e=>{let t=w(e);v(t),h&&a(t)},onPointerUp:()=>{g(!1)},onPointerCancel:()=>{g(!1)},onPointerLeave:()=>{v(void 0)},children:[(0,H.jsx)(`div`,{role:`slider`,tabIndex:0,"aria-label":o.seek,"aria-valuemin":0,"aria-valuemax":Math.round(s*100)/100,"aria-valuenow":Math.round(i.t*100)/100,"aria-valuetext":o.timeOf(X(i.t),X(s),E?.title??``),"data-testid":`scrubber`,className:`focus-visible:outline-ring relative outline-none focus-visible:outline-1 focus-visible:outline-solid focus-visible:-outline-offset-1`,style:{height:Q.ruler},onKeyDown:e=>{if(e.key===`ArrowLeft`)T(i.t-1);else if(e.key===`ArrowRight`)T(i.t+1);else if(e.key===`Home`)T(0);else if(e.key===`End`)T(u);else return;e.preventDefault()},children:k.map(e=>{let t=Math.abs(e/O-Math.round(e/O))<1e-6;return(0,H.jsxs)(`span`,{className:`absolute bottom-0`,style:{left:$(e,s)},children:[(0,H.jsx)(`span`,{className:N(`absolute bottom-0 left-0 w-px`,t?`bg-lead-soft h-2`:`bg-rule-strong h-1`)}),t&&(s-e)*x>34?(0,H.jsx)(`span`,{className:`text-muted-foreground absolute bottom-[7px] left-1 font-mono text-micro leading-none tabular-nums`,children:X(e)}):null]},e)})}),(0,H.jsx)(ki,{timeline:e,texts:t,tracks:n,rows:r,current:i.part??E?.key,second:x,onSeek:a}),_===void 0?null:(0,H.jsxs)(`div`,{"aria-hidden":!0,className:`pointer-events-none absolute inset-y-0 left-0 z-10`,style:{transform:`translateX(${String(_*x)}px)`},"data-testid":`hover-guide`,children:[(0,H.jsx)(`span`,{className:`bg-foreground/25 absolute inset-y-0 left-0 w-px`}),(0,H.jsx)(`span`,{className:`bg-popover text-popover-foreground absolute top-0.5 left-1 rounded-xs border px-1 font-mono text-micro leading-[14px] tabular-nums`,children:X(_)})]}),(0,H.jsxs)(`div`,{ref:f,"aria-hidden":!0,className:`pointer-events-none absolute inset-y-0 left-0 z-20 will-change-transform`,"data-testid":`playhead`,children:[(0,H.jsx)(`span`,{className:`bg-foreground absolute inset-y-0 left-0 w-px`}),(0,H.jsx)(`svg`,{viewBox:`0 0 9 9`,className:`text-foreground absolute top-0 -left-1 size-[9px]`,children:(0,H.jsx)(`path`,{d:`M0 0h9v4L4.5 9 0 4z`,fill:`currentColor`})})]})]})})]})})}var ji=48,Mi=[`voice`,`music`,`sound`],Ni=[`voice`],Pi=[],Fi=160,Ii=560,Li=250,Ri=15e3,zi=e=>({paged:e.kind===`paged`,timeline:e.timeline,texts:e.text,tracks:ci(e.timeline,e.text,e.mix),uncut:fi(e.timeline)});function Bi({item:e,version:n,revision:r,width:i,height:a,start:o,overlay:s,onLoaded:l,onError:u,onState:f,ref:p}){let m=Z(),h=c(),g=(0,V.useRef)(null),[_,v]=(0,V.useState)(),[y,b]=(0,V.useState)(),[x,S]=(0,V.useState)(),[C,w]=(0,V.useState)(),[T,E]=(0,V.useState)(!1),[D,O]=(0,V.useState)(),k=t(D),[A,ee]=(0,V.useState)({t:o?.t??0,part:void 0,playing:!1}),[te,ne]=(0,V.useState)(0),[re,j]=(0,V.useState)(),[M=!0,ie]=Rr(`video-editor.timeline`,!0),P=(0,V.useRef)(null),[F,I]=(0,V.useState)(0),ae=(0,V.useRef)(1),L=(0,V.useRef)({shown:_,pending:y,play:A,view:x,onLoaded:l,onError:u,onState:f});(0,V.useEffect)(()=>{L.current={shown:_,pending:y,play:A,view:x,onLoaded:l,onError:u,onState:f}});let R=e=>e===void 0?void 0:g.current?.querySelector(`iframe[data-frame="${String(e.id)}"]`)?.contentWindow,z=e=>{Yr(R(L.current.shown),e)};(0,V.useImperativeHandle)(p,()=>({seek:e=>{z({type:`seek`,t:e})},play:()=>{z({type:`play`})},pause:()=>{z({type:`pause`})}}));let oe=t=>d(h,`video/stage`,{item:e,version:n,start:t,chrome:!1}).then(e=>(O(e.probe),e.url)),se=`${e}\n${n}`,ce=(0,V.useRef)(e);(0,V.useEffect)(()=>{let{shown:t,play:n}=L.current,r=ce.current===e;ce.current=e;let i={t:0},a=t?r?{t:n.t}:i:o??i,s=!0;return oe(a).then(e=>{s&&(v({id:ae.current++,src:e}),b(void 0),w(void 0))},e=>{if(!s)return;let t=e instanceof Error?e.message:String(e);w(t),L.current.onError?.(t)}),()=>{s=!1}},[se]);let le=(0,V.useRef)(r);(0,V.useEffect)(()=>{if(r===le.current)return;le.current=r;let{shown:e,play:t,view:n}=L.current;if(!e)return;let i=n?.timeline.parts.find(e=>t.t>=e.start&&t.t<e.end),a=i?{t:t.t,part:i.key,offset:t.t-i.start,dur:i.end-i.start}:{t:t.t},o=!0;return oe(a).then(e=>{o&&b({id:ae.current++,src:e,from:t.t})},e=>{o&&L.current.onError?.(e instanceof Error?e.message:String(e))}),()=>{o=!1}},[r]),(0,V.useEffect)(()=>{if(!y)return;let e=setTimeout(()=>{b(void 0),L.current.onError?.(m.loadFailed)},Ri);return()=>{clearTimeout(e)}},[y,m.loadFailed]),(0,V.useEffect)(()=>{let e=e=>{let t=Jr(e.data);if(!t)return;let{shown:n,pending:r}=L.current,i=[n,r].find(t=>t!==void 0&&R(t)===e.source);if(!i)return;let a=i.id===r?.id;if(t.type===`sound`)i.denoising=t.denoising,a||E(t.denoising);else if(t.type===`loaded`){let e={kind:t.kind,timeline:t.timeline,text:t.text,reads:t.reads,problems:t.problems,mix:t.mix};if(a){i.loaded=e;return}S(zi(e)),w(void 0),L.current.onLoaded?.(e)}else if(t.type===`error`)a?b(void 0):w(t.message),L.current.onError?.(t.message);else if(t.type===`time`){if(a){if(!i.loaded)return;v(i),b(void 0),ne(e=>e+1),E(i.denoising===!0),S(zi(i.loaded)),w(void 0),L.current.onLoaded?.(i.loaded);let t=L.current.play.t;if(i.from!==void 0&&Math.abs(t-i.from)>1e-6){Yr(e.source,{type:`seek`,t});return}}let n={t:t.t,part:t.part,playing:t.playing};j(i.id),ee(n),L.current.onState?.(n)}};return window.addEventListener(`message`,e),()=>{window.removeEventListener(`message`,e)}},[]);let B=x?.timeline,[ue,de]=B?[B.width,B.height]:[i,a],fe=x?.uncut.find(e=>e.part===A.part);(0,V.useLayoutEffect)(()=>{let e=P.current;if(!e)return;let t=()=>{I(e.clientHeight)};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[]);let pe=B!==void 0,me=A.playing;(0,V.useEffect)(()=>{if(!pe)return;let e=x?.paged===!0,t=t=>{let n=e&&(t.key===`ArrowRight`||t.key===`ArrowLeft`);if(t.key!==` `&&!n||t.metaKey||t.ctrlKey||t.altKey)return;let r=t.target;r instanceof HTMLElement&&(r.isContentEditable||r.closest(n?`input,textarea,select,[role=slider],[role=menuitem],[role=dialog]`:`input,textarea,select,button,a,[role=slider],[role=menuitem],[role=dialog]`))||(t.preventDefault(),Yr(R(L.current.shown),n?{type:t.key===`ArrowRight`?`next`:`prev`}:{type:me?`pause`:`play`}))};return window.addEventListener(`keydown`,t),()=>{window.removeEventListener(`keydown`,t)}},[pe,me,x?.paged]);let he=e=>{z({type:`seek`,t:e})},ge=(e,t)=>(0,H.jsx)(`iframe`,{"data-frame":e.id,src:e.src,title:m.previewTitle,...k?{sandbox:`allow-scripts`}:{},allow:`autoplay`,"data-testid":t?`stage-pending`:`stage`,className:N(`absolute -inset-0.5 size-[calc(100%+4px)] border-0`,t&&`pointer-events-none opacity-0`)},e.id),_e=B?`bg-background`:`bg-black`,ve=(0,H.jsxs)(H.Fragment,{children:[_&&k!==void 0?ge(_,!1):null,y&&k!==void 0?ge(y,!0):null,B||C!==void 0?null:(0,H.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center`,children:(0,H.jsx)(Qn,{label:m.loading,className:`[&>span]:bg-on-media/80`})}),T?(0,H.jsx)(`span`,{className:`bg-background/90 text-muted-foreground absolute top-2 right-2 rounded-sm px-2 py-0.5 font-mono text-micro`,"data-testid":`denoising`,children:m.denoising}):null,B?(0,H.jsx)(`span`,{"aria-hidden":!0,"data-testid":`play-affordance`,"data-shown":!A.playing&&A.t<.05?``:void 0,className:`bg-foreground/92 text-background pointer-events-none absolute top-1/2 left-1/2 flex size-14 -translate-x-1/2 -translate-y-1/2 items-center justify-center rounded-md opacity-0 transition-opacity data-[shown]:opacity-100`,children:(0,H.jsx)(ye,{className:`size-6 translate-x-px fill-current`})}):null,fe?(0,H.jsx)(`span`,{className:`bg-background/90 text-muted-foreground absolute top-2 left-2 max-w-[calc(100%-1rem)] rounded-sm px-2 py-0.5 font-mono text-micro`,"data-testid":`uncut`,children:m.uncut(fe.file)}):null,s]}),be=re!==void 0&&re===_?.id;(0,V.useEffect)(()=>{if(A.playing)return;let t=setTimeout(()=>{let t=g.current?.getBoundingClientRect();h[`editor/context`]({text:`The video ${e}, version ${n}, at ${A.t.toFixed(2)} s${A.part===void 0?``:`, in the part ${A.part}`}`,at:{t:A.t,version:n},...t&&t.width>0&&t.height>0?{picture:{x:t.x,y:t.y,width:t.width,height:t.height}}:{}}).catch(()=>void 0)},Li);return()=>{clearTimeout(t)}},[h,e,n,A.t,A.part,A.playing]);let xe=e=>F-ji-3-mi(e)-1,Se=[Mi,Ni].find(e=>xe(e)>=Fi)??Pi,Ce=B&&M?mi(Se)+1:0,we=51+Ce,Te=`min(100cqw - 2px, (100cqh - ${String(we)}px) * ${String(ue/de)})`,U=Ce?`max(${Te}, min(100cqw - 2px, ${String(Ii)}px))`:Te;return(0,H.jsx)(`div`,{className:`flex h-full min-h-0 flex-col gap-2`,"data-testid":`video-preview`,"data-t":A.t.toFixed(4),"data-ready":be?``:void 0,"data-swaps":te,children:(0,H.jsx)(`div`,{ref:P,className:`flex min-h-0 flex-1 flex-col items-center justify-start [container-type:size]`,children:(0,H.jsxs)(`div`,{className:`box-content overflow-hidden border`,style:{width:U},"data-testid":`player`,children:[(0,H.jsx)(`div`,{ref:g,className:N(`relative mx-auto overflow-hidden`,_e),style:{width:Te,height:`calc(${Te} * ${String(de/ue)})`},children:ve}),B?(0,H.jsx)(Hi,{timeline:B,paged:x.paged,onTurn:e=>{z({type:e?`next`:`prev`})},state:A,open:M,onOpen:ie,onToggle:()=>{z({type:A.playing?`pause`:`play`})},onSeek:he}):(0,H.jsx)(`div`,{className:`h-12 border-t`}),B&&M?(0,H.jsx)(Ai,{timeline:B,texts:x.texts,tracks:x.tracks,rows:Se,state:A,onSeek:he}):null]})})})}var Vi=2;function Hi({timeline:e,paged:t,onTurn:n,state:r,open:i,onOpen:a,onToggle:o,onSeek:s}){let c=Z(),{parts:l}=e,u=Math.max(0,l.findIndex((e,t)=>t===l.length-1||r.t<e.end)),d=l[u];return(0,H.jsxs)(`div`,{className:`relative flex h-12 items-center gap-3 border-t px-3`,"data-testid":`transport`,children:[t?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(R,{size:`icon-sm`,variant:`ghost`,"aria-label":c.prevPage,title:c.prevPage,"data-testid":`page-prev`,disabled:u===0,onClick:()=>{n(!1)},children:(0,H.jsx)(g,{})}),(0,H.jsx)(`span`,{className:`shrink-0 font-mono text-xs tabular-nums`,"data-testid":`page-of`,children:c.pageOf(u+1,l.length)}),(0,H.jsx)(R,{size:`icon-sm`,variant:`ghost`,"aria-label":c.nextPage,title:c.nextPage,"data-testid":`page-next`,disabled:u>=l.length-1,onClick:()=>{n(!0)},children:(0,H.jsx)(le,{})})]}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(R,{size:`icon-sm`,className:`rounded-md`,"aria-label":r.playing?c.pause:c.play,"data-testid":`play`,onClick:o,children:r.playing?(0,H.jsx)(ve,{className:`fill-current`}):(0,H.jsx)(ye,{className:`translate-x-px fill-current`})}),(0,H.jsxs)(`span`,{className:`shrink-0 font-mono text-xs tabular-nums`,"data-testid":`clock`,children:[X(Math.min(r.t,e.duration)),(0,H.jsxs)(`span`,{className:`text-muted-foreground`,children:[` / `,X(e.duration)]})]})]}),i?(0,H.jsx)(`span`,{className:`flex min-w-0 flex-1`,children:d?(0,H.jsxs)(`span`,{className:`text-muted-foreground max-w-[40%] truncate font-mono text-micro`,"data-testid":`scene-now`,children:[String(u+1),` · `,d.title??d.key]}):null}):(0,H.jsx)(Ui,{timeline:e,state:r,onSeek:s}),(0,H.jsx)(R,{size:`icon-sm`,variant:`ghost`,className:`text-muted-foreground -mr-1`,"aria-label":i?c.hideTimeline:c.showTimeline,title:i?c.hideTimeline:c.showTimeline,"aria-expanded":i,"data-testid":`timeline-toggle`,onClick:()=>{a(!i)},children:i?(0,H.jsx)(p,{}):(0,H.jsx)(h,{})})]})}function Ui({timeline:e,state:t,onSeek:n}){let r=Z(),{duration:i,fps:a}=e,o=Math.max(0,i-1/a),s=e.parts.length?e.parts.map((e,t)=>({key:e.key,name:e.title??String(t+1),start:e.start,end:e.end})):[{key:``,name:``,start:0,end:i}],c=(s.length-1)*Vi,[l,u]=(0,V.useState)(),[d,f]=(0,V.useState)(),p=Math.min(l??t.t,i),m=e=>Math.max(0,s.findIndex((t,n)=>n===s.length-1||e<t.end)),h=s[m(p)],g=e=>{let t=e.currentTarget.getBoundingClientRect(),n=Math.min(t.width,Math.max(0,e.clientX-t.left)),r=Math.max(1,t.width-c),l=0,u=i;for(let e of s){let t=r*(e.end-e.start)/Math.max(i,1e-6);if(n<=l+t+Vi/2){let r=Math.min(1,Math.max(0,(n-l)/Math.max(t,1)));u=e.start+r*(e.end-e.start);break}l+=t+Vi}return{x:n,t:Math.min(Math.max(vr(u,a),0),o)}},_=e=>{n(Math.min(Math.max(vr(e,a),0),o))},v=d?s[m(d.t)]?.name:void 0;return(0,H.jsxs)(`div`,{role:`slider`,tabIndex:0,"aria-label":r.seek,"aria-valuemin":0,"aria-valuemax":Math.round(i*100)/100,"aria-valuenow":Math.round(p*100)/100,"aria-valuetext":r.timeOf(X(p),X(i),h?.name??``),"data-testid":`scrubber`,className:`group/scrub focus-visible:outline-ring relative h-6 min-w-0 flex-1 cursor-pointer touch-none rounded-sm outline-none focus-visible:outline-1 focus-visible:outline-solid focus-visible:-outline-offset-1`,onPointerDown:e=>{e.currentTarget.setPointerCapture(e.pointerId);let t=g(e);u(t.t),f(t),n(t.t)},onPointerMove:e=>{let t=g(e);f(t),l!==void 0&&t.t!==l&&(u(t.t),n(t.t))},onPointerUp:()=>{u(void 0)},onPointerCancel:()=>{u(void 0)},onPointerLeave:()=>{f(void 0)},onKeyDown:e=>{if(e.key===`ArrowLeft`)_(t.t-1);else if(e.key===`ArrowRight`)_(t.t+1);else if(e.key===`Home`)_(0);else if(e.key===`End`)_(o);else return;e.preventDefault()},children:[(0,H.jsx)(`div`,{className:`absolute inset-x-0 top-1/2 flex h-1 -translate-y-1/2 transition-[height] duration-100 group-hover/scrub:h-1.5`,style:{gap:Vi},children:s.map(e=>{let t=Math.max(e.end-e.start,1e-6),n=Math.min(1,Math.max(0,(p-e.start)/t));return(0,H.jsx)(`span`,{"data-chapter":e.key,className:`bg-rule-strong relative min-w-0 overflow-hidden`,style:{flexGrow:t,flexBasis:0},children:(0,H.jsx)(`span`,{className:`bg-foreground absolute inset-y-0 left-0`,style:{width:`${String(n*100)}%`}})},e.key)})}),(0,H.jsx)(`span`,{"aria-hidden":!0,className:`bg-foreground ring-background pointer-events-none absolute top-1/2 h-3 w-[3px] -translate-x-1/2 -translate-y-1/2 ring-1`,style:{left:`calc((100% - ${String(c)}px) * ${String(p/Math.max(i,1e-6))} + ${String(m(p)*Vi)}px)`}}),d?(0,H.jsxs)(`span`,{role:`tooltip`,"data-testid":`scrub-tip`,className:`bg-popover text-popover-foreground shadow-overlay pointer-events-none absolute bottom-full z-10 mb-1.5 flex max-w-[16rem] -translate-x-1/2 items-baseline gap-2 rounded-sm px-2 py-1 whitespace-nowrap`,style:{left:d.x},children:[v?(0,H.jsx)(`span`,{className:`truncate font-serif text-dense`,children:v}):null,(0,H.jsx)(`span`,{className:`text-muted-foreground font-mono text-micro tabular-nums`,children:X(d.t)})]}):null]})}var Wi={error:0,warn:1};function Gi(e){let t=new Set;return[...e].sort((e,t)=>Wi[e.level]-Wi[t.level]).filter(e=>{let n=`${e.code}\u0000${e.message}\u0000${e.where?.file??``}`;return!t.has(n)&&(t.add(n),!0)})}function Ki({error:e,problems:t,compact:n}){let r=Z(),[i,a]=(0,V.useState)(!1),o=Gi(t);return e===void 0?o.length?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`button`,{type:`button`,className:`bg-background/90 text-foreground absolute bottom-2 left-2 z-20 flex items-center gap-1.5 rounded-sm px-2 py-1 font-mono text-micro`,onClick:()=>{a(!i)},"aria-expanded":i,"data-testid":`problems-chip`,children:[(0,H.jsx)(ae,{className:N(`size-3.5`,o.some(e=>e.level===`error`)?`text-problem-text`:`text-caution-text`)}),r.problemsHere(o.length)]}),i?(0,H.jsxs)(`div`,{className:`bg-card absolute bottom-10 left-2 z-30 flex max-h-[60%] w-[min(420px,calc(100%-1rem))] flex-col rounded-md border shadow-[var(--allyhub-shadow-overlay)]`,"data-testid":`problems`,children:[(0,H.jsx)(`div`,{className:`flex items-center justify-end border-b px-1 py-1`,children:(0,H.jsx)(R,{size:`icon-xs`,variant:`ghost`,"aria-label":r.exports.close,onClick:()=>{a(!1)},children:(0,H.jsx)(_,{})})}),(0,H.jsx)(`ul`,{className:`divide-y overflow-y-auto`,children:o.map((e,t)=>(0,H.jsxs)(`li`,{"data-code":e.code,className:`px-3 py-2 text-sm leading-relaxed`,children:[(0,H.jsxs)(`span`,{className:`text-muted-foreground mr-2 font-mono text-micro`,children:[e.level===`error`?r.levelError:r.levelWarn,` ·`,` `,e.code]}),e.message]},`${e.code}-${String(t)}`))})]}):null]}):null:(0,H.jsx)(`div`,{className:N(`z-20 overflow-auto text-left`,n?`bg-background/94 absolute inset-x-0 bottom-0 max-h-[45%] border-t px-4 py-3`:`bg-background/96 absolute inset-0 grid content-center justify-items-center p-5 text-center`),"data-testid":`stage-overlay`,"data-compact":n?`true`:void 0,role:`alert`,children:(0,H.jsxs)(`p`,{className:`flex items-center gap-1.5 text-sm`,children:[(0,H.jsx)(ae,{className:`text-problem-text size-4`,"aria-hidden":!0}),n?r.previewFailedKept:r.previewFailed]})})}var qi=1200;function Ji({item:e,piece:t,version:n,revision:r,problems:i}){let[a,o]=(0,V.useState)(),[s,c]=(0,V.useState)(),[l,u]=(0,V.useState)();(0,V.useEffect)(()=>{if(s===void 0)return;let e=setTimeout(()=>{u(s)},qi);return()=>{clearTimeout(e)}},[s]);let d=s!==void 0&&l===s?s:void 0,[f,p]=(0,V.useState)(n.key);f!==n.key&&(p(n.key),o(void 0),c(void 0));let m=[...i,...a?.problems??[]];return(0,H.jsx)(`div`,{className:`bg-paper size-full p-4 min-[560px]:p-6`,children:(0,H.jsx)(Bi,{item:e,version:n.key,revision:r,width:t.width,height:t.height,overlay:(0,H.jsx)(Ki,{error:d,problems:m,compact:a!==void 0}),onLoaded:e=>{o(e),c(void 0)},onError:c})})}function Yi({barIn:e,exports:t=!0}={}){let n=Z(),r=l(),a=r?.item.dir,o=u[i(r?.locale)],s=Fr(),{data:c,error:d}=Pr(`video/versions`,a===void 0?void 0:{item:a},[s]),[f,p]=Rr(`video-editor.version:${a??``}`,``),m=Ir(),[h,g]=(0,V.useState)(!1),_=c?Br(c,f):void 0;if(a===void 0||!c&&!d)return(0,H.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,H.jsx)(Qn,{label:n.loading})});if(!c||!_)return(0,H.jsx)($n,{title:n.noVideo,className:`h-full justify-center`,children:d?.message});let v=m?Vr(m.problems,c.piece,_):[],y=e=>e.lang===void 0?e.key:Hr(e.lang,o),b=c.versions.length>1,x=(b||t)&&(0,H.jsxs)(`div`,{className:`flex items-center gap-1`,"data-testid":`video-editor-tools`,children:[b?(0,H.jsxs)(er,{value:_.key,onValueChange:e=>{p(e)},children:[(0,H.jsx)(nr,{size:`sm`,"aria-label":n.version,className:`max-w-[16rem] text-xs`,"data-testid":`version`,children:(0,H.jsx)(tr,{})}),(0,H.jsx)(rr,{children:c.versions.map(e=>(0,H.jsx)(ir,{value:e.key,className:`text-xs`,title:e.key,children:y(e)},e.key))})]}):null,t&&(0,H.jsx)(R,{size:`sm`,"data-testid":`export-open`,onClick:()=>{g(!0)},children:n.exportTitle})]});return(0,H.jsxs)(`div`,{className:`flex size-full min-h-0 flex-col`,"data-testid":`video-editor`,children:[e?(0,ut.createPortal)(x,e):x?(0,H.jsx)(`div`,{className:`flex shrink-0 justify-end border-b px-2 py-1`,children:x}):null,(0,H.jsx)(`div`,{className:`min-h-0 flex-1`,children:(0,H.jsx)(Ji,{item:a,piece:c,version:_,revision:s,problems:v})}),t&&(0,H.jsx)(qr,{item:a,piece:c,version:_,label:y,open:h,onOpenChange:g,check:m})]})}export{Yi as VideoEditor};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{O as e,a as t,c as n,d as r,j as i,l as a,n as o,r as s,v as c}from"./react-
|
|
1
|
+
import{O as e,a as t,c as n,d as r,j as i,l as a,n as o,r as s,v as c}from"./react-Ff_buMj8.js";import{X as l,h as u}from"./index-CFZhjTQW.js";var d=n(`corner-up-left`,[[`path`,{d:`M20 20v-7a4 4 0 0 0-4-4H4`,key:`1nkjon`}],[`path`,{d:`M9 14 4 9l5-5`,key:`102s5s`}]]),f=n(`zoom-in`,[[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}],[`line`,{x1:`21`,x2:`16.65`,y1:`21`,y2:`16.65`,key:`13gj7c`}],[`line`,{x1:`11`,x2:`11`,y1:`8`,y2:`14`,key:`1vmskp`}],[`line`,{x1:`8`,x2:`14`,y1:`11`,y2:`11`,key:`durymu`}]]),p=i(e(),1),m=a(),h=r({en:{title:`3D scenery`,loading:`Loading the scenery`,loadFailed:`The scenery did not load`,zoomIn:`Zoom in`,back:`Back`,size:(e,t,n)=>`${e} × ${t} × ${n} m`},"zh-cn":{title:`3D 布景`,loading:`正在加载布景`,loadFailed:`布景没能加载`,zoomIn:`放大`,back:`返回`,size:(e,t,n)=>`${e} × ${t} × ${n} 米`},"zh-tw":{title:`3D 布景`,loading:`正在載入布景`,loadFailed:`布景無法載入`,zoomIn:`放大`,back:`返回`,size:(e,t,n)=>`${e} × ${t} × ${n} 公尺`},ja:{title:`3D セット`,loading:`セットを読み込み中`,loadFailed:`セットを読み込めませんでした`,zoomIn:`ズームイン`,back:`戻る`,size:(e,t,n)=>`${e} × ${t} × ${n} m`},ko:{title:`3D 세트`,loading:`세트를 불러오는 중`,loadFailed:`세트를 불러오지 못했습니다`,zoomIn:`확대`,back:`뒤로`,size:(e,t,n)=>`${e} × ${t} × ${n} m`},es:{title:`Decorado 3D`,loading:`Cargando el decorado`,loadFailed:`El decorado no se cargó`,zoomIn:`Acercar`,back:`Atrás`,size:(e,t,n)=>`${e} × ${t} × ${n} m`},fr:{title:`Décor 3D`,loading:`Chargement du décor`,loadFailed:`Le décor ne s’est pas chargé`,zoomIn:`Zoomer`,back:`Retour`,size:(e,t,n)=>`${e} × ${t} × ${n} m`},de:{title:`3D-Kulisse`,loading:`Kulisse wird geladen`,loadFailed:`Die Kulisse wurde nicht geladen`,zoomIn:`Heranzoomen`,back:`Zurück`,size:(e,t,n)=>`${e} × ${t} × ${n} m`},it:{title:`Scenografia 3D`,loading:`Caricamento della scenografia`,loadFailed:`Impossibile caricare la scenografia`,zoomIn:`Ingrandisci`,back:`Indietro`,size:(e,t,n)=>`${e} × ${t} × ${n} m`},pt:{title:`Cenário 3D`,loading:`Carregando o cenário`,loadFailed:`O cenário não carregou`,zoomIn:`Aproximar`,back:`Voltar`,size:(e,t,n)=>`${e} × ${t} × ${n} m`},ru:{title:`3D-декорация`,loading:`Загрузка декорации`,loadFailed:`Декорация не загрузилась`,zoomIn:`Приблизить`,back:`Назад`,size:(e,t,n)=>`${e} × ${t} × ${n} м`},tr:{title:`3D dekor`,loading:`Dekor yükleniyor`,loadFailed:`Dekor yüklenmedi`,zoomIn:`Yakınlaştır`,back:`Geri`,size:(e,t,n)=>`${e} × ${t} × ${n} m`},vi:{title:`Bối cảnh 3D`,loading:`Đang tải bối cảnh`,loadFailed:`Không tải được bối cảnh`,zoomIn:`Phóng to`,back:`Quay lại`,size:(e,t,n)=>`${e} × ${t} × ${n} m`},th:{title:`ฉาก 3D`,loading:`กำลังโหลดฉาก`,loadFailed:`โหลดฉากไม่สำเร็จ`,zoomIn:`ซูมเข้า`,back:`ย้อนกลับ`,size:(e,t,n)=>`${e} × ${t} × ${n} ม.`},hi:{title:`3D सेट`,loading:`सेट लोड हो रहा है`,loadFailed:`सेट लोड नहीं हुआ`,zoomIn:`ज़ूम इन`,back:`वापस`,size:(e,t,n)=>`${e} × ${t} × ${n} मी`}}),g=8;function _(e,t,n,r=8){let i={left:n.left+g,top:n.top+g},a={left:Math.max(i.left,n.right-g-t.width),top:Math.max(i.top,n.bottom-g-t.height)},o=e=>Math.max(i.left,Math.min(e,a.left)),s=e=>Math.max(i.top,Math.min(e,a.top)),c=o(e.left),l=e.bottom+r;if(l<=a.top)return{left:c,top:l};let u=e.top-r-t.height;if(u>=i.top)return{left:c,top:u};let d=e.right+r;return{left:d<=a.left?d:o(e.left-r-t.width),top:s((e.top+e.bottom)/2-t.height/2)}}var v=e=>e>=1?e.toFixed(2):e>=.1?e.toFixed(3):e.toFixed(4),y={width:300,height:56},b=e=>[e[0],e[1],e[2]],x=e=>Array.isArray(e)&&e.length===3&&e.every(e=>typeof e==`number`);function S(e){if(typeof e!=`object`||!e)return;let t=e;if(t.allyhub===!0){if(t.type===`error`)return{type:`error`,message:typeof t.message==`string`?t.message:``};if(t.type===`scenery`&&typeof t.event==`object`)return{type:`scenery`,event:t.event}}}function C({className:e}){let n=o(),r=s(),i=h.of(r?.locale),a=r?.item?.dir,g=(0,p.useRef)(null),C=(0,p.useRef)(null),w=(0,p.useRef)(void 0),[T,E]=(0,p.useState)({n:0}),[D,O]=(0,p.useState)(),[k,A]=(0,p.useState)(),j=t(k),[M,N]=(0,p.useState)(),[P,F]=(0,p.useState)(),[I,L]=(0,p.useState)([]),[R,z]=(0,p.useState)(null),[B,V]=(0,p.useState)({hover:null,select:null}),[H,U]=(0,p.useState)(!1);(0,p.useEffect)(()=>{if(a===void 0)return;let e=!0,t=T.from;return c(n,`scenery/viewer`,{item:a,...t?{camera:{position:b(t.position),target:b(t.target)}}:{}}).then(t=>{e&&(O({n:T.n,url:t.url}),A(t.probe))},t=>{e&&F({n:T.n,message:t instanceof Error?t.message:String(t)})}),()=>{e=!1}},[n,a,T]),(0,p.useEffect)(()=>{if(a===void 0)return;let e,t=!0,r=n.on(`files/changed`,t=>{if(t.watch!==e)return;let n=w.current;E(e=>({n:e.n+1,...n?{from:n}:{}}))});return n[`files/watch`]({paths:[a,`components`,`assets`]}).then(r=>{t?e=r.watch:n[`files/unwatch`]({watch:r.watch})},()=>void 0),()=>{t=!1,r(),e!==void 0&&n[`files/unwatch`]({watch:e})}},[n,a]);let W=(0,p.useCallback)(e=>{g.current?.contentWindow?.postMessage({allyhub:!0,command:e},`*`)},[]),G=(0,p.useRef)(null);(0,p.useEffect)(()=>{G.current=R},[R]),(0,p.useEffect)(()=>{let e=e=>{if(!D||e.source!==g.current?.contentWindow)return;let t=S(e.data);if(!t)return;if(t.type===`error`){F({n:D.n,message:t.message});return}let n=t.event;switch(n.type){case`ready`:N(D.n),L(n.cameras),G.current&&W({type:`select`,path:G.current.path});return;case`select`:z(n.object);return;case`camera`:{let e=n.camera;x(e.target)&&(w.current={position:e.position,target:e.target,...e.lens===void 0?{}:{lens:e.lens}}),U(n.framed);return}case`place`:V({hover:n.hover,select:n.select});return;default:return}};return window.addEventListener(`message`,e),()=>{window.removeEventListener(`message`,e)}},[W,D]);let K=(0,p.useCallback)(()=>{R&&W({type:`select`,path:null}),z(null)},[W,R]),[q,J]=(0,p.useState)({width:0,height:0});(0,p.useEffect)(()=>{let e=C.current;if(!e)return;let t=new ResizeObserver(()=>{J({width:e.clientWidth,height:e.clientHeight})});return t.observe(e),()=>{t.disconnect()}},[]);let Y=R?B.select:null,X=R&&Y?_({left:Y.x,top:Y.y,right:Y.x+Y.width,bottom:Y.y+Y.height},y,{left:0,top:0,right:q.width,bottom:q.height}):void 0,Z=D!==void 0&&M===D.n,Q=P?.n===T.n?P.message:void 0;return(0,m.jsxs)(`div`,{ref:C,"data-testid":`scenery-viewer`,className:l(`bg-paper relative size-full overflow-hidden`,e),onKeyDown:e=>{e.key===`Escape`&&R&&K()},children:[D&&j!==void 0&&(0,m.jsx)(`iframe`,{ref:g,src:D.url,title:i.title,...j?{sandbox:`allow-scripts`}:{},"data-testid":`scenery-frame`,...Z?{"data-ready":``}:{},className:l(`absolute inset-0 size-full border-0 transition-opacity`,Z?`opacity-100`:`opacity-0`)},D.n),!Z&&Q===void 0&&(0,m.jsx)(`p`,{className:`text-lead absolute inset-0 grid place-items-center text-sm`,children:i.loading}),Q!==void 0&&(0,m.jsxs)(`div`,{role:`alert`,className:`absolute inset-x-6 top-6 text-sm`,"data-testid":`scenery-error`,children:[(0,m.jsx)(`p`,{className:`text-problem-text`,children:i.loadFailed}),Q&&(0,m.jsx)(`p`,{className:`text-lead mt-1 font-mono text-xs`,children:Q})]}),Z&&B.hover&&(0,m.jsx)(`div`,{"aria-hidden":!0,className:`border-pencil pointer-events-none absolute rounded-sm border border-dashed`,style:{left:B.hover.x,top:B.hover.y,width:B.hover.width,height:B.hover.height}}),Z&&R&&B.select&&(0,m.jsx)(`div`,{"aria-hidden":!0,className:`border-pencil pointer-events-none absolute rounded-sm border-2`,style:{left:B.select.x,top:B.select.y,width:B.select.width,height:B.select.height}}),Z&&(0,m.jsxs)(`div`,{className:`pointer-events-none absolute inset-x-3 bottom-3 flex flex-wrap items-center gap-1.5`,children:[I.map(e=>(0,m.jsx)(u,{size:`sm`,variant:`outline`,className:`bg-card pointer-events-auto`,"data-testid":`scenery-camera`,onClick:()=>{W({type:`camera`,name:e})},children:e},e)),H&&(0,m.jsxs)(u,{size:`sm`,variant:`outline`,className:`bg-card pointer-events-auto ml-auto`,"data-testid":`scenery-back`,onClick:()=>{W({type:`back`})},children:[(0,m.jsx)(d,{size:14}),i.back]})]}),X&&R&&(0,m.jsxs)(`div`,{role:`dialog`,"aria-label":R.path.join(` › `),"data-testid":`scenery-card`,className:`bg-card animate-set-in shadow-overlay absolute z-10 flex items-start gap-2 rounded-lg border p-3`,style:{left:X.left,top:X.top,width:y.width},children:[(0,m.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,m.jsx)(`p`,{className:`truncate text-sm font-semibold`,children:R.path.join(` › `)}),(0,m.jsx)(`p`,{className:`text-lead text-xs`,children:i.size(v(R.size[0]),v(R.size[1]),v(R.size[2]))})]}),(0,m.jsxs)(u,{size:`sm`,variant:`ghost`,"data-testid":`scenery-zoom`,onClick:()=>{W({type:`frame`,path:R.path})},children:[(0,m.jsx)(f,{size:14}),i.zoomIn]})]})]})}export{C as SceneryViewer};
|