islandflow/docs/turns/2026-05-29-harden-drawer-dialog-focus.html
dirtydishes c57feee976
Some checks failed
CI / Validate (pull_request) Failing after 18s
harden drawer dialog focus behavior
2026-05-29 19:10:08 -04:00

360 lines
446 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Harden Drawer Dialog Focus</title>
<style>
:root {
color-scheme: dark;
--bg: #06080b;
--panel: #0d141b;
--panel-2: #111820;
--text: #e6edf4;
--muted: #90a0b2;
--faint: #6e7b8c;
--line: rgba(255, 255, 255, 0.1);
--amber: #f5a623;
--green: #25c17a;
--blue: #4da3ff;
}
* {
box-sizing: border-box;
}
body {
margin: 0;
background: var(--bg);
color: var(--text);
font: 15px/1.55 "IBM Plex Sans", system-ui, sans-serif;
}
main {
width: min(1040px, calc(100vw - 40px));
margin: 0 auto;
padding: 44px 0 56px;
}
header {
padding-bottom: 24px;
border-bottom: 1px solid var(--line);
}
h1,
h2,
h3 {
margin: 0;
font-family: Quantico, "IBM Plex Mono", monospace;
letter-spacing: 0.04em;
}
h1 {
font-size: 2rem;
line-height: 1.1;
}
h2 {
margin-top: 30px;
font-size: 1rem;
color: var(--amber);
}
p {
max-width: 76ch;
color: var(--muted);
}
.summary {
margin-top: 14px;
font-size: 1.03rem;
color: var(--text);
}
.meta {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-top: 18px;
}
.chip {
border: 1px solid var(--line);
border-radius: 999px;
padding: 4px 9px;
color: var(--muted);
font: 600 0.72rem/1.2 "IBM Plex Mono", monospace;
}
section {
padding: 6px 0;
}
ul {
margin: 12px 0 0;
padding-left: 20px;
}
li {
margin: 7px 0;
color: var(--muted);
}
strong {
color: var(--text);
}
code,
pre {
font-family: "IBM Plex Mono", ui-monospace, monospace;
}
code {
color: var(--text);
}
pre {
overflow: auto;
margin: 14px 0 0;
padding: 14px;
border: 1px solid var(--line);
border-radius: 10px;
background: var(--panel);
color: var(--text);
font-size: 0.82rem;
line-height: 1.5;
}
.note {
border: 1px solid rgba(77, 163, 255, 0.28);
border-radius: 10px;
padding: 12px 14px;
background: rgba(77, 163, 255, 0.08);
color: var(--text);
}
.diff-frame {
overflow: auto;
margin-top: 14px;
border: 1px solid var(--line);
border-radius: 10px;
background: var(--panel);
}
.ok {
color: var(--green);
}
</style>
</head>
<body>
<main>
<header>
<h1>Harden Drawer Dialog Focus</h1>
<p class="summary">
Added consistent modal dialog semantics, keyboard focus trapping, Escape dismissal, and focus restoration for terminal drawers.
</p>
<div class="meta">
<span class="chip">2026-05-29 19:06</span>
<span class="chip">Issue islandflow-wtg</span>
<span class="chip">apps/web</span>
</div>
</header>
<section>
<h2>Summary</h2>
<p>
The terminal drawers now behave as modal dialogs for keyboard and assistive technology users. Opening a drawer moves focus into it, Tab and Shift+Tab stay inside it, Escape closes it, and focus returns to the invoking control when practical.
</p>
</section>
<section>
<h2>Changes Made</h2>
<ul>
<li>Added a shared <code>useModalFocusTrap</code> helper in <code>apps/web/app/terminal.tsx</code>.</li>
<li>Added <code>role="dialog"</code>, <code>aria-modal="true"</code>, stable labels, and <code>tabIndex={-1}</code> to alert, news, classifier, smart-money, inferred-dark, synthetic-control, and nav drawers.</li>
<li>Restored keyboard focus to the source trigger for nav and synthetic-control drawers after closing.</li>
<li>Replaced the nav drawer's standalone Escape listener with the shared modal focus handler.</li>
</ul>
</section>
<section>
<h2>Context</h2>
<p>
Islandflow is an operational trading terminal where drawer content contains evidence, feed controls, and navigation. These overlays previously closed on Escape or outside click, but they did not consistently identify as modal dialogs or keep keyboard focus inside the active layer.
</p>
</section>
<section>
<h2>Important Implementation Details</h2>
<ul>
<li>The helper discovers tabbable descendants from the active drawer and cycles keyboard focus at the first and last controls.</li>
<li>Drawers without tabbable descendants focus their root element so Escape handling and screen-reader context still work.</li>
<li>The helper stores the previously focused element when a drawer opens, then restores it after unmount if the element is still connected.</li>
<li>Existing outside-click dismissal for evidence drawers was preserved.</li>
</ul>
</section>
<section>
<h2>Relevant Diff Snippets</h2>
<p>
Rendered with <code>@pierre/diffs/ssr</code> using <code>preloadPatchDiff</code> against the real
<code>apps/web/app/terminal.tsx</code> patch. The SSR output is embedded directly below.
</p>
<div class="diff-frame" aria-label="Rendered diff for apps/web/app/terminal.tsx">
<svg data-icon-sprite aria-hidden="true" width="0" height="0">
<symbol id="diffs-icon-arrow-right-short" viewBox="0 0 16 16">
<path d="M8.47 4.22a.75.75 0 0 0 0 1.06l1.97 1.97H3.75a.75.75 0 0 0 0 1.5h6.69l-1.97 1.97a.75.75 0 1 0 1.06 1.06l3.25-3.25a.75.75 0 0 0 0-1.06L9.53 4.22a.75.75 0 0 0-1.06 0"/>
</symbol>
<symbol id="diffs-icon-brand-github" viewBox="0 0 16 16">
<path d="M8 0c4.42 0 8 3.58 8 8a8.01 8.01 0 0 1-5.45 7.59c-.4.08-.55-.17-.55-.38 0-.27.01-1.13.01-2.2 0-.75-.25-1.23-.54-1.48 1.78-.2 3.65-.88 3.65-3.95 0-.88-.31-1.59-.82-2.15.08-.2.36-1.02-.08-2.12 0 0-.67-.22-2.2.82-.64-.18-1.32-.27-2-.27s-1.36.09-2 .27c-1.53-1.03-2.2-.82-2.2-.82-.44 1.1-.16 1.92-.08 2.12-.51.56-.82 1.28-.82 2.15 0 3.06 1.86 3.75 3.64 3.95-.23.2-.44.55-.51 1.07-.46.21-1.61.55-2.33-.66-.15-.24-.6-.83-1.23-.82-.67.01-.27.38.01.53.34.19.73.9.82 1.13.16.45.68 1.31 2.69.94 0 .67.01 1.3.01 1.49 0 .21-.15.45-.55.38A7.995 7.995 0 0 1 0 8c0-4.42 3.58-8 8-8"/>
</symbol>
<symbol id="diffs-icon-chevron" viewBox="0 0 16 16">
<path d="M1.47 4.47a.75.75 0 0 1 1.06 0L8 9.94l5.47-5.47a.75.75 0 1 1 1.06 1.06l-6 6a.75.75 0 0 1-1.06 0l-6-6a.75.75 0 0 1 0-1.06"/>
</symbol>
<symbol id="diffs-icon-chevrons-narrow" viewBox="0 0 10 16">
<path d="M4.47 2.22a.75.75 0 0 1 1.06 0l3.25 3.25a.75.75 0 0 1-1.06 1.06L5 3.81 2.28 6.53a.75.75 0 0 1-1.06-1.06zM1.22 9.47a.75.75 0 0 1 1.06 0L5 12.19l2.72-2.72a.75.75 0 0 1 1.06 1.06l-3.25 3.25a.75.75 0 0 1-1.06 0l-3.25-3.25a.75.75 0 0 1 0-1.06"/>
</symbol>
<symbol id="diffs-icon-diff-split" viewBox="0 0 16 16">
<path d="M14 0H8.5v16H14a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2m-1.5 6.5v1h1a.5.5 0 0 1 0 1h-1v1a.5.5 0 0 1-1 0v-1h-1a.5.5 0 0 1 0-1h1v-1a.5.5 0 0 1 1 0"/><path d="M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h5.5V0zm.5 7.5h3a.5.5 0 0 1 0 1h-3a.5.5 0 0 1 0-1" opacity=".3"/>
</symbol>
<symbol id="diffs-icon-diff-unified" viewBox="0 0 16 16">
<path fill-rule="evenodd" d="M16 14a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V8.5h16zm-8-4a.5.5 0 0 0-.5.5v1h-1a.5.5 0 0 0 0 1h1v1a.5.5 0 0 0 1 0v-1h1a.5.5 0 0 0 0-1h-1v-1A.5.5 0 0 0 8 10" clip-rule="evenodd"/><path fill-rule="evenodd" d="M14 0a2 2 0 0 1 2 2v5.5H0V2a2 2 0 0 1 2-2zM6.5 3.5a.5.5 0 0 0 0 1h3a.5.5 0 0 0 0-1z" clip-rule="evenodd" opacity=".4"/>
</symbol>
<symbol id="diffs-icon-expand" viewBox="0 0 16 16">
<path d="M3.47 5.47a.75.75 0 0 1 1.06 0L8 8.94l3.47-3.47a.75.75 0 1 1 1.06 1.06l-4 4a.75.75 0 0 1-1.06 0l-4-4a.75.75 0 0 1 0-1.06"/>
</symbol>
<symbol id="diffs-icon-expand-all" viewBox="0 0 16 16">
<path d="M11.47 9.47a.75.75 0 1 1 1.06 1.06l-4 4a.75.75 0 0 1-1.06 0l-4-4a.75.75 0 1 1 1.06-1.06L8 12.94zM7.526 1.418a.75.75 0 0 1 1.004.052l4 4a.75.75 0 1 1-1.06 1.06L8 3.06 4.53 6.53a.75.75 0 1 1-1.06-1.06l4-4z"/>
</symbol>
<symbol id="diffs-icon-file-code" viewBox="0 0 16 16">
<path d="M10.75 0c.199 0 .39.08.53.22l3.5 3.5c.14.14.22.331.22.53v9A2.75 2.75 0 0 1 12.25 16h-8.5A2.75 2.75 0 0 1 1 13.25V2.75A2.75 2.75 0 0 1 3.75 0zm-7 1.5c-.69 0-1.25.56-1.25 1.25v10.5c0 .69.56 1.25 1.25 1.25h8.5c.69 0 1.25-.56 1.25-1.25V5h-1.25A2.25 2.25 0 0 1 10 2.75V1.5z"/><path d="M7.248 6.19a.75.75 0 0 1 .063 1.058L5.753 9l1.558 1.752a.75.75 0 0 1-1.122.996l-2-2.25a.75.75 0 0 1 0-.996l2-2.25a.75.75 0 0 1 1.06-.063M8.69 7.248a.75.75 0 1 1 1.12-.996l2 2.25a.75.75 0 0 1 0 .996l-2 2.25a.75.75 0 1 1-1.12-.996L10.245 9z"/>
</symbol>
<symbol id="diffs-icon-plus" viewBox="0 0 16 16">
<path d="M8 3a.75.75 0 0 1 .75.75v3.5h3.5a.75.75 0 0 1 0 1.5h-3.5v3.5a.75.75 0 0 1-1.5 0v-3.5h-3.5a.75.75 0 0 1 0-1.5h3.5v-3.5A.75.75 0 0 1 8 3"/>
</symbol>
<symbol id="diffs-icon-symbol-added" viewBox="0 0 16 16">
<path d="M8 4a.75.75 0 0 1 .75.75v2.5h2.5a.75.75 0 0 1 0 1.5h-2.5v2.5a.75.75 0 0 1-1.5 0v-2.5h-2.5a.75.75 0 0 1 0-1.5h2.5v-2.5A.75.75 0 0 1 8 4"/><path d="M1.788 4.296c.196-.88.478-1.381.802-1.706s.826-.606 1.706-.802C5.194 1.588 6.387 1.5 8 1.5s2.806.088 3.704.288c.88.196 1.381.478 1.706.802s.607.826.802 1.706c.2.898.288 2.091.288 3.704s-.088 2.806-.288 3.704c-.195.88-.478 1.381-.802 1.706s-.826.607-1.706.802c-.898.2-2.091.288-3.704.288s-2.806-.088-3.704-.288c-.88-.195-1.381-.478-1.706-.802s-.606-.826-.802-1.706C1.588 10.806 1.5 9.613 1.5 8s.088-2.806.288-3.704M8 0C1.412 0 0 1.412 0 8s1.412 8 8 8 8-1.412 8-8-1.412-8-8-8"/>
</symbol>
<symbol id="diffs-icon-symbol-deleted" viewBox="0 0 16 16">
<path d="M4 8a.75.75 0 0 1 .75-.75h6.5a.75.75 0 0 1 0 1.5h-6.5A.75.75 0 0 1 4 8"/><path d="M1.788 4.296c.196-.88.478-1.381.802-1.706s.826-.606 1.706-.802C5.194 1.588 6.387 1.5 8 1.5s2.806.088 3.704.288c.88.196 1.381.478 1.706.802s.607.826.802 1.706c.2.898.288 2.091.288 3.704s-.088 2.806-.288 3.704c-.195.88-.478 1.381-.802 1.706s-.826.607-1.706.802c-.898.2-2.091.288-3.704.288s-2.806-.088-3.704-.288c-.88-.195-1.381-.478-1.706-.802s-.606-.826-.802-1.706C1.588 10.806 1.5 9.613 1.5 8s.088-2.806.288-3.704M8 0C1.412 0 0 1.412 0 8s1.412 8 8 8 8-1.412 8-8-1.412-8-8-8"/>
</symbol>
<symbol id="diffs-icon-symbol-diffstat" viewBox="0 0 16 16">
<path d="M1.788 4.296c.196-.88.478-1.381.802-1.706s.826-.606 1.706-.802C5.194 1.588 6.387 1.5 8 1.5s2.806.088 3.704.288c.88.196 1.381.478 1.706.802s.607.826.802 1.706c.2.898.288 2.091.288 3.704s-.088 2.806-.288 3.704c-.195.88-.478 1.381-.802 1.706s-.826.607-1.706.802c-.898.2-2.091.288-3.704.288s-2.806-.088-3.704-.288c-.88-.195-1.381-.478-1.706-.802s-.606-.826-.802-1.706C1.588 10.806 1.5 9.613 1.5 8s.088-2.806.288-3.704M8 0C1.412 0 0 1.412 0 8s1.412 8 8 8 8-1.412 8-8-1.412-8-8-8"/><path d="M8.75 4.296a.75.75 0 0 0-1.5 0V6.25h-2a.75.75 0 0 0 0 1.5h2v1.5h1.5v-1.5h2a.75.75 0 0 0 0-1.5h-2zM5.25 10a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5z"/>
</symbol>
<symbol id="diffs-icon-symbol-ignored" viewBox="0 0 16 16">
<path d="M1.5 8c0 1.613.088 2.806.288 3.704.196.88.478 1.381.802 1.706s.826.607 1.706.802c.898.2 2.091.288 3.704.288s2.806-.088 3.704-.288c.88-.195 1.381-.478 1.706-.802s.607-.826.802-1.706c.2-.898.288-2.091.288-3.704s-.088-2.806-.288-3.704c-.195-.88-.478-1.381-.802-1.706s-.826-.606-1.706-.802C10.806 1.588 9.613 1.5 8 1.5s-2.806.088-3.704.288c-.88.196-1.381.478-1.706.802s-.606.826-.802 1.706C1.588 5.194 1.5 6.387 1.5 8M0 8c0-6.588 1.412-8 8-8s8 1.412 8 8-1.412 8-8 8-8-1.412-8-8m11.53-2.47a.75.75 0 0 0-1.06-1.06l-6 6a.75.75 0 1 0 1.06 1.06z"/>
</symbol>
<symbol id="diffs-icon-symbol-modified" viewBox="0 0 16 16">
<path d="M1.5 8c0 1.613.088 2.806.288 3.704.196.88.478 1.381.802 1.706s.826.607 1.706.802c.898.2 2.091.288 3.704.288s2.806-.088 3.704-.288c.88-.195 1.381-.478 1.706-.802s.607-.826.802-1.706c.2-.898.288-2.091.288-3.704s-.088-2.806-.288-3.704c-.195-.88-.478-1.381-.802-1.706s-.826-.606-1.706-.802C10.806 1.588 9.613 1.5 8 1.5s-2.806.088-3.704.288c-.88.196-1.381.478-1.706.802s-.606.826-.802 1.706C1.588 5.194 1.5 6.387 1.5 8M0 8c0-6.588 1.412-8 8-8s8 1.412 8 8-1.412 8-8 8-8-1.412-8-8m8 3a3 3 0 1 0 0-6 3 3 0 0 0 0 6"/>
</symbol>
<symbol id="diffs-icon-symbol-moved" viewBox="0 0 16 16">
<path d="M1.788 4.296c.196-.88.478-1.381.802-1.706s.826-.606 1.706-.802C5.194 1.588 6.387 1.5 8 1.5s2.806.088 3.704.288c.88.196 1.381.478 1.706.802s.607.826.802 1.706c.2.898.288 2.091.288 3.704s-.088 2.806-.288 3.704c-.195.88-.478 1.381-.802 1.706s-.826.607-1.706.802c-.898.2-2.091.288-3.704.288s-2.806-.088-3.704-.288c-.88-.195-1.381-.478-1.706-.802s-.606-.826-.802-1.706C1.588 10.806 1.5 9.613 1.5 8s.088-2.806.288-3.704M8 0C1.412 0 0 1.412 0 8s1.412 8 8 8 8-1.412 8-8-1.412-8-8-8"/><path d="M8.495 4.695a.75.75 0 0 0-.05 1.06L10.486 8l-2.041 2.246a.75.75 0 0 0 1.11 1.008l2.5-2.75a.75.75 0 0 0 0-1.008l-2.5-2.75a.75.75 0 0 0-1.06-.051m-4 0a.75.75 0 0 0-.05 1.06l2.044 2.248-1.796 1.995a.75.75 0 0 0 1.114 1.004l2.25-2.5a.75.75 0 0 0-.002-1.007l-2.5-2.75a.75.75 0 0 0-1.06-.05"/>
</symbol>
<symbol id="diffs-icon-symbol-ref" viewBox="0 0 16 16">
<path d="M1.5 8c0 1.613.088 2.806.288 3.704.196.88.478 1.381.802 1.706.286.286.71.54 1.41.73V1.86c-.7.19-1.124.444-1.41.73-.324.325-.606.826-.802 1.706C1.588 5.194 1.5 6.387 1.5 8m4 6.397c.697.07 1.522.103 2.5.103 1.613 0 2.806-.088 3.704-.288.88-.195 1.381-.478 1.706-.802s.607-.826.802-1.706c.2-.898.288-2.091.288-3.704s-.088-2.806-.288-3.704c-.195-.88-.478-1.381-.802-1.706s-.826-.606-1.706-.802C10.806 1.588 9.613 1.5 8 1.5c-.978 0-1.803.033-2.5.103zM0 8c0-6.588 1.412-8 8-8s8 1.412 8 8-1.412 8-8 8-8-1.412-8-8m7-2a1 1 0 0 1 1-1h3a1 1 0 0 1 1 1v1a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1z"/>
</symbol>
</svg><style data-core-css="">@layer base, theme, rendered, unsafe;
@layer base,theme,rendered,unsafe;@layer base{:host{--diffs-font-fallback:"SF Mono", Monaco, Consolas, "Ubuntu Mono", "Liberation Mono", "Courier New", monospace;--diffs-header-font-fallback:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif;--diffs-mixer:light-dark(#000,#fff);--diffs-gap-fallback:8px;--diffs-scrollbar-gutter-fallback:6px;--diffs-scrollbar-gutter:var(--diffs-scrollbar-gutter-override,var(--diffs-scrollbar-gutter-measured,var(--diffs-scrollbar-gutter-fallback)));--diffs-added-light:#0dbe4e;--diffs-added-dark:#5ecc71;--diffs-modified-light:#009fff;--diffs-modified-dark:#69b1ff;--diffs-deleted-light:#ff2e3f;--diffs-deleted-dark:#ff6762;color-scheme:light dark;font-family:var(--diffs-header-font-family,var(--diffs-header-font-fallback));font-size:var(--diffs-font-size,13px);line-height:var(--diffs-line-height,20px);font-feature-settings:var(--diffs-font-features);--diffs-bg:light-dark(var(--diffs-light-bg,#fff),var(--diffs-dark-bg,#000));--diffs-bg-buffer:var(--diffs-bg-buffer-override,light-dark(color-mix(in lab, var(--diffs-bg) 92%, var(--diffs-mixer)),color-mix(in lab, var(--diffs-bg) 92%, var(--diffs-mixer))));--diffs-bg-context:var(--diffs-bg-context-override,light-dark(color-mix(in lab, var(--diffs-bg) 98.5%, var(--diffs-mixer)),color-mix(in lab, var(--diffs-bg) 92.5%, var(--diffs-mixer))));--diffs-bg-context-gutter:var(--diffs-bg-context-gutter-override,light-dark(color-mix(in lab, var(--diffs-bg-context) 90%, var(--diffs-bg)),color-mix(in lab, var(--diffs-bg-context) 45%, var(--diffs-bg))));--diffs-bg-separator:var(--diffs-bg-separator-override,light-dark(color-mix(in lab, var(--diffs-bg) 96%, var(--diffs-mixer)),color-mix(in lab, var(--diffs-bg) 85%, var(--diffs-mixer))));--diffs-fg:light-dark(var(--diffs-light,#000),var(--diffs-dark,#fff));--diffs-fg-number:var(--diffs-fg-number-override,light-dark(color-mix(in lab, var(--diffs-fg) 65%, var(--diffs-bg)),color-mix(in lab, var(--diffs-fg) 65%, var(--diffs-bg))));--diffs-fg-conflict-marker:var(--diffs-fg-conflict-marker-override,var(--diffs-fg-number));--diffs-deletion-base:var(--diffs-deletion-color-override,light-dark(var(--diffs-light-deletion-color,var(--diffs-deletion-color,var(--diffs-deleted-light))),var(--diffs-dark-deletion-color,var(--diffs-deletion-color,var(--diffs-deleted-dark)))));--diffs-addition-base:var(--diffs-addition-color-override,light-dark(var(--diffs-light-addition-color,var(--diffs-addition-color,var(--diffs-added-light))),var(--diffs-dark-addition-color,var(--diffs-addition-color,var(--diffs-added-dark)))));--diffs-modified-base:var(--diffs-modified-color-override,light-dark(var(--diffs-light-modified-color,var(--diffs-modified-color,var(--diffs-modified-light))),var(--diffs-dark-modified-color,var(--diffs-modified-color,var(--diffs-modified-dark)))));--diffs-bg-deletion:var(--diffs-bg-deletion-override,light-dark(color-mix(in lab, var(--diffs-bg) 88%, var(--diffs-deletion-base)),color-mix(in lab, var(--diffs-bg) 80%, var(--diffs-deletion-base))));--diffs-bg-deletion-emphasis:var(--diffs-bg-deletion-emphasis-override,light-dark(rgb(from var(--diffs-deletion-base) r g b / .15),rgb(from var(--diffs-deletion-base) r g b / .2)));--diffs-bg-addition:var(--diffs-bg-addition-override,light-dark(color-mix(in lab, var(--diffs-bg) 88%, var(--diffs-addition-base)),color-mix(in lab, var(--diffs-bg) 80%, var(--diffs-addition-base))));--diffs-bg-addition-emphasis:var(--diffs-bg-addition-emphasis-override,light-dark(rgb(from var(--diffs-addition-base) r g b / .15),rgb(from var(--diffs-addition-base) r g b / .2)));--diffs-selection-base:var(--diffs-modified-base);--diffs-selection-number-fg:light-dark(color-mix(in lab, var(--diffs-selection-base) 65%, var(--diffs-mixer)),color-mix(in lab, var(--diffs-selection-base) 75%, var(--diffs-mixer)));background-color:var(--diffs-bg);color:var(--diffs-fg);display:block}pre,code,[data-error-wrapper]{isolation:isolate;font-family:var(--diffs-font-family,var(--diffs-font-fallback));outline:none;margin:0;padding:0;display:block}pre,code{background-color:var(--diffs-bg)}code{contain:content}*,:before,:after{box-sizing:border-box}[data-icon-sprite]{display:none}[data-diffs-header],[data-separator]{font-family:var(--diffs-header-font-family,var(--diffs-header-font-fallback))}[data-diffs-header][data-sticky]{z-index:1;background-color:var(--diffs-bg);position:sticky;top:0}[data-file-info]{color:var(--fg);background-color:color-mix(in lab, var(--bg) 98%, var(--fg));border-block:1px solid color-mix(in lab, var(--bg) 95%, var(--fg));padding:10px;font-weight:700}[data-diff],[data-file]{--diffs-grid-number-column-width:minmax(min-content, max-content);--diffs-code-grid:var(--diffs-grid-number-column-width) 1fr}[data-dehydrated]:is([data-diff],[data-file]){--diffs-code-grid:var(--diffs-grid-number-column-width) minmax(0, 1fr)}:is([data-diff],[data-file]):hover [data-code]::-webkit-scrollbar-thumb{background-color:var(--diffs-bg-context)}@supports (-webkit-touch-callout:none){:host{--diffs-scrollbar-gutter-fallback:0px}}[data-line] span{color:light-dark(var(--diffs-token-light,var(--diffs-light)),var(--diffs-token-dark,var(--diffs-dark)));background-color:light-dark(var(--diffs-token-light-bg,inherit),var(--diffs-token-dark-bg,inherit));font-weight:light-dark(var(--diffs-token-light-font-weight,inherit),var(--diffs-token-dark-font-weight,inherit));font-style:light-dark(var(--diffs-token-light-font-style,inherit),var(--diffs-token-dark-font-style,inherit));-webkit-text-decoration:light-dark(var(--diffs-token-light-text-decoration,inherit),var(--diffs-token-dark-text-decoration,inherit));text-decoration:light-dark(var(--diffs-token-light-text-decoration,inherit),var(--diffs-token-dark-text-decoration,inherit))}[data-line],[data-gutter-buffer],[data-column-number],[data-line-annotation],[data-no-newline],[data-merge-conflict],[data-merge-conflict-actions]{--diffs-computed-decoration-bg:var(--diffs-bg);--diffs-computed-diff-line-bg:var(--diffs-bg);--diffs-computed-selected-line-bg:var(--diffs-bg);color:var(--diffs-fg);background-color:var(--diffs-line-bg,var(--diffs-bg))}@media (pointer:fine){:is([data-line],[data-gutter-buffer],[data-column-number],[data-line-annotation],[data-no-newline],[data-merge-conflict],[data-merge-conflict-actions]):where([data-hovered]){--diffs-computed-hovered-line-bg:light-dark(color-mix(in lab, var(--diffs-computed-selected-line-bg) 97%, var(--diffs-bg-hover-override,var(--diffs-mixer))),color-mix(in lab, var(--diffs-computed-selected-line-bg) 91%, var(--diffs-bg-hover-override,var(--diffs-mixer))));--diffs-line-bg:var(--diffs-computed-hovered-line-bg,inherit)}}[data-decoration-bg]:is([data-line],[data-no-newline]){--mix-deco-light:92%;--mix-deco-dark:85%}[data-decoration-bg][data-decoration-bg-depth="2"]:is([data-line],[data-no-newline]){--mix-deco-light:88%;--mix-deco-dark:80%}[data-decoration-bg][data-decoration-bg-depth="3"]:is([data-line],[data-no-newline]){--mix-deco-light:85%;--mix-deco-dark:78%}@media (pointer:fine){[data-decoration-bg][data-hovered]:is([data-line],[data-no-newline]):not([data-selected-line]){--mix-deco-light:85%;--mix-deco-dark:85%}[data-decoration-bg][data-hovered][data-decoration-bg-depth="2"]:is([data-line],[data-no-newline]):not([data-selected-line]){--mix-deco-light:83%;--mix-deco-dark:83%}[data-decoration-bg][data-hovered][data-decoration-bg-depth="3"]:is([data-line],[data-no-newline]):not([data-selected-line]){--mix-deco-light:81%;--mix-deco-dark:81%}}[data-decoration-bg]:is([data-line],[data-no-newline]){--diffs-computed-decoration-bg:light-dark(color-mix(in lab, var(--diffs-bg) var(--mix-deco-light), var(--diffs-decoration-bg)),color-mix(in lab, var(--diffs-bg) var(--mix-deco-dark), var(--diffs-decoration-bg)));--diffs-computed-diff-line-bg:var(--diffs-computed-decoration-bg);--diffs-computed-selected-line-bg:var(--diffs-computed-decoration-bg);--diffs-line-bg:var(--diffs-computed-decoration-bg)}[data-line-annotation],[data-gutter-buffer=annotation]{--diffs-annotation-bg:var(--diffs-bg-context);--diffs-computed-decoration-bg:var(--diffs-annotation-bg);--diffs-computed-diff-line-bg:var(--diffs-annotation-bg);--diffs-computed-selected-line-bg:var(--diffs-annotation-bg);--diffs-line-bg:var(--diffs-annotation-bg)}[data-merge-conflict-actions],[data-gutter-buffer=merge-conflict-action],[data-gutter-buffer=merge-conflict-marker-base],[data-gutter-buffer=merge-conflict-marker-separator],[data-merge-conflict=marker-base],[data-merge-conflict=marker-separator]{--diffs-computed-decoration-bg:var(--diffs-bg-context);--diffs-computed-diff-line-bg:var(--diffs-bg-context);--diffs-computed-selected-line-bg:var(--diffs-bg-context);--diffs-line-bg:var(--diffs-bg-context)}[data-gutter-buffer=merge-conflict-marker-start],[data-merge-conflict=marker-start]{--diffs-computed-decoration-bg:light-dark(color-mix(in lab, var(--diffs-bg) 78%, var(--conflict-bg-current-header-override,var(--diffs-addition-base))),color-mix(in lab, var(--diffs-bg) 68%, var(--conflict-bg-current-header-override,var(--diffs-addition-base))));--diffs-computed-diff-line-bg:var(--diffs-computed-decoration-bg);--diffs-computed-selected-line-bg:var(--diffs-computed-decoration-bg);--diffs-line-bg:var(--diffs-computed-decoration-bg)}[data-gutter-buffer=merge-conflict-marker-end],[data-merge-conflict=marker-end]{--diffs-computed-decoration-bg:light-dark(color-mix(in lab, var(--diffs-bg) 78%, var(--conflict-bg-incoming-header-override,var(--diffs-modified-base))),color-mix(in lab, var(--diffs-bg) 68%, var(--conflict-bg-incoming-header-override,var(--diffs-modified-base))));--diffs-computed-diff-line-bg:var(--diffs-computed-decoration-bg);--diffs-computed-selected-line-bg:var(--diffs-computed-decoration-bg);--diffs-line-bg:var(--diffs-computed-decoration-bg)}[data-has-merge-conflict] [data-line-annotation],[data-has-merge-conflict] [data-gutter-buffer=annotation]{--diffs-computed-decoration-bg:var(--diffs-bg);--diffs-computed-diff-line-bg:var(--diffs-bg);--diffs-computed-selected-line-bg:var(--diffs-bg);--diffs-line-bg:var(--diffs-bg)}:where([data-background]) [data-gutter-buffer],:where([data-background]) [data-column-number]{--mix-light:91%;--mix-dark:85%}:where([data-background]) [data-line],:where([data-background]) [data-no-newline]{--mix-light:88%;--mix-dark:80%}:where([data-background]) [data-gutter-buffer],:where([data-background]) [data-column-number],:where([data-background]) [data-line],:where([data-background]) [data-no-newline]{--diffs-diff-line-mix-target:var(--diffs-bg)}[data-line-type=change-deletion]:is(:where([data-background]) [data-gutter-buffer],:where([data-background]) [data-column-number],:where([data-background]) [data-line],:where([data-background]) [data-no-newline]){--diffs-diff-line-mix-target:var(--diffs-bg-deletion-override,var(--diffs-deletion-base))}@media (pointer:fine){[data-line-type=change-deletion][data-hovered]:is(:where([data-background]) [data-gutter-buffer],:where([data-background]) [data-column-number],:where([data-background]) [data-line],:where([data-background]) [data-no-newline]){--mix-light:80%;--mix-dark:75%}}[data-line-type=change-deletion]:is(:where([data-background]) [data-gutter-buffer],:where([data-background]) [data-column-number],:where([data-background]) [data-line],:where([data-background]) [data-no-newline]):where([data-gutter-buffer],[data-column-number]){color:var(--diffs-fg-number-deletion-override,var(--diffs-deletion-base));--diffs-diff-line-mix-target:var(--diffs-bg-deletion-number-override,var(--diffs-deletion-base))}[data-line-type=change-deletion]:is(:where([data-background]) [data-gutter-buffer],:where([data-background]) [data-column-number],:where([data-background]) [data-line],:where([data-background]) [data-no-newline]){--diffs-computed-diff-line-bg:light-dark(color-mix(in lab, var(--diffs-computed-decoration-bg) var(--mix-light), var(--diffs-diff-line-mix-target)),color-mix(in lab, var(--diffs-computed-decoration-bg) var(--mix-dark), var(--diffs-diff-line-mix-target)));--diffs-computed-selected-line-bg:var(--diffs-computed-diff-line-bg);--diffs-line-bg:var(--diffs-computed-diff-line-bg,inherit)}[data-line-type=change-addition]:is(:where([data-background]) [data-gutter-buffer],:where([data-background]) [data-column-number],:where([data-background]) [data-line],:where([data-background]) [data-no-newline]){--diffs-diff-line-mix-target:var(--diffs-bg-addition-override,var(--diffs-addition-base))}@media (pointer:fine){[data-line-type=change-addition][data-hovered]:is(:where([data-background]) [data-gutter-buffer],:where([data-background]) [data-column-number],:where([data-background]) [data-line],:where([data-background]) [data-no-newline]){--mix-light:80%;--mix-dark:70%}}[data-line-type=change-addition]:is(:where([data-background]) [data-gutter-buffer],:where([data-background]) [data-column-number],:where([data-background]) [data-line],:where([data-background]) [data-no-newline]):where([data-gutter-buffer],[data-column-number]){color:var(--diffs-fg-number-addition-override,var(--diffs-addition-base));--diffs-diff-line-mix-target:var(--diffs-bg-addition-number-override,var(--diffs-addition-base))}[data-line-type=change-addition]:is(:where([data-background]) [data-gutter-buffer],:where([data-background]) [data-column-number],:where([data-background]) [data-line],:where([data-background]) [data-no-newline]){--diffs-computed-diff-line-bg:light-dark(color-mix(in lab, var(--diffs-computed-decoration-bg) var(--mix-light), var(--diffs-diff-line-mix-target)),color-mix(in lab, var(--diffs-computed-decoration-bg) var(--mix-dark), var(--diffs-diff-line-mix-target)));--diffs-computed-selected-line-bg:var(--diffs-computed-diff-line-bg);--diffs-line-bg:var(--diffs-computed-diff-line-bg,inherit)}[data-merge-conflict=current]:is(:where([data-background]) [data-gutter-buffer],:where([data-background]) [data-column-number],:where([data-background]) [data-line],:where([data-background]) [data-no-newline]){--diffs-diff-line-mix-target:var(--conflict-bg-current-override,var(--diffs-addition-base))}[data-merge-conflict=current]:is(:where([data-background]) [data-gutter-buffer],:where([data-background]) [data-column-number],:where([data-background]) [data-line],:where([data-background]) [data-no-newline]):where([data-gutter-buffer],[data-column-number]){color:var(--diffs-fg-number-addition-override,var(--diffs-addition-base));--diffs-diff-line-mix-target:var(--conflict-bg-current-number-override,var(--diffs-addition-base))}@media (pointer:fine){[data-merge-conflict=current][data-hovered]:is(:where([data-background]) [data-gutter-buffer],:where([data-background]) [data-column-number],:where([data-background]) [data-line],:where([data-background]) [data-no-newline]){--mix-light:80%;--mix-dark:70%}}[data-merge-conflict=current]:is(:where([data-background]) [data-gutter-buffer],:where([data-background]) [data-column-number],:where([data-background]) [data-line],:where([data-background]) [data-no-newline]){--diffs-computed-diff-line-bg:light-dark(color-mix(in lab, var(--diffs-computed-decoration-bg) var(--mix-light), var(--diffs-diff-line-mix-target)),color-mix(in lab, var(--diffs-computed-decoration-bg) var(--mix-dark), var(--diffs-diff-line-mix-target)));--diffs-computed-selected-line-bg:var(--diffs-computed-diff-line-bg);--diffs-line-bg:var(--diffs-computed-diff-line-bg,inherit)}[data-merge-conflict=incoming]:is(:where([data-background]) [data-gutter-buffer],:where([data-background]) [data-column-number],:where([data-background]) [data-line],:where([data-background]) [data-no-newline]){--diffs-diff-line-mix-target:var(--conflict-bg-incoming-override,var(--diffs-modified-base))}[data-merge-conflict=incoming]:is(:where([data-background]) [data-gutter-buffer],:where([data-background]) [data-column-number],:where([data-background]) [data-line],:where([data-background]) [data-no-newline]):where([data-gutter-buffer],[data-column-number]){color:var(--diffs-modified-base);--diffs-diff-line-mix-target:var(--conflict-bg-incoming-number-override,var(--diffs-modified-base))}@media (pointer:fine){[data-merge-conflict=incoming][data-hovered]:is(:where([data-background]) [data-gutter-buffer],:where([data-background]) [data-column-number],:where([data-background]) [data-line],:where([data-background]) [data-no-newline]){--mix-light:80%;--mix-dark:70%}}[data-merge-conflict=incoming]:is(:where([data-background]) [data-gutter-buffer],:where([data-background]) [data-column-number],:where([data-background]) [data-line],:where([data-background]) [data-no-newline]){--diffs-computed-diff-line-bg:light-dark(color-mix(in lab, var(--diffs-computed-decoration-bg) var(--mix-light), var(--diffs-diff-line-mix-target)),color-mix(in lab, var(--diffs-computed-decoration-bg) var(--mix-dark), var(--diffs-diff-line-mix-target)));--diffs-computed-selected-line-bg:var(--diffs-computed-diff-line-bg);--diffs-line-bg:var(--diffs-computed-diff-line-bg,inherit)}[data-gutter-buffer],[data-column-number],[data-line],[data-line-annotation],[data-merge-conflict],[data-merge-conflict-actions],[data-no-newline]{--diffs-selection-mix-target:var(--diffs-bg-selection-override,var(--diffs-selection-base))}[data-selected-line]:is([data-gutter-buffer],[data-column-number],[data-line],[data-line-annotation],[data-merge-conflict],[data-merge-conflict-actions],[data-no-newline]):where([data-line],[data-line-annotation],[data-merge-conflict],[data-merge-conflict-actions],[data-no-newline]){--mix-selection-light:82%;--mix-selection-dark:75%}@media (pointer:fine){[data-selected-line][data-hovered]:is([data-gutter-buffer],[data-column-number],[data-line],[data-line-annotation],[data-merge-conflict],[data-merge-conflict-actions],[data-no-newline]):where([data-line],[data-line-annotation],[data-merge-conflict],[data-merge-conflict-actions],[data-no-newline]):not([data-merge-conflict],[data-line-type=change-addition],[data-line-type=change-deletion]){--mix-selection-light:75%;--mix-selection-dark:70%}}[data-selected-line]:is([data-gutter-buffer],[data-column-number],[data-line],[data-line-annotation],[data-merge-conflict],[data-merge-conflict-actions],[data-no-newline]):where([data-gutter-buffer],[data-column-number]){--mix-selection-light:75%;--mix-selection-dark:60%;--diffs-selection-mix-target:var(--diffs-bg-selection-number-override,var(--diffs-selection-base))}@media (pointer:fine){[data-selected-line][data-hovered]:is([data-gutter-buffer],[data-column-number],[data-line],[data-line-annotation],[data-merge-conflict],[data-merge-conflict-actions],[data-no-newline]):where([data-gutter-buffer],[data-column-number]):not([data-merge-conflict],[data-line-type=change-addition],[data-line-type=change-deletion]){--mix-selection-light:70%;--mix-selection-dark:55%}}[data-selected-line]:is([data-gutter-buffer],[data-column-number],[data-line],[data-line-annotation],[data-merge-conflict],[data-merge-conflict-actions],[data-no-newline]){--diffs-computed-selected-line-bg:light-dark(color-mix(in lab, var(--diffs-computed-diff-line-bg) var(--mix-selection-light), var(--diffs-selection-mix-target)),color-mix(in lab, var(--diffs-computed-diff-line-bg) var(--mix-selection-dark), var(--diffs-selection-mix-target)));--diffs-line-bg:var(--diffs-computed-selected-line-bg,inherit)}[data-selected-line]:is([data-gutter-buffer],[data-column-number]){color:var(--diffs-selection-number-fg)}[data-no-newline]{-webkit-user-select:none;user-select:none}[data-no-newline] span{opacity:.6}[data-diff-type=split][data-overflow=scroll]{grid-template-columns:1fr 1fr;display:grid}[data-diff-type=split][data-overflow=scroll] [data-additions]{border-left:1px solid var(--diffs-bg)}[data-diff-type=split][data-overflow=scroll] [data-deletions]{border-right:1px solid var(--diffs-bg)}[data-code]{grid-auto-flow:dense;grid-template-columns:var(--diffs-code-grid);overflow:var(--diffs-overflow-override,scroll) clip;overscroll-behavior-x:none;tab-size:var(--diffs-tab-size,2);padding-top:var(--diffs-gap-block,var(--diffs-gap-fallback));padding-bottom:max(0px, calc(var(--diffs-gap-block,var(--diffs-gap-fallback)) - var(--diffs-scrollbar-gutter)));scrollbar-gutter:stable;align-self:flex-start;display:grid}[data-diffs-scrollbar-measure]{opacity:0;pointer-events:none;scrollbar-gutter:auto;grid-template-columns:none;width:100px;height:100px;padding:0;position:absolute;top:-200px;left:-200px}[data-container-size]{container-type:inline-size}[data-code]::-webkit-scrollbar{width:0;height:var(--diffs-scrollbar-gutter)}[data-code]::-webkit-scrollbar-track{background:0 0}[data-code]::-webkit-scrollbar-thumb{background-color:#0000;background-clip:content-box;border:1px solid #0000;border-radius:3px}[data-code]::-webkit-scrollbar-corner{background-color:#0000}@supports ((-moz-appearance:none)){[data-code]{scrollbar-width:thin;scrollbar-color:var(--diffs-bg-context) transparent;padding-bottom:var(--diffs-gap-block,var(--diffs-gap-fallback))}}:is([data-diffs-header]~[data-diff],[data-diffs-header]~[data-file]) [data-code],[data-overflow=wrap]:is([data-diffs-header]~[data-diff],[data-diffs-header]~[data-file]){padding-top:0}[data-gutter]{grid-template-rows:subgrid;grid-template-columns:subgrid;z-index:3;background-color:var(--diffs-bg);grid-column:1;display:grid;position:relative}[data-gutter] [data-gutter-buffer],[data-gutter] [data-column-number]{border-right:var(--diffs-gap-style,2px solid var(--diffs-bg))}[data-content]{grid-template-rows:subgrid;grid-template-columns:subgrid;background-color:var(--diffs-bg);grid-column:2;min-width:0;display:grid}[data-diff-type=split][data-overflow=wrap]{grid-auto-flow:dense;grid-template-columns:repeat(2, var(--diffs-code-grid));padding-block:var(--diffs-gap-block,var(--diffs-gap-fallback));display:grid}[data-diff-type=split][data-overflow=wrap] [data-deletions]{display:contents}:is([data-diff-type=split][data-overflow=wrap] [data-deletions]) [data-gutter]{grid-column:1}:is([data-diff-type=split][data-overflow=wrap] [data-deletions]) [data-content]{border-right:1px solid var(--diffs-bg);grid-column:2}[data-diff-type=split][data-overflow=wrap] [data-additions]{display:contents}:is([data-diff-type=split][data-overflow=wrap] [data-additions]) [data-gutter]{border-left:1px solid var(--diffs-bg);grid-column:3}:is([data-diff-type=split][data-overflow=wrap] [data-additions]) [data-content]{grid-column:4}[data-overflow=scroll] [data-gutter]{position:sticky;left:0}[data-interactive-lines] [data-line]{cursor:pointer}[data-interactive-line-numbers] [data-column-number]{cursor:pointer;touch-action:none}[data-content-buffer],[data-gutter-buffer]{-webkit-user-select:none;user-select:none;min-height:1lh;position:relative}[data-gutter-buffer]{padding-left:2ch;padding-right:1ch}[data-gutter-buffer]:before{content:"";min-width:var(--diffs-min-number-column-width,var(--diffs-min-number-column-width-default,3ch));display:block}[data-gutter-buffer=annotation]{--diffs-annotation-bg:var(--diffs-bg-context-gutter);min-height:0}[data-gutter-buffer=buffer]{--diffs-line-bg:var(--diffs-bg-context-gutter)}[data-content-buffer]{background-position:5px 0;background-size:8px 8px;background-origin:border-box;background-image:repeating-linear-gradient(-45deg, transparent, transparent 4.242px, var(--diffs-bg-buffer) 4.242px, var(--diffs-bg-buffer) 5.656px);grid-column:1}[data-separator]{box-sizing:content-box;background-color:var(--diffs-bg)}[data-separator=simple]{min-height:4px}[data-separator=line-info],[data-separator=line-info-basic],[data-separator=metadata],[data-separator=simple]{background-color:var(--diffs-bg-separator)}[data-separator=line-info],[data-separator=line-info-basic],[data-separator=metadata]{height:32px;position:relative}[data-separator-wrapper]{-webkit-user-select:none;user-select:none;fill:currentColor;background-color:var(--diffs-bg);align-items:center;height:100%;display:flex;position:absolute;inset-inline:0}[data-content] [data-separator-wrapper]{display:none}[data-separator=metadata] [data-separator-wrapper]{background-color:var(--diffs-bg-separator);height:100%;color:var(--diffs-fg-number);white-space:nowrap;text-overflow:ellipsis;min-width:min-content;padding-inline:1ch;inset-inline:100% auto;overflow:hidden}[data-separator=line-info]{margin-block:var(--diffs-gap-block,var(--diffs-gap-fallback))}[data-separator=line-info] [data-separator-wrapper]{min-width:16px}[data-separator=line-info-basic],[data-separator=metadata]{margin-block:0}[data-separator=line-info][data-separator-first]{margin-top:0}[data-separator=line-info][data-separator-last]{margin-bottom:0}[data-expand-index] [data-separator-wrapper]{grid-template-columns:32px auto;display:grid}[data-expand-index] [data-separator-wrapper][data-separator-multi-button]{grid-template-columns:32px 32px auto}[data-expand-button],[data-separator-content]{background-color:var(--diffs-bg-separator);flex:none;align-items:center;display:flex}[data-expand-index] [data-separator-content]:hover{cursor:pointer;text-decoration:underline}[data-expand-button]{cursor:pointer;min-width:32px;color:var(--diffs-fg-number);border-right:2px solid var(--diffs-bg);flex-shrink:0;justify-content:center;align-self:stretch}[data-expand-button]:hover{color:var(--diffs-fg)}[data-expand-button][data-expand-all-button]{display:none}[data-expand-down] [data-icon]{transform:scaleY(-1)}[data-separator-content]{height:100%;color:var(--diffs-fg-number);flex:auto;justify-content:flex-start;padding:0 1ch;overflow:hidden}:is([data-separator=line-info],[data-separator=line-info-basic]) [data-separator-content]{-webkit-user-select:none;user-select:none;height:100%;overflow:clip}[data-unmodified-lines]{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;display:block;overflow:hidden}@supports (width:1cqi){[data-unified] [data-separator=line-info] [data-separator-wrapper]{padding-inline:var(--diffs-gap-inline,var(--diffs-gap-fallback));width:100cqi}:is([data-unified] [data-separator=line-info] [data-separator-wrapper]) [data-separator-content]{border-radius:6px}[data-unified] [data-separator=line-info][data-expand-index] [data-separator-wrapper] [data-separator-content]{border-top-left-radius:unset;border-bottom-left-radius:unset}[data-gutter] [data-separator=line-info] [data-separator-wrapper]{padding-left:var(--diffs-gap-inline,var(--diffs-gap-fallback))}[data-gutter] [data-separator=line-info] [data-separator-content]{border-top-left-radius:6px;border-bottom-left-radius:6px}[data-gutter] [data-separator=line-info][data-expand-index] [data-separator-content]{border-top-left-radius:unset;border-bottom-left-radius:unset}[data-additions] [data-content] [data-separator=line-info]{background-color:var(--diffs-bg)}:is([data-additions] [data-content] [data-separator=line-info]) [data-separator-wrapper]{display:none}[data-additions] [data-gutter] [data-separator=line-info] [data-separator-wrapper]{background-color:var(--diffs-bg-separator);border-top-right-radius:6px;border-bottom-right-radius:6px;height:100%;display:block}:is([data-additions] [data-gutter] [data-separator=line-info] [data-separator-wrapper]) [data-separator-content],:is([data-additions] [data-gutter] [data-separator=line-info] [data-separator-wrapper]) [data-expand-button]{display:none}[data-overflow=scroll] [data-additions] [data-gutter] [data-separator=line-info] [data-separator-wrapper]{width:calc(100cqi - var(--diffs-gap-inline,var(--diffs-gap-fallback)))}[data-overflow=wrap] [data-additions] [data-content] [data-separator=line-info] [data-separator-wrapper]{background-color:var(--diffs-bg-separator);height:100%;margin-right:var(--diffs-gap-inline,var(--diffs-gap-fallback));border-top-right-radius:6px;border-bottom-right-radius:6px;display:block}:is([data-overflow=wrap] [data-additions] [data-content] [data-separator=line-info] [data-separator-wrapper]) [data-separator-content],:is([data-overflow=wrap] [data-additions] [data-content] [data-separator=line-info] [data-separator-wrapper]) [data-expand-button]{display:none}:is([data-separator=line-info] [data-separator-wrapper]) [data-expand-both],:is([data-separator=line-info] [data-separator-wrapper]) [data-expand-down],:is([data-separator=line-info] [data-separator-wrapper]) [data-expand-up]{border-top-left-radius:6px;border-bottom-left-radius:6px}@media (pointer:fine){[data-separator-multi-button]:is([data-separator=line-info] [data-separator-wrapper]) [data-expand-up]{border-top-left-radius:6px;border-bottom-left-radius:unset}[data-separator-multi-button]:is([data-separator=line-info] [data-separator-wrapper]) [data-expand-down]{border-bottom-left-radius:6px;border-top-left-radius:unset}}}@media (pointer:coarse){[data-separator=line-info-basic] [data-separator-wrapper][data-separator-multi-button]{grid-template-columns:34px 34px auto}:is([data-separator=line-info-basic] [data-separator-wrapper][data-separator-multi-button]) [data-separator-content]{grid-column:unset;grid-row:unset}@supports (width:1cqi){:is([data-separator=line-info] [data-separator-wrapper]) [data-expand-both],:is([data-separator=line-info] [data-separator-wrapper]) [data-expand-down],:is([data-separator=line-info] [data-separator-wrapper]) [data-expand-up],[data-separator-multi-button]:is([data-separator=line-info] [data-separator-wrapper]) [data-expand-up]{border-top-left-radius:6px;border-bottom-left-radius:6px}[data-separator-multi-button]:is([data-separator=line-info] [data-separator-wrapper]) [data-expand-down]{border-bottom-left-radius:unset;border-top-left-radius:unset}}}@media (pointer:fine){[data-separator-wrapper][data-separator-multi-button]{grid-template-rows:50% 50%;display:grid}[data-separator-wrapper][data-separator-multi-button] [data-separator-content]{grid-area:1/2/-1;min-width:min-content}[data-separator-wrapper][data-separator-multi-button] [data-expand-button]{grid-column:1}[data-separator=line-info] [data-separator-wrapper],[data-separator=line-info] [data-separator-wrapper][data-separator-multi-button]{grid-template-columns:34px auto}[data-separator=line-info-basic][data-expand-index] [data-separator-wrapper]{grid-template-columns:100% auto}:is(:is([data-separator=line-info],[data-separator=line-info-basic]) [data-separator-multi-button]) [data-expand-up]{border-bottom:1px solid var(--diffs-bg);border-right:2px solid var(--diffs-bg)}:is(:is([data-separator=line-info],[data-separator=line-info-basic]) [data-separator-multi-button]) [data-expand-down]{border-top:1px solid var(--diffs-bg);border-right:2px solid var(--diffs-bg)}}[data-additions] [data-gutter] [data-separator-wrapper],[data-additions] [data-separator=line-info-basic] [data-separator-wrapper],[data-content] [data-separator-wrapper]{display:none}[data-line-annotation]{min-height:var(--diffs-annotation-min-height,0);z-index:2}[data-merge-conflict-actions]{z-index:2}[data-separator=custom]{grid-template-columns:subgrid;display:grid}[data-line],[data-column-number],[data-no-newline]{padding-inline:1ch;position:relative}[data-indicators=classic] [data-line]{padding-inline-start:2ch}:is([data-no-newline]:is([data-indicators=classic] [data-line-type=change-addition],[data-indicators=classic] [data-line-type=change-deletion]),[data-line]:is([data-indicators=classic] [data-line-type=change-addition],[data-indicators=classic] [data-line-type=change-deletion])):before{-webkit-user-select:none;user-select:none;width:1ch;height:1lh;display:inline-block;position:absolute;top:0;left:0}:is([data-line]:is([data-indicators=classic] [data-line-type=change-addition]),[data-no-newline]:is([data-indicators=classic] [data-line-type=change-addition])):before{content:"+";color:var(--diffs-addition-base)}:is([data-line]:is([data-indicators=classic] [data-line-type=change-deletion]),[data-no-newline]:is([data-indicators=classic] [data-line-type=change-deletion])):before{content:"-";color:var(--diffs-deletion-base)}[data-column-number]:is([data-indicators=bars] [data-line-type=change-deletion],[data-indicators=bars] [data-line-type=change-addition]):before{content:"";-webkit-user-select:none;user-select:none;contain:strict;width:4px;height:100%;display:block;position:absolute;top:0;left:0}[data-column-number]:is([data-indicators=bars] [data-line-type=change-deletion]):before{background-image:linear-gradient(0deg, var(--diffs-bg-deletion) 50%, var(--diffs-deletion-base) 50%);background-repeat:repeat;background-size:2px 2px;background-size:calc(1lh/round(1lh / 2px)) calc(1lh/round(1lh / 2px))}[data-column-number]:is([data-indicators=bars] [data-line-type=change-addition]):before{background-color:var(--diffs-addition-base)}[data-overflow=wrap] [data-line],[data-overflow=wrap] [data-annotation-content]{white-space:pre-wrap;word-break:break-word}[data-overflow=scroll] [data-line]{white-space:pre;min-height:1lh}[data-column-number]{box-sizing:content-box;text-align:right;-webkit-user-select:none;user-select:none;color:var(--diffs-fg-number);padding-left:2ch}[data-line-number-content]{min-width:var(--diffs-min-number-column-width,var(--diffs-min-number-column-width-default,3ch));z-index:1;display:inline-block;position:relative}[data-disable-line-numbers] [data-gutter-buffer],[data-disable-line-numbers] [data-column-number]{min-width:4px;padding:0}:is([data-disable-line-numbers] [data-gutter-buffer],[data-disable-line-numbers] [data-column-number]):before{min-width:0}[data-disable-line-numbers] [data-line-number-content]{display:none}[data-disable-line-numbers] [data-gutter-utility-slot]{right:unset;justify-content:flex-start;left:0}[data-disable-line-numbers][data-indicators=bars] [data-gutter-utility-slot]{left:6px}[data-file][data-disable-line-numbers] [data-gutter-buffer],[data-file][data-disable-line-numbers] [data-column-number]{border-right:0;min-width:0}[data-diff-span]{-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:3px}[data-line-type=change-addition] [data-diff-span]{background-color:var(--diffs-bg-addition-emphasis)}[data-line-type=change-deletion] [data-diff-span]{background-color:var(--diffs-bg-deletion-emphasis)}[data-merge-conflict=marker-start],[data-merge-conflict=marker-base],[data-merge-conflict=marker-separator],[data-merge-conflict=marker-end]{color:var(--diffs-fg);padding-left:1ch}[data-merge-conflict=marker-start],[data-merge-conflict=marker-end]{align-items:center;display:flex}:is([data-merge-conflict=marker-start],[data-merge-conflict=marker-end]):after{color:var(--diffs-fg-conflict-marker);font-size:.75rem;font-style:normal;line-height:1.25rem;font-family:var(--diffs-header-font-family,var(--diffs-header-font-fallback));padding-left:1ch}[data-merge-conflict=marker-start]:after{content:"(Current Change)"}[data-merge-conflict=marker-end]:after{content:"(Incoming Change)"}[data-merge-conflict-actions-content]{min-height:1.75rem;font-family:var(--diffs-header-font-family,var(--diffs-header-font-fallback));color:var(--diffs-fg);align-items:center;gap:.25rem;padding-inline:.5rem;font-size:.75rem;line-height:1.2;display:flex}[data-merge-conflict-action]{appearance:none;color:var(--diffs-fg-number);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-style:normal}[data-merge-conflict-action]:hover{color:var(--diffs-fg)}[data-merge-conflict-action=current]:hover{color:var(--diffs-addition-base)}[data-merge-conflict-action=incoming]:hover{color:var(--diffs-modified-base)}[data-merge-conflict-action-separator]{color:var(--diffs-fg-number);opacity:.6;-webkit-user-select:none;user-select:none}[data-diffs-header=default]{background-color:var(--diffs-bg);justify-content:space-between;align-items:center;gap:var(--diffs-gap-inline,var(--diffs-gap-fallback));min-height:calc(1lh + var(--diffs-gap-block,var(--diffs-gap-fallback))*3);z-index:2;flex-direction:row;padding-inline:16px;display:flex;position:relative;top:0}[data-header-content]{align-items:center;gap:var(--diffs-gap-inline,var(--diffs-gap-fallback));white-space:nowrap;flex-direction:row;min-width:0;display:flex}[data-header-content] [data-prev-name],[data-header-content] [data-title]{text-overflow:ellipsis;white-space:nowrap;direction:rtl;min-width:0;overflow:hidden}[data-prev-name]{opacity:.7}[data-rename-icon]{fill:currentColor;flex-grow:0;flex-shrink:0}[data-diffs-header=default] [data-metadata]{white-space:nowrap;align-items:center;gap:1ch;display:flex}[data-diffs-header=default] [data-additions-count]{font-family:var(--diffs-font-family,var(--diffs-font-fallback));color:var(--diffs-addition-base)}[data-diffs-header=default] [data-deletions-count]{font-family:var(--diffs-font-family,var(--diffs-font-fallback));color:var(--diffs-deletion-base)}[data-change-icon]{fill:currentColor;flex-shrink:0}[data-change-icon=change],[data-change-icon=rename-pure],[data-change-icon=rename-changed]{color:var(--diffs-modified-base)}[data-change-icon=new]{color:var(--diffs-addition-base)}[data-change-icon=deleted]{color:var(--diffs-deletion-base)}[data-change-icon=file]{opacity:.6}[data-annotation-content]{z-index:2;isolation:isolate;align-self:flex-start;min-width:0;display:flow-root;position:relative}[data-overflow=scroll] [data-annotation-content],[data-overflow=scroll] [data-merge-conflict-actions-content]{width:var(--diffs-column-content-width,auto);left:var(--diffs-column-number-width,0);position:sticky}[data-annotation-slot]{text-wrap-mode:wrap;word-break:normal;white-space-collapse:collapse}[data-gutter-utility-slot]{touch-action:none;justify-content:flex-end;display:flex;position:absolute;top:0;bottom:0;right:0}[data-utility-button]{appearance:none;cursor:pointer;width:1lh;height:1lh;font-size:var(--diffs-font-size,13px);line-height:var(--diffs-line-height,20px);background-color:var(--diffs-modified-base);color:var(--diffs-bg);fill:currentColor;z-index:4;touch-action:none;border:none;border-radius:4px;justify-content:center;align-items:center;margin-right:calc(1ch - 1lh);padding:0;display:flex;position:relative}[data-utility-button]:before{content:"";display:block;position:absolute;inset:0 0 0 -4px}[data-decoration-bar-stack]{pointer-events:none;isolation:isolate;z-index:1;background-color:var(--diffs-decoration-bar-color,transparent);box-sizing:content-box;border-left:2px solid var(--diffs-bg);border-right:2px solid var(--diffs-bg);width:6px;position:absolute;top:0;bottom:0;right:-2px}[data-decoration-bar-depth="1"] [data-decoration-bar-stack]{background-color:color-mix(in lab, var(--diffs-bg) 20%, var(--diffs-decoration-bar-color,transparent))}[data-decoration-bar-depth="2"] [data-decoration-bar-stack]{background-color:color-mix(in lab, var(--diffs-bg) 45%, var(--diffs-decoration-bar-color,transparent))}[data-decoration-bar-depth="3"] [data-decoration-bar-stack]{background-color:color-mix(in lab, var(--diffs-bg) 65%, var(--diffs-decoration-bar-color,transparent))}[data-decoration-bar-start] [data-decoration-bar-stack]{border-top-left-radius:5px;border-top-right-radius:5px}[data-decoration-bar-end] [data-decoration-bar-stack]{z-index:3;border-bottom-right-radius:5px;border-bottom-left-radius:5px}[data-placeholder]{contain:strict}[data-error-wrapper]{padding:var(--diffs-gap-block,var(--diffs-gap-fallback)) var(--diffs-gap-inline,var(--diffs-gap-fallback));scrollbar-width:none;max-height:400px;overflow:auto}[data-error-wrapper] [data-error-message]{color:var(--diffs-deletion-base);font-size:18px;font-weight:700}[data-error-wrapper] [data-error-stack]{color:var(--diffs-fg-number)}}@layer theme,rendered,unsafe;
@layer theme {
}</style><style data-theme-css="">@layer base, theme, rendered, unsafe;
@layer rendered {
:host {
--diffs-scrollbar-gutter-measured: var(--diffs-scrollbar-gutter-fallback);
--diffs-dark:#fafafa;--diffs-dark-bg:#0a0a0a;--diffs-dark-addition-color:#07c480;--diffs-dark-deletion-color:#ff2e3f;--diffs-dark-modified-color:#009fff;--diffs-light:#0a0a0a;--diffs-light-bg:#ffffff;--diffs-light-addition-color:#18a46c;--diffs-light-deletion-color:#d52c36;--diffs-light-modified-color:#009fff;
}
}</style><div data-diffs-header="default" data-change-type="change"><div data-header-content=""><slot name="header-prefix"></slot><svg width="16" height="16" viewBox="0 0 16 16" data-change-icon="change"><use href="#diffs-icon-symbol-modified"></use></svg><div data-title=""><bdi>apps/web/app/terminal.tsx</bdi></div></div><div data-metadata=""><span data-deletions-count="">-34</span><span data-additions-count="">+173</span><slot name="header-metadata"></slot></div></div><pre data-diff="" data-diff-type="split" data-overflow="scroll" data-background="" data-indicators="bars" tabindex="0" style="--diffs-min-number-column-width-default:4ch;" data-dehydrated=""><code data-code="" data-container-size="" data-deletions=""><div data-gutter="" style="grid-row: span 354"><div data-separator="line-info" data-separator-first=""><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">15 unmodified lines</span></div></div></div><div data-line-type="context" data-column-number="16" data-line-index="15,15"><span data-line-number-content="">16</span></div><div data-line-type="context" data-column-number="17" data-line-index="16,16"><span data-line-number-content="">17</span></div><div data-line-type="context" data-column-number="18" data-line-index="17,17"><span data-line-number-content="">18</span></div><div data-gutter-buffer="buffer" data-buffer-size="1" style="grid-row: span 1;min-height:calc(1 * 1lh);"></div><div data-line-type="context" data-column-number="19" data-line-index="19,19"><span data-line-number-content="">19</span></div><div data-line-type="context" data-column-number="20" data-line-index="20,20"><span data-line-number-content="">20</span></div><div data-line-type="context" data-column-number="21" data-line-index="21,21"><span data-line-number-content="">21</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">369 unmodified lines</span></div></div></div><div data-line-type="context" data-column-number="391" data-line-index="391,391"><span data-line-number-content="">391</span></div><div data-line-type="context" data-column-number="392" data-line-index="392,392"><span data-line-number-content="">392</span></div><div data-line-type="context" data-column-number="393" data-line-index="393,393"><span data-line-number-content="">393</span></div><div data-gutter-buffer="buffer" data-buffer-size="109" style="grid-row: span 109;min-height:calc(109 * 1lh);"></div><div data-line-type="context" data-column-number="394" data-line-index="503,503"><span data-line-number-content="">394</span></div><div data-line-type="context" data-column-number="395" data-line-index="504,504"><span data-line-number-content="">395</span></div><div data-line-type="context" data-column-number="396" data-line-index="505,505"><span data-line-number-content="">396</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">4497 unmodified lines</span></div></div></div><div data-line-type="context" data-column-number="4894" data-line-index="5003,5003"><span data-line-number-content="">4894</span></div><div data-line-type="context" data-column-number="4895" data-line-index="5004,5004"><span data-line-number-content="">4895</span></div><div data-line-type="context" data-column-number="4896" data-line-index="5005,5005"><span data-line-number-content="">4896</span></div><div data-gutter-buffer="buffer" data-buffer-size="2" style="grid-row: span 2;min-height:calc(2 * 1lh);"></div><div data-line-type="context" data-column-number="4897" data-line-index="5008,5008"><span data-line-number-content="">4897</span></div><div data-line-type="context" data-column-number="4898" data-line-index="5009,5009"><span data-line-number-content="">4898</span></div><div data-line-type="context" data-column-number="4899" data-line-index="5010,5010"><span data-line-number-content="">4899</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">1 unmodified line</span></div></div></div><div data-line-type="context" data-column-number="4901" data-line-index="5012,5012"><span data-line-number-content="">4901</span></div><div data-line-type="context" data-column-number="4902" data-line-index="5013,5013"><span data-line-number-content="">4902</span></div><div data-line-type="context" data-column-number="4903" data-line-index="5014,5014"><span data-line-number-content="">4903</span></div><div data-gutter-buffer="buffer" data-buffer-size="1" style="grid-row: span 1;min-height:calc(1 * 1lh);"></div><div data-line-type="context" data-column-number="4904" data-line-index="5016,5016"><span data-line-number-content="">4904</span></div><div data-line-type="context" data-column-number="4905" data-line-index="5017,5017"><span data-line-number-content="">4905</span></div><div data-line-type="change-deletion" data-column-number="4906" data-line-index="5018,5018"><span data-line-number-content="">4906</span></div><div data-line-type="context" data-column-number="4907" data-line-index="5020,5019"><span data-line-number-content="">4907</span></div><div data-line-type="context" data-column-number="4908" data-line-index="5021,5020"><span data-line-number-content="">4908</span></div><div data-line-type="context" data-column-number="4909" data-line-index="5022,5021"><span data-line-number-content="">4909</span></div><div data-line-type="change-deletion" data-column-number="4910" data-line-index="5023,5022"><span data-line-number-content="">4910</span></div><div data-line-type="context" data-column-number="4911" data-line-index="5025,5023"><span data-line-number-content="">4911</span></div><div data-line-type="context" data-column-number="4912" data-line-index="5026,5024"><span data-line-number-content="">4912</span></div><div data-line-type="context" data-column-number="4913" data-line-index="5027,5025"><span data-line-number-content="">4913</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">138 unmodified lines</span></div></div></div><div data-line-type="context" data-column-number="5052" data-line-index="5166,5164"><span data-line-number-content="">5052</span></div><div data-line-type="context" data-column-number="5053" data-line-index="5167,5165"><span data-line-number-content="">5053</span></div><div data-line-type="context" data-column-number="5054" data-line-index="5168,5166"><span data-line-number-content="">5054</span></div><div data-gutter-buffer="buffer" data-buffer-size="2" style="grid-row: span 2;min-height:calc(2 * 1lh);"></div><div data-line-type="context" data-column-number="5055" data-line-index="5171,5169"><span data-line-number-content="">5055</span></div><div data-gutter-buffer="buffer" data-buffer-size="1" style="grid-row: span 1;min-height:calc(1 * 1lh);"></div><div data-line-type="context" data-column-number="5056" data-line-index="5173,5171"><span data-line-number-content="">5056</span></div><div data-line-type="context" data-column-number="5057" data-line-index="5174,5172"><span data-line-number-content="">5057</span></div><div data-line-type="change-deletion" data-column-number="5058" data-line-index="5175,5173"><span data-line-number-content="">5058</span></div><div data-line-type="context" data-column-number="5059" data-line-index="5177,5174"><span data-line-number-content="">5059</span></div><div data-line-type="context" data-column-number="5060" data-line-index="5178,5175"><span data-line-number-content="">5060</span></div><div data-line-type="context" data-column-number="5061" data-line-index="5179,5176"><span data-line-number-content="">5061</span></div><div data-line-type="change-deletion" data-column-number="5062" data-line-index="5180,5177"><span data-line-number-content="">5062</span></div><div data-line-type="context" data-column-number="5063" data-line-index="5182,5178"><span data-line-number-content="">5063</span></div><div data-line-type="context" data-column-number="5064" data-line-index="5183,5179"><span data-line-number-content="">5064</span></div><div data-line-type="context" data-column-number="5065" data-line-index="5184,5180"><span data-line-number-content="">5065</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">51 unmodified lines</span></div></div></div><div data-line-type="context" data-column-number="5117" data-line-index="5236,5232"><span data-line-number-content="">5117</span></div><div data-line-type="context" data-column-number="5118" data-line-index="5237,5233"><span data-line-number-content="">5118</span></div><div data-line-type="context" data-column-number="5119" data-line-index="5238,5234"><span data-line-number-content="">5119</span></div><div data-gutter-buffer="buffer" data-buffer-size="2" style="grid-row: span 2;min-height:calc(2 * 1lh);"></div><div data-line-type="context" data-column-number="5120" data-line-index="5241,5237"><span data-line-number-content="">5120</span></div><div data-line-type="context" data-column-number="5121" data-line-index="5242,5238"><span data-line-number-content="">5121</span></div><div data-line-type="context" data-column-number="5122" data-line-index="5243,5239"><span data-line-number-content="">5122</span></div><div data-gutter-buffer="buffer" data-buffer-size="1" style="grid-row: span 1;min-height:calc(1 * 1lh);"></div><div data-line-type="context" data-column-number="5123" data-line-index="5245,5241"><span data-line-number-content="">5123</span></div><div data-line-type="context" data-column-number="5124" data-line-index="5246,5242"><span data-line-number-content="">5124</span></div><div data-line-type="change-deletion" data-column-number="5125" data-line-index="5247,5243"><span data-line-number-content="">5125</span></div><div data-line-type="context" data-column-number="5126" data-line-index="5249,5244"><span data-line-number-content="">5126</span></div><div data-line-type="context" data-column-number="5127" data-line-index="5250,5245"><span data-line-number-content="">5127</span></div><div data-line-type="context" data-column-number="5128" data-line-index="5251,5246"><span data-line-number-content="">5128</span></div><div data-line-type="change-deletion" data-column-number="5129" data-line-index="5252,5247"><span data-line-number-content="">5129</span></div><div data-line-type="context" data-column-number="5130" data-line-index="5254,5248"><span data-line-number-content="">5130</span></div><div data-line-type="context" data-column-number="5131" data-line-index="5255,5249"><span data-line-number-content="">5131</span></div><div data-line-type="context" data-column-number="5132" data-line-index="5256,5250"><span data-line-number-content="">5132</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">92 unmodified lines</span></div></div></div><div data-line-type="context" data-column-number="5225" data-line-index="5349,5343"><span data-line-number-content="">5225</span></div><div data-line-type="context" data-column-number="5226" data-line-index="5350,5344"><span data-line-number-content="">5226</span></div><div data-line-type="context" data-column-number="5227" data-line-index="5351,5345"><span data-line-number-content="">5227</span></div><div data-gutter-buffer="buffer" data-buffer-size="2" style="grid-row: span 2;min-height:calc(2 * 1lh);"></div><div data-line-type="context" data-column-number="5228" data-line-index="5354,5348"><span data-line-number-content="">5228</span></div><div data-line-type="context" data-column-number="5229" data-line-index="5355,5349"><span data-line-number-content="">5229</span></div><div data-line-type="context" data-column-number="5230" data-line-index="5356,5350"><span data-line-number-content="">5230</span></div><div data-line-type="context" data-column-number="5231" data-line-index="5357,5351"><span data-line-number-content="">5231</span></div><div data-line-type="context" data-column-number="5232" data-line-index="5358,5352"><span data-line-number-content="">5232</span></div><div data-line-type="context" data-column-number="5233" data-line-index="5359,5353"><span data-line-number-content="">5233</span></div><div data-gutter-buffer="buffer" data-buffer-size="1" style="grid-row: span 1;min-height:calc(1 * 1lh);"></div><div data-line-type="context" data-column-number="5234" data-line-index="5361,5355"><span data-line-number-content="">5234</span></div><div data-line-type="context" data-column-number="5235" data-line-index="5362,5356"><span data-line-number-content="">5235</span></div><div data-line-type="change-deletion" data-column-number="5236" data-line-index="5363,5357"><span data-line-number-content="">5236</span></div><div data-line-type="context" data-column-number="5237" data-line-index="5365,5358"><span data-line-number-content="">5237</span></div><div data-line-type="context" data-column-number="5238" data-line-index="5366,5359"><span data-line-number-content="">5238</span></div><div data-line-type="context" data-column-number="5239" data-line-index="5367,5360"><span data-line-number-content="">5239</span></div><div data-line-type="change-deletion" data-column-number="5240" data-line-index="5368,5361"><span data-line-number-content="">5240</span></div><div data-line-type="context" data-column-number="5241" data-line-index="5370,5362"><span data-line-number-content="">5241</span></div><div data-line-type="context" data-column-number="5242" data-line-index="5371,5363"><span data-line-number-content="">5242</span></div><div data-line-type="context" data-column-number="5243" data-line-index="5372,5364"><span data-line-number-content="">5243</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">84 unmodified lines</span></div></div></div><div data-line-type="context" data-column-number="5328" data-line-index="5457,5449"><span data-line-number-content="">5328</span></div><div data-line-type="context" data-column-number="5329" data-line-index="5458,5450"><span data-line-number-content="">5329</span></div><div data-line-type="context" data-column-number="5330" data-line-index="5459,5451"><span data-line-number-content="">5330</span></div><div data-gutter-buffer="buffer" data-buffer-size="2" style="grid-row: span 2;min-height:calc(2 * 1lh);"></div><div data-line-type="context" data-column-number="5331" data-line-index="5462,5454"><span data-line-number-content="">5331</span></div><div data-line-type="context" data-column-number="5332" data-line-index="5463,5455"><span data-line-number-content="">5332</span></div><div data-line-type="context" data-column-number="5333" data-line-index="5464,5456"><span data-line-number-content="">5333</span></div><div data-line-type="context" data-column-number="5334" data-line-index="5465,5457"><span data-line-number-content="">5334</span></div><div data-line-type="context" data-column-number="5335" data-line-index="5466,5458"><span data-line-number-content="">5335</span></div><div data-line-type="context" data-column-number="5336" data-line-index="5467,5459"><span data-line-number-content="">5336</span></div><div data-gutter-buffer="buffer" data-buffer-size="1" style="grid-row: span 1;min-height:calc(1 * 1lh);"></div><div data-line-type="context" data-column-number="5337" data-line-index="5469,5461"><span data-line-number-content="">5337</span></div><div data-line-type="context" data-column-number="5338" data-line-index="5470,5462"><span data-line-number-content="">5338</span></div><div data-line-type="change-deletion" data-column-number="5339" data-line-index="5471,5463"><span data-line-number-content="">5339</span></div><div data-line-type="context" data-column-number="5340" data-line-index="5473,5464"><span data-line-number-content="">5340</span></div><div data-line-type="context" data-column-number="5341" data-line-index="5474,5465"><span data-line-number-content="">5341</span></div><div data-line-type="context" data-column-number="5342" data-line-index="5475,5466"><span data-line-number-content="">5342</span></div><div data-line-type="change-deletion" data-column-number="5343" data-line-index="5476,5467"><span data-line-number-content="">5343</span></div><div data-line-type="context" data-column-number="5344" data-line-index="5478,5468"><span data-line-number-content="">5344</span></div><div data-line-type="context" data-column-number="5345" data-line-index="5479,5469"><span data-line-number-content="">5345</span></div><div data-line-type="context" data-column-number="5346" data-line-index="5480,5470"><span data-line-number-content="">5346</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">3509 unmodified lines</span></div></div></div><div data-line-type="context" data-column-number="8856" data-line-index="8990,8980"><span data-line-number-content="">8856</span></div><div data-line-type="context" data-column-number="8857" data-line-index="8991,8981"><span data-line-number-content="">8857</span></div><div data-line-type="context" data-column-number="8858" data-line-index="8992,8982"><span data-line-number-content="">8858</span></div><div data-gutter-buffer="buffer" data-buffer-size="9" style="grid-row: span 9;min-height:calc(9 * 1lh);"></div><div data-line-type="context" data-column-number="8859" data-line-index="9002,8992"><span data-line-number-content="">8859</span></div><div data-line-type="context" data-column-number="8860" data-line-index="9003,8993"><span data-line-number-content="">8860</span></div><div data-line-type="context" data-column-number="8861" data-line-index="9004,8994"><span data-line-number-content="">8861</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">138 unmodified lines</span></div></div></div><div data-line-type="context" data-column-number="9000" data-line-index="9143,9133"><span data-line-number-content="">9000</span></div><div data-line-type="context" data-column-number="9001" data-line-index="9144,9134"><span data-line-number-content="">9001</span></div><div data-line-type="context" data-column-number="9002" data-line-index="9145,9135"><span data-line-number-content="">9002</span></div><div data-gutter-buffer="buffer" data-buffer-size="1" style="grid-row: span 1;min-height:calc(1 * 1lh);"></div><div data-line-type="context" data-column-number="9003" data-line-index="9147,9137"><span data-line-number-content="">9003</span></div><div data-line-type="context" data-column-number="9004" data-line-index="9148,9138"><span data-line-number-content="">9004</span></div><div data-line-type="context" data-column-number="9005" data-line-index="9149,9139"><span data-line-number-content="">9005</span></div><div data-gutter-buffer="buffer" data-buffer-size="1" style="grid-row: span 1;min-height:calc(1 * 1lh);"></div><div data-line-type="context" data-column-number="9006" data-line-index="9151,9141"><span data-line-number-content="">9006</span></div><div data-line-type="context" data-column-number="9007" data-line-index="9152,9142"><span data-line-number-content="">9007</span></div><div data-line-type="context" data-column-number="9008" data-line-index="9153,9143"><span data-line-number-content="">9008</span></div><div data-line-type="context" data-column-number="9009" data-line-index="9154,9144"><span data-line-number-content="">9009</span></div><div data-line-type="context" data-column-number="9010" data-line-index="9155,9145"><span data-line-number-content="">9010</span></div><div data-line-type="context" data-column-number="9011" data-line-index="9156,9146"><span data-line-number-content="">9011</span></div><div data-line-type="change-deletion" data-column-number="9012" data-line-index="9157,9147"><span data-line-number-content="">9012</span></div><div data-gutter-buffer="buffer" data-buffer-size="7" style="grid-row: span 7;min-height:calc(7 * 1lh);"></div><div data-line-type="context" data-column-number="9013" data-line-index="9166,9155"><span data-line-number-content="">9013</span></div><div data-line-type="context" data-column-number="9014" data-line-index="9167,9156"><span data-line-number-content="">9014</span></div><div data-line-type="context" data-column-number="9015" data-line-index="9168,9157"><span data-line-number-content="">9015</span></div><div data-line-type="change-deletion" data-column-number="9016" data-line-index="9169,9158"><span data-line-number-content="">9016</span></div><div data-line-type="context" data-column-number="9017" data-line-index="9171,9159"><span data-line-number-content="">9017</span></div><div data-line-type="change-deletion" data-column-number="9018" data-line-index="9172,9160"><span data-line-number-content="">9018</span></div><div data-line-type="context" data-column-number="9019" data-line-index="9174,9161"><span data-line-number-content="">9019</span></div><div data-line-type="context" data-column-number="9020" data-line-index="9175,9162"><span data-line-number-content="">9020</span></div><div data-line-type="context" data-column-number="9021" data-line-index="9176,9163"><span data-line-number-content="">9021</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">160 unmodified lines</span></div></div></div><div data-line-type="context" data-column-number="9182" data-line-index="9337,9324"><span data-line-number-content="">9182</span></div><div data-line-type="context" data-column-number="9183" data-line-index="9338,9325"><span data-line-number-content="">9183</span></div><div data-line-type="context" data-column-number="9184" data-line-index="9339,9326"><span data-line-number-content="">9184</span></div><div data-gutter-buffer="buffer" data-buffer-size="3" style="grid-row: span 3;min-height:calc(3 * 1lh);"></div><div data-line-type="context" data-column-number="9185" data-line-index="9343,9330"><span data-line-number-content="">9185</span></div><div data-gutter-buffer="buffer" data-buffer-size="5" style="grid-row: span 5;min-height:calc(5 * 1lh);"></div><div data-line-type="context" data-column-number="9186" data-line-index="9349,9336"><span data-line-number-content="">9186</span></div><div data-line-type="context" data-column-number="9187" data-line-index="9350,9337"><span data-line-number-content="">9187</span></div><div data-line-type="context" data-column-number="9188" data-line-index="9351,9338"><span data-line-number-content="">9188</span></div><div data-line-type="context" data-column-number="9189" data-line-index="9352,9339"><span data-line-number-content="">9189</span></div><div data-line-type="context" data-column-number="9190" data-line-index="9353,9340"><span data-line-number-content="">9190</span></div><div data-line-type="change-deletion" data-column-number="9191" data-line-index="9354,9341"><span data-line-number-content="">9191</span></div><div data-line-type="change-deletion" data-column-number="9192" data-line-index="9355,9342"><span data-line-number-content="">9192</span></div><div data-line-type="change-deletion" data-column-number="9193" data-line-index="9356,9343"><span data-line-number-content="">9193</span></div><div data-line-type="change-deletion" data-column-number="9194" data-line-index="9357,9344"><span data-line-number-content="">9194</span></div><div data-line-type="change-deletion" data-column-number="9195" data-line-index="9358,9345"><span data-line-number-content="">9195</span></div><div data-line-type="change-deletion" data-column-number="9196" data-line-index="9359,9346"><span data-line-number-content="">9196</span></div><div data-line-type="change-deletion" data-column-number="9197" data-line-index="9360,9347"><span data-line-number-content="">9197</span></div><div data-line-type="change-deletion" data-column-number="9198" data-line-index="9361,9348"><span data-line-number-content="">9198</span></div><div data-line-type="change-deletion" data-column-number="9199" data-line-index="9362,9349"><span data-line-number-content="">9199</span></div><div data-line-type="change-deletion" data-column-number="9200" data-line-index="9363,9350"><span data-line-number-content="">9200</span></div><div data-line-type="change-deletion" data-column-number="9201" data-line-index="9364,9351"><span data-line-number-content="">9201</span></div><div data-line-type="change-deletion" data-column-number="9202" data-line-index="9365,9352"><span data-line-number-content="">9202</span></div><div data-line-type="change-deletion" data-column-number="9203" data-line-index="9366,9353"><span data-line-number-content="">9203</span></div><div data-line-type="change-deletion" data-column-number="9204" data-line-index="9367,9354"><span data-line-number-content="">9204</span></div><div data-line-type="change-deletion" data-column-number="9205" data-line-index="9368,9355"><span data-line-number-content="">9205</span></div><div data-line-type="change-deletion" data-column-number="9206" data-line-index="9369,9356"><span data-line-number-content="">9206</span></div><div data-line-type="change-deletion" data-column-number="9207" data-line-index="9370,9357"><span data-line-number-content="">9207</span></div><div data-line-type="context" data-column-number="9208" data-line-index="9371,9358"><span data-line-number-content="">9208</span></div><div data-line-type="context" data-column-number="9209" data-line-index="9372,9359"><span data-line-number-content="">9209</span></div><div data-line-type="context" data-column-number="9210" data-line-index="9373,9360"><span data-line-number-content="">9210</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">9 unmodified lines</span></div></div></div><div data-line-type="context" data-column-number="9220" data-line-index="9383,9370"><span data-line-number-content="">9220</span></div><div data-line-type="context" data-column-number="9221" data-line-index="9384,9371"><span data-line-number-content="">9221</span></div><div data-line-type="context" data-column-number="9222" data-line-index="9385,9372"><span data-line-number-content="">9222</span></div><div data-gutter-buffer="buffer" data-buffer-size="1" style="grid-row: span 1;min-height:calc(1 * 1lh);"></div><div data-line-type="context" data-column-number="9223" data-line-index="9387,9374"><span data-line-number-content="">9223</span></div><div data-line-type="context" data-column-number="9224" data-line-index="9388,9375"><span data-line-number-content="">9224</span></div><div data-line-type="context" data-column-number="9225" data-line-index="9389,9376"><span data-line-number-content="">9225</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">74 unmodified lines</span></div></div></div><div data-line-type="context" data-column-number="9300" data-line-index="9464,9451"><span data-line-number-content="">9300</span></div><div data-line-type="context" data-column-number="9301" data-line-index="9465,9452"><span data-line-number-content="">9301</span></div><div data-line-type="context" data-column-number="9302" data-line-index="9466,9453"><span data-line-number-content="">9302</span></div><div data-line-type="change-deletion" data-column-number="9303" data-line-index="9467,9454"><span data-line-number-content="">9303</span></div><div data-line-type="context" data-column-number="9304" data-line-index="9469,9455"><span data-line-number-content="">9304</span></div><div data-line-type="context" data-column-number="9305" data-line-index="9470,9456"><span data-line-number-content="">9305</span></div><div data-line-type="change-deletion" data-column-number="9306" data-line-index="9471,9457"><span data-line-number-content="">9306</span></div><div data-gutter-buffer="buffer" data-buffer-size="1" style="grid-row: span 1;min-height:calc(1 * 1lh);"></div><div data-line-type="context" data-column-number="9307" data-line-index="9474,9459"><span data-line-number-content="">9307</span></div><div data-line-type="context" data-column-number="9308" data-line-index="9475,9460"><span data-line-number-content="">9308</span></div><div data-gutter-buffer="buffer" data-buffer-size="3" style="grid-row: span 3;min-height:calc(3 * 1lh);"></div><div data-line-type="context" data-column-number="9309" data-line-index="9479,9464"><span data-line-number-content="">9309</span></div><div data-line-type="context" data-column-number="9310" data-line-index="9480,9465"><span data-line-number-content="">9310</span></div><div data-line-type="change-deletion" data-column-number="9311" data-line-index="9481,9466"><span data-line-number-content="">9311</span></div><div data-line-type="context" data-column-number="9312" data-line-index="9483,9467"><span data-line-number-content="">9312</span></div><div data-line-type="context" data-column-number="9313" data-line-index="9484,9468"><span data-line-number-content="">9313</span></div><div data-line-type="context" data-column-number="9314" data-line-index="9485,9469"><span data-line-number-content="">9314</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">1 unmodified line</span></div></div></div><div data-line-type="context" data-column-number="9316" data-line-index="9487,9471"><span data-line-number-content="">9316</span></div><div data-line-type="context" data-column-number="9317" data-line-index="9488,9472"><span data-line-number-content="">9317</span></div><div data-line-type="context" data-column-number="9318" data-line-index="9489,9473"><span data-line-number-content="">9318</span></div><div data-line-type="change-deletion" data-column-number="9319" data-line-index="9490,9474"><span data-line-number-content="">9319</span></div><div data-line-type="context" data-column-number="9320" data-line-index="9492,9475"><span data-line-number-content="">9320</span></div><div data-line-type="context" data-column-number="9321" data-line-index="9493,9476"><span data-line-number-content="">9321</span></div><div data-line-type="context" data-column-number="9322" data-line-index="9494,9477"><span data-line-number-content="">9322</span></div></div><div data-content="" style="grid-row: span 354"><div data-separator="line-info" data-separator-first=""><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">15 unmodified lines</span></div></div></div><div data-line="16" data-alt-line="16" data-line-type="context" data-line-index="15,15"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> type</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> CSSProperties</span><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">,</span></div><div data-line="17" data-alt-line="17" data-line-type="context" data-line-index="16,16"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> type</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> Dispatch</span><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">,</span></div><div data-line="18" data-alt-line="18" data-line-type="context" data-line-index="17,17"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> type</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> MouseEvent</span><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A"> as ReactMouseEvent,</span></div><div data-content-buffer="" data-buffer-size="1" style="grid-row: span 1;min-height:calc(1 * 1lh)"></div><div data-line="19" data-alt-line="20" data-line-type="context" data-line-index="19,19"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> type</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> ReactNode</span><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">,</span></div><div data-line="20" data-alt-line="21" data-line-type="context" data-line-index="20,20"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> type</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> SetStateAction</span></div><div data-line="21" data-alt-line="22" data-line-type="context" data-line-index="21,21"><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">} </span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">from</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> "react"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">369 unmodified lines</span></div></div></div><div data-line="391" data-alt-line="392" data-line-type="context" data-line-index="391,391"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> EMPTY_INFERRED_DARK_EVENTS</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">:</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> InferredDarkEvent</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">[]</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> [];</span></div><div data-line="392" data-alt-line="393" data-line-type="context" data-line-index="392,392"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> EMPTY_NEWS_STORIES</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">:</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> NewsStory</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">[]</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> [];</span></div><div data-line="393" data-alt-line="394" data-line-type="context" data-line-index="393,393">
</div><div data-content-buffer="" data-buffer-size="109" style="grid-row: span 109;min-height:calc(109 * 1lh)"></div><div data-line="394" data-alt-line="504" data-line-type="context" data-line-index="503,503"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">type</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> CandlestickSeries</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> ReturnType</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">IChartApi</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">[</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"addCandlestickSeries"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">]>;</span></div><div data-line="395" data-alt-line="505" data-line-type="context" data-line-index="504,504">
</div><div data-line="396" data-alt-line="506" data-line-type="context" data-line-index="505,505"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">type</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> EquityOverlayPoint</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">4497 unmodified lines</span></div></div></div><div data-line="4894" data-alt-line="5004" data-line-type="context" data-line-index="5003,5003"><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-line="4895" data-alt-line="5005" data-line-type="context" data-line-index="5004,5004">
</div><div data-line="4896" data-alt-line="5006" data-line-type="context" data-line-index="5005,5005"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">const</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> AlertDrawer</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> ({</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> alert</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> flowPacket</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> evidence</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> contextStatus</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> onClose</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> }:</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> AlertDrawerProps</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-content-buffer="" data-buffer-size="2" style="grid-row: span 2;min-height:calc(2 * 1lh)"></div><div data-line="4897" data-alt-line="5009" data-line-type="context" data-line-index="5008,5008"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> primary</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> alert</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">hits</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">[</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">0</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">];</span></div><div data-line="4898" data-alt-line="5010" data-line-type="context" data-line-index="5009,5009"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> direction</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> deriveAlertDirection</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">alert</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="4899" data-alt-line="5011" data-line-type="context" data-line-index="5010,5010"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> severity</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> normalizeAlertSeverity</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">alert</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">1 unmodified line</span></div></div></div><div data-line="4901" data-alt-line="5013" data-line-type="context" data-line-index="5012,5012"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> unknownCount</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> evidence</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">filter</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">((</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363">item</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> item</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">kind</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ===</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> "unknown"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">).</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">length</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-line="4902" data-alt-line="5014" data-line-type="context" data-line-index="5013,5013"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> isContextLoading</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> contextStatus</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">traceId</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ===</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> alert</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">trace_id</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> &#x26;&#x26;</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> contextStatus</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">loading</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-line="4903" data-alt-line="5015" data-line-type="context" data-line-index="5014,5014"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> missingRefs</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> contextStatus</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">traceId</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ===</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> alert</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">trace_id</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> ?</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> contextStatus</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">missingRefs</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> :</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> [];</span></div><div data-content-buffer="" data-buffer-size="1" style="grid-row: span 1;min-height:calc(1 * 1lh)"></div><div data-line="4904" data-alt-line="5017" data-line-type="context" data-line-index="5016,5016">
</div><div data-line="4905" data-alt-line="5018" data-line-type="context" data-line-index="5017,5017"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> return</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span></div><div data-line="4906" data-line-type="change-deletion" data-line-index="5018,5018"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">aside</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="4907" data-alt-line="5020" data-line-type="context" data-line-index="5020,5019"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-header"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="4908" data-alt-line="5021" data-line-type="context" data-line-index="5021,5020"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="4909" data-alt-line="5022" data-line-type="context" data-line-index="5022,5021"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-eyebrow"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>Alert details&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="4910" data-line-type="change-deletion" data-line-index="5023,5022"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">h3</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">primary</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> ?</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> humanizeClassifierId</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">primary</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">classifier_id</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">) </span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">:</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> "Alert"</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">h3</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="4911" data-alt-line="5024" data-line-type="context" data-line-index="5025,5023"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-subtitle"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">formatDateTime</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">alert</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">source_ts</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="4912" data-alt-line="5025" data-line-type="context" data-line-index="5026,5024"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="4913" data-alt-line="5026" data-line-type="context" data-line-index="5027,5025"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">button</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-close"</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> type</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"button"</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> onClick</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">onClose</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">138 unmodified lines</span></div></div></div><div data-line="5052" data-alt-line="5165" data-line-type="context" data-line-index="5166,5164"><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-line="5053" data-alt-line="5166" data-line-type="context" data-line-index="5167,5165">
</div><div data-line="5054" data-alt-line="5167" data-line-type="context" data-line-index="5168,5166"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">const</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> NewsDrawer</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> ({</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> story</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> onClose</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> }:</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> NewsDrawerProps</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-content-buffer="" data-buffer-size="2" style="grid-row: span 2;min-height:calc(2 * 1lh)"></div><div data-line="5055" data-alt-line="5170" data-line-type="context" data-line-index="5171,5169"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> body</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> sanitizeNewsHtml</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">story</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">content_html</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-content-buffer="" data-buffer-size="1" style="grid-row: span 1;min-height:calc(1 * 1lh)"></div><div data-line="5056" data-alt-line="5172" data-line-type="context" data-line-index="5173,5171">
</div><div data-line="5057" data-alt-line="5173" data-line-type="context" data-line-index="5174,5172"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> return</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span></div><div data-line="5058" data-line-type="change-deletion" data-line-index="5175,5173"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">aside</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5059" data-alt-line="5175" data-line-type="context" data-line-index="5177,5174"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-header"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5060" data-alt-line="5176" data-line-type="context" data-line-index="5178,5175"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5061" data-alt-line="5177" data-line-type="context" data-line-index="5179,5176"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-eyebrow"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>News wire&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5062" data-line-type="change-deletion" data-line-index="5180,5177"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">h3</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">story</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">headline</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">h3</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5063" data-alt-line="5179" data-line-type="context" data-line-index="5182,5178"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-subtitle"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5064" data-alt-line="5180" data-line-type="context" data-line-index="5183,5179"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> {</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">story</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">source</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> · Published </span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">formatDateTime</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">story</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">published_ts</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span></div><div data-line="5065" data-alt-line="5181" data-line-type="context" data-line-index="5184,5180"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> {</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">story</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">updated_ts</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> !==</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> story</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">published_ts</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> ?</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> `</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> · Updated </span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">${</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">formatDateTime</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">story</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">updated_ts</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">`</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> :</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> ""</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">51 unmodified lines</span></div></div></div><div data-line="5117" data-alt-line="5233" data-line-type="context" data-line-index="5236,5232"><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-line="5118" data-alt-line="5234" data-line-type="context" data-line-index="5237,5233">
</div><div data-line="5119" data-alt-line="5235" data-line-type="context" data-line-index="5238,5234"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">const</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> ClassifierHitDrawer</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> ({</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> hit</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> flowPacket</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> evidence</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> onClose</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> }:</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> ClassifierHitDrawerProps</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-content-buffer="" data-buffer-size="2" style="grid-row: span 2;min-height:calc(2 * 1lh)"></div><div data-line="5120" data-alt-line="5238" data-line-type="context" data-line-index="5241,5237"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> direction</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> normalizeDirection</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">hit</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">direction</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="5121" data-alt-line="5239" data-line-type="context" data-line-index="5242,5238"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> evidencePrints</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> evidence</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">filter</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">((</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363">item</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> item</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">kind</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ===</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> "print"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="5122" data-alt-line="5240" data-line-type="context" data-line-index="5243,5239"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> unknownCount</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> evidence</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">filter</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">((</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363">item</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> item</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">kind</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ===</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> "unknown"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">).</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">length</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-content-buffer="" data-buffer-size="1" style="grid-row: span 1;min-height:calc(1 * 1lh)"></div><div data-line="5123" data-alt-line="5242" data-line-type="context" data-line-index="5245,5241">
</div><div data-line="5124" data-alt-line="5243" data-line-type="context" data-line-index="5246,5242"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> return</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span></div><div data-line="5125" data-line-type="change-deletion" data-line-index="5247,5243"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">aside</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5126" data-alt-line="5245" data-line-type="context" data-line-index="5249,5244"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-header"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5127" data-alt-line="5246" data-line-type="context" data-line-index="5250,5245"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5128" data-alt-line="5247" data-line-type="context" data-line-index="5251,5246"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-eyebrow"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>Classifier hit&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5129" data-line-type="change-deletion" data-line-index="5252,5247"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">h3</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">humanizeClassifierId</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">hit</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">classifier_id</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">h3</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5130" data-alt-line="5249" data-line-type="context" data-line-index="5254,5248"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-subtitle"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">formatDateTime</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">hit</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">source_ts</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5131" data-alt-line="5250" data-line-type="context" data-line-index="5255,5249"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5132" data-alt-line="5251" data-line-type="context" data-line-index="5256,5250"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">button</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-close"</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> type</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"button"</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> onClick</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">onClose</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">92 unmodified lines</span></div></div></div><div data-line="5225" data-alt-line="5344" data-line-type="context" data-line-index="5349,5343"><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-line="5226" data-alt-line="5345" data-line-type="context" data-line-index="5350,5344">
</div><div data-line="5227" data-alt-line="5346" data-line-type="context" data-line-index="5351,5345"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">const</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> SmartMoneyDrawer</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> ({</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> flowPacket</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> evidence</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> onClose</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> }:</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> SmartMoneyDrawerProps</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-content-buffer="" data-buffer-size="2" style="grid-row: span 2;min-height:calc(2 * 1lh)"></div><div data-line="5228" data-alt-line="5349" data-line-type="context" data-line-index="5354,5348"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> primaryScore</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span></div><div data-line="5229" data-alt-line="5350" data-line-type="context" data-line-index="5355,5349"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">profile_scores</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">find</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">((</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363">score</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> score</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">profile_id</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ===</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">primary_profile_id</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ??</span></div><div data-line="5230" data-alt-line="5351" data-line-type="context" data-line-index="5356,5350"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">profile_scores</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">[</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">0</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">];</span></div><div data-line="5231" data-alt-line="5352" data-line-type="context" data-line-index="5357,5351"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> direction</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> normalizeDirection</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">primary_direction</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="5232" data-alt-line="5353" data-line-type="context" data-line-index="5358,5352"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> evidencePrints</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> evidence</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">filter</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">((</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363">item</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> item</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">kind</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ===</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> "print"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="5233" data-alt-line="5354" data-line-type="context" data-line-index="5359,5353"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> unknownCount</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> evidence</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">filter</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">((</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363">item</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> item</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">kind</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ===</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> "unknown"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">).</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">length</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-content-buffer="" data-buffer-size="1" style="grid-row: span 1;min-height:calc(1 * 1lh)"></div><div data-line="5234" data-alt-line="5356" data-line-type="context" data-line-index="5361,5355">
</div><div data-line="5235" data-alt-line="5357" data-line-type="context" data-line-index="5362,5356"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> return</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span></div><div data-line="5236" data-line-type="change-deletion" data-line-index="5363,5357"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">aside</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5237" data-alt-line="5359" data-line-type="context" data-line-index="5365,5358"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-header"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5238" data-alt-line="5360" data-line-type="context" data-line-index="5366,5359"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5239" data-alt-line="5361" data-line-type="context" data-line-index="5367,5360"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-eyebrow"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>Smart money profile&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5240" data-line-type="change-deletion" data-line-index="5368,5361"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">h3</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">smartMoneyProfileLabel</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">primary_profile_id</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">h3</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5241" data-alt-line="5363" data-line-type="context" data-line-index="5370,5362"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-subtitle"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">formatDateTime</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">source_ts</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5242" data-alt-line="5364" data-line-type="context" data-line-index="5371,5363"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5243" data-alt-line="5365" data-line-type="context" data-line-index="5372,5364"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">button</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-close"</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> type</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"button"</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> onClick</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">onClose</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">84 unmodified lines</span></div></div></div><div data-line="5328" data-alt-line="5450" data-line-type="context" data-line-index="5457,5449"><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-line="5329" data-alt-line="5451" data-line-type="context" data-line-index="5458,5450">
</div><div data-line="5330" data-alt-line="5452" data-line-type="context" data-line-index="5459,5451"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">const</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> DarkDrawer</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> ({</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> evidence</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> underlying</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> onClose</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> }:</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> DarkDrawerProps</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-content-buffer="" data-buffer-size="2" style="grid-row: span 2;min-height:calc(2 * 1lh)"></div><div data-line="5331" data-alt-line="5455" data-line-type="context" data-line-index="5462,5454"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> joinEvidence</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> evidence</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">filter</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span></div><div data-line="5332" data-alt-line="5456" data-line-type="context" data-line-index="5463,5455"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363">item</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">):</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> item</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> is</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> kind</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">:</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> "join"</span><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">; </span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">id</span><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">: </span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">string</span><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">; </span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">join</span><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">: </span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">EquityPrintJoin</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> }</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> item</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">kind</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ===</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> "join"</span></div><div data-line="5333" data-alt-line="5457" data-line-type="context" data-line-index="5464,5456"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> );</span></div><div data-line="5334" data-alt-line="5458" data-line-type="context" data-line-index="5465,5457"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> unknownCount</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> evidence</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">filter</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">((</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363">item</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> item</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">kind</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ===</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> "unknown"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">).</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">length</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-line="5335" data-alt-line="5459" data-line-type="context" data-line-index="5466,5458"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> traceRefs</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">evidence_refs</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">slice</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">0</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7"> 6</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="5336" data-alt-line="5460" data-line-type="context" data-line-index="5467,5459"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> extraRefs</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> Math</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">max</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">0</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">evidence_refs</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">length</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> -</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> traceRefs</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">length</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-content-buffer="" data-buffer-size="1" style="grid-row: span 1;min-height:calc(1 * 1lh)"></div><div data-line="5337" data-alt-line="5462" data-line-type="context" data-line-index="5469,5461">
</div><div data-line="5338" data-alt-line="5463" data-line-type="context" data-line-index="5470,5462"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> return</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span></div><div data-line="5339" data-line-type="change-deletion" data-line-index="5471,5463"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">aside</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5340" data-alt-line="5465" data-line-type="context" data-line-index="5473,5464"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-header"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5341" data-alt-line="5466" data-line-type="context" data-line-index="5474,5465"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5342" data-alt-line="5467" data-line-type="context" data-line-index="5475,5466"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-eyebrow"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>Inferred dark&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5343" data-line-type="change-deletion" data-line-index="5476,5467"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">h3</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">humanizeClassifierId</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">type</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">h3</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5344" data-alt-line="5469" data-line-type="context" data-line-index="5478,5468"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-subtitle"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">formatDateTime</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">source_ts</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5345" data-alt-line="5470" data-line-type="context" data-line-index="5479,5469"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5346" data-alt-line="5471" data-line-type="context" data-line-index="5480,5470"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">button</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-close"</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> type</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"button"</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> onClick</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">onClose</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">3509 unmodified lines</span></div></div></div><div data-line="8856" data-alt-line="8981" data-line-type="context" data-line-index="8990,8980"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> [</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C">error</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> setError</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">]</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useState</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">string</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> |</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> null</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>(</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">null</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="8857" data-alt-line="8982" data-line-type="context" data-line-index="8991,8981"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> dirtyRef</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useRef</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">false</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="8858" data-alt-line="8983" data-line-type="context" data-line-index="8992,8982"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> savedRef</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useRef</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">SyntheticControlState</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> |</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> null</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>(</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">null</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-content-buffer="" data-buffer-size="9" style="grid-row: span 9;min-height:calc(9 * 1lh)"></div><div data-line="8859" data-alt-line="8993" data-line-type="context" data-line-index="9002,8992">
</div><div data-line="8860" data-alt-line="8994" data-line-type="context" data-line-index="9003,8993"><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useEffect</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(()</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="8861" data-alt-line="8995" data-line-type="context" data-line-index="9004,8994"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> if</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">!</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">visible</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">138 unmodified lines</span></div></div></div><div data-line="9000" data-alt-line="9134" data-line-type="context" data-line-index="9143,9133"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;></span></div><div data-line="9001" data-alt-line="9135" data-line-type="context" data-line-index="9144,9134"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">button</span></div><div data-line="9002" data-alt-line="9136" data-line-type="context" data-line-index="9145,9135"><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> aria-expanded</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">open</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span></div><div data-content-buffer="" data-buffer-size="1" style="grid-row: span 1;min-height:calc(1 * 1lh)"></div><div data-line="9003" data-alt-line="9138" data-line-type="context" data-line-index="9147,9137"><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> aria-label</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"Synthetic control"</span></div><div data-line="9004" data-alt-line="9139" data-line-type="context" data-line-index="9148,9138"><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">`</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">synthetic-control-gear</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">${</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">open</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> ?</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> " is-open"</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> :</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> ""</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">`</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span></div><div data-line="9005" data-alt-line="9140" data-line-type="context" data-line-index="9149,9139"><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> onClick</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">() </span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">=></span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> setOpen</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">((</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363">current</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">) </span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">=></span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> !</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">current</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span></div><div data-content-buffer="" data-buffer-size="1" style="grid-row: span 1;min-height:calc(1 * 1lh)"></div><div data-line="9006" data-alt-line="9142" data-line-type="context" data-line-index="9151,9141"><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> type</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"button"</span></div><div data-line="9007" data-alt-line="9143" data-line-type="context" data-line-index="9152,9142"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> ></span></div><div data-line="9008" data-alt-line="9144" data-line-type="context" data-line-index="9153,9143"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">span</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"synthetic-control-gear-mark"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>+&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">span</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="9009" data-alt-line="9145" data-line-type="context" data-line-index="9154,9144"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">button</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="9010" data-alt-line="9146" data-line-type="context" data-line-index="9155,9145">
</div><div data-line="9011" data-alt-line="9147" data-line-type="context" data-line-index="9156,9146"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> {</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">open</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> ?</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span></div><div data-line="9012" data-line-type="change-deletion" data-line-index="9157,9147"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">aside</span><span data-diff-span=""><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"synthetic-control-drawer"</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> aria-label</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"Synthetic control drawer"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></span></div><div data-content-buffer="" data-buffer-size="7" style="grid-row: span 7;min-height:calc(7 * 1lh)"></div><div data-line="9013" data-alt-line="9156" data-line-type="context" data-line-index="9166,9155"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"synthetic-control-header"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="9014" data-alt-line="9157" data-line-type="context" data-line-index="9167,9156"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="9015" data-alt-line="9158" data-line-type="context" data-line-index="9168,9157"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"synthetic-control-kicker"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>Synthetic Control&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="9016" data-line-type="change-deletion" data-line-index="9169,9158"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">h3</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>Hosted tape operator rail&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">h3</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="9017" data-alt-line="9160" data-line-type="context" data-line-index="9171,9159"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="9018" data-line-type="change-deletion" data-line-index="9172,9160"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">button</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-close"</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> onClick</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span data-diff-span=""><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">() </span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">=></span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> setOpen</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">false</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span></span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> type</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"button"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="9019" data-alt-line="9162" data-line-type="context" data-line-index="9174,9161"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> Close</span></div><div data-line="9020" data-alt-line="9163" data-line-type="context" data-line-index="9175,9162"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">button</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="9021" data-alt-line="9164" data-line-type="context" data-line-index="9176,9163"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">160 unmodified lines</span></div></div></div><div data-line="9182" data-alt-line="9325" data-line-type="context" data-line-index="9337,9324"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> [</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C">drawerOpen</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> setDrawerOpen</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">]</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useState</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">false</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="9183" data-alt-line="9326" data-line-type="context" data-line-index="9338,9325"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> tickerFieldId</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useId</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">();</span></div><div data-line="9184" data-alt-line="9327" data-line-type="context" data-line-index="9339,9326"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> tickerHintId</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useId</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">();</span></div><div data-content-buffer="" data-buffer-size="3" style="grid-row: span 3;min-height:calc(3 * 1lh)"></div><div data-line="9185" data-alt-line="9331" data-line-type="context" data-line-index="9343,9330"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> activeNavHref</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> getTerminalNavCurrentHref</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">pathname</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-content-buffer="" data-buffer-size="5" style="grid-row: span 5;min-height:calc(5 * 1lh)"></div><div data-line="9186" data-alt-line="9337" data-line-type="context" data-line-index="9349,9336">
</div><div data-line="9187" data-alt-line="9338" data-line-type="context" data-line-index="9350,9337"><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useEffect</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(()</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="9188" data-alt-line="9339" data-line-type="context" data-line-index="9351,9338"><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> setDrawerOpen</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">false</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="9189" data-alt-line="9340" data-line-type="context" data-line-index="9352,9339"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> },</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> [</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">pathname</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">]);</span></div><div data-line="9190" data-alt-line="9341" data-line-type="context" data-line-index="9353,9340">
</div><div data-line="9191" data-line-type="change-deletion" data-line-index="9354,9341"><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useEffect</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(()</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="9192" data-line-type="change-deletion" data-line-index="9355,9342"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> if</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">!</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">drawerOpen</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="9193" data-line-type="change-deletion" data-line-index="9356,9343"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> return</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-line="9194" data-line-type="change-deletion" data-line-index="9357,9344"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> }</span></div><div data-line="9195" data-line-type="change-deletion" data-line-index="9358,9345">
</div><div data-line="9196" data-line-type="change-deletion" data-line-index="9359,9346"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> handleKeyDown</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363">event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">:</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> KeyboardEvent</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="9197" data-line-type="change-deletion" data-line-index="9360,9347"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> if</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">key</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ===</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> "Escape"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="9198" data-line-type="change-deletion" data-line-index="9361,9348"><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> setDrawerOpen</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">false</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="9199" data-line-type="change-deletion" data-line-index="9362,9349"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> }</span></div><div data-line="9200" data-line-type="change-deletion" data-line-index="9363,9350"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> };</span></div><div data-line="9201" data-line-type="change-deletion" data-line-index="9364,9351">
</div><div data-line="9202" data-line-type="change-deletion" data-line-index="9365,9352"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> document</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">addEventListener</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"keydown"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> handleKeyDown</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="9203" data-line-type="change-deletion" data-line-index="9366,9353"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> return</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> ()</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="9204" data-line-type="change-deletion" data-line-index="9367,9354"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> document</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">removeEventListener</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"keydown"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> handleKeyDown</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="9205" data-line-type="change-deletion" data-line-index="9368,9355"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> };</span></div><div data-line="9206" data-line-type="change-deletion" data-line-index="9369,9356"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> },</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> [</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">drawerOpen</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">]);</span></div><div data-line="9207" data-line-type="change-deletion" data-line-index="9370,9357">
</div><div data-line="9208" data-alt-line="9342" data-line-type="context" data-line-index="9371,9358"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> return</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span></div><div data-line="9209" data-alt-line="9343" data-line-type="context" data-line-index="9372,9359"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">TerminalContext.Provider</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> value</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">state</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="9210" data-alt-line="9344" data-line-type="context" data-line-index="9373,9360"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"terminal-shell"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">9 unmodified lines</span></div></div></div><div data-line="9220" data-alt-line="9354" data-line-type="context" data-line-index="9383,9370"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> aria</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">-</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">expanded</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">drawerOpen</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">}</span></div><div data-line="9221" data-alt-line="9355" data-line-type="context" data-line-index="9384,9371"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> aria</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">-</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">label</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">{</span><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">drawerOpen ? </span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"Close navigation menu"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> :</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> "Open navigation menu"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">}</span></div><div data-line="9222" data-alt-line="9356" data-line-type="context" data-line-index="9385,9372"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"terminal-button terminal-menu-trigger"</span></div><div data-content-buffer="" data-buffer-size="1" style="grid-row: span 1;min-height:calc(1 * 1lh)"></div><div data-line="9223" data-alt-line="9358" data-line-type="context" data-line-index="9387,9374"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> type</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"button"</span></div><div data-line="9224" data-alt-line="9359" data-line-type="context" data-line-index="9388,9375"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> onClick</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">{</span><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">() => </span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">setDrawerOpen</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">(</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363">current</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A"> !</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">current</span><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">)</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">}</span></div><div data-line="9225" data-alt-line="9360" data-line-type="context" data-line-index="9389,9376"><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ></span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">74 unmodified lines</span></div></div></div><div data-line="9300" data-alt-line="9435" data-line-type="context" data-line-index="9464,9451"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> aria</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">-</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">label</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"Close navigation drawer"</span></div><div data-line="9301" data-alt-line="9436" data-line-type="context" data-line-index="9465,9452"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"terminal-drawer-backdrop"</span></div><div data-line="9302" data-alt-line="9437" data-line-type="context" data-line-index="9466,9453"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> type</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"button"</span></div><div data-line="9303" data-line-type="change-deletion" data-line-index="9467,9454"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> onClick</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">{</span><span data-diff-span=""><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">() => </span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">setDrawerOpen</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363">false</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">}</span></div><div data-line="9304" data-alt-line="9439" data-line-type="context" data-line-index="9469,9455"><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> /></span></div><div data-line="9305" data-alt-line="9440" data-line-type="context" data-line-index="9470,9456"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">aside</span></div><div data-line="9306" data-line-type="change-deletion" data-line-index="9471,9457"><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> aria-</span><span data-diff-span=""><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C">label</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"Primary navigation"</span></span></div><div data-content-buffer="" data-buffer-size="1" style="grid-row: span 1;min-height:calc(1 * 1lh)"></div><div data-line="9307" data-alt-line="9443" data-line-type="context" data-line-index="9474,9459"><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"terminal-nav-drawer"</span></div><div data-line="9308" data-alt-line="9444" data-line-type="context" data-line-index="9475,9460"><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> id</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"terminal-nav-drawer"</span></div><div data-content-buffer="" data-buffer-size="3" style="grid-row: span 3;min-height:calc(3 * 1lh)"></div><div data-line="9309" data-alt-line="9448" data-line-type="context" data-line-index="9479,9464"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> ></span></div><div data-line="9310" data-alt-line="9449" data-line-type="context" data-line-index="9480,9465"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"terminal-drawer-head"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="9311" data-line-type="change-deletion" data-line-index="9481,9466"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"terminal-brand"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="9312" data-alt-line="9451" data-line-type="context" data-line-index="9483,9467"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">span</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"terminal-brand-kicker"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>IF&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">span</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="9313" data-alt-line="9452" data-line-type="context" data-line-index="9484,9468"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">span</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"terminal-brand-name"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>islandflow&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">span</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="9314" data-alt-line="9453" data-line-type="context" data-line-index="9485,9469"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">1 unmodified line</span></div></div></div><div data-line="9316" data-alt-line="9455" data-line-type="context" data-line-index="9487,9471"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> aria</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">-</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">label</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"Close navigation drawer"</span></div><div data-line="9317" data-alt-line="9456" data-line-type="context" data-line-index="9488,9472"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"terminal-button terminal-drawer-close"</span></div><div data-line="9318" data-alt-line="9457" data-line-type="context" data-line-index="9489,9473"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> type</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"button"</span></div><div data-line="9319" data-line-type="change-deletion" data-line-index="9490,9474"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> onClick</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">{</span><span data-diff-span=""><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">() => </span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">setDrawerOpen</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363">false</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">}</span></div><div data-line="9320" data-alt-line="9459" data-line-type="context" data-line-index="9492,9475"><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ></span></div><div data-line="9321" data-alt-line="9460" data-line-type="context" data-line-index="9493,9476"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> Close</span></div><div data-line="9322" data-alt-line="9461" data-line-type="context" data-line-index="9494,9477"><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> &#x3C;/</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">button</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">></span></div></div></code><code data-code="" data-container-size="" data-additions=""><div data-gutter="" style="grid-row: span 354"><div data-separator="line-info" data-separator-first=""><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">15 unmodified lines</span></div></div></div><div data-line-type="context" data-column-number="16" data-line-index="15,15"><span data-line-number-content="">16</span></div><div data-line-type="context" data-column-number="17" data-line-index="16,16"><span data-line-number-content="">17</span></div><div data-line-type="context" data-column-number="18" data-line-index="17,17"><span data-line-number-content="">18</span></div><div data-line-type="change-addition" data-column-number="19" data-line-index="18,18"><span data-line-number-content="">19</span></div><div data-line-type="context" data-column-number="20" data-line-index="19,19"><span data-line-number-content="">20</span></div><div data-line-type="context" data-column-number="21" data-line-index="20,20"><span data-line-number-content="">21</span></div><div data-line-type="context" data-column-number="22" data-line-index="21,21"><span data-line-number-content="">22</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">369 unmodified lines</span></div></div></div><div data-line-type="context" data-column-number="392" data-line-index="391,391"><span data-line-number-content="">392</span></div><div data-line-type="context" data-column-number="393" data-line-index="392,392"><span data-line-number-content="">393</span></div><div data-line-type="context" data-column-number="394" data-line-index="393,393"><span data-line-number-content="">394</span></div><div data-line-type="change-addition" data-column-number="395" data-line-index="394,394"><span data-line-number-content="">395</span></div><div data-line-type="change-addition" data-column-number="396" data-line-index="395,395"><span data-line-number-content="">396</span></div><div data-line-type="change-addition" data-column-number="397" data-line-index="396,396"><span data-line-number-content="">397</span></div><div data-line-type="change-addition" data-column-number="398" data-line-index="397,397"><span data-line-number-content="">398</span></div><div data-line-type="change-addition" data-column-number="399" data-line-index="398,398"><span data-line-number-content="">399</span></div><div data-line-type="change-addition" data-column-number="400" data-line-index="399,399"><span data-line-number-content="">400</span></div><div data-line-type="change-addition" data-column-number="401" data-line-index="400,400"><span data-line-number-content="">401</span></div><div data-line-type="change-addition" data-column-number="402" data-line-index="401,401"><span data-line-number-content="">402</span></div><div data-line-type="change-addition" data-column-number="403" data-line-index="402,402"><span data-line-number-content="">403</span></div><div data-line-type="change-addition" data-column-number="404" data-line-index="403,403"><span data-line-number-content="">404</span></div><div data-line-type="change-addition" data-column-number="405" data-line-index="404,404"><span data-line-number-content="">405</span></div><div data-line-type="change-addition" data-column-number="406" data-line-index="405,405"><span data-line-number-content="">406</span></div><div data-line-type="change-addition" data-column-number="407" data-line-index="406,406"><span data-line-number-content="">407</span></div><div data-line-type="change-addition" data-column-number="408" data-line-index="407,407"><span data-line-number-content="">408</span></div><div data-line-type="change-addition" data-column-number="409" data-line-index="408,408"><span data-line-number-content="">409</span></div><div data-line-type="change-addition" data-column-number="410" data-line-index="409,409"><span data-line-number-content="">410</span></div><div data-line-type="change-addition" data-column-number="411" data-line-index="410,410"><span data-line-number-content="">411</span></div><div data-line-type="change-addition" data-column-number="412" data-line-index="411,411"><span data-line-number-content="">412</span></div><div data-line-type="change-addition" data-column-number="413" data-line-index="412,412"><span data-line-number-content="">413</span></div><div data-line-type="change-addition" data-column-number="414" data-line-index="413,413"><span data-line-number-content="">414</span></div><div data-line-type="change-addition" data-column-number="415" data-line-index="414,414"><span data-line-number-content="">415</span></div><div data-line-type="change-addition" data-column-number="416" data-line-index="415,415"><span data-line-number-content="">416</span></div><div data-line-type="change-addition" data-column-number="417" data-line-index="416,416"><span data-line-number-content="">417</span></div><div data-line-type="change-addition" data-column-number="418" data-line-index="417,417"><span data-line-number-content="">418</span></div><div data-line-type="change-addition" data-column-number="419" data-line-index="418,418"><span data-line-number-content="">419</span></div><div data-line-type="change-addition" data-column-number="420" data-line-index="419,419"><span data-line-number-content="">420</span></div><div data-line-type="change-addition" data-column-number="421" data-line-index="420,420"><span data-line-number-content="">421</span></div><div data-line-type="change-addition" data-column-number="422" data-line-index="421,421"><span data-line-number-content="">422</span></div><div data-line-type="change-addition" data-column-number="423" data-line-index="422,422"><span data-line-number-content="">423</span></div><div data-line-type="change-addition" data-column-number="424" data-line-index="423,423"><span data-line-number-content="">424</span></div><div data-line-type="change-addition" data-column-number="425" data-line-index="424,424"><span data-line-number-content="">425</span></div><div data-line-type="change-addition" data-column-number="426" data-line-index="425,425"><span data-line-number-content="">426</span></div><div data-line-type="change-addition" data-column-number="427" data-line-index="426,426"><span data-line-number-content="">427</span></div><div data-line-type="change-addition" data-column-number="428" data-line-index="427,427"><span data-line-number-content="">428</span></div><div data-line-type="change-addition" data-column-number="429" data-line-index="428,428"><span data-line-number-content="">429</span></div><div data-line-type="change-addition" data-column-number="430" data-line-index="429,429"><span data-line-number-content="">430</span></div><div data-line-type="change-addition" data-column-number="431" data-line-index="430,430"><span data-line-number-content="">431</span></div><div data-line-type="change-addition" data-column-number="432" data-line-index="431,431"><span data-line-number-content="">432</span></div><div data-line-type="change-addition" data-column-number="433" data-line-index="432,432"><span data-line-number-content="">433</span></div><div data-line-type="change-addition" data-column-number="434" data-line-index="433,433"><span data-line-number-content="">434</span></div><div data-line-type="change-addition" data-column-number="435" data-line-index="434,434"><span data-line-number-content="">435</span></div><div data-line-type="change-addition" data-column-number="436" data-line-index="435,435"><span data-line-number-content="">436</span></div><div data-line-type="change-addition" data-column-number="437" data-line-index="436,436"><span data-line-number-content="">437</span></div><div data-line-type="change-addition" data-column-number="438" data-line-index="437,437"><span data-line-number-content="">438</span></div><div data-line-type="change-addition" data-column-number="439" data-line-index="438,438"><span data-line-number-content="">439</span></div><div data-line-type="change-addition" data-column-number="440" data-line-index="439,439"><span data-line-number-content="">440</span></div><div data-line-type="change-addition" data-column-number="441" data-line-index="440,440"><span data-line-number-content="">441</span></div><div data-line-type="change-addition" data-column-number="442" data-line-index="441,441"><span data-line-number-content="">442</span></div><div data-line-type="change-addition" data-column-number="443" data-line-index="442,442"><span data-line-number-content="">443</span></div><div data-line-type="change-addition" data-column-number="444" data-line-index="443,443"><span data-line-number-content="">444</span></div><div data-line-type="change-addition" data-column-number="445" data-line-index="444,444"><span data-line-number-content="">445</span></div><div data-line-type="change-addition" data-column-number="446" data-line-index="445,445"><span data-line-number-content="">446</span></div><div data-line-type="change-addition" data-column-number="447" data-line-index="446,446"><span data-line-number-content="">447</span></div><div data-line-type="change-addition" data-column-number="448" data-line-index="447,447"><span data-line-number-content="">448</span></div><div data-line-type="change-addition" data-column-number="449" data-line-index="448,448"><span data-line-number-content="">449</span></div><div data-line-type="change-addition" data-column-number="450" data-line-index="449,449"><span data-line-number-content="">450</span></div><div data-line-type="change-addition" data-column-number="451" data-line-index="450,450"><span data-line-number-content="">451</span></div><div data-line-type="change-addition" data-column-number="452" data-line-index="451,451"><span data-line-number-content="">452</span></div><div data-line-type="change-addition" data-column-number="453" data-line-index="452,452"><span data-line-number-content="">453</span></div><div data-line-type="change-addition" data-column-number="454" data-line-index="453,453"><span data-line-number-content="">454</span></div><div data-line-type="change-addition" data-column-number="455" data-line-index="454,454"><span data-line-number-content="">455</span></div><div data-line-type="change-addition" data-column-number="456" data-line-index="455,455"><span data-line-number-content="">456</span></div><div data-line-type="change-addition" data-column-number="457" data-line-index="456,456"><span data-line-number-content="">457</span></div><div data-line-type="change-addition" data-column-number="458" data-line-index="457,457"><span data-line-number-content="">458</span></div><div data-line-type="change-addition" data-column-number="459" data-line-index="458,458"><span data-line-number-content="">459</span></div><div data-line-type="change-addition" data-column-number="460" data-line-index="459,459"><span data-line-number-content="">460</span></div><div data-line-type="change-addition" data-column-number="461" data-line-index="460,460"><span data-line-number-content="">461</span></div><div data-line-type="change-addition" data-column-number="462" data-line-index="461,461"><span data-line-number-content="">462</span></div><div data-line-type="change-addition" data-column-number="463" data-line-index="462,462"><span data-line-number-content="">463</span></div><div data-line-type="change-addition" data-column-number="464" data-line-index="463,463"><span data-line-number-content="">464</span></div><div data-line-type="change-addition" data-column-number="465" data-line-index="464,464"><span data-line-number-content="">465</span></div><div data-line-type="change-addition" data-column-number="466" data-line-index="465,465"><span data-line-number-content="">466</span></div><div data-line-type="change-addition" data-column-number="467" data-line-index="466,466"><span data-line-number-content="">467</span></div><div data-line-type="change-addition" data-column-number="468" data-line-index="467,467"><span data-line-number-content="">468</span></div><div data-line-type="change-addition" data-column-number="469" data-line-index="468,468"><span data-line-number-content="">469</span></div><div data-line-type="change-addition" data-column-number="470" data-line-index="469,469"><span data-line-number-content="">470</span></div><div data-line-type="change-addition" data-column-number="471" data-line-index="470,470"><span data-line-number-content="">471</span></div><div data-line-type="change-addition" data-column-number="472" data-line-index="471,471"><span data-line-number-content="">472</span></div><div data-line-type="change-addition" data-column-number="473" data-line-index="472,472"><span data-line-number-content="">473</span></div><div data-line-type="change-addition" data-column-number="474" data-line-index="473,473"><span data-line-number-content="">474</span></div><div data-line-type="change-addition" data-column-number="475" data-line-index="474,474"><span data-line-number-content="">475</span></div><div data-line-type="change-addition" data-column-number="476" data-line-index="475,475"><span data-line-number-content="">476</span></div><div data-line-type="change-addition" data-column-number="477" data-line-index="476,476"><span data-line-number-content="">477</span></div><div data-line-type="change-addition" data-column-number="478" data-line-index="477,477"><span data-line-number-content="">478</span></div><div data-line-type="change-addition" data-column-number="479" data-line-index="478,478"><span data-line-number-content="">479</span></div><div data-line-type="change-addition" data-column-number="480" data-line-index="479,479"><span data-line-number-content="">480</span></div><div data-line-type="change-addition" data-column-number="481" data-line-index="480,480"><span data-line-number-content="">481</span></div><div data-line-type="change-addition" data-column-number="482" data-line-index="481,481"><span data-line-number-content="">482</span></div><div data-line-type="change-addition" data-column-number="483" data-line-index="482,482"><span data-line-number-content="">483</span></div><div data-line-type="change-addition" data-column-number="484" data-line-index="483,483"><span data-line-number-content="">484</span></div><div data-line-type="change-addition" data-column-number="485" data-line-index="484,484"><span data-line-number-content="">485</span></div><div data-line-type="change-addition" data-column-number="486" data-line-index="485,485"><span data-line-number-content="">486</span></div><div data-line-type="change-addition" data-column-number="487" data-line-index="486,486"><span data-line-number-content="">487</span></div><div data-line-type="change-addition" data-column-number="488" data-line-index="487,487"><span data-line-number-content="">488</span></div><div data-line-type="change-addition" data-column-number="489" data-line-index="488,488"><span data-line-number-content="">489</span></div><div data-line-type="change-addition" data-column-number="490" data-line-index="489,489"><span data-line-number-content="">490</span></div><div data-line-type="change-addition" data-column-number="491" data-line-index="490,490"><span data-line-number-content="">491</span></div><div data-line-type="change-addition" data-column-number="492" data-line-index="491,491"><span data-line-number-content="">492</span></div><div data-line-type="change-addition" data-column-number="493" data-line-index="492,492"><span data-line-number-content="">493</span></div><div data-line-type="change-addition" data-column-number="494" data-line-index="493,493"><span data-line-number-content="">494</span></div><div data-line-type="change-addition" data-column-number="495" data-line-index="494,494"><span data-line-number-content="">495</span></div><div data-line-type="change-addition" data-column-number="496" data-line-index="495,495"><span data-line-number-content="">496</span></div><div data-line-type="change-addition" data-column-number="497" data-line-index="496,496"><span data-line-number-content="">497</span></div><div data-line-type="change-addition" data-column-number="498" data-line-index="497,497"><span data-line-number-content="">498</span></div><div data-line-type="change-addition" data-column-number="499" data-line-index="498,498"><span data-line-number-content="">499</span></div><div data-line-type="change-addition" data-column-number="500" data-line-index="499,499"><span data-line-number-content="">500</span></div><div data-line-type="change-addition" data-column-number="501" data-line-index="500,500"><span data-line-number-content="">501</span></div><div data-line-type="change-addition" data-column-number="502" data-line-index="501,501"><span data-line-number-content="">502</span></div><div data-line-type="change-addition" data-column-number="503" data-line-index="502,502"><span data-line-number-content="">503</span></div><div data-line-type="context" data-column-number="504" data-line-index="503,503"><span data-line-number-content="">504</span></div><div data-line-type="context" data-column-number="505" data-line-index="504,504"><span data-line-number-content="">505</span></div><div data-line-type="context" data-column-number="506" data-line-index="505,505"><span data-line-number-content="">506</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">4497 unmodified lines</span></div></div></div><div data-line-type="context" data-column-number="5004" data-line-index="5003,5003"><span data-line-number-content="">5004</span></div><div data-line-type="context" data-column-number="5005" data-line-index="5004,5004"><span data-line-number-content="">5005</span></div><div data-line-type="context" data-column-number="5006" data-line-index="5005,5005"><span data-line-number-content="">5006</span></div><div data-line-type="change-addition" data-column-number="5007" data-line-index="5006,5006"><span data-line-number-content="">5007</span></div><div data-line-type="change-addition" data-column-number="5008" data-line-index="5007,5007"><span data-line-number-content="">5008</span></div><div data-line-type="context" data-column-number="5009" data-line-index="5008,5008"><span data-line-number-content="">5009</span></div><div data-line-type="context" data-column-number="5010" data-line-index="5009,5009"><span data-line-number-content="">5010</span></div><div data-line-type="context" data-column-number="5011" data-line-index="5010,5010"><span data-line-number-content="">5011</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">1 unmodified line</span></div></div></div><div data-line-type="context" data-column-number="5013" data-line-index="5012,5012"><span data-line-number-content="">5013</span></div><div data-line-type="context" data-column-number="5014" data-line-index="5013,5013"><span data-line-number-content="">5014</span></div><div data-line-type="context" data-column-number="5015" data-line-index="5014,5014"><span data-line-number-content="">5015</span></div><div data-line-type="change-addition" data-column-number="5016" data-line-index="5015,5015"><span data-line-number-content="">5016</span></div><div data-line-type="context" data-column-number="5017" data-line-index="5016,5016"><span data-line-number-content="">5017</span></div><div data-line-type="context" data-column-number="5018" data-line-index="5017,5017"><span data-line-number-content="">5018</span></div><div data-line-type="change-addition" data-column-number="5019" data-line-index="5019,5018"><span data-line-number-content="">5019</span></div><div data-line-type="context" data-column-number="5020" data-line-index="5020,5019"><span data-line-number-content="">5020</span></div><div data-line-type="context" data-column-number="5021" data-line-index="5021,5020"><span data-line-number-content="">5021</span></div><div data-line-type="context" data-column-number="5022" data-line-index="5022,5021"><span data-line-number-content="">5022</span></div><div data-line-type="change-addition" data-column-number="5023" data-line-index="5024,5022"><span data-line-number-content="">5023</span></div><div data-line-type="context" data-column-number="5024" data-line-index="5025,5023"><span data-line-number-content="">5024</span></div><div data-line-type="context" data-column-number="5025" data-line-index="5026,5024"><span data-line-number-content="">5025</span></div><div data-line-type="context" data-column-number="5026" data-line-index="5027,5025"><span data-line-number-content="">5026</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">138 unmodified lines</span></div></div></div><div data-line-type="context" data-column-number="5165" data-line-index="5166,5164"><span data-line-number-content="">5165</span></div><div data-line-type="context" data-column-number="5166" data-line-index="5167,5165"><span data-line-number-content="">5166</span></div><div data-line-type="context" data-column-number="5167" data-line-index="5168,5166"><span data-line-number-content="">5167</span></div><div data-line-type="change-addition" data-column-number="5168" data-line-index="5169,5167"><span data-line-number-content="">5168</span></div><div data-line-type="change-addition" data-column-number="5169" data-line-index="5170,5168"><span data-line-number-content="">5169</span></div><div data-line-type="context" data-column-number="5170" data-line-index="5171,5169"><span data-line-number-content="">5170</span></div><div data-line-type="change-addition" data-column-number="5171" data-line-index="5172,5170"><span data-line-number-content="">5171</span></div><div data-line-type="context" data-column-number="5172" data-line-index="5173,5171"><span data-line-number-content="">5172</span></div><div data-line-type="context" data-column-number="5173" data-line-index="5174,5172"><span data-line-number-content="">5173</span></div><div data-line-type="change-addition" data-column-number="5174" data-line-index="5176,5173"><span data-line-number-content="">5174</span></div><div data-line-type="context" data-column-number="5175" data-line-index="5177,5174"><span data-line-number-content="">5175</span></div><div data-line-type="context" data-column-number="5176" data-line-index="5178,5175"><span data-line-number-content="">5176</span></div><div data-line-type="context" data-column-number="5177" data-line-index="5179,5176"><span data-line-number-content="">5177</span></div><div data-line-type="change-addition" data-column-number="5178" data-line-index="5181,5177"><span data-line-number-content="">5178</span></div><div data-line-type="context" data-column-number="5179" data-line-index="5182,5178"><span data-line-number-content="">5179</span></div><div data-line-type="context" data-column-number="5180" data-line-index="5183,5179"><span data-line-number-content="">5180</span></div><div data-line-type="context" data-column-number="5181" data-line-index="5184,5180"><span data-line-number-content="">5181</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">51 unmodified lines</span></div></div></div><div data-line-type="context" data-column-number="5233" data-line-index="5236,5232"><span data-line-number-content="">5233</span></div><div data-line-type="context" data-column-number="5234" data-line-index="5237,5233"><span data-line-number-content="">5234</span></div><div data-line-type="context" data-column-number="5235" data-line-index="5238,5234"><span data-line-number-content="">5235</span></div><div data-line-type="change-addition" data-column-number="5236" data-line-index="5239,5235"><span data-line-number-content="">5236</span></div><div data-line-type="change-addition" data-column-number="5237" data-line-index="5240,5236"><span data-line-number-content="">5237</span></div><div data-line-type="context" data-column-number="5238" data-line-index="5241,5237"><span data-line-number-content="">5238</span></div><div data-line-type="context" data-column-number="5239" data-line-index="5242,5238"><span data-line-number-content="">5239</span></div><div data-line-type="context" data-column-number="5240" data-line-index="5243,5239"><span data-line-number-content="">5240</span></div><div data-line-type="change-addition" data-column-number="5241" data-line-index="5244,5240"><span data-line-number-content="">5241</span></div><div data-line-type="context" data-column-number="5242" data-line-index="5245,5241"><span data-line-number-content="">5242</span></div><div data-line-type="context" data-column-number="5243" data-line-index="5246,5242"><span data-line-number-content="">5243</span></div><div data-line-type="change-addition" data-column-number="5244" data-line-index="5248,5243"><span data-line-number-content="">5244</span></div><div data-line-type="context" data-column-number="5245" data-line-index="5249,5244"><span data-line-number-content="">5245</span></div><div data-line-type="context" data-column-number="5246" data-line-index="5250,5245"><span data-line-number-content="">5246</span></div><div data-line-type="context" data-column-number="5247" data-line-index="5251,5246"><span data-line-number-content="">5247</span></div><div data-line-type="change-addition" data-column-number="5248" data-line-index="5253,5247"><span data-line-number-content="">5248</span></div><div data-line-type="context" data-column-number="5249" data-line-index="5254,5248"><span data-line-number-content="">5249</span></div><div data-line-type="context" data-column-number="5250" data-line-index="5255,5249"><span data-line-number-content="">5250</span></div><div data-line-type="context" data-column-number="5251" data-line-index="5256,5250"><span data-line-number-content="">5251</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">92 unmodified lines</span></div></div></div><div data-line-type="context" data-column-number="5344" data-line-index="5349,5343"><span data-line-number-content="">5344</span></div><div data-line-type="context" data-column-number="5345" data-line-index="5350,5344"><span data-line-number-content="">5345</span></div><div data-line-type="context" data-column-number="5346" data-line-index="5351,5345"><span data-line-number-content="">5346</span></div><div data-line-type="change-addition" data-column-number="5347" data-line-index="5352,5346"><span data-line-number-content="">5347</span></div><div data-line-type="change-addition" data-column-number="5348" data-line-index="5353,5347"><span data-line-number-content="">5348</span></div><div data-line-type="context" data-column-number="5349" data-line-index="5354,5348"><span data-line-number-content="">5349</span></div><div data-line-type="context" data-column-number="5350" data-line-index="5355,5349"><span data-line-number-content="">5350</span></div><div data-line-type="context" data-column-number="5351" data-line-index="5356,5350"><span data-line-number-content="">5351</span></div><div data-line-type="context" data-column-number="5352" data-line-index="5357,5351"><span data-line-number-content="">5352</span></div><div data-line-type="context" data-column-number="5353" data-line-index="5358,5352"><span data-line-number-content="">5353</span></div><div data-line-type="context" data-column-number="5354" data-line-index="5359,5353"><span data-line-number-content="">5354</span></div><div data-line-type="change-addition" data-column-number="5355" data-line-index="5360,5354"><span data-line-number-content="">5355</span></div><div data-line-type="context" data-column-number="5356" data-line-index="5361,5355"><span data-line-number-content="">5356</span></div><div data-line-type="context" data-column-number="5357" data-line-index="5362,5356"><span data-line-number-content="">5357</span></div><div data-line-type="change-addition" data-column-number="5358" data-line-index="5364,5357"><span data-line-number-content="">5358</span></div><div data-line-type="context" data-column-number="5359" data-line-index="5365,5358"><span data-line-number-content="">5359</span></div><div data-line-type="context" data-column-number="5360" data-line-index="5366,5359"><span data-line-number-content="">5360</span></div><div data-line-type="context" data-column-number="5361" data-line-index="5367,5360"><span data-line-number-content="">5361</span></div><div data-line-type="change-addition" data-column-number="5362" data-line-index="5369,5361"><span data-line-number-content="">5362</span></div><div data-line-type="context" data-column-number="5363" data-line-index="5370,5362"><span data-line-number-content="">5363</span></div><div data-line-type="context" data-column-number="5364" data-line-index="5371,5363"><span data-line-number-content="">5364</span></div><div data-line-type="context" data-column-number="5365" data-line-index="5372,5364"><span data-line-number-content="">5365</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">84 unmodified lines</span></div></div></div><div data-line-type="context" data-column-number="5450" data-line-index="5457,5449"><span data-line-number-content="">5450</span></div><div data-line-type="context" data-column-number="5451" data-line-index="5458,5450"><span data-line-number-content="">5451</span></div><div data-line-type="context" data-column-number="5452" data-line-index="5459,5451"><span data-line-number-content="">5452</span></div><div data-line-type="change-addition" data-column-number="5453" data-line-index="5460,5452"><span data-line-number-content="">5453</span></div><div data-line-type="change-addition" data-column-number="5454" data-line-index="5461,5453"><span data-line-number-content="">5454</span></div><div data-line-type="context" data-column-number="5455" data-line-index="5462,5454"><span data-line-number-content="">5455</span></div><div data-line-type="context" data-column-number="5456" data-line-index="5463,5455"><span data-line-number-content="">5456</span></div><div data-line-type="context" data-column-number="5457" data-line-index="5464,5456"><span data-line-number-content="">5457</span></div><div data-line-type="context" data-column-number="5458" data-line-index="5465,5457"><span data-line-number-content="">5458</span></div><div data-line-type="context" data-column-number="5459" data-line-index="5466,5458"><span data-line-number-content="">5459</span></div><div data-line-type="context" data-column-number="5460" data-line-index="5467,5459"><span data-line-number-content="">5460</span></div><div data-line-type="change-addition" data-column-number="5461" data-line-index="5468,5460"><span data-line-number-content="">5461</span></div><div data-line-type="context" data-column-number="5462" data-line-index="5469,5461"><span data-line-number-content="">5462</span></div><div data-line-type="context" data-column-number="5463" data-line-index="5470,5462"><span data-line-number-content="">5463</span></div><div data-line-type="change-addition" data-column-number="5464" data-line-index="5472,5463"><span data-line-number-content="">5464</span></div><div data-line-type="context" data-column-number="5465" data-line-index="5473,5464"><span data-line-number-content="">5465</span></div><div data-line-type="context" data-column-number="5466" data-line-index="5474,5465"><span data-line-number-content="">5466</span></div><div data-line-type="context" data-column-number="5467" data-line-index="5475,5466"><span data-line-number-content="">5467</span></div><div data-line-type="change-addition" data-column-number="5468" data-line-index="5477,5467"><span data-line-number-content="">5468</span></div><div data-line-type="context" data-column-number="5469" data-line-index="5478,5468"><span data-line-number-content="">5469</span></div><div data-line-type="context" data-column-number="5470" data-line-index="5479,5469"><span data-line-number-content="">5470</span></div><div data-line-type="context" data-column-number="5471" data-line-index="5480,5470"><span data-line-number-content="">5471</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">3509 unmodified lines</span></div></div></div><div data-line-type="context" data-column-number="8981" data-line-index="8990,8980"><span data-line-number-content="">8981</span></div><div data-line-type="context" data-column-number="8982" data-line-index="8991,8981"><span data-line-number-content="">8982</span></div><div data-line-type="context" data-column-number="8983" data-line-index="8992,8982"><span data-line-number-content="">8983</span></div><div data-line-type="change-addition" data-column-number="8984" data-line-index="8993,8983"><span data-line-number-content="">8984</span></div><div data-line-type="change-addition" data-column-number="8985" data-line-index="8994,8984"><span data-line-number-content="">8985</span></div><div data-line-type="change-addition" data-column-number="8986" data-line-index="8995,8985"><span data-line-number-content="">8986</span></div><div data-line-type="change-addition" data-column-number="8987" data-line-index="8996,8986"><span data-line-number-content="">8987</span></div><div data-line-type="change-addition" data-column-number="8988" data-line-index="8997,8987"><span data-line-number-content="">8988</span></div><div data-line-type="change-addition" data-column-number="8989" data-line-index="8998,8988"><span data-line-number-content="">8989</span></div><div data-line-type="change-addition" data-column-number="8990" data-line-index="8999,8989"><span data-line-number-content="">8990</span></div><div data-line-type="change-addition" data-column-number="8991" data-line-index="9000,8990"><span data-line-number-content="">8991</span></div><div data-line-type="change-addition" data-column-number="8992" data-line-index="9001,8991"><span data-line-number-content="">8992</span></div><div data-line-type="context" data-column-number="8993" data-line-index="9002,8992"><span data-line-number-content="">8993</span></div><div data-line-type="context" data-column-number="8994" data-line-index="9003,8993"><span data-line-number-content="">8994</span></div><div data-line-type="context" data-column-number="8995" data-line-index="9004,8994"><span data-line-number-content="">8995</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">138 unmodified lines</span></div></div></div><div data-line-type="context" data-column-number="9134" data-line-index="9143,9133"><span data-line-number-content="">9134</span></div><div data-line-type="context" data-column-number="9135" data-line-index="9144,9134"><span data-line-number-content="">9135</span></div><div data-line-type="context" data-column-number="9136" data-line-index="9145,9135"><span data-line-number-content="">9136</span></div><div data-line-type="change-addition" data-column-number="9137" data-line-index="9146,9136"><span data-line-number-content="">9137</span></div><div data-line-type="context" data-column-number="9138" data-line-index="9147,9137"><span data-line-number-content="">9138</span></div><div data-line-type="context" data-column-number="9139" data-line-index="9148,9138"><span data-line-number-content="">9139</span></div><div data-line-type="context" data-column-number="9140" data-line-index="9149,9139"><span data-line-number-content="">9140</span></div><div data-line-type="change-addition" data-column-number="9141" data-line-index="9150,9140"><span data-line-number-content="">9141</span></div><div data-line-type="context" data-column-number="9142" data-line-index="9151,9141"><span data-line-number-content="">9142</span></div><div data-line-type="context" data-column-number="9143" data-line-index="9152,9142"><span data-line-number-content="">9143</span></div><div data-line-type="context" data-column-number="9144" data-line-index="9153,9143"><span data-line-number-content="">9144</span></div><div data-line-type="context" data-column-number="9145" data-line-index="9154,9144"><span data-line-number-content="">9145</span></div><div data-line-type="context" data-column-number="9146" data-line-index="9155,9145"><span data-line-number-content="">9146</span></div><div data-line-type="context" data-column-number="9147" data-line-index="9156,9146"><span data-line-number-content="">9147</span></div><div data-line-type="change-addition" data-column-number="9148" data-line-index="9158,9147"><span data-line-number-content="">9148</span></div><div data-line-type="change-addition" data-column-number="9149" data-line-index="9159,9148"><span data-line-number-content="">9149</span></div><div data-line-type="change-addition" data-column-number="9150" data-line-index="9160,9149"><span data-line-number-content="">9150</span></div><div data-line-type="change-addition" data-column-number="9151" data-line-index="9161,9150"><span data-line-number-content="">9151</span></div><div data-line-type="change-addition" data-column-number="9152" data-line-index="9162,9151"><span data-line-number-content="">9152</span></div><div data-line-type="change-addition" data-column-number="9153" data-line-index="9163,9152"><span data-line-number-content="">9153</span></div><div data-line-type="change-addition" data-column-number="9154" data-line-index="9164,9153"><span data-line-number-content="">9154</span></div><div data-line-type="change-addition" data-column-number="9155" data-line-index="9165,9154"><span data-line-number-content="">9155</span></div><div data-line-type="context" data-column-number="9156" data-line-index="9166,9155"><span data-line-number-content="">9156</span></div><div data-line-type="context" data-column-number="9157" data-line-index="9167,9156"><span data-line-number-content="">9157</span></div><div data-line-type="context" data-column-number="9158" data-line-index="9168,9157"><span data-line-number-content="">9158</span></div><div data-line-type="change-addition" data-column-number="9159" data-line-index="9170,9158"><span data-line-number-content="">9159</span></div><div data-line-type="context" data-column-number="9160" data-line-index="9171,9159"><span data-line-number-content="">9160</span></div><div data-line-type="change-addition" data-column-number="9161" data-line-index="9173,9160"><span data-line-number-content="">9161</span></div><div data-line-type="context" data-column-number="9162" data-line-index="9174,9161"><span data-line-number-content="">9162</span></div><div data-line-type="context" data-column-number="9163" data-line-index="9175,9162"><span data-line-number-content="">9163</span></div><div data-line-type="context" data-column-number="9164" data-line-index="9176,9163"><span data-line-number-content="">9164</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">160 unmodified lines</span></div></div></div><div data-line-type="context" data-column-number="9325" data-line-index="9337,9324"><span data-line-number-content="">9325</span></div><div data-line-type="context" data-column-number="9326" data-line-index="9338,9325"><span data-line-number-content="">9326</span></div><div data-line-type="context" data-column-number="9327" data-line-index="9339,9326"><span data-line-number-content="">9327</span></div><div data-line-type="change-addition" data-column-number="9328" data-line-index="9340,9327"><span data-line-number-content="">9328</span></div><div data-line-type="change-addition" data-column-number="9329" data-line-index="9341,9328"><span data-line-number-content="">9329</span></div><div data-line-type="change-addition" data-column-number="9330" data-line-index="9342,9329"><span data-line-number-content="">9330</span></div><div data-line-type="context" data-column-number="9331" data-line-index="9343,9330"><span data-line-number-content="">9331</span></div><div data-line-type="change-addition" data-column-number="9332" data-line-index="9344,9331"><span data-line-number-content="">9332</span></div><div data-line-type="change-addition" data-column-number="9333" data-line-index="9345,9332"><span data-line-number-content="">9333</span></div><div data-line-type="change-addition" data-column-number="9334" data-line-index="9346,9333"><span data-line-number-content="">9334</span></div><div data-line-type="change-addition" data-column-number="9335" data-line-index="9347,9334"><span data-line-number-content="">9335</span></div><div data-line-type="change-addition" data-column-number="9336" data-line-index="9348,9335"><span data-line-number-content="">9336</span></div><div data-line-type="context" data-column-number="9337" data-line-index="9349,9336"><span data-line-number-content="">9337</span></div><div data-line-type="context" data-column-number="9338" data-line-index="9350,9337"><span data-line-number-content="">9338</span></div><div data-line-type="context" data-column-number="9339" data-line-index="9351,9338"><span data-line-number-content="">9339</span></div><div data-line-type="context" data-column-number="9340" data-line-index="9352,9339"><span data-line-number-content="">9340</span></div><div data-line-type="context" data-column-number="9341" data-line-index="9353,9340"><span data-line-number-content="">9341</span></div><div data-gutter-buffer="buffer" data-buffer-size="17" style="grid-row: span 17;min-height:calc(17 * 1lh);"></div><div data-line-type="context" data-column-number="9342" data-line-index="9371,9358"><span data-line-number-content="">9342</span></div><div data-line-type="context" data-column-number="9343" data-line-index="9372,9359"><span data-line-number-content="">9343</span></div><div data-line-type="context" data-column-number="9344" data-line-index="9373,9360"><span data-line-number-content="">9344</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">9 unmodified lines</span></div></div></div><div data-line-type="context" data-column-number="9354" data-line-index="9383,9370"><span data-line-number-content="">9354</span></div><div data-line-type="context" data-column-number="9355" data-line-index="9384,9371"><span data-line-number-content="">9355</span></div><div data-line-type="context" data-column-number="9356" data-line-index="9385,9372"><span data-line-number-content="">9356</span></div><div data-line-type="change-addition" data-column-number="9357" data-line-index="9386,9373"><span data-line-number-content="">9357</span></div><div data-line-type="context" data-column-number="9358" data-line-index="9387,9374"><span data-line-number-content="">9358</span></div><div data-line-type="context" data-column-number="9359" data-line-index="9388,9375"><span data-line-number-content="">9359</span></div><div data-line-type="context" data-column-number="9360" data-line-index="9389,9376"><span data-line-number-content="">9360</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">74 unmodified lines</span></div></div></div><div data-line-type="context" data-column-number="9435" data-line-index="9464,9451"><span data-line-number-content="">9435</span></div><div data-line-type="context" data-column-number="9436" data-line-index="9465,9452"><span data-line-number-content="">9436</span></div><div data-line-type="context" data-column-number="9437" data-line-index="9466,9453"><span data-line-number-content="">9437</span></div><div data-line-type="change-addition" data-column-number="9438" data-line-index="9468,9454"><span data-line-number-content="">9438</span></div><div data-line-type="context" data-column-number="9439" data-line-index="9469,9455"><span data-line-number-content="">9439</span></div><div data-line-type="context" data-column-number="9440" data-line-index="9470,9456"><span data-line-number-content="">9440</span></div><div data-line-type="change-addition" data-column-number="9441" data-line-index="9472,9457"><span data-line-number-content="">9441</span></div><div data-line-type="change-addition" data-column-number="9442" data-line-index="9473,9458"><span data-line-number-content="">9442</span></div><div data-line-type="context" data-column-number="9443" data-line-index="9474,9459"><span data-line-number-content="">9443</span></div><div data-line-type="context" data-column-number="9444" data-line-index="9475,9460"><span data-line-number-content="">9444</span></div><div data-line-type="change-addition" data-column-number="9445" data-line-index="9476,9461"><span data-line-number-content="">9445</span></div><div data-line-type="change-addition" data-column-number="9446" data-line-index="9477,9462"><span data-line-number-content="">9446</span></div><div data-line-type="change-addition" data-column-number="9447" data-line-index="9478,9463"><span data-line-number-content="">9447</span></div><div data-line-type="context" data-column-number="9448" data-line-index="9479,9464"><span data-line-number-content="">9448</span></div><div data-line-type="context" data-column-number="9449" data-line-index="9480,9465"><span data-line-number-content="">9449</span></div><div data-line-type="change-addition" data-column-number="9450" data-line-index="9482,9466"><span data-line-number-content="">9450</span></div><div data-line-type="context" data-column-number="9451" data-line-index="9483,9467"><span data-line-number-content="">9451</span></div><div data-line-type="context" data-column-number="9452" data-line-index="9484,9468"><span data-line-number-content="">9452</span></div><div data-line-type="context" data-column-number="9453" data-line-index="9485,9469"><span data-line-number-content="">9453</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">1 unmodified line</span></div></div></div><div data-line-type="context" data-column-number="9455" data-line-index="9487,9471"><span data-line-number-content="">9455</span></div><div data-line-type="context" data-column-number="9456" data-line-index="9488,9472"><span data-line-number-content="">9456</span></div><div data-line-type="context" data-column-number="9457" data-line-index="9489,9473"><span data-line-number-content="">9457</span></div><div data-line-type="change-addition" data-column-number="9458" data-line-index="9491,9474"><span data-line-number-content="">9458</span></div><div data-line-type="context" data-column-number="9459" data-line-index="9492,9475"><span data-line-number-content="">9459</span></div><div data-line-type="context" data-column-number="9460" data-line-index="9493,9476"><span data-line-number-content="">9460</span></div><div data-line-type="context" data-column-number="9461" data-line-index="9494,9477"><span data-line-number-content="">9461</span></div></div><div data-content="" style="grid-row: span 354"><div data-separator="line-info" data-separator-first=""><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">15 unmodified lines</span></div></div></div><div data-line="16" data-alt-line="16" data-line-type="context" data-line-index="15,15"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> type</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> CSSProperties</span><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">,</span></div><div data-line="17" data-alt-line="17" data-line-type="context" data-line-index="16,16"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> type</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> Dispatch</span><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">,</span></div><div data-line="18" data-alt-line="18" data-line-type="context" data-line-index="17,17"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> type</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> MouseEvent</span><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A"> as ReactMouseEvent,</span></div><div data-line="19" data-line-type="change-addition" data-line-index="18,18"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> type</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> RefObject</span><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">,</span></div><div data-line="20" data-alt-line="19" data-line-type="context" data-line-index="19,19"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> type</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> ReactNode</span><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">,</span></div><div data-line="21" data-alt-line="20" data-line-type="context" data-line-index="20,20"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> type</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> SetStateAction</span></div><div data-line="22" data-alt-line="21" data-line-type="context" data-line-index="21,21"><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">} </span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">from</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> "react"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">369 unmodified lines</span></div></div></div><div data-line="392" data-alt-line="391" data-line-type="context" data-line-index="391,391"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> EMPTY_INFERRED_DARK_EVENTS</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">:</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> InferredDarkEvent</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">[]</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> [];</span></div><div data-line="393" data-alt-line="392" data-line-type="context" data-line-index="392,392"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> EMPTY_NEWS_STORIES</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">:</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> NewsStory</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">[]</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> [];</span></div><div data-line="394" data-alt-line="393" data-line-type="context" data-line-index="393,393">
</div><div data-line="395" data-line-type="change-addition" data-line-index="394,394"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> TABBABLE_SELECTOR</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> [</span></div><div data-line="396" data-line-type="change-addition" data-line-index="395,395"><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> "a[href]"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span></div><div data-line="397" data-line-type="change-addition" data-line-index="396,396"><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> "button:not([disabled])"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span></div><div data-line="398" data-line-type="change-addition" data-line-index="397,397"><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> "input:not([disabled]):not([type='hidden'])"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span></div><div data-line="399" data-line-type="change-addition" data-line-index="398,398"><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> "select:not([disabled])"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span></div><div data-line="400" data-line-type="change-addition" data-line-index="399,399"><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> "textarea:not([disabled])"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span></div><div data-line="401" data-line-type="change-addition" data-line-index="400,400"><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> "[tabindex]:not([tabindex='-1'])"</span></div><div data-line="402" data-line-type="change-addition" data-line-index="401,401"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">].</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">join</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">","</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="403" data-line-type="change-addition" data-line-index="402,402">
</div><div data-line="404" data-line-type="change-addition" data-line-index="403,403"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">export</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> isElementTabbable</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363">element</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">:</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> HTMLElement</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">):</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> boolean</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="405" data-line-type="change-addition" data-line-index="404,404"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> if</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">element</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">hasAttribute</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"disabled"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ||</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> element</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">getAttribute</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"aria-hidden"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ===</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> "true"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="406" data-line-type="change-addition" data-line-index="405,405"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> return</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7"> false</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-line="407" data-line-type="change-addition" data-line-index="406,406"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> }</span></div><div data-line="408" data-line-type="change-addition" data-line-index="407,407">
</div><div data-line="409" data-line-type="change-addition" data-line-index="408,408"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> tabIndex</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> element</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">getAttribute</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"tabindex"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="410" data-line-type="change-addition" data-line-index="409,409"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> if</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">tabIndex</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> &#x26;&#x26;</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> Number</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">tabIndex</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> &#x3C;</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7"> 0</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="411" data-line-type="change-addition" data-line-index="410,410"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> return</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7"> false</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-line="412" data-line-type="change-addition" data-line-index="411,411"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> }</span></div><div data-line="413" data-line-type="change-addition" data-line-index="412,412">
</div><div data-line="414" data-line-type="change-addition" data-line-index="413,413"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> return</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> Boolean</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">element</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">offsetParent</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ||</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> element</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">getClientRects</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">().</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">length</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ></span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7"> 0</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="415" data-line-type="change-addition" data-line-index="414,414"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">};</span></div><div data-line="416" data-line-type="change-addition" data-line-index="415,415">
</div><div data-line="417" data-line-type="change-addition" data-line-index="416,416"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">export</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> getTabbableElements</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363">root</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">:</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> HTMLElement</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">):</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> HTMLElement</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">[]</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="418" data-line-type="change-addition" data-line-index="417,417"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> return</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> Array</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">from</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">root</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">querySelectorAll</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">HTMLElement</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>(</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C">TABBABLE_SELECTOR</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)).</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">filter</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">isElementTabbable</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="419" data-line-type="change-addition" data-line-index="418,418"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">};</span></div><div data-line="420" data-line-type="change-addition" data-line-index="419,419">
</div><div data-line="421" data-line-type="change-addition" data-line-index="420,420"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">const</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useModalFocusTrap</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span></div><div data-line="422" data-line-type="change-addition" data-line-index="421,421"><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> active</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">:</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> boolean</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span></div><div data-line="423" data-line-type="change-addition" data-line-index="422,422"><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> rootRef</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">:</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> RefObject</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">HTMLElement</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> |</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> null</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>,</span></div><div data-line="424" data-line-type="change-addition" data-line-index="423,423"><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> onClose</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">:</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> ()</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> void</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span></div><div data-line="425" data-line-type="change-addition" data-line-index="424,424"><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> restoreFocusRef</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">?</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">:</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> RefObject</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">HTMLElement</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> |</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> null</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="426" data-line-type="change-addition" data-line-index="425,425"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="427" data-line-type="change-addition" data-line-index="426,426"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> fallbackFocusRef</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useRef</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">HTMLElement</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> |</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> null</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>(</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">null</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="428" data-line-type="change-addition" data-line-index="427,427">
</div><div data-line="429" data-line-type="change-addition" data-line-index="428,428"><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useLayoutEffect</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(()</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="430" data-line-type="change-addition" data-line-index="429,429"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> if</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">!</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">active</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="431" data-line-type="change-addition" data-line-index="430,430"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> return</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-line="432" data-line-type="change-addition" data-line-index="431,431"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> }</span></div><div data-line="433" data-line-type="change-addition" data-line-index="432,432">
</div><div data-line="434" data-line-type="change-addition" data-line-index="433,433"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> fallbackFocusRef</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">current</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span></div><div data-line="435" data-line-type="change-addition" data-line-index="434,434"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> restoreFocusRef</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">?.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">current</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ??</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">document</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">activeElement</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> instanceof</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> HTMLElement</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> ?</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> document</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">activeElement</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> :</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7"> null</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="436" data-line-type="change-addition" data-line-index="435,435"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> root</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> rootRef</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">current</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-line="437" data-line-type="change-addition" data-line-index="436,436"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> if</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">!</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">root</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="438" data-line-type="change-addition" data-line-index="437,437"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> return</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-line="439" data-line-type="change-addition" data-line-index="438,438"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> }</span></div><div data-line="440" data-line-type="change-addition" data-line-index="439,439">
</div><div data-line="441" data-line-type="change-addition" data-line-index="440,440"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> focusTarget</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> getTabbableElements</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">root</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)[</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">0</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">]</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ??</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> root</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-line="442" data-line-type="change-addition" data-line-index="441,441"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> focusTarget</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">focus</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">({</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> preventScroll</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">:</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7"> true</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> });</span></div><div data-line="443" data-line-type="change-addition" data-line-index="442,442">
</div><div data-line="444" data-line-type="change-addition" data-line-index="443,443"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> return</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> ()</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="445" data-line-type="change-addition" data-line-index="444,444"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> restoreTarget</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> restoreFocusRef</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">?.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">current</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ??</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> fallbackFocusRef</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">current</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-line="446" data-line-type="change-addition" data-line-index="445,445"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> if</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">restoreTarget</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">?.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">isConnected</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="447" data-line-type="change-addition" data-line-index="446,446"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> restoreTarget</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">focus</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">({</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> preventScroll</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">:</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7"> true</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> });</span></div><div data-line="448" data-line-type="change-addition" data-line-index="447,447"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> }</span></div><div data-line="449" data-line-type="change-addition" data-line-index="448,448"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> fallbackFocusRef</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">current</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7"> null</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-line="450" data-line-type="change-addition" data-line-index="449,449"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> };</span></div><div data-line="451" data-line-type="change-addition" data-line-index="450,450"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> },</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> [</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">active</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> restoreFocusRef</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> rootRef</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">]);</span></div><div data-line="452" data-line-type="change-addition" data-line-index="451,451">
</div><div data-line="453" data-line-type="change-addition" data-line-index="452,452"><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useEffect</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(()</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="454" data-line-type="change-addition" data-line-index="453,453"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> if</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">!</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">active</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="455" data-line-type="change-addition" data-line-index="454,454"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> return</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-line="456" data-line-type="change-addition" data-line-index="455,455"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> }</span></div><div data-line="457" data-line-type="change-addition" data-line-index="456,456">
</div><div data-line="458" data-line-type="change-addition" data-line-index="457,457"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> handleKeyDown</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363">event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">:</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> KeyboardEvent</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="459" data-line-type="change-addition" data-line-index="458,458"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> root</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> rootRef</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">current</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-line="460" data-line-type="change-addition" data-line-index="459,459"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> if</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">!</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">root</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="461" data-line-type="change-addition" data-line-index="460,460"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> return</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-line="462" data-line-type="change-addition" data-line-index="461,461"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> }</span></div><div data-line="463" data-line-type="change-addition" data-line-index="462,462">
</div><div data-line="464" data-line-type="change-addition" data-line-index="463,463"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> if</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">key</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ===</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> "Escape"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="465" data-line-type="change-addition" data-line-index="464,464"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">preventDefault</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">();</span></div><div data-line="466" data-line-type="change-addition" data-line-index="465,465"><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> onClose</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">();</span></div><div data-line="467" data-line-type="change-addition" data-line-index="466,466"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> return</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-line="468" data-line-type="change-addition" data-line-index="467,467"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> }</span></div><div data-line="469" data-line-type="change-addition" data-line-index="468,468">
</div><div data-line="470" data-line-type="change-addition" data-line-index="469,469"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> if</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">key</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> !==</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> "Tab"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="471" data-line-type="change-addition" data-line-index="470,470"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> return</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-line="472" data-line-type="change-addition" data-line-index="471,471"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> }</span></div><div data-line="473" data-line-type="change-addition" data-line-index="472,472">
</div><div data-line="474" data-line-type="change-addition" data-line-index="473,473"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> tabbable</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> getTabbableElements</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">root</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="475" data-line-type="change-addition" data-line-index="474,474"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> if</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">tabbable</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">length</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ===</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7"> 0</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="476" data-line-type="change-addition" data-line-index="475,475"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">preventDefault</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">();</span></div><div data-line="477" data-line-type="change-addition" data-line-index="476,476"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> root</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">focus</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">({</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> preventScroll</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">:</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7"> true</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> });</span></div><div data-line="478" data-line-type="change-addition" data-line-index="477,477"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> return</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-line="479" data-line-type="change-addition" data-line-index="478,478"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> }</span></div><div data-line="480" data-line-type="change-addition" data-line-index="479,479">
</div><div data-line="481" data-line-type="change-addition" data-line-index="480,480"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> first</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> tabbable</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">[</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">0</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">];</span></div><div data-line="482" data-line-type="change-addition" data-line-index="481,481"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> last</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> tabbable</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">[</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">tabbable</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">length</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> -</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7"> 1</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">];</span></div><div data-line="483" data-line-type="change-addition" data-line-index="482,482"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> activeElement</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> document</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">activeElement</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-line="484" data-line-type="change-addition" data-line-index="483,483">
</div><div data-line="485" data-line-type="change-addition" data-line-index="484,484"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> if</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">shiftKey</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> &#x26;&#x26;</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> activeElement</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ===</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> first</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="486" data-line-type="change-addition" data-line-index="485,485"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">preventDefault</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">();</span></div><div data-line="487" data-line-type="change-addition" data-line-index="486,486"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> last</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">focus</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">({</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> preventScroll</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">:</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7"> true</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> });</span></div><div data-line="488" data-line-type="change-addition" data-line-index="487,487"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> }</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> else</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> if</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">!</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">shiftKey</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> &#x26;&#x26;</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> activeElement</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ===</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> last</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="489" data-line-type="change-addition" data-line-index="488,488"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">preventDefault</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">();</span></div><div data-line="490" data-line-type="change-addition" data-line-index="489,489"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> first</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">focus</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">({</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> preventScroll</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">:</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7"> true</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> });</span></div><div data-line="491" data-line-type="change-addition" data-line-index="490,490"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> }</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> else</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> if</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">!</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">root</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">contains</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">activeElement</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">))</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="492" data-line-type="change-addition" data-line-index="491,491"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">preventDefault</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">();</span></div><div data-line="493" data-line-type="change-addition" data-line-index="492,492"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> first</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">focus</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">({</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> preventScroll</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">:</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7"> true</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> });</span></div><div data-line="494" data-line-type="change-addition" data-line-index="493,493"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> }</span></div><div data-line="495" data-line-type="change-addition" data-line-index="494,494"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> };</span></div><div data-line="496" data-line-type="change-addition" data-line-index="495,495">
</div><div data-line="497" data-line-type="change-addition" data-line-index="496,496"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> document</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">addEventListener</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"keydown"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> handleKeyDown</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7"> true</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="498" data-line-type="change-addition" data-line-index="497,497"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> return</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> ()</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="499" data-line-type="change-addition" data-line-index="498,498"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> document</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">removeEventListener</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"keydown"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> handleKeyDown</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7"> true</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="500" data-line-type="change-addition" data-line-index="499,499"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> };</span></div><div data-line="501" data-line-type="change-addition" data-line-index="500,500"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> },</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> [</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">active</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> onClose</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> rootRef</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">]);</span></div><div data-line="502" data-line-type="change-addition" data-line-index="501,501"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">};</span></div><div data-line="503" data-line-type="change-addition" data-line-index="502,502">
</div><div data-line="504" data-alt-line="394" data-line-type="context" data-line-index="503,503"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">type</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> CandlestickSeries</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> ReturnType</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">IChartApi</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">[</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"addCandlestickSeries"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">]>;</span></div><div data-line="505" data-alt-line="395" data-line-type="context" data-line-index="504,504">
</div><div data-line="506" data-alt-line="396" data-line-type="context" data-line-index="505,505"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">type</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> EquityOverlayPoint</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">4497 unmodified lines</span></div></div></div><div data-line="5004" data-alt-line="4894" data-line-type="context" data-line-index="5003,5003"><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-line="5005" data-alt-line="4895" data-line-type="context" data-line-index="5004,5004">
</div><div data-line="5006" data-alt-line="4896" data-line-type="context" data-line-index="5005,5005"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">const</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> AlertDrawer</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> ({</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> alert</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> flowPacket</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> evidence</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> contextStatus</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> onClose</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> }:</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> AlertDrawerProps</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="5007" data-line-type="change-addition" data-line-index="5006,5006"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> drawerRef</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useRef</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">HTMLElement</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> |</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> null</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>(</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">null</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="5008" data-line-type="change-addition" data-line-index="5007,5007"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> titleId</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useId</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">();</span></div><div data-line="5009" data-alt-line="4897" data-line-type="context" data-line-index="5008,5008"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> primary</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> alert</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">hits</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">[</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">0</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">];</span></div><div data-line="5010" data-alt-line="4898" data-line-type="context" data-line-index="5009,5009"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> direction</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> deriveAlertDirection</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">alert</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="5011" data-alt-line="4899" data-line-type="context" data-line-index="5010,5010"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> severity</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> normalizeAlertSeverity</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">alert</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">1 unmodified line</span></div></div></div><div data-line="5013" data-alt-line="4901" data-line-type="context" data-line-index="5012,5012"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> unknownCount</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> evidence</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">filter</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">((</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363">item</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> item</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">kind</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ===</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> "unknown"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">).</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">length</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-line="5014" data-alt-line="4902" data-line-type="context" data-line-index="5013,5013"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> isContextLoading</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> contextStatus</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">traceId</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ===</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> alert</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">trace_id</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> &#x26;&#x26;</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> contextStatus</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">loading</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-line="5015" data-alt-line="4903" data-line-type="context" data-line-index="5014,5014"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> missingRefs</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> contextStatus</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">traceId</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ===</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> alert</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">trace_id</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> ?</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> contextStatus</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">missingRefs</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> :</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> [];</span></div><div data-line="5016" data-line-type="change-addition" data-line-index="5015,5015"><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useModalFocusTrap</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">true</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> drawerRef</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> onClose</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="5017" data-alt-line="4904" data-line-type="context" data-line-index="5016,5016">
</div><div data-line="5018" data-alt-line="4905" data-line-type="context" data-line-index="5017,5017"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> return</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span></div><div data-line="5019" data-line-type="change-addition" data-line-index="5019,5018"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">aside</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> </span><span data-diff-span=""><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C">aria-labelledby</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">titleId</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> aria-modal</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"true"</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> </span></span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C">className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer"</span><span data-diff-span=""><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> ref</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">drawerRef</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> role</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"dialog"</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> tabIndex</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">-</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">1</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5020" data-alt-line="4907" data-line-type="context" data-line-index="5020,5019"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-header"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5021" data-alt-line="4908" data-line-type="context" data-line-index="5021,5020"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5022" data-alt-line="4909" data-line-type="context" data-line-index="5022,5021"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-eyebrow"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>Alert details&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5023" data-line-type="change-addition" data-line-index="5024,5022"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">h3</span><span data-diff-span=""><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> id</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">titleId</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">primary</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> ?</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> humanizeClassifierId</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">primary</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">classifier_id</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">) </span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">:</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> "Alert"</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">h3</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5024" data-alt-line="4911" data-line-type="context" data-line-index="5025,5023"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-subtitle"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">formatDateTime</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">alert</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">source_ts</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5025" data-alt-line="4912" data-line-type="context" data-line-index="5026,5024"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5026" data-alt-line="4913" data-line-type="context" data-line-index="5027,5025"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">button</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-close"</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> type</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"button"</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> onClick</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">onClose</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">138 unmodified lines</span></div></div></div><div data-line="5165" data-alt-line="5052" data-line-type="context" data-line-index="5166,5164"><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-line="5166" data-alt-line="5053" data-line-type="context" data-line-index="5167,5165">
</div><div data-line="5167" data-alt-line="5054" data-line-type="context" data-line-index="5168,5166"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">const</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> NewsDrawer</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> ({</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> story</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> onClose</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> }:</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> NewsDrawerProps</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="5168" data-line-type="change-addition" data-line-index="5169,5167"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> drawerRef</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useRef</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">HTMLElement</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> |</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> null</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>(</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">null</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="5169" data-line-type="change-addition" data-line-index="5170,5168"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> titleId</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useId</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">();</span></div><div data-line="5170" data-alt-line="5055" data-line-type="context" data-line-index="5171,5169"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> body</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> sanitizeNewsHtml</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">story</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">content_html</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="5171" data-line-type="change-addition" data-line-index="5172,5170"><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useModalFocusTrap</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">true</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> drawerRef</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> onClose</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="5172" data-alt-line="5056" data-line-type="context" data-line-index="5173,5171">
</div><div data-line="5173" data-alt-line="5057" data-line-type="context" data-line-index="5174,5172"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> return</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span></div><div data-line="5174" data-line-type="change-addition" data-line-index="5176,5173"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">aside</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> </span><span data-diff-span=""><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C">aria-labelledby</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">titleId</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> aria-modal</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"true"</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> </span></span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C">className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer"</span><span data-diff-span=""><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> ref</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">drawerRef</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> role</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"dialog"</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> tabIndex</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">-</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">1</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5175" data-alt-line="5059" data-line-type="context" data-line-index="5177,5174"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-header"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5176" data-alt-line="5060" data-line-type="context" data-line-index="5178,5175"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5177" data-alt-line="5061" data-line-type="context" data-line-index="5179,5176"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-eyebrow"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>News wire&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5178" data-line-type="change-addition" data-line-index="5181,5177"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">h3</span><span data-diff-span=""><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> id</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">titleId</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">story</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">headline</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">h3</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5179" data-alt-line="5063" data-line-type="context" data-line-index="5182,5178"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-subtitle"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5180" data-alt-line="5064" data-line-type="context" data-line-index="5183,5179"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> {</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">story</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">source</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> · Published </span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">formatDateTime</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">story</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">published_ts</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span></div><div data-line="5181" data-alt-line="5065" data-line-type="context" data-line-index="5184,5180"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> {</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">story</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">updated_ts</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> !==</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> story</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">published_ts</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> ?</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> `</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> · Updated </span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">${</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">formatDateTime</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">story</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">updated_ts</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">`</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> :</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> ""</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">51 unmodified lines</span></div></div></div><div data-line="5233" data-alt-line="5117" data-line-type="context" data-line-index="5236,5232"><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-line="5234" data-alt-line="5118" data-line-type="context" data-line-index="5237,5233">
</div><div data-line="5235" data-alt-line="5119" data-line-type="context" data-line-index="5238,5234"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">const</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> ClassifierHitDrawer</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> ({</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> hit</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> flowPacket</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> evidence</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> onClose</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> }:</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> ClassifierHitDrawerProps</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="5236" data-line-type="change-addition" data-line-index="5239,5235"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> drawerRef</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useRef</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">HTMLElement</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> |</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> null</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>(</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">null</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="5237" data-line-type="change-addition" data-line-index="5240,5236"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> titleId</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useId</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">();</span></div><div data-line="5238" data-alt-line="5120" data-line-type="context" data-line-index="5241,5237"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> direction</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> normalizeDirection</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">hit</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">direction</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="5239" data-alt-line="5121" data-line-type="context" data-line-index="5242,5238"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> evidencePrints</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> evidence</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">filter</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">((</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363">item</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> item</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">kind</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ===</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> "print"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="5240" data-alt-line="5122" data-line-type="context" data-line-index="5243,5239"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> unknownCount</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> evidence</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">filter</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">((</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363">item</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> item</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">kind</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ===</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> "unknown"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">).</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">length</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-line="5241" data-line-type="change-addition" data-line-index="5244,5240"><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useModalFocusTrap</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">true</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> drawerRef</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> onClose</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="5242" data-alt-line="5123" data-line-type="context" data-line-index="5245,5241">
</div><div data-line="5243" data-alt-line="5124" data-line-type="context" data-line-index="5246,5242"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> return</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span></div><div data-line="5244" data-line-type="change-addition" data-line-index="5248,5243"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">aside</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> </span><span data-diff-span=""><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C">aria-labelledby</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">titleId</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> aria-modal</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"true"</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> </span></span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C">className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer"</span><span data-diff-span=""><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> ref</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">drawerRef</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> role</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"dialog"</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> tabIndex</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">-</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">1</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5245" data-alt-line="5126" data-line-type="context" data-line-index="5249,5244"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-header"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5246" data-alt-line="5127" data-line-type="context" data-line-index="5250,5245"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5247" data-alt-line="5128" data-line-type="context" data-line-index="5251,5246"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-eyebrow"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>Classifier hit&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5248" data-line-type="change-addition" data-line-index="5253,5247"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">h3</span><span data-diff-span=""><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> id</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">titleId</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">humanizeClassifierId</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">hit</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">classifier_id</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">h3</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5249" data-alt-line="5130" data-line-type="context" data-line-index="5254,5248"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-subtitle"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">formatDateTime</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">hit</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">source_ts</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5250" data-alt-line="5131" data-line-type="context" data-line-index="5255,5249"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5251" data-alt-line="5132" data-line-type="context" data-line-index="5256,5250"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">button</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-close"</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> type</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"button"</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> onClick</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">onClose</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">92 unmodified lines</span></div></div></div><div data-line="5344" data-alt-line="5225" data-line-type="context" data-line-index="5349,5343"><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-line="5345" data-alt-line="5226" data-line-type="context" data-line-index="5350,5344">
</div><div data-line="5346" data-alt-line="5227" data-line-type="context" data-line-index="5351,5345"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">const</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> SmartMoneyDrawer</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> ({</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> flowPacket</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> evidence</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> onClose</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> }:</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> SmartMoneyDrawerProps</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="5347" data-line-type="change-addition" data-line-index="5352,5346"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> drawerRef</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useRef</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">HTMLElement</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> |</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> null</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>(</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">null</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="5348" data-line-type="change-addition" data-line-index="5353,5347"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> titleId</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useId</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">();</span></div><div data-line="5349" data-alt-line="5228" data-line-type="context" data-line-index="5354,5348"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> primaryScore</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span></div><div data-line="5350" data-alt-line="5229" data-line-type="context" data-line-index="5355,5349"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">profile_scores</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">find</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">((</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363">score</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> score</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">profile_id</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ===</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">primary_profile_id</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ??</span></div><div data-line="5351" data-alt-line="5230" data-line-type="context" data-line-index="5356,5350"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">profile_scores</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">[</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">0</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">];</span></div><div data-line="5352" data-alt-line="5231" data-line-type="context" data-line-index="5357,5351"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> direction</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> normalizeDirection</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">primary_direction</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="5353" data-alt-line="5232" data-line-type="context" data-line-index="5358,5352"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> evidencePrints</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> evidence</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">filter</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">((</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363">item</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> item</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">kind</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ===</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> "print"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="5354" data-alt-line="5233" data-line-type="context" data-line-index="5359,5353"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> unknownCount</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> evidence</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">filter</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">((</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363">item</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> item</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">kind</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ===</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> "unknown"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">).</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">length</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-line="5355" data-line-type="change-addition" data-line-index="5360,5354"><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useModalFocusTrap</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">true</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> drawerRef</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> onClose</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="5356" data-alt-line="5234" data-line-type="context" data-line-index="5361,5355">
</div><div data-line="5357" data-alt-line="5235" data-line-type="context" data-line-index="5362,5356"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> return</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span></div><div data-line="5358" data-line-type="change-addition" data-line-index="5364,5357"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">aside</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> </span><span data-diff-span=""><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C">aria-labelledby</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">titleId</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> aria-modal</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"true"</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> </span></span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C">className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer"</span><span data-diff-span=""><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> ref</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">drawerRef</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> role</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"dialog"</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> tabIndex</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">-</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">1</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5359" data-alt-line="5237" data-line-type="context" data-line-index="5365,5358"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-header"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5360" data-alt-line="5238" data-line-type="context" data-line-index="5366,5359"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5361" data-alt-line="5239" data-line-type="context" data-line-index="5367,5360"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-eyebrow"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>Smart money profile&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5362" data-line-type="change-addition" data-line-index="5369,5361"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">h3</span><span data-diff-span=""><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> id</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">titleId</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">smartMoneyProfileLabel</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">primary_profile_id</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">h3</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5363" data-alt-line="5241" data-line-type="context" data-line-index="5370,5362"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-subtitle"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">formatDateTime</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">source_ts</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5364" data-alt-line="5242" data-line-type="context" data-line-index="5371,5363"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5365" data-alt-line="5243" data-line-type="context" data-line-index="5372,5364"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">button</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-close"</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> type</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"button"</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> onClick</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">onClose</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">84 unmodified lines</span></div></div></div><div data-line="5450" data-alt-line="5328" data-line-type="context" data-line-index="5457,5449"><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-line="5451" data-alt-line="5329" data-line-type="context" data-line-index="5458,5450">
</div><div data-line="5452" data-alt-line="5330" data-line-type="context" data-line-index="5459,5451"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">const</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> DarkDrawer</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> ({</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> evidence</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> underlying</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> onClose</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> }:</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> DarkDrawerProps</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="5453" data-line-type="change-addition" data-line-index="5460,5452"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> drawerRef</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useRef</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">HTMLElement</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> |</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> null</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>(</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">null</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="5454" data-line-type="change-addition" data-line-index="5461,5453"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> titleId</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useId</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">();</span></div><div data-line="5455" data-alt-line="5331" data-line-type="context" data-line-index="5462,5454"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> joinEvidence</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> evidence</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">filter</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span></div><div data-line="5456" data-alt-line="5332" data-line-type="context" data-line-index="5463,5455"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363">item</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">):</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363"> item</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> is</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> kind</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">:</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> "join"</span><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">; </span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">id</span><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">: </span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">string</span><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">; </span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">join</span><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">: </span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">EquityPrintJoin</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> }</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> item</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">kind</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ===</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> "join"</span></div><div data-line="5457" data-alt-line="5333" data-line-type="context" data-line-index="5464,5456"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> );</span></div><div data-line="5458" data-alt-line="5334" data-line-type="context" data-line-index="5465,5457"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> unknownCount</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> evidence</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">filter</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">((</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363">item</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> item</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">kind</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ===</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> "unknown"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">).</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">length</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">;</span></div><div data-line="5459" data-alt-line="5335" data-line-type="context" data-line-index="5466,5458"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> traceRefs</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">evidence_refs</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">slice</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">0</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7"> 6</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="5460" data-alt-line="5336" data-line-type="context" data-line-index="5467,5459"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> extraRefs</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> Math</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">max</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">0</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">evidence_refs</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">length</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> -</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> traceRefs</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">length</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="5461" data-line-type="change-addition" data-line-index="5468,5460"><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useModalFocusTrap</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">true</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> drawerRef</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> onClose</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="5462" data-alt-line="5337" data-line-type="context" data-line-index="5469,5461">
</div><div data-line="5463" data-alt-line="5338" data-line-type="context" data-line-index="5470,5462"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> return</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span></div><div data-line="5464" data-line-type="change-addition" data-line-index="5472,5463"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">aside</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> </span><span data-diff-span=""><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C">aria-labelledby</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">titleId</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> aria-modal</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"true"</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> </span></span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C">className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer"</span><span data-diff-span=""><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> ref</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">drawerRef</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> role</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"dialog"</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> tabIndex</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">-</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">1</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5465" data-alt-line="5340" data-line-type="context" data-line-index="5473,5464"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-header"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5466" data-alt-line="5341" data-line-type="context" data-line-index="5474,5465"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5467" data-alt-line="5342" data-line-type="context" data-line-index="5475,5466"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-eyebrow"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>Inferred dark&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5468" data-line-type="change-addition" data-line-index="5477,5467"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">h3</span><span data-diff-span=""><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> id</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">titleId</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">humanizeClassifierId</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">type</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">h3</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5469" data-alt-line="5344" data-line-type="context" data-line-index="5478,5468"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-subtitle"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">formatDateTime</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">event</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">.</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">source_ts</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5470" data-alt-line="5345" data-line-type="context" data-line-index="5479,5469"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="5471" data-alt-line="5346" data-line-type="context" data-line-index="5480,5470"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">button</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-close"</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> type</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"button"</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> onClick</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">onClose</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">3509 unmodified lines</span></div></div></div><div data-line="8981" data-alt-line="8856" data-line-type="context" data-line-index="8990,8980"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> [</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C">error</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> setError</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">]</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useState</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">string</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> |</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> null</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>(</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">null</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="8982" data-alt-line="8857" data-line-type="context" data-line-index="8991,8981"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> dirtyRef</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useRef</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">false</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="8983" data-alt-line="8858" data-line-type="context" data-line-index="8992,8982"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> savedRef</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useRef</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">SyntheticControlState</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> |</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> null</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>(</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">null</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="8984" data-line-type="change-addition" data-line-index="8993,8983"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> triggerRef</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useRef</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">HTMLButtonElement</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> |</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> null</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>(</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">null</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="8985" data-line-type="change-addition" data-line-index="8994,8984"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> drawerRef</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useRef</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">HTMLElement</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> |</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> null</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>(</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">null</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="8986" data-line-type="change-addition" data-line-index="8995,8985"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> titleId</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useId</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">();</span></div><div data-line="8987" data-line-type="change-addition" data-line-index="8996,8986">
</div><div data-line="8988" data-line-type="change-addition" data-line-index="8997,8987"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> closeDrawer</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useCallback</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(()</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="8989" data-line-type="change-addition" data-line-index="8998,8988"><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> setOpen</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">false</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="8990" data-line-type="change-addition" data-line-index="8999,8989"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> },</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> []);</span></div><div data-line="8991" data-line-type="change-addition" data-line-index="9000,8990">
</div><div data-line="8992" data-line-type="change-addition" data-line-index="9001,8991"><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useModalFocusTrap</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">open</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> drawerRef</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> closeDrawer</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> triggerRef</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="8993" data-alt-line="8859" data-line-type="context" data-line-index="9002,8992">
</div><div data-line="8994" data-alt-line="8860" data-line-type="context" data-line-index="9003,8993"><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useEffect</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(()</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="8995" data-alt-line="8861" data-line-type="context" data-line-index="9004,8994"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> if</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">!</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">visible</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">138 unmodified lines</span></div></div></div><div data-line="9134" data-alt-line="9000" data-line-type="context" data-line-index="9143,9133"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;></span></div><div data-line="9135" data-alt-line="9001" data-line-type="context" data-line-index="9144,9134"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">button</span></div><div data-line="9136" data-alt-line="9002" data-line-type="context" data-line-index="9145,9135"><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> aria-expanded</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">open</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span></div><div data-line="9137" data-line-type="change-addition" data-line-index="9146,9136"><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> aria-haspopup</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"dialog"</span></div><div data-line="9138" data-alt-line="9003" data-line-type="context" data-line-index="9147,9137"><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> aria-label</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"Synthetic control"</span></div><div data-line="9139" data-alt-line="9004" data-line-type="context" data-line-index="9148,9138"><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">`</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">synthetic-control-gear</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">${</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">open</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> ?</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> " is-open"</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> :</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> ""</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">`</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span></div><div data-line="9140" data-alt-line="9005" data-line-type="context" data-line-index="9149,9139"><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> onClick</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">() </span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">=></span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> setOpen</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">((</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363">current</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">) </span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">=></span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> !</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">current</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span></div><div data-line="9141" data-line-type="change-addition" data-line-index="9150,9140"><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> ref</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">triggerRef</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span></div><div data-line="9142" data-alt-line="9006" data-line-type="context" data-line-index="9151,9141"><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> type</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"button"</span></div><div data-line="9143" data-alt-line="9007" data-line-type="context" data-line-index="9152,9142"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> ></span></div><div data-line="9144" data-alt-line="9008" data-line-type="context" data-line-index="9153,9143"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">span</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"synthetic-control-gear-mark"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>+&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">span</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="9145" data-alt-line="9009" data-line-type="context" data-line-index="9154,9144"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">button</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="9146" data-alt-line="9010" data-line-type="context" data-line-index="9155,9145">
</div><div data-line="9147" data-alt-line="9011" data-line-type="context" data-line-index="9156,9146"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> {</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">open</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> ?</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span></div><div data-line="9148" data-line-type="change-addition" data-line-index="9158,9147"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">aside</span></div><div data-line="9149" data-line-type="change-addition" data-line-index="9159,9148"><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> aria-labelledby</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">titleId</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span></div><div data-line="9150" data-line-type="change-addition" data-line-index="9160,9149"><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> aria-modal</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"true"</span></div><div data-line="9151" data-line-type="change-addition" data-line-index="9161,9150"><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"synthetic-control-drawer"</span></div><div data-line="9152" data-line-type="change-addition" data-line-index="9162,9151"><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> ref</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">drawerRef</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span></div><div data-line="9153" data-line-type="change-addition" data-line-index="9163,9152"><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> role</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"dialog"</span></div><div data-line="9154" data-line-type="change-addition" data-line-index="9164,9153"><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> tabIndex</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">-</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">1</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span></div><div data-line="9155" data-line-type="change-addition" data-line-index="9165,9154"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> ></span></div><div data-line="9156" data-alt-line="9013" data-line-type="context" data-line-index="9166,9155"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"synthetic-control-header"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="9157" data-alt-line="9014" data-line-type="context" data-line-index="9167,9156"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="9158" data-alt-line="9015" data-line-type="context" data-line-index="9168,9157"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"synthetic-control-kicker"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>Synthetic Control&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">p</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="9159" data-line-type="change-addition" data-line-index="9170,9158"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">h3</span><span data-diff-span=""><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> id</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">titleId</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>Hosted tape operator rail&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">h3</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="9160" data-alt-line="9017" data-line-type="context" data-line-index="9171,9159"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="9161" data-line-type="change-addition" data-line-index="9173,9160"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">button</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"drawer-close"</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> onClick</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span data-diff-span=""><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">closeDrawer</span></span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> type</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"button"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="9162" data-alt-line="9019" data-line-type="context" data-line-index="9174,9161"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> Close</span></div><div data-line="9163" data-alt-line="9020" data-line-type="context" data-line-index="9175,9162"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">button</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="9164" data-alt-line="9021" data-line-type="context" data-line-index="9176,9163"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">160 unmodified lines</span></div></div></div><div data-line="9325" data-alt-line="9182" data-line-type="context" data-line-index="9337,9324"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> [</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C">drawerOpen</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> setDrawerOpen</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">]</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useState</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">false</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="9326" data-alt-line="9183" data-line-type="context" data-line-index="9338,9325"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> tickerFieldId</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useId</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">();</span></div><div data-line="9327" data-alt-line="9184" data-line-type="context" data-line-index="9339,9326"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> tickerHintId</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useId</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">();</span></div><div data-line="9328" data-line-type="change-addition" data-line-index="9340,9327"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> navTriggerRef</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useRef</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">HTMLButtonElement</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> |</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> null</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>(</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">null</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="9329" data-line-type="change-addition" data-line-index="9341,9328"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> navDrawerRef</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useRef</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">&#x3C;</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">HTMLElement</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> |</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> null</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>(</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">null</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="9330" data-line-type="change-addition" data-line-index="9342,9329"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> navDrawerTitleId</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useId</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">();</span></div><div data-line="9331" data-alt-line="9185" data-line-type="context" data-line-index="9343,9330"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> activeNavHref</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> getTerminalNavCurrentHref</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">pathname</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="9332" data-line-type="change-addition" data-line-index="9344,9331"><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> const</span><span style="--diffs-token-dark:#FFAB16;--diffs-token-light:#D5901C"> closeNavDrawer</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> =</span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useCallback</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(()</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="9333" data-line-type="change-addition" data-line-index="9345,9332"><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> setDrawerOpen</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">false</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="9334" data-line-type="change-addition" data-line-index="9346,9333"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> },</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> []);</span></div><div data-line="9335" data-line-type="change-addition" data-line-index="9347,9334">
</div><div data-line="9336" data-line-type="change-addition" data-line-index="9348,9335"><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useModalFocusTrap</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">drawerOpen</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> navDrawerRef</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> closeNavDrawer</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">,</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> navTriggerRef</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="9337" data-alt-line="9186" data-line-type="context" data-line-index="9349,9336">
</div><div data-line="9338" data-alt-line="9187" data-line-type="context" data-line-index="9350,9337"><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> useEffect</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(()</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> {</span></div><div data-line="9339" data-alt-line="9188" data-line-type="context" data-line-index="9351,9338"><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF"> setDrawerOpen</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">false</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">);</span></div><div data-line="9340" data-alt-line="9189" data-line-type="context" data-line-index="9352,9339"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> },</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> [</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">pathname</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">]);</span></div><div data-line="9341" data-alt-line="9190" data-line-type="context" data-line-index="9353,9340">
</div><div data-content-buffer="" data-buffer-size="17" style="grid-row: span 17;min-height:calc(17 * 1lh)"></div><div data-line="9342" data-alt-line="9208" data-line-type="context" data-line-index="9371,9358"><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61"> return</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> (</span></div><div data-line="9343" data-alt-line="9209" data-line-type="context" data-line-index="9372,9359"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">TerminalContext.Provider</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> value</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">state</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="9344" data-alt-line="9210" data-line-type="context" data-line-index="9373,9360"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"terminal-shell"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">9 unmodified lines</span></div></div></div><div data-line="9354" data-alt-line="9220" data-line-type="context" data-line-index="9383,9370"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> aria</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">-</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">expanded</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">drawerOpen</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">}</span></div><div data-line="9355" data-alt-line="9221" data-line-type="context" data-line-index="9384,9371"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> aria</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">-</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">label</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">{</span><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">drawerOpen ? </span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"Close navigation menu"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> :</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43"> "Open navigation menu"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">}</span></div><div data-line="9356" data-alt-line="9222" data-line-type="context" data-line-index="9385,9372"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"terminal-button terminal-menu-trigger"</span></div><div data-line="9357" data-line-type="change-addition" data-line-index="9386,9373"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> ref</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">navTriggerRef</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">}</span></div><div data-line="9358" data-alt-line="9223" data-line-type="context" data-line-index="9387,9374"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> type</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"button"</span></div><div data-line="9359" data-alt-line="9224" data-line-type="context" data-line-index="9388,9375"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> onClick</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">{</span><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">() => </span><span style="--diffs-token-dark:#9D6AFB;--diffs-token-light:#693ACF">setDrawerOpen</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">(</span><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">(</span><span style="--diffs-token-dark:#A3A3A3;--diffs-token-light:#636363">current</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">)</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE"> =></span><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A"> !</span><span style="--diffs-token-dark:#D568EA;--diffs-token-light:#A631BE">current</span><span style="--diffs-token-dark:#FAFAFA;--diffs-token-light:#0A0A0A">)</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">}</span></div><div data-line="9360" data-alt-line="9225" data-line-type="context" data-line-index="9389,9376"><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ></span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">74 unmodified lines</span></div></div></div><div data-line="9435" data-alt-line="9300" data-line-type="context" data-line-index="9464,9451"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> aria</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">-</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">label</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"Close navigation drawer"</span></div><div data-line="9436" data-alt-line="9301" data-line-type="context" data-line-index="9465,9452"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"terminal-drawer-backdrop"</span></div><div data-line="9437" data-alt-line="9302" data-line-type="context" data-line-index="9466,9453"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> type</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"button"</span></div><div data-line="9438" data-line-type="change-addition" data-line-index="9468,9454"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> onClick</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">{</span><span data-diff-span=""><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">closeNavDrawer</span></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">}</span></div><div data-line="9439" data-alt-line="9304" data-line-type="context" data-line-index="9469,9455"><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> /></span></div><div data-line="9440" data-alt-line="9305" data-line-type="context" data-line-index="9470,9456"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">aside</span></div><div data-line="9441" data-line-type="change-addition" data-line-index="9472,9457"><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> aria-</span><span data-diff-span=""><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C">labelledby</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span></span><span data-diff-span=""><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">navDrawerTitleId</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span></span></div><div data-line="9442" data-line-type="change-addition" data-line-index="9473,9458"><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> aria-modal</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"true"</span></div><div data-line="9443" data-alt-line="9307" data-line-type="context" data-line-index="9474,9459"><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"terminal-nav-drawer"</span></div><div data-line="9444" data-alt-line="9308" data-line-type="context" data-line-index="9475,9460"><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> id</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"terminal-nav-drawer"</span></div><div data-line="9445" data-line-type="change-addition" data-line-index="9476,9461"><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> ref</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">navDrawerRef</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span></div><div data-line="9446" data-line-type="change-addition" data-line-index="9477,9462"><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> role</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"dialog"</span></div><div data-line="9447" data-line-type="change-addition" data-line-index="9478,9463"><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> tabIndex</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">-</span><span style="--diffs-token-dark:#68CDF2;--diffs-token-light:#1CA1C7">1</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span></div><div data-line="9448" data-alt-line="9309" data-line-type="context" data-line-index="9479,9464"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> ></span></div><div data-line="9449" data-alt-line="9310" data-line-type="context" data-line-index="9480,9465"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"terminal-drawer-head"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="9450" data-line-type="change-addition" data-line-index="9482,9466"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"terminal-brand"</span><span data-diff-span=""><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> id</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">{</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">navDrawerTitleId</span><span style="--diffs-token-dark:#FF678D;--diffs-token-light:#D32A61">}</span></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="9451" data-alt-line="9312" data-line-type="context" data-line-index="9483,9467"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">span</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"terminal-brand-kicker"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>IF&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">span</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="9452" data-alt-line="9313" data-line-type="context" data-line-index="9484,9468"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">span</span><span style="--diffs-token-dark:#60D199;--diffs-token-light:#18A46C"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"terminal-brand-name"</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">>islandflow&#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">span</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-line="9453" data-alt-line="9314" data-line-type="context" data-line-index="9485,9469"><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363"> &#x3C;/</span><span style="--diffs-token-dark:#FF855E;--diffs-token-light:#D5512F">div</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">></span></div><div data-separator="line-info"><div data-separator-wrapper=""><div data-separator-content=""><span data-unmodified-lines="">1 unmodified line</span></div></div></div><div data-line="9455" data-alt-line="9316" data-line-type="context" data-line-index="9487,9471"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> aria</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">-</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">label</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"Close navigation drawer"</span></div><div data-line="9456" data-alt-line="9317" data-line-type="context" data-line-index="9488,9472"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> className</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"terminal-button terminal-drawer-close"</span></div><div data-line="9457" data-alt-line="9318" data-line-type="context" data-line-index="9489,9473"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> type</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#5ECC71;--diffs-token-light:#199F43">"button"</span></div><div data-line="9458" data-line-type="change-addition" data-line-index="9491,9474"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> onClick</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">=</span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">{</span><span data-diff-span=""><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">closeNavDrawer</span></span><span style="--diffs-token-dark:#636363;--diffs-token-light:#636363">}</span></div><div data-line="9459" data-alt-line="9320" data-line-type="context" data-line-index="9492,9475"><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> ></span></div><div data-line="9460" data-alt-line="9321" data-line-type="context" data-line-index="9493,9476"><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628"> Close</span></div><div data-line="9461" data-alt-line="9322" data-line-type="context" data-line-index="9494,9477"><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF"> &#x3C;/</span><span style="--diffs-token-dark:#FFA359;--diffs-token-light:#D47628">button</span><span style="--diffs-token-dark:#08C0EF;--diffs-token-light:#08C0EF">></span></div></div></code></pre>
</div>
</section>
<section>
<h2>Expected Impact for End-Users</h2>
<p>
Keyboard users can now open a drawer, move through its controls without falling into the page behind it, close it with Escape, and continue from the control they used to open it. Screen-reader users also get clearer modal dialog boundaries and labels.
</p>
</section>
<section>
<h2>Validation</h2>
<ul>
<li><span class="ok">Passed:</span> <code>bun test apps/web/app/terminal.test.ts</code></li>
<li><span class="ok">Passed:</span> <code>bun --cwd=apps/web run build</code></li>
<li>Attempted Playwright browser verification against <code>localhost:3001</code>; the app did not become stable enough for a reliable scripted assertion before timeout, so automated browser validation is documented as incomplete.</li>
</ul>
</section>
<section>
<h2>Issues, Limitations, and Mitigations</h2>
<ul>
<li>The current unit test setup is logic-focused and does not include DOM interaction tests for Tab cycling.</li>
<li>A follow-up issue already exists for terminal navigation drawer interaction coverage: <code>islandflow-3by</code>.</li>
<li>The helper uses standard focusable element selectors and visibility checks; custom focusable widgets should still expose normal tab stops.</li>
</ul>
</section>
<section>
<h2>Follow-up Work</h2>
<ul>
<li><code>islandflow-3by</code>: add interaction coverage for terminal navigation drawer.</li>
<li>Consider adding a lightweight DOM test harness for drawer focus restoration and Tab wrap behavior.</li>
</ul>
</section>
</main>
</body>
</html>