allyhub 0.5.0 → 0.6.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.
Files changed (125) hide show
  1. package/dist/commands/render.js +1 -1
  2. package/dist/commands/sheet.js +7 -7
  3. package/dist/commands/slides.js +1 -1
  4. package/dist/node_modules/@allyhub-next/audio/package.json +1 -1
  5. package/dist/node_modules/@allyhub-next/browser/package.json +1 -1
  6. package/dist/node_modules/@allyhub-next/build/package.json +1 -1
  7. package/dist/node_modules/@allyhub-next/chart/package.json +1 -1
  8. package/dist/node_modules/@allyhub-next/check/package.json +1 -1
  9. package/dist/node_modules/@allyhub-next/cloud/package.json +1 -1
  10. package/dist/node_modules/@allyhub-next/components/package.json +1 -1
  11. package/dist/node_modules/@allyhub-next/dev-server/dist/exports.js +1 -1
  12. package/dist/node_modules/@allyhub-next/dev-server/package.json +1 -1
  13. package/dist/node_modules/@allyhub-next/doc/package.json +1 -1
  14. package/dist/node_modules/@allyhub-next/export/dist/export.d.ts +2 -2
  15. package/dist/node_modules/@allyhub-next/export/dist/export.js +4 -4
  16. package/dist/node_modules/@allyhub-next/export/dist/names.d.ts +1 -1
  17. package/dist/node_modules/@allyhub-next/export/package.json +1 -1
  18. package/dist/node_modules/@allyhub-next/formats/dist/data/sheet.d.ts +179 -0
  19. package/dist/node_modules/@allyhub-next/formats/dist/data/sheet.js +1 -1
  20. package/dist/node_modules/@allyhub-next/formats/dist/data/slides.d.ts +303 -11
  21. package/dist/node_modules/@allyhub-next/formats/dist/data/slides.js +1 -1
  22. package/dist/node_modules/@allyhub-next/formats/dist/index.d.ts +1 -0
  23. package/dist/node_modules/@allyhub-next/formats/dist/index.js +1 -1
  24. package/dist/node_modules/@allyhub-next/formats/dist/items.js +1 -1
  25. package/dist/node_modules/@allyhub-next/formats/dist/schemas.d.ts +135 -3
  26. package/dist/node_modules/@allyhub-next/formats/dist/zip.d.ts +17 -0
  27. package/dist/node_modules/@allyhub-next/formats/dist/zip.js +2 -0
  28. package/dist/node_modules/@allyhub-next/formats/package.json +1 -1
  29. package/dist/node_modules/@allyhub-next/measure/package.json +1 -1
  30. package/dist/node_modules/@allyhub-next/media/package.json +1 -1
  31. package/dist/node_modules/@allyhub-next/model/package.json +1 -1
  32. package/dist/node_modules/@allyhub-next/project/package.json +1 -1
  33. package/dist/node_modules/@allyhub-next/protocol/dist/editor.d.ts +10 -0
  34. package/dist/node_modules/@allyhub-next/protocol/dist/editor.js +1 -1
  35. package/dist/node_modules/@allyhub-next/protocol/dist/notes.d.ts +2 -0
  36. package/dist/node_modules/@allyhub-next/protocol/dist/notes.js +1 -1
  37. package/dist/node_modules/@allyhub-next/protocol/package.json +1 -1
  38. package/dist/node_modules/@allyhub-next/registry/package.json +1 -1
  39. package/dist/node_modules/@allyhub-next/render/dist/exports.d.ts +2 -11
  40. package/dist/node_modules/@allyhub-next/render/dist/exports.js +2 -2
  41. package/dist/node_modules/@allyhub-next/render/dist/page.d.ts +1 -9
  42. package/dist/node_modules/@allyhub-next/render/package.json +1 -1
  43. package/dist/node_modules/@allyhub-next/runtime/package.json +1 -1
  44. package/dist/node_modules/@allyhub-next/runtimes/package.json +1 -1
  45. package/dist/node_modules/@allyhub-next/scaffold/package.json +1 -1
  46. package/dist/node_modules/@allyhub-next/scenery/package.json +1 -1
  47. package/dist/node_modules/@allyhub-next/scenery-host/package.json +1 -1
  48. package/dist/node_modules/@allyhub-next/sheet/dist/api/capabilities.js +1 -1
  49. package/dist/node_modules/@allyhub-next/sheet/dist/api/index.d.ts +1 -0
  50. package/dist/node_modules/@allyhub-next/sheet/dist/api/index.js +1 -1
  51. package/dist/node_modules/@allyhub-next/sheet/dist/api/page.d.ts +83 -0
  52. package/dist/node_modules/@allyhub-next/sheet/dist/api/page.js +2 -0
  53. package/dist/node_modules/@allyhub-next/sheet/dist/api/workbook.d.ts +40 -1
  54. package/dist/node_modules/@allyhub-next/sheet/dist/api/workbook.js +1 -1
  55. package/dist/node_modules/@allyhub-next/sheet/dist/check.js +1 -1
  56. package/dist/node_modules/@allyhub-next/sheet/dist/structure.js +1 -1
  57. package/dist/node_modules/@allyhub-next/sheet/dist/xlsx/charts.d.ts +2 -0
  58. package/dist/node_modules/@allyhub-next/sheet/dist/xlsx/charts.js +1 -1
  59. package/dist/node_modules/@allyhub-next/sheet/dist/xlsx/import.d.ts +3 -0
  60. package/dist/node_modules/@allyhub-next/sheet/dist/xlsx/import.js +1 -1
  61. package/dist/node_modules/@allyhub-next/sheet/dist/xlsx/read.d.ts +2 -1
  62. package/dist/node_modules/@allyhub-next/sheet/dist/xlsx/read.js +1 -1
  63. package/dist/node_modules/@allyhub-next/sheet/dist/xlsx/write.js +1 -1
  64. package/dist/node_modules/@allyhub-next/sheet/package.json +1 -1
  65. package/dist/node_modules/@allyhub-next/site/package.json +1 -1
  66. package/dist/node_modules/@allyhub-next/slides-core/dist/api.d.ts +64 -7
  67. package/dist/node_modules/@allyhub-next/slides-core/dist/api.js +2 -2
  68. package/dist/node_modules/@allyhub-next/slides-core/dist/capabilities.js +1 -1
  69. package/dist/node_modules/@allyhub-next/slides-core/dist/chart-api.d.ts +23 -0
  70. package/dist/node_modules/@allyhub-next/slides-core/dist/chart-api.js +1 -1
  71. package/dist/node_modules/@allyhub-next/slides-core/dist/chart-file.js +1 -1
  72. package/dist/node_modules/@allyhub-next/slides-core/dist/enums.d.ts +20 -0
  73. package/dist/node_modules/@allyhub-next/slides-core/dist/enums.js +1 -1
  74. package/dist/node_modules/@allyhub-next/slides-core/dist/index.d.ts +1 -0
  75. package/dist/node_modules/@allyhub-next/slides-core/dist/index.js +1 -1
  76. package/dist/node_modules/@allyhub-next/slides-core/dist/model.d.ts +37 -1
  77. package/dist/node_modules/@allyhub-next/slides-core/dist/office.d.ts +10 -0
  78. package/dist/node_modules/@allyhub-next/slides-core/dist/office.js +1 -1
  79. package/dist/node_modules/@allyhub-next/slides-core/dist/preset.d.ts +5 -0
  80. package/dist/node_modules/@allyhub-next/slides-core/dist/preset.js +2 -0
  81. package/dist/node_modules/@allyhub-next/slides-core/dist/resolve.d.ts +7 -2
  82. package/dist/node_modules/@allyhub-next/slides-core/dist/resolve.js +1 -1
  83. package/dist/node_modules/@allyhub-next/slides-core/package.json +1 -1
  84. package/dist/node_modules/@allyhub-next/slides-pptx/dist/charts.js +1 -1
  85. package/dist/node_modules/@allyhub-next/slides-pptx/dist/import.js +1 -1
  86. package/dist/node_modules/@allyhub-next/slides-pptx/dist/read.d.ts +2 -1
  87. package/dist/node_modules/@allyhub-next/slides-pptx/dist/read.js +2 -2
  88. package/dist/node_modules/@allyhub-next/slides-pptx/dist/shapes.d.ts +6 -1
  89. package/dist/node_modules/@allyhub-next/slides-pptx/dist/shapes.js +1 -1
  90. package/dist/node_modules/@allyhub-next/slides-pptx/dist/text.d.ts +11 -0
  91. package/dist/node_modules/@allyhub-next/slides-pptx/dist/text.js +1 -1
  92. package/dist/node_modules/@allyhub-next/slides-pptx/dist/write.js +2 -2
  93. package/dist/node_modules/@allyhub-next/slides-pptx/dist/xml.d.ts +10 -4
  94. package/dist/node_modules/@allyhub-next/slides-pptx/dist/xml.js +2 -2
  95. package/dist/node_modules/@allyhub-next/slides-pptx/package.json +1 -1
  96. package/dist/node_modules/@allyhub-next/slides-runtime/dist/draw.d.ts +3 -0
  97. package/dist/node_modules/@allyhub-next/slides-runtime/dist/draw.js +2 -2
  98. package/dist/node_modules/@allyhub-next/slides-runtime/dist/edit.js +1 -1
  99. package/dist/node_modules/@allyhub-next/slides-runtime/package.json +1 -1
  100. package/dist/node_modules/@allyhub-next/stage/dist/graphics.js +1 -1
  101. package/dist/node_modules/@allyhub-next/stage/package.json +1 -1
  102. package/dist/node_modules/@allyhub-next/stage-page/dist/page.js +19 -19
  103. package/dist/node_modules/@allyhub-next/stage-page/package.json +1 -1
  104. package/dist/node_modules/@allyhub-next/video-core/package.json +1 -1
  105. package/editor-web/assets/dist-BW2s9FMO.js +4 -0
  106. package/editor-web/assets/{dist-CuW84oPe.js → dist-C-6JmebI.js} +22 -22
  107. package/editor-web/assets/dist-CCYMLMKN.js +6 -0
  108. package/editor-web/assets/dist-CHzurjMx.js +33 -0
  109. package/editor-web/assets/{dist-Yi3sy7Ea.js → dist-DF7H1dxw.js} +1 -1
  110. package/editor-web/assets/dist-Da5AUSKX.js +2 -0
  111. package/editor-web/assets/index-CovQYWvD.js +69 -0
  112. package/editor-web/assets/minus-BrvjaJyO.js +1 -0
  113. package/editor-web/assets/react-DV5fPdiH.js +101 -0
  114. package/editor-web/assets/{textarea-CvxipnGW.js → textarea-B0vCGdZI.js} +2 -2
  115. package/editor-web/assets/{trash-2-Bq1Dt8XG.js → trash-2-B0dvc1cZ.js} +1 -1
  116. package/editor-web/assets/{undo-2-Djhvu4xt.js → undo-2-A1EPubPO.js} +1 -1
  117. package/editor-web/index.html +2 -2
  118. package/package.json +2 -2
  119. package/editor-web/assets/dist-Cg2PdedY.js +0 -6
  120. package/editor-web/assets/dist-CxAS_vp7.js +0 -2
  121. package/editor-web/assets/dist-DCVaj9i1.js +0 -4
  122. package/editor-web/assets/dist-DGVUuVPB.js +0 -33
  123. package/editor-web/assets/index-pwRfZ2Jv.js +0 -69
  124. package/editor-web/assets/minus-BizJdinJ.js +0 -1
  125. package/editor-web/assets/react-D54s6gwK.js +0 -101
