ima2-gen 3.12.3 → 3.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -3
- package/bin/commands/prompt-sub/build.js +5 -1
- package/config.js +14 -0
- package/docs/API.md +21 -0
- package/docs/CLI.md +7 -0
- package/docs/PROMPT_STUDIO.md +9 -0
- package/docs/migration/runtime-test-inventory.md +4 -1
- package/lib/configFileStore.js +44 -0
- package/lib/configKeys.js +4 -0
- package/lib/promptBuilder/client.js +106 -64
- package/lib/promptBuilder/constants.js +20 -2
- package/lib/promptBuilder/requestSchema.js +42 -7
- package/lib/promptBuilder/router.js +70 -0
- package/lib/promptBuilder/transport.js +5 -4
- package/package.json +2 -2
- package/routes/keys.js +6 -32
- package/routes/promptBuilder.js +68 -14
- package/skills/ima2/SKILL.md +40 -3
- package/skills/ima2-front/SKILL.md +1 -1
- package/skills/ima2-front/references/asset-requirements.md +16 -0
- package/ui/dist/.vite/manifest.json +44 -35
- package/ui/dist/assets/{AgentWorkspace-AJkVTaU5.js → AgentWorkspace-CBwn1WUC.js} +1 -1
- package/ui/dist/assets/AssetGenWorkspace-CleWSwPz.js +2 -0
- package/ui/dist/assets/AssetsWorkspace-DdjXb45L.js +1 -0
- package/ui/dist/assets/{CardNewsWorkspace-C_Eb2g7d.js → CardNewsWorkspace-BaNpBvJw.js} +1 -1
- package/ui/dist/assets/{GenerationRequestLogPanel-giH1e4hp.js → GenerationRequestLogPanel-Cd2ArsWr.js} +1 -1
- package/ui/dist/assets/HomeWorkspace-nKDhivwR.js +1 -0
- package/ui/dist/assets/KeyingPanel-DT8zsqpi.js +1 -0
- package/ui/dist/assets/{NodeCanvas-CF_NHudI.js → NodeCanvas-DcKs0w36.js} +1 -1
- package/ui/dist/assets/PromptBuilderPanel-e6BSRAdj.js +2 -0
- package/ui/dist/assets/{PromptImportDialog-B40X9UAa.js → PromptImportDialog-CLkjHz7L.js} +2 -2
- package/ui/dist/assets/{PromptImportDiscoverySection-BWoUDHj1.js → PromptImportDiscoverySection-DoQw4zcd.js} +1 -1
- package/ui/dist/assets/{PromptImportFolderSection-DBSEyJb-.js → PromptImportFolderSection-CcLiliAZ.js} +1 -1
- package/ui/dist/assets/{PromptLibraryPanel-DLywJBpt.js → PromptLibraryPanel-BjxzL7t5.js} +2 -2
- package/ui/dist/assets/SettingsWorkspace-Ctu_usKk.js +1 -0
- package/ui/dist/assets/SpriteRecipeWorkspace-DZjsabce.js +1 -0
- package/ui/dist/assets/index-0fpfY8vu.css +1 -0
- package/ui/dist/assets/index-DueH_AmZ.js +30 -0
- package/ui/dist/assets/index-ICf98ZcU.js +5 -0
- package/ui/dist/assets/{pptxgen.es-CSd_gCsx.js → pptxgen.es-C--aL3JM.js} +1 -1
- package/ui/dist/assets/promptBuilderStore-CkwnWMbR.js +1 -0
- package/ui/dist/assets/useAgentDialogFocus-DPB8JITN.js +1 -0
- package/ui/dist/index.html +2 -2
- package/ui/dist/assets/AssetGenWorkspace-Cguej69V.js +0 -2
- package/ui/dist/assets/AssetsWorkspace-DIQ9wBuD.js +0 -1
- package/ui/dist/assets/HomeWorkspace-DHmXGtqC.js +0 -1
- package/ui/dist/assets/PromptBuilderPanel-D7NJto-1.js +0 -2
- package/ui/dist/assets/SettingsWorkspace-BawWId1t.js +0 -1
- package/ui/dist/assets/SpriteRecipeWorkspace-Biy2yRAk.js +0 -1
- package/ui/dist/assets/VectorizePanel-DdlVvwV1.js +0 -1
- package/ui/dist/assets/index-D05Ong5g.js +0 -5
- package/ui/dist/assets/index-DGRIdnsL.css +0 -1
- package/ui/dist/assets/index-Sch70vBs.js +0 -30
- package/ui/dist/assets/useAgentDialogFocus-DcWwFfYd.js +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PromptImportDiscoverySection-
|
|
2
|
-
import{u as O,j as e,b as ne,a as o,p as ce,aR as M,aS as Q,aT as pe,aU as de,aV as me,ah as J}from"./index-Sch70vBs.js";function ue(i){const t=i.source;if(!t)return"";if(t.owner&&t.repo){const h=t.ref?`@${t.ref}`:"",s=t.path?`:${t.path}`:"";return`${t.owner}/${t.repo}${h}${s}`}return t.filename??t.sourceId??t.kind??""}function he(i,t){const h=i.tags.find(s=>s.toLowerCase().startsWith(t));return h?h.slice(t.length):null}function be(i){return i.tags.includes("attribution-required")||i.warnings?.some(t=>t.toLowerCase().includes("attribution"))===!0}function ge({candidate:i,selected:t,disabled:h=!1,onToggleSelected:s,onImportOne:g}){const{t:c}=O();if(!i)return e.jsx("aside",{className:"prompt-import-dialog__candidate-preview","aria-label":c("promptLibrary.previewPrompt"),children:e.jsx("div",{className:"prompt-import-dialog__empty",children:c("promptLibrary.importPreviewEmpty")})});const x=ue(i),b=he(i,"license:"),v=be(i);return e.jsxs("aside",{className:"prompt-import-dialog__candidate-preview","aria-label":c("promptLibrary.previewPrompt"),children:[e.jsxs("div",{className:"prompt-import-dialog__preview-header",children:[e.jsxs("div",{children:[e.jsx("span",{children:c("promptLibrary.previewPrompt")}),e.jsx("h4",{children:i.name})]}),e.jsx("button",{type:"button",onClick:()=>g(i),disabled:h,children:c("promptLibrary.importThisPrompt")})]}),e.jsxs("label",{className:"prompt-import-dialog__preview-select",children:[e.jsx("input",{type:"checkbox",checked:t,disabled:h,onChange:l=>s(i.id,l.target.checked)}),e.jsx("span",{children:c(t?"promptLibrary.selectedPrompt":"promptLibrary.selectPrompt")})]}),e.jsxs("div",{className:"prompt-import-dialog__preview-field",children:[e.jsx("strong",{children:c("promptLibrary.promptText")}),e.jsx("p",{children:i.text})]}),i.tags.length>0?e.jsxs("div",{className:"prompt-import-dialog__preview-field",children:[e.jsx("strong",{children:c("promptLibrary.tags")}),e.jsx("div",{className:"prompt-import-dialog__preview-chips",children:i.tags.map(l=>e.jsx("em",{children:l},l))})]}):null,i.warnings?.length?e.jsxs("div",{className:"prompt-import-dialog__preview-field",children:[e.jsx("strong",{children:c("promptLibrary.compatibilityWarnings")}),e.jsx("div",{className:"prompt-import-dialog__preview-chips",children:i.warnings.map(l=>e.jsx("b",{children:l},l))})]}):null,x||b||v?e.jsxs("div",{className:"prompt-import-dialog__preview-field",children:[e.jsx("strong",{children:c("promptLibrary.sourceDetails")}),x?e.jsx("small",{children:x}):null,b?e.jsxs("small",{children:[c("promptLibrary.license"),": ",b]}):null,v?e.jsx("small",{children:c("promptLibrary.attributionRequired")}):null]}):null]})}function xe(i){const t=i.source;if(!t)return"";if(t.owner&&t.repo){const h=t.path?` · ${t.path}`:"";return`github · ${t.owner}/${t.repo}${h}`}return t.filename?t.filename:t.sourceId?t.sourceId:t.kind??""}function ye(i){const t=i.replace(/\s+/g," ").trim();return t.length>220?`${t.slice(0,220)}...`:t}function fe({candidates:i,selectedIds:t,activeCandidateId:h,busy:s=!1,onSelectCandidate:g,onToggleSelected:c,onSelectAll:x,onClearSelection:b,onImportOne:v}){const{t:l}=O();if(i.length===0)return e.jsx("section",{className:"prompt-import-dialog__results","aria-label":l("promptLibrary.searchResults"),children:e.jsx("div",{className:"prompt-import-dialog__empty",children:l("promptLibrary.importPreviewEmpty")})});const F=i.every(n=>t.has(n.id));return e.jsxs("section",{className:"prompt-import-dialog__results","aria-label":l("promptLibrary.searchResults"),children:[e.jsxs("header",{className:"prompt-import-dialog__results-header",children:[e.jsx("strong",{children:l("promptLibrary.searchResultsHeader",{count:i.length})}),e.jsxs("div",{className:"prompt-import-dialog__results-header-actions",children:[e.jsx("button",{type:"button",onClick:x,disabled:F,children:l("promptLibrary.selectAllCandidates")}),e.jsx("button",{type:"button",onClick:b,disabled:t.size===0,children:l("promptLibrary.clearCandidateSelection")})]})]}),i.map(n=>{const y=t.has(n.id),j=h===n.id,L=xe(n);return e.jsxs("article",{className:`prompt-import-dialog__result-card${j?" active":""}`,children:[e.jsxs("button",{type:"button",className:"prompt-import-dialog__result-main",onClick:()=>g(n),children:[e.jsx("strong",{children:n.name}),e.jsx("span",{children:ye(n.text)}),L?e.jsx("small",{children:L}):null]}),e.jsxs("div",{className:"prompt-import-dialog__result-meta",children:[n.warnings?.slice(0,2).map(m=>e.jsx("b",{className:"prompt-import-dialog__hint-chip",children:m},m)),n.tags.slice(0,4).map(m=>e.jsx("em",{children:m},m))]}),e.jsxs("div",{className:"prompt-import-dialog__result-actions",children:[e.jsxs("label",{children:[e.jsx("input",{type:"checkbox",checked:y,onChange:m=>c(n.id,m.target.checked)}),e.jsx("span",{children:l(y?"promptLibrary.selectedPrompt":"promptLibrary.selectPrompt")})]}),e.jsx("button",{type:"button",onClick:()=>g(n),children:l("promptLibrary.previewPrompt")}),e.jsx("button",{type:"button",onClick:()=>v(n),disabled:s,children:l("promptLibrary.importThisPrompt")})]})]},n.id)})]})}const ve=o.lazy(()=>J(()=>import("./PromptImportDiscoverySection-BWoUDHj1.js"),__vite__mapDeps([0,1,2])).then(i=>({default:i.PromptImportDiscoverySection}))),je=o.lazy(()=>J(()=>import("./PromptImportFolderSection-DBSEyJb-.js"),__vite__mapDeps([3,1,2])).then(i=>({default:i.PromptImportFolderSection}))),_e=/\.(txt|md|markdown)$/i;function Se({open:i,onClose:t,onImported:h}){const{t:s}=O(),g=ne(r=>r.showToast),c=o.useRef(null),x=ce(i,t),[b,v]=o.useState(""),[l,F]=o.useState([]),[n,y]=o.useState(new Set),[j,L]=o.useState(null),[m,_]=o.useState(!1),[V,u]=o.useState(null),[K,C]=o.useState(!1),[X,R]=o.useState([]),[A,Y]=o.useState(""),[k,$]=o.useState(new Set),[z,N]=o.useState(!1),[W,P]=o.useState([]),[w,q]=o.useState("curated"),[B,Z]=o.useState(!1),G=l.length>0,I=!G||B,ee=o.useCallback(async()=>{const r=await M();R(r.sources),$(new Set)},[]);o.useEffect(()=>{if(!i)return;let r=!1;return M().then(a=>{r||(R(a.sources),$(new Set))}).catch(()=>{r||R([])}),()=>{r=!0}},[i]);const f=o.useCallback(r=>{F(a=>{const p=new Set(a.map(S=>S.id)),d=[...a];for(const S of r)p.has(S.id)||d.push(S);return L(S=>S??d[0]?.id??null),d})},[]),E=o.useCallback(async r=>{const a=r.filter(p=>_e.test(p.name));if(a.length===0){u(s("promptLibrary.importNoValidFiles"));return}_(!0),u(null);try{const p=[];for(const d of a)p.push(await Q({source:{kind:"local",filename:d.name,text:await d.text()}}));f(p.flatMap(d=>d.candidates))}catch(p){u(p instanceof Error?p.message:s("promptLibrary.importFailed"))}finally{_(!1)}},[f,s]),re=o.useCallback(async()=>{if(b.trim()){_(!0),u(null);try{const r=await Q({source:{kind:"github",input:b.trim()}});f(r.candidates)}catch(r){u(r instanceof Error?r.message:s("promptLibrary.importFailed"))}finally{_(!1)}}},[f,b,s]),te=o.useCallback(async()=>{N(!0),u(null),P([]);try{const r=await pe({q:A.trim(),sourceIds:[...k]});f(r.results),P(r.warnings),r.results.length===0&&u(s("promptLibrary.noCuratedResults"))}catch(r){u(r instanceof Error?r.message:s("promptLibrary.importFailed"))}finally{N(!1)}},[f,A,k,s]),se=o.useCallback(async r=>{N(!0),u(null),P([]);try{const a=await de({sourceId:r});P(a.warnings),g(s("promptLibrary.curatedRefreshed",{count:a.candidateCount}))}catch(a){u(a instanceof Error?a.message:s("promptLibrary.importFailed"))}finally{N(!1)}},[g,s]),H=o.useCallback((r,a)=>{y(p=>{const d=new Set(p);return a?d.add(r):d.delete(r),d})},[]),ie=o.useCallback(()=>{y(new Set(l.map(r=>r.id)))},[l]),oe=o.useCallback(()=>{y(new Set)},[]),D=o.useCallback(async r=>{if(r.length===0){u(s("promptLibrary.importSelectAtLeastOne"));return}_(!0),u(null);try{const a=await me({candidates:r});await h(),g(s("promptLibrary.imported",{count:a.promptsImported})),t()}catch(a){u(a instanceof Error?a.message:s("promptLibrary.importFailed"))}finally{_(!1)}},[t,h,g,s]),ae=o.useCallback(async()=>{const r=l.filter(a=>n.has(a.id));await D(r)},[l,D,n]),U=o.useCallback(r=>{y(new Set([r.id])),D([r])},[D]),le=o.useCallback(r=>{const a=Array.from(r.target.files??[]);a.length>0&&E(a),r.target.value=""},[E]),T=o.useCallback(r=>{r.preventDefault(),r.stopPropagation(),C(!1);const a=Array.from(r.dataTransfer?.files??[]);a.length>0&&E(a)},[E]);return o.useEffect(()=>{if(!i)return;const r=p=>{p.preventDefault(),C(!0)},a=p=>{p.relatedTarget===null&&C(!1)};return window.addEventListener("dragover",r),window.addEventListener("dragleave",a),window.addEventListener("drop",T),()=>{window.removeEventListener("dragover",r),window.removeEventListener("dragleave",a),window.removeEventListener("drop",T)}},[T,i]),i?e.jsxs("div",{className:"prompt-import-dialog",role:"presentation",children:[e.jsx("div",{className:"prompt-import-dialog__backdrop",onClick:t}),e.jsxs("div",{ref:x,className:"prompt-import-dialog__panel",role:"dialog","aria-modal":"true","aria-labelledby":"prompt-import-title",tabIndex:-1,children:[e.jsxs("div",{className:"prompt-import-dialog__header",children:[e.jsx("h3",{id:"prompt-import-title",children:s("promptLibrary.importTitle")}),e.jsx("button",{type:"button",onClick:t,"aria-label":s("common.close"),children:"×"})]}),I&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:`prompt-import-dialog__dropzone${K?" active":""}`,onDragOver:r=>{r.preventDefault(),C(!0)},onDragLeave:()=>C(!1),onDrop:T,children:[e.jsx("strong",{children:s("promptLibrary.importDropTitle")}),e.jsx("span",{children:s("promptLibrary.importDropHint")}),e.jsx("button",{type:"button",onClick:()=>c.current?.click(),children:s("promptLibrary.importChooseFiles")}),e.jsx("input",{ref:c,className:"prompt-library-panel__file-input",type:"file",accept:".txt,.md,.markdown,text/plain,text/markdown",multiple:!0,onChange:le})]}),e.jsxs("div",{className:"prompt-import-dialog__github",children:[e.jsx("label",{htmlFor:"prompt-import-github",children:s("promptLibrary.importGithubLabel")}),e.jsxs("div",{children:[e.jsx("input",{id:"prompt-import-github",type:"text",value:b,onChange:r=>v(r.target.value),placeholder:"owner/repo:path/to/prompts.md"}),e.jsx("button",{type:"button",onClick:()=>{re()},disabled:m||!b.trim(),children:s("promptLibrary.importPreview")})]})]}),e.jsx(o.Suspense,{fallback:null,children:e.jsx(je,{input:b,disabled:m,onCandidates:f,onError:u})}),e.jsxs("div",{className:"prompt-import-dialog__source-tabs",role:"tablist","aria-label":s("promptLibrary.curatedSources"),children:[e.jsx("button",{type:"button",className:w==="curated"?"active":"",onClick:()=>q("curated"),"aria-pressed":w==="curated",children:s("promptLibrary.curatedSources")}),e.jsx("button",{type:"button",className:w==="discovery"?"active":"",onClick:()=>q("discovery"),"aria-pressed":w==="discovery",children:s("promptLibrary.discovery")})]})]}),(I?w==="curated":!0)&&e.jsxs("div",{className:"prompt-import-dialog__curated",children:[I&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"prompt-import-dialog__section-title",children:[e.jsx("strong",{children:s("promptLibrary.curatedSources")}),e.jsx("span",{children:s("promptLibrary.curatedSourcesHint")})]}),e.jsx("div",{className:"prompt-import-dialog__source-list",children:X.filter(r=>r.trustTier!=="manual-review").map(r=>e.jsxs("label",{className:"prompt-import-dialog__source",children:[e.jsx("input",{type:"checkbox",checked:k.has(r.id),onChange:a=>{$(p=>{const d=new Set(p);return a.target.checked?d.add(r.id):d.delete(r.id),d})}}),e.jsxs("span",{children:[e.jsx("strong",{children:r.displayName}),e.jsxs("small",{children:[r.licenseSpdx," · ",r.trustTier]})]}),e.jsx("button",{type:"button",onClick:()=>{se(r.id)},disabled:z,children:s("promptLibrary.refreshSource")})]},r.id))})]}),e.jsxs("div",{className:"prompt-import-dialog__search-results",children:[e.jsx("input",{type:"text",value:A,onChange:r=>Y(r.target.value),placeholder:s("promptLibrary.curatedSearchPlaceholder"),"aria-label":s("promptLibrary.curatedSearch")}),e.jsx("button",{type:"button",onClick:()=>{te()},disabled:z||k.size===0,children:s(z?"common.loading":"promptLibrary.curatedSearch")})]}),W.length>0?e.jsx("div",{className:"prompt-import-dialog__warning",children:W.slice(0,3).join(" · ")}):null]}),I&&w==="discovery"&&e.jsx(o.Suspense,{fallback:e.jsx("div",{className:"prompt-import-dialog__empty",children:s("common.loading")}),children:e.jsx(ve,{disabled:m,onError:u,onSourcesChanged:ee})}),G&&!B&&e.jsx("button",{type:"button",className:"prompt-import-dialog__add-source-toggle",onClick:()=>Z(!0),children:s("promptLibrary.addAnotherSource")}),V?e.jsx("div",{className:"prompt-import-dialog__error",role:"alert",children:V}):null,e.jsxs("div",{className:"prompt-import-dialog__workspace","aria-live":"polite",children:[e.jsx(fe,{candidates:l,selectedIds:n,activeCandidateId:j,busy:m,onSelectCandidate:r=>L(r.id),onToggleSelected:H,onSelectAll:ie,onClearSelection:oe,onImportOne:U}),e.jsx(ge,{candidate:l.find(r=>r.id===j)??null,selected:j?n.has(j):!1,disabled:m,onToggleSelected:H,onImportOne:U})]}),e.jsxs("div",{className:"prompt-import-dialog__footer",children:[e.jsx("button",{type:"button",onClick:t,children:s("common.cancel")}),e.jsx("button",{type:"button",onClick:()=>{ae()},disabled:m||n.size===0,children:m?s("common.loading"):s("promptLibrary.importSelected",{count:n.size})})]})]})]}):null}export{Se as PromptImportDialog};
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PromptImportDiscoverySection-DoQw4zcd.js","assets/index-DueH_AmZ.js","assets/index-0fpfY8vu.css","assets/PromptImportFolderSection-CcLiliAZ.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{u as O,j as e,b as ne,a as o,p as ce,aT as M,aU as Q,aV as pe,aW as de,aX as me,ai as X}from"./index-DueH_AmZ.js";function ue(i){const t=i.source;if(!t)return"";if(t.owner&&t.repo){const h=t.ref?`@${t.ref}`:"",s=t.path?`:${t.path}`:"";return`${t.owner}/${t.repo}${h}${s}`}return t.filename??t.sourceId??t.kind??""}function he(i,t){const h=i.tags.find(s=>s.toLowerCase().startsWith(t));return h?h.slice(t.length):null}function be(i){return i.tags.includes("attribution-required")||i.warnings?.some(t=>t.toLowerCase().includes("attribution"))===!0}function ge({candidate:i,selected:t,disabled:h=!1,onToggleSelected:s,onImportOne:g}){const{t:c}=O();if(!i)return e.jsx("aside",{className:"prompt-import-dialog__candidate-preview","aria-label":c("promptLibrary.previewPrompt"),children:e.jsx("div",{className:"prompt-import-dialog__empty",children:c("promptLibrary.importPreviewEmpty")})});const x=ue(i),b=he(i,"license:"),v=be(i);return e.jsxs("aside",{className:"prompt-import-dialog__candidate-preview","aria-label":c("promptLibrary.previewPrompt"),children:[e.jsxs("div",{className:"prompt-import-dialog__preview-header",children:[e.jsxs("div",{children:[e.jsx("span",{children:c("promptLibrary.previewPrompt")}),e.jsx("h4",{children:i.name})]}),e.jsx("button",{type:"button",onClick:()=>g(i),disabled:h,children:c("promptLibrary.importThisPrompt")})]}),e.jsxs("label",{className:"prompt-import-dialog__preview-select",children:[e.jsx("input",{type:"checkbox",checked:t,disabled:h,onChange:l=>s(i.id,l.target.checked)}),e.jsx("span",{children:c(t?"promptLibrary.selectedPrompt":"promptLibrary.selectPrompt")})]}),e.jsxs("div",{className:"prompt-import-dialog__preview-field",children:[e.jsx("strong",{children:c("promptLibrary.promptText")}),e.jsx("p",{children:i.text})]}),i.tags.length>0?e.jsxs("div",{className:"prompt-import-dialog__preview-field",children:[e.jsx("strong",{children:c("promptLibrary.tags")}),e.jsx("div",{className:"prompt-import-dialog__preview-chips",children:i.tags.map(l=>e.jsx("em",{children:l},l))})]}):null,i.warnings?.length?e.jsxs("div",{className:"prompt-import-dialog__preview-field",children:[e.jsx("strong",{children:c("promptLibrary.compatibilityWarnings")}),e.jsx("div",{className:"prompt-import-dialog__preview-chips",children:i.warnings.map(l=>e.jsx("b",{children:l},l))})]}):null,x||b||v?e.jsxs("div",{className:"prompt-import-dialog__preview-field",children:[e.jsx("strong",{children:c("promptLibrary.sourceDetails")}),x?e.jsx("small",{children:x}):null,b?e.jsxs("small",{children:[c("promptLibrary.license"),": ",b]}):null,v?e.jsx("small",{children:c("promptLibrary.attributionRequired")}):null]}):null]})}function xe(i){const t=i.source;if(!t)return"";if(t.owner&&t.repo){const h=t.path?` · ${t.path}`:"";return`github · ${t.owner}/${t.repo}${h}`}return t.filename?t.filename:t.sourceId?t.sourceId:t.kind??""}function ye(i){const t=i.replace(/\s+/g," ").trim();return t.length>220?`${t.slice(0,220)}...`:t}function fe({candidates:i,selectedIds:t,activeCandidateId:h,busy:s=!1,onSelectCandidate:g,onToggleSelected:c,onSelectAll:x,onClearSelection:b,onImportOne:v}){const{t:l}=O();if(i.length===0)return e.jsx("section",{className:"prompt-import-dialog__results","aria-label":l("promptLibrary.searchResults"),children:e.jsx("div",{className:"prompt-import-dialog__empty",children:l("promptLibrary.importPreviewEmpty")})});const F=i.every(n=>t.has(n.id));return e.jsxs("section",{className:"prompt-import-dialog__results","aria-label":l("promptLibrary.searchResults"),children:[e.jsxs("header",{className:"prompt-import-dialog__results-header",children:[e.jsx("strong",{children:l("promptLibrary.searchResultsHeader",{count:i.length})}),e.jsxs("div",{className:"prompt-import-dialog__results-header-actions",children:[e.jsx("button",{type:"button",onClick:x,disabled:F,children:l("promptLibrary.selectAllCandidates")}),e.jsx("button",{type:"button",onClick:b,disabled:t.size===0,children:l("promptLibrary.clearCandidateSelection")})]})]}),i.map(n=>{const y=t.has(n.id),j=h===n.id,L=xe(n);return e.jsxs("article",{className:`prompt-import-dialog__result-card${j?" active":""}`,children:[e.jsxs("button",{type:"button",className:"prompt-import-dialog__result-main",onClick:()=>g(n),children:[e.jsx("strong",{children:n.name}),e.jsx("span",{children:ye(n.text)}),L?e.jsx("small",{children:L}):null]}),e.jsxs("div",{className:"prompt-import-dialog__result-meta",children:[n.warnings?.slice(0,2).map(m=>e.jsx("b",{className:"prompt-import-dialog__hint-chip",children:m},m)),n.tags.slice(0,4).map(m=>e.jsx("em",{children:m},m))]}),e.jsxs("div",{className:"prompt-import-dialog__result-actions",children:[e.jsxs("label",{children:[e.jsx("input",{type:"checkbox",checked:y,onChange:m=>c(n.id,m.target.checked)}),e.jsx("span",{children:l(y?"promptLibrary.selectedPrompt":"promptLibrary.selectPrompt")})]}),e.jsx("button",{type:"button",onClick:()=>g(n),children:l("promptLibrary.previewPrompt")}),e.jsx("button",{type:"button",onClick:()=>v(n),disabled:s,children:l("promptLibrary.importThisPrompt")})]})]},n.id)})]})}const ve=o.lazy(()=>X(()=>import("./PromptImportDiscoverySection-DoQw4zcd.js"),__vite__mapDeps([0,1,2])).then(i=>({default:i.PromptImportDiscoverySection}))),je=o.lazy(()=>X(()=>import("./PromptImportFolderSection-CcLiliAZ.js"),__vite__mapDeps([3,1,2])).then(i=>({default:i.PromptImportFolderSection}))),_e=/\.(txt|md|markdown)$/i;function Se({open:i,onClose:t,onImported:h}){const{t:s}=O(),g=ne(r=>r.showToast),c=o.useRef(null),x=ce(i,t),[b,v]=o.useState(""),[l,F]=o.useState([]),[n,y]=o.useState(new Set),[j,L]=o.useState(null),[m,_]=o.useState(!1),[V,u]=o.useState(null),[J,C]=o.useState(!1),[K,R]=o.useState([]),[A,Y]=o.useState(""),[k,$]=o.useState(new Set),[z,N]=o.useState(!1),[W,P]=o.useState([]),[w,q]=o.useState("curated"),[B,Z]=o.useState(!1),G=l.length>0,I=!G||B,ee=o.useCallback(async()=>{const r=await M();R(r.sources),$(new Set)},[]);o.useEffect(()=>{if(!i)return;let r=!1;return M().then(a=>{r||(R(a.sources),$(new Set))}).catch(()=>{r||R([])}),()=>{r=!0}},[i]);const f=o.useCallback(r=>{F(a=>{const p=new Set(a.map(S=>S.id)),d=[...a];for(const S of r)p.has(S.id)||d.push(S);return L(S=>S??d[0]?.id??null),d})},[]),E=o.useCallback(async r=>{const a=r.filter(p=>_e.test(p.name));if(a.length===0){u(s("promptLibrary.importNoValidFiles"));return}_(!0),u(null);try{const p=[];for(const d of a)p.push(await Q({source:{kind:"local",filename:d.name,text:await d.text()}}));f(p.flatMap(d=>d.candidates))}catch(p){u(p instanceof Error?p.message:s("promptLibrary.importFailed"))}finally{_(!1)}},[f,s]),re=o.useCallback(async()=>{if(b.trim()){_(!0),u(null);try{const r=await Q({source:{kind:"github",input:b.trim()}});f(r.candidates)}catch(r){u(r instanceof Error?r.message:s("promptLibrary.importFailed"))}finally{_(!1)}}},[f,b,s]),te=o.useCallback(async()=>{N(!0),u(null),P([]);try{const r=await pe({q:A.trim(),sourceIds:[...k]});f(r.results),P(r.warnings),r.results.length===0&&u(s("promptLibrary.noCuratedResults"))}catch(r){u(r instanceof Error?r.message:s("promptLibrary.importFailed"))}finally{N(!1)}},[f,A,k,s]),se=o.useCallback(async r=>{N(!0),u(null),P([]);try{const a=await de({sourceId:r});P(a.warnings),g(s("promptLibrary.curatedRefreshed",{count:a.candidateCount}))}catch(a){u(a instanceof Error?a.message:s("promptLibrary.importFailed"))}finally{N(!1)}},[g,s]),H=o.useCallback((r,a)=>{y(p=>{const d=new Set(p);return a?d.add(r):d.delete(r),d})},[]),ie=o.useCallback(()=>{y(new Set(l.map(r=>r.id)))},[l]),oe=o.useCallback(()=>{y(new Set)},[]),D=o.useCallback(async r=>{if(r.length===0){u(s("promptLibrary.importSelectAtLeastOne"));return}_(!0),u(null);try{const a=await me({candidates:r});await h(),g(s("promptLibrary.imported",{count:a.promptsImported})),t()}catch(a){u(a instanceof Error?a.message:s("promptLibrary.importFailed"))}finally{_(!1)}},[t,h,g,s]),ae=o.useCallback(async()=>{const r=l.filter(a=>n.has(a.id));await D(r)},[l,D,n]),U=o.useCallback(r=>{y(new Set([r.id])),D([r])},[D]),le=o.useCallback(r=>{const a=Array.from(r.target.files??[]);a.length>0&&E(a),r.target.value=""},[E]),T=o.useCallback(r=>{r.preventDefault(),r.stopPropagation(),C(!1);const a=Array.from(r.dataTransfer?.files??[]);a.length>0&&E(a)},[E]);return o.useEffect(()=>{if(!i)return;const r=p=>{p.preventDefault(),C(!0)},a=p=>{p.relatedTarget===null&&C(!1)};return window.addEventListener("dragover",r),window.addEventListener("dragleave",a),window.addEventListener("drop",T),()=>{window.removeEventListener("dragover",r),window.removeEventListener("dragleave",a),window.removeEventListener("drop",T)}},[T,i]),i?e.jsxs("div",{className:"prompt-import-dialog",role:"presentation",children:[e.jsx("div",{className:"prompt-import-dialog__backdrop",onClick:t}),e.jsxs("div",{ref:x,className:"prompt-import-dialog__panel",role:"dialog","aria-modal":"true","aria-labelledby":"prompt-import-title",tabIndex:-1,children:[e.jsxs("div",{className:"prompt-import-dialog__header",children:[e.jsx("h3",{id:"prompt-import-title",children:s("promptLibrary.importTitle")}),e.jsx("button",{type:"button",onClick:t,"aria-label":s("common.close"),children:"×"})]}),I&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:`prompt-import-dialog__dropzone${J?" active":""}`,onDragOver:r=>{r.preventDefault(),C(!0)},onDragLeave:()=>C(!1),onDrop:T,children:[e.jsx("strong",{children:s("promptLibrary.importDropTitle")}),e.jsx("span",{children:s("promptLibrary.importDropHint")}),e.jsx("button",{type:"button",onClick:()=>c.current?.click(),children:s("promptLibrary.importChooseFiles")}),e.jsx("input",{ref:c,className:"prompt-library-panel__file-input",type:"file",accept:".txt,.md,.markdown,text/plain,text/markdown",multiple:!0,onChange:le})]}),e.jsxs("div",{className:"prompt-import-dialog__github",children:[e.jsx("label",{htmlFor:"prompt-import-github",children:s("promptLibrary.importGithubLabel")}),e.jsxs("div",{children:[e.jsx("input",{id:"prompt-import-github",type:"text",value:b,onChange:r=>v(r.target.value),placeholder:"owner/repo:path/to/prompts.md"}),e.jsx("button",{type:"button",onClick:()=>{re()},disabled:m||!b.trim(),children:s("promptLibrary.importPreview")})]})]}),e.jsx(o.Suspense,{fallback:null,children:e.jsx(je,{input:b,disabled:m,onCandidates:f,onError:u})}),e.jsxs("div",{className:"prompt-import-dialog__source-tabs",role:"tablist","aria-label":s("promptLibrary.curatedSources"),children:[e.jsx("button",{type:"button",className:w==="curated"?"active":"",onClick:()=>q("curated"),"aria-pressed":w==="curated",children:s("promptLibrary.curatedSources")}),e.jsx("button",{type:"button",className:w==="discovery"?"active":"",onClick:()=>q("discovery"),"aria-pressed":w==="discovery",children:s("promptLibrary.discovery")})]})]}),(I?w==="curated":!0)&&e.jsxs("div",{className:"prompt-import-dialog__curated",children:[I&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"prompt-import-dialog__section-title",children:[e.jsx("strong",{children:s("promptLibrary.curatedSources")}),e.jsx("span",{children:s("promptLibrary.curatedSourcesHint")})]}),e.jsx("div",{className:"prompt-import-dialog__source-list",children:K.filter(r=>r.trustTier!=="manual-review").map(r=>e.jsxs("label",{className:"prompt-import-dialog__source",children:[e.jsx("input",{type:"checkbox",checked:k.has(r.id),onChange:a=>{$(p=>{const d=new Set(p);return a.target.checked?d.add(r.id):d.delete(r.id),d})}}),e.jsxs("span",{children:[e.jsx("strong",{children:r.displayName}),e.jsxs("small",{children:[r.licenseSpdx," · ",r.trustTier]})]}),e.jsx("button",{type:"button",onClick:()=>{se(r.id)},disabled:z,children:s("promptLibrary.refreshSource")})]},r.id))})]}),e.jsxs("div",{className:"prompt-import-dialog__search-results",children:[e.jsx("input",{type:"text",value:A,onChange:r=>Y(r.target.value),placeholder:s("promptLibrary.curatedSearchPlaceholder"),"aria-label":s("promptLibrary.curatedSearch")}),e.jsx("button",{type:"button",onClick:()=>{te()},disabled:z||k.size===0,children:s(z?"common.loading":"promptLibrary.curatedSearch")})]}),W.length>0?e.jsx("div",{className:"prompt-import-dialog__warning",children:W.slice(0,3).join(" · ")}):null]}),I&&w==="discovery"&&e.jsx(o.Suspense,{fallback:e.jsx("div",{className:"prompt-import-dialog__empty",children:s("common.loading")}),children:e.jsx(ve,{disabled:m,onError:u,onSourcesChanged:ee})}),G&&!B&&e.jsx("button",{type:"button",className:"prompt-import-dialog__add-source-toggle",onClick:()=>Z(!0),children:s("promptLibrary.addAnotherSource")}),V?e.jsx("div",{className:"prompt-import-dialog__error",role:"alert",children:V}):null,e.jsxs("div",{className:"prompt-import-dialog__workspace","aria-live":"polite",children:[e.jsx(fe,{candidates:l,selectedIds:n,activeCandidateId:j,busy:m,onSelectCandidate:r=>L(r.id),onToggleSelected:H,onSelectAll:ie,onClearSelection:oe,onImportOne:U}),e.jsx(ge,{candidate:l.find(r=>r.id===j)??null,selected:j?n.has(j):!1,disabled:m,onToggleSelected:H,onImportOne:U})]}),e.jsxs("div",{className:"prompt-import-dialog__footer",children:[e.jsx("button",{type:"button",onClick:t,children:s("common.cancel")}),e.jsx("button",{type:"button",onClick:()=>{ae()},disabled:m||n.size===0,children:m?s("common.loading"):s("promptLibrary.importSelected",{count:n.size})})]})]})]}):null}export{Se as PromptImportDialog};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as L,a as t,
|
|
1
|
+
import{u as L,a as t,aZ as S,a_ as C,a$ as P,j as r}from"./index-DueH_AmZ.js";const R=["gpt-image-2 prompt","nano banana prompts","typography image prompt"];function k({disabled:d=!1,onError:a,onSourcesChanged:y}){const{t:s}=L(),[l,_]=t.useState("gpt-image-2 prompt"),[v,p]=t.useState([]),[n,c]=t.useState(!1),[g,m]=t.useState([]),[h,N]=t.useState({});t.useEffect(()=>{let e=!1;return S().then(i=>{e||p(i.candidates)}).catch(()=>{e||p([])}),()=>{e=!0}},[]);const w=t.useCallback(async()=>{c(!0),m([]),a(null);try{const e=await C({q:l.trim(),seeds:R});p(e.candidates),m([...e.warnings,...e.rateLimit?.remaining===0?["github-rate-limit-exhausted"]:[]]),e.candidates.length===0&&a(s("promptLibrary.discoveryNoResults"))}catch(e){a(e instanceof Error?e.message:s("promptLibrary.importFailed"))}finally{c(!1)}},[a,l,s]),x=t.useCallback(async(e,i)=>{c(!0),m([]),a(null);try{const j=(h[e.fullName]||"").split(/\r?\n|,/).map(u=>u.trim()).filter(Boolean),b=await P({repo:e.fullName,status:i,allowedPaths:i==="approved"?j:[],defaultSearch:i==="approved"&&j.length>0});m(b.warnings),p(u=>u.map(f=>f.fullName===e.fullName?b.candidate:f)),await y()}catch(o){a(o instanceof Error?o.message:s("promptLibrary.importFailed"))}finally{c(!1)}},[h,a,y,s]);return r.jsxs("div",{className:"prompt-import-dialog__discovery",children:[r.jsxs("div",{className:"prompt-import-dialog__section-title",children:[r.jsx("strong",{children:s("promptLibrary.discovery")}),r.jsx("span",{children:s("promptLibrary.discoveryReviewQueue")})]}),r.jsxs("div",{className:"prompt-import-dialog__discovery-actions",children:[r.jsx("input",{type:"text",value:l,onChange:e=>_(e.target.value),placeholder:s("promptLibrary.discoverySearchPlaceholder"),"aria-label":s("promptLibrary.discoverySearch")}),r.jsx("button",{type:"button",onClick:()=>{w()},disabled:d||n||!l.trim(),children:s(n?"common.loading":"promptLibrary.discoverySearch")})]}),g.length>0?r.jsx("div",{className:"prompt-import-dialog__discovery-warning",children:g.slice(0,3).join(" · ")}):null,v.length===0?r.jsx("div",{className:"prompt-import-dialog__empty",children:s("promptLibrary.discoveryNoResults")}):r.jsx("div",{className:"prompt-import-dialog__discovery-list",children:v.map(e=>r.jsxs("article",{className:"prompt-import-dialog__discovery-candidate",children:[r.jsxs("div",{children:[r.jsx("strong",{children:e.fullName}),r.jsx("small",{children:e.description||e.htmlUrl})]}),r.jsxs("div",{className:"prompt-import-dialog__score",children:[r.jsxs("span",{children:[s("promptLibrary.discoveryScore"),": ",e.score]}),r.jsx("span",{children:e.licenseSpdx}),r.jsx("span",{children:e.status})]}),e.scoreReasons.length>0?r.jsx("em",{children:e.scoreReasons.slice(0,3).join(" · ")}):null,e.warnings.length>0?r.jsx("b",{children:e.warnings.slice(0,2).join(" · ")}):null,r.jsx("textarea",{value:h[e.fullName]||"",onChange:i=>N(o=>({...o,[e.fullName]:i.target.value})),placeholder:"README.md, prompts/example.md","aria-label":s("promptLibrary.discoveryRequiresPaths")}),r.jsxs("div",{className:"prompt-import-dialog__review-actions",children:[r.jsx("button",{type:"button",onClick:()=>{x(e,"approved")},disabled:d||n,children:s("promptLibrary.discoveryApprove")}),r.jsx("button",{type:"button",onClick:()=>{x(e,"rejected")},disabled:d||n,children:s("promptLibrary.discoveryReject")})]})]},e.fullName))})]})}export{k as PromptImportDiscoverySection};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as w,a,
|
|
1
|
+
import{u as w,a,b0 as S,b1 as _,j as t}from"./index-DueH_AmZ.js";function F({input:i,disabled:h=!1,onCandidates:u,onError:l}){const{t:s}=w(),[f,g]=a.useState([]),[o,p]=a.useState(new Set),[d,n]=a.useState(!1),[b,c]=a.useState([]),x=a.useCallback(async()=>{if(i.trim()){n(!0),c([]),l(null);try{const e=await S({source:{kind:"github-folder",input:i.trim()}});g(e.files),p(new Set(e.files.slice(0,5).map(r=>r.path))),c(e.warnings),e.files.length===0&&l(s("promptLibrary.folderFilesEmpty"))}catch(e){g([]),p(new Set),l(e instanceof Error?e.message:s("promptLibrary.folderUnsupported"))}finally{n(!1)}}},[i,l,s]),y=a.useCallback(async()=>{const e=[...o];if(e.length===0){l(s("promptLibrary.folderNoSelection"));return}n(!0),c([]),l(null);try{const r=await _({source:{kind:"github-folder",input:i.trim()},paths:e});c(r.warnings),u(r.candidates)}catch(r){l(r instanceof Error?r.message:s("promptLibrary.importFailed"))}finally{n(!1)}},[i,u,l,o,s]);return t.jsxs("div",{className:"prompt-import-dialog__folder",children:[t.jsxs("div",{className:"prompt-import-dialog__section-title",children:[t.jsx("strong",{children:s("promptLibrary.folderFiles")}),t.jsx("span",{children:s("promptLibrary.folderBrowseHint")})]}),t.jsxs("div",{className:"prompt-import-dialog__folder-actions",children:[t.jsx("button",{type:"button",onClick:()=>{x()},disabled:h||d||!i.trim(),children:s(d?"common.loading":"promptLibrary.folderBrowse")}),t.jsx("button",{type:"button",onClick:()=>{y()},disabled:h||d||o.size===0,children:s("promptLibrary.folderPreviewSelected")}),t.jsx("span",{children:s("promptLibrary.folderSelectedCount",{count:o.size})})]}),f.length>0?t.jsx("div",{className:"prompt-import-dialog__folder-list",children:f.map(e=>t.jsxs("label",{className:"prompt-import-dialog__folder-file",children:[t.jsx("input",{type:"checkbox",checked:o.has(e.path),onChange:r=>{p(j=>{const m=new Set(j);return r.target.checked?m.add(e.path):m.delete(e.path),m})}}),t.jsxs("span",{children:[t.jsx("strong",{children:e.name}),t.jsx("small",{children:e.path})]}),t.jsxs("em",{children:[Math.ceil(e.sizeBytes/1024)," KB"]})]},e.path))}):null,b.length>0?t.jsx("div",{className:"prompt-import-dialog__folder-warning",children:b.slice(0,3).join(" · ")}):null]})}export{F as PromptImportFolderSection};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PromptImportDialog-
|
|
2
|
-
import{u as v,p as R,j as e,az as j,a as i,b as s,S as $,
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PromptImportDialog-CLkjHz7L.js","assets/index-DueH_AmZ.js","assets/index-0fpfY8vu.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{u as v,p as R,j as e,az as j,a as i,b as s,S as $,ai as z}from"./index-DueH_AmZ.js";function A({prompt:a,onClose:d,onLoad:c,onInsert:t,onDelete:b,onToggleFavorite:l}){const{t:o}=v(),n=R(!0,d),m=async()=>{try{await navigator.clipboard.writeText(a.text)}catch{}};return e.jsxs("div",{className:"prompt-detail-modal",role:"presentation",children:[e.jsx("div",{className:"prompt-detail-modal__backdrop",onClick:d}),e.jsxs("div",{ref:n,className:"prompt-detail-modal__content",role:"dialog","aria-modal":"true","aria-labelledby":"prompt-detail-title",tabIndex:-1,children:[e.jsxs("div",{className:"prompt-detail-modal__header",children:[e.jsx("h2",{id:"prompt-detail-title",className:"prompt-detail-modal__title",children:a.name||o("promptLibrary.untitled")}),e.jsx("button",{className:"prompt-detail-modal__close",onClick:d,"aria-label":o("common.close"),children:"×"})]}),e.jsxs("div",{className:"prompt-detail-modal__body",children:[e.jsx("div",{className:"prompt-detail-modal__label",children:o("promptLibrary.content")}),e.jsx("div",{className:"prompt-detail-modal__prompt",children:a.text}),a.tags.length>0&&e.jsxs("div",{className:"prompt-detail-modal__tags",children:[e.jsx("div",{className:"prompt-detail-modal__label",children:o("promptLibrary.tags")}),e.jsx("div",{className:"prompt-detail-modal__tag-list",children:a.tags.map(p=>e.jsxs("span",{className:"prompt-detail-modal__tag",children:["#",p]},p))})]})]}),e.jsxs("div",{className:"prompt-detail-modal__footer",children:[e.jsx("button",{className:"prompt-detail-modal__load",onClick:c,children:o("promptLibrary.load")}),e.jsx("button",{className:"prompt-detail-modal__copy",onClick:m,children:o("promptLibrary.copy")}),e.jsxs("button",{className:"prompt-detail-modal__insert",onClick:t,children:["+ ",o("promptLibrary.insert")]}),e.jsxs("button",{className:`prompt-detail-modal__favorite${a.isFavorite?" prompt-detail-modal__favorite--on":""}`,onClick:l,"aria-pressed":a.isFavorite,children:[e.jsx(j,{}),a.isFavorite?o("promptLibrary.unfavorite"):o("promptLibrary.favorite")]}),e.jsx("button",{className:"prompt-detail-modal__delete",onClick:b,children:o("common.delete")})]})]})]})}function M({prompt:a,onLoad:d,onInsert:c,onDelete:t,onToggleFavorite:b}){const{t:l}=v(),[o,n]=i.useState(!1),m=a.text.length>45?a.text.slice(0,45)+"...":a.text;return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"prompt-library-row",onClick:()=>n(!0),children:[e.jsxs("div",{className:"prompt-library-row__main",children:[e.jsx("div",{className:"prompt-library-row__title",children:a.name||l("promptLibrary.untitled")}),e.jsx("div",{className:"prompt-library-row__preview",children:m})]}),e.jsxs("div",{className:"prompt-library-row__actions",children:[e.jsx("button",{className:"prompt-library-row__insert",onClick:p=>{p.stopPropagation(),c()},title:l("promptLibrary.insert"),"aria-label":l("promptLibrary.insert"),children:"+"}),e.jsx("button",{className:`prompt-library-row__star${a.isFavorite?" prompt-library-row__star--on":""}`,onClick:p=>{p.stopPropagation(),b()},"aria-label":a.isFavorite?l("promptLibrary.unfavorite"):l("promptLibrary.favorite"),"aria-pressed":a.isFavorite,children:e.jsx(j,{})}),e.jsx("span",{className:"prompt-library-row__chevron",children:"›"})]})]}),o&&e.jsx(A,{prompt:a,onClose:()=>n(!1),onLoad:()=>{d(),n(!1)},onInsert:()=>{c(),n(!1)},onDelete:t,onToggleFavorite:b})]})}const V=i.lazy(()=>z(()=>import("./PromptImportDialog-CLkjHz7L.js"),__vite__mapDeps([0,1,2])).then(a=>({default:a.PromptImportDialog})));function B({variant:a="overlay",forceOpen:d=!1,onRequestClose:c}){const{t}=v(),b=s(r=>r.promptLibraryOpen),l=s(r=>r.togglePromptLibrary),o=s(r=>r.promptLibrary),n=s(r=>r.promptLibraryLoading),m=s(r=>r.loadPromptLibrary),p=s(r=>r.deletePromptFromLibrary),w=s(r=>r.togglePromptFavorite),k=s(r=>r.setPrompt),L=s(r=>r.insertPromptToComposer),F=s(r=>r.clearInsertedPrompts),N=s(r=>r.showToast),[y,I]=i.useState(""),[x,S]=i.useState(!1),[O,f]=i.useState(!1),[g,C]=i.useState(!1),h=d||b,_=c??l;i.useEffect(()=>{h&&m()},[h,m]);const D=i.useCallback(r=>{L({id:r.id,name:r.name||t("promptLibrary.untitled"),text:r.text}),N(t("promptLibrary.inserted")),_()},[_,L,N,t]);if(!h)return null;const P=o.prompts.filter(r=>{if(x&&!r.isFavorite)return!1;if(!y.trim())return!0;const u=y.toLowerCase();return r.name.toLowerCase().includes(u)||r.text.toLowerCase().includes(u)||r.tags.some(E=>E.toLowerCase().includes(u))}),T=e.jsxs("div",{className:"prompt-library-panel__drawer",children:[e.jsxs("div",{className:"prompt-library-panel__header",children:[e.jsx("h3",{children:t("promptLibrary.title")}),e.jsxs("div",{className:"prompt-library-panel__actions",children:[e.jsx("button",{className:"prompt-library-panel__add",onClick:()=>f(r=>!r),title:t("promptLibrary.addNew"),"aria-label":t("promptLibrary.addNew"),children:"+"}),e.jsx("button",{className:"prompt-library-panel__import",onClick:()=>C(!0),title:t("promptLibrary.importFiles"),"aria-label":t("promptLibrary.importFiles"),children:t("promptLibrary.import")}),e.jsx("button",{onClick:_,"aria-label":t("common.close"),children:"×"})]}),O&&e.jsx($,{text:"",onClose:()=>f(!1)})]}),e.jsxs("div",{className:"prompt-library-panel__search",children:[e.jsx("input",{type:"text",placeholder:t("promptLibrary.search"),value:y,onChange:r=>I(r.target.value)}),e.jsxs("button",{type:"button",className:`prompt-library-panel__filter-toggle${x?" active":""}`,"aria-pressed":x,title:t("promptLibrary.favorites"),onClick:()=>S(r=>!r),children:[e.jsx(j,{}),e.jsx("span",{children:t("promptLibrary.favorites")})]})]}),n?e.jsx("div",{className:"prompt-library-panel__loading",children:t("common.loading")}):e.jsx("div",{className:"prompt-library-panel__list",children:P.length===0?e.jsx("div",{className:"prompt-library-panel__empty",children:t("promptLibrary.empty")}):P.map(r=>e.jsx(M,{prompt:r,onLoad:()=>{F(),k(r.text),l()},onInsert:()=>D(r),onDelete:()=>p(r.id),onToggleFavorite:()=>w(r.id)},r.id))}),g?e.jsx(i.Suspense,{fallback:null,children:e.jsx(V,{open:g,onClose:()=>C(!1),onImported:m})}):null]});return e.jsxs("div",{className:`prompt-library-panel prompt-library-panel--${a}`,children:[a==="overlay"?e.jsx("div",{className:"prompt-library-panel__backdrop",onClick:_}):null,T]})}export{B as PromptLibraryPanel};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as r,u as L,j as e,v as F,x as re,y as le,z as oe,A as ce,b as S,I as de,B as W,V as G,C as Y,D as ue,O as J,G as X,E as ge,U as me,F as he,H as pe,J as fe,K as xe,L as ye,M as je,N as ve,P as be,Q as _e,T as we,W as Ne,X as ke,Y as Se}from"./index-DueH_AmZ.js";import{u as B}from"./promptBuilderStore-CkwnWMbR.js";function Ce(){const[s,n]=r.useState(null);return r.useEffect(()=>{let i=!1;return(async()=>{try{const a=await fetch("/api/agy/status");if(i)return;const h=await a.json();n(h)}catch{i||n({installed:!1})}})(),()=>{i=!0}},[]),s}function D({provider:s,label:n,placeholder:i,maskedKey:t,source:a,configured:h,onSaved:m}){const{t:c}=L(),[y,f]=r.useState(""),[x,d]=r.useState(!1),[_,p]=r.useState(!1),[l,j]=r.useState(null),[v,C]=r.useState(!1),E=a==="env",w=y.trim().length>0,M=h&&!x&&!w,P=r.useCallback(async()=>{if(w){p(!0),j(null),C(!1);try{const b=await(await fetch(`/api/keys/${s}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:y.trim()})})).json();b.ok?(f(""),d(!1),C(!0),m(),setTimeout(()=>C(!1),3e3)):j(b.error||c("settings.apiKeys.saveFailed"))}catch{j(c("settings.apiKeys.networkError"))}finally{p(!1)}}},[y,s,w,m,c]),O=r.useCallback(async()=>{try{if(!(await fetch(`/api/keys/${s}`,{method:"DELETE"})).ok){j(c("settings.apiKeys.removeFailed"));return}f(""),d(!1),m()}catch{j(c("settings.apiKeys.networkError"))}},[s,m,c]),A=r.useCallback(()=>{h&&d(!0)},[h]),$=r.useCallback(()=>{w||d(!1)},[w]);return e.jsxs("article",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row__copy",children:[e.jsx("p",{className:"settings-eyebrow",children:c(E?"settings.apiKeys.envSource":"settings.apiKeys.configSource")}),e.jsx("h4",{children:n}),e.jsxs("div",{className:"api-key-input-group",children:[M?e.jsx("input",{type:"text",className:"api-key-input is-masked",value:t||"●●●●●●",readOnly:!0,onFocus:A,onClick:A}):e.jsx("input",{type:"password",className:`api-key-input${l?" is-invalid":""}`,placeholder:i,value:y,onChange:o=>{f(o.target.value),j(null)},onBlur:$,readOnly:!1,autoComplete:"off",autoFocus:x,spellCheck:!1,"data-1p-ignore":!0,"data-lpignore":"true","data-form-type":"other"}),e.jsxs("div",{className:"api-key-actions",children:[e.jsx("button",{type:"button",className:"settings-action-btn",onClick:P,disabled:!w||_,children:c(_?"settings.apiKeys.saving":v?"settings.apiKeys.saved":"settings.apiKeys.save")}),h&&!E&&e.jsx("button",{type:"button",className:"settings-action-btn settings-action-btn--danger",onClick:O,children:c("settings.apiKeys.remove")})]})]}),l&&e.jsx("p",{className:"api-key-error",children:l})]}),e.jsxs("div",{className:`settings-status${h?" is-ok":""}`,children:[e.jsx("span",{"aria-hidden":"true"}),c(h?"settings.apiKeys.status.valid":"settings.apiKeys.status.notConfigured")]})]})}function Le({configured:s,maskedKey:n,source:i,onSaved:t}){const{t:a}=L(),[h,m]=r.useState(""),[c,y]=r.useState(!1),[f,x]=r.useState(!1),[d,_]=r.useState(null),[p,l]=r.useState(!1),j=i==="env",v=h.trim().length>0,C=s&&!c&&!v,E=r.useCallback(async()=>{if(v){x(!0),_(null),l(!1);try{const A=await(await fetch("/api/keys/vertex",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({serviceAccountJson:h.trim()})})).json();A.ok?(m(""),y(!1),l(!0),t(),setTimeout(()=>l(!1),3e3)):_(A.error||a("settings.apiKeys.saveFailed"))}catch{_(a("settings.apiKeys.networkError"))}finally{x(!1)}}},[h,v,t,a]),w=r.useCallback(async()=>{try{if(!(await fetch("/api/keys/vertex",{method:"DELETE"})).ok){_(a("settings.apiKeys.removeFailed"));return}m(""),y(!1),t()}catch{_(a("settings.apiKeys.networkError"))}},[t,a]),M=r.useCallback(()=>{s&&!j&&y(!0)},[s,j]),P=r.useCallback(()=>{v||y(!1)},[v]);return e.jsxs("div",{className:"vertex-json-section",children:[e.jsx("p",{className:"settings-eyebrow",children:a(j?"settings.apiKeys.envSource":"settings.apiKeys.configSource")}),s&&n&&e.jsx("p",{className:"vertex-project-id",children:n}),C?e.jsx("textarea",{className:"vertex-json-textarea is-masked",value:`●●● (${a("settings.apiKeys.configuredReplace")})`,readOnly:!0,onFocus:M,onClick:M}):e.jsx("textarea",{className:`vertex-json-textarea${d?" is-invalid":""}`,placeholder:a("settings.apiKeys.vertex.placeholder"),value:h,onChange:O=>{m(O.target.value),_(null)},onBlur:P,readOnly:j,autoFocus:c,spellCheck:!1,"data-1p-ignore":!0,"data-lpignore":"true","data-form-type":"other"}),e.jsxs("div",{className:"api-key-actions",style:{marginTop:8},children:[!j&&e.jsx("button",{type:"button",className:"settings-action-btn",onClick:E,disabled:!v||f,children:a(f?"settings.apiKeys.saving":p?"settings.apiKeys.saved":"settings.apiKeys.save")}),s&&!j&&e.jsx("button",{type:"button",className:"settings-action-btn settings-action-btn--danger",onClick:w,children:a("settings.apiKeys.remove")})]}),d&&e.jsx("p",{className:"api-key-error",children:d}),e.jsxs("div",{className:`settings-status${s?" is-ok":""}`,style:{marginTop:8},children:[e.jsx("span",{"aria-hidden":"true"}),a(s?"settings.apiKeys.status.valid":"settings.apiKeys.status.notConfigured")]})]})}function Ee({keyStatus:s,onSaved:n}){const{t:i}=L(),t=s.vertex?.configured??!1,a=s.gemini?.configured??!1,h=s.geminiAuthMode==="vertex"?"vertex":"apikey",[m,c]=r.useState(h),[y,f]=r.useState(!1);r.useEffect(()=>{y||c(h)},[h,y]);const x=d=>{f(!0),c(d),fetch("/api/keys/gemini-auth-mode",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({mode:d})}).catch(()=>{})};return e.jsxs("div",{className:"gemini-key-section",children:[e.jsxs("div",{className:"gemini-key-section__header",children:[e.jsx("h5",{children:i("settings.apiKeys.gemini.label")}),e.jsx(F,{value:m,onChange:x,items:[{value:"apikey",label:i("settings.apiKeys.vertex.authModeApiKey")},{value:"vertex",label:i("settings.apiKeys.vertex.authModeVertex")}]})]}),m==="apikey"?e.jsx(D,{provider:"gemini",label:"",placeholder:i("settings.apiKeys.gemini.placeholder"),maskedKey:s.gemini?.maskedKey??null,source:s.gemini?.source??"none",configured:a,onSaved:n}):e.jsx(Le,{configured:t,maskedKey:s.vertex?.maskedKey??null,source:s.vertex?.source??"none",onSaved:n})]})}function Ke(s){return s>80?"var(--red)":s>50?"var(--amber)":"var(--blue)"}function Te(s){if(!s)return"";const n=new Date(s);return`${n.getMonth()+1}/${n.getDate()} ${String(n.getHours()).padStart(2,"0")}:${String(n.getMinutes()).padStart(2,"0")}`}function ne({window:s}){const n=Te(s.resetsAt);return e.jsxs("div",{className:"quota-bar",children:[e.jsx("span",{className:"quota-bar__label",children:s.label}),e.jsx("div",{className:"quota-bar__track",children:e.jsx("div",{className:"quota-bar__fill",style:{width:`${Math.min(s.percent,100)}%`,background:Ke(s.percent)}})}),e.jsxs("span",{className:"quota-bar__pct",children:[s.percent,"%"]}),n&&e.jsx("span",{className:"quota-bar__reset",children:n})]})}function ae({provider:s,onComplete:n}){const{t:i}=L(),[t,a]=r.useState({phase:"idle"}),[h,m]=r.useState(!1),c=r.useRef(!1),y=r.useCallback(async()=>{if(!c.current){c.current=!0,a({phase:"starting"});try{const f=await fetch("/api/auth/switch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:s})});if(!f.ok){const d=await f.json().catch(()=>({error:i("settings.quota.switchFailed")}));a({phase:"error",error:d.error||`HTTP ${f.status}`});return}const x=await f.json();a({phase:"waiting",...x}),window.open(x.verificationUrl,"_blank")}catch(f){c.current=!1,a({phase:"error",error:f.message})}}},[s]);return r.useEffect(()=>{if(t.phase!=="waiting"||!t.sessionId)return;let f=!1;const x=async()=>{try{const p=await(await fetch(`/api/auth/switch/${t.sessionId}`)).json();if(f)return;if(p.status==="complete"){a({phase:"complete"}),setTimeout(n,1e3);return}if(p.status==="error"||p.status==="expired"){a({phase:"error",error:p.error||p.status});return}}catch{}f||setTimeout(x,3e3)},d=setTimeout(x,3e3);return()=>{f=!0,clearTimeout(d)}},[t.phase,t.sessionId,n]),t.phase==="idle"?e.jsx("button",{type:"button",className:"settings-action-btn",style:{width:"100%",marginTop:"6px"},onClick:y,children:i("settings.quota.switchAccount",{provider:s==="grok"?"Grok":"Codex"})}):t.phase==="starting"?e.jsx("div",{className:"quota-card__hint",style:{textAlign:"center",marginTop:"6px"},children:i("settings.quota.startingLogin")}):t.phase==="waiting"?e.jsxs("div",{style:{marginTop:"6px",padding:"8px",background:"var(--surface, #f5f5f5)",borderRadius:"var(--r-sm)",fontSize:"12px"},children:[e.jsx("div",{style:{textAlign:"center",marginBottom:"4px"},children:i("settings.quota.enterCode")}),e.jsx("div",{style:{textAlign:"center",fontSize:"18px",fontWeight:700,fontFamily:"monospace",letterSpacing:"2px",margin:"6px 0"},children:t.userCode}),t.verificationUrl&&e.jsxs("div",{style:{display:"flex",gap:"4px",margin:"6px 0"},children:[e.jsx("button",{type:"button",className:"settings-action-btn",style:{flex:1,fontSize:"11px"},onClick:()=>{c.current=!1,y()},children:i("settings.quota.retry")}),e.jsx("button",{type:"button",className:"settings-action-btn",style:{flex:1,fontSize:"11px"},onClick:()=>{navigator.clipboard?.writeText(t.verificationUrl).then(()=>{m(!0),setTimeout(()=>m(!1),2e3)})},children:i(h?"settings.quota.copied":"settings.quota.copyLink")})]}),e.jsx("div",{style:{textAlign:"center",color:"var(--text-dim, #888)",fontSize:"11px"},children:i("settings.quota.waitingApproval")})]}):t.phase==="complete"?e.jsx("div",{className:"quota-card__hint",style:{textAlign:"center",marginTop:"6px",color:"var(--green)"},children:i("settings.quota.switchComplete")}):t.phase==="error"?e.jsxs("div",{style:{marginTop:"6px"},children:[e.jsx("div",{className:"quota-card__hint",style:{color:"var(--red)",marginBottom:"4px"},children:t.error||i("settings.quota.switchFailed")}),e.jsx("button",{type:"button",className:"settings-action-btn",style:{width:"100%",fontSize:"11px"},onClick:()=>{c.current=!1,a({phase:"idle"})},children:i("settings.quota.tryAgain")})]}):null}function Ie(){const[s,n]=r.useState(null),[i,t]=r.useState(!0),a=r.useCallback(()=>{t(!0),fetch("/api/quota").then(h=>h.json()).then(n).catch(()=>n(null)).finally(()=>t(!1))},[]);return r.useEffect(()=>{const h=setTimeout(a,1500);return()=>clearTimeout(h)},[a]),{data:s,loading:i,refreshQuota:a}}function Me({data:s,loading:n,onRefresh:i}){const{t}=L(),a=s?.codex,h=a?.windows&&a.windows.length>0,m=a?.account?[a.account.email,a.account.plan].filter(Boolean).join(" · "):null;return e.jsxs("div",{className:"quota-card",children:[m?e.jsx("div",{className:"quota-card__header",children:e.jsx("span",{className:"quota-card__account",children:m})}):null,n?e.jsx("span",{className:"quota-card__loading",children:t("common.loading")}):h?a.windows.map(c=>e.jsx(ne,{window:c},c.label)):a?.authenticated===!1?e.jsx("span",{className:"quota-card__hint",children:t("settings.quota.codexNotLoggedIn")}):a?.error?e.jsx("span",{className:"quota-card__hint",children:t("settings.quota.fetchError")}):e.jsx("span",{className:"quota-card__hint",children:t("settings.quota.noData")}),e.jsx(ae,{provider:"codex",onComplete:i})]})}function Oe({data:s,loading:n,onRefresh:i}){const{t}=L(),a=s?.grok,h=a?.windows&&a.windows.length>0,m=a?.account?[a.account.email,a.account.plan].filter(Boolean).join(" · "):null;return e.jsxs("div",{className:"quota-card",children:[m||a?.billing?e.jsxs("div",{className:"quota-card__header",style:{display:"flex",alignItems:"center"},children:[m&&e.jsx("span",{className:"quota-card__account",children:m}),a?.billing&&e.jsxs("span",{style:{marginLeft:"auto",fontSize:"11px",color:"var(--text-dim, #888)",whiteSpace:"nowrap"},children:["$",a.billing.usedUsd.toFixed(1),"/$",a.billing.limitUsd]})]}):null,n?e.jsx("span",{className:"quota-card__loading",children:t("common.loading")}):h?a.windows.map(c=>e.jsx(ne,{window:c},c.label)):a?.authenticated===!1?e.jsx("span",{className:"quota-card__hint",children:t("settings.quota.codexNotLoggedIn")}):e.jsx("a",{href:"https://grok.com/?_s=usage",target:"_blank",rel:"noopener noreferrer",className:"settings-action-btn",children:t("settings.quota.grokUsageLink")}),e.jsx(ae,{provider:"grok",onComplete:i})]})}function Z(){return e.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:e.jsx("path",{d:"M22.282 9.821a5.985 5.985 0 0 0-.516-4.91 6.046 6.046 0 0 0-6.51-2.9A6.065 6.065 0 0 0 4.981 4.18a5.998 5.998 0 0 0-3.998 2.9 6.049 6.049 0 0 0 .743 7.097 5.98 5.98 0 0 0 .51 4.911 6.051 6.051 0 0 0 6.515 2.9A5.985 5.985 0 0 0 13.26 24a6.056 6.056 0 0 0 5.772-4.206 5.99 5.99 0 0 0 3.997-2.9 6.056 6.056 0 0 0-.747-7.073zM13.26 22.43a4.476 4.476 0 0 1-2.876-1.04l.141-.081 4.779-2.758a.795.795 0 0 0 .392-.681v-6.737l2.02 1.168a.071.071 0 0 1 .038.052v5.583a4.504 4.504 0 0 1-4.494 4.494zM3.6 18.304a4.47 4.47 0 0 1-.535-3.014l.142.085 4.783 2.759a.771.771 0 0 0 .78 0l5.843-3.369v2.332a.08.08 0 0 1-.033.062L9.74 19.95a4.5 4.5 0 0 1-6.14-1.646zM2.34 7.896a4.485 4.485 0 0 1 2.366-1.973V11.6a.766.766 0 0 0 .388.676l5.815 3.355-2.02 1.168a.076.076 0 0 1-.071 0l-4.83-2.786A4.504 4.504 0 0 1 2.34 7.872zm16.597 3.855l-5.833-3.387L15.119 7.2a.076.076 0 0 1 .071 0l4.83 2.791a4.494 4.494 0 0 1-.676 8.105v-5.678a.79.79 0 0 0-.407-.667zm2.01-3.023l-.141-.085-4.774-2.782a.776.776 0 0 0-.785 0L9.409 9.23V6.897a.066.066 0 0 1 .028-.061l4.83-2.787a4.5 4.5 0 0 1 6.68 4.66zm-12.64 4.135l-2.02-1.164a.08.08 0 0 1-.038-.057V6.075a4.5 4.5 0 0 1 7.375-3.453l-.142.08L8.704 5.46a.795.795 0 0 0-.393.681zm1.097-2.365l2.602-1.5 2.607 1.5v2.999l-2.597 1.5-2.612-1.5z"})})}function Ae(){return e.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor",fillRule:"evenodd","aria-hidden":"true",children:e.jsx("path",{d:"M9.27 15.29l7.978-5.897c.391-.29.95-.177 1.137.272.98 2.369.542 5.215-1.41 7.169-1.951 1.954-4.667 2.382-7.149 1.406l-2.711 1.257c3.889 2.661 8.611 2.003 11.562-.953 2.341-2.344 3.066-5.539 2.388-8.42l.006.007c-.983-4.232.242-5.924 2.75-9.383.06-.082.12-.164.179-.248l-3.301 3.305v-.01L9.267 15.292M7.623 16.723c-2.792-2.67-2.31-6.801.071-9.184 1.761-1.763 4.647-2.483 7.166-1.425l2.705-1.25a7.808 7.808 0 00-1.829-1A8.975 8.975 0 005.984 5.83c-2.533 2.536-3.33 6.436-1.962 9.764 1.022 2.487-.653 4.246-2.34 6.022-.599.63-1.199 1.259-1.682 1.925l7.62-6.815"})})}function Be(){return e.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:e.jsx("path",{d:"M12 24A14.304 14.304 0 0 0 0 12 14.304 14.304 0 0 0 12 0a14.305 14.305 0 0 0 12 12 14.305 14.305 0 0 0-12 12"})})}function ee(s,n){return s(n==="ready"?"settings.account.status.ready":n==="auth_required"?"settings.account.status.authRequired":n==="starting"?"settings.account.status.starting":n==="offline"?"settings.account.status.offline":n==="no_image_model"?"settings.account.status.noImageModel":n==="error"?"settings.account.status.error":"settings.account.status.checking")}function se(s){return s==="ready"?"ok":s==="error"||s==="offline"?"err":"warn"}function Re(){const{t:s}=L(),n=re(),i=le(),t=Ce(),{data:a,error:h}=oe(),{data:m,mutate:c}=ce(),y=Ie(),[f,x]=r.useState(!1),d=a?.apiKeySource==="env"||a?.apiKeySource==="config"||a?.apiKeyValid===!0,_=a?.apiKeySource==="config"?s("settings.account.apiSourceConfig"):s("settings.account.apiSourceEnv"),p=a?.apiKeyValid===!0;return e.jsxs(e.Fragment,{children:[e.jsxs("article",{className:"provider-card",children:[e.jsxs("div",{className:"provider-card__head",children:[e.jsx("span",{className:"provider-card__brand",children:e.jsx(Z,{})}),e.jsx("h4",{children:s("settings.account.oauthTitle")}),e.jsx("span",{className:"provider-card__eyebrow",children:s("settings.account.primaryEyebrow")}),e.jsx("span",{className:`provider-chip provider-chip--${se(n?.status)}`,children:ee(s,n?.status)})]}),e.jsx("div",{className:"settings-row__copy",children:e.jsx("p",{children:s("settings.account.oauthBody")})}),e.jsx(Me,{data:y.data,loading:y.loading,onRefresh:y.refreshQuota})]}),d?e.jsxs("article",{className:"provider-card",children:[e.jsxs("div",{className:"provider-card__head",children:[e.jsx("span",{className:"provider-card__brand",children:e.jsx(Z,{})}),e.jsx("h4",{children:s("settings.account.apiTitle")}),e.jsx("span",{className:"provider-card__eyebrow",children:_}),e.jsx("span",{className:`provider-chip provider-chip--${h?"err":p?"ok":"warn"}`,children:s(h?"settings.account.apiUnknown":p?"settings.account.apiReady":"settings.account.apiUnavailable")})]}),e.jsx("div",{className:"settings-row__copy",children:e.jsx("p",{children:s("settings.account.apiBody")})})]}):null,e.jsxs("article",{className:"provider-card",children:[e.jsxs("div",{className:"provider-card__head",children:[e.jsx("span",{className:"provider-card__brand",children:e.jsx(Ae,{})}),e.jsx("h4",{children:s("settings.account.grokTitle")}),e.jsx("span",{className:"provider-card__eyebrow",children:s("settings.account.grokEyebrow")}),e.jsx("span",{className:`provider-chip provider-chip--${se(i?.status)}`,children:ee(s,i?.status)})]}),e.jsx("div",{className:"settings-row__copy",children:e.jsx("p",{children:s("settings.account.grokBody")})}),e.jsx(Oe,{data:y.data,loading:y.loading,onRefresh:y.refreshQuota})]}),e.jsxs("article",{className:"provider-card",children:[e.jsxs("div",{className:"provider-card__head",children:[e.jsx("span",{className:"provider-card__brand",children:e.jsx(Be,{})}),e.jsx("h4",{children:s("settings.account.agyTitle")}),e.jsx("span",{className:"provider-card__eyebrow",children:s("settings.account.agyEyebrow")}),e.jsx("span",{className:`provider-chip provider-chip--${t?.installed?"ok":"warn"}`,children:t?.installed?s("settings.account.agyInstalled"):s("settings.account.agyMissing")})]}),e.jsxs("div",{className:"settings-row__copy",children:[t?.installed?e.jsx("p",{children:s("settings.account.agyInstalledBody")}):e.jsxs("p",{children:[s("settings.account.agyMissingBody")," ",e.jsx("a",{href:"https://antigravity.google/docs/cli-install",target:"_blank",rel:"noopener noreferrer",children:s("settings.account.agyMissingLink")})]}),e.jsx("p",{style:{fontSize:"12px",color:"var(--text-dim, #888)",marginTop:"4px"},children:s("settings.account.agyFineprint")})]})]}),m&&e.jsxs("article",{className:"settings-row settings-accordion",children:[e.jsxs("button",{type:"button",className:"settings-accordion__trigger",onClick:()=>x(!f),children:[e.jsx("h4",{children:s("settings.apiKeys.accordionTitle")}),e.jsx("span",{className:`settings-accordion__arrow${f?" is-open":""}`,children:"▼"})]}),f&&e.jsxs("div",{className:"settings-accordion__body",children:[e.jsx(D,{provider:"openai",label:s("settings.apiKeys.openai.label"),placeholder:s("settings.apiKeys.openai.placeholder"),maskedKey:m.openai?.maskedKey??null,source:m.openai?.source??"none",configured:m.openai?.configured??!1,onSaved:c}),e.jsx(D,{provider:"xai",label:s("settings.apiKeys.xai.label"),placeholder:s("settings.apiKeys.xai.placeholder"),maskedKey:m.xai?.maskedKey??null,source:m.xai?.source??"none",configured:m.xai?.configured??!1,onSaved:c}),e.jsx(D,{provider:"atlascloud",label:s("settings.apiKeys.atlascloud.label"),placeholder:s("settings.apiKeys.atlascloud.placeholder"),maskedKey:m.atlascloud?.maskedKey??null,source:m.atlascloud?.source??"none",configured:m.atlascloud?.configured??!1,onSaved:c}),e.jsx(D,{provider:"minimax",label:s("settings.apiKeys.minimax.label"),placeholder:s("settings.apiKeys.minimax.placeholder"),maskedKey:m.minimax?.maskedKey??null,source:m.minimax?.source??"none",configured:m.minimax?.configured??!1,onSaved:c}),e.jsx(D,{provider:"nai",label:s("settings.apiKeys.nai.label"),placeholder:s("settings.apiKeys.nai.placeholder"),maskedKey:m.nai?.maskedKey??null,source:m.nai?.source??"none",configured:m.nai?.configured??!1,onSaved:c}),e.jsx(Ee,{keyStatus:m,onSaved:c})]})]})]})}function Pe({variant:s}){const{t:n}=L(),[i,t]=r.useState(!1),a=r.useRef(null),h=r.useRef(null),m=r.useRef(null),c=r.useRef([]),[y,f]=r.useState({top:0,left:12,width:280,maxHeight:480}),x=S(o=>o.imageModel),d=S(o=>o.provider),_=S(o=>o.setImageModel),p=S(o=>o.setProvider),l=S(o=>o.videoModelSelected),j=S(o=>o.selectVideoModel),v=S(o=>o.reasoningEffort),C=S(o=>o.setReasoningEffort),E=s==="settings"?"settings-image-model":"sidebar-image-model",w=de,M=w.find(o=>o.value===x&&(!o.providerHint||o.providerHint===d))??w.find(o=>o.value===x)??w[0],P=W.find(o=>o.value===v)??W[0],O=()=>c.current.filter(o=>o!==null),A=o=>{const b=O();if(b.length===0)return;const g=(o+b.length)%b.length;b[g]?.focus()},$=o=>{const b=O();if(b.length===0)return;const g=b.findIndex(T=>T===document.activeElement),N=b.length-1;if(o.key==="ArrowDown"||o.key==="ArrowRight"){o.preventDefault(),A(g>=0?g+1:0);return}if(o.key==="ArrowUp"||o.key==="ArrowLeft"){o.preventDefault(),A(g>=0?g-1:N);return}if(o.key==="Home"){o.preventDefault(),A(0);return}if(o.key==="End"){o.preventDefault(),A(N);return}o.key==="Escape"&&(o.preventDefault(),t(!1),h.current?.focus())};if(r.useEffect(()=>{if(s!=="sidebar"||!i)return;const o=g=>{const N=g.target;N instanceof Node&&(a.current?.contains(N)||m.current?.contains(N)||t(!1))},b=g=>{g.key==="Escape"&&t(!1)};return document.addEventListener("pointerdown",o),document.addEventListener("keydown",b),()=>{document.removeEventListener("pointerdown",o),document.removeEventListener("keydown",b)}},[i,s]),r.useLayoutEffect(()=>{if(s!=="sidebar"||!i)return;(()=>{const N=h.current?.getBoundingClientRect();if(N){const R=Math.min(280,Math.max(218,window.innerWidth-24)),z=N.right-R,V=window.innerWidth-R-12,u=Math.max(12,Math.min(z,V)),k=N.bottom+7,K=Math.max(160,window.innerHeight-k-12);f({top:k,left:u,width:R,maxHeight:K})}})();const b=N=>{N&&m.current?.contains(N.target)||t(!1)},g=document.querySelector(".sidebar__scroll");return g?.addEventListener("scroll",b,{passive:!0}),window.addEventListener("scroll",b,!0),window.addEventListener("resize",b),()=>{g?.removeEventListener("scroll",b),window.removeEventListener("scroll",b,!0),window.removeEventListener("resize",b)}},[i,s]),r.useEffect(()=>{if(s!=="sidebar"||!i)return;const o=w.findIndex(g=>g.value===x),b=requestAnimationFrame(()=>{A(o>=0?o:0)});return()=>cancelAnimationFrame(b)},[x,w,i,s]),s==="sidebar"){const o=l?G.find(g=>g.value===l)?.shortLabel??G[0].shortLabel:M.shortLabel.split(" ")[0],b=Y(x)?M.shortLabel.split(" ")[1]||"":P.shortLabel;return e.jsxs("div",{ref:a,className:"image-model-select image-model-select--sidebar",children:[e.jsxs("button",{ref:h,id:E,type:"button",className:"image-model-select__trigger image-model-select__trigger--pill","aria-haspopup":"menu","aria-expanded":i,"aria-label":n("sidebar.quickSettingsAria",{model:o,effort:b}),onClick:()=>t(g=>!g),children:[e.jsxs("span",{className:"image-model-select__trigger-top",children:[e.jsx("span",{className:"image-model-select__trigger-model",children:o}),e.jsx("span",{className:"image-model-select__trigger-chevron","aria-hidden":"true",children:"▾"})]}),e.jsx("span",{className:"image-model-select__trigger-effort",children:b})]}),i?ue.createPortal(e.jsxs("div",{ref:m,className:"image-model-select__menu",role:"menu","aria-label":n("sidebar.quickSettingsMenu"),onKeyDown:$,style:{position:"fixed",top:y.top,left:y.left,width:y.width,maxHeight:y.maxHeight,overflowY:"auto",zIndex:160},children:[e.jsxs("div",{className:"image-model-select__section",role:"group","aria-label":n("sidebar.imageSectionLabel"),children:[e.jsx("div",{className:"image-model-select__section-title",children:n("sidebar.imageSectionLabel")}),e.jsx("div",{className:"image-model-select__subsection-title",children:n("sidebar.gptImageSubLabel")}),J.map((g,N)=>e.jsxs("button",{ref:T=>{c.current[N]=T},type:"button",className:`image-model-select__item${g.value===x&&!l?" is-active":""}`,role:"menuitemradio","aria-checked":g.value===x&&!l,tabIndex:-1,onClick:()=>{_(g.value),t(!1)},children:[e.jsx("span",{children:g.shortLabel}),e.jsx("small",{children:n(g.fullLabelKey)})]},g.value)),e.jsx("div",{className:"image-model-select__subsection-title",children:n("sidebar.grokImageSubLabel")}),X.map((g,N)=>e.jsxs("button",{ref:T=>{c.current[J.length+N]=T},type:"button",className:`image-model-select__item${g.value===x&&!l?" is-active":""}`,role:"menuitemradio","aria-checked":g.value===x&&!l,tabIndex:-1,onClick:()=>{_(g.value),t(!1)},children:[e.jsx("span",{children:g.shortLabel}),e.jsx("small",{children:n(g.fullLabelKey)})]},g.value)),e.jsx("div",{className:"image-model-select__subsection-title",children:n("sidebar.geminiImageSubLabel")}),ge.map((g,N)=>{const T=g.providerHint,R=g.value===x&&T===d&&!l;return e.jsxs("button",{ref:z=>{c.current[J.length+X.length+N]=z},type:"button",className:`image-model-select__item${R?" is-active":""}`,role:"menuitemradio","aria-checked":R,tabIndex:-1,onClick:()=>{T&&p(T),_(g.value),t(!1)},children:[e.jsx("span",{children:g.shortLabel}),e.jsx("small",{children:n(g.fullLabelKey)})]},`${g.value}-${T||N}`)})]}),e.jsxs("div",{className:"image-model-select__section",role:"group","aria-label":n("sidebar.videoSectionLabel"),children:[e.jsx("div",{className:"image-model-select__section-title",children:n("sidebar.videoSectionLabel")}),G.map((g,N)=>e.jsxs("button",{ref:T=>{c.current[w.length+N]=T},type:"button",className:`image-model-select__item${l===g.value?" is-active":""}`,role:"menuitemradio","aria-checked":l===g.value,tabIndex:-1,onClick:()=>{j(g.value),t(!1)},children:[e.jsx("span",{children:g.shortLabel}),e.jsx("small",{children:n(g.fullLabelKey)})]},g.value))]}),!Y(x)&&e.jsxs("details",{className:"image-model-select__section image-model-select__collapsible",children:[e.jsxs("summary",{className:"image-model-select__section-title image-model-select__section-title--toggle",children:[n("sidebar.reasoningLabel"),e.jsx("span",{className:"image-model-select__chevron","aria-hidden":"true",children:"▸"})]}),e.jsx("div",{role:"group","aria-label":n("sidebar.reasoningLabel"),children:W.map((g,N)=>e.jsxs("button",{ref:T=>{c.current[w.length+G.length+N]=T},type:"button",className:`image-model-select__item${g.value===v?" is-active":""}`,role:"menuitemradio","aria-checked":g.value===v,tabIndex:-1,onClick:()=>{C(g.value),t(!1)},children:[e.jsx("span",{children:g.shortLabel}),e.jsx("small",{children:n(g.fullLabelKey)})]},g.value))})]})]}),document.body):null]})}return e.jsx("div",{className:"image-model-select image-model-select--settings",children:e.jsx(F,{id:E,value:x,onChange:o=>_(o),items:[...w.map(o=>({value:o.value,label:n(o.fullLabelKey)})),...me.map(o=>({value:o.value,label:n(o.fullLabelKey),disabled:!0}))]})})}function $e(){const{t:s}=L(),n=S(a=>a.reasoningEffort),i=S(a=>a.setReasoningEffort),t=W.map(a=>({value:a.value,label:s(a.fullLabelKey)}));return e.jsx("div",{className:"ctl-select-wrap settings-reasoning-effort",children:e.jsx(F,{id:"settings-reasoning-effort",items:t,value:n,onChange:i})})}const qe={ko:"KO",en:"EN","zh-Hant":"正體","zh-Hans":"简体"};function Fe(){const{t:s,locale:n}=L(),i=S(t=>t.setLocale);return e.jsx("div",{className:"lang-toggle",role:"group","aria-label":s("language.label"),children:he.map(t=>e.jsx("button",{type:"button",className:`lang-toggle__btn ${n===t?"is-active":""}`,onClick:()=>i(t),"aria-pressed":n===t,title:s(`language.${t}`),children:e.jsx("span",{className:"lang-toggle__label",children:qe[t]})},t))})}const De=["light","dark","system"];function ze(){const{t:s}=L(),{mode:n,setMode:i}=pe();return e.jsx("div",{className:"lang-toggle",role:"group","aria-label":s("settings.theme.label"),children:De.map(t=>e.jsx("button",{type:"button",className:`lang-toggle__btn ${n===t?"is-active":""}`,onClick:()=>i(t),"aria-pressed":n===t,title:s(`settings.theme.${t}`),children:e.jsx("span",{className:"lang-toggle__label",children:s(`settings.theme.${t}`)})},t))})}const Ge=["rail","horizontal","sidebar"];function Ue(){const{t:s}=L(),n=S(t=>t.historyStripLayout),i=S(t=>t.setHistoryStripLayout);return e.jsx(fe,{className:"history-layout-toggle",items:Ge.map(t=>({value:t,label:s(`settings.appearance.historyStripLayout.${t}`)})),value:n,onChange:i})}const He=[{value:"default",labelKey:"workspace.defaultLabel",descKey:"workspace.defaultDesc"},{value:"prompt-studio",labelKey:"workspace.promptStudioLabel",descKey:"workspace.promptStudioDesc"}];function We(){const s=S(t=>t.workspaceProfile),n=S(t=>t.setWorkspaceProfile),{t:i}=L();return e.jsx("div",{className:"settings-field",children:e.jsx(F,{id:"workspace-profile-select",value:s,onChange:t=>n(t),ariaLabel:i("workspace.profileLabel"),items:He.map(t=>({value:t.value,label:i(t.labelKey)}))})})}function Ve(){const{t:s}=L(),[n,i]=r.useState(null);r.useEffect(()=>{fetch("/api/config/grok-planner").then(a=>a.json()).then(i).catch(()=>{})},[]);const t=async a=>{try{await fetch("/api/config/grok-planner",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:a})}),i(h=>h?{...h,model:a}:null)}catch{}};return n?e.jsxs("article",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row__copy",children:[e.jsx("h4",{children:s("settings.grokPlanner.title")}),e.jsx("p",{children:s("settings.grokPlanner.body")})]}),e.jsx("div",{className:"settings-row__control",children:e.jsx(F,{items:n.options.map(a=>({value:a,label:a})),value:n.model,onChange:a=>{t(a)},ariaLabel:s("settings.grokPlanner.title")})})]}):null}function Je(s){return s==="connected"?"ok":s==="error"||s==="offline"?"err":"warn"}function Qe(s){const n=s.status.snapshotDiff;return n?n.drifted.length+n.missing.length+n.added.length:0}function Ye(){const{t:s}=L(),{providers:n,loading:i,error:t,refresh:a}=xe(),[h,m]=r.useState(null),[c,y]=r.useState(!1),[f,x]=r.useState(null),d=async()=>{if(!c){y(!0);try{await a()}finally{y(!1)}}},_=async(p,l)=>{m({provider:p.id,action:l}),x(null);try{l==="connect"?await ye(p.id):l==="refresh"?await je(p.id):await ve(p.id),await a()}catch(j){const v=j instanceof Error&&j.message==="MCP_POPUP_BLOCKED"?s("mcp.popupBlocked"):s("mcp.connectionActionFailed");x({provider:p.id,message:v})}finally{m(null)}};return e.jsxs("div",{"aria-labelledby":"mcp-provider-connections-title",children:[e.jsxs("article",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row__copy",children:[e.jsx("h4",{id:"mcp-provider-connections-title",children:s("mcp.connectionsTitle")}),e.jsx("p",{children:s("mcp.connectionsBody")})]}),e.jsx("div",{className:"settings-row__control",children:e.jsx("button",{type:"button",className:"settings-action-btn",onClick:()=>{d()},disabled:i||c,"aria-busy":i||c,children:s(i||c?"mcp.loadingProviders":"mcp.refreshList")})})]}),t?e.jsx("p",{role:"alert",className:"settings-row__microcopy",children:s("mcp.providersLoadFailed")}):null,n.map(p=>{const l=p.status.state,j=!p.enabled||p.executable===!1,v=h?.provider===p.id?h.action:null,C=v!==null,E=Qe(p);return e.jsxs("article",{className:"provider-card",children:[e.jsxs("div",{className:"provider-card__head",children:[e.jsx("h4",{children:p.id}),e.jsx("span",{className:"provider-card__eyebrow",children:"MCP"}),e.jsx("span",{className:`provider-chip provider-chip--${Je(l)}`,children:s(`mcp.status.${l}`)})]}),e.jsxs("div",{className:"settings-row__copy",children:[e.jsx("p",{children:p.endpoint}),e.jsxs("p",{children:[typeof p.status.toolCount=="number"?s("mcp.toolCount",{count:p.status.toolCount}):s("mcp.toolCountUnknown"),E>0?` · ${s("mcp.snapshotChanges",{count:E})}`:""]}),j?e.jsx("p",{className:"settings-row__microcopy",children:p.enabled?p.lockReason??s("mcp.higgsfieldLocked"):s("mcp.disabledProvider")}):p.status.detail?e.jsx("p",{className:"settings-row__microcopy",children:p.status.detail}):null,f?.provider===p.id?e.jsx("p",{role:"alert",className:"settings-row__microcopy",children:f.message}):null]}),e.jsxs("div",{className:"provider-card__head",children:[e.jsx("span",{className:"provider-card__eyebrow",children:s("mcp.billingLabel")}),e.jsx("span",{className:"provider-chip provider-chip--warn",children:s("mcp.billingUnknown")})]}),e.jsx("div",{className:"settings-row__control","aria-live":"polite",children:l==="connected"&&!j?e.jsxs(e.Fragment,{children:[e.jsx("button",{type:"button",className:"settings-action-btn",onClick:()=>{_(p,"refresh")},disabled:C,"aria-busy":v==="refresh",children:s(v==="refresh"?"mcp.refreshingConnection":"mcp.refreshConnection")}),e.jsx("button",{type:"button",className:"settings-action-btn settings-action-btn--danger",onClick:()=>{_(p,"disconnect")},disabled:C,"aria-busy":v==="disconnect",children:s("mcp.disconnect")})]}):e.jsx("button",{type:"button",className:"settings-action-btn",onClick:()=>{_(p,"connect")},disabled:C||j,"aria-busy":v==="connect",title:s(j?"mcp.higgsfieldLocked":"mcp.connectOpensBrowser"),children:s(v==="connect"?"mcp.connecting":"mcp.connect")})})]},p.id)})]})}const Xe=[137,80,78,71,13,10,26,10];async function Ze(s){const n=new Uint8Array(await s.arrayBuffer());if(Xe.every((t,a)=>n[a]===t)){let t="";for(const a of n)t+=String.fromCharCode(a);return{pngBase64:btoa(t)}}return{graph:JSON.parse(new TextDecoder().decode(n))}}const te=["prompt","negativePrompt","width","height","seed","refImage","output"];function U(s){return s.input?`${s.node}.${s.input}`:s.node}function es(){const{t:s}=L(),[n,i]=r.useState([]),[t,a]=r.useState(!0),[h,m]=r.useState(null),[c,y]=r.useState(null),[f,x]=r.useState({}),[d,_]=r.useState(""),[p,l]=r.useState(""),[j,v]=r.useState("image"),[C,E]=r.useState("http://127.0.0.1:8188"),[w,M]=r.useState({kind:"idle"}),[P,O]=r.useState(null),[A,$]=r.useState(!1),o=r.useRef(null),b=r.useCallback(async()=>{a(!0);try{const u=await be();i(u.workflows)}catch{i([])}finally{a(!1)}},[]);r.useEffect(()=>{b()},[b]);const g=async u=>{if(u){O(null);try{const k=await Ze(u),K=await we(k);y(k),m(K),v(K.mediaKind??"image");const q={};for(const I of K.candidates)I.unambiguous&&(q[I.field]=U(I));x(q),d||_(u.name.replace(/\.[^.]+$/,"").toLowerCase().replace(/[^a-z0-9_-]+/g,"-").slice(0,64))}catch(k){m(null),y(null),O(k instanceof Error?k.message:s("comfy.inspectFailed"))}}},N=async()=>{M({kind:"idle"});try{const u=await Ne(C);M(u.health.ok?{kind:"ok",...u.health.version?{detail:u.health.version}:{}}:{kind:"unreachable"})}catch(u){M({kind:"invalid",detail:u instanceof Error?u.message:void 0})}},T=(h?.candidates??[]).filter(u=>!u.unambiguous).map(u=>u.field).filter((u,k,K)=>K.indexOf(u)===k).filter(u=>!f[u]),R=!!(h&&d&&f.prompt&&f.output&&T.length===0&&!A),z=async()=>{if(!(!R||!c)){$(!0),O(null);try{const u={};for(const k of te){const K=f[k];if(!K)continue;if(k==="output"){u.output={node:K};continue}const q=K.indexOf(".");u[k]={node:K.slice(0,q),input:K.slice(q+1)}}await ke({...c,id:d,...p?{label:p}:{},origin:C,mediaKind:j,bind:u}),m(null),y(null),x({}),_(""),l(""),v("image"),o.current&&(o.current.value=""),await b()}catch(u){O(u instanceof Error?u.message:s("comfy.registerFailed"))}finally{$(!1)}}},V=async u=>{$(!0);try{await _e(u),await b()}catch(k){O(k instanceof Error?k.message:s("comfy.removeFailed"))}finally{$(!1)}};return e.jsxs("div",{"aria-labelledby":"comfy-workflow-manager-title",children:[e.jsx("article",{className:"settings-row",children:e.jsxs("div",{className:"settings-row-main",children:[e.jsx("div",{className:"section-title",id:"comfy-workflow-manager-title",children:s("comfy.workflowsTitle")}),t?e.jsx("div",{className:"muted",children:s("comfy.loading")}):null,!t&&n.length===0?e.jsx("div",{className:"muted",children:s("comfy.empty")}):null,n.length>0?e.jsxs("table",{className:"comfy-workflow-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{scope:"col",children:s("comfy.colId")}),e.jsx("th",{scope:"col",children:s("comfy.colKind")}),e.jsx("th",{scope:"col",children:s("comfy.colOrigin")}),e.jsx("th",{scope:"col",children:s("comfy.colStatus")}),e.jsx("th",{scope:"col",children:e.jsx("span",{className:"sr-only",children:s("comfy.colActions")})})]})}),e.jsx("tbody",{children:n.map(u=>{const k=u.health?.ok===!0,K=`comfy-status-${u.id}`;return e.jsxs("tr",{children:[e.jsx("td",{children:u.label||u.id}),e.jsx("td",{children:s(u.mediaKind==="video"?"comfy.kindVideo":"comfy.kindImage")}),e.jsx("td",{className:"mono",children:u.origin}),e.jsx("td",{id:K,children:e.jsx("span",{className:k?"status-ok":"status-warn",children:s(k?"comfy.statusReady":"comfy.statusOffline")})}),e.jsx("td",{children:e.jsx("button",{type:"button",onClick:()=>{V(u.id)},disabled:A,"aria-describedby":K,children:s("comfy.remove")})})]},u.id)})})]}):null]})}),e.jsx("article",{className:"settings-row",children:e.jsxs("div",{className:"settings-row-main",children:[e.jsx("div",{className:"section-title",children:s("comfy.addTitle")}),e.jsxs("div",{className:"comfy-field",children:[e.jsx("label",{htmlFor:"comfy-file",children:s("comfy.fileLabel")}),e.jsx("input",{id:"comfy-file",ref:o,type:"file",accept:".json,.png,application/json,image/png",onChange:u=>{g(u.target.files?.[0])}})]}),e.jsxs("div",{className:"comfy-field",children:[e.jsx("label",{htmlFor:"comfy-origin",children:s("comfy.originLabel")}),e.jsxs("div",{className:"comfy-origin-row",children:[e.jsx("input",{id:"comfy-origin",value:C,onChange:u=>{E(u.target.value),M({kind:"idle"})},spellCheck:!1}),e.jsx("button",{type:"button",onClick:()=>{N()},children:s("comfy.checkOrigin")})]})]}),w.kind==="ok"?e.jsxs("div",{className:"status-ok",children:[s("comfy.originReachable"),w.detail?` (${w.detail})`:""]}):null,w.kind==="unreachable"?e.jsx("div",{className:"status-warn",children:s("comfy.originUnreachable")}):null,w.kind==="invalid"?e.jsx("div",{className:"status-err",children:s("comfy.originInvalid")}):null,h?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"comfy-field",children:[e.jsx("label",{htmlFor:"comfy-id",children:s("comfy.idLabel")}),e.jsx("input",{id:"comfy-id",value:d,onChange:u=>_(u.target.value),spellCheck:!1})]}),e.jsxs("div",{className:"comfy-field",children:[e.jsx("label",{htmlFor:"comfy-label",children:s("comfy.labelLabel")}),e.jsx("input",{id:"comfy-label",value:p,onChange:u=>l(u.target.value)})]}),e.jsxs("div",{className:"comfy-field",children:[e.jsx("label",{htmlFor:"comfy-kind",children:s("comfy.kindLabel")}),e.jsxs("select",{id:"comfy-kind",value:j,onChange:u=>v(u.target.value),children:[e.jsx("option",{value:"image",children:s("comfy.kindImage")}),e.jsx("option",{value:"video",children:s("comfy.kindVideo")})]}),j==="video"?e.jsx("div",{className:"muted",children:s("comfy.videoKindHint")}):null]}),e.jsx("div",{className:"section-title",children:s("comfy.bindTitle")}),h.needsConfirmation?e.jsx("div",{className:"muted",children:s("comfy.bindAmbiguous")}):null,te.map(u=>{const k=h.candidates.filter(I=>I.field===u);if(k.length===0)return null;const K=k.some(I=>!I.unambiguous),q=`comfy-bind-${u}`;return e.jsxs("div",{className:"comfy-bind-row",children:[e.jsx("label",{htmlFor:q,children:s(`comfy.field.${u}`)}),e.jsxs("select",{id:q,value:f[u]??"",onChange:I=>x(ie=>({...ie,[u]:I.target.value})),"aria-invalid":K&&!f[u],children:[e.jsx("option",{value:"",children:s("comfy.choose")}),k.map(I=>e.jsxs("option",{value:U(I),children:[U(I)," — ",I.classType,I.title?` "${I.title}"`:""]},U(I)))]})]},u)}),e.jsx("button",{type:"button",onClick:()=>{z()},disabled:!R,children:s("comfy.register")})]}):null,P?e.jsx("div",{className:"status-err",role:"alert",children:P}):null]})})]})}function ss(s,n){return n(s==="auto"?"promptBuilder.backends.auto":s==="oauth"?"promptBuilder.backends.oauth":s==="grok"?"promptBuilder.backends.grok":s==="api"?"promptBuilder.backends.api":"promptBuilder.backends.grokApi")}function ts(){const{t:s}=L(),n=B(d=>d.backend),i=B(d=>d.model),t=B(d=>d.backendOptions),a=B(d=>d.modelOptions),h=B(d=>d.locked),m=B(d=>d.configLoaded),c=B(d=>d.configLoading),y=B(d=>d.error),f=B(d=>d.loadConfig),x=B(d=>d.updateConfig);return r.useEffect(()=>{f()},[f]),e.jsxs(e.Fragment,{children:[e.jsxs("article",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row__copy",children:[e.jsx("h4",{children:s("settings.promptBuilder.title")}),e.jsx("p",{children:s("settings.promptBuilder.body")}),h.backend||h.model?e.jsx("p",{className:"settings-row__microcopy",children:s("settings.promptBuilder.envLocked")}):null,c?e.jsx("p",{className:"settings-row__microcopy",children:s("promptBuilder.configLoading")}):null,y?e.jsx("p",{className:"settings-row__microcopy",role:"alert",children:y}):null]}),e.jsx("div",{className:"settings-row__control",children:e.jsx(F,{value:n,items:t.map(d=>({value:d,label:ss(d,s)})),onChange:d=>{x(d)},ariaLabel:s("settings.promptBuilder.backendLabel"),disabled:!m||c||h.backend||h.model})})]}),e.jsxs("article",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row__copy",children:[e.jsx("h4",{children:s("settings.promptBuilder.modelLabel")}),e.jsx("p",{children:s("settings.promptBuilder.modelBody")})]}),e.jsx("div",{className:"settings-row__control",children:e.jsx(F,{value:i,items:a.map(d=>({value:d,label:d==="auto"?s("promptBuilder.modelAuto"):d})),onChange:d=>{x(n,d)},ariaLabel:s("settings.promptBuilder.modelLabel"),disabled:!m||c||h.model})})]})]})}const H=["providers","workspace","general"];function Q({id:s,setRef:n,children:i}){const{t}=L();return e.jsxs("section",{id:s,ref:a=>n(s,a),className:"settings-section","aria-labelledby":`settings-section-${s}`,children:[e.jsx("header",{className:"settings-section__header",children:e.jsx("h3",{id:`settings-section-${s}`,children:t(`settings.sections.${s}.title`)})}),e.jsx("div",{className:"settings-section__body",children:i})]})}function is(){const{t:s}=L(),n=S(l=>l.activeSettingsSection),i=S(l=>l.setActiveSettingsSection),t=S(l=>l.closeSettings),a=S(l=>l.openReadinessPopup),h=S(l=>l.galleryDefaultScope),m=S(l=>l.setGalleryDefaultScope),c=S(l=>l.provider),y=r.useRef(null),f=r.useRef(null),x=r.useRef(!1),d=r.useRef({providers:null,workspace:null,general:null}),_=(l,j)=>{d.current[l]=j},p=l=>{i(l),x.current=!0;const j=y.current,v=d.current[l];if(j&&v){const C=j.getBoundingClientRect().top,E=v.getBoundingClientRect().top,w=Number.parseFloat(window.getComputedStyle(v).scrollMarginTop)||0;j.scrollTo({top:j.scrollTop+E-C-w,behavior:"auto"})}f.current!==null&&window.clearTimeout(f.current),f.current=window.setTimeout(()=>{x.current=!1,f.current=null},120)};return r.useEffect(()=>{const l=j=>{j.key==="Escape"&&t()};return window.addEventListener("keydown",l),()=>window.removeEventListener("keydown",l)},[t]),r.useEffect(()=>{const l=y.current;if(!l||typeof IntersectionObserver!="function")return;const j=new IntersectionObserver(v=>{if(x.current)return;const E=v.filter(w=>w.isIntersecting).sort((w,M)=>M.intersectionRatio-w.intersectionRatio)[0]?.target.id;E&&H.includes(E)&&i(E)},{root:l,threshold:[.35,.6]});for(const v of H){const C=d.current[v];C&&j.observe(C)}return()=>j.disconnect()},[i]),r.useEffect(()=>()=>{f.current!==null&&window.clearTimeout(f.current)},[]),e.jsx("main",{className:"settings-workspace","aria-labelledby":"settings-title",children:e.jsxs("div",{className:"settings-shell",children:[e.jsxs("header",{className:"settings-header",children:[e.jsx("div",{children:e.jsx("h2",{id:"settings-title",children:s("settings.title")})}),e.jsx("button",{type:"button",className:"settings-close",onClick:t,"aria-label":s("settings.closeAria"),title:s("settings.closeTitle"),children:e.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round","aria-hidden":"true",children:[e.jsx("path",{d:"M18 6 6 18"}),e.jsx("path",{d:"m6 6 12 12"})]})})]}),e.jsxs("div",{className:"settings-layout",children:[e.jsx("nav",{className:"settings-nav settings-nav--mobile","aria-label":s("settings.navAria"),children:e.jsx("div",{className:"settings-mobile-nav",role:"list",children:H.map(l=>e.jsxs("button",{type:"button",className:`settings-mobile-nav__item${n===l?" is-active":""}`,onClick:()=>p(l),"aria-current":n===l?"true":void 0,children:[e.jsx("span",{children:s(`settings.sections.${l}.title`)}),e.jsx("small",{children:s(`settings.sections.${l}.hint`)})]},l))})}),e.jsx("nav",{className:"settings-nav","aria-label":s("settings.navAria"),children:H.map(l=>e.jsxs("button",{type:"button",className:`settings-nav__item${n===l?" is-active":""}`,onClick:()=>p(l),"aria-label":s("settings.jumpTo",{section:s(`settings.sections.${l}.title`)}),children:[e.jsx("span",{children:s(`settings.sections.${l}.title`)}),e.jsx("small",{children:s(`settings.sections.${l}.hint`)})]},l))}),e.jsxs("section",{ref:y,className:"settings-content","aria-label":s("settings.contentAria"),children:[e.jsxs(Q,{id:"providers",setRef:_,children:[e.jsx(Re,{}),e.jsx(Ye,{}),e.jsx(es,{}),e.jsxs("article",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row__copy",children:[e.jsx("h4",{children:s("readiness.settingsTitle")}),e.jsx("p",{children:s("readiness.settingsBody")})]}),e.jsx("div",{className:"settings-row__control",children:e.jsx("button",{type:"button",className:"settings-action-btn",onClick:a,children:s("readiness.open")})})]}),e.jsxs("article",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row__copy",children:[e.jsx("h4",{children:s("settings.imageModel.title")}),e.jsx("p",{children:s("settings.imageModel.body")}),e.jsx("p",{className:"settings-row__microcopy",children:s("settings.imageModel.unsupportedHelp")})]}),e.jsx("div",{className:"settings-row__control",children:e.jsx(Pe,{variant:"settings"})})]}),e.jsx(ts,{}),c==="grok"?e.jsxs(e.Fragment,{children:[e.jsx("article",{className:"settings-row",children:e.jsxs("div",{className:"settings-row__copy",children:[e.jsx("h4",{children:s("settings.grokCompatibility.title")}),e.jsx("p",{children:s("settings.grokCompatibility.body")})]})}),e.jsx(Ve,{})]}):c==="agy"||c==="gemini-api"?e.jsx("article",{className:"settings-row",children:e.jsxs("div",{className:"settings-row__copy",children:[e.jsx("h4",{children:s(c==="gemini-api"?"provider.geminiApiCompatTitle":"provider.agyCompatTitle")}),e.jsx("p",{children:s(c==="gemini-api"?"provider.geminiApiCompatBodyLong":"provider.agyCompatBodyLong")})]})}):e.jsxs(e.Fragment,{children:[e.jsxs("article",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row__copy",children:[e.jsx("h4",{children:s("settings.reasoning.title")}),e.jsx("p",{children:s("settings.reasoning.body")})]}),e.jsx("div",{className:"settings-row__control",children:e.jsx($e,{})})]}),e.jsxs("article",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row__copy",children:[e.jsx("h4",{children:s("settings.webSearch.title")}),e.jsx("p",{children:s("settings.webSearch.body")})]}),e.jsx("div",{className:"settings-row__control",children:e.jsx(Se,{})})]})]})]}),e.jsxs(Q,{id:"workspace",setRef:_,children:[e.jsxs("article",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row__copy",children:[e.jsx("h4",{children:s("workspace.sectionTitle")}),e.jsx("p",{children:s("workspace.sectionBody")})]}),e.jsx("div",{className:"settings-row__control",children:e.jsx(We,{})})]}),e.jsxs("article",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row__copy",children:[e.jsx("h4",{children:s("settings.appearance.historyStripLayoutTitle")}),e.jsx("p",{children:s("settings.appearance.historyStripLayoutBody")})]}),e.jsx("div",{className:"settings-row__control",children:e.jsx(Ue,{})})]}),e.jsxs("article",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row__copy",children:[e.jsx("h4",{children:s("settings.gallery.defaultScopeTitle")}),e.jsx("p",{children:s("settings.gallery.defaultScopeBody")})]}),e.jsx("div",{className:"settings-row__control",children:e.jsx(F,{ariaLabel:s("settings.gallery.defaultScopeTitle"),value:h,onChange:l=>m(l),items:[{value:"current-session",label:s("gallery.scope.current")},{value:"all",label:s("gallery.scope.all")}]})})]})]}),e.jsxs(Q,{id:"general",setRef:_,children:[e.jsxs("article",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row__copy",children:[e.jsx("h4",{children:s("settings.language.title")}),e.jsx("p",{children:s("settings.language.body")})]}),e.jsx("div",{className:"settings-row__control",children:e.jsx(Fe,{})})]}),e.jsxs("article",{className:"settings-row",children:[e.jsxs("div",{className:"settings-row__copy",children:[e.jsx("h4",{children:s("settings.theme.title")}),e.jsx("p",{children:s("settings.theme.body")})]}),e.jsx("div",{className:"settings-row__control",children:e.jsx(ze,{})})]})]})]})]})]})})}export{is as SettingsWorkspace};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{u as d,j as e,a as x,p as j,b as m}from"./index-DueH_AmZ.js";import{P as v}from"./AssetGenWorkspace-CleWSwPz.js";import"./KeyingPanel-DT8zsqpi.js";import"./useAgentDialogFocus-DPB8JITN.js";function g({draft:i,disabled:s,errors:r,onChange:l,onSubmit:a}){const{t:n}=d(),c=t=>e.jsxs("label",{children:[n(`sprite.recipe.${t}`),e.jsx("input",{value:i[t],disabled:s,"aria-invalid":!!r[t],onChange:p=>l({[t]:p.target.value})}),r[t]?e.jsx("span",{role:"alert",children:r[t]}):null]});return e.jsxs("form",{className:"sprite-recipe-form",onSubmit:t=>{t.preventDefault(),a()},children:[c("name"),c("characterId"),c("description"),c("style"),c("baseAssetId"),e.jsxs("fieldset",{children:[e.jsx("legend",{children:n("sprite.cell.title")}),["width","height","safeMarginX","safeMarginY"].map(t=>e.jsxs("label",{children:[n(`sprite.cell.${t}`),e.jsx("input",{type:"number",min:"0",value:i.cell[t],onChange:p=>l({cell:{...i.cell,[t]:Number(p.target.value)}})})]},t))]}),e.jsxs("label",{children:[n("sprite.chroma.hex"),e.jsx("input",{type:"color",value:i.chroma.hex,onChange:t=>l({chroma:{...i.chroma,hex:t.target.value}})})]}),e.jsxs("fieldset",{children:[e.jsx("legend",{children:n("sprite.states.title")}),i.states.map((t,p)=>e.jsxs("div",{className:"sprite-state",children:[e.jsx("input",{"aria-label":n("sprite.states.key"),value:t.key,onChange:u=>l({states:i.states.map((o,h)=>h===p?{...o,key:u.target.value}:o)})}),e.jsx("input",{"aria-label":n("sprite.states.frames"),type:"number",min:"1",value:t.frames,onChange:u=>l({states:i.states.map((o,h)=>h===p?{...o,frames:Number(u.target.value)}:o)})}),e.jsx("button",{type:"button",onClick:()=>l({states:i.states.filter((u,o)=>o!==p)}),children:n("sprite.states.remove")})]},`${t.key}-${p}`)),e.jsx("button",{type:"button",onClick:()=>l({states:[...i.states,{key:"",frames:4,fps:8,loop:!0,action:""}]}),children:n("sprite.states.add")})]}),e.jsx("button",{className:"assetgen-generate",disabled:s||!i.name.trim()||!i.characterId.trim(),children:n(s?"sprite.recipe.saving":"sprite.recipe.save")})]})}function b({onCancel:i,onConfirm:s}){const{t:r}=d(),l=j(!0,i);return e.jsxs("div",{className:"sprite-anchor-dialog",role:"dialog","aria-modal":"true","aria-labelledby":"sprite-confirm-title",ref:l,children:[e.jsx("h3",{id:"sprite-confirm-title",children:r("sprite.anchor.confirmTitle")}),e.jsx("p",{children:r("sprite.anchor.confirmBody")}),e.jsx("button",{"data-modal-initial-focus":!0,onClick:i,children:r("sprite.anchor.cancel")}),e.jsx("button",{onClick:s,children:r("sprite.anchor.confirm")})]})}function f({recipe:i,candidate:s,generating:r,onGenerate:l,onApprove:a}){const{t:n}=d(),[c,t]=x.useState(!1);return e.jsxs("section",{className:"sprite-anchor-gate","aria-labelledby":"sprite-anchor-title",children:[e.jsx("h2",{id:"sprite-anchor-title",children:n("sprite.anchor.title")}),s?e.jsxs(e.Fragment,{children:[e.jsx("img",{src:s.url,alt:""}),e.jsx("p",{children:n("sprite.anchor.candidate")}),e.jsx("button",{onClick:l,disabled:r,children:n("sprite.anchor.regenerate")}),e.jsx("button",{onClick:()=>t(!0),children:n("sprite.anchor.approve")})]}):e.jsxs(e.Fragment,{children:[e.jsx("p",{children:n(i.anchorStatus==="approved"?"sprite.anchor.approved":"sprite.anchor.missing")}),e.jsx("button",{onClick:l,disabled:r,children:n(r?"sprite.anchor.generating":"sprite.anchor.generate")})]}),c?e.jsx(b,{onCancel:()=>t(!1),onConfirm:()=>{a(s.assetId),t(!1)}}):null]})}function S({recipe:i,selected:s,onSelectionChange:r,onGenerate:l,onCancel:a,onPreview:n}){const{t:c}=d();return e.jsxs("section",{className:"sprite-row-list","aria-live":"polite",children:[e.jsx("h2",{children:c("sprite.rows.title")}),e.jsxs("div",{className:"sprite-row-actions",children:[e.jsx("button",{onClick:()=>l(),children:c("sprite.rows.generateAll")}),e.jsx("button",{disabled:!s.length,onClick:()=>l(s),children:c("sprite.rows.generateSelected")})]}),i.rows.map(t=>e.jsxs("article",{children:[e.jsxs("label",{children:[e.jsx("input",{type:"checkbox",checked:s.includes(t.stateKey),onChange:()=>r(s.includes(t.stateKey)?s.filter(p=>p!==t.stateKey):[...s,t.stateKey])}),t.stateKey]}),e.jsx("span",{children:c(`sprite.rows.status.${t.status}`)}),t.progress!=null?e.jsx("progress",{value:t.progress,max:"100"}):null,t.imageUrl||t.previewUrl?e.jsxs("button",{onClick:()=>n(t),children:[e.jsx("img",{src:t.imageUrl||t.previewUrl,alt:""}),c("sprite.rows.preview")]}):null,t.status==="error"?e.jsx("button",{onClick:()=>l([t.stateKey]),children:c("sprite.rows.regenerate")}):null,t.requestId&&(t.status==="running"||t.status==="queued")?e.jsx("button",{onClick:()=>a(t.requestId),children:c("sprite.rows.cancel")}):null,t.error?e.jsx("p",{role:"alert",children:t.error}):null]},t.stateKey))]})}function I(){const{t:i}=d(),s=m();x.useEffect(()=>{s.loadSpriteRecipes()},[]);const r=s.activeSpriteRecipe,l=s.spriteRecipeDraft.name.trim()?{}:{name:i("sprite.error.INVALID_SPRITE_RECIPE")};return e.jsxs("section",{className:"sprite-recipe-workspace",children:[e.jsxs("aside",{children:[e.jsx(v,{}),e.jsxs("label",{children:[i("sprite.recipe.select"),e.jsxs("select",{value:s.activeSpriteRecipeId??"",onChange:a=>{s.selectSpriteRecipe(a.target.value||null)},children:[e.jsx("option",{value:"",children:i("sprite.recipe.new")}),s.spriteRecipes.map(a=>e.jsx("option",{value:a.id,children:a.name},a.id))]})]}),e.jsx(g,{draft:s.spriteRecipeDraft,disabled:s.spriteRecipeSaving,errors:l,onChange:s.updateSpriteRecipeDraft,onSubmit:()=>{s.saveSpriteRecipe()}})]}),e.jsxs("main",{children:[s.spriteRecipeError?e.jsxs("div",{role:"alert",children:[s.spriteRecipeError,e.jsx("button",{onClick:()=>{s.loadSpriteRecipes()},children:i("sprite.retry")})]}):null,s.spriteRecipeLoading?e.jsx("p",{role:"status",children:i("sprite.loading")}):r?r.anchorStatus!=="approved"?e.jsx(f,{recipe:r,candidate:r.candidate??null,generating:s.spriteRecipeGenerating,onGenerate:()=>{s.generateSpriteAnchor()},onApprove:a=>{s.approveSpriteAnchor(a)}}):e.jsx(S,{recipe:r,selected:s.spriteSelectedStates,onSelectionChange:a=>m.setState({spriteSelectedStates:a}),onGenerate:a=>{s.generateSpriteRows(a)},onCancel:a=>{s.cancelSpriteJob(a)},onPreview:()=>{}}):e.jsxs("div",{className:"sprite-empty",children:[e.jsx("h2",{children:i("sprite.empty.title")}),e.jsx("p",{children:i("sprite.empty.body")})]})]})]})}export{I as SpriteRecipeWorkspace};
|