PageSourceSearch

https://flashcards.world/_next/static/chunks/9061.81921d2f9eb102af.js

js flashcards.world collected 2026-10-01 16:22:40 UTC 85,314 bytes, 2 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1235,3616,9061],{316:e=>{e.exports={loadingContainer:"Loading_loadingContainer__a5dmk",fadeIn:"Loading_fadeIn__RLeso",spinner:"Loading_spinner__l8Si7",spin:"Loading_spin__KWwaf"}},786:(e,t,a)=>{"use strict";a.d(t,{f:()=>s});var r=a(7964),n=a(4232);let l='a[href], button:not([disabled]), input:not([disabled]), textarea:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])';function s(e){let t,a,s=(0,r.c)(6),{isOpen:o,modalRef:d,onClose:c,closeOnEscape:u}=e,m=void 0===u||u,p=(0,n.useRef)(null);s[0]!==m||s[1]!==o||s[2]!==d||s[3]!==c?(t=()=>{if(!o)return;p.current="u">typeof document?document.activeElement:null;let e=d.current,t=setTimeout(()=>{if(!e)return;let t=e.querySelector('[data-autofocus="true"]')||e.querySelector(l);t&&"function"==typeof t.focus&&t.focus()},0),a=t=>{if("Escape"===t.key&&m){t.stopPropagation(),c?.();return}if("Tab"!==t.key||!e)return;let a=Array.from(e.querySelectorAll(l)).filter(i);if(0===a.length)return void t.preventDefault();let r=a[0],n=a[a.length-1],s=document.activeElement;t.shiftKey&&s===r?(t.preventDefault(),n.focus()):t.shiftKey||s!==n||(t.preventDefault(),r.focus())};document.addEventListener("keydown",a);let r=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{clearTimeout(t),document.removeEventListener("keydown",a),document.body.style.overflow=r;let e=p.current;e&&"function"==typeof e.focus&&e.focus()}},a=[o,d,c,m],s[0]=m,s[1]=o,s[2]=d,s[3]=c,s[4]=t,s[5]=a):(t=s[4],a=s[5]),(0,n.useEffect)(t,a)}function i(e){return!e.hasAttribute("disabled")&&null!==e.offsetParent}},2539:(e,t,a)=>{"use strict";function r(e){let t=Array.isArray(e)?e.map(e=>({...e})):[],a=new Set(t.map((e,t)=>e.index??t));for(;t.length<5;){let e=0;for(;a.has(e);)e+=1;t.push({answer:"",isCorrect:!1,index:e}),a.add(e)}return t}function n(e){return Array.isArray(e?.answers)?{...e,answers:e.answers.filter(e=>{let t=e?.answer??e?.text;return"string"==typeof t&&t.trim().length>0})}:e}a.d(t,{N:()=>n,Z:()=>r})},3333:(e,t,a)=>{"use strict";a.d(t,{Z:()=>I});var r=a(7876),n=a(4232),l=a(8084),s=a.n(l),i=a(5249),o=a.n(i);let d=(0,n.forwardRef)((e,t)=>{let{answers:a,handleAnswerChange:l,handleCheckboxChange:s,handleAnswerKeyDown:i,cardId:d,translations:c}=e,u=(0,n.useRef)(null);return(0,n.useImperativeHandle)(t,()=>({focusFirstAnswer:()=>{u.current&&u.current.focus()}})),(0,r.jsx)("div",{className:o().answersWrapper,children:a.map((e,t)=>(0,r.jsxs)("div",{className:o().answerContainer,children:[(0,r.jsxs)("label",{className:o().checkboxWrapper,children:[(0,r.jsx)("input",{type:"checkbox",className:o().hiddenCheckbox,"aria-label":`${c.correctLabel}: ${c.answerPlaceholder(t+1)}`,checked:e.isCorrect,onChange:s(t)}),(0,r.jsx)("div",{className:o().customCheckbox})]}),(0,r.jsx)("textarea",{ref:0===t?u:null,rows:1,className:o().answertextarea,"aria-label":c.answerPlaceholder(t+1),value:e.answer,onChange:l(t),onKeyDown:i,placeholder:c.answerPlaceholder(t+1),"data-card-focus":"true"})]},t))})});d.displayName="MultipleAnswersInputComponent";var c=a(2539),u=a(1472),m=a(3616),p=a(378),g=a(3549),f=a.n(g),_=a(9511),h=a(786);let y=[.92,.85,.75,.65,.55];async function b(e){for(let t of y){let a=await new Promise(a=>e.toBlob(e=>a(e??null),"image/jpeg",t));if(a&&(a.size<=819200||t===y[y.length-1]))return a}return null}let C=function(e){let{isOpen:t,imageUrl:a,side:l,label:s,onApply:i,onClose:o}=e,{t:d}=(0,_.B)(),c=(0,n.useRef)(null),m=(0,n.useRef)(null),p=(0,n.useRef)(null);(0,h.f)({isOpen:t,modalRef:m,onClose:o});
1let[g,y]=(0,n.useState)(null),[C,v]=(0,n.useState)(!1),[x,w]=(0,n.useState)(null),[k,I]=(0,n.useState)(1),[E,j]=(0,n.useState)(1),[S,L]=(0,n.useState)({x:0,y:0}),[N,A]=(0,n.useState)(0),[D,T]=(0,n.useState)(!1),R=(0,n.useCallback)(()=>{I(1),L({x:0,y:0}),A(0)},[]);(0,n.useEffect)(()=>{if(!t){y(null),w(null),R();return}let e=!1;return(async()=>{v(!0),w(null);try{let t=Date.now(),r=-1===a.indexOf("?")?`${a}?cb=${t}`:`${a}&cb=${t}`,n=new Image;n.crossOrigin="anonymous",n.decoding="async";let l=new Promise((e,t)=>{n.onload=()=>e(n),n.onerror=()=>t(Error(d("components.image_editor.load_failed",{defaultValue:"Unable to load image for editing."})))});if(n.src=r,await l,e)return;let s=await createImageBitmap(n);e||y(s)}catch(t){e||(console.error("[ImageEditorModal] failed to load image",t),w(t instanceof Error?t.message:d("components.image_editor.load_failed",{defaultValue:"Unable to load image for editing."})))}finally{e||v(!1)}})(),()=>{e=!0}},[a,t,R]),(0,n.useEffect)(()=>{if(!g||!c.current)return;let{clientWidth:e,clientHeight:t}=c.current;e&&t&&(j(Math.max(e/g.width,t/g.height)),R())},[g,R]);let M=(0,n.useMemo)(()=>E*k,[E,k]),V=e=>{p.current&&(p.current=null,e.currentTarget.releasePointerCapture(e.pointerId))},U=e=>{A(t=>{let a;return(a=(t+e)%360)<0&&(a+=360),a})},P=async()=>{if(g&&c.current){T(!0);
1try{let e=c.current,t=window.devicePixelRatio||1,a=document.createElement("canvas");a.width=e.clientWidth*t,a.height=e.clientHeight*t;let r=a.getContext("2d");if(!r)throw Error("Unable to access canvas context");r.scale(t,t),r.translate(e.clientWidth/2+S.x,e.clientHeight/2+S.y),r.rotate(N*Math.PI/180),r.scale(M,M),r.drawImage(g,-g.width/2,-g.height/2);let n=await b(a);if(!n)throw Error("Failed to generate edited image.");let l=new File([n],`card-image-${Date.now()}.jpg`,{type:"image/jpeg"});i?.(l)}catch(e){console.error("[ImageEditorModal] failed to apply edits",e),w("Unable to apply edits. Please try again.")}finally{T(!1)}}};return t?(0,r.jsx)("div",{className:f().overlay,onClick:o,children:(0,r.jsxs)("div",{ref:m,className:f().modal,onClick:e=>e.stopPropagation(),role:"dialog","aria-modal":"true","aria-label":d("components.image_editor.title",{label:s,defaultValue:`Edit ${s}`}),children:[(0,r.jsx)("button",{type:"button",className:f().closeButton,onClick:o,"aria-label":d("components.image_editor.close",{defaultValue:"Close editor"}),children:(0,r.jsx)(u.QCr,{})}),(0,r.jsxs)("header",{className:f().header,children:[(0,r.jsx)("h2",{children:d("components.image_editor.title",{label:s,defaultValue:`Edit ${s}`})}),(0,r.jsx)("p",{children:d("components.image_editor.subtitle",{defaultValue:"Drag to reposition, adjust zoom, and rotate as needed."})})]}),(0,r.jsx)("div",{className:f().editorArea,children:(0,r.jsxs)("div",{ref:c,className:f().cropper,onPointerDown:e=>{0===e.button&&(p.current={originX:S.x,originY:S.y,startX:e.clientX,startY:e.clientY},e.currentTarget.setPointerCapture(e.pointerId))},onPointerMove:e=>{if(!p.current)return;let t=e.clientX-p.current.startX,a=e.clientY-p.current.startY;L({x:p.current.originX+t,y:p.current.originY+a})},onPointerUp:V,onPointerLeave:V,children:[C&&(0,r.jsx)("div",{className:f().loadingState,children:d("components.image_editor.loading",{defaultValue:"Loading image…"})}),!C&&x&&(0,r.jsx)("div",{className:f().errorState,children:x}),!C&&!x&&g&&(0,r.jsx)("img",{src:a,alt:s,style:{transform:`translate(-50%, -50%) translate(${S.x}px, ${S.y}px) scale(${M}) rotate(${N}deg)`}})]})}),(0,r.jsxs)("div",{className:f().controls,children:[(0,r.jsxs)("div",{className:f().sliderGroup,children:[(0,r.jsx)("span",{className:f().controlLabel,children:d("components.image_editor.zoom",{defaultValue:"Zoom"})}),(0,r.jsx)("input",{type:"range",min:"1",max:"3",step:"0.01",value:k,onChange:e=>I(Number(e.target.value)),"aria-label":d("components.image_editor.zoom",{defaultValue:"Zoom"})})]}),(0,r.jsxs)("div",{className:f().buttonRow,children:[(0,r.jsx)("button",{type:"button",className:f().iconButton,onClick:()=>U(-90),"aria-label":d("components.image_editor.rotate_left",{defaultValue:"Rotate left"}),children:(0,r.jsx)(u.tMu,{})}),(0,r.jsx)("button",{type:"button",className:f().iconButton,onClick:()=>U(90),"aria-label":d("components.image_editor.rotate_right",{defaultValue:"Rotate right"}),children:(0,r.jsx)(u.Lsu,{})}),(0,r.jsx)("button",{type:"button",className:f().iconButton,onClick:R,"aria-label":d("components.image_editor.reset",{defaultValue:"Reset adjustments"}),children:(0,r.jsx)(u.KP4,{})})]})]}),(0,r.jsxs)("footer",{className:f().footer,children:[(0,r.jsx)("button",{type:"button",className:f().secondaryButton,onClick:o,disabled:D,children:d("components.image_editor.cancel",{defaultValue:"Cancel"})}),(0,r.jsxs)("button",{type:"button",className:f().primaryButton,onClick:P,disabled:D||!g,children:[(0,r.jsx)(u.CMH,{}),d("components.image_editor.apply",{defaultValue:"Apply"})]})]})]})}):null};var v=a(4090),x=a(3812),w=a(7340);let k=e=>{let{card:t,index:a,availableTags:l=[],selectedTagIds:i=[],onAssignTag:o,onRemoveTag:g,onManageTags:f,onCardChange:_,canUploadImages:h=!1,onImageUpload:y,onImageRemove:b,imageState:k,onDelete:I,focusOnNewCard:E,onTabPressed:j,translations:S,sourceLanguage:L,targetLanguage:N,layout:A="grid"}=e,D=(0,n.useRef)(null),T=(0,n.useRef)(null),R=(0,n.useRef)(null),M=(0,n.useRef)(null),V=(0,n.useRef)(null),[U,P]=(0,n.useState)(null),[B,F]=(0,n.useState)(null),[O,$]=(0,n.useState)({front:!1,back:!1}
1),[H,q]=(0,n.useState)(()=>(0,c.Z)(t.answers)),[W,K]=(0,n.useState)(()=>(t.answers||[]).length>=2&&(t.answers||[]).some(e=>e.isCorrect)),[G,z]=(0,n.useState)(!1),[Y,J]=(0,n.useState)(!1),Q=S?.images??{};Q.dropHint||Q.upload;let Z=k?.front??{status:"idle",error:null},X=k?.back??{status:"idle",error:null},ee=!!h,et=(0,n.useMemo)(()=>{let e=new Map;return l.forEach(t=>{e.set(t.id,t)}),e},[l]),ea=(0,n.useCallback)(e=>a=>{if(!y){a.target.value="";return}let r=a.target.files;r&&r[0]&&y(t.cardId,e,r[0]),a.target.value=""},[t.cardId,y]),er=(0,n.useCallback)(e=>{if(!b)return;let a="front"===e?t.frontImageURL:t.backImageURL;b(t.cardId,e,a)},[t.backImageURL,t.cardId,t.frontImageURL,b]),en=(0,n.useCallback)(e=>{let a="front"===e?t.frontImageURL:t.backImageURL;a&&P({side:e,url:a,label:"front"===e?Q.frontLabel||"Front image":Q.backLabel||"Back image"})},[t.backImageURL,t.frontImageURL,Q.backLabel,Q.frontLabel]),el=(0,n.useCallback)(()=>{P(null)},[]),es=(0,n.useCallback)(async(e,a)=>{a instanceof File&&await y?.(t.cardId,e,a),P(null)},[t.cardId,y]),ei=(0,n.useCallback)(()=>{F(e=>(e?.previewUrl&&URL.revokeObjectURL(e.previewUrl),null))},[]),eo=(0,n.useCallback)(async e=>{if(!ee||!B?.file)return void ei();try{await y?.(t.cardId,e,B.file)}finally{ei()}},[t.cardId,B,y,ei,ee]),ed=(0,n.useCallback)(e=>t=>{ee&&(t.preventDefault(),$(t=>t[e]?t:{...t,[e]:!0}))},[ee]),ec=(0,n.useCallback)(e=>e=>{ee&&(e.preventDefault(),e.dataTransfer.dropEffect="copy")},[ee]),eu=(0,n.useCallback)(e=>t=>{if(!ee)return;t.preventDefault();let a=t.relatedTarget;a&&t.currentTarget.contains(a)||$(t=>t[e]?{...t,[e]:!1}:t)},[ee]),em=(0,n.useCallback)(e=>async a=>{if(a.preventDefault(),a.stopPropagation(),!ee||!y)return;let r=(e=>{if(!e)return null;if(e.files&&e.files.length>0){let t=Array.from(e.files);return t.find(e=>e?.type?.startsWith("image/"))??t[0]??null}return e.items&&e.items.length>0?Array.from(e.items).filter(e=>"file"===e.kind).map(e=>e.getAsFile()).find(e=>e?.type?.startsWith("image/"))??null:null})(a.dataTransfer);$(t=>t[e]?{...t,[e]:!1}:t),r instanceof File&&await y(t.cardId,e,r)},[ee,y,t.cardId]),ep=(0,n.useCallback)(e=>{if(!ee)return;let t=e.clipboardData;if(!t)return;let a=Array.from(t.items||[]).find(e=>"file"===e.kind&&e.type.startsWith("image/"));if(!a)return;let r=a.getAsFile();if(!r)return;e.preventDefault();let n=r instanceof File?r:new File([r],`clipboard-image-${Date.now()}.png`,{type:r.type||"image/png"}),l=URL.createObjectURL(n);F(e=>(e?.previewUrl&&URL.revokeObjectURL(e.previewUrl),{file:n,previewUrl:l}))},[ee]);(0,n.useEffect)(()=>()=>{B?.previewUrl&&URL.revokeObjectURL(B.previewUrl)},[B]);let eg=(0,n.useMemo)(()=>i.map(e=>et.get(e)).filter(Boolean),[i,et]),ef=(0,n.useMemo)(()=>l.filter(e=>!i.includes(e.id)),[l,i]);(0,n.useEffect)(()=>{if(!Y)return;let e=e=>{T.current&&!T.current.contains(e.target)&&J(!1)};return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[Y]);let e_=e=>{"Tab"===e.key&&j(t.cardId,e)};(0,n.useEffect)(()=>{E(t.cardId)},[t.cardId,E]),(0,n.useEffect)(()=>{K(H.length>=2&&H.some(e=>e.isCorrect))},[H]);let eh=t.term??"",ey=t.definition??"",eb=(0,n.useCallback)(()=>{R.current?.querySelectorAll('textarea[data-card-focus="true"]').forEach(e=>{e.style.height="auto";let t=window.getComputedStyle(e),a=parseFloat(t.borderTopWidth)+parseFloat(t.borderBottomWidth);e.style.height=`${Math.ceil(e.scrollHeight+a)}px`})},[]);(0,n.useEffect)(()=>{eb()},[eb,eh,ey,H,W,t.frontImageURL,t.backImageURL]),(0,n.useEffect)(()=>{let e=R.current;if(!e||"u"<typeof ResizeObserver)return;let t=0,a=new ResizeObserver(e=>{let[a]=e;a.contentRect.width!==t&&(t=a.contentRect.width,eb())});return a.observe(e),()=>a.disconnect()},[eb]);let eC=(0,n.useCallback)(e=>a=>{let r=H.map((t,r)=>r===e?{...t,answer:a.target.value}:t);q(r);let n=r.find(e=>e.isCorrect);n?_(t.cardId,{answers:r,definition:n.answer}):_(t.cardId,{answers:r})},[H,_,t.cardId]),ev=(0,n.useCallback)(e=>a=>{let r=H.map((t,r)=>({...t,isCorrect:r===e&&a.target.checked}));q(r);let n=r.find(e=>e.isCorrect);n?_(t.cardId,{answers:r,definition:n.answer}):_(t.cardId,{answers:r})},[H,_,t.cardId]),ex=(0,n.useCallback)(()=>{z(!0)},[]),ew=(0,n.useCallback)(()=>{I(t.cardId),z(!1)},[I,t.cardId]),ek=(0,n.useCallback)(()=>{z(!1)},[]),eI=t.frontImageURL||"",eE=t.backImageURL||"",ej=e=>{let t="front"===e?eI:eE;if(!ee&&!t)return null;let a="uploading"===("front"===e?Z:X).status,n=O[e],l="front"===e?M:V;return(0,r.jsx)("div",{className:`${s().sideImageContainer} ${!t?s().emptyImageContainer:""}`,children:(0,r.jsxs)("div",{className:`${s().miniImageTile} ${n?s().imageTileDragActive:""}`,role:t?void 0:"button",tabIndex:!t&&ee?0:void 0,"aria-label":t?void 0:Q.upload||"Add image","aria-disabled":t?void 0:!ee||a,onKeyDown:e=>{t||!ee||a||"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),l.current?.click())},"data-drop-label":Q.dropHint||"Drop",onDragEnter:ed(e),onDragOver:ec(e),onDragLeave:eu
1(e),onDrop:em(e),onClick:()=>!t&&ee&&!a&&l.current?.click(),title:t?"":Q.upload||"Upload Image",children:[t?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:s().miniImagePreview,children:(0,r.jsx)("img",{src:t,alt:"Card image",loading:"lazy"})}),(0,r.jsxs)("div",{className:s().miniImageActions,children:[(0,r.jsx)("button",{type:"button",disabled:!ee,className:s().miniActionButton,onClick:t=>{t.stopPropagation(),en(e)},title:Q.edit||"Edit",children:(0,r.jsx)(u.QmF,{})}),(0,r.jsx)("button",{type:"button",className:s().miniActionButton,onClick:t=>{t.stopPropagation(),er(e)},title:Q.remove||"Remove",children:(0,r.jsx)(u.QCr,{})})]})]}):(0,r.jsx)("div",{className:s().miniPlaceholder,children:a?(0,r.jsx)(u.hW,{className:s().imageSpinner}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(u.dkL,{className:s().miniPlaceholderIcon}),(0,r.jsx)("span",{children:Q.upload||"Image"})]})}),(0,r.jsx)("input",{ref:l,type:"file",disabled:!ee,accept:"image/png,image/jpeg,image/jpg,image/webp,image/bmp,image/x-bmp,image/x-ms-bmp",className:s().hiddenFileInput,onChange:ea(e)})]})})};return(0,r.jsx)(p.A,{in:!0,appear:!0,timeout:300,nodeRef:R,classNames:{appear:s().cardAppear,appearActive:s().cardAppearActive},children:(0,r.jsxs)("div",{ref:R,className:`${s().card} ${"list"===A?s().listCard:""}`,id:`card-${t.cardId}`,children:[(0,r.jsx)(m.default,{isOpen:G,onClose:ek,onConfirm:ew,title:S.delete.title,message:S.delete.message,confirmText:S.delete.confirm,cancelText:S.delete.cancel}),(0,r.jsxs)("div",{className:s().cardHeader,children:[(0,r.jsx)("div",{className:s().cardIndex,children:(0,r.jsxs)("span",{className:s().indexValue,children:["#",a+1]})}),(0,r.jsxs)("div",{className:s().cardToggle,children:[(0,r.jsx)("span",{className:s().toggleLabel,children:S.multipleAnswers.label}),(0,r.jsxs)("label",{className:s().switch,children:[(0,r.jsx)("input",{type:"checkbox","aria-label":S.multipleAnswers.label,checked:W,onChange:()=>{let e=!W;if(K(e),e){let e=[{answer:t.definition||"",isCorrect:!0,index:0},...[,,,,].fill(null).map((e,t)=>({answer:"",isCorrect:!1,index:t+1}))];q(e),_(t.cardId,{answers:e})}else _(t.cardId,{answers:[]})}}),(0,r.jsx)("span",{className:s().switchTrack})]})]}),(0,r.jsx)("button",{type:"button",className:s().deleteButton,onClick:ex,"aria-label":S.delete.title,children:(0,r.jsx)(u.qbC,{})})]}),(0,r.jsxs)("div",{className:s().fieldGroup,children:[(0,r.jsxs)("div",{className:s().rowField,children:[(0,r.jsx)("label",{className:s().fieldLabel,htmlFor:`term-${t.cardId}`,children:W?S.multipleAnswers.questionLabel:S.termLabel}),(0,r.jsxs)("div",{className:s().rowContent,children:[ej("front"),(0,r.jsx)("div",{className:s().inputWrapper,children:(0,r.jsx)(v.A,{card:t,field:"term",onCardChange:_,placeholder:W?S.multipleAnswers.questionPlaceholder:S.termPlaceholder,ariaLabel:W?S.multipleAnswers.questionLabel:S.termLabel,className:s().textarea,editableAttributes:{id:`term-${t.cardId}`,"data-card-focus":"true"},onKeyDown:e_,onPaste:ep})})]})]}),W?(0,r.jsxs)("div",{className:s().answerBlock,children:[(0,r.jsxs)("div",{className:s().answerHeader,children:[(0,r.jsx)("span",{children:S.multipleAnswers.answerHeading}),(0,r.jsx)("span",{className:s().answerHint,children:S.multipleAnswers.selectInstruction})]}),(0,r.jsx)(d,{ref:D,answers:H,handleAnswerChange:eC,handleCheckboxChange:ev,handleAnswerKeyDown:e_,cardId:t.cardId,translations:{answerPlaceholder:S.multipleAnswers.answerPlaceholder,correctLabel:S.multipleAnswers.correctLabel}})]}):(0,r.jsxs)("div",{className:s().rowField,children:[(0,r.jsx)("label",{className:s().fieldLabel,htmlFor:`definition-${t.cardId}`,children:S.definitionLabel}),(0,r.jsxs)("div",{className:s().rowContent,children:[ej("back"),(0,r.jsxs)("div",{className:s().inputWrapper,children:[(0,r.jsx)(v.A,{card:t,field:"definition",onCardChange:_,placeholder:S.definitionPlaceholder,ariaLabel:S.definitionLabel,className:s().textarea,editableAttributes:{id:`definition-${t.cardId}`,"data-card-focus":"true"},onKeyDown:e_,onPaste:ep}),(0,r.jsx)(w.A,{text:t.term,answer:t.definition,sourceLanguage:L,targetLanguage:N,onApply:e=>_(t.cardId,t=>(0,x.a0)(t,"definition",e,[]))})]})]})]})]}),(0,r.jsxs)("div",{className:s().tagsSection,children:[(0,r.jsx)("span",{className:s().tagsLabel,children:S.tags.label}),(0,r.jsxs)("div",{className:s().tagList,children:[0===eg.length?(0,r.jsx)("span",{className:s().tagsEmpty,children:S.tags.empty}):eg.map(e=>(0,r.jsxs)("span",{className:s().tagPill,style:{backgroundColor:`${e.hexColor||"#6366f1"}22`,borderColor:e.hexColor||"#6366f1",color:e.hexColor||"inherit"},children:[(0,r.jsx)("span",{className:s().tagSwatch,style:{backgroundColor:e.hexColor||"#6366f1"}}),e.name,(0,r.jsx)("button",{type:"button",className:s().removeTagButton,onClick:()=>{var a;return a=e.id,void g?.(t.cardId,a)},"aria-label":S.tags.remove||"Remove tag",children:"\xd7"})]},e.id)),(0,r.jsxs)("div",{className:s().addTagWrapper,ref:T,children:[(0,r.jsx)("button",{type:"button",className:s().addTagButton,onClick:()=>{J(e=>!e)},children:S.tags.add}),Y&&(0,r.jsxs)("div",{className:s().tagPicker,children:[ef.length>0?ef.map(e=>(0,r.jsxs)("button",{type:"button",className:s().tagPickerItem,onClick:()=>{var a;return a=e.id,void(o?.(t.cardId,a),J(!1))},children:[(0,r.jsx)("span",{className:s().tagSwatch,style:{backgroundColor:e.hexColor||"#6366f1"}}),e.name]},e.id)):(0,r.jsx)("span",{className:s().tagPickerEmpty,children:S.tags.empty}),(0,r.jsx)("button",{type:"button",className:s().manageTagsButton,onClick:()=>{f?.(),J(!1)},children:S.tags.manage})]})]})]})]}),ee&&U&&(0,r.jsx)(C,{isOpen:!!U,imageUrl:U.url,side:U.side,label:U.label,onApply:e=>es(U.side,e),onClose:el}),ee&&B&&(0,r.jsx)("div",{className:s().clipboardOverlay,role:"dialog","aria-modal":"true",children:(0,r.jsxs)("div",{className:s().clipboardModal,children:[(0,r.jsx)("button",{type:"button",className:s().clipboardClose,onClick:ei,"aria-label":Q.clipboardCancel||"Dismiss",children:"\xd7"}),(0,r.jsx)("h3",{className:s().clipboardTitle,children:Q.clipboardTitle||"Add image from clipboard?"}),(0,r.jsx)("p",{className:s().clipboardMessage,children:Q.clipboardMessage||"You pasted an image. Where should we use it?"}),(0,r.jsx)("div",{className:s().clipboardPreview,children:(0,r.jsx)("img",{src:B.previewUrl,alt:Q.clipboardTitle||"Clipboard image preview"})}),(0,r.jsxs)("div",{className:s().clipboardActions,children:[(0,r.jsx)("button",{type:"button",className:s().primaryClipboardButton,onClick:()=>eo("front"),disabled:!ee,children:Q.clipboardFront||"Use as front image"}),(0,r.jsx)("button",{type:"button",className:s().primaryClipboardButton,onClick:()=>eo("back"),disabled:!ee,children:Q.clipboardBack||"Use as back image"})]}),(0,r.jsx)("button",{type:"button",className:s().secondaryClipboardButton,onClick:ei,children:Q.clipboardCancel||"Cancel"})]})})]})})};
1k.displayName="CardInput";let I=n.memo(k)},3549:e=>{e.exports={overlay:"ImageEditorModal_overlay__Pe5E_",modal:"ImageEditorModal_modal__dh_d_",closeButton:"ImageEditorModal_closeButton__JDAdD",header:"ImageEditorModal_header__5G3nK",editorArea:"ImageEditorModal_editorArea__J7GqN",cropper:"ImageEditorModal_cropper__zCydW",loadingState:"ImageEditorModal_loadingState__R4cEu",errorState:"ImageEditorModal_errorState__TWU8o",controls:"ImageEditorModal_controls__t_ESK",sliderGroup:"ImageEditorModal_sliderGroup__k46rs",controlLabel:"ImageEditorModal_controlLabel__pbySP",buttonRow:"ImageEditorModal_buttonRow__84gSW",iconButton:"ImageEditorModal_iconButton__hfHN5",footer:"ImageEditorModal_footer__BfYfe",secondaryButton:"ImageEditorModal_secondaryButton__52UDP",primaryButton:"ImageEditorModal_primaryButton__FD7at"}},3616:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>d});var r=a(7876),n=a(7964);a(4232);var l=a(1116),s=a.n(l),i=a(9682),o=a.n(i);let d=e=>{let t,a,l,i,d,c,u,m=(0,n.c)(21),{isOpen:p,onClose:g,onConfirm:f,title:_,message:h,confirmText:y,cancelText:b}=e;m[0]===Symbol.for("react.memo_cache_sentinel")?(t="u"<typeof document?void 0:document.getElementById("__next"),m[0]=t):t=m[0];let C=_||"Confirm delete";return m[1]!==_?(a=(0,r.jsx)("h2",{className:o().title,children:_}),m[1]=_,m[2]=a):a=m[2],m[3]!==h?(l=(0,r.jsx)("p",{className:o().message,children:h}),m[3]=h,m[4]=l):l=m[4],m[5]!==b||m[6]!==g?(i=(0,r.jsx)("button",{type:"button",className:o().cancelButton,onClick:g,children:b}),m[5]=b,m[6]=g,m[7]=i):i=m[7],m[8]!==y||m[9]!==f?(d=(0,r.jsx)("button",{type:"button",className:o().deleteButton,onClick:f,children:y}),m[8]=y,m[9]=f,m[10]=d):d=m[10],m[11]!==i||m[12]!==d?(c=(0,r.jsxs)("div",{className:o().buttons,children:[i,d]}),m[11]=i,m[12]=d,m[13]=c):c=m[13],m[14]!==p||m[15]!==g||m[16]!==C||m[17]!==a||m[18]!==l||m[19]!==c?(u=(0,r.jsxs)(s(),{appElement:t,isOpen:p,onRequestClose:g,shouldCloseOnOverlayClick:!0,overlayClassName:o().overlay,className:o().modal,contentLabel:C,children:[a,l,c]}),m[14]=p,m[15]=g,m[16]=C,m[17]=a,m[18]=l,m[19]=c,m[20]=u):u=m[20],u}},4090:(e,t,a)=>{"use strict";a.d(t,{A:()=>A});var r=a(7876),n=a(7964),l=a(4232),s=a(8477),i=a(1472),o=a(9705),d=a.n(o),c=a(9511),u=a(3812),m=a(6922),p=a(2992);let g=Object.freeze({STRONG:"b",B:"b",EM:"i",I:"i",U:"u",S:"s",STRIKE:"s",DEL:"s",CODE:"code",PRE:"pre"}),f=new Set(["DIV","P","LI","UL","OL","BLOCKQUOTE","H1","H2","H3","H4","H5","H6","SECTION","ARTICLE","HEADER","FOOTER","TABLE","TR"]),_=e=>f.has(e.tagName)&&null!==e.previousSibling,h=(e,t)=>"BR"===e.tagName&&((e,t)=>{let a=e;for(;a!==t;){if(a.nextSibling)return!1;a=a.parentNode}return!0})(e,t),y=e=>{let t=[],a=0,r=(e,r,n)=>{t.push({node:e,kind:r,start:a,length:n}),a+=n},n=t=>{t.childNodes.forEach(t=>{if(3===t.nodeType)return void r(t,"text",t.data.length);if(1===t.nodeType){if("BR"===t.tagName){h(t,e)||r(t,"br",1);return}_(t)&&r(t,"boundary",1),n(t)}})};return n(e),t},b=e=>{if("text"===e.kind)return e.text;for(let t=e.children.length-1;t>=0;t-=1){let a=b(e.children[t]);if(a.length>0)return a}return""},C=(e,t)=>{let a=e.ownerDocument,r=(e,t)=>{e.children.forEach(e=>{if("text"===e.kind)return void t.appendChild(a.createTextNode(e.text));let n=t;e.styles.forEach(e=>{let t,r,l=(t=(0,p.e)(e),(r=a.createElement(t.tagName)).className=t.className,t.cssVars&&Object.entries(t.cssVars).forEach(e=>{let[t,a]=e;r.style.setProperty(t,a)}),t.dataset&&Object.entries(t.dataset).forEach(e=>{let[t,a]=e;r.dataset[t]=a}),r);n.appendChild(l),n=l}),r(e,n)})},n=a.createDocumentFragment();for(r(t,n),b(t).endsWith("\n")&&n.appendChild(a.createElement("br"));e.firstChild;)e.removeChild(e.firstChild);e.appendChild(n)},v=(e,t,a,r)=>{if(3===a.nodeType){let t=e.find(e=>e.node===a);return t?t.start+Math.min(r,t.length):0}if(r<a.childNodes.length){let n,l=(n=a.childNodes[r],e.find(e=>e.node===n||n.contains(e.node)||(4&n.compareDocumentPosition(e.node))!=0));return l?l.start:t}let n=e.find(e=>!a.contains(e.node)&&(4&a.compareDocumentPosition(e.node))!=0);return n?n.start:t},x=e=>{let t=e.ownerDocument.getSelection();if(!t||0===t.rangeCount)return null;let a=t.getRangeAt(0);if(!e.contains(a.startContainer)||!e.contains(a.endContainer))return null;let r=y(e),n=r.reduce((e,t)=>
1e+t.length,0);return{start:v(r,n,a.startContainer,a.startOffset),end:v(r,n,a.endContainer,a.endOffset)}},w=e=>Array.prototype.indexOf.call(e.parentNode.childNodes,e),k=(e,t,a,r)=>{let n=Math.min(Math.max(r,0),a),l=t.filter(e=>e.start<=n&&n<=e.start+e.length),s=l.find(e=>"text"===e.kind)??l[0];if(!s)return[e,e.childNodes.length];if("text"===s.kind)return[s.node,n-s.start];let i=n===s.start;return"br"===s.kind?[s.node.parentNode,w(s.node)+ +!i]:i?[s.node.parentNode,w(s.node)]:[s.node,0]},I=(e,t,a)=>{let r=e.ownerDocument,n=r.getSelection();if(!n)return;let l=y(e),s=l.reduce((e,t)=>e+t.length,0),i=r.createRange();i.setStart(...k(e,l,s,t)),i.setEnd(...k(e,l,s,a)),n.removeAllRanges(),n.addRange(i)},E=[{style:"b",icon:i.ljE,key:"bold",fallback:"Bold",shortcut:"b"},{style:"i",icon:i._Me,key:"italic",fallback:"Italic",shortcut:"i"},{style:"u",icon:i.INR,key:"underline",fallback:"Underline",shortcut:"u"},{style:"s",icon:i.RPD,key:"strikethrough",fallback:"Strikethrough"},{style:"code",icon:i.FSj,key:"code",fallback:"Code"},{style:"pre",icon:i.reA,key:"code_block",fallback:"Code block"}],j=[{family:"c",icon:i.DJg,key:"text_color",fallback:"Text color",varPrefix:"--ts-"},{family:"hl",icon:i.f04,key:"highlight",fallback:"Highlight",varPrefix:"--ts-hl-"}],S=new Map(E.filter(e=>e.shortcut).map(e=>[e.shortcut,e.style])),L=e=>({text:"string"==typeof e?.text?e.text:"",ranges:Array.isArray(e?.ranges)?e.ranges:[]});function N(e){let{value:t,onChange:a,placeholder:n,ariaLabel:i,className:o,editableAttributes:f,onKeyDown:y,onPaste:b,onFocus:v,toolbarTarget:w,toolbarActive:k=!0,externalToolbar:N=!1}=e,{t:A}=(0,c.B)(),D=(0,l.useRef)(null),T=(0,l.useRef)(null),R=(0,l.useRef)(null),M=(0,l.useRef)(!1),V=(0,l.useRef)({start:0,end:0}),U=(0,l.useRef)(L(t)),P=(0,l.useRef)({undo:[],redo:[],typingAt:0}),B=(0,l.useRef)(null),F=(0,l.useRef)(!1),O=(0,l.useRef)(a);O.current=a;let[$,H]=(0,l.useState)(()=>U.current),[q,W]=(0,l.useState)({start:0,end:0}),[K,G]=(0,l.useState)([]),[z,Y]=(0,l.useState)(null);(0,l.useLayoutEffect)(()=>{let e=R.current;if(!z||!e)return;let t=e.getBoundingClientRect();e.style.left=`${Math.min(0,window.innerWidth-t.right-12)}px`},[z]),(0,l.useEffect)(()=>{k||Y(null)},[k]),(0,l.useEffect)(()=>{if(!z)return;let e=e=>{T.current?.contains(e.target)||Y(null)};return document.addEventListener("pointerdown",e),()=>document.removeEventListener("pointerdown",e)},[z]);let J=(0,l.useCallback)((e,t)=>A(`components.edit_cards.text_styles.${e}`,{defaultValue:t}),[A]),Q=(0,l.useCallback)(e=>{B.current=e,G(e?e.ops:[])},[]),Z=(0,l.useCallback)(()=>{let e=D.current;if(!e)return;let t=x(e);if(!t)return;V.current=t,W(e=>e.start===t.start&&e.end===t.end?e:t);let a=B.current;a&&(t.start!==a.offset||t.start!==t.end)&&Q(null)},[Q]),X=(0,l.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if((0,m.Ns)(e,U.current))return;let a=P.current,r=Date.now();(!t||!a.typingAt||r-a.typingAt>750)&&(a.undo.push({model:U.current,selection:V.current}),a.undo.length>100&&a.undo.shift()),a.redo=[],a.typingAt=t?r:0,U.current=e,H(e),O.current?.(e.text,e.ranges)},[]),ee=(0,l.useCallback)(e=>{let t=D.current;if(!t)return;let a=P.current,r=a[e].pop();r&&(a["undo"===e?"redo":"undo"].push({model:U.current,selection:x(t)??V.current}),a.typingAt=0,Q(null),C(t,(0,m.fw)(r.model.text,r.model.ranges)),t.focus(),I(t,r.selection.start,r.selection.end),U.current=r.model,H(r.model),O.current?.(r.model.text,r.model.ranges),Z())},[Q,Z]),et=(0,l.useCallback)((e,t,a)=>{let r=D.current;r&&(C(r,(0,m.fw)(e.text,e.ranges)),r.focus(),I(r,t,a),X(e),Z())},[X,Z]),ea=(0,l.useCallback)(function(){let e,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],a=D.current;if(!a)return;let r=(e=t=>{let r=[];return t.childNodes.forEach(t=>{if(3===t.nodeType)return void r.push((0,m.qn)(t.data));if(1===t.nodeType){if("BR"===t.tagName){h(t,a)||r.push((0,m.qn)("\n"));return}_(t)&&r.push((0,m.qn)("\n")),r.push((0,m.gv)((e=>{let t=g[e.tagName];if(t)return[t];let{color:a,hl:r}=e.dataset;return a&&(0,u.XW)(`c:${a}`)?[`c:${a}`]:r&&(0,u.XW)(`hl:${r}`)?[`hl:${r}`]:[]})(t),e(t)))}}),r},(0,m.bP)(e(a))),n=(0,m.SK)(r),l=(0,m.HJ)(n),s=U.current,i=B.current,o=l.ranges;if(i){let e=(0,m.TF)(s.text,l.text),t=x(a)?.end??l.text.length,r=t-e.inserted;e.inserted>
10&&r===i.offset&&(o=(0,m.Lx)(l.text,o,r,t,i.ops)),Q(null)}let d={text:l.text,ranges:o},c=(0,m.fw)(d.text,d.ranges),p=d.text.endsWith("\n"),f=a.lastChild?.nodeName==="BR";if(!(0,m.Am)(r,c)||p!==f){let e=x(a);C(a,c),e&&I(a,e.start,e.end)}X(d,t&&!i),Z()},[X,Q,Z]),er=(0,l.useCallback)(e=>{let t=D.current;t&&(t.focus(),((e,t)=>{let a=e.ownerDocument,r=a.getSelection(),n=null;if(r&&r.rangeCount>0){let t=r.getRangeAt(0);e.contains(t.commonAncestorContainer)&&(n=t)}n||((n=a.createRange()).selectNodeContents(e),n.collapse(!1)),n.deleteContents();let l=a.createTextNode(t);n.insertNode(l),n.setStart(l,l.data.length),n.collapse(!0),r&&(r.removeAllRanges(),r.addRange(n))})(t,e),ea())},[ea]);(0,l.useLayoutEffect)(()=>{let e=L(t);if(M.current&&(0,m.Ns)(e,U.current))return;let a=D.current;if(!a)return;M.current=!0;let r=a.ownerDocument.activeElement===a,n=r?x(a):null;if(C(a,(0,m.fw)(e.text,e.ranges)),U.current=e,P.current={undo:[],redo:[],typingAt:0},H(e),V.current={start:0,end:0},Q(null),r){let t=Math.min(n?.end??e.text.length,e.text.length);I(a,t,t)}},[t,Q]),(0,l.useEffect)(()=>{let e=D.current;if(!e)return;let t=e.ownerDocument,a=()=>Z(),r=e=>{if("historyUndo"===e.inputType||"historyRedo"===e.inputType){e.preventDefault(),ee("historyUndo"===e.inputType?"undo":"redo");return}e.isComposing||F.current||("insertParagraph"===e.inputType||"insertLineBreak"===e.inputType)&&(e.preventDefault(),er("\n"))};return t.addEventListener("selectionchange",a),e.addEventListener("beforeinput",r),()=>{t.removeEventListener("selectionchange",a),e.removeEventListener("beforeinput",r)}},[er,Z,ee]);let en=(0,l.useMemo)(()=>(0,m.nA)((0,m.L8)($.text,$.ranges,q.start,q.end),K),[$,q,K]),el=(0,l.useCallback)(()=>{let e=D.current,t=e?x(e):null;return t||V.current},[]),es=(0,l.useCallback)(e=>{let{start:t,end:a}=el(),r=U.current;if(t===a){let r=!en.includes(e),n=(0,m.oJ)(B.current?.offset===t?B.current.ops:[],{type:"toggle",style:e,on:r});Q({offset:t,ops:n}),D.current?.focus(),I(D.current,t,a);return}et({text:r.text,ranges:(0,m.Ms)(r.text,r.ranges,t,a,e)},t,a)},[en,et,el,Q]),ei=(0,l.useCallback)((e,t)=>{Y(null);let{start:a,end:r}=el(),n=U.current;if(a===r){let n=(0,m.oJ)(B.current?.offset===a?B.current.ops:[],{type:"family",family:e,style:t});Q({offset:a,ops:n}),D.current?.focus(),I(D.current,a,r);return}et({text:n.text,ranges:(0,m.cF)(n.ranges,a,r,e,t)},a,r)},[et,el,Q]),eo=(0,l.useCallback)(e=>{F.current||ea(["insertText","deleteContentBackward","deleteContentForward"].includes(e.nativeEvent.inputType))},[ea]),ed=(0,l.useCallback)(()=>{F.current=!0},[]),ec=(0,l.useCallback)(()=>{F.current=!1,ea()},[ea]),eu=(0,l.useCallback)(e=>{if(y?.(e),e.defaultPrevented||F.current||e.nativeEvent.isComposing)return;let t=e.key.toLowerCase();if((e.ctrlKey||e.metaKey)&&!e.altKey&&("z"===t||"y"===t)){e.preventDefault(),ee("y"===t||e.shiftKey?"redo":"undo");return}if("Escape"===e.key&&z){e.preventDefault(),Y(null);return}if(e.altKey&&"F10"===e.key){e.preventDefault(),T.current?.querySelector("button")?.focus();return}if("Enter"===e.key&&!F.current&&!e.nativeEvent.isComposing){e.preventDefault(),er("\n");return}let a=S.get(e.key.toLowerCase());a&&(e.ctrlKey||e.metaKey)&&!e.altKey&&!e.shiftKey&&(e.preventDefault(),es(a))},[er,y,z,es,ee]),em=(0,l.useCallback)(e=>{if(b?.(e),e.defaultPrevented)return;e.preventDefault();let t=e.clipboardData?.getData("text/plain")??"";t&&er(t)},[er,b]),ep=(0,l.useCallback)(e=>{e.preventDefault()},[]),eg=(0,l.useCallback)(e=>{e.currentTarget.contains(e.relatedTarget)||T.current?.contains(e.relatedTarget)||Y(null)},[]),ef=(0,l.useCallback)(e=>{e.preventDefault()},[]),e_=[p._,d().editor,o].filter(Boolean).join(" "),eh=(0,r.jsxs)("div",{ref:T,className:`${p._} ${d().toolbar}`,role:"toolbar","aria-label":i,onKeyDown:e=>{if(["ArrowLeft","ArrowRight","Home","End"].includes(e.key)){let t=[...T.current.querySelectorAll("button")],a=t.indexOf(e.target);if(a<0)return;e.preventDefault();let r="Home"===e.key?0:"End"===e.key?t.length-1:(a+("ArrowLeft"===e.key?-1:1)+t.length)%t.length;t[r].focus()}if("Escape"===e.key){e.preventDefault(),Y(null),D.current?.focus();let{start:t,end:a}=V.current;I(D.current,t,a)}},children:[(0,r.jsx)("div",{className:d().group,children:E.map(e=>{let{style:t,icon:a,key:n,fallback:l}=e,s=en.includes(t);return(0,r.jsx)("button",{type:"button",tabIndex:"b"===t?0:-1,className:`${d().button} ${s?d().buttonActive:""}`,"aria-pressed":s,"aria-label":J(n,l),title:J(n,l),onPointerDown:ef,onClick:()=>es(t),children:(0,r.jsx)(a,{"aria-hidden":"true"})},t)})}),(0,r.jsx)("span",{className:d().divider,"aria-hidden":"true"}),(0,r.jsx)("div",{className:d().group,children:j.map(e=>{let{family:t,icon:a,key:n,fallback:l,varPrefix:s}=e,i=en.find(e=>(0,u.aH)(e)===t)??null,o=i?i.slice(i.indexOf(":")+1):null,c=z===t;return(0,r.jsxs)("div",{className:d().pickerAnchor,children:[(0,r.jsxs)("button",{type:"button",tabIndex:-1,
1className:`${d().button} ${d().swatchButton} ${i?d().buttonActive:""}`,"aria-haspopup":"true","aria-expanded":c,"aria-label":J(n,l),title:J(n,l),onPointerDown:ef,onClick:()=>Y(c?null:t),children:[(0,r.jsx)(a,{"aria-hidden":"true"}),o&&(0,r.jsx)("span",{className:d().swatchDot,style:{"--swatch":`var(${s}${o})`},"aria-hidden":"true"})]}),c&&(0,r.jsxs)("div",{ref:R,className:d().picker,role:"group","aria-label":J(n,l),children:[u.pj.map(e=>{let a=`${t}:${e}`,n=J(`colors.${e}`,e);return(0,r.jsx)("button",{type:"button",className:`${d().chip} ${i===a?d().chipActive:""}`,style:{"--chip":`var(${s}${e})`},"aria-pressed":i===a,"aria-label":n,title:n,onPointerDown:ef,onClick:()=>ei(t,a)},e)}),(0,r.jsx)("button",{type:"button",className:`${d().chip} ${d().chipNone} ${i?"":d().chipActive}`,"aria-pressed":!i,"aria-label":J("none","None"),title:J("none","None"),onPointerDown:ef,onClick:()=>ei(t,null),children:"\xd7"})]})]},t)})})]});return(0,r.jsxs)("div",{className:d().wrapper,onBlur:eg,children:[N?k&&w&&(0,s.createPortal)(eh,w):eh,(0,r.jsx)("div",{...f,ref:D,className:e_,contentEditable:!0,suppressContentEditableWarning:!0,role:"textbox","aria-multiline":"true","aria-label":i,"data-placeholder":n??"",spellCheck:!0,onFocus:e=>{Z(),v?.(e)},onInput:eo,onCompositionStart:ed,onCompositionEnd:ec,onKeyDown:eu,onPaste:em,onDrop:ep})]})}function A(e){let t,a,l,s,i,o,d,c,m=(0,n.c)(18);m[0]!==e?({card:t,field:a,onCardChange:l,...s}=e,m[0]=e,m[1]=t,m[2]=a,m[3]=l,m[4]=s):(t=m[1],a=m[2],l=m[3],s=m[4]);let p=t[a]??"";m[5]!==t?(i=(0,u.S8)(t.textStyles,t),m[5]=t,m[6]=i):i=m[6];let g=i[a];m[7]!==p||m[8]!==g?(o={text:p,ranges:g},m[7]=p,m[8]=g,m[9]=o):o=m[9];let f=o;return m[10]!==t.cardId||m[11]!==a||m[12]!==l?(d=(e,r)=>l(t.cardId,t=>(0,u.a0)(t,a,e,r)),m[10]=t.cardId,m[11]=a,m[12]=l,m[13]=d):d=m[13],m[14]!==s||m[15]!==d||m[16]!==f?(c=(0,r.jsx)(N,{...s,value:f,onChange:d}),m[14]=s,m[15]=d,m[16]=f,m[17]=c):c=m[17],c}},5249:e=>{e.exports={answersWrapper:"MultipleAnswersInput_answersWrapper__RFjob",answerContainer:"MultipleAnswersInput_answerContainer__Y4Fer",checkboxWrapper:"MultipleAnswersInput_checkboxWrapper__OlU6j",hiddenCheckbox:"MultipleAnswersInput_hiddenCheckbox__FbmVI",customCheckbox:"MultipleAnswersInput_customCheckbox__6a2bH",answertextarea:"MultipleAnswersInput_answertextarea__0LGEG"}},5725:(e,t,a)=>{"use strict";a.d(t,{Vb:()=>p,cO:()=>u,mn:()=>_,xq:()=>h});var r=a(8253),n=a(503),l=a(562),s=a(8928),i=a(7494),o=a(5364);let d=void 0!==o&&o.env.NEXT_PUBLIC_SYNC_API_BASE||"https://syncdata.flashcards.world";async function c(e){let t=(0,r.getFirebaseAuth)().currentUser;if(!t)throw Error("You must be signed in to manage card images.");if(t.uid!==e)throw Error("The signed-in account changed before the request started.");let a=t.uid;u(a,t);let n=await t.getIdToken();u(a,t);let l=await (0,i.tI)(a);return u(a,t),{token:n,uid:a,versionKey:l,session:t}}function u(e,t){let a=(0,r.getFirebaseAuth)().currentUser;if(!a||a.uid!==e||a!==t)throw Error("The signed-in account changed while the request was running.");(0,n.BT)(e,(0,l.$F)().accountUid??null)}function m(e){return e&&"object"==typeof e&&("string"==typeof e.error||"string"==typeof e.message)}async function p(e,t){if(!(e instanceof File))throw Error("Invalid image payload.");let{token:a,uid:r,versionKey:n,session:l}=await c(t),o=new FormData;o.append("image",e),u(r,l);let p=await fetch(`${d}/images/upload`,{method:"POST",headers:{Authorization:`Bearer ${a}`,[i._A]:n},body:o,credentials:"omit"});u(r,l);let g=await p.json().catch(()=>null);if(u(r,l),!p.ok||!g)throw Error(m(g)&&(g.message||g.error)||(401===p.status?"Sign in to an account with image access to upload images.":"Image upload failed."));if(!(g&&"object"==typeof g&&"boolean"==typeof g.success&&void 0!==g.success)||!g.success)throw Error(m(g)&&(g.message||g.error)||"Image upload failed.");return r&&g.account&&(0,s.Zf)(r,g.account),g}function g(e,t,a){var r;return r=()=>f(e,t,a),a?new Promise((e,t)=>{let n=()=>t(a.reason??Error("Image request cancelled."));a.aborted?n():(a.addEventListener("abort",n,{once:!0}),Promise.resolve().then(r).then(t=>{a.removeEventListener("abort",n),e(t)},e=>{a.removeEventListener("abort",n),t(e)}))}):r()}async function f(e,t,a){let{token:r,uid:n,versionKey:l,session:s}=await c(t);a?.throwIfAborted(),u(n,s);let o=await fetch(d,{method:"POST",headers:{Authorization:`Bearer ${r}`,"Content-Type":"application/json",[i._A]:l},body:JSON.stringify(e),credentials:"omit",signal:a});u(n,s);let m=await o.json().catch(()=>null);if(a?.throwIfAborted(),u(n,s),!o.ok||m?.success!==!0)throw Error("Image cleanup could not be safely completed.");return m}async function _(e,t,a){let r=await g({action:"getCardImageDeletionProof",imageUrl:e},t,a);if("absent"===r.status)return r;if("ready"!==r.status||"string"!=typeof r.expectedVersion||!r.expectedVersion.trim())throw Error("Invalid image deleti
1on proof.");return r}async function h(e,t,a,r){if("string"!=typeof a||!a.trim())throw Error("The original image version is required.");let n=await g({action:"deleteCardImage",imageUrl:e,expectedVersion:a},t,r);if(!["deleted","absent","referenced","superseded"].includes(n.status))throw Error("Invalid image cleanup acknowledgement.");return n}},6571:e=>{e.exports={page:"EditCards_page__cDiwZ",pageSpreadsheet:"EditCards_pageSpreadsheet__OOAQJ EditCards_page__cDiwZ",pageSpreadsheetEditing:"EditCards_pageSpreadsheetEditing__FI3en",setHeader:"EditCards_setHeader__dbYtv",setHeaderEditing:"EditCards_setHeaderEditing__fJuzb",setTitleRow:"EditCards_setTitleRow__vy1Cx",setTitleDisplay:"EditCards_setTitleDisplay__SnG7C",setTitle:"EditCards_setTitle__wnE4i",setTitleActions:"EditCards_setTitleActions__sO_SO",setHeaderAction:"EditCards_setHeaderAction__qifP0",setHeaderActionPrimary:"EditCards_setHeaderActionPrimary__VbGXn",setMetaChips:"EditCards_setMetaChips__1ZoBu",setMetaChip:"EditCards_setMetaChip__9fVTn",setDescription:"EditCards_setDescription__ktQHX",setDescriptionExpanded:"EditCards_setDescriptionExpanded__mk1bD",setDetailsPanel:"EditCards_setDetailsPanel__H_WiR",hero:"EditCards_hero__LR5kZ",cardsToolbar:"EditCards_cardsToolbar__1Dvqa",heroTop:"EditCards_heroTop__3sift",heroInfo:"EditCards_heroInfo__8duUV",badge:"EditCards_badge__kQWwh",heroText:"EditCards_heroText__D9l6d",heroOverline:"EditCards_heroOverline__clNFQ",heroTitle:"EditCards_heroTitle__MKWjI",heroTitleInput:"EditCards_heroTitleInput__XjrXH",heroIdentityRow:"EditCards_heroIdentityRow__YjXVC",heroPrimaryActions:"EditCards_heroPrimaryActions__fDk2W",heroMetaLine:"EditCards_heroMetaLine__uUH__",heroMetaItem:"EditCards_heroMetaItem__DiJS4",searchWrapper:"EditCards_searchWrapper__uxHnG",heroDescription:"EditCards_heroDescription__jFOGU",heroMetaRow:"EditCards_heroMetaRow__UWRHZ",heroLanguage:"EditCards_heroLanguage__DDyyy",heroActions:"EditCards_heroActions__yNKBb",searchIcon:"EditCards_searchIcon__EzY45",searchInput:"EditCards_searchInput__4Ui6T",viewSwitcher:"EditCards_viewSwitcher__Wjmy_",viewOption:"EditCards_viewOption__iaReC",viewOptionActive:"EditCards_viewOptionActive__aWx4x",secondaryAction:"EditCards_secondaryAction__n2u6J",primaryAction:"EditCards_primaryAction__Hvspe",sectionCard:"EditCards_sectionCard__2Cpf8",sectionHeader:"EditCards_sectionHeader__8przv",cardsList:"EditCards_cardsList__1zlEx",addCardButton:"EditCards_addCardButton__g81ZR",floatingAddCard:"EditCards_floatingAddCard__poSbB",emptyDeckState:"EditCards_emptyDeckState__QSYmO",emptyDeckIcon:"EditCards_emptyDeckIcon__Ca_jv",emptyDeckTitle:"EditCards_emptyDeckTitle__Lu42p",emptyDeckSubtitle:"EditCards_emptyDeckSubtitle__971Kr",emptyDeckButton:"EditCards_emptyDeckButton__hbq_b",emptyDeckImportLink:"EditCards_emptyDeckImportLink__WBBaY",emptyDeckDropHint:"EditCards_emptyDeckDropHint__U4BhX",emptyDeckStateDragging:"EditCards_emptyDeckStateDragging__b6y0x",detailsDisclosure:"EditCards_detailsDisclosure__4V04W",fieldGrid:"EditCards_fieldGrid__LiYtb",field:"EditCards_field__f7s46",fieldLabel:"EditCards_fieldLabel__sU9i5",fullRow:"EditCards_fullRow__sVnrl",stickyBar:"EditCards_stickyBar__1gfUk",stickyBarInner:"EditCards_stickyBarInner__F8Fm4",stickySecondary:"EditCards_stickySecondary__WUL7l",stickyPrimary:"EditCards_stickyPrimary__ovLkH",hidden:"EditCards_hidden__4i6TV",saveDot:"EditCards_saveDot__L1kc4","edit-savedot-fade-in":"EditCards_edit-savedot-fade-in__dYx2s",saveDotSaving:"EditCards_saveDotSaving__8ia6U","edit-savedot-pulse":"EditCards_edit-savedot-pulse__f8dP5",saveDotSaved:"EditCards_saveDotSaved__KlF2T",saveDotError:"EditCards_saveDotError__NNsxw"}},7340:(e,t,a)=>{"use strict";a.d(t,{A:()=>g});var r=a(7876),n=a(7964),l=a(4232),s=a(8847),i=a.n(s),o=a(1472),d=a(1073),c=a(9511),u=a(7989),m=a.n(u);let p=i()(()=>a.e(6685).then(a.bind(a,6685)),{loadableGenerated:{webpack:()=>[6685]},ssr:!1});function g(e){let t,a,s,i,u,g,f,_,h,y=(0,n.c)(19),{text:b,answer:C,sourceLanguage:v,targetLanguage:x,onApply:w}=e,{t:k}=(0,c.B)(),[I,E]=(0,l.useState)(!1),[j,S]=(0,l.useState)(!1);y[0]===Symbol.for("react.memo_cache_sentinel")?(t=()=>{E((0,d.Ae)())}
1,a=[],y[0]=t,y[1]=a):(t=y[0],a=y[1]),(0,l.useEffect)(t,a),y[2]===Symbol.for("react.memo_cache_sentinel")?(s=()=>S(!1),y[2]=s):s=y[2];let L=s;return I&&b?.trim()?(y[3]===Symbol.for("react.memo_cache_sentinel")?(i=()=>S(!0),u=(0,r.jsx)(o.gqt,{"aria-hidden":"true"}),y[3]=i,y[4]=u):(i=y[3],u=y[4]),y[5]!==k?(g=k("components.local_models.translate",{defaultValue:"Translate"}),y[5]=k,y[6]=g):g=y[6],y[7]!==g?(f=(0,r.jsxs)("button",{type:"button",className:m().translateButton,onClick:i,children:[u,g]}),y[7]=g,y[8]=f):f=y[8],y[9]!==C||y[10]!==w||y[11]!==j||y[12]!==v||y[13]!==x||y[14]!==b?(_=j&&(0,r.jsx)(p,{text:b,answer:C,sourceLanguage:v,targetLanguage:x,onApply:w,onClose:L}),y[9]=C,y[10]=w,y[11]=j,y[12]=v,y[13]=x,y[14]=b,y[15]=_):_=y[15],y[16]!==f||y[17]!==_?(h=(0,r.jsxs)(r.Fragment,{children:[f,_]}),y[16]=f,y[17]=_,y[18]=h):h=y[18],h):null}},7989:e=>{e.exports={pack:"LocalModels_pack__h64lJ",packHeading:"LocalModels_packHeading__dQmWN",voiceSettings:"LocalModels_voiceSettings__cPZWe",engineName:"LocalModels_engineName__JcO6N",installed:"LocalModels_installed__AvDSL",actions:"LocalModels_actions__yF_p7",primary:"LocalModels_primary__1_t_n",secondary:"LocalModels_secondary__CTvss",translateButton:"LocalModels_translateButton__Xbw_r",select:"LocalModels_select__3urx5",result:"LocalModels_result__p4caS",muted:"LocalModels_muted__MmsLr",languages:"LocalModels_languages__z_xH2",download:"LocalModels_download__Fu2lq",progressLabel:"LocalModels_progressLabel___GItf",error:"LocalModels_error__rKTR9",voiceControls:"LocalModels_voiceControls__eE2k3",selectLabel:"LocalModels_selectLabel__P
1Nq1_",overlay:"LocalModels_overlay__Bk0Z0",dialog:"LocalModels_dialog__Tyk9B",dialogHeader:"LocalModels_dialogHeader__9MOEK",close:"LocalModels_close__Uj3Vy",languagePair:"LocalModels_languagePair__Mw39s",source:"LocalModels_source__lRZU_"}},8084:e=>{e.exports={card:"CardInput_card__T6ycF",cardHeader:"CardInput_cardHeader__qK3mS",cardIndex:"CardInput_cardIndex___MVqr",dragHandle:"CardInput_dragHandle__98YWU",indexValue:"CardInput_indexValue__p7Gup",cardToggle:"CardInput_cardToggle__ECv6z",toggleLabel:"CardInput_toggleLabel__HAvsY",switch:"CardInput_switch__7l2ZH",switchTrack:"CardInput_switchTrack___jImI",deleteButton:"CardInput_deleteButton__tSFxH",fieldGroup:"CardInput_fieldGroup__mTdV6",rowField:"CardInput_rowField__MTyMz",rowContent:"CardInput_rowContent__8Q0Pt",sideImageContainer:"CardInput_sideImageContainer__jshra",emptyImageContainer:"CardInput_emptyImageContainer__LoLyP",miniImageTile:"CardInput_miniImageTile__mtv3N",miniPlaceholder:"CardInput_miniPlaceholder__iOpdR",miniPlaceholderIcon:"CardInput_miniPlaceholderIcon__tJmwY",listCard:"CardInput_listCard__JPdBa",inputWrapper:"CardInput_inputWrapper__S4kZZ",fieldLabel:"CardInput_fieldLabel__6JV4Q",textarea:"CardInput_textarea__eMQmT",miniImagePreview:"CardInput_miniImagePreview__5X5Bn",miniImageActions:"CardInput_miniImageActions___TARm",miniActionButton:"CardInput_miniActionButton__fLlbV",hiddenFileInput:"CardInput_hiddenFileInput__Lyeb8",answerBlock:"CardInput_answerBlock__4Zat4",answerHeader:"CardInput_answerHeader__qRgzE",answerHint:"CardInput_answerHint___cL5b",tagsSection:"CardInput_tagsSection__YLdRh",tagsLabel:"CardInput_tagsLabel__NATBR",tagList:"CardInput_tagList__IQmsh",tagsEmpty:"CardInput_tagsEmpty__UYGfd",tagPill:"CardInput_tagPill__PZRkp",tagSwatch:"CardInput_tagSwatch__n1fC_",removeTagButton:"CardInput_removeTagButton__2_mvg",addTagWrapper:"CardInput_addTagWrapper__ULR_J",addTagButton:"CardInput_addTagButton__crwVG",clipboardOverlay:"CardInput_clipboardOverlay__tjt5m",clipboardModal:"CardInput_clipboardModal__7Bwju",clipboardClose:"CardInput_clipboardClose___hbiL",clipboardTitle:"CardInput_clipboardTitle__y0Rmn",clipboardMessage:"CardInput_clipboardMessage__b0ePm",clipboardPreview:"CardInput_clipboardPreview__bul_g",clipboardActions:"CardInput_clipboardActions___hKey",primaryClipboardButton:"CardInput_primaryClipboardButton__odfv6",secondaryClipboardButton:"CardInput_secondaryClipboardButton__0D1Ih",clipboardHint:"CardInput_clipboardHint__gj7V0",tagPicker:"CardInput_tagPicker__nvDOB",tagPickerItem:"CardInput_tagPickerItem__Ku623",tagPickerEmpty:"CardInput_tagPickerEmpty__BD5Jd",manageTagsButton:"CardInput_manageTagsButton__1My_U",cardAppear:"CardInput_cardAppear__HOBrx",cardAppearActive:"CardInput_cardAppearActive__xRSKs",spin:"CardInput_spin__jKI_C"}},8928:(e,t,a)=>{"use strict";a.d(t,{GT:()=>d,Zf:()=>o,o1:()=>l,qm:()=>i});var r=a(3964);let n="flashcards.accountStatus.v1";function l(e){return e?.isPro===!0||e?.canAddImages===!0||e?.hasPermanentImageAccess===!0}let s=()=>window.localStorage?window.localStorage:null;function i(e){if(!e)return null;let t=s();if(!t)return null;try{let a=t.getItem(n);if(!a)return null;let r=JSON.parse(a),l=r?.[e];if(!l)return null;if(l.expiresAt<=Date.now())return delete r[e],t.setItem(n,JSON.stringify(r)),null;return l.status??null}catch{return null}}function o(e,t){if(!e)return;let a=s();if(a)try{let r=a.getItem(n),s=r?JSON.parse(r):{};s[e]={status:t,expiresAt:Date.now()+(l(t)?36e5:6e4)},a.setItem(n,JSON.stringify(s))}catch{}}async function d(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!e)return null;let a=i(e);if(!t&&a)return a;try{let t=await (0,r.am)(e);return o(e,t),t}catch(e){if(e instanceof Error&&e.message.includes("User must be signed in"))return null;if(l(a))return a;throw e}}},9061:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>Z});var r=a(7876),n=a(7964),l=a(4232),s=a(9058),i=a(9182),o=a(8115),d=a(6571),c=a.n(d),u=a(7949),m=a(7803),p=a(8220),g=a(3333),f=a(8864),_=a(8847),h=a.n(_),y=a(9511);let b="edit_cards_view_mode",C=["list","grid","spreadsheet"],v="(max-width: 768px)",x=()=>{try{let e=localStorage.getItem(b);if(C.includes(e))return e}catch{}return"grid"};function w(){return window.matchMedia(v).matches}var k=a(1472),I=a(632),E=a(7387),j=a(2281),S=a(135),L=a(5857),N=a(8253),A=a(2990),D=a(8928),T=a(5725),R=a(546),M=a(2539);class V{begin(e,t){let a=JSON.stringify([String(e),t]),r={key:a};return this.operations.set(a,r),r}isCurrent(e){return this.operations.get(e?.key)===e}invalidate(e,t){this.operations.delete(JSON.stringify([String(e),t]))}invalidateAll(){this.operations.clear()}constructor(){this.operations=new Map}}a(316);var U=a(3122);let P=l.lazy(()=>Promise.all([a.e(2249),a.e(4551)]).then(a.bind(a,4551))),B=l.lazy(()=>Promise.all([a.e(2991),a.e(8511)]).then(a.bind(a,8511))),F=h()(()=>Promise.all([a.e(7711),a.e(8951)]).then(a.bind(a,8951)),{loadableGenerated:{webpack:()=>[8951]},ssr:!1}),O=h()(()=>Promise.all([a.e(2930),a.e(3146),a.e(4912),a.e(4438)]).then(a.bind(a,4438)),{loadableGenerated:{webpack:()=>[4438]},ssr:!1}),$=h()(()=>Promise.all([a.e(9160),a.e(2250)]).then(a.bind(a,7012)),{loadableGenerated:{webpack:()=>[7012]},ssr:!1}),H=e=>
1({...e,answers:Array.isArray(e?.answers)?e.answers.map(e=>({...e})):e?.answers}),q=new Map,W=()=>{let e=[];return q.forEach(t=>{if("function"!=typeof t.flush)return;let a=t.flush();a&&"function"==typeof a.then&&e.push(a)}),Promise.all(e)};function K(e){let t,a,l,s=(0,n.c)(19),{status:i,lastSavedAt:o,t:d}=e;if("idle"===i)return null;if("saving"===i){let e;t=c().saveDotSaving,s[0]!==d?(e=d("components.edit_cards.save_status.saving",{defaultValue:"Saving…"}),s[0]=d,s[1]=e):e=s[1],a=e}else if("error"===i){let e;t=c().saveDotError,s[2]!==d?(e=d("components.edit_cards.save_status.error",{defaultValue:"Save failed"}),s[2]=d,s[3]=e):e=s[3],a=e}else{let e,r,n;t=c().saveDotSaved,s[4]!==o?(e=o||Date.now(),s[4]=o,s[5]=e):e=s[5];let l=Math.max(0,Math.floor((Date.now()-e)/1e3));if(l<5){let e;s[6]!==d?(e=d("components.edit_cards.save_status.just_now",{defaultValue:"just now"}),s[6]=d,s[7]=e):e=s[7],r=e}else if(l<60){let e;s[8]!==l||s[9]!==d?(e=d("components.edit_cards.save_status.seconds_ago",{defaultValue:"{{count}}s ago",count:l}),s[8]=l,s[9]=d,s[10]=e):e=s[10],r=e}else{let e,t=Math.floor(l/60);s[11]!==t||s[12]!==d?(e=d("components.edit_cards.save_status.minutes_ago",{defaultValue:"{{count}}m ago",count:t}),s[11]=t,s[12]=d,s[13]=e):e=s[13],r=e}s[14]!==d?(n=d("components.edit_cards.save_status.saved_prefix",{defaultValue:"Saved"}),s[14]=d,s[15]=n):n=s[15],a=`${n} \xb7 ${r}`}let u=`${c().saveDot} ${t}`;return s[16]!==a||s[17]!==u?(l=(0,r.jsx)("span",{className:u,role:"status","aria-live":"polite","aria-label":a,title:a}),s[16]=a,s[17]=u,s[18]=l):l=s[18],l}let G=Object.freeze({status:"idle",error:null}),z=Object.freeze({front:G,back:G}),Y=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return{status:e,error:t??null}},J=async e=>{let t=await new Promise((t,a)=>{if("u"<typeof URL)return void a(Error("Image conversion requires a browser environment."));let r=URL.createObjectURL(e),n=new Image;n.decoding="async",n.onload=()=>{URL.revokeObjectURL(r),t(n)},n.onerror=()=>{URL.revokeObjectURL(r),a(Error("Failed to decode image."))},n.src=r}),a=t.naturalWidth||t.width,r=t.naturalHeight||t.height;if(!a||!r)throw Error("Image has invalid dimensions.");let n=document.createElement("canvas");n.width=a,n.height=r;let l=n.getContext("2d");if(!l)throw Error("Unable to access canvas context.");l.fillStyle="#ffffff",l.fillRect(0,0,a,r),l.drawImage(t,0,0,a,r);let s=await new Promise((e,t)=>{n.toBlob(a=>{a?e(a):t(Error("Failed to convert image."))},"image/jpeg",.82)}),i=e.name?.replace(/\.[^.]+$/,"")||"image";return new File([s],`${i}-converted.jpg`,{type:"image/jpeg"})};async function Q(e){if(!(e instanceof File))throw Error("Invalid image file.");if(e.size<=0)throw Error("Selected image is empty.");if(e.size>0xa00000)throw Error("Image must be smaller than 10 MB.");let t=(e.type||"").toLowerCase();if(!("string"==typeof t&&t.startsWith("image/")))throw Error("Unsupported image file. Please choose a standard image format.");if("image/png"===t||"image/jpeg"===t||"image/jpg"===t)return e;try{if(!(()=>
1{if("u"<typeof document)return!1;let e=document.createElement("canvas");return!!(e&&"function"==typeof e.getContext&&"function"==typeof e.toBlob)})())return e;let t=await J(e);if(t.size>0xa00000)throw Error("Image must be smaller than 10 MB.");return t}catch(t){return console.warn("[EditCards] Falling back to worker image conversion",t),e}}function Z(e){let{cards:t,onEditModeChanged:a,setid:d,onUpdate:_,setData:h,onSetUpdate:J,onPendingEdits:Z}=e,{t:X}=(0,y.B)(),ee=(0,f.dj)(),[et,ea]=(0,l.useState)(t),er=(0,l.useRef)(new Map((Array.isArray(t)?t:[]).map(e=>[String(e.cardId),H(e)]))),en=(0,l.useRef)(new Set),el=(0,l.useRef)(new Map),es=(0,l.useRef)(new Map),ei=(0,l.useRef)(new V);(0,l.useEffect)(()=>{let e=ei.current;return()=>e.invalidateAll()},[]);let[eo,ed]=(0,l.useState)("idle"),[ec,eu]=(0,l.useState)(null),em=(0,l.useRef)(null),ep=(0,l.useCallback)(()=>{ed("saving"),em.current&&clearTimeout(em.current),em.current=setTimeout(()=>{es.current.size||(eu(Date.now()),ed("saved"))},600)},[]),[,eg]=(0,l.useState)(0);(0,l.useEffect)(()=>{if("saved"!==eo)return;let e=setInterval(()=>eg(e=>e+1),1e4);return()=>clearInterval(e)},[eo]);let[ef,e_]=(0,l.useState)(""),[eh,ey]=(0,l.useState)(-1),eb=(0,l.useRef)(null),[eC,ev]=(0,l.useState)(!1),[ex,ew]=(0,l.useState)([]),[ek,eI]=(0,l.useState)({}),[eE,ej]=(0,l.useState)(!1),[eS,eL]=(0,l.useState)({}),[eN,eA]=(0,l.useState)(!1),[eD,eT]=(0,l.useState)(0),[eR,eM]=(0,l.useState)(!1),[eV,eU]=(0,l.useState)(null),[eP,eB]=(0,l.useState)(!1),[eF,eO]=(0,l.useState)(null),[e$,eH]=(0,l.useState)(!1),{viewMode:eq,setViewMode:eW,isMobile:eK}=function(){let e,t,a,r,s=(0,n.c)(8),[i,o]=(0,l.useState)(x),[d,c]=(0,l.useState)(w);s[0]===Symbol.for("react.memo_cache_sentinel")?(e=()=>{let e=window.matchMedia(v),t=()=>c(e.matches);return t(),e.addEventListener("change",t),()=>e.removeEventListener("change",t)},t=[],s[0]=e,s[1]=t):(e=s[0],t=s[1]),(0,l.useEffect)(e,t),s[2]!==d?(a=e=>{if(!d&&C.includes(e)){o(e);try{localStorage.setItem(b,e)}catch{}}},s[2]=d,s[3]=a):a=s[3];let u=a,m=d?"list":i;return s[4]!==d||s[5]!==u||s[6]!==m?(r={viewMode:m,setViewMode:u,isMobile:d},s[4]=d,s[5]=u,s[6]=m,s[7]=r):r=s[7],r}();(0,l.useEffect)(()=>{let e=0,t=t=>{t.preventDefault(),t.dataTransfer?.items&&Array.from(t.dataTransfer.items).some(e=>"file"===e.kind)&&1==++e&&eB(!0)},a=e=>{e.preventDefault()},r=t=>{t.preventDefault(),0===(e=Math.max(0,e-1))&&eB(!1)},n=t=>{t.preventDefault(),e=0,eB(!1);let a=Array.from(t.dataTransfer?.files||[]).find(e=>/\.(csv|tsv|xlsx?)$/i.test(e.name));a&&(eU(a),eM(!0))};return window.addEventListener("dragenter",t),window.addEventListener("dragover",a),window.addEventListener("dragleave",r),window.addEventListener("drop",n),()=>{window.removeEventListener("dragenter",t),window.removeEventListener("dragover",a),window.removeEventListener("dragleave",r),window.removeEventListener("drop",n)}},[]);let eG=(0,l.useMemo)(()=>(t||[]).map(e=>e.cardId).sort((e,t)=>e>t?1:-1).join("|"),[t]),[ez,eY]=(0,l.useState)(()=>({deckId:d,...h||{},deckName:h?.deckName??"",description:h?.description??"",termLanguageCode:h?.termLanguageCode??I.mQ,definitionLanguageCode:h?.definitionLanguageCode??I.h0,categoryUuid:(0,j.i)(h?.categoryUuid??h?.categoryId??"")||""})),[eJ,eQ]=(0,l.useState)([]),[eZ,eX]=(0,l.useState)(()=>0===(0,j.i)(h?.deckName).length),e0=(0,l.useCallback)(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return e.map(e=>{let t=e.uuid??e.id??e.name??(0,p.A)(),a=String((0,j.i)(t)||t),r=(0,j.i)(e.name);return{id:a,uuid:e.uuid?String(e.uuid):null,name:r,hexColor:e.hexColor??"#9E9E9E"}}).filter(e=>(0,j.i)(e.name))},[]),e1=(0,l.useMemo)(()=>(0,m.A)(e=>(0,s.updateSetInStorage)(e),400),[]);(0,l.useEffect)(()=>()=>{let e=Promise.all([W(),e1.flush()]);Z?.(e),e.catch(e=>console.error("[EditCards] Failed to flush edits",e)),q.forEach(e=>{"function"==typeof e.flush&&e.flush(),"function"==typeof e.cancel&&e.cancel()}),q.clear(),e1.cancel()},[e1,Z]);let e2=(0,l.useMemo)(()=>({termLabel:X("components.edit_cards.layout.term_label",{defaultValue:"Term"}),termPlaceholder:X("components.edit_cards.card.term.placeholder",{defaultValue:"Term"}),definitionLabel:X("components.edit_cards.layout.definition_label",{defaultValue:"Definition"}),definitionPlaceholder:X("components.edit_cards.card.definition.placeholder",{defaultValue:"Definition"}),exampleLabel:X("components.edit_cards.layout.example_label",{defaultValue:"Example (Optional)"}),examplePlaceholder:X("components.edit_cards.layout.example_placeholder",{defaultValue:"Example..."}),addCard:X("components.edit_cards.actions.add",{defaultValue:"Add Card"}),viewOptions:X("components.edit_cards.layout.view_options",{defaultValue:"Options"}),searchPlaceholder:X("components.edit_cards.search.placeholder",{defaultValue:"Search..."}),multipleAnswers:{label:X("components.edit_cards.layout.multiple_choice_label",{defaultValue:"Multiple Choice"}),questionLabel:X("components.edit_cards.layout.question_label",{defaultValue:"Question"}),questionPlaceholder:X("components.edit_cards.layout.question_placeholder",{defaultValue:"Type your question..."}),answerPlaceholder:e=>X("components.edit_cards.card.multiple_answers.answer_placeholder",{number:e}),correctLabel:X("components.edit_cards.card.multiple_answers.correct_label"),answerHeading:X("components.edit_cards.layout.answer_options_label",{defaultValue:"Answer Options"}),selectInstruction:X("components.edit_cards.layout.answer_select_hint",{defaultValue:"Select the correct answer"})},delete:{title:X("components.edit_cards.card.delete.confirm_title"),message:X("components.edit_cards.card.delete.confirm_message"),confirm:X("components.edit_cards.card.delete.confirm_button"),cancel:X("components.edit_cards.card.delete.cancel_button")},tags:{label:X("components.edit_cards.layout.tags_label",{defaultValue:"Tags"}),add:X("components.edit_cards.layout.add_tag",{defaultValue:"Add Tag"}),manage:X("components.edit_cards.layout.manage_tags_short",{defaultValue:"Manage"}),empty:X("components.edit_cards.layout.no_tags",{defaultValue:"No tags yet"}),remove:X("components.edit_cards.layout.remove_tag",{defaultValue:"Remove tag"})},images:{heading:X("components.edit_cards.images.heading",{defaultValue:"Card images"}),frontLabel:X("components.edit_cards.images.front_label",{defaultValue:"Front image"}),backLabel:X("components.edit_cards.images.back_label",{defaultValue:"Back image"}),upload:X("components.edit_cards.images.upload",{defaultValue:"Add image"}),replace:X("components.edit_cards.images.replace",{defaultValue:"Replace image"}),remove:X("components.edit_cards.images.remove",{defaultValue:"Remove"}),uploading:X("components.edit_cards.images.uploading",{defaultValue:"Uploading…"}),proRequired:X("components.edit_cards.images.pro_required",{defaultValue:"Image uploads are included with Pro and remain available after your subscription ends."}),dropHint:X("components.edit_cards.images.drop_hint",{defaultValue:"Drop image to upload"})},columns:{term:X("components.edit_cards.layout.term_label",{defaultValue:"Term"}),definition:X("components.edit_cards.layout.definition_label",{defaultValue:"Definition"}),example:X("components.edit_cards.layout.example_label",{defaultValue:"Example"}),extraURL:X("components.edit_cards.layout.link_label",{defaultValue:"Link"}),answers:X("components.edit_cards.layout.multiple_choice_short",{defaultValue:"Answers"}),frontImage:X("components.edit_cards.images.front_label",{defaultValue:"Front Image"}),backImage:X("components.edit_cards.images.back_label",{defaultValue:"Back Image"})}}),[X]);(0,l.useEffect)(()=>{let e=[...t].sort((e,t)=>
1(e.createTime||0)-(t.createTime||0));er.current=new Map(e.map(e=>[String(e.cardId),H(e)])),en.current.clear(),el.current.clear(),ea(e),e.length>0&&ey(e[e.length-1].cardId)},[t]),(0,l.useEffect)(()=>{h&&(eY(e=>{let t=(0,j.i)(h.categoryUuid??h.categoryId??e.categoryUuid??"")||"",a={...e,...h,deckName:h.deckName??"",description:h.description??"",termLanguageCode:h.termLanguageCode??e.termLanguageCode??I.mQ,definitionLanguageCode:h.definitionLanguageCode??e.definitionLanguageCode??I.h0,categoryUuid:t};return h.category&&!t&&(a.category=h.category),a}),(0,j.i)(h.deckName)||eX(!0))},[h]),(0,l.useEffect)(()=>{let e=!1;return(async()=>{try{let a=await (0,s.getTagsFromStorage)();if(e)return;ew(a||[]);let r=(t||[]).map(e=>e.cardId).filter(Boolean),n=await (0,i.Xy)(r);if(!e){let e={};for(let[t,a]of n.entries())e[t]=a;eI(e)}}catch(t){e||console.error("[EditCards] Failed to load tags",t)}})(),()=>{e=!0}},[eG]),(0,l.useEffect)(()=>{let e=!0,t=async()=>{try{let t=await (0,s.getCategoriesFromStorage)();if(!e)return;let a=e0(t||[]);eQ(a)}catch(e){console.error("[EditCards] Failed to load categories",e)}};t();let a=(0,L.m7)(L.qY.CATEGORIES_UPDATED,t);return()=>{e=!1,a?.()}},[e0]),(0,l.useEffect)(()=>{let e=!1,t=(0,N.getFirebaseAuth)(),a=t.currentUser,r=t=>{e||ej((0,D.o1)(t))},n=n=>{if(n!==a&&(ei.current.invalidateAll(),a=n,r(null)),!n)return void r(null);let l=(0,D.qm)(n.uid);l&&r(l),(0,D.GT)(n.uid,!0).then(e=>{e&&t.currentUser===n&&a===n&&r(e)}).catch(l=>{!e&&t.currentUser===n&&a===n&&(l instanceof Error&&l.message.includes("signed in")||console.warn("[EditCards] Failed to load account status",l),l instanceof Error&&l.message.includes("signed in")&&r(null))})};n(t.currentUser);let l=(0,A.onAuthStateChanged)(t,n);return()=>{e=!0,"function"==typeof l&&l()}},[]);let e4=(0,l.useMemo)(()=>()=>({term:"",definition:"",cardId:(0,p.A)(),deckId:d,createTime:Date.now(),extraURL:null,extraTag:null,tagColor:0,lastUpdate:0,cardState:0,nextReviewTime:Date.now(),cardSpacedReviewRank:1,rank:0,examples:"",backAudio:null,frontAudio:null,frontImageURL:null,backImageURL:null,interval:0,easiness:1.5,repUpdateTime:0,answers:[],lastReviewDate:0,reviewCount:0,successCount:0}),[d]),e6=(0,l.useCallback)(e=>{if(e&&e===eh&&eC){let t=document.getElementById(`term-${e}`);t&&(t.focus(),ev(!1))}},[eh,eC]),e5=(0,l.useCallback)(()=>{let e=e4();en.current.add(String(e.cardId)),ea(t=>[...t,e]),eI(t=>({...t,[e.cardId]:[]})),ef&&e_(""),eb.current&&"spreadsheet"!==eq&&setTimeout(()=>eb.current?.scrollIntoView({behavior:"smooth"}),100),ey(e.cardId),ev(!0)},[e4,eq,ef]),e3=(0,l.useCallback)((e,t)=>{if(t.metaKey||t.ctrlKey||t.altKey||"spreadsheet"===eq)return;let a=document.getElementById(`card-${e}`);if(!a)return;let r=Array.from(a.querySelectorAll('[data-card-focus="true"]:not([disabled])'));if(0===r.length)return;let n=t.target,l=r.findIndex(e=>e===n);if(-1===l)return;let s=r[l+(t.shiftKey?-1:1)];if(s){t.preventDefault(),s.focus();return}t.shiftKey||e!==eh||(t.preventDefault(),e5())},[e5,eh,eq]),e8=(0,l.useCallback)(function(e,t){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;ea(r=>{if(a)try{a()}catch{return r}let n=r.findIndex(t=>t.cardId===e);if(-1===n)return r;let l=r[n],i="function"==typeof t?t(l):t,d={...l,...i,lastUpdate:(0,o.YW)(l.lastUpdate)},c=String(e);if(!en.current.has(c)){let e=er.current.get(c)??l,t=(0,M.N)(d);if((0,U.Sr)(e,t)){var u,p;er.current.set(c,H(t)),es.current.set(c,d.lastUpdate),(u=e=>{es.current.get(c)===e.lastUpdate&&(es.current.delete(c),es.current.size||(eu(Date.now()),ed("saved")))},p=()=>ed("error"),q.has(c)||q.set(c,(0,m.A)(e=>{let t=(0,s.updateCardInStorage)(e,!0);return t.then(()=>u?.(e),()=>p?.()),t},500)),q.get(c))(t)}}let g=[...r];return g[n]=d,g}),en.current.has(String(e))||ep()},[]),e9=(0,l.useCallback)((e,t,a)=>{eL(r=>{let n=r[e],l=n?.[t]??G,s="function"==typeof a?a(l):a;if(l.status===s.status&&l.error===s.error)return r;let i={front:"front"===t?s:{...n?.front??G},back:"back"===t?s:{...n?.back??G}};return{...r,[e]:i}})},[]),e7=(0,l.useCallback)(async(e,t,a)=>{let r=ei.current.begin(e,t),n=(0,N.getFirebaseAuth)().currentUser,l=n?.uid;if(!l)return void e9(e,t,Y("error","Sign in before uploading an image."));e9(e,t,Y("uploading"));try{let s=()=>
1{if(!ei.current.isCurrent(r))throw Error("The selected image changed before upload completed.");(0,T.cO)(l,n)};s();let i=a instanceof File?a:new File([a],"card-image.png"),o=await Q(i);s();let d=await (0,T.Vb)(o,l);s(),"front"===t?e8(e,{frontImageURL:d.url,frontImagePath:null},s):e8(e,{backImageURL:d.url,backImagePath:null},s),e9(e,t,Y("idle"))}catch(a){if(!ei.current.isCurrent(r)||(0,N.getFirebaseAuth)().currentUser?.uid!==l)return;e9(e,t,Y("error",a instanceof Error?a.message:"Unable to upload image.")),console.error("[EditCards] Image upload failed",a)}},[et,e8,e9]),te=(0,l.useCallback)((e,t)=>{ei.current.invalidate(e,t);let a=(0,N.getFirebaseAuth)().currentUser,r=a?.uid??null,n=a?()=>(0,T.cO)(r,a):null;try{n?.()}catch(a){e9(e,t,Y("error",a.message));return}e8(e,e=>(0,R.oF)(e,t,{uid:r,session:a}),n),e9(e,t,Y("idle"))},[e8,e9]),tt=(0,l.useCallback)(async e=>{let t,a,r=et.find(t=>t.cardId===e),n=ek[e]?[...ek[e]]:[],l=String(e),o=en.current.delete(l);if(el.current.delete(l),t=String(l),a=q.get(t)??q.get(l),"function"==typeof a?.cancel&&a.cancel(),q.delete(t),q.delete(l),es.current.delete(l),ea(et.filter(t=>t.cardId!==e)),eI(t=>{let a={...t};return delete a[e],a}),eL(t=>{if(!t[e])return t;let a={...t};return delete a[e],a}),!o){try{await (0,i.Ov)(e)}catch(e){console.error("[EditCards] Failed to remove card tags",e)}(0,s.deleteCardFromStorage)(e),r&&ee.success(X("components.edit_cards.delete.undo_message",{defaultValue:"Card deleted."}),{action:{label:X("components.edit_cards.delete.undo",{defaultValue:"Undo"}),onClick:async()=>{ea(t=>{let a=et.findIndex(t=>t.cardId===e),n=[...t];return a>=0&&a<=n.length?n.splice(a,0,r):n.push(r),n});try{await (0,s.insertCardsListInStorage)([(0,M.N)(r)])}catch(e){console.error("[EditCards] Failed to restore card",e)}if(n.length>0)for(let t of(eI(t=>({...t,[e]:n})),n))try{await (0,i.n2)(e,t),await (0,i.uo)(e)}catch(e){console.error("[EditCards] Failed to restore tag link",e)}}}})}},[et,ek,ee,X]),ta=(0,l.useCallback)(async e=>{try{let t=(0,U.$K)(e.map(M.N));if(0===t.length)return;await (0,s.insertCardsListInStorage)(t),t.forEach(e=>{er.current.set(String(e.cardId),H(e))});let a=[...et,...t];ea(a),eM(!1),eU(null),t.length>0&&ey(t[t.length-1].cardId)}catch(e){throw console.error("Failed to save imported cards",e),e}},[et]),tr=(0,l.useCallback)(async()=>{try{await W()}catch(e){console.error("[EditCards] Failed to flush card edits",e),ed("error");return}let e=et.map(M.N).map(e=>{let t=(0,U.nj)(e);return t&&t!==e.definition?{...e,definition:t,lastUpdate:(0,o.YW)(e.lastUpdate)}:e}),t=new Set,r=[],n=[],l=[],d=[];if(e.forEach(e=>{let a=String(e.cardId);if(en.current.has(a))return void((0,U.YT)(e)?(n.push(e),d.push(e)):(0,U.EQ)(e)?r.push(e):t.add(a));let s=er.current.get(a);s&&(0,U.Sr)(s,e)?(l.push(e),d.push(e)):s&&r.push(e)}),t.size>0&&(t.forEach(e=>{en.current.delete(e),el.current.delete(e)}),ea(e.filter(e=>!t.has(String(e.cardId))))),r.length>0){ee.warning(X("components.edit_cards.validation.incomplete_card",{count:r.length,defaultValue:"Each card needs usable content on both sides before it can be saved."})),ed("error");return}try{if(l.length>0&&await (0,s.updateCardsListInStorage)(l),n.length>0)for(let e of(await (0,s.insertCardsListInStorage)(n),n)){let t=String(e.cardId),a=el.current.get(t)??new Set;for(let t of a)await (0,i.n2)(e.cardId,t);a.size>0&&await (0,i.uo)(e.cardId)}}catch(e){console.error("[EditCards] Failed to save validated cards",e),ed("error");return}d.forEach(e=>{let t=String(e.cardId);er.current.set(t,H(e)),en.current.delete(t),el.current.delete(t)}),ea(d),_(d),a()},[et,a,_,X,ee]),[tn,tl]=(0,l.useState)([]);(0,l.useEffect)(()=>{let e=!1;return(0,s.getSetsFromStorage)().then(t=>{!e&&Array.isArray(t)&&tl(t.filter(e=>String(e.deckId)!==String(d)).map(e=>({name:e.deckName||"",key:(0,u._)(e.deckName||"")})))}).catch(()=>{}),()=>{e=!0}},[d]);let ts=(0,l.useMemo)(()=>{let e=(0,u._)(ez.deckName||"");return e&&tn.find(t=>t.key===e)||null},[tn,ez.deckName]),ti=(0,l.useCallback)((e,t)=>{eY(a=>{let r={...a,[e]:t,lastUsed:Date.now()};if("categoryUuid"===e){let e=t&&"object"==typeof t?t:{uuid:t,name:void 0},a=e?.uuid?String(e.uuid):"";r.categoryUuid=a,"string"==typeof e?.name&&""!==e.name.trim()?r.category=e.name:a||delete r.category}return r.termLanguageCode||(r.termLanguageCode=I.mQ),r.definitionLanguageCode||(r.definitionLanguageCode=I.h0),setTimeout(()=>{e1(r),J&&J(r)},0),r}),ep()},[e1,J,ep]);(0,l.useEffect)(()=>
1{if(!eJ.length||ez.categoryUuid)return;let e=(0,j.i)(ez.category).toLowerCase();if(!e)return;let t=eJ.find(t=>(0,j.i)(t.name).toLowerCase()===e);t&&ti("categoryUuid",{uuid:t.uuid??t.id,name:t.name})},[eJ,ti,ez.category,ez.categoryUuid]);let to=(0,l.useCallback)(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";eO({previousValue:e})},[]),td=(0,l.useCallback)(async(e,t)=>{try{let a=await (0,s.createCategoryInStorage)({name:e,hexColor:t,createTime:Date.now(),updateTime:Date.now()}),r=await (0,s.getCategoriesFromStorage)();eQ(e0(r||[])),ti("categoryUuid",{uuid:a.uuid,name:a.name}),eO(null)}catch(e){(0,S.Yt)("EditCards",e)}},[ti,e0]),tc=(0,l.useCallback)(()=>{eO(e=>(e&&ti("categoryUuid",{uuid:e.previousValue??"",name:void 0}),null))},[ti]),tu=(0,l.useCallback)(async e=>{let t=e.target.value;if("__create__"===t)return void await to(ez.categoryUuid||"");let a=eJ.find(e=>String(e.uuid??e.id)===String(t));ti("categoryUuid",{uuid:t,name:a?.name})},[eJ,to,ti,ez.categoryUuid]),tm=(0,l.useCallback)(async(e,t)=>{let a=String(e);if(en.current.has(a)){let r=new Set(el.current.get(a)??[]);r.add(t),el.current.set(a,r),eI(a=>({...a,[e]:Array.from(new Set([...a[e]||[],t]))}));return}try{await (0,i.n2)(e,t),await (0,i.uo)(e),eI(a=>{let r=a[e]||[];return r.includes(t)?a:{...a,[e]:[...r,t]}})}catch(e){console.error("[EditCards] Failed to assign tag",e)}},[]),tp=(0,l.useCallback)(async(e,t)=>{let a=String(e);if(en.current.has(a)){let r=new Set(el.current.get(a)??[]);r.delete(t),el.current.set(a,r),eI(a=>({...a,[e]:(a[e]||[]).filter(e=>e!==t)}));return}try{await (0,i.uN)(e,t),await (0,i.uo)(e)}catch(e){console.error("[EditCards] Failed to remove tag",e)}eI(a=>{let r=a[e]||[];return{...a,[e]:r.filter(e=>e!==t)}})},[]),tg=(0,l.useCallback)(async e=>{let{name:t,hexColor:a}=e,r=t.trim();if(!r)return{success:!1,message:X("components.tags_manager.errors.name_required",{defaultValue:"Tag name is required"})};if(ex.some(e=>e.name.trim().toLowerCase()===r.toLowerCase()))return{success:!1,message:X("components.tags_manager.errors.duplicate_name",{defaultValue:"A tag with this name already exists"})};let n=Date.now(),l={id:(0,p.A)(),name:r,hexColor:a,createTime:n,updateTime:n};try{return await (0,s.createTagInStorage)(l),ew(e=>[...e,l]),{success:!0,tag:l}}catch(e){return console.error("[EditCards] Failed to create tag",e),{success:!1,message:X("components.tags_manager.errors.save_failed",{defaultValue:"Could not create tag. Please try again."})}}},[ex,X]),tf=(0,l.useCallback)(async e=>{let{id:t,name:a,hexColor:r}=e,n=a.trim();if(!n)return{success:!1,message:X("components.tags_manager.errors.name_required",{defaultValue:"Tag name is required"})};if(ex.some(e=>e.id!==t&&e.name.trim().toLowerCase()===n.toLowerCase()))return{success:!1,message:X("components.tags_manager.errors.duplicate_name",{defaultValue:"A tag with this name already exists"})};let l={id:t,name:n,hexColor:r,updateTime:Date.now()};try{return await (0,s.updateTagInStorage)(l),ew(e=>e.map(e=>e.id===t?{...e,...l}:e)),{success:!0,tag:l}}catch(e){return console.error("[EditCards] Failed to update tag",e),{success:!1,message:X("components.tags_manager.errors.save_failed",{defaultValue:"Could not update tag. Please try again."})}}},[ex,X]),t_=(0,l.useCallback)(async e=>{try{return await (0,s.deleteTagInStorage)(e),ew(t=>t.filter(t=>t.id!==e)),eI(t=>{let a={};for(let[r,n]of Object.entries(t))a[r]=n.filter(t=>t!==e);return a}),{success:!0}}catch(e){return console.error("[EditCards] Failed to delete tag",e),{success:!1,message:X("components.tags_manager.errors.delete_failed",{defaultValue:"Could not delete tag. Please try again."})}}},[X]),th=(0,l.useMemo)(()=>{if(!ef.trim())return et;let e=ef.toLowerCase();return et.filter(t=>(t.term||"").toLowerCase().includes(e)||(t.definition||"").toLowerCase().includes(e))},[et,ef]),ty=th.length;(0,l.useMemo)(()=>{let e=(ez.deckName||X("components.edit_cards.layout.untitled_set",{defaultValue:"Untitled Set"})).trim().split(" ").filter(Boolean);return 0===e.length?"S":((e[0]?.[0]||"")+(e.length>1?e[e.length-1]?.[0]||"":e[0]?.[1]||"")).toUpperCase()},[ez.deckName,X]);let tb=(0,l.useMemo)(()=>
1{if(ez.categoryUuid){let e=eJ.find(e=>String(e.id)===String(ez.categoryUuid)||e.uuid&&String(e.uuid)===String(ez.categoryUuid));if(e)return e.name}return(0,j.i)(ez.category)},[eJ,ez.category,ez.categoryUuid]),tC=(0,j.i)(tb),tv=tC?tC.trim():"",tx=(0,l.useMemo)(()=>{let e=(0,E.G)((0,j.i)(ez.termLanguageCode)||I.mQ),t=(0,E.G)((0,j.i)(ez.definitionLanguageCode)||I.h0);return`${e.toUpperCase()} → ${t.toUpperCase()}`},[ez.definitionLanguageCode,ez.termLanguageCode]),tw=(0,l.useMemo)(()=>{let e=(0,j.i)(ez.termLanguageCode),t=(0,j.i)(ez.definitionLanguageCode);return e&&e!==I.mQ||t&&t!==I.h0},[ez.termLanguageCode,ez.definitionLanguageCode]),tk=(0,l.useMemo)(()=>X("components.edit_cards.layout.card_count",{count:ty,defaultValue:"{{count}} cards"}),[ty,X]);(0,l.useMemo)(()=>{let e=[];return ty>0&&e.push(tk),tv&&e.push(tv),tw&&e.push(tx),e},[ty,tk,tv,tx,tw]);let tI=et.length>0,tE=!ez.deckName?.trim()&&!tI,tj=!tE||e$;(0,l.useEffect)(()=>{eZ||"function"!=typeof e1.flush||e1.flush()},[eZ,e1]);let[tS,tL]=(0,l.useState)(!1);return(0,r.jsxs)("div",{className:"spreadsheet"===eq?`${c().pageSpreadsheet} ${eZ?c().pageSpreadsheetEditing:""}`:c().page,"data-edit-view":eq,children:[(0,r.jsxs)("header",{className:`${c().setHeader} ${eZ?c().setHeaderEditing:""}`,children:[(0,r.jsxs)("div",{className:c().setTitleRow,children:[eZ?(0,r.jsx)("input",{type:"text",className:c().setTitle,value:ez.deckName??"",onChange:e=>ti("deckName",e.target.value),placeholder:X("components.edit_cards.layout.name_your_deck",{defaultValue:"Name your deck…"}),"aria-label":X("components.edit_cards.layout.set_name",{defaultValue:"Set name"}),spellCheck:!1,autoFocus:!0}):null,eZ&&ts?(0,r.jsx)("p",{className:c().itemDescription??"",role:"alert",style:{color:"#b45309",margin:"4px 0 0",fontSize:13},children:X("components.edit_cards.layout.duplicate_name_warning",{name:ts.name,defaultValue:`⚠ A set named "${ts.name}" already exists — you may be creating a duplicate. If your other device hasn't finished syncing, its copy may appear shortly.`})}):null,eZ?(0,r.jsx)("span",{style:{display:"none"}}):(0,r.jsx)("h1",{className:c().setTitleDisplay,children:ez.deckName?.trim()||X("components.edit_cards.layout.untitled_set",{defaultValue:"Untitled set"})}),(0,r.jsxs)("div",{className:c().setTitleActions,children:[(0,r.jsx)(K,{status:eo,lastSavedAt:ec,t:X}),!tE&&(eZ?(0,r.jsxs)("button",{type:"button",className:c().setHeaderActionPrimary,onClick:()=>eX(!1),"aria-label":X("components.edit_cards.layout.done",{defaultValue:"Done"}),children:[(0,r.jsx)(k.CMH,{"aria-hidden":"true"}),(0,r.jsx)("span",{children:X("components.edit_cards.layout.done",{defaultValue:"Done"})})]}):(0,r.jsxs)("button",{type:"button",className:c().setHeaderAction,"aria-label":X("components.edit_cards.layout.edit_details",{defaultValue:"Edit details"}),onClick:()=>{eX(!0),eH(!0)},children:[(0,r.jsx)(k.F7,{"aria-hidden":"true"}),(0,r.jsx)("span",{children:X("components.edit_cards.layout.edit_details",{defaultValue:"Edit details"})})]}))]})]}),!eZ&&(0,r.jsxs)(r.Fragment,{children:[(ty>0||tv||tw)&&(0,r.jsxs)("div",{className:c().setMetaChips,children:[ty>0&&(0,r.jsx)("span",{className:c().setMetaChip,children:tk}),tv&&(0,r.jsx)("span",{className:c().setMetaChip,children:tv}),tw&&(0,r.jsx)("span",{className:c().setMetaChip,children:tx})]}),ez.description&&(0,r.jsx)("p",{className:`${c().setDescription} ${tS?c().setDescriptionExpanded:""}`,onClick:()=>tL(e=>!e),role:"button",tabIndex:0,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),tL(e=>!e))},"aria-expanded":tS,title:X("components.edit_cards.layout.toggle_description",{defaultValue:"Click to expand/collapse description"}),children:ez.description})]}),eZ&&!tj&&(0,r.jsxs)("button",{type:"button",className:c().detailsDisclosure,onClick:()=>eH(!0),children:[(0,r.jsx)(k.OiG,{"aria-hidden":"true"}),X("components.edit_cards.layout.add_details",{defaultValue:"Add description, category & languages"})]}),eZ&&tj&&(0,r.jsxs)("div",{className:c().fieldGrid,children:[(0,r.jsxs)("label",{className:`${c().field} ${c().fullRow}`,children:[(0,r.jsx)("span",{className:c().fieldLabel,children:X("components.edit_cards.layout.description_label",{defaultValue:"Description"})}),(0,r.jsx)("textarea",{value:ez.description??"",onChange:e=>ti("description",e.target.value),placeholder:X("components.edit_cards.layout.description_placeholder",{defaultValue:"Describe the focus of this study set..."})})]}),(0,r.jsxs)("label",{className:c().field,children:[(0,r.jsx)("span",{className:c().fieldLabel,children:X("components.edit_cards.layout.category_label",{defaultValue:"Category"})}),(0,r.jsxs)("select",{value:ez.categoryUuid??"",onChange:tu,children:[(0,r.jsx)("option",{value:"",children:X("components.edit_cards.layout.category_placeholder",{defaultValue:"No category"})}),eJ.map(e=>(0,r.jsx)("option",{value:e.id,children:e.name},e.id)),(0,r.jsx)("option",{value:"__create__",children:X("components.edit_cards.layout.create_category_option",{defaultValue:"Create new category…"})})]})]}),(0,r.jsxs)("label",{className:c().field,children:[(0,r.jsx)("span",{className:c().fieldLabel,children:X("components.edit_cards.layout.term_language_label",{defaultValue:"Front Language"})}),(0,r.jsx)("select",{value:ez.termLanguageCode??I.mQ,onChange:e=>ti("termLanguageCode",e.target.value),children:I.aV.map(e=>(0,r.jsx)("option",{value:e.code,children:e.nativeName},e.code))})]}),(0,r.jsxs)("label",{className:c().field,children:[(0,r.jsx)("span",{className:c().fieldLabel,children:X("components.edit_cards.layout.definition_language_label",{defaultValue:"Back Language"})}),(0,r.jsx)("select",{value:ez.definitionLanguageCode??I.h0,onChange:e=>ti("definitionLanguageCode",e.target.value),children:I.aV.map(e=>(0,r.jsx)("option",{value:e.code,children:e.nativeName},e.code))})]})]})]}),tI&&(0,r.jsxs)("div",{className:c().cardsToolbar,children:[(0,r.jsxs)("div",{className:c().searchWra
1pper,children:[(0,r.jsx)(k.KSO,{className:c().searchIcon}),(0,r.jsx)("input",{type:"text",className:c().searchInput,"aria-label":e2.searchPlaceholder,placeholder:e2.searchPlaceholder,value:ef,onChange:e=>e_(e.target.value)})]}),!eK&&(0,r.jsx)("div",{className:c().viewSwitcher,role:"group","aria-label":X("components.edit_cards.views.label",{defaultValue:"Card layout"}),children:[["list",k.svy,"List"],["grid",k.QJV,"Grid"],["spreadsheet",k.ist,"Spreadsheet"]].map(e=>{let[t,a,n]=e;return(0,r.jsxs)("button",{type:"button",className:`${c().viewOption} ${eq===t?c().viewOptionActive:""}`,onClick:()=>eW(t),"aria-pressed":eq===t,children:[(0,r.jsx)(a,{"aria-hidden":"true"}),(0,r.jsx)("span",{children:X(`components.edit_cards.views.${t}`,{defaultValue:n})})]},t)})}),(0,r.jsxs)("button",{type:"button",className:c().primaryAction,onClick:tr,children:[(0,r.jsx)(k.CMH,{}),X("components.edit_cards.actions.save_cards",{defaultValue:"Save cards"})]})]}),!tI&&(0,r.jsxs)("div",{className:`${c().emptyDeckState} ${eP?c().emptyDeckStateDragging:""}`,children:[(0,r.jsx)("div",{className:c().emptyDeckIcon,"aria-hidden":"true",children:(0,r.jsx)(k.aQJ,{})}),(0,r.jsx)("h3",{className:c().emptyDeckTitle,children:X("components.edit_cards.empty.title",{defaultValue:"Your deck is empty"})}),(0,r.jsx)("p",{className:c().emptyDeckSubtitle,children:X("components.edit_cards.empty.subtitle",{defaultValue:"Add cards one at a time, or import an existing deck."})}),(0,r.jsxs)("button",{type:"button",className:c().emptyDeckButton,onClick:e5,children:[(0,r.jsx)(k.OiG,{"aria-hidden":"true"}),X("components.edit_cards.actions.add",{defaultValue:"Add Card"})]}),(0,r.jsxs)("button",{type:"button",className:c().emptyDeckImportLink,onClick:()=>eM(!0),children:[(0,r.jsx)(k.PiR,{"aria-hidden":"true"}),X("components.edit_cards.empty.import_csv",{defaultValue:"Import from CSV"})]}),(0,r.jsx)("p",{className:c().emptyDeckDropHint,"aria-hidden":"true",children:eP?X("components.edit_cards.empty.drop_active",{defaultValue:"Drop the file to import"}):X("components.edit_cards.empty.drop_hint",{defaultValue:"…or drop a CSV file anywhere on this page"})})]}),tI&&"list"===eq&&(0,r.jsxs)("section",{className:c().sectionCard,children:[(0,r.jsxs)("div",{className:c().sectionHeader,children:[(0,r.jsx)("div",{children:(0,r.jsx)("h2",{children:X("components.edit_cards.layout.flashcards",{defaultValue:"Flashcards"})})}),(0,r.jsx)("div",{className:c().sectionActions,children:(0,r.jsxs)("button",{type:"button",className:c().secondaryAction,onClick:()=>{eT(e=>e+1),eA(!0)},children:[(0,r.jsx)(k.BuZ,{}),X("components.edit_cards.layout.manage_tags",{defaultValue:"Manage Tags"})]})})]}),(0,r.jsxs)("div",{className:c().cardsList,children:[th.map((e,t)=>(0,r.jsx)(g.Z,{card:e,layout:"list",index:t,sourceLanguage:ez.termLanguageCode,targetLanguage:ez.definitionLanguageCode,availableTags:ex,selectedTagIds:ek[e.cardId]||[],onAssignTag:tm,onRemoveTag:tp,onManageTags:()=>{eT(e=>e+1),eA(!0)},onCardChange:e8,canUploadImages:eE,onImageUpload:e7,onImageRemove:te,imageState:eS[e.cardId]??z,onDelete:tt,focusOnNewCard:e6,onTabPressed:e3,translations:e2},e.cardId)),(0,r.jsx)("div",{ref:eb}),(0,r.jsxs)("button",{type:"button",className:c().addCardButton,onClick:e5,children:[(0,r.jsx)(k.OiG,{}),X("components.edit_cards.actions.add",{defaultValue:"Add Card"})]})]})]}),(0,r.jsxs)(l.Suspense,{fallback:(0,r.jsx)("div",{className:c().loadingFallback,children:"Loading view..."}),children:[tI&&"grid"===eq&&(0,r.jsxs)("div",{style:{flex:1},children:[(0,r.jsx)(B,{cards:th,sourceLanguage:ez.termLanguageCode,targetLanguage:ez.definitionLanguageCode,availableTags:ex,cardTagsMap:ek,onAssignTag:tm,onRemoveTag:tp,onManageTags:()=>{eT(e=>e+1),eA(!0)},onCardChange:e8,canUploadImages:eE,onImageUpload:e7,onImageRemove:te,imageStatuses:eS,onDelete:tt,focusOnNewCard:e6,onTabPressed:e3,translations:e2}),(0,r.jsxs)("button",{type:"button",className:c().addCardButton,onClick:e5,children:[(0,r.jsx)(k.OiG,{}),X("components.edit_cards.actions.add",{defaultValue:"Add Card"})]}),(0,r.jsx)("div",{ref:eb})]}),tI&&"spreadsheet"===eq&&(0,r.jsx)(P,{cards:th,sourceLanguage:ez.termLanguageCode,targetLanguage:ez.definitionLanguageCode,onCardChange:e8,onAddCard:e5,onDeleteCard:tt,canUploadImages:eE,onImageUpload:e7,onImageRemove:te,imageStatuses:eS,availableTags:ex,cardTagsMap:ek,onAssignTag:tm,onRemoveTag:tp,onManageTags:()=>{eT(e=>e+1),eA(!0)},translations:e2,shouldFocusCard:eC,lastCardId:eh,onFocusComplete:()=>ev(!1)})]}),(0,r.jsx)(F,{isOpen:eN,onClose:()=>eA(!1),tags:ex,onCreateTag:tg,onUpdateTag:tf,onDeleteTag:t_},eD),(0,r.jsx)(O,{isOpen:eR,onRequestClose:()=>{eM(!1),eU(null)},onConfirm:ta,deckId:ez.deckId,deckName:ez.deckName,initialFile:eV}),(0,r.jsx)($,{isOpen:!!eF,mode:"create",onSubmit:td,onClose:tc}),et.length>1&&"spreadsheet"!==eq&&(0,r.jsx)("button",{type:"button",className:c().floatingAddCard,onClick:e5,"aria-label":X("components.edit_cards.actions.add",{defaultValue:"Add Card"}),title:X("components.edit_cards.actions.add",{defaultValue:"Add Card"}),children:(0,r.jsx)(k.OiG,{"aria-hidden":"true"})})]})}},9682:e=>{e.exports={overlay:"DeleteConfirmModal_overlay__eebqy",modal:"DeleteConfirmModal_modal__SrN6b",title:"DeleteConfirmModal_title__VGRzv",message:"DeleteConfirmModal_message__PB9GX",buttons:"DeleteConfirmModal_buttons__XTiqC",cancelButton:"DeleteConfirmModal_cancelButton__eqD99",deleteButton:"DeleteConfirmModal_deleteButton__AGXiD"}},9705:e=>{e.exports={wrapper:"StyledTextEditor_wrapper__DFEU_",toolbar:"StyledTextEditor_toolbar__nTwaR",group:"StyledTextEditor_group__kXSap",divider:"StyledTextEditor_divider__JoKjw",button:"StyledTextEditor_button__S7Sa8",buttonActive:"StyledTextEditor_buttonActive__sqm8p",swatchButton:"StyledTextEditor_swatchButton__8mci9",swatchDot:"StyledTextEditor_swatchDot__w53E0",pickerAnchor:"StyledTextEditor_pickerAnchor__T5Q9b",picker:"StyledTextEditor_picker__jkd25",chip:"StyledTextEditor_chip__KjFq4",chipActive:"StyledTextEditor_chipActive__3mZii",chipNone:"StyledTextEditor_chipNone__z05qR",editor:"StyledTextEditor_editor__yj4GK"}}}]);
2//# sourceMappingURL=9061.81921d2f9eb102af.js.map

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.