kanna-code 0.8.0 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,32 @@
1
+ @import"https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,800&display=swap";/**
2
+ * Copyright (c) 2014 The xterm.js authors. All rights reserved.
3
+ * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
4
+ * https://github.com/chjj/term.js
5
+ * @license MIT
6
+ *
7
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ * of this software and associated documentation files (the "Software"), to deal
9
+ * in the Software without restriction, including without limitation the rights
10
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ * copies of the Software, and to permit persons to whom the Software is
12
+ * furnished to do so, subject to the following conditions:
13
+ *
14
+ * The above copyright notice and this permission notice shall be included in
15
+ * all copies or substantial portions of the Software.
16
+ *
17
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23
+ * THE SOFTWARE.
24
+ *
25
+ * Originally forked from (with the author's permission):
26
+ * Fabrice Bellard's javascript vt100 for jslinux:
27
+ * http://bellard.org/jslinux/
28
+ * Copyright (c) 2011 Fabrice Bellard
29
+ * The original design remains. The terminal itself
30
+ * has been extended to include xterm CSI codes, among
31
+ * other features.
32
+ */.xterm{cursor:text;position:relative;-moz-user-select:none;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::-moz-selection{color:transparent}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{font-family:monospace;-webkit-user-select:text;-moz-user-select:text;user-select:text;white-space:pre}.xterm .xterm-accessibility-tree>div{transform-origin:left;width:-moz-fit-content;width:fit-content}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:double underline;text-decoration:double underline}.xterm-underline-3{-webkit-text-decoration:wavy underline;text-decoration:wavy underline}.xterm-underline-4{-webkit-text-decoration:dotted underline;text-decoration:dotted underline}.xterm-underline-5{-webkit-text-decoration:dashed underline;text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;background:#0000;transition:opacity .1s linear;z-index:11}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{position:absolute;display:none}.xterm .xterm-scrollable-element>.shadow.top{display:block;top:0;left:3px;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow, #000) 0 6px 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.left{display:block;top:3px;left:0;height:100%;width:3px;box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-pan-x:initial;--tw-pan-y:initial;--tw-pinch-zoom:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:""}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-700:oklch(50.5% .213 27.518);--color-orange-500:oklch(70.5% .213 47.604);--color-amber-500:oklch(76.9% .188 70.08);--color-yellow-500:oklch(79.5% .184 86.047);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-700:oklch(52.7% .154 150.069);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-xs:.125rem;--radius-sm:calc(var(--radius) - 4px);--radius-md:calc(var(--radius) - 2px);--radius-lg:var(--radius);--radius-xl:.75rem;--radius-2xl:1rem;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--blur-lg:16px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-border:hsl(var(--border));--color-input:hsl(var(--input));--color-ring:hsl(var(--ring));--color-background:hsl(var(--background));--color-foreground:hsl(var(--foreground));--color-primary:hsl(var(--primary));--color-primary-foreground:hsl(var(--primary-foreground));--color-secondary-foreground:hsl(var(--secondary-foreground));--color-destructive:var(--destructive);--color-muted:hsl(var(--muted));--color-muted-foreground:hsl(var(--muted-foreground));--color-accent:hsl(var(--accent));--color-accent-foreground:hsl(var(--accent-foreground));--color-card:hsl(var(--card));--color-card-foreground:hsl(var(--card-foreground));--color-muted-icon:hsl(var(--muted-icon));--color-logo:var(--logo)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{--background:0 0% 100%;--foreground:240 10% 3.9%;--card:0 0% 100%;--card-foreground:240 10% 3.9%;--popover:0 0% 100%;--popover-foreground:240 10% 3.9%;--primary:222 47% 11%;--primary-foreground:0 0% 98%;--secondary:240 4.8% 95.9%;--secondary-foreground:240 5.9% 10%;--muted:210 20% 97%;--muted-foreground:215 16% 47%;--accent:240 4.8% 95.9%;--accent-foreground:240 5.9% 10%;--destructive:var(--logo);--destructive-foreground:0 0% 98%;--border:214 20% 90%;--input:240 5.9% 90%;--ring:240 5.9% 10%;--radius:.5rem;--muted-icon:240 2% 79%;--chart-1:24.6 95% 53.1%;--chart-2:160 60% 45%;--chart-3:221 83% 53%;--chart-4:280 65% 60%;--chart-5:340 75% 55%;--logo:oklch(71.2% .194 13.428)}.dark{--background:223 4% 13%;--foreground:0 0% 98%;--card:231 4% 16%;--card-foreground:0 0% 98%;--popover:223 4% 13%;--popover-foreground:0 0% 98%;--primary:0 0% 98%;--primary-foreground:240 2% 10%;--secondary:240 2% 19%;--secondary-foreground:0 0% 98%;--muted:223 4% 18.5%;--muted-foreground:240 2.5% 64.9%;--accent:240 2% 19%;--accent-foreground:0 0% 98%;--destructive:var(--logo);--destructive-foreground:var(--background);--border:220 2.5% 23.5%;--input:240 4% 19%;--ring:240 4.9% 83.9%;--muted-icon:240 5% 48%;--color-slate-50:oklch(98.5% .001 247.839);--color-slate-100:oklch(96.7% .0013 264.542);--color-slate-200:oklch(92.8% .0026 264.531);--color-slate-300:oklch(87.2% .004 258.338);--color-slate-400:oklch(70.7% .01 261.325);--color-slate-500:oklch(55.1% .012 264.364);--color-slate-600:oklch(44.6% .013 256.802);--color-slate-700:oklch(37.3% .015 259.733);--color-slate-800:oklch(27.8% .0145 256.848);--color-slate-900:oklch(21% .015 264.665);--color-slate-950:oklch(13% .012 261.692);--logo:oklch(71.2% .194 13.428)}*{border-color:var(--color-border)}html,body,#root{height:100%;overflow:hidden}body{background-color:var(--color-background);color:var(--color-foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh;margin:0;font-family:Body,sans-serif}.font-logo{font-family:Bricolage Grotesque,sans-serif;font-weight:800}input,textarea,select{touch-action:manipulation;font-size:16px}.hide-number-steppers::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.hide-number-steppers::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.hide-number-steppers[type=number]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}button{cursor:pointer;touch-action:manipulation}button:focus,button:focus-visible,button:active{box-shadow:none!important;--tw-ring-shadow:none!important;--tw-ring-offset-shadow:none!important;outline:none!important}body{overscroll-behavior-y:contain}.safe-area-inset-bottom{padding-bottom:env(safe-area-inset-bottom)}.prose ul{margin:.5em 0;padding-left:1.5em;list-style-type:disc}.prose ol{margin:.5em 0;padding-left:1.5em;list-style-type:decimal}.prose li{margin:.25em 0}.prose blockquote{border-left:2px solid hsl(var(--border));color:hsl(var(--muted-foreground));margin:1em 0;padding-left:1em}.prose blockquote>*{margin-top:.75em;margin-bottom:.75em}.prose blockquote>p{margin-top:0;margin-bottom:0}.prose blockquote>p+p{margin-top:.75em}.prose blockquote ul,.prose blockquote ol,.prose blockquote pre{margin-top:.75em;margin-bottom:.75em}code,pre{font-family:Roboto Mono,monospace}.prose code{border-radius:.25em;padding:.125em .25em;font-size:.875em}.prose pre{background-color:hsl(var(--muted));border:1px solid hsl(var(--border));border-radius:.375em;margin:.75em 0;padding:.75em 1em;overflow-x:auto}.prose pre code{background-color:#0000;padding:0}.prose hr{margin-top:20px;margin-bottom:20px}.kanna-terminal,.kanna-terminal .xterm,.kanna-terminal .xterm-scrollable-element,.kanna-terminal .xterm-viewport,.kanna-terminal .xterm-screen,.kanna-terminal .xterm-helpers,.kanna-terminal .xterm-helper-textarea,.kanna-terminal .composition-view,.kanna-terminal .xterm-screen canvas{background:0 0!important}[data-panel][data-terminal-open]{overflow:hidden}[data-terminal-visual]{transition:opacity var(--terminal-toggle-duration,.35s) cubic-bezier(.4,0,.2,1),filter var(--terminal-toggle-duration,.35s) cubic-bezier(.4,0,.2,1);will-change:opacity,filter}[data-terminal-visual][data-terminal-animated=false]{transition:none}[data-terminal-visual][data-terminal-open=false]{opacity:0;filter:blur(5px)}[data-terminal-visual][data-terminal-open=true]{opacity:1;filter:blur()}[data-right-sidebar-visual]{transition:opacity var(--terminal-toggle-duration,.35s) cubic-bezier(.4,0,.2,1),filter var(--terminal-toggle-duration,.35s) cubic-bezier(.4,0,.2,1);will-change:opacity,filter}[data-right-sidebar-visual][data-right-sidebar-animated=false]{transition:none}[data-right-sidebar-visual][data-right-sidebar-open=false]{opacity:0;filter:blur(5px)}[data-right-sidebar-visual][data-right-sidebar-open=true]{opacity:1;filter:blur()}*{scrollbar-width:thin;scrollbar-color:hsl(var(--border)) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-color:hsl(var(--border));background-clip:padding-box;border:2px solid #0000;border-radius:4px}::-webkit-scrollbar-thumb:hover{background-color:hsl(var(--muted-foreground) / .3)}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide::-webkit-scrollbar{display:none}@media(min-width:641px){[data-sonner-toaster]{width:-moz-fit-content!important;width:fit-content!important}}.recharts-wrapper :focus,.recharts-wrapper :focus-visible{outline:none}.animate-spin-slow{animation:1.5s linear infinite spin!important}.animate-fade-in{animation:.25s ease-out fade-in}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes kanna-empty-state-flower-in{0%{opacity:0;filter:blur(16px);transform:rotate(-90deg)scale(0)}to{opacity:1;filter:blur();transform:rotate(0)scale(1)}}@keyframes kanna-empty-state-text-in{0%{filter:blur(4px)}to{filter:blur()}}@keyframes kanna-cursor-blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes kanna-cursor-fade-out{0%{opacity:1}to{opacity:0}}.kanna-empty-state-flower{transform-origin:50%;animation:.399s cubic-bezier(.175,.885,.32,1.275) both kanna-empty-state-flower-in}.kanna-empty-state-text{animation:.38s ease-out both kanna-empty-state-text-in}.kanna-typewriter-cursor-slot{flex-shrink:0;justify-content:flex-start;align-items:center;width:3px;margin-left:2px;display:inline-flex}.kanna-typewriter-cursor{background-color:var(--logo);width:1px;height:1.05em;animation:.9s step-end infinite kanna-cursor-blink;display:inline-block}.kanna-typewriter-cursor[data-typing-complete=true]{animation:.24s ease-out forwards kanna-cursor-fade-out}*{border-color:var(--color-border);outline-color:color-mix(in srgb,hsl(var(--ring)) 50%,transparent)}@supports (color:color-mix(in lab,red,red)){*{outline-color:color-mix(in oklab,var(--color-ring) 50%,transparent)}}body{background-color:var(--color-background);color:var(--color-foreground)}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-0\.5{inset:calc(var(--spacing) * .5)}.inset-x-4{inset-inline:calc(var(--spacing) * 4)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.top-4{top:calc(var(--spacing) * 4)}.top-\[4px\]{top:4px}.top-\[35px\]{top:35px}.right-0{right:calc(var(--spacing) * 0)}.right-1\.5{right:calc(var(--spacing) * 1.5)}.right-2{right:calc(var(--spacing) * 2)}.right-4{right:calc(var(--spacing) * 4)}.right-\[4px\]{right:4px}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-2{bottom:calc(var(--spacing) * 2)}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.left-3{left:calc(var(--spacing) * 3)}.left-\[50\%\]{left:50%}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.col-start-1{grid-column-start:1}.row-1{grid-row:1}.row-2{grid-row:2}.row-3{grid-row:3}.row-4{grid-row:4}.row-start-1{grid-row-start:1}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}@media(min-width:125rem){.container{max-width:125rem}}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-0\.5{margin-inline:calc(var(--spacing) * .5)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-auto{margin-inline:auto}.-my-1{margin-block:calc(var(--spacing) * -1)}.my-1{margin-block:calc(var(--spacing) * 1)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-3{margin-block:calc(var(--spacing) * 3)}.my-4{margin-block:calc(var(--spacing) * 4)}.-mt-0\.5{margin-top:calc(var(--spacing) * -.5)}.mt-0{margin-top:calc(var(--spacing) * 0)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.-mr-0\.5{margin-right:calc(var(--spacing) * -.5)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-\[2px\]{margin-right:2px}.mb-0{margin-bottom:calc(var(--spacing) * 0)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.mb-10{margin-bottom:calc(var(--spacing) * 10)}.-ml-0\.5{margin-left:calc(var(--spacing) * -.5)}.-ml-\[1px\]{margin-left:-1px}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-5{margin-left:calc(var(--spacing) * 5)}.ml-\[1px\]{margin-left:1px}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.table{display:table}.aspect-square{aspect-ratio:1}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-4\.5{width:calc(var(--spacing) * 4.5);height:calc(var(--spacing) * 4.5)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.h-0\.5{height:calc(var(--spacing) * .5)}.h-2{height:calc(var(--spacing) * 2)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-4\.5{height:calc(var(--spacing) * 4.5)}.h-5{height:calc(var(--spacing) * 5)}.h-5\.5{height:calc(var(--spacing) * 5.5)}.h-6{height:calc(var(--spacing) * 6)}.h-6\.5{height:calc(var(--spacing) * 6.5)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-\[1px\]{height:1px}.h-\[34px\]{height:34px}.h-\[40px\]{height:40px}.h-\[64px\]{height:64px}.h-\[72px\]{height:72px}.h-\[100dvh\]{height:100dvh}.h-full{height:100%}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[64px\]{max-height:64px}.max-h-\[85vh\]{max-height:85vh}.max-h-\[200px\]{max-height:200px}.max-h-\[min\(400px\,40vh\)\]{max-height:min(400px,40vh)}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-\[55px\]{min-height:55px}.min-h-\[100dvh\]{min-height:100dvh}.min-h-\[240px\]{min-height:240px}.min-h-full{min-height:100%}.w-0{width:calc(var(--spacing) * 0)}.w-2{width:calc(var(--spacing) * 2)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-4\.5{width:calc(var(--spacing) * 4.5)}.w-5{width:calc(var(--spacing) * 5)}.w-5\.5{width:calc(var(--spacing) * 5.5)}.w-6{width:calc(var(--spacing) * 6)}.w-6\.5{width:calc(var(--spacing) * 6.5)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-40{width:calc(var(--spacing) * 40)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-\[1px\]{width:1px}.w-\[40px\]{width:40px}.w-\[200px\]{width:200px}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-\[50\%\]{max-width:50%}.max-w-\[85\%\]{max-width:85%}.max-w-\[90\%\]{max-width:90%}.max-w-\[150px\]{max-width:150px}.max-w-\[240px\]{max-width:240px}.max-w-\[420px\]{max-width:420px}.max-w-\[800px\]{max-width:800px}.max-w-\[840px\]{max-width:840px}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-5{min-width:calc(var(--spacing) * 5)}.min-w-\[170px\]{min-width:170px}.min-w-\[180px\]{min-width:180px}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.table-auto{table-layout:auto}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-\[1px\]{--tw-translate-x: -1px ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-\[50\%\]{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2,.-translate-y-\[50\%\]{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[-0\.5px\]{--tw-translate-y:-.5px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[0\.5px\]{--tw-translate-y:.5px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[1px\]{--tw-translate-y:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-0{--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-60{--tw-scale-x:60%;--tw-scale-y:60%;--tw-scale-z:60%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.-rotate-90{rotate:-90deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-shiny-text{animation:1.33s linear infinite shiny-text}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-row-resize{cursor:row-resize}.touch-pan-y{--tw-pan-y:pan-y;touch-action:var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)}.touch-manipulation{touch-action:manipulation}.resize{resize:both}.resize-none{resize:none}.scroll-pt-\[72px\]{scroll-padding-top:72px}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-\[1fr_auto\]{grid-template-columns:1fr auto}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.grid-cols-\[auto_auto\]{grid-template-columns:auto auto}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.place-items-start{place-items:start}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-around{justify-content:space-around}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0{gap:calc(var(--spacing) * 0)}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-\[2px\]>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(2px * var(--tw-space-y-reverse));margin-block-end:calc(2px * calc(1 - var(--tw-space-y-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border>:not(:last-child)){border-color:var(--color-border)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.overscroll-contain{overscroll-behavior:contain}.\!rounded{border-radius:.25rem!important}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\[20px\]{border-radius:20px}.rounded-\[29px\]{border-radius:29px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-xs{border-radius:var(--radius-xs)}.rounded-t-md{border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.rounded-b-xl{border-bottom-right-radius:var(--radius-xl);border-bottom-left-radius:var(--radius-xl)}.\!border-0{border-style:var(--tw-border-style)!important;border-width:0!important}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-1{border-style:var(--tw-border-style);border-width:1px}.border-x-0{border-inline-style:var(--tw-border-style);border-inline-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-border{border-color:var(--color-border)}.border-border\/0{border-color:color-mix(in srgb,hsl(var(--border)) 0%,transparent)}@supports (color:color-mix(in lab,red,red)){.border-border\/0{border-color:color-mix(in oklab,var(--color-border) 0%,transparent)}}.border-border\/80{border-color:color-mix(in srgb,hsl(var(--border)) 80%,transparent)}@supports (color:color-mix(in lab,red,red)){.border-border\/80{border-color:color-mix(in oklab,var(--color-border) 80%,transparent)}}.border-destructive\/20{border-color:var(--color-destructive)}@supports (color:color-mix(in lab,red,red)){.border-destructive\/20{border-color:color-mix(in oklab,var(--color-destructive) 20%,transparent)}}.border-muted-foreground\/50{border-color:color-mix(in srgb,hsl(var(--muted-foreground)) 50%,transparent)}@supports (color:color-mix(in lab,red,red)){.border-muted-foreground\/50{border-color:color-mix(in oklab,var(--color-muted-foreground) 50%,transparent)}}.border-slate-300{border-color:var(--color-slate-300)}.border-slate-500\/0{border-color:#0000}@supports (color:color-mix(in lab,red,red)){.border-slate-500\/0{border-color:color-mix(in oklab,var(--color-slate-500) 0%,transparent)}}.border-transparent{border-color:#0000}.bg-amber-500{background-color:var(--color-amber-500)}.bg-background{background-color:var(--color-background)}.bg-background\/95{background-color:color-mix(in srgb,hsl(var(--background)) 95%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-background\/95{background-color:color-mix(in oklab,var(--color-background) 95%,transparent)}}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black) 40%,transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-blue-400{background-color:var(--color-blue-400)}.bg-blue-400\/80{background-color:#54a2ffcc}@supports (color:color-mix(in lab,red,red)){.bg-blue-400\/80{background-color:color-mix(in oklab,var(--color-blue-400) 80%,transparent)}}.bg-border{background-color:var(--color-border)}.bg-border\/60{background-color:color-mix(in srgb,hsl(var(--border)) 60%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-border\/60{background-color:color-mix(in oklab,var(--color-border) 60%,transparent)}}.bg-card{background-color:var(--color-card)}.bg-card\/30{background-color:color-mix(in srgb,hsl(var(--card)) 30%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-card\/30{background-color:color-mix(in oklab,var(--color-card) 30%,transparent)}}.bg-card\/40{background-color:color-mix(in srgb,hsl(var(--card)) 40%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-card\/40{background-color:color-mix(in oklab,var(--color-card) 40%,transparent)}}.bg-current{background-color:currentColor}.bg-destructive\/5{background-color:var(--color-destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/5{background-color:color-mix(in oklab,var(--color-destructive) 5%,transparent)}}.bg-destructive\/80{background-color:var(--color-destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/80{background-color:color-mix(in oklab,var(--color-destructive) 80%,transparent)}}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-foreground{background-color:var(--color-foreground)}.bg-green-500\/10{background-color:#00c7581a}@supports (color:color-mix(in lab,red,red)){.bg-green-500\/10{background-color:color-mix(in oklab,var(--color-green-500) 10%,transparent)}}.bg-logo{background-color:var(--color-logo)}.bg-muted{background-color:var(--color-muted)}.bg-muted-foreground\/20{background-color:color-mix(in srgb,hsl(var(--muted-foreground)) 20%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-muted-foreground\/20{background-color:color-mix(in oklab,var(--color-muted-foreground) 20%,transparent)}}.bg-muted-foreground\/40{background-color:color-mix(in srgb,hsl(var(--muted-foreground)) 40%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-muted-foreground\/40{background-color:color-mix(in oklab,var(--color-muted-foreground) 40%,transparent)}}.bg-primary{background-color:var(--color-primary)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/10{background-color:color-mix(in oklab,var(--color-red-500) 10%,transparent)}}.bg-slate-200{background-color:var(--color-slate-200)}.bg-slate-600{background-color:var(--color-slate-600)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-yellow-500{background-color:var(--color-yellow-500)}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-t{--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-background{--tw-gradient-from:var(--color-background);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-transparent{--tw-gradient-from:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.via-background{--tw-gradient-via:var(--color-background);--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-black\/80{--tw-gradient-via:#000c}@supports (color:color-mix(in lab,red,red)){.via-black\/80{--tw-gradient-via:color-mix(in oklab, var(--color-black) 80%, transparent)}}.via-black\/80{--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-50\%{--tw-gradient-via-position:50%}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.\[background-size\:var\(--shiny-width\)_100\%\]{background-size:var(--shiny-width) 100%}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.\[background-position\:0_0\]{background-position:0 0}.bg-no-repeat{background-repeat:no-repeat}.p-0{padding:calc(var(--spacing) * 0)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-\[7px\]{padding:7px}.p-\[10px\]{padding:10px}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.\!py-1{padding-block:calc(var(--spacing) * 1)!important}.py-0{padding-block:calc(var(--spacing) * 0)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.\!pt-5{padding-top:calc(var(--spacing) * 5)!important}.pt-0{padding-top:calc(var(--spacing) * 0)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-3\.5{padding-top:calc(var(--spacing) * 3.5)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-16{padding-top:calc(var(--spacing) * 16)}.pt-\[72px\]{padding-top:72px}.pr-0\.5{padding-right:calc(var(--spacing) * .5)}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-1\.5{padding-right:calc(var(--spacing) * 1.5)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-2\.5{padding-right:calc(var(--spacing) * 2.5)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-5{padding-right:calc(var(--spacing) * 5)}.pr-12{padding-right:calc(var(--spacing) * 12)}.pr-\[7px\]{padding-right:7px}.\!pb-0{padding-bottom:calc(var(--spacing) * 0)!important}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-12{padding-bottom:calc(var(--spacing) * 12)}.pb-32{padding-bottom:calc(var(--spacing) * 32)}.pb-\[89px\]{padding-bottom:89px}.\!pl-3\.5{padding-left:calc(var(--spacing) * 3.5)!important}.pl-0{padding-left:calc(var(--spacing) * 0)}.pl-1{padding-left:calc(var(--spacing) * 1)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-4\.5{padding-left:calc(var(--spacing) * 4.5)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-6{padding-left:calc(var(--spacing) * 6)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.text-\[16px\]{font-size:16px}.text-\[18px\]{font-size:18px}.text-\[20px\]{font-size:20px}.text-\[22px\]{font-size:22px}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[-0\.2px\]{--tw-tracking:-.2px;letter-spacing:-.2px}.tracking-\[-0\.5px\]{--tw-tracking:-.5px;letter-spacing:-.5px}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-pretty{text-wrap:pretty}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-background{color:var(--color-background)}.text-blue-400{color:var(--color-blue-400)}.text-card-foreground{color:var(--color-card-foreground)}.text-destructive{color:var(--color-destructive)}.text-emerald-500{color:var(--color-emerald-500)}.text-foreground{color:var(--color-foreground)}.text-foreground\/50{color:color-mix(in srgb,hsl(var(--foreground)) 50%,transparent)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/50{color:color-mix(in oklab,var(--color-foreground) 50%,transparent)}}.text-foreground\/60{color:color-mix(in srgb,hsl(var(--foreground)) 60%,transparent)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/60{color:color-mix(in oklab,var(--color-foreground) 60%,transparent)}}.text-foreground\/80{color:color-mix(in srgb,hsl(var(--foreground)) 80%,transparent)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/80{color:color-mix(in oklab,var(--color-foreground) 80%,transparent)}}.text-green-400{color:var(--color-green-400)}.text-green-500\/50{color:#00c75880}@supports (color:color-mix(in lab,red,red)){.text-green-500\/50{color:color-mix(in oklab,var(--color-green-500) 50%,transparent)}}.text-green-700{color:var(--color-green-700)}.text-logo{color:var(--color-logo)}.text-muted-foreground{color:var(--color-muted-foreground)}.text-muted-foreground\/30{color:color-mix(in srgb,hsl(var(--muted-foreground)) 30%,transparent)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/30{color:color-mix(in oklab,var(--color-muted-foreground) 30%,transparent)}}.text-muted-foreground\/50{color:color-mix(in srgb,hsl(var(--muted-foreground)) 50%,transparent)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/50{color:color-mix(in oklab,var(--color-muted-foreground) 50%,transparent)}}.text-muted-foreground\/60{color:color-mix(in srgb,hsl(var(--muted-foreground)) 60%,transparent)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/60{color:color-mix(in oklab,var(--color-muted-foreground) 60%,transparent)}}.text-muted-foreground\/80{color:color-mix(in srgb,hsl(var(--muted-foreground)) 80%,transparent)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/80{color:color-mix(in oklab,var(--color-muted-foreground) 80%,transparent)}}.text-muted-icon{color:var(--color-muted-icon)}.text-orange-500{color:var(--color-orange-500)}.text-primary{color:var(--color-primary)}.text-primary-foreground{color:var(--color-primary-foreground)}.text-red-500{color:var(--color-red-500)}.text-red-500\/50{color:#fb2c3680}@supports (color:color-mix(in lab,red,red)){.text-red-500\/50{color:color-mix(in oklab,var(--color-red-500) 50%,transparent)}}.text-red-700{color:var(--color-red-700)}.text-secondary-foreground{color:var(--color-secondary-foreground)}.text-slate-400{color:var(--color-slate-400)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-800{color:var(--color-slate-800)}.text-slate-900{color:var(--color-slate-900)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.decoration-orange-500\/50{text-decoration-color:#fe6e0080}@supports (color:color-mix(in lab,red,red)){.decoration-orange-500\/50{text-decoration-color:color-mix(in oklab,var(--color-orange-500) 50%,transparent)}}.decoration-2{text-decoration-thickness:2px}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-100{opacity:1}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-muted\/20{--tw-ring-color:color-mix(in srgb, hsl(var(--muted)) 20%, transparent)}@supports (color:color-mix(in lab,red,red)){.ring-muted\/20{--tw-ring-color:color-mix(in oklab, var(--color-muted) 20%, transparent)}}.ring-offset-background{--tw-ring-offset-color:var(--color-background)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur-sm{--tw-blur:blur(var(--blur-sm));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-lg{--tw-backdrop-blur:blur(var(--blur-lg));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-\[cubic-bezier\(0\.34\,1\.56\,0\.64\,1\)\]{--tw-ease:cubic-bezier(.34,1.56,.64,1);transition-timing-function:cubic-bezier(.34,1.56,.64,1)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.\[transition\:background-position_1s_cubic-bezier\(\.6\,\.6\,0\,1\)_infinite\]{transition:background-position 1s cubic-bezier(.6,.6,0,1) infinite}@media(hover:hover){.group-hover\:text-primary:is(:where(.group):hover *){color:var(--color-primary)}.group-hover\:opacity-0:is(:where(.group):hover *){opacity:0}.group-hover\:opacity-100:is(:where(.group):hover *),.group-hover\/codeblock\:opacity-100:is(:where(.group\/codeblock):hover *),.group-hover\/expandable-row\:opacity-100:is(:where(.group\/expandable-row):hover *),.group-hover\/plan\:opacity-100:is(:where(.group\/plan):hover *),.group-hover\/pre\:opacity-100:is(:where(.group\/pre):hover *){opacity:1}.group-hover\/section\:opacity-0:is(:where(.group\/section):hover *){opacity:0}.group-hover\/section\:opacity-100:is(:where(.group\/section):hover *){opacity:1}.group-hover\/sidebar-collapse\:scale-0:is(:where(.group\/sidebar-collapse):hover *){--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-hover\/sidebar-collapse\:scale-80:is(:where(.group\/sidebar-collapse):hover *){--tw-scale-x:80%;--tw-scale-y:80%;--tw-scale-z:80%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-hover\/sidebar-collapse\:opacity-0:is(:where(.group\/sidebar-collapse):hover *){opacity:0}.group-hover\/sidebar-collapse\:opacity-100:is(:where(.group\/sidebar-collapse):hover *){opacity:1}}.placeholder\:text-muted-foreground::-moz-placeholder{color:var(--color-muted-foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--color-muted-foreground)}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:inset-x-0:before{content:var(--tw-content);inset-inline:calc(var(--spacing) * 0)}.before\:inset-y-0:before{content:var(--tw-content);inset-block:calc(var(--spacing) * 0)}.before\:top-1\/2:before{content:var(--tw-content);top:50%}.before\:left-1\/2:before{content:var(--tw-content);left:50%}.before\:h-0\.5:before{content:var(--tw-content);height:calc(var(--spacing) * .5)}.before\:w-px:before{content:var(--tw-content);width:1px}.before\:-translate-x-1\/2:before{content:var(--tw-content);--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.before\:-translate-y-1\/2:before{content:var(--tw-content);--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.before\:bg-border:before{content:var(--tw-content);background-color:var(--color-border)}.first\:mt-0:first-child{margin-top:calc(var(--spacing) * 0)}.first\:pl-3:first-child{padding-left:calc(var(--spacing) * 3)}.last\:mb-0:last-child{margin-bottom:calc(var(--spacing) * 0)}.last\:border-r-0:last-child{border-right-style:var(--tw-border-style);border-right-width:0}@media(hover:hover){.hover\:\!border-transparent:hover{border-color:#0000!important}.hover\:border-border:hover{border-color:var(--color-border)}.hover\:border-primary\/30:hover{border-color:color-mix(in srgb,hsl(var(--primary)) 30%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/30:hover{border-color:color-mix(in oklab,var(--color-primary) 30%,transparent)}}.hover\:\!bg-transparent:hover{background-color:#0000!important}.hover\:bg-accent:hover{background-color:var(--color-accent)}.hover\:bg-destructive\/10:hover{background-color:var(--color-destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/10:hover{background-color:color-mix(in oklab,var(--color-destructive) 10%,transparent)}}.hover\:bg-logo\/90:hover{background-color:var(--color-logo)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-logo\/90:hover{background-color:color-mix(in oklab,var(--color-logo) 90%,transparent)}}.hover\:bg-muted:hover{background-color:var(--color-muted)}.hover\:bg-muted\/20:hover{background-color:color-mix(in srgb,hsl(var(--muted)) 20%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/20:hover{background-color:color-mix(in oklab,var(--color-muted) 20%,transparent)}}.hover\:bg-muted\/50:hover{background-color:color-mix(in srgb,hsl(var(--muted)) 50%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab,var(--color-muted) 50%,transparent)}}.hover\:bg-primary\/90:hover{background-color:color-mix(in srgb,hsl(var(--primary)) 90%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--color-primary) 90%,transparent)}}.hover\:\!pb-\[32px\]:hover{padding-bottom:32px!important}.hover\:text-accent-foreground:hover{color:var(--color-accent-foreground)}.hover\:text-foreground:hover{color:var(--color-foreground)}.hover\:text-orange-500\/70:hover{color:#fe6e00b3}@supports (color:color-mix(in lab,red,red)){.hover\:text-orange-500\/70:hover{color:color-mix(in oklab,var(--color-orange-500) 70%,transparent)}}.hover\:text-secondary-foreground\/60:hover{color:color-mix(in srgb,hsl(var(--secondary-foreground)) 60%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:text-secondary-foreground\/60:hover{color:color-mix(in oklab,var(--color-secondary-foreground) 60%,transparent)}}.hover\:text-slate-900:hover{color:var(--color-slate-900)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-50:hover{opacity:.5}.hover\:opacity-60:hover{opacity:.6}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-100:hover{opacity:1}}.focus\:bg-destructive\/10:focus{background-color:var(--color-destructive)}@supports (color:color-mix(in lab,red,red)){.focus\:bg-destructive\/10:focus{background-color:color-mix(in oklab,var(--color-destructive) 10%,transparent)}}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--color-ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:var(--color-ring)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:scale-\[0\.985\]:active{scale:.985}.active\:cursor-grabbing:active{cursor:grabbing}.active\:bg-muted\/80:active{background-color:color-mix(in srgb,hsl(var(--muted)) 80%,transparent)}@supports (color:color-mix(in lab,red,red)){.active\:bg-muted\/80:active{background-color:color-mix(in oklab,var(--color-muted) 80%,transparent)}}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:border-input\/90:disabled{border-color:color-mix(in srgb,hsl(var(--input)) 90%,transparent)}@supports (color:color-mix(in lab,red,red)){.disabled\:border-input\/90:disabled{border-color:color-mix(in oklab,var(--color-input) 90%,transparent)}}.disabled\:bg-primary\/20:disabled{background-color:color-mix(in srgb,hsl(var(--primary)) 20%,transparent)}@supports (color:color-mix(in lab,red,red)){.disabled\:bg-primary\/20:disabled{background-color:color-mix(in oklab,var(--color-primary) 20%,transparent)}}.disabled\:bg-primary\/50:disabled{background-color:color-mix(in srgb,hsl(var(--primary)) 50%,transparent)}@supports (color:color-mix(in lab,red,red)){.disabled\:bg-primary\/50:disabled{background-color:color-mix(in oklab,var(--color-primary) 50%,transparent)}}.disabled\:bg-transparent:disabled{background-color:#0000}.disabled\:bg-white\/60:disabled{background-color:#fff9}@supports (color:color-mix(in lab,red,red)){.disabled\:bg-white\/60:disabled{background-color:color-mix(in oklab,var(--color-white) 60%,transparent)}}.disabled\:text-foreground\/50:disabled{color:color-mix(in srgb,hsl(var(--foreground)) 50%,transparent)}@supports (color:color-mix(in lab,red,red)){.disabled\:text-foreground\/50:disabled{color:color-mix(in oklab,var(--color-foreground) 50%,transparent)}}.disabled\:text-muted-foreground\/50:disabled{color:color-mix(in srgb,hsl(var(--muted-foreground)) 50%,transparent)}@supports (color:color-mix(in lab,red,red)){.disabled\:text-muted-foreground\/50:disabled{color:color-mix(in oklab,var(--color-muted-foreground) 50%,transparent)}}.disabled\:text-primary-foreground\/50:disabled{color:color-mix(in srgb,hsl(var(--primary-foreground)) 50%,transparent)}@supports (color:color-mix(in lab,red,red)){.disabled\:text-primary-foreground\/50:disabled{color:color-mix(in oklab,var(--color-primary-foreground) 50%,transparent)}}.disabled\:text-primary-foreground\/90:disabled{color:color-mix(in srgb,hsl(var(--primary-foreground)) 90%,transparent)}@supports (color:color-mix(in lab,red,red)){.disabled\:text-primary-foreground\/90:disabled{color:color-mix(in oklab,var(--color-primary-foreground) 90%,transparent)}}.disabled\:text-primary\/50:disabled{color:color-mix(in srgb,hsl(var(--primary)) 50%,transparent)}@supports (color:color-mix(in lab,red,red)){.disabled\:text-primary\/50:disabled{color:color-mix(in oklab,var(--color-primary) 50%,transparent)}}.disabled\:text-primary\/60:disabled{color:color-mix(in srgb,hsl(var(--primary)) 60%,transparent)}@supports (color:color-mix(in lab,red,red)){.disabled\:text-primary\/60:disabled{color:color-mix(in oklab,var(--color-primary) 60%,transparent)}}.disabled\:text-secondary-foreground\/50:disabled{color:color-mix(in srgb,hsl(var(--secondary-foreground)) 50%,transparent)}@supports (color:color-mix(in lab,red,red)){.disabled\:text-secondary-foreground\/50:disabled{color:color-mix(in oklab,var(--color-secondary-foreground) 50%,transparent)}}.disabled\:text-slate-700:disabled{color:var(--color-slate-700)}.disabled\:opacity-50:disabled{opacity:.5}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--color-accent)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--color-muted-foreground)}@supports (backdrop-filter:var(--tw)){.supports-\[backdrop-filter\]\:bg-background\/80{background-color:color-mix(in srgb,hsl(var(--background)) 80%,transparent)}@supports (color:color-mix(in lab,red,red)){.supports-\[backdrop-filter\]\:bg-background\/80{background-color:color-mix(in oklab,var(--color-background) 80%,transparent)}}}@media(min-width:40rem){.sm\:h-5{height:calc(var(--spacing) * 5)}.sm\:h-6{height:calc(var(--spacing) * 6)}.sm\:w-5{width:calc(var(--spacing) * 5)}.sm\:w-6{width:calc(var(--spacing) * 6)}.sm\:max-w-\[80\%\]{max-width:80%}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:48rem){.md\:relative{position:relative}.md\:inset-auto{inset:auto}.md\:top-2{top:calc(var(--spacing) * 2)}.md\:order-first{order:-9999}.md\:order-last{order:9999}.md\:my-2{margin-block:calc(var(--spacing) * 2)}.md\:mr-0{margin-right:calc(var(--spacing) * 0)}.md\:mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.md\:ml-2{margin-left:calc(var(--spacing) * 2)}.md\:block{display:block}.md\:contents{display:contents}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-4{height:calc(var(--spacing) * 4)}.md\:h-6{height:calc(var(--spacing) * 6)}.md\:h-11{height:calc(var(--spacing) * 11)}.md\:h-\[55px\]{height:55px}.md\:h-\[calc\(100dvh-16px\)\]{height:calc(100dvh - 16px)}.md\:max-h-\[50vh\]{max-height:50vh}.md\:max-h-\[55px\]{max-height:55px}.md\:w-4{width:calc(var(--spacing) * 4)}.md\:w-6{width:calc(var(--spacing) * 6)}.md\:w-11{width:calc(var(--spacing) * 11)}.md\:w-\[275px\]{width:275px}.md\:min-w-\[300px\]{min-width:300px}.md\:flex-initial{flex:0 auto}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:rounded-2xl{border-radius:var(--radius-2xl)}.md\:border{border-style:var(--tw-border-style);border-width:1px}.md\:border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.md\:border-none{--tw-border-style:none;border-style:none}.md\:border-border{border-color:var(--color-border)}.md\:from-transparent{--tw-gradient-from:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.md\:p-4{padding:calc(var(--spacing) * 4)}.md\:px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.md\:px-4{padding-inline:calc(var(--spacing) * 4)}.md\:px-5\.5{padding-inline:calc(var(--spacing) * 5.5)}.md\:py-4\.5{padding-block:calc(var(--spacing) * 4.5)}.md\:pr-4{padding-right:calc(var(--spacing) * 4)}.md\:pb-0{padding-bottom:calc(var(--spacing) * 0)}.md\:pb-2{padding-bottom:calc(var(--spacing) * 2)}.md\:pl-6{padding-left:calc(var(--spacing) * 6)}.md\:opacity-0{opacity:0}.md\:backdrop-blur-none{--tw-backdrop-blur: ;-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}@media(hover:hover){.md\:group-hover\:opacity-100:is(:where(.group):hover *),.md\:group-hover\/section\:opacity-100:is(:where(.group\/section):hover *){opacity:1}}}@media(min-width:64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:80rem){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:96rem){.\32xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:125rem){.\33xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}.dark\:border-slate-600:where(.dark,.dark *){border-color:var(--color-slate-600)}.dark\:border-white\/10:where(.dark,.dark *){border-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.dark\:border-white\/10:where(.dark,.dark *){border-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.dark\:bg-card:where(.dark,.dark *){background-color:var(--color-card)}.dark\:bg-card\/40:where(.dark,.dark *){background-color:color-mix(in srgb,hsl(var(--card)) 40%,transparent)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-card\/40:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-card) 40%,transparent)}}.dark\:bg-green-500\/15:where(.dark,.dark *){background-color:#00c75826}@supports (color:color-mix(in lab,red,red)){.dark\:bg-green-500\/15:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-green-500) 15%,transparent)}}.dark\:bg-muted:where(.dark,.dark *){background-color:var(--color-muted)}.dark\:bg-red-500\/15:where(.dark,.dark *){background-color:#fb2c3626}@supports (color:color-mix(in lab,red,red)){.dark\:bg-red-500\/15:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-red-500) 15%,transparent)}}.dark\:bg-slate-700:where(.dark,.dark *){background-color:var(--color-slate-700)}.dark\:bg-white:where(.dark,.dark *){background-color:var(--color-white)}.dark\:via-white\/80:where(.dark,.dark *){--tw-gradient-via:#fffc}@supports (color:color-mix(in lab,red,red)){.dark\:via-white\/80:where(.dark,.dark *){--tw-gradient-via:color-mix(in oklab, var(--color-white) 80%, transparent)}}.dark\:via-white\/80:where(.dark,.dark *){--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.dark\:text-background:where(.dark,.dark *){color:var(--color-background)}.dark\:text-blue-300:where(.dark,.dark *){color:var(--color-blue-300)}.dark\:text-emerald-400:where(.dark,.dark *){color:var(--color-emerald-400)}.dark\:text-green-400:where(.dark,.dark *){color:var(--color-green-400)}.dark\:text-logo:where(.dark,.dark *){color:var(--color-logo)}.dark\:text-muted-foreground:where(.dark,.dark *){color:var(--color-muted-foreground)}.dark\:text-red-400:where(.dark,.dark *){color:var(--color-red-400)}.dark\:text-slate-100:where(.dark,.dark *){color:var(--color-slate-100)}.dark\:text-slate-200:where(.dark,.dark *){color:var(--color-slate-200)}.dark\:text-slate-400:where(.dark,.dark *){color:var(--color-slate-400)}.dark\:text-slate-500:where(.dark,.dark *){color:var(--color-slate-500)}.dark\:text-slate-900:where(.dark,.dark *){color:var(--color-slate-900)}.dark\:text-white:where(.dark,.dark *){color:var(--color-white)}.dark\:decoration-logo\/70:where(.dark,.dark *){text-decoration-color:var(--color-logo)}@supports (color:color-mix(in lab,red,red)){.dark\:decoration-logo\/70:where(.dark,.dark *){text-decoration-color:color-mix(in oklab,var(--color-logo) 70%,transparent)}}.dark\:ring-muted\/50:where(.dark,.dark *){--tw-ring-color:color-mix(in srgb, hsl(var(--muted)) 50%, transparent)}@supports (color:color-mix(in lab,red,red)){.dark\:ring-muted\/50:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-muted) 50%, transparent)}}@media(hover:hover){.dark\:hover\:border-slate-400\/10:where(.dark,.dark *):hover{border-color:#90a1b91a}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:border-slate-400\/10:where(.dark,.dark *):hover{border-color:color-mix(in oklab,var(--color-slate-400) 10%,transparent)}}.dark\:hover\:bg-card:where(.dark,.dark *):hover{background-color:var(--color-card)}.dark\:hover\:bg-red-500\/20:where(.dark,.dark *):hover{background-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-red-500\/20:where(.dark,.dark *):hover{background-color:color-mix(in oklab,var(--color-red-500) 20%,transparent)}}.dark\:hover\:bg-slate-600:where(.dark,.dark *):hover{background-color:var(--color-slate-600)}.dark\:hover\:text-foreground:where(.dark,.dark *):hover{color:var(--color-foreground)}.dark\:hover\:text-logo\/60:where(.dark,.dark *):hover{color:var(--color-logo)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:text-logo\/60:where(.dark,.dark *):hover{color:color-mix(in oklab,var(--color-logo) 60%,transparent)}}.dark\:hover\:decoration-logo\/40:where(.dark,.dark *):hover{text-decoration-color:var(--color-logo)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:decoration-logo\/40:where(.dark,.dark *):hover{text-decoration-color:color-mix(in oklab,var(--color-logo) 40%,transparent)}}}.dark\:focus\:bg-red-500\/20:where(.dark,.dark *):focus{background-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.dark\:focus\:bg-red-500\/20:where(.dark,.dark *):focus{background-color:color-mix(in oklab,var(--color-red-500) 20%,transparent)}}.\[\&_\*\]\:font-normal *{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.\[\&_\*\]\:font-semibold *{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.\[\&_p\]\:whitespace-pre-line p{white-space:pre-line}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.no-code-highlight .\[\.no-code-highlight_\&\]\:\!bg-transparent{background-color:#0000!important}.no-pre-highlight .\[\.no-pre-highlight_\&\]\:bg-background,.no-pre-highlight .dark\:\[\.no-pre-highlight_\&\]\:bg-background:where(.dark,.dark *){background-color:var(--color-background)}}@font-face{font-family:Body;src:url(/fonts/body-regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Body;src:url(/fonts/body-regular-italic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Body;src:url(/fonts/body-medium.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Body;src:url(/fonts/body-semibold.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-pan-x{syntax:"*";inherits:false}@property --tw-pan-y{syntax:"*";inherits:false}@property --tw-pinch-zoom{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}@keyframes shiny-text{0%{background-position:calc(-100% - var(--shiny-width)) 0}to{background-position:calc(100% + var(--shiny-width)) 0}}
@@ -416,7 +416,7 @@ For more information, see https://radix-ui.com/primitives/docs/components/${t.do
416
416
  *
417
417
  * This source code is licensed under the ISC license.
418
418
  * See the LICENSE file in the root directory of this source tree.
419
- */const Q6=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],Kd=ke("zap",Q6),Xc="data-focus-fallback-ignore",UE="data-allow-focus-retain",Gd="kanna:restore-chat-input-focus",yy="data-chat-input",Yd="data-chat-selection-zone";function Oo(e,t){return!!(e!=null&&e.closest(`[${t}]`))}function $E(e){var n;const t=e;return t!=null&&t.matches?t.matches("input:not([type='checkbox']):not([type='radio']):not([type='button']):not([type='submit']):not([type='reset']), textarea, select")||t.isContentEditable||((n=t.getAttribute)==null?void 0:n.call(t,"role"))==="textbox"?!0:Oo(e,UE):!1}function J6(e){const t=e;return t!=null&&t.matches?$E(e)||(t.tabIndex??-1)>=0||t.matches("button, a[href], summary")?!0:Oo(e,UE):!1}function Sw(e){return!!e.querySelector(`[${Xc}][data-state='open']`)}function ej(e){return e?!e.isCollapsed&&e.toString().trim().length>0:!1}function tj(e,t){if(!e)return!1;const n=Array.from(t.querySelectorAll(`textarea[${yy}]`)).filter(l=>!l.disabled);if(n.length===0)return!1;const r=n.indexOf(e),s=r>=0?(r+1)%n.length:0,a=n[s];return a?(a.focus({preventScroll:!0}),!0):!1}function ww(e){const{activeElement:t,fallback:n,hasActiveOverlay:r}=e;if(!n||n.disabled||r||t===n)return"none";if(e.trigger==="escape")return e.defaultPrevented||Oo(t,yy)||e.canCancel?"none":"escape-focus";const{pointerStartTarget:s,pointerEndTarget:a,root:l,hasActiveSelection:u}=e,d=a??s;return!l||!d||!l.contains(d)||Oo(d,Xc)||Oo(t,Xc)||u&&(Oo(s,Yd)||Oo(d,Yd))||$E(t)?"none":t&&t===d?"restore":J6(t)?"none":"restore"}const WE=sz,nj=oz,qE=x.forwardRef(({className:e,...t},n)=>v.jsx(LE,{ref:n,className:ye("fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t}));qE.displayName=LE.displayName;const rj={sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg"},by=x.forwardRef(({className:e,children:t,size:n="md",...r},s)=>v.jsxs(nj,{children:[v.jsx(qE,{}),v.jsxs(zE,{ref:s,[Xc]:"",onCloseAutoFocus:a=>{var l;a.preventDefault(),window.dispatchEvent(new Event(Gd)),(l=r.onCloseAutoFocus)==null||l.call(r,a)},className:ye("fixed left-1/2 top-1/2 z-50 w-full -translate-x-1/2 -translate-y-1/2 rounded-xl border border-border bg-background shadow-xl duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]","max-h-[85vh] flex flex-col",rj[n],e),...r,children:[t,v.jsxs(cz,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[v.jsx(vu,{className:"h-4 w-4"}),v.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));by.displayName=zE.displayName;function VE({className:e,...t}){return v.jsx(az,{className:ye("text-lg font-medium leading-none tracking-tight",e),...t})}function ij({className:e,...t}){return v.jsx(lz,{className:ye("text-sm text-muted-foreground",e),...t})}function KE({className:e,...t}){return v.jsx("div",{className:ye("flex-1 min-h-0 overflow-y-auto px-4 pb-4 pt-3.5",e),...t})}function GE({className:e,...t}){return v.jsx("div",{className:ye("shrink-0 flex justify-end gap-2 border-t border-border bg-background p-2 rounded-b-xl",e),...t})}const YE=x.createContext(null);function sj({children:e}){const[t,n]=x.useState(null),[r,s]=x.useState(""),a=x.useRef(null);x.useEffect(()=>{(t==null?void 0:t.kind)==="prompt"&&(s(t.options.initialValue??""),setTimeout(()=>{var p,m;(p=a.current)==null||p.focus(),(m=a.current)==null||m.select()},0))},[t]);const l=x.useCallback(()=>{n(null),s("")},[]),u=x.useCallback(p=>new Promise(m=>{n({kind:"confirm",options:p,resolve:m})}),[]),d=x.useCallback(p=>new Promise(m=>{n({kind:"prompt",options:p,resolve:m})}),[]),h=x.useMemo(()=>({confirm:u,prompt:d}),[u,d]);return v.jsxs(YE.Provider,{value:h,children:[e,v.jsx(WE,{open:t!==null,onOpenChange:p=>{p||!t||(t.kind==="confirm"?t.resolve(!1):t.resolve(null),l())},children:v.jsx(by,{size:"sm",children:t?v.jsxs(v.Fragment,{children:[v.jsxs(KE,{className:"space-y-4",children:[v.jsx(VE,{children:t.options.title}),t.options.description?v.jsx(ij,{children:t.options.description}):null,t.kind==="prompt"?v.jsx("input",{ref:a,type:"text",value:r,onChange:p=>s(p.target.value),onKeyDown:p=>{p.key==="Enter"&&(p.preventDefault(),t.resolve(r.trim()||null),l())},className:"w-full px-3 py-2 text-sm border border-border rounded-md bg-background outline-none",placeholder:t.options.placeholder}):null]}),v.jsxs(GE,{children:[v.jsx(et,{variant:"ghost",size:"sm",onClick:()=>{t.kind==="confirm"?t.resolve(!1):t.resolve(null),l()},children:t.options.cancelLabel??"Cancel"}),v.jsx(et,{variant:t.kind==="confirm"?t.options.confirmVariant??"default":"secondary",size:"sm",onClick:()=>{t.kind==="confirm"?t.resolve(!0):t.resolve(r.trim()||null),l()},disabled:t.kind==="prompt"&&!r.trim(),children:t.options.confirmLabel??"Confirm"})]})]}):null})})]})}function oj(){const e=x.useContext(YE);if(!e)throw new Error("useAppDialog must be used within AppDialogProvider");return e}const aj=["top","right","bottom","left"],Gs=Math.min,pr=Math.max,Xd=Math.round,td=Math.floor,yi=e=>({x:e,y:e}),lj={left:"right",right:"left",bottom:"top",top:"bottom"};function Dv(e,t,n){return pr(e,Gs(t,n))}function ns(e,t){return typeof e=="function"?e(t):e}function rs(e){return e.split("-")[0]}function fl(e){return e.split("-")[1]}function xy(e){return e==="x"?"y":"x"}function Sy(e){return e==="y"?"height":"width"}function mi(e){const t=e[0];return t==="t"||t==="b"?"y":"x"}function wy(e){return xy(mi(e))}function cj(e,t,n){n===void 0&&(n=!1);const r=fl(e),s=wy(e),a=Sy(s);let l=s==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[a]>t.floating[a]&&(l=Zd(l)),[l,Zd(l)]}function uj(e){const t=Zd(e);return[Ov(e),t,Ov(t)]}function Ov(e){return e.includes("start")?e.replace("start","end"):e.replace("end","start")}const Cw=["left","right"],kw=["right","left"],hj=["top","bottom"],dj=["bottom","top"];function fj(e,t,n){switch(e){case"top":case"bottom":return n?t?kw:Cw:t?Cw:kw;case"left":case"right":return t?hj:dj;default:return[]}}function pj(e,t,n,r){const s=fl(e);let a=fj(rs(e),n==="start",r);return s&&(a=a.map(l=>l+"-"+s),t&&(a=a.concat(a.map(Ov)))),a}function Zd(e){const t=rs(e);return lj[t]+e.slice(t.length)}function mj(e){return{top:0,right:0,bottom:0,left:0,...e}}function XE(e){return typeof e!="number"?mj(e):{top:e,right:e,bottom:e,left:e}}function Qd(e){const{x:t,y:n,width:r,height:s}=e;return{width:r,height:s,top:n,left:t,right:t+r,bottom:n+s,x:t,y:n}}function Ew(e,t,n){let{reference:r,floating:s}=e;const a=mi(t),l=wy(t),u=Sy(l),d=rs(t),h=a==="y",p=r.x+r.width/2-s.width/2,m=r.y+r.height/2-s.height/2,_=r[u]/2-s[u]/2;let b;switch(d){case"top":b={x:p,y:r.y-s.height};break;case"bottom":b={x:p,y:r.y+r.height};break;case"right":b={x:r.x+r.width,y:m};break;case"left":b={x:r.x-s.width,y:m};break;default:b={x:r.x,y:r.y}}switch(fl(t)){case"start":b[l]-=_*(n&&h?-1:1);break;case"end":b[l]+=_*(n&&h?-1:1);break}return b}async function gj(e,t){var n;t===void 0&&(t={});const{x:r,y:s,platform:a,rects:l,elements:u,strategy:d}=e,{boundary:h="clippingAncestors",rootBoundary:p="viewport",elementContext:m="floating",altBoundary:_=!1,padding:b=0}=ns(t,e),S=XE(b),C=u[_?m==="floating"?"reference":"floating":m],k=Qd(await a.getClippingRect({element:(n=await(a.isElement==null?void 0:a.isElement(C)))==null||n?C:C.contextElement||await(a.getDocumentElement==null?void 0:a.getDocumentElement(u.floating)),boundary:h,rootBoundary:p,strategy:d})),M=m==="floating"?{x:r,y:s,width:l.floating.width,height:l.floating.height}:l.reference,R=await(a.getOffsetParent==null?void 0:a.getOffsetParent(u.floating)),T=await(a.isElement==null?void 0:a.isElement(R))?await(a.getScale==null?void 0:a.getScale(R))||{x:1,y:1}:{x:1,y:1},L=Qd(a.convertOffsetParentRelativeRectToViewportRelativeRect?await a.convertOffsetParentRelativeRectToViewportRelativeRect({elements:u,rect:M,offsetParent:R,strategy:d}):M);return{top:(k.top-L.top+S.top)/T.y,bottom:(L.bottom-k.bottom+S.bottom)/T.y,left:(k.left-L.left+S.left)/T.x,right:(L.right-k.right+S.right)/T.x}}const vj=50,_j=async(e,t,n)=>{const{placement:r="bottom",strategy:s="absolute",middleware:a=[],platform:l}=n,u=l.detectOverflow?l:{...l,detectOverflow:gj},d=await(l.isRTL==null?void 0:l.isRTL(t));let h=await l.getElementRects({reference:e,floating:t,strategy:s}),{x:p,y:m}=Ew(h,r,d),_=r,b=0;const S={};for(let w=0;w<a.length;w++){const C=a[w];if(!C)continue;const{name:k,fn:M}=C,{x:R,y:T,data:L,reset:O}=await M({x:p,y:m,initialPlacement:r,placement:_,strategy:s,middlewareData:S,rects:h,platform:u,elements:{reference:e,floating:t}});p=R??p,m=T??m,S[k]={...S[k],...L},O&&b<vj&&(b++,typeof O=="object"&&(O.placement&&(_=O.placement),O.rects&&(h=O.rects===!0?await l.getElementRects({reference:e,floating:t,strategy:s}):O.rects),{x:p,y:m}=Ew(h,_,d)),w=-1)}return{x:p,y:m,placement:_,strategy:s,middlewareData:S}},yj=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:s,rects:a,platform:l,elements:u,middlewareData:d}=t,{element:h,padding:p=0}=ns(e,t)||{};if(h==null)return{};const m=XE(p),_={x:n,y:r},b=wy(s),S=Sy(b),w=await l.getDimensions(h),C=b==="y",k=C?"top":"left",M=C?"bottom":"right",R=C?"clientHeight":"clientWidth",T=a.reference[S]+a.reference[b]-_[b]-a.floating[S],L=_[b]-a.reference[b],O=await(l.getOffsetParent==null?void 0:l.getOffsetParent(h));let z=O?O[R]:0;(!z||!await(l.isElement==null?void 0:l.isElement(O)))&&(z=u.floating[R]||a.floating[S]);const B=T/2-L/2,X=z/2-w[S]/2-1,P=Gs(m[k],X),q=Gs(m[M],X),U=P,F=z-w[S]-q,K=z/2-w[S]/2+B,$=Dv(U,K,F),j=!d.arrow&&fl(s)!=null&&K!==$&&a.reference[S]/2-(K<U?P:q)-w[S]/2<0,H=j?K<U?K-U:K-F:0;return{[b]:_[b]+H,data:{[b]:$,centerOffset:K-$-H,...j&&{alignmentOffset:H}},reset:j}}}),bj=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n,r;const{placement:s,middlewareData:a,rects:l,initialPlacement:u,platform:d,elements:h}=t,{mainAxis:p=!0,crossAxis:m=!0,fallbackPlacements:_,fallbackStrategy:b="bestFit",fallbackAxisSideDirection:S="none",flipAlignment:w=!0,...C}=ns(e,t);if((n=a.arrow)!=null&&n.alignmentOffset)return{};const k=rs(s),M=mi(u),R=rs(u)===u,T=await(d.isRTL==null?void 0:d.isRTL(h.floating)),L=_||(R||!w?[Zd(u)]:uj(u)),O=S!=="none";!_&&O&&L.push(...pj(u,w,S,T));const z=[u,...L],B=await d.detectOverflow(t,C),X=[];let P=((r=a.flip)==null?void 0:r.overflows)||[];if(p&&X.push(B[k]),m){const K=cj(s,l,T);X.push(B[K[0]],B[K[1]])}if(P=[...P,{placement:s,overflows:X}],!X.every(K=>K<=0)){var q,U;const K=(((q=a.flip)==null?void 0:q.index)||0)+1,$=z[K];if($&&(!(m==="alignment"?M!==mi($):!1)||P.every(W=>mi(W.placement)===M?W.overflows[0]>0:!0)))return{data:{index:K,overflows:P},reset:{placement:$}};let j=(U=P.filter(H=>H.overflows[0]<=0).sort((H,W)=>H.overflows[1]-W.overflows[1])[0])==null?void 0:U.placement;if(!j)switch(b){case"bestFit":{var F;const H=(F=P.filter(W=>{if(O){const Q=mi(W.placement);return Q===M||Q==="y"}return!0}).map(W=>[W.placement,W.overflows.filter(Q=>Q>0).reduce((Q,A)=>Q+A,0)]).sort((W,Q)=>W[1]-Q[1])[0])==null?void 0:F[0];H&&(j=H);break}case"initialPlacement":j=u;break}if(s!==j)return{reset:{placement:j}}}return{}}}};function Rw(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function Mw(e){return aj.some(t=>e[t]>=0)}const xj=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n,platform:r}=t,{strategy:s="referenceHidden",...a}=ns(e,t);switch(s){case"referenceHidden":{const l=await r.detectOverflow(t,{...a,elementContext:"reference"}),u=Rw(l,n.reference);return{data:{referenceHiddenOffsets:u,referenceHidden:Mw(u)}}}case"escaped":{const l=await r.detectOverflow(t,{...a,altBoundary:!0}),u=Rw(l,n.floating);return{data:{escapedOffsets:u,escaped:Mw(u)}}}default:return{}}}}},ZE=new Set(["left","top"]);async function Sj(e,t){const{placement:n,platform:r,elements:s}=e,a=await(r.isRTL==null?void 0:r.isRTL(s.floating)),l=rs(n),u=fl(n),d=mi(n)==="y",h=ZE.has(l)?-1:1,p=a&&d?-1:1,m=ns(t,e);let{mainAxis:_,crossAxis:b,alignmentAxis:S}=typeof m=="number"?{mainAxis:m,crossAxis:0,alignmentAxis:null}:{mainAxis:m.mainAxis||0,crossAxis:m.crossAxis||0,alignmentAxis:m.alignmentAxis};return u&&typeof S=="number"&&(b=u==="end"?S*-1:S),d?{x:b*p,y:_*h}:{x:_*h,y:b*p}}const wj=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:s,y:a,placement:l,middlewareData:u}=t,d=await Sj(t,e);return l===((n=u.offset)==null?void 0:n.placement)&&(r=u.arrow)!=null&&r.alignmentOffset?{}:{x:s+d.x,y:a+d.y,data:{...d,placement:l}}}}},Cj=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:s,platform:a}=t,{mainAxis:l=!0,crossAxis:u=!1,limiter:d={fn:k=>{let{x:M,y:R}=k;return{x:M,y:R}}},...h}=ns(e,t),p={x:n,y:r},m=await a.detectOverflow(t,h),_=mi(rs(s)),b=xy(_);let S=p[b],w=p[_];if(l){const k=b==="y"?"top":"left",M=b==="y"?"bottom":"right",R=S+m[k],T=S-m[M];S=Dv(R,S,T)}if(u){const k=_==="y"?"top":"left",M=_==="y"?"bottom":"right",R=w+m[k],T=w-m[M];w=Dv(R,w,T)}const C=d.fn({...t,[b]:S,[_]:w});return{...C,data:{x:C.x-n,y:C.y-r,enabled:{[b]:l,[_]:u}}}}}},kj=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:s,rects:a,middlewareData:l}=t,{offset:u=0,mainAxis:d=!0,crossAxis:h=!0}=ns(e,t),p={x:n,y:r},m=mi(s),_=xy(m);let b=p[_],S=p[m];const w=ns(u,t),C=typeof w=="number"?{mainAxis:w,crossAxis:0}:{mainAxis:0,crossAxis:0,...w};if(d){const R=_==="y"?"height":"width",T=a.reference[_]-a.floating[R]+C.mainAxis,L=a.reference[_]+a.reference[R]-C.mainAxis;b<T?b=T:b>L&&(b=L)}if(h){var k,M;const R=_==="y"?"width":"height",T=ZE.has(rs(s)),L=a.reference[m]-a.floating[R]+(T&&((k=l.offset)==null?void 0:k[m])||0)+(T?0:C.crossAxis),O=a.reference[m]+a.reference[R]+(T?0:((M=l.offset)==null?void 0:M[m])||0)-(T?C.crossAxis:0);S<L?S=L:S>O&&(S=O)}return{[_]:b,[m]:S}}}},Ej=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:s,rects:a,platform:l,elements:u}=t,{apply:d=()=>{},...h}=ns(e,t),p=await l.detectOverflow(t,h),m=rs(s),_=fl(s),b=mi(s)==="y",{width:S,height:w}=a.floating;let C,k;m==="top"||m==="bottom"?(C=m,k=_===(await(l.isRTL==null?void 0:l.isRTL(u.floating))?"start":"end")?"left":"right"):(k=m,C=_==="end"?"top":"bottom");const M=w-p.top-p.bottom,R=S-p.left-p.right,T=Gs(w-p[C],M),L=Gs(S-p[k],R),O=!t.middlewareData.shift;let z=T,B=L;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(B=R),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(z=M),O&&!_){const P=pr(p.left,0),q=pr(p.right,0),U=pr(p.top,0),F=pr(p.bottom,0);b?B=S-2*(P!==0||q!==0?P+q:pr(p.left,p.right)):z=w-2*(U!==0||F!==0?U+F:pr(p.top,p.bottom))}await d({...t,availableWidth:B,availableHeight:z});const X=await l.getDimensions(u.floating);return S!==X.width||w!==X.height?{reset:{rects:!0}}:{}}}};function Af(){return typeof window<"u"}function pl(e){return QE(e)?(e.nodeName||"").toLowerCase():"#document"}function mr(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Ei(e){var t;return(t=(QE(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function QE(e){return Af()?e instanceof Node||e instanceof mr(e).Node:!1}function Qr(e){return Af()?e instanceof Element||e instanceof mr(e).Element:!1}function ss(e){return Af()?e instanceof HTMLElement||e instanceof mr(e).HTMLElement:!1}function Tw(e){return!Af()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof mr(e).ShadowRoot}function _u(e){const{overflow:t,overflowX:n,overflowY:r,display:s}=Jr(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&s!=="inline"&&s!=="contents"}function Rj(e){return/^(table|td|th)$/.test(pl(e))}function Nf(e){try{if(e.matches(":popover-open"))return!0}catch{}try{return e.matches(":modal")}catch{return!1}}const Mj=/transform|translate|scale|rotate|perspective|filter/,Tj=/paint|layout|strict|content/,wo=e=>!!e&&e!=="none";let Dg;function Cy(e){const t=Qr(e)?Jr(e):e;return wo(t.transform)||wo(t.translate)||wo(t.scale)||wo(t.rotate)||wo(t.perspective)||!ky()&&(wo(t.backdropFilter)||wo(t.filter))||Mj.test(t.willChange||"")||Tj.test(t.contain||"")}function Aj(e){let t=Ys(e);for(;ss(t)&&!il(t);){if(Cy(t))return t;if(Nf(t))return null;t=Ys(t)}return null}function ky(){return Dg==null&&(Dg=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),Dg}function il(e){return/^(html|body|#document)$/.test(pl(e))}function Jr(e){return mr(e).getComputedStyle(e)}function Df(e){return Qr(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Ys(e){if(pl(e)==="html")return e;const t=e.assignedSlot||e.parentNode||Tw(e)&&e.host||Ei(e);return Tw(t)?t.host:t}function JE(e){const t=Ys(e);return il(t)?e.ownerDocument?e.ownerDocument.body:e.body:ss(t)&&_u(t)?t:JE(t)}function Zc(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const s=JE(e),a=s===((r=e.ownerDocument)==null?void 0:r.body),l=mr(s);if(a){const u=Lv(l);return t.concat(l,l.visualViewport||[],_u(s)?s:[],u&&n?Zc(u):[])}else return t.concat(s,Zc(s,[],n))}function Lv(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function eR(e){const t=Jr(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const s=ss(e),a=s?e.offsetWidth:n,l=s?e.offsetHeight:r,u=Xd(n)!==a||Xd(r)!==l;return u&&(n=a,r=l),{width:n,height:r,$:u}}function Ey(e){return Qr(e)?e:e.contextElement}function Za(e){const t=Ey(e);if(!ss(t))return yi(1);const n=t.getBoundingClientRect(),{width:r,height:s,$:a}=eR(t);let l=(a?Xd(n.width):n.width)/r,u=(a?Xd(n.height):n.height)/s;return(!l||!Number.isFinite(l))&&(l=1),(!u||!Number.isFinite(u))&&(u=1),{x:l,y:u}}const Nj=yi(0);function tR(e){const t=mr(e);return!ky()||!t.visualViewport?Nj:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function Dj(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==mr(e)?!1:t}function Po(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const s=e.getBoundingClientRect(),a=Ey(e);let l=yi(1);t&&(r?Qr(r)&&(l=Za(r)):l=Za(e));const u=Dj(a,n,r)?tR(a):yi(0);let d=(s.left+u.x)/l.x,h=(s.top+u.y)/l.y,p=s.width/l.x,m=s.height/l.y;if(a){const _=mr(a),b=r&&Qr(r)?mr(r):r;let S=_,w=Lv(S);for(;w&&r&&b!==S;){const C=Za(w),k=w.getBoundingClientRect(),M=Jr(w),R=k.left+(w.clientLeft+parseFloat(M.paddingLeft))*C.x,T=k.top+(w.clientTop+parseFloat(M.paddingTop))*C.y;d*=C.x,h*=C.y,p*=C.x,m*=C.y,d+=R,h+=T,S=mr(w),w=Lv(S)}}return Qd({width:p,height:m,x:d,y:h})}function Of(e,t){const n=Df(e).scrollLeft;return t?t.left+n:Po(Ei(e)).left+n}function nR(e,t){const n=e.getBoundingClientRect(),r=n.left+t.scrollLeft-Of(e,n),s=n.top+t.scrollTop;return{x:r,y:s}}function Oj(e){let{elements:t,rect:n,offsetParent:r,strategy:s}=e;const a=s==="fixed",l=Ei(r),u=t?Nf(t.floating):!1;if(r===l||u&&a)return n;let d={scrollLeft:0,scrollTop:0},h=yi(1);const p=yi(0),m=ss(r);if((m||!m&&!a)&&((pl(r)!=="body"||_u(l))&&(d=Df(r)),m)){const b=Po(r);h=Za(r),p.x=b.x+r.clientLeft,p.y=b.y+r.clientTop}const _=l&&!m&&!a?nR(l,d):yi(0);return{width:n.width*h.x,height:n.height*h.y,x:n.x*h.x-d.scrollLeft*h.x+p.x+_.x,y:n.y*h.y-d.scrollTop*h.y+p.y+_.y}}function Lj(e){return Array.from(e.getClientRects())}function zj(e){const t=Ei(e),n=Df(e),r=e.ownerDocument.body,s=pr(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=pr(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let l=-n.scrollLeft+Of(e);const u=-n.scrollTop;return Jr(r).direction==="rtl"&&(l+=pr(t.clientWidth,r.clientWidth)-s),{width:s,height:a,x:l,y:u}}const Aw=25;function jj(e,t){const n=mr(e),r=Ei(e),s=n.visualViewport;let a=r.clientWidth,l=r.clientHeight,u=0,d=0;if(s){a=s.width,l=s.height;const p=ky();(!p||p&&t==="fixed")&&(u=s.offsetLeft,d=s.offsetTop)}const h=Of(r);if(h<=0){const p=r.ownerDocument,m=p.body,_=getComputedStyle(m),b=p.compatMode==="CSS1Compat"&&parseFloat(_.marginLeft)+parseFloat(_.marginRight)||0,S=Math.abs(r.clientWidth-m.clientWidth-b);S<=Aw&&(a-=S)}else h<=Aw&&(a+=h);return{width:a,height:l,x:u,y:d}}function Bj(e,t){const n=Po(e,!0,t==="fixed"),r=n.top+e.clientTop,s=n.left+e.clientLeft,a=ss(e)?Za(e):yi(1),l=e.clientWidth*a.x,u=e.clientHeight*a.y,d=s*a.x,h=r*a.y;return{width:l,height:u,x:d,y:h}}function Nw(e,t,n){let r;if(t==="viewport")r=jj(e,n);else if(t==="document")r=zj(Ei(e));else if(Qr(t))r=Bj(t,n);else{const s=tR(e);r={x:t.x-s.x,y:t.y-s.y,width:t.width,height:t.height}}return Qd(r)}function rR(e,t){const n=Ys(e);return n===t||!Qr(n)||il(n)?!1:Jr(n).position==="fixed"||rR(n,t)}function Pj(e,t){const n=t.get(e);if(n)return n;let r=Zc(e,[],!1).filter(u=>Qr(u)&&pl(u)!=="body"),s=null;const a=Jr(e).position==="fixed";let l=a?Ys(e):e;for(;Qr(l)&&!il(l);){const u=Jr(l),d=Cy(l);!d&&u.position==="fixed"&&(s=null),(a?!d&&!s:!d&&u.position==="static"&&!!s&&(s.position==="absolute"||s.position==="fixed")||_u(l)&&!d&&rR(e,l))?r=r.filter(p=>p!==l):s=u,l=Ys(l)}return t.set(e,r),r}function Ij(e){let{element:t,boundary:n,rootBoundary:r,strategy:s}=e;const l=[...n==="clippingAncestors"?Nf(t)?[]:Pj(t,this._c):[].concat(n),r],u=Nw(t,l[0],s);let d=u.top,h=u.right,p=u.bottom,m=u.left;for(let _=1;_<l.length;_++){const b=Nw(t,l[_],s);d=pr(b.top,d),h=Gs(b.right,h),p=Gs(b.bottom,p),m=pr(b.left,m)}return{width:h-m,height:p-d,x:m,y:d}}function Hj(e){const{width:t,height:n}=eR(e);return{width:t,height:n}}function Fj(e,t,n){const r=ss(t),s=Ei(t),a=n==="fixed",l=Po(e,!0,a,t);let u={scrollLeft:0,scrollTop:0};const d=yi(0);function h(){d.x=Of(s)}if(r||!r&&!a)if((pl(t)!=="body"||_u(s))&&(u=Df(t)),r){const b=Po(t,!0,a,t);d.x=b.x+t.clientLeft,d.y=b.y+t.clientTop}else s&&h();a&&!r&&s&&h();const p=s&&!r&&!a?nR(s,u):yi(0),m=l.left+u.scrollLeft-d.x-p.x,_=l.top+u.scrollTop-d.y-p.y;return{x:m,y:_,width:l.width,height:l.height}}function Og(e){return Jr(e).position==="static"}function Dw(e,t){if(!ss(e)||Jr(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return Ei(e)===n&&(n=n.ownerDocument.body),n}function iR(e,t){const n=mr(e);if(Nf(e))return n;if(!ss(e)){let s=Ys(e);for(;s&&!il(s);){if(Qr(s)&&!Og(s))return s;s=Ys(s)}return n}let r=Dw(e,t);for(;r&&Rj(r)&&Og(r);)r=Dw(r,t);return r&&il(r)&&Og(r)&&!Cy(r)?n:r||Aj(e)||n}const Uj=async function(e){const t=this.getOffsetParent||iR,n=this.getDimensions,r=await n(e.floating);return{reference:Fj(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function $j(e){return Jr(e).direction==="rtl"}const Wj={convertOffsetParentRelativeRectToViewportRelativeRect:Oj,getDocumentElement:Ei,getClippingRect:Ij,getOffsetParent:iR,getElementRects:Uj,getClientRects:Lj,getDimensions:Hj,getScale:Za,isElement:Qr,isRTL:$j};function sR(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function qj(e,t){let n=null,r;const s=Ei(e);function a(){var u;clearTimeout(r),(u=n)==null||u.disconnect(),n=null}function l(u,d){u===void 0&&(u=!1),d===void 0&&(d=1),a();const h=e.getBoundingClientRect(),{left:p,top:m,width:_,height:b}=h;if(u||t(),!_||!b)return;const S=td(m),w=td(s.clientWidth-(p+_)),C=td(s.clientHeight-(m+b)),k=td(p),R={rootMargin:-S+"px "+-w+"px "+-C+"px "+-k+"px",threshold:pr(0,Gs(1,d))||1};let T=!0;function L(O){const z=O[0].intersectionRatio;if(z!==d){if(!T)return l();z?l(!1,z):r=setTimeout(()=>{l(!1,1e-7)},1e3)}z===1&&!sR(h,e.getBoundingClientRect())&&l(),T=!1}try{n=new IntersectionObserver(L,{...R,root:s.ownerDocument})}catch{n=new IntersectionObserver(L,R)}n.observe(e)}return l(!0),a}function Vj(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:s=!0,ancestorResize:a=!0,elementResize:l=typeof ResizeObserver=="function",layoutShift:u=typeof IntersectionObserver=="function",animationFrame:d=!1}=r,h=Ey(e),p=s||a?[...h?Zc(h):[],...t?Zc(t):[]]:[];p.forEach(k=>{s&&k.addEventListener("scroll",n,{passive:!0}),a&&k.addEventListener("resize",n)});const m=h&&u?qj(h,n):null;let _=-1,b=null;l&&(b=new ResizeObserver(k=>{let[M]=k;M&&M.target===h&&b&&t&&(b.unobserve(t),cancelAnimationFrame(_),_=requestAnimationFrame(()=>{var R;(R=b)==null||R.observe(t)})),n()}),h&&!d&&b.observe(h),t&&b.observe(t));let S,w=d?Po(e):null;d&&C();function C(){const k=Po(e);w&&!sR(w,k)&&n(),w=k,S=requestAnimationFrame(C)}return n(),()=>{var k;p.forEach(M=>{s&&M.removeEventListener("scroll",n),a&&M.removeEventListener("resize",n)}),m==null||m(),(k=b)==null||k.disconnect(),b=null,d&&cancelAnimationFrame(S)}}const Kj=wj,Gj=Cj,Yj=bj,Xj=Ej,Zj=xj,Ow=yj,Qj=kj,Jj=(e,t,n)=>{const r=new Map,s={platform:Wj,...n},a={...s.platform,_c:r};return _j(e,t,{...s,platform:a})};var eB=typeof document<"u",tB=function(){},Md=eB?x.useLayoutEffect:tB;function Jd(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,r,s;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!Jd(e[r],t[r]))return!1;return!0}if(s=Object.keys(e),n=s.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,s[r]))return!1;for(r=n;r--!==0;){const a=s[r];if(!(a==="_owner"&&e.$$typeof)&&!Jd(e[a],t[a]))return!1}return!0}return e!==e&&t!==t}function oR(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Lw(e,t){const n=oR(e);return Math.round(t*n)/n}function Lg(e){const t=x.useRef(e);return Md(()=>{t.current=e}),t}function nB(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:s,elements:{reference:a,floating:l}={},transform:u=!0,whileElementsMounted:d,open:h}=e,[p,m]=x.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[_,b]=x.useState(r);Jd(_,r)||b(r);const[S,w]=x.useState(null),[C,k]=x.useState(null),M=x.useCallback(W=>{W!==O.current&&(O.current=W,w(W))},[]),R=x.useCallback(W=>{W!==z.current&&(z.current=W,k(W))},[]),T=a||S,L=l||C,O=x.useRef(null),z=x.useRef(null),B=x.useRef(p),X=d!=null,P=Lg(d),q=Lg(s),U=Lg(h),F=x.useCallback(()=>{if(!O.current||!z.current)return;const W={placement:t,strategy:n,middleware:_};q.current&&(W.platform=q.current),Jj(O.current,z.current,W).then(Q=>{const A={...Q,isPositioned:U.current!==!1};K.current&&!Jd(B.current,A)&&(B.current=A,$s.flushSync(()=>{m(A)}))})},[_,t,n,q,U]);Md(()=>{h===!1&&B.current.isPositioned&&(B.current.isPositioned=!1,m(W=>({...W,isPositioned:!1})))},[h]);const K=x.useRef(!1);Md(()=>(K.current=!0,()=>{K.current=!1}),[]),Md(()=>{if(T&&(O.current=T),L&&(z.current=L),T&&L){if(P.current)return P.current(T,L,F);F()}},[T,L,F,P,X]);const $=x.useMemo(()=>({reference:O,floating:z,setReference:M,setFloating:R}),[M,R]),j=x.useMemo(()=>({reference:T,floating:L}),[T,L]),H=x.useMemo(()=>{const W={position:n,left:0,top:0};if(!j.floating)return W;const Q=Lw(j.floating,p.x),A=Lw(j.floating,p.y);return u?{...W,transform:"translate("+Q+"px, "+A+"px)",...oR(j.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:Q,top:A}},[n,u,j.floating,p.x,p.y]);return x.useMemo(()=>({...p,update:F,refs:$,elements:j,floatingStyles:H}),[p,F,$,j,H])}const rB=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:r,padding:s}=typeof e=="function"?e(n):e;return r&&t(r)?r.current!=null?Ow({element:r.current,padding:s}).fn(n):{}:r?Ow({element:r,padding:s}).fn(n):{}}}},iB=(e,t)=>{const n=Kj(e);return{name:n.name,fn:n.fn,options:[e,t]}},sB=(e,t)=>{const n=Gj(e);return{name:n.name,fn:n.fn,options:[e,t]}},oB=(e,t)=>({fn:Qj(e).fn,options:[e,t]}),aB=(e,t)=>{const n=Yj(e);return{name:n.name,fn:n.fn,options:[e,t]}},lB=(e,t)=>{const n=Xj(e);return{name:n.name,fn:n.fn,options:[e,t]}},cB=(e,t)=>{const n=Zj(e);return{name:n.name,fn:n.fn,options:[e,t]}},uB=(e,t)=>{const n=rB(e);return{name:n.name,fn:n.fn,options:[e,t]}};var hB="Arrow",aR=x.forwardRef((e,t)=>{const{children:n,width:r=10,height:s=5,...a}=e;return v.jsx(wt.svg,{...a,ref:t,width:r,height:s,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:v.jsx("polygon",{points:"0,0 30,0 15,10"})})});aR.displayName=hB;var dB=aR;function fB(e){const[t,n]=x.useState(void 0);return Ks(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(s=>{if(!Array.isArray(s)||!s.length)return;const a=s[0];let l,u;if("borderBoxSize"in a){const d=a.borderBoxSize,h=Array.isArray(d)?d[0]:d;l=h.inlineSize,u=h.blockSize}else l=e.offsetWidth,u=e.offsetHeight;n({width:l,height:u})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}var Ry="Popper",[lR,ml]=Qs(Ry),[pB,cR]=lR(Ry),uR=e=>{const{__scopePopper:t,children:n}=e,[r,s]=x.useState(null);return v.jsx(pB,{scope:t,anchor:r,onAnchorChange:s,children:n})};uR.displayName=Ry;var hR="PopperAnchor",dR=x.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...s}=e,a=cR(hR,n),l=x.useRef(null),u=Pt(t,l),d=x.useRef(null);return x.useEffect(()=>{const h=d.current;d.current=(r==null?void 0:r.current)||l.current,h!==d.current&&a.onAnchorChange(d.current)}),r?null:v.jsx(wt.div,{...s,ref:u})});dR.displayName=hR;var My="PopperContent",[mB,gB]=lR(My),fR=x.forwardRef((e,t)=>{var ge,Re,pe,he,Te,He;const{__scopePopper:n,side:r="bottom",sideOffset:s=0,align:a="center",alignOffset:l=0,arrowPadding:u=0,avoidCollisions:d=!0,collisionBoundary:h=[],collisionPadding:p=0,sticky:m="partial",hideWhenDetached:_=!1,updatePositionStrategy:b="optimized",onPlaced:S,...w}=e,C=cR(My,n),[k,M]=x.useState(null),R=Pt(t,Me=>M(Me)),[T,L]=x.useState(null),O=fB(T),z=(O==null?void 0:O.width)??0,B=(O==null?void 0:O.height)??0,X=r+(a!=="center"?"-"+a:""),P=typeof p=="number"?p:{top:0,right:0,bottom:0,left:0,...p},q=Array.isArray(h)?h:[h],U=q.length>0,F={padding:P,boundary:q.filter(_B),altBoundary:U},{refs:K,floatingStyles:$,placement:j,isPositioned:H,middlewareData:W}=nB({strategy:"fixed",placement:X,whileElementsMounted:(...Me)=>Vj(...Me,{animationFrame:b==="always"}),elements:{reference:C.anchor},middleware:[iB({mainAxis:s+B,alignmentAxis:l}),d&&sB({mainAxis:!0,crossAxis:!1,limiter:m==="partial"?oB():void 0,...F}),d&&aB({...F}),lB({...F,apply:({elements:Me,rects:Ke,availableWidth:Dt,availableHeight:mn})=>{const{width:Fr,height:Ur}=Ke.reference,gn=Me.floating.style;gn.setProperty("--radix-popper-available-width",`${Dt}px`),gn.setProperty("--radix-popper-available-height",`${mn}px`),gn.setProperty("--radix-popper-anchor-width",`${Fr}px`),gn.setProperty("--radix-popper-anchor-height",`${Ur}px`)}}),T&&uB({element:T,padding:u}),yB({arrowWidth:z,arrowHeight:B}),_&&cB({strategy:"referenceHidden",...F})]}),[Q,A]=gR(j),I=Si(S);Ks(()=>{H&&(I==null||I())},[H,I]);const Z=(ge=W.arrow)==null?void 0:ge.x,N=(Re=W.arrow)==null?void 0:Re.y,G=((pe=W.arrow)==null?void 0:pe.centerOffset)!==0,[re,ie]=x.useState();return Ks(()=>{k&&ie(window.getComputedStyle(k).zIndex)},[k]),v.jsx("div",{ref:K.setFloating,"data-radix-popper-content-wrapper":"",style:{...$,transform:H?$.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:re,"--radix-popper-transform-origin":[(he=W.transformOrigin)==null?void 0:he.x,(Te=W.transformOrigin)==null?void 0:Te.y].join(" "),...((He=W.hide)==null?void 0:He.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:v.jsx(mB,{scope:n,placedSide:Q,onArrowChange:L,arrowX:Z,arrowY:N,shouldHideArrow:G,children:v.jsx(wt.div,{"data-side":Q,"data-align":A,...w,ref:R,style:{...w.style,animation:H?void 0:"none"}})})})});fR.displayName=My;var pR="PopperArrow",vB={top:"bottom",right:"left",bottom:"top",left:"right"},mR=x.forwardRef(function(t,n){const{__scopePopper:r,...s}=t,a=gB(pR,r),l=vB[a.placedSide];return v.jsx("span",{ref:a.onArrowChange,style:{position:"absolute",left:a.arrowX,top:a.arrowY,[l]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[a.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[a.placedSide],visibility:a.shouldHideArrow?"hidden":void 0},children:v.jsx(dB,{...s,ref:n,style:{...s.style,display:"block"}})})});mR.displayName=pR;function _B(e){return e!==null}var yB=e=>({name:"transformOrigin",options:e,fn(t){var C,k,M;const{placement:n,rects:r,middlewareData:s}=t,l=((C=s.arrow)==null?void 0:C.centerOffset)!==0,u=l?0:e.arrowWidth,d=l?0:e.arrowHeight,[h,p]=gR(n),m={start:"0%",center:"50%",end:"100%"}[p],_=(((k=s.arrow)==null?void 0:k.x)??0)+u/2,b=(((M=s.arrow)==null?void 0:M.y)??0)+d/2;let S="",w="";return h==="bottom"?(S=l?m:`${_}px`,w=`${-d}px`):h==="top"?(S=l?m:`${_}px`,w=`${r.floating.height+d}px`):h==="right"?(S=`${-d}px`,w=l?m:`${b}px`):h==="left"&&(S=`${r.floating.width+d}px`,w=l?m:`${b}px`),{data:{x:S,y:w}}}});function gR(e){const[t,n="center"]=e.split("-");return[t,n]}var Ty=uR,Lf=dR,Ay=fR,Ny=mR,bB=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),xB="VisuallyHidden",vR=x.forwardRef((e,t)=>v.jsx(wt.span,{...e,ref:t,style:{...bB,...e.style}}));vR.displayName=xB;var SB=vR,[zf]=Qs("Tooltip",[ml]),jf=ml(),_R="TooltipProvider",wB=700,zv="tooltip.open",[CB,Dy]=zf(_R),yR=e=>{const{__scopeTooltip:t,delayDuration:n=wB,skipDelayDuration:r=300,disableHoverableContent:s=!1,children:a}=e,l=x.useRef(!0),u=x.useRef(!1),d=x.useRef(0);return x.useEffect(()=>{const h=d.current;return()=>window.clearTimeout(h)},[]),v.jsx(CB,{scope:t,isOpenDelayedRef:l,delayDuration:n,onOpen:x.useCallback(()=>{window.clearTimeout(d.current),l.current=!1},[]),onClose:x.useCallback(()=>{window.clearTimeout(d.current),d.current=window.setTimeout(()=>l.current=!0,r)},[r]),isPointerInTransitRef:u,onPointerInTransitChange:x.useCallback(h=>{u.current=h},[]),disableHoverableContent:s,children:a})};yR.displayName=_R;var Qc="Tooltip",[kB,yu]=zf(Qc),bR=e=>{const{__scopeTooltip:t,children:n,open:r,defaultOpen:s,onOpenChange:a,disableHoverableContent:l,delayDuration:u}=e,d=Dy(Qc,e.__scopeTooltip),h=jf(t),[p,m]=x.useState(null),_=Ya(),b=x.useRef(0),S=l??d.disableHoverableContent,w=u??d.delayDuration,C=x.useRef(!1),[k,M]=Cf({prop:r,defaultProp:s??!1,onChange:z=>{z?(d.onOpen(),document.dispatchEvent(new CustomEvent(zv))):d.onClose(),a==null||a(z)},caller:Qc}),R=x.useMemo(()=>k?C.current?"delayed-open":"instant-open":"closed",[k]),T=x.useCallback(()=>{window.clearTimeout(b.current),b.current=0,C.current=!1,M(!0)},[M]),L=x.useCallback(()=>{window.clearTimeout(b.current),b.current=0,M(!1)},[M]),O=x.useCallback(()=>{window.clearTimeout(b.current),b.current=window.setTimeout(()=>{C.current=!0,M(!0),b.current=0},w)},[w,M]);return x.useEffect(()=>()=>{b.current&&(window.clearTimeout(b.current),b.current=0)},[]),v.jsx(Ty,{...h,children:v.jsx(kB,{scope:t,contentId:_,open:k,stateAttribute:R,trigger:p,onTriggerChange:m,onTriggerEnter:x.useCallback(()=>{d.isOpenDelayedRef.current?O():T()},[d.isOpenDelayedRef,O,T]),onTriggerLeave:x.useCallback(()=>{S?L():(window.clearTimeout(b.current),b.current=0)},[L,S]),onOpen:T,onClose:L,disableHoverableContent:S,children:n})})};bR.displayName=Qc;var jv="TooltipTrigger",xR=x.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,s=yu(jv,n),a=Dy(jv,n),l=jf(n),u=x.useRef(null),d=Pt(t,u,s.onTriggerChange),h=x.useRef(!1),p=x.useRef(!1),m=x.useCallback(()=>h.current=!1,[]);return x.useEffect(()=>()=>document.removeEventListener("pointerup",m),[m]),v.jsx(Lf,{asChild:!0,...l,children:v.jsx(wt.button,{"aria-describedby":s.open?s.contentId:void 0,"data-state":s.stateAttribute,...r,ref:d,onPointerMove:Oe(e.onPointerMove,_=>{_.pointerType!=="touch"&&!p.current&&!a.isPointerInTransitRef.current&&(s.onTriggerEnter(),p.current=!0)}),onPointerLeave:Oe(e.onPointerLeave,()=>{s.onTriggerLeave(),p.current=!1}),onPointerDown:Oe(e.onPointerDown,()=>{s.open&&s.onClose(),h.current=!0,document.addEventListener("pointerup",m,{once:!0})}),onFocus:Oe(e.onFocus,()=>{h.current||s.onOpen()}),onBlur:Oe(e.onBlur,s.onClose),onClick:Oe(e.onClick,s.onClose)})})});xR.displayName=jv;var Oy="TooltipPortal",[EB,RB]=zf(Oy,{forceMount:void 0}),SR=e=>{const{__scopeTooltip:t,forceMount:n,children:r,container:s}=e,a=yu(Oy,t);return v.jsx(EB,{scope:t,forceMount:n,children:v.jsx(Hr,{present:n||a.open,children:v.jsx(gu,{asChild:!0,container:s,children:r})})})};SR.displayName=Oy;var sl="TooltipContent",wR=x.forwardRef((e,t)=>{const n=RB(sl,e.__scopeTooltip),{forceMount:r=n.forceMount,side:s="top",...a}=e,l=yu(sl,e.__scopeTooltip);return v.jsx(Hr,{present:r||l.open,children:l.disableHoverableContent?v.jsx(CR,{side:s,...a,ref:t}):v.jsx(MB,{side:s,...a,ref:t})})}),MB=x.forwardRef((e,t)=>{const n=yu(sl,e.__scopeTooltip),r=Dy(sl,e.__scopeTooltip),s=x.useRef(null),a=Pt(t,s),[l,u]=x.useState(null),{trigger:d,onClose:h}=n,p=s.current,{onPointerInTransitChange:m}=r,_=x.useCallback(()=>{u(null),m(!1)},[m]),b=x.useCallback((S,w)=>{const C=S.currentTarget,k={x:S.clientX,y:S.clientY},M=OB(k,C.getBoundingClientRect()),R=LB(k,M),T=zB(w.getBoundingClientRect()),L=BB([...R,...T]);u(L),m(!0)},[m]);return x.useEffect(()=>()=>_(),[_]),x.useEffect(()=>{if(d&&p){const S=C=>b(C,p),w=C=>b(C,d);return d.addEventListener("pointerleave",S),p.addEventListener("pointerleave",w),()=>{d.removeEventListener("pointerleave",S),p.removeEventListener("pointerleave",w)}}},[d,p,b,_]),x.useEffect(()=>{if(l){const S=w=>{const C=w.target,k={x:w.clientX,y:w.clientY},M=(d==null?void 0:d.contains(C))||(p==null?void 0:p.contains(C)),R=!jB(k,l);M?_():R&&(_(),h())};return document.addEventListener("pointermove",S),()=>document.removeEventListener("pointermove",S)}},[d,p,l,h,_]),v.jsx(CR,{...e,ref:a})}),[TB,AB]=zf(Qc,{isInside:!1}),NB=HO("TooltipContent"),CR=x.forwardRef((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":s,onEscapeKeyDown:a,onPointerDownOutside:l,...u}=e,d=yu(sl,n),h=jf(n),{onClose:p}=d;return x.useEffect(()=>(document.addEventListener(zv,p),()=>document.removeEventListener(zv,p)),[p]),x.useEffect(()=>{if(d.trigger){const m=_=>{const b=_.target;b!=null&&b.contains(d.trigger)&&p()};return window.addEventListener("scroll",m,{capture:!0}),()=>window.removeEventListener("scroll",m,{capture:!0})}},[d.trigger,p]),v.jsx(mu,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:a,onPointerDownOutside:l,onFocusOutside:m=>m.preventDefault(),onDismiss:p,children:v.jsxs(Ay,{"data-state":d.stateAttribute,...h,...u,ref:t,style:{...u.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[v.jsx(NB,{children:r}),v.jsx(TB,{scope:n,isInside:!0,children:v.jsx(SB,{id:d.contentId,role:"tooltip",children:s||r})})]})})});wR.displayName=sl;var kR="TooltipArrow",DB=x.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,s=jf(n);return AB(kR,n).isInside?null:v.jsx(Ny,{...s,...r,ref:t})});DB.displayName=kR;function OB(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),s=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,s,a)){case a:return"left";case s:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function LB(e,t,n=5){const r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function zB(e){const{top:t,right:n,bottom:r,left:s}=e;return[{x:s,y:t},{x:n,y:t},{x:n,y:r},{x:s,y:r}]}function jB(e,t){const{x:n,y:r}=e;let s=!1;for(let a=0,l=t.length-1;a<t.length;l=a++){const u=t[a],d=t[l],h=u.x,p=u.y,m=d.x,_=d.y;p>r!=_>r&&n<(m-h)*(r-p)/(_-p)+h&&(s=!s)}return s}function BB(e){const t=e.slice();return t.sort((n,r)=>n.x<r.x?-1:n.x>r.x?1:n.y<r.y?-1:n.y>r.y?1:0),PB(t)}function PB(e){if(e.length<=1)return e.slice();const t=[];for(let r=0;r<e.length;r++){const s=e[r];for(;t.length>=2;){const a=t[t.length-1],l=t[t.length-2];if((a.x-l.x)*(s.y-l.y)>=(a.y-l.y)*(s.x-l.x))t.pop();else break}t.push(s)}t.pop();const n=[];for(let r=e.length-1;r>=0;r--){const s=e[r];for(;n.length>=2;){const a=n[n.length-1],l=n[n.length-2];if((a.x-l.x)*(s.y-l.y)>=(a.y-l.y)*(s.x-l.x))n.pop();else break}n.push(s)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var IB=yR,HB=bR,FB=xR,UB=SR,ER=wR;const $B=IB,Jc=HB,eu=FB,ol=x.forwardRef(({className:e,sideOffset:t=4,...n},r)=>v.jsx(UB,{children:v.jsx(ER,{ref:r,sideOffset:t,className:ye("z-50 overflow-hidden rounded-md bg-card text-card-foreground border border-border px-3 py-1.5 text-xs animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...n})}));ol.displayName=ER.displayName;const WB="0.8.0",qB={version:WB},zn="Kanna",zw="kanna",RR=`kanna/${qB.version}`,VB="[kanna]",KB=`~/${zn}`;function nd(e){return e?`${zw} ${e}`:zw}const Bf=({children:e,className:t,shimmerWidth:n=100,animate:r=!0,...s})=>v.jsx("span",{style:{"--shiny-width":`${Math.min(n,100)}px`},className:ye("mx-auto max-w-md text-foreground/50",r?["animate-shiny-text [background-size:var(--shiny-width)_100%] bg-clip-text [background-position:0_0] bg-no-repeat [transition:background-position_1s_cubic-bezier(.6,.6,0,1)_infinite]","bg-gradient-to-r from-transparent via-black/80 via-50% to-transparent dark:via-white/80"]:["text-neutral"],t),...s,children:e});function Bv(e){return e.split(/[\s_-]+/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join(" ")}const GB=[/^(?:\/usr\/bin\/env\s+)?(?:\/bin\/)?(?:bash|zsh|sh)\s+(?:-[a-zA-Z]*c|-c)\s+(['"])([\s\S]*)\1$/,/^(?:\/usr\/bin\/env\s+)?(?:\/bin\/)?(?:bash|zsh|sh)\s+(?:-[a-zA-Z]*c|-c)\s+(.+)$/,/^(?:\/usr\/bin\/env\s+)?(?:cmd(?:\.exe)?)\s+\/c\s+(['"])([\s\S]*)\1$/i,/^(?:\/usr\/bin\/env\s+)?(?:cmd(?:\.exe)?)\s+\/c\s+(.+)$/i,/^(?:\/usr\/bin\/env\s+)?(?:powershell(?:\.exe)?|pwsh)\s+(?:-NoProfile\s+)?-Command\s+(['"])([\s\S]*)\1$/i,/^(?:\/usr\/bin\/env\s+)?(?:powershell(?:\.exe)?|pwsh)\s+(?:-NoProfile\s+)?-Command\s+(.+)$/i];function YB(e){const t=e.trim();for(const n of GB){const r=t.match(n);if(!r)continue;const s=(r[2]??r[1]??"").trim();if(s)return s}return t}function MR(e){return e.split("/").pop()||e}function XB(e,t){if(e===void 0)return null;const n=Math.max(0,t-e),r=6e4,s=60*r,a=24*s,l=7*a;return n<r?"now":n<s?`${Math.floor(n/r)}m`:n<a?`${Math.floor(n/s)}h`:n<l?`${Math.floor(n/a)}d`:`${Math.floor(n/l)}w`}const ZB=new Set(["starting","running"]);function QB({chat:e,activeChatId:t,nowMs:n,onSelectChat:r,onDeleteChat:s}){const a=XB(e.lastMessageAt,n);return v.jsxs("div",{"data-chat-id":rw(e.chatId),className:ye("group flex items-center gap-2 pl-2.5 pr-0.5 py-0.5 rounded-lg cursor-pointer border-border/0 hover:border-border hover:bg-muted/20 active:scale-[0.985] border transition-all",t===rw(e.chatId)?"bg-muted hover:bg-muted border-border":"border-border/0 dark:hover:border-slate-400/10 "),onClick:()=>r(e.chatId),children:[ZB.has(e.status)?v.jsx(Js,{className:"size-3.5 flex-shrink-0 animate-spin text-muted-foreground"}):e.status==="waiting_for_user"?v.jsx("div",{className:"relative ",children:v.jsxs("div",{className:" rounded-full z-0 size-3.5 flex items-center justify-center ",children:[v.jsx("div",{className:"absolute rounded-full z-0 size-2.5 bg-blue-400/80 animate-ping"}),v.jsx("div",{className:" rounded-full z-0 size-2.5 bg-blue-400 ring-2 ring-muted/20 dark:ring-muted/50"})]})}):null,v.jsx("span",{className:"text-sm truncate flex-1 translate-y-[-0.5px]",children:e.status!=="idle"&&e.status!=="waiting_for_user"?v.jsx(Bf,{animate:e.status==="running",shimmerWidth:Math.max(20,e.title.length*3),children:e.title}):e.title}),v.jsxs("div",{className:"relative h-7 w-7 mr-[2px] shrink-0",children:[a?v.jsx("span",{className:"hidden md:flex absolute inset-0 items-center justify-end pr-1 text-[11px] text-muted-foreground opacity-50 transition-opacity group-hover:opacity-0",children:a}):null,v.jsx(et,{variant:"ghost",size:"icon",className:ye("absolute inset-0 h-7 w-7 opacity-100 cursor-pointer rounded-sm hover:!bg-transparent !border-0",a?"md:opacity-0 md:group-hover:opacity-100":"opacity-100 md:opacity-0 md:group-hover:opacity-100"),onClick:l=>{l.stopPropagation(),s(e.chatId)},title:"Delete chat",children:v.jsx(gz,{className:"size-3.5"})})]})]},e._id)}function JB(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return x.useMemo(()=>r=>{t.forEach(s=>s(r))},t)}const Pf=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function gl(e){const t=Object.prototype.toString.call(e);return t==="[object Window]"||t==="[object global]"}function Ly(e){return"nodeType"in e}function tr(e){var t,n;return e?gl(e)?e:Ly(e)&&(t=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?t:window:window}function zy(e){const{Document:t}=tr(e);return e instanceof t}function bu(e){return gl(e)?!1:e instanceof tr(e).HTMLElement}function TR(e){return e instanceof tr(e).SVGElement}function vl(e){return e?gl(e)?e.document:Ly(e)?zy(e)?e:bu(e)||TR(e)?e.ownerDocument:document:document:document}const wi=Pf?x.useLayoutEffect:x.useEffect;function jy(e){const t=x.useRef(e);return wi(()=>{t.current=e}),x.useCallback(function(){for(var n=arguments.length,r=new Array(n),s=0;s<n;s++)r[s]=arguments[s];return t.current==null?void 0:t.current(...r)},[])}function eP(){const e=x.useRef(null),t=x.useCallback((r,s)=>{e.current=setInterval(r,s)},[]),n=x.useCallback(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[]);return[t,n]}function tu(e,t){t===void 0&&(t=[e]);const n=x.useRef(e);return wi(()=>{n.current!==e&&(n.current=e)},t),n}function xu(e,t){const n=x.useRef();return x.useMemo(()=>{const r=e(n.current);return n.current=r,r},[...t])}function ef(e){const t=jy(e),n=x.useRef(null),r=x.useCallback(s=>{s!==n.current&&(t==null||t(s,n.current)),n.current=s},[]);return[n,r]}function Pv(e){const t=x.useRef();return x.useEffect(()=>{t.current=e},[e]),t.current}let zg={};function Su(e,t){return x.useMemo(()=>{if(t)return t;const n=zg[e]==null?0:zg[e]+1;return zg[e]=n,e+"-"+n},[e,t])}function AR(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),s=1;s<n;s++)r[s-1]=arguments[s];return r.reduce((a,l)=>{const u=Object.entries(l);for(const[d,h]of u){const p=a[d];p!=null&&(a[d]=p+e*h)}return a},{...t})}}const Qa=AR(1),tf=AR(-1);function tP(e){return"clientX"in e&&"clientY"in e}function By(e){if(!e)return!1;const{KeyboardEvent:t}=tr(e.target);return t&&e instanceof t}function nP(e){if(!e)return!1;const{TouchEvent:t}=tr(e.target);return t&&e instanceof t}function Iv(e){if(nP(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return tP(e)?{x:e.clientX,y:e.clientY}:null}const nu=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[nu.Translate.toString(e),nu.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}}),jw="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function rP(e){return e.matches(jw)?e:e.querySelector(jw)}const iP={display:"none"};function sP(e){let{id:t,value:n}=e;return vt.createElement("div",{id:t,style:iP},n)}function oP(e){let{id:t,announcement:n,ariaLiveType:r="assertive"}=e;const s={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return vt.createElement("div",{id:t,style:s,role:"status","aria-live":r,"aria-atomic":!0},n)}function aP(){const[e,t]=x.useState("");return{announce:x.useCallback(r=>{r!=null&&t(r)},[]),announcement:e}}const NR=x.createContext(null);function lP(e){const t=x.useContext(NR);x.useEffect(()=>{if(!t)throw new Error("useDndMonitor must be used within a children of <DndContext>");return t(e)},[e,t])}function cP(){const[e]=x.useState(()=>new Set),t=x.useCallback(r=>(e.add(r),()=>e.delete(r)),[e]);return[x.useCallback(r=>{let{type:s,event:a}=r;e.forEach(l=>{var u;return(u=l[s])==null?void 0:u.call(l,a)})},[e]),t]}const uP={draggable:`
419
+ */const Q6=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],Kd=ke("zap",Q6),Xc="data-focus-fallback-ignore",UE="data-allow-focus-retain",Gd="kanna:restore-chat-input-focus",yy="data-chat-input",Yd="data-chat-selection-zone";function Oo(e,t){return!!(e!=null&&e.closest(`[${t}]`))}function $E(e){var n;const t=e;return t!=null&&t.matches?t.matches("input:not([type='checkbox']):not([type='radio']):not([type='button']):not([type='submit']):not([type='reset']), textarea, select")||t.isContentEditable||((n=t.getAttribute)==null?void 0:n.call(t,"role"))==="textbox"?!0:Oo(e,UE):!1}function J6(e){const t=e;return t!=null&&t.matches?$E(e)||(t.tabIndex??-1)>=0||t.matches("button, a[href], summary")?!0:Oo(e,UE):!1}function Sw(e){return!!e.querySelector(`[${Xc}][data-state='open']`)}function ej(e){return e?!e.isCollapsed&&e.toString().trim().length>0:!1}function tj(e,t){if(!e)return!1;const n=Array.from(t.querySelectorAll(`textarea[${yy}]`)).filter(l=>!l.disabled);if(n.length===0)return!1;const r=n.indexOf(e),s=r>=0?(r+1)%n.length:0,a=n[s];return a?(a.focus({preventScroll:!0}),!0):!1}function ww(e){const{activeElement:t,fallback:n,hasActiveOverlay:r}=e;if(!n||n.disabled||r||t===n)return"none";if(e.trigger==="escape")return e.defaultPrevented||Oo(t,yy)||e.canCancel?"none":"escape-focus";const{pointerStartTarget:s,pointerEndTarget:a,root:l,hasActiveSelection:u}=e,d=a??s;return!l||!d||!l.contains(d)||Oo(d,Xc)||Oo(t,Xc)||u&&(Oo(s,Yd)||Oo(d,Yd))||$E(t)?"none":t&&t===d?"restore":J6(t)?"none":"restore"}const WE=sz,nj=oz,qE=x.forwardRef(({className:e,...t},n)=>v.jsx(LE,{ref:n,className:ye("fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t}));qE.displayName=LE.displayName;const rj={sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg"},by=x.forwardRef(({className:e,children:t,size:n="md",...r},s)=>v.jsxs(nj,{children:[v.jsx(qE,{}),v.jsxs(zE,{ref:s,[Xc]:"",onCloseAutoFocus:a=>{var l;a.preventDefault(),window.dispatchEvent(new Event(Gd)),(l=r.onCloseAutoFocus)==null||l.call(r,a)},className:ye("fixed left-1/2 top-1/2 z-50 w-full -translate-x-1/2 -translate-y-1/2 rounded-xl border border-border bg-background shadow-xl duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]","max-h-[85vh] flex flex-col",rj[n],e),...r,children:[t,v.jsxs(cz,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[v.jsx(vu,{className:"h-4 w-4"}),v.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));by.displayName=zE.displayName;function VE({className:e,...t}){return v.jsx(az,{className:ye("text-lg font-medium leading-none tracking-tight",e),...t})}function ij({className:e,...t}){return v.jsx(lz,{className:ye("text-sm text-muted-foreground",e),...t})}function KE({className:e,...t}){return v.jsx("div",{className:ye("flex-1 min-h-0 overflow-y-auto px-4 pb-4 pt-3.5",e),...t})}function GE({className:e,...t}){return v.jsx("div",{className:ye("shrink-0 flex justify-end gap-2 border-t border-border bg-background p-2 rounded-b-xl",e),...t})}const YE=x.createContext(null);function sj({children:e}){const[t,n]=x.useState(null),[r,s]=x.useState(""),a=x.useRef(null);x.useEffect(()=>{(t==null?void 0:t.kind)==="prompt"&&(s(t.options.initialValue??""),setTimeout(()=>{var p,m;(p=a.current)==null||p.focus(),(m=a.current)==null||m.select()},0))},[t]);const l=x.useCallback(()=>{n(null),s("")},[]),u=x.useCallback(p=>new Promise(m=>{n({kind:"confirm",options:p,resolve:m})}),[]),d=x.useCallback(p=>new Promise(m=>{n({kind:"prompt",options:p,resolve:m})}),[]),h=x.useMemo(()=>({confirm:u,prompt:d}),[u,d]);return v.jsxs(YE.Provider,{value:h,children:[e,v.jsx(WE,{open:t!==null,onOpenChange:p=>{p||!t||(t.kind==="confirm"?t.resolve(!1):t.resolve(null),l())},children:v.jsx(by,{size:"sm",children:t?v.jsxs(v.Fragment,{children:[v.jsxs(KE,{className:"space-y-4",children:[v.jsx(VE,{children:t.options.title}),t.options.description?v.jsx(ij,{children:t.options.description}):null,t.kind==="prompt"?v.jsx("input",{ref:a,type:"text",value:r,onChange:p=>s(p.target.value),onKeyDown:p=>{p.key==="Enter"&&(p.preventDefault(),t.resolve(r.trim()||null),l())},className:"w-full px-3 py-2 text-sm border border-border rounded-md bg-background outline-none",placeholder:t.options.placeholder}):null]}),v.jsxs(GE,{children:[v.jsx(et,{variant:"ghost",size:"sm",onClick:()=>{t.kind==="confirm"?t.resolve(!1):t.resolve(null),l()},children:t.options.cancelLabel??"Cancel"}),v.jsx(et,{variant:t.kind==="confirm"?t.options.confirmVariant??"default":"secondary",size:"sm",onClick:()=>{t.kind==="confirm"?t.resolve(!0):t.resolve(r.trim()||null),l()},disabled:t.kind==="prompt"&&!r.trim(),children:t.options.confirmLabel??"Confirm"})]})]}):null})})]})}function oj(){const e=x.useContext(YE);if(!e)throw new Error("useAppDialog must be used within AppDialogProvider");return e}const aj=["top","right","bottom","left"],Gs=Math.min,pr=Math.max,Xd=Math.round,td=Math.floor,yi=e=>({x:e,y:e}),lj={left:"right",right:"left",bottom:"top",top:"bottom"};function Dv(e,t,n){return pr(e,Gs(t,n))}function ns(e,t){return typeof e=="function"?e(t):e}function rs(e){return e.split("-")[0]}function fl(e){return e.split("-")[1]}function xy(e){return e==="x"?"y":"x"}function Sy(e){return e==="y"?"height":"width"}function mi(e){const t=e[0];return t==="t"||t==="b"?"y":"x"}function wy(e){return xy(mi(e))}function cj(e,t,n){n===void 0&&(n=!1);const r=fl(e),s=wy(e),a=Sy(s);let l=s==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[a]>t.floating[a]&&(l=Zd(l)),[l,Zd(l)]}function uj(e){const t=Zd(e);return[Ov(e),t,Ov(t)]}function Ov(e){return e.includes("start")?e.replace("start","end"):e.replace("end","start")}const Cw=["left","right"],kw=["right","left"],hj=["top","bottom"],dj=["bottom","top"];function fj(e,t,n){switch(e){case"top":case"bottom":return n?t?kw:Cw:t?Cw:kw;case"left":case"right":return t?hj:dj;default:return[]}}function pj(e,t,n,r){const s=fl(e);let a=fj(rs(e),n==="start",r);return s&&(a=a.map(l=>l+"-"+s),t&&(a=a.concat(a.map(Ov)))),a}function Zd(e){const t=rs(e);return lj[t]+e.slice(t.length)}function mj(e){return{top:0,right:0,bottom:0,left:0,...e}}function XE(e){return typeof e!="number"?mj(e):{top:e,right:e,bottom:e,left:e}}function Qd(e){const{x:t,y:n,width:r,height:s}=e;return{width:r,height:s,top:n,left:t,right:t+r,bottom:n+s,x:t,y:n}}function Ew(e,t,n){let{reference:r,floating:s}=e;const a=mi(t),l=wy(t),u=Sy(l),d=rs(t),h=a==="y",p=r.x+r.width/2-s.width/2,m=r.y+r.height/2-s.height/2,_=r[u]/2-s[u]/2;let b;switch(d){case"top":b={x:p,y:r.y-s.height};break;case"bottom":b={x:p,y:r.y+r.height};break;case"right":b={x:r.x+r.width,y:m};break;case"left":b={x:r.x-s.width,y:m};break;default:b={x:r.x,y:r.y}}switch(fl(t)){case"start":b[l]-=_*(n&&h?-1:1);break;case"end":b[l]+=_*(n&&h?-1:1);break}return b}async function gj(e,t){var n;t===void 0&&(t={});const{x:r,y:s,platform:a,rects:l,elements:u,strategy:d}=e,{boundary:h="clippingAncestors",rootBoundary:p="viewport",elementContext:m="floating",altBoundary:_=!1,padding:b=0}=ns(t,e),S=XE(b),C=u[_?m==="floating"?"reference":"floating":m],k=Qd(await a.getClippingRect({element:(n=await(a.isElement==null?void 0:a.isElement(C)))==null||n?C:C.contextElement||await(a.getDocumentElement==null?void 0:a.getDocumentElement(u.floating)),boundary:h,rootBoundary:p,strategy:d})),M=m==="floating"?{x:r,y:s,width:l.floating.width,height:l.floating.height}:l.reference,R=await(a.getOffsetParent==null?void 0:a.getOffsetParent(u.floating)),T=await(a.isElement==null?void 0:a.isElement(R))?await(a.getScale==null?void 0:a.getScale(R))||{x:1,y:1}:{x:1,y:1},L=Qd(a.convertOffsetParentRelativeRectToViewportRelativeRect?await a.convertOffsetParentRelativeRectToViewportRelativeRect({elements:u,rect:M,offsetParent:R,strategy:d}):M);return{top:(k.top-L.top+S.top)/T.y,bottom:(L.bottom-k.bottom+S.bottom)/T.y,left:(k.left-L.left+S.left)/T.x,right:(L.right-k.right+S.right)/T.x}}const vj=50,_j=async(e,t,n)=>{const{placement:r="bottom",strategy:s="absolute",middleware:a=[],platform:l}=n,u=l.detectOverflow?l:{...l,detectOverflow:gj},d=await(l.isRTL==null?void 0:l.isRTL(t));let h=await l.getElementRects({reference:e,floating:t,strategy:s}),{x:p,y:m}=Ew(h,r,d),_=r,b=0;const S={};for(let w=0;w<a.length;w++){const C=a[w];if(!C)continue;const{name:k,fn:M}=C,{x:R,y:T,data:L,reset:O}=await M({x:p,y:m,initialPlacement:r,placement:_,strategy:s,middlewareData:S,rects:h,platform:u,elements:{reference:e,floating:t}});p=R??p,m=T??m,S[k]={...S[k],...L},O&&b<vj&&(b++,typeof O=="object"&&(O.placement&&(_=O.placement),O.rects&&(h=O.rects===!0?await l.getElementRects({reference:e,floating:t,strategy:s}):O.rects),{x:p,y:m}=Ew(h,_,d)),w=-1)}return{x:p,y:m,placement:_,strategy:s,middlewareData:S}},yj=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:s,rects:a,platform:l,elements:u,middlewareData:d}=t,{element:h,padding:p=0}=ns(e,t)||{};if(h==null)return{};const m=XE(p),_={x:n,y:r},b=wy(s),S=Sy(b),w=await l.getDimensions(h),C=b==="y",k=C?"top":"left",M=C?"bottom":"right",R=C?"clientHeight":"clientWidth",T=a.reference[S]+a.reference[b]-_[b]-a.floating[S],L=_[b]-a.reference[b],O=await(l.getOffsetParent==null?void 0:l.getOffsetParent(h));let z=O?O[R]:0;(!z||!await(l.isElement==null?void 0:l.isElement(O)))&&(z=u.floating[R]||a.floating[S]);const B=T/2-L/2,X=z/2-w[S]/2-1,P=Gs(m[k],X),q=Gs(m[M],X),U=P,F=z-w[S]-q,K=z/2-w[S]/2+B,$=Dv(U,K,F),j=!d.arrow&&fl(s)!=null&&K!==$&&a.reference[S]/2-(K<U?P:q)-w[S]/2<0,H=j?K<U?K-U:K-F:0;return{[b]:_[b]+H,data:{[b]:$,centerOffset:K-$-H,...j&&{alignmentOffset:H}},reset:j}}}),bj=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n,r;const{placement:s,middlewareData:a,rects:l,initialPlacement:u,platform:d,elements:h}=t,{mainAxis:p=!0,crossAxis:m=!0,fallbackPlacements:_,fallbackStrategy:b="bestFit",fallbackAxisSideDirection:S="none",flipAlignment:w=!0,...C}=ns(e,t);if((n=a.arrow)!=null&&n.alignmentOffset)return{};const k=rs(s),M=mi(u),R=rs(u)===u,T=await(d.isRTL==null?void 0:d.isRTL(h.floating)),L=_||(R||!w?[Zd(u)]:uj(u)),O=S!=="none";!_&&O&&L.push(...pj(u,w,S,T));const z=[u,...L],B=await d.detectOverflow(t,C),X=[];let P=((r=a.flip)==null?void 0:r.overflows)||[];if(p&&X.push(B[k]),m){const K=cj(s,l,T);X.push(B[K[0]],B[K[1]])}if(P=[...P,{placement:s,overflows:X}],!X.every(K=>K<=0)){var q,U;const K=(((q=a.flip)==null?void 0:q.index)||0)+1,$=z[K];if($&&(!(m==="alignment"?M!==mi($):!1)||P.every(W=>mi(W.placement)===M?W.overflows[0]>0:!0)))return{data:{index:K,overflows:P},reset:{placement:$}};let j=(U=P.filter(H=>H.overflows[0]<=0).sort((H,W)=>H.overflows[1]-W.overflows[1])[0])==null?void 0:U.placement;if(!j)switch(b){case"bestFit":{var F;const H=(F=P.filter(W=>{if(O){const Q=mi(W.placement);return Q===M||Q==="y"}return!0}).map(W=>[W.placement,W.overflows.filter(Q=>Q>0).reduce((Q,A)=>Q+A,0)]).sort((W,Q)=>W[1]-Q[1])[0])==null?void 0:F[0];H&&(j=H);break}case"initialPlacement":j=u;break}if(s!==j)return{reset:{placement:j}}}return{}}}};function Rw(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function Mw(e){return aj.some(t=>e[t]>=0)}const xj=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n,platform:r}=t,{strategy:s="referenceHidden",...a}=ns(e,t);switch(s){case"referenceHidden":{const l=await r.detectOverflow(t,{...a,elementContext:"reference"}),u=Rw(l,n.reference);return{data:{referenceHiddenOffsets:u,referenceHidden:Mw(u)}}}case"escaped":{const l=await r.detectOverflow(t,{...a,altBoundary:!0}),u=Rw(l,n.floating);return{data:{escapedOffsets:u,escaped:Mw(u)}}}default:return{}}}}},ZE=new Set(["left","top"]);async function Sj(e,t){const{placement:n,platform:r,elements:s}=e,a=await(r.isRTL==null?void 0:r.isRTL(s.floating)),l=rs(n),u=fl(n),d=mi(n)==="y",h=ZE.has(l)?-1:1,p=a&&d?-1:1,m=ns(t,e);let{mainAxis:_,crossAxis:b,alignmentAxis:S}=typeof m=="number"?{mainAxis:m,crossAxis:0,alignmentAxis:null}:{mainAxis:m.mainAxis||0,crossAxis:m.crossAxis||0,alignmentAxis:m.alignmentAxis};return u&&typeof S=="number"&&(b=u==="end"?S*-1:S),d?{x:b*p,y:_*h}:{x:_*h,y:b*p}}const wj=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:s,y:a,placement:l,middlewareData:u}=t,d=await Sj(t,e);return l===((n=u.offset)==null?void 0:n.placement)&&(r=u.arrow)!=null&&r.alignmentOffset?{}:{x:s+d.x,y:a+d.y,data:{...d,placement:l}}}}},Cj=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:s,platform:a}=t,{mainAxis:l=!0,crossAxis:u=!1,limiter:d={fn:k=>{let{x:M,y:R}=k;return{x:M,y:R}}},...h}=ns(e,t),p={x:n,y:r},m=await a.detectOverflow(t,h),_=mi(rs(s)),b=xy(_);let S=p[b],w=p[_];if(l){const k=b==="y"?"top":"left",M=b==="y"?"bottom":"right",R=S+m[k],T=S-m[M];S=Dv(R,S,T)}if(u){const k=_==="y"?"top":"left",M=_==="y"?"bottom":"right",R=w+m[k],T=w-m[M];w=Dv(R,w,T)}const C=d.fn({...t,[b]:S,[_]:w});return{...C,data:{x:C.x-n,y:C.y-r,enabled:{[b]:l,[_]:u}}}}}},kj=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:s,rects:a,middlewareData:l}=t,{offset:u=0,mainAxis:d=!0,crossAxis:h=!0}=ns(e,t),p={x:n,y:r},m=mi(s),_=xy(m);let b=p[_],S=p[m];const w=ns(u,t),C=typeof w=="number"?{mainAxis:w,crossAxis:0}:{mainAxis:0,crossAxis:0,...w};if(d){const R=_==="y"?"height":"width",T=a.reference[_]-a.floating[R]+C.mainAxis,L=a.reference[_]+a.reference[R]-C.mainAxis;b<T?b=T:b>L&&(b=L)}if(h){var k,M;const R=_==="y"?"width":"height",T=ZE.has(rs(s)),L=a.reference[m]-a.floating[R]+(T&&((k=l.offset)==null?void 0:k[m])||0)+(T?0:C.crossAxis),O=a.reference[m]+a.reference[R]+(T?0:((M=l.offset)==null?void 0:M[m])||0)-(T?C.crossAxis:0);S<L?S=L:S>O&&(S=O)}return{[_]:b,[m]:S}}}},Ej=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:s,rects:a,platform:l,elements:u}=t,{apply:d=()=>{},...h}=ns(e,t),p=await l.detectOverflow(t,h),m=rs(s),_=fl(s),b=mi(s)==="y",{width:S,height:w}=a.floating;let C,k;m==="top"||m==="bottom"?(C=m,k=_===(await(l.isRTL==null?void 0:l.isRTL(u.floating))?"start":"end")?"left":"right"):(k=m,C=_==="end"?"top":"bottom");const M=w-p.top-p.bottom,R=S-p.left-p.right,T=Gs(w-p[C],M),L=Gs(S-p[k],R),O=!t.middlewareData.shift;let z=T,B=L;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(B=R),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(z=M),O&&!_){const P=pr(p.left,0),q=pr(p.right,0),U=pr(p.top,0),F=pr(p.bottom,0);b?B=S-2*(P!==0||q!==0?P+q:pr(p.left,p.right)):z=w-2*(U!==0||F!==0?U+F:pr(p.top,p.bottom))}await d({...t,availableWidth:B,availableHeight:z});const X=await l.getDimensions(u.floating);return S!==X.width||w!==X.height?{reset:{rects:!0}}:{}}}};function Af(){return typeof window<"u"}function pl(e){return QE(e)?(e.nodeName||"").toLowerCase():"#document"}function mr(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Ei(e){var t;return(t=(QE(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function QE(e){return Af()?e instanceof Node||e instanceof mr(e).Node:!1}function Qr(e){return Af()?e instanceof Element||e instanceof mr(e).Element:!1}function ss(e){return Af()?e instanceof HTMLElement||e instanceof mr(e).HTMLElement:!1}function Tw(e){return!Af()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof mr(e).ShadowRoot}function _u(e){const{overflow:t,overflowX:n,overflowY:r,display:s}=Jr(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&s!=="inline"&&s!=="contents"}function Rj(e){return/^(table|td|th)$/.test(pl(e))}function Nf(e){try{if(e.matches(":popover-open"))return!0}catch{}try{return e.matches(":modal")}catch{return!1}}const Mj=/transform|translate|scale|rotate|perspective|filter/,Tj=/paint|layout|strict|content/,wo=e=>!!e&&e!=="none";let Dg;function Cy(e){const t=Qr(e)?Jr(e):e;return wo(t.transform)||wo(t.translate)||wo(t.scale)||wo(t.rotate)||wo(t.perspective)||!ky()&&(wo(t.backdropFilter)||wo(t.filter))||Mj.test(t.willChange||"")||Tj.test(t.contain||"")}function Aj(e){let t=Ys(e);for(;ss(t)&&!il(t);){if(Cy(t))return t;if(Nf(t))return null;t=Ys(t)}return null}function ky(){return Dg==null&&(Dg=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),Dg}function il(e){return/^(html|body|#document)$/.test(pl(e))}function Jr(e){return mr(e).getComputedStyle(e)}function Df(e){return Qr(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Ys(e){if(pl(e)==="html")return e;const t=e.assignedSlot||e.parentNode||Tw(e)&&e.host||Ei(e);return Tw(t)?t.host:t}function JE(e){const t=Ys(e);return il(t)?e.ownerDocument?e.ownerDocument.body:e.body:ss(t)&&_u(t)?t:JE(t)}function Zc(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const s=JE(e),a=s===((r=e.ownerDocument)==null?void 0:r.body),l=mr(s);if(a){const u=Lv(l);return t.concat(l,l.visualViewport||[],_u(s)?s:[],u&&n?Zc(u):[])}else return t.concat(s,Zc(s,[],n))}function Lv(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function eR(e){const t=Jr(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const s=ss(e),a=s?e.offsetWidth:n,l=s?e.offsetHeight:r,u=Xd(n)!==a||Xd(r)!==l;return u&&(n=a,r=l),{width:n,height:r,$:u}}function Ey(e){return Qr(e)?e:e.contextElement}function Za(e){const t=Ey(e);if(!ss(t))return yi(1);const n=t.getBoundingClientRect(),{width:r,height:s,$:a}=eR(t);let l=(a?Xd(n.width):n.width)/r,u=(a?Xd(n.height):n.height)/s;return(!l||!Number.isFinite(l))&&(l=1),(!u||!Number.isFinite(u))&&(u=1),{x:l,y:u}}const Nj=yi(0);function tR(e){const t=mr(e);return!ky()||!t.visualViewport?Nj:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function Dj(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==mr(e)?!1:t}function Po(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const s=e.getBoundingClientRect(),a=Ey(e);let l=yi(1);t&&(r?Qr(r)&&(l=Za(r)):l=Za(e));const u=Dj(a,n,r)?tR(a):yi(0);let d=(s.left+u.x)/l.x,h=(s.top+u.y)/l.y,p=s.width/l.x,m=s.height/l.y;if(a){const _=mr(a),b=r&&Qr(r)?mr(r):r;let S=_,w=Lv(S);for(;w&&r&&b!==S;){const C=Za(w),k=w.getBoundingClientRect(),M=Jr(w),R=k.left+(w.clientLeft+parseFloat(M.paddingLeft))*C.x,T=k.top+(w.clientTop+parseFloat(M.paddingTop))*C.y;d*=C.x,h*=C.y,p*=C.x,m*=C.y,d+=R,h+=T,S=mr(w),w=Lv(S)}}return Qd({width:p,height:m,x:d,y:h})}function Of(e,t){const n=Df(e).scrollLeft;return t?t.left+n:Po(Ei(e)).left+n}function nR(e,t){const n=e.getBoundingClientRect(),r=n.left+t.scrollLeft-Of(e,n),s=n.top+t.scrollTop;return{x:r,y:s}}function Oj(e){let{elements:t,rect:n,offsetParent:r,strategy:s}=e;const a=s==="fixed",l=Ei(r),u=t?Nf(t.floating):!1;if(r===l||u&&a)return n;let d={scrollLeft:0,scrollTop:0},h=yi(1);const p=yi(0),m=ss(r);if((m||!m&&!a)&&((pl(r)!=="body"||_u(l))&&(d=Df(r)),m)){const b=Po(r);h=Za(r),p.x=b.x+r.clientLeft,p.y=b.y+r.clientTop}const _=l&&!m&&!a?nR(l,d):yi(0);return{width:n.width*h.x,height:n.height*h.y,x:n.x*h.x-d.scrollLeft*h.x+p.x+_.x,y:n.y*h.y-d.scrollTop*h.y+p.y+_.y}}function Lj(e){return Array.from(e.getClientRects())}function zj(e){const t=Ei(e),n=Df(e),r=e.ownerDocument.body,s=pr(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=pr(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let l=-n.scrollLeft+Of(e);const u=-n.scrollTop;return Jr(r).direction==="rtl"&&(l+=pr(t.clientWidth,r.clientWidth)-s),{width:s,height:a,x:l,y:u}}const Aw=25;function jj(e,t){const n=mr(e),r=Ei(e),s=n.visualViewport;let a=r.clientWidth,l=r.clientHeight,u=0,d=0;if(s){a=s.width,l=s.height;const p=ky();(!p||p&&t==="fixed")&&(u=s.offsetLeft,d=s.offsetTop)}const h=Of(r);if(h<=0){const p=r.ownerDocument,m=p.body,_=getComputedStyle(m),b=p.compatMode==="CSS1Compat"&&parseFloat(_.marginLeft)+parseFloat(_.marginRight)||0,S=Math.abs(r.clientWidth-m.clientWidth-b);S<=Aw&&(a-=S)}else h<=Aw&&(a+=h);return{width:a,height:l,x:u,y:d}}function Bj(e,t){const n=Po(e,!0,t==="fixed"),r=n.top+e.clientTop,s=n.left+e.clientLeft,a=ss(e)?Za(e):yi(1),l=e.clientWidth*a.x,u=e.clientHeight*a.y,d=s*a.x,h=r*a.y;return{width:l,height:u,x:d,y:h}}function Nw(e,t,n){let r;if(t==="viewport")r=jj(e,n);else if(t==="document")r=zj(Ei(e));else if(Qr(t))r=Bj(t,n);else{const s=tR(e);r={x:t.x-s.x,y:t.y-s.y,width:t.width,height:t.height}}return Qd(r)}function rR(e,t){const n=Ys(e);return n===t||!Qr(n)||il(n)?!1:Jr(n).position==="fixed"||rR(n,t)}function Pj(e,t){const n=t.get(e);if(n)return n;let r=Zc(e,[],!1).filter(u=>Qr(u)&&pl(u)!=="body"),s=null;const a=Jr(e).position==="fixed";let l=a?Ys(e):e;for(;Qr(l)&&!il(l);){const u=Jr(l),d=Cy(l);!d&&u.position==="fixed"&&(s=null),(a?!d&&!s:!d&&u.position==="static"&&!!s&&(s.position==="absolute"||s.position==="fixed")||_u(l)&&!d&&rR(e,l))?r=r.filter(p=>p!==l):s=u,l=Ys(l)}return t.set(e,r),r}function Ij(e){let{element:t,boundary:n,rootBoundary:r,strategy:s}=e;const l=[...n==="clippingAncestors"?Nf(t)?[]:Pj(t,this._c):[].concat(n),r],u=Nw(t,l[0],s);let d=u.top,h=u.right,p=u.bottom,m=u.left;for(let _=1;_<l.length;_++){const b=Nw(t,l[_],s);d=pr(b.top,d),h=Gs(b.right,h),p=Gs(b.bottom,p),m=pr(b.left,m)}return{width:h-m,height:p-d,x:m,y:d}}function Hj(e){const{width:t,height:n}=eR(e);return{width:t,height:n}}function Fj(e,t,n){const r=ss(t),s=Ei(t),a=n==="fixed",l=Po(e,!0,a,t);let u={scrollLeft:0,scrollTop:0};const d=yi(0);function h(){d.x=Of(s)}if(r||!r&&!a)if((pl(t)!=="body"||_u(s))&&(u=Df(t)),r){const b=Po(t,!0,a,t);d.x=b.x+t.clientLeft,d.y=b.y+t.clientTop}else s&&h();a&&!r&&s&&h();const p=s&&!r&&!a?nR(s,u):yi(0),m=l.left+u.scrollLeft-d.x-p.x,_=l.top+u.scrollTop-d.y-p.y;return{x:m,y:_,width:l.width,height:l.height}}function Og(e){return Jr(e).position==="static"}function Dw(e,t){if(!ss(e)||Jr(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return Ei(e)===n&&(n=n.ownerDocument.body),n}function iR(e,t){const n=mr(e);if(Nf(e))return n;if(!ss(e)){let s=Ys(e);for(;s&&!il(s);){if(Qr(s)&&!Og(s))return s;s=Ys(s)}return n}let r=Dw(e,t);for(;r&&Rj(r)&&Og(r);)r=Dw(r,t);return r&&il(r)&&Og(r)&&!Cy(r)?n:r||Aj(e)||n}const Uj=async function(e){const t=this.getOffsetParent||iR,n=this.getDimensions,r=await n(e.floating);return{reference:Fj(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function $j(e){return Jr(e).direction==="rtl"}const Wj={convertOffsetParentRelativeRectToViewportRelativeRect:Oj,getDocumentElement:Ei,getClippingRect:Ij,getOffsetParent:iR,getElementRects:Uj,getClientRects:Lj,getDimensions:Hj,getScale:Za,isElement:Qr,isRTL:$j};function sR(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function qj(e,t){let n=null,r;const s=Ei(e);function a(){var u;clearTimeout(r),(u=n)==null||u.disconnect(),n=null}function l(u,d){u===void 0&&(u=!1),d===void 0&&(d=1),a();const h=e.getBoundingClientRect(),{left:p,top:m,width:_,height:b}=h;if(u||t(),!_||!b)return;const S=td(m),w=td(s.clientWidth-(p+_)),C=td(s.clientHeight-(m+b)),k=td(p),R={rootMargin:-S+"px "+-w+"px "+-C+"px "+-k+"px",threshold:pr(0,Gs(1,d))||1};let T=!0;function L(O){const z=O[0].intersectionRatio;if(z!==d){if(!T)return l();z?l(!1,z):r=setTimeout(()=>{l(!1,1e-7)},1e3)}z===1&&!sR(h,e.getBoundingClientRect())&&l(),T=!1}try{n=new IntersectionObserver(L,{...R,root:s.ownerDocument})}catch{n=new IntersectionObserver(L,R)}n.observe(e)}return l(!0),a}function Vj(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:s=!0,ancestorResize:a=!0,elementResize:l=typeof ResizeObserver=="function",layoutShift:u=typeof IntersectionObserver=="function",animationFrame:d=!1}=r,h=Ey(e),p=s||a?[...h?Zc(h):[],...t?Zc(t):[]]:[];p.forEach(k=>{s&&k.addEventListener("scroll",n,{passive:!0}),a&&k.addEventListener("resize",n)});const m=h&&u?qj(h,n):null;let _=-1,b=null;l&&(b=new ResizeObserver(k=>{let[M]=k;M&&M.target===h&&b&&t&&(b.unobserve(t),cancelAnimationFrame(_),_=requestAnimationFrame(()=>{var R;(R=b)==null||R.observe(t)})),n()}),h&&!d&&b.observe(h),t&&b.observe(t));let S,w=d?Po(e):null;d&&C();function C(){const k=Po(e);w&&!sR(w,k)&&n(),w=k,S=requestAnimationFrame(C)}return n(),()=>{var k;p.forEach(M=>{s&&M.removeEventListener("scroll",n),a&&M.removeEventListener("resize",n)}),m==null||m(),(k=b)==null||k.disconnect(),b=null,d&&cancelAnimationFrame(S)}}const Kj=wj,Gj=Cj,Yj=bj,Xj=Ej,Zj=xj,Ow=yj,Qj=kj,Jj=(e,t,n)=>{const r=new Map,s={platform:Wj,...n},a={...s.platform,_c:r};return _j(e,t,{...s,platform:a})};var eB=typeof document<"u",tB=function(){},Md=eB?x.useLayoutEffect:tB;function Jd(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,r,s;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!Jd(e[r],t[r]))return!1;return!0}if(s=Object.keys(e),n=s.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,s[r]))return!1;for(r=n;r--!==0;){const a=s[r];if(!(a==="_owner"&&e.$$typeof)&&!Jd(e[a],t[a]))return!1}return!0}return e!==e&&t!==t}function oR(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Lw(e,t){const n=oR(e);return Math.round(t*n)/n}function Lg(e){const t=x.useRef(e);return Md(()=>{t.current=e}),t}function nB(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:s,elements:{reference:a,floating:l}={},transform:u=!0,whileElementsMounted:d,open:h}=e,[p,m]=x.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[_,b]=x.useState(r);Jd(_,r)||b(r);const[S,w]=x.useState(null),[C,k]=x.useState(null),M=x.useCallback(W=>{W!==O.current&&(O.current=W,w(W))},[]),R=x.useCallback(W=>{W!==z.current&&(z.current=W,k(W))},[]),T=a||S,L=l||C,O=x.useRef(null),z=x.useRef(null),B=x.useRef(p),X=d!=null,P=Lg(d),q=Lg(s),U=Lg(h),F=x.useCallback(()=>{if(!O.current||!z.current)return;const W={placement:t,strategy:n,middleware:_};q.current&&(W.platform=q.current),Jj(O.current,z.current,W).then(Q=>{const A={...Q,isPositioned:U.current!==!1};K.current&&!Jd(B.current,A)&&(B.current=A,$s.flushSync(()=>{m(A)}))})},[_,t,n,q,U]);Md(()=>{h===!1&&B.current.isPositioned&&(B.current.isPositioned=!1,m(W=>({...W,isPositioned:!1})))},[h]);const K=x.useRef(!1);Md(()=>(K.current=!0,()=>{K.current=!1}),[]),Md(()=>{if(T&&(O.current=T),L&&(z.current=L),T&&L){if(P.current)return P.current(T,L,F);F()}},[T,L,F,P,X]);const $=x.useMemo(()=>({reference:O,floating:z,setReference:M,setFloating:R}),[M,R]),j=x.useMemo(()=>({reference:T,floating:L}),[T,L]),H=x.useMemo(()=>{const W={position:n,left:0,top:0};if(!j.floating)return W;const Q=Lw(j.floating,p.x),A=Lw(j.floating,p.y);return u?{...W,transform:"translate("+Q+"px, "+A+"px)",...oR(j.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:Q,top:A}},[n,u,j.floating,p.x,p.y]);return x.useMemo(()=>({...p,update:F,refs:$,elements:j,floatingStyles:H}),[p,F,$,j,H])}const rB=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:r,padding:s}=typeof e=="function"?e(n):e;return r&&t(r)?r.current!=null?Ow({element:r.current,padding:s}).fn(n):{}:r?Ow({element:r,padding:s}).fn(n):{}}}},iB=(e,t)=>{const n=Kj(e);return{name:n.name,fn:n.fn,options:[e,t]}},sB=(e,t)=>{const n=Gj(e);return{name:n.name,fn:n.fn,options:[e,t]}},oB=(e,t)=>({fn:Qj(e).fn,options:[e,t]}),aB=(e,t)=>{const n=Yj(e);return{name:n.name,fn:n.fn,options:[e,t]}},lB=(e,t)=>{const n=Xj(e);return{name:n.name,fn:n.fn,options:[e,t]}},cB=(e,t)=>{const n=Zj(e);return{name:n.name,fn:n.fn,options:[e,t]}},uB=(e,t)=>{const n=rB(e);return{name:n.name,fn:n.fn,options:[e,t]}};var hB="Arrow",aR=x.forwardRef((e,t)=>{const{children:n,width:r=10,height:s=5,...a}=e;return v.jsx(wt.svg,{...a,ref:t,width:r,height:s,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:v.jsx("polygon",{points:"0,0 30,0 15,10"})})});aR.displayName=hB;var dB=aR;function fB(e){const[t,n]=x.useState(void 0);return Ks(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(s=>{if(!Array.isArray(s)||!s.length)return;const a=s[0];let l,u;if("borderBoxSize"in a){const d=a.borderBoxSize,h=Array.isArray(d)?d[0]:d;l=h.inlineSize,u=h.blockSize}else l=e.offsetWidth,u=e.offsetHeight;n({width:l,height:u})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}var Ry="Popper",[lR,ml]=Qs(Ry),[pB,cR]=lR(Ry),uR=e=>{const{__scopePopper:t,children:n}=e,[r,s]=x.useState(null);return v.jsx(pB,{scope:t,anchor:r,onAnchorChange:s,children:n})};uR.displayName=Ry;var hR="PopperAnchor",dR=x.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...s}=e,a=cR(hR,n),l=x.useRef(null),u=Pt(t,l),d=x.useRef(null);return x.useEffect(()=>{const h=d.current;d.current=(r==null?void 0:r.current)||l.current,h!==d.current&&a.onAnchorChange(d.current)}),r?null:v.jsx(wt.div,{...s,ref:u})});dR.displayName=hR;var My="PopperContent",[mB,gB]=lR(My),fR=x.forwardRef((e,t)=>{var ge,Re,pe,he,Te,He;const{__scopePopper:n,side:r="bottom",sideOffset:s=0,align:a="center",alignOffset:l=0,arrowPadding:u=0,avoidCollisions:d=!0,collisionBoundary:h=[],collisionPadding:p=0,sticky:m="partial",hideWhenDetached:_=!1,updatePositionStrategy:b="optimized",onPlaced:S,...w}=e,C=cR(My,n),[k,M]=x.useState(null),R=Pt(t,Me=>M(Me)),[T,L]=x.useState(null),O=fB(T),z=(O==null?void 0:O.width)??0,B=(O==null?void 0:O.height)??0,X=r+(a!=="center"?"-"+a:""),P=typeof p=="number"?p:{top:0,right:0,bottom:0,left:0,...p},q=Array.isArray(h)?h:[h],U=q.length>0,F={padding:P,boundary:q.filter(_B),altBoundary:U},{refs:K,floatingStyles:$,placement:j,isPositioned:H,middlewareData:W}=nB({strategy:"fixed",placement:X,whileElementsMounted:(...Me)=>Vj(...Me,{animationFrame:b==="always"}),elements:{reference:C.anchor},middleware:[iB({mainAxis:s+B,alignmentAxis:l}),d&&sB({mainAxis:!0,crossAxis:!1,limiter:m==="partial"?oB():void 0,...F}),d&&aB({...F}),lB({...F,apply:({elements:Me,rects:Ke,availableWidth:Dt,availableHeight:mn})=>{const{width:Fr,height:Ur}=Ke.reference,gn=Me.floating.style;gn.setProperty("--radix-popper-available-width",`${Dt}px`),gn.setProperty("--radix-popper-available-height",`${mn}px`),gn.setProperty("--radix-popper-anchor-width",`${Fr}px`),gn.setProperty("--radix-popper-anchor-height",`${Ur}px`)}}),T&&uB({element:T,padding:u}),yB({arrowWidth:z,arrowHeight:B}),_&&cB({strategy:"referenceHidden",...F})]}),[Q,A]=gR(j),I=Si(S);Ks(()=>{H&&(I==null||I())},[H,I]);const Z=(ge=W.arrow)==null?void 0:ge.x,N=(Re=W.arrow)==null?void 0:Re.y,G=((pe=W.arrow)==null?void 0:pe.centerOffset)!==0,[re,ie]=x.useState();return Ks(()=>{k&&ie(window.getComputedStyle(k).zIndex)},[k]),v.jsx("div",{ref:K.setFloating,"data-radix-popper-content-wrapper":"",style:{...$,transform:H?$.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:re,"--radix-popper-transform-origin":[(he=W.transformOrigin)==null?void 0:he.x,(Te=W.transformOrigin)==null?void 0:Te.y].join(" "),...((He=W.hide)==null?void 0:He.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:v.jsx(mB,{scope:n,placedSide:Q,onArrowChange:L,arrowX:Z,arrowY:N,shouldHideArrow:G,children:v.jsx(wt.div,{"data-side":Q,"data-align":A,...w,ref:R,style:{...w.style,animation:H?void 0:"none"}})})})});fR.displayName=My;var pR="PopperArrow",vB={top:"bottom",right:"left",bottom:"top",left:"right"},mR=x.forwardRef(function(t,n){const{__scopePopper:r,...s}=t,a=gB(pR,r),l=vB[a.placedSide];return v.jsx("span",{ref:a.onArrowChange,style:{position:"absolute",left:a.arrowX,top:a.arrowY,[l]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[a.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[a.placedSide],visibility:a.shouldHideArrow?"hidden":void 0},children:v.jsx(dB,{...s,ref:n,style:{...s.style,display:"block"}})})});mR.displayName=pR;function _B(e){return e!==null}var yB=e=>({name:"transformOrigin",options:e,fn(t){var C,k,M;const{placement:n,rects:r,middlewareData:s}=t,l=((C=s.arrow)==null?void 0:C.centerOffset)!==0,u=l?0:e.arrowWidth,d=l?0:e.arrowHeight,[h,p]=gR(n),m={start:"0%",center:"50%",end:"100%"}[p],_=(((k=s.arrow)==null?void 0:k.x)??0)+u/2,b=(((M=s.arrow)==null?void 0:M.y)??0)+d/2;let S="",w="";return h==="bottom"?(S=l?m:`${_}px`,w=`${-d}px`):h==="top"?(S=l?m:`${_}px`,w=`${r.floating.height+d}px`):h==="right"?(S=`${-d}px`,w=l?m:`${b}px`):h==="left"&&(S=`${r.floating.width+d}px`,w=l?m:`${b}px`),{data:{x:S,y:w}}}});function gR(e){const[t,n="center"]=e.split("-");return[t,n]}var Ty=uR,Lf=dR,Ay=fR,Ny=mR,bB=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),xB="VisuallyHidden",vR=x.forwardRef((e,t)=>v.jsx(wt.span,{...e,ref:t,style:{...bB,...e.style}}));vR.displayName=xB;var SB=vR,[zf]=Qs("Tooltip",[ml]),jf=ml(),_R="TooltipProvider",wB=700,zv="tooltip.open",[CB,Dy]=zf(_R),yR=e=>{const{__scopeTooltip:t,delayDuration:n=wB,skipDelayDuration:r=300,disableHoverableContent:s=!1,children:a}=e,l=x.useRef(!0),u=x.useRef(!1),d=x.useRef(0);return x.useEffect(()=>{const h=d.current;return()=>window.clearTimeout(h)},[]),v.jsx(CB,{scope:t,isOpenDelayedRef:l,delayDuration:n,onOpen:x.useCallback(()=>{window.clearTimeout(d.current),l.current=!1},[]),onClose:x.useCallback(()=>{window.clearTimeout(d.current),d.current=window.setTimeout(()=>l.current=!0,r)},[r]),isPointerInTransitRef:u,onPointerInTransitChange:x.useCallback(h=>{u.current=h},[]),disableHoverableContent:s,children:a})};yR.displayName=_R;var Qc="Tooltip",[kB,yu]=zf(Qc),bR=e=>{const{__scopeTooltip:t,children:n,open:r,defaultOpen:s,onOpenChange:a,disableHoverableContent:l,delayDuration:u}=e,d=Dy(Qc,e.__scopeTooltip),h=jf(t),[p,m]=x.useState(null),_=Ya(),b=x.useRef(0),S=l??d.disableHoverableContent,w=u??d.delayDuration,C=x.useRef(!1),[k,M]=Cf({prop:r,defaultProp:s??!1,onChange:z=>{z?(d.onOpen(),document.dispatchEvent(new CustomEvent(zv))):d.onClose(),a==null||a(z)},caller:Qc}),R=x.useMemo(()=>k?C.current?"delayed-open":"instant-open":"closed",[k]),T=x.useCallback(()=>{window.clearTimeout(b.current),b.current=0,C.current=!1,M(!0)},[M]),L=x.useCallback(()=>{window.clearTimeout(b.current),b.current=0,M(!1)},[M]),O=x.useCallback(()=>{window.clearTimeout(b.current),b.current=window.setTimeout(()=>{C.current=!0,M(!0),b.current=0},w)},[w,M]);return x.useEffect(()=>()=>{b.current&&(window.clearTimeout(b.current),b.current=0)},[]),v.jsx(Ty,{...h,children:v.jsx(kB,{scope:t,contentId:_,open:k,stateAttribute:R,trigger:p,onTriggerChange:m,onTriggerEnter:x.useCallback(()=>{d.isOpenDelayedRef.current?O():T()},[d.isOpenDelayedRef,O,T]),onTriggerLeave:x.useCallback(()=>{S?L():(window.clearTimeout(b.current),b.current=0)},[L,S]),onOpen:T,onClose:L,disableHoverableContent:S,children:n})})};bR.displayName=Qc;var jv="TooltipTrigger",xR=x.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,s=yu(jv,n),a=Dy(jv,n),l=jf(n),u=x.useRef(null),d=Pt(t,u,s.onTriggerChange),h=x.useRef(!1),p=x.useRef(!1),m=x.useCallback(()=>h.current=!1,[]);return x.useEffect(()=>()=>document.removeEventListener("pointerup",m),[m]),v.jsx(Lf,{asChild:!0,...l,children:v.jsx(wt.button,{"aria-describedby":s.open?s.contentId:void 0,"data-state":s.stateAttribute,...r,ref:d,onPointerMove:Oe(e.onPointerMove,_=>{_.pointerType!=="touch"&&!p.current&&!a.isPointerInTransitRef.current&&(s.onTriggerEnter(),p.current=!0)}),onPointerLeave:Oe(e.onPointerLeave,()=>{s.onTriggerLeave(),p.current=!1}),onPointerDown:Oe(e.onPointerDown,()=>{s.open&&s.onClose(),h.current=!0,document.addEventListener("pointerup",m,{once:!0})}),onFocus:Oe(e.onFocus,()=>{h.current||s.onOpen()}),onBlur:Oe(e.onBlur,s.onClose),onClick:Oe(e.onClick,s.onClose)})})});xR.displayName=jv;var Oy="TooltipPortal",[EB,RB]=zf(Oy,{forceMount:void 0}),SR=e=>{const{__scopeTooltip:t,forceMount:n,children:r,container:s}=e,a=yu(Oy,t);return v.jsx(EB,{scope:t,forceMount:n,children:v.jsx(Hr,{present:n||a.open,children:v.jsx(gu,{asChild:!0,container:s,children:r})})})};SR.displayName=Oy;var sl="TooltipContent",wR=x.forwardRef((e,t)=>{const n=RB(sl,e.__scopeTooltip),{forceMount:r=n.forceMount,side:s="top",...a}=e,l=yu(sl,e.__scopeTooltip);return v.jsx(Hr,{present:r||l.open,children:l.disableHoverableContent?v.jsx(CR,{side:s,...a,ref:t}):v.jsx(MB,{side:s,...a,ref:t})})}),MB=x.forwardRef((e,t)=>{const n=yu(sl,e.__scopeTooltip),r=Dy(sl,e.__scopeTooltip),s=x.useRef(null),a=Pt(t,s),[l,u]=x.useState(null),{trigger:d,onClose:h}=n,p=s.current,{onPointerInTransitChange:m}=r,_=x.useCallback(()=>{u(null),m(!1)},[m]),b=x.useCallback((S,w)=>{const C=S.currentTarget,k={x:S.clientX,y:S.clientY},M=OB(k,C.getBoundingClientRect()),R=LB(k,M),T=zB(w.getBoundingClientRect()),L=BB([...R,...T]);u(L),m(!0)},[m]);return x.useEffect(()=>()=>_(),[_]),x.useEffect(()=>{if(d&&p){const S=C=>b(C,p),w=C=>b(C,d);return d.addEventListener("pointerleave",S),p.addEventListener("pointerleave",w),()=>{d.removeEventListener("pointerleave",S),p.removeEventListener("pointerleave",w)}}},[d,p,b,_]),x.useEffect(()=>{if(l){const S=w=>{const C=w.target,k={x:w.clientX,y:w.clientY},M=(d==null?void 0:d.contains(C))||(p==null?void 0:p.contains(C)),R=!jB(k,l);M?_():R&&(_(),h())};return document.addEventListener("pointermove",S),()=>document.removeEventListener("pointermove",S)}},[d,p,l,h,_]),v.jsx(CR,{...e,ref:a})}),[TB,AB]=zf(Qc,{isInside:!1}),NB=HO("TooltipContent"),CR=x.forwardRef((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":s,onEscapeKeyDown:a,onPointerDownOutside:l,...u}=e,d=yu(sl,n),h=jf(n),{onClose:p}=d;return x.useEffect(()=>(document.addEventListener(zv,p),()=>document.removeEventListener(zv,p)),[p]),x.useEffect(()=>{if(d.trigger){const m=_=>{const b=_.target;b!=null&&b.contains(d.trigger)&&p()};return window.addEventListener("scroll",m,{capture:!0}),()=>window.removeEventListener("scroll",m,{capture:!0})}},[d.trigger,p]),v.jsx(mu,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:a,onPointerDownOutside:l,onFocusOutside:m=>m.preventDefault(),onDismiss:p,children:v.jsxs(Ay,{"data-state":d.stateAttribute,...h,...u,ref:t,style:{...u.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[v.jsx(NB,{children:r}),v.jsx(TB,{scope:n,isInside:!0,children:v.jsx(SB,{id:d.contentId,role:"tooltip",children:s||r})})]})})});wR.displayName=sl;var kR="TooltipArrow",DB=x.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,s=jf(n);return AB(kR,n).isInside?null:v.jsx(Ny,{...s,...r,ref:t})});DB.displayName=kR;function OB(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),s=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,s,a)){case a:return"left";case s:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function LB(e,t,n=5){const r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function zB(e){const{top:t,right:n,bottom:r,left:s}=e;return[{x:s,y:t},{x:n,y:t},{x:n,y:r},{x:s,y:r}]}function jB(e,t){const{x:n,y:r}=e;let s=!1;for(let a=0,l=t.length-1;a<t.length;l=a++){const u=t[a],d=t[l],h=u.x,p=u.y,m=d.x,_=d.y;p>r!=_>r&&n<(m-h)*(r-p)/(_-p)+h&&(s=!s)}return s}function BB(e){const t=e.slice();return t.sort((n,r)=>n.x<r.x?-1:n.x>r.x?1:n.y<r.y?-1:n.y>r.y?1:0),PB(t)}function PB(e){if(e.length<=1)return e.slice();const t=[];for(let r=0;r<e.length;r++){const s=e[r];for(;t.length>=2;){const a=t[t.length-1],l=t[t.length-2];if((a.x-l.x)*(s.y-l.y)>=(a.y-l.y)*(s.x-l.x))t.pop();else break}t.push(s)}t.pop();const n=[];for(let r=e.length-1;r>=0;r--){const s=e[r];for(;n.length>=2;){const a=n[n.length-1],l=n[n.length-2];if((a.x-l.x)*(s.y-l.y)>=(a.y-l.y)*(s.x-l.x))n.pop();else break}n.push(s)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var IB=yR,HB=bR,FB=xR,UB=SR,ER=wR;const $B=IB,Jc=HB,eu=FB,ol=x.forwardRef(({className:e,sideOffset:t=4,...n},r)=>v.jsx(UB,{children:v.jsx(ER,{ref:r,sideOffset:t,className:ye("z-50 overflow-hidden rounded-md bg-card text-card-foreground border border-border px-3 py-1.5 text-xs animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...n})}));ol.displayName=ER.displayName;const WB="0.8.1",qB={version:WB},zn="Kanna",zw="kanna",RR=`kanna/${qB.version}`,VB="[kanna]",KB=`~/${zn}`;function nd(e){return e?`${zw} ${e}`:zw}const Bf=({children:e,className:t,shimmerWidth:n=100,animate:r=!0,...s})=>v.jsx("span",{style:{"--shiny-width":`${Math.min(n,100)}px`},className:ye("mx-auto max-w-md text-foreground/50",r?["animate-shiny-text [background-size:var(--shiny-width)_100%] bg-clip-text [background-position:0_0] bg-no-repeat [transition:background-position_1s_cubic-bezier(.6,.6,0,1)_infinite]","bg-gradient-to-r from-transparent via-black/80 via-50% to-transparent dark:via-white/80"]:["text-neutral"],t),...s,children:e});function Bv(e){return e.split(/[\s_-]+/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join(" ")}const GB=[/^(?:\/usr\/bin\/env\s+)?(?:\/bin\/)?(?:bash|zsh|sh)\s+(?:-[a-zA-Z]*c|-c)\s+(['"])([\s\S]*)\1$/,/^(?:\/usr\/bin\/env\s+)?(?:\/bin\/)?(?:bash|zsh|sh)\s+(?:-[a-zA-Z]*c|-c)\s+(.+)$/,/^(?:\/usr\/bin\/env\s+)?(?:cmd(?:\.exe)?)\s+\/c\s+(['"])([\s\S]*)\1$/i,/^(?:\/usr\/bin\/env\s+)?(?:cmd(?:\.exe)?)\s+\/c\s+(.+)$/i,/^(?:\/usr\/bin\/env\s+)?(?:powershell(?:\.exe)?|pwsh)\s+(?:-NoProfile\s+)?-Command\s+(['"])([\s\S]*)\1$/i,/^(?:\/usr\/bin\/env\s+)?(?:powershell(?:\.exe)?|pwsh)\s+(?:-NoProfile\s+)?-Command\s+(.+)$/i];function YB(e){const t=e.trim();for(const n of GB){const r=t.match(n);if(!r)continue;const s=(r[2]??r[1]??"").trim();if(s)return s}return t}function MR(e){return e.split("/").pop()||e}function XB(e,t){if(e===void 0)return null;const n=Math.max(0,t-e),r=6e4,s=60*r,a=24*s,l=7*a;return n<r?"now":n<s?`${Math.floor(n/r)}m`:n<a?`${Math.floor(n/s)}h`:n<l?`${Math.floor(n/a)}d`:`${Math.floor(n/l)}w`}const ZB=new Set(["starting","running"]);function QB({chat:e,activeChatId:t,nowMs:n,onSelectChat:r,onDeleteChat:s}){const a=XB(e.lastMessageAt,n);return v.jsxs("div",{"data-chat-id":rw(e.chatId),className:ye("group flex items-center gap-2 pl-2.5 pr-0.5 py-0.5 rounded-lg cursor-pointer border-border/0 hover:border-border hover:bg-muted/20 active:scale-[0.985] border transition-all",t===rw(e.chatId)?"bg-muted hover:bg-muted border-border":"border-border/0 dark:hover:border-slate-400/10 "),onClick:()=>r(e.chatId),children:[ZB.has(e.status)?v.jsx(Js,{className:"size-3.5 flex-shrink-0 animate-spin text-muted-foreground"}):e.status==="waiting_for_user"?v.jsx("div",{className:"relative ",children:v.jsxs("div",{className:" rounded-full z-0 size-3.5 flex items-center justify-center ",children:[v.jsx("div",{className:"absolute rounded-full z-0 size-2.5 bg-blue-400/80 animate-ping"}),v.jsx("div",{className:" rounded-full z-0 size-2.5 bg-blue-400 ring-2 ring-muted/20 dark:ring-muted/50"})]})}):null,v.jsx("span",{className:"text-sm truncate flex-1 translate-y-[-0.5px]",children:e.status!=="idle"&&e.status!=="waiting_for_user"?v.jsx(Bf,{animate:e.status==="running",shimmerWidth:Math.max(20,e.title.length*3),children:e.title}):e.title}),v.jsxs("div",{className:"relative h-7 w-7 mr-[2px] shrink-0",children:[a?v.jsx("span",{className:"hidden md:flex absolute inset-0 items-center justify-end pr-1 text-[11px] text-muted-foreground opacity-50 transition-opacity group-hover:opacity-0",children:a}):null,v.jsx(et,{variant:"ghost",size:"icon",className:ye("absolute inset-0 h-7 w-7 opacity-100 cursor-pointer rounded-sm hover:!bg-transparent !border-0",a?"md:opacity-0 md:group-hover:opacity-100":"opacity-100 md:opacity-0 md:group-hover:opacity-100"),onClick:l=>{l.stopPropagation(),s(e.chatId)},title:"Delete chat",children:v.jsx(gz,{className:"size-3.5"})})]})]},e._id)}function JB(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return x.useMemo(()=>r=>{t.forEach(s=>s(r))},t)}const Pf=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function gl(e){const t=Object.prototype.toString.call(e);return t==="[object Window]"||t==="[object global]"}function Ly(e){return"nodeType"in e}function tr(e){var t,n;return e?gl(e)?e:Ly(e)&&(t=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?t:window:window}function zy(e){const{Document:t}=tr(e);return e instanceof t}function bu(e){return gl(e)?!1:e instanceof tr(e).HTMLElement}function TR(e){return e instanceof tr(e).SVGElement}function vl(e){return e?gl(e)?e.document:Ly(e)?zy(e)?e:bu(e)||TR(e)?e.ownerDocument:document:document:document}const wi=Pf?x.useLayoutEffect:x.useEffect;function jy(e){const t=x.useRef(e);return wi(()=>{t.current=e}),x.useCallback(function(){for(var n=arguments.length,r=new Array(n),s=0;s<n;s++)r[s]=arguments[s];return t.current==null?void 0:t.current(...r)},[])}function eP(){const e=x.useRef(null),t=x.useCallback((r,s)=>{e.current=setInterval(r,s)},[]),n=x.useCallback(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[]);return[t,n]}function tu(e,t){t===void 0&&(t=[e]);const n=x.useRef(e);return wi(()=>{n.current!==e&&(n.current=e)},t),n}function xu(e,t){const n=x.useRef();return x.useMemo(()=>{const r=e(n.current);return n.current=r,r},[...t])}function ef(e){const t=jy(e),n=x.useRef(null),r=x.useCallback(s=>{s!==n.current&&(t==null||t(s,n.current)),n.current=s},[]);return[n,r]}function Pv(e){const t=x.useRef();return x.useEffect(()=>{t.current=e},[e]),t.current}let zg={};function Su(e,t){return x.useMemo(()=>{if(t)return t;const n=zg[e]==null?0:zg[e]+1;return zg[e]=n,e+"-"+n},[e,t])}function AR(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),s=1;s<n;s++)r[s-1]=arguments[s];return r.reduce((a,l)=>{const u=Object.entries(l);for(const[d,h]of u){const p=a[d];p!=null&&(a[d]=p+e*h)}return a},{...t})}}const Qa=AR(1),tf=AR(-1);function tP(e){return"clientX"in e&&"clientY"in e}function By(e){if(!e)return!1;const{KeyboardEvent:t}=tr(e.target);return t&&e instanceof t}function nP(e){if(!e)return!1;const{TouchEvent:t}=tr(e.target);return t&&e instanceof t}function Iv(e){if(nP(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return tP(e)?{x:e.clientX,y:e.clientY}:null}const nu=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[nu.Translate.toString(e),nu.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}}),jw="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function rP(e){return e.matches(jw)?e:e.querySelector(jw)}const iP={display:"none"};function sP(e){let{id:t,value:n}=e;return vt.createElement("div",{id:t,style:iP},n)}function oP(e){let{id:t,announcement:n,ariaLiveType:r="assertive"}=e;const s={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return vt.createElement("div",{id:t,style:s,role:"status","aria-live":r,"aria-atomic":!0},n)}function aP(){const[e,t]=x.useState("");return{announce:x.useCallback(r=>{r!=null&&t(r)},[]),announcement:e}}const NR=x.createContext(null);function lP(e){const t=x.useContext(NR);x.useEffect(()=>{if(!t)throw new Error("useDndMonitor must be used within a children of <DndContext>");return t(e)},[e,t])}function cP(){const[e]=x.useState(()=>new Set),t=x.useCallback(r=>(e.add(r),()=>e.delete(r)),[e]);return[x.useCallback(r=>{let{type:s,event:a}=r;e.forEach(l=>{var u;return(u=l[s])==null?void 0:u.call(l,a)})},[e]),t]}const uP={draggable:`
420
420
  To pick up a draggable item, press the space bar.
421
421
  While dragging, use the arrow keys to move the item.
422
422
  Press space again to drop the item in its new position, or press escape to cancel.
@@ -500,4 +500,4 @@ WARNING: This link could potentially be dangerous`)){let n=window.open();if(n){t
500
500
  `))}function d(b,S,w,C){const k=w.enter("tableCell"),M=w.enter("phrasing"),R=w.containerPhrasing(b,{...C,before:a,after:a});return M(),k(),R}function h(b,S){return NG(b,{align:S,alignDelimiters:r,padding:n,stringLength:s})}function p(b,S,w){const C=b.children;let k=-1;const M=[],R=S.enter("table");for(;++k<C.length;)M[k]=m(C[k],S,w);return R(),M}function m(b,S,w){const C=b.children;let k=-1;const M=[],R=S.enter("tableRow");for(;++k<C.length;)M[k]=d(C[k],b,S,w);return R(),M}function _(b,S,w){let C=S5.inlineCode(b,S,w);return w.stack.includes("tableCell")&&(C=C.replace(/\|/g,"\\$&")),C}}function _Y(){return{exit:{taskListCheckValueChecked:ck,taskListCheckValueUnchecked:ck,paragraph:bY}}}function yY(){return{unsafe:[{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{listItem:xY}}}function ck(e){const t=this.stack[this.stack.length-2];t.type,t.checked=e.type==="taskListCheckValueChecked"}function bY(e){const t=this.stack[this.stack.length-2];if(t&&t.type==="listItem"&&typeof t.checked=="boolean"){const n=this.stack[this.stack.length-1];n.type;const r=n.children[0];if(r&&r.type==="text"){const s=t.children;let a=-1,l;for(;++a<s.length;){const u=s[a];if(u.type==="paragraph"){l=u;break}}l===n&&(r.value=r.value.slice(1),r.value.length===0?n.children.shift():n.position&&r.position&&typeof r.position.start.offset=="number"&&(r.position.start.column++,r.position.start.offset++,n.position.start=Object.assign({},r.position.start)))}}this.exit(e)}function xY(e,t,n,r){const s=e.children[0],a=typeof e.checked=="boolean"&&s&&s.type==="paragraph",l="["+(e.checked?"x":" ")+"] ",u=n.createTracker(r);a&&u.move(l);let d=S5.listItem(e,t,n,{...r,...u.current()});return a&&(d=d.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,h)),d;function h(p){return p+l}}function SY(){return[eG(),xG(),kG(),hY(),_Y()]}function wY(e){return{extensions:[tG(),SG(e),EG(),vY(e),yY()]}}const CY={tokenize:AY,partial:!0},w5={tokenize:NY,partial:!0},C5={tokenize:DY,partial:!0},k5={tokenize:OY,partial:!0},kY={tokenize:LY,partial:!0},E5={name:"wwwAutolink",tokenize:MY,previous:M5},R5={name:"protocolAutolink",tokenize:TY,previous:T5},ls={name:"emailAutolink",tokenize:RY,previous:A5},Ri={};function EY(){return{text:Ri}}let Mo=48;for(;Mo<123;)Ri[Mo]=ls,Mo++,Mo===58?Mo=65:Mo===91&&(Mo=97);Ri[43]=ls;Ri[45]=ls;Ri[46]=ls;Ri[95]=ls;Ri[72]=[ls,R5];Ri[104]=[ls,R5];Ri[87]=[ls,E5];Ri[119]=[ls,E5];function RY(e,t,n){const r=this;let s,a;return l;function l(m){return!X_(m)||!A5.call(r,r.previous)||Bb(r.events)?n(m):(e.enter("literalAutolink"),e.enter("literalAutolinkEmail"),u(m))}function u(m){return X_(m)?(e.consume(m),u):m===64?(e.consume(m),d):n(m)}function d(m){return m===46?e.check(kY,p,h)(m):m===45||m===95||An(m)?(a=!0,e.consume(m),d):p(m)}function h(m){return e.consume(m),s=!0,d}function p(m){return a&&s&&Bn(r.previous)?(e.exit("literalAutolinkEmail"),e.exit("literalAutolink"),t(m)):n(m)}}function MY(e,t,n){const r=this;return s;function s(l){return l!==87&&l!==119||!M5.call(r,r.previous)||Bb(r.events)?n(l):(e.enter("literalAutolink"),e.enter("literalAutolinkWww"),e.check(CY,e.attempt(w5,e.attempt(C5,a),n),n)(l))}function a(l){return e.exit("literalAutolinkWww"),e.exit("literalAutolink"),t(l)}}function TY(e,t,n){const r=this;let s="",a=!1;return l;function l(m){return(m===72||m===104)&&T5.call(r,r.previous)&&!Bb(r.events)?(e.enter("literalAutolink"),e.enter("literalAutolinkHttp"),s+=String.fromCodePoint(m),e.consume(m),u):n(m)}function u(m){if(Bn(m)&&s.length<5)return s+=String.fromCodePoint(m),e.consume(m),u;if(m===58){const _=s.toLowerCase();if(_==="http"||_==="https")return e.consume(m),d}return n(m)}function d(m){return m===47?(e.consume(m),a?h:(a=!0,d)):n(m)}function h(m){return m===null||gf(m)||mt(m)||Wo(m)||Zf(m)?n(m):e.attempt(w5,e.attempt(C5,p),n)(m)}function p(m){return e.exit("literalAutolinkHttp"),e.exit("literalAutolink"),t(m)}}function AY(e,t,n){let r=0;return s;function s(l){return(l===87||l===119)&&r<3?(r++,e.consume(l),s):l===46&&r===3?(e.consume(l),a):n(l)}function a(l){return l===null?n(l):t(l)}}function NY(e,t,n){let r,s,a;return l;function l(h){return h===46||h===95?e.check(k5,d,u)(h):h===null||mt(h)||Wo(h)||h!==45&&Zf(h)?d(h):(a=!0,e.consume(h),l)}function u(h){return h===95?r=!0:(s=r,r=void 0),e.consume(h),l}function d(h){return s||r||!a?n(h):t(h)}}function DY(e,t){let n=0,r=0;return s;function s(l){return l===40?(n++,e.consume(l),s):l===41&&r<n?a(l):l===33||l===34||l===38||l===39||l===41||l===42||l===44||l===46||l===58||l===59||l===60||l===63||l===93||l===95||l===126?e.check(k5,t,a)(l):l===null||mt(l)||Wo(l)?t(l):(e.consume(l),s)}function a(l){return l===41&&r++,e.consume(l),s}}function OY(e,t,n){return r;function r(u){return u===33||u===34||u===39||u===41||u===42||u===44||u===46||u===58||u===59||u===63||u===95||u===126?(e.consume(u),r):u===38?(e.consume(u),a):u===93?(e.consume(u),s):u===60||u===null||mt(u)||Wo(u)?t(u):n(u)}function s(u){return u===null||u===40||u===91||mt(u)||Wo(u)?t(u):r(u)}function a(u){return Bn(u)?l(u):n(u)}function l(u){return u===59?(e.consume(u),r):Bn(u)?(e.consume(u),l):n(u)}}function LY(e,t,n){return r;function r(a){return e.consume(a),s}function s(a){return An(a)?n(a):t(a)}}function M5(e){return e===null||e===40||e===42||e===95||e===91||e===93||e===126||mt(e)}function T5(e){return!Bn(e)}function A5(e){return!(e===47||X_(e))}function X_(e){return e===43||e===45||e===46||e===95||An(e)}function Bb(e){let t=e.length,n=!1;for(;t--;){const r=e[t][1];if((r.type==="labelLink"||r.type==="labelImage")&&!r._balanced){n=!0;break}if(r._gfmAutolinkLiteralWalkedInto){n=!1;break}}return e.length>0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const zY={tokenize:$Y,partial:!0};function jY(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:HY,continuation:{tokenize:FY},exit:UY}},text:{91:{name:"gfmFootnoteCall",tokenize:IY},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:BY,resolveTo:PY}}}}function BY(e,t,n){const r=this;let s=r.events.length;const a=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let l;for(;s--;){const d=r.events[s][1];if(d.type==="labelImage"){l=d;break}if(d.type==="gfmFootnoteCall"||d.type==="labelLink"||d.type==="label"||d.type==="image"||d.type==="link")break}return u;function u(d){if(!l||!l._balanced)return n(d);const h=Zr(r.sliceSerialize({start:l.end,end:r.now()}));return h.codePointAt(0)!==94||!a.includes(h.slice(1))?n(d):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(d),e.exit("gfmFootnoteCallLabelMarker"),t(d))}}function PY(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},s={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};s.end.column++,s.end.offset++,s.end._bufferIndex++;const a={type:"gfmFootnoteCallString",start:Object.assign({},s.end),end:Object.assign({},e[e.length-1][1].start)},l={type:"chunkString",contentType:"string",start:Object.assign({},a.start),end:Object.assign({},a.end)},u=[e[n+1],e[n+2],["enter",r,t],e[n+3],e[n+4],["enter",s,t],["exit",s,t],["enter",a,t],["enter",l,t],["exit",l,t],["exit",a,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice(n,e.length-n+1,...u),e}function IY(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let a=0,l;return u;function u(m){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(m),e.exit("gfmFootnoteCallLabelMarker"),d}function d(m){return m!==94?n(m):(e.enter("gfmFootnoteCallMarker"),e.consume(m),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",h)}function h(m){if(a>999||m===93&&!l||m===null||m===91||mt(m))return n(m);if(m===93){e.exit("chunkString");const _=e.exit("gfmFootnoteCallString");return s.includes(Zr(r.sliceSerialize(_)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(m),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(m)}return mt(m)||(l=!0),a++,e.consume(m),m===92?p:h}function p(m){return m===91||m===92||m===93?(e.consume(m),a++,h):h(m)}}function HY(e,t,n){const r=this,s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let a,l=0,u;return d;function d(S){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(S),e.exit("gfmFootnoteDefinitionLabelMarker"),h}function h(S){return S===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(S),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",p):n(S)}function p(S){if(l>999||S===93&&!u||S===null||S===91||mt(S))return n(S);if(S===93){e.exit("chunkString");const w=e.exit("gfmFootnoteDefinitionLabelString");return a=Zr(r.sliceSerialize(w)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(S),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),_}return mt(S)||(u=!0),l++,e.consume(S),S===92?m:p}function m(S){return S===91||S===92||S===93?(e.consume(S),l++,p):p(S)}function _(S){return S===58?(e.enter("definitionMarker"),e.consume(S),e.exit("definitionMarker"),s.includes(a)||s.push(a),tt(e,b,"gfmFootnoteDefinitionWhitespace")):n(S)}function b(S){return t(S)}}function FY(e,t,n){return e.check(Du,t,e.attempt(zY,t,n))}function UY(e){e.exit("gfmFootnoteDefinition")}function $Y(e,t,n){const r=this;return tt(e,s,"gfmFootnoteDefinitionIndent",5);function s(a){const l=r.events[r.events.length-1];return l&&l[1].type==="gfmFootnoteDefinitionIndent"&&l[2].sliceSerialize(l[1],!0).length===4?t(a):n(a)}}function WY(e){let n=(e||{}).singleTilde;const r={name:"strikethrough",tokenize:a,resolveAll:s};return n==null&&(n=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function s(l,u){let d=-1;for(;++d<l.length;)if(l[d][0]==="enter"&&l[d][1].type==="strikethroughSequenceTemporary"&&l[d][1]._close){let h=d;for(;h--;)if(l[h][0]==="exit"&&l[h][1].type==="strikethroughSequenceTemporary"&&l[h][1]._open&&l[d][1].end.offset-l[d][1].start.offset===l[h][1].end.offset-l[h][1].start.offset){l[d][1].type="strikethroughSequence",l[h][1].type="strikethroughSequence";const p={type:"strikethrough",start:Object.assign({},l[h][1].start),end:Object.assign({},l[d][1].end)},m={type:"strikethroughText",start:Object.assign({},l[h][1].end),end:Object.assign({},l[d][1].start)},_=[["enter",p,u],["enter",l[h][1],u],["exit",l[h][1],u],["enter",m,u]],b=u.parser.constructs.insideSpan.null;b&&gr(_,_.length,0,Qf(b,l.slice(h+1,d),u)),gr(_,_.length,0,[["exit",m,u],["enter",l[d][1],u],["exit",l[d][1],u],["exit",p,u]]),gr(l,h-1,d-h+3,_),d=h+_.length-2;break}}for(d=-1;++d<l.length;)l[d][1].type==="strikethroughSequenceTemporary"&&(l[d][1].type="data");return l}function a(l,u,d){const h=this.previous,p=this.events;let m=0;return _;function _(S){return h===126&&p[p.length-1][1].type!=="characterEscape"?d(S):(l.enter("strikethroughSequenceTemporary"),b(S))}function b(S){const w=ul(h);if(S===126)return m>1?d(S):(l.consume(S),m++,b);if(m<2&&!n)return d(S);const C=l.exit("strikethroughSequenceTemporary"),k=ul(S);return C._open=!k||k===2&&!!w,C._close=!w||w===2&&!!k,u(S)}}}class qY{constructor(){this.map=[]}add(t,n,r){VY(this,t,n,r)}consume(t){if(this.map.sort(function(a,l){return a[0]-l[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let s=r.pop();for(;s;){for(const a of s)t.push(a);s=r.pop()}this.map.length=0}}function VY(e,t,n,r){let s=0;if(!(n===0&&r.length===0)){for(;s<e.map.length;){if(e.map[s][0]===t){e.map[s][1]+=n,e.map[s][2].push(...r);return}s+=1}e.map.push([t,n,r])}}function KY(e,t){let n=!1;const r=[];for(;t<e.length;){const s=e[t];if(n){if(s[0]==="enter")s[1].type==="tableContent"&&r.push(e[t+1][1].type==="tableDelimiterMarker"?"left":"none");else if(s[1].type==="tableContent"){if(e[t-1][1].type==="tableDelimiterMarker"){const a=r.length-1;r[a]=r[a]==="left"?"center":"right"}}else if(s[1].type==="tableDelimiterRow")break}else s[0]==="enter"&&s[1].type==="tableDelimiterRow"&&(n=!0);t+=1}return r}function GY(){return{flow:{null:{name:"table",tokenize:YY,resolveAll:XY}}}}function YY(e,t,n){const r=this;let s=0,a=0,l;return u;function u(P){let q=r.events.length-1;for(;q>-1;){const K=r.events[q][1].type;if(K==="lineEnding"||K==="linePrefix")q--;else break}const U=q>-1?r.events[q][1].type:null,F=U==="tableHead"||U==="tableRow"?O:d;return F===O&&r.parser.lazy[r.now().line]?n(P):F(P)}function d(P){return e.enter("tableHead"),e.enter("tableRow"),h(P)}function h(P){return P===124||(l=!0,a+=1),p(P)}function p(P){return P===null?n(P):Ne(P)?a>1?(a=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(P),e.exit("lineEnding"),b):n(P):Xe(P)?tt(e,p,"whitespace")(P):(a+=1,l&&(l=!1,s+=1),P===124?(e.enter("tableCellDivider"),e.consume(P),e.exit("tableCellDivider"),l=!0,p):(e.enter("data"),m(P)))}function m(P){return P===null||P===124||mt(P)?(e.exit("data"),p(P)):(e.consume(P),P===92?_:m)}function _(P){return P===92||P===124?(e.consume(P),m):m(P)}function b(P){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(P):(e.enter("tableDelimiterRow"),l=!1,Xe(P)?tt(e,S,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(P):S(P))}function S(P){return P===45||P===58?C(P):P===124?(l=!0,e.enter("tableCellDivider"),e.consume(P),e.exit("tableCellDivider"),w):L(P)}function w(P){return Xe(P)?tt(e,C,"whitespace")(P):C(P)}function C(P){return P===58?(a+=1,l=!0,e.enter("tableDelimiterMarker"),e.consume(P),e.exit("tableDelimiterMarker"),k):P===45?(a+=1,k(P)):P===null||Ne(P)?T(P):L(P)}function k(P){return P===45?(e.enter("tableDelimiterFiller"),M(P)):L(P)}function M(P){return P===45?(e.consume(P),M):P===58?(l=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(P),e.exit("tableDelimiterMarker"),R):(e.exit("tableDelimiterFiller"),R(P))}function R(P){return Xe(P)?tt(e,T,"whitespace")(P):T(P)}function T(P){return P===124?S(P):P===null||Ne(P)?!l||s!==a?L(P):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(P)):L(P)}function L(P){return n(P)}function O(P){return e.enter("tableRow"),z(P)}function z(P){return P===124?(e.enter("tableCellDivider"),e.consume(P),e.exit("tableCellDivider"),z):P===null||Ne(P)?(e.exit("tableRow"),t(P)):Xe(P)?tt(e,z,"whitespace")(P):(e.enter("data"),B(P))}function B(P){return P===null||P===124||mt(P)?(e.exit("data"),z(P)):(e.consume(P),P===92?X:B)}function X(P){return P===92||P===124?(e.consume(P),B):B(P)}}function XY(e,t){let n=-1,r=!0,s=0,a=[0,0,0,0],l=[0,0,0,0],u=!1,d=0,h,p,m;const _=new qY;for(;++n<e.length;){const b=e[n],S=b[1];b[0]==="enter"?S.type==="tableHead"?(u=!1,d!==0&&(uk(_,t,d,h,p),p=void 0,d=0),h={type:"table",start:Object.assign({},S.start),end:Object.assign({},S.end)},_.add(n,0,[["enter",h,t]])):S.type==="tableRow"||S.type==="tableDelimiterRow"?(r=!0,m=void 0,a=[0,0,0,0],l=[0,n+1,0,0],u&&(u=!1,p={type:"tableBody",start:Object.assign({},S.start),end:Object.assign({},S.end)},_.add(n,0,[["enter",p,t]])),s=S.type==="tableDelimiterRow"?2:p?3:1):s&&(S.type==="data"||S.type==="tableDelimiterMarker"||S.type==="tableDelimiterFiller")?(r=!1,l[2]===0&&(a[1]!==0&&(l[0]=l[1],m=yd(_,t,a,s,void 0,m),a=[0,0,0,0]),l[2]=n)):S.type==="tableCellDivider"&&(r?r=!1:(a[1]!==0&&(l[0]=l[1],m=yd(_,t,a,s,void 0,m)),a=l,l=[a[1],n,0,0])):S.type==="tableHead"?(u=!0,d=n):S.type==="tableRow"||S.type==="tableDelimiterRow"?(d=n,a[1]!==0?(l[0]=l[1],m=yd(_,t,a,s,n,m)):l[1]!==0&&(m=yd(_,t,l,s,n,m)),s=0):s&&(S.type==="data"||S.type==="tableDelimiterMarker"||S.type==="tableDelimiterFiller")&&(l[3]=n)}for(d!==0&&uk(_,t,d,h,p),_.consume(t.events),n=-1;++n<t.events.length;){const b=t.events[n];b[0]==="enter"&&b[1].type==="table"&&(b[1]._align=KY(t.events,n))}return e}function yd(e,t,n,r,s,a){const l=r===1?"tableHeader":r===2?"tableDelimiter":"tableData",u="tableContent";n[0]!==0&&(a.end=Object.assign({},Va(t.events,n[0])),e.add(n[0],0,[["exit",a,t]]));const d=Va(t.events,n[1]);if(a={type:l,start:Object.assign({},d),end:Object.assign({},d)},e.add(n[1],0,[["enter",a,t]]),n[2]!==0){const h=Va(t.events,n[2]),p=Va(t.events,n[3]),m={type:u,start:Object.assign({},h),end:Object.assign({},p)};if(e.add(n[2],0,[["enter",m,t]]),r!==2){const _=t.events[n[2]],b=t.events[n[3]];if(_[1].end=Object.assign({},b[1].end),_[1].type="chunkText",_[1].contentType="text",n[3]>n[2]+1){const S=n[2]+1,w=n[3]-n[2]-1;e.add(S,w,[])}}e.add(n[3]+1,0,[["exit",m,t]])}return s!==void 0&&(a.end=Object.assign({},Va(t.events,s)),e.add(s,0,[["exit",a,t]]),a=void 0),a}function uk(e,t,n,r,s){const a=[],l=Va(t.events,n);s&&(s.end=Object.assign({},l),a.push(["exit",s,t])),r.end=Object.assign({},l),a.push(["exit",r,t]),e.add(n+1,0,a)}function Va(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const ZY={name:"tasklistCheck",tokenize:JY};function QY(){return{text:{91:ZY}}}function JY(e,t,n){const r=this;return s;function s(d){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(d):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(d),e.exit("taskListCheckMarker"),a)}function a(d){return mt(d)?(e.enter("taskListCheckValueUnchecked"),e.consume(d),e.exit("taskListCheckValueUnchecked"),l):d===88||d===120?(e.enter("taskListCheckValueChecked"),e.consume(d),e.exit("taskListCheckValueChecked"),l):n(d)}function l(d){return d===93?(e.enter("taskListCheckMarker"),e.consume(d),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),u):n(d)}function u(d){return Ne(d)?t(d):Xe(d)?e.check({tokenize:eX},t,n)(d):n(d)}}function eX(e,t,n){return tt(e,r,"whitespace");function r(s){return s===null?n(s):t(s)}}function tX(e){return FA([EY(),jY(),WY(e),GY(),QY()])}const nX={};function rp(e){const t=this,n=e||nX,r=t.data(),s=r.micromarkExtensions||(r.micromarkExtensions=[]),a=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),l=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);s.push(tX(n)),a.push(SY()),l.push(wY(n))}function rX({content:e}){return v.jsx("div",{className:"flex gap-2 justify-end",children:v.jsx("div",{className:"max-w-[85%] sm:max-w-[80%] rounded-[20px] py-1.5 px-3.5 bg-muted text-primary border border-border prose prose-sm prose-invert [&_p]:whitespace-pre-line",children:v.jsx(np,{remarkPlugins:[rp],components:Xf(),children:e})})})}function iX({json:e}){return v.jsx("div",{className:"flex gap-3 justify-start",children:v.jsx("div",{className:"flex-1 max-w-[90%]",children:v.jsx("pre",{className:"text-xs font-mono whitespace-pre-wrap break-words bg-muted rounded-lg p-3 overflow-auto max-h-96",children:e})})})}function N5({title:e,count:t,children:n,badge:r}){const[s,a]=x.useState(!1);return t===0?null:v.jsxs("div",{className:"flex flex-col gap-1.5",children:[v.jsxs("button",{onClick:()=>a(!s),className:"flex items-center gap-1 cursor-pointer group/section hover:opacity-60 transition-opacity",children:[v.jsx(ts,{className:ye("h-3.5 w-3.5 text-muted-foreground transition-transform duration-200",s&&"rotate-90")}),v.jsx("span",{className:"text-muted-foreground font-medium",children:e}),v.jsx("span",{className:"text-muted-foreground/60",children:t}),r]}),s&&v.jsx("div",{className:"ml-5",children:n})]})}function xv({title:e,items:t,icon:n,getIcon:r}){return t.length===0?null:v.jsx(N5,{title:e,count:t.length,children:v.jsx("div",{className:"flex flex-wrap gap-1.5",children:t.map(s=>v.jsx(SA,{icon:r?r(s):n,children:s},s))})})}function sX(e){const t=e.match(/^mcp__([^_]+)__(.+)$/);return t?{server:t[1],tool:t[2]}:null}function D5({status:e}){const t=e==="connected"?"bg-emerald-500":e==="pending"?"bg-yellow-500":"bg-red-500";return v.jsx("span",{className:ye("inline-block h-2 w-2 rounded-full shrink-0",t)})}function oX(e){switch(e){case"connected":return"Connected";case"failed":return"Failed";case"needs-auth":return"Needs auth";case"pending":return"Connecting...";case"disabled":return"Disabled";default:return e}}function hk({server:e}){const[t,n]=x.useState(!1),r=e.status==="connected";return v.jsxs("div",{className:"flex flex-col gap-1.5",children:[v.jsxs("button",{onClick:()=>r&&e.tools.length>0&&n(!t),className:ye("flex items-center gap-1.5",r&&e.tools.length>0&&"cursor-pointer hover:opacity-60 transition-opacity"),children:[r&&e.tools.length>0&&v.jsx(ts,{className:ye("h-3 w-3 text-muted-foreground transition-transform duration-200",t&&"rotate-90")}),v.jsx(D5,{status:e.status}),v.jsx("span",{className:"text-muted-foreground font-medium",children:Bv(e.name)}),r?v.jsxs("span",{className:"text-muted-foreground/50",children:[e.tools.length," tools"]}):v.jsx("span",{className:"text-muted-foreground/50",children:oX(e.status)})]}),!r&&e.error&&v.jsx("span",{className:"text-destructive ml-5",children:e.error}),t&&e.tools.length>0&&v.jsx("div",{className:"flex flex-wrap gap-1.5 ml-5",children:e.tools.map(s=>v.jsx(SA,{icon:xA(`mcp__${e.name}__${s}`),children:s},s))})]})}function aX({servers:e}){if(e.length===0)return null;const t=e.filter(s=>s.status==="connected"),n=e.filter(s=>s.status!=="connected"),r=n.length>0?v.jsxs("span",{className:"flex items-center gap-1 ml-1",children:[v.jsx(D5,{status:"failed"}),v.jsxs("span",{className:"text-muted-foreground/60",children:[n.length," disconnected"]})]}):null;return v.jsx(N5,{title:"MCP Servers",count:e.length,badge:r,children:v.jsxs("div",{className:"flex flex-col gap-2",children:[t.map(s=>v.jsx(hk,{server:s},s.name)),n.map(s=>v.jsx(hk,{server:s},s.name))]})})}function lX({rawJson:e}){const[t,n]=x.useState(!1);return v.jsxs("div",{className:"flex flex-col gap-1.5",children:[v.jsxs("button",{onClick:()=>n(!t),className:"flex items-center gap-1 cursor-pointer group/section hover:opacity-60 transition-opacity",children:[v.jsx(ts,{className:ye("h-3.5 w-3.5 text-muted-foreground transition-transform duration-200",t&&"rotate-90")}),v.jsx("span",{className:"text-muted-foreground font-medium",children:"Raw Message"})]}),t&&v.jsx("pre",{className:"ml-5 text-xs whitespace-pre-wrap break-all border border-border rounded-md p-3 overflow-x-auto max-h-96 overflow-y-auto",children:e})]})}function cX({message:e,rawJson:t}){const{coreTools:n,mcpServersWithTools:r}=x.useMemo(()=>{const s=new Map,a=[];for(const u of e.tools){const d=sX(u);if(d){const h=s.get(d.server)||[];h.push(d.tool),s.set(d.server,h)}else a.push(u)}const l=e.mcpServers.map(u=>({name:u.name,status:u.status,error:u.error,tools:s.get(u.name)||[]}));return{coreTools:a,mcpServersWithTools:l}},[e.tools,e.mcpServers]);return v.jsx(to,{children:v.jsxs(Gf,{expandedContent:v.jsx(Yf,{className:"my-4 text-xs",children:v.jsxs("div",{className:"flex flex-col gap-3",children:[v.jsx(f$,{children:e.model}),v.jsx(xv,{title:"Tools",items:n,getIcon:s=>D_[s]??bA}),v.jsx(xv,{title:"Agents",items:e.agents,icon:_y}),v.jsx(xv,{title:"Commands",items:e.slashCommands,icon:j6}),v.jsx(aX,{servers:r}),t&&v.jsx(lX,{rawJson:t})]})}),children:[v.jsx(Ez,{className:"h-5 w-5 text-logo"}),v.jsx(Xs,{children:"Session Started"})]})})}function uX({message:e}){return v.jsx(to,{className:"hidden",children:v.jsxs(Gf,{expandedContent:v.jsx(Yf,{className:"my-4 text-xs",children:v.jsx("pre",{className:"font-mono whitespace-pre-wrap break-all bg-muted border border-border rounded-lg p-2 max-h-64 overflow-auto",children:JSON.stringify(e.accountInfo,null,2)})}),children:[v.jsx("div",{className:"size-5 flex justify-center items-center ",children:v.jsx(_y,{className:"h-4 w-4 text-muted-foreground"})}),v.jsx(Xs,{children:"Account"})]})})}function hX({message:e}){return v.jsx("div",{className:"text-pretty prose prose-sm dark:prose-invert px-0.5 w-full max-w-full space-y-4",children:v.jsx(np,{remarkPlugins:[rp],components:Xf(),children:e.text})})}function dX({question:e,currentIndex:t,totalQuestions:n,onBack:r,children:s}){const a=r&&t>0;return v.jsxs("div",{className:"rounded-2xl border border-border overflow-hidden",children:[v.jsxs("div",{className:"relative",children:[v.jsxs("h3",{className:"font-medium text-foreground text-sm p-3 px-4 bg-card border-b border-border text-foreground flex flex-row items-center gap-2",children:[a?v.jsx("button",{onClick:r,className:" text-muted-foreground hover:opacity-60 transition-all flex items-center",children:v.jsx(jz,{className:"h-4 w-4 -ml-0.5",strokeWidth:3})}):n>1?v.jsxs("span",{className:"font-bold text-muted-foreground whitespace-nowrap",children:[t+1," of ",n]}):null,e]}),n>1&&v.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-0.5 bg-border",children:v.jsx("div",{className:"h-full bg-muted-foreground/40 transition-all duration-300",style:{width:`${t/n*100}%`}})})]}),s]})}function dk({label:e,description:t}){return v.jsxs(v.Fragment,{children:[v.jsx("span",{className:"text-foreground text-sm",children:e}),t&&v.jsx("p",{className:"text-xs text-muted-foreground mt-0.5",children:t})]})}function O5({selected:e,multiSelect:t,onClick:n}){return v.jsx("button",{type:"button",onClick:n,className:ye("flex-shrink-0 w-5 h-5 border-1 flex items-center justify-center",t?"rounded":"rounded-full",e?"border-slate-500/0 bg-foreground":"border-muted-foreground/50 bg-background",n&&e&&"cursor-pointer"),children:e&&v.jsx(Bo,{strokeWidth:3,className:"translate-y-[0.5px] h-3 w-3 text-white dark:text-background"})})}function fX({option:e,selected:t,multiSelect:n,onClick:r,isLast:s}){const a="w-full text-left p-3 pt-2.5 pl-4 pr-5 bg-background",l=s?"":"border-b border-border";return r?v.jsx("button",{onClick:r,className:ye(a,l,"transition-all cursor-pointer"),children:v.jsxs("div",{className:"flex items-center justify-between gap-3",children:[v.jsx("div",{className:"flex-1 min-w-0",children:v.jsx(dk,{label:e.label,description:e.description})}),v.jsx(O5,{selected:t,multiSelect:n})]})}):v.jsx("div",{className:ye(a,l),children:v.jsx(dk,{label:e.label,description:e.description})})}function pX(e){return e==null?void 0:e.answers}function Gr(e){return e.id||e.question}function mX({message:e,onSubmit:t,isLatest:n}){var j,H;const r=e.input.questions,s=!!e.result,a=pX(e.result),l=((j=e.result)==null?void 0:j.discarded)===!0,[u,d]=x.useState(0),[h,p]=x.useState({}),[m,_]=x.useState({}),[b,S]=x.useState(a??null),[w,C]=x.useState(s),k=(W,Q)=>{var G;const A=(G=m[W])==null?void 0:G.trim(),I=h[W]||"",Z=Q||r.find(re=>Gr(re)===W);if(Z!=null&&Z.multiSelect)return[I,A].filter(Boolean).flatMap(re=>re.split(", ").filter(Boolean));const N=A||I;return N?[N]:[]},M=W=>{const Q=h[Gr(W)]||"";return W.multiSelect?Q.split(", ").filter(Boolean):[Q]},R=(W,Q)=>{const A=Gr(W);if(W.multiSelect){const I=h[A]?h[A].split(", ").filter(Boolean):[],Z=I.includes(Q)?I.filter(N=>N!==Q):[...I,Q];p({...h,[A]:Z.join(", ")})}else p({...h,[A]:Q}),_({...m,[A]:""}),u<r.length-1&&setTimeout(()=>d(u+1),150)},T=(W,Q)=>{const A=Gr(W);_({...m,[A]:Q}),Q&&!W.multiSelect&&p({...h,[A]:""})},L=W=>{const Q=Gr(W);W.multiSelect&&m[Q]&&_({...m,[Q]:""})},O=r.every(W=>k(Gr(W),W).length>0),z=r[u],B=u===r.length-1,X=z&&k(Gr(z),z).length>0,P=()=>{u<r.length-1&&d(u+1)},q=()=>{u>0&&d(u-1)},U=()=>{if(!O)return;const W={};for(const Q of r){const A=Gr(Q);W[A]=k(A,Q)}S(W),C(!0),t(e.toolId,r,W)},F=W=>{if(W.key==="Enter"&&!(!z||!X)){if(W.preventDefault(),B){U();return}P()}};if(w||s){const W=a||b||{};return v.jsx("div",{className:"w-full",children:v.jsxs("div",{className:"rounded-2xl border border-border overflow-hidden",children:[v.jsxs("div",{className:"font-medium text-sm p-3 px-4 pr-5 bg-muted border-b border-border flex flex-row items-center justify-between",children:[v.jsxs("p",{children:["Question",r.length!==1?"s":""]}),v.jsx("p",{className:"",children:l?"Discarded":"Answers"})]}),r.map((Q,A)=>{const I=W[Gr(Q)]||W[Q.question]||[],Z=A===r.length-1;return v.jsxs("div",{className:ye("w-full p-3 pt-2.5 pl-4 pr-5 bg-background flex items-center justify-between gap-3",!Z&&"border-b border-border"),children:[v.jsx("div",{className:"text-sm text-pretty",children:Q.question}),I.length>0&&v.jsx("div",{className:"text-sm font-medium text-right max-w-[50%] text-pretty",children:I.join(", ")}),I.length===0&&v.jsx("div",{className:"text-sm font-medium text-right italic",children:l?"Discarded":"No Response"})]},Gr(Q))})]})})}if(!n)return v.jsx("div",{className:"w-full py-2",children:v.jsxs("div",{className:"flex items-center gap-2",children:[v.jsx(IE,{className:"h-4 w-4 text-muted-foreground"}),v.jsx("span",{className:"text-sm text-muted-foreground",children:"Questions pending (newer question active)"})]})});if(!z)return null;const K=M(z),$=m[Gr(z)]||"";return v.jsxs("div",{className:"w-full space-y-3",children:[v.jsxs(dX,{question:z.question,currentIndex:u,totalQuestions:r.length,onBack:u>0?q:void 0,children:[(H=z.options)==null?void 0:H.map(W=>v.jsx(fX,{option:W,selected:K.includes(W.label),multiSelect:z.multiSelect,onClick:()=>R(z,W.label)},W.label)),v.jsx("div",{className:"transition-all bg-background",children:v.jsxs("div",{className:"flex pr-5 items-center justify-between gap-3",children:[v.jsx("input",{type:"text",value:$,onChange:W=>T(z,W.target.value),onKeyDown:F,placeholder:"Other...",className:"flex-1 px-3 !py-1 pl-4 min-h-[55px] min-w-0 text-sm bg-transparent outline-none text-foreground placeholder:text-muted-foreground"}),v.jsx(O5,{selected:!!$,multiSelect:z.multiSelect,onClick:z.multiSelect&&$?()=>L(z):void 0})]})})]}),v.jsxs("div",{className:"flex justify-end gap-2 mx-2",children:[!B&&X&&(z.multiSelect||!!$)&&v.jsx(et,{size:"sm",onClick:P,children:"Next"}),B&&v.jsx(et,{size:"sm",onClick:U,disabled:!O,className:ye(!O&&"opacity-50 cursor-not-allowed","rounded-full"),children:"Submit"})]})]})}function gX({message:e,onConfirm:t,isLatest:n}){const r=!!e.result,[s,a]=x.useState(!1),[l,u]=x.useState(!1),[d,h]=x.useState(!1),[p,m]=x.useState(""),_=x.useRef(null),b=e.input;x.useEffect(()=>{d&&_.current&&_.current.focus()},[d]);const S=async()=>{b!=null&&b.plan&&(await navigator.clipboard.writeText(b.plan),u(!0),setTimeout(()=>u(!1),2e3))},w=r?e.result:null,C=(w==null?void 0:w.discarded)===!0;return v.jsxs("div",{className:"flex flex-col gap-3",children:[v.jsxs("div",{className:"relative rounded-2xl border border-border overflow-hidden group/plan",children:[(b==null?void 0:b.plan)&&v.jsx(et,{variant:"ghost",size:"icon",className:ye("absolute top-2 right-2 z-10 h-8 w-8 rounded-md text-muted-foreground opacity-0 group-hover/plan:opacity-100 transition-opacity",!l&&"hover:text-foreground",l&&"hover:!bg-transparent hover:!border-transparent"),onClick:S,children:l?v.jsx(Bo,{className:"h-4 w-4 text-green-400"}):v.jsx(Tf,{className:"h-4 w-4"})}),v.jsxs("div",{className:ye("!pt-5 !pb-0 px-4 md:py-4.5 md:px-5.5 bg-muted dark:bg-card overflow-scroll no-pre-highlight transition-all",r&&!s?"max-h-[min(400px,40vh)] ":"",r?"hover:!pb-[32px]":""),children:[r&&v.jsxs(et,{variant:"ghost",className:"absolute z-10 bottom-2 pr-2.5 !pl-3.5 h-[34px] inline-flex gap-1 text-sm left-[50%] -translate-x-[50%] text-muted-foreground backdrop-blur-sm hover:text-foreground opacity-0 group-hover/plan:opacity-100 transition-all rounded-full border border-border",onClick:()=>a(!s),children:[s?"Show Less":"Show More",v.jsx(Lz,{className:`size-3.5 transition-transform ${s?"rotate-180":""}`})]}),b!=null&&b.plan?v.jsxs("div",{className:"prose prose-sm dark:prose-invert max-w-none",children:[v.jsx(np,{remarkPlugins:[rp],components:Xf(),children:b.plan}),v.jsx("div",{className:"mt-5"})]}):v.jsx("p",{className:"text-sm text-muted-foreground",children:"No plan provided"})]})]}),r?v.jsx("div",{className:"flex justify-end mx-2",children:v.jsxs("span",{className:"pl-4 inline text-sm font-medium bg-background text-foreground/60 border border-border py-1.5 px-3 rounded-[20px] leading-relaxed max-w-[85%] sm:max-w-[80%]",children:[v.jsx("em",{children:C?"Discarded":w!=null&&w.clearContext?"Approved & Cleared Context":w!=null&&w.confirmed?"Approved":w!=null&&w.message?`Adjusted: "${w.message}"`:"Adjusted Plan"}),v.jsx(Kz,{className:"inline h-4 w-4 ml-1.5 -mt-0.5"})]})}):n?v.jsxs("div",{className:"flex flex-col gap-3",children:[!d&&v.jsxs("div",{className:"flex flex-col md:flex-row items-stretch md:items-center justify-end gap-2 mx-2",children:[v.jsxs(et,{size:"sm",onClick:()=>t(e.toolId,!0,!0),className:"rounded-full bg-primary text-background pr-4 md:order-last",children:[v.jsx(Tz,{className:"h-4 w-4 mr-1.5"}),"Approve & Clear"]}),v.jsxs("div",{className:"flex items-stretch md:items-center gap-2 md:contents",children:[v.jsxs(et,{size:"sm",variant:"outline",onClick:()=>h(!0),className:"rounded-full border-border flex-1 md:flex-initial md:order-first",children:[v.jsx(FE,{className:"h-4 w-4 mr-1.5"}),"Suggest Edits"]}),v.jsxs(et,{size:"sm",variant:"outline",onClick:()=>t(e.toolId,!0),className:"rounded-full border-border flex-1 md:flex-initial",children:[v.jsx(Bo,{className:"h-4 w-4 mr-1.5"}),"Approve"]})]})]}),d&&v.jsxs("div",{className:"flex flex-col gap-2",children:[v.jsx("textarea",{ref:_,value:p,onChange:k=>m(k.target.value),onKeyDown:k=>{k.key==="Enter"&&!k.shiftKey&&p.trim()&&(k.preventDefault(),t(e.toolId,!1,void 0,p.trim())),k.key==="Escape"&&(h(!1),m(""))},placeholder:"Describe what you'd like to change...",rows:3,className:"w-full rounded-2xl border border-border bg-muted dark:bg-card px-4 py-3 text-sm text-foreground placeholder:text-muted-foreground resize-none outline-none"}),v.jsxs("div",{className:"flex items-center justify-end gap-2 mx-2",children:[v.jsx(et,{size:"sm",variant:"ghost",onClick:()=>{h(!1),m("")},className:"rounded-full text-muted-foreground",children:"Cancel"}),v.jsxs(et,{size:"sm",disabled:!p.trim(),onClick:()=>t(e.toolId,!1,void 0,p.trim()),className:"rounded-full bg-primary text-background disabled:opacity-50 disabled:pointer-events-none",children:[v.jsx(A6,{className:"h-4 w-4 mr-1.5"}),"Adjust Plan"]})]})]})]}):v.jsx("div",{className:"flex justify-end mx-2",children:v.jsx("span",{className:"inline text-sm text-muted-foreground italic",children:"Plan pending (newer prompt active)"})})]})}const vX={completed:{Icon:Bo,iconClass:"text-emerald-500",textClass:"text-muted-foreground"},in_progress:{Icon:Js,iconClass:"text-foreground animate-spin",textClass:"text-foreground font-medium"},pending:{Icon:Fz,iconClass:"text-muted-foreground",textClass:"text-muted-foreground"}};function _X({message:e}){const t=e.input.todos;return t.length?v.jsx("div",{className:"w-full",children:v.jsxs("div",{className:"rounded-2xl border border-border overflow-hidden",children:[v.jsxs("h3",{className:"font-medium text-foreground text-sm p-3 px-4 bg-card border-b border-border flex items-center gap-2",children:[v.jsx(d6,{className:"h-4 w-4 text-muted-foreground"}),"Progress"]}),v.jsx("div",{children:t.map((n,r)=>{const s=r===t.length-1,{Icon:a,iconClass:l,textClass:u}=vX[n.status];return v.jsxs("div",{className:ye("flex items-center gap-3 px-4 py-2.5 bg-background",!s&&"border-b border-border"),children:[v.jsx(a,{className:ye("h-4 w-4 flex-shrink-0",l)}),v.jsx("span",{className:ye("text-sm",u),children:n.status==="in_progress"?n.activeForm:n.content})]},r)})})]})}):null}function yX(e){const t=e.split(`
501
501
  `),n=/^\s*(\d+)→(.*)$/;return t.map(r=>{const s=r.match(n);return s?{lineNumber:parseInt(s[1],10),content:s[2]}:{lineNumber:null,content:r}})}function bX(e){return e.replace(/<[^>]+>/g,"")}function xX(e,t){const n=e.split(`
502
502
  `),r=t.split(`
503
- `),s=SX(n,r),a=wX(n,r,s);return CX(a)}function SX(e,t){const n=e.length,r=t.length,s=Array.from({length:n+1},()=>Array(r+1).fill(0));for(let a=1;a<=n;a++)for(let l=1;l<=r;l++)s[a][l]=e[a-1]===t[l-1]?s[a-1][l-1]+1:Math.max(s[a-1][l],s[a][l-1]);return s}function wX(e,t,n){const r=[];let s=e.length,a=t.length;for(;s>0||a>0;)s>0&&a>0&&e[s-1]===t[a-1]?(r.push({type:"context",text:e[s-1],oldIdx:s,newIdx:a}),s--,a--):a>0&&(s===0||n[s][a-1]>=n[s-1][a])?(r.push({type:"added",text:t[a-1],oldIdx:s,newIdx:a}),a--):(r.push({type:"removed",text:e[s-1],oldIdx:s,newIdx:a}),s--);return r.reverse()}function CX(e){return e.map(t=>{const n=t.type==="removed"?"-":t.type==="added"?"+":" ";return{type:t.type,content:`${n}${t.text}`}})}function Sv({content:e,isDiff:t=!1,oldString:n,newString:r}){const s=x.useMemo(()=>t&&n!==void 0&&r!==void 0?xX(n,r):[],[t,n,r]),a=x.useMemo(()=>t?[]:yX(e),[e,t]),l=x.useMemo(()=>a.some(u=>u.lineNumber!==null),[a]);return t&&s.length>0?v.jsx("div",{className:"my-1 rounded-lg border border-border overflow-hidden",children:v.jsx("div",{className:"overflow-auto max-h-64 md:max-h-[50vh]",children:v.jsx("table",{className:"w-full border-collapse text-xs font-mono",children:v.jsx("tbody",{children:s.map((u,d)=>{const h=u.type==="removed"?"bg-red-500/10 dark:bg-red-500/15":u.type==="added"?"bg-green-500/10 dark:bg-green-500/15":"",p=u.type==="removed"?"text-red-700 dark:text-red-400":u.type==="added"?"text-green-700 dark:text-green-400":"text-foreground";return v.jsxs("tr",{className:h,children:[v.jsx("td",{className:`px-2 py-0 select-none w-0 whitespace-nowrap ${u.type==="removed"?"text-red-500/50":u.type==="added"?"text-green-500/50":"text-muted-foreground/50"}`,children:u.type==="removed"?"-":u.type==="added"?"+":" "}),v.jsx("td",{className:`px-2 py-0 whitespace-pre select-all ${p}`,children:u.content.slice(1)})]},d)})})})})}):v.jsx("div",{className:"my-1 rounded-lg border border-border overflow-hidden",children:v.jsx("div",{className:"overflow-auto max-h-64 md:max-h-[50vh]",children:v.jsx("table",{className:"w-full border-collapse text-xs font-mono",children:v.jsx("tbody",{children:a.map((u,d)=>v.jsxs("tr",{children:[l&&v.jsx("td",{className:"px-2 py-0 select-none w-0 whitespace-nowrap text-muted-foreground/50 text-right",children:u.lineNumber!==null?u.lineNumber:""}),v.jsx("td",{className:"px-2 py-0 whitespace-pre select-all text-foreground",children:bX(u.content)})]},d))})})})})}function L5({message:e,isLoading:t=!1,localPath:n}){var S;const r=e.result!==void 0,s=!r&&t,a=x.useMemo(()=>{if(e.toolKind==="skill")return e.input.skill;if(e.toolKind==="glob")return`Search files ${e.input.pattern==="**/*"?"in all directories":`matching ${e.input.pattern}`}`;if(e.toolKind==="grep"){const w=e.input.pattern,C=e.input.outputMode;return C==="count"?`Count \`${w}\` occurrences`:C==="content"?`Find \`${w}\` in text`:`Find \`${w}\` in files`}return e.toolKind==="bash"?e.input.description||(e.input.command?YB(e.input.command):"Bash"):e.toolKind==="web_search"?e.input.query||"Web Search":e.toolKind==="read_file"?`Read ${ev(e.input.filePath,n)}`:e.toolKind==="write_file"?`Write ${ev(e.input.filePath,n)}`:e.toolKind==="edit_file"?`Edit ${ev(e.input.filePath,n)}`:e.toolKind==="mcp_generic"?`${Bv(e.input.tool)} from ${Bv(e.input.server)}`:e.toolKind==="subagent_task"&&e.input.subagentType||e.toolName},[e.input,e.toolName,n]),l=x.useMemo(()=>e.toolKind==="subagent_task",[e.toolKind]),u=x.useMemo(()=>{if(e.toolKind==="skill")return e.input.skill},[e.input,e.toolKind]),d=e.toolKind==="bash",h=e.toolKind==="write_file",p=e.toolKind==="edit_file",m=e.toolKind==="read_file",_=x.useMemo(()=>{if(typeof e.result=="string")return e.result;if(!e.result)return"";if(typeof e.result=="object"&&e.result!==null&&"content"in e.result){const w=e.result.content;if(typeof w=="string")return w}return JSON.stringify(e.result,null,2)},[e.result]),b=x.useMemo(()=>{switch(e.toolKind){case"bash":return e.input.command;case"write_file":return e.input.content;default:return JSON.stringify(e.input,null,2)}},[e]);return v.jsx(to,{className:"w-full",children:v.jsxs(Gf,{expandedContent:v.jsx(Yf,{className:"my-4 text-sm",children:v.jsxs("div",{className:"flex flex-col gap-2",children:[p?v.jsx(Sv,{content:"",isDiff:!0,oldString:e.input.oldString,newString:e.input.newString}):!m&&!h&&v.jsx(g2,{label:d?v.jsxs("span",{className:"flex items-center gap-2 w-full",children:[v.jsx("span",{children:"Command"}),!!e.input.timeoutMs&&v.jsxs("span",{className:"text-muted-foreground",children:["timeout: ",String(e.input.timeoutMs),"ms"]}),!!e.input.runInBackground&&v.jsx("span",{className:"text-muted-foreground",children:"background"})]}):h?"Contents":"Input",copyText:b,children:b}),r&&m&&!e.isError&&v.jsx(Sv,{content:_}),h&&!e.isError&&v.jsx(Sv,{content:e.input.content}),r&&!m&&!(h&&!e.isError)&&!(p&&!e.isError)&&v.jsx(g2,{label:e.isError?"Error":"Result",copyText:_,children:_})]})}),children:[v.jsx("div",{className:"w-5 h-5 relative flex items-center justify-center",children:(()=>{if(e.isError)return v.jsx(vu,{className:"size-4 text-destructive"});if(l)return v.jsx(_y,{className:"size-4 text-muted-icon"});const w=xA(e.toolName);return v.jsx(w,{className:"size-4 text-muted-icon"})})()}),v.jsx(Xs,{className:"text-left transition-opacity duration-200 truncate",children:v.jsx(Bf,{animate:s,shimmerWidth:Math.max(20,(((S=u||a)==null?void 0:S.length)??33)*3),children:u||a})})]})})}function kX({message:e}){const t=n=>{if(n<1e3)return`${n}ms`;const r=Math.floor(n/1e3),s=Math.floor(r/3600),a=Math.floor(r%3600/60),l=r%60;return s>0?`${s}h${a>0?` ${a}m`:""}`:a>0?`${a}m${l>0?` ${l}s`:""}`:`${l}s`};return v.jsxs(to,{className:`px-0.5 text-xs tracking-wide ${e.durationMs>6e4?"":"hidden"}`,children:[v.jsx("div",{className:"w-full h-[1px] bg-border"}),v.jsxs(Xs,{className:"whitespace-nowrap text-[11px] tracking-widest text-muted-foreground/60 uppercase flex-shrink-0",children:["Worked for ",t(e.durationMs)]}),v.jsx("div",{className:"w-full h-[1px] bg-border"})]})}function EX({message:e}){return v.jsx("div",{className:"flex items-center justify-end gap-2 text-sm text-muted-foreground my-3",children:v.jsxs("div",{className:"inline-flex gap-1.5 items-center justify-center whitespace-nowrap text-sm font-medium bg-background text-foreground/60 border border-border h-9 pl-1 pr-4 rounded-full",children:[v.jsx(Iz,{className:"h-4 w-4 ml-1.5"}),v.jsx("em",{children:"Interrupted"})]})})}function bf({size:e=4}){return v.jsxs("svg",{className:"flex-1",viewBox:`0 0 100 ${e}`,preserveAspectRatio:"none",style:{height:`${e}px`},children:[v.jsx("pattern",{id:"zigzag",width:e,height:e,patternUnits:"userSpaceOnUse",children:v.jsx("path",{d:`M0 ${e} L${e/2} 0 L${e} ${e}`,fill:"none",stroke:"currentColor",strokeWidth:"0.5",className:"text-muted-foreground/30",style:{stroke:"currentColor"}})}),v.jsx("rect",{width:"100%",height:e,fill:"url(#zigzag)",className:"text-muted-foreground/30"})]})}function RX(){return v.jsxs("div",{className:"flex items-center gap-3",children:[v.jsx(bf,{}),v.jsx("span",{className:"text-[11px] tracking-widest text-muted-foreground uppercase flex-shrink-0",children:"Compacted"}),v.jsx(bf,{})]})}function MX(){return v.jsxs("div",{className:"flex items-center gap-3",children:[v.jsx(bf,{}),v.jsx("span",{className:"text-[11px] tracking-widest text-muted-foreground uppercase flex-shrink-0",children:"Context Cleared"}),v.jsx(bf,{})]})}function TX({message:e}){return v.jsx(to,{children:v.jsxs(Gf,{expandedContent:v.jsx(Yf,{className:"my-4 text-xs",children:v.jsx("div",{className:"prose prose-sm dark:prose-invert max-w-none",children:v.jsx(np,{remarkPlugins:[rp],components:Xf(),children:e.summary})})}),children:[v.jsx("div",{className:"w-5 h-5 relative flex items-center justify-center",children:v.jsx(HE,{className:"h-4.5 w-4.5 text-muted-foreground"})}),v.jsx(Xs,{children:"Summarized"})]})})}const AX={compacting:"Compacting..."};function NX({message:e}){const t=AX[e.status]||e.status;return v.jsxs(to,{className:"grid grid-cols-[auto_1fr] items-center gap-1.5 text-sm animate-pulse",children:[v.jsx("div",{className:"w-5 h-5 relative flex items-center justify-center",children:v.jsx(HE,{className:"h-4.5 w-4.5 text-muted-foreground"})}),v.jsx(Xs,{className:"text-left transition-opacity duration-200 truncate",children:t})]})}const DX={read_file:{key:"read",singular:"read",plural:"reads"},edit_file:{key:"edit",singular:"edit",plural:"edits"},write_file:{key:"write",singular:"write",plural:"writes"},bash:{key:"bash",singular:"command",plural:"commands"},grep:{key:"grep",singular:"search",plural:"searches"},glob:{key:"glob",singular:"glob",plural:"globs"},subagent_task:{key:"task",singular:"agent",plural:"agents"},web_search:{key:"websearch",singular:"web search",plural:"web searches"},skill:{key:"skill",singular:"skill",plural:"skills"},todo_write:{key:"todo",singular:"todo update",plural:"todo updates"}},OX={key:"other",singular:"tool call",plural:"tool calls"};function LX(e){return DX[e]??OX}function zX(e){const t=new Map,n=[];for(const r of e){const s=r.toolKind,a=LX(s),l=t.get(a.key);l?l.count++:(t.set(a.key,{category:a,count:1}),n.push(a.key))}return n.map(r=>{const{category:s,count:a}=t.get(r);return`${a} ${a===1?s.singular:s.plural}`}).join(", ")}function jX({messages:e,isLoading:t,localPath:n}){const[r,s]=x.useState(!1),a=x.useMemo(()=>zX(e),[e]),u=e.some(d=>d.result===void 0)&&t;return v.jsx(to,{className:"w-full",children:v.jsxs("div",{className:"flex flex-col w-full",children:[v.jsx("button",{onClick:()=>s(!r),className:`group cursor-pointer grid grid-cols-[auto_1fr] items-center gap-1 text-sm ${!r&&!u?"hover:opacity-60 transition-opacity":""}`,children:v.jsxs("div",{className:"grid grid-cols-[auto_1fr] items-center gap-1.5",children:[v.jsx("div",{className:"w-5 h-5 relative flex items-center justify-center",children:v.jsx(ts,{className:`h-4.5 w-4.5 text-muted-icon transition-all duration-200 ${r?"rotate-90":""}`})}),v.jsx(Xs,{className:"text-left",children:v.jsx(Bf,{animate:u,children:a})})]})}),r&&v.jsxs("div",{className:"my-4 flex flex-col gap-3",children:[e.map(d=>v.jsx(L5,{message:d,isLoading:t,localPath:n},d.id)),e.length>5&&v.jsx("button",{onClick:()=>s(!1),className:"cursor-pointer grid grid-cols-[auto_1fr] items-center gap-1 text-xs hover:opacity-80 transition-opacity",children:v.jsxs("div",{className:"grid grid-cols-[auto_1fr] items-center gap-1.5",children:[v.jsx("div",{className:"w-5 h-5 relative flex items-center justify-center",children:v.jsx(ts,{className:"h-4.5 w-4.5 text-muted-icon -rotate-90"})}),v.jsx(Xs,{className:"text-left",children:"Collapse"})]})})]})]})})}const BX=new Set(["AskUserQuestion","ExitPlanMode","TodoWrite"]);function fk(e){if(e.kind!=="tool")return!1;const t=e.toolName;return!BX.has(t)}function PX(e){const t=[];let n=0;for(;n<e.length;){const r=e[n];if(fk(r)){const s=[r],a=n;for(n+=1;n<e.length&&fk(e[n]);)s.push(e[n]),n+=1;s.length>=2?t.push({type:"tool-group",messages:s,startIndex:a}):t.push({type:"single",message:r,index:a});continue}t.push({type:"single",message:r,index:n}),n+=1}return t}function IX({messages:e,isLoading:t,localPath:n,latestToolIds:r,onOpenLocalLink:s,onAskUserQuestionSubmit:a,onExitPlanModeConfirm:l}){const u=x.useMemo(()=>PX(e),[e]);function d(h,p){if(h.kind==="user_prompt")return v.jsx(rX,{content:h.content},h.id);switch(h.kind){case"unknown":return v.jsx(iX,{json:h.json},h.id);case"system_init":return e.findIndex(_=>_.kind==="system_init")===p?v.jsx(cX,{message:h,rawJson:h.debugRaw},h.id):null;case"account_info":return e.findIndex(_=>_.kind==="account_info")===p?v.jsx(uX,{message:h},h.id):null;case"assistant_text":return v.jsx(hX,{message:h},h.id);case"tool":return h.toolKind==="ask_user_question"?v.jsx(mX,{message:h,onSubmit:a,isLatest:h.id===r.AskUserQuestion},h.id):h.toolKind==="exit_plan_mode"?v.jsx(gX,{message:h,onConfirm:l,isLatest:h.id===r.ExitPlanMode},h.id):h.toolKind==="todo_write"?h.id!==r.TodoWrite?null:v.jsx(_X,{message:h},h.id):v.jsx(L5,{message:h,isLoading:t,localPath:n},h.id);case"result":{const m=e[p+1],_=e[p-1];return(m==null?void 0:m.kind)==="context_cleared"||(_==null?void 0:_.kind)==="context_cleared"?null:v.jsx(kX,{message:h},h.id)}case"interrupted":return v.jsx(EX,{message:h},h.id);case"compact_boundary":return v.jsx(RX,{},h.id);case"context_cleared":return v.jsx(MX,{},h.id);case"compact_summary":return v.jsx(TX,{message:h},h.id);case"status":return p===e.length-1?v.jsx(NX,{message:h},h.id):null}}return v.jsx(h$,{onOpenLocalLink:s,children:u.map(h=>{if(h.type==="tool-group")return v.jsx("div",{className:"group relative",[Yd]:"",children:v.jsx(jX,{messages:h.messages,isLoading:t,localPath:n})},`group-${h.startIndex}`);const p=d(h.message,h.index);return p?v.jsx("div",{id:`msg-${h.message.id}`,className:"group relative",[Yd]:"",children:p},h.message.id):null})})}function HX({rootRef:e,fallbackRef:t,enabled:n,canCancel:r}){x.useEffect(()=>{if(!n)return;let s=0,a=null;const l=m=>{const _=m instanceof Element?m:null,b=e.current,S=t.current;if(ww({trigger:"pointer",activeElement:document.activeElement,pointerStartTarget:a,pointerEndTarget:_,root:b,fallback:S,hasActiveOverlay:Sw(document),hasActiveSelection:ej(window.getSelection())})!=="restore"){a=null;return}S==null||S.focus({preventScroll:!0}),a=null},u=m=>{cancelAnimationFrame(s),a=m.target instanceof Element?m.target:null},d=m=>{cancelAnimationFrame(s),s=window.requestAnimationFrame(()=>{l(m.target)})},h=()=>{a=null;const m=t.current;!m||m.disabled||m.focus({preventScroll:!0})},p=m=>{if(m.key!=="Escape")return;const _=t.current;ww({trigger:"escape",activeElement:document.activeElement,fallback:_,hasActiveOverlay:Sw(document),canCancel:r,defaultPrevented:m.defaultPrevented})==="escape-focus"&&(m.preventDefault(),_==null||_.focus({preventScroll:!0}))};return window.addEventListener("pointerdown",u,!0),window.addEventListener("pointerup",d,!0),window.addEventListener("keydown",p,!0),window.addEventListener(Gd,h),()=>{cancelAnimationFrame(s),window.removeEventListener("pointerdown",u,!0),window.removeEventListener("pointerup",d,!0),window.removeEventListener("keydown",p,!0),window.removeEventListener(Gd,h)}},[r,n,t,e])}const bd="What are we building?",FX=19,UX=72;function $X(){var G,re,ie,ge,Re,pe;const e=ty(),t=x.useRef(null),n=x.useRef(null),r=x.useRef(null),[s,a]=x.useState(""),[l,u]=x.useState(!1),[d,h]=x.useState(0),p=((G=e.runtime)==null?void 0:G.projectId)??null,_=Do(he=>p?he.projects[p]:void 0)??C$,S=Fd(he=>p?he.projects[p]:void 0)??y$,w=Do(he=>he.addTerminal),C=Do(he=>he.removeTerminal),k=Do(he=>he.toggleVisibility),M=Do(he=>he.setMainSizes),R=Do(he=>he.setTerminalSizes),T=Fd(he=>he.toggleVisibility),L=Fd(he=>he.setSize),O=Or(he=>he.scrollbackLines),z=Or(he=>he.minColumnWidth),B=_.terminals.length>0,X=!!(p&&_.isVisible&&B),P=!!(p&&B),q=!!(p&&S.isVisible),U=!!p,{isAnimating:F,mainPanelGroupRef:K,terminalFocusRequestVersion:$,terminalPanelRef:j,terminalVisualRef:H}=L$({showTerminalPane:X,shouldRenderTerminalLayout:P,projectId:p,terminalLayout:_,chatInputRef:r}),{isAnimating:W,panelGroupRef:Q,sidebarPanelRef:A,sidebarVisualRef:I}=O$({projectId:p,shouldRenderRightSidebarLayout:U,showRightSidebar:q,rightSidebarSize:S.size});HX({rootRef:n,fallbackRef:r,enabled:e.hasSelectedProject&&((re=e.runtime)==null?void 0:re.status)!=="waiting_for_user",canCancel:e.canCancel}),x.useEffect(()=>{if(e.messages.length!==0)return;a(""),u(!1);let he=0;const Te=window.setInterval(()=>{he+=1,a(bd.slice(0,he)),he>=bd.length&&(window.clearInterval(Te),u(!0))},FX);return()=>window.clearInterval(Te)},[e.activeChatId,e.messages.length]),x.useEffect(()=>{function he(Te){if(p&&!(!Te.metaKey||Te.key.toLowerCase()!=="j")){if(Te.preventDefault(),B){k(p);return}w(p)}}return window.addEventListener("keydown",he),()=>window.removeEventListener("keydown",he)},[w,B,p,k]),x.useEffect(()=>{if(e.messages.length===0)return;const he=window.requestAnimationFrame(()=>{const Te=e.scrollRef.current;Te&&Te.scrollTo({top:Te.scrollHeight,behavior:"auto"})});return()=>window.cancelAnimationFrame(he)},[e.messages.length,e.scrollRef]),x.useEffect(()=>{const he=t.current;if(!he||!P)return;const Te=()=>{const Me=he.getBoundingClientRect().height;if(Me<=0)return;const Ke=Me*(_.mainSizes[1]/100);Ke<=0||h(Dt=>Math.abs(Dt-Ke)<1?Dt:Ke)},He=new ResizeObserver(Te);return He.observe(he),Te(),()=>He.disconnect()},[p,P,_.mainSizes]);const Z=he=>Number.isFinite(he)?Math.min(O_,Math.max(CA,he)):S.size,N=v.jsxs(JM,{ref:n,className:"bg-background h-full flex flex-col overflow-hidden border-0 rounded-none relative",children:[v.jsxs(tT,{className:"flex flex-1 min-h-0 flex-col p-0 overflow-hidden relative",children:[v.jsx(e7,{sidebarCollapsed:e.sidebarCollapsed,onOpenSidebar:e.openSidebar,onExpandSidebar:e.expandSidebar,onNewChat:e.handleCompose,localPath:e.navbarLocalPath,embeddedTerminalVisible:X,onToggleEmbeddedTerminal:p?()=>{if(B){k(p);return}w(p)}:void 0,rightSidebarVisible:q,onToggleRightSidebar:p?()=>T(p):void 0,onOpenExternal:he=>{e.handleOpenExternal(he)},editorLabel:e.editorLabel}),v.jsxs(wA,{ref:e.scrollRef,onScroll:e.updateScrollState,className:"flex-1 min-h-0 px-4 scroll-pt-[72px]",children:[e.messages.length===0?v.jsx("div",{style:{height:e.transcriptPaddingBottom},"aria-hidden":"true"}):null,e.messages.length>0?v.jsxs(v.Fragment,{children:[v.jsxs("div",{className:"animate-fade-in space-y-5 pt-[72px] max-w-[800px] mx-auto",children:[v.jsx(IX,{messages:e.messages,isLoading:e.isProcessing,localPath:(ie=e.runtime)==null?void 0:ie.localPath,latestToolIds:e.latestToolIds,onOpenLocalLink:e.handleOpenLocalLink,onAskUserQuestionSubmit:e.handleAskUserQuestion,onExitPlanModeConfirm:e.handleExitPlanMode}),e.isProcessing?v.jsx(g$,{status:(ge=e.runtime)==null?void 0:ge.status}):null,e.commandError?v.jsx("div",{className:"text-sm text-destructive border border-destructive/20 bg-destructive/5 rounded-xl px-4 py-3",children:e.commandError}):null]}),v.jsx("div",{style:{height:e.transcriptPaddingBottom+96},"aria-hidden":"true"})]}):null]}),e.messages.length===0?v.jsx("div",{className:"pointer-events-none absolute inset-x-4 animate-fade-in",style:{top:UX,bottom:e.transcriptPaddingBottom},children:v.jsx("div",{className:"mx-auto flex h-full max-w-[800px] items-center justify-center",children:v.jsxs("div",{className:"flex flex-col items-center justify-center text-muted-foreground gap-4 opacity-70",children:[v.jsx(Ic,{strokeWidth:1.5,className:"size-8 text-muted-foreground kanna-empty-state-flower"}),v.jsx("div",{className:"text-base font-normal text-muted-foreground text-center max-w-xs flex items-center kanna-empty-state-text","aria-label":bd,children:v.jsxs("span",{className:"relative inline-grid place-items-start",children:[v.jsxs("span",{className:"invisible col-start-1 row-start-1 whitespace-pre flex items-center",children:[v.jsx("span",{children:bd}),v.jsx("span",{className:"kanna-typewriter-cursor-slot","aria-hidden":"true"})]}),v.jsxs("span",{className:"col-start-1 row-start-1 whitespace-pre flex items-center",children:[v.jsx("span",{children:s}),v.jsx("span",{className:"kanna-typewriter-cursor-slot","aria-hidden":"true",children:v.jsx("span",{className:"kanna-typewriter-cursor","data-typing-complete":l?"true":"false"})})]})]})})]})})},e.activeChatId??"new-chat"):null,v.jsx("div",{style:{bottom:e.transcriptPaddingBottom-36},className:ye("absolute left-1/2 -translate-x-1/2 z-10 transition-all",e.showScrollButton?"scale-100 duration-300 ease-[cubic-bezier(0.34,1.56,0.64,1)]":"scale-60 duration-300 ease-out pointer-events-none blur-sm opacity-0"),children:v.jsx("button",{onClick:e.scrollToBottom,className:"flex items-center transition-colors gap-1.5 px-2 bg-white hover:bg-muted border border-border rounded-full aspect-square cursor-pointer text-sm text-primary hover:text-foreground dark:bg-slate-700 dark:hover:bg-slate-600 dark:text-slate-100 dark:border-slate-600",children:v.jsx(bz,{className:"h-5 w-5"})})})]}),v.jsx("div",{className:"absolute bottom-0 left-0 right-0 z-20 pointer-events-none",children:v.jsx("div",{className:"bg-gradient-to-t from-background via-background pointer-events-auto",ref:e.inputRef,children:v.jsx(X9,{ref:r,onSubmit:e.handleSend,onCancel:()=>{e.handleCancel()},disabled:!e.hasSelectedProject||((Re=e.runtime)==null?void 0:Re.status)==="waiting_for_user",canCancel:e.canCancel,chatId:e.activeChatId,activeProvider:((pe=e.runtime)==null?void 0:pe.provider)??null,availableProviders:e.availableProviders},e.activeChatId??"new-chat")})})]});return v.jsx("div",{ref:t,className:"flex-1 flex flex-col min-w-0 relative",children:U&&p?v.jsxs(Nd,{groupRef:Q,orientation:"horizontal",className:"flex-1 min-h-0",onLayoutChange:he=>{var He;if(!q||W.current)return;const Te=Z(he.rightSidebar);Math.abs(Te-he.rightSidebar)<.1||(He=Q.current)==null||He.setLayout({workspace:100-Te,rightSidebar:Te})},onLayoutChanged:he=>{!q||W.current||L(p,Z(he.rightSidebar))},children:[v.jsx(To,{id:"workspace",defaultSize:`${100-S.size}%`,minSize:"50%",className:"min-h-0 min-w-0",children:P?v.jsxs(Nd,{groupRef:K,orientation:"vertical",className:"flex-1 min-h-0",onLayoutChanged:he=>{!X||F.current||M(p,[he.chat,he.terminal])},children:[v.jsx(To,{id:"chat",defaultSize:`${_.mainSizes[0]}%`,minSize:"25%",className:"min-h-0",children:N}),v.jsx(Dd,{withHandle:!0,orientation:"vertical",className:ye(!X&&"pointer-events-none opacity-0")}),v.jsx(To,{id:"terminal",defaultSize:`${_.mainSizes[1]}%`,minSize:"0%",className:"min-h-0",elementRef:j,children:v.jsx("div",{ref:H,className:"h-full min-h-0 overflow-hidden relative","data-terminal-open":X?"true":"false","data-terminal-animated":"false","data-terminal-visual":!0,style:{"--terminal-toggle-duration":`${qc}ms`},children:v.jsx("div",{style:d>0?{height:`${d}px`}:void 0,children:v.jsx(p2,{projectId:p,layout:_,onAddTerminal:w,socket:e.socket,connectionStatus:e.connectionStatus,scrollback:O,minColumnWidth:z,focusRequestVersion:$,onRemoveTerminal:(he,Te)=>{e.socket.command({type:"terminal.close",terminalId:Te}).catch(()=>{}),C(he,Te)},onTerminalLayout:R})})})})]},p):N}),v.jsx(Dd,{withHandle:!0,orientation:"horizontal",className:ye(!q&&"pointer-events-none opacity-0")}),v.jsx(To,{id:"rightSidebar",defaultSize:`${S.size}%`,maxSize:`${O_}%`,className:"min-h-0 min-w-0",elementRef:A,children:v.jsx("div",{ref:I,className:"h-full min-h-0 overflow-hidden","data-right-sidebar-open":q?"true":"false","data-right-sidebar-animated":"false","data-right-sidebar-visual":!0,style:{"--terminal-toggle-duration":`${qc}ms`},children:v.jsx(t7,{})})})]},`${p}-right-sidebar`):P&&p?v.jsxs(Nd,{groupRef:K,orientation:"vertical",className:"flex-1 min-h-0",onLayoutChanged:he=>{!X||F.current||M(p,[he.chat,he.terminal])},children:[v.jsx(To,{id:"chat",defaultSize:`${_.mainSizes[0]}%`,minSize:"25%",className:"min-h-0",children:N}),v.jsx(Dd,{withHandle:!0,orientation:"vertical",className:ye(!X&&"pointer-events-none opacity-0")}),v.jsx(To,{id:"terminal",defaultSize:`${_.mainSizes[1]}%`,minSize:"0%",className:"min-h-0",elementRef:j,children:v.jsx("div",{ref:H,className:"h-full min-h-0 overflow-hidden relative","data-terminal-open":X?"true":"false","data-terminal-animated":"false","data-terminal-visual":!0,style:{"--terminal-toggle-duration":`${qc}ms`},children:v.jsx("div",{style:d>0?{height:`${d}px`}:void 0,children:v.jsx(p2,{projectId:p,layout:_,onAddTerminal:w,socket:e.socket,connectionStatus:e.connectionStatus,scrollback:O,minColumnWidth:z,focusRequestVersion:$,onRemoveTerminal:(he,Te)=>{e.socket.command({type:"terminal.close",terminalId:Te}).catch(()=>{}),C(he,Te)},onTerminalLayout:R})})})})]},p):N})}function pk({narrow:e=!1,title:t,subtitle:n,icon:r=py}){return v.jsxs("div",{className:ye("w-full",e?"max-w-2xl px-6 pt-16 mx-auto":"px-6 pt-16 mb-10"),children:[v.jsxs("div",{className:ye("flex items-center gap-1 mb-2",e&&"justify-center"),children:[v.jsx("div",{className:"p-2 pl-0 rounded-lg",children:v.jsx(r,{className:"h-6 w-6 text-muted-foreground"})}),v.jsx("h1",{className:"text-2xl font-semibold text-foreground",children:t})]}),n&&v.jsx("p",{className:ye("text-muted-foreground",e&&"mb-10 text-center"),children:n})]})}const WX={sm:"text-sm px-2.5 py-1",md:"text-sm px-3 py-1.5"};function z5({value:e,onValueChange:t,options:n,size:r="md",className:s,optionClassName:a}){return v.jsx("div",{className:ye("inline-flex items-center rounded-full border border-border p-0.5 ",s),children:n.map(l=>{const u=l.value===e,d=l.icon,h=d?x.isValidElement(d)?d:(()=>{const m=d;return v.jsx(m,{className:r==="sm"?"h-3.5 w-3.5":"h-4 w-4"})})():null,p=v.jsxs("button",{type:"button",onClick:()=>t(l.value),disabled:l.disabled,"aria-pressed":u,className:ye("rounded-full border transition-colors",d?"grid grid-cols-[auto_auto] items-center gap-2":"inline-flex items-center gap-1.5",WX[r],u?"bg-white dark:bg-muted text-slate-900 dark:text-slate-200 border-slate-300 dark:border-white/10 bg-slate-200 ":"border-transparent text-slate-800 hover:text-slate-900 dark:text-muted-foreground dark:hover:text-foreground",l.disabled&&"opacity-50 pointer-events-none",a),children:[h,v.jsx("span",{children:l.label})]},l.value);return l.tooltip?v.jsxs(Jc,{children:[v.jsx(eu,{asChild:!0,children:p}),v.jsx(ol,{children:l.tooltip})]},l.value):p})})}function qX(e){return e.toLowerCase().replace(/[\s_]+/g,"-").replace(/[^a-z0-9-]/g,"").replace(/-+/g,"-").replace(/^-|-$/g,"")}function VX({open:e,onOpenChange:t,onConfirm:n}){const[r,s]=x.useState("new"),[a,l]=x.useState(""),[u,d]=x.useState(""),h=x.useRef(null),p=x.useRef(null);x.useEffect(()=>{e&&(s("new"),l(""),d(""),setTimeout(()=>{var C;return(C=h.current)==null?void 0:C.focus()},0))},[e]),x.useEffect(()=>{e&&setTimeout(()=>{var C,k;r==="new"?(C=h.current)==null||C.focus():(k=p.current)==null||k.focus()},0)},[r,e]);const m=qX(a),_=m?`${KB}/${m}`:"",b=u.trim(),S=r==="new"?!!m:!!b,w=()=>{if(S){if(r==="new")n({mode:"new",localPath:_,title:a.trim()});else{const C=b.split("/").pop()||b;n({mode:"existing",localPath:b,title:C})}t(!1)}};return v.jsx(WE,{open:e,onOpenChange:t,children:v.jsxs(by,{size:"sm",children:[v.jsxs(KE,{className:"space-y-4",children:[v.jsx(VE,{children:"Add Project"}),v.jsx(z5,{value:r,onValueChange:s,options:[{value:"new",label:"New Folder"},{value:"existing",label:"Existing Path"}],className:"w-full",optionClassName:"flex-1 justify-center"}),r==="new"?v.jsxs("div",{className:"space-y-2",children:[v.jsx("input",{ref:h,type:"text",value:a,onChange:C=>l(C.target.value),onKeyDown:C=>{C.key==="Enter"&&w(),C.key==="Escape"&&t(!1)},className:"w-full px-3 py-2 text-sm border border-border rounded-md bg-background outline-none",placeholder:"Project name"}),_&&v.jsx("p",{className:"text-xs text-muted-foreground font-mono",children:_})]}):v.jsxs("div",{className:"space-y-2",children:[v.jsx("input",{ref:p,type:"text",value:u,onChange:C=>d(C.target.value),onKeyDown:C=>{C.key==="Enter"&&w(),C.key==="Escape"&&t(!1)},className:"w-full px-3 py-2 text-sm border border-border rounded-md bg-background outline-none",placeholder:"~/Projects/my-app"}),v.jsx("p",{className:"text-xs text-muted-foreground",children:"The folder will be created if it doesn't exist."})]})]}),v.jsxs(GE,{children:[v.jsx(et,{variant:"ghost",size:"sm",onClick:()=>t(!1),children:"Cancel"}),v.jsx(et,{variant:"secondary",size:"sm",onClick:w,disabled:!S,children:"Create"})]})]})})}function KX({text:e}){const[t,n]=x.useState(!1);async function r(){await navigator.clipboard.writeText(e),n(!0),setTimeout(()=>n(!1),2e3)}return v.jsx(et,{variant:"ghost",size:"icon",className:"h-8 w-8 text-muted-foreground hover:text-foreground",onClick:()=>void r(),children:t?v.jsx(Bo,{className:"h-4 w-4 text-green-400"}):v.jsx(Tf,{className:"h-4 w-4"})})}function mk({children:e}){return v.jsxs("div",{className:"grid grid-cols-[1fr_auto] items-center group bg-background border border-border text-foreground rounded-xl p-1.5 pl-3 font-mono text-sm",children:[v.jsxs("pre",{className:"inline-flex items-center gap-2 overflow-x-auto",children:[v.jsx(ts,{className:"inline h-4 w-4 opacity-40"}),v.jsx("code",{children:e})]}),v.jsx(KX,{text:e})]})}function xd({children:e}){return v.jsx("div",{className:"bg-card border border-border rounded-2xl p-4",children:e})}function wv({children:e}){return v.jsx("h2",{className:"text-[13px] font-medium text-muted-foreground uppercase tracking-wider mb-3",children:e})}function Cv({icon:e,title:t,subtitle:n,iconClassName:r}){return v.jsxs("div",{className:"flex flex-col items-center gap-0",children:[v.jsx("div",{className:"p-3 mb-2 rounded-xl bg-background border border-border",children:v.jsx(e,{className:r||"h-8 w-8 text-muted-foreground"})}),v.jsx("span",{className:"text-sm font-medium",children:t}),v.jsx("span",{className:"text-xs text-muted-foreground",children:n})]})}function gk(){return v.jsx(Sz,{className:"h-4 w-4 text-muted-foreground"})}function vk({number:e,title:t,children:n}){return v.jsx("div",{className:"flex gap-4",children:v.jsxs("div",{className:"flex-1 min-w-0",children:[v.jsxs("div",{className:"grid grid-cols-[auto_1fr] items-baseline gap-3",children:[v.jsxs("div",{className:"flex-shrink-0 flex items-center justify-center font-medium text-logo",children:[e,"."]}),v.jsx("h3",{className:"font-medium text-foreground mb-2",children:t})]}),v.jsx("div",{className:"text-muted-foreground text-sm space-y-3",children:n})]})})}function GX({localPath:e,loading:t,onClick:n}){return v.jsxs(Jc,{children:[v.jsx(eu,{asChild:!0,children:v.jsxs("button",{className:ye("border border-border hover:border-primary/30 group rounded-lg bg-card px-4 py-3 flex items-center gap-3 w-full text-left hover:bg-muted/50 transition-colors",t&&"opacity-50 cursor-not-allowed"),disabled:t,onClick:n,children:[v.jsx(a6,{className:"h-4 w-4 text-muted-foreground flex-shrink-0"}),v.jsx("span",{className:"font-medium text-foreground truncate flex-1",children:MR(e)}),t?v.jsx(Js,{className:"h-4 w-4 text-muted-foreground group-hover:text-primary animate-spin flex-shrink-0"}):v.jsx(gy,{className:"h-4 w-4 text-muted-foreground opacity-0 group-hover:opacity-100 transition-opacity flex-shrink-0"})]})}),v.jsx(ol,{children:v.jsx("p",{children:e})})]})}function YX({connectionStatus:e,ready:t,snapshot:n,startingLocalPath:r,commandError:s,onOpenProject:a,onCreateProject:l}){const[u,d]=x.useState(!1),h=x.useMemo(()=>(n==null?void 0:n.projects)??[],[n==null?void 0:n.projects]),p=e==="connecting"||!t,m=e==="connected"&&t;return v.jsxs("div",{className:"flex-1 flex flex-col min-w-0 bg-background overflow-y-auto",children:[m?v.jsxs(v.Fragment,{children:[v.jsx(pk,{title:(n==null?void 0:n.machine.displayName)??"Local Projects",subtitle:`${zn} is connected, choose a project below to get started.`}),v.jsxs("div",{className:"w-full px-6 mb-10",children:[v.jsxs("div",{className:"flex items-baseline justify-between mb-3",children:[v.jsx("h2",{className:"text-[13px] font-medium text-muted-foreground uppercase tracking-wider",children:"Projects"}),v.jsxs(et,{variant:"default",size:"sm",onClick:()=>d(!0),children:[v.jsx(my,{className:"h-4 w-4 mr-1.5"}),"Add Project"]})]}),h.length>0?v.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-4 3xl:grid-cols-5 gap-2",children:h.map(_=>v.jsx(GX,{localPath:_.localPath,loading:r===_.localPath,onClick:()=>{a(_.localPath)}},_.localPath))}):v.jsx(xd,{children:v.jsx("p",{className:"text-sm text-muted-foreground",children:"No local projects discovered yet. Open one with Claude or Codex, or create a new project here."})}),s?v.jsx("div",{className:"text-sm text-destructive border border-destructive/20 bg-destructive/5 rounded-xl px-4 py-3 mt-4",children:s}):null]})]}):v.jsxs(v.Fragment,{children:[v.jsx(pk,{narrow:!0,icon:yw,title:p?`Connecting ${zn}`:`Connect ${zn}`,subtitle:p?`${zn} is starting up and loading your local projects.`:`Run ${zn} directly on your machine with full access to your local files and agent project history.`}),v.jsxs("div",{className:"max-w-2xl w-full mx-auto pb-12 px-6",children:[v.jsx(wv,{children:"Status"}),v.jsx("div",{className:"mb-8",children:v.jsx(xd,{children:v.jsxs("div",{className:"flex items-center gap-3",children:[v.jsx(Js,{className:"h-4 w-4 text-muted-foreground animate-spin"}),v.jsx("span",{className:"text-sm text-muted-foreground",children:p?`Connecting to your local ${zn} server...`:v.jsxs(v.Fragment,{children:["Not connected. Run ",v.jsx("code",{className:"bg-background border border-border rounded-md mx-0.5 p-1 font-mono text-xs text-foreground",children:nd()})," from any terminal on this machine."]})})]})})}),p?null:v.jsxs("div",{className:"mb-10",children:[v.jsx(wv,{children:"How it works"}),v.jsx(xd,{children:v.jsxs("div",{className:"flex items-center justify-around gap-6 py-4 px-2",children:[v.jsx(Cv,{icon:vy,title:`${zn} CLI`,subtitle:"On Your Machine"}),v.jsx(gk,{}),v.jsx(Cv,{icon:py,title:`${zn} Server`,subtitle:"Local WebSocket"}),v.jsx(gk,{}),v.jsx(Cv,{icon:yw,title:`${zn} UI`,subtitle:"Project Chat"})]})})]}),p?null:v.jsxs("div",{className:"mb-10",children:[v.jsx(wv,{children:"Setup"}),v.jsx(xd,{children:v.jsxs("div",{className:"space-y-4",children:[v.jsxs(vk,{number:1,title:`Start ${zn}`,children:[v.jsx("p",{children:"Run this command in your terminal:"}),v.jsx(mk,{children:nd()})]}),v.jsxs(vk,{number:2,title:"Open the local UI",children:[v.jsxs("p",{children:[zn," serves the app locally and opens the Local Projects page in an app-style browser window."]}),v.jsx(mk,{children:"http://localhost:3210/local"})]}),v.jsxs("div",{className:"mt-8",children:[v.jsx("h3",{className:"text-sm font-medium text-muted-foreground uppercase tracking-wider mb-4",children:"Notes"}),v.jsxs("div",{className:"space-y-3 text-sm",children:[v.jsxs("div",{className:"flex gap-4",children:[v.jsx("code",{className:"font-mono text-foreground whitespace-nowrap",children:nd("").trim()}),v.jsx("span",{className:"text-muted-foreground",children:"Start in the current directory"})]}),v.jsxs("div",{className:"flex gap-4",children:[v.jsx("code",{className:"font-mono text-foreground whitespace-nowrap",children:nd("--no-open")}),v.jsx("span",{className:"text-muted-foreground",children:"Start the server without opening the browser"})]})]})]})]})})]})]})]}),v.jsx(VX,{open:u,onOpenChange:d,onConfirm:_=>{l(_)}}),v.jsx("div",{className:"py-4 text-center",children:v.jsxs("span",{className:"text-xs text-muted-foreground/50",children:["v",RR.split("/")[1]]})})]})}function XX(){const e=ty();return v.jsx("div",{className:"flex-1 flex flex-col min-w-0 relative",children:v.jsx(YX,{connectionStatus:e.connectionStatus,ready:e.localProjectsReady,snapshot:e.localProjects,startingLocalPath:e.startingLocalPath,commandError:e.commandError,onOpenProject:e.handleOpenLocalProject,onCreateProject:e.handleCreateProject})})}const kv=[{id:"general",label:"General",icon:L6,subtitle:"Manage appearance, editor behavior, and embedded terminal defaults."},{id:"page-1",label:"Page 1",icon:rl,subtitle:"Placeholder content for a future settings section."},{id:"page-2",label:"Page 2",icon:H6,subtitle:"Placeholder content for a future settings section."},{id:"page-3",label:"Page 3",icon:i6,subtitle:"Placeholder content for a future settings section."}],ZX=[{value:"light",label:"Light",icon:W6},{value:"dark",label:"Dark",icon:S6},{value:"system",label:"System",icon:py}],QX=[{value:"cursor",label:"Cursor"},{value:"vscode",label:"VS Code"},{value:"windsurf",label:"Windsurf"},{value:"custom",label:"Custom"}];function Sd({title:e,description:t,children:n,bordered:r=!0,alignStart:s=!1}){return v.jsx("div",{className:r?"border-t border-border":void 0,children:v.jsxs("div",{className:`flex justify-between gap-8 py-5 ${s?"items-start":"items-center"}`,children:[v.jsxs("div",{className:"min-w-0 max-w-xl",children:[v.jsx("div",{className:"text-sm font-medium text-foreground",children:e}),v.jsx("div",{className:"mt-1 text-[13px] text-muted-foreground",children:t})]}),v.jsx("div",{className:"flex shrink-0 items-center justify-end",children:n})]})})}function JX(){var $,j;const e=ty(),{theme:t,setTheme:n}=mA(),[r,s]=x.useState("general"),a=e.connectionStatus==="connecting"||!e.localProjectsReady,l=(($=e.localProjects)==null?void 0:$.machine.displayName)??"Unavailable",u=((j=e.localProjects)==null?void 0:j.projects.length)??0,d=RR.split("/")[1]??"unknown",h=Or(H=>H.scrollbackLines),p=Or(H=>H.minColumnWidth),m=Or(H=>H.editorPreset),_=Or(H=>H.editorCommandTemplate),b=Or(H=>H.setScrollbackLines),S=Or(H=>H.setMinColumnWidth),w=Or(H=>H.setEditorPreset),C=Or(H=>H.setEditorCommandTemplate),[k,M]=x.useState(String(h)),[R,T]=x.useState(String(p)),[L,O]=x.useState(_);x.useEffect(()=>{M(String(h))},[h]),x.useEffect(()=>{T(String(p))},[p]),x.useEffect(()=>{O(_)},[_]);function z(){const H=Number(k);if(!Number.isFinite(H)){M(String(h));return}b(H)}function B(){const H=Number(R);if(!Number.isFinite(H)){T(String(p));return}S(H)}function X(H,W){H.key==="Enter"&&(W(),H.currentTarget.blur())}function P(H,W){H.key==="Enter"&&(W(),H.currentTarget.blur())}function q(){C(L)}const U=L.replaceAll("{path}","/Users/jake/Projects/kanna/src/client/app/App.tsx").replaceAll("{line}","12").replaceAll("{column}","1"),F=kv.find(H=>H.id===r)??kv[0],K=!a;return v.jsxs("div",{className:"relative flex h-full flex-1 min-w-0 bg-background",children:[v.jsxs("div",{className:"flex min-w-0 flex-1",children:[v.jsx("aside",{className:`hidden w-[200px] shrink-0 md:block ${K?"pb-[89px]":""}`,children:v.jsxs("div",{className:"flex flex-col gap-1 px-4 py-6",children:[v.jsx("div",{className:"px-3 pb-5 text-[22px] font-extrabold tracking-[-0.5px] text-foreground",children:"Settings"}),kv.map(H=>v.jsx("button",{type:"button",onClick:()=>s(H.id),className:`cursor-pointer rounded-lg px-3 py-2 text-sm ${H.id===r?"bg-muted font-medium text-foreground":"text-muted-foreground hover:bg-muted/50 hover:text-foreground"}`,children:v.jsxs("div",{className:"flex items-center gap-2.5",children:[v.jsx(H.icon,{className:"h-4 w-4 shrink-0"}),v.jsx("span",{children:H.label})]})},H.label))]})}),v.jsx("div",{className:"min-w-0 flex-1 overflow-y-auto",children:v.jsxs("div",{className:"w-full px-6 pt-16 pb-32",children:[a?v.jsx("div",{className:"flex min-h-[240px] items-center justify-center rounded-2xl border border-border bg-card/40 px-4 py-6 text-sm text-muted-foreground",children:v.jsxs("div",{className:"flex items-center gap-3",children:[v.jsx(Js,{className:"h-4 w-4 animate-spin"}),v.jsx("span",{children:"Loading machine settings…"})]})}):v.jsxs("div",{className:"mx-auto max-w-4xl",children:[v.jsxs("div",{className:"pb-6",children:[v.jsx("div",{className:"text-lg font-semibold tracking-[-0.2px] text-foreground",children:F.label}),v.jsx("div",{className:"mt-1 text-sm text-muted-foreground",children:F.subtitle})]}),r==="general"?v.jsx(v.Fragment,{children:v.jsxs("div",{className:"border-b border-border",children:[v.jsx(Sd,{title:"Theme",description:"Choose between light, dark, or system appearance",bordered:!1,children:v.jsx(z5,{value:t,onValueChange:n,options:ZX,size:"sm"})}),v.jsx(Sd,{title:"Default Editor",description:"Used by the navbar code button and local file links in chat",alignStart:!0,children:v.jsx("select",{value:m,onChange:H=>w(H.target.value),className:"min-w-[180px] rounded-lg border border-border bg-background px-3 py-2 pr-12 text-sm text-foreground outline-none",children:QX.map(H=>v.jsx("option",{value:H.value,children:H.label},H.value))})}),m==="custom"?v.jsx("div",{className:"border-t border-border",children:v.jsxs("div",{className:"flex justify-between gap-8 py-5 pl-6",children:[v.jsxs("div",{className:"min-w-0 max-w-xl",children:[v.jsx("div",{className:"text-sm font-medium text-foreground",children:"Command Template"}),v.jsxs("div",{className:"mt-1 text-[13px] text-muted-foreground",children:["Include ","{path}"," and optionally ","{line}"," and ","{column}"," in your command."]})]}),v.jsxs("div",{className:"flex min-w-0 max-w-[420px] flex-1 flex-col items-stretch gap-2",children:[v.jsx("input",{type:"text",value:L,onChange:H=>O(H.target.value),onBlur:q,onKeyDown:H=>P(H,q),className:"w-full rounded-lg border border-border bg-background px-3 py-2 font-mono text-sm text-foreground outline-none"}),v.jsxs("div",{className:"text-xs text-muted-foreground",children:["Preview: ",v.jsx("span",{className:"font-mono",children:U})]})]})]})}):null,v.jsx(Sd,{title:"Terminal Scrollback",description:"Lines retained for embedded terminal history",children:v.jsxs("div",{className:"flex min-w-0 flex-col items-end gap-2",children:[v.jsx("input",{type:"number",min:L_,max:z_,step:100,value:k,onChange:H=>M(H.target.value),onBlur:z,onKeyDown:H=>X(H,z),className:"hide-number-steppers w-28 rounded-lg border border-border bg-background px-3 py-2 text-right font-mono text-sm text-foreground outline-none"}),v.jsxs("div",{className:"text-right text-xs text-muted-foreground",children:[L_,"-",z_," lines",h===pf?" (default)":""]})]})}),v.jsx(Sd,{title:"Terminal Min Column Width",description:"Minimum width for each terminal pane",children:v.jsxs("div",{className:"flex min-w-0 flex-col items-end gap-2",children:[v.jsx("input",{type:"number",min:j_,max:B_,step:10,value:R,onChange:H=>T(H.target.value),onBlur:B,onKeyDown:H=>X(H,B),className:"hide-number-steppers w-28 rounded-lg border border-border bg-background px-3 py-2 text-right font-mono text-sm text-foreground outline-none"}),v.jsxs("div",{className:"text-right text-xs text-muted-foreground",children:[j_,"-",B_," px",p===mf?" (default)":""]})]})})]})}):v.jsxs("div",{className:"rounded-2xl border border-border bg-card/30 px-6 py-8",children:[v.jsx("div",{className:"text-sm font-medium text-foreground",children:F.label}),v.jsx("div",{className:"mt-2 max-w-xl text-sm text-muted-foreground",children:"This page is a placeholder for future settings. The sidebar navigation is now active, but only General has live controls."})]})]}),e.commandError?v.jsxs("div",{className:"mx-auto mt-4 flex max-w-4xl items-start gap-3 rounded-2xl border border-destructive/20 bg-destructive/5 px-4 py-3 text-sm text-destructive",children:[v.jsx(u6,{className:"mt-0.5 h-4 w-4 flex-shrink-0"}),v.jsx("span",{children:e.commandError})]}):null]})})]}),K?v.jsx("div",{className:"absolute bottom-0 left-0 right-0 border-t border-border bg-background/95 pt-5 backdrop-blur supports-[backdrop-filter]:bg-background/80",children:v.jsx("div",{className:"px-6 pb-5",children:v.jsxs("div",{className:"grid gap-3 text-xs text-muted-foreground sm:grid-cols-2 lg:grid-cols-4",children:[v.jsxs("div",{children:[v.jsx("div",{className:"mb-1 uppercase tracking-wide text-[11px] text-muted-foreground/80",children:"Machine"}),v.jsx("div",{className:"text-foreground/80",children:l})]}),v.jsxs("div",{children:[v.jsx("div",{className:"mb-1 uppercase tracking-wide text-[11px] text-muted-foreground/80",children:"Connection"}),v.jsx("div",{className:"text-foreground/80",children:e.connectionStatus})]}),v.jsxs("div",{children:[v.jsx("div",{className:"mb-1 uppercase tracking-wide text-[11px] text-muted-foreground/80",children:"Projects Indexed"}),v.jsx("div",{className:"text-foreground/80",children:u})]}),v.jsxs("div",{children:[v.jsx("div",{className:"mb-1 uppercase tracking-wide text-[11px] text-muted-foreground/80",children:"App Version"}),v.jsx("div",{className:"text-foreground/80",children:d})]})]})})}):null]})}function wd(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function eZ(e){if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}}function tZ(e,t){const n=eZ(t);switch(e.toolKind){case"ask_user_question":{const s=wd(n),a=wd(s==null?void 0:s.answers)??(s||{});return{answers:Object.fromEntries(Object.entries(a).map(([l,u])=>Array.isArray(u)?[l,u.map(d=>String(d))]:u&&typeof u=="object"&&Array.isArray(u.answers)?[l,u.answers.map(d=>String(d))]:u==null||u===""?[l,[]]:[l,[String(u)]])),...(s==null?void 0:s.discarded)===!0?{discarded:!0}:{}}}case"exit_plan_mode":{const s=wd(n);return{confirmed:typeof(s==null?void 0:s.confirmed)=="boolean"?s.confirmed:void 0,clearContext:typeof(s==null?void 0:s.clearContext)=="boolean"?s.clearContext:void 0,message:typeof(s==null?void 0:s.message)=="string"?s.message:void 0,...(s==null?void 0:s.discarded)===!0?{discarded:!0}:{}}}case"read_file":if(typeof n=="string")return n;const r=wd(n);return{content:typeof(r==null?void 0:r.content)=="string"?r.content:JSON.stringify(n,null,2)};default:return n}}function j5(e){return new Date(e).toISOString()}function Yr(e){return{id:e._id,messageId:e.messageId,timestamp:j5(e.createdAt),hidden:e.hidden}}function nZ(e){return{id:e._id,messageId:e.messageId,hidden:e.hidden,kind:"tool",toolKind:e.tool.toolKind,toolName:e.tool.toolName,toolId:e.tool.toolId,input:e.tool.input,timestamp:j5(e.createdAt)}}function rZ(e){if(e.debugRaw)try{return JSON.parse(e.debugRaw).tool_use_result}catch{return}}function iZ(e){const t=new Map,n=[];for(const r of e)switch(r.kind){case"user_prompt":n.push({...Yr(r),kind:"user_prompt",content:r.content});break;case"system_init":n.push({...Yr(r),kind:"system_init",provider:r.provider,model:r.model,tools:r.tools,agents:r.agents,slashCommands:r.slashCommands,mcpServers:r.mcpServers,debugRaw:r.debugRaw});break;case"account_info":n.push({...Yr(r),kind:"account_info",accountInfo:r.accountInfo});break;case"assistant_text":n.push({...Yr(r),kind:"assistant_text",text:r.text});break;case"tool_call":{const s=nZ(r);t.set(r.tool.toolId,{hydrated:s,normalized:r.tool}),n.push(s);break}case"tool_result":{const s=t.get(r.toolId);if(s){const a=s.normalized.toolKind==="ask_user_question"||s.normalized.toolKind==="exit_plan_mode"?rZ(r)??r.content:r.content;s.hydrated.result=tZ(s.normalized,a),s.hydrated.rawResult=a,s.hydrated.isError=r.isError}break}case"result":n.push({...Yr(r),kind:"result",success:!r.isError,cancelled:r.subtype==="cancelled",result:r.result,durationMs:r.durationMs,costUsd:r.costUsd});break;case"status":n.push({...Yr(r),kind:"status",status:r.status});break;case"compact_boundary":n.push({...Yr(r),kind:"compact_boundary"});break;case"compact_summary":n.push({...Yr(r),kind:"compact_summary",summary:r.summary});break;case"context_cleared":n.push({...Yr(r),kind:"context_cleared"});break;case"interrupted":n.push({...Yr(r),kind:"interrupted"});break;default:n.push({...Yr(r),kind:"unknown",json:JSON.stringify(r,null,2)});break}return n}const sZ=["AskUserQuestion","ExitPlanMode","TodoWrite"],oZ=new Set(["TodoWrite"]);function aZ(e,t){for(let n=e.length-1;n>=0;n-=1){const r=e[n];if(r.kind!=="tool")continue;const s=r;if(s.toolName===t&&!s.result)return s.id}return null}function lZ(e,t){for(let n=e.length-1;n>=0;n-=1){const r=e[n];if(r.kind!=="tool")continue;const s=r;if(s.toolName===t)return s.id}return null}function cZ(e){const t={};for(const n of sZ)t[n]=oZ.has(n)?lZ(e,n):aZ(e,n);return t}function uZ(e){return e==="starting"||e==="running"||e==="waiting_for_user"}function hZ(e){return e==="starting"||e==="running"||e==="waiting_for_user"}const dZ=25e3,fZ=15e3,pZ=4e3;class mZ{constructor(t){Xt(this,"url");Xt(this,"ws",null);Xt(this,"started",!1);Xt(this,"reconnectTimer",null);Xt(this,"reconnectDelayMs",750);Xt(this,"subscriptions",new Map);Xt(this,"pending",new Map);Xt(this,"outboundQueue",[]);Xt(this,"statusListeners",new Set);Xt(this,"heartbeatTimer",null);Xt(this,"pingTimeoutTimer",null);Xt(this,"pingPromise",null);Xt(this,"lastOpenAt",0);Xt(this,"lastMessageAt",0);Xt(this,"reconnectImmediatelyOnClose",!1);Xt(this,"handleWindowFocus",()=>{this.ensureHealthyConnection()});Xt(this,"handleVisibilityChange",()=>{if(document.visibilityState==="visible"){this.startHeartbeat(),this.ensureHealthyConnection();return}this.stopHeartbeat()});Xt(this,"handleOnline",()=>{this.ensureHealthyConnection()});this.url=t}start(){this.started||(this.started=!0,window.addEventListener("focus",this.handleWindowFocus),window.addEventListener("online",this.handleOnline),document.addEventListener("visibilitychange",this.handleVisibilityChange),this.connect())}dispose(){var t;this.started=!1,this.reconnectTimer&&(window.clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.stopHeartbeat(),this.clearPingState(),window.removeEventListener("focus",this.handleWindowFocus),window.removeEventListener("online",this.handleOnline),document.removeEventListener("visibilitychange",this.handleVisibilityChange),(t=this.ws)==null||t.close(),this.ws=null;for(const n of this.pending.values())n.reject(new Error("Socket disposed"));this.pending.clear()}onStatus(t){return this.statusListeners.add(t),t(this.getStatus()),()=>{this.statusListeners.delete(t)}}subscribe(t,n){const r=crypto.randomUUID();return this.subscriptions.set(r,{topic:t,listener:n}),this.enqueue({v:1,type:"subscribe",id:r,topic:t}),()=>{this.subscriptions.delete(r),this.enqueue({v:1,type:"unsubscribe",id:r})}}subscribeTerminal(t,n){const r=crypto.randomUUID(),s={type:"terminal",terminalId:t};return this.subscriptions.set(r,{topic:s,listener:n.onSnapshot,eventListener:n.onEvent}),this.enqueue({v:1,type:"subscribe",id:r,topic:s}),()=>{this.subscriptions.delete(r),this.enqueue({v:1,type:"unsubscribe",id:r})}}command(t){const n=crypto.randomUUID(),r={v:1,type:"command",id:n,command:t};return new Promise((s,a)=>{this.pending.set(n,{resolve:s,reject:a}),this.enqueue(r)})}ensureHealthyConnection(){return!this.ws||this.ws.readyState===WebSocket.CLOSED||this.ws.readyState===WebSocket.CLOSING?(this.reconnectNow(),Promise.resolve()):this.ws.readyState===WebSocket.CONNECTING||!this.isConnectionStale()?Promise.resolve():this.sendPing()}connect(){this.started&&(this.emitStatus("connecting"),this.ws=new WebSocket(this.url),this.ws.addEventListener("open",()=>{this.reconnectDelayMs=750,this.reconnectImmediatelyOnClose=!1,this.lastOpenAt=Date.now(),this.lastMessageAt=this.lastOpenAt,this.emitStatus("connected"),this.startHeartbeat();for(const[t,n]of this.subscriptions.entries())this.sendNow({v:1,type:"subscribe",id:t,topic:n.topic});for(;this.outboundQueue.length>0;){const t=this.outboundQueue.shift();t&&this.sendNow(t)}}),this.ws.addEventListener("message",t=>{var r;this.lastMessageAt=Date.now();let n;try{n=JSON.parse(String(t.data))}catch{return}if(n.type==="snapshot"){const s=this.subscriptions.get(n.id);s==null||s.listener(n.snapshot.data);return}if(n.type==="event"){const s=this.subscriptions.get(n.id);(r=s==null?void 0:s.eventListener)==null||r.call(s,n.event);return}if(n.type==="ack"){const s=this.pending.get(n.id);if(!s)return;this.pending.delete(n.id),s.resolve(n.result);return}if(n.type==="error"){if(!n.id){console.error(VB,n.message);return}const s=this.pending.get(n.id);if(!s)return;this.pending.delete(n.id),s.reject(new Error(n.message))}}),this.ws.addEventListener("close",()=>{if(!this.started)return;const t=this.reconnectImmediatelyOnClose;this.reconnectImmediatelyOnClose=!1,this.stopHeartbeat(),this.clearPingState(),this.emitStatus("disconnected");for(const n of this.pending.values())n.reject(new Error("Disconnected"));if(this.pending.clear(),t){this.connect();return}this.scheduleReconnect()}))}scheduleReconnect(){this.reconnectTimer===null&&(this.reconnectTimer=window.setTimeout(()=>{this.reconnectTimer=null,this.connect(),this.reconnectDelayMs=Math.min(this.reconnectDelayMs*2,5e3)},this.reconnectDelayMs))}getStatus(){var t,n;return((t=this.ws)==null?void 0:t.readyState)===WebSocket.OPEN?"connected":((n=this.ws)==null?void 0:n.readyState)===WebSocket.CONNECTING?"connecting":"disconnected"}emitStatus(t){for(const n of this.statusListeners)n(t)}isConnectionStale(){const t=Math.max(this.lastMessageAt,this.lastOpenAt);return t>0&&Date.now()-t>=dZ}sendPing(){if(this.pingPromise)return this.pingPromise;const t=this.command({type:"system.ping"}).then(()=>{this.clearPingState()}).catch(n=>{throw this.clearPingState(),this.reconnectNow(),n});return this.pingTimeoutTimer=window.setTimeout(()=>{this.clearPingState(),this.reconnectNow()},pZ),this.pingPromise=t,t}reconnectNow(){if(this.reconnectTimer!==null&&(window.clearTimeout(this.reconnectTimer),this.reconnectTimer=null),!this.ws||this.ws.readyState===WebSocket.CLOSED){this.connect();return}this.ws.readyState!==WebSocket.CONNECTING&&(this.reconnectImmediatelyOnClose=!0,this.ws.close())}startHeartbeat(){document.visibilityState==="visible"&&this.heartbeatTimer===null&&(this.heartbeatTimer=window.setInterval(()=>{var t;if(document.visibilityState!=="visible"){this.stopHeartbeat();return}((t=this.ws)==null?void 0:t.readyState)===WebSocket.OPEN&&this.ensureHealthyConnection()},fZ))}stopHeartbeat(){this.heartbeatTimer!==null&&(window.clearInterval(this.heartbeatTimer),this.heartbeatTimer=null)}clearPingState(){this.pingTimeoutTimer!==null&&(window.clearTimeout(this.pingTimeoutTimer),this.pingTimeoutTimer=null),this.pingPromise=null}enqueue(t){var n;if(((n=this.ws)==null?void 0:n.readyState)===WebSocket.OPEN){this.sendNow(t);return}this.outboundQueue.push(t)}sendNow(t){var n;(n=this.ws)==null||n.send(JSON.stringify(t))}}function gZ(e,t){var r;const n=e.find(s=>s.chats.some(a=>a.chatId===t));return n?((r=n.chats.find(s=>s.chatId!==t))==null?void 0:r.chatId)??null:null}function vZ(){return`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/ws`}function _Z(){const e=x.useRef(null);return e.current||(e.current=new mZ(vZ())),x.useEffect(()=>{const t=e.current;return t==null||t.start(),()=>{t==null||t.dispose()}},[]),e.current}function yZ(e){var fe,Ee,ze;const t=ey(),n=_Z(),r=oj(),[s,a]=x.useState({projectGroups:[]}),[l,u]=x.useState(null),[d,h]=x.useState(null),[p,m]=x.useState("connecting"),[_,b]=x.useState(!1),[S,w]=x.useState(!1),[C,k]=x.useState(!1),[M,R]=x.useState(null),[T,L]=x.useState(!1),[O,z]=x.useState(!1),[B,X]=x.useState(148),[P,q]=x.useState(!0),[U,F]=x.useState(null),[K,$]=x.useState(null),[j,H]=x.useState(null),W=k$(Or(de=>de.editorPreset)),Q=x.useRef(null),A=x.useRef(null);x.useEffect(()=>n.onStatus(m),[n]),x.useEffect(()=>n.subscribe({type:"sidebar"},de=>{a(de),b(!0),F(null)}),[n]),x.useEffect(()=>n.subscribe({type:"local-projects"},de=>{u(de),w(!0),F(null)}),[n]),x.useEffect(()=>{if(!e){h(null),k(!0);return}return k(!1),n.subscribe({type:"chat",chatId:e},de=>{h(de),k(!0),F(null)})},[e,n]),x.useEffect(()=>{if(M)return;const de=s.projectGroups[0];de&&R(de.groupKey)},[M,s.projectGroups]),x.useEffect(()=>{if(!e||!_||!C)return;if(s.projectGroups.some(ve=>ve.chats.some(Be=>Be.chatId===e))){j===e&&H(null);return}j!==e&&t("/")},[e,C,t,j,s.projectGroups,_]),x.useEffect(()=>{d&&(R(d.runtime.projectId),j===d.runtime.chatId&&H(null))},[d,j]),x.useLayoutEffect(()=>{const de=A.current;if(!de)return;const ve=new ResizeObserver(()=>{X(de.getBoundingClientRect().height)});return ve.observe(de),X(de.getBoundingClientRect().height),()=>ve.disconnect()},[]);const I=x.useMemo(()=>iZ((d==null?void 0:d.messages)??[]),[d==null?void 0:d.messages]),Z=x.useMemo(()=>cZ(I),[I]),N=(d==null?void 0:d.runtime)??null,G=(d==null?void 0:d.availableProviders)??E9,re=hZ(N==null?void 0:N.status),ie=uZ(N==null?void 0:N.status),ge=B+48,Re=!P&&I.length>0,pe=((fe=l==null?void 0:l.projects[0])==null?void 0:fe.localPath)??null,he=(N==null?void 0:N.localPath)??pe??((Ee=s.projectGroups[0])==null?void 0:Ee.localPath),Te=!!(M??(N==null?void 0:N.projectId)??((ze=s.projectGroups[0])==null?void 0:ze.groupKey)??pe);x.useEffect(()=>{const de=Q.current;if(!de)return;de.scrollHeight-de.scrollTop-de.clientHeight<120&&de.scrollTo({top:de.scrollHeight,behavior:"smooth"})},[e,I.length,N==null?void 0:N.status]);function He(){const de=Q.current;if(!de)return;const ve=de.scrollHeight-de.scrollTop-de.clientHeight;q(ve<24)}function Me(){const de=Q.current;de&&de.scrollTo({top:de.scrollHeight,behavior:"smooth"})}async function Ke(de){try{const ve=await n.command({type:"chat.create",projectId:de});R(de),H(ve.chatId),t(`/chat/${ve.chatId}`),L(!1)}catch(ve){F(ve instanceof Error?ve.message:String(ve))}}async function Dt(de){try{$(de);const ve=await n.command({type:"project.open",localPath:de});R(ve.projectId);const Be=await n.command({type:"chat.create",projectId:ve.projectId});H(Be.chatId),t(`/chat/${Be.chatId}`),L(!1),F(null)}catch(ve){F(ve instanceof Error?ve.message:String(ve))}finally{$(null)}}async function mn(de){try{$(de.localPath);const ve=await n.command(de.mode==="new"?{type:"project.create",localPath:de.localPath,title:de.title}:{type:"project.open",localPath:de.localPath});R(ve.projectId);const Be=await n.command({type:"chat.create",projectId:ve.projectId});H(Be.chatId),t(`/chat/${Be.chatId}`),L(!1),F(null)}catch(ve){F(ve instanceof Error?ve.message:String(ve))}finally{$(null)}}async function Fr(de,ve){var Be;try{let Pe=M??((Be=s.projectGroups[0])==null?void 0:Be.groupKey)??null;if(!e&&!Pe&&pe&&(Pe=(await n.command({type:"project.open",localPath:pe})).projectId,R(Pe)),!e&&!Pe)throw new Error("Open a project first");const $e=await n.command({type:"chat.send",chatId:e??void 0,projectId:e?void 0:Pe??void 0,provider:ve==null?void 0:ve.provider,content:de,model:ve==null?void 0:ve.model,modelOptions:ve==null?void 0:ve.modelOptions,planMode:ve==null?void 0:ve.planMode});!e&&$e.chatId&&(H($e.chatId),t(`/chat/${$e.chatId}`)),F(null)}catch(Pe){throw F(Pe instanceof Error?Pe.message:String(Pe)),Pe}}async function Ur(){if(e)try{await n.command({type:"chat.cancel",chatId:e})}catch(de){F(de instanceof Error?de.message:String(de))}}async function gn(de){if(await r.confirm({title:"Delete Chat",description:`Delete "${de.title}"? This cannot be undone.`,confirmLabel:"Delete",confirmVariant:"destructive"}))try{if(await n.command({type:"chat.delete",chatId:de.chatId}),de.chatId===e){const Be=gZ(s.projectGroups,de.chatId);t(Be?`/chat/${Be}`:"/")}}catch(Be){F(Be instanceof Error?Be.message:String(Be))}}async function vn(de){const ve=s.projectGroups.find($e=>$e.groupKey===de);if(!ve)return;const Be=ve.localPath.split("/").filter(Boolean).pop()??ve.localPath;if(await r.confirm({title:"Remove",description:`Remove "${Be}" from the sidebar? Existing chats will be removed from ${zn}.`,confirmLabel:"Remove",confirmVariant:"destructive"}))try{await n.command({type:"project.remove",projectId:de}),Do.getState().clearProject(de),Fd.getState().clearProject(de),(N==null?void 0:N.projectId)===de&&t("/"),F(null)}catch($e){F($e instanceof Error?$e.message:String($e))}}async function vr(de){var Be,Pe;const ve=(N==null?void 0:N.localPath)??((Be=l==null?void 0:l.projects[0])==null?void 0:Be.localPath)??((Pe=s.projectGroups[0])==null?void 0:Pe.localPath);if(ve)try{await Mi({action:de,localPath:ve})}catch($e){F($e instanceof Error?$e.message:String($e))}}async function ri(de){try{await Mi({action:"open_editor",localPath:de.path,line:de.line,column:de.column})}catch(ve){F(ve instanceof Error?ve.message:String(ve))}}async function Mi(de){const ve=Or.getState();F(null),await n.command({type:"system.openExternal",...de,editor:de.action==="open_editor"?{preset:ve.editorPreset,commandTemplate:ve.editorCommandTemplate}:void 0})}function It(){var Be,Pe;const de=M??((Be=s.projectGroups[0])==null?void 0:Be.groupKey);if(de){Ke(de);return}const ve=(Pe=l==null?void 0:l.projects[0])==null?void 0:Pe.localPath;if(ve){Dt(ve);return}t("/")}async function ro(de,ve,Be){if(e)try{await n.command({type:"chat.respondTool",chatId:e,toolUseId:de,result:{questions:ve,answers:Be}})}catch(Pe){F(Pe instanceof Error?Pe.message:String(Pe))}}async function ae(de,ve,Be,Pe){if(e){ve&&QM.getState().setPlanMode(!1);try{await n.command({type:"chat.respondTool",chatId:e,toolUseId:de,result:{confirmed:ve,...Be?{clearContext:!0}:{},...Pe?{message:Pe}:{}}})}catch($e){F($e instanceof Error?$e.message:String($e))}}}return{socket:n,activeChatId:e,sidebarData:s,localProjects:l,chatSnapshot:d,connectionStatus:p,sidebarReady:_,localProjectsReady:S,commandError:U,startingLocalPath:K,sidebarOpen:T,sidebarCollapsed:O,scrollRef:Q,inputRef:A,messages:I,latestToolIds:Z,runtime:N,availableProviders:G,isProcessing:re,canCancel:ie,transcriptPaddingBottom:ge,showScrollButton:Re,navbarLocalPath:he,editorLabel:W,hasSelectedProject:Te,openSidebar:()=>L(!0),closeSidebar:()=>L(!1),collapseSidebar:()=>z(!0),expandSidebar:()=>z(!1),updateScrollState:He,scrollToBottom:Me,handleCreateChat:Ke,handleOpenLocalProject:Dt,handleCreateProject:mn,handleSend:Fr,handleCancel:Ur,handleDeleteChat:gn,handleRemoveProject:vn,handleOpenExternal:vr,handleOpenLocalLink:ri,handleCompose:It,handleAskUserQuestion:ro,handleExitPlanMode:ae}}function bZ(){const e=ki(),t=W3(),n=yZ(t.chatId??null),r=e.pathname==="/"||e.pathname==="/settings";return v.jsxs("div",{className:"flex h-[100dvh] min-h-[100dvh] overflow-hidden",children:[v.jsx(k9,{data:n.sidebarData,activeChatId:n.activeChatId,connectionStatus:n.connectionStatus,ready:n.sidebarReady,open:n.sidebarOpen,collapsed:n.sidebarCollapsed,showMobileOpenButton:r,onOpen:n.openSidebar,onClose:n.closeSidebar,onCollapse:n.collapseSidebar,onExpand:n.expandSidebar,onCreateChat:s=>{n.handleCreateChat(s)},onDeleteChat:s=>{n.handleDeleteChat(s)},onRemoveProject:s=>{n.handleRemoveProject(s)}}),v.jsx(i4,{context:n})]})}function xZ(){return v.jsx($B,{children:v.jsx(sj,{children:v.jsx(o4,{children:v.jsxs(Nc,{element:v.jsx(bZ,{}),children:[v.jsx(Nc,{path:"/",element:v.jsx(XX,{})}),v.jsx(Nc,{path:"/settings",element:v.jsx(JX,{})}),v.jsx(Nc,{path:"/chat/:chatId",element:v.jsx($X,{})})]})})})})}const B5=document.getElementById("root");if(!B5)throw new Error("Missing #root");o3.createRoot(B5).render(v.jsx(x.StrictMode,{children:v.jsx(A4,{children:v.jsx(i$,{children:v.jsx(xZ,{})})})}));
503
+ `),s=SX(n,r),a=wX(n,r,s);return CX(a)}function SX(e,t){const n=e.length,r=t.length,s=Array.from({length:n+1},()=>Array(r+1).fill(0));for(let a=1;a<=n;a++)for(let l=1;l<=r;l++)s[a][l]=e[a-1]===t[l-1]?s[a-1][l-1]+1:Math.max(s[a-1][l],s[a][l-1]);return s}function wX(e,t,n){const r=[];let s=e.length,a=t.length;for(;s>0||a>0;)s>0&&a>0&&e[s-1]===t[a-1]?(r.push({type:"context",text:e[s-1],oldIdx:s,newIdx:a}),s--,a--):a>0&&(s===0||n[s][a-1]>=n[s-1][a])?(r.push({type:"added",text:t[a-1],oldIdx:s,newIdx:a}),a--):(r.push({type:"removed",text:e[s-1],oldIdx:s,newIdx:a}),s--);return r.reverse()}function CX(e){return e.map(t=>{const n=t.type==="removed"?"-":t.type==="added"?"+":" ";return{type:t.type,content:`${n}${t.text}`}})}function Sv({content:e,isDiff:t=!1,oldString:n,newString:r}){const s=x.useMemo(()=>t&&n!==void 0&&r!==void 0?xX(n,r):[],[t,n,r]),a=x.useMemo(()=>t?[]:yX(e),[e,t]),l=x.useMemo(()=>a.some(u=>u.lineNumber!==null),[a]);return t&&s.length>0?v.jsx("div",{className:"my-1 rounded-lg border border-border overflow-hidden",children:v.jsx("div",{className:"overflow-auto max-h-64 md:max-h-[50vh]",children:v.jsx("table",{className:"w-full border-collapse text-xs font-mono",children:v.jsx("tbody",{children:s.map((u,d)=>{const h=u.type==="removed"?"bg-red-500/10 dark:bg-red-500/15":u.type==="added"?"bg-green-500/10 dark:bg-green-500/15":"",p=u.type==="removed"?"text-red-700 dark:text-red-400":u.type==="added"?"text-green-700 dark:text-green-400":"text-foreground";return v.jsxs("tr",{className:h,children:[v.jsx("td",{className:`px-2 py-0 select-none w-0 whitespace-nowrap ${u.type==="removed"?"text-red-500/50":u.type==="added"?"text-green-500/50":"text-muted-foreground/50"}`,children:u.type==="removed"?"-":u.type==="added"?"+":" "}),v.jsx("td",{className:`px-2 py-0 whitespace-pre select-all ${p}`,children:u.content.slice(1)})]},d)})})})})}):v.jsx("div",{className:"my-1 rounded-lg border border-border overflow-hidden",children:v.jsx("div",{className:"overflow-auto max-h-64 md:max-h-[50vh]",children:v.jsx("table",{className:"w-full border-collapse text-xs font-mono",children:v.jsx("tbody",{children:a.map((u,d)=>v.jsxs("tr",{children:[l&&v.jsx("td",{className:"px-2 py-0 select-none w-0 whitespace-nowrap text-muted-foreground/50 text-right",children:u.lineNumber!==null?u.lineNumber:""}),v.jsx("td",{className:"px-2 py-0 whitespace-pre select-all text-foreground",children:bX(u.content)})]},d))})})})})}function L5({message:e,isLoading:t=!1,localPath:n}){var S;const r=e.result!==void 0,s=!r&&t,a=x.useMemo(()=>{if(e.toolKind==="skill")return e.input.skill;if(e.toolKind==="glob")return`Search files ${e.input.pattern==="**/*"?"in all directories":`matching ${e.input.pattern}`}`;if(e.toolKind==="grep"){const w=e.input.pattern,C=e.input.outputMode;return C==="count"?`Count \`${w}\` occurrences`:C==="content"?`Find \`${w}\` in text`:`Find \`${w}\` in files`}return e.toolKind==="bash"?e.input.description||(e.input.command?YB(e.input.command):"Bash"):e.toolKind==="web_search"?e.input.query||"Web Search":e.toolKind==="read_file"?`Read ${ev(e.input.filePath,n)}`:e.toolKind==="write_file"?`Write ${ev(e.input.filePath,n)}`:e.toolKind==="edit_file"?`Edit ${ev(e.input.filePath,n)}`:e.toolKind==="mcp_generic"?`${Bv(e.input.tool)} from ${Bv(e.input.server)}`:e.toolKind==="subagent_task"&&e.input.subagentType||e.toolName},[e.input,e.toolName,n]),l=x.useMemo(()=>e.toolKind==="subagent_task",[e.toolKind]),u=x.useMemo(()=>{if(e.toolKind==="skill")return e.input.skill},[e.input,e.toolKind]),d=e.toolKind==="bash",h=e.toolKind==="write_file",p=e.toolKind==="edit_file",m=e.toolKind==="read_file",_=x.useMemo(()=>{if(typeof e.result=="string")return e.result;if(!e.result)return"";if(typeof e.result=="object"&&e.result!==null&&"content"in e.result){const w=e.result.content;if(typeof w=="string")return w}return JSON.stringify(e.result,null,2)},[e.result]),b=x.useMemo(()=>{switch(e.toolKind){case"bash":return e.input.command;case"write_file":return e.input.content;default:return JSON.stringify(e.input,null,2)}},[e]);return v.jsx(to,{className:"w-full",children:v.jsxs(Gf,{expandedContent:v.jsx(Yf,{className:"my-4 text-sm",children:v.jsxs("div",{className:"flex flex-col gap-2",children:[p?v.jsx(Sv,{content:"",isDiff:!0,oldString:e.input.oldString,newString:e.input.newString}):!m&&!h&&v.jsx(g2,{label:d?v.jsxs("span",{className:"flex items-center gap-2 w-full",children:[v.jsx("span",{children:"Command"}),!!e.input.timeoutMs&&v.jsxs("span",{className:"text-muted-foreground",children:["timeout: ",String(e.input.timeoutMs),"ms"]}),!!e.input.runInBackground&&v.jsx("span",{className:"text-muted-foreground",children:"background"})]}):h?"Contents":"Input",copyText:b,children:b}),r&&m&&!e.isError&&v.jsx(Sv,{content:_}),h&&!e.isError&&v.jsx(Sv,{content:e.input.content}),r&&!m&&!(h&&!e.isError)&&!(p&&!e.isError)&&v.jsx(g2,{label:e.isError?"Error":"Result",copyText:_,children:_})]})}),children:[v.jsx("div",{className:"w-5 h-5 relative flex items-center justify-center",children:(()=>{if(e.isError)return v.jsx(vu,{className:"size-4 text-destructive"});if(l)return v.jsx(_y,{className:"size-4 text-muted-icon"});const w=xA(e.toolName);return v.jsx(w,{className:"size-4 text-muted-icon"})})()}),v.jsx(Xs,{className:"text-left transition-opacity duration-200 truncate",children:v.jsx(Bf,{animate:s,shimmerWidth:Math.max(20,(((S=u||a)==null?void 0:S.length)??33)*3),children:u||a})})]})})}function kX({message:e}){const t=n=>{if(n<1e3)return`${n}ms`;const r=Math.floor(n/1e3),s=Math.floor(r/3600),a=Math.floor(r%3600/60),l=r%60;return s>0?`${s}h${a>0?` ${a}m`:""}`:a>0?`${a}m${l>0?` ${l}s`:""}`:`${l}s`};return v.jsxs(to,{className:`px-0.5 text-xs tracking-wide ${e.durationMs>6e4?"":"hidden"}`,children:[v.jsx("div",{className:"w-full h-[1px] bg-border"}),v.jsxs(Xs,{className:"whitespace-nowrap text-[11px] tracking-widest text-muted-foreground/60 uppercase flex-shrink-0",children:["Worked for ",t(e.durationMs)]}),v.jsx("div",{className:"w-full h-[1px] bg-border"})]})}function EX({message:e}){return v.jsx("div",{className:"flex items-center justify-end gap-2 text-sm text-muted-foreground my-3",children:v.jsxs("div",{className:"inline-flex gap-1.5 items-center justify-center whitespace-nowrap text-sm font-medium bg-background text-foreground/60 border border-border h-9 pl-1 pr-4 rounded-full",children:[v.jsx(Iz,{className:"h-4 w-4 ml-1.5"}),v.jsx("em",{children:"Interrupted"})]})})}function bf({size:e=4}){return v.jsxs("svg",{className:"flex-1",viewBox:`0 0 100 ${e}`,preserveAspectRatio:"none",style:{height:`${e}px`},children:[v.jsx("pattern",{id:"zigzag",width:e,height:e,patternUnits:"userSpaceOnUse",children:v.jsx("path",{d:`M0 ${e} L${e/2} 0 L${e} ${e}`,fill:"none",stroke:"currentColor",strokeWidth:"0.5",className:"text-muted-foreground/30",style:{stroke:"currentColor"}})}),v.jsx("rect",{width:"100%",height:e,fill:"url(#zigzag)",className:"text-muted-foreground/30"})]})}function RX(){return v.jsxs("div",{className:"flex items-center gap-3",children:[v.jsx(bf,{}),v.jsx("span",{className:"text-[11px] tracking-widest text-muted-foreground uppercase flex-shrink-0",children:"Compacted"}),v.jsx(bf,{})]})}function MX(){return v.jsxs("div",{className:"flex items-center gap-3",children:[v.jsx(bf,{}),v.jsx("span",{className:"text-[11px] tracking-widest text-muted-foreground uppercase flex-shrink-0",children:"Context Cleared"}),v.jsx(bf,{})]})}function TX({message:e}){return v.jsx(to,{children:v.jsxs(Gf,{expandedContent:v.jsx(Yf,{className:"my-4 text-xs",children:v.jsx("div",{className:"prose prose-sm dark:prose-invert max-w-none",children:v.jsx(np,{remarkPlugins:[rp],components:Xf(),children:e.summary})})}),children:[v.jsx("div",{className:"w-5 h-5 relative flex items-center justify-center",children:v.jsx(HE,{className:"h-4.5 w-4.5 text-muted-foreground"})}),v.jsx(Xs,{children:"Summarized"})]})})}const AX={compacting:"Compacting..."};function NX({message:e}){const t=AX[e.status]||e.status;return v.jsxs(to,{className:"grid grid-cols-[auto_1fr] items-center gap-1.5 text-sm animate-pulse",children:[v.jsx("div",{className:"w-5 h-5 relative flex items-center justify-center",children:v.jsx(HE,{className:"h-4.5 w-4.5 text-muted-foreground"})}),v.jsx(Xs,{className:"text-left transition-opacity duration-200 truncate",children:t})]})}const DX={read_file:{key:"read",singular:"read",plural:"reads"},edit_file:{key:"edit",singular:"edit",plural:"edits"},write_file:{key:"write",singular:"write",plural:"writes"},bash:{key:"bash",singular:"command",plural:"commands"},grep:{key:"grep",singular:"search",plural:"searches"},glob:{key:"glob",singular:"glob",plural:"globs"},subagent_task:{key:"task",singular:"agent",plural:"agents"},web_search:{key:"websearch",singular:"web search",plural:"web searches"},skill:{key:"skill",singular:"skill",plural:"skills"},todo_write:{key:"todo",singular:"todo update",plural:"todo updates"}},OX={key:"other",singular:"tool call",plural:"tool calls"};function LX(e){return DX[e]??OX}function zX(e){const t=new Map,n=[];for(const r of e){const s=r.toolKind,a=LX(s),l=t.get(a.key);l?l.count++:(t.set(a.key,{category:a,count:1}),n.push(a.key))}return n.map(r=>{const{category:s,count:a}=t.get(r);return`${a} ${a===1?s.singular:s.plural}`}).join(", ")}function jX({messages:e,isLoading:t,localPath:n}){const[r,s]=x.useState(!1),a=x.useMemo(()=>zX(e),[e]),u=e.some(d=>d.result===void 0)&&t;return v.jsx(to,{className:"w-full",children:v.jsxs("div",{className:"flex flex-col w-full",children:[v.jsx("button",{onClick:()=>s(!r),className:`group cursor-pointer grid grid-cols-[auto_1fr] items-center gap-1 text-sm ${!r&&!u?"hover:opacity-60 transition-opacity":""}`,children:v.jsxs("div",{className:"grid grid-cols-[auto_1fr] items-center gap-1.5",children:[v.jsx("div",{className:"w-5 h-5 relative flex items-center justify-center",children:v.jsx(ts,{className:`h-4.5 w-4.5 text-muted-icon transition-all duration-200 ${r?"rotate-90":""}`})}),v.jsx(Xs,{className:"text-left",children:v.jsx(Bf,{animate:u,children:a})})]})}),r&&v.jsxs("div",{className:"my-4 flex flex-col gap-3",children:[e.map(d=>v.jsx(L5,{message:d,isLoading:t,localPath:n},d.id)),e.length>5&&v.jsx("button",{onClick:()=>s(!1),className:"cursor-pointer grid grid-cols-[auto_1fr] items-center gap-1 text-xs hover:opacity-80 transition-opacity",children:v.jsxs("div",{className:"grid grid-cols-[auto_1fr] items-center gap-1.5",children:[v.jsx("div",{className:"w-5 h-5 relative flex items-center justify-center",children:v.jsx(ts,{className:"h-4.5 w-4.5 text-muted-icon -rotate-90"})}),v.jsx(Xs,{className:"text-left",children:"Collapse"})]})})]})]})})}const BX=new Set(["AskUserQuestion","ExitPlanMode","TodoWrite"]);function fk(e){if(e.kind!=="tool")return!1;const t=e.toolName;return!BX.has(t)}function PX(e){const t=[];let n=0;for(;n<e.length;){const r=e[n];if(fk(r)){const s=[r],a=n;for(n+=1;n<e.length&&fk(e[n]);)s.push(e[n]),n+=1;s.length>=2?t.push({type:"tool-group",messages:s,startIndex:a}):t.push({type:"single",message:r,index:a});continue}t.push({type:"single",message:r,index:n}),n+=1}return t}function IX({messages:e,isLoading:t,localPath:n,latestToolIds:r,onOpenLocalLink:s,onAskUserQuestionSubmit:a,onExitPlanModeConfirm:l}){const u=x.useMemo(()=>PX(e),[e]);function d(h,p){if(h.kind==="user_prompt")return v.jsx(rX,{content:h.content},h.id);switch(h.kind){case"unknown":return v.jsx(iX,{json:h.json},h.id);case"system_init":return e.findIndex(_=>_.kind==="system_init")===p?v.jsx(cX,{message:h,rawJson:h.debugRaw},h.id):null;case"account_info":return e.findIndex(_=>_.kind==="account_info")===p?v.jsx(uX,{message:h},h.id):null;case"assistant_text":return v.jsx(hX,{message:h},h.id);case"tool":return h.toolKind==="ask_user_question"?v.jsx(mX,{message:h,onSubmit:a,isLatest:h.id===r.AskUserQuestion},h.id):h.toolKind==="exit_plan_mode"?v.jsx(gX,{message:h,onConfirm:l,isLatest:h.id===r.ExitPlanMode},h.id):h.toolKind==="todo_write"?h.id!==r.TodoWrite?null:v.jsx(_X,{message:h},h.id):v.jsx(L5,{message:h,isLoading:t,localPath:n},h.id);case"result":{const m=e[p+1],_=e[p-1];return(m==null?void 0:m.kind)==="context_cleared"||(_==null?void 0:_.kind)==="context_cleared"?null:v.jsx(kX,{message:h},h.id)}case"interrupted":return v.jsx(EX,{message:h},h.id);case"compact_boundary":return v.jsx(RX,{},h.id);case"context_cleared":return v.jsx(MX,{},h.id);case"compact_summary":return v.jsx(TX,{message:h},h.id);case"status":return p===e.length-1?v.jsx(NX,{message:h},h.id):null}}return v.jsx(h$,{onOpenLocalLink:s,children:u.map(h=>{if(h.type==="tool-group")return v.jsx("div",{className:"group relative",[Yd]:"",children:v.jsx(jX,{messages:h.messages,isLoading:t,localPath:n})},`group-${h.startIndex}`);const p=d(h.message,h.index);return p?v.jsx("div",{id:`msg-${h.message.id}`,className:"group relative",[Yd]:"",children:p},h.message.id):null})})}function HX({rootRef:e,fallbackRef:t,enabled:n,canCancel:r}){x.useEffect(()=>{if(!n)return;let s=0,a=null;const l=m=>{const _=m instanceof Element?m:null,b=e.current,S=t.current;if(ww({trigger:"pointer",activeElement:document.activeElement,pointerStartTarget:a,pointerEndTarget:_,root:b,fallback:S,hasActiveOverlay:Sw(document),hasActiveSelection:ej(window.getSelection())})!=="restore"){a=null;return}S==null||S.focus({preventScroll:!0}),a=null},u=m=>{cancelAnimationFrame(s),a=m.target instanceof Element?m.target:null},d=m=>{cancelAnimationFrame(s),s=window.requestAnimationFrame(()=>{l(m.target)})},h=()=>{a=null;const m=t.current;!m||m.disabled||m.focus({preventScroll:!0})},p=m=>{if(m.key!=="Escape")return;const _=t.current;ww({trigger:"escape",activeElement:document.activeElement,fallback:_,hasActiveOverlay:Sw(document),canCancel:r,defaultPrevented:m.defaultPrevented})==="escape-focus"&&(m.preventDefault(),_==null||_.focus({preventScroll:!0}))};return window.addEventListener("pointerdown",u,!0),window.addEventListener("pointerup",d,!0),window.addEventListener("keydown",p,!0),window.addEventListener(Gd,h),()=>{cancelAnimationFrame(s),window.removeEventListener("pointerdown",u,!0),window.removeEventListener("pointerup",d,!0),window.removeEventListener("keydown",p,!0),window.removeEventListener(Gd,h)}},[r,n,t,e])}const bd="What are we building?",FX=19,UX=72;function $X(){var G,re,ie,ge,Re,pe;const e=ty(),t=x.useRef(null),n=x.useRef(null),r=x.useRef(null),[s,a]=x.useState(""),[l,u]=x.useState(!1),[d,h]=x.useState(0),p=((G=e.runtime)==null?void 0:G.projectId)??null,_=Do(he=>p?he.projects[p]:void 0)??C$,S=Fd(he=>p?he.projects[p]:void 0)??y$,w=Do(he=>he.addTerminal),C=Do(he=>he.removeTerminal),k=Do(he=>he.toggleVisibility),M=Do(he=>he.setMainSizes),R=Do(he=>he.setTerminalSizes),T=Fd(he=>he.toggleVisibility),L=Fd(he=>he.setSize),O=Or(he=>he.scrollbackLines),z=Or(he=>he.minColumnWidth),B=_.terminals.length>0,X=!!(p&&_.isVisible&&B),P=!!(p&&B),q=!!(p&&S.isVisible),U=!!p,{isAnimating:F,mainPanelGroupRef:K,terminalFocusRequestVersion:$,terminalPanelRef:j,terminalVisualRef:H}=L$({showTerminalPane:X,shouldRenderTerminalLayout:P,projectId:p,terminalLayout:_,chatInputRef:r}),{isAnimating:W,panelGroupRef:Q,sidebarPanelRef:A,sidebarVisualRef:I}=O$({projectId:p,shouldRenderRightSidebarLayout:U,showRightSidebar:q,rightSidebarSize:S.size});HX({rootRef:n,fallbackRef:r,enabled:e.hasSelectedProject&&((re=e.runtime)==null?void 0:re.status)!=="waiting_for_user",canCancel:e.canCancel}),x.useEffect(()=>{if(e.messages.length!==0)return;a(""),u(!1);let he=0;const Te=window.setInterval(()=>{he+=1,a(bd.slice(0,he)),he>=bd.length&&(window.clearInterval(Te),u(!0))},FX);return()=>window.clearInterval(Te)},[e.activeChatId,e.messages.length]),x.useEffect(()=>{function he(Te){if(p&&!(!Te.metaKey||Te.key.toLowerCase()!=="j")){if(Te.preventDefault(),B){k(p);return}w(p)}}return window.addEventListener("keydown",he),()=>window.removeEventListener("keydown",he)},[w,B,p,k]),x.useEffect(()=>{if(e.messages.length===0)return;const he=window.requestAnimationFrame(()=>{const Te=e.scrollRef.current;Te&&Te.scrollTo({top:Te.scrollHeight,behavior:"auto"})});return()=>window.cancelAnimationFrame(he)},[e.messages.length,e.scrollRef]),x.useEffect(()=>{const he=t.current;if(!he||!P)return;const Te=()=>{const Me=he.getBoundingClientRect().height;if(Me<=0)return;const Ke=Me*(_.mainSizes[1]/100);Ke<=0||h(Dt=>Math.abs(Dt-Ke)<1?Dt:Ke)},He=new ResizeObserver(Te);return He.observe(he),Te(),()=>He.disconnect()},[p,P,_.mainSizes]);const Z=he=>Number.isFinite(he)?Math.min(O_,Math.max(CA,he)):S.size,N=v.jsxs(JM,{ref:n,className:"bg-background h-full flex flex-col overflow-hidden border-0 rounded-none relative",children:[v.jsxs(tT,{className:"flex flex-1 min-h-0 flex-col p-0 overflow-hidden relative",children:[v.jsx(e7,{sidebarCollapsed:e.sidebarCollapsed,onOpenSidebar:e.openSidebar,onExpandSidebar:e.expandSidebar,onNewChat:e.handleCompose,localPath:e.navbarLocalPath,embeddedTerminalVisible:X,onToggleEmbeddedTerminal:p?()=>{if(B){k(p);return}w(p)}:void 0,rightSidebarVisible:q,onToggleRightSidebar:p?()=>T(p):void 0,onOpenExternal:he=>{e.handleOpenExternal(he)},editorLabel:e.editorLabel}),v.jsxs(wA,{ref:e.scrollRef,onScroll:e.updateScrollState,className:"flex-1 min-h-0 px-4 scroll-pt-[72px]",children:[e.messages.length===0?v.jsx("div",{style:{height:e.transcriptPaddingBottom},"aria-hidden":"true"}):null,e.messages.length>0?v.jsxs(v.Fragment,{children:[v.jsxs("div",{className:"animate-fade-in space-y-5 pt-[72px] max-w-[800px] mx-auto",children:[v.jsx(IX,{messages:e.messages,isLoading:e.isProcessing,localPath:(ie=e.runtime)==null?void 0:ie.localPath,latestToolIds:e.latestToolIds,onOpenLocalLink:e.handleOpenLocalLink,onAskUserQuestionSubmit:e.handleAskUserQuestion,onExitPlanModeConfirm:e.handleExitPlanMode}),e.isProcessing?v.jsx(g$,{status:(ge=e.runtime)==null?void 0:ge.status}):null,e.commandError?v.jsx("div",{className:"text-sm text-destructive border border-destructive/20 bg-destructive/5 rounded-xl px-4 py-3",children:e.commandError}):null]}),v.jsx("div",{style:{height:e.transcriptPaddingBottom+96},"aria-hidden":"true"})]}):null]}),e.messages.length===0?v.jsx("div",{className:"pointer-events-none absolute inset-x-4 animate-fade-in",style:{top:UX,bottom:e.transcriptPaddingBottom},children:v.jsx("div",{className:"mx-auto flex h-full max-w-[800px] items-center justify-center",children:v.jsxs("div",{className:"flex flex-col items-center justify-center text-muted-foreground gap-4 opacity-70",children:[v.jsx(Ic,{strokeWidth:1.5,className:"size-8 text-muted-foreground kanna-empty-state-flower"}),v.jsx("div",{className:"text-base font-normal text-muted-foreground text-center max-w-xs flex items-center kanna-empty-state-text","aria-label":bd,children:v.jsxs("span",{className:"relative inline-grid place-items-start",children:[v.jsxs("span",{className:"invisible col-start-1 row-start-1 whitespace-pre flex items-center",children:[v.jsx("span",{children:bd}),v.jsx("span",{className:"kanna-typewriter-cursor-slot","aria-hidden":"true"})]}),v.jsxs("span",{className:"col-start-1 row-start-1 whitespace-pre flex items-center",children:[v.jsx("span",{children:s}),v.jsx("span",{className:"kanna-typewriter-cursor-slot","aria-hidden":"true",children:v.jsx("span",{className:"kanna-typewriter-cursor","data-typing-complete":l?"true":"false"})})]})]})})]})})},e.activeChatId??"new-chat"):null,v.jsx("div",{style:{bottom:e.transcriptPaddingBottom-75},className:ye("absolute left-1/2 -translate-x-1/2 z-10 transition-all",e.showScrollButton?"scale-100 duration-300 ease-[cubic-bezier(0.34,1.56,0.64,1)]":"scale-60 duration-300 ease-out pointer-events-none blur-sm opacity-0"),children:v.jsx("button",{onClick:e.scrollToBottom,className:"flex items-center transition-colors gap-1.5 px-2 bg-white hover:bg-muted border border-border rounded-full aspect-square cursor-pointer text-sm text-primary hover:text-foreground dark:bg-slate-700 dark:hover:bg-slate-600 dark:text-slate-100 dark:border-slate-600",children:v.jsx(bz,{className:"h-5 w-5"})})})]}),v.jsx("div",{className:"absolute bottom-0 left-0 right-0 z-20 pointer-events-none",children:v.jsx("div",{className:"bg-gradient-to-t from-background via-background pointer-events-auto",ref:e.inputRef,children:v.jsx(X9,{ref:r,onSubmit:e.handleSend,onCancel:()=>{e.handleCancel()},disabled:!e.hasSelectedProject||((Re=e.runtime)==null?void 0:Re.status)==="waiting_for_user",canCancel:e.canCancel,chatId:e.activeChatId,activeProvider:((pe=e.runtime)==null?void 0:pe.provider)??null,availableProviders:e.availableProviders},e.activeChatId??"new-chat")})})]});return v.jsx("div",{ref:t,className:"flex-1 flex flex-col min-w-0 relative",children:U&&p?v.jsxs(Nd,{groupRef:Q,orientation:"horizontal",className:"flex-1 min-h-0",onLayoutChange:he=>{var He;if(!q||W.current)return;const Te=Z(he.rightSidebar);Math.abs(Te-he.rightSidebar)<.1||(He=Q.current)==null||He.setLayout({workspace:100-Te,rightSidebar:Te})},onLayoutChanged:he=>{!q||W.current||L(p,Z(he.rightSidebar))},children:[v.jsx(To,{id:"workspace",defaultSize:`${100-S.size}%`,minSize:"50%",className:"min-h-0 min-w-0",children:P?v.jsxs(Nd,{groupRef:K,orientation:"vertical",className:"flex-1 min-h-0",onLayoutChanged:he=>{!X||F.current||M(p,[he.chat,he.terminal])},children:[v.jsx(To,{id:"chat",defaultSize:`${_.mainSizes[0]}%`,minSize:"25%",className:"min-h-0",children:N}),v.jsx(Dd,{withHandle:!0,orientation:"vertical",className:ye(!X&&"pointer-events-none opacity-0")}),v.jsx(To,{id:"terminal",defaultSize:`${_.mainSizes[1]}%`,minSize:"0%",className:"min-h-0",elementRef:j,children:v.jsx("div",{ref:H,className:"h-full min-h-0 overflow-hidden relative","data-terminal-open":X?"true":"false","data-terminal-animated":"false","data-terminal-visual":!0,style:{"--terminal-toggle-duration":`${qc}ms`},children:v.jsx("div",{style:d>0?{height:`${d}px`}:void 0,children:v.jsx(p2,{projectId:p,layout:_,onAddTerminal:w,socket:e.socket,connectionStatus:e.connectionStatus,scrollback:O,minColumnWidth:z,focusRequestVersion:$,onRemoveTerminal:(he,Te)=>{e.socket.command({type:"terminal.close",terminalId:Te}).catch(()=>{}),C(he,Te)},onTerminalLayout:R})})})})]},p):N}),v.jsx(Dd,{withHandle:!0,orientation:"horizontal",className:ye(!q&&"pointer-events-none opacity-0")}),v.jsx(To,{id:"rightSidebar",defaultSize:`${S.size}%`,maxSize:`${O_}%`,className:"min-h-0 min-w-0",elementRef:A,children:v.jsx("div",{ref:I,className:"h-full min-h-0 overflow-hidden","data-right-sidebar-open":q?"true":"false","data-right-sidebar-animated":"false","data-right-sidebar-visual":!0,style:{"--terminal-toggle-duration":`${qc}ms`},children:v.jsx(t7,{})})})]},`${p}-right-sidebar`):P&&p?v.jsxs(Nd,{groupRef:K,orientation:"vertical",className:"flex-1 min-h-0",onLayoutChanged:he=>{!X||F.current||M(p,[he.chat,he.terminal])},children:[v.jsx(To,{id:"chat",defaultSize:`${_.mainSizes[0]}%`,minSize:"25%",className:"min-h-0",children:N}),v.jsx(Dd,{withHandle:!0,orientation:"vertical",className:ye(!X&&"pointer-events-none opacity-0")}),v.jsx(To,{id:"terminal",defaultSize:`${_.mainSizes[1]}%`,minSize:"0%",className:"min-h-0",elementRef:j,children:v.jsx("div",{ref:H,className:"h-full min-h-0 overflow-hidden relative","data-terminal-open":X?"true":"false","data-terminal-animated":"false","data-terminal-visual":!0,style:{"--terminal-toggle-duration":`${qc}ms`},children:v.jsx("div",{style:d>0?{height:`${d}px`}:void 0,children:v.jsx(p2,{projectId:p,layout:_,onAddTerminal:w,socket:e.socket,connectionStatus:e.connectionStatus,scrollback:O,minColumnWidth:z,focusRequestVersion:$,onRemoveTerminal:(he,Te)=>{e.socket.command({type:"terminal.close",terminalId:Te}).catch(()=>{}),C(he,Te)},onTerminalLayout:R})})})})]},p):N})}function pk({narrow:e=!1,title:t,subtitle:n,icon:r=py}){return v.jsxs("div",{className:ye("w-full",e?"max-w-2xl px-6 pt-16 mx-auto":"px-6 pt-16 mb-10"),children:[v.jsxs("div",{className:ye("flex items-center gap-1 mb-2",e&&"justify-center"),children:[v.jsx("div",{className:"p-2 pl-0 rounded-lg",children:v.jsx(r,{className:"h-6 w-6 text-muted-foreground"})}),v.jsx("h1",{className:"text-2xl font-semibold text-foreground",children:t})]}),n&&v.jsx("p",{className:ye("text-muted-foreground",e&&"mb-10 text-center"),children:n})]})}const WX={sm:"text-sm px-2.5 py-1",md:"text-sm px-3 py-1.5"};function z5({value:e,onValueChange:t,options:n,size:r="md",className:s,optionClassName:a}){return v.jsx("div",{className:ye("inline-flex items-center rounded-full border border-border p-0.5 ",s),children:n.map(l=>{const u=l.value===e,d=l.icon,h=d?x.isValidElement(d)?d:(()=>{const m=d;return v.jsx(m,{className:r==="sm"?"h-3.5 w-3.5":"h-4 w-4"})})():null,p=v.jsxs("button",{type:"button",onClick:()=>t(l.value),disabled:l.disabled,"aria-pressed":u,className:ye("rounded-full border transition-colors",d?"grid grid-cols-[auto_auto] items-center gap-2":"inline-flex items-center gap-1.5",WX[r],u?"bg-white dark:bg-muted text-slate-900 dark:text-slate-200 border-slate-300 dark:border-white/10 bg-slate-200 ":"border-transparent text-slate-800 hover:text-slate-900 dark:text-muted-foreground dark:hover:text-foreground",l.disabled&&"opacity-50 pointer-events-none",a),children:[h,v.jsx("span",{children:l.label})]},l.value);return l.tooltip?v.jsxs(Jc,{children:[v.jsx(eu,{asChild:!0,children:p}),v.jsx(ol,{children:l.tooltip})]},l.value):p})})}function qX(e){return e.toLowerCase().replace(/[\s_]+/g,"-").replace(/[^a-z0-9-]/g,"").replace(/-+/g,"-").replace(/^-|-$/g,"")}function VX({open:e,onOpenChange:t,onConfirm:n}){const[r,s]=x.useState("new"),[a,l]=x.useState(""),[u,d]=x.useState(""),h=x.useRef(null),p=x.useRef(null);x.useEffect(()=>{e&&(s("new"),l(""),d(""),setTimeout(()=>{var C;return(C=h.current)==null?void 0:C.focus()},0))},[e]),x.useEffect(()=>{e&&setTimeout(()=>{var C,k;r==="new"?(C=h.current)==null||C.focus():(k=p.current)==null||k.focus()},0)},[r,e]);const m=qX(a),_=m?`${KB}/${m}`:"",b=u.trim(),S=r==="new"?!!m:!!b,w=()=>{if(S){if(r==="new")n({mode:"new",localPath:_,title:a.trim()});else{const C=b.split("/").pop()||b;n({mode:"existing",localPath:b,title:C})}t(!1)}};return v.jsx(WE,{open:e,onOpenChange:t,children:v.jsxs(by,{size:"sm",children:[v.jsxs(KE,{className:"space-y-4",children:[v.jsx(VE,{children:"Add Project"}),v.jsx(z5,{value:r,onValueChange:s,options:[{value:"new",label:"New Folder"},{value:"existing",label:"Existing Path"}],className:"w-full",optionClassName:"flex-1 justify-center"}),r==="new"?v.jsxs("div",{className:"space-y-2",children:[v.jsx("input",{ref:h,type:"text",value:a,onChange:C=>l(C.target.value),onKeyDown:C=>{C.key==="Enter"&&w(),C.key==="Escape"&&t(!1)},className:"w-full px-3 py-2 text-sm border border-border rounded-md bg-background outline-none",placeholder:"Project name"}),_&&v.jsx("p",{className:"text-xs text-muted-foreground font-mono",children:_})]}):v.jsxs("div",{className:"space-y-2",children:[v.jsx("input",{ref:p,type:"text",value:u,onChange:C=>d(C.target.value),onKeyDown:C=>{C.key==="Enter"&&w(),C.key==="Escape"&&t(!1)},className:"w-full px-3 py-2 text-sm border border-border rounded-md bg-background outline-none",placeholder:"~/Projects/my-app"}),v.jsx("p",{className:"text-xs text-muted-foreground",children:"The folder will be created if it doesn't exist."})]})]}),v.jsxs(GE,{children:[v.jsx(et,{variant:"ghost",size:"sm",onClick:()=>t(!1),children:"Cancel"}),v.jsx(et,{variant:"secondary",size:"sm",onClick:w,disabled:!S,children:"Create"})]})]})})}function KX({text:e}){const[t,n]=x.useState(!1);async function r(){await navigator.clipboard.writeText(e),n(!0),setTimeout(()=>n(!1),2e3)}return v.jsx(et,{variant:"ghost",size:"icon",className:"h-8 w-8 text-muted-foreground hover:text-foreground",onClick:()=>void r(),children:t?v.jsx(Bo,{className:"h-4 w-4 text-green-400"}):v.jsx(Tf,{className:"h-4 w-4"})})}function mk({children:e}){return v.jsxs("div",{className:"grid grid-cols-[1fr_auto] items-center group bg-background border border-border text-foreground rounded-xl p-1.5 pl-3 font-mono text-sm",children:[v.jsxs("pre",{className:"inline-flex items-center gap-2 overflow-x-auto",children:[v.jsx(ts,{className:"inline h-4 w-4 opacity-40"}),v.jsx("code",{children:e})]}),v.jsx(KX,{text:e})]})}function xd({children:e}){return v.jsx("div",{className:"bg-card border border-border rounded-2xl p-4",children:e})}function wv({children:e}){return v.jsx("h2",{className:"text-[13px] font-medium text-muted-foreground uppercase tracking-wider mb-3",children:e})}function Cv({icon:e,title:t,subtitle:n,iconClassName:r}){return v.jsxs("div",{className:"flex flex-col items-center gap-0",children:[v.jsx("div",{className:"p-3 mb-2 rounded-xl bg-background border border-border",children:v.jsx(e,{className:r||"h-8 w-8 text-muted-foreground"})}),v.jsx("span",{className:"text-sm font-medium",children:t}),v.jsx("span",{className:"text-xs text-muted-foreground",children:n})]})}function gk(){return v.jsx(Sz,{className:"h-4 w-4 text-muted-foreground"})}function vk({number:e,title:t,children:n}){return v.jsx("div",{className:"flex gap-4",children:v.jsxs("div",{className:"flex-1 min-w-0",children:[v.jsxs("div",{className:"grid grid-cols-[auto_1fr] items-baseline gap-3",children:[v.jsxs("div",{className:"flex-shrink-0 flex items-center justify-center font-medium text-logo",children:[e,"."]}),v.jsx("h3",{className:"font-medium text-foreground mb-2",children:t})]}),v.jsx("div",{className:"text-muted-foreground text-sm space-y-3",children:n})]})})}function GX({localPath:e,loading:t,onClick:n}){return v.jsxs(Jc,{children:[v.jsx(eu,{asChild:!0,children:v.jsxs("button",{className:ye("border border-border hover:border-primary/30 group rounded-lg bg-card px-4 py-3 flex items-center gap-3 w-full text-left hover:bg-muted/50 transition-colors",t&&"opacity-50 cursor-not-allowed"),disabled:t,onClick:n,children:[v.jsx(a6,{className:"h-4 w-4 text-muted-foreground flex-shrink-0"}),v.jsx("span",{className:"font-medium text-foreground truncate flex-1",children:MR(e)}),t?v.jsx(Js,{className:"h-4 w-4 text-muted-foreground group-hover:text-primary animate-spin flex-shrink-0"}):v.jsx(gy,{className:"h-4 w-4 text-muted-foreground opacity-0 group-hover:opacity-100 transition-opacity flex-shrink-0"})]})}),v.jsx(ol,{children:v.jsx("p",{children:e})})]})}function YX({connectionStatus:e,ready:t,snapshot:n,startingLocalPath:r,commandError:s,onOpenProject:a,onCreateProject:l}){const[u,d]=x.useState(!1),h=x.useMemo(()=>(n==null?void 0:n.projects)??[],[n==null?void 0:n.projects]),p=e==="connecting"||!t,m=e==="connected"&&t;return v.jsxs("div",{className:"flex-1 flex flex-col min-w-0 bg-background overflow-y-auto",children:[m?v.jsxs(v.Fragment,{children:[v.jsx(pk,{title:(n==null?void 0:n.machine.displayName)??"Local Projects",subtitle:`${zn} is connected, choose a project below to get started.`}),v.jsxs("div",{className:"w-full px-6 mb-10",children:[v.jsxs("div",{className:"flex items-baseline justify-between mb-3",children:[v.jsx("h2",{className:"text-[13px] font-medium text-muted-foreground uppercase tracking-wider",children:"Projects"}),v.jsxs(et,{variant:"default",size:"sm",onClick:()=>d(!0),children:[v.jsx(my,{className:"h-4 w-4 mr-1.5"}),"Add Project"]})]}),h.length>0?v.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-4 3xl:grid-cols-5 gap-2",children:h.map(_=>v.jsx(GX,{localPath:_.localPath,loading:r===_.localPath,onClick:()=>{a(_.localPath)}},_.localPath))}):v.jsx(xd,{children:v.jsx("p",{className:"text-sm text-muted-foreground",children:"No local projects discovered yet. Open one with Claude or Codex, or create a new project here."})}),s?v.jsx("div",{className:"text-sm text-destructive border border-destructive/20 bg-destructive/5 rounded-xl px-4 py-3 mt-4",children:s}):null]})]}):v.jsxs(v.Fragment,{children:[v.jsx(pk,{narrow:!0,icon:yw,title:p?`Connecting ${zn}`:`Connect ${zn}`,subtitle:p?`${zn} is starting up and loading your local projects.`:`Run ${zn} directly on your machine with full access to your local files and agent project history.`}),v.jsxs("div",{className:"max-w-2xl w-full mx-auto pb-12 px-6",children:[v.jsx(wv,{children:"Status"}),v.jsx("div",{className:"mb-8",children:v.jsx(xd,{children:v.jsxs("div",{className:"flex items-center gap-3",children:[v.jsx(Js,{className:"h-4 w-4 text-muted-foreground animate-spin"}),v.jsx("span",{className:"text-sm text-muted-foreground",children:p?`Connecting to your local ${zn} server...`:v.jsxs(v.Fragment,{children:["Not connected. Run ",v.jsx("code",{className:"bg-background border border-border rounded-md mx-0.5 p-1 font-mono text-xs text-foreground",children:nd()})," from any terminal on this machine."]})})]})})}),p?null:v.jsxs("div",{className:"mb-10",children:[v.jsx(wv,{children:"How it works"}),v.jsx(xd,{children:v.jsxs("div",{className:"flex items-center justify-around gap-6 py-4 px-2",children:[v.jsx(Cv,{icon:vy,title:`${zn} CLI`,subtitle:"On Your Machine"}),v.jsx(gk,{}),v.jsx(Cv,{icon:py,title:`${zn} Server`,subtitle:"Local WebSocket"}),v.jsx(gk,{}),v.jsx(Cv,{icon:yw,title:`${zn} UI`,subtitle:"Project Chat"})]})})]}),p?null:v.jsxs("div",{className:"mb-10",children:[v.jsx(wv,{children:"Setup"}),v.jsx(xd,{children:v.jsxs("div",{className:"space-y-4",children:[v.jsxs(vk,{number:1,title:`Start ${zn}`,children:[v.jsx("p",{children:"Run this command in your terminal:"}),v.jsx(mk,{children:nd()})]}),v.jsxs(vk,{number:2,title:"Open the local UI",children:[v.jsxs("p",{children:[zn," serves the app locally and opens the Local Projects page in an app-style browser window."]}),v.jsx(mk,{children:"http://localhost:3210/local"})]}),v.jsxs("div",{className:"mt-8",children:[v.jsx("h3",{className:"text-sm font-medium text-muted-foreground uppercase tracking-wider mb-4",children:"Notes"}),v.jsxs("div",{className:"space-y-3 text-sm",children:[v.jsxs("div",{className:"flex gap-4",children:[v.jsx("code",{className:"font-mono text-foreground whitespace-nowrap",children:nd("").trim()}),v.jsx("span",{className:"text-muted-foreground",children:"Start in the current directory"})]}),v.jsxs("div",{className:"flex gap-4",children:[v.jsx("code",{className:"font-mono text-foreground whitespace-nowrap",children:nd("--no-open")}),v.jsx("span",{className:"text-muted-foreground",children:"Start the server without opening the browser"})]})]})]})]})})]})]})]}),v.jsx(VX,{open:u,onOpenChange:d,onConfirm:_=>{l(_)}}),v.jsx("div",{className:"py-4 text-center",children:v.jsxs("span",{className:"text-xs text-muted-foreground/50",children:["v",RR.split("/")[1]]})})]})}function XX(){const e=ty();return v.jsx("div",{className:"flex-1 flex flex-col min-w-0 relative",children:v.jsx(YX,{connectionStatus:e.connectionStatus,ready:e.localProjectsReady,snapshot:e.localProjects,startingLocalPath:e.startingLocalPath,commandError:e.commandError,onOpenProject:e.handleOpenLocalProject,onCreateProject:e.handleCreateProject})})}const kv=[{id:"general",label:"General",icon:L6,subtitle:"Manage appearance, editor behavior, and embedded terminal defaults."},{id:"page-1",label:"Page 1",icon:rl,subtitle:"Placeholder content for a future settings section."},{id:"page-2",label:"Page 2",icon:H6,subtitle:"Placeholder content for a future settings section."},{id:"page-3",label:"Page 3",icon:i6,subtitle:"Placeholder content for a future settings section."}],ZX=[{value:"light",label:"Light",icon:W6},{value:"dark",label:"Dark",icon:S6},{value:"system",label:"System",icon:py}],QX=[{value:"cursor",label:"Cursor"},{value:"vscode",label:"VS Code"},{value:"windsurf",label:"Windsurf"},{value:"custom",label:"Custom"}];function Sd({title:e,description:t,children:n,bordered:r=!0,alignStart:s=!1}){return v.jsx("div",{className:r?"border-t border-border":void 0,children:v.jsxs("div",{className:`flex justify-between gap-8 py-5 ${s?"items-start":"items-center"}`,children:[v.jsxs("div",{className:"min-w-0 max-w-xl",children:[v.jsx("div",{className:"text-sm font-medium text-foreground",children:e}),v.jsx("div",{className:"mt-1 text-[13px] text-muted-foreground",children:t})]}),v.jsx("div",{className:"flex shrink-0 items-center justify-end",children:n})]})})}function JX(){var $,j;const e=ty(),{theme:t,setTheme:n}=mA(),[r,s]=x.useState("general"),a=e.connectionStatus==="connecting"||!e.localProjectsReady,l=(($=e.localProjects)==null?void 0:$.machine.displayName)??"Unavailable",u=((j=e.localProjects)==null?void 0:j.projects.length)??0,d=RR.split("/")[1]??"unknown",h=Or(H=>H.scrollbackLines),p=Or(H=>H.minColumnWidth),m=Or(H=>H.editorPreset),_=Or(H=>H.editorCommandTemplate),b=Or(H=>H.setScrollbackLines),S=Or(H=>H.setMinColumnWidth),w=Or(H=>H.setEditorPreset),C=Or(H=>H.setEditorCommandTemplate),[k,M]=x.useState(String(h)),[R,T]=x.useState(String(p)),[L,O]=x.useState(_);x.useEffect(()=>{M(String(h))},[h]),x.useEffect(()=>{T(String(p))},[p]),x.useEffect(()=>{O(_)},[_]);function z(){const H=Number(k);if(!Number.isFinite(H)){M(String(h));return}b(H)}function B(){const H=Number(R);if(!Number.isFinite(H)){T(String(p));return}S(H)}function X(H,W){H.key==="Enter"&&(W(),H.currentTarget.blur())}function P(H,W){H.key==="Enter"&&(W(),H.currentTarget.blur())}function q(){C(L)}const U=L.replaceAll("{path}","/Users/jake/Projects/kanna/src/client/app/App.tsx").replaceAll("{line}","12").replaceAll("{column}","1"),F=kv.find(H=>H.id===r)??kv[0],K=!a;return v.jsxs("div",{className:"relative flex h-full flex-1 min-w-0 bg-background",children:[v.jsxs("div",{className:"flex min-w-0 flex-1",children:[v.jsx("aside",{className:`hidden w-[200px] shrink-0 md:block ${K?"pb-[89px]":""}`,children:v.jsxs("div",{className:"flex flex-col gap-1 px-4 py-6",children:[v.jsx("div",{className:"px-3 pb-5 text-[22px] font-extrabold tracking-[-0.5px] text-foreground",children:"Settings"}),kv.map(H=>v.jsx("button",{type:"button",onClick:()=>s(H.id),className:`cursor-pointer rounded-lg px-3 py-2 text-sm ${H.id===r?"bg-muted font-medium text-foreground":"text-muted-foreground hover:bg-muted/50 hover:text-foreground"}`,children:v.jsxs("div",{className:"flex items-center gap-2.5",children:[v.jsx(H.icon,{className:"h-4 w-4 shrink-0"}),v.jsx("span",{children:H.label})]})},H.label))]})}),v.jsx("div",{className:"min-w-0 flex-1 overflow-y-auto",children:v.jsxs("div",{className:"w-full px-6 pt-16 pb-32",children:[a?v.jsx("div",{className:"flex min-h-[240px] items-center justify-center rounded-2xl border border-border bg-card/40 px-4 py-6 text-sm text-muted-foreground",children:v.jsxs("div",{className:"flex items-center gap-3",children:[v.jsx(Js,{className:"h-4 w-4 animate-spin"}),v.jsx("span",{children:"Loading machine settings…"})]})}):v.jsxs("div",{className:"mx-auto max-w-4xl",children:[v.jsxs("div",{className:"pb-6",children:[v.jsx("div",{className:"text-lg font-semibold tracking-[-0.2px] text-foreground",children:F.label}),v.jsx("div",{className:"mt-1 text-sm text-muted-foreground",children:F.subtitle})]}),r==="general"?v.jsx(v.Fragment,{children:v.jsxs("div",{className:"border-b border-border",children:[v.jsx(Sd,{title:"Theme",description:"Choose between light, dark, or system appearance",bordered:!1,children:v.jsx(z5,{value:t,onValueChange:n,options:ZX,size:"sm"})}),v.jsx(Sd,{title:"Default Editor",description:"Used by the navbar code button and local file links in chat",alignStart:!0,children:v.jsx("select",{value:m,onChange:H=>w(H.target.value),className:"min-w-[180px] rounded-lg border border-border bg-background px-3 py-2 pr-12 text-sm text-foreground outline-none",children:QX.map(H=>v.jsx("option",{value:H.value,children:H.label},H.value))})}),m==="custom"?v.jsx("div",{className:"border-t border-border",children:v.jsxs("div",{className:"flex justify-between gap-8 py-5 pl-6",children:[v.jsxs("div",{className:"min-w-0 max-w-xl",children:[v.jsx("div",{className:"text-sm font-medium text-foreground",children:"Command Template"}),v.jsxs("div",{className:"mt-1 text-[13px] text-muted-foreground",children:["Include ","{path}"," and optionally ","{line}"," and ","{column}"," in your command."]})]}),v.jsxs("div",{className:"flex min-w-0 max-w-[420px] flex-1 flex-col items-stretch gap-2",children:[v.jsx("input",{type:"text",value:L,onChange:H=>O(H.target.value),onBlur:q,onKeyDown:H=>P(H,q),className:"w-full rounded-lg border border-border bg-background px-3 py-2 font-mono text-sm text-foreground outline-none"}),v.jsxs("div",{className:"text-xs text-muted-foreground",children:["Preview: ",v.jsx("span",{className:"font-mono",children:U})]})]})]})}):null,v.jsx(Sd,{title:"Terminal Scrollback",description:"Lines retained for embedded terminal history",children:v.jsxs("div",{className:"flex min-w-0 flex-col items-end gap-2",children:[v.jsx("input",{type:"number",min:L_,max:z_,step:100,value:k,onChange:H=>M(H.target.value),onBlur:z,onKeyDown:H=>X(H,z),className:"hide-number-steppers w-28 rounded-lg border border-border bg-background px-3 py-2 text-right font-mono text-sm text-foreground outline-none"}),v.jsxs("div",{className:"text-right text-xs text-muted-foreground",children:[L_,"-",z_," lines",h===pf?" (default)":""]})]})}),v.jsx(Sd,{title:"Terminal Min Column Width",description:"Minimum width for each terminal pane",children:v.jsxs("div",{className:"flex min-w-0 flex-col items-end gap-2",children:[v.jsx("input",{type:"number",min:j_,max:B_,step:10,value:R,onChange:H=>T(H.target.value),onBlur:B,onKeyDown:H=>X(H,B),className:"hide-number-steppers w-28 rounded-lg border border-border bg-background px-3 py-2 text-right font-mono text-sm text-foreground outline-none"}),v.jsxs("div",{className:"text-right text-xs text-muted-foreground",children:[j_,"-",B_," px",p===mf?" (default)":""]})]})})]})}):v.jsxs("div",{className:"rounded-2xl border border-border bg-card/30 px-6 py-8",children:[v.jsx("div",{className:"text-sm font-medium text-foreground",children:F.label}),v.jsx("div",{className:"mt-2 max-w-xl text-sm text-muted-foreground",children:"This page is a placeholder for future settings. The sidebar navigation is now active, but only General has live controls."})]})]}),e.commandError?v.jsxs("div",{className:"mx-auto mt-4 flex max-w-4xl items-start gap-3 rounded-2xl border border-destructive/20 bg-destructive/5 px-4 py-3 text-sm text-destructive",children:[v.jsx(u6,{className:"mt-0.5 h-4 w-4 flex-shrink-0"}),v.jsx("span",{children:e.commandError})]}):null]})})]}),K?v.jsx("div",{className:"absolute bottom-0 left-0 right-0 border-t border-border bg-background/95 pt-5 backdrop-blur supports-[backdrop-filter]:bg-background/80",children:v.jsx("div",{className:"px-6 pb-5",children:v.jsxs("div",{className:"grid gap-3 text-xs text-muted-foreground sm:grid-cols-2 lg:grid-cols-4",children:[v.jsxs("div",{children:[v.jsx("div",{className:"mb-1 uppercase tracking-wide text-[11px] text-muted-foreground/80",children:"Machine"}),v.jsx("div",{className:"text-foreground/80",children:l})]}),v.jsxs("div",{children:[v.jsx("div",{className:"mb-1 uppercase tracking-wide text-[11px] text-muted-foreground/80",children:"Connection"}),v.jsx("div",{className:"text-foreground/80",children:e.connectionStatus})]}),v.jsxs("div",{children:[v.jsx("div",{className:"mb-1 uppercase tracking-wide text-[11px] text-muted-foreground/80",children:"Projects Indexed"}),v.jsx("div",{className:"text-foreground/80",children:u})]}),v.jsxs("div",{children:[v.jsx("div",{className:"mb-1 uppercase tracking-wide text-[11px] text-muted-foreground/80",children:"App Version"}),v.jsx("div",{className:"text-foreground/80",children:d})]})]})})}):null]})}function wd(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function eZ(e){if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}}function tZ(e,t){const n=eZ(t);switch(e.toolKind){case"ask_user_question":{const s=wd(n),a=wd(s==null?void 0:s.answers)??(s||{});return{answers:Object.fromEntries(Object.entries(a).map(([l,u])=>Array.isArray(u)?[l,u.map(d=>String(d))]:u&&typeof u=="object"&&Array.isArray(u.answers)?[l,u.answers.map(d=>String(d))]:u==null||u===""?[l,[]]:[l,[String(u)]])),...(s==null?void 0:s.discarded)===!0?{discarded:!0}:{}}}case"exit_plan_mode":{const s=wd(n);return{confirmed:typeof(s==null?void 0:s.confirmed)=="boolean"?s.confirmed:void 0,clearContext:typeof(s==null?void 0:s.clearContext)=="boolean"?s.clearContext:void 0,message:typeof(s==null?void 0:s.message)=="string"?s.message:void 0,...(s==null?void 0:s.discarded)===!0?{discarded:!0}:{}}}case"read_file":if(typeof n=="string")return n;const r=wd(n);return{content:typeof(r==null?void 0:r.content)=="string"?r.content:JSON.stringify(n,null,2)};default:return n}}function j5(e){return new Date(e).toISOString()}function Yr(e){return{id:e._id,messageId:e.messageId,timestamp:j5(e.createdAt),hidden:e.hidden}}function nZ(e){return{id:e._id,messageId:e.messageId,hidden:e.hidden,kind:"tool",toolKind:e.tool.toolKind,toolName:e.tool.toolName,toolId:e.tool.toolId,input:e.tool.input,timestamp:j5(e.createdAt)}}function rZ(e){if(e.debugRaw)try{return JSON.parse(e.debugRaw).tool_use_result}catch{return}}function iZ(e){const t=new Map,n=[];for(const r of e)switch(r.kind){case"user_prompt":n.push({...Yr(r),kind:"user_prompt",content:r.content});break;case"system_init":n.push({...Yr(r),kind:"system_init",provider:r.provider,model:r.model,tools:r.tools,agents:r.agents,slashCommands:r.slashCommands,mcpServers:r.mcpServers,debugRaw:r.debugRaw});break;case"account_info":n.push({...Yr(r),kind:"account_info",accountInfo:r.accountInfo});break;case"assistant_text":n.push({...Yr(r),kind:"assistant_text",text:r.text});break;case"tool_call":{const s=nZ(r);t.set(r.tool.toolId,{hydrated:s,normalized:r.tool}),n.push(s);break}case"tool_result":{const s=t.get(r.toolId);if(s){const a=s.normalized.toolKind==="ask_user_question"||s.normalized.toolKind==="exit_plan_mode"?rZ(r)??r.content:r.content;s.hydrated.result=tZ(s.normalized,a),s.hydrated.rawResult=a,s.hydrated.isError=r.isError}break}case"result":n.push({...Yr(r),kind:"result",success:!r.isError,cancelled:r.subtype==="cancelled",result:r.result,durationMs:r.durationMs,costUsd:r.costUsd});break;case"status":n.push({...Yr(r),kind:"status",status:r.status});break;case"compact_boundary":n.push({...Yr(r),kind:"compact_boundary"});break;case"compact_summary":n.push({...Yr(r),kind:"compact_summary",summary:r.summary});break;case"context_cleared":n.push({...Yr(r),kind:"context_cleared"});break;case"interrupted":n.push({...Yr(r),kind:"interrupted"});break;default:n.push({...Yr(r),kind:"unknown",json:JSON.stringify(r,null,2)});break}return n}const sZ=["AskUserQuestion","ExitPlanMode","TodoWrite"],oZ=new Set(["TodoWrite"]);function aZ(e,t){for(let n=e.length-1;n>=0;n-=1){const r=e[n];if(r.kind!=="tool")continue;const s=r;if(s.toolName===t&&!s.result)return s.id}return null}function lZ(e,t){for(let n=e.length-1;n>=0;n-=1){const r=e[n];if(r.kind!=="tool")continue;const s=r;if(s.toolName===t)return s.id}return null}function cZ(e){const t={};for(const n of sZ)t[n]=oZ.has(n)?lZ(e,n):aZ(e,n);return t}function uZ(e){return e==="starting"||e==="running"||e==="waiting_for_user"}function hZ(e){return e==="starting"||e==="running"||e==="waiting_for_user"}const dZ=25e3,fZ=15e3,pZ=4e3;class mZ{constructor(t){Xt(this,"url");Xt(this,"ws",null);Xt(this,"started",!1);Xt(this,"reconnectTimer",null);Xt(this,"reconnectDelayMs",750);Xt(this,"subscriptions",new Map);Xt(this,"pending",new Map);Xt(this,"outboundQueue",[]);Xt(this,"statusListeners",new Set);Xt(this,"heartbeatTimer",null);Xt(this,"pingTimeoutTimer",null);Xt(this,"pingPromise",null);Xt(this,"lastOpenAt",0);Xt(this,"lastMessageAt",0);Xt(this,"reconnectImmediatelyOnClose",!1);Xt(this,"handleWindowFocus",()=>{this.ensureHealthyConnection()});Xt(this,"handleVisibilityChange",()=>{if(document.visibilityState==="visible"){this.startHeartbeat(),this.ensureHealthyConnection();return}this.stopHeartbeat()});Xt(this,"handleOnline",()=>{this.ensureHealthyConnection()});this.url=t}start(){this.started||(this.started=!0,window.addEventListener("focus",this.handleWindowFocus),window.addEventListener("online",this.handleOnline),document.addEventListener("visibilitychange",this.handleVisibilityChange),this.connect())}dispose(){var t;this.started=!1,this.reconnectTimer&&(window.clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.stopHeartbeat(),this.clearPingState(),window.removeEventListener("focus",this.handleWindowFocus),window.removeEventListener("online",this.handleOnline),document.removeEventListener("visibilitychange",this.handleVisibilityChange),(t=this.ws)==null||t.close(),this.ws=null;for(const n of this.pending.values())n.reject(new Error("Socket disposed"));this.pending.clear()}onStatus(t){return this.statusListeners.add(t),t(this.getStatus()),()=>{this.statusListeners.delete(t)}}subscribe(t,n){const r=crypto.randomUUID();return this.subscriptions.set(r,{topic:t,listener:n}),this.enqueue({v:1,type:"subscribe",id:r,topic:t}),()=>{this.subscriptions.delete(r),this.enqueue({v:1,type:"unsubscribe",id:r})}}subscribeTerminal(t,n){const r=crypto.randomUUID(),s={type:"terminal",terminalId:t};return this.subscriptions.set(r,{topic:s,listener:n.onSnapshot,eventListener:n.onEvent}),this.enqueue({v:1,type:"subscribe",id:r,topic:s}),()=>{this.subscriptions.delete(r),this.enqueue({v:1,type:"unsubscribe",id:r})}}command(t){const n=crypto.randomUUID(),r={v:1,type:"command",id:n,command:t};return new Promise((s,a)=>{this.pending.set(n,{resolve:s,reject:a}),this.enqueue(r)})}ensureHealthyConnection(){return!this.ws||this.ws.readyState===WebSocket.CLOSED||this.ws.readyState===WebSocket.CLOSING?(this.reconnectNow(),Promise.resolve()):this.ws.readyState===WebSocket.CONNECTING||!this.isConnectionStale()?Promise.resolve():this.sendPing()}connect(){this.started&&(this.emitStatus("connecting"),this.ws=new WebSocket(this.url),this.ws.addEventListener("open",()=>{this.reconnectDelayMs=750,this.reconnectImmediatelyOnClose=!1,this.lastOpenAt=Date.now(),this.lastMessageAt=this.lastOpenAt,this.emitStatus("connected"),this.startHeartbeat();for(const[t,n]of this.subscriptions.entries())this.sendNow({v:1,type:"subscribe",id:t,topic:n.topic});for(;this.outboundQueue.length>0;){const t=this.outboundQueue.shift();t&&this.sendNow(t)}}),this.ws.addEventListener("message",t=>{var r;this.lastMessageAt=Date.now();let n;try{n=JSON.parse(String(t.data))}catch{return}if(n.type==="snapshot"){const s=this.subscriptions.get(n.id);s==null||s.listener(n.snapshot.data);return}if(n.type==="event"){const s=this.subscriptions.get(n.id);(r=s==null?void 0:s.eventListener)==null||r.call(s,n.event);return}if(n.type==="ack"){const s=this.pending.get(n.id);if(!s)return;this.pending.delete(n.id),s.resolve(n.result);return}if(n.type==="error"){if(!n.id){console.error(VB,n.message);return}const s=this.pending.get(n.id);if(!s)return;this.pending.delete(n.id),s.reject(new Error(n.message))}}),this.ws.addEventListener("close",()=>{if(!this.started)return;const t=this.reconnectImmediatelyOnClose;this.reconnectImmediatelyOnClose=!1,this.stopHeartbeat(),this.clearPingState(),this.emitStatus("disconnected");for(const n of this.pending.values())n.reject(new Error("Disconnected"));if(this.pending.clear(),t){this.connect();return}this.scheduleReconnect()}))}scheduleReconnect(){this.reconnectTimer===null&&(this.reconnectTimer=window.setTimeout(()=>{this.reconnectTimer=null,this.connect(),this.reconnectDelayMs=Math.min(this.reconnectDelayMs*2,5e3)},this.reconnectDelayMs))}getStatus(){var t,n;return((t=this.ws)==null?void 0:t.readyState)===WebSocket.OPEN?"connected":((n=this.ws)==null?void 0:n.readyState)===WebSocket.CONNECTING?"connecting":"disconnected"}emitStatus(t){for(const n of this.statusListeners)n(t)}isConnectionStale(){const t=Math.max(this.lastMessageAt,this.lastOpenAt);return t>0&&Date.now()-t>=dZ}sendPing(){if(this.pingPromise)return this.pingPromise;const t=this.command({type:"system.ping"}).then(()=>{this.clearPingState()}).catch(n=>{throw this.clearPingState(),this.reconnectNow(),n});return this.pingTimeoutTimer=window.setTimeout(()=>{this.clearPingState(),this.reconnectNow()},pZ),this.pingPromise=t,t}reconnectNow(){if(this.reconnectTimer!==null&&(window.clearTimeout(this.reconnectTimer),this.reconnectTimer=null),!this.ws||this.ws.readyState===WebSocket.CLOSED){this.connect();return}this.ws.readyState!==WebSocket.CONNECTING&&(this.reconnectImmediatelyOnClose=!0,this.ws.close())}startHeartbeat(){document.visibilityState==="visible"&&this.heartbeatTimer===null&&(this.heartbeatTimer=window.setInterval(()=>{var t;if(document.visibilityState!=="visible"){this.stopHeartbeat();return}((t=this.ws)==null?void 0:t.readyState)===WebSocket.OPEN&&this.ensureHealthyConnection()},fZ))}stopHeartbeat(){this.heartbeatTimer!==null&&(window.clearInterval(this.heartbeatTimer),this.heartbeatTimer=null)}clearPingState(){this.pingTimeoutTimer!==null&&(window.clearTimeout(this.pingTimeoutTimer),this.pingTimeoutTimer=null),this.pingPromise=null}enqueue(t){var n;if(((n=this.ws)==null?void 0:n.readyState)===WebSocket.OPEN){this.sendNow(t);return}this.outboundQueue.push(t)}sendNow(t){var n;(n=this.ws)==null||n.send(JSON.stringify(t))}}function gZ(e,t){var r;const n=e.find(s=>s.chats.some(a=>a.chatId===t));return n?((r=n.chats.find(s=>s.chatId!==t))==null?void 0:r.chatId)??null:null}function vZ(){return`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/ws`}function _Z(){const e=x.useRef(null);return e.current||(e.current=new mZ(vZ())),x.useEffect(()=>{const t=e.current;return t==null||t.start(),()=>{t==null||t.dispose()}},[]),e.current}function yZ(e){var fe,Ee,ze;const t=ey(),n=_Z(),r=oj(),[s,a]=x.useState({projectGroups:[]}),[l,u]=x.useState(null),[d,h]=x.useState(null),[p,m]=x.useState("connecting"),[_,b]=x.useState(!1),[S,w]=x.useState(!1),[C,k]=x.useState(!1),[M,R]=x.useState(null),[T,L]=x.useState(!1),[O,z]=x.useState(!1),[B,X]=x.useState(148),[P,q]=x.useState(!0),[U,F]=x.useState(null),[K,$]=x.useState(null),[j,H]=x.useState(null),W=k$(Or(de=>de.editorPreset)),Q=x.useRef(null),A=x.useRef(null);x.useEffect(()=>n.onStatus(m),[n]),x.useEffect(()=>n.subscribe({type:"sidebar"},de=>{a(de),b(!0),F(null)}),[n]),x.useEffect(()=>n.subscribe({type:"local-projects"},de=>{u(de),w(!0),F(null)}),[n]),x.useEffect(()=>{if(!e){h(null),k(!0);return}return k(!1),n.subscribe({type:"chat",chatId:e},de=>{h(de),k(!0),F(null)})},[e,n]),x.useEffect(()=>{if(M)return;const de=s.projectGroups[0];de&&R(de.groupKey)},[M,s.projectGroups]),x.useEffect(()=>{if(!e||!_||!C)return;if(s.projectGroups.some(ve=>ve.chats.some(Be=>Be.chatId===e))){j===e&&H(null);return}j!==e&&t("/")},[e,C,t,j,s.projectGroups,_]),x.useEffect(()=>{d&&(R(d.runtime.projectId),j===d.runtime.chatId&&H(null))},[d,j]),x.useLayoutEffect(()=>{const de=A.current;if(!de)return;const ve=new ResizeObserver(()=>{X(de.getBoundingClientRect().height)});return ve.observe(de),X(de.getBoundingClientRect().height),()=>ve.disconnect()},[]);const I=x.useMemo(()=>iZ((d==null?void 0:d.messages)??[]),[d==null?void 0:d.messages]),Z=x.useMemo(()=>cZ(I),[I]),N=(d==null?void 0:d.runtime)??null,G=(d==null?void 0:d.availableProviders)??E9,re=hZ(N==null?void 0:N.status),ie=uZ(N==null?void 0:N.status),ge=B+48,Re=!P&&I.length>0,pe=((fe=l==null?void 0:l.projects[0])==null?void 0:fe.localPath)??null,he=(N==null?void 0:N.localPath)??pe??((Ee=s.projectGroups[0])==null?void 0:Ee.localPath),Te=!!(M??(N==null?void 0:N.projectId)??((ze=s.projectGroups[0])==null?void 0:ze.groupKey)??pe);x.useEffect(()=>{const de=Q.current;if(!de)return;de.scrollHeight-de.scrollTop-de.clientHeight<120&&de.scrollTo({top:de.scrollHeight,behavior:"smooth"})},[e,I.length,N==null?void 0:N.status]);function He(){const de=Q.current;if(!de)return;const ve=de.scrollHeight-de.scrollTop-de.clientHeight;q(ve<24)}function Me(){const de=Q.current;de&&de.scrollTo({top:de.scrollHeight,behavior:"smooth"})}async function Ke(de){try{const ve=await n.command({type:"chat.create",projectId:de});R(de),H(ve.chatId),t(`/chat/${ve.chatId}`),L(!1)}catch(ve){F(ve instanceof Error?ve.message:String(ve))}}async function Dt(de){try{$(de);const ve=await n.command({type:"project.open",localPath:de});R(ve.projectId);const Be=await n.command({type:"chat.create",projectId:ve.projectId});H(Be.chatId),t(`/chat/${Be.chatId}`),L(!1),F(null)}catch(ve){F(ve instanceof Error?ve.message:String(ve))}finally{$(null)}}async function mn(de){try{$(de.localPath);const ve=await n.command(de.mode==="new"?{type:"project.create",localPath:de.localPath,title:de.title}:{type:"project.open",localPath:de.localPath});R(ve.projectId);const Be=await n.command({type:"chat.create",projectId:ve.projectId});H(Be.chatId),t(`/chat/${Be.chatId}`),L(!1),F(null)}catch(ve){F(ve instanceof Error?ve.message:String(ve))}finally{$(null)}}async function Fr(de,ve){var Be;try{let Pe=M??((Be=s.projectGroups[0])==null?void 0:Be.groupKey)??null;if(!e&&!Pe&&pe&&(Pe=(await n.command({type:"project.open",localPath:pe})).projectId,R(Pe)),!e&&!Pe)throw new Error("Open a project first");const $e=await n.command({type:"chat.send",chatId:e??void 0,projectId:e?void 0:Pe??void 0,provider:ve==null?void 0:ve.provider,content:de,model:ve==null?void 0:ve.model,modelOptions:ve==null?void 0:ve.modelOptions,planMode:ve==null?void 0:ve.planMode});!e&&$e.chatId&&(H($e.chatId),t(`/chat/${$e.chatId}`)),F(null)}catch(Pe){throw F(Pe instanceof Error?Pe.message:String(Pe)),Pe}}async function Ur(){if(e)try{await n.command({type:"chat.cancel",chatId:e})}catch(de){F(de instanceof Error?de.message:String(de))}}async function gn(de){if(await r.confirm({title:"Delete Chat",description:`Delete "${de.title}"? This cannot be undone.`,confirmLabel:"Delete",confirmVariant:"destructive"}))try{if(await n.command({type:"chat.delete",chatId:de.chatId}),de.chatId===e){const Be=gZ(s.projectGroups,de.chatId);t(Be?`/chat/${Be}`:"/")}}catch(Be){F(Be instanceof Error?Be.message:String(Be))}}async function vn(de){const ve=s.projectGroups.find($e=>$e.groupKey===de);if(!ve)return;const Be=ve.localPath.split("/").filter(Boolean).pop()??ve.localPath;if(await r.confirm({title:"Remove",description:`Remove "${Be}" from the sidebar? Existing chats will be removed from ${zn}.`,confirmLabel:"Remove",confirmVariant:"destructive"}))try{await n.command({type:"project.remove",projectId:de}),Do.getState().clearProject(de),Fd.getState().clearProject(de),(N==null?void 0:N.projectId)===de&&t("/"),F(null)}catch($e){F($e instanceof Error?$e.message:String($e))}}async function vr(de){var Be,Pe;const ve=(N==null?void 0:N.localPath)??((Be=l==null?void 0:l.projects[0])==null?void 0:Be.localPath)??((Pe=s.projectGroups[0])==null?void 0:Pe.localPath);if(ve)try{await Mi({action:de,localPath:ve})}catch($e){F($e instanceof Error?$e.message:String($e))}}async function ri(de){try{await Mi({action:"open_editor",localPath:de.path,line:de.line,column:de.column})}catch(ve){F(ve instanceof Error?ve.message:String(ve))}}async function Mi(de){const ve=Or.getState();F(null),await n.command({type:"system.openExternal",...de,editor:de.action==="open_editor"?{preset:ve.editorPreset,commandTemplate:ve.editorCommandTemplate}:void 0})}function It(){var Be,Pe;const de=M??((Be=s.projectGroups[0])==null?void 0:Be.groupKey);if(de){Ke(de);return}const ve=(Pe=l==null?void 0:l.projects[0])==null?void 0:Pe.localPath;if(ve){Dt(ve);return}t("/")}async function ro(de,ve,Be){if(e)try{await n.command({type:"chat.respondTool",chatId:e,toolUseId:de,result:{questions:ve,answers:Be}})}catch(Pe){F(Pe instanceof Error?Pe.message:String(Pe))}}async function ae(de,ve,Be,Pe){if(e){ve&&QM.getState().setPlanMode(!1);try{await n.command({type:"chat.respondTool",chatId:e,toolUseId:de,result:{confirmed:ve,...Be?{clearContext:!0}:{},...Pe?{message:Pe}:{}}})}catch($e){F($e instanceof Error?$e.message:String($e))}}}return{socket:n,activeChatId:e,sidebarData:s,localProjects:l,chatSnapshot:d,connectionStatus:p,sidebarReady:_,localProjectsReady:S,commandError:U,startingLocalPath:K,sidebarOpen:T,sidebarCollapsed:O,scrollRef:Q,inputRef:A,messages:I,latestToolIds:Z,runtime:N,availableProviders:G,isProcessing:re,canCancel:ie,transcriptPaddingBottom:ge,showScrollButton:Re,navbarLocalPath:he,editorLabel:W,hasSelectedProject:Te,openSidebar:()=>L(!0),closeSidebar:()=>L(!1),collapseSidebar:()=>z(!0),expandSidebar:()=>z(!1),updateScrollState:He,scrollToBottom:Me,handleCreateChat:Ke,handleOpenLocalProject:Dt,handleCreateProject:mn,handleSend:Fr,handleCancel:Ur,handleDeleteChat:gn,handleRemoveProject:vn,handleOpenExternal:vr,handleOpenLocalLink:ri,handleCompose:It,handleAskUserQuestion:ro,handleExitPlanMode:ae}}function bZ(){const e=ki(),t=W3(),n=yZ(t.chatId??null),r=e.pathname==="/"||e.pathname==="/settings";return v.jsxs("div",{className:"flex h-[100dvh] min-h-[100dvh] overflow-hidden",children:[v.jsx(k9,{data:n.sidebarData,activeChatId:n.activeChatId,connectionStatus:n.connectionStatus,ready:n.sidebarReady,open:n.sidebarOpen,collapsed:n.sidebarCollapsed,showMobileOpenButton:r,onOpen:n.openSidebar,onClose:n.closeSidebar,onCollapse:n.collapseSidebar,onExpand:n.expandSidebar,onCreateChat:s=>{n.handleCreateChat(s)},onDeleteChat:s=>{n.handleDeleteChat(s)},onRemoveProject:s=>{n.handleRemoveProject(s)}}),v.jsx(i4,{context:n})]})}function xZ(){return v.jsx($B,{children:v.jsx(sj,{children:v.jsx(o4,{children:v.jsxs(Nc,{element:v.jsx(bZ,{}),children:[v.jsx(Nc,{path:"/",element:v.jsx(XX,{})}),v.jsx(Nc,{path:"/settings",element:v.jsx(JX,{})}),v.jsx(Nc,{path:"/chat/:chatId",element:v.jsx($X,{})})]})})})})}const B5=document.getElementById("root");if(!B5)throw new Error("Missing #root");o3.createRoot(B5).render(v.jsx(x.StrictMode,{children:v.jsx(A4,{children:v.jsx(i$,{children:v.jsx(xZ,{})})})}));
@@ -5,8 +5,8 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <link rel="icon" type="image/png" href="/favicon.png" />
7
7
  <title>Kanna</title>
8
- <script type="module" crossorigin src="/assets/index-Blkx2liL.js"></script>
9
- <link rel="stylesheet" crossorigin href="/assets/index-Qhv5gAO7.css">
8
+ <script type="module" crossorigin src="/assets/index-s5sRNmBs.js"></script>
9
+ <link rel="stylesheet" crossorigin href="/assets/index-Dv1xvSOM.css">
10
10
  </head>
11
11
  <body>
12
12
  <div id="root"></div>
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "kanna-code",
3
3
  "type": "module",
4
- "version": "0.8.0",
4
+ "version": "0.8.1",
5
5
  "description": "A beautiful web UI for Claude Code",
6
6
  "license": "MIT",
7
7
  "keywords": [
@@ -1,32 +0,0 @@
1
- @import"https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,800&display=swap";/**
2
- * Copyright (c) 2014 The xterm.js authors. All rights reserved.
3
- * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
4
- * https://github.com/chjj/term.js
5
- * @license MIT
6
- *
7
- * Permission is hereby granted, free of charge, to any person obtaining a copy
8
- * of this software and associated documentation files (the "Software"), to deal
9
- * in the Software without restriction, including without limitation the rights
10
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
- * copies of the Software, and to permit persons to whom the Software is
12
- * furnished to do so, subject to the following conditions:
13
- *
14
- * The above copyright notice and this permission notice shall be included in
15
- * all copies or substantial portions of the Software.
16
- *
17
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23
- * THE SOFTWARE.
24
- *
25
- * Originally forked from (with the author's permission):
26
- * Fabrice Bellard's javascript vt100 for jslinux:
27
- * http://bellard.org/jslinux/
28
- * Copyright (c) 2011 Fabrice Bellard
29
- * The original design remains. The terminal itself
30
- * has been extended to include xterm CSI codes, among
31
- * other features.
32
- */.xterm{cursor:text;position:relative;-moz-user-select:none;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::-moz-selection{color:transparent}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{font-family:monospace;-webkit-user-select:text;-moz-user-select:text;user-select:text;white-space:pre}.xterm .xterm-accessibility-tree>div{transform-origin:left;width:-moz-fit-content;width:fit-content}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:double underline;text-decoration:double underline}.xterm-underline-3{-webkit-text-decoration:wavy underline;text-decoration:wavy underline}.xterm-underline-4{-webkit-text-decoration:dotted underline;text-decoration:dotted underline}.xterm-underline-5{-webkit-text-decoration:dashed underline;text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;background:#0000;transition:opacity .1s linear;z-index:11}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{position:absolute;display:none}.xterm .xterm-scrollable-element>.shadow.top{display:block;top:0;left:3px;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow, #000) 0 6px 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.left{display:block;top:3px;left:0;height:100%;width:3px;box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-pan-x:initial;--tw-pan-y:initial;--tw-pinch-zoom:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:""}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-700:oklch(50.5% .213 27.518);--color-orange-500:oklch(70.5% .213 47.604);--color-amber-500:oklch(76.9% .188 70.08);--color-yellow-500:oklch(79.5% .184 86.047);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-700:oklch(52.7% .154 150.069);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-xs:.125rem;--radius-sm:calc(var(--radius) - 4px);--radius-md:calc(var(--radius) - 2px);--radius-lg:var(--radius);--radius-xl:.75rem;--radius-2xl:1rem;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--blur-lg:16px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-border:hsl(var(--border));--color-input:hsl(var(--input));--color-ring:hsl(var(--ring));--color-background:hsl(var(--background));--color-foreground:hsl(var(--foreground));--color-primary:hsl(var(--primary));--color-primary-foreground:hsl(var(--primary-foreground));--color-secondary-foreground:hsl(var(--secondary-foreground));--color-destructive:var(--destructive);--color-muted:hsl(var(--muted));--color-muted-foreground:hsl(var(--muted-foreground));--color-accent:hsl(var(--accent));--color-accent-foreground:hsl(var(--accent-foreground));--color-card:hsl(var(--card));--color-card-foreground:hsl(var(--card-foreground));--color-muted-icon:hsl(var(--muted-icon));--color-logo:var(--logo)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{--background:0 0% 100%;--foreground:240 10% 3.9%;--card:0 0% 100%;--card-foreground:240 10% 3.9%;--popover:0 0% 100%;--popover-foreground:240 10% 3.9%;--primary:222 47% 11%;--primary-foreground:0 0% 98%;--secondary:240 4.8% 95.9%;--secondary-foreground:240 5.9% 10%;--muted:210 20% 97%;--muted-foreground:215 16% 47%;--accent:240 4.8% 95.9%;--accent-foreground:240 5.9% 10%;--destructive:var(--logo);--destructive-foreground:0 0% 98%;--border:214 20% 90%;--input:240 5.9% 90%;--ring:240 5.9% 10%;--radius:.5rem;--muted-icon:240 2% 79%;--chart-1:24.6 95% 53.1%;--chart-2:160 60% 45%;--chart-3:221 83% 53%;--chart-4:280 65% 60%;--chart-5:340 75% 55%;--logo:oklch(71.2% .194 13.428)}.dark{--background:223 4% 13%;--foreground:0 0% 98%;--card:231 4% 16%;--card-foreground:0 0% 98%;--popover:223 4% 13%;--popover-foreground:0 0% 98%;--primary:0 0% 98%;--primary-foreground:240 2% 10%;--secondary:240 2% 19%;--secondary-foreground:0 0% 98%;--muted:223 4% 18.5%;--muted-foreground:240 2.5% 64.9%;--accent:240 2% 19%;--accent-foreground:0 0% 98%;--destructive:var(--logo);--destructive-foreground:var(--background);--border:220 2.5% 23.5%;--input:240 4% 19%;--ring:240 4.9% 83.9%;--muted-icon:240 5% 48%;--color-slate-50:oklch(98.5% .001 247.839);--color-slate-100:oklch(96.7% .0013 264.542);--color-slate-200:oklch(92.8% .0026 264.531);--color-slate-300:oklch(87.2% .004 258.338);--color-slate-400:oklch(70.7% .01 261.325);--color-slate-500:oklch(55.1% .012 264.364);--color-slate-600:oklch(44.6% .013 256.802);--color-slate-700:oklch(37.3% .015 259.733);--color-slate-800:oklch(27.8% .0145 256.848);--color-slate-900:oklch(21% .015 264.665);--color-slate-950:oklch(13% .012 261.692);--logo:oklch(71.2% .194 13.428)}*{border-color:var(--color-border)}html,body,#root{height:100%;overflow:hidden}body{background-color:var(--color-background);color:var(--color-foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh;margin:0;font-family:Body,sans-serif}.font-logo{font-family:Bricolage Grotesque,sans-serif;font-weight:800}input,textarea,select{touch-action:manipulation;font-size:16px}.hide-number-steppers::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.hide-number-steppers::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.hide-number-steppers[type=number]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}button{cursor:pointer;touch-action:manipulation}button:focus,button:focus-visible,button:active{box-shadow:none!important;--tw-ring-shadow:none!important;--tw-ring-offset-shadow:none!important;outline:none!important}body{overscroll-behavior-y:contain}.safe-area-inset-bottom{padding-bottom:env(safe-area-inset-bottom)}.prose ul{margin:.5em 0;padding-left:1.5em;list-style-type:disc}.prose ol{margin:.5em 0;padding-left:1.5em;list-style-type:decimal}.prose li{margin:.25em 0}.prose blockquote{border-left:2px solid hsl(var(--border));color:hsl(var(--muted-foreground));margin:1em 0;padding-left:1em}.prose blockquote>*{margin-top:.75em;margin-bottom:.75em}.prose blockquote>p{margin-top:0;margin-bottom:0}.prose blockquote>p+p{margin-top:.75em}.prose blockquote ul,.prose blockquote ol,.prose blockquote pre{margin-top:.75em;margin-bottom:.75em}code,pre{font-family:Roboto Mono,monospace}.prose code{border-radius:.25em;padding:.125em .25em;font-size:.875em}.prose pre{background-color:hsl(var(--muted));border:1px solid hsl(var(--border));border-radius:.375em;margin:.75em 0;padding:.75em 1em;overflow-x:auto}.prose pre code{background-color:#0000;padding:0}.prose hr{margin-top:20px;margin-bottom:20px}.kanna-terminal,.kanna-terminal .xterm,.kanna-terminal .xterm-scrollable-element,.kanna-terminal .xterm-viewport,.kanna-terminal .xterm-screen,.kanna-terminal .xterm-helpers,.kanna-terminal .xterm-helper-textarea,.kanna-terminal .composition-view,.kanna-terminal .xterm-screen canvas{background:0 0!important}[data-panel][data-terminal-open]{overflow:hidden}[data-terminal-visual]{transition:opacity var(--terminal-toggle-duration,.35s) cubic-bezier(.4,0,.2,1),filter var(--terminal-toggle-duration,.35s) cubic-bezier(.4,0,.2,1);will-change:opacity,filter}[data-terminal-visual][data-terminal-animated=false]{transition:none}[data-terminal-visual][data-terminal-open=false]{opacity:0;filter:blur(5px)}[data-terminal-visual][data-terminal-open=true]{opacity:1;filter:blur()}[data-right-sidebar-visual]{transition:opacity var(--terminal-toggle-duration,.35s) cubic-bezier(.4,0,.2,1),filter var(--terminal-toggle-duration,.35s) cubic-bezier(.4,0,.2,1);will-change:opacity,filter}[data-right-sidebar-visual][data-right-sidebar-animated=false]{transition:none}[data-right-sidebar-visual][data-right-sidebar-open=false]{opacity:0;filter:blur(5px)}[data-right-sidebar-visual][data-right-sidebar-open=true]{opacity:1;filter:blur()}*{scrollbar-width:thin;scrollbar-color:hsl(var(--border)) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-color:hsl(var(--border));background-clip:padding-box;border:2px solid #0000;border-radius:4px}::-webkit-scrollbar-thumb:hover{background-color:hsl(var(--muted-foreground) / .3)}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide::-webkit-scrollbar{display:none}@media(min-width:641px){[data-sonner-toaster]{width:-moz-fit-content!important;width:fit-content!important}}.recharts-wrapper :focus,.recharts-wrapper :focus-visible{outline:none}.animate-spin-slow{animation:1.5s linear infinite spin!important}.animate-fade-in{animation:.25s ease-out fade-in}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes kanna-empty-state-flower-in{0%{opacity:0;filter:blur(16px);transform:rotate(-90deg)scale(0)}to{opacity:1;filter:blur();transform:rotate(0)scale(1)}}@keyframes kanna-empty-state-text-in{0%{filter:blur(4px)}to{filter:blur()}}@keyframes kanna-cursor-blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes kanna-cursor-fade-out{0%{opacity:1}to{opacity:0}}.kanna-empty-state-flower{transform-origin:50%;animation:.399s cubic-bezier(.175,.885,.32,1.275) both kanna-empty-state-flower-in}.kanna-empty-state-text{animation:.38s ease-out both kanna-empty-state-text-in}.kanna-typewriter-cursor-slot{flex-shrink:0;justify-content:flex-start;align-items:center;width:3px;margin-left:2px;display:inline-flex}.kanna-typewriter-cursor{background-color:currentColor;width:1px;height:1.05em;animation:.9s step-end infinite kanna-cursor-blink;display:inline-block}.kanna-typewriter-cursor[data-typing-complete=true]{animation:.24s ease-out forwards kanna-cursor-fade-out}*{border-color:var(--color-border);outline-color:color-mix(in srgb,hsl(var(--ring)) 50%,transparent)}@supports (color:color-mix(in lab,red,red)){*{outline-color:color-mix(in oklab,var(--color-ring) 50%,transparent)}}body{background-color:var(--color-background);color:var(--color-foreground)}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-0\.5{inset:calc(var(--spacing) * .5)}.inset-x-4{inset-inline:calc(var(--spacing) * 4)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.top-4{top:calc(var(--spacing) * 4)}.top-\[4px\]{top:4px}.top-\[35px\]{top:35px}.right-0{right:calc(var(--spacing) * 0)}.right-1\.5{right:calc(var(--spacing) * 1.5)}.right-2{right:calc(var(--spacing) * 2)}.right-4{right:calc(var(--spacing) * 4)}.right-\[4px\]{right:4px}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-2{bottom:calc(var(--spacing) * 2)}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.left-3{left:calc(var(--spacing) * 3)}.left-\[50\%\]{left:50%}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.col-start-1{grid-column-start:1}.row-1{grid-row:1}.row-2{grid-row:2}.row-3{grid-row:3}.row-4{grid-row:4}.row-start-1{grid-row-start:1}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}@media(min-width:125rem){.container{max-width:125rem}}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-0\.5{margin-inline:calc(var(--spacing) * .5)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-auto{margin-inline:auto}.-my-1{margin-block:calc(var(--spacing) * -1)}.my-1{margin-block:calc(var(--spacing) * 1)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-3{margin-block:calc(var(--spacing) * 3)}.my-4{margin-block:calc(var(--spacing) * 4)}.-mt-0\.5{margin-top:calc(var(--spacing) * -.5)}.mt-0{margin-top:calc(var(--spacing) * 0)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.-mr-0\.5{margin-right:calc(var(--spacing) * -.5)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-\[2px\]{margin-right:2px}.mb-0{margin-bottom:calc(var(--spacing) * 0)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.mb-10{margin-bottom:calc(var(--spacing) * 10)}.-ml-0\.5{margin-left:calc(var(--spacing) * -.5)}.-ml-\[1px\]{margin-left:-1px}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-5{margin-left:calc(var(--spacing) * 5)}.ml-\[1px\]{margin-left:1px}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.table{display:table}.aspect-square{aspect-ratio:1}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-4\.5{width:calc(var(--spacing) * 4.5);height:calc(var(--spacing) * 4.5)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.h-0\.5{height:calc(var(--spacing) * .5)}.h-2{height:calc(var(--spacing) * 2)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-4\.5{height:calc(var(--spacing) * 4.5)}.h-5{height:calc(var(--spacing) * 5)}.h-5\.5{height:calc(var(--spacing) * 5.5)}.h-6{height:calc(var(--spacing) * 6)}.h-6\.5{height:calc(var(--spacing) * 6.5)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-\[1px\]{height:1px}.h-\[34px\]{height:34px}.h-\[40px\]{height:40px}.h-\[64px\]{height:64px}.h-\[72px\]{height:72px}.h-\[100dvh\]{height:100dvh}.h-full{height:100%}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[64px\]{max-height:64px}.max-h-\[85vh\]{max-height:85vh}.max-h-\[200px\]{max-height:200px}.max-h-\[min\(400px\,40vh\)\]{max-height:min(400px,40vh)}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-\[55px\]{min-height:55px}.min-h-\[100dvh\]{min-height:100dvh}.min-h-\[240px\]{min-height:240px}.min-h-full{min-height:100%}.w-0{width:calc(var(--spacing) * 0)}.w-2{width:calc(var(--spacing) * 2)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-4\.5{width:calc(var(--spacing) * 4.5)}.w-5{width:calc(var(--spacing) * 5)}.w-5\.5{width:calc(var(--spacing) * 5.5)}.w-6{width:calc(var(--spacing) * 6)}.w-6\.5{width:calc(var(--spacing) * 6.5)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-40{width:calc(var(--spacing) * 40)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-\[1px\]{width:1px}.w-\[40px\]{width:40px}.w-\[200px\]{width:200px}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-\[50\%\]{max-width:50%}.max-w-\[85\%\]{max-width:85%}.max-w-\[90\%\]{max-width:90%}.max-w-\[150px\]{max-width:150px}.max-w-\[240px\]{max-width:240px}.max-w-\[420px\]{max-width:420px}.max-w-\[800px\]{max-width:800px}.max-w-\[840px\]{max-width:840px}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-5{min-width:calc(var(--spacing) * 5)}.min-w-\[170px\]{min-width:170px}.min-w-\[180px\]{min-width:180px}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.table-auto{table-layout:auto}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-\[1px\]{--tw-translate-x: -1px ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-\[50\%\]{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2,.-translate-y-\[50\%\]{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[-0\.5px\]{--tw-translate-y:-.5px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[0\.5px\]{--tw-translate-y:.5px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[1px\]{--tw-translate-y:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-0{--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-60{--tw-scale-x:60%;--tw-scale-y:60%;--tw-scale-z:60%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.-rotate-90{rotate:-90deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-shiny-text{animation:1.33s linear infinite shiny-text}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-row-resize{cursor:row-resize}.touch-pan-y{--tw-pan-y:pan-y;touch-action:var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)}.touch-manipulation{touch-action:manipulation}.resize{resize:both}.resize-none{resize:none}.scroll-pt-\[72px\]{scroll-padding-top:72px}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-\[1fr_auto\]{grid-template-columns:1fr auto}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.grid-cols-\[auto_auto\]{grid-template-columns:auto auto}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.place-items-start{place-items:start}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-around{justify-content:space-around}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0{gap:calc(var(--spacing) * 0)}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-\[2px\]>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(2px * var(--tw-space-y-reverse));margin-block-end:calc(2px * calc(1 - var(--tw-space-y-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border>:not(:last-child)){border-color:var(--color-border)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.overscroll-contain{overscroll-behavior:contain}.\!rounded{border-radius:.25rem!important}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\[20px\]{border-radius:20px}.rounded-\[29px\]{border-radius:29px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-xs{border-radius:var(--radius-xs)}.rounded-t-md{border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.rounded-b-xl{border-bottom-right-radius:var(--radius-xl);border-bottom-left-radius:var(--radius-xl)}.\!border-0{border-style:var(--tw-border-style)!important;border-width:0!important}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-1{border-style:var(--tw-border-style);border-width:1px}.border-x-0{border-inline-style:var(--tw-border-style);border-inline-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-border{border-color:var(--color-border)}.border-border\/0{border-color:color-mix(in srgb,hsl(var(--border)) 0%,transparent)}@supports (color:color-mix(in lab,red,red)){.border-border\/0{border-color:color-mix(in oklab,var(--color-border) 0%,transparent)}}.border-border\/80{border-color:color-mix(in srgb,hsl(var(--border)) 80%,transparent)}@supports (color:color-mix(in lab,red,red)){.border-border\/80{border-color:color-mix(in oklab,var(--color-border) 80%,transparent)}}.border-destructive\/20{border-color:var(--color-destructive)}@supports (color:color-mix(in lab,red,red)){.border-destructive\/20{border-color:color-mix(in oklab,var(--color-destructive) 20%,transparent)}}.border-muted-foreground\/50{border-color:color-mix(in srgb,hsl(var(--muted-foreground)) 50%,transparent)}@supports (color:color-mix(in lab,red,red)){.border-muted-foreground\/50{border-color:color-mix(in oklab,var(--color-muted-foreground) 50%,transparent)}}.border-slate-300{border-color:var(--color-slate-300)}.border-slate-500\/0{border-color:#0000}@supports (color:color-mix(in lab,red,red)){.border-slate-500\/0{border-color:color-mix(in oklab,var(--color-slate-500) 0%,transparent)}}.border-transparent{border-color:#0000}.bg-amber-500{background-color:var(--color-amber-500)}.bg-background{background-color:var(--color-background)}.bg-background\/95{background-color:color-mix(in srgb,hsl(var(--background)) 95%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-background\/95{background-color:color-mix(in oklab,var(--color-background) 95%,transparent)}}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black) 40%,transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-blue-400{background-color:var(--color-blue-400)}.bg-blue-400\/80{background-color:#54a2ffcc}@supports (color:color-mix(in lab,red,red)){.bg-blue-400\/80{background-color:color-mix(in oklab,var(--color-blue-400) 80%,transparent)}}.bg-border{background-color:var(--color-border)}.bg-border\/60{background-color:color-mix(in srgb,hsl(var(--border)) 60%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-border\/60{background-color:color-mix(in oklab,var(--color-border) 60%,transparent)}}.bg-card{background-color:var(--color-card)}.bg-card\/30{background-color:color-mix(in srgb,hsl(var(--card)) 30%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-card\/30{background-color:color-mix(in oklab,var(--color-card) 30%,transparent)}}.bg-card\/40{background-color:color-mix(in srgb,hsl(var(--card)) 40%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-card\/40{background-color:color-mix(in oklab,var(--color-card) 40%,transparent)}}.bg-current{background-color:currentColor}.bg-destructive\/5{background-color:var(--color-destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/5{background-color:color-mix(in oklab,var(--color-destructive) 5%,transparent)}}.bg-destructive\/80{background-color:var(--color-destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/80{background-color:color-mix(in oklab,var(--color-destructive) 80%,transparent)}}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-foreground{background-color:var(--color-foreground)}.bg-green-500\/10{background-color:#00c7581a}@supports (color:color-mix(in lab,red,red)){.bg-green-500\/10{background-color:color-mix(in oklab,var(--color-green-500) 10%,transparent)}}.bg-logo{background-color:var(--color-logo)}.bg-muted{background-color:var(--color-muted)}.bg-muted-foreground\/20{background-color:color-mix(in srgb,hsl(var(--muted-foreground)) 20%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-muted-foreground\/20{background-color:color-mix(in oklab,var(--color-muted-foreground) 20%,transparent)}}.bg-muted-foreground\/40{background-color:color-mix(in srgb,hsl(var(--muted-foreground)) 40%,transparent)}@supports (color:color-mix(in lab,red,red)){.bg-muted-foreground\/40{background-color:color-mix(in oklab,var(--color-muted-foreground) 40%,transparent)}}.bg-primary{background-color:var(--color-primary)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/10{background-color:color-mix(in oklab,var(--color-red-500) 10%,transparent)}}.bg-slate-200{background-color:var(--color-slate-200)}.bg-slate-600{background-color:var(--color-slate-600)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-yellow-500{background-color:var(--color-yellow-500)}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-t{--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-background{--tw-gradient-from:var(--color-background);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-transparent{--tw-gradient-from:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.via-background{--tw-gradient-via:var(--color-background);--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-black\/80{--tw-gradient-via:#000c}@supports (color:color-mix(in lab,red,red)){.via-black\/80{--tw-gradient-via:color-mix(in oklab, var(--color-black) 80%, transparent)}}.via-black\/80{--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-50\%{--tw-gradient-via-position:50%}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.\[background-size\:var\(--shiny-width\)_100\%\]{background-size:var(--shiny-width) 100%}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.\[background-position\:0_0\]{background-position:0 0}.bg-no-repeat{background-repeat:no-repeat}.p-0{padding:calc(var(--spacing) * 0)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-\[7px\]{padding:7px}.p-\[10px\]{padding:10px}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.\!py-1{padding-block:calc(var(--spacing) * 1)!important}.py-0{padding-block:calc(var(--spacing) * 0)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.\!pt-5{padding-top:calc(var(--spacing) * 5)!important}.pt-0{padding-top:calc(var(--spacing) * 0)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-3\.5{padding-top:calc(var(--spacing) * 3.5)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-16{padding-top:calc(var(--spacing) * 16)}.pt-\[72px\]{padding-top:72px}.pr-0\.5{padding-right:calc(var(--spacing) * .5)}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-1\.5{padding-right:calc(var(--spacing) * 1.5)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-2\.5{padding-right:calc(var(--spacing) * 2.5)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-5{padding-right:calc(var(--spacing) * 5)}.pr-12{padding-right:calc(var(--spacing) * 12)}.pr-\[7px\]{padding-right:7px}.\!pb-0{padding-bottom:calc(var(--spacing) * 0)!important}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-12{padding-bottom:calc(var(--spacing) * 12)}.pb-32{padding-bottom:calc(var(--spacing) * 32)}.pb-\[89px\]{padding-bottom:89px}.\!pl-3\.5{padding-left:calc(var(--spacing) * 3.5)!important}.pl-0{padding-left:calc(var(--spacing) * 0)}.pl-1{padding-left:calc(var(--spacing) * 1)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-4\.5{padding-left:calc(var(--spacing) * 4.5)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-6{padding-left:calc(var(--spacing) * 6)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.text-\[16px\]{font-size:16px}.text-\[18px\]{font-size:18px}.text-\[20px\]{font-size:20px}.text-\[22px\]{font-size:22px}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[-0\.2px\]{--tw-tracking:-.2px;letter-spacing:-.2px}.tracking-\[-0\.5px\]{--tw-tracking:-.5px;letter-spacing:-.5px}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-pretty{text-wrap:pretty}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-background{color:var(--color-background)}.text-blue-400{color:var(--color-blue-400)}.text-card-foreground{color:var(--color-card-foreground)}.text-destructive{color:var(--color-destructive)}.text-emerald-500{color:var(--color-emerald-500)}.text-foreground{color:var(--color-foreground)}.text-foreground\/50{color:color-mix(in srgb,hsl(var(--foreground)) 50%,transparent)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/50{color:color-mix(in oklab,var(--color-foreground) 50%,transparent)}}.text-foreground\/60{color:color-mix(in srgb,hsl(var(--foreground)) 60%,transparent)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/60{color:color-mix(in oklab,var(--color-foreground) 60%,transparent)}}.text-foreground\/80{color:color-mix(in srgb,hsl(var(--foreground)) 80%,transparent)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/80{color:color-mix(in oklab,var(--color-foreground) 80%,transparent)}}.text-green-400{color:var(--color-green-400)}.text-green-500\/50{color:#00c75880}@supports (color:color-mix(in lab,red,red)){.text-green-500\/50{color:color-mix(in oklab,var(--color-green-500) 50%,transparent)}}.text-green-700{color:var(--color-green-700)}.text-logo{color:var(--color-logo)}.text-muted-foreground{color:var(--color-muted-foreground)}.text-muted-foreground\/30{color:color-mix(in srgb,hsl(var(--muted-foreground)) 30%,transparent)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/30{color:color-mix(in oklab,var(--color-muted-foreground) 30%,transparent)}}.text-muted-foreground\/50{color:color-mix(in srgb,hsl(var(--muted-foreground)) 50%,transparent)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/50{color:color-mix(in oklab,var(--color-muted-foreground) 50%,transparent)}}.text-muted-foreground\/60{color:color-mix(in srgb,hsl(var(--muted-foreground)) 60%,transparent)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/60{color:color-mix(in oklab,var(--color-muted-foreground) 60%,transparent)}}.text-muted-foreground\/80{color:color-mix(in srgb,hsl(var(--muted-foreground)) 80%,transparent)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/80{color:color-mix(in oklab,var(--color-muted-foreground) 80%,transparent)}}.text-muted-icon{color:var(--color-muted-icon)}.text-orange-500{color:var(--color-orange-500)}.text-primary{color:var(--color-primary)}.text-primary-foreground{color:var(--color-primary-foreground)}.text-red-500{color:var(--color-red-500)}.text-red-500\/50{color:#fb2c3680}@supports (color:color-mix(in lab,red,red)){.text-red-500\/50{color:color-mix(in oklab,var(--color-red-500) 50%,transparent)}}.text-red-700{color:var(--color-red-700)}.text-secondary-foreground{color:var(--color-secondary-foreground)}.text-slate-400{color:var(--color-slate-400)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-800{color:var(--color-slate-800)}.text-slate-900{color:var(--color-slate-900)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.decoration-orange-500\/50{text-decoration-color:#fe6e0080}@supports (color:color-mix(in lab,red,red)){.decoration-orange-500\/50{text-decoration-color:color-mix(in oklab,var(--color-orange-500) 50%,transparent)}}.decoration-2{text-decoration-thickness:2px}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-100{opacity:1}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-muted\/20{--tw-ring-color:color-mix(in srgb, hsl(var(--muted)) 20%, transparent)}@supports (color:color-mix(in lab,red,red)){.ring-muted\/20{--tw-ring-color:color-mix(in oklab, var(--color-muted) 20%, transparent)}}.ring-offset-background{--tw-ring-offset-color:var(--color-background)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur-sm{--tw-blur:blur(var(--blur-sm));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-lg{--tw-backdrop-blur:blur(var(--blur-lg));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-\[cubic-bezier\(0\.34\,1\.56\,0\.64\,1\)\]{--tw-ease:cubic-bezier(.34,1.56,.64,1);transition-timing-function:cubic-bezier(.34,1.56,.64,1)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.\[transition\:background-position_1s_cubic-bezier\(\.6\,\.6\,0\,1\)_infinite\]{transition:background-position 1s cubic-bezier(.6,.6,0,1) infinite}@media(hover:hover){.group-hover\:text-primary:is(:where(.group):hover *){color:var(--color-primary)}.group-hover\:opacity-0:is(:where(.group):hover *){opacity:0}.group-hover\:opacity-100:is(:where(.group):hover *),.group-hover\/codeblock\:opacity-100:is(:where(.group\/codeblock):hover *),.group-hover\/expandable-row\:opacity-100:is(:where(.group\/expandable-row):hover *),.group-hover\/plan\:opacity-100:is(:where(.group\/plan):hover *),.group-hover\/pre\:opacity-100:is(:where(.group\/pre):hover *){opacity:1}.group-hover\/section\:opacity-0:is(:where(.group\/section):hover *){opacity:0}.group-hover\/section\:opacity-100:is(:where(.group\/section):hover *){opacity:1}.group-hover\/sidebar-collapse\:scale-0:is(:where(.group\/sidebar-collapse):hover *){--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-hover\/sidebar-collapse\:scale-80:is(:where(.group\/sidebar-collapse):hover *){--tw-scale-x:80%;--tw-scale-y:80%;--tw-scale-z:80%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-hover\/sidebar-collapse\:opacity-0:is(:where(.group\/sidebar-collapse):hover *){opacity:0}.group-hover\/sidebar-collapse\:opacity-100:is(:where(.group\/sidebar-collapse):hover *){opacity:1}}.placeholder\:text-muted-foreground::-moz-placeholder{color:var(--color-muted-foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--color-muted-foreground)}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:inset-x-0:before{content:var(--tw-content);inset-inline:calc(var(--spacing) * 0)}.before\:inset-y-0:before{content:var(--tw-content);inset-block:calc(var(--spacing) * 0)}.before\:top-1\/2:before{content:var(--tw-content);top:50%}.before\:left-1\/2:before{content:var(--tw-content);left:50%}.before\:h-0\.5:before{content:var(--tw-content);height:calc(var(--spacing) * .5)}.before\:w-px:before{content:var(--tw-content);width:1px}.before\:-translate-x-1\/2:before{content:var(--tw-content);--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.before\:-translate-y-1\/2:before{content:var(--tw-content);--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.before\:bg-border:before{content:var(--tw-content);background-color:var(--color-border)}.first\:mt-0:first-child{margin-top:calc(var(--spacing) * 0)}.first\:pl-3:first-child{padding-left:calc(var(--spacing) * 3)}.last\:mb-0:last-child{margin-bottom:calc(var(--spacing) * 0)}.last\:border-r-0:last-child{border-right-style:var(--tw-border-style);border-right-width:0}@media(hover:hover){.hover\:\!border-transparent:hover{border-color:#0000!important}.hover\:border-border:hover{border-color:var(--color-border)}.hover\:border-primary\/30:hover{border-color:color-mix(in srgb,hsl(var(--primary)) 30%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/30:hover{border-color:color-mix(in oklab,var(--color-primary) 30%,transparent)}}.hover\:\!bg-transparent:hover{background-color:#0000!important}.hover\:bg-accent:hover{background-color:var(--color-accent)}.hover\:bg-destructive\/10:hover{background-color:var(--color-destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/10:hover{background-color:color-mix(in oklab,var(--color-destructive) 10%,transparent)}}.hover\:bg-logo\/90:hover{background-color:var(--color-logo)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-logo\/90:hover{background-color:color-mix(in oklab,var(--color-logo) 90%,transparent)}}.hover\:bg-muted:hover{background-color:var(--color-muted)}.hover\:bg-muted\/20:hover{background-color:color-mix(in srgb,hsl(var(--muted)) 20%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/20:hover{background-color:color-mix(in oklab,var(--color-muted) 20%,transparent)}}.hover\:bg-muted\/50:hover{background-color:color-mix(in srgb,hsl(var(--muted)) 50%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab,var(--color-muted) 50%,transparent)}}.hover\:bg-primary\/90:hover{background-color:color-mix(in srgb,hsl(var(--primary)) 90%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--color-primary) 90%,transparent)}}.hover\:\!pb-\[32px\]:hover{padding-bottom:32px!important}.hover\:text-accent-foreground:hover{color:var(--color-accent-foreground)}.hover\:text-foreground:hover{color:var(--color-foreground)}.hover\:text-orange-500\/70:hover{color:#fe6e00b3}@supports (color:color-mix(in lab,red,red)){.hover\:text-orange-500\/70:hover{color:color-mix(in oklab,var(--color-orange-500) 70%,transparent)}}.hover\:text-secondary-foreground\/60:hover{color:color-mix(in srgb,hsl(var(--secondary-foreground)) 60%,transparent)}@supports (color:color-mix(in lab,red,red)){.hover\:text-secondary-foreground\/60:hover{color:color-mix(in oklab,var(--color-secondary-foreground) 60%,transparent)}}.hover\:text-slate-900:hover{color:var(--color-slate-900)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-50:hover{opacity:.5}.hover\:opacity-60:hover{opacity:.6}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-100:hover{opacity:1}}.focus\:bg-destructive\/10:focus{background-color:var(--color-destructive)}@supports (color:color-mix(in lab,red,red)){.focus\:bg-destructive\/10:focus{background-color:color-mix(in oklab,var(--color-destructive) 10%,transparent)}}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--color-ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:var(--color-ring)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:scale-\[0\.985\]:active{scale:.985}.active\:cursor-grabbing:active{cursor:grabbing}.active\:bg-muted\/80:active{background-color:color-mix(in srgb,hsl(var(--muted)) 80%,transparent)}@supports (color:color-mix(in lab,red,red)){.active\:bg-muted\/80:active{background-color:color-mix(in oklab,var(--color-muted) 80%,transparent)}}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:border-input\/90:disabled{border-color:color-mix(in srgb,hsl(var(--input)) 90%,transparent)}@supports (color:color-mix(in lab,red,red)){.disabled\:border-input\/90:disabled{border-color:color-mix(in oklab,var(--color-input) 90%,transparent)}}.disabled\:bg-primary\/20:disabled{background-color:color-mix(in srgb,hsl(var(--primary)) 20%,transparent)}@supports (color:color-mix(in lab,red,red)){.disabled\:bg-primary\/20:disabled{background-color:color-mix(in oklab,var(--color-primary) 20%,transparent)}}.disabled\:bg-primary\/50:disabled{background-color:color-mix(in srgb,hsl(var(--primary)) 50%,transparent)}@supports (color:color-mix(in lab,red,red)){.disabled\:bg-primary\/50:disabled{background-color:color-mix(in oklab,var(--color-primary) 50%,transparent)}}.disabled\:bg-transparent:disabled{background-color:#0000}.disabled\:bg-white\/60:disabled{background-color:#fff9}@supports (color:color-mix(in lab,red,red)){.disabled\:bg-white\/60:disabled{background-color:color-mix(in oklab,var(--color-white) 60%,transparent)}}.disabled\:text-foreground\/50:disabled{color:color-mix(in srgb,hsl(var(--foreground)) 50%,transparent)}@supports (color:color-mix(in lab,red,red)){.disabled\:text-foreground\/50:disabled{color:color-mix(in oklab,var(--color-foreground) 50%,transparent)}}.disabled\:text-muted-foreground\/50:disabled{color:color-mix(in srgb,hsl(var(--muted-foreground)) 50%,transparent)}@supports (color:color-mix(in lab,red,red)){.disabled\:text-muted-foreground\/50:disabled{color:color-mix(in oklab,var(--color-muted-foreground) 50%,transparent)}}.disabled\:text-primary-foreground\/50:disabled{color:color-mix(in srgb,hsl(var(--primary-foreground)) 50%,transparent)}@supports (color:color-mix(in lab,red,red)){.disabled\:text-primary-foreground\/50:disabled{color:color-mix(in oklab,var(--color-primary-foreground) 50%,transparent)}}.disabled\:text-primary-foreground\/90:disabled{color:color-mix(in srgb,hsl(var(--primary-foreground)) 90%,transparent)}@supports (color:color-mix(in lab,red,red)){.disabled\:text-primary-foreground\/90:disabled{color:color-mix(in oklab,var(--color-primary-foreground) 90%,transparent)}}.disabled\:text-primary\/50:disabled{color:color-mix(in srgb,hsl(var(--primary)) 50%,transparent)}@supports (color:color-mix(in lab,red,red)){.disabled\:text-primary\/50:disabled{color:color-mix(in oklab,var(--color-primary) 50%,transparent)}}.disabled\:text-primary\/60:disabled{color:color-mix(in srgb,hsl(var(--primary)) 60%,transparent)}@supports (color:color-mix(in lab,red,red)){.disabled\:text-primary\/60:disabled{color:color-mix(in oklab,var(--color-primary) 60%,transparent)}}.disabled\:text-secondary-foreground\/50:disabled{color:color-mix(in srgb,hsl(var(--secondary-foreground)) 50%,transparent)}@supports (color:color-mix(in lab,red,red)){.disabled\:text-secondary-foreground\/50:disabled{color:color-mix(in oklab,var(--color-secondary-foreground) 50%,transparent)}}.disabled\:text-slate-700:disabled{color:var(--color-slate-700)}.disabled\:opacity-50:disabled{opacity:.5}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--color-accent)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--color-muted-foreground)}@supports (backdrop-filter:var(--tw)){.supports-\[backdrop-filter\]\:bg-background\/80{background-color:color-mix(in srgb,hsl(var(--background)) 80%,transparent)}@supports (color:color-mix(in lab,red,red)){.supports-\[backdrop-filter\]\:bg-background\/80{background-color:color-mix(in oklab,var(--color-background) 80%,transparent)}}}@media(min-width:40rem){.sm\:h-5{height:calc(var(--spacing) * 5)}.sm\:h-6{height:calc(var(--spacing) * 6)}.sm\:w-5{width:calc(var(--spacing) * 5)}.sm\:w-6{width:calc(var(--spacing) * 6)}.sm\:max-w-\[80\%\]{max-width:80%}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:48rem){.md\:relative{position:relative}.md\:inset-auto{inset:auto}.md\:top-2{top:calc(var(--spacing) * 2)}.md\:order-first{order:-9999}.md\:order-last{order:9999}.md\:my-2{margin-block:calc(var(--spacing) * 2)}.md\:mr-0{margin-right:calc(var(--spacing) * 0)}.md\:mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.md\:ml-2{margin-left:calc(var(--spacing) * 2)}.md\:block{display:block}.md\:contents{display:contents}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-4{height:calc(var(--spacing) * 4)}.md\:h-6{height:calc(var(--spacing) * 6)}.md\:h-11{height:calc(var(--spacing) * 11)}.md\:h-\[55px\]{height:55px}.md\:h-\[calc\(100dvh-16px\)\]{height:calc(100dvh - 16px)}.md\:max-h-\[50vh\]{max-height:50vh}.md\:max-h-\[55px\]{max-height:55px}.md\:w-4{width:calc(var(--spacing) * 4)}.md\:w-6{width:calc(var(--spacing) * 6)}.md\:w-11{width:calc(var(--spacing) * 11)}.md\:w-\[275px\]{width:275px}.md\:min-w-\[300px\]{min-width:300px}.md\:flex-initial{flex:0 auto}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:rounded-2xl{border-radius:var(--radius-2xl)}.md\:border{border-style:var(--tw-border-style);border-width:1px}.md\:border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.md\:border-none{--tw-border-style:none;border-style:none}.md\:border-border{border-color:var(--color-border)}.md\:from-transparent{--tw-gradient-from:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.md\:p-4{padding:calc(var(--spacing) * 4)}.md\:px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.md\:px-4{padding-inline:calc(var(--spacing) * 4)}.md\:px-5\.5{padding-inline:calc(var(--spacing) * 5.5)}.md\:py-4\.5{padding-block:calc(var(--spacing) * 4.5)}.md\:pr-4{padding-right:calc(var(--spacing) * 4)}.md\:pb-0{padding-bottom:calc(var(--spacing) * 0)}.md\:pb-2{padding-bottom:calc(var(--spacing) * 2)}.md\:pl-6{padding-left:calc(var(--spacing) * 6)}.md\:opacity-0{opacity:0}.md\:backdrop-blur-none{--tw-backdrop-blur: ;-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}@media(hover:hover){.md\:group-hover\:opacity-100:is(:where(.group):hover *),.md\:group-hover\/section\:opacity-100:is(:where(.group\/section):hover *){opacity:1}}}@media(min-width:64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:80rem){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:96rem){.\32xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:125rem){.\33xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}.dark\:border-slate-600:where(.dark,.dark *){border-color:var(--color-slate-600)}.dark\:border-white\/10:where(.dark,.dark *){border-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.dark\:border-white\/10:where(.dark,.dark *){border-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.dark\:bg-card:where(.dark,.dark *){background-color:var(--color-card)}.dark\:bg-card\/40:where(.dark,.dark *){background-color:color-mix(in srgb,hsl(var(--card)) 40%,transparent)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-card\/40:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-card) 40%,transparent)}}.dark\:bg-green-500\/15:where(.dark,.dark *){background-color:#00c75826}@supports (color:color-mix(in lab,red,red)){.dark\:bg-green-500\/15:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-green-500) 15%,transparent)}}.dark\:bg-muted:where(.dark,.dark *){background-color:var(--color-muted)}.dark\:bg-red-500\/15:where(.dark,.dark *){background-color:#fb2c3626}@supports (color:color-mix(in lab,red,red)){.dark\:bg-red-500\/15:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-red-500) 15%,transparent)}}.dark\:bg-slate-700:where(.dark,.dark *){background-color:var(--color-slate-700)}.dark\:bg-white:where(.dark,.dark *){background-color:var(--color-white)}.dark\:via-white\/80:where(.dark,.dark *){--tw-gradient-via:#fffc}@supports (color:color-mix(in lab,red,red)){.dark\:via-white\/80:where(.dark,.dark *){--tw-gradient-via:color-mix(in oklab, var(--color-white) 80%, transparent)}}.dark\:via-white\/80:where(.dark,.dark *){--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.dark\:text-background:where(.dark,.dark *){color:var(--color-background)}.dark\:text-blue-300:where(.dark,.dark *){color:var(--color-blue-300)}.dark\:text-emerald-400:where(.dark,.dark *){color:var(--color-emerald-400)}.dark\:text-green-400:where(.dark,.dark *){color:var(--color-green-400)}.dark\:text-logo:where(.dark,.dark *){color:var(--color-logo)}.dark\:text-muted-foreground:where(.dark,.dark *){color:var(--color-muted-foreground)}.dark\:text-red-400:where(.dark,.dark *){color:var(--color-red-400)}.dark\:text-slate-100:where(.dark,.dark *){color:var(--color-slate-100)}.dark\:text-slate-200:where(.dark,.dark *){color:var(--color-slate-200)}.dark\:text-slate-400:where(.dark,.dark *){color:var(--color-slate-400)}.dark\:text-slate-500:where(.dark,.dark *){color:var(--color-slate-500)}.dark\:text-slate-900:where(.dark,.dark *){color:var(--color-slate-900)}.dark\:text-white:where(.dark,.dark *){color:var(--color-white)}.dark\:decoration-logo\/70:where(.dark,.dark *){text-decoration-color:var(--color-logo)}@supports (color:color-mix(in lab,red,red)){.dark\:decoration-logo\/70:where(.dark,.dark *){text-decoration-color:color-mix(in oklab,var(--color-logo) 70%,transparent)}}.dark\:ring-muted\/50:where(.dark,.dark *){--tw-ring-color:color-mix(in srgb, hsl(var(--muted)) 50%, transparent)}@supports (color:color-mix(in lab,red,red)){.dark\:ring-muted\/50:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-muted) 50%, transparent)}}@media(hover:hover){.dark\:hover\:border-slate-400\/10:where(.dark,.dark *):hover{border-color:#90a1b91a}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:border-slate-400\/10:where(.dark,.dark *):hover{border-color:color-mix(in oklab,var(--color-slate-400) 10%,transparent)}}.dark\:hover\:bg-card:where(.dark,.dark *):hover{background-color:var(--color-card)}.dark\:hover\:bg-red-500\/20:where(.dark,.dark *):hover{background-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-red-500\/20:where(.dark,.dark *):hover{background-color:color-mix(in oklab,var(--color-red-500) 20%,transparent)}}.dark\:hover\:bg-slate-600:where(.dark,.dark *):hover{background-color:var(--color-slate-600)}.dark\:hover\:text-foreground:where(.dark,.dark *):hover{color:var(--color-foreground)}.dark\:hover\:text-logo\/60:where(.dark,.dark *):hover{color:var(--color-logo)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:text-logo\/60:where(.dark,.dark *):hover{color:color-mix(in oklab,var(--color-logo) 60%,transparent)}}.dark\:hover\:decoration-logo\/40:where(.dark,.dark *):hover{text-decoration-color:var(--color-logo)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:decoration-logo\/40:where(.dark,.dark *):hover{text-decoration-color:color-mix(in oklab,var(--color-logo) 40%,transparent)}}}.dark\:focus\:bg-red-500\/20:where(.dark,.dark *):focus{background-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.dark\:focus\:bg-red-500\/20:where(.dark,.dark *):focus{background-color:color-mix(in oklab,var(--color-red-500) 20%,transparent)}}.\[\&_\*\]\:font-normal *{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.\[\&_\*\]\:font-semibold *{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.\[\&_p\]\:whitespace-pre-line p{white-space:pre-line}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.no-code-highlight .\[\.no-code-highlight_\&\]\:\!bg-transparent{background-color:#0000!important}.no-pre-highlight .\[\.no-pre-highlight_\&\]\:bg-background,.no-pre-highlight .dark\:\[\.no-pre-highlight_\&\]\:bg-background:where(.dark,.dark *){background-color:var(--color-background)}}@font-face{font-family:Body;src:url(/fonts/body-regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Body;src:url(/fonts/body-regular-italic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Body;src:url(/fonts/body-medium.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Body;src:url(/fonts/body-semibold.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-pan-x{syntax:"*";inherits:false}@property --tw-pan-y{syntax:"*";inherits:false}@property --tw-pinch-zoom{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}@keyframes shiny-text{0%{background-position:calc(-100% - var(--shiny-width)) 0}to{background-position:calc(100% + var(--shiny-width)) 0}}