@@ -1,4 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-XKyaHtl9.js";import{At as t,Ct as n,Et as r,Gt as i,Lt as a,Mt as o,Ot as s,Rt as c,a as l,ct as u,dt as d,gt as f,ht as p,jt as m,kt as h,n as g,o as _,pt as v,r as y,rn as b,s as x,xt as S}from"./react-D54s6gwK.js";import{C as ee,d as C,f as te,h as w,i as T,l as ne,m as re,n as ie,o as E,p as ae,r as oe,s as D,t as O,u as k,v as se,y as A}from"./dist-Cg2PdedY.js";import{a as ce,c as le,d as ue,f as de,i as fe,l as pe,n as me,o as he,r as ge,s as _e,u as ve}from"./dist-CxAS_vp7.js";import{a as j,c as ye,d as M,f as be,l as xe,n as Se,r as N,s as P,t as Ce,u as we}from"./textarea-CvxipnGW.js";import{i as Te,n as Ee,r as F,t as De}from"./trash-2-Bq1Dt8XG.js";import{i as Oe,n as ke,r as Ae,t as I}from"./undo-2-Djhvu4xt.js";import{C as je,E as Me,_ as Ne,c as Pe,g as L,i as R,l as Fe,n as z,o as B,r as V,s as Ie,t as Le,u as Re,v as H,x as ze}from"./index-pwRfZ2Jv.js";var Be=s(`arrow-down`,[[`path`,{d:`M12 5v14`,key:`s699le`}],[`path`,{d:`m19 12-7 7-7-7`,key:`1idqje`}]]),U=s(`arrow-up`,[[`path`,{d:`m5 12 7-7 7 7`,key:`hav0vg`}],[`path`,{d:`M12 19V5`,key:`x0mq9r`}]]),W=s(`bring-to-front`,[[`rect`,{x:`8`,y:`8`,width:`8`,height:`8`,rx:`2`,key:`yj20xf`}],[`path`,{d:`M4 10a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2`,key:`1ltk23`}],[`path`,{d:`M14 20a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2`,key:`1q24h9`}]]),Ve=s(`eye-off`,[[`path`,{d:`M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49`,key:`ct8e1f`}],[`path`,{d:`M14.084 14.158a3 3 0 0 1-4.242-4.242`,key:`151rxh`}],[`path`,{d:`M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143`,key:`13bj9a`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),G=s(`eye`,[[`path`,{d:`M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0`,key:`1nclc0`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),He=s(`film`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M7 3v18`,key:`bbkbws`}],[`path`,{d:`M3 7.5h4`,key:`zfgn84`}],[`path`,{d:`M3 12h18`,key:`1i2n21`}],[`path`,{d:`M3 16.5h4`,key:`1230mu`}],[`path`,{d:`M17 3v18`,key:`in4fa5`}],[`path`,{d:`M17 7.5h4`,key:`myr1c1`}],[`path`,{d:`M17 16.5h4`,key:`go4c1d`}]]),Ue=s(`layout-template`,[[`rect`,{width:`18`,height:`7`,x:`3`,y:`3`,rx:`1`,key:`f1a2em`}],[`rect`,{width:`9`,height:`7`,x:`3`,y:`14`,rx:`1`,key:`jqznyg`}],[`rect`,{width:`5`,height:`7`,x:`16`,y:`14`,rx:`1`,key:`q5h2i8`}]]),We=s(`send-to-back`,[[`rect`,{x:`14`,y:`14`,width:`8`,height:`8`,rx:`2`,key:`1b0bso`}],[`rect`,{x:`2`,y:`2`,width:`8`,height:`8`,rx:`2`,key:`1x09vl`}],[`path`,{d:`M7 14v1a2 2 0 0 0 2 2h1`,key:`pao6x6`}],[`path`,{d:`M14 7h1a2 2 0 0 1 2 2v1`,key:`19tdru`}]]),Ge=s(`shapes`,[[`path`,{d:`M8.3 10a.7.7 0 0 1-.626-1.079L11.4 3a.7.7 0 0 1 1.198-.043L16.3 8.9a.7.7 0 0 1-.572 1.1Z`,key:`1bo67w`}],[`rect`,{x:`3`,y:`14`,width:`7`,height:`7`,rx:`1`,key:`1bkyp8`}],[`circle`,{cx:`17.5`,cy:`17.5`,r:`3.5`,key:`w3z12y`}]]),Ke=s(`sparkles`,[[`path`,{d:`M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z`,key:`1s2grr`}],[`path`,{d:`M20 2v4`,key:`1rf3ol`}],[`path`,{d:`M22 4h-4`,key:`gwowj6`}],[`circle`,{cx:`4`,cy:`20`,r:`2`,key:`6kqj1y`}]]),qe=s(`type`,[[`path`,{d:`M12 4v16`,key:`1654pz`}],[`path`,{d:`M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2`,key:`e0r10z`}],[`path`,{d:`M9 20h6`,key:`s66wpe`}]]),K=e(b(),1),q=h(),Je=Object.defineProperty,Ye=(e,t)=>Je(e,`name`,{value:t,configurable:!0}),Xe=`Toggle`,Ze=K.forwardRef(Ye(function(e,t){let{pressed:n,defaultPressed:r,onPressedChange:i,...a}=e,[o,s]=d({prop:n,onChange:i,defaultProp:r??!1,caller:Xe});return(0,q.jsx)(f.button,{type:`button`,"aria-pressed":o,"data-state":o?`on`:`off`,"data-disabled":e.disabled?``:void 0,...a,ref:t,onClick:v(e.onClick,()=>{e.disabled||s(!o)})})},`Toggle`)),Qe=Object.defineProperty,J=(e,t)=>Qe(e,`name`,{value:t,configurable:!0}),Y=`ToggleGroup`,$e={Single:`single`,Multiple:`multiple`},[et,tt]=p(Y,[H]),nt=H(),rt=K.forwardRef(J(function(e,t){let{type:n,...r}=e;if(n===$e.Single)return(0,q.jsx)(ot,{role:`radiogroup`,...r,ref:t});if(n===$e.Multiple)return(0,q.jsx)(st,{role:`toolbar`,...r,ref:t});throw Error(`Missing prop \`type\` expected on \`${Y}\``)},`ToggleGroup`)),[it,at]=et(Y),ot=K.forwardRef(J(function(e,t){let{value:n,defaultValue:r,onValueChange:i=J(()=>{},`onValueChange`),...a}=e,[o,s]=d({prop:n,defaultProp:r??``,onChange:i,caller:Y});return(0,q.jsx)(it,{scope:e.__scopeToggleGroup,type:$e.Single,value:K.useMemo(()=>o?[o]:[],[o]),onItemActivate:s,onItemDeactivate:K.useCallback(()=>s(``),[s]),children:(0,q.jsx)(ut,{...a,ref:t})})},`ToggleGroupImplSingle`)),st=K.forwardRef(J(function(e,t){let{value:n,defaultValue:r,onValueChange:i=J(()=>{},`onValueChange`),...a}=e,[o,s]=d({prop:n,defaultProp:r??[],onChange:i,caller:Y}),c=K.useCallback(e=>s((t=[])=>[...t,e]),[s]),l=K.useCallback(e=>s((t=[])=>t.filter(t=>t!==e)),[s]);return(0,q.jsx)(it,{scope:e.__scopeToggleGroup,type:$e.Multiple,value:o,onItemActivate:c,onItemDeactivate:l,children:(0,q.jsx)(ut,{...a,ref:t})})},`ToggleGroupImplMultiple`)),[ct,lt]=et(Y),ut=K.forwardRef(J(function(e,t){let{__scopeToggleGroup:n,disabled:r=!1,rovingFocus:i=!0,orientation:a,dir:o,loop:s=!0,...c}=e,l=nt(n),d=u(o),p={dir:d,...c};return(0,q.jsx)(ct,{scope:n,rovingFocus:i,disabled:r,children:i?(0,q.jsx)(L,{asChild:!0,...l,orientation:a,dir:d,loop:s,children:(0,q.jsx)(f.div,{...p,ref:t})}):(0,q.jsx)(f.div,{...p,ref:t})})},`ToggleGroupImpl`)),dt=`ToggleGroupItem`,X=K.forwardRef(J(function(e,t){let n=at(dt,e.__scopeToggleGroup),r=lt(dt,e.__scopeToggleGroup),i=nt(e.__scopeToggleGroup),a=n.value.includes(e.value),o=r.disabled||e.disabled,s={...e,pressed:a,disabled:o},c=K.useRef(null);return r.rovingFocus?(0,q.jsx)(Ne,{asChild:!0,...i,focusable:!o,active:a,ref:c,children:(0,q.jsx)(Z,{...s,ref:t})}):(0,q.jsx)(Z,{...s,ref:t})},`ToggleGroupItem`)),Z=K.forwardRef(J(function(e,t){let{__scopeToggleGroup:n,value:r,...i}=e,a=at(dt,n),o={role:`radio`,"aria-checked":e.pressed,"aria-pressed":void 0},s=a.type===$e.Single?o:void 0;return(0,q.jsx)(Ze,{...s,...i,ref:t,onPressedChange:e=>{e?a.onItemActivate(r):a.onItemDeactivate(r)}})},`ToggleGroupItemImpl`)),ft=914400,Q=12700,pt=36e3,mt=e=>Math.trunc(e*ft),ht=e=>Math.trunc(e*pt);ht(297),ht(210),ht(210),ht(297),mt(11),mt(8.5),mt(8.5),mt(11);var gt={appear:0,fade:.5,wipe:.5,"fly-in":.5,zoom:.5,disappear:0,"fade-out":.5,"wipe-out":.5,"fly-out":.5,"zoom-out":.5,pulse:.5,path:2},_t={title:`title`,ctrTitle:`title`,subTitle:`body`,body:`body`,pic:`body`,media:`body`,obj:`body`,dt:`dt`,ftr:`ftr`,sldNum:`sldNum`};function vt(e,t){let n=_t[t];return e.shapes.find(e=>e.kind===`placeholder`&&e.placeholder?.type===n)}function yt(e){let t=new N,n=Se(e,{lineCounter:t}),r=e=>{let r=e===``?[]:e.split(`.`);for(let e=r.length;e>=0;e--){let i=n.getIn(r.slice(0,e).map(e=>/^\d+$/u.test(e)?Number(e):e),!0)?.range?.[0];if(i!==void 0)return t.linePos(i).line}};if(n.errors.length>0)return{problems:n.errors.map(e=>({path:``,line:t.linePos(e.pos[0]).line,message:`slides.yaml is not YAML: ${e.message.split(`
2
- `)[0]??``}`})),lineOf:r};let a=i(`slides`,n.toJS()??{});return a.ok?{file:a.value,problems:[],lineOf:r}:{problems:a.problems.map(e=>{let t=r(e.path);return{path:e.path,...t===void 0?{}:{line:t},message:e.message}}),lineOf:r}}var bt=`slides: []
3
- `;function xt(e){let t=e.get(`slides`,!0);if(P(t)||(j(e.contents)?e.set(`slides`,e.createNode([])):e.contents=e.createNode({slides:[]}),t=e.get(`slides`,!0)),!P(t))throw Error(`slides.yaml has no slides list.`);return t}var St=(e,t)=>e.findIndex(e=>j(e)&&e.get(`id`)===t),Ct=[`frame`,`text`,`fill`,`line`,`z`,`crop`];function wt(e,t){let n=Se(e===void 0||e.trim()===``?bt:e);if(n.errors.length>0)throw Error(`slides.yaml is not YAML: it is mended by hand first.`);let r=xt(n),i=e=>{if(e===null)return 0;let t=e===void 0?-1:St(r.items,e);return t<0?r.items.length:t+1};if(t.op===`add`)return St(r.items,t.slide.id)>=0||(r.items.splice(i(t.after),0,n.createNode(t.slide)),r.flow===!0&&(r.flow=!1)),n.toString();let a=St(r.items,t.slide),o=r.items[a];if(a<0||!j(o))return e??bt;let s=e=>{let t=o.get(`shapes`,!0);return!j(t)&&e&&(o.set(`shapes`,n.createNode({})),t=o.get(`shapes`,!0)),j(t)?t:void 0},c=()=>{let e=s(!1);if(e){for(let t of[...e.items])j(t.value)&&t.value.items.length===0&&e.delete(t.key);e.items.length===0&&o.delete(`shapes`)}};switch(t.op){case`move`:if(t.after===t.slide)break;r.items.splice(a,1),r.items.splice(i(t.after),0,o);break;case`duplicate`:{let e=o.clone();e.set(`id`,t.id),r.items.splice(a+1,0,e);break}case`remove`:r.items.splice(a,1);break;case`layout`:o.set(`layout`,t.layout);break;case`hidden`:t.hidden===!1||Array.isArray(t.hidden)&&t.hidden.length===0?o.delete(`hidden`):o.set(`hidden`,n.createNode(t.hidden));break;case`shape`:{let e=s(!0);if(!e)break;let r=e.get(t.shape,!0);if(j(r)||(e.set(t.shape,n.createNode({})),r=e.get(t.shape,!0)),!j(r))break;for(let[e,i]of Object.entries(t.set)){let t=e.split(`.`);if(i===void 0){r.deleteIn(t);let e=t.length>1?r.getIn(t.slice(0,-1),!0):void 0;j(e)&&e.items.length===0&&r.deleteIn(t.slice(0,-1))}else r.setIn(t,n.createNode(i))}c();break}case`unplace`:s(!1)?.delete(t.shape),c();break;case`animations`:t.animations.length===0?o.delete(`animations`):o.set(`animations`,n.createNode(t.animations));break;case`transition`:t.transition===void 0?o.delete(`transition`):o.set(`transition`,n.createNode(t.transition));break;case`reset`:{let e=s(!1);if(!e)break;for(let n of e.items){let e=String(j(n.key)?``:n.key.value??n.key);if(t.shape!==void 0&&e!==t.shape)continue;let r=n.value;if(j(r)&&![`textbox`,`picture`,`movie`,`geometry`,`component`].some(e=>r.has(e)))for(let e of Ct)r.delete(e)}c();break}}return n.toString()}function Tt(e,t){let n=new Set(e),r=t.replace(/[^A-Za-z0-9_-]+/gu,`-`).replace(/^-+|-+$/gu,``)||`slide`;if(!n.has(r))return r;for(let e=2;;e++){let t=`${r}-${String(e)}`;if(!n.has(t))return t}}var Et=new Set([`text`,`props`,`crop`]),Dt=e=>Array.isArray(e)?e.map(Dt):typeof e==`object`&&e?Object.fromEntries(Object.entries(e).sort(([e],[t])=>e<t?-1:+(e>t)).map(([e,t])=>[e,Dt(t)])):e,Ot=(e,t)=>JSON.stringify(Dt(e))===JSON.stringify(Dt(t));function kt(e){let t=new Map;for(let[n,r]of Object.entries(e??{}))if(Et.has(n)&&typeof r==`object`&&!Array.isArray(r))for(let[e,i]of Object.entries(r))t.set(`${n}.${e}`,i);else t.set(n,r);return t}function At(e,t){let n=e.length,r=t.length,i=Array.from({length:n+1},()=>Array(r+1).fill(0));for(let a=n-1;a>=0;a--)for(let n=r-1;n>=0;n--){let r=i[a],o=i[a+1];r&&o&&(r[n]=e[a]===t[n]?(o[n+1]??0)+1:Math.max(o[n]??0,r[n+1]??0))}let a=new Set;for(let o=0,s=0;o<n&&s<r;)e[o]===t[s]?(a.add(e[o]??``),o++,s++):(i[o+1]?.[s]??0)>=(i[o]?.[s+1]??0)?o++:s++;return a}function jt(e,t){let n=[],r=t.id;t.layout!==void 0&&t.layout!==e.layout&&n.push({op:`layout`,slide:r,layout:t.layout}),Ot(e.hidden,t.hidden)||n.push({op:`hidden`,slide:r,hidden:t.hidden??!1}),Ot(e.animations??[],t.animations??[])||n.push({op:`animations`,slide:r,animations:t.animations??[]}),Ot(e.transition,t.transition)||n.push({op:`transition`,slide:r,...t.transition?{transition:t.transition}:{}});let i=e.shapes??{},a=t.shapes??{};for(let e of Object.keys(i))e in a||n.push({op:`unplace`,slide:r,shape:e});for(let[e,t]of Object.entries(a)){let a=kt(i[e]),o=kt(t),s={};for(let e of new Set([...a.keys(),...o.keys()]))Ot(a.get(e),o.get(e))||(s[e]=o.get(e));Object.keys(s).length>0&&n.push({op:`shape`,slide:r,shape:e,set:s})}return n}function Mt(e,t){let n=[],r=new Map(e.slides.map(e=>[e.id,e])),i=new Set(t.slides.map(e=>e.id));for(let t of e.slides)i.has(t.id)||n.push({op:`remove`,slide:t.id});let a=At(e.slides.map(e=>e.id).filter(e=>i.has(e)),t.slides.map(e=>e.id).filter(e=>r.has(e)));return t.slides.forEach((e,i)=>{let o=i===0?null:t.slides[i-1]?.id??null,s=r.get(e.id);!s||s.generate!==e.generate?(s&&n.push({op:`remove`,slide:e.id}),n.push({op:`add`,slide:e,after:o})):(a.has(e.id)||n.push({op:`move`,slide:e.id,after:o}),n.push(...jt(s,e)))}),n}var Nt=(e,t,n)=>JSON.stringify([e,t,n]);function Pt(e){let t=new Map;switch(e.op){case`layout`:t.set(Nt(e.slide,``,`layout`),e.layout);break;case`hidden`:t.set(Nt(e.slide,``,`hidden`),e.hidden);break;case`animations`:t.set(Nt(e.slide,``,`animations`),e.animations);break;case`transition`:t.set(Nt(e.slide,``,`transition`),e.transition);break;case`shape`:for(let[n,r]of Object.entries(e.set))t.set(Nt(e.slide,e.shape,n),r);break;case`unplace`:t.set(Nt(e.slide,e.shape,``),void 0);break;case`remove`:t.set(Nt(e.slide,``,``),void 0)}return t}function Ft(e,t,n){let r=yt(e).file??{slides:[]},i=yt(n).file;if(!i)return;let a=Mt(r,t),o=n;for(let e of a)o=wt(o,e);let s=new Map;for(let e of Mt(r,i))for(let[t,n]of Pt(e))s.set(t,n);let c=new Set(r.slides.map(e=>e.id).filter(e=>!i.slides.some(t=>t.id===e))),l=[];for(let e of a)if(`slide`in e&&typeof e.slide==`string`&&c.has(e.slide)&&e.op!==`remove`)l.push({slide:e.slide});else for(let[t,n]of Pt(e)){if(!s.has(t)||Ot(s.get(t),n))continue;let[e=``,r=``,i=``]=JSON.parse(t);l.push({slide:e,...r===``?{}:{shape:r},...i===``?{}:{field:i}})}return{text:o,conflicts:l}}function It(e){let t=Se(e);if(t.errors.length>0)return;let n=i(`script`,t.toJS()??{});return n.ok?n.value:void 0}function Lt(e){let t=e.get(`slides`,!0);if(P(t)||(j(e.contents)?e.set(`slides`,e.createNode([])):e.contents=e.createNode({slides:[]}),t=e.get(`slides`,!0)),!P(t))throw Error(`The script has no slides list.`);return t.flow===!0&&(t.flow=!1),t}function Rt(e,t){let n=Se(e===void 0||e.trim()===``?`slides: []
4
- `:e);if(n.errors.length>0)throw Error(`The script is not YAML: it is mended by hand first.`);let r=Lt(n),i=r.items.findIndex(e=>j(e)&&e.get(`id`)===t.slide);if(t.op===`remove`)return i>=0&&r.items.splice(i,1),n.toString();let a=t.op===`text`?t.words===void 0:t.notes===void 0;if(i<0&&a)return n.toString();let o=r.items[i];if(j(o)||(r.items.push(n.createNode({id:t.slide})),o=r.items.at(-1)),!j(o))return n.toString();if(t.op===`notes`)t.notes===void 0?o.delete(`notes`):o.set(`notes`,n.createNode(t.notes));else if(t.words===void 0){o.deleteIn([`text`,t.shape]);let e=o.get(`text`,!0);j(e)&&e.items.length===0&&o.delete(`text`)}else o.setIn([`text`,t.shape],n.createNode(t.words));return o.items.length===1&&r.items.splice(r.items.indexOf(o),1),n.toString()}var zt=e=>JSON.stringify(e);function Bt(e,t){let n=[],r=new Map(e.slides.map(e=>[e.id,e])),i=new Map(t.slides.map(e=>[e.id,e]));for(let e of r.keys())i.has(e)||n.push({op:`remove`,slide:e});for(let[e,t]of i){let i=r.get(e),a=i?.text??{},o=t.text??{};for(let t of new Set([...Object.keys(a),...Object.keys(o)]))zt(a[t])!==zt(o[t])&&n.push({op:`text`,slide:e,shape:t,words:o[t]});zt(i?.notes)!==zt(t.notes)&&n.push({op:`notes`,slide:e,notes:t.notes})}return n}function Vt(e,t,n){let r=It(e)??{parts:[],slides:[]},i=It(n);if(!i)return;let a=Bt(r,t),o=n;for(let e of a)o=Rt(o,e);let s=e=>`${e.slide}\u0000${e.op===`text`?e.shape:e.op}`,c=new Map(Bt(r,i).map(e=>[s(e),e])),l=[];for(let e of a){let t=c.get(s(e));t&&zt(t)!==zt(e)&&l.push({slide:e.slide,...e.op===`text`?{shape:e.shape}:{}})}return{text:o,conflicts:l}}var Ht=m({en:{loading:`Loading the deck`,noDeck:`This is not a deck`,version:`Language`,slides:`Slides`,skipped:`Skipped`,slideCount:e=>e===1?`1 slide`:`${String(e)} slides`,slideOf:(e,t)=>`Slide ${String(e)} of ${String(t)}`,present:`Present`,exportTitle:`Export`,notes:`Speaker notes`,slide:`Slide`,presenting:`Presenting`,presentHelp:`← → steps · N notes · Esc stop`,noNotes:`No notes for this slide`,next:`Next`,addTitle:`Click to add title`,addSubtitle:`Click to add subtitle`,addText:`Click to add text`,addNotes:`Click to add notes`,newSlide:`New Slide`,layout:`Layout`,insert:`Insert`,textBox:`Text Box`,picture:`Pictures`,video:`Video`,shape:`Shapes`,shapes:{rect:`Rectangle`,roundRect:`Rounded Rectangle`,ellipse:`Oval`,triangle:`Triangle`,rightArrow:`Arrow`,line:`Line`},slideMenu:e=>`Slide ${String(e)} actions`,duplicate:`Duplicate`,remove:`Delete`,hide:`Hide Slide`,show:`Show Slide`,fill:`Shape Fill`,textColor:`Font Color`,size:`Font Size`,bold:`Bold`,cut:`Cut`,copy:`Copy`,paste:`Paste`,italic:`Italic`,growFont:`Increase Font Size`,shrinkFont:`Decrease Font Size`,arrange:`Arrange`,arrangeTo:{front:`Bring to Front`,forward:`Bring Forward`,backward:`Send Backward`,back:`Send to Back`},preview:`Preview`,duration:`Duration`,noAnimation:`None`,alignment:`Alignment`,align:{l:`Align Left`,ctr:`Center`,r:`Align Right`,just:`Justify`},resetLayout:`Reset`,animations:`Animations`,animationEffects:`Effect`,animationStarts:`Start`,fromLayout:`Part of the layout`,animationHint:`Select a shape to animate it`,animationEarlier:`Move Earlier`,animationLater:`Move Later`,animationRemove:`Remove animation`,animationStart:{"on-click":`On Click`,"with-previous":`With Previous`,"after-previous":`After Previous`},animationEffect:{appear:`Appear`,fade:`Fade`,wipe:`Wipe`,"fly-in":`Fly In`,zoom:`Zoom`,disappear:`Disappear`,"fade-out":`Fade Out`,"wipe-out":`Wipe Out`,"fly-out":`Fly Out`,"zoom-out":`Zoom Out`,pulse:`Pulse`,path:`Motion Path`},codeWords:`Its words are the deck's code's`,changed:(e,t)=>t===1?`${e} changed 1 thing`:`${e} changed ${String(t)} things`,changedElsewhere:e=>e===1?`1 change made outside`:`${String(e)} changes made outside`,keep:`Keep`,undo:`Undo`,redo:`Redo`,keepAll:`Keep all`,undoAll:`Undo all`,previous:`Previous`,bothChanged:e=>`You and ${e} changed the same thing: yours stands.`,unreadable:e=>`${e} cannot be read. It is not edited until it is mended.`},"zh-cn":{loading:`正在加载演示文稿`,noDeck:`这不是演示文稿`,version:`语言`,slides:`幻灯片`,skipped:`已跳过`,slideCount:e=>`${String(e)} 张幻灯片`,slideOf:(e,t)=>`第 ${String(e)} 张,共 ${String(t)} 张`,present:`放映`,exportTitle:`导出`,notes:`演讲者备注`,slide:`幻灯片`,presenting:`正在放映`,presentHelp:`← → 步骤 · N 备注 · Esc 结束`,noNotes:`此幻灯片没有备注`,next:`下一页`,addTitle:`单击此处添加标题`,addSubtitle:`单击此处添加副标题`,addText:`单击此处添加文本`,addNotes:`单击此处添加备注`,newSlide:`新建幻灯片`,layout:`版式`,insert:`插入`,textBox:`文本框`,picture:`图片`,video:`视频`,shape:`形状`,shapes:{rect:`矩形`,roundRect:`圆角矩形`,ellipse:`椭圆`,triangle:`三角形`,rightArrow:`箭头`,line:`直线`},slideMenu:e=>`第 ${String(e)} 张幻灯片的操作`,duplicate:`复制`,remove:`删除`,hide:`隐藏幻灯片`,show:`取消隐藏幻灯片`,fill:`形状填充`,textColor:`字体颜色`,size:`字号`,bold:`加粗`,cut:`剪切`,copy:`复制`,paste:`粘贴`,italic:`倾斜`,growFont:`增大字号`,shrinkFont:`减小字号`,arrange:`排列`,arrangeTo:{front:`置于顶层`,forward:`上移一层`,backward:`下移一层`,back:`置于底层`},preview:`预览`,duration:`持续时间`,noAnimation:`无`,alignment:`对齐方式`,align:{l:`左对齐`,ctr:`居中`,r:`右对齐`,just:`两端对齐`},resetLayout:`重置`,animations:`动画`,animationEffects:`效果`,animationStarts:`开始`,fromLayout:`属于版式`,animationHint:`选中形状后可为它添加动画`,animationEarlier:`向前移动`,animationLater:`向后移动`,animationRemove:`删除动画`,animationStart:{"on-click":`单击时`,"with-previous":`与上一动画同时`,"after-previous":`上一动画之后`},animationEffect:{appear:`出现`,fade:`淡入`,wipe:`擦除`,"fly-in":`飞入`,zoom:`缩放`,disappear:`消失`,"fade-out":`淡出`,"wipe-out":`擦除退出`,"fly-out":`飞出`,"zoom-out":`缩放退出`,pulse:`脉冲`,path:`动作路径`},codeWords:`文字来自演示文稿的代码`,changed:(e,t)=>`${e} 改了 ${String(t)} 处`,changedElsewhere:e=>`外部改了 ${String(e)} 处`,keep:`保留`,undo:`撤销`,redo:`重做`,keepAll:`全部保留`,undoAll:`全部撤销`,previous:`上一个`,bothChanged:e=>`你和 ${e} 改了同一处:保留你的。`,unreadable:e=>`无法读取 ${e},修好之前不能编辑。`},"zh-tw":{loading:`正在載入簡報`,noDeck:`這不是簡報`,version:`語言`,slides:`投影片`,skipped:`已略過`,slideCount:e=>`${String(e)} 張投影片`,slideOf:(e,t)=>`第 ${String(e)} 張,共 ${String(t)} 張`,present:`放映`,exportTitle:`匯出`,notes:`演講者備忘稿`,slide:`投影片`,presenting:`正在放映`,presentHelp:`← → 步驟 · N 備忘稿 · Esc 結束`,noNotes:`此投影片沒有備忘稿`,next:`下一頁`,addTitle:`按一下以新增標題`,addSubtitle:`按一下以新增副標題`,addText:`按一下以新增文字`,addNotes:`按一下以新增備忘稿`,newSlide:`新增投影片`,layout:`版面配置`,insert:`插入`,textBox:`文字方塊`,picture:`圖片`,video:`視訊`,shape:`圖案`,shapes:{rect:`矩形`,roundRect:`圓角矩形`,ellipse:`橢圓形`,triangle:`三角形`,rightArrow:`箭號`,line:`直線`},slideMenu:e=>`第 ${String(e)} 張投影片的動作`,duplicate:`複製`,remove:`刪除`,hide:`隱藏投影片`,show:`取消隱藏投影片`,fill:`填滿`,textColor:`文字色彩`,size:`大小`,bold:`粗體`,cut:`剪下`,copy:`複製`,paste:`貼上`,italic:`斜體`,growFont:`放大字型`,shrinkFont:`縮小字型`,arrange:`排列`,arrangeTo:{front:`移到最上層`,forward:`上移一層`,backward:`下移一層`,back:`移到最下層`},preview:`預覽`,duration:`期間`,noAnimation:`無`,alignment:`對齊`,align:{l:`靠左對齊`,ctr:`置中`,r:`靠右對齊`,just:`左右對齊`},resetLayout:`重設為版面配置`,animations:`動畫`,animationEffects:`效果`,animationStarts:`開始`,fromLayout:`屬於版面配置`,animationHint:`選取圖形即可為它加上動畫`,animationEarlier:`提前`,animationLater:`延後`,animationRemove:`移除動畫`,animationStart:{"on-click":`按一下時`,"with-previous":`與前動畫同時`,"after-previous":`前動畫之後`},animationEffect:{appear:`出現`,fade:`淡化`,wipe:`擦去`,"fly-in":`飛入`,zoom:`縮放`,disappear:`消失`,"fade-out":`淡出`,"wipe-out":`擦去退出`,"fly-out":`飛出`,"zoom-out":`縮放退出`,pulse:`脈衝`,path:`移動路徑`},codeWords:`文字來自簡報的程式碼`,changed:(e,t)=>`${e} 改了 ${String(t)} 處`,changedElsewhere:e=>`外部改了 ${String(e)} 處`,keep:`保留`,undo:`復原`,redo:`重做`,keepAll:`全部保留`,undoAll:`全部復原`,previous:`上一個`,bothChanged:e=>`你和 ${e} 改了同一處:保留你的。`,unreadable:e=>`無法讀取 ${e},修好之前無法編輯。`},ja:{loading:`スライドを読み込み中`,noDeck:`これはスライドではありません`,version:`言語`,slides:`スライド`,skipped:`スキップ`,slideCount:e=>`${String(e)} 枚のスライド`,slideOf:(e,t)=>`スライド ${String(e)} / ${String(t)}`,present:`発表`,exportTitle:`書き出し`,notes:`発表者ノート`,slide:`スライド`,presenting:`発表中`,presentHelp:`← → ステップ · N ノート · Esc 終了`,noNotes:`このスライドにノートはありません`,next:`次へ`,addTitle:`クリックしてタイトルを入力`,addSubtitle:`クリックしてサブタイトルを入力`,addText:`クリックしてテキストを入力`,addNotes:`クリックしてノートを入力`,newSlide:`新しいスライド`,layout:`レイアウト`,insert:`挿入`,textBox:`テキスト ボックス`,picture:`画像`,video:`ビデオ`,shape:`図形`,shapes:{rect:`長方形`,roundRect:`角丸四角形`,ellipse:`楕円`,triangle:`三角形`,rightArrow:`矢印`,line:`直線`},slideMenu:e=>`スライド ${String(e)} の操作`,duplicate:`複製`,remove:`削除`,hide:`スライドを非表示`,show:`スライドを表示`,fill:`塗りつぶし`,textColor:`文字の色`,size:`サイズ`,bold:`太字`,cut:`切り取り`,copy:`コピー`,paste:`貼り付け`,italic:`斜体`,growFont:`フォント サイズの拡大`,shrinkFont:`フォント サイズの縮小`,arrange:`配置`,arrangeTo:{front:`最前面へ移動`,forward:`前面へ移動`,backward:`背面へ移動`,back:`最背面へ移動`},preview:`プレビュー`,duration:`継続時間`,noAnimation:`なし`,alignment:`配置`,align:{l:`左揃え`,ctr:`中央揃え`,r:`右揃え`,just:`両端揃え`},resetLayout:`レイアウトにリセット`,animations:`アニメーション`,animationEffects:`効果`,animationStarts:`開始`,fromLayout:`レイアウトの一部`,animationHint:`図形を選択するとアニメーションを追加できます`,animationEarlier:`前へ`,animationLater:`後へ`,animationRemove:`アニメーションを削除`,animationStart:{"on-click":`クリック時`,"with-previous":`直前の動作と同時`,"after-previous":`直前の動作の後`},animationEffect:{appear:`表示`,fade:`フェード`,wipe:`ワイプ`,"fly-in":`スライドイン`,zoom:`ズーム`,disappear:`非表示`,"fade-out":`フェードアウト`,"wipe-out":`ワイプアウト`,"fly-out":`スライドアウト`,"zoom-out":`ズームアウト`,pulse:`パルス`,path:`軌跡`},codeWords:`文字はスライドのコードから来ています`,changed:(e,t)=>`${e} が ${String(t)} か所を変更しました`,changedElsewhere:e=>`外部で ${String(e)} か所が変更されました`,keep:`保持`,undo:`元に戻す`,redo:`やり直し`,keepAll:`すべて保持`,undoAll:`すべて元に戻す`,previous:`前へ`,bothChanged:e=>`${e} と同じ箇所を変更しました。あなたの変更が残ります。`,unreadable:e=>`${e} を読み込めません。修正されるまで編集できません。`},ko:{loading:`슬라이드를 불러오는 중`,noDeck:`슬라이드가 아닙니다`,version:`언어`,slides:`슬라이드`,skipped:`건너뜀`,slideCount:e=>`슬라이드 ${String(e)}개`,slideOf:(e,t)=>`${String(t)}개 중 ${String(e)}번째 슬라이드`,present:`발표`,exportTitle:`내보내기`,notes:`발표자 노트`,slide:`슬라이드`,presenting:`발표 중`,presentHelp:`← → 단계 · N 노트 · Esc 종료`,noNotes:`이 슬라이드에는 노트가 없습니다`,next:`다음`,addTitle:`클릭하여 제목 추가`,addSubtitle:`클릭하여 부제목 추가`,addText:`클릭하여 텍스트 추가`,addNotes:`클릭하여 노트 추가`,newSlide:`새 슬라이드`,layout:`레이아웃`,insert:`삽입`,textBox:`텍스트 상자`,picture:`그림`,video:`비디오`,shape:`도형`,shapes:{rect:`직사각형`,roundRect:`모서리가 둥근 직사각형`,ellipse:`타원`,triangle:`삼각형`,rightArrow:`화살표`,line:`선`},slideMenu:e=>`슬라이드 ${String(e)} 작업`,duplicate:`복제`,remove:`삭제`,hide:`슬라이드 숨기기`,show:`슬라이드 표시`,fill:`채우기`,textColor:`글자 색`,size:`크기`,bold:`굵게`,cut:`잘라내기`,copy:`복사`,paste:`붙여넣기`,italic:`기울임꼴`,growFont:`글꼴 크기 크게`,shrinkFont:`글꼴 크기 작게`,arrange:`정렬`,arrangeTo:{front:`맨 앞으로 가져오기`,forward:`앞으로 가져오기`,backward:`뒤로 보내기`,back:`맨 뒤로 보내기`},preview:`미리 보기`,duration:`재생 시간`,noAnimation:`없음`,alignment:`맞춤`,align:{l:`왼쪽 맞춤`,ctr:`가운데`,r:`오른쪽 맞춤`,just:`양쪽 맞춤`},resetLayout:`레이아웃으로 다시 설정`,animations:`애니메이션`,animationEffects:`효과`,animationStarts:`시작`,fromLayout:`레이아웃의 일부`,animationHint:`도형을 선택하면 애니메이션을 추가할 수 있습니다`,animationEarlier:`앞으로`,animationLater:`뒤로`,animationRemove:`애니메이션 제거`,animationStart:{"on-click":`클릭할 때`,"with-previous":`이전 효과와 함께`,"after-previous":`이전 효과 다음에`},animationEffect:{appear:`나타내기`,fade:`페이드`,wipe:`닦아내기`,"fly-in":`날아오기`,zoom:`확대/축소`,disappear:`사라지기`,"fade-out":`페이드 아웃`,"wipe-out":`닦아내며 사라지기`,"fly-out":`날아가기`,"zoom-out":`축소하며 사라지기`,pulse:`펄스`,path:`이동 경로`},codeWords:`텍스트는 슬라이드 코드에서 옵니다`,changed:(e,t)=>`${e}이(가) ${String(t)}곳을 변경함`,changedElsewhere:e=>`외부에서 ${String(e)}곳 변경됨`,keep:`유지`,undo:`실행 취소`,redo:`다시 실행`,keepAll:`모두 유지`,undoAll:`모두 실행 취소`,previous:`이전`,bothChanged:e=>`${e}와(과) 같은 곳을 변경했습니다. 내 변경이 유지됩니다.`,unreadable:e=>`${e}을(를) 읽을 수 없습니다. 고쳐질 때까지 편집할 수 없습니다.`},es:{loading:`Cargando la presentación`,noDeck:`Esto no es una presentación`,version:`Idioma`,slides:`Diapositivas`,skipped:`Omitida`,slideCount:e=>`${String(e)} diapositivas`,slideOf:(e,t)=>`Diapositiva ${String(e)} de ${String(t)}`,present:`Presentar`,exportTitle:`Exportar`,notes:`Notas del orador`,slide:`Diapositiva`,presenting:`Presentando`,presentHelp:`← → pasos · N notas · Esc salir`,noNotes:`Esta diapositiva no tiene notas`,next:`Siguiente`,addTitle:`Haga clic para agregar título`,addSubtitle:`Haga clic para agregar subtítulo`,addText:`Haga clic para agregar texto`,addNotes:`Haga clic para agregar notas`,newSlide:`Nueva diapositiva`,layout:`Diseño`,insert:`Insertar`,textBox:`Cuadro de texto`,picture:`Imagen`,video:`Vídeo`,shape:`Forma`,shapes:{rect:`Rectángulo`,roundRect:`Rectángulo redondeado`,ellipse:`Óvalo`,triangle:`Triángulo`,rightArrow:`Flecha`,line:`Línea`},slideMenu:e=>`Acciones de la diapositiva ${String(e)}`,duplicate:`Duplicar`,remove:`Eliminar`,hide:`Ocultar diapositiva`,show:`Mostrar diapositiva`,fill:`Relleno`,textColor:`Color de texto`,size:`Tamaño`,bold:`Negrita`,cut:`Cortar`,copy:`Copiar`,paste:`Pegar`,italic:`Cursiva`,growFont:`Aumentar tamaño de fuente`,shrinkFont:`Disminuir tamaño de fuente`,arrange:`Organizar`,arrangeTo:{front:`Traer al frente`,forward:`Traer adelante`,backward:`Enviar atrás`,back:`Enviar al fondo`},preview:`Vista previa`,duration:`Duración`,noAnimation:`Ninguna`,alignment:`Alineación`,align:{l:`Alinear a la izquierda`,ctr:`Centrar`,r:`Alinear a la derecha`,just:`Justificar`},resetLayout:`Restablecer diseño`,animations:`Animaciones`,animationEffects:`Efecto`,animationStarts:`Inicio`,fromLayout:`Parte del diseño`,animationHint:`Selecciona una forma para animarla`,animationEarlier:`Antes`,animationLater:`Después`,animationRemove:`Quitar animación`,animationStart:{"on-click":`Al hacer clic`,"with-previous":`Con la anterior`,"after-previous":`Después de la anterior`},animationEffect:{appear:`Aparecer`,fade:`Desvanecer`,wipe:`Barrido`,"fly-in":`Entrar volando`,zoom:`Zoom`,disappear:`Desaparecer`,"fade-out":`Desvanecer al salir`,"wipe-out":`Barrido de salida`,"fly-out":`Salir volando`,"zoom-out":`Zoom de salida`,pulse:`Pulso`,path:`Trayectoria`},codeWords:`Su texto lo da el código de la presentación`,changed:(e,t)=>t===1?`${e} cambió 1 cosa`:`${e} cambió ${String(t)} cosas`,changedElsewhere:e=>e===1?`1 cambio hecho fuera`:`${String(e)} cambios hechos fuera`,keep:`Conservar`,undo:`Deshacer`,redo:`Rehacer`,keepAll:`Conservar todo`,undoAll:`Deshacer todo`,previous:`Anterior`,bothChanged:e=>`Tú y ${e} cambiaron lo mismo: queda lo tuyo.`,unreadable:e=>`No se puede leer ${e}. No se edita hasta que se repare.`},fr:{loading:`Chargement de la présentation`,noDeck:`Ce n'est pas une présentation`,version:`Langue`,slides:`Diapositives`,skipped:`Ignorée`,slideCount:e=>`${String(e)} diapositives`,slideOf:(e,t)=>`Diapositive ${String(e)} sur ${String(t)}`,present:`Présenter`,exportTitle:`Exporter`,notes:`Notes de l'orateur`,slide:`Diapositive`,presenting:`Présentation en cours`,presentHelp:`← → étapes · N notes · Échap arrêter`,noNotes:`Pas de notes pour cette diapositive`,next:`Suivante`,addTitle:`Cliquez pour ajouter un titre`,addSubtitle:`Cliquez pour ajouter un sous-titre`,addText:`Cliquez pour ajouter du texte`,addNotes:`Cliquez pour ajouter des notes`,newSlide:`Nouvelle diapositive`,layout:`Disposition`,insert:`Insérer`,textBox:`Zone de texte`,picture:`Image`,video:`Vidéo`,shape:`Forme`,shapes:{rect:`Rectangle`,roundRect:`Rectangle à coins arrondis`,ellipse:`Ellipse`,triangle:`Triangle`,rightArrow:`Flèche`,line:`Ligne`},slideMenu:e=>`Actions de la diapositive ${String(e)}`,duplicate:`Dupliquer`,remove:`Supprimer`,hide:`Masquer la diapositive`,show:`Afficher la diapositive`,fill:`Remplissage`,textColor:`Couleur du texte`,size:`Taille`,bold:`Gras`,cut:`Couper`,copy:`Copier`,paste:`Coller`,italic:`Italique`,growFont:`Augmenter la taille de police`,shrinkFont:`Réduire la taille de police`,arrange:`Organiser`,arrangeTo:{front:`Mettre au premier plan`,forward:`Avancer`,backward:`Reculer`,back:`Mettre à l'arrière-plan`},preview:`Aperçu`,duration:`Durée`,noAnimation:`Aucune`,alignment:`Alignement`,align:{l:`Aligner à gauche`,ctr:`Centrer`,r:`Aligner à droite`,just:`Justifier`},resetLayout:`Rétablir la disposition`,animations:`Animations`,animationEffects:`Effet`,animationStarts:`Début`,fromLayout:`Fait partie de la mise en page`,animationHint:`Sélectionnez une forme pour l’animer`,animationEarlier:`Plus tôt`,animationLater:`Plus tard`,animationRemove:`Supprimer l’animation`,animationStart:{"on-click":`Au clic`,"with-previous":`Avec la précédente`,"after-previous":`Après la précédente`},animationEffect:{appear:`Apparition`,fade:`Fondu`,wipe:`Balayage`,"fly-in":`Entrée en vol`,zoom:`Zoom`,disappear:`Disparition`,"fade-out":`Fondu de sortie`,"wipe-out":`Balayage de sortie`,"fly-out":`Sortie en vol`,"zoom-out":`Zoom de sortie`,pulse:`Impulsion`,path:`Trajectoire`},codeWords:`Son texte vient du code de la présentation`,changed:(e,t)=>t===1?`${e} a changé 1 élément`:`${e} a changé ${String(t)} éléments`,changedElsewhere:e=>e===1?`1 modification faite ailleurs`:`${String(e)} modifications faites ailleurs`,keep:`Garder`,undo:`Annuler`,redo:`Rétablir`,keepAll:`Tout garder`,undoAll:`Tout annuler`,previous:`Précédent`,bothChanged:e=>`Vous et ${e} avez changé la même chose : la vôtre est gardée.`,unreadable:e=>`Impossible de lire ${e}. Il n’est pas modifié tant qu’il n’est pas réparé.`},de:{loading:`Präsentation wird geladen`,noDeck:`Das ist keine Präsentation`,version:`Sprache`,slides:`Folien`,skipped:`Übersprungen`,slideCount:e=>`${String(e)} Folien`,slideOf:(e,t)=>`Folie ${String(e)} von ${String(t)}`,present:`Präsentieren`,exportTitle:`Exportieren`,notes:`Sprechernotizen`,slide:`Folie`,presenting:`Präsentation läuft`,presentHelp:`← → Schritte · N Notizen · Esc beenden`,noNotes:`Keine Notizen zu dieser Folie`,next:`Weiter`,addTitle:`Titel durch Klicken hinzufügen`,addSubtitle:`Untertitel durch Klicken hinzufügen`,addText:`Text durch Klicken hinzufügen`,addNotes:`Notizen durch Klicken hinzufügen`,newSlide:`Neue Folie`,layout:`Layout`,insert:`Einfügen`,textBox:`Textfeld`,picture:`Bild`,video:`Video`,shape:`Form`,shapes:{rect:`Rechteck`,roundRect:`Abgerundetes Rechteck`,ellipse:`Ellipse`,triangle:`Dreieck`,rightArrow:`Pfeil`,line:`Linie`},slideMenu:e=>`Aktionen für Folie ${String(e)}`,duplicate:`Duplizieren`,remove:`Löschen`,hide:`Folie ausblenden`,show:`Folie einblenden`,fill:`Füllung`,textColor:`Textfarbe`,size:`Größe`,bold:`Fett`,cut:`Ausschneiden`,copy:`Kopieren`,paste:`Einfügen`,italic:`Kursiv`,growFont:`Schriftgrad vergrößern`,shrinkFont:`Schriftgrad verkleinern`,arrange:`Anordnen`,arrangeTo:{front:`In den Vordergrund`,forward:`Eine Ebene nach vorne`,backward:`Eine Ebene nach hinten`,back:`In den Hintergrund`},preview:`Vorschau`,duration:`Dauer`,noAnimation:`Keine`,alignment:`Ausrichtung`,align:{l:`Linksbündig`,ctr:`Zentriert`,r:`Rechtsbündig`,just:`Blocksatz`},resetLayout:`Auf Layout zurücksetzen`,animations:`Animationen`,animationEffects:`Effekt`,animationStarts:`Start`,fromLayout:`Teil des Layouts`,animationHint:`Form auswählen, um sie zu animieren`,animationEarlier:`Früher`,animationLater:`Später`,animationRemove:`Animation entfernen`,animationStart:{"on-click":`Beim Klicken`,"with-previous":`Mit Vorherigen`,"after-previous":`Nach Vorherigen`},animationEffect:{appear:`Erscheinen`,fade:`Verblassen`,wipe:`Wischen`,"fly-in":`Hineinfliegen`,zoom:`Zoomen`,disappear:`Verschwinden`,"fade-out":`Ausblenden`,"wipe-out":`Herauswischen`,"fly-out":`Hinausfliegen`,"zoom-out":`Herauszoomen`,pulse:`Impuls`,path:`Animationspfad`},codeWords:`Der Text kommt aus dem Code der Präsentation`,changed:(e,t)=>t===1?`${e} hat 1 Sache geändert`:`${e} hat ${String(t)} Dinge geändert`,changedElsewhere:e=>e===1?`1 Änderung von außerhalb`:`${String(e)} Änderungen von außerhalb`,keep:`Behalten`,undo:`Rückgängig`,redo:`Wiederholen`,keepAll:`Alle behalten`,undoAll:`Alle rückgängig`,previous:`Zurück`,bothChanged:e=>`Du und ${e} habt dasselbe geändert: deine Änderung bleibt.`,unreadable:e=>`${e} kann nicht gelesen werden. Bis es repariert ist, wird es nicht bearbeitet.`},it:{loading:`Caricamento della presentazione`,noDeck:`Questa non è una presentazione`,version:`Lingua`,slides:`Diapositive`,skipped:`Saltata`,slideCount:e=>`${String(e)} diapositive`,slideOf:(e,t)=>`Diapositiva ${String(e)} di ${String(t)}`,present:`Presenta`,exportTitle:`Esporta`,notes:`Note del relatore`,slide:`Diapositiva`,presenting:`Presentazione in corso`,presentHelp:`← → passaggi · N note · Esc esci`,noNotes:`Nessuna nota per questa diapositiva`,next:`Successiva`,addTitle:`Fai clic per aggiungere un titolo`,addSubtitle:`Fai clic per aggiungere un sottotitolo`,addText:`Fai clic per aggiungere del testo`,addNotes:`Fai clic per aggiungere delle note`,newSlide:`Nuova diapositiva`,layout:`Layout`,insert:`Inserisci`,textBox:`Casella di testo`,picture:`Immagine`,video:`Video`,shape:`Forma`,shapes:{rect:`Rettangolo`,roundRect:`Rettangolo arrotondato`,ellipse:`Ovale`,triangle:`Triangolo`,rightArrow:`Freccia`,line:`Linea`},slideMenu:e=>`Azioni della diapositiva ${String(e)}`,duplicate:`Duplica`,remove:`Elimina`,hide:`Nascondi diapositiva`,show:`Mostra diapositiva`,fill:`Riempimento`,textColor:`Colore testo`,size:`Dimensione`,bold:`Grassetto`,cut:`Taglia`,copy:`Copia`,paste:`Incolla`,italic:`Corsivo`,growFont:`Aumenta dimensione carattere`,shrinkFont:`Riduci dimensione carattere`,arrange:`Disponi`,arrangeTo:{front:`Porta in primo piano`,forward:`Porta avanti`,backward:`Porta indietro`,back:`Porta in secondo piano`},preview:`Anteprima`,duration:`Durata`,noAnimation:`Nessuna`,alignment:`Allineamento`,align:{l:`Allinea a sinistra`,ctr:`Centra`,r:`Allinea a destra`,just:`Giustifica`},resetLayout:`Reimposta layout`,animations:`Animazioni`,animationEffects:`Effetto`,animationStarts:`Avvio`,fromLayout:`Parte del layout`,animationHint:`Seleziona una forma per animarla`,animationEarlier:`Prima`,animationLater:`Dopo`,animationRemove:`Rimuovi animazione`,animationStart:{"on-click":`Al clic`,"with-previous":`Con la precedente`,"after-previous":`Dopo la precedente`},animationEffect:{appear:`Comparsa`,fade:`Dissolvenza`,wipe:`Apertura`,"fly-in":`Entrata in volo`,zoom:`Zoom`,disappear:`Scomparsa`,"fade-out":`Dissolvenza in uscita`,"wipe-out":`Chiusura`,"fly-out":`Uscita in volo`,"zoom-out":`Zoom in uscita`,pulse:`Impulso`,path:`Percorso`},codeWords:`Il testo viene dal codice della presentazione`,changed:(e,t)=>t===1?`${e} ha cambiato 1 cosa`:`${e} ha cambiato ${String(t)} cose`,changedElsewhere:e=>e===1?`1 modifica fatta fuori`:`${String(e)} modifiche fatte fuori`,keep:`Mantieni`,undo:`Annulla`,redo:`Ripeti`,keepAll:`Mantieni tutto`,undoAll:`Annulla tutto`,previous:`Precedente`,bothChanged:e=>`Tu e ${e} avete cambiato la stessa cosa: resta la tua.`,unreadable:e=>`Impossibile leggere ${e}. Non viene modificato finché non è sistemato.`},pt:{loading:`A carregar a apresentação`,noDeck:`Isto não é uma apresentação`,version:`Idioma`,slides:`Diapositivos`,skipped:`Ignorada`,slideCount:e=>`${String(e)} slides`,slideOf:(e,t)=>`Diapositivo ${String(e)} de ${String(t)}`,present:`Apresentar`,exportTitle:`Exportar`,notes:`Notas do orador`,slide:`Diapositivo`,presenting:`A apresentar`,presentHelp:`← → passos · N notas · Esc sair`,noNotes:`Este diapositivo não tem notas`,next:`Seguinte`,addTitle:`Clique para adicionar um título`,addSubtitle:`Clique para adicionar um subtítulo`,addText:`Clique para adicionar texto`,addNotes:`Clique para adicionar notas`,newSlide:`Novo slide`,layout:`Layout`,insert:`Inserir`,textBox:`Caixa de texto`,picture:`Imagem`,video:`Vídeo`,shape:`Forma`,shapes:{rect:`Retângulo`,roundRect:`Retângulo arredondado`,ellipse:`Elipse`,triangle:`Triângulo`,rightArrow:`Seta`,line:`Linha`},slideMenu:e=>`Ações do slide ${String(e)}`,duplicate:`Duplicar`,remove:`Excluir`,hide:`Ocultar slide`,show:`Mostrar slide`,fill:`Preenchimento`,textColor:`Cor do texto`,size:`Tamanho`,bold:`Negrito`,cut:`Cortar`,copy:`Copiar`,paste:`Colar`,italic:`Itálico`,growFont:`Aumentar tamanho da fonte`,shrinkFont:`Diminuir tamanho da fonte`,arrange:`Organizar`,arrangeTo:{front:`Trazer para a frente`,forward:`Trazer para frente`,backward:`Enviar para trás`,back:`Enviar para trás`},preview:`Visualizar`,duration:`Duração`,noAnimation:`Nenhuma`,alignment:`Alinhamento`,align:{l:`Alinhar à esquerda`,ctr:`Centralizar`,r:`Alinhar à direita`,just:`Justificar`},resetLayout:`Redefinir layout`,animations:`Animações`,animationEffects:`Efeito`,animationStarts:`Início`,fromLayout:`Parte do layout`,animationHint:`Selecione uma forma para animá-la`,animationEarlier:`Antes`,animationLater:`Depois`,animationRemove:`Remover animação`,animationStart:{"on-click":`Ao clicar`,"with-previous":`Com a anterior`,"after-previous":`Após a anterior`},animationEffect:{appear:`Aparecer`,fade:`Esmaecer`,wipe:`Revelar`,"fly-in":`Entrar voando`,zoom:`Zoom`,disappear:`Desaparecer`,"fade-out":`Esmaecer ao sair`,"wipe-out":`Revelar ao sair`,"fly-out":`Sair voando`,"zoom-out":`Zoom de saída`,pulse:`Pulso`,path:`Trajetória`},codeWords:`O texto vem do código da apresentação`,changed:(e,t)=>t===1?`${e} mudou 1 coisa`:`${e} mudou ${String(t)} coisas`,changedElsewhere:e=>e===1?`1 mudança feita fora`:`${String(e)} mudanças feitas fora`,keep:`Manter`,undo:`Desfazer`,redo:`Refazer`,keepAll:`Manter tudo`,undoAll:`Desfazer tudo`,previous:`Anterior`,bothChanged:e=>`Você e ${e} mudaram a mesma coisa: a sua fica.`,unreadable:e=>`Não é possível ler ${e}. Ele não é editado até ser corrigido.`},ru:{loading:`Загрузка презентации`,noDeck:`Это не презентация`,version:`Язык`,slides:`Слайды`,skipped:`Пропущен`,slideCount:e=>`Слайдов: ${String(e)}`,slideOf:(e,t)=>`Слайд ${String(e)} из ${String(t)}`,present:`Показ`,exportTitle:`Экспорт`,notes:`Заметки докладчика`,slide:`Слайд`,presenting:`Идёт показ`,presentHelp:`← → шаги · N заметки · Esc выход`,noNotes:`У этого слайда нет заметок`,next:`Далее`,addTitle:`Щелкните, чтобы добавить заголовок`,addSubtitle:`Щелкните, чтобы добавить подзаголовок`,addText:`Щелкните, чтобы добавить текст`,addNotes:`Щелкните, чтобы добавить заметки`,newSlide:`Создать слайд`,layout:`Макет`,insert:`Вставить`,textBox:`Надпись`,picture:`Рисунок`,video:`Видео`,shape:`Фигура`,shapes:{rect:`Прямоугольник`,roundRect:`Скругленный прямоугольник`,ellipse:`Овал`,triangle:`Треугольник`,rightArrow:`Стрелка`,line:`Линия`},slideMenu:e=>`Действия со слайдом ${String(e)}`,duplicate:`Дублировать`,remove:`Удалить`,hide:`Скрыть слайд`,show:`Показать слайд`,fill:`Заливка`,textColor:`Цвет текста`,size:`Размер`,bold:`Полужирный`,cut:`Вырезать`,copy:`Копировать`,paste:`Вставить`,italic:`Курсив`,growFont:`Увеличить размер шрифта`,shrinkFont:`Уменьшить размер шрифта`,arrange:`Упорядочить`,arrangeTo:{front:`На передний план`,forward:`Переместить вперед`,backward:`Переместить назад`,back:`На задний план`},preview:`Просмотр`,duration:`Длительность`,noAnimation:`Нет`,alignment:`Выравнивание`,align:{l:`По левому краю`,ctr:`По центру`,r:`По правому краю`,just:`По ширине`},resetLayout:`Сбросить макет`,animations:`Анимация`,animationEffects:`Эффект`,animationStarts:`Начало`,fromLayout:`Часть макета`,animationHint:`Выберите фигуру, чтобы анимировать её`,animationEarlier:`Раньше`,animationLater:`Позже`,animationRemove:`Удалить анимацию`,animationStart:{"on-click":`По щелчку`,"with-previous":`С предыдущим`,"after-previous":`После предыдущего`},animationEffect:{appear:`Появление`,fade:`Выцветание`,wipe:`Стирание`,"fly-in":`Вылет`,zoom:`Масштабирование`,disappear:`Исчезновение`,"fade-out":`Угасание`,"wipe-out":`Стирание при выходе`,"fly-out":`Улет`,"zoom-out":`Масштабирование при выходе`,pulse:`Пульсация`,path:`Траектория`},codeWords:`Текст задан кодом презентации`,changed:(e,t)=>`${e}: изменений — ${String(t)}`,changedElsewhere:e=>`Изменений извне: ${String(e)}`,keep:`Оставить`,undo:`Отменить`,redo:`Повторить`,keepAll:`Оставить все`,undoAll:`Отменить все`,previous:`Назад`,bothChanged:e=>`Вы и ${e} изменили одно и то же: остается ваше.`,unreadable:e=>`Не удается прочитать ${e}. Он не редактируется, пока его не исправят.`},tr:{loading:`Sunu yükleniyor`,noDeck:`Bu bir sunu değil`,version:`Dil`,slides:`Slaytlar`,skipped:`Atlanıyor`,slideCount:e=>`${String(e)} slayt`,slideOf:(e,t)=>`Slayt ${String(e)} / ${String(t)}`,present:`Sun`,exportTitle:`Dışa aktar`,notes:`Konuşmacı notları`,slide:`Slayt`,presenting:`Sunuluyor`,presentHelp:`← → adımlar · N notlar · Esc bitir`,noNotes:`Bu slaytın notu yok`,next:`Sonraki`,addTitle:`Başlık eklemek için tıklayın`,addSubtitle:`Alt başlık eklemek için tıklayın`,addText:`Metin eklemek için tıklayın`,addNotes:`Not eklemek için tıklayın`,newSlide:`Yeni slayt`,layout:`Düzen`,insert:`Ekle`,textBox:`Metin kutusu`,picture:`Resim`,video:`Video`,shape:`Şekil`,shapes:{rect:`Dikdörtgen`,roundRect:`Yuvarlatılmış dikdörtgen`,ellipse:`Oval`,triangle:`Üçgen`,rightArrow:`Ok`,line:`Çizgi`},slideMenu:e=>`Slayt ${String(e)} eylemleri`,duplicate:`Çoğalt`,remove:`Sil`,hide:`Slaydı gizle`,show:`Slaydı göster`,fill:`Dolgu`,textColor:`Metin rengi`,size:`Boyut`,bold:`Kalın`,cut:`Kes`,copy:`Kopyala`,paste:`Yapıştır`,italic:`İtalik`,growFont:`Yazı Tipi Boyutunu Büyüt`,shrinkFont:`Yazı Tipi Boyutunu Küçült`,arrange:`Yerleştir`,arrangeTo:{front:`Öne Getir`,forward:`Öne getir`,backward:`Arkaya gönder`,back:`Arkaya Gönder`},preview:`Önizleme`,duration:`Süre`,noAnimation:`Yok`,alignment:`Hizalama`,align:{l:`Sola hizala`,ctr:`Ortala`,r:`Sağa hizala`,just:`İki yana yasla`},resetLayout:`Düzene sıfırla`,animations:`Animasyonlar`,animationEffects:`Efekt`,animationStarts:`Başlangıç`,fromLayout:`Düzenin parçası`,animationHint:`Animasyon eklemek için bir şekil seçin`,animationEarlier:`Daha önce`,animationLater:`Daha sonra`,animationRemove:`Animasyonu kaldır`,animationStart:{"on-click":`Tıklatınca`,"with-previous":`Öncekiyle birlikte`,"after-previous":`Öncekinden sonra`},animationEffect:{appear:`Belirme`,fade:`Soldurma`,wipe:`Silme`,"fly-in":`Uçarak gelme`,zoom:`Yakınlaştırma`,disappear:`Kaybolma`,"fade-out":`Solarak çıkma`,"wipe-out":`Silerek çıkma`,"fly-out":`Uçarak çıkma`,"zoom-out":`Uzaklaşarak çıkma`,pulse:`Darbe`,path:`Hareket yolu`},codeWords:`Metni sunumun kodundan gelir`,changed:(e,t)=>`${e} ${String(t)} şeyi değiştirdi`,changedElsewhere:e=>`Dışarıda ${String(e)} değişiklik yapıldı`,keep:`Tut`,undo:`Geri al`,redo:`Yinele`,keepAll:`Tümünü tut`,undoAll:`Tümünü geri al`,previous:`Önceki`,bothChanged:e=>`Sen ve ${e} aynı şeyi değiştirdiniz: seninki kalır.`,unreadable:e=>`${e} okunamıyor. Düzeltilene kadar düzenlenmez.`},vi:{loading:`Đang tải bản trình bày`,noDeck:`Đây không phải là bản trình bày`,version:`Ngôn ngữ`,slides:`Trang chiếu`,skipped:`Bỏ qua`,slideCount:e=>`${String(e)} trang chiếu`,slideOf:(e,t)=>`Trang chiếu ${String(e)}/${String(t)}`,present:`Trình chiếu`,exportTitle:`Xuất`,notes:`Ghi chú của người thuyết trình`,slide:`Trang chiếu`,presenting:`Đang trình chiếu`,presentHelp:`← → các bước · N ghi chú · Esc dừng`,noNotes:`Trang chiếu này không có ghi chú`,next:`Tiếp`,addTitle:`Bấm để thêm tiêu đề`,addSubtitle:`Bấm để thêm phụ đề`,addText:`Bấm để thêm văn bản`,addNotes:`Bấm để thêm ghi chú`,newSlide:`Trang chiếu mới`,layout:`Bố trí`,insert:`Chèn`,textBox:`Hộp văn bản`,picture:`Ảnh`,video:`Video`,shape:`Hình`,shapes:{rect:`Hình chữ nhật`,roundRect:`Hình chữ nhật bo góc`,ellipse:`Hình bầu dục`,triangle:`Tam giác`,rightArrow:`Mũi tên`,line:`Đường thẳng`},slideMenu:e=>`Thao tác với trang chiếu ${String(e)}`,duplicate:`Nhân bản`,remove:`Xóa`,hide:`Ẩn trang chiếu`,show:`Hiện trang chiếu`,fill:`Tô màu`,textColor:`Màu văn bản`,size:`Cỡ`,bold:`Đậm`,cut:`Cắt`,copy:`Sao chép`,paste:`Dán`,italic:`Nghiêng`,growFont:`Tăng cỡ phông`,shrinkFont:`Giảm cỡ phông`,arrange:`Sắp xếp`,arrangeTo:{front:`Đưa lên trước cùng`,forward:`Đưa lên trước`,backward:`Đưa ra sau`,back:`Đưa xuống sau cùng`},preview:`Xem trước`,duration:`Thời lượng`,noAnimation:`Không có`,alignment:`Căn chỉnh`,align:{l:`Căn trái`,ctr:`Căn giữa`,r:`Căn phải`,just:`Căn đều`},resetLayout:`Đặt lại theo bố trí`,animations:`Hoạt hình`,animationEffects:`Hiệu ứng`,animationStarts:`Bắt đầu`,fromLayout:`Thuộc bố cục`,animationHint:`Chọn một hình để tạo hoạt hình`,animationEarlier:`Sớm hơn`,animationLater:`Muộn hơn`,animationRemove:`Xóa hoạt hình`,animationStart:{"on-click":`Khi bấm`,"with-previous":`Cùng với trước đó`,"after-previous":`Sau trước đó`},animationEffect:{appear:`Xuất hiện`,fade:`Mờ dần`,wipe:`Xóa`,"fly-in":`Bay vào`,zoom:`Thu phóng`,disappear:`Biến mất`,"fade-out":`Mờ dần khi thoát`,"wipe-out":`Xóa khi thoát`,"fly-out":`Bay ra`,"zoom-out":`Thu nhỏ khi thoát`,pulse:`Nhịp đập`,path:`Đường chuyển động`},codeWords:`Văn bản do mã của bản trình bày tạo`,changed:(e,t)=>`${e} đã thay đổi ${String(t)} chỗ`,changedElsewhere:e=>`${String(e)} thay đổi từ bên ngoài`,keep:`Giữ`,undo:`Hoàn tác`,redo:`Làm lại`,keepAll:`Giữ tất cả`,undoAll:`Hoàn tác tất cả`,previous:`Trước`,bothChanged:e=>`Bạn và ${e} cùng thay đổi một chỗ: thay đổi của bạn được giữ.`,unreadable:e=>`Không đọc được ${e}. Tệp sẽ không được chỉnh sửa cho đến khi được sửa.`},th:{loading:`กำลังโหลดงานนำเสนอ`,noDeck:`นี่ไม่ใช่งานนำเสนอ`,version:`ภาษา`,slides:`สไลด์`,skipped:`ข้าม`,slideCount:e=>`${String(e)} สไลด์`,slideOf:(e,t)=>`สไลด์ ${String(e)} จาก ${String(t)}`,present:`นำเสนอ`,exportTitle:`ส่งออก`,notes:`บันทึกของผู้บรรยาย`,slide:`สไลด์`,presenting:`กำลังนำเสนอ`,presentHelp:`← → ขั้น · N บันทึก · Esc หยุด`,noNotes:`สไลด์นี้ไม่มีบันทึก`,next:`ถัดไป`,addTitle:`คลิกเพื่อเพิ่มชื่อเรื่อง`,addSubtitle:`คลิกเพื่อเพิ่มชื่อเรื่องรอง`,addText:`คลิกเพื่อเพิ่มข้อความ`,addNotes:`คลิกเพื่อเพิ่มบันทึก`,newSlide:`สไลด์ใหม่`,layout:`เค้าโครง`,insert:`แทรก`,textBox:`กล่องข้อความ`,picture:`รูปภาพ`,video:`วิดีโอ`,shape:`รูปร่าง`,shapes:{rect:`สี่เหลี่ยมผืนผ้า`,roundRect:`สี่เหลี่ยมผืนผ้ามุมมน`,ellipse:`วงรี`,triangle:`สามเหลี่ยม`,rightArrow:`ลูกศร`,line:`เส้น`},slideMenu:e=>`การทำงานของสไลด์ ${String(e)}`,duplicate:`ทำสำเนา`,remove:`ลบ`,hide:`ซ่อนสไลด์`,show:`แสดงสไลด์`,fill:`เติม`,textColor:`สีข้อความ`,size:`ขนาด`,bold:`ตัวหนา`,cut:`ตัด`,copy:`คัดลอก`,paste:`วาง`,italic:`ตัวเอียง`,growFont:`เพิ่มขนาดฟอนต์`,shrinkFont:`ลดขนาดฟอนต์`,arrange:`จัดเรียง`,arrangeTo:{front:`นำไปไว้ด้านหน้าสุด`,forward:`นำไปข้างหน้า`,backward:`ส่งไปข้างหลัง`,back:`ส่งไปไว้ด้านหลังสุด`},preview:`แสดงตัวอย่าง`,duration:`ระยะเวลา`,noAnimation:`ไม่มี`,alignment:`การจัดแนว`,align:{l:`จัดชิดซ้าย`,ctr:`กึ่งกลาง`,r:`จัดชิดขวา`,just:`เต็มแนว`},resetLayout:`รีเซ็ตเป็นเค้าโครง`,animations:`ภาพเคลื่อนไหว`,animationEffects:`เอฟเฟกต์`,animationStarts:`เริ่ม`,fromLayout:`เป็นส่วนหนึ่งของเลย์เอาต์`,animationHint:`เลือกรูปร่างเพื่อเพิ่มภาพเคลื่อนไหว`,animationEarlier:`ก่อนหน้า`,animationLater:`ภายหลัง`,animationRemove:`เอาภาพเคลื่อนไหวออก`,animationStart:{"on-click":`เมื่อคลิก`,"with-previous":`พร้อมกับก่อนหน้า`,"after-previous":`หลังจากก่อนหน้า`},animationEffect:{appear:`ปรากฏ`,fade:`จางเข้า`,wipe:`เช็ด`,"fly-in":`บินเข้า`,zoom:`ซูม`,disappear:`หายไป`,"fade-out":`จางออก`,"wipe-out":`เช็ดออก`,"fly-out":`บินออก`,"zoom-out":`ซูมออก`,pulse:`ชีพจร`,path:`เส้นทางการเคลื่อนไหว`},codeWords:`ข้อความมาจากโค้ดของงานนำเสนอ`,changed:(e,t)=>`${e} เปลี่ยน ${String(t)} จุด`,changedElsewhere:e=>`มีการเปลี่ยนจากภายนอก ${String(e)} จุด`,keep:`เก็บไว้`,undo:`เลิกทำ`,redo:`ทำซ้ำ`,keepAll:`เก็บทั้งหมด`,undoAll:`เลิกทำทั้งหมด`,previous:`ก่อนหน้า`,bothChanged:e=>`คุณและ ${e} เปลี่ยนจุดเดียวกัน: ใช้ของคุณ`,unreadable:e=>`อ่าน ${e} ไม่ได้ จะแก้ไขไม่ได้จนกว่าจะซ่อม`},hi:{loading:`प्रस्तुति लोड हो रही है`,noDeck:`यह प्रस्तुति नहीं है`,version:`भाषा`,slides:`स्लाइड`,skipped:`छोड़ा गया`,slideCount:e=>`${String(e)} स्लाइड`,slideOf:(e,t)=>`स्लाइड ${String(e)} / ${String(t)}`,present:`प्रस्तुत करें`,exportTitle:`निर्यात करें`,notes:`वक्ता के नोट्स`,slide:`स्लाइड`,presenting:`प्रस्तुति चल रही है`,presentHelp:`← → चरण · N नोट्स · Esc रोकें`,noNotes:`इस स्लाइड के लिए कोई नोट नहीं`,next:`अगला`,addTitle:`शीर्षक जोड़ने के लिए क्लिक करें`,addSubtitle:`उपशीर्षक जोड़ने के लिए क्लिक करें`,addText:`टेक्स्ट जोड़ने के लिए क्लिक करें`,addNotes:`नोट्स जोड़ने के लिए क्लिक करें`,newSlide:`नई स्लाइड`,layout:`लेआउट`,insert:`सम्मिलित करें`,textBox:`टेक्स्ट बॉक्स`,picture:`चित्र`,video:`वीडियो`,shape:`आकृति`,shapes:{rect:`आयत`,roundRect:`गोलाकार आयत`,ellipse:`अंडाकार`,triangle:`त्रिभुज`,rightArrow:`तीर`,line:`रेखा`},slideMenu:e=>`स्लाइड ${String(e)} की क्रियाएँ`,duplicate:`डुप्लिकेट`,remove:`हटाएँ`,hide:`स्लाइड छिपाएँ`,show:`स्लाइड दिखाएँ`,fill:`भरण`,textColor:`टेक्स्ट का रंग`,size:`आकार`,bold:`बोल्ड`,cut:`काटें`,copy:`कॉपी करें`,paste:`चिपकाएँ`,italic:`तिरछा`,growFont:`फ़ॉन्ट आकार बढ़ाएँ`,shrinkFont:`फ़ॉन्ट आकार घटाएँ`,arrange:`व्यवस्थित करें`,arrangeTo:{front:`सामने लाएँ`,forward:`आगे लाएँ`,backward:`पीछे भेजें`,back:`पीछे भेजें`},preview:`पूर्वावलोकन`,duration:`अवधि`,noAnimation:`कोई नहीं`,alignment:`संरेखण`,align:{l:`बाएँ संरेखित`,ctr:`बीच में`,r:`दाएँ संरेखित`,just:`जस्टिफ़ाई`},resetLayout:`लेआउट पर रीसेट करें`,animations:`एनिमेशन`,animationEffects:`प्रभाव`,animationStarts:`प्रारंभ`,fromLayout:`लेआउट का हिस्सा`,animationHint:`एनिमेट करने के लिए कोई आकृति चुनें`,animationEarlier:`पहले`,animationLater:`बाद में`,animationRemove:`एनिमेशन हटाएँ`,animationStart:{"on-click":`क्लिक करने पर`,"with-previous":`पिछले के साथ`,"after-previous":`पिछले के बाद`},animationEffect:{appear:`प्रकट होना`,fade:`फ़ेड`,wipe:`वाइप`,"fly-in":`उड़कर आना`,zoom:`ज़ूम`,disappear:`ग़ायब होना`,"fade-out":`फ़ेड आउट`,"wipe-out":`वाइप आउट`,"fly-out":`उड़कर जाना`,"zoom-out":`ज़ूम आउट`,pulse:`पल्स`,path:`गति पथ`},codeWords:`इसके शब्द प्रस्तुति के कोड से आते हैं`,changed:(e,t)=>t===1?`${e} ने 1 बदलाव किया`:`${e} ने ${String(t)} बदलाव किए`,changedElsewhere:e=>e===1?`बाहर 1 बदलाव हुआ`:`बाहर ${String(e)} बदलाव हुए`,keep:`रखें`,undo:`पूर्ववत करें`,redo:`फिर से करें`,keepAll:`सभी रखें`,undoAll:`सभी पूर्ववत करें`,previous:`पिछला`,bothChanged:e=>`आपने और ${e} ने एक ही चीज़ बदली: आपका बदलाव रहता है।`,unreadable:e=>`${e} पढ़ा नहीं जा सकता। ठीक होने तक इसे संपादित नहीं किया जाता।`}});function $(){return Ht.of(y()?.locale)}var Ut=`@max-[40rem]:hidden`;function Wt(e){let{deck:t,name:n}=e,r=t?.masters.find(e=>e.layouts.some(e=>e.name===n)),i=r?.layouts.find(e=>e.name===n);if(!t||!r||!i)return null;let a=i.shapes.flatMap(e=>{let t=e.placeholder?.type;if(t===void 0||t===`dt`||t===`ftr`||t===`sldNum`)return[];let n=e.frame??vt(r,t)?.frame;return n?[{type:t,frame:n}]:[]});return(0,q.jsx)(`svg`,{viewBox:`0 0 ${String(t.width)} ${String(t.height)}`,className:`bg-sheet text-lead border-rule size-auto w-full rounded-sm border`,style:{aspectRatio:`${String(t.width)} / ${String(t.height)}`},"data-testid":`deck-layout-picture`,"aria-hidden":!0,children:a.map(({type:e,frame:n},r)=>{let i=e===`title`||e===`ctrTitle`,a=i?1:Math.max(1,Math.min(5,Math.floor(n.height/(t.height/9)))),o=n.height/(a+1);return Array.from({length:a},(e,a)=>(0,q.jsx)(`rect`,{x:n.left,y:n.top+o*(a+1)-t.height*(i?.03:.012),width:n.width*(i?.7:.9-a*.12),height:t.height*(i?.06:.024),rx:t.height*.01,fill:`currentColor`,opacity:i?.7:.35},`${String(r)}-${String(a)}`))})})}var Gt=[`rect`,`roundRect`,`ellipse`,`triangle`,`rightArrow`,`line`];function Kt(e){let t=$(),r=(0,K.useRef)(null),i=(0,K.useRef)(null),a=(t,n)=>(0,q.jsx)(`input`,{ref:t===`picture`?r:i,type:`file`,accept:n,className:`hidden`,"data-testid":`deck-insert-${t}-file`,onChange:n=>{let r=n.target.files?.[0];n.target.value=``,r&&e.onInsert({kind:t,file:r})}}),o=(e.disabled??!1)||e.layouts.length===0,s=`grid w-96 grid-cols-2 gap-1 p-1.5 text-xs`,c=`flex-col items-stretch gap-1 p-1.5`;return(0,q.jsxs)(`div`,{className:`flex shrink-0 items-center gap-0.5`,"data-testid":`deck-bar`,children:[(0,q.jsx)(x,{size:`icon`,variant:`ghost`,className:`size-7`,"aria-label":t.undo,title:t.undo,"data-testid":`deck-undo`,disabled:!e.canUndo,onClick:e.onUndo,children:(0,q.jsx)(I,{className:`size-3.5`})}),(0,q.jsx)(x,{size:`icon`,variant:`ghost`,className:`size-7`,"aria-label":t.redo,title:t.redo,"data-testid":`deck-redo`,disabled:!e.canRedo,onClick:e.onRedo,children:(0,q.jsx)(ye,{className:`size-3.5`})}),(0,q.jsx)(`span`,{className:`bg-rule mx-1 h-4 w-px shrink-0`}),(0,q.jsxs)(x,{size:`sm`,variant:`ghost`,className:`rounded-r-none pr-1.5`,"aria-label":t.newSlide,disabled:o,"data-testid":`deck-new`,onClick:()=>{let t=e.layout??e.layouts[0];t!==void 0&&e.onNew(t)},children:[(0,q.jsx)(ze,{className:`size-3.5`}),(0,q.jsx)(`span`,{className:Ut,children:t.newSlide})]}),(0,q.jsxs)(z,{children:[(0,q.jsx)(Re,{asChild:!0,children:(0,q.jsx)(x,{size:`icon`,variant:`ghost`,className:`-ml-0.5 h-7 w-5 rounded-l-none`,"aria-label":t.layout,disabled:o,"data-testid":`deck-new-more`,children:(0,q.jsx)(A,{className:`size-3`})})}),(0,q.jsx)(V,{align:`start`,className:s,children:e.layouts.map(t=>(0,q.jsxs)(R,{className:c,"data-testid":`deck-new-layout`,"data-layout":t,onSelect:()=>{e.onNew(t)},children:[(0,q.jsx)(Wt,{deck:e.deck,name:t}),(0,q.jsx)(`span`,{className:`truncate`,children:t})]},t))})]}),(0,q.jsxs)(z,{children:[(0,q.jsx)(Re,{asChild:!0,children:(0,q.jsxs)(x,{size:`sm`,variant:`ghost`,disabled:(e.disabled??!1)||e.layout===void 0,"data-testid":`deck-layout`,children:[(0,q.jsx)(Ue,{className:`size-3.5`}),(0,q.jsx)(`span`,{className:Ut,children:t.layout}),(0,q.jsx)(A,{className:`size-3`})]})}),(0,q.jsx)(V,{align:`start`,className:s,children:e.layouts.map(t=>(0,q.jsxs)(R,{className:n(c,t===e.layout&&`bg-here`),"aria-current":t===e.layout?`true`:void 0,"data-testid":`deck-layout-item`,"data-layout":t,onSelect:()=>{e.onLayout(t)},children:[(0,q.jsx)(Wt,{deck:e.deck,name:t}),(0,q.jsx)(`span`,{className:`truncate`,children:t})]},t))})]}),(0,q.jsxs)(z,{children:[(0,q.jsx)(Re,{asChild:!0,children:(0,q.jsxs)(x,{size:`sm`,variant:`ghost`,disabled:e.disabled,"data-testid":`deck-insert`,children:[(0,q.jsx)(`span`,{className:Ut,children:t.insert}),(0,q.jsx)(Ge,{className:`hidden size-3.5 @max-[40rem]:block`}),(0,q.jsx)(A,{className:`size-3`})]})}),(0,q.jsxs)(V,{align:`start`,className:`text-xs`,children:[(0,q.jsxs)(R,{"data-testid":`deck-insert-picture`,onSelect:()=>{r.current?.click()},children:[(0,q.jsx)(F,{className:`size-3.5`}),t.picture]}),(0,q.jsxs)(Ie,{children:[(0,q.jsxs)(Fe,{"data-testid":`deck-insert-shape`,children:[(0,q.jsx)(Ge,{className:`size-3.5`}),t.shape]}),(0,q.jsx)(Pe,{className:`text-xs`,children:Gt.map(n=>(0,q.jsx)(R,{"data-testid":`deck-insert-geometry`,"data-geometry":n,onSelect:()=>{e.onInsert({kind:`shape`,geometry:n})},children:t.shapes[n]},n))})]}),(0,q.jsxs)(R,{"data-testid":`deck-insert-textbox`,onSelect:()=>{e.onInsert({kind:`textbox`})},children:[(0,q.jsx)(qe,{className:`size-3.5`}),t.textBox]}),(0,q.jsxs)(R,{"data-testid":`deck-insert-movie`,onSelect:()=>{i.current?.click()},children:[(0,q.jsx)(He,{className:`size-3.5`}),t.video]})]})]}),a(`picture`,`image/png,image/jpeg,image/gif,image/webp,image/svg+xml`),a(`movie`,`video/mp4,video/quicktime,video/webm`)]})}var qt=3,Jt=400,Yt=3e4;function Xt({item:e,version:t,revision:r,width:i,height:a,moment:o,playing:s=!1,bare:l,onLoaded:u,onObjects:d,overlay:f,className:p,edit:m=!1,onCommands:h,onEdit:v,hold:y=!1,interactive:b=!1}){let x=$(),S=g(),ee=(0,K.useRef)(null),[C,te]=(0,K.useState)(),[w,T]=(0,K.useState)(),[ne,re]=(0,K.useState)(),[ie,E]=(0,K.useState)(),[ae,oe]=(0,K.useState)(),D=_(ae),O=(0,K.useRef)(1),k=(0,K.useRef)({shown:C,pending:w,moment:o,playing:s,onLoaded:u,onObjects:d,onEdit:v,hold:y});(0,K.useEffect)(()=>{k.current={shown:C,pending:w,moment:o,playing:s,onLoaded:u,onObjects:d,onEdit:v,hold:y}});let se=e=>e===void 0?void 0:ee.current?.querySelector(`iframe[data-frame="${String(e.id)}"]`)?.contentWindow,A=(e,t)=>{se(e)?.postMessage({allyhub:!0,...t},`*`)};(0,K.useEffect)(()=>{h?.(C?e=>{A(k.current.shown,e)}:void 0)},[h,C]);let ce=n=>c(S,`video/stage`,{item:e,version:t,start:{t:n},chrome:!1,...m?{edit:!0}:{},...k.current.playing?{play:!0}:{}}).then(e=>(oe(e.probe),e.url));(0,K.useEffect)(()=>{let e=!0;return ce(k.current.moment??0).then(t=>{e&&(te({id:O.current++,src:t}),T(void 0),E(void 0))},t=>{e&&E(t instanceof Error?t.message:String(t))}),()=>{e=!1}},[e,t]);let le=(0,K.useRef)(r),[de,fe]=(0,K.useState)(0),[pe,me]=(0,K.useState)(),he=(0,K.useRef)(0),_e=()=>{he.current>=qt||(he.current++,setTimeout(()=>{fe(e=>e+1)},Jt*he.current))};(0,K.useEffect)(()=>{if(r===le.current&&de===0)return;r!==le.current&&(he.current=0),le.current=r;let e=!0;return ce(k.current.moment??0).then(t=>{e&&T({id:O.current++,src:t})},t=>{me(`video/stage: ${t instanceof Error?t.message:String(t)}`),e&&_e()}),()=>{e=!1}},[r,de]),(0,K.useEffect)(()=>{if(!w)return;let e=setTimeout(()=>{T(void 0)},Yt);return()=>{clearTimeout(e)}},[w]),(0,K.useEffect)(()=>{let e=e=>{let t=ge(e.data);if(!t)return;let{shown:n,pending:r}=k.current,i=[n,r].find(t=>t!==void 0&&se(t)===e.source);if(!i)return;let a=i.id===r?.id;if(t.type===`loaded`){if(i.loaded={kind:t.kind,timeline:t.timeline,text:t.text,reads:t.reads,problems:t.problems,mix:t.mix,...t.deck===void 0?{}:{deck:t.deck}},a)return;re(t.timeline),E(void 0),k.current.onLoaded?.(i.loaded)}else if(t.type===`error`)me(`${a?`pending`:`shown`}: ${t.message}`),a?(T(void 0),_e()):E(t.message);else if(t.type===`deck-text`||t.type===`deck-text-done`||t.type===`deck-selection`)a||k.current.onEdit?.(t);else if(t.type===`time`){if(a){if(!i.loaded||k.current.hold)return;te(i),T(void 0),re(i.loaded.timeline),k.current.shown=i,k.current.pending=void 0,k.current.onLoaded?.(i.loaded)}let e=k.current.moment;if(!k.current.playing&&e!==void 0&&Math.abs(t.t-e)>.001){A(i,{type:`seek`,t:e});return}t.playing||A(i,{type:`objects`,t:t.t})}else t.type===`objects`&&(a||k.current.onObjects?.(t))};return window.addEventListener(`message`,e),()=>{window.removeEventListener(`message`,e)}},[]),(0,K.useEffect)(()=>{!y&&w?.loaded&&A(w,{type:`seek`,t:k.current.moment??0})},[y]),(0,K.useEffect)(()=>{o!==void 0&&C&&(s||A(C,{type:`pause`}),A(C,{type:`seek`,t:o}),s&&A(C,{type:`play`}))},[o,s,C?.id]);let[ve,j]=ne?[ne.width,ne.height]:[i,a],ye=(e,t)=>(0,q.jsx)(`iframe`,{"data-frame":e.id,src:e.src,title:x.slide,...D?{sandbox:`allow-scripts`}:{},allow:`autoplay`,"data-testid":t?`deck-stage-pending`:`deck-stage`,className:n(`absolute -inset-0.5 size-[calc(100%+4px)] border-0`,!b||t?`pointer-events-none`:``,`transition-opacity duration-(--allyhub-dur-set)`,(t||ne===void 0)&&`opacity-0`)},e.id);return(0,q.jsx)(`div`,{className:n(`flex size-full min-h-0 items-center justify-center [container-type:size]`,p),"data-testid":`deck-canvas`,"data-shown":C?.id,"data-pending":w===void 0?void 0:`${String(w.id)}${w.loaded?` loaded`:``}`,"data-error":pe,children:(0,q.jsxs)(`div`,{ref:ee,className:n(`bg-background relative overflow-hidden [container-type:inline-size]`,l!==!0&&`shadow-sheet border`),style:{width:`min(100cqw - 2px, (100cqh - 2px) * ${String(ve/j)})`,aspectRatio:`${String(ve)} / ${String(j)}`},"data-testid":`deck-picture`,children:[C&&D!==void 0?ye(C,!1):null,w&&D!==void 0?ye(w,!0):null,ne||ie!==void 0?null:(0,q.jsx)(`div`,{className:`animate-in fade-in fill-mode-both absolute inset-0 flex items-center justify-center delay-700`,children:(0,q.jsx)(ue,{label:x.loading})}),ie===void 0?null:(0,q.jsx)(`div`,{className:`bg-background/90 text-problem-text absolute inset-x-0 top-0 p-2 text-xs`,"data-testid":`deck-failed`,children:ie}),f]})})}function Zt(e){let t=$(),[n,r]=(0,K.useState)(0),i=e.changes.length;if(i===0)return null;let a=Math.min(n,i-1),o=e.changes[a];if(!o)return null;let s=t=>{let n=(a+t+i)%i;r(n);let o=e.changes[n];o&&e.onShow(o)};return(0,q.jsxs)(`div`,{className:`bg-sheet border-agent/40 flex items-center gap-1 rounded-md border px-2 py-1 text-xs shadow-sm`,"data-testid":`deck-changes`,children:[(0,q.jsx)(`span`,{className:`bg-agent size-1.5 rounded-full`}),(0,q.jsx)(`span`,{className:`text-agent-text mr-1`,"data-testid":`deck-changes-count`,children:e.agent===void 0?t.changedElsewhere(i):t.changed(e.agent,i)}),i>1?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(x,{size:`icon`,variant:`ghost`,className:`size-6`,"aria-label":t.previous,onClick:()=>{s(-1)},children:(0,q.jsx)(se,{className:`size-3.5`})}),(0,q.jsx)(x,{size:`icon`,variant:`ghost`,className:`size-6`,"aria-label":t.next,onClick:()=>{s(1)},children:(0,q.jsx)(Me,{className:`size-3.5`})})]}):null,(0,q.jsx)(x,{size:`sm`,variant:`ghost`,className:`h-6`,"data-testid":`deck-change-undo`,onClick:()=>{e.onUndo(o)},children:t.undo}),(0,q.jsx)(x,{size:`sm`,variant:`ghost`,className:`h-6`,"data-testid":`deck-change-keep`,onClick:()=>{e.onKeep(o)},children:t.keep}),i>1?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(x,{size:`sm`,variant:`ghost`,className:`h-6`,"data-testid":`deck-changes-undo`,onClick:()=>{e.onAll(`undo`)},children:t.undoAll}),(0,q.jsx)(x,{size:`sm`,variant:`ghost`,className:`h-6`,"data-testid":`deck-changes-keep`,onClick:()=>{e.onAll(`keep`)},children:t.keepAll})]}):null]})}function Qt(e){if(typeof e!=`object`||!e)return;let t=e;return Array.isArray(t.slides)&&typeof t.width==`number`?e:void 0}var $t=e=>e.file.generate===void 0?void 0:{block:e.id.split(`/`)[0]??e.id,slide:e.id.slice(e.id.indexOf(`/`)+1)};function en(e){let t=$t(e);return e.shapes.filter(e=>e.level===`slide`).map(n=>({key:`${e.id}/${n.name}`,name:n.name,address:t?{slide:t.block,shape:`${t.slide}/${n.name}`}:{slide:e.id,shape:n.name},shape:n,own:n.placeholder===void 0&&n.sources.frame.from===`slide`,typed:t===void 0&&(n.kind===`table`&&n.sources.frame.from===`slide`||n.text!==void 0&&(n.kind===`placeholder`||n.kind===`textbox`||n.kind===`autoshape`))}))}var tn=e=>{let t=e=>Math.round(e/Q*10)/10;return{x:t(e.left),y:t(e.top),w:t(e.width),h:t(e.height)}},nn=e=>({left:e.x*Q,top:e.y*Q,width:e.w*Q,height:e.h*Q});function rn(e,t){return e.slides.find(e=>e.id===t.slide)?.shapes?.[t.shape]}var an=.008,on=(e,t)=>[e,e+t/2,e+t];function sn(e,t,n){let r;for(let i of e)for(let e of t){let t=e-i;Math.abs(t)<=n&&(!r||Math.abs(t)<Math.abs(r.shift))&&(r={shift:t,at:e})}return r}function cn(e,t,n,r){let i=[...on(0,n.width),...t.flatMap(e=>on(e.left,e.width))],a=[...on(0,n.height),...t.flatMap(e=>on(e.top,e.height))],o=sn(on(e.left,e.width),i,r),s=sn(on(e.top,e.height),a,r);return{frame:{...e,left:e.left+(o?.shift??0),top:e.top+(s?.shift??0)},guides:[...o?[{axis:`x`,at:o.at}]:[],...s?[{axis:`y`,at:s.at}]:[]]}}var ln=[`nw`,`n`,`ne`,`e`,`se`,`s`,`sw`,`w`],un=Q*2;function dn(e,t,n,r,i={}){let a=e.left,o=e.top,s=e.left+e.width,c=e.top+e.height;t.includes(`w`)&&(a+=n),t.includes(`e`)&&(s+=n),t.includes(`n`)&&(o+=r),t.includes(`s`)&&(c+=r);let l=[];if(i.snap){let{others:e,slide:n,tol:r}=i.snap,u=[0,n.width/2,n.width,...e.flatMap(e=>on(e.left,e.width))],d=[0,n.height/2,n.height,...e.flatMap(e=>on(e.top,e.height))],f=(e,t,n)=>{let i=sn([e],t,r);return i?(l.push({axis:n,at:i.at}),i.at):e};t.includes(`w`)&&(a=f(a,u,`x`)),t.includes(`e`)&&(s=f(s,u,`x`)),t.includes(`n`)&&(o=f(o,d,`y`)),t.includes(`s`)&&(c=f(c,d,`y`))}if(s-a<un&&(t.includes(`w`)?a=s-un:s=a+un),c-o<un&&(t.includes(`n`)?o=c-un:c=o+un),i.keep&&t.length===2&&e.width>0&&e.height>0){let n=e.width/e.height,r=s-a,i=c-o;if(r/n>=i){let e=r/n;t.includes(`n`)?o=c-e:c=o+e}else{let e=i*n;t.includes(`w`)?a=s-e:s=a+e}}return{frame:{left:a,top:o,width:s-a,height:c-o},guides:l}}function fn(e){let t=0;return e.map(e=>((e.start??`on-click`)===`on-click`&&(t+=1),t))}function pn(e){return(e.text?.paragraphs[0]?.runs??[]).map(e=>e.text).join(``).trim()}function mn(e,t,n){let r=n===`front`?Math.max(e,...t,0)+1:n===`back`?Math.min(e,...t,0)-1:e+(n===`forward`?1:-1);return r===0?void 0:r}function hn(e,t,n){let r=[...e],[i]=r.splice(t,1);return i&&r.splice(Math.max(0,Math.min(r.length,t+n)),0,i),r}function gn(e,[t,n],r){let i=(Array.isArray(e)?e:[]).map(e=>Array.isArray(e)?[...e]:[e]);for(;i.length<=t;)i.push([]);let a=i[t]??[];for(;a.length<=n;)a.push(``);return a[n]=r??``,i.some(e=>e.some(e=>e!==``))?i:void 0}function _n(e){let t=e.map(e=>({...e,text:e.text.replaceAll(`\v`,` `).replace(/\s+$/u,``)}));if(t.every(e=>e.text===``))return;let[n]=t;if(t.length===1&&n?.level===0)return n.text;let r=[],i=[r];for(let e of t){let t=Math.min(Math.max(0,e.level),i.length);for(;i.length-1>t;)i.pop();if(t===i.length){let e=[];i.at(-1)?.push(e),i.push(e)}i.at(-1)?.push(e.text)}return r}function vn(e){let t=e.edit.slide;return typeof t==`string`?t:t.id}function yn(e){let t=e.edit;if(t.op===`shape`||t.op===`unplace`||t.op===`text`)return t.shape}function bn(e,t){let n=e;for(let e of t.split(`.`)){if(typeof n!=`object`||!n)return;n=n[e]}return n}function xn(e,t){let n=e.op===`add`?e.slide.id:e.slide,r=t.slides.findIndex(e=>e.id===n),i=t.slides[r],a=r>0?t.slides[r-1]?.id??null:null;switch(e.op){case`add`:return[{op:`remove`,slide:e.slide.id}];case`remove`:return i?[{op:`add`,slide:i,after:a}]:[];case`move`:return[{op:`move`,slide:e.slide,after:a}];case`layout`:return i?.layout===void 0?[]:[{op:`layout`,slide:e.slide,layout:i.layout}];case`hidden`:return[{op:`hidden`,slide:e.slide,hidden:i?.hidden??!1}];case`shape`:{let t=i?.shapes?.[e.shape];return[{op:`shape`,slide:e.slide,shape:e.shape,set:Object.fromEntries(Object.keys(e.set).map(e=>[e,bn(t,e)]))}]}case`unplace`:{let t=i?.shapes?.[e.shape];return t?[{op:`shape`,slide:e.slide,shape:e.shape,set:{...t}}]:[]}case`duplicate`:return[{op:`remove`,slide:e.id}];case`reset`:return[];case`animations`:return[{op:`animations`,slide:e.slide,animations:i?.animations??[]}];case`transition`:return[{op:`transition`,slide:e.slide,...i?.transition?{transition:i.transition}:{}}]}}function Sn(e,t){let n=t.slides.find(t=>t.id===e.slide);switch(e.op){case`text`:return[{op:`text`,slide:e.slide,shape:e.shape,words:n?.text?.[e.shape]}];case`notes`:return[{op:`notes`,slide:e.slide,notes:n?.notes}];case`remove`:return n?[...Object.entries(n.text??{}).map(([t,n])=>({op:`text`,slide:e.slide,shape:t,words:n})),...n.notes===void 0?[]:[{op:`notes`,slide:e.slide,notes:n.notes}]]:[]}}function Cn(e){return e.file===`slides`?{slides:xn(e.edit,e.before),script:[]}:{slides:[],script:Sn(e.edit,e.before)}}var wn=e=>JSON.stringify([e.file,e.edit.op,vn(e),yn(e)??``,e.edit.op===`shape`?Object.keys(e.edit.set).sort():[]]),Tn={read:e=>yt(e).file,edits:Mt,apply:wt,merge:Ft},En={read:It,edits:Bt,apply:Rt,merge:Vt},Dn={slides:[]},On={parts:[],slides:[]},kn=class{text;value;problem;session;format;heard;constructor(e,t,n,r){this.session=e,this.format=t,this.heard=r,this.text=e.text;let i=t.read(e.text);this.value=i??n,this.problem=i===void 0?e.path:void 0,e.attach({save:()=>this.problem!==void 0||this.text===e.text?void 0:this.text,take:(n,r)=>{let i=t.read(r),a=t.read(n);if(a===void 0){this.problem=e.path,this.heard.updated();return}let o=i===void 0||this.problem!==void 0?{text:n,conflicts:[]}:t.merge(r,this.value,n);this.problem=void 0,this.text=o?.text??n,this.value=t.read(this.text)??a,o&&o.conflicts.length>0&&this.heard.conflicts(o.conflicts),i!==void 0&&this.heard.changed(t.edits(i,a),i),this.heard.updated()}})}edit(e){if(this.problem===void 0&&e.length!==0){for(let t of e)this.text=this.format.apply(this.text,t);this.value=this.format.read(this.text)??this.value,this.session.edited()}}},An=1500,jn=`slides-editor.seen:`,Mn=300,Nn=[`error`,`saving`,`unsaved`,`saved`],Pn=class e{slides;script;changes=[];conflicts=[];snapshot;listeners=new Set;stops=[];done=[];undone=[];host;remembering;remembered={};static async open(t,n){let r=new e;r.host=t;let[i,o]=await Promise.all([a.open(t,n.slides),a.open(t,n.script)]),s=e=>({changed:(t,n)=>{r.noted(t.map(t=>e(t,n)))},conflicts:e=>{r.conflicts=e},updated:()=>{r.update()}});r.slides=new kn(i,Tn,Dn,s((e,t)=>({file:`slides`,edit:e,before:t}))),r.script=new kn(o,En,On,s((e,t)=>({file:`script`,edit:e,before:t}))),r.stops=[i,o].map(e=>e.onState(()=>{r.update()}));let c=async e=>{let{value:n}=await t[`storage/get`]({key:jn+e}).catch(()=>({value:null}));return typeof n==`string`?n:void 0},[l,u]=await Promise.all([c(n.slides),c(n.script)]);r.remembered={...l===void 0?{}:{slides:l},...u===void 0?{}:{script:u}};let d=l===void 0?void 0:Tn.read(l);d&&r.noted(Mt(d,r.slides.value).map(e=>({file:`slides`,edit:e,before:d})));let f=u===void 0?void 0:En.read(u);return f&&r.noted(Bt(f,r.script.value).map(e=>({file:`script`,edit:e,before:f}))),r.update(),r}subscribe=e=>(this.listeners.add(e),()=>this.listeners.delete(e));get=()=>(this.snapshot??={slides:this.slides.value,script:this.script.value,state:Nn.find(e=>this.slides.session.state===e||this.script.session.state===e)??`saved`,problem:this.slides.problem??this.script.problem,changes:this.changes,conflicts:this.conflicts,canUndo:this.done.length>0,canRedo:this.undone.length>0},this.snapshot);update(){this.snapshot=void 0;for(let e of this.listeners)e();clearTimeout(this.remembering),this.remembering=setTimeout(()=>{this.remember()},Mn)}remember(){let e=[...this.changes].reverse().map(e=>({c:e,undo:Cn(e)})),t=this.slides.text,n=this.script.text;for(let{undo:r}of e){for(let e of r.slides)t=wt(t,e);for(let e of r.script)n=Rt(n,e)}let r=(e,t,n)=>{t!==n&&this.host[`storage/set`]({key:jn+e,value:n}).catch(()=>void 0)};r(this.slides.session.path,this.remembered.slides,t),r(this.script.session.path,this.remembered.script,n),this.remembered={slides:t,script:n}}copies(){return{slides:this.slides.value,script:this.script.value}}apply(e,t,n){let r=this.copies();this.slides.edit(e),this.script.edit(t);let i=this.copies();if(r.slides===i.slides&&r.script===i.script)return;let a=Date.now(),o=this.done.at(-1);n!==void 0&&o?.group===n&&a-o.at<An?(o.after=i,o.at=a):this.done.push({before:r,after:i,group:n,at:a}),this.undone=[]}replay(e,t){this.slides.edit(Mt(e.slides,t.slides)),this.script.edit(Bt(e.script,t.script)),this.update()}undoStep(){let e=this.done.pop();e&&(this.undone.push(e),this.replay(e.after,e.before))}redoStep(){let e=this.undone.pop();e&&(this.done.push(e),this.replay(e.before,e.after))}noted(e){let t=new Set(this.changes.map(wn));this.changes=[...this.changes,...e.filter(e=>!t.has(wn(e)))]}edit(e,t){let n=new Set([...(e.slides??[]).map(e=>({file:`slides`,edit:e,before:Dn})),...(e.script??[]).map(e=>({file:`script`,edit:e,before:On}))].map(e=>`${vn(e)}\u0000${yn(e)??``}`));this.changes=this.changes.filter(e=>!n.has(`${vn(e)}\u0000${yn(e)??``}`)),this.apply(e.slides??[],e.script??[],t),this.update()}keep(e){this.changes=this.changes.filter(t=>t!==e),this.update()}undo(e){let t=Cn(e);this.changes=this.changes.filter(t=>t!==e),this.apply(t.slides,t.script),this.update()}all(e){for(let t of[...this.changes].reverse())e===`undo`?this[e](t):this.keep(t)}async flush(){await Promise.all([this.slides.session.flush(),this.script.session.flush()])}async close(){for(let e of this.stops.splice(0))e();clearTimeout(this.remembering),this.remember(),await Promise.all([this.slides.session.close(),this.script.session.close()])}};function Fn(e){return e.map(e=>({key:e.key,...e.title===void 0?{}:{title:e.title},steps:e.steps&&e.steps.length>0?e.steps:[e.still],still:e.still,hidden:e.hidden===!0}))}function In(e,t,n){let r=e.find(e=>e.key===t);if(r)return r.steps[Math.max(0,Math.min(n,r.steps.length-1))]}function Ln(e,t,n,r=!1){let i=r?e.filter(e=>!e.hidden):e,a=i.findIndex(e=>e.key===t.slide),o=i[a];if(!o)return i[0]?{slide:i[0].key,step:0}:t;let s=t.step+n;if(s>=0&&s<o.steps.length)return{slide:o.key,step:s};let c=i[a+n];return c?{slide:c.key,step:n>0?0:c.steps.length-1}:t}var Rn=(e,t)=>`${String(e/t*100)}%`,zn={n:`cursor-ns-resize`,s:`cursor-ns-resize`,e:`cursor-ew-resize`,w:`cursor-ew-resize`,ne:`cursor-nesw-resize`,sw:`cursor-nesw-resize`,nw:`cursor-nwse-resize`,se:`cursor-nwse-resize`},Bn={nw:[0,0],n:[.5,0],ne:[1,0],e:[1,.5],se:[1,1],s:[.5,1],sw:[0,1],w:[0,.5]};function Vn({onWords:e}){let t=(0,K.useRef)(null),[r,i]=(0,K.useState)(!1);(0,K.useEffect)(()=>{t.current?.focus({preventScroll:!0})},[]);let a=n=>{t.current&&(t.current.value=``),n&&e(n)};return(0,q.jsx)(`textarea`,{ref:t,"data-sink":!0,"data-testid":`deck-sink`,"aria-hidden":!0,tabIndex:-1,rows:1,className:n(`absolute top-full left-0 resize-none outline-none`,r?`bg-sheet border-pencil z-10 mt-1 w-48 rounded-sm border px-1 text-sm`:`pointer-events-none size-px opacity-0`),onCompositionStart:()=>{i(!0)},onCompositionEnd:e=>{i(!1),a(e.data)},onInput:e=>{r||a(e.currentTarget.value)}})}function Hn(e){let t=fn(e.animations??[]),r=$(),i=(0,K.useRef)(null),a=(0,K.useRef)(void 0),[o,s]=(0,K.useState)(),[c,l]=(0,K.useState)([]),u=()=>{let t=i.current?.getBoundingClientRect().width??0;return t>0?e.width/t:1},d=e=>{let t=i.current?.getBoundingClientRect();return t?{x:(e.clientX-t.left)/t.width,y:(e.clientY-t.top)/t.height}:{x:0,y:0}},f=(t,n,r)=>{if(t.button!==0)return;if(t.stopPropagation(),t.shiftKey&&r===`move`){e.onSelect(e.selected.includes(n.key)?e.selected.filter(e=>e!==n.key):[...e.selected,n.key]);return}let i=e.selected.includes(n.key)&&r===`move`;e.selected.includes(n.key)||e.onSelect([n.key]);let o=e.frameOf(n);a.current={key:n.key,handle:r,start:{x:t.clientX,y:t.clientY},from:o,moved:!1,last:o,with:i?e.shapes.filter(t=>t.key!==n.key&&e.selected.includes(t.key)).map(t=>({key:t.key,from:e.frameOf(t)})):[]},t.currentTarget.setPointerCapture(t.pointerId)},p=e=>({[e.key]:e.last,...Object.fromEntries(e.with.map(t=>[t.key,{...t.from,left:t.from.left+e.last.left-e.from.left,top:t.from.top+e.last.top-e.from.top}]))}),m=()=>{let t=a.current;if(a.current=void 0,l([]),t?.moved&&e.onDrop(p(t)),o){let t=Math.min(o.from.x,o.to.x)*e.width,n=Math.max(o.from.x,o.to.x)*e.width,r=Math.min(o.from.y,o.to.y)*e.height,i=Math.max(o.from.y,o.to.y)*e.height;e.onSelect(e.shapes.filter(a=>{let o=e.frameOf(a);return o.left<n&&o.left+o.width>t&&o.top<i&&o.top+o.height>r}).map(e=>e.key)),s(void 0)}},h=t=>{if(o){s({...o,to:d(t)});return}let n=a.current;if(!n)return;if(!(t.buttons&1)){m();return}let r=u(),i=(t.clientX-n.start.x)*r,c=(t.clientY-n.start.y)*r;if(!n.moved&&Math.hypot(t.clientX-n.start.x,t.clientY-n.start.y)<3)return;n.moved=!0;let f=new Set([n.key,...n.with.map(e=>e.key)]),h=e.shapes.filter(e=>!f.has(e.key)).map(e.frameOf),g={width:e.width,height:e.height},_=t.altKey?void 0:{others:h,slide:g,tol:e.width*an},v=n.handle===`move`?_?cn({...n.from,left:n.from.left+i,top:n.from.top+c},h,g,_.tol):{frame:{...n.from,left:n.from.left+i,top:n.from.top+c},guides:[]}:dn(n.from,n.handle,i,c,{keep:t.shiftKey,..._?{snap:_}:{}});n.last=v.frame,l(v.guides),e.onDrag(p(n))},g=e=>e===`title`||e===`ctrTitle`?r.addTitle:e===`subTitle`?r.addSubtitle:r.addText;return(0,q.jsxs)(`div`,{ref:i,className:n(`absolute inset-0`,e.typing!==void 0&&`pointer-events-none`),"data-testid":`deck-overlay`,onPointerDown:t=>{if(t.target!==t.currentTarget||t.button!==0)return;t.currentTarget.setPointerCapture(t.pointerId),e.onSelect([]);let n=d(t);s({from:n,to:n})},onPointerMove:h,onPointerUp:m,onPointerCancel:m,onLostPointerCapture:m,children:[e.shapes.map(i=>{let a=e.frameOf(i),o=e.selected.includes(i.key),s=i.shape.kind===`placeholder`&&i.shape.text?.empty===!0,c=e.typing===i.key,l=t.filter((t,n)=>e.animations?.[n]?.shape===i.name);return(0,q.jsxs)(`div`,{"data-testid":`deck-shape`,"data-key":i.key,"data-selected":o?``:void 0,title:i.typed||!i.shape.text?void 0:r.codeWords,className:n(`absolute`,c?`outline-pencil pointer-events-none outline-1`:`cursor-move`,!o&&!c&&`hover:outline-pencil/60 hover:outline-1`,e.marked.has(i.key)&&!o&&`outline-agent outline-2`,s&&!c&&`outline-rule-strong outline-1 outline-dashed`),style:{left:Rn(a.left,e.width),top:Rn(a.top,e.height),width:Rn(a.width,e.width),height:Rn(a.height,e.height)},onPointerDown:e=>{f(e,i,`move`)},onDoubleClick:t=>{i.typed&&e.onType(i.key,d(t))},onContextMenu:t=>{t.preventDefault(),o||e.onSelect([i.key]),e.onMenu(i.key,{x:t.clientX,y:t.clientY})},children:[l.length>0?(0,q.jsx)(`span`,{className:`bg-pencil text-sheet pointer-events-none absolute top-0 left-0 z-10 -translate-x-full px-1 text-xs tabular-nums`,"data-testid":`deck-animation-number`,children:l.join(`, `)}):null,s&&!c?(0,q.jsx)(`span`,{className:`text-muted-foreground pointer-events-none absolute inset-0 flex items-center justify-center p-1 text-center text-[1.6cqw] leading-tight`,children:g(i.shape.placeholder?.type)}):null,o&&!c?(0,q.jsxs)(q.Fragment,{children:[i.typed&&e.selected.length===1?(0,q.jsx)(Vn,{onWords:t=>{e.onWords(i.key,t)}}):null,(0,q.jsx)(`div`,{className:`border-pencil animate-in fade-in pointer-events-none absolute inset-0 border`}),ln.map(e=>(0,q.jsx)(`span`,{"data-handle":e,className:n(`bg-sheet border-pencil animate-in fade-in absolute size-2 -translate-1/2 rounded-full border`,zn[e]),style:{left:`${String(Bn[e][0]*100)}%`,top:`${String(Bn[e][1]*100)}%`},onPointerDown:t=>{f(t,i,e)}},e))]}):null]},i.key)}),o?(0,q.jsx)(`div`,{"data-testid":`deck-marquee`,className:`border-pencil bg-pencil/10 pointer-events-none absolute border`,style:{left:`${String(Math.min(o.from.x,o.to.x)*100)}%`,top:`${String(Math.min(o.from.y,o.to.y)*100)}%`,width:`${String(Math.abs(o.to.x-o.from.x)*100)}%`,height:`${String(Math.abs(o.to.y-o.from.y)*100)}%`}}):null,c.map(t=>(0,q.jsx)(`div`,{"data-testid":`deck-guide`,className:`bg-pencil pointer-events-none absolute`,style:t.axis===`x`?{left:Rn(t.at,e.width),top:0,bottom:0,width:1}:{top:Rn(t.at,e.height),left:0,right:0,height:1}},`${t.axis}${String(t.at)}`))]})}var Un=3e3,Wn=160;function Gn(e){let t=$(),r=(0,K.useRef)(null),[i,a]=(0,K.useState)(e.from),[o,s]=(0,K.useState)(!1),[c,l]=(0,K.useState)(()=>{let{slide:t,step:n}=e.from,r=e.slides.find(e=>e.key===t)?.steps[n];return r!==void 0&&e.plays(t)?{from:e.startOf(t)??r,to:r}:void 0}),[u,d]=(0,K.useState)(!1),f=(0,K.useRef)(()=>void 0);(0,K.useEffect)(()=>{let e;return f.current=()=>{d(!1),clearTimeout(e),e=setTimeout(()=>{d(!0)},Un)},f.current(),()=>{clearTimeout(e)}},[]);let[p,m]=(0,K.useState)(!1),h=(0,K.useRef)(!1),g=e=>{h.current||(h.current=!0,m(!0),setTimeout(()=>{_.current.props.onStop(e)},Wn))},_=(0,K.useRef)({at:i,props:e});(0,K.useEffect)(()=>{_.current={at:i,props:e}});let v=e.slides.find(e=>e.key===i.slide)?.steps[i.step],y=(e,t)=>{let n=_.current.props.slides.find(t=>t.key===e.slide),r=n?.steps[e.step];if(a(e),!n||r===void 0)return;if(t<0){l(void 0);return}let i=e.step===0?_.current.props.startOf(n.key)??r:n.steps[e.step-1]??r;l({from:i,to:r})};(0,K.useEffect)(()=>{if(!c||e.plays(i.slide))return;let t=setTimeout(()=>{l(void 0)},Math.max(0,(c.to-c.from)*1e3));return()=>{clearTimeout(t)}},[c,i.slide,e]),(0,K.useEffect)(()=>{r.current?.requestFullscreen().catch(()=>void 0);let e=e=>{let{at:t,props:n}=_.current;e.key===`Escape`?(e.preventDefault(),document.fullscreenElement&&document.exitFullscreen().catch(()=>void 0),g(t)):[`ArrowRight`,` `,`PageDown`,`Enter`].includes(e.key)?(e.preventDefault(),y(Ln(n.slides,t,1,!0),1)):[`ArrowLeft`,`PageUp`,`Backspace`].includes(e.key)?(e.preventDefault(),y(Ln(n.slides,t,-1,!0),-1)):(e.key===`n`||e.key===`N`)&&s(e=>!e)},t=()=>{document.fullscreenElement||g(_.current.at)};return document.addEventListener(`fullscreenchange`,t),window.addEventListener(`keydown`,e),()=>{document.removeEventListener(`fullscreenchange`,t),window.removeEventListener(`keydown`,e)}},[]);let b=e.slides.filter(e=>!e.hidden),x=b.findIndex(e=>e.key===i.slide),S=b[x+1];return(0,q.jsxs)(`div`,{ref:r,className:n(`fixed inset-0 z-50 flex bg-media`,p?`animate-out fade-out pointer-events-none fill-mode-forwards`:`animate-in fade-in`,u&&`cursor-none`),role:`dialog`,"aria-label":t.presenting,"data-testid":`deck-present`,onPointerMove:()=>{f.current()},onClick:()=>{y(Ln(e.slides,i,1,!0),1)},children:[(0,q.jsx)(Xt,{item:e.item,version:e.version,revision:e.revision,width:e.width,height:e.height,moment:c?c.from:v,playing:c!==void 0,bare:!0,className:`flex-1 bg-media`}),o?(0,q.jsxs)(`aside`,{className:`bg-background text-foreground flex w-80 shrink-0 flex-col gap-3 overflow-y-auto p-4`,"data-testid":`deck-present-notes`,onClick:e=>{e.stopPropagation()},children:[(0,q.jsx)(`p`,{className:`text-muted-foreground font-mono text-xs`,children:t.slideOf(x+1,b.length)}),(0,q.jsx)(`p`,{className:`text-read whitespace-pre-wrap`,children:e.notesOf(i.slide)??t.noNotes}),S?(0,q.jsxs)(`p`,{className:`text-muted-foreground text-xs`,children:[t.next,`: `,S.title??S.key]}):null]}):null,(0,q.jsx)(`p`,{"data-idle":u,className:`text-on-media/60 pointer-events-none absolute bottom-2 left-1/2 -translate-x-1/2 transition-opacity data-[idle=true]:opacity-0 text-xs`,children:t.presentHelp})]})}function Kn(e,t,n){return Array.from({length:10},(r,i)=>{let a=i%2==0?n:n*.45,o=Math.PI/5*i-Math.PI/2;return`${(e+a*Math.cos(o)).toFixed(2)},${(t+a*Math.sin(o)).toFixed(2)}`}).join(` `)}function qn(e){return(0,q.jsx)(`svg`,{viewBox:`0 0 20 20`,width:e.size,height:e.size,fill:`none`,stroke:`currentColor`,strokeWidth:1.4,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":!0,children:e.children})}var Jn=Kn(10,10.5,8);function Yn(){let e=(0,K.useId)();return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`clipPath`,{id:e,children:(0,q.jsx)(`rect`,{x:`0`,y:`0`,width:`10`,height:`20`})}),(0,q.jsx)(`polygon`,{points:Jn}),(0,q.jsx)(`polygon`,{points:Jn,fill:`currentColor`,stroke:`none`,clipPath:`url(#${e})`})]})}var Xn={none:()=>(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`polygon`,{points:Jn,opacity:.45}),(0,q.jsx)(`line`,{x1:`3.5`,y1:`16.5`,x2:`16.5`,y2:`3.5`})]}),appear:()=>(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`polygon`,{points:Kn(10,10.5,5.5),fill:`currentColor`}),(0,q.jsx)(`path`,{d:`M10 1.5v1.6M2.6 6.6l1.4.8M17.4 6.6l-1.4.8M4.4 17l1.1-1.1M15.6 17l-1.1-1.1`})]}),fade:()=>(0,q.jsx)(`polygon`,{points:Jn,strokeDasharray:`1.6 1.9`}),wipe:()=>(0,q.jsx)(Yn,{}),"fly-in":()=>(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`polygon`,{points:Kn(10,7.5,6),fill:`currentColor`}),(0,q.jsx)(`path`,{d:`M6 15v3M10 15.5v3.5M14 15v3`})]}),zoom:()=>(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`polygon`,{points:Kn(10,10.5,4),fill:`currentColor`}),(0,q.jsx)(`path`,{d:`M2 6V2h4M14 2h4v4M18 14v4h-4M6 18H2v-4`})]})};function Zn(e){return(0,q.jsx)(qn,{size:e.size??20,children:Xn[e.effect]?.()??(0,q.jsx)(`polygon`,{points:Jn})})}function Qn(e){return(0,q.jsxs)(qn,{size:14,children:[(0,q.jsx)(`path`,{d:`M2 17 7.5 4 13 17M4 12.5h7`,strokeWidth:1.6}),(0,q.jsx)(`path`,{d:e.up?`M14.2 6 16.2 3.6 18.2 6`:`M14.2 3.6 16.2 6 18.2 3.6`,strokeWidth:1.6})]})}var $n=[`appear`,`fade`,`wipe`,`fly-in`,`zoom`],er=[`on-click`,`with-previous`,`after-previous`],tr=`flex h-14 flex-col items-center justify-center gap-1 rounded-sm text-xs disabled:opacity-40 hover:bg-here aria-pressed:bg-here aria-pressed:ring-1 aria-pressed:ring-rule-strong`;function nr(e){let t=$(),i=e.animations.findIndex(t=>t.shape===e.shape),a=e.animations[i],o=fn(e.animations),s=t=>{e.onChange(e.animations.map((e,n)=>n===i?{...e,...t}:e))},c=t=>{let n=e.shape;n!==void 0&&(t===void 0?e.onChange(e.animations.filter((e,t)=>t!==i)):a?s({effect:t}):e.onChange([...e.animations,{shape:n,effect:t}]))};return(0,q.jsxs)(T,{open:e.open,onOpenChange:e.onOpenChange,children:[(0,q.jsx)(D,{asChild:!0,children:(0,q.jsxs)(x,{size:`sm`,variant:`ghost`,"data-testid":`deck-animations-open`,"aria-label":t.animations,children:[(0,q.jsx)(Ke,{className:`size-3.5`}),(0,q.jsx)(`span`,{className:`@max-[40rem]:hidden`,children:t.animations})]})}),(0,q.jsxs)(E,{align:`end`,className:`w-96 p-2`,"data-testid":`deck-animations`,onInteractOutside:e=>{let t=e.detail.originalEvent.target;t instanceof Element&&t.closest(`[data-testid="slides-editor"]`)&&e.preventDefault()},children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between gap-2 pb-1`,children:[(0,q.jsx)(`span`,{className:`min-w-0 truncate text-sm`,"data-testid":`deck-animation-shape`,children:e.shape===void 0?t.animationHint:e.nameOf(e.shape)}),(0,q.jsxs)(x,{size:`sm`,variant:`ghost`,className:`shrink-0`,disabled:e.animations.length===0,"data-testid":`deck-animation-preview`,onClick:e.onPreview,children:[(0,q.jsx)(de,{className:`size-3.5`}),t.preview]})]}),(0,q.jsxs)(`div`,{className:`grid grid-cols-6 gap-1`,role:`radiogroup`,"aria-label":t.animationEffects,children:[(0,q.jsxs)(`button`,{type:`button`,className:tr,"aria-pressed":e.shape!==void 0&&!a,disabled:e.shape===void 0,"data-testid":`deck-animation-effect-none`,onClick:()=>{c(void 0)},children:[(0,q.jsx)(Zn,{effect:`none`}),t.noAnimation]}),$n.map(n=>(0,q.jsxs)(`button`,{type:`button`,className:tr,"aria-pressed":a?.effect===n,disabled:e.shape===void 0,"data-testid":`deck-animation-effect-${n}`,onClick:()=>{c(n)},children:[(0,q.jsx)(Zn,{effect:n}),t.animationEffect[n]]},n))]}),a?(0,q.jsxs)(`div`,{className:`flex items-center gap-2 pt-2 text-xs`,children:[(0,q.jsx)(`span`,{className:`text-muted-foreground`,children:t.animationStarts}),(0,q.jsxs)(C,{value:a.start??`on-click`,onValueChange:e=>{s({start:e})},children:[(0,q.jsx)(re,{size:`sm`,className:`min-w-0 flex-1 text-xs`,"data-testid":`deck-animation-start`,children:(0,q.jsx)(w,{})}),(0,q.jsx)(te,{children:er.map(e=>(0,q.jsx)(ae,{value:e,className:`text-xs`,"data-testid":`deck-animation-start-${e}`,children:t.animationStart[e]},e))})]}),(0,q.jsx)(`span`,{className:`text-muted-foreground`,children:t.duration}),(0,q.jsx)(Le,{type:`number`,min:0,step:.25,"aria-label":t.duration,"data-testid":`deck-animation-duration`,className:`h-7 w-16 text-xs`,value:a.duration??gt[a.effect],onChange:e=>{let t=Number(e.target.value);Number.isFinite(t)&&t>=0&&s({duration:t})}})]}):null,e.animations.length>0?(0,q.jsx)(`ol`,{className:`mt-2 flex flex-col border-t pt-1`,children:e.animations.map((i,a)=>(0,q.jsxs)(`li`,{"data-testid":`deck-animation`,"data-shape":i.shape,className:n(`flex h-7 items-center gap-1 rounded-sm`,i.shape===e.shape&&`bg-here`),children:[(0,q.jsxs)(`button`,{type:`button`,className:`flex min-w-0 flex-1 items-center gap-2 px-1 text-left text-xs`,"data-testid":`deck-animation-pick`,onClick:()=>{e.onPick(i.shape)},children:[(0,q.jsx)(`span`,{className:`text-muted-foreground w-4 shrink-0 text-right tabular-nums`,children:o[a]}),(0,q.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.nameOf(i.shape)}),(0,q.jsx)(`span`,{className:`text-muted-foreground shrink-0`,children:t.animationEffect[i.effect]})]}),(0,q.jsx)(x,{size:`icon`,variant:`ghost`,className:`size-6 shrink-0`,"aria-label":t.animationEarlier,title:t.animationEarlier,"data-testid":`deck-animation-earlier`,disabled:a===0,onClick:()=>{e.onChange(hn(e.animations,a,-1))},children:(0,q.jsx)(U,{className:`size-3.5`})}),(0,q.jsx)(x,{size:`icon`,variant:`ghost`,className:`size-6 shrink-0`,"aria-label":t.animationLater,title:t.animationLater,"data-testid":`deck-animation-later`,disabled:a===e.animations.length-1,onClick:()=>{e.onChange(hn(e.animations,a,1))},children:(0,q.jsx)(Be,{className:`size-3.5`})}),(0,q.jsx)(x,{size:`icon`,variant:`ghost`,className:`size-6 shrink-0`,"aria-label":t.animationRemove,title:t.animationRemove,"data-testid":`deck-animation-remove`,onClick:()=>{e.onChange(e.animations.filter((e,t)=>t!==a))},children:(0,q.jsx)(r,{className:`size-3.5`})})]},`${String(a)}:${i.shape}:${i.effect}`))}):null]})]})}var rr=6,ir=320,ar=e=>`slides-editor.pictures:${e}`;function or(e){try{let t=localStorage.getItem(ar(e));return t===null?{}:JSON.parse(t)}catch{return{}}}async function sr(e){try{let t=new Image;t.src=e,await t.decode();let n=document.createElement(`canvas`);return n.width=ir,n.height=Math.round(ir*t.naturalHeight/t.naturalWidth),n.getContext(`2d`)?.drawImage(t,0,0,n.width,n.height),n.toDataURL(`image/webp`,.8)}catch{return}}function cr(e,t,n,r,i,a){let o=g(),[s,l]=(0,K.useState)(()=>or(e)),[u,d]=(0,K.useState)(e);u!==e&&(d(e),l(or(e)));let f=(0,K.useRef)(new Map),p=i.map(e=>`${e.key}@${String(e.still)}`).join(`,`);return(0,K.useEffect)(()=>{let r=new AbortController,s=()=>r.signal.aborted;return(async()=>{let r=Math.max(0,i.findIndex(e=>e.key===a)),u=i.map((e,t)=>({slide:e,far:Math.abs(t-r)})).sort((e,t)=>e.far-t.far).map(e=>e.slide),d={};for(let e=0;e<u.length;e+=rr){if(s())return;let r=u.slice(e,e+rr);try{let{stills:e}=await c(o,`video/stills`,{item:t,version:n,moments:r.map(e=>e.still)});if(s())return;let i=Object.fromEntries(r.flatMap((t,n)=>{let r=e[n]?.image;return r?[[t.key,`data:${r.mime};base64,${r.data}`]]:[]}));Object.assign(d,i),l(e=>({...e,...i}))}catch{}}let p={};for(let[e,t]of Object.entries(d)){let n=f.current.get(e),r=n?.of===t?n.picture:await sr(t);r!==void 0&&(f.current.set(e,{of:t,picture:r}),p[e]=r)}try{localStorage.setItem(ar(e),JSON.stringify(p))}catch{}})(),()=>{r.abort()}},[o,e,t,n,r,p]),s}function lr(e){let t=$(),r=cr(`${e.project}|${e.item}|${e.version}`,e.item,e.version,e.revision,e.slides,e.shown),i=(0,K.useRef)(void 0),[a,o]=(0,K.useState)(),[s,c]=(0,K.useState)(),[l,u]=(0,K.useState)(),d=(e,t)=>{let n=t.currentTarget.getBoundingClientRect();return{key:e,after:t.clientY>n.top+n.height/2}},f=(0,K.useCallback)(e=>{e?.scrollIntoView({block:`nearest`})},[]),p=t=>{let n=i.current;if(i.current=void 0,n!==void 0&&t!==void 0&&n!==t.key){let r=e.slides.findIndex(e=>e.key===t.key),i=t.after?t.key:e.slides[r-1]?.key??null;i!==n&&e.onMove?.(n,i)}o(void 0),u(void 0)};return(0,q.jsx)(`nav`,{className:`flex h-full w-44 shrink-0 flex-col border-r @max-[36rem]:w-28`,"aria-label":t.slides,"data-testid":`deck-rail`,children:(0,q.jsx)(`ol`,{className:`min-h-0 flex-1 space-y-2 overflow-y-auto p-2`,children:e.slides.map((m,h)=>{let g=r[m.key];return(0,q.jsxs)(`li`,{"data-testid":`deck-page`,"data-key":m.key,className:n(`group/slide relative flex gap-1.5`,a===m.key&&`opacity-40`),draggable:e.onMove!==void 0,onContextMenu:t=>{e.onAction&&(t.preventDefault(),c(m.key))},onDragStart:e=>{e.dataTransfer.effectAllowed=`move`,i.current=m.key,o(m.key)},onDragOver:e=>{i.current!==void 0&&(e.preventDefault(),u(d(m.key,e)))},onDrop:e=>{e.preventDefault(),p(d(m.key,e))},onDragEnd:()=>{p()},children:[l?.key===m.key&&a!==m.key?(0,q.jsx)(`span`,{className:n(`bg-pencil absolute inset-x-0 h-0.5`,l.after?`-bottom-1`:`-top-1`),"data-testid":`deck-drop`}):null,(0,q.jsx)(`span`,{className:`text-muted-foreground w-4 pt-1 text-right font-mono text-micro`,children:String(h+1)}),(0,q.jsxs)(`button`,{type:`button`,ref:m.key===e.shown?f:void 0,className:n(`bg-muted/40 relative min-w-0 flex-1 overflow-hidden rounded-sm border transition-colors`,m.key===e.shown?`border-pencil ring-pencil ring-1`:`hover:border-rule-strong`,m.hidden&&`opacity-50`),style:{aspectRatio:String(e.aspect)},onClick:()=>{e.onShow(m.key)},"aria-label":m.title??m.key,"aria-current":m.key===e.shown?`page`:void 0,children:[g?(0,q.jsx)(`img`,{src:g,alt:``,className:`animate-in fade-in size-full object-cover`,draggable:!1}):null,m.hidden?(0,q.jsx)(Ve,{className:`text-muted-foreground absolute right-1 bottom-1 size-3`,"aria-label":t.skipped}):null,e.marked?.has(m.key)?(0,q.jsx)(`span`,{className:`bg-agent absolute top-1 right-1 size-1.5 rounded-full`,"data-testid":`deck-page-marked`}):null]}),e.onAction?(0,q.jsxs)(z,{open:s===m.key,onOpenChange:e=>{c(e?m.key:void 0)},children:[(0,q.jsx)(Re,{asChild:!0,children:(0,q.jsx)(`button`,{type:`button`,className:`bg-sheet/90 text-muted-foreground hover:text-foreground absolute top-1 right-1 rounded-sm opacity-0 transition-opacity group-hover/slide:opacity-100 focus:opacity-100 data-[state=open]:opacity-100`,"aria-label":t.slideMenu(h+1),"data-testid":`deck-page-menu`,children:(0,q.jsx)(je,{className:`size-3.5`})})}),(0,q.jsxs)(V,{align:`start`,className:`text-xs`,children:[(0,q.jsxs)(R,{"data-testid":`deck-page-new`,onSelect:()=>{e.onAction?.(m.key,`new`)},children:[(0,q.jsx)(ze,{className:`size-3.5`}),t.newSlide]}),e.made?.(m.key)?null:(0,q.jsxs)(R,{"data-testid":`deck-page-duplicate`,onSelect:()=>{e.onAction?.(m.key,`duplicate`)},children:[(0,q.jsx)(Te,{className:`size-3.5`}),t.duplicate]}),(0,q.jsxs)(R,{"data-testid":`deck-page-hide`,onSelect:()=>{e.onAction?.(m.key,`hide`)},children:[m.hidden?(0,q.jsx)(G,{className:`size-3.5`}):(0,q.jsx)(Ve,{className:`size-3.5`}),m.hidden?t.show:t.hide]}),e.made?.(m.key)?null:(0,q.jsxs)(R,{variant:`destructive`,"data-testid":`deck-page-remove`,onSelect:()=>{e.onAction?.(m.key,`remove`)},children:[(0,q.jsx)(De,{className:`size-3.5`}),t.remove]})]})]}):null]},m.key)})})})}var ur=S(`inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-[color,box-shadow] outline-none hover:bg-muted hover:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,{variants:{variant:{default:`bg-transparent`,outline:`border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground`},size:{default:`h-9 min-w-9 px-2`,sm:`h-8 min-w-8 px-1.5`,lg:`h-10 min-w-10 px-2.5`}},defaultVariants:{variant:`default`,size:`default`}});function dr({className:e,variant:t,size:r,...i}){return(0,q.jsx)(Ze,{"data-slot":`toggle`,className:n(ur({variant:t,size:r,className:e})),...i})}var fr=K.createContext({size:`default`,variant:`default`,spacing:0});function pr({className:e,variant:t,size:r,spacing:i=0,children:a,...o}){return(0,q.jsx)(rt,{"data-slot":`toggle-group`,"data-variant":t,"data-size":r,"data-spacing":i,style:{"--gap":i},className:n(`group/toggle-group flex w-fit items-center gap-[--spacing(var(--gap))] rounded-md data-[spacing=default]:data-[variant=outline]:shadow-xs`,e),...o,children:(0,q.jsx)(fr.Provider,{value:{variant:t,size:r,spacing:i},children:a})})}function mr({className:e,children:t,variant:r,size:i,...a}){let o=K.useContext(fr);return(0,q.jsx)(X,{"data-slot":`toggle-group-item`,"data-variant":o.variant||r,"data-size":o.size||i,"data-spacing":o.spacing,className:n(ur({variant:o.variant||r,size:o.size||i}),`w-auto min-w-0 shrink-0 px-3 focus:z-10 focus-visible:z-10`,`data-[spacing=0]:rounded-none data-[spacing=0]:shadow-none data-[spacing=0]:first:rounded-l-md data-[spacing=0]:last:rounded-r-md data-[spacing=0]:data-[variant=outline]:border-l-0 data-[spacing=0]:data-[variant=outline]:first:border-l`,e),...a,children:t})}var hr=[8,9,10,10.5,11,12,14,16,18,20,24,28,32,36,40,44,48,54,60,66,72,80,88,96];function gr(e,t){return(t>0?hr.find(t=>t>e):hr.findLast(t=>t<e))??Math.max(1,e+t*8)}var _r=[`lt1`,`dk1`,`lt2`,`dk2`,`accent1`,`accent2`,`accent3`,`accent4`,`accent5`,`accent6`],vr=[`frame`,`text`,`fill`,`line`,`z`,`crop`],yr={l:ke,ctr:Oe,r:Ae,just:Ee};function br(e,t){if(e!=null)return typeof e==`string`?t.colors[e]:e.rgb}function xr(e){let t=e.icon;return(0,q.jsxs)(T,{children:[(0,q.jsx)(D,{asChild:!0,children:(0,q.jsxs)(x,{size:`icon`,variant:`ghost`,className:`relative size-7 shrink-0`,"aria-label":e.label,title:e.label,"data-testid":`${e.testid}-open`,children:[(0,q.jsx)(t,{className:`size-3.5`}),(0,q.jsx)(`span`,{className:`border-rule absolute inset-x-1.5 bottom-1 h-0.5 rounded-full border-0`,style:{background:e.shown}})]})}),(0,q.jsx)(E,{align:`start`,className:`w-auto p-2`,children:(0,q.jsx)(`div`,{className:`grid grid-cols-5 gap-1`,role:`radiogroup`,"aria-label":e.label,"data-testid":e.testid,children:_r.map(t=>(0,q.jsx)(`button`,{type:`button`,role:`radio`,"aria-checked":e.value===t,"aria-label":t,"data-color":t,className:n(`border-rule size-6 rounded-sm border`,e.value===t&&`ring-pencil ring-2 ring-offset-1`),style:{background:e.theme.colors[t]},onClick:()=>{e.onPick(t)}},t))})})]})}var Sr=[{how:`front`,icon:W},{how:`forward`,icon:U},{how:`backward`,icon:Be},{how:`back`,icon:We}];function Cr(e){let t=$();return(0,q.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,q.jsx)(Le,{type:`number`,min:1,max:4e3,step:1,"aria-label":t.size,title:t.size,"data-testid":`deck-text-size`,className:`h-7 w-16 pr-6 text-xs [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none`,value:e.size??``,onChange:t=>{let n=Number(t.target.value);Number.isFinite(n)&&n>0&&e.onSize(n,!0)}}),(0,q.jsxs)(z,{children:[(0,q.jsx)(Re,{asChild:!0,children:(0,q.jsx)(`button`,{type:`button`,"aria-label":t.size,"data-testid":`deck-text-size-open`,className:`text-muted-foreground hover:text-foreground absolute inset-y-0 right-0 flex w-6 items-center justify-center`,children:(0,q.jsx)(A,{className:`size-3`})})}),(0,q.jsx)(V,{align:`start`,className:`max-h-72 min-w-16 overflow-y-auto text-xs`,children:hr.map(t=>(0,q.jsx)(R,{"data-testid":`deck-text-size-item`,"data-size":t,onSelect:()=>{e.onSize(t,!1)},children:t},t))})]})]})}function wr(e){let t=$(),n=e.shape.shape,r=n.text,i=r?.style.levels[0],a=e.entry?.text?.size??(i?Math.round(i.font.size/12700*10)/10:void 0),o=e.words?.bold??e.entry?.text?.bold??i?.font.bold===!0,s=e.words?.italic??e.entry?.text?.italic??i?.font.italic===!0,c=e.entry?.text?.align??r?.paragraphs[0]?.alignment??i?.alignment??`l`,l=(n.kind===`autoshape`||n.kind===`textbox`||n.kind===`placeholder`)&&n.geometry!==`line`,u=n.placeholder!==void 0&&vr.some(t=>e.entry?.[t]!==void 0),d=e.entry?.text?.color??i?.font.rgb??i?.font.color,f=(t,n)=>{e.onSet({"text.size":t},n?`size:${e.shape.key}`:void 0)},p={"data-keeps-typing":``,onPointerDownCapture:e.onKeepTyping};return(0,q.jsxs)(ie,{testid:`deck-inspector`,className:`animate-in fade-in`,role:`toolbar`,"aria-label":e.shape.name,children:[r?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(O,{children:[(0,q.jsx)(Cr,{size:a,onSize:f}),(0,q.jsx)(x,{size:`icon`,variant:`ghost`,className:`size-7 shrink-0`,"aria-label":t.growFont,title:t.growFont,"data-testid":`deck-text-grow`,onClick:()=>{a!==void 0&&f(gr(a,1),!1)},children:(0,q.jsx)(Qn,{up:!0})}),(0,q.jsx)(x,{size:`icon`,variant:`ghost`,className:`size-7 shrink-0`,"aria-label":t.shrinkFont,title:t.shrinkFont,"data-testid":`deck-text-shrink`,onClick:()=>{a!==void 0&&f(gr(a,-1),!1)},children:(0,q.jsx)(Qn,{up:!1})})]}),(0,q.jsxs)(O,{children:[(0,q.jsx)(dr,{size:`sm`,className:`size-7 min-w-7 shrink-0 p-0`,...p,"aria-label":t.bold,title:t.bold,"data-testid":`deck-text-bold`,pressed:o,onPressedChange:t=>{e.onSet({"text.bold":t})},children:(0,q.jsx)(M,{className:`size-3.5`})}),(0,q.jsx)(dr,{size:`sm`,className:`size-7 min-w-7 shrink-0 p-0`,...p,"aria-label":t.italic,title:t.italic,"data-testid":`deck-text-italic`,pressed:s,onPressedChange:t=>{e.onSet({"text.italic":t})},children:(0,q.jsx)(we,{className:`size-3.5`})}),(0,q.jsx)(`span`,{className:`contents`,...p,children:(0,q.jsx)(xr,{label:t.textColor,icon:be,theme:e.theme,shown:br(d,e.theme),value:e.entry?.text?.color,testid:`deck-text-color`,onPick:t=>{e.onSet({"text.color":t})}})})]}),(0,q.jsx)(O,{children:(0,q.jsx)(pr,{type:`single`,size:`sm`,"aria-label":t.alignment,"data-testid":`deck-text-align`,className:`shrink-0 gap-0.5`,value:c,onValueChange:t=>{t!==``&&e.onSet({"text.align":t})},children:Object.keys(yr).map(e=>{let n=yr[e];return(0,q.jsx)(mr,{value:e,className:`size-7 min-w-7 p-0`,"aria-label":t.align[e],title:t.align[e],"data-testid":`deck-text-align-${e}`,children:(0,q.jsx)(n,{className:`size-3.5`})},e)})})})]}):null,(0,q.jsxs)(O,{children:[l?(0,q.jsx)(xr,{label:t.fill,icon:xe,theme:e.theme,shown:e.entry?.fill===void 0?br(n.fill,e.theme):br(e.entry.fill,e.theme),value:e.entry?.fill,testid:`deck-fill`,onPick:t=>{e.onSet({fill:t})}}):null,(0,q.jsxs)(z,{children:[(0,q.jsx)(Re,{asChild:!0,children:(0,q.jsxs)(x,{size:`sm`,variant:`ghost`,className:`shrink-0`,"data-testid":`deck-arrange`,children:[(0,q.jsx)(W,{className:`size-3.5`}),t.arrange,(0,q.jsx)(A,{className:`size-3`})]})}),(0,q.jsx)(V,{align:`start`,className:`text-xs`,children:Sr.map(({how:n,icon:r})=>(0,q.jsxs)(R,{"data-testid":`deck-arrange-${n}`,onSelect:()=>{e.onArrange(n)},children:[(0,q.jsx)(r,{className:`size-3.5`}),t.arrangeTo[n]]},n))})]}),u?(0,q.jsx)(x,{size:`sm`,variant:`ghost`,className:`shrink-0`,"data-testid":`deck-reset`,onClick:e.onReset,children:t.resetLayout}):null]})]})}function Tr(e){let t=$();return(0,q.jsxs)(z,{open:!0,onOpenChange:t=>{t||e.onClose()},children:[(0,q.jsx)(Re,{asChild:!0,children:(0,q.jsx)(`span`,{className:`fixed size-0`,style:{left:e.at.x,top:e.at.y},"aria-hidden":!0})}),(0,q.jsxs)(V,{align:`start`,className:`text-xs`,"data-testid":`deck-shape-menu`,children:[(0,q.jsx)(R,{"data-testid":`deck-shape-cut`,disabled:e.fixed!==void 0,onSelect:()=>{e.onAction(`cut`)},children:t.cut}),(0,q.jsx)(R,{"data-testid":`deck-shape-copy`,onSelect:()=>{e.onAction(`copy`)},children:t.copy}),(0,q.jsx)(R,{"data-testid":`deck-shape-paste`,disabled:!e.canPaste,onSelect:()=>{e.onAction(`paste`)},children:t.paste}),(0,q.jsx)(R,{"data-testid":`deck-shape-duplicate`,onSelect:()=>{e.onAction(`duplicate`)},children:t.duplicate}),(0,q.jsx)(B,{}),(0,q.jsxs)(Ie,{children:[(0,q.jsxs)(Fe,{"data-testid":`deck-shape-arrange`,children:[(0,q.jsx)(W,{className:`size-3.5`}),t.arrange]}),(0,q.jsx)(Pe,{className:`text-xs`,children:Sr.map(({how:n,icon:r})=>(0,q.jsxs)(R,{onSelect:()=>{e.onArrange(n)},children:[(0,q.jsx)(r,{className:`size-3.5`}),t.arrangeTo[n]]},n))})]}),(0,q.jsx)(B,{}),(0,q.jsx)(`span`,{title:e.fixed,children:(0,q.jsx)(R,{"data-testid":`deck-shape-delete`,disabled:e.fixed!==void 0,onSelect:()=>{e.onAction(`delete`)},children:t.remove})})]})]})}var Er={textbox:{w:320,h:48},shape:{w:200,h:120},line:{w:240,h:0},movie:{w:480,h:270}},Dr={textbox:`text-box`,picture:`picture`,movie:`video`,shape:`shape`};function Or(e){let t=g(),[n,r]=(0,K.useState)(),i=e===void 0?``:`${e.slides}\u0000${e.script}`;return(0,K.useEffect)(()=>{if(e===void 0)return;let n=!0,i;return Pn.open(t,e).then(e=>{i=e,n?r(e):e.close()},()=>void 0),()=>{n=!1,r(void 0),i?.close()}},[t,i]),n}function kr(e,t){let[n,r]=(0,K.useState)();return t!==void 0&&(n?.item!==e||n?.value!==t)&&r({item:e,value:t}),t??(n?.item===e?n?.value:void 0)}var Ar=1/0,jr=1100,Mr=12*Q,Nr=()=>()=>void 0,Pr=()=>void 0;function Fr(e){return new Promise(t=>{let n=URL.createObjectURL(e),r=new window.Image;r.onload=()=>{URL.revokeObjectURL(n),t(r.naturalHeight>0?r.naturalWidth/r.naturalHeight:4/3)},r.onerror=()=>{URL.revokeObjectURL(n),t(4/3)},r.src=n})}var Ir=async e=>{let t=new Uint8Array(await e.arrayBuffer()),n=``;for(let e=0;e<t.length;e+=32768)n+=String.fromCharCode(...t.subarray(e,e+32768));return btoa(n)};function Lr(){let e=$(),n=g(),r=y(),i=r?.item.dir,a=t[o(r?.locale)],s=_e(),u=pe(`video/versions`,i===void 0?void 0:{item:i},[s]),d=kr(i,u.data),f=d===void 0?u.error:void 0,p=kr(i,pe(`slides/deck`,i===void 0?void 0:{item:i},[s]).data),[m,h]=le(`slides-editor.version:${i??``}`,``),_=he(),v=d?ce(d,m):void 0,[b,x]=(0,K.useState)(),[S,T]=(0,K.useState)(),[re,ie]=(0,K.useState)(!1),[E,D]=(0,K.useState)([]),[O,se]=(0,K.useState)(),[A,ge]=(0,K.useState)(),[j,ye]=(0,K.useState)(!1),[M,be]=(0,K.useState)();(0,K.useEffect)(()=>{if(!M)return;let e=setTimeout(()=>{be(void 0)},Math.max(0,(M.to-M.from)*1e3));return()=>{clearTimeout(e)}},[M]);let[xe,Se]=(0,K.useState)(),N=(0,K.useRef)(void 0);(0,K.useEffect)(()=>{if(O===void 0)return;let e=e=>{e.target instanceof Element&&e.target.closest(`[data-keeps-typing],[data-slot=popover-content]`)||N.current?.({type:`deck-stop`})};return document.addEventListener(`pointerdown`,e,!0),()=>{document.removeEventListener(`pointerdown`,e,!0)}},[O]);let[P,we]=(0,K.useState)(),[Te,Ee]=(0,K.useState)(),F=(0,K.useRef)([]),[De,Oe]=(0,K.useState)(!1),[ke,Ae]=(0,K.useState)(),I=(0,K.useRef)(null),[je,Me]=(0,K.useState)(!0);(0,K.useEffect)(()=>{let e=I.current;if(!e)return;let t=new ResizeObserver(()=>{Me(e.clientWidth>=jr)});return t.observe(e),()=>{t.disconnect()}});let Ne=re;(0,K.useEffect)(()=>{if(Ne)return;let e=e=>{if(e.target!==document.body)return;I.current?.focus({preventScroll:!0});let t=new KeyboardEvent(`keydown`,{key:e.key,code:e.code,metaKey:e.metaKey,ctrlKey:e.ctrlKey,shiftKey:e.shiftKey,altKey:e.altKey,bubbles:!0,cancelable:!0});I.current?.dispatchEvent(t),t.defaultPrevented&&e.preventDefault()};return document.addEventListener(`keydown`,e),()=>{document.removeEventListener(`keydown`,e)}},[Ne]);let Pe=(0,K.useCallback)(e=>{N.current=e},[]),L=(0,K.useMemo)(()=>Fn(b?.timeline.parts??[]),[b]),R=Qt(b?.deck),Fe=v?.lang??Object.keys(p?.scripts??{})[0]??o(r?.locale),z=Or(p&&i!==void 0?{slides:p.file,script:p.scripts[Fe]??`${i}/script.${Fe}.yaml`}:void 0),B=(0,K.useSyncExternalStore)(z?.subscribe??Nr,z?.get??Pr),V=B?.conflicts,Ie=V&&V.length>0&&V!==ke?e.bothChanged(r?.agent?.name??``):void 0,[Le,Re]=(0,K.useState)(),H=[S?.slide,Le].find(e=>L.some(t=>t.key===e))??L[0]?.key;H!==Le&&Re(H);let ze=L.find(e=>e.key===H)?.steps.length??1,Be=Math.min(S!==void 0&&S.slide===H?S.step:Ar,ze-1),U=R?.slides.find(e=>e.id===H),W=(0,K.useMemo)(()=>U?en(U):[],[U]),Ve=e=>{x(e);let t=Qt(e.deck)?.slides.some(e=>e.shapes.some(t=>`${e.id}/${t.name}`===P?.key));P&&t&&(D([P.key]),P.type&&(se(P.key),N.current?.({type:`deck-edit`,shape:P.key})),we(void 0))},G=(0,K.useCallback)((e,t)=>{z?.edit(e,t)},[z]),He=B?.slides??{slides:[]},Ue=He.slides.find(e=>e.id===U?.id)?.animations??[],We=e=>B?.script.slides.find(t=>t.id===e),Ge=()=>I.current?.querySelector(`[data-testid="deck-picture"]`)?.getBoundingClientRect();l({freeze:()=>Promise.resolve({key:`${i??``}@${v?.key??``}@${H??``}@${String(s)}`,what:`The deck ${i??``}, version ${v?.key??``}, slide ${String(L.findIndex(e=>e.key===H)+1)} of ${String(L.length)} (${H??``})`,...p?{source:{path:p.file}}:{}}),pictures:async()=>{let e=Ge(),t=In(L,H,Be);if(!e||!v||i===void 0||t===void 0)return[];let r=await c(n,`video/still`,{item:i,version:v.key,t}).catch(()=>void 0);return r?[{rect:{x:e.x,y:e.y,width:e.width,height:e.height},mime:r.image.mime,data:r.image.data}]:[]},locate:e=>{let t=Ge();if(!t||!R)return Promise.resolve([]);let n=t.width/R.width,r=t.height/R.height;return Promise.resolve(W.filter(i=>{let a=Ke(i);return ee(e,{x:t.x+a.left*n,y:t.y+a.top*r,width:a.width*n,height:a.height*r})}).map(e=>{let t=pn(e.shape);return{name:`the shape ${JSON.stringify(e.name)} of slide ${H??``}`,...p?{source:{path:p.file}}:{},...t===``?{}:{text:t}}}))}});let Ke=e=>{let t=Te?.[e.key];if(t)return t;let n=rn(He,e.address)?.frame;return n?nn(n):e.shape.frame},qe=e=>{let t=R?.slides.find(t=>t.id===e),n=t?$t(t):void 0;return n?n.block:e},Je=e=>{if(e.type===`deck-selection`){ge({words:e.words,bold:e.bold,italic:e.italic});return}let t=W.find(t=>t.key===e.shape);t?.typed&&U&&G({script:[{op:`text`,slide:U.id,shape:t.name,words:e.cell?gn(We(U.id)?.text?.[t.name],e.cell,_n(e.paragraphs)):_n(e.paragraphs)}]},`text:${t.key}`),e.type===`deck-text-done`&&(se(t=>t===e.shape?void 0:t),ge(void 0),I.current?.focus({preventScroll:!0}))},Ye=e=>{if(!U)return;let t=[],n=[],r=new Set;for(let i of e){let e=W.find(e=>e.key===i);e&&(e.own&&t.push({op:`unplace`,slide:e.address.slide,shape:e.address.shape}),e.own&&r.add(e.name),e.typed&&n.push({op:`text`,slide:U.id,shape:e.name,words:void 0}))}Ue.some(e=>r.has(e.shape))&&t.push({op:`animations`,slide:U.id,animations:Ue.filter(e=>!r.has(e.shape))}),G({slides:t,script:n}),D([])},Xe=(e,t)=>{for(let n of E){let r=W.find(e=>e.key===n);if(!r)continue;let i=Ke(r),a={...i,left:i.left+e*Q,top:i.top+t*Q};N.current?.({type:`deck-frame`,shape:n,frame:a}),G({slides:[{op:`shape`,slide:r.address.slide,shape:r.address.shape,set:{frame:tn(a)}}]},`nudge:${n}`)}},Ze=()=>W.flatMap(e=>{let t=rn(He,e.address);if(!e.own||!t||!E.includes(e.key))return[];let n=We(e.address.slide)?.text?.[e.name];return[{name:e.name,set:t,frame:Ke(e),...n===void 0?{}:{words:n}}]}),Qe=e=>{if(!U||e.length===0)return;let t=U.shapes.map(e=>e.name),n=[],r=[],i=[];for(let a of e){let e=Tt(t,a.name.replace(/-\d+$/u,``));t.push(e),n.push({op:`shape`,slide:U.id,shape:e,set:{...a.set,frame:tn({...a.frame,left:a.frame.left+Mr,top:a.frame.top+Mr})}}),a.words!==void 0&&r.push({op:`text`,slide:U.id,shape:e,words:a.words}),i.push(`${U.id}/${e}`)}G({slides:n,...r.length>0?{script:r}:{}});let[a]=i;i.length===1&&a!==void 0?we({key:a,type:!1}):D(i)},J=e=>{let t=e.target instanceof HTMLTextAreaElement&&e.target.matches(`[data-sink]`);if(O!==void 0&&e.key===`Escape`){N.current?.({type:`deck-stop`});return}if(!I.current?.contains(e.target)||O!==void 0||e.nativeEvent.isComposing||e.target instanceof HTMLInputElement||e.target instanceof HTMLTextAreaElement&&!t)return;if((e.metaKey||e.ctrlKey)&&(e.key===`z`||e.key===`Z`||e.key===`y`)){e.key===`y`||e.shiftKey?z?.redoStep():z?.undoStep(),e.preventDefault();return}let n=e.metaKey||e.ctrlKey;if(n&&e.key===`d`){E.length>0?Qe(Ze()):H!==void 0&&Z&&$e(H,`duplicate`),e.preventDefault();return}if(n&&(e.key===`c`||e.key===`x`)&&E.length>0){F.current=Ze(),Oe(F.current.length>0),e.key===`x`&&F.current.length>0&&Ye(E),e.preventDefault();return}if(n&&e.key===`v`&&F.current.length>0){Qe(F.current),e.preventDefault();return}if(n&&e.key===`a`){D(W.map(e=>e.key)),e.preventDefault();return}if(e.key===`Tab`&&W.length>0&&(t||e.target===I.current)){let t=W.findIndex(e=>e.key===E[0]),n=W.length,r=W[(t+(e.shiftKey?n-1:1)+n)%n];r&&D([r.key]),e.preventDefault();return}if(E.length===0){let t=e.key===`ArrowDown`||e.key===`PageDown`?1:e.key===`ArrowUp`||e.key===`PageUp`?-1:0,n=L[L.findIndex(e=>e.key===H)+t];t!==0&&n&&(T({slide:n.key,step:Ar}),e.preventDefault());return}let r=e.shiftKey?10:1;if(e.key===`Delete`||e.key===`Backspace`)Ye(E);else if(e.key===`Escape`)D([]);else if(e.key===`ArrowLeft`)Xe(-r,0);else if(e.key===`ArrowRight`)Xe(r,0);else if(e.key===`ArrowUp`)Xe(0,-r);else if(e.key===`ArrowDown`)Xe(0,r);else if(e.key===`Enter`&&E.length===1){let e=W.find(e=>e.key===E[0]);e?.typed&&(se(e.key),N.current?.({type:`deck-edit`,shape:e.key}))}else return;e.preventDefault()},Y=He.slides.map(e=>e.id),$e=(e,t)=>{let n=qe(e),r=He.slides.find(e=>e.id===n);if(r){if(t===`new`){let e=r.layout??p?.layouts[0];if(e===void 0)return;let t=Tt(Y,`slide`);G({slides:[{op:`add`,slide:{id:t,layout:e},after:n}]}),T({slide:t,step:Ar})}else if(t===`duplicate`){let e=Tt(Y,n),t=We(n);G({slides:[{op:`duplicate`,slide:n,id:e}],script:[...Object.entries(t?.text??{}).map(([t,n])=>({op:`text`,slide:e,shape:t,words:n})),...t?.notes===void 0?[]:[{op:`notes`,slide:e,notes:t.notes}]]}),T({slide:e,step:Ar})}else if(t===`hide`){let t=R?.slides.find(t=>t.id===e),i=t?$t(t):void 0;if(i){let e=Array.isArray(r.hidden)?r.hidden:[],t=e.includes(i.slide)?e.filter(e=>e!==i.slide):[...e,i.slide];G({slides:[{op:`hidden`,slide:n,hidden:t}]})}else G({slides:[{op:`hidden`,slide:n,hidden:r.hidden!==!0}]})}else if(G({slides:[{op:`remove`,slide:n}],script:[{op:`remove`,slide:n}]}),D([]),e===H){let t=L.findIndex(t=>t.key===e),n=L[t+1]??L[t-1];n&&T({slide:n.key,step:Ar})}}},et=async e=>{if(!U||!R||i===void 0||$t(U))return;let t=Tt(U.shapes.map(e=>e.name),e.kind===`shape`?Dr.shape:Dr[e.kind]),r=R.width/Q,a=R.height/Q,o=(e,t)=>({x:Math.round((r-e)/2*10)/10,y:Math.round((a-t)/2*10)/10,w:e,h:t}),s;if(e.kind===`textbox`)s={textbox:!0,frame:o(Er.textbox.w,Er.textbox.h)};else if(e.kind===`shape`){let t=e.geometry===`line`?Er.line:Er.shape;s={geometry:e.geometry,frame:o(t.w,t.h)}}else{let{path:t}=await n[`files/upload`]({dir:`${i}/media`,name:e.file.name,data:await Ir(e.file)}),c=`./${t.slice(i.length+1)}`;if(e.kind===`picture`){let t=await Fr(e.file),n=Math.min(r*.5,a*.6*t);s={picture:c,frame:o(Math.round(n),Math.round(n/t))}}else s={movie:c,frame:o(Er.movie.w,Er.movie.h)}}G({slides:[{op:`shape`,slide:U.id,shape:t,set:s}]}),we({key:`${U.id}/${t}`,type:e.kind===`textbox`})},tt=B?.changes??[],nt=new Set,rt=new Set;for(let e of tt){let t=vn(e);for(let e of L)(e.key===t||e.key.startsWith(`${t}/`))&&nt.add(e.key);let n=yn(e);n!==void 0&&rt.add(`${t}/${n}`)}let it=e=>{let t=vn(e),n=L.find(e=>e.key===t||e.key.startsWith(`${t}/`));n&&T({slide:n.key,step:Ar})};if(i===void 0||!d&&!f)return(0,q.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,q.jsx)(ue,{label:e.loading})});if(!d||!v||d.kind!==`slides`)return(0,q.jsx)(ve,{title:e.noDeck,className:`h-full justify-center`,children:f?.message});let at=In(L,H,Be),ot=()=>{let e=b?.timeline.parts.find(e=>e.key===H)?.start,t=L.find(e=>e.key===H)?.steps.at(-1);e!==void 0&&t!==void 0&&be({from:e,to:t})},st=e=>{if(!X)return;let t=e=>rn(He,e.address)?.z??0;G({slides:[{op:`shape`,slide:X.address.slide,shape:X.address.shape,set:{z:mn(t(X),W.filter(e=>e.key!==X.key).map(t),e)}}]})},ct=e=>{(e===`copy`||e===`cut`)&&(F.current=Ze(),Oe(F.current.length>0)),(e===`cut`||e===`delete`)&&Ye(E),e===`paste`&&Qe(F.current),e===`duplicate`&&Qe(Ze())},lt=U&&!$t(U)?We(U.id):void 0,ut=typeof lt?.notes==`string`?lt.notes:(b?.text??[]).find(e=>e.key===H)?.notes,dt=e=>e.lang===void 0?e.key:fe(e.lang,a),X=E.length===1?W.find(e=>e.key===E[0]):void 0,Z=z!==void 0&&B?.problem===void 0,ft=(0,q.jsx)(Kt,{deck:R,canUndo:B?.canUndo??!1,canRedo:B?.canRedo??!1,onUndo:()=>{z?.undoStep()},onRedo:()=>{z?.redoStep()},layouts:p?.layouts??[],layout:U&&!$t(U)?U.layout:void 0,disabled:!Z,onNew:e=>{let t=Tt(Y,`slide`);G({slides:[{op:`add`,slide:{id:t,layout:e},...H===void 0?{}:{after:qe(H)}}]}),T({slide:t,step:Ar})},onLayout:e=>{U&&G({slides:[{op:`layout`,slide:U.id,layout:e}]})},onInsert:e=>{et(e)}}),pt=X&&R&&Z?(0,q.jsx)(wr,{shape:X,entry:rn(He,X.address),theme:R.theme,words:A,onKeepTyping:()=>{O!==void 0&&N.current?.({type:`deck-hold`})},onSet:(e,t)=>{let n=e[`text.color`];O!==void 0&&e[`text.bold`]!==void 0?N.current?.({type:`deck-format`,bold:e[`text.bold`]===!0}):O!==void 0&&e[`text.italic`]!==void 0?N.current?.({type:`deck-format`,italic:e[`text.italic`]===!0}):O!==void 0&&typeof n==`string`?N.current?.({type:`deck-format`,color:n}):G({slides:[{op:`shape`,slide:X.address.slide,shape:X.address.shape,set:e}]},t)},onReset:()=>{G({slides:[{op:`shape`,slide:X.address.slide,shape:X.address.shape,set:Object.fromEntries(vr.map(e=>[e,void 0]))}]})},onArrange:st}):null,mt=(0,q.jsxs)(`div`,{className:`flex items-center gap-1`,"data-testid":`slides-editor-tools`,children:[d.versions.length>1?(0,q.jsxs)(C,{value:v.key,onValueChange:e=>{h(e)},children:[(0,q.jsx)(k,{"aria-label":e.version,className:`max-w-[16rem]`,"data-testid":`version`,children:(0,q.jsx)(w,{})}),(0,q.jsx)(te,{position:`popper`,align:`start`,children:d.versions.map(e=>(0,q.jsx)(ae,{value:e.key,className:`text-xs`,children:dt(e)},e.key))})]}):null,U&&!$t(U)&&Z?(0,q.jsx)(nr,{animations:Ue,shape:E.length===1?X?.name:void 0,nameOf:e=>{let t=W.find(t=>t.name===e),n=t?pn(t.shape):``;return n===``?e:n},open:j&&M===void 0,onOpenChange:ye,onChange:e=>{G({slides:[{op:`animations`,slide:U.id,animations:e}]})},onPick:e=>{let t=W.find(t=>t.name===e);t&&D([t.key])},onPreview:ot}):null,(0,q.jsxs)(ne,{"data-testid":`deck-present-open`,"aria-label":e.present,disabled:L.length===0,onClick:()=>{ie(!0)},children:[(0,q.jsx)(de,{"aria-hidden":!0}),(0,q.jsx)(`span`,{className:`@max-[30rem]:hidden`,children:e.present})]})]});return(0,q.jsxs)(`div`,{className:`flex size-full min-h-0 flex-col outline-none`,ref:I,"data-testid":`slides-editor`,"data-typing":O,"data-steps":ze,"data-live":Te?Object.keys(Te).join(` `):void 0,tabIndex:-1,onKeyDown:J,onFocus:e=>{e.target===e.currentTarget&&e.currentTarget.querySelector(`[data-sink]`)?.focus({preventScroll:!0})},children:[(0,q.jsx)(oe,{start:(0,q.jsxs)(`div`,{className:`@container flex min-w-0 flex-1 items-center gap-1`,children:[ft,(0,q.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center`,children:[je&&pt?(0,q.jsx)(`span`,{className:`bg-rule mx-1 h-4 w-px shrink-0`}):null,je?pt:null]}),mt]}),saved:{state:B?.state??`saved`},exports:{versions:d.versions.map(e=>({key:e.key,label:dt(e)})),shown:v.key,facts:[`${String(d.width)} × ${String(d.height)}`,e.slideCount(L.length)].join(` · `),check:{waiting:_?.status===`waiting`||_?.status===`running`,problems:e=>_?.status===`done`?me(_.problems,d,e):0}}}),je?null:(0,q.jsx)(`div`,{className:`flex h-9 shrink-0 items-center border-b px-1`,children:pt}),B?.problem===void 0?null:(0,q.jsx)(`div`,{className:`bg-problem/10 text-problem-text shrink-0 px-3 py-1 text-xs`,"data-testid":`deck-unreadable`,children:e.unreadable(B.problem)}),(0,q.jsxs)(`div`,{className:`@container flex min-h-0 flex-1`,children:[(0,q.jsx)(lr,{project:r?.project.name??``,item:i,version:v.key,revision:s,slides:L,shown:H,aspect:d.width/d.height,onShow:e=>{T({slide:e,step:Ar}),D([])},marked:nt,made:e=>e.includes(`/`),...Z?{onMove:(e,t)=>{let n=qe(e),r=t===null?null:qe(t);r!==n&&G({slides:[{op:`move`,slide:n,after:r}]})},onAction:$e}:{}}),(0,q.jsxs)(`main`,{className:`relative flex min-w-0 flex-1 flex-col`,onDragOver:e=>{Z&&e.dataTransfer.types.includes(`Files`)&&e.preventDefault()},onDrop:e=>{let t=e.dataTransfer.files[0];Z&&t&&(e.preventDefault(),t.type.startsWith(`image/`)?et({kind:`picture`,file:t}):t.type.startsWith(`video/`)&&et({kind:`movie`,file:t}))},children:[(0,q.jsx)(`div`,{className:`min-h-0 flex-1 p-4`,children:(0,q.jsx)(Xt,{item:i,version:v.key,revision:s,width:d.width,height:d.height,moment:M?.from??at,playing:M!==void 0,onLoaded:Ve,edit:!0,onCommands:Pe,onEdit:Je,hold:O!==void 0||Te!==void 0,interactive:O!==void 0,overlay:R&&Z&&M===void 0?(0,q.jsx)(Hn,{width:R.width,height:R.height,shapes:W,frameOf:Ke,selected:E,typing:O,marked:rt,onSelect:D,onDrag:e=>{Ee(e);for(let[t,n]of Object.entries(e))N.current?.({type:`deck-frame`,shape:t,frame:n})},onDrop:e=>{Ee(void 0),G({slides:Object.entries(e).flatMap(([e,t])=>{let n=W.find(t=>t.key===e);return n?[{op:`shape`,slide:n.address.slide,shape:n.address.shape,set:{frame:tn(t)}}]:[]})})},animations:j?Ue:void 0,onMenu:(e,t)=>{Se(t)},onWords:(e,t)=>{se(e),N.current?.({type:`deck-edit`,shape:e,text:t})},onType:(e,t)=>{D([e]),se(e),N.current?.({type:`deck-edit`,shape:e,at:t,word:!0})}}):void 0})}),Ie===void 0?null:(0,q.jsx)(`button`,{type:`button`,className:`text-muted-foreground mx-auto shrink-0 pb-1 text-xs`,"data-testid":`deck-conflict`,onClick:()=>{Ae(V)},children:Ie}),tt.length>0&&z?(0,q.jsx)(`div`,{className:`absolute inset-x-0 bottom-24 flex justify-center`,children:(0,q.jsx)(Zt,{changes:tt,agent:r?.agent?.name,onShow:it,onKeep:e=>{z.keep(e)},onUndo:e=>{z.undo(e)},onAll:e=>{z.all(e)}})}):null,(0,q.jsx)(`section`,{className:`shrink-0 border-t`,"aria-label":e.notes,"data-testid":`deck-notes`,children:Z&&U&&!$t(U)?(0,q.jsx)(Ce,{className:`text-read h-16 min-h-0 resize-none rounded-none border-0 bg-transparent p-3 shadow-none focus-visible:ring-0 dark:bg-transparent`,placeholder:e.addNotes,"data-testid":`deck-notes-text`,value:ut??``,onChange:e=>{let t=e.target.value;G({script:[{op:`notes`,slide:U.id,notes:t===``?void 0:t}]},`notes:${U.id}`)}},U.id):(0,q.jsx)(`div`,{className:`text-read h-16 overflow-y-auto p-3 whitespace-pre-wrap`,children:R===void 0?null:ut??(0,q.jsx)(`span`,{className:`text-muted-foreground`,children:e.noNotes})})})]})]}),re&&H!==void 0?(0,q.jsx)(Gn,{item:i,version:v.key,revision:s,width:d.width,height:d.height,slides:L,from:{slide:H,step:0},startOf:e=>b?.timeline.parts.find(t=>t.key===e)?.start,plays:e=>R?.slides.find(t=>t.id===e)?.shapes.some(e=>e.kind===`movie`)===!0,notesOf:e=>(b?.text??[]).find(t=>t.key===e)?.notes,onStop:e=>{ie(!1),T({slide:e.slide,step:Ar})}}):null,xe&&E.length>0?(0,q.jsx)(Tr,{at:xe,canPaste:De,fixed:W.some(e=>E.includes(e.key)&&!(e.own||e.typed))?e.fromLayout:void 0,onAction:ct,onArrange:st,onClose:()=>{Se(void 0)}}):null]})}export{Lr as SlidesEditor};