@imenam/simple-scraper 1.0.27 → 1.0.29

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{--bg:#0d0f14;--sidebar:#11131a;--surface:#151821;--inset:#11131a;--raised:#1b1f2e;--hover:#1a1e2b;--border:#232735;--border-strong:#2c3142;--divider:#1f2330;--text:#e7e9f0;--text-2:#c3c8d6;--muted:#7c8296;--faint:#5d6377;--accent:#6d7cff;--accent-hover:#7f8cff;--accent-text:#8b95ff;--ok:#34d399;--warn:#f5b14c;--danger:#f87171;--radius:12px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);min-height:100vh;font-size:13px;line-height:1.45}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}button:disabled{cursor:not-allowed;opacity:.5}input,select{font:inherit;color:inherit}.muted{color:var(--muted)}.faint{color:var(--faint)}.accent{color:var(--accent-text);align-items:center;gap:4px;display:inline-flex}.ok{color:var(--ok)}.warn{color:var(--warn)}.danger{color:var(--danger)}.small{font-size:12px}.mono{font-family:JetBrains Mono,Consolas,monospace;font-size:13px;font-weight:600}.stack{flex-direction:column;min-width:0;display:flex}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.push-right{margin-left:auto}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.layout{min-height:100vh;display:flex}.main{flex:1;min-width:0}.page{flex-direction:column;gap:20px;max-width:1208px;padding:36px 40px 48px;display:flex}.page-head{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.page-head h1,.site-head h1{letter-spacing:-.01em;font-size:22px;font-weight:600}.page-sub{color:var(--muted);margin-top:6px}.sidebar{background:var(--sidebar);border-right:1px solid var(--divider);flex-direction:column;flex-shrink:0;width:232px;height:100vh;padding:22px 12px 20px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;margin-bottom:32px;padding:0 8px;display:flex}.brand-logo{width:34px;height:34px;color:var(--accent-text);background:#1d2135;border-radius:9px;place-items:center;display:grid}.brand-name{font-size:14px;font-weight:600;display:block}.brand-sub{color:var(--muted);font-size:12px;display:block}.nav{flex-direction:column;gap:4px;display:flex}.nav-item{color:#a3a9ba;border-radius:8px;align-items:center;gap:10px;height:36px;padding:0 12px;font-weight:500;transition:background .1s,color .1s;display:flex}.nav-item svg{color:var(--muted)}.nav-item:hover{background:var(--hover);color:var(--text)}.nav-item.active{background:var(--raised);color:var(--text)}.nav-item.active svg{color:var(--accent-text)}.nav-label{flex:1}.nav-count{text-align:center;min-width:24px;color:var(--muted);font-size:11px}.nav-count-alert{color:var(--danger);background:#f8717129;border-radius:9px;padding:1px 6px;font-weight:600}.keepalive-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;margin-top:auto;padding:12px 14px}.keepalive-title{align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex}.keepalive-detail{color:var(--muted);margin-top:6px;font-size:12px}.dot{background:currentColor;border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.dot-ok{background:var(--ok)}.dot-muted{background:var(--faint)}.btn{white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:8px;height:36px;padding:0 16px;font-weight:600;transition:background .1s,border-color .1s;display:inline-flex}.btn-lg{height:38px}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-ghost{background:var(--surface);border:1px solid var(--border-strong);color:var(--text-2);font-weight:500}.btn-ghost:hover:not(:disabled){background:var(--hover)}.btn-warn{background:var(--warn);color:#1a1405}.btn-danger-ghost{color:var(--danger);background:#f871710f;border:1px solid #f871714d;font-weight:500}.btn-danger-ghost:hover:not(:disabled){background:#f871711f}.icon-btn{width:34px;height:34px;color:var(--muted);border-radius:8px;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--hover);color:var(--text)}.icon-btn.bordered{border:1px solid var(--border-strong);color:var(--text-2)}.link-btn{color:var(--accent-text);align-items:center;gap:6px;font-weight:500;display:inline-flex}.link-btn.muted{color:var(--muted)}.link{color:var(--accent-text);font-size:12px;font-weight:500}.banner{border-radius:var(--radius);border:1px solid;align-items:center;gap:14px;padding:12px 12px 12px 20px;display:flex}.banner>div{flex:1}.banner-title{font-weight:600}.banner-text{margin-top:2px;font-size:12px}.banner-warn{color:#f5d29a;background:#f5b14c12;border-color:#f5b14c47}.banner-warn>svg{color:var(--warn)}.banner-warn .banner-text{color:#b9a785}.banner-danger{color:#f8b4b4;background:#f8717112;border-color:#f8717147}.banner-danger>svg{color:var(--danger)}.hint{border:1px solid var(--border);border-radius:var(--radius);color:var(--muted);align-items:flex-start;gap:14px;padding:16px 20px;font-size:12px;line-height:1.6;display:flex}.hint svg{flex-shrink:0;margin-top:1px}.empty-card{text-align:center;border:1px dashed var(--border-strong);border-radius:var(--radius);color:var(--muted);flex-direction:column;align-items:center;gap:10px;padding:48px 24px;display:flex}.empty-card .empty-title{color:var(--text);font-size:15px;font-weight:600}.empty-card p{max-width:420px}.empty-card .btn{margin-top:6px}.site-grid,.site-row{grid-template-columns:minmax(220px,1.8fr) 150px minmax(170px,1.1fr) minmax(130px,.8fr) 190px;align-items:center;column-gap:20px;display:grid}.list-head{letter-spacing:.04em;text-transform:uppercase;color:var(--faint);padding:4px 20px 0;font-size:11px;font-weight:600}.site-list{flex-direction:column;gap:10px;margin-top:-8px;list-style:none;display:flex}.site-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;min-height:76px;padding:14px 16px 14px 20px;transition:border-color .1s}.site-row:hover{border-color:var(--border-strong)}.col-site{align-items:center;gap:16px;min-width:0;display:flex}.col-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.col-actions .btn{width:140px}.row-title{font-size:14px;font-weight:600}.row-main{font-size:13px}.row-sub{color:var(--muted);font-size:12px}.favicon{border-radius:10px;flex-shrink:0;place-items:center;font-weight:700;display:inline-grid}.favicon-md{width:40px;height:40px;font-size:16px}.favicon-lg{border-radius:12px;width:48px;height:48px;font-size:19px}.tone-violet{color:#c4a3ff;background:#2a1f3d}.tone-green{color:#6ee7b7;background:#1d2f2a}.tone-blue{color:#93b4ff;background:#1d2740}.tone-amber{color:#f5b14c;background:#3a2a1a}.tone-rose{color:#fda4bf;background:#3a1d27}.tone-teal{color:#5eead4;background:#16302f}.pill{white-space:nowrap;border-radius:12px;align-items:center;gap:6px;width:fit-content;height:24px;padding:0 11px;font-size:12px;font-weight:500;display:inline-flex}.pill .dot{width:6px;height:6px}.pill-ok{color:var(--ok);background:#34d3991f}.pill-danger{color:var(--danger);background:#f871711f}.pill-muted{color:#a3a9ba;background:#7c829624}.menu-anchor{position:relative}.menu{z-index:20;background:var(--raised);border:1px solid var(--border-strong);border-radius:10px;flex-direction:column;min-width:210px;padding:6px;display:flex;position:absolute;top:40px;right:0;box-shadow:0 12px 32px #00000073}.menu button{text-align:left;color:var(--text-2);border-radius:6px;padding:8px 10px}.menu button:hover:not(:disabled){background:var(--hover)}.menu button.danger{color:var(--danger)}.menu-error{color:var(--danger);padding:6px 10px;font-size:12px}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px}.card-head{border-bottom:1px solid var(--divider);padding:20px 24px 16px}.card-head h2{font-size:15px;font-weight:600}.card-head p{color:var(--muted);margin-top:4px;font-size:12px}.card-head-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.card-body{flex-direction:column;gap:18px;padding:20px 24px 24px;display:flex}.card-body.dimmed{opacity:.55}.field{grid-template-columns:200px 1fr;align-items:start;gap:16px;display:grid}.field-label{color:var(--text-2);flex-direction:column;gap:4px;padding-top:8px;font-weight:500;display:flex}.field-help{color:var(--faint);font-size:12px;font-weight:400}.field-control{flex-direction:column;gap:10px;min-width:0;display:flex}.input{background:var(--inset);border:1px solid var(--border-strong);border-radius:8px;outline:none;width:100%;height:36px;padding:0 14px}.input:focus{border-color:var(--accent)}.input::placeholder{color:var(--faint)}.select{width:auto;min-width:200px}.segmented{background:var(--inset);border:1px solid var(--border);border-radius:8px;gap:2px;padding:3px;display:flex}.segmented button{height:26px;color:var(--muted);border-radius:6px;flex:1;font-size:12px;font-weight:500}.segmented button:hover{color:var(--text-2)}.segmented button.active{color:var(--text);background:#252a3b;font-weight:600}.toggle{background:var(--border-strong);border-radius:11px;flex-shrink:0;width:40px;height:22px;transition:background .15s;position:relative}.toggle span{background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:3px;left:3px}.toggle.on{background:var(--accent)}.toggle.on span{transform:translate(18px)}.chips{background:var(--inset);border:1px solid var(--border-strong);cursor:text;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;min-height:36px;padding:4px;display:flex}.chips:focus-within{border-color:var(--accent)}.chip{height:26px;color:var(--text-2);background:#1d2130;border-radius:6px;align-items:center;gap:8px;padding:0 6px 0 10px;font-size:12px;display:inline-flex}.chip button{color:var(--faint);place-items:center;display:grid}.chip button:hover{color:var(--text)}.chip-input{background:0 0;border:none;outline:none;flex:1;min-width:120px;height:26px;padding:0 6px}.chip-input::placeholder{color:var(--accent-text)}.checkbox{cursor:pointer;align-items:center;gap:10px;padding-top:8px;display:inline-flex}.checkbox input{opacity:0;pointer-events:none;position:absolute}.checkbox-box{border:1px solid var(--border-strong);color:#0000;border-radius:4px;place-items:center;width:16px;height:16px;display:grid}.checkbox input:checked+.checkbox-box{background:var(--accent);border-color:var(--accent);color:#fff}.checkbox input:focus-visible+.checkbox-box{outline:2px solid var(--accent-text)}.form-error{color:var(--danger);font-size:12px}.save-bar{background:var(--raised);border:1px solid var(--border-strong);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:16px;padding:12px 12px 12px 20px;display:flex;position:sticky;bottom:16px;box-shadow:0 12px 32px #00000073}.save-bar-actions{gap:10px;display:flex}.back{color:var(--muted);align-items:center;gap:4px;width:fit-content;margin-bottom:-8px;font-size:12px;display:inline-flex}.back:hover{color:var(--text)}.site-head{align-items:center;gap:16px;display:flex}.site-head-text{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.site-head-meta{align-items:center;gap:12px;min-width:0;display:flex}.site-head-meta>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.site-head-actions{gap:12px;display:flex}.detail-grid{grid-template-columns:minmax(0,1fr) 376px;align-items:start;gap:24px;display:grid}.detail-main,.detail-side{flex-direction:column;gap:20px;display:flex}.events{gap:6px}.event{align-items:flex-start;gap:12px;padding:6px 0;display:flex}.event-icon{border-radius:50%;flex-shrink:0;place-items:center;width:28px;height:28px;display:grid}.tone-bg-ok{color:var(--ok);background:#34d3991f}.tone-bg-danger{color:var(--danger);background:#f8717124}.tone-bg-warn{color:var(--warn);background:#f5b14c24}.tone-bg-accent{color:var(--accent-text);background:#6d7cff29}.event-text{flex:1;min-width:0}.event-title{font-size:13px}.event-site{color:var(--muted)}.event-detail{color:var(--faint);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.event-time{color:var(--muted);white-space:nowrap;font-size:12px}.kv{color:var(--muted);justify-content:space-between;display:flex}.kv span:last-child{color:var(--text)}.data-actions{grid-template-columns:1fr 1fr;gap:12px;margin-top:4px;display:grid}.data-actions .btn{padding:0 10px;font-size:12px}.help-list{color:var(--muted);gap:12px;font-size:12px;line-height:1.6}.help-list strong{color:var(--text-2);font-weight:600}.modal-overlay{z-index:50;background:#05060ab8;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid #2a2f40;border-radius:16px;width:100%;box-shadow:0 24px 64px #00000080}.modal-login{max-width:960px}.modal-head{border-bottom:1px solid var(--border);align-items:center;gap:16px;padding:24px 28px 22px 32px;display:flex}.modal-head-text{flex:1}.modal-head h3{font-size:18px;font-weight:600}.modal-login-body{grid-template-columns:300px 1fr;gap:40px;padding:28px 32px;display:grid}.modal-foot{border-top:1px solid var(--border);justify-content:space-between;align-items:center;padding:18px 32px 20px;display:flex}.modal-foot-actions{gap:12px;display:flex}.login-side{flex-direction:column;justify-content:space-between;gap:24px;display:flex}.steps{flex-direction:column;gap:32px;display:flex;position:relative}.steps:before{content:"";background:var(--border-strong);width:2px;position:absolute;top:28px;bottom:28px;left:11px}.step{gap:16px;display:flex;position:relative}.step-dot{background:var(--surface);border:2px solid var(--border-strong);width:24px;height:24px;color:var(--muted);border-radius:50%;flex-shrink:0;place-items:center;font-size:12px;font-weight:700;display:grid}.step-done .step-dot{color:var(--ok);background:#193a33;border-color:#193a33}.step-current .step-dot{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 0 0 4px #6d7cff2e}.step-title{color:var(--text);padding-top:2px;font-weight:600}.step-done .step-title{color:#a3a9ba}.step-todo .step-title{color:var(--muted)}.step-text{color:#a3a9ba;margin-top:4px;font-size:12px}.step-done .step-text{color:var(--muted)}.step-todo .step-text{color:var(--faint)}.note{background:var(--inset);border:1px solid var(--border);color:var(--muted);border-radius:10px;gap:10px;padding:14px;font-size:12px;line-height:1.6;display:flex}.note svg{flex-shrink:0}.login-main{flex-direction:column;gap:14px;min-width:0;display:flex}.browser-frame{border:1px solid var(--border-strong);background:#f4f5f8;border-radius:12px;overflow:hidden}.browser-bar{background:#1d2130;align-items:center;gap:16px;height:38px;padding:0 14px;display:flex}.browser-dots{gap:6px;display:flex}.browser-dots i{background:#3a3f52;border-radius:50%;width:8px;height:8px}.browser-url{background:var(--inset);color:#a3a9ba;white-space:nowrap;text-overflow:ellipsis;border-radius:6px;flex:1;align-items:center;gap:8px;height:22px;padding:0 10px;font-size:11px;display:flex;overflow:hidden}.browser-view{aspect-ratio:16/10;background:#f4f5f8;place-items:center;display:grid;overflow:hidden}.browser-view img{object-fit:contain;object-position:top;width:100%;height:100%}.browser-placeholder{text-align:center;color:#5b6070;flex-direction:column;align-items:center;gap:10px;padding:24px;font-size:13px;display:flex}.viewer-shot .browser-placeholder{color:var(--muted)}.login-status{color:var(--text-2);align-items:center;gap:8px;font-weight:500;display:flex}.sessions-layout{grid-template-columns:340px minmax(0,1fr);align-items:start;gap:24px;display:grid}.session-list{flex-direction:column;gap:12px;list-style:none;display:flex}.session-card{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);cursor:pointer;gap:14px;padding:14px;display:flex}.session-card:hover{border-color:var(--border-strong)}.session-card.selected{border-color:var(--accent);box-shadow:inset 0 0 0 .5px var(--accent);background:#181c2a}.session-thumb{object-fit:cover;object-position:top;background:#eef0f5;border-radius:6px;flex-shrink:0;width:88px;height:60px}.session-card-text{flex:1;gap:4px}.session-card-foot{justify-content:space-between;align-items:center;margin-top:4px;display:flex}.viewer{background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden}.viewer-bar{border-bottom:1px solid var(--divider);align-items:center;gap:12px;padding:14px 20px;display:flex}.live{color:var(--ok);white-space:nowrap;align-items:center;gap:8px;font-size:12px;font-weight:600;display:inline-flex}.live .dot{width:6px;height:6px;box-shadow:0 0 0 3px #34d39933}.live-paused{color:var(--muted)}.live-paused .dot{box-shadow:none}.viewer-url{background:var(--inset);border:1px solid var(--border);min-width:0;height:34px;color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;border-radius:8px;flex:1;align-items:center;gap:8px;padding:0 12px;font-size:12px;display:flex;overflow:hidden}.viewer-url svg{color:var(--muted);flex-shrink:0}.viewer-shot{background:var(--inset);border-radius:8px;place-items:center;min-height:240px;margin:16px 20px;display:grid;overflow:hidden}.viewer-shot img{width:100%;display:block}.viewer-info{border-top:1px solid var(--divider);grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;padding:16px 20px 20px;display:grid}.viewer-info>div{flex-direction:column;gap:4px;min-width:0;display:flex}.viewer-info .label{text-transform:uppercase;letter-spacing:.04em;color:var(--faint);font-size:11px;font-weight:600}.viewer-console{justify-content:space-between;gap:8px;display:flex}.console{border-top:1px solid var(--divider);background:var(--inset);max-height:260px;padding:12px 20px;font-family:JetBrains Mono,Consolas,monospace;font-size:12px;overflow:auto}.console-line{color:var(--text-2);gap:12px;padding:2px 0;display:flex}.console-time{color:var(--faint)}.console-type{width:56px;color:var(--muted);flex-shrink:0}.console-error .console-type,.console-error .console-text{color:var(--danger)}.console-warn .console-type,.console-warning .console-type{color:var(--warn)}.console-text{white-space:pre-wrap;word-break:break-word}@media (width<=1100px){.detail-grid,.sessions-layout{grid-template-columns:1fr}.site-grid,.site-row{grid-template-columns:minmax(200px,1fr) 140px minmax(160px,1fr) 180px}.col-keep,.list-head span:nth-child(4){display:none}}
1
+ :root{--bg:#0d0f14;--sidebar:#11131a;--surface:#151821;--inset:#11131a;--raised:#1b1f2e;--hover:#1a1e2b;--border:#232735;--border-strong:#2c3142;--divider:#1f2330;--text:#e7e9f0;--text-2:#c3c8d6;--muted:#7c8296;--faint:#5d6377;--accent:#6d7cff;--accent-hover:#7f8cff;--accent-text:#8b95ff;--ok:#34d399;--warn:#f5b14c;--danger:#f87171;--radius:12px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);min-height:100vh;font-size:13px;line-height:1.45}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}button:disabled{cursor:not-allowed;opacity:.5}input,select{font:inherit;color:inherit}.muted{color:var(--muted)}.faint{color:var(--faint)}.accent{color:var(--accent-text);align-items:center;gap:4px;display:inline-flex}.ok{color:var(--ok)}.warn{color:var(--warn)}.danger{color:var(--danger)}.small{font-size:12px}.mono{font-family:JetBrains Mono,Consolas,monospace;font-size:13px;font-weight:600}.stack{flex-direction:column;min-width:0;display:flex}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.push-right{margin-left:auto}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.layout{min-height:100vh;display:flex}.main{flex:1;min-width:0}.page{flex-direction:column;gap:20px;max-width:1208px;padding:36px 40px 48px;display:flex}.page-head{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.page-head h1,.site-head h1{letter-spacing:-.01em;font-size:22px;font-weight:600}.page-sub{color:var(--muted);margin-top:6px}.sidebar{background:var(--sidebar);border-right:1px solid var(--divider);flex-direction:column;flex-shrink:0;width:232px;height:100vh;padding:22px 12px 20px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;margin-bottom:32px;padding:0 8px;display:flex}.brand-logo{width:34px;height:34px;color:var(--accent-text);background:#1d2135;border-radius:9px;place-items:center;display:grid}.brand-name{font-size:14px;font-weight:600;display:block}.brand-sub{color:var(--muted);font-size:12px;display:block}.nav{flex-direction:column;gap:4px;display:flex}.nav-item{color:#a3a9ba;border-radius:8px;align-items:center;gap:10px;height:36px;padding:0 12px;font-weight:500;transition:background .1s,color .1s;display:flex}.nav-item svg{color:var(--muted)}.nav-item:hover{background:var(--hover);color:var(--text)}.nav-item.active{background:var(--raised);color:var(--text)}.nav-item.active svg{color:var(--accent-text)}.nav-label{flex:1}.nav-count{text-align:center;min-width:24px;color:var(--muted);font-size:11px}.nav-count-alert{color:var(--danger);background:#f8717129;border-radius:9px;padding:1px 6px;font-weight:600}.keepalive-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;margin-top:auto;padding:12px 14px}.keepalive-title{align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex}.keepalive-detail{color:var(--muted);margin-top:6px;font-size:12px}.dot{background:currentColor;border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.dot-ok{background:var(--ok)}.dot-muted{background:var(--faint)}.btn{white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:8px;height:36px;padding:0 16px;font-weight:600;transition:background .1s,border-color .1s;display:inline-flex}.btn-lg{height:38px}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-ghost{background:var(--surface);border:1px solid var(--border-strong);color:var(--text-2);font-weight:500}.btn-ghost:hover:not(:disabled){background:var(--hover)}.btn-warn{background:var(--warn);color:#1a1405}.btn-danger-ghost{color:var(--danger);background:#f871710f;border:1px solid #f871714d;font-weight:500}.btn-danger-ghost:hover:not(:disabled){background:#f871711f}.icon-btn{width:34px;height:34px;color:var(--muted);border-radius:8px;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--hover);color:var(--text)}.icon-btn.bordered{border:1px solid var(--border-strong);color:var(--text-2)}.link-btn{color:var(--accent-text);align-items:center;gap:6px;font-weight:500;display:inline-flex}.link-btn.muted{color:var(--muted)}.link{color:var(--accent-text);font-size:12px;font-weight:500}.banner{border-radius:var(--radius);border:1px solid;align-items:center;gap:14px;padding:12px 12px 12px 20px;display:flex}.banner>div{flex:1}.banner-title{font-weight:600}.banner-text{margin-top:2px;font-size:12px}.banner-warn{color:#f5d29a;background:#f5b14c12;border-color:#f5b14c47}.banner-warn>svg{color:var(--warn)}.banner-warn .banner-text{color:#b9a785}.banner-danger{color:#f8b4b4;background:#f8717112;border-color:#f8717147}.banner-danger>svg{color:var(--danger)}.hint{border:1px solid var(--border);border-radius:var(--radius);color:var(--muted);align-items:flex-start;gap:14px;padding:16px 20px;font-size:12px;line-height:1.6;display:flex}.hint svg{flex-shrink:0;margin-top:1px}.empty-card{text-align:center;border:1px dashed var(--border-strong);border-radius:var(--radius);color:var(--muted);flex-direction:column;align-items:center;gap:10px;padding:48px 24px;display:flex}.empty-card .empty-title{color:var(--text);font-size:15px;font-weight:600}.empty-card p{max-width:420px}.empty-card .btn{margin-top:6px}.site-grid,.site-row{grid-template-columns:minmax(220px,1.8fr) 150px minmax(170px,1.1fr) minmax(130px,.8fr) 190px;align-items:center;column-gap:20px;display:grid}.list-head{letter-spacing:.04em;text-transform:uppercase;color:var(--faint);padding:4px 20px 0;font-size:11px;font-weight:600}.site-list{flex-direction:column;gap:10px;margin-top:-8px;list-style:none;display:flex}.site-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;min-height:76px;padding:14px 16px 14px 20px;transition:border-color .1s}.site-row:hover{border-color:var(--border-strong)}.col-site{align-items:center;gap:16px;min-width:0;display:flex}.col-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.col-actions .btn{width:140px}.row-title{font-size:14px;font-weight:600}.row-main{font-size:13px}.row-sub{color:var(--muted);font-size:12px}.favicon{border-radius:10px;flex-shrink:0;place-items:center;font-weight:700;display:inline-grid}.favicon-md{width:40px;height:40px;font-size:16px}.favicon-lg{border-radius:12px;width:48px;height:48px;font-size:19px}.tone-violet{color:#c4a3ff;background:#2a1f3d}.tone-green{color:#6ee7b7;background:#1d2f2a}.tone-blue{color:#93b4ff;background:#1d2740}.tone-amber{color:#f5b14c;background:#3a2a1a}.tone-rose{color:#fda4bf;background:#3a1d27}.tone-teal{color:#5eead4;background:#16302f}.pill{white-space:nowrap;border-radius:12px;align-items:center;gap:6px;width:fit-content;height:24px;padding:0 11px;font-size:12px;font-weight:500;display:inline-flex}.pill .dot{width:6px;height:6px}.pill-ok{color:var(--ok);background:#34d3991f}.pill-danger{color:var(--danger);background:#f871711f}.pill-muted{color:#a3a9ba;background:#7c829624}.menu-anchor{position:relative}.menu{z-index:20;background:var(--raised);border:1px solid var(--border-strong);border-radius:10px;flex-direction:column;min-width:210px;padding:6px;display:flex;position:absolute;top:40px;right:0;box-shadow:0 12px 32px #00000073}.menu button{text-align:left;color:var(--text-2);border-radius:6px;padding:8px 10px}.menu button:hover:not(:disabled){background:var(--hover)}.menu button.danger{color:var(--danger)}.menu-error{color:var(--danger);padding:6px 10px;font-size:12px}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px}.card-head{border-bottom:1px solid var(--divider);padding:20px 24px 16px}.card-head h2{font-size:15px;font-weight:600}.card-head p{color:var(--muted);margin-top:4px;font-size:12px}.card-head-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.card-body{flex-direction:column;gap:18px;padding:20px 24px 24px;display:flex}.card-body.dimmed{opacity:.55}.field{grid-template-columns:200px 1fr;align-items:start;gap:16px;display:grid}.field-label{color:var(--text-2);flex-direction:column;gap:4px;padding-top:8px;font-weight:500;display:flex}.field-help{color:var(--faint);font-size:12px;font-weight:400}.field-control{flex-direction:column;gap:10px;min-width:0;display:flex}.input{background:var(--inset);border:1px solid var(--border-strong);border-radius:8px;outline:none;width:100%;height:36px;padding:0 14px}.input:focus{border-color:var(--accent)}.input::placeholder{color:var(--faint)}.select{width:auto;min-width:200px}.segmented{background:var(--inset);border:1px solid var(--border);border-radius:8px;gap:2px;padding:3px;display:flex}.segmented button{height:26px;color:var(--muted);border-radius:6px;flex:1;font-size:12px;font-weight:500}.segmented button:hover{color:var(--text-2)}.segmented button.active{color:var(--text);background:#252a3b;font-weight:600}.toggle{background:var(--border-strong);border-radius:11px;flex-shrink:0;width:40px;height:22px;transition:background .15s;position:relative}.toggle span{background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:3px;left:3px}.toggle.on{background:var(--accent)}.toggle.on span{transform:translate(18px)}.chips{background:var(--inset);border:1px solid var(--border-strong);cursor:text;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;min-height:36px;padding:4px;display:flex}.chips:focus-within{border-color:var(--accent)}.chip{height:26px;color:var(--text-2);background:#1d2130;border-radius:6px;align-items:center;gap:8px;padding:0 6px 0 10px;font-size:12px;display:inline-flex}.chip button{color:var(--faint);place-items:center;display:grid}.chip button:hover{color:var(--text)}.chip-input{background:0 0;border:none;outline:none;flex:1;min-width:120px;height:26px;padding:0 6px}.chip-input::placeholder{color:var(--accent-text)}.checkbox{cursor:pointer;align-items:center;gap:10px;padding-top:8px;display:inline-flex}.checkbox input{opacity:0;pointer-events:none;position:absolute}.checkbox-box{border:1px solid var(--border-strong);color:#0000;border-radius:4px;place-items:center;width:16px;height:16px;display:grid}.checkbox input:checked+.checkbox-box{background:var(--accent);border-color:var(--accent);color:#fff}.checkbox input:focus-visible+.checkbox-box{outline:2px solid var(--accent-text)}.form-error{color:var(--danger);font-size:12px}.save-bar{background:var(--raised);border:1px solid var(--border-strong);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:16px;padding:12px 12px 12px 20px;display:flex;position:sticky;bottom:16px;box-shadow:0 12px 32px #00000073}.save-bar-actions{gap:10px;display:flex}.back{color:var(--muted);align-items:center;gap:4px;width:fit-content;margin-bottom:-8px;font-size:12px;display:inline-flex}.back:hover{color:var(--text)}.site-head{align-items:center;gap:16px;display:flex}.site-head-text{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.site-head-meta{align-items:center;gap:12px;min-width:0;display:flex}.site-head-meta>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.site-head-actions{gap:12px;display:flex}.detail-grid{grid-template-columns:minmax(0,1fr) 376px;align-items:start;gap:24px;display:grid}.detail-main,.detail-side{flex-direction:column;gap:20px;display:flex}.events{gap:6px}.event{align-items:flex-start;gap:12px;padding:6px 0;display:flex}.event-icon{border-radius:50%;flex-shrink:0;place-items:center;width:28px;height:28px;display:grid}.tone-bg-ok{color:var(--ok);background:#34d3991f}.tone-bg-danger{color:var(--danger);background:#f8717124}.tone-bg-warn{color:var(--warn);background:#f5b14c24}.tone-bg-accent{color:var(--accent-text);background:#6d7cff29}.event-text{flex:1;min-width:0}.event-title{font-size:13px}.event-site{color:var(--muted)}.event-detail{color:var(--faint);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.event-time{color:var(--muted);white-space:nowrap;font-size:12px}.kv{color:var(--muted);justify-content:space-between;display:flex}.kv span:last-child{color:var(--text)}.data-actions{grid-template-columns:1fr 1fr;gap:12px;margin-top:4px;display:grid}.data-actions .btn{padding:0 10px;font-size:12px}.help-list{color:var(--muted);gap:12px;font-size:12px;line-height:1.6}.help-list strong{color:var(--text-2);font-weight:600}.modal-overlay{z-index:50;background:#05060ab8;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid #2a2f40;border-radius:16px;width:100%;box-shadow:0 24px 64px #00000080}.modal-login,.modal-picker{flex-direction:column;max-width:min(1560px,96vw);max-height:calc(100vh - 48px);display:flex}.modal-login-body,.modal-picker-body{min-height:0;overflow:auto}.modal-login .remote-view,.modal-picker .remote-view{justify-content:center;display:flex}.modal-login .remote-view img,.modal-picker .remote-view img{width:auto;max-width:100%;max-height:calc(100vh - 320px)}.modal-head{border-bottom:1px solid var(--border);align-items:center;gap:16px;padding:24px 28px 22px 32px;display:flex}.modal-head-text{flex:1}.modal-head h3{font-size:18px;font-weight:600}.modal-login-body{grid-template-columns:260px minmax(0,1fr);gap:32px;padding:24px 32px;display:grid}.modal-picker-body{grid-template-columns:minmax(0,1fr) 320px;gap:28px;padding:24px 32px 28px;display:grid}.modal-foot{border-top:1px solid var(--border);justify-content:space-between;align-items:center;padding:18px 32px 20px;display:flex}.modal-foot-actions{gap:12px;display:flex}.login-side{flex-direction:column;justify-content:space-between;gap:24px;display:flex}.steps{flex-direction:column;gap:32px;display:flex;position:relative}.steps:before{content:"";background:var(--border-strong);width:2px;position:absolute;top:28px;bottom:28px;left:11px}.step{gap:16px;display:flex;position:relative}.step-dot{background:var(--surface);border:2px solid var(--border-strong);width:24px;height:24px;color:var(--muted);border-radius:50%;flex-shrink:0;place-items:center;font-size:12px;font-weight:700;display:grid}.step-done .step-dot{color:var(--ok);background:#193a33;border-color:#193a33}.step-current .step-dot{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 0 0 4px #6d7cff2e}.step-title{color:var(--text);padding-top:2px;font-weight:600}.step-done .step-title{color:#a3a9ba}.step-todo .step-title{color:var(--muted)}.step-text{color:#a3a9ba;margin-top:4px;font-size:12px}.step-done .step-text{color:var(--muted)}.step-todo .step-text{color:var(--faint)}.note{background:var(--inset);border:1px solid var(--border);color:var(--muted);border-radius:10px;gap:10px;padding:14px;font-size:12px;line-height:1.6;display:flex}.note svg{flex-shrink:0}.login-main{flex-direction:column;gap:14px;min-width:0;display:flex}.browser-frame{border:1px solid var(--border-strong);background:#f4f5f8;border-radius:12px;overflow:hidden}.browser-bar{background:#1d2130;align-items:center;gap:16px;height:38px;padding:0 14px;display:flex}.browser-dots{gap:6px;display:flex}.browser-dots i{background:#3a3f52;border-radius:50%;width:8px;height:8px}.browser-url{background:var(--inset);color:#a3a9ba;white-space:nowrap;text-overflow:ellipsis;border-radius:6px;flex:1;align-items:center;gap:8px;height:22px;padding:0 10px;font-size:11px;display:flex;overflow:hidden}.browser-view{background:#f4f5f8;place-items:center;min-height:320px;display:grid;overflow:hidden}.browser-placeholder{text-align:center;color:#5b6070;flex-direction:column;align-items:center;gap:10px;padding:24px;font-size:13px;display:flex}.viewer-shot .browser-placeholder{color:var(--muted)}.login-status{color:var(--text-2);align-items:center;gap:8px;font-weight:500;display:flex}.sessions-layout{grid-template-columns:340px minmax(0,1fr);align-items:start;gap:24px;display:grid}.session-list{flex-direction:column;gap:12px;list-style:none;display:flex}.session-card{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);cursor:pointer;gap:14px;padding:14px;display:flex}.session-card:hover{border-color:var(--border-strong)}.session-card.selected{border-color:var(--accent);box-shadow:inset 0 0 0 .5px var(--accent);background:#181c2a}.session-thumb{object-fit:cover;object-position:top;background:#eef0f5;border-radius:6px;flex-shrink:0;width:88px;height:60px}.session-card-text{flex:1;gap:4px}.session-card-foot{justify-content:space-between;align-items:center;margin-top:4px;display:flex}.viewer{background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden}.viewer-bar{border-bottom:1px solid var(--divider);align-items:center;gap:12px;padding:14px 20px;display:flex}.live{color:var(--ok);white-space:nowrap;align-items:center;gap:8px;font-size:12px;font-weight:600;display:inline-flex}.live .dot{width:6px;height:6px;box-shadow:0 0 0 3px #34d39933}.live-paused{color:var(--muted)}.live-paused .dot{box-shadow:none}.viewer-url{background:var(--inset);border:1px solid var(--border);min-width:0;height:34px;color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;border-radius:8px;flex:1;align-items:center;gap:8px;padding:0 12px;font-size:12px;display:flex;overflow:hidden}.viewer-url svg{color:var(--muted);flex-shrink:0}.viewer-shot{background:var(--inset);border-radius:8px;place-items:center;min-height:240px;margin:16px 20px;display:grid;overflow:hidden}.viewer-shot img{width:100%;display:block}.viewer-info{border-top:1px solid var(--divider);grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;padding:16px 20px 20px;display:grid}.viewer-info>div{flex-direction:column;gap:4px;min-width:0;display:flex}.viewer-info .label{text-transform:uppercase;letter-spacing:.04em;color:var(--faint);font-size:11px;font-weight:600}.viewer-console{justify-content:space-between;gap:8px;display:flex}.console{border-top:1px solid var(--divider);background:var(--inset);max-height:260px;padding:12px 20px;font-family:JetBrains Mono,Consolas,monospace;font-size:12px;overflow:auto}.console-line{color:var(--text-2);gap:12px;padding:2px 0;display:flex}.console-time{color:var(--faint)}.console-type{width:56px;color:var(--muted);flex-shrink:0}.console-error .console-type,.console-error .console-text{color:var(--danger)}.console-warn .console-type,.console-warning .console-type{color:var(--warn)}.console-text{white-space:pre-wrap;word-break:break-word}@media (width<=1100px){.detail-grid,.sessions-layout{grid-template-columns:1fr}.site-grid,.site-row{grid-template-columns:minmax(200px,1fr) 140px minmax(160px,1fr) 180px}.col-keep,.list-head span:nth-child(4){display:none}}.remote-view{outline:none;align-self:start;width:100%;position:relative}.remote-view img{cursor:default;-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}.remote-view.crosshair img{cursor:crosshair}.remote-view.focused{box-shadow:inset 0 0 0 2px var(--accent)}.remote-hint{color:var(--text-2);pointer-events:none;background:#0d0f14d1;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;display:inline-flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.remote-broken{color:var(--text-2);background:#0d0f1499;place-items:center;display:grid;position:absolute;inset:0}.browser-btn{color:#a3a9ba;border-radius:6px;place-items:center;width:24px;height:22px;display:grid}.browser-btn:hover:not(:disabled){background:var(--inset);color:var(--text)}.browser-url input{min-width:0;color:inherit;background:0 0;border:none;outline:none;flex:1;font-size:11px}.refresh-select{color:var(--muted);white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:inline-flex}.refresh-select select{background:var(--inset);border:1px solid var(--border-strong);height:28px;color:var(--text-2);border-radius:6px;padding:0 6px;font-size:12px}.btn-sm{gap:6px;height:30px;padding:0 12px;font-size:12px}.signal-tools{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.signal-result{flex-wrap:wrap;gap:10px;margin-left:4px;display:inline-flex}.verdict{align-items:center;gap:4px;font-size:12px;font-weight:500;display:inline-flex}.verdict.ok{color:var(--ok)}.verdict.danger{color:var(--danger)}.picker-icon{width:40px;height:40px;color:var(--accent-text);background:#6d7cff29;border-radius:10px;flex-shrink:0;place-items:center;display:grid}.picker-side{flex-direction:column;gap:12px;min-width:0;max-height:640px;display:flex;overflow:auto}.picker-side h4{font-size:13px;font-weight:600}.picker-wait{align-items:center;gap:6px;display:inline-flex}.candidate{background:var(--inset);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:8px;padding:12px 14px;display:flex}.candidate.good{border-color:#34d39966}.candidate-label{color:var(--muted);font-size:12px}.candidate-selector{color:var(--text);word-break:break-all;font-family:JetBrains Mono,Consolas,monospace;font-size:12px}.candidate-verdicts{flex-wrap:wrap;gap:10px;display:flex}.candidate .btn{align-self:flex-start;height:30px;font-size:12px}.browser-frame:fullscreen{background:var(--bg);border:none;border-radius:0;flex-direction:column;display:flex}.browser-frame:fullscreen .browser-view{background:var(--bg);flex:1;min-height:0}.browser-frame:fullscreen .remote-view{place-items:center;width:100%;height:100%;display:grid}.browser-frame:fullscreen .remote-view img{width:auto;max-width:100%;height:auto;max-height:calc(100vh - 38px)}.viewer:fullscreen{border:none;border-radius:0;overflow:auto}.viewer:fullscreen .viewer-shot img{width:auto;max-width:100%;max-height:calc(100vh - 190px);margin:0 auto}
@@ -4,8 +4,8 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>Simple Scraper MCP</title>
7
- <script type="module" crossorigin src="./assets/index-CmU4YRqF.js"></script>
8
- <link rel="stylesheet" crossorigin href="./assets/index-olIqry-_.css">
7
+ <script type="module" crossorigin src="./assets/index-AyzOgMwI.js"></script>
8
+ <link rel="stylesheet" crossorigin href="./assets/index-BAs4dkz0.css">
9
9
  </head>
10
10
  <body>
11
11
  <div id="root"></div>
@@ -1,26 +0,0 @@
1
- import { getSession, listSessions } from './sessions.js';
2
- export function registerSessionRpc(launcher) {
3
- launcher.getIpcHub().onMessage(async (msg) => {
4
- const reply = (data, error) => launcher.getIpcHub().send({
5
- type: `${msg.type}_RESPONSE`,
6
- correlationId: msg.correlationId,
7
- data,
8
- error,
9
- timestamp: new Date().toISOString(),
10
- });
11
- try {
12
- if (msg.type === 'SESSION_LIST') {
13
- reply(listSessions());
14
- }
15
- else if (msg.type === 'SESSION_SCREENSHOT') {
16
- const { sessionId } = msg.data;
17
- const page = getSession(sessionId);
18
- const buffer = await page.screenshot({ type: 'jpeg', quality: 60 });
19
- reply({ base64: Buffer.from(buffer).toString('base64') });
20
- }
21
- }
22
- catch (err) {
23
- reply(undefined, err instanceof Error ? err.message : String(err));
24
- }
25
- });
26
- }