diff --git a/apps/desktop/dist/assets/index-B5v3W6Qd.css b/apps/desktop/dist/assets/index-B5v3W6Qd.css new file mode 100644 index 0000000..7b61f42 --- /dev/null +++ b/apps/desktop/dist/assets/index-B5v3W6Qd.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(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-BfOOoQLP.js b/apps/desktop/dist/assets/index-BfOOoQLP.js deleted file mode 100644 index a5fb4d0..0000000 --- a/apps/desktop/dist/assets/index-BfOOoQLP.js +++ /dev/null @@ -1,9 +0,0 @@ -(function(){const f=document.createElement("link").relList;if(f&&f.supports&&f.supports("modulepreload"))return;for(const D of document.querySelectorAll('link[rel="modulepreload"]'))o(D);new MutationObserver(D=>{for(const j of D)if(j.type==="childList")for(const x of j.addedNodes)x.tagName==="LINK"&&x.rel==="modulepreload"&&o(x)}).observe(document,{childList:!0,subtree:!0});function S(D){const j={};return D.integrity&&(j.integrity=D.integrity),D.referrerPolicy&&(j.referrerPolicy=D.referrerPolicy),D.crossOrigin==="use-credentials"?j.credentials="include":D.crossOrigin==="anonymous"?j.credentials="omit":j.credentials="same-origin",j}function o(D){if(D.ep)return;D.ep=!0;const j=S(D);fetch(D.href,j)}})();var _f={exports:{}},Ou={};var Yr;function Nm(){if(Yr)return Ou;Yr=1;var s=Symbol.for("react.transitional.element"),f=Symbol.for("react.fragment");function S(o,D,j){var x=null;if(j!==void 0&&(x=""+j),D.key!==void 0&&(x=""+D.key),"key"in D){j={};for(var k in D)k!=="key"&&(j[k]=D[k])}else j=D;return D=j.ref,{$$typeof:s,type:o,key:x,ref:D!==void 0?D:null,props:j}}return Ou.Fragment=f,Ou.jsx=S,Ou.jsxs=S,Ou}var xr;function Um(){return xr||(xr=1,_f.exports=Nm()),_f.exports}var q=Um();function Rm(s,f,S,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 S==="m"?o:S==="a"?o.call(s):o?o.value:f.get(s)}function Cm(s,f,S,o,D){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,S),S}var Fn;const _t="__TAURI_TO_IPC_KEY__";function Hm(s,f=!1){return window.__TAURI_INTERNALS__.transformCallback(s,f)}async function O(s,f={},S){return window.__TAURI_INTERNALS__.invoke(s,f,S)}class Bm{get rid(){return Rm(this,Fn,"f")}constructor(f){Fn.set(this,void 0),Cm(this,Fn,f)}async close(){return O("plugin:resources|close",{rid:this.rid})}}Fn=new WeakMap;function li(){return!!(globalThis||window).isTauri}class Ir{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 Mu(this.width*f,this.height*f)}[_t](){return{width:this.width,height:this.height}}toJSON(){return this[_t]()}}class Mu{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 Ir(this.width/f,this.height/f)}[_t](){return{width:this.width,height:this.height}}toJSON(){return this[_t]()}}class Ue{constructor(f){this.size=f}toLogical(f){return this.size instanceof Ir?this.size:this.size.toLogical(f)}toPhysical(f){return this.size instanceof Mu?this.size:this.size.toPhysical(f)}[_t](){return{[`${this.size.type}`]:{width:this.size.width,height:this.size.height}}}toJSON(){return this[_t]()}}class Pr{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 Ta(this.x*f,this.y*f)}[_t](){return{x:this.x,y:this.y}}toJSON(){return this[_t]()}}class Ta{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 Pr(this.x/f,this.y/f)}[_t](){return{x:this.x,y:this.y}}toJSON(){return this[_t]()}}class kn{constructor(f){this.position=f}toLogical(f){return this.position instanceof Pr?this.position:this.position.toLogical(f)}toPhysical(f){return this.position instanceof Ta?this.position:this.position.toPhysical(f)}[_t](){return{[`${this.position.type}`]:{x:this.position.x,y:this.position.y}}}toJSON(){return this[_t]()}}var ct;(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"})(ct||(ct={}));async function lh(s,f){window.__TAURI_EVENT_PLUGIN_INTERNALS__.unregisterListener(s,f),await O("plugin:event|unlisten",{event:s,eventId:f})}async function Rf(s,f,S){var o;const D=typeof S?.target=="string"?{kind:"AnyLabel",label:S.target}:(o=S?.target)!==null&&o!==void 0?o:{kind:"Any"};return O("plugin:event|listen",{event:s,target:D,handler:Hm(f)}).then(j=>async()=>lh(s,j))}async function qm(s,f,S){return Rf(s,o=>{lh(s,o.id),f(o)},S)}async function jm(s,f){await O("plugin:event|emit",{event:s,payload:f})}async function Ym(s,f,S){await O("plugin:event|emit_to",{target:typeof s=="string"?{kind:"AnyLabel",label:s}:s,event:f,payload:S})}class Nu extends Bm{constructor(f){super(f)}static async new(f,S,o){return O("plugin:image|new",{rgba:In(f),width:S,height:o}).then(D=>new Nu(D))}static async fromBytes(f){return O("plugin:image|from_bytes",{bytes:In(f)}).then(S=>new Nu(S))}static async fromPath(f){return O("plugin:image|from_path",{path:f}).then(S=>new Nu(S))}async rgba(){return O("plugin:image|rgba",{rid:this.rid}).then(f=>new Uint8Array(f))}async size(){return O("plugin:image|size",{rid:this.rid})}}function In(s){return s==null?null:typeof s=="string"?s:s instanceof Nu?s.rid:s}var Uf;(function(s){s[s.Critical=1]="Critical",s[s.Informational=2]="Informational"})(Uf||(Uf={}));class xm{constructor(f){this._preventDefault=!1,this.event=f.event,this.id=f.id}preventDefault(){this._preventDefault=!0}isPreventDefault(){return this._preventDefault}}var wr;(function(s){s.None="none",s.Normal="normal",s.Indeterminate="indeterminate",s.Paused="paused",s.Error="error"})(wr||(wr={}));function Cf(){return new th(window.__TAURI_INTERNALS__.metadata.currentWindow.label,{skip:!0})}async function pf(){return O("plugin:window|get_all_windows").then(s=>s.map(f=>new th(f,{skip:!0})))}const zf=["tauri://created","tauri://error"];class th{constructor(f,S={}){var o;this.label=f,this.listeners=Object.create(null),S?.skip||O("plugin:window|create",{options:{...S,parent:typeof S.parent=="string"?S.parent:(o=S.parent)===null||o===void 0?void 0:o.label,label:f}}).then(async()=>this.emit("tauri://created")).catch(async D=>this.emit("tauri://error",D))}static async getByLabel(f){var S;return(S=(await pf()).find(o=>o.label===f))!==null&&S!==void 0?S:null}static getCurrent(){return Cf()}static async getAll(){return pf()}static async getFocusedWindow(){for(const f of await pf())if(await f.isFocused())return f;return null}async listen(f,S){return this._handleTauriEvent(f,S)?()=>{const o=this.listeners[f];o.splice(o.indexOf(S),1)}:Rf(f,S,{target:{kind:"Window",label:this.label}})}async once(f,S){return this._handleTauriEvent(f,S)?()=>{const o=this.listeners[f];o.splice(o.indexOf(S),1)}:qm(f,S,{target:{kind:"Window",label:this.label}})}async emit(f,S){if(zf.includes(f)){for(const o of this.listeners[f]||[])o({event:f,id:-1,payload:S});return}return jm(f,S)}async emitTo(f,S,o){if(zf.includes(S)){for(const D of this.listeners[S]||[])D({event:S,id:-1,payload:o});return}return Ym(f,S,o)}_handleTauriEvent(f,S){return zf.includes(f)?(f in this.listeners?this.listeners[f].push(S):this.listeners[f]=[S],!0):!1}async scaleFactor(){return O("plugin:window|scale_factor",{label:this.label})}async innerPosition(){return O("plugin:window|inner_position",{label:this.label}).then(f=>new Ta(f))}async outerPosition(){return O("plugin:window|outer_position",{label:this.label}).then(f=>new Ta(f))}async innerSize(){return O("plugin:window|inner_size",{label:this.label}).then(f=>new Mu(f))}async outerSize(){return O("plugin:window|outer_size",{label:this.label}).then(f=>new Mu(f))}async isFullscreen(){return O("plugin:window|is_fullscreen",{label:this.label})}async isMinimized(){return O("plugin:window|is_minimized",{label:this.label})}async isMaximized(){return O("plugin:window|is_maximized",{label:this.label})}async isFocused(){return O("plugin:window|is_focused",{label:this.label})}async isDecorated(){return O("plugin:window|is_decorated",{label:this.label})}async isResizable(){return O("plugin:window|is_resizable",{label:this.label})}async isMaximizable(){return O("plugin:window|is_maximizable",{label:this.label})}async isMinimizable(){return O("plugin:window|is_minimizable",{label:this.label})}async isClosable(){return O("plugin:window|is_closable",{label:this.label})}async isVisible(){return O("plugin:window|is_visible",{label:this.label})}async title(){return O("plugin:window|title",{label:this.label})}async theme(){return O("plugin:window|theme",{label:this.label})}async isAlwaysOnTop(){return O("plugin:window|is_always_on_top",{label:this.label})}async activityName(){return O("plugin:window|activity_name",{label:this.label})}async sceneIdentifier(){return O("plugin:window|scene_identifier",{label:this.label})}async center(){return O("plugin:window|center",{label:this.label})}async requestUserAttention(f){let S=null;return f&&(f===Uf.Critical?S={type:"Critical"}:S={type:"Informational"}),O("plugin:window|request_user_attention",{label:this.label,value:S})}async setResizable(f){return O("plugin:window|set_resizable",{label:this.label,value:f})}async setEnabled(f){return O("plugin:window|set_enabled",{label:this.label,value:f})}async isEnabled(){return O("plugin:window|is_enabled",{label:this.label})}async setMaximizable(f){return O("plugin:window|set_maximizable",{label:this.label,value:f})}async setMinimizable(f){return O("plugin:window|set_minimizable",{label:this.label,value:f})}async setClosable(f){return O("plugin:window|set_closable",{label:this.label,value:f})}async setTitle(f){return O("plugin:window|set_title",{label:this.label,value:f})}async maximize(){return O("plugin:window|maximize",{label:this.label})}async unmaximize(){return O("plugin:window|unmaximize",{label:this.label})}async toggleMaximize(){return O("plugin:window|toggle_maximize",{label:this.label})}async minimize(){return O("plugin:window|minimize",{label:this.label})}async unminimize(){return O("plugin:window|unminimize",{label:this.label})}async show(){return O("plugin:window|show",{label:this.label})}async hide(){return O("plugin:window|hide",{label:this.label})}async close(){return O("plugin:window|close",{label:this.label})}async destroy(){return O("plugin:window|destroy",{label:this.label})}async setDecorations(f){return O("plugin:window|set_decorations",{label:this.label,value:f})}async setShadow(f){return O("plugin:window|set_shadow",{label:this.label,value:f})}async setEffects(f){return O("plugin:window|set_effects",{label:this.label,value:f})}async clearEffects(){return O("plugin:window|set_effects",{label:this.label,value:null})}async setAlwaysOnTop(f){return O("plugin:window|set_always_on_top",{label:this.label,value:f})}async setAlwaysOnBottom(f){return O("plugin:window|set_always_on_bottom",{label:this.label,value:f})}async setContentProtected(f){return O("plugin:window|set_content_protected",{label:this.label,value:f})}async setSize(f){return O("plugin:window|set_size",{label:this.label,value:f instanceof Ue?f:new Ue(f)})}async setMinSize(f){return O("plugin:window|set_min_size",{label:this.label,value:f instanceof Ue?f:f?new Ue(f):null})}async setMaxSize(f){return O("plugin:window|set_max_size",{label:this.label,value:f instanceof Ue?f:f?new Ue(f):null})}async setSizeConstraints(f){function S(o){return o?{Logical:o}:null}return O("plugin:window|set_size_constraints",{label:this.label,value:{minWidth:S(f?.minWidth),minHeight:S(f?.minHeight),maxWidth:S(f?.maxWidth),maxHeight:S(f?.maxHeight)}})}async setPosition(f){return O("plugin:window|set_position",{label:this.label,value:f instanceof kn?f:new kn(f)})}async setFullscreen(f){return O("plugin:window|set_fullscreen",{label:this.label,value:f})}async setSimpleFullscreen(f){return O("plugin:window|set_simple_fullscreen",{label:this.label,value:f})}async setFocus(){return O("plugin:window|set_focus",{label:this.label})}async setFocusable(f){return O("plugin:window|set_focusable",{label:this.label,value:f})}async setIcon(f){return O("plugin:window|set_icon",{label:this.label,value:In(f)})}async setSkipTaskbar(f){return O("plugin:window|set_skip_taskbar",{label:this.label,value:f})}async setCursorGrab(f){return O("plugin:window|set_cursor_grab",{label:this.label,value:f})}async setCursorVisible(f){return O("plugin:window|set_cursor_visible",{label:this.label,value:f})}async setCursorIcon(f){return O("plugin:window|set_cursor_icon",{label:this.label,value:f})}async setBackgroundColor(f){return O("plugin:window|set_background_color",{color:f})}async setCursorPosition(f){return O("plugin:window|set_cursor_position",{label:this.label,value:f instanceof kn?f:new kn(f)})}async setIgnoreCursorEvents(f){return O("plugin:window|set_ignore_cursor_events",{label:this.label,value:f})}async startDragging(){return O("plugin:window|start_dragging",{label:this.label})}async startResizeDragging(f){return O("plugin:window|start_resize_dragging",{label:this.label,value:f})}async setBadgeCount(f){return O("plugin:window|set_badge_count",{label:this.label,value:f})}async setBadgeLabel(f){return O("plugin:window|set_badge_label",{label:this.label,value:f})}async setOverlayIcon(f){return O("plugin:window|set_overlay_icon",{label:this.label,value:f?In(f):void 0})}async setProgressBar(f){return O("plugin:window|set_progress_bar",{label:this.label,value:f})}async setVisibleOnAllWorkspaces(f){return O("plugin:window|set_visible_on_all_workspaces",{label:this.label,value:f})}async setTitleBarStyle(f){return O("plugin:window|set_title_bar_style",{label:this.label,value:f})}async setTheme(f){return O("plugin:window|set_theme",{label:this.label,value:f})}async onResized(f){return this.listen(ct.WINDOW_RESIZED,S=>{S.payload=new Mu(S.payload),f(S)})}async onMoved(f){return this.listen(ct.WINDOW_MOVED,S=>{S.payload=new Ta(S.payload),f(S)})}async onCloseRequested(f){return this.listen(ct.WINDOW_CLOSE_REQUESTED,async S=>{const o=new xm(S);await f(o),o.isPreventDefault()||await this.destroy()})}async onDragDropEvent(f){const S=await this.listen(ct.DRAG_ENTER,x=>{f({...x,payload:{type:"enter",paths:x.payload.paths,position:new Ta(x.payload.position)}})}),o=await this.listen(ct.DRAG_OVER,x=>{f({...x,payload:{type:"over",position:new Ta(x.payload.position)}})}),D=await this.listen(ct.DRAG_DROP,x=>{f({...x,payload:{type:"drop",paths:x.payload.paths,position:new Ta(x.payload.position)}})}),j=await this.listen(ct.DRAG_LEAVE,x=>{f({...x,payload:{type:"leave"}})});return()=>{S(),D(),o(),j()}}async onFocusChanged(f){const S=await this.listen(ct.WINDOW_FOCUS,D=>{f({...D,payload:!0})}),o=await this.listen(ct.WINDOW_BLUR,D=>{f({...D,payload:!1})});return()=>{S(),o()}}async onScaleChanged(f){return this.listen(ct.WINDOW_SCALE_FACTOR_CHANGED,f)}async onThemeChanged(f){return this.listen(ct.WINDOW_THEME_CHANGED,f)}}var Gr;(function(s){s.Disabled="disabled",s.Throttle="throttle",s.Suspend="suspend"})(Gr||(Gr={}));var Qr;(function(s){s.Default="default",s.FluentOverlay="fluentOverlay"})(Qr||(Qr={}));var Xr;(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"})(Xr||(Xr={}));var Lr;(function(s){s.FollowsWindowActiveState="followsWindowActiveState",s.Active="active",s.Inactive="inactive"})(Lr||(Lr={}));var Ef={exports:{}},Q={};var Zr;function wm(){if(Zr)return Q;Zr=1;var s=Symbol.for("react.transitional.element"),f=Symbol.for("react.portal"),S=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),D=Symbol.for("react.profiler"),j=Symbol.for("react.consumer"),x=Symbol.for("react.context"),k=Symbol.for("react.forward_ref"),U=Symbol.for("react.suspense"),A=Symbol.for("react.memo"),V=Symbol.for("react.lazy"),R=Symbol.for("react.activity"),K=Symbol.iterator;function tl(h){return h===null||typeof h!="object"?null:(h=K&&h[K]||h["@@iterator"],typeof h=="function"?h:null)}var Dl={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},zl=Object.assign,pt={};function kl(h,T,N){this.props=h,this.context=T,this.refs=pt,this.updater=N||Dl}kl.prototype.isReactComponent={},kl.prototype.setState=function(h,T){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,T,"setState")},kl.prototype.forceUpdate=function(h){this.updater.enqueueForceUpdate(this,h,"forceUpdate")};function It(){}It.prototype=kl.prototype;function jl(h,T,N){this.props=h,this.context=T,this.refs=pt,this.updater=N||Dl}var st=jl.prototype=new It;st.constructor=jl,zl(st,kl.prototype),st.isPureReactComponent=!0;var Ot=Array.isArray;function Gl(){}var P={H:null,A:null,T:null,S:null},Ql=Object.prototype.hasOwnProperty;function Dt(h,T,N){var H=N.ref;return{$$typeof:s,type:h,key:T,ref:H!==void 0?H:null,props:N}}function Va(h,T){return Dt(h.type,T,h.props)}function Mt(h){return typeof h=="object"&&h!==null&&h.$$typeof===s}function Xl(h){var T={"=":"=0",":":"=2"};return"$"+h.replace(/[=:]/g,function(N){return T[N]})}var Aa=/\/+/g;function Ht(h,T){return typeof h=="object"&&h!==null&&h.key!=null?Xl(""+h.key):T.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(Gl,Gl):(h.status="pending",h.then(function(T){h.status==="pending"&&(h.status="fulfilled",h.value=T)},function(T){h.status==="pending"&&(h.status="rejected",h.reason=T)})),h.status){case"fulfilled":return h.value;case"rejected":throw h.reason}}throw h}function p(h,T,N,H,X){var J=typeof h;(J==="undefined"||J==="boolean")&&(h=null);var nl=!1;if(h===null)nl=!0;else switch(J){case"bigint":case"string":case"number":nl=!0;break;case"object":switch(h.$$typeof){case s:case f:nl=!0;break;case V:return nl=h._init,p(nl(h._payload),T,N,H,X)}}if(nl)return X=X(h),nl=H===""?"."+Ht(h,0):H,Ot(X)?(N="",nl!=null&&(N=nl.replace(Aa,"$&/")+"/"),p(X,T,N,"",function(He){return He})):X!=null&&(Mt(X)&&(X=Va(X,N+(X.key==null||h&&h.key===X.key?"":(""+X.key).replace(Aa,"$&/")+"/")+nl)),T.push(X)),1;nl=0;var xl=H===""?".":H+":";if(Ot(h))for(var Sl=0;Sl>>1,rl=p[fl];if(0>>1;flD(N,G))HD(X,N)?(p[fl]=X,p[H]=G,fl=H):(p[fl]=N,p[T]=G,fl=T);else if(HD(X,G))p[fl]=X,p[H]=G,fl=H;else break l}}return M}function D(p,M){var G=p.sortIndex-M.sortIndex;return G!==0?G:p.id-M.id}if(s.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var j=performance;s.unstable_now=function(){return j.now()}}else{var x=Date,k=x.now();s.unstable_now=function(){return x.now()-k}}var U=[],A=[],V=1,R=null,K=3,tl=!1,Dl=!1,zl=!1,pt=!1,kl=typeof setTimeout=="function"?setTimeout:null,It=typeof clearTimeout=="function"?clearTimeout:null,jl=typeof setImmediate<"u"?setImmediate:null;function st(p){for(var M=S(A);M!==null;){if(M.callback===null)o(A);else if(M.startTime<=p)o(A),M.sortIndex=M.expirationTime,f(U,M);else break;M=S(A)}}function Ot(p){if(zl=!1,st(p),!Dl)if(S(U)!==null)Dl=!0,Gl||(Gl=!0,Xl());else{var M=S(A);M!==null&&zt(Ot,M.startTime-p)}}var Gl=!1,P=-1,Ql=5,Dt=-1;function Va(){return pt?!0:!(s.unstable_now()-Dtp&&Va());){var fl=R.callback;if(typeof fl=="function"){R.callback=null,K=R.priorityLevel;var rl=fl(R.expirationTime<=p);if(p=s.unstable_now(),typeof rl=="function"){R.callback=rl,st(p),M=!0;break t}R===S(U)&&o(U),st(p)}else o(U);R=S(U)}if(R!==null)M=!0;else{var h=S(A);h!==null&&zt(Ot,h.startTime-p),M=!1}}break l}finally{R=null,K=G,tl=!1}M=void 0}}finally{M?Xl():Gl=!1}}}var Xl;if(typeof jl=="function")Xl=function(){jl(Mt)};else if(typeof MessageChannel<"u"){var Aa=new MessageChannel,Ht=Aa.port2;Aa.port1.onmessage=Mt,Xl=function(){Ht.postMessage(null)}}else Xl=function(){kl(Mt,0)};function zt(p,M){P=kl(function(){p(s.unstable_now())},M)}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(p){p.callback=null},s.unstable_forceFrameRate=function(p){0>p||125fl?(p.sortIndex=G,f(A,p),S(U)===null&&p===S(A)&&(zl?(It(P),P=-1):zl=!0,zt(Ot,G-fl))):(p.sortIndex=rl,f(U,p),Dl||tl||(Dl=!0,Gl||(Gl=!0,Xl()))),p},s.unstable_shouldYield=Va,s.unstable_wrapCallback=function(p){var M=K;return function(){var G=K;K=M;try{return p.apply(this,arguments)}finally{K=G}}}})(Of)),Of}var Jr;function Qm(){return Jr||(Jr=1,Af.exports=Gm()),Af.exports}var Df={exports:{}},Yl={};var Wr;function Xm(){if(Wr)return Yl;Wr=1;var s=Hf();function f(U){var A="https://react.dev/errors/"+U;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(s)}catch(f){console.error(f)}}return s(),Df.exports=Xm(),Df.exports}var kr;function Zm(){if(kr)return Du;kr=1;var s=Qm(),f=Hf(),S=Lm();function o(l){var t="https://react.dev/errors/"+l;if(1rl||(l.current=fl[rl],fl[rl]=null,rl--)}function N(l,t){rl++,fl[rl]=l.current,l.current=t}var H=h(null),X=h(null),J=h(null),nl=h(null);function xl(l,t){switch(N(J,t),N(X,l),N(H,null),t.nodeType){case 9:case 11:l=(l=t.documentElement)&&(l=l.namespaceURI)?ir(l):0;break;default:if(l=t.tagName,t=t.namespaceURI)t=ir(t),l=cr(t,l);else switch(l){case"svg":l=1;break;case"math":l=2;break;default:l=0}}T(H),N(H,l)}function Sl(){T(H),T(X),T(J)}function He(l){l.memoizedState!==null&&N(nl,l);var t=H.current,a=cr(t,l.type);t!==a&&(N(X,l),N(H,a))}function Ru(l){X.current===l&&(T(H),T(X)),nl.current===l&&(T(nl),zu._currentValue=G)}var ti,qf;function Oa(l){if(ti===void 0)try{throw Error()}catch(a){var t=a.stack.trim().match(/\n( *(at )?)/);ti=t&&t[1]||"",qf=-1)":-1u||d[e]!==v[u]){var _=` -`+d[e].replace(" at new "," at ");return l.displayName&&_.includes("")&&(_=_.replace("",l.displayName)),_}while(1<=e&&0<=u);break}}}finally{ai=!1,Error.prepareStackTrace=a}return(a=l?l.displayName||l.name:"")?Oa(a):""}function ih(l,t){switch(l.tag){case 26:case 27:case 5:return Oa(l.type);case 16:return Oa("Lazy");case 13:return l.child!==t&&t!==null?Oa("Suspense Fallback"):Oa("Suspense");case 19:return Oa("SuspenseList");case 0:case 15:return ei(l.type,!1);case 11:return ei(l.type.render,!1);case 1:return ei(l.type,!0);case 31:return Oa("Activity");default:return""}}function jf(l){try{var t="",a=null;do t+=ih(l,a),a=l,l=l.return;while(l);return t}catch(e){return` -Error generating stack: `+e.message+` -`+e.stack}}var ui=Object.prototype.hasOwnProperty,ni=s.unstable_scheduleCallback,ii=s.unstable_cancelCallback,ch=s.unstable_shouldYield,fh=s.unstable_requestPaint,Fl=s.unstable_now,sh=s.unstable_getCurrentPriorityLevel,Yf=s.unstable_ImmediatePriority,xf=s.unstable_UserBlockingPriority,Cu=s.unstable_NormalPriority,oh=s.unstable_LowPriority,wf=s.unstable_IdlePriority,dh=s.log,rh=s.unstable_setDisableYieldValue,Be=null,Il=null;function Pt(l){if(typeof dh=="function"&&rh(l),Il&&typeof Il.setStrictMode=="function")try{Il.setStrictMode(Be,l)}catch{}}var Pl=Math.clz32?Math.clz32:mh,hh=Math.log,yh=Math.LN2;function mh(l){return l>>>=0,l===0?32:31-(hh(l)/yh|0)|0}var Hu=256,Bu=262144,qu=4194304;function Da(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 ju(l,t,a){var e=l.pendingLanes;if(e===0)return 0;var u=0,n=l.suspendedLanes,i=l.pingedLanes;l=l.warmLanes;var c=e&134217727;return c!==0?(e=c&~n,e!==0?u=Da(e):(i&=c,i!==0?u=Da(i):a||(a=c&~l,a!==0&&(u=Da(a))))):(c=e&~n,c!==0?u=Da(c):i!==0?u=Da(i):a||(a=e&~l,a!==0&&(u=Da(a)))),u===0?0:t!==0&&t!==u&&(t&n)===0&&(n=u&-u,a=t&-t,n>=a||n===32&&(a&4194048)!==0)?t:u}function qe(l,t){return(l.pendingLanes&~(l.suspendedLanes&~l.pingedLanes)&t)===0}function vh(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 Gf(){var l=qu;return qu<<=1,(qu&62914560)===0&&(qu=4194304),l}function ci(l){for(var t=[],a=0;31>a;a++)t.push(l);return t}function je(l,t){l.pendingLanes|=t,t!==268435456&&(l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0)}function gh(l,t,a,e,u,n){var i=l.pendingLanes;l.pendingLanes=a,l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0,l.expiredLanes&=a,l.entangledLanes&=a,l.errorRecoveryDisabledLanes&=a,l.shellSuspendCounter=0;var c=l.entanglements,d=l.expirationTimes,v=l.hiddenUpdates;for(a=i&~a;0"u")return null;try{return l.activeElement||l.body}catch{return l.body}}var Eh=/[\n"\\]/g;function dt(l){return l.replace(Eh,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function hi(l,t,a,e,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=""+ot(t)):l.value!==""+ot(t)&&(l.value=""+ot(t)):i!=="submit"&&i!=="reset"||l.removeAttribute("value"),t!=null?yi(l,i,ot(t)):a!=null?yi(l,i,ot(a)):e!=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=""+ot(c):l.removeAttribute("name")}function Pf(l,t,a,e,u,n,i,c){if(n!=null&&typeof n!="function"&&typeof n!="symbol"&&typeof n!="boolean"&&(l.type=n),t!=null||a!=null){if(!(n!=="submit"&&n!=="reset"||t!=null)){ri(l);return}a=a!=null?""+ot(a):"",t=t!=null?""+ot(t):a,c||t===l.value||(l.value=t),l.defaultValue=t}e=e??u,e=typeof e!="function"&&typeof e!="symbol"&&!!e,l.checked=c?l.checked:!!e,l.defaultChecked=!!e,i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(l.name=i),ri(l)}function yi(l,t,a){t==="number"&&wu(l.ownerDocument)===l||l.defaultValue===""+a||(l.defaultValue=""+a)}function Fa(l,t,a,e){if(l=l.options,t){t={};for(var u=0;u"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Si=!1;if(jt)try{var Ge={};Object.defineProperty(Ge,"passive",{get:function(){Si=!0}}),window.addEventListener("test",Ge,Ge),window.removeEventListener("test",Ge,Ge)}catch{Si=!1}var ta=null,_i=null,Qu=null;function is(){if(Qu)return Qu;var l,t=_i,a=t.length,e,u="value"in ta?ta.value:ta.textContent,n=u.length;for(l=0;l=Le),rs=" ",hs=!1;function ys(l,t){switch(l){case"keyup":return Fh.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function ms(l){return l=l.detail,typeof l=="object"&&"data"in l?l.data:null}var te=!1;function Ph(l,t){switch(l){case"compositionend":return ms(t);case"keypress":return t.which!==32?null:(hs=!0,rs);case"textInput":return l=t.data,l===rs&&hs?null:l;default:return null}}function ly(l,t){if(te)return l==="compositionend"||!Ai&&ys(l,t)?(l=is(),Qu=_i=ta=null,te=!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:a,offset:t-l};l=e}l:{for(;a;){if(a.nextSibling){a=a.nextSibling;break l}a=a.parentNode}a=void 0}a=Es(a)}}function As(l,t){return l&&t?l===t?!0:l&&l.nodeType===3?!1:t&&t.nodeType===3?As(l,t.parentNode):"contains"in l?l.contains(t):l.compareDocumentPosition?!!(l.compareDocumentPosition(t)&16):!1:!1}function Os(l){l=l!=null&&l.ownerDocument!=null&&l.ownerDocument.defaultView!=null?l.ownerDocument.defaultView:window;for(var t=wu(l.document);t instanceof l.HTMLIFrameElement;){try{var a=typeof t.contentWindow.location.href=="string"}catch{a=!1}if(a)l=t.contentWindow;else break;t=wu(l.document)}return t}function Mi(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 fy=jt&&"documentMode"in document&&11>=document.documentMode,ae=null,Ni=null,Je=null,Ui=!1;function Ds(l,t,a){var e=a.window===a?a.document:a.nodeType===9?a:a.ownerDocument;Ui||ae==null||ae!==wu(e)||(e=ae,"selectionStart"in e&&Mi(e)?e={start:e.selectionStart,end:e.selectionEnd}:(e=(e.ownerDocument&&e.ownerDocument.defaultView||window).getSelection(),e={anchorNode:e.anchorNode,anchorOffset:e.anchorOffset,focusNode:e.focusNode,focusOffset:e.focusOffset}),Je&&Ke(Je,e)||(Je=e,e=qn(Ni,"onSelect"),0>=i,u-=i,Nt=1<<32-Pl(t)+u|a<Z?(I=B,B=null):I=B.sibling;var el=g(y,B,m[Z],z);if(el===null){B===null&&(B=I);break}l&&B&&el.alternate===null&&t(y,B),r=n(el,r,Z),al===null?Y=el:al.sibling=el,al=el,B=I}if(Z===m.length)return a(y,B),ll&&xt(y,Z),Y;if(B===null){for(;ZZ?(I=B,B=null):I=B.sibling;var Ea=g(y,B,el.value,z);if(Ea===null){B===null&&(B=I);break}l&&B&&Ea.alternate===null&&t(y,B),r=n(Ea,r,Z),al===null?Y=Ea:al.sibling=Ea,al=Ea,B=I}if(el.done)return a(y,B),ll&&xt(y,Z),Y;if(B===null){for(;!el.done;Z++,el=m.next())el=E(y,el.value,z),el!==null&&(r=n(el,r,Z),al===null?Y=el:al.sibling=el,al=el);return ll&&xt(y,Z),Y}for(B=e(B);!el.done;Z++,el=m.next())el=b(B,y,Z,el.value,z),el!==null&&(l&&el.alternate!==null&&B.delete(el.key===null?Z:el.key),r=n(el,r,Z),al===null?Y=el:al.sibling=el,al=el);return l&&B.forEach(function(Mm){return t(y,Mm)}),ll&&xt(y,Z),Y}function dl(y,r,m,z){if(typeof m=="object"&&m!==null&&m.type===zl&&m.key===null&&(m=m.props.children),typeof m=="object"&&m!==null){switch(m.$$typeof){case tl:l:{for(var Y=m.key;r!==null;){if(r.key===Y){if(Y=m.type,Y===zl){if(r.tag===7){a(y,r.sibling),z=u(r,m.props.children),z.return=y,y=z;break l}}else if(r.elementType===Y||typeof Y=="object"&&Y!==null&&Y.$$typeof===Ql&&xa(Y)===r.type){a(y,r.sibling),z=u(r,m.props),Pe(z,m),z.return=y,y=z;break l}a(y,r);break}else t(y,r);r=r.sibling}m.type===zl?(z=Ha(m.props.children,y.mode,z,m.key),z.return=y,y=z):(z=Fu(m.type,m.key,m.props,null,y.mode,z),Pe(z,m),z.return=y,y=z)}return i(y);case Dl:l:{for(Y=m.key;r!==null;){if(r.key===Y)if(r.tag===4&&r.stateNode.containerInfo===m.containerInfo&&r.stateNode.implementation===m.implementation){a(y,r.sibling),z=u(r,m.children||[]),z.return=y,y=z;break l}else{a(y,r);break}else t(y,r);r=r.sibling}z=Yi(m,y.mode,z),z.return=y,y=z}return i(y);case Ql:return m=xa(m),dl(y,r,m,z)}if(zt(m))return C(y,r,m,z);if(Xl(m)){if(Y=Xl(m),typeof Y!="function")throw Error(o(150));return m=Y.call(m),w(y,r,m,z)}if(typeof m.then=="function")return dl(y,r,un(m),z);if(m.$$typeof===jl)return dl(y,r,ln(y,m),z);nn(y,m)}return typeof m=="string"&&m!==""||typeof m=="number"||typeof m=="bigint"?(m=""+m,r!==null&&r.tag===6?(a(y,r.sibling),z=u(r,m),z.return=y,y=z):(a(y,r),z=ji(m,y.mode,z),z.return=y,y=z),i(y)):a(y,r)}return function(y,r,m,z){try{Ie=0;var Y=dl(y,r,m,z);return he=null,Y}catch(B){if(B===re||B===an)throw B;var al=tt(29,B,null,y.mode);return al.lanes=z,al.return=y,al}}}var Ga=ks(!0),Fs=ks(!1),ia=!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 ca(l){return{lane:l,tag:0,payload:null,callback:null,next:null}}function fa(l,t,a){var e=l.updateQueue;if(e===null)return null;if(e=e.shared,(ul&2)!==0){var u=e.pending;return u===null?t.next=t:(t.next=u.next,u.next=t),e.pending=t,t=ku(l),Bs(l,null,a),t}return $u(l,e,t,a),ku(l)}function lu(l,t,a){if(t=t.updateQueue,t!==null&&(t=t.shared,(a&4194048)!==0)){var e=t.lanes;e&=l.pendingLanes,a|=e,t.lanes=a,Xf(l,a)}}function Fi(l,t){var a=l.updateQueue,e=l.alternate;if(e!==null&&(e=e.updateQueue,a===e)){var u=null,n=null;if(a=a.firstBaseUpdate,a!==null){do{var i={lane:a.lane,tag:a.tag,payload:a.payload,callback:null,next:null};n===null?u=n=i:n=n.next=i,a=a.next}while(a!==null);n===null?u=n=t:n=n.next=t}else u=n=t;a={baseState:e.baseState,firstBaseUpdate:u,lastBaseUpdate:n,shared:e.shared,callbacks:e.callbacks},l.updateQueue=a;return}l=a.lastBaseUpdate,l===null?a.firstBaseUpdate=t:l.next=t,a.lastBaseUpdate=t}var Ii=!1;function tu(){if(Ii){var l=de;if(l!==null)throw l}}function au(l,t,a,e){Ii=!1;var u=l.updateQueue;ia=!1;var n=u.firstBaseUpdate,i=u.lastBaseUpdate,c=u.shared.pending;if(c!==null){u.shared.pending=null;var d=c,v=d.next;d.next=null,i===null?n=v:i.next=v,i=d;var _=l.alternate;_!==null&&(_=_.updateQueue,c=_.lastBaseUpdate,c!==i&&(c===null?_.firstBaseUpdate=v:c.next=v,_.lastBaseUpdate=d))}if(n!==null){var E=u.baseState;i=0,_=v=d=null,c=n;do{var g=c.lane&-536870913,b=g!==c.lane;if(b?(F&g)===g:(e&g)===g){g!==0&&g===oe&&(Ii=!0),_!==null&&(_=_.next={lane:0,tag:c.tag,payload:c.payload,callback:null,next:null});l:{var C=l,w=c;g=t;var dl=a;switch(w.tag){case 1:if(C=w.payload,typeof C=="function"){E=C.call(dl,E,g);break l}E=C;break l;case 3:C.flags=C.flags&-65537|128;case 0:if(C=w.payload,g=typeof C=="function"?C.call(dl,E,g):C,g==null)break l;E=R({},E,g);break l;case 2:ia=!0}}g=c.callback,g!==null&&(l.flags|=64,b&&(l.flags|=8192),b=u.callbacks,b===null?u.callbacks=[g]:b.push(g))}else b={lane:g,tag:c.tag,payload:c.payload,callback:c.callback,next:null},_===null?(v=_=b,d=E):_=_.next=b,i|=g;if(c=c.next,c===null){if(c=u.shared.pending,c===null)break;b=c,c=b.next,b.next=null,u.lastBaseUpdate=b,u.shared.pending=null}}while(!0);_===null&&(d=E),u.baseState=d,u.firstBaseUpdate=v,u.lastBaseUpdate=_,n===null&&(u.shared.lanes=0),ha|=i,l.lanes=i,l.memoizedState=E}}function Is(l,t){if(typeof l!="function")throw Error(o(191,l));l.call(t)}function Ps(l,t){var a=l.callbacks;if(a!==null)for(l.callbacks=null,l=0;ln?n:8;var i=p.T,c={};p.T=c,gc(l,!1,t,a);try{var d=u(),v=p.S;if(v!==null&&v(c,d),d!==null&&typeof d=="object"&&typeof d.then=="function"){var _=gy(d,e);nu(l,t,_,it(l))}else nu(l,t,e,it(l))}catch(E){nu(l,t,{then:function(){},status:"rejected",reason:E},it())}finally{M.p=n,i!==null&&c.types!==null&&(i.types=c.types),p.T=i}}function Ey(){}function mc(l,t,a,e){if(l.tag!==5)throw Error(o(476));var u=Co(l).queue;Ro(l,u,t,G,a===null?Ey:function(){return Ho(l),a(e)})}function Co(l){var t=l.memoizedState;if(t!==null)return t;t={memoizedState:G,baseState:G,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Xt,lastRenderedState:G},next:null};var a={};return t.next={memoizedState:a,baseState:a,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Xt,lastRenderedState:a},next:null},l.memoizedState=t,l=l.alternate,l!==null&&(l.memoizedState=t),t}function Ho(l){var t=Co(l);t.next===null&&(t=l.alternate.memoizedState),nu(l,t.next.queue,{},it())}function vc(){return Hl(zu)}function Bo(){return pl().memoizedState}function qo(){return pl().memoizedState}function Ty(l){for(var t=l.return;t!==null;){switch(t.tag){case 24:case 3:var a=it();l=ca(a);var e=fa(t,l,a);e!==null&&($l(e,t,a),lu(e,t,a)),t={cache:Vi()},l.payload=t;return}t=t.return}}function Ay(l,t,a){var e=it();a={lane:e,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},vn(l)?Yo(t,a):(a=Bi(l,t,a,e),a!==null&&($l(a,l,e),xo(a,t,e)))}function jo(l,t,a){var e=it();nu(l,t,a,e)}function nu(l,t,a,e){var u={lane:e,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null};if(vn(l))Yo(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,a);if(u.hasEagerState=!0,u.eagerState=c,lt(c,i))return $u(l,t,u,0),hl===null&&Wu(),!1}catch{}if(a=Bi(l,t,u,e),a!==null)return $l(a,l,e),xo(a,t,e),!0}return!1}function gc(l,t,a,e){if(e={lane:2,revertLane:$c(),gesture:null,action:e,hasEagerState:!1,eagerState:null,next:null},vn(l)){if(t)throw Error(o(479))}else t=Bi(l,a,e,2),t!==null&&$l(t,l,2)}function vn(l){var t=l.alternate;return l===L||t!==null&&t===L}function Yo(l,t){me=sn=!0;var a=l.pending;a===null?t.next=t:(t.next=a.next,a.next=t),l.pending=t}function xo(l,t,a){if((a&4194048)!==0){var e=t.lanes;e&=l.pendingLanes,a|=e,t.lanes=a,Xf(l,a)}}var iu={readContext:Hl,use:rn,useCallback:gl,useContext:gl,useEffect:gl,useImperativeHandle:gl,useLayoutEffect:gl,useInsertionEffect:gl,useMemo:gl,useReducer:gl,useRef:gl,useState:gl,useDebugValue:gl,useDeferredValue:gl,useTransition:gl,useSyncExternalStore:gl,useId:gl,useHostTransitionStatus:gl,useFormState:gl,useActionState:gl,useOptimistic:gl,useMemoCache:gl,useCacheRefresh:gl};iu.useEffectEvent=gl;var wo={readContext:Hl,use:rn,useCallback:function(l,t){return wl().memoizedState=[l,t===void 0?null:t],l},useContext:Hl,useEffect:zo,useImperativeHandle:function(l,t,a){a=a!=null?a.concat([l]):null,yn(4194308,4,Oo.bind(null,t,l),a)},useLayoutEffect:function(l,t){return yn(4194308,4,l,t)},useInsertionEffect:function(l,t){yn(4,2,l,t)},useMemo:function(l,t){var a=wl();t=t===void 0?null:t;var e=l();if(Qa){Pt(!0);try{l()}finally{Pt(!1)}}return a.memoizedState=[e,t],e},useReducer:function(l,t,a){var e=wl();if(a!==void 0){var u=a(t);if(Qa){Pt(!0);try{a(t)}finally{Pt(!1)}}}else u=t;return e.memoizedState=e.baseState=u,l={pending:null,lanes:0,dispatch:null,lastRenderedReducer:l,lastRenderedState:u},e.queue=l,l=l.dispatch=Ay.bind(null,L,l),[e.memoizedState,l]},useRef:function(l){var t=wl();return l={current:l},t.memoizedState=l},useState:function(l){l=oc(l);var t=l.queue,a=jo.bind(null,L,t);return t.dispatch=a,[l.memoizedState,a]},useDebugValue:hc,useDeferredValue:function(l,t){var a=wl();return yc(a,l,t)},useTransition:function(){var l=oc(!1);return l=Ro.bind(null,L,l.queue,!0,!1),wl().memoizedState=l,[!1,l]},useSyncExternalStore:function(l,t,a){var e=L,u=wl();if(ll){if(a===void 0)throw Error(o(407));a=a()}else{if(a=t(),hl===null)throw Error(o(349));(F&127)!==0||no(e,t,a)}u.memoizedState=a;var n={value:a,getSnapshot:t};return u.queue=n,zo(co.bind(null,e,n,l),[l]),e.flags|=2048,ge(9,{destroy:void 0},io.bind(null,e,n,a,t),null),a},useId:function(){var l=wl(),t=hl.identifierPrefix;if(ll){var a=Ut,e=Nt;a=(e&~(1<<32-Pl(e)-1)).toString(32)+a,t="_"+t+"R_"+a,a=on++,0<\/script>",n=n.removeChild(n.firstChild);break;case"select":n=typeof e.is=="string"?i.createElement("select",{is:e.is}):i.createElement("select"),e.multiple?n.multiple=!0:e.size&&(n.size=e.size);break;default:n=typeof e.is=="string"?i.createElement(u,{is:e.is}):i.createElement(u)}}n[Rl]=t,n[Ll]=e;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(ql(n,u,e),u){case"button":case"input":case"select":case"textarea":e=!!e.autoFocus;break l;case"img":e=!0;break l;default:e=!1}e&&Zt(t)}}return ml(t),Rc(t,t.type,l===null?null:l.memoizedProps,t.pendingProps,a),null;case 6:if(l&&t.stateNode!=null)l.memoizedProps!==e&&Zt(t);else{if(typeof e!="string"&&t.stateNode===null)throw Error(o(166));if(l=J.current,fe(t)){if(l=t.stateNode,a=t.memoizedProps,e=null,u=Cl,u!==null)switch(u.tag){case 27:case 5:e=u.memoizedProps}l[Rl]=t,l=!!(l.nodeValue===a||e!==null&&e.suppressHydrationWarning===!0||ur(l.nodeValue,a)),l||ua(t,!0)}else l=jn(l).createTextNode(e),l[Rl]=t,t.stateNode=l}return ml(t),null;case 31:if(a=t.memoizedState,l===null||l.memoizedState!==null){if(e=fe(t),a!==null){if(l===null){if(!e)throw Error(o(318));if(l=t.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(o(557));l[Rl]=t}else Ba(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;ml(t),l=!1}else a=Qi(),l!==null&&l.memoizedState!==null&&(l.memoizedState.hydrationErrors=a),l=!0;if(!l)return t.flags&256?(et(t),t):(et(t),null);if((t.flags&128)!==0)throw Error(o(558))}return ml(t),null;case 13:if(e=t.memoizedState,l===null||l.memoizedState!==null&&l.memoizedState.dehydrated!==null){if(u=fe(t),e!==null&&e.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[Rl]=t}else Ba(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;ml(t),u=!1}else u=Qi(),l!==null&&l.memoizedState!==null&&(l.memoizedState.hydrationErrors=u),u=!0;if(!u)return t.flags&256?(et(t),t):(et(t),null)}return et(t),(t.flags&128)!==0?(t.lanes=a,t):(a=e!==null,l=l!==null&&l.memoizedState!==null,a&&(e=t.child,u=null,e.alternate!==null&&e.alternate.memoizedState!==null&&e.alternate.memoizedState.cachePool!==null&&(u=e.alternate.memoizedState.cachePool.pool),n=null,e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),n!==u&&(e.flags|=2048)),a!==l&&a&&(t.child.flags|=8192),pn(t,t.updateQueue),ml(t),null);case 4:return Sl(),l===null&&Pc(t.stateNode.containerInfo),ml(t),null;case 10:return Gt(t.type),ml(t),null;case 19:if(T(_l),e=t.memoizedState,e===null)return ml(t),null;if(u=(t.flags&128)!==0,n=e.rendering,n===null)if(u)fu(e,!1);else{if(bl!==0||l!==null&&(l.flags&128)!==0)for(l=t.child;l!==null;){if(n=fn(l),n!==null){for(t.flags|=128,fu(e,!1),l=n.updateQueue,t.updateQueue=l,pn(t,l),t.subtreeFlags=0,l=a,a=t.child;a!==null;)qs(a,l),a=a.sibling;return N(_l,_l.current&1|2),ll&&xt(t,e.treeForkCount),t.child}l=l.sibling}e.tail!==null&&Fl()>On&&(t.flags|=128,u=!0,fu(e,!1),t.lanes=4194304)}else{if(!u)if(l=fn(n),l!==null){if(t.flags|=128,u=!0,l=l.updateQueue,t.updateQueue=l,pn(t,l),fu(e,!0),e.tail===null&&e.tailMode==="hidden"&&!n.alternate&&!ll)return ml(t),null}else 2*Fl()-e.renderingStartTime>On&&a!==536870912&&(t.flags|=128,u=!0,fu(e,!1),t.lanes=4194304);e.isBackwards?(n.sibling=t.child,t.child=n):(l=e.last,l!==null?l.sibling=n:t.child=n,e.last=n)}return e.tail!==null?(l=e.tail,e.rendering=l,e.tail=l.sibling,e.renderingStartTime=Fl(),l.sibling=null,a=_l.current,N(_l,u?a&1|2:a&1),ll&&xt(t,e.treeForkCount),l):(ml(t),null);case 22:case 23:return et(t),lc(),e=t.memoizedState!==null,l!==null?l.memoizedState!==null!==e&&(t.flags|=8192):e&&(t.flags|=8192),e?(a&536870912)!==0&&(t.flags&128)===0&&(ml(t),t.subtreeFlags&6&&(t.flags|=8192)):ml(t),a=t.updateQueue,a!==null&&pn(t,a.retryQueue),a=null,l!==null&&l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(a=l.memoizedState.cachePool.pool),e=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(e=t.memoizedState.cachePool.pool),e!==a&&(t.flags|=2048),l!==null&&T(Ya),null;case 24:return a=null,l!==null&&(a=l.memoizedState.cache),t.memoizedState.cache!==a&&(t.flags|=2048),Gt(El),ml(t),null;case 25:return null;case 30:return null}throw Error(o(156,t.tag))}function Uy(l,t){switch(wi(t),t.tag){case 1:return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 3:return Gt(El),Sl(),l=t.flags,(l&65536)!==0&&(l&128)===0?(t.flags=l&-65537|128,t):null;case 26:case 27:case 5:return Ru(t),null;case 31:if(t.memoizedState!==null){if(et(t),t.alternate===null)throw Error(o(340));Ba()}return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 13:if(et(t),l=t.memoizedState,l!==null&&l.dehydrated!==null){if(t.alternate===null)throw Error(o(340));Ba()}return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 19:return T(_l),null;case 4:return Sl(),null;case 10:return Gt(t.type),null;case 22:case 23:return et(t),lc(),l!==null&&T(Ya),l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 24:return Gt(El),null;case 25:return null;default:return null}}function sd(l,t){switch(wi(t),t.tag){case 3:Gt(El),Sl();break;case 26:case 27:case 5:Ru(t);break;case 4:Sl();break;case 31:t.memoizedState!==null&&et(t);break;case 13:et(t);break;case 19:T(_l);break;case 10:Gt(t.type);break;case 22:case 23:et(t),lc(),l!==null&&T(Ya);break;case 24:Gt(El)}}function su(l,t){try{var a=t.updateQueue,e=a!==null?a.lastEffect:null;if(e!==null){var u=e.next;a=u;do{if((a.tag&l)===l){e=void 0;var n=a.create,i=a.inst;e=n(),i.destroy=e}a=a.next}while(a!==u)}}catch(c){cl(t,t.return,c)}}function da(l,t,a){try{var e=t.updateQueue,u=e!==null?e.lastEffect:null;if(u!==null){var n=u.next;e=n;do{if((e.tag&l)===l){var i=e.inst,c=i.destroy;if(c!==void 0){i.destroy=void 0,u=t;var d=a,v=c;try{v()}catch(_){cl(u,d,_)}}}e=e.next}while(e!==n)}}catch(_){cl(t,t.return,_)}}function od(l){var t=l.updateQueue;if(t!==null){var a=l.stateNode;try{Ps(t,a)}catch(e){cl(l,l.return,e)}}}function dd(l,t,a){a.props=Xa(l.type,l.memoizedProps),a.state=l.memoizedState;try{a.componentWillUnmount()}catch(e){cl(l,t,e)}}function ou(l,t){try{var a=l.ref;if(a!==null){switch(l.tag){case 26:case 27:case 5:var e=l.stateNode;break;case 30:e=l.stateNode;break;default:e=l.stateNode}typeof a=="function"?l.refCleanup=a(e):a.current=e}}catch(u){cl(l,t,u)}}function Rt(l,t){var a=l.ref,e=l.refCleanup;if(a!==null)if(typeof e=="function")try{e()}catch(u){cl(l,t,u)}finally{l.refCleanup=null,l=l.alternate,l!=null&&(l.refCleanup=null)}else if(typeof a=="function")try{a(null)}catch(u){cl(l,t,u)}else a.current=null}function rd(l){var t=l.type,a=l.memoizedProps,e=l.stateNode;try{l:switch(t){case"button":case"input":case"select":case"textarea":a.autoFocus&&e.focus();break l;case"img":a.src?e.src=a.src:a.srcSet&&(e.srcset=a.srcSet)}}catch(u){cl(l,l.return,u)}}function Cc(l,t,a){try{var e=l.stateNode;Iy(e,l.type,a,t),e[Ll]=t}catch(u){cl(l,l.return,u)}}function hd(l){return l.tag===5||l.tag===3||l.tag===26||l.tag===27&&ba(l.type)||l.tag===4}function Hc(l){l:for(;;){for(;l.sibling===null;){if(l.return===null||hd(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&&ba(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 Bc(l,t,a){var e=l.tag;if(e===5||e===6)l=l.stateNode,t?(a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a).insertBefore(l,t):(t=a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a,t.appendChild(l),a=a._reactRootContainer,a!=null||t.onclick!==null||(t.onclick=qt));else if(e!==4&&(e===27&&ba(l.type)&&(a=l.stateNode,t=null),l=l.child,l!==null))for(Bc(l,t,a),l=l.sibling;l!==null;)Bc(l,t,a),l=l.sibling}function zn(l,t,a){var e=l.tag;if(e===5||e===6)l=l.stateNode,t?a.insertBefore(l,t):a.appendChild(l);else if(e!==4&&(e===27&&ba(l.type)&&(a=l.stateNode),l=l.child,l!==null))for(zn(l,t,a),l=l.sibling;l!==null;)zn(l,t,a),l=l.sibling}function yd(l){var t=l.stateNode,a=l.memoizedProps;try{for(var e=l.type,u=t.attributes;u.length;)t.removeAttributeNode(u[0]);ql(t,e,a),t[Rl]=l,t[Ll]=a}catch(n){cl(l,l.return,n)}}var Vt=!1,Ol=!1,qc=!1,md=typeof WeakSet=="function"?WeakSet:Set,Ul=null;function Ry(l,t){if(l=l.containerInfo,af=Ln,l=Os(l),Mi(l)){if("selectionStart"in l)var a={start:l.selectionStart,end:l.selectionEnd};else l:{a=(a=l.ownerDocument)&&a.defaultView||window;var e=a.getSelection&&a.getSelection();if(e&&e.rangeCount!==0){a=e.anchorNode;var u=e.anchorOffset,n=e.focusNode;e=e.focusOffset;try{a.nodeType,n.nodeType}catch{a=null;break l}var i=0,c=-1,d=-1,v=0,_=0,E=l,g=null;t:for(;;){for(var b;E!==a||u!==0&&E.nodeType!==3||(c=i+u),E!==n||e!==0&&E.nodeType!==3||(d=i+e),E.nodeType===3&&(i+=E.nodeValue.length),(b=E.firstChild)!==null;)g=E,E=b;for(;;){if(E===l)break t;if(g===a&&++v===u&&(c=i),g===n&&++_===e&&(d=i),(b=E.nextSibling)!==null)break;E=g,g=E.parentNode}E=b}a=c===-1||d===-1?null:{start:c,end:d}}else a=null}a=a||{start:0,end:0}}else a=null;for(ef={focusedElem:l,selectionRange:a},Ln=!1,Ul=t;Ul!==null;)if(t=Ul,l=t.child,(t.subtreeFlags&1028)!==0&&l!==null)l.return=t,Ul=l;else for(;Ul!==null;){switch(t=Ul,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(a=0;a title"))),ql(n,e,a),n[Rl]=l,Nl(n),e=n;break l;case"link":var i=pr("link","href",u).get(e+(a.href||""));if(i){for(var c=0;cdl&&(i=dl,dl=w,w=i);var y=Ts(c,w),r=Ts(c,dl);if(y&&r&&(b.rangeCount!==1||b.anchorNode!==y.node||b.anchorOffset!==y.offset||b.focusNode!==r.node||b.focusOffset!==r.offset)){var m=E.createRange();m.setStart(y.node,y.offset),b.removeAllRanges(),w>dl?(b.addRange(m),b.extend(r.node,r.offset)):(m.setEnd(r.node,r.offset),b.addRange(m))}}}}for(E=[],b=c;b=b.parentNode;)b.nodeType===1&&E.push({element:b,left:b.scrollLeft,top:b.scrollTop});for(typeof c.focus=="function"&&c.focus(),c=0;ca?32:a,p.T=null,a=Xc,Xc=null;var n=ma,i=kt;if(Ml=0,ze=ma=null,kt=0,(ul&6)!==0)throw Error(o(331));var c=ul;if(ul|=4,Od(n.current),Ed(n,n.current,i,a),ul=c,vu(0,!1),Il&&typeof Il.onPostCommitFiberRoot=="function")try{Il.onPostCommitFiberRoot(Be,n)}catch{}return!0}finally{M.p=u,p.T=e,Zd(l,t)}}function Kd(l,t,a){t=ht(a,t),t=pc(l.stateNode,t,2),l=fa(l,t,2),l!==null&&(je(l,2),Ct(l))}function cl(l,t,a){if(l.tag===3)Kd(l,l,a);else for(;t!==null;){if(t.tag===3){Kd(t,l,a);break}else if(t.tag===1){var e=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof e.componentDidCatch=="function"&&(ya===null||!ya.has(e))){l=ht(a,l),a=Jo(2),e=fa(t,a,2),e!==null&&(Wo(a,e,t,l),je(e,2),Ct(e));break}}t=t.return}}function Kc(l,t,a){var e=l.pingCache;if(e===null){e=l.pingCache=new By;var u=new Set;e.set(t,u)}else u=e.get(t),u===void 0&&(u=new Set,e.set(t,u));u.has(a)||(xc=!0,u.add(a),l=wy.bind(null,l,t,a),t.then(l,l))}function wy(l,t,a){var e=l.pingCache;e!==null&&e.delete(t),l.pingedLanes|=l.suspendedLanes&a,l.warmLanes&=~a,hl===l&&(F&a)===a&&(bl===4||bl===3&&(F&62914560)===F&&300>Fl()-An?(ul&2)===0&&Ee(l,0):wc|=a,pe===F&&(pe=0)),Ct(l)}function Jd(l,t){t===0&&(t=Gf()),l=Ca(l,t),l!==null&&(je(l,t),Ct(l))}function Gy(l){var t=l.memoizedState,a=0;t!==null&&(a=t.retryLane),Jd(l,a)}function Qy(l,t){var a=0;switch(l.tag){case 31:case 13:var e=l.stateNode,u=l.memoizedState;u!==null&&(a=u.retryLane);break;case 19:e=l.stateNode;break;case 22:e=l.stateNode._retryCache;break;default:throw Error(o(314))}e!==null&&e.delete(t),Jd(l,a)}function Xy(l,t){return ni(l,t)}var Cn=null,Ae=null,Jc=!1,Hn=!1,Wc=!1,ga=0;function Ct(l){l!==Ae&&l.next===null&&(Ae===null?Cn=Ae=l:Ae=Ae.next=l),Hn=!0,Jc||(Jc=!0,Zy())}function vu(l,t){if(!Wc&&Hn){Wc=!0;do for(var a=!1,e=Cn;e!==null;){if(l!==0){var u=e.pendingLanes;if(u===0)var n=0;else{var i=e.suspendedLanes,c=e.pingedLanes;n=(1<<31-Pl(42|l)+1)-1,n&=u&~(i&~c),n=n&201326741?n&201326741|1:n?n|2:0}n!==0&&(a=!0,Fd(e,n))}else n=F,n=ju(e,e===hl?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),(n&3)===0||qe(e,n)||(a=!0,Fd(e,n));e=e.next}while(a);Wc=!1}}function Ly(){Wd()}function Wd(){Hn=Jc=!1;var l=0;ga!==0&&lm()&&(l=ga);for(var t=Fl(),a=null,e=Cn;e!==null;){var u=e.next,n=$d(e,t);n===0?(e.next=null,a===null?Cn=u:a.next=u,u===null&&(Ae=a)):(a=e,(l!==0||(n&3)!==0)&&(Hn=!0)),e=u}Ml!==0&&Ml!==5||vu(l),ga!==0&&(ga=0)}function $d(l,t){for(var a=l.suspendedLanes,e=l.pingedLanes,u=l.expirationTimes,n=l.pendingLanes&-62914561;0c)break;var _=d.transferSize,E=d.initiatorType;_&&nr(E)&&(d=d.responseEnd,i+=_*(d"u"?null:document;function gr(l,t,a){var e=Oe;if(e&&typeof t=="string"&&t){var u=dt(t);u='link[rel="'+l+'"][href="'+u+'"]',typeof a=="string"&&(u+='[crossorigin="'+a+'"]'),vr.has(u)||(vr.add(u),l={rel:l,crossOrigin:a,href:t},e.querySelector(u)===null&&(t=e.createElement("link"),ql(t,"link",l),Nl(t),e.head.appendChild(t)))}}function sm(l){Ft.D(l),gr("dns-prefetch",l,null)}function om(l,t){Ft.C(l,t),gr("preconnect",l,t)}function dm(l,t,a){Ft.L(l,t,a);var e=Oe;if(e&&l&&t){var u='link[rel="preload"][as="'+dt(t)+'"]';t==="image"&&a&&a.imageSrcSet?(u+='[imagesrcset="'+dt(a.imageSrcSet)+'"]',typeof a.imageSizes=="string"&&(u+='[imagesizes="'+dt(a.imageSizes)+'"]')):u+='[href="'+dt(l)+'"]';var n=u;switch(t){case"style":n=De(l);break;case"script":n=Me(l)}St.has(n)||(l=R({rel:"preload",href:t==="image"&&a&&a.imageSrcSet?void 0:l,as:t},a),St.set(n,l),e.querySelector(u)!==null||t==="style"&&e.querySelector(_u(n))||t==="script"&&e.querySelector(pu(n))||(t=e.createElement("link"),ql(t,"link",l),Nl(t),e.head.appendChild(t)))}}function rm(l,t){Ft.m(l,t);var a=Oe;if(a&&l){var e=t&&typeof t.as=="string"?t.as:"script",u='link[rel="modulepreload"][as="'+dt(e)+'"][href="'+dt(l)+'"]',n=u;switch(e){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":n=Me(l)}if(!St.has(n)&&(l=R({rel:"modulepreload",href:l},t),St.set(n,l),a.querySelector(u)===null)){switch(e){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(a.querySelector(pu(n)))return}e=a.createElement("link"),ql(e,"link",l),Nl(e),a.head.appendChild(e)}}}function hm(l,t,a){Ft.S(l,t,a);var e=Oe;if(e&&l){var u=$a(e).hoistableStyles,n=De(l);t=t||"default";var i=u.get(n);if(!i){var c={loading:0,preload:null};if(i=e.querySelector(_u(n)))c.loading=5;else{l=R({rel:"stylesheet",href:l,"data-precedence":t},a),(a=St.get(n))&&df(l,a);var d=i=e.createElement("link");Nl(d),ql(d,"link",l),d._p=new Promise(function(v,_){d.onload=v,d.onerror=_}),d.addEventListener("load",function(){c.loading|=1}),d.addEventListener("error",function(){c.loading|=2}),c.loading|=4,xn(i,t,e)}i={type:"stylesheet",instance:i,count:1,state:c},u.set(n,i)}}}function ym(l,t){Ft.X(l,t);var a=Oe;if(a&&l){var e=$a(a).hoistableScripts,u=Me(l),n=e.get(u);n||(n=a.querySelector(pu(u)),n||(l=R({src:l,async:!0},t),(t=St.get(u))&&rf(l,t),n=a.createElement("script"),Nl(n),ql(n,"link",l),a.head.appendChild(n)),n={type:"script",instance:n,count:1,state:null},e.set(u,n))}}function mm(l,t){Ft.M(l,t);var a=Oe;if(a&&l){var e=$a(a).hoistableScripts,u=Me(l),n=e.get(u);n||(n=a.querySelector(pu(u)),n||(l=R({src:l,async:!0,type:"module"},t),(t=St.get(u))&&rf(l,t),n=a.createElement("script"),Nl(n),ql(n,"link",l),a.head.appendChild(n)),n={type:"script",instance:n,count:1,state:null},e.set(u,n))}}function br(l,t,a,e){var u=(u=J.current)?Yn(u):null;if(!u)throw Error(o(446));switch(l){case"meta":case"title":return null;case"style":return typeof a.precedence=="string"&&typeof a.href=="string"?(t=De(a.href),a=$a(u).hoistableStyles,e=a.get(t),e||(e={type:"style",instance:null,count:0,state:null},a.set(t,e)),e):{type:"void",instance:null,count:0,state:null};case"link":if(a.rel==="stylesheet"&&typeof a.href=="string"&&typeof a.precedence=="string"){l=De(a.href);var n=$a(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(_u(l)))&&!n._p&&(i.instance=n,i.state.loading=5),St.has(l)||(a={rel:"preload",as:"style",href:a.href,crossOrigin:a.crossOrigin,integrity:a.integrity,media:a.media,hrefLang:a.hrefLang,referrerPolicy:a.referrerPolicy},St.set(l,a),n||vm(u,l,a,i.state))),t&&e===null)throw Error(o(528,""));return i}if(t&&e!==null)throw Error(o(529,""));return null;case"script":return t=a.async,a=a.src,typeof a=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=Me(a),a=$a(u).hoistableScripts,e=a.get(t),e||(e={type:"script",instance:null,count:0,state:null},a.set(t,e)),e):{type:"void",instance:null,count:0,state:null};default:throw Error(o(444,l))}}function De(l){return'href="'+dt(l)+'"'}function _u(l){return'link[rel="stylesheet"]['+l+"]"}function Sr(l){return R({},l,{"data-precedence":l.precedence,precedence:null})}function vm(l,t,a,e){l.querySelector('link[rel="preload"][as="style"]['+t+"]")?e.loading=1:(t=l.createElement("link"),e.preload=t,t.addEventListener("load",function(){return e.loading|=1}),t.addEventListener("error",function(){return e.loading|=2}),ql(t,"link",a),Nl(t),l.head.appendChild(t))}function Me(l){return'[src="'+dt(l)+'"]'}function pu(l){return"script[async]"+l}function _r(l,t,a){if(t.count++,t.instance===null)switch(t.type){case"style":var e=l.querySelector('style[data-href~="'+dt(a.href)+'"]');if(e)return t.instance=e,Nl(e),e;var u=R({},a,{"data-href":a.href,"data-precedence":a.precedence,href:null,precedence:null});return e=(l.ownerDocument||l).createElement("style"),Nl(e),ql(e,"style",u),xn(e,a.precedence,l),t.instance=e;case"stylesheet":u=De(a.href);var n=l.querySelector(_u(u));if(n)return t.state.loading|=4,t.instance=n,Nl(n),n;e=Sr(a),(u=St.get(u))&&df(e,u),n=(l.ownerDocument||l).createElement("link"),Nl(n);var i=n;return i._p=new Promise(function(c,d){i.onload=c,i.onerror=d}),ql(n,"link",e),t.state.loading|=4,xn(n,a.precedence,l),t.instance=n;case"script":return n=Me(a.src),(u=l.querySelector(pu(n)))?(t.instance=u,Nl(u),u):(e=a,(u=St.get(n))&&(e=R({},a),rf(e,u)),l=l.ownerDocument||l,u=l.createElement("script"),Nl(u),ql(u,"link",e),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&&(e=t.instance,t.state.loading|=4,xn(e,a.precedence,l));return t.instance}function xn(l,t,a){for(var e=a.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),u=e.length?e[e.length-1]:null,n=u,i=0;i title"):null)}function gm(l,t,a){if(a===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 Er(l){return!(l.type==="stylesheet"&&(l.state.loading&3)===0)}function bm(l,t,a,e){if(a.type==="stylesheet"&&(typeof e.media!="string"||matchMedia(e.media).matches!==!1)&&(a.state.loading&4)===0){if(a.instance===null){var u=De(e.href),n=t.querySelector(_u(u));if(n){t=n._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(l.count++,l=Gn.bind(l),t.then(l,l)),a.state.loading|=4,a.instance=n,Nl(n);return}n=t.ownerDocument||t,e=Sr(e),(u=St.get(u))&&df(e,u),n=n.createElement("link"),Nl(n);var i=n;i._p=new Promise(function(c,d){i.onload=c,i.onerror=d}),ql(n,"link",e),a.instance=n}l.stylesheets===null&&(l.stylesheets=new Map),l.stylesheets.set(a,t),(t=a.state.preload)&&(a.state.loading&3)===0&&(l.count++,a=Gn.bind(l),t.addEventListener("load",a),t.addEventListener("error",a))}}var hf=0;function Sm(l,t){return l.stylesheets&&l.count===0&&Xn(l,l.stylesheets),0hf?50:800)+t);return l.unsuspend=a,function(){l.unsuspend=null,clearTimeout(e),clearTimeout(u)}}:null}function Gn(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Xn(this,this.stylesheets);else if(this.unsuspend){var l=this.unsuspend;this.unsuspend=null,l()}}}var Qn=null;function Xn(l,t){l.stylesheets=null,l.unsuspend!==null&&(l.count++,Qn=new Map,t.forEach(_m,l),Qn=null,Gn.call(l))}function _m(l,t){if(!(t.state.loading&4)){var a=Qn.get(l);if(a)var e=a.get(null);else{a=new Map,Qn.set(l,a);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(),Tf.exports=Zm(),Tf.exports}var Km=Vm();function Jm(){return{currentState(){return O("current_state")},setPin(s){return O("set_pin",{pin:s})},acceptStay(){return O("accept_stay")},dismissCandidate(){return O("dismiss_candidate")},stopGuarding(){return O("stop_guarding")},submitPin(s){return O("submit_pin",{pin:s})},async subscribe(s){const f=await Rf("stay-state-changed",S=>{s(S.payload.view)});return()=>{f()}}}}function Mf(s){return s instanceof Error?s.message:typeof s=="string"?s:"Stay could not complete that action."}function ah(s){return{zoom:"Zoom",google_meet:"Google Meet",microsoft_teams:"Microsoft Teams",facetime:"FaceTime",webex:"Webex",slack_huddle:"Slack huddle"}[s]}function Bf(s){return s.title||s.app_name}function Wm({meeting:s,error:f,onStop:S}){return q.jsxs("section",{className:"mode-panel mode-panel-active",children:[q.jsx("p",{className:"kicker",children:"Stay is on"}),q.jsx("h2",{children:Bf(s.window)||`${ah(s.app)} is protected.`}),q.jsx("p",{className:"muted",children:"Keep the hour you agreed to."}),q.jsx("div",{className:"action-row",children:q.jsx("button",{type:"button",className:"ghost strong-ghost",onClick:S,children:"Stop"})}),q.jsx("p",{className:"error-line",role:"status",children:f})]})}const Uu=4;function $m(s){return s.replace(/\D/g,"").slice(0,Uu)}function Pn(s){return s.length===Uu}function eh({id:s,label:f,ariaLabel:S,value:o,error:D,errorId:j,onChange:x}){const k=ft.useId(),U=ft.useRef(null),A=s??k,V=Array.from({length:Uu},(Dl,zl)=>o[zl]??""),R=Math.min(o.length,Uu-1);function K(Dl){x($m(Dl.currentTarget.value))}function tl(){U.current?.focus()}return q.jsxs("div",{className:"pin-code-field",children:[f?q.jsx("label",{htmlFor:A,children:f}):null,q.jsxs("div",{className:"pin-code-input","data-invalid":!!D,onClick:tl,children:[q.jsx("input",{ref:U,id:A,className:"pin-code-control","aria-label":S,inputMode:"numeric",maxLength:Uu,pattern:"[0-9]{4}",autoComplete:"off",value:o,"aria-invalid":!!D,"aria-describedby":D?j:void 0,onChange:K}),q.jsx("div",{className:"pin-code-slots","aria-hidden":"true",children:V.map((Dl,zl)=>{const pt=["pin-code-slot",Dl?"pin-code-slot-filled":null,zl===R?"pin-code-slot-active":null].filter(Boolean).join(" ");return q.jsx("span",{className:pt},zl)})})]})]})}function km({view:s,error:f,onSubmit:S}){const[o,D]=ft.useState(""),j=f||s.last_error;async function x(k){if(k.preventDefault(),!Pn(o))return;await S(o)&&D("")}return q.jsxs("section",{className:"mode-panel mode-panel-active",children:[q.jsx("p",{className:"kicker",children:"Stay with the call"}),q.jsx("h2",{children:"Enter your PIN."}),q.jsxs("p",{className:"muted",children:[s.focused.app_name,s.focused.title?`: ${Bf(s.focused)}`:""]}),q.jsx("form",{className:"unlock-form",noValidate:!0,onSubmit:x,children:q.jsxs("div",{className:"control-row pin-entry-row",children:[q.jsx(eh,{ariaLabel:"Unlock PIN",value:o,error:j,errorId:"unlock-error",onChange:D}),q.jsx("button",{type:"submit",disabled:!Pn(o),children:"Open"})]})}),q.jsx("p",{id:"unlock-error",className:"error-line",role:"status",children:j})]})}function Fm({candidate:s,canAccept:f,error:S,onAccept:o,onDismiss:D}){return q.jsxs("section",{className:"mode-panel mode-panel-active",children:[q.jsx("p",{className:"kicker",children:ah(s.app)}),q.jsx("h2",{children:"Stay with this meeting?"}),q.jsx("p",{className:"muted",children:Bf(s.window)||s.reason}),q.jsxs("div",{className:"action-row",children:[q.jsx("button",{type:"button",disabled:!f,onClick:o,children:"Stay"}),q.jsx("button",{type:"button",className:"ghost",onClick:D,children:"Not now"})]}),q.jsx("p",{className:"error-line",role:"status",children:S})]})}function Im({error:s,onSave:f}){const[S,o]=ft.useState("");async function D(j){if(j.preventDefault(),!Pn(S))return;await f(S)&&o("")}return q.jsxs("form",{className:"pin-setup mode-panel",noValidate:!0,onSubmit:D,children:[q.jsxs("div",{className:"control-row pin-entry-row",children:[q.jsx(eh,{id:"setup-pin",label:"Set a four digit PIN",value:S,error:s,errorId:"setup-error",onChange:o}),q.jsx("button",{type:"submit",disabled:!Pn(S),children:"Keep"})]}),q.jsx("p",{id:"setup-error",className:"error-line",role:"status",children:s})]})}function Pm({mode:s,children:f,status:S}){const o=s==="guarding",[D,j]=ft.useState(!1),x=ft.useRef(void 0);ft.useEffect(()=>(o||j(!1),()=>{Nf(x.current)}),[o]);function k(){Nf(x.current),x.current=void 0,A(!0)}function U(){Nf(x.current),x.current=window.setTimeout(()=>{x.current=void 0,A(!1)},180)}function A(K){j(K),li()&&O("set_guarding_panel_expanded",{expanded:K}).catch(()=>{})}function V(K){K.currentTarget.contains(K.relatedTarget)||U()}const R=["stay-shell",`stay-shell-${s}`,o?D?"stay-shell-revealed":"stay-shell-collapsed":null].filter(Boolean).join(" ");return q.jsxs("main",{className:R,"aria-live":"polite",tabIndex:o?0:void 0,onMouseEnter:o?k:void 0,onMouseLeave:o?U:void 0,onFocusCapture:o?k:void 0,onBlurCapture:o?V:void 0,children:[q.jsxs("header",{className:"brand-strip","data-tauri-drag-region":!0,children:[q.jsxs("div",{className:"brand-label","data-tauri-drag-region":!0,children:[q.jsx("p",{className:"eyebrow","data-tauri-drag-region":!0,children:"Stay"}),q.jsx("h1",{"data-tauri-drag-region":!0,children:"Stay focused."})]}),q.jsxs("div",{className:"brand-controls",children:[S?q.jsx("span",{className:"status-pill",children:S}):null,q.jsx("button",{type:"button",className:"window-close","aria-label":"Hide Stay window",onClick:l0,children:q.jsx("svg",{viewBox:"0 0 12 12",width:"11",height:"11","aria-hidden":"true",children:q.jsx("path",{d:"M2 2L10 10M10 2L2 10",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})})]})]}),f]})}function l0(){li()&&Cf().hide().catch(()=>{})}function Nf(s){s!==void 0&&window.clearTimeout(s)}const t0={mode:"idle",pin_configured:!1};function a0({client:s}){const[f,S]=ft.useState(t0),[o,D]=ft.useState(!0),[j,x]=ft.useState(null);ft.useEffect(()=>{let R=!0,K;return s.currentState().then(tl=>{R&&S(tl)}).catch(tl=>{R&&x({target:"mode",message:Mf(tl)})}).finally(()=>{R&&D(!1)}),s.subscribe(tl=>{S(tl),x(null)}).then(tl=>{R?K=tl:tl()}).catch(tl=>{R&&x({target:"mode",message:Mf(tl)})}),()=>{R=!1,K?.()}},[s]);const k=ft.useMemo(()=>e0(f,o),[o,f]);async function U(R,K="mode"){x(null);try{const tl=await R();return S(tl.view),tl.view.mode!=="locked"||tl.view.last_error===null}catch(tl){return x({target:K,message:Mf(tl)}),!1}}const A=j?.target==="setup"?j.message:null,V=j?.target==="mode"?j.message:null;return q.jsxs(Pm,{mode:f.mode,status:k,children:[o?q.jsxs("section",{className:"mode-panel quiet-state",children:[q.jsx("p",{className:"kicker",children:"Opening"}),q.jsx("h2",{children:"Stay is opening."})]}):null,!o&&!f.pin_configured?q.jsx(Im,{error:A,onSave:R=>U(()=>s.setPin(R),"setup")}):null,!o&&f.mode==="idle"&&f.pin_configured?q.jsxs("section",{className:"mode-panel quiet-state",children:[q.jsx("p",{className:"kicker",children:"Ready"}),q.jsx("h2",{children:"Stay is waiting."})]}):null,!o&&f.mode==="meeting_candidate"?q.jsx(Fm,{candidate:f.candidate,canAccept:f.pin_configured,error:V,onAccept:()=>{U(()=>s.acceptStay())},onDismiss:()=>{U(()=>s.dismissCandidate())}}):null,!o&&f.mode==="guarding"?q.jsx(Wm,{meeting:f.meeting,error:V,onStop:()=>{U(()=>s.stopGuarding())}}):null,!o&&f.mode==="locked"?q.jsx(km,{view:f,error:V,onSubmit:R=>U(()=>s.submitPin(R))}):null]})}function e0(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"}}const Re={app:"zoom",window:uh("zoom.us","Weekly Team Sync"),reason:"Zoom foreground window"},Ce=uh("Safari","Quarterly planning notes");function u0(s){const f=new Set,S=[];let o=null,D=s??{mode:"idle",pin_configured:!1};function j(k,U=[]){D=k;const A={view:D,commands:U};return f.forEach(V=>V(D)),A}return{commandLog:S,async currentState(){return S.push("current_state"),D},async setPin(k){if(S.push("set_pin"),!/^\d{4}$/.test(k))throw new Error("PIN must be exactly four digits");return o=k,j({mode:"idle",pin_configured:!0})},async acceptStay(){if(S.push("accept_stay"),!o)throw new Error("set a four digit PIN before turning on Stay");return j({mode:"guarding",meeting:Re,pin_configured:!0},[{type:"begin_guarding",meeting:Re}])},async dismissCandidate(){return S.push("dismiss_candidate"),j({mode:"idle",pin_configured:!!o},[{type:"hide_prompt"}])},async stopGuarding(){return S.push("stop_guarding"),j({mode:"idle",pin_configured:!!o},[{type:"stop_guarding"}])},async submitPin(k){if(S.push("submit_pin"),D.mode!=="locked")throw new Error("Stay is not locked right now");return k===o?j({mode:"guarding",meeting:D.meeting,pin_configured:!0},[{type:"unlock"}]):j({...D,failed_attempts:D.failed_attempts+1,last_error:"That PIN did not open Stay."},[{type:"stay_locked",failed_attempts:D.failed_attempts+1}])},async subscribe(k){return f.add(k),()=>{f.delete(k)}},emitView(k){return j(k)},focusMeeting(){return j({mode:"meeting_candidate",candidate:Re,pin_configured:!!o},[{type:"show_prompt",candidate:Re}])},focusAway(){return j({mode:"locked",meeting:Re,focused:{app_name:Ce.app_name,title:Ce.title,bounds:Ce.bounds},failed_attempts:0,pin_configured:!!o,last_error:null},[{type:"show_lock",meeting:Re,focused:{app_name:Ce.app_name,title:Ce.title,bounds:Ce.bounds}}])},view(){return D}}}function uh(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 nh=document.querySelector("#root");if(!nh)throw new Error("Stay root element is missing");Km.createRoot(nh).render(q.jsx(ft.StrictMode,{children:i0()==="guard-border"?q.jsx(n0,{}):q.jsx(a0,{client:c0()})}));function n0(){return q.jsx("div",{className:"guard-border-surface","aria-hidden":"true",children:q.jsx("div",{className:"guard-border-frame"})})}function i0(){if(new URLSearchParams(window.location.search).get("surface")==="guard-border")return"guard-border";if(!li())return"main";try{return Cf().label==="guard-border"?"guard-border":"main"}catch{return"main"}}function c0(){if(window.__STAY_CLIENT__)return window.__STAY_CLIENT__;if(li()||window.__TAURI__||window.__TAURI_INTERNALS__)return Jm();const s=u0();return window.__STAY_CLIENT__=s,window.__stayMock=s,s} diff --git a/apps/desktop/dist/assets/index-BlDh6L6x.css b/apps/desktop/dist/assets/index-BlDh6L6x.css deleted file mode 100644 index 66420ea..0000000 --- a/apps/desktop/dist/assets/index-BlDh6L6x.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}@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}}@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)}}@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}} diff --git a/apps/desktop/dist/assets/index-CmJQg31q.js b/apps/desktop/dist/assets/index-CmJQg31q.js new file mode 100644 index 0000000..9d6f656 --- /dev/null +++ b/apps/desktop/dist/assets/index-CmJQg31q.js @@ -0,0 +1,9 @@ +(function(){const f=document.createElement("link").relList;if(f&&f.supports&&f.supports("modulepreload"))return;for(const A of document.querySelectorAll('link[rel="modulepreload"]'))o(A);new MutationObserver(A=>{for(const U of A)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(A){const U={};return A.integrity&&(U.integrity=A.integrity),A.referrerPolicy&&(U.referrerPolicy=A.referrerPolicy),A.crossOrigin==="use-credentials"?U.credentials="include":A.crossOrigin==="anonymous"?U.credentials="omit":U.credentials="same-origin",U}function o(A){if(A.ep)return;A.ep=!0;const U=y(A);fetch(A.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,A,U){var H=null;if(U!==void 0&&(H=""+U),A.key!==void 0&&(H=""+A.key),"key"in A){U={};for(var x in A)x!=="key"&&(U[x]=A[x])}else U=A;return A=U.ref,{$$typeof:s,type:o,key:H,ref:A!==void 0?A: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,A){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 _t="__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)}[_t](){return{width:this.width,height:this.height}}toJSON(){return this[_t]()}}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)}[_t](){return{width:this.width,height:this.height}}toJSON(){return this[_t]()}}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)}[_t](){return{[`${this.size.type}`]:{width:this.size.width,height:this.size.height}}}toJSON(){return this[_t]()}}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)}[_t](){return{x:this.x,y:this.y}}toJSON(){return this[_t]()}}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)}[_t](){return{x:this.x,y:this.y}}toJSON(){return this[_t]()}}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)}[_t](){return{[`${this.position.type}`]:{x:this.position.x,y:this.position.y}}}toJSON(){return this[_t]()}}var st;(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"})(st||(st={}));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 A=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:A,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(A=>new Nu(A))}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 A=>this.emit("tauri://error",A))}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 A of this.listeners[y]||[])A({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(st.WINDOW_RESIZED,y=>{y.payload=new Du(y.payload),f(y)})}async onMoved(f){return this.listen(st.WINDOW_MOVED,y=>{y.payload=new Ae(y.payload),f(y)})}async onCloseRequested(f){return this.listen(st.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(st.DRAG_ENTER,H=>{f({...H,payload:{type:"enter",paths:H.payload.paths,position:new Ae(H.payload.position)}})}),o=await this.listen(st.DRAG_OVER,H=>{f({...H,payload:{type:"over",position:new Ae(H.payload.position)}})}),A=await this.listen(st.DRAG_DROP,H=>{f({...H,payload:{type:"drop",paths:H.payload.paths,position:new Ae(H.payload.position)}})}),U=await this.listen(st.DRAG_LEAVE,H=>{f({...H,payload:{type:"leave"}})});return()=>{y(),A(),o(),U()}}async onFocusChanged(f){const y=await this.listen(st.WINDOW_FOCUS,A=>{f({...A,payload:!0})}),o=await this.listen(st.WINDOW_BLUR,A=>{f({...A,payload:!1})});return()=>{y(),o()}}async onScaleChanged(f){return this.listen(st.WINDOW_SCALE_FACTOR_CHANGED,f)}async onThemeChanged(f){return this.listen(st.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"),A=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 Dl(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(){}},tl=Object.assign,ql={};function nl(h,O,C){this.props=h,this.context=O,this.refs=ql,this.updater=C||pl}nl.prototype.isReactComponent={},nl.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")},nl.prototype.forceUpdate=function(h){this.updater.enqueueForceUpdate(this,h,"forceUpdate")};function It(){}It.prototype=nl.prototype;function Yl(h,O,C){this.props=h,this.context=O,this.refs=ql,this.updater=C||pl}var ot=Yl.prototype=new It;ot.constructor=Yl,tl(ot,nl.prototype),ot.isPureReactComponent=!0;var Ot=Array.isArray;function Ll(){}var I={H:null,A:null,T:null,S:null},Vl=Object.prototype.hasOwnProperty;function Mt(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 Mt(h.type,O,h.props)}function Dt(h){return typeof h=="object"&&h!==null&&h.$$typeof===s}function Zl(h){var O={"=":"=0",":":"=2"};return"$"+h.replace(/[=:]/g,function(C){return O[C]})}var Ee=/\/+/g;function Ht(h,O){return typeof h=="object"&&h!==null&&h.key!=null?Zl(""+h.key):O.toString(36)}function Tt(h){switch(h.status){case"fulfilled":return h.value;case"rejected":throw h.reason;default:switch(typeof h.status=="string"?h.then(Ll,Ll):(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 il=!1;if(h===null)il=!0;else switch(J){case"bigint":case"string":case"number":il=!0;break;case"object":switch(h.$$typeof){case s:case f:il=!0;break;case K:return il=h._init,T(il(h._payload),O,C,j,L)}}if(il)return L=L(h),il=j===""?"."+Ht(h,0):j,Ot(L)?(C="",il!=null&&(C=il.replace(Ee,"$&/")+"/"),T(L,O,C,"",function(Ha){return Ha})):L!=null&&(Dt(L)&&(L=Ze(L,C+(L.key==null||h&&h.key===L.key?"":(""+L.key).replace(Ee,"$&/")+"/")+il)),O.push(L)),1;il=0;var Ql=j===""?".":j+":";if(Ot(h))for(var _l=0;_l>>1,hl=T[sl];if(0>>1;slA(C,Q))jA(L,C)?(T[sl]=L,T[j]=Q,sl=j):(T[sl]=C,T[O]=Q,sl=O);else if(jA(L,Q))T[sl]=L,T[j]=Q,sl=j;else break l}}return R}function A(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,Dl=!1,pl=!1,tl=!1,ql=!1,nl=typeof setTimeout=="function"?setTimeout:null,It=typeof clearTimeout=="function"?clearTimeout:null,Yl=typeof setImmediate<"u"?setImmediate:null;function ot(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 Ot(T){if(tl=!1,ot(T),!pl)if(y(D)!==null)pl=!0,Ll||(Ll=!0,Zl());else{var R=y(p);R!==null&&Tt(Ot,R.startTime-T)}}var Ll=!1,I=-1,Vl=5,Mt=-1;function Ze(){return ql?!0:!(s.unstable_now()-MtT&&Ze());){var sl=q.callback;if(typeof sl=="function"){q.callback=null,ll=q.priorityLevel;var hl=sl(q.expirationTime<=T);if(T=s.unstable_now(),typeof hl=="function"){q.callback=hl,ot(T),R=!0;break t}q===y(D)&&o(D),ot(T)}else o(D);q=y(D)}if(q!==null)R=!0;else{var h=y(p);h!==null&&Tt(Ot,h.startTime-T),R=!1}}break l}finally{q=null,ll=Q,Dl=!1}R=void 0}}finally{R?Zl():Ll=!1}}}var Zl;if(typeof Yl=="function")Zl=function(){Yl(Dt)};else if(typeof MessageChannel<"u"){var Ee=new MessageChannel,Ht=Ee.port2;Ee.port1.onmessage=Dt,Zl=function(){Ht.postMessage(null)}}else Zl=function(){nl(Dt,0)};function Tt(T,R){I=nl(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||125sl?(T.sortIndex=Q,f(p,T),y(D)===null&&T===y(p)&&(tl?(It(I),I=-1):tl=!0,Tt(Ot,Q-sl))):(T.sortIndex=hl,f(D,T),pl||Dl||(pl=!0,Ll||(Ll=!0,Zl()))),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(1hl||(l.current=sl[hl],sl[hl]=null,hl--)}function C(l,t){hl++,sl[hl]=l.current,l.current=t}var j=h(null),L=h(null),J=h(null),il=h(null);function Ql(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 _l(){O(j),O(L),O(J)}function Ha(l){l.memoizedState!==null&&C(il,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)),il.current===l&&(O(il),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,Pl=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,lt=null;function Pt(l){if(typeof mh=="function"&&vh(l),lt&&typeof lt.setStrictMode=="function")try{lt.setStrictMode(wa,l)}catch{}}var tt=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 dt(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=""+rt(t)):l.value!==""+rt(t)&&(l.value=""+rt(t)):i!=="submit"&&i!=="reset"||l.removeAttribute("value"),t!=null?yi(l,i,rt(t)):e!=null?yi(l,i,rt(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=""+rt(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?""+rt(e):"",t=t!=null?""+rt(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(jt)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=jt&&"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,Nt=1<<32-tt(t)+u|e<Z?(F=B,B=null):F=B.sibling;var al=b(m,B,v[Z],z);if(al===null){B===null&&(B=F);break}l&&B&&al.alternate===null&&t(m,B),d=n(al,d,Z),el===null?Y=al:el.sibling=al,el=al,B=F}if(Z===v.length)return e(m,B),P&&qt(m,Z),Y;if(B===null){for(;ZZ?(F=B,B=null):F=B.sibling;var ze=b(m,B,al.value,z);if(ze===null){B===null&&(B=F);break}l&&B&&ze.alternate===null&&t(m,B),d=n(ze,d,Z),el===null?Y=ze:el.sibling=ze,el=ze,B=F}if(al.done)return e(m,B),P&&qt(m,Z),Y;if(B===null){for(;!al.done;Z++,al=v.next())al=E(m,al.value,z),al!==null&&(d=n(al,d,Z),el===null?Y=al:el.sibling=al,el=al);return P&&qt(m,Z),Y}for(B=a(B);!al.done;Z++,al=v.next())al=S(B,m,Z,al.value,z),al!==null&&(l&&al.alternate!==null&&B.delete(al.key===null?Z:al.key),d=n(al,d,Z),el===null?Y=al:el.sibling=al,el=al);return l&&B.forEach(function(Cm){return t(m,Cm)}),P&&qt(m,Z),Y}function dl(m,d,v,z){if(typeof v=="object"&&v!==null&&v.type===tl&&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===tl){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===Vl&&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===tl?(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 Vl:return v=qe(v),dl(m,d,v,z)}if(Tt(v))return w(m,d,v,z);if(Zl(v)){if(Y=Zl(v),typeof Y!="function")throw Error(o(150));return v=Y.call(v),G(m,d,v,z)}if(typeof v.then=="function")return dl(m,d,nn(v),z);if(v.$$typeof===Yl)return dl(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=dl(m,d,v,z);return ha=null,Y}catch(B){if(B===da||B===an)throw B;var el=at(29,B,null,m.mode);return el.lanes=z,el.return=m,el}}}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,(ul&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 E=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 dl=e;switch(G.tag){case 1:if(w=G.payload,typeof w=="function"){E=w.call(dl,E,b);break l}E=w;break l;case 3:w.flags=w.flags&-65537|128;case 0:if(w=G.payload,b=typeof w=="function"?w.call(dl,E,b):w,b==null)break l;E=q({},E,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=E):_=_.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=E),u.baseState=r,u.firstBaseUpdate=g,u.lastBaseUpdate=_,n===null&&(u.shared.lanes=0),he|=i,l.lanes=i,l.memoizedState=E}}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,_,ft(l))}else nu(l,t,a,ft(l))}catch(E){nu(l,t,{then:function(){},status:"rejected",reason:E},ft())}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:Xt,lastRenderedState:Q},next:null};var e={};return t.next={memoizedState:e,baseState:e,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Xt,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,{},ft())}function vc(){return xl(Tu)}function xo(){return zl().memoizedState}function jo(){return zl().memoizedState}function Dy(l){for(var t=l.return;t!==null;){switch(t.tag){case 24:case 3:var e=ft();l=ce(e);var a=fe(t,l,e);a!==null&&(Il(a,t,e),lu(a,t,e)),t={cache:Zi()},l.payload=t;return}t=t.return}}function Ny(l,t,e){var a=ft();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&&(Il(e,l,a),Yo(e,t,a)))}function Bo(l,t,e){var a=ft();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,et(c,i))return ku(l,t,u,0),yl===null&&$u(),!1}catch{}if(e=wi(l,t,u,a),e!==null)return Il(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&&Il(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:xl,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:xl,use:hn,useCallback:function(l,t){return Xl().memoizedState=[l,t===void 0?null:t],l},useContext:xl,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=Xl();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=Xl();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=Xl();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=Xl();return yc(e,l,t)},useTransition:function(){var l=oc(!1);return l=Co.bind(null,V,l.queue,!0,!1),Xl().memoizedState=l,[!1,l]},useSyncExternalStore:function(l,t,e){var a=V,u=Xl();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=Xl(),t=yl.identifierPrefix;if(P){var e=Ut,a=Nt;e=(a&~(1<<32-tt(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[Hl]=t,n[Kl]=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(Bl(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&&Vt(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&&Vt(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=wl,u!==null)switch(u.tag){case 27:case 5:a=u.memoizedProps}l[Hl]=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[Hl]=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[Hl]=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?(nt(t),t):(nt(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[Hl]=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?(nt(t),t):(nt(t),null)}return nt(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 _l(),l===null&&Pc(t.stateNode.containerInfo),vl(t),null;case 10:return Gt(t.type),vl(t),null;case 19:if(O(Tl),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(Tl,Tl.current&1|2),P&&qt(t,a.treeForkCount),t.child}l=l.sibling}a.tail!==null&&Pl()>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*Pl()-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=Pl(),l.sibling=null,e=Tl.current,C(Tl,u?e&1|2:e&1),P&&qt(t,a.treeForkCount),l):(vl(t),null);case 22:case 23:return nt(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),Gt(Al),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 Gt(Al),_l(),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(nt(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(nt(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(Tl),null;case 4:return _l(),null;case 10:return Gt(t.type),null;case 22:case 23:return nt(t),lc(),l!==null&&O(Be),l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 24:return Gt(Al),null;case 25:return null;default:return null}}function or(l,t){switch(Yi(t),t.tag){case 3:Gt(Al),_l();break;case 26:case 27:case 5:Cu(t);break;case 4:_l();break;case 31:t.memoizedState!==null&&nt(t);break;case 13:nt(t);break;case 19:O(Tl);break;case 10:Gt(t.type);break;case 22:case 23:nt(t),lc(),l!==null&&O(Be);break;case 24:Gt(Al)}}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){fl(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(_){fl(u,r,_)}}}a=a.next}while(a!==n)}}catch(_){fl(t,t.return,_)}}function rr(l){var t=l.updateQueue;if(t!==null){var e=l.stateNode;try{lo(t,e)}catch(a){fl(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){fl(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){fl(l,t,u)}}function Rt(l,t){var e=l.ref,a=l.refCleanup;if(e!==null)if(typeof a=="function")try{a()}catch(u){fl(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){fl(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){fl(l,l.return,u)}}function Cc(l,t,e){try{var a=l.stateNode;em(a,l.type,e,t),a[Kl]=t}catch(u){fl(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=xt));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]);Bl(t,a,e),t[Hl]=l,t[Kl]=e}catch(n){fl(l,l.return,n)}}var Zt=!1,Ml=!1,xc=!1,vr=typeof WeakSet=="function"?WeakSet:Set,Rl=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,E=l,b=null;t:for(;;){for(var S;E!==e||u!==0&&E.nodeType!==3||(c=i+u),E!==n||a!==0&&E.nodeType!==3||(r=i+a),E.nodeType===3&&(i+=E.nodeValue.length),(S=E.firstChild)!==null;)b=E,E=S;for(;;){if(E===l)break t;if(b===e&&++g===u&&(c=i),b===n&&++_===a&&(r=i),(S=E.nextSibling)!==null)break;E=b,b=E.parentNode}E=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,Rl=t;Rl!==null;)if(t=Rl,l=t.child,(t.subtreeFlags&1028)!==0&&l!==null)l.return=t,Rl=l;else for(;Rl!==null;){switch(t=Rl,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"))),Bl(n,a,e),n[Hl]=l,Ul(n),a=n;break l;case"link":var i=Td("link","href",u).get(a+(e.href||""));if(i){for(var c=0;cdl&&(i=dl,dl=G,G=i);var m=Es(c,G),d=Es(c,dl);if(m&&d&&(S.rangeCount!==1||S.anchorNode!==m.node||S.anchorOffset!==m.offset||S.focusNode!==d.node||S.focusOffset!==d.offset)){var v=E.createRange();v.setStart(m.node,m.offset),S.removeAllRanges(),G>dl?(S.addRange(v),S.extend(d.node,d.offset)):(v.setEnd(d.node,d.offset),S.addRange(v))}}}}for(E=[],S=c;S=S.parentNode;)S.nodeType===1&&E.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=kt;if(Nl=0,Ta=me=null,kt=0,(ul&6)!==0)throw Error(o(331));var c=ul;if(ul|=4,Mr(n.current),Ar(n,n.current,i,e),ul=c,vu(0,!1),lt&&typeof lt.onPostCommitFiberRoot=="function")try{lt.onPostCommitFiberRoot(wa,n)}catch{}return!0}finally{R.p=u,T.T=a,Zr(l,t)}}function Jr(l,t,e){t=yt(e,t),t=_c(l.stateNode,t,2),l=fe(l,t,2),l!==null&&(ja(l,2),Ct(l))}function fl(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=yt(e,l),e=Wo(2),a=fe(t,e,2),a!==null&&($o(e,a,t,l),ja(a,2),Ct(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&&(Sl===4||Sl===3&&(k&62914560)===k&&300>Pl()-On?(ul&2)===0&&za(l,0):Yc|=e,_a===k&&(_a=0)),Ct(l)}function Wr(l,t){t===0&&(t=Qf()),l=Ce(l,t),l!==null&&(ja(l,t),Ct(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 Ct(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-tt(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=Pl(),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}Nl!==0&&Nl!==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,E=r.initiatorType;_&&id(E)&&(r=r.responseEnd,i+=_*(r"u"?null:document;function bd(l,t,e){var a=Oa;if(a&&typeof t=="string"&&t){var u=dt(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"),Bl(t,"link",l),Ul(t),a.head.appendChild(t)))}}function hm(l){Ft.D(l),bd("dns-prefetch",l,null)}function ym(l,t){Ft.C(l,t),bd("preconnect",l,t)}function mm(l,t,e){Ft.L(l,t,e);var a=Oa;if(a&&l&&t){var u='link[rel="preload"][as="'+dt(t)+'"]';t==="image"&&e&&e.imageSrcSet?(u+='[imagesrcset="'+dt(e.imageSrcSet)+'"]',typeof e.imageSizes=="string"&&(u+='[imagesizes="'+dt(e.imageSizes)+'"]')):u+='[href="'+dt(l)+'"]';var n=u;switch(t){case"style":n=Ma(l);break;case"script":n=Da(l)}pt.has(n)||(l=q({rel:"preload",href:t==="image"&&e&&e.imageSrcSet?void 0:l,as:t},e),pt.set(n,l),a.querySelector(u)!==null||t==="style"&&a.querySelector(pu(n))||t==="script"&&a.querySelector(_u(n))||(t=a.createElement("link"),Bl(t,"link",l),Ul(t),a.head.appendChild(t)))}}function vm(l,t){Ft.m(l,t);var e=Oa;if(e&&l){var a=t&&typeof t.as=="string"?t.as:"script",u='link[rel="modulepreload"][as="'+dt(a)+'"][href="'+dt(l)+'"]',n=u;switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":n=Da(l)}if(!pt.has(n)&&(l=q({rel:"modulepreload",href:l},t),pt.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"),Bl(a,"link",l),Ul(a),e.head.appendChild(a)}}}function gm(l,t,e){Ft.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=pt.get(n))&&rf(l,e);var r=i=a.createElement("link");Ul(r),Bl(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){Ft.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=pt.get(u))&&df(l,t),n=e.createElement("script"),Ul(n),Bl(n,"link",l),e.head.appendChild(n)),n={type:"script",instance:n,count:1,state:null},a.set(u,n))}}function Sm(l,t){Ft.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=pt.get(u))&&df(l,t),n=e.createElement("script"),Ul(n),Bl(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),pt.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},pt.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="'+dt(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}),Bl(t,"link",e),Ul(t),l.head.appendChild(t))}function Da(l){return'[src="'+dt(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~="'+dt(e.href)+'"]');if(a)return t.instance=a,Ul(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"),Ul(a),Bl(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,Ul(n),n;a=pd(e),(u=pt.get(u))&&rf(a,u),n=(l.ownerDocument||l).createElement("link"),Ul(n);var i=n;return i._p=new Promise(function(c,r){i.onload=c,i.onerror=r}),Bl(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,Ul(u),u):(a=e,(u=pt.get(n))&&(a=q({},e),df(a,u)),l=l.ownerDocument||l,u=l.createElement("script"),Ul(u),Bl(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,Ul(n);return}n=t.ownerDocument||t,a=pd(a),(u=pt.get(u))&&rf(a,u),n=n.createElement("link"),Ul(n);var i=n;i._p=new Promise(function(c,r){i.onload=c,i.onerror=r}),Bl(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 A=f*Nf.length+o,U=A%4===0,H=A%11===0?"accent":A%3===0?"warm":"neutral",x=3600+A%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+A%5*2:34+A%8*10,height:U?6+A%5*2:5+A%3,x:`${y+p}vw`,y:`${s+D}vh`,driftX:`${38+A%6*5}vw`,driftY:`${(A%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(),A=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),A.type="lowpass",A.frequency.setValueAtTime(4200,y),A.frequency.exponentialRampToValueAtTime(760,y+3.4),A.frequency.exponentialRampToValueAtTime(340,y+5.4),A.Q.setValueAtTime(.8,y),A.connect(o),o.connect(f.destination),s0(f,A,U,y),o0(f,A,U,y),r0(f,A,U,y),f.resume().catch(()=>{}),()=>{U.forEach(H=>{try{H.stop()}catch{}}),f.close().catch(()=>{})}}function s0(s,f,y,o){const A=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:A,errorId:U,onChange:H}){const x=Cl.useId(),D=Cl.useRef(null),p=s??x,K=Array.from({length:Uu},(pl,tl)=>o[tl]??""),q=Math.min(o.length,Uu-1);function ll(pl){H(d0(pl.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":!!A,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":!!A,"aria-describedby":A?U:void 0,onChange:ll}),N.jsx("div",{className:"pin-code-slots","aria-hidden":"true",children:K.map((pl,tl)=>{const ql=["pin-code-slot",pl?"pin-code-slot-filled":null,tl===q?"pin-code-slot-active":null].filter(Boolean).join(" ");return N.jsx("span",{className:ql},tl)})})]})]})}function h0({view:s,error:f,onSubmit:y}){const[o,A]=Cl.useState(""),U=f||s.last_error;async function H(x){if(x.preventDefault(),!li(o))return;await y(o)&&A("")}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:A}),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:A}){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:A,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 A(U){if(U.preventDefault(),!li(y))return;await f(y)&&o("")}return N.jsxs("form",{className:"pin-setup mode-panel",noValidate:!0,onSubmit:A,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",[A,U]=Cl.useState(!1),H=Cl.useRef(void 0);Cl.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?A?"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]=Cl.useState(S0),[A,U]=Cl.useState(!0),[H,x]=Cl.useState(null),[D,p]=Cl.useState(()=>f??T0());Cl.useEffect(()=>{let tl=!0,ql;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?ql=nl:nl()}).catch(nl=>{tl&&x({target:"mode",message:Df(nl)})}),()=>{tl=!1,ql?.()}},[s]),Cl.useEffect(()=>{if(D)return lh(!0),()=>{lh(!1)}},[D]);const K=Cl.useMemo(()=>_0(y,A),[A,y]);async function q(tl,ql="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:ql,message:Df(nl)}),!1}}const ll=H?.target==="setup"?H.message:null,Dl=H?.target==="mode"?H.message:null,pl=Cl.useCallback(()=>{z0(),p(!1)},[]);return N.jsxs(N.Fragment,{children:[N.jsxs(v0,{mode:y.mode,status:K,children:[A?N.jsxs("section",{className:"mode-panel quiet-state",children:[N.jsx("p",{className:"kicker",children:"Opening"}),N.jsx("h2",{children:"Stay is opening."})]}):null,!A&&!y.pin_configured?N.jsx(m0,{error:ll,onSave:tl=>q(()=>s.setPin(tl),"setup")}):null,!A&&y.mode==="idle"&&y.pin_configured?N.jsxs("section",{className:"mode-panel quiet-state",children:[N.jsx("p",{className:"kicker",children:"Ready"}),N.jsx("h2",{children:"Stay is waiting."})]}):null,!A&&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,!A&&y.mode==="guarding"?N.jsx(Im,{meeting:y.meeting,error:Dl,onStop:()=>{q(()=>s.stopGuarding())}}):null,!A&&y.mode==="locked"?N.jsx(h0,{view:y,error:Dl,onSubmit:tl=>q(()=>s.submitPin(tl))}):null]}),D?N.jsx(u0,{onComplete:pl}):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,A=s??{mode:"idle",pin_configured:!1};function U(x,D=[]){A=x;const p={view:A,commands:D};return f.forEach(K=>K(A)),p}return{commandLog:y,async currentState(){return y.push("current_state"),A},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"),A.mode!=="locked")throw new Error("Stay is not locked right now");return x===o?U({mode:"guarding",meeting:A.meeting,pin_configured:!0},[{type:"unlock"}]):U({...A,failed_attempts:A.failed_attempts+1,last_error:"That PIN did not open Stay."},[{type:"stay_locked",failed_attempts:A.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 A}}}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: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} diff --git a/apps/desktop/dist/index.html b/apps/desktop/dist/index.html index 3a4d081..518b4f9 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/package.json b/apps/desktop/package.json index a03d714..385e1dc 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -6,6 +6,7 @@ "packageManager": "bun@1.3.13", "scripts": { "dev": "tauri dev", + "dev:first-launch": "VITE_STAY_FORCE_LAUNCH_INTRO=1 tauri dev", "dev:worktree": "bash ../../scripts/stay-worktree-dev.sh", "frontend:dev": "vite --host 127.0.0.1", "frontend:build": "vite build", diff --git a/apps/desktop/src-tauri/src/lib.rs b/apps/desktop/src-tauri/src/lib.rs index 39dfd68..54ee907 100644 --- a/apps/desktop/src-tauri/src/lib.rs +++ b/apps/desktop/src-tauri/src/lib.rs @@ -145,6 +145,17 @@ fn set_guarding_panel_expanded( result.map_err(|error| error.to_string()) } +#[tauri::command] +fn set_launch_animation_active(active: bool, window: WebviewWindow) -> Result<(), String> { + let result = if active { + position_launch_animation(&window) + } else { + position_top_right(&window) + }; + + result.map_err(|error| error.to_string()) +} + #[tauri::command] fn observe_focus_for_test( app_name: String, @@ -255,6 +266,7 @@ pub fn run() { stop_guarding, submit_pin, set_guarding_panel_expanded, + set_launch_animation_active, observe_focus_for_test ]) .run(tauri::generate_context!()) @@ -304,6 +316,18 @@ fn position_guarding_handle(window: &WebviewWindow) -> tauri::Result<()> { Ok(()) } +fn position_launch_animation(window: &WebviewWindow) -> tauri::Result<()> { + let Some(monitor) = window.current_monitor()? else { + return Ok(()); + }; + + window.set_position(tauri::Position::Physical(*monitor.position()))?; + window.set_size(tauri::Size::Physical(*monitor.size()))?; + window.show()?; + window.set_focus()?; + Ok(()) +} + fn compact_window_geometry( monitor_position: PhysicalPosition, monitor_size: PhysicalSize, diff --git a/apps/desktop/src/App.test.tsx b/apps/desktop/src/App.test.tsx index 92bd3b8..f802b94 100644 --- a/apps/desktop/src/App.test.tsx +++ b/apps/desktop/src/App.test.tsx @@ -1,15 +1,19 @@ import { act, render, screen, waitFor } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; -import { describe, expect, it } from "vitest"; +import { describe, expect, it, vi } from "vitest"; import { App } from "./App"; import { createMockStayClient } from "./mockStayClient"; +function renderApp(client = createMockStayClient()) { + return render(); +} + describe("Stay GUI", () => { it("shows PIN setup in idle mode and constrains PIN input", async () => { const user = userEvent.setup(); const client = createMockStayClient(); - render(); + renderApp(client); const pinInput = await screen.findByLabelText("Set a four digit PIN"); const keepButton = screen.getByRole("button", { name: "Keep" }); @@ -34,7 +38,7 @@ describe("Stay GUI", () => { await client.setPin("4821"); client.focusMeeting(); - render(); + renderApp(client); expect(await screen.findByText("Stay with this meeting?")).toBeInTheDocument(); expect(screen.getByText("Weekly Team Sync")).toBeInTheDocument(); @@ -51,7 +55,7 @@ describe("Stay GUI", () => { await client.setPin("4821"); client.focusMeeting(); - render(); + renderApp(client); await user.click(await screen.findByRole("button", { name: "Stay" })); @@ -73,7 +77,7 @@ describe("Stay GUI", () => { await client.acceptStay(); client.focusAway(); - render(); + renderApp(client); const unlockInput = await screen.findByLabelText("Unlock PIN"); const openButton = screen.getByRole("button", { name: "Open" }); @@ -95,7 +99,7 @@ describe("Stay GUI", () => { const client = createMockStayClient(); await client.setPin("4821"); - render(); + renderApp(client); expect(await screen.findByText("Stay is waiting.")).toBeInTheDocument(); @@ -111,7 +115,7 @@ describe("Stay GUI", () => { const client = createMockStayClient(); client.focusMeeting(); - render(); + renderApp(client); expect(await screen.findByText("Stay with this meeting?")).toBeInTheDocument(); expect(screen.getByRole("button", { name: "Stay" })).toBeDisabled(); @@ -127,4 +131,28 @@ describe("Stay GUI", () => { expect(screen.queryByText("PIN must be exactly four digits")).not.toBeInTheDocument(); expect(screen.getByText("Stay with this meeting?")).toBeInTheDocument(); }); + + it("shows the first-launch intro when enabled and dismisses it", async () => { + const user = userEvent.setup(); + + render(); + + expect(await screen.findByLabelText("Stay opening animation")).toBeInTheDocument(); + + await user.click(screen.getByRole("button", { name: "Skip" })); + + expect(screen.queryByLabelText("Stay opening animation")).not.toBeInTheDocument(); + }); + + it("can force the first-launch intro in dev with an env flag", async () => { + vi.stubEnv("VITE_STAY_FORCE_LAUNCH_INTRO", "1"); + + try { + render(); + + expect(await screen.findByLabelText("Stay opening animation")).toBeInTheDocument(); + } finally { + vi.unstubAllEnvs(); + } + }); }); diff --git a/apps/desktop/src/App.tsx b/apps/desktop/src/App.tsx index e95cae8..1b89b0f 100644 --- a/apps/desktop/src/App.tsx +++ b/apps/desktop/src/App.tsx @@ -1,13 +1,19 @@ -import { useEffect, useMemo, useState } from "react"; +import { invoke, isTauri } from "@tauri-apps/api/core"; +import { useCallback, useEffect, useMemo, useState } from "react"; import type { CommandResponse, GuardView } from "./types"; import type { StayClient } from "./stayClient"; import { errorMessage } from "./stayClient"; import { GuardingStatus } from "./ui/GuardingStatus"; +import { LaunchIntro } from "./ui/LaunchIntro"; import { LockScreen } from "./ui/LockScreen"; import { MeetingPrompt } from "./ui/MeetingPrompt"; import { PinSetup } from "./ui/PinSetup"; import { StatusShell } from "./ui/StatusShell"; +const launchIntroStorageKey = "stay.launchIntro.v1.seen"; +const launchIntroPreviewParam = "launchIntro"; +const forceLaunchIntroEnv = "1"; + const idleView: GuardView = { mode: "idle", pin_configured: false, @@ -15,6 +21,7 @@ const idleView: GuardView = { type AppProps = { client: StayClient; + showLaunchIntro?: boolean; }; type ActionError = { @@ -22,10 +29,13 @@ type ActionError = { message: string; }; -export function App({ client }: AppProps) { +export function App({ client, showLaunchIntro: showLaunchIntroOverride }: AppProps) { const [view, setView] = useState(idleView); const [isLoading, setIsLoading] = useState(true); const [actionError, setActionError] = useState(null); + const [showLaunchIntro, setShowLaunchIntro] = useState(() => + showLaunchIntroOverride ?? shouldShowLaunchIntro(), + ); useEffect(() => { let isMounted = true; @@ -73,6 +83,18 @@ export function App({ client }: AppProps) { }; }, [client]); + useEffect(() => { + if (!showLaunchIntro) { + return; + } + + void setLaunchAnimationActive(true); + + return () => { + void setLaunchAnimationActive(false); + }; + }, [showLaunchIntro]); + const status = useMemo(() => statusForView(view, isLoading), [isLoading, view]); async function runCommand( @@ -92,55 +114,65 @@ export function App({ client }: AppProps) { const setupError = actionError?.target === "setup" ? actionError.message : null; const modeError = actionError?.target === "mode" ? actionError.message : null; + const completeLaunchIntro = useCallback(() => { + markLaunchIntroSeen(); + setShowLaunchIntro(false); + }, []); return ( - - {isLoading ? ( -
-

Opening

-

Stay is opening.

-
- ) : null} - - {!isLoading && !view.pin_configured ? ( - runCommand(() => client.setPin(pin), "setup")} /> - ) : null} - - {!isLoading && view.mode === "idle" && view.pin_configured ? ( -
-

Ready

-

Stay is waiting.

-
- ) : null} - - {!isLoading && view.mode === "meeting_candidate" ? ( - { - void runCommand(() => client.acceptStay()); - }} - onDismiss={() => { - void runCommand(() => client.dismissCandidate()); - }} - /> - ) : null} - - {!isLoading && view.mode === "guarding" ? ( - { - void runCommand(() => client.stopGuarding()); - }} - /> - ) : null} - - {!isLoading && view.mode === "locked" ? ( - runCommand(() => client.submitPin(pin))} /> + <> + + {isLoading ? ( +
+

Opening

+

Stay is opening.

+
+ ) : null} + + {!isLoading && !view.pin_configured ? ( + runCommand(() => client.setPin(pin), "setup")} /> + ) : null} + + {!isLoading && view.mode === "idle" && view.pin_configured ? ( +
+

Ready

+

Stay is waiting.

+
+ ) : null} + + {!isLoading && view.mode === "meeting_candidate" ? ( + { + void runCommand(() => client.acceptStay()); + }} + onDismiss={() => { + void runCommand(() => client.dismissCandidate()); + }} + /> + ) : null} + + {!isLoading && view.mode === "guarding" ? ( + { + void runCommand(() => client.stopGuarding()); + }} + /> + ) : null} + + {!isLoading && view.mode === "locked" ? ( + runCommand(() => client.submitPin(pin))} /> + ) : null} +
+ + {showLaunchIntro ? ( + ) : null} -
+ ); } @@ -164,3 +196,43 @@ function statusForView(view: GuardView, isLoading: boolean): string { return "Locked"; } } + +function shouldShowLaunchIntro(): boolean { + if (isLaunchIntroForced()) { + return true; + } + + if (new URLSearchParams(window.location.search).get(launchIntroPreviewParam) === "1") { + return true; + } + + try { + return window.localStorage.getItem(launchIntroStorageKey) !== "true"; + } catch { + return true; + } +} + +function isLaunchIntroForced(): boolean { + return import.meta.env.DEV && import.meta.env.VITE_STAY_FORCE_LAUNCH_INTRO === forceLaunchIntroEnv; +} + +function markLaunchIntroSeen(): void { + try { + window.localStorage.setItem(launchIntroStorageKey, "true"); + } catch { + // Storage can be unavailable in locked-down webviews; the intro still finishes for this session. + } +} + +async function setLaunchAnimationActive(active: boolean): Promise { + if (!isTauri()) { + return; + } + + try { + await invoke("set_launch_animation_active", { active }); + } catch { + // The visual animation is still usable if the native window resize is unavailable. + } +} diff --git a/apps/desktop/src/styles.css b/apps/desktop/src/styles.css index 53d4d82..54e2b93 100644 --- a/apps/desktop/src/styles.css +++ b/apps/desktop/src/styles.css @@ -867,6 +867,376 @@ label { color: #8f2e22; } +/* ---------- First launch intro ---------- */ + +.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, 0.78), transparent 72%), + linear-gradient(155deg, rgba(255, 255, 255, 0.92), rgba(248, 247, 244, 0.74) 52%, rgba(229, 238, 236, 0.52)), + #f6f0e7; + animation: launch-veil var(--launch-duration) cubic-bezier(0.2, 0.7, 0.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, 0.4), transparent 42%), + url("data:image/svg+xml;utf8,"); + background-blend-mode: normal, soft-light; + opacity: 0.46; +} + +.launch-intro__room { + inset: -24%; + background: + radial-gradient(28% 22% at 18% 24%, rgba(23, 109, 101, 0.2), transparent 70%), + radial-gradient(30% 24% at 82% 78%, rgba(211, 160, 122, 0.2), transparent 72%), + radial-gradient(44% 34% at 50% 52%, rgba(255, 255, 255, 0.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, 0.5); + border-radius: 999px; + background: rgba(226, 216, 202, 0.62); + box-shadow: + 0 1px 0 rgba(255, 255, 255, 0.68) inset, + 0 0 18px rgba(255, 255, 255, 0.22), + 0 8px 22px rgba(52, 42, 32, 0.08); + opacity: 0; + transform: translate3d(0, 0, 0) scale(0.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, rgba(236, 190, 154, 0.82), rgba(196, 123, 75, 0.58)), + var(--warm); +} + +.launch-intro__signal-accent { + background: + linear-gradient(180deg, rgba(58, 156, 147, 0.88), rgba(14, 79, 72, 0.74)), + 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(0.92); + transform-origin: 50% 50%; + animation: launch-icon-stage var(--launch-duration) cubic-bezier(0.18, 0.74, 0.2, 1) both; +} + +.launch-intro__tile { + position: absolute; + inset: 4%; + z-index: 1; + border: 1px solid rgba(255, 255, 255, 0.62); + border-radius: 24%; + background: + radial-gradient(65% 60% at 50% 40%, rgba(255, 255, 255, 0.76), transparent 74%), + linear-gradient(145deg, rgba(255, 252, 245, 0.96), rgba(245, 235, 219, 0.76) 64%, rgba(232, 220, 202, 0.66)), + #f7efe4; + box-shadow: + 0 2px 0 rgba(255, 255, 255, 0.72) inset, + 0 -2px 0 rgba(88, 72, 55, 0.08) inset, + 0 28px 70px rgba(67, 55, 42, 0.18), + 0 0 0 9px rgba(255, 255, 255, 0.22); + opacity: 0; + transform: scale(0.88); + animation: launch-tile-build var(--launch-duration) cubic-bezier(0.2, 0.7, 0.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, 0.64); + box-shadow: 0 1px 8px rgba(255, 255, 255, 0.36) inset; +} + +.launch-intro__tile::after { + background: + linear-gradient(180deg, rgba(255, 255, 255, 0.44), transparent 35%), + url("data:image/svg+xml;utf8,"); + background-blend-mode: normal, soft-light; + opacity: 0.62; +} + +.launch-intro__icon-pattern { + position: absolute; + inset: 4%; + z-index: 2; + opacity: 0; + animation: launch-icon-pattern var(--launch-duration) cubic-bezier(0.2, 0.7, 0.2, 1) both; +} + +.launch-intro__icon-mark { + position: absolute; + border: 1px solid rgba(255, 255, 255, 0.64); + border-radius: 999px; + background: rgba(226, 216, 202, 0.62); + box-shadow: + 0 1px 0 rgba(255, 255, 255, 0.82) inset, + 0 5px 13px rgba(52, 42, 32, 0.1), + 0 0 18px rgba(255, 255, 255, 0.26); +} + +.launch-intro__icon-mark-warm { + background: + linear-gradient(180deg, rgba(236, 190, 154, 0.78), rgba(196, 123, 75, 0.56)), + var(--warm); + box-shadow: + 0 1px 0 rgba(255, 255, 255, 0.74) inset, + 0 9px 22px rgba(146, 84, 44, 0.14); +} + +.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(0.82); + transform-origin: 50% 50%; + filter: blur(7px); + animation: launch-connector-build var(--launch-duration) cubic-bezier(0.2, 0.7, 0.2, 1) both; +} + +.launch-intro__connector-line, +.launch-intro__connector-dot { + position: absolute; + top: 50%; + transform: translateY(-50%); + background: + linear-gradient(180deg, rgba(44, 132, 123, 0.98), rgba(10, 84, 77, 0.96)), + var(--accent-deep); + box-shadow: + 0 1px 0 rgba(255, 255, 255, 0.38) inset, + 0 12px 28px rgba(7, 75, 69, 0.18), + 0 0 0 1px rgba(255, 255, 255, 0.38); +} + +.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: translateX(-50%); + animation: launch-copy var(--launch-duration) cubic-bezier(0.2, 0.7, 0.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: 0.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; +} + /* ---------- Responsive ---------- */ @media (max-height: 380px) { @@ -1150,6 +1520,71 @@ label { 0 0 0 1px rgba(255, 255, 255, 0.12) inset, 0 0 22px rgba(32, 198, 208, 0.22); } + + .launch-intro { + background: + radial-gradient(58% 44% at 50% 42%, rgba(255, 255, 255, 0.08), transparent 72%), + linear-gradient(155deg, rgba(46, 48, 52, 0.88), rgba(30, 32, 36, 0.76) 52%, rgba(22, 36, 34, 0.58)), + #17191b; + } + + .launch-intro__grain { + opacity: 0.22; + } + + .launch-intro__icon-mark { + border-color: rgba(255, 255, 255, 0.18); + background: rgba(232, 224, 211, 0.18); + box-shadow: + 0 1px 0 rgba(255, 255, 255, 0.12) inset, + 0 8px 20px rgba(0, 0, 0, 0.22); + } + + .launch-intro__signal { + border-color: rgba(255, 255, 255, 0.24); + background: rgba(232, 224, 211, 0.26); + box-shadow: + 0 1px 0 rgba(255, 255, 255, 0.16) inset, + 0 0 22px rgba(255, 255, 255, 0.12), + 0 8px 18px rgba(0, 0, 0, 0.24); + } + + .launch-intro__icon-mark-warm { + background: + linear-gradient(180deg, rgba(226, 180, 145, 0.64), rgba(163, 101, 60, 0.48)), + var(--warm); + } + + .launch-intro__signal-warm { + background: + linear-gradient(180deg, rgba(226, 180, 145, 0.78), rgba(163, 101, 60, 0.58)), + var(--warm); + } + + .launch-intro__tile { + border-color: rgba(255, 255, 255, 0.14); + background: + radial-gradient(65% 60% at 50% 40%, rgba(255, 255, 255, 0.1), transparent 74%), + linear-gradient(145deg, rgba(67, 68, 66, 0.92), rgba(38, 37, 34, 0.78) 64%, rgba(28, 29, 28, 0.72)), + #262522; + box-shadow: + 0 2px 0 rgba(255, 255, 255, 0.12) inset, + 0 -2px 0 rgba(0, 0, 0, 0.24) inset, + 0 28px 70px rgba(0, 0, 0, 0.38), + 0 0 0 9px rgba(255, 255, 255, 0.04); + } + + .launch-intro__connector-line, + .launch-intro__connector-dot { + box-shadow: + 0 1px 0 rgba(255, 255, 255, 0.18) inset, + 0 12px 30px rgba(0, 0, 0, 0.28), + 0 0 0 1px rgba(255, 255, 255, 0.14); + } + + .launch-intro__skip { + color: var(--ink); + } } /* ---------- Motion ---------- */ @@ -1219,6 +1654,220 @@ label { } } +@keyframes launch-veil { + 0% { + opacity: 1; + } + + 94% { + opacity: 1; + } + + 100% { + opacity: 0; + } +} + +@keyframes launch-room { + 0% { + transform: scale(1.16) rotate(-2deg); + } + + 46% { + transform: scale(1.04) rotate(0deg); + } + + 73% { + transform: scale(1) rotate(0deg); + } + + 100% { + transform: scale(1.5) rotate(0deg); + } +} + +@keyframes launch-signals-out { + 0%, + 56% { + opacity: 1; + } + + 78% { + opacity: 0.1; + } + + 100% { + opacity: 0; + } +} + +@keyframes launch-signal-pulse { + 0% { + opacity: 0; + transform: translate3d(0, 0, 0) scale(0.62); + filter: blur(8px); + } + + 10% { + opacity: 0.9; + transform: translate3d(0, 0, 0) scale(1.08); + filter: blur(0); + } + + 38% { + opacity: 0.82; + filter: blur(0); + } + + 66% { + opacity: 0.34; + transform: translate3d(var(--signal-drift-x), var(--signal-drift-y), 0) scale(0.82); + filter: blur(3px); + } + + 100% { + opacity: 0; + transform: translate3d(var(--signal-drift-x), var(--signal-drift-y), 0) scale(0.5); + filter: blur(7px); + } +} + +@keyframes launch-icon-stage { + 0% { + opacity: 1; + transform: translate3d(-50%, -50%, 0) scale(0.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); + } + + 100% { + opacity: 0; + transform: translate3d(-50%, -50%, 0) scale(3.2); + filter: blur(2px); + } +} + +@keyframes launch-tile-build { + 0%, + 48% { + opacity: 0; + transform: scale(0.86); + filter: blur(10px); + } + + 62% { + opacity: 1; + transform: scale(1); + filter: blur(0); + } + + 100% { + opacity: 1; + transform: scale(1); + filter: blur(0); + } +} + +@keyframes launch-icon-pattern { + 0%, + 50% { + opacity: 0; + transform: scale(0.96); + filter: blur(8px); + } + + 64% { + opacity: 0.96; + transform: scale(1); + filter: blur(0); + } + + 88%, + 100% { + opacity: 1; + transform: scale(1); + filter: blur(0); + } +} + +@keyframes launch-connector-build { + 0%, + 46% { + opacity: 0; + transform: translate3d(-50%, -50%, 0) scale(0.82); + filter: blur(8px); + } + + 64% { + opacity: 1; + transform: translate3d(-50%, -50%, 0) scale(1); + filter: blur(0); + } + + 88%, + 100% { + opacity: 1; + transform: translate3d(-50%, -50%, 0) scale(1); + filter: blur(0); + } +} + +@keyframes launch-copy { + 0%, + 54% { + opacity: 0; + transform: translateX(-50%) translateY(8px); + filter: blur(4px); + } + + 64%, + 86% { + opacity: 1; + transform: translateX(-50%) translateY(0); + filter: blur(0); + } + + 96%, + 100% { + opacity: 0; + transform: translateX(-50%) translateY(-8px); + filter: blur(3px); + } +} + +@keyframes launch-skip { + 0%, + 8% { + opacity: 0; + } + + 16%, + 80% { + opacity: 0.82; + } + + 100% { + opacity: 0; + } +} + @media (prefers-reduced-motion: reduce) { .stay-shell, .stay-shell-locked, @@ -1243,4 +1892,18 @@ label { .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: 1200ms; + } } diff --git a/apps/desktop/src/ui/LaunchIntro.tsx b/apps/desktop/src/ui/LaunchIntro.tsx new file mode 100644 index 0000000..305f83d --- /dev/null +++ b/apps/desktop/src/ui/LaunchIntro.tsx @@ -0,0 +1,311 @@ +import { useEffect, useMemo } from "react"; +import type { CSSProperties } from "react"; + +const defaultDurationMs = 7600; +const reducedMotionDurationMs = 1200; + +type LaunchIntroProps = { + onComplete: () => void; +}; + +type SignalMark = { + id: string; + kind: "bar" | "dot"; + tone: "neutral" | "warm" | "accent"; + width: number; + height: number; + x: string; + y: string; + driftX: string; + driftY: string; + delayMs: number; + durationMs: number; +}; + +type IconMark = { + id: string; + kind: "bar" | "dot"; + tone: "neutral" | "warm"; + placement: string; +}; + +type LaunchStyle = CSSProperties & Record<`--${string}`, string>; +type SignalTemplate = Omit; + +const signalRows = [5, 12.5, 20, 27.5, 35, 42.5, 50, 57.5, 65, 72.5, 80, 87.5, 95]; +const signalColumns = [-18, -6, 6, 18, 30, 42, 54, 66, 78, 90, 102, 114]; + +const signalMarkTemplates: SignalTemplate[] = signalRows.flatMap((rowY, rowIndex) => + signalColumns.map((columnX, columnIndex) => { + const seed = rowIndex * signalColumns.length + columnIndex; + const isDot = seed % 4 === 0; + const tone: SignalMark["tone"] = seed % 11 === 0 ? "accent" : seed % 3 === 0 ? "warm" : "neutral"; + const durationMs = 3600 + (seed % 8) * 210; + const rowOffset = ((columnIndex % 3) - 1) * 1.8; + const columnOffset = ((rowIndex % 4) - 1.5) * 1.6; + + return { + kind: isDot ? "dot" : "bar", + tone, + width: isDot ? 6 + (seed % 5) * 2 : 34 + (seed % 8) * 10, + height: isDot ? 6 + (seed % 5) * 2 : 5 + (seed % 3), + x: `${columnX + columnOffset}vw`, + y: `${rowY + rowOffset}vh`, + driftX: `${38 + (seed % 6) * 5}vw`, + driftY: `${((seed % 7) - 3) * 0.55}vh`, + delayMs: -Math.round(((columnIndex + 1) / signalColumns.length) * durationMs) + rowIndex * 34, + durationMs, + }; + }), +); + +const signalMarks: SignalMark[] = signalMarkTemplates.map((mark, index) => ({ + id: `signal-${index + 1}`, + ...mark, +})); + +const iconMarks: IconMark[] = [ + { 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" }, +]; + +export function LaunchIntro({ onComplete }: LaunchIntroProps) { + const durationMs = useMemo(prefersReducedMotion, []) ? reducedMotionDurationMs : defaultDurationMs; + + useEffect(() => { + const timer = window.setTimeout(onComplete, durationMs); + const stopAudio = durationMs === defaultDurationMs ? playLaunchSound() : undefined; + + return () => { + window.clearTimeout(timer); + stopAudio?.(); + }; + }, [durationMs, onComplete]); + + return ( +
+
+ ); +} + +function durationStyle(durationMs: number): LaunchStyle { + return { + "--launch-duration": `${durationMs}ms`, + }; +} + +function signalStyle(mark: SignalMark): LaunchStyle { + return { + "--signal-width": `${mark.width}px`, + "--signal-height": `${mark.height}px`, + "--signal-x": mark.x, + "--signal-y": mark.y, + "--signal-drift-x": mark.driftX, + "--signal-drift-y": mark.driftY, + "--signal-delay": `${mark.delayMs}ms`, + "--signal-duration": `${mark.durationMs}ms`, + }; +} + +function prefersReducedMotion(): boolean { + if (typeof window.matchMedia !== "function") { + return false; + } + + return window.matchMedia("(prefers-reduced-motion: reduce)").matches; +} + +function playLaunchSound(): (() => void) | undefined { + const AudioContextConstructor = window.AudioContext ?? window.webkitAudioContext; + + if (!AudioContextConstructor) { + return undefined; + } + + const audio = new AudioContextConstructor(); + const now = audio.currentTime; + const master = audio.createGain(); + const lowpass = audio.createBiquadFilter(); + const cleanupNodes: AudioScheduledSourceNode[] = []; + + master.gain.setValueAtTime(0.0001, now); + master.gain.exponentialRampToValueAtTime(0.95, now + 0.28); + master.gain.exponentialRampToValueAtTime(0.58, now + 3.8); + master.gain.exponentialRampToValueAtTime(0.0001, now + 7.2); + + lowpass.type = "lowpass"; + lowpass.frequency.setValueAtTime(4200, now); + lowpass.frequency.exponentialRampToValueAtTime(760, now + 3.4); + lowpass.frequency.exponentialRampToValueAtTime(340, now + 5.4); + lowpass.Q.setValueAtTime(0.8, now); + + lowpass.connect(master); + master.connect(audio.destination); + + scheduleRoomTone(audio, lowpass, cleanupNodes, now); + scheduleChatterPulses(audio, lowpass, cleanupNodes, now); + scheduleQuietChord(audio, lowpass, cleanupNodes, now); + + void audio.resume().catch(() => undefined); + + return () => { + cleanupNodes.forEach((node) => { + try { + node.stop(); + } catch { + // Already stopped. + } + }); + void audio.close().catch(() => undefined); + }; +} + +function scheduleRoomTone( + audio: AudioContext, + destination: AudioNode, + cleanupNodes: AudioScheduledSourceNode[], + now: number, +): void { + const noise = audio.createBufferSource(); + const noiseGain = audio.createGain(); + const bandpass = audio.createBiquadFilter(); + const buffer = audio.createBuffer(1, audio.sampleRate * 2, audio.sampleRate); + const data = buffer.getChannelData(0); + + for (let index = 0; index < data.length; index += 1) { + data[index] = Math.sin(index * 12.9898) * 0.18 + (Math.sin(index * 78.233) % 1) * 0.06; + } + + noise.buffer = buffer; + noise.loop = true; + + bandpass.type = "bandpass"; + bandpass.frequency.setValueAtTime(1180, now); + bandpass.frequency.exponentialRampToValueAtTime(260, now + 3.8); + bandpass.Q.setValueAtTime(0.9, now); + + noiseGain.gain.setValueAtTime(0.064, now); + noiseGain.gain.exponentialRampToValueAtTime(0.009, now + 4.8); + + noise.connect(bandpass); + bandpass.connect(noiseGain); + noiseGain.connect(destination); + + noise.start(now); + noise.stop(now + 5.2); + cleanupNodes.push(noise); +} + +function scheduleChatterPulses( + audio: AudioContext, + destination: AudioNode, + cleanupNodes: AudioScheduledSourceNode[], + now: number, +): void { + const frequencies = [523.25, 659.25, 392, 783.99, 587.33, 440, 698.46, 329.63, 493.88, 739.99]; + + frequencies.forEach((frequency, index) => { + const start = now + 0.18 + index * 0.22; + const oscillator = audio.createOscillator(); + const gain = audio.createGain(); + + oscillator.type = index % 3 === 0 ? "triangle" : "sine"; + oscillator.frequency.setValueAtTime(frequency, start); + oscillator.frequency.exponentialRampToValueAtTime(frequency * 0.72, start + 0.16); + + gain.gain.setValueAtTime(0.0001, start); + gain.gain.exponentialRampToValueAtTime(0.088 - index * 0.0035, start + 0.03); + gain.gain.exponentialRampToValueAtTime(0.0001, start + 0.24); + + oscillator.connect(gain); + gain.connect(destination); + oscillator.start(start); + oscillator.stop(start + 0.28); + cleanupNodes.push(oscillator); + }); +} + +function scheduleQuietChord( + audio: AudioContext, + destination: AudioNode, + cleanupNodes: AudioScheduledSourceNode[], + now: number, +): void { + const notes = [146.83, 220, 293.66]; + + notes.forEach((frequency, index) => { + const oscillator = audio.createOscillator(); + const gain = audio.createGain(); + const start = now + 2.6 + index * 0.08; + + oscillator.type = "sine"; + oscillator.frequency.setValueAtTime(frequency, start); + oscillator.detune.setValueAtTime(index === 1 ? 4 : -3, start); + + gain.gain.setValueAtTime(0.0001, start); + gain.gain.exponentialRampToValueAtTime(index === 1 ? 0.096 : 0.06, start + 1.2); + gain.gain.exponentialRampToValueAtTime(0.0001, now + 7.1); + + oscillator.connect(gain); + gain.connect(destination); + oscillator.start(start); + oscillator.stop(now + 7.3); + cleanupNodes.push(oscillator); + }); +} diff --git a/apps/desktop/src/vite-env.d.ts b/apps/desktop/src/vite-env.d.ts new file mode 100644 index 0000000..017f78b --- /dev/null +++ b/apps/desktop/src/vite-env.d.ts @@ -0,0 +1,5 @@ +/// + +interface Window { + webkitAudioContext?: typeof AudioContext; +}