living-ai-documentation 3.9.0 → 3.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- :root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f7f9;--ink:#17202a;--muted:#667085;--line:#d9dee7;--line-strong:#b8c0cc;--panel:#fff;--panel-soft:#f8fafc;--accent:#276ef1;--accent-strong:#174ea6;--accent-soft:#e8f0ff;--green:#047857;--green-soft:#dcfce7;--red:#b42318;--red-soft:#fee4e2;--shadow:0 18px 60px #10182824;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}html,body{background:var(--bg);width:100%;height:100%;color:var(--ink);margin:0;overflow:hidden}button,input,select,textarea{font:inherit}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffeb;flex-shrink:0;justify-content:space-between;align-items:center;gap:24px;padding:0 24px;display:flex}.dark .topbar{color:#f3f4f6;background:#111827eb;border-bottom-color:#ffffff1a}.dark .brand-mark{background:#1f2937;border-color:#fff3}.dark .brand-lockup p{color:#9ca3af}.dark .ghost-button{color:#e5e7eb;background:0 0;border-color:#ffffff1f}.dark .ghost-button:hover{background:#ffffff0f}.brand-lockup,.status-row,.panel-title-row,.panel-actions,.panel-kicker{align-items:center;display:flex}.brand-lockup{gap:12px;min-width:0}.brand-mark{border:1px solid var(--line-strong);color:#fff;letter-spacing:0;background:#111827;border-radius:10px;place-items:center;width:38px;height:38px;font-size:12px;font-weight:800;display:grid}h1,p{margin:0}h1{letter-spacing:0;font-size:15px;font-weight:760}.brand-lockup p{color:var(--muted);margin-top:2px;font-size:12px}.status-row{gap:10px}.status-pill,.panel-kicker span{letter-spacing:0;border-radius:999px;font-size:12px;font-weight:700}.status-pill{border:1px solid var(--line);background:var(--panel-soft);color:#344054;padding:7px 10px}.status-pill.is-live{background:var(--green-soft);color:var(--green);border-color:#86efac}.status-pill.is-fallback{color:#9a3412;background:#fff7ed;border-color:#fed7aa}.workspace-shell{min-height:0;position:relative}.workspace-canvas{cursor:grab;touch-action:none;background:#f8fafc;width:100%;height:100%;transition:filter .18s;display:block}.workspace-canvas.is-panning{cursor:grabbing}.tool-button,.ghost-button,.icon-button,.primary-button,.secondary-button{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff}.tool-button{border-radius:16px;place-items:center;width:52px;height:52px;font-size:25px;font-weight:700;display:grid;box-shadow:0 10px 30px #1018281a}.tool-button.primary{color:#fff;background:#111827;border-color:#111827}.ghost-button{border-radius:9px;align-items:center;height:34px;padding:0 12px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.config-surface{color:#f1f5f9;--panel-ink:#f1f5f9;--panel-muted:#94a3b8;--panel-line:#ffffff1a;--panel-field-bg:#ffffff0d;--panel-field-bg-focus:#ffffff14;background:#111827;border:1px solid #ffffff14;border-radius:28px;flex-direction:column;width:min(780px,max(540px,50vw));max-width:calc(100vw - 48px);height:calc(100vh - 118px);padding:24px;display:flex;overflow-y:auto;box-shadow:0 24px 80px #0006}.config-surface[hidden]{display:none}.panel-kicker{flex-shrink:0;justify-content:space-between;margin-bottom:18px}.panel-kicker span{padding:6px 9px}#nodeTypeBadge{color:#93c5fd;background:#60a5fa26}#nodeHealthBadge{background:var(--green-soft);color:var(--green)}.panel-title-row{flex-shrink:0;justify-content:space-between;align-items:start;gap:12px;margin-bottom:18px}.panel-title-row>div{flex:auto;min-width:0}.eyebrow,.field span{color:var(--panel-muted,#475467);font-size:12px;font-weight:720;display:block}.title-input{width:100%;min-width:0;color:var(--panel-ink,#101828);letter-spacing:0;background:0 0;border:0;outline:0;margin-top:6px;font-size:24px;font-weight:780}.icon-button{border-radius:10px;place-items:center;width:36px;height:36px;font-size:20px;line-height:1;display:grid}.icon-button.danger{color:#fca5a5;background:#ef444433;border-color:#ef444466}.icon-button.close{color:#fde047;background:#eab30826;border-color:#eab30866}.form-grid{flex-shrink:0;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;display:grid}.field{min-width:0}.field.wide{grid-column:1/-1}.field input,.field select,.field textarea{border:1px solid var(--panel-line,var(--line));background:var(--panel-field-bg,#fff);width:100%;color:var(--panel-ink,var(--ink));border-radius:12px;outline:0;margin-top:7px}.field input,.field select{height:42px;padding:0 12px}.field textarea{resize:none;min-height:84px;padding:10px 12px;line-height:1.45}.checkbox-field{align-items:center;gap:10px;min-height:42px;display:flex}.checkbox-field input{accent-color:#2563eb;width:18px;height:18px;margin-top:0}.checkbox-field span{color:var(--panel-ink,var(--ink));font-size:13px;font-weight:760}.field input:focus,.field select:focus,.field textarea:focus,.title-input:focus{border-color:#60a5fa;box-shadow:0 0 0 4px #60a5fa26}.field input[readonly]{border-color:var(--panel-line,#d0d5dd);color:var(--panel-muted,#475467);background:#ffffff08;font-family:ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,monospace;font-size:12px}.field select:disabled,.icon-button:disabled,.primary-button:disabled,.secondary-button:disabled{cursor:not-allowed;opacity:.62}.contents{display:contents}.contents[hidden]{display:none}.model-field-row{flex-direction:column;display:flex}.model-select-wrap{align-items:center;gap:6px;margin-top:7px;display:flex}.model-select-wrap select{flex:1;margin-top:0}.model-select-wrap .icon-button{border:1px solid var(--line);width:36px;height:42px;color:var(--ink);cursor:pointer;background:#fff;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;display:flex}.model-select-wrap .icon-button:hover{background:#f0f4ff}@keyframes spin{to{transform:rotate(360deg)}}.model-select-wrap .icon-button.loading{pointer-events:none;opacity:.7;animation:.7s linear infinite spin;display:inline-block}.panel-actions{flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;margin-top:auto;padding-top:18px}.panel-actions-left,.panel-actions-right{align-items:center;gap:8px;display:flex}.test-feedback{color:#475467;min-height:18px;margin:10px 0 0;font-size:12px;font-weight:650;line-height:1.4}.agent-section{flex:none;grid-template-columns:minmax(0,1fr);gap:14px;margin-top:16px;display:grid}.agent-section[hidden]{display:none}#nodeSystemPrompt{resize:vertical;min-height:180px}#nodeUserInputDescription{resize:vertical;min-height:104px}.mcp-inventory{border-top:1px solid var(--panel-line,var(--line));margin-top:18px;padding-top:16px}.inventory-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.inventory-header span{color:var(--panel-ink,#344054);font-size:13px;font-weight:760}.inventory-header strong{color:#93c5fd;background:#60a5fa26;border-radius:999px;padding:5px 8px;font-size:11px}.inventory-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.inventory-grid article{border:1px solid var(--panel-line,var(--line));background:#ffffff0a;border-radius:14px;min-width:0;padding:12px}.inventory-grid h2{color:#e2e8f0;margin:0 0 8px;font-size:13px;font-weight:800}.inventory-grid ul{gap:5px;margin:0;padding:0;list-style:none;display:grid}.inventory-grid li{color:#94a3b8;text-overflow:ellipsis;white-space:nowrap;background:#ffffff0f;border-radius:8px;padding:6px 8px;font-family:ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,monospace;font-size:11px;overflow:hidden}.primary-button,.secondary-button,.danger-button{border-radius:11px;height:40px;padding:0 16px;font-size:13px;font-weight:760}.primary-button{border-color:var(--accent);background:var(--accent);color:#fff}.secondary-button{border-color:var(--panel-line,var(--line));background:var(--panel-field-bg,var(--panel-soft));color:var(--panel-ink,var(--ink))}.danger-button{color:#fff;cursor:pointer;background:#d92d20;border:1px solid #d92d20}.confirm-overlay{z-index:60;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f172a47;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.confirm-overlay[hidden]{display:none}.confirm-dialog{background:#fff;border:1px solid #fecdcae6;border-radius:20px;width:min(440px,100vw - 48px);padding:22px;animation:.16s ease-out both confirm-in;box-shadow:0 24px 80px #1018283d}.agent-run-dialog{background:#fff;border:1px solid #bfdbfee6;border-radius:20px;width:min(760px,100vw - 48px);max-height:min(82vh,760px);padding:22px;animation:.16s ease-out both confirm-in;overflow-y:auto;box-shadow:0 24px 80px #1018283d}.agent-run-input-field{margin-top:18px;display:block}.agent-run-result{color:#101828;white-space:pre-wrap;word-break:break-word;background:#f8fafc;border:1px solid #d0d5dd;border-radius:14px;max-height:300px;margin-top:16px;padding:14px;font-size:13px;line-height:1.55;overflow-y:auto}.agent-run-result[hidden]{display:none}.agent-run-result[data-state=loading]{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.agent-run-result[data-state=error]{color:#991b1b;background:#fef2f2;border-color:#fecaca}.confirm-kicker{color:var(--red);margin:0 0 6px;font-size:12px;font-weight:800}.confirm-dialog h2{color:#101828;margin:0;font-size:19px;font-weight:820}.confirm-message{color:#475467;margin:10px 0 0;font-size:14px;line-height:1.5}.confirm-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.workspace-toast{z-index:40;color:#fff;background:#111827;border:1px solid #10182814;border-radius:14px;align-items:center;gap:10px;max-width:min(420px,100vw - 48px);padding:13px 16px;font-size:14px;font-weight:760;animation:.18s ease-out both toast-in;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 18px 60px #10182838}.workspace-toast[hidden]{display:none}.toast-icon{color:#052e1b;background:#34d399;border-radius:999px;flex:none;place-items:center;width:20px;height:20px;font-size:13px;font-weight:900;display:grid}.workspace-toast[data-state=error] .toast-icon{color:#450a0a;background:#f87171}.workspace-toast[data-state=loading] .toast-icon{color:#fff;background:#6b7280;animation:.8s linear infinite spin}.fallback-panel-host{z-index:6;width:min(780px,max(540px,50vw - 24px));max-width:calc(100vw - 48px);position:absolute;top:24px;bottom:24px;right:24px}.fallback-panel-host:not([hidden]){animation:.22s ease-out both panel-in}.fallback-panel-host .config-surface{width:100%;height:100%}@media (width<=900px){.app-shell{grid-template-rows:88px minmax(0,1fr)}.topbar{flex-direction:column;justify-content:center;align-items:flex-start;gap:8px}.config-surface{width:min(420px,100vw - 32px);padding:18px}.fallback-panel-host{width:auto;inset:auto 16px 16px}.inventory-grid{grid-template-columns:1fr}}@keyframes panel-in{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:translate(0)}}@keyframes confirm-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.admin-scroll{height:100%;overflow-y:auto}.admin-form{display:contents}.save-bar{z-index:10;border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0}.save-bar-inner{justify-content:space-between;align-items:center;gap:16px;max-width:720px;margin:0 auto;padding:12px 24px;display:flex}.save-bar-title{color:var(--ink);margin:0;font-size:16px;font-weight:700}.save-bar-desc{color:var(--muted);margin:2px 0 0;font-size:12px}.save-bar-actions{flex-shrink:0;align-items:center;gap:16px;display:flex}.save-msg{font-size:13px}.save-msg--ok{color:var(--green)}.save-msg--error{color:var(--red)}.admin-sections{flex-direction:column;gap:24px;max-width:720px;margin:0 auto;padding:24px 24px 40px;display:flex}.config-section{border:1px solid var(--line);background:var(--panel);border-radius:12px;overflow:hidden}.config-section-header{border-bottom:1px solid var(--line);padding:16px 24px}.config-section-title{color:var(--ink);align-items:center;gap:8px;margin:0;font-size:14px;font-weight:600;display:flex}.config-section-desc{color:var(--muted);margin:4px 0 0 28px;font-size:12px}.config-section-body{flex-direction:column;gap:16px;padding:16px 24px;display:flex}.field-group{flex-direction:column;gap:4px;display:flex}.field-row{border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;gap:16px;margin-bottom:4px;padding-bottom:8px;display:grid}.info-item dt{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px}.info-item dd{color:var(--ink);word-break:break-all;margin:2px 0 0;font-family:monospace;font-size:12px}.field-label{color:var(--ink);font-size:13px;font-weight:500}.field-hint{color:var(--muted);margin:0;font-size:12px}.field-input{border:1px solid var(--line-strong);background:var(--panel-soft);width:100%;color:var(--ink);border-radius:8px;outline:none;padding:8px 12px;font-size:13px;transition:border-color .15s,box-shadow .15s}.field-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.field-input--mono{font-family:monospace;font-size:12px}.checkbox-label{cursor:pointer;color:var(--ink);align-items:center;gap:10px;font-size:13px;font-weight:500;display:flex}.checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);border-radius:4px;flex-shrink:0}.checkbox-hint{margin-left:26px}.btn-primary{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:8px 20px;font-size:13px;font-weight:600;transition:background .15s}.btn-primary:hover{background:var(--accent-strong)}.btn-sm{padding:6px 12px;font-size:12px}.link-btn{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;text-decoration:underline}.link-btn:disabled{opacity:.35;pointer-events:none}.pattern-preview{background:var(--panel-soft);border:1px solid var(--line);border-radius:8px;padding:12px}.pattern-preview-title{color:var(--accent);text-transform:uppercase;letter-spacing:.05em;margin:0 0 4px;font-size:11px;font-weight:700}.pattern-rows{flex-direction:column;gap:8px;margin-top:8px;display:flex}.pattern-row{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:10px}.pattern-filename{color:var(--muted);word-break:break-all;margin:0 0 6px;font-family:monospace;font-size:11px}.pattern-cols{grid-template-columns:repeat(3,1fr);gap:8px;font-size:12px;display:grid}.pattern-col-label{color:var(--muted);margin-bottom:2px;font-size:11px;display:block}.pattern-value--date{color:var(--green)}.pattern-value--none{color:var(--muted)}.pattern-value--cat{color:var(--accent)}.pattern-value--title{color:var(--ink)}.file-browser{border:1px solid var(--line);border-radius:8px;overflow:hidden}.file-browser-toolbar{background:var(--panel-soft);border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:6px 12px;display:flex}.file-browser-path{color:var(--muted);text-align:right;text-overflow:ellipsis;white-space:nowrap;flex:1;font-family:monospace;font-size:11px;overflow:hidden}.file-browser-list{max-height:208px;overflow-y:auto}.browser-msg{color:var(--muted);text-align:center;margin:0;padding:12px;font-size:12px}.browser-msg--error{color:var(--red)}.browser-row{text-align:left;cursor:pointer;border:none;border-bottom:1px solid var(--line);background:0 0;align-items:center;gap:8px;width:100%;padding:8px 12px;font-size:13px;display:flex}.browser-row:last-child{border-bottom:none}.browser-row:hover{background:var(--panel-soft)}.browser-row--dir{color:var(--ink)}.browser-row--file{cursor:default;justify-content:space-between}.browser-row-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.badge-added{color:var(--green);flex-shrink:0;font-size:11px}.extra-files-list{flex-direction:column;gap:4px;display:flex}.extra-file-row{background:var(--panel-soft);border-radius:6px;align-items:center;gap:8px;padding:8px 12px;display:flex}.extra-file-arrows{flex-direction:column;gap:0;display:flex}.extra-file-arrows button{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;line-height:1.2}.extra-file-arrows button:disabled{opacity:.25;pointer-events:none}.extra-file-path{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:1;font-family:monospace;font-size:11px;overflow:hidden}.remove-btn{color:var(--red);cursor:pointer;background:0 0;border:none;flex-shrink:0;font-size:12px}.palette-header{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.swatches{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.swatch-wrap{width:32px;height:32px;position:relative}.swatch{pointer-events:none;border:3px solid;border-radius:50%;width:32px;height:32px}.swatch-input{opacity:0;cursor:pointer;border:none;width:100%;height:100%;padding:0;position:absolute;inset:0}.edge-swatch-wrap{flex-direction:column;align-items:center;gap:3px;display:flex}.edge-swatch{border:2px solid #00000026;border-radius:50%;width:26px;height:26px}.remove-swatch-btn{color:var(--red);cursor:pointer;background:0 0;border:none;padding:0;font-size:10px;line-height:1}.add-color-row{align-items:center;gap:8px;margin-top:12px;display:flex}.color-input{cursor:pointer;border:1px solid var(--line-strong);background:0 0;border-radius:6px;width:32px;height:32px;padding:0}.license-card{border:1px solid var(--accent-soft);border-radius:16px;overflow:hidden}.license-banner{background:linear-gradient(90deg,#276ef1,#4f8ef7,#6366f1);align-items:center;gap:16px;padding:20px 24px;display:flex}.license-icon{font-size:28px}.license-title{color:#fff;margin:0;font-size:15px;font-weight:700}.license-subtitle{color:#fffc;margin:4px 0 0;font-size:12px}.license-body{background:var(--panel);padding:20px 24px}.license-body p{color:var(--ink);margin:0 0 16px;font-size:13px}.license-links{flex-wrap:wrap;gap:12px;display:flex}.license-btn{color:#fff;border-radius:8px;align-items:center;gap:8px;padding:8px 16px;font-size:13px;font-weight:600;text-decoration:none;transition:opacity .15s;display:inline-flex}.license-btn svg{flex-shrink:0;width:16px;height:16px}.license-btn:hover{opacity:.85}.license-btn--linkedin{background:#0a66c2}.license-btn--npm{background:#cb3837}:root[data-blueprint]{--bg:#0f172a;--ink:#f1f5f9;--muted:#94a3b8;--line:#ffffff1a;--accent:#3b82f6;--accent-soft:#3b82f626;font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html,body{background:var(--bg);width:100%;height:100%;color:var(--ink);margin:0}.app-shell{grid-template-rows:64px minmax(0,1fr);width:100vw;height:100vh;display:grid}[data-blueprint] .topbar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0f172aeb}.brand-lockup{align-items:center;gap:12px;min-width:0;display:flex}[data-blueprint] .brand-mark{color:#fff;background:#1e293b;border-color:#fff3}.brand-lockup h1{letter-spacing:0;margin:0;font-size:14px;font-weight:760}.brand-lockup p{color:var(--muted);margin:2px 0 0;font-size:11px}.topbar-right{align-items:center;gap:8px;display:flex}.breadcrumb{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:flex;overflow:hidden}.breadcrumb-item{cursor:pointer;color:var(--accent);white-space:nowrap;font-weight:600;font-size:inherit;background:0 0;border:none;padding:0;font-family:inherit;transition:opacity .15s}.breadcrumb-item:hover{opacity:.75}.breadcrumb-item.current{color:var(--ink);cursor:default;font-weight:700}.breadcrumb-sep{opacity:.4;font-size:11px}.ghost-button{border:1px solid var(--line);height:34px;color:var(--ink);cursor:pointer;background:0 0;border-radius:9px;align-items:center;padding:0 12px;font-size:13px;font-weight:700;text-decoration:none;transition:background .15s;display:inline-flex}[data-blueprint] .ghost-button:hover{background:#ffffff0f}.workspace-shell{position:relative;overflow:hidden}canvas{cursor:default;width:100%;height:100%}canvas.is-panning{cursor:grabbing}.rail{z-index:5;flex-direction:column;gap:10px;display:flex;position:absolute;top:16px;left:16px}[data-blueprint] .tool-button{background:#1e293b;box-shadow:0 8px 24px #0000004d}[data-blueprint] .tool-button:hover{background:#273549}[data-blueprint] .tool-button.active{color:#60a5fa;background:#3b82f633;border-color:#3b82f6}.file-explorer{border-left:1px solid var(--line);z-index:10;background:#0f172a;flex-direction:column;width:50%;animation:.2s ease-out both slide-in;display:flex;position:absolute;top:0;bottom:0;right:0}@keyframes slide-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.explorer-header{border-bottom:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.explorer-path{color:#93c5fd;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;overflow:hidden}.explorer-close{border:1px solid var(--line);width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;flex-shrink:0;place-items:center;font-size:18px;transition:background .15s;display:grid}.explorer-close:hover{color:var(--ink);background:#ffffff0f}.explorer-top{flex:1;min-height:0;overflow-y:auto}.explorer-divider{background:var(--line);flex-shrink:0;height:1px}.explorer-bottom{flex:1;min-height:0;overflow-y:auto}.explorer-list{padding:8px 0}.explorer-item{text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:8px 20px;font-size:13px;transition:background .1s;display:flex}.explorer-item:hover{background:#ffffff0a}.explorer-item.is-folder{color:#93c5fd;font-weight:600}.explorer-item.is-file{color:#94a3b8}.explorer-breadcrumb{flex:1;align-items:center;gap:4px;min-width:0;font-size:12px;display:flex;overflow:hidden}.explorer-breadcrumb-item{color:#60a5fa;cursor:pointer;white-space:nowrap;font-weight:600;font-size:inherit;background:0 0;border:none;padding:0;font-family:inherit}.explorer-breadcrumb-item:hover{text-decoration:underline}.explorer-breadcrumb-item.current{color:#f1f5f9;cursor:default}.explorer-breadcrumb-item.current:hover{text-decoration:none}.explorer-breadcrumb-sep{color:#475569;font-size:11px}.file-preview{height:100%;padding:16px}.file-preview-placeholder{color:#475569;margin:0;padding-top:8px;font-size:13px}.file-preview pre{white-space:pre-wrap;word-break:break-all;margin:0;font-size:12px;line-height:1.6}.file-preview .hljs{background:0 0;padding:0}.file-preview .hljs-ln{border-collapse:collapse;font-size:12px;line-height:1.6}.file-preview .hljs-ln td{padding:0}.file-preview .hljs-ln-numbers{-webkit-user-select:none;user-select:none;text-align:right;color:#3d4f6b;vertical-align:top;border-right:1px solid #1e3a5f;min-width:36px;padding-left:4px!important;padding-right:16px!important}.file-preview .hljs-ln-code{padding-left:16px!important}.file-preview img{object-fit:contain;border-radius:8px;max-width:100%;max-height:300px}.file-preview video{border-radius:8px;max-width:100%}.file-preview-binary,.file-preview-truncated{border-radius:6px;margin-top:8px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-block}.file-preview-binary{color:#fca5a5;background:#ef444426}.file-preview-truncated{color:#fde047;background:#eab30826}.file-preview-name{color:#94a3b8;margin:0 0 10px;font-size:12px;font-weight:700}.explorer-section-label{color:#475569;text-transform:uppercase;letter-spacing:.06em;padding:12px 20px 4px;font-size:11px;font-weight:700}.empty-state{color:var(--muted);pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:14px;display:flex;position:absolute;inset:0}.empty-state p{margin:0}.bpadr-overlay{z-index:50;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#94a3b84d;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.bpadr-modal{color:#1e293b;background:#f9fafb;border:1px solid #e2e8f0;border-radius:20px;flex-direction:column;width:min(1100px,96vw);max-height:92vh;display:flex;overflow:hidden;box-shadow:0 32px 80px #0000004d}.bpadr-header{border-bottom:1px solid #e2e8f0;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:20px 24px 16px;display:flex}.bpadr-title{color:#0f172a;margin:0;font-size:16px;font-weight:760}.bpadr-header-actions{align-items:center;gap:8px;display:flex}.bpadr-icon-btn{color:#64748b;cursor:pointer;background:0 0;border:1px solid #e2e8f0;border-radius:9px;place-items:center;width:32px;height:32px;font-size:16px;transition:background .15s;display:grid}.bpadr-icon-btn:hover{color:#0f172a;background:#f1f5f9}.bpadr-read{flex:1;padding:24px;overflow-y:auto}.bpadr-prose{width:100%;max-width:none!important}#bpadrRendered hr{opacity:1!important;border-color:#d1d5db!important}#bpadrRendered :not(pre)>code{color:#1f2937;background-color:#e5e7eb;border-radius:.25rem;padding:.1em .3em;font-size:.875em;font-weight:500}#bpadrRendered table{border-collapse:collapse;border:none}#bpadrRendered table th,#bpadrRendered table td{border:none;border-bottom:1px solid #e5e7eb;padding:.6rem 1rem}#bpadrRendered table thead th{border-bottom-color:#d1d5db}#bpadrRendered table thead,#bpadrRendered table tbody tr{border:none}.bpadr-form{flex-direction:column;flex:1;gap:14px;padding:20px 24px;display:flex;overflow-y:auto}.bpadr-field{flex-direction:column;gap:6px;display:flex}.bpadr-field label{color:#64748b;font-size:12px;font-weight:700}.bpadr-field-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.bpadr-field-grow{flex:1;min-height:0}.bpadr-field-grow .bpadr-textarea{flex:1;min-height:200px}.bpadr-input,.bpadr-textarea{color:#1e293b;resize:none;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;outline:none;padding:8px 12px;font-family:inherit;font-size:13px;transition:border-color .15s}.bpadr-input:focus,.bpadr-textarea:focus{background:#fff;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.bpadr-input[readonly]{color:#2563eb;cursor:default;background:#eff6ff;border-color:#bfdbfe}.bpadr-textarea{min-height:180px;line-height:1.6}.bpadr-footer{flex-shrink:0;justify-content:flex-end;gap:8px;padding-top:4px;display:flex}.bpadr-btn-ghost{color:#64748b;cursor:pointer;background:0 0;border:1px solid #e2e8f0;border-radius:9px;height:36px;padding:0 14px;font-size:13px;font-weight:700}.bpadr-btn-ghost:hover{color:#1e293b;background:#f1f5f9}.bpadr-btn-primary{color:#fff;cursor:pointer;background:#3b82f6;border:none;border-radius:9px;height:36px;padding:0 16px;font-size:13px;font-weight:700}.bpadr-btn-primary:hover{background:#2563eb}.bpadr-folder-confirm{flex-direction:column;gap:8px;padding:32px 24px;display:flex}.bpadr-folder-confirm p{color:#1e293b;margin:0;font-size:14px}.bpadr-folder-confirm strong{color:#2563eb}.bpadr-muted{color:#64748b!important;font-size:13px!important}.files-page.svelte-4q2lov{max-width:720px;margin:0 auto;padding:32px 24px}.files-msg.svelte-4q2lov{color:var(--muted);text-align:center;padding:48px 0;font-size:14px}.files-msg--error.svelte-4q2lov{color:var(--red)}.files-msg--empty.svelte-4q2lov{font-style:italic}.files-list.svelte-4q2lov{border:1px solid var(--line);background:var(--panel);border-radius:12px;margin:0;padding:0;list-style:none;overflow:hidden}.files-row.svelte-4q2lov{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:14px 20px;display:flex}.files-row.svelte-4q2lov:last-child{border-bottom:none}.files-icon.svelte-4q2lov{flex-shrink:0;font-size:18px}.files-info.svelte-4q2lov{flex:1;min-width:0}.files-name.svelte-4q2lov{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:14px;text-decoration:none;display:block;overflow:hidden}.files-name.svelte-4q2lov:hover{color:var(--accent);text-decoration:underline}.files-meta.svelte-4q2lov{color:var(--muted);margin-top:2px;font-size:12px}.files-row-error.svelte-4q2lov{color:var(--red);margin:4px 0 0;font-size:12px}.files-actions.svelte-4q2lov{flex-shrink:0;gap:8px;display:flex}.files-btn.svelte-4q2lov{border:1px solid var(--line-strong);background:var(--panel-soft);color:var(--ink);cursor:pointer;border-radius:8px;padding:5px 12px;font-family:inherit;font-size:12px;transition:background .15s}.files-btn.svelte-4q2lov:hover{background:var(--accent-soft);border-color:var(--accent)}.files-btn.svelte-4q2lov:disabled{opacity:.5;pointer-events:none}.files-btn--danger.svelte-4q2lov{border-color:var(--red-soft);color:var(--red)}.files-btn--danger.svelte-4q2lov:hover{background:var(--red-soft);border-color:var(--red)}.section-card.svelte-e5jhdq{border:1px solid var(--line);background:var(--panel);border-radius:12px;flex-direction:column;gap:12px;padding:16px;display:flex}.section-header.svelte-e5jhdq{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-title.svelte-e5jhdq{color:var(--ink);font-size:13px;font-weight:600}.header-actions.svelte-e5jhdq{align-items:center;gap:8px;display:flex}.count-label.svelte-e5jhdq{color:var(--muted);font-size:12px}.instruction-list.svelte-e5jhdq{flex-direction:column;gap:8px;display:flex}.instruction-row.svelte-e5jhdq{border:1px solid var(--line);border-radius:8px;justify-content:space-between;align-items:flex-start;gap:12px;padding:8px 12px;display:flex}.instruction-info.svelte-e5jhdq{min-width:0}.instruction-path.svelte-e5jhdq{word-break:break-all;color:var(--accent);font-family:monospace;font-size:11px;text-decoration:none}.instruction-path.svelte-e5jhdq:hover{text-decoration:underline}.instruction-meta.svelte-e5jhdq{color:var(--muted);margin-top:2px;font-size:11px}.instruction-actions.svelte-e5jhdq{flex-shrink:0;align-items:center;gap:12px;display:flex}.status-ok.svelte-e5jhdq{color:var(--green);font-size:12px;font-weight:600}.status-missing.svelte-e5jhdq{color:var(--red);font-size:12px;font-weight:600}.empty-msg.svelte-e5jhdq{color:var(--muted);margin:0;font-size:13px}.rules-layout.svelte-1r3tey2{grid-template-columns:minmax(0,1fr) 22rem;align-items:start;gap:16px;display:grid}@media (width<=900px){.rules-layout.svelte-1r3tey2{grid-template-columns:1fr}}.section-card.svelte-1r3tey2{border:1px solid var(--line);background:var(--panel);border-radius:12px;flex-direction:column;gap:12px;padding:16px;display:flex}.aside-card.svelte-1r3tey2{gap:10px}.section-header.svelte-1r3tey2{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-title.svelte-1r3tey2{color:var(--ink);font-size:13px;font-weight:600}.rules-folder.svelte-1r3tey2{color:var(--muted);font-family:monospace;font-size:11px}.rule-list.svelte-1r3tey2{flex-direction:column;gap:8px;display:flex}.rule-row.svelte-1r3tey2{border:1px solid var(--line);border-radius:8px;padding:10px 12px}.rule-top.svelte-1r3tey2{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:6px;display:flex}.rule-title-wrap.svelte-1r3tey2{min-width:0}.rule-title.svelte-1r3tey2{margin:0;font-size:13px;font-weight:600}.rule-link.svelte-1r3tey2{color:var(--accent);text-decoration:none}.rule-link.svelte-1r3tey2:hover{text-decoration:underline}.rule-path.svelte-1r3tey2{color:var(--muted);word-break:break-all;font-family:monospace;font-size:11px;text-decoration:none;display:block}.rule-path.svelte-1r3tey2:hover{color:var(--accent)}.severity-badge.svelte-1r3tey2{background:var(--panel-soft);border:1px solid var(--line);color:var(--ink);border-radius:4px;flex-shrink:0;padding:3px 8px;font-size:11px;font-weight:600}.rule-desc.svelte-1r3tey2{color:var(--muted);margin:0 0 6px;font-size:13px}.rule-tags.svelte-1r3tey2{flex-wrap:wrap;gap:4px;margin-bottom:4px;display:flex}.tag.svelte-1r3tey2{color:var(--accent);font-size:11px}.rule-applies.svelte-1r3tey2{color:var(--muted);word-break:break-all;font-family:monospace;font-size:11px}.empty-msg.svelte-1r3tey2{color:var(--muted);margin:0;font-size:13px}.section-card.svelte-1ui2b6s{border:1px solid var(--line);background:var(--panel);border-radius:12px;flex-direction:column;gap:14px;padding:16px;display:flex}.section-header.svelte-1ui2b6s{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-title.svelte-1ui2b6s{color:var(--ink);font-size:13px;font-weight:600}.section-desc.svelte-1ui2b6s{color:var(--muted);margin:0;font-size:12px}.mcp-info-grid.svelte-1ui2b6s{grid-template-columns:1fr 1fr;gap:8px;display:grid}.mcp-info-cell.svelte-1ui2b6s{border:1px solid var(--line);border-radius:8px;padding:8px 10px}.mcp-info-cell.wide.svelte-1ui2b6s{grid-column:1/-1}.mcp-info-label.svelte-1ui2b6s{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px}.mcp-info-value.svelte-1ui2b6s{color:var(--ink);margin-top:3px;font-size:12px;font-weight:600}.mcp-info-value.ok.svelte-1ui2b6s{color:var(--green)}.mcp-info-value.err.svelte-1ui2b6s{color:var(--red)}.mcp-info-value.mono.svelte-1ui2b6s{font-family:monospace;font-weight:400}.mcp-info-value.break.svelte-1ui2b6s{word-break:break-all}.subsection-header.svelte-1ui2b6s{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.subsection-title.svelte-1ui2b6s{color:var(--muted);font-size:12px;font-weight:600}.subsection-actions.svelte-1ui2b6s{align-items:center;gap:8px;display:flex}.count-label.svelte-1ui2b6s{color:var(--muted);font-size:11px}.mcp-items.svelte-1ui2b6s{flex-direction:column;gap:6px;display:flex}.mcp-detail.svelte-1ui2b6s{border:1px solid var(--line);background:var(--panel-soft);border-radius:8px;padding:8px 12px}.mcp-summary.svelte-1ui2b6s{cursor:pointer;color:var(--accent);-webkit-user-select:none;user-select:none;font-family:monospace;font-size:12px;font-weight:600;list-style:none}.mcp-summary.svelte-1ui2b6s::-webkit-details-marker{display:none}.mcp-desc.svelte-1ui2b6s{color:var(--muted);white-space:pre-wrap;margin:8px 0 0;font-size:12px;line-height:1.5}.mcp-schema-wrap.svelte-1ui2b6s{margin-top:10px}.mcp-schema-title.svelte-1ui2b6s{color:var(--muted);margin:0 0 4px;font-size:11px;font-weight:600}.mcp-schema-pre.svelte-1ui2b6s{background:var(--panel);border:1px solid var(--line);max-height:200px;color:var(--ink);white-space:pre;border-radius:6px;padding:8px;font-size:11px;overflow:auto}.mcp-args-list.svelte-1ui2b6s{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.mcp-arg-item.svelte-1ui2b6s{border:1px solid var(--line);border-radius:6px;padding:6px 8px}.mcp-arg-name-row.svelte-1ui2b6s{align-items:center;gap:8px;display:flex}.mcp-arg-name.svelte-1ui2b6s{color:var(--ink);font-family:monospace;font-size:12px;font-weight:600}.mcp-arg-req.svelte-1ui2b6s{text-transform:uppercase;color:var(--muted);letter-spacing:.05em;font-size:11px}.mcp-arg-desc.svelte-1ui2b6s{color:var(--muted);margin:4px 0 0;font-size:11px}.mcp-run-area.svelte-1ui2b6s{border-top:1px solid var(--line);flex-direction:column;gap:6px;margin-top:10px;padding-top:10px;display:flex}.mcp-run-label.svelte-1ui2b6s{color:var(--muted);font-size:11px;font-weight:600}.mcp-textarea.svelte-1ui2b6s{resize:vertical;font-family:monospace;font-size:11px}.mcp-run-footer.svelte-1ui2b6s{justify-content:space-between;align-items:center;gap:8px;display:flex}.mcp-error-text.svelte-1ui2b6s{color:var(--red);font-size:11px}.mcp-result.svelte-1ui2b6s{font-size:11px}.empty-msg.svelte-1ui2b6s{color:var(--muted);margin:0;font-size:12px}.mcp-running{color:var(--muted);font-style:italic}.mcp-saved-label{color:var(--muted);margin-bottom:4px;font-size:11px}.mcp-saved-link{background:var(--green-soft);color:var(--green);border-radius:6px;align-items:center;gap:4px;padding:4px 10px;font-family:monospace;font-size:11px;font-weight:600;text-decoration:none;display:inline-flex}.mcp-saved-link:hover{opacity:.8}.mcp-error-pre{white-space:pre-wrap;word-break:break-word;border:1px solid var(--red-soft);background:var(--red-soft);max-height:200px;color:var(--red);border-radius:6px;padding:8px;font-size:11px;line-height:1.5;overflow:auto}.context-scroll.svelte-rpj1e5{height:100%;overflow-y:auto}.context-inner.svelte-rpj1e5{flex-direction:column;gap:20px;max-width:1100px;margin:0 auto;padding:24px 24px 48px;display:flex}.page-intro.svelte-rpj1e5{flex-direction:column;gap:4px;display:flex}.page-title.svelte-rpj1e5{color:var(--ink);margin:0;font-size:18px;font-weight:700}.page-desc.svelte-rpj1e5{color:var(--muted);margin:0;font-size:13px}.status-text.svelte-rpj1e5{color:var(--muted);margin:0;font-size:12px;font-style:italic}.agents-page.svelte-lf8l46{max-width:960px;margin:0 auto;padding:32px 24px;position:relative}.agents-msg.svelte-lf8l46{color:var(--muted);text-align:center;padding:48px 0;font-size:14px;font-style:italic}.agents-msg--error.svelte-lf8l46{color:var(--red);font-style:normal}.agents-msg--empty.svelte-lf8l46{font-style:italic}.agents-grid.svelte-lf8l46{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.agent-card.svelte-lf8l46{text-align:left;border:1px solid var(--line);background:var(--panel);cursor:pointer;border-radius:12px;flex-direction:column;gap:4px;padding:16px;font-family:inherit;transition:border-color .15s,box-shadow .15s;display:flex}.agent-card.svelte-lf8l46:hover:not(:disabled){border-color:var(--accent);box-shadow:0 2px 12px var(--accent-soft)}.agent-card--disabled.svelte-lf8l46{opacity:.5;cursor:not-allowed}.agent-name.svelte-lf8l46{color:var(--ink);font-size:14px;font-weight:700}.agent-provider.svelte-lf8l46{color:var(--muted);margin-bottom:8px;font-size:12px}.agent-badge.svelte-lf8l46{border-radius:20px;align-self:flex-start;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.agent-badge--ready.svelte-lf8l46{background:var(--green-soft);color:var(--green)}.agent-badge--requires_input.svelte-lf8l46{background:var(--accent-soft);color:var(--accent)}.agent-badge--not_ready.svelte-lf8l46{background:var(--panel-soft);color:var(--muted)}.agent-input-dialog.svelte-lf8l46{border-color:var(--line-strong)}.agent-toast.svelte-lf8l46{border:1px solid var(--line);background:var(--panel);z-index:50;border-radius:14px;align-items:flex-start;gap:12px;max-width:min(420px,100vw - 48px);padding:14px 16px;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 8px 32px #10182824}.agent-toast-icon.svelte-lf8l46{border-radius:50%;flex-shrink:0;place-items:center;width:24px;height:24px;font-size:12px;font-weight:700;display:grid}.agent-toast--loading.svelte-lf8l46 .agent-toast-icon:where(.svelte-lf8l46){border:2px solid var(--accent);border-top-color:#0000;animation:.8s linear infinite svelte-lf8l46-spin}.agent-toast--success.svelte-lf8l46 .agent-toast-icon:where(.svelte-lf8l46){background:var(--green);color:#fff}.agent-toast--error.svelte-lf8l46 .agent-toast-icon:where(.svelte-lf8l46){background:var(--red);color:#fff}.agent-toast-body.svelte-lf8l46{flex:1;min-width:0}.agent-toast-title.svelte-lf8l46{color:var(--ink);margin:0;font-size:13px;font-weight:700}.agent-toast-message.svelte-lf8l46{color:var(--muted);word-break:break-word;margin:2px 0 0;font-size:12px}.agent-toast-link.svelte-lf8l46{color:var(--accent);margin-top:4px;font-size:12px;text-decoration:underline;display:inline-block}.agent-toast-close.svelte-lf8l46{color:var(--muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0;font-size:18px;line-height:1}@keyframes svelte-lf8l46-spin{to{transform:rotate(360deg)}}.ld-inline-snippet-target{cursor:context-menu}.ld-table-editor table.ld-table-edit-table{--tbl-accent:#d1d5db;--tbl-accent-soft:#e5e7eb;--tbl-accent-stripe:#f3f4f6;--tbl-accent-text:#111827;border-collapse:collapse;border:none}.dark .ld-table-editor table.ld-table-edit-table{--tbl-accent:#4b5563;--tbl-accent-soft:#374151;--tbl-accent-stripe:#1f2937;--tbl-accent-text:#f3f4f6}.ld-table-editor table.ld-table-edit-table.table-color-info{--tbl-accent:#3b82f6;--tbl-accent-soft:#dbeafe;--tbl-accent-stripe:#eff6ff;--tbl-accent-text:#1e3a8a}.ld-table-editor table.ld-table-edit-table.table-color-success{--tbl-accent:#22c55e;--tbl-accent-soft:#dcfce7;--tbl-accent-stripe:#f0fdf4;--tbl-accent-text:#14532d}.ld-table-editor table.ld-table-edit-table.table-color-warning{--tbl-accent:#f59e0b;--tbl-accent-soft:#fef3c7;--tbl-accent-stripe:#fffbeb;--tbl-accent-text:#78350f}.ld-table-editor table.ld-table-edit-table.table-color-danger{--tbl-accent:#ef4444;--tbl-accent-soft:#fee2e2;--tbl-accent-stripe:#fef2f2;--tbl-accent-text:#7f1d1d}.ld-table-editor table.ld-table-edit-table.table-color-note{--tbl-accent:#8b5cf6;--tbl-accent-soft:#e9d5ff;--tbl-accent-stripe:#f5f3ff;--tbl-accent-text:#4c1d95}.dark .ld-table-editor table.ld-table-edit-table.table-color-info{--tbl-accent:#60a5fa;--tbl-accent-soft:#1e3a8a8c;--tbl-accent-stripe:#1e3a8a59;--tbl-accent-text:#bfdbfe}.dark .ld-table-editor table.ld-table-edit-table.table-color-success{--tbl-accent:#4ade80;--tbl-accent-soft:#14532d8c;--tbl-accent-stripe:#14532d59;--tbl-accent-text:#bbf7d0}.dark .ld-table-editor table.ld-table-edit-table.table-color-warning{--tbl-accent:#fbbf24;--tbl-accent-soft:#78350f8c;--tbl-accent-stripe:#78350f59;--tbl-accent-text:#fed7aa}.dark .ld-table-editor table.ld-table-edit-table.table-color-danger{--tbl-accent:#f87171;--tbl-accent-soft:#7f1d1d8c;--tbl-accent-stripe:#7f1d1d59;--tbl-accent-text:#fecaca}.dark .ld-table-editor table.ld-table-edit-table.table-color-note{--tbl-accent:#a78bfa;--tbl-accent-soft:#4c1d958c;--tbl-accent-stripe:#4c1d9559;--tbl-accent-text:#ddd6fe}.ld-table-editor table.ld-table-edit-table td{border:none;border-bottom:1px solid var(--tbl-accent-soft);background:#fff;padding:0}.dark .ld-table-editor table.ld-table-edit-table td{background:#030712}.ld-table-editor table.ld-table-edit-table tr:first-child td{border-bottom-color:var(--tbl-accent);color:var(--tbl-accent-text)}.ld-table-editor table.ld-table-edit-table[class*=table-color-] tr:first-child td{background:var(--tbl-accent-soft)}.ld-table-editor table.ld-table-edit-table .ld-table-edit-input{color:inherit;padding:.75rem;font-size:.875rem}.ld-table-editor table.ld-table-edit-table.table-style-compact .ld-table-edit-input{padding:.25rem .5rem;font-size:.8rem;line-height:1.35}.ld-table-editor table.ld-table-edit-table.table-style-striped tr:not(:first-child):nth-child(odd) td{background:var(--tbl-accent-stripe)}.ld-table-editor table.ld-table-edit-table.table-border-bordered,.ld-table-editor table.ld-table-edit-table.table-border-bordered td{border:1px solid var(--tbl-accent)}.category-docs{transition:max-height .2s,opacity .2s}.category-docs.collapsed{opacity:0;max-height:0;overflow:hidden}.category-docs.expanded{opacity:1;max-height:9999px}.category-docs.no-transition{transition:none!important}.prose pre{position:relative}.ld-code-copy{z-index:2;color:#d1d5db;cursor:pointer;opacity:0;background:#ffffff14;border:1px solid #ffffff26;border-radius:.375rem;justify-content:center;align-items:center;width:36px;height:36px;font-size:.8rem;line-height:1;transition:opacity .15s,background .15s;display:inline-flex;position:absolute;top:.4rem;right:.5rem}.prose pre:hover .ld-code-copy,.ld-code-copy:focus-visible,.ld-code-copy.ld-copied{opacity:1}.ld-code-copy:hover{background:#fff3}.ld-code-copy.ld-copied{color:#86efac;background:#22c55e40;border-color:#22c55e66}table.table-color-info{--tbl-accent:#3b82f6;--tbl-accent-soft:#dbeafe;--tbl-accent-stripe:#eff6ff;--tbl-accent-text:#1e3a8a}table.table-color-success{--tbl-accent:#22c55e;--tbl-accent-soft:#dcfce7;--tbl-accent-stripe:#f0fdf4;--tbl-accent-text:#14532d}table.table-color-warning{--tbl-accent:#f59e0b;--tbl-accent-soft:#fef3c7;--tbl-accent-stripe:#fffbeb;--tbl-accent-text:#78350f}table.table-color-danger{--tbl-accent:#ef4444;--tbl-accent-soft:#fee2e2;--tbl-accent-stripe:#fef2f2;--tbl-accent-text:#7f1d1d}table.table-color-note{--tbl-accent:#8b5cf6;--tbl-accent-soft:#e9d5ff;--tbl-accent-stripe:#f5f3ff;--tbl-accent-text:#4c1d95}.dark table.table-color-info{--tbl-accent:#60a5fa;--tbl-accent-soft:#1e3a8a8c;--tbl-accent-stripe:#1e3a8a59;--tbl-accent-text:#bfdbfe}.dark table.table-color-success{--tbl-accent:#4ade80;--tbl-accent-soft:#14532d8c;--tbl-accent-stripe:#14532d59;--tbl-accent-text:#bbf7d0}.dark table.table-color-warning{--tbl-accent:#fbbf24;--tbl-accent-soft:#78350f8c;--tbl-accent-stripe:#78350f59;--tbl-accent-text:#fed7aa}.dark table.table-color-danger{--tbl-accent:#f87171;--tbl-accent-soft:#7f1d1d8c;--tbl-accent-stripe:#7f1d1d59;--tbl-accent-text:#fecaca}.dark table.table-color-note{--tbl-accent:#a78bfa;--tbl-accent-soft:#4c1d958c;--tbl-accent-stripe:#4c1d9559;--tbl-accent-text:#ddd6fe}.prose table[class*=table-color-] thead th{background-color:var(--tbl-accent-soft);color:var(--tbl-accent-text)}.prose table{border-collapse:collapse;border:none}.prose table th,.prose table td{border:none;border-bottom:1px solid #e5e7eb;padding:.6rem 1rem}.prose table thead th{border-bottom-color:#d1d5db}.dark .prose table th,.dark .prose table td{border-bottom-color:#374151}.prose table[class*=table-color-] th,.prose table[class*=table-color-] td{border-bottom-color:var(--tbl-accent-soft)}.prose table[class*=table-color-] thead th{border-bottom-color:var(--tbl-accent)}.prose table thead,.prose table tbody tr{border:none}.prose table.table-style-compact{font-size:.85em;line-height:1.35}.prose table.table-style-compact th,.prose table.table-style-compact td{padding:.2rem .5rem}.prose table.table-style-striped{border-collapse:collapse}.prose table.table-style-striped tbody tr:nth-child(odd){background-color:var(--tbl-accent-stripe,#f3f4f6)}.dark .prose table.table-style-striped tbody tr:nth-child(odd){background-color:var(--tbl-accent-stripe,#374151)}.prose table.table-border-bordered{border-collapse:collapse}.prose table.table-border-bordered,.prose table.table-border-bordered th,.prose table.table-border-bordered td{border:1px solid var(--tbl-accent,#d1d5db)}.dark .prose table.table-border-bordered,.dark .prose table.table-border-bordered th,.dark .prose table.table-border-bordered td{border-color:var(--tbl-accent,#4b5563)}.prose table.table-border-borderless th,.prose table.table-border-borderless td{border-top:none!important;border-left:none!important;border-right:none!important}pre.ld-collapsible{max-height:var(--ld-code-max-h,400px);position:relative;overflow:hidden}pre.ld-collapsible.ld-expanded{max-height:none;overflow:auto}pre.ld-collapsible:not(.ld-expanded):after{content:"";pointer-events:none;background:linear-gradient(#282c3400 0%,#282c34d9 100%);height:64px;position:absolute;bottom:0;left:0;right:0}.ld-code-toggle{z-index:1;color:#e5e7eb;cursor:pointer;background:#ffffff1f;border:1px solid #ffffff2e;border-radius:.375rem;padding:.15rem .6rem;font-size:.75rem;font-weight:500;transition:background .15s;position:absolute;bottom:.4rem;right:.5rem}.ld-code-toggle:hover{background:#ffffff38}.color-swatch-btn.selected-swatch,.color-text-swatch-btn.selected-text-swatch{outline-offset:2px;outline:2px solid;box-shadow:0 0 0 3px #00000026}.ld-toc-aside{border-left:1px solid #e5e7eb}.dark .ld-toc-aside{border-left-color:#374151}.doc-item.active{color:#3b82f6;background-color:#3b82f61f;font-weight:600}.dark .doc-item.active{color:#60a5fa;background-color:#60a5fa26}.dark .prose{color:#d1d5db}.dark .prose h1,.dark .prose h2,.dark .prose h3,.dark .prose h4,.dark .prose h5,.dark .prose h6{color:#f9fafb}.dark .prose a{color:#60a5fa}.dark .prose strong{color:#f3f4f6}.prose code:not(pre code){color:#111827;background:#e5e7eb;border-radius:.25em;padding:.1em .35em;font-size:.875em;font-weight:400}.dark .prose code:not(pre code){color:#f87171;background:#4b5563;border-radius:.25em;padding:.1em .35em;font-size:.875em;font-weight:400}.dark .prose blockquote{color:#9ca3af;border-color:#4b5563}.prose blockquote p:first-of-type:before,.prose blockquote p:last-of-type:after{content:none}.prose blockquote.ld-callout{--callout-accent:#9ca3af;--callout-bg:#f9fafb;--callout-title-color:#374151;--callout-icon-color:#6b7280;border:none;border-left:4px solid var(--callout-accent);background:var(--callout-bg);color:inherit;border-radius:0 .5rem .5rem 0;margin-left:0;margin-right:0;padding:1rem 1.25rem;font-style:normal}.prose blockquote.ld-callout p{color:inherit;margin-top:.4em;margin-bottom:.4em}.prose blockquote.ld-callout p:first-of-type{margin-top:0}.prose blockquote.ld-callout p:last-of-type{margin-bottom:0}.ld-callout-header{color:var(--callout-title-color);align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:1.05em;font-weight:700;line-height:1.3;display:flex}.ld-callout-icon{color:var(--callout-icon-color);flex-shrink:0;align-items:center;margin-right:.15rem;display:inline-flex;transform:scale(1.35)}.ld-callout-icon-inline{vertical-align:middle;margin-top:-.1em;margin-right:.4rem;transform:scale(1.2)}.prose blockquote.ld-callout-info,.prose blockquote.ld-callout-note{--callout-accent:#3b82f6;--callout-bg:#eff6ff;--callout-title-color:#1e3a8a;--callout-icon-color:#3b82f6}.prose blockquote.ld-callout-success,.prose blockquote.ld-callout-tip{--callout-accent:#22c55e;--callout-bg:#f0fdf4;--callout-title-color:#14532d;--callout-icon-color:#22c55e}.prose blockquote.ld-callout-warning,.prose blockquote.ld-callout-caution{--callout-accent:#f59e0b;--callout-bg:#fffbeb;--callout-title-color:#78350f;--callout-icon-color:#f59e0b}.prose blockquote.ld-callout-error,.prose blockquote.ld-callout-danger{--callout-accent:#ef4444;--callout-bg:#fef2f2;--callout-title-color:#7f1d1d;--callout-icon-color:#ef4444}.dark .prose blockquote.ld-callout{--callout-bg:#3741514d;--callout-title-color:#e5e7eb;--callout-icon-color:#9ca3af}.dark .prose blockquote.ld-callout-info,.dark .prose blockquote.ld-callout-note{--callout-accent:#60a5fa;--callout-bg:#1e3a8a33;--callout-title-color:#bfdbfe;--callout-icon-color:#60a5fa}.dark .prose blockquote.ld-callout-success,.dark .prose blockquote.ld-callout-tip{--callout-accent:#4ade80;--callout-bg:#14532d33;--callout-title-color:#bbf7d0;--callout-icon-color:#4ade80}.dark .prose blockquote.ld-callout-warning,.dark .prose blockquote.ld-callout-caution{--callout-accent:#fbbf24;--callout-bg:#78350f33;--callout-title-color:#fed7aa;--callout-icon-color:#fbbf24}.dark .prose blockquote.ld-callout-error,.dark .prose blockquote.ld-callout-danger{--callout-accent:#f87171;--callout-bg:#7f1d1d33;--callout-title-color:#fecaca;--callout-icon-color:#f87171}.prose img{margin-top:0;margin-bottom:0}.prose p>img:only-child,.prose p>a:only-child>img{margin-top:1em;margin-bottom:1em}.prose hr{border-color:#d1d5db;margin-top:2em;margin-bottom:2em}mark.ld-local-mark{color:inherit;background:#bae6fd;border-radius:2px;padding:0 1px}mark.ld-local-mark.ld-local-active{color:#fff;background:#0284c7}.dark mark.ld-local-mark{color:#e0f2fe;background:#075985}.dark mark.ld-local-mark.ld-local-active{color:#082f49;background:#0ea5e9}.ld-local-item-active{background:#0ea5e91f}.prose a.ld-file-attachment,a.ld-file-attachment{color:#5b21b6;background:#ede9fe;border:1px solid #ddd6fe;border-radius:.375rem;align-items:center;gap:.35em;padding:.1em .55em;font-weight:500;text-decoration:none;transition:background-color .15s,border-color .15s;display:inline-flex}.prose a.ld-file-attachment:hover,a.ld-file-attachment:hover{background:#ddd6fe;border-color:#c4b5fd}.dark .prose a.ld-file-attachment,.dark a.ld-file-attachment{color:#c4b5fd;background:#8b5cf62e;border-color:#8b5cf64d}.dark .prose a.ld-file-attachment:hover,.dark a.ld-file-attachment:hover{background:#8b5cf647;border-color:#8b5cf673}a.ld-file-attachment .ld-file-icon{opacity:.85;font-size:.85em}.dark .prose hr{border-color:#374151}.dark .prose table th{color:#f9fafb;background:#1f2937}.dark .prose table td{border-color:#374151}.dark .prose table tr:nth-child(2n){background:#111827}@media print{#sidebar,#header{display:none!important}#content-area{margin:0!important}.no-print{display:none!important}.prose{max-width:100%!important}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.dark ::-webkit-scrollbar-thumb{background:#4b5563}mark{color:inherit;background:#fef08a;border-radius:2px;padding:0 2px}mark.match-active{color:#fff;background:#f97316}.dark mark{color:#fef9c3;background:#713f12}.dark mark.match-active{color:#fff;background:#ea580c}html:not(.dark) body.ld-code-light #home-content-area{background:#fff}html:not(.dark) body.ld-code-light .ld-code-copy{color:#6b7280;background:#0000000a;border:1px solid #0000001a}html:not(.dark) body.ld-code-light .prose pre:hover .ld-code-copy,html:not(.dark) body.ld-code-light .ld-code-copy:focus-visible,html:not(.dark) body.ld-code-light .ld-code-copy.ld-copied{opacity:1}html:not(.dark) body.ld-code-light .ld-code-copy:hover{color:#111827;background:#00000014;border-color:#0000002e}html:not(.dark) body.ld-code-light .ld-code-copy.ld-copied{color:#15803d;background:#22c55e1f;border-color:#22c55e59}html:not(.dark) body.ld-code-light pre.ld-collapsible:not(.ld-expanded):after{background:linear-gradient(#f6f8fa00 0%,#f6f8faeb 100%)}html:not(.dark) body.ld-code-light .ld-code-toggle{color:#374151;background:#0000000d;border:1px solid #0000001f}html:not(.dark) body.ld-code-light .ld-code-toggle:hover{background:#0000001a}.ld-compare{border:1px solid #e5e7eb;border-radius:.5rem;grid-template-columns:1fr 1fr;margin:1.5rem 0;font-size:.92em;display:grid;overflow:hidden}.dark .ld-compare{border-color:#374151}.ld-compare-source,.ld-compare-render{padding:1rem 1.25rem;position:relative}.ld-compare-source:before,.ld-compare-render:before{text-transform:uppercase;letter-spacing:.08em;margin-bottom:.6rem;font-size:.68rem;font-weight:700;display:block}.ld-compare-source:before{content:"Syntaxe";color:#6b7280}.ld-compare-render:before{content:"Rendu";color:#6b7280}.ld-compare-source{background-color:#f9fafb;border-right:1px solid #e5e7eb}.dark .ld-compare-source{background-color:#111827;border-right-color:#374151}.ld-compare-render{background-color:#fff}.dark .ld-compare-render{background-color:#111827}.ld-compare-render>:first-child{margin-top:0}.ld-compare-render>:last-child{margin-bottom:0}.ld-compare-source>pre{border-radius:.25rem;margin:0;font-size:.85em}@media (width<=640px){.ld-compare{grid-template-columns:1fr}.ld-compare-source{border-bottom:1px solid #e5e7eb;border-right:none}.dark .ld-compare-source{border-bottom-color:#374151}}#vis-canvas>div{border:none!important}.tool-btn{cursor:pointer;color:#4b5563;background:0 0;border:none;border-radius:.5rem;flex-shrink:0;justify-content:center;align-items:center;width:2rem;height:2rem;font-size:.875rem;transition:background-color .15s,color .15s;display:flex}.dark .tool-btn{color:#9ca3af}.tool-btn:hover{background:#f3f4f6}.dark .tool-btn:hover{background:#1f2937}.tool-active{color:#ea580c!important;background:#fff7ed!important}.dark .tool-active{color:#fb923c!important;background:#7c2d124d!important}#vis-canvas.cursor-crosshair canvas{cursor:crosshair!important}.float-panel{z-index:10;background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;align-items:center;gap:.25rem;padding:.375rem .5rem;display:flex;position:absolute;top:.75rem;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0000001a}.dark .float-panel{background:#1f2937;border-color:#374151}.float-panel.hidden{display:none!important}.panel-sep{background:#e5e7eb;flex-shrink:0;width:1px;height:1rem;margin:0 .125rem}.dark .panel-sep{background:#374151}#customShapeLabelPlacementControls{display:contents}#customShapeLabelPlacementControls.hidden{display:none}.edge-btn-active{color:#ea580c!important;background:#fff7ed!important}.dark .edge-btn-active{color:#fb923c!important;background:#7c2d124d!important}#labelInput{z-index:20;text-align:center;color:#1f2937;resize:none;background:#fffffff2;border:2px solid #3b82f6;border-radius:.5rem;outline:none;min-width:80px;min-height:28px;padding:4px 8px;font-family:system-ui,-apple-system,sans-serif;font-size:13px;font-weight:500;line-height:1.4;position:absolute;overflow:hidden;box-shadow:0 4px 16px #00000026}.dark #labelInput{color:#f3f4f6;background:#111827f2}#labelInput.hidden{display:none}#debugLayer{pointer-events:none;z-index:12;position:absolute;inset:0;overflow:hidden}.debug-box{pointer-events:auto;white-space:pre;-webkit-user-select:text;user-select:text;cursor:text;color:#c2410c;background:#ffffffe6;border:1px solid #f97316;border-radius:3px;padding:3px 6px;font:10px/1.4 monospace;position:absolute}.dark .debug-box{color:#fbbf24;background:#000000c7}#selectionOverlay{pointer-events:none;z-index:15;box-sizing:border-box;border:2px dashed #f97316;border-radius:3px;display:none;position:absolute}.resize-handle{pointer-events:all;z-index:1;background:#fff;border:2px solid #f97316;border-radius:2px;width:10px;height:10px;position:absolute}.dark .resize-handle{background:#374151}#rh-rotate{pointer-events:all;z-index:1;cursor:grab;color:#f97316;background:#fff;border:2px solid #f97316;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:10px;display:flex;position:absolute}#rh-rotate:active{cursor:grabbing}.dark #rh-rotate{background:#374151}#rh-label-rotate{pointer-events:all;z-index:1;cursor:grab;color:#6366f1;background:#fff;border:2px solid #6366f1;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:10px;display:flex;position:absolute}#rh-label-rotate:active{cursor:grabbing}.dark #rh-label-rotate{background:#374151}#toastContainer{z-index:1000;pointer-events:none;flex-direction:column-reverse;gap:.5rem;display:flex;position:fixed;bottom:1.5rem;right:1.5rem}.ld-toast{pointer-events:all;cursor:pointer;opacity:0;color:#fafaf9;background:#1c1917;border:1px solid #292524;border-radius:.5rem;padding:.6rem 1rem;font-size:.8rem;font-weight:500;transition:opacity .2s,transform .2s;transform:translateY(.5rem);box-shadow:0 4px 16px #0000002e}.dark .ld-toast{color:#1c1917;background:#fafaf9;border-color:#e7e5e4}.ld-toast--error{color:#fef2f2;background:#7f1d1d;border-color:#991b1b}.ld-toast--visible{opacity:1;transform:translateY(0)}#evidenceLayer{pointer-events:none;z-index:18;position:absolute;inset:0;overflow:hidden}#evidenceLayer.hidden{display:none}.evidence-marker{color:#0369a1;pointer-events:auto;background:#e0f2fe;border:1px solid #0284c7;border-radius:999px;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;font-size:.7rem;font-weight:700;line-height:1;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 8px #0284c747}.dark .evidence-marker{color:#e0f2fe;background:#082f49;border-color:#38bdf8}#customShapeBar{z-index:9;background:#fffffff5;border:1px solid #e5e7eb;border-radius:.5rem;align-items:center;gap:.25rem;max-width:min(42rem,100% - 1.5rem);padding:.35rem;display:flex;position:absolute;bottom:.75rem;left:.75rem;box-shadow:0 4px 12px #0000001a}.dark #customShapeBar{background:#1f2937f5;border-color:#374151}#customShapeBar.hidden{display:none}#customShapeBarBody{scrollbar-width:thin;gap:.25rem;display:flex;overflow-x:auto}.custom-shape-btn{background:0 0;border:1px solid #0000;border-radius:.375rem;flex:none;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;display:flex}.custom-shape-btn:hover{background:#f3f4f6}.dark .custom-shape-btn:hover{background:#111827}.custom-shape-btn img{object-fit:contain;pointer-events:none;max-width:1.7rem;max-height:1.7rem}.ld-shape-editor .btn{color:#374151;background:#fff;border:1px solid #d1d5db;border-radius:.375rem;justify-content:center;align-items:center;height:2rem;padding:0 .75rem;font-size:.8125rem;font-weight:600;display:inline-flex}.ld-shape-editor .btn:hover{background:#f3f4f6}.ld-shape-editor .btn-primary{color:#fff;background:#2563eb;border-color:#2563eb}.ld-shape-editor .btn-primary:hover{background:#1d4ed8}.ld-shape-editor .btn-danger{color:#b91c1c;border-color:#fecaca}.ld-shape-editor .btn-danger:hover{background:#fef2f2}.ld-shape-editor .field{background:#fff;border:1px solid #d1d5db;border-radius:.375rem;height:2rem;padding:0 .5rem;font-size:.875rem}.ld-shape-editor .shape-item.active{color:#1d4ed8;background:#eff6ff}.ld-shape-editor #previewStage{aspect-ratio:1;background-color:#0000;background-image:linear-gradient(45deg,#f9fafb 25%,#0000 25%),linear-gradient(-45deg,#f9fafb 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#f9fafb 75%),linear-gradient(-45deg,#0000 75%,#f9fafb 75%);background-position:0 0,0 .625rem,.625rem -.625rem,-.625rem 0;background-repeat:repeat,repeat,repeat,repeat;background-size:1.25rem 1.25rem;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;border:1px solid #d1d5db;border-radius:.5rem;width:min(34rem,100%);position:relative;overflow:hidden}.ld-shape-editor #previewImage{object-fit:fill;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.ld-shape-editor .anchor-dot{cursor:grab;background:#f97316;border:2px solid #fff;border-radius:999px;width:.9rem;height:.9rem;position:absolute;transform:translate(-50%,-50%);box-shadow:0 1px 4px #00000059}.ld-shape-editor .anchor-dot:active{cursor:grabbing}.ld-shape-editor .anchor-dot span{color:#374151;white-space:nowrap;background:#ffffffe6;border-radius:3px;padding:1px 3px;font:10px/1 system-ui,sans-serif;position:absolute;top:calc(100% + .2rem);left:50%;transform:translate(-50%)}
1
+ :root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f7f9;--ink:#17202a;--muted:#667085;--line:#d9dee7;--line-strong:#b8c0cc;--panel:#fff;--panel-soft:#f8fafc;--accent:#276ef1;--accent-strong:#174ea6;--accent-soft:#e8f0ff;--green:#047857;--green-soft:#dcfce7;--red:#b42318;--red-soft:#fee4e2;--shadow:0 18px 60px #10182824;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}html,body{background:var(--bg);width:100%;height:100%;color:var(--ink);margin:0;overflow:hidden}button,input,select,textarea{font:inherit}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffeb;flex-shrink:0;justify-content:space-between;align-items:center;gap:24px;padding:0 24px;display:flex}.dark .topbar{color:#f3f4f6;background:#111827eb;border-bottom-color:#ffffff1a}.dark .brand-mark{background:#1f2937;border-color:#fff3}.dark .brand-lockup p{color:#9ca3af}.dark .ghost-button{color:#e5e7eb;background:0 0;border-color:#ffffff1f}.dark .ghost-button:hover{background:#ffffff0f}.brand-lockup,.status-row,.panel-title-row,.panel-actions,.panel-kicker{align-items:center;display:flex}.brand-lockup{gap:12px;min-width:0}.brand-mark{border:1px solid var(--line-strong);color:#fff;letter-spacing:0;background:#111827;border-radius:10px;place-items:center;width:38px;height:38px;font-size:12px;font-weight:800;display:grid}h1,p{margin:0}h1{letter-spacing:0;font-size:15px;font-weight:760}.brand-lockup p{color:var(--muted);margin-top:2px;font-size:12px}.status-row{gap:10px}.status-pill,.panel-kicker span{letter-spacing:0;border-radius:999px;font-size:12px;font-weight:700}.status-pill{border:1px solid var(--line);background:var(--panel-soft);color:#344054;padding:7px 10px}.status-pill.is-live{background:var(--green-soft);color:var(--green);border-color:#86efac}.status-pill.is-fallback{color:#9a3412;background:#fff7ed;border-color:#fed7aa}.workspace-shell{min-height:0;position:relative}.workspace-canvas{cursor:grab;touch-action:none;background:#f8fafc;width:100%;height:100%;transition:filter .18s;display:block}.workspace-canvas.is-panning{cursor:grabbing}.tool-button,.ghost-button,.icon-button,.primary-button,.secondary-button{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff}.tool-button{border-radius:16px;place-items:center;width:52px;height:52px;font-size:25px;font-weight:700;display:grid;box-shadow:0 10px 30px #1018281a}.tool-button.primary{color:#fff;background:#111827;border-color:#111827}.ghost-button{border-radius:9px;align-items:center;height:34px;padding:0 12px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.config-surface{color:#f1f5f9;--panel-ink:#f1f5f9;--panel-muted:#94a3b8;--panel-line:#ffffff1a;--panel-field-bg:#ffffff0d;--panel-field-bg-focus:#ffffff14;background:#111827;border:1px solid #ffffff14;border-radius:28px;flex-direction:column;width:min(780px,max(540px,50vw));max-width:calc(100vw - 48px);height:calc(100vh - 118px);padding:24px;display:flex;overflow-y:auto;box-shadow:0 24px 80px #0006}.config-surface[hidden]{display:none}.panel-kicker{flex-shrink:0;justify-content:space-between;margin-bottom:18px}.panel-kicker span{padding:6px 9px}#nodeTypeBadge{color:#93c5fd;background:#60a5fa26}#nodeHealthBadge{background:var(--green-soft);color:var(--green)}.panel-title-row{flex-shrink:0;justify-content:space-between;align-items:start;gap:12px;margin-bottom:18px}.panel-title-row>div{flex:auto;min-width:0}.eyebrow,.field span{color:var(--panel-muted,#475467);font-size:12px;font-weight:720;display:block}.title-input{width:100%;min-width:0;color:var(--panel-ink,#101828);letter-spacing:0;background:0 0;border:0;outline:0;margin-top:6px;font-size:24px;font-weight:780}.icon-button{border-radius:10px;place-items:center;width:36px;height:36px;font-size:20px;line-height:1;display:grid}.icon-button.danger{color:#fca5a5;background:#ef444433;border-color:#ef444466}.icon-button.close{color:#fde047;background:#eab30826;border-color:#eab30866}.form-grid{flex-shrink:0;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;display:grid}.field{min-width:0}.field.wide{grid-column:1/-1}.field input,.field select,.field textarea{border:1px solid var(--panel-line,var(--line));background:var(--panel-field-bg,#fff);width:100%;color:var(--panel-ink,var(--ink));border-radius:12px;outline:0;margin-top:7px}.field input,.field select{height:42px;padding:0 12px}.field textarea{resize:none;min-height:84px;padding:10px 12px;line-height:1.45}.checkbox-field{align-items:center;gap:10px;min-height:42px;display:flex}.checkbox-field input{accent-color:#2563eb;width:18px;height:18px;margin-top:0}.checkbox-field span{color:var(--panel-ink,var(--ink));font-size:13px;font-weight:760}.field input:focus,.field select:focus,.field textarea:focus,.title-input:focus{border-color:#60a5fa;box-shadow:0 0 0 4px #60a5fa26}.field input[readonly]{border-color:var(--panel-line,#d0d5dd);color:var(--panel-muted,#475467);background:#ffffff08;font-family:ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,monospace;font-size:12px}.field select:disabled,.icon-button:disabled,.primary-button:disabled,.secondary-button:disabled{cursor:not-allowed;opacity:.62}.contents{display:contents}.contents[hidden]{display:none}.model-field-row{flex-direction:column;display:flex}.model-select-wrap{align-items:center;gap:6px;margin-top:7px;display:flex}.model-select-wrap select{flex:1;margin-top:0}.model-select-wrap .icon-button{border:1px solid var(--line);width:36px;height:42px;color:var(--ink);cursor:pointer;background:#fff;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;display:flex}.model-select-wrap .icon-button:hover{background:#f0f4ff}@keyframes spin{to{transform:rotate(360deg)}}.model-select-wrap .icon-button.loading{pointer-events:none;opacity:.7;animation:.7s linear infinite spin;display:inline-block}.panel-actions{flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;margin-top:auto;padding-top:18px}.panel-actions-left,.panel-actions-right{align-items:center;gap:8px;display:flex}.test-feedback{color:#475467;min-height:18px;margin:10px 0 0;font-size:12px;font-weight:650;line-height:1.4}.agent-section{flex:none;grid-template-columns:minmax(0,1fr);gap:14px;margin-top:16px;display:grid}.agent-section[hidden]{display:none}#nodeSystemPrompt{resize:vertical;min-height:180px}#nodeUserInputDescription{resize:vertical;min-height:104px}.mcp-inventory{border-top:1px solid var(--panel-line,var(--line));margin-top:18px;padding-top:16px}.inventory-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.inventory-header span{color:var(--panel-ink,#344054);font-size:13px;font-weight:760}.inventory-header strong{color:#93c5fd;background:#60a5fa26;border-radius:999px;padding:5px 8px;font-size:11px}.inventory-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.inventory-grid article{border:1px solid var(--panel-line,var(--line));background:#ffffff0a;border-radius:14px;min-width:0;padding:12px}.inventory-grid h2{color:#e2e8f0;margin:0 0 8px;font-size:13px;font-weight:800}.inventory-grid ul{gap:5px;margin:0;padding:0;list-style:none;display:grid}.inventory-grid li{color:#94a3b8;text-overflow:ellipsis;white-space:nowrap;background:#ffffff0f;border-radius:8px;padding:6px 8px;font-family:ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,monospace;font-size:11px;overflow:hidden}.primary-button,.secondary-button,.danger-button{border-radius:11px;height:40px;padding:0 16px;font-size:13px;font-weight:760}.primary-button{border-color:var(--accent);background:var(--accent);color:#fff}.secondary-button{border-color:var(--panel-line,var(--line));background:var(--panel-field-bg,var(--panel-soft));color:var(--panel-ink,var(--ink))}.danger-button{color:#fff;cursor:pointer;background:#d92d20;border:1px solid #d92d20}.confirm-overlay{z-index:60;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f172a47;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.confirm-overlay[hidden]{display:none}.confirm-dialog{background:#fff;border:1px solid #fecdcae6;border-radius:20px;width:min(440px,100vw - 48px);padding:22px;animation:.16s ease-out both confirm-in;box-shadow:0 24px 80px #1018283d}.agent-run-dialog{background:#fff;border:1px solid #bfdbfee6;border-radius:20px;width:min(760px,100vw - 48px);max-height:min(82vh,760px);padding:22px;animation:.16s ease-out both confirm-in;overflow-y:auto;box-shadow:0 24px 80px #1018283d}.agent-run-input-field{margin-top:18px;display:block}.agent-run-result{color:#101828;white-space:pre-wrap;word-break:break-word;background:#f8fafc;border:1px solid #d0d5dd;border-radius:14px;max-height:300px;margin-top:16px;padding:14px;font-size:13px;line-height:1.55;overflow-y:auto}.agent-run-result[hidden]{display:none}.agent-run-result[data-state=loading]{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.agent-run-result[data-state=error]{color:#991b1b;background:#fef2f2;border-color:#fecaca}.confirm-kicker{color:var(--red);margin:0 0 6px;font-size:12px;font-weight:800}.confirm-dialog h2{color:#101828;margin:0;font-size:19px;font-weight:820}.confirm-message{color:#475467;margin:10px 0 0;font-size:14px;line-height:1.5}.confirm-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.workspace-toast{z-index:40;color:#fff;background:#111827;border:1px solid #10182814;border-radius:14px;align-items:center;gap:10px;max-width:min(420px,100vw - 48px);padding:13px 16px;font-size:14px;font-weight:760;animation:.18s ease-out both toast-in;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 18px 60px #10182838}.workspace-toast[hidden]{display:none}.toast-icon{color:#052e1b;background:#34d399;border-radius:999px;flex:none;place-items:center;width:20px;height:20px;font-size:13px;font-weight:900;display:grid}.workspace-toast[data-state=error] .toast-icon{color:#450a0a;background:#f87171}.workspace-toast[data-state=loading] .toast-icon{color:#fff;background:#6b7280;animation:.8s linear infinite spin}.fallback-panel-host{z-index:6;width:min(780px,max(540px,50vw - 24px));max-width:calc(100vw - 48px);position:absolute;top:24px;bottom:24px;right:24px}.fallback-panel-host:not([hidden]){animation:.22s ease-out both panel-in}.fallback-panel-host .config-surface{width:100%;height:100%}@media (width<=900px){.app-shell{grid-template-rows:88px minmax(0,1fr)}.topbar{flex-direction:column;justify-content:center;align-items:flex-start;gap:8px}.config-surface{width:min(420px,100vw - 32px);padding:18px}.fallback-panel-host{width:auto;inset:auto 16px 16px}.inventory-grid{grid-template-columns:1fr}}@keyframes panel-in{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:translate(0)}}@keyframes confirm-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.admin-scroll{height:100%;overflow-y:auto}.admin-form{display:contents}.save-bar{z-index:10;border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0}.save-bar-inner{justify-content:space-between;align-items:center;gap:16px;max-width:720px;margin:0 auto;padding:12px 24px;display:flex}.save-bar-title{color:var(--ink);margin:0;font-size:16px;font-weight:700}.save-bar-desc{color:var(--muted);margin:2px 0 0;font-size:12px}.save-bar-actions{flex-shrink:0;align-items:center;gap:16px;display:flex}.save-msg{font-size:13px}.save-msg--ok{color:var(--green)}.save-msg--error{color:var(--red)}.admin-sections{flex-direction:column;gap:24px;max-width:720px;margin:0 auto;padding:24px 24px 40px;display:flex}.config-section{border:1px solid var(--line);background:var(--panel);border-radius:12px;overflow:hidden}.config-section-header{border-bottom:1px solid var(--line);padding:16px 24px}.config-section-title{color:var(--ink);align-items:center;gap:8px;margin:0;font-size:14px;font-weight:600;display:flex}.config-section-desc{color:var(--muted);margin:4px 0 0 28px;font-size:12px}.config-section-body{flex-direction:column;gap:16px;padding:16px 24px;display:flex}.field-group{flex-direction:column;gap:4px;display:flex}.field-row{border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;gap:16px;margin-bottom:4px;padding-bottom:8px;display:grid}.info-item dt{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px}.info-item dd{color:var(--ink);word-break:break-all;margin:2px 0 0;font-family:monospace;font-size:12px}.field-label{color:var(--ink);font-size:13px;font-weight:500}.field-hint{color:var(--muted);margin:0;font-size:12px}.field-input{border:1px solid var(--line-strong);background:var(--panel-soft);width:100%;color:var(--ink);border-radius:8px;outline:none;padding:8px 12px;font-size:13px;transition:border-color .15s,box-shadow .15s}.field-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.field-input--mono{font-family:monospace;font-size:12px}.checkbox-label{cursor:pointer;color:var(--ink);align-items:center;gap:10px;font-size:13px;font-weight:500;display:flex}.checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);border-radius:4px;flex-shrink:0}.checkbox-hint{margin-left:26px}.btn-primary{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:8px 20px;font-size:13px;font-weight:600;transition:background .15s}.btn-primary:hover{background:var(--accent-strong)}.btn-sm{padding:6px 12px;font-size:12px}.link-btn{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;text-decoration:underline}.link-btn:disabled{opacity:.35;pointer-events:none}.pattern-preview{background:var(--panel-soft);border:1px solid var(--line);border-radius:8px;padding:12px}.pattern-preview-title{color:var(--accent);text-transform:uppercase;letter-spacing:.05em;margin:0 0 4px;font-size:11px;font-weight:700}.pattern-rows{flex-direction:column;gap:8px;margin-top:8px;display:flex}.pattern-row{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:10px}.pattern-filename{color:var(--muted);word-break:break-all;margin:0 0 6px;font-family:monospace;font-size:11px}.pattern-cols{grid-template-columns:repeat(3,1fr);gap:8px;font-size:12px;display:grid}.pattern-col-label{color:var(--muted);margin-bottom:2px;font-size:11px;display:block}.pattern-value--date{color:var(--green)}.pattern-value--none{color:var(--muted)}.pattern-value--cat{color:var(--accent)}.pattern-value--title{color:var(--ink)}.file-browser{border:1px solid var(--line);border-radius:8px;overflow:hidden}.file-browser-toolbar{background:var(--panel-soft);border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:6px 12px;display:flex}.file-browser-path{color:var(--muted);text-align:right;text-overflow:ellipsis;white-space:nowrap;flex:1;font-family:monospace;font-size:11px;overflow:hidden}.file-browser-list{max-height:208px;overflow-y:auto}.browser-msg{color:var(--muted);text-align:center;margin:0;padding:12px;font-size:12px}.browser-msg--error{color:var(--red)}.browser-row{text-align:left;cursor:pointer;border:none;border-bottom:1px solid var(--line);background:0 0;align-items:center;gap:8px;width:100%;padding:8px 12px;font-size:13px;display:flex}.browser-row:last-child{border-bottom:none}.browser-row:hover{background:var(--panel-soft)}.browser-row--dir{color:var(--ink)}.browser-row--file{cursor:default;justify-content:space-between}.browser-row-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.badge-added{color:var(--green);flex-shrink:0;font-size:11px}.extra-files-list{flex-direction:column;gap:4px;display:flex}.extra-file-row{background:var(--panel-soft);border-radius:6px;align-items:center;gap:8px;padding:8px 12px;display:flex}.extra-file-arrows{flex-direction:column;gap:0;display:flex}.extra-file-arrows button{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;line-height:1.2}.extra-file-arrows button:disabled{opacity:.25;pointer-events:none}.extra-file-path{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:1;font-family:monospace;font-size:11px;overflow:hidden}.remove-btn{color:var(--red);cursor:pointer;background:0 0;border:none;flex-shrink:0;font-size:12px}.palette-header{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.swatches{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.swatch-wrap{width:32px;height:32px;position:relative}.swatch{pointer-events:none;border:3px solid;border-radius:50%;width:32px;height:32px}.swatch-input{opacity:0;cursor:pointer;border:none;width:100%;height:100%;padding:0;position:absolute;inset:0}.edge-swatch-wrap{flex-direction:column;align-items:center;gap:3px;display:flex}.edge-swatch{border:2px solid #00000026;border-radius:50%;width:26px;height:26px}.remove-swatch-btn{color:var(--red);cursor:pointer;background:0 0;border:none;padding:0;font-size:10px;line-height:1}.add-color-row{align-items:center;gap:8px;margin-top:12px;display:flex}.color-input{cursor:pointer;border:1px solid var(--line-strong);background:0 0;border-radius:6px;width:32px;height:32px;padding:0}.license-card{border:1px solid var(--accent-soft);border-radius:16px;overflow:hidden}.license-banner{background:linear-gradient(90deg,#276ef1,#4f8ef7,#6366f1);align-items:center;gap:16px;padding:20px 24px;display:flex}.license-icon{font-size:28px}.license-title{color:#fff;margin:0;font-size:15px;font-weight:700}.license-subtitle{color:#fffc;margin:4px 0 0;font-size:12px}.license-body{background:var(--panel);padding:20px 24px}.license-body p{color:var(--ink);margin:0 0 16px;font-size:13px}.license-links{flex-wrap:wrap;gap:12px;display:flex}.license-btn{color:#fff;border-radius:8px;align-items:center;gap:8px;padding:8px 16px;font-size:13px;font-weight:600;text-decoration:none;transition:opacity .15s;display:inline-flex}.license-btn svg{flex-shrink:0;width:16px;height:16px}.license-btn:hover{opacity:.85}.license-btn--linkedin{background:#0a66c2}.license-btn--npm{background:#cb3837}:root[data-blueprint]{--bg:#0f172a;--ink:#f1f5f9;--muted:#94a3b8;--line:#ffffff1a;--accent:#3b82f6;--accent-soft:#3b82f626;font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html,body{background:var(--bg);width:100%;height:100%;color:var(--ink);margin:0}.app-shell{grid-template-rows:64px minmax(0,1fr);width:100vw;height:100vh;display:grid}[data-blueprint] .topbar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0f172aeb}.brand-lockup{align-items:center;gap:12px;min-width:0;display:flex}[data-blueprint] .brand-mark{color:#fff;background:#1e293b;border-color:#fff3}.brand-lockup h1{letter-spacing:0;margin:0;font-size:14px;font-weight:760}.brand-lockup p{color:var(--muted);margin:2px 0 0;font-size:11px}.topbar-right{align-items:center;gap:8px;display:flex}.breadcrumb{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:flex;overflow:hidden}.breadcrumb-item{cursor:pointer;color:var(--accent);white-space:nowrap;font-weight:600;font-size:inherit;background:0 0;border:none;padding:0;font-family:inherit;transition:opacity .15s}.breadcrumb-item:hover{opacity:.75}.breadcrumb-item.current{color:var(--ink);cursor:default;font-weight:700}.breadcrumb-sep{opacity:.4;font-size:11px}.ghost-button{border:1px solid var(--line);height:34px;color:var(--ink);cursor:pointer;background:0 0;border-radius:9px;align-items:center;padding:0 12px;font-size:13px;font-weight:700;text-decoration:none;transition:background .15s;display:inline-flex}[data-blueprint] .ghost-button:hover{background:#ffffff0f}.workspace-shell{position:relative;overflow:hidden}canvas{cursor:default;width:100%;height:100%}canvas.is-panning{cursor:grabbing}.rail{z-index:5;flex-direction:column;gap:10px;display:flex;position:absolute;top:16px;left:16px}[data-blueprint] .tool-button{background:#1e293b;box-shadow:0 8px 24px #0000004d}[data-blueprint] .tool-button:hover{background:#273549}[data-blueprint] .tool-button.active{color:#60a5fa;background:#3b82f633;border-color:#3b82f6}.file-explorer{border-left:1px solid var(--line);z-index:10;background:#0f172a;flex-direction:column;width:50%;animation:.2s ease-out both slide-in;display:flex;position:absolute;top:0;bottom:0;right:0}@keyframes slide-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.explorer-header{border-bottom:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.explorer-path{color:#93c5fd;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;overflow:hidden}.explorer-close{border:1px solid var(--line);width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;flex-shrink:0;place-items:center;font-size:18px;transition:background .15s;display:grid}.explorer-close:hover{color:var(--ink);background:#ffffff0f}.explorer-top{flex:1;min-height:0;overflow-y:auto}.explorer-divider{background:var(--line);flex-shrink:0;height:1px}.explorer-bottom{flex:1;min-height:0;overflow-y:auto}.explorer-list{padding:8px 0}.explorer-item{text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:8px 20px;font-size:13px;transition:background .1s;display:flex}.explorer-item:hover{background:#ffffff0a}.explorer-item.is-folder{color:#93c5fd;font-weight:600}.explorer-item.is-file{color:#94a3b8}.explorer-breadcrumb{flex:1;align-items:center;gap:4px;min-width:0;font-size:12px;display:flex;overflow:hidden}.explorer-breadcrumb-item{color:#60a5fa;cursor:pointer;white-space:nowrap;font-weight:600;font-size:inherit;background:0 0;border:none;padding:0;font-family:inherit}.explorer-breadcrumb-item:hover{text-decoration:underline}.explorer-breadcrumb-item.current{color:#f1f5f9;cursor:default}.explorer-breadcrumb-item.current:hover{text-decoration:none}.explorer-breadcrumb-sep{color:#475569;font-size:11px}.file-preview{height:100%;padding:16px}.file-preview-placeholder{color:#475569;margin:0;padding-top:8px;font-size:13px}.file-preview pre{white-space:pre-wrap;word-break:break-all;margin:0;font-size:12px;line-height:1.6}.file-preview .hljs{background:0 0;padding:0}.file-preview .hljs-ln{border-collapse:collapse;font-size:12px;line-height:1.6}.file-preview .hljs-ln td{padding:0}.file-preview .hljs-ln-numbers{-webkit-user-select:none;user-select:none;text-align:right;color:#3d4f6b;vertical-align:top;border-right:1px solid #1e3a5f;min-width:36px;padding-left:4px!important;padding-right:16px!important}.file-preview .hljs-ln-code{padding-left:16px!important}.file-preview img{object-fit:contain;border-radius:8px;max-width:100%;max-height:300px}.file-preview video{border-radius:8px;max-width:100%}.file-preview-binary,.file-preview-truncated{border-radius:6px;margin-top:8px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-block}.file-preview-binary{color:#fca5a5;background:#ef444426}.file-preview-truncated{color:#fde047;background:#eab30826}.file-preview-name{color:#94a3b8;margin:0 0 10px;font-size:12px;font-weight:700}.explorer-section-label{color:#475569;text-transform:uppercase;letter-spacing:.06em;padding:12px 20px 4px;font-size:11px;font-weight:700}.empty-state{color:var(--muted);pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:14px;display:flex;position:absolute;inset:0}.empty-state p{margin:0}.bpadr-overlay{z-index:50;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#94a3b84d;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.bpadr-modal{color:#1e293b;background:#f9fafb;border:1px solid #e2e8f0;border-radius:20px;flex-direction:column;width:min(1100px,96vw);max-height:92vh;display:flex;overflow:hidden;box-shadow:0 32px 80px #0000004d}.bpadr-header{border-bottom:1px solid #e2e8f0;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:20px 24px 16px;display:flex}.bpadr-title{color:#0f172a;margin:0;font-size:16px;font-weight:760}.bpadr-header-actions{align-items:center;gap:8px;display:flex}.bpadr-icon-btn{color:#64748b;cursor:pointer;background:0 0;border:1px solid #e2e8f0;border-radius:9px;place-items:center;width:32px;height:32px;font-size:16px;transition:background .15s;display:grid}.bpadr-icon-btn:hover{color:#0f172a;background:#f1f5f9}.bpadr-read{flex:1;padding:24px;overflow-y:auto}.bpadr-prose{width:100%;max-width:none!important}#bpadrRendered hr{opacity:1!important;border-color:#d1d5db!important}#bpadrRendered :not(pre)>code{color:#1f2937;background-color:#e5e7eb;border-radius:.25rem;padding:.1em .3em;font-size:.875em;font-weight:500}#bpadrRendered table{border-collapse:collapse;border:none}#bpadrRendered table th,#bpadrRendered table td{border:none;border-bottom:1px solid #e5e7eb;padding:.6rem 1rem}#bpadrRendered table thead th{border-bottom-color:#d1d5db}#bpadrRendered table thead,#bpadrRendered table tbody tr{border:none}.bpadr-form{flex-direction:column;flex:1;gap:14px;padding:20px 24px;display:flex;overflow-y:auto}.bpadr-field{flex-direction:column;gap:6px;display:flex}.bpadr-field label{color:#64748b;font-size:12px;font-weight:700}.bpadr-field-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.bpadr-field-grow{flex:1;min-height:0}.bpadr-field-grow .bpadr-textarea{flex:1;min-height:200px}.bpadr-input,.bpadr-textarea{color:#1e293b;resize:none;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;outline:none;padding:8px 12px;font-family:inherit;font-size:13px;transition:border-color .15s}.bpadr-input:focus,.bpadr-textarea:focus{background:#fff;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.bpadr-input[readonly]{color:#2563eb;cursor:default;background:#eff6ff;border-color:#bfdbfe}.bpadr-textarea{min-height:180px;line-height:1.6}.bpadr-footer{flex-shrink:0;justify-content:flex-end;gap:8px;padding-top:4px;display:flex}.bpadr-btn-ghost{color:#64748b;cursor:pointer;background:0 0;border:1px solid #e2e8f0;border-radius:9px;height:36px;padding:0 14px;font-size:13px;font-weight:700}.bpadr-btn-ghost:hover{color:#1e293b;background:#f1f5f9}.bpadr-btn-primary{color:#fff;cursor:pointer;background:#3b82f6;border:none;border-radius:9px;height:36px;padding:0 16px;font-size:13px;font-weight:700}.bpadr-btn-primary:hover{background:#2563eb}.bpadr-folder-confirm{flex-direction:column;gap:8px;padding:32px 24px;display:flex}.bpadr-folder-confirm p{color:#1e293b;margin:0;font-size:14px}.bpadr-folder-confirm strong{color:#2563eb}.bpadr-muted{color:#64748b!important;font-size:13px!important}.files-page.svelte-4q2lov{max-width:720px;margin:0 auto;padding:32px 24px}.files-msg.svelte-4q2lov{color:var(--muted);text-align:center;padding:48px 0;font-size:14px}.files-msg--error.svelte-4q2lov{color:var(--red)}.files-msg--empty.svelte-4q2lov{font-style:italic}.files-list.svelte-4q2lov{border:1px solid var(--line);background:var(--panel);border-radius:12px;margin:0;padding:0;list-style:none;overflow:hidden}.files-row.svelte-4q2lov{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:14px 20px;display:flex}.files-row.svelte-4q2lov:last-child{border-bottom:none}.files-icon.svelte-4q2lov{flex-shrink:0;font-size:18px}.files-info.svelte-4q2lov{flex:1;min-width:0}.files-name.svelte-4q2lov{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:14px;text-decoration:none;display:block;overflow:hidden}.files-name.svelte-4q2lov:hover{color:var(--accent);text-decoration:underline}.files-meta.svelte-4q2lov{color:var(--muted);margin-top:2px;font-size:12px}.files-row-error.svelte-4q2lov{color:var(--red);margin:4px 0 0;font-size:12px}.files-actions.svelte-4q2lov{flex-shrink:0;gap:8px;display:flex}.files-btn.svelte-4q2lov{border:1px solid var(--line-strong);background:var(--panel-soft);color:var(--ink);cursor:pointer;border-radius:8px;padding:5px 12px;font-family:inherit;font-size:12px;transition:background .15s}.files-btn.svelte-4q2lov:hover{background:var(--accent-soft);border-color:var(--accent)}.files-btn.svelte-4q2lov:disabled{opacity:.5;pointer-events:none}.files-btn--danger.svelte-4q2lov{border-color:var(--red-soft);color:var(--red)}.files-btn--danger.svelte-4q2lov:hover{background:var(--red-soft);border-color:var(--red)}.section-card.svelte-e5jhdq{border:1px solid var(--line);background:var(--panel);border-radius:12px;flex-direction:column;gap:12px;padding:16px;display:flex}.section-header.svelte-e5jhdq{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-title.svelte-e5jhdq{color:var(--ink);font-size:13px;font-weight:600}.header-actions.svelte-e5jhdq{align-items:center;gap:8px;display:flex}.count-label.svelte-e5jhdq{color:var(--muted);font-size:12px}.instruction-list.svelte-e5jhdq{flex-direction:column;gap:8px;display:flex}.instruction-row.svelte-e5jhdq{border:1px solid var(--line);border-radius:8px;justify-content:space-between;align-items:flex-start;gap:12px;padding:8px 12px;display:flex}.instruction-info.svelte-e5jhdq{min-width:0}.instruction-path.svelte-e5jhdq{word-break:break-all;color:var(--accent);font-family:monospace;font-size:11px;text-decoration:none}.instruction-path.svelte-e5jhdq:hover{text-decoration:underline}.instruction-meta.svelte-e5jhdq{color:var(--muted);margin-top:2px;font-size:11px}.instruction-actions.svelte-e5jhdq{flex-shrink:0;align-items:center;gap:12px;display:flex}.status-ok.svelte-e5jhdq{color:var(--green);font-size:12px;font-weight:600}.status-missing.svelte-e5jhdq{color:var(--red);font-size:12px;font-weight:600}.empty-msg.svelte-e5jhdq{color:var(--muted);margin:0;font-size:13px}.rules-layout.svelte-1r3tey2{grid-template-columns:minmax(0,1fr) 22rem;align-items:start;gap:16px;display:grid}@media (width<=900px){.rules-layout.svelte-1r3tey2{grid-template-columns:1fr}}.section-card.svelte-1r3tey2{border:1px solid var(--line);background:var(--panel);border-radius:12px;flex-direction:column;gap:12px;padding:16px;display:flex}.aside-card.svelte-1r3tey2{gap:10px}.section-header.svelte-1r3tey2{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-title.svelte-1r3tey2{color:var(--ink);font-size:13px;font-weight:600}.rules-folder.svelte-1r3tey2{color:var(--muted);font-family:monospace;font-size:11px}.rule-list.svelte-1r3tey2{flex-direction:column;gap:8px;display:flex}.rule-row.svelte-1r3tey2{border:1px solid var(--line);border-radius:8px;padding:10px 12px}.rule-top.svelte-1r3tey2{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:6px;display:flex}.rule-title-wrap.svelte-1r3tey2{min-width:0}.rule-title.svelte-1r3tey2{margin:0;font-size:13px;font-weight:600}.rule-link.svelte-1r3tey2{color:var(--accent);text-decoration:none}.rule-link.svelte-1r3tey2:hover{text-decoration:underline}.rule-path.svelte-1r3tey2{color:var(--muted);word-break:break-all;font-family:monospace;font-size:11px;text-decoration:none;display:block}.rule-path.svelte-1r3tey2:hover{color:var(--accent)}.severity-badge.svelte-1r3tey2{background:var(--panel-soft);border:1px solid var(--line);color:var(--ink);border-radius:4px;flex-shrink:0;padding:3px 8px;font-size:11px;font-weight:600}.rule-desc.svelte-1r3tey2{color:var(--muted);margin:0 0 6px;font-size:13px}.rule-tags.svelte-1r3tey2{flex-wrap:wrap;gap:4px;margin-bottom:4px;display:flex}.tag.svelte-1r3tey2{color:var(--accent);font-size:11px}.rule-applies.svelte-1r3tey2{color:var(--muted);word-break:break-all;font-family:monospace;font-size:11px}.empty-msg.svelte-1r3tey2{color:var(--muted);margin:0;font-size:13px}.section-card.svelte-1ui2b6s{border:1px solid var(--line);background:var(--panel);border-radius:12px;flex-direction:column;gap:14px;padding:16px;display:flex}.section-header.svelte-1ui2b6s{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-title.svelte-1ui2b6s{color:var(--ink);font-size:13px;font-weight:600}.section-desc.svelte-1ui2b6s{color:var(--muted);margin:0;font-size:12px}.mcp-info-grid.svelte-1ui2b6s{grid-template-columns:1fr 1fr;gap:8px;display:grid}.mcp-info-cell.svelte-1ui2b6s{border:1px solid var(--line);border-radius:8px;padding:8px 10px}.mcp-info-cell.wide.svelte-1ui2b6s{grid-column:1/-1}.mcp-info-label.svelte-1ui2b6s{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px}.mcp-info-value.svelte-1ui2b6s{color:var(--ink);margin-top:3px;font-size:12px;font-weight:600}.mcp-info-value.ok.svelte-1ui2b6s{color:var(--green)}.mcp-info-value.err.svelte-1ui2b6s{color:var(--red)}.mcp-info-value.mono.svelte-1ui2b6s{font-family:monospace;font-weight:400}.mcp-info-value.break.svelte-1ui2b6s{word-break:break-all}.subsection-header.svelte-1ui2b6s{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.subsection-title.svelte-1ui2b6s{color:var(--muted);font-size:12px;font-weight:600}.subsection-actions.svelte-1ui2b6s{align-items:center;gap:8px;display:flex}.count-label.svelte-1ui2b6s{color:var(--muted);font-size:11px}.mcp-items.svelte-1ui2b6s{flex-direction:column;gap:6px;display:flex}.mcp-detail.svelte-1ui2b6s{border:1px solid var(--line);background:var(--panel-soft);border-radius:8px;padding:8px 12px}.mcp-summary.svelte-1ui2b6s{cursor:pointer;color:var(--accent);-webkit-user-select:none;user-select:none;font-family:monospace;font-size:12px;font-weight:600;list-style:none}.mcp-summary.svelte-1ui2b6s::-webkit-details-marker{display:none}.mcp-desc.svelte-1ui2b6s{color:var(--muted);white-space:pre-wrap;margin:8px 0 0;font-size:12px;line-height:1.5}.mcp-schema-wrap.svelte-1ui2b6s{margin-top:10px}.mcp-schema-title.svelte-1ui2b6s{color:var(--muted);margin:0 0 4px;font-size:11px;font-weight:600}.mcp-schema-pre.svelte-1ui2b6s{background:var(--panel);border:1px solid var(--line);max-height:200px;color:var(--ink);white-space:pre;border-radius:6px;padding:8px;font-size:11px;overflow:auto}.mcp-args-list.svelte-1ui2b6s{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.mcp-arg-item.svelte-1ui2b6s{border:1px solid var(--line);border-radius:6px;padding:6px 8px}.mcp-arg-name-row.svelte-1ui2b6s{align-items:center;gap:8px;display:flex}.mcp-arg-name.svelte-1ui2b6s{color:var(--ink);font-family:monospace;font-size:12px;font-weight:600}.mcp-arg-req.svelte-1ui2b6s{text-transform:uppercase;color:var(--muted);letter-spacing:.05em;font-size:11px}.mcp-arg-desc.svelte-1ui2b6s{color:var(--muted);margin:4px 0 0;font-size:11px}.mcp-run-area.svelte-1ui2b6s{border-top:1px solid var(--line);flex-direction:column;gap:6px;margin-top:10px;padding-top:10px;display:flex}.mcp-run-label.svelte-1ui2b6s{color:var(--muted);font-size:11px;font-weight:600}.mcp-textarea.svelte-1ui2b6s{resize:vertical;font-family:monospace;font-size:11px}.mcp-run-footer.svelte-1ui2b6s{justify-content:space-between;align-items:center;gap:8px;display:flex}.mcp-error-text.svelte-1ui2b6s{color:var(--red);font-size:11px}.mcp-result.svelte-1ui2b6s{font-size:11px}.empty-msg.svelte-1ui2b6s{color:var(--muted);margin:0;font-size:12px}.mcp-running{color:var(--muted);font-style:italic}.mcp-saved-label{color:var(--muted);margin-bottom:4px;font-size:11px}.mcp-saved-link{background:var(--green-soft);color:var(--green);border-radius:6px;align-items:center;gap:4px;padding:4px 10px;font-family:monospace;font-size:11px;font-weight:600;text-decoration:none;display:inline-flex}.mcp-saved-link:hover{opacity:.8}.mcp-error-pre{white-space:pre-wrap;word-break:break-word;border:1px solid var(--red-soft);background:var(--red-soft);max-height:200px;color:var(--red);border-radius:6px;padding:8px;font-size:11px;line-height:1.5;overflow:auto}.context-scroll.svelte-rpj1e5{height:100%;overflow-y:auto}.context-inner.svelte-rpj1e5{flex-direction:column;gap:20px;max-width:1100px;margin:0 auto;padding:24px 24px 48px;display:flex}.page-intro.svelte-rpj1e5{flex-direction:column;gap:4px;display:flex}.page-title.svelte-rpj1e5{color:var(--ink);margin:0;font-size:18px;font-weight:700}.page-desc.svelte-rpj1e5{color:var(--muted);margin:0;font-size:13px}.status-text.svelte-rpj1e5{color:var(--muted);margin:0;font-size:12px;font-style:italic}.agents-page.svelte-lf8l46{max-width:960px;margin:0 auto;padding:32px 24px;position:relative}.agents-msg.svelte-lf8l46{color:var(--muted);text-align:center;padding:48px 0;font-size:14px;font-style:italic}.agents-msg--error.svelte-lf8l46{color:var(--red);font-style:normal}.agents-msg--empty.svelte-lf8l46{font-style:italic}.agents-grid.svelte-lf8l46{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.agent-card.svelte-lf8l46{text-align:left;border:1px solid var(--line);background:var(--panel);cursor:pointer;border-radius:12px;flex-direction:column;gap:4px;padding:16px;font-family:inherit;transition:border-color .15s,box-shadow .15s;display:flex}.agent-card.svelte-lf8l46:hover:not(:disabled){border-color:var(--accent);box-shadow:0 2px 12px var(--accent-soft)}.agent-card--disabled.svelte-lf8l46{opacity:.5;cursor:not-allowed}.agent-name.svelte-lf8l46{color:var(--ink);font-size:14px;font-weight:700}.agent-provider.svelte-lf8l46{color:var(--muted);margin-bottom:8px;font-size:12px}.agent-badge.svelte-lf8l46{border-radius:20px;align-self:flex-start;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.agent-badge--ready.svelte-lf8l46{background:var(--green-soft);color:var(--green)}.agent-badge--requires_input.svelte-lf8l46{background:var(--accent-soft);color:var(--accent)}.agent-badge--not_ready.svelte-lf8l46{background:var(--panel-soft);color:var(--muted)}.agent-input-dialog.svelte-lf8l46{border-color:var(--line-strong)}.agent-toast.svelte-lf8l46{border:1px solid var(--line);background:var(--panel);z-index:50;border-radius:14px;align-items:flex-start;gap:12px;max-width:min(420px,100vw - 48px);padding:14px 16px;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 8px 32px #10182824}.agent-toast-icon.svelte-lf8l46{border-radius:50%;flex-shrink:0;place-items:center;width:24px;height:24px;font-size:12px;font-weight:700;display:grid}.agent-toast--loading.svelte-lf8l46 .agent-toast-icon:where(.svelte-lf8l46){border:2px solid var(--accent);border-top-color:#0000;animation:.8s linear infinite svelte-lf8l46-spin}.agent-toast--success.svelte-lf8l46 .agent-toast-icon:where(.svelte-lf8l46){background:var(--green);color:#fff}.agent-toast--error.svelte-lf8l46 .agent-toast-icon:where(.svelte-lf8l46){background:var(--red);color:#fff}.agent-toast-body.svelte-lf8l46{flex:1;min-width:0}.agent-toast-title.svelte-lf8l46{color:var(--ink);margin:0;font-size:13px;font-weight:700}.agent-toast-message.svelte-lf8l46{color:var(--muted);word-break:break-word;margin:2px 0 0;font-size:12px}.agent-toast-link.svelte-lf8l46{color:var(--accent);margin-top:4px;font-size:12px;text-decoration:underline;display:inline-block}.agent-toast-close.svelte-lf8l46{color:var(--muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0;font-size:18px;line-height:1}@keyframes svelte-lf8l46-spin{to{transform:rotate(360deg)}}.ld-inline-snippet-target{cursor:context-menu}.ld-table-editor table.ld-table-edit-table{--tbl-accent:#d1d5db;--tbl-accent-soft:#e5e7eb;--tbl-accent-stripe:#f3f4f6;--tbl-accent-text:#111827;border-collapse:collapse;border:none}.dark .ld-table-editor table.ld-table-edit-table{--tbl-accent:#4b5563;--tbl-accent-soft:#374151;--tbl-accent-stripe:#1f2937;--tbl-accent-text:#f3f4f6}.ld-table-editor table.ld-table-edit-table.table-color-info{--tbl-accent:#3b82f6;--tbl-accent-soft:#dbeafe;--tbl-accent-stripe:#eff6ff;--tbl-accent-text:#1e3a8a}.ld-table-editor table.ld-table-edit-table.table-color-success{--tbl-accent:#22c55e;--tbl-accent-soft:#dcfce7;--tbl-accent-stripe:#f0fdf4;--tbl-accent-text:#14532d}.ld-table-editor table.ld-table-edit-table.table-color-warning{--tbl-accent:#f59e0b;--tbl-accent-soft:#fef3c7;--tbl-accent-stripe:#fffbeb;--tbl-accent-text:#78350f}.ld-table-editor table.ld-table-edit-table.table-color-danger{--tbl-accent:#ef4444;--tbl-accent-soft:#fee2e2;--tbl-accent-stripe:#fef2f2;--tbl-accent-text:#7f1d1d}.ld-table-editor table.ld-table-edit-table.table-color-note{--tbl-accent:#8b5cf6;--tbl-accent-soft:#e9d5ff;--tbl-accent-stripe:#f5f3ff;--tbl-accent-text:#4c1d95}.dark .ld-table-editor table.ld-table-edit-table.table-color-info{--tbl-accent:#60a5fa;--tbl-accent-soft:#1e3a8a8c;--tbl-accent-stripe:#1e3a8a59;--tbl-accent-text:#bfdbfe}.dark .ld-table-editor table.ld-table-edit-table.table-color-success{--tbl-accent:#4ade80;--tbl-accent-soft:#14532d8c;--tbl-accent-stripe:#14532d59;--tbl-accent-text:#bbf7d0}.dark .ld-table-editor table.ld-table-edit-table.table-color-warning{--tbl-accent:#fbbf24;--tbl-accent-soft:#78350f8c;--tbl-accent-stripe:#78350f59;--tbl-accent-text:#fed7aa}.dark .ld-table-editor table.ld-table-edit-table.table-color-danger{--tbl-accent:#f87171;--tbl-accent-soft:#7f1d1d8c;--tbl-accent-stripe:#7f1d1d59;--tbl-accent-text:#fecaca}.dark .ld-table-editor table.ld-table-edit-table.table-color-note{--tbl-accent:#a78bfa;--tbl-accent-soft:#4c1d958c;--tbl-accent-stripe:#4c1d9559;--tbl-accent-text:#ddd6fe}.ld-table-editor table.ld-table-edit-table td{border:none;border-bottom:1px solid var(--tbl-accent-soft);background:#fff;padding:0}.dark .ld-table-editor table.ld-table-edit-table td{background:#030712}.ld-table-editor table.ld-table-edit-table tr:first-child td{border-bottom-color:var(--tbl-accent);color:var(--tbl-accent-text)}.ld-table-editor table.ld-table-edit-table[class*=table-color-] tr:first-child td{background:var(--tbl-accent-soft)}.ld-table-editor table.ld-table-edit-table .ld-table-edit-input{color:inherit;padding:.75rem;font-size:.875rem}.ld-table-editor table.ld-table-edit-table.table-style-compact .ld-table-edit-input{padding:.25rem .5rem;font-size:.8rem;line-height:1.35}.ld-table-editor table.ld-table-edit-table.table-style-striped tr:not(:first-child):nth-child(odd) td{background:var(--tbl-accent-stripe)}.ld-table-editor table.ld-table-edit-table.table-border-bordered,.ld-table-editor table.ld-table-edit-table.table-border-bordered td{border:1px solid var(--tbl-accent)}.category-docs{transition:max-height .2s,opacity .2s}.category-docs.collapsed{opacity:0;max-height:0;overflow:hidden}.category-docs.expanded{opacity:1;max-height:9999px}.category-docs.no-transition{transition:none!important}.prose pre{position:relative}.ld-code-copy{z-index:2;color:#d1d5db;cursor:pointer;opacity:0;background:#ffffff14;border:1px solid #ffffff26;border-radius:.375rem;justify-content:center;align-items:center;width:36px;height:36px;font-size:.8rem;line-height:1;transition:opacity .15s,background .15s;display:inline-flex;position:absolute;top:.4rem;right:.5rem}.prose pre:hover .ld-code-copy,.ld-code-copy:focus-visible,.ld-code-copy.ld-copied{opacity:1}.ld-code-copy:hover{background:#fff3}.ld-code-copy.ld-copied{color:#86efac;background:#22c55e40;border-color:#22c55e66}table.table-color-info{--tbl-accent:#3b82f6;--tbl-accent-soft:#dbeafe;--tbl-accent-stripe:#eff6ff;--tbl-accent-text:#1e3a8a}table.table-color-success{--tbl-accent:#22c55e;--tbl-accent-soft:#dcfce7;--tbl-accent-stripe:#f0fdf4;--tbl-accent-text:#14532d}table.table-color-warning{--tbl-accent:#f59e0b;--tbl-accent-soft:#fef3c7;--tbl-accent-stripe:#fffbeb;--tbl-accent-text:#78350f}table.table-color-danger{--tbl-accent:#ef4444;--tbl-accent-soft:#fee2e2;--tbl-accent-stripe:#fef2f2;--tbl-accent-text:#7f1d1d}table.table-color-note{--tbl-accent:#8b5cf6;--tbl-accent-soft:#e9d5ff;--tbl-accent-stripe:#f5f3ff;--tbl-accent-text:#4c1d95}.dark table.table-color-info{--tbl-accent:#60a5fa;--tbl-accent-soft:#1e3a8a8c;--tbl-accent-stripe:#1e3a8a59;--tbl-accent-text:#bfdbfe}.dark table.table-color-success{--tbl-accent:#4ade80;--tbl-accent-soft:#14532d8c;--tbl-accent-stripe:#14532d59;--tbl-accent-text:#bbf7d0}.dark table.table-color-warning{--tbl-accent:#fbbf24;--tbl-accent-soft:#78350f8c;--tbl-accent-stripe:#78350f59;--tbl-accent-text:#fed7aa}.dark table.table-color-danger{--tbl-accent:#f87171;--tbl-accent-soft:#7f1d1d8c;--tbl-accent-stripe:#7f1d1d59;--tbl-accent-text:#fecaca}.dark table.table-color-note{--tbl-accent:#a78bfa;--tbl-accent-soft:#4c1d958c;--tbl-accent-stripe:#4c1d9559;--tbl-accent-text:#ddd6fe}.prose table[class*=table-color-] thead th{background-color:var(--tbl-accent-soft);color:var(--tbl-accent-text)}.prose table{border-collapse:collapse;border:none}.prose table th,.prose table td{border:none;border-bottom:1px solid #e5e7eb;padding:.6rem 1rem}.prose table thead th{border-bottom-color:#d1d5db}.dark .prose table th,.dark .prose table td{border-bottom-color:#374151}.prose table[class*=table-color-] th,.prose table[class*=table-color-] td{border-bottom-color:var(--tbl-accent-soft)}.prose table[class*=table-color-] thead th{border-bottom-color:var(--tbl-accent)}.prose table thead,.prose table tbody tr{border:none}.prose table.table-style-compact{font-size:.85em;line-height:1.35}.prose table.table-style-compact th,.prose table.table-style-compact td{padding:.2rem .5rem}.prose table.table-style-striped{border-collapse:collapse}.prose table.table-style-striped tbody tr:nth-child(odd){background-color:var(--tbl-accent-stripe,#f3f4f6)}.dark .prose table.table-style-striped tbody tr:nth-child(odd){background-color:var(--tbl-accent-stripe,#374151)}.prose table.table-border-bordered{border-collapse:collapse}.prose table.table-border-bordered,.prose table.table-border-bordered th,.prose table.table-border-bordered td{border:1px solid var(--tbl-accent,#d1d5db)}.dark .prose table.table-border-bordered,.dark .prose table.table-border-bordered th,.dark .prose table.table-border-bordered td{border-color:var(--tbl-accent,#4b5563)}.prose table.table-border-borderless th,.prose table.table-border-borderless td{border-top:none!important;border-left:none!important;border-right:none!important}pre.ld-collapsible{max-height:var(--ld-code-max-h,400px);position:relative;overflow:hidden}pre.ld-collapsible.ld-expanded{max-height:none;overflow:auto}pre.ld-collapsible:not(.ld-expanded):after{content:"";pointer-events:none;background:linear-gradient(#282c3400 0%,#282c34d9 100%);height:64px;position:absolute;bottom:0;left:0;right:0}.ld-code-toggle{z-index:1;color:#e5e7eb;cursor:pointer;background:#ffffff1f;border:1px solid #ffffff2e;border-radius:.375rem;padding:.15rem .6rem;font-size:.75rem;font-weight:500;transition:background .15s;position:absolute;bottom:.4rem;right:.5rem}.ld-code-toggle:hover{background:#ffffff38}.color-swatch-btn.selected-swatch,.color-text-swatch-btn.selected-text-swatch{outline-offset:2px;outline:2px solid;box-shadow:0 0 0 3px #00000026}.ld-toc-aside{border-left:1px solid #e5e7eb}.dark .ld-toc-aside{border-left-color:#374151}.doc-item.active{color:#3b82f6;background-color:#3b82f61f;font-weight:600}.dark .doc-item.active{color:#60a5fa;background-color:#60a5fa26}.dark .prose{color:#d1d5db}.dark .prose h1,.dark .prose h2,.dark .prose h3,.dark .prose h4,.dark .prose h5,.dark .prose h6{color:#f9fafb}.dark .prose a{color:#60a5fa}.dark .prose strong{color:#f3f4f6}.prose code:not(pre code){color:#111827;background:#e5e7eb;border-radius:.25em;padding:.1em .35em;font-size:.875em;font-weight:400}.dark .prose code:not(pre code){color:#f87171;background:#4b5563;border-radius:.25em;padding:.1em .35em;font-size:.875em;font-weight:400}.dark .prose blockquote{color:#9ca3af;border-color:#4b5563}.prose blockquote p:first-of-type:before,.prose blockquote p:last-of-type:after{content:none}.prose blockquote.ld-callout{--callout-accent:#9ca3af;--callout-bg:#f9fafb;--callout-title-color:#374151;--callout-icon-color:#6b7280;border:none;border-left:4px solid var(--callout-accent);background:var(--callout-bg);color:inherit;border-radius:0 .5rem .5rem 0;margin-left:0;margin-right:0;padding:1rem 1.25rem;font-style:normal}.prose blockquote.ld-callout p{color:inherit;margin-top:.4em;margin-bottom:.4em}.prose blockquote.ld-callout p:first-of-type{margin-top:0}.prose blockquote.ld-callout p:last-of-type{margin-bottom:0}.ld-callout-header{color:var(--callout-title-color);align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:1.05em;font-weight:700;line-height:1.3;display:flex}.ld-callout-icon{color:var(--callout-icon-color);flex-shrink:0;align-items:center;margin-right:.15rem;display:inline-flex;transform:scale(1.35)}.ld-callout-icon-inline{vertical-align:middle;margin-top:-.1em;margin-right:.4rem;transform:scale(1.2)}.prose blockquote.ld-callout-info,.prose blockquote.ld-callout-note{--callout-accent:#3b82f6;--callout-bg:#eff6ff;--callout-title-color:#1e3a8a;--callout-icon-color:#3b82f6}.prose blockquote.ld-callout-success,.prose blockquote.ld-callout-tip{--callout-accent:#22c55e;--callout-bg:#f0fdf4;--callout-title-color:#14532d;--callout-icon-color:#22c55e}.prose blockquote.ld-callout-warning,.prose blockquote.ld-callout-caution{--callout-accent:#f59e0b;--callout-bg:#fffbeb;--callout-title-color:#78350f;--callout-icon-color:#f59e0b}.prose blockquote.ld-callout-error,.prose blockquote.ld-callout-danger{--callout-accent:#ef4444;--callout-bg:#fef2f2;--callout-title-color:#7f1d1d;--callout-icon-color:#ef4444}.dark .prose blockquote.ld-callout{--callout-bg:#3741514d;--callout-title-color:#e5e7eb;--callout-icon-color:#9ca3af}.dark .prose blockquote.ld-callout-info,.dark .prose blockquote.ld-callout-note{--callout-accent:#60a5fa;--callout-bg:#1e3a8a33;--callout-title-color:#bfdbfe;--callout-icon-color:#60a5fa}.dark .prose blockquote.ld-callout-success,.dark .prose blockquote.ld-callout-tip{--callout-accent:#4ade80;--callout-bg:#14532d33;--callout-title-color:#bbf7d0;--callout-icon-color:#4ade80}.dark .prose blockquote.ld-callout-warning,.dark .prose blockquote.ld-callout-caution{--callout-accent:#fbbf24;--callout-bg:#78350f33;--callout-title-color:#fed7aa;--callout-icon-color:#fbbf24}.dark .prose blockquote.ld-callout-error,.dark .prose blockquote.ld-callout-danger{--callout-accent:#f87171;--callout-bg:#7f1d1d33;--callout-title-color:#fecaca;--callout-icon-color:#f87171}.prose img{margin-top:0;margin-bottom:0}.prose p>img:only-child,.prose p>a:only-child>img{margin-top:1em;margin-bottom:1em}.prose hr{border-color:#d1d5db;margin-top:2em;margin-bottom:2em}mark.ld-local-mark{color:inherit;background:#bae6fd;border-radius:2px;padding:0 1px}mark.ld-local-mark.ld-local-active{color:#fff;background:#0284c7}.dark mark.ld-local-mark{color:#e0f2fe;background:#075985}.dark mark.ld-local-mark.ld-local-active{color:#082f49;background:#0ea5e9}.ld-local-item-active{background:#0ea5e91f}.prose a.ld-file-attachment,a.ld-file-attachment{color:#5b21b6;background:#ede9fe;border:1px solid #ddd6fe;border-radius:.375rem;align-items:center;gap:.35em;padding:.1em .55em;font-weight:500;text-decoration:none;transition:background-color .15s,border-color .15s;display:inline-flex}.prose a.ld-file-attachment:hover,a.ld-file-attachment:hover{background:#ddd6fe;border-color:#c4b5fd}.dark .prose a.ld-file-attachment,.dark a.ld-file-attachment{color:#c4b5fd;background:#8b5cf62e;border-color:#8b5cf64d}.dark .prose a.ld-file-attachment:hover,.dark a.ld-file-attachment:hover{background:#8b5cf647;border-color:#8b5cf673}a.ld-file-attachment .ld-file-icon{opacity:.85;font-size:.85em}.dark .prose hr{border-color:#374151}.dark .prose table th{color:#f9fafb;background:#1f2937}.dark .prose table td{border-color:#374151}.dark .prose table tr:nth-child(2n){background:#111827}@media print{#sidebar,#header{display:none!important}#content-area{margin:0!important}.no-print{display:none!important}.prose{max-width:100%!important}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.dark ::-webkit-scrollbar-thumb{background:#4b5563}mark{color:inherit;background:#fef08a;border-radius:2px;padding:0 2px}mark.match-active{color:#fff;background:#f97316}.dark mark{color:#fef9c3;background:#713f12}.dark mark.match-active{color:#fff;background:#ea580c}html:not(.dark) body.ld-code-light #home-content-area{background:#fff}html:not(.dark) body.ld-code-light .ld-code-copy{color:#6b7280;background:#0000000a;border:1px solid #0000001a}html:not(.dark) body.ld-code-light .prose pre:hover .ld-code-copy,html:not(.dark) body.ld-code-light .ld-code-copy:focus-visible,html:not(.dark) body.ld-code-light .ld-code-copy.ld-copied{opacity:1}html:not(.dark) body.ld-code-light .ld-code-copy:hover{color:#111827;background:#00000014;border-color:#0000002e}html:not(.dark) body.ld-code-light .ld-code-copy.ld-copied{color:#15803d;background:#22c55e1f;border-color:#22c55e59}html:not(.dark) body.ld-code-light pre.ld-collapsible:not(.ld-expanded):after{background:linear-gradient(#f6f8fa00 0%,#f6f8faeb 100%)}html:not(.dark) body.ld-code-light .ld-code-toggle{color:#374151;background:#0000000d;border:1px solid #0000001f}html:not(.dark) body.ld-code-light .ld-code-toggle:hover{background:#0000001a}.ld-compare{border:1px solid #e5e7eb;border-radius:.5rem;grid-template-columns:1fr 1fr;margin:1.5rem 0;font-size:.92em;display:grid;overflow:hidden}.dark .ld-compare{border-color:#374151}.ld-compare-source,.ld-compare-render{padding:1rem 1.25rem;position:relative}.ld-compare-source:before,.ld-compare-render:before{text-transform:uppercase;letter-spacing:.08em;margin-bottom:.6rem;font-size:.68rem;font-weight:700;display:block}.ld-compare-source:before{content:"Syntaxe";color:#6b7280}.ld-compare-render:before{content:"Rendu";color:#6b7280}.ld-compare-source{background-color:#f9fafb;border-right:1px solid #e5e7eb}.dark .ld-compare-source{background-color:#111827;border-right-color:#374151}.ld-compare-render{background-color:#fff}.dark .ld-compare-render{background-color:#111827}.ld-compare-render>:first-child{margin-top:0}.ld-compare-render>:last-child{margin-bottom:0}.ld-compare-source>pre{border-radius:.25rem;margin:0;font-size:.85em;background-color:#fff!important}.dark .ld-compare-source>pre{background-color:#111827!important}@media (width<=640px){.ld-compare{grid-template-columns:1fr}.ld-compare-source{border-bottom:1px solid #e5e7eb;border-right:none}.dark .ld-compare-source{border-bottom-color:#374151}}#vis-canvas>div{border:none!important}.tool-btn{cursor:pointer;color:#4b5563;background:0 0;border:none;border-radius:.5rem;flex-shrink:0;justify-content:center;align-items:center;width:2rem;height:2rem;font-size:.875rem;transition:background-color .15s,color .15s;display:flex}.dark .tool-btn{color:#9ca3af}.tool-btn:hover{background:#f3f4f6}.dark .tool-btn:hover{background:#1f2937}.tool-active{color:#ea580c!important;background:#fff7ed!important}.dark .tool-active{color:#fb923c!important;background:#7c2d124d!important}#vis-canvas.cursor-crosshair canvas{cursor:crosshair!important}.float-panel{z-index:10;background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;align-items:center;gap:.25rem;padding:.375rem .5rem;display:flex;position:absolute;top:.75rem;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0000001a}.dark .float-panel{background:#1f2937;border-color:#374151}.float-panel.hidden{display:none!important}.panel-sep{background:#e5e7eb;flex-shrink:0;width:1px;height:1rem;margin:0 .125rem}.dark .panel-sep{background:#374151}#customShapeLabelPlacementControls{display:contents}#customShapeLabelPlacementControls.hidden{display:none}.edge-btn-active{color:#ea580c!important;background:#fff7ed!important}.dark .edge-btn-active{color:#fb923c!important;background:#7c2d124d!important}#labelInput{z-index:20;text-align:center;color:#1f2937;resize:none;background:#fffffff2;border:2px solid #3b82f6;border-radius:.5rem;outline:none;min-width:80px;min-height:28px;padding:4px 8px;font-family:system-ui,-apple-system,sans-serif;font-size:13px;font-weight:500;line-height:1.4;position:absolute;overflow:hidden;box-shadow:0 4px 16px #00000026}.dark #labelInput{color:#f3f4f6;background:#111827f2}#labelInput.hidden{display:none}#debugLayer{pointer-events:none;z-index:12;position:absolute;inset:0;overflow:hidden}.debug-box{pointer-events:auto;white-space:pre;-webkit-user-select:text;user-select:text;cursor:text;color:#c2410c;background:#ffffffe6;border:1px solid #f97316;border-radius:3px;padding:3px 6px;font:10px/1.4 monospace;position:absolute}.dark .debug-box{color:#fbbf24;background:#000000c7}#selectionOverlay{pointer-events:none;z-index:15;box-sizing:border-box;border:2px dashed #f97316;border-radius:3px;display:none;position:absolute}.resize-handle{pointer-events:all;z-index:1;background:#fff;border:2px solid #f97316;border-radius:2px;width:10px;height:10px;position:absolute}.dark .resize-handle{background:#374151}#rh-rotate{pointer-events:all;z-index:1;cursor:grab;color:#f97316;background:#fff;border:2px solid #f97316;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:10px;display:flex;position:absolute}#rh-rotate:active{cursor:grabbing}.dark #rh-rotate{background:#374151}#rh-label-rotate{pointer-events:all;z-index:1;cursor:grab;color:#6366f1;background:#fff;border:2px solid #6366f1;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:10px;display:flex;position:absolute}#rh-label-rotate:active{cursor:grabbing}.dark #rh-label-rotate{background:#374151}#toastContainer{z-index:1000;pointer-events:none;flex-direction:column-reverse;gap:.5rem;display:flex;position:fixed;bottom:1.5rem;right:1.5rem}.ld-toast{pointer-events:all;cursor:pointer;opacity:0;color:#fafaf9;background:#1c1917;border:1px solid #292524;border-radius:.5rem;padding:.6rem 1rem;font-size:.8rem;font-weight:500;transition:opacity .2s,transform .2s;transform:translateY(.5rem);box-shadow:0 4px 16px #0000002e}.dark .ld-toast{color:#1c1917;background:#fafaf9;border-color:#e7e5e4}.ld-toast--error{color:#fef2f2;background:#7f1d1d;border-color:#991b1b}.ld-toast--visible{opacity:1;transform:translateY(0)}#evidenceLayer{pointer-events:none;z-index:18;position:absolute;inset:0;overflow:hidden}#evidenceLayer.hidden{display:none}.evidence-marker{color:#0369a1;pointer-events:auto;background:#e0f2fe;border:1px solid #0284c7;border-radius:999px;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;font-size:.7rem;font-weight:700;line-height:1;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 8px #0284c747}.dark .evidence-marker{color:#e0f2fe;background:#082f49;border-color:#38bdf8}#customShapeBar{z-index:9;background:#fffffff5;border:1px solid #e5e7eb;border-radius:.5rem;align-items:center;gap:.25rem;max-width:min(42rem,100% - 1.5rem);padding:.35rem;display:flex;position:absolute;bottom:.75rem;left:.75rem;box-shadow:0 4px 12px #0000001a}.dark #customShapeBar{background:#1f2937f5;border-color:#374151}#customShapeBar.hidden{display:none}#customShapeBarBody{scrollbar-width:thin;gap:.25rem;display:flex;overflow-x:auto}.custom-shape-btn{background:0 0;border:1px solid #0000;border-radius:.375rem;flex:none;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;display:flex}.custom-shape-btn:hover{background:#f3f4f6}.dark .custom-shape-btn:hover{background:#111827}.custom-shape-btn img{object-fit:contain;pointer-events:none;max-width:1.7rem;max-height:1.7rem}.ld-shape-editor .btn{color:#374151;background:#fff;border:1px solid #d1d5db;border-radius:.375rem;justify-content:center;align-items:center;height:2rem;padding:0 .75rem;font-size:.8125rem;font-weight:600;display:inline-flex}.ld-shape-editor .btn:hover{background:#f3f4f6}.ld-shape-editor .btn-primary{color:#fff;background:#2563eb;border-color:#2563eb}.ld-shape-editor .btn-primary:hover{background:#1d4ed8}.ld-shape-editor .btn-danger{color:#b91c1c;border-color:#fecaca}.ld-shape-editor .btn-danger:hover{background:#fef2f2}.ld-shape-editor .field{background:#fff;border:1px solid #d1d5db;border-radius:.375rem;height:2rem;padding:0 .5rem;font-size:.875rem}.ld-shape-editor .shape-item.active{color:#1d4ed8;background:#eff6ff}.ld-shape-editor #previewStage{aspect-ratio:1;background-color:#0000;background-image:linear-gradient(45deg,#f9fafb 25%,#0000 25%),linear-gradient(-45deg,#f9fafb 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#f9fafb 75%),linear-gradient(-45deg,#0000 75%,#f9fafb 75%);background-position:0 0,0 .625rem,.625rem -.625rem,-.625rem 0;background-repeat:repeat,repeat,repeat,repeat;background-size:1.25rem 1.25rem;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;border:1px solid #d1d5db;border-radius:.5rem;width:min(34rem,100%);position:relative;overflow:hidden}.ld-shape-editor #previewImage{object-fit:fill;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.ld-shape-editor .anchor-dot{cursor:grab;background:#f97316;border:2px solid #fff;border-radius:999px;width:.9rem;height:.9rem;position:absolute;transform:translate(-50%,-50%);box-shadow:0 1px 4px #00000059}.ld-shape-editor .anchor-dot:active{cursor:grabbing}.ld-shape-editor .anchor-dot span{color:#374151;white-space:nowrap;background:#ffffffe6;border-radius:3px;padding:1px 3px;font:10px/1 system-ui,sans-serif;position:absolute;top:calc(100% + .2rem);left:50%;transform:translate(-50%)}
@@ -139,7 +139,7 @@ Texte`};case`link`:return{text:we(`snip-link-text`),textFallback:Y(`snippet.link
139
139
  </html>`,f=window.open(``,`_blank`);if(!f){alert(Y(`error.pdf_popup`));return}f.document.write(d),f.document.close(),t.onclose()}catch(e){alert(Y(`error.pdf_export`)+(e instanceof Error?e.message:String(e)))}finally{I(d,!1)}}let y=`px-4 py-2 text-sm border-b-2 border-blue-500 text-blue-600 dark:text-blue-400 font-semibold transition-colors`,b=`px-4 py-2 text-sm text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 transition-colors`;var x=Ur(),S=z(x),C=e=>{var r=Ph(),f=R(r),p=R(f),h=B(R(p),2),x=R(h,!0);M(h),M(p);var S=B(p,2),C=R(S),w=R(C,!0);M(C);var T=B(C,2),E=R(T,!0);M(T);var D=B(T,2),ee=R(D,!0);M(D),M(S);var te=B(S,2),ne=e=>{var t=jh(),n=R(t),r=R(n),c=e=>{var t=Oh(),n=R(t,!0);M(t),V(e=>K(n,e),[()=>Y(`common.loading`)]),G(e,t)},l=e=>{var t=kh(),n=R(t);M(t),V(e=>K(n,`${e??``}failed to load folders`),[()=>Y(`common.error_prefix`)]),G(e,t)},u=e=>{var t=Ur();$r(z(t),16,()=>H(o),e=>e,(e,t)=>{var n=Ah(),r=R(n);Ei(r);var i,a=B(r,2),o=R(a,!0);M(a),M(n),V(()=>{i!==(i=t)&&(r.value=(r.__value=t)??``),K(o,t)}),Ni(r,()=>H(s)[t],e=>H(s)[t]=e),G(e,n)}),G(e,t)};q(r,e=>{H(i)?e(c):H(a)?e(l,1):e(u,-1)}),M(n),M(t),G(e,t)};q(te,e=>{H(n)===`html`&&e(ne)});var O=B(te,2),re=e=>{var n=Mh(),r=R(n),i=R(r,!0);M(r);var a=B(r,2),o=R(a),s=R(o,!0);M(o);var l=B(o,2),u=R(l,!0);M(l),M(a),M(n),V((e,t,n)=>{K(i,e),K(s,t),l.disabled=H(c),K(u,n)},[()=>Y(`modal.export.markdown_hint`),()=>Y(`common.cancel`),()=>H(c)?`⏳`:Y(`modal.export.markdown_btn`)]),U(`click`,o,function(...e){t.onclose?.apply(this,e)}),U(`click`,l,g),G(e,n)};q(O,e=>{H(n)===`markdown`&&e(re)});var ie=B(O,2),ae=e=>{var n=Nh(),r=R(n),i=R(r,!0);M(r);var a=B(r,2),o=R(a),s=R(o,!0);M(o);var c=B(o,2),d=R(c,!0);M(c);var f=B(c,2),p=R(f,!0);M(f),M(a),M(n),V((e,t,n,r)=>{K(i,e),K(s,t),c.disabled=H(l),K(d,n),f.disabled=H(u),K(p,r)},[()=>Y(`modal.export_html.hint`),()=>Y(`common.cancel`),()=>H(l)?`⏳`:Y(`modal.export_html.notion_btn`),()=>H(u)?`⏳`:Y(`modal.export_html.confluence_btn`)]),U(`click`,o,function(...e){t.onclose?.apply(this,e)}),U(`click`,c,()=>_(`notion`)),U(`click`,f,()=>_(`confluence`)),G(e,n)};q(ie,e=>{H(n)===`html`&&e(ae)});var oe=B(ie,2),se=e=>{var n=Mh(),r=R(n),i=R(r,!0);M(r);var a=B(r,2),o=R(a),s=R(o,!0);M(o);var c=B(o,2),l=R(c,!0);M(c),M(a),M(n),V((e,t,n)=>{K(i,e),K(s,t),c.disabled=H(d),K(l,n)},[()=>Y(`modal.export.pdf_hint`),()=>Y(`common.cancel`),()=>H(d)?`⏳`:Y(`modal.export.pdf_btn`)]),U(`click`,o,function(...e){t.onclose?.apply(this,e)}),U(`click`,c,v),G(e,n)};q(oe,e=>{H(n)===`pdf`&&e(se)}),M(f),M(r),V((e,t,r,i)=>{K(x,e),hi(C,1,li(H(n)===`markdown`?y:b)),K(w,t),hi(T,1,li(H(n)===`html`?y:b)),K(E,r),hi(D,1,li(H(n)===`pdf`?y:b)),K(ee,i)},[()=>Y(`modal.export.title`),()=>Y(`modal.export.tab_markdown`),()=>Y(`modal.export.tab_html`),()=>Y(`modal.export.tab_pdf`)]),U(`click`,r,e=>{e.target===e.currentTarget&&t.onclose()}),U(`click`,C,()=>m(`markdown`)),U(`click`,T,()=>m(`html`)),U(`click`,D,()=>m(`pdf`)),G(e,r)};q(S,e=>{t.open&&e(C)}),G(e,x),qe()}Nr([`click`]);var Ih=W(`<p class="px-3 py-4 text-xs text-gray-400 text-center"> </p>`),Lh=W(`<p> </p>`),Rh=W(`<div class="group flex items-center hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"><button class="flex-1 flex items-center gap-2 px-3 py-2 text-sm text-left"><span class="text-gray-400 shrink-0">&#128193;</span> <span class="text-gray-700 dark:text-gray-300 truncate"> </span></button> <button title="Add to exclusions" class="shrink-0 text-red-400 hover:text-red-600 px-3 py-2 text-sm font-bold transition-colors">⊖</button></div>`),zh=W(`<div class="group flex items-center hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"><span class="flex-1 flex items-center gap-2 px-3 py-2 text-sm text-gray-500 dark:text-gray-400"><span class="shrink-0 opacity-40">&#128196;</span> <span class="truncate font-mono"> </span></span> <button title="Add to exclusions" class="shrink-0 text-red-400 hover:text-red-600 px-3 py-2 text-sm font-bold transition-colors">⊖</button></div>`),Bh=W(`<div class="border-t border-gray-200 dark:border-gray-700"><div class="flex items-center gap-2 px-3 py-2 bg-gray-50 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700"><button class="text-xs text-blue-600 dark:text-blue-400 hover:underline disabled:opacity-30 disabled:pointer-events-none shrink-0">&#8593; Up</button> <span class="font-mono text-xs text-gray-400 dark:text-gray-500 truncate flex-1 text-right"> </span></div> <div class="divide-y divide-gray-100 dark:divide-gray-800 max-h-52 overflow-y-auto"><!></div></div>`),Vh=W(`<label class="flex items-center gap-1.5 text-xs text-gray-700 dark:text-gray-300 cursor-pointer"><input type="checkbox"/> </label>`),Hh=W(`<div class="group flex items-center hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"><button class="flex-1 flex items-center gap-2 px-3 py-2 text-sm text-left"><span class="text-gray-400 shrink-0">&#128193;</span> <span class="text-gray-700 dark:text-gray-300 truncate"> </span></button> <button title="Exclude this folder" class="shrink-0 opacity-0 group-hover:opacity-100 text-red-400 hover:text-red-600 px-3 py-2 text-sm transition-opacity">⊖</button></div>`),Uh=W(`<button class="w-full px-3 py-2 text-xs text-blue-600 dark:text-blue-400 hover:bg-blue-50 dark:hover:bg-blue-950/30 text-left font-medium border-t border-gray-100 dark:border-gray-800">&#10003; Select: <span class="font-mono"> </span></button>`),Wh=W(`<!> <!>`,1),Gh=W(`<div> </div>`),Kh=W(`<div> </div> <div> </div> <div> </div> <!>`,1),qh=W(`<div role="button" tabindex="0" class="flex items-center gap-2 px-3 py-1 cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800/50 transition-colors"><span class="text-gray-400 dark:text-gray-600 w-5 text-right shrink-0 tabular-nums text-xs"></span> <div class="flex-1 min-w-0"><div class="flex items-center justify-between gap-1"><span class="text-gray-800 dark:text-gray-200 font-medium truncate text-xs"> </span> <span class="text-gray-400 dark:text-gray-600 tabular-nums shrink-0 text-xs"> </span></div> <div class="h-1 bg-gray-100 dark:bg-gray-800 rounded-full mt-0.5"><div class="h-1 bg-blue-400 dark:bg-blue-600 rounded-full"></div></div></div></div>`),Jh=W(`<div class="w-56 shrink-0 border-r border-gray-200 dark:border-gray-800 flex flex-col bg-white dark:bg-gray-900 overflow-hidden"><div class="px-3 py-2 text-xs text-gray-500 dark:text-gray-400 space-y-0.5 border-b border-gray-100 dark:border-gray-800"><!></div> <div class="px-3 py-2 border-b border-gray-100 dark:border-gray-800 flex items-center gap-2"><span class="text-xs text-gray-500 dark:text-gray-400 shrink-0 cursor-help"> </span> <input type="number" min="1" max="20" class="w-12 px-1.5 py-0.5 text-xs rounded border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800 text-gray-800 dark:text-gray-200 focus:outline-none"/> <button class="text-xs text-blue-600 dark:text-blue-400 hover:underline"> </button></div> <p class="px-3 pt-2 pb-1 text-xs font-semibold text-gray-400 dark:text-gray-600 uppercase tracking-wider"> </p> <div class="flex-1 overflow-y-auto"></div></div>`),Yh=W(`<p class="absolute inset-0 flex items-center justify-center text-gray-400 dark:text-gray-500 text-sm animate-pulse"> </p>`),Xh=W(`<div class="flex items-center gap-1 group py-0.5"><span class="text-gray-600 dark:text-gray-400 break-all font-mono flex-1 text-xs"> </span> <button title="Exclude this file" class="shrink-0 opacity-0 group-hover:opacity-100 text-red-400 hover:text-red-600 text-xs leading-none px-1 transition-opacity">⊖</button></div>`),Zh=W(`<div class="text-gray-400 text-center py-2">—</div>`),Qh=W(`<div class="w-80 shrink-0 border-l border-gray-200 dark:border-gray-800 flex flex-col bg-white dark:bg-gray-900 overflow-hidden"><div class="px-3 py-2 border-b border-gray-100 dark:border-gray-800 flex items-center justify-between"><span class="font-bold text-sm text-gray-900 dark:text-gray-100"> </span> <button class="text-gray-400 hover:text-gray-600 dark:hover:text-gray-200 text-xs leading-none">✕</button></div> <p class="px-3 pt-2 pb-1 text-xs font-semibold text-gray-400 dark:text-gray-600 uppercase tracking-wider"> </p> <div class="flex-1 overflow-y-auto px-3 py-1 space-y-1 text-xs"><!></div></div>`),$h=W(`<div class="fixed inset-0 z-50 flex flex-col bg-white dark:bg-gray-950"><div class="flex items-center justify-between px-6 h-14 border-b border-gray-200 dark:border-gray-800 bg-white dark:bg-gray-900 shrink-0"><h2 class="font-semibold text-base"> </h2> <button class="text-sm px-3 py-1.5 rounded-lg text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors"> </button></div> <div class="border-b border-gray-200 dark:border-gray-800 bg-white dark:bg-gray-900 shrink-0"><div class="flex items-center gap-3 px-6 py-3"><label class="text-xs font-medium text-gray-500 dark:text-gray-400 shrink-0"> </label> <input type="text" readonly="" spellcheck="false" class="flex-1 px-3 py-1.5 text-sm rounded-lg border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 font-mono cursor-default focus:outline-none"/> <button class="text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors shrink-0">&#128193; <span> </span></button> <button class="text-sm px-4 py-1.5 rounded-lg bg-blue-600 hover:bg-blue-700 text-white font-semibold transition-colors shrink-0"> </button></div> <div class="flex items-start gap-3 px-6 pb-2"><label class="text-xs font-medium text-gray-500 dark:text-gray-400 shrink-0 pt-1.5"> </label> <textarea rows="3" spellcheck="false" class="flex-1 px-3 py-1.5 text-sm rounded-lg border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 font-mono focus:outline-none focus:ring-1 focus:ring-blue-400 resize-y"></textarea> <button class="text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors shrink-0">&#128193; <span> </span></button></div> <!> <div class="flex items-center gap-x-4 gap-y-2 px-6 pb-3 flex-wrap"><span class="text-xs font-medium text-gray-500 dark:text-gray-400 shrink-0"> </span> <label class="flex items-center gap-1.5 text-xs font-medium text-blue-600 dark:text-blue-400 cursor-pointer shrink-0"><input type="checkbox"/> </label> <!></div> <!></div> <div class="flex-1 overflow-hidden flex"><!> <div class="flex-1 relative overflow-hidden"><!> <canvas style="position: absolute; inset: 0"></canvas></div> <!></div></div>`);function eg(e,t){Ke(t,!0);let n=new Set(`the.a.an.and.or.but.not.nor.so.yet.both.either.neither.is.are.was.were.be.been.being.have.has.had.do.does.did.will.would.shall.should.may.might.can.could.must.need.dare.ought.used.to.of.in.for.on.with.at.by.from.up.about.into.through.during.before.after.above.below.between.out.off.over.under.again.further.then.once.here.there.when.where.why.how.all.each.few.more.most.other.some.such.no.only.own.same.than.too.very.just.also.still.already.always.never.often.sometimes.usually.this.that.these.those.its.your.our.their.his.her.him.she.you.they.we.me.my.it.who.which.what.whose.whom.if.though.although.because.since.while.unless.until.whether.as.like.via.per.i.am.he.us.see.now.new.old.got.let.put.say.said.says.get.use.make.made.take.come.came.go.went.know.think.look.want.give.seem.back.down.even.much.well.good.work.tell.keep.hold.turn.move.play.live.help.run.start.off.way.too.few.show.hear.etc.eg.ie.one.two.three.four.five.six.seven.eight.nine.ten.le.la.les.un.une.des.du.de.d.l.au.aux.ce.ci.cet.cette.ces.mon.ma.mes.ton.ta.tes.son.sa.ses.notre.nos.votre.vos.leur.leurs.je.tu.il.elle.on.nous.vous.ils.elles.me.te.se.lui.y.en.qui.que.quoi.dont.où.et.ou.mais.donc.or.ni.car.si.ne.pas.plus.moins.très.bien.mal.peu.beaucoup.trop.assez.aussi.comme.pour.par.avec.sans.dans.sur.sous.entre.vers.chez.contre.avant.après.pendant.depuis.selon.malgré.sauf.est.sont.était.être.avoir.fait.faire.dit.dire.peut.pouvoir.doit.devoir.veut.vouloir.sait.savoir.va.aller.vient.venir.tout.tous.toute.toutes.autre.autres.même.chaque.quel.quelle.quels.quelles.aucun.aucune.certain.certaine.plusieurs.quelque.quelques.tel.telle.tels.telles.cela.ceci.ça.celui.celle.ceux.celles.ici.voici.voilà.alors.ainsi.encore.déjà.jamais.toujours.souvent.parfois.rien.personne.chose.fois.jour.temps.part.cas.point.lieu.monde.cependant.néanmoins.pourtant.toutefois.quand.lorsque.puisque.parce.afin.puis.lors.notamment.surtout.seulement.vraiment.enfin.ensuite.ailleurs.là.ici.voici.voilà.dont.lequel.laquelle.lesquels.lesquelles`.split(`.`)),r=new Set(`public.private.protected.static.void.class.interface.abstract.final.const.let.var.function.return.if.else.for.while.do.switch.case.break.continue.try.catch.throw.throws.finally.new.this.self.super.import.export.from.package.module.require.include.using.namespace.struct.enum.trait.impl.fn.def.func.fun.val.mut.async.await.yield.lambda.extends.implements.override.virtual.sealed.data.object.companion.where.when.match.guard.defer.go.chan.select.type.alias.as.is.in.of.with.true.false.null.nil.none.undefined.println.printf.fmt.log.print.main.args.argv.init.setup.teardown.describe.test.expect.assert.before.after.not.and.or.delete.typeof.instanceof.readonly.keyof.infer.never.unknown.declare.satisfies.get.set.add.remove.update.create.find.fetch.load.save.put.post.patch.list.map.filter.reduce.sort.merge.parse.format.convert.transform.validate.check.handle.process.execute.start.stop.reset.clear.close.open.read.write.send.receive.emit.trigger.dispatch.subscribe.unsubscribe.listen.notify.register.unregister.bind.apply.call.invoke.callback.handler.listener.middleware.interceptor.resolver.provider.consumer.producer.builder.factory.adapter.wrapper.proxy.decorator.observer.visitor.strategy.command.controller.service.repository.dao.dto.entity.model.schema.config.context.state.store.action.reducer.selector.hook.ref.effect.memo.component.module.plugin.extension.util.utils.helper.helpers.common.shared.base.default.index.app.core.lib.src.test.spec.mock.stub.fixture.impl.internal.api.sdk.client.server.request.response.status.code.error.exception.message.result.data.value.key.name.label.title.description.item.element.node.child.parent.root.container.wrapper.layout.view.page.screen.panel.header.footer.sidebar.navbar.body.content.section.row.col.column.grid.flex.block.inline.span.div.input.output.param.params.arg.option.options.props.attr.attrs.field.fields.property.properties.method.methods.string.number.boolean.integer.float.double.long.short.byte.char.array.object.map.set.list.vector.queue.stack.hash.table.tree.graph.pair.tuple.optional.nullable.void.unit.any.bool.bytes.none.int.str.bool.all.each.every.some.many.single.multi.first.last.next.prev.previous.current.old.temp.tmp.new.top.bottom.left.right.center.middle.start.end.begin.min.max.count.total.sum.avg.size.length.width.height.depth.flag.num.idx.id.uid.uuid.num.str.val.obj.arr.fn.cb.ctx.req.res.err.msg.src.dst.evt.doc.db.io.fs.os.env.sys.http.https.url.uri.path.port.host.tcp.udp.ssl.tls.html.css.json.xml.yml.yaml.csv.sql.regex.utf.ascii.rgb.rgba.hex.px.em.rem.vh.vw.auto.inherit.initial.application.file.local.source.messages.logging.alerting.programmed.offset.offsets.zone.zoned.decimal.big.integer.constructor.mapper.captor.publisher.verify.subscriber.org.edr.ack.ref.ssr.ssg.csr.isr.mockito.junit.vitest.jest.mocha.rspec.pytest.cypress.playwright.captor.spy.given.then.verify.times.never.invocation.argumentcaptor.inorder.donothing.doreturn.ippon.springframework.jakarta.javax.todo.fixme.hack.note.deprecated.experimental.eslint.prettier.typescript.javascript.java.kotlin.python.golang.rust.csharp.swift.ruby.spring.boot.javax.jakarta.hibernate.lombok.gradle.maven.webpack.vite.react.angular.vue.svelte.nuxt.express.fastapi.flask.django.rails.fiber.gin.actix.tokio.asyncio.junit.jest.mocha.pytest.rspec.docker.kubernetes.aws.gcp.azure.terraform.ansible.nginx.apache.linux.nextjs.remix.astro.sveltekit.gatsby.nuxtjs.qwik.solid.vercel.netlify.cloudflare.supabase.firebase.mongodb.postgres.prisma.drizzle.typeorm.sequelize.mongoose.redis.neon.trpc.graphql.grpc.rest.openapi.swagger.zod.yup.valibot.tailwind.shadcn.radix.headless.chakra.mantine.antd.mui.tanstack.tanstackquery.zustand.jotai.recoil.redux.mobx.storybook.cypress.playwright.vitest.turbopack.turborepo.getserversideprops.getstaticprops.getstaticpaths.generatestaticparams.generatemetadata.serveraction.revalidate.notfound.redirect.permanentredirect.unstablecache.unstablenostore.cookies.headers.userouter.usepathname.usesearchparams.useparams.useformstate.useformstatus.useoptimistic.useserveraction.classname.onclick.onchange.onsubmit.onfocus.onblur.onkeydown.onkeyup.onmousedown.onmouseup.defaultvalue.htmlfor.tabindex.strokewidth.viewbox.fillopacity.strokeopacity.pathdata.children.fragment.portal.suspense.errorboundary.strictmode.createelement.createcontext.createref.forwardref.usestate.useeffect.useref.usecontext.usememo.usecallback.usereducer.useid.usetransition.usedeferredvalue.useimperativehandle.mutex.lock.thread.goroutine.coroutine.channel.buffer.stream.pipe.observable.promise.future.completable.deferred.disposable.lifecycle.scope.annotation.attribute.metadata.reflection.generic.template.macro.preprocessor.compiler.runtime.debug.release.production.development.staging.build.deploy.lint.coverage.report.the.and.for.are.but.not.you.all.this.that.with.have.from.they.will.been.can.has.was.its.our.their.more.also.when.what.about.which.would.into.than.then.each.just.over.after.such.here.some.were.very.only`.split(`.`));function i(e){return n.has(e)||r.has(e)||e.length<3||/^\d+$/.test(e)||/^[^a-z]/.test(e)}function a(e){return e.replace(/([a-z])([A-Z])/g,`$1 $2`).replace(/([A-Z]+)([A-Z][a-z])/g,`$1 $2`).replace(/[_\-./]+/g,` `).toLowerCase().trim().split(/\s+/).filter(e=>e.length>=3)}function o(e){return e.toLowerCase().split(/[^a-zàâäéèêëïîôùûü]+/).filter(e=>e.length>=3)}let s=[{value:`adoc`,cat:`prose`},{value:`asciidoc`,cat:`prose`},{value:`asm`,cat:`code`},{value:`astro`,cat:`code`},{value:`avsc`,cat:`config`},{value:`bash`,cat:`code`},{value:`bat`,cat:`code`},{value:`bicep`,cat:`config`},{value:`c`,cat:`code`},{value:`cc`,cat:`code`},{value:`cfg`,cat:`config`},{value:`cjs`,cat:`code`},{value:`clj`,cat:`code`},{value:`cljs`,cat:`code`},{value:`cmake`,cat:`code`},{value:`cmd`,cat:`code`},{value:`conf`,cat:`config`},{value:`cpp`,cat:`code`},{value:`cql`,cat:`code`},{value:`cs`,cat:`code`},{value:`cshtml`,cat:`code`},{value:`css`,cat:`config`},{value:`cxx`,cat:`code`},{value:`dart`,cat:`code`},{value:`env`,cat:`config`},{value:`erb`,cat:`code`},{value:`erl`,cat:`code`},{value:`ex`,cat:`code`},{value:`exs`,cat:`code`},{value:`fish`,cat:`code`},{value:`fs`,cat:`code`},{value:`fsx`,cat:`code`},{value:`go`,cat:`code`},{value:`gql`,cat:`code`},{value:`gradle`,cat:`code`},{value:`graphql`,cat:`code`},{value:`groovy`,cat:`code`},{value:`h`,cat:`code`},{value:`hcl`,cat:`config`},{value:`hpp`,cat:`code`},{value:`hs`,cat:`code`},{value:`html`,cat:`config`},{value:`ini`,cat:`config`},{value:`java`,cat:`code`},{value:`jl`,cat:`code`},{value:`js`,cat:`code`},{value:`json`,cat:`config`},{value:`jsx`,cat:`code`,jsx:!0},{value:`kt`,cat:`code`},{value:`less`,cat:`config`},{value:`lua`,cat:`code`},{value:`m`,cat:`code`},{value:`md`,cat:`prose`,def:!0},{value:`mdx`,cat:`prose`},{value:`mjs`,cat:`code`},{value:`mk`,cat:`code`},{value:`ml`,cat:`code`},{value:`mli`,cat:`code`},{value:`mm`,cat:`code`},{value:`nim`,cat:`code`},{value:`php`,cat:`code`},{value:`pl`,cat:`code`},{value:`prisma`,cat:`code`},{value:`properties`,cat:`config`},{value:`proto`,cat:`code`},{value:`ps1`,cat:`code`},{value:`py`,cat:`code`},{value:`r`,cat:`code`},{value:`razor`,cat:`code`},{value:`rb`,cat:`code`},{value:`rs`,cat:`code`},{value:`rst`,cat:`prose`},{value:`s`,cat:`code`},{value:`scala`,cat:`code`},{value:`scss`,cat:`config`},{value:`sh`,cat:`code`},{value:`sol`,cat:`code`},{value:`sql`,cat:`code`},{value:`styl`,cat:`config`},{value:`svelte`,cat:`code`},{value:`swift`,cat:`code`},{value:`tex`,cat:`prose`},{value:`tf`,cat:`config`},{value:`tfvars`,cat:`config`},{value:`thrift`,cat:`code`},{value:`toml`,cat:`config`},{value:`ts`,cat:`code`},{value:`tsx`,cat:`code`,jsx:!0},{value:`txt`,cat:`prose`},{value:`v`,cat:`code`},{value:`vb`,cat:`code`},{value:`vue`,cat:`code`},{value:`xml`,cat:`config`},{value:`yaml`,cat:`config`},{value:`yml`,cat:`config`},{value:`zig`,cat:`code`},{value:`zsh`,cat:`code`}],c=new Set(s.filter(e=>e.cat===`prose`).map(e=>e.value)),l=new Set(s.filter(e=>e.cat===`code`).map(e=>e.value)),u=new Set(s.filter(e=>e.cat===`config`).map(e=>e.value)),d=new Set(s.filter(e=>e.jsx).map(e=>e.value));function f(e,t){let n=[];if(c.has(t)){let t=e.replace(/^\s*(import|export\s+\{[^}]*\}|export\s+\*|package|require|#include|from\s+['"][^'"]+['"]\s*(import)?)\b.*/gm,``).replace(/```[\s\S]*?```/g,` `).replace(/`[^`\n]+`/g,` `).replace(/!\[[^\]]*\]\([^)]*\)/g,` `).replace(/\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/https?:\/\/\S+/g,` `).replace(/[#*_~>`|!\[\](){}=+\-]/g,` `);n.push(...o(t))}else l.has(t)?(d.has(t)&&(e=e.replace(/<\/?[A-Z][A-Za-z0-9.]*[^>]*>/g,` `),e=e.replace(/<\/?(div|span|main|section|article|aside|nav|header|footer|form|input|button|select|option|textarea|table|thead|tbody|tr|td|th|ul|ol|li|a|img|p|h[1-6]|label|figure|figcaption|picture|video|audio|canvas|svg|path|circle|rect|g|defs|use|link|meta|head|html|body|script|style|br|hr|strong|em|code|pre|blockquote|small|sub|sup)\b[^>]*>/gi,` `),e=e.replace(/\b(className|onClick|onChange|onSubmit|onFocus|onBlur|onKeyDown|onKeyUp|onMouseDown|onMouseUp|htmlFor|tabIndex|strokeWidth|viewBox|fillOpacity|strokeOpacity|defaultValue|placeholder|disabled|checked|readOnly|required|multiple|autoFocus|autoComplete|type|href|src|alt|width|height|style|key|ref)\s*=/g,` =`)),e=e.replace(/^\s*(import\s+[\w.*{},\s'"@/-]+;?|from\s+['"][^'"]+['"]\s*;?|package\s+[\w.]+;?|namespace\s+[\w.]+;?|using\s+[\w.]+;?|require\s*\(?\s*['"][^'"]+['"]\s*\)?;?)\s*$/gm,``),e.replace(/(?:\/\/|#(?!.*[{}[\]<>])| -- )\s*(.+)$/gm,(e,t)=>(n.push(...o(t)),e)),e.replace(/\/\*[\s\S]*?\*\//g,e=>(n.push(...o(e)),e)),e.replace(/"""[\s\S]*?"""|'''[\s\S]*?'''/g,e=>(n.push(...o(e)),e)),e.replace(/["'`]([A-Za-zÀ-ÿ][A-Za-zÀ-ÿ\s,.'éàèùâêîôûç]{3,})["'`]/g,(e,t)=>(n.push(...o(t)),e)),e.replace(/\b([A-Za-z][A-Za-z0-9_]{2,})\b/g,(e,t)=>(n.push(...a(t)),e))):u.has(t)&&(e.replace(/:\s*["']([^"']{3,})["']/g,(e,t)=>(n.push(...o(t)),e)),e.replace(/\b([A-Za-z][A-Za-z0-9_]{2,})\b/g,(e,t)=>(n.push(...a(t)),e)));return n.filter(e=>!i(e))}let p=F(``),m=F(``),h=F(1),g=F(``),_=F(!0),v=F(!1),y=F(L(s.map(e=>({value:e.value,label:`.`+e.value,checked:!!e.def}))));function b(){return H(y).filter(e=>e.checked).map(e=>e.value)}let x=P(()=>H(y).every(e=>e.checked)),S=F(null),C=F(null),w=F(0),T=F(null),E=F(L([])),D=F(L([])),ee=F(!1),te=F(``),ne=F(0),O=F(L([]));function re(){localStorage.setItem(`wc-exts`,JSON.stringify(b()))}function ie(){let e=H(x);I(y,H(y).map(t=>({...t,checked:!e})),!0),re()}function ae(){re()}function oe(){return new Set((H(m)||``).split(/[\n,]/).map(e=>e.trim()).filter(Boolean))}function se(e){let t=oe();t.has(e)||(t.add(e),I(m,[...t].join(`, `),!0),localStorage.setItem(`wc-exclude`,H(m)),H(fe)&&ye(H(me)),le())}function ce(){localStorage.setItem(`wc-exclude`,H(m)),H(fe)&&ye(H(me)),le()}function le(){H(ee)&&H(te)&&j(H(te))}function ue(){H(S)&&Me()}function de(){let e=localStorage.getItem(`wc-root`);e&&(I(p,e,!0),I(Ce,e,!0));let t=localStorage.getItem(`wc-exclude`);t&&I(m,t,!0);let n=localStorage.getItem(`wc-exts`);if(n)try{let e=JSON.parse(n);I(y,H(y).map(t=>({...t,checked:e.includes(t.value)})),!0)}catch{}}let fe=F(!1),pe=F(null),me=F(``),he=F(``),ge=F(null),_e=F(``);function ve(){I(fe,!H(fe)),H(fe)&&ye(H(me)||H(p)||`/`)}async function ye(e){I(ge,null),I(_e,`Loading…`);try{let t=await fetch(`/api/browse?all=1&path=`+encodeURIComponent(e)).then(e=>e.json());I(me,t.current,!0),I(pe,t.parent,!0),I(he,t.current,!0);let n=H(p).trim(),r=(e,t)=>n&&e.startsWith(n+`/`)?e.slice(n.length+1):t,i=oe(),a=(t.dirs||[]).filter(e=>!i.has(r(e.path,e.name))).map(e=>({kind:`dir`,name:e.name,path:e.path,entry:r(e.path,e.name)})),o=b(),s=(t.files||[]).filter(e=>o.some(t=>e.name.endsWith(`.`+t))).filter(e=>!i.has(r(e.path,e.name))).map(e=>({kind:`file`,name:e.name,entry:r(e.path,e.name)})),c=[...a,...s];I(ge,c,!0),I(_e,c.length?``:`Empty directory`,!0)}catch{I(ge,[],!0),I(_e,`Cannot read directory`)}}function be(){H(pe)&&ye(H(pe))}let xe=F(!1),Se=F(null),Ce=F(``),we=F(``),Te=F(null),Ee=F(``);function k(){I(xe,!H(xe)),H(xe)&&De(H(Ce)||H(p)||`/`)}async function De(e){I(Te,null),I(Ee,`Loading…`);try{let t=await fetch(`/api/browse?path=`+encodeURIComponent(e)).then(e=>e.json());I(Ce,t.current,!0),I(Se,t.parent,!0),I(we,t.current,!0),I(Te,(t.dirs||[]).map(e=>({name:e.name,path:e.path})),!0),I(Ee,H(Te).length?``:`No sub-folders`,!0)}catch{I(Te,[],!0),I(Ee,`Cannot read directory`)}}function Oe(){H(Se)&&De(H(Se))}function ke(){I(p,H(Ce),!0),localStorage.setItem(`wc-root`,H(Ce)),I(xe,!1),I(m,``),localStorage.removeItem(`wc-exclude`),I(me,H(Ce),!0)}let Ae=F(null),je=F(null),A=F(!1);function Me(){if(!H(S)||!H(C))return;let e=Math.max(1,H(h)||1),t=[...H(S).entries()].sort((e,t)=>t[1]-e[1]),n=t.filter(([t])=>(H(C).get(t)||new Set).size>=e).slice(0,150);if(!n.length){let n=t.length;I(g,n?`${n} domain word(s) found but none appear in ${e}+ file(s). Lower the "Min files" threshold to 1.`:`No domain words extracted. Try adding more file extensions or a broader folder.`,!0),I(_,!0),I(A,!1),I(v,!1);return}let r=[...H(S).keys()].filter(t=>(H(C).get(t)||new Set).size>=e).length;I(T,{scanned:H(w),unique:r,shown:n.length},!0);let i=n.slice(0,50),a=i[0][1];I(D,i.map(([e,t])=>({word:e,freq:t,pct:Math.round(t/a*100)})),!0),I(v,!0),I(_,!1);let o=document.documentElement.classList.contains(`dark`),s=o?[`#60a5fa`,`#34d399`,`#f9a8d4`,`#a78bfa`,`#fbbf24`,`#6ee7b7`,`#93c5fd`,`#fb923c`,`#4ade80`,`#f472b6`]:[`#1d4ed8`,`#047857`,`#7c3aed`,`#b45309`,`#be123c`,`#0369a1`,`#4338ca`,`#c2410c`,`#15803d`,`#9333ea`];requestAnimationFrame(()=>{if(!H(Ae)||!H(je))return;let e=H(Ae),t=H(je);e.width=Math.max(400,t.offsetWidth),e.height=Math.max(300,t.offsetHeight),e.style.width=e.width+`px`,e.style.height=e.height+`px`,I(A,!0);let n=Math.sqrt(e.width*e.height/(800*500)),r=Math.min(220,Math.round(72*n)),c=i.map(([e,t])=>[e,Math.max(12,Math.round(r*t/a))]);window.WordCloud?.(e,{list:c,gridSize:Math.round(4*e.width/1024),fontFamily:`ui-sans-serif, system-ui, sans-serif`,color:()=>s[Math.floor(Math.random()*s.length)],backgroundColor:o?`#030712`:`#ffffff`,rotateRatio:.2,minSize:6,shrinkToFit:!0,click:e=>j(e[0])})})}function j(e){if(!H(C)||!H(S))return;let t=[...H(C).get(e)||[]].sort(),n=H(S).get(e)||0;I(te,e,!0),I(ne,n,!0),I(O,t,!0),I(ee,!0)}function Ne(){I(ee,!1)}async function Pe(){let e=H(p).trim();if(!e){I(g,`Please select a root folder first.`),I(_,!0);return}let t=b();if(!t.length){I(g,`Please select at least one extension.`),I(_,!0);return}I(xe,!1),I(v,!1),I(ee,!1),I(g,`Reading files…`),I(_,!0),I(A,!1);try{let n=H(m).trim(),r=n?n.split(/[\n,]/).map(e=>e.trim()).filter(Boolean):[];localStorage.setItem(`wc-exclude`,n);let i=new URLSearchParams({path:e});t.forEach(e=>i.append(`ext`,e)),r.forEach(e=>i.append(`exclude`,e));let a=await fetch(`/api/wordcloud?`+i);if(!a.ok){I(g,`Error: `+((await a.json()).error||a.statusText));return}let{files:o,fileTexts:s}=await a.json();I(g,`Analyzing ${o} file(s)…`);let c=new Map,l=new Map,u=new Set;I(w,o,!0);for(let{path:e,text:t}of s){let n=(e.split(`.`).pop()||``).toLowerCase();n&&u.add(n);let r=f(t,n),i=new Set;for(let t of r)c.set(t,(c.get(t)||0)+1),i.has(t)||(i.add(t),l.has(t)||l.set(t,new Set),l.get(t).add(e))}I(S,c,!0),I(C,l,!0),I(E,[...u].sort().map(e=>`.`+e),!0),Me()}catch(e){I(g,`Error: `+e.message)}}let Fe=!1;On(()=>{t.open&&!Fe?(Fe=!0,I(g,`Choose a root folder and click Launch.`),I(_,!0),I(A,!1),I(v,!1),I(ee,!1),I(S,null),I(C,null),I(T,null),I(D,[],!0),I(xe,!1),I(fe,!1),I(h,1),de(),H(p)||fetch(`/api/config`).then(e=>e.json()).then(e=>{e.docsFolder&&(I(p,e.docsFolder,!0),I(Ce,e.docsFolder,!0))}).catch(()=>{})):t.open||(Fe=!1)});var Ie=Ur(),Le=z(Ie),Re=e=>{var n=$h(),r=R(n),i=R(r),a=R(i,!0);M(i);var o=B(i,2),s=R(o,!0);M(o),M(r);var c=B(r,2),l=R(c),u=R(l),d=R(u,!0);M(u);var f=B(u,2);Ei(f);var b=B(f,2),S=B(R(b)),C=R(S,!0);M(S),M(b);var w=B(b,2),re=R(w,!0);M(w),M(l);var oe=B(l,2),le=R(oe),de=R(le,!0);M(le);var me=B(le,2);vn(me);var Ce=B(me,2),Me=B(R(Ce)),Fe=R(Me,!0);M(Me),M(Ce),M(oe);var Ie=B(oe,2),Le=e=>{var t=Bh(),n=R(t),r=R(n),i=B(r,2),a=R(i,!0);M(i),M(n);var o=B(n,2),s=R(o),c=e=>{var t=Ih(),n=R(t,!0);M(t),V(()=>K(n,H(_e))),G(e,t)},l=e=>{var t=Lh(),n=R(t,!0);M(t),V(()=>{hi(t,1,`px-3 py-3 text-xs ${H(_e)===`Cannot read directory`?`text-red-400`:`text-gray-400`} text-center`),K(n,H(_e))}),G(e,t)},u=e=>{var t=Ur();$r(z(t),17,()=>H(ge),Yr,(e,t)=>{var n=Ur(),r=z(n),i=e=>{var n=Rh(),r=R(n),i=B(R(r),2),a=R(i,!0);M(i),M(r);var o=B(r,2);M(n),V(()=>K(a,H(t).name)),U(`click`,r,()=>ye(H(t).path)),U(`click`,o,()=>se(H(t).entry)),G(e,n)},a=e=>{var n=zh(),r=R(n),i=B(R(r),2),a=R(i,!0);M(i),M(r);var o=B(r,2);M(n),V(()=>K(a,H(t).name)),U(`click`,o,()=>se(H(t).entry)),G(e,n)};q(r,e=>{H(t).kind===`dir`?e(i):e(a,-1)}),G(e,n)}),G(e,t)};q(s,e=>{H(ge)===null?e(c):H(ge).length===0?e(l,1):e(u,-1)}),M(o),M(t),V(()=>{r.disabled=!H(pe),K(a,H(he))}),U(`click`,r,be),G(e,t)};q(Ie,e=>{H(fe)&&e(Le)});var Re=B(Ie,2),ze=R(Re),Be=R(ze,!0);M(ze);var Ve=B(ze,2),He=R(Ve);Ei(He);var Ue=B(He);M(Ve),$r(B(Ve,2),17,()=>H(y),e=>e.value,(e,t,n)=>{var r=Vh(),i=R(r);Ei(i);var a=B(i);M(r),V(()=>K(a,` ${H(t).label??``}`)),U(`change`,i,ae),Ni(i,()=>H(t).checked,e=>H(t).checked=e),G(e,r)}),M(Re);var We=B(Re,2),Ge=e=>{var t=Bh(),n=R(t),r=R(n),i=B(r,2),a=R(i,!0);M(i),M(n);var o=B(n,2),s=R(o),c=e=>{var t=Ih(),n=R(t,!0);M(t),V(()=>K(n,H(Ee))),G(e,t)},l=e=>{var t=Wh(),n=z(t),r=e=>{var t=Lh(),n=R(t,!0);M(t),V(()=>{hi(t,1,`px-3 py-3 text-xs ${H(Ee)===`Cannot read directory`?`text-red-400`:`text-gray-400`} text-center`),K(n,H(Ee))}),G(e,t)},i=e=>{var t=Ur();$r(z(t),17,()=>H(Te),Yr,(e,t)=>{var n=Hh(),r=R(n),i=B(R(r),2),a=R(i,!0);M(i),M(r);var o=B(r,2);M(n),V(()=>K(a,H(t).name)),U(`click`,r,()=>De(H(t).path)),U(`click`,o,()=>se(H(t).name)),G(e,n)}),G(e,t)};q(n,e=>{H(Te).length===0?e(r):e(i,-1)});var a=B(n,2),o=e=>{var t=Uh(),n=B(R(t)),r=R(n,!0);M(n),M(t),V(()=>K(r,H(we))),U(`click`,t,ke),G(e,t)};q(a,e=>{H(Ee)!==`Cannot read directory`&&e(o)}),G(e,t)};q(s,e=>{H(Te)===null?e(c):e(l,-1)}),M(o),M(t),V(()=>{r.disabled=!H(Se),K(a,H(we))}),U(`click`,r,Oe),G(e,t)};q(We,e=>{H(xe)&&e(Ge)}),M(c);var Ke=B(c,2),qe=R(Ke),Je=e=>{var t=Jh(),n=R(t),r=R(n),i=e=>{var t=Kh(),n=z(t),r=R(n);M(n);var i=B(n,2),a=R(i);M(i);var o=B(i,2),s=R(o);M(o);var c=B(o,2),l=e=>{var t=Gh(),n=R(t);M(t),V((e,r)=>{J(t,`title`,e),K(n,`${H(E).length??``} extension${H(E).length>1?`s`:``} found (${r??``})`)},[()=>H(E).join(`, `),()=>H(E).join(`, `)]),G(e,t)};q(c,e=>{H(E).length&&e(l)}),V(()=>{K(r,`${H(T).scanned??``} file(s) scanned`),K(a,`${H(T).unique??``} unique domain words`),K(s,`${H(T).shown??``} shown`)}),G(e,t)};q(r,e=>{H(T)&&e(i)}),M(n);var a=B(n,2),o=R(a),s=R(o,!0);M(o);var c=B(o,2);Ei(c);var l=B(c,2),u=R(l,!0);M(l),M(a);var d=B(a,2),f=R(d,!0);M(d);var p=B(d,2);$r(p,21,()=>H(D),Yr,(e,t,n)=>{var r=qh(),i=R(r);i.textContent=n+1;var a=B(i,2),o=R(a),s=R(o),c=R(s,!0);M(s);var l=B(s,2),u=R(l,!0);M(l),M(o);var d=B(o,2),f=R(d);M(d),M(a),M(r),V(()=>{K(c,H(t).word),K(u,H(t).freq),_i(f,`width:${H(t).pct??``}%`)}),U(`click`,r,()=>j(H(t).word)),G(e,r)}),M(p),M(t),V((e,t,n,r,i,a)=>{J(o,`title`,e),K(s,t),J(c,`title`,n),J(l,`title`,r),K(u,i),K(f,a)},[()=>Y(`wc.min_files_hint`),()=>Y(`wc.min_files_label`),()=>Y(`wc.min_files_hint`),()=>Y(`wc.apply_hint`),()=>Y(`wc.apply_btn`),()=>Y(`wc.top_words`)]),Mi(c,()=>H(h),e=>I(h,e)),U(`click`,l,ue),G(e,t)};q(qe,e=>{H(v)&&e(Je)});var Ye=B(qe,2),Xe=R(Ye),Ze=e=>{var t=Yh(),n=R(t,!0);M(t),V(()=>K(n,H(g))),G(e,t)};q(Xe,e=>{H(_)&&e(Ze)});var Qe=B(Xe,2);let $e;Li(Qe,e=>I(Ae,e),()=>H(Ae)),M(Ye),Li(Ye,e=>I(je,e),()=>H(je));var et=B(Ye,2),tt=e=>{var t=Qh(),n=R(t),r=R(n),i=R(r);M(r);var a=B(r,2);M(n);var o=B(n,2),s=R(o,!0);M(o);var c=B(o,2),l=R(c),u=e=>{var t=Ur();$r(z(t),17,()=>H(O),Yr,(e,t)=>{var n=Xh(),r=R(n),i=R(r,!0);M(r);var a=B(r,2);M(n),V(()=>K(i,H(t))),U(`click`,a,()=>se(H(t))),G(e,n)}),G(e,t)},d=e=>{G(e,Zh())};q(l,e=>{H(O).length?e(u):e(d,-1)}),M(c),M(t),V(e=>{K(i,`${H(te)??``} ×${H(ne)??``}`),K(s,e)},[()=>Y(`wc.found_in`)]),U(`click`,a,Ne),G(e,t)};q(et,e=>{H(ee)&&e(tt)}),M(Ke),M(n),V((e,t,n,r,i,o,c,l,u,f)=>{K(a,e),K(s,t),K(d,n),K(C,r),K(re,i),K(de,o),J(me,`placeholder`,c),K(Fe,l),K(Be,u),Oi(He,H(x)),K(Ue,` ${f??``}`),$e=hi(Qe,1,``,null,$e,{hidden:!H(A)})},[()=>Y(`wc.title`),()=>Y(`wc.close_btn`),()=>Y(`wc.search_root_label`),()=>Y(`wc.browse_btn`),()=>Y(`wc.launch_btn`),()=>Y(`wc.exclude_label`),()=>Y(`wc.exclude_placeholder`),()=>Y(`wc.browse_btn`),()=>Y(`wc.extensions_label`),()=>Y(`wc.all_btn`)]),U(`click`,o,function(...e){t.onclose?.apply(this,e)}),Mi(f,()=>H(p),e=>I(p,e)),U(`click`,b,k),U(`click`,w,Pe),U(`input`,me,ce),Mi(me,()=>H(m),e=>I(m,e)),U(`click`,Ce,ve),U(`change`,He,ie),G(e,n)};q(Le,e=>{t.open&&e(Re)}),G(e,Ie),qe()}Nr([`click`,`input`,`change`]);var tg=W(`<button class="ghost-button"><i class="fa-solid fa-cloud"></i></button> <button title="Toggle dark mode" class="ghost-button" aria-label="Toggle dark mode"> </button>`,1),ng=W(`<div class="relative hidden sm:block"><input type="search" class="w-56 pl-8 pr-3 py-1.5 text-sm rounded-lg border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 placeholder:text-gray-400 focus:outline-none focus:ring-2 focus:ring-blue-500"/> <span class="absolute left-2.5 top-2 text-gray-400 text-sm pointer-events-none">🔍</span></div>`),rg=W(`<p class="p-8 text-red-500"> </p>`),ig=W(`<div class="h-full flex items-center justify-center p-8"><div class="max-w-md text-center"><div class="text-5xl mb-4 select-none" aria-hidden="true">📚</div> <h2 class="text-xl font-semibold text-gray-700 dark:text-gray-300 mb-2"> </h2> <p class="text-sm text-gray-500 dark:text-gray-500"> </p> <p class="mt-4 text-xs text-gray-400 dark:text-gray-600 font-mono bg-gray-100 dark:bg-gray-800 rounded-lg px-3 py-2 inline-block"> </p> <p class="mt-2 text-xs text-gray-400"> </p></div></div>`),ag=W(`<div class="app-shell bg-gray-50 text-gray-900 dark:bg-gray-900 dark:text-gray-100"><!> <div class="flex overflow-hidden"><!> <main id="home-content-area" class="flex-1 overflow-y-auto"><!></main></div></div> <!> <!> <!> <!>`,1);function og(e,t){Ke(t,!0);let n=F(!1),r=F(!1),i=F(!1),a=F(!1),o=F(null),s=F(!1),c=F(``),l=F(!1),u=F(`Living AI Documentation`),d=F(`YYYY_MM_DD_HH_mm_[Category]_title.md`),f=null;function p(){try{let e=localStorage.getItem(`ld-dark`);if(e!==null)return e===`true`}catch{}return window.matchMedia(`(prefers-color-scheme: dark)`).matches}function m(e){I(l,e,!0),document.documentElement.classList.toggle(`dark`,e)}function h(){m(!H(l));try{localStorage.setItem(`ld-dark`,String(H(l)))}catch{}}On(()=>{let e=document.getElementById(`hljs-dark`),t=document.getElementById(`hljs-light`);if(!e||!t)return;let n=$.codeBlockLightTheme&&!H(l);e.disabled=n,t.disabled=!n,document.body.classList.toggle(`ld-code-light`,n)});function g(e){let t=e.trim();if(f&&clearTimeout(f),!t){$.searchQuery=``,$.searchResults=null;return}$.searchQuery=t,$.searchResults=$.allDocs.filter(e=>e.title.toLowerCase().includes(t.toLowerCase())||e.category.toLowerCase().includes(t.toLowerCase())),f=window.setTimeout(async()=>{try{let e=await Fu(t);t===$.searchQuery&&($.searchResults=e)}catch{}},350)}let _=F(L([]));function v(e){let t=H(_)[e];t&&(I(_,H(_).slice(0,e),!0),y(t.id,!1,`restore`))}async function y(e,t=!1,n=!1,r=null){if(n===!0&&$.currentDocId&&$.currentDocId!==e){let t=H(_).findIndex(t=>t.id===e);if(t!==-1)I(_,H(_).slice(0,t),!0);else{let e=$.allDocs.find(e=>e.id===$.currentDocId);I(_,[...H(_),{id:$.currentDocId,title:e?e.title:$.currentDocId}],!0)}}else n||I(_,[],!0);$.currentDocId=e;let i=$.allDocs.find(t=>t.id===e);if(i&&$.revealDoc(i),!t){let t=new URL(location.href);t.searchParams.set(`doc`,e),t.hash=r?`#${r}`:``,history.pushState({docId:e,anchor:r||null},``,t)}I(s,!0),I(c,``);try{let t=await ju(e);t.id=e,I(o,t,!0),document.title=t.title,requestAnimationFrame(()=>{let e=document.getElementById(`home-content-area`);if(r){let t=document.getElementById(r);t&&e&&(e.scrollTop+=t.getBoundingClientRect().top-e.getBoundingClientRect().top-80)}else e&&(e.scrollTop=0)})}catch(e){I(c,Y(`doc.failed_to_load`)+(e instanceof Error?e.message:String(e)))}finally{I(s,!1)}}async function b(e){if(!H(o))return;let t=H(o).id,n=await fetch(`/api/documents/`+t,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({content:e})});if(!n.ok)throw Error(await n.text());let r=await ju(t);r.id=t,I(o,r,!0);let i=e.match(/\]\(\s*\.?\/files\/[^)\s]+/g),a={...$.fileAttachmentCounts};i&&i.length?a[t]=i.length:delete a[t],$.fileAttachmentCounts=a}async function x(){if(!H(o))return;let e=H(o).id;if(!(await fetch(`/api/documents/`+encodeURIComponent(e),{method:`DELETE`})).ok)return;$.allDocs=$.allDocs.filter(t=>t.id!==e),Array.isArray($.searchResults)&&($.searchResults=$.searchResults.filter(t=>t.id!==e));let t={...$.annotationCounts};delete t[e],$.annotationCounts=t;let n={...$.fileAttachmentCounts};delete n[e],$.fileAttachmentCounts=n,$.currentDocId=null,I(o,null),history.pushState({},``,location.pathname)}async function S(){let[e,t]=await Promise.all([ku(),Ou()]);if($.allDocs=e,t.docsFolder)try{$.allFolderPaths=await Au(t.docsFolder)}catch{$.allFolderPaths=[]}let[n,r,i]=await Promise.all([Mu(),Nu(),Pu()]);$.annotationCounts=n,$.fileAttachmentCounts=r,$.docStatuses=i}Vi(async()=>{m(p());let e=await Ou();await fa(e.language||`en`),e.title&&(document.title=e.title,I(u,e.title,!0)),e.filenamePattern&&I(d,e.filenamePattern+`.md`),$.exclusiveFolderExpansion=!!e.exclusiveFolderExpansion,$.exclusiveCategoryExpansion=!!e.exclusiveCategoryExpansion,$.codeBlockMaxHeight=typeof e.codeBlockMaxHeight==`number`?e.codeBlockMaxHeight:400,$.imageRoundedCorners=!!e.imageRoundedCorners,$.imageCentered=!!e.imageCentered,$.imageBorder=!!e.imageBorder,$.codeBlockLightTheme=!!e.codeBlockLightTheme,$.codeBlockMaxHeight>0&&document.documentElement.style.setProperty(`--ld-code-max-h`,$.codeBlockMaxHeight+`px`),$.expandedCategories.size===0&&($.expandedCategories=new Set([`General`])),await S();let t=new URLSearchParams(location.search).get(`doc`);if(t)y(t,!0,!1,location.hash?location.hash.slice(1):null);else{let e=$.allDocs.find(e=>e.category===`General`)??$.allDocs[0];e&&y(e.id,!0)}let n=e=>{let t=e.state?.docId||new URLSearchParams(location.search).get(`doc`),n=e.state?.anchor||(location.hash.length>1?location.hash.slice(1):null);t&&y(t,!0,!1,n)};return window.addEventListener(`popstate`,n),()=>window.removeEventListener(`popstate`,n)});var C=ag(),w=z(C),T=R(w);ua(T,{get title(){return H(u)},subtitle:``,actions:e=>{var t=tg(),n=z(t),r=B(n,2),i=R(r,!0);M(r),V((e,t)=>{J(n,`title`,e),J(n,`aria-label`,t),K(i,H(l)?`☀`:`☾`)},[()=>Y(`nav.word_cloud`),()=>Y(`nav.word_cloud`)]),U(`click`,n,()=>I(a,!0)),U(`click`,r,h),G(e,t)},children:(e,t)=>{var n=ng(),r=R(n);Ei(r),Fe(2),M(n),V(e=>{J(r,`placeholder`,e),Di(r,$.searchQuery)},[()=>Y(`nav.search_placeholder`)]),U(`input`,r,e=>g(e.target.value)),G(e,n)},$$slots:{actions:!0,default:!0}});var E=B(T,2),D=R(E);sd(D,{onopen:e=>y(e),onsearch:g,onexport:()=>I(i,!0),onnewfolder:()=>I(n,!0),onnewdoc:()=>I(r,!0)});var ee=B(D,2),te=R(ee),ne=e=>{var t=Ur(),n=z(t),r=e=>{var t=rg(),n=R(t,!0);M(t),V(()=>K(n,H(c))),G(e,t)},i=e=>{uh(e,{get doc(){return H(o)},get navHistory(){return H(_)},ongoback:v,onopen:(e,t)=>y(e,!1,!0,t),onsave:b,ondelete:x})};q(n,e=>{H(c)?e(r):e(i,-1)}),G(e,t)},O=e=>{var t=ig(),n=R(t),r=B(R(n),2),i=R(r,!0);M(r);var a=B(r,2),o=R(a,!0);M(a);var s=B(a,2),c=R(s,!0);M(s);var l=B(s,2),u=R(l,!0);M(l),M(n),M(t),V((e,t,n)=>{K(i,e),K(o,t),K(c,H(d)),K(u,n)},[()=>Y(`welcome.title`),()=>Y(`welcome.hint`),()=>Y(`welcome.pattern_hint`)]),G(e,t)};q(te,e=>{H(o)?e(ne):e(O,-1)}),M(ee),M(E),M(w);var re=B(w,2);vh(re,{get open(){return H(n)},onclose:()=>I(n,!1),onsuccess:S});var ie=B(re,2);Dh(ie,{get open(){return H(r)},onclose:()=>I(r,!1),onsuccess:async e=>{await S(),y(e)}});var ae=B(ie,2);Fh(ae,{get open(){return H(i)},onclose:()=>I(i,!1)}),eg(B(ae,2),{get open(){return H(a)},onclose:()=>I(a,!1)}),G(e,C),qe()}Nr([`click`,`input`]);var sg=`modulepreload`,cg=function(e){return`/`+e},lg={},ug=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=cg(t,n),t in lg)return;lg[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:sg,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},dg=W(`<div class="flex flex-col h-screen overflow-hidden bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100"><header class="flex items-center gap-1 px-2 h-12 shrink-0 border-b border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-900 shadow-sm z-10"><button class="tool-btn !w-auto px-2 text-xs font-medium text-gray-500 dark:text-gray-400"> </button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnSidebar" class="tool-btn">☰</button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnCopyDiagramId" class="tool-btn"><svg width="15" height="15" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><rect x="5" y="5" width="8" height="9" rx="1.5"></rect><path d="M3 11V3a1 1 0 0 1 1-1h7"></path></svg></button> <button id="toolSelect" class="tool-btn tool-active"><svg width="11" height="13" viewBox="0 0 11 13" fill="currentColor" stroke="none"><path d="M1 1 L1 12 L4 9 L6.5 13 L8 12.2 L5.5 8.2 L10 8.2 Z"></path></svg></button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="toolBox" class="tool-btn"><svg width="15" height="10" viewBox="0 0 15 10" fill="none" stroke="currentColor" stroke-width="1.5"><rect x="1" y="1" width="13" height="8" rx="1"></rect></svg></button> <button id="toolEllipse" class="tool-btn"><svg width="16" height="10" viewBox="0 0 16 10" fill="none" stroke="currentColor" stroke-width="1.5"><ellipse cx="8" cy="5" rx="7" ry="4"></ellipse></svg></button> <button id="toolDatabase" class="tool-btn"><svg width="12" height="16" viewBox="0 0 12 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><ellipse cx="6" cy="3" rx="5" ry="2"></ellipse><path d="M1 3v10c0 1.1 2.2 2 5 2s5-.9 5-2V3"></path><path d="M11 7.5c0 1.1-2.2 2-5 2s-5-.9-5-2"></path></svg></button> <button id="toolCircle" class="tool-btn"><svg width="13" height="13" viewBox="0 0 13 13" fill="none" stroke="currentColor" stroke-width="1.5"><circle cx="6.5" cy="6.5" r="5.5"></circle></svg></button> <button id="toolActor" class="tool-btn"><svg width="12" height="17" viewBox="0 0 12 17" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><circle cx="6" cy="3" r="2.2"></circle><line x1="6" y1="5.2" x2="6" y2="10"></line><line x1="1.5" y1="7.5" x2="10.5" y2="7.5"></line><line x1="6" y1="10" x2="2.5" y2="15"></line><line x1="6" y1="10" x2="9.5" y2="15"></line></svg></button> <button id="toolPostIt" class="tool-btn"><svg width="13" height="13" viewBox="0 0 13 13" fill="none" stroke="currentColor" stroke-width="1.4"><path d="M1 1 H9 L12 4 V12 H1 Z"></path><path d="M9 1 V4 H12" stroke-opacity="0.5"></path></svg></button> <button id="toolTextFree" class="tool-btn" style="font-size:11px; font-weight:600;">T</button> <button id="toolImage" class="tool-btn"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><rect x="1" y="1" width="12" height="12" rx="1.5"></rect><circle cx="4.5" cy="4.5" r="1.2"></circle><path d="M1 9.5 L4 6.5 L6.5 9 L9 7 L13 10.5"></path></svg></button> <a href="/shape-editor" class="tool-btn">✦</a> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="toolArrow" class="tool-btn">→</button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnDelete" class="tool-btn"><svg width="11" height="11" viewBox="0 0 11 11" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"><line x1="1" y1="1" x2="10" y2="10"></line><line x1="10" y1="1" x2="1" y2="10"></line></svg></button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnDiagramDefaults" class="tool-btn"><svg width="14" height="14" viewBox="0 0 16 16" fill="currentColor"><path d="M8 4.754a3.246 3.246 0 1 0 0 6.492 3.246 3.246 0 0 0 0-6.492M5.754 8a2.246 2.246 0 1 1 4.492 0 2.246 2.246 0 0 1-4.492 0"></path><path d="M9.796 1.343c-.527-1.79-3.065-1.79-3.592 0l-.094.319a.873.873 0 0 1-1.255.52l-.292-.16c-1.64-.892-3.433.902-2.54 2.541l.159.292a.873.873 0 0 1-.52 1.255l-.319.094c-1.79.527-1.79 3.065 0 3.592l.319.094a.873.873 0 0 1 .52 1.255l-.16.292c-.892 1.64.901 3.434 2.541 2.54l.292-.159a.873.873 0 0 1 1.255.52l.094.319c.527 1.79 3.065 1.79 3.592 0l.094-.319a.873.873 0 0 1 1.255-.52l.292.16c1.64.893 3.434-.902 2.54-2.541l-.159-.292a.873.873 0 0 1 .52-1.255l.319-.094c1.79-.527 1.79-3.065 0-3.592l-.319-.094a.873.873 0 0 1-.52-1.255l.16-.292c.893-1.64-.902-3.433-2.541-2.54l-.292.159a.873.873 0 0 1-1.255-.52zm-2.633.283c.246-.835 1.428-.835 1.674 0l.094.319a1.873 1.873 0 0 0 2.693 1.115l.291-.16c.764-.415 1.6.42 1.184 1.185l-.159.292a1.873 1.873 0 0 0 1.116 2.692l.318.094c.835.246.835 1.428 0 1.674l-.319.094a1.873 1.873 0 0 0-1.115 2.693l.16.291c.415.764-.42 1.6-1.185 1.184l-.291-.159a1.873 1.873 0 0 0-2.693 1.116l-.094.318c-.246.835-1.428.835-1.674 0l-.094-.319a1.873 1.873 0 0 0-2.692-1.115l-.292.16c-.764.415-1.6-.42-1.184-1.185l.159-.291A1.873 1.873 0 0 0 1.945 8.93l-.319-.094c-.835-.246-.835-1.428 0-1.674l.319-.094A1.873 1.873 0 0 0 3.06 4.474l-.16-.292c-.415-.764.42-1.6 1.185-1.184l.292.159a1.873 1.873 0 0 0 2.692-1.115z"></path></svg></button> <button id="btnAlign" class="tool-btn"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.4"><line x1="0.5" y1="7.5" x2="13.5" y2="7.5"></line><line x1="3.5" y1="0.5" x2="3.5" y2="13.5" stroke-dasharray="1.5 1.5"></line><line x1="10.5" y1="0.5" x2="10.5" y2="13.5" stroke-dasharray="1.5 1.5"></line></svg></button> <button id="btnGrid" class="tool-btn"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.2"><line x1="5" y1="1" x2="5" y2="13"></line><line x1="9" y1="1" x2="9" y2="13"></line><line x1="1" y1="5" x2="13" y2="5"></line><line x1="1" y1="9" x2="13" y2="9"></line><rect x="1" y="1" width="12" height="12" rx="1"></rect></svg></button> <button id="btnEdgeStraight" class="tool-btn"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><line x1="2" y1="12" x2="12" y2="2"></line><polyline points="8,2 12,2 12,6"></polyline></svg></button> <button id="btnEvidenceMode" class="tool-btn"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M4 1.5 H8.5 L11 4 V12.5 H4 Z"></path><path d="M8.5 1.5 V4 H11"></path><path d="M1.5 5.5 H6.5"></path><path d="M1.5 8 H6.5"></path><path d="M1.5 10.5 H5"></path></svg></button> <button id="btnResizeMode" class="tool-btn active-tool"><svg id="icon-resize-corner" width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="1" y="1" width="12" height="12" stroke-dasharray="2.5 2"></rect><line x1="4" y1="4" x2="10" y2="10"></line><polyline points="7,10 10,10 10,7"></polyline></svg> <svg id="icon-resize-center" width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="hidden"><rect x="1" y="1" width="12" height="12" stroke-dasharray="2.5 2"></rect><line x1="4" y1="4" x2="10" y2="10"></line><polyline points="4,6.5 4,4 6.5,4"></polyline><polyline points="10,7.5 10,10 7.5,10"></polyline><line x1="10" y1="4" x2="4" y2="10"></line><polyline points="7.5,4 10,4 10,6.5"></polyline><polyline points="4,7.5 4,10 6.5,10"></polyline></svg></button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <input id="diagramTitle" type="text" class="flex-1 min-w-0 px-2 py-1 text-sm bg-transparent border-0 focus:outline-none focus:ring-1 focus:ring-blue-500 rounded text-gray-700 dark:text-gray-300 placeholder:text-gray-400"/> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnZoomOut" class="tool-btn">−</button> <span id="zoomLevel" class="text-xs text-gray-500 dark:text-gray-400 w-10 text-center tabular-nums select-none">100%</span> <button id="btnZoomIn" class="tool-btn">+</button> <button id="btnZoomReset" class="tool-btn">⊡</button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnDark" class="tool-btn"><span id="darkIcon">☽</span></button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnDebug" class="hidden tool-btn text-xs font-mono">dbg</button> <div id="sepDebug" class="hidden w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnExportDrawio" class="tool-btn"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg></button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnSave" disabled="" class="px-3 py-1.5 text-xs font-semibold rounded-lg bg-blue-600 hover:bg-blue-700 text-white disabled:opacity-40 disabled:cursor-not-allowed shrink-0 transition-colors"><span> </span></button></header> <div class="flex flex-1 overflow-hidden"><div id="sidebar" class="w-56 shrink-0 border-r border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800 flex flex-col overflow-hidden" style="transition: width 0.2s ease"><div class="flex items-center justify-between px-3 py-2 border-b border-gray-200 dark:border-gray-700 shrink-0"><span class="text-xs font-semibold text-gray-500 dark:text-gray-400 uppercase tracking-wider"> </span> <button id="btnNewDiagram" class="text-xs font-medium text-blue-600 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300 transition-colors"> </button></div> <div id="diagramList" class="flex-1 overflow-y-auto py-1"></div></div> <div role="separator" aria-orientation="vertical"></div> <div class="relative flex-1 overflow-hidden bg-gray-50 dark:bg-gray-950"><div id="vis-canvas" class="w-full h-full"></div> <div id="customShapeBar" class="hidden"><div id="customShapeBarBody"></div></div> <div id="debugLayer"></div> <div id="evidenceLayer" class="hidden"></div> <div id="stampOverlay" style="position:absolute;inset:0;display:none;z-index:11;cursor:crosshair;"></div> <div id="selectionOverlay"><div id="rh-tl" class="resize-handle" style="top: -5px; left: -5px; cursor: nw-resize"></div> <div id="rh-tr" class="resize-handle" style="top: -5px; right: -5px; cursor: ne-resize"></div> <div id="rh-bl" class="resize-handle" style="bottom: -5px; left: -5px; cursor: sw-resize"></div> <div id="rh-br" class="resize-handle" style="bottom: -5px; right: -5px; cursor: se-resize"></div> <div id="rh-rotate">↻</div> <div id="rh-label-rotate" style="left: 0; top: -28px;"><svg width="10" height="10" viewBox="0 0 10 10" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><g transform="rotate(25,5,5)"><line x1="2.5" y1="3" x2="7.5" y2="3"></line><line x1="5" y1="3" x2="5" y2="8"></line></g></svg></div></div> <aside id="evidencePanel" class="hidden absolute top-0 right-0 bottom-0 w-80 max-w-[85vw] z-30 bg-gray-50 dark:bg-gray-900 border-l border-gray-200 dark:border-gray-700 shadow-xl flex flex-col"><div class="flex items-center justify-between gap-2 px-4 py-3 border-b border-gray-200 dark:border-gray-700"><h2 id="evidencePanelTitle" class="text-sm font-semibold text-gray-800 dark:text-gray-100"> </h2> <button id="btnEvidenceClose" class="tool-btn !w-7 !h-7">×</button></div> <div id="evidencePanelBody" class="flex-1 overflow-y-auto p-3 space-y-3"></div></aside> <div id="nodePanel" class="float-panel hidden"><button id="btnNodeLock" class="tool-btn !w-6 !h-6 text-sm">🔒</button> <div class="panel-sep"></div> <div id="nodePanelControls" class="contents"><button id="nodeColorSwatch" style="width:1.5rem;height:1.5rem;border-radius:0.25rem;border:2px solid #a8a29e;background:#f5f5f4;cursor:pointer;flex-shrink:0;"></button> <div class="panel-sep"></div> <input id="nodeBgOpacity" type="range" min="0" max="100" step="5" value="100" class="w-16 h-1 accent-orange-500 cursor-pointer"/> <div class="panel-sep"></div> <button id="btnNodeLabelEdit" class="tool-btn !w-6 !h-6">✎</button> <button id="btnNodeLink" class="tool-btn !w-6 !h-6"><svg width="13" height="13" viewBox="0 0 13 13" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M5 7.5a3.5 3.5 0 0 0 5 0l1.5-1.5a3.5 3.5 0 0 0-5-5L5 2.5"></path><path d="M8 5.5a3.5 3.5 0 0 0-5 0L1.5 7a3.5 3.5 0 0 0 5 5L8 10.5"></path></svg></button> <div class="panel-sep"></div> <button id="btnNodeFontDecrease" class="tool-btn !w-8 !h-6" style="font-size: 10px">Aa−</button> <span id="nodeFontSizeValue" class="inline-flex items-center justify-center min-w-[2.25rem] h-6 px-1 text-[11px] font-mono text-gray-700 dark:text-gray-200 border border-gray-300 dark:border-gray-600 rounded bg-white/80 dark:bg-gray-800/80">13</span> <button id="btnNodeFontIncrease" class="tool-btn !w-8 !h-6" style="font-size: 10px">Aa+</button> <div class="panel-sep"></div> <button id="btnAlignLeft" class="tool-btn !w-6 !h-6"><svg width="12" height="10" viewBox="0 0 12 10" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"><line x1="1" y1="2" x2="11" y2="2"></line><line x1="1" y1="5" x2="7" y2="5"></line><line x1="1" y1="8" x2="9" y2="8"></line></svg></button> <button id="btnAlignCenter" class="tool-btn !w-6 !h-6"><svg width="12" height="10" viewBox="0 0 12 10" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"><line x1="1" y1="2" x2="11" y2="2"></line><line x1="2.5" y1="5" x2="9.5" y2="5"></line><line x1="1.5" y1="8" x2="10.5" y2="8"></line></svg></button> <button id="btnAlignRight" class="tool-btn !w-6 !h-6"><svg width="12" height="10" viewBox="0 0 12 10" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"><line x1="1" y1="2" x2="11" y2="2"></line><line x1="5" y1="5" x2="11" y2="5"></line><line x1="3" y1="8" x2="11" y2="8"></line></svg></button> <div class="panel-sep"></div> <button id="btnValignTop" class="tool-btn !w-6 !h-6"><svg width="10" height="12" viewBox="0 0 10 12" fill="none" stroke="currentColor" stroke-linecap="round"><line x1="1" y1="1.5" x2="9" y2="1.5" stroke-width="2"></line><line x1="1" y1="5" x2="8" y2="5" stroke-width="1.3"></line><line x1="1" y1="8.5" x2="6" y2="8.5" stroke-width="1.3"></line></svg></button> <button id="btnValignMiddle" class="tool-btn !w-6 !h-6"><svg width="10" height="12" viewBox="0 0 10 12" fill="none" stroke="currentColor" stroke-linecap="round"><line x1="1" y1="2.5" x2="8" y2="2.5" stroke-width="1.3"></line><line x1="1" y1="6" x2="9" y2="6" stroke-width="2"></line><line x1="1" y1="9.5" x2="6" y2="9.5" stroke-width="1.3"></line></svg></button> <button id="btnValignBottom" class="tool-btn !w-6 !h-6"><svg width="10" height="12" viewBox="0 0 10 12" fill="none" stroke="currentColor" stroke-linecap="round"><line x1="1" y1="3.5" x2="8" y2="3.5" stroke-width="1.3"></line><line x1="1" y1="7" x2="6" y2="7" stroke-width="1.3"></line><line x1="1" y1="10.5" x2="9" y2="10.5" stroke-width="2"></line></svg></button> <div class="panel-sep"></div> <div id="customShapeLabelPlacementControls" class="hidden"><button class="tool-btn !w-7 !h-6 font-mono text-[10px]" data-label-placement="above">T↑</button> <button class="tool-btn !w-7 !h-6 font-mono text-[10px]" data-label-placement="below">T↓</button> <button class="tool-btn !w-7 !h-6 font-mono text-[10px]" data-label-placement="left">←T</button> <button class="tool-btn !w-7 !h-6 font-mono text-[10px]" data-label-placement="right">T→</button> <button class="tool-btn !w-7 !h-6 font-mono text-[10px]" data-label-placement="center">T□</button> <div class="panel-sep"></div></div> <button id="btnZOrderBack" class="tool-btn !w-7 !h-6"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><rect x="1" y="5" width="8" height="8" rx="1"></rect><rect x="5" y="1" width="8" height="8" rx="1" stroke-opacity="0.35"></rect></svg></button> <button id="btnZOrderFront" class="tool-btn !w-7 !h-6"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><rect x="1" y="5" width="8" height="8" rx="1" stroke-opacity="0.35"></rect><rect x="5" y="1" width="8" height="8" rx="1"></rect></svg></button> <div class="panel-sep"></div> <button id="btnStampColor" class="tool-btn !w-7 !h-6"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M7 2 C7 2 3 6.5 3 9 a4 4 0 0 0 8 0 C11 6.5 7 2 7 2 Z" fill="currentColor" fill-opacity="0.25"></path></svg></button> <button id="btnStampFontSize" class="tool-btn !w-7 !h-6 font-mono text-xs font-bold">Aa</button> <button id="btnStampSize" class="tool-btn !w-7 !h-6"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="4" width="6" height="6" rx="0.8" fill="currentColor" fill-opacity="0.25"></rect><path d="M10 2 L12 2 L12 4"></path><path d="M12 2 L9 5"></path><path d="M10 12 L12 12 L12 10"></path><path d="M12 12 L9 9"></path></svg></button> <div class="panel-sep"></div> <button id="btnRotateCCW" class="tool-btn !w-7 !h-6" style="font-size:15px; line-height:1;">↺</button> <button id="btnRotateCW" class="tool-btn !w-7 !h-6" style="font-size:15px; line-height:1;">↻</button> <div class="panel-sep"></div> <button id="btnCopyPng" class="tool-btn !h-6 px-1.5 font-mono text-xs font-semibold flex items-center gap-0.5"><svg width="10" height="10" viewBox="0 0 10 10" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="7" x2="5" y2="1"></line><polyline points="2,4 5,1 8,4"></polyline><line x1="1" y1="9" x2="9" y2="9"></line></svg> PNG</button> <div class="panel-sep"></div> <button id="btnGroup" class="tool-btn !w-8 !h-7"><svg width="22" height="14" viewBox="0 0 22 14" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"><rect x="0.7" y="1" width="20.6" height="12" rx="2" stroke-dasharray="2.5,1.5"></rect><rect x="4" y="4.5" width="3" height="5" rx="1" fill="currentColor"></rect><rect x="15" y="4.5" width="3" height="5" rx="1" fill="currentColor"></rect></svg></button> <button id="btnUngroup" class="tool-btn !w-8 !h-7"><svg width="26" height="14" viewBox="0 0 26 14" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"><rect x="0.7" y="1" width="9" height="12" rx="2" stroke-dasharray="2.5,1.5"></rect><rect x="3" y="4.5" width="3" height="5" rx="1" fill="currentColor"></rect><rect x="16.3" y="1" width="9" height="12" rx="2" stroke-dasharray="2.5,1.5"></rect><rect x="19" y="4.5" width="3" height="5" rx="1" fill="currentColor"></rect></svg></button> <div class="panel-sep"></div> <button id="btnSaveShapeDefault" class="tool-btn !w-7 !h-6"><svg width="14" height="14" viewBox="0 0 16 16" fill="currentColor"><path d="M8 4.754a3.246 3.246 0 1 0 0 6.492 3.246 3.246 0 0 0 0-6.492M5.754 8a2.246 2.246 0 1 1 4.492 0 2.246 2.246 0 0 1-4.492 0"></path><path d="M9.796 1.343c-.527-1.79-3.065-1.79-3.592 0l-.094.319a.873.873 0 0 1-1.255.52l-.292-.16c-1.64-.892-3.433.902-2.54 2.541l.159.292a.873.873 0 0 1-.52 1.255l-.319.094c-1.79.527-1.79 3.065 0 3.592l.319.094a.873.873 0 0 1 .52 1.255l-.16.292c-.892 1.64.901 3.434 2.541 2.54l.292-.159a.873.873 0 0 1 1.255.52l.094.319c.527 1.79 3.065 1.79 3.592 0l.094-.319a.873.873 0 0 1 1.255-.52l.292.16c1.64.893 3.434-.902 2.54-2.541l-.159-.292a.873.873 0 0 1 .52-1.255l.319-.094c1.79-.527 1.79-3.065 0-3.592l-.319-.094a.873.873 0 0 1-.52-1.255l.16-.292c.893-1.64-.902-3.433-2.541-2.54l-.292.159a.873.873 0 0 1-1.255-.52zm-2.633.283c.246-.835 1.428-.835 1.674 0l.094.319a1.873 1.873 0 0 0 2.693 1.115l.291-.16c.764-.415 1.6.42 1.184 1.185l-.159.292a1.873 1.873 0 0 0 1.116 2.692l.318.094c.835.246.835 1.428 0 1.674l-.319.094a1.873 1.873 0 0 0-1.115 2.693l.16.291c.415.764-.42 1.6-1.185 1.184l-.291-.159a1.873 1.873 0 0 0-2.693 1.116l-.094.318c-.246.835-1.428.835-1.674 0l-.094-.319a1.873 1.873 0 0 0-2.692-1.115l-.292.16c-.764.415-1.6-.42-1.184-1.185l.159-.291A1.873 1.873 0 0 0 1.945 8.93l-.319-.094c-.835-.246-.835-1.428 0-1.674l.319-.094A1.873 1.873 0 0 0 3.06 4.474l-.16-.292c-.415-.764.42-1.6 1.185-1.184l.292.159a1.873 1.873 0 0 0 2.692-1.115z"></path></svg></button></div></div> <div id="linkPanel" class="float-panel hidden" style="min-width:260px; flex-direction:column; align-items:stretch; gap:0.5rem; padding:0.75rem;"><div class="text-xs font-semibold text-gray-500 dark:text-gray-400 mb-1"> </div> <label class="flex items-center gap-2 text-xs cursor-pointer"><input type="radio" name="linkType" id="linkTypeUrl" value="url" class="accent-orange-500"/> <span> </span></label> <div id="linkUrlRow"><input id="linkUrlInput" type="url" class="w-full text-xs border border-gray-300 dark:border-gray-600 rounded px-2 py-1 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-1 focus:ring-orange-400"/></div> <label class="flex items-center gap-2 text-xs cursor-pointer"><input type="radio" name="linkType" id="linkTypeDiagram" value="diagram" class="accent-orange-500"/> <span> </span></label> <div id="linkDiagramRow" class="hidden"><select id="linkDiagramSelect" class="w-full text-xs border border-gray-300 dark:border-gray-600 rounded px-2 py-1 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-1 focus:ring-orange-400"></select></div> <label class="flex items-center gap-2 text-xs cursor-pointer"><input type="radio" name="linkType" id="linkTypeNew" value="new" class="accent-orange-500"/> <span> </span></label> <div id="linkNewRow" class="hidden"><input id="linkNewName" type="text" class="w-full text-xs border border-gray-300 dark:border-gray-600 rounded px-2 py-1 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-1 focus:ring-orange-400"/></div> <div class="flex gap-1 mt-1"><button id="btnLinkSave" class="flex-1 text-xs bg-orange-500 hover:bg-orange-600 text-white rounded px-2 py-1"> </button> <button id="btnLinkRemove" class="text-xs border border-gray-300 dark:border-gray-600 rounded px-2 py-1 hover:bg-red-50 dark:hover:bg-red-900/20 hover:text-red-600"> </button> <button id="btnLinkCancel" class="text-xs border border-gray-300 dark:border-gray-600 rounded px-2 py-1 hover:bg-gray-100 dark:hover:bg-gray-700">✕</button></div></div> <div id="edgePanel" class="float-panel hidden"><button id="btnEdgeLock" class="tool-btn !w-6 !h-6 text-sm">🔒</button> <div class="panel-sep"></div> <div id="edgePanelControls" class="contents"><button id="edgeBtnNone" class="tool-btn !w-7 !h-6 font-mono text-xs">—</button> <button id="edgeBtnFrom" class="tool-btn !w-7 !h-6 text-xs">←</button> <button id="edgeBtnTo" class="tool-btn !w-7 !h-6 text-xs">→</button> <button id="edgeBtnBoth" class="tool-btn !w-8 !h-6 text-xs">←→</button> <div class="panel-sep"></div> <button id="edgeBtnSolid" class="tool-btn !w-8 !h-6"><svg width="22" height="4" viewBox="0 0 22 4"><line x1="1" y1="2" x2="21" y2="2" stroke="currentColor" stroke-width="2" stroke-linecap="round"></line></svg></button> <button id="edgeBtnDashed" class="tool-btn !w-8 !h-6"><svg width="22" height="4" viewBox="0 0 22 4"><line x1="1" y1="2" x2="21" y2="2" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-dasharray="4,3"></line></svg></button> <div class="panel-sep"></div> <button id="btnEdgeFontDecrease" class="tool-btn !w-8 !h-6" style="font-size: 10px">Aa−</button> <span id="edgeFontSizeValue" class="inline-flex items-center justify-center min-w-[2.25rem] h-6 px-1 text-[11px] font-mono text-gray-700 dark:text-gray-200 border border-gray-300 dark:border-gray-600 rounded bg-white/80 dark:bg-gray-800/80">11</span> <button id="btnEdgeFontIncrease" class="tool-btn !w-8 !h-6" style="font-size: 10px">Aa+</button> <div class="panel-sep"></div> <button id="btnEdgeLabelEdit" class="tool-btn !w-6 !h-6">✎</button> <button id="btnEdgeLabelWidthReset" class="tool-btn !w-6 !h-6 text-xs">↔</button> <div class="panel-sep"></div> <button id="btnEdgeLabelRotateCCW" class="tool-btn !w-7 !h-6 text-sm">↺</button> <button id="btnEdgeLabelRotateCW" class="tool-btn !w-7 !h-6 text-sm">↻</button> <div class="panel-sep"></div> <button id="btnEdgeLabelOffsetLeft" class="tool-btn !w-6 !h-6 text-sm">←</button> <button id="btnEdgeLabelOffsetRight" class="tool-btn !w-6 !h-6 text-sm">→</button> <button id="btnEdgeLabelOffsetUp" class="tool-btn !w-6 !h-6 text-sm">↑</button> <button id="btnEdgeLabelOffsetDown" class="tool-btn !w-6 !h-6 text-sm">↓</button> <button id="btnEdgeLabelOffsetReset" class="tool-btn !w-6 !h-6 text-xs">⊙</button> <div class="panel-sep"></div> <button id="btnEdgeWidthDecrease" class="tool-btn !w-7 !h-6" style="font-size:10px">W−</button> <button id="btnEdgeWidthIncrease" class="tool-btn !w-7 !h-6" style="font-size:10px">W+</button> <div class="panel-sep"></div> <button id="edgeColorSwatch" style="width:1.5rem;height:1.5rem;border-radius:0.25rem;border:2px solid #a8a29e;background:#a8a29e;cursor:pointer;flex-shrink:0;"></button> <div class="panel-sep"></div> <button id="btnEdgeClearPorts" class="tool-btn !w-8 !h-6 text-xs">⊗</button> <div class="panel-sep"></div> <button id="btnSaveEdgeDefault" class="tool-btn !w-7 !h-6"><svg width="14" height="14" viewBox="0 0 16 16" fill="currentColor"><path d="M8 4.754a3.246 3.246 0 1 0 0 6.492 3.246 3.246 0 0 0 0-6.492M5.754 8a2.246 2.246 0 1 1 4.492 0 2.246 2.246 0 0 1-4.492 0"></path><path d="M9.796 1.343c-.527-1.79-3.065-1.79-3.592 0l-.094.319a.873.873 0 0 1-1.255.52l-.292-.16c-1.64-.892-3.433.902-2.54 2.541l.159.292a.873.873 0 0 1-.52 1.255l-.319.094c-1.79.527-1.79 3.065 0 3.592l.319.094a.873.873 0 0 1 .52 1.255l-.16.292c-.892 1.64.901 3.434 2.541 2.54l.292-.159a.873.873 0 0 1 1.255.52l.094.319c.527 1.79 3.065 1.79 3.592 0l.094-.319a.873.873 0 0 1 1.255-.52l.292.16c1.64.893 3.434-.902 2.54-2.541l-.159-.292a.873.873 0 0 1 .52-1.255l.319-.094c1.79-.527 1.79-3.065 0-3.592l-.319-.094a.873.873 0 0 1-.52-1.255l.16-.292c.893-1.64-.902-3.433-2.541-2.54l-.292.159a.873.873 0 0 1-1.255-.52zm-2.633.283c.246-.835 1.428-.835 1.674 0l.094.319a1.873 1.873 0 0 0 2.693 1.115l.291-.16c.764-.415 1.6.42 1.184 1.185l-.159.292a1.873 1.873 0 0 0 1.116 2.692l.318.094c.835.246.835 1.428 0 1.674l-.319.094a1.873 1.873 0 0 0-1.115 2.693l.16.291c.415.764-.42 1.6-1.185 1.184l-.291-.159a1.873 1.873 0 0 0-2.693 1.116l-.094.318c-.246.835-1.428.835-1.674 0l-.094-.319a1.873 1.873 0 0 0-2.692-1.115l-.292.16c-.764.415-1.6-.42-1.184-1.185l.159-.291A1.873 1.873 0 0 0 1.945 8.93l-.319-.094c-.835-.246-.835-1.428 0-1.674l.319-.094A1.873 1.873 0 0 0 3.06 4.474l-.16-.292c-.415-.764.42-1.6 1.185-1.184l.292.159a1.873 1.873 0 0 0 2.692-1.115z"></path></svg></button></div></div> <textarea id="labelInput" class="hidden" rows="1"></textarea> <div id="emptyState" class="absolute inset-0 flex flex-col items-center justify-center text-gray-400 dark:text-gray-600 pointer-events-none select-none"><svg width="52" height="44" viewBox="0 0 52 44" fill="none" stroke="currentColor" stroke-width="1.5" class="mb-3 opacity-50"><rect x="2" y="4" width="18" height="12" rx="2"></rect><rect x="32" y="28" width="18" height="12" rx="2"></rect><line x1="20" y1="10" x2="32" y2="34" stroke-dasharray="4,3"></line><rect x="17" y="16" width="18" height="12" rx="2"></rect><line x1="26" y1="16" x2="26" y2="10" stroke-dasharray="4,3"></line></svg> <p class="text-sm"> </p></div></div></div> <div id="toastContainer"></div> <div id="imageNameModal" style="display:none;position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,0.5);" class="flex items-center justify-center"><div class="bg-white dark:bg-gray-800 rounded-xl shadow-2xl p-6 w-80 flex flex-col gap-3"><p class="text-sm font-semibold text-gray-700 dark:text-gray-200"> </p> <p class="text-xs text-gray-400 dark:text-gray-500">Lettres, chiffres, <code class="bg-gray-100 dark:bg-gray-700 px-0.5 rounded">_</code> et <code class="bg-gray-100 dark:bg-gray-700 px-0.5 rounded">-</code> uniquement.
