PageSourceSearch

https://chineseprephub.manus.space/assets/TeacherStudioAdvanced-7yfUjC8x.js

js chineseprephub.manus.space collected 2026-10-03 05:01:04 UTC 49,402 bytes, 30 lines download raw bytes

1import{c as V,j as e,u as W,t as l,a as Ce,r as x,B as we,S as H,R as ke,D as Pe,P as Le}from"./index-CuYDMaVN.js";import{D as Me,P as ze}from"./DashboardLayout-c8lpfeSf.js";import{a as De,T as re,G as Oe,b as Re}from"./teachingEnhancements-CP2PJdsB.js";import{F as Ee}from"./file-text-BHyEAjd9.js";import{C as $e}from"./copy-DyC6wMeJ.js";import{P as Be}from"./plus-DM1_m6J6.js";import{L as ie}from"./loader-circle-DlkoX0Fb.js";import{V as oe}from"./volume-2-CyJteChi.js";/**
2 * @license lucide-react v0.453.0 - ISC
3 *
4 * This source code is licensed under the ISC license.
5 * See the LICENSE file in the root directory of this source tree.
6 */const Ie=V("FilePlus2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M3 15h6",key:"4e2qda"}],["path",{d:"M6 12v6",key:"1u72j0"}]]);/**
7 * @license lucide-react v0.453.0 - ISC
8 *
9 * This source code is licensed under the ISC license.
10 * See the LICENSE file in the root directory of this source tree.
11 */const Ue=V("Share2",[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]]);/**
12 * @license lucide-react v0.453.0 - ISC
13 *
14 * This source code is licensed under the ISC license.
15 * See the LICENSE file in the root directory of this source tree.
16 */const Qe=V("WandSparkles",[["path",{d:"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72",key:"ul74o6"}],["path",{d:"m14 7 3 3",key:"1r5n42"}],["path",{d:"M5 6v4",key:"ilb8ba"}],["path",{d:"M19 14v4",key:"blhpug"}],["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M7 8H3",key:"zfb6yr"}],["path",{d:"M21 16h-4",key:"1cnmox"}],["path",{d:"M11 3H9",key:"1obp7u"}]]);function He({message:t}){return t?e.jsx("p",{"data-loc":"client/src/components/ContentStudioSaveNotice.tsx:5",role:"status",className:"mt-3 rounded-xl bg-[#e7f5ed] px-3 py-2 text-sm font-semibold text-[#397a70]",children:t}):null}function qe(t,c){return{title:t.title,description:t.description??"",category:t.category,lessonObjective:c??"",questions:t.questions.map(r=>({...r,options:Array.isArray(r.options)?[...r.options]:[],pinyin:r.pinyin??"",config:{...r.config??{}},explanation:r.explanation??""}))}}const Fe={studio:"内容工作室",newMaterial:"新建互动课堂素材",autoAssemble:"一键组卷备课",vocabulary:"词表",patterns:"句型",mixed:"混合内容",teachingContent:"教学内容",generate:"生成可编辑题组",templateLibrary:"可复用组卷模板",saveTemplate:"保存模板",characterActivity:"汉字主题活动",resourceTitle:"资源标题",lessonObjective:"课时目标",teachingCategory:"教学分类",teachingNotes:"教学说明",saveMaterial:"保存互动课堂素材",coursewareBrand:"课件品牌",saveBrand:"保存品牌配置",resourcesAndClasses:"资源与课堂",recycleBin:"30 天回收站",restore:"恢复",draftMode:"草稿模式",templateName:"模板名称",noTemplates:"尚未保存模板。建议按常用课时目标沉淀第一份题组。",applyTemplate:"套用",derivedPacks:"内容包多模板派生",applyPack:"点击套用",themeExample:"主题,例如校园",targetCharacters:"目标汉字,每行一个",generateCharacterActivity:"生成汉字主题活动",coverTitle:"封面标题",coverSubtitle:"封面副标题",schoolLogoUrl:"https:// 校徽图片链接(可选)",jadeTheme:"玉松绿主题",indigoTheme:"靛紫主题",sunriseTheme:"日出主题",noResources:"还没有云端资源。左侧创建第一份互动课堂素材。",retainedUntil:"保留至",noRecoverableResources:"没有可恢复资源。",questionNumber:"第 {number} 题",interactiveQuestionType:"互动题型",deleteQuestion:"删除题目",questionPrompt:"题干",pinyinOptional:"拼音(可选)",teacherNoteOptional:"教师说明(可选)",addMatching:"+ 配对题",addStroke:"+ 笔顺题",addOrder:"+ 排序题",addChoice:"通用选择",matchingPairs:"配对项(每行“左侧 | 右侧”)",learnerHintOptional:"学生提示(可选)",targetCharacter:"目标汉字",strokeSteps:"笔顺步骤(每行一个)",sentenceTokens:"句子词元(每行一个)",speechEditor:"语音逐词编辑与试玩",speechEditorDescription:"每行一个朗读片段;可单独试听或连贯播放。",previewSentence:"试玩整句",speechSegments:"每行一个拼音或朗读片段",optionsEachLine:"选项,每行一个",correctAnswer:"正确答案(必须与一个选项一致)",templateDescription:"保存当前题组和课时目标,下一次一键套用。",derivedPacksDescription:"以当前题组快速派生导入、互动巩固和课后回顾版本。",characterActivityDescription:"围绕一个生活主题生成识字与笔顺互动活动。",brandDescription:"每位教师一套封面、校徽与主题,应用于 HTML 与 PPTX 课件。",resourcesDescription:"导出品牌化 HTML/PPTX,或创建 14 天有效、可随时撤销的只读课件链接。",recycleBinDescription:"删除资源不会立即移除已结束课堂和报告。",segmentLabel:"片段 {number}",strokeQuestionPrompt:"请按正确笔顺完成“{character}”",resourceSaved:"互动课堂素材已保存到云端。",templateSaved:"组卷模板已保存,可在下次备课时套用。",brandSaved:"课件品牌配置已保存。"},Ge={studio:"Content Studio",newMaterial:"Create interactive class material",autoAssemble:"Build a lesson set",vocabulary:"Vocabulary",patterns:"Patterns",mixed:"Mixed content",teachingContent:"Teaching content",generate:"Generate editable set",templateLibrary:"Reusable lesson templates",saveTemplate:"Save template",characterActivity:"Character theme activity",resourceTitle:"Resource title",lessonObjective:"Lesson objective",teachingCategory:"Teaching category",teachingNotes:"Teaching notes",saveMaterial:"Save interactive material",coursewareBrand:"Courseware brand",saveBrand:"Save brand settings",resourcesAndClasses:"Resources & classes",recycleBin:"30-day recycle bin",restore:"Restore",draftMode:"Draft mode",templateName:"Template name",noTemplates:"No templates saved yet. Capture a frequently used lesson objective as your first one.",applyTemplate:"Ap
16ply",derivedPacks:"Derived content packs",applyPack:"Apply pack",themeExample:"Theme, e.g. campus",targetCharacters:"Target characters, one per line",generateCharacterActivity:"Generate character activity",coverTitle:"Cover title",coverSubtitle:"Cover subtitle",schoolLogoUrl:"https:// school logo image URL (optional)",jadeTheme:"Jade theme",indigoTheme:"Indigo theme",sunriseTheme:"Sunrise theme",noResources:"No cloud resources yet. Create your first interactive class material on the left.",retainedUntil:"Retained until",noRecoverableResources:"No resources to restore.",questionNumber:"Question {number}",interactiveQuestionType:"Interactive question type",deleteQuestion:"Delete question",questionPrompt:"Question prompt",pinyinOptional:"Pinyin (optional)",teacherNoteOptional:"Teacher note (optional)",addMatching:"+ Matching question",addStroke:"+ Stroke-order question",addOrder:"+ Sentence-order question",addChoice:"General choice",matchingPairs:"Matching pairs (one “left | right” pair per line)",learnerHintOptional:"Learner hint (optional)",targetCharacter:"Target character",strokeSteps:"Stroke steps (one per line)",sentenceTokens:"Sentence tokens (one per line)",speechEditor:"Speech segment editor & preview",speechEditorDescription:"Use one spoken segment per line. Preview a segment or play the sentence continuously.",previewSentence:"Preview sentence",speechSegments:"One pinyin or spoken segment per line",optionsEachLine:"Options, one per line",correctAnswer:"Correct answer (must match one option)",templateDescription:"Save this question set and lesson objective for one-click reuse next time.",derivedPacksDescription:"Quickly derive an introduction, practice, or review version from this question set.",characterActivityDescription:"Generate character recognition and stroke-order activities around a real-life theme.",brandDescription:"Apply one cover, logo, and theme to this teacher’s HTML and PPTX courseware.",resourcesDescription:"Export branded HTML/PPTX, or create a revocable, 14-day read-only courseware link.",recycleBinDescription:"Deleting a resource does not immediately remove completed classes or reports.",segmentLabel:"Segment {number}",strokeQuestionPrompt:"Complete “{character}” in the correct stroke order",resourceSaved:"Interactive class material saved to the cloud.",templateSaved:"Lesson template saved and ready to reuse next time.",brandSaved:"Courseware brand settings saved."};function $(t,c){return(t==="en"?Ge:Fe)[c]}function _e(t,c){return $(t,c==="resource"?"resourceSaved":c==="template"?"templateSaved":"brandSaved")}function q(t,c,r){r(_e(t,c))}const Ve=["book","teacher","school","friend","water","family"];function he(t){return t.split(/\r?\n/).map(c=>c.trim()).filter(Boolean)}function G(t){return Array.from(new Set(t))}function We(t){return he(t).map(c=>c.split(/[,,\t|]/).map(r=>r.trim()).filter(Boolean)).filter(c=>c.length>=2).map(c=>({hanzi:c[0],pinyin:c[1]||"",gloss:c[2]||c[1]}))}function F(t){return t.replace(/^\s*[词句][::]\s*/,"").trim()}function de(t){return/[a-zA-ZüÜāáǎàēéěèīíǐìōóǒòūúǔù]/.test(t)}function Xe(t){const c=t.split(/[,,、\s]+/).map(r=>r.trim()).filter(Boolean);return c.length>1?c:Array.from(c[0]||"").filter(r=>!/[。!?!?]/.test(r))}function le(t,c){const r=G([...c.filter(s=>s!==t),...Ve.filter(s=>s!==t)]).slice(0,3);return G([t,...r]).slice(0,4)}function Je(t){const c=t.join(""),r=[...t.slice(1),t[0]].join(""),s=[...t].reverse().join(""),i=t.length>2?[t[1],t[0],...t.slice(2)].join(""):`${t[1]}${t[0]}`;return G([c,r,s,i]).filter(Boolean).slice(0,4)}function Ye(t){const c=he(t.content),r=c.map(n=>({raw:n,cells:F(n).split(/[,,\t|]/).map(g=>g.trim()).filter(Boolean)})),s=t.mode==="sentences"?[]:t.mode==="mixed"?r.filter(n=>/^\s*词[::]/.test(n.raw)||n.cells.length>=3&&de(n.cells[1]||"")).map(n=>F(n.raw)):c,i=t.mode==="vocabulary"?[]:t.mode==="mixed"?r.filter(n=>/^\s*句[::]/.test(n.raw)||n.cells.length>=2&&!de(n.cells[1]||"")).map(n=>F(n.raw)):c,o=We(s.join(`
17`)),d=i.map(Xe).filter(n=>n.length>=2),f=[],m=[];t.mode!=="sentences"&&o.length===0&&m.push("未识别到有效词表。请按“中文, 拼音, 英文释义”每行一组输入。"),t.mode!=="vocabulary"&&d.length===0&&m.push("未识别到可排序句子。请每行输入一句,并用逗号或空格分隔词元。"),t.mode==="mixed"&&m.push("混合内容建议使用“词:中文, 拼音, 英文”和“句:词元, 词元”的前缀,便于稳定识别。");const T=o.map(n=>n.gloss);return o.forEach(n=>{f.push({questionType:"listening",prompt:`听一听,选择“${n.hanzi}”对应的英文释义。`,pinyin:n.pinyin,options:le(n.gloss,T),config:{},correctAnswer:n.gloss,explanation:`播放“${n.hanzi}”的发音后,请学生选择正确释义。`,points:1})}),o.length>
17=2&&f.push({questionType:"matching",prompt:"把中文词语与对应英文释义配对。",pinyin:"",options:[],config:{pairs:o.map(n=>({left:n.hanzi,right:n.gloss})),hint:"可拖动词卡,也可先点击释义再选择对应词语。"},correctAnswer:"完成配对",explanation:"使用本课词表完成词义匹配。",points:Math.max(2,o.length)}),o.length>=2&&o.forEach(n=>{f.push({questionType:"choice",prompt:`“${n.gloss}”对应哪个中文词语?`,pinyin:"",options:le(n.hanzi,o.map(g=>g.hanzi)),config:{},correctAnswer:n.hanzi,explanation:`复习词义:${n.hanzi} = ${n.gloss}。`,points:1})}),d.forEach(n=>{const g=n.join("");f.push({questionType:"sentence",prompt:"把词语排列成正确的中文句子。",pinyin:"",options:[],config:{tokens:n,hint:"拖动词卡,或使用上下按钮调整语序。"},correctAnswer:g,explanation:`正确语序:${g}`,points:Math.max(1,n.length-1)}),f.push({questionType:"choice",prompt:"以下哪一个是正确的句子语序?",pinyin:"",options:Je(n),config:{},correctAnswer:g,explanation:`正确语序:${g}`,points:1})}),{category:d.length&&!o.length?"sentences":o.length?"words":"voice",description:`由教学内容包快速组卷:${o.length} 个词条、${d.length} 个句型;生成后可继续编辑、导出或开启课堂。`,questions:f,warnings:m}}const _={voice:"语音听力",hanzi:"汉字认读",words:"词语配对",sentences:"å
17¥å­è¯­åº",monopoly:"综合活动"},pe={listening:"听力选择",character:"汉字认读",choice:"通用选择",matching:"拖拽配对",stroke:"笔顺书写",sentence:"句子排序"};function k(t="listening"){const c={questionType:t,prompt:"苹果",pinyin:"píngguǒ",options:["apple","banana","orange"],config:{},correctAnswer:"apple",explanation:"播放或展示词语后,请学生完成对应互动。",points:1};return t==="matching"?{...c,prompt:"请把中文词语与英文释义配对",options:[],config:{pairs:[{left:"苹果",right:"apple"},{left:"香蕉",right:"banana"}],hint:"拖动或点击左右两侧词语完成配对。"},correctAnswer:"完成配对"}:t==="stroke"?{...c,prompt:"请按正确笔顺完成汉字书写",options:[],config:{character:"æ°¸",strokes:["点","横","竖钩","撇","捺"],hint:"按笔画标签的正确顺序点击。"},correctAnswer:"点→横→竖钩→撇→捺"}:t==="sentence"?{...c,prompt:"请把词语排列成正确句子",options:[],config:{tokens:["我","喜欢","苹果"],hint:"拖动词卡改变顺序。"},correctAnswer:"我喜欢苹果"}:c}function A(t){return t.split(`
18`).map(c=>c.trim()).filter(Boolean)}function Ze(t){return t.split(`
19`).map(c=>c.split("|").map(r=>r.trim())).filter(c=>c.length===2&&c[0]&&c[1]).map(([c,r])=>({left:c,right:r}))}function xe(t){if(typeof window>"u"||!t.trim()||!("speechSynthesis"in window))return;window.speechSynthesis.cancel();const c=new SpeechSynthesisUtterance(t);c.lang="zh-CN",window.speechSynthesis.speak(c)}function Ke({question:t,update:c}){const{locale:r}=W(),s=i=>$(r,i);if(t.questionType==="matching")return e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:37",className:"grid gap-3",children:[e.jsxs("label",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:37",className:"grid gap-1 text-xs font-bold text-[#4b766d]",children:[s("matchingPairs"),e.jsx("textarea",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:37",value:(t.config.pairs??[]).map(i=>`${i.left} | ${i.right}`).join(`
20`),onChange:i=>c({config:{...t.config,pairs:Ze(i.target.value)}}),className:"prep-input min-h-28 px-3 py-2 text-sm font-normal"})]}),e.jsx("input",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:37",value:t.config.hint??"",onChange:i=>c({config:{...t.config,hint:i.target.value}}),placeholder:s("learnerHintOptional"),className:"prep-input px-3 py-2 text-sm"})]});if(t.questionType==="stroke")return e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:38",className:"grid gap-3 sm:grid-cols-[.35fr_.65fr]",children:[e.jsxs("label",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:38",className:"grid gap-1 text-xs font-bold text-[#4b766d]",children:[s("targetCharacter"),e.jsx("input",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:38",value:t.config.character??"",onChange:i=>c({prompt:s("strokeQuestionPrompt").replace("{character}",i.target.value),config:{...t.config,character:i.target.value}}),className:"prep-input px-3 py-2 text-lg font-bold"})]}),e.jsxs("label",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:38",className:"grid gap-1 text-xs font-bold text-[#4b766d]",children:[s("strokeSteps"),e.jsx("textarea",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:38",value:(t.config.strokes??[]).join(`
21`),onChange:i=>{const o=A(i.target.value);c({config:{...t.config,strokes:o},correctAnswer:o.join("→")})},className:"prep-input min-h-24 px-3 py-2 text-sm font-normal"})]})]});if(t.questionType==="sentence")return e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:39",className:"grid gap-3",children:[e.jsxs("label",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:39",className:"grid gap-1 text-xs font-bold text-[#4b766d]",children:[s("sentenceTokens"),e.jsx("textarea",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:39",value:(t.config.tokens??[]).join(`
22`),onChange:i=>{const o=A(i.target.value);c({config:{...t.config,tokens:o},correctAnswer:o.join("")})},className:"prep-input min-h-24 px-3 py-2 text-sm font-normal"})]}),e.jsx("input",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:39",value:t.config.hint??"",onChange:i=>c({config:{...t.config,hint:i.target.value}}),placeholder:s("learnerHintOptional"),className:"prep-input px-3 py-2 text-sm"})]});if(t.questionType==="listening"){const i=t.config.speechSegments??A(t.pinyin.replaceAll(" ",`
23`));return e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:40",className:"grid gap-3",children:[e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:40",className:"rounded-xl border border-[#cce5da] bg-[#f4faf6] p-3",children:[e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:40",className:"flex flex-wrap items-center justify-between gap-2",children:[e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:40",children:[e.jsx("strong",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:40",className:"text-sm",children:s("speechEditor")}),e.jsx("p",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:40",className:"mt-1 text-xs text-[#708781]",children:s("speechEditorDescription")})]}),e.jsxs("button",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:40",type:"button",onClick:()=>xe(i.join(" ")||t.prompt),className:"prep-outline px-3 py-2 text-xs",children:[e.jsx(oe,{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:40",size:14}),s("previewSentence")]})]}),e.jsx("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:40",className:"mt-3 flex flex-wrap gap-2",children:i.map((o,d)=>e.jsxs("button",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:40",type:"button",onClick:()=>xe(o),className:"rounded-full bg-white px-3 py-1.5 text-xs font-bold text-[#397a70] ring-1 ring-[#b8d8ce]",children:[o||s("segmentLabel").replace("{number}",String(d+1))," ",e.jsx(oe,{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:40",className:"ml-1 inline",size:12})]},`${o}-${d}`))}),e.jsx("textarea",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:40",value:i.join(`
24`),onChange:o=>{const d=A(o.target.value);c({pinyin:d.join(" "),config:{...t.config,speechSegments:d}})},placeholder:s("speechSegments"),className:"prep-input mt-3 min-h-20 px-3 py-2 text-sm font-normal"})]}),e.jsx("textarea",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:40",value:t.options.join(`
25`),onChange:o=>c({options:A(o.target.value)}),placeholder:s("optionsEachLine"),className:"prep-input min-h-24 px-3 py-2 text-sm"}),e.jsx("input",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:40",value:t.correctAnswer,onChange:o=>c({correctAnswer:o.target.value}
25),placeholder:s("correctAnswer"),className:"prep-input px-3 py-2 text-sm"})]})}return e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:41",className:"grid gap-3",children:[e.jsx("textarea",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:41",value:t.options.join(`
26`),onChange:i=>c({options:A(i.target.value)}),placeholder:s("optionsEachLine"),className:"prep-input min-h-24 px-3 py-2 text-sm"}),e.jsx("input",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:41",value:t.correctAnswer,onChange:i=>c({correctAnswer:i.target.value}),placeholder:s("correctAnswer"),className:"prep-input px-3 py-2 text-sm"})]})}function et({resource:t,busy:c,onRoom:r,onRemove:s}){const{locale:i,formatDate:o}=W(),d=i==="en",f=v=>$(i,v),m=l.useUtils(),[T,y]=x.useState(""),n=l.presentation.shareList.useQuery({resourceId:t.id}),g=l.presentation.exportBundle.useMutation({onSuccess:v=>window.open(v.url,"_blank","noopener,noreferrer")}),N=l.presentation.exportPptx.useMutation({onSuccess:v=>window.open(v.url,"_blank","noopener,noreferrer")}),P=l.presentation.shareCreate.useMutation({onSuccess:v=>{const C=`${window.location.origin}${v.sharePath}`;y(C),navigator.clipboard?.writeText(C),m.presentation.shareList.invalidate({resourceId:t.id})}}),j=l.presentation.shareRevoke.useMutation({onSuccess:()=>m.presentation.shareList.invalidate({resourceId:t.id})}),b=n.data?.find(v=>!v.revokedAt&&(!v.expiresAt||v.expiresAt>Date.now())),h=c||g.isPending||N.isPending||P.isPending||j.isPending;return e.jsxs("article",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:54",className:"prep-surface rounded-2xl p-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:54",className:"flex justify-between gap-3",children:[e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:54",children:[e.jsx("h3",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:54",className:"font-bold",children:t.title}),e.jsxs("p",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:54",className:"prep-copy mt-1 text-xs",children:[d?{voice:"Listening",hanzi:"Characters",words:"Word matching",sentences:"Sentence order",monopoly:"Integrated activity"}[t.category]:_[t.category]," · ",t.questionCount," ",d?"questions":"题"," · ",o(t.updatedAt)]}),t.lessonObjective&&e.jsxs("p",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:54",className:"mt-2 text-xs font-semibold text-[#397a70]",children:[f("lessonObjective"),":",t.lessonObjective]})]}),e.jsx("span",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:54",className:"prep-chip",children:d?"Cloud":"云端"})]}),e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:54",className:"mt-4 flex flex-wrap gap-2",children:[e.jsx("button",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:54",disabled:h,onClick:r,className:"prep-action px-3 py-2 text-xs",children:d?"Start class":"开启课堂"}),e.jsxs("button",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:54",disabled:h,onClick:()=>g.mutate({resourceId:t.id,lessonObjective:t.lessonObjective}),className:"prep-outline px-3 py-2 text-xs",children:[e.jsx(Pe,{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:54",size:14}),d?"Courseware":"课件包"]}),e.jsxs("button",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:54",disabled:h,onClick:()=>N.mutate({resourceId:t.id,lessonObjective:t.lessonObjective}),className:"prep-outline px-3 py-2 text-xs",children:[e.jsx(Le,{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:54",size:14}),"PPTX"]}),e.jsxs("button",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:54",disabled:h,onClick:()=>P.mutate({resourceId:t.id,expiresInDays:14}),className:"prep-outline px-3 py-2 text-xs",children:[e.jsx(Ue,{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:54",size:14}),d?"Create share":"创建分享"]}),e.jsx("button",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:54",disabled:h,onClick:s,className:"rounded-lg px-2 py-2 text-xs text-[var(--prep-danger)]",children:d?"Delete":"删除"})]}),b&&e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:54",className:"mt-3 flex flex-wrap items-center gap-2 rounded-lg bg-[#edf8f3] px-3 py-2 text-xs",children:[e.jsx("a",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:54",href:`/share/${b.token}`,target:"_blank",rel:"noreferrer",className:"font-bold text-[#397c70] underline",children:d?"Read-only courseware":"只读分享链接"}),e.jsx("button",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:54",onClick:()=>j.mutate({shareId:b.id}),className:"text-[var(--prep-danger)]",children:d?"Revoke":"撤销"})]}),T&&e.jsxs("p",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:54",className:"mt-2 break-all text-xs text-[#397a70]",children:[d?"Copied: ":"已复制:",T]}),t.exportUrl&&e.jsx("a",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:54",className:"mt-3 block text-xs font-bold text-[#397c70] underline",href:t.exportUrl,target:"_blank",rel:"noreferrer",children:d?"Open latest courseware":"查看上次课件包"})]})}function dt(){const{locale:t,formatDate:c}=W(),r=t==="en",s=a=>$(t,a),i=a=>r?{voice:"Listening",hanzi:"Characters",words:"Word matching",sentences:"Sentence order",monopoly:"Integrated activity"}[a]:_[a],o=a=>r?{listening:"Listening choice",character:"Character recognition",choice:"General choice",matching:"Drag-to-match",stroke:"Stroke order",sentence:"Sentence order"}[a]:pe[a],d=l.useUtils(),[,f]=Ce(),[m,T]=x.useState("我的新课堂练习"),[y,n]=x.useState("为国际中文课堂准备的互动练习。"),[g,N]=x.useState("能够识别并使用本课核心词语或句型。"),[P,j]=x.useState("voice"),[b,h]=x.useState([k()]),[v,C]=x.useState(""),[w,B]=x.useState("vocabulary"),[X,ue]=x.useState(`苹果, píngguǒ, apple
27香蕉, xiāngjiāo, banana
28学校, xuéxiào, school`),[J,ge]=x.useState([]),[Y,me]=x.useState("我的组卷模板"),[S,L]=x.useState({coverTitle:"Yuzhi Studio / 语织教学工作室",coverSubt
28itle:"国际中文教师的互动课堂课件",logoUrl:"",theme:"jade"}),[O,ve]=x.useState("校园"),[Z,Se]=x.useState(`学
29æ ¡
30书`),R=l.resource.list.useQuery(),I=l.resource.trash.useQuery(),K=l.presentation.templates.useQuery(),E=l.presentation.brandGet.useQuery();x.useEffect(()=>{E.data&&L({...E.data,logoUrl:E.data.logoUrl??""})},[E.data]);const M=l.resource.create.useMutation({onSuccess:()=>{q(t,"resource",C),d.resource.list.invalidate()}}),ee=l.resource.remove.useMutation({onSuccess:()=>{d.resource.list.invalidate(),d.resource.trash.invalidate()}}),te=l.resource.restore.useMutation({onSuccess:()=>{d.resource.list.invalidate(),d.resource.trash.invalidate()}}),ae=l.room.create.useMutation({onSuccess:({roomId:a})=>f(`/rooms/${a}`)}),se=l.presentation.templateSave.useMutation({onSuccess:()=>{q(t,"template",C),d.presentation.templates.invalidate()}}),be=l.presentation.templateRemove.useMutation({onSuccess:()=>d.presentation.templates.invalidate()}),ce=l.presentation.brandSave.useMutation({onSuccess:()=>{q(t,"brand",C),d.presentation.brandGet.invalidate()}}),z=M.isPending||ee.isPending||te.isPending||ae.isPending||se.isPending||ce.isPending,fe=x.useMemo(()=>b.length,[b]),D=(a,u)=>h(p=>p.map((U,Q)=>Q===a?{...U,...u}:U)),ne={title:m,description:y,category:P,questions:b},Te=x.useMemo(()=>De({title:m,description:y,questions:b}),[m,y,b]),ye=()=>M.mutate({...ne,lessonObjective:g}),je=()=>{const a=Ye({mode:w,content:X});ge(a.warnings),a.questions.length&&(h(a.questions),j(a.category),n(a.description),m==="我的新课堂练习"&&T(w==="sentences"?"句型互动练习":w==="mixed"?"综合课堂练习":"词汇互动练习"))},Ae=a=>{const u=qe(a.draft,a.lessonObjective);T(u.title),n(u.description),j(u.category),h(u.questions),N(u.lessonObjective)},Ne=()=>{const a=Re({theme:O,characters:A(Z)});a.questions.length&&(T(a.title),n(a.description),j(a.category),h(a.questions),N(r?`Recognise, distinguish, and write target characters in “${O||"this lesson theme"}”.`:`能够在“${O||"本课主题"}”中认读、辨析并书写目标汉字。`))};return e.jsx(Me,{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:74",children:e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:74",className:"prep-page mx-auto max-w-6xl space-y-7 py-5",children:[e.jsxs("header",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:74",className:"prep-surface p-7",children:[e.jsxs("p",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:74",className:"prep-kicker",children:["CONTENT STUDIO · ",r?"CREATE · ACTIVATE · REFLECT":"内容工作室"]}),e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:74",className:"mt-2 flex flex-wrap items-end justify-between gap-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:74",children:[e.jsx("h1",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:74",className:"prep-title",children:r?"Turn teaching content into a live learning experience":"把内容变成可带进课堂的体验"}),e.jsx("p",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:74",className:"prep-copy mt-2 max-w-2xl text-sm",children:r?"Start with a template and shape one idea into live activities, branded courseware, and a reusable next teaching move.":"从模板开始,将一份内容组织为互动活动、品牌化课件与可复用的教学下一步。"})]}),e.jsxs("span",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:74",className:"prep-chip",children:[R.data?.length??0," ",r?"resources":"份内容"]})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:75",className:"grid gap-6 lg:grid-cols-[1.12fr_.88fr]",children:[e.jsxs("section",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:75",className:"prep-surface p-6",children:[e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:75",className:"flex items-center gap-2",children:[e.jsx(Ie,{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:75",className:"text-[#397c70]",size:21}),e.jsx("h2",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:75",className:"text-xl font-bold",children:s("newMaterial")})]}),e.jsxs("section",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:75",className:"mt-5 rounded-2xl border border-[#cce5da] bg-[linear-gradient(135deg,#f1faf5,#fbfdfb)] p-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:75",className:"flex flex-wrap items-start justify-between gap-3",children:[e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:75",children:[e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:75",className:"flex items-center gap-2",children:[e.jsx(Qe,{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:75",size:17,className:"text-[#397a70]"}),e.jsx("h3",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:75",className:"font-bold",children:s("autoAssemble")})]}),e.jsx("p",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:75",className:"prep-copy mt-1 text-xs",children:r?"Paste vocabulary or patterns to generate an editable interactive question set.":"粘贴词表或句型,自动生成可继续编辑的互动题组。"})]}),e.jsxs("span",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:75",className:"prep-chip",children:[e.jsx(we,{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:75",size:13}),s("draftMode")]})]}),e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:75",className:"mt-4 flex flex-wrap gap-2",children:[e.jsx("button",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:75",type:"button",onClick:()=>B("vocabulary"),className:`rounded-full px-3 py-1.5 text-xs font-bold ${w==="vocabulary"?"bg-[#397a70] text-white":"bg-white text-[#397a70] ring-1 ring-[#b8d8ce]"}`,children:s("vocabulary")}
30),e.jsx("button",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:75",type:"button",onClick:()=>B("sentences"),className:`rounded-full px-3 py-1.5 text-xs font-bold ${w==="sentences"?"bg-[#397a70] text-white":"bg-white text-[#397a70] ring-1 ring-[#b8d8ce]"}`,children:s("patterns")}),e.jsx("button",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:75",type:"button",onClick:()=>B("mixed"),className:`rounded-full px-3 py-1.5 text-xs font-bold ${w==="mixed"?"bg-[#397a70] text-white":"bg-white text-[#397a70] ring-1 ring-[#b8d8ce]"}`,children:s("mixed")})]}),e.jsxs("label",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:75",className:"mt-3 grid gap-1 text-xs font-bold text-[#4b766d]",children:[s("teachingContent"),e.jsx("textarea",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:75",value:X,onChange:a=>ue(a.target.value),className:"prep-input min-h-28 px-3 py-2 font-normal"})]}),e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:75",className:"mt-3 flex flex-wrap items-center gap-3",children:[e.jsxs("button",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:75",type:"button",onClick:je,className:"prep-action px-3 py-2 text-xs",children:[e.jsx(H,{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:75",size:14}),s("generate")]}),e.jsx("span",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:75",className:"text-xs text-[#708781]",children:r?"Vocabulary generates listening, matching, and choice; patterns generate ordering and choice.":"词表生成听力、配对、选择;句型生成排序、选择。"})]}),J.length>0&&e.jsx("p",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:75",className:"mt-3 rounded-lg bg-[#fff4df] px-3 py-2 text-xs text-[#93681d]",children:J.join(" ")})]}),e.jsxs("section",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:76",className:"mt-5 rounded-2xl border border-[#d7e7df] bg-white p-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:76",className:"flex items-center justify-between gap-3",children:[e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:76",children:[e.jsx("h3",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:76",className:"font-bold",children:s("templateLibrary")}),e.jsx("p",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:76",className:"prep-copy text-xs",children:s("templateDescription")})]}),e.jsx(Ee,{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:76",size:18,className:"text-[#397a70]"})]}),e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:76",className:"mt-3 flex gap-2",children:[e.jsx("input",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:76",value:Y,onChange:a=>me(a.target.value),className:"prep-input min-w-0 flex-1 px-3 py-2 text-sm",placeholder:s("templateName")}),e.jsx("button",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:76",disabled:z,onClick:()=>se.mutate({name:Y,lessonObjective:g,draft:ne}),className:"prep-outline px-3 py-2 text-xs",children:s("saveTemplate")})]}),K.data?.length?e.jsx("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:76",className:"mt-3 flex flex-wrap gap-2",children:K.data.map(a=>e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:76",className:"inline-flex overflow-hidden rounded-full border border-[#cce1d7] bg-[#f8fcfa] text-xs",children:[e.jsxs("button",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:76",onClick:()=>Ae(a),className:"px-3 py-1.5 font-bold text-[#397a70]",children:[s("applyTemplate")," ",a.name]}),e.jsx("button",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:76",onClick:()=>be.mutate({templateId:a.id}),className:"border-l border-[#cce1d7] px-2 text-[var(--prep-danger)]","aria-label":`${r?"Delete template":"删除模板"} ${a.name}`,children:e.jsx(re,{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:76",size:13})})]},a.id))}):e.jsx("p",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:76",className:"mt-3 text-xs text-[#758c85]",children:s("noTemplates")}),e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:76",className:"mt-4 border-t border-[#e5efea] pt-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:76",className:"flex items-center justify-between gap-3",children:[e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:76",children:[e.jsx("h4",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:76",className:"text-sm font-bold",children:s("derivedPacks")}),e.jsx("p",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:76",className:"prep-copy mt-1 text-xs",children:s("derivedPacksDescription")})]}),e.jsx($e,{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:76",size:16,className:"text-[#397a70]"})]}),e.jsx("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:76",className:"mt-3 grid gap-2 sm:grid-cols-3",children:Te.map(a=>e.jsxs("button",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:76",type:"button",onClick:()=>{T(a.title),n(a.description),h(a.questions)},className:"rounded-xl border border-[#cce1d7] bg-[#f8fcfa] p-3 text-left transition hover:border-[#78ad9e]",children:[e.jsx("strong",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:76",className:"block text-xs text-[#397a70]",children:a.name}),e.jsxs("span",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:76",className:"mt-1 block text-[11px] text-[#718782]",children:[a.questions.length," ",r?"questions":"题"," · ",s("applyPack")]})]},a.name))})]})]}),e.jsxs("section",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:77",className:"mt-5 rounded-2xl border border-[#dfd9f1] bg-[#faf9ff] p-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:77",className:"flex items-center gap-2",children:[e.jsx(H,{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:77",size:17,className:"text-[#6b55b5]"}),e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:77",children:[e.jsx("h3",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:77",className:"font-bold",children:s("characterActivity")}),e.jsx("p",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:77",className:"prep-copy text-xs",children:s("characterActivityDescription")})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:77",className:"mt-3 grid gap-3 sm:grid-cols-[.42fr_.58fr]",children:[e.jsx("input",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:77",value:O,onChange:a=>ve(a.target.value),className:"prep-input px-3 py-2 text-sm",placeholder:s("themeExample")}),e.jsx("textarea",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:77",value:Z,onChange:a=>Se(a.target.value),className:"prep-input min-h-20 px-3 py-2 text-sm",placeholder:s("targetCharacters")})]}),e.jsx("button",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:77",type:"button",onClick:Ne,className:"mt-3 rounded-lg bg-[#6b55b5] px-3 py-2 text-xs font-bold text-white",children:s("generateCharacterActivity")})]}),e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:78",className:"mt-5 grid gap-4",children:[e.jsxs("label",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:78",className:"grid gap-1.5 text-sm font-bold",children:[s("resourceTitle"),e.jsx("input",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:78",value:m,onChange:a=>T(a.target.value),className:"prep-input px-3 py-2.5 font-normal"})]}),e.jsxs("label",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:78",className:"grid gap-1.5 text-sm font-bold",children:[s("lessonObjective"),e.jsx("input",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:78",value:g,onChange:a=>N(a.target.value),className:"prep-input px-3 py-2.5 font-normal",placeholder:r?"For example: Introduce a campus with three target words":"例如:能够用三个词语介绍校园"})]}),e.jsxs("label",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:78",className:"grid gap-1.5 text-sm font-bold",children:[s("teachingCategory"),e.jsx("select",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:78",value:P,onChange:a=>j(a.target.value),className:"prep-input bg-white px-3 py-2.5 font-normal",children:Object.keys(_).map(a=>e.jsx("option",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:78",value:a,children:i(a)},a))})]}),e.jsxs("label",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:78",className:"grid gap-1.5 text-sm font-bold",children:[s("teachingNotes"),e.jsx("textarea",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:78",value:y,onChange:a=>n(a.target.value),className:"prep-input min-h-20 px-3 py-2.5 font-normal"})]})]}),e.jsx("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:79",className:"mt-6 space-y-4",children:b.map((a,u)=>e.jsxs("article",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:79",className:"rounded-2xl border border-[#dcebe4] bg-[#f9fdfb] p-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:79",className:"flex flex-wrap items-center justify-between gap-3",children:[e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:79",className:"flex items-center gap-2",children:[e.jsx(Oe,{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:79",size:16,className:"text-[#9ab8af]"}),e.jsx("h3",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:79",className:"font-bold",children:s("questionNumber").replace("{number}",String(u+1))}),e.jsx("span",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:79",className:"rounded-full bg-[#e5f4ed] px-2 py-1 text-xs font-bold text-[#397a70]",children:o(a.questionType)})]}),b.length>1&&e.jsx("button",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:79",onClick:()=>h(p=>p.filter((U,Q)=>Q!==u)),className:"text-[#b76055]","aria-label":s("deleteQuestion"),children:e.jsx(re,{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:79",size:16})})]}),e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:79",className:"mt-3 grid gap-3",children:[e.jsxs("label",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:79",className:"grid gap-1 text-xs font-bold text-[#4b766d]",children:[s("interactiveQuestionType"),e.jsx("select",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:79",value:a.questionType,onCh
30ange:p=>D(u,k(p.target.value)),className:"prep-input bg-white px-3 py-2 text-sm font-normal",children:Object.keys(pe).map(p=>e.jsx("option",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:79",value:p,children:o(p)},p))})]}),e.jsx("input",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:79",value:a.prompt,onChange:p=>D(u,{prompt:p.target.value}),placeholder:s("questionPrompt"),className:"prep-input px-3 py-2 text-sm"}),!["matching","stroke","sentence"].includes(a.questionType)&&e.jsx("input",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:79",value:a.pinyin,onChange:p=>D(u,{pinyin:p.target.value}),placeholder:s("pinyinOptional"),className:"prep-input px-3 py-2 text-sm"}),e.jsx(Ke,{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:79",question:a,update:p=>D(u,p)}),e.jsx("input",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:79",value:a.explanation,onChange:p=>D(u,{explanation:p.target.value}),placeholder:s("teacherNoteOptional"),className:"prep-input px-3 py-2 text-sm"})]})]},u))}),e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:79",className:"mt-4 flex flex-wrap gap-2",children:[e.jsx("button",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:79",onClick:()=>h(a=>[...a,k("matching")]),className:"prep-outline px-3 py-2 text-xs",children:s("addMatching")}),e.jsx("button",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:79",onClick:()=>h(a=>[...a,k("stroke")]),className:"prep-outline px-3 py-2 text-xs",children:s("addStroke")}),e.jsx("button",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:79",onClick:()=>h(a=>[...a,k("sentence")]),className:"prep-outline px-3 py-2 text-xs",children:s("addOrder")}),e.jsxs("button",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:79",onClick:()=>h(a=>[...a,k("choice")]),className:"prep-outline px-3 py-2 text-xs",children:[e.jsx(Be,{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:79",size:14}),s("addChoice")]})]}),e.jsxs("button",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:79",disabled:z||!m.trim()||!fe,onClick:ye,className:"prep-action mt-5 flex w-full px-4 py-3",children:[M.isPending?e.jsx(ie,{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:79",className:"animate-spin",size:17}):e.jsx(H,{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:79",size:17}),s("saveMaterial")]}),e.jsx(He,{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:79",message:v}),M.error&&e.jsx("p",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:79",className:"mt-3 text-sm text-red-600",children:M.error.message})]}),e.jsxs("aside",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",className:"space-y-6",children:[e.jsxs("section",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",className:"prep-surface-muted p-6",children:[e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",className:"flex items-center gap-2",children:[e.jsx(ze,{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",size:19,className:"text-[#397a70]"}),e.jsx("h2",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",className:"text-xl font-bold",children:s("coursewareBrand")})]}),e.jsx("p",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",className:"prep-copy mt-1 text-sm",children:s("brandDescription")}),e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",className:"mt-4 grid gap-3",children:[e.jsx("input",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",value:S.coverTitle,onChange:a=>L({...S,coverTitle:a.target.value}),className:"prep-input px-3 py-2 text-sm",placeholder:s("coverTitle")}),e.jsx("input",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",value:S.coverSubtitle,onChange:a=>L({...S,coverSubtitle:a.target.value}),className:"prep-input px-3 py-2 text-sm",placeholder:s("coverSubtitle")}),e.jsx("input",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",value:S.logoUrl,onChange:a=>L({...S,logoUrl:a.target.value}),className:"prep-input px-3 py-2 text-sm",placeholder:s("schoolLogoUrl")}),e.jsxs("select",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",value:S.theme,onChange:a=>L({...S,theme:a.target.value}),className:"prep-input bg-white px-3 py-2 text-sm",children:[e.jsx("option",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",value:"jade",children:s("jadeTheme")}),e.jsx("option",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",value:"indigo",children:s("indigoTheme")}),e.jsx("option",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",value:"sunrise",children:s("sunriseTheme")})]}),e.jsx("button",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",disabled:z||!S.coverTitle.trim()||!S.coverSubt
30itle.trim(),onClick:()=>ce.mutate({...S,logoUrl:S.logoUrl.trim()||null}),className:"prep-action px-3 py-2 text-xs",children:s("saveBrand")})]})]}),e.jsxs("section",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",className:"prep-surface-muted p-6",children:[e.jsx("h2",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",className:"text-xl font-bold",children:s("resourcesAndClasses")}),e.jsx("p",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",className:"prep-copy mt-1 text-sm",children:s("resourcesDescription")}),e.jsx("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",className:"mt-5 space-y-3",children:R.isLoading?e.jsx("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",className:"flex justify-center p-10",children:e.jsx(ie,{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",className:"animate-spin"})}):R.data?.length?R.data.map(a=>e.jsx(et,{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",resource:a,busy:z,onRoom:()=>ae.mutate({resourceId:a.id}),onRemove:()=>ee.mutate({resourceId:a.id})},a.id)):e.jsx("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",className:"rounded-2xl border border-dashed border-[#bddacf] p-7 text-center text-sm text-[#718782]",children:s("noResources")})})]}),e.jsxs("section",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",className:"prep-surface-muted p-5",children:[e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",className:"flex items-center justify-between gap-3",children:[e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",children:[e.jsx("h2",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",className:"font-bold",children:s("recycleBin")}),e.jsx("p",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",className:"prep-copy mt-1 text-xs",children:s("recycleBinDescription")})]}),e.jsx("span",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",className:"prep-chip",children:I.data?.length??0})]}),I.data?.length?e.jsx("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",className:"mt-3 space-y-2",children:I.data.map(a=>e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",className:"flex items-center justify-between gap-3 rounded-xl border border-dashed border-[#c9dfd5] bg-white px-3 py-2",children:[e.jsxs("div",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",className:"min-w-0",children:[e.jsx("p",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",className:"truncate text-sm font-bold",children:a.title}),e.jsxs("p",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",className:"text-[11px] text-[#718782]",children:[s("retainedUntil")," ",a.purgeAfter?c(a.purgeAfter):"--"]})]}),e.jsxs("button",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",disabled:z,onClick:()=>te.mutate({resourceId:a.id}),className:"prep-outline shrink-0 px-2 py-1.5 text-xs",children:[e.jsx(ke,{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",size:13}),s("restore")]})]},a.id))}):e.jsx("p",{"data-loc":"client/src/pages/TeacherStudioAdvanced.tsx:80",className:"mt-3 text-xs text-[#718782]",children:s("noRecoverableResources")})]})]})]})]})})}export{dt 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.