From 2df5602bd99fd6e42e482a932400f1e54c47014c Mon Sep 17 00:00:00 2001 From: Neil Goldader Date: Thu, 14 May 2026 22:57:42 -0400 Subject: [PATCH] fix: stabilize Stay overlay performance and borders --- apps/desktop/dist/assets/index-B5v3W6Qd.css | 1 - apps/desktop/dist/assets/index-BDMUnbH3.css | 1 + .../{index-BeymWJKf.js => index-BJlpxSLT.js} | 6 +- apps/desktop/dist/index.html | 4 +- apps/desktop/src-tauri/src/lib.rs | 246 ++++++++++++++++-- apps/desktop/src/performance.test.tsx | 148 +++++++++++ apps/desktop/src/styles.css | 59 +++-- apps/desktop/src/ui/StatusShell.tsx | 11 +- 8 files changed, 415 insertions(+), 61 deletions(-) delete mode 100644 apps/desktop/dist/assets/index-B5v3W6Qd.css create mode 100644 apps/desktop/dist/assets/index-BDMUnbH3.css rename apps/desktop/dist/assets/{index-BeymWJKf.js => index-BJlpxSLT.js} (86%) create mode 100644 apps/desktop/src/performance.test.tsx diff --git a/apps/desktop/dist/assets/index-B5v3W6Qd.css b/apps/desktop/dist/assets/index-B5v3W6Qd.css deleted file mode 100644 index 7b61f42..0000000 --- a/apps/desktop/dist/assets/index-B5v3W6Qd.css +++ /dev/null @@ -1 +0,0 @@ -:root{--ink: #1a1c1f;--ink-soft: rgba(26, 28, 31, .66);--ink-muted: rgba(26, 28, 31, .44);--ink-faint: rgba(26, 28, 31, .22);--paper: rgba(252, 251, 249, .62);--paper-strong: rgba(255, 255, 255, .78);--hairline: rgba(255, 255, 255, .62);--hairline-soft: rgba(255, 255, 255, .38);--hairline-ink: rgba(26, 28, 31, .06);--accent: #176d65;--accent-deep: #0e4f48;--accent-soft: rgba(23, 109, 101, .14);--guard-border: #18b7c2;--guard-border-soft: rgba(24, 183, 194, .22);--warm: #d3a07a;--warm-soft: rgba(211, 160, 122, .22);--danger: #a83a2d;--radius-shell: 26px;--radius-panel: 20px;--radius-control: 14px;--font-ui: "Geist", -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", sans-serif;--font-display: "Instrument Serif", "New York", Georgia, serif;color:var(--ink);background:transparent;font-family:var(--font-ui);font-feature-settings:"ss01","ss02","cv11";font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden;background:transparent}body{border-radius:var(--radius-shell)}button,input{font:inherit;font-family:var(--font-ui)}button{position:relative;height:38px;padding:0 18px;-webkit-app-region:no-drag;border:.5px solid rgba(255,255,255,.28);border-radius:999px;color:#fbfefe;background:linear-gradient(180deg,#ffffff38,#fff0 52%),linear-gradient(180deg,var(--accent),var(--accent-deep));box-shadow:0 1px #ffffff57 inset,0 -1px #00000014 inset,0 6px 18px #0e4f4838,0 1px 2px #0e4f482e;font-size:13px;font-weight:550;letter-spacing:-.005em;cursor:pointer;transition:transform .16s cubic-bezier(.2,.7,.2,1),box-shadow .2s ease,filter .2s ease}button:hover{filter:brightness(1.04) saturate(1.05);box-shadow:0 1px #ffffff61 inset,0 -1px #00000014 inset,0 8px 22px #0e4f4842,0 1px 2px #0e4f4833}button:active{transform:translateY(.5px) scale(.985);filter:brightness(.98)}button:disabled{cursor:not-allowed;filter:saturate(.3);opacity:.5;box-shadow:0 1px #ffffff3d inset,0 1px 2px #0e4f4814}button:focus-visible,input:focus-visible{outline:2px solid rgba(23,109,101,.5);outline-offset:2px}button.ghost{color:var(--ink);background:linear-gradient(180deg,#fff9,#ffffff52);border-color:#ffffffb3;box-shadow:0 1px #ffffffdb inset,0 -.5px #1a1c1f0d inset,0 4px 14px #1a1c1f0f,0 1px 2px #1a1c1f0a;backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5)}button.ghost:hover{background:linear-gradient(180deg,#ffffffbd,#ffffff75);filter:none}button.strong-ghost{color:var(--accent-deep)}input{width:100%;min-width:0;height:38px;-webkit-app-region:no-drag;padding:0 14px;border:.5px solid rgba(255,255,255,.72);border-radius:var(--radius-control);color:var(--ink);background:#ffffff6b;box-shadow:0 1px #ffffffdb inset,0 -.5px #1a1c1f0d inset,0 4px 14px #1a1c1f0d;font-size:14px;font-feature-settings:"tnum","ss01";font-variant-numeric:tabular-nums;letter-spacing:.18em;backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);transition:border-color .16s ease,box-shadow .2s ease,background .2s ease}input::placeholder{color:var(--ink-faint);letter-spacing:0}input:focus{border-color:#176d656b;background:#fff9;box-shadow:0 1px #fffffff0 inset,0 0 0 3px #176d651f}input[aria-invalid=true]{border-color:#a83a2d80}.pin-code-field{display:grid;min-width:0;gap:9px}.pin-code-field label{margin-bottom:0}.pin-code-input{position:relative;width:212px;max-width:100%;height:46px;-webkit-app-region:no-drag;cursor:text}.pin-code-control{position:absolute;inset:0;z-index:2;width:100%;height:100%;padding:0;border:0;border-radius:var(--radius-control);color:transparent;caret-color:transparent;background:transparent;box-shadow:none;letter-spacing:0;backdrop-filter:none;-webkit-backdrop-filter:none}.pin-code-control:focus{border:0;background:transparent;box-shadow:none}.pin-code-control:focus-visible{outline:none}.pin-code-slots{display:grid;grid-template-columns:repeat(4,44px);justify-content:start;gap:12px;width:100%;height:100%}.pin-code-slot{display:grid;min-width:0;place-items:center;aspect-ratio:1;border:.5px solid rgba(26,28,31,.13);border-radius:var(--radius-control);background:linear-gradient(180deg,#ffffffb3,#ffffff52),#fff6;box-shadow:0 1px #ffffffdb inset,0 -.5px #1a1c1f0d inset,0 7px 18px #1a1c1f14;backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);transition:border-color .16s ease,background .2s ease,box-shadow .2s ease,transform .16s ease}.pin-code-slot:before{width:10px;height:10px;border-radius:999px;background:var(--accent-deep);box-shadow:0 0 0 3px #176d651f;opacity:0;transform:scale(.72);content:"";transition:opacity .14s ease,transform .16s cubic-bezier(.2,.7,.2,1)}.pin-code-slot-filled:before{opacity:1;transform:scale(1)}.pin-code-slot-filled{border-color:#176d6547;background:linear-gradient(180deg,#ffffffbd,#176d651f),#ffffff6b}.pin-code-input:focus-within .pin-code-slot{border-color:#176d653d;background:#ffffff8f}.pin-code-input:focus-within .pin-code-slot-active{border-color:#176d6580;box-shadow:0 1px #fffffff0 inset,0 0 0 3px #176d651f,0 7px 18px #1a1c1f12;transform:translateY(-1px)}.pin-code-input[data-invalid=true] .pin-code-slot{border-color:#a83a2d80}.pin-code-input[data-invalid=true] .pin-code-slot:before{background:var(--danger);box-shadow:0 0 0 3px #a83a2d1f}.stay-shell{position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:stretch;width:100vw;height:100vh;gap:10px;padding:20px 28px 24px;overflow:hidden;border:.5px solid var(--hairline);border-radius:var(--radius-shell);background:linear-gradient(155deg,#ffffffd6,#f8f7f480 48%,#e5eeec6b),var(--paper);box-shadow:0 32px 80px #14181c38,0 12px 28px #14181c1a,0 0 0 .5px #ffffff80,0 1px #ffffffe0 inset,0 -1px #1a1c1f0a inset;backdrop-filter:blur(40px) saturate(1.8);-webkit-backdrop-filter:blur(40px) saturate(1.8);animation:shell-in .42s cubic-bezier(.2,.7,.2,1) both;transition:border-color .18s ease,box-shadow .22s ease,background .22s ease,border-radius .22s ease,padding .22s ease}.stay-shell:before{position:absolute;inset:-40%;z-index:-2;pointer-events:none;content:"";background:radial-gradient(38% 32% at 18% 22%,rgba(23,109,101,.22),transparent 70%),radial-gradient(34% 30% at 82% 78%,rgba(211,160,122,.2),transparent 72%),radial-gradient(50% 40% at 50% 50%,rgba(255,255,255,.35),transparent 76%);filter:blur(36px);animation:ambient-drift 24s ease-in-out infinite alternate}.stay-shell:after{position:absolute;inset:0;z-index:-1;pointer-events:none;content:"";border-radius:inherit;background:linear-gradient(180deg,rgba(255,255,255,.5),transparent 36%),linear-gradient(90deg,rgba(255,255,255,.3),transparent 38%,rgba(220,232,230,.16)),url("data:image/svg+xml;utf8,");background-blend-mode:normal,normal,soft-light;opacity:.95}.guard-border-surface{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;background:transparent}.guard-border-frame{position:fixed;inset:6px;border:2px solid rgba(24,183,194,.78);border-radius:clamp(12px,1.2vw,22px);box-shadow:0 0 0 1px #ffffff47 inset,0 0 20px #18b7c261,0 0 44px #18b7c22e inset;opacity:.92}.guard-border-frame:before{position:absolute;top:-2px;right:18%;left:18%;height:2px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.86),transparent);content:""}.stay-shell-guarding.stay-shell-revealed{border-color:#18b7c2a3;box-shadow:0 32px 80px #14181c33,0 12px 28px #14181c1a,0 0 0 1px #18b7c257,0 1px #ffffffe0 inset,0 -1px #1a1c1f0a inset}.stay-shell-guarding.stay-shell-collapsed{min-width:0;gap:0;align-items:center;justify-content:center;padding:5px 8px;border:1px solid rgba(24,183,194,.78);border-radius:999px;background:linear-gradient(180deg,#ffffff47,#ffffff0f),linear-gradient(180deg,#18b7c2e6,#0c7177e0);box-shadow:0 10px 26px #0c717733,0 0 0 1px #ffffff47 inset,0 0 20px #18b7c23d;cursor:default;animation:none;backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5)}.stay-shell-guarding.stay-shell-collapsed:before,.stay-shell-guarding.stay-shell-collapsed:after{display:none}.stay-shell-guarding.stay-shell-collapsed .brand-strip{display:flex;align-items:center;justify-content:center;width:100%;min-height:0;padding:0}.stay-shell-guarding.stay-shell-collapsed .brand-label,.stay-shell-guarding.stay-shell-collapsed .window-close,.stay-shell-guarding.stay-shell-collapsed .mode-panel{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;opacity:0;pointer-events:none;clip:rect(0 0 0 0)}.stay-shell-guarding.stay-shell-collapsed .brand-controls{position:static}.stay-shell-guarding.stay-shell-collapsed .status-pill{height:100%;min-height:23px;padding:0 10px;border-color:#ffffff3d;color:#f7ffff;background:transparent;box-shadow:none;font-size:10.5px;backdrop-filter:none;-webkit-backdrop-filter:none}.stay-shell-guarding.stay-shell-collapsed .status-pill:before{background:#fff;box-shadow:0 0 0 2px #ffffff2e,0 0 8px #ffffffb8}.brand-strip{position:relative;z-index:2;min-height:48px;padding-right:132px;-webkit-app-region:drag}.brand-label{min-width:0;max-width:100%;-webkit-app-region:drag}.brand-controls{position:absolute;top:0;right:4px;display:inline-flex;align-items:center;gap:8px;-webkit-app-region:no-drag}.window-close{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:24px;height:24px;padding:0;border:.5px solid rgba(26,28,31,.12);border-radius:999px;color:#1a1c1fb3;background:linear-gradient(180deg,#ffffffdb,#fff9);box-shadow:0 1px #fffffff0 inset,0 2px 6px #1a1c1f1a;font-size:0;-webkit-app-region:no-drag;backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);transition:transform .14s ease,background .16s ease,color .16s ease}.window-close:hover{color:var(--ink);background:linear-gradient(180deg,#ffffffc7,#ffffff7a);filter:none}.window-close:active{transform:scale(.92)}.window-close svg{display:block}.eyebrow,.kicker{margin:0 0 4px;color:var(--ink-muted);font-size:10px;font-weight:500;letter-spacing:.16em;text-transform:uppercase}h1,h2{margin:0;color:var(--ink);font-family:var(--font-display);font-weight:400;letter-spacing:-.012em}h1{max-width:100%;overflow:hidden;font-size:20px;font-style:italic;line-height:1.12;text-overflow:ellipsis;white-space:nowrap}h2{overflow:hidden;font-size:24px;font-style:italic;line-height:1.1;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.stay-shell-locked h1{font-size:22px}.stay-shell-locked h2{font-size:28px;-webkit-line-clamp:3}label{display:block;margin-bottom:9px;color:var(--ink-soft);font-family:var(--font-ui);font-size:12.5px;font-weight:500;letter-spacing:-.005em}.status-pill{position:relative;display:inline-flex;align-items:center;gap:7px;min-width:0;height:26px;padding:0 12px 0 10px;border:.5px solid rgba(255,255,255,.72);border-radius:999px;color:var(--accent-deep);background:linear-gradient(180deg,#ffffffa8,#ffffff52);box-shadow:0 1px #ffffffdb inset,0 -.5px #1a1c1f0a inset,0 4px 12px #1a1c1f0f;font-family:var(--font-ui);font-size:11px;font-weight:540;letter-spacing:.01em;line-height:1;white-space:nowrap;backdrop-filter:blur(18px) saturate(1.5);-webkit-backdrop-filter:blur(18px) saturate(1.5)}.status-pill:before{width:6px;height:6px;border-radius:999px;background:var(--accent);box-shadow:0 0 0 2px #176d6524,0 0 6px #176d658c;content:"";animation:dot-breathe 2.6s ease-in-out infinite}.stay-shell-idle .status-pill:before{background:var(--ink-muted);box-shadow:0 0 0 2px #1a1c1f0f;animation-duration:4.2s}.stay-shell-locked .status-pill:before,.stay-shell-guarding .status-pill:before{background:var(--accent);box-shadow:0 0 0 2px #176d652e,0 0 8px #176d65b3}.stay-shell-meeting_candidate .status-pill:before{background:var(--warm);box-shadow:0 0 0 2px var(--warm-soft),0 0 8px #d3a07aa6}.mode-panel{position:relative;z-index:1;flex-shrink:0;width:100%;max-width:620px;min-height:0;margin:0 auto;padding-top:12px;border-top:.5px solid rgba(255,255,255,.5)}.stay-shell>.mode-panel+.mode-panel{margin-top:0}.mode-panel:before{position:absolute;top:0;right:0;left:0;height:.5px;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(26,28,31,.08),transparent);content:""}.mode-panel-active{display:grid;gap:8px;align-content:center}.pin-setup{align-self:center;width:100%;min-height:120px}.quiet-state{display:grid;gap:4px;align-content:start}.muted{min-height:18px;margin:0;color:var(--ink-soft);font-size:13px;line-height:1.4;letter-spacing:-.005em}.control-row,.action-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.control-row.pin-entry-row{grid-template-columns:auto auto;justify-content:start;align-items:end}.action-row{grid-template-columns:auto auto;justify-content:start;margin-top:6px}.unlock-form{margin-top:6px}.error-line{min-height:17px;margin:0;color:var(--danger);font-family:var(--font-ui);font-size:12px;line-height:1.4;letter-spacing:-.005em}.stay-shell-locked{position:fixed;inset:0;display:grid;grid-template-rows:1fr;width:100vw;height:100vh;place-items:center;padding:clamp(20px,4vw,32px);border:none;border-radius:24px;background:radial-gradient(60% 50% at 50% 30%,rgba(255,255,255,.22),transparent 70%),linear-gradient(155deg,#ffffff2e,#e2efed24),#f8fbfc29;box-shadow:0 18px 70px #211f1b2e,0 1px #fff6 inset;backdrop-filter:blur(34px) saturate(1.5);-webkit-backdrop-filter:blur(34px) saturate(1.5);animation:overlay-in .48s cubic-bezier(.2,.7,.2,1) both}.stay-shell-locked:before{inset:-20%;background:radial-gradient(38% 28% at 22% 18%,rgba(23,109,101,.18),transparent 72%),radial-gradient(36% 30% at 78% 82%,rgba(211,160,122,.16),transparent 72%);filter:blur(50px)}.stay-shell-locked:after{background:linear-gradient(180deg,rgba(255,255,255,.18),transparent 40%),url("data:image/svg+xml;utf8,");background-blend-mode:normal,soft-light;opacity:.85}.stay-shell-locked .brand-strip{position:absolute;top:clamp(20px,4vw,30px);right:clamp(20px,4vw,30px);left:clamp(20px,4vw,30px);min-height:auto;pointer-events:none}.stay-shell-locked .status-pill{pointer-events:auto;color:var(--accent-deep);background:linear-gradient(180deg,#ffffffb8,#ffffff61)}.stay-shell-locked .mode-panel-active{align-self:center;justify-self:center;width:min(calc(100vw - 48px),440px);max-height:calc(100vh - 120px);padding:26px 26px 22px;overflow:hidden;border:.5px solid rgba(255,255,255,.62);border-radius:22px;background:linear-gradient(155deg,#ffffffd1,#f8fbfc7a),#fff6;box-shadow:0 24px 70px #211f1b38,0 1px #ffffffdb inset,0 -.5px #1a1c1f0a inset;backdrop-filter:blur(40px) saturate(1.6);-webkit-backdrop-filter:blur(40px) saturate(1.6);animation:card-in .52s cubic-bezier(.2,.7,.2,1) 80ms both}.stay-shell-locked .error-line{color:#8f2e22}.launch-intro{position:fixed;inset:0;z-index:20;display:grid;place-items:center;min-width:100vw;min-height:100vh;overflow:hidden;color:var(--ink);background:radial-gradient(58% 44% at 50% 42%,rgba(255,255,255,.78),transparent 72%),linear-gradient(155deg,#ffffffeb,#f8f7f4bd 52%,#e5eeec85),#f6f0e7;animation:launch-veil var(--launch-duration) cubic-bezier(.2,.7,.2,1) both}.launch-intro__grain,.launch-intro__room{position:absolute;inset:0;pointer-events:none}.launch-intro__grain{background:linear-gradient(180deg,rgba(255,255,255,.4),transparent 42%),url("data:image/svg+xml;utf8,");background-blend-mode:normal,soft-light;opacity:.46}.launch-intro__room{inset:-24%;background:radial-gradient(28% 22% at 18% 24%,rgba(23,109,101,.2),transparent 70%),radial-gradient(30% 24% at 82% 78%,rgba(211,160,122,.2),transparent 72%),radial-gradient(44% 34% at 50% 52%,rgba(255,255,255,.54),transparent 78%);filter:blur(34px);transform-origin:50% 50%;animation:launch-room var(--launch-duration) ease-in-out both}.launch-intro__signals{position:absolute;inset:0;z-index:1;pointer-events:none;animation:launch-signals-out var(--launch-duration) ease both}.launch-intro__signal{position:absolute;top:var(--signal-y);left:var(--signal-x);width:var(--signal-width);height:var(--signal-height);margin-left:calc(var(--signal-width) / -2);margin-top:calc(var(--signal-height) / -2);border:1px solid rgba(255,255,255,.5);border-radius:999px;background:#e2d8ca9e;box-shadow:0 1px #ffffffad inset,0 0 18px #ffffff38,0 8px 22px #342a2014;opacity:0;transform:translateZ(0) scale(.62);animation:launch-signal-pulse var(--signal-duration) linear var(--signal-delay) infinite both;will-change:transform,opacity,filter}.launch-intro__signal-dot{height:var(--signal-width)}.launch-intro__signal-warm{background:linear-gradient(180deg,#ecbe9ad1,#c47b4b94),var(--warm)}.launch-intro__signal-accent{background:linear-gradient(180deg,#3a9c93e0,#0e4f48bd),var(--accent)}.launch-intro__icon-stage{position:absolute;top:50%;left:50%;z-index:2;width:min(58vmin,520px);max-width:calc(100vw - 48px);aspect-ratio:1;transform:translate3d(-50%,-50%,0) scale(.92);transform-origin:50% 50%;animation:launch-icon-stage var(--launch-duration) cubic-bezier(.18,.74,.2,1) both}.launch-intro__tile{position:absolute;inset:4%;z-index:1;border:1px solid rgba(255,255,255,.62);border-radius:24%;background:radial-gradient(65% 60% at 50% 40%,rgba(255,255,255,.76),transparent 74%),linear-gradient(145deg,#fffcf5f5,#f5ebdbc2 64%,#e8dccaa8),#f7efe4;box-shadow:0 2px #ffffffb8 inset,0 -2px #58483714 inset,0 28px 70px #43372a2e,0 0 0 9px #ffffff38;opacity:0;transform:scale(.88);animation:launch-tile-build var(--launch-duration) cubic-bezier(.2,.7,.2,1) both}.launch-intro__tile:before,.launch-intro__tile:after{position:absolute;inset:5%;border-radius:22%;pointer-events:none;content:""}.launch-intro__tile:before{border:1px solid rgba(255,255,255,.64);box-shadow:0 1px 8px #ffffff5c inset}.launch-intro__tile:after{background:linear-gradient(180deg,rgba(255,255,255,.44),transparent 35%),url("data:image/svg+xml;utf8,");background-blend-mode:normal,soft-light;opacity:.62}.launch-intro__icon-pattern{position:absolute;inset:4%;z-index:2;opacity:0;animation:launch-icon-pattern var(--launch-duration) cubic-bezier(.2,.7,.2,1) both}.launch-intro__icon-mark{position:absolute;border:1px solid rgba(255,255,255,.64);border-radius:999px;background:#e2d8ca9e;box-shadow:0 1px #ffffffd1 inset,0 5px 13px #342a201a,0 0 18px #ffffff42}.launch-intro__icon-mark-warm{background:linear-gradient(180deg,#ecbe9ac7,#c47b4b8f),var(--warm);box-shadow:0 1px #ffffffbd inset,0 9px 22px #92542c24}.launch-intro__icon-mark-dot{aspect-ratio:1}.launch-intro__icon-mark--top-left-dot{top:19%;left:17%;width:6%}.launch-intro__icon-mark--top-left-bar{top:19%;left:28%;width:19%;height:4.5%}.launch-intro__icon-mark--top-center-dot{top:18%;left:54%;width:6.5%}.launch-intro__icon-mark--top-right-bar{top:19%;left:66%;width:16%;height:4.5%}.launch-intro__icon-mark--upper-warm-left{top:33%;left:12%;width:24%;height:4.6%}.launch-intro__icon-mark--upper-warm-dot{top:34%;left:42%;width:5.4%}.launch-intro__icon-mark--upper-warm-right{top:30%;left:55%;width:36%;height:5%}.launch-intro__icon-mark--mid-left-bar{top:49%;left:11%;width:13%;height:4.5%}.launch-intro__icon-mark--mid-right-bar{top:44%;left:80%;width:14%;height:4.3%}.launch-intro__icon-mark--lower-left-bar{top:64%;left:12%;width:19%;height:4.3%}.launch-intro__icon-mark--lower-left-dot{top:66%;left:39%;width:5.5%}.launch-intro__icon-mark--lower-right-warm{top:71%;left:52%;width:27%;height:4.5%}.launch-intro__icon-mark--lower-right-dot{top:78%;left:81%;width:5.2%}.launch-intro__icon-mark--bottom-left-warm{top:79%;left:18%;width:23%;height:4.3%}.launch-intro__icon-mark--bottom-neutral{top:86%;left:42%;width:31%;height:4.3%}.launch-intro__connector{position:absolute;top:50%;left:50%;z-index:3;width:44%;height:16%;opacity:0;transform:translate3d(-50%,-50%,0) scale(.82);transform-origin:50% 50%;filter:blur(7px);animation:launch-connector-build var(--launch-duration) cubic-bezier(.2,.7,.2,1) both}.launch-intro__connector-line,.launch-intro__connector-dot{position:absolute;top:50%;transform:translateY(-50%);background:linear-gradient(180deg,#2c847bfa,#0a544df5),var(--accent-deep);box-shadow:0 1px #ffffff61 inset,0 12px 28px #074b452e,0 0 0 1px #ffffff61}.launch-intro__connector-line{left:17%;right:17%;height:19%;border-radius:999px}.launch-intro__connector-dot{width:34%;aspect-ratio:1;border-radius:999px}.launch-intro__connector-dot-left{left:0}.launch-intro__connector-dot-right{right:0}.launch-intro__copy{position:absolute;bottom:clamp(34px,7vh,82px);left:50%;z-index:4;display:grid;gap:5px;justify-items:center;width:min(360px,calc(100vw - 56px));text-align:center;transform:translate(-50%);animation:launch-copy var(--launch-duration) cubic-bezier(.2,.7,.2,1) both}.launch-intro__copy p,.launch-intro__copy span{margin:0}.launch-intro__copy p{font-family:var(--font-display);font-size:clamp(34px,7vw,68px);font-style:italic;line-height:.94}.launch-intro__copy span{color:var(--ink-soft);font-size:clamp(13px,1.6vw,16px);letter-spacing:0}.launch-intro__skip{position:absolute;top:max(18px,env(safe-area-inset-top));right:max(18px,env(safe-area-inset-right));z-index:5;height:34px;padding:0 14px;color:var(--ink-soft);opacity:0;animation:launch-skip var(--launch-duration) ease both}@media(max-height:380px){.stay-shell-locked .brand-strip h1{display:none}}@media(max-width:520px),(max-height:270px){.stay-shell:not(.stay-shell-locked,.stay-shell-collapsed){gap:8px;padding:14px 18px 16px;border-radius:22px}.stay-shell:not(.stay-shell-locked,.stay-shell-collapsed) .brand-strip{min-height:42px;padding-right:112px}.stay-shell:not(.stay-shell-locked,.stay-shell-collapsed) h1{font-size:18px}.stay-shell:not(.stay-shell-locked,.stay-shell-collapsed) h2{font-size:21px}.stay-shell:not(.stay-shell-locked,.stay-shell-collapsed) .mode-panel{padding-top:9px}.stay-shell:not(.stay-shell-locked,.stay-shell-collapsed) .muted{min-height:16px;font-size:12.5px}button,input{height:34px}.pin-code-input{width:188px;height:42px}.pin-code-slots{grid-template-columns:repeat(4,40px);gap:9px}}@media(max-width:360px){.stay-shell{width:100vw;height:100vh;border-radius:0}.brand-strip,.control-row{grid-template-columns:1fr}.pin-code-input{width:100%}.pin-code-slots{grid-template-columns:repeat(4,minmax(0,1fr))}.status-pill{justify-self:start}}@media(prefers-color-scheme:dark){:root{--ink: #ececec;--ink-soft: rgba(236, 236, 236, .7);--ink-muted: rgba(236, 236, 236, .46);--ink-faint: rgba(236, 236, 236, .24);--paper: rgba(28, 30, 33, .6);--paper-strong: rgba(38, 40, 44, .78);--hairline: rgba(255, 255, 255, .12);--hairline-soft: rgba(255, 255, 255, .08);--hairline-ink: rgba(0, 0, 0, .4);--accent: #5fc7bc;--accent-deep: #2e8c83;--accent-soft: rgba(95, 199, 188, .18);--guard-border: #20c6d0;--guard-border-soft: rgba(32, 198, 208, .24);--warm: #e2b491;--danger: #e08074}.stay-shell{background:linear-gradient(155deg,#2e3034c7,#1e202499 50%,#16242280),var(--paper);box-shadow:0 32px 80px #00000080,0 12px 28px #00000052,0 0 0 .5px #ffffff14,0 1px #ffffff1f inset,0 -1px #0000004d inset}.stay-shell:before{background:radial-gradient(38% 32% at 18% 22%,rgba(95,199,188,.22),transparent 70%),radial-gradient(34% 30% at 82% 78%,rgba(226,180,145,.16),transparent 72%),radial-gradient(50% 40% at 50% 50%,rgba(255,255,255,.06),transparent 76%)}.stay-shell:after{background:linear-gradient(180deg,rgba(255,255,255,.06),transparent 40%),url("data:image/svg+xml;utf8,");background-blend-mode:normal,soft-light}button{color:#06201d;background:linear-gradient(180deg,#ffffff47,#fff0 52%),linear-gradient(180deg,var(--accent),var(--accent-deep));box-shadow:0 1px #ffffff57 inset,0 6px 18px #0000006b,0 1px 2px #0000004d}button.ghost{color:var(--ink);background:linear-gradient(180deg,#ffffff1a,#ffffff0a);border-color:#ffffff24;box-shadow:0 1px #ffffff1a inset,0 4px 14px #00000052}button.ghost:hover{background:linear-gradient(180deg,#ffffff29,#ffffff0f)}button.strong-ghost{color:var(--accent)}input{border-color:#ffffff1f;color:var(--ink);background:#ffffff0d;box-shadow:0 1px #ffffff0f inset,0 4px 14px #0000004d}input:focus{border-color:#5fc7bc80;background:#ffffff14;box-shadow:0 1px #ffffff14 inset,0 0 0 3px #5fc7bc2e}.pin-code-control,.pin-code-control:focus{color:transparent;background:transparent;box-shadow:none}.pin-code-slot{border-color:#ffffff42;background:linear-gradient(180deg,#ffffff21,#ffffff0d),#ffffff0d;box-shadow:0 1px #ffffff0f inset,0 8px 18px #00000047}.pin-code-slot:before{background:#d7fffb;box-shadow:0 0 0 3px #5fc7bc2e,0 0 10px #5fc7bc73}.pin-code-slot-filled{border-color:#5fc7bc8f;background:linear-gradient(180deg,#5fc7bc38,#5fc7bc14),#ffffff0f}.pin-code-input:focus-within .pin-code-slot{border-color:#5fc7bc47;background:#ffffff14}.pin-code-input:focus-within .pin-code-slot-active{border-color:#5fc7bc80;box-shadow:0 1px #ffffff14 inset,0 0 0 3px #5fc7bc2e}.status-pill{color:var(--accent);background:linear-gradient(180deg,#ffffff14,#ffffff08);border-color:#ffffff1f;box-shadow:0 1px #ffffff14 inset,0 4px 12px #0000004d}.window-close{color:#ecececd1;background:linear-gradient(180deg,#ffffff24,#ffffff0f);border-color:#ffffff2e;box-shadow:0 1px #ffffff1f inset,0 2px 6px #0006}.window-close:hover{color:#fff;background:linear-gradient(180deg,#ffffff38,#ffffff1a)}.mode-panel{border-top-color:#ffffff14}.mode-panel:before{background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent)}.stay-shell-locked{background:radial-gradient(60% 50% at 50% 30%,rgba(255,255,255,.06),transparent 70%),#0e101280}.stay-shell-locked .mode-panel-active{border-color:#ffffff1a;background:linear-gradient(155deg,#2e3034c7,#1e202480),#1c1e2180;box-shadow:0 24px 70px #0000008c,0 1px #ffffff1a inset}.guard-border-frame{border-color:#20c6d0c2;box-shadow:0 0 0 1px #ffffff1f inset,0 0 22px #20c6d057,0 0 44px #20c6d029 inset}.stay-shell-guarding.stay-shell-collapsed{background:linear-gradient(180deg,#ffffff29,#ffffff0a),linear-gradient(180deg,#20c6d0d1,#0c5f66e0);box-shadow:0 12px 28px #00000057,0 0 0 1px #ffffff1f inset,0 0 22px #20c6d038}.launch-intro{background:radial-gradient(58% 44% at 50% 42%,rgba(255,255,255,.08),transparent 72%),linear-gradient(155deg,#2e3034e0,#1e2024c2 52%,#16242294),#17191b}.launch-intro__grain{opacity:.22}.launch-intro__icon-mark{border-color:#ffffff2e;background:#e8e0d32e;box-shadow:0 1px #ffffff1f inset,0 8px 20px #00000038}.launch-intro__signal{border-color:#ffffff3d;background:#e8e0d342;box-shadow:0 1px #ffffff29 inset,0 0 22px #ffffff1f,0 8px 18px #0000003d}.launch-intro__icon-mark-warm{background:linear-gradient(180deg,#e2b491a3,#a3653c7a),var(--warm)}.launch-intro__signal-warm{background:linear-gradient(180deg,#e2b491c7,#a3653c94),var(--warm)}.launch-intro__tile{border-color:#ffffff24;background:radial-gradient(65% 60% at 50% 40%,rgba(255,255,255,.1),transparent 74%),linear-gradient(145deg,#434442eb,#262522c7 64%,#1c1d1cb8),#262522;box-shadow:0 2px #ffffff1f inset,0 -2px #0000003d inset,0 28px 70px #00000061,0 0 0 9px #ffffff0a}.launch-intro__connector-line,.launch-intro__connector-dot{box-shadow:0 1px #ffffff2e inset,0 12px 30px #00000047,0 0 0 1px #ffffff24}.launch-intro__skip{color:var(--ink)}}@keyframes shell-in{0%{opacity:0;transform:translateY(6px) scale(.985);filter:blur(2px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@keyframes card-in{0%{opacity:0;transform:translateY(8px) scale(.97);filter:blur(3px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@keyframes ambient-drift{0%{transform:translate3d(-4%,-2%,0) rotate(0)}50%{transform:translate3d(3%,4%,0) rotate(8deg)}to{transform:translate3d(-2%,3%,0) rotate(-6deg)}}@keyframes dot-breathe{0%,to{opacity:.9;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}}@keyframes launch-veil{0%{opacity:1}94%{opacity:1}to{opacity:0}}@keyframes launch-room{0%{transform:scale(1.16) rotate(-2deg)}46%{transform:scale(1.04) rotate(0)}73%{transform:scale(1) rotate(0)}to{transform:scale(1.5) rotate(0)}}@keyframes launch-signals-out{0%,56%{opacity:1}78%{opacity:.1}to{opacity:0}}@keyframes launch-signal-pulse{0%{opacity:0;transform:translateZ(0) scale(.62);filter:blur(8px)}10%{opacity:.9;transform:translateZ(0) scale(1.08);filter:blur(0)}38%{opacity:.82;filter:blur(0)}66%{opacity:.34;transform:translate3d(var(--signal-drift-x),var(--signal-drift-y),0) scale(.82);filter:blur(3px)}to{opacity:0;transform:translate3d(var(--signal-drift-x),var(--signal-drift-y),0) scale(.5);filter:blur(7px)}}@keyframes launch-icon-stage{0%{opacity:1;transform:translate3d(-50%,-50%,0) scale(.92);filter:blur(0)}66%{opacity:1;transform:translate3d(-50%,-50%,0) scale(1);filter:blur(0)}86%{opacity:1;transform:translate3d(-50%,-50%,0) scale(1);filter:blur(0)}96%{opacity:1;transform:translate3d(-50%,-50%,0) scale(2.7);filter:blur(0)}to{opacity:0;transform:translate3d(-50%,-50%,0) scale(3.2);filter:blur(2px)}}@keyframes launch-tile-build{0%,48%{opacity:0;transform:scale(.86);filter:blur(10px)}62%{opacity:1;transform:scale(1);filter:blur(0)}to{opacity:1;transform:scale(1);filter:blur(0)}}@keyframes launch-icon-pattern{0%,50%{opacity:0;transform:scale(.96);filter:blur(8px)}64%{opacity:.96;transform:scale(1);filter:blur(0)}88%,to{opacity:1;transform:scale(1);filter:blur(0)}}@keyframes launch-connector-build{0%,46%{opacity:0;transform:translate3d(-50%,-50%,0) scale(.82);filter:blur(8px)}64%{opacity:1;transform:translate3d(-50%,-50%,0) scale(1);filter:blur(0)}88%,to{opacity:1;transform:translate3d(-50%,-50%,0) scale(1);filter:blur(0)}}@keyframes launch-copy{0%,54%{opacity:0;transform:translate(-50%) translateY(8px);filter:blur(4px)}64%,86%{opacity:1;transform:translate(-50%) translateY(0);filter:blur(0)}96%,to{opacity:0;transform:translate(-50%) translateY(-8px);filter:blur(3px)}}@keyframes launch-skip{0%,8%{opacity:0}16%,80%{opacity:.82}to{opacity:0}}@media(prefers-reduced-motion:reduce){.stay-shell,.stay-shell-locked,.stay-shell-locked .mode-panel-active{animation:none}.stay-shell:before{animation:none}.status-pill:before{animation:none}button,input{transition:none}.pin-code-slot,.pin-code-slot:before{transition:none}.launch-intro,.launch-intro__room,.launch-intro__signals,.launch-intro__signal,.launch-intro__icon-stage,.launch-intro__tile,.launch-intro__icon-pattern,.launch-intro__icon-mark,.launch-intro__connector,.launch-intro__copy,.launch-intro__skip{animation-duration:1.2s}} diff --git a/apps/desktop/dist/assets/index-BDMUnbH3.css b/apps/desktop/dist/assets/index-BDMUnbH3.css new file mode 100644 index 0000000..5a62516 --- /dev/null +++ b/apps/desktop/dist/assets/index-BDMUnbH3.css @@ -0,0 +1 @@ +:root{--ink: #1a1c1f;--ink-soft: rgba(26, 28, 31, .66);--ink-muted: rgba(26, 28, 31, .44);--ink-faint: rgba(26, 28, 31, .22);--paper: rgba(252, 251, 249, .62);--paper-strong: rgba(255, 255, 255, .78);--hairline: rgba(255, 255, 255, .62);--hairline-soft: rgba(255, 255, 255, .38);--hairline-ink: rgba(26, 28, 31, .06);--accent: #176d65;--accent-deep: #0e4f48;--accent-soft: rgba(23, 109, 101, .14);--guard-border: #18b7c2;--guard-border-soft: rgba(24, 183, 194, .22);--warm: #d3a07a;--warm-soft: rgba(211, 160, 122, .22);--danger: #a83a2d;--radius-shell: 26px;--radius-panel: 20px;--radius-control: 14px;--font-ui: "Geist", -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", sans-serif;--font-display: "Instrument Serif", "New York", Georgia, serif;color:var(--ink);background:transparent;font-family:var(--font-ui);font-feature-settings:"ss01","ss02","cv11";font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden;background:transparent}body{border-radius:var(--radius-shell)}button,input{font:inherit;font-family:var(--font-ui)}button{position:relative;height:38px;padding:0 18px;-webkit-app-region:no-drag;border:.5px solid rgba(255,255,255,.28);border-radius:999px;color:#fbfefe;background:linear-gradient(180deg,#ffffff38,#fff0 52%),linear-gradient(180deg,var(--accent),var(--accent-deep));box-shadow:0 1px #ffffff57 inset,0 -1px #00000014 inset,0 6px 18px #0e4f4838,0 1px 2px #0e4f482e;font-size:13px;font-weight:550;letter-spacing:-.005em;cursor:pointer;transition:transform .16s cubic-bezier(.2,.7,.2,1),box-shadow .2s ease,filter .2s ease}button:hover{filter:brightness(1.04) saturate(1.05);box-shadow:0 1px #ffffff61 inset,0 -1px #00000014 inset,0 8px 22px #0e4f4842,0 1px 2px #0e4f4833}button:active{transform:translateY(.5px) scale(.985);filter:brightness(.98)}button:disabled{cursor:not-allowed;filter:saturate(.3);opacity:.5;box-shadow:0 1px #ffffff3d inset,0 1px 2px #0e4f4814}button:focus-visible,input:focus-visible{outline:2px solid rgba(23,109,101,.5);outline-offset:2px}button.ghost{color:var(--ink);background:linear-gradient(180deg,#fff9,#ffffff52);border-color:#ffffffb3;box-shadow:0 1px #ffffffdb inset,0 -.5px #1a1c1f0d inset,0 4px 14px #1a1c1f0f,0 1px 2px #1a1c1f0a;backdrop-filter:blur(10px) saturate(1.25);-webkit-backdrop-filter:blur(10px) saturate(1.25)}button.ghost:hover{background:linear-gradient(180deg,#ffffffbd,#ffffff75);filter:none}button.strong-ghost{color:var(--accent-deep)}input{width:100%;min-width:0;height:38px;-webkit-app-region:no-drag;padding:0 14px;border:.5px solid rgba(255,255,255,.72);border-radius:var(--radius-control);color:var(--ink);background:#ffffff6b;box-shadow:0 1px #ffffffdb inset,0 -.5px #1a1c1f0d inset,0 4px 14px #1a1c1f0d;font-size:14px;font-feature-settings:"tnum","ss01";font-variant-numeric:tabular-nums;letter-spacing:.18em;backdrop-filter:blur(10px) saturate(1.25);-webkit-backdrop-filter:blur(10px) saturate(1.25);transition:border-color .16s ease,box-shadow .2s ease,background .2s ease}input::placeholder{color:var(--ink-faint);letter-spacing:0}input:focus{border-color:#176d656b;background:#fff9;box-shadow:0 1px #fffffff0 inset,0 0 0 3px #176d651f}input[aria-invalid=true]{border-color:#a83a2d80}.pin-code-field{display:grid;min-width:0;gap:9px}.pin-code-field label{margin-bottom:0}.pin-code-input{position:relative;width:212px;max-width:100%;height:46px;-webkit-app-region:no-drag;cursor:text}.pin-code-control{position:absolute;inset:0;z-index:2;width:100%;height:100%;padding:0;border:0;border-radius:var(--radius-control);color:transparent;caret-color:transparent;background:transparent;box-shadow:none;letter-spacing:0;backdrop-filter:none;-webkit-backdrop-filter:none}.pin-code-control:focus{border:0;background:transparent;box-shadow:none}.pin-code-control:focus-visible{outline:none}.pin-code-slots{display:grid;grid-template-columns:repeat(4,44px);justify-content:start;gap:12px;width:100%;height:100%}.pin-code-slot{display:grid;min-width:0;place-items:center;aspect-ratio:1;border:.5px solid rgba(26,28,31,.13);border-radius:var(--radius-control);background:linear-gradient(180deg,#ffffffb3,#ffffff52),#fff6;box-shadow:0 1px #ffffffdb inset,0 -.5px #1a1c1f0d inset,0 7px 18px #1a1c1f14;backdrop-filter:blur(10px) saturate(1.25);-webkit-backdrop-filter:blur(10px) saturate(1.25);transition:border-color .16s ease,background .2s ease,box-shadow .2s ease,transform .16s ease}.pin-code-slot:before{width:10px;height:10px;border-radius:999px;background:var(--accent-deep);box-shadow:0 0 0 3px #176d651f;opacity:0;transform:scale(.72);content:"";transition:opacity .14s ease,transform .16s cubic-bezier(.2,.7,.2,1)}.pin-code-slot-filled:before{opacity:1;transform:scale(1)}.pin-code-slot-filled{border-color:#176d6547;background:linear-gradient(180deg,#ffffffbd,#176d651f),#ffffff6b}.pin-code-input:focus-within .pin-code-slot{border-color:#176d653d;background:#ffffff8f}.pin-code-input:focus-within .pin-code-slot-active{border-color:#176d6580;box-shadow:0 1px #fffffff0 inset,0 0 0 3px #176d651f,0 7px 18px #1a1c1f12;transform:translateY(-1px)}.pin-code-input[data-invalid=true] .pin-code-slot{border-color:#a83a2d80}.pin-code-input[data-invalid=true] .pin-code-slot:before{background:var(--danger);box-shadow:0 0 0 3px #a83a2d1f}.stay-shell{position:relative;isolation:isolate;contain:layout paint style;display:flex;flex-direction:column;align-items:stretch;width:100vw;height:100vh;gap:10px;padding:20px 28px 24px;overflow:hidden;border:.5px solid var(--hairline);border-radius:var(--radius-shell);background:linear-gradient(155deg,#ffffffd6,#f8f7f480 48%,#e5eeec6b),var(--paper);box-shadow:0 32px 80px #14181c38,0 12px 28px #14181c1a,0 0 0 .5px #ffffff80,0 1px #ffffffe0 inset,0 -1px #1a1c1f0a inset;transform:translateZ(0);backdrop-filter:blur(18px) saturate(1.45);-webkit-backdrop-filter:blur(18px) saturate(1.45);animation:shell-in .42s cubic-bezier(.2,.7,.2,1) both;transition:border-color .14s ease,opacity .16s ease,transform .16s cubic-bezier(.2,.7,.2,1)}.stay-shell:before{position:absolute;inset:-40%;z-index:-2;pointer-events:none;content:"";background:radial-gradient(38% 32% at 18% 22%,rgba(23,109,101,.22),transparent 70%),radial-gradient(34% 30% at 82% 78%,rgba(211,160,122,.2),transparent 72%),radial-gradient(50% 40% at 50% 50%,rgba(255,255,255,.35),transparent 76%);opacity:.78;animation:ambient-drift 24s ease-in-out infinite alternate}.stay-shell:after{position:absolute;inset:0;z-index:-1;pointer-events:none;content:"";border-radius:inherit;background:linear-gradient(180deg,rgba(255,255,255,.5),transparent 36%),linear-gradient(90deg,rgba(255,255,255,.3),transparent 38%,rgba(220,232,230,.16)),url("data:image/svg+xml;utf8,");background-blend-mode:normal,normal,soft-light;opacity:.95}.guard-border-surface{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;background:transparent}.guard-border-frame{position:fixed;inset:6px;border:2px solid rgba(24,183,194,.78);border-radius:clamp(12px,1.2vw,22px);box-shadow:0 0 0 1px #ffffff47 inset,0 0 20px #18b7c261,0 0 44px #18b7c22e inset;opacity:.92}.guard-border-frame:before{position:absolute;top:-2px;right:18%;left:18%;height:2px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.86),transparent);content:""}.stay-shell-guarding.stay-shell-revealed{border-color:#18b7c2a3;box-shadow:0 32px 80px #14181c33,0 12px 28px #14181c1a,0 0 0 1px #18b7c257,0 1px #ffffffe0 inset,0 -1px #1a1c1f0a inset}.stay-shell-guarding.stay-shell-collapsed{min-width:0;gap:0;align-items:center;justify-content:center;padding:5px 8px;border:1px solid rgba(24,183,194,.78);border-radius:999px;background:linear-gradient(180deg,#ffffff47,#ffffff0f),linear-gradient(180deg,#18b7c2e6,#0c7177e0);box-shadow:0 10px 26px #0c717733,0 0 0 1px #ffffff47 inset,0 0 20px #18b7c23d;cursor:default;animation:none;backdrop-filter:blur(10px) saturate(1.25);-webkit-backdrop-filter:blur(10px) saturate(1.25)}.stay-shell-guarding.stay-shell-collapsed:before,.stay-shell-guarding.stay-shell-collapsed:after{display:none}.stay-shell-guarding.stay-shell-collapsed .brand-strip{display:flex;align-items:center;justify-content:center;width:100%;min-height:0;padding:0}.stay-shell-guarding.stay-shell-collapsed .brand-label,.stay-shell-guarding.stay-shell-collapsed .window-close,.stay-shell-guarding.stay-shell-collapsed .mode-panel{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;opacity:0;pointer-events:none;clip:rect(0 0 0 0)}.stay-shell-guarding.stay-shell-collapsed .brand-controls{position:static}.stay-shell-guarding.stay-shell-collapsed .status-pill{height:100%;min-height:23px;padding:0 10px;border-color:#ffffff3d;color:#f7ffff;background:transparent;box-shadow:none;font-size:10.5px;backdrop-filter:none;-webkit-backdrop-filter:none}.stay-shell-guarding.stay-shell-collapsed .status-pill:before{background:#fff;box-shadow:0 0 0 2px #ffffff2e,0 0 8px #ffffffb8}.brand-strip{position:relative;z-index:2;min-height:48px;padding-right:132px;-webkit-app-region:drag}.brand-label{min-width:0;max-width:100%;-webkit-app-region:drag}.brand-controls{position:absolute;top:0;right:4px;display:inline-flex;align-items:center;gap:8px;-webkit-app-region:no-drag}.window-close{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:24px;height:24px;padding:0;border:.5px solid rgba(26,28,31,.12);border-radius:999px;color:#1a1c1fb3;background:linear-gradient(180deg,#ffffffdb,#fff9);box-shadow:0 1px #fffffff0 inset,0 2px 6px #1a1c1f1a;font-size:0;-webkit-app-region:no-drag;backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);transition:transform .14s ease,background .16s ease,color .16s ease}.window-close:hover{color:var(--ink);background:linear-gradient(180deg,#ffffffc7,#ffffff7a);filter:none}.window-close:active{transform:scale(.92)}.window-close svg{display:block}.eyebrow,.kicker{margin:0 0 4px;color:var(--ink-muted);font-size:10px;font-weight:500;letter-spacing:.16em;text-transform:uppercase}h1,h2{margin:0;color:var(--ink);font-family:var(--font-display);font-weight:400;letter-spacing:-.012em}h1{max-width:100%;overflow:hidden;font-size:20px;font-style:italic;line-height:1.12;text-overflow:ellipsis;white-space:nowrap}h2{overflow:hidden;font-size:24px;font-style:italic;line-height:1.1;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.stay-shell-locked h1{font-size:22px}.stay-shell-locked h2{font-size:28px;-webkit-line-clamp:3}label{display:block;margin-bottom:9px;color:var(--ink-soft);font-family:var(--font-ui);font-size:12.5px;font-weight:500;letter-spacing:-.005em}.status-pill{position:relative;display:inline-flex;align-items:center;gap:7px;min-width:0;height:26px;padding:0 12px 0 10px;border:.5px solid rgba(255,255,255,.72);border-radius:999px;color:var(--accent-deep);background:linear-gradient(180deg,#ffffffa8,#ffffff52);box-shadow:0 1px #ffffffdb inset,0 -.5px #1a1c1f0a inset,0 4px 12px #1a1c1f0f;font-family:var(--font-ui);font-size:11px;font-weight:540;letter-spacing:.01em;line-height:1;white-space:nowrap;backdrop-filter:blur(10px) saturate(1.25);-webkit-backdrop-filter:blur(10px) saturate(1.25)}.status-pill:before{width:6px;height:6px;border-radius:999px;background:var(--accent);box-shadow:0 0 0 2px #176d6524,0 0 6px #176d658c;content:"";animation:dot-breathe 2.6s ease-in-out infinite}.stay-shell-idle .status-pill:before{background:var(--ink-muted);box-shadow:0 0 0 2px #1a1c1f0f;animation-duration:4.2s}.stay-shell-locked .status-pill:before,.stay-shell-guarding .status-pill:before{background:var(--accent);box-shadow:0 0 0 2px #176d652e,0 0 8px #176d65b3}.stay-shell-meeting_candidate .status-pill:before{background:var(--warm);box-shadow:0 0 0 2px var(--warm-soft),0 0 8px #d3a07aa6}.mode-panel{position:relative;z-index:1;flex-shrink:0;width:100%;max-width:620px;min-height:0;margin:0 auto;padding-top:12px;border-top:.5px solid rgba(255,255,255,.5)}.stay-shell>.mode-panel+.mode-panel{margin-top:0}.mode-panel:before{position:absolute;top:0;right:0;left:0;height:.5px;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(26,28,31,.08),transparent);content:""}.mode-panel-active{display:grid;gap:8px;align-content:center}.pin-setup{align-self:center;width:100%;min-height:120px}.quiet-state{display:grid;gap:4px;align-content:start}.muted{min-height:18px;margin:0;color:var(--ink-soft);font-size:13px;line-height:1.4;letter-spacing:-.005em}.control-row,.action-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.control-row.pin-entry-row{grid-template-columns:auto auto;justify-content:start;align-items:end}.action-row{grid-template-columns:auto auto;justify-content:start;margin-top:6px}.unlock-form{margin-top:6px}.error-line{min-height:17px;margin:0;color:var(--danger);font-family:var(--font-ui);font-size:12px;line-height:1.4;letter-spacing:-.005em}.stay-shell-locked{position:fixed;inset:0;display:grid;grid-template-rows:1fr;width:100vw;height:100vh;place-items:center;padding:clamp(20px,4vw,32px);border:none;border-radius:24px;background:radial-gradient(60% 50% at 50% 30%,rgba(255,255,255,.22),transparent 70%),linear-gradient(155deg,#ffffff2e,#e2efed24),#f8fbfc29;box-shadow:0 18px 70px #211f1b2e,0 1px #fff6 inset;backdrop-filter:blur(16px) saturate(1.25);-webkit-backdrop-filter:blur(16px) saturate(1.25);animation:overlay-in .48s cubic-bezier(.2,.7,.2,1) both}.stay-shell-locked:before{inset:-20%;background:radial-gradient(38% 28% at 22% 18%,rgba(23,109,101,.18),transparent 72%),radial-gradient(36% 30% at 78% 82%,rgba(211,160,122,.16),transparent 72%);opacity:.72}.stay-shell-locked:after{background:linear-gradient(180deg,rgba(255,255,255,.18),transparent 40%),url("data:image/svg+xml;utf8,");background-blend-mode:normal,soft-light;opacity:.85}.stay-shell-locked .brand-strip{position:absolute;top:clamp(20px,4vw,30px);right:clamp(20px,4vw,30px);left:clamp(20px,4vw,30px);min-height:auto;pointer-events:none}.stay-shell-locked .status-pill{pointer-events:auto;color:var(--accent-deep);background:linear-gradient(180deg,#ffffffb8,#ffffff61)}.stay-shell-locked .mode-panel-active{align-self:center;justify-self:center;width:min(calc(100vw - 48px),440px);max-height:calc(100vh - 120px);padding:26px 26px 22px;overflow:auto;overscroll-behavior:contain;scrollbar-width:none;border:.5px solid rgba(255,255,255,.62);border-radius:22px;background:linear-gradient(155deg,#ffffffd1,#f8fbfc7a),#fff6;box-shadow:0 24px 70px #211f1b38,0 1px #ffffffdb inset,0 -.5px #1a1c1f0a inset;contain:layout paint style;backdrop-filter:blur(16px) saturate(1.25);-webkit-backdrop-filter:blur(16px) saturate(1.25);animation:card-in .52s cubic-bezier(.2,.7,.2,1) 80ms both}.stay-shell-locked .mode-panel-active::-webkit-scrollbar{display:none}.stay-shell-locked .error-line{color:#8f2e22}.launch-intro{position:fixed;inset:0;z-index:20;display:grid;place-items:center;min-width:100vw;min-height:100vh;overflow:hidden;color:var(--ink);background:radial-gradient(58% 44% at 50% 42%,rgba(255,255,255,.78),transparent 72%),linear-gradient(155deg,#ffffffeb,#f8f7f4bd 52%,#e5eeec85),#f6f0e7;animation:launch-veil var(--launch-duration) cubic-bezier(.2,.7,.2,1) both}.launch-intro__grain,.launch-intro__room{position:absolute;inset:0;pointer-events:none}.launch-intro__grain{background:linear-gradient(180deg,rgba(255,255,255,.4),transparent 42%),url("data:image/svg+xml;utf8,");background-blend-mode:normal,soft-light;opacity:.46}.launch-intro__room{inset:-24%;background:radial-gradient(28% 22% at 18% 24%,rgba(23,109,101,.2),transparent 70%),radial-gradient(30% 24% at 82% 78%,rgba(211,160,122,.2),transparent 72%),radial-gradient(44% 34% at 50% 52%,rgba(255,255,255,.54),transparent 78%);filter:blur(34px);transform-origin:50% 50%;animation:launch-room var(--launch-duration) ease-in-out both}.launch-intro__signals{position:absolute;inset:0;z-index:1;pointer-events:none;animation:launch-signals-out var(--launch-duration) ease both}.launch-intro__signal{position:absolute;top:var(--signal-y);left:var(--signal-x);width:var(--signal-width);height:var(--signal-height);margin-left:calc(var(--signal-width) / -2);margin-top:calc(var(--signal-height) / -2);border:1px solid rgba(255,255,255,.5);border-radius:999px;background:#e2d8ca9e;box-shadow:0 1px #ffffffad inset,0 0 18px #ffffff38,0 8px 22px #342a2014;opacity:0;transform:translateZ(0) scale(.62);animation:launch-signal-pulse var(--signal-duration) linear var(--signal-delay) infinite both;will-change:transform,opacity,filter}.launch-intro__signal-dot{height:var(--signal-width)}.launch-intro__signal-warm{background:linear-gradient(180deg,#ecbe9ad1,#c47b4b94),var(--warm)}.launch-intro__signal-accent{background:linear-gradient(180deg,#3a9c93e0,#0e4f48bd),var(--accent)}.launch-intro__icon-stage{position:absolute;top:50%;left:50%;z-index:2;width:min(58vmin,520px);max-width:calc(100vw - 48px);aspect-ratio:1;transform:translate3d(-50%,-50%,0) scale(.92);transform-origin:50% 50%;animation:launch-icon-stage var(--launch-duration) cubic-bezier(.18,.74,.2,1) both}.launch-intro__tile{position:absolute;inset:4%;z-index:1;border:1px solid rgba(255,255,255,.62);border-radius:24%;background:radial-gradient(65% 60% at 50% 40%,rgba(255,255,255,.76),transparent 74%),linear-gradient(145deg,#fffcf5f5,#f5ebdbc2 64%,#e8dccaa8),#f7efe4;box-shadow:0 2px #ffffffb8 inset,0 -2px #58483714 inset,0 28px 70px #43372a2e,0 0 0 9px #ffffff38;opacity:0;transform:scale(.88);animation:launch-tile-build var(--launch-duration) cubic-bezier(.2,.7,.2,1) both}.launch-intro__tile:before,.launch-intro__tile:after{position:absolute;inset:5%;border-radius:22%;pointer-events:none;content:""}.launch-intro__tile:before{border:1px solid rgba(255,255,255,.64);box-shadow:0 1px 8px #ffffff5c inset}.launch-intro__tile:after{background:linear-gradient(180deg,rgba(255,255,255,.44),transparent 35%),url("data:image/svg+xml;utf8,");background-blend-mode:normal,soft-light;opacity:.62}.launch-intro__icon-pattern{position:absolute;inset:4%;z-index:2;opacity:0;animation:launch-icon-pattern var(--launch-duration) cubic-bezier(.2,.7,.2,1) both}.launch-intro__icon-mark{position:absolute;border:1px solid rgba(255,255,255,.64);border-radius:999px;background:#e2d8ca9e;box-shadow:0 1px #ffffffd1 inset,0 5px 13px #342a201a,0 0 18px #ffffff42}.launch-intro__icon-mark-warm{background:linear-gradient(180deg,#ecbe9ac7,#c47b4b8f),var(--warm);box-shadow:0 1px #ffffffbd inset,0 9px 22px #92542c24}.launch-intro__icon-mark-dot{aspect-ratio:1}.launch-intro__icon-mark--top-left-dot{top:19%;left:17%;width:6%}.launch-intro__icon-mark--top-left-bar{top:19%;left:28%;width:19%;height:4.5%}.launch-intro__icon-mark--top-center-dot{top:18%;left:54%;width:6.5%}.launch-intro__icon-mark--top-right-bar{top:19%;left:66%;width:16%;height:4.5%}.launch-intro__icon-mark--upper-warm-left{top:33%;left:12%;width:24%;height:4.6%}.launch-intro__icon-mark--upper-warm-dot{top:34%;left:42%;width:5.4%}.launch-intro__icon-mark--upper-warm-right{top:30%;left:55%;width:36%;height:5%}.launch-intro__icon-mark--mid-left-bar{top:49%;left:11%;width:13%;height:4.5%}.launch-intro__icon-mark--mid-right-bar{top:44%;left:80%;width:14%;height:4.3%}.launch-intro__icon-mark--lower-left-bar{top:64%;left:12%;width:19%;height:4.3%}.launch-intro__icon-mark--lower-left-dot{top:66%;left:39%;width:5.5%}.launch-intro__icon-mark--lower-right-warm{top:71%;left:52%;width:27%;height:4.5%}.launch-intro__icon-mark--lower-right-dot{top:78%;left:81%;width:5.2%}.launch-intro__icon-mark--bottom-left-warm{top:79%;left:18%;width:23%;height:4.3%}.launch-intro__icon-mark--bottom-neutral{top:86%;left:42%;width:31%;height:4.3%}.launch-intro__connector{position:absolute;top:50%;left:50%;z-index:3;width:44%;height:16%;opacity:0;transform:translate3d(-50%,-50%,0) scale(.82);transform-origin:50% 50%;filter:blur(7px);animation:launch-connector-build var(--launch-duration) cubic-bezier(.2,.7,.2,1) both}.launch-intro__connector-line,.launch-intro__connector-dot{position:absolute;top:50%;transform:translateY(-50%);background:linear-gradient(180deg,#2c847bfa,#0a544df5),var(--accent-deep);box-shadow:0 1px #ffffff61 inset,0 12px 28px #074b452e,0 0 0 1px #ffffff61}.launch-intro__connector-line{left:17%;right:17%;height:19%;border-radius:999px}.launch-intro__connector-dot{width:34%;aspect-ratio:1;border-radius:999px}.launch-intro__connector-dot-left{left:0}.launch-intro__connector-dot-right{right:0}.launch-intro__copy{position:absolute;bottom:clamp(34px,7vh,82px);left:50%;z-index:4;display:grid;gap:5px;justify-items:center;width:min(360px,calc(100vw - 56px));text-align:center;transform:translate(-50%);animation:launch-copy var(--launch-duration) cubic-bezier(.2,.7,.2,1) both}.launch-intro__copy p,.launch-intro__copy span{margin:0}.launch-intro__copy p{font-family:var(--font-display);font-size:clamp(34px,7vw,68px);font-style:italic;line-height:.94}.launch-intro__copy span{color:var(--ink-soft);font-size:clamp(13px,1.6vw,16px);letter-spacing:0}.launch-intro__skip{position:absolute;top:max(18px,env(safe-area-inset-top));right:max(18px,env(safe-area-inset-right));z-index:5;height:34px;padding:0 14px;color:var(--ink-soft);opacity:0;animation:launch-skip var(--launch-duration) ease both}@media(max-height:380px){.stay-shell-locked .brand-strip h1{display:none}}@media(max-width:520px),(max-height:270px){.stay-shell:not(.stay-shell-locked,.stay-shell-collapsed){gap:8px;padding:14px 18px 16px;border-radius:22px}.stay-shell:not(.stay-shell-locked,.stay-shell-collapsed) .brand-strip{min-height:42px;padding-right:112px}.stay-shell:not(.stay-shell-locked,.stay-shell-collapsed) h1{font-size:18px}.stay-shell:not(.stay-shell-locked,.stay-shell-collapsed) h2{font-size:21px}.stay-shell:not(.stay-shell-locked,.stay-shell-collapsed) .mode-panel{padding-top:9px}.stay-shell:not(.stay-shell-locked,.stay-shell-collapsed) .muted{min-height:16px;font-size:12.5px}button,input{height:34px}.pin-code-input{width:188px;height:42px}.pin-code-slots{grid-template-columns:repeat(4,40px);gap:9px}}@media(max-width:360px){.stay-shell{width:100vw;height:100vh;border-radius:0}.brand-strip,.control-row{grid-template-columns:1fr}.pin-code-input{width:100%}.pin-code-slots{grid-template-columns:repeat(4,minmax(0,1fr))}.status-pill{justify-self:start}}@media(prefers-color-scheme:dark){:root{--ink: #ececec;--ink-soft: rgba(236, 236, 236, .7);--ink-muted: rgba(236, 236, 236, .46);--ink-faint: rgba(236, 236, 236, .24);--paper: rgba(28, 30, 33, .6);--paper-strong: rgba(38, 40, 44, .78);--hairline: rgba(255, 255, 255, .12);--hairline-soft: rgba(255, 255, 255, .08);--hairline-ink: rgba(0, 0, 0, .4);--accent: #5fc7bc;--accent-deep: #2e8c83;--accent-soft: rgba(95, 199, 188, .18);--guard-border: #20c6d0;--guard-border-soft: rgba(32, 198, 208, .24);--warm: #e2b491;--danger: #e08074}.stay-shell{background:linear-gradient(155deg,#2e3034c7,#1e202499 50%,#16242280),var(--paper);box-shadow:0 32px 80px #00000080,0 12px 28px #00000052,0 0 0 .5px #ffffff14,0 1px #ffffff1f inset,0 -1px #0000004d inset}.stay-shell:before{background:radial-gradient(38% 32% at 18% 22%,rgba(95,199,188,.22),transparent 70%),radial-gradient(34% 30% at 82% 78%,rgba(226,180,145,.16),transparent 72%),radial-gradient(50% 40% at 50% 50%,rgba(255,255,255,.06),transparent 76%)}.stay-shell:after{background:linear-gradient(180deg,rgba(255,255,255,.06),transparent 40%),url("data:image/svg+xml;utf8,");background-blend-mode:normal,soft-light}button{color:#06201d;background:linear-gradient(180deg,#ffffff47,#fff0 52%),linear-gradient(180deg,var(--accent),var(--accent-deep));box-shadow:0 1px #ffffff57 inset,0 6px 18px #0000006b,0 1px 2px #0000004d}button.ghost{color:var(--ink);background:linear-gradient(180deg,#ffffff1a,#ffffff0a);border-color:#ffffff24;box-shadow:0 1px #ffffff1a inset,0 4px 14px #00000052}button.ghost:hover{background:linear-gradient(180deg,#ffffff29,#ffffff0f)}button.strong-ghost{color:var(--accent)}input{border-color:#ffffff1f;color:var(--ink);background:#ffffff0d;box-shadow:0 1px #ffffff0f inset,0 4px 14px #0000004d}input:focus{border-color:#5fc7bc80;background:#ffffff14;box-shadow:0 1px #ffffff14 inset,0 0 0 3px #5fc7bc2e}.pin-code-control,.pin-code-control:focus{color:transparent;background:transparent;box-shadow:none}.pin-code-slot{border-color:#ffffff42;background:linear-gradient(180deg,#ffffff21,#ffffff0d),#ffffff0d;box-shadow:0 1px #ffffff0f inset,0 8px 18px #00000047}.pin-code-slot:before{background:#d7fffb;box-shadow:0 0 0 3px #5fc7bc2e,0 0 10px #5fc7bc73}.pin-code-slot-filled{border-color:#5fc7bc8f;background:linear-gradient(180deg,#5fc7bc38,#5fc7bc14),#ffffff0f}.pin-code-input:focus-within .pin-code-slot{border-color:#5fc7bc47;background:#ffffff14}.pin-code-input:focus-within .pin-code-slot-active{border-color:#5fc7bc80;box-shadow:0 1px #ffffff14 inset,0 0 0 3px #5fc7bc2e}.status-pill{color:var(--accent);background:linear-gradient(180deg,#ffffff14,#ffffff08);border-color:#ffffff1f;box-shadow:0 1px #ffffff14 inset,0 4px 12px #0000004d}.window-close{color:#ecececd1;background:linear-gradient(180deg,#ffffff24,#ffffff0f);border-color:#ffffff2e;box-shadow:0 1px #ffffff1f inset,0 2px 6px #0006}.window-close:hover{color:#fff;background:linear-gradient(180deg,#ffffff38,#ffffff1a)}.mode-panel{border-top-color:#ffffff14}.mode-panel:before{background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent)}.stay-shell-locked{background:radial-gradient(60% 50% at 50% 30%,rgba(255,255,255,.06),transparent 70%),#0e101280}.stay-shell-locked .mode-panel-active{border-color:#ffffff1a;background:linear-gradient(155deg,#2e3034c7,#1e202480),#1c1e2180;box-shadow:0 24px 70px #0000008c,0 1px #ffffff1a inset}.guard-border-frame{border-color:#20c6d0c2;box-shadow:0 0 0 1px #ffffff1f inset,0 0 22px #20c6d057,0 0 44px #20c6d029 inset}.stay-shell-guarding.stay-shell-collapsed{background:linear-gradient(180deg,#ffffff29,#ffffff0a),linear-gradient(180deg,#20c6d0d1,#0c5f66e0);box-shadow:0 12px 28px #00000057,0 0 0 1px #ffffff1f inset,0 0 22px #20c6d038}.launch-intro{background:radial-gradient(58% 44% at 50% 42%,rgba(255,255,255,.08),transparent 72%),linear-gradient(155deg,#2e3034e0,#1e2024c2 52%,#16242294),#17191b}.launch-intro__grain{opacity:.22}.launch-intro__icon-mark{border-color:#ffffff2e;background:#e8e0d32e;box-shadow:0 1px #ffffff1f inset,0 8px 20px #00000038}.launch-intro__signal{border-color:#ffffff3d;background:#e8e0d342;box-shadow:0 1px #ffffff29 inset,0 0 22px #ffffff1f,0 8px 18px #0000003d}.launch-intro__icon-mark-warm{background:linear-gradient(180deg,#e2b491a3,#a3653c7a),var(--warm)}.launch-intro__signal-warm{background:linear-gradient(180deg,#e2b491c7,#a3653c94),var(--warm)}.launch-intro__tile{border-color:#ffffff24;background:radial-gradient(65% 60% at 50% 40%,rgba(255,255,255,.1),transparent 74%),linear-gradient(145deg,#434442eb,#262522c7 64%,#1c1d1cb8),#262522;box-shadow:0 2px #ffffff1f inset,0 -2px #0000003d inset,0 28px 70px #00000061,0 0 0 9px #ffffff0a}.launch-intro__connector-line,.launch-intro__connector-dot{box-shadow:0 1px #ffffff2e inset,0 12px 30px #00000047,0 0 0 1px #ffffff24}.launch-intro__skip{color:var(--ink)}}@keyframes shell-in{0%{opacity:0;transform:translateY(6px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@keyframes card-in{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes ambient-drift{0%{transform:translate3d(-4%,-2%,0) rotate(0)}50%{transform:translate3d(3%,4%,0) rotate(8deg)}to{transform:translate3d(-2%,3%,0) rotate(-6deg)}}@keyframes dot-breathe{0%,to{opacity:.9;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}}@keyframes launch-veil{0%{opacity:1}94%{opacity:1}to{opacity:0}}@keyframes launch-room{0%{transform:scale(1.16) rotate(-2deg)}46%{transform:scale(1.04) rotate(0)}73%{transform:scale(1) rotate(0)}to{transform:scale(1.5) rotate(0)}}@keyframes launch-signals-out{0%,56%{opacity:1}78%{opacity:.1}to{opacity:0}}@keyframes launch-signal-pulse{0%{opacity:0;transform:translateZ(0) scale(.62);filter:blur(8px)}10%{opacity:.9;transform:translateZ(0) scale(1.08);filter:blur(0)}38%{opacity:.82;filter:blur(0)}66%{opacity:.34;transform:translate3d(var(--signal-drift-x),var(--signal-drift-y),0) scale(.82);filter:blur(3px)}to{opacity:0;transform:translate3d(var(--signal-drift-x),var(--signal-drift-y),0) scale(.5);filter:blur(7px)}}@keyframes launch-icon-stage{0%{opacity:1;transform:translate3d(-50%,-50%,0) scale(.92);filter:blur(0)}66%{opacity:1;transform:translate3d(-50%,-50%,0) scale(1);filter:blur(0)}86%{opacity:1;transform:translate3d(-50%,-50%,0) scale(1);filter:blur(0)}96%{opacity:1;transform:translate3d(-50%,-50%,0) scale(2.7);filter:blur(0)}to{opacity:0;transform:translate3d(-50%,-50%,0) scale(3.2);filter:blur(2px)}}@keyframes launch-tile-build{0%,48%{opacity:0;transform:scale(.86);filter:blur(10px)}62%{opacity:1;transform:scale(1);filter:blur(0)}to{opacity:1;transform:scale(1);filter:blur(0)}}@keyframes launch-icon-pattern{0%,50%{opacity:0;transform:scale(.96);filter:blur(8px)}64%{opacity:.96;transform:scale(1);filter:blur(0)}88%,to{opacity:1;transform:scale(1);filter:blur(0)}}@keyframes launch-connector-build{0%,46%{opacity:0;transform:translate3d(-50%,-50%,0) scale(.82);filter:blur(8px)}64%{opacity:1;transform:translate3d(-50%,-50%,0) scale(1);filter:blur(0)}88%,to{opacity:1;transform:translate3d(-50%,-50%,0) scale(1);filter:blur(0)}}@keyframes launch-copy{0%,54%{opacity:0;transform:translate(-50%) translateY(8px);filter:blur(4px)}64%,86%{opacity:1;transform:translate(-50%) translateY(0);filter:blur(0)}96%,to{opacity:0;transform:translate(-50%) translateY(-8px);filter:blur(3px)}}@keyframes launch-skip{0%,8%{opacity:0}16%,80%{opacity:.82}to{opacity:0}}@media(prefers-reduced-motion:reduce){.stay-shell,.stay-shell-locked,.stay-shell-locked .mode-panel-active{animation:none}.stay-shell:before{animation:none}.status-pill:before{animation:none}button,input{transition:none}.pin-code-slot,.pin-code-slot:before{transition:none}.launch-intro,.launch-intro__room,.launch-intro__signals,.launch-intro__signal,.launch-intro__icon-stage,.launch-intro__tile,.launch-intro__icon-pattern,.launch-intro__icon-mark,.launch-intro__connector,.launch-intro__copy,.launch-intro__skip{animation-duration:1.2s}} diff --git a/apps/desktop/dist/assets/index-BeymWJKf.js b/apps/desktop/dist/assets/index-BJlpxSLT.js similarity index 86% rename from apps/desktop/dist/assets/index-BeymWJKf.js rename to apps/desktop/dist/assets/index-BJlpxSLT.js index 0eb4a2d..d0fb281 100644 --- a/apps/desktop/dist/assets/index-BeymWJKf.js +++ b/apps/desktop/dist/assets/index-BJlpxSLT.js @@ -1,9 +1,9 @@ -(function(){const f=document.createElement("link").relList;if(f&&f.supports&&f.supports("modulepreload"))return;for(const E of document.querySelectorAll('link[rel="modulepreload"]'))o(E);new MutationObserver(E=>{for(const U of E)if(U.type==="childList")for(const H of U.addedNodes)H.tagName==="LINK"&&H.rel==="modulepreload"&&o(H)}).observe(document,{childList:!0,subtree:!0});function y(E){const U={};return E.integrity&&(U.integrity=E.integrity),E.referrerPolicy&&(U.referrerPolicy=E.referrerPolicy),E.crossOrigin==="use-credentials"?U.credentials="include":E.crossOrigin==="anonymous"?U.credentials="omit":U.credentials="same-origin",U}function o(E){if(E.ep)return;E.ep=!0;const U=y(E);fetch(E.href,U)}})();var pf={exports:{}},Ou={};var qd;function Hm(){if(qd)return Ou;qd=1;var s=Symbol.for("react.transitional.element"),f=Symbol.for("react.fragment");function y(o,E,U){var H=null;if(U!==void 0&&(H=""+U),E.key!==void 0&&(H=""+E.key),"key"in E){U={};for(var x in E)x!=="key"&&(U[x]=E[x])}else U=E;return E=U.ref,{$$typeof:s,type:o,key:H,ref:E!==void 0?E:null,props:U}}return Ou.Fragment=f,Ou.jsx=y,Ou.jsxs=y,Ou}var Yd;function wm(){return Yd||(Yd=1,pf.exports=Hm()),pf.exports}var N=wm();function xm(s,f,y,o){if(typeof f=="function"?s!==f||!o:!f.has(s))throw new TypeError("Cannot read private member from an object whose class did not declare it");return y==="m"?o:y==="a"?o.call(s):o?o.value:f.get(s)}function jm(s,f,y,o,E){if(typeof f=="function"?s!==f||!0:!f.has(s))throw new TypeError("Cannot write private member to an object whose class did not declare it");return f.set(s,y),y}var In;const Tt="__TAURI_TO_IPC_KEY__";function Bm(s,f=!1){return window.__TAURI_INTERNALS__.transformCallback(s,f)}async function M(s,f={},y){return window.__TAURI_INTERNALS__.invoke(s,f,y)}class qm{get rid(){return xm(this,In,"f")}constructor(f){In.set(this,void 0),jm(this,In,f)}async close(){return M("plugin:resources|close",{rid:this.rid})}}In=new WeakMap;function Ru(){return!!(globalThis||window).isTauri}class th{constructor(...f){this.type="Logical",f.length===1?"Logical"in f[0]?(this.width=f[0].Logical.width,this.height=f[0].Logical.height):(this.width=f[0].width,this.height=f[0].height):(this.width=f[0],this.height=f[1])}toPhysical(f){return new Du(this.width*f,this.height*f)}[Tt](){return{width:this.width,height:this.height}}toJSON(){return this[Tt]()}}class Du{constructor(...f){this.type="Physical",f.length===1?"Physical"in f[0]?(this.width=f[0].Physical.width,this.height=f[0].Physical.height):(this.width=f[0].width,this.height=f[0].height):(this.width=f[0],this.height=f[1])}toLogical(f){return new th(this.width/f,this.height/f)}[Tt](){return{width:this.width,height:this.height}}toJSON(){return this[Tt]()}}class Ua{constructor(f){this.size=f}toLogical(f){return this.size instanceof th?this.size:this.size.toLogical(f)}toPhysical(f){return this.size instanceof Du?this.size:this.size.toPhysical(f)}[Tt](){return{[`${this.size.type}`]:{width:this.size.width,height:this.size.height}}}toJSON(){return this[Tt]()}}class eh{constructor(...f){this.type="Logical",f.length===1?"Logical"in f[0]?(this.x=f[0].Logical.x,this.y=f[0].Logical.y):(this.x=f[0].x,this.y=f[0].y):(this.x=f[0],this.y=f[1])}toPhysical(f){return new Ae(this.x*f,this.y*f)}[Tt](){return{x:this.x,y:this.y}}toJSON(){return this[Tt]()}}class Ae{constructor(...f){this.type="Physical",f.length===1?"Physical"in f[0]?(this.x=f[0].Physical.x,this.y=f[0].Physical.y):(this.x=f[0].x,this.y=f[0].y):(this.x=f[0],this.y=f[1])}toLogical(f){return new eh(this.x/f,this.y/f)}[Tt](){return{x:this.x,y:this.y}}toJSON(){return this[Tt]()}}class Fn{constructor(f){this.position=f}toLogical(f){return this.position instanceof eh?this.position:this.position.toLogical(f)}toPhysical(f){return this.position instanceof Ae?this.position:this.position.toPhysical(f)}[Tt](){return{[`${this.position.type}`]:{x:this.position.x,y:this.position.y}}}toJSON(){return this[Tt]()}}var rt;(function(s){s.WINDOW_RESIZED="tauri://resize",s.WINDOW_MOVED="tauri://move",s.WINDOW_CLOSE_REQUESTED="tauri://close-requested",s.WINDOW_DESTROYED="tauri://destroyed",s.WINDOW_FOCUS="tauri://focus",s.WINDOW_BLUR="tauri://blur",s.WINDOW_SCALE_FACTOR_CHANGED="tauri://scale-change",s.WINDOW_THEME_CHANGED="tauri://theme-changed",s.WINDOW_CREATED="tauri://window-created",s.WINDOW_SUSPENDED="tauri://suspended",s.WINDOW_RESUMED="tauri://resumed",s.WEBVIEW_CREATED="tauri://webview-created",s.DRAG_ENTER="tauri://drag-enter",s.DRAG_OVER="tauri://drag-over",s.DRAG_DROP="tauri://drag-drop",s.DRAG_LEAVE="tauri://drag-leave"})(rt||(rt={}));async function ah(s,f){window.__TAURI_EVENT_PLUGIN_INTERNALS__.unregisterListener(s,f),await M("plugin:event|unlisten",{event:s,eventId:f})}async function Cf(s,f,y){var o;const E=typeof y?.target=="string"?{kind:"AnyLabel",label:y.target}:(o=y?.target)!==null&&o!==void 0?o:{kind:"Any"};return M("plugin:event|listen",{event:s,target:E,handler:Bm(f)}).then(U=>async()=>ah(s,U))}async function Ym(s,f,y){return Cf(s,o=>{ah(s,o.id),f(o)},y)}async function Gm(s,f){await M("plugin:event|emit",{event:s,payload:f})}async function Qm(s,f,y){await M("plugin:event|emit_to",{target:typeof s=="string"?{kind:"AnyLabel",label:s}:s,event:f,payload:y})}class Nu extends qm{constructor(f){super(f)}static async new(f,y,o){return M("plugin:image|new",{rgba:Pn(f),width:y,height:o}).then(E=>new Nu(E))}static async fromBytes(f){return M("plugin:image|from_bytes",{bytes:Pn(f)}).then(y=>new Nu(y))}static async fromPath(f){return M("plugin:image|from_path",{path:f}).then(y=>new Nu(y))}async rgba(){return M("plugin:image|rgba",{rid:this.rid}).then(f=>new Uint8Array(f))}async size(){return M("plugin:image|size",{rid:this.rid})}}function Pn(s){return s==null?null:typeof s=="string"?s:s instanceof Nu?s.rid:s}var Rf;(function(s){s[s.Critical=1]="Critical",s[s.Informational=2]="Informational"})(Rf||(Rf={}));class Xm{constructor(f){this._preventDefault=!1,this.event=f.event,this.id=f.id}preventDefault(){this._preventDefault=!0}isPreventDefault(){return this._preventDefault}}var Gd;(function(s){s.None="none",s.Normal="normal",s.Indeterminate="indeterminate",s.Paused="paused",s.Error="error"})(Gd||(Gd={}));function Hf(){return new uh(window.__TAURI_INTERNALS__.metadata.currentWindow.label,{skip:!0})}async function _f(){return M("plugin:window|get_all_windows").then(s=>s.map(f=>new uh(f,{skip:!0})))}const Tf=["tauri://created","tauri://error"];class uh{constructor(f,y={}){var o;this.label=f,this.listeners=Object.create(null),y?.skip||M("plugin:window|create",{options:{...y,parent:typeof y.parent=="string"?y.parent:(o=y.parent)===null||o===void 0?void 0:o.label,label:f}}).then(async()=>this.emit("tauri://created")).catch(async E=>this.emit("tauri://error",E))}static async getByLabel(f){var y;return(y=(await _f()).find(o=>o.label===f))!==null&&y!==void 0?y:null}static getCurrent(){return Hf()}static async getAll(){return _f()}static async getFocusedWindow(){for(const f of await _f())if(await f.isFocused())return f;return null}async listen(f,y){return this._handleTauriEvent(f,y)?()=>{const o=this.listeners[f];o.splice(o.indexOf(y),1)}:Cf(f,y,{target:{kind:"Window",label:this.label}})}async once(f,y){return this._handleTauriEvent(f,y)?()=>{const o=this.listeners[f];o.splice(o.indexOf(y),1)}:Ym(f,y,{target:{kind:"Window",label:this.label}})}async emit(f,y){if(Tf.includes(f)){for(const o of this.listeners[f]||[])o({event:f,id:-1,payload:y});return}return Gm(f,y)}async emitTo(f,y,o){if(Tf.includes(y)){for(const E of this.listeners[y]||[])E({event:y,id:-1,payload:o});return}return Qm(f,y,o)}_handleTauriEvent(f,y){return Tf.includes(f)?(f in this.listeners?this.listeners[f].push(y):this.listeners[f]=[y],!0):!1}async scaleFactor(){return M("plugin:window|scale_factor",{label:this.label})}async innerPosition(){return M("plugin:window|inner_position",{label:this.label}).then(f=>new Ae(f))}async outerPosition(){return M("plugin:window|outer_position",{label:this.label}).then(f=>new Ae(f))}async innerSize(){return M("plugin:window|inner_size",{label:this.label}).then(f=>new Du(f))}async outerSize(){return M("plugin:window|outer_size",{label:this.label}).then(f=>new Du(f))}async isFullscreen(){return M("plugin:window|is_fullscreen",{label:this.label})}async isMinimized(){return M("plugin:window|is_minimized",{label:this.label})}async isMaximized(){return M("plugin:window|is_maximized",{label:this.label})}async isFocused(){return M("plugin:window|is_focused",{label:this.label})}async isDecorated(){return M("plugin:window|is_decorated",{label:this.label})}async isResizable(){return M("plugin:window|is_resizable",{label:this.label})}async isMaximizable(){return M("plugin:window|is_maximizable",{label:this.label})}async isMinimizable(){return M("plugin:window|is_minimizable",{label:this.label})}async isClosable(){return M("plugin:window|is_closable",{label:this.label})}async isVisible(){return M("plugin:window|is_visible",{label:this.label})}async title(){return M("plugin:window|title",{label:this.label})}async theme(){return M("plugin:window|theme",{label:this.label})}async isAlwaysOnTop(){return M("plugin:window|is_always_on_top",{label:this.label})}async activityName(){return M("plugin:window|activity_name",{label:this.label})}async sceneIdentifier(){return M("plugin:window|scene_identifier",{label:this.label})}async center(){return M("plugin:window|center",{label:this.label})}async requestUserAttention(f){let y=null;return f&&(f===Rf.Critical?y={type:"Critical"}:y={type:"Informational"}),M("plugin:window|request_user_attention",{label:this.label,value:y})}async setResizable(f){return M("plugin:window|set_resizable",{label:this.label,value:f})}async setEnabled(f){return M("plugin:window|set_enabled",{label:this.label,value:f})}async isEnabled(){return M("plugin:window|is_enabled",{label:this.label})}async setMaximizable(f){return M("plugin:window|set_maximizable",{label:this.label,value:f})}async setMinimizable(f){return M("plugin:window|set_minimizable",{label:this.label,value:f})}async setClosable(f){return M("plugin:window|set_closable",{label:this.label,value:f})}async setTitle(f){return M("plugin:window|set_title",{label:this.label,value:f})}async maximize(){return M("plugin:window|maximize",{label:this.label})}async unmaximize(){return M("plugin:window|unmaximize",{label:this.label})}async toggleMaximize(){return M("plugin:window|toggle_maximize",{label:this.label})}async minimize(){return M("plugin:window|minimize",{label:this.label})}async unminimize(){return M("plugin:window|unminimize",{label:this.label})}async show(){return M("plugin:window|show",{label:this.label})}async hide(){return M("plugin:window|hide",{label:this.label})}async close(){return M("plugin:window|close",{label:this.label})}async destroy(){return M("plugin:window|destroy",{label:this.label})}async setDecorations(f){return M("plugin:window|set_decorations",{label:this.label,value:f})}async setShadow(f){return M("plugin:window|set_shadow",{label:this.label,value:f})}async setEffects(f){return M("plugin:window|set_effects",{label:this.label,value:f})}async clearEffects(){return M("plugin:window|set_effects",{label:this.label,value:null})}async setAlwaysOnTop(f){return M("plugin:window|set_always_on_top",{label:this.label,value:f})}async setAlwaysOnBottom(f){return M("plugin:window|set_always_on_bottom",{label:this.label,value:f})}async setContentProtected(f){return M("plugin:window|set_content_protected",{label:this.label,value:f})}async setSize(f){return M("plugin:window|set_size",{label:this.label,value:f instanceof Ua?f:new Ua(f)})}async setMinSize(f){return M("plugin:window|set_min_size",{label:this.label,value:f instanceof Ua?f:f?new Ua(f):null})}async setMaxSize(f){return M("plugin:window|set_max_size",{label:this.label,value:f instanceof Ua?f:f?new Ua(f):null})}async setSizeConstraints(f){function y(o){return o?{Logical:o}:null}return M("plugin:window|set_size_constraints",{label:this.label,value:{minWidth:y(f?.minWidth),minHeight:y(f?.minHeight),maxWidth:y(f?.maxWidth),maxHeight:y(f?.maxHeight)}})}async setPosition(f){return M("plugin:window|set_position",{label:this.label,value:f instanceof Fn?f:new Fn(f)})}async setFullscreen(f){return M("plugin:window|set_fullscreen",{label:this.label,value:f})}async setSimpleFullscreen(f){return M("plugin:window|set_simple_fullscreen",{label:this.label,value:f})}async setFocus(){return M("plugin:window|set_focus",{label:this.label})}async setFocusable(f){return M("plugin:window|set_focusable",{label:this.label,value:f})}async setIcon(f){return M("plugin:window|set_icon",{label:this.label,value:Pn(f)})}async setSkipTaskbar(f){return M("plugin:window|set_skip_taskbar",{label:this.label,value:f})}async setCursorGrab(f){return M("plugin:window|set_cursor_grab",{label:this.label,value:f})}async setCursorVisible(f){return M("plugin:window|set_cursor_visible",{label:this.label,value:f})}async setCursorIcon(f){return M("plugin:window|set_cursor_icon",{label:this.label,value:f})}async setBackgroundColor(f){return M("plugin:window|set_background_color",{color:f})}async setCursorPosition(f){return M("plugin:window|set_cursor_position",{label:this.label,value:f instanceof Fn?f:new Fn(f)})}async setIgnoreCursorEvents(f){return M("plugin:window|set_ignore_cursor_events",{label:this.label,value:f})}async startDragging(){return M("plugin:window|start_dragging",{label:this.label})}async startResizeDragging(f){return M("plugin:window|start_resize_dragging",{label:this.label,value:f})}async setBadgeCount(f){return M("plugin:window|set_badge_count",{label:this.label,value:f})}async setBadgeLabel(f){return M("plugin:window|set_badge_label",{label:this.label,value:f})}async setOverlayIcon(f){return M("plugin:window|set_overlay_icon",{label:this.label,value:f?Pn(f):void 0})}async setProgressBar(f){return M("plugin:window|set_progress_bar",{label:this.label,value:f})}async setVisibleOnAllWorkspaces(f){return M("plugin:window|set_visible_on_all_workspaces",{label:this.label,value:f})}async setTitleBarStyle(f){return M("plugin:window|set_title_bar_style",{label:this.label,value:f})}async setTheme(f){return M("plugin:window|set_theme",{label:this.label,value:f})}async onResized(f){return this.listen(rt.WINDOW_RESIZED,y=>{y.payload=new Du(y.payload),f(y)})}async onMoved(f){return this.listen(rt.WINDOW_MOVED,y=>{y.payload=new Ae(y.payload),f(y)})}async onCloseRequested(f){return this.listen(rt.WINDOW_CLOSE_REQUESTED,async y=>{const o=new Xm(y);await f(o),o.isPreventDefault()||await this.destroy()})}async onDragDropEvent(f){const y=await this.listen(rt.DRAG_ENTER,H=>{f({...H,payload:{type:"enter",paths:H.payload.paths,position:new Ae(H.payload.position)}})}),o=await this.listen(rt.DRAG_OVER,H=>{f({...H,payload:{type:"over",position:new Ae(H.payload.position)}})}),E=await this.listen(rt.DRAG_DROP,H=>{f({...H,payload:{type:"drop",paths:H.payload.paths,position:new Ae(H.payload.position)}})}),U=await this.listen(rt.DRAG_LEAVE,H=>{f({...H,payload:{type:"leave"}})});return()=>{y(),E(),o(),U()}}async onFocusChanged(f){const y=await this.listen(rt.WINDOW_FOCUS,E=>{f({...E,payload:!0})}),o=await this.listen(rt.WINDOW_BLUR,E=>{f({...E,payload:!1})});return()=>{y(),o()}}async onScaleChanged(f){return this.listen(rt.WINDOW_SCALE_FACTOR_CHANGED,f)}async onThemeChanged(f){return this.listen(rt.WINDOW_THEME_CHANGED,f)}}var Qd;(function(s){s.Disabled="disabled",s.Throttle="throttle",s.Suspend="suspend"})(Qd||(Qd={}));var Xd;(function(s){s.Default="default",s.FluentOverlay="fluentOverlay"})(Xd||(Xd={}));var Ld;(function(s){s.AppearanceBased="appearanceBased",s.Light="light",s.Dark="dark",s.MediumLight="mediumLight",s.UltraDark="ultraDark",s.Titlebar="titlebar",s.Selection="selection",s.Menu="menu",s.Popover="popover",s.Sidebar="sidebar",s.HeaderView="headerView",s.Sheet="sheet",s.WindowBackground="windowBackground",s.HudWindow="hudWindow",s.FullScreenUI="fullScreenUI",s.Tooltip="tooltip",s.ContentBackground="contentBackground",s.UnderWindowBackground="underWindowBackground",s.UnderPageBackground="underPageBackground",s.Mica="mica",s.Blur="blur",s.Acrylic="acrylic",s.Tabbed="tabbed",s.TabbedDark="tabbedDark",s.TabbedLight="tabbedLight"})(Ld||(Ld={}));var Vd;(function(s){s.FollowsWindowActiveState="followsWindowActiveState",s.Active="active",s.Inactive="inactive"})(Vd||(Vd={}));var zf={exports:{}},X={};var Zd;function Lm(){if(Zd)return X;Zd=1;var s=Symbol.for("react.transitional.element"),f=Symbol.for("react.portal"),y=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),E=Symbol.for("react.profiler"),U=Symbol.for("react.consumer"),H=Symbol.for("react.context"),x=Symbol.for("react.forward_ref"),D=Symbol.for("react.suspense"),p=Symbol.for("react.memo"),K=Symbol.for("react.lazy"),q=Symbol.for("react.activity"),ll=Symbol.iterator;function Ul(h){return h===null||typeof h!="object"?null:(h=ll&&h[ll]||h["@@iterator"],typeof h=="function"?h:null)}var pl={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},yl=Object.assign,lt={};function Ql(h,O,C){this.props=h,this.context=O,this.refs=lt,this.updater=C||pl}Ql.prototype.isReactComponent={},Ql.prototype.setState=function(h,O){if(typeof h!="object"&&typeof h!="function"&&h!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,h,O,"setState")},Ql.prototype.forceUpdate=function(h){this.updater.enqueueForceUpdate(this,h,"forceUpdate")};function _l(){}_l.prototype=Ql.prototype;function Tl(h,O,C){this.props=h,this.context=O,this.refs=lt,this.updater=C||pl}var nl=Tl.prototype=new _l;nl.constructor=Tl,yl(nl,Ql.prototype),nl.isPureReactComponent=!0;var Mt=Array.isArray;function Vl(){}var I={H:null,A:null,T:null,S:null},Zl=Object.prototype.hasOwnProperty;function Dt(h,O,C){var j=C.ref;return{$$typeof:s,type:h,key:O,ref:j!==void 0?j:null,props:C}}function Ze(h,O){return Dt(h.type,O,h.props)}function Nt(h){return typeof h=="object"&&h!==null&&h.$$typeof===s}function Kl(h){var O={"=":"=0",":":"=2"};return"$"+h.replace(/[=:]/g,function(C){return O[C]})}var Ee=/\/+/g;function wt(h,O){return typeof h=="object"&&h!==null&&h.key!=null?Kl(""+h.key):O.toString(36)}function zt(h){switch(h.status){case"fulfilled":return h.value;case"rejected":throw h.reason;default:switch(typeof h.status=="string"?h.then(Vl,Vl):(h.status="pending",h.then(function(O){h.status==="pending"&&(h.status="fulfilled",h.value=O)},function(O){h.status==="pending"&&(h.status="rejected",h.reason=O)})),h.status){case"fulfilled":return h.value;case"rejected":throw h.reason}}throw h}function T(h,O,C,j,L){var J=typeof h;(J==="undefined"||J==="boolean")&&(h=null);var ul=!1;if(h===null)ul=!0;else switch(J){case"bigint":case"string":case"number":ul=!0;break;case"object":switch(h.$$typeof){case s:case f:ul=!0;break;case K:return ul=h._init,T(ul(h._payload),O,C,j,L)}}if(ul)return L=L(h),ul=j===""?"."+wt(h,0):j,Mt(L)?(C="",ul!=null&&(C=ul.replace(Ee,"$&/")+"/"),T(L,O,C,"",function(Ha){return Ha})):L!=null&&(Nt(L)&&(L=Ze(L,C+(L.key==null||h&&h.key===L.key?"":(""+L.key).replace(Ee,"$&/")+"/")+ul)),O.push(L)),1;ul=0;var Xl=j===""?".":j+":";if(Mt(h))for(var zl=0;zl>>1,dl=T[fl];if(0>>1;flE(C,Q))jE(L,C)?(T[fl]=L,T[j]=Q,fl=j):(T[fl]=C,T[O]=Q,fl=O);else if(jE(L,Q))T[fl]=L,T[j]=Q,fl=j;else break l}}return R}function E(T,R){var Q=T.sortIndex-R.sortIndex;return Q!==0?Q:T.id-R.id}if(s.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var U=performance;s.unstable_now=function(){return U.now()}}else{var H=Date,x=H.now();s.unstable_now=function(){return H.now()-x}}var D=[],p=[],K=1,q=null,ll=3,Ul=!1,pl=!1,yl=!1,lt=!1,Ql=typeof setTimeout=="function"?setTimeout:null,_l=typeof clearTimeout=="function"?clearTimeout:null,Tl=typeof setImmediate<"u"?setImmediate:null;function nl(T){for(var R=y(p);R!==null;){if(R.callback===null)o(p);else if(R.startTime<=T)o(p),R.sortIndex=R.expirationTime,f(D,R);else break;R=y(p)}}function Mt(T){if(yl=!1,nl(T),!pl)if(y(D)!==null)pl=!0,Vl||(Vl=!0,Kl());else{var R=y(p);R!==null&&zt(Mt,R.startTime-T)}}var Vl=!1,I=-1,Zl=5,Dt=-1;function Ze(){return lt?!0:!(s.unstable_now()-DtT&&Ze());){var fl=q.callback;if(typeof fl=="function"){q.callback=null,ll=q.priorityLevel;var dl=fl(q.expirationTime<=T);if(T=s.unstable_now(),typeof dl=="function"){q.callback=dl,nl(T),R=!0;break t}q===y(D)&&o(D),nl(T)}else o(D);q=y(D)}if(q!==null)R=!0;else{var h=y(p);h!==null&&zt(Mt,h.startTime-T),R=!1}}break l}finally{q=null,ll=Q,Ul=!1}R=void 0}}finally{R?Kl():Vl=!1}}}var Kl;if(typeof Tl=="function")Kl=function(){Tl(Nt)};else if(typeof MessageChannel<"u"){var Ee=new MessageChannel,wt=Ee.port2;Ee.port1.onmessage=Nt,Kl=function(){wt.postMessage(null)}}else Kl=function(){Ql(Nt,0)};function zt(T,R){I=Ql(function(){T(s.unstable_now())},R)}s.unstable_IdlePriority=5,s.unstable_ImmediatePriority=1,s.unstable_LowPriority=4,s.unstable_NormalPriority=3,s.unstable_Profiling=null,s.unstable_UserBlockingPriority=2,s.unstable_cancelCallback=function(T){T.callback=null},s.unstable_forceFrameRate=function(T){0>T||125fl?(T.sortIndex=Q,f(p,T),y(D)===null&&T===y(p)&&(yl?(_l(I),I=-1):yl=!0,zt(Mt,Q-fl))):(T.sortIndex=dl,f(D,T),pl||Ul||(pl=!0,Vl||(Vl=!0,Kl()))),T},s.unstable_shouldYield=Ze,s.unstable_wrapCallback=function(T){var R=ll;return function(){var Q=ll;ll=R;try{return T.apply(this,arguments)}finally{ll=Q}}}})(Of)),Of}var Wd;function Zm(){return Wd||(Wd=1,Ef.exports=Vm()),Ef.exports}var Mf={exports:{}},Gl={};var $d;function Km(){if($d)return Gl;$d=1;var s=wf();function f(D){var p="https://react.dev/errors/"+D;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(s)}catch(f){console.error(f)}}return s(),Mf.exports=Km(),Mf.exports}var Fd;function Wm(){if(Fd)return Mu;Fd=1;var s=Zm(),f=wf(),y=Jm();function o(l){var t="https://react.dev/errors/"+l;if(1dl||(l.current=fl[dl],fl[dl]=null,dl--)}function C(l,t){dl++,fl[dl]=l.current,l.current=t}var j=h(null),L=h(null),J=h(null),ul=h(null);function Xl(l,t){switch(C(J,t),C(L,l),C(j,null),t.nodeType){case 9:case 11:l=(l=t.documentElement)&&(l=l.namespaceURI)?cd(l):0;break;default:if(l=t.tagName,t=t.namespaceURI)t=cd(t),l=fd(t,l);else switch(l){case"svg":l=1;break;case"math":l=2;break;default:l=0}}O(j),C(j,l)}function zl(){O(j),O(L),O(J)}function Ha(l){l.memoizedState!==null&&C(ul,l);var t=j.current,e=fd(t,l.type);t!==e&&(C(L,l),C(j,e))}function Cu(l){L.current===l&&(O(j),O(L)),ul.current===l&&(O(ul),Tu._currentValue=Q)}var ti,jf;function Oe(l){if(ti===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);ti=t&&t[1]||"",jf=-1{for(const U of E)if(U.type==="childList")for(const H of U.addedNodes)H.tagName==="LINK"&&H.rel==="modulepreload"&&o(H)}).observe(document,{childList:!0,subtree:!0});function y(E){const U={};return E.integrity&&(U.integrity=E.integrity),E.referrerPolicy&&(U.referrerPolicy=E.referrerPolicy),E.crossOrigin==="use-credentials"?U.credentials="include":E.crossOrigin==="anonymous"?U.credentials="omit":U.credentials="same-origin",U}function o(E){if(E.ep)return;E.ep=!0;const U=y(E);fetch(E.href,U)}})();var pf={exports:{}},Ou={};var qd;function Hm(){if(qd)return Ou;qd=1;var s=Symbol.for("react.transitional.element"),f=Symbol.for("react.fragment");function y(o,E,U){var H=null;if(U!==void 0&&(H=""+U),E.key!==void 0&&(H=""+E.key),"key"in E){U={};for(var x in E)x!=="key"&&(U[x]=E[x])}else U=E;return E=U.ref,{$$typeof:s,type:o,key:H,ref:E!==void 0?E:null,props:U}}return Ou.Fragment=f,Ou.jsx=y,Ou.jsxs=y,Ou}var Yd;function wm(){return Yd||(Yd=1,pf.exports=Hm()),pf.exports}var N=wm();function xm(s,f,y,o){if(typeof f=="function"?s!==f||!o:!f.has(s))throw new TypeError("Cannot read private member from an object whose class did not declare it");return y==="m"?o:y==="a"?o.call(s):o?o.value:f.get(s)}function jm(s,f,y,o,E){if(typeof f=="function"?s!==f||!0:!f.has(s))throw new TypeError("Cannot write private member to an object whose class did not declare it");return f.set(s,y),y}var In;const Tt="__TAURI_TO_IPC_KEY__";function Bm(s,f=!1){return window.__TAURI_INTERNALS__.transformCallback(s,f)}async function M(s,f={},y){return window.__TAURI_INTERNALS__.invoke(s,f,y)}class qm{get rid(){return xm(this,In,"f")}constructor(f){In.set(this,void 0),jm(this,In,f)}async close(){return M("plugin:resources|close",{rid:this.rid})}}In=new WeakMap;function Ru(){return!!(globalThis||window).isTauri}class th{constructor(...f){this.type="Logical",f.length===1?"Logical"in f[0]?(this.width=f[0].Logical.width,this.height=f[0].Logical.height):(this.width=f[0].width,this.height=f[0].height):(this.width=f[0],this.height=f[1])}toPhysical(f){return new Du(this.width*f,this.height*f)}[Tt](){return{width:this.width,height:this.height}}toJSON(){return this[Tt]()}}class Du{constructor(...f){this.type="Physical",f.length===1?"Physical"in f[0]?(this.width=f[0].Physical.width,this.height=f[0].Physical.height):(this.width=f[0].width,this.height=f[0].height):(this.width=f[0],this.height=f[1])}toLogical(f){return new th(this.width/f,this.height/f)}[Tt](){return{width:this.width,height:this.height}}toJSON(){return this[Tt]()}}class Ua{constructor(f){this.size=f}toLogical(f){return this.size instanceof th?this.size:this.size.toLogical(f)}toPhysical(f){return this.size instanceof Du?this.size:this.size.toPhysical(f)}[Tt](){return{[`${this.size.type}`]:{width:this.size.width,height:this.size.height}}}toJSON(){return this[Tt]()}}class eh{constructor(...f){this.type="Logical",f.length===1?"Logical"in f[0]?(this.x=f[0].Logical.x,this.y=f[0].Logical.y):(this.x=f[0].x,this.y=f[0].y):(this.x=f[0],this.y=f[1])}toPhysical(f){return new Ae(this.x*f,this.y*f)}[Tt](){return{x:this.x,y:this.y}}toJSON(){return this[Tt]()}}class Ae{constructor(...f){this.type="Physical",f.length===1?"Physical"in f[0]?(this.x=f[0].Physical.x,this.y=f[0].Physical.y):(this.x=f[0].x,this.y=f[0].y):(this.x=f[0],this.y=f[1])}toLogical(f){return new eh(this.x/f,this.y/f)}[Tt](){return{x:this.x,y:this.y}}toJSON(){return this[Tt]()}}class Fn{constructor(f){this.position=f}toLogical(f){return this.position instanceof eh?this.position:this.position.toLogical(f)}toPhysical(f){return this.position instanceof Ae?this.position:this.position.toPhysical(f)}[Tt](){return{[`${this.position.type}`]:{x:this.position.x,y:this.position.y}}}toJSON(){return this[Tt]()}}var rt;(function(s){s.WINDOW_RESIZED="tauri://resize",s.WINDOW_MOVED="tauri://move",s.WINDOW_CLOSE_REQUESTED="tauri://close-requested",s.WINDOW_DESTROYED="tauri://destroyed",s.WINDOW_FOCUS="tauri://focus",s.WINDOW_BLUR="tauri://blur",s.WINDOW_SCALE_FACTOR_CHANGED="tauri://scale-change",s.WINDOW_THEME_CHANGED="tauri://theme-changed",s.WINDOW_CREATED="tauri://window-created",s.WINDOW_SUSPENDED="tauri://suspended",s.WINDOW_RESUMED="tauri://resumed",s.WEBVIEW_CREATED="tauri://webview-created",s.DRAG_ENTER="tauri://drag-enter",s.DRAG_OVER="tauri://drag-over",s.DRAG_DROP="tauri://drag-drop",s.DRAG_LEAVE="tauri://drag-leave"})(rt||(rt={}));async function ah(s,f){window.__TAURI_EVENT_PLUGIN_INTERNALS__.unregisterListener(s,f),await M("plugin:event|unlisten",{event:s,eventId:f})}async function Cf(s,f,y){var o;const E=typeof y?.target=="string"?{kind:"AnyLabel",label:y.target}:(o=y?.target)!==null&&o!==void 0?o:{kind:"Any"};return M("plugin:event|listen",{event:s,target:E,handler:Bm(f)}).then(U=>async()=>ah(s,U))}async function Ym(s,f,y){return Cf(s,o=>{ah(s,o.id),f(o)},y)}async function Gm(s,f){await M("plugin:event|emit",{event:s,payload:f})}async function Qm(s,f,y){await M("plugin:event|emit_to",{target:typeof s=="string"?{kind:"AnyLabel",label:s}:s,event:f,payload:y})}class Nu extends qm{constructor(f){super(f)}static async new(f,y,o){return M("plugin:image|new",{rgba:Pn(f),width:y,height:o}).then(E=>new Nu(E))}static async fromBytes(f){return M("plugin:image|from_bytes",{bytes:Pn(f)}).then(y=>new Nu(y))}static async fromPath(f){return M("plugin:image|from_path",{path:f}).then(y=>new Nu(y))}async rgba(){return M("plugin:image|rgba",{rid:this.rid}).then(f=>new Uint8Array(f))}async size(){return M("plugin:image|size",{rid:this.rid})}}function Pn(s){return s==null?null:typeof s=="string"?s:s instanceof Nu?s.rid:s}var Rf;(function(s){s[s.Critical=1]="Critical",s[s.Informational=2]="Informational"})(Rf||(Rf={}));class Xm{constructor(f){this._preventDefault=!1,this.event=f.event,this.id=f.id}preventDefault(){this._preventDefault=!0}isPreventDefault(){return this._preventDefault}}var Gd;(function(s){s.None="none",s.Normal="normal",s.Indeterminate="indeterminate",s.Paused="paused",s.Error="error"})(Gd||(Gd={}));function Hf(){return new uh(window.__TAURI_INTERNALS__.metadata.currentWindow.label,{skip:!0})}async function _f(){return M("plugin:window|get_all_windows").then(s=>s.map(f=>new uh(f,{skip:!0})))}const Tf=["tauri://created","tauri://error"];class uh{constructor(f,y={}){var o;this.label=f,this.listeners=Object.create(null),y?.skip||M("plugin:window|create",{options:{...y,parent:typeof y.parent=="string"?y.parent:(o=y.parent)===null||o===void 0?void 0:o.label,label:f}}).then(async()=>this.emit("tauri://created")).catch(async E=>this.emit("tauri://error",E))}static async getByLabel(f){var y;return(y=(await _f()).find(o=>o.label===f))!==null&&y!==void 0?y:null}static getCurrent(){return Hf()}static async getAll(){return _f()}static async getFocusedWindow(){for(const f of await _f())if(await f.isFocused())return f;return null}async listen(f,y){return this._handleTauriEvent(f,y)?()=>{const o=this.listeners[f];o.splice(o.indexOf(y),1)}:Cf(f,y,{target:{kind:"Window",label:this.label}})}async once(f,y){return this._handleTauriEvent(f,y)?()=>{const o=this.listeners[f];o.splice(o.indexOf(y),1)}:Ym(f,y,{target:{kind:"Window",label:this.label}})}async emit(f,y){if(Tf.includes(f)){for(const o of this.listeners[f]||[])o({event:f,id:-1,payload:y});return}return Gm(f,y)}async emitTo(f,y,o){if(Tf.includes(y)){for(const E of this.listeners[y]||[])E({event:y,id:-1,payload:o});return}return Qm(f,y,o)}_handleTauriEvent(f,y){return Tf.includes(f)?(f in this.listeners?this.listeners[f].push(y):this.listeners[f]=[y],!0):!1}async scaleFactor(){return M("plugin:window|scale_factor",{label:this.label})}async innerPosition(){return M("plugin:window|inner_position",{label:this.label}).then(f=>new Ae(f))}async outerPosition(){return M("plugin:window|outer_position",{label:this.label}).then(f=>new Ae(f))}async innerSize(){return M("plugin:window|inner_size",{label:this.label}).then(f=>new Du(f))}async outerSize(){return M("plugin:window|outer_size",{label:this.label}).then(f=>new Du(f))}async isFullscreen(){return M("plugin:window|is_fullscreen",{label:this.label})}async isMinimized(){return M("plugin:window|is_minimized",{label:this.label})}async isMaximized(){return M("plugin:window|is_maximized",{label:this.label})}async isFocused(){return M("plugin:window|is_focused",{label:this.label})}async isDecorated(){return M("plugin:window|is_decorated",{label:this.label})}async isResizable(){return M("plugin:window|is_resizable",{label:this.label})}async isMaximizable(){return M("plugin:window|is_maximizable",{label:this.label})}async isMinimizable(){return M("plugin:window|is_minimizable",{label:this.label})}async isClosable(){return M("plugin:window|is_closable",{label:this.label})}async isVisible(){return M("plugin:window|is_visible",{label:this.label})}async title(){return M("plugin:window|title",{label:this.label})}async theme(){return M("plugin:window|theme",{label:this.label})}async isAlwaysOnTop(){return M("plugin:window|is_always_on_top",{label:this.label})}async activityName(){return M("plugin:window|activity_name",{label:this.label})}async sceneIdentifier(){return M("plugin:window|scene_identifier",{label:this.label})}async center(){return M("plugin:window|center",{label:this.label})}async requestUserAttention(f){let y=null;return f&&(f===Rf.Critical?y={type:"Critical"}:y={type:"Informational"}),M("plugin:window|request_user_attention",{label:this.label,value:y})}async setResizable(f){return M("plugin:window|set_resizable",{label:this.label,value:f})}async setEnabled(f){return M("plugin:window|set_enabled",{label:this.label,value:f})}async isEnabled(){return M("plugin:window|is_enabled",{label:this.label})}async setMaximizable(f){return M("plugin:window|set_maximizable",{label:this.label,value:f})}async setMinimizable(f){return M("plugin:window|set_minimizable",{label:this.label,value:f})}async setClosable(f){return M("plugin:window|set_closable",{label:this.label,value:f})}async setTitle(f){return M("plugin:window|set_title",{label:this.label,value:f})}async maximize(){return M("plugin:window|maximize",{label:this.label})}async unmaximize(){return M("plugin:window|unmaximize",{label:this.label})}async toggleMaximize(){return M("plugin:window|toggle_maximize",{label:this.label})}async minimize(){return M("plugin:window|minimize",{label:this.label})}async unminimize(){return M("plugin:window|unminimize",{label:this.label})}async show(){return M("plugin:window|show",{label:this.label})}async hide(){return M("plugin:window|hide",{label:this.label})}async close(){return M("plugin:window|close",{label:this.label})}async destroy(){return M("plugin:window|destroy",{label:this.label})}async setDecorations(f){return M("plugin:window|set_decorations",{label:this.label,value:f})}async setShadow(f){return M("plugin:window|set_shadow",{label:this.label,value:f})}async setEffects(f){return M("plugin:window|set_effects",{label:this.label,value:f})}async clearEffects(){return M("plugin:window|set_effects",{label:this.label,value:null})}async setAlwaysOnTop(f){return M("plugin:window|set_always_on_top",{label:this.label,value:f})}async setAlwaysOnBottom(f){return M("plugin:window|set_always_on_bottom",{label:this.label,value:f})}async setContentProtected(f){return M("plugin:window|set_content_protected",{label:this.label,value:f})}async setSize(f){return M("plugin:window|set_size",{label:this.label,value:f instanceof Ua?f:new Ua(f)})}async setMinSize(f){return M("plugin:window|set_min_size",{label:this.label,value:f instanceof Ua?f:f?new Ua(f):null})}async setMaxSize(f){return M("plugin:window|set_max_size",{label:this.label,value:f instanceof Ua?f:f?new Ua(f):null})}async setSizeConstraints(f){function y(o){return o?{Logical:o}:null}return M("plugin:window|set_size_constraints",{label:this.label,value:{minWidth:y(f?.minWidth),minHeight:y(f?.minHeight),maxWidth:y(f?.maxWidth),maxHeight:y(f?.maxHeight)}})}async setPosition(f){return M("plugin:window|set_position",{label:this.label,value:f instanceof Fn?f:new Fn(f)})}async setFullscreen(f){return M("plugin:window|set_fullscreen",{label:this.label,value:f})}async setSimpleFullscreen(f){return M("plugin:window|set_simple_fullscreen",{label:this.label,value:f})}async setFocus(){return M("plugin:window|set_focus",{label:this.label})}async setFocusable(f){return M("plugin:window|set_focusable",{label:this.label,value:f})}async setIcon(f){return M("plugin:window|set_icon",{label:this.label,value:Pn(f)})}async setSkipTaskbar(f){return M("plugin:window|set_skip_taskbar",{label:this.label,value:f})}async setCursorGrab(f){return M("plugin:window|set_cursor_grab",{label:this.label,value:f})}async setCursorVisible(f){return M("plugin:window|set_cursor_visible",{label:this.label,value:f})}async setCursorIcon(f){return M("plugin:window|set_cursor_icon",{label:this.label,value:f})}async setBackgroundColor(f){return M("plugin:window|set_background_color",{color:f})}async setCursorPosition(f){return M("plugin:window|set_cursor_position",{label:this.label,value:f instanceof Fn?f:new Fn(f)})}async setIgnoreCursorEvents(f){return M("plugin:window|set_ignore_cursor_events",{label:this.label,value:f})}async startDragging(){return M("plugin:window|start_dragging",{label:this.label})}async startResizeDragging(f){return M("plugin:window|start_resize_dragging",{label:this.label,value:f})}async setBadgeCount(f){return M("plugin:window|set_badge_count",{label:this.label,value:f})}async setBadgeLabel(f){return M("plugin:window|set_badge_label",{label:this.label,value:f})}async setOverlayIcon(f){return M("plugin:window|set_overlay_icon",{label:this.label,value:f?Pn(f):void 0})}async setProgressBar(f){return M("plugin:window|set_progress_bar",{label:this.label,value:f})}async setVisibleOnAllWorkspaces(f){return M("plugin:window|set_visible_on_all_workspaces",{label:this.label,value:f})}async setTitleBarStyle(f){return M("plugin:window|set_title_bar_style",{label:this.label,value:f})}async setTheme(f){return M("plugin:window|set_theme",{label:this.label,value:f})}async onResized(f){return this.listen(rt.WINDOW_RESIZED,y=>{y.payload=new Du(y.payload),f(y)})}async onMoved(f){return this.listen(rt.WINDOW_MOVED,y=>{y.payload=new Ae(y.payload),f(y)})}async onCloseRequested(f){return this.listen(rt.WINDOW_CLOSE_REQUESTED,async y=>{const o=new Xm(y);await f(o),o.isPreventDefault()||await this.destroy()})}async onDragDropEvent(f){const y=await this.listen(rt.DRAG_ENTER,H=>{f({...H,payload:{type:"enter",paths:H.payload.paths,position:new Ae(H.payload.position)}})}),o=await this.listen(rt.DRAG_OVER,H=>{f({...H,payload:{type:"over",position:new Ae(H.payload.position)}})}),E=await this.listen(rt.DRAG_DROP,H=>{f({...H,payload:{type:"drop",paths:H.payload.paths,position:new Ae(H.payload.position)}})}),U=await this.listen(rt.DRAG_LEAVE,H=>{f({...H,payload:{type:"leave"}})});return()=>{y(),E(),o(),U()}}async onFocusChanged(f){const y=await this.listen(rt.WINDOW_FOCUS,E=>{f({...E,payload:!0})}),o=await this.listen(rt.WINDOW_BLUR,E=>{f({...E,payload:!1})});return()=>{y(),o()}}async onScaleChanged(f){return this.listen(rt.WINDOW_SCALE_FACTOR_CHANGED,f)}async onThemeChanged(f){return this.listen(rt.WINDOW_THEME_CHANGED,f)}}var Qd;(function(s){s.Disabled="disabled",s.Throttle="throttle",s.Suspend="suspend"})(Qd||(Qd={}));var Xd;(function(s){s.Default="default",s.FluentOverlay="fluentOverlay"})(Xd||(Xd={}));var Ld;(function(s){s.AppearanceBased="appearanceBased",s.Light="light",s.Dark="dark",s.MediumLight="mediumLight",s.UltraDark="ultraDark",s.Titlebar="titlebar",s.Selection="selection",s.Menu="menu",s.Popover="popover",s.Sidebar="sidebar",s.HeaderView="headerView",s.Sheet="sheet",s.WindowBackground="windowBackground",s.HudWindow="hudWindow",s.FullScreenUI="fullScreenUI",s.Tooltip="tooltip",s.ContentBackground="contentBackground",s.UnderWindowBackground="underWindowBackground",s.UnderPageBackground="underPageBackground",s.Mica="mica",s.Blur="blur",s.Acrylic="acrylic",s.Tabbed="tabbed",s.TabbedDark="tabbedDark",s.TabbedLight="tabbedLight"})(Ld||(Ld={}));var Vd;(function(s){s.FollowsWindowActiveState="followsWindowActiveState",s.Active="active",s.Inactive="inactive"})(Vd||(Vd={}));var zf={exports:{}},X={};var Zd;function Lm(){if(Zd)return X;Zd=1;var s=Symbol.for("react.transitional.element"),f=Symbol.for("react.portal"),y=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),E=Symbol.for("react.profiler"),U=Symbol.for("react.consumer"),H=Symbol.for("react.context"),x=Symbol.for("react.forward_ref"),D=Symbol.for("react.suspense"),p=Symbol.for("react.memo"),K=Symbol.for("react.lazy"),q=Symbol.for("react.activity"),al=Symbol.iterator;function dl(h){return h===null||typeof h!="object"?null:(h=al&&h[al]||h["@@iterator"],typeof h=="function"?h:null)}var _l={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},ml=Object.assign,lt={};function Ql(h,O,C){this.props=h,this.context=O,this.refs=lt,this.updater=C||_l}Ql.prototype.isReactComponent={},Ql.prototype.setState=function(h,O){if(typeof h!="object"&&typeof h!="function"&&h!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,h,O,"setState")},Ql.prototype.forceUpdate=function(h){this.updater.enqueueForceUpdate(this,h,"forceUpdate")};function Tl(){}Tl.prototype=Ql.prototype;function zl(h,O,C){this.props=h,this.context=O,this.refs=lt,this.updater=C||_l}var nl=zl.prototype=new Tl;nl.constructor=zl,ml(nl,Ql.prototype),nl.isPureReactComponent=!0;var Mt=Array.isArray;function Vl(){}var I={H:null,A:null,T:null,S:null},Zl=Object.prototype.hasOwnProperty;function Dt(h,O,C){var j=C.ref;return{$$typeof:s,type:h,key:O,ref:j!==void 0?j:null,props:C}}function Ze(h,O){return Dt(h.type,O,h.props)}function Nt(h){return typeof h=="object"&&h!==null&&h.$$typeof===s}function Kl(h){var O={"=":"=0",":":"=2"};return"$"+h.replace(/[=:]/g,function(C){return O[C]})}var Ee=/\/+/g;function wt(h,O){return typeof h=="object"&&h!==null&&h.key!=null?Kl(""+h.key):O.toString(36)}function zt(h){switch(h.status){case"fulfilled":return h.value;case"rejected":throw h.reason;default:switch(typeof h.status=="string"?h.then(Vl,Vl):(h.status="pending",h.then(function(O){h.status==="pending"&&(h.status="fulfilled",h.value=O)},function(O){h.status==="pending"&&(h.status="rejected",h.reason=O)})),h.status){case"fulfilled":return h.value;case"rejected":throw h.reason}}throw h}function T(h,O,C,j,L){var J=typeof h;(J==="undefined"||J==="boolean")&&(h=null);var ul=!1;if(h===null)ul=!0;else switch(J){case"bigint":case"string":case"number":ul=!0;break;case"object":switch(h.$$typeof){case s:case f:ul=!0;break;case K:return ul=h._init,T(ul(h._payload),O,C,j,L)}}if(ul)return L=L(h),ul=j===""?"."+wt(h,0):j,Mt(L)?(C="",ul!=null&&(C=ul.replace(Ee,"$&/")+"/"),T(L,O,C,"",function(Ha){return Ha})):L!=null&&(Nt(L)&&(L=Ze(L,C+(L.key==null||h&&h.key===L.key?"":(""+L.key).replace(Ee,"$&/")+"/")+ul)),O.push(L)),1;ul=0;var Xl=j===""?".":j+":";if(Mt(h))for(var Al=0;Al>>1,hl=T[fl];if(0>>1;flE(C,Q))jE(L,C)?(T[fl]=L,T[j]=Q,fl=j):(T[fl]=C,T[O]=Q,fl=O);else if(jE(L,Q))T[fl]=L,T[j]=Q,fl=j;else break l}}return R}function E(T,R){var Q=T.sortIndex-R.sortIndex;return Q!==0?Q:T.id-R.id}if(s.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var U=performance;s.unstable_now=function(){return U.now()}}else{var H=Date,x=H.now();s.unstable_now=function(){return H.now()-x}}var D=[],p=[],K=1,q=null,al=3,dl=!1,_l=!1,ml=!1,lt=!1,Ql=typeof setTimeout=="function"?setTimeout:null,Tl=typeof clearTimeout=="function"?clearTimeout:null,zl=typeof setImmediate<"u"?setImmediate:null;function nl(T){for(var R=y(p);R!==null;){if(R.callback===null)o(p);else if(R.startTime<=T)o(p),R.sortIndex=R.expirationTime,f(D,R);else break;R=y(p)}}function Mt(T){if(ml=!1,nl(T),!_l)if(y(D)!==null)_l=!0,Vl||(Vl=!0,Kl());else{var R=y(p);R!==null&&zt(Mt,R.startTime-T)}}var Vl=!1,I=-1,Zl=5,Dt=-1;function Ze(){return lt?!0:!(s.unstable_now()-DtT&&Ze());){var fl=q.callback;if(typeof fl=="function"){q.callback=null,al=q.priorityLevel;var hl=fl(q.expirationTime<=T);if(T=s.unstable_now(),typeof hl=="function"){q.callback=hl,nl(T),R=!0;break t}q===y(D)&&o(D),nl(T)}else o(D);q=y(D)}if(q!==null)R=!0;else{var h=y(p);h!==null&&zt(Mt,h.startTime-T),R=!1}}break l}finally{q=null,al=Q,dl=!1}R=void 0}}finally{R?Kl():Vl=!1}}}var Kl;if(typeof zl=="function")Kl=function(){zl(Nt)};else if(typeof MessageChannel<"u"){var Ee=new MessageChannel,wt=Ee.port2;Ee.port1.onmessage=Nt,Kl=function(){wt.postMessage(null)}}else Kl=function(){Ql(Nt,0)};function zt(T,R){I=Ql(function(){T(s.unstable_now())},R)}s.unstable_IdlePriority=5,s.unstable_ImmediatePriority=1,s.unstable_LowPriority=4,s.unstable_NormalPriority=3,s.unstable_Profiling=null,s.unstable_UserBlockingPriority=2,s.unstable_cancelCallback=function(T){T.callback=null},s.unstable_forceFrameRate=function(T){0>T||125fl?(T.sortIndex=Q,f(p,T),y(D)===null&&T===y(p)&&(ml?(Tl(I),I=-1):ml=!0,zt(Mt,Q-fl))):(T.sortIndex=hl,f(D,T),_l||dl||(_l=!0,Vl||(Vl=!0,Kl()))),T},s.unstable_shouldYield=Ze,s.unstable_wrapCallback=function(T){var R=al;return function(){var Q=al;al=R;try{return T.apply(this,arguments)}finally{al=Q}}}})(Of)),Of}var Wd;function Zm(){return Wd||(Wd=1,Ef.exports=Vm()),Ef.exports}var Mf={exports:{}},Gl={};var $d;function Km(){if($d)return Gl;$d=1;var s=wf();function f(D){var p="https://react.dev/errors/"+D;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(s)}catch(f){console.error(f)}}return s(),Mf.exports=Km(),Mf.exports}var Fd;function Wm(){if(Fd)return Mu;Fd=1;var s=Zm(),f=wf(),y=Jm();function o(l){var t="https://react.dev/errors/"+l;if(1hl||(l.current=fl[hl],fl[hl]=null,hl--)}function C(l,t){hl++,fl[hl]=l.current,l.current=t}var j=h(null),L=h(null),J=h(null),ul=h(null);function Xl(l,t){switch(C(J,t),C(L,l),C(j,null),t.nodeType){case 9:case 11:l=(l=t.documentElement)&&(l=l.namespaceURI)?cd(l):0;break;default:if(l=t.tagName,t=t.namespaceURI)t=cd(t),l=fd(t,l);else switch(l){case"svg":l=1;break;case"math":l=2;break;default:l=0}}O(j),C(j,l)}function Al(){O(j),O(L),O(J)}function Ha(l){l.memoizedState!==null&&C(ul,l);var t=j.current,e=fd(t,l.type);t!==e&&(C(L,l),C(j,e))}function Cu(l){L.current===l&&(O(j),O(L)),ul.current===l&&(O(ul),Tu._currentValue=Q)}var ti,jf;function Oe(l){if(ti===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);ti=t&&t[1]||"",jf=-1)":-1u||r[a]!==g[u]){var _=` `+r[a].replace(" at new "," at ");return l.displayName&&_.includes("")&&(_=_.replace("",l.displayName)),_}while(1<=a&&0<=u);break}}}finally{ei=!1,Error.prepareStackTrace=e}return(e=l?l.displayName||l.name:"")?Oe(e):""}function oh(l,t){switch(l.tag){case 26:case 27:case 5:return Oe(l.type);case 16:return Oe("Lazy");case 13:return l.child!==t&&t!==null?Oe("Suspense Fallback"):Oe("Suspense");case 19:return Oe("SuspenseList");case 0:case 15:return ai(l.type,!1);case 11:return ai(l.type.render,!1);case 1:return ai(l.type,!0);case 31:return Oe("Activity");default:return""}}function Bf(l){try{var t="",e=null;do t+=oh(l,e),e=l,l=l.return;while(l);return t}catch(a){return` Error generating stack: `+a.message+` -`+a.stack}}var ui=Object.prototype.hasOwnProperty,ni=s.unstable_scheduleCallback,ii=s.unstable_cancelCallback,rh=s.unstable_shouldYield,dh=s.unstable_requestPaint,tt=s.unstable_now,hh=s.unstable_getCurrentPriorityLevel,qf=s.unstable_ImmediatePriority,Yf=s.unstable_UserBlockingPriority,Hu=s.unstable_NormalPriority,yh=s.unstable_LowPriority,Gf=s.unstable_IdlePriority,mh=s.log,vh=s.unstable_setDisableYieldValue,wa=null,et=null;function Pt(l){if(typeof mh=="function"&&vh(l),et&&typeof et.setStrictMode=="function")try{et.setStrictMode(wa,l)}catch{}}var at=Math.clz32?Math.clz32:Sh,gh=Math.log,bh=Math.LN2;function Sh(l){return l>>>=0,l===0?32:31-(gh(l)/bh|0)|0}var wu=256,xu=262144,ju=4194304;function Me(l){var t=l&42;if(t!==0)return t;switch(l&-l){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return l&261888;case 262144:case 524288:case 1048576:case 2097152:return l&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return l&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return l}}function Bu(l,t,e){var a=l.pendingLanes;if(a===0)return 0;var u=0,n=l.suspendedLanes,i=l.pingedLanes;l=l.warmLanes;var c=a&134217727;return c!==0?(a=c&~n,a!==0?u=Me(a):(i&=c,i!==0?u=Me(i):e||(e=c&~l,e!==0&&(u=Me(e))))):(c=a&~n,c!==0?u=Me(c):i!==0?u=Me(i):e||(e=a&~l,e!==0&&(u=Me(e)))),u===0?0:t!==0&&t!==u&&(t&n)===0&&(n=u&-u,e=t&-t,n>=e||n===32&&(e&4194048)!==0)?t:u}function xa(l,t){return(l.pendingLanes&~(l.suspendedLanes&~l.pingedLanes)&t)===0}function ph(l,t){switch(l){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Qf(){var l=ju;return ju<<=1,(ju&62914560)===0&&(ju=4194304),l}function ci(l){for(var t=[],e=0;31>e;e++)t.push(l);return t}function ja(l,t){l.pendingLanes|=t,t!==268435456&&(l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0)}function _h(l,t,e,a,u,n){var i=l.pendingLanes;l.pendingLanes=e,l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0,l.expiredLanes&=e,l.entangledLanes&=e,l.errorRecoveryDisabledLanes&=e,l.shellSuspendCounter=0;var c=l.entanglements,r=l.expirationTimes,g=l.hiddenUpdates;for(e=i&~e;0"u")return null;try{return l.activeElement||l.body}catch{return l.body}}var Mh=/[\n"\\]/g;function ht(l){return l.replace(Mh,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function hi(l,t,e,a,u,n,i,c){l.name="",i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"?l.type=i:l.removeAttribute("type"),t!=null?i==="number"?(t===0&&l.value===""||l.value!=t)&&(l.value=""+dt(t)):l.value!==""+dt(t)&&(l.value=""+dt(t)):i!=="submit"&&i!=="reset"||l.removeAttribute("value"),t!=null?yi(l,i,dt(t)):e!=null?yi(l,i,dt(e)):a!=null&&l.removeAttribute("value"),u==null&&n!=null&&(l.defaultChecked=!!n),u!=null&&(l.checked=u&&typeof u!="function"&&typeof u!="symbol"),c!=null&&typeof c!="function"&&typeof c!="symbol"&&typeof c!="boolean"?l.name=""+dt(c):l.removeAttribute("name")}function ls(l,t,e,a,u,n,i,c){if(n!=null&&typeof n!="function"&&typeof n!="symbol"&&typeof n!="boolean"&&(l.type=n),t!=null||e!=null){if(!(n!=="submit"&&n!=="reset"||t!=null)){di(l);return}e=e!=null?""+dt(e):"",t=t!=null?""+dt(t):e,c||t===l.value||(l.value=t),l.defaultValue=t}a=a??u,a=typeof a!="function"&&typeof a!="symbol"&&!!a,l.checked=c?l.checked:!!a,l.defaultChecked=!!a,i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(l.name=i),di(l)}function yi(l,t,e){t==="number"&&Gu(l.ownerDocument)===l||l.defaultValue===""+e||(l.defaultValue=""+e)}function Fe(l,t,e,a){if(l=l.options,t){t={};for(var u=0;u"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Si=!1;if(Bt)try{var Ga={};Object.defineProperty(Ga,"passive",{get:function(){Si=!0}}),window.addEventListener("test",Ga,Ga),window.removeEventListener("test",Ga,Ga)}catch{Si=!1}var te=null,pi=null,Xu=null;function cs(){if(Xu)return Xu;var l,t=pi,e=t.length,a,u="value"in te?te.value:te.textContent,n=u.length;for(l=0;l=La),hs=" ",ys=!1;function ms(l,t){switch(l){case"keyup":return ty.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function vs(l){return l=l.detail,typeof l=="object"&&"data"in l?l.data:null}var ta=!1;function ay(l,t){switch(l){case"compositionend":return vs(t);case"keypress":return t.which!==32?null:(ys=!0,hs);case"textInput":return l=t.data,l===hs&&ys?null:l;default:return null}}function uy(l,t){if(ta)return l==="compositionend"||!Ei&&ms(l,t)?(l=cs(),Xu=pi=te=null,ta=!1,l):null;switch(l){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:e,offset:t-l};l=a}l:{for(;e;){if(e.nextSibling){e=e.nextSibling;break l}e=e.parentNode}e=void 0}e=As(e)}}function Os(l,t){return l&&t?l===t?!0:l&&l.nodeType===3?!1:t&&t.nodeType===3?Os(l,t.parentNode):"contains"in l?l.contains(t):l.compareDocumentPosition?!!(l.compareDocumentPosition(t)&16):!1:!1}function Ms(l){l=l!=null&&l.ownerDocument!=null&&l.ownerDocument.defaultView!=null?l.ownerDocument.defaultView:window;for(var t=Gu(l.document);t instanceof l.HTMLIFrameElement;){try{var e=typeof t.contentWindow.location.href=="string"}catch{e=!1}if(e)l=t.contentWindow;else break;t=Gu(l.document)}return t}function Di(l){var t=l&&l.nodeName&&l.nodeName.toLowerCase();return t&&(t==="input"&&(l.type==="text"||l.type==="search"||l.type==="tel"||l.type==="url"||l.type==="password")||t==="textarea"||l.contentEditable==="true")}var dy=Bt&&"documentMode"in document&&11>=document.documentMode,ea=null,Ni=null,Ja=null,Ui=!1;function Ds(l,t,e){var a=e.window===e?e.document:e.nodeType===9?e:e.ownerDocument;Ui||ea==null||ea!==Gu(a)||(a=ea,"selectionStart"in a&&Di(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),Ja&&Ka(Ja,a)||(Ja=a,a=jn(Ni,"onSelect"),0>=i,u-=i,Ut=1<<32-at(t)+u|e<Z?(F=B,B=null):F=B.sibling;var el=b(m,B,v[Z],z);if(el===null){B===null&&(B=F);break}l&&B&&el.alternate===null&&t(m,B),d=n(el,d,Z),tl===null?Y=el:tl.sibling=el,tl=el,B=F}if(Z===v.length)return e(m,B),P&&Yt(m,Z),Y;if(B===null){for(;ZZ?(F=B,B=null):F=B.sibling;var ze=b(m,B,el.value,z);if(ze===null){B===null&&(B=F);break}l&&B&&ze.alternate===null&&t(m,B),d=n(ze,d,Z),tl===null?Y=ze:tl.sibling=ze,tl=ze,B=F}if(el.done)return e(m,B),P&&Yt(m,Z),Y;if(B===null){for(;!el.done;Z++,el=v.next())el=A(m,el.value,z),el!==null&&(d=n(el,d,Z),tl===null?Y=el:tl.sibling=el,tl=el);return P&&Yt(m,Z),Y}for(B=a(B);!el.done;Z++,el=v.next())el=S(B,m,Z,el.value,z),el!==null&&(l&&el.alternate!==null&&B.delete(el.key===null?Z:el.key),d=n(el,d,Z),tl===null?Y=el:tl.sibling=el,tl=el);return l&&B.forEach(function(Cm){return t(m,Cm)}),P&&Yt(m,Z),Y}function rl(m,d,v,z){if(typeof v=="object"&&v!==null&&v.type===yl&&v.key===null&&(v=v.props.children),typeof v=="object"&&v!==null){switch(v.$$typeof){case Ul:l:{for(var Y=v.key;d!==null;){if(d.key===Y){if(Y=v.type,Y===yl){if(d.tag===7){e(m,d.sibling),z=u(d,v.props.children),z.return=m,m=z;break l}}else if(d.elementType===Y||typeof Y=="object"&&Y!==null&&Y.$$typeof===Zl&&qe(Y)===d.type){e(m,d.sibling),z=u(d,v.props),Pa(z,v),z.return=m,m=z;break l}e(m,d);break}else t(m,d);d=d.sibling}v.type===yl?(z=He(v.props.children,m.mode,z,v.key),z.return=m,m=z):(z=Iu(v.type,v.key,v.props,null,m.mode,z),Pa(z,v),z.return=m,m=z)}return i(m);case pl:l:{for(Y=v.key;d!==null;){if(d.key===Y)if(d.tag===4&&d.stateNode.containerInfo===v.containerInfo&&d.stateNode.implementation===v.implementation){e(m,d.sibling),z=u(d,v.children||[]),z.return=m,m=z;break l}else{e(m,d);break}else t(m,d);d=d.sibling}z=Bi(v,m.mode,z),z.return=m,m=z}return i(m);case Zl:return v=qe(v),rl(m,d,v,z)}if(zt(v))return w(m,d,v,z);if(Kl(v)){if(Y=Kl(v),typeof Y!="function")throw Error(o(150));return v=Y.call(v),G(m,d,v,z)}if(typeof v.then=="function")return rl(m,d,nn(v),z);if(v.$$typeof===Tl)return rl(m,d,tn(m,v),z);cn(m,v)}return typeof v=="string"&&v!==""||typeof v=="number"||typeof v=="bigint"?(v=""+v,d!==null&&d.tag===6?(e(m,d.sibling),z=u(d,v),z.return=m,m=z):(e(m,d),z=ji(v,m.mode,z),z.return=m,m=z),i(m)):e(m,d)}return function(m,d,v,z){try{Ia=0;var Y=rl(m,d,v,z);return ha=null,Y}catch(B){if(B===da||B===an)throw B;var tl=nt(29,B,null,m.mode);return tl.lanes=z,tl.return=m,tl}}}var Ge=Fs(!0),Is=Fs(!1),ie=!1;function $i(l){l.updateQueue={baseState:l.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function ki(l,t){l=l.updateQueue,t.updateQueue===l&&(t.updateQueue={baseState:l.baseState,firstBaseUpdate:l.firstBaseUpdate,lastBaseUpdate:l.lastBaseUpdate,shared:l.shared,callbacks:null})}function ce(l){return{lane:l,tag:0,payload:null,callback:null,next:null}}function fe(l,t,e){var a=l.updateQueue;if(a===null)return null;if(a=a.shared,(al&2)!==0){var u=a.pending;return u===null?t.next=t:(t.next=u.next,u.next=t),a.pending=t,t=Fu(l),xs(l,null,e),t}return ku(l,a,t,e),Fu(l)}function lu(l,t,e){if(t=t.updateQueue,t!==null&&(t=t.shared,(e&4194048)!==0)){var a=t.lanes;a&=l.pendingLanes,e|=a,t.lanes=e,Lf(l,e)}}function Fi(l,t){var e=l.updateQueue,a=l.alternate;if(a!==null&&(a=a.updateQueue,e===a)){var u=null,n=null;if(e=e.firstBaseUpdate,e!==null){do{var i={lane:e.lane,tag:e.tag,payload:e.payload,callback:null,next:null};n===null?u=n=i:n=n.next=i,e=e.next}while(e!==null);n===null?u=n=t:n=n.next=t}else u=n=t;e={baseState:a.baseState,firstBaseUpdate:u,lastBaseUpdate:n,shared:a.shared,callbacks:a.callbacks},l.updateQueue=e;return}l=e.lastBaseUpdate,l===null?e.firstBaseUpdate=t:l.next=t,e.lastBaseUpdate=t}var Ii=!1;function tu(){if(Ii){var l=ra;if(l!==null)throw l}}function eu(l,t,e,a){Ii=!1;var u=l.updateQueue;ie=!1;var n=u.firstBaseUpdate,i=u.lastBaseUpdate,c=u.shared.pending;if(c!==null){u.shared.pending=null;var r=c,g=r.next;r.next=null,i===null?n=g:i.next=g,i=r;var _=l.alternate;_!==null&&(_=_.updateQueue,c=_.lastBaseUpdate,c!==i&&(c===null?_.firstBaseUpdate=g:c.next=g,_.lastBaseUpdate=r))}if(n!==null){var A=u.baseState;i=0,_=g=r=null,c=n;do{var b=c.lane&-536870913,S=b!==c.lane;if(S?(k&b)===b:(a&b)===b){b!==0&&b===oa&&(Ii=!0),_!==null&&(_=_.next={lane:0,tag:c.tag,payload:c.payload,callback:null,next:null});l:{var w=l,G=c;b=t;var rl=e;switch(G.tag){case 1:if(w=G.payload,typeof w=="function"){A=w.call(rl,A,b);break l}A=w;break l;case 3:w.flags=w.flags&-65537|128;case 0:if(w=G.payload,b=typeof w=="function"?w.call(rl,A,b):w,b==null)break l;A=q({},A,b);break l;case 2:ie=!0}}b=c.callback,b!==null&&(l.flags|=64,S&&(l.flags|=8192),S=u.callbacks,S===null?u.callbacks=[b]:S.push(b))}else S={lane:b,tag:c.tag,payload:c.payload,callback:c.callback,next:null},_===null?(g=_=S,r=A):_=_.next=S,i|=b;if(c=c.next,c===null){if(c=u.shared.pending,c===null)break;S=c,c=S.next,S.next=null,u.lastBaseUpdate=S,u.shared.pending=null}}while(!0);_===null&&(r=A),u.baseState=r,u.firstBaseUpdate=g,u.lastBaseUpdate=_,n===null&&(u.shared.lanes=0),he|=i,l.lanes=i,l.memoizedState=A}}function Ps(l,t){if(typeof l!="function")throw Error(o(191,l));l.call(t)}function lo(l,t){var e=l.callbacks;if(e!==null)for(l.callbacks=null,l=0;ln?n:8;var i=T.T,c={};T.T=c,gc(l,!1,t,e);try{var r=u(),g=T.S;if(g!==null&&g(c,r),r!==null&&typeof r=="object"&&typeof r.then=="function"){var _=_y(r,a);nu(l,t,_,ot(l))}else nu(l,t,a,ot(l))}catch(A){nu(l,t,{then:function(){},status:"rejected",reason:A},ot())}finally{R.p=n,i!==null&&c.types!==null&&(i.types=c.types),T.T=i}}function My(){}function mc(l,t,e,a){if(l.tag!==5)throw Error(o(476));var u=Ho(l).queue;Co(l,u,t,Q,e===null?My:function(){return wo(l),e(a)})}function Ho(l){var t=l.memoizedState;if(t!==null)return t;t={memoizedState:Q,baseState:Q,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Lt,lastRenderedState:Q},next:null};var e={};return t.next={memoizedState:e,baseState:e,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Lt,lastRenderedState:e},next:null},l.memoizedState=t,l=l.alternate,l!==null&&(l.memoizedState=t),t}function wo(l){var t=Ho(l);t.next===null&&(t=l.alternate.memoizedState),nu(l,t.next.queue,{},ot())}function vc(){return Bl(Tu)}function xo(){return El().memoizedState}function jo(){return El().memoizedState}function Dy(l){for(var t=l.return;t!==null;){switch(t.tag){case 24:case 3:var e=ot();l=ce(e);var a=fe(t,l,e);a!==null&&(Pl(a,t,e),lu(a,t,e)),t={cache:Zi()},l.payload=t;return}t=t.return}}function Ny(l,t,e){var a=ot();e={lane:a,revertLane:0,gesture:null,action:e,hasEagerState:!1,eagerState:null,next:null},gn(l)?qo(t,e):(e=wi(l,t,e,a),e!==null&&(Pl(e,l,a),Yo(e,t,a)))}function Bo(l,t,e){var a=ot();nu(l,t,e,a)}function nu(l,t,e,a){var u={lane:a,revertLane:0,gesture:null,action:e,hasEagerState:!1,eagerState:null,next:null};if(gn(l))qo(t,u);else{var n=l.alternate;if(l.lanes===0&&(n===null||n.lanes===0)&&(n=t.lastRenderedReducer,n!==null))try{var i=t.lastRenderedState,c=n(i,e);if(u.hasEagerState=!0,u.eagerState=c,ut(c,i))return ku(l,t,u,0),hl===null&&$u(),!1}catch{}if(e=wi(l,t,u,a),e!==null)return Pl(e,l,a),Yo(e,t,a),!0}return!1}function gc(l,t,e,a){if(a={lane:2,revertLane:$c(),gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},gn(l)){if(t)throw Error(o(479))}else t=wi(l,e,a,2),t!==null&&Pl(t,l,2)}function gn(l){var t=l.alternate;return l===V||t!==null&&t===V}function qo(l,t){ma=on=!0;var e=l.pending;e===null?t.next=t:(t.next=e.next,e.next=t),l.pending=t}function Yo(l,t,e){if((e&4194048)!==0){var a=t.lanes;a&=l.pendingLanes,e|=a,t.lanes=e,Lf(l,e)}}var iu={readContext:Bl,use:hn,useCallback:bl,useContext:bl,useEffect:bl,useImperativeHandle:bl,useLayoutEffect:bl,useInsertionEffect:bl,useMemo:bl,useReducer:bl,useRef:bl,useState:bl,useDebugValue:bl,useDeferredValue:bl,useTransition:bl,useSyncExternalStore:bl,useId:bl,useHostTransitionStatus:bl,useFormState:bl,useActionState:bl,useOptimistic:bl,useMemoCache:bl,useCacheRefresh:bl};iu.useEffectEvent=bl;var Go={readContext:Bl,use:hn,useCallback:function(l,t){return Ll().memoizedState=[l,t===void 0?null:t],l},useContext:Bl,useEffect:zo,useImperativeHandle:function(l,t,e){e=e!=null?e.concat([l]):null,mn(4194308,4,Mo.bind(null,t,l),e)},useLayoutEffect:function(l,t){return mn(4194308,4,l,t)},useInsertionEffect:function(l,t){mn(4,2,l,t)},useMemo:function(l,t){var e=Ll();t=t===void 0?null:t;var a=l();if(Qe){Pt(!0);try{l()}finally{Pt(!1)}}return e.memoizedState=[a,t],a},useReducer:function(l,t,e){var a=Ll();if(e!==void 0){var u=e(t);if(Qe){Pt(!0);try{e(t)}finally{Pt(!1)}}}else u=t;return a.memoizedState=a.baseState=u,l={pending:null,lanes:0,dispatch:null,lastRenderedReducer:l,lastRenderedState:u},a.queue=l,l=l.dispatch=Ny.bind(null,V,l),[a.memoizedState,l]},useRef:function(l){var t=Ll();return l={current:l},t.memoizedState=l},useState:function(l){l=oc(l);var t=l.queue,e=Bo.bind(null,V,t);return t.dispatch=e,[l.memoizedState,e]},useDebugValue:hc,useDeferredValue:function(l,t){var e=Ll();return yc(e,l,t)},useTransition:function(){var l=oc(!1);return l=Co.bind(null,V,l.queue,!0,!1),Ll().memoizedState=l,[!1,l]},useSyncExternalStore:function(l,t,e){var a=V,u=Ll();if(P){if(e===void 0)throw Error(o(407));e=e()}else{if(e=t(),hl===null)throw Error(o(349));(k&127)!==0||io(a,t,e)}u.memoizedState=e;var n={value:e,getSnapshot:t};return u.queue=n,zo(fo.bind(null,a,n,l),[l]),a.flags|=2048,ga(9,{destroy:void 0},co.bind(null,a,n,e,t),null),e},useId:function(){var l=Ll(),t=hl.identifierPrefix;if(P){var e=Rt,a=Ut;e=(a&~(1<<32-at(a)-1)).toString(32)+e,t="_"+t+"R_"+e,e=rn++,0<\/script>",n=n.removeChild(n.firstChild);break;case"select":n=typeof a.is=="string"?i.createElement("select",{is:a.is}):i.createElement("select"),a.multiple?n.multiple=!0:a.size&&(n.size=a.size);break;default:n=typeof a.is=="string"?i.createElement(u,{is:a.is}):i.createElement(u)}}n[xl]=t,n[Jl]=a;l:for(i=t.child;i!==null;){if(i.tag===5||i.tag===6)n.appendChild(i.stateNode);else if(i.tag!==4&&i.tag!==27&&i.child!==null){i.child.return=i,i=i.child;continue}if(i===t)break l;for(;i.sibling===null;){if(i.return===null||i.return===t)break l;i=i.return}i.sibling.return=i.return,i=i.sibling}t.stateNode=n;l:switch(Yl(n,u,a),u){case"button":case"input":case"select":case"textarea":a=!!a.autoFocus;break l;case"img":a=!0;break l;default:a=!1}a&&Zt(t)}}return vl(t),Rc(t,t.type,l===null?null:l.memoizedProps,t.pendingProps,e),null;case 6:if(l&&t.stateNode!=null)l.memoizedProps!==a&&Zt(t);else{if(typeof a!="string"&&t.stateNode===null)throw Error(o(166));if(l=J.current,fa(t)){if(l=t.stateNode,e=t.memoizedProps,a=null,u=jl,u!==null)switch(u.tag){case 27:case 5:a=u.memoizedProps}l[xl]=t,l=!!(l.nodeValue===e||a!==null&&a.suppressHydrationWarning===!0||nd(l.nodeValue,e)),l||ue(t,!0)}else l=Bn(l).createTextNode(a),l[xl]=t,t.stateNode=l}return vl(t),null;case 31:if(e=t.memoizedState,l===null||l.memoizedState!==null){if(a=fa(t),e!==null){if(l===null){if(!a)throw Error(o(318));if(l=t.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(o(557));l[xl]=t}else we(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;vl(t),l=!1}else e=Qi(),l!==null&&l.memoizedState!==null&&(l.memoizedState.hydrationErrors=e),l=!0;if(!l)return t.flags&256?(ct(t),t):(ct(t),null);if((t.flags&128)!==0)throw Error(o(558))}return vl(t),null;case 13:if(a=t.memoizedState,l===null||l.memoizedState!==null&&l.memoizedState.dehydrated!==null){if(u=fa(t),a!==null&&a.dehydrated!==null){if(l===null){if(!u)throw Error(o(318));if(u=t.memoizedState,u=u!==null?u.dehydrated:null,!u)throw Error(o(317));u[xl]=t}else we(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;vl(t),u=!1}else u=Qi(),l!==null&&l.memoizedState!==null&&(l.memoizedState.hydrationErrors=u),u=!0;if(!u)return t.flags&256?(ct(t),t):(ct(t),null)}return ct(t),(t.flags&128)!==0?(t.lanes=e,t):(e=a!==null,l=l!==null&&l.memoizedState!==null,e&&(a=t.child,u=null,a.alternate!==null&&a.alternate.memoizedState!==null&&a.alternate.memoizedState.cachePool!==null&&(u=a.alternate.memoizedState.cachePool.pool),n=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(n=a.memoizedState.cachePool.pool),n!==u&&(a.flags|=2048)),e!==l&&e&&(t.child.flags|=8192),Tn(t,t.updateQueue),vl(t),null);case 4:return zl(),l===null&&Pc(t.stateNode.containerInfo),vl(t),null;case 10:return Qt(t.type),vl(t),null;case 19:if(O(Al),a=t.memoizedState,a===null)return vl(t),null;if(u=(t.flags&128)!==0,n=a.rendering,n===null)if(u)fu(a,!1);else{if(Sl!==0||l!==null&&(l.flags&128)!==0)for(l=t.child;l!==null;){if(n=sn(l),n!==null){for(t.flags|=128,fu(a,!1),l=n.updateQueue,t.updateQueue=l,Tn(t,l),t.subtreeFlags=0,l=e,e=t.child;e!==null;)js(e,l),e=e.sibling;return C(Al,Al.current&1|2),P&&Yt(t,a.treeForkCount),t.child}l=l.sibling}a.tail!==null&&tt()>Mn&&(t.flags|=128,u=!0,fu(a,!1),t.lanes=4194304)}else{if(!u)if(l=sn(n),l!==null){if(t.flags|=128,u=!0,l=l.updateQueue,t.updateQueue=l,Tn(t,l),fu(a,!0),a.tail===null&&a.tailMode==="hidden"&&!n.alternate&&!P)return vl(t),null}else 2*tt()-a.renderingStartTime>Mn&&e!==536870912&&(t.flags|=128,u=!0,fu(a,!1),t.lanes=4194304);a.isBackwards?(n.sibling=t.child,t.child=n):(l=a.last,l!==null?l.sibling=n:t.child=n,a.last=n)}return a.tail!==null?(l=a.tail,a.rendering=l,a.tail=l.sibling,a.renderingStartTime=tt(),l.sibling=null,e=Al.current,C(Al,u?e&1|2:e&1),P&&Yt(t,a.treeForkCount),l):(vl(t),null);case 22:case 23:return ct(t),lc(),a=t.memoizedState!==null,l!==null?l.memoizedState!==null!==a&&(t.flags|=8192):a&&(t.flags|=8192),a?(e&536870912)!==0&&(t.flags&128)===0&&(vl(t),t.subtreeFlags&6&&(t.flags|=8192)):vl(t),e=t.updateQueue,e!==null&&Tn(t,e.retryQueue),e=null,l!==null&&l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(e=l.memoizedState.cachePool.pool),a=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(a=t.memoizedState.cachePool.pool),a!==e&&(t.flags|=2048),l!==null&&O(Be),null;case 24:return e=null,l!==null&&(e=l.memoizedState.cache),t.memoizedState.cache!==e&&(t.flags|=2048),Qt(Ol),vl(t),null;case 25:return null;case 30:return null}throw Error(o(156,t.tag))}function wy(l,t){switch(Yi(t),t.tag){case 1:return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 3:return Qt(Ol),zl(),l=t.flags,(l&65536)!==0&&(l&128)===0?(t.flags=l&-65537|128,t):null;case 26:case 27:case 5:return Cu(t),null;case 31:if(t.memoizedState!==null){if(ct(t),t.alternate===null)throw Error(o(340));we()}return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 13:if(ct(t),l=t.memoizedState,l!==null&&l.dehydrated!==null){if(t.alternate===null)throw Error(o(340));we()}return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 19:return O(Al),null;case 4:return zl(),null;case 10:return Qt(t.type),null;case 22:case 23:return ct(t),lc(),l!==null&&O(Be),l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 24:return Qt(Ol),null;case 25:return null;default:return null}}function or(l,t){switch(Yi(t),t.tag){case 3:Qt(Ol),zl();break;case 26:case 27:case 5:Cu(t);break;case 4:zl();break;case 31:t.memoizedState!==null&&ct(t);break;case 13:ct(t);break;case 19:O(Al);break;case 10:Qt(t.type);break;case 22:case 23:ct(t),lc(),l!==null&&O(Be);break;case 24:Qt(Ol)}}function su(l,t){try{var e=t.updateQueue,a=e!==null?e.lastEffect:null;if(a!==null){var u=a.next;e=u;do{if((e.tag&l)===l){a=void 0;var n=e.create,i=e.inst;a=n(),i.destroy=a}e=e.next}while(e!==u)}}catch(c){cl(t,t.return,c)}}function re(l,t,e){try{var a=t.updateQueue,u=a!==null?a.lastEffect:null;if(u!==null){var n=u.next;a=n;do{if((a.tag&l)===l){var i=a.inst,c=i.destroy;if(c!==void 0){i.destroy=void 0,u=t;var r=e,g=c;try{g()}catch(_){cl(u,r,_)}}}a=a.next}while(a!==n)}}catch(_){cl(t,t.return,_)}}function rr(l){var t=l.updateQueue;if(t!==null){var e=l.stateNode;try{lo(t,e)}catch(a){cl(l,l.return,a)}}}function dr(l,t,e){e.props=Xe(l.type,l.memoizedProps),e.state=l.memoizedState;try{e.componentWillUnmount()}catch(a){cl(l,t,a)}}function ou(l,t){try{var e=l.ref;if(e!==null){switch(l.tag){case 26:case 27:case 5:var a=l.stateNode;break;case 30:a=l.stateNode;break;default:a=l.stateNode}typeof e=="function"?l.refCleanup=e(a):e.current=a}}catch(u){cl(l,t,u)}}function Ct(l,t){var e=l.ref,a=l.refCleanup;if(e!==null)if(typeof a=="function")try{a()}catch(u){cl(l,t,u)}finally{l.refCleanup=null,l=l.alternate,l!=null&&(l.refCleanup=null)}else if(typeof e=="function")try{e(null)}catch(u){cl(l,t,u)}else e.current=null}function hr(l){var t=l.type,e=l.memoizedProps,a=l.stateNode;try{l:switch(t){case"button":case"input":case"select":case"textarea":e.autoFocus&&a.focus();break l;case"img":e.src?a.src=e.src:e.srcSet&&(a.srcset=e.srcSet)}}catch(u){cl(l,l.return,u)}}function Cc(l,t,e){try{var a=l.stateNode;em(a,l.type,e,t),a[Jl]=t}catch(u){cl(l,l.return,u)}}function yr(l){return l.tag===5||l.tag===3||l.tag===26||l.tag===27&&be(l.type)||l.tag===4}function Hc(l){l:for(;;){for(;l.sibling===null;){if(l.return===null||yr(l.return))return null;l=l.return}for(l.sibling.return=l.return,l=l.sibling;l.tag!==5&&l.tag!==6&&l.tag!==18;){if(l.tag===27&&be(l.type)||l.flags&2||l.child===null||l.tag===4)continue l;l.child.return=l,l=l.child}if(!(l.flags&2))return l.stateNode}}function wc(l,t,e){var a=l.tag;if(a===5||a===6)l=l.stateNode,t?(e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e).insertBefore(l,t):(t=e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e,t.appendChild(l),e=e._reactRootContainer,e!=null||t.onclick!==null||(t.onclick=jt));else if(a!==4&&(a===27&&be(l.type)&&(e=l.stateNode,t=null),l=l.child,l!==null))for(wc(l,t,e),l=l.sibling;l!==null;)wc(l,t,e),l=l.sibling}function zn(l,t,e){var a=l.tag;if(a===5||a===6)l=l.stateNode,t?e.insertBefore(l,t):e.appendChild(l);else if(a!==4&&(a===27&&be(l.type)&&(e=l.stateNode),l=l.child,l!==null))for(zn(l,t,e),l=l.sibling;l!==null;)zn(l,t,e),l=l.sibling}function mr(l){var t=l.stateNode,e=l.memoizedProps;try{for(var a=l.type,u=t.attributes;u.length;)t.removeAttributeNode(u[0]);Yl(t,a,e),t[xl]=l,t[Jl]=e}catch(n){cl(l,l.return,n)}}var Kt=!1,Nl=!1,xc=!1,vr=typeof WeakSet=="function"?WeakSet:Set,Hl=null;function xy(l,t){if(l=l.containerInfo,ef=Vn,l=Ms(l),Di(l)){if("selectionStart"in l)var e={start:l.selectionStart,end:l.selectionEnd};else l:{e=(e=l.ownerDocument)&&e.defaultView||window;var a=e.getSelection&&e.getSelection();if(a&&a.rangeCount!==0){e=a.anchorNode;var u=a.anchorOffset,n=a.focusNode;a=a.focusOffset;try{e.nodeType,n.nodeType}catch{e=null;break l}var i=0,c=-1,r=-1,g=0,_=0,A=l,b=null;t:for(;;){for(var S;A!==e||u!==0&&A.nodeType!==3||(c=i+u),A!==n||a!==0&&A.nodeType!==3||(r=i+a),A.nodeType===3&&(i+=A.nodeValue.length),(S=A.firstChild)!==null;)b=A,A=S;for(;;){if(A===l)break t;if(b===e&&++g===u&&(c=i),b===n&&++_===a&&(r=i),(S=A.nextSibling)!==null)break;A=b,b=A.parentNode}A=S}e=c===-1||r===-1?null:{start:c,end:r}}else e=null}e=e||{start:0,end:0}}else e=null;for(af={focusedElem:l,selectionRange:e},Vn=!1,Hl=t;Hl!==null;)if(t=Hl,l=t.child,(t.subtreeFlags&1028)!==0&&l!==null)l.return=t,Hl=l;else for(;Hl!==null;){switch(t=Hl,n=t.alternate,l=t.flags,t.tag){case 0:if((l&4)!==0&&(l=t.updateQueue,l=l!==null?l.events:null,l!==null))for(e=0;e title"))),Yl(n,a,e),n[xl]=l,Cl(n),a=n;break l;case"link":var i=Td("link","href",u).get(a+(e.href||""));if(i){for(var c=0;crl&&(i=rl,rl=G,G=i);var m=Es(c,G),d=Es(c,rl);if(m&&d&&(S.rangeCount!==1||S.anchorNode!==m.node||S.anchorOffset!==m.offset||S.focusNode!==d.node||S.focusOffset!==d.offset)){var v=A.createRange();v.setStart(m.node,m.offset),S.removeAllRanges(),G>rl?(S.addRange(v),S.extend(d.node,d.offset)):(v.setEnd(d.node,d.offset),S.addRange(v))}}}}for(A=[],S=c;S=S.parentNode;)S.nodeType===1&&A.push({element:S,left:S.scrollLeft,top:S.scrollTop});for(typeof c.focus=="function"&&c.focus(),c=0;ce?32:e,T.T=null,e=Xc,Xc=null;var n=me,i=Ft;if(Rl=0,Ta=me=null,Ft=0,(al&6)!==0)throw Error(o(331));var c=al;if(al|=4,Mr(n.current),Ar(n,n.current,i,e),al=c,vu(0,!1),et&&typeof et.onPostCommitFiberRoot=="function")try{et.onPostCommitFiberRoot(wa,n)}catch{}return!0}finally{R.p=u,T.T=a,Zr(l,t)}}function Jr(l,t,e){t=mt(e,t),t=_c(l.stateNode,t,2),l=fe(l,t,2),l!==null&&(ja(l,2),Ht(l))}function cl(l,t,e){if(l.tag===3)Jr(l,l,e);else for(;t!==null;){if(t.tag===3){Jr(t,l,e);break}else if(t.tag===1){var a=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(ye===null||!ye.has(a))){l=mt(e,l),e=Wo(2),a=fe(t,e,2),a!==null&&($o(e,a,t,l),ja(a,2),Ht(a));break}}t=t.return}}function Kc(l,t,e){var a=l.pingCache;if(a===null){a=l.pingCache=new qy;var u=new Set;a.set(t,u)}else u=a.get(t),u===void 0&&(u=new Set,a.set(t,u));u.has(e)||(qc=!0,u.add(e),l=Ly.bind(null,l,t,e),t.then(l,l))}function Ly(l,t,e){var a=l.pingCache;a!==null&&a.delete(t),l.pingedLanes|=l.suspendedLanes&e,l.warmLanes&=~e,hl===l&&(k&e)===e&&(Sl===4||Sl===3&&(k&62914560)===k&&300>tt()-On?(al&2)===0&&za(l,0):Yc|=e,_a===k&&(_a=0)),Ht(l)}function Wr(l,t){t===0&&(t=Qf()),l=Ce(l,t),l!==null&&(ja(l,t),Ht(l))}function Vy(l){var t=l.memoizedState,e=0;t!==null&&(e=t.retryLane),Wr(l,e)}function Zy(l,t){var e=0;switch(l.tag){case 31:case 13:var a=l.stateNode,u=l.memoizedState;u!==null&&(e=u.retryLane);break;case 19:a=l.stateNode;break;case 22:a=l.stateNode._retryCache;break;default:throw Error(o(314))}a!==null&&a.delete(t),Wr(l,e)}function Ky(l,t){return ni(l,t)}var Hn=null,Ea=null,Jc=!1,wn=!1,Wc=!1,ge=0;function Ht(l){l!==Ea&&l.next===null&&(Ea===null?Hn=Ea=l:Ea=Ea.next=l),wn=!0,Jc||(Jc=!0,Wy())}function vu(l,t){if(!Wc&&wn){Wc=!0;do for(var e=!1,a=Hn;a!==null;){if(l!==0){var u=a.pendingLanes;if(u===0)var n=0;else{var i=a.suspendedLanes,c=a.pingedLanes;n=(1<<31-at(42|l)+1)-1,n&=u&~(i&~c),n=n&201326741?n&201326741|1:n?n|2:0}n!==0&&(e=!0,Ir(a,n))}else n=k,n=Bu(a,a===hl?n:0,a.cancelPendingCommit!==null||a.timeoutHandle!==-1),(n&3)===0||xa(a,n)||(e=!0,Ir(a,n));a=a.next}while(e);Wc=!1}}function Jy(){$r()}function $r(){wn=Jc=!1;var l=0;ge!==0&&um()&&(l=ge);for(var t=tt(),e=null,a=Hn;a!==null;){var u=a.next,n=kr(a,t);n===0?(a.next=null,e===null?Hn=u:e.next=u,u===null&&(Ea=e)):(e=a,(l!==0||(n&3)!==0)&&(wn=!0)),a=u}Rl!==0&&Rl!==5||vu(l),ge!==0&&(ge=0)}function kr(l,t){for(var e=l.suspendedLanes,a=l.pingedLanes,u=l.expirationTimes,n=l.pendingLanes&-62914561;0c)break;var _=r.transferSize,A=r.initiatorType;_&&id(A)&&(r=r.responseEnd,i+=_*(r"u"?null:document;function bd(l,t,e){var a=Oa;if(a&&typeof t=="string"&&t){var u=ht(t);u='link[rel="'+l+'"][href="'+u+'"]',typeof e=="string"&&(u+='[crossorigin="'+e+'"]'),gd.has(u)||(gd.add(u),l={rel:l,crossOrigin:e,href:t},a.querySelector(u)===null&&(t=a.createElement("link"),Yl(t,"link",l),Cl(t),a.head.appendChild(t)))}}function hm(l){It.D(l),bd("dns-prefetch",l,null)}function ym(l,t){It.C(l,t),bd("preconnect",l,t)}function mm(l,t,e){It.L(l,t,e);var a=Oa;if(a&&l&&t){var u='link[rel="preload"][as="'+ht(t)+'"]';t==="image"&&e&&e.imageSrcSet?(u+='[imagesrcset="'+ht(e.imageSrcSet)+'"]',typeof e.imageSizes=="string"&&(u+='[imagesizes="'+ht(e.imageSizes)+'"]')):u+='[href="'+ht(l)+'"]';var n=u;switch(t){case"style":n=Ma(l);break;case"script":n=Da(l)}_t.has(n)||(l=q({rel:"preload",href:t==="image"&&e&&e.imageSrcSet?void 0:l,as:t},e),_t.set(n,l),a.querySelector(u)!==null||t==="style"&&a.querySelector(pu(n))||t==="script"&&a.querySelector(_u(n))||(t=a.createElement("link"),Yl(t,"link",l),Cl(t),a.head.appendChild(t)))}}function vm(l,t){It.m(l,t);var e=Oa;if(e&&l){var a=t&&typeof t.as=="string"?t.as:"script",u='link[rel="modulepreload"][as="'+ht(a)+'"][href="'+ht(l)+'"]',n=u;switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":n=Da(l)}if(!_t.has(n)&&(l=q({rel:"modulepreload",href:l},t),_t.set(n,l),e.querySelector(u)===null)){switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(e.querySelector(_u(n)))return}a=e.createElement("link"),Yl(a,"link",l),Cl(a),e.head.appendChild(a)}}}function gm(l,t,e){It.S(l,t,e);var a=Oa;if(a&&l){var u=$e(a).hoistableStyles,n=Ma(l);t=t||"default";var i=u.get(n);if(!i){var c={loading:0,preload:null};if(i=a.querySelector(pu(n)))c.loading=5;else{l=q({rel:"stylesheet",href:l,"data-precedence":t},e),(e=_t.get(n))&&rf(l,e);var r=i=a.createElement("link");Cl(r),Yl(r,"link",l),r._p=new Promise(function(g,_){r.onload=g,r.onerror=_}),r.addEventListener("load",function(){c.loading|=1}),r.addEventListener("error",function(){c.loading|=2}),c.loading|=4,Yn(i,t,a)}i={type:"stylesheet",instance:i,count:1,state:c},u.set(n,i)}}}function bm(l,t){It.X(l,t);var e=Oa;if(e&&l){var a=$e(e).hoistableScripts,u=Da(l),n=a.get(u);n||(n=e.querySelector(_u(u)),n||(l=q({src:l,async:!0},t),(t=_t.get(u))&&df(l,t),n=e.createElement("script"),Cl(n),Yl(n,"link",l),e.head.appendChild(n)),n={type:"script",instance:n,count:1,state:null},a.set(u,n))}}function Sm(l,t){It.M(l,t);var e=Oa;if(e&&l){var a=$e(e).hoistableScripts,u=Da(l),n=a.get(u);n||(n=e.querySelector(_u(u)),n||(l=q({src:l,async:!0,type:"module"},t),(t=_t.get(u))&&df(l,t),n=e.createElement("script"),Cl(n),Yl(n,"link",l),e.head.appendChild(n)),n={type:"script",instance:n,count:1,state:null},a.set(u,n))}}function Sd(l,t,e,a){var u=(u=J.current)?qn(u):null;if(!u)throw Error(o(446));switch(l){case"meta":case"title":return null;case"style":return typeof e.precedence=="string"&&typeof e.href=="string"?(t=Ma(e.href),e=$e(u).hoistableStyles,a=e.get(t),a||(a={type:"style",instance:null,count:0,state:null},e.set(t,a)),a):{type:"void",instance:null,count:0,state:null};case"link":if(e.rel==="stylesheet"&&typeof e.href=="string"&&typeof e.precedence=="string"){l=Ma(e.href);var n=$e(u).hoistableStyles,i=n.get(l);if(i||(u=u.ownerDocument||u,i={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},n.set(l,i),(n=u.querySelector(pu(l)))&&!n._p&&(i.instance=n,i.state.loading=5),_t.has(l)||(e={rel:"preload",as:"style",href:e.href,crossOrigin:e.crossOrigin,integrity:e.integrity,media:e.media,hrefLang:e.hrefLang,referrerPolicy:e.referrerPolicy},_t.set(l,e),n||pm(u,l,e,i.state))),t&&a===null)throw Error(o(528,""));return i}if(t&&a!==null)throw Error(o(529,""));return null;case"script":return t=e.async,e=e.src,typeof e=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=Da(e),e=$e(u).hoistableScripts,a=e.get(t),a||(a={type:"script",instance:null,count:0,state:null},e.set(t,a)),a):{type:"void",instance:null,count:0,state:null};default:throw Error(o(444,l))}}function Ma(l){return'href="'+ht(l)+'"'}function pu(l){return'link[rel="stylesheet"]['+l+"]"}function pd(l){return q({},l,{"data-precedence":l.precedence,precedence:null})}function pm(l,t,e,a){l.querySelector('link[rel="preload"][as="style"]['+t+"]")?a.loading=1:(t=l.createElement("link"),a.preload=t,t.addEventListener("load",function(){return a.loading|=1}),t.addEventListener("error",function(){return a.loading|=2}),Yl(t,"link",e),Cl(t),l.head.appendChild(t))}function Da(l){return'[src="'+ht(l)+'"]'}function _u(l){return"script[async]"+l}function _d(l,t,e){if(t.count++,t.instance===null)switch(t.type){case"style":var a=l.querySelector('style[data-href~="'+ht(e.href)+'"]');if(a)return t.instance=a,Cl(a),a;var u=q({},e,{"data-href":e.href,"data-precedence":e.precedence,href:null,precedence:null});return a=(l.ownerDocument||l).createElement("style"),Cl(a),Yl(a,"style",u),Yn(a,e.precedence,l),t.instance=a;case"stylesheet":u=Ma(e.href);var n=l.querySelector(pu(u));if(n)return t.state.loading|=4,t.instance=n,Cl(n),n;a=pd(e),(u=_t.get(u))&&rf(a,u),n=(l.ownerDocument||l).createElement("link"),Cl(n);var i=n;return i._p=new Promise(function(c,r){i.onload=c,i.onerror=r}),Yl(n,"link",a),t.state.loading|=4,Yn(n,e.precedence,l),t.instance=n;case"script":return n=Da(e.src),(u=l.querySelector(_u(n)))?(t.instance=u,Cl(u),u):(a=e,(u=_t.get(n))&&(a=q({},e),df(a,u)),l=l.ownerDocument||l,u=l.createElement("script"),Cl(u),Yl(u,"link",a),l.head.appendChild(u),t.instance=u);case"void":return null;default:throw Error(o(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(a=t.instance,t.state.loading|=4,Yn(a,e.precedence,l));return t.instance}function Yn(l,t,e){for(var a=e.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),u=a.length?a[a.length-1]:null,n=u,i=0;i title"):null)}function _m(l,t,e){if(e===1||t.itemProp!=null)return!1;switch(l){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;return t.rel==="stylesheet"?(l=t.disabled,typeof t.precedence=="string"&&l==null):!0;case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function Ad(l){return!(l.type==="stylesheet"&&(l.state.loading&3)===0)}function Tm(l,t,e,a){if(e.type==="stylesheet"&&(typeof a.media!="string"||matchMedia(a.media).matches!==!1)&&(e.state.loading&4)===0){if(e.instance===null){var u=Ma(a.href),n=t.querySelector(pu(u));if(n){t=n._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(l.count++,l=Qn.bind(l),t.then(l,l)),e.state.loading|=4,e.instance=n,Cl(n);return}n=t.ownerDocument||t,a=pd(a),(u=_t.get(u))&&rf(a,u),n=n.createElement("link"),Cl(n);var i=n;i._p=new Promise(function(c,r){i.onload=c,i.onerror=r}),Yl(n,"link",a),e.instance=n}l.stylesheets===null&&(l.stylesheets=new Map),l.stylesheets.set(e,t),(t=e.state.preload)&&(e.state.loading&3)===0&&(l.count++,e=Qn.bind(l),t.addEventListener("load",e),t.addEventListener("error",e))}}var hf=0;function zm(l,t){return l.stylesheets&&l.count===0&&Ln(l,l.stylesheets),0hf?50:800)+t);return l.unsuspend=e,function(){l.unsuspend=null,clearTimeout(a),clearTimeout(u)}}:null}function Qn(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Ln(this,this.stylesheets);else if(this.unsuspend){var l=this.unsuspend;this.unsuspend=null,l()}}}var Xn=null;function Ln(l,t){l.stylesheets=null,l.unsuspend!==null&&(l.count++,Xn=new Map,t.forEach(Am,l),Xn=null,Qn.call(l))}function Am(l,t){if(!(t.state.loading&4)){var e=Xn.get(l);if(e)var a=e.get(null);else{e=new Map,Xn.set(l,e);for(var u=l.querySelectorAll("link[data-precedence],style[data-precedence]"),n=0;n"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(s)}catch(f){console.error(f)}}return s(),Af.exports=Wm(),Af.exports}var km=$m();function Fm(){return{currentState(){return M("current_state")},setPin(s){return M("set_pin",{pin:s})},acceptStay(){return M("accept_stay")},dismissCandidate(){return M("dismiss_candidate")},stopGuarding(){return M("stop_guarding")},submitPin(s){return M("submit_pin",{pin:s})},async subscribe(s){const f=await Cf("stay-state-changed",y=>{s(y.payload.view)});return()=>{f()}}}}function Df(s){return s instanceof Error?s.message:typeof s=="string"?s:"Stay could not complete that action."}function nh(s){return{zoom:"Zoom",google_meet:"Google Meet",microsoft_teams:"Microsoft Teams",facetime:"FaceTime",webex:"Webex",slack_huddle:"Slack huddle"}[s]}function xf(s){return s.title||s.app_name}function Im({meeting:s,error:f,onStop:y}){return N.jsxs("section",{className:"mode-panel mode-panel-active",children:[N.jsx("p",{className:"kicker",children:"Stay is on"}),N.jsx("h2",{children:xf(s.window)||`${nh(s.app)} is protected.`}),N.jsx("p",{className:"muted",children:"Keep the hour you agreed to."}),N.jsx("div",{className:"action-row",children:N.jsx("button",{type:"button",className:"ghost strong-ghost",onClick:y,children:"Stop"})}),N.jsx("p",{className:"error-line",role:"status",children:f})]})}const Pd=7600,Pm=1200,l0=[5,12.5,20,27.5,35,42.5,50,57.5,65,72.5,80,87.5,95],Nf=[-18,-6,6,18,30,42,54,66,78,90,102,114],t0=l0.flatMap((s,f)=>Nf.map((y,o)=>{const E=f*Nf.length+o,U=E%4===0,H=E%11===0?"accent":E%3===0?"warm":"neutral",x=3600+E%8*210,D=(o%3-1)*1.8,p=(f%4-1.5)*1.6;return{kind:U?"dot":"bar",tone:H,width:U?6+E%5*2:34+E%8*10,height:U?6+E%5*2:5+E%3,x:`${y+p}vw`,y:`${s+D}vh`,driftX:`${38+E%6*5}vw`,driftY:`${(E%7-3)*.55}vh`,delayMs:-Math.round((o+1)/Nf.length*x)+f*34,durationMs:x}})),e0=t0.map((s,f)=>({id:`signal-${f+1}`,...s})),a0=[{id:"top-left-dot",kind:"dot",tone:"neutral",placement:"top-left-dot"},{id:"top-left-bar",kind:"bar",tone:"neutral",placement:"top-left-bar"},{id:"top-center-dot",kind:"dot",tone:"neutral",placement:"top-center-dot"},{id:"top-right-bar",kind:"bar",tone:"neutral",placement:"top-right-bar"},{id:"upper-warm-left",kind:"bar",tone:"warm",placement:"upper-warm-left"},{id:"upper-warm-dot",kind:"dot",tone:"warm",placement:"upper-warm-dot"},{id:"upper-warm-right",kind:"bar",tone:"warm",placement:"upper-warm-right"},{id:"mid-left-bar",kind:"bar",tone:"neutral",placement:"mid-left-bar"},{id:"mid-right-bar",kind:"bar",tone:"neutral",placement:"mid-right-bar"},{id:"lower-left-bar",kind:"bar",tone:"neutral",placement:"lower-left-bar"},{id:"lower-left-dot",kind:"dot",tone:"neutral",placement:"lower-left-dot"},{id:"lower-right-warm",kind:"bar",tone:"warm",placement:"lower-right-warm"},{id:"lower-right-dot",kind:"dot",tone:"warm",placement:"lower-right-dot"},{id:"bottom-left-warm",kind:"bar",tone:"warm",placement:"bottom-left-warm"},{id:"bottom-neutral",kind:"bar",tone:"neutral",placement:"bottom-neutral"}];function u0({onComplete:s}){const f=wl.useMemo(c0,[])?Pm:Pd;return wl.useEffect(()=>{const y=window.setTimeout(s,f),o=f===Pd?f0():void 0;return()=>{window.clearTimeout(y),o?.()}},[f,s]),N.jsxs("section",{className:"launch-intro","aria-label":"Stay opening animation",style:n0(f),children:[N.jsx("div",{className:"launch-intro__grain","aria-hidden":"true"}),N.jsx("div",{className:"launch-intro__room","aria-hidden":"true"}),N.jsx("div",{className:"launch-intro__signals","aria-hidden":"true",children:e0.map(y=>N.jsx("span",{className:["launch-intro__signal",`launch-intro__signal-${y.kind}`,`launch-intro__signal-${y.tone}`].join(" "),style:i0(y)},y.id))}),N.jsxs("div",{className:"launch-intro__icon-stage","aria-hidden":"true",children:[N.jsx("div",{className:"launch-intro__tile"}),N.jsx("div",{className:"launch-intro__icon-pattern",children:a0.map(y=>N.jsx("span",{className:["launch-intro__icon-mark",`launch-intro__icon-mark-${y.kind}`,`launch-intro__icon-mark-${y.tone}`,`launch-intro__icon-mark--${y.placement}`].join(" ")},y.id))}),N.jsxs("div",{className:"launch-intro__connector",children:[N.jsx("span",{className:"launch-intro__connector-line"}),N.jsx("span",{className:"launch-intro__connector-dot launch-intro__connector-dot-left"}),N.jsx("span",{className:"launch-intro__connector-dot launch-intro__connector-dot-right"})]})]}),N.jsxs("div",{className:"launch-intro__copy","aria-hidden":"true",children:[N.jsx("p",{children:"Stay"}),N.jsx("span",{children:"Their hour deserves your hour."})]}),N.jsx("button",{type:"button",className:"launch-intro__skip ghost",onClick:s,children:"Skip"})]})}function n0(s){return{"--launch-duration":`${s}ms`}}function i0(s){return{"--signal-width":`${s.width}px`,"--signal-height":`${s.height}px`,"--signal-x":s.x,"--signal-y":s.y,"--signal-drift-x":s.driftX,"--signal-drift-y":s.driftY,"--signal-delay":`${s.delayMs}ms`,"--signal-duration":`${s.durationMs}ms`}}function c0(){return typeof window.matchMedia!="function"?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches}function f0(){const s=window.AudioContext??window.webkitAudioContext;if(!s)return;const f=new s,y=f.currentTime,o=f.createGain(),E=f.createBiquadFilter(),U=[];return o.gain.setValueAtTime(1e-4,y),o.gain.exponentialRampToValueAtTime(.95,y+.28),o.gain.exponentialRampToValueAtTime(.58,y+3.8),o.gain.exponentialRampToValueAtTime(1e-4,y+7.2),E.type="lowpass",E.frequency.setValueAtTime(4200,y),E.frequency.exponentialRampToValueAtTime(760,y+3.4),E.frequency.exponentialRampToValueAtTime(340,y+5.4),E.Q.setValueAtTime(.8,y),E.connect(o),o.connect(f.destination),s0(f,E,U,y),o0(f,E,U,y),r0(f,E,U,y),f.resume().catch(()=>{}),()=>{U.forEach(H=>{try{H.stop()}catch{}}),f.close().catch(()=>{})}}function s0(s,f,y,o){const E=s.createBufferSource(),U=s.createGain(),H=s.createBiquadFilter(),x=s.createBuffer(1,s.sampleRate*2,s.sampleRate),D=x.getChannelData(0);for(let p=0;p{const x=o+.18+H*.22,D=s.createOscillator(),p=s.createGain();D.type=H%3===0?"triangle":"sine",D.frequency.setValueAtTime(U,x),D.frequency.exponentialRampToValueAtTime(U*.72,x+.16),p.gain.setValueAtTime(1e-4,x),p.gain.exponentialRampToValueAtTime(.088-H*.0035,x+.03),p.gain.exponentialRampToValueAtTime(1e-4,x+.24),D.connect(p),p.connect(f),D.start(x),D.stop(x+.28),y.push(D)})}function r0(s,f,y,o){[146.83,220,293.66].forEach((U,H)=>{const x=s.createOscillator(),D=s.createGain(),p=o+2.6+H*.08;x.type="sine",x.frequency.setValueAtTime(U,p),x.detune.setValueAtTime(H===1?4:-3,p),D.gain.setValueAtTime(1e-4,p),D.gain.exponentialRampToValueAtTime(H===1?.096:.06,p+1.2),D.gain.exponentialRampToValueAtTime(1e-4,o+7.1),x.connect(D),D.connect(f),x.start(p),x.stop(o+7.3),y.push(x)})}const Uu=4;function d0(s){return s.replace(/\D/g,"").slice(0,Uu)}function li(s){return s.length===Uu}function ih({id:s,label:f,ariaLabel:y,value:o,error:E,errorId:U,onChange:H}){const x=wl.useId(),D=wl.useRef(null),p=s??x,K=Array.from({length:Uu},(pl,yl)=>o[yl]??""),q=Math.min(o.length,Uu-1);function ll(pl){H(d0(pl.currentTarget.value))}function Ul(){D.current?.focus()}return N.jsxs("div",{className:"pin-code-field",children:[f?N.jsx("label",{htmlFor:p,children:f}):null,N.jsxs("div",{className:"pin-code-input","data-invalid":!!E,onClick:Ul,children:[N.jsx("input",{ref:D,id:p,className:"pin-code-control","aria-label":y,inputMode:"numeric",maxLength:Uu,pattern:"[0-9]{4}",autoComplete:"off",value:o,"aria-invalid":!!E,"aria-describedby":E?U:void 0,onChange:ll}),N.jsx("div",{className:"pin-code-slots","aria-hidden":"true",children:K.map((pl,yl)=>{const lt=["pin-code-slot",pl?"pin-code-slot-filled":null,yl===q?"pin-code-slot-active":null].filter(Boolean).join(" ");return N.jsx("span",{className:lt},yl)})})]})]})}function h0({view:s,error:f,onSubmit:y}){const[o,E]=wl.useState(""),U=f||s.last_error;async function H(x){if(x.preventDefault(),!li(o))return;await y(o)&&E("")}return N.jsxs("section",{className:"mode-panel mode-panel-active",children:[N.jsx("p",{className:"kicker",children:"Stay with the call"}),N.jsx("h2",{children:"Enter your PIN."}),N.jsxs("p",{className:"muted",children:[s.focused.app_name,s.focused.title?`: ${xf(s.focused)}`:""]}),N.jsx("form",{className:"unlock-form",noValidate:!0,onSubmit:H,children:N.jsxs("div",{className:"control-row pin-entry-row",children:[N.jsx(ih,{ariaLabel:"Unlock PIN",value:o,error:U,errorId:"unlock-error",onChange:E}),N.jsx("button",{type:"submit",disabled:!li(o),children:"Open"})]})}),N.jsx("p",{id:"unlock-error",className:"error-line",role:"status",children:U})]})}function y0({candidate:s,canAccept:f,error:y,onAccept:o,onDismiss:E}){return N.jsxs("section",{className:"mode-panel mode-panel-active",children:[N.jsx("p",{className:"kicker",children:nh(s.app)}),N.jsx("h2",{children:"Stay with this meeting?"}),N.jsx("p",{className:"muted",children:xf(s.window)||s.reason}),N.jsxs("div",{className:"action-row",children:[N.jsx("button",{type:"button",disabled:!f,onClick:o,children:"Stay"}),N.jsx("button",{type:"button",className:"ghost",onClick:E,children:"Not now"})]}),N.jsx("p",{className:"error-line",role:"status",children:y})]})}function m0({error:s,onSave:f}){const[y,o]=wl.useState("");async function E(U){if(U.preventDefault(),!li(y))return;await f(y)&&o("")}return N.jsxs("form",{className:"pin-setup mode-panel",noValidate:!0,onSubmit:E,children:[N.jsxs("div",{className:"control-row pin-entry-row",children:[N.jsx(ih,{id:"setup-pin",label:"Set a four digit PIN",value:y,error:s,errorId:"setup-error",onChange:o}),N.jsx("button",{type:"submit",disabled:!li(y),children:"Keep"})]}),N.jsx("p",{id:"setup-error",className:"error-line",role:"status",children:s})]})}function v0({mode:s,children:f,status:y}){const o=s==="guarding",[E,U]=wl.useState(!1),H=wl.useRef(void 0);wl.useEffect(()=>(o||U(!1),()=>{Uf(H.current)}),[o]);function x(){Uf(H.current),H.current=void 0,p(!0)}function D(){Uf(H.current),H.current=window.setTimeout(()=>{H.current=void 0,p(!1)},180)}function p(ll){U(ll),Ru()&&M("set_guarding_panel_expanded",{expanded:ll}).catch(()=>{})}function K(ll){ll.currentTarget.contains(ll.relatedTarget)||D()}const q=["stay-shell",`stay-shell-${s}`,o?E?"stay-shell-revealed":"stay-shell-collapsed":null].filter(Boolean).join(" ");return N.jsxs("main",{className:q,"aria-live":"polite",tabIndex:o?0:void 0,onMouseEnter:o?x:void 0,onMouseLeave:o?D:void 0,onFocusCapture:o?x:void 0,onBlurCapture:o?K:void 0,children:[N.jsxs("header",{className:"brand-strip","data-tauri-drag-region":!0,children:[N.jsxs("div",{className:"brand-label","data-tauri-drag-region":!0,children:[N.jsx("p",{className:"eyebrow","data-tauri-drag-region":!0,children:"Stay"}),N.jsx("h1",{"data-tauri-drag-region":!0,children:"Stay focused."})]}),N.jsxs("div",{className:"brand-controls",children:[y?N.jsx("span",{className:"status-pill",children:y}):null,N.jsx("button",{type:"button",className:"window-close","aria-label":"Hide Stay window",onClick:g0,children:N.jsx("svg",{viewBox:"0 0 12 12",width:"11",height:"11","aria-hidden":"true",children:N.jsx("path",{d:"M2 2L10 10M10 2L2 10",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})})]})]}),f]})}function g0(){Ru()&&Hf().hide().catch(()=>{})}function Uf(s){s!==void 0&&window.clearTimeout(s)}const ch="stay.launchIntro.v1.seen",b0="launchIntro",S0={mode:"idle",pin_configured:!1};function p0({client:s,showLaunchIntro:f}){const[y,o]=wl.useState(S0),[E,U]=wl.useState(!0),[H,x]=wl.useState(null),[D,p]=wl.useState(()=>f??T0());wl.useEffect(()=>{let _l=!0,Tl;return s.currentState().then(nl=>{_l&&o(nl)}).catch(nl=>{_l&&x({target:"mode",message:Df(nl)})}).finally(()=>{_l&&U(!1)}),s.subscribe(nl=>{o(nl),x(null)}).then(nl=>{_l?Tl=nl:nl()}).catch(nl=>{_l&&x({target:"mode",message:Df(nl)})}),()=>{_l=!1,Tl?.()}},[s]),wl.useEffect(()=>{if(D)return lh(!0),()=>{lh(!1)}},[D]);const K=wl.useMemo(()=>_0(y,E),[E,y]);async function q(_l,Tl="mode"){x(null);try{const nl=await _l();return o(nl.view),nl.view.mode!=="locked"||nl.view.last_error===null}catch(nl){return x({target:Tl,message:Df(nl)}),!1}}const ll=H?.target==="setup"?H.message:null,Ul=H?.target==="mode"?H.message:null,pl=!E&&!y.pin_configured,yl=!E&&y.pin_configured,lt=y.pin_configured?y.mode:"idle",Ql=wl.useCallback(()=>{z0(),p(!1)},[]);return N.jsxs(N.Fragment,{children:[N.jsxs(v0,{mode:lt,status:K,children:[E?N.jsxs("section",{className:"mode-panel quiet-state",children:[N.jsx("p",{className:"kicker",children:"Opening"}),N.jsx("h2",{children:"Stay is opening."})]}):null,pl?N.jsx(m0,{error:ll,onSave:_l=>q(()=>s.setPin(_l),"setup")}):null,yl&&y.mode==="idle"?N.jsxs("section",{className:"mode-panel quiet-state",children:[N.jsx("p",{className:"kicker",children:"Ready"}),N.jsx("h2",{children:"Stay is waiting."})]}):null,yl&&y.mode==="meeting_candidate"?N.jsx(y0,{candidate:y.candidate,canAccept:y.pin_configured,error:Ul,onAccept:()=>{q(()=>s.acceptStay())},onDismiss:()=>{q(()=>s.dismissCandidate())}}):null,yl&&y.mode==="guarding"?N.jsx(Im,{meeting:y.meeting,error:Ul,onStop:()=>{q(()=>s.stopGuarding())}}):null,yl&&y.mode==="locked"?N.jsx(h0,{view:y,error:Ul,onSubmit:_l=>q(()=>s.submitPin(_l))}):null]}),D?N.jsx(u0,{onComplete:Ql}):null]})}function _0(s,f){if(f)return"Opening";if(!s.pin_configured)return"PIN needed";switch(s.mode){case"idle":return"Ready";case"meeting_candidate":return"Meeting";case"guarding":return"On";case"locked":return"Locked"}}function T0(){if(new URLSearchParams(window.location.search).get(b0)==="1")return!0;try{return window.localStorage.getItem(ch)!=="true"}catch{return!0}}function z0(){try{window.localStorage.setItem(ch,"true")}catch{}}async function lh(s){if(Ru())try{await M("set_launch_animation_active",{active:s})}catch{}}const Ra={app:"zoom",window:fh("zoom.us","Weekly Team Sync"),reason:"Zoom foreground window"},Ca=fh("Safari","Quarterly planning notes");function A0(s){const f=new Set,y=[];let o=null,E=s??{mode:"idle",pin_configured:!1};function U(x,D=[]){E=x;const p={view:E,commands:D};return f.forEach(K=>K(E)),p}return{commandLog:y,async currentState(){return y.push("current_state"),E},async setPin(x){if(y.push("set_pin"),!/^\d{4}$/.test(x))throw new Error("PIN must be exactly four digits");return o=x,U({mode:"idle",pin_configured:!0})},async acceptStay(){if(y.push("accept_stay"),!o)throw new Error("set a four digit PIN before turning on Stay");return U({mode:"guarding",meeting:Ra,pin_configured:!0},[{type:"begin_guarding",meeting:Ra}])},async dismissCandidate(){return y.push("dismiss_candidate"),U({mode:"idle",pin_configured:!!o},[{type:"hide_prompt"}])},async stopGuarding(){return y.push("stop_guarding"),U({mode:"idle",pin_configured:!!o},[{type:"stop_guarding"}])},async submitPin(x){if(y.push("submit_pin"),E.mode!=="locked")throw new Error("Stay is not locked right now");return x===o?U({mode:"guarding",meeting:E.meeting,pin_configured:!0},[{type:"unlock"}]):U({...E,failed_attempts:E.failed_attempts+1,last_error:"That PIN did not open Stay."},[{type:"stay_locked",failed_attempts:E.failed_attempts+1}])},async subscribe(x){return f.add(x),()=>{f.delete(x)}},emitView(x){return U(x)},focusMeeting(){return U({mode:"meeting_candidate",candidate:Ra,pin_configured:!!o},[{type:"show_prompt",candidate:Ra}])},focusAway(){return U({mode:"locked",meeting:Ra,focused:{app_name:Ca.app_name,title:Ca.title,bounds:Ca.bounds},failed_attempts:0,pin_configured:!!o,last_error:null},[{type:"show_lock",meeting:Ra,focused:{app_name:Ca.app_name,title:Ca.title,bounds:Ca.bounds}}])},view(){return E}}}function fh(s,f){return{app_name:s,title:f,process_id:null,window_id:null,process_path:null,bounds:{x:96,y:88,width:680,height:420}}}const sh=document.querySelector("#root");if(!sh)throw new Error("Stay root element is missing");km.createRoot(sh).render(N.jsx(wl.StrictMode,{children:O0()==="guard-border"?N.jsx(E0,{}):N.jsx(p0,{client:M0()})}));function E0(){return N.jsx("div",{className:"guard-border-surface","aria-hidden":"true",children:N.jsx("div",{className:"guard-border-frame"})})}function O0(){if(new URLSearchParams(window.location.search).get("surface")==="guard-border")return"guard-border";if(!Ru())return"main";try{return Hf().label==="guard-border"?"guard-border":"main"}catch{return"main"}}function M0(){if(window.__STAY_CLIENT__)return window.__STAY_CLIENT__;if(Ru()||window.__TAURI__||window.__TAURI_INTERNALS__)return Fm();const s=A0();return window.__STAY_CLIENT__=s,window.__stayMock=s,s} +`+a.stack}}var ui=Object.prototype.hasOwnProperty,ni=s.unstable_scheduleCallback,ii=s.unstable_cancelCallback,rh=s.unstable_shouldYield,dh=s.unstable_requestPaint,tt=s.unstable_now,hh=s.unstable_getCurrentPriorityLevel,qf=s.unstable_ImmediatePriority,Yf=s.unstable_UserBlockingPriority,Hu=s.unstable_NormalPriority,yh=s.unstable_LowPriority,Gf=s.unstable_IdlePriority,mh=s.log,vh=s.unstable_setDisableYieldValue,wa=null,et=null;function Pt(l){if(typeof mh=="function"&&vh(l),et&&typeof et.setStrictMode=="function")try{et.setStrictMode(wa,l)}catch{}}var at=Math.clz32?Math.clz32:Sh,gh=Math.log,bh=Math.LN2;function Sh(l){return l>>>=0,l===0?32:31-(gh(l)/bh|0)|0}var wu=256,xu=262144,ju=4194304;function Me(l){var t=l&42;if(t!==0)return t;switch(l&-l){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return l&261888;case 262144:case 524288:case 1048576:case 2097152:return l&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return l&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return l}}function Bu(l,t,e){var a=l.pendingLanes;if(a===0)return 0;var u=0,n=l.suspendedLanes,i=l.pingedLanes;l=l.warmLanes;var c=a&134217727;return c!==0?(a=c&~n,a!==0?u=Me(a):(i&=c,i!==0?u=Me(i):e||(e=c&~l,e!==0&&(u=Me(e))))):(c=a&~n,c!==0?u=Me(c):i!==0?u=Me(i):e||(e=a&~l,e!==0&&(u=Me(e)))),u===0?0:t!==0&&t!==u&&(t&n)===0&&(n=u&-u,e=t&-t,n>=e||n===32&&(e&4194048)!==0)?t:u}function xa(l,t){return(l.pendingLanes&~(l.suspendedLanes&~l.pingedLanes)&t)===0}function ph(l,t){switch(l){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Qf(){var l=ju;return ju<<=1,(ju&62914560)===0&&(ju=4194304),l}function ci(l){for(var t=[],e=0;31>e;e++)t.push(l);return t}function ja(l,t){l.pendingLanes|=t,t!==268435456&&(l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0)}function _h(l,t,e,a,u,n){var i=l.pendingLanes;l.pendingLanes=e,l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0,l.expiredLanes&=e,l.entangledLanes&=e,l.errorRecoveryDisabledLanes&=e,l.shellSuspendCounter=0;var c=l.entanglements,r=l.expirationTimes,g=l.hiddenUpdates;for(e=i&~e;0"u")return null;try{return l.activeElement||l.body}catch{return l.body}}var Mh=/[\n"\\]/g;function ht(l){return l.replace(Mh,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function hi(l,t,e,a,u,n,i,c){l.name="",i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"?l.type=i:l.removeAttribute("type"),t!=null?i==="number"?(t===0&&l.value===""||l.value!=t)&&(l.value=""+dt(t)):l.value!==""+dt(t)&&(l.value=""+dt(t)):i!=="submit"&&i!=="reset"||l.removeAttribute("value"),t!=null?yi(l,i,dt(t)):e!=null?yi(l,i,dt(e)):a!=null&&l.removeAttribute("value"),u==null&&n!=null&&(l.defaultChecked=!!n),u!=null&&(l.checked=u&&typeof u!="function"&&typeof u!="symbol"),c!=null&&typeof c!="function"&&typeof c!="symbol"&&typeof c!="boolean"?l.name=""+dt(c):l.removeAttribute("name")}function ls(l,t,e,a,u,n,i,c){if(n!=null&&typeof n!="function"&&typeof n!="symbol"&&typeof n!="boolean"&&(l.type=n),t!=null||e!=null){if(!(n!=="submit"&&n!=="reset"||t!=null)){di(l);return}e=e!=null?""+dt(e):"",t=t!=null?""+dt(t):e,c||t===l.value||(l.value=t),l.defaultValue=t}a=a??u,a=typeof a!="function"&&typeof a!="symbol"&&!!a,l.checked=c?l.checked:!!a,l.defaultChecked=!!a,i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(l.name=i),di(l)}function yi(l,t,e){t==="number"&&Gu(l.ownerDocument)===l||l.defaultValue===""+e||(l.defaultValue=""+e)}function Fe(l,t,e,a){if(l=l.options,t){t={};for(var u=0;u"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Si=!1;if(Bt)try{var Ga={};Object.defineProperty(Ga,"passive",{get:function(){Si=!0}}),window.addEventListener("test",Ga,Ga),window.removeEventListener("test",Ga,Ga)}catch{Si=!1}var te=null,pi=null,Xu=null;function cs(){if(Xu)return Xu;var l,t=pi,e=t.length,a,u="value"in te?te.value:te.textContent,n=u.length;for(l=0;l=La),hs=" ",ys=!1;function ms(l,t){switch(l){case"keyup":return ty.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function vs(l){return l=l.detail,typeof l=="object"&&"data"in l?l.data:null}var ta=!1;function ay(l,t){switch(l){case"compositionend":return vs(t);case"keypress":return t.which!==32?null:(ys=!0,hs);case"textInput":return l=t.data,l===hs&&ys?null:l;default:return null}}function uy(l,t){if(ta)return l==="compositionend"||!Ei&&ms(l,t)?(l=cs(),Xu=pi=te=null,ta=!1,l):null;switch(l){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:e,offset:t-l};l=a}l:{for(;e;){if(e.nextSibling){e=e.nextSibling;break l}e=e.parentNode}e=void 0}e=As(e)}}function Os(l,t){return l&&t?l===t?!0:l&&l.nodeType===3?!1:t&&t.nodeType===3?Os(l,t.parentNode):"contains"in l?l.contains(t):l.compareDocumentPosition?!!(l.compareDocumentPosition(t)&16):!1:!1}function Ms(l){l=l!=null&&l.ownerDocument!=null&&l.ownerDocument.defaultView!=null?l.ownerDocument.defaultView:window;for(var t=Gu(l.document);t instanceof l.HTMLIFrameElement;){try{var e=typeof t.contentWindow.location.href=="string"}catch{e=!1}if(e)l=t.contentWindow;else break;t=Gu(l.document)}return t}function Di(l){var t=l&&l.nodeName&&l.nodeName.toLowerCase();return t&&(t==="input"&&(l.type==="text"||l.type==="search"||l.type==="tel"||l.type==="url"||l.type==="password")||t==="textarea"||l.contentEditable==="true")}var dy=Bt&&"documentMode"in document&&11>=document.documentMode,ea=null,Ni=null,Ja=null,Ui=!1;function Ds(l,t,e){var a=e.window===e?e.document:e.nodeType===9?e:e.ownerDocument;Ui||ea==null||ea!==Gu(a)||(a=ea,"selectionStart"in a&&Di(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),Ja&&Ka(Ja,a)||(Ja=a,a=jn(Ni,"onSelect"),0>=i,u-=i,Ut=1<<32-at(t)+u|e<Z?(F=B,B=null):F=B.sibling;var tl=b(m,B,v[Z],z);if(tl===null){B===null&&(B=F);break}l&&B&&tl.alternate===null&&t(m,B),d=n(tl,d,Z),ll===null?Y=tl:ll.sibling=tl,ll=tl,B=F}if(Z===v.length)return e(m,B),P&&Yt(m,Z),Y;if(B===null){for(;ZZ?(F=B,B=null):F=B.sibling;var ze=b(m,B,tl.value,z);if(ze===null){B===null&&(B=F);break}l&&B&&ze.alternate===null&&t(m,B),d=n(ze,d,Z),ll===null?Y=ze:ll.sibling=ze,ll=ze,B=F}if(tl.done)return e(m,B),P&&Yt(m,Z),Y;if(B===null){for(;!tl.done;Z++,tl=v.next())tl=A(m,tl.value,z),tl!==null&&(d=n(tl,d,Z),ll===null?Y=tl:ll.sibling=tl,ll=tl);return P&&Yt(m,Z),Y}for(B=a(B);!tl.done;Z++,tl=v.next())tl=S(B,m,Z,tl.value,z),tl!==null&&(l&&tl.alternate!==null&&B.delete(tl.key===null?Z:tl.key),d=n(tl,d,Z),ll===null?Y=tl:ll.sibling=tl,ll=tl);return l&&B.forEach(function(Cm){return t(m,Cm)}),P&&Yt(m,Z),Y}function rl(m,d,v,z){if(typeof v=="object"&&v!==null&&v.type===ml&&v.key===null&&(v=v.props.children),typeof v=="object"&&v!==null){switch(v.$$typeof){case dl:l:{for(var Y=v.key;d!==null;){if(d.key===Y){if(Y=v.type,Y===ml){if(d.tag===7){e(m,d.sibling),z=u(d,v.props.children),z.return=m,m=z;break l}}else if(d.elementType===Y||typeof Y=="object"&&Y!==null&&Y.$$typeof===Zl&&qe(Y)===d.type){e(m,d.sibling),z=u(d,v.props),Pa(z,v),z.return=m,m=z;break l}e(m,d);break}else t(m,d);d=d.sibling}v.type===ml?(z=He(v.props.children,m.mode,z,v.key),z.return=m,m=z):(z=Iu(v.type,v.key,v.props,null,m.mode,z),Pa(z,v),z.return=m,m=z)}return i(m);case _l:l:{for(Y=v.key;d!==null;){if(d.key===Y)if(d.tag===4&&d.stateNode.containerInfo===v.containerInfo&&d.stateNode.implementation===v.implementation){e(m,d.sibling),z=u(d,v.children||[]),z.return=m,m=z;break l}else{e(m,d);break}else t(m,d);d=d.sibling}z=Bi(v,m.mode,z),z.return=m,m=z}return i(m);case Zl:return v=qe(v),rl(m,d,v,z)}if(zt(v))return w(m,d,v,z);if(Kl(v)){if(Y=Kl(v),typeof Y!="function")throw Error(o(150));return v=Y.call(v),G(m,d,v,z)}if(typeof v.then=="function")return rl(m,d,nn(v),z);if(v.$$typeof===zl)return rl(m,d,tn(m,v),z);cn(m,v)}return typeof v=="string"&&v!==""||typeof v=="number"||typeof v=="bigint"?(v=""+v,d!==null&&d.tag===6?(e(m,d.sibling),z=u(d,v),z.return=m,m=z):(e(m,d),z=ji(v,m.mode,z),z.return=m,m=z),i(m)):e(m,d)}return function(m,d,v,z){try{Ia=0;var Y=rl(m,d,v,z);return ha=null,Y}catch(B){if(B===da||B===an)throw B;var ll=nt(29,B,null,m.mode);return ll.lanes=z,ll.return=m,ll}}}var Ge=Fs(!0),Is=Fs(!1),ie=!1;function $i(l){l.updateQueue={baseState:l.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function ki(l,t){l=l.updateQueue,t.updateQueue===l&&(t.updateQueue={baseState:l.baseState,firstBaseUpdate:l.firstBaseUpdate,lastBaseUpdate:l.lastBaseUpdate,shared:l.shared,callbacks:null})}function ce(l){return{lane:l,tag:0,payload:null,callback:null,next:null}}function fe(l,t,e){var a=l.updateQueue;if(a===null)return null;if(a=a.shared,(el&2)!==0){var u=a.pending;return u===null?t.next=t:(t.next=u.next,u.next=t),a.pending=t,t=Fu(l),xs(l,null,e),t}return ku(l,a,t,e),Fu(l)}function lu(l,t,e){if(t=t.updateQueue,t!==null&&(t=t.shared,(e&4194048)!==0)){var a=t.lanes;a&=l.pendingLanes,e|=a,t.lanes=e,Lf(l,e)}}function Fi(l,t){var e=l.updateQueue,a=l.alternate;if(a!==null&&(a=a.updateQueue,e===a)){var u=null,n=null;if(e=e.firstBaseUpdate,e!==null){do{var i={lane:e.lane,tag:e.tag,payload:e.payload,callback:null,next:null};n===null?u=n=i:n=n.next=i,e=e.next}while(e!==null);n===null?u=n=t:n=n.next=t}else u=n=t;e={baseState:a.baseState,firstBaseUpdate:u,lastBaseUpdate:n,shared:a.shared,callbacks:a.callbacks},l.updateQueue=e;return}l=e.lastBaseUpdate,l===null?e.firstBaseUpdate=t:l.next=t,e.lastBaseUpdate=t}var Ii=!1;function tu(){if(Ii){var l=ra;if(l!==null)throw l}}function eu(l,t,e,a){Ii=!1;var u=l.updateQueue;ie=!1;var n=u.firstBaseUpdate,i=u.lastBaseUpdate,c=u.shared.pending;if(c!==null){u.shared.pending=null;var r=c,g=r.next;r.next=null,i===null?n=g:i.next=g,i=r;var _=l.alternate;_!==null&&(_=_.updateQueue,c=_.lastBaseUpdate,c!==i&&(c===null?_.firstBaseUpdate=g:c.next=g,_.lastBaseUpdate=r))}if(n!==null){var A=u.baseState;i=0,_=g=r=null,c=n;do{var b=c.lane&-536870913,S=b!==c.lane;if(S?(k&b)===b:(a&b)===b){b!==0&&b===oa&&(Ii=!0),_!==null&&(_=_.next={lane:0,tag:c.tag,payload:c.payload,callback:null,next:null});l:{var w=l,G=c;b=t;var rl=e;switch(G.tag){case 1:if(w=G.payload,typeof w=="function"){A=w.call(rl,A,b);break l}A=w;break l;case 3:w.flags=w.flags&-65537|128;case 0:if(w=G.payload,b=typeof w=="function"?w.call(rl,A,b):w,b==null)break l;A=q({},A,b);break l;case 2:ie=!0}}b=c.callback,b!==null&&(l.flags|=64,S&&(l.flags|=8192),S=u.callbacks,S===null?u.callbacks=[b]:S.push(b))}else S={lane:b,tag:c.tag,payload:c.payload,callback:c.callback,next:null},_===null?(g=_=S,r=A):_=_.next=S,i|=b;if(c=c.next,c===null){if(c=u.shared.pending,c===null)break;S=c,c=S.next,S.next=null,u.lastBaseUpdate=S,u.shared.pending=null}}while(!0);_===null&&(r=A),u.baseState=r,u.firstBaseUpdate=g,u.lastBaseUpdate=_,n===null&&(u.shared.lanes=0),he|=i,l.lanes=i,l.memoizedState=A}}function Ps(l,t){if(typeof l!="function")throw Error(o(191,l));l.call(t)}function lo(l,t){var e=l.callbacks;if(e!==null)for(l.callbacks=null,l=0;ln?n:8;var i=T.T,c={};T.T=c,gc(l,!1,t,e);try{var r=u(),g=T.S;if(g!==null&&g(c,r),r!==null&&typeof r=="object"&&typeof r.then=="function"){var _=_y(r,a);nu(l,t,_,ot(l))}else nu(l,t,a,ot(l))}catch(A){nu(l,t,{then:function(){},status:"rejected",reason:A},ot())}finally{R.p=n,i!==null&&c.types!==null&&(i.types=c.types),T.T=i}}function My(){}function mc(l,t,e,a){if(l.tag!==5)throw Error(o(476));var u=Ho(l).queue;Co(l,u,t,Q,e===null?My:function(){return wo(l),e(a)})}function Ho(l){var t=l.memoizedState;if(t!==null)return t;t={memoizedState:Q,baseState:Q,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Lt,lastRenderedState:Q},next:null};var e={};return t.next={memoizedState:e,baseState:e,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Lt,lastRenderedState:e},next:null},l.memoizedState=t,l=l.alternate,l!==null&&(l.memoizedState=t),t}function wo(l){var t=Ho(l);t.next===null&&(t=l.alternate.memoizedState),nu(l,t.next.queue,{},ot())}function vc(){return Bl(Tu)}function xo(){return Ol().memoizedState}function jo(){return Ol().memoizedState}function Dy(l){for(var t=l.return;t!==null;){switch(t.tag){case 24:case 3:var e=ot();l=ce(e);var a=fe(t,l,e);a!==null&&(Pl(a,t,e),lu(a,t,e)),t={cache:Zi()},l.payload=t;return}t=t.return}}function Ny(l,t,e){var a=ot();e={lane:a,revertLane:0,gesture:null,action:e,hasEagerState:!1,eagerState:null,next:null},gn(l)?qo(t,e):(e=wi(l,t,e,a),e!==null&&(Pl(e,l,a),Yo(e,t,a)))}function Bo(l,t,e){var a=ot();nu(l,t,e,a)}function nu(l,t,e,a){var u={lane:a,revertLane:0,gesture:null,action:e,hasEagerState:!1,eagerState:null,next:null};if(gn(l))qo(t,u);else{var n=l.alternate;if(l.lanes===0&&(n===null||n.lanes===0)&&(n=t.lastRenderedReducer,n!==null))try{var i=t.lastRenderedState,c=n(i,e);if(u.hasEagerState=!0,u.eagerState=c,ut(c,i))return ku(l,t,u,0),yl===null&&$u(),!1}catch{}if(e=wi(l,t,u,a),e!==null)return Pl(e,l,a),Yo(e,t,a),!0}return!1}function gc(l,t,e,a){if(a={lane:2,revertLane:$c(),gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},gn(l)){if(t)throw Error(o(479))}else t=wi(l,e,a,2),t!==null&&Pl(t,l,2)}function gn(l){var t=l.alternate;return l===V||t!==null&&t===V}function qo(l,t){ma=on=!0;var e=l.pending;e===null?t.next=t:(t.next=e.next,e.next=t),l.pending=t}function Yo(l,t,e){if((e&4194048)!==0){var a=t.lanes;a&=l.pendingLanes,e|=a,t.lanes=e,Lf(l,e)}}var iu={readContext:Bl,use:hn,useCallback:Sl,useContext:Sl,useEffect:Sl,useImperativeHandle:Sl,useLayoutEffect:Sl,useInsertionEffect:Sl,useMemo:Sl,useReducer:Sl,useRef:Sl,useState:Sl,useDebugValue:Sl,useDeferredValue:Sl,useTransition:Sl,useSyncExternalStore:Sl,useId:Sl,useHostTransitionStatus:Sl,useFormState:Sl,useActionState:Sl,useOptimistic:Sl,useMemoCache:Sl,useCacheRefresh:Sl};iu.useEffectEvent=Sl;var Go={readContext:Bl,use:hn,useCallback:function(l,t){return Ll().memoizedState=[l,t===void 0?null:t],l},useContext:Bl,useEffect:zo,useImperativeHandle:function(l,t,e){e=e!=null?e.concat([l]):null,mn(4194308,4,Mo.bind(null,t,l),e)},useLayoutEffect:function(l,t){return mn(4194308,4,l,t)},useInsertionEffect:function(l,t){mn(4,2,l,t)},useMemo:function(l,t){var e=Ll();t=t===void 0?null:t;var a=l();if(Qe){Pt(!0);try{l()}finally{Pt(!1)}}return e.memoizedState=[a,t],a},useReducer:function(l,t,e){var a=Ll();if(e!==void 0){var u=e(t);if(Qe){Pt(!0);try{e(t)}finally{Pt(!1)}}}else u=t;return a.memoizedState=a.baseState=u,l={pending:null,lanes:0,dispatch:null,lastRenderedReducer:l,lastRenderedState:u},a.queue=l,l=l.dispatch=Ny.bind(null,V,l),[a.memoizedState,l]},useRef:function(l){var t=Ll();return l={current:l},t.memoizedState=l},useState:function(l){l=oc(l);var t=l.queue,e=Bo.bind(null,V,t);return t.dispatch=e,[l.memoizedState,e]},useDebugValue:hc,useDeferredValue:function(l,t){var e=Ll();return yc(e,l,t)},useTransition:function(){var l=oc(!1);return l=Co.bind(null,V,l.queue,!0,!1),Ll().memoizedState=l,[!1,l]},useSyncExternalStore:function(l,t,e){var a=V,u=Ll();if(P){if(e===void 0)throw Error(o(407));e=e()}else{if(e=t(),yl===null)throw Error(o(349));(k&127)!==0||io(a,t,e)}u.memoizedState=e;var n={value:e,getSnapshot:t};return u.queue=n,zo(fo.bind(null,a,n,l),[l]),a.flags|=2048,ga(9,{destroy:void 0},co.bind(null,a,n,e,t),null),e},useId:function(){var l=Ll(),t=yl.identifierPrefix;if(P){var e=Rt,a=Ut;e=(a&~(1<<32-at(a)-1)).toString(32)+e,t="_"+t+"R_"+e,e=rn++,0<\/script>",n=n.removeChild(n.firstChild);break;case"select":n=typeof a.is=="string"?i.createElement("select",{is:a.is}):i.createElement("select"),a.multiple?n.multiple=!0:a.size&&(n.size=a.size);break;default:n=typeof a.is=="string"?i.createElement(u,{is:a.is}):i.createElement(u)}}n[xl]=t,n[Jl]=a;l:for(i=t.child;i!==null;){if(i.tag===5||i.tag===6)n.appendChild(i.stateNode);else if(i.tag!==4&&i.tag!==27&&i.child!==null){i.child.return=i,i=i.child;continue}if(i===t)break l;for(;i.sibling===null;){if(i.return===null||i.return===t)break l;i=i.return}i.sibling.return=i.return,i=i.sibling}t.stateNode=n;l:switch(Yl(n,u,a),u){case"button":case"input":case"select":case"textarea":a=!!a.autoFocus;break l;case"img":a=!0;break l;default:a=!1}a&&Zt(t)}}return gl(t),Rc(t,t.type,l===null?null:l.memoizedProps,t.pendingProps,e),null;case 6:if(l&&t.stateNode!=null)l.memoizedProps!==a&&Zt(t);else{if(typeof a!="string"&&t.stateNode===null)throw Error(o(166));if(l=J.current,fa(t)){if(l=t.stateNode,e=t.memoizedProps,a=null,u=jl,u!==null)switch(u.tag){case 27:case 5:a=u.memoizedProps}l[xl]=t,l=!!(l.nodeValue===e||a!==null&&a.suppressHydrationWarning===!0||nd(l.nodeValue,e)),l||ue(t,!0)}else l=Bn(l).createTextNode(a),l[xl]=t,t.stateNode=l}return gl(t),null;case 31:if(e=t.memoizedState,l===null||l.memoizedState!==null){if(a=fa(t),e!==null){if(l===null){if(!a)throw Error(o(318));if(l=t.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(o(557));l[xl]=t}else we(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;gl(t),l=!1}else e=Qi(),l!==null&&l.memoizedState!==null&&(l.memoizedState.hydrationErrors=e),l=!0;if(!l)return t.flags&256?(ct(t),t):(ct(t),null);if((t.flags&128)!==0)throw Error(o(558))}return gl(t),null;case 13:if(a=t.memoizedState,l===null||l.memoizedState!==null&&l.memoizedState.dehydrated!==null){if(u=fa(t),a!==null&&a.dehydrated!==null){if(l===null){if(!u)throw Error(o(318));if(u=t.memoizedState,u=u!==null?u.dehydrated:null,!u)throw Error(o(317));u[xl]=t}else we(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;gl(t),u=!1}else u=Qi(),l!==null&&l.memoizedState!==null&&(l.memoizedState.hydrationErrors=u),u=!0;if(!u)return t.flags&256?(ct(t),t):(ct(t),null)}return ct(t),(t.flags&128)!==0?(t.lanes=e,t):(e=a!==null,l=l!==null&&l.memoizedState!==null,e&&(a=t.child,u=null,a.alternate!==null&&a.alternate.memoizedState!==null&&a.alternate.memoizedState.cachePool!==null&&(u=a.alternate.memoizedState.cachePool.pool),n=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(n=a.memoizedState.cachePool.pool),n!==u&&(a.flags|=2048)),e!==l&&e&&(t.child.flags|=8192),Tn(t,t.updateQueue),gl(t),null);case 4:return Al(),l===null&&Pc(t.stateNode.containerInfo),gl(t),null;case 10:return Qt(t.type),gl(t),null;case 19:if(O(El),a=t.memoizedState,a===null)return gl(t),null;if(u=(t.flags&128)!==0,n=a.rendering,n===null)if(u)fu(a,!1);else{if(pl!==0||l!==null&&(l.flags&128)!==0)for(l=t.child;l!==null;){if(n=sn(l),n!==null){for(t.flags|=128,fu(a,!1),l=n.updateQueue,t.updateQueue=l,Tn(t,l),t.subtreeFlags=0,l=e,e=t.child;e!==null;)js(e,l),e=e.sibling;return C(El,El.current&1|2),P&&Yt(t,a.treeForkCount),t.child}l=l.sibling}a.tail!==null&&tt()>Mn&&(t.flags|=128,u=!0,fu(a,!1),t.lanes=4194304)}else{if(!u)if(l=sn(n),l!==null){if(t.flags|=128,u=!0,l=l.updateQueue,t.updateQueue=l,Tn(t,l),fu(a,!0),a.tail===null&&a.tailMode==="hidden"&&!n.alternate&&!P)return gl(t),null}else 2*tt()-a.renderingStartTime>Mn&&e!==536870912&&(t.flags|=128,u=!0,fu(a,!1),t.lanes=4194304);a.isBackwards?(n.sibling=t.child,t.child=n):(l=a.last,l!==null?l.sibling=n:t.child=n,a.last=n)}return a.tail!==null?(l=a.tail,a.rendering=l,a.tail=l.sibling,a.renderingStartTime=tt(),l.sibling=null,e=El.current,C(El,u?e&1|2:e&1),P&&Yt(t,a.treeForkCount),l):(gl(t),null);case 22:case 23:return ct(t),lc(),a=t.memoizedState!==null,l!==null?l.memoizedState!==null!==a&&(t.flags|=8192):a&&(t.flags|=8192),a?(e&536870912)!==0&&(t.flags&128)===0&&(gl(t),t.subtreeFlags&6&&(t.flags|=8192)):gl(t),e=t.updateQueue,e!==null&&Tn(t,e.retryQueue),e=null,l!==null&&l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(e=l.memoizedState.cachePool.pool),a=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(a=t.memoizedState.cachePool.pool),a!==e&&(t.flags|=2048),l!==null&&O(Be),null;case 24:return e=null,l!==null&&(e=l.memoizedState.cache),t.memoizedState.cache!==e&&(t.flags|=2048),Qt(Ml),gl(t),null;case 25:return null;case 30:return null}throw Error(o(156,t.tag))}function wy(l,t){switch(Yi(t),t.tag){case 1:return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 3:return Qt(Ml),Al(),l=t.flags,(l&65536)!==0&&(l&128)===0?(t.flags=l&-65537|128,t):null;case 26:case 27:case 5:return Cu(t),null;case 31:if(t.memoizedState!==null){if(ct(t),t.alternate===null)throw Error(o(340));we()}return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 13:if(ct(t),l=t.memoizedState,l!==null&&l.dehydrated!==null){if(t.alternate===null)throw Error(o(340));we()}return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 19:return O(El),null;case 4:return Al(),null;case 10:return Qt(t.type),null;case 22:case 23:return ct(t),lc(),l!==null&&O(Be),l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 24:return Qt(Ml),null;case 25:return null;default:return null}}function or(l,t){switch(Yi(t),t.tag){case 3:Qt(Ml),Al();break;case 26:case 27:case 5:Cu(t);break;case 4:Al();break;case 31:t.memoizedState!==null&&ct(t);break;case 13:ct(t);break;case 19:O(El);break;case 10:Qt(t.type);break;case 22:case 23:ct(t),lc(),l!==null&&O(Be);break;case 24:Qt(Ml)}}function su(l,t){try{var e=t.updateQueue,a=e!==null?e.lastEffect:null;if(a!==null){var u=a.next;e=u;do{if((e.tag&l)===l){a=void 0;var n=e.create,i=e.inst;a=n(),i.destroy=a}e=e.next}while(e!==u)}}catch(c){cl(t,t.return,c)}}function re(l,t,e){try{var a=t.updateQueue,u=a!==null?a.lastEffect:null;if(u!==null){var n=u.next;a=n;do{if((a.tag&l)===l){var i=a.inst,c=i.destroy;if(c!==void 0){i.destroy=void 0,u=t;var r=e,g=c;try{g()}catch(_){cl(u,r,_)}}}a=a.next}while(a!==n)}}catch(_){cl(t,t.return,_)}}function rr(l){var t=l.updateQueue;if(t!==null){var e=l.stateNode;try{lo(t,e)}catch(a){cl(l,l.return,a)}}}function dr(l,t,e){e.props=Xe(l.type,l.memoizedProps),e.state=l.memoizedState;try{e.componentWillUnmount()}catch(a){cl(l,t,a)}}function ou(l,t){try{var e=l.ref;if(e!==null){switch(l.tag){case 26:case 27:case 5:var a=l.stateNode;break;case 30:a=l.stateNode;break;default:a=l.stateNode}typeof e=="function"?l.refCleanup=e(a):e.current=a}}catch(u){cl(l,t,u)}}function Ct(l,t){var e=l.ref,a=l.refCleanup;if(e!==null)if(typeof a=="function")try{a()}catch(u){cl(l,t,u)}finally{l.refCleanup=null,l=l.alternate,l!=null&&(l.refCleanup=null)}else if(typeof e=="function")try{e(null)}catch(u){cl(l,t,u)}else e.current=null}function hr(l){var t=l.type,e=l.memoizedProps,a=l.stateNode;try{l:switch(t){case"button":case"input":case"select":case"textarea":e.autoFocus&&a.focus();break l;case"img":e.src?a.src=e.src:e.srcSet&&(a.srcset=e.srcSet)}}catch(u){cl(l,l.return,u)}}function Cc(l,t,e){try{var a=l.stateNode;em(a,l.type,e,t),a[Jl]=t}catch(u){cl(l,l.return,u)}}function yr(l){return l.tag===5||l.tag===3||l.tag===26||l.tag===27&&be(l.type)||l.tag===4}function Hc(l){l:for(;;){for(;l.sibling===null;){if(l.return===null||yr(l.return))return null;l=l.return}for(l.sibling.return=l.return,l=l.sibling;l.tag!==5&&l.tag!==6&&l.tag!==18;){if(l.tag===27&&be(l.type)||l.flags&2||l.child===null||l.tag===4)continue l;l.child.return=l,l=l.child}if(!(l.flags&2))return l.stateNode}}function wc(l,t,e){var a=l.tag;if(a===5||a===6)l=l.stateNode,t?(e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e).insertBefore(l,t):(t=e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e,t.appendChild(l),e=e._reactRootContainer,e!=null||t.onclick!==null||(t.onclick=jt));else if(a!==4&&(a===27&&be(l.type)&&(e=l.stateNode,t=null),l=l.child,l!==null))for(wc(l,t,e),l=l.sibling;l!==null;)wc(l,t,e),l=l.sibling}function zn(l,t,e){var a=l.tag;if(a===5||a===6)l=l.stateNode,t?e.insertBefore(l,t):e.appendChild(l);else if(a!==4&&(a===27&&be(l.type)&&(e=l.stateNode),l=l.child,l!==null))for(zn(l,t,e),l=l.sibling;l!==null;)zn(l,t,e),l=l.sibling}function mr(l){var t=l.stateNode,e=l.memoizedProps;try{for(var a=l.type,u=t.attributes;u.length;)t.removeAttributeNode(u[0]);Yl(t,a,e),t[xl]=l,t[Jl]=e}catch(n){cl(l,l.return,n)}}var Kt=!1,Ul=!1,xc=!1,vr=typeof WeakSet=="function"?WeakSet:Set,wl=null;function xy(l,t){if(l=l.containerInfo,ef=Vn,l=Ms(l),Di(l)){if("selectionStart"in l)var e={start:l.selectionStart,end:l.selectionEnd};else l:{e=(e=l.ownerDocument)&&e.defaultView||window;var a=e.getSelection&&e.getSelection();if(a&&a.rangeCount!==0){e=a.anchorNode;var u=a.anchorOffset,n=a.focusNode;a=a.focusOffset;try{e.nodeType,n.nodeType}catch{e=null;break l}var i=0,c=-1,r=-1,g=0,_=0,A=l,b=null;t:for(;;){for(var S;A!==e||u!==0&&A.nodeType!==3||(c=i+u),A!==n||a!==0&&A.nodeType!==3||(r=i+a),A.nodeType===3&&(i+=A.nodeValue.length),(S=A.firstChild)!==null;)b=A,A=S;for(;;){if(A===l)break t;if(b===e&&++g===u&&(c=i),b===n&&++_===a&&(r=i),(S=A.nextSibling)!==null)break;A=b,b=A.parentNode}A=S}e=c===-1||r===-1?null:{start:c,end:r}}else e=null}e=e||{start:0,end:0}}else e=null;for(af={focusedElem:l,selectionRange:e},Vn=!1,wl=t;wl!==null;)if(t=wl,l=t.child,(t.subtreeFlags&1028)!==0&&l!==null)l.return=t,wl=l;else for(;wl!==null;){switch(t=wl,n=t.alternate,l=t.flags,t.tag){case 0:if((l&4)!==0&&(l=t.updateQueue,l=l!==null?l.events:null,l!==null))for(e=0;e title"))),Yl(n,a,e),n[xl]=l,Hl(n),a=n;break l;case"link":var i=Td("link","href",u).get(a+(e.href||""));if(i){for(var c=0;crl&&(i=rl,rl=G,G=i);var m=Es(c,G),d=Es(c,rl);if(m&&d&&(S.rangeCount!==1||S.anchorNode!==m.node||S.anchorOffset!==m.offset||S.focusNode!==d.node||S.focusOffset!==d.offset)){var v=A.createRange();v.setStart(m.node,m.offset),S.removeAllRanges(),G>rl?(S.addRange(v),S.extend(d.node,d.offset)):(v.setEnd(d.node,d.offset),S.addRange(v))}}}}for(A=[],S=c;S=S.parentNode;)S.nodeType===1&&A.push({element:S,left:S.scrollLeft,top:S.scrollTop});for(typeof c.focus=="function"&&c.focus(),c=0;ce?32:e,T.T=null,e=Xc,Xc=null;var n=me,i=Ft;if(Rl=0,Ta=me=null,Ft=0,(el&6)!==0)throw Error(o(331));var c=el;if(el|=4,Mr(n.current),Ar(n,n.current,i,e),el=c,vu(0,!1),et&&typeof et.onPostCommitFiberRoot=="function")try{et.onPostCommitFiberRoot(wa,n)}catch{}return!0}finally{R.p=u,T.T=a,Zr(l,t)}}function Jr(l,t,e){t=mt(e,t),t=_c(l.stateNode,t,2),l=fe(l,t,2),l!==null&&(ja(l,2),Ht(l))}function cl(l,t,e){if(l.tag===3)Jr(l,l,e);else for(;t!==null;){if(t.tag===3){Jr(t,l,e);break}else if(t.tag===1){var a=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(ye===null||!ye.has(a))){l=mt(e,l),e=Wo(2),a=fe(t,e,2),a!==null&&($o(e,a,t,l),ja(a,2),Ht(a));break}}t=t.return}}function Kc(l,t,e){var a=l.pingCache;if(a===null){a=l.pingCache=new qy;var u=new Set;a.set(t,u)}else u=a.get(t),u===void 0&&(u=new Set,a.set(t,u));u.has(e)||(qc=!0,u.add(e),l=Ly.bind(null,l,t,e),t.then(l,l))}function Ly(l,t,e){var a=l.pingCache;a!==null&&a.delete(t),l.pingedLanes|=l.suspendedLanes&e,l.warmLanes&=~e,yl===l&&(k&e)===e&&(pl===4||pl===3&&(k&62914560)===k&&300>tt()-On?(el&2)===0&&za(l,0):Yc|=e,_a===k&&(_a=0)),Ht(l)}function Wr(l,t){t===0&&(t=Qf()),l=Ce(l,t),l!==null&&(ja(l,t),Ht(l))}function Vy(l){var t=l.memoizedState,e=0;t!==null&&(e=t.retryLane),Wr(l,e)}function Zy(l,t){var e=0;switch(l.tag){case 31:case 13:var a=l.stateNode,u=l.memoizedState;u!==null&&(e=u.retryLane);break;case 19:a=l.stateNode;break;case 22:a=l.stateNode._retryCache;break;default:throw Error(o(314))}a!==null&&a.delete(t),Wr(l,e)}function Ky(l,t){return ni(l,t)}var Hn=null,Ea=null,Jc=!1,wn=!1,Wc=!1,ge=0;function Ht(l){l!==Ea&&l.next===null&&(Ea===null?Hn=Ea=l:Ea=Ea.next=l),wn=!0,Jc||(Jc=!0,Wy())}function vu(l,t){if(!Wc&&wn){Wc=!0;do for(var e=!1,a=Hn;a!==null;){if(l!==0){var u=a.pendingLanes;if(u===0)var n=0;else{var i=a.suspendedLanes,c=a.pingedLanes;n=(1<<31-at(42|l)+1)-1,n&=u&~(i&~c),n=n&201326741?n&201326741|1:n?n|2:0}n!==0&&(e=!0,Ir(a,n))}else n=k,n=Bu(a,a===yl?n:0,a.cancelPendingCommit!==null||a.timeoutHandle!==-1),(n&3)===0||xa(a,n)||(e=!0,Ir(a,n));a=a.next}while(e);Wc=!1}}function Jy(){$r()}function $r(){wn=Jc=!1;var l=0;ge!==0&&um()&&(l=ge);for(var t=tt(),e=null,a=Hn;a!==null;){var u=a.next,n=kr(a,t);n===0?(a.next=null,e===null?Hn=u:e.next=u,u===null&&(Ea=e)):(e=a,(l!==0||(n&3)!==0)&&(wn=!0)),a=u}Rl!==0&&Rl!==5||vu(l),ge!==0&&(ge=0)}function kr(l,t){for(var e=l.suspendedLanes,a=l.pingedLanes,u=l.expirationTimes,n=l.pendingLanes&-62914561;0c)break;var _=r.transferSize,A=r.initiatorType;_&&id(A)&&(r=r.responseEnd,i+=_*(r"u"?null:document;function bd(l,t,e){var a=Oa;if(a&&typeof t=="string"&&t){var u=ht(t);u='link[rel="'+l+'"][href="'+u+'"]',typeof e=="string"&&(u+='[crossorigin="'+e+'"]'),gd.has(u)||(gd.add(u),l={rel:l,crossOrigin:e,href:t},a.querySelector(u)===null&&(t=a.createElement("link"),Yl(t,"link",l),Hl(t),a.head.appendChild(t)))}}function hm(l){It.D(l),bd("dns-prefetch",l,null)}function ym(l,t){It.C(l,t),bd("preconnect",l,t)}function mm(l,t,e){It.L(l,t,e);var a=Oa;if(a&&l&&t){var u='link[rel="preload"][as="'+ht(t)+'"]';t==="image"&&e&&e.imageSrcSet?(u+='[imagesrcset="'+ht(e.imageSrcSet)+'"]',typeof e.imageSizes=="string"&&(u+='[imagesizes="'+ht(e.imageSizes)+'"]')):u+='[href="'+ht(l)+'"]';var n=u;switch(t){case"style":n=Ma(l);break;case"script":n=Da(l)}_t.has(n)||(l=q({rel:"preload",href:t==="image"&&e&&e.imageSrcSet?void 0:l,as:t},e),_t.set(n,l),a.querySelector(u)!==null||t==="style"&&a.querySelector(pu(n))||t==="script"&&a.querySelector(_u(n))||(t=a.createElement("link"),Yl(t,"link",l),Hl(t),a.head.appendChild(t)))}}function vm(l,t){It.m(l,t);var e=Oa;if(e&&l){var a=t&&typeof t.as=="string"?t.as:"script",u='link[rel="modulepreload"][as="'+ht(a)+'"][href="'+ht(l)+'"]',n=u;switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":n=Da(l)}if(!_t.has(n)&&(l=q({rel:"modulepreload",href:l},t),_t.set(n,l),e.querySelector(u)===null)){switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(e.querySelector(_u(n)))return}a=e.createElement("link"),Yl(a,"link",l),Hl(a),e.head.appendChild(a)}}}function gm(l,t,e){It.S(l,t,e);var a=Oa;if(a&&l){var u=$e(a).hoistableStyles,n=Ma(l);t=t||"default";var i=u.get(n);if(!i){var c={loading:0,preload:null};if(i=a.querySelector(pu(n)))c.loading=5;else{l=q({rel:"stylesheet",href:l,"data-precedence":t},e),(e=_t.get(n))&&rf(l,e);var r=i=a.createElement("link");Hl(r),Yl(r,"link",l),r._p=new Promise(function(g,_){r.onload=g,r.onerror=_}),r.addEventListener("load",function(){c.loading|=1}),r.addEventListener("error",function(){c.loading|=2}),c.loading|=4,Yn(i,t,a)}i={type:"stylesheet",instance:i,count:1,state:c},u.set(n,i)}}}function bm(l,t){It.X(l,t);var e=Oa;if(e&&l){var a=$e(e).hoistableScripts,u=Da(l),n=a.get(u);n||(n=e.querySelector(_u(u)),n||(l=q({src:l,async:!0},t),(t=_t.get(u))&&df(l,t),n=e.createElement("script"),Hl(n),Yl(n,"link",l),e.head.appendChild(n)),n={type:"script",instance:n,count:1,state:null},a.set(u,n))}}function Sm(l,t){It.M(l,t);var e=Oa;if(e&&l){var a=$e(e).hoistableScripts,u=Da(l),n=a.get(u);n||(n=e.querySelector(_u(u)),n||(l=q({src:l,async:!0,type:"module"},t),(t=_t.get(u))&&df(l,t),n=e.createElement("script"),Hl(n),Yl(n,"link",l),e.head.appendChild(n)),n={type:"script",instance:n,count:1,state:null},a.set(u,n))}}function Sd(l,t,e,a){var u=(u=J.current)?qn(u):null;if(!u)throw Error(o(446));switch(l){case"meta":case"title":return null;case"style":return typeof e.precedence=="string"&&typeof e.href=="string"?(t=Ma(e.href),e=$e(u).hoistableStyles,a=e.get(t),a||(a={type:"style",instance:null,count:0,state:null},e.set(t,a)),a):{type:"void",instance:null,count:0,state:null};case"link":if(e.rel==="stylesheet"&&typeof e.href=="string"&&typeof e.precedence=="string"){l=Ma(e.href);var n=$e(u).hoistableStyles,i=n.get(l);if(i||(u=u.ownerDocument||u,i={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},n.set(l,i),(n=u.querySelector(pu(l)))&&!n._p&&(i.instance=n,i.state.loading=5),_t.has(l)||(e={rel:"preload",as:"style",href:e.href,crossOrigin:e.crossOrigin,integrity:e.integrity,media:e.media,hrefLang:e.hrefLang,referrerPolicy:e.referrerPolicy},_t.set(l,e),n||pm(u,l,e,i.state))),t&&a===null)throw Error(o(528,""));return i}if(t&&a!==null)throw Error(o(529,""));return null;case"script":return t=e.async,e=e.src,typeof e=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=Da(e),e=$e(u).hoistableScripts,a=e.get(t),a||(a={type:"script",instance:null,count:0,state:null},e.set(t,a)),a):{type:"void",instance:null,count:0,state:null};default:throw Error(o(444,l))}}function Ma(l){return'href="'+ht(l)+'"'}function pu(l){return'link[rel="stylesheet"]['+l+"]"}function pd(l){return q({},l,{"data-precedence":l.precedence,precedence:null})}function pm(l,t,e,a){l.querySelector('link[rel="preload"][as="style"]['+t+"]")?a.loading=1:(t=l.createElement("link"),a.preload=t,t.addEventListener("load",function(){return a.loading|=1}),t.addEventListener("error",function(){return a.loading|=2}),Yl(t,"link",e),Hl(t),l.head.appendChild(t))}function Da(l){return'[src="'+ht(l)+'"]'}function _u(l){return"script[async]"+l}function _d(l,t,e){if(t.count++,t.instance===null)switch(t.type){case"style":var a=l.querySelector('style[data-href~="'+ht(e.href)+'"]');if(a)return t.instance=a,Hl(a),a;var u=q({},e,{"data-href":e.href,"data-precedence":e.precedence,href:null,precedence:null});return a=(l.ownerDocument||l).createElement("style"),Hl(a),Yl(a,"style",u),Yn(a,e.precedence,l),t.instance=a;case"stylesheet":u=Ma(e.href);var n=l.querySelector(pu(u));if(n)return t.state.loading|=4,t.instance=n,Hl(n),n;a=pd(e),(u=_t.get(u))&&rf(a,u),n=(l.ownerDocument||l).createElement("link"),Hl(n);var i=n;return i._p=new Promise(function(c,r){i.onload=c,i.onerror=r}),Yl(n,"link",a),t.state.loading|=4,Yn(n,e.precedence,l),t.instance=n;case"script":return n=Da(e.src),(u=l.querySelector(_u(n)))?(t.instance=u,Hl(u),u):(a=e,(u=_t.get(n))&&(a=q({},e),df(a,u)),l=l.ownerDocument||l,u=l.createElement("script"),Hl(u),Yl(u,"link",a),l.head.appendChild(u),t.instance=u);case"void":return null;default:throw Error(o(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(a=t.instance,t.state.loading|=4,Yn(a,e.precedence,l));return t.instance}function Yn(l,t,e){for(var a=e.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),u=a.length?a[a.length-1]:null,n=u,i=0;i title"):null)}function _m(l,t,e){if(e===1||t.itemProp!=null)return!1;switch(l){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;return t.rel==="stylesheet"?(l=t.disabled,typeof t.precedence=="string"&&l==null):!0;case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function Ad(l){return!(l.type==="stylesheet"&&(l.state.loading&3)===0)}function Tm(l,t,e,a){if(e.type==="stylesheet"&&(typeof a.media!="string"||matchMedia(a.media).matches!==!1)&&(e.state.loading&4)===0){if(e.instance===null){var u=Ma(a.href),n=t.querySelector(pu(u));if(n){t=n._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(l.count++,l=Qn.bind(l),t.then(l,l)),e.state.loading|=4,e.instance=n,Hl(n);return}n=t.ownerDocument||t,a=pd(a),(u=_t.get(u))&&rf(a,u),n=n.createElement("link"),Hl(n);var i=n;i._p=new Promise(function(c,r){i.onload=c,i.onerror=r}),Yl(n,"link",a),e.instance=n}l.stylesheets===null&&(l.stylesheets=new Map),l.stylesheets.set(e,t),(t=e.state.preload)&&(e.state.loading&3)===0&&(l.count++,e=Qn.bind(l),t.addEventListener("load",e),t.addEventListener("error",e))}}var hf=0;function zm(l,t){return l.stylesheets&&l.count===0&&Ln(l,l.stylesheets),0hf?50:800)+t);return l.unsuspend=e,function(){l.unsuspend=null,clearTimeout(a),clearTimeout(u)}}:null}function Qn(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Ln(this,this.stylesheets);else if(this.unsuspend){var l=this.unsuspend;this.unsuspend=null,l()}}}var Xn=null;function Ln(l,t){l.stylesheets=null,l.unsuspend!==null&&(l.count++,Xn=new Map,t.forEach(Am,l),Xn=null,Qn.call(l))}function Am(l,t){if(!(t.state.loading&4)){var e=Xn.get(l);if(e)var a=e.get(null);else{e=new Map,Xn.set(l,e);for(var u=l.querySelectorAll("link[data-precedence],style[data-precedence]"),n=0;n"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(s)}catch(f){console.error(f)}}return s(),Af.exports=Wm(),Af.exports}var km=$m();function Fm(){return{currentState(){return M("current_state")},setPin(s){return M("set_pin",{pin:s})},acceptStay(){return M("accept_stay")},dismissCandidate(){return M("dismiss_candidate")},stopGuarding(){return M("stop_guarding")},submitPin(s){return M("submit_pin",{pin:s})},async subscribe(s){const f=await Cf("stay-state-changed",y=>{s(y.payload.view)});return()=>{f()}}}}function Df(s){return s instanceof Error?s.message:typeof s=="string"?s:"Stay could not complete that action."}function nh(s){return{zoom:"Zoom",google_meet:"Google Meet",microsoft_teams:"Microsoft Teams",facetime:"FaceTime",webex:"Webex",slack_huddle:"Slack huddle"}[s]}function xf(s){return s.title||s.app_name}function Im({meeting:s,error:f,onStop:y}){return N.jsxs("section",{className:"mode-panel mode-panel-active",children:[N.jsx("p",{className:"kicker",children:"Stay is on"}),N.jsx("h2",{children:xf(s.window)||`${nh(s.app)} is protected.`}),N.jsx("p",{className:"muted",children:"Keep the hour you agreed to."}),N.jsx("div",{className:"action-row",children:N.jsx("button",{type:"button",className:"ghost strong-ghost",onClick:y,children:"Stop"})}),N.jsx("p",{className:"error-line",role:"status",children:f})]})}const Pd=7600,Pm=1200,l0=[5,12.5,20,27.5,35,42.5,50,57.5,65,72.5,80,87.5,95],Nf=[-18,-6,6,18,30,42,54,66,78,90,102,114],t0=l0.flatMap((s,f)=>Nf.map((y,o)=>{const E=f*Nf.length+o,U=E%4===0,H=E%11===0?"accent":E%3===0?"warm":"neutral",x=3600+E%8*210,D=(o%3-1)*1.8,p=(f%4-1.5)*1.6;return{kind:U?"dot":"bar",tone:H,width:U?6+E%5*2:34+E%8*10,height:U?6+E%5*2:5+E%3,x:`${y+p}vw`,y:`${s+D}vh`,driftX:`${38+E%6*5}vw`,driftY:`${(E%7-3)*.55}vh`,delayMs:-Math.round((o+1)/Nf.length*x)+f*34,durationMs:x}})),e0=t0.map((s,f)=>({id:`signal-${f+1}`,...s})),a0=[{id:"top-left-dot",kind:"dot",tone:"neutral",placement:"top-left-dot"},{id:"top-left-bar",kind:"bar",tone:"neutral",placement:"top-left-bar"},{id:"top-center-dot",kind:"dot",tone:"neutral",placement:"top-center-dot"},{id:"top-right-bar",kind:"bar",tone:"neutral",placement:"top-right-bar"},{id:"upper-warm-left",kind:"bar",tone:"warm",placement:"upper-warm-left"},{id:"upper-warm-dot",kind:"dot",tone:"warm",placement:"upper-warm-dot"},{id:"upper-warm-right",kind:"bar",tone:"warm",placement:"upper-warm-right"},{id:"mid-left-bar",kind:"bar",tone:"neutral",placement:"mid-left-bar"},{id:"mid-right-bar",kind:"bar",tone:"neutral",placement:"mid-right-bar"},{id:"lower-left-bar",kind:"bar",tone:"neutral",placement:"lower-left-bar"},{id:"lower-left-dot",kind:"dot",tone:"neutral",placement:"lower-left-dot"},{id:"lower-right-warm",kind:"bar",tone:"warm",placement:"lower-right-warm"},{id:"lower-right-dot",kind:"dot",tone:"warm",placement:"lower-right-dot"},{id:"bottom-left-warm",kind:"bar",tone:"warm",placement:"bottom-left-warm"},{id:"bottom-neutral",kind:"bar",tone:"neutral",placement:"bottom-neutral"}];function u0({onComplete:s}){const f=Cl.useMemo(c0,[])?Pm:Pd;return Cl.useEffect(()=>{const y=window.setTimeout(s,f),o=f===Pd?f0():void 0;return()=>{window.clearTimeout(y),o?.()}},[f,s]),N.jsxs("section",{className:"launch-intro","aria-label":"Stay opening animation",style:n0(f),children:[N.jsx("div",{className:"launch-intro__grain","aria-hidden":"true"}),N.jsx("div",{className:"launch-intro__room","aria-hidden":"true"}),N.jsx("div",{className:"launch-intro__signals","aria-hidden":"true",children:e0.map(y=>N.jsx("span",{className:["launch-intro__signal",`launch-intro__signal-${y.kind}`,`launch-intro__signal-${y.tone}`].join(" "),style:i0(y)},y.id))}),N.jsxs("div",{className:"launch-intro__icon-stage","aria-hidden":"true",children:[N.jsx("div",{className:"launch-intro__tile"}),N.jsx("div",{className:"launch-intro__icon-pattern",children:a0.map(y=>N.jsx("span",{className:["launch-intro__icon-mark",`launch-intro__icon-mark-${y.kind}`,`launch-intro__icon-mark-${y.tone}`,`launch-intro__icon-mark--${y.placement}`].join(" ")},y.id))}),N.jsxs("div",{className:"launch-intro__connector",children:[N.jsx("span",{className:"launch-intro__connector-line"}),N.jsx("span",{className:"launch-intro__connector-dot launch-intro__connector-dot-left"}),N.jsx("span",{className:"launch-intro__connector-dot launch-intro__connector-dot-right"})]})]}),N.jsxs("div",{className:"launch-intro__copy","aria-hidden":"true",children:[N.jsx("p",{children:"Stay"}),N.jsx("span",{children:"Their hour deserves your hour."})]}),N.jsx("button",{type:"button",className:"launch-intro__skip ghost",onClick:s,children:"Skip"})]})}function n0(s){return{"--launch-duration":`${s}ms`}}function i0(s){return{"--signal-width":`${s.width}px`,"--signal-height":`${s.height}px`,"--signal-x":s.x,"--signal-y":s.y,"--signal-drift-x":s.driftX,"--signal-drift-y":s.driftY,"--signal-delay":`${s.delayMs}ms`,"--signal-duration":`${s.durationMs}ms`}}function c0(){return typeof window.matchMedia!="function"?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches}function f0(){const s=window.AudioContext??window.webkitAudioContext;if(!s)return;const f=new s,y=f.currentTime,o=f.createGain(),E=f.createBiquadFilter(),U=[];return o.gain.setValueAtTime(1e-4,y),o.gain.exponentialRampToValueAtTime(.95,y+.28),o.gain.exponentialRampToValueAtTime(.58,y+3.8),o.gain.exponentialRampToValueAtTime(1e-4,y+7.2),E.type="lowpass",E.frequency.setValueAtTime(4200,y),E.frequency.exponentialRampToValueAtTime(760,y+3.4),E.frequency.exponentialRampToValueAtTime(340,y+5.4),E.Q.setValueAtTime(.8,y),E.connect(o),o.connect(f.destination),s0(f,E,U,y),o0(f,E,U,y),r0(f,E,U,y),f.resume().catch(()=>{}),()=>{U.forEach(H=>{try{H.stop()}catch{}}),f.close().catch(()=>{})}}function s0(s,f,y,o){const E=s.createBufferSource(),U=s.createGain(),H=s.createBiquadFilter(),x=s.createBuffer(1,s.sampleRate*2,s.sampleRate),D=x.getChannelData(0);for(let p=0;p{const x=o+.18+H*.22,D=s.createOscillator(),p=s.createGain();D.type=H%3===0?"triangle":"sine",D.frequency.setValueAtTime(U,x),D.frequency.exponentialRampToValueAtTime(U*.72,x+.16),p.gain.setValueAtTime(1e-4,x),p.gain.exponentialRampToValueAtTime(.088-H*.0035,x+.03),p.gain.exponentialRampToValueAtTime(1e-4,x+.24),D.connect(p),p.connect(f),D.start(x),D.stop(x+.28),y.push(D)})}function r0(s,f,y,o){[146.83,220,293.66].forEach((U,H)=>{const x=s.createOscillator(),D=s.createGain(),p=o+2.6+H*.08;x.type="sine",x.frequency.setValueAtTime(U,p),x.detune.setValueAtTime(H===1?4:-3,p),D.gain.setValueAtTime(1e-4,p),D.gain.exponentialRampToValueAtTime(H===1?.096:.06,p+1.2),D.gain.exponentialRampToValueAtTime(1e-4,o+7.1),x.connect(D),D.connect(f),x.start(p),x.stop(o+7.3),y.push(x)})}const Uu=4;function d0(s){return s.replace(/\D/g,"").slice(0,Uu)}function li(s){return s.length===Uu}function ih({id:s,label:f,ariaLabel:y,value:o,error:E,errorId:U,onChange:H}){const x=Cl.useId(),D=Cl.useRef(null),p=s??x,K=Array.from({length:Uu},(_l,ml)=>o[ml]??""),q=Math.min(o.length,Uu-1);function al(_l){H(d0(_l.currentTarget.value))}function dl(){D.current?.focus()}return N.jsxs("div",{className:"pin-code-field",children:[f?N.jsx("label",{htmlFor:p,children:f}):null,N.jsxs("div",{className:"pin-code-input","data-invalid":!!E,onClick:dl,children:[N.jsx("input",{ref:D,id:p,className:"pin-code-control","aria-label":y,inputMode:"numeric",maxLength:Uu,pattern:"[0-9]{4}",autoComplete:"off",value:o,"aria-invalid":!!E,"aria-describedby":E?U:void 0,onChange:al}),N.jsx("div",{className:"pin-code-slots","aria-hidden":"true",children:K.map((_l,ml)=>{const lt=["pin-code-slot",_l?"pin-code-slot-filled":null,ml===q?"pin-code-slot-active":null].filter(Boolean).join(" ");return N.jsx("span",{className:lt},ml)})})]})]})}function h0({view:s,error:f,onSubmit:y}){const[o,E]=Cl.useState(""),U=f||s.last_error;async function H(x){if(x.preventDefault(),!li(o))return;await y(o)&&E("")}return N.jsxs("section",{className:"mode-panel mode-panel-active",children:[N.jsx("p",{className:"kicker",children:"Stay with the call"}),N.jsx("h2",{children:"Enter your PIN."}),N.jsxs("p",{className:"muted",children:[s.focused.app_name,s.focused.title?`: ${xf(s.focused)}`:""]}),N.jsx("form",{className:"unlock-form",noValidate:!0,onSubmit:H,children:N.jsxs("div",{className:"control-row pin-entry-row",children:[N.jsx(ih,{ariaLabel:"Unlock PIN",value:o,error:U,errorId:"unlock-error",onChange:E}),N.jsx("button",{type:"submit",disabled:!li(o),children:"Open"})]})}),N.jsx("p",{id:"unlock-error",className:"error-line",role:"status",children:U})]})}function y0({candidate:s,canAccept:f,error:y,onAccept:o,onDismiss:E}){return N.jsxs("section",{className:"mode-panel mode-panel-active",children:[N.jsx("p",{className:"kicker",children:nh(s.app)}),N.jsx("h2",{children:"Stay with this meeting?"}),N.jsx("p",{className:"muted",children:xf(s.window)||s.reason}),N.jsxs("div",{className:"action-row",children:[N.jsx("button",{type:"button",disabled:!f,onClick:o,children:"Stay"}),N.jsx("button",{type:"button",className:"ghost",onClick:E,children:"Not now"})]}),N.jsx("p",{className:"error-line",role:"status",children:y})]})}function m0({error:s,onSave:f}){const[y,o]=Cl.useState("");async function E(U){if(U.preventDefault(),!li(y))return;await f(y)&&o("")}return N.jsxs("form",{className:"pin-setup mode-panel",noValidate:!0,onSubmit:E,children:[N.jsxs("div",{className:"control-row pin-entry-row",children:[N.jsx(ih,{id:"setup-pin",label:"Set a four digit PIN",value:y,error:s,errorId:"setup-error",onChange:o}),N.jsx("button",{type:"submit",disabled:!li(y),children:"Keep"})]}),N.jsx("p",{id:"setup-error",className:"error-line",role:"status",children:s})]})}const v0=60;function g0({mode:s,children:f,status:y}){const o=s==="guarding",[E,U]=Cl.useState(!1),H=Cl.useRef(void 0),x=Cl.useRef(!1);Cl.useEffect(()=>(o||(x.current=!1,U(!1)),()=>{Uf(H.current)}),[o]);function D(){Uf(H.current),H.current=void 0,K(!0)}function p(){Uf(H.current),H.current=window.setTimeout(()=>{H.current=void 0,K(!1)},v0)}function K(dl){x.current!==dl&&(x.current=dl,U(dl),Ru()&&M("set_guarding_panel_expanded",{expanded:dl}).catch(()=>{}))}function q(dl){dl.currentTarget.contains(dl.relatedTarget)||p()}const al=["stay-shell",`stay-shell-${s}`,o?E?"stay-shell-revealed":"stay-shell-collapsed":null].filter(Boolean).join(" ");return N.jsxs("main",{className:al,"aria-live":"polite",tabIndex:o?0:void 0,onMouseEnter:o?D:void 0,onMouseLeave:o?p:void 0,onFocusCapture:o?D:void 0,onBlurCapture:o?q:void 0,children:[N.jsxs("header",{className:"brand-strip","data-tauri-drag-region":!0,children:[N.jsxs("div",{className:"brand-label","data-tauri-drag-region":!0,children:[N.jsx("p",{className:"eyebrow","data-tauri-drag-region":!0,children:"Stay"}),N.jsx("h1",{"data-tauri-drag-region":!0,children:"Stay focused."})]}),N.jsxs("div",{className:"brand-controls",children:[y?N.jsx("span",{className:"status-pill",children:y}):null,N.jsx("button",{type:"button",className:"window-close","aria-label":"Hide Stay window",onClick:b0,children:N.jsx("svg",{viewBox:"0 0 12 12",width:"11",height:"11","aria-hidden":"true",children:N.jsx("path",{d:"M2 2L10 10M10 2L2 10",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})})]})]}),f]})}function b0(){Ru()&&Hf().hide().catch(()=>{})}function Uf(s){s!==void 0&&window.clearTimeout(s)}const ch="stay.launchIntro.v1.seen",S0="launchIntro",p0={mode:"idle",pin_configured:!1};function _0({client:s,showLaunchIntro:f}){const[y,o]=Cl.useState(p0),[E,U]=Cl.useState(!0),[H,x]=Cl.useState(null),[D,p]=Cl.useState(()=>f??z0());Cl.useEffect(()=>{let Tl=!0,zl;return s.currentState().then(nl=>{Tl&&o(nl)}).catch(nl=>{Tl&&x({target:"mode",message:Df(nl)})}).finally(()=>{Tl&&U(!1)}),s.subscribe(nl=>{o(nl),x(null)}).then(nl=>{Tl?zl=nl:nl()}).catch(nl=>{Tl&&x({target:"mode",message:Df(nl)})}),()=>{Tl=!1,zl?.()}},[s]),Cl.useEffect(()=>{if(D)return lh(!0),()=>{lh(!1)}},[D]);const K=Cl.useMemo(()=>T0(y,E),[E,y]);async function q(Tl,zl="mode"){x(null);try{const nl=await Tl();return o(nl.view),nl.view.mode!=="locked"||nl.view.last_error===null}catch(nl){return x({target:zl,message:Df(nl)}),!1}}const al=H?.target==="setup"?H.message:null,dl=H?.target==="mode"?H.message:null,_l=!E&&!y.pin_configured,ml=!E&&y.pin_configured,lt=y.pin_configured?y.mode:"idle",Ql=Cl.useCallback(()=>{A0(),p(!1)},[]);return N.jsxs(N.Fragment,{children:[N.jsxs(g0,{mode:lt,status:K,children:[E?N.jsxs("section",{className:"mode-panel quiet-state",children:[N.jsx("p",{className:"kicker",children:"Opening"}),N.jsx("h2",{children:"Stay is opening."})]}):null,_l?N.jsx(m0,{error:al,onSave:Tl=>q(()=>s.setPin(Tl),"setup")}):null,ml&&y.mode==="idle"?N.jsxs("section",{className:"mode-panel quiet-state",children:[N.jsx("p",{className:"kicker",children:"Ready"}),N.jsx("h2",{children:"Stay is waiting."})]}):null,ml&&y.mode==="meeting_candidate"?N.jsx(y0,{candidate:y.candidate,canAccept:y.pin_configured,error:dl,onAccept:()=>{q(()=>s.acceptStay())},onDismiss:()=>{q(()=>s.dismissCandidate())}}):null,ml&&y.mode==="guarding"?N.jsx(Im,{meeting:y.meeting,error:dl,onStop:()=>{q(()=>s.stopGuarding())}}):null,ml&&y.mode==="locked"?N.jsx(h0,{view:y,error:dl,onSubmit:Tl=>q(()=>s.submitPin(Tl))}):null]}),D?N.jsx(u0,{onComplete:Ql}):null]})}function T0(s,f){if(f)return"Opening";if(!s.pin_configured)return"PIN needed";switch(s.mode){case"idle":return"Ready";case"meeting_candidate":return"Meeting";case"guarding":return"On";case"locked":return"Locked"}}function z0(){if(new URLSearchParams(window.location.search).get(S0)==="1")return!0;try{return window.localStorage.getItem(ch)!=="true"}catch{return!0}}function A0(){try{window.localStorage.setItem(ch,"true")}catch{}}async function lh(s){if(Ru())try{await M("set_launch_animation_active",{active:s})}catch{}}const Ra={app:"zoom",window:fh("zoom.us","Weekly Team Sync"),reason:"Zoom foreground window"},Ca=fh("Safari","Quarterly planning notes");function E0(s){const f=new Set,y=[];let o=null,E=s??{mode:"idle",pin_configured:!1};function U(x,D=[]){E=x;const p={view:E,commands:D};return f.forEach(K=>K(E)),p}return{commandLog:y,async currentState(){return y.push("current_state"),E},async setPin(x){if(y.push("set_pin"),!/^\d{4}$/.test(x))throw new Error("PIN must be exactly four digits");return o=x,U({mode:"idle",pin_configured:!0})},async acceptStay(){if(y.push("accept_stay"),!o)throw new Error("set a four digit PIN before turning on Stay");return U({mode:"guarding",meeting:Ra,pin_configured:!0},[{type:"begin_guarding",meeting:Ra}])},async dismissCandidate(){return y.push("dismiss_candidate"),U({mode:"idle",pin_configured:!!o},[{type:"hide_prompt"}])},async stopGuarding(){return y.push("stop_guarding"),U({mode:"idle",pin_configured:!!o},[{type:"stop_guarding"}])},async submitPin(x){if(y.push("submit_pin"),E.mode!=="locked")throw new Error("Stay is not locked right now");return x===o?U({mode:"guarding",meeting:E.meeting,pin_configured:!0},[{type:"unlock"}]):U({...E,failed_attempts:E.failed_attempts+1,last_error:"That PIN did not open Stay."},[{type:"stay_locked",failed_attempts:E.failed_attempts+1}])},async subscribe(x){return f.add(x),()=>{f.delete(x)}},emitView(x){return U(x)},focusMeeting(){return U({mode:"meeting_candidate",candidate:Ra,pin_configured:!!o},[{type:"show_prompt",candidate:Ra}])},focusAway(){return U({mode:"locked",meeting:Ra,focused:{app_name:Ca.app_name,title:Ca.title,bounds:Ca.bounds},failed_attempts:0,pin_configured:!!o,last_error:null},[{type:"show_lock",meeting:Ra,focused:{app_name:Ca.app_name,title:Ca.title,bounds:Ca.bounds}}])},view(){return E}}}function fh(s,f){return{app_name:s,title:f,process_id:null,window_id:null,process_path:null,bounds:{x:96,y:88,width:680,height:420}}}const sh=document.querySelector("#root");if(!sh)throw new Error("Stay root element is missing");km.createRoot(sh).render(N.jsx(Cl.StrictMode,{children:M0()==="guard-border"?N.jsx(O0,{}):N.jsx(_0,{client:D0()})}));function O0(){return N.jsx("div",{className:"guard-border-surface","aria-hidden":"true",children:N.jsx("div",{className:"guard-border-frame"})})}function M0(){if(new URLSearchParams(window.location.search).get("surface")==="guard-border")return"guard-border";if(!Ru())return"main";try{return Hf().label==="guard-border"?"guard-border":"main"}catch{return"main"}}function D0(){if(window.__STAY_CLIENT__)return window.__STAY_CLIENT__;if(Ru()||window.__TAURI__||window.__TAURI_INTERNALS__)return Fm();const s=E0();return window.__STAY_CLIENT__=s,window.__stayMock=s,s} diff --git a/apps/desktop/dist/index.html b/apps/desktop/dist/index.html index 709deb7..1f9e19c 100644 --- a/apps/desktop/dist/index.html +++ b/apps/desktop/dist/index.html @@ -10,8 +10,8 @@ rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Geist:wght@300;400;500;600;700&family=Instrument+Serif:ital@0;1&display=swap" /> - - + +
diff --git a/apps/desktop/src-tauri/src/lib.rs b/apps/desktop/src-tauri/src/lib.rs index 63c9f74..848b52c 100644 --- a/apps/desktop/src-tauri/src/lib.rs +++ b/apps/desktop/src-tauri/src/lib.rs @@ -8,12 +8,12 @@ use std::sync::Mutex; use std::thread; use std::time::Duration; use tauri::{ - AppHandle, Emitter, Manager, PhysicalPosition, PhysicalSize, State, WebviewUrl, WebviewWindow, - WebviewWindowBuilder, + AppHandle, Emitter, LogicalPosition, LogicalSize, Manager, PhysicalPosition, PhysicalSize, + State, WebviewUrl, WebviewWindow, WebviewWindowBuilder, }; #[cfg(target_os = "macos")] -use tauri::{LogicalPosition, LogicalSize}; +use tauri::{LogicalPosition as OverlayLogicalPosition, LogicalSize as OverlayLogicalSize}; const COMPACT_WINDOW_MIN_WIDTH: u32 = 420; const COMPACT_WINDOW_MAX_WIDTH: u32 = 960; @@ -42,8 +42,8 @@ enum OverlayGeometry { }, #[cfg(target_os = "macos")] Logical { - position: LogicalPosition, - size: LogicalSize, + position: OverlayLogicalPosition, + size: OverlayLogicalSize, }, } @@ -53,6 +53,13 @@ struct WindowGeometry { size: PhysicalSize, } +#[derive(Clone, Debug, PartialEq)] +struct GuardBorderGeometry { + position: PhysicalPosition, + size: PhysicalSize, + scale_factor: f64, +} + impl Default for AppState { fn default() -> Self { Self { @@ -518,12 +525,57 @@ fn should_hide_main_window(view: &GuardView) -> bool { } fn show_guard_border(app: &AppHandle, anchor: &WebviewWindow) -> tauri::Result<()> { - let border = match app.get_webview_window(GUARD_BORDER_LABEL) { - Some(border) => border, + let monitor_geometries: Vec = anchor + .available_monitors()? + .iter() + .map(|monitor| GuardBorderGeometry { + position: *monitor.position(), + size: *monitor.size(), + scale_factor: monitor.scale_factor(), + }) + .collect(); + let guard_borders = guard_border_windows_for_monitors(&monitor_geometries); + + if guard_borders.is_empty() { + return hide_guard_border(app); + } + + for (label, geometry) in &guard_borders { + let border = guard_border_window(app, label, geometry)?; + border.set_ignore_cursor_events(true)?; + border.set_position(tauri::Position::Logical(geometry.logical_position()))?; + border.set_size(tauri::Size::Logical(geometry.logical_size()))?; + border.show()?; + } + + hide_stale_guard_borders(app, &guard_borders)?; + Ok(()) +} + +fn hide_guard_border(app: &AppHandle) -> tauri::Result<()> { + for (label, border) in app.webview_windows() { + if is_guard_border_label(&label) { + border.hide()?; + } + } + + Ok(()) +} + +fn guard_border_window( + app: &AppHandle, + label: &str, + geometry: &GuardBorderGeometry, +) -> tauri::Result { + let logical_position = geometry.logical_position(); + let logical_size = geometry.logical_size(); + + match app.get_webview_window(label) { + Some(border) => Ok(border), None => WebviewWindowBuilder::new( app, - GUARD_BORDER_LABEL, - WebviewUrl::App("index.html".into()), + label, + WebviewUrl::App("index.html?surface=guard-border".into()), ) .title("Stay Guard Border") .decorations(false) @@ -533,29 +585,74 @@ fn show_guard_border(app: &AppHandle, anchor: &WebviewWindow) -> tauri::Result<( .transparent(true) .shadow(false) .resizable(false) + .position(logical_position.x, logical_position.y) + .inner_size(logical_size.width, logical_size.height) .focusable(false) .focused(false) .visible(false) - .build()?, - }; + .build(), + } +} - let Some(monitor) = anchor.current_monitor()? else { - return Ok(()); - }; +fn hide_stale_guard_borders( + app: &AppHandle, + active_borders: &[(String, GuardBorderGeometry)], +) -> tauri::Result<()> { + for (label, border) in app.webview_windows() { + let is_active = active_borders + .iter() + .any(|(active_label, _)| active_label == &label); + + if is_guard_border_label(&label) && !is_active { + border.hide()?; + } + } - border.set_ignore_cursor_events(true)?; - border.set_position(tauri::Position::Physical(*monitor.position()))?; - border.set_size(tauri::Size::Physical(*monitor.size()))?; - border.show()?; Ok(()) } -fn hide_guard_border(app: &AppHandle) -> tauri::Result<()> { - if let Some(border) = app.get_webview_window(GUARD_BORDER_LABEL) { - border.hide()?; +fn guard_border_windows_for_monitors( + monitors: &[GuardBorderGeometry], +) -> Vec<(String, GuardBorderGeometry)> { + monitors + .iter() + .cloned() + .enumerate() + .map(|(index, geometry)| (guard_border_label(index), geometry)) + .collect() +} + +fn guard_border_label(index: usize) -> String { + if index == 0 { + GUARD_BORDER_LABEL.to_string() + } else { + format!("{GUARD_BORDER_LABEL}-{index}") } +} - Ok(()) +fn is_guard_border_label(label: &str) -> bool { + if label == GUARD_BORDER_LABEL { + return true; + } + + let Some(index) = label + .strip_prefix(GUARD_BORDER_LABEL) + .and_then(|suffix| suffix.strip_prefix('-')) + else { + return false; + }; + + !index.is_empty() && index.chars().all(|character| character.is_ascii_digit()) +} + +impl GuardBorderGeometry { + fn logical_position(&self) -> LogicalPosition { + self.position.to_logical(self.scale_factor) + } + + fn logical_size(&self) -> LogicalSize { + self.size.to_logical(self.scale_factor) + } } fn position_focused_window_overlay( @@ -597,11 +694,11 @@ fn overlay_geometry_from_bounds(bounds: &WindowBounds) -> OverlayGeometry { // active-win-pos-rs reads kCGWindowBounds on macOS, which are screen points. // Passing them as physical pixels lets Tao divide by the Stay window scale factor. OverlayGeometry::Logical { - position: LogicalPosition { + position: OverlayLogicalPosition { x: f64::from(bounds.x), y: f64::from(bounds.y), }, - size: LogicalSize { + size: OverlayLogicalSize { width: f64::from(bounds.width), height: f64::from(bounds.height), }, @@ -648,11 +745,11 @@ mod tests { assert_eq!( focused_overlay_geometry(&focused), Some(OverlayGeometry::Logical { - position: LogicalPosition { + position: OverlayLogicalPosition { x: 3360.0, y: -323.0 }, - size: LogicalSize { + size: OverlayLogicalSize { width: 1440.0, height: 1265.0 }, @@ -781,6 +878,103 @@ mod tests { ); } + #[test] + fn guard_border_windows_cover_every_display() { + let monitors = vec![ + GuardBorderGeometry { + position: PhysicalPosition { x: 0, y: 0 }, + size: PhysicalSize { + width: 1920, + height: 1080, + }, + scale_factor: 2.0, + }, + GuardBorderGeometry { + position: PhysicalPosition { x: 1920, y: -180 }, + size: PhysicalSize { + width: 1440, + height: 900, + }, + scale_factor: 1.0, + }, + GuardBorderGeometry { + position: PhysicalPosition { x: -1280, y: 120 }, + size: PhysicalSize { + width: 1280, + height: 720, + }, + scale_factor: 1.0, + }, + ]; + + assert_eq!( + guard_border_windows_for_monitors(&monitors), + vec![ + ("guard-border".to_string(), monitors[0].clone()), + ("guard-border-1".to_string(), monitors[1].clone()), + ("guard-border-2".to_string(), monitors[2].clone()), + ] + ); + } + + #[test] + fn guard_border_geometry_uses_each_display_scale_for_logical_placement() { + let primary = GuardBorderGeometry { + position: PhysicalPosition { x: 0, y: 0 }, + size: PhysicalSize { + width: 3840, + height: 2160, + }, + scale_factor: 2.0, + }; + let secondary = GuardBorderGeometry { + position: PhysicalPosition { x: 3840, y: -360 }, + size: PhysicalSize { + width: 1920, + height: 1080, + }, + scale_factor: 1.0, + }; + + assert_eq!( + primary.logical_position(), + LogicalPosition { x: 0.0, y: 0.0 } + ); + assert_eq!( + primary.logical_size(), + LogicalSize { + width: 1920.0, + height: 1080.0, + } + ); + assert_eq!( + secondary.logical_position(), + LogicalPosition { + x: 3840.0, + y: -360.0, + } + ); + assert_eq!( + secondary.logical_size(), + LogicalSize { + width: 1920.0, + height: 1080.0, + } + ); + } + + #[test] + fn guard_border_label_detection_matches_only_guard_border_windows() { + assert!(is_guard_border_label("guard-border")); + assert!(is_guard_border_label("guard-border-1")); + assert!(is_guard_border_label("guard-border-42")); + + assert!(!is_guard_border_label("guard-border-")); + assert!(!is_guard_border_label("guard-border-left")); + assert!(!is_guard_border_label("guard-border-preview-1")); + assert!(!is_guard_border_label("main")); + } + #[test] fn hides_main_window_only_when_ready_and_idle() { assert!(should_hide_main_window(&GuardView::Idle { diff --git a/apps/desktop/src/performance.test.tsx b/apps/desktop/src/performance.test.tsx new file mode 100644 index 0000000..b54b68b --- /dev/null +++ b/apps/desktop/src/performance.test.tsx @@ -0,0 +1,148 @@ +import { act, fireEvent, render, screen } from "@testing-library/react"; +import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; +import styles from "./styles.css?raw"; +import { StatusShell } from "./ui/StatusShell"; + +const tauriMocks = vi.hoisted(() => ({ + hide: vi.fn(() => Promise.resolve()), + invoke: vi.fn(() => Promise.resolve()), +})); + +vi.mock("@tauri-apps/api/core", () => ({ + invoke: tauriMocks.invoke, + isTauri: () => true, +})); + +vi.mock("@tauri-apps/api/window", () => ({ + getCurrentWindow: () => ({ + hide: tauriMocks.hide, + }), +})); + +describe("performance budgets", () => { + beforeEach(() => { + tauriMocks.invoke.mockClear(); + vi.useFakeTimers(); + }); + + afterEach(() => { + vi.useRealTimers(); + }); + + it("updates the native guard panel only for real state changes", () => { + render( + +
Guarded
+
, + ); + + const shell = screen.getByRole("main"); + + fireEvent.mouseEnter(shell); + fireEvent.mouseEnter(shell); + fireEvent.focus(shell); + + expect(shell).toHaveClass("stay-shell-revealed"); + expect(tauriMocks.invoke).toHaveBeenCalledTimes(1); + expect(tauriMocks.invoke).toHaveBeenLastCalledWith("set_guarding_panel_expanded", { + expanded: true, + }); + + fireEvent.mouseLeave(shell); + act(() => { + vi.advanceTimersByTime(80); + }); + + expect(shell).toHaveClass("stay-shell-collapsed"); + expect(tauriMocks.invoke).toHaveBeenCalledTimes(2); + expect(tauriMocks.invoke).toHaveBeenLastCalledWith("set_guarding_panel_expanded", { + expanded: false, + }); + }); + + it("does not animate filter effects on shell or locked overlay keyframes", () => { + const animatedFilters = keyframeBlocks(styles) + .filter((block) => !block.name.startsWith("launch-")) + .flatMap((block) => block.body.match(/\bfilter\s*:/g)?.map(() => block.name) ?? []); + + expect(animatedFilters).toEqual([]); + }); + + it("keeps shell transitions off layout and paint-heavy properties", () => { + const transition = declarationValue(declarationBlock(".stay-shell"), "transition"); + + expect(transition).not.toMatch(/\b(background|box-shadow|padding|border-radius|filter|backdrop-filter)\b/); + }); + + it("allows the locked overlay content to scroll on constrained screens", () => { + const lockedPanel = declarationBlock(".stay-shell-locked .mode-panel-active"); + + expect(declarationValue(lockedPanel, "overflow")).toBe("auto"); + }); +}); + +function declarationBlock(selector: string): string { + const selectorStart = styles.indexOf(`${selector} {`); + + if (selectorStart === -1) { + throw new Error(`Could not find CSS block for ${selector}`); + } + + const blockStart = styles.indexOf("{", selectorStart); + const blockEnd = findMatchingBrace(styles, blockStart); + + return styles.slice(blockStart + 1, blockEnd); +} + +function declarationValue(block: string, property: string): string { + const match = block.match(new RegExp(`${escapeRegex(property)}\\s*:\\s*([^;]+);`)); + + if (!match) { + throw new Error(`Could not find ${property} declaration`); + } + + return match[1].trim(); +} + +function keyframeBlocks(css: string): Array<{ name: string; body: string }> { + const blocks: Array<{ name: string; body: string }> = []; + const keyframePattern = /@keyframes\s+([a-z-]+)/g; + let match: RegExpExecArray | null; + + while ((match = keyframePattern.exec(css)) !== null) { + const blockStart = css.indexOf("{", match.index); + const blockEnd = findMatchingBrace(css, blockStart); + + blocks.push({ + name: match[1], + body: css.slice(blockStart + 1, blockEnd), + }); + keyframePattern.lastIndex = blockEnd + 1; + } + + return blocks; +} + +function findMatchingBrace(input: string, openingBraceIndex: number): number { + let depth = 0; + + for (let index = openingBraceIndex; index < input.length; index += 1) { + if (input[index] === "{") { + depth += 1; + } + + if (input[index] === "}") { + depth -= 1; + } + + if (depth === 0) { + return index; + } + } + + throw new Error("Could not find matching CSS brace"); +} + +function escapeRegex(value: string): string { + return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); +} diff --git a/apps/desktop/src/styles.css b/apps/desktop/src/styles.css index 54e2b93..c576144 100644 --- a/apps/desktop/src/styles.css +++ b/apps/desktop/src/styles.css @@ -130,8 +130,8 @@ button.ghost { 0 -0.5px 0 rgba(26, 28, 31, 0.05) inset, 0 4px 14px rgba(26, 28, 31, 0.06), 0 1px 2px rgba(26, 28, 31, 0.04); - backdrop-filter: blur(20px) saturate(1.5); - -webkit-backdrop-filter: blur(20px) saturate(1.5); + backdrop-filter: blur(10px) saturate(1.25); + -webkit-backdrop-filter: blur(10px) saturate(1.25); } button.ghost:hover { @@ -164,8 +164,8 @@ input { font-feature-settings: "tnum", "ss01"; font-variant-numeric: tabular-nums; letter-spacing: 0.18em; - backdrop-filter: blur(20px) saturate(1.5); - -webkit-backdrop-filter: blur(20px) saturate(1.5); + backdrop-filter: blur(10px) saturate(1.25); + -webkit-backdrop-filter: blur(10px) saturate(1.25); transition: border-color 160ms ease, box-shadow 200ms ease, @@ -259,8 +259,8 @@ input[aria-invalid="true"] { 0 1px 0 rgba(255, 255, 255, 0.86) inset, 0 -0.5px 0 rgba(26, 28, 31, 0.05) inset, 0 7px 18px rgba(26, 28, 31, 0.08); - backdrop-filter: blur(20px) saturate(1.5); - -webkit-backdrop-filter: blur(20px) saturate(1.5); + backdrop-filter: blur(10px) saturate(1.25); + -webkit-backdrop-filter: blur(10px) saturate(1.25); transition: border-color 160ms ease, background 200ms ease, @@ -322,6 +322,7 @@ input[aria-invalid="true"] { .stay-shell { position: relative; isolation: isolate; + contain: layout paint style; display: flex; flex-direction: column; align-items: stretch; @@ -345,15 +346,14 @@ input[aria-invalid="true"] { 0 1px 0 rgba(255, 255, 255, 0.88) inset, /* inner bottom lowlight */ 0 -1px 0 rgba(26, 28, 31, 0.04) inset; - backdrop-filter: blur(40px) saturate(1.8); - -webkit-backdrop-filter: blur(40px) saturate(1.8); + transform: translateZ(0); + backdrop-filter: blur(18px) saturate(1.45); + -webkit-backdrop-filter: blur(18px) saturate(1.45); animation: shell-in 420ms cubic-bezier(0.2, 0.7, 0.2, 1) both; transition: - border-color 180ms ease, - box-shadow 220ms ease, - background 220ms ease, - border-radius 220ms ease, - padding 220ms ease; + border-color 140ms ease, + opacity 160ms ease, + transform 160ms cubic-bezier(0.2, 0.7, 0.2, 1); } /* Ambient drifting light behind the shell glass */ @@ -367,7 +367,7 @@ input[aria-invalid="true"] { radial-gradient(38% 32% at 18% 22%, rgba(23, 109, 101, 0.22), transparent 70%), radial-gradient(34% 30% at 82% 78%, rgba(211, 160, 122, 0.2), transparent 72%), radial-gradient(50% 40% at 50% 50%, rgba(255, 255, 255, 0.35), transparent 76%); - filter: blur(36px); + opacity: 0.78; animation: ambient-drift 24s ease-in-out infinite alternate; } @@ -451,8 +451,8 @@ input[aria-invalid="true"] { 0 0 20px rgba(24, 183, 194, 0.24); cursor: default; animation: none; - backdrop-filter: blur(20px) saturate(1.5); - -webkit-backdrop-filter: blur(20px) saturate(1.5); + backdrop-filter: blur(10px) saturate(1.25); + -webkit-backdrop-filter: blur(10px) saturate(1.25); } .stay-shell-guarding.stay-shell-collapsed::before, @@ -657,8 +657,8 @@ label { letter-spacing: 0.01em; line-height: 1; white-space: nowrap; - backdrop-filter: blur(18px) saturate(1.5); - -webkit-backdrop-filter: blur(18px) saturate(1.5); + backdrop-filter: blur(10px) saturate(1.25); + -webkit-backdrop-filter: blur(10px) saturate(1.25); } .status-pill::before { @@ -805,8 +805,8 @@ label { box-shadow: 0 18px 70px rgba(33, 31, 27, 0.18), 0 1px 0 rgba(255, 255, 255, 0.4) inset; - backdrop-filter: blur(34px) saturate(1.5); - -webkit-backdrop-filter: blur(34px) saturate(1.5); + backdrop-filter: blur(16px) saturate(1.25); + -webkit-backdrop-filter: blur(16px) saturate(1.25); animation: overlay-in 480ms cubic-bezier(0.2, 0.7, 0.2, 1) both; } @@ -815,7 +815,7 @@ label { background: radial-gradient(38% 28% at 22% 18%, rgba(23, 109, 101, 0.18), transparent 72%), radial-gradient(36% 30% at 78% 82%, rgba(211, 160, 122, 0.16), transparent 72%); - filter: blur(50px); + opacity: 0.72; } .stay-shell-locked::after { @@ -848,7 +848,9 @@ label { width: min(calc(100vw - 48px), 440px); max-height: calc(100vh - 120px); padding: 26px 26px 22px; - overflow: hidden; + overflow: auto; + overscroll-behavior: contain; + scrollbar-width: none; border: 0.5px solid rgba(255, 255, 255, 0.62); border-radius: 22px; background: @@ -858,11 +860,16 @@ label { 0 24px 70px rgba(33, 31, 27, 0.22), 0 1px 0 rgba(255, 255, 255, 0.86) inset, 0 -0.5px 0 rgba(26, 28, 31, 0.04) inset; - backdrop-filter: blur(40px) saturate(1.6); - -webkit-backdrop-filter: blur(40px) saturate(1.6); + contain: layout paint style; + backdrop-filter: blur(16px) saturate(1.25); + -webkit-backdrop-filter: blur(16px) saturate(1.25); animation: card-in 520ms cubic-bezier(0.2, 0.7, 0.2, 1) 80ms both; } +.stay-shell-locked .mode-panel-active::-webkit-scrollbar { + display: none; +} + .stay-shell-locked .error-line { color: #8f2e22; } @@ -1593,13 +1600,11 @@ label { from { opacity: 0; transform: translateY(6px) scale(0.985); - filter: blur(2px); } to { opacity: 1; transform: translateY(0) scale(1); - filter: blur(0); } } @@ -1617,13 +1622,11 @@ label { from { opacity: 0; transform: translateY(8px) scale(0.97); - filter: blur(3px); } to { opacity: 1; transform: translateY(0) scale(1); - filter: blur(0); } } diff --git a/apps/desktop/src/ui/StatusShell.tsx b/apps/desktop/src/ui/StatusShell.tsx index c24a0e8..1b35778 100644 --- a/apps/desktop/src/ui/StatusShell.tsx +++ b/apps/desktop/src/ui/StatusShell.tsx @@ -3,6 +3,8 @@ import { getCurrentWindow } from "@tauri-apps/api/window"; import { useEffect, useRef, useState } from "react"; import type { FocusEvent, ReactNode } from "react"; +const guardPanelCollapseDelayMs = 60; + type StatusShellProps = { mode: string; children: ReactNode; @@ -13,9 +15,11 @@ export function StatusShell({ mode, children, status }: StatusShellProps) { const isGuarding = mode === "guarding"; const [isGuardPanelExpanded, setIsGuardPanelExpanded] = useState(false); const collapseTimer = useRef(undefined); + const isGuardPanelExpandedRef = useRef(false); useEffect(() => { if (!isGuarding) { + isGuardPanelExpandedRef.current = false; setIsGuardPanelExpanded(false); } @@ -35,10 +39,15 @@ export function StatusShell({ mode, children, status }: StatusShellProps) { collapseTimer.current = window.setTimeout(() => { collapseTimer.current = undefined; commitGuardPanelExpanded(false); - }, 180); + }, guardPanelCollapseDelayMs); } function commitGuardPanelExpanded(expanded: boolean): void { + if (isGuardPanelExpandedRef.current === expanded) { + return; + } + + isGuardPanelExpandedRef.current = expanded; setIsGuardPanelExpanded(expanded); if (!isTauri()) {