140
140
  Laisser vide pour un nom automatique.</p> <div class="flex items-center gap-1"><input id="imageNameInput" type="text" autocomplete="off" spellcheck="false" class="flex-1 rounded border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700
141
141
  text-gray-900 dark:text-gray-100 text-sm px-2 py-1 outline-none focus:ring-2 focus:ring-blue-400"/> <span class="text-xs text-gray-400 dark:text-gray-500 whitespace-nowrap">.png</span></div> <p id="imageNameError" class="text-xs text-red-500 hidden"> </p> <div class="flex gap-2 justify-end"><button id="imageNameCancel" class="px-3 py-1 text-xs rounded border border-gray-300 dark:border-gray-600
142
- text-gray-600 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700"> </button> <button id="imageNameConfirm" class="px-3 py-1 text-xs rounded bg-blue-500 text-white hover:bg-blue-600"> </button></div></div></div></div>`);function fg(e,t){Ke(t,!0),Vi(()=>{let e;return(async()=>{let t=`en`;try{t=(await fetch(`/api/config`).then(e=>e.json())).language||`en`}catch{}await fa(t);let{initDiagram:r}=await ug(async()=>{let{initDiagram:e}=await import(`./main-DmBPi0xy.js`);return{initDiagram:e}},[]);e=r();let i=document.getElementById(`sidebar`),a=parseInt(localStorage.getItem(n)||``,10);i&&Number.isFinite(a)&&(i.style.width=a+`px`)})(),()=>e?.()});let n=`ld-diagram-sidebar-w`,r=F(!1);function i(e){e.preventDefault();let t=document.getElementById(`sidebar`);if(!t)return;let i=e.clientX,a=t.getBoundingClientRect().width;I(r,!0),t.style.transition=`none`,document.body.style.cursor=`col-resize`,document.body.style.userSelect=`none`;let o=e=>{let n=Math.max(160,Math.min(480,a+e.clientX-i));t.style.width=n+`px`},s=()=>{document.removeEventListener(`mousemove`,o),document.removeEventListener(`mouseup`,s),document.body.style.cursor=``,document.body.style.userSelect=``,I(r,!1),t.style.transition=``;try{localStorage.setItem(n,String(parseInt(t.style.width,10)))}catch{}};document.addEventListener(`mousemove`,o),document.addEventListener(`mouseup`,s)}var a=dg(),o=R(a),s=R(o),c=R(s,!0);M(s);var l=B(s,4),u=B(l,4),d=B(u,2),f=B(d,4),p=B(f,2),m=B(p,2),h=B(m,2),g=B(h,2),_=B(g,2),v=B(_,2),y=B(v,2),b=B(y,2),x=B(b,4),S=B(x,4),C=B(S,4),w=B(C,2),T=B(w,2),E=B(T,2),D=B(E,2),ee=B(D,2),te=B(ee,4),ne=B(te,4),O=B(ne,4),re=B(O,2),ie=B(re,8),ae=B(ie,4),oe=B(ae,4),se=R(oe),ce=R(se,!0);M(se),M(oe),M(o);var le=B(o,2),ue=R(le),de=R(ue),fe=R(de),pe=R(fe,!0);M(fe);var me=B(fe,2),he=R(me,!0);M(me),M(de),Fe(2),M(ue);var ge=B(ue,2),_e=B(ge,2),ve=B(R(_e),10),ye=B(R(ve),8),be=B(ye,2);M(ve);var xe=B(ve,2),Se=R(xe),Ce=R(Se),we=R(Ce,!0);M(Ce);var Te=B(Ce,2);M(Se),Fe(2),M(xe);var Ee=B(xe,2),k=R(Ee),De=B(k,4),Oe=R(De),ke=B(Oe,4),Ae=B(ke,4),je=B(Ae,2),A=B(je,4),Me=B(A,2),j=B(Me,2),Ne=B(j,4),Pe=B(Ne,2),Ie=B(Pe,2),Le=B(Ie,4),Re=B(Le,2),ze=B(Re,2),Be=B(ze,4),Ve=R(Be),He=B(Ve,2),Ue=B(He,2),We=B(Ue,2),Ge=B(We,2);Fe(2),M(Be);var Je=B(Be,2),Ye=B(Je,2),Xe=B(Ye,4),Ze=B(Xe,2),Qe=B(Ze,2),$e=B(Qe,4),et=B($e,2),tt=B(et,4),nt=B(tt,4),rt=B(nt,2),it=B(rt,4);M(De),M(Ee);var at=B(Ee,2),ot=R(at),st=R(ot,!0);M(ot);var ct=B(ot,2),lt=B(R(ct),2),ut=R(lt,!0);M(lt),M(ct);var N=B(ct,2),dt=R(N);M(N);var ft=B(N,2),pt=B(R(ft),2),mt=R(pt,!0);M(pt),M(ft);var ht=B(ft,4),gt=B(R(ht),2),_t=R(gt,!0);M(gt),M(ht);var vt=B(ht,2),yt=R(vt);M(vt);var bt=B(vt,2),xt=R(bt),St=R(xt,!0);M(xt);var Ct=B(xt,2),wt=R(Ct,!0);M(Ct),Fe(2),M(bt),M(at);var Tt=B(at,2),Et=R(Tt),Dt=B(Et,4),Ot=R(Dt),kt=B(Ot,2),At=B(kt,2),jt=B(At,2),Mt=B(jt,4),Nt=B(Mt,2),Pt=B(Nt,4),Ft=B(Pt,2),It=B(Ft,2),Lt=B(It,4),Rt=B(Lt,2),zt=B(Rt,4),Bt=B(zt,2),P=B(Bt,4),Vt=B(P,2),Ht=B(Vt,2),Ut=B(Ht,2),Wt=B(Ut,2),Gt=B(Wt,4),Kt=B(Gt,2),qt=B(Kt,4),Jt=B(qt,4),Yt=B(Jt,4);M(Dt),M(Tt);var Xt=B(Tt,2),Zt=B(Xt,2),Qt=B(R(Zt),2),$t=R(Qt,!0);M(Qt),M(Zt),M(_e),M(le);var en=B(le,4),tn=R(en),L=R(tn),nn=R(L,!0);M(L);var rn=B(L,4),an=R(rn);Fe(2),M(rn);var on=B(rn,2),sn=R(on,!0);M(on);var cn=B(on,2),ln=R(cn),un=R(ln,!0);M(ln);var dn=B(ln,2),fn=R(dn,!0);M(dn),M(cn),M(tn),M(en),M(a),V((e,t,n,i,a,o,s,oe,se,le,ue,de,fe,me,_e,ve,xe,Se,Ce,Ee,De,M,Fe,Be,Ke,qe,at,ot,ct,lt,N,ft,pt,ht,gt,vt,bt,xt,Ct,Tt,Dt,F,Zt,I,Qt,en,tn,L,rn,on,cn,ln,dn,R,z,B,pn,mn,hn,gn,_n,vn,yn,bn,xn,Sn,Cn,wn,Tn,En,Dn,On,kn,An,jn,Mn,Nn,Pn,V,Fn,In,Ln,Rn,zn,Bn,Vn,Hn,Un,Wn,Gn,Kn,qn,Jn,Yn,Xn,Zn,Qn,$n,er,tr,nr,rr,ir)=>{K(c,e),J(l,`title`,t),J(u,`title`,n),J(d,`title`,i),J(f,`title`,a),J(p,`title`,o),J(m,`title`,s),J(h,`title`,oe),J(g,`title`,se),J(_,`title`,le),J(v,`title`,ue),J(y,`title`,de),J(b,`title`,fe),J(x,`title`,me),J(S,`title`,_e),J(C,`title`,ve),J(w,`title`,xe),J(T,`title`,Se),J(E,`title`,Ce),J(D,`title`,Ee),J(ee,`title`,De),J(te,`placeholder`,M),J(ne,`title`,Fe),J(O,`title`,Be),J(re,`title`,Ke),J(ie,`title`,qe),J(ae,`title`,at),K(ce,ot),K(pe,ct),K(he,lt),hi(ge,1,`w-1 shrink-0 cursor-col-resize select-none transition-colors ${H(r)?`bg-blue-500/60`:`bg-transparent hover:bg-blue-500/40`}`),J(ye,`title`,N),J(be,`title`,ft),K(we,pt),J(Te,`title`,ht),J(k,`title`,gt),J(Oe,`title`,vt),J(ke,`title`,bt),J(Ae,`title`,xt),J(je,`title`,Ct),J(A,`title`,Tt),J(Me,`title`,Dt),J(j,`title`,F),J(Ne,`title`,Zt),J(Pe,`title`,I),J(Ie,`title`,Qt),J(Le,`title`,en),J(Re,`title`,tn),J(ze,`title`,L),J(Ve,`title`,rn),J(He,`title`,on),J(Ue,`title`,cn),J(We,`title`,ln),J(Ge,`title`,dn),J(Je,`title`,R),J(Ye,`title`,z),J(Xe,`title`,B),J(Ze,`title`,pn),J(Qe,`title`,mn),J($e,`title`,hn),J(et,`title`,gn),J(tt,`title`,_n),J(nt,`title`,vn),J(rt,`title`,yn),J(it,`title`,bn),K(st,xn),K(ut,Sn),J(dt,`placeholder`,Cn),K(mt,wn),K(_t,Tn),J(yt,`placeholder`,En),K(St,Dn),K(wt,On),J(Et,`title`,kn),J(Ot,`title`,An),J(kt,`title`,jn),J(At,`title`,Mn),J(jt,`title`,Nn),J(Mt,`title`,Pn),J(Nt,`title`,V),J(Pt,`title`,Fn),J(Ft,`title`,In),J(It,`title`,Ln),J(Lt,`title`,Rn),J(Rt,`title`,zn),J(zt,`title`,Bn),J(Bt,`title`,Vn),J(P,`title`,Hn),J(Vt,`title`,Un),J(Ht,`title`,Wn),J(Ut,`title`,Gn),J(Wt,`title`,Kn),J(Gt,`title`,qn),J(Kt,`title`,Jn),J(qt,`title`,Yn),J(Jt,`title`,Xn),J(Yt,`title`,Zn),J(Xt,`placeholder`,Qn),K($t,$n),K(nn,er),J(an,`placeholder`,tr),K(sn,nr),K(un,rr),K(fn,ir)},[()=>Y(`diagram.back_btn`),()=>Y(`diagram.diagrams_list_title`),()=>Y(`diagram.toolbar.copy_mcp_id`),()=>Y(`diagram.toolbar.select`),()=>Y(`diagram.toolbar.box`),()=>Y(`diagram.toolbar.ellipse`),()=>Y(`diagram.toolbar.database`),()=>Y(`diagram.toolbar.circle`),()=>Y(`diagram.toolbar.actor`),()=>Y(`diagram.toolbar.postit`),()=>Y(`diagram.toolbar.text_free`),()=>Y(`diagram.toolbar.image`),()=>Y(`diagram.toolbar.shape_editor`),()=>Y(`diagram.toolbar.arrow`),()=>Y(`diagram.toolbar.delete`),()=>Y(`diagram.toolbar.defaults`),()=>Y(`diagram.toolbar.align_guides`),()=>Y(`diagram.toolbar.grid`),()=>Y(`diagram.toolbar.edge_style`),()=>Y(`diagram.toolbar.evidence_mode`),()=>Y(`diagram.toolbar.resize_corner`),()=>Y(`diagram.toolbar.title_placeholder`),()=>Y(`diagram.toolbar.zoom_out`),()=>Y(`diagram.toolbar.zoom_in`),()=>Y(`diagram.toolbar.fit`),()=>Y(`diagram.toolbar.debug`),()=>Y(`diagram.toolbar.export_drawio`),()=>Y(`diagram.toolbar.save`),()=>Y(`diagram.sidebar.title`),()=>Y(`diagram.sidebar.new_btn`),()=>Y(`diagram.selection.rotate_shape`),()=>Y(`diagram.selection.rotate_text`),()=>Y(`diagram.evidence.panel_title`),()=>Y(`diagram.evidence.close`),()=>Y(`diagram.node_panel.lock`),()=>Y(`diagram.node_panel.color`),()=>Y(`diagram.node_panel.bg_opacity`),()=>Y(`diagram.node_panel.edit_label`),()=>Y(`diagram.node_panel.edit_link`),()=>Y(`diagram.node_panel.font_decrease`),()=>Y(`diagram.node_panel.font_size_value`),()=>Y(`diagram.node_panel.font_increase`),()=>Y(`diagram.node_panel.align_left`),()=>Y(`diagram.node_panel.align_center`),()=>Y(`diagram.node_panel.align_right`),()=>Y(`diagram.node_panel.align_top`),()=>Y(`diagram.node_panel.align_middle`),()=>Y(`diagram.node_panel.align_bottom`),()=>Y(`diagram.node_panel.custom_label_above`),()=>Y(`diagram.node_panel.custom_label_below`),()=>Y(`diagram.node_panel.custom_label_left`),()=>Y(`diagram.node_panel.custom_label_right`),()=>Y(`diagram.node_panel.custom_label_center`),()=>Y(`diagram.node_panel.send_back`),()=>Y(`diagram.node_panel.bring_front`),()=>Y(`diagram.node_panel.stamp_color`),()=>Y(`diagram.node_panel.stamp_font`),()=>Y(`diagram.node_panel.stamp_size`),()=>Y(`diagram.node_panel.rotate_ccw`),()=>Y(`diagram.node_panel.rotate_cw`),()=>Y(`diagram.node_panel.copy_png`),()=>Y(`diagram.node_panel.group`),()=>Y(`diagram.node_panel.ungroup`),()=>Y(`diagram.node_panel.save_as_default`),()=>Y(`diagram.link_panel.title`),()=>Y(`diagram.link_panel.external`),()=>Y(`diagram.link_panel.url_placeholder`),()=>Y(`diagram.link_panel.existing_diagram`),()=>Y(`diagram.link_panel.new_diagram`),()=>Y(`diagram.link_panel.diagram_name_placeholder`),()=>Y(`diagram.link_panel.save_btn`),()=>Y(`diagram.link_panel.remove_btn`),()=>Y(`diagram.edge_panel.lock`),()=>Y(`diagram.edge_panel.no_arrow`),()=>Y(`diagram.edge_panel.arrow_from`),()=>Y(`diagram.edge_panel.arrow_to`),()=>Y(`diagram.edge_panel.arrow_both`),()=>Y(`diagram.edge_panel.solid`),()=>Y(`diagram.edge_panel.dashed`),()=>Y(`diagram.edge_panel.font_decrease`),()=>Y(`diagram.edge_panel.font_size_value`),()=>Y(`diagram.edge_panel.font_increase`),()=>Y(`diagram.edge_panel.edit_label`),()=>Y(`diagram.edge_panel.reset_label_width`),()=>Y(`diagram.edge_panel.rotate_label_ccw`),()=>Y(`diagram.edge_panel.rotate_label_cw`),()=>Y(`diagram.edge_panel.offset_label_left`),()=>Y(`diagram.edge_panel.offset_label_right`),()=>Y(`diagram.edge_panel.offset_label_up`),()=>Y(`diagram.edge_panel.offset_label_down`),()=>Y(`diagram.edge_panel.offset_label_reset`),()=>Y(`diagram.edge_panel.width_decrease`),()=>Y(`diagram.edge_panel.width_increase`),()=>Y(`diagram.edge_panel.color`),()=>Y(`diagram.edge_panel.clear_ports`),()=>Y(`diagram.edge_panel.save_as_default`),()=>Y(`diagram.label_input.placeholder`),()=>Y(`diagram.empty_state`),()=>Y(`diagram.image_modal.title`),()=>Y(`diagram.image_modal.placeholder`),()=>Y(`diagram.image_modal.error_chars`),()=>Y(`diagram.image_modal.cancel_btn`),()=>Y(`diagram.image_modal.paste_btn`)]),U(`click`,s,()=>history.back()),U(`mousedown`,ge,i),G(e,a),qe()}Nr([`click`,`mousedown`]),Ue();var pg={network:null,nodes:null,edges:null,diagrams:[],currentDiagramId:null,currentTool:`select`,pendingShape:`box`,selectedNodeIds:[],selectedEdgeIds:[],alignGuides:!0,gridEnabled:!0,debugMode:!1,isDirty:!1,sidebarOpen:!0,editingNodeId:null,editingEdgeId:null,resizeDrag:null,rotateDrag:null,labelRotateDrag:null,activeStamp:null,stampTargetIds:[],clipboard:null,canonicalOrder:[],edgesStraight:!1,resizeSymmetric:!1,nodeColorOverrides:{},customShapeLibraries:[],customShapeDefs:new Map,edgeLabelCanvasPos:{},edgeLabelBBox:{},freeArrowFirstPoint:null,exportingPng:!1,evidenceMode:!1};function mg(){pg.isDirty=!0,document.getElementById(`btnSave`).disabled=!1}var hg=`custom-shape`,gg=`custom-shape:`,_g=[{id:`N`,x:.5,y:0},{id:`NE`,x:1,y:0},{id:`E`,x:1,y:.5},{id:`SE`,x:1,y:1},{id:`S`,x:.5,y:1},{id:`SW`,x:0,y:1},{id:`W`,x:0,y:.5},{id:`NW`,x:0,y:0}];function vg(e){return typeof e==`string`&&e.startsWith(`custom-shape:`)}function yg(e){return vg(e)?e.slice(13):null}function bg(e){return e&&pg.customShapeDefs&&pg.customShapeDefs.get(e)||null}function xg(e){let t=bg(e);return[t&&t.width||65,t&&t.height||65]}function Sg(e){let t=bg(e);return t&&Array.isArray(t.anchors)&&t.anchors.length?t.anchors:_g}function Cg(e){let t=bg(e);return t&&[`center`,`below`,`above`,`right`,`left`].includes(t.labelPlacement)?t.labelPlacement:`below`}async function wg(){try{let e=await fetch(`/api/shape-libraries`);if(!e.ok)throw Error(`shape libraries unavailable`);let t=await e.json(),n=Array.isArray(t.libraries)?t.libraries:[];pg.customShapeLibraries=n,pg.customShapeDefs=new Map,n.forEach(e=>{(e.shapes||[]).forEach(e=>pg.customShapeDefs.set(e.id,e))})}catch{pg.customShapeLibraries=[],pg.customShapeDefs=new Map}}function Tg(){let e=document.getElementById(`customShapeBar`),t=document.getElementById(`customShapeBarBody`);if(!e||!t)return;t.innerHTML=``;let n=(pg.customShapeLibraries||[]).flatMap(e=>(e.shapes||[]).filter(e=>e.showInDiagram!==!1).map(t=>({...t,libraryName:e.name})));e.classList.toggle(`hidden`,n.length===0),n.forEach(e=>{let n=document.createElement(`button`);n.type=`button`,n.className=`custom-shape-btn`,n.title=`${e.libraryName||``}${e.libraryName?` · `:``}${e.name}`,n.dataset.customShapeId=e.id;let r=document.createElement(`img`);r.src=e.imageSrc,r.alt=``,r.draggable=!1,n.appendChild(r),n.addEventListener(`click`,()=>{window.dispatchEvent(new CustomEvent(`diagram:setTool`,{detail:{tool:`addNode`,shape:`${gg}${e.id}`}}))}),t.appendChild(n)})}function Eg(){let e={saveState:document.getElementById(`saveState`),librarySelect:document.getElementById(`librarySelect`),libraryName:document.getElementById(`libraryName`),shapeList:document.getElementById(`shapeList`),previewStage:document.getElementById(`previewStage`),previewImage:document.getElementById(`previewImage`),shapeName:document.getElementById(`shapeName`),imageFile:document.getElementById(`imageFile`),shapeWidth:document.getElementById(`shapeWidth`),shapeHeight:document.getElementById(`shapeHeight`),labelPlacement:document.getElementById(`labelPlacement`),shapeShowInDiagram:document.getElementById(`shapeShowInDiagram`),anchorList:document.getElementById(`anchorList`),anchorCount:document.getElementById(`anchorCount`)},t={libraries:[]},n=null,r=null,i=null,a=null,o=e=>`${e}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,6)}`,s=()=>t.libraries.find(e=>e.id===n)||null,c=()=>s()?.shapes.find(e=>e.id===r)||null,l=e=>Math.max(0,Math.min(1,e)),u=e=>[`below`,`above`,`right`,`left`,`center`].includes(e)?e:`below`,d=e=>String(e??``).replace(/[&<>"']/g,e=>({"&":`&amp;`,"<":`&lt;`,">":`&gt;`,'"':`&quot;`,"'":`&#39;`})[e]);function f(t){e.saveState.textContent=t,t&&setTimeout(()=>{e.saveState.textContent===t&&(e.saveState.textContent=``)},1800)}async function p(){t=await(await fetch(`/api/shape-libraries`)).json(),Array.isArray(t.libraries)||(t.libraries=[]),t.libraries.length||t.libraries.push({id:o(`lib`),name:`My shapes`,shapes:[]}),n=t.libraries[0].id,r=t.libraries[0].shapes[0]?.id||null,i=c()?structuredClone(c()):h(),g()}async function m(){t=await(await fetch(`/api/shape-libraries`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)})).json(),f(`Saved`)}function h(){return{id:o(`shape`),name:`New shape`,imageSrc:``,width:65,height:65,labelPlacement:`below`,showInDiagram:!0,anchors:structuredClone(_g)}}function g(){_(),v(),y()}function _(){e.librarySelect.innerHTML=``,t.libraries.forEach(t=>{let r=document.createElement(`option`);r.value=t.id,r.textContent=t.name,r.selected=t.id===n,e.librarySelect.appendChild(r)}),e.libraryName.value=s()?.name||``}function v(){let t=s();e.shapeList.innerHTML=``,(t?.shapes||[]).forEach(t=>{let n=document.createElement(`button`);n.type=`button`,n.className=`shape-item w-full flex items-center gap-2 px-2 py-1.5 rounded text-sm text-left hover:bg-gray-100 ${t.id===r?`active`:``}`;let a=document.createElement(`img`);a.src=t.imageSrc,a.alt=``,a.className=`w-6 h-6 object-contain shrink-0`;let o=document.createElement(`span`);o.className=`truncate`,o.textContent=t.name,n.append(a,o),n.addEventListener(`click`,()=>{r=t.id,i=structuredClone(t),g()}),e.shapeList.appendChild(n)}),t?.shapes?.length||(e.shapeList.innerHTML=`<p class="text-xs text-gray-400 px-2 py-2">No shape yet.</p>`)}function y(){i||=h(),e.previewStage.style.aspectRatio=`${Math.max(16,Number(i.width)||65)} / ${Math.max(16,Number(i.height)||65)}`,e.previewImage.src=i.imageSrc||``,e.previewImage.style.display=i.imageSrc?`block`:`none`,e.shapeName.value=i.name||``,e.shapeWidth.value=i.width||65,e.shapeHeight.value=i.height||65,e.labelPlacement.value=u(i.labelPlacement),e.shapeShowInDiagram.checked=i.showInDiagram!==!1,b()}function b(){e.previewStage.querySelectorAll(`.anchor-dot`).forEach(e=>e.remove()),e.anchorList.innerHTML=``;let t=i.anchors||[];e.anchorCount.textContent=`${t.length} anchor${t.length>1?`s`:``}`,t.forEach((t,n)=>{let r=document.createElement(`button`);r.type=`button`,r.className=`anchor-dot`,r.style.left=`${t.x*100}%`,r.style.top=`${t.y*100}%`,r.dataset.anchorId=t.id,r.innerHTML=`<span>${t.id}</span>`,r.addEventListener(`pointerdown`,e=>{e.preventDefault(),a=t.id,r.setPointerCapture(e.pointerId)}),e.previewStage.appendChild(r);let o=document.createElement(`div`);o.className=`grid grid-cols-[4.5rem_1fr_1fr_2rem] gap-2 items-center`,o.innerHTML=`
142
+ text-gray-600 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700"> </button> <button id="imageNameConfirm" class="px-3 py-1 text-xs rounded bg-blue-500 text-white hover:bg-blue-600"> </button></div></div></div></div>`);function fg(e,t){Ke(t,!0),Vi(()=>{let e;return(async()=>{let t=`en`;try{t=(await fetch(`/api/config`).then(e=>e.json())).language||`en`}catch{}await fa(t);let{initDiagram:r}=await ug(async()=>{let{initDiagram:e}=await import(`./main-c5eMrXS4.js`);return{initDiagram:e}},[]);e=r();let i=document.getElementById(`sidebar`),a=parseInt(localStorage.getItem(n)||``,10);i&&Number.isFinite(a)&&(i.style.width=a+`px`)})(),()=>e?.()});let n=`ld-diagram-sidebar-w`,r=F(!1);function i(e){e.preventDefault();let t=document.getElementById(`sidebar`);if(!t)return;let i=e.clientX,a=t.getBoundingClientRect().width;I(r,!0),t.style.transition=`none`,document.body.style.cursor=`col-resize`,document.body.style.userSelect=`none`;let o=e=>{let n=Math.max(160,Math.min(480,a+e.clientX-i));t.style.width=n+`px`},s=()=>{document.removeEventListener(`mousemove`,o),document.removeEventListener(`mouseup`,s),document.body.style.cursor=``,document.body.style.userSelect=``,I(r,!1),t.style.transition=``;try{localStorage.setItem(n,String(parseInt(t.style.width,10)))}catch{}};document.addEventListener(`mousemove`,o),document.addEventListener(`mouseup`,s)}var a=dg(),o=R(a),s=R(o),c=R(s,!0);M(s);var l=B(s,4),u=B(l,4),d=B(u,2),f=B(d,4),p=B(f,2),m=B(p,2),h=B(m,2),g=B(h,2),_=B(g,2),v=B(_,2),y=B(v,2),b=B(y,2),x=B(b,4),S=B(x,4),C=B(S,4),w=B(C,2),T=B(w,2),E=B(T,2),D=B(E,2),ee=B(D,2),te=B(ee,4),ne=B(te,4),O=B(ne,4),re=B(O,2),ie=B(re,8),ae=B(ie,4),oe=B(ae,4),se=R(oe),ce=R(se,!0);M(se),M(oe),M(o);var le=B(o,2),ue=R(le),de=R(ue),fe=R(de),pe=R(fe,!0);M(fe);var me=B(fe,2),he=R(me,!0);M(me),M(de),Fe(2),M(ue);var ge=B(ue,2),_e=B(ge,2),ve=B(R(_e),10),ye=B(R(ve),8),be=B(ye,2);M(ve);var xe=B(ve,2),Se=R(xe),Ce=R(Se),we=R(Ce,!0);M(Ce);var Te=B(Ce,2);M(Se),Fe(2),M(xe);var Ee=B(xe,2),k=R(Ee),De=B(k,4),Oe=R(De),ke=B(Oe,4),Ae=B(ke,4),je=B(Ae,2),A=B(je,4),Me=B(A,2),j=B(Me,2),Ne=B(j,4),Pe=B(Ne,2),Ie=B(Pe,2),Le=B(Ie,4),Re=B(Le,2),ze=B(Re,2),Be=B(ze,4),Ve=R(Be),He=B(Ve,2),Ue=B(He,2),We=B(Ue,2),Ge=B(We,2);Fe(2),M(Be);var Je=B(Be,2),Ye=B(Je,2),Xe=B(Ye,4),Ze=B(Xe,2),Qe=B(Ze,2),$e=B(Qe,4),et=B($e,2),tt=B(et,4),nt=B(tt,4),rt=B(nt,2),it=B(rt,4);M(De),M(Ee);var at=B(Ee,2),ot=R(at),st=R(ot,!0);M(ot);var ct=B(ot,2),lt=B(R(ct),2),ut=R(lt,!0);M(lt),M(ct);var N=B(ct,2),dt=R(N);M(N);var ft=B(N,2),pt=B(R(ft),2),mt=R(pt,!0);M(pt),M(ft);var ht=B(ft,4),gt=B(R(ht),2),_t=R(gt,!0);M(gt),M(ht);var vt=B(ht,2),yt=R(vt);M(vt);var bt=B(vt,2),xt=R(bt),St=R(xt,!0);M(xt);var Ct=B(xt,2),wt=R(Ct,!0);M(Ct),Fe(2),M(bt),M(at);var Tt=B(at,2),Et=R(Tt),Dt=B(Et,4),Ot=R(Dt),kt=B(Ot,2),At=B(kt,2),jt=B(At,2),Mt=B(jt,4),Nt=B(Mt,2),Pt=B(Nt,4),Ft=B(Pt,2),It=B(Ft,2),Lt=B(It,4),Rt=B(Lt,2),zt=B(Rt,4),Bt=B(zt,2),P=B(Bt,4),Vt=B(P,2),Ht=B(Vt,2),Ut=B(Ht,2),Wt=B(Ut,2),Gt=B(Wt,4),Kt=B(Gt,2),qt=B(Kt,4),Jt=B(qt,4),Yt=B(Jt,4);M(Dt),M(Tt);var Xt=B(Tt,2),Zt=B(Xt,2),Qt=B(R(Zt),2),$t=R(Qt,!0);M(Qt),M(Zt),M(_e),M(le);var en=B(le,4),tn=R(en),L=R(tn),nn=R(L,!0);M(L);var rn=B(L,4),an=R(rn);Fe(2),M(rn);var on=B(rn,2),sn=R(on,!0);M(on);var cn=B(on,2),ln=R(cn),un=R(ln,!0);M(ln);var dn=B(ln,2),fn=R(dn,!0);M(dn),M(cn),M(tn),M(en),M(a),V((e,t,n,i,a,o,s,oe,se,le,ue,de,fe,me,_e,ve,xe,Se,Ce,Ee,De,M,Fe,Be,Ke,qe,at,ot,ct,lt,N,ft,pt,ht,gt,vt,bt,xt,Ct,Tt,Dt,F,Zt,I,Qt,en,tn,L,rn,on,cn,ln,dn,R,z,B,pn,mn,hn,gn,_n,vn,yn,bn,xn,Sn,Cn,wn,Tn,En,Dn,On,kn,An,jn,Mn,Nn,Pn,V,Fn,In,Ln,Rn,zn,Bn,Vn,Hn,Un,Wn,Gn,Kn,qn,Jn,Yn,Xn,Zn,Qn,$n,er,tr,nr,rr,ir)=>{K(c,e),J(l,`title`,t),J(u,`title`,n),J(d,`title`,i),J(f,`title`,a),J(p,`title`,o),J(m,`title`,s),J(h,`title`,oe),J(g,`title`,se),J(_,`title`,le),J(v,`title`,ue),J(y,`title`,de),J(b,`title`,fe),J(x,`title`,me),J(S,`title`,_e),J(C,`title`,ve),J(w,`title`,xe),J(T,`title`,Se),J(E,`title`,Ce),J(D,`title`,Ee),J(ee,`title`,De),J(te,`placeholder`,M),J(ne,`title`,Fe),J(O,`title`,Be),J(re,`title`,Ke),J(ie,`title`,qe),J(ae,`title`,at),K(ce,ot),K(pe,ct),K(he,lt),hi(ge,1,`w-1 shrink-0 cursor-col-resize select-none transition-colors ${H(r)?`bg-blue-500/60`:`bg-transparent hover:bg-blue-500/40`}`),J(ye,`title`,N),J(be,`title`,ft),K(we,pt),J(Te,`title`,ht),J(k,`title`,gt),J(Oe,`title`,vt),J(ke,`title`,bt),J(Ae,`title`,xt),J(je,`title`,Ct),J(A,`title`,Tt),J(Me,`title`,Dt),J(j,`title`,F),J(Ne,`title`,Zt),J(Pe,`title`,I),J(Ie,`title`,Qt),J(Le,`title`,en),J(Re,`title`,tn),J(ze,`title`,L),J(Ve,`title`,rn),J(He,`title`,on),J(Ue,`title`,cn),J(We,`title`,ln),J(Ge,`title`,dn),J(Je,`title`,R),J(Ye,`title`,z),J(Xe,`title`,B),J(Ze,`title`,pn),J(Qe,`title`,mn),J($e,`title`,hn),J(et,`title`,gn),J(tt,`title`,_n),J(nt,`title`,vn),J(rt,`title`,yn),J(it,`title`,bn),K(st,xn),K(ut,Sn),J(dt,`placeholder`,Cn),K(mt,wn),K(_t,Tn),J(yt,`placeholder`,En),K(St,Dn),K(wt,On),J(Et,`title`,kn),J(Ot,`title`,An),J(kt,`title`,jn),J(At,`title`,Mn),J(jt,`title`,Nn),J(Mt,`title`,Pn),J(Nt,`title`,V),J(Pt,`title`,Fn),J(Ft,`title`,In),J(It,`title`,Ln),J(Lt,`title`,Rn),J(Rt,`title`,zn),J(zt,`title`,Bn),J(Bt,`title`,Vn),J(P,`title`,Hn),J(Vt,`title`,Un),J(Ht,`title`,Wn),J(Ut,`title`,Gn),J(Wt,`title`,Kn),J(Gt,`title`,qn),J(Kt,`title`,Jn),J(qt,`title`,Yn),J(Jt,`title`,Xn),J(Yt,`title`,Zn),J(Xt,`placeholder`,Qn),K($t,$n),K(nn,er),J(an,`placeholder`,tr),K(sn,nr),K(un,rr),K(fn,ir)},[()=>Y(`diagram.back_btn`),()=>Y(`diagram.diagrams_list_title`),()=>Y(`diagram.toolbar.copy_mcp_id`),()=>Y(`diagram.toolbar.select`),()=>Y(`diagram.toolbar.box`),()=>Y(`diagram.toolbar.ellipse`),()=>Y(`diagram.toolbar.database`),()=>Y(`diagram.toolbar.circle`),()=>Y(`diagram.toolbar.actor`),()=>Y(`diagram.toolbar.postit`),()=>Y(`diagram.toolbar.text_free`),()=>Y(`diagram.toolbar.image`),()=>Y(`diagram.toolbar.shape_editor`),()=>Y(`diagram.toolbar.arrow`),()=>Y(`diagram.toolbar.delete`),()=>Y(`diagram.toolbar.defaults`),()=>Y(`diagram.toolbar.align_guides`),()=>Y(`diagram.toolbar.grid`),()=>Y(`diagram.toolbar.edge_style`),()=>Y(`diagram.toolbar.evidence_mode`),()=>Y(`diagram.toolbar.resize_corner`),()=>Y(`diagram.toolbar.title_placeholder`),()=>Y(`diagram.toolbar.zoom_out`),()=>Y(`diagram.toolbar.zoom_in`),()=>Y(`diagram.toolbar.fit`),()=>Y(`diagram.toolbar.debug`),()=>Y(`diagram.toolbar.export_drawio`),()=>Y(`diagram.toolbar.save`),()=>Y(`diagram.sidebar.title`),()=>Y(`diagram.sidebar.new_btn`),()=>Y(`diagram.selection.rotate_shape`),()=>Y(`diagram.selection.rotate_text`),()=>Y(`diagram.evidence.panel_title`),()=>Y(`diagram.evidence.close`),()=>Y(`diagram.node_panel.lock`),()=>Y(`diagram.node_panel.color`),()=>Y(`diagram.node_panel.bg_opacity`),()=>Y(`diagram.node_panel.edit_label`),()=>Y(`diagram.node_panel.edit_link`),()=>Y(`diagram.node_panel.font_decrease`),()=>Y(`diagram.node_panel.font_size_value`),()=>Y(`diagram.node_panel.font_increase`),()=>Y(`diagram.node_panel.align_left`),()=>Y(`diagram.node_panel.align_center`),()=>Y(`diagram.node_panel.align_right`),()=>Y(`diagram.node_panel.align_top`),()=>Y(`diagram.node_panel.align_middle`),()=>Y(`diagram.node_panel.align_bottom`),()=>Y(`diagram.node_panel.custom_label_above`),()=>Y(`diagram.node_panel.custom_label_below`),()=>Y(`diagram.node_panel.custom_label_left`),()=>Y(`diagram.node_panel.custom_label_right`),()=>Y(`diagram.node_panel.custom_label_center`),()=>Y(`diagram.node_panel.send_back`),()=>Y(`diagram.node_panel.bring_front`),()=>Y(`diagram.node_panel.stamp_color`),()=>Y(`diagram.node_panel.stamp_font`),()=>Y(`diagram.node_panel.stamp_size`),()=>Y(`diagram.node_panel.rotate_ccw`),()=>Y(`diagram.node_panel.rotate_cw`),()=>Y(`diagram.node_panel.copy_png`),()=>Y(`diagram.node_panel.group`),()=>Y(`diagram.node_panel.ungroup`),()=>Y(`diagram.node_panel.save_as_default`),()=>Y(`diagram.link_panel.title`),()=>Y(`diagram.link_panel.external`),()=>Y(`diagram.link_panel.url_placeholder`),()=>Y(`diagram.link_panel.existing_diagram`),()=>Y(`diagram.link_panel.new_diagram`),()=>Y(`diagram.link_panel.diagram_name_placeholder`),()=>Y(`diagram.link_panel.save_btn`),()=>Y(`diagram.link_panel.remove_btn`),()=>Y(`diagram.edge_panel.lock`),()=>Y(`diagram.edge_panel.no_arrow`),()=>Y(`diagram.edge_panel.arrow_from`),()=>Y(`diagram.edge_panel.arrow_to`),()=>Y(`diagram.edge_panel.arrow_both`),()=>Y(`diagram.edge_panel.solid`),()=>Y(`diagram.edge_panel.dashed`),()=>Y(`diagram.edge_panel.font_decrease`),()=>Y(`diagram.edge_panel.font_size_value`),()=>Y(`diagram.edge_panel.font_increase`),()=>Y(`diagram.edge_panel.edit_label`),()=>Y(`diagram.edge_panel.reset_label_width`),()=>Y(`diagram.edge_panel.rotate_label_ccw`),()=>Y(`diagram.edge_panel.rotate_label_cw`),()=>Y(`diagram.edge_panel.offset_label_left`),()=>Y(`diagram.edge_panel.offset_label_right`),()=>Y(`diagram.edge_panel.offset_label_up`),()=>Y(`diagram.edge_panel.offset_label_down`),()=>Y(`diagram.edge_panel.offset_label_reset`),()=>Y(`diagram.edge_panel.width_decrease`),()=>Y(`diagram.edge_panel.width_increase`),()=>Y(`diagram.edge_panel.color`),()=>Y(`diagram.edge_panel.clear_ports`),()=>Y(`diagram.edge_panel.save_as_default`),()=>Y(`diagram.label_input.placeholder`),()=>Y(`diagram.empty_state`),()=>Y(`diagram.image_modal.title`),()=>Y(`diagram.image_modal.placeholder`),()=>Y(`diagram.image_modal.error_chars`),()=>Y(`diagram.image_modal.cancel_btn`),()=>Y(`diagram.image_modal.paste_btn`)]),U(`click`,s,()=>history.back()),U(`mousedown`,ge,i),G(e,a),qe()}Nr([`click`,`mousedown`]),Ue();var pg={network:null,nodes:null,edges:null,diagrams:[],currentDiagramId:null,currentTool:`select`,pendingShape:`box`,selectedNodeIds:[],selectedEdgeIds:[],alignGuides:!0,gridEnabled:!0,debugMode:!1,isDirty:!1,sidebarOpen:!0,editingNodeId:null,editingEdgeId:null,resizeDrag:null,rotateDrag:null,labelRotateDrag:null,activeStamp:null,stampTargetIds:[],clipboard:null,canonicalOrder:[],edgesStraight:!1,resizeSymmetric:!1,nodeColorOverrides:{},customShapeLibraries:[],customShapeDefs:new Map,edgeLabelCanvasPos:{},edgeLabelBBox:{},freeArrowFirstPoint:null,exportingPng:!1,evidenceMode:!1};function mg(){pg.isDirty=!0,document.getElementById(`btnSave`).disabled=!1}var hg=`custom-shape`,gg=`custom-shape:`,_g=[{id:`N`,x:.5,y:0},{id:`NE`,x:1,y:0},{id:`E`,x:1,y:.5},{id:`SE`,x:1,y:1},{id:`S`,x:.5,y:1},{id:`SW`,x:0,y:1},{id:`W`,x:0,y:.5},{id:`NW`,x:0,y:0}];function vg(e){return typeof e==`string`&&e.startsWith(`custom-shape:`)}function yg(e){return vg(e)?e.slice(13):null}function bg(e){return e&&pg.customShapeDefs&&pg.customShapeDefs.get(e)||null}function xg(e){let t=bg(e);return[t&&t.width||65,t&&t.height||65]}function Sg(e){let t=bg(e);return t&&Array.isArray(t.anchors)&&t.anchors.length?t.anchors:_g}function Cg(e){let t=bg(e);return t&&[`center`,`below`,`above`,`right`,`left`].includes(t.labelPlacement)?t.labelPlacement:`below`}async function wg(){try{let e=await fetch(`/api/shape-libraries`);if(!e.ok)throw Error(`shape libraries unavailable`);let t=await e.json(),n=Array.isArray(t.libraries)?t.libraries:[];pg.customShapeLibraries=n,pg.customShapeDefs=new Map,n.forEach(e=>{(e.shapes||[]).forEach(e=>pg.customShapeDefs.set(e.id,e))})}catch{pg.customShapeLibraries=[],pg.customShapeDefs=new Map}}function Tg(){let e=document.getElementById(`customShapeBar`),t=document.getElementById(`customShapeBarBody`);if(!e||!t)return;t.innerHTML=``;let n=(pg.customShapeLibraries||[]).flatMap(e=>(e.shapes||[]).filter(e=>e.showInDiagram!==!1).map(t=>({...t,libraryName:e.name})));e.classList.toggle(`hidden`,n.length===0),n.forEach(e=>{let n=document.createElement(`button`);n.type=`button`,n.className=`custom-shape-btn`,n.title=`${e.libraryName||``}${e.libraryName?` · `:``}${e.name}`,n.dataset.customShapeId=e.id;let r=document.createElement(`img`);r.src=e.imageSrc,r.alt=``,r.draggable=!1,n.appendChild(r),n.addEventListener(`click`,()=>{window.dispatchEvent(new CustomEvent(`diagram:setTool`,{detail:{tool:`addNode`,shape:`${gg}${e.id}`}}))}),t.appendChild(n)})}function Eg(){let e={saveState:document.getElementById(`saveState`),librarySelect:document.getElementById(`librarySelect`),libraryName:document.getElementById(`libraryName`),shapeList:document.getElementById(`shapeList`),previewStage:document.getElementById(`previewStage`),previewImage:document.getElementById(`previewImage`),shapeName:document.getElementById(`shapeName`),imageFile:document.getElementById(`imageFile`),shapeWidth:document.getElementById(`shapeWidth`),shapeHeight:document.getElementById(`shapeHeight`),labelPlacement:document.getElementById(`labelPlacement`),shapeShowInDiagram:document.getElementById(`shapeShowInDiagram`),anchorList:document.getElementById(`anchorList`),anchorCount:document.getElementById(`anchorCount`)},t={libraries:[]},n=null,r=null,i=null,a=null,o=e=>`${e}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,6)}`,s=()=>t.libraries.find(e=>e.id===n)||null,c=()=>s()?.shapes.find(e=>e.id===r)||null,l=e=>Math.max(0,Math.min(1,e)),u=e=>[`below`,`above`,`right`,`left`,`center`].includes(e)?e:`below`,d=e=>String(e??``).replace(/[&<>"']/g,e=>({"&":`&amp;`,"<":`&lt;`,">":`&gt;`,'"':`&quot;`,"'":`&#39;`})[e]);function f(t){e.saveState.textContent=t,t&&setTimeout(()=>{e.saveState.textContent===t&&(e.saveState.textContent=``)},1800)}async function p(){t=await(await fetch(`/api/shape-libraries`)).json(),Array.isArray(t.libraries)||(t.libraries=[]),t.libraries.length||t.libraries.push({id:o(`lib`),name:`My shapes`,shapes:[]}),n=t.libraries[0].id,r=t.libraries[0].shapes[0]?.id||null,i=c()?structuredClone(c()):h(),g()}async function m(){t=await(await fetch(`/api/shape-libraries`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)})).json(),f(`Saved`)}function h(){return{id:o(`shape`),name:`New shape`,imageSrc:``,width:65,height:65,labelPlacement:`below`,showInDiagram:!0,anchors:structuredClone(_g)}}function g(){_(),v(),y()}function _(){e.librarySelect.innerHTML=``,t.libraries.forEach(t=>{let r=document.createElement(`option`);r.value=t.id,r.textContent=t.name,r.selected=t.id===n,e.librarySelect.appendChild(r)}),e.libraryName.value=s()?.name||``}function v(){let t=s();e.shapeList.innerHTML=``,(t?.shapes||[]).forEach(t=>{let n=document.createElement(`button`);n.type=`button`,n.className=`shape-item w-full flex items-center gap-2 px-2 py-1.5 rounded text-sm text-left hover:bg-gray-100 ${t.id===r?`active`:``}`;let a=document.createElement(`img`);a.src=t.imageSrc,a.alt=``,a.className=`w-6 h-6 object-contain shrink-0`;let o=document.createElement(`span`);o.className=`truncate`,o.textContent=t.name,n.append(a,o),n.addEventListener(`click`,()=>{r=t.id,i=structuredClone(t),g()}),e.shapeList.appendChild(n)}),t?.shapes?.length||(e.shapeList.innerHTML=`<p class="text-xs text-gray-400 px-2 py-2">No shape yet.</p>`)}function y(){i||=h(),e.previewStage.style.aspectRatio=`${Math.max(16,Number(i.width)||65)} / ${Math.max(16,Number(i.height)||65)}`,e.previewImage.src=i.imageSrc||``,e.previewImage.style.display=i.imageSrc?`block`:`none`,e.shapeName.value=i.name||``,e.shapeWidth.value=i.width||65,e.shapeHeight.value=i.height||65,e.labelPlacement.value=u(i.labelPlacement),e.shapeShowInDiagram.checked=i.showInDiagram!==!1,b()}function b(){e.previewStage.querySelectorAll(`.anchor-dot`).forEach(e=>e.remove()),e.anchorList.innerHTML=``;let t=i.anchors||[];e.anchorCount.textContent=`${t.length} anchor${t.length>1?`s`:``}`,t.forEach((t,n)=>{let r=document.createElement(`button`);r.type=`button`,r.className=`anchor-dot`,r.style.left=`${t.x*100}%`,r.style.top=`${t.y*100}%`,r.dataset.anchorId=t.id,r.innerHTML=`<span>${t.id}</span>`,r.addEventListener(`pointerdown`,e=>{e.preventDefault(),a=t.id,r.setPointerCapture(e.pointerId)}),e.previewStage.appendChild(r);let o=document.createElement(`div`);o.className=`grid grid-cols-[4.5rem_1fr_1fr_2rem] gap-2 items-center`,o.innerHTML=`
143
143
  <input class="field !h-7 text-xs" value="${d(t.id)}">
