1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/RollCallView-pl7KM1jY.js","assets/index-CrMm5ho3.js","assets/index-CAbSayIw.css","assets/teacher-BrE7sN6G.js","assets/index-DbNy1C6O.js","assets/index-t--hEgTQ.js","assets/useResponsiveStudentGrid-BUHRrvG6.js","assets/useSerializedSave-BIaKDMC6.js","assets/FullScreenDialog-B1TUDvbY.js","assets/useFullscreen-Dkhh-cAx.js","assets/VDialog-CffamgEF.js","assets/dialog-transition-GrSpNh-7.js","assets/VDialog-DwTSAOeg.css","assets/VNavigationDrawer-i2kqiCR1.js","assets/VNavigationDrawer-Bn8T2fep.css","assets/VToolbar-BHi3YhXR.js","assets/index-C-EcXwFT.js","assets/VToolbar-D1tRNhN6.css","assets/VSpacer-gfpnqUYp.js","assets/VGrid-Cb7FdSrp.css","assets/VCard-CRByIYCu.js","assets/VCard-B40-Wxk8.css","assets/VSelect-CBEEcwtR.js","assets/VInput-B5uj4gcK.js","assets/VInput-CcxkaOXT.css","assets/VTextField-CyYaRm-A.js","assets/VTextField-CexrJWjC.css","assets/VMenu-DB9OMhzW.js","assets/VMenu-BWH46ZFB.css","assets/VCheckboxBtn-BRWbro9f.js","assets/VSelectionControl-DhZA_A2h.js","assets/VSelectionControl-CIeJsqfW.css","assets/VChip-v688b-mp.js","assets/VSlideGroup-Fz3CK2Se.js","assets/VSlideGroup-ECiLCEE9.css","assets/VChip-BzRBD_oO.css","assets/VSelect-DthnEkaR.css","assets/FullScreenDialog-C_rVnUux.css","assets/StudentAvatar-D1t97IzK.js","assets/colorUtils-C0aWoBIu.js","assets/StudentAvatar-Cod9o1bE.css","assets/constants-C1Yk8m4g.js","assets/index-CH_iu5NA.js","assets/confetti.module-B5JVzsfH.js","assets/utils-Ckt3hAW8.js","assets/dateUtils-DJqbw22C.js","assets/background-sets-PGIfgydj.js","assets/background-sets-WsgcP0fI.css","assets/BackgroundDialog-C5xw7-Ff.js","assets/ColorPicker-Bt5m99P6.js","assets/VTabs-CiHtKqQ8.js","assets/VTabs-CalBx53m.css","assets/VContainer-CHKoazK1.js","assets/VRow-BsW52-MZ.js","assets/ColorPicker-D3xa6LXR.css","assets/useImageDeletion-CzSLa3TH.js","assets/imageUtils-BggKrZle.js","assets/VFileInput-ysZZujyo.js","assets/VFileInput-Dwzvf-gD.css","assets/SaveAttendanceDialog-Cr3Igev3.js","assets/VAlert-Cv2Omy-X.js","assets/VAlert-DKoNCXB3.css","assets/VCheckbox-BDcOfBxL.js","assets/VCheckbox-CvH8ekHL.css","assets/SaveAttendanceDialog-CWz5emVC.css","assets/RollCallView-Dg0dhKcY.css","assets/CheckInView-_dHnygaT.js","assets/index-rrwF1irB.js","assets/chartjs-adapter-date-fns.esm-BeliMX1M.js","assets/papaparse.min-CA5em1by.js","assets/VTextarea-DjeDzE17.js","assets/VTextarea-f6vTjzFy.css","assets/SimpleDeleteDialog-D4CDqzzH.js","assets/SimpleDeleteDialog-Bz-pFIZO.css","assets/DraggableList-Dxat0rPk.js","assets/vuedraggable.umd-NHxgbLvG.js","assets/DraggableList-BxDLKusL.css","assets/ImageLibraryDialog-DSV9uR7_.js","assets/ImageLibraryDialog-C9XKR1_i.css","assets/VSwitch-CymYhB8t.js","assets/VSwitch-Mm7Rd7At.css","assets/CheckInView-PZn3NJFw.css","assets/ImageWidget-Ci6NVUOk.js","assets/BaseWidget-D3TxSqQL.js","assets/DrawingOverlay-fAn9SBGW.js","assets/DrawingOverlay-27m2574f.css","assets/VSlider-BuxHGAkR.js","assets/VSlider-DlBvQp-0.css","assets/BaseWidget-w9PKYE6T.css","assets/WidgetState-gGMc2Ey8.js","assets/WidgetState-CmR5dXi5.css","assets/ImageWidget-D_j9BGGo.css","assets/TextBoxWidget-CTRw9G1-.js","assets/index-DAwHNjDS.js","assets/index-zdpXPo9T.js","assets/index-DL4C2Hfz.js","assets/listItemColor-AVzU0_xh.js","assets/TextBoxWidget-Ba49Y7kI.css","assets/VideoWidget-BhiLMvLS.js","assets/linkTypes-Mwa6Mvds.js","assets/VideoWidget-bEdF9srN.css","assets/index-Brsw2dLe.js","assets/index-CvvFU6E8.css","assets/index-Bezx6E_I.js","assets/WidgetBody-Cata3N2x.js","assets/WidgetBody-DGobsZyE.css","assets/WidgetSettingsSection-Bfaaq566.js","assets/WidgetSettingsSection-CWnTK-ku.css","assets/useWidgetOptions-CLetGME0.js","assets/index-C7SXEEFZ.css","assets/AlarmClockWidget-L9cunG_8.js","assets/AlarmClockWidget-Bt0-ZzK6.css","assets/TimerWidget-Btwmt-r4.js","assets/easytimer-mSuIk-La.js","assets/audio-DiANbat8.js","assets/VPicker-C0BVVjvT.js","assets/VPicker-B7cB3kJg.css","assets/TimerWidget-CCYzAHdh.css","assets/LinkWidget-htU0LxZ3.js","assets/LinkWidget-SJteviq-.css","assets/RandomPickerWidget-HpsTVPGK.js","assets/isObjectLike-Y_9CBzvZ.js","assets/RandomPickerWidget
1-C4B7VWUf.css","assets/NoiseMeterWidget-DU2Dyb_U.js","assets/NoiseMeterWidget-CXijXCPE.css","assets/StopLightWidget-qU6QS7wo.js","assets/StopLightWidget-BtXIaPKs.css","assets/EmbedWidget-GMLzmgmw.js","assets/EmbedWidget-uC9d8iMT.css","assets/DiceWidget-LbijY0s6.js","assets/DiceWidget-Caxc0gQn.css","assets/VoiceRecordingWidget-BJZjWXat.js","assets/VoiceRecordingWidget-BLysfJTZ.css","assets/TodoWidget-lgsS0Vi5.js","assets/WidgetHeader-ByX5FCOQ.js","assets/WidgetHeader-D5PjUN4y.css","assets/SimpleCreateDialog-DLHAbfCK.js","assets/useMobile-m9SNva-b.js","assets/TodoWidget-cjBUasuN.css","assets/WeatherWidget-Beb-Erw8.js","assets/WeatherWidget-B0HLdpRU.css","assets/PollWidget-CAgmMAGJ.js","assets/PollWidget-D0hzEbor.css","assets/Scoreboard-CpP-gzhj.js","assets/Scoreboard-B3FFvuPL.css","assets/StationRotationWidget-DtriIIti.js","assets/StationRotationCore-5IgjRKbr.js","assets/VRadioGroup-ChpdYy1L.js","assets/VRadioGroup-Cp9mZ7cb.css","assets/StationRotationCore-PkoNVt0w.css","assets/VAutocomplete-CrAd7Nho.js","assets/filter-V1FNW4Ar.js","assets/VAutocomplete-C9NL5_uo.css","assets/StationRotationWidget-ClX7KBxX.css","assets/WebcamWidget-qb8WyCID.js","assets/WebcamWidget-C6Lx7tIK.css","assets/LunchChoiceWidget-B0KBN7Bo.js","assets/LunchChoiceCore-BjjNn0sh.js","assets/useTouchDrag-BUitVqR7.js","assets/tap-D3VwnMlK.js","assets/LunchChoiceCore-ByiS3nxz.css","assets/LunchChoiceWidget-BhpgUyFK.css","assets/QrCodeWidget-C9W80DcS.js","assets/browser-CjSdxGTc.js","assets/QrCodeWidget-Bfgv6xCl.css","assets/MarbleJarWidget-BsLj4F4Z.js","assets/behavior-DMptZvTh.js","assets/JarVisual-Yeex53iZ.js","assets/JarVisual-JHCSNLqg.css","assets/useJarMarbleActions-DaWRdpJ8.js","assets/celebrationPrefs-f1Zyemd2.js","assets/useCelebrationEffects-CHU5YD9-.js","assets/useEnsureBehaviorSystem-DN_WCPBi.js","assets/useEnsureBehaviorSystem-Dkmw-KO8.css","assets/useJarMarbleActions-Bc2JB2dH.css","assets/MarbleJarWidget-CyHdLX_v.css","assets/PrizeStoreWidget-DLm6dKZU.js","assets/ToolLauncherWidget-zv4-1HkM.js","assets/ToolLauncherWidget-Cy2QjQ6k.css","assets/PrizeStoreDisplayDialog-qBMVrVkR.js","assets/displayNames-CY77ihbD.js","assets/PrizeStoreDisplayDialog-FvjgzsE5.css","assets/GivePointsWidget-BLgmx2p6.js","assets/GivePointsDialog-CxsMcupc.js","assets/apiError-BH6c8yXi.js","assets/GivePointsDialog-ClH9slsI.css","assets/RollCallWidget-CSL_-i7X.js","assets/RollCallWidget.vue_vue_type_script_setup_true_lang-rNPKbg9c.js","assets/CheckInWidget-DBAr3r8L.js","assets/PdfWidget-CwNmSszT.js","assets/PdfWidget-DT_GROmo.css","assets/BirthdayWidget-TOLiZF2y.js","assets/birthdays-ybddvgMW.js","assets/BirthdayWidget-C_YtYpiQ.css","assets/CalendarWidget-Deye--DJ.js","assets/CalendarWidget-eygnVwRv.css","assets/MarqueeWidget-ByTWf41q.js","assets/MarqueeWidget-CLlmzzuh.css"])))=>i.map(i=>d[i]); 2import{d as xe,a as ze,z as ce,e as F,w as l,f as s,g as o,V as v,h as r,t as E,ad as Ya,k as I,m as u,_ as Te,r as A,p as y,j as B,F as re,c as z,q as $,ae as Ka,P as Xa,B as Pe,i as De,C as ke,H as Re,a1 as Al,o as Ll,R as _t,af as Ea,O as ae,b as rt,A as Rl,N as Ot,x as ht,D as kt,s as Bt,ac as zl,v as dt,E as me,G as pe,ax as Y,u as Pl,aj as Ml,K as Ul,ay as K,W as Aa}from"./index-CrMm5ho3.js";import{D as Ol}from"./constants-C1Yk8m4g.js";import{c as Qa,a as Ha,F as Wl,n as Wt,D as Fl,d as Nl,b as jl,e as ql,s as La,f as Yl,B as Kl,g as Xl}from"./DrawingOverlay-fAn9SBGW.js";import{F as Ra}from"./FullScreenDialog-B1TUDvbY.js";import{S as za}from"./SimpleDeleteDialog-D4CDqzzH.js";import{S as Pa}from"./SimpleRenameDialog-CXxneJRr.js";import{V as ge}from"./VCard-CRByIYCu.js";import{V as Ne}from"./VTextField-CyYaRm-A.js";import{V as ye}from"./VDialog-CffamgEF.js";import{C as Ql}from"./CreateWithMetadataDialog-BIFogA35.js";import{u as Hl,S as Zl}from"./useSubjectPalette-DuKwMGo9.js";import{I as Jl}from"./ImageLibraryDialog-DSV9uR7_.js";import{S as Ft,a as es,r as Nt,b as ts,g as as}from"./background-sets-PGIfgydj.js";import{B as os}from"./BackgroundDialog-C5xw7-Ff.js";import{D as ls}from"./DraggableList-Dxat0rPk.js";import{v as jt}from"./tap-D3VwnMlK.js";import{a as U}from"./index-DbNy1C6O.js";import{u as ss,a as is,F as rs,B as ds}from"./BrowseFilterBar-CApEy082.js";import{L as ns,a as Ma}from"./LabelManager-CA5GPqr2.js";import{u as Za,S as Ve,s as Ce,c as us}from"./teacher-BrE7sN6G.js";import{useTeamDataStore as cs}from"./teamData-DV9aFaNV.js";import{v as qt,e as ms}from"./utils-Ckt3hAW8.js";import{p as ps,s as vs}from"./filterSidebar-hEGLC7eJ.js";import{u as gs}from"./useMobile-m9SNva-b.js";import{u as fs}from"./useImageDeletion-CzSLa3TH.js";import{b as bs,c as Ua,V as ys,a as Oa}from"./VTabs-CiHtKqQ8.js";import{V as Ja}from"./VTextarea-DjeDzE17.js";import{V as Me}from"./VAlert-Cv2Omy-X.js";import{a as ws,b as _s,n as hs,i as Wa}from"./linkTypes-Mwa6Mvds.js";import{V as Qt}from"./VSelect-CBEEcwtR.js";import{V as Ct}from"./VSwitch-CymYhB8t.js";import{M as ks,c as Bs}from"./imageUtils-BggKrZle.js";import{e as Vs,g as Cs}from"./colorUtils-C0aWoBIu.js";import{d as Ds}from"./vuedraggable.umd-NHxgbLvG.js";import{V as xs}from"./index-C-EcXwFT.js";import{V as Ts,a as Fa}from"./VRadioGroup-ChpdYy1L.js";import{V as Ss}from"./VSlider-BuxHGAkR.js";import{V as Yt}from"./VSpacer-gfpnqUYp.js";import{V as Is,a as Gs}from"./VToolbar-BHi3YhXR.js";import{V as Kt,a as Xt}from"./VMenu-DB9OMhzW.js";import{V as Na,a as ja}from"./VRow-BsW52-MZ.js";import{V as $s}from"./VCombobox-CM6KEy8W.js";import{V as Es}from"./VChip-v688b-mp.js";import"./dateUtils-DJqbw22C.js";import"./ColorPicker-Bt5m99P6.js";import"./VContainer-CHKoazK1.js";/* empty css */import"./useFullscreen-Dkhh-cAx.js";import"./VNavigationDrawer-i2kqiCR1.js";import"./VInput-B5uj4gcK.js";import"./dialog-transition-GrSpNh-7.js";import"./VFileInput-ysZZujyo.js";import"./index-t--hEgTQ.js";import"./VSlideGroup-Fz3CK2Se.js";import"./VCheckboxBtn-BRWbro9f.js";import"./VSelectionControl-DhZA_A2h.js";import"./filter-V1FNW4Ar.js";const As={class:"dialog-header"},Ls={class:"header-icon"},Rs={class:"dialog-title"},zs={class:"dialog-content"},Ps={class:"dialog-actions"},Ms=xe({__name:"SimpleDuplicateDialog",props:{open:{type:Boolean,default:!1},title:{type:String,default:"Duplicate"},label:{type:String,default:"Name"},buttonText:{type:String,default:"Duplicate"},defaultName:{type:String,default:""}},emits:["duplicate","close"],setup(J,{emit:oe}){const q=oe,m=J,_=ze({name:m.defaultName});ce(()=>m.defaultName,h=>{_.name=h}),ce(()=>m.open,h=>{h&&(_.name=m.defaultName)});const g=()=>{_.name&&(q("duplicate",_.name),G())},G=()=>{_.name="",q("close")};
2return(h,L)=>(u(),F(ye,{"max-width":"min(600px, 90vw)","model-value":m.open,"onUpdate:modelValue":G,scrim:!1,transition:"dialog-transition"},{default:l(()=>[s(ge,{class:"dialog-wrapper",elevation:"12"},{default:l(()=>[o("div",As,[o("div",Ls,[s(v,{size:"24",color:"primary"},{default:l(()=>[...L[3]||(L[3]=[r("mdi-content-copy",-1)])]),_:1})]),o("h3",Rs,E(m.title),1)]),o("div",zs,[s(Ne,{modelValue:_.name,"onUpdate:modelValue":L[0]||(L[0]=P=>_.name=P),variant:"outlined",label:m.label,onKeyup:L[1]||(L[1]=Ya(P=>{g()},["enter"])),autofocus:"",class:"styled-input",color:"primary","hide-details":""},null,8,["modelValue","label"])]),o("div",Ps,[s(I,{color:"control",variant:"outlined",onClick:G,class:"action-btn btn-cancel"},{default:l(()=>[...L[4]||(L[4]=[r("Cancel",-1)])]),_:1}),s(I,{color:"primary",variant:"elevated",onClick:L[2]||(L[2]=P=>{g()}),class:"action-btn btn-duplicate",disabled:!_.name},{default:l(()=>[r(E(m.buttonText),1)]),_:1},8,["disabled"])])]),_:1})]),_:1},8,["model-value"]))}}),Us=Te(Ms,[["__scopeId","data-v-38c34f75"]]),Os={class:"dialog-header"},Ws={class:"header-icon"},Fs={key:0,class:"group-subtitle"},Ns={key:0},js={class:"dialog-content"},qs={key:0,class:"empty-note"},Ys={class:"action-icon"},Ks={class:"action-icon"},Xs={key:0,class:"set-choices"},Qs={class:"info-note"},Hs={class:"dialog-actions"},Zs=xe({__name:"GroupBackgroundDialog",props:{modelValue:{type:Boolean},boardCount:{},groupName:{}},emits:["update:modelValue","paint-all","spread"],setup(J,{emit:oe}){const q=J,m=oe,_=A(!1);ce(()=>q.modelValue,G=>{G||(_.value=!1)});const g=()=>m("update:modelValue",!1);return(G,h)=>(u(),F(ye,{"max-width":"min(560px, 92vw)","model-value":J.modelValue,"onUpdate:modelValue":g,scrim:!1,transition:"dialog-transition"},{default:l(()=>[s(ge,{class:"dialog-wrapper",elevation:"12"},{default:l(()=>[o("div",Os,[o("div",Ws,[s(v,{size:"24",color:"primary"},{default:l(()=>[...h[4]||(h[4]=[r("mdi-palette-outline",-1)])]),_:1})]),o("div",null,[h[5]||(h[5]=o("h3",{class:"dialog-title"},"Group Background",-1)),J.boardCount?(u(),y("p",Fs,[r(" Restyle the "+E(J.boardCount)+" board"+E(J.boardCount===1?"":"s"),1),J.groupName?(u(),y("span",Ns," in "+E(J.groupName),1)):B("",!0)])):B("",!0)])]),o("div",js,[J.boardCount?(u(),y(re,{key:1},[o("button",{type:"button",class:"action-row","data-testid":"group-bg-paint-all",onClick:h[0]||(h[0]=L=>G.$emit("paint-all"))},[o("span",Ys,[s(v,{size:"18",color:"primary"},{default:l(()=>[...h[6]||(h[6]=[r("mdi-format-color-fill",-1)])]),_:1})]),h[8]||(h[8]=o("span",{class:"action-text"},[o("span",{class:"action-title"},"Paint all the same"),o("span",{class:"action-sub"},"Pick one background, apply it to every board")],-1)),s(v,{size:"20",color:"grey"},{default:l(()=>[...h[7]||(h[7]=[r("mdi-chevron-right",-1)])]),_:1})]),o("button",{type:"button",class:"action-row","data-testid":"group-bg-spread",onClick:h[1]||(h[1]=L=>_.value=!_.value)},[o("span",Ks,[s(v,{size:"18",color:"primary"},{default:l(()=>[...h[9]||(h[9]=[r("mdi-palette-swatch",-1)])]),_:1})]),h[10]||(h[10]=o("span",{class:"action-text"},[o("span",{class:"action-title"},"Spread a set across all"),o("span",{class:"action-sub"},"Pastels or Soft gradients, one per board in order")],-1)),s(v,{size:"20",color:"grey"},{default:l(()=>[r(E(_.value?"mdi-chevron-down":"mdi-chevron-right"),1)]),_:1})]),_.value?(u(),y("div",Xs,[s(I,{variant:"outlined",color:"primary",class:"set-btn","data-testid":"group-bg-set-pastels",onClick:h[2]||(h[2]=L=>G.$emit("spread","pastels"))},{default:l(()=>[...h[11]||(h[11]=[r(" Pastels ",-1)])]),_:1}),s(I,{variant:"outlined",color:"primary",class:"set-btn","data-testid":"group-bg-set-gradients",onClick:h[3]||(h[3]=L=>G.$emit("spread","soft-gradients"))},{default:l(()=>[...h[12]||(h[12]=[r(" Soft gradients ",-1)])]),_:1})])):B("",!0),o("div",Qs,[s(v,{size:"15",color:"grey"},{default:l(()=>[...h[13]||(h[13]=[r("mdi-information-outline",-1)])]),_:1}),h[14]||(h[14]=o("span",null,"You can still change any board on its own afterwards.",-1))])],64)):(u(),y("div",qs," This group has no boards yet. Add a board first, then set its look here. "))]),o("div",Hs,[s(I,{color:"control",variant:"outlined",class:"action-btn btn-cancel",onClick:g},{default:l(()=>[...h[15]||(h[15]=[r("Close",-1)])]),_:1})])]),_:1})]),_:1},8,["model-value"]))}}),Js=Te(Zs,[["__scopeId","data-v-8284e9be"]]),ei={class:"dialog-header"},ti={class:"header-icon"},ai={class:"dialog-content"},oi={class:"url-input-section"},li={class:"url-input-section"},si={class:"d-flex align-center"},ii={class:"examples-section"}
2,ri={class:"content-examples"},di={class:"content-type"},ni={class:"type-header"},ui={class:"content-type"},ci={class:"type-header"},mi={class:"content-type"},pi={class:"type-header"},vi={class:"content-type"},gi={class:"type-header"},fi={class:"dialog-actions"},bi=xe({__name:"EmbedWidgetDialog",props:{modelValue:{type:Boolean}},emits:["update:modelValue","create"],setup(J,{emit:oe}){const q=J,m=oe,_=A(""),g=A(""),G=A("url"),h=z({get:()=>q.modelValue,set:Q=>m("update:modelValue",Q)}),L=()=>{_.value="",g.value="",G.value="url",h.value=!1},P=()=>{!_.value.trim()&&!g.value.trim()||(m("create",{url:_.value||null,code:g.value||null}),_.value="",g.value="",G.value="url")};return ce(_,Q=>{Q&&g.value&&(g.value="")}),ce(g,Q=>{Q&&_.value&&(_.value="")}),(Q,p)=>(u(),F(ye,{width:"800",modelValue:h.value,"onUpdate:modelValue":p[4]||(p[4]=C=>h.value=C),persistent:"",scrim:!1,transition:"dialog-transition"},{default:l(()=>[s(ge,{class:"dialog-wrapper",elevation:"12"},{default:l(()=>[o("div",ei,[o("div",ti,[s(v,{size:"24",color:"primary"},{default:l(()=>[...p[5]||(p[5]=[r("mdi-web",-1)])]),_:1})]),p[6]||(p[6]=o("h3",{class:"dialog-title"},"Add Embed Widget",-1))]),o("div",ai,[s(bs,{modelValue:G.value,"onUpdate:modelValue":p[0]||(p[0]=C=>G.value=C),class:"mb-4",color:"primary"},{default:l(()=>[s(Ua,{value:"url"},{default:l(()=>[...p[7]||(p[7]=[r("URL",-1)])]),_:1}),s(Ua,{value:"embed"},{default:l(()=>[...p[8]||(p[8]=[r("Embed Code",-1)])]),_:1})]),_:1},8,["modelValue"]),s(ys,{modelValue:G.value,"onUpdate:modelValue":p[3]||(p[3]=C=>G.value=C)},{default:l(()=>[s(Oa,{value:"url"},{default:l(()=>[o("div",oi,[p[10]||(p[10]=o("p",{class:"section-description mb-4"}," Enter the URL of the content you want to embed ",-1)),s(Ne,{ref:"urlField",modelValue:_.value,"onUpdate:modelValue":p[1]||(p[1]=C=>_.value=C),label:"Content URL",placeholder:"https://docs.google.com/document/d/...",variant:"outlined",class:"embed-input","prepend-inner-icon":"mdi-link"},{"append-inner":l(()=>[_.value?(u(),F(v,{key:0,color:"success",size:"small"},{default:l(()=>[...p[9]||(p[9]=[r(" mdi-check-circle ",-1)])]),_:1})):B("",!0)]),_:1},8,["modelValue"])])]),_:1}),s(Oa,{value:"embed"},{default:l(()=>[o("div",li,[p[13]||(p[13]=o("p",{class:"section-description mb-4"}," Paste the full embed code from PowerPoint, OneDrive, or other services ",-1)),s(Ja,{modelValue:g.value,"onUpdate:modelValue":p[2]||(p[2]=C=>g.value=C),label:"Embed Code",placeholder:"<iframe src=...></iframe>",variant:"outlined",class:"embed-input","prepend-inner-icon":"mdi-code-tags",rows:"4"},null,8,["modelValue"]),g.value&&!g.value.includes("<iframe")?(u(),F(Me,{key:0,type:"warning",density:"compact",class:"mt-2",variant:"tonal"},{default:l(()=>[o("div",si,[s(v,{size:"small",class:"mr-2"},{default:l(()=>[...p[11]||(p[11]=[r("mdi-alert",-1)])]),_:1}),p[12]||(p[12]=o("span",null,[r("This doesn't look like embed code. Embed code should contain an "),o("code",null,"<iframe>"),r(" tag.")],-1))])]),_:1})):B("",!0)])]),_:1})]),_:1},8,["modelValue"]),o("div",ii,[p[26]||(p[26]=o("h3",{class:"examples-title"},"Supported Content Types",-1)),o("div",ri,[o("div",di,[o("div",ni,[s(v,{color:"red",class:"type-icon"},{default:l(()=>[...p[14]||(p[14]=[r("mdi-youtube",-1)])]),_:1}),p[15]||(p[15]=o("span",{class:"type-title"},"Video Platforms",-1))]),p[16]||(p[16]=o("div",{class:"type-examples"},[o("span",{class:"example-item"},"YouTube"),o("span",{class:"example-item"},"Vimeo")],-1))]),o("div",ui,[o("div",ci,[s(v,{color:"blue",class:"type-icon"},{default:l(()=>[...p[17]||(p[17]=[r("mdi-file-document",-1)])]),_:1}),p[18]||(p[18]=o("span",{class:"type-title"},"Documents",-1))]),p[19]||(p[19]=o("div",{class:"type-examples"},[o("span",{class:"example-item"},"Google Docs/Sheets/Slides"),o("span",{class:"example-item"},"PDF"),o("span",{class:"example-item"},"PowerPoint/Word/Excel (use Embed Code tab)")],-1))]),o("div",mi,[o("div",pi,[s(v,{color:"purple",class:"type-icon"},{default:l(()=>[...p[20]||(p[20]=[r("mdi-palette",-1)])]),_:1}),p[21]||(p[21]=o("span",{class:"type-title"},"Design Tools",-1))]),p[22]||(p[22]=o("div",{class:"type-examples"},[o("span",{class:"example-item"},"Canva"),o("span",{class:"example-item"},"Figma"),o("span",{class:"example-item"}
2,"Interactive Tools")],-1))]),o("div",vi,[o("div",gi,[s(v,{color:"green",class:"type-icon"},{default:l(()=>[...p[23]||(p[23]=[r("mdi-web",-1)])]),_:1}),p[24]||(p[24]=o("span",{class:"type-title"},"Websites",-1))]),p[25]||(p[25]=o("div",{class:"type-examples"},[o("span",{class:"example-item"},"Educational Sites"),o("span",{class:"example-item"},"Online Tools"),o("span",{class:"example-item"},"Reference Materials")],-1))])])])]),o("div",fi,[s(I,{color:"control",variant:"outlined",onClick:L,class:"action-btn btn-cancel"},{default:l(()=>[...p[27]||(p[27]=[r(" Cancel ",-1)])]),_:1}),s(I,{color:"primary",variant:"elevated",disabled:!_.value&&!g.value,onClick:P,class:"action-btn btn-create"},{default:l(()=>[s(v,{start:""},{default:l(()=>[...p[28]||(p[28]=[r("mdi-plus",-1)])]),_:1}),p[29]||(p[29]=r(" Add Content ",-1))]),_:1},8,["disabled"])])]),_:1})]),_:1},8,["modelValue"]))}}),yi=Te(bi,[["__scopeId","data-v-08a6fec5"]]),wi={class:"dialog-header"},_i={class:"header-icon"},hi={class:"dialog-content"},ki={class:"url-input-section"},Bi={key:0,class:"url-preview-section"},Vi={class:"preview-card"},Ci={class:"preview-info"},Di={class:"preview-platform"},xi={class:"examples-section"},Ti={class:"platforms-showcase"},Si={class:"platform-example"},Ii={class:"platform-header"},Gi={class:"platform-example"},$i={class:"platform-header"},Ei={class:"platform-example"},Ai={class:"platform-header"},Li={class:"platform-example"},Ri={class:"platform-header"},zi={class:"dialog-actions"},Pi=xe({__name:"VideoWidgetDialog",props:{modelValue:{type:Boolean}},emits:["update:modelValue","create"],setup(J,{emit:oe}){const q=J,m=oe,_=A(""),g=z({get:()=>q.modelValue,set:C=>m("update:modelValue",C)}),G=z(()=>ws(_.value)),h=z(()=>qt(_.value)==!0&&_.value!==""&&!G.value),L=z(()=>{if(!_.value||_.value==="")return"";const C=qt(_.value);return C!==!0?C:G.value??""}),P=z(()=>_.value?_.value.includes("youtube.com")||_.value.includes("youtu.be")?_s(_.value)?"YouTube Playlist":"YouTube Video":_.value.includes("vimeo.com")?"Vimeo Video":"Direct Video URL":""),Q=()=>{_.value="",g.value=!1},p=()=>{_.value.trim()!==""&&(m("create",{video_url:_.value}),_.value="")};return(C,f)=>(u(),F(ye,{width:"800",modelValue:g.value,"onUpdate:modelValue":f[1]||(f[1]=T=>g.value=T),persistent:"",scrim:!1,transition:"dialog-transition"},{default:l(()=>[s(ge,{class:"dialog-wrapper",elevation:"12"},{default:l(()=>[o("div",wi,[o("div",_i,[s(v,{size:"24",color:"primary"},{default:l(()=>[...f[2]||(f[2]=[r("mdi-play-circle",-1)])]),_:1})]),f[3]||(f[3]=o("h3",{class:"dialog-title"},"Add Video Widget",-1))]),o("div",hi,[o("div",ki,[f[5]||(f[5]=o("h3",{class:"section-title"},"Video URL",-1)),f[6]||(f[6]=o("p",{class:"section-description"}," Enter a URL from YouTube (video or playlist), Vimeo, or any supported video platform ",-1)),s(Ne,{ref:"urlField",modelValue:_.value,"onUpdate:modelValue":f[0]||(f[0]=T=>_.value=T),"data-testid":"boards-video-url-field",label:"Video URL",placeholder:"https://www.youtube.com/watch?v=dQw4w9WgXcQ",rules:[$(qt)],required:"",variant:"outlined",class:"video-input","prepend-inner-icon":"mdi-link","error-messages":L.value},{"append-inner":l(()=>[h.value?(u(),F(v,{key:0,color:"success",size:"small"},{default:l(()=>[...f[4]||(f[4]=[r(" mdi-check-circle ",-1)])]),_:1})):B("",!0)]),_:1},8,["modelValue","rules","error-messages"])]),_.value&&h.value?(u(),y("div",Bi,[o("div",Vi,[s(v,{class:"preview-icon",color:"success"},{default:l(()=>[...f[7]||(f[7]=[r("mdi-check-circle",-1)])]),_:1}),o("div",Ci,[f[8]||(f[8]=o("span",{class:"preview-status"},"â Valid video URL detected",-1)),o("span",Di,E(P.value),1)])])])):B("",!0),o("div",xi,[f[22]||(f[22]=o("h4",{class:"examples-title"},"Supported Platforms & Examples",-1)),o("div",Ti,[o("div",Si,[o("div",Ii,[s(v,{color:"red",size:"20"},{default:l(()=>[...f[9]||(f[9]=[r("mdi-youtube",-1)])]),_:1}),f[10]||(f[10]=o("span",{class:"platform-name"},"YouTube",-1))]),f[11]||(f[11]=o("code",{class:"example-url"},"https://youtube.com/watch?v=...",-1)),f[12]||(f[12]=o("code",{class:"example-url mt-1"},"https://youtube.com/playlist?list=...",-1))]),o("div",Gi,[o("div",$i,[s(v,{c
2olor:"blue",size:"20"},{default:l(()=>[...f[13]||(f[13]=[r("mdi-vimeo",-1)])]),_:1}),f[14]||(f[14]=o("span",{class:"platform-name"},"Vimeo",-1))]),f[15]||(f[15]=o("code",{class:"example-url"},"https://vimeo.com/123456789",-1))]),o("div",Ei,[o("div",Ai,[s(v,{color:"primary",size:"20"},{default:l(()=>[...f[16]||(f[16]=[r("mdi-video",-1)])]),_:1}),f[17]||(f[17]=o("span",{class:"platform-name"},"Direct Video",-1))]),f[18]||(f[18]=o("code",{class:"example-url"},"https://example.com/video.mp4",-1))]),o("div",Li,[o("div",Ri,[s(v,{color:"purple",size:"20"},{default:l(()=>[...f[19]||(f[19]=[r("mdi-web",-1)])]),_:1}),f[20]||(f[20]=o("span",{class:"platform-name"},"Embed URLs",-1))]),f[21]||(f[21]=o("code",{class:"example-url"},"https://player.vimeo.com/video/...",-1))])])])]),o("div",zi,[s(I,{color:"control",variant:"outlined",onClick:Q,class:"action-btn btn-cancel","data-testid":"video-dialog-cancel-btn"},{default:l(()=>[...f[23]||(f[23]=[r(" Cancel ",-1)])]),_:1}),s(I,{color:"primary",variant:"elevated",disabled:!h.value,onClick:p,class:"action-btn btn-create","data-testid":"boards-video-create-btn"},{default:l(()=>[s(v,{start:""},{default:l(()=>[...f[24]||(f[24]=[r("mdi-plus",-1)])]),_:1}),f[25]||(f[25]=r(" Create Video Widget ",-1))]),_:1},8,["disabled"])])]),_:1})]),_:1},8,["modelValue"]))}}),Mi=Te(Pi,[["__scopeId","data-v-7f18de2f"]]),Ui={class:"dialog-header"},Oi={class:"header-icon"},Wi={class:"dialog-content"},Fi={class:"url-input-section"},Ni={key:0,class:"board-link-section"},ji={class:"dialog-actions"},qi=xe({__name:"QrCodeWidgetDialog",props:{modelValue:{type:Boolean},boardGroupId:{}},emits:["update:modelValue","create"],setup(J,{emit:oe}){const q=Za(),m=J,_=oe,g=A(""),G=A(!1),h=z({get:()=>m.modelValue,set:f=>_("update:modelValue",f)}),L=z(()=>g.value!==""&&Wa(g.value)),P=z(()=>g.value?Wa(g.value)?"":"Please enter a valid URL":""),Q=async()=>{var f,T;if(!(!m.boardGroupId||!((f=q.teacher)!=null&&f.id)||!((T=q.selectedClass)!=null&&T.id))){G.value=!0;try{const R=await U.shareBoardGroup(q.teacher.id,q.selectedClass.id,m.boardGroupId);g.value=`${window.location.origin}/shared/${R.uuid}`}catch(R){console.error("Error creating share link:",R)}finally{G.value=!1}}},p=()=>{g.value="",h.value=!1},C=()=>{L.value&&(_("create",{url:hs(g.value)}),g.value="")};return(f,T)=>(u(),F(ye,{width:"600",modelValue:h.value,"onUpdate:modelValue":T[1]||(T[1]=R=>h.value=R),persistent:"",scrim:!1,transition:"dialog-transition"},{default:l(()=>[s(ge,{class:"dialog-wrapper",elevation:"12"},{default:l(()=>[o("div",Ui,[o("div",Oi,[s(v,{size:"24",color:"primary"},{default:l(()=>[...T[2]||(T[2]=[r("mdi-qrcode",-1)])]),_:1})]),T[3]||(T[3]=o("h3",{class:"dialog-title"},"Add QR Code Widget",-1))]),o("div",Wi,[o("div",Fi,[T[5]||(T[5]=o("h3",{class:"section-title"},"URL",-1)),T[6]||(T[6]=o("p",{class:"section-description"}," Enter a URL to generate a scannable QR code for your board ",-1)),s(Ne,{ref:"urlField",modelValue:g.value,"onUpdate:modelValue":T[0]||(T[0]=R=>g.value=R),label:"URL",placeholder:"https://example.com",variant:"outlined",class:"styled-input",color:"primary","prepend-inner-icon":"mdi-link","error-messages":P.value,"hide-details":"auto",autofocus:"",onKeyup:Ya(C,["enter"])},{"append-inner":l(()=>[L.value?(u(),F(v,{key:0,color:"success",size:"small"},{default:l(()=>[...T[4]||(T[4]=[r(" mdi-check-circle ",-1)])]),_:1})):B("",!0)]),_:1},8,["modelValue","error-messages"])]),J.boardGroupId?(u(),y("div",Ni,[s(I,{variant:"text",size:"small",color:"primary",onClick:Q,loading:G.value,class:"board-link-btn"},{default:l(()=>[s(v,{start:"",size:"small"},{default:l(()=>[...T[7]||(T[7]=[r("mdi-link-variant",-1)])]),_:1}),T[8]||(T[8]=r(" Or link to this board group ",-1))]),_:1},8,["loading"])])):B("",!0)]),o("div",ji,[s(I,{color:"control",variant:"outlined",onClick:p,class:"action-btn btn-cancel"},{default:l(()=>[...T[9]||(T[9]=[r(" Cancel ",-1)])]),_:1}),s(I,{color:"primary",variant:"elevated",disabled:!L.value,onClick:C,class:"action-btn btn-create"},{default:l(()=>[s(v,{start:""},{default:l(()=>[...T[10]||(T[10]=[r("mdi-plus",-1)])]),_:1}),T[11]||(T[11]=r(" Create QR Code ",-1))]),_:1},8,["disabled"])])]),_:1})]),_:1},8,["modelValue"]))}}),Yi=Te(qi,[["__scopeId","data-v-6954d323"]]),Ki={class:"dialog-header"},Xi={class:"header-icon"},Qi={class:"dialog-content"},Hi={class:"audio-title-section"},Zi={key:0,class:"recording-start-section"},Ji={class:"recording-prompt"},er={key:0,class:"mt-2"},tr={key:1,class:"recording-active-section"},ar={class:"recording-indicator"},or={class:"recording-time"},lr={key:2,class:"playback-section"},sr={class:"playback-controls"},ir={class:"audio-player"},rr={class:"audio-duration"},dr={class:"playback-actions mt-3"},nr={key:0,class:"upload-progress"},ur={class:"upload-message"},cr={class:"dialog-actions"},mr=xe({__name:"VoiceRecordingWidgetDialog",props:{modelValue:{type:Boolean}},emits:["update:modelValue","create"],setup(J,{emit:oe}){const q=J,m=oe,_=A("Audio Recording"),g=A(""),G=A(!1),h=A(0),L=A(!1),P=A(null),Q=A("MediaRecorder"in window&&navigator.mediaDevices&&navigator.mediaDevices.getUserMedia),p=A(!1),C=A(""),f=A(null),T=A([]),R=A(null),w=A(null),Z=z({get:()=>q.modelValue,set:ne=>m("update:modelValue",ne)}
2),je=()=>{_.value="Audio Recording",g.value="",G.value=!1,h.value=0,L.value=!1,P.value=null,p.value=!1,C.value="",Z.value=!1,f.value&&f.value.stop()},Ge=async()=>{C.value="";try{const ne=await navigator.mediaDevices.getUserMedia({audio:!0}),a=MediaRecorder.isTypeSupported("audio/webm")?"audio/webm":MediaRecorder.isTypeSupported("audio/mp4")?"audio/mp4":"audio/ogg";f.value=new MediaRecorder(ne,{mimeType:a}),T.value=[],f.value.ondataavailable=X=>{X.data.size>0&&T.value.push(X.data)},f.value.onstop=()=>{const X=new Blob(T.value,{type:a});P.value=X,ne.getTracks().forEach(fe=>fe.stop())},f.value.start(),G.value=!0,h.value=0,R.value=setInterval(()=>{h.value++},1e3)}catch(ne){console.error("Error starting recording:",ne),C.value="Unable to access microphone. Please ensure you have granted permission."}},te=()=>{f.value&&G.value&&(f.value.stop(),G.value=!1,R.value&&(clearInterval(R.value),R.value=null))},O=ne=>{const a=Math.floor(ne/60),X=ne%60;return`${a}:${X.toString().padStart(2,"0")}`},de=()=>{!P.value||!w.value||(L.value?(w.value.pause(),L.value=!1):(w.value.src||(w.value.src=URL.createObjectURL(P.value)),w.value.play(),L.value=!0))},Ue=()=>{C.value="",P.value=null,h.value=0,L.value=!1,w.value&&(w.value.src="")},Dt=async()=>{if(!P.value){C.value="Please record audio first.";return}p.value=!0;try{let ne=null;if(h.value&&h.value>0)ne=h.value;else try{const a=URL.createObjectURL(P.value),X=new Audio;ne=await new Promise(fe=>{let $e=!1;const Ee=()=>{$e||($e=!0,URL.revokeObjectURL(a),X.remove())},et=()=>{if($e)return;const ee=X.duration;ee&&isFinite(ee)&&ee>0?(Ee(),fe(ee)):X.readyState>=1?setTimeout(()=>{const D=X.duration;D&&isFinite(D)&&D>0?(Ee(),fe(D)):(Ee(),fe(null))},100):(Ee(),fe(null))};X.addEventListener("loadedmetadata",et),X.addEventListener("durationchange",et),X.addEventListener("canplay",et),X.addEventListener("error",ee=>{Ee(),fe(null)}),setTimeout(()=>{$e||(Ee(),fe(null))},5e3),X.preload="metadata",X.src=a,X.load()})}catch{}m("create",{audioBlob:P.value,title:_.value||"Audio Recording",description:g.value||"",duration:ne}),_.value="Audio Recording",g.value="",P.value=null,h.value=0,L.value=!1,C.value=""}catch{C.value="Failed to create audio widget. Please try again."}finally{p.value=!1}};return(ne,a)=>(u(),F(ye,{width:"500",modelValue:Z.value,"onUpdate:modelValue":a[4]||(a[4]=X=>Z.value=X),persistent:"",scrim:!1,transition:"dialog-transition"},{default:l(()=>[s(ge,{class:"dialog-wrapper",elevation:"12"},{default:l(()=>[o("div",Ki,[o("div",Xi,[s(v,{size:"24",color:"primary"},{default:l(()=>[...a[5]||(a[5]=[r("mdi-microphone",-1)])]),_:1})]),a[6]||(a[6]=o("h3",{class:"dialog-title"},"Record Audio Widget",-1))]),o("div",Qi,[o("div",Hi,[a[7]||(a[7]=o("h3",{class:"section-title"},"Audio Details",-1)),s(Ne,{modelValue:_.value,"onUpdate:modelValue":a[0]||(a[0]=X=>_.value=X),label:"Title for your audio recording",placeholder:"Audio Recording",variant:"outlined",class:"audio-input",maxlength:"100",counter:"",density:"compact"},null,8,["modelValue"]),s(Ja,{modelValue:g.value,"onUpdate:modelValue":a[1]||(a[1]=X=>g.value=X),label:"Description (Optional)",placeholder:"Add a description for this audio recording...",variant:"outlined",class:"audio-input mt-2",maxlength:"500",counter:"",rows:"2",density:"compact"},null,8,["modelValue"])]),!P.value&&!G.value?(u(),y("div",Zi,[o("div",Ji,[s(v,{size:"48",color:"primary",class:"mb-3"},{default:l(()=>[...a[8]||(a[8]=[r("mdi-microphone",-1)])]),_:1}),a[12]||(a[12]=o("h4",{class:"mb-2"},"Ready to Record",-1)),a[13]||(a[13]=o("p",{class:"text-body-2 mb-3"},"Click the button below to start recording your audio",-1)),s(I,{color:"primary",variant:"elevated",onClick:Ge,disabled:!Q.value,class:"record-btn"},{default:l(()=>[s(v,{start:""},{default:l(()=>[...a[9]||(a[9]=[r("mdi-record",-1)])]),_:1}),a[10]||(a[10]=r(" Start Recording ",-1))]),_:1},8,["disabled"]),Q.value?B("",!0):(u(),y("div",er,[s(Me,{type:"warning",variant:"tonal",density:"compact"},{default:l(()=>[...a[11]||(a[11]=[r(" Audio recording is not supported in this browser ",-1)])]),_:1})]))])])):G.value?(u(),y("div",tr,[o("div",ar,[a[16]||(a[16]=o("div",{class:"recording-animation"},[o("span",{class:"recording-dot"})],-1)),a[17]||(a[17]=o("h4",{class:"mb-2"},"Recording...",-1)),o("div",or,E(O(h.value)),1),s(I,{color:"error",variant:"elevated",onClick:te,class:"mt-3"},{default:l(()=>[s(v,{start:""},{default:l(()=>[...a[14]||(a[14]=[r("mdi-stop",-1)])]),_:1}),a[15]||(a[15]=r(" Stop Recording ",-1))]),_:1})])])):P.value?(u(),y("div",lr,[o("div",sr,[s(v,{size:"40",color:"success",class:"mb-2"},{default:l(()=>[...a[18]||(a[18]=[r("mdi-check-circle",-1)])]),_:1}),a[21]||(a[21]=o("h4",{class:"mb-2"},"Recording Complete",-1)),o("div",ir,[s(I,{icon:L.value?"mdi-pause":"mdi-play",color:"primary",onClick:de,class:"play-btn"},null,8,["icon"]),o("span",rr,E(O(h.value)),1)]),o("audio",{ref_key:"previewAudio",ref:w,onEnded:a[2]||(a[2]=X=>L.value=!1),style:{display:"none"}},null,544),o("div",dr,[s(I,{variant:"outlined",onClick:Ue,class:"mr-2",size:"small"},{default:l(()=>[s(v,{start:""},{default:l(()=>[...a[19]||(a[19]=[r("mdi-refresh",-1)])]),_:1}),a[20]||(a[20]=r(" Record Again ",-1))]),_:1}
2)])])])):B("",!0)]),p.value?(u(),y("div",nr,[o("div",ur,[s(v,{color:"primary",class:"mr-2"},{default:l(()=>[...a[22]||(a[22]=[r("mdi-cloud-upload",-1)])]),_:1}),a[23]||(a[23]=o("span",null,"Uploading your audio recording...",-1))]),s(Ka,{color:"primary",indeterminate:"",class:"mt-2"})])):B("",!0),C.value?(u(),F(Me,{key:1,type:"error",variant:"tonal",density:"compact",closable:"",class:"dialog-error","onClick:close":a[3]||(a[3]=X=>C.value="")},{default:l(()=>[r(E(C.value),1)]),_:1})):B("",!0),o("div",cr,[s(I,{color:"control",variant:"outlined",onClick:je,class:"action-btn btn-cancel"},{default:l(()=>[...a[24]||(a[24]=[r(" Cancel ",-1)])]),_:1}),s(I,{color:"primary",variant:"elevated",disabled:!P.value||p.value,loading:p.value,onClick:Dt,class:"action-btn btn-create"},{default:l(()=>[p.value?B("",!0):(u(),F(v,{key:0,start:""},{default:l(()=>[...a[25]||(a[25]=[r("mdi-plus",-1)])]),_:1})),p.value?(u(),F(v,{key:1,start:""},{default:l(()=>[...a[26]||(a[26]=[r("mdi-cloud-upload",-1)])]),_:1})):B("",!0),r(" "+E(p.value?"Uploading Audio...":"Add Audio Widget"),1)]),_:1},8,["disabled","loading"])])]),_:1})]),_:1},8,["modelValue"]))}}),pr=Te(mr,[["__scopeId","data-v-818ba7d8"]]),vr={class:"dialog-header"},gr={class:"header-icon"},fr={class:"dialog-content"},br={class:"preview-section"},yr={key:0,class:"permission-prompt"},wr={class:"prompt-icon"},_r={key:1,class:"permission-denied"},hr={class:"denied-icon"},kr={key:2,class:"no-camera"},Br={class:"no-camera-icon"},Vr={key:3,class:"camera-preview"},Cr={class:"preview-overlay"},Dr={key:0,class:"options-section"},xr={key:0,class:"option-group"},Tr={class:"option-header"},Sr={class:"option-group"},Ir={class:"option-header"},Gr={class:"mirror-toggle"},$r={class:"mirror-label"},Er={class:"dialog-actions"},Ar=xe({__name:"WebcamWidgetDialog",props:{modelValue:{type:Boolean}},emits:["update:modelValue","create"],setup(J,{emit:oe}){const q=J,m=oe,_=A(null),g=ze({permissionState:"prompt",isRequesting:!1,cameras:[],selectedDeviceId:null,mirrored:!0,stream:null}),G=z({get:()=>q.modelValue,set:R=>m("update:modelValue",R)}),h=z(()=>g.cameras.map((R,w)=>({label:R.label||`Camera ${w+1}`,deviceId:R.deviceId}))),L=async()=>{g.isRequesting=!0;try{const R=await navigator.mediaDevices.getUserMedia({video:g.selectedDeviceId?{deviceId:{exact:g.selectedDeviceId}}:!0});g.stream=R,g.permissionState="granted",_.value&&(_.value.srcObject=R),await P()}catch(R){R.name==="NotAllowedError"||R.name==="PermissionDeniedError"?g.permissionState="denied":R.name==="NotFoundError"||R.name==="DevicesNotFoundError"?g.permissionState="no-camera":(console.error("Camera error:",R),g.permissionState="denied")}finally{g.isRequesting=!1}},P=async()=>{try{const R=await navigator.mediaDevices.enumerateDevices();if(g.cameras=R.filter(w=>w.kind==="videoinput"),g.stream&&g.cameras.length>0){const Z=g.stream.getVideoTracks()[0].getSettings();g.selectedDeviceId=Z.deviceId||g.cameras[0].deviceId}}catch(R){console.error("Error enumerating cameras:",R)}},Q=async()=>{if(g.selectedDeviceId){p();try{const R=await navigator.mediaDevices.getUserMedia({video:{deviceId:{exact:g.selectedDeviceId}}});g.stream=R,_.value&&(_.value.srcObject=R)}catch(R){console.error("Error switching camera:",R)}}},p=()=>{g.stream&&(g.stream.getTracks().forEach(R=>R.stop()),g.stream=null)},C=()=>{p(),T(),G.value=!1},f=()=>{m("create",{deviceId:g.selectedDeviceId,mirrored:g.mirrored}),p(),T()},T=()=>{g.permissionState="prompt",g.isRequesting=!1,g.cameras=[],g.selectedDeviceId=null,g.mirrored=!0};return ce(()=>q.modelValue,R=>{R||(p(),T())}),Xa(()=>{p()}),(R,w)=>(u(),F(ye,{width:"700",modelValue:G.value,"onUpdate:modelValue":w[2]||(w[2]=Z=>G.value=Z),persistent:"",scrim:!1,transition:"dialog-transition"},{default:l(()=>[s(ge,{class:"dialog-wrapper",elevation:"12"},{default:l(()=>[o("div",vr,[o("div",gr,[s(v,{size:"24",color:"primary"},{default:l(()=>[...w[3]||(w[3]=[r("mdi-webcam",-1)])]),_:1})]),w[4]||(w[4]=o("h3",{class:"dialog-title"},"Add Webcam Widget",-1))]),o("div",fr,[o("div",br,[g.permissionState==="prompt"?(u(),y("div",yr,[o("div",wr,[s(v,{size:"64",color:"primary"},{default:l(()=>[...w[5]||(w[5]=[r("mdi-webcam",-1)])]),_:1})]),w[8]||(w[8]=o("h3",{class:"prompt-title"},"Camera Access Required",-1)),w[9]||(w[9]=o("p",{class:"prompt-description"}
2," Click the button below to enable camera access. You may need to allow camera permissions in your browser. ",-1)),s(I,{color:"primary",variant:"elevated",size:"large",loading:g.isRequesting,onClick:L},{default:l(()=>[s(v,{start:""},{default:l(()=>[...w[6]||(w[6]=[r("mdi-camera",-1)])]),_:1}),w[7]||(w[7]=r(" Enable Camera ",-1))]),_:1},8,["loading"])])):g.permissionState==="denied"?(u(),y("div",_r,[o("div",hr,[s(v,{size:"64",color:"error"},{default:l(()=>[...w[10]||(w[10]=[r("mdi-camera-off",-1)])]),_:1})]),w[13]||(w[13]=o("h3",{class:"denied-title"},"Camera Access Denied",-1)),w[14]||(w[14]=o("p",{class:"denied-description"}," Camera access was denied. Please enable camera permissions in your browser settings and try again. ",-1)),s(I,{color:"primary",variant:"outlined",onClick:L},{default:l(()=>[s(v,{start:""},{default:l(()=>[...w[11]||(w[11]=[r("mdi-refresh",-1)])]),_:1}),w[12]||(w[12]=r(" Try Again ",-1))]),_:1})])):g.permissionState==="no-camera"?(u(),y("div",kr,[o("div",Br,[s(v,{size:"64",color:"warning"},{default:l(()=>[...w[15]||(w[15]=[r("mdi-video-off",-1)])]),_:1})]),w[18]||(w[18]=o("h3",{class:"no-camera-title"},"No Camera Found",-1)),w[19]||(w[19]=o("p",{class:"no-camera-description"}," No camera was detected. Please connect a camera and try again. ",-1)),s(I,{color:"primary",variant:"outlined",onClick:L},{default:l(()=>[s(v,{start:""},{default:l(()=>[...w[16]||(w[16]=[r("mdi-refresh",-1)])]),_:1}),w[17]||(w[17]=r(" Retry ",-1))]),_:1})])):g.permissionState==="granted"?(u(),y("div",Vr,[o("video",{ref_key:"previewVideo",ref:_,autoplay:"",playsinline:"",muted:"",class:Pe({mirrored:g.mirrored})},null,2),o("div",Cr,[s(v,{color:"white",size:"small"},{default:l(()=>[...w[20]||(w[20]=[r("mdi-check-circle",-1)])]),_:1}),w[21]||(w[21]=o("span",null,"Camera Active",-1))])])):B("",!0)]),g.permissionState==="granted"?(u(),y("div",Dr,[g.cameras.length>1?(u(),y("div",xr,[o("div",Tr,[s(v,{color:"primary",size:"20"},{default:l(()=>[...w[22]||(w[22]=[r("mdi-camera-switch",-1)])]),_:1}),w[23]||(w[23]=o("span",{class:"option-title"},"Camera",-1))]),s(Qt,{modelValue:g.selectedDeviceId,"onUpdate:modelValue":[w[0]||(w[0]=Z=>g.selectedDeviceId=Z),Q],items:h.value,"item-title":"label","item-value":"deviceId",variant:"outlined",density:"compact","hide-details":""},null,8,["modelValue","items"])])):B("",!0),o("div",Sr,[o("div",Ir,[s(v,{color:"primary",size:"20"},{default:l(()=>[...w[24]||(w[24]=[r("mdi-flip-horizontal",-1)])]),_:1}),w[25]||(w[25]=o("span",{class:"option-title"},"Mirror Video",-1))]),o("div",Gr,[s(Ct,{modelValue:g.mirrored,"onUpdate:modelValue":w[1]||(w[1]=Z=>g.mirrored=Z),color:"primary","hide-details":"",inset:""},null,8,["modelValue"]),o("span",$r,E(g.mirrored?"Mirrored":"Normal"),1)]),w[26]||(w[26]=o("p",{class:"option-hint"},"Mirror the video so it appears like a mirror reflection",-1))])])):B("",!0)]),o("div",Er,[s(I,{color:"control",variant:"outlined",onClick:C,class:"action-btn btn-cancel"},{default:l(()=>[...w[27]||(w[27]=[r(" Cancel ",-1)])]),_:1}),s(I,{color:"primary",variant:"elevated",disabled:g.permissionState!=="granted",onClick:f,class:"action-btn btn-create"},{default:l(()=>[s(v,{start:""},{default:l(()=>[...w[28]||(w[28]=[r("mdi-plus",-1)])]),_:1}),w[29]||(w[29]=r(" Add Webcam Widget ",-1))]),_:1},8,["disabled"])])]),_:1})]),_:1},8,["modelValue"]))}}),Lr=Te(Ar,[["__scopeId","data-v-a506b7b1"]]),Rr={class:"dialog-header"},zr={class:"header-icon"},Pr={class:"dialog-content"},Mr={class:"dropzone__title"},Ur={class:"dropzone__hint"},Or={key:0,class:"upload-progress"},Wr={class:"upload-message"},Fr={class:"dialog-actions"},Nr=xe({__name:"PdfWidgetDialog",props:{modelValue:{type:Boolean},uploading:{type:Boolean,default:!1}},emits:["update:modelValue","create"],setup(J,{emit:oe}){const q=J,m=oe,_=ks/(1024*1024),g=A(null),G=A(null),h=A(!1),L=A(""),P=z({get:()=>q.modelValue,set:te=>m("update:modelValue",te)}),Q=te=>{if(L.value="",!te)return;if(!(te.type==="application/pdf"||te.name.toLowerCase().endsWith(".pdf"))){G.value=null,L.value="Please choose a PDF file.";return}const de=Bs(te);if(de){G.value=null,L.value=de;return}G.value=te};let p=0;const C=()=>{p++,h.value=!0},f=()=>{p=Math.max(0,p-1),p===0&&(h.value=!1)},T=te=>{var de;const O=te.target;Q(((de=O.files)==null?void 0:de[0])??null)},R=te=>{var O,de;p=0,h.value=!1,Q(((de=(O=te.dataTransfer)==null?void 0:O.files)==null?void 0:de[0])??null)},w=te=>{const O=te/1048576;return O>=1?`${O.toFixed(1)} MB`:`${Math.round(te/1024)} KB`},Z=()=>{G.value=null,h.value=!1,L.value="",g.value&&(g.value.value="")},je=()=>{P.value=!1};ce(()=>q.modelValue,te=>{te||Z()});const Ge=()=>{!G.value||q.uploading||m("create",G.value)};return(te,O)=>(u(),F(ye,{width:"500",modelValue:P.value,"onUpdate:modelValue":O[2]||(O[2]=de=>P.value=de),persistent:"",scrim:!1,transition:"dialog-transition"},{default:l(()=>[s(ge,{class:"dialog-wrapper",elevation:"12"},{default:l(()=>[o("div",Rr,[o("div",zr,[s(v,{size:"24",color:"primary"},{default:l(()=>[...O[3]||(O[3]=[r("mdi-file-pdf-box",-1)])]),_:1})]),O[4]||(O[4]=o("h3",{class:"dialog-title"},"Add PDF Widget",-1))]),o("div",Pr,[o("div",{class:Pe(["dropzone",{"dropzone--active":h.value,"dropzone--filled":!!G.value}]),onDragenter:De(C,["prevent"]),onDragover:O[0]||(O[0]=De(()=>{},["prevent"])),onDragleave:De(f,["prevent"]),onDrop:De(R,["prevent"]),onClick:O[1]||(O[1]=de=>{var Ue;return(Ue=g.value)==null?void 0:Ue.click()})},[o("input",{ref_key:"fileInput",ref:g,type:"file",accept:"application/pdf,.pdf",class:"dropzone__input",onChange:T},null,544),G.value?(u(),y(re,{key:1},[s(v,{size:"40",color:"success",class:"mb-2"},{default:l(()=>[...O[7]||(O[7]=[r("mdi-file-pdf-box",-1)])]),_:1}),o("p",Mr,E(G.value.name),1),o("p",Ur,E(w(G.value.size)),1)],64)):(u(),y(re,{key:0},[s(v,{size:"48",color:"primary",class:"mb-2"},{default:l(()=>[...O[5]||(O[5]=[r("mdi-cloud-upload-outline",-1)])]),_:1}),O[6]||(O[6]=o("p",{class:"dropzone__title"},"Choose a PDF or drop it here",-1)),o("p",{class:"dropzone__hint"}
2,"Up to "+E(_)+"MB")],64))],34),L.value?(u(),F(Me,{key:0,type:"error",variant:"tonal",density:"compact",class:"mt-3"},{default:l(()=>[r(E(L.value),1)]),_:1})):B("",!0)]),q.uploading?(u(),y("div",Or,[o("div",Wr,[s(v,{color:"primary",class:"mr-2"},{default:l(()=>[...O[8]||(O[8]=[r("mdi-cloud-upload",-1)])]),_:1}),O[9]||(O[9]=o("span",null,"Uploading your PDF...",-1))]),s(Ka,{color:"primary",indeterminate:"",class:"mt-2"})])):B("",!0),o("div",Fr,[s(I,{color:"control",variant:"outlined",onClick:je,class:"action-btn btn-cancel"},{default:l(()=>[...O[10]||(O[10]=[r(" Cancel ",-1)])]),_:1}),s(I,{color:"primary",variant:"elevated",disabled:!G.value||q.uploading,loading:q.uploading,onClick:Ge,class:"action-btn btn-create"},{default:l(()=>[q.uploading?B("",!0):(u(),F(v,{key:0,start:""},{default:l(()=>[...O[11]||(O[11]=[r("mdi-plus",-1)])]),_:1})),r(" "+E(q.uploading?"Uploading...":"Add PDF Widget"),1)]),_:1},8,["disabled","loading"])])]),_:1})]),_:1},8,["modelValue"]))}}),jr=Te(Nr,[["__scopeId","data-v-70febdd4"]]),qr={class:"aspect-control"},Yr={class:"aspect-options"},Kr=["data-testid","onClick"],Xr={class:"aspect-preview"},Qr={class:"aspect-preview-screen"},Hr={class:"aspect-option-label"},Zr={class:"aspect-option-caption text-caption"},Jr={class:"aspect-screen-note text-caption"},ed=xe({__name:"AspectRatioControl",props:{modelValue:{},viewportWidth:{},viewportHeight:{}},emits:["update:modelValue"],setup(J,{emit:oe}){const q=J,m=oe,_=z(()=>q.viewportWidth??window.innerWidth),g=z(()=>q.viewportHeight??window.innerHeight),G=z(()=>{const Q=_.value/g.value;let p="16:9",C=1/0;for(const[f,T]of Object.entries(Wl)){const R=Math.abs(T-Q);R<C&&(C=R,p=f)}return p}),h=z(()=>[{value:"16:9",label:"Fixed 16:9",caption:"Widescreen â most classroom boards"},{value:"16:10",label:"Fixed 16:10",caption:"Slightly taller widescreen"},{value:"4:3",label:"Fixed 4:3",caption:"Older projectors and displays"},{value:"fill",label:"Fill screen",caption:"Best on one device or the same screen size"}]),L=Q=>{const p=Ha(Q),C=Qa(p,_.value,g.value);return{left:`${C.minX*100}%`,top:`${C.minY*100}%`,width:`${(C.maxX-C.minX)*100}%`,height:`${(C.maxY-C.minY)*100}%`}},P=Q=>{Q!==q.modelValue&&m("update:modelValue",Q)};return(Q,p)=>(u(),y("div",qr,[p[2]||(p[2]=o("p",{class:"aspect-intro text-body-2"}," Keep your board's shape on any screen â a fixed shape adds bars instead of stretching. ",-1)),o("div",Yr,[(u(!0),y(re,null,ke(h.value,C=>(u(),y("button",{key:C.value,type:"button",class:Pe(["aspect-option",{"aspect-option--active":J.modelValue===C.value||J.modelValue==null&&C.value==="fill"}]),"data-testid":`boards-aspect-option-${C.value}`,onClick:f=>P(C.value)},[o("span",Xr,[o("span",Qr,[o("span",{class:"aspect-preview-canvas",style:Re(L(C.value))},null,4)])]),o("span",Hr,[r(E(C.label)+" ",1),C.value===G.value?(u(),F(v,{key:0,size:"14",color:"primary",class:"ml-1"},{default:l(()=>[...p[0]||(p[0]=[r("mdi-star",-1)])]),_:1})):B("",!0)]),o("span",Zr,E(C.caption),1)],10,Kr))),128))]),o("p",Jr,[s(v,{size:"14",color:"primary"},{default:l(()=>[...p[1]||(p[1]=[r("mdi-star",-1)])]),_:1}),r(" Suggested for this screen ("+E(G.value)+"). ",1)])]))}}),td=Te(ed,[["__scopeId","data-v-e13b8b51"]]),ad={class:"dialog-header"},od={class:"header-icon"},ld={class:"dialog-content"},sd={key:0},id={key:1,class:"text-center py-4"},rd={key:2,class:"text-center py-4"},dd={key:3},nd={class:"text-body-1 mb-4"},ud={class:"dialog-actions"},cd={class:"widget-tabs"},md={key:0,class:"widget-menu-body"},pd={class:"widget-cat-header"},vd={class:"widget-cat-label"},gd={class:"widget-cat-count"},fd={class:"widget-menu-grid"},bd={class:"widget-btn-content"},yd={class:"widget-btn-text"},wd={class:"widget-cat"},_d={class:"widget-cat-header"},hd={class:"widget-cat-count"},kd={class:"widget-menu-grid"},Bd={class:"widget-integration-badge"},Vd={class:"widget-btn-content"},Cd={class:"widget-btn-text"},Dd={key:1,class:"widget-menu-body"},xd={class:"ts-info-banner"},Td={class:"widget-menu-grid"},Sd={class:"widget-integration-badge"},Id={class:"widget-btn-content"},Gd={class:"widget-btn-text"},$d={key:2,class:"board-nav-container z-top"},Ed={class:"board-counter-text"},Ad={style:{height:"100%",width:"100%",position:"absolute",top:"0",left:"0"}},Ld={key:0,class:"letterbox-backdrop"},Rd=["width","height"],zd=["x1","y1","x2","y2"],Pd=["x1","y1","x2","y2"],Md={class:"pa-4"},Ud={key:0,class:"mb-4"}
2,Od={key:0},Wd={key:1,class:"mb-4"},Fd={class:"aspect-summary-value"},Nd={class:"mt-3"},jd={class:"dialog-header"},qd={class:"header-icon"},Yd={class:"dialog-content"},Kd={class:"metadata-row metadata-row-stacked"},Xd={class:"dialog-actions"},Qd={key:0,class:"loading-container"},Hd={key:1,class:"move-mode-indicator"},Zd={key:3,class:"boards-layout"},Jd={class:"main-content"},en={class:"board-groups-view"},tn={class:"board-groups-header"},an={class:"d-flex align-center flex-grow-1"},on={key:0,class:"empty-board-groups"},ln={class:"empty-illustration"},sn={key:1,class:"empty-board-groups"},rn={class:"empty-illustration"},dn={key:2,class:"empty-board-groups"},nn={class:"empty-illustration"},un={key:3,class:"board-groups-list"},cn={key:0,class:"manual-sort-note"},mn=["data-group-id","onClick"],pn=["onClick"],vn={class:"board-group-row-left"},gn={class:"board-group-row-name"},fn={class:"board-group-row-count"},bn={key:0,class:"board-group-row-labels"},yn={key:0,class:"more-labels"},wn={key:1,class:"board-group-preview-stack"},_n=["onClick"],hn={key:0,class:"board-group-empty"},kn=["onClick"],Bn={key:1,class:"board-group-empty-readonly"},Vn={key:1,class:"board-thumbnails"},Cn=["data-testid","onClick"],Dn={class:"board-thumbnail-overlay"},xn={class:"board-thumbnail-name"},Tn={class:"board-thumbnail-widgets"},Sn=["onClick"],In={class:"board-group-row"},Gn={class:"board-group-row-left"},$n={class:"dialog-header"},En={class:"header-icon"},An={class:"dialog-content"},Ln={class:"dialog-subtitle"},Rn={key:0,class:"no-teams-state"},zn={class:"text-center mb-4"},Pn={class:"text-h6"},Mn={class:"dialog-actions"},nt=.08,H=.15,se=.2,ve=.25,Vt=.03,Je=.1,qa=.04,Un=10002,On=xe({__name:"BoardsView",setup(J){var Sa,Ia;const oe=Y(()=>K(()=>import("./RollCallView-pl7KM1jY.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65]))),q=Y(()=>K(()=>import("./CheckInView-_dHnygaT.js"),__vite__mapDeps([66,1,2,3,4,5,6,43,38,39,40,44,20,21,18,19,10,11,12,67,68,69,60,61,27,16,28,70,25,23,24,26,71,32,33,34,35,8,9,13,14,15,17,22,29,30,31,36,37,72,73,74,41,75,76,77,56,55,50,51,78,49,52,53,54,46,47,48,57,58,79,80,81]))),m=Za(),_=cs(),g=Pl(
2),G=z(()=>{var t;return(t=m.teacher)==null?void 0:t.id}),{subjects:h,loadSubjects:L}=Hl(()=>{var t;return(t=m.teacher)==null?void 0:t.id}),{teams:P,teamLabelsMap:Q,personalLabels:p,resourceOptions:C}=Al(_),f=A([]),T=A([]),R=new Map,w=t=>{let e=R.get(t);return e||(e=Ea.debounce(U.updateWidget,500),R.set(t,e)),e},Z=ze({width:window.innerWidth,height:window.innerHeight}),je=A(null),Ge=A(null),te=()=>{Z.width=window.innerWidth,je.value?Z.height=je.value.clientHeight:Z.height=window.innerHeight},O=z(()=>({x:a.gridSize*be.value.width,y:a.gridSize*be.value.height})),de=z(()=>({vertical:Math.floor(1/a.gridSize),horizontal:Math.floor(1/a.gridSize)})),Ue=()=>{var e;const t=(e=m.selectedClass)==null?void 0:e.id;t&&(Ce.setItem({key:Ce.getClassKey(Ve.BOARDS_SHOW_GRID,t),defaultValue:!1},a.showGrid),Ce.setItem({key:Ce.getClassKey(Ve.BOARDS_SNAP_TO_GRID,t),defaultValue:!1},a.snapToGrid))},Dt={image:Y(()=>K(()=>import("./ImageWidget-Ci6NVUOk.js"),__vite__mapDeps([82,1,2,83,84,45,49,20,21,50,33,16,34,51,52,19,53,54,27,11,28,85,10,12,86,23,24,87,88,89,90,3,4,5,44,25,26,60,61,91]))),text_box:Y(()=>K(()=>import("./TextBoxWidget-CTRw9G1-.js"),__vite__mapDeps([92,1,2,83,84,45,49,20,21,50,33,16,34,51,52,19,53,54,27,11,28,85,10,12,86,23,24,87,88,93,94,95,96,44,25,26,97]))),video:Y(()=>K(()=>import("./VideoWidget-BhiLMvLS.js"),__vite__mapDeps([98,1,2,83,84,45,49,20,21,50,33,16,34,51,52,19,53,54,27,11,28,85,10,12,86,23,24,87,88,89,90,3,4,5,44,99,25,26,100]))),clock:Y(()=>K(()=>import("./index-Brsw2dLe.js"),__vite__mapDeps([101,1,2,83,84,45,49,20,21,50,33,16,34,51,52,19,53,54,27,11,28,85,10,12,86,23,24,87,88,79,30,31,80,102]))),date:Y(()=>K(()=>import("./index-Bezx6E_I.js"),__vite__mapDeps([103,1,2,83,84,45,49,20,21,50,33,16,34,51,52,19,53,54,27,11,28,85,10,12,86,23,24,87,88,104,105,106,107,108,79,30,31,80,25,26,60,61,109]))),alarm_clock:Y(()=>K(()=>import("./AlarmClockWidget-L9cunG_8.js"),__vite__mapDeps([110,1,2,83,84,45,49,20,21,50,33,16,34,51,52,19,53,54,27,11,28,85,10,12,86,23,24,87,88,44,79,30,31,80,22,25,26,29,32,35,36,60,61,18,111]))),timer:Y(()=>K(()=>import("./TimerWidget-Btwmt-r4.js"),__vite__mapDeps([112,1,2,83,84,45,49,20,21,50,33,16,34,51,52,19,53,54,27,11,28,85,10,12,86,23,24,87,88,113,114,44,25,26,79,30,31,80,22,29,32,35,36,115,116,117]))),link:Y(()=>K(()=>import("./LinkWidget-htU0LxZ3.js"),__vite__mapDeps([118,1,2,41,83,84,45,49,20,21,50,33,16,34,51,52,19,53,54,27,11,28,85,10,12,86,23,24,87,88,104,105,106,107,3,4,5,75,25,26,119]))),random_picker:Y(()=>K(()=>import("./RandomPickerWidget-HpsTVPGK.js"),__vite__mapDeps([120,1,2,83,84,45,49,20,21,50,33,16,34,51,52,19,53,54,27,11,28,85,10,12,86,23,24,87,88,108,3,4,5,121,79,30,31,80,70,25,26,71,122]))),noise_meter:Y(()=>K(()=>import("./NoiseMeterWidget-DU2Dyb_U.js"),__vite__mapDeps([123,1,2,83,84,45,49,20,21,50,33,16,34,51,52,19,53,54,27,11,28,85,10,12,86,23,24,87,88,114,44,108,32,35,79,30,31,80,22,25,26,29,36,124]))),stop_light:Y(()=>K(()=>import("./StopLightWidget-qU6QS7wo.js"),__vite__mapDeps([125,1,2,83,84,45,49,20,21,50,33,16,34,51,52,19,53,54,27,11,28,85,10,12,86,23,24,87,88,104,105,106,107,108,79,30,31,80,126]))),embed:Y(()=>K(()=>import("./EmbedWidget-GMLzmgmw.js"),__vite__mapDeps([127,1,2,83,84,45,49,20,21,50,33,16,34,51,52,19,53,54,27,11,28,85,10,12,86,23,24,87,88,89,90,3,4,5,99,25,26,70,71,60,61,128]))),dice:Y(()=>K(()=>import("./DiceWidget-LbijY0s6.js"),__vite__mapDeps([129,1,2,83,84,45,49,20,21,50,33,16,34,51,52,19,53,54,27,11,28,85,10,12,86,23,24,87,88,106,107,108,79,30,31,80,130]))),voice_recording:Y(()=>K(()=>import("./VoiceRecordingWidget-BJZjWXat.js"),__vite__mapDeps([131,1,2,83,84,45,49,20,21,50,33,16,34,51,52,19,53,54,27,11,28,85,10,12,86,23,24,87,88,44,25,26,70,71,132]))),todo:Y(()=>K(()=>import("./TodoWidget-lgsS0Vi5.js"),__vite__mapDeps([133,1,2,75,83,84,45,49,20,21,50,33,16,34,51,52,19,53,54,27,11,28,85,10,12,86,23,24,87,88,104,105,134,135,89,90,106,107,136,25,26,137,22,29,30,31,32,35,36,62,63,138]))),weather:Y(()=>K(()=>import("./WeatherWidget-Beb-Erw8.js"),__vite__mapDeps([139,1,2,83,84,45,49,20,21,50,33,16,34,51,52,19,53,54,27,11,28,85,10,12,86,23,24,87,88,89,90,106,107,108,25,26,22,29,30,31,32,35,36,60,61,140]))),poll:Y(()=>K(()=>import("./PollWidget-CAgmMAGJ.js"),__vite__mapDeps([141,1,2,83,84,45,49,20,21,50,33,16,34,51,52,19,53,54,27,11,28,85,10,12,86,23,24,87,88,104,105,106,107,77,4,5,3,44,56,55,72,73,25,26,60,61,78,142]))),scoreboard:Y(()=>K(()=>import("./Scoreboard-CpP-gzhj.js"),__vite__mapDeps([143,1,2,83,84,45,49,20,21,50,33,16,34,51,52,19,53,54,27,11,28,85,10,12,86,23,24,87,88,44,77,4,5,3,56,55,72,73,25,26,60,61,78,75,22,29,30,31,32,35,36,144]))),station_rotation:Y(()=>K(()=>import("./StationRotationWidget-DtriIIti.js"),__vite__mapDeps([145,1,2,3,4,5,83,84,45,49,20,21,50,33,16,34,51,52,19,53,54,27,11,28,85,10,12,86,23,24,87,88,146,44,39,113,79,3
20,31,80,147,148,60,61,32,35,149,150,22,25,26,29,36,151,152,153]))),webcam:Y(()=>K(()=>import("./WebcamWidget-qb8WyCID.js"),__vite__mapDeps([154,1,2,83,84,45,49,20,21,50,33,16,34,51,52,19,53,54,27,11,28,85,10,12,86,23,24,87,88,22,25,26,29,30,31,32,35,36,79,80,155]))),lunch_choice:Y(()=>K(()=>import("./LunchChoiceWidget-B0KBN7Bo.js"),__vite__mapDeps([156,1,2,83,84,45,49,20,21,50,33,16,34,51,52,19,53,54,27,11,28,85,10,12,86,23,24,87,88,89,90,157,77,4,5,3,44,56,55,72,73,25,26,60,61,78,15,17,18,158,41,75,159,114,32,35,160,79,30,31,80,161]))),qr_code:Y(()=>K(()=>import("./QrCodeWidget-C9W80DcS.js"),__vite__mapDeps([162,1,2,163,83,84,45,49,20,21,50,33,16,34,51,52,19,53,54,27,11,28,85,10,12,86,23,24,87,88,99,25,26,164]))),marble_jar:Y(()=>K(()=>import("./MarbleJarWidget-BsLj4F4Z.js"),__vite__mapDeps([165,1,2,3,4,5,166,45,83,84,49,20,21,50,33,16,34,51,52,19,53,54,27,11,28,85,10,12,86,23,24,87,88,104,105,89,90,167,168,169,170,171,172,173,174,175]))),prize_store:Y(()=>K(()=>import("./PrizeStoreWidget-DLm6dKZU.js"),__vite__mapDeps([176,177,1,2,83,84,45,49,20,21,50,33,16,34,51,52,19,53,54,27,11,28,85,10,12,86,23,24,87,88,39,178,179,3,4,5,166,180,38,40,44,8,9,13,14,15,17,18,22,25,26,29,30,31,32,35,36,37,150,151,152,60,61,181]))),give_points:Y(()=>K(()=>import("./GivePointsWidget-BLgmx2p6.js"),__vite__mapDeps([182,177,1,2,83,84,45,49,20,21,50,33,16,34,51,52,19,53,54,27,11,28,85,10,12,86,23,24,87,88,39,178,183,3,4,5,166,38,40,180,170,171,172,173,184,185]))),roll_call:Y(()=>K(()=>import("./RollCallWidget-CSL_-i7X.js"),__vite__mapDeps([186,187,177,1,2,83,84,45,49,20,21,50,33,16,34,51,52,19,53,54,27,11,28,85,10,12,86,23,24,87,88,39,178]))),check_in:Y(()=>K(()=>import("./CheckInWidget-DBAr3r8L.js"),__vite__mapDeps([188,4,5,1,2,3,108,177,83,84,45,49,20,21,50,33,16,34,51,52,19,53,54,27,11,28,85,10,12,86,23,24,87,88,39,178,106,107,22,25,26,29,30,31,32,35,36]))),pdf:Y(()=>K(()=>import("./PdfWidget-CwNmSszT.js"),__vite__mapDeps([189,1,2,83,84,45,49,20,21,50,33,16,34,51,52,19,53,54,27,11,28,85,10,12,86,23,24,87,88,89,90,108,159,44,190]))),birthday:Y(()=>K(()=>import("./BirthdayWidget-TOLiZF2y.js"),__vite__mapDeps([191,1,2,3,4,5,159,83,84,45,49,20,21,50,33,16,34,51,52,19,53,54,27,11,28,85,10,12,86,23,24,87,88,104,105,134,135,89,90,106,107,38,39,40,108,192,22,25,26,29,30,31,32,35,36,193]))),calendar:Y(()=>K(()=>import("./CalendarWidget-Deye--DJ.js"),__vite__mapDeps([194,1,2,159,108,83,84,45,49,20,21,50,33,16,34,51,52,19,53,54,27,11,28,85,10,12,86,23,24,87,88,104,105,195]))),marquee:Y(()=>K(()=>import("./MarqueeWidget-ByTWf41q.js"),__vite__mapDeps([196,1,2,83,84,45,49,20,21,50,33,16,34,51,52,19,53,54,27,11,28,85,10,12,86,23,24,87,88,104,105,89,90,106,107,108,25,26,22,29,30,31,32,35,36,197])))},a=ze({loadingBoardGroups:!1,showBoardDialog:!1,selectedBoardGroup:null,selectedBoardGroupId:null,selectedBoard:null,showRenameDialog:!1,showDeleteDialog:!1,boardGroups:[],resourceItems:[],selectedWidgetId:null,focusedWidgetId:null,teacherImages:[],backgroundFileForUpload:null,loadingBackground:!1,showImageLibraryDialog:!1,imagePickerWidgetId:null,notification:{show:!1,message:"",color:"error"},creatingWidget:!1,showCreateLoadingDialog:!1,showNewVideoDialog:!1,showNewQrCodeDialog:!1,showNewImageDialog:!1,showNewEmbedDialog:!1,showNewAudioDialog:!1,showNewWebcamDialog:!1,showNewPdfDialog:!1,uploadingPdf:!1,showShareDialog:!1,shareLink:null,shareLoading:!1,shareError:!1,widgetMenuOpen:!1,drawingMode:!1,launchedTool:null,launchedToolProps:{},boardToMove:null,...(()=>{var e;const t=(e=m.selectedClass)==null?void 0:e.id;return{showGrid:Ce.getItem({key:t?Ce.getClassKey(Ve.BOARDS_SHOW_GRID,t):"",defaultValue:!1}),snapToGrid:Ce.getItem({key:t?Ce.getClassKey(Ve.BOARDS_SNAP_TO_GRID,t):"",defaultValue:!1}),gridSize:.025}})()}),X=A(!1),fe=A("personal"),$e=A([]);function Ee(){try{const t=localStorage.getItem(Ve.BOARDS_FILTER_STATE);if(t)return JSON.parse(t)}catch(t){console.warn("Failed to load saved filter state:",t)}return null}function et(t){try{localStorage.setItem(Ve.BOARDS_FILTER_STATE,JSON.stringify(t))}catch(e){console.warn("Failed to save filter state:",e)}}const ee=Ee(),D=A({sources:new Set((Sa=ee==null?void 0:ee.sources)!=null&&Sa.length?ee.sources:["personal"]),labelIds:new Set((Ia=ee==null?void 0:ee.labelIds)!=null&&Ia.length?ee.labelIds:[]),grade:(ee==null?void 0:ee.grade)??null,subject:(ee==null?void 0:ee.subject)??null,unit:(ee==null?void 0:ee.unit)??null});D.value.sources.size===0&&(D.value.sources=new Set(["personal"]));const{isSidebarHidden:Ht}=gs(),{sidebarVisible:Zt,toggleSidebar:Jt,sidebarVisibleDesktop:ea,sidebarMobileOpen:eo}=ss({storageKey:Ve.BOARDS_SIDEBAR_VISIBLE,oldCollapsedKey:"boardsSidebarCollapsed",isSidebarHidden:Ht,sidebarFilters:D}),qe=A(!1),Oe=A(""),to=[{title:"Newest",value:"date-desc"},{title:"Oldest",value:"date-asc"},{title:"Name (A-Z)",value:"name-asc"},{title:"Name (Z-A)",value:"name-desc"},{title:"Manual",value:"manual"}],Ye=A(localStorage.getItem(Ve.BOARDS_SORT_BY)||"date-desc");ce(Ye,t=>{localStorage.setItem(Ve.BOARDS_SORT_BY,t)});const ta=z(()=>{if(Ye.value!=="manual"||D.value.sources.size!==1||Oe.value||aa.value||lo.value.length!==0)return!1;const[t]=Array.from(D.value.sources);return!ro(t)});async function ao(t,e,d){const n=ot.value.find(b=>b.id===t);if(!n)return;const c=us(ot.value,t,e,d);try{Xe(n)?(await U.updateBoardGroup(m.teacher.id,m.selectedClass.id,t,{name:n.name,color:n.color,order:c}),a.boardGroups=a.boardGroups.map(b=>b.id===t?{...b,order:c}:b)):(await U.updateTeamBoardGroup(m.teacher.id,n.owner_id,t,{order:c}),f.value=f.value.map(b=>b.id===t?{...b,order:c}:b))}catch(b){console.error("Failed to reorder board group:",b),await mt()}}async function oo(t,e){if(t.oldIndex===t.newIndex)return;const d=e.boards.map(n=>n.id);
2try{await U.updateBoardOrder(m.teacher.id,m.selectedClass.id,e.id,d)}catch(n){console.error("Failed to reorder boards:",n),await mt()}}ce(D,t=>{const e=t.sources.size>0?Array.from(t.sources):["personal"];et({sources:e,labelIds:Array.from(t.labelIds),grade:t.grade,subject:t.subject,unit:t.unit})},{deep:!0}),ce(()=>D.value.sources,t=>{const e=vs(t);e&&(fe.value=e)},{deep:!0,immediate:!0});const ut=A(!1),Ke=A(null),we=A(null),tt=A(!1),aa=z(()=>D.value.grade!==null||D.value.subject!==null||D.value.unit!==null),lo=z(()=>sa.value.filter(t=>D.value.labelIds.has(t.id))),_e=A(new Set);function ct(t){return _e.value.has(t)}function oa(){try{localStorage.setItem("boardsExpandedGroups",JSON.stringify([..._e.value]))}catch{}}function xt(t){const e=new Set(_e.value);e.has(t)?e.delete(t):e.add(t),_e.value=e,oa()}function so(t){var e;(e=t.boards)!=null&&e.length&&(a.selectedBoardGroup=t,Fe(t.boards[0]))}function io(t){switch(t){case"admin":return"Admin";case"editor":return"Editor";case"viewer":return"Viewer";default:return""}}function he(t){if(!t)return!1;if(t.owner_type==="teacher"||!t.owner_type)return!0;const e=P.value.find(d=>d.id===t.owner_id);return(e==null?void 0:e.role)==="admin"||(e==null?void 0:e.role)==="editor"}const Ae=z(()=>he(a.selectedBoardGroup));function ro(t){var d;if(!t.startsWith("team-"))return!1;const e=parseInt(t.replace("team-",""));return((d=P.value.find(n=>n.id===e))==null?void 0:d.role)==="viewer"}function Xe(t){return t.owner_type==="teacher"||!t.owner_type}function no(t){if(!Xe(t))return P.value.find(e=>e.id===t.owner_id)}function uo(t){switch(t){case"admin":return"primary";case"editor":return"success";case"viewer":return"grey";default:return"grey"}}function co(t){Ke.value=t,we.value=null,ut.value=!0}function la(){ut.value=!1,Ke.value=null,we.value=null}async function mt(){var t;if((t=m.teacher)!=null&&t.id)try{a.boardGroups=await U.getAllBoardGroups(m.teacher.id),a.resourceItems=await U.getResourceItems(m.teacher.id,{item_type:"board_group"}).catch(()=>[]);const e=[],d=[];for(const n of P.value){const[c,b]=await Promise.all([U.getTeamBoardGroups(m.teacher.id,n.id).catch(()=>[]),U.getTeamResources(m.teacher.id,n.id).catch(()=>[])]);e.push(...c.map(S=>({...S,sourceTeam:n}))),d.push(...b)}f.value=e,T.value=d}catch(e){console.error("Error refreshing board group data:",e)}}async function mo(){var t,e,d;if(!(!((t=m.teacher)!=null&&t.id)||!we.value||!Ke.value)){tt.value=!0;try{const n=we.value;await U.shareBoardGroupWithTeam(m.teacher.id,n.id,Ke.value.id),await mt(),await _.loadTeamData(n,!0),la()}catch(n){console.error("Error transferring board group to team:",n),ue(((d=(e=n==null?void 0:n.response)==null?void 0:e.data)==null?void 0:d.message)||"Failed to transfer board group")}finally{tt.value=!1}}}async function po(t){var d,n,c;if(!((d=m.teacher)!=null&&d.id))return;const e=no(t);if(e){tt.value=!0;try{await U.moveTeamBoardGroupToPersonal(m.teacher.id,e.id,t.id),await mt(),await _.loadTeamData(e,!0)}catch(b){console.error("Error transferring board group to personal:",b),ue(((c=(n=b==null?void 0:b.response)==null?void 0:n.data)==null?void 0:c.message)||"Failed to transfer board group")}finally{tt.value=!1}}}const at=z(()=>{const t=new Map;for(const e of a.resourceItems)e.item_type==="board_group"&&e.item_id&&t.set(e.item_id,e);for(const e of T.value)e.item_type==="board_group"&&e.item_id&&t.set(e.item_id,e);return t});function Tt(t){return f.value.filter(e=>e.owner_type==="team"&&e.owner_id===t)}const vo=z(()=>a.boardGroups.filter(t=>t.owner_type==="teacher"||!t.owner_type).length),{availableLabels:sa,showScope:go,scopeSegments:fo,activeScope:bo,setScope:yo,activeFilterChips:wo,hasActiveFilters:_o,clearAll:ho}=is({filters:D,teams:P,personalLabel:"My Boards",personalCount:vo,getTeamCount:t=>Tt(t).length,personalLabels:p,getTeamLabels:t=>Q.value.get(t)||[]}),ko=z(()=>{var e;const t=[];for(const d of a.boardGroups){if(d.owner_type!=="teacher"&&d.owner_type)continue;const n=at.value.get(d.id);t.push({grade_level:(n==null?void 0:n.grade_level)||null,subject:(n==null?void 0:n.subject)||null,unit:(n==null?void 0:n.unit)||null,labels:(n==null?void 0:n.labels)||[],owner_type:"teacher",owner_id:((e=m.teacher)==null?void 0:e.id)||0})}for(const d of f.value){const n=at.value.get(d.id);t.push({grade_level:(n==null?void 0:n.grade_level)||null,subject:(n==null?void 0:n.subject)||null,unit:(n==null?void 0:n.unit)||null,labels:(n==null?void 0:n.labels)||[],owner_type:"team",owner_id:d.owner_id})}return t}),St=z(()=>{let t=[];D.value.sources.has("personal")&&t.push(...a.boardGroups.filter(e=>e.owner_type==="teacher"||!e.owner_type));for(const e of D.value.sources)if(e.startsWith("team-")){const d=parseInt(e.replace("team-",""));t.push(...Tt(d))}if((D.value.grade!==null||D.value.subject!==null||D.value.unit!==null||D.value.labelIds.size>0)&&(t=t.filter(e=>{const d=at.value.get(e.id);if(!d)return D.value.grade===null&&D.value.subject===null&&D.value.unit===null&&D.value.labelIds.size===0;if(D.value.grade!==null){if(D.value.grade===""){if(d.grade_level)return!1}else if(d.grade_level!==D.value.grade)return!1}if(D.value.subject!==null){if(D.value.subject===""){if(d.subject)return!1}else if(d.subject!==D.value.subject)return!1}if(D.value.unit!==null){if(D.value.unit===""){if(d.unit)return!1}else if(d.unit!==D.value.unit)return!1}if(D.value.labelIds.size>0){const n=(d.labels||[]).map(b=>b.id);if(![...D.value.labelIds].some(b=>n.includes(b)))return!1}return!0})),Oe.value){const e=Oe.value.toLowerCase();t=t.filter(d=>{var n;return(n=d.name)==null?void 0:n.toLowerCase().includes(e)})}switch(Ye.value){case"name-asc":t.sort((e,d)=>(e.name||"").localeCompare(d.name||""));break;case"name-desc":t.sort((e,d)=>(d.name||"").localeCompare(e.name||""));break;case"date-asc":t.sort((e,d)=>e.id-d.id);break;case"manual":t.sort((e,d)=>e.order-d.order);break;case"date-desc":default:t.sort((e,d)=>d.id-e.id);break}return t}),ot=A([]);ce(St,t=>{ot.value=[...t]},{immediate:!0});const Se=ze({dialog:!1,loading:!1,name:""}),le=ze({renameDialog:!1,duplicateDialog:!1,deleteDialog:!1,loading:!1}),N=ze({renameDialog:!1,deleteDialog:!1,backgroundDialog:!1,board:null,loading:!1,backgroundMode:"contain",smartFit:!1,zoomLevel:90}),lt=A(!1),pt=A("board"),M=ze({dialog:!1,saving:!1,resourceItem:null,form:{grade_level:null,subject:null,unit:null,label_ids:[]}}),We=A(null),ia=z(()=>{if(!We.value)return null;const t=P.value.find(e=>e.id===We.value);return(t==null?void 0:t.name)||null}),Bo=z(()=>C.value.grade_levels.map(t=>({title:t==="K"?"Kindergarten":`Grade ${t}`,value:t}))),ra=z(()=>{const t=new Set;for(const e of a.resourceItems)e.unit&&t.add(e.unit);for(const e of T.value)e.unit&&t.add(e.unit);return Array.from(t).sort()}),da=z(()=>{const t=a.selectedBoardGroup;return t&&t.sourceTeam?Q.value.get(t.sourceTeam.id)||[]:p.value}),It=[{title:"Text Box",value:"text_box",icon:"mdi-alpha-t",size:"x-large",category:"text-media"},{title:"Image",value:"image",icon:"mdi-image",category:"text-media",action:()=>{a.imagePickerWidgetId=null,a.showImageLibraryDialog=!0}},{title:"PDF",value:"pdf",icon:"mdi-file-pdf-box",category:"text-media",action:()=>{a.showNewPdfDialog=!0}},{title:"Video",value:"video",icon:"mdi-youtube",category:"text-media",action:()=>{a.showNewVideoDialog=!0}},{title:"Webcam",value:"webcam",icon:"mdi-webcam",category:"text-media",action:()=>{a.showNewWebcamDialog=!0}},{title:"Clock",value:"clock",icon:"mdi-clock-outline",category:"time"},{title:"Date",value:"date",icon:"mdi-calendar-today",category:"time"},{title:"Calendar",value:"calendar",icon:"mdi-calendar-month",category:"time"},{title:"Alarm Clock",value:"alarm_clock",icon:"mdi-alarm",category:"time"},{title:"Timer",value:"timer",icon:"mdi-timer-outline",category:"time"},{title:"Link",value:"link",icon:"mdi-link",category:"text-media"},{title:"Random Picker",value:"random_picker",icon:"mdi-shuffle-variant",category:"activities"},{title:"Noise Meter",value:"noise_meter",icon:"mdi-gauge-low",category:"classroom"},{title:"Stop Light",value:"stop_light",icon:"mdi-traffic-light",category:"classroom"},{title:"Marquee",value:"marquee",icon:"custom:marquee",category:"classroom"},{title:"Embed",value:"embed",icon:"mdi-code-block-tags",category:"text-media",action:()=>{a.showNewEmbedDialog=!0}},{title:"Dice",value:"dice",icon:"mdi-dice-6",category:"activities"},{title:"Todo List",value:"todo",icon:"mdi-checkbox-marked-outline",category:"classroom"},{title:"Weather",value:"weather",icon:"mdi-weather-cloudy",category:"classroom"},{title:"Poll",value:"poll",icon:"mdi-poll",size:"large",category:"activities"},{title:"Scoreboard",value:"scoreboard",icon:"mdi-scoreboard",size:"large",category:"activities"},{title:"Voice Recording",value:"voice_recording",icon:"mdi-microphone",category:"activities",action:()=>{a.showNewAudioDialog=!0}},{title:"Station Rotation",value:"station_rotation",icon:"mdi-rotate-3d-variant",size:"large",category:"teacherstack"},{title:"Lunch Choice",value:"lunch_choice",icon:"mdi-food-fork-drink",size:"large",category:"teacherstack"},{title:"Roll Call",value:"roll_call",icon:"mdi-account-check",size:"large",category:"teacherstack"},{title:"Check-In",value:"check_in",icon:"mdi-emoticon-happy-outline",size:"large",category:"teacherstack"},{title:"Birthdays",value:"birthday",icon:"mdi-cake-variant",category:"teacherstack"},{title:"QR Code",value:"qr_code",icon:"mdi-qrcode",category:"text-media",action:()=>{a.showNewQrCodeDialog=!0}},{title:"Marble Jar",value:"marble_jar",icon:"mdi-circle-multiple",size:"large",category:"teacherstack"},{title:"Prize Store",value:"prize_store",icon:"mdi-gift-outline",size:"large",category:"teacherstack"},{title:"Give Points",value:"give_points",icon:"mdi-star-circle",size:"large",category:"teacherstack"}],Vo={text_box:{heightBase:nt,width:H*1.25},image:{heightBase:H,width:H},video:{heightBase:se,width:se*16/9}
2,clock:{heightBase:se,width:se*.95},date:{heightBase:H*1.25,width:se*1.15},alarm_clock:{heightBase:se,width:se*.95},link:{heightBase:nt,width:nt*2},timer:{heightBase:se,width:se*.95},graphic:{heightBase:nt,width:nt},random_picker:{heightBase:se,width:se*.95},noise_meter:{heightBase:ve,width:ve},stop_light:{heightBase:se,width:H*.5},embed:{heightBase:ve,width:ve*.95},dice:{heightBase:H,width:H},voice_recording:{heightBase:H,width:H},todo:{heightBase:H,width:H*1.25},weather:{heightBase:H,width:H*1.25},birthday:{heightBase:H,width:H*1.25},calendar:{heightBase:ve*7/6,width:ve},poll:{heightBase:se,width:se*1.4},scoreboard:{heightBase:se,width:H},station_rotation:{heightBase:ve,width:ve*1.5},webcam:{heightBase:se,width:se*16/9},lunch_choice:{heightBase:ve,width:ve*1.5},qr_code:{heightBase:H,width:H},marble_jar:{heightBase:se,width:H*.8},prize_store:{heightBase:H,width:H*1.5},give_points:{heightBase:H,width:H*1.5},roll_call:{heightBase:H,width:H*1.5},check_in:{heightBase:H,width:H*1.5},pdf:{heightBase:ve,width:ve*.77},marquee:{heightBase:H,width:ve*2}},Co=t=>{const e=Vo[t]??{heightBase:H,width:H},d=Pt.value??ms();return{height:e.heightBase*d,width:e.width}},Do=t=>{var j;const e=((j=a.selectedBoard)==null?void 0:j.widgets)??[],d=Math.max(Je,1-((t==null?void 0:t.width)??0)-Vt),n=Math.max(Je,1-((t==null?void 0:t.height)??0)-Vt),c=(x,i)=>!e.some(V=>Math.abs((V.position_x??0)-x)<qa&&Math.abs((V.position_y??0)-i)<qa);let b=Je,S=Je;for(;b<=d&&S<=n;){if(c(b,S))return{position_x:b,position_y:S};b+=Vt,S+=Vt}return{position_x:Je,position_y:Je}},na=[{key:"text-media",label:"Text & Media"},{key:"time",label:"Time"},{key:"classroom",label:"Classroom Tools"},{key:"activities",label:"Activities & Games"}],Gt=It.filter(t=>t.category==="teacherstack"),xo=(()=>{const t=new Set(na.map(n=>n.key)),e=na.map(n=>({label:n.label,items:It.filter(c=>c.category===n.key)})),d=It.filter(n=>n.category!=="teacherstack"&&!t.has(n.category));return d.length&&e.push({label:"More",items:d}),e.filter(n=>n.items.length)})(),Qe=A("all");ce(()=>a.widgetMenuOpen,t=>{t||(Qe.value="all")}),fs(t=>{var d;const{imageKey:e}=t;(d=a.selectedBoard)!=null&&d.widgets&&(a.selectedBoard.widgets=a.selectedBoard.widgets.filter((n,c)=>{var b;return!(n.type==="image"&&((b=n.options)==null?void 0:b.image_uri)===e)}))});function ua(){const t=fe.value;if(t==="personal")$e.value=[];else if(t.startsWith("team-")){const e=parseInt(t.replace("team-",""));$e.value=f.value.filter(d=>d.owner_type==="team"&&d.owner_id===e)}else t==="all"&&($e.value=f.value)}ce(fe,ua),ce(f,ua,{deep:!0});async function To(){await Promise.all([_.ensurePersonalLabelsLoaded(!0),_.ensureAllTeamsLoaded(!0)])}function ca(){if(D.value.labelIds.size>0){const t=new Set;p.value.forEach(d=>t.add(d.id)),Q.value.forEach(d=>{d.forEach(n=>t.add(n.id))});const e=new Set([...D.value.labelIds].filter(d=>t.has(d)));e.size!==D.value.labelIds.size&&(D.value={...D.value,labelIds:e})}}async function ma(){await To(),ca()}Ll(async()=>{var t,e,d;L(),gl(),a.loadingBoardGroups=!0;try{const[n,c]=await Promise.all([U.getAllBoardGroups((t=m.teacher)==null?void 0:t.id),U.getResourceItems((e=m.teacher)==null?void 0:e.id,{item_type:"board_group"}).catch(()=>[]),_.initializeForToolView()]);a.boardGroups=n,a.resourceItems=c,f.value=_.allTeamBoardGroups,T.value=_.getTeamResourcesByType("board_group");const b=ps(D.value.sources,P.value);b&&(D.value.sources=b);try{const x=localStorage.getItem("boardsExpandedGroups");if(x){const i=new Set([...a.boardGroups.map(V=>V.id),...f.value.map(V=>V.id)]);_e.value=new Set(JSON.parse(x).filter(V=>i.has(V)))}}catch{}const S=g.query.selected||g.query.group,j=g.query.present;if(S||j||g.params.boardId){let x;const i=[...a.boardGroups,...f.value];if(j?x=i.find(V=>V.id==j):S&&(x=i.find(V=>V.id==S)),!x&&g.params.boardId&&(x=i.find(V=>{var k;return(k=V.boards)==null?void 0:k.some(ie=>String(ie.id)===g.params.boardId)})),x){const V=x.owner_type==="team"?`team-${x.owner_id}`:"personal";if(D.value={sources:new Set([V]),labelIds:new Set,grade:null,subject:null,unit:null},Oe.value="",_e.value=new Set([..._e.value,x.id]),_t(()=>{const k=document.querySelector(`[data-group-id="${x.id}"]`);k==null||k.scrollIntoView({behavior:"smooth",block:"start"})}),await _t(),j&&((d=x.boards)!=null&&d.length))X.value=!0,a.selectedBoardGroup=x,Fe(x.boards[0]);else if(g.params.boardId){const k=x.boards.find(ie=>String(ie.id)===g.params.boardId);k&&(a.selectedBoardGroup=x,Fe(k))}}}_e.value.size===0&&a.boardGroups.length>0&&(_e.value=new Set([a.boardGroups[0].id])),window.addEventListener("keydown",fa),window.addEventListener("resize",te),window.addEventListener("paste",ba),ca()}catch(n){console.error(n),ue(`Error occurred getting board groups: ${n}`)}finally{a.loadingBoardGroups=!1}}),Xa(()=>{window.removeEventListener("keydown",fa),window.removeEventListener("resize",te),window.removeEventListener("paste",ba),At.flush()});const pa=()=>
2{if(a.selectedBoard&&a.selectedBoardGroup){const t=a.selectedBoardGroup.boards.indexOf(a.selectedBoard)-1;t>=0&&Fe(a.selectedBoardGroup.boards[t])}},va=()=>{if(a.selectedBoard&&a.selectedBoardGroup){const t=a.selectedBoardGroup.boards.indexOf(a.selectedBoard)+1;t<a.selectedBoardGroup.boards.length&&Fe(a.selectedBoardGroup.boards[t])}},ue=(t,e="error")=>{a.notification={show:!0,message:t,color:e}},Be=async(t,e)=>{var d,n;if(!(!a.selectedBoardGroup||!a.selectedBoard)&&!a.creatingWidget)try{ae("boards_create_widget","boards",{type:t}),a.creatingWidget=!0,setTimeout(()=>{a.creatingWidget&&(a.showCreateLoadingDialog=!0)},300);const c=Co(t),b=await U.createWidget((d=m.teacher)==null?void 0:d.id,(n=m.selectedClass)==null?void 0:n.id,a.selectedBoardGroup.id,a.selectedBoard.id,t,e,{...Do(c),...c});a.selectedBoard.widgets.push(b)}catch(c){console.error(c),ue(`Error occurred creating widget: ${c}`)}finally{a.creatingWidget=!1,a.showCreateLoadingDialog=!1}},$t=async t=>{if(t.action)t.action();else{const d={date:{...jl},clock:{use_digital_clock:!1,show_seconds:!0,use_24_hour:!1,show_date:!0,color:"#000000"},text_box:Nl()}[t.value]||{};Be(t.value,d)}},So=(t,e)=>{a.launchedTool=t,a.launchedToolProps=e??{}},vt=()=>{a.launchedTool=null,a.launchedToolProps={}},ga=t=>{vt(),rt.push(t)},st=z(()=>a.focusedWidgetId!=null),Io=z(()=>{var c,b;const t=(b=(c=a.selectedBoard)==null?void 0:c.widgets)==null?void 0:b.find(S=>S.id===a.focusedWidgetId);if(!t)return null;const e=.9/Math.max(t.width,t.height),d=t.width*e,n=t.height*e;return{...t,width:d,height:n,position_x:(1-d)/2,position_y:(1-n)/2,rotation:0,locked:!1,position_z:Un,focus_scale:e}}),Go=t=>{a.selectedWidgetId=null,a.focusedWidgetId=t.id,ae("boards_focus_widget","boards",{type:t.type})},Et=()=>{a.focusedWidgetId=null};Aa(Kl,Go);const $o=t=>{var e;(t.target===t.currentTarget||(e=t.target)!=null&&e.classList.contains("grid-overlay"))&&(a.selectedWidgetId=null)},Eo=async t=>{await Be("video",t),a.showNewVideoDialog=!1},Ao=async t=>{await Be("webcam",t),a.showNewWebcamDialog=!1},Lo=async t=>{await Be("qr_code",t),a.showNewQrCodeDialog=!1},Ro=async t=>{await Be("embed",t),a.showNewEmbedDialog=!1},zo=async t=>{try{const e=`recording-${Date.now()}.webm`,d=await U.createTeacherAudio(m.teacher.id,t.audioBlob,e,"boards"),n={audioUrl:d.key,audioId:d.id,title:t.title,description:t.description,volume:80};t.duration&&(n.duration=t.duration),await Be("voice_recording",n),a.showNewAudioDialog=!1}catch{ue("Failed to create audio widget. Please try again.")}},Po=async t=>{if(!a.uploadingPdf){a.uploadingPdf=!0;try{const e=await U.createTeacherPdf(m.teacher.id,t);await Be("pdf",{pdf_key:e.key,original_name:e.original_name}),a.showNewPdfDialog=!1}catch{ue("Failed to create PDF widget. Please try again.")}finally{a.uploadingPdf=!1}}},Mo=async t=>{await Be("image",{image_uri:t}),a.showImageLibraryDialog=!1},Uo=t=>{a.imagePickerWidgetId=t.id,a.showImageLibraryDialog=!0},Oo=async t=>{var d;const e=a.imagePickerWidgetId;if(a.imagePickerWidgetId=null,e!=null){const n=(d=a.selectedBoard)==null?void 0:d.widgets.find(c=>c.id===e);n&>(n,{options:{...n.options,image_uri:t}}),a.showImageLibraryDialog=!1;return}await Mo(t)},gt=async(t,e)=>{var d,n;Object.assign(t,e),Ae.value&&w(t.id)((d=m.teacher)==null?void 0:d.id,(n=m.selectedClass)==null?void 0:n.id,a.selectedBoardGroup.id,a.selectedBoard.id,t.id,{position_x:t.position_x,position_y:t.position_y,position_z:t.position_z,height:t.height,width:t.width,rotation:t.rotation,locked:t.locked,options:t.options})},fa=t=>{const e=document.activeElement,d=e&&(e.closest(".ProseMirror")||e.classList.contains("ProseMirror")||e.hasAttribute("contenteditable")||e.tagName==="INPUT"||e.tagName==="TEXTAREA");if(st.value){t.key==="Escape"&&(t.preventDefault(),Et());return}t.key==="ArrowLeft"&&a.showBoardDialog&&!d?(t.preventDefault(),pa()):t.key==="ArrowRight"&&a.showBoardDialog&&!d&&(t.preventDefault(),va())},ba=async t=>{var b,S,j;if(!a.showBoardDialog||!a.selectedBoard)return;const e=document.activeElement;if(e&&(e.closest(".ProseMirror")||e.classList.contains("ProseMirror")||e.hasAttribute("contenteditable")||e.tagName==="INPUT"||e.tagName==="TEXTAREA"))return;const n=(b=t.clipboardData)==null?void 0:b.items;if(!n)return;for(const x of n)if(x.type.startsWith("image/")){t.preventDefault();const i=x.getAsFile();if(!i)continue;
2const k={"image/png":"png","image/jpeg":"jpg","image/gif":"gif","image/svg+xml":"svg"}[x.type]||"png",ie=`pasted-image-${Date.now()}.${k}`,wt=new File([i],ie,{type:x.type});try{a.showCreateLoadingDialog=!0;const Le=await U.createTeacherImage(m.teacher.id,"general",[wt],()=>{}),W=Array.isArray(Le)?Le[0]:Le;a.showCreateLoadingDialog=!1,await Be("image",{image_uri:W.key})}catch(Le){console.error("Failed to paste image:",Le),ue("Failed to paste image. Please try again."),a.showCreateLoadingDialog=!1}return}const c=(j=(S=t.clipboardData)==null?void 0:S.getData("text/plain"))==null?void 0:j.trim();if(c){const x=/^https?:\/\/.+\.(gif|png|jpg|jpeg|webp|svg)(\?.*)?$/i,i=/^data:image\/(gif|png|jpg|jpeg|webp|svg\+xml);base64,/i;if(x.test(c)||i.test(c)){t.preventDefault();try{await Be("image",{image_uri:c})}catch(V){console.error("Failed to create image widget from URL:",V),ue("Failed to paste image URL. Please try again.")}}}},Wo=async t=>{var e,d;await U.deleteWidget((e=m.teacher)==null?void 0:e.id,(d=m.selectedClass)==null?void 0:d.id,a.selectedBoardGroup.id,a.selectedBoard.id,t.id),a.selectedBoard.widgets=a.selectedBoard.widgets.filter(n=>n.id!=t.id)},Fo=async t=>{var d,n;const e=await U.duplicateWidget((d=m.teacher)==null?void 0:d.id,(n=m.selectedClass)==null?void 0:n.id,a.selectedBoardGroup.id,a.selectedBoard.id,t.id);ql(e),a.selectedBoard.widgets.push(e)},No=async t=>{var n,c;ae("boards_duplicate_board","boards",{board_id:t.id,board_group_id:a.selectedBoardGroup.id});const e=await U.duplicateBoard((n=m.teacher)==null?void 0:n.id,(c=m.selectedClass)==null?void 0:c.id,a.selectedBoardGroup.id,t.id),d=a.selectedBoardGroup.boards.findIndex(b=>b.order>e.order);d===-1?a.selectedBoardGroup.boards.push(e):a.selectedBoardGroup.boards.splice(d,0,e)},jo=async t=>{var e,d,n;ae("boards_duplicate_group","boards",{board_group_id:a.selectedBoardGroup.id});try{le.loading=!0;const c=await U.duplicateBoardGroup((e=m.teacher)==null?void 0:e.id,(d=m.selectedClass)==null?void 0:d.id,a.selectedBoardGroup.id,t);if(c.owner_type==="team"){const S=P.value.find(x=>x.id===c.owner_id),j={...c,sourceTeam:S};f.value=[...f.value,j],S&&await _.loadTeamData(S,!0)}else a.boardGroups=[...a.boardGroups,c];a.selectedBoardGroup=c,c.boards&&c.boards.length>0&&(Wt(c.boards[0]),a.selectedBoard=c.boards[0]),await _t();const b=document.querySelector(`[data-group-id="${c.id}"]`);b==null||b.scrollIntoView({behavior:"smooth",block:"start"})}catch(c){console.error("Failed to duplicate board group:",c),ae("boards_duplicate_group_error","boards",{board_group_id:(n=a.selectedBoardGroup)==null?void 0:n.id,error:c.message||"Unknown error"})}finally{le.loading=!1,le.duplicateDialog=!1}},qo=()=>{a.showBoardDialog=!1,a.focusedWidgetId=null,X.value||rt.push("/tools/boards"),X.value=!1},Yo=()=>{let t="#";for(let e=0;e<6;e++){const n=(Math.random()*14|0)+2;t+=n.toString(16)}return t},Ko=async t=>{var c,b;ae("boards_create_group","boards",{name:t.name});const{board_group:e,resource_item:d}=await U.createBoardGroup((c=m.teacher)==null?void 0:c.id,(b=m.selectedClass)==null?void 0:b.id,t.name,Yo(),t.ownerType,t.ownerId,t.subject,t.unit,t.gradeLevel);if(e.owner_type==="team"){const S=P.value.find(x=>x.id===e.owner_id),j={...e,sourceTeam:S};f.value=[...f.value,j],T.value=[...T.value,d],D.value.sources.add(`team-${e.owner_id}`),bt(j)}else a.boardGroups=[...a.boardGroups,e],a.resourceItems=[...a.resourceItems,d],D.value.sources.add("personal"),bt(e);const n=new Set(_e.value);n.add(e.id),_e.value=n,oa(),Se.dialog=!1,Ie(),_t(()=>{var S;(S=document.querySelector(`[data-group-id="${e.id}"]`))==null||S.scrollIntoView({behavior:"smooth",block:"nearest"})})},Xo=async()=>{var t,e;ae("boards_delete_board","boards"),N.loading=!0,await U.deleteBoard((t=m.teacher)==null?void 0:t.id,(e=m.selectedClass)==null?void 0:e.id,N.board.board_group_id,N.board.id),a.selectedBoardGroup.boards=a.selectedBoardGroup.boards.filter(d=>d.id!==N.board.id),Ie()},Qo=async t=>{var e,d;if(ae("boards_rename_board","boards",{name:t}),N.loading=!0,t){const n={name:t},c=await U.updateBoard((e=m.teacher)==null?void 0:e.id,(d=m.selectedClass)==null?void 0:d.id,N.board.board_group_id,N.board.id,n);a.selectedBoardGroup.boards=a.selectedBoardGroup.boards.map(b=>b.id===c.id?c:b)}Ie()},Ho=()=>{var t,e;pt.value="board",(e=(t=a.selectedBoard)==null?void 0:t.background)!=null&&e.mode?N.backgroundMode=a.selectedBoard.background.mode:N.backgroundMode="cover",N.backgroundDialog=!0},ya=async t=>{pt.value==="group"?(pt.value="board",await tl(t)):await Zo(t)},Zo=async t=>{var e,d;if(a.selectedBoard){ae("boards_set_background","boards",{type:t.type,value:t.value});try{const n={background:{...t,mode:N.backgroundMode||"cover"}};await U.updateBoard((e=m.teacher)==null?void 0:e.id,(d=m.selectedClass)==null?void 0:d.id,a.selectedBoard.board_group_id,a.selectedBoard.id,n),a.selectedBoard.background=n.background,N.backgroundDialog=!1}catch(n){console.error("Failed to update board background:",n),ue("Failed to update background. Please try again.")}}},Jo=()=>{lt.value=!0},el=()=>{lt.value=!1,pt.value="group",N.backgroundMode="cover",N.backgroundDialog=!0},wa=async t=>{var n;const e=a.selectedBoardGroup;if(lt.value=!1,N.backgroundDialog=!1,!((n=e==null?void 0:e.boards)!=null&&n.length))return 0;const d=e.boards.map((c,b)=>({board:c,update:{background:t(c,b)}}));return Ba(d,(c,{background:b})=>c.background={...b},"background")},tl=async t=>{const e={...t,mode:N.backgroundMode||"cover"},d=await wa(()=>e);d&&ae("boards_paint_group_background","boards",{type:e.type,value:e.value,count:d})},al=async t=>{const e=as(t),d=await wa((n,c)=>e[c%e.length]);d&&ae("boards_spread_set_across_group","boards",{set:t,count:d})},ol=async t=>{var e,d,n;if((e=m.teacher)!=null&&e.id)try{const c=await U.createTeacherImage(m.teacher.id,"background",[t],void 0),b=Array.isArray(c)?c[0]:c;m.teacherImages=await U.getTeacherImages(m.teacher.id),await ya({type:"image",value:b.key,mode:N.backgroundMode||"cover"})}catch(c){console.error("Failed to upload background image:",c);const b=((n=(d=c==null?void 0:c.response)==null?void 0:d.data)==null?void 0:n.message)||"Failed to upload image. Please try again.";ue(b)}},_a=t=>{var e;(e=a.selectedBoard)!=null&&e.background&&(a.selectedBoard.background={...a.selectedBoard.background,...t})},ha=async()=>{var e,d,n;if(!((e=a.selectedBoard)!=null&&e.background))return;const t=await U.updateBoard((d=m.teacher)==null?void 0:d.id,(n=m.selectedClass)==null?void 0:n.id,a.selectedBoard.board_group_id,a.selectedBoard.id,{background:a.selectedBoard.background});Wt(t),Object.assign(a.selectedBoard,t)},At=Ea.debounce(ha,400),ll=t=>{_a(t),ha()},sl=t=>{N.backgroundMode=t,ll({mode:t})},ka=z({get:()=>{var t,e;return Math.round((((e=(t=a.selectedBoard)==null?void 0:t.background)==null?void 0:e.dim)??0)*100)},set:t=>{_a({dim:t/100}),At()}}),il=async t=>{var e,d;if(ae("boards_rename_group","boards",{name:t}),N.loading=!0,t){const n={name:t},c=await U.updateBoardGroup((e=m.teacher)==null?void 0:e.id,(d=m.selectedClass)==null?void 0:d.id,a.selectedBoardGroup.id,n);if(Xe(a.selectedBoardGroup))a.boardGroups=a.boardGroups.map(b=>b.id===c.id?c:b),a.selectedBoardGroup=c;else{const b={...c,sourceTeam:a.selectedBoardGroup.sourceTeam};f.value=f.value.map(S=>S.id===c.id?b:S),a.selectedBoardGroup=b}}Ie()},Ie=()=>{N.board=null,N.renameDialog=!1,N.deleteDialog=!1,N.loading=!1,le.renameDialog=!1,le.duplicateDialog=!1,le.deleteDialog=!1,le.loading=!1},rl=async t=>{a.selectedBoardGroup=t;const d=!!t.sourceTeam?T.value.find(n=>n.item_type==="board_group"&&n.item_id===t.id):a.resourceItems.find(n=>n.item_type==="board_group"&&n.item_id===t.id);d?(M.resourceItem=d,M.form.grade_level=d.grade_level||null,M.form.subject=d.subject||null,M.form.unit=d.unit||null,M.form.label_ids=(d.labels||[]).map(n=>n.id)):(M.resourceItem=null,M.form.grade_level=null,M.form.subject=null,M.form.unit=null,M.form.label_ids=[]),M.dialog=!0},Lt=()=>{M.dialog=!1,M.resourceItem=null,M.form.grade_level=null,M.form.subject=null,M.form.unit=null,M.form.label_ids=[]},dl=async()=>{var e,d,n;if(!a.selectedBoardGroup||!((e=m.teacher)!=null&&e.id)||!((d=m.selectedClass)!=null&&d.id)){Lt();return}M.saving=!0;const t=a.selectedBoardGroup;try{if(M.resourceItem){const c=M.resourceItem.id,b=!!t.sourceTeam,S=b?(n=t.sourceTeam)==null?void 0:n.id:null;b&&S?await U.updateTeamResource(m.teacher.id,S,c,{subject:M.form.subject,unit:M.form.unit,grade_level:M.form.grade_level}):await U.updateResourceItem(m.teacher.id,c,{subject:M.form.subject,unit:M.form.unit,grade_level:M.form.grade_level}),await U.setResourceLabels(m.teacher.id,c,M.form.label_ids);const j={...M.resourceItem,subject:M.form.subject,unit:M.form.unit,grade_level:M.form.grade_level,labels:da.value.filter(x=>M.form.label_ids.includes(x.id))};if(b){const x=T.value.findIndex(i=>i.id===c);x!==-1&&(T.value[x]=j,T.value=[...T.value])}else{const x=a.resourceItems.findIndex(i=>i.id===c);x!==-1&&(a.resourceItems[x]=j,a.resourceItems=[...a.resourceItems])}}Lt()}catch(c){console.error("Error saving metadata:",c)}finally{M.saving=!1}},nl=t=>{const e=M.form.label_ids.indexOf(t);e===-1?M.form.label_ids.push(t):M.form.label_ids.splice(e,1)},ul=()=>{const t=a.selectedBoardGroup;t!=null&&t.sourceTeam?We.value=t.sourceTeam.id:We.value=null,qe.value=!0},cl=t=>{We.value=t,qe.value=!0},ml=async()=>{var t,e,d,n;ae("boards_delete_group","boards"),le.loading=!0;try{await U.deleteBoardGroup((t=m.teacher)==null?void 0:t.id,(e=m.selectedClass)==null?void 0:e.id,a.selectedBoardGroup.id);const c=(d=a.selectedBoardGroup)==null?void 0:d.id,b=!Xe(a.selectedBoardGroup),S=(n=a.selectedBoardGroup)==null?void 0:n.owner_id;if(b){f.value=f.value.filter(i=>i.id!==c);const x=S?P.value.find(i=>i.id===S):null;x&&await _.loadTeamData(x,!0)}else a.boardGroups=a.boardGroups.filter(x=>x.id!==c);const j=[...a.boardGroups,...f.value];j.length>0?a.selectedBoardGroup=j[0]:a.selectedBoardGroup=null}finally{le.loading=!1,Ie()}},He=A(null),Rt=A(!1),ft=A(!1),pl={"16:9":"Fixed 16:9","16:10":"Fixed 16:10","4:3":"Fixed 4:3",fill:"Fill screen"},vl=z(()=>{var t;
2return pl[((t=a.selectedBoard)==null?void 0:t.aspect_ratio)??"fill"]}),gl=async()=>{var e;const t=(e=m.teacher)==null?void 0:e.id;if(t)try{const d=await U.getBoardsSettings(t);He.value=d.default_aspect_ratio??null}catch(d){console.error("Failed to load boards preferences:",d)}},fl=async t=>{var n,c;const e=a.selectedBoard;if(!e||e.aspect_ratio===t)return;const d=e.aspect_ratio;e.aspect_ratio=t,ae("boards_set_aspect_ratio","boards",{aspect_ratio:t});try{await U.updateBoard((n=m.teacher)==null?void 0:n.id,(c=m.selectedClass)==null?void 0:c.id,e.board_group_id,e.id,{aspect_ratio:t})}catch(b){console.error("Failed to update board aspect ratio:",b),e.aspect_ratio=d,ue("Failed to update canvas shape. Please try again.")}},Ba=async(t,e,d)=>{const n=await Promise.allSettled(t.map(({board:S,update:j})=>{var x,i;return U.updateBoard((x=m.teacher)==null?void 0:x.id,(i=m.selectedClass)==null?void 0:i.id,S.board_group_id,S.id,j)}));let c=0;n.forEach((S,j)=>{S.status==="fulfilled"?(e(t[j].board,t[j].update),c++):console.error(`Failed to apply ${d} to board:`,S.reason)});const b=S=>`${S} board${S===1?"":"s"}`;return c===t.length?ue(`Applied to ${b(c)}.`,"success"):ue(`Applied ${d} to ${c} of ${b(t.length)}. Please try again for the rest.`),c},bl=async()=>{const t=a.selectedBoardGroup;if(!t||!a.selectedBoard)return;const e=a.selectedBoard.aspect_ratio??"fill";Rt.value=!0;try{const d=t.boards.filter(c=>c.aspect_ratio!==e).map(c=>({board:c,update:{aspect_ratio:e}})),n=await Ba(d,c=>c.aspect_ratio=e,"canvas shape");ae("boards_apply_aspect_to_group","boards",{aspect_ratio:e,count:n})}finally{Rt.value=!1}},yl=async t=>{var c,b;const e=(c=m.teacher)==null?void 0:c.id;if(!e)return;const d=t?((b=a.selectedBoard)==null?void 0:b.aspect_ratio)??"fill":null,n=He.value;He.value=d;try{await U.saveBoardsSettings(e,{default_aspect_ratio:d})}catch(S){console.error("Failed to save default aspect preference:",S),He.value=n,ue("Failed to save preference. Please try again.")}},Va=async()=>{var d,n;ae("boards_create_board","boards");const t=a.selectedBoardGroup,e=await U.createBoard((d=m.teacher)==null?void 0:d.id,(n=m.selectedClass)==null?void 0:n.id,t.id,"New Board",ts(t.boards),He.value??void 0);t.boards.push(e)},wl=t=>{a.boardToMove=t,console.log(`Move mode activated for board: ${t.name}`)},zt=async t=>{var e,d,n,c;if(a.boardToMove&&t.id!==((e=a.selectedBoardGroup)==null?void 0:e.id)){const b=a.boardToMove,S=(d=a.selectedBoardGroup)==null?void 0:d.id;try{await U.moveBoard((n=m.teacher)==null?void 0:n.id,m.selectedClass.id,S,b.id,t.id);const j=a.boardGroups.find(x=>x.id===S)||f.value.find(x=>x.id===S);j&&(j.boards=((c=j.boards)==null?void 0:c.filter(x=>x.id!==b.id))||[]),t.boards=t.boards||[],t.boards.push(b),a.boardToMove=null,bt(t),console.log(`Moved board "${b.name}" to group ${t.name}`)}catch(j){console.error("Failed to move board:",j),a.boardToMove=null}}else a.boardToMove?a.boardToMove=null:bt(t)},_l=()=>{a.drawingMode=!a.drawingMode,a.drawingMode?(a.selectedWidgetId=null,Ca=a.selectedBoard,Da=a.selectedBoardGroup,ae("boards_toggle_drawing","boards",{action:"enter"})):ae("boards_toggle_drawing","boards",{action:"exit"})};let Ca=null,Da=null;const hl=async t=>{var n,c;const e=Ca||a.selectedBoard,d=Da||a.selectedBoardGroup;if(!(!e||!d)){e.drawing=t;try{await U.updateBoard((n=m.teacher)==null?void 0:n.id,(c=m.selectedClass)==null?void 0:c.id,d.id,e.id,{drawing:t})}catch(b){console.error("Failed to save drawing:",b)}}},Fe=t=>{var e;a.drawingMode=!1,a.focusedWidgetId=null,ae("boards_select_board","boards",{board_id:t.id}),At.flush(),Wt(t),a.selectedBoard=t,(e=t==null?void 0:t.background)!=null&&e.mode?N.backgroundMode=t.background.mode:N.backgroundMode="cover",X.value?rt.replace(`/tools/boards/${t.id}`):rt.push(`/tools/boards/${t.id}`),a.showBoardDialog=!0},bt=t=>{var d;ae("boards_select_group","boards",{board_group_id:t.id}),a.selectedBoardGroup=t,a.selectedBoardGroupId=t.id;const e=(d=m.selectedClass)==null?void 0:d.id;e&&Ce.setItem({key:Ce.getClassKey(Ve.BOARDS_SELECTED_GROUP_ID,e),defaultValue:""},String(t.id),!0)},kl=z(()=>Nt(a.selectedBoard)),Bl=()=>({}),Pt=z(()=>{var t;
2return Ha((t=a.selectedBoard)==null?void 0:t.aspect_ratio)}),xa=z(()=>Qa(Pt.value,Z.width,Z.height)),Mt=z(()=>Yl(xa.value));Aa(Xl,Mt);const be=z(()=>La(Mt.value,Z.width,Z.height)),it=z(()=>La(xa.value,Z.width,Z.height)),Ut=z(()=>Pt.value!=null),Vl=z(()=>{const t={position:"absolute",isolation:"isolate"};if(!Ut.value)return{...t,inset:"0"};const e=it.value;return{...t,left:`${e.offsetX}px`,top:`${e.offsetY}px`,width:`${e.width}px`,height:`${e.height}px`}}),Cl=async t=>{ae("boards_widget_to_front","boards",{widget_id:t.id}),gt(t,{position_z:xl.value+1})},Dl=async t=>{ae("boards_widget_to_back","boards",{widget_id:t.id}),gt(t,{position_z:Math.max(Tl.value-1,0)}),a.selectedWidgetId=null},xl=z(()=>{var e;let t=0;if((((e=a.selectedBoard)==null?void 0:e.widgets.length)??0)>0){const d=a.selectedBoard.widgets.map(n=>n.position_z);t=Math.max(...d)}return t}),Tl=z(()=>{var e;let t=0;if((((e=a.selectedBoard)==null?void 0:e.widgets.length)??0)>0){const d=a.selectedBoard.widgets.map(n=>n.position_z);t=Math.min(...d)}return t}),Sl=z(()=>m.teacherImages.filter(t=>t.category=="background")),Il=()=>{a.selectedBoardGroup&&(a.shareLink=null,a.shareLoading=!1,a.shareError=!1,a.showShareDialog=!0)},Ta=async()=>{var t;if(a.selectedBoardGroup){a.shareLink=null,a.shareError=!1,a.shareLoading=!0;try{const e=await U.shareBoardGroup((t=m.teacher)==null?void 0:t.id,m.selectedClass.id,a.selectedBoardGroup.id);a.shareLink=`${window.location.origin}/shared/${e.uuid}`,a.shareLoading=!1}catch{a.shareLoading=!1,a.shareError=!0}}},Gl=async()=>{if(a.shareLink)try{await navigator.clipboard.writeText(a.shareLink)}catch{Ge.value&&Ge.value.input&&(Ge.value.input.select(),document.execCommand("copy"))}},$l=t=>Vs(t),yt=t=>{const e=at.value.get(t);return(e==null?void 0:e.labels)||[]},El=async t=>{var e,d,n,c,b,S;if(((d=(e=a.selectedBoard)==null?void 0:e.background)==null?void 0:d.type)==="image"&&((c=(n=a.selectedBoard)==null?void 0:n.background)==null?void 0:c.value)===t){if(!a.selectedBoard||!((b=m.teacher)!=null&&b.id)||!((S=m.selectedClass)!=null&&S.id))return;const j={background:null};await U.updateBoard(m.teacher.id,m.selectedClass.id,a.selectedBoard.board_group_id,a.selectedBoard.id,j),a.selectedBoard.background=void 0}};return(t,e)=>{var d,n,c,b,S,j,x;return u(),y("div",null,[s(Rl,{modelValue:a.notification.show,"onUpdate:modelValue":e[1]||(e[1]=i=>a.notification.show=i),color:a.notification.color,timeout:5e3,location:"top"},{actions:l(()=>[s(I,{variant:"text",icon:"mdi-close",onClick:e[0]||(e[0]=i=>a.notification.show=!1)})]),default:l(()=>[r(E(a.notification.message)+" ",1)]),_:1},8,["modelValue","color"]),s(Jl,{modelValue:a.showImageLibraryDialog,"onUpdate:modelValue":e[2]||(e[2]=i=>a.showImageLibraryDialog=i),"upload-category":"general","default-lib-category":"All",onSelect:Oo},null,8,["modelValue"]),s(ye,{modelValue:a.showShareDialog,"onUpdate:modelValue":e[4]||(e[4]=i=>a.showShareDialog=i),"max-width":"min(600px, 90vw)",scrim:!1,transition:"dialog-transition"},{default:l(()=>[s(ge,{class:"share-dialog-wrapper",elevation:"12"},{default:l(()=>{var i;return[o("div",ad,[o("div",od,[s(v,{size:"24",color:"primary"},{default:l(()=>[...e[58]||(e[58]=[r("mdi-share-variant",-1)])]),_:1})]),e[59]||(e[59]=o("h3",{class:"dialog-title"},"Share Board Group",-1))]),o("div",ld,[a.shareLink?(u(),y("div",sd,[e[61]||(e[61]=o("p",{class:"text-body-1 mb-4"}," Share this link to give read-only access to all boards in this group: ",-1)),s(Ne,{"model-value":a.shareLink,readonly:"",variant:"outlined",label:"Share Link","append-inner-icon":"mdi-content-copy","onClick:appendInner":Gl,class:"styled-input",ref_key:"shareLinkInput",ref:Ge},null,8,["model-value"]),s(Me,{type:"info",variant:"tonal",class:"mt-4"},{default:l(()=>[...e[60]||(e[60]=[o("strong",null,"Note:",-1),r(" Anyone with this link can view your board group in read-only mode. They won't be able to edit or see other content. You can revoke the link any time from Account ⺠Shared Links. ",-1)])]),_:1})])):a.shareLoading?(u(),y("div",id,[s(Ot,{indeterminate:"",color:"primary"}),e[62]||(e[62]=o("p",{class:"mt-2"},"Creating share link...",-1))])):a.shareError?(u(),y("div",rd,[s(v,{size:"64",color:"error"},{default:l(()=>[...e[63]||(e[63]=[r("mdi-alert-circle",-1)])]),_:1}),e[65]||(e[65]=o("p",{class:"mt-2"},"Failed to create share link. Please try again.",-1)),s(I,{color:"primary",onClick:Ta,class:"mt-2"},{default:l(()=>[...e[64]||(e[64]=[r(" Retry ",-1)])]),_:1})])):(u(),y("div",dd,[o("p",nd,[e[66]||(e[66]=r(" This creates a ",-1)),e[67]||(e[67]=o("strong",null,"public link",-1)),r(' to "'+E((i=a.selectedBoardGroup)==null?void 0:i.name)+'". Anyone with the link can view all boards in this group in read-only mode â no sign-in required â until you revoke it. ',1)]),s(Me,{type:"warning",variant:"tonal",class:"mb-2"},{default:l(()=>[...e[68]||(e[68]=[r(" Don't share boards that contain information you wouldn't post publicly. Student names shown by widgets are not included in the shared view. ",-1)])]),_:1})]))]),o("div",ud,[s(I,{color:"control",variant:"outlined",onClick:e[3]||(e[3]=V=>a.showShareDialog=!1),class:"action-btn btn-cancel"},{default:l(()=>[...e[69]||(e[69]=[r(" Close ",-1)])]),_:1}),!a.shareLink&&!a.shareLoading&&!a.shareError?(u(),F(I,{key:0,color:"primary",variant:"flat",onClick:Ta,class:"action-btn"},{default:l(()=>
2[...e[70]||(e[70]=[r(" Create public link ",-1)])]),_:1})):B("",!0)])]}),_:1})]),_:1},8,["modelValue"]),s(Ra,{modelValue:a.showBoardDialog,"onUpdate:modelValue":e[17]||(e[17]=i=>a.showBoardDialog=i),title:"Boards",onClose:qo,dialogId:"boards-container","include-settings":"","toolbar-position-absolute":"","add-spacer-before-fullscreen":!1,"navigate-back-on-close":X.value},{toolbar:l(()=>[s(Yt),Ae.value?(u(),F(I,{key:0,icon:"",onClick:_l,class:Pe(["z-top nav-btn",{"draw-btn-active":a.drawingMode}])},{default:l(()=>[s(v,null,{default:l(()=>[...e[71]||(e[71]=[r("mdi-draw",-1)])]),_:1}),s(ht,{activator:"parent",location:"bottom"},{default:l(()=>[r(E(a.drawingMode?"Exit Drawing":"Draw"),1)]),_:1})]),_:1},8,["class"])):B("",!0),Ae.value?(u(),F(Kt,{key:1,modelValue:a.widgetMenuOpen,"onUpdate:modelValue":e[8]||(e[8]=i=>a.widgetMenuOpen=i),location:"bottom","close-on-content-click":!1,class:"widget-menu-container",offset:8},{activator:l(({props:i})=>[s(I,dt(i,{class:"mr-2 z-top nav-btn widget-add-btn","prepend-icon":"mdi-plus","data-testid":"boards-add-widget-btn"}),{default:l(()=>[...e[72]||(e[72]=[r(" Add Widget ",-1)])]),_:1},16)]),default:l(()=>[s(ge,{class:"widget-menu-card"},{default:l(()=>[s(Is,{density:"compact",color:"primary"},{default:l(()=>[s(Gs,null,{default:l(()=>[...e[73]||(e[73]=[r("Add Widget",-1)])]),_:1}),s(Yt),s(I,{icon:"",size:"small",onClick:e[5]||(e[5]=i=>a.widgetMenuOpen=!1)},{default:l(()=>[s(v,null,{default:l(()=>[...e[74]||(e[74]=[r("mdi-close",-1)])]),_:1})]),_:1})]),_:1}),o("div",cd,[o("button",{class:Pe(["widget-tab",{"widget-tab--active":Qe.value==="all"}]),onClick:e[6]||(e[6]=i=>Qe.value="all"),"data-testid":"boards-widget-tab-all"},"All widgets",2),o("button",{class:Pe(["widget-tab",{"widget-tab--active":Qe.value==="ts"}]),onClick:e[7]||(e[7]=i=>Qe.value="ts"),"data-testid":"boards-widget-tab-ts"},[s(v,{size:"15"},{default:l(()=>[...e[75]||(e[75]=[r("mdi-hexagon-multiple",-1)])]),_:1}),e[76]||(e[76]=r(" TeacherStack ",-1))],2)]),Qe.value==="all"?(u(),y("div",md,[(u(!0),y(re,null,ke($(xo),i=>(u(),y("div",{key:i.label,class:"widget-cat"},[o("div",pd,[o("span",vd,E(i.label),1),o("span",gd,E(i.items.length),1)]),o("div",fd,[(u(!0),y(re,null,ke(i.items,V=>(u(),F(I,{key:V.value,block:"",variant:"outlined",onClick:k=>{$t(V),a.widgetMenuOpen=!1},class:"widget-square-btn","data-testid":`boards-widget-${V.value}-btn`},{default:l(()=>[o("div",bd,[s(v,{icon:V.icon,size:V.size==="x-large"?32:24},null,8,["icon","size"]),o("div",yd,E(V.title),1)])]),_:2},1032,["onClick","data-testid"]))),128))])]))),128)),o("div",wd,[o("div",_d,[e[77]||(e[77]=o("span",{class:"widget-cat-label widget-cat-label--ts"},"TeacherStack",-1)),o("span",hd,E($(Gt).length),1)]),o("div",kd,[(u(!0),y(re,null,ke($(Gt),i=>(u(),F(I,{key:i.value,block:"",variant:"outlined",onClick:V=>{$t(i),a.widgetMenuOpen=!1},class:"widget-square-btn widget-integration-btn","data-testid":`boards-widget-${i.value}-btn`},{default:l(()=>[o("span",Bd,[s(v,{size:"10",color:"primary"},{default:l(()=>[...e[78]||(e[78]=[r("mdi-link-variant",-1)])]),_:1})]),o("div",Vd,[s(v,{icon:i.icon,size:i.size==="x-large"?32:24},null,8,["icon","size"]),o("div",Cd,E(i.title),1)])]),_:2},1032,["onClick","data-testid"]))),128))])])])):(u(),y("div",Dd,[o("div",xd,[s(v,{size:"18",color:"primary"},{default:l(()=>[...e[79]||(e[79]=[r("mdi-information-outline",-1)])]),_:1}),e[80]||(e[80]=o("span",null,"These widgets pull live data from your other TeacherStack tools.",-1))]),o("div",Td,[(u(!0),y(re,null,ke($(Gt),i=>(u(),F(I,{key:i.value,block:"",variant:"outlined",onClick:V=>{$t(i),a.widgetMenuOpen=!1},class:"widget-square-btn widget-integration-btn","data-testid":`boards-widget-${i.value}-btn`},{default:l(()=>[o("span",Sd,[s(v,{size:"10",color:"primary"},{default:l(()=>[...e[81]||(e[81]=[r("mdi-link-variant",-1)])]),_:1})]),o("div",Id,[s(v,{icon:i.icon,size:i.size==="x-large"?32:24},null,8,["icon","size"]),o("div",Gd,E(i.title),1)])]),_:2},1032,["onClick","data-testid"]))),128))])]))]),_:1})]),_:1},8,["modelValue"])):B("",!0),a.selectedBoardGroup&&a.selectedBoardGroup.boards&&a.selectedBoardGroup.boards.length>1?(u(),y("div",$d,[s(I,{icon:"",size:"small",variant:"text",density:"compact",class:"board-nav-btn",onClick:pa,disabled:!a.selectedBoard||a.selectedBoardGroup.boards.indexOf(a.selectedBoard)===0},{default:l(()=>[s(v,{size:"small"},{default:l(()=>[...e[82]||(e[82]=[r("mdi-chevron-left",-1)])]),_:1}),s(ht,{activator:"parent",location:"bottom"},{default:l(()=>[...e[83]||(e[83]=[r("Previous Board",-1)])]),_:1})]),_:1},8,["disabled"]),o("div",Ed,E(a.selectedBoard?a.selectedBoardGroup.boards.indexOf(a.selectedBoard)+1:0)+" / "+E(a.selectedBoardGroup.boards.length),1),s(I,{icon:"",size:"small",variant:"text",density:"compact",class:"board-nav-btn",onClick:va,disabled:!a.selectedBoard||a.selectedBoardGroup.boards.indexOf(a.selectedBoard)===a.selectedBoardGroup.boards.length-1},{default:l(()=>[s(v,{size:"small"},{default:l(()=>[...e[84]||(e[84]=[r("mdi-chevron-right",-1)])]),_:1}),s(ht,{activator:"parent",location:"bottom"},{default:l(()=>[...e[85]||(e[85]=[r("Next Board",-1)])]),_:1})]),_:1},8,["disabled"])])):B("",!0)]),settingsContent:l(()=>{var i,V;return[o("div",Md,[Ae.value?(u(),y("div",Ud,[e[92]||(e[92]=o("div",{class:"text-subtitle-2 mb-3"}
2,"Background",-1)),s(I,{block:"",variant:"tonal",color:"secondary","prepend-icon":"mdi-wallpaper",onClick:Ho,class:"mb-3"},{default:l(()=>[...e[88]||(e[88]=[r(" Change Background ",-1)])]),_:1}),((V=(i=a.selectedBoard)==null?void 0:i.background)==null?void 0:V.type)==="image"?(u(),y("div",Od,[s(Ts,{modelValue:N.backgroundMode,"onUpdate:modelValue":[e[11]||(e[11]=k=>N.backgroundMode=k),e[12]||(e[12]=k=>k&&sl(k))],"hide-details":"",density:"compact",class:"my-5"},{default:l(()=>[s(Fa,{value:"contain",color:"primary"},{label:l(()=>[...e[89]||(e[89]=[o("div",null,[o("div",{class:"text-body-2"},"Fit Entire Image"),o("div",{class:"text-caption text-grey"},"Shows full image with black borders if needed")],-1)])]),_:1}),s(Fa,{value:"cover",color:"primary"},{label:l(()=>[...e[90]||(e[90]=[o("div",null,[o("div",{class:"text-body-2"},"Fill Screen"),o("div",{class:"text-caption text-grey"},"Fills entire screen, may crop edges")],-1)])]),_:1})]),_:1},8,["modelValue"]),e[91]||(e[91]=o("div",{class:"text-body-2 mb-1"},"Dim",-1)),s(Ss,{modelValue:ka.value,"onUpdate:modelValue":e[13]||(e[13]=k=>ka.value=k),min:0,max:100,step:5,color:"primary","hide-details":"",density:"compact","thumb-label":"",class:"mb-3"},null,8,["modelValue"])])):B("",!0),s(kt,{class:"mb-4"})])):B("",!0),Ae.value&&a.selectedBoard?(u(),y("div",Wd,[o("button",{type:"button",class:"aspect-summary","data-testid":"boards-aspect-toggle",onClick:e[14]||(e[14]=k=>ft.value=!ft.value)},[e[93]||(e[93]=o("span",{class:"text-subtitle-2"},"Board shape",-1)),o("span",Fd,[r(E(vl.value)+" ",1),s(v,{size:"18"},{default:l(()=>[r(E(ft.value?"mdi-chevron-up":"mdi-chevron-down"),1)]),_:1})])]),s(xs,null,{default:l(()=>{var k;return[Bt(o("div",Nd,[s(td,{"model-value":a.selectedBoard.aspect_ratio??"fill","viewport-width":Z.width,"viewport-height":Z.height,"onUpdate:modelValue":fl},null,8,["model-value","viewport-width","viewport-height"]),s(Ct,{"model-value":He.value===(a.selectedBoard.aspect_ratio??"fill"),label:"Use this shape for my new boards",color:"primary","hide-details":"",density:"compact",class:"mt-3","data-testid":"boards-aspect-default","onUpdate:modelValue":yl},null,8,["model-value"]),(((k=a.selectedBoardGroup)==null?void 0:k.boards.length)??0)>1?(u(),F(I,{key:0,variant:"text",size:"small",color:"primary",class:"mt-1 text-none px-1",density:"comfortable","prepend-icon":"mdi-checkbox-multiple-blank-outline",loading:Rt.value,"data-testid":"boards-aspect-apply-all",onClick:bl},{default:l(()=>[...e[94]||(e[94]=[r(" Apply to all boards in this group ",-1)])]),_:1},8,["loading"])):B("",!0)],512),[[zl,ft.value]])]}),_:1}),s(kt,{class:"mb-4 mt-3"})])):B("",!0),s(Ct,{modelValue:a.showGrid,"onUpdate:modelValue":e[15]||(e[15]=k=>a.showGrid=k),label:"Show Grid",color:"primary","hide-details":"",density:"compact",class:"mb-3",onChange:Ue},null,8,["modelValue"]),s(Ct,{modelValue:a.snapToGrid,"onUpdate:modelValue":e[16]||(e[16]=k=>a.snapToGrid=k),label:"Snap to Grid",color:"primary","hide-details":"",density:"compact",onCh
2ange:Ue},null,8,["modelValue"]),e[95]||(e[95]=o("div",{class:"text-caption text-grey mt-3"},[r(" Tip: Hold "),o("kbd",null,"Shift"),r(" to temporarily disable snapping ")],-1))])]}),default:l(()=>{var i,V;return[o("div",Ad,[Ut.value?(u(),y("div",Ld)):B("",!0),o("div",{style:Re(Vl.value)},[s($(Ft),{background:kl.value},null,8,["background"])],4),o("div",{class:"board-content-area",style:Re([Bl(),{height:"100%",width:"100%",overflow:"visible",position:"absolute"}]),onClick:$o},[a.showGrid?(u(),y("svg",{key:0,class:"grid-overlay",width:Z.width,height:Z.height},[(u(!0),y(re,null,ke(de.value.vertical,k=>(u(),y("line",{key:"v-"+k,x1:be.value.offsetX+k*O.value.x,y1:be.value.offsetY,x2:be.value.offsetX+k*O.value.x,y2:be.value.offsetY+be.value.height,stroke:"rgba(0, 0, 0, 0.1)","stroke-width":"1"},null,8,zd))),128)),(u(!0),y(re,null,ke(de.value.horizontal,k=>(u(),y("line",{key:"h-"+k,x1:be.value.offsetX,y1:be.value.offsetY+k*O.value.y,x2:be.value.offsetX+be.value.width,y2:be.value.offsetY+k*O.value.y,stroke:"rgba(0, 0, 0, 0.1)","stroke-width":"1"},null,8,Pd))),128))],8,Rd)):B("",!0),Ut.value&&Ae.value?(u(),y("div",{key:1,class:"canvas-frame",style:Re({left:it.value.offsetX+"px",top:it.value.offsetY+"px",width:it.value.width+"px",height:it.value.height+"px"})},null,4)):B("",!0),st.value?(u(),y("div",{key:2,class:"focus-backdrop",onClick:Et})):B("",!0),st.value?(u(),F(I,{key:3,icon:"",size:"large",class:"focus-close",onClick:Et},{default:l(()=>[s(v,null,{default:l(()=>[...e[86]||(e[86]=[r("mdi-close",-1)])]),_:1}),s(ht,{activator:"parent",location:"bottom"},{default:l(()=>[...e[87]||(e[87]=[r("Exit focus",-1)])]),_:1})]),_:1})):B("",!0),(u(!0),y(re,null,ke((i=a.selectedBoard)==null?void 0:i.widgets,k=>(u(),F(Ml(Dt[k.type]||"div"),{key:k.id,widget:k.id===a.focusedWidgetId?Io.value:k,isSelected:!st.value&&a.selectedWidgetId==k.id,onSelect:ie=>a.selectedWidgetId=k.id,onUnselect:e[9]||(e[9]=ie=>a.selectedWidgetId=null),onUpdate:ie=>gt(k,ie),onDelete:ie=>Wo(k),onDuplicate:ie=>Fo(k),onBringToFront:ie=>Cl(k),onSendToBack:ie=>Dl(k),onLaunch:So,onChooseImage:ie=>Uo(k),"snap-to-grid":a.snapToGrid,"grid-size":a.gridSize,"shared-mode":st.value||!Ae.value,"content-area-boundaries":Mt.value},null,40,["widget","isSelected","onSelect","onUpdate","onDelete","onDuplicate","onBringToFront","onSendToBack","onChooseImage","snap-to-grid","grid-size","shared-mode","content-area-boundaries"]))),128)),s(Fl,{"drawing-mode":Ae.value&&a.drawingMode,"drawing-data":((V=a.selectedBoard)==null?void 0:V.drawing)??null,"board-width":Z.width,"board-height":Z.height,onSave:hl,onExit:e[10]||(e[10]=k=>a.drawingMode=!1)},null,8,["drawing-mode","drawing-data","board-width","board-height"])],4)])]}),_:1},8,["modelValue","navigate-back-on-close"]),s(ye,{width:"300",modelValue:a.showCreateLoadingDialog,"onUpdate:modelValue":e[18]||(e[18]=i=>a.showCreateLoadingDialog=i)},{default:l(()=>[s(ge,{class:"pa-5",rounded:""},{default:l(()=>[s(Na,{class:"justify-center"},{default:l(()=>[s(ja,{cols:"3",class:"text-center"},{default:l(()=>[s(Ot,{indeterminate:"",color:"primary"})]),_:1})]),_:1}),s(Na,{class:"justify-center"},{default:l(()=>[s(ja,{cols:"8",class:"text-center"},{default:l(()=>[...e[96]||(e[96]=[o("h5",null,"Creating Widget...",-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"]),s(Us,{modelValue:le.duplicateDialog,"onUpdate:modelValue":e[19]||(e[19]=i=>le.duplicateDialog=i),title:"Duplicate Board Group",label:"New Group Name",buttonText:"Duplicate Group",defaultName:"",onDuplicate:jo,onClose:e[20]||(e[20]=i=>le.duplicateDialog=!1)},null,8,["modelValue"]),s(Mi,{modelValue:a.showNewVideoDialog,"onUpdate:modelValue":e[21]||(e[21]=i=>a.showNewVideoDialog=i),onCreate:Eo},null,8,["modelValue"]),s(yi,{modelValue:a.showNewEmbedDialog,"onUpdate:modelValue":e[22]||(e[22]=i=>a.showNewEmbedDialog=i),onCreate:Ro},null,8,["modelValue"]),s(pr,{modelValue:a.showNewAudioDialog,"onUpdate:modelValue":e[23]||(e[23]=i=>a.showNewAudioDialog=i),onCreate:zo},null,8,["modelValue"]),s(Lr,{modelValue:a.showNewWebcamDialog,"onUpdate:modelValue":e[24]||(e[24]=i=>a.showNewWebcamDialog=i),onCreate:Ao},null,8,["modelValue"]),s(jr,{modelValue:a.showNewPdfDialog,"onUpdate:modelValue":e[25]||(e[25]=i=>a.showNewPdfDialog=i),uploading:a.uploadingPdf,onCreate:Po},null,8,["modelValue","uploading"]),s(Yi,{modelValue:a.showNewQrCodeDialog,"onUpdate:modelValue":e[26]||(e[26]=i=>a.showNewQrCodeDialog=i),"board-group-id":(d=a.selectedBoardGroup)==null?void 0:d.id,onCreate:Lo},null,8,["modelValue","board-group-id"]),s($(os),{modelValue:N.backgroundDialog,"onUpdate:modelValue":e[27]||(e[27]=i=>N.backgroundDialog=i),"current-background":(n=a.selectedBoard)==null?void 0:n.background,"teacher-images":Sl.value,"css-themes":$(es),"allow-upload":!0,"allow-delete":!0,onSelect:ya,onUpload:ol,onDeleted:El},null,8,["modelValue","current-background","teacher-images","css-themes"]),s(Js,{modelValue:lt.value,"onUpdate:modelValue":e[28]||(e[28]=i=>lt.value=i),"board-count":((b=(c=a.selectedBoardGroup)==null?void 0:c.boards)==null?void 0:b.length)??0,"group-name":(S=a.selectedBoardGroup)==null?void 0:S.name,onPaintAll:el,onSpread:al},null,8,["modelValue","board-count","group-name"]),s(za,{modelValue:N.deleteDialog,"onUpdate:modelValue":e[29]||(e[29]=i=>
2N.deleteDialog=i),onClose:e[30]||(e[30]=i=>Ie()),onDelete:Xo},null,8,["modelValue"]),s(Pa,{modelValue:N.renameDialog,"onUpdate:modelValue":e[31]||(e[31]=i=>N.renameDialog=i),onClose:e[32]||(e[32]=i=>Ie()),onRename:Qo},null,8,["modelValue"]),s(za,{modelValue:le.deleteDialog,"onUpdate:modelValue":e[33]||(e[33]=i=>le.deleteDialog=i),onClose:e[34]||(e[34]=i=>Ie()),onDelete:ml},null,8,["modelValue"]),s(Pa,{modelValue:le.renameDialog,"onUpdate:modelValue":e[35]||(e[35]=i=>le.renameDialog=i),onClose:e[36]||(e[36]=i=>Ie()),onRename:il},null,8,["modelValue"]),s(ye,{modelValue:M.dialog,"onUpdate:modelValue":e[40]||(e[40]=i=>M.dialog=i),"max-width":"min(500px, 90vw)",scrim:!1,persistent:"","no-click-animation":"",transition:"dialog-transition"},{default:l(()=>[s(ge,{class:"dialog-wrapper",elevation:"12"},{default:l(()=>[o("div",jd,[o("div",qd,[s(v,{size:"24",color:"primary"},{default:l(()=>[...e[97]||(e[97]=[r("mdi-tag-multiple",-1)])]),_:1})]),e[98]||(e[98]=o("h3",{class:"dialog-title"},"Organize Board Group",-1))]),o("div",Yd,[s(Me,{type:"info",variant:"tonal",density:"compact",class:"styled-alert mb-4"},{default:l(()=>{var i;return[o("strong",null,E((i=a.selectedBoardGroup)==null?void 0:i.name),1)]}),_:1}),o("div",Kd,[s(Qt,{modelValue:M.form.grade_level,"onUpdate:modelValue":e[37]||(e[37]=i=>M.form.grade_level=i),items:Bo.value,label:"Grade",variant:"outlined",density:"compact",clearable:"","hide-details":"",class:"styled-input metadata-field"},null,8,["modelValue","items"]),G.value?(u(),F(Zl,{key:0,modelValue:M.form.subject,"onUpdate:modelValue":e[38]||(e[38]=i=>M.form.subject=i),subjects:$(h),"teacher-id":G.value,label:"Subject","hide-details":"",class:"styled-input metadata-field",onSubjectsChanged:$(L)},null,8,["modelValue","subjects","teacher-id","onSubjectsChanged"])):B("",!0),s($s,{modelValue:M.form.unit,"onUpdate:modelValue":e[39]||(e[39]=i=>M.form.unit=i),items:ra.value,label:"Unit",variant:"outlined",density:"compact",clearable:"","hide-details":"",autocomplete:"off",class:"styled-input metadata-field"},null,8,["modelValue","items"])]),s(ns,{class:"mt-4",labels:da.value,"selected-ids":M.form.label_ids,onToggle:nl,onCreate:ul},null,8,["labels","selected-ids"])]),o("div",Xd,[s(I,{color:"control",variant:"outlined",onClick:Lt,class:"action-btn btn-cancel"},{default:l(()=>[...e[99]||(e[99]=[r(" Cancel ",-1)])]),_:1}),s(I,{color:"primary",variant:"elevated",onClick:dl,loading:M.saving,class:"action-btn btn-create"},{default:l(()=>[...e[100]||(e[100]=[r(" Save ",-1)])]),_:1},8,["loading"])])]),_:1})]),_:1},8,["modelValue"]),s(Ma,{modelValue:qe.value,"onUpdate:modelValue":e[41]||(e[41]=i=>qe.value=i),"teacher-id":((j=$(m).teacher)==null?void 0:j.id)??0,"team-id":We.value,"team-name":ia.value,onLabelsChanged:ma},null,8,["modelValue","teacher-id","team-id","team-name"]),a.loadingBoardGroups?(u(),y("div",Qd,[s(Ot,{indeterminate:"",color:"primary",size:"48"}),e[101]||(e[101]=o("p",{class:"mt-4 text-body-1"},"Loading Board Groups...",-1))])):B("",!0),a.boardToMove&&!a.loadingBoardGroups?(u(),y("div",Hd,[s(v,null,{default:l(()=>[...e[102]||(e[102]=[r("mdi-folder-move",-1)])]),_:1}),o("span",null,'Moving "'+E(a.boardToMove.name)+'" - Click a different group to move it there',1),s(I,{size:"small",variant:"text",onClick:e[42]||(e[42]=i=>a.boardToMove=null)},{default:l(()=>[...e[103]||(e[103]=[r("Cancel",-1)])]),_:1})])):B("",!0),$(Ht)&&$(Zt)?(u(),y("div",{key:2,class:"mobile-sidebar-backdrop",onClick:e[43]||(e[43]=i=>Zt.value=!1)})):B("",!0),a.loadingBoardGroups?B("",!0):(u(),y("div",Zd,[s(rs,{modelValue:D.value,"onUpdate:modelValue":e[44]||(e[44]=i=>D.value=i),items:ko.value,labels:$(sa),teams:$(P),"pending-invites":$(m).pendingInvites,"item-name":"Board Groups","personal-label":"My Boards","personal-icon":"mdi-view-dashboard",visible:$(ea),"mobile-open":$(eo),"get-team-items":i=>Tt(i).map(V=>{const k=at.value.get(V.id);return{grade_level:(k==null?void 0:k.grade_level)||null,subject:(k==null?void 0:k.subject)||null,unit:(k==null?void 0:k.unit)||null,labels:(k==null?void 0:k.labels)||[],owner_type:"team",owner_id:V.owner_id}}),"personal-labels":$(p),"team-labels-map":$(Q),onOpenLabelManager:cl,onCollapse:$(Jt)},null,8,["modelValue","items","labels","teams","pending-invites","visible","mobile-open","get-team-items","personal-labels","team-labels-map","onCollapse"]),o("div",Jd,[o("div",en,[o("div",tn,[o("div",an,[s(v,{size:"28",color:"primary",class:"mr-3"},{default:l(()=>[...e[104]||(e[104]=[r("mdi-presentation",-1)])]),_:1}),e[105]||(e[105]=o("h2",{class:"boards-title"},"Board Groups",-1))]),s(Ne,{modelValue:Oe.value,"onUpdate:modelValue":e[45]||(e[45]=i=>Oe.value=i),"prepend-inner-icon":"mdi-magnify",placeholder:"Search...",variant:"outlined",density:"compact","hide-details":"",clearable:"",class:"input-toolbar",style:{"min-width":"200px","max-width":"300
2px"}},null,8,["modelValue"]),s(Qt,{modelValue:Ye.value,"onUpdate:modelValue":e[46]||(e[46]=i=>Ye.value=i),items:to,"item-title":"title","item-value":"value",variant:"outlined",density:"compact","hide-details":"",class:"select-toolbar","prepend-inner-icon":"mdi-sort"},null,8,["modelValue"]),s(I,{color:"primary",variant:"elevated",onClick:e[47]||(e[47]=i=>{Se.dialog=!0,Se.name=""}),"data-testid":"boards-new-group-btn"},{default:l(()=>[s(v,{class:"mr-2"},{default:l(()=>[...e[106]||(e[106]=[r("mdi-plus",-1)])]),_:1}),e[107]||(e[107]=r(" New Group ",-1))]),_:1})]),s(ds,{"sidebar-visible-desktop":$(ea),"show-scope":$(go),"scope-segments":$(fo),"active-scope":$(bo),"active-filter-chips":$(wo),"has-active-filters":$(_o),onToggle:$(Jt),onSetScope:$(yo),onClearAll:$(ho)},null,8,["sidebar-visible-desktop","show-scope","scope-segments","active-scope","active-filter-chips","has-active-filters","onToggle","onSetScope","onClearAll"]),D.value.sources.size===0?(u(),y("div",on,[o("div",ln,[s(v,{size:"80",color:"grey-lighten-2"},{default:l(()=>[...e[108]||(e[108]=[r("mdi-checkbox-blank-off-outline",-1)])]),_:1})]),e[109]||(e[109]=o("h3",{class:"empty-title"},"No sources selected",-1)),e[110]||(e[110]=o("p",{class:"empty-description"},"Select at least one source to view board groups",-1))])):St.value.length===0&&(aa.value||Oe.value)?(u(),y("div",sn,[o("div",rn,[s(v,{size:"80",color:"grey-lighten-2"},{default:l(()=>[...e[111]||(e[111]=[r("mdi-filter-off-outline",-1)])]),_:1})]),e[112]||(e[112]=o("h3",{class:"empty-title"},"No matching board groups",-1)),e[113]||(e[113]=o("p",{class:"empty-description"},"Try adjusting your filters or search",-1))])):St.value.length===0?(u(),y("div",dn,[o("div",nn,[s(v,{size:"80",color:"grey-lighten-2"},{default:l(()=>[...e[114]||(e[114]=[r("mdi-view-dashboard-outline",-1)])]),_:1})]),e[117]||(e[117]=o("h3",{class:"empty-title"},"No board groups yet",-1)),e[118]||(e[118]=o("p",{class:"empty-description"},"Create your first board group to start organizing your interactive boards",-1)),s(I,{variant:"elevated",color:"primary",onClick:e[48]||(e[48]=i=>{Se.dialog=!0,Se.name=""}),size:"large","data-testid":"boards-create-first-group-btn"},{default:l(()=>[s(v,{class:"mr-2"},{default:l(()=>[...e[115]||(e[115]=[r("mdi-plus",-1)])]),_:1}),e[116]||(e[116]=r(" Create First Group ",-1))]),_:1})])):(u(),y("div",un,[Ye.value==="manual"&&!ta.value?(u(),y("div",cn,[s(v,{size:"small",class:"mr-1"},{default:l(()=>[...e[119]||(e[119]=[r("mdi-information-outline",-1)])]),_:1}),e[120]||(e[120]=r(" Manual ordering is unavailable while filters or multiple sources are active. ",-1))])):B("",!0),s(ls,{modelValue:ot.value,"onUpdate:modelValue":e[51]||(e[51]=i=>ot.value=i),"item-key":"id","on-reorder":ao,disabled:!ta.value},{item:l(({item:i})=>{var V,k,ie,wt,Le;return[Bt((u(),y("div",{class:Pe(["board-group-section",{"is-expanded":ct(i.id),"is-move-target":a.boardToMove&&((V=a.selectedBoardGroup)==null?void 0:V.id)!==i.id}]),"data-group-id":i.id,onClick:W=>a.boardToMove?zt(i):null},[Bt((u(),y("div",{class:"board-group-row",onClick:De(W=>a.boardToMove?null:xt(i.id),["stop"])},[o("div",vn,[s(I,{icon:"",variant:"text",size:"small",class:"expand-btn","data-testid":`boards-group-toggle-${i.id}`,onClick:De(W=>xt(i.id),["stop"])},{default:l(()=>[s(v,null,{default:l(()=>[r(E(ct(i.id)?"mdi-chevron-down":"mdi-chevron-right"),1)]),_:2},1024)]),_:2},1032,["data-testid","onClick"]),o("div",{class:"board-group-color-dot",style:Re({backgroundColor:$l(i.name)})},null,4),o("span",gn,E(i.name),1),o("span",fn,"("+E(((k=i.boards)==null?void 0:k.length)||0)+")",1),yt(i.id).length>0?(u(),y("div",bn,[(u(!0),y(re,null,ke(yt(i.id).slice(0,3),W=>(u(),y("span",{key:W.id,class:"board-group-label-chip",style:Re($(Cs)(W.color))},E(W.name),5))),128)),yt(i.id).length>3?(u(),y("span",yn," +"+E(yt(i.id).length-3),1)):B("",!0)])):B("",!0),!ct(i.id)&&((ie=i.boards)!=null&&ie.length)?(u(),y("div",wn,[(u(!0),y(re,null,ke(i.boards.slice(0,4),W=>(u(),y("div",{key:W.id,class:"preview-thumb"},[s($(Ft),{background:$(Nt)(W),preview:""},null,8,["background"])]))),128))])):B("",!0)]),o("div",{class:"board-group-row-actions",onClick:e[49]||(e[49]=De(()=>{},["stop"]))},[(wt=i.boards)!=null&&wt.length?(u(),F(I,{key:0,variant:"outlined",color:"primary",size:"small",class:"present-btn",onClick:W=>so(i),"data-testid":"boards-present-group-btn"},{default:l(()=>[s(v,{size:"small",class:"mr-1"},{default:l(()=>[...e[121]||(e[121]=[r("mdi-presentation",-1)])]),_:1}),e[122]||(e[122]=r(" Present ",-1))]),_:1},8,["onClick"])):B("",!0),s(Kt,{location:"bottom end"},{activator:l(({props:W})=>[s(I,dt(W,{variant:"text",icon:"",size:"small",class:"menu-btn","data-testid":"boards-group-menu-btn"}),{default:l(()=>[s(v,null,{default:l(()=>[...e[123]||(e[123]=[r("mdi-dots-vertical",-1)])]),_:1})]),_:1},16)]),default:l(()=>[s(Xt,{density:"compact"},{default:l(()=>[s(me,{onClick:W=>{a.selectedBoardGroup=i,Il()}},{prepend:l(()=>[s(v,{color:"primary",size:"small"},{default:l(()=>[...e[124]||(e[124]=[r("mdi-share-variant",-1)])]),_:1})]),default:l(()=>[s(pe,null,{default:l(()=>[...e[125]||(e[125]=[r("Share",-1)])]),_:1})]),_:1},8,["onClick"]),he(i)?(u(),F(me,{key:0,onClick:W=>{a.selectedBoardGroup=i,le.renameDialog=!0}},{prepend:l(()=>[s(v,{color:"primary",size:"small"},{default:l(()=>[...e[126]||(e[126]=[r("mdi-pencil",-1)])]),_:1})]),default:l(()=>[s(pe,null,{default:l(()=>[...e[127]||(e[127]=[r("Rename",-1)])]),_:1})]),_:1},8,["onClick"])):B("",!0),he(i)?(u(),F(me,{key:1,onClick:W=>{a.selectedBoardGroup=i,Jo()},"data-testid":"boards-group-background-btn"},{prepend:l(()=>[s(v,{color:"primary",size:"small"},{default:l(()=>[...e[128]||(e[128]=[r("mdi-palette-outline",-1)])]),_:1})]),default:l(()=>[s(pe,null,{default:l(()=>
2[...e[129]||(e[129]=[r("Background",-1)])]),_:1})]),_:1},8,["onClick"])):B("",!0),he(i)?(u(),F(me,{key:2,onClick:W=>{a.selectedBoardGroup=i,rl(i)}},{prepend:l(()=>[s(v,{color:"primary",size:"small"},{default:l(()=>[...e[130]||(e[130]=[r("mdi-tag-multiple",-1)])]),_:1})]),default:l(()=>[s(pe,null,{default:l(()=>[...e[131]||(e[131]=[r("Organize",-1)])]),_:1})]),_:1},8,["onClick"])):B("",!0),he(i)?(u(),F(me,{key:3,onClick:W=>{a.selectedBoardGroup=i,le.duplicateDialog=!0}},{prepend:l(()=>[s(v,{color:"primary",size:"small"},{default:l(()=>[...e[132]||(e[132]=[r("mdi-content-copy",-1)])]),_:1})]),default:l(()=>[s(pe,null,{default:l(()=>[...e[133]||(e[133]=[r("Duplicate",-1)])]),_:1})]),_:1},8,["onClick"])):B("",!0),Xe(i)&&$(P).length>0?(u(),F(me,{key:4,onClick:W=>co(i)},{prepend:l(()=>[s(v,{color:"primary",size:"small"},{default:l(()=>[...e[134]||(e[134]=[r("mdi-folder-arrow-right",-1)])]),_:1})]),default:l(()=>[s(pe,null,{default:l(()=>[...e[135]||(e[135]=[r("Transfer to Team",-1)])]),_:1})]),_:1},8,["onClick"])):B("",!0),!Xe(i)&&he(i)?(u(),F(me,{key:5,onClick:W=>po(i)},{prepend:l(()=>[s(v,{color:"primary",size:"small"},{default:l(()=>[...e[136]||(e[136]=[r("mdi-folder-account",-1)])]),_:1})]),default:l(()=>[s(pe,null,{default:l(()=>[...e[137]||(e[137]=[r("Transfer to My Boards",-1)])]),_:1})]),_:1},8,["onClick"])):B("",!0),he(i)?(u(),y(re,{key:6},[s(kt,{class:"my-1"}),s(me,{onClick:W=>{a.selectedBoardGroup=i,le.deleteDialog=!0}},{prepend:l(()=>[s(v,{color:"error",size:"small"},{default:l(()=>[...e[138]||(e[138]=[r("mdi-delete",-1)])]),_:1})]),default:l(()=>[s(pe,{class:"text-error"},{default:l(()=>[...e[139]||(e[139]=[r("Delete",-1)])]),_:1})]),_:1},8,["onClick"])],64)):B("",!0)]),_:2},1024)]),_:2},1024)])],8,pn)),[[$(jt),()=>a.boardToMove?!1:xt(i.id)]]),ct(i.id)?(u(),y("div",{key:0,class:"board-group-content",onClick:De(W=>a.boardToMove?zt(i):null,["stop"])},[(Le=i.boards)!=null&&Le.length?(u(),y("div",Vn,[s($(Ds),dt({"model-value":i.boards,"onUpdate:modelValue":W=>i.boards=W,"item-key":"id",class:"board-thumbnails-draggable","data-testid":`boards-board-list-${i.id}`,"ghost-class":"board-drag-ghost","drag-class":"board-drag-active",animation:200},$(Ol),{disabled:!he(i),onEnd:W=>oo(W,i)}),{item:l(({element:W})=>{var Ga,$a;return[Bt((u(),y("div",{class:"board-thumbnail","data-testid":`boards-board-${W.id}`,onClick:Ze=>{a.selectedBoardGroup=i,Fe(W)}},[s($(Ft),{background:$(Nt)(W),preview:""},null,8,["background"]),o("div",Dn,[o("span",xn,E(W.name),1),o("span",Tn,E(((Ga=W.widgets)==null?void 0:Ga.length)||0)+" widget"+E(((($a=W.widgets)==null?void 0:$a.length)||0)!==1?"s":""),1)]),he(i)?(u(),F(Kt,{key:0},{activator:l(({props:Ze})=>[s(I,dt(Ze,{icon:"",size:"x-small",variant:"text",class:"board-thumbnail-menu",onClick:e[50]||
2(e[50]=De(()=>{},["stop"]))}),{default:l(()=>[s(v,{size:"small"},{default:l(()=>[...e[144]||(e[144]=[r("mdi-dots-vertical",-1)])]),_:1})]),_:1},16)]),default:l(()=>[s(Xt,{density:"compact"},{default:l(()=>[s(me,{onClick:Ze=>{a.selectedBoardGroup=i,N.board=W,N.renameDialog=!0}},{prepend:l(()=>[s(v,{size:"small",color:"primary"},{default:l(()=>[...e[145]||(e[145]=[r("mdi-pencil",-1)])]),_:1})]),default:l(()=>[s(pe,null,{default:l(()=>[...e[146]||(e[146]=[r("Rename",-1)])]),_:1})]),_:1},8,["onClick"]),s(me,{onClick:Ze=>{a.selectedBoardGroup=i,No(W)}},{prepend:l(()=>[s(v,{size:"small",color:"primary"},{default:l(()=>[...e[147]||(e[147]=[r("mdi-content-copy",-1)])]),_:1})]),default:l(()=>[s(pe,null,{default:l(()=>[...e[148]||(e[148]=[r("Duplicate",-1)])]),_:1})]),_:1},8,["onClick"]),s(me,{onClick:Ze=>{a.selectedBoardGroup=i,wl(W)}},{prepend:l(()=>[s(v,{size:"small",color:"info"},{default:l(()=>[...e[149]||(e[149]=[r("mdi-folder-move",-1)])]),_:1})]),default:l(()=>[s(pe,null,{default:l(()=>[...e[150]||(e[150]=[r("Move",-1)])]),_:1})]),_:1},8,["onClick"]),s(kt,{class:"my-1"}),s(me,{onClick:Ze=>{a.selectedBoardGroup=i,N.board=W,N.deleteDialog=!0}},{prepend:l(()=>[s(v,{size:"small",color:"error"},{default:l(()=>[...e[151]||(e[151]=[r("mdi-delete",-1)])]),_:1})]),default:l(()=>[s(pe,{class:"text-error"},{default:l(()=>[...e[152]||(e[152]=[r("Delete",-1)])]),_:1})]),_:1},8,["onClick"])]),_:2},1024)]),_:2},1024)):B("",!0)],8,Cn)),[[$(jt),()=>{a.selectedBoardGroup=i,Fe(W)}]])]}),footer:l(()=>[he(i)?(u(),y("div",{key:0,class:"board-thumbnail board-thumbnail-add",onClick:W=>{a.selectedBoardGroup=i,Va()},"data-testid":"boards-add-board-btn"},[s(v,{size:"24",color:"grey"},{default:l(()=>[...e[153]||(e[153]=[r("mdi-plus",-1)])]),_:1}),e[154]||(e[154]=o("span",{class:"add-board-text"},"Add Board",-1))],8,Sn)):B("",!0)]),_:2},1040,["model-value","onUpdate:modelValue","data-testid","disabled","onEnd"])])):(u(),y("div",hn,[he(i)?(u(),y("div",{key:0,class:"board-thumbnail board-thumbnail-add",onClick:De(W=>{a.selectedBoardGroup=i,Va()},["stop"]),"data-testid":"boards-add-first-board-btn"},[s(v,{size:"28",color:"grey"},{default:l(()=>[...e[140]||(e[140]=[r("mdi-plus",-1)])]),_:1}),e[141]||(e[141]=o("span",{class:"add-board-text"},"Add your first board",-1))],8,kn)):(u(),y("div",Bn,[s(v,{size:"24",color:"grey-lighten-1"},{default:l(()=>[...e[142]||(e[142]=[r("mdi-cards-outline",-1)])]),_:1}),e[143]||(e[143]=o("span",{class:"add-board-text"},"No boards yet",-1))]))]))],8,_n)):B("",!0)],10,mn)),[[$(jt),()=>a.boardToMove?zt(i):!1]])]}),_:1},8,["modelValue","disabled"]),o("div",{class:"board-group-section board-group-add",onClick:e[52]||(e[52]=i=>{Se.dialog=!0,Se.name=""})},[o("div",In,[o("div",Gn,[s(v,{class:"mr-2",color:"grey"},{default:l(()=>[...e[155]||(e[155]=[r("mdi-plus",-1)])]),_:1}),e[156]||(e[156]=o("span",{class:"add-group-text"},"Add New Group",-1))])])])]))])])])),s(Ma,{modelValue:qe.value,"onUpdate:modelValue":e[53]||(e[53]=i=>qe.value=i),"teacher-id":((x=$(m).teacher)==null?void 0:x.id)??0,"team-id":We.value,"team-name":ia.value,onLabelsChanged:ma},null,8,["modelValue","teacher-id","team-id","team-name"]),s(Ql,{open:Se.dialog,title:"Create Board Group",teams:$(P),"resource-options":$(C),subjects:$(h),"existing-units":ra.value,"initial-subject":D.value.subject===""?null:D.value.subject,"initial-unit":D.value.unit===""?null:D.value.unit,"initial-grade-level":D.value.grade===""?null:D.value.grade,"personal-label":"My Boards",onCreate:Ko,onClose:e[54]||(e[54]=i=>Se.dialog=!1),onSubjectsChanged:$(L)},null,8,["open","teams","resource-options","subjects","existing-units","initial-subject","initial-unit","initial-grade-level","onSubjectsChanged"]),s(ye,{modelValue:ut.value,"onUpdate:modelValue":e[57]||(e[57]=i=>ut.value=i),"max-width":"min(450px, 90vw)",scrim:!1,transition:"dialog-transition"},{default:l(()=>[s(ge,{class:"dialog-wrapper",elevation:"12"},{default:l(()=>{var i;return[o("div",$n,[o("div",En,[s(v,{size:"24",color:"primary"},{default:l(()=>[...e[157]||(e[157]=[r("mdi-folder-arrow-right",-1)])]),_:1})]),e[158]||(e[158]=o("h3",{class:"dialog-title"},"Transfer to Team",-1))]),o("div",An,[we.value?(u(),y(re,{key:1},[o("div",zn,[o("div",{class:"team-select-icon large mx-auto mb-2",style:Re({backgroundColor:we.value.color||"#1976D2"})}
2,[s(v,{color:"white",size:"24"},{default:l(()=>[...e[164]||(e[164]=[r("mdi-account-group",-1)])]),_:1})],4),o("div",Pn,E(we.value.name),1)]),s(Me,{type:"info",variant:"tonal",density:"compact",class:"mt-2"},{default:l(()=>{var V;return[o("strong",null,E((V=Ke.value)==null?void 0:V.name),1),e[165]||(e[165]=r(" will be transferred to this team. All team members will have access. ",-1))]}),_:1})],64)):(u(),y(re,{key:0},[o("p",Ln,' Select a team to transfer "'+E((i=Ke.value)==null?void 0:i.name)+'" to: ',1),s(Xt,{density:"compact",class:"team-select-list"},{default:l(()=>[(u(!0),y(re,null,ke($(P),V=>(u(),F(me,{key:V.id,onClick:k=>V.role!=="viewer"&&(we.value=V),disabled:V.role==="viewer",class:Pe({"opacity-50":V.role==="viewer"})},{prepend:l(()=>[o("div",{class:"team-select-icon",style:Re({backgroundColor:V.color||"#1976D2"})},[s(v,{color:"white",size:"16"},{default:l(()=>[...e[159]||(e[159]=[r("mdi-account-group",-1)])]),_:1})],4)]),append:l(()=>[s(Es,{size:"x-small",color:uo(V.role),variant:"tonal"},{default:l(()=>[r(E(io(V.role)),1)]),_:2},1032,["color"])]),default:l(()=>[s(pe,null,{default:l(()=>[r(E(V.name),1)]),_:2},1024),s(Ul,null,{default:l(()=>[r(E(V.member_count)+" member"+E(V.member_count!==1?"s":""),1)]),_:2},1024)]),_:2},1032,["onClick","disabled","class"]))),128))]),_:1}),$(P).length===0?(u(),y("div",Rn,[s(v,{size:"48",color:"grey-lighten-1"},{default:l(()=>[...e[160]||(e[160]=[r("mdi-account-multiple-outline",-1)])]),_:1}),e[162]||(e[162]=o("p",{class:"mt-2 mb-1 font-weight-medium"},"No teams yet",-1)),e[163]||(e[163]=o("p",{class:"text-body-2 text-grey mb-3"},"Create a team to collaborate with colleagues",-1)),s(I,{color:"primary",variant:"elevated",size:"small","prepend-icon":"mdi-plus",onClick:e[55]||(e[55]=V=>$(rt).push("/teams")),class:"action-btn btn-create"},{default:l(()=>[...e[161]||(e[161]=[r(" Create Team ",-1)])]),_:1})])):B("",!0)],64))]),o("div",Mn,[we.value?(u(),F(I,{key:0,variant:"text",onClick:e[56]||(e[56]=V=>we.value=null),class:"action-btn back-btn"},{default:l(()=>[s(v,{start:""},{default:l(()=>[...e[166]||(e[166]=[r("mdi-arrow-left",-1)])]),_:1}),e[167]||(e[167]=r(" Back ",-1))]),_:1})):B("",!0),s(Yt),s(I,{color:"control",variant:"outlined",onClick:la,class:"action-btn btn-cancel"},{default:l(()=>[...e[168]||(e[168]=[r(" Cancel ",-1)])]),_:1}),we.value?(u(),F(I,{key:1,color:"primary",variant:"elevated",loading:tt.value,onClick:mo,class:"action-btn btn-create"},{default:l(()=>[...e[169]||(e[169]=[r(" Transfer ",-1)])]),_:1},8,["loading"])):B("",!0)])]}),_:1})]),_:1},8,["modelValue"]),a.launchedTool==="roll-call"?(u(),F($(oe),{key:4,embedded:"",onClose:vt,onNavigate:ga})):B("",!0),a.launchedTool==="check-in"?(u(),F(Ra,{key:5,"model-value":"",title:"Check-In",onClose:vt},{default:l(()=>[s($(q),dt({embedded:""},a.launchedToolProps,{onNavigate:ga,onClose:vt}),null,16)]),_:1})):B("",!0)])}}}),ju=Te(On,[["__scopeId","data-v-f10bf375"]]);export{ju as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.