omni-context-cli 0.0.95 → 0.0.96

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.
Files changed (77) hide show
  1. package/README.md +8 -7
  2. package/README.zh-CN.md +7 -6
  3. package/dist/cli.js +7 -51
  4. package/dist/clients/extension.vsix +0 -0
  5. package/dist/clients/web/assets/App-CPB0GzVq.js +2 -0
  6. package/dist/clients/web/assets/ImageWorkshop-BOjRCQhg.js +1 -0
  7. package/dist/clients/web/assets/{_baseUniq-CAOPXJZx.js → _baseUniq-CSlK-r-y.js} +1 -1
  8. package/dist/clients/web/assets/{arc-D3nFha6h.js → arc-BHcQ2-H-.js} +1 -1
  9. package/dist/clients/web/assets/{architectureDiagram-VXUJARFQ-cRN1hviT.js → architectureDiagram-VXUJARFQ-DX5Y72ZD.js} +1 -1
  10. package/dist/clients/web/assets/{blockDiagram-VD42YOAC-BuL7jgxO.js → blockDiagram-VD42YOAC-DPTqKNVY.js} +1 -1
  11. package/dist/clients/web/assets/{c4Diagram-YG6GDRKO-C20SRLoI.js → c4Diagram-YG6GDRKO-D1JBCOWQ.js} +1 -1
  12. package/dist/clients/web/assets/channel-DvnFEKmR.js +1 -0
  13. package/dist/clients/web/assets/{chunk-4BX2VUAB-DUUePmCZ.js → chunk-4BX2VUAB-CHWoBAlX.js} +1 -1
  14. package/dist/clients/web/assets/{chunk-55IACEB6-CxYBfvgo.js → chunk-55IACEB6-C64gHYvs.js} +1 -1
  15. package/dist/clients/web/assets/{chunk-B4BG7PRW-P_aL-7j6.js → chunk-B4BG7PRW-BSOuYme-.js} +1 -1
  16. package/dist/clients/web/assets/{chunk-DI55MBZ5-HBGsC-Hc.js → chunk-DI55MBZ5-C8ZzYxAo.js} +1 -1
  17. package/dist/clients/web/assets/{chunk-FMBD7UC4-BN9dgF2F.js → chunk-FMBD7UC4-BerZrvni.js} +1 -1
  18. package/dist/clients/web/assets/{chunk-QN33PNHL-ChBrizLB.js → chunk-QN33PNHL-BUYVKrNV.js} +1 -1
  19. package/dist/clients/web/assets/{chunk-QZHKN3VN-8Nvh5RsT.js → chunk-QZHKN3VN-DOI6e3Kk.js} +1 -1
  20. package/dist/clients/web/assets/{chunk-TZMSLE5B-UKv5j-02.js → chunk-TZMSLE5B-DJAcr1xu.js} +1 -1
  21. package/dist/clients/web/assets/classDiagram-2ON5EDUG-DXl6iSEE.js +1 -0
  22. package/dist/clients/web/assets/classDiagram-v2-WZHVMYZB-DXl6iSEE.js +1 -0
  23. package/dist/clients/web/assets/clone-wHsVzP16.js +1 -0
  24. package/dist/clients/web/assets/consola-loRzlqa9.ttf +0 -0
  25. package/dist/clients/web/assets/consolab-D3-APfo_.ttf +0 -0
  26. package/dist/clients/web/assets/consolai-DyE9HZ1G.ttf +0 -0
  27. package/dist/clients/web/assets/consolaz-DwEiAd5o.ttf +0 -0
  28. package/dist/clients/web/assets/{cose-bilkent-S5V4N54A-ibR06g9G.js → cose-bilkent-S5V4N54A-D2TtPwTf.js} +1 -1
  29. package/dist/clients/web/assets/{dagre-6UL2VRFP-Ctb666b1.js → dagre-6UL2VRFP-BU9iCPUn.js} +1 -1
  30. package/dist/clients/web/assets/{diagram-PSM6KHXK-D-X_a7xE.js → diagram-PSM6KHXK-Cfg_h6mH.js} +1 -1
  31. package/dist/clients/web/assets/{diagram-QEK2KX5R-Bz-v1Qb5.js → diagram-QEK2KX5R-CaxIDeaS.js} +1 -1
  32. package/dist/clients/web/assets/{diagram-S2PKOQOG-B_UXoxFu.js → diagram-S2PKOQOG-DXU6Iyjb.js} +1 -1
  33. package/dist/clients/web/assets/{erDiagram-Q2GNP2WA-Uky3t9Xd.js → erDiagram-Q2GNP2WA-ftuLyugF.js} +1 -1
  34. package/dist/clients/web/assets/{flowDiagram-NV44I4VS-DG5SElRL.js → flowDiagram-NV44I4VS-BpGkh1yE.js} +1 -1
  35. package/dist/clients/web/assets/{ganttDiagram-JELNMOA3-Z-BIwuBJ.js → ganttDiagram-JELNMOA3-BKqYFjp9.js} +1 -1
  36. package/dist/clients/web/assets/{gitGraphDiagram-NY62KEGX-B9aVGNZ-.js → gitGraphDiagram-NY62KEGX-rHXASPsg.js} +1 -1
  37. package/dist/clients/web/assets/{graph-BAzFXrRF.js → graph-Ld2aQoA_.js} +1 -1
  38. package/dist/clients/web/assets/index-BSPo2skZ.js +2 -0
  39. package/dist/clients/web/assets/index-DnHyiLsK.css +1 -0
  40. package/dist/clients/web/assets/{infoDiagram-WHAUD3N6-BTnTIsGF.js → infoDiagram-WHAUD3N6-8Dcy3nHo.js} +1 -1
  41. package/dist/clients/web/assets/{journeyDiagram-XKPGCS4Q-D8zcvgt3.js → journeyDiagram-XKPGCS4Q-Bat7_9j0.js} +1 -1
  42. package/dist/clients/web/assets/{kanban-definition-3W4ZIXB7-BkCNN9NA.js → kanban-definition-3W4ZIXB7-gsMM0euH.js} +1 -1
  43. package/dist/clients/web/assets/{layout-Bk6jcy7p.js → layout-Dd17n8J5.js} +1 -1
  44. package/dist/clients/web/assets/{linear-CPYAMi3l.js → linear-nyXx_SQ-.js} +1 -1
  45. package/dist/clients/web/assets/{min-CIKZg6_h.js → min-uUwClZKs.js} +1 -1
  46. package/dist/clients/web/assets/{mindmap-definition-VGOIOE7T-xrja9a6Z.js → mindmap-definition-VGOIOE7T-CkV4iRHY.js} +1 -1
  47. package/dist/clients/web/assets/{pieDiagram-ADFJNKIX-Cqvb2JIU.js → pieDiagram-ADFJNKIX-Bmy__nzs.js} +1 -1
  48. package/dist/clients/web/assets/{quadrantDiagram-AYHSOK5B-dbhadXBu.js → quadrantDiagram-AYHSOK5B-CqsSmIse.js} +1 -1
  49. package/dist/clients/web/assets/{requirementDiagram-UZGBJVZJ-zboLlJj1.js → requirementDiagram-UZGBJVZJ-YsvePC1f.js} +1 -1
  50. package/dist/clients/web/assets/{sankeyDiagram-TZEHDZUN-Dk9FfJqc.js → sankeyDiagram-TZEHDZUN-CnbjLupT.js} +1 -1
  51. package/dist/clients/web/assets/{sequenceDiagram-WL72ISMW-FjGn6Xba.js → sequenceDiagram-WL72ISMW-CeazxNWE.js} +1 -1
  52. package/dist/clients/web/assets/{stateDiagram-FKZM4ZOC-Dx9GHs2U.js → stateDiagram-FKZM4ZOC-Djzj8Gbk.js} +1 -1
  53. package/dist/clients/web/assets/stateDiagram-v2-4FDKWEC3-D4OuhgRJ.js +1 -0
  54. package/dist/clients/web/assets/{timeline-definition-IT6M3QCI-B6VnuMun.js → timeline-definition-IT6M3QCI-BYT5pzX-.js} +1 -1
  55. package/dist/clients/web/assets/{treemap-KMMF4GRG-Pcaj1Tdv.js → treemap-KMMF4GRG-D0pwnOqN.js} +1 -1
  56. package/dist/clients/web/assets/useAppearance-grxjwaCv.js +1 -0
  57. package/dist/clients/web/assets/{xychartDiagram-PRI3JC2R-BNzAwB8w.js → xychartDiagram-PRI3JC2R-B0RSRTXj.js} +1 -1
  58. package/dist/clients/web/icon-128.png +0 -0
  59. package/dist/clients/web/icon-180.png +0 -0
  60. package/dist/clients/web/icon-256.png +0 -0
  61. package/dist/clients/web/icon-512.png +0 -0
  62. package/dist/clients/web/icon-64.png +0 -0
  63. package/dist/clients/web/index.html +5 -2
  64. package/dist/clients/web/manifest.json +16 -0
  65. package/dist/clients/web/sw.js +50 -0
  66. package/package.json +1 -2
  67. package/scripts/setup-cpa-models.mjs +63 -0
  68. package/dist/clients/web/assets/App-JAw1jLk-.js +0 -2
  69. package/dist/clients/web/assets/ImageWorkshop-BVo_wOYK.js +0 -1
  70. package/dist/clients/web/assets/channel-Da8a5kMB.js +0 -1
  71. package/dist/clients/web/assets/classDiagram-2ON5EDUG-B3e_R5rv.js +0 -1
  72. package/dist/clients/web/assets/classDiagram-v2-WZHVMYZB-B3e_R5rv.js +0 -1
  73. package/dist/clients/web/assets/clone-CiF1wuc2.js +0 -1
  74. package/dist/clients/web/assets/index-CaMOiLO9.css +0 -1
  75. package/dist/clients/web/assets/index-D5jiOiDz.js +0 -2
  76. package/dist/clients/web/assets/stateDiagram-v2-4FDKWEC3-DhcLu-x-.js +0 -1
  77. package/dist/clients/web/assets/useAppearance-BxXXdEjH.js +0 -1