144
144
  <input class="field !h-7 text-xs" type="number" min="0" max="100" step="1" value="${Math.round(t.x*100)}">
145
145
  <input class="field !h-7 text-xs" type="number" min="0" max="100" step="1" value="${Math.round(t.y*100)}">
@@ -1,4 +1,4 @@
1
- import{a as e,c as t,d as n,f as r,i,l as a,n as o,o as s,p as c,r as l,s as u,t as d,u as f}from"./index-D92rl9qX.js";var p={select:`toolSelect`,"addNode:box":`toolBox`,"addNode:ellipse":`toolEllipse`,"addNode:database":`toolDatabase`,"addNode:circle":`toolCircle`,"addNode:actor":`toolActor`,"addNode:post-it":`toolPostIt`,"addNode:text-free":`toolTextFree`,"addNode:image":`toolImage`,addEdge:`toolArrow`},m={"c-gray":{bg:`#f5f5f4`,border:`#a8a29e`,font:`#292524`,hbg:`#e7e5e4`,hborder:`#78716c`},"c-blue":{bg:`#dbeafe`,border:`#3b82f6`,font:`#1e40af`,hbg:`#bfdbfe`,hborder:`#2563eb`},"c-green":{bg:`#dcfce7`,border:`#22c55e`,font:`#166534`,hbg:`#bbf7d0`,hborder:`#16a34a`},"c-amber":{bg:`#fef9c3`,border:`#f59e0b`,font:`#78350f`,hbg:`#fef08a`,hborder:`#d97706`},"c-rose":{bg:`#ffe4e6`,border:`#f43f5e`,font:`#881337`,hbg:`#fecdd3`,hborder:`#e11d48`},"c-purple":{bg:`#ede9fe`,border:`#8b5cf6`,font:`#4c1d95`,hbg:`#ddd6fe`,hborder:`#7c3aed`},"c-teal":{bg:`#ccfbf1`,border:`#14b8a6`,font:`#134e4a`,hbg:`#99f6e4`,hborder:`#0d9488`},"c-orange":{bg:`#ffedd5`,border:`#f97316`,font:`#7c2d12`,hbg:`#fed7aa`,hborder:`#ea580c`},"c-cyan":{bg:`#cffafe`,border:`#06b6d4`,font:`#164e63`,hbg:`#a5f3fc`,hborder:`#0891b2`},"c-indigo":{bg:`#e0e7ff`,border:`#6366f1`,font:`#312e81`,hbg:`#c7d2fe`,hborder:`#4f46e5`},"c-pink":{bg:`#fce7f3`,border:`#ec4899`,font:`#831843`,hbg:`#fbcfe8`,hborder:`#db2777`},"c-lime":{bg:`#ecfccb`,border:`#84cc16`,font:`#365314`,hbg:`#d9f99d`,hborder:`#65a30d`},"c-red":{bg:`#fee2e2`,border:`#ef4444`,font:`#7f1d1d`,hbg:`#fecaca`,hborder:`#dc2626`},"c-sky":{bg:`#e0f2fe`,border:`#0ea5e9`,font:`#0c4a6e`,hbg:`#bae6fd`,hborder:`#0284c7`},"c-slate":{bg:`#f1f5f9`,border:`#64748b`,font:`#0f172a`,hbg:`#e2e8f0`,hborder:`#475569`}},h=[`c-gray`,`c-slate`,`c-blue`,`c-sky`,`c-cyan`,`c-teal`,`c-green`,`c-lime`,`c-amber`,`c-orange`,`c-red`,`c-rose`,`c-pink`,`c-purple`,`c-indigo`],g=[`#a8a29e`,`#374151`,`#3b82f6`,`#14b8a6`,`#22c55e`,`#f97316`,`#ef4444`,`#a855f7`],_={"c-gray":.667,"c-slate":.488,"c-blue":.645,"c-sky":.518,"c-cyan":.473,"c-teal":.448,"c-green":.489,"c-lime":.496,"c-amber":.57,"c-orange":.578,"c-red":.64,"c-rose":.636,"c-pink":.638,"c-purple":.694,"c-indigo":.71};function v(e,t=.6){let n=parseInt(e.slice(1,3),16)/255,r=parseInt(e.slice(3,5),16)/255,i=parseInt(e.slice(5,7),16)/255,a=Math.max(n,r,i),o=Math.min(n,r,i),s=(a+o)/2,c=a-o,l=0,u=0;c>0&&(u=s>.5?c/(2-a-o):c/(a+o),l=a===n?((r-i)/c+(r<i?6:0))/6:a===r?((i-n)/c+2)/6:((n-r)/c+4)/6);function d(e,t,n){let r,i,a;if(t===0)r=i=a=n;else{let o=(e,t,n)=>(n<0&&(n+=1),n>1&&--n,n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e),s=n<.5?n*(1+t):n+t-n*t,c=2*n-s;r=o(c,s,e+1/3),i=o(c,s,e),a=o(c,s,e-1/3)}return`#`+[r,i,a].map(e=>Math.max(0,Math.min(255,Math.round(e*255))).toString(16).padStart(2,`0`)).join(``)}let f=s*t,p=s*.93,m=f*.89;return{bg:e,border:d(l,u,f),font:s>.5?`#292524`:`#fafaf9`,hbg:d(l,u,Math.min(s,p)),hborder:d(l,u,Math.min(f,m))}}function y(e){return n.nodeColorOverrides[e]||m[e]||m[`c-gray`]}function b(e,t){return typeof e!=`string`||e.charAt(0)!==`#`||e.length!==7?e:`rgba(${parseInt(e.slice(1,3),16)},${parseInt(e.slice(3,5),16)},${parseInt(e.slice(5,7),16)},${t})`}function x(e,t,r,i){let a=n.nodes&&n.nodes.get(t);if(!a||!a.nodeLink)return;let o=r/2-7,s=i/2-7;e.save(),e.fillStyle=a.nodeLink.type===`url`?`#3b82f6`:`#f97316`,e.strokeStyle=`#fff`,e.lineWidth=1,e.beginPath(),e.arc(o,s,7,0,Math.PI*2),e.fill(),e.stroke(),e.strokeStyle=`#fff`,e.lineWidth=1.2,e.lineCap=`round`,e.beginPath(),e.moveTo(o-1.5,s+1.5),e.lineTo(o+1.5,s-1.5),e.moveTo(o-2.5,s-.5),e.lineTo(o-.5,s-2.5),e.moveTo(o+.5,s+2.5),e.lineTo(o+2.5,s+.5),e.stroke(),e.restore()}function S(e,t,n){if(!t)return[``];let r=t.split(` `),i=[],a=``;for(let t of r){let r=a?a+` `+t:t;a&&e.measureText(r).width>n?(i.push(a),a=t):a=r}return a&&i.push(a),i.length?i:[``]}function C(e,t,n,r,i,a,o,s,c){if(!t)return;e.save(),e.font=`${n}px system-ui,-apple-system,sans-serif`,e.fillStyle=r,e.textBaseline=`middle`;let l=0;i===`left`?(e.textAlign=`left`,l=o?-o/2+8:-40):i===`right`?(e.textAlign=`right`,l=o?o/2-8:40):(e.textAlign=`center`,l=0);let u=o?o-16:1/0,d=String(t).split(`
1
+ import{a as e,c as t,d as n,f as r,i,l as a,n as o,o as s,p as c,r as l,s as u,t as d,u as f}from"./index-CTftqQJm.js";var p={select:`toolSelect`,"addNode:box":`toolBox`,"addNode:ellipse":`toolEllipse`,"addNode:database":`toolDatabase`,"addNode:circle":`toolCircle`,"addNode:actor":`toolActor`,"addNode:post-it":`toolPostIt`,"addNode:text-free":`toolTextFree`,"addNode:image":`toolImage`,addEdge:`toolArrow`},m={"c-gray":{bg:`#f5f5f4`,border:`#a8a29e`,font:`#292524`,hbg:`#e7e5e4`,hborder:`#78716c`},"c-blue":{bg:`#dbeafe`,border:`#3b82f6`,font:`#1e40af`,hbg:`#bfdbfe`,hborder:`#2563eb`},"c-green":{bg:`#dcfce7`,border:`#22c55e`,font:`#166534`,hbg:`#bbf7d0`,hborder:`#16a34a`},"c-amber":{bg:`#fef9c3`,border:`#f59e0b`,font:`#78350f`,hbg:`#fef08a`,hborder:`#d97706`},"c-rose":{bg:`#ffe4e6`,border:`#f43f5e`,font:`#881337`,hbg:`#fecdd3`,hborder:`#e11d48`},"c-purple":{bg:`#ede9fe`,border:`#8b5cf6`,font:`#4c1d95`,hbg:`#ddd6fe`,hborder:`#7c3aed`},"c-teal":{bg:`#ccfbf1`,border:`#14b8a6`,font:`#134e4a`,hbg:`#99f6e4`,hborder:`#0d9488`},"c-orange":{bg:`#ffedd5`,border:`#f97316`,font:`#7c2d12`,hbg:`#fed7aa`,hborder:`#ea580c`},"c-cyan":{bg:`#cffafe`,border:`#06b6d4`,font:`#164e63`,hbg:`#a5f3fc`,hborder:`#0891b2`},"c-indigo":{bg:`#e0e7ff`,border:`#6366f1`,font:`#312e81`,hbg:`#c7d2fe`,hborder:`#4f46e5`},"c-pink":{bg:`#fce7f3`,border:`#ec4899`,font:`#831843`,hbg:`#fbcfe8`,hborder:`#db2777`},"c-lime":{bg:`#ecfccb`,border:`#84cc16`,font:`#365314`,hbg:`#d9f99d`,hborder:`#65a30d`},"c-red":{bg:`#fee2e2`,border:`#ef4444`,font:`#7f1d1d`,hbg:`#fecaca`,hborder:`#dc2626`},"c-sky":{bg:`#e0f2fe`,border:`#0ea5e9`,font:`#0c4a6e`,hbg:`#bae6fd`,hborder:`#0284c7`},"c-slate":{bg:`#f1f5f9`,border:`#64748b`,font:`#0f172a`,hbg:`#e2e8f0`,hborder:`#475569`}},h=[`c-gray`,`c-slate`,`c-blue`,`c-sky`,`c-cyan`,`c-teal`,`c-green`,`c-lime`,`c-amber`,`c-orange`,`c-red`,`c-rose`,`c-pink`,`c-purple`,`c-indigo`],g=[`#a8a29e`,`#374151`,`#3b82f6`,`#14b8a6`,`#22c55e`,`#f97316`,`#ef4444`,`#a855f7`],_={"c-gray":.667,"c-slate":.488,"c-blue":.645,"c-sky":.518,"c-cyan":.473,"c-teal":.448,"c-green":.489,"c-lime":.496,"c-amber":.57,"c-orange":.578,"c-red":.64,"c-rose":.636,"c-pink":.638,"c-purple":.694,"c-indigo":.71};function v(e,t=.6){let n=parseInt(e.slice(1,3),16)/255,r=parseInt(e.slice(3,5),16)/255,i=parseInt(e.slice(5,7),16)/255,a=Math.max(n,r,i),o=Math.min(n,r,i),s=(a+o)/2,c=a-o,l=0,u=0;c>0&&(u=s>.5?c/(2-a-o):c/(a+o),l=a===n?((r-i)/c+(r<i?6:0))/6:a===r?((i-n)/c+2)/6:((n-r)/c+4)/6);function d(e,t,n){let r,i,a;if(t===0)r=i=a=n;else{let o=(e,t,n)=>(n<0&&(n+=1),n>1&&--n,n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e),s=n<.5?n*(1+t):n+t-n*t,c=2*n-s;r=o(c,s,e+1/3),i=o(c,s,e),a=o(c,s,e-1/3)}return`#`+[r,i,a].map(e=>Math.max(0,Math.min(255,Math.round(e*255))).toString(16).padStart(2,`0`)).join(``)}let f=s*t,p=s*.93,m=f*.89;return{bg:e,border:d(l,u,f),font:s>.5?`#292524`:`#fafaf9`,hbg:d(l,u,Math.min(s,p)),hborder:d(l,u,Math.min(f,m))}}function y(e){return n.nodeColorOverrides[e]||m[e]||m[`c-gray`]}function b(e,t){return typeof e!=`string`||e.charAt(0)!==`#`||e.length!==7?e:`rgba(${parseInt(e.slice(1,3),16)},${parseInt(e.slice(3,5),16)},${parseInt(e.slice(5,7),16)},${t})`}function x(e,t,r,i){let a=n.nodes&&n.nodes.get(t);if(!a||!a.nodeLink)return;let o=r/2-7,s=i/2-7;e.save(),e.fillStyle=a.nodeLink.type===`url`?`#3b82f6`:`#f97316`,e.strokeStyle=`#fff`,e.lineWidth=1,e.beginPath(),e.arc(o,s,7,0,Math.PI*2),e.fill(),e.stroke(),e.strokeStyle=`#fff`,e.lineWidth=1.2,e.lineCap=`round`,e.beginPath(),e.moveTo(o-1.5,s+1.5),e.lineTo(o+1.5,s-1.5),e.moveTo(o-2.5,s-.5),e.lineTo(o-.5,s-2.5),e.moveTo(o+.5,s+2.5),e.lineTo(o+2.5,s+.5),e.stroke(),e.restore()}function S(e,t,n){if(!t)return[``];let r=t.split(` `),i=[],a=``;for(let t of r){let r=a?a+` `+t:t;a&&e.measureText(r).width>n?(i.push(a),a=t):a=r}return a&&i.push(a),i.length?i:[``]}function C(e,t,n,r,i,a,o,s,c){if(!t)return;e.save(),e.font=`${n}px system-ui,-apple-system,sans-serif`,e.fillStyle=r,e.textBaseline=`middle`;let l=0;i===`left`?(e.textAlign=`left`,l=o?-o/2+8:-40):i===`right`?(e.textAlign=`right`,l=o?o/2-8:40):(e.textAlign=`center`,l=0);let u=o?o-16:1/0,d=String(t).split(`
2
2
  `).flatMap(t=>S(e,t,u)),f=n*1.3,p;p=o&&s?a===`top`?-(s/2-n/2-8):a===`bottom`?s/2-n/2-8-(d.length-1)*f:-((d.length-1)*f)/2:-((d.length-1)*f)/2,c&&e.rotate(c),d.forEach((t,n)=>e.fillText(t,l,p+n*f)),e.restore()}function w(e,t,n,r,i,a){a=Math.min(a,r/2,i/2),e.beginPath(),e.moveTo(t+a,n),e.lineTo(t+r-a,n),e.quadraticCurveTo(t+r,n,t+r,n+a),e.lineTo(t+r,n+i-a),e.quadraticCurveTo(t+r,n+i,t+r-a,n+i),e.lineTo(t+a,n+i),e.quadraticCurveTo(t,n+i,t,n+i-a),e.lineTo(t,n+a),e.quadraticCurveTo(t,n,t+a,n),e.closePath()}function T(e,t,r,i){let a=n.nodes&&n.nodes.get(e),o=a&&a.colorKey||i||`c-gray`,s=a&&a.bgOpacity,c=typeof s==`number`?Math.max(0,Math.min(1,s)):1,l=y(o),u=c<1?{...l,bg:b(l.bg,c),hbg:b(l.hbg,c)}:l;return{W:a&&a.nodeWidth||t,H:a&&a.nodeHeight||r,rotation:a&&a.rotation||0,labelRotation:a&&a.labelRotation||0,textAlign:a&&a.textAlign||`center`,textValign:a&&a.textValign||`middle`,fontSize:a&&a.fontSize||13,bgOpacity:c,colorKey:o,c:u}}function ee(e){return e?String(e).split(`
3
3
  `):[]}function E(e){return[`center`,`below`,`above`,`right`,`left`].includes(e)?e:null}function te(e){return[`above`,`below`,`right`,`left`].includes(e)}function D(e,t,n){let r=`${t}px system-ui,-apple-system,sans-serif`;if(n){let t=n.font;n.font=r;let i=n.measureText(e).width;return n.font=t,i}return typeof document>`u`?String(e).length*t*.58:(D._ctx||=document.createElement(`canvas`).getContext(`2d`),D._ctx.font=r,D._ctx.measureText(e).width)}function ne(t,n,r){let i=e(t&&t.customShapeId),a=t&&t.nodeWidth||i&&i.width||65,o=t&&t.nodeHeight||i&&i.height||65,s=E(t&&t.labelPlacement)||E(i&&i.labelPlacement)||`below`,c=t&&t.fontSize||13,l=ee(n),u=c*1.3;if(!l.length||!te(s))return{placement:s,lines:l,lineH:u,imageOffsetX:0,imageOffsetY:0,labelBlockW:0,labelBlockH:0,totalW:a,totalH:o};let d=Math.max(...l.map(e=>D(e,c,r)))+16,f=l.length*u+8,p=s===`left`||s===`right`,m=p?a+d:Math.max(a,d),h=p?Math.max(o,f):o+f;return{placement:s,lines:l,lineH:u,imageOffsetX:s===`right`?-d/2:s===`left`?d/2:0,imageOffsetY:s===`below`?-f/2:s===`above`?f/2:0,labelBlockW:d,labelBlockH:f,totalW:m,totalH:h}}function re(e){return function({ctx:t,x:n,y:r,id:i,state:a,label:o}){let{W:s,H:c,rotation:l,labelRotation:u,textAlign:d,textValign:f,fontSize:p,c:m}=T(i,100,40,e);return{drawNode(){t.save(),t.translate(n,r),t.rotate(l),t.strokeStyle=a.selected?`#f97316`:m.border,t.fillStyle=a.selected?m.hbg:m.bg,t.lineWidth=1.5,w(t,-s/2,-c/2,s,c,4),t.fill(),t.stroke(),C(t,o,p,m.font,d,f,s,c,u),x(t,i,s,c),t.restore()},nodeDimensions:{width:s,height:c}}}}function ie(e){return function({ctx:t,x:n,y:r,id:i,state:a,label:o}){let{W:s,H:c,rotation:l,labelRotation:u,textAlign:d,textValign:f,fontSize:p,c:m}=T(i,110,50,e);return{drawNode(){t.save(),t.translate(n,r),t.rotate(l),t.strokeStyle=a.selected?`#f97316`:m.border,t.fillStyle=a.selected?m.hbg:m.bg,t.lineWidth=1.5,t.beginPath(),t.ellipse(0,0,s/2,c/2,0,0,Math.PI*2),t.fill(),t.stroke(),C(t,o,p,m.font,d,f,s,c,u),x(t,i,s,c),t.restore()},nodeDimensions:{width:s,height:c}}}}function ae(e){return function({ctx:t,x:n,y:r,id:i,state:a,label:o}){let{W:s,rotation:c,labelRotation:l,textAlign:u,textValign:d,fontSize:f,c:p}=T(i,55,55,e),m=s/2;return{drawNode(){t.save(),t.translate(n,r),t.rotate(c),t.strokeStyle=a.selected?`#f97316`:p.border,t.fillStyle=a.selected?p.hbg:p.bg,t.lineWidth=1.5,t.beginPath(),t.arc(0,0,m,0,Math.PI*2),t.fill(),t.stroke(),C(t,o,f,p.font,u,d,s,s,l),x(t,i,s,s),t.restore()},nodeDimensions:{width:s,height:s}}}}function oe(e){return function({ctx:t,x:n,y:r,id:i,state:a,label:o}){let{W:s,H:c,rotation:l,labelRotation:u,textAlign:d,textValign:f,fontSize:p,c:m}=T(i,50,70,e),h=s/2,g=Math.max(c*.12,6),_=-c/2+g,v=c/2-g;return{drawNode(){t.save(),t.translate(n,r),t.rotate(l),t.strokeStyle=a.selected?`#f97316`:m.border,t.fillStyle=a.selected?m.hbg:m.bg,t.lineWidth=1.5,t.fillRect(-h,_,s,v-_),t.beginPath(),t.ellipse(0,v,h,g,0,0,Math.PI*2),t.fill(),t.stroke(),t.beginPath(),t.moveTo(-h,_),t.lineTo(-h,v),t.moveTo(h,_),t.lineTo(h,v),t.stroke(),t.beginPath(),t.ellipse(0,_,h,g,0,0,Math.PI*2),t.fill(),t.stroke(),C(t,o,p,m.font,d,f,s,c,u),x(t,i,s,c),t.restore()},nodeDimensions:{width:s,height:c}}}}function se(e){return function({ctx:t,x:n,y:r,id:i,state:a,label:o}){let{W:s,H:c,rotation:l,labelRotation:u,textAlign:d,textValign:f,fontSize:p,c:m}=T(i,120,100,e||`c-amber`),h=Math.min(s,c)*.18;return{drawNode(){t.save(),t.translate(n,r),t.rotate(l),t.strokeStyle=a.selected?`#f97316`:m.border,t.fillStyle=a.selected?m.hbg:m.bg,t.lineWidth=1.5,t.beginPath(),t.moveTo(-s/2,-c/2),t.lineTo(s/2-h,-c/2),t.lineTo(s/2,-c/2+h),t.lineTo(s/2,c/2),t.lineTo(-s/2,c/2),t.closePath(),t.fill(),t.stroke(),t.globalAlpha=.3,t.fillStyle=m.border,t.beginPath(),t.moveTo(s/2-h,-c/2),t.lineTo(s/2,-c/2+h),t.lineTo(s/2-h,-c/2+h),t.closePath(),t.fill(),t.globalAlpha=1,t.beginPath(),t.moveTo(s/2-h,-c/2),t.lineTo(s/2-h,-c/2+h),t.lineTo(s/2,-c/2+h),t.stroke(),C(t,o,p,m.font,d,f,s,c,u),x(t,i,s,c),t.restore()},nodeDimensions:{width:s,height:c}}}}function ce(e){return function({ctx:t,x:n,y:r,id:i,state:a,label:o}){let{W:s,H:c,rotation:l,labelRotation:u,textAlign:d,textValign:f,fontSize:p,c:m}=T(i,80,30,e);return{drawNode(){t.save(),t.translate(n,r),t.rotate(l),(a.selected||a.hover)&&(t.strokeStyle=`#f97316`,t.lineWidth=1,t.setLineDash([4,3]),w(t,-s/2,-c/2,s,c,3),t.stroke(),t.setLineDash([])),C(t,o,p,m.font,d,f,s,c,u),x(t,i,s,c),t.restore()},nodeDimensions:{width:s,height:c}}}}var le=30,ue=52;function de(e){return function({ctx:t,x:n,y:r,id:i,state:a,label:o}){let{W:s,H:c,rotation:l,labelRotation:u,fontSize:d,c:f}=T(i,le,ue,e),p=s/le,m=c/ue;return{drawNode(){if(t.save(),t.translate(n,r),t.rotate(l),t.strokeStyle=a.selected?`#f97316`:f.border,t.fillStyle=a.selected?f.hbg:f.bg,t.lineWidth=2,t.lineCap=`round`,t.beginPath(),t.arc(0,-20*m,8*m,0,Math.PI*2),t.fill(),t.stroke(),t.beginPath(),t.moveTo(0,-12*m),t.lineTo(0,8*m),t.stroke(),t.beginPath(),t.moveTo(-13*p,0*m),t.lineTo(13*p,0*m),t.stroke(),t.beginPath(),t.moveTo(0,8*m),t.lineTo(-10*p,24*m),t.stroke(),t.beginPath(),t.moveTo(0,8*m),t.lineTo(10*p,24*m),t.stroke(),o){t.save(),u&&t.rotate(u),t.font=`${d}px system-ui,-apple-system,sans-serif`,t.fillStyle=f.font,t.textAlign=`center`,t.textBaseline=`top`;let e=String(o).split(`
4
4
  `),n=d*1.3,r=24*m+4;e.forEach((e,i)=>t.fillText(e,0,r+i*n)),t.restore()}x(t,i,s,c),t.restore()},nodeDimensions:{width:s,height:c}}}}var fe=new Map;function pe(e,t){if(!e)return null;let n=fe.get(e);if(n===`loading`||n===`error`)return null;if(n)return n;fe.set(e,`loading`);let r=new Image;return r.onload=()=>{fe.set(e,r),t&&t()},r.onerror=()=>{fe.set(e,`error`)},r.src=e,null}function me(e){return function({ctx:t,x:r,y:i,id:a,state:o,label:s}){let{W:c,H:l,rotation:u,labelRotation:d,textAlign:f,textValign:p,fontSize:m,c:h}=T(a,160,120,e||`c-gray`),g=n.nodes&&n.nodes.get(a),_=g&&g.imageSrc,v=pe(_,()=>n.network&&n.network.redraw());return{drawNode(){if(t.save(),t.translate(r,i),t.rotate(u),t.strokeStyle=o.selected?`#f97316`:h.border,t.lineWidth=o.selected?2:1,w(t,-c/2,-l/2,c,l,4),t.stroke(),v?(t.save(),w(t,-c/2,-l/2,c,l,4),t.clip(),t.drawImage(v,-c/2,-l/2,c,l),t.restore()):(t.fillStyle=o.selected?h.hbg:h.bg,w(t,-c/2,-l/2,c,l,4),t.fill(),t.fillStyle=h.border,t.font=`${Math.round(Math.min(c,l)*.25)}px system-ui`,t.textAlign=`center`,t.textBaseline=`middle`,t.fillText(_?`…`:`🖼`,0,0)),s){let e=String(s).split(`
@@ -15,8 +15,8 @@
15
15
  <link id="hljs-light" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/github.min.css" disabled />
16
16
  <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script>
17
17
  <script src="https://cdnjs.cloudflare.com/ajax/libs/highlightjs-line-numbers.js/2.8.0/highlightjs-line-numbers.min.js"></script>
18
- <script type="module" crossorigin src="/assets/index-D92rl9qX.js"></script>
19
- <link rel="stylesheet" crossorigin href="/assets/index-etN_d7T1.css">
18
+ <script type="module" crossorigin src="/assets/index-CTftqQJm.js"></script>
19
+ <link rel="stylesheet" crossorigin href="/assets/index-BUIF7V-I.css">
20
20
  </head>
21
21
  <body>
22
22
  <div id="app"></div>
@@ -1,19 +1,35 @@
1
1
  /**
2
- * Preprocesses :::compare … ::: directive blocks before marked renders the full document.
2
+ * Renders :::compare … ::: directive blocks.
3
3
  *
4
4
  * Using ::: (colon-fence) instead of backtick fences avoids conflicts when the compare
5
5
  * block's content itself contains fenced code blocks (```lang … ```).
6
6
  *
7
- * A compare block contains raw Markdown. The preprocessor:
8
- * 1. Renders it with marked (same options as the parent document)
9
- * 2. Produces a <div class="ld-compare"> with two columns:
7
+ * A compare block contains raw Markdown. For each block we:
8
+ * 1. Render its inner Markdown with marked (same options as the parent document)
9
+ * 2. Produce a <div class="ld-compare"> with two columns:
10
10
  * - ld-compare-source : the raw Markdown in a <pre><code> (highlighted client-side by hljs)
11
11
  * - ld-compare-render : the rendered HTML, ready for wireContent.ts to apply table/blockquote styles
12
- * 3. Embeds the raw source in data-compare-source (URI-encoded) so wireContent.ts can apply
12
+ * 3. Embed the raw source in data-compare-source (URI-encoded) so wireContent.ts can apply
13
13
  * table colors, callout icons etc. independently for each compare block.
14
14
  *
15
- * The outer marked.parse() call treats the resulting <div> as raw HTML pass-through.
15
+ * IMPORTANT why we cannot inject the rendered HTML before the outer marked.parse():
16
+ * The rendered <pre><code> may contain blank lines (e.g. a code sample with a blank line
17
+ * between two functions). CommonMark terminates an HTML block at the first blank line, so
18
+ * marked would stop treating our <div> as raw HTML at that blank line and re-parse the rest
19
+ * of the document as Markdown — corrupting everything after the blank line.
20
+ *
21
+ * To avoid this we use a two-phase approach: each :::compare block is replaced by a single
22
+ * HTML-comment placeholder (which marked passes through untouched, and which contains no
23
+ * blank lines), the document is parsed, then the placeholders are swapped for the rendered
24
+ * compare <div>s afterwards.
16
25
  */
17
26
  import { marked } from "marked";
18
- export declare function preprocessCompareBlocks(source: string, markedOpts?: Parameters<typeof marked.parse>[1]): string;
27
+ /**
28
+ * Parse a Markdown document that may contain :::compare blocks and return the final HTML.
29
+ *
30
+ * This replaces the old `marked.parse(preprocessCompareBlocks(source))` pattern: compare
31
+ * blocks are rendered separately and stitched back in AFTER the outer parse, so their
32
+ * (possibly blank-line-containing) rendered HTML never disturbs the outer Markdown parsing.
33
+ */
34
+ export declare function renderMarkdownWithCompareBlocks(source: string, markedOpts?: Parameters<typeof marked.parse>[1]): string;
19
35
  //# sourceMappingURL=compareBlock.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compareBlock.d.ts","sourceRoot":"","sources":["../../../src/lib/compareBlock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAShC,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,UAAU,GAAE,UAAU,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAM,GAClD,MAAM,CAuBR"}
1
+ {"version":3,"file":"compareBlock.d.ts","sourceRoot":"","sources":["../../../src/lib/compareBlock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAkChC;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,MAAM,EACd,UAAU,GAAE,UAAU,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAM,GAClD,MAAM,CAwBR"}
@@ -1,22 +1,31 @@
1
1
  "use strict";
2
2
  /**
3
- * Preprocesses :::compare … ::: directive blocks before marked renders the full document.
3
+ * Renders :::compare … ::: directive blocks.
4
4
  *
5
5
  * Using ::: (colon-fence) instead of backtick fences avoids conflicts when the compare
6
6
  * block's content itself contains fenced code blocks (```lang … ```).
7
7
  *
8
- * A compare block contains raw Markdown. The preprocessor:
9
- * 1. Renders it with marked (same options as the parent document)
10
- * 2. Produces a <div class="ld-compare"> with two columns:
8
+ * A compare block contains raw Markdown. For each block we:
9
+ * 1. Render its inner Markdown with marked (same options as the parent document)
10
+ * 2. Produce a <div class="ld-compare"> with two columns:
11
11
  * - ld-compare-source : the raw Markdown in a <pre><code> (highlighted client-side by hljs)
12
12
  * - ld-compare-render : the rendered HTML, ready for wireContent.ts to apply table/blockquote styles
13
- * 3. Embeds the raw source in data-compare-source (URI-encoded) so wireContent.ts can apply
13
+ * 3. Embed the raw source in data-compare-source (URI-encoded) so wireContent.ts can apply
14
14
  * table colors, callout icons etc. independently for each compare block.
15
15
  *
16
- * The outer marked.parse() call treats the resulting <div> as raw HTML pass-through.
16
+ * IMPORTANT why we cannot inject the rendered HTML before the outer marked.parse():
17
+ * The rendered <pre><code> may contain blank lines (e.g. a code sample with a blank line
18
+ * between two functions). CommonMark terminates an HTML block at the first blank line, so
19
+ * marked would stop treating our <div> as raw HTML at that blank line and re-parse the rest
20
+ * of the document as Markdown — corrupting everything after the blank line.
21
+ *
22
+ * To avoid this we use a two-phase approach: each :::compare block is replaced by a single
23
+ * HTML-comment placeholder (which marked passes through untouched, and which contains no
24
+ * blank lines), the document is parsed, then the placeholders are swapped for the rendered
25
+ * compare <div>s afterwards.
17
26
  */
18
27
  Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.preprocessCompareBlocks = preprocessCompareBlocks;
28
+ exports.renderMarkdownWithCompareBlocks = renderMarkdownWithCompareBlocks;
20
29
  const marked_1 = require("marked");
21
30
  function htmlEscape(str) {
22
31
  return str
@@ -24,23 +33,44 @@ function htmlEscape(str) {
24
33
  .replace(/</g, "&lt;")
25
34
  .replace(/>/g, "&gt;");
26
35
  }
27
- function preprocessCompareBlocks(source, markedOpts = {}) {
28
- // Match :::compare … ::: directive blocks (opening/closing at line start)
29
- return source.replace(/^:::compare[ \t]*\n([\s\S]*?)^:::[ \t]*$/gm, (_, content) => {
30
- // Strip trailing newline so marked doesn't add an extra <p></p>
31
- const trimmed = content.endsWith("\n") ? content.slice(0, -1) : content;
32
- const renderedHtml = marked_1.marked.parse(trimmed, markedOpts);
33
- const escapedSource = htmlEscape(trimmed);
34
- // URI-encode so the raw Markdown is safely embedded in an HTML attribute value
35
- const encodedSource = encodeURIComponent(trimmed);
36
- return ('<div class="ld-compare">' +
37
- '<div class="ld-compare-source">' +
38
- `<pre><code class="language-markdown">${escapedSource}</code></pre>` +
39
- "</div>" +
40
- `<div class="ld-compare-render" data-compare-source="${encodedSource}">` +
41
- renderedHtml +
42
- "</div>" +
43
- "</div>");
36
+ const COMPARE_RE = /^:::compare[ \t]*\n([\s\S]*?)^:::[ \t]*$/gm;
37
+ const PLACEHOLDER_PREFIX = "LD_COMPARE_BLOCK_";
38
+ function renderCompareDiv(content, markedOpts) {
39
+ // Strip a single trailing newline so marked doesn't add an extra <p></p>
40
+ const trimmed = content.endsWith("\n") ? content.slice(0, -1) : content;
41
+ const renderedHtml = marked_1.marked.parse(trimmed, markedOpts);
42
+ const escapedSource = htmlEscape(trimmed);
43
+ // URI-encode so the raw Markdown is safely embedded in an HTML attribute value
44
+ const encodedSource = encodeURIComponent(trimmed);
45
+ return ('<div class="ld-compare">' +
46
+ '<div class="ld-compare-source">' +
47
+ `<pre><code class="language-markdown">${escapedSource}</code></pre>` +
48
+ "</div>" +
49
+ `<div class="ld-compare-render" data-compare-source="${encodedSource}">` +
50
+ renderedHtml +
51
+ "</div>" +
52
+ "</div>");
53
+ }
54
+ /**
55
+ * Parse a Markdown document that may contain :::compare blocks and return the final HTML.
56
+ *
57
+ * This replaces the old `marked.parse(preprocessCompareBlocks(source))` pattern: compare
58
+ * blocks are rendered separately and stitched back in AFTER the outer parse, so their
59
+ * (possibly blank-line-containing) rendered HTML never disturbs the outer Markdown parsing.
60
+ */
61
+ function renderMarkdownWithCompareBlocks(source, markedOpts = {}) {
62
+ const blocks = [];
63
+ const withPlaceholders = source.replace(COMPARE_RE, (_, content) => {
64
+ const idx = blocks.length;
65
+ blocks.push(renderCompareDiv(content, markedOpts));
66
+ // A standalone HTML comment is an HTML block (no blank lines inside) that marked
67
+ // passes through verbatim — safe to swap out after parsing.
68
+ return `\n<!--${PLACEHOLDER_PREFIX}${idx}-->\n`;
44
69
  });
70
+ let html = marked_1.marked.parse(withPlaceholders, markedOpts);
71
+ // Swap placeholders back for the rendered compare <div>s. Tolerate marked wrapping the
72
+ // comment in a <p>…</p> paragraph.
73
+ html = html.replace(new RegExp(`(?:<p>\\s*)?<!--${PLACEHOLDER_PREFIX}(\\d+)-->(?:\\s*</p>)?`, "g"), (_, i) => blocks[Number(i)] ?? "");
74
+ return html;
45
75
  }
46
76
  //# sourceMappingURL=compareBlock.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compareBlock.js","sourceRoot":"","sources":["../../../src/lib/compareBlock.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;AAWH,0DA0BC;AAnCD,mCAAgC;AAEhC,SAAS,UAAU,CAAC,GAAW;IAC7B,OAAO,GAAG;SACP,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC3B,CAAC;AAED,SAAgB,uBAAuB,CACrC,MAAc,EACd,aAAiD,EAAE;IAEnD,0EAA0E;IAC1E,OAAO,MAAM,CAAC,OAAO,CACnB,4CAA4C,EAC5C,CAAC,CAAC,EAAE,OAAe,EAAE,EAAE;QACrB,gEAAgE;QAChE,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACxE,MAAM,YAAY,GAAG,eAAM,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAW,CAAC;QACjE,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QAC1C,+EAA+E;QAC/E,MAAM,aAAa,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAClD,OAAO,CACL,0BAA0B;YAC1B,iCAAiC;YACjC,wCAAwC,aAAa,eAAe;YACpE,QAAQ;YACR,uDAAuD,aAAa,IAAI;YACxE,YAAY;YACZ,QAAQ;YACR,QAAQ,CACT,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"compareBlock.js","sourceRoot":"","sources":["../../../src/lib/compareBlock.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;;AA2CH,0EA2BC;AApED,mCAAgC;AAEhC,SAAS,UAAU,CAAC,GAAW;IAC7B,OAAO,GAAG;SACP,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,GAAG,4CAA4C,CAAC;AAChE,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AAE/C,SAAS,gBAAgB,CACvB,OAAe,EACf,UAA8C;IAE9C,yEAAyE;IACzE,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACxE,MAAM,YAAY,GAAG,eAAM,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAW,CAAC;IACjE,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAC1C,+EAA+E;IAC/E,MAAM,aAAa,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAClD,OAAO,CACL,0BAA0B;QAC1B,iCAAiC;QACjC,wCAAwC,aAAa,eAAe;QACpE,QAAQ;QACR,uDAAuD,aAAa,IAAI;QACxE,YAAY;QACZ,QAAQ;QACR,QAAQ,CACT,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,+BAA+B,CAC7C,MAAc,EACd,aAAiD,EAAE;IAEnD,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,OAAe,EAAE,EAAE;QACzE,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;QACnD,iFAAiF;QACjF,4DAA4D;QAC5D,OAAO,SAAS,kBAAkB,GAAG,GAAG,OAAO,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,IAAI,IAAI,GAAG,eAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,UAAU,CAAW,CAAC;IAEhE,uFAAuF;IACvF,mCAAmC;IACnC,IAAI,GAAG,IAAI,CAAC,OAAO,CACjB,IAAI,MAAM,CACR,mBAAmB,kBAAkB,wBAAwB,EAC7D,GAAG,CACJ,EACD,CAAC,CAAC,EAAE,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAC1C,CAAC;IAEF,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../../src/routes/documents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AAIpD,OAAO,EAAiB,WAAW,EAAE,MAAM,eAAe,CAAC;AAc3D,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAiBrE;AAED,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,MAAM,EAChB,UAAU,GAAE,MAAM,EAAO,EACzB,eAAe,CAAC,EAAE,MAAM,GACvB,WAAW,EAAE,CA+Bf;AAwBD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI9E;AAeD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKxD;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAelE;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQhE;AAID,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAoBtD;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAsVxD"}
1
+ {"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../../src/routes/documents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AAGpD,OAAO,EAAiB,WAAW,EAAE,MAAM,eAAe,CAAC;AAc3D,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAiBrE;AAED,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,MAAM,EAChB,UAAU,GAAE,MAAM,EAAO,EACzB,eAAe,CAAC,EAAE,MAAM,GACvB,WAAW,EAAE,CA+Bf;AAwBD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI9E;AAeD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKxD;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAelE;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQhE;AAID,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAoBtD;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAsVxD"}
@@ -14,7 +14,6 @@ exports.documentsRouter = documentsRouter;
14
14
  const express_1 = require("express");
15
15
  const fs_1 = __importDefault(require("fs"));
16
16
  const path_1 = __importDefault(require("path"));
17
- const marked_1 = require("marked");
18
17
  const parser_1 = require("../lib/parser");
19
18
  const config_1 = require("../lib/config");
20
19
  const metadata_1 = require("../lib/metadata");
@@ -301,7 +300,7 @@ function documentsRouter(docsPath) {
301
300
  try {
302
301
  const content = fs_1.default.readFileSync(filePath, "utf-8");
303
302
  const meta = (0, parser_1.parseFilename)(path_1.default.basename(filePath), filenamePattern);
304
- const html = decorateFileLinks(marked_1.marked.parse((0, compareBlock_1.preprocessCompareBlocks)(stripFrontmatter(content), markedOpts), markedOpts));
303
+ const html = decorateFileLinks((0, compareBlock_1.renderMarkdownWithCompareBlocks)(stripFrontmatter(content), markedOpts));
305
304
  res.json({
306
305
  ...meta,
307
306
  id: req.params.id,
@@ -331,7 +330,7 @@ function documentsRouter(docsPath) {
331
330
  const folder = subdir !== "."
332
331
  ? subdir.split("/")
333
332
  : null;
334
- const html = marked_1.marked.parse((0, compareBlock_1.preprocessCompareBlocks)(stripFrontmatter(content), markedOpts), markedOpts);
333
+ const html = (0, compareBlock_1.renderMarkdownWithCompareBlocks)(stripFrontmatter(content), markedOpts);
335
334
  res.json({ ...metadata, folder, content, html });
336
335
  }
337
336
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"documents.js","sourceRoot":"","sources":["../../../src/routes/documents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"documents.js","sourceRoot":"","sources":["../../../src/routes/documents.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../src/routes/export.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AAyLpD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA+IrD"}
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../src/routes/export.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AAwLpD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA+IrD"}
@@ -8,7 +8,6 @@ const express_1 = require("express");
8
8
  const fs_1 = __importDefault(require("fs"));
9
9
  const path_1 = __importDefault(require("path"));
10
10
  const archiver_1 = __importDefault(require("archiver"));
11
- const marked_1 = require("marked");
12
11
  const config_1 = require("../lib/config");
13
12
  const documents_1 = require("./documents");
14
13
  const compareBlock_1 = require("../lib/compareBlock");
@@ -199,7 +198,7 @@ function exportRouter(docsPath) {
199
198
  if (!filePath || !fs_1.default.existsSync(filePath))
200
199
  continue;
201
200
  const raw = fs_1.default.readFileSync(filePath, 'utf-8');
202
- const bodyHtml = marked_1.marked.parse((0, compareBlock_1.preprocessCompareBlocks)((0, documents_1.stripFrontmatter)(raw), markedOpts), markedOpts)
201
+ const bodyHtml = (0, compareBlock_1.renderMarkdownWithCompareBlocks)((0, documents_1.stripFrontmatter)(raw), markedOpts)
203
202
  // Strip the local-search widget placeholder — feature is viewer-only
204
203
  .replace(/<div\s+data-ld-local-search(?:="[^"]*")?\s*>\s*<\/div>/gi, '');
205
204
  const baseName = sanitizeFilename(path_1.default.basename(doc.filename, '.md'));
@@ -1 +1 @@
1
- {"version":3,"file":"export.js","sourceRoot":"","sources":["../../../src/routes/export.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../../../src/routes/export.ts"],"names":[],"mappings":"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"}
@@ -48,5 +48,60 @@
48
48
  "exclusiveFolderExpansion": true,
49
49
  "exclusiveCategoryExpansion": true,
50
50
  "codeBlockMaxHeight": 400,
51
- "markdownSoftBreaks": true
51
+ "markdownSoftBreaks": true,
52
+ "imageRoundedCorners": true,
53
+ "imageCentered": true,
54
+ "imageBorder": true,
55
+ "codeBlockLightTheme": false,
56
+ "diagramDefaults": {
57
+ "arrows": {
58
+ "arrowDir": "to",
59
+ "dashes": false,
60
+ "fontSize": 16
61
+ },
62
+ "shapes": {
63
+ "box": {
64
+ "width": 146,
65
+ "height": 52,
66
+ "fontSize": 16,
67
+ "colorKey": "c-lime"
68
+ },
69
+ "ellipse": {
70
+ "width": 118,
71
+ "height": 67,
72
+ "fontSize": 16,
73
+ "colorKey": "c-red"
74
+ },
75
+ "circle": {
76
+ "width": 90,
77
+ "height": 81,
78
+ "fontSize": 16,
79
+ "colorKey": "c-amber"
80
+ },
81
+ "database": {
82
+ "width": 121,
83
+ "height": 106,
84
+ "fontSize": 16,
85
+ "colorKey": "c-cyan"
86
+ },
87
+ "actor": {
88
+ "width": 30,
89
+ "height": 52,
90
+ "fontSize": 16,
91
+ "colorKey": "c-gray"
92
+ },
93
+ "post-it": {
94
+ "width": 120,
95
+ "height": 100,
96
+ "fontSize": 13,
97
+ "colorKey": "c-orange"
98
+ },
99
+ "text-free": {
100
+ "width": 123,
101
+ "height": 44,
102
+ "fontSize": 16,
103
+ "colorKey": "c-gray"
104
+ }
105
+ }
106
+ }
52
107
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "living-ai-documentation",
3
- "version": "3.9.0",
3
+ "version": "3.10.0",
4
4
  "description": "Local Markdown documentation hub with a built-in MCP server — coding agents create ADRs, draw diagrams and detect drift while you code.",
5
5
  "main": "dist/src/server.js",
6
6
  "bin": {