diff --git a/.gitignore b/.gitignore
index cf7856f..8a4d575 100644
--- a/.gitignore
+++ b/.gitignore
@@ -27,7 +27,4 @@ iib.db-wal
CLAUDE.md
.claude/*
-videos/启动&添加文件夹构建索引.mp4
-videos/图像搜索和链接跳转.mp4
-videos/ai智能文件整理.mp4
-videos/skills安装&启动.mp4
+videos/*
diff --git a/change.log.md b/CHANGELOG.md
similarity index 89%
rename from change.log.md
rename to CHANGELOG.md
index 6e53808..217364a 100644
--- a/change.log.md
+++ b/CHANGELOG.md
@@ -1,6 +1,81 @@
[跳到中文](#中文)
# English
+## 2026-03-21
+### 📁 Proper Filename When Saving Images
+Fixed the issue where images saved via right-click menu were named "file" instead of their actual filenames. Now when you right-click to save or drag images to other apps, they keep their original filenames.
+
+## 2026-03-19
+### ⚙️ Customizable Panel Settings
+Added the ability to customize which feature blocks are displayed in the full-screen info panel.
+
+**Features:**
+- **Panel Settings**: Click the settings icon to toggle visibility of individual feature blocks
+- **Flexible Display**: Show/hide action buttons, file info tags, custom tags, layout controls, draggable image, and prompt tabs
+- **Persistent Storage**: Settings are automatically saved to the backend and restored on next visit
+
+**How to use:**
+1. Open the full-screen info panel for any image
+2. Click the settings icon (⚙️) in the top-right corner
+3. Toggle the switches to show/hide different feature blocks
+4. Settings are automatically saved and applied
+
+**Use Case:**
+Perfect for users who want a cleaner interface or only use specific features. Each user can customize their panel to match their workflow, showing only the blocks they need and hiding unused sections to reduce visual clutter.
+
+**Note:** Settings are stored per-user in the backend, so your custom layout will be preserved across sessions and devices.
+
+
+
+## 2026-03-17
+### 🖼️ ComfyUI-Ready Image Dragging
+Added drag-to-transfer functionality specifically designed for ComfyUI workflow integration.
+
+**Features:**
+- **One-Click Image Access**: Click to display original images ready for dragging
+- **ComfyUI Integration**: Drag images directly into ComfyUI to restore complete workflows
+- **Dual Placement**: Available in both full-screen info panel and file grid overlays
+
+
+**How to use:**
+1. Click the "Click to get original image, grab and drag to other apps" button
+2. The original image appears instantly
+3. Drag the image directly into ComfyUI
+4. ComfyUI will automatically extract metadata and reconstruct the workflow
+
+**Use Case:**
+Perfect for moving images from IIB to ComfyUI. When you drag an image into ComfyUI:
+- The original image is loaded
+- Generation parameters are extracted from metadata
+- The complete workflow is reconstructed automatically
+- No manual parameter input required
+
+**Note:** This feature preserves all generation metadata in the image, enabling seamless workflow transfer to ComfyUI and other compatible tools.
+
+[Video Demo](https://github.com/user-attachments/assets/86ee87c8-887a-49ce-a3ed-07a4a2321253)
+
+## 2026-03-15
+### 📝 Editable Generation Information
+Added the ability to edit image generation prompts and metadata directly in the UI.
+
+**Features:**
+- **Prompt Editor Modal**: Edit positive/negative prompts and generation parameters with a user-friendly interface
+- **Key-Value Editor**: Add custom metadata fields with support for both string and JSON value modes
+- **Smart Caching**: EXIF data is now cached in the database for faster subsequent retrieval
+- **Edit Tracking**: Manually edited prompts are marked and preserved separately from original file metadata
+- **Validation**: Built-in validation for required fields and unique key constraints
+
+**How to use:**
+1. Click the "Edit" button on any image's generation info panel
+2. Modify positive/negative prompts and other parameters in the modal
+3. Add custom metadata using the key-value editor if needed
+4. Click "Save Prompt" to update the database
+5. Edited prompts are marked and will override original file metadata
+
+**Note:** Edited prompts are stored in the database and won't modify the original image files.
+
+
+
## 2026-02-23
### 🎬 Inline Video Playback
Added inline video playback feature for video items wider than 400px.
@@ -9,7 +84,6 @@ Added inline video playback feature for video items wider than 400px.
- **Play Here Button**: Hover over a video to see the "Play Here" button in the bottom-left corner
- **Inline Playback**: Click to play the video directly in the grid item without opening a modal
- **Auto-Stop Others**: Automatically stops any other playing videos when starting a new one
-- **Multi-language Support**: Button text is fully internationalized (English, Chinese, German)
- **Smart Reset**: Automatically stops playback when the list is reordered or refreshed
**How to use:**
@@ -727,6 +801,80 @@ Triggered under the same circumstances as above, there will be a button to updat
# 中文
+## 2026-03-21
+### 📁 修复右键保存图片文件名问题
+修复了通过右键菜单保存图片时,文件名显示为"file"而不是实际文件名的问题。现在右键保存图片或拖拽到其他应用时,都会保留原始文件名。
+
+## 2026-03-19
+### ⚙️ 自定义面板设置
+新增了自定义全屏信息面板功能区块显示的功能。
+
+**功能特性:**
+- **面板设置**:点击设置图标即可开关各个功能区块的显示
+- **灵活显示**:可显示/隐藏操作按钮、文件信息标签、自定义标签、布局控制、可拖拽图片、提示词标签页
+- **持久化存储**:设置自动保存到后端,下次访问时恢复
+
+**使用方法:**
+1. 打开任意图片的全屏信息面板
+2. 点击右上角的设置图标(⚙️)
+3. 切换开关来显示/隐藏不同的功能区块
+4. 设置会自动保存并生效
+
+**使用场景:**
+非常适合需要简洁界面或只使用特定功能的用户。每个用户都可以根据自己的工作流程自定义面板,只显示需要的区块,隐藏不使用的部分以减少视觉干扰。
+
+**注意:** 设置按用户存储在后端,因此您的自定义布局将在不同会话和设备间保持。
+
+
+
+## 2026-03-17
+### 🖼️ 专为ComfyUI设计的图片拖拽功能
+新增了专为ComfyUI工作流还原设计的图片拖拽传输功能。
+
+**功能特性:**
+- **一键获取原图**:点击即可显示原始图片,随时准备拖拽
+- **ComfyUI集成**:可直接将图片拖拽到ComfyUI中,自动还原完整工作流
+- **双重入口**:在全屏信息面板和文件网格中均可使用)
+
+**使用方法:**
+1. 点击"点击获取原图,抓取拖拽至其他应用"按钮
+2. 原始图片立即显示
+3. 将图片直接拖拽到ComfyUI界面中
+4. ComfyUI会自动提取元数据并重建工作流
+
+**使用场景:**
+完美支持从IIB到ComfyUI的图片转移。当您将图片拖拽到ComfyUI时:
+- 原始图片被加载
+- 从元数据中提取生成参数
+- 自动重建完整工作流
+- 无需手动输入参数
+
+**注意:** 此功能保留图片中的所有生成元数据,实现与ComfyUI及其他兼容工具的无缝工作流传输。
+
+[视频演示](https://github.com/user-attachments/assets/86ee87c8-887a-49ce-a3ed-07a4a2321253)
+
+## 2026-03-15
+### 📝 可编辑的生成信息
+新增了在界面中直接编辑图片生成提示词和元数据的功能。
+
+**功能特性:**
+- **提示词编辑器模态框**:通过友好的界面编辑正负向提示词和生成参数
+- **键值对编辑器**:添加自定义元数据字段,支持字符串和JSON值模式
+- **智能缓存**:EXIF数据现在会被缓存到数据库中,以便更快地后续检索
+- **编辑标记**:手动编辑的提示词会被标记,并与原始文件元数据分开保存
+- **数据验证**:对必填字段和唯一键约束进行内置验证
+
+**使用方法:**
+1. 点击任意图片生成信息面板上的"编辑"按钮
+2. 在模态框中修改正负向提示词和其他参数
+3. 如需要,使用键值对编辑器添加自定义元数据
+4. 点击"保存提示词"更新数据库
+5. 编辑过的提示词会被标记,并将覆盖原始文件元数据
+
+**注意:**编辑过的提示词存储在数据库中,不会修改原始图片文件。
+
+
+
## 2026-02-23
### 🎬 视频原地播放功能
为宽度超过 400px 的视频 item 添加了原地播放功能。
@@ -735,7 +883,6 @@ Triggered under the same circumstances as above, there will be a button to updat
- **"在此播放"按钮**:鼠标悬停在视频上时,左下角会显示播放按钮
- **原地播放**:点击按钮直接在网格 item 内播放视频,无需打开弹窗
- **自动停止其他视频**:播放新视频时,会自动停止其他正在播放的视频
-- **多语言支持**:按钮文字支持多语言(英文、简体中文、繁体中文、德语)
- **智能重置**:列表重新排序或刷新时,自动停止播放
**使用方法:**
diff --git a/docs/imgs/panel-settings.png b/docs/imgs/panel-settings.png
new file mode 100644
index 0000000..88709d5
Binary files /dev/null and b/docs/imgs/panel-settings.png differ
diff --git a/docs/imgs/prompt-edit.png b/docs/imgs/prompt-edit.png
new file mode 100644
index 0000000..2cef257
Binary files /dev/null and b/docs/imgs/prompt-edit.png differ
diff --git a/javascript/index.js b/javascript/index.js
index 07b3271..3ff1d49 100644
--- a/javascript/index.js
+++ b/javascript/index.js
@@ -13,8 +13,8 @@ Promise.resolve().then(async () => {
MFrGXJqNrOUPCPqPrQ|]@`+`2h1lBlZnXp*r;rWrkz9{4{B}x-#c-#y-$;-$l-$y-%Q-%n-(i-(x-)i-/!-3*-5B-9V",wan:"#=$0&o.]0F4@5X5b6*628u9p -+b-+(-(_-(.-&h-#%{@wGuWs}s|rJrDlaWTV}V+NAMvKfIgGKFX9a7c,7&]&+%~",bie:"-/A-/;fGe2`#M'M!$!#I",pao:"-/>-+i-'^~o|2w=hA]$[P?.4J4H3d06.M'^%A!S",geng:"-/7-&A{TzHlrh=ZIOlK4IX=X2p&M",shua:"-//-%j",cuo:"-.y-.p-*5wukWkSh!ZKY&WuV4(o$j$'",kei:"-.woU",la:"-.v-%3-$n~L|8[RXFXEWnUEU2R`MOI6DT:T0['o$A",pou:"-.l-'_-&[{]twtO]+]&Z+YGJS/<",tuan:"-.I~!}~}K}HyPy&f7`>[}XIVmGLE;;.:m8t2[,F%v%p",zuan:"-.)XOTt",keng:"-,x-([|t|kvIZCXlVgBF/C",gao:"-,Z-(I-(>wRlpWjNHGxGwGdG>E~E3Dm,)!y!t",lang:"-,V-&J-$~{Jy[r{llgiSeOIOHO;KRHHG4Cp=[3Y,z*%(s",weng:"-,@-#oyxv{kfU!Pd9o'N'&",tao:"-+m-)E-'+-%DwPwMw*r}i/fl`j[oYBWXL,JkGtE?><=) ${x} MFrGXJqNrOUPCPqPrQ|]@`+`2h1lBlZnXp*r;rWrkz9{4{B}x-#c-#y-$;-$l-$y-%Q-%n-(i-(x-)i-/!-3*-5B-9V",wan:"#=$0&o.]0F4@5X5b6*628u9p -+b-+(-(_-(.-&h-#%{@wGuWs}s|rJrDlaWTV}V+NAMvKfIgGKFX9a7c,7&]&+%~",bie:"-/A-/;fGe2`#M'M!$!#I",pao:"-/>-+i-'^~o|2w=hA]$[P?.4J4H3d06.M'^%A!S",geng:"-/7-&A{TzHlrh=ZIOlK4IX=X2p&M",shua:"-//-%j",cuo:"-.y-.p-*5wukWkSh!ZKY&WuV4(o$j$'",kei:"-.woU",la:"-.v-%3-$n~L|8[RXFXEWnUEU2R`MOI6DT:T0['o$A",pou:"-.l-'_-&[{]twtO]+]&Z+YGJS/<",tuan:"-.I~!}~}K}HyPy&f7`>[}XIVmGLE;;.:m8t2[,F%v%p",zuan:"-.)XOTt",keng:"-,x-([|t|kvIZCXlVgBF/C",gao:"-,Z-(I-(>wRlpWjNHGxGwGdG>E~E3Dm,)!y!t",lang:"-,V-&J-$~{Jy[r{llgiSeOIOHO;KRHHG4Cp=[3Y,z*%(s",weng:"-,@-#oyxv{kfU!Pd9o'N'&",tao:"-+m-)E-'+-%DwPwMw*r}i/fl`j[oYBWXL,JkGtE?><=) ${O}ZYZZ]U_6_9d9fYj6j~lWm)mep)rQrbrctvwkxc{y|U}6~?~C~`~m-!Z-*'-+R-/j-0j-3i-4/-4@-5,-5f-6j-6s-7)-9G-9W-9X",tuo:"%U%V&z0L2J4v?{@$F_H6MUTbT~Y'Yc^QdHdQnVq+r`x1{{|;|<-&d-(.-(z-({-)1-)J-)K-*:-*e-*p-+$-+3-.b-/%-/[-0b-3O-4,-6_-8}-9$-9?",zhe:"#'%+%E'P2f2|
}I-*S-+S-0~-2b-5X-8{",cou:"@ThJiK",chuang:"'_,H,L,q{+{E",piao:"$+).1D7a:;
lMi@i$fDf@b1`Y_4XyW6TMMzJ$I:GOD{=#
{let t=0,n=1;for(let i=e.length;i--;)t+=n*ba.indexOf(e.charAt(i)),n*=91;return t},on=(e,t)=>{let n,i,l,p,o;for(n in e)if(e.hasOwnProperty(n))for(i=e[n].match($a),l=0;l
');continue}const J=X[x];T||(T=J.includes("("));const oe=["tag"];T&&oe.push("has-parentheses"),J.length<32&&oe.push("short-tag"),I.push(`${J}`),T&&(T=!J.includes(")"))}return I.join(i.showCommaInInfoPanel?",":" ")}Mt("load",a=>{const g=a.target;g.className==="ant-image-preview-img"&&(r.value=`${g.naturalWidth} x ${g.naturalHeight}`)},{capture:!0});const h=re(()=>{const a=[{name:ie("fileSize"),val:n.file.size}];return r.value&&a.push({name:ie("resolution"),val:r.value}),a}),L=()=>{const a="Negative prompt:",g=C.value.includes(a)?C.value.split(a)[0]:Z.value[0]??"";ze(nt(g.trim()))},j=()=>document.body.requestFullscreen(),U=a=>{ze(typeof a=="object"?JSON.stringify(a,null,4):a)},ae=a=>{a.key.startsWith("Arrow")?(a.stopPropagation(),a.preventDefault(),document.dispatchEvent(new KeyboardEvent("keydown",a))):a.key==="Escape"&&document.fullscreenElement&&document.exitFullscreen()};Mt("dblclick",a=>{var g;((g=a.target)==null?void 0:g.className)==="ant-image-preview-img"&&wt()});const se=re(()=>ee.value||A.value.expanded),ve=De(ot+"contextShowFullPath",!1),V=re(()=>ve.value?n.file.fullpath:n.file.name),te=De(ot+"tagA2ZClassify",!1),Pe=re(()=>{var X;const a=(X=i.conf)==null?void 0:X.all_custom_tags.map(I=>{var x,J;return{char:((x=I.display_name)==null?void 0:x[0])||((J=I.name)==null?void 0:J[0]),...I}}).reduce((I,T)=>{var J;let x="#";if(/[a-z]/i.test(T.char))x=T.char.toUpperCase();else if(/[\u4e00-\u9fa5]/.test(T.char))try{x=((J=/^\[?(\w)/.exec(xa(T.char)+""))==null?void 0:J[1])??"#"}catch(oe){console.log("err",oe)}return x=x.toUpperCase(),I[x]||(I[x]=[]),I[x].push(T),I},{});return Object.entries(a??{}).sort((I,T)=>I[0].charCodeAt(0)-T[0].charCodeAt(0))}),Oe=()=>{wt(),t("contextMenuClick",{key:"tiktokView"},n.file,n.idx)},ke=ue(!1),Ze=async()=>{var a,g;if(!S.value.prompt){be.warning(ie("aiAnalyzeTagsNoPrompt"));return}if(!((g=(a=i.conf)==null?void 0:a.all_custom_tags)!=null&&g.length)){be.warning(ie("aiAnalyzeTagsNoCustomTags"));return}ke.value=!0;try{const X=S.value.prompt,T=`You are a professional AI assistant responsible for analyzing Stable Diffusion prompts and categorizing them into appropriate tags.
+*/let cn=19968,wa=(40896-cn)/2,ct="",Fe=",",ka=(()=>{let e=[];for(let t=33;t<127;t++)t!=34&&t!=92&&t!=45&&e.push(String.fromCharCode(t));return e.join(ct)})(),Et={a:{yi:"!]#R$!$q(3(p)[*2*g+6+d.C.q0[0w1L2<717l8B8E9?:8;V;[;e;{<)<+.>4??@~A`BbC:CGC^CiDMDjDkF!H/H;JaL?M.M2MoNCN|OgO|P$P)PBPyQ~R%R.S.T;TZYZZ]U_6_9d9fYj6j~lWm)mep)rQrbrctvwkxc{y|U}6~?~C~`~m-!Z-*'-+R-/j-0j-3i-4/-4@-5,-5f-6j-6s-7)-9G-9W-9X",tuo:"%U%V&z0L2J4v?{@$F_H6MUTbT~Y'Yc^QdHdQnVq+r`x1{{|;|<-&d-(.-(z-({-)1-)J-)K-*:-*e-*p-+$-+3-.b-/%-/[-0b-3O-4,-6_-8}-9$-9?",zhe:"#'%+%E'P2f2|
}I-*S-+S-0~-2b-5X-8{",cou:"@ThJiK",chuang:"'_,H,L,q{+{E",piao:"$+).1D7a:;
lMi@i$fDf@b1`Y_4XyW6TMMzJ$I:GOD{=#
{let t=0,n=1;for(let i=e.length;i--;)t+=n*ka.indexOf(e.charAt(i)),n*=91;return t},un=(e,t)=>{let n,i,r,y,o;for(n in e)if(e.hasOwnProperty(n))for(i=e[n].match(Oa),r=0;r
');continue}const q=j[O];C||(C=q.includes("("));const b=["tag"];C&&b.push("has-parentheses"),q.length<32&&b.push("short-tag"),U.push(`${q}`),C&&(C=!q.includes(")"))}return U.join(i.showCommaInInfoPanel?",":" ")}Lt("load",a=>{const g=a.target;g.className==="ant-image-preview-img"&&(l.value=`${g.naturalWidth} x ${g.naturalHeight}`)},{capture:!0});const m=ce(()=>{const a=[{name:oe("fileSize"),val:n.file.size}];return l.value&&a.push({name:oe("resolution"),val:l.value}),a}),T=()=>{const a="Negative prompt:",g=S.value.includes(a)?S.value.split(a)[0]:Q.value[0]??"";Ne(at(g.trim()))},P=()=>document.body.requestFullscreen(),F=a=>{Ne(typeof a=="object"?JSON.stringify(a,null,4):a)},le=a=>{a.key.startsWith("Arrow")?(a.stopPropagation(),a.preventDefault(),document.dispatchEvent(new KeyboardEvent("keydown",a))):a.key==="Escape"&&document.fullscreenElement&&document.exitFullscreen()};Lt("dblclick",a=>{var g;((g=a.target)==null?void 0:g.className)==="ant-image-preview-img"&&Mt()});const re=ce(()=>te.value||L.value.expanded),ve=Pe(rt+"contextShowFullPath",!1),K=ce(()=>ve.value?n.file.fullpath:n.file.name),ne=Pe(rt+"tagA2ZClassify",!1),Re=ce(()=>{var j;const a=(j=i.conf)==null?void 0:j.all_custom_tags.map(U=>{var O,q;return{char:((O=U.display_name)==null?void 0:O[0])||((q=U.name)==null?void 0:q[0]),...U}}).reduce((U,C)=>{var q;let O="#";if(/[a-z]/i.test(C.char))O=C.char.toUpperCase();else if(/[\u4e00-\u9fa5]/.test(C.char))try{O=((q=/^\[?(\w)/.exec(Ca(C.char)+""))==null?void 0:q[1])??"#"}catch(b){console.log("err",b)}return O=O.toUpperCase(),U[O]||(U[O]=[]),U[O].push(C),U},{});return Object.entries(a??{}).sort((U,C)=>U[0].charCodeAt(0)-C[0].charCodeAt(0))}),Oe=()=>{Mt(),t("contextMenuClick",{key:"tiktokView"},n.file,n.idx)},Me=fe(!1),et=async()=>{var a,g;if(!x.value.prompt){$e.warning(oe("aiAnalyzeTagsNoPrompt"));return}if(!((g=(a=i.conf)==null?void 0:a.all_custom_tags)!=null&&g.length)){$e.warning(oe("aiAnalyzeTagsNoCustomTags"));return}Me.value=!0;try{const j=x.value.prompt,C=`You are a professional AI assistant responsible for analyzing Stable Diffusion prompts and categorizing them into appropriate tags.
Your task is:
1. Analyze the given prompt
@@ -14,6 +14,6 @@ Your task is:
4. If no tags match, return an empty string
5. Tag matching should be based on semantic similarity and thematic relevance
-Available tags: ${i.conf.all_custom_tags.map(E=>E.name).join(", ")}
+Available tags: ${i.conf.all_custom_tags.map(W=>W.name).join(", ")}
-Please return only tag names, do not include any other content.`,J=(await kn({messages:[{role:"system",content:T},{role:"user",content:`Please analyze this prompt and return matching tags: ${X}`}],temperature:.3,max_tokens:200})).choices[0].message.content.trim();if(!J){be.info(ie("aiAnalyzeTagsNoMatchedTags"));return}const oe=J.split(",").map(E=>E.trim()).filter(E=>E),b=i.conf.all_custom_tags.filter(E=>oe.some(le=>E.name.toLowerCase()===le.toLowerCase()||E.name.toLowerCase().includes(le.toLowerCase())||le.toLowerCase().includes(E.name.toLowerCase()))),ye=new Set(o.value.map(E=>E.id)),R=b.filter(E=>!ye.has(E.id));if(R.length===0){b.length>0?be.info(ie("aiAnalyzeTagsAllTagsAlreadyAdded")):be.info(ie("aiAnalyzeTagsNoValidTags"));return}for(const E of R)t("contextMenuClick",{key:`toggle-tag-${E.id}`},n.file,n.idx);be.success(ie("aiAnalyzeTagsSuccess",[R.length.toString(),R.map(E=>E.name).join(", ")]))}catch(X){console.error("AI分析标签失败:",X),be.error(ie("aiAnalyzeTagsFailed"))}finally{ke.value=!1}};return(a,g)=>{var u,f,M;const X=jn,I=We,T=xn,x=Mn,J=Sn,oe=Tn,b=We,ye=Cn,R=Ln,E=An,le=zn,he=Dn,Le=Nn,Ae=In;return _(),O("div",{ref_key:"el",ref:p,class:tt(["full-screen-menu",{"unset-size":!v(A).expanded,lr:v(ee),"always-on":v(fe),"mouse-in":Ce.value}]),onWheelCapture:g[13]||(g[13]=kt(()=>{},["stop"])),onKeydownCapture:ae},[v(ee)?(_(),O("div",Ma)):H("",!0),$("div",Sa,[$("div",Ta,[v(ee)?H("",!0):(_(),O("div",{key:0,ref_key:"dragHandle",ref:y,class:"icon",style:{cursor:"grab"},title:v(ie)("dragToMovePanel")},[m(v(Yn))],8,Ca)),v(ee)?H("",!0):(_(),O("div",{key:1,class:"icon",style:{cursor:"pointer"},onClick:g[0]||(g[0]=c=>v(A).expanded=!v(A).expanded),title:v(ie)("clickToToggleMaximizeMinimize")},[se.value?(_(),de(v($n),{key:0})):(_(),de(v(En),{key:1}))],8,La)),$("div",{style:{display:"flex","flex-direction":"column","align-items":"center",cursor:"grab"},class:"icon",title:v(ie)("fullscreenview"),onClick:j},[$("img",{src:v(ri),style:{width:"21px",height:"21px","padding-bottom":"2px"},alt:""},null,8,za)],8,Aa),m(X,{"get-popup-container":je},{overlay:k(()=>[m(Pn,{file:a.file,idx:a.idx,"selected-tag":o.value,onContextMenuClick:g[1]||(g[1]=(c,z,F)=>t("contextMenuClick",c,z,F))},null,8,["file","idx","selected-tag"])]),default:k(()=>[v(A).expanded?H("",!0):(_(),O("div",Da,[m(v(Ot))]))]),_:1}),se.value?(_(),O("div",Na)):H("",!0),se.value?(_(),O("div",Ia,[m(X,{trigger:["hover"],"get-popup-container":je},{overlay:k(()=>[m(oe,{onClick:g[2]||(g[2]=c=>t("contextMenuClick",c,a.file,a.idx))},{default:k(()=>{var c;return[((c=v(i).conf)==null?void 0:c.launch_mode)!=="server"?(_(),O(Y,{key:0},[m(T,{key:"send2txt2img"},{default:k(()=>[N(w(a.$t("sendToTxt2img")),1)]),_:1}),m(T,{key:"send2img2img"},{default:k(()=>[N(w(a.$t("sendToImg2img")),1)]),_:1}),m(T,{key:"send2inpaint"},{default:k(()=>[N(w(a.$t("sendToInpaint")),1)]),_:1}),m(T,{key:"send2extras"},{default:k(()=>[N(w(a.$t("sendToExtraFeatures")),1)]),_:1}),m(x,{key:"sendToThirdPartyExtension",title:a.$t("sendToThirdPartyExtension")},{default:k(()=>[m(T,{key:"send2controlnet-txt2img"},{default:k(()=>[N("ControlNet - "+w(a.$t("t2i")),1)]),_:1}),m(T,{key:"send2controlnet-img2img"},{default:k(()=>[N("ControlNet - "+w(a.$t("i2i")),1)]),_:1}),m(T,{key:"send2outpaint"},{default:k(()=>[N("openOutpaint")]),_:1})]),_:1},8,["title"])],64)):H("",!0),m(T,{key:"send2BatchDownload"},{default:k(()=>[N(w(a.$t("sendToBatchDownload")),1)]),_:1}),m(x,{key:"copy2target",title:a.$t("copyTo")},{default:k(()=>[(_(!0),O(Y,null,ge(v(i).quickMovePaths,z=>(_(),de(T,{key:`copy-to-${z.dir}`},{default:k(()=>[N(w(z.zh),1)]),_:2},1024))),128))]),_:1},8,["title"]),m(x,{key:"move2target",title:a.$t("moveTo")},{default:k(()=>[(_(!0),O(Y,null,ge(v(i).quickMovePaths,z=>(_(),de(T,{key:`move-to-${z.dir}`},{default:k(()=>[N(w(z.zh),1)]),_:2},1024))),128))]),_:1},8,["title"]),m(J),m(T,{key:"deleteFiles"},{default:k(()=>[N(w(a.$t("deleteSelected")),1)]),_:1}),m(T,{key:"openWithDefaultApp"},{default:k(()=>[N(w(a.$t("openWithDefaultApp")),1)]),_:1}),m(T,{key:"previewInNewWindow"},{default:k(()=>[N(w(a.$t("previewInNewWindow")),1)]),_:1}),m(T,{key:"copyPreviewUrl"},{default:k(()=>[N(w(a.$t("copySourceFilePreviewLink")),1)]),_:1}),m(T,{key:"copyFilePath"},{default:k(()=>[N(w(a.$t("copyFilePath")),1)]),_:1}),m(J),m(T,{key:"tiktokView",onClick:Oe},{default:k(()=>[N(w(a.$t("tiktokView")),1)]),_:1})]}),_:1})]),default:k(()=>[m(I,null,{default:k(()=>[N(w(v(ie)("openContextMenu")),1)]),_:1})]),_:1}),m(b,{onClick:g[3]||(g[3]=c=>t("contextMenuClick",{key:"download"},n.file,n.idx))},{default:k(()=>[N(w(a.$t("download")),1)]),_:1}),C.value?(_(),de(I,{key:0,onClick:g[4]||(g[4]=c=>v(ze)(C.value))},{default:k(()=>[N(w(a.$t("copyPrompt")),1)]),_:1})):H("",!0),C.value?(_(),de(I,{key:1,onClick:L},{default:k(()=>[N(w(a.$t("copyPositivePrompt")),1)]),_:1})):H("",!0),C.value&&((f=(u=v(i).conf)==null?void 0:u.all_custom_tags)!=null&&f.length)?(_(),de(I,{key:2,onClick:Ze,type:"primary",loading:ke.value},{default:k(()=>[N(w(a.$t("aiAnalyzeTags")),1)]),_:1},8,["loading"])):H("",!0),m(I,{onClick:Oe,onTouchstart:kt(Oe,["prevent"]),type:"default"},{default:k(()=>[N(w(a.$t("tiktokView")),1)]),_:1},8,["onTouchstart"])])):H("",!0)]),se.value?(_(),O("div",ja,[$("div",Pa,[$("span",Ba,[$("span",Ra,w(a.$t("fileName")),1),$("span",{class:"value",title:V.value,onDblclick:g[5]||(g[5]=c=>v(ze)(V.value))},w(V.value),41,Ua),$("span",{style:{margin:"0 8px",cursor:"pointer"},title:"Click to expand full path",onClick:g[6]||(g[6]=c=>ve.value=!v(ve))},[m(v(Ot))])]),(_(!0),O(Y,null,ge(h.value,c=>(_(),O("span",{class:"info-tag",key:c.name},[$("span",Ha,w(c.name),1),$("span",{class:"value",title:c.val,onDblclick:z=>v(ze)(c.val)},w(c.val),41,Wa)]))),128))]),(M=v(i).conf)!=null&&M.all_custom_tags?(_(),O("div",Fa,[$("div",{class:"sort-tag-switch",onClick:g[7]||(g[7]=c=>te.value=!v(te))},[v(te)?(_(),de(v(wn),{key:1})):(_(),de(v(oi),{key:0}))]),$("div",{class:"tag",onClick:g[8]||(g[8]=(...c)=>v(xt)&&v(xt)(...c)),style:et({"--tag-color":"var(--zp-luminous)"})},"+ "+w(a.$t("add")),5),v(te)?(_(!0),O(Y,{key:0},ge(Pe.value,([c,z])=>(_(),O("div",{key:c,class:"tag-alpha-item"},[$("h4",Xa,w(c)+" : ",1),$("div",null,[(_(!0),O(Y,null,ge(z,F=>(_(),O("div",{class:tt(["tag",{selected:o.value.some(Be=>Be.id===F.id)}]),onClick:Be=>t("contextMenuClick",{key:`toggle-tag-${F.id}`},a.file,a.idx),key:F.id,style:et({"--tag-color":v(l).getColor(F)})},w(F.name),15,qa))),128))])]))),128)):(_(!0),O(Y,{key:1},ge(v(i).conf.all_custom_tags,c=>(_(),O("div",{class:tt(["tag",{selected:o.value.some(z=>z.id===c.id)}]),onClick:z=>t("contextMenuClick",{key:`toggle-tag-${c.id}`},a.file,a.idx),key:c.id,style:et({"--tag-color":v(l).getColor(c)})},w(c.name),15,Ja))),128))])):H("",!0),$("div",Ga,[$("div",Va,[N(w(a.$t("experimentalLRLayout"))+": ",1),m(ye,{checked:v(ee),"onUpdate:checked":g[9]||(g[9]=c=>Re(ee)?ee.value=c:null),size:"small"},null,8,["checked"])]),v(ee)?(_(),O(Y,{key:0},[$("div",Ya,[N(w(a.$t("width"))+": ",1),m(R,{value:v(ne),"onUpdate:value":g[10]||(g[10]=c=>Re(ne)?ne.value=c:null),style:{width:"64px"},step:16,min:128,max:1024},null,8,["value"])]),m(E,{title:a.$t("alwaysOnTooltipInfo")},{default:k(()=>[$("div",Ka,[N(w(a.$t("alwaysOn"))+": ",1),m(ye,{checked:v(fe),"onUpdate:checked":g[11]||(g[11]=c=>Re(fe)?fe.value=c:null),size:"small"},null,8,["checked"])])]),_:1},8,["title"])],64)):H("",!0)]),m(Ae,{activeKey:v(q),"onUpdate:activeKey":g[12]||(g[12]=c=>Re(q)?q.value=c:null)},{default:k(()=>[m(le,{key:"structedData",tab:a.$t("structuredData")},{default:k(()=>[$("div",null,[S.value.prompt?(_(),O(Y,{key:0},[Za,Qa,$("code",{innerHTML:s(S.value.prompt??"")},null,8,es)],64)):H("",!0),S.value.negativePrompt?(_(),O(Y,{key:1},[ts,ns,$("code",{innerHTML:s(S.value.negativePrompt??"")},null,8,is)],64)):H("",!0)]),Object.keys(P.value).length?(_(),O(Y,{key:0},[as,ss,$("table",null,[(_(!0),O(Y,null,ge(P.value,(c,z)=>(_(),O("tr",{key:z,class:"gen-info-frag"},[$("td",os,w(z),1),typeof c=="object"?(_(),O("td",{key:0,style:{cursor:"pointer"},onDblclick:F=>U(c)},[$("code",null,w(c),1)],40,rs)):(_(),O("td",{key:1,style:{cursor:"pointer"},onDblclick:F=>U(v(nt)(c))},w(v(nt)(c)),41,ls))]))),128))])],64)):H("",!0),W.value&&Object.keys(W.value).length?(_(),O(Y,{key:1},[cs,us,$("table",ds,[(_(!0),O(Y,null,ge(W.value,(c,z)=>(_(),O("tr",{key:z,class:"gen-info-frag"},[$("td",gs,w(z),1),$("td",{style:{cursor:"pointer"},onDblclick:F=>U(c)},[$("code",hs,w(typeof c=="string"?c:JSON.stringify(c,null,2)),1)],40,fs)]))),128))])],64)):H("",!0)]),_:1},8,["tab"]),m(le,{key:"sourceText",tab:a.$t("sourceText")},{default:k(()=>[$("code",null,w(C.value),1)]),_:1},8,["tab"]),m(le,{key:"exif",tab:"EXIF"},{default:k(()=>[m(Le,{spinning:K.value},{default:k(()=>[D.value&&Object.keys(D.value).length?(_(),O("div",ps,[m(pa,{data:D.value},null,8,["data"])])):K.value?H("",!0):(_(),O("div",vs,[m(he,{description:"No EXIF data available"})]))]),_:1},8,["spinning"])]),_:1})]),_:1},8,["activeKey"])])):H("",!0)]),v(A).expanded&&!v(ee)?(_(),O("div",{key:1,class:"mouse-sensor",ref_key:"resizeHandle",ref:ce,title:v(ie)("dragToResizePanel")},[m(v(qn))],8,_s)):H("",!0)],34)}}});const Cs=ct(ms,[["__scopeId","data-v-006d4d7c"]]),ys={key:0,class:"float-panel"},bs={key:0,class:"select-actions"},$s={key:1},Es=lt({__name:"MultiSelectKeep",props:{show:{type:Boolean}},emits:["selectAll","reverseSelect","clearAllSelected"],setup(e,{emit:t}){const n=Je(),i=()=>{t("clearAllSelected"),n.keepMultiSelect=!1},l=()=>{n.keepMultiSelect=!0};return(p,o)=>{const r=We;return p.show?(_(),O("div",ys,[v(n).keepMultiSelect?(_(),O("div",bs,[m(r,{size:"small",onClick:o[0]||(o[0]=d=>t("selectAll"))},{default:k(()=>[N(w(p.$t("select-all")),1)]),_:1}),m(r,{size:"small",onClick:o[1]||(o[1]=d=>t("reverseSelect"))},{default:k(()=>[N(w(p.$t("rerverse-select")),1)]),_:1}),m(r,{size:"small",onClick:o[2]||(o[2]=d=>t("clearAllSelected"))},{default:k(()=>[N(w(p.$t("clear-all-selected")),1)]),_:1}),m(r,{size:"small",onClick:i},{default:k(()=>[N(w(p.$t("exit")),1)]),_:1})])):(_(),O("div",$s,[m(r,{size:"small",type:"primary",onClick:l},{default:k(()=>[N(w(p.$t("keep-multi-selected")),1)]),_:1})]))])):H("",!0)}}});const Ls=ct(Es,[["__scopeId","data-v-b04c3508"]]);export{Ss as L,Ls as M,Ts as R,Cs as f};
+Please return only tag names, do not include any other content.`,q=(await xn({messages:[{role:"system",content:C},{role:"user",content:`Please analyze this prompt and return matching tags: ${j}`}],temperature:.3,max_tokens:200})).choices[0].message.content.trim();if(!q){$e.info(oe("aiAnalyzeTagsNoMatchedTags"));return}const b=q.split(",").map(W=>W.trim()).filter(W=>W),be=i.conf.all_custom_tags.filter(W=>b.some(ie=>W.name.toLowerCase()===ie.toLowerCase()||W.name.toLowerCase().includes(ie.toLowerCase())||ie.toLowerCase().includes(W.name.toLowerCase()))),V=new Set(o.value.map(W=>W.id)),D=be.filter(W=>!V.has(W.id));if(D.length===0){be.length>0?$e.info(oe("aiAnalyzeTagsAllTagsAlreadyAdded")):$e.info(oe("aiAnalyzeTagsNoValidTags"));return}for(const W of D)t("contextMenuClick",{key:`toggle-tag-${W.id}`},n.file,n.idx);$e.success(oe("aiAnalyzeTagsSuccess",[D.length.toString(),D.map(W=>W.name).join(", ")]))}catch(j){console.error("AI分析标签失败:",j),$e.error(oe("aiAnalyzeTagsFailed"))}finally{Me.value=!1}},ye=async()=>{var g;await Sn(n.file);const a=(g=n.file)==null?void 0:g.fullpath;a&&(u.tasks.forEach(j=>j.cancel()),u.pushAction(()=>Ot(a)).res.then(j=>{S.value=j}))};return(a,g)=>{var p,M,I;const j=Tn,U=Rn,C=Xe,O=Cn,q=Ln,b=An,be=zn,V=Xe,D=Dn,W=Nn,ie=In,ze=Pn,De=jn,c=Bn;return v(),k("div",{ref_key:"el",ref:y,class:it(["full-screen-menu",{"unset-size":!d(L).expanded,lr:d(te),"always-on":d(he),"mouse-in":Le.value}]),onWheelCapture:g[13]||(g[13]=St(()=>{},["stop"])),onKeydownCapture:le},[d(te)?(v(),k("div",La)):R("",!0),_("div",Aa,[_("div",za,[d(te)?R("",!0):(v(),k("div",{key:0,ref_key:"dragHandle",ref:$,class:"icon",style:{cursor:"grab"},title:d(oe)("dragToMovePanel")},[h(d(Ct))],8,Da)),d(te)?R("",!0):(v(),k("div",{key:1,class:"icon",style:{cursor:"pointer"},onClick:g[0]||(g[0]=f=>d(L).expanded=!d(L).expanded),title:d(oe)("clickToToggleMaximizeMinimize")},[re.value?(v(),ue(d(wn),{key:0})):(v(),ue(d(kn),{key:1}))],8,Na)),h(U,{"get-popup-container":Ae,trigger:"click"},{overlay:w(()=>[_("div",Pa,[_("div",ja,E(a.$t("blockVisibilitySettings")),1),_("div",Ba,[(v(!0),k(G,null,de(d(i).fullscreenMenuBlockVisibility,(f,z)=>(v(),k("div",{class:"settings-item",key:z},[h(j,{checked:d(i).fullscreenMenuBlockVisibility[z],"onUpdate:checked":se=>d(i).fullscreenMenuBlockVisibility[z]=se,size:"small"},null,8,["checked","onUpdate:checked"]),_("span",Ra,E(a.$t(`blockName_${z}`)),1)]))),128))])])]),default:w(()=>[_("div",Ia,[h(d(oi))])]),_:1}),_("div",{style:{display:"flex","flex-direction":"column","align-items":"center",cursor:"grab"},class:"icon",title:d(oe)("fullscreenview"),onClick:P},[_("img",{src:d(di),style:{width:"21px",height:"21px","padding-bottom":"2px"},alt:""},null,8,Ha)],8,Ua),h(U,{"get-popup-container":Ae},{overlay:w(()=>[h(Un,{file:a.file,idx:a.idx,"selected-tag":o.value,onContextMenuClick:g[1]||(g[1]=(f,z,se)=>t("contextMenuClick",f,z,se))},null,8,["file","idx","selected-tag"])]),default:w(()=>[d(L).expanded?R("",!0):(v(),k("div",Wa,[h(d(xt))]))]),_:1}),re.value?(v(),k("div",Fa)):R("",!0),re.value&&d(i).fullscreenMenuBlockVisibility.actionBar?(v(),k("div",Xa,[h(U,{trigger:["hover"],"get-popup-container":Ae},{overlay:w(()=>[h(be,{onClick:g[2]||(g[2]=f=>t("contextMenuClick",f,a.file,a.idx))},{default:w(()=>{var f;return[((f=d(i).conf)==null?void 0:f.launch_mode)!=="server"?(v(),k(G,{key:0},[h(O,{key:"send2txt2img"},{default:w(()=>[N(E(a.$t("sendToTxt2img")),1)]),_:1}),h(O,{key:"send2img2img"},{default:w(()=>[N(E(a.$t("sendToImg2img")),1)]),_:1}),h(O,{key:"send2inpaint"},{default:w(()=>[N(E(a.$t("sendToInpaint")),1)]),_:1}),h(O,{key:"send2extras"},{default:w(()=>[N(E(a.$t("sendToExtraFeatures")),1)]),_:1}),h(q,{key:"sendToThirdPartyExtension",title:a.$t("sendToThirdPartyExtension")},{default:w(()=>[h(O,{key:"send2controlnet-txt2img"},{default:w(()=>[N("ControlNet - "+E(a.$t("t2i")),1)]),_:1}),h(O,{key:"send2controlnet-img2img"},{default:w(()=>[N("ControlNet - "+E(a.$t("i2i")),1)]),_:1}),h(O,{key:"send2outpaint"},{default:w(()=>[N("openOutpaint")]),_:1})]),_:1},8,["title"])],64)):R("",!0),h(O,{key:"send2BatchDownload"},{default:w(()=>[N(E(a.$t("sendToBatchDownload")),1)]),_:1}),h(q,{key:"copy2target",title:a.$t("copyTo")},{default:w(()=>[(v(!0),k(G,null,de(d(i).quickMovePaths,z=>(v(),ue(O,{key:`copy-to-${z.dir}`},{default:w(()=>[N(E(z.zh),1)]),_:2},1024))),128))]),_:1},8,["title"]),h(q,{key:"move2target",title:a.$t("moveTo")},{default:w(()=>[(v(!0),k(G,null,de(d(i).quickMovePaths,z=>(v(),ue(O,{key:`move-to-${z.dir}`},{default:w(()=>[N(E(z.zh),1)]),_:2},1024))),128))]),_:1},8,["title"]),h(b),h(O,{key:"deleteFiles"},{default:w(()=>[N(E(a.$t("deleteSelected")),1)]),_:1}),h(O,{key:"openWithDefaultApp"},{default:w(()=>[N(E(a.$t("openWithDefaultApp")),1)]),_:1}),h(O,{key:"previewInNewWindow"},{default:w(()=>[N(E(a.$t("previewInNewWindow")),1)]),_:1}),h(O,{key:"copyPreviewUrl"},{default:w(()=>[N(E(a.$t("copySourceFilePreviewLink")),1)]),_:1}),h(O,{key:"copyFilePath"},{default:w(()=>[N(E(a.$t("copyFilePath")),1)]),_:1}),h(b),h(O,{key:"tiktokView",onClick:Oe},{default:w(()=>[N(E(a.$t("tiktokView")),1)]),_:1})]}),_:1})]),default:w(()=>[h(C,null,{default:w(()=>[N(E(d(oe)("openContextMenu")),1)]),_:1})]),_:1}),h(V,{onClick:g[3]||(g[3]=f=>t("contextMenuClick",{key:"download"},n.file,n.idx))},{default:w(()=>[N(E(a.$t("download")),1)]),_:1}),S.value?(v(),ue(C,{key:0,onClick:g[4]||(g[4]=f=>d(Ne)(S.value))},{default:w(()=>[N(E(a.$t("copyPrompt")),1)]),_:1})):R("",!0),S.value?(v(),ue(C,{key:1,onClick:T},{default:w(()=>[N(E(a.$t("copyPositivePrompt")),1)]),_:1})):R("",!0),S.value&&((M=(p=d(i).conf)==null?void 0:p.all_custom_tags)!=null&&M.length)?(v(),ue(C,{key:2,onClick:et,loading:Me.value},{default:w(()=>[N(E(a.$t("aiAnalyzeTags")),1)]),_:1},8,["loading"])):R("",!0),h(C,{onClick:Oe,onTouchstart:St(Oe,["prevent"]),type:"default"},{default:w(()=>[N(E(a.$t("tiktokView")),1)]),_:1},8,["onTouchstart"]),N(),h(C,{onClick:ye},{icon:w(()=>[h(d(Ie))]),default:w(()=>[N(" "+E(a.$t("editPrompt")),1)]),_:1})])):R("",!0)]),re.value?(v(),k("div",qa,[d(i).fullscreenMenuBlockVisibility.infoTags?(v(),k("div",Va,[_("span",Ja,[_("span",Ga,E(a.$t("fileName")),1),_("span",{class:"value",title:K.value,onDblclick:g[5]||(g[5]=f=>d(Ne)(K.value))},E(K.value),41,Ya),_("span",{style:{margin:"0 8px",cursor:"pointer"},title:"Click to expand full path",onClick:g[6]||(g[6]=f=>ve.value=!d(ve))},[h(d(xt))])]),(v(!0),k(G,null,de(m.value,f=>(v(),k("span",{class:"info-tag",key:f.name},[_("span",Ka,E(f.name),1),_("span",{class:"value",title:f.val,onDblclick:z=>d(Ne)(f.val)},E(f.val),41,Za)]))),128))])):R("",!0),(I=d(i).conf)!=null&&I.all_custom_tags&&d(i).fullscreenMenuBlockVisibility.tagsContainer?(v(),k("div",Qa,[_("div",{class:"sort-tag-switch",onClick:g[7]||(g[7]=f=>ne.value=!d(ne))},[d(ne)?(v(),ue(d(On),{key:1})):(v(),ue(d(ui),{key:0}))]),_("div",{class:"tag",onClick:g[8]||(g[8]=(...f)=>d(Tt)&&d(Tt)(...f)),style:nt({"--tag-color":"var(--zp-luminous)"})},"+ "+E(a.$t("add")),5),d(ne)?(v(!0),k(G,{key:0},de(Re.value,([f,z])=>(v(),k("div",{key:f,class:"tag-alpha-item"},[_("h4",es,E(f)+" : ",1),_("div",null,[(v(!0),k(G,null,de(z,se=>(v(),k("div",{class:it(["tag",{selected:o.value.some(Ue=>Ue.id===se.id)}]),onClick:Ue=>t("contextMenuClick",{key:`toggle-tag-${se.id}`},a.file,a.idx),key:se.id,style:nt({"--tag-color":d(r).getColor(se)})},E(se.name),15,ts))),128))])]))),128)):(v(!0),k(G,{key:1},de(d(i).conf.all_custom_tags,f=>(v(),k("div",{class:it(["tag",{selected:o.value.some(z=>z.id===f.id)}]),onClick:z=>t("contextMenuClick",{key:`toggle-tag-${f.id}`},a.file,a.idx),key:f.id,style:nt({"--tag-color":d(r).getColor(f)})},E(f.name),15,ns))),128))])):R("",!0),d(i).fullscreenMenuBlockVisibility.lrLayoutControl?(v(),k("div",is,[_("div",as,[N(E(a.$t("experimentalLRLayout"))+": ",1),h(j,{checked:d(te),"onUpdate:checked":g[9]||(g[9]=f=>He(te)?te.value=f:null),size:"small"},null,8,["checked"])]),d(te)?(v(),k(G,{key:0},[_("div",ss,[N(E(a.$t("width"))+": ",1),h(D,{value:d(ae),"onUpdate:value":g[10]||(g[10]=f=>He(ae)?ae.value=f:null),style:{width:"64px"},step:16,min:128,max:1024},null,8,["value"])]),h(W,{title:a.$t("alwaysOnTooltipInfo")},{default:w(()=>[_("div",os,[N(E(a.$t("alwaysOn"))+": ",1),h(j,{checked:d(he),"onUpdate:checked":g[11]||(g[11]=f=>He(he)?he.value=f:null),size:"small"},null,8,["checked"])])]),_:1},8,["title"])],64)):R("",!0)])):R("",!0),d(i).fullscreenMenuBlockVisibility.draggableImage?(v(),ue(Hn,{key:3,block:"",file:a.file},{default:w(()=>[_("div",ls,[h(d(Ct),{class:"trigger-icon"}),_("span",rs,E(a.$t("dragImageToTransfer")),1)])]),_:1},8,["file"])):R("",!0),d(i).fullscreenMenuBlockVisibility.tabs?(v(),ue(c,{key:4,block:"",activeKey:d(J),"onUpdate:activeKey":g[12]||(g[12]=f=>He(J)?J.value=f:null)},{default:w(()=>[h(ie,{key:"structedData",tab:a.$t("structuredData")},{default:w(()=>[_("div",null,[x.value.prompt?(v(),k(G,{key:0},[cs,_("div",us,[ds,_("button",{class:"edit-section-btn",onClick:ye,title:a.$t("editPrompt")},[h(d(Ie))],8,gs)]),_("code",{innerHTML:s(x.value.prompt??"")},null,8,fs)],64)):R("",!0),x.value.negativePrompt?(v(),k(G,{key:1},[hs,_("div",ps,[vs,_("button",{class:"edit-section-btn",onClick:ye,title:a.$t("editPrompt")},[h(d(Ie))],8,_s)]),_("code",{innerHTML:s(x.value.negativePrompt??"")},null,8,ms)],64)):R("",!0)]),Object.keys(B.value).length?(v(),k(G,{key:0},[ys,_("div",bs,[$s,_("button",{class:"edit-section-btn",onClick:ye,title:a.$t("editPrompt")},[h(d(Ie))],8,Es)]),_("table",null,[(v(!0),k(G,null,de(B.value,(f,z)=>(v(),k("tr",{key:z,class:"gen-info-frag"},[_("td",ws,E(z),1),typeof f=="object"?(v(),k("td",{key:0,style:{cursor:"pointer"},onDblclick:se=>F(f)},[_("code",null,E(f),1)],40,ks)):(v(),k("td",{key:1,style:{cursor:"pointer"},onDblclick:se=>F(d(at)(f))},E(d(at)(f)),41,Os))]))),128))])],64)):R("",!0),X.value&&Object.keys(X.value).length?(v(),k(G,{key:1},[Ms,_("div",xs,[Ss,_("button",{class:"edit-section-btn",onClick:ye,title:a.$t("editPrompt")},[h(d(Ie))],8,Ts)]),_("table",Cs,[(v(!0),k(G,null,de(X.value,(f,z)=>(v(),k("tr",{key:z,class:"gen-info-frag"},[_("td",Ls,E(z),1),_("td",{style:{cursor:"pointer"},onDblclick:se=>F(f)},[_("code",zs,E(typeof f=="string"?f:JSON.stringify(f,null,2)),1)],40,As)]))),128))])],64)):R("",!0)]),_:1},8,["tab"]),h(ie,{key:"sourceText",tab:a.$t("sourceText")},{default:w(()=>[_("code",null,E(S.value),1)]),_:1},8,["tab"]),h(ie,{key:"exif",tab:"EXIF"},{default:w(()=>[h(De,{spinning:Z.value},{default:w(()=>[A.value&&Object.keys(A.value).length?(v(),k("div",Ds,[h(ya,{data:A.value},null,8,["data"])])):Z.value?R("",!0):(v(),k("div",Ns,[h(ze,{description:"No EXIF data available"})]))]),_:1},8,["spinning"])]),_:1})]),_:1},8,["activeKey"])):R("",!0)])):R("",!0)]),d(L).expanded&&!d(te)?(v(),k("div",{key:1,class:"mouse-sensor",ref_key:"resizeHandle",ref:ge,title:d(oe)("dragToResizePanel")},[h(d(Yn))],8,Is)):R("",!0)],34)}}});const Js=dt(Ps,[["__scopeId","data-v-3eca06cd"]]),js={key:0,class:"float-panel"},Bs={key:0,class:"select-actions"},Rs={key:1},Us=ut({__name:"MultiSelectKeep",props:{show:{type:Boolean}},emits:["selectAll","reverseSelect","clearAllSelected"],setup(e,{emit:t}){const n=Ge(),i=()=>{t("clearAllSelected"),n.keepMultiSelect=!1},r=()=>{n.keepMultiSelect=!0};return(y,o)=>{const l=Xe;return y.show?(v(),k("div",js,[d(n).keepMultiSelect?(v(),k("div",Bs,[h(l,{size:"small",onClick:o[0]||(o[0]=u=>t("selectAll"))},{default:w(()=>[N(E(y.$t("select-all")),1)]),_:1}),h(l,{size:"small",onClick:o[1]||(o[1]=u=>t("reverseSelect"))},{default:w(()=>[N(E(y.$t("rerverse-select")),1)]),_:1}),h(l,{size:"small",onClick:o[2]||(o[2]=u=>t("clearAllSelected"))},{default:w(()=>[N(E(y.$t("clear-all-selected")),1)]),_:1}),h(l,{size:"small",onClick:i},{default:w(()=>[N(E(y.$t("exit")),1)]),_:1})])):(v(),k("div",Rs,[h(l,{size:"small",type:"primary",onClick:r},{default:w(()=>[N(E(y.$t("keep-multi-selected")),1)]),_:1})]))])):R("",!0)}}});const Gs=dt(Us,[["__scopeId","data-v-b04c3508"]]);export{qs as L,Gs as M,Vs as R,Js as f};
diff --git a/vue/dist/assets/MultiSelectKeep-5059400f.css b/vue/dist/assets/MultiSelectKeep-5059400f.css
deleted file mode 100644
index 1da1fb8..0000000
--- a/vue/dist/assets/MultiSelectKeep-5059400f.css
+++ /dev/null
@@ -1 +0,0 @@
-.exif-browser[data-v-b913e528]{display:flex;flex-direction:column}.exif-browser .exif-header[data-v-b913e528]{display:flex;align-items:center;justify-content:space-between;padding:8px;background:var(--zp-secondary-variant-background);border-radius:4px;margin-bottom:8px}.exif-browser .exif-header .exif-path[data-v-b913e528]{display:flex;align-items:center;flex:1;overflow:hidden;white-space:nowrap}.exif-browser .exif-header .exif-path .path-item[data-v-b913e528]{padding:2px 4px;border-radius:2px}.exif-browser .exif-header .exif-path .path-item.clickable[data-v-b913e528]{cursor:pointer;color:var(--zp-primary)}.exif-browser .exif-header .exif-path .path-item.clickable[data-v-b913e528]:hover{background:var(--zp-secondary)}.exif-browser .exif-header .exif-path .path-separator[data-v-b913e528]{color:var(--zp-secondary);margin:0 4px}.exif-browser .exif-content .exif-item[data-v-b913e528]{display:flex;align-items:flex-start;padding:4px 8px;border-bottom:1px solid var(--zp-secondary)}.exif-browser .exif-content .exif-item[data-v-b913e528]:hover{background:var(--zp-secondary-variant-background)}.exif-browser .exif-content .exif-item .exif-key[data-v-b913e528]{flex:0 0 120px;font-weight:600;color:var(--zp-primary);word-break:break-all}.exif-browser .exif-content .exif-item .exif-value[data-v-b913e528]{flex:1;display:flex;align-items:flex-start;gap:4px;color:var(--zp-primary);word-break:break-all}.exif-browser .exif-content .exif-item .exif-value .value-text[data-v-b913e528]{flex:1;white-space:pre-wrap}.exif-browser .exif-content .exif-item .exif-value .value-text[data-v-b913e528] code{font-family:Consolas,Monaco,Courier New,monospace;font-size:.9em;line-height:1.5;background:transparent;padding:0}.exif-browser .exif-content .exif-item .exif-value .ant-btn-text[data-v-b913e528]{padding:0 4px;color:var(--zp-luminous)}.exif-browser .exif-content .exif-item .exif-value .ant-btn-text[data-v-b913e528]:hover{color:var(--zp-primary)}.exif-browser .exif-content .exif-simple[data-v-b913e528]{padding:8px;white-space:pre;color:var(--zp-primary)}.full-screen-menu[data-v-006d4d7c]{position:fixed;z-index:9999;background:var(--zp-primary-background);padding:8px 16px;box-shadow:0 0 4px var(--zp-secondary);border-radius:4px}.full-screen-menu .tags-container[data-v-006d4d7c]{margin:4px 0}.full-screen-menu .tags-container .tag[data-v-006d4d7c]{margin-right:4px;margin-bottom:4px;padding:2px 16px;border-radius:4px;display:inline-block;cursor:pointer;font-weight:700;transition:.5s all ease;border:2px solid var(--tag-color);color:var(--tag-color);background:var(--zp-primary-background);user-select:none}.full-screen-menu .tags-container .tag.selected[data-v-006d4d7c]{background:var(--tag-color);color:#fff}.full-screen-menu .container[data-v-006d4d7c]{height:100%;display:flex;overflow:hidden;flex-direction:column}.full-screen-menu .gen-info[data-v-006d4d7c]{flex:1;word-break:break-all;white-space:pre-line;overflow:auto;z-index:1;padding-top:4px;position:relative}.full-screen-menu .gen-info code[data-v-006d4d7c]{font-size:.9em;display:block;padding:4px;background:var(--zp-primary-background);border-radius:4px;margin-right:20px;white-space:pre-wrap;word-break:break-word;line-height:1.78em}.full-screen-menu .gen-info code[data-v-006d4d7c] .natural-text{margin:.5em 0;line-height:1.6em;text-align:justify;color:var(--zp-primary)}.full-screen-menu .gen-info code[data-v-006d4d7c] .short-tag{word-break:break-all;white-space:nowrap}.full-screen-menu .gen-info code[data-v-006d4d7c] span.tag{background:var(--zp-secondary-variant-background);color:var(--zp-primary);padding:2px 4px;border-radius:6px;margin-right:6px;margin-top:4px;line-height:1.3em;display:inline-block}.full-screen-menu .gen-info code[data-v-006d4d7c] .has-parentheses.tag{background:rgba(255,100,100,.14)}.full-screen-menu .gen-info code[data-v-006d4d7c] span.tag:hover{background:rgba(120,0,0,.15)}.full-screen-menu .gen-info table[data-v-006d4d7c]{font-size:1em;border-radius:4px;border-collapse:separate;margin-bottom:3em}.full-screen-menu .gen-info table tr td[data-v-006d4d7c]:first-child{white-space:nowrap;vertical-align:top}.full-screen-menu .gen-info table.extra-meta-table .extra-meta-value[data-v-006d4d7c]{display:block;max-height:200px;overflow:auto;white-space:pre-wrap;word-break:break-word;font-size:.85em;background:var(--zp-secondary-variant-background);padding:8px;border-radius:4px}.full-screen-menu .gen-info table td[data-v-006d4d7c]{padding-right:14px;padding-left:4px;border-bottom:1px solid var(--zp-secondary);border-collapse:collapse}.full-screen-menu .gen-info .info-tags .info-tag[data-v-006d4d7c]{display:inline-block;overflow:hidden;border-radius:4px;margin-right:8px;border:2px solid var(--zp-primary)}.full-screen-menu .gen-info .info-tags .name[data-v-006d4d7c]{background-color:var(--zp-primary);color:var(--zp-primary-background);padding:4px;border-bottom-right-radius:4px}.full-screen-menu .gen-info .info-tags .value[data-v-006d4d7c]{padding:4px}.full-screen-menu.unset-size[data-v-006d4d7c]{width:unset!important;height:unset!important}.full-screen-menu .mouse-sensor[data-v-006d4d7c]{position:absolute;bottom:0;right:0;transform:rotate(90deg);cursor:se-resize;z-index:1;background:var(--zp-primary-background);border-radius:2px}.full-screen-menu .mouse-sensor>*[data-v-006d4d7c]{font-size:18px;padding:4px}.full-screen-menu .action-bar[data-v-006d4d7c]{display:flex;align-items:center;user-select:none;gap:4px}.full-screen-menu .action-bar .icon[data-v-006d4d7c]{font-size:1.5em;padding:2px 4px;border-radius:4px}.full-screen-menu .action-bar .icon[data-v-006d4d7c]:hover{background:var(--zp-secondary-variant-background)}.full-screen-menu .action-bar>*[data-v-006d4d7c]{flex-wrap:wrap}.full-screen-menu.lr[data-v-006d4d7c]{top:var(--4e261acc)!important;right:0!important;bottom:0!important;left:100vw!important;height:unset!important;width:var(--5c73a50d)!important;transition:left ease .3s}.full-screen-menu.lr.always-on[data-v-006d4d7c],.full-screen-menu.lr.mouse-in[data-v-006d4d7c]{left:var(--243d3811)!important}.tag-alpha-item[data-v-006d4d7c]{display:flex;margin-top:4px}.tag-alpha-item h4[data-v-006d4d7c]{width:32px;flex-shrink:0}.sort-tag-switch[data-v-006d4d7c]{display:inline-block;padding-right:16px;padding-left:8px;cursor:pointer;user-select:none}.sort-tag-switch span[data-v-006d4d7c]{transition:all ease .3s;transform:scale(1.2)}.sort-tag-switch:hover span[data-v-006d4d7c]{transform:scale(1.3)}.lr-layout-control[data-v-006d4d7c]{display:flex;align-items:center;gap:16px;padding:4px 8px;flex-wrap:wrap;border-radius:2px;border-left:3px solid var(--zp-luminous);background-color:var(--zp-secondary-background)}.lr-layout-control .ctrl-item[data-v-006d4d7c]{display:flex;align-items:center;gap:4px;flex-wrap:nowrap}.select-actions[data-v-b04c3508]>:not(:last-child){margin-right:4px}.float-panel[data-v-b04c3508]{position:absolute;bottom:32px;right:32px;background:var(--zp-primary-background);border-radius:4px;z-index:1000;padding:8px;box-shadow:0 0 4px var(--zp-secondary)}
diff --git a/vue/dist/assets/MultiSelectKeep-81ce9fa5.css b/vue/dist/assets/MultiSelectKeep-81ce9fa5.css
new file mode 100644
index 0000000..17a9a8b
--- /dev/null
+++ b/vue/dist/assets/MultiSelectKeep-81ce9fa5.css
@@ -0,0 +1 @@
+.exif-browser[data-v-b913e528]{display:flex;flex-direction:column}.exif-browser .exif-header[data-v-b913e528]{display:flex;align-items:center;justify-content:space-between;padding:8px;background:var(--zp-secondary-variant-background);border-radius:4px;margin-bottom:8px}.exif-browser .exif-header .exif-path[data-v-b913e528]{display:flex;align-items:center;flex:1;overflow:hidden;white-space:nowrap}.exif-browser .exif-header .exif-path .path-item[data-v-b913e528]{padding:2px 4px;border-radius:2px}.exif-browser .exif-header .exif-path .path-item.clickable[data-v-b913e528]{cursor:pointer;color:var(--zp-primary)}.exif-browser .exif-header .exif-path .path-item.clickable[data-v-b913e528]:hover{background:var(--zp-secondary)}.exif-browser .exif-header .exif-path .path-separator[data-v-b913e528]{color:var(--zp-secondary);margin:0 4px}.exif-browser .exif-content .exif-item[data-v-b913e528]{display:flex;align-items:flex-start;padding:4px 8px;border-bottom:1px solid var(--zp-secondary)}.exif-browser .exif-content .exif-item[data-v-b913e528]:hover{background:var(--zp-secondary-variant-background)}.exif-browser .exif-content .exif-item .exif-key[data-v-b913e528]{flex:0 0 120px;font-weight:600;color:var(--zp-primary);word-break:break-all}.exif-browser .exif-content .exif-item .exif-value[data-v-b913e528]{flex:1;display:flex;align-items:flex-start;gap:4px;color:var(--zp-primary);word-break:break-all}.exif-browser .exif-content .exif-item .exif-value .value-text[data-v-b913e528]{flex:1;white-space:pre-wrap}.exif-browser .exif-content .exif-item .exif-value .value-text[data-v-b913e528] code{font-family:Consolas,Monaco,Courier New,monospace;font-size:.9em;line-height:1.5;background:transparent;padding:0}.exif-browser .exif-content .exif-item .exif-value .ant-btn-text[data-v-b913e528]{padding:0 4px;color:var(--zp-luminous)}.exif-browser .exif-content .exif-item .exif-value .ant-btn-text[data-v-b913e528]:hover{color:var(--zp-primary)}.exif-browser .exif-content .exif-simple[data-v-b913e528]{padding:8px;white-space:pre;color:var(--zp-primary)}.full-screen-menu[data-v-3eca06cd]{position:fixed;z-index:9999;background:var(--zp-primary-background);padding:8px 16px;box-shadow:0 0 4px var(--zp-secondary);border-radius:4px}.full-screen-menu .tags-container[data-v-3eca06cd]{margin:4px 0}.full-screen-menu .tags-container .tag[data-v-3eca06cd]{margin-right:4px;margin-bottom:4px;padding:2px 16px;border-radius:4px;display:inline-block;cursor:pointer;font-weight:700;transition:.5s all ease;border:2px solid var(--tag-color);color:var(--tag-color);background:var(--zp-primary-background);user-select:none}.full-screen-menu .tags-container .tag.selected[data-v-3eca06cd]{background:var(--tag-color);color:#fff}.full-screen-menu .container[data-v-3eca06cd]{height:100%;display:flex;overflow:hidden;flex-direction:column}.full-screen-menu .gen-info[data-v-3eca06cd]{flex:1;word-break:break-all;white-space:pre-line;overflow:auto;z-index:1;padding-top:4px;position:relative}.full-screen-menu .gen-info code[data-v-3eca06cd]{font-size:.9em;display:block;padding:4px;background:var(--zp-primary-background);border-radius:4px;margin-right:20px;white-space:pre-wrap;word-break:break-word;line-height:1.78em}.full-screen-menu .gen-info code[data-v-3eca06cd] .natural-text{margin:.5em 0;line-height:1.6em;color:var(--zp-primary)}.full-screen-menu .gen-info code[data-v-3eca06cd] .short-tag{word-break:break-all;white-space:nowrap}.full-screen-menu .gen-info code[data-v-3eca06cd] span.tag{background:var(--zp-secondary-variant-background);color:var(--zp-primary);padding:2px 4px;border-radius:6px;margin-right:6px;margin-top:4px;line-height:1.3em;display:inline-block}.full-screen-menu .gen-info code[data-v-3eca06cd] .has-parentheses.tag{background:rgba(255,100,100,.14)}.full-screen-menu .gen-info code[data-v-3eca06cd] span.tag:hover{background:rgba(120,0,0,.15)}.full-screen-menu .gen-info table[data-v-3eca06cd]{font-size:1em;border-radius:4px;border-collapse:separate;margin-bottom:3em}.full-screen-menu .gen-info table tr td[data-v-3eca06cd]:first-child{white-space:nowrap;vertical-align:top}.full-screen-menu .gen-info table.extra-meta-table .extra-meta-value[data-v-3eca06cd]{display:block;max-height:200px;overflow:auto;white-space:pre-wrap;word-break:break-word;font-size:.85em;background:var(--zp-secondary-variant-background);padding:8px;border-radius:4px}.full-screen-menu .gen-info table td[data-v-3eca06cd]{padding-right:14px;padding-left:4px;border-bottom:1px solid var(--zp-secondary);border-collapse:collapse}.full-screen-menu .gen-info .info-tags .info-tag[data-v-3eca06cd]{display:inline-block;overflow:hidden;border-radius:4px;margin-right:8px;border:2px solid var(--zp-primary)}.full-screen-menu .gen-info .info-tags .name[data-v-3eca06cd]{background-color:var(--zp-primary);color:var(--zp-primary-background);padding:4px;border-bottom-right-radius:4px}.full-screen-menu .gen-info .info-tags .value[data-v-3eca06cd]{padding:4px}.full-screen-menu.unset-size[data-v-3eca06cd]{width:unset!important;height:unset!important}.full-screen-menu .mouse-sensor[data-v-3eca06cd]{position:absolute;bottom:0;right:0;transform:rotate(90deg);cursor:se-resize;z-index:1;background:var(--zp-primary-background);border-radius:2px}.full-screen-menu .mouse-sensor>*[data-v-3eca06cd]{font-size:18px;padding:4px}.full-screen-menu .action-bar[data-v-3eca06cd]{display:flex;align-items:center;user-select:none;gap:4px}.full-screen-menu .action-bar .icon[data-v-3eca06cd]{font-size:1.5em;padding:2px 4px;border-radius:4px}.full-screen-menu .action-bar .icon[data-v-3eca06cd]:hover{background:var(--zp-secondary-variant-background)}.full-screen-menu .action-bar>*[data-v-3eca06cd]{flex-wrap:wrap}.full-screen-menu.lr[data-v-3eca06cd]{top:var(--596f2266)!important;right:0!important;bottom:0!important;left:100vw!important;height:unset!important;width:var(--2de0e080)!important;transition:left ease .3s}.full-screen-menu.lr.always-on[data-v-3eca06cd],.full-screen-menu.lr.mouse-in[data-v-3eca06cd]{left:var(--61f7ee44)!important}.tag-alpha-item[data-v-3eca06cd]{display:flex;margin-top:4px}.tag-alpha-item h4[data-v-3eca06cd]{width:32px;flex-shrink:0}.sort-tag-switch[data-v-3eca06cd]{display:inline-block;padding-right:16px;padding-left:8px;cursor:pointer;user-select:none}.sort-tag-switch span[data-v-3eca06cd]{transition:all ease .3s;transform:scale(1.2)}.sort-tag-switch:hover span[data-v-3eca06cd]{transform:scale(1.3)}.lr-layout-control[data-v-3eca06cd]{display:flex;align-items:center;gap:16px;padding:4px 8px;flex-wrap:wrap;border-radius:2px;border-left:3px solid var(--zp-luminous);background-color:var(--zp-secondary-background)}.lr-layout-control .ctrl-item[data-v-3eca06cd]{display:flex;align-items:center;gap:4px;flex-wrap:nowrap}.section-header[data-v-3eca06cd]{display:flex;align-items:center;margin-bottom:8px;gap:6px}.section-header h3[data-v-3eca06cd]{margin:0}.section-header .edit-section-btn[data-v-3eca06cd]{margin:0;padding:2px 6px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.15);border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;color:var(--zp-primary);font-size:12px;line-height:1;min-width:22px;min-height:22px}.section-header .edit-section-btn[data-v-3eca06cd]:hover{background:rgba(255,255,255,.1);border-color:#ffffff40;color:var(--zp-luminous);transform:scale(1.05)}.section-header .edit-section-btn[data-v-3eca06cd]:active{transform:scale(.95)}.section-header .edit-section-btn[data-v-3eca06cd] .anticon{font-size:12px}.block-visibility-settings[data-v-3eca06cd]{background:var(--zp-primary-background);border-radius:8px;padding:12px;min-width:200px;max-width:300px;box-shadow:0 2px 8px #00000026;border:1px solid var(--zp-secondary)}.block-visibility-settings .settings-title[data-v-3eca06cd]{font-size:14px;font-weight:600;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--zp-secondary);color:var(--zp-primary)}.block-visibility-settings .settings-list[data-v-3eca06cd]{display:flex;flex-direction:column;gap:8px}.block-visibility-settings .settings-item[data-v-3eca06cd]{display:flex;align-items:center;gap:8px;padding:4px 0}.block-visibility-settings .settings-item .settings-label[data-v-3eca06cd]{flex:1;font-size:13px;color:var(--zp-primary)}.select-actions[data-v-b04c3508]>:not(:last-child){margin-right:4px}.float-panel[data-v-b04c3508]{position:absolute;bottom:32px;right:32px;background:var(--zp-primary-background);border-radius:4px;z-index:1000;padding:8px;box-shadow:0 0 4px var(--zp-secondary)}
diff --git a/vue/dist/assets/SubstrSearch-7972e224.js b/vue/dist/assets/SubstrSearch-7972e224.js
new file mode 100644
index 0000000..e27f69d
--- /dev/null
+++ b/vue/dist/assets/SubstrSearch-7972e224.js
@@ -0,0 +1 @@
+import{c as a,A as Ee,d as Pe,bm as He,aC as Ge,r as w,v as Ke,bq as se,s as Le,bs as je,bt as qe,x as Ne,W as Je,X as We,br as ne,bu as Qe,p as Xe,o as p,j as z,C as t,E as e,k as d,l as o,t as i,B as _,m as g,G,bC as Ze,V as U,F as ie,H as oe,I as Ye,U as et,Z as re,a3 as ue,av as tt,a2 as at,bD as lt,a0 as st,by as nt,a1 as it,a8 as ot,aw as rt,ax as ut,bE as dt,n as pt}from"./index-b01f57e3.js";import{s as ct,F as ft}from"./FileItem-56a257c5.js";import{M as vt,L as gt,R as mt,f as _t}from"./MultiSelectKeep-3861be7f.js";import{c as ht,u as yt}from"./hook-dbe0045a.js";import{g as bt,o as kt}from"./index-59dc4640.js";import{f as F,H as de,T as wt,_ as St,a as Ct}from"./TipsCarousel-338d1516.js";import"./index-482cb1cf.js";import"./shortcut-bfd52548.js";import"./_isIterateeCall-f668c4e1.js";var xt={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"defs",attrs:{},children:[{tag:"style",attrs:{}}]},{tag:"path",attrs:{d:"M952 474H829.8C812.5 327.6 696.4 211.5 550 194.2V72c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v122.2C327.6 211.5 211.5 327.6 194.2 474H72c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h122.2C211.5 696.4 327.6 812.5 474 829.8V952c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V829.8C696.4 812.5 812.5 696.4 829.8 550H952c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM512 756c-134.8 0-244-109.2-244-244s109.2-244 244-244 244 109.2 244 244-109.2 244-244 244z"}},{tag:"path",attrs:{d:"M512 392c-32.1 0-62.1 12.4-84.8 35.2-22.7 22.7-35.2 52.7-35.2 84.8s12.5 62.1 35.2 84.8C449.9 619.4 480 632 512 632s62.1-12.5 84.8-35.2C619.4 574.1 632 544 632 512s-12.5-62.1-35.2-84.8A118.57 118.57 0 00512 392z"}}]},name:"aim",theme:"outlined"};const It=xt;function pe(c){for(var r=1;r