@@ -1 +0,0 @@
1
- import{R as e,j as t,u as n,r as o,a as i,b as a,c as r,d as s}from"./index-D5jiOiDz.js";import{I as l,P as c,C as d,a as u,b as v,s as h,S as m,c as b,T as p,d as f,u as g,e as x,f as w,g as y,L as N,h as k}from"./useAppearance-BxXXdEjH.js";const C=t=>e.createElement("svg",Object.assign({viewBox:"0 0 24 24",width:"24",height:"24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"},t),e.createElement("path",{d:"M7 2h10v2H7zM5 4h2v10H5zm12-2h2v12h-2z"}),e.createElement("path",{d:"M13 2h2v6h-2zM9 2h2v4H9zm-4 8h14v2H5zm2 4h10v2H7zm2 2h2v4H9zm4 0h2v4h-2zm-4 4h6v2H9z"})),M=t=>e.createElement("svg",Object.assign({viewBox:"0 0 24 24",width:"24",height:"24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"},t),e.createElement("path",{d:"M21 15v4h-2v-4zm-2 4v2H5v-2zM5 15v4H3v-4zm8-12v14h-2V3z"}),e.createElement("path",{d:"M7 11v2h10v-2zm2 2v2h2v-2zm4 0v2h2v-2z"}),e.createElement("path",{d:"M15 11v2h2v-2z"})),z=t=>e.createElement("svg",Object.assign({viewBox:"0 0 24 24",width:"24",height:"24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"},t),e.createElement("path",{d:"M4 4h6v2H4zm0 14h16v2H4zM20 8h2v10h-2zM2 6h2v12H2zm8 0h10v2H10z"}));function j({src:e,alt:n="",overlayUrl:o,children:i}){return t.jsxs("div",{className:"relative overflow-hidden",children:[t.jsx("img",{src:e,alt:n,className:"w-full block object-contain select-none pointer-events-none"}),o&&t.jsx("img",{src:o,alt:"",className:"absolute inset-0 w-full h-full object-contain pointer-events-none"}),i]})}function S({assets:e,dragging:i,paintingId:a,paintedMasks:r,canPaintMask:s,onAddFiles:v,onOpenFolder:h,onRemoveAsset:m,onPaintMask:b}){const p=n(),f=o.useRef(null);return t.jsxs("section",{className:"space-y-2",children:[t.jsxs("div",{className:"flex items-center justify-between gap-2",children:[t.jsx("span",{className:"block text-sm font-medium text-vscode-text",children:p.workshop.referenceImages}),t.jsxs("div",{className:"flex items-center gap-1",children:[t.jsx(l,{icon:z,title:p.workshop.folder,onClick:h,className:"hidden md:inline-flex p-1 text-vscode-accent hover:opacity-80"}),t.jsx("input",{ref:f,type:"file",accept:"image/*",multiple:!0,className:"hidden",onChange:function(e){e.target.files&&v(e.target.files),e.target.value=""}}),t.jsx("button",{type:"button",onClick:()=>{var e;return null==(e=f.current)?void 0:e.click()},className:"inline-flex items-center justify-center p-1 cursor-pointer text-vscode-accent hover:opacity-80 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-vscode-accent",title:p.workshop.dropImages,children:t.jsx(c,{width:16,height:16})})]})]}),e.length>0&&t.jsx("div",{className:"space-y-2",children:e.map(e=>{var n;return t.jsxs("div",{className:"relative group min-w-0 border border-dashed border-vscode-border",children:[t.jsx("div",{className:"bg-vscode-bg p-1",children:t.jsx(j,{src:e.url,alt:e.fileName||p.workshop.referenceImageAlt,overlayUrl:(null==(n=r.get(e.id))?void 0:n.overlayUrl)??null})}),t.jsxs("div",{className:"absolute top-1 right-1 flex items-center gap-1 opacity-100 md:opacity-0 md:group-hover:opacity-100 md:group-focus-within:opacity-100 transition-opacity",children:[s&&t.jsx(l,{icon:C,title:p.workshop.paintMask,onClick:()=>b(e.id),className:"p-1 bg-vscode-bg/80 "+(a===e.id?"text-vscode-accent":"hover:text-vscode-accent")}),t.jsx(l,{icon:d,title:p.workshop.removeImage,onClick:()=>m(e.id),className:"p-1 bg-vscode-bg/80 hover:text-vscode-error"})]}),t.jsx("div",{className:"p-1 text-[10px] text-vscode-text-muted truncate",children:e.fileName})]},e.id)})}),t.jsxs("div",{className:`border border-dashed flex items-center justify-center text-vscode-text-muted text-sm gap-2 text-center px-4 ${0===e.length?"h-40 flex-col leading-relaxed":"h-10"} ${i?"border-vscode-accent bg-vscode-element":"border-vscode-border bg-vscode-bg"}`,children:[0===e.length&&t.jsx(u,{width:32,height:32}),t.jsx("span",{children:p.workshop.dropImages})]})]})}function $({label:e,children:n,hint:o}){return t.jsxs("label",{className:"block space-y-2",children:[t.jsx("span",{className:"block text-sm font-medium text-vscode-text",children:e}),n,o&&t.jsx("span",{className:"block text-xs text-vscode-text-muted leading-relaxed",children:o})]})}function P(e,t){if(!e||"auto"===e)return null;const n=e.match(/^(\d+)x(\d+)$/);if(!n)return"Use WIDTHxHEIGHT, for example 1536x1024.";const o=Number(n[1]),i=Number(n[2]),a=Math.max(o,i),r=Math.min(o,i),s=o*i;return o%t.multipleOf!==0||i%t.multipleOf!==0?`Both edges must be multiples of ${t.multipleOf}.`:a>t.maxLongEdge?`The longest edge must be ${t.maxLongEdge}px or less.`:a/r>t.maxRatio?`The aspect ratio must not exceed ${t.maxRatio}:1.`:s<t.minPixels||s>t.maxPixels?`Total pixels must be between ${t.minPixels.toLocaleString()} and ${t.maxPixels.toLocaleString()}.`:null}function T(e){return"image/jpeg"===e?".jpg":"image/webp"===e?".webp":".png"}function F(e){const t=e.match(/^data:([^;]+);base64,(.+)$/s);return t?{mediaType:t[1],base64:t[2]}:null}function O(){var e,t;try{const n=null==(t=null==(e=globalThis.crypto)?void 0:e.randomUUID)?void 0:t.call(e);if(n)return n}catch{}return`${Date.now()}-${Math.random().toString(36).slice(2)}`}function E(e){return new Promise((t,n)=>{const o=new Image;o.onload=()=>t(o),o.onerror=()=>n(new Error("Failed to load image")),o.src=e})}function H({children:e,onClick:n,disabled:o,variant:i="secondary",className:a="",href:r,download:s}){const l=`inline-flex items-center justify-center gap-2 px-3 py-2.5 border border-dashed text-xs font-bold uppercase tracking-wider transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-vscode-accent ${"primary"===i?"bg-vscode-accent text-white border-vscode-accent hover:opacity-90":"danger"===i?"text-vscode-error border-vscode-error/60 hover:bg-vscode-error/10":"text-vscode-text border-vscode-border hover:bg-vscode-element"} ${o?"opacity-50 cursor-not-allowed":"cursor-pointer"} ${a}`;return r&&!o?t.jsx("a",{href:r,download:s,className:l,children:e}):t.jsx("button",{type:"button",onClick:n,disabled:o,className:l,children:e})}function I({item:e,onReuse:o,onRemove:i}){const a=n(),r=e.revisedPrompt||e.prompt,s=!!r.trim();return t.jsxs("article",{className:"relative group border border-dashed border-vscode-border bg-vscode-sidebar min-w-0",children:[t.jsx("div",{className:"bg-vscode-bg p-2 flex items-center justify-center",children:t.jsx("img",{src:e.url,alt:s?r:a.workshop.resultImageAlt,className:"block w-full max-h-[70vh] object-contain"})}),t.jsx("div",{className:"absolute top-1 right-1 opacity-100 md:opacity-0 md:group-hover:opacity-100 md:group-focus-within:opacity-100 transition-opacity",children:t.jsx(l,{icon:d,title:a.workshop.removeFromResults,onClick:()=>i(e.id),className:"p-1 bg-vscode-bg/80 hover:text-vscode-error"})}),t.jsxs("div",{className:"p-3 space-y-3 min-w-0",children:[t.jsxs("div",{className:"flex items-center justify-between gap-2 text-xs text-vscode-text-muted min-w-0",children:[t.jsx("span",{className:"uppercase shrink-0",children:e.kind}),t.jsx("span",{className:"truncate",children:e.model})]}),s&&t.jsx("p",{className:"text-xs text-vscode-text-muted line-clamp-2",children:r}),t.jsxs("div",{className:"flex flex-wrap items-center gap-2 min-w-0",children:[t.jsxs(H,{href:e.url,download:`image-${e.id}${T(e.mimeType)}`,className:"min-w-0",children:[t.jsx(M,{width:14,height:14}),a.workshop.download]}),t.jsxs(H,{onClick:()=>o(e),children:[t.jsx(c,{width:14,height:14}),a.workshop.reuse]}),s&&t.jsxs(H,{onClick:async function(){try{await navigator.clipboard.writeText(r)}catch{return void h(a.actions.copyFailed,"error")}h(a.workshop.promptCopied,"success")},children:[t.jsx(v,{width:14,height:14}),a.workshop.copyPrompt]})]})]})]})}function R({baseImage:e,mask:i,paintOverlayUrl:a,onMaskChange:r,onDone:s}){const l=n(),c=o.useRef(null),d=o.useRef(void 0),u=o.useRef(null),[v,h]=o.useState(48),[m,b]=o.useState(!1),[p,f]=o.useState(!1);function g(t){if(!e)return;const n=t.currentTarget,o=n.getContext("2d");if(!o)return;const{x:i,y:a}=function(e,t){const n=t.getBoundingClientRect();return{x:(e.clientX-n.left)/n.width*t.width,y:(e.clientY-n.top)/n.height*t.height}}(t,n),r=n.width/n.getBoundingClientRect().width;o.fillStyle="rgba(255,255,255,0.55)",o.beginPath(),o.arc(i,a,v*r/2,0,2*Math.PI),o.fill(),f(!0)}function x(){const t=c.current;if(!t||!e||!p)return void r(null,null);const n=t.toDataURL("image/png");u.current=n;const o=document.createElement("canvas");o.width=t.width,o.height=t.height;const i=o.getContext("2d"),a=t.getContext("2d");if(!i||!a)return;const s=a.getImageData(0,0,t.width,t.height),l=i.createImageData(t.width,t.height);for(let e=0;e<s.data.length;e+=4){const t=s.data[e+3]>0;l.data[e]=255,l.data[e+1]=255,l.data[e+2]=255,l.data[e+3]=t?0:255}i.putImageData(l,0,0);const d=o.toDataURL("image/png"),v=F(d);v&&r({id:O(),base64:v.base64,mediaType:v.mediaType,fileName:"mask.png",url:d,width:t.width,height:t.height},n)}return o.useEffect(()=>{const t=c.current;if(!t||!(null==e?void 0:e.width)||!(null==e?void 0:e.height))return;if(d.current===e.id)return;d.current=e.id,t.width=e.width,t.height=e.height;const n=t.getContext("2d");n&&(n.clearRect(0,0,t.width,t.height),f(!1))},[null==e?void 0:e.id]),o.useEffect(()=>{const t=c.current;if(!t||!e||!a)return;if(a===u.current)return;const n=t.getContext("2d");if(!n)return;const o=new Image;o.onload=()=>{n.clearRect(0,0,t.width,t.height),n.drawImage(o,0,0,t.width,t.height),f(!0)},o.src=a},[e,a]),e?t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"bg-vscode-bg p-2",children:t.jsx(j,{src:e.url,alt:e.fileName||l.workshop.referenceImageAlt,children:t.jsx("canvas",{ref:c,className:"absolute inset-0 w-full h-full cursor-crosshair touch-none",onPointerDown:e=>{e.currentTarget.setPointerCapture(e.pointerId),b(!0),g(e)},onPointerMove:e=>{m&&g(e)},onPointerUp:e=>{b(!1),e.currentTarget.releasePointerCapture(e.pointerId),x()},onPointerCancel:()=>{b(!1),x()}})})}),t.jsxs("div",{className:"p-3 space-y-3",children:[t.jsxs("label",{className:"block space-y-2",children:[t.jsx("span",{className:"block text-sm font-medium text-vscode-text",children:l.workshop.brushSize}),t.jsx("input",{type:"range",min:8,max:160,value:v,onChange:e=>h(Number(e.target.value)),className:"pixel-range w-full"})]}),t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(H,{onClick:s,children:l.workshop.done}),t.jsx(H,{onClick:function(){const e=c.current,t=null==e?void 0:e.getContext("2d");e&&t&&t.clearRect(0,0,e.width,e.height),f(!1),r(null,null)},disabled:!p&&!i,children:l.workshop.clear})]})]})]}):null}function W({options:e,value:n,onChange:o}){return t.jsx("div",{className:"grid grid-cols-2 gap-1 bg-vscode-element border border-dashed border-vscode-border p-1",children:e.map(e=>t.jsx("button",{type:"button",onClick:()=>o(e.value),className:"p-2 text-xs font-bold uppercase cursor-pointer transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-vscode-accent "+(n===e.value?"bg-vscode-accent text-white":"text-vscode-text-muted hover:text-vscode-text hover:bg-vscode-bg/60"),children:e.label},e.value))})}const A="w-full px-4 py-2.5 bg-vscode-bg border border-dashed border-vscode-border text-sm text-vscode-text focus:outline-none focus:border-vscode-accent focus-visible:ring-1 focus-visible:ring-vscode-accent disabled:opacity-60 disabled:cursor-not-allowed";function q({options:e,capabilities:i,onClose:a,onSave:r}){const s=n(),l=s.workshop,[c,v]=o.useState("output"),[h,g]=o.useState(e),x=o.useMemo(()=>(null==i?void 0:i.sizeConstraints)?function(e,t){return[{value:"auto",label:t.auto},...e.presets.map(e=>({value:e,label:e.replace("x"," x ")})),{value:"custom",label:t.custom}]}(i.sizeConstraints,l):[{value:"auto",label:l.auto}],[null==i?void 0:i.sizeConstraints,l]),w=null==i?void 0:i.sizeConstraints,y="custom"===h.size?h.customSize:h.size,N=w?P(y,w):null,k=!!w&&function(e,t){const n=e.match(/^(\d+)x(\d+)$/);return!!n&&Number(n[1])*Number(n[2])>t.experimentalAbove}(y,w),C=N||(k?l.experimentalSize:void 0),M=[{id:"output",label:l.output,icon:u},{id:"preferences",label:l.preferences,icon:m}];function z(e,t){g(n=>({...n,[e]:t}))}return t.jsx("div",{className:"fixed inset-0 bg-black/70 flex items-center justify-center z-50 animate-fade-in",children:t.jsxs("div",{className:"bg-vscode-sidebar border border-dashed border-vscode-border w-full max-w-lg overflow-hidden m-4",children:[t.jsxs("div",{className:"flex items-center justify-between px-6 py-4 border-b border-dashed border-vscode-border bg-vscode-element/50",children:[t.jsx("h2",{className:"text-sm font-bold text-vscode-text-header uppercase tracking-widest",children:s.settings.title}),t.jsx("button",{type:"button",onClick:a,className:"text-vscode-text-muted hover:text-vscode-text p-1 hover:bg-vscode-border transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-vscode-accent",children:t.jsx(d,{width:18,height:18})})]}),t.jsx("div",{className:"flex border-b border-dashed border-vscode-border",children:M.map(e=>t.jsxs("button",{type:"button",onClick:()=>v(e.id),className:"flex-1 flex items-center justify-center gap-2 px-4 py-3 text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-vscode-accent "+(c===e.id?"text-vscode-accent border-b-2 border-vscode-accent":"text-vscode-text-muted hover:text-vscode-text"),children:[t.jsx(e.icon,{width:16,height:16}),t.jsx("span",{children:e.label})]},e.id))}),t.jsxs("div",{className:"p-6 space-y-5 max-h-[60vh] overflow-y-auto",children:["output"===c&&t.jsxs(t.Fragment,{children:[t.jsx(b,{label:l.size,value:w?h.size:"auto",onChange:e=>z("size",e),options:x,disabled:!w,description:"custom"!==h.size?C:void 0}),w&&"custom"===h.size&&t.jsx($,{label:l.customSize,hint:C||l.sizeMultipleHint(w.multipleOf),children:t.jsx("input",{value:h.customSize,onChange:e=>z("customSize",e.target.value),placeholder:"1536x1024",className:A,"aria-invalid":!!N})}),t.jsx(b,{label:l.quality,value:(null==i?void 0:i.supportsQuality)?h.quality:"auto",onChange:e=>z("quality",e),options:[{value:"auto",label:l.auto},{value:"low",label:l.qualityLow},{value:"medium",label:l.qualityMedium},{value:"high",label:l.qualityHigh}],disabled:!(null==i?void 0:i.supportsQuality)}),t.jsx(b,{label:l.format,value:(null==i?void 0:i.supportsOutputFormat)?h.outputFormat:"png",onChange:e=>z("outputFormat",e),options:[{value:"png",label:"PNG"},{value:"jpeg",label:"JPEG"},{value:"webp",label:"WebP"}],disabled:!(null==i?void 0:i.supportsOutputFormat)}),(null==i?void 0:i.supportsCompression)&&"png"!==h.outputFormat&&t.jsx($,{label:l.compression,children:t.jsx("input",{type:"number",min:0,max:100,value:h.outputCompression,onChange:e=>z("outputCompression",Number(e.target.value)),className:A})}),t.jsx(b,{label:l.background,value:(null==i?void 0:i.supportsBackground)?h.background:"auto",onChange:e=>z("background",e),options:[{value:"auto",label:l.auto},{value:"opaque",label:l.opaque}],disabled:!(null==i?void 0:i.supportsBackground)}),t.jsx(b,{label:l.moderation,value:(null==i?void 0:i.supportsModeration)?h.moderation:"auto",onChange:e=>z("moderation",e),options:[{value:"auto",label:l.auto},{value:"low",label:l.low}],disabled:!(null==i?void 0:i.supportsModeration)}),t.jsx(b,{label:l.images,value:String((null==i?void 0:i.supportsMultipleOutputs)?h.n:1),onChange:e=>z("n",Number(e)),options:Array.from({length:10},(e,t)=>{const n=String(t+1);return{value:n,label:n}}),disabled:!(null==i?void 0:i.supportsMultipleOutputs)})]}),"preferences"===c&&t.jsx(p,{label:l.privacyMode,description:l.privacyModeDescription,enabled:h.privacyMode,onChange:e=>z("privacyMode",e)})]}),t.jsxs("div",{className:"flex justify-end gap-3 px-6 py-4 border-t border-dashed border-vscode-border bg-vscode-element/30",children:[t.jsx("button",{type:"button",onClick:a,className:"px-4 py-2 text-xs font-bold text-vscode-text hover:bg-vscode-border transition-colors uppercase tracking-wider",children:s.settings.cancel}),t.jsxs("button",{type:"button",onClick:function(){r(h),a()},disabled:!!N,className:"px-6 py-2 text-xs font-bold bg-vscode-accent text-white hover:brightness-110 transition-colors uppercase tracking-wider border border-dashed border-vscode-accent/50 flex items-center gap-2 disabled:opacity-50 disabled:cursor-not-allowed",children:[t.jsx(f,{width:16,height:16}),t.jsx("span",{children:s.settings.save})]})]})]})})}function D(e){return{base64:e.base64,mediaType:e.mediaType,fileName:e.fileName}}async function U(){const e=await i(a("imageWorkshop/config"));if(!e.ok)throw new Error("Failed to load image workshop config");return e.json()}async function J(){const e=await i(a("imageWorkshop/session"));if(!e.ok)throw new Error("Failed to load workshop session");return e.json()}async function B(){const e=await i(a("imageWorkshop/sessions"));return e.ok?e.json():[]}function G(e){var t;return(null==(t=null==e?void 0:e.sizeConstraints)?void 0:t.presets[0])??""}function L(e=null){return{privacyMode:!1,n:1,size:"auto",customSize:G(e),quality:"auto",outputFormat:"png",outputCompression:100,background:"auto",moderation:"auto"}}function V(e){return e.type.startsWith("image/")||/\.(avif|gif|heic|heif|jpe?g|png|webp)$/i.test(e.name)}function K(){const e=s(e=>e.getConfig),c=s(e=>{var t;return null==(t=e.config)?void 0:t.projectName}),[v,m]=o.useState(null),[p,f]=o.useState(!0),[C,M]=o.useState(null),[z,j]=o.useState(""),[H,A]=o.useState([]),[K,Q]=o.useState("generate"),[X,Y]=o.useState(""),[Z,_]=o.useState(""),[ee,te]=o.useState([]),[ne,oe]=o.useState([]),[ie,ae]=o.useState(!1),[re,se]=o.useState(!1),[le,ce]=o.useState("input"),[de,ue]=o.useState(!1),[ve,he]=o.useState(()=>L()),me=o.useRef(null),be=o.useRef(null),pe=o.useRef(null),fe=o.useRef(!1),[ge,xe]=o.useState(null),[we,ye]=o.useState(new Map),Ne=n();g(),o.useEffect(()=>{e().catch(()=>{}),Promise.all([U(),J(),B()]).then(([e,t,n])=>{m(e);const o=e.imageModels.find(t=>t.id===e.defaultImageModelId)??null;_(e.defaultImageModelId||""),he(L((null==o?void 0:o.capabilities)??null)),M(t.id),j(t.title),oe(t.items),A(n)}).catch(e=>h(e instanceof Error?e.message:String(e),"error")).finally(()=>f(!1))},[]),o.useEffect(()=>{document.title=c?`${c} - ${Ne.workshop.title}`:Ne.workshop.title},[c,Ne.workshop.title]),o.useEffect(()=>{if(!me.current)return;me.current.style.height="auto";const e=Math.max(160,Math.min(me.current.scrollHeight,640));me.current.style.height=`${e}px`},[X]);const ke=(null==v?void 0:v.imageModels.find(e=>e.id===Z))??null,Ce=(null==ke?void 0:ke.capabilities)??null,Me=(null==Ce?void 0:Ce.maxReferenceImages)??10,ze=(null==Ce?void 0:Ce.supportsMask)?ee.find(e=>we.has(e.id)):void 0,je=ze?we.get(ze.id).mask:null,Se=ze?[ze,...ee.filter(e=>e.id!==ze.id)]:ee,$e="custom"===ve.size?ve.customSize:ve.size,Pe=(null==Ce?void 0:Ce.sizeConstraints)?P($e,Ce.sizeConstraints):null,Te=!(ie||p||!Z||!X.trim()||Pe||!("edit"!==K||ee.length>0)),Fe=ge?ee.find(e=>e.id===ge)??null:null,Oe=Fe?we.get(Fe.id):void 0,Ee=(null==Ce?void 0:Ce.supportsMask)&&Oe?Oe.mask:null,He=(null==Oe?void 0:Oe.overlayUrl)??null;function Ie(e){var t;null==(t=("input"===e?be:pe).current)||t.scrollTo({top:0,behavior:"smooth"})}function Re(e){ce(e),requestAnimationFrame(()=>Ie(e))}function We(){te([]),ye(new Map),xe(null),Q("generate"),Y("")}async function Ae(e){const t=Array.from(e).filter(V);if(0===t.length)return;Q("edit"),Re("input");const n=(await Promise.allSettled(t.map(e=>async function(e){const t=await new Promise((t,n)=>{const o=new FileReader;o.onload=e=>{var n;return t(String(null==(n=e.target)?void 0:n.result))},o.onerror=()=>n(o.error),o.readAsDataURL(e)}),n=F(t);if(!n)throw new Error("Invalid image file");const o=await E(t);return{id:O(),base64:n.base64,mediaType:n.mediaType,fileName:e.name,url:t,width:o.naturalWidth,height:o.naturalHeight}}(e)))).filter(e=>"fulfilled"===e.status).map(e=>e.value);0!==n.length&&te(e=>{const t=Math.max(0,Me-e.length);return n.length>t&&h(Ne.workshop.maxReferences(Me),"info"),[...e,...n].slice(0,Me)})}async function qe(e){try{const t=await async function(e){try{const t=await fetch(e.url),n=await t.blob(),o=await new Promise(e=>{const t=new FileReader;t.onloadend=()=>e(t.result),t.readAsDataURL(n)}),i=F(o);if(!i)return null;const a=await E(o);return{id:O(),base64:i.base64,mediaType:i.mediaType,fileName:`${e.id}${T(i.mediaType)}`,url:o,width:a.naturalWidth,height:a.naturalHeight}}catch{return null}}(e);if(!t)return void h(Ne.workshop.reuseFailed,"error");Q("edit"),te(e=>[t,...e].slice(0,Me)),Re("input"),h(Ne.workshop.reuseToast,"success")}catch(t){h(t instanceof Error?t.message:String(t),"error")}}async function De(e){const t=ne.find(t=>t.id===e);if(oe(t=>t.filter(t=>t.id!==e)),!(null==t?void 0:t.transient))try{await async function(e){if(!(await i(a("imageWorkshop/item/remove"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e})})).ok)throw new Error("Failed to remove image")}(e)}catch(n){const e=await J().catch(()=>null);e&&oe(e.items),h(n instanceof Error?n.message:String(n),"error")}}return t.jsxs("div",{className:"h-full flex flex-col bg-vscode-bg text-vscode-text text-sm overflow-hidden",onDragOver:e=>{e.preventDefault(),se(!0)},onDragLeave:function(e){const t=e.relatedTarget;t instanceof Node&&e.currentTarget.contains(t)||se(!1)},onDrop:function(e){e.preventDefault(),se(!1),Ae(e.dataTransfer.files)},children:[t.jsx("header",{className:"safe-area-top flex-none pb-2 bg-vscode-bg z-10 px-4 border-b border-dashed border-vscode-border",children:t.jsxs("div",{className:"flex items-center justify-between gap-4 w-full",children:[t.jsx("div",{className:"flex items-center gap-2 min-w-0 flex-1 max-w-[min(48rem,60vw)]",children:t.jsx(x,{icon:u,title:ve.privacyMode?Ne.workshop.privateSession:z||Ne.workshop.newSession,sessions:H,currentId:C,emptyText:Ne.workshop.noSessions,newTitle:Ne.workshop.newSession,onSelect:async function(e){try{const t=await async function(e){const t=await i(a("imageWorkshop/session/load"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e})});if(!t.ok)throw new Error("Session not found");return t.json()}(e.id);M(t.id),j(t.title),oe(t.items),We(),requestAnimationFrame(()=>Ie("input"))}catch(t){h(t instanceof Error?t.message:String(t),"error")}},onNew:async function(){try{const e=await async function(){const e=await i(a("imageWorkshop/session/new"),{method:"POST"});if(!e.ok)throw new Error("Failed to create session");return e.json()}();M(e.id),j(e.title),oe([]),We(),requestAnimationFrame(()=>Ie("input"))}catch(e){h(e instanceof Error?e.message:String(e),"error")}},disabled:ie})}),t.jsxs("div",{className:"flex items-center gap-2 shrink-0",children:[ie?t.jsx(l,{icon:d,title:Ne.workshop.stop,onClick:async function(){fe.current=!0,await async function(){await i(a("imageWorkshop/stop"),{method:"POST"})}().catch(()=>{}),ae(!1)}}):t.jsx(l,{icon:w,title:Ne.workshop.run,onClick:async function(){if(!Te||!Ce)return;fe.current=!1,xe(null),Re("results"),ae(!0);const e="generate"===K?"generate":"edit";try{const t=[];await async function(e,t,n,o){var s;const l={modelId:t.modelId,prompt:t.prompt,...(c=t.options,d=t.capabilities,{privacyMode:c.privacyMode,n:d.supportsMultipleOutputs?c.n:void 0,size:d.sizeConstraints?"custom"===c.size?c.customSize:c.size:void 0,quality:d.supportsQuality?c.quality:void 0,outputFormat:d.supportsOutputFormat?c.outputFormat:void 0,outputCompression:d.supportsCompression?c.outputCompression:void 0,background:d.supportsBackground?c.background:void 0,moderation:d.supportsModeration?c.moderation:void 0}),images:null==(s=t.images)?void 0:s.map(D),mask:t.mask?D(t.mask):void 0};var c,d;const u=await i(a(`imageWorkshop/${e}`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(l)});if(!u.ok){const e=await u.json().catch(()=>null);throw new Error((null==e?void 0:e.error)||(e?JSON.stringify(e):"Request failed"))}await r(u,(e,t)=>{if("image"===e)n(t);else if("session"===e)null==o||o(t);else if("error"===e)throw new Error(t.error||"Request failed")})}(e,{modelId:Z,prompt:X,options:ve,capabilities:Ce,images:"generate"===K?[]:Se,mask:"edit"===K?je:null},e=>t.push(e),e=>{M(e.id),j(e.title),A(t=>t.some(t=>t.id===e.id)?t.map(t=>t.id===e.id?e:t):[e,...t])}),t.length>0&&(oe(e=>[...t,...e]),Re("results")),Y(""),te([]),ye(new Map),xe(null)}catch(t){fe.current||h(t instanceof Error?t.message:String(t),"error")}finally{ae(!1)}},disabled:!Te}),t.jsx(l,{icon:y,title:Ne.app.settings,onClick:()=>ue(!0)})]})]})}),t.jsxs("main",{className:"flex-1 min-h-0 overflow-hidden md:grid md:grid-cols-4",children:[t.jsxs("aside",{ref:be,className:("input"===le?"block":"hidden")+" md:block h-full min-h-0 md:col-span-1 md:border-r border-dashed border-vscode-border bg-vscode-sidebar p-4 space-y-4 overflow-y-auto",children:[t.jsxs("section",{className:"space-y-2",children:[t.jsx(W,{options:[{value:"generate",label:Ne.workshop.generate},{value:"edit",label:Ne.workshop.edit}],value:K,onChange:e=>{Q(e),Ie("input"),"edit"!==e&&(xe(null),ye(new Map))}}),t.jsx("p",{className:"text-xs text-vscode-text-muted leading-relaxed",children:"generate"===K?Ne.workshop.generateDescription:Ne.workshop.editDescription})]}),t.jsx(b,{label:Ne.workshop.imageModel,value:Z,onChange:function(e){const t=(null==v?void 0:v.imageModels.find(t=>t.id===e))??null,n=(null==t?void 0:t.capabilities)??null,o=(null==n?void 0:n.maxReferenceImages)??10;_(e);const i=ee.slice(0,o);ee.length>i.length&&h(Ne.workshop.keptReferences(o),"info"),te(i),xe(e=>e&&i.some(t=>t.id===e)?e:null),ye(e=>{let t=!1;for(const o of e.keys())if(!i.some(e=>e.id===o)){t=!0;break}if(!t)return e;const n=new Map(e);for(const o of[...n.keys()])i.some(e=>e.id===o)||n.delete(o);return n});const a=G(Ce),r=G(n);he(e=>({...e,customSize:e.customSize&&e.customSize!==a?e.customSize:r||e.customSize})),(null==n?void 0:n.supportsMask)||(ye(new Map),xe(null))},options:(null==v?void 0:v.imageModels.map(e=>({value:e.id,label:e.nickname||e.name})))||[],placeholder:Ne.workshop.noModelsPlaceholder,disabled:0===(null==v?void 0:v.imageModels.length)}),0===(null==v?void 0:v.imageModels.length)&&t.jsx("p",{className:"text-xs text-vscode-warning",children:Ne.workshop.addModelHint}),t.jsx($,{label:Ne.workshop.prompt,children:t.jsx("textarea",{ref:me,value:X,onChange:e=>Y(e.target.value),placeholder:Ne.workshop.promptPlaceholder,className:"w-full h-40 max-h-[40rem] resize-none overflow-y-auto px-4 py-3 bg-vscode-bg border border-dashed border-vscode-border text-sm text-vscode-text placeholder-vscode-text-muted focus:outline-none focus:border-vscode-accent focus-visible:ring-1 focus-visible:ring-vscode-accent leading-relaxed"})}),"edit"===K&&Ce&&Ce.maxReferenceImages>0&&t.jsx(S,{assets:ee,dragging:re,paintingId:ge,paintedMasks:we,canPaintMask:!!(null==Ce?void 0:Ce.supportsMask),onAddFiles:Ae,onOpenFolder:()=>async function(){await i(a("imageWorkshop/openFolder"),{method:"POST"})}().catch(()=>{}),onRemoveAsset:e=>{te(t=>t.filter(t=>t.id!==e)),ge===e&&xe(null),ye(t=>{if(!t.has(e))return t;const n=new Map(t);return n.delete(e),n})},onPaintMask:e=>{xe(e),Re("results")}})]}),t.jsxs("section",{ref:pe,className:("results"===le?"block":"hidden")+" md:block h-full min-h-0 md:col-span-3 p-4 space-y-4 overflow-y-auto",children:[Fe&&(null==Ce?void 0:Ce.supportsMask)&&t.jsxs("article",{className:"border border-dashed border-vscode-accent/50 bg-vscode-sidebar min-w-0",children:[t.jsx("div",{className:"p-3 min-w-0",children:t.jsxs("h2",{className:"text-sm font-medium text-vscode-text",children:[Ne.workshop.maskPainter," — ",Fe.fileName]})}),t.jsx(R,{baseImage:Fe,mask:Ee,paintOverlayUrl:He,onMaskChange:(e,t)=>{ye(()=>{const n=new Map;return e&&t&&n.set(Fe.id,{mask:e,overlayUrl:t}),n})},onDone:()=>{xe(null),Re("input")}})]}),0===ne.length?!Fe&&(ie?t.jsxs("div",{className:"min-h-[24rem] border border-dashed border-vscode-border bg-vscode-sidebar flex flex-col items-center justify-center text-center text-vscode-text-muted gap-3",children:[t.jsx(N,{width:40,height:40,className:"animate-spin text-vscode-accent"}),t.jsxs("div",{children:[t.jsx("div",{className:"text-vscode-text-header font-bold uppercase tracking-wider",children:Ne.workshop.generating}),t.jsx("p",{className:"mt-2 text-sm",children:Ne.workshop.generatingHint})]})]}):t.jsxs("div",{className:"min-h-[24rem] flex flex-col items-center justify-center text-center text-vscode-text-muted gap-3",children:[t.jsx(u,{width:48,height:48}),t.jsxs("div",{children:[t.jsx("div",{className:"text-vscode-text-header font-bold uppercase tracking-wider",children:Ne.workshop.noImagesYet}),t.jsx("p",{className:"mt-2 text-sm",children:Ne.workshop.emptyHint})]})]})):t.jsxs("div",{className:"space-y-2",children:[t.jsx("h2",{className:"text-sm font-medium text-vscode-text",children:Ne.workshop.results}),t.jsxs("div",{className:"space-y-4",children:[ie&&t.jsxs("div",{className:"border border-dashed border-vscode-border bg-vscode-sidebar p-6 flex items-center gap-3 text-vscode-text-muted",children:[t.jsx(N,{width:24,height:24,className:"animate-spin text-vscode-accent shrink-0"}),t.jsxs("div",{children:[t.jsx("div",{className:"text-vscode-text-header font-bold uppercase tracking-wider",children:Ne.workshop.generating}),t.jsx("p",{className:"mt-1 text-xs",children:Ne.workshop.generatingHint})]})]}),ne.map(e=>t.jsx(I,{item:e,onReuse:qe,onRemove:De},e.id))]})]})]})]}),t.jsx("div",{className:"safe-area-bottom flex-none bg-vscode-sidebar px-4 border-t border-dashed border-vscode-border md:hidden",children:t.jsx("div",{className:"py-4",children:t.jsx(W,{options:[{value:"input",label:Ne.workshop.prompt},{value:"results",label:Ne.workshop.results}],value:le,onChange:Re})})}),de&&t.jsx(q,{options:ve,capabilities:Ce,onClose:()=>ue(!1),onSave:he}),t.jsx(k,{})]})}export{K as default};
@@ -1 +0,0 @@
1
- import{ap as a,aq as p}from"./App-JAw1jLk-.js";const s=(s,o)=>a.lang.round(p.parse(s)[o]);export{s as c};
@@ -1 +0,0 @@
1
- import{s as r,c as s,a as e,C as p}from"./chunk-B4BG7PRW-P_aL-7j6.js";import{_ as t}from"./App-JAw1jLk-.js";import"./chunk-FMBD7UC4-BN9dgF2F.js";import"./chunk-55IACEB6-CxYBfvgo.js";import"./chunk-QN33PNHL-ChBrizLB.js";import"./index-D5jiOiDz.js";import"./useAppearance-BxXXdEjH.js";var i={parser:e,get db(){return new p},renderer:s,styles:r,init:t(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{i as diagram};
@@ -1 +0,0 @@
1
- import{s as r,c as s,a as e,C as p}from"./chunk-B4BG7PRW-P_aL-7j6.js";import{_ as t}from"./App-JAw1jLk-.js";import"./chunk-FMBD7UC4-BN9dgF2F.js";import"./chunk-55IACEB6-CxYBfvgo.js";import"./chunk-QN33PNHL-ChBrizLB.js";import"./index-D5jiOiDz.js";import"./useAppearance-BxXXdEjH.js";var i={parser:e,get db(){return new p},renderer:s,styles:r,init:t(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{i as diagram};
@@ -1 +0,0 @@
1
- import{b as r}from"./graph-BAzFXrRF.js";function o(o){return r(o,4)}export{o as c};
@@ -1 +0,0 @@
1
- /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-duration:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-amber-400:oklch(82.8% .189 84.429);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-lg:32rem;--container-2xl:42rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--font-weight-medium:500;--font-weight-bold:700;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-relaxed:1.625;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-vscode-bg:var(--vscode-bg)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.\@container{container-type:inline-size}.pointer-events-none{pointer-events:none}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing)*0)}.top-1{top:calc(var(--spacing)*1)}.top-1\/2{top:50%}.top-full{top:100%}.right-0{right:calc(var(--spacing)*0)}.right-1{right:calc(var(--spacing)*1)}.right-4{right:calc(var(--spacing)*4)}.bottom-full{bottom:100%}.left-0{left:calc(var(--spacing)*0)}.left-1{left:calc(var(--spacing)*1)}.left-1\/2{left:50%}.left-7{left:calc(var(--spacing)*7)}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-4{margin:calc(var(--spacing)*4)}.-mx-2{margin-inline:calc(var(--spacing)*-2)}.mx-auto{margin-inline:auto}.my-2{margin-block:calc(var(--spacing)*2)}.my-4{margin-block:calc(var(--spacing)*4)}.-mt-0\.5{margin-top:calc(var(--spacing)*-.5)}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3\.5{margin-top:calc(var(--spacing)*3.5)}.mr-2{margin-right:calc(var(--spacing)*2)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-7{margin-bottom:calc(var(--spacing)*7)}.ml-0\.5{margin-left:calc(var(--spacing)*.5)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-3{margin-left:calc(var(--spacing)*3)}.ml-4{margin-left:calc(var(--spacing)*4)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-10{height:calc(var(--spacing)*10)}.h-40{height:calc(var(--spacing)*40)}.h-100{height:calc(var(--spacing)*100)}.h-full{height:100%}.h-px{height:1px}.max-h-48{max-height:calc(var(--spacing)*48)}.max-h-60{max-height:calc(var(--spacing)*60)}.max-h-64{max-height:calc(var(--spacing)*64)}.max-h-80{max-height:calc(var(--spacing)*80)}.max-h-96{max-height:calc(var(--spacing)*96)}.max-h-\[40rem\]{max-height:40rem}.max-h-\[60vh\]{max-height:60vh}.max-h-\[70vh\]{max-height:70vh}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-4\.5{min-height:calc(var(--spacing)*4.5)}.min-h-\[24rem\]{min-height:24rem}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-10{width:calc(var(--spacing)*10)}.w-12{width:calc(var(--spacing)*12)}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-40{max-width:calc(var(--spacing)*40)}.max-w-48{max-width:calc(var(--spacing)*48)}.max-w-50{max-width:calc(var(--spacing)*50)}.max-w-85{max-width:calc(var(--spacing)*85)}.max-w-\[85\%\]{max-width:85%}.max-w-\[min\(48rem\,60vw\)\]{max-width:min(48rem,60vw)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-none{max-width:none}.min-w-0{min-width:calc(var(--spacing)*0)}.flex-1{flex:1}.flex-none{flex:none}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-110{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.rotate-180{rotate:180deg}.animate-spin{animation:var(--animate-spin)}.cursor-crosshair{cursor:crosshair}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize-none{resize:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*5)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-2{column-gap:calc(var(--spacing)*2)}.gap-y-0\.5{row-gap:calc(var(--spacing)*.5)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-dashed>:not(:last-child)){--tw-border-style:dashed;border-style:dashed}:where(.divide-vscode-border>:not(:last-child)){border-color:var(--vscode-border)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-transparent{border-color:#0000}.border-vscode-accent,.border-vscode-accent\/40{border-color:var(--vscode-accent)}@supports (color:color-mix(in lab,red,red)){.border-vscode-accent\/40{border-color:color-mix(in oklab,var(--vscode-accent)40%,transparent)}}.border-vscode-accent\/50{border-color:var(--vscode-accent)}@supports (color:color-mix(in lab,red,red)){.border-vscode-accent\/50{border-color:color-mix(in oklab,var(--vscode-accent)50%,transparent)}}.border-vscode-border{border-color:var(--vscode-border)}.border-vscode-border-active{border-color:var(--vscode-border-active)}.border-vscode-error\/50{border-color:var(--vscode-error)}@supports (color:color-mix(in lab,red,red)){.border-vscode-error\/50{border-color:color-mix(in oklab,var(--vscode-error)50%,transparent)}}.border-vscode-error\/60{border-color:var(--vscode-error)}@supports (color:color-mix(in lab,red,red)){.border-vscode-error\/60{border-color:color-mix(in oklab,var(--vscode-error)60%,transparent)}}.border-vscode-error\/70{border-color:var(--vscode-error)}@supports (color:color-mix(in lab,red,red)){.border-vscode-error\/70{border-color:color-mix(in oklab,var(--vscode-error)70%,transparent)}}.border-vscode-info\/50{border-color:var(--vscode-info)}@supports (color:color-mix(in lab,red,red)){.border-vscode-info\/50{border-color:color-mix(in oklab,var(--vscode-info)50%,transparent)}}.border-vscode-info\/70{border-color:var(--vscode-info)}@supports (color:color-mix(in lab,red,red)){.border-vscode-info\/70{border-color:color-mix(in oklab,var(--vscode-info)70%,transparent)}}.border-vscode-text-header{border-color:var(--vscode-text-header)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-black\/70{background-color:#000000b3}@supports (color:color-mix(in lab,red,red)){.bg-black\/70{background-color:color-mix(in oklab,var(--color-black)70%,transparent)}}.bg-green-500\/15{background-color:#00c75826}@supports (color:color-mix(in lab,red,red)){.bg-green-500\/15{background-color:color-mix(in oklab,var(--color-green-500)15%,transparent)}}.bg-red-500\/15{background-color:#fb2c3626}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/15{background-color:color-mix(in oklab,var(--color-red-500)15%,transparent)}}.bg-transparent{background-color:#0000}.bg-vscode-accent,.bg-vscode-accent\/5{background-color:var(--vscode-accent)}@supports (color:color-mix(in lab,red,red)){.bg-vscode-accent\/5{background-color:color-mix(in oklab,var(--vscode-accent)5%,transparent)}}.bg-vscode-accent\/10{background-color:var(--vscode-accent)}@supports (color:color-mix(in lab,red,red)){.bg-vscode-accent\/10{background-color:color-mix(in oklab,var(--vscode-accent)10%,transparent)}}.bg-vscode-accent\/20{background-color:var(--vscode-accent)}@supports (color:color-mix(in lab,red,red)){.bg-vscode-accent\/20{background-color:color-mix(in oklab,var(--vscode-accent)20%,transparent)}}.bg-vscode-accent\/50{background-color:var(--vscode-accent)}@supports (color:color-mix(in lab,red,red)){.bg-vscode-accent\/50{background-color:color-mix(in oklab,var(--vscode-accent)50%,transparent)}}.bg-vscode-bg,.bg-vscode-bg\/80{background-color:var(--vscode-bg)}@supports (color:color-mix(in lab,red,red)){.bg-vscode-bg\/80{background-color:color-mix(in oklab,var(--vscode-bg)80%,transparent)}}.bg-vscode-border{background-color:var(--vscode-border)}.bg-vscode-element,.bg-vscode-element\/20{background-color:var(--vscode-element)}@supports (color:color-mix(in lab,red,red)){.bg-vscode-element\/20{background-color:color-mix(in oklab,var(--vscode-element)20%,transparent)}}.bg-vscode-element\/30{background-color:var(--vscode-element)}@supports (color:color-mix(in lab,red,red)){.bg-vscode-element\/30{background-color:color-mix(in oklab,var(--vscode-element)30%,transparent)}}.bg-vscode-element\/45{background-color:var(--vscode-element)}@supports (color:color-mix(in lab,red,red)){.bg-vscode-element\/45{background-color:color-mix(in oklab,var(--vscode-element)45%,transparent)}}.bg-vscode-element\/50{background-color:var(--vscode-element)}@supports (color:color-mix(in lab,red,red)){.bg-vscode-element\/50{background-color:color-mix(in oklab,var(--vscode-element)50%,transparent)}}.bg-vscode-error,.bg-vscode-error\/10{background-color:var(--vscode-error)}@supports (color:color-mix(in lab,red,red)){.bg-vscode-error\/10{background-color:color-mix(in oklab,var(--vscode-error)10%,transparent)}}.bg-vscode-sidebar,.bg-vscode-sidebar\/90{background-color:var(--vscode-sidebar)}@supports (color:color-mix(in lab,red,red)){.bg-vscode-sidebar\/90{background-color:color-mix(in oklab,var(--vscode-sidebar)90%,transparent)}}.bg-vscode-text{background-color:var(--vscode-text)}.bg-white{background-color:var(--color-white)}.bg-white\/20{background-color:#fff3}@supports (color:color-mix(in lab,red,red)){.bg-white\/20{background-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0\.5{padding:calc(var(--spacing)*.5)}.p-1{padding:calc(var(--spacing)*1)}.p-1\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-2\.5{padding:calc(var(--spacing)*2.5)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.py-8{padding-block:calc(var(--spacing)*8)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-4{padding-top:calc(var(--spacing)*4)}.pr-2{padding-right:calc(var(--spacing)*2)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.pb-6{padding-bottom:calc(var(--spacing)*6)}.pl-1{padding-left:calc(var(--spacing)*1)}.pl-4{padding-left:calc(var(--spacing)*4)}.pl-12{padding-left:calc(var(--spacing)*12)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.leading-5{--tw-leading:calc(var(--spacing)*5);line-height:calc(var(--spacing)*5)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words,.wrap-break-word{overflow-wrap:break-word}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-400{color:var(--color-amber-400)}.text-green-400{color:var(--color-green-400)}.text-green-500{color:var(--color-green-500)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-vscode-accent,.text-vscode-accent\/80{color:var(--vscode-accent)}@supports (color:color-mix(in lab,red,red)){.text-vscode-accent\/80{color:color-mix(in oklab,var(--vscode-accent)80%,transparent)}}.text-vscode-bg{color:var(--vscode-bg)}.text-vscode-border-active{color:var(--vscode-border-active)}.text-vscode-error{color:var(--vscode-error)}.text-vscode-info{color:var(--vscode-info)}.text-vscode-text{color:var(--vscode-text)}.text-vscode-text-header{color:var(--vscode-text-header)}.text-vscode-text-muted{color:var(--vscode-text-muted)}.text-vscode-warning{color:var(--vscode-warning)}.text-white{color:var(--color-white)}.text-white\/70{color:#ffffffb3}@supports (color:color-mix(in lab,red,red)){.text-white\/70{color:color-mix(in oklab,var(--color-white)70%,transparent)}}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.placeholder-vscode-text-muted::placeholder{color:var(--vscode-text-muted)}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-85{opacity:.85}.opacity-100{opacity:1}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.contain-\[layout\]{contain:layout}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\[scrollbar-gutter\:stable_both-edges\]{scrollbar-gutter:stable both-edges}@media(hover:hover){.group-hover\:text-vscode-accent:is(:where(.group):hover *){color:var(--vscode-accent)}.group-hover\:text-vscode-text-header:is(:where(.group):hover *){color:var(--vscode-text-header)}}.focus-within\:border-vscode-accent:focus-within{border-color:var(--vscode-accent)}@media(hover:hover){.hover\:border-vscode-accent:hover,.hover\:border-vscode-accent\/70:hover{border-color:var(--vscode-accent)}@supports (color:color-mix(in lab,red,red)){.hover\:border-vscode-accent\/70:hover{border-color:color-mix(in oklab,var(--vscode-accent)70%,transparent)}}.hover\:border-vscode-border-active:hover{border-color:var(--vscode-border-active)}.hover\:border-vscode-error\/70:hover{border-color:var(--vscode-error)}@supports (color:color-mix(in lab,red,red)){.hover\:border-vscode-error\/70:hover{border-color:color-mix(in oklab,var(--vscode-error)70%,transparent)}}.hover\:border-vscode-info\/70:hover{border-color:var(--vscode-info)}@supports (color:color-mix(in lab,red,red)){.hover\:border-vscode-info\/70:hover{border-color:color-mix(in oklab,var(--vscode-info)70%,transparent)}}.hover\:bg-red-500\/20:hover{background-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.hover\:bg-red-500\/20:hover{background-color:color-mix(in oklab,var(--color-red-500)20%,transparent)}}.hover\:bg-vscode-bg\/60:hover{background-color:var(--vscode-bg)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-vscode-bg\/60:hover{background-color:color-mix(in oklab,var(--vscode-bg)60%,transparent)}}.hover\:bg-vscode-border:hover{background-color:var(--vscode-border)}.hover\:bg-vscode-element:hover,.hover\:bg-vscode-element\/50:hover{background-color:var(--vscode-element)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-vscode-element\/50:hover{background-color:color-mix(in oklab,var(--vscode-element)50%,transparent)}}.hover\:bg-vscode-error\/10:hover{background-color:var(--vscode-error)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-vscode-error\/10:hover{background-color:color-mix(in oklab,var(--vscode-error)10%,transparent)}}.hover\:bg-white\/5:hover{background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/5:hover{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.hover\:bg-white\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/10:hover{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.hover\:text-red-400:hover{color:var(--color-red-400)}.hover\:text-vscode-accent:hover{color:var(--vscode-accent)}.hover\:text-vscode-error:hover{color:var(--vscode-error)}.hover\:text-vscode-text:hover{color:var(--vscode-text)}.hover\:text-vscode-text-header:hover{color:var(--vscode-text-header)}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-100:hover{opacity:1}.hover\:brightness-90:hover{--tw-brightness:brightness(90%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.hover\:brightness-110:hover{--tw-brightness:brightness(110%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}}.focus\:border-vscode-accent:focus{border-color:var(--vscode-accent)}.focus\:border-vscode-border-active:focus{border-color:var(--vscode-border-active)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-vscode-accent:focus-visible{--tw-ring-color:var(--vscode-accent)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}@media(min-width:360px){.min-\[360px\]\:block{display:block}.min-\[360px\]\:flex{display:flex}}@media(min-width:480px){.min-\[480px\]\:block{display:block}.min-\[480px\]\:flex{display:flex}}@media(min-width:40rem){.sm\:flex{display:flex}.sm\:inline{display:inline}.sm\:opacity-0{opacity:0}.sm\:group-focus-within\:opacity-100:is(:where(.group):focus-within *){opacity:1}@media(hover:hover){.sm\:group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}}@media(min-width:48rem){.md\:col-span-1{grid-column:span 1/span 1}.md\:col-span-3{grid-column:span 3/span 3}.md\:block{display:block}.md\:grid{display:grid}.md\:hidden{display:none}.md\:inline-flex{display:inline-flex}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.md\:opacity-0{opacity:0}.md\:group-focus-within\:opacity-100:is(:where(.group):focus-within *){opacity:1}@media(hover:hover){.md\:group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}}@container (min-width:24rem){.\@sm\:flex{display:flex}.\@sm\:flex-none{flex:none}}:root.light .light\:border-vscode-accent\/55{border-color:var(--vscode-accent)}@supports (color:color-mix(in lab,red,red)){:root.light .light\:border-vscode-accent\/55{border-color:color-mix(in oklab,var(--vscode-accent)55%,transparent)}}:root.light .light\:border-vscode-error\/55{border-color:var(--vscode-error)}@supports (color:color-mix(in lab,red,red)){:root.light .light\:border-vscode-error\/55{border-color:color-mix(in oklab,var(--vscode-error)55%,transparent)}}:root.light .light\:border-vscode-info\/55{border-color:var(--vscode-info)}@supports (color:color-mix(in lab,red,red)){:root.light .light\:border-vscode-info\/55{border-color:color-mix(in oklab,var(--vscode-info)55%,transparent)}}:root.light .light\:bg-black\/15{background-color:#00000026}@supports (color:color-mix(in lab,red,red)){:root.light .light\:bg-black\/15{background-color:color-mix(in oklab,var(--color-black)15%,transparent)}}:root.light .light\:bg-green-500\/20{background-color:#00c75833}@supports (color:color-mix(in lab,red,red)){:root.light .light\:bg-green-500\/20{background-color:color-mix(in oklab,var(--color-green-500)20%,transparent)}}:root.light .light\:bg-red-500\/20{background-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){:root.light .light\:bg-red-500\/20{background-color:color-mix(in oklab,var(--color-red-500)20%,transparent)}}:root.light .light\:bg-vscode-element\/55{background-color:var(--vscode-element)}@supports (color:color-mix(in lab,red,red)){:root.light .light\:bg-vscode-element\/55{background-color:color-mix(in oklab,var(--vscode-element)55%,transparent)}}:root.light .light\:text-green-600{color:var(--color-green-600)}:root.light .light\:text-red-600{color:var(--color-red-600)}@media(hover:hover){:root.light .light\:hover\:border-vscode-accent\/75:hover{border-color:var(--vscode-accent)}@supports (color:color-mix(in lab,red,red)){:root.light .light\:hover\:border-vscode-accent\/75:hover{border-color:color-mix(in oklab,var(--vscode-accent)75%,transparent)}}:root.light .light\:hover\:border-vscode-error\/75:hover{border-color:var(--vscode-error)}@supports (color:color-mix(in lab,red,red)){:root.light .light\:hover\:border-vscode-error\/75:hover{border-color:color-mix(in oklab,var(--vscode-error)75%,transparent)}}:root.light .light\:hover\:border-vscode-info\/75:hover{border-color:var(--vscode-info)}@supports (color:color-mix(in lab,red,red)){:root.light .light\:hover\:border-vscode-info\/75:hover{border-color:color-mix(in oklab,var(--vscode-info)75%,transparent)}}:root.light .light\:hover\:bg-black\/5:hover{background-color:#0000000d}@supports (color:color-mix(in lab,red,red)){:root.light .light\:hover\:bg-black\/5:hover{background-color:color-mix(in oklab,var(--color-black)5%,transparent)}}:root.light .light\:hover\:bg-black\/10:hover{background-color:#0000001a}@supports (color:color-mix(in lab,red,red)){:root.light .light\:hover\:bg-black\/10:hover{background-color:color-mix(in oklab,var(--color-black)10%,transparent)}}}}:root{--vscode-bg:#0d0d0d;--vscode-sidebar:#111;--vscode-element:#1a1a1a;--vscode-border:#585858;--vscode-border-active:#777;--vscode-text:#b8b8b8;--vscode-text-header:#e8e8e8;--vscode-text-muted:gray;--vscode-accent:#8e6ef2;--vscode-info:#45bf8d;--vscode-warning:#ebc873;--vscode-error:#e76c6c;color-scheme:dark}:root.light{--vscode-bg:#f5f5f0;--vscode-sidebar:#eaeae5;--vscode-element:#ddddd8;--vscode-border:#999;--vscode-border-active:#666;--vscode-text:#1a1a1a;--vscode-text-header:#000;--vscode-text-muted:#555;--vscode-accent:#6b4cca;--vscode-info:#259969;--vscode-warning:#9b8000;--vscode-error:#ab0000;color-scheme:light}*,:before,:after{box-sizing:border-box;border-radius:0!important}html{overscroll-behavior:none;height:100%;overflow:hidden}body{overscroll-behavior:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--vscode-bg);height:100%;color:var(--vscode-text);-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;touch-action:pan-x pan-y;letter-spacing:.02em;width:100%;margin:0;padding:0;font-family:JetBrains Mono,Cascadia Code,Fira Code,Consolas,Monaco,Courier New,monospace;font-size:13px;position:fixed;overflow:hidden}#root{height:100%;overflow:hidden}.safe-area-top{padding-top:.75rem;padding-top:calc(.75rem + constant(safe-area-inset-top));padding-top:calc(.75rem + env(safe-area-inset-top))}.safe-area-bottom{padding-bottom:0;padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}*{scrollbar-color:var(--vscode-border-active)transparent;scrollbar-width:thin}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--vscode-border-active)}::-webkit-scrollbar-thumb:hover{background:var(--vscode-text-muted)}::-webkit-scrollbar-corner{background:0 0}.markdown-content{contain:layout;width:100%;line-height:1.7;overflow:hidden}.markdown-content>:first-child{margin-top:0}.markdown-content>:last-child{margin-bottom:0}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4,.markdown-content h5,.markdown-content h6{color:var(--vscode-text-header);text-transform:uppercase;letter-spacing:.05em;margin-top:1.2em;margin-bottom:.6em;font-weight:700;line-height:1.3}.markdown-content h1{border-bottom:1px dashed var(--vscode-border);padding-bottom:.3em;font-size:1.3em}.markdown-content h2{border-bottom:1px dashed var(--vscode-border);padding-bottom:.3em;font-size:1.15em}.markdown-content h3{font-size:1.05em}.markdown-content p{margin:.8em 0}.markdown-content ul,.markdown-content ol{margin:.8em 0;padding-left:1.5em}.markdown-content li,.markdown-content li>p{margin:.3em 0}.markdown-content code{background:var(--vscode-element);color:var(--vscode-text-header);border:1px dashed var(--vscode-border);padding:.15em .4em;font-family:inherit;font-size:.9em}.markdown-content pre{background:var(--vscode-bg);border:1px dashed var(--vscode-border);margin:1em 0;padding:1em;overflow-x:auto}.markdown-content pre code{color:inherit;background:0 0;border:none;padding:0;font-size:.9em}.markdown-content blockquote{border-left:2px dashed var(--vscode-border-active);background:var(--vscode-element);color:var(--vscode-text);margin:1em 0;padding:.5em 1em}.markdown-content blockquote>p:first-child{margin-top:0}.markdown-content blockquote>p:last-child{margin-bottom:0}.markdown-content a{color:var(--vscode-accent);text-underline-offset:2px;text-decoration:underline}.markdown-content a:hover{opacity:.8}.markdown-content table{border-collapse:collapse;width:100%;margin:1em 0;font-size:.95em}.markdown-content th,.markdown-content td{border:1px dashed var(--vscode-border);text-align:left;padding:.5em .8em}.markdown-content th{background:var(--vscode-element);text-transform:uppercase;letter-spacing:.05em;font-size:.85em;font-weight:700}.thinking-markdown{font-family:inherit;font-size:.75rem;line-height:1.5}.thinking-markdown p,.thinking-markdown ul,.thinking-markdown ol,.thinking-markdown li,.thinking-markdown pre{margin:0}.thinking-markdown h1,.thinking-markdown h2,.thinking-markdown h3,.thinking-markdown h4,.thinking-markdown h5,.thinking-markdown h6{margin:0;font-weight:700}.thinking-markdown ul,.thinking-markdown ol{padding-left:1.5em}.thinking-markdown code,.thinking-markdown pre{font-family:inherit;font-size:inherit;background:0 0}.thinking-markdown pre{margin:.4em 0}@keyframes fadeIn{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:.15s ease-out forwards fadeIn}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.animate-blink{animation:1s step-end infinite blink}input[type=range].pixel-range{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;background:0 0;border:none;outline:none;height:20px}input[type=range].pixel-range::-webkit-slider-runnable-track{background:var(--vscode-border);height:4px}input[type=range].pixel-range::-moz-range-track{background:var(--vscode-border);border:none;height:4px}input[type=range].pixel-range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--vscode-accent);border:2px solid var(--vscode-text-header);cursor:pointer;width:12px;height:12px;margin-top:-4px}input[type=range].pixel-range::-moz-range-thumb{background:var(--vscode-accent);border:2px solid var(--vscode-text-header);cursor:pointer;width:12px;height:12px}.katex,.katex-display{margin:.5em 0!important;position:static!important}.katex-html{max-width:100%;position:static!important;transform:none!important}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@keyframes spin{to{transform:rotate(360deg)}}