From a37e3aa39b656fe5856b62ea1ad08fdb604e721b Mon Sep 17 00:00:00 2001 From: argenis de la rosa Date: Thu, 5 Mar 2026 16:11:08 -0500 Subject: [PATCH] feat(web): rebuild dist with logo in sidebar Co-Authored-By: Claude Opus 4.6 --- ...{index-twVS6v4N.css => index-Bud_uSBD.css} | 2 +- .../{index-CW3l40cv.js => index-CW_YEDAa.js} | 236 +++++++++--------- web/dist/index.html | 4 +- 3 files changed, 116 insertions(+), 126 deletions(-) rename web/dist/assets/{index-twVS6v4N.css => index-Bud_uSBD.css} (72%) rename web/dist/assets/{index-CW3l40cv.js => index-CW_YEDAa.js} (85%) diff --git a/web/dist/assets/index-twVS6v4N.css b/web/dist/assets/index-Bud_uSBD.css similarity index 72% rename from web/dist/assets/index-twVS6v4N.css rename to web/dist/assets/index-Bud_uSBD.css index 5bfefb0e6..57cf18d74 100644 --- a/web/dist/assets/index-twVS6v4N.css +++ b/web/dist/assets/index-Bud_uSBD.css @@ -1 +1 @@ -/*! tailwindcss v4.2.0 | 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-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-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-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-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@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-300:oklch(80.8% .114 19.571);--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-red-900:oklch(39.6% .141 25.723);--color-orange-400:oklch(75% .183 55.934);--color-orange-600:oklch(64.6% .222 41.116);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-600:oklch(68.1% .162 75.834);--color-yellow-700:oklch(55.4% .135 66.442);--color-yellow-800:oklch(47.6% .114 61.907);--color-yellow-900:oklch(42.1% .095 57.708);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-green-900:oklch(39.3% .095 152.535);--color-green-950:oklch(26.6% .065 152.934);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-700:oklch(50.8% .118 165.612);--color-emerald-900:oklch(37.8% .077 168.94);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-blue-950:oklch(28.2% .091 267.935);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-purple-900:oklch(38.1% .176 304.987);--color-rose-100:oklch(94.1% .03 12.58);--color-rose-200:oklch(89.2% .058 10.001);--color-rose-300:oklch(81% .117 11.638);--color-rose-500:oklch(64.5% .246 16.439);--color-slate-500:oklch(55.4% .046 257.417);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-gray-950:oklch(13% .028 261.692);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-lg:32rem;--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-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-relaxed:1.625;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-bounce:bounce 1s infinite;--blur-xl:24px;--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)}}@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;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}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::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}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.right-2{right:calc(var(--spacing) * 2)}.left-0{left:calc(var(--spacing) * 0)}.left-3{left:calc(var(--spacing) * 3)}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.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}}.mx-3{margin-inline:calc(var(--spacing) * 3)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.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-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-auto{margin-top:auto}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.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-6{margin-bottom:calc(var(--spacing) * 6)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-32{height:calc(var(--spacing) * 32)}.h-64{height:calc(var(--spacing) * 64)}.h-\[calc\(100dvh-8\.5rem\)\]{height:calc(100dvh - 8.5rem)}.h-full{height:100%}.h-screen{height:100vh}.max-h-64{max-height:calc(var(--spacing) * 64)}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-\[4\.5rem\]{min-height:4.5rem}.min-h-\[28rem\]{min-height:28rem}.min-h-screen{min-height:100vh}.w-0{width:calc(var(--spacing) * 0)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-20{width:calc(var(--spacing) * 20)}.w-\[86vw\]{width:86vw}.w-auto{width:auto}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-\[17\.5rem\]{max-width:17.5rem}.max-w-\[75\%\]{max-width:75%}.max-w-\[200px\]{max-width:200px}.max-w-\[300px\]{max-width:300px}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-x-3{--tw-translate-x:calc(var(--spacing) * -3);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-1{--tw-translate-x:calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-6{--tw-translate-x:calc(var(--spacing) * 6);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-0{rotate:none}.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-bounce{animation:var(--animate-bounce)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-rows-\[0fr\]{grid-template-rows:0fr}.grid-rows-\[1fr\]{grid-template-rows:1fr}.flex-col{flex-direction:column}.flex-row-reverse{flex-direction:row-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.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)}: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-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-y-4{row-gap:calc(var(--spacing) * 4)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-xl{border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.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-\[\#1a2d5e\]{border-color:#1a2d5e}.border-\[\#1a3670\]{border-color:#1a3670}.border-\[\#1b3670\]{border-color:#1b3670}.border-\[\#1b3770\]{border-color:#1b3770}.border-\[\#1d3770\]{border-color:#1d3770}.border-\[\#1e2f5d\]{border-color:#1e2f5d}.border-\[\#1e3a78\]{border-color:#1e3a78}.border-\[\#1f3d76\]{border-color:#1f3d76}.border-\[\#2b4f97\]{border-color:#2b4f97}.border-\[\#2c4e97\]{border-color:#2c4e97}.border-\[\#2f5ea0\]{border-color:#2f5ea0}.border-\[\#2f63c8\]{border-color:#2f63c8}.border-\[\#3a6de0\]{border-color:#3a6de0}.border-\[\#5f6080\]{border-color:#5f6080}.border-\[\#294a8f\]{border-color:#294a8f}.border-\[\#18356f\]{border-color:#18356f}.border-\[\#29509c\]{border-color:#29509c}.border-amber-400\/30{border-color:#fcbb004d}@supports (color:color-mix(in lab,red,red)){.border-amber-400\/30{border-color:color-mix(in oklab,var(--color-amber-400) 30%,transparent)}}.border-blue-500{border-color:var(--color-blue-500)}.border-blue-700\/50{border-color:#1447e680}@supports (color:color-mix(in lab,red,red)){.border-blue-700\/50{border-color:color-mix(in oklab,var(--color-blue-700) 50%,transparent)}}.border-blue-700\/70{border-color:#1447e6b3}@supports (color:color-mix(in lab,red,red)){.border-blue-700\/70{border-color:color-mix(in oklab,var(--color-blue-700) 70%,transparent)}}.border-blue-800{border-color:var(--color-blue-800)}.border-blue-800\/50{border-color:#193cb880}@supports (color:color-mix(in lab,red,red)){.border-blue-800\/50{border-color:color-mix(in oklab,var(--color-blue-800) 50%,transparent)}}.border-emerald-500\/30{border-color:#00bb7f4d}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/30{border-color:color-mix(in oklab,var(--color-emerald-500) 30%,transparent)}}.border-emerald-700\/60{border-color:#00795699}@supports (color:color-mix(in lab,red,red)){.border-emerald-700\/60{border-color:color-mix(in oklab,var(--color-emerald-700) 60%,transparent)}}.border-gray-600{border-color:var(--color-gray-600)}.border-gray-700{border-color:var(--color-gray-700)}.border-gray-800{border-color:var(--color-gray-800)}.border-gray-800\/50{border-color:#1e293980}@supports (color:color-mix(in lab,red,red)){.border-gray-800\/50{border-color:color-mix(in oklab,var(--color-gray-800) 50%,transparent)}}.border-green-700{border-color:var(--color-green-700)}.border-green-700\/40{border-color:#00813866}@supports (color:color-mix(in lab,red,red)){.border-green-700\/40{border-color:color-mix(in oklab,var(--color-green-700) 40%,transparent)}}.border-green-700\/50{border-color:#00813880}@supports (color:color-mix(in lab,red,red)){.border-green-700\/50{border-color:color-mix(in oklab,var(--color-green-700) 50%,transparent)}}.border-green-700\/70{border-color:#008138b3}@supports (color:color-mix(in lab,red,red)){.border-green-700\/70{border-color:color-mix(in oklab,var(--color-green-700) 70%,transparent)}}.border-green-800{border-color:var(--color-green-800)}.border-purple-700\/50{border-color:#8200da80}@supports (color:color-mix(in lab,red,red)){.border-purple-700\/50{border-color:color-mix(in oklab,var(--color-purple-700) 50%,transparent)}}.border-red-700{border-color:var(--color-red-700)}.border-red-700\/40{border-color:#bf000f66}@supports (color:color-mix(in lab,red,red)){.border-red-700\/40{border-color:color-mix(in oklab,var(--color-red-700) 40%,transparent)}}.border-red-700\/50{border-color:#bf000f80}@supports (color:color-mix(in lab,red,red)){.border-red-700\/50{border-color:color-mix(in oklab,var(--color-red-700) 50%,transparent)}}.border-rose-500\/35{border-color:#ff235759}@supports (color:color-mix(in lab,red,red)){.border-rose-500\/35{border-color:color-mix(in oklab,var(--color-rose-500) 35%,transparent)}}.border-transparent{border-color:#0000}.border-yellow-700\/40{border-color:#a3610066}@supports (color:color-mix(in lab,red,red)){.border-yellow-700\/40{border-color:color-mix(in oklab,var(--color-yellow-700) 40%,transparent)}}.border-yellow-700\/50{border-color:#a3610080}@supports (color:color-mix(in lab,red,red)){.border-yellow-700\/50{border-color:color-mix(in oklab,var(--color-yellow-700) 50%,transparent)}}.border-yellow-800\/50{border-color:#874b0080}@supports (color:color-mix(in lab,red,red)){.border-yellow-800\/50{border-color:color-mix(in oklab,var(--color-yellow-800) 50%,transparent)}}.border-t-transparent{border-top-color:#0000}.bg-\[\#0a1b3f\]\/60{background-color:#0a1b3f99}.bg-\[\#0a265f\]\/70{background-color:#0a265fb3}.bg-\[\#0b2f80\]\/55{background-color:#0b2f808c}.bg-\[\#050b1a\]\/95{background-color:#050b1af2}.bg-\[\#060f25\]\/85{background-color:#060f25d9}.bg-\[\#071a41\]\/80{background-color:#071a41cc}.bg-\[\#05112c\]\/80{background-color:#05112ccc}.bg-\[\#05112c\]\/90{background-color:#05112ce6}.bg-\[\#07142f\]\/85{background-color:#07142fd9}.bg-\[\#061129\]\/85{background-color:#061129d9}.bg-\[\#061230\]{background-color:#061230}.bg-\[\#071228\]\/90{background-color:#071228e6}.bg-\[\#071328\]\/80{background-color:#071328cc}.bg-\[\#081637\]\/70{background-color:#081637b3}.bg-\[\#091937\]\/75{background-color:#091937bf}.bg-\[\#141731\]\/80{background-color:#141731cc}.bg-amber-400{background-color:var(--color-amber-400)}.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-black\/60{background-color:#0009}@supports (color:color-mix(in lab,red,red)){.bg-black\/60{background-color:color-mix(in oklab,var(--color-black) 60%,transparent)}}.bg-black\/70{background-color:#000000b3}@supports (color:color-mix(in lab,red,red)){.bg-black\/70{background-color:color-mix(in oklab,var(--color-black) 70%,transparent)}}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-blue-600\/20{background-color:#155dfc33}@supports (color:color-mix(in lab,red,red)){.bg-blue-600\/20{background-color:color-mix(in oklab,var(--color-blue-600) 20%,transparent)}}.bg-blue-900\/30{background-color:#1c398e4d}@supports (color:color-mix(in lab,red,red)){.bg-blue-900\/30{background-color:color-mix(in oklab,var(--color-blue-900) 30%,transparent)}}.bg-blue-900\/40{background-color:#1c398e66}@supports (color:color-mix(in lab,red,red)){.bg-blue-900\/40{background-color:color-mix(in oklab,var(--color-blue-900) 40%,transparent)}}.bg-blue-900\/50{background-color:#1c398e80}@supports (color:color-mix(in lab,red,red)){.bg-blue-900\/50{background-color:color-mix(in oklab,var(--color-blue-900) 50%,transparent)}}.bg-blue-950\/30{background-color:#1624564d}@supports (color:color-mix(in lab,red,red)){.bg-blue-950\/30{background-color:color-mix(in oklab,var(--color-blue-950) 30%,transparent)}}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-emerald-900\/40{background-color:#004e3b66}@supports (color:color-mix(in lab,red,red)){.bg-emerald-900\/40{background-color:color-mix(in oklab,var(--color-emerald-900) 40%,transparent)}}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-700{background-color:var(--color-gray-700)}.bg-gray-800{background-color:var(--color-gray-800)}.bg-gray-800\/50{background-color:#1e293980}@supports (color:color-mix(in lab,red,red)){.bg-gray-800\/50{background-color:color-mix(in oklab,var(--color-gray-800) 50%,transparent)}}.bg-gray-900{background-color:var(--color-gray-900)}.bg-gray-900\/80{background-color:#101828cc}@supports (color:color-mix(in lab,red,red)){.bg-gray-900\/80{background-color:color-mix(in oklab,var(--color-gray-900) 80%,transparent)}}.bg-gray-950{background-color:var(--color-gray-950)}.bg-gray-950\/50{background-color:#03071280}@supports (color:color-mix(in lab,red,red)){.bg-gray-950\/50{background-color:color-mix(in oklab,var(--color-gray-950) 50%,transparent)}}.bg-green-500{background-color:var(--color-green-500)}.bg-green-600{background-color:var(--color-green-600)}.bg-green-600\/20{background-color:#00a54433}@supports (color:color-mix(in lab,red,red)){.bg-green-600\/20{background-color:color-mix(in oklab,var(--color-green-600) 20%,transparent)}}.bg-green-900\/10{background-color:#0d542b1a}@supports (color:color-mix(in lab,red,red)){.bg-green-900\/10{background-color:color-mix(in oklab,var(--color-green-900) 10%,transparent)}}.bg-green-900\/30{background-color:#0d542b4d}@supports (color:color-mix(in lab,red,red)){.bg-green-900\/30{background-color:color-mix(in oklab,var(--color-green-900) 30%,transparent)}}.bg-green-900\/40{background-color:#0d542b66}@supports (color:color-mix(in lab,red,red)){.bg-green-900\/40{background-color:color-mix(in oklab,var(--color-green-900) 40%,transparent)}}.bg-green-900\/50{background-color:#0d542b80}@supports (color:color-mix(in lab,red,red)){.bg-green-900\/50{background-color:color-mix(in oklab,var(--color-green-900) 50%,transparent)}}.bg-orange-600\/20{background-color:#f0510033}@supports (color:color-mix(in lab,red,red)){.bg-orange-600\/20{background-color:color-mix(in oklab,var(--color-orange-600) 20%,transparent)}}.bg-purple-600\/20{background-color:#9810fa33}@supports (color:color-mix(in lab,red,red)){.bg-purple-600\/20{background-color:color-mix(in oklab,var(--color-purple-600) 20%,transparent)}}.bg-purple-900\/50{background-color:#59168b80}@supports (color:color-mix(in lab,red,red)){.bg-purple-900\/50{background-color:color-mix(in oklab,var(--color-purple-900) 50%,transparent)}}.bg-red-500{background-color:var(--color-red-500)}.bg-red-900\/10{background-color:#82181a1a}@supports (color:color-mix(in lab,red,red)){.bg-red-900\/10{background-color:color-mix(in oklab,var(--color-red-900) 10%,transparent)}}.bg-red-900\/30{background-color:#82181a4d}@supports (color:color-mix(in lab,red,red)){.bg-red-900\/30{background-color:color-mix(in oklab,var(--color-red-900) 30%,transparent)}}.bg-red-900\/40{background-color:#82181a66}@supports (color:color-mix(in lab,red,red)){.bg-red-900\/40{background-color:color-mix(in oklab,var(--color-red-900) 40%,transparent)}}.bg-red-900\/50{background-color:#82181a80}@supports (color:color-mix(in lab,red,red)){.bg-red-900\/50{background-color:color-mix(in oklab,var(--color-red-900) 50%,transparent)}}.bg-rose-500{background-color:var(--color-rose-500)}.bg-slate-500{background-color:var(--color-slate-500)}.bg-white{background-color:var(--color-white)}.bg-yellow-600{background-color:var(--color-yellow-600)}.bg-yellow-900\/10{background-color:#733e0a1a}@supports (color:color-mix(in lab,red,red)){.bg-yellow-900\/10{background-color:color-mix(in oklab,var(--color-yellow-900) 10%,transparent)}}.bg-yellow-900\/20{background-color:#733e0a33}@supports (color:color-mix(in lab,red,red)){.bg-yellow-900\/20{background-color:color-mix(in oklab,var(--color-yellow-900) 20%,transparent)}}.bg-yellow-900\/30{background-color:#733e0a4d}@supports (color:color-mix(in lab,red,red)){.bg-yellow-900\/30{background-color:color-mix(in oklab,var(--color-yellow-900) 30%,transparent)}}.bg-yellow-900\/40{background-color:#733e0a66}@supports (color:color-mix(in lab,red,red)){.bg-yellow-900\/40{background-color:color-mix(in oklab,var(--color-yellow-900) 40%,transparent)}}.bg-yellow-900\/50{background-color:#733e0a80}@supports (color:color-mix(in lab,red,red)){.bg-yellow-900\/50{background-color:color-mix(in oklab,var(--color-yellow-900) 50%,transparent)}}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-\[radial-gradient\(circle_at_15\%_30\%\,rgba\(41\,148\,255\,0\.22\)\,transparent_45\%\)\,radial-gradient\(circle_at_85\%_75\%\,rgba\(0\,209\,255\,0\.14\)\,transparent_40\%\)\]{background-image:radial-gradient(circle at 15% 30%,#2994ff38,#0000 45%),radial-gradient(circle at 85% 75%,#00d1ff24,#0000 40%)}.from-green-950\/20{--tw-gradient-from:#032e1533}@supports (color:color-mix(in lab,red,red)){.from-green-950\/20{--tw-gradient-from:color-mix(in oklab, var(--color-green-950) 20%, transparent)}}.from-green-950\/20{--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))}.to-gray-900{--tw-gradient-to:var(--color-gray-900);--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))}.object-contain{object-fit:contain}.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-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.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-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.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-12{padding-block:calc(var(--spacing) * 12)}.py-16{padding-block:calc(var(--spacing) * 16)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-16{padding-right:calc(var(--spacing) * 16)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pb-8{padding-bottom:calc(var(--spacing) * 8)}.pl-9{padding-left:calc(var(--spacing) * 9)}.pl-10{padding-left:calc(var(--spacing) * 10)}.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-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.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\.1em\]{--tw-tracking:.1em;letter-spacing:.1em}.tracking-\[0\.03em\]{--tw-tracking:.03em;letter-spacing:.03em}.tracking-\[0\.12em\]{--tw-tracking:.12em;letter-spacing:.12em}.tracking-\[0\.13em\]{--tw-tracking:.13em;letter-spacing:.13em}.tracking-\[0\.16em\]{--tw-tracking:.16em;letter-spacing:.16em}.tracking-\[0\.22em\]{--tw-tracking:.22em;letter-spacing:.22em}.tracking-\[0\.35em\]{--tw-tracking:.35em;letter-spacing:.35em}.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)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#5f84cc\]{color:#5f84cc}.text-\[\#7ca6de\]{color:#7ca6de}.text-\[\#7ea5eb\]{color:#7ea5eb}.text-\[\#8aa8df\]{color:#8aa8df}.text-\[\#8baee7\]{color:#8baee7}.text-\[\#8bb9ff\]{color:#8bb9ff}.text-\[\#8eb8f4\]{color:#8eb8f4}.text-\[\#8fb8ff\]{color:#8fb8ff}.text-\[\#9bb7eb\]{color:#9bb7eb}.text-\[\#9bb8e8\]{color:#9bb8e8}.text-\[\#9bb8ec\]{color:#9bb8ec}.text-\[\#9bbce8\]{color:#9bbce8}.text-\[\#9ec2ff\]{color:#9ec2ff}.text-\[\#87a9e5\]{color:#87a9e5}.text-\[\#89a9df\]{color:#89a9df}.text-\[\#97baee\]{color:#97baee}.text-\[\#a7c4f3\]{color:#a7c4f3}.text-\[\#acd0ff\]{color:#acd0ff}.text-\[\#b3cbf8\]{color:#b3cbf8}.text-\[\#c2c5e8\]{color:#c2c5e8}.text-\[\#c4d8ff\]{color:#c4d8ff}.text-\[\#c8dcff\]{color:#c8dcff}.text-\[\#cfe3ff\]{color:#cfe3ff}.text-amber-300{color:var(--color-amber-300)}.text-blue-200{color:var(--color-blue-200)}.text-blue-300{color:var(--color-blue-300)}.text-blue-400{color:var(--color-blue-400)}.text-blue-500{color:var(--color-blue-500)}.text-emerald-300{color:var(--color-emerald-300)}.text-gray-100{color:var(--color-gray-100)}.text-gray-200{color:var(--color-gray-200)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-green-300{color:var(--color-green-300)}.text-green-400{color:var(--color-green-400)}.text-orange-400{color:var(--color-orange-400)}.text-purple-400{color:var(--color-purple-400)}.text-red-300{color:var(--color-red-300)}.text-red-400{color:var(--color-red-400)}.text-rose-100{color:var(--color-rose-100)}.text-rose-200{color:var(--color-rose-200)}.text-rose-200\/90{color:#ffccd3e6}@supports (color:color-mix(in lab,red,red)){.text-rose-200\/90{color:color-mix(in oklab,var(--color-rose-200) 90%,transparent)}}.text-rose-300{color:var(--color-rose-300)}.text-white{color:var(--color-white)}.text-yellow-300{color:var(--color-yellow-300)}.text-yellow-400{color:var(--color-yellow-400)}.text-yellow-400\/70{color:#fac800b3}@supports (color:color-mix(in lab,red,red)){.text-yellow-400\/70{color:color-mix(in oklab,var(--color-yellow-400) 70%,transparent)}}.text-yellow-500{color:var(--color-yellow-500)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.placeholder-gray-500::placeholder{color:var(--color-gray-500)}.opacity-0{opacity:0}.opacity-70{opacity:.7}.opacity-100{opacity:1}.shadow-\[0_0_12px_0_rgba\(52\,211\,153\,0\.8\)\]{--tw-shadow:0 0 12px 0 var(--tw-shadow-color,#34d399cc);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_22px_-15px_rgba\(80\,176\,255\,0\.9\)\]{--tw-shadow:0 0 22px -15px var(--tw-shadow-color,#50b0ffe6);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_30px_-16px_rgba\(72\,140\,255\,0\.95\)\]{--tw-shadow:0 0 30px -16px var(--tw-shadow-color,#488cfff2);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_50px_-25px_rgba\(8\,121\,255\,0\.7\)\]{--tw-shadow:0 0 50px -25px var(--tw-shadow-color,#0879ffb3);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)}.filter{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-xl{--tw-backdrop-blur:blur(var(--blur-xl));-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{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[grid-template-rows\,opacity\]{transition-property:grid-template-rows,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[margin-left\]{transition-property:margin-left;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[opacity\,transform\,width\]{transition-property:opacity,transform,width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\,transform\]{transition-property:width,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.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-300{--tw-duration:.3s;transition-duration:.3s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media(hover:hover){.group-hover\:scale-110:is(:where(.group):hover *){--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:border-\[\#4f83ff\]:hover{border-color:#4f83ff}.hover\:border-\[\#294a8d\]:hover{border-color:#294a8d}.hover\:border-gray-700:hover{border-color:var(--color-gray-700)}.hover\:bg-\[\#07132f\]:hover{background-color:#07132f}.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-blue-900\/50:hover{background-color:#1c398e80}@supports (color:color-mix(in lab,red,red)){.hover\:bg-blue-900\/50:hover{background-color:color-mix(in oklab,var(--color-blue-900) 50%,transparent)}}.hover\:bg-gray-800:hover{background-color:var(--color-gray-800)}.hover\:bg-gray-800\/30:hover{background-color:#1e29394d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-gray-800\/30:hover{background-color:color-mix(in oklab,var(--color-gray-800) 30%,transparent)}}.hover\:bg-gray-800\/50:hover{background-color:#1e293980}@supports (color:color-mix(in lab,red,red)){.hover\:bg-gray-800\/50:hover{background-color:color-mix(in oklab,var(--color-gray-800) 50%,transparent)}}.hover\:bg-green-700:hover{background-color:var(--color-green-700)}.hover\:bg-yellow-700:hover{background-color:var(--color-yellow-700)}.hover\:text-blue-100:hover{color:var(--color-blue-100)}.hover\:text-blue-300:hover{color:var(--color-blue-300)}.hover\:text-gray-200:hover{color:var(--color-gray-200)}.hover\:text-red-300:hover{color:var(--color-red-300)}.hover\:text-red-400:hover{color:var(--color-red-400)}.hover\:text-white:hover{color:var(--color-white)}}.focus\:border-\[\#4f83ff\]:focus{border-color:#4f83ff}.focus\:border-transparent:focus{border-color:#0000}.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-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:ring-offset-0:focus{--tw-ring-offset-width:0px;--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}.disabled\:bg-gray-700:disabled{background-color:var(--color-gray-700)}.disabled\:text-gray-500:disabled{color:var(--color-gray-500)}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}@media(min-width:40rem){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:gap-1\.5{gap:calc(var(--spacing) * 1.5)}.sm\:gap-2{gap:calc(var(--spacing) * 2)}.sm\:gap-3{gap:calc(var(--spacing) * 3)}.sm\:px-3{padding-inline:calc(var(--spacing) * 3)}.sm\:px-5{padding-inline:calc(var(--spacing) * 5)}.sm\:py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.sm\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.sm\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media(min-width:48rem){.md\:invisible{visibility:hidden}.md\:ml-\[6\.25rem\]{margin-left:6.25rem}.md\:ml-\[17\.5rem\]{margin-left:17.5rem}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:w-\[6\.25rem\]{width:6.25rem}.md\:w-\[17\.5rem\]{width:17.5rem}.md\:w-auto{width:auto}.md\:translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-nowrap{flex-wrap:nowrap}.md\:gap-3{gap:calc(var(--spacing) * 3)}:where(.md\:space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.md\:p-4{padding:calc(var(--spacing) * 4)}.md\:px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.md\:px-5{padding-inline:calc(var(--spacing) * 5)}.md\:px-8{padding-inline:calc(var(--spacing) * 8)}.md\:py-4{padding-block:calc(var(--spacing) * 4)}.md\:pt-8{padding-top:calc(var(--spacing) * 8)}.md\:text-center{text-align:center}.md\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.md\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media(min-width:64rem){.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:80rem){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.\[\&_\.cm-content\]\:px-0 .cm-content{padding-inline:calc(var(--spacing) * 0)}.\[\&_\.cm-content\]\:py-4 .cm-content{padding-block:calc(var(--spacing) * 4)}.\[\&_\.cm-editor\]\:bg-gray-950 .cm-editor{background-color:var(--color-gray-950)}.\[\&_\.cm-editor\]\:focus\:outline-none .cm-editor:focus{--tw-outline-style:none;outline-style:none}.\[\&_\.cm-focused\]\:ring-2 .cm-focused{--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)}.\[\&_\.cm-focused\]\:ring-blue-500\/70 .cm-focused{--tw-ring-color:#3080ffb3}@supports (color:color-mix(in lab,red,red)){.\[\&_\.cm-focused\]\:ring-blue-500\/70 .cm-focused{--tw-ring-color:color-mix(in oklab, var(--color-blue-500) 70%, transparent)}}.\[\&_\.cm-focused\]\:ring-inset .cm-focused{--tw-ring-inset:inset}.\[\&_\.cm-gutters\]\:border-r .cm-gutters{border-right-style:var(--tw-border-style);border-right-width:1px}.\[\&_\.cm-gutters\]\:border-gray-800 .cm-gutters{border-color:var(--color-gray-800)}.\[\&_\.cm-gutters\]\:bg-gray-950 .cm-gutters{background-color:var(--color-gray-950)}.\[\&_\.cm-scroller\]\:font-mono .cm-scroller{font-family:var(--font-mono)}.\[\&_\.cm-scroller\]\:leading-6 .cm-scroller{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}}html{color-scheme:dark}body{color:#edf4ff;-webkit-font-smoothing:antialiased;text-rendering:geometricprecision;background:#020813;min-height:100dvh;margin:0;font-family:Sora,Manrope,Avenir Next,Segoe UI,sans-serif;overflow-x:hidden}#root{min-height:100dvh}.app-shell{isolation:isolate;background:radial-gradient(circle at 8% 5%,#2f8fff38,#0000 35%),radial-gradient(circle at 92% 14%,#00d1ff29,#0000 32%),linear-gradient(175deg,#020816,#03091b 46%,#040e24);position:relative}.app-shell:before,.app-shell:after{content:"";pointer-events:none;z-index:-1;position:fixed;top:0;right:0;bottom:0;left:0}.app-shell:before{opacity:.35;background-image:linear-gradient(#4c76c21a 1px,#0000 1px),linear-gradient(90deg,#4c76c21a 1px,#0000 1px);background-size:34px 34px;-webkit-mask-image:radial-gradient(circle at 50% 36%,#000 22%,#0000 80%);mask-image:radial-gradient(circle at 50% 36%,#000 22%,#0000 80%)}.app-shell:after{filter:blur(4px);background:radial-gradient(circle at 16% 86%,#2a80ff57,#0000 43%),radial-gradient(circle at 84% 22%,#00d4ff33,#0000 38%),radial-gradient(circle at 52% 122%,#2876ff4d,#0000 56%);animation:28s ease-in-out infinite appGlowDrift}.glass-header{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:linear-gradient(160deg,#06132dd9,#050e21e6);position:relative;box-shadow:0 18px 32px -28px #4491fff2,inset 0 1px #8cb7ff24}.glass-header:after{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(105deg,#0000 10%,#4f9bff3d,#0000 70%);animation:7s ease-in-out infinite topGlowSweep;position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;transform:translate(-70%)}.hero-panel{background:radial-gradient(circle at 0 0,#388fff3d,#0000 40%),linear-gradient(146deg,#081a40f2,#040d22eb);border:1px solid #21438c;border-radius:1.25rem;padding:1.15rem 1.2rem;position:relative;overflow:hidden;box-shadow:inset 0 1px #82aeff29,0 22px 50px -38px #4091fff0}.hero-panel:after{content:"";pointer-events:none;background:linear-gradient(118deg,#0000,#80b8ff1f,#0000 70%);animation:5.8s ease-in-out infinite heroSweep;position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-62%)}.hero-panel:before{content:"";filter:blur(12px);pointer-events:none;background:radial-gradient(circle,#3fa7ff6b,#0000 70%);border-radius:999px;width:19rem;height:19rem;animation:4.8s ease-in-out infinite heroGlowPulse;position:absolute;top:-10rem;right:-6rem}.status-pill{color:#c2d9ff;text-transform:uppercase;letter-spacing:.12em;background:#061d4ead;border:1px solid #2d58ac;border-radius:999px;align-items:center;gap:.35rem;padding:.35rem .65rem;font-size:.68rem;display:inline-flex;box-shadow:0 0 22px -16px #5399fff2}.electric-brand-mark{background-blend-mode:screen;background:radial-gradient(circle at 22% 18%,#5ec8ff38,#1777ff24 52%,#0a48b52e),url(/logo/background.png) 50%/cover no-repeat;justify-content:center;align-items:center;display:flex;box-shadow:inset 0 1px #ffffff3d,0 10px 25px -12px #2982fff2}.electric-card{background:linear-gradient(165deg,#08183cf2,#040e22f5);border:1px solid #1a3670;border-radius:1rem;position:relative;overflow:hidden;box-shadow:inset 0 1px #81aeff1f,0 25px 45px -36px #2f8cfff2,0 0 0 1px #3f8dff33,0 0 26px -17px #4cb0ffd1}.electric-card:after{content:"";filter:blur(16px);opacity:.45;pointer-events:none;background:radial-gradient(circle,#3b94ff40,#0000 72%);border-radius:50%;height:72%;animation:5.2s ease-in-out infinite cardGlowPulse;position:absolute;bottom:-65%;left:-20%;right:-20%}.electric-icon{color:#9bc3ff;background:radial-gradient(circle at 35% 22%,#7bc6ff61,#1d5cd652 66%,#0c2c667a);border:1px solid #568fff73;justify-content:center;align-items:center;display:flex}.metric-head{color:#91b8fb;letter-spacing:.11em;text-transform:uppercase;background:#061636bd;border:1px solid #244991;border-radius:999px;align-items:center;gap:.4rem;padding:.3rem .55rem;font-size:.66rem;display:inline-flex}.metric-value{color:#fff;letter-spacing:.02em;font-size:clamp(1.15rem,1.8vw,1.45rem);font-weight:620}.metric-sub{color:#89aee8;font-size:.78rem}.metric-pill{background:#05112cdb;border:1px solid #1d3c77;border-radius:.85rem;padding:.6rem .72rem;box-shadow:0 0 0 1px #3e89ff29,0 16px 30px -24px #2f8cffdb,0 0 18px -15px #49b0ffc7}.metric-pill span{text-transform:uppercase;letter-spacing:.1em;color:#85a9e1;font-size:.68rem;display:block}.metric-pill strong{color:#f5f9ff;margin-top:.2rem;font-size:.93rem;display:block}.electric-progress{background:linear-gradient(90deg,#1f76ff,#2f97ff 60%,#48cdff);box-shadow:0 0 18px -7px #3ea6fff2}.pairing-shell{isolation:isolate;background:radial-gradient(circle at 20% 5%,#408dff3d,#0000 35%),radial-gradient(circle at 75% 92%,#00c1ff21,#0000 35%),linear-gradient(155deg,#020816,#030c20 58%,#030915);min-height:100dvh;position:relative;overflow:hidden}.pairing-shell:after{content:"";filter:blur(12px);opacity:.7;pointer-events:none;z-index:-1;background:radial-gradient(circle at 10% 20%,#54adff40,#0000 60%),radial-gradient(circle at 85% 80%,#00ccff38,#0000 60%);animation:18s ease-in-out infinite pairingSpotlightSweep;position:absolute;top:-20%;right:-20%;bottom:-20%;left:-20%}.pairing-card{background:linear-gradient(155deg,#091b44e6,#040f23f0);border:1px solid #2956a8;position:relative;overflow:hidden;box-shadow:inset 0 1px #92beff29,0 30px 60px -44px #2f8dfffa,0 0 0 1px #4396ff33,0 0 28px -18px #4cb8ffd1}.pairing-card:before{content:"";border-radius:inherit;mix-blend-mode:screen;opacity:0;pointer-events:none;background:linear-gradient(135deg,#0000 10%,#66baff80,#0000 80%);animation:7.5s ease-in-out infinite pairingCardSweep;position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;transform:translate(-65%)}.pairing-brand{color:#0000;text-shadow:0 0 14px #60bdffcc,0 0 32px #2e8affe6,0 0 42px #fcee93d9;letter-spacing:.18em;background-image:linear-gradient(120deg,#5bc0ff,#f9e775,#5bc0ff 56%,#f9e775);background-size:260% 260%;-webkit-background-clip:text;background-clip:text;animation:5.4s ease-in-out infinite pairingElectricCharge}:is(div,section,article)[class*=bg-gray-900][class*=rounded-xl][class*=border],:is(div,section,article)[class*=bg-gray-900][class*=rounded-lg][class*=border],:is(div,section,article)[class*=bg-gray-950][class*=rounded-lg][class*=border]{box-shadow:0 0 0 1px #4390ff24,0 22px 40px -32px #2d86ffdb,0 0 22px -16px #49b4ffbf}.electric-button{background:linear-gradient(126deg,#125bdf,#1f88ff 55%,#17b4ff);border:1px solid #4a89ff;transition:transform .18s,filter .18s,box-shadow .18s;box-shadow:0 18px 30px -20px #2f8dffe6}.electric-button:hover{filter:brightness(1.05);transform:translateY(-1px);box-shadow:0 20px 34px -19px #389afff2}.electric-loader{border:3px solid #5992ff38;border-top-color:#51abff;animation:1s linear infinite spin;box-shadow:0 0 20px -12px #429dff}.motion-rise{animation:.58s both riseIn}.motion-delay-1{animation-delay:70ms}.motion-delay-2{animation-delay:.13s}.motion-delay-3{animation-delay:.19s}.motion-delay-4{animation-delay:.25s}*{scrollbar-width:thin;scrollbar-color:#244787 #081126}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#081126}::-webkit-scrollbar-thumb{background:#244787;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#3160b6}:focus-visible{outline-offset:2px;outline:2px solid #4ea4ff}@keyframes riseIn{0%{opacity:0;transform:translateY(14px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes heroSweep{0%,to{opacity:0;transform:translate(-68%)}30%{opacity:.65}60%{opacity:0;transform:translate(58%)}}@keyframes heroGlowPulse{0%,to{opacity:.38;transform:scale(.94)}50%{opacity:.72;transform:scale(1.08)}}@keyframes cardGlowPulse{0%,to{opacity:.28;transform:translateY(0)scale(.96)}50%{opacity:.55;transform:translateY(-2%)scale(1.04)}}@keyframes pairingElectricCharge{0%,to{text-shadow:0 0 14px #56b1ff80,0 0 32px #247cffb3,0 0 38px #fcee9399;background-position:0%;transform:translateY(0)scale(1)}35%{text-shadow:0 0 26px #8adaff,0 0 52px #38b0ff,0 0 60px #fcee93;background-position:80%;transform:translateY(-1px)scale(1.06)}60%{text-shadow:0 0 18px #56b1ffb3,0 0 36px #247cffcc,0 0 44px #fcee93b3;background-position:50%;transform:translateY(0)scale(1.02)}}@keyframes pairingSpotlightSweep{0%{opacity:.45;transform:translate(-12%,8%)scale(1)}30%{opacity:.7;transform:translate(10%,-4%)scale(1.06)}55%{opacity:.6;transform:translate(16%,10%)scale(1.1)}80%{opacity:.5;transform:translate(-8%,-6%)scale(1.04)}to{opacity:.45;transform:translate(-12%,8%)scale(1)}}@keyframes pairingCardSweep{0%,to{opacity:0;transform:translate(-70%)}25%{opacity:.55}50%{opacity:0;transform:translate(55%)}}@keyframes topGlowSweep{0%,to{opacity:0;transform:translate(-78%)}30%{opacity:.55}58%{opacity:0;transform:translate(58%)}}@keyframes appGlowDrift{0%{opacity:.3;transform:translate(-3%,1.8%)scale(1)}25%{opacity:.5;transform:translate(2.6%,-1.2%)scale(1.04)}50%{opacity:.56;transform:translate(4.4%,-3.4%)scale(1.09)}75%{opacity:.44;transform:translate(-1.8%,-2.1%)scale(1.05)}to{opacity:.34;transform:translate(-3.6%,2.6%)scale(1.01)}}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:768px){.hero-panel{padding:.95rem}.status-pill{letter-spacing:.1em;padding:.28rem .52rem;font-size:.61rem}.metric-value{font-size:1.08rem}.metric-sub{font-size:.74rem}.electric-card{border-radius:.9rem}}@media(prefers-reduced-motion:reduce){.hero-panel:after,.hero-panel:before,.glass-header:after,.electric-card:after,.app-shell:after,.pairing-shell:after,.pairing-card:before,.motion-rise,.electric-loader{animation:none!important}.electric-button{transition:none!important}}@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-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-space-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:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";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:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";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:"";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:"";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:"";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-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:"";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-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}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}} +/*! tailwindcss v4.2.0 | 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-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-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-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-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@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-300:oklch(80.8% .114 19.571);--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-red-900:oklch(39.6% .141 25.723);--color-orange-400:oklch(75% .183 55.934);--color-orange-600:oklch(64.6% .222 41.116);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-600:oklch(68.1% .162 75.834);--color-yellow-700:oklch(55.4% .135 66.442);--color-yellow-800:oklch(47.6% .114 61.907);--color-yellow-900:oklch(42.1% .095 57.708);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-green-900:oklch(39.3% .095 152.535);--color-green-950:oklch(26.6% .065 152.934);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-700:oklch(50.8% .118 165.612);--color-emerald-900:oklch(37.8% .077 168.94);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-blue-950:oklch(28.2% .091 267.935);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-purple-900:oklch(38.1% .176 304.987);--color-rose-100:oklch(94.1% .03 12.58);--color-rose-200:oklch(89.2% .058 10.001);--color-rose-300:oklch(81% .117 11.638);--color-rose-500:oklch(64.5% .246 16.439);--color-slate-500:oklch(55.4% .046 257.417);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-gray-950:oklch(13% .028 261.692);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-lg:32rem;--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-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-relaxed:1.625;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-bounce:bounce 1s infinite;--blur-xl:24px;--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)}}@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;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}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::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}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.right-2{right:calc(var(--spacing) * 2)}.left-0{left:calc(var(--spacing) * 0)}.left-3{left:calc(var(--spacing) * 3)}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.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}}.mx-3{margin-inline:calc(var(--spacing) * 3)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.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-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-auto{margin-top:auto}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.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-6{margin-bottom:calc(var(--spacing) * 6)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-32{height:calc(var(--spacing) * 32)}.h-64{height:calc(var(--spacing) * 64)}.h-\[calc\(100dvh-8\.5rem\)\]{height:calc(100dvh - 8.5rem)}.h-full{height:100%}.h-screen{height:100vh}.max-h-64{max-height:calc(var(--spacing) * 64)}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-\[4\.5rem\]{min-height:4.5rem}.min-h-\[28rem\]{min-height:28rem}.min-h-screen{min-height:100vh}.w-0{width:calc(var(--spacing) * 0)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-20{width:calc(var(--spacing) * 20)}.w-\[86vw\]{width:86vw}.w-auto{width:auto}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-\[17\.5rem\]{max-width:17.5rem}.max-w-\[75\%\]{max-width:75%}.max-w-\[200px\]{max-width:200px}.max-w-\[300px\]{max-width:300px}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-x-3{--tw-translate-x:calc(var(--spacing) * -3);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-1{--tw-translate-x:calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-6{--tw-translate-x:calc(var(--spacing) * 6);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-0{rotate:none}.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-bounce{animation:var(--animate-bounce)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-rows-\[0fr\]{grid-template-rows:0fr}.grid-rows-\[1fr\]{grid-template-rows:1fr}.flex-col{flex-direction:column}.flex-row-reverse{flex-direction:row-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.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)}: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-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-y-4{row-gap:calc(var(--spacing) * 4)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-xl{border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.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-\[\#1a2d5e\]{border-color:#1a2d5e}.border-\[\#1a3670\]{border-color:#1a3670}.border-\[\#1b3670\]{border-color:#1b3670}.border-\[\#1b3770\]{border-color:#1b3770}.border-\[\#1d3770\]{border-color:#1d3770}.border-\[\#1e2f5d\]{border-color:#1e2f5d}.border-\[\#1e3a78\]{border-color:#1e3a78}.border-\[\#1f3d76\]{border-color:#1f3d76}.border-\[\#2b4f97\]{border-color:#2b4f97}.border-\[\#2c4e97\]{border-color:#2c4e97}.border-\[\#2f5ea0\]{border-color:#2f5ea0}.border-\[\#2f63c8\]{border-color:#2f63c8}.border-\[\#3a6de0\]{border-color:#3a6de0}.border-\[\#5f6080\]{border-color:#5f6080}.border-\[\#294a8f\]{border-color:#294a8f}.border-\[\#18356f\]{border-color:#18356f}.border-\[\#29509c\]{border-color:#29509c}.border-amber-400\/30{border-color:#fcbb004d}@supports (color:color-mix(in lab,red,red)){.border-amber-400\/30{border-color:color-mix(in oklab,var(--color-amber-400) 30%,transparent)}}.border-blue-500{border-color:var(--color-blue-500)}.border-blue-700\/50{border-color:#1447e680}@supports (color:color-mix(in lab,red,red)){.border-blue-700\/50{border-color:color-mix(in oklab,var(--color-blue-700) 50%,transparent)}}.border-blue-700\/70{border-color:#1447e6b3}@supports (color:color-mix(in lab,red,red)){.border-blue-700\/70{border-color:color-mix(in oklab,var(--color-blue-700) 70%,transparent)}}.border-blue-800{border-color:var(--color-blue-800)}.border-blue-800\/50{border-color:#193cb880}@supports (color:color-mix(in lab,red,red)){.border-blue-800\/50{border-color:color-mix(in oklab,var(--color-blue-800) 50%,transparent)}}.border-emerald-500\/30{border-color:#00bb7f4d}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/30{border-color:color-mix(in oklab,var(--color-emerald-500) 30%,transparent)}}.border-emerald-700\/60{border-color:#00795699}@supports (color:color-mix(in lab,red,red)){.border-emerald-700\/60{border-color:color-mix(in oklab,var(--color-emerald-700) 60%,transparent)}}.border-gray-600{border-color:var(--color-gray-600)}.border-gray-700{border-color:var(--color-gray-700)}.border-gray-800{border-color:var(--color-gray-800)}.border-gray-800\/50{border-color:#1e293980}@supports (color:color-mix(in lab,red,red)){.border-gray-800\/50{border-color:color-mix(in oklab,var(--color-gray-800) 50%,transparent)}}.border-green-700{border-color:var(--color-green-700)}.border-green-700\/40{border-color:#00813866}@supports (color:color-mix(in lab,red,red)){.border-green-700\/40{border-color:color-mix(in oklab,var(--color-green-700) 40%,transparent)}}.border-green-700\/50{border-color:#00813880}@supports (color:color-mix(in lab,red,red)){.border-green-700\/50{border-color:color-mix(in oklab,var(--color-green-700) 50%,transparent)}}.border-green-700\/70{border-color:#008138b3}@supports (color:color-mix(in lab,red,red)){.border-green-700\/70{border-color:color-mix(in oklab,var(--color-green-700) 70%,transparent)}}.border-green-800{border-color:var(--color-green-800)}.border-purple-700\/50{border-color:#8200da80}@supports (color:color-mix(in lab,red,red)){.border-purple-700\/50{border-color:color-mix(in oklab,var(--color-purple-700) 50%,transparent)}}.border-red-700{border-color:var(--color-red-700)}.border-red-700\/40{border-color:#bf000f66}@supports (color:color-mix(in lab,red,red)){.border-red-700\/40{border-color:color-mix(in oklab,var(--color-red-700) 40%,transparent)}}.border-red-700\/50{border-color:#bf000f80}@supports (color:color-mix(in lab,red,red)){.border-red-700\/50{border-color:color-mix(in oklab,var(--color-red-700) 50%,transparent)}}.border-rose-500\/35{border-color:#ff235759}@supports (color:color-mix(in lab,red,red)){.border-rose-500\/35{border-color:color-mix(in oklab,var(--color-rose-500) 35%,transparent)}}.border-transparent{border-color:#0000}.border-yellow-700\/40{border-color:#a3610066}@supports (color:color-mix(in lab,red,red)){.border-yellow-700\/40{border-color:color-mix(in oklab,var(--color-yellow-700) 40%,transparent)}}.border-yellow-700\/50{border-color:#a3610080}@supports (color:color-mix(in lab,red,red)){.border-yellow-700\/50{border-color:color-mix(in oklab,var(--color-yellow-700) 50%,transparent)}}.border-yellow-800\/50{border-color:#874b0080}@supports (color:color-mix(in lab,red,red)){.border-yellow-800\/50{border-color:color-mix(in oklab,var(--color-yellow-800) 50%,transparent)}}.border-t-transparent{border-top-color:#0000}.bg-\[\#0a1b3f\]\/60{background-color:#0a1b3f99}.bg-\[\#0a265f\]\/70{background-color:#0a265fb3}.bg-\[\#0b2f80\]\/55{background-color:#0b2f808c}.bg-\[\#050b1a\]\/95{background-color:#050b1af2}.bg-\[\#060f25\]\/85{background-color:#060f25d9}.bg-\[\#071a41\]\/80{background-color:#071a41cc}.bg-\[\#05112c\]\/80{background-color:#05112ccc}.bg-\[\#05112c\]\/90{background-color:#05112ce6}.bg-\[\#07142f\]\/85{background-color:#07142fd9}.bg-\[\#061129\]\/85{background-color:#061129d9}.bg-\[\#061230\]{background-color:#061230}.bg-\[\#071228\]\/90{background-color:#071228e6}.bg-\[\#071328\]\/80{background-color:#071328cc}.bg-\[\#081637\]\/70{background-color:#081637b3}.bg-\[\#091937\]\/75{background-color:#091937bf}.bg-\[\#141731\]\/80{background-color:#141731cc}.bg-amber-400{background-color:var(--color-amber-400)}.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-black\/60{background-color:#0009}@supports (color:color-mix(in lab,red,red)){.bg-black\/60{background-color:color-mix(in oklab,var(--color-black) 60%,transparent)}}.bg-black\/70{background-color:#000000b3}@supports (color:color-mix(in lab,red,red)){.bg-black\/70{background-color:color-mix(in oklab,var(--color-black) 70%,transparent)}}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-blue-600\/20{background-color:#155dfc33}@supports (color:color-mix(in lab,red,red)){.bg-blue-600\/20{background-color:color-mix(in oklab,var(--color-blue-600) 20%,transparent)}}.bg-blue-900\/30{background-color:#1c398e4d}@supports (color:color-mix(in lab,red,red)){.bg-blue-900\/30{background-color:color-mix(in oklab,var(--color-blue-900) 30%,transparent)}}.bg-blue-900\/40{background-color:#1c398e66}@supports (color:color-mix(in lab,red,red)){.bg-blue-900\/40{background-color:color-mix(in oklab,var(--color-blue-900) 40%,transparent)}}.bg-blue-900\/50{background-color:#1c398e80}@supports (color:color-mix(in lab,red,red)){.bg-blue-900\/50{background-color:color-mix(in oklab,var(--color-blue-900) 50%,transparent)}}.bg-blue-950\/30{background-color:#1624564d}@supports (color:color-mix(in lab,red,red)){.bg-blue-950\/30{background-color:color-mix(in oklab,var(--color-blue-950) 30%,transparent)}}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-emerald-900\/40{background-color:#004e3b66}@supports (color:color-mix(in lab,red,red)){.bg-emerald-900\/40{background-color:color-mix(in oklab,var(--color-emerald-900) 40%,transparent)}}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-700{background-color:var(--color-gray-700)}.bg-gray-800{background-color:var(--color-gray-800)}.bg-gray-800\/50{background-color:#1e293980}@supports (color:color-mix(in lab,red,red)){.bg-gray-800\/50{background-color:color-mix(in oklab,var(--color-gray-800) 50%,transparent)}}.bg-gray-900{background-color:var(--color-gray-900)}.bg-gray-900\/80{background-color:#101828cc}@supports (color:color-mix(in lab,red,red)){.bg-gray-900\/80{background-color:color-mix(in oklab,var(--color-gray-900) 80%,transparent)}}.bg-gray-950{background-color:var(--color-gray-950)}.bg-gray-950\/50{background-color:#03071280}@supports (color:color-mix(in lab,red,red)){.bg-gray-950\/50{background-color:color-mix(in oklab,var(--color-gray-950) 50%,transparent)}}.bg-green-500{background-color:var(--color-green-500)}.bg-green-600{background-color:var(--color-green-600)}.bg-green-600\/20{background-color:#00a54433}@supports (color:color-mix(in lab,red,red)){.bg-green-600\/20{background-color:color-mix(in oklab,var(--color-green-600) 20%,transparent)}}.bg-green-900\/10{background-color:#0d542b1a}@supports (color:color-mix(in lab,red,red)){.bg-green-900\/10{background-color:color-mix(in oklab,var(--color-green-900) 10%,transparent)}}.bg-green-900\/30{background-color:#0d542b4d}@supports (color:color-mix(in lab,red,red)){.bg-green-900\/30{background-color:color-mix(in oklab,var(--color-green-900) 30%,transparent)}}.bg-green-900\/40{background-color:#0d542b66}@supports (color:color-mix(in lab,red,red)){.bg-green-900\/40{background-color:color-mix(in oklab,var(--color-green-900) 40%,transparent)}}.bg-green-900\/50{background-color:#0d542b80}@supports (color:color-mix(in lab,red,red)){.bg-green-900\/50{background-color:color-mix(in oklab,var(--color-green-900) 50%,transparent)}}.bg-orange-600\/20{background-color:#f0510033}@supports (color:color-mix(in lab,red,red)){.bg-orange-600\/20{background-color:color-mix(in oklab,var(--color-orange-600) 20%,transparent)}}.bg-purple-600\/20{background-color:#9810fa33}@supports (color:color-mix(in lab,red,red)){.bg-purple-600\/20{background-color:color-mix(in oklab,var(--color-purple-600) 20%,transparent)}}.bg-purple-900\/50{background-color:#59168b80}@supports (color:color-mix(in lab,red,red)){.bg-purple-900\/50{background-color:color-mix(in oklab,var(--color-purple-900) 50%,transparent)}}.bg-red-500{background-color:var(--color-red-500)}.bg-red-900\/10{background-color:#82181a1a}@supports (color:color-mix(in lab,red,red)){.bg-red-900\/10{background-color:color-mix(in oklab,var(--color-red-900) 10%,transparent)}}.bg-red-900\/30{background-color:#82181a4d}@supports (color:color-mix(in lab,red,red)){.bg-red-900\/30{background-color:color-mix(in oklab,var(--color-red-900) 30%,transparent)}}.bg-red-900\/40{background-color:#82181a66}@supports (color:color-mix(in lab,red,red)){.bg-red-900\/40{background-color:color-mix(in oklab,var(--color-red-900) 40%,transparent)}}.bg-red-900\/50{background-color:#82181a80}@supports (color:color-mix(in lab,red,red)){.bg-red-900\/50{background-color:color-mix(in oklab,var(--color-red-900) 50%,transparent)}}.bg-rose-500{background-color:var(--color-rose-500)}.bg-slate-500{background-color:var(--color-slate-500)}.bg-white{background-color:var(--color-white)}.bg-yellow-600{background-color:var(--color-yellow-600)}.bg-yellow-900\/10{background-color:#733e0a1a}@supports (color:color-mix(in lab,red,red)){.bg-yellow-900\/10{background-color:color-mix(in oklab,var(--color-yellow-900) 10%,transparent)}}.bg-yellow-900\/20{background-color:#733e0a33}@supports (color:color-mix(in lab,red,red)){.bg-yellow-900\/20{background-color:color-mix(in oklab,var(--color-yellow-900) 20%,transparent)}}.bg-yellow-900\/30{background-color:#733e0a4d}@supports (color:color-mix(in lab,red,red)){.bg-yellow-900\/30{background-color:color-mix(in oklab,var(--color-yellow-900) 30%,transparent)}}.bg-yellow-900\/40{background-color:#733e0a66}@supports (color:color-mix(in lab,red,red)){.bg-yellow-900\/40{background-color:color-mix(in oklab,var(--color-yellow-900) 40%,transparent)}}.bg-yellow-900\/50{background-color:#733e0a80}@supports (color:color-mix(in lab,red,red)){.bg-yellow-900\/50{background-color:color-mix(in oklab,var(--color-yellow-900) 50%,transparent)}}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-\[radial-gradient\(circle_at_15\%_30\%\,rgba\(41\,148\,255\,0\.22\)\,transparent_45\%\)\,radial-gradient\(circle_at_85\%_75\%\,rgba\(0\,209\,255\,0\.14\)\,transparent_40\%\)\]{background-image:radial-gradient(circle at 15% 30%,#2994ff38,#0000 45%),radial-gradient(circle at 85% 75%,#00d1ff24,#0000 40%)}.from-green-950\/20{--tw-gradient-from:#032e1533}@supports (color:color-mix(in lab,red,red)){.from-green-950\/20{--tw-gradient-from:color-mix(in oklab, var(--color-green-950) 20%, transparent)}}.from-green-950\/20{--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))}.to-gray-900{--tw-gradient-to:var(--color-gray-900);--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))}.object-contain{object-fit:contain}.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-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.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-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.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-12{padding-block:calc(var(--spacing) * 12)}.py-16{padding-block:calc(var(--spacing) * 16)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-16{padding-right:calc(var(--spacing) * 16)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pb-8{padding-bottom:calc(var(--spacing) * 8)}.pl-9{padding-left:calc(var(--spacing) * 9)}.pl-10{padding-left:calc(var(--spacing) * 10)}.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-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.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\.1em\]{--tw-tracking:.1em;letter-spacing:.1em}.tracking-\[0\.03em\]{--tw-tracking:.03em;letter-spacing:.03em}.tracking-\[0\.12em\]{--tw-tracking:.12em;letter-spacing:.12em}.tracking-\[0\.13em\]{--tw-tracking:.13em;letter-spacing:.13em}.tracking-\[0\.16em\]{--tw-tracking:.16em;letter-spacing:.16em}.tracking-\[0\.22em\]{--tw-tracking:.22em;letter-spacing:.22em}.tracking-\[0\.35em\]{--tw-tracking:.35em;letter-spacing:.35em}.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)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#5f84cc\]{color:#5f84cc}.text-\[\#7ca6de\]{color:#7ca6de}.text-\[\#7ea5eb\]{color:#7ea5eb}.text-\[\#8aa8df\]{color:#8aa8df}.text-\[\#8baee7\]{color:#8baee7}.text-\[\#8bb9ff\]{color:#8bb9ff}.text-\[\#8eb8f4\]{color:#8eb8f4}.text-\[\#8fb8ff\]{color:#8fb8ff}.text-\[\#9bb7eb\]{color:#9bb7eb}.text-\[\#9bb8e8\]{color:#9bb8e8}.text-\[\#9bb8ec\]{color:#9bb8ec}.text-\[\#9bbce8\]{color:#9bbce8}.text-\[\#9ec2ff\]{color:#9ec2ff}.text-\[\#87a9e5\]{color:#87a9e5}.text-\[\#89a9df\]{color:#89a9df}.text-\[\#97baee\]{color:#97baee}.text-\[\#a7c4f3\]{color:#a7c4f3}.text-\[\#acd0ff\]{color:#acd0ff}.text-\[\#b3cbf8\]{color:#b3cbf8}.text-\[\#c2c5e8\]{color:#c2c5e8}.text-\[\#c4d8ff\]{color:#c4d8ff}.text-\[\#c8dcff\]{color:#c8dcff}.text-\[\#cfe3ff\]{color:#cfe3ff}.text-amber-300{color:var(--color-amber-300)}.text-blue-200{color:var(--color-blue-200)}.text-blue-300{color:var(--color-blue-300)}.text-blue-400{color:var(--color-blue-400)}.text-blue-500{color:var(--color-blue-500)}.text-emerald-300{color:var(--color-emerald-300)}.text-gray-100{color:var(--color-gray-100)}.text-gray-200{color:var(--color-gray-200)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-green-300{color:var(--color-green-300)}.text-green-400{color:var(--color-green-400)}.text-orange-400{color:var(--color-orange-400)}.text-purple-400{color:var(--color-purple-400)}.text-red-300{color:var(--color-red-300)}.text-red-400{color:var(--color-red-400)}.text-rose-100{color:var(--color-rose-100)}.text-rose-200{color:var(--color-rose-200)}.text-rose-200\/90{color:#ffccd3e6}@supports (color:color-mix(in lab,red,red)){.text-rose-200\/90{color:color-mix(in oklab,var(--color-rose-200) 90%,transparent)}}.text-rose-300{color:var(--color-rose-300)}.text-white{color:var(--color-white)}.text-yellow-300{color:var(--color-yellow-300)}.text-yellow-400{color:var(--color-yellow-400)}.text-yellow-400\/70{color:#fac800b3}@supports (color:color-mix(in lab,red,red)){.text-yellow-400\/70{color:color-mix(in oklab,var(--color-yellow-400) 70%,transparent)}}.text-yellow-500{color:var(--color-yellow-500)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.placeholder-gray-500::placeholder{color:var(--color-gray-500)}.opacity-0{opacity:0}.opacity-70{opacity:.7}.opacity-100{opacity:1}.shadow-\[0_0_12px_0_rgba\(52\,211\,153\,0\.8\)\]{--tw-shadow:0 0 12px 0 var(--tw-shadow-color,#34d399cc);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_22px_-15px_rgba\(80\,176\,255\,0\.9\)\]{--tw-shadow:0 0 22px -15px var(--tw-shadow-color,#50b0ffe6);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_30px_-16px_rgba\(72\,140\,255\,0\.95\)\]{--tw-shadow:0 0 30px -16px var(--tw-shadow-color,#488cfff2);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_50px_-25px_rgba\(8\,121\,255\,0\.7\)\]{--tw-shadow:0 0 50px -25px var(--tw-shadow-color,#0879ffb3);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)}.filter{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-xl{--tw-backdrop-blur:blur(var(--blur-xl));-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{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[grid-template-rows\,opacity\]{transition-property:grid-template-rows,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[margin-left\]{transition-property:margin-left;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[opacity\,transform\,width\]{transition-property:opacity,transform,width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\,transform\]{transition-property:width,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.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-300{--tw-duration:.3s;transition-duration:.3s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media(hover:hover){.group-hover\:scale-110:is(:where(.group):hover *){--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:border-\[\#4f83ff\]:hover{border-color:#4f83ff}.hover\:border-\[\#294a8d\]:hover{border-color:#294a8d}.hover\:border-gray-700:hover{border-color:var(--color-gray-700)}.hover\:bg-\[\#07132f\]:hover{background-color:#07132f}.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-blue-900\/50:hover{background-color:#1c398e80}@supports (color:color-mix(in lab,red,red)){.hover\:bg-blue-900\/50:hover{background-color:color-mix(in oklab,var(--color-blue-900) 50%,transparent)}}.hover\:bg-gray-800:hover{background-color:var(--color-gray-800)}.hover\:bg-gray-800\/30:hover{background-color:#1e29394d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-gray-800\/30:hover{background-color:color-mix(in oklab,var(--color-gray-800) 30%,transparent)}}.hover\:bg-gray-800\/50:hover{background-color:#1e293980}@supports (color:color-mix(in lab,red,red)){.hover\:bg-gray-800\/50:hover{background-color:color-mix(in oklab,var(--color-gray-800) 50%,transparent)}}.hover\:bg-green-700:hover{background-color:var(--color-green-700)}.hover\:bg-yellow-700:hover{background-color:var(--color-yellow-700)}.hover\:text-blue-100:hover{color:var(--color-blue-100)}.hover\:text-blue-300:hover{color:var(--color-blue-300)}.hover\:text-gray-200:hover{color:var(--color-gray-200)}.hover\:text-red-300:hover{color:var(--color-red-300)}.hover\:text-red-400:hover{color:var(--color-red-400)}.hover\:text-white:hover{color:var(--color-white)}}.focus\:border-\[\#4f83ff\]:focus{border-color:#4f83ff}.focus\:border-transparent:focus{border-color:#0000}.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-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:ring-offset-0:focus{--tw-ring-offset-width:0px;--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}.disabled\:bg-gray-700:disabled{background-color:var(--color-gray-700)}.disabled\:text-gray-500:disabled{color:var(--color-gray-500)}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}@media(min-width:40rem){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:gap-1\.5{gap:calc(var(--spacing) * 1.5)}.sm\:gap-2{gap:calc(var(--spacing) * 2)}.sm\:gap-3{gap:calc(var(--spacing) * 3)}.sm\:px-3{padding-inline:calc(var(--spacing) * 3)}.sm\:px-5{padding-inline:calc(var(--spacing) * 5)}.sm\:py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.sm\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.sm\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media(min-width:48rem){.md\:invisible{visibility:hidden}.md\:ml-\[6\.25rem\]{margin-left:6.25rem}.md\:ml-\[17\.5rem\]{margin-left:17.5rem}.md\:block{display:block}.md\:hidden{display:none}.md\:w-\[6\.25rem\]{width:6.25rem}.md\:w-\[17\.5rem\]{width:17.5rem}.md\:w-auto{width:auto}.md\:translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-nowrap{flex-wrap:nowrap}.md\:gap-3{gap:calc(var(--spacing) * 3)}:where(.md\:space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.md\:p-4{padding:calc(var(--spacing) * 4)}.md\:px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.md\:px-5{padding-inline:calc(var(--spacing) * 5)}.md\:px-8{padding-inline:calc(var(--spacing) * 8)}.md\:py-4{padding-block:calc(var(--spacing) * 4)}.md\:pt-8{padding-top:calc(var(--spacing) * 8)}.md\:text-center{text-align:center}.md\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.md\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}}@media(min-width:64rem){.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:80rem){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.\[\&_\.cm-content\]\:px-0 .cm-content{padding-inline:calc(var(--spacing) * 0)}.\[\&_\.cm-content\]\:py-4 .cm-content{padding-block:calc(var(--spacing) * 4)}.\[\&_\.cm-editor\]\:bg-gray-950 .cm-editor{background-color:var(--color-gray-950)}.\[\&_\.cm-editor\]\:focus\:outline-none .cm-editor:focus{--tw-outline-style:none;outline-style:none}.\[\&_\.cm-focused\]\:ring-2 .cm-focused{--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)}.\[\&_\.cm-focused\]\:ring-blue-500\/70 .cm-focused{--tw-ring-color:#3080ffb3}@supports (color:color-mix(in lab,red,red)){.\[\&_\.cm-focused\]\:ring-blue-500\/70 .cm-focused{--tw-ring-color:color-mix(in oklab, var(--color-blue-500) 70%, transparent)}}.\[\&_\.cm-focused\]\:ring-inset .cm-focused{--tw-ring-inset:inset}.\[\&_\.cm-gutters\]\:border-r .cm-gutters{border-right-style:var(--tw-border-style);border-right-width:1px}.\[\&_\.cm-gutters\]\:border-gray-800 .cm-gutters{border-color:var(--color-gray-800)}.\[\&_\.cm-gutters\]\:bg-gray-950 .cm-gutters{background-color:var(--color-gray-950)}.\[\&_\.cm-scroller\]\:font-mono .cm-scroller{font-family:var(--font-mono)}.\[\&_\.cm-scroller\]\:leading-6 .cm-scroller{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}}html{color-scheme:dark}body{color:#edf4ff;-webkit-font-smoothing:antialiased;text-rendering:geometricprecision;background:#020813;min-height:100dvh;margin:0;font-family:Sora,Manrope,Avenir Next,Segoe UI,sans-serif;overflow-x:hidden}#root{min-height:100dvh}.app-shell{isolation:isolate;background:radial-gradient(circle at 8% 5%,#2f8fff38,#0000 35%),radial-gradient(circle at 92% 14%,#00d1ff29,#0000 32%),linear-gradient(175deg,#020816,#03091b 46%,#040e24);position:relative}.app-shell:before,.app-shell:after{content:"";pointer-events:none;z-index:-1;position:fixed;top:0;right:0;bottom:0;left:0}.app-shell:before{opacity:.35;background-image:linear-gradient(#4c76c21a 1px,#0000 1px),linear-gradient(90deg,#4c76c21a 1px,#0000 1px);background-size:34px 34px;-webkit-mask-image:radial-gradient(circle at 50% 36%,#000 22%,#0000 80%);mask-image:radial-gradient(circle at 50% 36%,#000 22%,#0000 80%)}.app-shell:after{filter:blur(4px);background:radial-gradient(circle at 16% 86%,#2a80ff57,#0000 43%),radial-gradient(circle at 84% 22%,#00d4ff33,#0000 38%),radial-gradient(circle at 52% 122%,#2876ff4d,#0000 56%);animation:28s ease-in-out infinite appGlowDrift}.glass-header{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:linear-gradient(160deg,#06132dd9,#050e21e6);position:relative;box-shadow:0 18px 32px -28px #4491fff2,inset 0 1px #8cb7ff24}.glass-header:after{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(105deg,#0000 10%,#4f9bff3d,#0000 70%);animation:7s ease-in-out infinite topGlowSweep;position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;transform:translate(-70%)}.hero-panel{background:radial-gradient(circle at 0 0,#388fff3d,#0000 40%),linear-gradient(146deg,#081a40f2,#040d22eb);border:1px solid #21438c;border-radius:1.25rem;padding:1.15rem 1.2rem;position:relative;overflow:hidden;box-shadow:inset 0 1px #82aeff29,0 22px 50px -38px #4091fff0}.hero-panel:after{content:"";pointer-events:none;background:linear-gradient(118deg,#0000,#80b8ff1f,#0000 70%);animation:5.8s ease-in-out infinite heroSweep;position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-62%)}.hero-panel:before{content:"";filter:blur(12px);pointer-events:none;background:radial-gradient(circle,#3fa7ff6b,#0000 70%);border-radius:999px;width:19rem;height:19rem;animation:4.8s ease-in-out infinite heroGlowPulse;position:absolute;top:-10rem;right:-6rem}.status-pill{color:#c2d9ff;text-transform:uppercase;letter-spacing:.12em;background:#061d4ead;border:1px solid #2d58ac;border-radius:999px;align-items:center;gap:.35rem;padding:.35rem .65rem;font-size:.68rem;display:inline-flex;box-shadow:0 0 22px -16px #5399fff2}.electric-brand-mark{background-blend-mode:screen;background:radial-gradient(circle at 22% 18%,#5ec8ff38,#1777ff24 52%,#0a48b52e),url(/logo/background.png) 50%/cover no-repeat;justify-content:center;align-items:center;display:flex;box-shadow:inset 0 1px #ffffff3d,0 10px 25px -12px #2982fff2}.electric-card{background:linear-gradient(165deg,#08183cf2,#040e22f5);border:1px solid #1a3670;border-radius:1rem;position:relative;overflow:hidden;box-shadow:inset 0 1px #81aeff1f,0 25px 45px -36px #2f8cfff2,0 0 0 1px #3f8dff33,0 0 26px -17px #4cb0ffd1}.electric-card:after{content:"";filter:blur(16px);opacity:.45;pointer-events:none;background:radial-gradient(circle,#3b94ff40,#0000 72%);border-radius:50%;height:72%;animation:5.2s ease-in-out infinite cardGlowPulse;position:absolute;bottom:-65%;left:-20%;right:-20%}.electric-icon{color:#9bc3ff;background:radial-gradient(circle at 35% 22%,#7bc6ff61,#1d5cd652 66%,#0c2c667a);border:1px solid #568fff73;justify-content:center;align-items:center;display:flex}.metric-head{color:#91b8fb;letter-spacing:.11em;text-transform:uppercase;background:#061636bd;border:1px solid #244991;border-radius:999px;align-items:center;gap:.4rem;padding:.3rem .55rem;font-size:.66rem;display:inline-flex}.metric-value{color:#fff;letter-spacing:.02em;font-size:clamp(1.15rem,1.8vw,1.45rem);font-weight:620}.metric-sub{color:#89aee8;font-size:.78rem}.metric-pill{background:#05112cdb;border:1px solid #1d3c77;border-radius:.85rem;padding:.6rem .72rem;box-shadow:0 0 0 1px #3e89ff29,0 16px 30px -24px #2f8cffdb,0 0 18px -15px #49b0ffc7}.metric-pill span{text-transform:uppercase;letter-spacing:.1em;color:#85a9e1;font-size:.68rem;display:block}.metric-pill strong{color:#f5f9ff;margin-top:.2rem;font-size:.93rem;display:block}.electric-progress{background:linear-gradient(90deg,#1f76ff,#2f97ff 60%,#48cdff);box-shadow:0 0 18px -7px #3ea6fff2}.pairing-shell{isolation:isolate;background:radial-gradient(circle at 20% 5%,#408dff3d,#0000 35%),radial-gradient(circle at 75% 92%,#00c1ff21,#0000 35%),linear-gradient(155deg,#020816,#030c20 58%,#030915);min-height:100dvh;position:relative;overflow:hidden}.pairing-shell:after{content:"";filter:blur(12px);opacity:.7;pointer-events:none;z-index:-1;background:radial-gradient(circle at 10% 20%,#54adff40,#0000 60%),radial-gradient(circle at 85% 80%,#00ccff38,#0000 60%);animation:18s ease-in-out infinite pairingSpotlightSweep;position:absolute;top:-20%;right:-20%;bottom:-20%;left:-20%}.pairing-card{background:linear-gradient(155deg,#091b44e6,#040f23f0);border:1px solid #2956a8;position:relative;overflow:hidden;box-shadow:inset 0 1px #92beff29,0 30px 60px -44px #2f8dfffa,0 0 0 1px #4396ff33,0 0 28px -18px #4cb8ffd1}.pairing-card:before{content:"";border-radius:inherit;mix-blend-mode:screen;opacity:0;pointer-events:none;background:linear-gradient(135deg,#0000 10%,#66baff80,#0000 80%);animation:7.5s ease-in-out infinite pairingCardSweep;position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;transform:translate(-65%)}.pairing-brand{color:#0000;text-shadow:0 0 14px #60bdffcc,0 0 32px #2e8affe6,0 0 42px #fcee93d9;letter-spacing:.18em;background-image:linear-gradient(120deg,#5bc0ff,#f9e775,#5bc0ff 56%,#f9e775);background-size:260% 260%;-webkit-background-clip:text;background-clip:text;animation:5.4s ease-in-out infinite pairingElectricCharge}:is(div,section,article)[class*=bg-gray-900][class*=rounded-xl][class*=border],:is(div,section,article)[class*=bg-gray-900][class*=rounded-lg][class*=border],:is(div,section,article)[class*=bg-gray-950][class*=rounded-lg][class*=border]{box-shadow:0 0 0 1px #4390ff24,0 22px 40px -32px #2d86ffdb,0 0 22px -16px #49b4ffbf}.electric-button{background:linear-gradient(126deg,#125bdf,#1f88ff 55%,#17b4ff);border:1px solid #4a89ff;transition:transform .18s,filter .18s,box-shadow .18s;box-shadow:0 18px 30px -20px #2f8dffe6}.electric-button:hover{filter:brightness(1.05);transform:translateY(-1px);box-shadow:0 20px 34px -19px #389afff2}.electric-loader{border:3px solid #5992ff38;border-top-color:#51abff;animation:1s linear infinite spin;box-shadow:0 0 20px -12px #429dff}.motion-rise{animation:.58s both riseIn}.motion-delay-1{animation-delay:70ms}.motion-delay-2{animation-delay:.13s}.motion-delay-3{animation-delay:.19s}.motion-delay-4{animation-delay:.25s}*{scrollbar-width:thin;scrollbar-color:#244787 #081126}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#081126}::-webkit-scrollbar-thumb{background:#244787;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#3160b6}:focus-visible{outline-offset:2px;outline:2px solid #4ea4ff}@keyframes riseIn{0%{opacity:0;transform:translateY(14px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes heroSweep{0%,to{opacity:0;transform:translate(-68%)}30%{opacity:.65}60%{opacity:0;transform:translate(58%)}}@keyframes heroGlowPulse{0%,to{opacity:.38;transform:scale(.94)}50%{opacity:.72;transform:scale(1.08)}}@keyframes cardGlowPulse{0%,to{opacity:.28;transform:translateY(0)scale(.96)}50%{opacity:.55;transform:translateY(-2%)scale(1.04)}}@keyframes pairingElectricCharge{0%,to{text-shadow:0 0 14px #56b1ff80,0 0 32px #247cffb3,0 0 38px #fcee9399;background-position:0%;transform:translateY(0)scale(1)}35%{text-shadow:0 0 26px #8adaff,0 0 52px #38b0ff,0 0 60px #fcee93;background-position:80%;transform:translateY(-1px)scale(1.06)}60%{text-shadow:0 0 18px #56b1ffb3,0 0 36px #247cffcc,0 0 44px #fcee93b3;background-position:50%;transform:translateY(0)scale(1.02)}}@keyframes pairingSpotlightSweep{0%{opacity:.45;transform:translate(-12%,8%)scale(1)}30%{opacity:.7;transform:translate(10%,-4%)scale(1.06)}55%{opacity:.6;transform:translate(16%,10%)scale(1.1)}80%{opacity:.5;transform:translate(-8%,-6%)scale(1.04)}to{opacity:.45;transform:translate(-12%,8%)scale(1)}}@keyframes pairingCardSweep{0%,to{opacity:0;transform:translate(-70%)}25%{opacity:.55}50%{opacity:0;transform:translate(55%)}}@keyframes topGlowSweep{0%,to{opacity:0;transform:translate(-78%)}30%{opacity:.55}58%{opacity:0;transform:translate(58%)}}@keyframes appGlowDrift{0%{opacity:.3;transform:translate(-3%,1.8%)scale(1)}25%{opacity:.5;transform:translate(2.6%,-1.2%)scale(1.04)}50%{opacity:.56;transform:translate(4.4%,-3.4%)scale(1.09)}75%{opacity:.44;transform:translate(-1.8%,-2.1%)scale(1.05)}to{opacity:.34;transform:translate(-3.6%,2.6%)scale(1.01)}}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:768px){.hero-panel{padding:.95rem}.status-pill{letter-spacing:.1em;padding:.28rem .52rem;font-size:.61rem}.metric-value{font-size:1.08rem}.metric-sub{font-size:.74rem}.electric-card{border-radius:.9rem}}@media(prefers-reduced-motion:reduce){.hero-panel:after,.hero-panel:before,.glass-header:after,.electric-card:after,.app-shell:after,.pairing-shell:after,.pairing-card:before,.motion-rise,.electric-loader{animation:none!important}.electric-button{transition:none!important}}@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-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-space-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:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";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:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";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:"";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:"";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:"";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-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:"";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-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}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}} diff --git a/web/dist/assets/index-CW3l40cv.js b/web/dist/assets/index-CW_YEDAa.js similarity index 85% rename from web/dist/assets/index-CW3l40cv.js rename to web/dist/assets/index-CW_YEDAa.js index 41b4e2ff3..5ce22045b 100644 --- a/web/dist/assets/index-CW3l40cv.js +++ b/web/dist/assets/index-CW_YEDAa.js @@ -14,7 +14,7 @@ var S4=Object.defineProperty;var V1=n=>{throw TypeError(n)};var k4=(n,e,t)=>e in * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var K1;function M4(){if(K1)return Ae;K1=1;var n=Symbol.for("react.transitional.element"),e=Symbol.for("react.portal"),t=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),r=Symbol.for("react.consumer"),o=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),f=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),b=Symbol.for("react.activity"),x=Symbol.iterator;function w(D){return D===null||typeof D!="object"?null:(D=x&&D[x]||D["@@iterator"],typeof D=="function"?D:null)}var S={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},A=Object.assign,C={};function T(D,P,ee){this.props=D,this.context=P,this.refs=C,this.updater=ee||S}T.prototype.isReactComponent={},T.prototype.setState=function(D,P){if(typeof D!="object"&&typeof D!="function"&&D!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,D,P,"setState")},T.prototype.forceUpdate=function(D){this.updater.enqueueForceUpdate(this,D,"forceUpdate")};function R(){}R.prototype=T.prototype;function E(D,P,ee){this.props=D,this.context=P,this.refs=C,this.updater=ee||S}var q=E.prototype=new R;q.constructor=E,A(q,T.prototype),q.isPureReactComponent=!0;var B=Array.isArray;function I(){}var V={H:null,A:null,T:null,S:null},Q=Object.prototype.hasOwnProperty;function Z(D,P,ee){var ae=ee.ref;return{$$typeof:n,type:D,key:P,ref:ae!==void 0?ae:null,props:ee}}function ue(D,P){return Z(D.type,P,D.props)}function fe(D){return typeof D=="object"&&D!==null&&D.$$typeof===n}function ne(D){var P={"=":"=0",":":"=2"};return"$"+D.replace(/[=:]/g,function(ee){return P[ee]})}var pe=/\/+/g;function J(D,P){return typeof D=="object"&&D!==null&&D.key!=null?ne(""+D.key):P.toString(36)}function ve(D){switch(D.status){case"fulfilled":return D.value;case"rejected":throw D.reason;default:switch(typeof D.status=="string"?D.then(I,I):(D.status="pending",D.then(function(P){D.status==="pending"&&(D.status="fulfilled",D.value=P)},function(P){D.status==="pending"&&(D.status="rejected",D.reason=P)})),D.status){case"fulfilled":return D.value;case"rejected":throw D.reason}}throw D}function z(D,P,ee,ae,ye){var Ce=typeof D;(Ce==="undefined"||Ce==="boolean")&&(D=null);var Ee=!1;if(D===null)Ee=!0;else switch(Ce){case"bigint":case"string":case"number":Ee=!0;break;case"object":switch(D.$$typeof){case n:case e:Ee=!0;break;case p:return Ee=D._init,z(Ee(D._payload),P,ee,ae,ye)}}if(Ee)return ye=ye(D),Ee=ae===""?"."+J(D,0):ae,B(ye)?(ee="",Ee!=null&&(ee=Ee.replace(pe,"$&/")+"/"),z(ye,P,ee,"",function(Hl){return Hl})):ye!=null&&(fe(ye)&&(ye=ue(ye,ee+(ye.key==null||D&&D.key===ye.key?"":(""+ye.key).replace(pe,"$&/")+"/")+Ee)),P.push(ye)),1;Ee=0;var Mt=ae===""?".":ae+":";if(B(D))for(var ot=0;ot{throw TypeError(n)};var k4=(n,e,t)=>e in * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var I1;function T4(){return I1||(I1=1,(function(n){function e(z,K){var $=z.length;z.push(K);e:for(;0<$;){var le=$-1>>>1,ge=z[le];if(0>>1;les(ee,$))aes(ye,ee)?(z[le]=ye,z[ae]=$,le=ae):(z[le]=ee,z[P]=$,le=P);else if(aes(ye,$))z[le]=ye,z[ae]=$,le=ae;else break e}}return K}function s(z,K){var $=z.sortIndex-K.sortIndex;return $!==0?$:z.id-K.id}if(n.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var r=performance;n.unstable_now=function(){return r.now()}}else{var o=Date,u=o.now();n.unstable_now=function(){return o.now()-u}}var f=[],d=[],p=1,b=null,x=3,w=!1,S=!1,A=!1,C=!1,T=typeof setTimeout=="function"?setTimeout:null,R=typeof clearTimeout=="function"?clearTimeout:null,E=typeof setImmediate<"u"?setImmediate:null;function q(z){for(var K=t(d);K!==null;){if(K.callback===null)i(d);else if(K.startTime<=z)i(d),K.sortIndex=K.expirationTime,e(f,K);else break;K=t(d)}}function B(z){if(A=!1,q(z),!S)if(t(f)!==null)S=!0,I||(I=!0,ne());else{var K=t(d);K!==null&&ve(B,K.startTime-z)}}var I=!1,V=-1,Q=5,Z=-1;function ue(){return C?!0:!(n.unstable_now()-Zz&&ue());){var le=b.callback;if(typeof le=="function"){b.callback=null,x=b.priorityLevel;var ge=le(b.expirationTime<=z);if(z=n.unstable_now(),typeof ge=="function"){b.callback=ge,q(z),K=!0;break t}b===t(f)&&i(f),q(z)}else i(f);b=t(f)}if(b!==null)K=!0;else{var D=t(d);D!==null&&ve(B,D.startTime-z),K=!1}}break e}finally{b=null,x=$,w=!1}K=void 0}}finally{K?ne():I=!1}}}var ne;if(typeof E=="function")ne=function(){E(fe)};else if(typeof MessageChannel<"u"){var pe=new MessageChannel,J=pe.port2;pe.port1.onmessage=fe,ne=function(){J.postMessage(null)}}else ne=function(){T(fe,0)};function ve(z,K){V=T(function(){z(n.unstable_now())},K)}n.unstable_IdlePriority=5,n.unstable_ImmediatePriority=1,n.unstable_LowPriority=4,n.unstable_NormalPriority=3,n.unstable_Profiling=null,n.unstable_UserBlockingPriority=2,n.unstable_cancelCallback=function(z){z.callback=null},n.unstable_forceFrameRate=function(z){0>z||125le?(z.sortIndex=$,e(d,z),t(f)===null&&z===t(d)&&(A?(R(V),V=-1):A=!0,ve(B,$-le))):(z.sortIndex=ge,e(f,z),S||w||(S=!0,I||(I=!0,ne()))),z},n.unstable_shouldYield=ue,n.unstable_wrapCallback=function(z){var K=x;return function(){var $=x;x=K;try{return z.apply(this,arguments)}finally{x=$}}}})(Zd)),Zd}var Y1;function N4(){return Y1||(Y1=1,Qd.exports=T4()),Qd.exports}var $d={exports:{}},Pt={};/** + */var I1;function T4(){return I1||(I1=1,(function(n){function e(z,K){var $=z.length;z.push(K);e:for(;0<$;){var ie=$-1>>>1,ge=z[ie];if(0>>1;ies(ee,$))aes(ye,ee)?(z[ie]=ye,z[ae]=$,ie=ae):(z[ie]=ee,z[P]=$,ie=P);else if(aes(ye,$))z[ie]=ye,z[ae]=$,ie=ae;else break e}}return K}function s(z,K){var $=z.sortIndex-K.sortIndex;return $!==0?$:z.id-K.id}if(n.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var r=performance;n.unstable_now=function(){return r.now()}}else{var o=Date,u=o.now();n.unstable_now=function(){return o.now()-u}}var f=[],d=[],p=1,b=null,x=3,w=!1,S=!1,A=!1,C=!1,T=typeof setTimeout=="function"?setTimeout:null,R=typeof clearTimeout=="function"?clearTimeout:null,E=typeof setImmediate<"u"?setImmediate:null;function q(z){for(var K=t(d);K!==null;){if(K.callback===null)i(d);else if(K.startTime<=z)i(d),K.sortIndex=K.expirationTime,e(f,K);else break;K=t(d)}}function B(z){if(A=!1,q(z),!S)if(t(f)!==null)S=!0,I||(I=!0,ne());else{var K=t(d);K!==null&&ve(B,K.startTime-z)}}var I=!1,V=-1,Q=5,Z=-1;function ue(){return C?!0:!(n.unstable_now()-Zz&&ue());){var ie=b.callback;if(typeof ie=="function"){b.callback=null,x=b.priorityLevel;var ge=ie(b.expirationTime<=z);if(z=n.unstable_now(),typeof ge=="function"){b.callback=ge,q(z),K=!0;break t}b===t(f)&&i(f),q(z)}else i(f);b=t(f)}if(b!==null)K=!0;else{var D=t(d);D!==null&&ve(B,D.startTime-z),K=!1}}break e}finally{b=null,x=$,w=!1}K=void 0}}finally{K?ne():I=!1}}}var ne;if(typeof E=="function")ne=function(){E(fe)};else if(typeof MessageChannel<"u"){var pe=new MessageChannel,J=pe.port2;pe.port1.onmessage=fe,ne=function(){J.postMessage(null)}}else ne=function(){T(fe,0)};function ve(z,K){V=T(function(){z(n.unstable_now())},K)}n.unstable_IdlePriority=5,n.unstable_ImmediatePriority=1,n.unstable_LowPriority=4,n.unstable_NormalPriority=3,n.unstable_Profiling=null,n.unstable_UserBlockingPriority=2,n.unstable_cancelCallback=function(z){z.callback=null},n.unstable_forceFrameRate=function(z){0>z||125ie?(z.sortIndex=$,e(d,z),t(f)===null&&z===t(d)&&(A?(R(V),V=-1):A=!0,ve(B,$-ie))):(z.sortIndex=ge,e(f,z),S||w||(S=!0,I||(I=!0,ne()))),z},n.unstable_shouldYield=ue,n.unstable_wrapCallback=function(z){var K=x;return function(){var $=x;x=K;try{return z.apply(this,arguments)}finally{x=$}}}})(Zd)),Zd}var Y1;function N4(){return Y1||(Y1=1,Qd.exports=T4()),Qd.exports}var $d={exports:{}},Pt={};/** * @license React * react-dom.production.js * @@ -38,7 +38,7 @@ var S4=Object.defineProperty;var V1=n=>{throw TypeError(n)};var k4=(n,e,t)=>e in * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var X1;function O4(){if(X1)return Rr;X1=1;var n=N4(),e=Vp(),t=D4();function i(l){var a="https://react.dev/errors/"+l;if(1ge||(l.current=le[ge],le[ge]=null,ge--)}function ee(l,a){ge++,le[ge]=l.current,l.current=a}var ae=D(null),ye=D(null),Ce=D(null),Ee=D(null);function Mt(l,a){switch(ee(Ce,a),ee(ye,l),ee(ae,null),a.nodeType){case 9:case 11:l=(l=a.documentElement)&&(l=l.namespaceURI)?o1(l):0;break;default:if(l=a.tagName,a=a.namespaceURI)a=o1(a),l=c1(a,l);else switch(l){case"svg":l=1;break;case"math":l=2;break;default:l=0}}P(ae),ee(ae,l)}function ot(){P(ae),P(ye),P(Ce)}function Hl(l){l.memoizedState!==null&&ee(Ee,l);var a=ae.current,c=c1(a,l.type);a!==c&&(ee(ye,l),ee(ae,c))}function ks(l){ye.current===l&&(P(ae),P(ye)),Ee.current===l&&(P(Ee),Nr._currentValue=$)}var Ha,jh;function ei(l){if(Ha===void 0)try{throw Error()}catch(c){var a=c.stack.trim().match(/\n( *(at )?)/);Ha=a&&a[1]||"",jh=-1ge||(l.current=ie[ge],ie[ge]=null,ge--)}function ee(l,a){ge++,ie[ge]=l.current,l.current=a}var ae=D(null),ye=D(null),Ce=D(null),Ee=D(null);function Mt(l,a){switch(ee(Ce,a),ee(ye,l),ee(ae,null),a.nodeType){case 9:case 11:l=(l=a.documentElement)&&(l=l.namespaceURI)?o1(l):0;break;default:if(l=a.tagName,a=a.namespaceURI)a=o1(a),l=c1(a,l);else switch(l){case"svg":l=1;break;case"math":l=2;break;default:l=0}}P(ae),ee(ae,l)}function ot(){P(ae),P(ye),P(Ce)}function Hl(l){l.memoizedState!==null&&ee(Ee,l);var a=ae.current,c=c1(a,l.type);a!==c&&(ee(ye,l),ee(ae,c))}function ks(l){ye.current===l&&(P(ae),P(ye)),Ee.current===l&&(P(Ee),Nr._currentValue=$)}var Ha,jh;function ei(l){if(Ha===void 0)try{throw Error()}catch(c){var a=c.stack.trim().match(/\n( *(at )?)/);Ha=a&&a[1]||"",jh=-1)":-1 to {const t=M.forwardRef(({className:i,...s},r)=>M.createElement(g3,{ref:r,iconNode:e,className:_2(`lucide-${m3(n)}`,i),...s}));return t.displayName=`${n}`,t};/** + */const se=(n,e)=>{const t=M.forwardRef(({className:i,...s},r)=>M.createElement(g3,{ref:r,iconNode:e,className:_2(`lucide-${m3(n)}`,i),...s}));return t.displayName=`${n}`,t};/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Hu=ie("Activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);/** + */const Hu=se("Activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const y3=ie("ArrowDown",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);/** + */const y3=se("ArrowDown",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const b3=ie("ArrowLeftRight",[["path",{d:"M8 3 4 7l4 4",key:"9rb6wj"}],["path",{d:"M4 7h16",key:"6tx8e3"}],["path",{d:"m16 21 4-4-4-4",key:"siv7j2"}],["path",{d:"M20 17H4",key:"h6l3hr"}]]);/** + */const b3=se("ArrowLeftRight",[["path",{d:"M8 3 4 7l4 4",key:"9rb6wj"}],["path",{d:"M4 7h16",key:"6tx8e3"}],["path",{d:"m16 21 4-4-4-4",key:"siv7j2"}],["path",{d:"M20 17H4",key:"h6l3hr"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const x3=ie("BookOpen",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);/** + */const x3=se("BookOpen",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Tu=ie("Bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);/** + */const Tu=se("Bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const v3=ie("Box",[["path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",key:"hh9hay"}],["path",{d:"m3.3 7 8.7 5 8.7-5",key:"g66t2b"}],["path",{d:"M12 22V12",key:"d0xqtd"}]]);/** + */const v3=se("Box",[["path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",key:"hh9hay"}],["path",{d:"m3.3 7 8.7 5 8.7-5",key:"g66t2b"}],["path",{d:"M12 22V12",key:"d0xqtd"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Vm=ie("Brain",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z",key:"ep3f8r"}],["path",{d:"M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4",key:"1p4c4q"}],["path",{d:"M17.599 6.5a3 3 0 0 0 .399-1.375",key:"tmeiqw"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M19.938 10.5a4 4 0 0 1 .585.396",key:"1qfode"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M19.967 17.484A4 4 0 0 1 18 18",key:"159ez6"}]]);/** + */const Vm=se("Brain",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z",key:"ep3f8r"}],["path",{d:"M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4",key:"1p4c4q"}],["path",{d:"M17.599 6.5a3 3 0 0 0 .399-1.375",key:"tmeiqw"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M19.938 10.5a4 4 0 0 1 .585.396",key:"1qfode"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M19.967 17.484A4 4 0 0 1 18 18",key:"159ez6"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const w3=ie("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/** + */const w3=se("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const hh=ie("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** + */const hh=se("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const L2=ie("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** + */const L2=se("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const S3=ie("ChevronsLeftRightEllipsis",[["path",{d:"m18 8 4 4-4 4",key:"1ak13k"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"M8 12h.01",key:"czm47f"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M16 12h.01",key:"1l6xoz"}]]);/** + */const S3=se("ChevronsLeftRightEllipsis",[["path",{d:"m18 8 4 4-4 4",key:"1ak13k"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"M8 12h.01",key:"czm47f"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M16 12h.01",key:"1l6xoz"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const B2=ie("CircleAlert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);/** + */const B2=se("CircleAlert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const fh=ie("CircleCheckBig",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);/** + */const fh=se("CircleCheckBig",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const k3=ie("CircleUser",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662",key:"154egf"}]]);/** + */const k3=se("CircleUser",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662",key:"154egf"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Fp=ie("CircleX",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);/** + */const Fp=se("CircleX",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const C3=ie("Clock3",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16.5 12",key:"1aq6pp"}]]);/** + */const C3=se("Clock3",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16.5 12",key:"1aq6pp"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const no=ie("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/** + */const no=se("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const A3=ie("Container",[["path",{d:"M22 7.7c0-.6-.4-1.2-.8-1.5l-6.3-3.9a1.72 1.72 0 0 0-1.7 0l-10.3 6c-.5.2-.9.8-.9 1.4v6.6c0 .5.4 1.2.8 1.5l6.3 3.9a1.72 1.72 0 0 0 1.7 0l10.3-6c.5-.3.9-1 .9-1.5Z",key:"1t2lqe"}],["path",{d:"M10 21.9V14L2.1 9.1",key:"o7czzq"}],["path",{d:"m10 14 11.9-6.9",key:"zm5e20"}],["path",{d:"M14 19.8v-8.1",key:"159ecu"}],["path",{d:"M18 17.5V9.4",key:"11uown"}]]);/** + */const A3=se("Container",[["path",{d:"M22 7.7c0-.6-.4-1.2-.8-1.5l-6.3-3.9a1.72 1.72 0 0 0-1.7 0l-10.3 6c-.5.2-.9.8-.9 1.4v6.6c0 .5.4 1.2.8 1.5l6.3 3.9a1.72 1.72 0 0 0 1.7 0l10.3-6c.5-.3.9-1 .9-1.5Z",key:"1t2lqe"}],["path",{d:"M10 21.9V14L2.1 9.1",key:"o7czzq"}],["path",{d:"m10 14 11.9-6.9",key:"zm5e20"}],["path",{d:"M14 19.8v-8.1",key:"159ecu"}],["path",{d:"M18 17.5V9.4",key:"11uown"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Nu=ie("Cpu",[["rect",{width:"16",height:"16",x:"4",y:"4",rx:"2",key:"14l7u7"}],["rect",{width:"6",height:"6",x:"9",y:"9",rx:"1",key:"5aljv4"}],["path",{d:"M15 2v2",key:"13l42r"}],["path",{d:"M15 20v2",key:"15mkzm"}],["path",{d:"M2 15h2",key:"1gxd5l"}],["path",{d:"M2 9h2",key:"1bbxkp"}],["path",{d:"M20 15h2",key:"19e6y8"}],["path",{d:"M20 9h2",key:"19tzq7"}],["path",{d:"M9 2v2",key:"165o2o"}],["path",{d:"M9 20v2",key:"i2bqo8"}]]);/** + */const Nu=se("Cpu",[["rect",{width:"16",height:"16",x:"4",y:"4",rx:"2",key:"14l7u7"}],["rect",{width:"6",height:"6",x:"9",y:"9",rx:"1",key:"5aljv4"}],["path",{d:"M15 2v2",key:"13l42r"}],["path",{d:"M15 20v2",key:"15mkzm"}],["path",{d:"M2 15h2",key:"1gxd5l"}],["path",{d:"M2 9h2",key:"1bbxkp"}],["path",{d:"M20 15h2",key:"19e6y8"}],["path",{d:"M20 9h2",key:"19tzq7"}],["path",{d:"M9 2v2",key:"165o2o"}],["path",{d:"M9 20v2",key:"i2bqo8"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Um=ie("Database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);/** + */const Um=se("Database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const dh=ie("DollarSign",[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]]);/** + */const dh=se("DollarSign",[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const M3=ie("Earth",[["path",{d:"M21.54 15H17a2 2 0 0 0-2 2v4.54",key:"1djwo0"}],["path",{d:"M7 3.34V5a3 3 0 0 0 3 3a2 2 0 0 1 2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2c0-1.1.9-2 2-2h3.17",key:"1tzkfa"}],["path",{d:"M11 21.95V18a2 2 0 0 0-2-2a2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05",key:"14pb5j"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);/** + */const M3=se("Earth",[["path",{d:"M21.54 15H17a2 2 0 0 0-2 2v4.54",key:"1djwo0"}],["path",{d:"M7 3.34V5a3 3 0 0 0 3 3a2 2 0 0 1 2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2c0-1.1.9-2 2-2h3.17",key:"1tzkfa"}],["path",{d:"M11 21.95V18a2 2 0 0 0-2-2a2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05",key:"14pb5j"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const T3=ie("EyeOff",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);/** + */const T3=se("EyeOff",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const z2=ie("Eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** + */const z2=se("Eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const H2=ie("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);/** + */const H2=se("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Xp=ie("Filter",[["polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3",key:"1yg77f"}]]);/** + */const Xp=se("Filter",[["polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3",key:"1yg77f"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const N3=ie("Gauge",[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]]);/** + */const N3=se("Gauge",[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const eu=ie("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);/** + */const eu=se("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const E3=ie("HardDrive",[["line",{x1:"22",x2:"2",y1:"12",y2:"12",key:"1y58io"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}],["line",{x1:"6",x2:"6.01",y1:"16",y2:"16",key:"sgf278"}],["line",{x1:"10",x2:"10.01",y1:"16",y2:"16",key:"1l4acy"}]]);/** + */const E3=se("HardDrive",[["line",{x1:"22",x2:"2",y1:"12",y2:"12",key:"1y58io"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}],["line",{x1:"6",x2:"6.01",y1:"16",y2:"16",key:"sgf278"}],["line",{x1:"10",x2:"10.01",y1:"16",y2:"16",key:"1l4acy"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const qm=ie("Hash",[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]]);/** + */const qm=se("Hash",[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const D3=ie("Heart",[["path",{d:"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z",key:"c3ymky"}]]);/** + */const D3=se("Heart",[["path",{d:"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z",key:"c3ymky"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const O3=ie("Image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);/** + */const O3=se("Image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const V2=ie("KeyRound",[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]);/** + */const V2=se("KeyRound",[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const j3=ie("Layers",[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]]);/** + */const j3=se("Layers",[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const R3=ie("LayoutDashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]);/** + */const R3=se("LayoutDashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const ix=ie("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/** + */const ix=se("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const U2=ie("Lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);/** + */const U2=se("Lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const _3=ie("LogOut",[["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}],["polyline",{points:"16 17 21 12 16 7",key:"1gabdz"}],["line",{x1:"21",x2:"9",y1:"12",y2:"12",key:"1uyos4"}]]);/** + */const _3=se("LogOut",[["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}],["polyline",{points:"16 17 21 12 16 7",key:"1gabdz"}],["line",{x1:"21",x2:"9",y1:"12",y2:"12",key:"1uyos4"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const L3=ie("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]]);/** + */const L3=se("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const B3=ie("MessageCircleMore",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}],["path",{d:"M8 12h.01",key:"czm47f"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M16 12h.01",key:"1l6xoz"}]]);/** + */const B3=se("MessageCircleMore",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}],["path",{d:"M8 12h.01",key:"czm47f"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M16 12h.01",key:"1l6xoz"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Pi=ie("MessageCircle",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}]]);/** + */const Pi=se("MessageCircle",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const z3=ie("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]);/** + */const z3=se("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const H3=ie("Mic",[["path",{d:"M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z",key:"131961"}],["path",{d:"M19 10v2a7 7 0 0 1-14 0v-2",key:"1vc78b"}],["line",{x1:"12",x2:"12",y1:"19",y2:"22",key:"x3vr5v"}]]);/** + */const H3=se("Mic",[["path",{d:"M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z",key:"131961"}],["path",{d:"M19 10v2a7 7 0 0 1-14 0v-2",key:"1vc78b"}],["line",{x1:"12",x2:"12",y1:"19",y2:"22",key:"x3vr5v"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const V3=ie("Network",[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]]);/** + */const V3=se("Network",[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const U3=ie("OctagonAlert",[["path",{d:"M12 16h.01",key:"1drbdi"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M15.312 2a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586l-4.688-4.688A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2z",key:"1fd625"}]]);/** + */const U3=se("OctagonAlert",[["path",{d:"M12 16h.01",key:"1drbdi"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M15.312 2a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586l-4.688-4.688A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2z",key:"1fd625"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const q3=ie("Package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["path",{d:"m3.3 7 7.703 4.734a2 2 0 0 0 1.994 0L20.7 7",key:"yx3hmr"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]);/** + */const q3=se("Package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["path",{d:"m3.3 7 7.703 4.734a2 2 0 0 0 1.994 0L20.7 7",key:"yx3hmr"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const P3=ie("PanelLeftClose",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m16 15-3-3 3-3",key:"14y99z"}]]);/** + */const P3=se("Pause",[["rect",{x:"14",y:"4",width:"4",height:"16",rx:"1",key:"zuxfzm"}],["rect",{x:"6",y:"4",width:"4",height:"16",rx:"1",key:"1okwgv"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const K3=ie("PanelLeftOpen",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m14 9 3 3-3 3",key:"8010ee"}]]);/** + */const Qp=se("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const G3=ie("Pause",[["rect",{x:"14",y:"4",width:"4",height:"16",rx:"1",key:"zuxfzm"}],["rect",{x:"6",y:"4",width:"4",height:"16",rx:"1",key:"1okwgv"}]]);/** + */const K3=se("Plug",[["path",{d:"M12 22v-5",key:"1ega77"}],["path",{d:"M9 8V2",key:"14iosj"}],["path",{d:"M15 8V2",key:"18g5xt"}],["path",{d:"M18 8v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8Z",key:"osxo6l"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Qp=ie("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]]);/** + */const q2=se("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const I3=ie("Plug",[["path",{d:"M12 22v-5",key:"1ega77"}],["path",{d:"M9 8V2",key:"14iosj"}],["path",{d:"M15 8V2",key:"18g5xt"}],["path",{d:"M18 8v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8Z",key:"osxo6l"}]]);/** + */const io=se("Puzzle",[["path",{d:"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",key:"w46dr5"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const q2=ie("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);/** + */const G3=se("Radio",[["path",{d:"M4.9 19.1C1 15.2 1 8.8 4.9 4.9",key:"1vaf9d"}],["path",{d:"M7.8 16.2c-2.3-2.3-2.3-6.1 0-8.5",key:"u1ii0m"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"M16.2 7.8c2.3 2.3 2.3 6.1 0 8.5",key:"1j5fej"}],["path",{d:"M19.1 4.9C23 8.8 23 15.1 19.1 19",key:"10b0cb"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const io=ie("Puzzle",[["path",{d:"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",key:"w46dr5"}]]);/** + */const P2=se("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Y3=ie("Radio",[["path",{d:"M4.9 19.1C1 15.2 1 8.8 4.9 4.9",key:"1vaf9d"}],["path",{d:"M7.8 16.2c-2.3-2.3-2.3-6.1 0-8.5",key:"u1ii0m"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"M16.2 7.8c2.3 2.3 2.3 6.1 0 8.5",key:"1j5fej"}],["path",{d:"M19.1 4.9C23 8.8 23 15.1 19.1 19",key:"10b0cb"}]]);/** + */const lx=se("Router",[["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",key:"w68u3i"}],["path",{d:"M6.01 18H6",key:"19vcac"}],["path",{d:"M10.01 18H10",key:"uamcmx"}],["path",{d:"M15 10v4",key:"qjz1xs"}],["path",{d:"M17.84 7.17a4 4 0 0 0-5.66 0",key:"1rif40"}],["path",{d:"M20.66 4.34a8 8 0 0 0-11.31 0",key:"6a5xfq"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const P2=ie("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);/** + */const I3=se("Save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const lx=ie("Router",[["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",key:"w68u3i"}],["path",{d:"M6.01 18H6",key:"19vcac"}],["path",{d:"M10.01 18H10",key:"uamcmx"}],["path",{d:"M15 10v4",key:"qjz1xs"}],["path",{d:"M17.84 7.17a4 4 0 0 0-5.66 0",key:"1rif40"}],["path",{d:"M20.66 4.34a8 8 0 0 0-11.31 0",key:"6a5xfq"}]]);/** + */const mh=se("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const W3=ie("Save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]);/** + */const K2=se("Send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const mh=ie("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/** + */const Y3=se("Server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const K2=ie("Send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);/** + */const Zp=se("Settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const F3=ie("Server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);/** + */const W3=se("ShieldAlert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Zp=ie("Settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** + */const G2=se("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const X3=ie("ShieldAlert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);/** + */const F3=se("ShieldX",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m14.5 9.5-5 5",key:"17q4r4"}],["path",{d:"m9.5 9.5 5 5",key:"18nt4w"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const G2=ie("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** + */const X3=se("SlidersHorizontal",[["line",{x1:"21",x2:"14",y1:"4",y2:"4",key:"obuewd"}],["line",{x1:"10",x2:"3",y1:"4",y2:"4",key:"1q6298"}],["line",{x1:"21",x2:"12",y1:"12",y2:"12",key:"1iu8h1"}],["line",{x1:"8",x2:"3",y1:"12",y2:"12",key:"ntss68"}],["line",{x1:"21",x2:"16",y1:"20",y2:"20",key:"14d8ph"}],["line",{x1:"12",x2:"3",y1:"20",y2:"20",key:"m0wm8r"}],["line",{x1:"14",x2:"14",y1:"2",y2:"6",key:"14e1ph"}],["line",{x1:"8",x2:"8",y1:"10",y2:"14",key:"1i6ji0"}],["line",{x1:"16",x2:"16",y1:"18",y2:"22",key:"1lctlv"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Q3=ie("ShieldX",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m14.5 9.5-5 5",key:"17q4r4"}],["path",{d:"m9.5 9.5 5 5",key:"18nt4w"}]]);/** + */const I2=se("Smartphone",[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Z3=ie("SlidersHorizontal",[["line",{x1:"21",x2:"14",y1:"4",y2:"4",key:"obuewd"}],["line",{x1:"10",x2:"3",y1:"4",y2:"4",key:"1q6298"}],["line",{x1:"21",x2:"12",y1:"12",y2:"12",key:"1iu8h1"}],["line",{x1:"8",x2:"3",y1:"12",y2:"12",key:"ntss68"}],["line",{x1:"21",x2:"16",y1:"20",y2:"20",key:"14d8ph"}],["line",{x1:"12",x2:"3",y1:"20",y2:"20",key:"m0wm8r"}],["line",{x1:"14",x2:"14",y1:"2",y2:"6",key:"14e1ph"}],["line",{x1:"8",x2:"8",y1:"10",y2:"14",key:"1i6ji0"}],["line",{x1:"16",x2:"16",y1:"18",y2:"22",key:"1lctlv"}]]);/** + */const $p=se("Sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const I2=ie("Smartphone",[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]]);/** + */const Pm=se("Stethoscope",[["path",{d:"M11 2v2",key:"1539x4"}],["path",{d:"M5 2v2",key:"1yf1q8"}],["path",{d:"M5 3H4a2 2 0 0 0-2 2v4a6 6 0 0 0 12 0V5a2 2 0 0 0-2-2h-1",key:"rb5t3r"}],["path",{d:"M8 15a6 6 0 0 0 12 0v-3",key:"x18d4x"}],["circle",{cx:"20",cy:"10",r:"2",key:"ts1r5v"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const $p=ie("Sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]);/** + */const Q3=se("Target",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Pm=ie("Stethoscope",[["path",{d:"M11 2v2",key:"1539x4"}],["path",{d:"M5 2v2",key:"1yf1q8"}],["path",{d:"M5 3H4a2 2 0 0 0-2 2v4a6 6 0 0 0 12 0V5a2 2 0 0 0-2-2h-1",key:"rb5t3r"}],["path",{d:"M8 15a6 6 0 0 0 12 0v-3",key:"x18d4x"}],["circle",{cx:"20",cy:"10",r:"2",key:"ts1r5v"}]]);/** + */const Z3=se("Terminal",[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const $3=ie("Target",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]);/** + */const $3=se("Timer",[["line",{x1:"10",x2:"14",y1:"2",y2:"2",key:"14vaq8"}],["line",{x1:"12",x2:"15",y1:"14",y2:"11",key:"17fdiu"}],["circle",{cx:"12",cy:"14",r:"8",key:"1e1u0o"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const J3=ie("Terminal",[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]]);/** + */const Y2=se("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const eT=ie("Timer",[["line",{x1:"10",x2:"14",y1:"2",y2:"2",key:"14vaq8"}],["line",{x1:"12",x2:"15",y1:"14",y2:"11",key:"17fdiu"}],["circle",{cx:"12",cy:"14",r:"8",key:"1e1u0o"}]]);/** + */const J3=se("TrendingUp",[["polyline",{points:"22 7 13.5 15.5 8.5 10.5 2 17",key:"126l90"}],["polyline",{points:"16 7 22 7 22 13",key:"kwv8wd"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Y2=ie("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);/** + */const Jp=se("TriangleAlert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const tT=ie("TrendingUp",[["polyline",{points:"22 7 13.5 15.5 8.5 10.5 2 17",key:"126l90"}],["polyline",{points:"16 7 22 7 22 13",key:"kwv8wd"}]]);/** + */const eT=se("User",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Jp=ie("TriangleAlert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/** + */const sx=se("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const nT=ie("User",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);/** + */const tT=se("Webhook",[["path",{d:"M18 16.98h-5.99c-1.1 0-1.95.94-2.48 1.9A4 4 0 0 1 2 17c.01-.7.2-1.4.57-2",key:"q3hayz"}],["path",{d:"m6 17 3.13-5.78c.53-.97.1-2.18-.5-3.1a4 4 0 1 1 6.89-4.06",key:"1go1hn"}],["path",{d:"m12 6 3.13 5.73C15.66 12.7 16.9 13 18 13a4 4 0 0 1 0 8",key:"qlwsc0"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const sx=ie("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]);/** + */const W2=se("Wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const iT=ie("Webhook",[["path",{d:"M18 16.98h-5.99c-1.1 0-1.95.94-2.48 1.9A4 4 0 0 1 2 17c.01-.7.2-1.4.57-2",key:"q3hayz"}],["path",{d:"m6 17 3.13-5.78c.53-.97.1-2.18-.5-3.1a4 4 0 1 1 6.89-4.06",key:"1go1hn"}],["path",{d:"m12 6 3.13 5.73C15.66 12.7 16.9 13 18 13a4 4 0 0 1 0 8",key:"qlwsc0"}]]);/** + */const Mo=se("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);/** * @license lucide-react v0.468.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const W2=ie("Wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]);/** - * @license lucide-react v0.468.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Mo=ie("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);/** - * @license lucide-react v0.468.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const lT=ie("Zap",[["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"}]]),Gi="zeroclaw_token";let os=null;function sT(n){try{return sessionStorage.getItem(n)}catch{return null}}function F2(n,e){try{sessionStorage.setItem(n,e)}catch{}}function aT(n){try{sessionStorage.removeItem(n)}catch{}}function X2(n){try{localStorage.removeItem(n)}catch{}}function Ca(){if(os&&os.length>0)return os;const n=sT(Gi);if(n&&n.length>0)return os=n,n;try{const e=localStorage.getItem(Gi);if(e&&e.length>0)return os=e,F2(Gi,e),localStorage.removeItem(Gi),e}catch{}return null}function Q2(n){os=n,F2(Gi,n),X2(Gi)}function Z2(){os=null,aT(Gi),X2(Gi)}function nm(){const n=Ca();return n!==null&&n.length>0}class rT extends Error{constructor(){super("Unauthorized"),this.name="UnauthorizedError"}}async function Rt(n,e={}){const t=Ca(),i=new Headers(e.headers);t&&i.set("Authorization",`Bearer ${t}`),e.body&&typeof e.body=="string"&&!i.has("Content-Type")&&i.set("Content-Type","application/json");const s=await fetch(n,{...e,headers:i});if(s.status===401)throw Z2(),window.dispatchEvent(new Event("zeroclaw-unauthorized")),new rT;if(!s.ok){const r=await s.text().catch(()=>"");throw new Error(`API ${s.status}: ${r||s.statusText}`)}if(s.status!==204)return s.json()}function ws(n,e){if(n!==null&&typeof n=="object"&&!Array.isArray(n)&&e in n){const t=n[e];if(t!==void 0)return t}return n}async function oT(n){const e=await fetch("/pair",{method:"POST",headers:{"X-Pairing-Code":n}});if(!e.ok){const i=await e.text().catch(()=>"");throw new Error(`Pairing failed (${e.status}): ${i||e.statusText}`)}const t=await e.json();return Q2(t.token),t}async function cT(){const n=await fetch("/health");if(!n.ok)throw new Error(`Health check failed (${n.status})`);return n.json()}function $2(){return Rt("/api/status")}function uT(){return Rt("/api/config").then(n=>typeof n=="string"?n:n.content)}function hT(n){return Rt("/api/config",{method:"PUT",headers:{"Content-Type":"application/toml"},body:n})}function fT(){return Rt("/api/tools").then(n=>ws(n,"tools"))}function dT(){return Rt("/api/cron").then(n=>ws(n,"jobs"))}function mT(n){return Rt("/api/cron",{method:"POST",body:JSON.stringify(n)}).then(e=>typeof e.job=="object"?e.job:e)}function pT(n){return Rt(`/api/cron/${encodeURIComponent(n)}`,{method:"DELETE"})}function gT(){return Rt("/api/integrations").then(n=>ws(n,"integrations"))}function yT(){return Rt("/api/integrations/settings")}function ax(n,e){return Rt(`/api/integrations/${encodeURIComponent(n)}/credentials`,{method:"PUT",body:JSON.stringify(e)})}function bT(){return Rt("/api/doctor",{method:"POST",body:JSON.stringify({})}).then(n=>Array.isArray(n)?n:n.results)}function xT(n,e){const t=new URLSearchParams;n&&t.set("query",n),e&&t.set("category",e);const i=t.toString();return Rt(`/api/memory${i?`?${i}`:""}`).then(s=>ws(s,"entries"))}function vT(n,e,t){return Rt("/api/memory",{method:"POST",body:JSON.stringify({key:n,content:e,category:t})}).then(()=>{})}function wT(n){return Rt(`/api/memory/${encodeURIComponent(n)}`,{method:"DELETE"})}function ST(){return Rt("/api/pairing/devices").then(n=>ws(n,"devices"))}function kT(n){return Rt(`/api/pairing/devices/${encodeURIComponent(n)}`,{method:"DELETE"})}function J2(){return Rt("/api/cost").then(n=>ws(n,"cost"))}function CT(){return Rt("/api/cli-tools").then(n=>ws(n,"cli_tools"))}const im=["en","zh-CN","ja","ru","fr","vi","el"],AT={en:"EN",tr:"TR","zh-CN":"简体",ja:"日本語",ru:"РУ",fr:"FR",vi:"VI",el:"ΕΛ"},MT=["en","tr","zh-CN","ja","ru","fr","vi","el"],rx={en:{"nav.dashboard":"Dashboard","nav.agent":"Agent","nav.tools":"Tools","nav.cron":"Scheduled Jobs","nav.integrations":"Integrations","nav.memory":"Memory","nav.devices":"Devices","nav.config":"Configuration","nav.cost":"Cost Tracker","nav.logs":"Logs","nav.doctor":"Doctor","dashboard.title":"Dashboard","dashboard.provider":"Provider","dashboard.model":"Model","dashboard.uptime":"Uptime","dashboard.temperature":"Temperature","dashboard.gateway_port":"Gateway Port","dashboard.locale":"Locale","dashboard.memory_backend":"Memory Backend","dashboard.paired":"Paired","dashboard.channels":"Channels","dashboard.health":"Health","dashboard.status":"Status","dashboard.overview":"Overview","dashboard.system_info":"System Information","dashboard.quick_actions":"Quick Actions","agent.title":"Agent Chat","agent.send":"Send","agent.placeholder":"Type a message...","agent.connecting":"Connecting...","agent.connected":"Connected","agent.disconnected":"Disconnected","agent.reconnecting":"Reconnecting...","agent.thinking":"Thinking...","agent.tool_call":"Tool Call","agent.tool_result":"Tool Result","tools.title":"Available Tools","tools.name":"Name","tools.description":"Description","tools.parameters":"Parameters","tools.search":"Search tools...","tools.empty":"No tools available.","tools.count":"Total tools","cron.title":"Scheduled Jobs","cron.add":"Add Job","cron.delete":"Delete","cron.enable":"Enable","cron.disable":"Disable","cron.name":"Name","cron.command":"Command","cron.schedule":"Schedule","cron.next_run":"Next Run","cron.last_run":"Last Run","cron.last_status":"Last Status","cron.enabled":"Enabled","cron.empty":"No scheduled jobs.","cron.confirm_delete":"Are you sure you want to delete this job?","integrations.title":"Integrations","integrations.available":"Available","integrations.active":"Active","integrations.coming_soon":"Coming Soon","integrations.category":"Category","integrations.status":"Status","integrations.search":"Search integrations...","integrations.empty":"No integrations found.","integrations.activate":"Activate","integrations.deactivate":"Deactivate","memory.title":"Memory Store","memory.search":"Search memory...","memory.add":"Store Memory","memory.delete":"Delete","memory.key":"Key","memory.content":"Content","memory.category":"Category","memory.timestamp":"Timestamp","memory.session":"Session","memory.score":"Score","memory.empty":"No memory entries found.","memory.confirm_delete":"Are you sure you want to delete this memory entry?","memory.all_categories":"All Categories","config.title":"Configuration","config.save":"Save","config.reset":"Reset","config.saved":"Configuration saved successfully.","config.error":"Failed to save configuration.","config.loading":"Loading configuration...","config.editor_placeholder":"TOML configuration...","cost.title":"Cost Tracker","cost.session":"Session Cost","cost.daily":"Daily Cost","cost.monthly":"Monthly Cost","cost.total_tokens":"Total Tokens","cost.request_count":"Requests","cost.by_model":"Cost by Model","cost.model":"Model","cost.tokens":"Tokens","cost.requests":"Requests","cost.usd":"Cost (USD)","logs.title":"Live Logs","logs.clear":"Clear","logs.pause":"Pause","logs.resume":"Resume","logs.filter":"Filter logs...","logs.empty":"No log entries.","logs.connected":"Connected to event stream.","logs.disconnected":"Disconnected from event stream.","doctor.title":"System Diagnostics","doctor.run":"Run Diagnostics","doctor.running":"Running diagnostics...","doctor.ok":"OK","doctor.warn":"Warning","doctor.error":"Error","doctor.severity":"Severity","doctor.category":"Category","doctor.message":"Message","doctor.empty":"No diagnostics have been run yet.","doctor.summary":"Diagnostic Summary","auth.pair":"Pair Device","auth.pairing_code":"Pairing Code","auth.pair_button":"Pair","auth.logout":"Logout","auth.pairing_success":"Pairing successful!","auth.pairing_failed":"Pairing failed. Please try again.","auth.enter_code":"Enter your pairing code to connect to the agent.","common.loading":"Loading...","common.error":"An error occurred.","common.retry":"Retry","common.cancel":"Cancel","common.confirm":"Confirm","common.save":"Save","common.delete":"Delete","common.edit":"Edit","common.close":"Close","common.yes":"Yes","common.no":"No","common.search":"Search...","common.no_data":"No data available.","common.refresh":"Refresh","common.back":"Back","common.actions":"Actions","common.name":"Name","common.description":"Description","common.status":"Status","common.created":"Created","common.updated":"Updated","health.title":"System Health","health.component":"Component","health.status":"Status","health.last_ok":"Last OK","health.last_error":"Last Error","health.restart_count":"Restarts","health.pid":"Process ID","health.uptime":"Uptime","health.updated_at":"Last Updated"},tr:{"nav.dashboard":"Kontrol Paneli","nav.agent":"Ajan","nav.tools":"Araclar","nav.cron":"Zamanlanmis Gorevler","nav.integrations":"Entegrasyonlar","nav.memory":"Hafiza","nav.devices":"Cihazlar","nav.config":"Yapilandirma","nav.cost":"Maliyet Takibi","nav.logs":"Kayitlar","nav.doctor":"Doktor","dashboard.title":"Kontrol Paneli","dashboard.provider":"Saglayici","dashboard.model":"Model","dashboard.uptime":"Calisma Suresi","dashboard.temperature":"Sicaklik","dashboard.gateway_port":"Gecit Portu","dashboard.locale":"Yerel Ayar","dashboard.memory_backend":"Hafiza Motoru","dashboard.paired":"Eslestirilmis","dashboard.channels":"Kanallar","dashboard.health":"Saglik","dashboard.status":"Durum","dashboard.overview":"Genel Bakis","dashboard.system_info":"Sistem Bilgisi","dashboard.quick_actions":"Hizli Islemler","agent.title":"Ajan Sohbet","agent.send":"Gonder","agent.placeholder":"Bir mesaj yazin...","agent.connecting":"Baglaniyor...","agent.connected":"Bagli","agent.disconnected":"Baglanti Kesildi","agent.reconnecting":"Yeniden Baglaniyor...","agent.thinking":"Dusunuyor...","agent.tool_call":"Arac Cagrisi","agent.tool_result":"Arac Sonucu","tools.title":"Mevcut Araclar","tools.name":"Ad","tools.description":"Aciklama","tools.parameters":"Parametreler","tools.search":"Arac ara...","tools.empty":"Mevcut arac yok.","tools.count":"Toplam arac","cron.title":"Zamanlanmis Gorevler","cron.add":"Gorev Ekle","cron.delete":"Sil","cron.enable":"Etkinlestir","cron.disable":"Devre Disi Birak","cron.name":"Ad","cron.command":"Komut","cron.schedule":"Zamanlama","cron.next_run":"Sonraki Calistirma","cron.last_run":"Son Calistirma","cron.last_status":"Son Durum","cron.enabled":"Etkin","cron.empty":"Zamanlanmis gorev yok.","cron.confirm_delete":"Bu gorevi silmek istediginizden emin misiniz?","integrations.title":"Entegrasyonlar","integrations.available":"Mevcut","integrations.active":"Aktif","integrations.coming_soon":"Yakinda","integrations.category":"Kategori","integrations.status":"Durum","integrations.search":"Entegrasyon ara...","integrations.empty":"Entegrasyon bulunamadi.","integrations.activate":"Etkinlestir","integrations.deactivate":"Devre Disi Birak","memory.title":"Hafiza Deposu","memory.search":"Hafizada ara...","memory.add":"Hafiza Kaydet","memory.delete":"Sil","memory.key":"Anahtar","memory.content":"Icerik","memory.category":"Kategori","memory.timestamp":"Zaman Damgasi","memory.session":"Oturum","memory.score":"Skor","memory.empty":"Hafiza kaydi bulunamadi.","memory.confirm_delete":"Bu hafiza kaydini silmek istediginizden emin misiniz?","memory.all_categories":"Tum Kategoriler","config.title":"Yapilandirma","config.save":"Kaydet","config.reset":"Sifirla","config.saved":"Yapilandirma basariyla kaydedildi.","config.error":"Yapilandirma kaydedilemedi.","config.loading":"Yapilandirma yukleniyor...","config.editor_placeholder":"TOML yapilandirmasi...","cost.title":"Maliyet Takibi","cost.session":"Oturum Maliyeti","cost.daily":"Gunluk Maliyet","cost.monthly":"Aylik Maliyet","cost.total_tokens":"Toplam Token","cost.request_count":"Istekler","cost.by_model":"Modele Gore Maliyet","cost.model":"Model","cost.tokens":"Token","cost.requests":"Istekler","cost.usd":"Maliyet (USD)","logs.title":"Canli Kayitlar","logs.clear":"Temizle","logs.pause":"Duraklat","logs.resume":"Devam Et","logs.filter":"Kayitlari filtrele...","logs.empty":"Kayit girisi yok.","logs.connected":"Olay akisina baglandi.","logs.disconnected":"Olay akisi baglantisi kesildi.","doctor.title":"Sistem Teshisleri","doctor.run":"Teshis Calistir","doctor.running":"Teshisler calistiriliyor...","doctor.ok":"Tamam","doctor.warn":"Uyari","doctor.error":"Hata","doctor.severity":"Ciddiyet","doctor.category":"Kategori","doctor.message":"Mesaj","doctor.empty":"Henuz teshis calistirilmadi.","doctor.summary":"Teshis Ozeti","auth.pair":"Cihaz Esle","auth.pairing_code":"Eslestirme Kodu","auth.pair_button":"Esle","auth.logout":"Cikis Yap","auth.pairing_success":"Eslestirme basarili!","auth.pairing_failed":"Eslestirme basarisiz. Lutfen tekrar deneyin.","auth.enter_code":"Ajana baglanmak icin eslestirme kodunuzu girin.","common.loading":"Yukleniyor...","common.error":"Bir hata olustu.","common.retry":"Tekrar Dene","common.cancel":"Iptal","common.confirm":"Onayla","common.save":"Kaydet","common.delete":"Sil","common.edit":"Duzenle","common.close":"Kapat","common.yes":"Evet","common.no":"Hayir","common.search":"Ara...","common.no_data":"Veri mevcut degil.","common.refresh":"Yenile","common.back":"Geri","common.actions":"Islemler","common.name":"Ad","common.description":"Aciklama","common.status":"Durum","common.created":"Olusturulma","common.updated":"Guncellenme","health.title":"Sistem Sagligi","health.component":"Bilesen","health.status":"Durum","health.last_ok":"Son Basarili","health.last_error":"Son Hata","health.restart_count":"Yeniden Baslatmalar","health.pid":"Islem Kimligi","health.uptime":"Calisma Suresi","health.updated_at":"Son Guncelleme"},"zh-CN":{"nav.dashboard":"仪表盘","nav.agent":"智能体","nav.tools":"工具","nav.cron":"定时任务","nav.integrations":"集成","nav.memory":"记忆","nav.devices":"设备","nav.config":"配置","nav.cost":"成本追踪","nav.logs":"日志","nav.doctor":"诊断","dashboard.title":"仪表盘","dashboard.provider":"提供商","dashboard.model":"模型","dashboard.uptime":"运行时长","dashboard.temperature":"温度","dashboard.gateway_port":"网关端口","dashboard.locale":"语言区域","dashboard.memory_backend":"记忆后端","dashboard.paired":"已配对","dashboard.channels":"渠道","dashboard.health":"健康状态","dashboard.status":"状态","dashboard.overview":"总览","dashboard.system_info":"系统信息","dashboard.quick_actions":"快捷操作","agent.title":"智能体聊天","agent.send":"发送","agent.placeholder":"输入消息...","agent.connecting":"连接中...","agent.connected":"已连接","agent.disconnected":"已断开连接","agent.reconnecting":"重连中...","agent.thinking":"思考中...","agent.tool_call":"工具调用","agent.tool_result":"工具结果","tools.title":"可用工具","tools.name":"名称","tools.description":"描述","tools.parameters":"参数","tools.search":"搜索工具...","tools.empty":"暂无可用工具。","tools.count":"工具总数","cron.title":"定时任务","cron.add":"添加任务","cron.delete":"删除","cron.enable":"启用","cron.disable":"禁用","cron.name":"名称","cron.command":"命令","cron.schedule":"计划","cron.next_run":"下次运行","cron.last_run":"上次运行","cron.last_status":"上次状态","cron.enabled":"已启用","cron.empty":"暂无定时任务。","cron.confirm_delete":"确定要删除此任务吗?","integrations.title":"集成","integrations.available":"可用","integrations.active":"已激活","integrations.coming_soon":"即将推出","integrations.category":"分类","integrations.status":"状态","integrations.search":"搜索集成...","integrations.empty":"未找到集成。","integrations.activate":"激活","integrations.deactivate":"停用","memory.title":"记忆存储","memory.search":"搜索记忆...","memory.add":"存储记忆","memory.delete":"删除","memory.key":"键","memory.content":"内容","memory.category":"分类","memory.timestamp":"时间戳","memory.session":"会话","memory.score":"评分","memory.empty":"未找到记忆条目。","memory.confirm_delete":"确定要删除此记忆条目吗?","memory.all_categories":"全部分类","config.title":"配置","config.save":"保存","config.reset":"重置","config.saved":"配置保存成功。","config.error":"配置保存失败。","config.loading":"配置加载中...","config.editor_placeholder":"TOML 配置...","cost.title":"成本追踪","cost.session":"会话成本","cost.daily":"每日成本","cost.monthly":"每月成本","cost.total_tokens":"Token 总数","cost.request_count":"请求数","cost.by_model":"按模型统计成本","cost.model":"模型","cost.tokens":"Token","cost.requests":"请求","cost.usd":"成本(USD)","logs.title":"实时日志","logs.clear":"清空","logs.pause":"暂停","logs.resume":"继续","logs.filter":"筛选日志...","logs.empty":"暂无日志条目。","logs.connected":"已连接到事件流。","logs.disconnected":"与事件流断开连接。","doctor.title":"系统诊断","doctor.run":"运行诊断","doctor.running":"正在运行诊断...","doctor.ok":"正常","doctor.warn":"警告","doctor.error":"错误","doctor.severity":"严重级别","doctor.category":"分类","doctor.message":"消息","doctor.empty":"尚未运行诊断。","doctor.summary":"诊断摘要","auth.pair":"设备配对","auth.pairing_code":"配对码","auth.pair_button":"配对","auth.logout":"退出登录","auth.pairing_success":"配对成功!","auth.pairing_failed":"配对失败,请重试。","auth.enter_code":"输入配对码以连接到智能体。","common.loading":"加载中...","common.error":"发生错误。","common.retry":"重试","common.cancel":"取消","common.confirm":"确认","common.save":"保存","common.delete":"删除","common.edit":"编辑","common.close":"关闭","common.yes":"是","common.no":"否","common.search":"搜索...","common.no_data":"暂无数据。","common.refresh":"刷新","common.back":"返回","common.actions":"操作","common.name":"名称","common.description":"描述","common.status":"状态","common.created":"创建时间","common.updated":"更新时间","health.title":"系统健康","health.component":"组件","health.status":"状态","health.last_ok":"最近正常","health.last_error":"最近错误","health.restart_count":"重启次数","health.pid":"进程 ID","health.uptime":"运行时长","health.updated_at":"最后更新"},ja:{},ru:{},fr:{},vi:{},el:{}};let ew="en";function TT(n){ew=n}function Vu(n){var e;return((e=rx[ew])==null?void 0:e[n])??rx.en[n]??n}function ox(n){if(!n)return"en";if(MT.includes(n))return n;const e=n.toLowerCase();return e.startsWith("tr")?"tr":e==="zh"||e.startsWith("zh-")?"zh-CN":e==="ja"||e.startsWith("ja-")?"ja":e==="ru"||e.startsWith("ru-")?"ru":e==="fr"||e.startsWith("fr-")?"fr":e==="vi"||e.startsWith("vi-")?"vi":e==="el"||e.startsWith("el-")?"el":"en"}const NT=1e3,ET=[{to:"/",icon:R3,labelKey:"nav.dashboard"},{to:"/agent",icon:z3,labelKey:"nav.agent"},{to:"/tools",icon:W2,labelKey:"nav.tools"},{to:"/cron",icon:no,labelKey:"nav.cron"},{to:"/integrations",icon:io,labelKey:"nav.integrations"},{to:"/memory",icon:Vm,labelKey:"nav.memory"},{to:"/devices",icon:I2,labelKey:"nav.devices"},{to:"/config",icon:Zp,labelKey:"nav.config"},{to:"/cost",icon:dh,labelKey:"nav.cost"},{to:"/logs",icon:Hu,labelKey:"nav.logs"},{to:"/doctor",icon:Pm,labelKey:"nav.doctor"}];function DT({isOpen:n,isCollapsed:e,onClose:t,onToggleCollapse:i}){const[s,r]=M.useState(!1);return M.useEffect(()=>{const o=setTimeout(()=>r(!0),NT);return()=>clearTimeout(o)},[]),y.jsxs(y.Fragment,{children:[y.jsx("button",{type:"button","aria-label":"Close navigation",onClick:t,className:["fixed inset-0 z-30 bg-black/50 transition-opacity md:hidden",n?"opacity-100":"pointer-events-none opacity-0"].join(" ")}),y.jsxs("aside",{className:["fixed left-0 top-0 z-40 flex h-screen w-[86vw] max-w-[17.5rem] flex-col border-r border-[#1e2f5d] bg-[#050b1a]/95 backdrop-blur-xl","shadow-[0_0_50px_-25px_rgba(8,121,255,0.7)]","transform transition-[width,transform] duration-300 ease-out",n?"translate-x-0":"-translate-x-full",e?"md:w-[6.25rem]":"md:w-[17.5rem]","md:translate-x-0"].join(" "),children:[y.jsxs("div",{className:"relative flex items-center justify-between border-b border-[#1a2d5e] px-4 py-4",children:[y.jsx("div",{className:"flex items-center gap-3 overflow-hidden",children:!e&&y.jsxs(y.Fragment,{children:[y.jsx("img",{src:"/_app/logo.png",alt:"ZeroClaw",className:"h-9 w-9 shrink-0 rounded-xl object-contain"}),y.jsx("span",{className:"text-lg font-semibold tracking-[0.1em] text-white",children:"ZeroClaw"})]})}),y.jsxs("div",{className:"flex items-center gap-2",children:[s&&y.jsx("button",{type:"button",onClick:i,"aria-label":e?"Expand navigation":"Collapse navigation",className:"hidden rounded-lg border border-[#2c4e97] bg-[#0a1b3f]/60 p-1.5 text-[#8bb9ff] transition hover:border-[#4f83ff] hover:text-white md:block",children:y.jsx(S3,{className:"h-4 w-4"})}),y.jsx("button",{type:"button",onClick:t,"aria-label":"Close navigation",className:"rounded-lg p-1.5 text-gray-300 transition-colors hover:bg-gray-800 hover:text-white md:hidden",children:y.jsx(Mo,{className:"h-4 w-4"})})]})]}),y.jsx("nav",{className:"flex-1 space-y-1 overflow-y-auto px-3 py-4",children:ET.map(({to:o,icon:u,labelKey:f})=>y.jsxs(j2,{to:o,end:o==="/",onClick:t,title:e?Vu(f):void 0,className:({isActive:d})=>["group flex items-center gap-3 overflow-hidden rounded-xl px-3 py-2.5 text-sm font-medium transition-all duration-300",d?"border border-[#3a6de0] bg-[#0b2f80]/55 text-white shadow-[0_0_30px_-16px_rgba(72,140,255,0.95)]":"border border-transparent text-[#9bb7eb] hover:border-[#294a8d] hover:bg-[#07132f] hover:text-white"].join(" "),children:[y.jsx(u,{className:"h-5 w-5 shrink-0 transition-transform duration-300 group-hover:scale-110"}),y.jsx("span",{className:["whitespace-nowrap transition-[opacity,transform,width] duration-300",e?"w-0 -translate-x-3 opacity-0 md:invisible":"w-auto opacity-100"].join(" "),children:Vu(f)})]},o))}),y.jsxs("div",{className:["mx-3 mb-4 rounded-xl border border-[#1b3670] bg-[#071328]/80 px-3 py-3 text-xs text-[#89a9df] transition-all duration-300",e?"md:px-1.5 md:text-center":""].join(" "),children:[y.jsx("p",{className:e?"hidden md:block":"",children:"Gateway + Dashboard"}),y.jsx("p",{className:e?"text-[10px] uppercase tracking-widest":"mt-1 text-[#5f84cc]",children:e?"UI":"Runtime Mode"})]})]})]})}const tw=M.createContext(null);function OT({children:n}){const[e,t]=M.useState(Ca),[i,s]=M.useState(nm),[r,o]=M.useState(!nm());M.useEffect(()=>{if(nm())return;let p=!1;return cT().then(b=>{p||b.require_pairing||s(!0)}).catch(()=>{}).finally(()=>{p||o(!1)}),()=>{p=!0}},[]),M.useEffect(()=>{const p=b=>{if(b.key===Gi){const x=Ca();t(x),s(x!==null&&x.length>0)}};return window.addEventListener("storage",p),()=>window.removeEventListener("storage",p)},[]);const u=M.useCallback(async p=>{const{token:b}=await oT(p);Q2(b),t(b),s(!0)},[]),f=M.useCallback(()=>{Z2(),t(null),s(!1)},[]),d={token:e,isAuthenticated:i,loading:r,pair:u,logout:f};return m2.createElement(tw.Provider,{value:d},n)}function nw(){const n=M.useContext(tw);if(!n)throw new Error("useAuth must be used within an ");return n}const jT={"/":"nav.dashboard","/agent":"nav.agent","/tools":"nav.tools","/cron":"nav.cron","/integrations":"nav.integrations","/memory":"nav.memory","/devices":"nav.devices","/config":"nav.config","/cost":"nav.cost","/logs":"nav.logs","/doctor":"nav.doctor"},RT="English · 简体中文 · 日本語 · Русский · Français · Tiếng Việt · Ελληνικά";function _T({isSidebarCollapsed:n,onToggleSidebar:e,onToggleSidebarCollapse:t}){const i=Zi(),{logout:s}=nw(),{locale:r,setAppLocale:o}=D6(),u=jT[i.pathname]??"nav.dashboard",f=Vu(u),d=()=>{const p=im.indexOf(r),b=im[(p+1)%im.length]??"en";o(b)};return y.jsxs("header",{className:"glass-header relative flex min-h-[4.5rem] flex-wrap items-center justify-between gap-2 rounded-2xl border border-[#1a3670] px-4 py-3 sm:px-5 sm:py-3.5 md:flex-nowrap md:px-8 md:py-4",children:[y.jsx("div",{className:"absolute inset-0 pointer-events-none opacity-70 bg-[radial-gradient(circle_at_15%_30%,rgba(41,148,255,0.22),transparent_45%),radial-gradient(circle_at_85%_75%,rgba(0,209,255,0.14),transparent_40%)]"}),y.jsxs("div",{className:"relative flex min-w-0 items-center gap-2.5 sm:gap-3",children:[y.jsx("button",{type:"button",onClick:e,"aria-label":"Open navigation",className:"rounded-lg border border-[#294a8f] bg-[#081637]/70 p-1.5 text-[#9ec2ff] transition hover:border-[#4f83ff] hover:text-white md:hidden",children:y.jsx(L3,{className:"h-5 w-5"})}),y.jsxs("div",{className:"min-w-0",children:[y.jsx("h1",{className:"truncate text-base font-semibold tracking-wide text-white sm:text-lg",children:f}),y.jsx("p",{className:"hidden text-[10px] uppercase tracking-[0.16em] text-[#7ea5eb] sm:block",children:"Electric dashboard"})]})]}),y.jsxs("div",{className:"relative flex w-full items-center justify-end gap-1.5 sm:gap-2 md:w-auto md:gap-3",children:[y.jsxs("button",{type:"button",onClick:t,className:"hidden items-center gap-1 rounded-lg border border-[#2b4f97] bg-[#091937]/75 px-2.5 py-1.5 text-xs text-[#c4d8ff] transition hover:border-[#4f83ff] hover:text-white md:flex md:text-sm",title:n?"Expand sidebar":"Collapse sidebar",children:[n?y.jsx(K3,{className:"h-4 w-4"}):y.jsx(P3,{className:"h-4 w-4"}),y.jsx("span",{children:n?"Expand":"Collapse"})]}),y.jsx("button",{type:"button",onClick:d,title:`🌐 Languages: ${RT}`,className:"rounded-lg border border-[#2b4f97] bg-[#091937]/75 px-2.5 py-1 text-xs font-medium text-[#c4d8ff] transition hover:border-[#4f83ff] hover:text-white sm:px-3 sm:text-sm",children:AT[r]??"EN"}),y.jsxs("button",{type:"button",onClick:s,className:"flex items-center gap-1 rounded-lg border border-[#2b4f97] bg-[#091937]/75 px-2.5 py-1.5 text-xs text-[#c4d8ff] transition hover:border-[#4f83ff] hover:text-white sm:gap-1.5 sm:px-3 sm:text-sm",children:[y.jsx(_3,{className:"h-4 w-4"}),y.jsx("span",{className:"hidden sm:inline",children:Vu("auth.logout")})]})]})]})}const cx="zeroclaw:sidebar-collapsed";function LT(){const[n,e]=M.useState(!1),[t,i]=M.useState(()=>typeof window>"u"?!1:window.localStorage.getItem(cx)==="1"),s=()=>{i(r=>{const o=!r;return typeof window<"u"&&window.localStorage.setItem(cx,o?"1":"0"),o})};return y.jsxs("div",{className:"app-shell min-h-screen text-white",children:[y.jsx(DT,{isOpen:n,isCollapsed:t,onClose:()=>e(!1),onToggleCollapse:s}),y.jsxs("div",{className:["flex min-h-screen flex-col transition-[margin-left] duration-300 ease-out",t?"md:ml-[6.25rem]":"md:ml-[17.5rem]"].join(" "),children:[y.jsx(_T,{isSidebarCollapsed:t,onToggleSidebar:()=>e(r=>!r),onToggleSidebarCollapse:s}),y.jsx("main",{className:"flex-1 overflow-y-auto px-4 pb-8 pt-5 md:px-8 md:pt-8",children:y.jsx(RM,{})})]})]})}function BT(n){const e=Math.floor(n/86400),t=Math.floor(n%86400/3600),i=Math.floor(n%3600/60);return e>0?`${e}d ${t}h ${i}m`:t>0?`${t}h ${i}m`:`${i}m`}function zT(n){return`$${n.toFixed(4)}`}function HT(n){switch(n.toLowerCase()){case"ok":case"healthy":return"bg-emerald-400";case"warn":case"warning":case"degraded":return"bg-amber-400";default:return"bg-rose-500"}}function VT(n){switch(n.toLowerCase()){case"ok":case"healthy":return"border-emerald-500/30";case"warn":case"warning":case"degraded":return"border-amber-400/30";default:return"border-rose-500/35"}}function lm({title:n,subtitle:e,icon:t,sectionKey:i,openState:s,onToggle:r,children:o}){const u=s[i];return y.jsxs("section",{className:"electric-card motion-rise",children:[y.jsxs("button",{type:"button",onClick:()=>r(i),"aria-expanded":u,className:"group flex w-full items-center justify-between gap-4 rounded-xl px-4 py-4 text-left md:px-5",children:[y.jsxs("div",{className:"flex items-center gap-3",children:[y.jsx("div",{className:"electric-icon h-10 w-10 rounded-xl",children:y.jsx(t,{className:"h-5 w-5"})}),y.jsxs("div",{children:[y.jsx("h2",{className:"text-base font-semibold text-white",children:n}),y.jsx("p",{className:"text-xs uppercase tracking-[0.13em] text-[#7ea5eb]",children:e})]})]}),y.jsx(hh,{className:["h-5 w-5 text-[#7ea5eb] transition-transform duration-300",u?"rotate-180":"rotate-0"].join(" ")})]}),y.jsx("div",{className:["grid overflow-hidden transition-[grid-template-rows,opacity] duration-300 ease-out",u?"grid-rows-[1fr] opacity-100":"grid-rows-[0fr] opacity-0"].join(" "),children:y.jsx("div",{className:"min-h-0 border-t border-[#18356f] px-4 pb-4 pt-4 md:px-5",children:o})})]})}function UT(){const[n,e]=M.useState(null),[t,i]=M.useState(null),[s,r]=M.useState(null),[o,u]=M.useState({cost:!0,channels:!0,health:!0});M.useEffect(()=>{Promise.all([$2(),J2()]).then(([p,b])=>{e(p),i(b)}).catch(p=>{const b=p instanceof Error?p.message:"Unknown dashboard load error";r(b)})},[]);const f=p=>{u(b=>({...b,[p]:!b[p]}))};if(s)return y.jsxs("div",{className:"electric-card p-5 text-rose-200",children:[y.jsx("h2",{className:"text-lg font-semibold text-rose-100",children:"Dashboard load failed"}),y.jsx("p",{className:"mt-2 text-sm text-rose-200/90",children:s})]});if(!n||!t)return y.jsx("div",{className:"flex h-64 items-center justify-center",children:y.jsx("div",{className:"electric-loader h-12 w-12 rounded-full"})});const d=Math.max(t.session_cost_usd,t.daily_cost_usd,t.monthly_cost_usd,.001);return y.jsxs("div",{className:"space-y-5 md:space-y-6",children:[y.jsx("section",{className:"hero-panel motion-rise",children:y.jsxs("div",{className:"relative z-10 flex flex-wrap items-start justify-between gap-4",children:[y.jsxs("div",{children:[y.jsx("p",{className:"text-xs uppercase tracking-[0.22em] text-[#8fb8ff]",children:"ZeroClaw Command Deck"}),y.jsx("h1",{className:"mt-2 text-2xl font-semibold tracking-[0.03em] text-white md:text-3xl",children:"Electric Runtime Dashboard"}),y.jsx("p",{className:"mt-2 max-w-2xl text-sm text-[#b3cbf8] md:text-base",children:"Real-time telemetry, cost pulse, and operations status in a single collapsible surface."})]}),y.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[y.jsxs("span",{className:"status-pill",children:[y.jsx($p,{className:"h-3.5 w-3.5"}),"Live Gateway"]}),y.jsxs("span",{className:"status-pill",children:[y.jsx(G2,{className:"h-3.5 w-3.5"}),n.paired?"Paired":"Unpaired"]})]})]})}),y.jsxs("section",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-4",children:[y.jsxs("article",{className:"electric-card motion-rise motion-delay-1 p-4",children:[y.jsxs("div",{className:"metric-head",children:[y.jsx(Nu,{className:"h-4 w-4"}),y.jsx("span",{children:"Provider / Model"})]}),y.jsx("p",{className:"metric-value mt-3",children:n.provider??"Unknown"}),y.jsx("p",{className:"metric-sub mt-1 truncate",children:n.model})]}),y.jsxs("article",{className:"electric-card motion-rise motion-delay-2 p-4",children:[y.jsxs("div",{className:"metric-head",children:[y.jsx(C3,{className:"h-4 w-4"}),y.jsx("span",{children:"Uptime"})]}),y.jsx("p",{className:"metric-value mt-3",children:BT(n.uptime_seconds)}),y.jsx("p",{className:"metric-sub mt-1",children:"Since last restart"})]}),y.jsxs("article",{className:"electric-card motion-rise motion-delay-3 p-4",children:[y.jsxs("div",{className:"metric-head",children:[y.jsx(M3,{className:"h-4 w-4"}),y.jsx("span",{children:"Gateway Port"})]}),y.jsxs("p",{className:"metric-value mt-3",children:[":",n.gateway_port]}),y.jsx("p",{className:"metric-sub mt-1",children:n.locale})]}),y.jsxs("article",{className:"electric-card motion-rise motion-delay-4 p-4",children:[y.jsxs("div",{className:"metric-head",children:[y.jsx(Um,{className:"h-4 w-4"}),y.jsx("span",{children:"Memory Backend"})]}),y.jsx("p",{className:"metric-value mt-3 capitalize",children:n.memory_backend}),y.jsx("p",{className:"metric-sub mt-1",children:n.paired?"Pairing active":"No paired devices"})]})]}),y.jsxs("div",{className:"space-y-4",children:[y.jsx(lm,{title:"Cost Pulse",subtitle:"Session, daily, and monthly runtime spend",icon:dh,sectionKey:"cost",openState:o,onToggle:f,children:y.jsxs("div",{className:"space-y-4",children:[[{label:"Session",value:t.session_cost_usd},{label:"Daily",value:t.daily_cost_usd},{label:"Monthly",value:t.monthly_cost_usd}].map(({label:p,value:b})=>y.jsxs("div",{children:[y.jsxs("div",{className:"mb-1.5 flex items-center justify-between text-sm",children:[y.jsx("span",{className:"text-[#9bb8ec]",children:p}),y.jsx("span",{className:"font-semibold text-white",children:zT(b)})]}),y.jsx("div",{className:"h-2.5 overflow-hidden rounded-full bg-[#061230]",children:y.jsx("div",{className:"electric-progress h-full rounded-full",style:{width:`${Math.max(b/d*100,3)}%`}})})]},p)),y.jsxs("div",{className:"grid grid-cols-2 gap-3 pt-2",children:[y.jsxs("div",{className:"metric-pill",children:[y.jsx("span",{children:"Total Tokens"}),y.jsx("strong",{children:t.total_tokens.toLocaleString()})]}),y.jsxs("div",{className:"metric-pill",children:[y.jsx("span",{children:"Requests"}),y.jsx("strong",{children:t.request_count.toLocaleString()})]})]})]})}),y.jsx(lm,{title:"Channel Activity",subtitle:"Live integrations and route connectivity",icon:Y3,sectionKey:"channels",openState:o,onToggle:f,children:Object.entries(n.channels).length===0?y.jsx("p",{className:"text-sm text-[#8aa8df]",children:"No channels configured."}):y.jsx("div",{className:"grid grid-cols-1 gap-2 md:grid-cols-2",children:Object.entries(n.channels).map(([p,b])=>y.jsx("div",{className:"rounded-xl border border-[#1d3770] bg-[#05112c]/90 px-3 py-2.5",children:y.jsxs("div",{className:"flex items-center justify-between",children:[y.jsx("span",{className:"text-sm capitalize text-white",children:p}),y.jsxs("span",{className:"flex items-center gap-2 text-xs text-[#8baee7]",children:[y.jsx("span",{className:["inline-block h-2.5 w-2.5 rounded-full",b?"bg-emerald-400 shadow-[0_0_12px_0_rgba(52,211,153,0.8)]":"bg-slate-500"].join(" ")}),b?"Active":"Inactive"]})]})},p))})}),y.jsx(lm,{title:"Component Health",subtitle:"Runtime heartbeat and restart awareness",icon:Hu,sectionKey:"health",openState:o,onToggle:f,children:Object.entries(n.health.components).length===0?y.jsx("p",{className:"text-sm text-[#8aa8df]",children:"No component health is currently available."}):y.jsx("div",{className:"grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-3",children:Object.entries(n.health.components).map(([p,b])=>y.jsxs("div",{className:["rounded-xl border bg-[#05112c]/80 px-3 py-3",VT(b.status)].join(" "),children:[y.jsxs("div",{className:"flex items-center justify-between",children:[y.jsx("p",{className:"text-sm font-semibold capitalize text-white",children:p}),y.jsx("span",{className:["inline-block h-2.5 w-2.5 rounded-full",HT(b.status)].join(" ")})]}),y.jsx("p",{className:"mt-1 text-xs uppercase tracking-[0.12em] text-[#87a9e5]",children:b.status}),b.restart_count>0&&y.jsxs("p",{className:"mt-2 text-xs text-amber-300",children:["Restarts: ",b.restart_count]})]},p))})})]})]})}const qT=1e3,PT=3e4,ux="zeroclaw.ws.session_id";class KT{constructor(e={}){Xe(this,"ws",null);Xe(this,"currentDelay");Xe(this,"reconnectTimer",null);Xe(this,"intentionallyClosed",!1);Xe(this,"onMessage",null);Xe(this,"onOpen",null);Xe(this,"onClose",null);Xe(this,"onError",null);Xe(this,"baseUrl");Xe(this,"reconnectDelay");Xe(this,"maxReconnectDelay");Xe(this,"autoReconnect");Xe(this,"sessionId");const t=window.location.protocol==="https:"?"wss:":"ws:";this.baseUrl=e.baseUrl??`${t}//${window.location.host}`,this.reconnectDelay=e.reconnectDelay??qT,this.maxReconnectDelay=e.maxReconnectDelay??PT,this.autoReconnect=e.autoReconnect??!0,this.currentDelay=this.reconnectDelay,this.sessionId=this.resolveSessionId()}connect(){this.intentionallyClosed=!1,this.clearReconnectTimer();const e=Ca(),t=`${this.baseUrl}/ws/chat?session_id=${encodeURIComponent(this.sessionId)}`,i=["zeroclaw.v1"];e&&i.push(`bearer.${e}`),this.ws=new WebSocket(t,i),this.ws.onopen=()=>{var s;this.currentDelay=this.reconnectDelay,(s=this.onOpen)==null||s.call(this)},this.ws.onmessage=s=>{var r;try{const o=JSON.parse(s.data);(r=this.onMessage)==null||r.call(this,o)}catch{}},this.ws.onclose=s=>{var r;(r=this.onClose)==null||r.call(this,s),this.scheduleReconnect()},this.ws.onerror=s=>{var r;(r=this.onError)==null||r.call(this,s)}}sendMessage(e){if(!this.ws||this.ws.readyState!==WebSocket.OPEN)throw new Error("WebSocket is not connected");this.ws.send(JSON.stringify({type:"message",content:e}))}disconnect(){this.intentionallyClosed=!0,this.clearReconnectTimer(),this.ws&&(this.ws.close(),this.ws=null)}get connected(){var e;return((e=this.ws)==null?void 0:e.readyState)===WebSocket.OPEN}scheduleReconnect(){this.intentionallyClosed||!this.autoReconnect||(this.reconnectTimer=setTimeout(()=>{this.currentDelay=Math.min(this.currentDelay*2,this.maxReconnectDelay),this.connect()},this.currentDelay))}clearReconnectTimer(){this.reconnectTimer!==null&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)}resolveSessionId(){var i,s;const e=window.localStorage.getItem(ux);if(e&&/^[A-Za-z0-9_-]{1,128}$/.test(e))return e;const t=((s=(i=globalThis.crypto)==null?void 0:i.randomUUID)==null?void 0:s.call(i).replace(/-/g,"_"))??`sess_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,10)}`;return window.localStorage.setItem(ux,t),t}}let hx=0;const GT="Tool execution completed, but no final response text was returned.";function ua(){var e,t;const n=(t=(e=globalThis.crypto)==null?void 0:e.randomUUID)==null?void 0:t.call(e);return n||(hx+=1,`msg_${Date.now().toString(36)}_${hx.toString(36)}_${Math.random().toString(36).slice(2,10)}`)}function IT(){const[n,e]=M.useState([]),[t,i]=M.useState(""),[s,r]=M.useState(!1),[o,u]=M.useState(!1),[f,d]=M.useState(null),p=M.useRef(null),b=M.useRef(null),x=M.useRef(null),w=M.useRef("");M.useEffect(()=>{const C=new KT;return C.onOpen=()=>{u(!0),d(null)},C.onClose=()=>{u(!1)},C.onError=()=>{d("Connection error. Attempting to reconnect...")},C.onMessage=T=>{switch(T.type){case"history":{const R=(T.messages??[]).filter(E=>{var q;return(q=E.content)==null?void 0:q.trim()}).map(E=>({id:ua(),role:E.role==="user"?"user":"agent",content:E.content.trim(),timestamp:new Date}));e(R),r(!1),w.current="";break}case"chunk":r(!0),w.current+=T.content??"";break;case"message":case"done":{const E=(T.full_response??T.content??w.current??"").trim()||GT;e(q=>[...q,{id:ua(),role:"agent",content:E,timestamp:new Date}]),w.current="",r(!1);break}case"tool_call":e(R=>[...R,{id:ua(),role:"agent",content:`[Tool Call] ${T.name??"unknown"}(${JSON.stringify(T.args??{})})`,timestamp:new Date}]);break;case"tool_result":e(R=>[...R,{id:ua(),role:"agent",content:`[Tool Result] ${T.output??""}`,timestamp:new Date}]);break;case"error":e(R=>[...R,{id:ua(),role:"agent",content:`[Error] ${T.message??"Unknown error"}`,timestamp:new Date}]),r(!1),w.current="";break}},C.connect(),p.current=C,()=>{C.disconnect()}},[]),M.useEffect(()=>{var C;(C=b.current)==null||C.scrollIntoView({behavior:"smooth"})},[n,s]);const S=()=>{var T,R;const C=t.trim();if(!(!C||!((T=p.current)!=null&&T.connected))){e(E=>[...E,{id:ua(),role:"user",content:C,timestamp:new Date}]);try{p.current.sendMessage(C),r(!0),w.current=""}catch{d("Failed to send message. Please try again.")}i(""),(R=x.current)==null||R.focus()}},A=C=>{C.key==="Enter"&&!C.shiftKey&&(C.preventDefault(),S())};return y.jsxs("div",{className:"flex min-h-[28rem] flex-col h-[calc(100dvh-8.5rem)]",children:[f&&y.jsxs("div",{className:"px-4 py-2 bg-red-900/30 border-b border-red-700 flex items-center gap-2 text-sm text-red-300",children:[y.jsx(B2,{className:"h-4 w-4 flex-shrink-0"}),f]}),y.jsxs("div",{className:"flex-1 overflow-y-auto p-4 space-y-4",children:[n.length===0&&y.jsxs("div",{className:"flex flex-col items-center justify-center h-full text-gray-500",children:[y.jsx(Tu,{className:"h-12 w-12 mb-3 text-gray-600"}),y.jsx("p",{className:"text-lg font-medium",children:"ZeroClaw Agent"}),y.jsx("p",{className:"text-sm mt-1",children:"Send a message to start the conversation"})]}),n.map(C=>y.jsxs("div",{className:`flex items-start gap-3 ${C.role==="user"?"flex-row-reverse":""}`,children:[y.jsx("div",{className:`flex-shrink-0 w-8 h-8 rounded-full flex items-center justify-center ${C.role==="user"?"bg-blue-600":"bg-gray-700"}`,children:C.role==="user"?y.jsx(nT,{className:"h-4 w-4 text-white"}):y.jsx(Tu,{className:"h-4 w-4 text-white"})}),y.jsxs("div",{className:`max-w-[75%] rounded-xl px-4 py-3 ${C.role==="user"?"bg-blue-600 text-white":"bg-gray-800 text-gray-100 border border-gray-700"}`,children:[y.jsx("p",{className:"text-sm whitespace-pre-wrap break-words",children:C.content}),y.jsx("p",{className:`text-xs mt-1 ${C.role==="user"?"text-blue-200":"text-gray-500"}`,children:C.timestamp.toLocaleTimeString()})]})]},C.id)),s&&y.jsxs("div",{className:"flex items-start gap-3",children:[y.jsx("div",{className:"flex-shrink-0 w-8 h-8 rounded-full bg-gray-700 flex items-center justify-center",children:y.jsx(Tu,{className:"h-4 w-4 text-white"})}),y.jsxs("div",{className:"bg-gray-800 border border-gray-700 rounded-xl px-4 py-3",children:[y.jsxs("div",{className:"flex items-center gap-1",children:[y.jsx("span",{className:"w-2 h-2 bg-gray-400 rounded-full animate-bounce",style:{animationDelay:"0ms"}}),y.jsx("span",{className:"w-2 h-2 bg-gray-400 rounded-full animate-bounce",style:{animationDelay:"150ms"}}),y.jsx("span",{className:"w-2 h-2 bg-gray-400 rounded-full animate-bounce",style:{animationDelay:"300ms"}})]}),y.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Typing..."})]})]}),y.jsx("div",{ref:b})]}),y.jsxs("div",{className:"rounded-xl border border-gray-800 bg-gray-900 p-4",children:[y.jsxs("div",{className:"flex items-center gap-3 max-w-4xl mx-auto",children:[y.jsx("div",{className:"flex-1 relative",children:y.jsx("input",{ref:x,type:"text",value:t,onChange:C=>i(C.target.value),onKeyDown:A,placeholder:o?"Type a message...":"Connecting...",disabled:!o,className:"w-full bg-gray-800 border border-gray-700 rounded-xl px-4 py-3 text-sm text-white placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent disabled:opacity-50"})}),y.jsx("button",{onClick:S,disabled:!o||!t.trim(),className:"flex-shrink-0 bg-blue-600 hover:bg-blue-700 disabled:bg-gray-700 disabled:text-gray-500 text-white rounded-xl p-3 transition-colors",children:y.jsx(K2,{className:"h-5 w-5"})})]}),y.jsxs("div",{className:"flex items-center justify-center mt-2 gap-2",children:[y.jsx("span",{className:`inline-block h-2 w-2 rounded-full ${o?"bg-green-500":"bg-red-500"}`}),y.jsx("span",{className:"text-xs text-gray-500",children:o?"Connected":"Disconnected"})]})]})]})}function YT(){const[n,e]=M.useState([]),[t,i]=M.useState([]),[s,r]=M.useState(""),[o,u]=M.useState(null),[f,d]=M.useState(!0),[p,b]=M.useState(null);M.useEffect(()=>{Promise.all([fT(),CT()]).then(([S,A])=>{e(S),i(A)}).catch(S=>b(S.message)).finally(()=>d(!1))},[]);const x=n.filter(S=>S.name.toLowerCase().includes(s.toLowerCase())||S.description.toLowerCase().includes(s.toLowerCase())),w=t.filter(S=>S.name.toLowerCase().includes(s.toLowerCase())||S.category.toLowerCase().includes(s.toLowerCase()));return p?y.jsx("div",{className:"p-6",children:y.jsxs("div",{className:"rounded-lg bg-red-900/30 border border-red-700 p-4 text-red-300",children:["Failed to load tools: ",p]})}):f?y.jsx("div",{className:"flex items-center justify-center h-64",children:y.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-2 border-blue-500 border-t-transparent"})}):y.jsxs("div",{className:"p-6 space-y-6",children:[y.jsxs("div",{className:"relative max-w-md",children:[y.jsx(mh,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-500"}),y.jsx("input",{type:"text",value:s,onChange:S=>r(S.target.value),placeholder:"Search tools...",className:"w-full bg-gray-900 border border-gray-700 rounded-lg pl-10 pr-4 py-2.5 text-sm text-white placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent"})]}),y.jsxs("div",{children:[y.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[y.jsx(W2,{className:"h-5 w-5 text-blue-400"}),y.jsxs("h2",{className:"text-base font-semibold text-white",children:["Agent Tools (",x.length,")"]})]}),x.length===0?y.jsx("p",{className:"text-sm text-gray-500",children:"No tools match your search."}):y.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4",children:x.map(S=>{const A=o===S.name;return y.jsxs("div",{className:"bg-gray-900 rounded-xl border border-gray-800 overflow-hidden",children:[y.jsxs("button",{onClick:()=>u(A?null:S.name),className:"w-full text-left p-4 hover:bg-gray-800/50 transition-colors",children:[y.jsxs("div",{className:"flex items-start justify-between gap-2",children:[y.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[y.jsx(q3,{className:"h-4 w-4 text-blue-400 flex-shrink-0 mt-0.5"}),y.jsx("h3",{className:"text-sm font-semibold text-white truncate",children:S.name})]}),A?y.jsx(hh,{className:"h-4 w-4 text-gray-400 flex-shrink-0"}):y.jsx(L2,{className:"h-4 w-4 text-gray-400 flex-shrink-0"})]}),y.jsx("p",{className:"text-sm text-gray-400 mt-2 line-clamp-2",children:S.description})]}),A&&S.parameters&&y.jsxs("div",{className:"border-t border-gray-800 p-4",children:[y.jsx("p",{className:"text-xs text-gray-500 mb-2 font-medium uppercase tracking-wider",children:"Parameter Schema"}),y.jsx("pre",{className:"text-xs text-gray-300 bg-gray-950 rounded-lg p-3 overflow-x-auto max-h-64 overflow-y-auto",children:JSON.stringify(S.parameters,null,2)})]})]},S.name)})})]}),w.length>0&&y.jsxs("div",{children:[y.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[y.jsx(J3,{className:"h-5 w-5 text-green-400"}),y.jsxs("h2",{className:"text-base font-semibold text-white",children:["CLI Tools (",w.length,")"]})]}),y.jsx("div",{className:"bg-gray-900 rounded-xl border border-gray-800 overflow-hidden",children:y.jsxs("table",{className:"w-full text-sm",children:[y.jsx("thead",{children:y.jsxs("tr",{className:"border-b border-gray-800",children:[y.jsx("th",{className:"text-left px-4 py-3 text-gray-400 font-medium",children:"Name"}),y.jsx("th",{className:"text-left px-4 py-3 text-gray-400 font-medium",children:"Path"}),y.jsx("th",{className:"text-left px-4 py-3 text-gray-400 font-medium",children:"Version"}),y.jsx("th",{className:"text-left px-4 py-3 text-gray-400 font-medium",children:"Category"})]})}),y.jsx("tbody",{children:w.map(S=>y.jsxs("tr",{className:"border-b border-gray-800/50 hover:bg-gray-800/30 transition-colors",children:[y.jsx("td",{className:"px-4 py-3 text-white font-medium",children:S.name}),y.jsx("td",{className:"px-4 py-3 text-gray-400 font-mono text-xs truncate max-w-[200px]",children:S.path}),y.jsx("td",{className:"px-4 py-3 text-gray-400",children:S.version??"-"}),y.jsx("td",{className:"px-4 py-3",children:y.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium bg-gray-800 text-gray-300 capitalize",children:S.category})})]},S.name))})]})})]})]})}function WT(n){return n?new Date(n).toLocaleString():"-"}function FT(){const[n,e]=M.useState([]),[t,i]=M.useState(!0),[s,r]=M.useState(null),[o,u]=M.useState(!1),[f,d]=M.useState(null),[p,b]=M.useState(""),[x,w]=M.useState(""),[S,A]=M.useState(""),[C,T]=M.useState(null),[R,E]=M.useState(!1),q=()=>{i(!0),dT().then(e).catch(Q=>r(Q.message)).finally(()=>i(!1))};M.useEffect(()=>{q()},[]);const B=async()=>{if(!x.trim()||!S.trim()){T("Schedule and command are required.");return}E(!0),T(null);try{const Q=await mT({name:p.trim()||void 0,schedule:x.trim(),command:S.trim()});e(Z=>[...Z,Q]),u(!1),b(""),w(""),A("")}catch(Q){T(Q instanceof Error?Q.message:"Failed to add job")}finally{E(!1)}},I=async Q=>{try{await pT(Q),e(Z=>Z.filter(ue=>ue.id!==Q))}catch(Z){r(Z instanceof Error?Z.message:"Failed to delete job")}finally{d(null)}},V=Q=>{if(!Q)return null;switch(Q.toLowerCase()){case"ok":case"success":return y.jsx(fh,{className:"h-4 w-4 text-green-400"});case"error":case"failed":return y.jsx(Fp,{className:"h-4 w-4 text-red-400"});default:return y.jsx(B2,{className:"h-4 w-4 text-yellow-400"})}};return s?y.jsx("div",{className:"p-6",children:y.jsxs("div",{className:"rounded-lg bg-red-900/30 border border-red-700 p-4 text-red-300",children:["Failed to load cron jobs: ",s]})}):t?y.jsx("div",{className:"flex items-center justify-center h-64",children:y.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-2 border-blue-500 border-t-transparent"})}):y.jsxs("div",{className:"p-6 space-y-6",children:[y.jsxs("div",{className:"flex items-center justify-between",children:[y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx(no,{className:"h-5 w-5 text-blue-400"}),y.jsxs("h2",{className:"text-base font-semibold text-white",children:["Scheduled Tasks (",n.length,")"]})]}),y.jsxs("button",{onClick:()=>u(!0),className:"flex items-center gap-2 bg-blue-600 hover:bg-blue-700 text-white text-sm font-medium px-4 py-2 rounded-lg transition-colors",children:[y.jsx(q2,{className:"h-4 w-4"}),"Add Job"]})]}),o&&y.jsx("div",{className:"fixed inset-0 bg-black/60 flex items-center justify-center z-50",children:y.jsxs("div",{className:"bg-gray-900 border border-gray-700 rounded-xl p-6 w-full max-w-md mx-4",children:[y.jsxs("div",{className:"flex items-center justify-between mb-4",children:[y.jsx("h3",{className:"text-lg font-semibold text-white",children:"Add Cron Job"}),y.jsx("button",{onClick:()=>{u(!1),T(null)},className:"text-gray-400 hover:text-white transition-colors",children:y.jsx(Mo,{className:"h-5 w-5"})})]}),C&&y.jsx("div",{className:"mb-4 rounded-lg bg-red-900/30 border border-red-700 p-3 text-sm text-red-300",children:C}),y.jsxs("div",{className:"space-y-4",children:[y.jsxs("div",{children:[y.jsx("label",{className:"block text-sm font-medium text-gray-300 mb-1",children:"Name (optional)"}),y.jsx("input",{type:"text",value:p,onChange:Q=>b(Q.target.value),placeholder:"e.g. Daily cleanup",className:"w-full bg-gray-800 border border-gray-700 rounded-lg px-3 py-2 text-sm text-white placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-500"})]}),y.jsxs("div",{children:[y.jsxs("label",{className:"block text-sm font-medium text-gray-300 mb-1",children:["Schedule ",y.jsx("span",{className:"text-red-400",children:"*"})]}),y.jsx("input",{type:"text",value:x,onChange:Q=>w(Q.target.value),placeholder:"e.g. 0 0 * * * (cron expression)",className:"w-full bg-gray-800 border border-gray-700 rounded-lg px-3 py-2 text-sm text-white placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-500"})]}),y.jsxs("div",{children:[y.jsxs("label",{className:"block text-sm font-medium text-gray-300 mb-1",children:["Command ",y.jsx("span",{className:"text-red-400",children:"*"})]}),y.jsx("input",{type:"text",value:S,onChange:Q=>A(Q.target.value),placeholder:"e.g. cleanup --older-than 7d",className:"w-full bg-gray-800 border border-gray-700 rounded-lg px-3 py-2 text-sm text-white placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-500"})]})]}),y.jsxs("div",{className:"flex justify-end gap-3 mt-6",children:[y.jsx("button",{onClick:()=>{u(!1),T(null)},className:"px-4 py-2 text-sm font-medium text-gray-300 hover:text-white border border-gray-700 rounded-lg hover:bg-gray-800 transition-colors",children:"Cancel"}),y.jsx("button",{onClick:B,disabled:R,className:"px-4 py-2 text-sm font-medium text-white bg-blue-600 hover:bg-blue-700 rounded-lg transition-colors disabled:opacity-50",children:R?"Adding...":"Add Job"})]})]})}),n.length===0?y.jsxs("div",{className:"bg-gray-900 rounded-xl border border-gray-800 p-8 text-center",children:[y.jsx(no,{className:"h-10 w-10 text-gray-600 mx-auto mb-3"}),y.jsx("p",{className:"text-gray-400",children:"No scheduled tasks configured."})]}):y.jsx("div",{className:"bg-gray-900 rounded-xl border border-gray-800 overflow-x-auto",children:y.jsxs("table",{className:"w-full text-sm",children:[y.jsx("thead",{children:y.jsxs("tr",{className:"border-b border-gray-800",children:[y.jsx("th",{className:"text-left px-4 py-3 text-gray-400 font-medium",children:"ID"}),y.jsx("th",{className:"text-left px-4 py-3 text-gray-400 font-medium",children:"Name"}),y.jsx("th",{className:"text-left px-4 py-3 text-gray-400 font-medium",children:"Command"}),y.jsx("th",{className:"text-left px-4 py-3 text-gray-400 font-medium",children:"Next Run"}),y.jsx("th",{className:"text-left px-4 py-3 text-gray-400 font-medium",children:"Last Status"}),y.jsx("th",{className:"text-left px-4 py-3 text-gray-400 font-medium",children:"Enabled"}),y.jsx("th",{className:"text-right px-4 py-3 text-gray-400 font-medium",children:"Actions"})]})}),y.jsx("tbody",{children:n.map(Q=>y.jsxs("tr",{className:"border-b border-gray-800/50 hover:bg-gray-800/30 transition-colors",children:[y.jsx("td",{className:"px-4 py-3 text-gray-400 font-mono text-xs",children:Q.id.slice(0,8)}),y.jsx("td",{className:"px-4 py-3 text-white font-medium",children:Q.name??"-"}),y.jsx("td",{className:"px-4 py-3 text-gray-300 font-mono text-xs max-w-[200px] truncate",children:Q.command}),y.jsx("td",{className:"px-4 py-3 text-gray-400 text-xs",children:WT(Q.next_run)}),y.jsx("td",{className:"px-4 py-3",children:y.jsxs("div",{className:"flex items-center gap-1.5",children:[V(Q.last_status),y.jsx("span",{className:"text-gray-300 text-xs capitalize",children:Q.last_status??"-"})]})}),y.jsx("td",{className:"px-4 py-3",children:y.jsx("span",{className:`inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium ${Q.enabled?"bg-green-900/40 text-green-400 border border-green-700/50":"bg-gray-800 text-gray-500 border border-gray-700"}`,children:Q.enabled?"Enabled":"Disabled"})}),y.jsx("td",{className:"px-4 py-3 text-right",children:f===Q.id?y.jsxs("div",{className:"flex items-center justify-end gap-2",children:[y.jsx("span",{className:"text-xs text-red-400",children:"Delete?"}),y.jsx("button",{onClick:()=>I(Q.id),className:"text-red-400 hover:text-red-300 text-xs font-medium",children:"Yes"}),y.jsx("button",{onClick:()=>d(null),className:"text-gray-400 hover:text-white text-xs font-medium",children:"No"})]}):y.jsx("button",{onClick:()=>d(Q.id),className:"text-gray-400 hover:text-red-400 transition-colors",children:y.jsx(Y2,{className:"h-4 w-4"})})})]},Q.id))})]})})]})}const fx=[{id:"bluebubbles",name:"BlueBubbles",supportLevel:"Built-in",recommended:!0,summary:"Recommended for iMessage with BlueBubbles macOS server REST API.",details:"Supports edit, unsend, effects, reactions, and group management. Edit is currently broken on macOS 26 Tahoe."},{id:"discord",name:"Discord",supportLevel:"Built-in",summary:"Discord Bot API + Gateway for servers, channels, and direct messages."},{id:"feishu",name:"Feishu",supportLevel:"Plugin",summary:"Feishu/Lark bot integration over WebSocket.",details:"Plugin track, installed separately."},{id:"google-chat",name:"Google Chat",supportLevel:"Built-in",summary:"Google Chat app integration via HTTP webhook."},{id:"imessage-legacy",name:"iMessage (legacy)",supportLevel:"Legacy",summary:"Legacy macOS integration via imsg CLI.",details:"Deprecated path for new setups; BlueBubbles is recommended."},{id:"irc",name:"IRC",supportLevel:"Built-in",summary:"Classic IRC channels and DMs with pairing and allowlist controls."},{id:"line",name:"LINE",supportLevel:"Plugin",summary:"LINE Messaging API bot integration.",details:"Plugin track, installed separately."},{id:"matrix",name:"Matrix",supportLevel:"Plugin",summary:"Matrix protocol integration for rooms and direct messaging.",details:"Plugin track, installed separately."},{id:"mattermost",name:"Mattermost",supportLevel:"Plugin",summary:"Bot API + WebSocket for channels, groups, and DMs.",details:"Plugin track, installed separately."},{id:"microsoft-teams",name:"Microsoft Teams",supportLevel:"Plugin",summary:"Enterprise support track for Teams environments.",details:"Plugin track, installed separately."},{id:"nextcloud-talk",name:"Nextcloud Talk",supportLevel:"Plugin",summary:"Self-hosted chat via Nextcloud Talk integration.",details:"Plugin track, installed separately."},{id:"nostr",name:"Nostr",supportLevel:"Plugin",summary:"Decentralized encrypted DMs via NIP-04 and modern NIP flows.",details:"Plugin track, installed separately."},{id:"signal",name:"Signal",supportLevel:"Built-in",summary:"Privacy-focused messaging through signal-cli."},{id:"synology-chat",name:"Synology Chat",supportLevel:"Plugin",summary:"Synology NAS Chat via outgoing and incoming webhooks.",details:"Plugin track, installed separately."},{id:"slack",name:"Slack",supportLevel:"Built-in",summary:"Slack workspace apps powered by Bolt SDK."},{id:"telegram",name:"Telegram",supportLevel:"Built-in",summary:"Bot API integration via grammY with strong group support."},{id:"tlon",name:"Tlon",supportLevel:"Plugin",summary:"Urbit-based messenger integration path.",details:"Plugin track, installed separately."},{id:"twitch",name:"Twitch",supportLevel:"Plugin",summary:"Twitch chat support over IRC connection.",details:"Plugin track, installed separately."},{id:"webchat",name:"WebChat",supportLevel:"Built-in",summary:"Gateway WebChat UI over WebSocket for browser-based sessions."},{id:"whatsapp",name:"WhatsApp",supportLevel:"Built-in",summary:"Baileys-backed integration with QR pairing flow."},{id:"zalo",name:"Zalo",supportLevel:"Plugin",summary:"Zalo Bot API for Vietnam's popular messenger ecosystem.",details:"Plugin track, installed separately."},{id:"zalo-personal",name:"Zalo Personal",supportLevel:"Plugin",summary:"Personal account integration with QR login.",details:"Plugin track, installed separately."}],XT=["Channels can run simultaneously; configure multiple and ZeroClaw routes per chat.","Fastest initial setup is usually Telegram with a simple bot token.","WhatsApp requires local state on disk for persistent sessions.","Group behavior varies by channel. See docs/channels-reference.md for policy details.","DM pairing and allowlists are enforced for safety. See docs/security/README.md.","Troubleshooting lives in docs/troubleshooting.md under channel guidance.","Model providers are documented separately in docs/providers-reference.md."],QT={"Built-in":"border-[#2f63c8] bg-[#0a265f]/70 text-[#acd0ff]",Plugin:"border-[#2f5ea0] bg-[#071a41]/80 text-[#8eb8f4]",Legacy:"border-[#5f6080] bg-[#141731]/80 text-[#c2c5e8]"};function ZT(){const[n,e]=M.useState(!0);return y.jsxs("section",{className:"electric-card motion-rise",children:[y.jsxs("button",{type:"button",onClick:()=>e(t=>!t),"aria-expanded":n,className:"group flex w-full items-center justify-between gap-4 rounded-xl px-4 py-4 text-left md:px-5",children:[y.jsxs("div",{className:"flex items-center gap-3",children:[y.jsx("div",{className:"electric-icon h-10 w-10 rounded-xl",children:y.jsx(B3,{className:"h-5 w-5"})}),y.jsxs("div",{children:[y.jsx("h2",{className:"text-base font-semibold text-white",children:"Supported Chat Channels"}),y.jsxs("p",{className:"text-xs uppercase tracking-[0.13em] text-[#7ea5eb]",children:[fx.length," channels listed"]})]})]}),y.jsx(hh,{className:["h-5 w-5 text-[#7ea5eb] transition-transform duration-300",n?"rotate-180":"rotate-0"].join(" ")})]}),n&&y.jsxs("div",{className:"border-t border-[#18356f] px-4 pb-5 pt-4 md:px-5",children:[y.jsx("div",{className:"rounded-xl border border-[#1e3a78] bg-[#07142f]/85 p-3 md:p-4",children:y.jsx("p",{className:"text-sm leading-relaxed text-[#c8dcff]",children:"ZeroClaw can talk to you on the chat apps you already use through Gateway. Text is supported across all channels; media and reactions vary by channel."})}),y.jsx("div",{className:"mt-4 grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-3",children:fx.map(t=>y.jsxs("article",{className:"rounded-xl border border-[#1f3d76] bg-[#060f25]/85 p-3 shadow-[0_0_22px_-15px_rgba(80,176,255,0.9)]",children:[y.jsxs("div",{className:"flex items-start justify-between gap-2",children:[y.jsx("h3",{className:"text-sm font-semibold text-white",children:t.name}),y.jsx("span",{className:["inline-flex items-center rounded-full border px-2 py-0.5 text-[11px] font-medium",QT[t.supportLevel]].join(" "),children:t.supportLevel})]}),y.jsx("p",{className:"mt-2 text-xs leading-relaxed text-[#97baee]",children:t.summary}),t.details&&y.jsx("p",{className:"mt-2 text-[11px] leading-relaxed text-[#7ca6de]",children:t.details}),t.recommended&&y.jsxs("p",{className:"mt-2 inline-flex items-center gap-1 text-[11px] text-[#cfe3ff]",children:[y.jsx($p,{className:"h-3 w-3"}),"Recommended"]})]},t.id))}),y.jsxs("div",{className:"mt-4 rounded-xl border border-[#1b3770] bg-[#061129]/85 p-3 md:p-4",children:[y.jsx("h3",{className:"text-sm font-semibold text-white",children:"Channel Notes"}),y.jsx("ul",{className:"mt-2 space-y-1.5 text-xs leading-relaxed text-[#9bbce8]",children:XT.map(t=>y.jsxs("li",{children:["• ",t]},t))})]})]})]})}function $T(n){switch(n){case"Active":return{icon:w3,label:"Active",classes:"bg-green-900/40 text-green-400 border-green-700/50"};case"Available":return{icon:lT,label:"Available",classes:"bg-blue-900/40 text-blue-400 border-blue-700/50"};case"ComingSoon":return{icon:no,label:"Coming Soon",classes:"bg-gray-800 text-gray-400 border-gray-700"}}}function dx(n){return n&&n.replace(/([a-z])([A-Z])/g,"$1 $2").replace(/Ai/g,"AI")}const Lr="__keep__",tu="__custom__",mx="__clear__",JT={openrouter:["anthropic/claude-sonnet-4-6","openai/gpt-5.2","google/gemini-3.1-pro"],anthropic:["claude-sonnet-4-6","claude-opus-4-6"],openai:["gpt-5.2","gpt-5.2-codex","gpt-4o"],google:["google/gemini-3.1-pro","google/gemini-3-flash","google/gemini-2.5-pro"],deepseek:["deepseek/deepseek-reasoner","deepseek/deepseek-chat"],xai:["x-ai/grok-4","x-ai/grok-3"],mistral:["mistral-large-latest","codestral-latest","mistral-small-latest"],perplexity:["sonar-pro","sonar-reasoning-pro","sonar"],vercel:["openai/gpt-5.2","anthropic/claude-sonnet-4-6","google/gemini-3.1-pro"],bedrock:["anthropic.claude-sonnet-4-5-20250929-v1:0","anthropic.claude-opus-4-6-v1:0"],groq:["llama-3.3-70b-versatile","mixtral-8x7b-32768"],together:["meta-llama/Llama-3.3-70B-Instruct-Turbo","Qwen/Qwen2.5-72B-Instruct-Turbo","deepseek-ai/DeepSeek-R1-Distill-Llama-70B"],cohere:["command-r-plus-08-2024","command-r-08-2024"]};function px(n){return n==="openrouter"||n==="vercel"?"Format: anthropic/claude-sonnet-4-6":"Format: claude-sonnet-4-6 (or provider/model when required)"}function Br(n,e){var t;return e.key!=="default_model"?e.options??[]:(t=e.options)!=null&&t.length?e.options:JT[n]??[]}function eN(){const[n,e]=M.useState([]),[t,i]=M.useState({}),[s,r]=M.useState(""),[o,u]=M.useState(!0),[f,d]=M.useState(null),[p,b]=M.useState("all"),[x,w]=M.useState(null),[S,A]=M.useState({}),[C,T]=M.useState({}),[R,E]=M.useState({}),[q,B]=M.useState(!1),[I,V]=M.useState(null),[Q,Z]=M.useState(null),[ue,fe]=M.useState(null),[ne,pe]=M.useState(null),[J,ve]=M.useState({}),[z,K]=M.useState(null),[$,le]=M.useState(null),ge=te=>te.fields.reduce((be,ke)=>(Br(te.id,ke).length>0?be[ke.key]=ke.has_value?Lr:"":be[ke.key]="",be),{}),D=te=>te.fields.find(be=>be.key==="default_model"),P=te=>{const be=D(te);return be?Br(te.id,be)[0]??null:null},ee=(te,be)=>{var ct,Ie,me;if(be&&((ct=ue==null?void 0:ue.model)!=null&&ct.trim()))return ue.model.trim();const ke=(me=(Ie=D(te))==null?void 0:Ie.current_value)==null?void 0:me.trim();return ke||null},ae=Object.values(t).find(te=>te.id===ne),ye=async(te=!0)=>{te&&u(!0),d(null);try{const[be,ke,ct]=await Promise.all([gT(),yT(),$2().catch(()=>null)]),Ie=ke.integrations.reduce((me,et)=>(me[et.name]=et,me),{});return e(be),r(ke.revision),i(Ie),pe(ke.active_default_provider_integration_id??null),fe(ct?{model:ct.model}:null),Ie}catch(be){return d(be instanceof Error?be.message:"Failed to load integrations"),pe(null),fe(null),null}finally{te&&u(!1)}};M.useEffect(()=>{ye()},[]),M.useEffect(()=>{if(!Q)return;const te=setTimeout(()=>Z(null),4e3);return()=>clearTimeout(te)},[Q]),M.useEffect(()=>{if(!x)return;const te=be=>{be.key==="Escape"&&Ee()};return window.addEventListener("keydown",te),()=>window.removeEventListener("keydown",te)},[x,q]);const Ce=te=>{w(te),A(ge(te)),T({}),E({}),V(null)},Ee=()=>{q||(w(null),A({}),T({}),E({}),V(null))},Mt=(te,be)=>{A(ke=>({...ke,[te]:be})),E(ke=>({...ke,[te]:!0}))},ot=(te,be)=>{T(ke=>({...ke,[te]:be})),E(ke=>({...ke,[te]:!0}))},Hl=async()=>{if(!x)return;V(null),le(null);const te={};for(const be of x.fields){const ke=S[be.key]??"",ct=!!R[be.key],Ie=Br(x.id,be).length>0;let me=ke;if(Ie)if(ke===Lr){if(be.required&&!be.has_value){V(`${be.label} is required.`);return}if(ct)continue}else ke===tu?me=C[be.key]??"":ke===mx&&(me="");const et=me.trim();if(Ie&&ke===tu&&!et){V(`Enter a custom value for ${be.label} or choose a recommended model.`);return}if(be.required&&!et&&!be.has_value){V(`${be.label} is required.`);return}if(ct){if(Ie&&ke===Lr)continue;te[be.key]=me}}if(Object.keys(te).length===0&&!x.activates_default_provider){V("No changes to save.");return}if(x.activates_default_provider&&ne&&x.id!==ne){const be=(ae==null?void 0:ae.name)??"current provider";if(!window.confirm(`Switch default AI provider from ${be} to ${x.name}?`))return}B(!0);try{await ax(x.id,{revision:s,fields:te}),await ye(!1),Z(`${x.name} credentials saved.`),Ee()}catch(be){const ke=be instanceof Error?be.message:"Failed to save credentials";if(ke.includes("API 409")){const ct=await ye(!1);if(ct){const Ie=ct[x.name];Ie&&(w(Ie),A(ge(Ie)),T({}),E({}))}V("Configuration changed elsewhere. Refreshed latest settings; re-enter values and save again.")}else V(ke)}finally{B(!1)}},ks=async(te,be,ke,ct)=>{const Ie=be.trim();if(!(!Ie||Ie===ke)){if(ne&&!ct&&te.id!==ne){const me=(ae==null?void 0:ae.name)??"current provider";if(!window.confirm(`Switch default AI provider from ${me} to ${te.name} and set model to ${Ie}?`))return}K(te.id),le(null),V(null);try{await ax(te.id,{revision:s,fields:{default_model:Ie}}),await ye(!1),Z(`Model updated to ${Ie} for ${te.name}.`),ve(me=>{const et={...me};return delete et[te.id],et})}catch(me){const et=me instanceof Error?me.message:"Failed to update model";et.includes("API 409")?(await ye(!1),le("Configuration changed elsewhere. Refreshed latest settings; choose the model again.")):le(et)}finally{K(null)}}},Ha=["all",...Array.from(new Set(n.map(te=>te.category))).sort()],ei=(p==="all"?n:n.filter(te=>te.category===p)).reduce((te,be)=>{const ke=be.category;return te[ke]||(te[ke]=[]),te[ke].push(be),te},{});return f?y.jsx("div",{className:"p-6",children:y.jsxs("div",{className:"rounded-lg bg-red-900/30 border border-red-700 p-4 text-red-300",children:["Failed to load integrations: ",f]})}):o?y.jsx("div",{className:"flex items-center justify-center h-64",children:y.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-2 border-blue-500 border-t-transparent"})}):y.jsxs("div",{className:"p-6 space-y-6",children:[y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx(io,{className:"h-5 w-5 text-blue-400"}),y.jsxs("h2",{className:"text-base font-semibold text-white",children:["Integrations (",n.length,")"]})]}),Q&&y.jsx("div",{className:"rounded-lg bg-green-900/30 border border-green-700 p-3 text-sm text-green-300",children:Q}),$&&y.jsx("div",{className:"rounded-lg bg-red-900/30 border border-red-700 p-3 text-sm text-red-300",children:$}),y.jsx(ZT,{}),y.jsx("div",{className:"flex flex-wrap gap-2",children:Ha.map(te=>y.jsx("button",{onClick:()=>b(te),className:`px-3 py-1.5 rounded-lg text-sm font-medium transition-colors capitalize ${p===te?"bg-blue-600 text-white":"bg-gray-900 text-gray-400 border border-gray-700 hover:bg-gray-800 hover:text-white"}`,children:te==="all"?"All":dx(te)},te))}),Object.keys(ei).length===0?y.jsxs("div",{className:"bg-gray-900 rounded-xl border border-gray-800 p-8 text-center",children:[y.jsx(io,{className:"h-10 w-10 text-gray-600 mx-auto mb-3"}),y.jsx("p",{className:"text-gray-400",children:"No integrations found."})]}):Object.entries(ei).sort(([te],[be])=>te.localeCompare(be)).map(([te,be])=>y.jsxs("div",{children:[y.jsx("h3",{className:"text-sm font-semibold text-gray-400 uppercase tracking-wider mb-3 capitalize",children:dx(te)}),y.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4",children:be.map(ke=>{const ct=$T(ke.status),Ie=ct.icon,me=t[ke.name],et=!!(me!=null&&me.activates_default_provider),ti=!!me&&et&&me.id===ne,Vl=me?D(me):void 0,St=me&&Vl?Br(me.id,Vl):[],Tt=me&&et?ee(me,ti):null,Cs=me&&et?P(me):null,Va=Tt||(Cs?`default: ${Cs}`:"default"),$i=Tt??Cs??"",As=me?J[me.id]??$i:"",Ua=[...Tt&&!St.includes(Tt)?[Tt]:[],...St],Rh=!!me&&me.configured&&et&&Ua.length>0;return y.jsxs("div",{className:`bg-gray-900 rounded-xl border p-5 transition-colors ${ti?"border-green-700/70 bg-gradient-to-b from-green-950/20 to-gray-900":"border-gray-800 hover:border-gray-700"}`,children:[y.jsxs("div",{className:"flex items-start justify-between gap-3",children:[y.jsxs("div",{className:"min-w-0",children:[y.jsx("h4",{className:"text-sm font-semibold text-white truncate",children:ke.name}),y.jsx("p",{className:"text-sm text-gray-400 mt-1 line-clamp-2",children:ke.description})]}),y.jsxs("div",{className:"flex items-center gap-1.5 flex-wrap justify-end",children:[et&&(me==null?void 0:me.configured)&&y.jsx("span",{className:`flex-shrink-0 inline-flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium border ${ti?"bg-emerald-900/40 text-emerald-300 border-emerald-700/60":"bg-gray-800 text-gray-300 border-gray-700"}`,children:ti?"Default":"Configured"}),y.jsxs("span",{className:`flex-shrink-0 inline-flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium border ${ct.classes}`,children:[y.jsx(Ie,{className:"h-3 w-3"}),ct.label]})]})]}),me&&et&&me.configured&&y.jsxs("div",{className:"mt-3 rounded-lg border border-gray-800 bg-gray-950/50 p-3 space-y-2",children:[y.jsxs("div",{className:"flex items-center justify-between gap-2",children:[y.jsx("span",{className:"text-[11px] uppercase tracking-wider text-gray-500",children:"Current model"}),y.jsx("span",{className:"text-xs text-gray-200 truncate",title:Va,children:Va})]}),Rh&&me&&y.jsxs("div",{className:"space-y-1",children:[y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx("select",{value:As,onChange:Ul=>ve(ql=>({...ql,[me.id]:Ul.target.value})),disabled:z===me.id,className:"min-w-0 flex-1 px-2.5 py-1.5 rounded-lg bg-gray-950 border border-gray-700 text-xs text-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent disabled:opacity-50",children:Ua.map(Ul=>y.jsx("option",{value:Ul,children:Ul},Ul))}),y.jsx("button",{onClick:()=>me&&void ks(me,As,$i,ti),disabled:z===me.id||!As||As===$i,className:"px-2.5 py-1.5 rounded-lg text-xs font-medium bg-blue-600 hover:bg-blue-700 text-white transition-colors disabled:opacity-50",children:z===me.id?"Saving...":"Apply"})]}),y.jsx("p",{className:"text-[11px] text-gray-500",children:"For custom model IDs, use Edit Keys."})]})]}),me&&y.jsxs("div",{className:"mt-4 pt-4 border-t border-gray-800 flex items-center justify-between gap-3",children:[y.jsx("div",{className:"text-xs text-gray-400",children:me.configured?me.activates_default_provider?ti?"Default provider configured":"Provider configured":"Credentials configured":"Credentials not configured"}),y.jsxs("button",{onClick:()=>Ce(me),className:"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg border border-blue-700/70 bg-blue-900/30 hover:bg-blue-900/50 text-blue-300 text-xs font-medium transition-colors",children:[y.jsx(V2,{className:"h-3.5 w-3.5"}),me.configured?"Edit Keys":"Configure"]})]})]},ke.name)})})]},te)),x&&y.jsx("div",{className:"fixed inset-0 z-50 bg-black/70 flex items-center justify-center p-4",onMouseDown:te=>{te.target===te.currentTarget&&Ee()},children:y.jsxs("div",{className:"w-full max-w-lg bg-gray-900 border border-gray-800 rounded-xl shadow-xl",children:[y.jsxs("div",{className:"px-5 py-4 border-b border-gray-800 flex items-center justify-between gap-3",children:[y.jsxs("div",{children:[y.jsxs("h3",{className:"text-sm font-semibold text-white",children:["Configure ",x.name]}),y.jsx("p",{className:"text-xs text-gray-400 mt-0.5",children:x.configured?"Enter only fields you want to update.":"Enter required fields to configure this integration."})]}),y.jsx("button",{onClick:Ee,disabled:q,className:"text-gray-400 hover:text-white transition-colors disabled:opacity-50","aria-label":"Close",children:y.jsx(Mo,{className:"h-4 w-4"})})]}),y.jsxs("div",{className:"p-5 space-y-4",children:[x.activates_default_provider&&y.jsxs("div",{className:"rounded-lg border border-blue-800 bg-blue-950/30 p-3 text-xs text-blue-200",children:["Saving here updates credentials and switches your default AI provider to"," ",y.jsx("strong",{children:x.name}),". For advanced provider settings, use"," ",y.jsx(Wp,{to:"/config",className:"underline underline-offset-2 hover:text-blue-100",children:"Configuration"}),"."]}),x.fields.map(te=>(()=>{var Vl,St;const be=Br(x.id,te),ke=be.length>0,ct=te.input_type==="secret",Ie=ct?te.masked_value||(te.has_value?"••••••••":void 0):void 0,me=x.activates_default_provider&&x.id===ne,et=((Vl=te.current_value)==null?void 0:Vl.trim())||me&&((St=ue==null?void 0:ue.model)==null?void 0:St.trim())||"",ti=et?`Keep current model (${et})`:"Keep current model";return y.jsxs("div",{children:[y.jsxs("label",{className:"flex items-center gap-2 text-sm font-medium text-gray-300 mb-1.5",children:[y.jsx("span",{children:te.label}),te.required&&y.jsx("span",{className:"text-red-400",children:"*"}),te.has_value&&y.jsx("span",{className:"text-[11px] text-green-400 bg-green-900/30 border border-green-800 px-1.5 py-0.5 rounded",children:"Configured"})]}),ke?y.jsxs("div",{className:"space-y-2",children:[y.jsxs("select",{value:S[te.key]??(te.has_value?Lr:""),onChange:Tt=>Mt(te.key,Tt.target.value),className:"w-full px-3 py-2 rounded-lg bg-gray-950 border border-gray-700 text-sm text-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent",children:[te.has_value?y.jsx("option",{value:Lr,children:ti}):y.jsx("option",{value:"",disabled:!0,children:"Select a recommended model"}),be.map(Tt=>y.jsx("option",{value:Tt,children:Tt},Tt)),y.jsx("option",{value:tu,children:"Custom model..."}),te.has_value&&y.jsx("option",{value:mx,children:"Clear current model"})]}),S[te.key]===tu&&y.jsx("input",{type:"text",value:C[te.key]??"",onChange:Tt=>ot(te.key,Tt.target.value),placeholder:px(x.id),className:"w-full px-3 py-2 rounded-lg bg-gray-950 border border-gray-700 text-sm text-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent"}),y.jsxs("p",{className:"text-[11px] text-gray-500",children:["Pick a recommended model or choose Custom model. ",px(x.id),"."]})]}):y.jsxs("div",{className:"space-y-2",children:[Ie&&y.jsxs("p",{className:"text-[11px] text-gray-500",children:["Current value: ",y.jsx("span",{className:"font-mono text-gray-300",children:Ie})]}),y.jsx("input",{type:ct?"password":"text",value:S[te.key]??"",onChange:Tt=>Mt(te.key,Tt.target.value),placeholder:te.required?te.has_value?"Enter a new value to replace current":"Enter value":te.has_value?"Type new value, or leave empty to keep current":"Optional",className:"w-full px-3 py-2 rounded-lg bg-gray-950 border border-gray-700 text-sm text-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent"})]})]},te.key)})()),I&&y.jsx("div",{className:"rounded-lg bg-red-900/30 border border-red-700 p-3 text-sm text-red-300",children:I})]}),y.jsxs("div",{className:"px-5 py-4 border-t border-gray-800 flex items-center justify-end gap-2",children:[y.jsx("button",{onClick:Ee,disabled:q,className:"px-4 py-2 rounded-lg text-sm border border-gray-700 text-gray-300 hover:bg-gray-800 transition-colors disabled:opacity-50",children:"Cancel"}),y.jsx("button",{onClick:Hl,disabled:q,className:"px-4 py-2 rounded-lg text-sm font-medium bg-blue-600 hover:bg-blue-700 text-white transition-colors disabled:opacity-50",children:q?"Saving...":x.activates_default_provider?"Save & Activate":"Save Keys"})]})]})})]})}function tN(n,e){return n.length<=e?n:n.slice(0,e)+"..."}function nN(n){return new Date(n).toLocaleString()}function iN(){const[n,e]=M.useState([]),[t,i]=M.useState(!0),[s,r]=M.useState(null),[o,u]=M.useState(""),[f,d]=M.useState(""),[p,b]=M.useState(!1),[x,w]=M.useState(null),[S,A]=M.useState(""),[C,T]=M.useState(""),[R,E]=M.useState(""),[q,B]=M.useState(null),[I,V]=M.useState(!1),Q=(J,ve)=>{i(!0),xT(J||void 0,ve||void 0).then(e).catch(z=>r(z.message)).finally(()=>i(!1))};M.useEffect(()=>{Q()},[]);const Z=()=>{Q(o,f)},ue=J=>{J.key==="Enter"&&Z()},fe=Array.from(new Set(n.map(J=>J.category))).sort(),ne=async()=>{if(!S.trim()||!C.trim()){B("Key and content are required.");return}V(!0),B(null);try{await vT(S.trim(),C.trim(),R.trim()||void 0),Q(o,f),b(!1),A(""),T(""),E("")}catch(J){B(J instanceof Error?J.message:"Failed to store memory")}finally{V(!1)}},pe=async J=>{try{await wT(J),e(ve=>ve.filter(z=>z.key!==J))}catch(ve){r(ve instanceof Error?ve.message:"Failed to delete memory")}finally{w(null)}};return s&&n.length===0?y.jsx("div",{className:"p-6",children:y.jsxs("div",{className:"rounded-lg bg-red-900/30 border border-red-700 p-4 text-red-300",children:["Failed to load memory: ",s]})}):y.jsxs("div",{className:"p-6 space-y-6",children:[y.jsxs("div",{className:"flex items-center justify-between",children:[y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx(Vm,{className:"h-5 w-5 text-blue-400"}),y.jsxs("h2",{className:"text-base font-semibold text-white",children:["Memory (",n.length,")"]})]}),y.jsxs("button",{onClick:()=>b(!0),className:"flex items-center gap-2 bg-blue-600 hover:bg-blue-700 text-white text-sm font-medium px-4 py-2 rounded-lg transition-colors",children:[y.jsx(q2,{className:"h-4 w-4"}),"Add Memory"]})]}),y.jsxs("div",{className:"flex flex-col sm:flex-row gap-3",children:[y.jsxs("div",{className:"relative flex-1",children:[y.jsx(mh,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-500"}),y.jsx("input",{type:"text",value:o,onChange:J=>u(J.target.value),onKeyDown:ue,placeholder:"Search memory entries...",className:"w-full bg-gray-900 border border-gray-700 rounded-lg pl-10 pr-4 py-2.5 text-sm text-white placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-500"})]}),y.jsxs("div",{className:"relative",children:[y.jsx(Xp,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-500"}),y.jsxs("select",{value:f,onChange:J=>d(J.target.value),className:"bg-gray-900 border border-gray-700 rounded-lg pl-10 pr-8 py-2.5 text-sm text-white appearance-none focus:outline-none focus:ring-2 focus:ring-blue-500 cursor-pointer",children:[y.jsx("option",{value:"",children:"All Categories"}),fe.map(J=>y.jsx("option",{value:J,children:J},J))]})]}),y.jsx("button",{onClick:Z,className:"px-4 py-2.5 bg-blue-600 hover:bg-blue-700 text-white text-sm font-medium rounded-lg transition-colors",children:"Search"})]}),s&&y.jsx("div",{className:"rounded-lg bg-red-900/30 border border-red-700 p-3 text-sm text-red-300",children:s}),p&&y.jsx("div",{className:"fixed inset-0 bg-black/60 flex items-center justify-center z-50",children:y.jsxs("div",{className:"bg-gray-900 border border-gray-700 rounded-xl p-6 w-full max-w-md mx-4",children:[y.jsxs("div",{className:"flex items-center justify-between mb-4",children:[y.jsx("h3",{className:"text-lg font-semibold text-white",children:"Add Memory"}),y.jsx("button",{onClick:()=>{b(!1),B(null)},className:"text-gray-400 hover:text-white transition-colors",children:y.jsx(Mo,{className:"h-5 w-5"})})]}),q&&y.jsx("div",{className:"mb-4 rounded-lg bg-red-900/30 border border-red-700 p-3 text-sm text-red-300",children:q}),y.jsxs("div",{className:"space-y-4",children:[y.jsxs("div",{children:[y.jsxs("label",{className:"block text-sm font-medium text-gray-300 mb-1",children:["Key ",y.jsx("span",{className:"text-red-400",children:"*"})]}),y.jsx("input",{type:"text",value:S,onChange:J=>A(J.target.value),placeholder:"e.g. user_preferences",className:"w-full bg-gray-800 border border-gray-700 rounded-lg px-3 py-2 text-sm text-white placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-500"})]}),y.jsxs("div",{children:[y.jsxs("label",{className:"block text-sm font-medium text-gray-300 mb-1",children:["Content ",y.jsx("span",{className:"text-red-400",children:"*"})]}),y.jsx("textarea",{value:C,onChange:J=>T(J.target.value),placeholder:"Memory content...",rows:4,className:"w-full bg-gray-800 border border-gray-700 rounded-lg px-3 py-2 text-sm text-white placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-500 resize-none"})]}),y.jsxs("div",{children:[y.jsx("label",{className:"block text-sm font-medium text-gray-300 mb-1",children:"Category (optional)"}),y.jsx("input",{type:"text",value:R,onChange:J=>E(J.target.value),placeholder:"e.g. preferences, context, facts",className:"w-full bg-gray-800 border border-gray-700 rounded-lg px-3 py-2 text-sm text-white placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-500"})]})]}),y.jsxs("div",{className:"flex justify-end gap-3 mt-6",children:[y.jsx("button",{onClick:()=>{b(!1),B(null)},className:"px-4 py-2 text-sm font-medium text-gray-300 hover:text-white border border-gray-700 rounded-lg hover:bg-gray-800 transition-colors",children:"Cancel"}),y.jsx("button",{onClick:ne,disabled:I,className:"px-4 py-2 text-sm font-medium text-white bg-blue-600 hover:bg-blue-700 rounded-lg transition-colors disabled:opacity-50",children:I?"Saving...":"Save"})]})]})}),t?y.jsx("div",{className:"flex items-center justify-center h-32",children:y.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-2 border-blue-500 border-t-transparent"})}):n.length===0?y.jsxs("div",{className:"bg-gray-900 rounded-xl border border-gray-800 p-8 text-center",children:[y.jsx(Vm,{className:"h-10 w-10 text-gray-600 mx-auto mb-3"}),y.jsx("p",{className:"text-gray-400",children:"No memory entries found."})]}):y.jsx("div",{className:"bg-gray-900 rounded-xl border border-gray-800 overflow-x-auto",children:y.jsxs("table",{className:"w-full text-sm",children:[y.jsx("thead",{children:y.jsxs("tr",{className:"border-b border-gray-800",children:[y.jsx("th",{className:"text-left px-4 py-3 text-gray-400 font-medium",children:"Key"}),y.jsx("th",{className:"text-left px-4 py-3 text-gray-400 font-medium",children:"Content"}),y.jsx("th",{className:"text-left px-4 py-3 text-gray-400 font-medium",children:"Category"}),y.jsx("th",{className:"text-left px-4 py-3 text-gray-400 font-medium",children:"Timestamp"}),y.jsx("th",{className:"text-right px-4 py-3 text-gray-400 font-medium",children:"Actions"})]})}),y.jsx("tbody",{children:n.map(J=>y.jsxs("tr",{className:"border-b border-gray-800/50 hover:bg-gray-800/30 transition-colors",children:[y.jsx("td",{className:"px-4 py-3 text-white font-medium font-mono text-xs",children:J.key}),y.jsx("td",{className:"px-4 py-3 text-gray-300 max-w-[300px]",children:y.jsx("span",{title:J.content,children:tN(J.content,80)})}),y.jsx("td",{className:"px-4 py-3",children:y.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium bg-gray-800 text-gray-300 capitalize",children:J.category})}),y.jsx("td",{className:"px-4 py-3 text-gray-400 text-xs whitespace-nowrap",children:nN(J.timestamp)}),y.jsx("td",{className:"px-4 py-3 text-right",children:x===J.key?y.jsxs("div",{className:"flex items-center justify-end gap-2",children:[y.jsx("span",{className:"text-xs text-red-400",children:"Delete?"}),y.jsx("button",{onClick:()=>pe(J.key),className:"text-red-400 hover:text-red-300 text-xs font-medium",children:"Yes"}),y.jsx("button",{onClick:()=>w(null),className:"text-gray-400 hover:text-white text-xs font-medium",children:"No"})]}):y.jsx("button",{onClick:()=>w(J.key),className:"text-gray-400 hover:text-red-400 transition-colors",children:y.jsx(Y2,{className:"h-4 w-4"})})})]},J.id))})]})})]})}function gx(n){if(!n)return"Unknown";const e=new Date(n);return Number.isNaN(e.getTime())?n:e.toLocaleString()}function lN(){const[n,e]=M.useState([]),[t,i]=M.useState(!0),[s,r]=M.useState(!1),[o,u]=M.useState(null),[f,d]=M.useState(null),p=async(x=!1)=>{x?r(!0):i(!0),u(null);try{const w=await ST();e(w)}catch(w){u(w instanceof Error?w.message:"Failed to load paired devices")}finally{x?r(!1):i(!1)}};M.useEffect(()=>{p(!1)},[]);const b=async x=>{try{await kT(x),e(w=>w.filter(S=>S.id!==x)),d(null)}catch(w){u(w instanceof Error?w.message:"Failed to revoke paired device"),d(null)}};return y.jsxs("div",{className:"p-6 space-y-6",children:[y.jsxs("div",{className:"flex items-center justify-between",children:[y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx(I2,{className:"h-5 w-5 text-blue-400"}),y.jsxs("h2",{className:"text-base font-semibold text-white",children:["Paired Devices (",n.length,")"]})]}),y.jsxs("button",{onClick:()=>{p(!0)},disabled:s,className:"inline-flex items-center gap-2 rounded-lg bg-blue-600 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-blue-700 disabled:opacity-60",children:[y.jsx(P2,{className:`h-4 w-4 ${s?"animate-spin":""}`}),"Refresh"]})]}),o&&y.jsx("div",{className:"rounded-lg border border-red-700 bg-red-900/30 p-3 text-sm text-red-300",children:o}),t?y.jsx("div",{className:"flex h-32 items-center justify-center",children:y.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-2 border-blue-500 border-t-transparent"})}):n.length===0?y.jsxs("div",{className:"rounded-xl border border-gray-800 bg-gray-900 p-8 text-center",children:[y.jsx(Q3,{className:"mx-auto mb-3 h-10 w-10 text-gray-600"}),y.jsx("p",{className:"text-gray-400",children:"No paired devices found."})]}):y.jsx("div",{className:"overflow-x-auto rounded-xl border border-gray-800 bg-gray-900",children:y.jsxs("table",{className:"w-full text-sm",children:[y.jsx("thead",{children:y.jsxs("tr",{className:"border-b border-gray-800",children:[y.jsx("th",{className:"px-4 py-3 text-left font-medium text-gray-400",children:"Device ID"}),y.jsx("th",{className:"px-4 py-3 text-left font-medium text-gray-400",children:"Paired By"}),y.jsx("th",{className:"px-4 py-3 text-left font-medium text-gray-400",children:"Created"}),y.jsx("th",{className:"px-4 py-3 text-left font-medium text-gray-400",children:"Last Seen"}),y.jsx("th",{className:"px-4 py-3 text-right font-medium text-gray-400",children:"Actions"})]})}),y.jsx("tbody",{children:n.map(x=>y.jsxs("tr",{className:"border-b border-gray-800/50 transition-colors hover:bg-gray-800/30",children:[y.jsx("td",{className:"px-4 py-3 font-mono text-xs text-white",children:x.token_fingerprint}),y.jsx("td",{className:"px-4 py-3 text-gray-300",children:x.paired_by??"Unknown"}),y.jsx("td",{className:"px-4 py-3 whitespace-nowrap text-xs text-gray-400",children:gx(x.created_at)}),y.jsx("td",{className:"px-4 py-3 whitespace-nowrap text-xs text-gray-400",children:gx(x.last_seen_at)}),y.jsx("td",{className:"px-4 py-3 text-right",children:f===x.id?y.jsxs("div",{className:"inline-flex items-center gap-2",children:[y.jsx("span",{className:"text-xs text-red-400",children:"Revoke?"}),y.jsx("button",{onClick:()=>{b(x.id)},className:"text-xs font-medium text-red-400 hover:text-red-300",children:"Yes"}),y.jsx("button",{onClick:()=>d(null),className:"text-xs font-medium text-gray-400 hover:text-white",children:"No"})]}):y.jsx("button",{onClick:()=>d(x.id),className:"text-xs font-medium text-red-400 hover:text-red-300",children:"Revoke"})})]},x.id))})]})})]})}/*! + */const nT=se("Zap",[["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"}]]),Gi="zeroclaw_token";let os=null;function iT(n){try{return sessionStorage.getItem(n)}catch{return null}}function F2(n,e){try{sessionStorage.setItem(n,e)}catch{}}function lT(n){try{sessionStorage.removeItem(n)}catch{}}function X2(n){try{localStorage.removeItem(n)}catch{}}function Ca(){if(os&&os.length>0)return os;const n=iT(Gi);if(n&&n.length>0)return os=n,n;try{const e=localStorage.getItem(Gi);if(e&&e.length>0)return os=e,F2(Gi,e),localStorage.removeItem(Gi),e}catch{}return null}function Q2(n){os=n,F2(Gi,n),X2(Gi)}function Z2(){os=null,lT(Gi),X2(Gi)}function nm(){const n=Ca();return n!==null&&n.length>0}class sT extends Error{constructor(){super("Unauthorized"),this.name="UnauthorizedError"}}async function Rt(n,e={}){const t=Ca(),i=new Headers(e.headers);t&&i.set("Authorization",`Bearer ${t}`),e.body&&typeof e.body=="string"&&!i.has("Content-Type")&&i.set("Content-Type","application/json");const s=await fetch(n,{...e,headers:i});if(s.status===401)throw Z2(),window.dispatchEvent(new Event("zeroclaw-unauthorized")),new sT;if(!s.ok){const r=await s.text().catch(()=>"");throw new Error(`API ${s.status}: ${r||s.statusText}`)}if(s.status!==204)return s.json()}function ws(n,e){if(n!==null&&typeof n=="object"&&!Array.isArray(n)&&e in n){const t=n[e];if(t!==void 0)return t}return n}async function aT(n){const e=await fetch("/pair",{method:"POST",headers:{"X-Pairing-Code":n}});if(!e.ok){const i=await e.text().catch(()=>"");throw new Error(`Pairing failed (${e.status}): ${i||e.statusText}`)}const t=await e.json();return Q2(t.token),t}async function rT(){const n=await fetch("/health");if(!n.ok)throw new Error(`Health check failed (${n.status})`);return n.json()}function $2(){return Rt("/api/status")}function oT(){return Rt("/api/config").then(n=>typeof n=="string"?n:n.content)}function cT(n){return Rt("/api/config",{method:"PUT",headers:{"Content-Type":"application/toml"},body:n})}function uT(){return Rt("/api/tools").then(n=>ws(n,"tools"))}function hT(){return Rt("/api/cron").then(n=>ws(n,"jobs"))}function fT(n){return Rt("/api/cron",{method:"POST",body:JSON.stringify(n)}).then(e=>typeof e.job=="object"?e.job:e)}function dT(n){return Rt(`/api/cron/${encodeURIComponent(n)}`,{method:"DELETE"})}function mT(){return Rt("/api/integrations").then(n=>ws(n,"integrations"))}function pT(){return Rt("/api/integrations/settings")}function ax(n,e){return Rt(`/api/integrations/${encodeURIComponent(n)}/credentials`,{method:"PUT",body:JSON.stringify(e)})}function gT(){return Rt("/api/doctor",{method:"POST",body:JSON.stringify({})}).then(n=>Array.isArray(n)?n:n.results)}function yT(n,e){const t=new URLSearchParams;n&&t.set("query",n),e&&t.set("category",e);const i=t.toString();return Rt(`/api/memory${i?`?${i}`:""}`).then(s=>ws(s,"entries"))}function bT(n,e,t){return Rt("/api/memory",{method:"POST",body:JSON.stringify({key:n,content:e,category:t})}).then(()=>{})}function xT(n){return Rt(`/api/memory/${encodeURIComponent(n)}`,{method:"DELETE"})}function vT(){return Rt("/api/pairing/devices").then(n=>ws(n,"devices"))}function wT(n){return Rt(`/api/pairing/devices/${encodeURIComponent(n)}`,{method:"DELETE"})}function J2(){return Rt("/api/cost").then(n=>ws(n,"cost"))}function ST(){return Rt("/api/cli-tools").then(n=>ws(n,"cli_tools"))}const im=["en","zh-CN","ja","ru","fr","vi","el"],kT={en:"EN",tr:"TR","zh-CN":"简体",ja:"日本語",ru:"РУ",fr:"FR",vi:"VI",el:"ΕΛ"},CT=["en","tr","zh-CN","ja","ru","fr","vi","el"],rx={en:{"nav.dashboard":"Dashboard","nav.agent":"Agent","nav.tools":"Tools","nav.cron":"Scheduled Jobs","nav.integrations":"Integrations","nav.memory":"Memory","nav.devices":"Devices","nav.config":"Configuration","nav.cost":"Cost Tracker","nav.logs":"Logs","nav.doctor":"Doctor","dashboard.title":"Dashboard","dashboard.provider":"Provider","dashboard.model":"Model","dashboard.uptime":"Uptime","dashboard.temperature":"Temperature","dashboard.gateway_port":"Gateway Port","dashboard.locale":"Locale","dashboard.memory_backend":"Memory Backend","dashboard.paired":"Paired","dashboard.channels":"Channels","dashboard.health":"Health","dashboard.status":"Status","dashboard.overview":"Overview","dashboard.system_info":"System Information","dashboard.quick_actions":"Quick Actions","agent.title":"Agent Chat","agent.send":"Send","agent.placeholder":"Type a message...","agent.connecting":"Connecting...","agent.connected":"Connected","agent.disconnected":"Disconnected","agent.reconnecting":"Reconnecting...","agent.thinking":"Thinking...","agent.tool_call":"Tool Call","agent.tool_result":"Tool Result","tools.title":"Available Tools","tools.name":"Name","tools.description":"Description","tools.parameters":"Parameters","tools.search":"Search tools...","tools.empty":"No tools available.","tools.count":"Total tools","cron.title":"Scheduled Jobs","cron.add":"Add Job","cron.delete":"Delete","cron.enable":"Enable","cron.disable":"Disable","cron.name":"Name","cron.command":"Command","cron.schedule":"Schedule","cron.next_run":"Next Run","cron.last_run":"Last Run","cron.last_status":"Last Status","cron.enabled":"Enabled","cron.empty":"No scheduled jobs.","cron.confirm_delete":"Are you sure you want to delete this job?","integrations.title":"Integrations","integrations.available":"Available","integrations.active":"Active","integrations.coming_soon":"Coming Soon","integrations.category":"Category","integrations.status":"Status","integrations.search":"Search integrations...","integrations.empty":"No integrations found.","integrations.activate":"Activate","integrations.deactivate":"Deactivate","memory.title":"Memory Store","memory.search":"Search memory...","memory.add":"Store Memory","memory.delete":"Delete","memory.key":"Key","memory.content":"Content","memory.category":"Category","memory.timestamp":"Timestamp","memory.session":"Session","memory.score":"Score","memory.empty":"No memory entries found.","memory.confirm_delete":"Are you sure you want to delete this memory entry?","memory.all_categories":"All Categories","config.title":"Configuration","config.save":"Save","config.reset":"Reset","config.saved":"Configuration saved successfully.","config.error":"Failed to save configuration.","config.loading":"Loading configuration...","config.editor_placeholder":"TOML configuration...","cost.title":"Cost Tracker","cost.session":"Session Cost","cost.daily":"Daily Cost","cost.monthly":"Monthly Cost","cost.total_tokens":"Total Tokens","cost.request_count":"Requests","cost.by_model":"Cost by Model","cost.model":"Model","cost.tokens":"Tokens","cost.requests":"Requests","cost.usd":"Cost (USD)","logs.title":"Live Logs","logs.clear":"Clear","logs.pause":"Pause","logs.resume":"Resume","logs.filter":"Filter logs...","logs.empty":"No log entries.","logs.connected":"Connected to event stream.","logs.disconnected":"Disconnected from event stream.","doctor.title":"System Diagnostics","doctor.run":"Run Diagnostics","doctor.running":"Running diagnostics...","doctor.ok":"OK","doctor.warn":"Warning","doctor.error":"Error","doctor.severity":"Severity","doctor.category":"Category","doctor.message":"Message","doctor.empty":"No diagnostics have been run yet.","doctor.summary":"Diagnostic Summary","auth.pair":"Pair Device","auth.pairing_code":"Pairing Code","auth.pair_button":"Pair","auth.logout":"Logout","auth.pairing_success":"Pairing successful!","auth.pairing_failed":"Pairing failed. Please try again.","auth.enter_code":"Enter your pairing code to connect to the agent.","common.loading":"Loading...","common.error":"An error occurred.","common.retry":"Retry","common.cancel":"Cancel","common.confirm":"Confirm","common.save":"Save","common.delete":"Delete","common.edit":"Edit","common.close":"Close","common.yes":"Yes","common.no":"No","common.search":"Search...","common.no_data":"No data available.","common.refresh":"Refresh","common.back":"Back","common.actions":"Actions","common.name":"Name","common.description":"Description","common.status":"Status","common.created":"Created","common.updated":"Updated","health.title":"System Health","health.component":"Component","health.status":"Status","health.last_ok":"Last OK","health.last_error":"Last Error","health.restart_count":"Restarts","health.pid":"Process ID","health.uptime":"Uptime","health.updated_at":"Last Updated"},tr:{"nav.dashboard":"Kontrol Paneli","nav.agent":"Ajan","nav.tools":"Araclar","nav.cron":"Zamanlanmis Gorevler","nav.integrations":"Entegrasyonlar","nav.memory":"Hafiza","nav.devices":"Cihazlar","nav.config":"Yapilandirma","nav.cost":"Maliyet Takibi","nav.logs":"Kayitlar","nav.doctor":"Doktor","dashboard.title":"Kontrol Paneli","dashboard.provider":"Saglayici","dashboard.model":"Model","dashboard.uptime":"Calisma Suresi","dashboard.temperature":"Sicaklik","dashboard.gateway_port":"Gecit Portu","dashboard.locale":"Yerel Ayar","dashboard.memory_backend":"Hafiza Motoru","dashboard.paired":"Eslestirilmis","dashboard.channels":"Kanallar","dashboard.health":"Saglik","dashboard.status":"Durum","dashboard.overview":"Genel Bakis","dashboard.system_info":"Sistem Bilgisi","dashboard.quick_actions":"Hizli Islemler","agent.title":"Ajan Sohbet","agent.send":"Gonder","agent.placeholder":"Bir mesaj yazin...","agent.connecting":"Baglaniyor...","agent.connected":"Bagli","agent.disconnected":"Baglanti Kesildi","agent.reconnecting":"Yeniden Baglaniyor...","agent.thinking":"Dusunuyor...","agent.tool_call":"Arac Cagrisi","agent.tool_result":"Arac Sonucu","tools.title":"Mevcut Araclar","tools.name":"Ad","tools.description":"Aciklama","tools.parameters":"Parametreler","tools.search":"Arac ara...","tools.empty":"Mevcut arac yok.","tools.count":"Toplam arac","cron.title":"Zamanlanmis Gorevler","cron.add":"Gorev Ekle","cron.delete":"Sil","cron.enable":"Etkinlestir","cron.disable":"Devre Disi Birak","cron.name":"Ad","cron.command":"Komut","cron.schedule":"Zamanlama","cron.next_run":"Sonraki Calistirma","cron.last_run":"Son Calistirma","cron.last_status":"Son Durum","cron.enabled":"Etkin","cron.empty":"Zamanlanmis gorev yok.","cron.confirm_delete":"Bu gorevi silmek istediginizden emin misiniz?","integrations.title":"Entegrasyonlar","integrations.available":"Mevcut","integrations.active":"Aktif","integrations.coming_soon":"Yakinda","integrations.category":"Kategori","integrations.status":"Durum","integrations.search":"Entegrasyon ara...","integrations.empty":"Entegrasyon bulunamadi.","integrations.activate":"Etkinlestir","integrations.deactivate":"Devre Disi Birak","memory.title":"Hafiza Deposu","memory.search":"Hafizada ara...","memory.add":"Hafiza Kaydet","memory.delete":"Sil","memory.key":"Anahtar","memory.content":"Icerik","memory.category":"Kategori","memory.timestamp":"Zaman Damgasi","memory.session":"Oturum","memory.score":"Skor","memory.empty":"Hafiza kaydi bulunamadi.","memory.confirm_delete":"Bu hafiza kaydini silmek istediginizden emin misiniz?","memory.all_categories":"Tum Kategoriler","config.title":"Yapilandirma","config.save":"Kaydet","config.reset":"Sifirla","config.saved":"Yapilandirma basariyla kaydedildi.","config.error":"Yapilandirma kaydedilemedi.","config.loading":"Yapilandirma yukleniyor...","config.editor_placeholder":"TOML yapilandirmasi...","cost.title":"Maliyet Takibi","cost.session":"Oturum Maliyeti","cost.daily":"Gunluk Maliyet","cost.monthly":"Aylik Maliyet","cost.total_tokens":"Toplam Token","cost.request_count":"Istekler","cost.by_model":"Modele Gore Maliyet","cost.model":"Model","cost.tokens":"Token","cost.requests":"Istekler","cost.usd":"Maliyet (USD)","logs.title":"Canli Kayitlar","logs.clear":"Temizle","logs.pause":"Duraklat","logs.resume":"Devam Et","logs.filter":"Kayitlari filtrele...","logs.empty":"Kayit girisi yok.","logs.connected":"Olay akisina baglandi.","logs.disconnected":"Olay akisi baglantisi kesildi.","doctor.title":"Sistem Teshisleri","doctor.run":"Teshis Calistir","doctor.running":"Teshisler calistiriliyor...","doctor.ok":"Tamam","doctor.warn":"Uyari","doctor.error":"Hata","doctor.severity":"Ciddiyet","doctor.category":"Kategori","doctor.message":"Mesaj","doctor.empty":"Henuz teshis calistirilmadi.","doctor.summary":"Teshis Ozeti","auth.pair":"Cihaz Esle","auth.pairing_code":"Eslestirme Kodu","auth.pair_button":"Esle","auth.logout":"Cikis Yap","auth.pairing_success":"Eslestirme basarili!","auth.pairing_failed":"Eslestirme basarisiz. Lutfen tekrar deneyin.","auth.enter_code":"Ajana baglanmak icin eslestirme kodunuzu girin.","common.loading":"Yukleniyor...","common.error":"Bir hata olustu.","common.retry":"Tekrar Dene","common.cancel":"Iptal","common.confirm":"Onayla","common.save":"Kaydet","common.delete":"Sil","common.edit":"Duzenle","common.close":"Kapat","common.yes":"Evet","common.no":"Hayir","common.search":"Ara...","common.no_data":"Veri mevcut degil.","common.refresh":"Yenile","common.back":"Geri","common.actions":"Islemler","common.name":"Ad","common.description":"Aciklama","common.status":"Durum","common.created":"Olusturulma","common.updated":"Guncellenme","health.title":"Sistem Sagligi","health.component":"Bilesen","health.status":"Durum","health.last_ok":"Son Basarili","health.last_error":"Son Hata","health.restart_count":"Yeniden Baslatmalar","health.pid":"Islem Kimligi","health.uptime":"Calisma Suresi","health.updated_at":"Son Guncelleme"},"zh-CN":{"nav.dashboard":"仪表盘","nav.agent":"智能体","nav.tools":"工具","nav.cron":"定时任务","nav.integrations":"集成","nav.memory":"记忆","nav.devices":"设备","nav.config":"配置","nav.cost":"成本追踪","nav.logs":"日志","nav.doctor":"诊断","dashboard.title":"仪表盘","dashboard.provider":"提供商","dashboard.model":"模型","dashboard.uptime":"运行时长","dashboard.temperature":"温度","dashboard.gateway_port":"网关端口","dashboard.locale":"语言区域","dashboard.memory_backend":"记忆后端","dashboard.paired":"已配对","dashboard.channels":"渠道","dashboard.health":"健康状态","dashboard.status":"状态","dashboard.overview":"总览","dashboard.system_info":"系统信息","dashboard.quick_actions":"快捷操作","agent.title":"智能体聊天","agent.send":"发送","agent.placeholder":"输入消息...","agent.connecting":"连接中...","agent.connected":"已连接","agent.disconnected":"已断开连接","agent.reconnecting":"重连中...","agent.thinking":"思考中...","agent.tool_call":"工具调用","agent.tool_result":"工具结果","tools.title":"可用工具","tools.name":"名称","tools.description":"描述","tools.parameters":"参数","tools.search":"搜索工具...","tools.empty":"暂无可用工具。","tools.count":"工具总数","cron.title":"定时任务","cron.add":"添加任务","cron.delete":"删除","cron.enable":"启用","cron.disable":"禁用","cron.name":"名称","cron.command":"命令","cron.schedule":"计划","cron.next_run":"下次运行","cron.last_run":"上次运行","cron.last_status":"上次状态","cron.enabled":"已启用","cron.empty":"暂无定时任务。","cron.confirm_delete":"确定要删除此任务吗?","integrations.title":"集成","integrations.available":"可用","integrations.active":"已激活","integrations.coming_soon":"即将推出","integrations.category":"分类","integrations.status":"状态","integrations.search":"搜索集成...","integrations.empty":"未找到集成。","integrations.activate":"激活","integrations.deactivate":"停用","memory.title":"记忆存储","memory.search":"搜索记忆...","memory.add":"存储记忆","memory.delete":"删除","memory.key":"键","memory.content":"内容","memory.category":"分类","memory.timestamp":"时间戳","memory.session":"会话","memory.score":"评分","memory.empty":"未找到记忆条目。","memory.confirm_delete":"确定要删除此记忆条目吗?","memory.all_categories":"全部分类","config.title":"配置","config.save":"保存","config.reset":"重置","config.saved":"配置保存成功。","config.error":"配置保存失败。","config.loading":"配置加载中...","config.editor_placeholder":"TOML 配置...","cost.title":"成本追踪","cost.session":"会话成本","cost.daily":"每日成本","cost.monthly":"每月成本","cost.total_tokens":"Token 总数","cost.request_count":"请求数","cost.by_model":"按模型统计成本","cost.model":"模型","cost.tokens":"Token","cost.requests":"请求","cost.usd":"成本(USD)","logs.title":"实时日志","logs.clear":"清空","logs.pause":"暂停","logs.resume":"继续","logs.filter":"筛选日志...","logs.empty":"暂无日志条目。","logs.connected":"已连接到事件流。","logs.disconnected":"与事件流断开连接。","doctor.title":"系统诊断","doctor.run":"运行诊断","doctor.running":"正在运行诊断...","doctor.ok":"正常","doctor.warn":"警告","doctor.error":"错误","doctor.severity":"严重级别","doctor.category":"分类","doctor.message":"消息","doctor.empty":"尚未运行诊断。","doctor.summary":"诊断摘要","auth.pair":"设备配对","auth.pairing_code":"配对码","auth.pair_button":"配对","auth.logout":"退出登录","auth.pairing_success":"配对成功!","auth.pairing_failed":"配对失败,请重试。","auth.enter_code":"输入配对码以连接到智能体。","common.loading":"加载中...","common.error":"发生错误。","common.retry":"重试","common.cancel":"取消","common.confirm":"确认","common.save":"保存","common.delete":"删除","common.edit":"编辑","common.close":"关闭","common.yes":"是","common.no":"否","common.search":"搜索...","common.no_data":"暂无数据。","common.refresh":"刷新","common.back":"返回","common.actions":"操作","common.name":"名称","common.description":"描述","common.status":"状态","common.created":"创建时间","common.updated":"更新时间","health.title":"系统健康","health.component":"组件","health.status":"状态","health.last_ok":"最近正常","health.last_error":"最近错误","health.restart_count":"重启次数","health.pid":"进程 ID","health.uptime":"运行时长","health.updated_at":"最后更新"},ja:{},ru:{},fr:{},vi:{},el:{}};let ew="en";function AT(n){ew=n}function Vu(n){var e;return((e=rx[ew])==null?void 0:e[n])??rx.en[n]??n}function ox(n){if(!n)return"en";if(CT.includes(n))return n;const e=n.toLowerCase();return e.startsWith("tr")?"tr":e==="zh"||e.startsWith("zh-")?"zh-CN":e==="ja"||e.startsWith("ja-")?"ja":e==="ru"||e.startsWith("ru-")?"ru":e==="fr"||e.startsWith("fr-")?"fr":e==="vi"||e.startsWith("vi-")?"vi":e==="el"||e.startsWith("el-")?"el":"en"}const MT=1e3,TT=[{to:"/",icon:R3,labelKey:"nav.dashboard"},{to:"/agent",icon:z3,labelKey:"nav.agent"},{to:"/tools",icon:W2,labelKey:"nav.tools"},{to:"/cron",icon:no,labelKey:"nav.cron"},{to:"/integrations",icon:io,labelKey:"nav.integrations"},{to:"/memory",icon:Vm,labelKey:"nav.memory"},{to:"/devices",icon:I2,labelKey:"nav.devices"},{to:"/config",icon:Zp,labelKey:"nav.config"},{to:"/cost",icon:dh,labelKey:"nav.cost"},{to:"/logs",icon:Hu,labelKey:"nav.logs"},{to:"/doctor",icon:Pm,labelKey:"nav.doctor"}];function NT({isOpen:n,isCollapsed:e,onClose:t,onToggleCollapse:i}){const[s,r]=M.useState(!1);return M.useEffect(()=>{const o=setTimeout(()=>r(!0),MT);return()=>clearTimeout(o)},[]),y.jsxs(y.Fragment,{children:[y.jsx("button",{type:"button","aria-label":"Close navigation",onClick:t,className:["fixed inset-0 z-30 bg-black/50 transition-opacity md:hidden",n?"opacity-100":"pointer-events-none opacity-0"].join(" ")}),y.jsxs("aside",{className:["fixed left-0 top-0 z-40 flex h-screen w-[86vw] max-w-[17.5rem] flex-col border-r border-[#1e2f5d] bg-[#050b1a]/95 backdrop-blur-xl","shadow-[0_0_50px_-25px_rgba(8,121,255,0.7)]","transform transition-[width,transform] duration-300 ease-out",n?"translate-x-0":"-translate-x-full",e?"md:w-[6.25rem]":"md:w-[17.5rem]","md:translate-x-0"].join(" "),children:[y.jsxs("div",{className:"relative flex items-center justify-between border-b border-[#1a2d5e] px-4 py-4",children:[y.jsx("div",{className:"flex items-center gap-3 overflow-hidden",children:!e&&y.jsxs(y.Fragment,{children:[y.jsx("img",{src:"/_app/logo.png",alt:"ZeroClaw",className:"h-9 w-9 shrink-0 rounded-xl object-contain"}),y.jsx("span",{className:"text-lg font-semibold tracking-[0.1em] text-white",children:"ZeroClaw"})]})}),y.jsxs("div",{className:"flex items-center gap-2",children:[s&&y.jsx("button",{type:"button",onClick:i,"aria-label":e?"Expand navigation":"Collapse navigation",className:"hidden rounded-lg border border-[#2c4e97] bg-[#0a1b3f]/60 p-1.5 text-[#8bb9ff] transition hover:border-[#4f83ff] hover:text-white md:block",children:y.jsx(S3,{className:"h-4 w-4"})}),y.jsx("button",{type:"button",onClick:t,"aria-label":"Close navigation",className:"rounded-lg p-1.5 text-gray-300 transition-colors hover:bg-gray-800 hover:text-white md:hidden",children:y.jsx(Mo,{className:"h-4 w-4"})})]})]}),y.jsx("nav",{className:"flex-1 space-y-1 overflow-y-auto px-3 py-4",children:TT.map(({to:o,icon:u,labelKey:f})=>y.jsxs(j2,{to:o,end:o==="/",onClick:t,title:e?Vu(f):void 0,className:({isActive:d})=>["group flex items-center gap-3 overflow-hidden rounded-xl px-3 py-2.5 text-sm font-medium transition-all duration-300",d?"border border-[#3a6de0] bg-[#0b2f80]/55 text-white shadow-[0_0_30px_-16px_rgba(72,140,255,0.95)]":"border border-transparent text-[#9bb7eb] hover:border-[#294a8d] hover:bg-[#07132f] hover:text-white"].join(" "),children:[y.jsx(u,{className:"h-5 w-5 shrink-0 transition-transform duration-300 group-hover:scale-110"}),y.jsx("span",{className:["whitespace-nowrap transition-[opacity,transform,width] duration-300",e?"w-0 -translate-x-3 opacity-0 md:invisible":"w-auto opacity-100"].join(" "),children:Vu(f)})]},o))}),y.jsxs("div",{className:["mx-3 mb-4 rounded-xl border border-[#1b3670] bg-[#071328]/80 px-3 py-3 text-xs text-[#89a9df] transition-all duration-300",e?"md:px-1.5 md:text-center":""].join(" "),children:[y.jsx("p",{className:e?"hidden md:block":"",children:"Gateway + Dashboard"}),y.jsx("p",{className:e?"text-[10px] uppercase tracking-widest":"mt-1 text-[#5f84cc]",children:e?"UI":"Runtime Mode"})]})]})]})}const tw=M.createContext(null);function ET({children:n}){const[e,t]=M.useState(Ca),[i,s]=M.useState(nm),[r,o]=M.useState(!nm());M.useEffect(()=>{if(nm())return;let p=!1;return rT().then(b=>{p||b.require_pairing||s(!0)}).catch(()=>{}).finally(()=>{p||o(!1)}),()=>{p=!0}},[]),M.useEffect(()=>{const p=b=>{if(b.key===Gi){const x=Ca();t(x),s(x!==null&&x.length>0)}};return window.addEventListener("storage",p),()=>window.removeEventListener("storage",p)},[]);const u=M.useCallback(async p=>{const{token:b}=await aT(p);Q2(b),t(b),s(!0)},[]),f=M.useCallback(()=>{Z2(),t(null),s(!1)},[]),d={token:e,isAuthenticated:i,loading:r,pair:u,logout:f};return m2.createElement(tw.Provider,{value:d},n)}function nw(){const n=M.useContext(tw);if(!n)throw new Error("useAuth must be used within an ");return n}const DT={"/":"nav.dashboard","/agent":"nav.agent","/tools":"nav.tools","/cron":"nav.cron","/integrations":"nav.integrations","/memory":"nav.memory","/devices":"nav.devices","/config":"nav.config","/cost":"nav.cost","/logs":"nav.logs","/doctor":"nav.doctor"},OT="English · 简体中文 · 日本語 · Русский · Français · Tiếng Việt · Ελληνικά";function jT({onToggleSidebar:n}){const e=Zi(),{logout:t}=nw(),{locale:i,setAppLocale:s}=N6(),r=DT[e.pathname]??"nav.dashboard",o=Vu(r),u=()=>{const f=im.indexOf(i),d=im[(f+1)%im.length]??"en";s(d)};return y.jsxs("header",{className:"glass-header relative flex min-h-[4.5rem] flex-wrap items-center justify-between gap-2 rounded-2xl border border-[#1a3670] px-4 py-3 sm:px-5 sm:py-3.5 md:flex-nowrap md:px-8 md:py-4",children:[y.jsx("div",{className:"absolute inset-0 pointer-events-none opacity-70 bg-[radial-gradient(circle_at_15%_30%,rgba(41,148,255,0.22),transparent_45%),radial-gradient(circle_at_85%_75%,rgba(0,209,255,0.14),transparent_40%)]"}),y.jsxs("div",{className:"relative flex min-w-0 items-center gap-2.5 sm:gap-3",children:[y.jsx("button",{type:"button",onClick:n,"aria-label":"Open navigation",className:"rounded-lg border border-[#294a8f] bg-[#081637]/70 p-1.5 text-[#9ec2ff] transition hover:border-[#4f83ff] hover:text-white md:hidden",children:y.jsx(L3,{className:"h-5 w-5"})}),y.jsxs("div",{className:"min-w-0",children:[y.jsx("h1",{className:"truncate text-base font-semibold tracking-wide text-white sm:text-lg",children:o}),y.jsx("p",{className:"hidden text-[10px] uppercase tracking-[0.16em] text-[#7ea5eb] sm:block",children:"ZeroClaw dashboard"})]})]}),y.jsxs("div",{className:"relative flex w-full items-center justify-end gap-1.5 sm:gap-2 md:w-auto md:gap-3",children:[y.jsx("button",{type:"button",onClick:u,title:`🌐 Languages: ${OT}`,className:"rounded-lg border border-[#2b4f97] bg-[#091937]/75 px-2.5 py-1 text-xs font-medium text-[#c4d8ff] transition hover:border-[#4f83ff] hover:text-white sm:px-3 sm:text-sm",children:kT[i]??"EN"}),y.jsxs("button",{type:"button",onClick:t,className:"flex items-center gap-1 rounded-lg border border-[#2b4f97] bg-[#091937]/75 px-2.5 py-1.5 text-xs text-[#c4d8ff] transition hover:border-[#4f83ff] hover:text-white sm:gap-1.5 sm:px-3 sm:text-sm",children:[y.jsx(_3,{className:"h-4 w-4"}),y.jsx("span",{className:"hidden sm:inline",children:Vu("auth.logout")})]})]})]})}const cx="zeroclaw:sidebar-collapsed";function RT(){const[n,e]=M.useState(!1),[t,i]=M.useState(()=>typeof window>"u"?!1:window.localStorage.getItem(cx)==="1"),s=()=>{i(r=>{const o=!r;return typeof window<"u"&&window.localStorage.setItem(cx,o?"1":"0"),o})};return y.jsxs("div",{className:"app-shell min-h-screen text-white",children:[y.jsx(NT,{isOpen:n,isCollapsed:t,onClose:()=>e(!1),onToggleCollapse:s}),y.jsxs("div",{className:["flex min-h-screen flex-col transition-[margin-left] duration-300 ease-out",t?"md:ml-[6.25rem]":"md:ml-[17.5rem]"].join(" "),children:[y.jsx(jT,{onToggleSidebar:()=>e(r=>!r)}),y.jsx("main",{className:"flex-1 overflow-y-auto px-4 pb-8 pt-5 md:px-8 md:pt-8",children:y.jsx(RM,{})})]})]})}function _T(n){const e=Math.floor(n/86400),t=Math.floor(n%86400/3600),i=Math.floor(n%3600/60);return e>0?`${e}d ${t}h ${i}m`:t>0?`${t}h ${i}m`:`${i}m`}function LT(n){return`$${n.toFixed(4)}`}function BT(n){switch(n.toLowerCase()){case"ok":case"healthy":return"bg-emerald-400";case"warn":case"warning":case"degraded":return"bg-amber-400";default:return"bg-rose-500"}}function zT(n){switch(n.toLowerCase()){case"ok":case"healthy":return"border-emerald-500/30";case"warn":case"warning":case"degraded":return"border-amber-400/30";default:return"border-rose-500/35"}}function lm({title:n,subtitle:e,icon:t,sectionKey:i,openState:s,onToggle:r,children:o}){const u=s[i];return y.jsxs("section",{className:"electric-card motion-rise",children:[y.jsxs("button",{type:"button",onClick:()=>r(i),"aria-expanded":u,className:"group flex w-full items-center justify-between gap-4 rounded-xl px-4 py-4 text-left md:px-5",children:[y.jsxs("div",{className:"flex items-center gap-3",children:[y.jsx("div",{className:"electric-icon h-10 w-10 rounded-xl",children:y.jsx(t,{className:"h-5 w-5"})}),y.jsxs("div",{children:[y.jsx("h2",{className:"text-base font-semibold text-white",children:n}),y.jsx("p",{className:"text-xs uppercase tracking-[0.13em] text-[#7ea5eb]",children:e})]})]}),y.jsx(hh,{className:["h-5 w-5 text-[#7ea5eb] transition-transform duration-300",u?"rotate-180":"rotate-0"].join(" ")})]}),y.jsx("div",{className:["grid overflow-hidden transition-[grid-template-rows,opacity] duration-300 ease-out",u?"grid-rows-[1fr] opacity-100":"grid-rows-[0fr] opacity-0"].join(" "),children:y.jsx("div",{className:"min-h-0 border-t border-[#18356f] px-4 pb-4 pt-4 md:px-5",children:o})})]})}function HT(){const[n,e]=M.useState(null),[t,i]=M.useState(null),[s,r]=M.useState(null),[o,u]=M.useState({cost:!0,channels:!0,health:!0});M.useEffect(()=>{Promise.all([$2(),J2()]).then(([p,b])=>{e(p),i(b)}).catch(p=>{const b=p instanceof Error?p.message:"Unknown dashboard load error";r(b)})},[]);const f=p=>{u(b=>({...b,[p]:!b[p]}))};if(s)return y.jsxs("div",{className:"electric-card p-5 text-rose-200",children:[y.jsx("h2",{className:"text-lg font-semibold text-rose-100",children:"Dashboard load failed"}),y.jsx("p",{className:"mt-2 text-sm text-rose-200/90",children:s})]});if(!n||!t)return y.jsx("div",{className:"flex h-64 items-center justify-center",children:y.jsx("div",{className:"electric-loader h-12 w-12 rounded-full"})});const d=Math.max(t.session_cost_usd,t.daily_cost_usd,t.monthly_cost_usd,.001);return y.jsxs("div",{className:"space-y-5 md:space-y-6",children:[y.jsx("section",{className:"hero-panel motion-rise",children:y.jsxs("div",{className:"relative z-10 flex flex-wrap items-start justify-between gap-4",children:[y.jsxs("div",{children:[y.jsx("p",{className:"text-xs uppercase tracking-[0.22em] text-[#8fb8ff]",children:"ZeroClaw Command Deck"}),y.jsx("h1",{className:"mt-2 text-2xl font-semibold tracking-[0.03em] text-white md:text-3xl",children:"Electric Runtime Dashboard"}),y.jsx("p",{className:"mt-2 max-w-2xl text-sm text-[#b3cbf8] md:text-base",children:"Real-time telemetry, cost pulse, and operations status in a single collapsible surface."})]}),y.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[y.jsxs("span",{className:"status-pill",children:[y.jsx($p,{className:"h-3.5 w-3.5"}),"Live Gateway"]}),y.jsxs("span",{className:"status-pill",children:[y.jsx(G2,{className:"h-3.5 w-3.5"}),n.paired?"Paired":"Unpaired"]})]})]})}),y.jsxs("section",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-4",children:[y.jsxs("article",{className:"electric-card motion-rise motion-delay-1 p-4",children:[y.jsxs("div",{className:"metric-head",children:[y.jsx(Nu,{className:"h-4 w-4"}),y.jsx("span",{children:"Provider / Model"})]}),y.jsx("p",{className:"metric-value mt-3",children:n.provider??"Unknown"}),y.jsx("p",{className:"metric-sub mt-1 truncate",children:n.model})]}),y.jsxs("article",{className:"electric-card motion-rise motion-delay-2 p-4",children:[y.jsxs("div",{className:"metric-head",children:[y.jsx(C3,{className:"h-4 w-4"}),y.jsx("span",{children:"Uptime"})]}),y.jsx("p",{className:"metric-value mt-3",children:_T(n.uptime_seconds)}),y.jsx("p",{className:"metric-sub mt-1",children:"Since last restart"})]}),y.jsxs("article",{className:"electric-card motion-rise motion-delay-3 p-4",children:[y.jsxs("div",{className:"metric-head",children:[y.jsx(M3,{className:"h-4 w-4"}),y.jsx("span",{children:"Gateway Port"})]}),y.jsxs("p",{className:"metric-value mt-3",children:[":",n.gateway_port]}),y.jsx("p",{className:"metric-sub mt-1",children:n.locale})]}),y.jsxs("article",{className:"electric-card motion-rise motion-delay-4 p-4",children:[y.jsxs("div",{className:"metric-head",children:[y.jsx(Um,{className:"h-4 w-4"}),y.jsx("span",{children:"Memory Backend"})]}),y.jsx("p",{className:"metric-value mt-3 capitalize",children:n.memory_backend}),y.jsx("p",{className:"metric-sub mt-1",children:n.paired?"Pairing active":"No paired devices"})]})]}),y.jsxs("div",{className:"space-y-4",children:[y.jsx(lm,{title:"Cost Pulse",subtitle:"Session, daily, and monthly runtime spend",icon:dh,sectionKey:"cost",openState:o,onToggle:f,children:y.jsxs("div",{className:"space-y-4",children:[[{label:"Session",value:t.session_cost_usd},{label:"Daily",value:t.daily_cost_usd},{label:"Monthly",value:t.monthly_cost_usd}].map(({label:p,value:b})=>y.jsxs("div",{children:[y.jsxs("div",{className:"mb-1.5 flex items-center justify-between text-sm",children:[y.jsx("span",{className:"text-[#9bb8ec]",children:p}),y.jsx("span",{className:"font-semibold text-white",children:LT(b)})]}),y.jsx("div",{className:"h-2.5 overflow-hidden rounded-full bg-[#061230]",children:y.jsx("div",{className:"electric-progress h-full rounded-full",style:{width:`${Math.max(b/d*100,3)}%`}})})]},p)),y.jsxs("div",{className:"grid grid-cols-2 gap-3 pt-2",children:[y.jsxs("div",{className:"metric-pill",children:[y.jsx("span",{children:"Total Tokens"}),y.jsx("strong",{children:t.total_tokens.toLocaleString()})]}),y.jsxs("div",{className:"metric-pill",children:[y.jsx("span",{children:"Requests"}),y.jsx("strong",{children:t.request_count.toLocaleString()})]})]})]})}),y.jsx(lm,{title:"Channel Activity",subtitle:"Live integrations and route connectivity",icon:G3,sectionKey:"channels",openState:o,onToggle:f,children:Object.entries(n.channels).length===0?y.jsx("p",{className:"text-sm text-[#8aa8df]",children:"No channels configured."}):y.jsx("div",{className:"grid grid-cols-1 gap-2 md:grid-cols-2",children:Object.entries(n.channels).map(([p,b])=>y.jsx("div",{className:"rounded-xl border border-[#1d3770] bg-[#05112c]/90 px-3 py-2.5",children:y.jsxs("div",{className:"flex items-center justify-between",children:[y.jsx("span",{className:"text-sm capitalize text-white",children:p}),y.jsxs("span",{className:"flex items-center gap-2 text-xs text-[#8baee7]",children:[y.jsx("span",{className:["inline-block h-2.5 w-2.5 rounded-full",b?"bg-emerald-400 shadow-[0_0_12px_0_rgba(52,211,153,0.8)]":"bg-slate-500"].join(" ")}),b?"Active":"Inactive"]})]})},p))})}),y.jsx(lm,{title:"Component Health",subtitle:"Runtime heartbeat and restart awareness",icon:Hu,sectionKey:"health",openState:o,onToggle:f,children:Object.entries(n.health.components).length===0?y.jsx("p",{className:"text-sm text-[#8aa8df]",children:"No component health is currently available."}):y.jsx("div",{className:"grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-3",children:Object.entries(n.health.components).map(([p,b])=>y.jsxs("div",{className:["rounded-xl border bg-[#05112c]/80 px-3 py-3",zT(b.status)].join(" "),children:[y.jsxs("div",{className:"flex items-center justify-between",children:[y.jsx("p",{className:"text-sm font-semibold capitalize text-white",children:p}),y.jsx("span",{className:["inline-block h-2.5 w-2.5 rounded-full",BT(b.status)].join(" ")})]}),y.jsx("p",{className:"mt-1 text-xs uppercase tracking-[0.12em] text-[#87a9e5]",children:b.status}),b.restart_count>0&&y.jsxs("p",{className:"mt-2 text-xs text-amber-300",children:["Restarts: ",b.restart_count]})]},p))})})]})]})}const VT=1e3,UT=3e4,ux="zeroclaw.ws.session_id";class qT{constructor(e={}){Xe(this,"ws",null);Xe(this,"currentDelay");Xe(this,"reconnectTimer",null);Xe(this,"intentionallyClosed",!1);Xe(this,"onMessage",null);Xe(this,"onOpen",null);Xe(this,"onClose",null);Xe(this,"onError",null);Xe(this,"baseUrl");Xe(this,"reconnectDelay");Xe(this,"maxReconnectDelay");Xe(this,"autoReconnect");Xe(this,"sessionId");const t=window.location.protocol==="https:"?"wss:":"ws:";this.baseUrl=e.baseUrl??`${t}//${window.location.host}`,this.reconnectDelay=e.reconnectDelay??VT,this.maxReconnectDelay=e.maxReconnectDelay??UT,this.autoReconnect=e.autoReconnect??!0,this.currentDelay=this.reconnectDelay,this.sessionId=this.resolveSessionId()}connect(){this.intentionallyClosed=!1,this.clearReconnectTimer();const e=Ca(),t=`${this.baseUrl}/ws/chat?session_id=${encodeURIComponent(this.sessionId)}`,i=["zeroclaw.v1"];e&&i.push(`bearer.${e}`),this.ws=new WebSocket(t,i),this.ws.onopen=()=>{var s;this.currentDelay=this.reconnectDelay,(s=this.onOpen)==null||s.call(this)},this.ws.onmessage=s=>{var r;try{const o=JSON.parse(s.data);(r=this.onMessage)==null||r.call(this,o)}catch{}},this.ws.onclose=s=>{var r;(r=this.onClose)==null||r.call(this,s),this.scheduleReconnect()},this.ws.onerror=s=>{var r;(r=this.onError)==null||r.call(this,s)}}sendMessage(e){if(!this.ws||this.ws.readyState!==WebSocket.OPEN)throw new Error("WebSocket is not connected");this.ws.send(JSON.stringify({type:"message",content:e}))}disconnect(){this.intentionallyClosed=!0,this.clearReconnectTimer(),this.ws&&(this.ws.close(),this.ws=null)}get connected(){var e;return((e=this.ws)==null?void 0:e.readyState)===WebSocket.OPEN}scheduleReconnect(){this.intentionallyClosed||!this.autoReconnect||(this.reconnectTimer=setTimeout(()=>{this.currentDelay=Math.min(this.currentDelay*2,this.maxReconnectDelay),this.connect()},this.currentDelay))}clearReconnectTimer(){this.reconnectTimer!==null&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)}resolveSessionId(){var i,s;const e=window.localStorage.getItem(ux);if(e&&/^[A-Za-z0-9_-]{1,128}$/.test(e))return e;const t=((s=(i=globalThis.crypto)==null?void 0:i.randomUUID)==null?void 0:s.call(i).replace(/-/g,"_"))??`sess_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,10)}`;return window.localStorage.setItem(ux,t),t}}let hx=0;const PT="Tool execution completed, but no final response text was returned.";function ua(){var e,t;const n=(t=(e=globalThis.crypto)==null?void 0:e.randomUUID)==null?void 0:t.call(e);return n||(hx+=1,`msg_${Date.now().toString(36)}_${hx.toString(36)}_${Math.random().toString(36).slice(2,10)}`)}function KT(){const[n,e]=M.useState([]),[t,i]=M.useState(""),[s,r]=M.useState(!1),[o,u]=M.useState(!1),[f,d]=M.useState(null),p=M.useRef(null),b=M.useRef(null),x=M.useRef(null),w=M.useRef("");M.useEffect(()=>{const C=new qT;return C.onOpen=()=>{u(!0),d(null)},C.onClose=()=>{u(!1)},C.onError=()=>{d("Connection error. Attempting to reconnect...")},C.onMessage=T=>{switch(T.type){case"history":{const R=(T.messages??[]).filter(E=>{var q;return(q=E.content)==null?void 0:q.trim()}).map(E=>({id:ua(),role:E.role==="user"?"user":"agent",content:E.content.trim(),timestamp:new Date}));e(R),r(!1),w.current="";break}case"chunk":r(!0),w.current+=T.content??"";break;case"message":case"done":{const E=(T.full_response??T.content??w.current??"").trim()||PT;e(q=>[...q,{id:ua(),role:"agent",content:E,timestamp:new Date}]),w.current="",r(!1);break}case"tool_call":e(R=>[...R,{id:ua(),role:"agent",content:`[Tool Call] ${T.name??"unknown"}(${JSON.stringify(T.args??{})})`,timestamp:new Date}]);break;case"tool_result":e(R=>[...R,{id:ua(),role:"agent",content:`[Tool Result] ${T.output??""}`,timestamp:new Date}]);break;case"error":e(R=>[...R,{id:ua(),role:"agent",content:`[Error] ${T.message??"Unknown error"}`,timestamp:new Date}]),r(!1),w.current="";break}},C.connect(),p.current=C,()=>{C.disconnect()}},[]),M.useEffect(()=>{var C;(C=b.current)==null||C.scrollIntoView({behavior:"smooth"})},[n,s]);const S=()=>{var T,R;const C=t.trim();if(!(!C||!((T=p.current)!=null&&T.connected))){e(E=>[...E,{id:ua(),role:"user",content:C,timestamp:new Date}]);try{p.current.sendMessage(C),r(!0),w.current=""}catch{d("Failed to send message. Please try again.")}i(""),(R=x.current)==null||R.focus()}},A=C=>{C.key==="Enter"&&!C.shiftKey&&(C.preventDefault(),S())};return y.jsxs("div",{className:"flex min-h-[28rem] flex-col h-[calc(100dvh-8.5rem)]",children:[f&&y.jsxs("div",{className:"px-4 py-2 bg-red-900/30 border-b border-red-700 flex items-center gap-2 text-sm text-red-300",children:[y.jsx(B2,{className:"h-4 w-4 flex-shrink-0"}),f]}),y.jsxs("div",{className:"flex-1 overflow-y-auto p-4 space-y-4",children:[n.length===0&&y.jsxs("div",{className:"flex flex-col items-center justify-center h-full text-gray-500",children:[y.jsx(Tu,{className:"h-12 w-12 mb-3 text-gray-600"}),y.jsx("p",{className:"text-lg font-medium",children:"ZeroClaw Agent"}),y.jsx("p",{className:"text-sm mt-1",children:"Send a message to start the conversation"})]}),n.map(C=>y.jsxs("div",{className:`flex items-start gap-3 ${C.role==="user"?"flex-row-reverse":""}`,children:[y.jsx("div",{className:`flex-shrink-0 w-8 h-8 rounded-full flex items-center justify-center ${C.role==="user"?"bg-blue-600":"bg-gray-700"}`,children:C.role==="user"?y.jsx(eT,{className:"h-4 w-4 text-white"}):y.jsx(Tu,{className:"h-4 w-4 text-white"})}),y.jsxs("div",{className:`max-w-[75%] rounded-xl px-4 py-3 ${C.role==="user"?"bg-blue-600 text-white":"bg-gray-800 text-gray-100 border border-gray-700"}`,children:[y.jsx("p",{className:"text-sm whitespace-pre-wrap break-words",children:C.content}),y.jsx("p",{className:`text-xs mt-1 ${C.role==="user"?"text-blue-200":"text-gray-500"}`,children:C.timestamp.toLocaleTimeString()})]})]},C.id)),s&&y.jsxs("div",{className:"flex items-start gap-3",children:[y.jsx("div",{className:"flex-shrink-0 w-8 h-8 rounded-full bg-gray-700 flex items-center justify-center",children:y.jsx(Tu,{className:"h-4 w-4 text-white"})}),y.jsxs("div",{className:"bg-gray-800 border border-gray-700 rounded-xl px-4 py-3",children:[y.jsxs("div",{className:"flex items-center gap-1",children:[y.jsx("span",{className:"w-2 h-2 bg-gray-400 rounded-full animate-bounce",style:{animationDelay:"0ms"}}),y.jsx("span",{className:"w-2 h-2 bg-gray-400 rounded-full animate-bounce",style:{animationDelay:"150ms"}}),y.jsx("span",{className:"w-2 h-2 bg-gray-400 rounded-full animate-bounce",style:{animationDelay:"300ms"}})]}),y.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Typing..."})]})]}),y.jsx("div",{ref:b})]}),y.jsxs("div",{className:"rounded-xl border border-gray-800 bg-gray-900 p-4",children:[y.jsxs("div",{className:"flex items-center gap-3 max-w-4xl mx-auto",children:[y.jsx("div",{className:"flex-1 relative",children:y.jsx("input",{ref:x,type:"text",value:t,onChange:C=>i(C.target.value),onKeyDown:A,placeholder:o?"Type a message...":"Connecting...",disabled:!o,className:"w-full bg-gray-800 border border-gray-700 rounded-xl px-4 py-3 text-sm text-white placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent disabled:opacity-50"})}),y.jsx("button",{onClick:S,disabled:!o||!t.trim(),className:"flex-shrink-0 bg-blue-600 hover:bg-blue-700 disabled:bg-gray-700 disabled:text-gray-500 text-white rounded-xl p-3 transition-colors",children:y.jsx(K2,{className:"h-5 w-5"})})]}),y.jsxs("div",{className:"flex items-center justify-center mt-2 gap-2",children:[y.jsx("span",{className:`inline-block h-2 w-2 rounded-full ${o?"bg-green-500":"bg-red-500"}`}),y.jsx("span",{className:"text-xs text-gray-500",children:o?"Connected":"Disconnected"})]})]})]})}function GT(){const[n,e]=M.useState([]),[t,i]=M.useState([]),[s,r]=M.useState(""),[o,u]=M.useState(null),[f,d]=M.useState(!0),[p,b]=M.useState(null);M.useEffect(()=>{Promise.all([uT(),ST()]).then(([S,A])=>{e(S),i(A)}).catch(S=>b(S.message)).finally(()=>d(!1))},[]);const x=n.filter(S=>S.name.toLowerCase().includes(s.toLowerCase())||S.description.toLowerCase().includes(s.toLowerCase())),w=t.filter(S=>S.name.toLowerCase().includes(s.toLowerCase())||S.category.toLowerCase().includes(s.toLowerCase()));return p?y.jsx("div",{className:"p-6",children:y.jsxs("div",{className:"rounded-lg bg-red-900/30 border border-red-700 p-4 text-red-300",children:["Failed to load tools: ",p]})}):f?y.jsx("div",{className:"flex items-center justify-center h-64",children:y.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-2 border-blue-500 border-t-transparent"})}):y.jsxs("div",{className:"p-6 space-y-6",children:[y.jsxs("div",{className:"relative max-w-md",children:[y.jsx(mh,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-500"}),y.jsx("input",{type:"text",value:s,onChange:S=>r(S.target.value),placeholder:"Search tools...",className:"w-full bg-gray-900 border border-gray-700 rounded-lg pl-10 pr-4 py-2.5 text-sm text-white placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent"})]}),y.jsxs("div",{children:[y.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[y.jsx(W2,{className:"h-5 w-5 text-blue-400"}),y.jsxs("h2",{className:"text-base font-semibold text-white",children:["Agent Tools (",x.length,")"]})]}),x.length===0?y.jsx("p",{className:"text-sm text-gray-500",children:"No tools match your search."}):y.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4",children:x.map(S=>{const A=o===S.name;return y.jsxs("div",{className:"bg-gray-900 rounded-xl border border-gray-800 overflow-hidden",children:[y.jsxs("button",{onClick:()=>u(A?null:S.name),className:"w-full text-left p-4 hover:bg-gray-800/50 transition-colors",children:[y.jsxs("div",{className:"flex items-start justify-between gap-2",children:[y.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[y.jsx(q3,{className:"h-4 w-4 text-blue-400 flex-shrink-0 mt-0.5"}),y.jsx("h3",{className:"text-sm font-semibold text-white truncate",children:S.name})]}),A?y.jsx(hh,{className:"h-4 w-4 text-gray-400 flex-shrink-0"}):y.jsx(L2,{className:"h-4 w-4 text-gray-400 flex-shrink-0"})]}),y.jsx("p",{className:"text-sm text-gray-400 mt-2 line-clamp-2",children:S.description})]}),A&&S.parameters&&y.jsxs("div",{className:"border-t border-gray-800 p-4",children:[y.jsx("p",{className:"text-xs text-gray-500 mb-2 font-medium uppercase tracking-wider",children:"Parameter Schema"}),y.jsx("pre",{className:"text-xs text-gray-300 bg-gray-950 rounded-lg p-3 overflow-x-auto max-h-64 overflow-y-auto",children:JSON.stringify(S.parameters,null,2)})]})]},S.name)})})]}),w.length>0&&y.jsxs("div",{children:[y.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[y.jsx(Z3,{className:"h-5 w-5 text-green-400"}),y.jsxs("h2",{className:"text-base font-semibold text-white",children:["CLI Tools (",w.length,")"]})]}),y.jsx("div",{className:"bg-gray-900 rounded-xl border border-gray-800 overflow-hidden",children:y.jsxs("table",{className:"w-full text-sm",children:[y.jsx("thead",{children:y.jsxs("tr",{className:"border-b border-gray-800",children:[y.jsx("th",{className:"text-left px-4 py-3 text-gray-400 font-medium",children:"Name"}),y.jsx("th",{className:"text-left px-4 py-3 text-gray-400 font-medium",children:"Path"}),y.jsx("th",{className:"text-left px-4 py-3 text-gray-400 font-medium",children:"Version"}),y.jsx("th",{className:"text-left px-4 py-3 text-gray-400 font-medium",children:"Category"})]})}),y.jsx("tbody",{children:w.map(S=>y.jsxs("tr",{className:"border-b border-gray-800/50 hover:bg-gray-800/30 transition-colors",children:[y.jsx("td",{className:"px-4 py-3 text-white font-medium",children:S.name}),y.jsx("td",{className:"px-4 py-3 text-gray-400 font-mono text-xs truncate max-w-[200px]",children:S.path}),y.jsx("td",{className:"px-4 py-3 text-gray-400",children:S.version??"-"}),y.jsx("td",{className:"px-4 py-3",children:y.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium bg-gray-800 text-gray-300 capitalize",children:S.category})})]},S.name))})]})})]})]})}function IT(n){return n?new Date(n).toLocaleString():"-"}function YT(){const[n,e]=M.useState([]),[t,i]=M.useState(!0),[s,r]=M.useState(null),[o,u]=M.useState(!1),[f,d]=M.useState(null),[p,b]=M.useState(""),[x,w]=M.useState(""),[S,A]=M.useState(""),[C,T]=M.useState(null),[R,E]=M.useState(!1),q=()=>{i(!0),hT().then(e).catch(Q=>r(Q.message)).finally(()=>i(!1))};M.useEffect(()=>{q()},[]);const B=async()=>{if(!x.trim()||!S.trim()){T("Schedule and command are required.");return}E(!0),T(null);try{const Q=await fT({name:p.trim()||void 0,schedule:x.trim(),command:S.trim()});e(Z=>[...Z,Q]),u(!1),b(""),w(""),A("")}catch(Q){T(Q instanceof Error?Q.message:"Failed to add job")}finally{E(!1)}},I=async Q=>{try{await dT(Q),e(Z=>Z.filter(ue=>ue.id!==Q))}catch(Z){r(Z instanceof Error?Z.message:"Failed to delete job")}finally{d(null)}},V=Q=>{if(!Q)return null;switch(Q.toLowerCase()){case"ok":case"success":return y.jsx(fh,{className:"h-4 w-4 text-green-400"});case"error":case"failed":return y.jsx(Fp,{className:"h-4 w-4 text-red-400"});default:return y.jsx(B2,{className:"h-4 w-4 text-yellow-400"})}};return s?y.jsx("div",{className:"p-6",children:y.jsxs("div",{className:"rounded-lg bg-red-900/30 border border-red-700 p-4 text-red-300",children:["Failed to load cron jobs: ",s]})}):t?y.jsx("div",{className:"flex items-center justify-center h-64",children:y.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-2 border-blue-500 border-t-transparent"})}):y.jsxs("div",{className:"p-6 space-y-6",children:[y.jsxs("div",{className:"flex items-center justify-between",children:[y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx(no,{className:"h-5 w-5 text-blue-400"}),y.jsxs("h2",{className:"text-base font-semibold text-white",children:["Scheduled Tasks (",n.length,")"]})]}),y.jsxs("button",{onClick:()=>u(!0),className:"flex items-center gap-2 bg-blue-600 hover:bg-blue-700 text-white text-sm font-medium px-4 py-2 rounded-lg transition-colors",children:[y.jsx(q2,{className:"h-4 w-4"}),"Add Job"]})]}),o&&y.jsx("div",{className:"fixed inset-0 bg-black/60 flex items-center justify-center z-50",children:y.jsxs("div",{className:"bg-gray-900 border border-gray-700 rounded-xl p-6 w-full max-w-md mx-4",children:[y.jsxs("div",{className:"flex items-center justify-between mb-4",children:[y.jsx("h3",{className:"text-lg font-semibold text-white",children:"Add Cron Job"}),y.jsx("button",{onClick:()=>{u(!1),T(null)},className:"text-gray-400 hover:text-white transition-colors",children:y.jsx(Mo,{className:"h-5 w-5"})})]}),C&&y.jsx("div",{className:"mb-4 rounded-lg bg-red-900/30 border border-red-700 p-3 text-sm text-red-300",children:C}),y.jsxs("div",{className:"space-y-4",children:[y.jsxs("div",{children:[y.jsx("label",{className:"block text-sm font-medium text-gray-300 mb-1",children:"Name (optional)"}),y.jsx("input",{type:"text",value:p,onChange:Q=>b(Q.target.value),placeholder:"e.g. Daily cleanup",className:"w-full bg-gray-800 border border-gray-700 rounded-lg px-3 py-2 text-sm text-white placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-500"})]}),y.jsxs("div",{children:[y.jsxs("label",{className:"block text-sm font-medium text-gray-300 mb-1",children:["Schedule ",y.jsx("span",{className:"text-red-400",children:"*"})]}),y.jsx("input",{type:"text",value:x,onChange:Q=>w(Q.target.value),placeholder:"e.g. 0 0 * * * (cron expression)",className:"w-full bg-gray-800 border border-gray-700 rounded-lg px-3 py-2 text-sm text-white placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-500"})]}),y.jsxs("div",{children:[y.jsxs("label",{className:"block text-sm font-medium text-gray-300 mb-1",children:["Command ",y.jsx("span",{className:"text-red-400",children:"*"})]}),y.jsx("input",{type:"text",value:S,onChange:Q=>A(Q.target.value),placeholder:"e.g. cleanup --older-than 7d",className:"w-full bg-gray-800 border border-gray-700 rounded-lg px-3 py-2 text-sm text-white placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-500"})]})]}),y.jsxs("div",{className:"flex justify-end gap-3 mt-6",children:[y.jsx("button",{onClick:()=>{u(!1),T(null)},className:"px-4 py-2 text-sm font-medium text-gray-300 hover:text-white border border-gray-700 rounded-lg hover:bg-gray-800 transition-colors",children:"Cancel"}),y.jsx("button",{onClick:B,disabled:R,className:"px-4 py-2 text-sm font-medium text-white bg-blue-600 hover:bg-blue-700 rounded-lg transition-colors disabled:opacity-50",children:R?"Adding...":"Add Job"})]})]})}),n.length===0?y.jsxs("div",{className:"bg-gray-900 rounded-xl border border-gray-800 p-8 text-center",children:[y.jsx(no,{className:"h-10 w-10 text-gray-600 mx-auto mb-3"}),y.jsx("p",{className:"text-gray-400",children:"No scheduled tasks configured."})]}):y.jsx("div",{className:"bg-gray-900 rounded-xl border border-gray-800 overflow-x-auto",children:y.jsxs("table",{className:"w-full text-sm",children:[y.jsx("thead",{children:y.jsxs("tr",{className:"border-b border-gray-800",children:[y.jsx("th",{className:"text-left px-4 py-3 text-gray-400 font-medium",children:"ID"}),y.jsx("th",{className:"text-left px-4 py-3 text-gray-400 font-medium",children:"Name"}),y.jsx("th",{className:"text-left px-4 py-3 text-gray-400 font-medium",children:"Command"}),y.jsx("th",{className:"text-left px-4 py-3 text-gray-400 font-medium",children:"Next Run"}),y.jsx("th",{className:"text-left px-4 py-3 text-gray-400 font-medium",children:"Last Status"}),y.jsx("th",{className:"text-left px-4 py-3 text-gray-400 font-medium",children:"Enabled"}),y.jsx("th",{className:"text-right px-4 py-3 text-gray-400 font-medium",children:"Actions"})]})}),y.jsx("tbody",{children:n.map(Q=>y.jsxs("tr",{className:"border-b border-gray-800/50 hover:bg-gray-800/30 transition-colors",children:[y.jsx("td",{className:"px-4 py-3 text-gray-400 font-mono text-xs",children:Q.id.slice(0,8)}),y.jsx("td",{className:"px-4 py-3 text-white font-medium",children:Q.name??"-"}),y.jsx("td",{className:"px-4 py-3 text-gray-300 font-mono text-xs max-w-[200px] truncate",children:Q.command}),y.jsx("td",{className:"px-4 py-3 text-gray-400 text-xs",children:IT(Q.next_run)}),y.jsx("td",{className:"px-4 py-3",children:y.jsxs("div",{className:"flex items-center gap-1.5",children:[V(Q.last_status),y.jsx("span",{className:"text-gray-300 text-xs capitalize",children:Q.last_status??"-"})]})}),y.jsx("td",{className:"px-4 py-3",children:y.jsx("span",{className:`inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium ${Q.enabled?"bg-green-900/40 text-green-400 border border-green-700/50":"bg-gray-800 text-gray-500 border border-gray-700"}`,children:Q.enabled?"Enabled":"Disabled"})}),y.jsx("td",{className:"px-4 py-3 text-right",children:f===Q.id?y.jsxs("div",{className:"flex items-center justify-end gap-2",children:[y.jsx("span",{className:"text-xs text-red-400",children:"Delete?"}),y.jsx("button",{onClick:()=>I(Q.id),className:"text-red-400 hover:text-red-300 text-xs font-medium",children:"Yes"}),y.jsx("button",{onClick:()=>d(null),className:"text-gray-400 hover:text-white text-xs font-medium",children:"No"})]}):y.jsx("button",{onClick:()=>d(Q.id),className:"text-gray-400 hover:text-red-400 transition-colors",children:y.jsx(Y2,{className:"h-4 w-4"})})})]},Q.id))})]})})]})}const fx=[{id:"bluebubbles",name:"BlueBubbles",supportLevel:"Built-in",recommended:!0,summary:"Recommended for iMessage with BlueBubbles macOS server REST API.",details:"Supports edit, unsend, effects, reactions, and group management. Edit is currently broken on macOS 26 Tahoe."},{id:"discord",name:"Discord",supportLevel:"Built-in",summary:"Discord Bot API + Gateway for servers, channels, and direct messages."},{id:"feishu",name:"Feishu",supportLevel:"Plugin",summary:"Feishu/Lark bot integration over WebSocket.",details:"Plugin track, installed separately."},{id:"google-chat",name:"Google Chat",supportLevel:"Built-in",summary:"Google Chat app integration via HTTP webhook."},{id:"imessage-legacy",name:"iMessage (legacy)",supportLevel:"Legacy",summary:"Legacy macOS integration via imsg CLI.",details:"Deprecated path for new setups; BlueBubbles is recommended."},{id:"irc",name:"IRC",supportLevel:"Built-in",summary:"Classic IRC channels and DMs with pairing and allowlist controls."},{id:"line",name:"LINE",supportLevel:"Plugin",summary:"LINE Messaging API bot integration.",details:"Plugin track, installed separately."},{id:"matrix",name:"Matrix",supportLevel:"Plugin",summary:"Matrix protocol integration for rooms and direct messaging.",details:"Plugin track, installed separately."},{id:"mattermost",name:"Mattermost",supportLevel:"Plugin",summary:"Bot API + WebSocket for channels, groups, and DMs.",details:"Plugin track, installed separately."},{id:"microsoft-teams",name:"Microsoft Teams",supportLevel:"Plugin",summary:"Enterprise support track for Teams environments.",details:"Plugin track, installed separately."},{id:"nextcloud-talk",name:"Nextcloud Talk",supportLevel:"Plugin",summary:"Self-hosted chat via Nextcloud Talk integration.",details:"Plugin track, installed separately."},{id:"nostr",name:"Nostr",supportLevel:"Plugin",summary:"Decentralized encrypted DMs via NIP-04 and modern NIP flows.",details:"Plugin track, installed separately."},{id:"signal",name:"Signal",supportLevel:"Built-in",summary:"Privacy-focused messaging through signal-cli."},{id:"synology-chat",name:"Synology Chat",supportLevel:"Plugin",summary:"Synology NAS Chat via outgoing and incoming webhooks.",details:"Plugin track, installed separately."},{id:"slack",name:"Slack",supportLevel:"Built-in",summary:"Slack workspace apps powered by Bolt SDK."},{id:"telegram",name:"Telegram",supportLevel:"Built-in",summary:"Bot API integration via grammY with strong group support."},{id:"tlon",name:"Tlon",supportLevel:"Plugin",summary:"Urbit-based messenger integration path.",details:"Plugin track, installed separately."},{id:"twitch",name:"Twitch",supportLevel:"Plugin",summary:"Twitch chat support over IRC connection.",details:"Plugin track, installed separately."},{id:"webchat",name:"WebChat",supportLevel:"Built-in",summary:"Gateway WebChat UI over WebSocket for browser-based sessions."},{id:"whatsapp",name:"WhatsApp",supportLevel:"Built-in",summary:"Baileys-backed integration with QR pairing flow."},{id:"zalo",name:"Zalo",supportLevel:"Plugin",summary:"Zalo Bot API for Vietnam's popular messenger ecosystem.",details:"Plugin track, installed separately."},{id:"zalo-personal",name:"Zalo Personal",supportLevel:"Plugin",summary:"Personal account integration with QR login.",details:"Plugin track, installed separately."}],WT=["Channels can run simultaneously; configure multiple and ZeroClaw routes per chat.","Fastest initial setup is usually Telegram with a simple bot token.","WhatsApp requires local state on disk for persistent sessions.","Group behavior varies by channel. See docs/channels-reference.md for policy details.","DM pairing and allowlists are enforced for safety. See docs/security/README.md.","Troubleshooting lives in docs/troubleshooting.md under channel guidance.","Model providers are documented separately in docs/providers-reference.md."],FT={"Built-in":"border-[#2f63c8] bg-[#0a265f]/70 text-[#acd0ff]",Plugin:"border-[#2f5ea0] bg-[#071a41]/80 text-[#8eb8f4]",Legacy:"border-[#5f6080] bg-[#141731]/80 text-[#c2c5e8]"};function XT(){const[n,e]=M.useState(!0);return y.jsxs("section",{className:"electric-card motion-rise",children:[y.jsxs("button",{type:"button",onClick:()=>e(t=>!t),"aria-expanded":n,className:"group flex w-full items-center justify-between gap-4 rounded-xl px-4 py-4 text-left md:px-5",children:[y.jsxs("div",{className:"flex items-center gap-3",children:[y.jsx("div",{className:"electric-icon h-10 w-10 rounded-xl",children:y.jsx(B3,{className:"h-5 w-5"})}),y.jsxs("div",{children:[y.jsx("h2",{className:"text-base font-semibold text-white",children:"Supported Chat Channels"}),y.jsxs("p",{className:"text-xs uppercase tracking-[0.13em] text-[#7ea5eb]",children:[fx.length," channels listed"]})]})]}),y.jsx(hh,{className:["h-5 w-5 text-[#7ea5eb] transition-transform duration-300",n?"rotate-180":"rotate-0"].join(" ")})]}),n&&y.jsxs("div",{className:"border-t border-[#18356f] px-4 pb-5 pt-4 md:px-5",children:[y.jsx("div",{className:"rounded-xl border border-[#1e3a78] bg-[#07142f]/85 p-3 md:p-4",children:y.jsx("p",{className:"text-sm leading-relaxed text-[#c8dcff]",children:"ZeroClaw can talk to you on the chat apps you already use through Gateway. Text is supported across all channels; media and reactions vary by channel."})}),y.jsx("div",{className:"mt-4 grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-3",children:fx.map(t=>y.jsxs("article",{className:"rounded-xl border border-[#1f3d76] bg-[#060f25]/85 p-3 shadow-[0_0_22px_-15px_rgba(80,176,255,0.9)]",children:[y.jsxs("div",{className:"flex items-start justify-between gap-2",children:[y.jsx("h3",{className:"text-sm font-semibold text-white",children:t.name}),y.jsx("span",{className:["inline-flex items-center rounded-full border px-2 py-0.5 text-[11px] font-medium",FT[t.supportLevel]].join(" "),children:t.supportLevel})]}),y.jsx("p",{className:"mt-2 text-xs leading-relaxed text-[#97baee]",children:t.summary}),t.details&&y.jsx("p",{className:"mt-2 text-[11px] leading-relaxed text-[#7ca6de]",children:t.details}),t.recommended&&y.jsxs("p",{className:"mt-2 inline-flex items-center gap-1 text-[11px] text-[#cfe3ff]",children:[y.jsx($p,{className:"h-3 w-3"}),"Recommended"]})]},t.id))}),y.jsxs("div",{className:"mt-4 rounded-xl border border-[#1b3770] bg-[#061129]/85 p-3 md:p-4",children:[y.jsx("h3",{className:"text-sm font-semibold text-white",children:"Channel Notes"}),y.jsx("ul",{className:"mt-2 space-y-1.5 text-xs leading-relaxed text-[#9bbce8]",children:WT.map(t=>y.jsxs("li",{children:["• ",t]},t))})]})]})]})}function QT(n){switch(n){case"Active":return{icon:w3,label:"Active",classes:"bg-green-900/40 text-green-400 border-green-700/50"};case"Available":return{icon:nT,label:"Available",classes:"bg-blue-900/40 text-blue-400 border-blue-700/50"};case"ComingSoon":return{icon:no,label:"Coming Soon",classes:"bg-gray-800 text-gray-400 border-gray-700"}}}function dx(n){return n&&n.replace(/([a-z])([A-Z])/g,"$1 $2").replace(/Ai/g,"AI")}const Lr="__keep__",tu="__custom__",mx="__clear__",ZT={openrouter:["anthropic/claude-sonnet-4-6","openai/gpt-5.2","google/gemini-3.1-pro"],anthropic:["claude-sonnet-4-6","claude-opus-4-6"],openai:["gpt-5.2","gpt-5.2-codex","gpt-4o"],google:["google/gemini-3.1-pro","google/gemini-3-flash","google/gemini-2.5-pro"],deepseek:["deepseek/deepseek-reasoner","deepseek/deepseek-chat"],xai:["x-ai/grok-4","x-ai/grok-3"],mistral:["mistral-large-latest","codestral-latest","mistral-small-latest"],perplexity:["sonar-pro","sonar-reasoning-pro","sonar"],vercel:["openai/gpt-5.2","anthropic/claude-sonnet-4-6","google/gemini-3.1-pro"],bedrock:["anthropic.claude-sonnet-4-5-20250929-v1:0","anthropic.claude-opus-4-6-v1:0"],groq:["llama-3.3-70b-versatile","mixtral-8x7b-32768"],together:["meta-llama/Llama-3.3-70B-Instruct-Turbo","Qwen/Qwen2.5-72B-Instruct-Turbo","deepseek-ai/DeepSeek-R1-Distill-Llama-70B"],cohere:["command-r-plus-08-2024","command-r-08-2024"]};function px(n){return n==="openrouter"||n==="vercel"?"Format: anthropic/claude-sonnet-4-6":"Format: claude-sonnet-4-6 (or provider/model when required)"}function Br(n,e){var t;return e.key!=="default_model"?e.options??[]:(t=e.options)!=null&&t.length?e.options:ZT[n]??[]}function $T(){const[n,e]=M.useState([]),[t,i]=M.useState({}),[s,r]=M.useState(""),[o,u]=M.useState(!0),[f,d]=M.useState(null),[p,b]=M.useState("all"),[x,w]=M.useState(null),[S,A]=M.useState({}),[C,T]=M.useState({}),[R,E]=M.useState({}),[q,B]=M.useState(!1),[I,V]=M.useState(null),[Q,Z]=M.useState(null),[ue,fe]=M.useState(null),[ne,pe]=M.useState(null),[J,ve]=M.useState({}),[z,K]=M.useState(null),[$,ie]=M.useState(null),ge=te=>te.fields.reduce((be,ke)=>(Br(te.id,ke).length>0?be[ke.key]=ke.has_value?Lr:"":be[ke.key]="",be),{}),D=te=>te.fields.find(be=>be.key==="default_model"),P=te=>{const be=D(te);return be?Br(te.id,be)[0]??null:null},ee=(te,be)=>{var ct,Ie,me;if(be&&((ct=ue==null?void 0:ue.model)!=null&&ct.trim()))return ue.model.trim();const ke=(me=(Ie=D(te))==null?void 0:Ie.current_value)==null?void 0:me.trim();return ke||null},ae=Object.values(t).find(te=>te.id===ne),ye=async(te=!0)=>{te&&u(!0),d(null);try{const[be,ke,ct]=await Promise.all([mT(),pT(),$2().catch(()=>null)]),Ie=ke.integrations.reduce((me,et)=>(me[et.name]=et,me),{});return e(be),r(ke.revision),i(Ie),pe(ke.active_default_provider_integration_id??null),fe(ct?{model:ct.model}:null),Ie}catch(be){return d(be instanceof Error?be.message:"Failed to load integrations"),pe(null),fe(null),null}finally{te&&u(!1)}};M.useEffect(()=>{ye()},[]),M.useEffect(()=>{if(!Q)return;const te=setTimeout(()=>Z(null),4e3);return()=>clearTimeout(te)},[Q]),M.useEffect(()=>{if(!x)return;const te=be=>{be.key==="Escape"&&Ee()};return window.addEventListener("keydown",te),()=>window.removeEventListener("keydown",te)},[x,q]);const Ce=te=>{w(te),A(ge(te)),T({}),E({}),V(null)},Ee=()=>{q||(w(null),A({}),T({}),E({}),V(null))},Mt=(te,be)=>{A(ke=>({...ke,[te]:be})),E(ke=>({...ke,[te]:!0}))},ot=(te,be)=>{T(ke=>({...ke,[te]:be})),E(ke=>({...ke,[te]:!0}))},Hl=async()=>{if(!x)return;V(null),ie(null);const te={};for(const be of x.fields){const ke=S[be.key]??"",ct=!!R[be.key],Ie=Br(x.id,be).length>0;let me=ke;if(Ie)if(ke===Lr){if(be.required&&!be.has_value){V(`${be.label} is required.`);return}if(ct)continue}else ke===tu?me=C[be.key]??"":ke===mx&&(me="");const et=me.trim();if(Ie&&ke===tu&&!et){V(`Enter a custom value for ${be.label} or choose a recommended model.`);return}if(be.required&&!et&&!be.has_value){V(`${be.label} is required.`);return}if(ct){if(Ie&&ke===Lr)continue;te[be.key]=me}}if(Object.keys(te).length===0&&!x.activates_default_provider){V("No changes to save.");return}if(x.activates_default_provider&&ne&&x.id!==ne){const be=(ae==null?void 0:ae.name)??"current provider";if(!window.confirm(`Switch default AI provider from ${be} to ${x.name}?`))return}B(!0);try{await ax(x.id,{revision:s,fields:te}),await ye(!1),Z(`${x.name} credentials saved.`),Ee()}catch(be){const ke=be instanceof Error?be.message:"Failed to save credentials";if(ke.includes("API 409")){const ct=await ye(!1);if(ct){const Ie=ct[x.name];Ie&&(w(Ie),A(ge(Ie)),T({}),E({}))}V("Configuration changed elsewhere. Refreshed latest settings; re-enter values and save again.")}else V(ke)}finally{B(!1)}},ks=async(te,be,ke,ct)=>{const Ie=be.trim();if(!(!Ie||Ie===ke)){if(ne&&!ct&&te.id!==ne){const me=(ae==null?void 0:ae.name)??"current provider";if(!window.confirm(`Switch default AI provider from ${me} to ${te.name} and set model to ${Ie}?`))return}K(te.id),ie(null),V(null);try{await ax(te.id,{revision:s,fields:{default_model:Ie}}),await ye(!1),Z(`Model updated to ${Ie} for ${te.name}.`),ve(me=>{const et={...me};return delete et[te.id],et})}catch(me){const et=me instanceof Error?me.message:"Failed to update model";et.includes("API 409")?(await ye(!1),ie("Configuration changed elsewhere. Refreshed latest settings; choose the model again.")):ie(et)}finally{K(null)}}},Ha=["all",...Array.from(new Set(n.map(te=>te.category))).sort()],ei=(p==="all"?n:n.filter(te=>te.category===p)).reduce((te,be)=>{const ke=be.category;return te[ke]||(te[ke]=[]),te[ke].push(be),te},{});return f?y.jsx("div",{className:"p-6",children:y.jsxs("div",{className:"rounded-lg bg-red-900/30 border border-red-700 p-4 text-red-300",children:["Failed to load integrations: ",f]})}):o?y.jsx("div",{className:"flex items-center justify-center h-64",children:y.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-2 border-blue-500 border-t-transparent"})}):y.jsxs("div",{className:"p-6 space-y-6",children:[y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx(io,{className:"h-5 w-5 text-blue-400"}),y.jsxs("h2",{className:"text-base font-semibold text-white",children:["Integrations (",n.length,")"]})]}),Q&&y.jsx("div",{className:"rounded-lg bg-green-900/30 border border-green-700 p-3 text-sm text-green-300",children:Q}),$&&y.jsx("div",{className:"rounded-lg bg-red-900/30 border border-red-700 p-3 text-sm text-red-300",children:$}),y.jsx(XT,{}),y.jsx("div",{className:"flex flex-wrap gap-2",children:Ha.map(te=>y.jsx("button",{onClick:()=>b(te),className:`px-3 py-1.5 rounded-lg text-sm font-medium transition-colors capitalize ${p===te?"bg-blue-600 text-white":"bg-gray-900 text-gray-400 border border-gray-700 hover:bg-gray-800 hover:text-white"}`,children:te==="all"?"All":dx(te)},te))}),Object.keys(ei).length===0?y.jsxs("div",{className:"bg-gray-900 rounded-xl border border-gray-800 p-8 text-center",children:[y.jsx(io,{className:"h-10 w-10 text-gray-600 mx-auto mb-3"}),y.jsx("p",{className:"text-gray-400",children:"No integrations found."})]}):Object.entries(ei).sort(([te],[be])=>te.localeCompare(be)).map(([te,be])=>y.jsxs("div",{children:[y.jsx("h3",{className:"text-sm font-semibold text-gray-400 uppercase tracking-wider mb-3 capitalize",children:dx(te)}),y.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4",children:be.map(ke=>{const ct=QT(ke.status),Ie=ct.icon,me=t[ke.name],et=!!(me!=null&&me.activates_default_provider),ti=!!me&&et&&me.id===ne,Vl=me?D(me):void 0,St=me&&Vl?Br(me.id,Vl):[],Tt=me&&et?ee(me,ti):null,Cs=me&&et?P(me):null,Va=Tt||(Cs?`default: ${Cs}`:"default"),$i=Tt??Cs??"",As=me?J[me.id]??$i:"",Ua=[...Tt&&!St.includes(Tt)?[Tt]:[],...St],Rh=!!me&&me.configured&&et&&Ua.length>0;return y.jsxs("div",{className:`bg-gray-900 rounded-xl border p-5 transition-colors ${ti?"border-green-700/70 bg-gradient-to-b from-green-950/20 to-gray-900":"border-gray-800 hover:border-gray-700"}`,children:[y.jsxs("div",{className:"flex items-start justify-between gap-3",children:[y.jsxs("div",{className:"min-w-0",children:[y.jsx("h4",{className:"text-sm font-semibold text-white truncate",children:ke.name}),y.jsx("p",{className:"text-sm text-gray-400 mt-1 line-clamp-2",children:ke.description})]}),y.jsxs("div",{className:"flex items-center gap-1.5 flex-wrap justify-end",children:[et&&(me==null?void 0:me.configured)&&y.jsx("span",{className:`flex-shrink-0 inline-flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium border ${ti?"bg-emerald-900/40 text-emerald-300 border-emerald-700/60":"bg-gray-800 text-gray-300 border-gray-700"}`,children:ti?"Default":"Configured"}),y.jsxs("span",{className:`flex-shrink-0 inline-flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium border ${ct.classes}`,children:[y.jsx(Ie,{className:"h-3 w-3"}),ct.label]})]})]}),me&&et&&me.configured&&y.jsxs("div",{className:"mt-3 rounded-lg border border-gray-800 bg-gray-950/50 p-3 space-y-2",children:[y.jsxs("div",{className:"flex items-center justify-between gap-2",children:[y.jsx("span",{className:"text-[11px] uppercase tracking-wider text-gray-500",children:"Current model"}),y.jsx("span",{className:"text-xs text-gray-200 truncate",title:Va,children:Va})]}),Rh&&me&&y.jsxs("div",{className:"space-y-1",children:[y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx("select",{value:As,onChange:Ul=>ve(ql=>({...ql,[me.id]:Ul.target.value})),disabled:z===me.id,className:"min-w-0 flex-1 px-2.5 py-1.5 rounded-lg bg-gray-950 border border-gray-700 text-xs text-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent disabled:opacity-50",children:Ua.map(Ul=>y.jsx("option",{value:Ul,children:Ul},Ul))}),y.jsx("button",{onClick:()=>me&&void ks(me,As,$i,ti),disabled:z===me.id||!As||As===$i,className:"px-2.5 py-1.5 rounded-lg text-xs font-medium bg-blue-600 hover:bg-blue-700 text-white transition-colors disabled:opacity-50",children:z===me.id?"Saving...":"Apply"})]}),y.jsx("p",{className:"text-[11px] text-gray-500",children:"For custom model IDs, use Edit Keys."})]})]}),me&&y.jsxs("div",{className:"mt-4 pt-4 border-t border-gray-800 flex items-center justify-between gap-3",children:[y.jsx("div",{className:"text-xs text-gray-400",children:me.configured?me.activates_default_provider?ti?"Default provider configured":"Provider configured":"Credentials configured":"Credentials not configured"}),y.jsxs("button",{onClick:()=>Ce(me),className:"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg border border-blue-700/70 bg-blue-900/30 hover:bg-blue-900/50 text-blue-300 text-xs font-medium transition-colors",children:[y.jsx(V2,{className:"h-3.5 w-3.5"}),me.configured?"Edit Keys":"Configure"]})]})]},ke.name)})})]},te)),x&&y.jsx("div",{className:"fixed inset-0 z-50 bg-black/70 flex items-center justify-center p-4",onMouseDown:te=>{te.target===te.currentTarget&&Ee()},children:y.jsxs("div",{className:"w-full max-w-lg bg-gray-900 border border-gray-800 rounded-xl shadow-xl",children:[y.jsxs("div",{className:"px-5 py-4 border-b border-gray-800 flex items-center justify-between gap-3",children:[y.jsxs("div",{children:[y.jsxs("h3",{className:"text-sm font-semibold text-white",children:["Configure ",x.name]}),y.jsx("p",{className:"text-xs text-gray-400 mt-0.5",children:x.configured?"Enter only fields you want to update.":"Enter required fields to configure this integration."})]}),y.jsx("button",{onClick:Ee,disabled:q,className:"text-gray-400 hover:text-white transition-colors disabled:opacity-50","aria-label":"Close",children:y.jsx(Mo,{className:"h-4 w-4"})})]}),y.jsxs("div",{className:"p-5 space-y-4",children:[x.activates_default_provider&&y.jsxs("div",{className:"rounded-lg border border-blue-800 bg-blue-950/30 p-3 text-xs text-blue-200",children:["Saving here updates credentials and switches your default AI provider to"," ",y.jsx("strong",{children:x.name}),". For advanced provider settings, use"," ",y.jsx(Wp,{to:"/config",className:"underline underline-offset-2 hover:text-blue-100",children:"Configuration"}),"."]}),x.fields.map(te=>(()=>{var Vl,St;const be=Br(x.id,te),ke=be.length>0,ct=te.input_type==="secret",Ie=ct?te.masked_value||(te.has_value?"••••••••":void 0):void 0,me=x.activates_default_provider&&x.id===ne,et=((Vl=te.current_value)==null?void 0:Vl.trim())||me&&((St=ue==null?void 0:ue.model)==null?void 0:St.trim())||"",ti=et?`Keep current model (${et})`:"Keep current model";return y.jsxs("div",{children:[y.jsxs("label",{className:"flex items-center gap-2 text-sm font-medium text-gray-300 mb-1.5",children:[y.jsx("span",{children:te.label}),te.required&&y.jsx("span",{className:"text-red-400",children:"*"}),te.has_value&&y.jsx("span",{className:"text-[11px] text-green-400 bg-green-900/30 border border-green-800 px-1.5 py-0.5 rounded",children:"Configured"})]}),ke?y.jsxs("div",{className:"space-y-2",children:[y.jsxs("select",{value:S[te.key]??(te.has_value?Lr:""),onChange:Tt=>Mt(te.key,Tt.target.value),className:"w-full px-3 py-2 rounded-lg bg-gray-950 border border-gray-700 text-sm text-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent",children:[te.has_value?y.jsx("option",{value:Lr,children:ti}):y.jsx("option",{value:"",disabled:!0,children:"Select a recommended model"}),be.map(Tt=>y.jsx("option",{value:Tt,children:Tt},Tt)),y.jsx("option",{value:tu,children:"Custom model..."}),te.has_value&&y.jsx("option",{value:mx,children:"Clear current model"})]}),S[te.key]===tu&&y.jsx("input",{type:"text",value:C[te.key]??"",onChange:Tt=>ot(te.key,Tt.target.value),placeholder:px(x.id),className:"w-full px-3 py-2 rounded-lg bg-gray-950 border border-gray-700 text-sm text-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent"}),y.jsxs("p",{className:"text-[11px] text-gray-500",children:["Pick a recommended model or choose Custom model. ",px(x.id),"."]})]}):y.jsxs("div",{className:"space-y-2",children:[Ie&&y.jsxs("p",{className:"text-[11px] text-gray-500",children:["Current value: ",y.jsx("span",{className:"font-mono text-gray-300",children:Ie})]}),y.jsx("input",{type:ct?"password":"text",value:S[te.key]??"",onChange:Tt=>Mt(te.key,Tt.target.value),placeholder:te.required?te.has_value?"Enter a new value to replace current":"Enter value":te.has_value?"Type new value, or leave empty to keep current":"Optional",className:"w-full px-3 py-2 rounded-lg bg-gray-950 border border-gray-700 text-sm text-gray-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent"})]})]},te.key)})()),I&&y.jsx("div",{className:"rounded-lg bg-red-900/30 border border-red-700 p-3 text-sm text-red-300",children:I})]}),y.jsxs("div",{className:"px-5 py-4 border-t border-gray-800 flex items-center justify-end gap-2",children:[y.jsx("button",{onClick:Ee,disabled:q,className:"px-4 py-2 rounded-lg text-sm border border-gray-700 text-gray-300 hover:bg-gray-800 transition-colors disabled:opacity-50",children:"Cancel"}),y.jsx("button",{onClick:Hl,disabled:q,className:"px-4 py-2 rounded-lg text-sm font-medium bg-blue-600 hover:bg-blue-700 text-white transition-colors disabled:opacity-50",children:q?"Saving...":x.activates_default_provider?"Save & Activate":"Save Keys"})]})]})})]})}function JT(n,e){return n.length<=e?n:n.slice(0,e)+"..."}function eN(n){return new Date(n).toLocaleString()}function tN(){const[n,e]=M.useState([]),[t,i]=M.useState(!0),[s,r]=M.useState(null),[o,u]=M.useState(""),[f,d]=M.useState(""),[p,b]=M.useState(!1),[x,w]=M.useState(null),[S,A]=M.useState(""),[C,T]=M.useState(""),[R,E]=M.useState(""),[q,B]=M.useState(null),[I,V]=M.useState(!1),Q=(J,ve)=>{i(!0),yT(J||void 0,ve||void 0).then(e).catch(z=>r(z.message)).finally(()=>i(!1))};M.useEffect(()=>{Q()},[]);const Z=()=>{Q(o,f)},ue=J=>{J.key==="Enter"&&Z()},fe=Array.from(new Set(n.map(J=>J.category))).sort(),ne=async()=>{if(!S.trim()||!C.trim()){B("Key and content are required.");return}V(!0),B(null);try{await bT(S.trim(),C.trim(),R.trim()||void 0),Q(o,f),b(!1),A(""),T(""),E("")}catch(J){B(J instanceof Error?J.message:"Failed to store memory")}finally{V(!1)}},pe=async J=>{try{await xT(J),e(ve=>ve.filter(z=>z.key!==J))}catch(ve){r(ve instanceof Error?ve.message:"Failed to delete memory")}finally{w(null)}};return s&&n.length===0?y.jsx("div",{className:"p-6",children:y.jsxs("div",{className:"rounded-lg bg-red-900/30 border border-red-700 p-4 text-red-300",children:["Failed to load memory: ",s]})}):y.jsxs("div",{className:"p-6 space-y-6",children:[y.jsxs("div",{className:"flex items-center justify-between",children:[y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx(Vm,{className:"h-5 w-5 text-blue-400"}),y.jsxs("h2",{className:"text-base font-semibold text-white",children:["Memory (",n.length,")"]})]}),y.jsxs("button",{onClick:()=>b(!0),className:"flex items-center gap-2 bg-blue-600 hover:bg-blue-700 text-white text-sm font-medium px-4 py-2 rounded-lg transition-colors",children:[y.jsx(q2,{className:"h-4 w-4"}),"Add Memory"]})]}),y.jsxs("div",{className:"flex flex-col sm:flex-row gap-3",children:[y.jsxs("div",{className:"relative flex-1",children:[y.jsx(mh,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-500"}),y.jsx("input",{type:"text",value:o,onChange:J=>u(J.target.value),onKeyDown:ue,placeholder:"Search memory entries...",className:"w-full bg-gray-900 border border-gray-700 rounded-lg pl-10 pr-4 py-2.5 text-sm text-white placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-500"})]}),y.jsxs("div",{className:"relative",children:[y.jsx(Xp,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-500"}),y.jsxs("select",{value:f,onChange:J=>d(J.target.value),className:"bg-gray-900 border border-gray-700 rounded-lg pl-10 pr-8 py-2.5 text-sm text-white appearance-none focus:outline-none focus:ring-2 focus:ring-blue-500 cursor-pointer",children:[y.jsx("option",{value:"",children:"All Categories"}),fe.map(J=>y.jsx("option",{value:J,children:J},J))]})]}),y.jsx("button",{onClick:Z,className:"px-4 py-2.5 bg-blue-600 hover:bg-blue-700 text-white text-sm font-medium rounded-lg transition-colors",children:"Search"})]}),s&&y.jsx("div",{className:"rounded-lg bg-red-900/30 border border-red-700 p-3 text-sm text-red-300",children:s}),p&&y.jsx("div",{className:"fixed inset-0 bg-black/60 flex items-center justify-center z-50",children:y.jsxs("div",{className:"bg-gray-900 border border-gray-700 rounded-xl p-6 w-full max-w-md mx-4",children:[y.jsxs("div",{className:"flex items-center justify-between mb-4",children:[y.jsx("h3",{className:"text-lg font-semibold text-white",children:"Add Memory"}),y.jsx("button",{onClick:()=>{b(!1),B(null)},className:"text-gray-400 hover:text-white transition-colors",children:y.jsx(Mo,{className:"h-5 w-5"})})]}),q&&y.jsx("div",{className:"mb-4 rounded-lg bg-red-900/30 border border-red-700 p-3 text-sm text-red-300",children:q}),y.jsxs("div",{className:"space-y-4",children:[y.jsxs("div",{children:[y.jsxs("label",{className:"block text-sm font-medium text-gray-300 mb-1",children:["Key ",y.jsx("span",{className:"text-red-400",children:"*"})]}),y.jsx("input",{type:"text",value:S,onChange:J=>A(J.target.value),placeholder:"e.g. user_preferences",className:"w-full bg-gray-800 border border-gray-700 rounded-lg px-3 py-2 text-sm text-white placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-500"})]}),y.jsxs("div",{children:[y.jsxs("label",{className:"block text-sm font-medium text-gray-300 mb-1",children:["Content ",y.jsx("span",{className:"text-red-400",children:"*"})]}),y.jsx("textarea",{value:C,onChange:J=>T(J.target.value),placeholder:"Memory content...",rows:4,className:"w-full bg-gray-800 border border-gray-700 rounded-lg px-3 py-2 text-sm text-white placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-500 resize-none"})]}),y.jsxs("div",{children:[y.jsx("label",{className:"block text-sm font-medium text-gray-300 mb-1",children:"Category (optional)"}),y.jsx("input",{type:"text",value:R,onChange:J=>E(J.target.value),placeholder:"e.g. preferences, context, facts",className:"w-full bg-gray-800 border border-gray-700 rounded-lg px-3 py-2 text-sm text-white placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-500"})]})]}),y.jsxs("div",{className:"flex justify-end gap-3 mt-6",children:[y.jsx("button",{onClick:()=>{b(!1),B(null)},className:"px-4 py-2 text-sm font-medium text-gray-300 hover:text-white border border-gray-700 rounded-lg hover:bg-gray-800 transition-colors",children:"Cancel"}),y.jsx("button",{onClick:ne,disabled:I,className:"px-4 py-2 text-sm font-medium text-white bg-blue-600 hover:bg-blue-700 rounded-lg transition-colors disabled:opacity-50",children:I?"Saving...":"Save"})]})]})}),t?y.jsx("div",{className:"flex items-center justify-center h-32",children:y.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-2 border-blue-500 border-t-transparent"})}):n.length===0?y.jsxs("div",{className:"bg-gray-900 rounded-xl border border-gray-800 p-8 text-center",children:[y.jsx(Vm,{className:"h-10 w-10 text-gray-600 mx-auto mb-3"}),y.jsx("p",{className:"text-gray-400",children:"No memory entries found."})]}):y.jsx("div",{className:"bg-gray-900 rounded-xl border border-gray-800 overflow-x-auto",children:y.jsxs("table",{className:"w-full text-sm",children:[y.jsx("thead",{children:y.jsxs("tr",{className:"border-b border-gray-800",children:[y.jsx("th",{className:"text-left px-4 py-3 text-gray-400 font-medium",children:"Key"}),y.jsx("th",{className:"text-left px-4 py-3 text-gray-400 font-medium",children:"Content"}),y.jsx("th",{className:"text-left px-4 py-3 text-gray-400 font-medium",children:"Category"}),y.jsx("th",{className:"text-left px-4 py-3 text-gray-400 font-medium",children:"Timestamp"}),y.jsx("th",{className:"text-right px-4 py-3 text-gray-400 font-medium",children:"Actions"})]})}),y.jsx("tbody",{children:n.map(J=>y.jsxs("tr",{className:"border-b border-gray-800/50 hover:bg-gray-800/30 transition-colors",children:[y.jsx("td",{className:"px-4 py-3 text-white font-medium font-mono text-xs",children:J.key}),y.jsx("td",{className:"px-4 py-3 text-gray-300 max-w-[300px]",children:y.jsx("span",{title:J.content,children:JT(J.content,80)})}),y.jsx("td",{className:"px-4 py-3",children:y.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium bg-gray-800 text-gray-300 capitalize",children:J.category})}),y.jsx("td",{className:"px-4 py-3 text-gray-400 text-xs whitespace-nowrap",children:eN(J.timestamp)}),y.jsx("td",{className:"px-4 py-3 text-right",children:x===J.key?y.jsxs("div",{className:"flex items-center justify-end gap-2",children:[y.jsx("span",{className:"text-xs text-red-400",children:"Delete?"}),y.jsx("button",{onClick:()=>pe(J.key),className:"text-red-400 hover:text-red-300 text-xs font-medium",children:"Yes"}),y.jsx("button",{onClick:()=>w(null),className:"text-gray-400 hover:text-white text-xs font-medium",children:"No"})]}):y.jsx("button",{onClick:()=>w(J.key),className:"text-gray-400 hover:text-red-400 transition-colors",children:y.jsx(Y2,{className:"h-4 w-4"})})})]},J.id))})]})})]})}function gx(n){if(!n)return"Unknown";const e=new Date(n);return Number.isNaN(e.getTime())?n:e.toLocaleString()}function nN(){const[n,e]=M.useState([]),[t,i]=M.useState(!0),[s,r]=M.useState(!1),[o,u]=M.useState(null),[f,d]=M.useState(null),p=async(x=!1)=>{x?r(!0):i(!0),u(null);try{const w=await vT();e(w)}catch(w){u(w instanceof Error?w.message:"Failed to load paired devices")}finally{x?r(!1):i(!1)}};M.useEffect(()=>{p(!1)},[]);const b=async x=>{try{await wT(x),e(w=>w.filter(S=>S.id!==x)),d(null)}catch(w){u(w instanceof Error?w.message:"Failed to revoke paired device"),d(null)}};return y.jsxs("div",{className:"p-6 space-y-6",children:[y.jsxs("div",{className:"flex items-center justify-between",children:[y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx(I2,{className:"h-5 w-5 text-blue-400"}),y.jsxs("h2",{className:"text-base font-semibold text-white",children:["Paired Devices (",n.length,")"]})]}),y.jsxs("button",{onClick:()=>{p(!0)},disabled:s,className:"inline-flex items-center gap-2 rounded-lg bg-blue-600 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-blue-700 disabled:opacity-60",children:[y.jsx(P2,{className:`h-4 w-4 ${s?"animate-spin":""}`}),"Refresh"]})]}),o&&y.jsx("div",{className:"rounded-lg border border-red-700 bg-red-900/30 p-3 text-sm text-red-300",children:o}),t?y.jsx("div",{className:"flex h-32 items-center justify-center",children:y.jsx("div",{className:"h-8 w-8 animate-spin rounded-full border-2 border-blue-500 border-t-transparent"})}):n.length===0?y.jsxs("div",{className:"rounded-xl border border-gray-800 bg-gray-900 p-8 text-center",children:[y.jsx(F3,{className:"mx-auto mb-3 h-10 w-10 text-gray-600"}),y.jsx("p",{className:"text-gray-400",children:"No paired devices found."})]}):y.jsx("div",{className:"overflow-x-auto rounded-xl border border-gray-800 bg-gray-900",children:y.jsxs("table",{className:"w-full text-sm",children:[y.jsx("thead",{children:y.jsxs("tr",{className:"border-b border-gray-800",children:[y.jsx("th",{className:"px-4 py-3 text-left font-medium text-gray-400",children:"Device ID"}),y.jsx("th",{className:"px-4 py-3 text-left font-medium text-gray-400",children:"Paired By"}),y.jsx("th",{className:"px-4 py-3 text-left font-medium text-gray-400",children:"Created"}),y.jsx("th",{className:"px-4 py-3 text-left font-medium text-gray-400",children:"Last Seen"}),y.jsx("th",{className:"px-4 py-3 text-right font-medium text-gray-400",children:"Actions"})]})}),y.jsx("tbody",{children:n.map(x=>y.jsxs("tr",{className:"border-b border-gray-800/50 transition-colors hover:bg-gray-800/30",children:[y.jsx("td",{className:"px-4 py-3 font-mono text-xs text-white",children:x.token_fingerprint}),y.jsx("td",{className:"px-4 py-3 text-gray-300",children:x.paired_by??"Unknown"}),y.jsx("td",{className:"px-4 py-3 whitespace-nowrap text-xs text-gray-400",children:gx(x.created_at)}),y.jsx("td",{className:"px-4 py-3 whitespace-nowrap text-xs text-gray-400",children:gx(x.last_seen_at)}),y.jsx("td",{className:"px-4 py-3 text-right",children:f===x.id?y.jsxs("div",{className:"inline-flex items-center gap-2",children:[y.jsx("span",{className:"text-xs text-red-400",children:"Revoke?"}),y.jsx("button",{onClick:()=>{b(x.id)},className:"text-xs font-medium text-red-400 hover:text-red-300",children:"Yes"}),y.jsx("button",{onClick:()=>d(null),className:"text-xs font-medium text-gray-400 hover:text-white",children:"No"})]}):y.jsx("button",{onClick:()=>d(x.id),className:"text-xs font-medium text-red-400 hover:text-red-300",children:"Revoke"})})]},x.id))})]})})]})}/*! * Copyright (c) Squirrel Chat et al., All rights reserved. * SPDX-License-Identifier: BSD-3-Clause * @@ -503,9 +493,9 @@ Please change the parent to -1&&t!=="'"&&rN(n,e));return e>-1&&(e+=i.length,i.length>1&&(n[e]===t&&e++,n[e]===t&&e++)),e}/*! +`))return r}}throw new He("cannot find end of structure",{toml:n,ptr:e})}function iw(n,e){let t=n[e],i=t===n[e+1]&&n[e+1]===n[e+2]?n.slice(e,e+3):t;e+=i.length-1;do e=n.indexOf(i,++e);while(e>-1&&t!=="'"&&sN(n,e));return e>-1&&(e+=i.length,i.length>1&&(n[e]===t&&e++,n[e]===t&&e++)),e}/*! * Copyright (c) Squirrel Chat et al., All rights reserved. * SPDX-License-Identifier: BSD-3-Clause * @@ -566,7 +556,7 @@ ${o}`,i);Xe(this,"line");Xe(this,"column");Xe(this,"codeblock");this.line=s,this * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */let cN=/^(\d{4}-\d{2}-\d{2})?[T ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|[-+]\d{2}:\d{2})?$/i;var hi,fi,Ft;const ya=class ya extends Date{constructor(t){let i=!0,s=!0,r="Z";if(typeof t=="string"){let o=t.match(cN);o?(o[1]||(i=!1,t=`0000-01-01T${t}`),s=!!o[2],s&&t[10]===" "&&(t=t.replace(" ","T")),o[2]&&+o[2]>23?t="":(r=o[3]||null,t=t.toUpperCase(),!r&&s&&(t+="Z"))):t=""}super(t);$c(this,hi,!1);$c(this,fi,!1);$c(this,Ft,null);isNaN(this.getTime())||(ai(this,hi,i),ai(this,fi,s),ai(this,Ft,r))}isDateTime(){return Dt(this,hi)&&Dt(this,fi)}isLocal(){return!Dt(this,hi)||!Dt(this,fi)||!Dt(this,Ft)}isDate(){return Dt(this,hi)&&!Dt(this,fi)}isTime(){return Dt(this,fi)&&!Dt(this,hi)}isValid(){return Dt(this,hi)||Dt(this,fi)}toISOString(){let t=super.toISOString();if(this.isDate())return t.slice(0,10);if(this.isTime())return t.slice(11,23);if(Dt(this,Ft)===null)return t.slice(0,-1);if(Dt(this,Ft)==="Z")return t;let i=+Dt(this,Ft).slice(1,3)*60+ +Dt(this,Ft).slice(4,6);return i=Dt(this,Ft)[0]==="-"?i:-i,new Date(this.getTime()-i*6e4).toISOString().slice(0,-1)+Dt(this,Ft)}static wrapAsOffsetDateTime(t,i="Z"){let s=new ya(t);return ai(s,Ft,i),s}static wrapAsLocalDateTime(t){let i=new ya(t);return ai(i,Ft,null),i}static wrapAsLocalDate(t){let i=new ya(t);return ai(i,fi,!1),ai(i,Ft,null),i}static wrapAsLocalTime(t){let i=new ya(t);return ai(i,hi,!1),ai(i,Ft,null),i}};hi=new WeakMap,fi=new WeakMap,Ft=new WeakMap;let Gm=ya;/*! + */let rN=/^(\d{4}-\d{2}-\d{2})?[T ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|[-+]\d{2}:\d{2})?$/i;var hi,fi,Ft;const ya=class ya extends Date{constructor(t){let i=!0,s=!0,r="Z";if(typeof t=="string"){let o=t.match(rN);o?(o[1]||(i=!1,t=`0000-01-01T${t}`),s=!!o[2],s&&t[10]===" "&&(t=t.replace(" ","T")),o[2]&&+o[2]>23?t="":(r=o[3]||null,t=t.toUpperCase(),!r&&s&&(t+="Z"))):t=""}super(t);$c(this,hi,!1);$c(this,fi,!1);$c(this,Ft,null);isNaN(this.getTime())||(ai(this,hi,i),ai(this,fi,s),ai(this,Ft,r))}isDateTime(){return Dt(this,hi)&&Dt(this,fi)}isLocal(){return!Dt(this,hi)||!Dt(this,fi)||!Dt(this,Ft)}isDate(){return Dt(this,hi)&&!Dt(this,fi)}isTime(){return Dt(this,fi)&&!Dt(this,hi)}isValid(){return Dt(this,hi)||Dt(this,fi)}toISOString(){let t=super.toISOString();if(this.isDate())return t.slice(0,10);if(this.isTime())return t.slice(11,23);if(Dt(this,Ft)===null)return t.slice(0,-1);if(Dt(this,Ft)==="Z")return t;let i=+Dt(this,Ft).slice(1,3)*60+ +Dt(this,Ft).slice(4,6);return i=Dt(this,Ft)[0]==="-"?i:-i,new Date(this.getTime()-i*6e4).toISOString().slice(0,-1)+Dt(this,Ft)}static wrapAsOffsetDateTime(t,i="Z"){let s=new ya(t);return ai(s,Ft,i),s}static wrapAsLocalDateTime(t){let i=new ya(t);return ai(i,Ft,null),i}static wrapAsLocalDate(t){let i=new ya(t);return ai(i,fi,!1),ai(i,Ft,null),i}static wrapAsLocalTime(t){let i=new ya(t);return ai(i,hi,!1),ai(i,Ft,null),i}};hi=new WeakMap,fi=new WeakMap,Ft=new WeakMap;let Gm=ya;/*! * Copyright (c) Squirrel Chat et al., All rights reserved. * SPDX-License-Identifier: BSD-3-Clause * @@ -592,13 +582,13 @@ ${o}`,i);Xe(this,"line");Xe(this,"column");Xe(this,"codeblock");this.line=s,this * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */let uN=/^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\d(_?\d)*))$/,hN=/^[+-]?\d(_?\d)*(\.\d(_?\d)*)?([eE][+-]?\d(_?\d)*)?$/,fN=/^[+-]?0[0-9_]/,dN=/^[0-9a-f]{2,8}$/i,yx={b:"\b",t:" ",n:` + */let oN=/^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\d(_?\d)*))$/,cN=/^[+-]?\d(_?\d)*(\.\d(_?\d)*)?([eE][+-]?\d(_?\d)*)?$/,uN=/^[+-]?0[0-9_]/,hN=/^[0-9a-f]{2,8}$/i,yx={b:"\b",t:" ",n:` `,f:"\f",r:"\r",e:"\x1B",'"':'"',"\\":"\\"};function lw(n,e=0,t=n.length){let i=n[e]==="'",s=n[e++]===n[e]&&n[e]===n[e+1];s&&(t-=2,n[e+=2]==="\r"&&e++,n[e]===` `&&e++);let r=0,o,u="",f=e;for(;e-1&&(ph(n,s),i=i.slice(0,s)),[i.trimEnd(),s]}function eg(n,e,t,i,s){if(i===0)throw new He("document contains excessively nested structures. aborting.",{toml:n,ptr:e});let r=n[e];if(r==="["||r==="{"){let[f,d]=r==="["?bN(n,e,i,s):yN(n,e,i,s);if(t){if(d=xi(n,d),n[d]===",")d++;else if(n[d]!==t)throw new He("expected comma or end of structure",{toml:n,ptr:d})}return[f,d]}let o;if(r==='"'||r==="'"){o=iw(n,e);let f=lw(n,e,o);if(t){if(o=xi(n,o),n[o]&&n[o]!==","&&n[o]!==t&&n[o]!==` -`&&n[o]!=="\r")throw new He("unexpected character encountered",{toml:n,ptr:o});o+=+(n[o]===",")}return[f,o]}o=oN(n,e,",",t);let u=pN(n,e,o-+(n[o-1]===","));if(!u[0])throw new He("incomplete key-value declaration: no value specified",{toml:n,ptr:e});return t&&u[1]>-1&&(o=xi(n,e+u[1]),o+=+(n[o]===",")),[mN(u[0],n,e,s),o]}/*! + */function dN(n,e,t){let i=n.slice(e,t),s=i.indexOf("#");return s>-1&&(ph(n,s),i=i.slice(0,s)),[i.trimEnd(),s]}function eg(n,e,t,i,s){if(i===0)throw new He("document contains excessively nested structures. aborting.",{toml:n,ptr:e});let r=n[e];if(r==="["||r==="{"){let[f,d]=r==="["?gN(n,e,i,s):pN(n,e,i,s);if(t){if(d=xi(n,d),n[d]===",")d++;else if(n[d]!==t)throw new He("expected comma or end of structure",{toml:n,ptr:d})}return[f,d]}let o;if(r==='"'||r==="'"){o=iw(n,e);let f=lw(n,e,o);if(t){if(o=xi(n,o),n[o]&&n[o]!==","&&n[o]!==t&&n[o]!==` +`&&n[o]!=="\r")throw new He("unexpected character encountered",{toml:n,ptr:o});o+=+(n[o]===",")}return[f,o]}o=aN(n,e,",",t);let u=dN(n,e,o-+(n[o-1]===","));if(!u[0])throw new He("incomplete key-value declaration: no value specified",{toml:n,ptr:e});return t&&u[1]>-1&&(o=xi(n,e+u[1]),o+=+(n[o]===",")),[fN(u[0],n,e,s),o]}/*! * Copyright (c) Squirrel Chat et al., All rights reserved. * SPDX-License-Identifier: BSD-3-Clause * @@ -651,8 +641,8 @@ ${o}`,i);Xe(this,"line");Xe(this,"column");Xe(this,"codeblock");this.line=s,this * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */let gN=/^[a-zA-Z0-9-_]+[ \t]*$/;function Im(n,e,t="="){let i=e-1,s=[],r=n.indexOf(t,e);if(r<0)throw new He("incomplete key-value: cannot find end of key",{toml:n,ptr:e});do{let o=n[e=++i];if(o!==" "&&o!==" ")if(o==='"'||o==="'"){if(o===n[e+1]&&o===n[e+2])throw new He("multiline strings are not allowed in keys",{toml:n,ptr:e});let u=iw(n,e);if(u<0)throw new He("unfinished string encountered",{toml:n,ptr:e});i=n.indexOf(".",u);let f=n.slice(u,i<0||i>r?r:i),d=Km(f);if(d>-1)throw new He("newlines are not allowed in keys",{toml:n,ptr:e+i+d});if(f.trimStart())throw new He("found extra tokens after the string part",{toml:n,ptr:u});if(rr?r:i);if(!gN.test(u))throw new He("only letter, numbers, dashes and underscores are allowed in keys",{toml:n,ptr:e});s.push(u.trimEnd())}}while(i+1&&ir?r:i),d=Km(f);if(d>-1)throw new He("newlines are not allowed in keys",{toml:n,ptr:e+i+d});if(f.trimStart())throw new He("found extra tokens after the string part",{toml:n,ptr:u});if(rr?r:i);if(!mN.test(u))throw new He("only letter, numbers, dashes and underscores are allowed in keys",{toml:n,ptr:e});s.push(u.trimEnd())}}while(i+1&&i{Uu(i,`${e}.${s}`,t)});return}if(typeof n=="object")for(const[i,s]of Object.entries(n))Uu(s,e?`${e}.${i}`:i,t)}}function MN(n,e){let t=n;for(const i of e){if(t==null||typeof t!="object")return;t=t[i]}return t}function TN(n,e,t){if(e.length===0)return;let i=n;for(let r=0;r{e(!0),r(null);try{const K=await uT(),$=typeof K=="string"?K:JSON.stringify(K,null,2);b($);try{const le=xx($);w(le);const ge=new Set;Uu(le,"",ge),S.current=ge}catch{w({}),S.current=new Set,d("raw")}A.current=new Set}catch(K){r(K instanceof Error?K.message:"Failed to load configuration")}finally{e(!1)}},[]),E=M.useRef(!1);M.useEffect(()=>{E.current||(E.current=!0,R())},[R]),M.useEffect(()=>()=>{C.current&&clearTimeout(C.current)},[]);const q=(K,$)=>K?`${K}.${$}`:$,B=(K,$)=>q(K,$).split(".").filter(Boolean),I=M.useCallback((K,$)=>{const le=B(K,$);return MN(x,le)},[x]),V=M.useCallback((K,$,le)=>{const ge=q(K,$),D=B(K,$);w(P=>{const ee=AN(P);return TN(ee,D,le),ee}),A.current.add(ge),T(P=>P+1)},[]),Q=M.useCallback((K,$)=>{const le=q(K,$);return S.current.has(le)&&!A.current.has(le)},[]),Z=M.useCallback((K,$)=>{const le=q(K,$);return A.current.has(le)},[]),ue=M.useCallback(()=>{try{return kN(x)}catch{return p}},[x,p]),fe=M.useCallback(K=>{try{const $=xx(K);w($);const le=new Set;return Uu($,"",le),S.current=le,!0}catch{return!1}},[]),ne=M.useCallback(K=>{if(K===f)return!0;if(K==="raw"){const $=ue();return b($),d("raw"),!0}else return fe(p)?(d("form"),!0):(r("Invalid TOML syntax. Fix errors before switching to Form view."),!1)},[f,ue,fe,p]),pe=M.useCallback(K=>{b(K)},[]),J=M.useCallback(async()=>{i(!0),r(null),u(null),C.current&&clearTimeout(C.current);try{let K;f==="form"?K=ue():K=p,await hT(K),u("Configuration saved successfully."),C.current=setTimeout(()=>u(null),4e3)}catch(K){r(K instanceof Error?K.message:"Failed to save configuration")}finally{i(!1)}},[f,ue,p]),ve=M.useCallback(async()=>{await R()},[R]),z=M.useCallback(()=>{r(null),u(null),C.current&&(clearTimeout(C.current),C.current=null)},[]);return{loading:n,saving:t,error:s,success:o,mode:f,rawToml:p,parsed:x,maskedPaths:S.current,dirtyPaths:A.current,setMode:ne,getFieldValue:I,setFieldValue:V,isFieldMasked:Q,isFieldDirty:Z,setRawToml:pe,save:J,reload:ve,clearMessages:z}}const sm=[{path:"",category:"general",title:"General",description:"Top-level model and provider settings",icon:Zp,fields:[{key:"api_key",label:"API Key",type:"password",sensitive:!0,description:"e.g. sk-abc123... or key-xyz..."},{key:"api_url",label:"API URL",type:"text",description:"e.g. https://api.openai.com/v1"},{key:"default_provider",label:"Default Provider",type:"text",description:"e.g. openrouter, openai, anthropic",defaultValue:"openrouter"},{key:"provider_api",label:"Provider API Mode",type:"select",options:[{value:"openai-chat-completions",label:"OpenAI Chat Completions"},{value:"openai-responses",label:"OpenAI Responses"}]},{key:"default_model",label:"Default Model",type:"text",description:"e.g. anthropic/claude-sonnet-4.6",defaultValue:"anthropic/claude-sonnet-4.6"},{key:"default_temperature",label:"Temperature",type:"number",min:0,max:2,step:.1,defaultValue:.7,description:"Default: 0.7 (range 0.0–2.0)"},{key:"model_support_vision",label:"Model Supports Vision",type:"toggle",description:"Whether the model supports image inputs"}]},{path:"provider",category:"general",title:"Provider",description:"Provider-specific settings",icon:Nu,defaultCollapsed:!0,fields:[{key:"reasoning_level",label:"Reasoning Level",type:"text",description:"e.g. low, medium, high"}]},{path:"observability",category:"advanced",title:"Observability",description:"Tracing, metrics, and telemetry",icon:z2,defaultCollapsed:!0,fields:[{key:"backend",label:"Backend",type:"select",defaultValue:"none",options:[{value:"none",label:"None"},{value:"otlp",label:"OpenTelemetry (OTLP)"}]},{key:"otel_endpoint",label:"OTEL Endpoint",type:"text",description:"e.g. http://localhost:4317"},{key:"otel_service_name",label:"OTEL Service Name",type:"text",description:"e.g. zeroclaw-prod"},{key:"runtime_trace_mode",label:"Runtime Trace Mode",type:"select",defaultValue:"none",options:[{value:"none",label:"None"},{value:"file",label:"File"}]},{key:"runtime_trace_path",label:"Runtime Trace Path",type:"text",defaultValue:"state/runtime-trace.jsonl",description:"Default: state/runtime-trace.jsonl"},{key:"runtime_trace_max_entries",label:"Max Trace Entries",type:"number",min:1,defaultValue:200,description:"Default: 200"}]},{path:"autonomy",category:"advanced",title:"Autonomy",description:"Agent autonomy level, action limits, and tool permissions",icon:G2,fields:[{key:"level",label:"Autonomy Level",type:"select",defaultValue:"supervised",options:[{value:"read_only",label:"Read Only"},{value:"supervised",label:"Supervised"},{value:"full",label:"Full"}]},{key:"workspace_only",label:"Workspace Only",type:"toggle",defaultValue:!0,description:"Restrict actions to workspace directory"},{key:"max_actions_per_hour",label:"Max Actions / Hour",type:"number",min:1,defaultValue:20,description:"Default: 20"},{key:"max_cost_per_day_cents",label:"Max Cost / Day (cents)",type:"number",min:0,defaultValue:500,description:"Default: 500 (= $5.00)"},{key:"require_approval_for_medium_risk",label:"Require Approval for Medium Risk",type:"toggle",defaultValue:!0},{key:"block_high_risk_commands",label:"Block High Risk Commands",type:"toggle",defaultValue:!0},{key:"allowed_commands",label:"Allowed Commands",type:"tag-list",tagPlaceholder:"Add command (e.g. git, npm, cargo)"},{key:"forbidden_paths",label:"Forbidden Paths",type:"tag-list",tagPlaceholder:"Add path (e.g. /etc, ~/.ssh)"},{key:"auto_approve",label:"Auto-Approve Tools",type:"tag-list",tagPlaceholder:"e.g. file_read, memory_recall"},{key:"always_ask",label:"Always Ask Tools",type:"tag-list",tagPlaceholder:"e.g. shell, file_write"},{key:"allowed_roots",label:"Allowed Roots",type:"tag-list",tagPlaceholder:"e.g. /home/user/projects"},{key:"shell_env_passthrough",label:"Shell Env Passthrough",type:"tag-list",tagPlaceholder:"e.g. PATH, HOME, EDITOR"}]},{path:"security.sandbox",category:"security",title:"Security: Sandbox",description:"Process sandboxing backend",icon:v3,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",description:"Enable sandboxing (auto-detect if unset)"},{key:"backend",label:"Backend",type:"select",defaultValue:"auto",options:[{value:"auto",label:"Auto"},{value:"landlock",label:"Landlock"},{value:"firejail",label:"Firejail"},{value:"bubblewrap",label:"Bubblewrap"},{value:"docker",label:"Docker"},{value:"none",label:"None"}]},{key:"firejail_args",label:"Firejail Extra Args",type:"tag-list",tagPlaceholder:"e.g. --net=none, --private"}]},{path:"security.resources",category:"security",title:"Security: Resource Limits",description:"Memory, CPU, and subprocess limits",icon:N3,defaultCollapsed:!0,fields:[{key:"max_memory_mb",label:"Max Memory (MB)",type:"number",min:1,defaultValue:512,description:"Default: 512"},{key:"max_cpu_time_seconds",label:"Max CPU Time (s)",type:"number",min:1,defaultValue:60,description:"Default: 60"},{key:"max_subprocesses",label:"Max Subprocesses",type:"number",min:1,defaultValue:10,description:"Default: 10"},{key:"memory_monitoring",label:"Memory Monitoring",type:"toggle",defaultValue:!0}]},{path:"security.audit",category:"security",title:"Security: Audit",description:"Audit logging configuration",icon:H2,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!0},{key:"log_path",label:"Log Path",type:"text",defaultValue:"audit.log",description:"Default: audit.log"},{key:"max_size_mb",label:"Max Size (MB)",type:"number",min:1,defaultValue:100,description:"Default: 100"},{key:"sign_events",label:"Sign Events",type:"toggle",defaultValue:!1}]},{path:"security.otp",category:"security",title:"Security: OTP",description:"One-time password challenge settings",icon:V2,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!0},{key:"method",label:"Method",type:"select",defaultValue:"totp",options:[{value:"totp",label:"TOTP"},{value:"pairing",label:"Pairing"},{value:"cli-prompt",label:"CLI Prompt"}]},{key:"token_ttl_secs",label:"Token TTL (s)",type:"number",min:1,defaultValue:30,description:"Default: 30"},{key:"cache_valid_secs",label:"Cache Valid (s)",type:"number",min:0,defaultValue:300,description:"Default: 300 (5 min)"},{key:"gated_actions",label:"Gated Actions",type:"tag-list",tagPlaceholder:"e.g. shell, file_write, browser_open"},{key:"gated_domains",label:"Gated Domains",type:"tag-list",tagPlaceholder:"e.g. example.com"},{key:"challenge_delivery",label:"Challenge Delivery",type:"select",defaultValue:"dm",options:[{value:"dm",label:"Direct Message"},{value:"thread",label:"Thread"},{value:"ephemeral",label:"Ephemeral"}]},{key:"challenge_timeout_secs",label:"Challenge Timeout (s)",type:"number",min:1,defaultValue:120,description:"Default: 120 (2 min)"},{key:"challenge_max_attempts",label:"Max Attempts",type:"number",min:1,max:10,defaultValue:3,description:"Default: 3 (max 10)"}]},{path:"security.estop",category:"security",title:"Security: Emergency Stop",description:"Emergency stop configuration",icon:U3,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!1},{key:"state_file",label:"State File",type:"text",defaultValue:"~/.zeroclaw/estop-state.json",description:"Default: ~/.zeroclaw/estop-state.json"},{key:"require_otp_to_resume",label:"Require OTP to Resume",type:"toggle",defaultValue:!0}]},{path:"security.perplexity_filter",category:"security",title:"Security: Perplexity Filter",description:"Adversarial suffix detection",icon:Xp,defaultCollapsed:!0,fields:[{key:"enable_perplexity_filter",label:"Enabled",type:"toggle",defaultValue:!1},{key:"perplexity_threshold",label:"Perplexity Threshold",type:"number",min:0,step:.1,defaultValue:18,description:"Default: 18.0"},{key:"suffix_window_chars",label:"Suffix Window (chars)",type:"number",min:1,defaultValue:64,description:"Default: 64"},{key:"min_prompt_chars",label:"Min Prompt (chars)",type:"number",min:1,defaultValue:32,description:"Default: 32"},{key:"symbol_ratio_threshold",label:"Symbol Ratio Threshold",type:"number",min:0,max:1,step:.01,defaultValue:.2,description:"Default: 0.20 (range 0–1)"}]},{path:"security.url_access",category:"security",title:"Security: URL Access",description:"Network access controls for URLs",icon:eu,defaultCollapsed:!0,fields:[{key:"block_private_ip",label:"Block Private IPs",type:"toggle",defaultValue:!0},{key:"allow_loopback",label:"Allow Loopback",type:"toggle",defaultValue:!1},{key:"allow_cidrs",label:"Allowed CIDRs",type:"tag-list",tagPlaceholder:"e.g. 10.0.0.0/8, 192.168.0.0/16"},{key:"allow_domains",label:"Allowed Domains",type:"tag-list",tagPlaceholder:"e.g. api.example.com"}]},{path:"runtime",category:"runtime",title:"Runtime",description:"Runtime execution environment",icon:F3,defaultCollapsed:!0,fields:[{key:"kind",label:"Kind",type:"select",defaultValue:"native",options:[{value:"native",label:"Native"},{value:"docker",label:"Docker"},{value:"wasm",label:"Sandboxed"}]},{key:"reasoning_enabled",label:"Reasoning Enabled",type:"toggle",description:"Enable model reasoning mode"}]},{path:"runtime.docker",category:"runtime",title:"Runtime: Docker",description:"Docker container runtime settings",icon:A3,defaultCollapsed:!0,fields:[{key:"image",label:"Image",type:"text",defaultValue:"alpine:3.20",description:"e.g. alpine:3.20, ubuntu:22.04"},{key:"network",label:"Network",type:"text",defaultValue:"none",description:"e.g. none, bridge, host"},{key:"memory_limit_mb",label:"Memory Limit (MB)",type:"number",min:1,defaultValue:512,description:"Default: 512"},{key:"cpu_limit",label:"CPU Limit",type:"number",min:.1,step:.1,defaultValue:1,description:"Default: 1.0 (number of cores)"},{key:"read_only_rootfs",label:"Read-Only Root FS",type:"toggle",defaultValue:!0},{key:"mount_workspace",label:"Mount Workspace",type:"toggle",defaultValue:!0},{key:"allowed_workspace_roots",label:"Allowed Workspace Roots",type:"tag-list",tagPlaceholder:"e.g. /home/user/projects"}]},{path:"research",category:"runtime",title:"Research",description:"Research phase configuration",icon:x3,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!1},{key:"trigger",label:"Trigger",type:"select",defaultValue:"never",options:[{value:"never",label:"Never"},{value:"always",label:"Always"},{value:"keywords",label:"Keywords"},{value:"length",label:"Message Length"},{value:"question",label:"Question Mark"}]},{key:"keywords",label:"Trigger Keywords",type:"tag-list",tagPlaceholder:"e.g. find, search, investigate"},{key:"min_message_length",label:"Min Message Length",type:"number",min:1,defaultValue:50,description:"Default: 50 characters"},{key:"max_iterations",label:"Max Iterations",type:"number",min:1,defaultValue:5,description:"Default: 5"},{key:"show_progress",label:"Show Progress",type:"toggle",defaultValue:!0}]},{path:"reliability",category:"advanced",title:"Reliability",description:"Retry, fallback, and backoff settings",icon:P2,defaultCollapsed:!0,fields:[{key:"provider_retries",label:"Provider Retries",type:"number",min:0,defaultValue:2,description:"Default: 2"},{key:"provider_backoff_ms",label:"Backoff (ms)",type:"number",min:0,defaultValue:500,description:"Default: 500"},{key:"fallback_providers",label:"Fallback Providers",type:"tag-list",tagPlaceholder:"e.g. openai, anthropic"},{key:"api_keys",label:"Fallback API Keys",type:"tag-list",tagPlaceholder:"Add fallback API key"},{key:"channel_initial_backoff_secs",label:"Channel Initial Backoff (s)",type:"number",min:1,defaultValue:2,description:"Default: 2"},{key:"channel_max_backoff_secs",label:"Channel Max Backoff (s)",type:"number",min:1,defaultValue:60,description:"Default: 60"},{key:"scheduler_poll_secs",label:"Scheduler Poll (s)",type:"number",min:1,defaultValue:15,description:"Default: 15"},{key:"scheduler_retries",label:"Scheduler Retries",type:"number",min:0,defaultValue:2,description:"Default: 2"}]},{path:"scheduler",category:"advanced",title:"Scheduler",description:"Task scheduler settings",icon:no,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!0},{key:"max_tasks",label:"Max Tasks",type:"number",min:1,defaultValue:64,description:"Default: 64"},{key:"max_concurrent",label:"Max Concurrent",type:"number",min:1,defaultValue:4,description:"Default: 4"}]},{path:"agent",category:"general",title:"Agent",description:"Agent orchestration settings",icon:Tu,fields:[{key:"compact_context",label:"Compact Context",type:"toggle",defaultValue:!0,description:"Compress long conversation context"},{key:"max_tool_iterations",label:"Max Tool Iterations",type:"number",min:1,defaultValue:20,description:"Default: 20"},{key:"max_history_messages",label:"Max History Messages",type:"number",min:1,defaultValue:50,description:"Default: 50"},{key:"parallel_tools",label:"Parallel Tools",type:"toggle",defaultValue:!1,description:"Execute tools in parallel when possible"},{key:"tool_dispatcher",label:"Tool Dispatcher",type:"select",defaultValue:"auto",options:[{value:"auto",label:"Auto"},{value:"sequential",label:"Sequential"},{value:"parallel",label:"Parallel"}]}]},{path:"skills",category:"advanced",title:"Skills",description:"Open skills and script execution",icon:$p,defaultCollapsed:!0,fields:[{key:"open_skills_enabled",label:"Open Skills Enabled",type:"toggle",defaultValue:!1},{key:"open_skills_dir",label:"Open Skills Directory",type:"text",description:"e.g. ./skills or /opt/zeroclaw/skills"},{key:"allow_scripts",label:"Allow Scripts",type:"toggle",defaultValue:!1},{key:"prompt_injection_mode",label:"Prompt Injection Mode",type:"select",defaultValue:"full",options:[{value:"full",label:"Full"},{value:"compact",label:"Compact"}]},{key:"clawhub_token",label:"ClawHub Token",type:"password",sensitive:!0,description:"e.g. clh_abc123..."}]},{path:"heartbeat",category:"advanced",title:"Heartbeat",description:"Periodic heartbeat messages",icon:D3,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!1},{key:"interval_minutes",label:"Interval (min)",type:"number",min:1,defaultValue:30,description:"Default: 30"},{key:"message",label:"Message",type:"text",description:"e.g. Agent is alive and running"},{key:"target",label:"Target Channel",type:"text",description:"e.g. telegram, discord, slack"},{key:"to",label:"Recipient",type:"text",description:"e.g. channel ID or username"}]},{path:"cron",category:"advanced",title:"Cron",description:"Cron job settings",icon:eT,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!0},{key:"max_run_history",label:"Max Run History",type:"number",min:1,defaultValue:50,description:"Default: 50"}]},{path:"goal_loop",category:"advanced",title:"Goal Loop",description:"Autonomous goal pursuit loop",icon:$3,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!1},{key:"interval_minutes",label:"Interval (min)",type:"number",min:1,defaultValue:10,description:"Default: 10"},{key:"step_timeout_secs",label:"Step Timeout (s)",type:"number",min:1,defaultValue:120,description:"Default: 120 (2 min)"},{key:"max_steps_per_cycle",label:"Max Steps / Cycle",type:"number",min:1,defaultValue:3,description:"Default: 3"},{key:"channel",label:"Channel",type:"text",description:"e.g. telegram, discord"},{key:"target",label:"Target",type:"text",description:"e.g. channel ID or user ID"}]},{path:"channels_config",category:"channels",title:"Channels",description:"Channel transport settings",icon:Pi,fields:[{key:"cli",label:"CLI Enabled",type:"toggle",defaultValue:!0},{key:"message_timeout_secs",label:"Message Timeout (s)",type:"number",min:1,defaultValue:300,description:"Default: 300 (5 min)"}]},{path:"channels_config.telegram",category:"channels",title:"Telegram",description:"Telegram bot channel",icon:K2,defaultCollapsed:!0,fields:[{key:"bot_token",label:"Bot Token",type:"password",sensitive:!0,description:"e.g. 123456:ABC-DEF1234ghIkl-zyx57W2v"},{key:"allowed_users",label:"Allowed Users",type:"tag-list",tagPlaceholder:"e.g. 123456789 or @username"},{key:"stream_mode",label:"Stream Mode",type:"select",defaultValue:"off",options:[{value:"off",label:"Off"},{value:"partial",label:"Partial"}]},{key:"draft_update_interval_ms",label:"Draft Update Interval (ms)",type:"number",min:100,defaultValue:1e3,description:"Default: 1000"},{key:"mention_only",label:"Mention Only",type:"toggle",defaultValue:!1},{key:"interrupt_on_new_message",label:"Interrupt on New Message",type:"toggle",defaultValue:!1},{key:"base_url",label:"Custom Base URL",type:"text",description:"e.g. https://api.telegram.org"}]},{path:"channels_config.discord",category:"channels",title:"Discord",description:"Discord bot channel",icon:qm,defaultCollapsed:!0,fields:[{key:"bot_token",label:"Bot Token",type:"password",sensitive:!0,description:"e.g. MTIzNDU2Nzg5.AbCdEf..."},{key:"guild_id",label:"Guild ID",type:"text",description:"e.g. 123456789012345678"},{key:"allowed_users",label:"Allowed Users",type:"tag-list",tagPlaceholder:"e.g. 123456789012345678"},{key:"listen_to_bots",label:"Listen to Bots",type:"toggle",defaultValue:!1},{key:"mention_only",label:"Mention Only",type:"toggle",defaultValue:!1}]},{path:"channels_config.slack",category:"channels",title:"Slack",description:"Slack bot channel",icon:qm,defaultCollapsed:!0,fields:[{key:"bot_token",label:"Bot Token",type:"password",sensitive:!0,description:"e.g. xoxb-1234567890-..."},{key:"app_token",label:"App Token",type:"password",sensitive:!0,description:"e.g. xapp-1-..."},{key:"channel_id",label:"Channel ID",type:"text",description:"e.g. C0123456789"},{key:"allowed_users",label:"Allowed Users",type:"tag-list",tagPlaceholder:"e.g. U0123456789"}]},{path:"channels_config.mattermost",category:"channels",title:"Mattermost",description:"Mattermost bot channel",icon:Pi,defaultCollapsed:!0,fields:[{key:"url",label:"Server URL",type:"text",description:"e.g. https://mattermost.example.com"},{key:"bot_token",label:"Bot Token",type:"password",sensitive:!0,description:"e.g. abc123def456..."},{key:"channel_id",label:"Channel ID",type:"text",description:"e.g. abc123def456ghi789"},{key:"allowed_users",label:"Allowed Users",type:"tag-list",tagPlaceholder:"e.g. user_id or username"},{key:"mention_only",label:"Mention Only",type:"toggle"}]},{path:"channels_config.matrix",category:"channels",title:"Matrix",description:"Matrix chat channel",icon:Pi,defaultCollapsed:!0,fields:[{key:"homeserver",label:"Homeserver URL",type:"text",description:"e.g. https://matrix.org"},{key:"access_token",label:"Access Token",type:"password",sensitive:!0,description:"e.g. syt_abc123..."},{key:"user_id",label:"User ID",type:"text",description:"e.g. @bot:matrix.org"},{key:"room_id",label:"Room ID",type:"text",description:"e.g. !abc123:matrix.org"},{key:"allowed_users",label:"Allowed Users",type:"tag-list",tagPlaceholder:"e.g. @user:matrix.org"},{key:"mention_only",label:"Mention Only",type:"toggle",defaultValue:!1}]},{path:"channels_config.signal",category:"channels",title:"Signal",description:"Signal messaging channel",icon:Pi,defaultCollapsed:!0,fields:[{key:"http_url",label:"HTTP URL",type:"text",description:"e.g. http://localhost:8080"},{key:"account",label:"Account",type:"text",description:"e.g. +1234567890"},{key:"group_id",label:"Group ID",type:"text",description:"e.g. base64-encoded group ID"},{key:"allowed_from",label:"Allowed From",type:"tag-list",tagPlaceholder:"e.g. +1234567890"},{key:"ignore_attachments",label:"Ignore Attachments",type:"toggle",defaultValue:!1}]},{path:"channels_config.nostr",category:"channels",title:"Nostr",description:"Nostr relay channel",icon:Pi,defaultCollapsed:!0,fields:[{key:"private_key",label:"Private Key",type:"password",sensitive:!0,description:"e.g. nsec1abc123..."},{key:"relays",label:"Relays",type:"tag-list",tagPlaceholder:"e.g. wss://relay.damus.io"},{key:"allowed_pubkeys",label:"Allowed Pubkeys",type:"tag-list",tagPlaceholder:"e.g. npub1abc123..."}]},{path:"channels_config.lark",category:"channels",title:"Lark",description:"Lark/Feishu bot channel",icon:Pi,defaultCollapsed:!0,fields:[{key:"app_id",label:"App ID",type:"text",description:"e.g. cli_abc123..."},{key:"app_secret",label:"App Secret",type:"password",sensitive:!0,description:"e.g. abc123def456..."},{key:"encrypt_key",label:"Encrypt Key",type:"password",sensitive:!0,description:"Lark event encryption key"},{key:"verification_token",label:"Verification Token",type:"password",sensitive:!0,description:"Lark event verification token"},{key:"allowed_users",label:"Allowed Users",type:"tag-list",tagPlaceholder:"e.g. ou_abc123..."},{key:"mention_only",label:"Mention Only",type:"toggle",defaultValue:!1},{key:"receive_mode",label:"Receive Mode",type:"select",defaultValue:"websocket",options:[{value:"websocket",label:"WebSocket"},{value:"webhook",label:"Webhook"}]},{key:"port",label:"Webhook Port",type:"number",min:1,max:65535,description:"e.g. 8080 (range 1–65535)"}]},{path:"channels_config.dingtalk",category:"channels",title:"DingTalk",description:"DingTalk bot channel",icon:Pi,defaultCollapsed:!0,fields:[{key:"client_id",label:"Client ID",type:"text",description:"e.g. dingabc123..."},{key:"client_secret",label:"Client Secret",type:"password",sensitive:!0,description:"e.g. abc123def456..."},{key:"allowed_users",label:"Allowed Users",type:"tag-list",tagPlaceholder:"e.g. user_id"}]},{path:"channels_config.qq",category:"channels",title:"QQ",description:"QQ bot channel",icon:Pi,defaultCollapsed:!0,fields:[{key:"app_id",label:"App ID",type:"text",description:"e.g. 102012345"},{key:"app_secret",label:"App Secret",type:"password",sensitive:!0,description:"e.g. abc123def456..."},{key:"allowed_users",label:"Allowed Users",type:"tag-list",tagPlaceholder:"e.g. QQ user ID"},{key:"receive_mode",label:"Receive Mode",type:"select",defaultValue:"webhook",options:[{value:"websocket",label:"WebSocket"},{value:"webhook",label:"Webhook"}]},{key:"environment",label:"Environment",type:"select",defaultValue:"production",options:[{value:"production",label:"Production"},{value:"sandbox",label:"Sandbox"}]}]},{path:"channels_config.napcat",category:"channels",title:"Napcat (OneBot)",description:"QQ via OneBot v11 (Napcat)",icon:Pi,defaultCollapsed:!0,fields:[{key:"websocket_url",label:"WebSocket URL",type:"text",description:"e.g. ws://127.0.0.1:3001"},{key:"api_base_url",label:"HTTP API Base URL",type:"text",description:"Optional. Leave empty to auto-derive from websocket_url"},{key:"access_token",label:"Access Token",type:"password",sensitive:!0,description:"Optional bearer token for Napcat/OneBot API"},{key:"allowed_users",label:"Allowed Users",type:"tag-list",tagPlaceholder:"e.g. 10001 or '*'"}]},{path:"memory",category:"memory",title:"Memory",description:"Memory backend and embedding settings",icon:Um,fields:[{key:"backend",label:"Backend",type:"select",defaultValue:"sqlite",options:[{value:"sqlite",label:"SQLite"},{value:"markdown",label:"Markdown"}]},{key:"auto_save",label:"Auto Save",type:"toggle",defaultValue:!0},{key:"hygiene_enabled",label:"Hygiene Enabled",type:"toggle",defaultValue:!0},{key:"archive_after_days",label:"Archive After (days)",type:"number",min:1,defaultValue:7,description:"Default: 7"},{key:"purge_after_days",label:"Purge After (days)",type:"number",min:1,defaultValue:30,description:"Default: 30"},{key:"conversation_retention_days",label:"Conversation Retention (days)",type:"number",min:1,defaultValue:30,description:"Default: 30"},{key:"embedding_provider",label:"Embedding Provider",type:"text",defaultValue:"none",description:"e.g. none, openai, local"},{key:"embedding_model",label:"Embedding Model",type:"text",defaultValue:"text-embedding-3-small",description:"e.g. text-embedding-3-small"},{key:"embedding_dimensions",label:"Embedding Dimensions",type:"number",min:1,defaultValue:1536,description:"Default: 1536"},{key:"vector_weight",label:"Vector Weight",type:"number",min:0,max:1,step:.1,defaultValue:.7,description:"Default: 0.7 (range 0–1)"},{key:"keyword_weight",label:"Keyword Weight",type:"number",min:0,max:1,step:.1,defaultValue:.3,description:"Default: 0.3 (range 0–1)"},{key:"min_relevance_score",label:"Min Relevance Score",type:"number",min:0,max:1,step:.05,defaultValue:.4,description:"Default: 0.4 (range 0–1)"},{key:"response_cache_enabled",label:"Response Cache",type:"toggle",defaultValue:!1},{key:"response_cache_ttl_minutes",label:"Cache TTL (min)",type:"number",min:1,defaultValue:60,description:"Default: 60"},{key:"snapshot_enabled",label:"Snapshots",type:"toggle",defaultValue:!1},{key:"auto_hydrate",label:"Auto Hydrate",type:"toggle",defaultValue:!0}]},{path:"memory.qdrant",category:"memory",title:"Memory: Qdrant",description:"Qdrant vector database connection",icon:Um,defaultCollapsed:!0,fields:[{key:"url",label:"URL",type:"text",description:"e.g. http://localhost:6334"},{key:"collection",label:"Collection",type:"text",defaultValue:"zeroclaw_memories",description:"Default: zeroclaw_memories"},{key:"api_key",label:"API Key",type:"password",sensitive:!0,description:"Qdrant Cloud API key"}]},{path:"gateway",category:"network",title:"Gateway",description:"HTTP gateway and webhook server",icon:lx,fields:[{key:"port",label:"Port",type:"number",min:1,max:65535,defaultValue:42617,description:"Default: 42617 (range 1–65535)"},{key:"host",label:"Host",type:"text",defaultValue:"127.0.0.1",description:"e.g. 127.0.0.1 or 0.0.0.0"},{key:"require_pairing",label:"Require Pairing",type:"toggle",defaultValue:!0},{key:"allow_public_bind",label:"Allow Public Bind",type:"toggle",defaultValue:!1},{key:"pair_rate_limit_per_minute",label:"Pair Rate Limit / min",type:"number",min:1,defaultValue:10,description:"Default: 10"},{key:"webhook_rate_limit_per_minute",label:"Webhook Rate Limit / min",type:"number",min:1,defaultValue:60,description:"Default: 60"},{key:"trust_forwarded_headers",label:"Trust Forwarded Headers",type:"toggle",defaultValue:!1},{key:"idempotency_ttl_secs",label:"Idempotency TTL (s)",type:"number",min:1,defaultValue:300,description:"Default: 300 (5 min)"}]},{path:"gateway.node_control",category:"network",title:"Gateway: Node Control",description:"Multi-node control plane",icon:lx,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!1},{key:"auth_token",label:"Auth Token",type:"password",sensitive:!0,description:"Shared secret for node auth"},{key:"allowed_node_ids",label:"Allowed Node IDs",type:"tag-list",tagPlaceholder:"e.g. node-1, node-us-east"}]},{path:"browser",category:"tools",title:"Browser",description:"Browser automation settings",icon:eu,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!1},{key:"allowed_domains",label:"Allowed Domains",type:"tag-list",tagPlaceholder:"e.g. example.com, docs.rs"},{key:"session_name",label:"Session Name",type:"text",description:"e.g. default, research"},{key:"backend",label:"Backend",type:"select",defaultValue:"agent_browser",options:[{value:"agent_browser",label:"Agent Browser"},{value:"native",label:"Native"},{value:"computer_use",label:"Computer Use"}]},{key:"native_headless",label:"Native Headless",type:"toggle",defaultValue:!0},{key:"native_webdriver_url",label:"WebDriver URL",type:"text",defaultValue:"http://127.0.0.1:9515",description:"Default: http://127.0.0.1:9515"}]},{path:"http_request",category:"tools",title:"HTTP Request",description:"HTTP request tool settings",icon:eu,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!1},{key:"allowed_domains",label:"Allowed Domains",type:"tag-list",tagPlaceholder:"e.g. api.example.com"},{key:"max_response_size",label:"Max Response Size (bytes)",type:"number",min:1,defaultValue:1e6,description:"Default: 1000000 (1 MB)"},{key:"timeout_secs",label:"Timeout (s)",type:"number",min:1,defaultValue:30,description:"Default: 30"},{key:"user_agent",label:"User Agent",type:"text",defaultValue:"ZeroClaw/1.0",description:"Default: ZeroClaw/1.0"}]},{path:"web_fetch",category:"tools",title:"Web Fetch",description:"Web page fetching and conversion",icon:eu,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!1},{key:"provider",label:"Provider",type:"text",defaultValue:"fast_html2md",description:"e.g. fast_html2md, firecrawl"},{key:"api_key",label:"API Key",type:"password",sensitive:!0,description:"Provider API key (if required)"},{key:"api_url",label:"API URL",type:"text",description:"e.g. https://api.firecrawl.dev/v1"},{key:"allowed_domains",label:"Allowed Domains",type:"tag-list",tagPlaceholder:"e.g. * (all) or example.com"},{key:"blocked_domains",label:"Blocked Domains",type:"tag-list",tagPlaceholder:"e.g. malware.example.com"},{key:"max_response_size",label:"Max Response Size (bytes)",type:"number",min:1,defaultValue:5e5,description:"Default: 500000 (500 KB)"},{key:"timeout_secs",label:"Timeout (s)",type:"number",min:1,defaultValue:30,description:"Default: 30"},{key:"user_agent",label:"User Agent",type:"text",defaultValue:"ZeroClaw/1.0",description:"Default: ZeroClaw/1.0"}]},{path:"web_search",category:"tools",title:"Web Search",description:"Web search tool settings",icon:mh,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!1},{key:"provider",label:"Provider",type:"select",defaultValue:"duckduckgo",options:[{value:"duckduckgo",label:"DuckDuckGo"},{value:"brave",label:"Brave"},{value:"tavily",label:"Tavily"},{value:"serper",label:"Serper"}]},{key:"api_key",label:"API Key",type:"password",sensitive:!0,description:"Search provider API key"},{key:"api_url",label:"API URL",type:"text",description:"e.g. https://api.search.brave.com"},{key:"brave_api_key",label:"Brave API Key",type:"password",sensitive:!0,description:"Brave Search API key"},{key:"max_results",label:"Max Results",type:"number",min:1,defaultValue:5,description:"Default: 5"},{key:"timeout_secs",label:"Timeout (s)",type:"number",min:1,defaultValue:15,description:"Default: 15"}]},{path:"proxy",category:"network",title:"Proxy",description:"Network proxy settings",icon:V3,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!1},{key:"http_proxy",label:"HTTP Proxy",type:"text",description:"e.g. http://proxy.example.com:8080"},{key:"https_proxy",label:"HTTPS Proxy",type:"text",description:"e.g. http://proxy.example.com:8443"},{key:"all_proxy",label:"All Proxy",type:"text",description:"e.g. socks5://proxy.example.com:1080"},{key:"no_proxy",label:"No Proxy",type:"tag-list",tagPlaceholder:"e.g. localhost, 127.0.0.1, .internal"},{key:"scope",label:"Scope",type:"select",defaultValue:"zeroclaw",options:[{value:"environment",label:"Environment"},{value:"zeroclaw",label:"ZeroClaw Only"},{value:"services",label:"Services"}]},{key:"services",label:"Proxy Services",type:"tag-list",tagPlaceholder:"e.g. openai, anthropic"}]},{path:"identity",category:"advanced",title:"Identity",description:"Agent identity format",icon:k3,defaultCollapsed:!0,fields:[{key:"format",label:"Format",type:"text",defaultValue:"openclaw",description:"e.g. openclaw, aieos"},{key:"aieos_path",label:"AIEOS Path",type:"text",description:"e.g. ./identity.aieos"},{key:"aieos_inline",label:"AIEOS Inline",type:"text",description:"Inline AIEOS identity string"}]},{path:"cost",category:"advanced",title:"Cost",description:"Cost tracking and spending limits",icon:dh,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!1},{key:"daily_limit_usd",label:"Daily Limit (USD)",type:"number",min:0,step:.01,defaultValue:10,description:"Default: 10.00"},{key:"monthly_limit_usd",label:"Monthly Limit (USD)",type:"number",min:0,step:.01,defaultValue:100,description:"Default: 100.00"},{key:"warn_at_percent",label:"Warn at (%)",type:"number",min:0,max:100,defaultValue:80,description:"Default: 80 (range 0–100)"},{key:"allow_override",label:"Allow Override",type:"toggle",defaultValue:!1}]},{path:"transcription",category:"advanced",title:"Transcription",description:"Audio transcription settings",icon:H3,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!1},{key:"api_url",label:"API URL",type:"text",defaultValue:"https://api.groq.com/openai/v1/audio/transcriptions",description:"Default: Groq Whisper endpoint"},{key:"model",label:"Model",type:"text",defaultValue:"whisper-large-v3-turbo",description:"e.g. whisper-large-v3-turbo"},{key:"language",label:"Language",type:"text",description:"e.g. en, ja, zh, fr"},{key:"max_duration_secs",label:"Max Duration (s)",type:"number",min:1,defaultValue:120,description:"Default: 120 (2 min)"}]},{path:"composio",category:"advanced",title:"Composio",description:"Composio integration",icon:io,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!1},{key:"api_key",label:"API Key",type:"password",sensitive:!0,description:"Composio API key"},{key:"entity_id",label:"Entity ID",type:"text",defaultValue:"default",description:"Default: default"}]},{path:"secrets",category:"advanced",title:"Secrets",description:"Secret storage encryption",icon:U2,defaultCollapsed:!0,fields:[{key:"encrypt",label:"Encrypt",type:"toggle",defaultValue:!0}]},{path:"tunnel",category:"network",title:"Tunnel",description:"Tunnel provider for exposing gateway",icon:b3,defaultCollapsed:!0,fields:[{key:"provider",label:"Provider",type:"select",defaultValue:"none",options:[{value:"none",label:"None"},{value:"cloudflare",label:"Cloudflare"},{value:"tailscale",label:"Tailscale"},{value:"ngrok",label:"ngrok"},{value:"custom",label:"Custom"}]}]},{path:"hardware",category:"advanced",title:"Hardware",description:"Hardware integration settings",icon:Nu,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!1},{key:"transport",label:"Transport",type:"select",defaultValue:"None",options:[{value:"None",label:"None"},{value:"Native",label:"Native"},{value:"Serial",label:"Serial"},{value:"Probe",label:"Probe"}]},{key:"serial_port",label:"Serial Port",type:"text",description:"e.g. /dev/ttyUSB0 or COM3"},{key:"baud_rate",label:"Baud Rate",type:"number",min:1,defaultValue:115200,description:"Default: 115200"},{key:"probe_target",label:"Probe Target",type:"text",description:"e.g. STM32F411CEUx"}]},{path:"peripherals",category:"advanced",title:"Peripherals",description:"Hardware peripheral boards",icon:Nu,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!1},{key:"datasheet_dir",label:"Datasheet Directory",type:"text",description:"e.g. ./datasheets"}]},{path:"mcp",category:"advanced",title:"MCP",description:"Model Context Protocol servers",icon:I3,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!1}]},{path:"wasm",category:"runtime",title:"Plugin Engine",description:"Sandboxed plugin engine",icon:Qp,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!0},{key:"memory_limit_mb",label:"Memory Limit (MB)",type:"number",min:1,defaultValue:64,description:"Default: 64"},{key:"fuel_limit",label:"Fuel Limit",type:"number",min:1,defaultValue:1e9,description:"Default: 1000000000"},{key:"registry_url",label:"Registry URL",type:"text",defaultValue:"https://zeromarket.vercel.app/api",description:"Default: ZeroMarket registry"}]},{path:"multimodal",category:"advanced",title:"Multimodal",description:"Image and multimodal input settings",icon:O3,defaultCollapsed:!0,fields:[{key:"max_images",label:"Max Images",type:"number",min:1,defaultValue:4,description:"Default: 4"},{key:"max_image_size_mb",label:"Max Image Size (MB)",type:"number",min:1,defaultValue:5,description:"Default: 5"},{key:"allow_remote_fetch",label:"Allow Remote Fetch",type:"toggle",defaultValue:!1}]},{path:"storage.provider.config",category:"memory",title:"Storage",description:"External storage provider settings",icon:E3,defaultCollapsed:!0,fields:[{key:"provider",label:"Provider",type:"text",description:"e.g. postgres, mysql"},{key:"db_url",label:"Database URL",type:"password",sensitive:!0,description:"e.g. postgres://user:pass@host:5432/db"},{key:"schema",label:"Schema",type:"text",defaultValue:"public",description:"Default: public"},{key:"table",label:"Table",type:"text",defaultValue:"memories",description:"Default: memories"},{key:"tls",label:"TLS",type:"toggle",defaultValue:!1}]},{path:"hooks",category:"advanced",title:"Hooks",description:"Lifecycle hooks",icon:iT,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!0}]},{path:"plugins",category:"advanced",title:"Plugins",description:"Plugin system settings",icon:io,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!0},{key:"allow",label:"Allow List",type:"tag-list",tagPlaceholder:"e.g. my-plugin, tools-extra"},{key:"deny",label:"Deny List",type:"tag-list",tagPlaceholder:"e.g. untrusted-plugin"},{key:"load_paths",label:"Load Paths",type:"tag-list",tagPlaceholder:"e.g. ./plugins, /opt/zeroclaw/plugins"}]},{path:"coordination",category:"advanced",title:"Coordination",description:"Multi-agent coordination",icon:sx,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!0},{key:"lead_agent",label:"Lead Agent",type:"text",defaultValue:"delegate-lead",description:"Default: delegate-lead"},{key:"max_inbox_messages_per_agent",label:"Max Inbox Messages",type:"number",min:1,defaultValue:256,description:"Default: 256"},{key:"max_dead_letters",label:"Max Dead Letters",type:"number",min:1,defaultValue:256,description:"Default: 256"},{key:"max_context_entries",label:"Max Context Entries",type:"number",min:1,defaultValue:512,description:"Default: 512"}]},{path:"agents_ipc",category:"advanced",title:"Agents IPC",description:"Inter-process agent communication",icon:sx,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!1},{key:"db_path",label:"Database Path",type:"text",defaultValue:"~/.zeroclaw/agents.db",description:"Default: ~/.zeroclaw/agents.db"},{key:"staleness_secs",label:"Staleness (s)",type:"number",min:1,defaultValue:300,description:"Default: 300 (5 min)"}]}];function vx({field:n,value:e,onChange:t,isMasked:i}){const[s,r]=M.useState(!1),o=n.type==="password",u=i?"":e??"";return y.jsxs("div",{className:"relative",children:[y.jsx("input",{type:o&&!s?"password":"text",value:u,onChange:f=>t(f.target.value),placeholder:i?"Configured (masked)":n.description??"",className:"w-full bg-gray-800 border border-gray-700 rounded-lg px-3 py-2 text-sm text-white placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-500 pr-16"}),y.jsxs("div",{className:"absolute right-2 top-1/2 -translate-y-1/2 flex items-center gap-1",children:[i&&y.jsx(U2,{className:"h-3.5 w-3.5 text-yellow-500"}),o&&y.jsx("button",{type:"button",onClick:()=>r(!s),className:"p-1 text-gray-400 hover:text-gray-200 transition-colors",children:s?y.jsx(T3,{className:"h-3.5 w-3.5"}):y.jsx(z2,{className:"h-3.5 w-3.5"})})]})]})}function EN({field:n,value:e,onChange:t}){const i=e==null||e===""?"":Number(e);return y.jsx("input",{type:"number",value:i,onChange:s=>{const r=s.target.value;if(r===""){t(void 0);return}const o=Number(r);isNaN(o)||t(o)},onBlur:s=>{if(n.step!==void 0&&n.step<1)return;const r=s.target.value;if(r==="")return;const o=Number(r);isNaN(o)||t(Math.floor(o))},min:n.min,max:n.max,step:n.step??1,placeholder:n.description??"",className:"w-full bg-gray-800 border border-gray-700 rounded-lg px-3 py-2 text-sm text-white placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-500"})}function DN({field:n,value:e,onChange:t}){const i=!!e;return y.jsxs("div",{className:"flex items-center gap-3",children:[y.jsx("button",{type:"button",role:"switch","aria-checked":i,"aria-label":n.label,onClick:()=>t(!i),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors ${i?"bg-blue-600":"bg-gray-700"}`,children:y.jsx("span",{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${i?"translate-x-6":"translate-x-1"}`})}),y.jsx("span",{className:"text-sm text-gray-400",children:i?"Enabled":"Disabled"})]})}function ON({field:n,value:e,onChange:t}){var s;const i=e??"";return y.jsxs("select",{value:i,onChange:r=>t(r.target.value),className:"w-full bg-gray-800 border border-gray-700 rounded-lg px-3 py-2 text-sm text-white focus:outline-none focus:ring-2 focus:ring-blue-500",children:[y.jsx("option",{value:"",children:"Select..."}),(s=n.options)==null?void 0:s.map(r=>y.jsx("option",{value:r.value,children:r.label},r.value))]})}function jN({field:n,value:e,onChange:t}){const[i,s]=M.useState(""),r=Array.isArray(e)?e:[],o=d=>{const p=d.trim();p&&!r.includes(p)&&t([...r,p]),s("")},u=d=>{t(r.filter((p,b)=>b!==d))},f=d=>{d.key==="Enter"||d.key===","?(d.preventDefault(),o(i)):d.key==="Backspace"&&i===""&&r.length>0&&u(r.length-1)};return y.jsxs("div",{children:[y.jsx("div",{className:"flex flex-wrap gap-1.5 mb-2",children:r.map((d,p)=>y.jsxs("span",{className:"inline-flex items-center gap-1 bg-gray-700 text-gray-200 rounded-full px-2.5 py-0.5 text-xs",children:[d,y.jsx("button",{type:"button",onClick:()=>u(p),className:"text-gray-400 hover:text-white transition-colors",children:y.jsx(Mo,{className:"h-3 w-3"})})]},d))}),y.jsx("input",{type:"text",value:i,onChange:d=>s(d.target.value),onKeyDown:f,onBlur:()=>{i.trim()&&o(i)},placeholder:n.tagPlaceholder??"Type and press Enter to add",className:"w-full bg-gray-800 border border-gray-700 rounded-lg px-3 py-2 text-sm text-white placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-500"})]})}function RN(n,e,t,i){const s={field:n,value:e,onChange:t,isMasked:i};switch(n.type){case"text":case"password":return y.jsx(vx,{...s});case"number":return y.jsx(EN,{...s});case"toggle":return y.jsx(DN,{...s});case"select":return y.jsx(ON,{...s});case"tag-list":return y.jsx(jN,{...s});default:return y.jsx(vx,{...s})}}function _N({section:n,getFieldValue:e,setFieldValue:t,isFieldMasked:i,visibleFields:s}){const[r,o]=M.useState(n.defaultCollapsed??!1),u=M.useMemo(()=>`config-section-${(n.path||"root").replace(/[^a-zA-Z0-9_-]/g,"-")}`,[n.path]),f=n.icon,d=s??n.fields;return M.useEffect(()=>{o(n.defaultCollapsed??!1)},[n.path,n.defaultCollapsed]),y.jsxs("div",{className:"bg-gray-900 rounded-xl border border-gray-800",children:[y.jsxs("button",{type:"button",onClick:()=>o(!r),"aria-expanded":!r,"aria-controls":u,className:"w-full flex items-center gap-3 px-4 py-3 hover:bg-gray-800/30 transition-colors rounded-t-xl",children:[r?y.jsx(L2,{className:"h-4 w-4 text-gray-500 flex-shrink-0"}):y.jsx(hh,{className:"h-4 w-4 text-gray-500 flex-shrink-0"}),y.jsx(f,{className:"h-4 w-4 text-blue-400 flex-shrink-0"}),y.jsx("span",{className:"text-sm font-medium text-white",children:n.title}),n.description&&y.jsxs("span",{className:"text-xs text-gray-500 hidden sm:inline",children:["— ",n.description]}),y.jsxs("span",{className:"ml-auto text-xs text-gray-600",children:[d.length," ",d.length===1?"field":"fields"]})]}),!r&&y.jsx("div",{id:u,className:"border-t border-gray-800 px-4 py-4 grid grid-cols-1 sm:grid-cols-2 gap-x-4 gap-y-4",children:d.map(p=>{const b=e(n.path,p.key),x=i(n.path,p.key),w=p.type==="tag-list";return y.jsxs("div",{className:`flex flex-col${w?" sm:col-span-2":""}`,children:[y.jsxs("label",{className:"flex items-center gap-2 text-sm font-medium text-gray-300 mb-1.5",children:[y.jsx("span",{children:p.label}),p.sensitive&&y.jsx("span",{className:"text-[10px] text-yellow-400 bg-yellow-900/30 border border-yellow-800/50 px-1.5 py-0.5 rounded",children:"sensitive"}),x&&y.jsx("span",{className:"text-[10px] text-blue-400 bg-blue-900/30 border border-blue-800/50 px-1.5 py-0.5 rounded",children:"masked"})]}),p.description&&p.type!=="text"&&p.type!=="password"&&p.type!=="number"&&y.jsx("p",{className:"text-xs text-gray-500 mb-1.5",children:p.description}),y.jsx("div",{className:"mt-auto",children:RN(p,b,S=>t(n.path,p.key,S),x)})]},p.key)})})]})}const LN=[{key:"all",label:"All"},{key:"general",label:"General"},{key:"security",label:"Security"},{key:"channels",label:"Channels"},{key:"runtime",label:"Runtime"},{key:"tools",label:"Tools"},{key:"memory",label:"Memory"},{key:"network",label:"Network"},{key:"advanced",label:"Advanced"}];function BN({getFieldValue:n,setFieldValue:e,isFieldMasked:t}){const[i,s]=M.useState(""),[r,o]=M.useState("all"),u=i.trim().length>0,f=M.useMemo(()=>{if(u){const p=i.toLowerCase();return sm.map(b=>{var A;const x=b.title.toLowerCase().includes(p),w=(A=b.description)==null?void 0:A.toLowerCase().includes(p);if(x||w)return{section:b,fields:void 0};const S=b.fields.filter(C=>{var T;return C.label.toLowerCase().includes(p)||C.key.toLowerCase().includes(p)||((T=C.description)==null?void 0:T.toLowerCase().includes(p))});return S.length>0?{section:b,fields:S}:null}).filter(Boolean)}return(r==="all"?sm:sm.filter(p=>p.category===r)).map(p=>({section:p,fields:void 0}))},[i,u,r]);return y.jsxs("div",{className:"space-y-3",children:[y.jsxs("div",{className:"relative",children:[y.jsx(mh,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-500"}),y.jsx("input",{type:"text",value:i,onChange:d=>s(d.target.value),placeholder:"Search config fields...",className:"w-full bg-gray-800 border border-gray-700 rounded-lg pl-9 pr-3 py-2 text-sm text-white placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-500"})]}),!u&&y.jsx("div",{className:"flex flex-wrap gap-2",children:LN.map(({key:d,label:p})=>y.jsx("button",{onClick:()=>o(d),className:`px-3 py-1 rounded-lg text-sm font-medium transition-colors ${r===d?"bg-blue-600 text-white":"bg-gray-900 text-gray-400 border border-gray-700 hover:bg-gray-800 hover:text-gray-200"}`,children:p},d))}),f.length===0?y.jsx("div",{className:"text-center py-12 text-gray-500 text-sm",children:"No matching config fields found."}):f.map(({section:d,fields:p})=>y.jsx(_N,{section:p?{...d,defaultCollapsed:!1}:d,getFieldValue:n,setFieldValue:e,isFieldMasked:t,visibleFields:p},d.path||"_root"))]})}const zN=1024;let HN=0,am=class{constructor(e,t){this.from=e,this.to=t}};class Le{constructor(e={}){this.id=HN++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")}),this.combine=e.combine||null}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=fn.match(e)),t=>{let i=e(t);return i===void 0?null:[this,i]}}}Le.closedBy=new Le({deserialize:n=>n.split(" ")});Le.openedBy=new Le({deserialize:n=>n.split(" ")});Le.group=new Le({deserialize:n=>n.split(" ")});Le.isolate=new Le({deserialize:n=>{if(n&&n!="rtl"&&n!="ltr"&&n!="auto")throw new RangeError("Invalid value for isolate: "+n);return n||"auto"}});Le.contextHash=new Le({perNode:!0});Le.lookAhead=new Le({perNode:!0});Le.mounted=new Le({perNode:!0});class Wr{constructor(e,t,i,s=!1){this.tree=e,this.overlay=t,this.parser=i,this.bracketed=s}static get(e){return e&&e.props&&e.props[Le.mounted.id]}}const VN=Object.create(null);class fn{constructor(e,t,i,s=0){this.name=e,this.props=t,this.id=i,this.flags=s}static define(e){let t=e.props&&e.props.length?Object.create(null):VN,i=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),s=new fn(e.name||"",t,e.id,i);if(e.props){for(let r of e.props)if(Array.isArray(r)||(r=r(s)),r){if(r[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[r[0].id]=r[1]}}return s}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let t=this.prop(Le.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let i in e)for(let s of i.split(" "))t[s]=e[i];return i=>{for(let s=i.prop(Le.group),r=-1;r<(s?s.length:0);r++){let o=t[r<0?i.name:s[r]];if(o)return o}}}}fn.none=new fn("",Object.create(null),0,8);class lg{constructor(e){this.types=e;for(let t=0;t0;for(let f=this.cursor(o|gt.IncludeAnonymous);;){let d=!1;if(f.from<=r&&f.to>=s&&(!u&&f.type.isAnonymous||t(f)!==!1)){if(f.firstChild())continue;d=!0}for(;d&&i&&(u||!f.type.isAnonymous)&&i(f),!f.nextSibling();){if(!f.parent())return;d=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:rg(fn.none,this.children,this.positions,0,this.children.length,0,this.length,(t,i,s)=>new st(this.type,t,i,s,this.propValues),e.makeTree||((t,i,s)=>new st(fn.none,t,i,s)))}static build(e){return KN(e)}}st.empty=new st(fn.none,[],[],0);class sg{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new sg(this.buffer,this.index)}}class Dl{constructor(e,t,i){this.buffer=e,this.length=t,this.set=i}get type(){return fn.none}toString(){let e=[];for(let t=0;t0));f=o[f+3]);return u}slice(e,t,i){let s=this.buffer,r=new Uint16Array(t-e),o=0;for(let u=e,f=0;u=e&&te;case 1:return t<=e&&i>e;case 2:return i>e;case 4:return!0}}function lo(n,e,t,i){for(var s;n.from==n.to||(t<1?n.from>=e:n.from>e)||(t>-1?n.to<=e:n.to0?u.length:-1;e!=d;e+=t){let p=u[e],b=f[e]+o.from,x;if(!(!(r>.EnterBracketed&&p instanceof st&&(x=Wr.get(p))&&!x.overlay&&x.bracketed&&i>=b&&i<=b+p.length)&&!aw(s,i,b,b+p.length))){if(p instanceof Dl){if(r>.ExcludeBuffers)continue;let w=p.findChild(0,p.buffer.length,t,i-b,s);if(w>-1)return new Tl(new UN(o,p,e,b),null,w)}else if(r>.IncludeAnonymous||!p.type.isAnonymous||ag(p)){let w;if(!(r>.IgnoreMounts)&&(w=Wr.get(p))&&!w.overlay)return new Un(w.tree,b,e,o);let S=new Un(p,b,e,o);return r>.IncludeAnonymous||!S.type.isAnonymous?S:S.nextChild(t<0?p.children.length-1:0,t,i,s,r)}}}if(r>.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?e=o.index+t:e=t<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}prop(e){return this._tree.prop(e)}enter(e,t,i=0){let s;if(!(i>.IgnoreOverlays)&&(s=Wr.get(this._tree))&&s.overlay){let r=e-this.from,o=i>.EnterBracketed&&s.bracketed;for(let{from:u,to:f}of s.overlay)if((t>0||o?u<=r:u=r:f>r))return new Un(s.tree,s.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,i)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}}function Sx(n,e,t,i){let s=n.cursor(),r=[];if(!s.firstChild())return r;if(t!=null){for(let o=!1;!o;)if(o=s.type.is(t),!s.nextSibling())return r}for(;;){if(i!=null&&s.type.is(i))return r;if(s.type.is(e)&&r.push(s.node),!s.nextSibling())return i==null?r:[]}}function Ym(n,e,t=e.length-1){for(let i=n;t>=0;i=i.parent){if(!i)return!1;if(!i.type.isAnonymous){if(e[t]&&e[t]!=i.name)return!1;t--}}return!0}class UN{constructor(e,t,i,s){this.parent=e,this.buffer=t,this.index=i,this.start=s}}class Tl extends rw{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,i){super(),this.context=e,this._parent=t,this.index=i,this.type=e.buffer.set.types[e.buffer.buffer[i]]}child(e,t,i){let{buffer:s}=this.context,r=s.findChild(this.index+4,s.buffer[this.index+3],e,t-this.context.start,i);return r<0?null:new Tl(this.context,this,r)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}prop(e){return this.type.prop(e)}enter(e,t,i=0){if(i>.ExcludeBuffers)return null;let{buffer:s}=this.context,r=s.findChild(this.index+4,s.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return r<0?null:new Tl(this.context,this,r)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new Tl(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new Tl(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],t=[],{buffer:i}=this.context,s=this.index+4,r=i.buffer[this.index+3];if(r>s){let o=i.buffer[this.index+1];e.push(i.slice(s,r,o)),t.push(0)}return new st(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function ow(n){if(!n.length)return null;let e=0,t=n[0];for(let r=1;rt.from||o.to=e){let u=new Un(o.tree,o.overlay[0].from+r.from,-1,r);(s||(s=[i])).push(lo(u,e,t,!1))}}return s?ow(s):i}class Wm{get name(){return this.type.name}constructor(e,t=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=t&~gt.EnterBracketed,e instanceof Un)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let i=e._parent;i;i=i._parent)this.stack.unshift(i.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:i,buffer:s}=this.buffer;return this.type=t||s.set.types[s.buffer[e]],this.from=i+s.buffer[e+1],this.to=i+s.buffer[e+2],!0}yield(e){return e?e instanceof Un?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,i){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,i,this.mode));let{buffer:s}=this.buffer,r=s.findChild(this.index+4,s.buffer[this.index+3],e,t-this.buffer.start,i);return r<0?!1:(this.stack.push(this.index),this.yieldBuf(r))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,i=this.mode){return this.buffer?i>.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,i))}parent(){if(!this.buffer)return this.yieldNode(this.mode>.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode>.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,i=this.stack.length-1;if(e<0){let s=i<0?0:this.stack[i]+4;if(this.index!=s)return this.yieldBuf(t.findChild(s,this.index,-1,0,4))}else{let s=t.buffer[this.index+3];if(s<(i<0?t.buffer.length:t.buffer[this.stack[i]+3]))return this.yieldBuf(s)}return i<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,i,{buffer:s}=this;if(s){if(e>0){if(this.index-1)for(let r=t+e,o=e<0?-1:i._tree.children.length;r!=o;r+=e){let u=i._tree.children[r];if(this.mode>.IncludeAnonymous||u instanceof Dl||!u.type.isAnonymous||ag(u))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to=0;){for(let o=e;o;o=o._parent)if(o.index==s){if(s==this.index)return o;t=o,i=r+1;break e}s=this.stack[--r]}for(let s=i;s=0;r--){if(r<0)return Ym(this._tree,e,s);let o=i[t.buffer[this.stack[r]]];if(!o.isAnonymous){if(e[s]&&e[s]!=o.name)return!1;s--}}return!0}}function ag(n){return n.children.some(e=>e instanceof Dl||!e.type.isAnonymous||ag(e))}function KN(n){var e;let{buffer:t,nodeSet:i,maxBufferLength:s=zN,reused:r=[],minRepeatType:o=i.types.length}=n,u=Array.isArray(t)?new sg(t,t.length):t,f=i.types,d=0,p=0;function b(B,I,V,Q,Z,ue){let{id:fe,start:ne,end:pe,size:J}=u,ve=p,z=d;if(J<0)if(u.next(),J==-1){let D=r[fe];V.push(D),Q.push(ne-B);return}else if(J==-3){d=fe;return}else if(J==-4){p=fe;return}else throw new RangeError(`Unrecognized record size: ${J}`);let K=f[fe],$,le,ge=ne-B;if(pe-ne<=s&&(le=C(u.pos-I,Z))){let D=new Uint16Array(le.size-le.skip),P=u.pos-le.size,ee=D.length;for(;u.pos>P;)ee=T(le.start,D,ee);$=new Dl(D,pe-le.start,i),ge=le.start-B}else{let D=u.pos-J;u.next();let P=[],ee=[],ae=fe>=o?fe:-1,ye=0,Ce=pe;for(;u.pos>D;)ae>=0&&u.id==ae&&u.size>=0?(u.end<=Ce-s&&(S(P,ee,ne,ye,u.end,Ce,ae,ve,z),ye=P.length,Ce=u.end),u.next()):ue>2500?x(ne,D,P,ee):b(ne,D,P,ee,ae,ue+1);if(ae>=0&&ye>0&&ye-1&&ye>0){let Ee=w(K,z);$=rg(K,P,ee,0,P.length,0,pe-ne,Ee,Ee)}else $=A(K,P,ee,pe-ne,ve-pe,z)}V.push($),Q.push(ge)}function x(B,I,V,Q){let Z=[],ue=0,fe=-1;for(;u.pos>I;){let{id:ne,start:pe,end:J,size:ve}=u;if(ve>4)u.next();else{if(fe>-1&&pe=0;J-=3)ne[ve++]=Z[J],ne[ve++]=Z[J+1]-pe,ne[ve++]=Z[J+2]-pe,ne[ve++]=ve;V.push(new Dl(ne,Z[2]-pe,i)),Q.push(pe-B)}}function w(B,I){return(V,Q,Z)=>{let ue=0,fe=V.length-1,ne,pe;if(fe>=0&&(ne=V[fe])instanceof st){if(!fe&&ne.type==B&&ne.length==Z)return ne;(pe=ne.prop(Le.lookAhead))&&(ue=Q[fe]+ne.length+pe)}return A(B,V,Q,Z,ue,I)}}function S(B,I,V,Q,Z,ue,fe,ne,pe){let J=[],ve=[];for(;B.length>Q;)J.push(B.pop()),ve.push(I.pop()+V-Z);B.push(A(i.types[fe],J,ve,ue-Z,ne-ue,pe)),I.push(Z-V)}function A(B,I,V,Q,Z,ue,fe){if(ue){let ne=[Le.contextHash,ue];fe=fe?[ne].concat(fe):[ne]}if(Z>25){let ne=[Le.lookAhead,Z];fe=fe?[ne].concat(fe):[ne]}return new st(B,I,V,Q,fe)}function C(B,I){let V=u.fork(),Q=0,Z=0,ue=0,fe=V.end-s,ne={size:0,start:0,skip:0};e:for(let pe=V.pos-B;V.pos>pe;){let J=V.size;if(V.id==I&&J>=0){ne.size=Q,ne.start=Z,ne.skip=ue,ue+=4,Q+=4,V.next();continue}let ve=V.pos-J;if(J<0||ve=o?4:0,K=V.start;for(V.next();V.pos>ve;){if(V.size<0)if(V.size==-3||V.size==-4)z+=4;else break e;else V.id>=o&&(z+=4);V.next()}Z=K,Q+=J,ue+=z}return(I<0||Q==B)&&(ne.size=Q,ne.start=Z,ne.skip=ue),ne.size>4?ne:void 0}function T(B,I,V){let{id:Q,start:Z,end:ue,size:fe}=u;if(u.next(),fe>=0&&Q4){let pe=u.pos-(fe-4);for(;u.pos>pe;)V=T(B,I,V)}I[--V]=ne,I[--V]=ue-B,I[--V]=Z-B,I[--V]=Q}else fe==-3?d=Q:fe==-4&&(p=Q);return V}let R=[],E=[];for(;u.pos>0;)b(n.start||0,n.bufferStart||0,R,E,-1,0);let q=(e=n.length)!==null&&e!==void 0?e:R.length?E[0]+R[0].length:0;return new st(f[n.topID],R.reverse(),E.reverse(),q)}const kx=new WeakMap;function Eu(n,e){if(!n.isAnonymous||e instanceof Dl||e.type!=n)return 1;let t=kx.get(e);if(t==null){t=1;for(let i of e.children){if(i.type!=n||!(i instanceof st)){t=1;break}t+=Eu(n,i)}kx.set(e,t)}return t}function rg(n,e,t,i,s,r,o,u,f){let d=0;for(let S=i;S=p)break;I+=V}if(E==q+1){if(I>p){let V=S[q];w(V.children,V.positions,0,V.children.length,A[q]+R);continue}b.push(S[q])}else{let V=A[E-1]+S[E-1].length-B;b.push(rg(n,S,A,q,E,B,V,null,f))}x.push(B+R-r)}}return w(e,t,i,s,0),(u||f)(b,x,o)}class ms{constructor(e,t,i,s,r=!1,o=!1){this.from=e,this.to=t,this.tree=i,this.offset=s,this.open=(r?1:0)|(o?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,t=[],i=!1){let s=[new ms(0,e.length,e,0,!1,i)];for(let r of t)r.to>e.length&&s.push(r);return s}static applyChanges(e,t,i=128){if(!t.length)return e;let s=[],r=1,o=e.length?e[0]:null;for(let u=0,f=0,d=0;;u++){let p=u=i)for(;o&&o.from=x.from||b<=x.to||d){let w=Math.max(x.from,f)-d,S=Math.min(x.to,b)-d;x=w>=S?null:new ms(w,S,x.tree,x.offset+d,u>0,!!p)}if(x&&s.push(x),o.to>b)break;o=rnew am(s.from,s.to)):[new am(0,0)]:[new am(0,e.length)],this.createParse(e,t||[],i)}parse(e,t,i){let s=this.startParse(e,t,i);for(;;){let r=s.advance();if(r)return r}}}class GN{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}}new Le({perNode:!0});let Fm=[],uw=[];(()=>{let n="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,t=0;e>1;if(n=uw[i])e=i+1;else return!0;if(e==t)return!1}}function Cx(n){return n>=127462&&n<=127487}const Ax=8205;function YN(n,e,t=!0,i=!0){return(t?hw:WN)(n,e,i)}function hw(n,e,t){if(e==n.length)return e;e&&fw(n.charCodeAt(e))&&dw(n.charCodeAt(e-1))&&e--;let i=rm(n,e);for(e+=Mx(i);e=0&&Cx(rm(n,o));)r++,o-=2;if(r%2==0)break;e+=2}else break}return e}function WN(n,e,t){for(;e>0;){let i=hw(n,e-2,t);if(i=56320&&n<57344}function dw(n){return n>=55296&&n<56320}function Mx(n){return n<65536?1:2}class qe{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,i){[e,t]=Aa(this,e,t);let s=[];return this.decompose(0,e,s,2),i.length&&i.decompose(0,i.length,s,3),this.decompose(t,this.length,s,1),di.from(s,this.length-(t-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=Aa(this,e,t);let i=[];return this.decompose(e,t,i,0),di.from(i,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),s=new Fr(this),r=new Fr(e);for(let o=t,u=t;;){if(s.next(o),r.next(o),o=0,s.lineBreak!=r.lineBreak||s.done!=r.done||s.value!=r.value)return!1;if(u+=s.value.length,s.done||u>=i)return!0}}iter(e=1){return new Fr(this,e)}iterRange(e,t=this.length){return new mw(this,e,t)}iterLines(e,t){let i;if(e==null)i=this.iter();else{t==null&&(t=this.lines+1);let s=this.line(e).from;i=this.iterRange(s,Math.max(s,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new pw(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?qe.empty:e.length<=32?new pt(e):di.from(pt.split(e,[]))}}class pt extends qe{constructor(e,t=FN(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,i,s){for(let r=0;;r++){let o=this.text[r],u=s+o.length;if((t?i:u)>=e)return new XN(s,u,i,o);s=u+1,i++}}decompose(e,t,i,s){let r=e<=0&&t>=this.length?this:new pt(Tx(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(s&1){let o=i.pop(),u=Du(r.text,o.text.slice(),0,r.length);if(u.length<=32)i.push(new pt(u,o.length+r.length));else{let f=u.length>>1;i.push(new pt(u.slice(0,f)),new pt(u.slice(f)))}}else i.push(r)}replace(e,t,i){if(!(i instanceof pt))return super.replace(e,t,i);[e,t]=Aa(this,e,t);let s=Du(this.text,Du(i.text,Tx(this.text,0,e)),t),r=this.length+i.length-(t-e);return s.length<=32?new pt(s,r):di.from(pt.split(s,[]),r)}sliceString(e,t=this.length,i=` +`:i}const SN="***MASKED***";function kN(n){return JSON.parse(JSON.stringify(n))}function Uu(n,e,t){if(n!=null){if(typeof n=="string"&&n===SN){t.add(e);return}if(Array.isArray(n)){n.forEach((i,s)=>{Uu(i,`${e}.${s}`,t)});return}if(typeof n=="object")for(const[i,s]of Object.entries(n))Uu(s,e?`${e}.${i}`:i,t)}}function CN(n,e){let t=n;for(const i of e){if(t==null||typeof t!="object")return;t=t[i]}return t}function AN(n,e,t){if(e.length===0)return;let i=n;for(let r=0;r{e(!0),r(null);try{const K=await oT(),$=typeof K=="string"?K:JSON.stringify(K,null,2);b($);try{const ie=xx($);w(ie);const ge=new Set;Uu(ie,"",ge),S.current=ge}catch{w({}),S.current=new Set,d("raw")}A.current=new Set}catch(K){r(K instanceof Error?K.message:"Failed to load configuration")}finally{e(!1)}},[]),E=M.useRef(!1);M.useEffect(()=>{E.current||(E.current=!0,R())},[R]),M.useEffect(()=>()=>{C.current&&clearTimeout(C.current)},[]);const q=(K,$)=>K?`${K}.${$}`:$,B=(K,$)=>q(K,$).split(".").filter(Boolean),I=M.useCallback((K,$)=>{const ie=B(K,$);return CN(x,ie)},[x]),V=M.useCallback((K,$,ie)=>{const ge=q(K,$),D=B(K,$);w(P=>{const ee=kN(P);return AN(ee,D,ie),ee}),A.current.add(ge),T(P=>P+1)},[]),Q=M.useCallback((K,$)=>{const ie=q(K,$);return S.current.has(ie)&&!A.current.has(ie)},[]),Z=M.useCallback((K,$)=>{const ie=q(K,$);return A.current.has(ie)},[]),ue=M.useCallback(()=>{try{return wN(x)}catch{return p}},[x,p]),fe=M.useCallback(K=>{try{const $=xx(K);w($);const ie=new Set;return Uu($,"",ie),S.current=ie,!0}catch{return!1}},[]),ne=M.useCallback(K=>{if(K===f)return!0;if(K==="raw"){const $=ue();return b($),d("raw"),!0}else return fe(p)?(d("form"),!0):(r("Invalid TOML syntax. Fix errors before switching to Form view."),!1)},[f,ue,fe,p]),pe=M.useCallback(K=>{b(K)},[]),J=M.useCallback(async()=>{i(!0),r(null),u(null),C.current&&clearTimeout(C.current);try{let K;f==="form"?K=ue():K=p,await cT(K),u("Configuration saved successfully."),C.current=setTimeout(()=>u(null),4e3)}catch(K){r(K instanceof Error?K.message:"Failed to save configuration")}finally{i(!1)}},[f,ue,p]),ve=M.useCallback(async()=>{await R()},[R]),z=M.useCallback(()=>{r(null),u(null),C.current&&(clearTimeout(C.current),C.current=null)},[]);return{loading:n,saving:t,error:s,success:o,mode:f,rawToml:p,parsed:x,maskedPaths:S.current,dirtyPaths:A.current,setMode:ne,getFieldValue:I,setFieldValue:V,isFieldMasked:Q,isFieldDirty:Z,setRawToml:pe,save:J,reload:ve,clearMessages:z}}const sm=[{path:"",category:"general",title:"General",description:"Top-level model and provider settings",icon:Zp,fields:[{key:"api_key",label:"API Key",type:"password",sensitive:!0,description:"e.g. sk-abc123... or key-xyz..."},{key:"api_url",label:"API URL",type:"text",description:"e.g. https://api.openai.com/v1"},{key:"default_provider",label:"Default Provider",type:"text",description:"e.g. openrouter, openai, anthropic",defaultValue:"openrouter"},{key:"provider_api",label:"Provider API Mode",type:"select",options:[{value:"openai-chat-completions",label:"OpenAI Chat Completions"},{value:"openai-responses",label:"OpenAI Responses"}]},{key:"default_model",label:"Default Model",type:"text",description:"e.g. anthropic/claude-sonnet-4.6",defaultValue:"anthropic/claude-sonnet-4.6"},{key:"default_temperature",label:"Temperature",type:"number",min:0,max:2,step:.1,defaultValue:.7,description:"Default: 0.7 (range 0.0–2.0)"},{key:"model_support_vision",label:"Model Supports Vision",type:"toggle",description:"Whether the model supports image inputs"}]},{path:"provider",category:"general",title:"Provider",description:"Provider-specific settings",icon:Nu,defaultCollapsed:!0,fields:[{key:"reasoning_level",label:"Reasoning Level",type:"text",description:"e.g. low, medium, high"}]},{path:"observability",category:"advanced",title:"Observability",description:"Tracing, metrics, and telemetry",icon:z2,defaultCollapsed:!0,fields:[{key:"backend",label:"Backend",type:"select",defaultValue:"none",options:[{value:"none",label:"None"},{value:"otlp",label:"OpenTelemetry (OTLP)"}]},{key:"otel_endpoint",label:"OTEL Endpoint",type:"text",description:"e.g. http://localhost:4317"},{key:"otel_service_name",label:"OTEL Service Name",type:"text",description:"e.g. zeroclaw-prod"},{key:"runtime_trace_mode",label:"Runtime Trace Mode",type:"select",defaultValue:"none",options:[{value:"none",label:"None"},{value:"file",label:"File"}]},{key:"runtime_trace_path",label:"Runtime Trace Path",type:"text",defaultValue:"state/runtime-trace.jsonl",description:"Default: state/runtime-trace.jsonl"},{key:"runtime_trace_max_entries",label:"Max Trace Entries",type:"number",min:1,defaultValue:200,description:"Default: 200"}]},{path:"autonomy",category:"advanced",title:"Autonomy",description:"Agent autonomy level, action limits, and tool permissions",icon:G2,fields:[{key:"level",label:"Autonomy Level",type:"select",defaultValue:"supervised",options:[{value:"read_only",label:"Read Only"},{value:"supervised",label:"Supervised"},{value:"full",label:"Full"}]},{key:"workspace_only",label:"Workspace Only",type:"toggle",defaultValue:!0,description:"Restrict actions to workspace directory"},{key:"max_actions_per_hour",label:"Max Actions / Hour",type:"number",min:1,defaultValue:20,description:"Default: 20"},{key:"max_cost_per_day_cents",label:"Max Cost / Day (cents)",type:"number",min:0,defaultValue:500,description:"Default: 500 (= $5.00)"},{key:"require_approval_for_medium_risk",label:"Require Approval for Medium Risk",type:"toggle",defaultValue:!0},{key:"block_high_risk_commands",label:"Block High Risk Commands",type:"toggle",defaultValue:!0},{key:"allowed_commands",label:"Allowed Commands",type:"tag-list",tagPlaceholder:"Add command (e.g. git, npm, cargo)"},{key:"forbidden_paths",label:"Forbidden Paths",type:"tag-list",tagPlaceholder:"Add path (e.g. /etc, ~/.ssh)"},{key:"auto_approve",label:"Auto-Approve Tools",type:"tag-list",tagPlaceholder:"e.g. file_read, memory_recall"},{key:"always_ask",label:"Always Ask Tools",type:"tag-list",tagPlaceholder:"e.g. shell, file_write"},{key:"allowed_roots",label:"Allowed Roots",type:"tag-list",tagPlaceholder:"e.g. /home/user/projects"},{key:"shell_env_passthrough",label:"Shell Env Passthrough",type:"tag-list",tagPlaceholder:"e.g. PATH, HOME, EDITOR"}]},{path:"security.sandbox",category:"security",title:"Security: Sandbox",description:"Process sandboxing backend",icon:v3,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",description:"Enable sandboxing (auto-detect if unset)"},{key:"backend",label:"Backend",type:"select",defaultValue:"auto",options:[{value:"auto",label:"Auto"},{value:"landlock",label:"Landlock"},{value:"firejail",label:"Firejail"},{value:"bubblewrap",label:"Bubblewrap"},{value:"docker",label:"Docker"},{value:"none",label:"None"}]},{key:"firejail_args",label:"Firejail Extra Args",type:"tag-list",tagPlaceholder:"e.g. --net=none, --private"}]},{path:"security.resources",category:"security",title:"Security: Resource Limits",description:"Memory, CPU, and subprocess limits",icon:N3,defaultCollapsed:!0,fields:[{key:"max_memory_mb",label:"Max Memory (MB)",type:"number",min:1,defaultValue:512,description:"Default: 512"},{key:"max_cpu_time_seconds",label:"Max CPU Time (s)",type:"number",min:1,defaultValue:60,description:"Default: 60"},{key:"max_subprocesses",label:"Max Subprocesses",type:"number",min:1,defaultValue:10,description:"Default: 10"},{key:"memory_monitoring",label:"Memory Monitoring",type:"toggle",defaultValue:!0}]},{path:"security.audit",category:"security",title:"Security: Audit",description:"Audit logging configuration",icon:H2,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!0},{key:"log_path",label:"Log Path",type:"text",defaultValue:"audit.log",description:"Default: audit.log"},{key:"max_size_mb",label:"Max Size (MB)",type:"number",min:1,defaultValue:100,description:"Default: 100"},{key:"sign_events",label:"Sign Events",type:"toggle",defaultValue:!1}]},{path:"security.otp",category:"security",title:"Security: OTP",description:"One-time password challenge settings",icon:V2,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!0},{key:"method",label:"Method",type:"select",defaultValue:"totp",options:[{value:"totp",label:"TOTP"},{value:"pairing",label:"Pairing"},{value:"cli-prompt",label:"CLI Prompt"}]},{key:"token_ttl_secs",label:"Token TTL (s)",type:"number",min:1,defaultValue:30,description:"Default: 30"},{key:"cache_valid_secs",label:"Cache Valid (s)",type:"number",min:0,defaultValue:300,description:"Default: 300 (5 min)"},{key:"gated_actions",label:"Gated Actions",type:"tag-list",tagPlaceholder:"e.g. shell, file_write, browser_open"},{key:"gated_domains",label:"Gated Domains",type:"tag-list",tagPlaceholder:"e.g. example.com"},{key:"challenge_delivery",label:"Challenge Delivery",type:"select",defaultValue:"dm",options:[{value:"dm",label:"Direct Message"},{value:"thread",label:"Thread"},{value:"ephemeral",label:"Ephemeral"}]},{key:"challenge_timeout_secs",label:"Challenge Timeout (s)",type:"number",min:1,defaultValue:120,description:"Default: 120 (2 min)"},{key:"challenge_max_attempts",label:"Max Attempts",type:"number",min:1,max:10,defaultValue:3,description:"Default: 3 (max 10)"}]},{path:"security.estop",category:"security",title:"Security: Emergency Stop",description:"Emergency stop configuration",icon:U3,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!1},{key:"state_file",label:"State File",type:"text",defaultValue:"~/.zeroclaw/estop-state.json",description:"Default: ~/.zeroclaw/estop-state.json"},{key:"require_otp_to_resume",label:"Require OTP to Resume",type:"toggle",defaultValue:!0}]},{path:"security.perplexity_filter",category:"security",title:"Security: Perplexity Filter",description:"Adversarial suffix detection",icon:Xp,defaultCollapsed:!0,fields:[{key:"enable_perplexity_filter",label:"Enabled",type:"toggle",defaultValue:!1},{key:"perplexity_threshold",label:"Perplexity Threshold",type:"number",min:0,step:.1,defaultValue:18,description:"Default: 18.0"},{key:"suffix_window_chars",label:"Suffix Window (chars)",type:"number",min:1,defaultValue:64,description:"Default: 64"},{key:"min_prompt_chars",label:"Min Prompt (chars)",type:"number",min:1,defaultValue:32,description:"Default: 32"},{key:"symbol_ratio_threshold",label:"Symbol Ratio Threshold",type:"number",min:0,max:1,step:.01,defaultValue:.2,description:"Default: 0.20 (range 0–1)"}]},{path:"security.url_access",category:"security",title:"Security: URL Access",description:"Network access controls for URLs",icon:eu,defaultCollapsed:!0,fields:[{key:"block_private_ip",label:"Block Private IPs",type:"toggle",defaultValue:!0},{key:"allow_loopback",label:"Allow Loopback",type:"toggle",defaultValue:!1},{key:"allow_cidrs",label:"Allowed CIDRs",type:"tag-list",tagPlaceholder:"e.g. 10.0.0.0/8, 192.168.0.0/16"},{key:"allow_domains",label:"Allowed Domains",type:"tag-list",tagPlaceholder:"e.g. api.example.com"}]},{path:"runtime",category:"runtime",title:"Runtime",description:"Runtime execution environment",icon:Y3,defaultCollapsed:!0,fields:[{key:"kind",label:"Kind",type:"select",defaultValue:"native",options:[{value:"native",label:"Native"},{value:"docker",label:"Docker"},{value:"wasm",label:"Sandboxed"}]},{key:"reasoning_enabled",label:"Reasoning Enabled",type:"toggle",description:"Enable model reasoning mode"}]},{path:"runtime.docker",category:"runtime",title:"Runtime: Docker",description:"Docker container runtime settings",icon:A3,defaultCollapsed:!0,fields:[{key:"image",label:"Image",type:"text",defaultValue:"alpine:3.20",description:"e.g. alpine:3.20, ubuntu:22.04"},{key:"network",label:"Network",type:"text",defaultValue:"none",description:"e.g. none, bridge, host"},{key:"memory_limit_mb",label:"Memory Limit (MB)",type:"number",min:1,defaultValue:512,description:"Default: 512"},{key:"cpu_limit",label:"CPU Limit",type:"number",min:.1,step:.1,defaultValue:1,description:"Default: 1.0 (number of cores)"},{key:"read_only_rootfs",label:"Read-Only Root FS",type:"toggle",defaultValue:!0},{key:"mount_workspace",label:"Mount Workspace",type:"toggle",defaultValue:!0},{key:"allowed_workspace_roots",label:"Allowed Workspace Roots",type:"tag-list",tagPlaceholder:"e.g. /home/user/projects"}]},{path:"research",category:"runtime",title:"Research",description:"Research phase configuration",icon:x3,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!1},{key:"trigger",label:"Trigger",type:"select",defaultValue:"never",options:[{value:"never",label:"Never"},{value:"always",label:"Always"},{value:"keywords",label:"Keywords"},{value:"length",label:"Message Length"},{value:"question",label:"Question Mark"}]},{key:"keywords",label:"Trigger Keywords",type:"tag-list",tagPlaceholder:"e.g. find, search, investigate"},{key:"min_message_length",label:"Min Message Length",type:"number",min:1,defaultValue:50,description:"Default: 50 characters"},{key:"max_iterations",label:"Max Iterations",type:"number",min:1,defaultValue:5,description:"Default: 5"},{key:"show_progress",label:"Show Progress",type:"toggle",defaultValue:!0}]},{path:"reliability",category:"advanced",title:"Reliability",description:"Retry, fallback, and backoff settings",icon:P2,defaultCollapsed:!0,fields:[{key:"provider_retries",label:"Provider Retries",type:"number",min:0,defaultValue:2,description:"Default: 2"},{key:"provider_backoff_ms",label:"Backoff (ms)",type:"number",min:0,defaultValue:500,description:"Default: 500"},{key:"fallback_providers",label:"Fallback Providers",type:"tag-list",tagPlaceholder:"e.g. openai, anthropic"},{key:"api_keys",label:"Fallback API Keys",type:"tag-list",tagPlaceholder:"Add fallback API key"},{key:"channel_initial_backoff_secs",label:"Channel Initial Backoff (s)",type:"number",min:1,defaultValue:2,description:"Default: 2"},{key:"channel_max_backoff_secs",label:"Channel Max Backoff (s)",type:"number",min:1,defaultValue:60,description:"Default: 60"},{key:"scheduler_poll_secs",label:"Scheduler Poll (s)",type:"number",min:1,defaultValue:15,description:"Default: 15"},{key:"scheduler_retries",label:"Scheduler Retries",type:"number",min:0,defaultValue:2,description:"Default: 2"}]},{path:"scheduler",category:"advanced",title:"Scheduler",description:"Task scheduler settings",icon:no,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!0},{key:"max_tasks",label:"Max Tasks",type:"number",min:1,defaultValue:64,description:"Default: 64"},{key:"max_concurrent",label:"Max Concurrent",type:"number",min:1,defaultValue:4,description:"Default: 4"}]},{path:"agent",category:"general",title:"Agent",description:"Agent orchestration settings",icon:Tu,fields:[{key:"compact_context",label:"Compact Context",type:"toggle",defaultValue:!0,description:"Compress long conversation context"},{key:"max_tool_iterations",label:"Max Tool Iterations",type:"number",min:1,defaultValue:20,description:"Default: 20"},{key:"max_history_messages",label:"Max History Messages",type:"number",min:1,defaultValue:50,description:"Default: 50"},{key:"parallel_tools",label:"Parallel Tools",type:"toggle",defaultValue:!1,description:"Execute tools in parallel when possible"},{key:"tool_dispatcher",label:"Tool Dispatcher",type:"select",defaultValue:"auto",options:[{value:"auto",label:"Auto"},{value:"sequential",label:"Sequential"},{value:"parallel",label:"Parallel"}]}]},{path:"skills",category:"advanced",title:"Skills",description:"Open skills and script execution",icon:$p,defaultCollapsed:!0,fields:[{key:"open_skills_enabled",label:"Open Skills Enabled",type:"toggle",defaultValue:!1},{key:"open_skills_dir",label:"Open Skills Directory",type:"text",description:"e.g. ./skills or /opt/zeroclaw/skills"},{key:"allow_scripts",label:"Allow Scripts",type:"toggle",defaultValue:!1},{key:"prompt_injection_mode",label:"Prompt Injection Mode",type:"select",defaultValue:"full",options:[{value:"full",label:"Full"},{value:"compact",label:"Compact"}]},{key:"clawhub_token",label:"ClawHub Token",type:"password",sensitive:!0,description:"e.g. clh_abc123..."}]},{path:"heartbeat",category:"advanced",title:"Heartbeat",description:"Periodic heartbeat messages",icon:D3,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!1},{key:"interval_minutes",label:"Interval (min)",type:"number",min:1,defaultValue:30,description:"Default: 30"},{key:"message",label:"Message",type:"text",description:"e.g. Agent is alive and running"},{key:"target",label:"Target Channel",type:"text",description:"e.g. telegram, discord, slack"},{key:"to",label:"Recipient",type:"text",description:"e.g. channel ID or username"}]},{path:"cron",category:"advanced",title:"Cron",description:"Cron job settings",icon:$3,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!0},{key:"max_run_history",label:"Max Run History",type:"number",min:1,defaultValue:50,description:"Default: 50"}]},{path:"goal_loop",category:"advanced",title:"Goal Loop",description:"Autonomous goal pursuit loop",icon:Q3,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!1},{key:"interval_minutes",label:"Interval (min)",type:"number",min:1,defaultValue:10,description:"Default: 10"},{key:"step_timeout_secs",label:"Step Timeout (s)",type:"number",min:1,defaultValue:120,description:"Default: 120 (2 min)"},{key:"max_steps_per_cycle",label:"Max Steps / Cycle",type:"number",min:1,defaultValue:3,description:"Default: 3"},{key:"channel",label:"Channel",type:"text",description:"e.g. telegram, discord"},{key:"target",label:"Target",type:"text",description:"e.g. channel ID or user ID"}]},{path:"channels_config",category:"channels",title:"Channels",description:"Channel transport settings",icon:Pi,fields:[{key:"cli",label:"CLI Enabled",type:"toggle",defaultValue:!0},{key:"message_timeout_secs",label:"Message Timeout (s)",type:"number",min:1,defaultValue:300,description:"Default: 300 (5 min)"}]},{path:"channels_config.telegram",category:"channels",title:"Telegram",description:"Telegram bot channel",icon:K2,defaultCollapsed:!0,fields:[{key:"bot_token",label:"Bot Token",type:"password",sensitive:!0,description:"e.g. 123456:ABC-DEF1234ghIkl-zyx57W2v"},{key:"allowed_users",label:"Allowed Users",type:"tag-list",tagPlaceholder:"e.g. 123456789 or @username"},{key:"stream_mode",label:"Stream Mode",type:"select",defaultValue:"off",options:[{value:"off",label:"Off"},{value:"partial",label:"Partial"}]},{key:"draft_update_interval_ms",label:"Draft Update Interval (ms)",type:"number",min:100,defaultValue:1e3,description:"Default: 1000"},{key:"mention_only",label:"Mention Only",type:"toggle",defaultValue:!1},{key:"interrupt_on_new_message",label:"Interrupt on New Message",type:"toggle",defaultValue:!1},{key:"base_url",label:"Custom Base URL",type:"text",description:"e.g. https://api.telegram.org"}]},{path:"channels_config.discord",category:"channels",title:"Discord",description:"Discord bot channel",icon:qm,defaultCollapsed:!0,fields:[{key:"bot_token",label:"Bot Token",type:"password",sensitive:!0,description:"e.g. MTIzNDU2Nzg5.AbCdEf..."},{key:"guild_id",label:"Guild ID",type:"text",description:"e.g. 123456789012345678"},{key:"allowed_users",label:"Allowed Users",type:"tag-list",tagPlaceholder:"e.g. 123456789012345678"},{key:"listen_to_bots",label:"Listen to Bots",type:"toggle",defaultValue:!1},{key:"mention_only",label:"Mention Only",type:"toggle",defaultValue:!1}]},{path:"channels_config.slack",category:"channels",title:"Slack",description:"Slack bot channel",icon:qm,defaultCollapsed:!0,fields:[{key:"bot_token",label:"Bot Token",type:"password",sensitive:!0,description:"e.g. xoxb-1234567890-..."},{key:"app_token",label:"App Token",type:"password",sensitive:!0,description:"e.g. xapp-1-..."},{key:"channel_id",label:"Channel ID",type:"text",description:"e.g. C0123456789"},{key:"allowed_users",label:"Allowed Users",type:"tag-list",tagPlaceholder:"e.g. U0123456789"}]},{path:"channels_config.mattermost",category:"channels",title:"Mattermost",description:"Mattermost bot channel",icon:Pi,defaultCollapsed:!0,fields:[{key:"url",label:"Server URL",type:"text",description:"e.g. https://mattermost.example.com"},{key:"bot_token",label:"Bot Token",type:"password",sensitive:!0,description:"e.g. abc123def456..."},{key:"channel_id",label:"Channel ID",type:"text",description:"e.g. abc123def456ghi789"},{key:"allowed_users",label:"Allowed Users",type:"tag-list",tagPlaceholder:"e.g. user_id or username"},{key:"mention_only",label:"Mention Only",type:"toggle"}]},{path:"channels_config.matrix",category:"channels",title:"Matrix",description:"Matrix chat channel",icon:Pi,defaultCollapsed:!0,fields:[{key:"homeserver",label:"Homeserver URL",type:"text",description:"e.g. https://matrix.org"},{key:"access_token",label:"Access Token",type:"password",sensitive:!0,description:"e.g. syt_abc123..."},{key:"user_id",label:"User ID",type:"text",description:"e.g. @bot:matrix.org"},{key:"room_id",label:"Room ID",type:"text",description:"e.g. !abc123:matrix.org"},{key:"allowed_users",label:"Allowed Users",type:"tag-list",tagPlaceholder:"e.g. @user:matrix.org"},{key:"mention_only",label:"Mention Only",type:"toggle",defaultValue:!1}]},{path:"channels_config.signal",category:"channels",title:"Signal",description:"Signal messaging channel",icon:Pi,defaultCollapsed:!0,fields:[{key:"http_url",label:"HTTP URL",type:"text",description:"e.g. http://localhost:8080"},{key:"account",label:"Account",type:"text",description:"e.g. +1234567890"},{key:"group_id",label:"Group ID",type:"text",description:"e.g. base64-encoded group ID"},{key:"allowed_from",label:"Allowed From",type:"tag-list",tagPlaceholder:"e.g. +1234567890"},{key:"ignore_attachments",label:"Ignore Attachments",type:"toggle",defaultValue:!1}]},{path:"channels_config.nostr",category:"channels",title:"Nostr",description:"Nostr relay channel",icon:Pi,defaultCollapsed:!0,fields:[{key:"private_key",label:"Private Key",type:"password",sensitive:!0,description:"e.g. nsec1abc123..."},{key:"relays",label:"Relays",type:"tag-list",tagPlaceholder:"e.g. wss://relay.damus.io"},{key:"allowed_pubkeys",label:"Allowed Pubkeys",type:"tag-list",tagPlaceholder:"e.g. npub1abc123..."}]},{path:"channels_config.lark",category:"channels",title:"Lark",description:"Lark/Feishu bot channel",icon:Pi,defaultCollapsed:!0,fields:[{key:"app_id",label:"App ID",type:"text",description:"e.g. cli_abc123..."},{key:"app_secret",label:"App Secret",type:"password",sensitive:!0,description:"e.g. abc123def456..."},{key:"encrypt_key",label:"Encrypt Key",type:"password",sensitive:!0,description:"Lark event encryption key"},{key:"verification_token",label:"Verification Token",type:"password",sensitive:!0,description:"Lark event verification token"},{key:"allowed_users",label:"Allowed Users",type:"tag-list",tagPlaceholder:"e.g. ou_abc123..."},{key:"mention_only",label:"Mention Only",type:"toggle",defaultValue:!1},{key:"receive_mode",label:"Receive Mode",type:"select",defaultValue:"websocket",options:[{value:"websocket",label:"WebSocket"},{value:"webhook",label:"Webhook"}]},{key:"port",label:"Webhook Port",type:"number",min:1,max:65535,description:"e.g. 8080 (range 1–65535)"}]},{path:"channels_config.dingtalk",category:"channels",title:"DingTalk",description:"DingTalk bot channel",icon:Pi,defaultCollapsed:!0,fields:[{key:"client_id",label:"Client ID",type:"text",description:"e.g. dingabc123..."},{key:"client_secret",label:"Client Secret",type:"password",sensitive:!0,description:"e.g. abc123def456..."},{key:"allowed_users",label:"Allowed Users",type:"tag-list",tagPlaceholder:"e.g. user_id"}]},{path:"channels_config.qq",category:"channels",title:"QQ",description:"QQ bot channel",icon:Pi,defaultCollapsed:!0,fields:[{key:"app_id",label:"App ID",type:"text",description:"e.g. 102012345"},{key:"app_secret",label:"App Secret",type:"password",sensitive:!0,description:"e.g. abc123def456..."},{key:"allowed_users",label:"Allowed Users",type:"tag-list",tagPlaceholder:"e.g. QQ user ID"},{key:"receive_mode",label:"Receive Mode",type:"select",defaultValue:"webhook",options:[{value:"websocket",label:"WebSocket"},{value:"webhook",label:"Webhook"}]},{key:"environment",label:"Environment",type:"select",defaultValue:"production",options:[{value:"production",label:"Production"},{value:"sandbox",label:"Sandbox"}]}]},{path:"channels_config.napcat",category:"channels",title:"Napcat (OneBot)",description:"QQ via OneBot v11 (Napcat)",icon:Pi,defaultCollapsed:!0,fields:[{key:"websocket_url",label:"WebSocket URL",type:"text",description:"e.g. ws://127.0.0.1:3001"},{key:"api_base_url",label:"HTTP API Base URL",type:"text",description:"Optional. Leave empty to auto-derive from websocket_url"},{key:"access_token",label:"Access Token",type:"password",sensitive:!0,description:"Optional bearer token for Napcat/OneBot API"},{key:"allowed_users",label:"Allowed Users",type:"tag-list",tagPlaceholder:"e.g. 10001 or '*'"}]},{path:"memory",category:"memory",title:"Memory",description:"Memory backend and embedding settings",icon:Um,fields:[{key:"backend",label:"Backend",type:"select",defaultValue:"sqlite",options:[{value:"sqlite",label:"SQLite"},{value:"markdown",label:"Markdown"}]},{key:"auto_save",label:"Auto Save",type:"toggle",defaultValue:!0},{key:"hygiene_enabled",label:"Hygiene Enabled",type:"toggle",defaultValue:!0},{key:"archive_after_days",label:"Archive After (days)",type:"number",min:1,defaultValue:7,description:"Default: 7"},{key:"purge_after_days",label:"Purge After (days)",type:"number",min:1,defaultValue:30,description:"Default: 30"},{key:"conversation_retention_days",label:"Conversation Retention (days)",type:"number",min:1,defaultValue:30,description:"Default: 30"},{key:"embedding_provider",label:"Embedding Provider",type:"text",defaultValue:"none",description:"e.g. none, openai, local"},{key:"embedding_model",label:"Embedding Model",type:"text",defaultValue:"text-embedding-3-small",description:"e.g. text-embedding-3-small"},{key:"embedding_dimensions",label:"Embedding Dimensions",type:"number",min:1,defaultValue:1536,description:"Default: 1536"},{key:"vector_weight",label:"Vector Weight",type:"number",min:0,max:1,step:.1,defaultValue:.7,description:"Default: 0.7 (range 0–1)"},{key:"keyword_weight",label:"Keyword Weight",type:"number",min:0,max:1,step:.1,defaultValue:.3,description:"Default: 0.3 (range 0–1)"},{key:"min_relevance_score",label:"Min Relevance Score",type:"number",min:0,max:1,step:.05,defaultValue:.4,description:"Default: 0.4 (range 0–1)"},{key:"response_cache_enabled",label:"Response Cache",type:"toggle",defaultValue:!1},{key:"response_cache_ttl_minutes",label:"Cache TTL (min)",type:"number",min:1,defaultValue:60,description:"Default: 60"},{key:"snapshot_enabled",label:"Snapshots",type:"toggle",defaultValue:!1},{key:"auto_hydrate",label:"Auto Hydrate",type:"toggle",defaultValue:!0}]},{path:"memory.qdrant",category:"memory",title:"Memory: Qdrant",description:"Qdrant vector database connection",icon:Um,defaultCollapsed:!0,fields:[{key:"url",label:"URL",type:"text",description:"e.g. http://localhost:6334"},{key:"collection",label:"Collection",type:"text",defaultValue:"zeroclaw_memories",description:"Default: zeroclaw_memories"},{key:"api_key",label:"API Key",type:"password",sensitive:!0,description:"Qdrant Cloud API key"}]},{path:"gateway",category:"network",title:"Gateway",description:"HTTP gateway and webhook server",icon:lx,fields:[{key:"port",label:"Port",type:"number",min:1,max:65535,defaultValue:42617,description:"Default: 42617 (range 1–65535)"},{key:"host",label:"Host",type:"text",defaultValue:"127.0.0.1",description:"e.g. 127.0.0.1 or 0.0.0.0"},{key:"require_pairing",label:"Require Pairing",type:"toggle",defaultValue:!0},{key:"allow_public_bind",label:"Allow Public Bind",type:"toggle",defaultValue:!1},{key:"pair_rate_limit_per_minute",label:"Pair Rate Limit / min",type:"number",min:1,defaultValue:10,description:"Default: 10"},{key:"webhook_rate_limit_per_minute",label:"Webhook Rate Limit / min",type:"number",min:1,defaultValue:60,description:"Default: 60"},{key:"trust_forwarded_headers",label:"Trust Forwarded Headers",type:"toggle",defaultValue:!1},{key:"idempotency_ttl_secs",label:"Idempotency TTL (s)",type:"number",min:1,defaultValue:300,description:"Default: 300 (5 min)"}]},{path:"gateway.node_control",category:"network",title:"Gateway: Node Control",description:"Multi-node control plane",icon:lx,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!1},{key:"auth_token",label:"Auth Token",type:"password",sensitive:!0,description:"Shared secret for node auth"},{key:"allowed_node_ids",label:"Allowed Node IDs",type:"tag-list",tagPlaceholder:"e.g. node-1, node-us-east"}]},{path:"browser",category:"tools",title:"Browser",description:"Browser automation settings",icon:eu,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!1},{key:"allowed_domains",label:"Allowed Domains",type:"tag-list",tagPlaceholder:"e.g. example.com, docs.rs"},{key:"session_name",label:"Session Name",type:"text",description:"e.g. default, research"},{key:"backend",label:"Backend",type:"select",defaultValue:"agent_browser",options:[{value:"agent_browser",label:"Agent Browser"},{value:"native",label:"Native"},{value:"computer_use",label:"Computer Use"}]},{key:"native_headless",label:"Native Headless",type:"toggle",defaultValue:!0},{key:"native_webdriver_url",label:"WebDriver URL",type:"text",defaultValue:"http://127.0.0.1:9515",description:"Default: http://127.0.0.1:9515"}]},{path:"http_request",category:"tools",title:"HTTP Request",description:"HTTP request tool settings",icon:eu,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!1},{key:"allowed_domains",label:"Allowed Domains",type:"tag-list",tagPlaceholder:"e.g. api.example.com"},{key:"max_response_size",label:"Max Response Size (bytes)",type:"number",min:1,defaultValue:1e6,description:"Default: 1000000 (1 MB)"},{key:"timeout_secs",label:"Timeout (s)",type:"number",min:1,defaultValue:30,description:"Default: 30"},{key:"user_agent",label:"User Agent",type:"text",defaultValue:"ZeroClaw/1.0",description:"Default: ZeroClaw/1.0"}]},{path:"web_fetch",category:"tools",title:"Web Fetch",description:"Web page fetching and conversion",icon:eu,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!1},{key:"provider",label:"Provider",type:"text",defaultValue:"fast_html2md",description:"e.g. fast_html2md, firecrawl"},{key:"api_key",label:"API Key",type:"password",sensitive:!0,description:"Provider API key (if required)"},{key:"api_url",label:"API URL",type:"text",description:"e.g. https://api.firecrawl.dev/v1"},{key:"allowed_domains",label:"Allowed Domains",type:"tag-list",tagPlaceholder:"e.g. * (all) or example.com"},{key:"blocked_domains",label:"Blocked Domains",type:"tag-list",tagPlaceholder:"e.g. malware.example.com"},{key:"max_response_size",label:"Max Response Size (bytes)",type:"number",min:1,defaultValue:5e5,description:"Default: 500000 (500 KB)"},{key:"timeout_secs",label:"Timeout (s)",type:"number",min:1,defaultValue:30,description:"Default: 30"},{key:"user_agent",label:"User Agent",type:"text",defaultValue:"ZeroClaw/1.0",description:"Default: ZeroClaw/1.0"}]},{path:"web_search",category:"tools",title:"Web Search",description:"Web search tool settings",icon:mh,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!1},{key:"provider",label:"Provider",type:"select",defaultValue:"duckduckgo",options:[{value:"duckduckgo",label:"DuckDuckGo"},{value:"brave",label:"Brave"},{value:"tavily",label:"Tavily"},{value:"serper",label:"Serper"}]},{key:"api_key",label:"API Key",type:"password",sensitive:!0,description:"Search provider API key"},{key:"api_url",label:"API URL",type:"text",description:"e.g. https://api.search.brave.com"},{key:"brave_api_key",label:"Brave API Key",type:"password",sensitive:!0,description:"Brave Search API key"},{key:"max_results",label:"Max Results",type:"number",min:1,defaultValue:5,description:"Default: 5"},{key:"timeout_secs",label:"Timeout (s)",type:"number",min:1,defaultValue:15,description:"Default: 15"}]},{path:"proxy",category:"network",title:"Proxy",description:"Network proxy settings",icon:V3,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!1},{key:"http_proxy",label:"HTTP Proxy",type:"text",description:"e.g. http://proxy.example.com:8080"},{key:"https_proxy",label:"HTTPS Proxy",type:"text",description:"e.g. http://proxy.example.com:8443"},{key:"all_proxy",label:"All Proxy",type:"text",description:"e.g. socks5://proxy.example.com:1080"},{key:"no_proxy",label:"No Proxy",type:"tag-list",tagPlaceholder:"e.g. localhost, 127.0.0.1, .internal"},{key:"scope",label:"Scope",type:"select",defaultValue:"zeroclaw",options:[{value:"environment",label:"Environment"},{value:"zeroclaw",label:"ZeroClaw Only"},{value:"services",label:"Services"}]},{key:"services",label:"Proxy Services",type:"tag-list",tagPlaceholder:"e.g. openai, anthropic"}]},{path:"identity",category:"advanced",title:"Identity",description:"Agent identity format",icon:k3,defaultCollapsed:!0,fields:[{key:"format",label:"Format",type:"text",defaultValue:"openclaw",description:"e.g. openclaw, aieos"},{key:"aieos_path",label:"AIEOS Path",type:"text",description:"e.g. ./identity.aieos"},{key:"aieos_inline",label:"AIEOS Inline",type:"text",description:"Inline AIEOS identity string"}]},{path:"cost",category:"advanced",title:"Cost",description:"Cost tracking and spending limits",icon:dh,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!1},{key:"daily_limit_usd",label:"Daily Limit (USD)",type:"number",min:0,step:.01,defaultValue:10,description:"Default: 10.00"},{key:"monthly_limit_usd",label:"Monthly Limit (USD)",type:"number",min:0,step:.01,defaultValue:100,description:"Default: 100.00"},{key:"warn_at_percent",label:"Warn at (%)",type:"number",min:0,max:100,defaultValue:80,description:"Default: 80 (range 0–100)"},{key:"allow_override",label:"Allow Override",type:"toggle",defaultValue:!1}]},{path:"transcription",category:"advanced",title:"Transcription",description:"Audio transcription settings",icon:H3,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!1},{key:"api_url",label:"API URL",type:"text",defaultValue:"https://api.groq.com/openai/v1/audio/transcriptions",description:"Default: Groq Whisper endpoint"},{key:"model",label:"Model",type:"text",defaultValue:"whisper-large-v3-turbo",description:"e.g. whisper-large-v3-turbo"},{key:"language",label:"Language",type:"text",description:"e.g. en, ja, zh, fr"},{key:"max_duration_secs",label:"Max Duration (s)",type:"number",min:1,defaultValue:120,description:"Default: 120 (2 min)"}]},{path:"composio",category:"advanced",title:"Composio",description:"Composio integration",icon:io,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!1},{key:"api_key",label:"API Key",type:"password",sensitive:!0,description:"Composio API key"},{key:"entity_id",label:"Entity ID",type:"text",defaultValue:"default",description:"Default: default"}]},{path:"secrets",category:"advanced",title:"Secrets",description:"Secret storage encryption",icon:U2,defaultCollapsed:!0,fields:[{key:"encrypt",label:"Encrypt",type:"toggle",defaultValue:!0}]},{path:"tunnel",category:"network",title:"Tunnel",description:"Tunnel provider for exposing gateway",icon:b3,defaultCollapsed:!0,fields:[{key:"provider",label:"Provider",type:"select",defaultValue:"none",options:[{value:"none",label:"None"},{value:"cloudflare",label:"Cloudflare"},{value:"tailscale",label:"Tailscale"},{value:"ngrok",label:"ngrok"},{value:"custom",label:"Custom"}]}]},{path:"hardware",category:"advanced",title:"Hardware",description:"Hardware integration settings",icon:Nu,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!1},{key:"transport",label:"Transport",type:"select",defaultValue:"None",options:[{value:"None",label:"None"},{value:"Native",label:"Native"},{value:"Serial",label:"Serial"},{value:"Probe",label:"Probe"}]},{key:"serial_port",label:"Serial Port",type:"text",description:"e.g. /dev/ttyUSB0 or COM3"},{key:"baud_rate",label:"Baud Rate",type:"number",min:1,defaultValue:115200,description:"Default: 115200"},{key:"probe_target",label:"Probe Target",type:"text",description:"e.g. STM32F411CEUx"}]},{path:"peripherals",category:"advanced",title:"Peripherals",description:"Hardware peripheral boards",icon:Nu,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!1},{key:"datasheet_dir",label:"Datasheet Directory",type:"text",description:"e.g. ./datasheets"}]},{path:"mcp",category:"advanced",title:"MCP",description:"Model Context Protocol servers",icon:K3,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!1}]},{path:"wasm",category:"runtime",title:"Plugin Engine",description:"Sandboxed plugin engine",icon:Qp,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!0},{key:"memory_limit_mb",label:"Memory Limit (MB)",type:"number",min:1,defaultValue:64,description:"Default: 64"},{key:"fuel_limit",label:"Fuel Limit",type:"number",min:1,defaultValue:1e9,description:"Default: 1000000000"},{key:"registry_url",label:"Registry URL",type:"text",defaultValue:"https://zeromarket.vercel.app/api",description:"Default: ZeroMarket registry"}]},{path:"multimodal",category:"advanced",title:"Multimodal",description:"Image and multimodal input settings",icon:O3,defaultCollapsed:!0,fields:[{key:"max_images",label:"Max Images",type:"number",min:1,defaultValue:4,description:"Default: 4"},{key:"max_image_size_mb",label:"Max Image Size (MB)",type:"number",min:1,defaultValue:5,description:"Default: 5"},{key:"allow_remote_fetch",label:"Allow Remote Fetch",type:"toggle",defaultValue:!1}]},{path:"storage.provider.config",category:"memory",title:"Storage",description:"External storage provider settings",icon:E3,defaultCollapsed:!0,fields:[{key:"provider",label:"Provider",type:"text",description:"e.g. postgres, mysql"},{key:"db_url",label:"Database URL",type:"password",sensitive:!0,description:"e.g. postgres://user:pass@host:5432/db"},{key:"schema",label:"Schema",type:"text",defaultValue:"public",description:"Default: public"},{key:"table",label:"Table",type:"text",defaultValue:"memories",description:"Default: memories"},{key:"tls",label:"TLS",type:"toggle",defaultValue:!1}]},{path:"hooks",category:"advanced",title:"Hooks",description:"Lifecycle hooks",icon:tT,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!0}]},{path:"plugins",category:"advanced",title:"Plugins",description:"Plugin system settings",icon:io,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!0},{key:"allow",label:"Allow List",type:"tag-list",tagPlaceholder:"e.g. my-plugin, tools-extra"},{key:"deny",label:"Deny List",type:"tag-list",tagPlaceholder:"e.g. untrusted-plugin"},{key:"load_paths",label:"Load Paths",type:"tag-list",tagPlaceholder:"e.g. ./plugins, /opt/zeroclaw/plugins"}]},{path:"coordination",category:"advanced",title:"Coordination",description:"Multi-agent coordination",icon:sx,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!0},{key:"lead_agent",label:"Lead Agent",type:"text",defaultValue:"delegate-lead",description:"Default: delegate-lead"},{key:"max_inbox_messages_per_agent",label:"Max Inbox Messages",type:"number",min:1,defaultValue:256,description:"Default: 256"},{key:"max_dead_letters",label:"Max Dead Letters",type:"number",min:1,defaultValue:256,description:"Default: 256"},{key:"max_context_entries",label:"Max Context Entries",type:"number",min:1,defaultValue:512,description:"Default: 512"}]},{path:"agents_ipc",category:"advanced",title:"Agents IPC",description:"Inter-process agent communication",icon:sx,defaultCollapsed:!0,fields:[{key:"enabled",label:"Enabled",type:"toggle",defaultValue:!1},{key:"db_path",label:"Database Path",type:"text",defaultValue:"~/.zeroclaw/agents.db",description:"Default: ~/.zeroclaw/agents.db"},{key:"staleness_secs",label:"Staleness (s)",type:"number",min:1,defaultValue:300,description:"Default: 300 (5 min)"}]}];function vx({field:n,value:e,onChange:t,isMasked:i}){const[s,r]=M.useState(!1),o=n.type==="password",u=i?"":e??"";return y.jsxs("div",{className:"relative",children:[y.jsx("input",{type:o&&!s?"password":"text",value:u,onChange:f=>t(f.target.value),placeholder:i?"Configured (masked)":n.description??"",className:"w-full bg-gray-800 border border-gray-700 rounded-lg px-3 py-2 text-sm text-white placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-500 pr-16"}),y.jsxs("div",{className:"absolute right-2 top-1/2 -translate-y-1/2 flex items-center gap-1",children:[i&&y.jsx(U2,{className:"h-3.5 w-3.5 text-yellow-500"}),o&&y.jsx("button",{type:"button",onClick:()=>r(!s),className:"p-1 text-gray-400 hover:text-gray-200 transition-colors",children:s?y.jsx(T3,{className:"h-3.5 w-3.5"}):y.jsx(z2,{className:"h-3.5 w-3.5"})})]})]})}function TN({field:n,value:e,onChange:t}){const i=e==null||e===""?"":Number(e);return y.jsx("input",{type:"number",value:i,onChange:s=>{const r=s.target.value;if(r===""){t(void 0);return}const o=Number(r);isNaN(o)||t(o)},onBlur:s=>{if(n.step!==void 0&&n.step<1)return;const r=s.target.value;if(r==="")return;const o=Number(r);isNaN(o)||t(Math.floor(o))},min:n.min,max:n.max,step:n.step??1,placeholder:n.description??"",className:"w-full bg-gray-800 border border-gray-700 rounded-lg px-3 py-2 text-sm text-white placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-500"})}function NN({field:n,value:e,onChange:t}){const i=!!e;return y.jsxs("div",{className:"flex items-center gap-3",children:[y.jsx("button",{type:"button",role:"switch","aria-checked":i,"aria-label":n.label,onClick:()=>t(!i),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors ${i?"bg-blue-600":"bg-gray-700"}`,children:y.jsx("span",{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${i?"translate-x-6":"translate-x-1"}`})}),y.jsx("span",{className:"text-sm text-gray-400",children:i?"Enabled":"Disabled"})]})}function EN({field:n,value:e,onChange:t}){var s;const i=e??"";return y.jsxs("select",{value:i,onChange:r=>t(r.target.value),className:"w-full bg-gray-800 border border-gray-700 rounded-lg px-3 py-2 text-sm text-white focus:outline-none focus:ring-2 focus:ring-blue-500",children:[y.jsx("option",{value:"",children:"Select..."}),(s=n.options)==null?void 0:s.map(r=>y.jsx("option",{value:r.value,children:r.label},r.value))]})}function DN({field:n,value:e,onChange:t}){const[i,s]=M.useState(""),r=Array.isArray(e)?e:[],o=d=>{const p=d.trim();p&&!r.includes(p)&&t([...r,p]),s("")},u=d=>{t(r.filter((p,b)=>b!==d))},f=d=>{d.key==="Enter"||d.key===","?(d.preventDefault(),o(i)):d.key==="Backspace"&&i===""&&r.length>0&&u(r.length-1)};return y.jsxs("div",{children:[y.jsx("div",{className:"flex flex-wrap gap-1.5 mb-2",children:r.map((d,p)=>y.jsxs("span",{className:"inline-flex items-center gap-1 bg-gray-700 text-gray-200 rounded-full px-2.5 py-0.5 text-xs",children:[d,y.jsx("button",{type:"button",onClick:()=>u(p),className:"text-gray-400 hover:text-white transition-colors",children:y.jsx(Mo,{className:"h-3 w-3"})})]},d))}),y.jsx("input",{type:"text",value:i,onChange:d=>s(d.target.value),onKeyDown:f,onBlur:()=>{i.trim()&&o(i)},placeholder:n.tagPlaceholder??"Type and press Enter to add",className:"w-full bg-gray-800 border border-gray-700 rounded-lg px-3 py-2 text-sm text-white placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-500"})]})}function ON(n,e,t,i){const s={field:n,value:e,onChange:t,isMasked:i};switch(n.type){case"text":case"password":return y.jsx(vx,{...s});case"number":return y.jsx(TN,{...s});case"toggle":return y.jsx(NN,{...s});case"select":return y.jsx(EN,{...s});case"tag-list":return y.jsx(DN,{...s});default:return y.jsx(vx,{...s})}}function jN({section:n,getFieldValue:e,setFieldValue:t,isFieldMasked:i,visibleFields:s}){const[r,o]=M.useState(n.defaultCollapsed??!1),u=M.useMemo(()=>`config-section-${(n.path||"root").replace(/[^a-zA-Z0-9_-]/g,"-")}`,[n.path]),f=n.icon,d=s??n.fields;return M.useEffect(()=>{o(n.defaultCollapsed??!1)},[n.path,n.defaultCollapsed]),y.jsxs("div",{className:"bg-gray-900 rounded-xl border border-gray-800",children:[y.jsxs("button",{type:"button",onClick:()=>o(!r),"aria-expanded":!r,"aria-controls":u,className:"w-full flex items-center gap-3 px-4 py-3 hover:bg-gray-800/30 transition-colors rounded-t-xl",children:[r?y.jsx(L2,{className:"h-4 w-4 text-gray-500 flex-shrink-0"}):y.jsx(hh,{className:"h-4 w-4 text-gray-500 flex-shrink-0"}),y.jsx(f,{className:"h-4 w-4 text-blue-400 flex-shrink-0"}),y.jsx("span",{className:"text-sm font-medium text-white",children:n.title}),n.description&&y.jsxs("span",{className:"text-xs text-gray-500 hidden sm:inline",children:["— ",n.description]}),y.jsxs("span",{className:"ml-auto text-xs text-gray-600",children:[d.length," ",d.length===1?"field":"fields"]})]}),!r&&y.jsx("div",{id:u,className:"border-t border-gray-800 px-4 py-4 grid grid-cols-1 sm:grid-cols-2 gap-x-4 gap-y-4",children:d.map(p=>{const b=e(n.path,p.key),x=i(n.path,p.key),w=p.type==="tag-list";return y.jsxs("div",{className:`flex flex-col${w?" sm:col-span-2":""}`,children:[y.jsxs("label",{className:"flex items-center gap-2 text-sm font-medium text-gray-300 mb-1.5",children:[y.jsx("span",{children:p.label}),p.sensitive&&y.jsx("span",{className:"text-[10px] text-yellow-400 bg-yellow-900/30 border border-yellow-800/50 px-1.5 py-0.5 rounded",children:"sensitive"}),x&&y.jsx("span",{className:"text-[10px] text-blue-400 bg-blue-900/30 border border-blue-800/50 px-1.5 py-0.5 rounded",children:"masked"})]}),p.description&&p.type!=="text"&&p.type!=="password"&&p.type!=="number"&&y.jsx("p",{className:"text-xs text-gray-500 mb-1.5",children:p.description}),y.jsx("div",{className:"mt-auto",children:ON(p,b,S=>t(n.path,p.key,S),x)})]},p.key)})})]})}const RN=[{key:"all",label:"All"},{key:"general",label:"General"},{key:"security",label:"Security"},{key:"channels",label:"Channels"},{key:"runtime",label:"Runtime"},{key:"tools",label:"Tools"},{key:"memory",label:"Memory"},{key:"network",label:"Network"},{key:"advanced",label:"Advanced"}];function _N({getFieldValue:n,setFieldValue:e,isFieldMasked:t}){const[i,s]=M.useState(""),[r,o]=M.useState("all"),u=i.trim().length>0,f=M.useMemo(()=>{if(u){const p=i.toLowerCase();return sm.map(b=>{var A;const x=b.title.toLowerCase().includes(p),w=(A=b.description)==null?void 0:A.toLowerCase().includes(p);if(x||w)return{section:b,fields:void 0};const S=b.fields.filter(C=>{var T;return C.label.toLowerCase().includes(p)||C.key.toLowerCase().includes(p)||((T=C.description)==null?void 0:T.toLowerCase().includes(p))});return S.length>0?{section:b,fields:S}:null}).filter(Boolean)}return(r==="all"?sm:sm.filter(p=>p.category===r)).map(p=>({section:p,fields:void 0}))},[i,u,r]);return y.jsxs("div",{className:"space-y-3",children:[y.jsxs("div",{className:"relative",children:[y.jsx(mh,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-500"}),y.jsx("input",{type:"text",value:i,onChange:d=>s(d.target.value),placeholder:"Search config fields...",className:"w-full bg-gray-800 border border-gray-700 rounded-lg pl-9 pr-3 py-2 text-sm text-white placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-500"})]}),!u&&y.jsx("div",{className:"flex flex-wrap gap-2",children:RN.map(({key:d,label:p})=>y.jsx("button",{onClick:()=>o(d),className:`px-3 py-1 rounded-lg text-sm font-medium transition-colors ${r===d?"bg-blue-600 text-white":"bg-gray-900 text-gray-400 border border-gray-700 hover:bg-gray-800 hover:text-gray-200"}`,children:p},d))}),f.length===0?y.jsx("div",{className:"text-center py-12 text-gray-500 text-sm",children:"No matching config fields found."}):f.map(({section:d,fields:p})=>y.jsx(jN,{section:p?{...d,defaultCollapsed:!1}:d,getFieldValue:n,setFieldValue:e,isFieldMasked:t,visibleFields:p},d.path||"_root"))]})}const LN=1024;let BN=0,am=class{constructor(e,t){this.from=e,this.to=t}};class Le{constructor(e={}){this.id=BN++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")}),this.combine=e.combine||null}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=fn.match(e)),t=>{let i=e(t);return i===void 0?null:[this,i]}}}Le.closedBy=new Le({deserialize:n=>n.split(" ")});Le.openedBy=new Le({deserialize:n=>n.split(" ")});Le.group=new Le({deserialize:n=>n.split(" ")});Le.isolate=new Le({deserialize:n=>{if(n&&n!="rtl"&&n!="ltr"&&n!="auto")throw new RangeError("Invalid value for isolate: "+n);return n||"auto"}});Le.contextHash=new Le({perNode:!0});Le.lookAhead=new Le({perNode:!0});Le.mounted=new Le({perNode:!0});class Wr{constructor(e,t,i,s=!1){this.tree=e,this.overlay=t,this.parser=i,this.bracketed=s}static get(e){return e&&e.props&&e.props[Le.mounted.id]}}const zN=Object.create(null);class fn{constructor(e,t,i,s=0){this.name=e,this.props=t,this.id=i,this.flags=s}static define(e){let t=e.props&&e.props.length?Object.create(null):zN,i=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),s=new fn(e.name||"",t,e.id,i);if(e.props){for(let r of e.props)if(Array.isArray(r)||(r=r(s)),r){if(r[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[r[0].id]=r[1]}}return s}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let t=this.prop(Le.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let i in e)for(let s of i.split(" "))t[s]=e[i];return i=>{for(let s=i.prop(Le.group),r=-1;r<(s?s.length:0);r++){let o=t[r<0?i.name:s[r]];if(o)return o}}}}fn.none=new fn("",Object.create(null),0,8);class lg{constructor(e){this.types=e;for(let t=0;t0;for(let f=this.cursor(o|gt.IncludeAnonymous);;){let d=!1;if(f.from<=r&&f.to>=s&&(!u&&f.type.isAnonymous||t(f)!==!1)){if(f.firstChild())continue;d=!0}for(;d&&i&&(u||!f.type.isAnonymous)&&i(f),!f.nextSibling();){if(!f.parent())return;d=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:rg(fn.none,this.children,this.positions,0,this.children.length,0,this.length,(t,i,s)=>new st(this.type,t,i,s,this.propValues),e.makeTree||((t,i,s)=>new st(fn.none,t,i,s)))}static build(e){return qN(e)}}st.empty=new st(fn.none,[],[],0);class sg{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new sg(this.buffer,this.index)}}class Dl{constructor(e,t,i){this.buffer=e,this.length=t,this.set=i}get type(){return fn.none}toString(){let e=[];for(let t=0;t0));f=o[f+3]);return u}slice(e,t,i){let s=this.buffer,r=new Uint16Array(t-e),o=0;for(let u=e,f=0;u=e&&te;case 1:return t<=e&&i>e;case 2:return i>e;case 4:return!0}}function lo(n,e,t,i){for(var s;n.from==n.to||(t<1?n.from>=e:n.from>e)||(t>-1?n.to<=e:n.to0?u.length:-1;e!=d;e+=t){let p=u[e],b=f[e]+o.from,x;if(!(!(r>.EnterBracketed&&p instanceof st&&(x=Wr.get(p))&&!x.overlay&&x.bracketed&&i>=b&&i<=b+p.length)&&!aw(s,i,b,b+p.length))){if(p instanceof Dl){if(r>.ExcludeBuffers)continue;let w=p.findChild(0,p.buffer.length,t,i-b,s);if(w>-1)return new Tl(new HN(o,p,e,b),null,w)}else if(r>.IncludeAnonymous||!p.type.isAnonymous||ag(p)){let w;if(!(r>.IgnoreMounts)&&(w=Wr.get(p))&&!w.overlay)return new Un(w.tree,b,e,o);let S=new Un(p,b,e,o);return r>.IncludeAnonymous||!S.type.isAnonymous?S:S.nextChild(t<0?p.children.length-1:0,t,i,s,r)}}}if(r>.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?e=o.index+t:e=t<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}prop(e){return this._tree.prop(e)}enter(e,t,i=0){let s;if(!(i>.IgnoreOverlays)&&(s=Wr.get(this._tree))&&s.overlay){let r=e-this.from,o=i>.EnterBracketed&&s.bracketed;for(let{from:u,to:f}of s.overlay)if((t>0||o?u<=r:u=r:f>r))return new Un(s.tree,s.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,i)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}}function Sx(n,e,t,i){let s=n.cursor(),r=[];if(!s.firstChild())return r;if(t!=null){for(let o=!1;!o;)if(o=s.type.is(t),!s.nextSibling())return r}for(;;){if(i!=null&&s.type.is(i))return r;if(s.type.is(e)&&r.push(s.node),!s.nextSibling())return i==null?r:[]}}function Ym(n,e,t=e.length-1){for(let i=n;t>=0;i=i.parent){if(!i)return!1;if(!i.type.isAnonymous){if(e[t]&&e[t]!=i.name)return!1;t--}}return!0}class HN{constructor(e,t,i,s){this.parent=e,this.buffer=t,this.index=i,this.start=s}}class Tl extends rw{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,i){super(),this.context=e,this._parent=t,this.index=i,this.type=e.buffer.set.types[e.buffer.buffer[i]]}child(e,t,i){let{buffer:s}=this.context,r=s.findChild(this.index+4,s.buffer[this.index+3],e,t-this.context.start,i);return r<0?null:new Tl(this.context,this,r)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}prop(e){return this.type.prop(e)}enter(e,t,i=0){if(i>.ExcludeBuffers)return null;let{buffer:s}=this.context,r=s.findChild(this.index+4,s.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return r<0?null:new Tl(this.context,this,r)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new Tl(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new Tl(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],t=[],{buffer:i}=this.context,s=this.index+4,r=i.buffer[this.index+3];if(r>s){let o=i.buffer[this.index+1];e.push(i.slice(s,r,o)),t.push(0)}return new st(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function ow(n){if(!n.length)return null;let e=0,t=n[0];for(let r=1;rt.from||o.to=e){let u=new Un(o.tree,o.overlay[0].from+r.from,-1,r);(s||(s=[i])).push(lo(u,e,t,!1))}}return s?ow(s):i}class Wm{get name(){return this.type.name}constructor(e,t=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=t&~gt.EnterBracketed,e instanceof Un)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let i=e._parent;i;i=i._parent)this.stack.unshift(i.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:i,buffer:s}=this.buffer;return this.type=t||s.set.types[s.buffer[e]],this.from=i+s.buffer[e+1],this.to=i+s.buffer[e+2],!0}yield(e){return e?e instanceof Un?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,i){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,i,this.mode));let{buffer:s}=this.buffer,r=s.findChild(this.index+4,s.buffer[this.index+3],e,t-this.buffer.start,i);return r<0?!1:(this.stack.push(this.index),this.yieldBuf(r))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,i=this.mode){return this.buffer?i>.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,i))}parent(){if(!this.buffer)return this.yieldNode(this.mode>.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode>.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,i=this.stack.length-1;if(e<0){let s=i<0?0:this.stack[i]+4;if(this.index!=s)return this.yieldBuf(t.findChild(s,this.index,-1,0,4))}else{let s=t.buffer[this.index+3];if(s<(i<0?t.buffer.length:t.buffer[this.stack[i]+3]))return this.yieldBuf(s)}return i<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,i,{buffer:s}=this;if(s){if(e>0){if(this.index-1)for(let r=t+e,o=e<0?-1:i._tree.children.length;r!=o;r+=e){let u=i._tree.children[r];if(this.mode>.IncludeAnonymous||u instanceof Dl||!u.type.isAnonymous||ag(u))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to=0;){for(let o=e;o;o=o._parent)if(o.index==s){if(s==this.index)return o;t=o,i=r+1;break e}s=this.stack[--r]}for(let s=i;s=0;r--){if(r<0)return Ym(this._tree,e,s);let o=i[t.buffer[this.stack[r]]];if(!o.isAnonymous){if(e[s]&&e[s]!=o.name)return!1;s--}}return!0}}function ag(n){return n.children.some(e=>e instanceof Dl||!e.type.isAnonymous||ag(e))}function qN(n){var e;let{buffer:t,nodeSet:i,maxBufferLength:s=LN,reused:r=[],minRepeatType:o=i.types.length}=n,u=Array.isArray(t)?new sg(t,t.length):t,f=i.types,d=0,p=0;function b(B,I,V,Q,Z,ue){let{id:fe,start:ne,end:pe,size:J}=u,ve=p,z=d;if(J<0)if(u.next(),J==-1){let D=r[fe];V.push(D),Q.push(ne-B);return}else if(J==-3){d=fe;return}else if(J==-4){p=fe;return}else throw new RangeError(`Unrecognized record size: ${J}`);let K=f[fe],$,ie,ge=ne-B;if(pe-ne<=s&&(ie=C(u.pos-I,Z))){let D=new Uint16Array(ie.size-ie.skip),P=u.pos-ie.size,ee=D.length;for(;u.pos>P;)ee=T(ie.start,D,ee);$=new Dl(D,pe-ie.start,i),ge=ie.start-B}else{let D=u.pos-J;u.next();let P=[],ee=[],ae=fe>=o?fe:-1,ye=0,Ce=pe;for(;u.pos>D;)ae>=0&&u.id==ae&&u.size>=0?(u.end<=Ce-s&&(S(P,ee,ne,ye,u.end,Ce,ae,ve,z),ye=P.length,Ce=u.end),u.next()):ue>2500?x(ne,D,P,ee):b(ne,D,P,ee,ae,ue+1);if(ae>=0&&ye>0&&ye-1&&ye>0){let Ee=w(K,z);$=rg(K,P,ee,0,P.length,0,pe-ne,Ee,Ee)}else $=A(K,P,ee,pe-ne,ve-pe,z)}V.push($),Q.push(ge)}function x(B,I,V,Q){let Z=[],ue=0,fe=-1;for(;u.pos>I;){let{id:ne,start:pe,end:J,size:ve}=u;if(ve>4)u.next();else{if(fe>-1&&pe=0;J-=3)ne[ve++]=Z[J],ne[ve++]=Z[J+1]-pe,ne[ve++]=Z[J+2]-pe,ne[ve++]=ve;V.push(new Dl(ne,Z[2]-pe,i)),Q.push(pe-B)}}function w(B,I){return(V,Q,Z)=>{let ue=0,fe=V.length-1,ne,pe;if(fe>=0&&(ne=V[fe])instanceof st){if(!fe&&ne.type==B&&ne.length==Z)return ne;(pe=ne.prop(Le.lookAhead))&&(ue=Q[fe]+ne.length+pe)}return A(B,V,Q,Z,ue,I)}}function S(B,I,V,Q,Z,ue,fe,ne,pe){let J=[],ve=[];for(;B.length>Q;)J.push(B.pop()),ve.push(I.pop()+V-Z);B.push(A(i.types[fe],J,ve,ue-Z,ne-ue,pe)),I.push(Z-V)}function A(B,I,V,Q,Z,ue,fe){if(ue){let ne=[Le.contextHash,ue];fe=fe?[ne].concat(fe):[ne]}if(Z>25){let ne=[Le.lookAhead,Z];fe=fe?[ne].concat(fe):[ne]}return new st(B,I,V,Q,fe)}function C(B,I){let V=u.fork(),Q=0,Z=0,ue=0,fe=V.end-s,ne={size:0,start:0,skip:0};e:for(let pe=V.pos-B;V.pos>pe;){let J=V.size;if(V.id==I&&J>=0){ne.size=Q,ne.start=Z,ne.skip=ue,ue+=4,Q+=4,V.next();continue}let ve=V.pos-J;if(J<0||ve=o?4:0,K=V.start;for(V.next();V.pos>ve;){if(V.size<0)if(V.size==-3||V.size==-4)z+=4;else break e;else V.id>=o&&(z+=4);V.next()}Z=K,Q+=J,ue+=z}return(I<0||Q==B)&&(ne.size=Q,ne.start=Z,ne.skip=ue),ne.size>4?ne:void 0}function T(B,I,V){let{id:Q,start:Z,end:ue,size:fe}=u;if(u.next(),fe>=0&&Q4){let pe=u.pos-(fe-4);for(;u.pos>pe;)V=T(B,I,V)}I[--V]=ne,I[--V]=ue-B,I[--V]=Z-B,I[--V]=Q}else fe==-3?d=Q:fe==-4&&(p=Q);return V}let R=[],E=[];for(;u.pos>0;)b(n.start||0,n.bufferStart||0,R,E,-1,0);let q=(e=n.length)!==null&&e!==void 0?e:R.length?E[0]+R[0].length:0;return new st(f[n.topID],R.reverse(),E.reverse(),q)}const kx=new WeakMap;function Eu(n,e){if(!n.isAnonymous||e instanceof Dl||e.type!=n)return 1;let t=kx.get(e);if(t==null){t=1;for(let i of e.children){if(i.type!=n||!(i instanceof st)){t=1;break}t+=Eu(n,i)}kx.set(e,t)}return t}function rg(n,e,t,i,s,r,o,u,f){let d=0;for(let S=i;S=p)break;I+=V}if(E==q+1){if(I>p){let V=S[q];w(V.children,V.positions,0,V.children.length,A[q]+R);continue}b.push(S[q])}else{let V=A[E-1]+S[E-1].length-B;b.push(rg(n,S,A,q,E,B,V,null,f))}x.push(B+R-r)}}return w(e,t,i,s,0),(u||f)(b,x,o)}class ms{constructor(e,t,i,s,r=!1,o=!1){this.from=e,this.to=t,this.tree=i,this.offset=s,this.open=(r?1:0)|(o?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,t=[],i=!1){let s=[new ms(0,e.length,e,0,!1,i)];for(let r of t)r.to>e.length&&s.push(r);return s}static applyChanges(e,t,i=128){if(!t.length)return e;let s=[],r=1,o=e.length?e[0]:null;for(let u=0,f=0,d=0;;u++){let p=u=i)for(;o&&o.from=x.from||b<=x.to||d){let w=Math.max(x.from,f)-d,S=Math.min(x.to,b)-d;x=w>=S?null:new ms(w,S,x.tree,x.offset+d,u>0,!!p)}if(x&&s.push(x),o.to>b)break;o=rnew am(s.from,s.to)):[new am(0,0)]:[new am(0,e.length)],this.createParse(e,t||[],i)}parse(e,t,i){let s=this.startParse(e,t,i);for(;;){let r=s.advance();if(r)return r}}}class PN{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}}new Le({perNode:!0});let Fm=[],uw=[];(()=>{let n="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,t=0;e>1;if(n=uw[i])e=i+1;else return!0;if(e==t)return!1}}function Cx(n){return n>=127462&&n<=127487}const Ax=8205;function GN(n,e,t=!0,i=!0){return(t?hw:IN)(n,e,i)}function hw(n,e,t){if(e==n.length)return e;e&&fw(n.charCodeAt(e))&&dw(n.charCodeAt(e-1))&&e--;let i=rm(n,e);for(e+=Mx(i);e=0&&Cx(rm(n,o));)r++,o-=2;if(r%2==0)break;e+=2}else break}return e}function IN(n,e,t){for(;e>0;){let i=hw(n,e-2,t);if(i=56320&&n<57344}function dw(n){return n>=55296&&n<56320}function Mx(n){return n<65536?1:2}class qe{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,i){[e,t]=Aa(this,e,t);let s=[];return this.decompose(0,e,s,2),i.length&&i.decompose(0,i.length,s,3),this.decompose(t,this.length,s,1),di.from(s,this.length-(t-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=Aa(this,e,t);let i=[];return this.decompose(e,t,i,0),di.from(i,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),s=new Fr(this),r=new Fr(e);for(let o=t,u=t;;){if(s.next(o),r.next(o),o=0,s.lineBreak!=r.lineBreak||s.done!=r.done||s.value!=r.value)return!1;if(u+=s.value.length,s.done||u>=i)return!0}}iter(e=1){return new Fr(this,e)}iterRange(e,t=this.length){return new mw(this,e,t)}iterLines(e,t){let i;if(e==null)i=this.iter();else{t==null&&(t=this.lines+1);let s=this.line(e).from;i=this.iterRange(s,Math.max(s,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new pw(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?qe.empty:e.length<=32?new pt(e):di.from(pt.split(e,[]))}}class pt extends qe{constructor(e,t=YN(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,i,s){for(let r=0;;r++){let o=this.text[r],u=s+o.length;if((t?i:u)>=e)return new WN(s,u,i,o);s=u+1,i++}}decompose(e,t,i,s){let r=e<=0&&t>=this.length?this:new pt(Tx(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(s&1){let o=i.pop(),u=Du(r.text,o.text.slice(),0,r.length);if(u.length<=32)i.push(new pt(u,o.length+r.length));else{let f=u.length>>1;i.push(new pt(u.slice(0,f)),new pt(u.slice(f)))}}else i.push(r)}replace(e,t,i){if(!(i instanceof pt))return super.replace(e,t,i);[e,t]=Aa(this,e,t);let s=Du(this.text,Du(i.text,Tx(this.text,0,e)),t),r=this.length+i.length-(t-e);return s.length<=32?new pt(s,r):di.from(pt.split(s,[]),r)}sliceString(e,t=this.length,i=` `){[e,t]=Aa(this,e,t);let s="";for(let r=0,o=0;r<=t&&oe&&o&&(s+=i),er&&(s+=u.slice(Math.max(0,e-r),t-r)),r=f+1}return s}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let i=[],s=-1;for(let r of e)i.push(r),s+=r.length+1,i.length==32&&(t.push(new pt(i,s)),i=[],s=-1);return s>-1&&t.push(new pt(i,s)),t}}class di extends qe{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let i of e)this.lines+=i.lines}lineInner(e,t,i,s){for(let r=0;;r++){let o=this.children[r],u=s+o.length,f=i+o.lines-1;if((t?f:u)>=e)return o.lineInner(e,t,i,s);s=u+1,i=f+1}}decompose(e,t,i,s){for(let r=0,o=0;o<=t&&r=o){let d=s&((o<=e?1:0)|(f>=t?2:0));o>=e&&f<=t&&!d?i.push(u):u.decompose(e-o,t-o,i,d)}o=f+1}}replace(e,t,i){if([e,t]=Aa(this,e,t),i.lines=r&&t<=u){let f=o.replace(e-r,t-r,i),d=this.lines-o.lines+f.lines;if(f.lines>4&&f.lines>d>>6){let p=this.children.slice();return p[s]=f,new di(p,this.length-(t-e)+i.length)}return super.replace(r,u,f)}r=u+1}return super.replace(e,t,i)}sliceString(e,t=this.length,i=` -`){[e,t]=Aa(this,e,t);let s="";for(let r=0,o=0;re&&r&&(s+=i),eo&&(s+=u.sliceString(e-o,t-o,i)),o=f+1}return s}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof di))return 0;let i=0,[s,r,o,u]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;s+=t,r+=t){if(s==o||r==u)return i;let f=this.children[s],d=e.children[r];if(f!=d)return i+f.scanIdentical(d,t);i+=f.length+1}}static from(e,t=e.reduce((i,s)=>i+s.length+1,-1)){let i=0;for(let w of e)i+=w.lines;if(i<32){let w=[];for(let S of e)S.flatten(w);return new pt(w,t)}let s=Math.max(32,i>>5),r=s<<1,o=s>>1,u=[],f=0,d=-1,p=[];function b(w){let S;if(w.lines>r&&w instanceof di)for(let A of w.children)b(A);else w.lines>o&&(f>o||!f)?(x(),u.push(w)):w instanceof pt&&f&&(S=p[p.length-1])instanceof pt&&w.lines+S.lines<=32?(f+=w.lines,d+=w.length+1,p[p.length-1]=new pt(S.text.concat(w.text),S.length+1+w.length)):(f+w.lines>s&&x(),f+=w.lines,d+=w.length+1,p.push(w))}function x(){f!=0&&(u.push(p.length==1?p[0]:di.from(p,d)),d=-1,f=p.length=0)}for(let w of e)b(w);return x(),u.length==1?u[0]:new di(u,t)}}qe.empty=new pt([""],0);function FN(n){let e=-1;for(let t of n)e+=t.length+1;return e}function Du(n,e,t=0,i=1e9){for(let s=0,r=0,o=!0;r=t&&(f>i&&(u=u.slice(0,i-s)),s0?1:(e instanceof pt?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,s=this.nodes[i],r=this.offsets[i],o=r>>1,u=s instanceof pt?s.text.length:s.children.length;if(o==(t>0?u:0)){if(i==0)return this.done=!0,this.value="",this;t>0&&this.offsets[i-1]++,this.nodes.pop(),this.offsets.pop()}else if((r&1)==(t>0?0:1)){if(this.offsets[i]+=t,e==0)return this.lineBreak=!0,this.value=` -`,this;e--}else if(s instanceof pt){let f=s.text[o+(t<0?-1:0)];if(this.offsets[i]+=t,f.length>Math.max(0,e))return this.value=e==0?f:t>0?f.slice(e):f.slice(0,f.length-e),this;e-=f.length}else{let f=s.children[o+(t<0?-1:0)];e>f.length?(e-=f.length,this.offsets[i]+=t):(t<0&&this.offsets[i]--,this.nodes.push(f),this.offsets.push(t>0?1:(f instanceof pt?f.text.length:f.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class mw{constructor(e,t,i){this.value="",this.done=!1,this.cursor=new Fr(e,t>i?-1:1),this.pos=t>i?e.length:0,this.from=Math.min(t,i),this.to=Math.max(t,i)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let i=t<0?this.pos-this.from:this.to-this.pos;e>i&&(e=i),i-=e;let{value:s}=this.cursor.next(e);return this.pos+=(s.length+e)*t,this.value=s.length<=i?s:t<0?s.slice(s.length-i):s.slice(0,i),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class pw{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:i,value:s}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=s,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol<"u"&&(qe.prototype[Symbol.iterator]=function(){return this.iter()},Fr.prototype[Symbol.iterator]=mw.prototype[Symbol.iterator]=pw.prototype[Symbol.iterator]=function(){return this});class XN{constructor(e,t,i,s){this.from=e,this.to=t,this.number=i,this.text=s}get length(){return this.to-this.from}}function Aa(n,e,t){return e=Math.max(0,Math.min(n.length,e)),[e,Math.max(e,Math.min(n.length,t))]}function jt(n,e,t=!0,i=!0){return YN(n,e,t,i)}function QN(n){return n>=56320&&n<57344}function ZN(n){return n>=55296&&n<56320}function rn(n,e){let t=n.charCodeAt(e);if(!ZN(t)||e+1==n.length)return t;let i=n.charCodeAt(e+1);return QN(i)?(t-55296<<10)+(i-56320)+65536:t}function og(n){return n<=65535?String.fromCharCode(n):(n-=65536,String.fromCharCode((n>>10)+55296,(n&1023)+56320))}function mi(n){return n<65536?1:2}const Xm=/\r\n?|\n/;var Qt=(function(n){return n[n.Simple=0]="Simple",n[n.TrackDel=1]="TrackDel",n[n.TrackBefore=2]="TrackBefore",n[n.TrackAfter=3]="TrackAfter",n})(Qt||(Qt={}));class vi{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;te)return r+(e-s);r+=u}else{if(i!=Qt.Simple&&d>=e&&(i==Qt.TrackDel&&se||i==Qt.TrackBefore&&se))return null;if(d>e||d==e&&t<0&&!u)return e==s||t<0?r:r+f;r+=f}s=d}if(e>s)throw new RangeError(`Position ${e} is out of range for changeset of length ${s}`);return r}touchesRange(e,t=e){for(let i=0,s=0;i=0&&s<=t&&u>=e)return st?"cover":!0;s=u}return!1}toString(){let e="";for(let t=0;t=0?":"+s:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new vi(e)}static create(e){return new vi(e)}}class Ct extends vi{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return Qm(this,(t,i,s,r,o)=>e=e.replace(s,s+(i-t),o),!1),e}mapDesc(e,t=!1){return Zm(this,e,t,!0)}invert(e){let t=this.sections.slice(),i=[];for(let s=0,r=0;s=0){t[s]=u,t[s+1]=o;let f=s>>1;for(;i.length0&&Nl(i,t,r.text),r.forward(p),u+=p}let d=e[o++];for(;u>1].toJSON()))}return e}static of(e,t,i){let s=[],r=[],o=0,u=null;function f(p=!1){if(!p&&!s.length)return;ox||b<0||x>t)throw new RangeError(`Invalid change range ${b} to ${x} (in doc of length ${t})`);let S=w?typeof w=="string"?qe.of(w.split(i||Xm)):w:qe.empty,A=S.length;if(b==x&&A==0)return;bo&&Kt(s,b-o,-1),Kt(s,x-b,A),Nl(r,s,S),o=x}}return d(e),f(!u),u}static empty(e){return new Ct(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],i=[];for(let s=0;su&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(r.length==1)t.push(r[0],0);else{for(;i.length=0&&t<=0&&t==n[s+1]?n[s]+=e:s>=0&&e==0&&n[s]==0?n[s+1]+=t:i?(n[s]+=e,n[s+1]+=t):n.push(e,t)}function Nl(n,e,t){if(t.length==0)return;let i=e.length-2>>1;if(i>1])),!(t||o==n.sections.length||n.sections[o+1]<0);)u=n.sections[o++],f=n.sections[o++];e(s,d,r,p,b),s=d,r=p}}}function Zm(n,e,t,i=!1){let s=[],r=i?[]:null,o=new so(n),u=new so(e);for(let f=-1;;){if(o.done&&u.len||u.done&&o.len)throw new Error("Mismatched change set lengths");if(o.ins==-1&&u.ins==-1){let d=Math.min(o.len,u.len);Kt(s,d,-1),o.forward(d),u.forward(d)}else if(u.ins>=0&&(o.ins<0||f==o.i||o.off==0&&(u.len=0&&f=0){let d=0,p=o.len;for(;p;)if(u.ins==-1){let b=Math.min(p,u.len);d+=b,p-=b,u.forward(b)}else if(u.ins==0&&u.lenf||o.ins>=0&&o.len>f)&&(u||i.length>d),r.forward2(f),o.forward(f)}}}}class so{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return t>=e.length?qe.empty:e[t]}textBit(e){let{inserted:t}=this.set,i=this.i-2>>1;return i>=t.length&&!e?qe.empty:t[i].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class hs{constructor(e,t,i){this.from=e,this.to=t,this.flags=i}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}get goalColumn(){let e=this.flags>>6;return e==16777215?void 0:e}map(e,t=-1){let i,s;return this.empty?i=s=e.mapPos(this.from,t):(i=e.mapPos(this.from,1),s=e.mapPos(this.to,-1)),i==this.from&&s==this.to?this:new hs(i,s,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return X.range(e,t);let i=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return X.range(this.anchor,i)}eq(e,t=!1){return this.anchor==e.anchor&&this.head==e.head&&this.goalColumn==e.goalColumn&&(!t||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return X.range(e.anchor,e.head)}static create(e,t,i){return new hs(e,t,i)}}class X{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:X.create(this.ranges.map(i=>i.map(e,t)),this.mainIndex)}eq(e,t=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let i=0;ie.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new X(e.ranges.map(t=>hs.fromJSON(t)),e.main)}static single(e,t=e){return new X([X.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let i=0,s=0;se?8:0)|r)}static normalized(e,t=0){let i=e[t];e.sort((s,r)=>s.from-r.from),t=e.indexOf(i);for(let s=1;sr.head?X.range(f,u):X.range(u,f))}}return new X(e,t)}}function yw(n,e){for(let t of n.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}let cg=0;class ce{constructor(e,t,i,s,r){this.combine=e,this.compareInput=t,this.compare=i,this.isStatic=s,this.id=cg++,this.default=e([]),this.extensions=typeof r=="function"?r(this):r}get reader(){return this}static define(e={}){return new ce(e.combine||(t=>t),e.compareInput||((t,i)=>t===i),e.compare||(e.combine?(t,i)=>t===i:ug),!!e.static,e.enables)}of(e){return new Ou([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Ou(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Ou(e,this,2,t)}from(e,t){return t||(t=i=>i),this.compute([e],i=>t(i.field(e)))}}function ug(n,e){return n==e||n.length==e.length&&n.every((t,i)=>t===e[i])}class Ou{constructor(e,t,i,s){this.dependencies=e,this.facet=t,this.type=i,this.value=s,this.id=cg++}dynamicSlot(e){var t;let i=this.value,s=this.facet.compareInput,r=this.id,o=e[r]>>1,u=this.type==2,f=!1,d=!1,p=[];for(let b of this.dependencies)b=="doc"?f=!0:b=="selection"?d=!0:(((t=e[b.id])!==null&&t!==void 0?t:1)&1)==0&&p.push(e[b.id]);return{create(b){return b.values[o]=i(b),1},update(b,x){if(f&&x.docChanged||d&&(x.docChanged||x.selection)||$m(b,p)){let w=i(b);if(u?!Nx(w,b.values[o],s):!s(w,b.values[o]))return b.values[o]=w,1}return 0},reconfigure:(b,x)=>{let w,S=x.config.address[r];if(S!=null){let A=Pu(x,S);if(this.dependencies.every(C=>C instanceof ce?x.facet(C)===b.facet(C):C instanceof It?x.field(C,!1)==b.field(C,!1):!0)||(u?Nx(w=i(b),A,s):s(w=i(b),A)))return b.values[o]=A,0}else w=i(b);return b.values[o]=w,1}}}}function Nx(n,e,t){if(n.length!=e.length)return!1;for(let i=0;in[f.id]),s=t.map(f=>f.type),r=i.filter(f=>!(f&1)),o=n[e.id]>>1;function u(f){let d=[];for(let p=0;pi===s),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(iu).find(i=>i.field==this);return((t==null?void 0:t.create)||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:i=>(i.values[t]=this.create(i),1),update:(i,s)=>{let r=i.values[t],o=this.updateF(r,s);return this.compareF(r,o)?0:(i.values[t]=o,1)},reconfigure:(i,s)=>{let r=i.facet(iu),o=s.facet(iu),u;return(u=r.find(f=>f.field==this))&&u!=o.find(f=>f.field==this)?(i.values[t]=u.create(i),1):s.config.address[this.id]!=null?(i.values[t]=s.field(this),0):(i.values[t]=this.create(i),1)}}}init(e){return[this,iu.of({field:this,create:e})]}get extension(){return this}}const cs={lowest:4,low:3,default:2,high:1,highest:0};function zr(n){return e=>new bw(e,n)}const Ss={highest:zr(cs.highest),high:zr(cs.high),default:zr(cs.default),low:zr(cs.low),lowest:zr(cs.lowest)};class bw{constructor(e,t){this.inner=e,this.prec=t}}class gh{of(e){return new Jm(this,e)}reconfigure(e){return gh.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class Jm{constructor(e,t){this.compartment=e,this.inner=t}}class qu{constructor(e,t,i,s,r,o){for(this.base=e,this.compartments=t,this.dynamicSlots=i,this.address=s,this.staticValues=r,this.facets=o,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,t,i){let s=[],r=Object.create(null),o=new Map;for(let x of JN(e,t,o))x instanceof It?s.push(x):(r[x.facet.id]||(r[x.facet.id]=[])).push(x);let u=Object.create(null),f=[],d=[];for(let x of s)u[x.id]=d.length<<1,d.push(w=>x.slot(w));let p=i==null?void 0:i.config.facets;for(let x in r){let w=r[x],S=w[0].facet,A=p&&p[x]||[];if(w.every(C=>C.type==0))if(u[S.id]=f.length<<1|1,ug(A,w))f.push(i.facet(S));else{let C=S.combine(w.map(T=>T.value));f.push(i&&S.compare(C,i.facet(S))?i.facet(S):C)}else{for(let C of w)C.type==0?(u[C.id]=f.length<<1|1,f.push(C.value)):(u[C.id]=d.length<<1,d.push(T=>C.dynamicSlot(T)));u[S.id]=d.length<<1,d.push(C=>$N(C,S,w))}}let b=d.map(x=>x(u));return new qu(e,o,b,u,f,r)}}function JN(n,e,t){let i=[[],[],[],[],[]],s=new Map;function r(o,u){let f=s.get(o);if(f!=null){if(f<=u)return;let d=i[f].indexOf(o);d>-1&&i[f].splice(d,1),o instanceof Jm&&t.delete(o.compartment)}if(s.set(o,u),Array.isArray(o))for(let d of o)r(d,u);else if(o instanceof Jm){if(t.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let d=e.get(o.compartment)||o.inner;t.set(o.compartment,d),r(d,u)}else if(o instanceof bw)r(o.inner,o.prec);else if(o instanceof It)i[u].push(o),o.provides&&r(o.provides,u);else if(o instanceof Ou)i[u].push(o),o.facet.extensions&&r(o.facet.extensions,cs.default);else{let d=o.extension;if(!d)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);r(d,u)}}return r(n,cs.default),i.reduce((o,u)=>o.concat(u))}function Xr(n,e){if(e&1)return 2;let t=e>>1,i=n.status[t];if(i==4)throw new Error("Cyclic dependency between fields and/or facets");if(i&2)return i;n.status[t]=4;let s=n.computeSlot(n,n.config.dynamicSlots[t]);return n.status[t]=2|s}function Pu(n,e){return e&1?n.config.staticValues[e>>1]:n.values[e>>1]}const xw=ce.define(),ep=ce.define({combine:n=>n.some(e=>e),static:!0}),vw=ce.define({combine:n=>n.length?n[0]:void 0,static:!0}),ww=ce.define(),Sw=ce.define(),kw=ce.define(),Cw=ce.define({combine:n=>n.length?n[0]:!1});class wi{constructor(e,t){this.type=e,this.value=t}static define(){return new eE}}class eE{of(e){return new wi(this,e)}}class tE{constructor(e){this.map=e}of(e){return new Me(this,e)}}class Me{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new Me(this.type,t)}is(e){return this.type==e}static define(e={}){return new tE(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let i=[];for(let s of e){let r=s.map(t);r&&i.push(r)}return i}}Me.reconfigure=Me.define();Me.appendConfig=Me.define();class At{constructor(e,t,i,s,r,o){this.startState=e,this.changes=t,this.selection=i,this.effects=s,this.annotations=r,this.scrollIntoView=o,this._doc=null,this._state=null,i&&yw(i,t.newLength),r.some(u=>u.type==At.time)||(this.annotations=r.concat(At.time.of(Date.now())))}static create(e,t,i,s,r,o){return new At(e,t,i,s,r,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(At.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}}At.time=wi.define();At.userEvent=wi.define();At.addToHistory=wi.define();At.remote=wi.define();function nE(n,e){let t=[];for(let i=0,s=0;;){let r,o;if(i=n[i]))r=n[i++],o=n[i++];else if(s=0;s--){let r=i[s](n);r instanceof At?n=r:Array.isArray(r)&&r.length==1&&r[0]instanceof At?n=r[0]:n=Mw(e,ba(r),!1)}return n}function lE(n){let e=n.startState,t=e.facet(kw),i=n;for(let s=t.length-1;s>=0;s--){let r=t[s](n);r&&Object.keys(r).length&&(i=Aw(i,tp(e,r,n.changes.newLength),!0))}return i==n?n:At.create(e,n.changes,n.selection,i.effects,i.annotations,i.scrollIntoView)}const sE=[];function ba(n){return n==null?sE:Array.isArray(n)?n:[n]}var at=(function(n){return n[n.Word=0]="Word",n[n.Space=1]="Space",n[n.Other=2]="Other",n})(at||(at={}));const aE=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let np;try{np=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function rE(n){if(np)return np.test(n);for(let e=0;e"€"&&(t.toUpperCase()!=t.toLowerCase()||aE.test(t)))return!0}return!1}function oE(n){return e=>{if(!/\S/.test(e))return at.Space;if(rE(e))return at.Word;for(let t=0;t-1)return at.Word;return at.Other}}class ze{constructor(e,t,i,s,r,o){this.config=e,this.doc=t,this.selection=i,this.values=s,this.status=e.statusTemplate.slice(),this.computeSlot=r,o&&(o._state=this);for(let u=0;us.set(d,f)),t=null),s.set(u.value.compartment,u.value.extension)):u.is(Me.reconfigure)?(t=null,i=u.value):u.is(Me.appendConfig)&&(t=null,i=ba(i).concat(u.value));let r;t?r=e.startState.values.slice():(t=qu.resolve(i,s,this),r=new ze(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(f,d)=>d.reconfigure(f,this),null).values);let o=e.startState.facet(ep)?e.newSelection:e.newSelection.asSingle();new ze(t,e.newDoc,o,r,(u,f)=>f.update(u,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:X.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,i=e(t.ranges[0]),s=this.changes(i.changes),r=[i.range],o=ba(i.effects);for(let u=1;uo.spec.fromJSON(u,f)))}}return ze.create({doc:e.doc,selection:X.fromJSON(e.selection),extensions:t.extensions?s.concat([t.extensions]):s})}static create(e={}){let t=qu.resolve(e.extensions||[],new Map),i=e.doc instanceof qe?e.doc:qe.of((e.doc||"").split(t.staticFacet(ze.lineSeparator)||Xm)),s=e.selection?e.selection instanceof X?e.selection:X.single(e.selection.anchor,e.selection.head):X.single(0);return yw(s,i.length),t.staticFacet(ep)||(s=s.asSingle()),new ze(t,i,s,t.dynamicSlots.map(()=>null),(r,o)=>o.create(r),null)}get tabSize(){return this.facet(ze.tabSize)}get lineBreak(){return this.facet(ze.lineSeparator)||` -`}get readOnly(){return this.facet(Cw)}phrase(e,...t){for(let i of this.facet(ze.phrases))if(Object.prototype.hasOwnProperty.call(i,e)){e=i[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(i,s)=>{if(s=="$")return"$";let r=+(s||1);return!r||r>t.length?i:t[r-1]})),e}languageDataAt(e,t,i=-1){let s=[];for(let r of this.facet(xw))for(let o of r(this,t,i))Object.prototype.hasOwnProperty.call(o,e)&&s.push(o[e]);return s}charCategorizer(e){let t=this.languageDataAt("wordChars",e);return oE(t.length?t[0]:"")}wordAt(e){let{text:t,from:i,length:s}=this.doc.lineAt(e),r=this.charCategorizer(e),o=e-i,u=e-i;for(;o>0;){let f=jt(t,o,!1);if(r(t.slice(f,o))!=at.Word)break;o=f}for(;un.length?n[0]:4});ze.lineSeparator=vw;ze.readOnly=Cw;ze.phrases=ce.define({compare(n,e){let t=Object.keys(n),i=Object.keys(e);return t.length==i.length&&t.every(s=>n[s]==e[s])}});ze.languageData=xw;ze.changeFilter=ww;ze.transactionFilter=Sw;ze.transactionExtender=kw;gh.reconfigure=Me.define();function Si(n,e,t={}){let i={};for(let s of n)for(let r of Object.keys(s)){let o=s[r],u=i[r];if(u===void 0)i[r]=o;else if(!(u===o||o===void 0))if(Object.hasOwnProperty.call(t,r))i[r]=t[r](u,o);else throw new Error("Config merge conflict for field "+r)}for(let s in e)i[s]===void 0&&(i[s]=e[s]);return i}class Ol{eq(e){return this==e}range(e,t=e){return ao.create(e,t,this)}}Ol.prototype.startSide=Ol.prototype.endSide=0;Ol.prototype.point=!1;Ol.prototype.mapMode=Qt.TrackDel;function hg(n,e){return n==e||n.constructor==e.constructor&&n.eq(e)}class ao{constructor(e,t,i){this.from=e,this.to=t,this.value=i}static create(e,t,i){return new ao(e,t,i)}}function ip(n,e){return n.from-e.from||n.value.startSide-e.value.startSide}class fg{constructor(e,t,i,s){this.from=e,this.to=t,this.value=i,this.maxPoint=s}get length(){return this.to[this.to.length-1]}findIndex(e,t,i,s=0){let r=i?this.to:this.from;for(let o=s,u=r.length;;){if(o==u)return o;let f=o+u>>1,d=r[f]-e||(i?this.value[f].endSide:this.value[f].startSide)-t;if(f==o)return d>=0?o:u;d>=0?u=f:o=f+1}}between(e,t,i,s){for(let r=this.findIndex(t,-1e9,!0),o=this.findIndex(i,1e9,!1,r);rw||x==w&&d.startSide>0&&d.endSide<=0)continue;(w-x||d.endSide-d.startSide)<0||(o<0&&(o=x),d.point&&(u=Math.max(u,w-x)),i.push(d),s.push(x-o),r.push(w-o))}return{mapped:i.length?new fg(s,r,i,u):null,pos:o}}}class je{constructor(e,t,i,s){this.chunkPos=e,this.chunk=t,this.nextLayer=i,this.maxPoint=s}static create(e,t,i,s){return new je(e,t,i,s)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:i=!1,filterFrom:s=0,filterTo:r=this.length}=e,o=e.filter;if(t.length==0&&!o)return this;if(i&&(t=t.slice().sort(ip)),this.isEmpty)return t.length?je.of(t):this;let u=new Tw(this,null,-1).goto(0),f=0,d=[],p=new Fi;for(;u.value||f=0){let b=t[f++];p.addInner(b.from,b.to,b.value)||d.push(b)}else u.rangeIndex==1&&u.chunkIndexthis.chunkEnd(u.chunkIndex)||ru.to||r=r&&e<=r+o.length&&o.between(r,e-r,t-r,i)===!1)return}this.nextLayer.between(e,t,i)}}iter(e=0){return ro.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return ro.from(e).goto(t)}static compare(e,t,i,s,r=-1){let o=e.filter(b=>b.maxPoint>0||!b.isEmpty&&b.maxPoint>=r),u=t.filter(b=>b.maxPoint>0||!b.isEmpty&&b.maxPoint>=r),f=Ex(o,u,i),d=new Hr(o,f,r),p=new Hr(u,f,r);i.iterGaps((b,x,w)=>Dx(d,b,p,x,w,s)),i.empty&&i.length==0&&Dx(d,0,p,0,0,s)}static eq(e,t,i=0,s){s==null&&(s=999999999);let r=e.filter(p=>!p.isEmpty&&t.indexOf(p)<0),o=t.filter(p=>!p.isEmpty&&e.indexOf(p)<0);if(r.length!=o.length)return!1;if(!r.length)return!0;let u=Ex(r,o),f=new Hr(r,u,0).goto(i),d=new Hr(o,u,0).goto(i);for(;;){if(f.to!=d.to||!lp(f.active,d.active)||f.point&&(!d.point||!hg(f.point,d.point)))return!1;if(f.to>s)return!0;f.next(),d.next()}}static spans(e,t,i,s,r=-1){let o=new Hr(e,null,r).goto(t),u=t,f=o.openStart;for(;;){let d=Math.min(o.to,i);if(o.point){let p=o.activeForPoint(o.to),b=o.pointFromu&&(s.span(u,d,o.active,f),f=o.openEnd(d));if(o.to>i)return f+(o.point&&o.to>i?1:0);u=o.to,o.next()}}static of(e,t=!1){let i=new Fi;for(let s of e instanceof ao?[e]:t?cE(e):e)i.add(s.from,s.to,s.value);return i.finish()}static join(e){if(!e.length)return je.empty;let t=e[e.length-1];for(let i=e.length-2;i>=0;i--)for(let s=e[i];s!=je.empty;s=s.nextLayer)t=new je(s.chunkPos,s.chunk,t,Math.max(s.maxPoint,t.maxPoint));return t}}je.empty=new je([],[],null,-1);function cE(n){if(n.length>1)for(let e=n[0],t=1;t0)return n.slice().sort(ip);e=i}return n}je.empty.nextLayer=je.empty;class Fi{finishChunk(e){this.chunks.push(new fg(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,t,i){this.addInner(e,t,i)||(this.nextLayer||(this.nextLayer=new Fi)).add(e,t,i)}addInner(e,t,i){let s=e-this.lastTo||i.startSide-this.last.endSide;if(s<=0&&(e-this.lastFrom||i.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return s<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=i,this.lastFrom=e,this.lastTo=t,this.value.push(i),i.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),!0)}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);let i=t.value.length-1;return this.last=t.value[i],this.lastFrom=t.from[i]+e,this.lastTo=t.to[i]+e,!0}finish(){return this.finishInner(je.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let t=je.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}}function Ex(n,e,t){let i=new Map;for(let r of n)for(let o=0;o=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=i&&s.push(new Tw(o,t,i,r));return s.length==1?s[0]:new ro(s)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(let i of this.heap)i.goto(e,t);for(let i=this.heap.length>>1;i>=0;i--)om(this.heap,i);return this.next(),this}forward(e,t){for(let i of this.heap)i.forward(e,t);for(let i=this.heap.length>>1;i>=0;i--)om(this.heap,i);(this.to-e||this.value.endSide-t)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),om(this.heap,0)}}}function om(n,e){for(let t=n[e];;){let i=(e<<1)+1;if(i>=n.length)break;let s=n[i];if(i+1=0&&(s=n[i+1],i++),t.compare(s)<0)break;n[i]=t,n[e]=s,e=i}}class Hr{constructor(e,t,i){this.minPoint=i,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=ro.from(e,t,i)}goto(e,t=-1e9){return this.cursor.goto(e,t),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=t,this.openStart=-1,this.next(),this}forward(e,t){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-t)<0;)this.removeActive(this.minActive);this.cursor.forward(e,t)}removeActive(e){lu(this.active,e),lu(this.activeTo,e),lu(this.activeRank,e),this.minActive=Ox(this.active,this.activeTo)}addActive(e){let t=0,{value:i,to:s,rank:r}=this.cursor;for(;t0;)t++;su(this.active,t,i),su(this.activeTo,t,s),su(this.activeRank,t,r),e&&su(e,t,this.cursor.from),this.minActive=Ox(this.active,this.activeTo)}next(){let e=this.to,t=this.point;this.point=null;let i=this.openStart<0?[]:null;for(;;){let s=this.minActive;if(s>-1&&(this.activeTo[s]-this.cursor.from||this.active[s].endSide-this.cursor.startSide)<0){if(this.activeTo[s]>e){this.to=this.activeTo[s],this.endSide=this.active[s].endSide;break}this.removeActive(s),i&&lu(i,s)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let r=this.cursor.value;if(!r.point)this.addActive(i),this.cursor.next();else if(t&&this.cursor.to==this.to&&this.cursor.from=0&&i[s]=0&&!(this.activeRank[i]e||this.activeTo[i]==e&&this.active[i].endSide>=this.point.endSide)&&t.push(this.active[i]);return t.reverse()}openEnd(e){let t=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>e;i--)t++;return t}}function Dx(n,e,t,i,s,r){n.goto(e),t.goto(i);let o=i+s,u=i,f=i-e,d=!!r.boundChange;for(let p=!1;;){let b=n.to+f-t.to,x=b||n.endSide-t.endSide,w=x<0?n.to+f:t.to,S=Math.min(w,o);if(n.point||t.point?(n.point&&t.point&&hg(n.point,t.point)&&lp(n.activeForPoint(n.to),t.activeForPoint(t.to))||r.comparePoint(u,S,n.point,t.point),p=!1):(p&&r.boundChange(u),S>u&&!lp(n.active,t.active)&&r.compareRange(u,S,n.active,t.active),d&&So)break;u=w,x<=0&&n.next(),x>=0&&t.next()}}function lp(n,e){if(n.length!=e.length)return!1;for(let t=0;t=e;i--)n[i+1]=n[i];n[e]=t}function Ox(n,e){let t=-1,i=1e9;for(let s=0;s=e)return s;if(s==n.length)break;r+=n.charCodeAt(s)==9?t-r%t:1,s=jt(n,s)}return i===!0?-1:n.length}const ap="ͼ",jx=typeof Symbol>"u"?"__"+ap:Symbol.for(ap),rp=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),Rx=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{};class jl{constructor(e,t){this.rules=[];let{finish:i}=t||{};function s(o){return/^@/.test(o)?[o]:o.split(/,\s*/)}function r(o,u,f,d){let p=[],b=/^@(\w+)\b/.exec(o[0]),x=b&&b[1]=="keyframes";if(b&&u==null)return f.push(o[0]+";");for(let w in u){let S=u[w];if(/&/.test(w))r(w.split(/,\s*/).map(A=>o.map(C=>A.replace(/&/,C))).reduce((A,C)=>A.concat(C)),S,f);else if(S&&typeof S=="object"){if(!b)throw new RangeError("The value of a property ("+w+") should be a primitive value.");r(s(w),S,p,x)}else S!=null&&p.push(w.replace(/_.*/,"").replace(/[A-Z]/g,A=>"-"+A.toLowerCase())+": "+S+";")}(p.length||x)&&f.push((i&&!b&&!d?o.map(i):o).join(", ")+" {"+p.join(" ")+"}")}for(let o in e)r(s(o),e[o],this.rules)}getRules(){return this.rules.join(` -`)}static newName(){let e=Rx[jx]||1;return Rx[jx]=e+1,ap+e.toString(36)}static mount(e,t,i){let s=e[rp],r=i&&i.nonce;s?r&&s.setNonce(r):s=new uE(e,r),s.mount(Array.isArray(t)?t:[t],e)}}let _x=new Map;class uE{constructor(e,t){let i=e.ownerDocument||e,s=i.defaultView;if(!e.head&&e.adoptedStyleSheets&&s.CSSStyleSheet){let r=_x.get(i);if(r)return e[rp]=r;this.sheet=new s.CSSStyleSheet,_x.set(i,this)}else this.styleTag=i.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);this.modules=[],e[rp]=this}mount(e,t){let i=this.sheet,s=0,r=0;for(let o=0;o-1&&(this.modules.splice(f,1),r--,f=-1),f==-1){if(this.modules.splice(r++,0,u),i)for(let d=0;d",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},hE=typeof navigator<"u"&&/Mac/.test(navigator.platform),fE=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(var Ut=0;Ut<10;Ut++)Rl[48+Ut]=Rl[96+Ut]=String(Ut);for(var Ut=1;Ut<=24;Ut++)Rl[Ut+111]="F"+Ut;for(var Ut=65;Ut<=90;Ut++)Rl[Ut]=String.fromCharCode(Ut+32),oo[Ut]=String.fromCharCode(Ut);for(var cm in Rl)oo.hasOwnProperty(cm)||(oo[cm]=Rl[cm]);function dE(n){var e=hE&&n.metaKey&&n.shiftKey&&!n.ctrlKey&&!n.altKey||fE&&n.shiftKey&&n.key&&n.key.length==1||n.key=="Unidentified",t=!e&&n.key||(n.shiftKey?oo:Rl)[n.keyCode]||n.key||"Unidentified";return t=="Esc"&&(t="Escape"),t=="Del"&&(t="Delete"),t=="Left"&&(t="ArrowLeft"),t=="Up"&&(t="ArrowUp"),t=="Right"&&(t="ArrowRight"),t=="Down"&&(t="ArrowDown"),t}function Qe(){var n=arguments[0];typeof n=="string"&&(n=document.createElement(n));var e=1,t=arguments[1];if(t&&typeof t=="object"&&t.nodeType==null&&!Array.isArray(t)){for(var i in t)if(Object.prototype.hasOwnProperty.call(t,i)){var s=t[i];typeof s=="string"?n.setAttribute(i,s):s!=null&&(n[i]=s)}e++}for(;e2);var oe={mac:Bx||/Mac/.test(Xt.platform),windows:/Win/.test(Xt.platform),linux:/Linux|X11/.test(Xt.platform),ie:yh,ie_version:Ew?op.documentMode||6:up?+up[1]:cp?+cp[1]:0,gecko:Lx,gecko_version:Lx?+(/Firefox\/(\d+)/.exec(Xt.userAgent)||[0,0])[1]:0,chrome:!!um,chrome_version:um?+um[1]:0,ios:Bx,android:/Android\b/.test(Xt.userAgent),webkit_version:mE?+(/\bAppleWebKit\/(\d+)/.exec(Xt.userAgent)||[0,0])[1]:0,safari:hp,safari_version:hp?+(/\bVersion\/(\d+(\.\d+)?)/.exec(Xt.userAgent)||[0,0])[1]:0,tabSize:op.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function dg(n,e){for(let t in n)t=="class"&&e.class?e.class+=" "+n.class:t=="style"&&e.style?e.style+=";"+n.style:e[t]=n[t];return e}const Ku=Object.create(null);function mg(n,e,t){if(n==e)return!0;n||(n=Ku),e||(e=Ku);let i=Object.keys(n),s=Object.keys(e);if(i.length-0!=s.length-0)return!1;for(let r of i)if(r!=t&&(s.indexOf(r)==-1||n[r]!==e[r]))return!1;return!0}function pE(n,e){for(let t=n.attributes.length-1;t>=0;t--){let i=n.attributes[t].name;e[i]==null&&n.removeAttribute(i)}for(let t in e){let i=e[t];t=="style"?n.style.cssText=i:n.getAttribute(t)!=i&&n.setAttribute(t,i)}}function zx(n,e,t){let i=!1;if(e)for(let s in e)t&&s in t||(i=!0,s=="style"?n.style.cssText="":n.removeAttribute(s));if(t)for(let s in t)e&&e[s]==t[s]||(i=!0,s=="style"?n.style.cssText=t[s]:n.setAttribute(s,t[s]));return i}function gE(n){let e=Object.create(null);for(let t=0;t0?3e8:-4e8:t>0?1e8:-1e8,new gs(e,t,t,i,e.widget||null,!1)}static replace(e){let t=!!e.block,i,s;if(e.isBlockGap)i=-5e8,s=4e8;else{let{start:r,end:o}=Dw(e,t);i=(r?t?-3e8:-1:5e8)-1,s=(o?t?2e8:1:-6e8)+1}return new gs(e,i,s,t,e.widget||null,!0)}static line(e){return new Eo(e)}static set(e,t=!1){return je.of(e,t)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}}we.none=je.empty;class No extends we{constructor(e){let{start:t,end:i}=Dw(e);super(t?-1:5e8,i?1:-6e8,null,e),this.tagName=e.tagName||"span",this.attrs=e.class&&e.attributes?dg(e.attributes,{class:e.class}):e.class?{class:e.class}:e.attributes||Ku}eq(e){return this==e||e instanceof No&&this.tagName==e.tagName&&mg(this.attrs,e.attrs)}range(e,t=e){if(e>=t)throw new RangeError("Mark decorations may not be empty");return super.range(e,t)}}No.prototype.point=!1;class Eo extends we{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof Eo&&this.spec.class==e.spec.class&&mg(this.spec.attributes,e.spec.attributes)}range(e,t=e){if(t!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,t)}}Eo.prototype.mapMode=Qt.TrackBefore;Eo.prototype.point=!0;class gs extends we{constructor(e,t,i,s,r,o){super(t,i,r,e),this.block=s,this.isReplace=o,this.mapMode=s?t<=0?Qt.TrackBefore:Qt.TrackAfter:Qt.TrackDel}get type(){return this.startSide!=this.endSide?qt.WidgetRange:this.startSide<=0?qt.WidgetBefore:qt.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof gs&&yE(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,t=e){if(this.isReplace&&(e>t||e==t&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&t!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,t)}}gs.prototype.point=!0;function Dw(n,e=!1){let{inclusiveStart:t,inclusiveEnd:i}=n;return t==null&&(t=n.inclusive),i==null&&(i=n.inclusive),{start:t??e,end:i??e}}function yE(n,e){return n==e||!!(n&&e&&n.compare(e))}function xa(n,e,t,i=0){let s=t.length-1;s>=0&&t[s]+i>=n?t[s]=Math.max(t[s],e):t.push(n,e)}class co extends Ol{constructor(e,t){super(),this.tagName=e,this.attributes=t}eq(e){return e==this||e instanceof co&&this.tagName==e.tagName&&mg(this.attributes,e.attributes)}static create(e){return new co(e.tagName,e.attributes||Ku)}static set(e,t=!1){return je.of(e,t)}}co.prototype.startSide=co.prototype.endSide=-1;function uo(n){let e;return n.nodeType==11?e=n.getSelection?n:n.ownerDocument:e=n,e.getSelection()}function fp(n,e){return e?n==e||n.contains(e.nodeType!=1?e.parentNode:e):!1}function Qr(n,e){if(!e.anchorNode)return!1;try{return fp(n,e.anchorNode)}catch{return!1}}function Zr(n){return n.nodeType==3?fo(n,0,n.nodeValue.length).getClientRects():n.nodeType==1?n.getClientRects():[]}function $r(n,e,t,i){return t?Hx(n,e,t,i,-1)||Hx(n,e,t,i,1):!1}function _l(n){for(var e=0;;e++)if(n=n.previousSibling,!n)return e}function Gu(n){return n.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(n.nodeName)}function Hx(n,e,t,i,s){for(;;){if(n==t&&e==i)return!0;if(e==(s<0?0:Xi(n))){if(n.nodeName=="DIV")return!1;let r=n.parentNode;if(!r||r.nodeType!=1)return!1;e=_l(n)+(s<0?0:1),n=r}else if(n.nodeType==1){if(n=n.childNodes[e+(s<0?-1:0)],n.nodeType==1&&n.contentEditable=="false")return!1;e=s<0?Xi(n):0}else return!1}}function Xi(n){return n.nodeType==3?n.nodeValue.length:n.childNodes.length}function ho(n,e){let t=e?n.left:n.right;return{left:t,right:t,top:n.top,bottom:n.bottom}}function bE(n){let e=n.visualViewport;return e?{left:0,right:e.width,top:0,bottom:e.height}:{left:0,right:n.innerWidth,top:0,bottom:n.innerHeight}}function Ow(n,e){let t=e.width/n.offsetWidth,i=e.height/n.offsetHeight;return(t>.995&&t<1.005||!isFinite(t)||Math.abs(e.width-n.offsetWidth)<1)&&(t=1),(i>.995&&i<1.005||!isFinite(i)||Math.abs(e.height-n.offsetHeight)<1)&&(i=1),{scaleX:t,scaleY:i}}function xE(n,e,t,i,s,r,o,u){let f=n.ownerDocument,d=f.defaultView||window;for(let p=n,b=!1;p&&!b;)if(p.nodeType==1){let x,w=p==f.body,S=1,A=1;if(w)x=bE(d);else{if(/^(fixed|sticky)$/.test(getComputedStyle(p).position)&&(b=!0),p.scrollHeight<=p.clientHeight&&p.scrollWidth<=p.clientWidth){p=p.assignedSlot||p.parentNode;continue}let R=p.getBoundingClientRect();({scaleX:S,scaleY:A}=Ow(p,R)),x={left:R.left,right:R.left+p.clientWidth*S,top:R.top,bottom:R.top+p.clientHeight*A}}let C=0,T=0;if(s=="nearest")e.top0&&e.bottom>x.bottom+T&&(T=e.bottom-x.bottom+o)):e.bottom>x.bottom&&(T=e.bottom-x.bottom+o,t<0&&e.top-T0&&e.right>x.right+C&&(C=e.right-x.right+r)):e.right>x.right&&(C=e.right-x.right+r,t<0&&e.leftx.bottom||e.leftx.right)&&(e={left:Math.max(e.left,x.left),right:Math.min(e.right,x.right),top:Math.max(e.top,x.top),bottom:Math.min(e.bottom,x.bottom)}),p=p.assignedSlot||p.parentNode}else if(p.nodeType==11)p=p.host;else break}function vE(n){let e=n.ownerDocument,t,i;for(let s=n.parentNode;s&&!(s==e.body||t&&i);)if(s.nodeType==1)!i&&s.scrollHeight>s.clientHeight&&(i=s),!t&&s.scrollWidth>s.clientWidth&&(t=s),s=s.assignedSlot||s.parentNode;else if(s.nodeType==11)s=s.host;else break;return{x:t,y:i}}class wE{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:t,focusNode:i}=e;this.set(t,Math.min(e.anchorOffset,t?Xi(t):0),i,Math.min(e.focusOffset,i?Xi(i):0))}set(e,t,i,s){this.anchorNode=e,this.anchorOffset=t,this.focusNode=i,this.focusOffset=s}}let rs=null;oe.safari&&oe.safari_version>=26&&(rs=!1);function jw(n){if(n.setActive)return n.setActive();if(rs)return n.focus(rs);let e=[];for(let t=n;t&&(e.push(t,t.scrollTop,t.scrollLeft),t!=t.ownerDocument);t=t.parentNode);if(n.focus(rs==null?{get preventScroll(){return rs={preventScroll:!0},!0}}:void 0),!rs){rs=!1;for(let t=0;tMath.max(1,n.scrollHeight-n.clientHeight-4)}function _w(n,e){for(let t=n,i=e;;){if(t.nodeType==3&&i>0)return{node:t,offset:i};if(t.nodeType==1&&i>0){if(t.contentEditable=="false")return null;t=t.childNodes[i-1],i=Xi(t)}else if(t.parentNode&&!Gu(t))i=_l(t),t=t.parentNode;else return null}}function Lw(n,e){for(let t=n,i=e;;){if(t.nodeType==3&&i=t){if(u.level==i)return o;(r<0||(s!=0?s<0?u.fromt:e[r].level>u.level))&&(r=o)}}if(r<0)throw new RangeError("Index out of range");return r}}function Hw(n,e){if(n.length!=e.length)return!1;for(let t=0;t=0;A-=3)if(ri[A+1]==-w){let C=ri[A+2],T=C&2?s:C&4?C&1?r:s:0;T&&($e[b]=$e[ri[A]]=T),u=A;break}}else{if(ri.length==189)break;ri[u++]=b,ri[u++]=x,ri[u++]=f}else if((S=$e[b])==2||S==1){let A=S==s;f=A?0:1;for(let C=u-3;C>=0;C-=3){let T=ri[C+2];if(T&2)break;if(A)ri[C+2]|=2;else{if(T&4)break;ri[C+2]|=4}}}}}function EE(n,e,t,i){for(let s=0,r=i;s<=t.length;s++){let o=s?t[s-1].to:n,u=sf;)S==C&&(S=t[--A].from,C=A?t[A-1].to:n),$e[--S]=w;f=p}else r=d,f++}}}function mp(n,e,t,i,s,r,o){let u=i%2?2:1;if(i%2==s%2)for(let f=e,d=0;ff&&o.push(new gi(f,A.from,w));let C=A.direction==ys!=!(w%2);pp(n,C?i+1:i,s,A.inner,A.from,A.to,o),f=A.to}S=A.to}else{if(S==t||(p?$e[S]!=u:$e[S]==u))break;S++}x?mp(n,f,S,i+1,s,x,o):fe;){let p=!0,b=!1;if(!d||f>r[d-1].to){let A=$e[f-1];A!=u&&(p=!1,b=A==16)}let x=!p&&u==1?[]:null,w=p?i:i+1,S=f;e:for(;;)if(d&&S==r[d-1].to){if(b)break e;let A=r[--d];if(!p)for(let C=A.from,T=d;;){if(C==e)break e;if(T&&r[T-1].to==C)C=r[--T].from;else{if($e[C-1]==u)break e;break}}if(x)x.push(A);else{A.to$e.length;)$e[$e.length]=256;let i=[],s=e==ys?0:1;return pp(n,s,s,t,0,n.length,i),i}function Vw(n){return[new gi(0,n,0)]}let Uw="";function OE(n,e,t,i,s){var r;let o=i.head-n.from,u=gi.find(e,o,(r=i.bidiLevel)!==null&&r!==void 0?r:-1,i.assoc),f=e[u],d=f.side(s,t);if(o==d){let x=u+=s?1:-1;if(x<0||x>=e.length)return null;f=e[u=x],o=f.side(!s,t),d=f.side(s,t)}let p=jt(n.text,o,f.forward(s,t));(pf.to)&&(p=d),Uw=n.text.slice(Math.min(o,p),Math.max(o,p));let b=u==(s?e.length-1:0)?null:e[u+(s?1:-1)];return b&&p==d&&b.level+(s?0:1)n.some(e=>e)}),Fw=ce.define({combine:n=>n.some(e=>e)}),Xw=ce.define();class wa{constructor(e,t="nearest",i="nearest",s=5,r=5,o=!1){this.range=e,this.y=t,this.x=i,this.yMargin=s,this.xMargin=r,this.isSnapshot=o}map(e){return e.empty?this:new wa(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new wa(X.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const au=Me.define({map:(n,e)=>n.map(e)}),Qw=Me.define();function un(n,e,t){let i=n.facet(Gw);i.length?i[0](e):window.onerror&&window.onerror(String(e),t,void 0,void 0,e)||(t?console.error(t+":",e):console.error(e))}const Ki=ce.define({combine:n=>n.length?n[0]:!0});let RE=0;const da=ce.define({combine(n){return n.filter((e,t)=>{for(let i=0;i{let f=[];return o&&f.push(bh.of(d=>{let p=d.plugin(u);return p?o(p):we.none})),r&&f.push(r(u)),f})}static fromClass(e,t){return ft.define((i,s)=>new e(i,s),t)}}class hm{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(e){if(this.value){if(this.mustUpdate){let t=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(t)}catch(i){if(un(t.state,i,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(e,this.spec.arg)}catch(t){un(e.state,t,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var t;if(!((t=this.value)===null||t===void 0)&&t.destroy)try{this.value.destroy()}catch(i){un(e.state,i,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const Zw=ce.define(),bg=ce.define(),bh=ce.define(),$w=ce.define(),xg=ce.define(),Do=ce.define(),Jw=ce.define();function Ux(n,e){let t=n.state.facet(Jw);if(!t.length)return t;let i=t.map(r=>r instanceof Function?r(n):r),s=[];return je.spans(i,e.from,e.to,{point(){},span(r,o,u,f){let d=r-e.from,p=o-e.from,b=s;for(let x=u.length-1;x>=0;x--,f--){let w=u[x].spec.bidiIsolate,S;if(w==null&&(w=jE(e.text,d,p)),f>0&&b.length&&(S=b[b.length-1]).to==d&&S.direction==w)S.to=p,b=S.inner;else{let A={from:d,to:p,direction:w,inner:[]};b.push(A),b=A.inner}}}}),s}const eS=ce.define();function vg(n){let e=0,t=0,i=0,s=0;for(let r of n.state.facet(eS)){let o=r(n);o&&(o.left!=null&&(e=Math.max(e,o.left)),o.right!=null&&(t=Math.max(t,o.right)),o.top!=null&&(i=Math.max(i,o.top)),o.bottom!=null&&(s=Math.max(s,o.bottom)))}return{left:e,right:t,top:i,bottom:s}}const Kr=ce.define();class zn{constructor(e,t,i,s){this.fromA=e,this.toA=t,this.fromB=i,this.toB=s}join(e){return new zn(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let t=e.length,i=this;for(;t>0;t--){let s=e[t-1];if(!(s.fromA>i.toA)){if(s.toAs.push(new zn(r,o,u,f))),this.changedRanges=s}static create(e,t,i){return new Iu(e,t,i)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}}const _E=[];class wt{constructor(e,t,i=0){this.dom=e,this.length=t,this.flags=i,this.parent=null,e.cmTile=this}get breakAfter(){return this.flags&1}get children(){return _E}isWidget(){return!1}get isHidden(){return!1}isComposite(){return!1}isLine(){return!1}isText(){return!1}isBlock(){return!1}get domAttrs(){return null}sync(e){if(this.flags|=2,this.flags&4){this.flags&=-5;let t=this.domAttrs;t&&pE(this.dom,t)}}toString(){return this.constructor.name+(this.children.length?`(${this.children})`:"")+(this.breakAfter?"#":"")}destroy(){this.parent=null}setDOM(e){this.dom=e,e.cmTile=this}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e,t=this.posAtStart){let i=t;for(let s of this.children){if(s==e)return i;i+=s.length+s.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}covers(e){return!0}coordsIn(e,t){return null}domPosFor(e,t){let i=_l(this.dom),s=this.length?e>0:t>0;return new Wn(this.parent.dom,i+(s?1:0),e==0||e==this.length)}markDirty(e){this.flags&=-3,e&&(this.flags|=4),this.parent&&this.parent.flags&2&&this.parent.markDirty(!1)}get overrideDOMText(){return null}get root(){for(let e=this;e;e=e.parent)if(e instanceof vh)return e;return null}static get(e){return e.cmTile}}class xh extends wt{constructor(e){super(e,0),this._children=[]}isComposite(){return!0}get children(){return this._children}get lastChild(){return this.children.length?this.children[this.children.length-1]:null}append(e){this.children.push(e),e.parent=this}sync(e){if(this.flags&2)return;super.sync(e);let t=this.dom,i=null,s,r=(e==null?void 0:e.node)==t?e:null,o=0;for(let u of this.children){if(u.sync(e),o+=u.length+u.breakAfter,s=i?i.nextSibling:t.firstChild,r&&s!=u.dom&&(r.written=!0),u.dom.parentNode==t)for(;s&&s!=u.dom;)s=qx(s);else t.insertBefore(u.dom,s);i=u.dom}for(s=i?i.nextSibling:t.firstChild,r&&s&&(r.written=!0);s;)s=qx(s);this.length=o}}function qx(n){let e=n.nextSibling;return n.parentNode.removeChild(n),e}class vh extends xh{constructor(e,t){super(t),this.view=e}owns(e){for(;e;e=e.parent)if(e==this)return!0;return!1}isBlock(){return!0}nearest(e){for(;;){if(!e)return null;let t=wt.get(e);if(t&&this.owns(t))return t;e=e.parentNode}}blockTiles(e){for(let t=[],i=this,s=0,r=0;;)if(s==i.children.length){if(!t.length)return;i=i.parent,i.breakAfter&&r++,s=t.pop()}else{let o=i.children[s++];if(o instanceof Yi)t.push(s),i=o,s=0;else{let u=r+o.length,f=e(o,r);if(f!==void 0)return f;r=u+o.breakAfter}}}resolveBlock(e,t){let i,s=-1,r,o=-1;if(this.blockTiles((u,f)=>{let d=f+u.length;if(e>=f&&e<=d){if(u.isWidget()&&t>=-1&&t<=1){if(u.flags&32)return!0;u.flags&16&&(i=void 0)}(fe||e==f&&(t>1?u.length:u.covers(-1)))&&(!r||!u.isWidget()&&r.isWidget())&&(r=u,o=e-f)}}),!i&&!r)throw new Error("No tile at position "+e);return i&&t<0||!r?{tile:i,offset:s}:{tile:r,offset:o}}}class Yi extends xh{constructor(e,t){super(e),this.wrapper=t}isBlock(){return!0}covers(e){return this.children.length?e<0?this.children[0].covers(-1):this.lastChild.covers(1):!1}get domAttrs(){return this.wrapper.attributes}static of(e,t){let i=new Yi(t||document.createElement(e.tagName),e);return t||(i.flags|=4),i}}class Ma extends xh{constructor(e,t){super(e),this.attrs=t}isLine(){return!0}static start(e,t,i){let s=new Ma(t||document.createElement("div"),e);return(!t||!i)&&(s.flags|=4),s}get domAttrs(){return this.attrs}resolveInline(e,t,i){let s=null,r=-1,o=null,u=-1;function f(p,b){for(let x=0,w=0;x=b&&(S.isComposite()?f(S,b-w):(!o||o.isHidden&&(t>0||i&&BE(o,S)))&&(A>b||S.flags&32)?(o=S,u=b-w):(wi&&(e=i);let s=e,r=e,o=0;e==0&&t<0||e==i&&t>=0?oe.chrome||oe.gecko||(e?(s--,o=1):r=0)?0:u.length-1];return oe.safari&&!o&&f.width==0&&(f=Array.prototype.find.call(u,d=>d.width)||f),o?ho(f,o<0):f||null}static of(e,t){let i=new fs(t||document.createTextNode(e),e);return t||(i.flags|=2),i}}class bs extends wt{constructor(e,t,i,s){super(e,t,s),this.widget=i}isWidget(){return!0}get isHidden(){return this.widget.isHidden}covers(e){return this.flags&48?!1:(this.flags&(e<0?64:128))>0}coordsIn(e,t){return this.coordsInWidget(e,t,!1)}coordsInWidget(e,t,i){let s=this.widget.coordsAt(this.dom,e,t);if(s)return s;if(i)return ho(this.dom.getBoundingClientRect(),this.length?e==0:t<=0);{let r=this.dom.getClientRects(),o=null;if(!r.length)return null;let u=this.flags&16?!0:this.flags&32?!1:e>0;for(let f=u?r.length-1:0;o=r[f],!(e>0?f==0:f==r.length-1||o.top0;)if(s.isComposite())if(o){if(!e)break;i&&i.break(),e--,o=!1}else if(r==s.children.length){if(!e&&!u.length)break;i&&i.leave(s),o=!!s.breakAfter,{tile:s,index:r}=u.pop(),r++}else{let f=s.children[r],d=f.breakAfter;(t>0?f.length<=e:f.length=0;u--){let f=t.marks[u],d=s.lastChild;if(d instanceof cn&&d.mark.eq(f.mark))d.dom!=f.dom&&d.setDOM(fm(f.dom)),s=d;else{if(this.cache.reused.get(f)){let b=wt.get(f.dom);b&&b.setDOM(fm(f.dom))}let p=cn.of(f.mark,f.dom);s.append(p),s=p}this.cache.reused.set(f,2)}let r=wt.get(e.text);r&&this.cache.reused.set(r,2);let o=new fs(e.text,e.text.nodeValue);o.flags|=8,s.append(o)}addInlineWidget(e,t,i){let s=this.afterWidget&&e.flags&48&&(this.afterWidget.flags&48)==(e.flags&48);s||this.flushBuffer();let r=this.ensureMarks(t,i);!s&&!(e.flags&16)&&r.append(this.getBuffer(1)),r.append(e),this.pos+=e.length,this.afterWidget=e}addMark(e,t,i){this.flushBuffer(),this.ensureMarks(t,i).append(e),this.pos+=e.length,this.afterWidget=null}addBlockWidget(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}continueWidget(e){let t=this.afterWidget||this.lastBlock;t.length+=e,this.pos+=e}addLineStart(e,t){var i;e||(e=tS);let s=Ma.start(e,t||((i=this.cache.find(Ma))===null||i===void 0?void 0:i.dom),!!t);this.getBlockPos().append(this.lastBlock=this.curLine=s)}addLine(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}addBreak(){this.lastBlock.flags|=1,this.endLine(),this.pos++}addLineStartIfNotCovered(e){this.blockPosCovered()||this.addLineStart(e)}ensureLine(e){this.curLine||this.addLineStart(e)}ensureMarks(e,t){var i;let s=this.curLine;for(let r=e.length-1;r>=0;r--){let o=e[r],u;if(t>0&&(u=s.lastChild)&&u instanceof cn&&u.mark.eq(o))s=u,t--;else{let f=cn.of(o,(i=this.cache.find(cn,d=>d.mark.eq(o)))===null||i===void 0?void 0:i.dom);s.append(f),s=f,t=0}}return s}endLine(){if(this.curLine){this.flushBuffer();let e=this.curLine.lastChild;(!e||!Px(this.curLine,!1)||e.dom.nodeName!="BR"&&e.isWidget()&&!(oe.ios&&Px(this.curLine,!0)))&&this.curLine.append(this.cache.findWidget(dm,0,32)||new bs(dm.toDOM(),0,dm,32)),this.curLine=this.afterWidget=null}}updateBlockWrappers(){this.wrapperPos>this.pos+1e4&&(this.blockWrappers.goto(this.pos),this.wrappers.length=0);for(let e=this.wrappers.length-1;e>=0;e--)this.wrappers[e].to=this.pos){let t=new HE(e.from,e.to,e.value,e.rank),i=this.wrappers.length;for(;i>0&&(this.wrappers[i-1].rank-t.rank||this.wrappers[i-1].to-t.to)<0;)i--;this.wrappers.splice(i,0,t)}this.wrapperPos=this.pos}getBlockPos(){var e;this.updateBlockWrappers();let t=this.root;for(let i of this.wrappers){let s=t.lastChild;if(i.fromo.wrapper.eq(i.wrapper)))===null||e===void 0?void 0:e.dom);t.append(r),t=r}}return t}blockPosCovered(){let e=this.lastBlock;return e!=null&&!e.breakAfter&&(!e.isWidget()||(e.flags&160)>0)}getBuffer(e){let t=2|(e<0?16:32),i=this.cache.find(Yu,void 0,1);return i&&(i.flags=t),i||new Yu(t)}flushBuffer(){this.afterWidget&&!(this.afterWidget.flags&32)&&(this.afterWidget.parent.append(this.getBuffer(-1)),this.afterWidget=null)}}class UE{constructor(e){this.skipCount=0,this.text="",this.textOff=0,this.cursor=e.iter()}skip(e){this.textOff+e<=this.text.length?this.textOff+=e:(this.skipCount+=e-(this.text.length-this.textOff),this.text="",this.textOff=0)}next(e){if(this.textOff==this.text.length){let{value:s,lineBreak:r,done:o}=this.cursor.next(this.skipCount);if(this.skipCount=0,o)throw new Error("Ran out of text content when drawing inline views");this.text=s;let u=this.textOff=Math.min(e,s.length);return r?null:s.slice(0,u)}let t=Math.min(this.text.length,this.textOff+e),i=this.text.slice(this.textOff,t);return this.textOff=t,i}}const Wu=[bs,Ma,fs,cn,Yu,Yi,vh];for(let n=0;n[]),this.index=Wu.map(()=>0),this.reused=new Map}add(e){let t=e.constructor.bucket,i=this.buckets[t];i.length<6?i.push(e):i[this.index[t]=(this.index[t]+1)%6]=e}find(e,t,i=2){let s=e.bucket,r=this.buckets[s],o=this.index[s];for(let u=r.length-1;u>=0;u--){let f=(u+o)%r.length,d=r[f];if((!t||t(d))&&!this.reused.has(d))return r.splice(f,1),f{if(this.cache.add(o),o.isComposite())return!1},enter:o=>this.cache.add(o),leave:()=>{},break:()=>{}}}run(e,t){let i=t&&this.getCompositionContext(t.text);for(let s=0,r=0,o=0;;){let u=os){let d=f-s;this.preserve(d,!o,!u),s=f,r+=d}if(!u)break;t&&u.fromA<=t.range.fromA&&u.toA>=t.range.toA?(this.forward(u.fromA,t.range.fromA,t.range.fromA{if(o.isWidget())if(this.openWidget)this.builder.continueWidget(f-u);else{let d=f>0||u{o.isLine()?this.builder.addLineStart(o.attrs,this.cache.maybeReuse(o)):(this.cache.add(o),o instanceof cn&&s.unshift(o.mark)),this.openWidget=!1},leave:o=>{o.isLine()?s.length&&(s.length=r=0):o instanceof cn&&(s.shift(),r=Math.min(r,s.length))},break:()=>{this.builder.addBreak(),this.openWidget=!1}}),this.text.skip(e)}emit(e,t){let i=null,s=this.builder,r=0,o=je.spans(this.decorations,e,t,{point:(u,f,d,p,b,x)=>{if(d instanceof gs){if(this.disallowBlockEffectsFor[x]){if(d.block)throw new RangeError("Block decorations may not be specified via plugins");if(f>this.view.state.doc.lineAt(u).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}if(r=p.length,b>p.length)s.continueWidget(f-u);else{let w=d.widget||(d.block?Ta.block:Ta.inline),S=KE(d),A=this.cache.findWidget(w,f-u,S)||bs.of(w,this.view,f-u,S);d.block?(d.startSide>0&&s.addLineStartIfNotCovered(i),s.addBlockWidget(A)):(s.ensureLine(i),s.addInlineWidget(A,p,b))}i=null}else i=GE(i,d);f>u&&this.text.skip(f-u)},span:(u,f,d,p)=>{for(let b=u;br,this.openMarks=o}forward(e,t,i=1){t-e<=10?this.old.advance(t-e,i,this.reuseWalker):(this.old.advance(5,-1,this.reuseWalker),this.old.advance(t-e-10,-1),this.old.advance(5,i,this.reuseWalker))}getCompositionContext(e){let t=[],i=null;for(let s=e.parentNode;;s=s.parentNode){let r=wt.get(s);if(s==this.view.contentDOM)break;r instanceof cn?t.push(r):r!=null&&r.isLine()?i=r:r instanceof Yi||(s.nodeName=="DIV"&&!i&&s!=this.view.contentDOM?i=new Ma(s,tS):i||t.push(cn.of(new No({tagName:s.nodeName.toLowerCase(),attributes:gE(s)}),s)))}return{line:i,marks:t}}}function Px(n,e){let t=i=>{for(let s of i.children)if((e?s.isText():s.length)||t(s))return!0;return!1};return t(n)}function KE(n){let e=n.isReplace?(n.startSide<0?64:0)|(n.endSide>0?128:0):n.startSide>0?32:16;return n.block&&(e|=256),e}const tS={class:"cm-line"};function GE(n,e){let t=e.spec.attributes,i=e.spec.class;return!t&&!i||(n||(n={class:"cm-line"}),t&&dg(t,n),i&&(n.class+=" "+i)),n}function IE(n){let e=[];for(let t=n.parents.length;t>1;t--){let i=t==n.parents.length?n.tile:n.parents[t].tile;i instanceof cn&&e.push(i.mark)}return e}function fm(n){let e=wt.get(n);return e&&e.setDOM(n.cloneNode()),n}class Ta extends ki{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}Ta.inline=new Ta("span");Ta.block=new Ta("div");const dm=new class extends ki{toDOM(){return document.createElement("br")}get isHidden(){return!0}get editable(){return!0}};class Kx{constructor(e){this.view=e,this.decorations=[],this.blockWrappers=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.editContextFormatting=we.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.updateDeco(),this.tile=new vh(e,e.contentDOM),this.updateInner([new zn(0,0,0,e.state.doc.length)],null)}update(e){var t;let i=e.changedRanges;this.minWidth>0&&i.length&&(i.every(({fromA:p,toA:b})=>bthis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let s=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((t=this.domChanged)===null||t===void 0)&&t.newSel?s=this.domChanged.newSel.head:!e5(e.changes,this.hasComposition)&&!e.selectionSet&&(s=e.state.selection.main.head));let r=s>-1?WE(this.view,e.changes,s):null;if(this.domChanged=null,this.hasComposition){let{from:p,to:b}=this.hasComposition;i=new zn(p,b,e.changes.mapPos(p,-1),e.changes.mapPos(b,1)).addToSet(i.slice())}this.hasComposition=r?{from:r.range.fromB,to:r.range.toB}:null,(oe.ie||oe.chrome)&&!r&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let o=this.decorations,u=this.blockWrappers;this.updateDeco();let f=QE(o,this.decorations,e.changes);f.length&&(i=zn.extendWithRanges(i,f));let d=$E(u,this.blockWrappers,e.changes);return d.length&&(i=zn.extendWithRanges(i,d)),r&&!i.some(p=>p.fromA<=r.range.fromA&&p.toA>=r.range.toA)&&(i=r.range.addToSet(i.slice())),this.tile.flags&2&&i.length==0?!1:(this.updateInner(i,r),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,t){this.view.viewState.mustMeasureContent=!0;let{observer:i}=this.view;i.ignore(()=>{if(t||e.length){let o=this.tile,u=new PE(this.view,o,this.blockWrappers,this.decorations,this.dynamicDecorationMap);this.tile=u.run(e,t),yp(o,u.cache.reused)}this.tile.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.tile.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let r=oe.chrome||oe.ios?{node:i.selectionRange.focusNode,written:!1}:void 0;this.tile.sync(r),r&&(r.written||i.selectionRange.focusNode!=r.node||!this.tile.dom.contains(r.node))&&(this.forceSelection=!0),this.tile.dom.style.height=""});let s=[];if(this.view.viewport.from||this.view.viewport.to-1)&&Qr(i,this.view.observer.selectionRange)&&!(s&&i.contains(s));if(!(r||t||o))return;let u=this.forceSelection;this.forceSelection=!1;let f=this.view.state.selection.main,d,p;if(f.empty?p=d=this.inlineDOMNearPos(f.anchor,f.assoc||1):(p=this.inlineDOMNearPos(f.head,f.head==f.from?1:-1),d=this.inlineDOMNearPos(f.anchor,f.anchor==f.from?1:-1)),oe.gecko&&f.empty&&!this.hasComposition&&YE(d)){let x=document.createTextNode("");this.view.observer.ignore(()=>d.node.insertBefore(x,d.node.childNodes[d.offset]||null)),d=p=new Wn(x,0),u=!0}let b=this.view.observer.selectionRange;(u||!b.focusNode||(!$r(d.node,d.offset,b.anchorNode,b.anchorOffset)||!$r(p.node,p.offset,b.focusNode,b.focusOffset))&&!this.suppressWidgetCursorChange(b,f))&&(this.view.observer.ignore(()=>{oe.android&&oe.chrome&&i.contains(b.focusNode)&&JE(b.focusNode,i)&&(i.blur(),i.focus({preventScroll:!0}));let x=uo(this.view.root);if(x)if(f.empty){if(oe.gecko){let w=FE(d.node,d.offset);if(w&&w!=3){let S=(w==1?_w:Lw)(d.node,d.offset);S&&(d=new Wn(S.node,S.offset))}}x.collapse(d.node,d.offset),f.bidiLevel!=null&&x.caretBidiLevel!==void 0&&(x.caretBidiLevel=f.bidiLevel)}else if(x.extend){x.collapse(d.node,d.offset);try{x.extend(p.node,p.offset)}catch{}}else{let w=document.createRange();f.anchor>f.head&&([d,p]=[p,d]),w.setEnd(p.node,p.offset),w.setStart(d.node,d.offset),x.removeAllRanges(),x.addRange(w)}o&&this.view.root.activeElement==i&&(i.blur(),s&&s.focus())}),this.view.observer.setSelectionRange(d,p)),this.impreciseAnchor=d.precise?null:new Wn(b.anchorNode,b.anchorOffset),this.impreciseHead=p.precise?null:new Wn(b.focusNode,b.focusOffset)}suppressWidgetCursorChange(e,t){return this.hasComposition&&t.empty&&$r(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==t.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,t=e.state.selection.main,i=uo(e.root),{anchorNode:s,anchorOffset:r}=e.observer.selectionRange;if(!i||!t.empty||!t.assoc||!i.modify)return;let o=this.lineAt(t.head,t.assoc);if(!o)return;let u=o.posAtStart;if(t.head==u||t.head==u+o.length)return;let f=this.coordsAt(t.head,-1),d=this.coordsAt(t.head,1);if(!f||!d||f.bottom>d.top)return;let p=this.domAtPos(t.head+t.assoc,t.assoc);i.collapse(p.node,p.offset),i.modify("move",t.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let b=e.observer.selectionRange;e.docView.posFromDOM(b.anchorNode,b.anchorOffset)!=t.from&&i.collapse(s,r)}posFromDOM(e,t){let i=this.tile.nearest(e);if(!i)return this.tile.dom.compareDocumentPosition(e)&2?0:this.view.state.doc.length;let s=i.posAtStart;if(i.isComposite()){let r;if(e==i.dom)r=i.dom.childNodes[t];else{let o=Xi(e)==0?0:t==0?-1:1;for(;;){let u=e.parentNode;if(u==i.dom)break;o==0&&u.firstChild!=u.lastChild&&(e==u.firstChild?o=-1:o=1),e=u}o<0?r=e:r=e.nextSibling}if(r==i.dom.firstChild)return s;for(;r&&!wt.get(r);)r=r.nextSibling;if(!r)return s+i.length;for(let o=0,u=s;;o++){let f=i.children[o];if(f.dom==r)return u;u+=f.length+f.breakAfter}}else return i.isText()?e==i.dom?s+t:s+(t?i.length:0):s}domAtPos(e,t){let{tile:i,offset:s}=this.tile.resolveBlock(e,t);return i.isWidget()?i.domPosFor(e,t):i.domIn(s,t)}inlineDOMNearPos(e,t){let i,s=-1,r=!1,o,u=-1,f=!1;return this.tile.blockTiles((d,p)=>{if(d.isWidget()){if(d.flags&32&&p>=e)return!0;d.flags&16&&(r=!0)}else{let b=p+d.length;if(p<=e&&(i=d,s=e-p,r=b=e&&!o&&(o=d,u=e-p,f=p>e),p>e&&o)return!0}}),!i&&!o?this.domAtPos(e,t):(r&&o?i=null:f&&i&&(o=null),i&&t<0||!o?i.domIn(s,t):o.domIn(u,t))}coordsAt(e,t){let{tile:i,offset:s}=this.tile.resolveBlock(e,t);return i.isWidget()?i.widget instanceof mm?null:i.coordsInWidget(s,t,!0):i.coordsIn(s,t)}lineAt(e,t){let{tile:i}=this.tile.resolveBlock(e,t);return i.isLine()?i:null}coordsForChar(e){let{tile:t,offset:i}=this.tile.resolveBlock(e,1);if(!t.isLine())return null;function s(r,o){if(r.isComposite())for(let u of r.children){if(u.length>=o){let f=s(u,o);if(f)return f}if(o-=u.length,o<0)break}else if(r.isText()&&oMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,u=-1,f=this.view.textDirection==Je.LTR,d=0,p=(b,x,w)=>{for(let S=0;Ss);S++){let A=b.children[S],C=x+A.length,T=A.dom.getBoundingClientRect(),{height:R}=T;if(w&&!S&&(d+=T.top-w.top),A instanceof Yi)C>i&&p(A,x,T);else if(x>=i&&(d>0&&t.push(-d),t.push(R+d),d=0,o)){let E=A.dom.lastChild,q=E?Zr(E):[];if(q.length){let B=q[q.length-1],I=f?B.right-T.left:T.right-B.left;I>u&&(u=I,this.minWidth=r,this.minWidthFrom=x,this.minWidthTo=C)}}w&&S==b.children.length-1&&(d+=w.bottom-T.bottom),x=C+A.breakAfter}};return p(this.tile,0,null),t}textDirectionAt(e){let{tile:t}=this.tile.resolveBlock(e,1);return getComputedStyle(t.dom).direction=="rtl"?Je.RTL:Je.LTR}measureTextSize(){let e=this.tile.blockTiles(o=>{if(o.isLine()&&o.children.length&&o.length<=20){let u=0,f;for(let d of o.children){if(!d.isText()||/[^ -~]/.test(d.text))return;let p=Zr(d.dom);if(p.length!=1)return;u+=p[0].width,f=p[0].height}if(u)return{lineHeight:o.dom.getBoundingClientRect().height,charWidth:u/o.length,textHeight:f}}});if(e)return e;let t=document.createElement("div"),i,s,r;return t.className="cm-line",t.style.width="99999px",t.style.position="absolute",t.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.tile.dom.appendChild(t);let o=Zr(t.firstChild)[0];i=t.getBoundingClientRect().height,s=o&&o.width?o.width/27:7,r=o&&o.height?o.height:i,t.remove()}),{lineHeight:i,charWidth:s,textHeight:r}}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let i=0,s=0;;s++){let r=s==t.viewports.length?null:t.viewports[s],o=r?r.from-1:this.view.state.doc.length;if(o>i){let u=(t.lineBlockAt(o).bottom-t.lineBlockAt(i).top)/this.view.scaleY;e.push(we.replace({widget:new mm(u),block:!0,inclusive:!0,isBlockGap:!0}).range(i,o))}if(!r)break;i=r.to+1}return we.set(e)}updateDeco(){let e=1,t=this.view.state.facet(bh).map(r=>(this.dynamicDecorationMap[e++]=typeof r=="function")?r(this.view):r),i=!1,s=this.view.state.facet(xg).map((r,o)=>{let u=typeof r=="function";return u&&(i=!0),u?r(this.view):r});for(s.length&&(this.dynamicDecorationMap[e++]=i,t.push(je.join(s))),this.decorations=[this.editContextFormatting,...t,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];etypeof r=="function"?r(this.view):r)}scrollIntoView(e){if(e.isSnapshot){let d=this.view.viewState.lineBlockAt(e.range.head);this.view.scrollDOM.scrollTop=d.top-e.yMargin,this.view.scrollDOM.scrollLeft=e.xMargin;return}for(let d of this.view.state.facet(Xw))try{if(d(this.view,e.range,e))return!0}catch(p){un(this.view.state,p,"scroll handler")}let{range:t}=e,i=this.coordsAt(t.head,t.empty?t.assoc:t.head>t.anchor?-1:1),s;if(!i)return;!t.empty&&(s=this.coordsAt(t.anchor,t.anchor>t.head?-1:1))&&(i={left:Math.min(i.left,s.left),top:Math.min(i.top,s.top),right:Math.max(i.right,s.right),bottom:Math.max(i.bottom,s.bottom)});let r=vg(this.view),o={left:i.left-r.left,top:i.top-r.top,right:i.right+r.right,bottom:i.bottom+r.bottom},{offsetWidth:u,offsetHeight:f}=this.view.scrollDOM;if(xE(this.view.scrollDOM,o,t.head1&&(i.top>window.pageYOffset+window.visualViewport.offsetTop+window.visualViewport.height||i.bottomi.isWidget()||i.children.some(t);return t(this.tile.resolveBlock(e,1).tile)}destroy(){yp(this.tile)}}function yp(n,e){let t=e==null?void 0:e.get(n);if(t!=1){t==null&&n.destroy();for(let i of n.children)yp(i,e)}}function YE(n){return n.node.nodeType==1&&n.node.firstChild&&(n.offset==0||n.node.childNodes[n.offset-1].contentEditable=="false")&&(n.offset==n.node.childNodes.length||n.node.childNodes[n.offset].contentEditable=="false")}function nS(n,e){let t=n.observer.selectionRange;if(!t.focusNode)return null;let i=_w(t.focusNode,t.focusOffset),s=Lw(t.focusNode,t.focusOffset),r=i||s;if(s&&i&&s.node!=i.node){let u=wt.get(s.node);if(!u||u.isText()&&u.text!=s.node.nodeValue)r=s;else if(n.docView.lastCompositionAfterCursor){let f=wt.get(i.node);!f||f.isText()&&f.text!=i.node.nodeValue||(r=s)}}if(n.docView.lastCompositionAfterCursor=r!=i,!r)return null;let o=e-r.offset;return{from:o,to:o+r.node.nodeValue.length,node:r.node}}function WE(n,e,t){let i=nS(n,t);if(!i)return null;let{node:s,from:r,to:o}=i,u=s.nodeValue;if(/[\n\r]/.test(u)||n.state.doc.sliceString(i.from,i.to)!=u)return null;let f=e.invertedDesc;return{range:new zn(f.mapPos(r),f.mapPos(o),r,o),text:s}}function FE(n,e){return n.nodeType!=1?0:(e&&n.childNodes[e-1].contentEditable=="false"?1:0)|(e{ie.from&&(t=!0)}),t}class mm extends ki{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return e.className="cm-gap",this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}}function t5(n,e,t=1){let i=n.charCategorizer(e),s=n.doc.lineAt(e),r=e-s.from;if(s.length==0)return X.cursor(e);r==0?t=1:r==s.length&&(t=-1);let o=r,u=r;t<0?o=jt(s.text,r,!1):u=jt(s.text,r);let f=i(s.text.slice(o,u));for(;o>0;){let d=jt(s.text,o,!1);if(i(s.text.slice(d,o))!=f)break;o=d}for(;un.defaultLineHeight*1.5){let u=n.viewState.heightOracle.textHeight,f=Math.floor((s-t.top-(n.defaultLineHeight-u)*.5)/u);r+=f*n.viewState.heightOracle.lineLength}let o=n.state.sliceDoc(t.from,t.to);return t.from+sp(o,r,n.state.tabSize)}function bp(n,e,t){let i=n.lineBlockAt(e);if(Array.isArray(i.type)){let s;for(let r of i.type){if(r.from>e)break;if(!(r.toe)return r;(!s||r.type==qt.Text&&(s.type!=r.type||(t<0?r.frome)))&&(s=r)}}return s||i}return i}function i5(n,e,t,i){let s=bp(n,e.head,e.assoc||-1),r=!i||s.type!=qt.Text||!(n.lineWrapping||s.widgetLineBreaks)?null:n.coordsAtPos(e.assoc<0&&e.head>s.from?e.head-1:e.head);if(r){let o=n.dom.getBoundingClientRect(),u=n.textDirectionAt(s.from),f=n.posAtCoords({x:t==(u==Je.LTR)?o.right-1:o.left+1,y:(r.top+r.bottom)/2});if(f!=null)return X.cursor(f,t?-1:1)}return X.cursor(t?s.to:s.from,t?-1:1)}function Gx(n,e,t,i){let s=n.state.doc.lineAt(e.head),r=n.bidiSpans(s),o=n.textDirectionAt(s.from);for(let u=e,f=null;;){let d=OE(s,r,o,u,t),p=Uw;if(!d){if(s.number==(t?n.state.doc.lines:1))return u;p=` -`,s=n.state.doc.line(s.number+(t?1:-1)),r=n.bidiSpans(s),d=n.visualLineSide(s,!t)}if(f){if(!f(p))return u}else{if(!i)return d;f=i(p)}u=d}}function l5(n,e,t){let i=n.state.charCategorizer(e),s=i(t);return r=>{let o=i(r);return s==at.Space&&(s=o),s==o}}function s5(n,e,t,i){let s=e.head,r=t?1:-1;if(s==(t?n.state.doc.length:0))return X.cursor(s,e.assoc);let o=e.goalColumn,u,f=n.contentDOM.getBoundingClientRect(),d=n.coordsAtPos(s,(e.empty?e.assoc:0)||(t?1:-1)),p=n.documentTop;if(d)o==null&&(o=d.left-f.left),u=r<0?d.top:d.bottom;else{let S=n.viewState.lineBlockAt(s);o==null&&(o=Math.min(f.right-f.left,n.defaultCharacterWidth*(s-S.from))),u=(r<0?S.top:S.bottom)+p}let b=f.left+o,x=i??n.viewState.heightOracle.textHeight>>1,w=xp(n,{x:b,y:u+x*r},!1,r);return X.cursor(w.pos,w.assoc,void 0,o)}function Jr(n,e,t){for(;;){let i=0;for(let s of n)s.between(e-1,e+1,(r,o,u)=>{if(e>r&&es(n)),t.from,e.head>t.from?-1:1);return i==t.from?t:X.cursor(i,in.viewState.docHeight)return new pi(n.state.doc.length,-1);if(d=n.elementAtHeight(f),i==null)break;if(d.type==qt.Text){if(i<0?d.ton.viewport.to)break;let x=n.docView.coordsAt(i<0?d.from:d.to,i>0?-1:1);if(x&&(i<0?x.top<=f+r:x.bottom>=f+r))break}let b=n.viewState.heightOracle.textHeight/2;f=i>0?d.bottom+b:d.top-b}if(n.viewport.from>=d.to||n.viewport.to<=d.from){if(t)return null;if(d.type==qt.Text){let b=n5(n,s,d,o,u);return new pi(b,b==d.from?1:-1)}}if(d.type!=qt.Text)return f<(d.top+d.bottom)/2?new pi(d.from,1):new pi(d.to,-1);let p=n.docView.lineAt(d.from,2);return(!p||p.length!=d.length)&&(p=n.docView.lineAt(d.from,-2)),new a5(n,o,u,n.textDirectionAt(d.from)).scanTile(p,d.from)}class a5{constructor(e,t,i,s){this.view=e,this.x=t,this.y=i,this.baseDir=s,this.line=null,this.spans=null}bidiSpansAt(e){return(!this.line||this.line.from>e||this.line.to1||i.length&&(i[0].level!=this.baseDir||i[0].to+s.from>1;t:if(r.has(S)){let C=i+Math.floor(Math.random()*w);for(let T=0;Tthis.y)(!f||f.top>T.top)&&(f=T),R=-1;else{let E=T.left>this.x?this.x-T.left:T.right(b.left+b.right)/2==x}}scanText(e,t){let i=[];for(let r=0;r{let o=i[r]-t,u=i[r+1]-t;return fo(e.dom,o,u).getClientRects()});return s.after?new pi(i[s.i+1],-1):new pi(i[s.i],1)}scanTile(e,t){if(!e.length)return new pi(t,1);if(e.children.length==1){let u=e.children[0];if(u.isText())return this.scanText(u,t);if(u.isComposite())return this.scanTile(u,t)}let i=[t];for(let u=0,f=t;u{let f=e.children[u];return f.flags&48?null:(f.dom.nodeType==1?f.dom:fo(f.dom,0,f.length)).getClientRects()}),r=e.children[s.i],o=i[s.i];return r.isText()?this.scanText(r,o):r.isComposite()?this.scanTile(r,o):s.after?new pi(i[s.i+1],-1):new pi(o,1)}}const Gr="￿";class r5{constructor(e,t){this.points=e,this.view=t,this.text="",this.lineSeparator=t.state.facet(ze.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=Gr}readRange(e,t){if(!e)return this;let i=e.parentNode;for(let s=e;;){this.findPointBefore(i,s);let r=this.text.length;this.readNode(s);let o=wt.get(s),u=s.nextSibling;if(u==t){o!=null&&o.breakAfter&&!u&&i!=this.view.contentDOM&&this.lineBreak();break}let f=wt.get(u);(o&&f?o.breakAfter:(o?o.breakAfter:Gu(s))||Gu(u)&&(s.nodeName!="BR"||o!=null&&o.isWidget())&&this.text.length>r)&&!c5(u,t)&&this.lineBreak(),s=u}return this.findPointBefore(i,t),this}readTextNode(e){let t=e.nodeValue;for(let i of this.points)i.node==e&&(i.pos=this.text.length+Math.min(i.offset,t.length));for(let i=0,s=this.lineSeparator?null:/\r\n?|\n/g;;){let r=-1,o=1,u;if(this.lineSeparator?(r=t.indexOf(this.lineSeparator,i),o=this.lineSeparator.length):(u=s.exec(t))&&(r=u.index,o=u[0].length),this.append(t.slice(i,r<0?t.length:r)),r<0)break;if(this.lineBreak(),o>1)for(let f of this.points)f.node==e&&f.pos>this.text.length&&(f.pos-=o-1);i=r+o}}readNode(e){let t=wt.get(e),i=t&&t.overrideDOMText;if(i!=null){this.findPointInside(e,i.length);for(let s=i.iter();!s.next().done;)s.lineBreak?this.lineBreak():this.append(s.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,t){for(let i of this.points)i.node==e&&e.childNodes[i.offset]==t&&(i.pos=this.text.length)}findPointInside(e,t){for(let i of this.points)(e.nodeType==3?i.node==e:e.contains(i.node))&&(i.pos=this.text.length+(o5(e,i.node,i.offset)?t:0))}}function o5(n,e,t){for(;;){if(!e||t-1;let{impreciseHead:r,impreciseAnchor:o}=e.docView;if(e.state.readOnly&&t>-1)this.newSel=null;else if(t>-1&&(this.bounds=lS(e.docView.tile,t,i,0))){let u=r||o?[]:f5(e),f=new r5(u,e);f.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=f.text,this.newSel=d5(u,this.bounds.from)}else{let u=e.observer.selectionRange,f=r&&r.node==u.focusNode&&r.offset==u.focusOffset||!fp(e.contentDOM,u.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(u.focusNode,u.focusOffset),d=o&&o.node==u.anchorNode&&o.offset==u.anchorOffset||!fp(e.contentDOM,u.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(u.anchorNode,u.anchorOffset),p=e.viewport;if((oe.ios||oe.chrome)&&e.state.selection.main.empty&&f!=d&&(p.from>0||p.to-1&&e.state.selection.ranges.length>1?this.newSel=e.state.selection.replaceRange(X.range(d,f)):this.newSel=X.single(d,f)}}}function lS(n,e,t,i){if(n.isComposite()){let s=-1,r=-1,o=-1,u=-1;for(let f=0,d=i,p=i;ft)return lS(b,e,t,d);if(x>=e&&s==-1&&(s=f,r=d),d>t&&b.dom.parentNode==n.dom){o=f,u=p;break}p=x,d=x+b.breakAfter}return{from:r,to:u<0?i+n.length:u,startDOM:(s?n.children[s-1].dom.nextSibling:null)||n.dom.firstChild,endDOM:o=0?n.children[o].dom:null}}else return n.isText()?{from:i,to:i+n.length,startDOM:n.dom,endDOM:n.dom.nextSibling}:null}function sS(n,e){let t,{newSel:i}=e,s=n.state.selection.main,r=n.inputState.lastKeyTime>Date.now()-100?n.inputState.lastKeyCode:-1;if(e.bounds){let{from:o,to:u}=e.bounds,f=s.from,d=null;(r===8||oe.android&&e.text.length=s.from&&t.to<=s.to&&(t.from!=s.from||t.to!=s.to)&&s.to-s.from-(t.to-t.from)<=4?t={from:s.from,to:s.to,insert:n.state.doc.slice(s.from,t.from).append(t.insert).append(n.state.doc.slice(t.to,s.to))}:n.state.doc.lineAt(s.from).toDate.now()-50?t={from:s.from,to:s.to,insert:n.state.toText(n.inputState.insertingText)}:oe.chrome&&t&&t.from==t.to&&t.from==s.head&&t.insert.toString()==` - `&&n.lineWrapping&&(i&&(i=X.single(i.main.anchor-1,i.main.head-1)),t={from:s.from,to:s.to,insert:qe.of([" "])}),t)return wg(n,t,i,r);if(i&&!Fu(i,s)){let o=!1,u="select";return n.inputState.lastSelectionTime>Date.now()-50&&(n.inputState.lastSelectionOrigin=="select"&&(o=!0),u=n.inputState.lastSelectionOrigin,u=="select.pointer"&&(i=iS(n.state.facet(Do).map(f=>f(n)),i))),n.dispatch({selection:i,scrollIntoView:o,userEvent:u}),!0}else return!1}function wg(n,e,t,i=-1){if(oe.ios&&n.inputState.flushIOSKey(e))return!0;let s=n.state.selection.main;if(oe.android&&(e.to==s.to&&(e.from==s.from||e.from==s.from-1&&n.state.sliceDoc(e.from,s.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&va(n.contentDOM,"Enter",13)||(e.from==s.from-1&&e.to==s.to&&e.insert.length==0||i==8&&e.insert.lengths.head)&&va(n.contentDOM,"Backspace",8)||e.from==s.from&&e.to==s.to+1&&e.insert.length==0&&va(n.contentDOM,"Delete",46)))return!0;let r=e.insert.toString();n.inputState.composing>=0&&n.inputState.composing++;let o,u=()=>o||(o=h5(n,e,t));return n.state.facet(Iw).some(f=>f(n,e.from,e.to,r,u))||n.dispatch(u()),!0}function h5(n,e,t){let i,s=n.state,r=s.selection.main,o=-1;if(e.from==e.to&&e.fromr.to){let f=e.fromb(n)),d,f);e.from==p&&(o=p)}if(o>-1)i={changes:e,selection:X.cursor(e.from+e.insert.length,-1)};else if(e.from>=r.from&&e.to<=r.to&&e.to-e.from>=(r.to-r.from)/3&&(!t||t.main.empty&&t.main.from==e.from+e.insert.length)&&n.inputState.composing<0){let f=r.frome.to?s.sliceDoc(e.to,r.to):"";i=s.replaceSelection(n.state.toText(f+e.insert.sliceString(0,void 0,n.state.lineBreak)+d))}else{let f=s.changes(e),d=t&&t.main.to<=f.newLength?t.main:void 0;if(s.selection.ranges.length>1&&(n.inputState.composing>=0||n.inputState.compositionPendingChange)&&e.to<=r.to+10&&e.to>=r.to-10){let p=n.state.sliceDoc(e.from,e.to),b,x=t&&nS(n,t.main.head);if(x){let S=e.insert.length-(e.to-e.from);b={from:x.from,to:x.to-S}}else b=n.state.doc.lineAt(r.head);let w=r.to-e.to;i=s.changeByRange(S=>{if(S.from==r.from&&S.to==r.to)return{changes:f,range:d||S.map(f)};let A=S.to-w,C=A-p.length;if(n.state.sliceDoc(C,A)!=p||A>=b.from&&C<=b.to)return{range:S};let T=s.changes({from:C,to:A,insert:e.insert}),R=S.to-r.to;return{changes:T,range:d?X.range(Math.max(0,d.anchor+R),Math.max(0,d.head+R)):S.map(T)}})}else i={changes:f,selection:d&&s.selection.replaceRange(d)}}let u="input.type";return(n.composing||n.inputState.compositionPendingChange&&n.inputState.compositionEndedAt>Date.now()-50)&&(n.inputState.compositionPendingChange=!1,u+=".compose",n.inputState.compositionFirstChange&&(u+=".start",n.inputState.compositionFirstChange=!1)),s.update(i,{userEvent:u,scrollIntoView:!0})}function aS(n,e,t,i){let s=Math.min(n.length,e.length),r=0;for(;r0&&u>0&&n.charCodeAt(o-1)==e.charCodeAt(u-1);)o--,u--;if(i=="end"){let f=Math.max(0,r-Math.min(o,u));t-=o+f-r}if(o=o?r-t:0;r-=f,u=r+(u-o),o=r}else if(u=u?r-t:0;r-=f,o=r+(o-u),u=r}return{from:r,toA:o,toB:u}}function f5(n){let e=[];if(n.root.activeElement!=n.contentDOM)return e;let{anchorNode:t,anchorOffset:i,focusNode:s,focusOffset:r}=n.observer.selectionRange;return t&&(e.push(new Ix(t,i)),(s!=t||r!=i)&&e.push(new Ix(s,r))),e}function d5(n,e){if(n.length==0)return null;let t=n[0].pos,i=n.length==2?n[1].pos:t;return t>-1&&i>-1?X.single(t+e,i+e):null}function Fu(n,e){return e.head==n.main.head&&e.anchor==n.main.anchor}class m5{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.pendingIOSKey=void 0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.insertingText="",this.insertingTextAt=0,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,oe.safari&&e.contentDOM.addEventListener("input",()=>null),oe.gecko&&E5(e.contentDOM.ownerDocument)}handleEvent(e){!S5(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,t){let i=this.handlers[e];if(i){for(let s of i.observers)s(this.view,t);for(let s of i.handlers){if(t.defaultPrevented)break;if(s(this.view,t)){t.preventDefault();break}}}}ensureHandlers(e){let t=p5(e),i=this.handlers,s=this.view.contentDOM;for(let r in t)if(r!="scroll"){let o=!t[r].handlers.length,u=i[r];u&&o!=!u.handlers.length&&(s.removeEventListener(r,this.handleEvent),u=null),u||s.addEventListener(r,this.handleEvent,{passive:o})}for(let r in i)r!="scroll"&&!t[r]&&s.removeEventListener(r,this.handleEvent);this.handlers=t}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&e.keyCode!=27&&oS.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),oe.android&&oe.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;let t;return oe.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&((t=rS.find(i=>i.keyCode==e.keyCode))&&!e.ctrlKey||g5.indexOf(e.key)>-1&&e.ctrlKey&&!e.shiftKey)?(this.pendingIOSKey=t||e,setTimeout(()=>this.flushIOSKey(),250),!0):(e.keyCode!=229&&this.view.observer.forceFlush(),!1)}flushIOSKey(e){let t=this.pendingIOSKey;return!t||t.key=="Enter"&&e&&e.from0?!0:oe.safari&&!oe.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}function Yx(n,e){return(t,i)=>{try{return e.call(n,i,t)}catch(s){un(t.state,s)}}}function p5(n){let e=Object.create(null);function t(i){return e[i]||(e[i]={observers:[],handlers:[]})}for(let i of n){let s=i.spec,r=s&&s.plugin.domEventHandlers,o=s&&s.plugin.domEventObservers;if(r)for(let u in r){let f=r[u];f&&t(u).handlers.push(Yx(i.value,f))}if(o)for(let u in o){let f=o[u];f&&t(u).observers.push(Yx(i.value,f))}}for(let i in Qn)t(i).handlers.push(Qn[i]);for(let i in qn)t(i).observers.push(qn[i]);return e}const rS=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],g5="dthko",oS=[16,17,18,20,91,92,224,225],ru=6;function ou(n){return Math.max(0,n)*.7+8}function y5(n,e){return Math.max(Math.abs(n.clientX-e.clientX),Math.abs(n.clientY-e.clientY))}class b5{constructor(e,t,i,s){this.view=e,this.startEvent=t,this.style=i,this.mustSelect=s,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=t,this.scrollParents=vE(e.contentDOM),this.atoms=e.state.facet(Do).map(o=>o(e));let r=e.contentDOM.ownerDocument;r.addEventListener("mousemove",this.move=this.move.bind(this)),r.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(ze.allowMultipleSelections)&&x5(e,t),this.dragging=w5(e,t)&&hS(t)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&y5(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let t=0,i=0,s=0,r=0,o=this.view.win.innerWidth,u=this.view.win.innerHeight;this.scrollParents.x&&({left:s,right:o}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:r,bottom:u}=this.scrollParents.y.getBoundingClientRect());let f=vg(this.view);e.clientX-f.left<=s+ru?t=-ou(s-e.clientX):e.clientX+f.right>=o-ru&&(t=ou(e.clientX-o)),e.clientY-f.top<=r+ru?i=-ou(r-e.clientY):e.clientY+f.bottom>=u-ru&&(i=ou(e.clientY-u)),this.setScrollSpeed(t,i)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,t){this.scrollSpeed={x:e,y:t},e||t?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:t}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),t&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=t,t=0),(e||t)&&this.view.win.scrollBy(e,t),this.dragging===!1&&this.select(this.lastEvent)}select(e){let{view:t}=this,i=iS(this.atoms,this.style.get(e,this.extend,this.multiple));(this.mustSelect||!i.eq(t.state.selection,this.dragging===!1))&&this.view.dispatch({selection:i,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.transactions.some(t=>t.isUserEvent("input.type"))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}}function x5(n,e){let t=n.state.facet(qw);return t.length?t[0](e):oe.mac?e.metaKey:e.ctrlKey}function v5(n,e){let t=n.state.facet(Pw);return t.length?t[0](e):oe.mac?!e.altKey:!e.ctrlKey}function w5(n,e){let{main:t}=n.state.selection;if(t.empty)return!1;let i=uo(n.root);if(!i||i.rangeCount==0)return!0;let s=i.getRangeAt(0).getClientRects();for(let r=0;r=e.clientX&&o.top<=e.clientY&&o.bottom>=e.clientY)return!0}return!1}function S5(n,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let t=e.target,i;t!=n.contentDOM;t=t.parentNode)if(!t||t.nodeType==11||(i=wt.get(t))&&i.isWidget()&&!i.isHidden&&i.widget.ignoreEvent(e))return!1;return!0}const Qn=Object.create(null),qn=Object.create(null),cS=oe.ie&&oe.ie_version<15||oe.ios&&oe.webkit_version<604;function k5(n){let e=n.dom.parentNode;if(!e)return;let t=e.appendChild(document.createElement("textarea"));t.style.cssText="position: fixed; left: -10000px; top: 10px",t.focus(),setTimeout(()=>{n.focus(),t.remove(),uS(n,t.value)},50)}function wh(n,e,t){for(let i of n.facet(e))t=i(t,n);return t}function uS(n,e){e=wh(n.state,gg,e);let{state:t}=n,i,s=1,r=t.toText(e),o=r.lines==t.selection.ranges.length;if(vp!=null&&t.selection.ranges.every(f=>f.empty)&&vp==r.toString()){let f=-1;i=t.changeByRange(d=>{let p=t.doc.lineAt(d.from);if(p.from==f)return{range:d};f=p.from;let b=t.toText((o?r.line(s++).text:e)+t.lineBreak);return{changes:{from:p.from,insert:b},range:X.cursor(d.from+b.length)}})}else o?i=t.changeByRange(f=>{let d=r.line(s++);return{changes:{from:f.from,to:f.to,insert:d.text},range:X.cursor(f.from+d.length)}}):i=t.replaceSelection(r);n.dispatch(i,{userEvent:"input.paste",scrollIntoView:!0})}qn.scroll=n=>{n.inputState.lastScrollTop=n.scrollDOM.scrollTop,n.inputState.lastScrollLeft=n.scrollDOM.scrollLeft};Qn.keydown=(n,e)=>(n.inputState.setSelectionOrigin("select"),e.keyCode==27&&n.inputState.tabFocusMode!=0&&(n.inputState.tabFocusMode=Date.now()+2e3),!1);qn.touchstart=(n,e)=>{n.inputState.lastTouchTime=Date.now(),n.inputState.setSelectionOrigin("select.pointer")};qn.touchmove=n=>{n.inputState.setSelectionOrigin("select.pointer")};Qn.mousedown=(n,e)=>{if(n.observer.flush(),n.inputState.lastTouchTime>Date.now()-2e3)return!1;let t=null;for(let i of n.state.facet(Kw))if(t=i(n,e),t)break;if(!t&&e.button==0&&(t=A5(n,e)),t){let i=!n.hasFocus;n.inputState.startMouseSelection(new b5(n,e,t,i)),i&&n.observer.ignore(()=>{jw(n.contentDOM);let r=n.root.activeElement;r&&!r.contains(n.contentDOM)&&r.blur()});let s=n.inputState.mouseSelection;if(s)return s.start(e),s.dragging===!1}else n.inputState.setSelectionOrigin("select.pointer");return!1};function Wx(n,e,t,i){if(i==1)return X.cursor(e,t);if(i==2)return t5(n.state,e,t);{let s=n.docView.lineAt(e,t),r=n.state.doc.lineAt(s?s.posAtEnd:e),o=s?s.posAtStart:r.from,u=s?s.posAtEnd:r.to;return uDate.now()-400&&Math.abs(e.clientX-n.clientX)<2&&Math.abs(e.clientY-n.clientY)<2?(Xx+1)%3:1}function A5(n,e){let t=n.posAndSideAtCoords({x:e.clientX,y:e.clientY},!1),i=hS(e),s=n.state.selection;return{update(r){r.docChanged&&(t.pos=r.changes.mapPos(t.pos),s=s.map(r.changes))},get(r,o,u){let f=n.posAndSideAtCoords({x:r.clientX,y:r.clientY},!1),d,p=Wx(n,f.pos,f.assoc,i);if(t.pos!=f.pos&&!o){let b=Wx(n,t.pos,t.assoc,i),x=Math.min(b.from,p.from),w=Math.max(b.to,p.to);p=x1&&(d=M5(s,f.pos))?d:u?s.addRange(p):X.create([p])}}}function M5(n,e){for(let t=0;t=e)return X.create(n.ranges.slice(0,t).concat(n.ranges.slice(t+1)),n.mainIndex==t?0:n.mainIndex-(n.mainIndex>t?1:0))}return null}Qn.dragstart=(n,e)=>{let{selection:{main:t}}=n.state;if(e.target.draggable){let s=n.docView.tile.nearest(e.target);if(s&&s.isWidget()){let r=s.posAtStart,o=r+s.length;(r>=t.to||o<=t.from)&&(t=X.range(r,o))}}let{inputState:i}=n;return i.mouseSelection&&(i.mouseSelection.dragging=!0),i.draggedContent=t,e.dataTransfer&&(e.dataTransfer.setData("Text",wh(n.state,yg,n.state.sliceDoc(t.from,t.to))),e.dataTransfer.effectAllowed="copyMove"),!1};Qn.dragend=n=>(n.inputState.draggedContent=null,!1);function Zx(n,e,t,i){if(t=wh(n.state,gg,t),!t)return;let s=n.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:r}=n.inputState,o=i&&r&&v5(n,e)?{from:r.from,to:r.to}:null,u={from:s,insert:t},f=n.state.changes(o?[o,u]:u);n.focus(),n.dispatch({changes:f,selection:{anchor:f.mapPos(s,-1),head:f.mapPos(s,1)},userEvent:o?"move.drop":"input.drop"}),n.inputState.draggedContent=null}Qn.drop=(n,e)=>{if(!e.dataTransfer)return!1;if(n.state.readOnly)return!0;let t=e.dataTransfer.files;if(t&&t.length){let i=Array(t.length),s=0,r=()=>{++s==t.length&&Zx(n,e,i.filter(o=>o!=null).join(n.state.lineBreak),!1)};for(let o=0;o{/[\x00-\x08\x0e-\x1f]{2}/.test(u.result)||(i[o]=u.result),r()},u.readAsText(t[o])}return!0}else{let i=e.dataTransfer.getData("Text");if(i)return Zx(n,e,i,!0),!0}return!1};Qn.paste=(n,e)=>{if(n.state.readOnly)return!0;n.observer.flush();let t=cS?null:e.clipboardData;return t?(uS(n,t.getData("text/plain")||t.getData("text/uri-list")),!0):(k5(n),!1)};function T5(n,e){let t=n.dom.parentNode;if(!t)return;let i=t.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.value=e,i.focus(),i.selectionEnd=e.length,i.selectionStart=0,setTimeout(()=>{i.remove(),n.focus()},50)}function N5(n){let e=[],t=[],i=!1;for(let s of n.selection.ranges)s.empty||(e.push(n.sliceDoc(s.from,s.to)),t.push(s));if(!e.length){let s=-1;for(let{from:r}of n.selection.ranges){let o=n.doc.lineAt(r);o.number>s&&(e.push(o.text),t.push({from:o.from,to:Math.min(n.doc.length,o.to+1)})),s=o.number}i=!0}return{text:wh(n,yg,e.join(n.lineBreak)),ranges:t,linewise:i}}let vp=null;Qn.copy=Qn.cut=(n,e)=>{if(!Qr(n.contentDOM,n.observer.selectionRange))return!1;let{text:t,ranges:i,linewise:s}=N5(n.state);if(!t&&!s)return!1;vp=s?t:null,e.type=="cut"&&!n.state.readOnly&&n.dispatch({changes:i,scrollIntoView:!0,userEvent:"delete.cut"});let r=cS?null:e.clipboardData;return r?(r.clearData(),r.setData("text/plain",t),!0):(T5(n,t),!1)};const fS=wi.define();function dS(n,e){let t=[];for(let i of n.facet(Yw)){let s=i(n,e);s&&t.push(s)}return t.length?n.update({effects:t,annotations:fS.of(!0)}):null}function mS(n){setTimeout(()=>{let e=n.hasFocus;if(e!=n.inputState.notifiedFocused){let t=dS(n.state,e);t?n.dispatch(t):n.update([])}},10)}qn.focus=n=>{n.inputState.lastFocusTime=Date.now(),!n.scrollDOM.scrollTop&&(n.inputState.lastScrollTop||n.inputState.lastScrollLeft)&&(n.scrollDOM.scrollTop=n.inputState.lastScrollTop,n.scrollDOM.scrollLeft=n.inputState.lastScrollLeft),mS(n)};qn.blur=n=>{n.observer.clearSelectionRange(),mS(n)};qn.compositionstart=qn.compositionupdate=n=>{n.observer.editContext||(n.inputState.compositionFirstChange==null&&(n.inputState.compositionFirstChange=!0),n.inputState.composing<0&&(n.inputState.composing=0))};qn.compositionend=n=>{n.observer.editContext||(n.inputState.composing=-1,n.inputState.compositionEndedAt=Date.now(),n.inputState.compositionPendingKey=!0,n.inputState.compositionPendingChange=n.observer.pendingRecords().length>0,n.inputState.compositionFirstChange=null,oe.chrome&&oe.android?n.observer.flushSoon():n.inputState.compositionPendingChange?Promise.resolve().then(()=>n.observer.flush()):setTimeout(()=>{n.inputState.composing<0&&n.docView.hasComposition&&n.update([])},50))};qn.contextmenu=n=>{n.inputState.lastContextMenu=Date.now()};Qn.beforeinput=(n,e)=>{var t,i;if((e.inputType=="insertText"||e.inputType=="insertCompositionText")&&(n.inputState.insertingText=e.data,n.inputState.insertingTextAt=Date.now()),e.inputType=="insertReplacementText"&&n.observer.editContext){let r=(t=e.dataTransfer)===null||t===void 0?void 0:t.getData("text/plain"),o=e.getTargetRanges();if(r&&o.length){let u=o[0],f=n.posAtDOM(u.startContainer,u.startOffset),d=n.posAtDOM(u.endContainer,u.endOffset);return wg(n,{from:f,to:d,insert:n.state.toText(r)},null),!0}}let s;if(oe.chrome&&oe.android&&(s=rS.find(r=>r.inputType==e.inputType))&&(n.observer.delayAndroidKey(s.key,s.keyCode),s.key=="Backspace"||s.key=="Delete")){let r=((i=window.visualViewport)===null||i===void 0?void 0:i.height)||0;setTimeout(()=>{var o;(((o=window.visualViewport)===null||o===void 0?void 0:o.height)||0)>r+10&&n.hasFocus&&(n.contentDOM.blur(),n.focus())},100)}return oe.ios&&e.inputType=="deleteContentForward"&&n.observer.flushSoon(),oe.safari&&e.inputType=="insertText"&&n.inputState.composing>=0&&setTimeout(()=>qn.compositionend(n,e),20),!1};const $x=new Set;function E5(n){$x.has(n)||($x.add(n),n.addEventListener("copy",()=>{}),n.addEventListener("cut",()=>{}))}const Jx=["pre-wrap","normal","pre-line","break-spaces"];let Na=!1;function ev(){Na=!1}class D5{constructor(e){this.lineWrapping=e,this.doc=qe.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,t){let i=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(i+=Math.max(0,Math.ceil((t-e-i*this.lineLength*.5)/this.lineLength))),this.lineHeight*i}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return Jx.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let i=0;i-1,f=Math.abs(t-this.lineHeight)>.3||this.lineWrapping!=u||Math.abs(i-this.charWidth)>.1;if(this.lineWrapping=u,this.lineHeight=t,this.charWidth=i,this.textHeight=s,this.lineLength=r,f){this.heightSamples={};for(let d=0;d0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>ju&&(Na=!0),this.height=e)}replace(e,t,i){return Zt.of(i)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(e,t,i,s){let r=this,o=i.doc;for(let u=s.length-1;u>=0;u--){let{fromA:f,toA:d,fromB:p,toB:b}=s[u],x=r.lineAt(f,tt.ByPosNoHeight,i.setDoc(t),0,0),w=x.to>=d?x:r.lineAt(d,tt.ByPosNoHeight,i,0,0);for(b+=w.to-d,d=w.to;u>0&&x.from<=s[u-1].toA;)f=s[u-1].fromA,p=s[u-1].fromB,u--,fr*2){let u=e[t-1];u.break?e.splice(--t,1,u.left,null,u.right):e.splice(--t,1,u.left,u.right),i+=1+u.break,s-=u.size}else if(r>s*2){let u=e[i];u.break?e.splice(i,1,u.left,null,u.right):e.splice(i,1,u.left,u.right),i+=2+u.break,r-=u.size}else break;else if(s=r&&o(this.lineAt(0,tt.ByPos,i,s,r))}setMeasuredHeight(e){let t=e.heights[e.index++];t<0?(this.spaceAbove=-t,t=e.heights[e.index++]):this.spaceAbove=0,this.setHeight(t)}updateHeight(e,t=0,i=!1,s){return s&&s.from<=t&&s.more&&this.setMeasuredHeight(s),this.outdated=!1,this}toString(){return`block(${this.length})`}}class kn extends pS{constructor(e,t,i){super(e,t,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0,this.spaceAbove=i}mainBlock(e,t){return new Yn(t,this.length,e+this.spaceAbove,this.height-this.spaceAbove,this.breaks)}replace(e,t,i){let s=i[0];return i.length==1&&(s instanceof kn||s instanceof Vt&&s.flags&4)&&Math.abs(this.length-s.length)<10?(s instanceof Vt?s=new kn(s.length,this.height,this.spaceAbove):s.height=this.height,this.outdated||(s.outdated=!1),s):Zt.of(i)}updateHeight(e,t=0,i=!1,s){return s&&s.from<=t&&s.more?this.setMeasuredHeight(s):(i||this.outdated)&&(this.spaceAbove=0,this.setHeight(Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight)),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class Vt extends Zt{constructor(e){super(e,0)}heightMetrics(e,t){let i=e.doc.lineAt(t).number,s=e.doc.lineAt(t+this.length).number,r=s-i+1,o,u=0;if(e.lineWrapping){let f=Math.min(this.height,e.lineHeight*r);o=f/r,this.length>r+1&&(u=(this.height-f)/(this.length-r-1))}else o=this.height/r;return{firstLine:i,lastLine:s,perLine:o,perChar:u}}blockAt(e,t,i,s){let{firstLine:r,lastLine:o,perLine:u,perChar:f}=this.heightMetrics(t,s);if(t.lineWrapping){let d=s+(e0){let r=i[i.length-1];r instanceof Vt?i[i.length-1]=new Vt(r.length+s):i.push(null,new Vt(s-1))}if(e>0){let r=i[0];r instanceof Vt?i[0]=new Vt(e+r.length):i.unshift(new Vt(e-1),null)}return Zt.of(i)}decomposeLeft(e,t){t.push(new Vt(e-1),null)}decomposeRight(e,t){t.push(null,new Vt(this.length-e-1))}updateHeight(e,t=0,i=!1,s){let r=t+this.length;if(s&&s.from<=t+this.length&&s.more){let o=[],u=Math.max(t,s.from),f=-1;for(s.from>t&&o.push(new Vt(s.from-t-1).updateHeight(e,t));u<=r&&s.more;){let p=e.doc.lineAt(u).length;o.length&&o.push(null);let b=s.heights[s.index++],x=0;b<0&&(x=-b,b=s.heights[s.index++]),f==-1?f=b:Math.abs(b-f)>=ju&&(f=-2);let w=new kn(p,b,x);w.outdated=!1,o.push(w),u+=p+1}u<=r&&o.push(null,new Vt(r-u).updateHeight(e,u));let d=Zt.of(o);return(f<0||Math.abs(d.height-this.height)>=ju||Math.abs(f-this.heightMetrics(e,t).perLine)>=ju)&&(Na=!0),Xu(this,d)}else(i||this.outdated)&&(this.setHeight(e.heightForGap(t,t+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}}class R5 extends Zt{constructor(e,t,i){super(e.length+t+i.length,e.height+i.height,t|(e.outdated||i.outdated?2:0)),this.left=e,this.right=i,this.size=e.size+i.size}get break(){return this.flags&1}blockAt(e,t,i,s){let r=i+this.left.height;return eu))return d;let p=t==tt.ByPosNoHeight?tt.ByPosNoHeight:tt.ByPos;return f?d.join(this.right.lineAt(u,p,i,o,u)):this.left.lineAt(u,p,i,s,r).join(d)}forEachLine(e,t,i,s,r,o){let u=s+this.left.height,f=r+this.left.length+this.break;if(this.break)e=f&&this.right.forEachLine(e,t,i,u,f,o);else{let d=this.lineAt(f,tt.ByPos,i,s,r);e=e&&d.from<=t&&o(d),t>d.to&&this.right.forEachLine(d.to+1,t,i,u,f,o)}}replace(e,t,i){let s=this.left.length+this.break;if(tthis.left.length)return this.balanced(this.left,this.right.replace(e-s,t-s,i));let r=[];e>0&&this.decomposeLeft(e,r);let o=r.length;for(let u of i)r.push(u);if(e>0&&tv(r,o-1),t=i&&t.push(null)),e>i&&this.right.decomposeLeft(e-i,t)}decomposeRight(e,t){let i=this.left.length,s=i+this.break;if(e>=s)return this.right.decomposeRight(e-s,t);e2*t.size||t.size>2*e.size?Zt.of(this.break?[e,null,t]:[e,t]):(this.left=Xu(this.left,e),this.right=Xu(this.right,t),this.setHeight(e.height+t.height),this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}updateHeight(e,t=0,i=!1,s){let{left:r,right:o}=this,u=t+r.length+this.break,f=null;return s&&s.from<=t+r.length&&s.more?f=r=r.updateHeight(e,t,i,s):r.updateHeight(e,t,i),s&&s.from<=u+o.length&&s.more?f=o=o.updateHeight(e,u,i,s):o.updateHeight(e,u,i),f?this.balanced(r,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function tv(n,e){let t,i;n[e]==null&&(t=n[e-1])instanceof Vt&&(i=n[e+1])instanceof Vt&&n.splice(e-1,3,new Vt(t.length+1+i.length))}const _5=5;class Sg{constructor(e,t){this.pos=e,this.oracle=t,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,t){if(this.lineStart>-1){let i=Math.min(t,this.lineEnd),s=this.nodes[this.nodes.length-1];s instanceof kn?s.length+=i-this.pos:(i>this.pos||!this.isCovered)&&this.nodes.push(new kn(i-this.pos,-1,0)),this.writtenTo=i,t>i&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=t}point(e,t,i){if(e=_5)&&this.addLineDeco(s,r,o)}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:t}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=t,this.writtenToe&&this.nodes.push(new kn(this.pos-e,-1,0)),this.writtenTo=this.pos}blankContent(e,t){let i=new Vt(t-e);return this.oracle.doc.lineAt(e).to==t&&(i.flags|=4),i}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof kn)return e;let t=new kn(0,-1,0);return this.nodes.push(t),t}addBlock(e){this.enterLine();let t=e.deco;t&&t.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,t&&t.endSide>0&&(this.covering=e)}addLineDeco(e,t,i){let s=this.ensureLine();s.length+=i,s.collapsed+=i,s.widgetHeight=Math.max(s.widgetHeight,e),s.breaks+=t,this.writtenTo=this.pos=this.pos+i}finish(e){let t=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(t instanceof kn)&&!this.isCovered?this.nodes.push(new kn(0,-1,0)):(this.writtenTop.clientHeight||p.scrollWidth>p.clientWidth)&&b.overflow!="visible"){let x=p.getBoundingClientRect();r=Math.max(r,x.left),o=Math.min(o,x.right),u=Math.max(u,x.top),f=Math.min(d==n.parentNode?s.innerHeight:f,x.bottom)}d=b.position=="absolute"||b.position=="fixed"?p.offsetParent:p.parentNode}else if(d.nodeType==11)d=d.host;else break;return{left:r-t.left,right:Math.max(r,o)-t.left,top:u-(t.top+e),bottom:Math.max(u,f)-(t.top+e)}}function H5(n){let e=n.getBoundingClientRect(),t=n.ownerDocument.defaultView||window;return e.left0&&e.top0}function V5(n,e){let t=n.getBoundingClientRect();return{left:0,right:t.right-t.left,top:e,bottom:t.bottom-(t.top+e)}}class gm{constructor(e,t,i,s){this.from=e,this.to=t,this.size=i,this.displaySize=s}static same(e,t){if(e.length!=t.length)return!1;for(let i=0;itypeof i!="function"&&i.class=="cm-lineWrapping");this.heightOracle=new D5(t),this.stateDeco=lv(e),this.heightMap=Zt.empty().applyChanges(this.stateDeco,qe.empty,this.heightOracle.setDoc(e.doc),[new zn(0,0,0,e.doc.length)]);for(let i=0;i<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());i++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=we.set(this.lineGaps.map(i=>i.draw(this,!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:t}=this.state.selection;for(let i=0;i<=1;i++){let s=i?t.head:t.anchor;if(!e.some(({from:r,to:o})=>s>=r&&s<=o)){let{from:r,to:o}=this.lineBlockAt(s);e.push(new cu(r,o))}}return this.viewports=e.sort((i,s)=>i.from-s.from),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?iv:new kg(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(Ir(e,this.scaler))})}update(e,t=null){this.state=e.state;let i=this.stateDeco;this.stateDeco=lv(this.state);let s=e.changedRanges,r=zn.extendWithRanges(s,L5(i,this.stateDeco,e?e.changes:Ct.empty(this.state.doc.length))),o=this.heightMap.height,u=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);ev(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),r),(this.heightMap.height!=o||Na)&&(e.flags|=2),u?(this.scrollAnchorPos=e.changes.mapPos(u.from,-1),this.scrollAnchorHeight=u.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=o);let f=r.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.headf.to)||!this.viewportIsAppropriate(f))&&(f=this.getViewport(0,t));let d=f.from!=this.viewport.from||f.to!=this.viewport.to;this.viewport=f,e.flags|=this.updateForViewport(),(d||!e.changes.empty||e.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(e.changes),t&&(this.scrollTarget=t),!this.mustEnforceCursorAssoc&&(e.selectionSet||e.focusChanged)&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(Fw)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let t=e.contentDOM,i=window.getComputedStyle(t),s=this.heightOracle,r=i.whiteSpace;this.defaultTextDirection=i.direction=="rtl"?Je.RTL:Je.LTR;let o=this.heightOracle.mustRefreshForWrapping(r)||this.mustMeasureContent==="refresh",u=t.getBoundingClientRect(),f=o||this.mustMeasureContent||this.contentDOMHeight!=u.height;this.contentDOMHeight=u.height,this.mustMeasureContent=!1;let d=0,p=0;if(u.width&&u.height){let{scaleX:q,scaleY:B}=Ow(t,u);(q>.005&&Math.abs(this.scaleX-q)>.005||B>.005&&Math.abs(this.scaleY-B)>.005)&&(this.scaleX=q,this.scaleY=B,d|=16,o=f=!0)}let b=(parseInt(i.paddingTop)||0)*this.scaleY,x=(parseInt(i.paddingBottom)||0)*this.scaleY;(this.paddingTop!=b||this.paddingBottom!=x)&&(this.paddingTop=b,this.paddingBottom=x,d|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(s.lineWrapping&&(f=!0),this.editorWidth=e.scrollDOM.clientWidth,d|=16);let w=e.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=w&&(this.scrollAnchorHeight=-1,this.scrollTop=w),this.scrolledToBottom=Rw(e.scrollDOM);let S=(this.printing?V5:z5)(t,this.paddingTop),A=S.top-this.pixelViewport.top,C=S.bottom-this.pixelViewport.bottom;this.pixelViewport=S;let T=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(T!=this.inView&&(this.inView=T,T&&(f=!0)),!this.inView&&!this.scrollTarget&&!H5(e.dom))return 0;let R=u.width;if((this.contentDOMWidth!=R||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=u.width,this.editorHeight=e.scrollDOM.clientHeight,d|=16),f){let q=e.docView.measureVisibleLineHeights(this.viewport);if(s.mustRefreshForHeights(q)&&(o=!0),o||s.lineWrapping&&Math.abs(R-this.contentDOMWidth)>s.charWidth){let{lineHeight:B,charWidth:I,textHeight:V}=e.docView.measureTextSize();o=B>0&&s.refresh(r,B,I,V,Math.max(5,R/I),q),o&&(e.docView.minWidth=0,d|=16)}A>0&&C>0?p=Math.max(A,C):A<0&&C<0&&(p=Math.min(A,C)),ev();for(let B of this.viewports){let I=B.from==this.viewport.from?q:e.docView.measureVisibleLineHeights(B);this.heightMap=(o?Zt.empty().applyChanges(this.stateDeco,qe.empty,this.heightOracle,[new zn(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(s,0,o,new O5(B.from,I))}Na&&(d|=2)}let E=!this.viewportIsAppropriate(this.viewport,p)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return E&&(d&2&&(d|=this.updateScaler()),this.viewport=this.getViewport(p,this.scrollTarget),d|=this.updateForViewport()),(d&2||E)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,e)),d|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),d}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,t){let i=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),s=this.heightMap,r=this.heightOracle,{visibleTop:o,visibleBottom:u}=this,f=new cu(s.lineAt(o-i*1e3,tt.ByHeight,r,0,0).from,s.lineAt(u+(1-i)*1e3,tt.ByHeight,r,0,0).to);if(t){let{head:d}=t.range;if(df.to){let p=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),b=s.lineAt(d,tt.ByPos,r,0,0),x;t.y=="center"?x=(b.top+b.bottom)/2-p/2:t.y=="start"||t.y=="nearest"&&d=u+Math.max(10,Math.min(i,250)))&&s>o-2*1e3&&r>1,o=s<<1;if(this.defaultTextDirection!=Je.LTR&&!i)return[];let u=[],f=(p,b,x,w)=>{if(b-pp&&TT.from>=x.from&&T.to<=x.to&&Math.abs(T.from-p)T.fromR));if(!C){if(bE.from<=b&&E.to>=b)){let E=t.moveToLineBoundary(X.cursor(b),!1,!0).head;E>p&&(b=E)}let T=this.gapSize(x,p,b,w),R=i||T<2e6?T:2e6;C=new gm(p,b,T,R)}u.push(C)},d=p=>{if(p.length2e6)for(let I of e)I.from>=p.from&&I.fromp.from&&f(p.from,w,p,b),St.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let t=this.stateDeco;this.lineGaps.length&&(t=t.concat(this.lineGapDeco));let i=[];je.spans(t,this.viewport.from,this.viewport.to,{span(r,o){i.push({from:r,to:o})},point(){}},20);let s=0;if(i.length!=this.visibleRanges.length)s=12;else for(let r=0;r=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(t=>t.from<=e&&t.to>=e)||Ir(this.heightMap.lineAt(e,tt.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(t=>t.top<=e&&t.bottom>=e)||Ir(this.heightMap.lineAt(this.scaler.fromDOM(e),tt.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(e){let t=this.lineBlockAtHeight(e+8);return t.from>=this.viewport.from||this.viewportLines[0].top-e>200?t:this.viewportLines[0]}elementAtHeight(e){return Ir(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class cu{constructor(e,t){this.from=e,this.to=t}}function q5(n,e,t){let i=[],s=n,r=0;return je.spans(t,n,e,{span(){},point(o,u){o>s&&(i.push({from:s,to:o}),r+=o-s),s=u}},20),s=1)return e[e.length-1].to;let i=Math.floor(n*t);for(let s=0;;s++){let{from:r,to:o}=e[s],u=o-r;if(i<=u)return r+i;i-=u}}function hu(n,e){let t=0;for(let{from:i,to:s}of n.ranges){if(e<=s){t+=e-i;break}t+=s-i}return t/n.total}function P5(n,e){for(let t of n)if(e(t))return t}const iv={toDOM(n){return n},fromDOM(n){return n},scale:1,eq(n){return n==this}};function lv(n){let e=n.facet(bh).filter(i=>typeof i!="function"),t=n.facet(xg).filter(i=>typeof i!="function");return t.length&&e.push(je.join(t)),e}class kg{constructor(e,t,i){let s=0,r=0,o=0;this.viewports=i.map(({from:u,to:f})=>{let d=t.lineAt(u,tt.ByPos,e,0,0).top,p=t.lineAt(f,tt.ByPos,e,0,0).bottom;return s+=p-d,{from:u,to:f,top:d,bottom:p,domTop:0,domBottom:0}}),this.scale=(7e6-s)/(t.height-s);for(let u of this.viewports)u.domTop=o+(u.top-r)*this.scale,o=u.domBottom=u.domTop+(u.bottom-u.top),r=u.bottom}toDOM(e){for(let t=0,i=0,s=0;;t++){let r=tt.from==e.viewports[i].from&&t.to==e.viewports[i].to):!1}}function Ir(n,e){if(e.scale==1)return n;let t=e.toDOM(n.top),i=e.toDOM(n.bottom);return new Yn(n.from,n.length,t,i-t,Array.isArray(n._content)?n._content.map(s=>Ir(s,e)):n._content)}const fu=ce.define({combine:n=>n.join(" ")}),wp=ce.define({combine:n=>n.indexOf(!0)>-1}),Sp=jl.newName(),gS=jl.newName(),yS=jl.newName(),bS={"&light":"."+gS,"&dark":"."+yS};function kp(n,e,t){return new jl(e,{finish(i){return/&/.test(i)?i.replace(/&\w*/,s=>{if(s=="&")return n;if(!t||!t[s])throw new RangeError(`Unsupported selector: ${s}`);return t[s]}):n+" "+i}})}const K5=kp("."+Sp,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},bS),G5={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},ym=oe.ie&&oe.ie_version<=11;class I5{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new wE,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(t=>{for(let i of t)this.queue.push(i);(oe.ie&&oe.ie_version<=11||oe.ios&&e.composing)&&t.some(i=>i.type=="childList"&&i.removedNodes.length||i.type=="characterData"&&i.oldValue.length>i.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&oe.android&&e.constructor.EDIT_CONTEXT!==!1&&!(oe.chrome&&oe.chrome_version<126)&&(this.editContext=new W5(e),e.state.facet(Ki)&&(e.contentDOM.editContext=this.editContext.editContext)),ym&&(this.onCharData=t=>{this.queue.push({target:t.target,type:"characterData",oldValue:t.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var t;((t=this.view.docView)===null||t===void 0?void 0:t.lastUpdate){this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),t.length>0&&t[t.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(t=>{t.length>0&&t[t.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(e){(e.type=="change"||!e.type)&&!e.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((t,i)=>t!=e[i]))){this.gapIntersection.disconnect();for(let t of e)this.gapIntersection.observe(t);this.gaps=e}}onSelectionChange(e){let t=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:i}=this,s=this.selectionRange;if(i.state.facet(Ki)?i.root.activeElement!=this.dom:!Qr(this.dom,s))return;let r=s.anchorNode&&i.docView.tile.nearest(s.anchorNode);if(r&&r.isWidget()&&r.widget.ignoreEvent(e)){t||(this.selectionChanged=!1);return}(oe.ie&&oe.ie_version<=11||oe.android&&oe.chrome)&&!i.state.selection.main.empty&&s.focusNode&&$r(s.focusNode,s.focusOffset,s.anchorNode,s.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=uo(e.root);if(!t)return!1;let i=oe.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&Y5(this.view,t)||t;if(!i||this.selectionRange.eq(i))return!1;let s=Qr(this.dom,i);return s&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let r=this.delayedAndroidKey;r&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=r.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&r.force&&va(this.dom,r.key,r.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(s)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:t,force:this.lastChange{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let t=-1,i=-1,s=!1;for(let r of e){let o=this.readMutation(r);o&&(o.typeOver&&(s=!0),t==-1?{from:t,to:i}=o:(t=Math.min(o.from,t),i=Math.max(o.to,i)))}return{from:t,to:i,typeOver:s}}readChange(){let{from:e,to:t,typeOver:i}=this.processRecords(),s=this.selectionChanged&&Qr(this.dom,this.selectionRange);if(e<0&&!s)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let r=new u5(this.view,e,t,i);return this.view.docView.domChanged={newSel:r.newSel?r.newSel.main:null},r}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let t=this.readChange();if(!t)return this.view.requestMeasure(),!1;let i=this.view.state,s=sS(this.view,t);return this.view.state==i&&(t.domChanged||t.newSel&&!Fu(this.view.state.selection,t.newSel.main))&&this.view.update([]),s}readMutation(e){let t=this.view.docView.tile.nearest(e.target);if(!t||t.isWidget())return null;if(t.markDirty(e.type=="attributes"),e.type=="childList"){let i=sv(t,e.previousSibling||e.target.previousSibling,-1),s=sv(t,e.nextSibling||e.target.nextSibling,1);return{from:i?t.posAfter(i):t.posAtStart,to:s?t.posBefore(s):t.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet(Ki)!=e.state.facet(Ki)&&(e.view.contentDOM.editContext=e.state.facet(Ki)?this.editContext.editContext:null))}destroy(){var e,t,i;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(t=this.gapIntersection)===null||t===void 0||t.disconnect(),(i=this.resizeScroll)===null||i===void 0||i.disconnect();for(let s of this.scrollTargets)s.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}}function sv(n,e,t){for(;e;){let i=wt.get(e);if(i&&i.parent==n)return i;let s=e.parentNode;e=s!=n.dom?s:t>0?e.nextSibling:e.previousSibling}return null}function av(n,e){let t=e.startContainer,i=e.startOffset,s=e.endContainer,r=e.endOffset,o=n.docView.domAtPos(n.state.selection.main.anchor,1);return $r(o.node,o.offset,s,r)&&([t,i,s,r]=[s,r,t,i]),{anchorNode:t,anchorOffset:i,focusNode:s,focusOffset:r}}function Y5(n,e){if(e.getComposedRanges){let s=e.getComposedRanges(n.root)[0];if(s)return av(n,s)}let t=null;function i(s){s.preventDefault(),s.stopImmediatePropagation(),t=s.getTargetRanges()[0]}return n.contentDOM.addEventListener("beforeinput",i,!0),n.dom.ownerDocument.execCommand("indent"),n.contentDOM.removeEventListener("beforeinput",i,!0),t?av(n,t):null}class W5{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(e.state);let t=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});this.handlers.textupdate=i=>{let s=e.state.selection.main,{anchor:r,head:o}=s,u=this.toEditorPos(i.updateRangeStart),f=this.toEditorPos(i.updateRangeEnd);e.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:i.updateRangeStart,editorBase:u,drifted:!1});let d=f-u>i.text.length;u==this.from&&rthis.to&&(f=r);let p=aS(e.state.sliceDoc(u,f),i.text,(d?s.from:s.to)-u,d?"end":null);if(!p){let x=X.single(this.toEditorPos(i.selectionStart),this.toEditorPos(i.selectionEnd));Fu(x,s)||e.dispatch({selection:x,userEvent:"select"});return}let b={from:p.from+u,to:p.toA+u,insert:qe.of(i.text.slice(p.from,p.toB).split(` -`))};if((oe.mac||oe.android)&&b.from==o-1&&/^\. ?$/.test(i.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(b={from:u,to:f,insert:qe.of([i.text.replace("."," ")])}),this.pendingContextChange=b,!e.state.readOnly){let x=this.to-this.from+(b.to-b.from+b.insert.length);wg(e,b,X.single(this.toEditorPos(i.selectionStart,x),this.toEditorPos(i.selectionEnd,x)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)),b.from=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(t.text.slice(Math.max(0,i.updateRangeStart-1),Math.min(t.text.length,i.updateRangeStart+1)))&&this.handlers.compositionend(i)},this.handlers.characterboundsupdate=i=>{let s=[],r=null;for(let o=this.toEditorPos(i.rangeStart),u=this.toEditorPos(i.rangeEnd);o{let s=[];for(let r of i.getTextFormats()){let o=r.underlineStyle,u=r.underlineThickness;if(!/none/i.test(o)&&!/none/i.test(u)){let f=this.toEditorPos(r.rangeStart),d=this.toEditorPos(r.rangeEnd);if(f{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:i}=this.composing;this.composing=null,i&&this.reset(e.state)}};for(let i in this.handlers)t.addEventListener(i,this.handlers[i]);this.measureReq={read:i=>{this.editContext.updateControlBounds(i.contentDOM.getBoundingClientRect());let s=uo(i.root);s&&s.rangeCount&&this.editContext.updateSelectionBounds(s.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let t=0,i=!1,s=this.pendingContextChange;return e.changes.iterChanges((r,o,u,f,d)=>{if(i)return;let p=d.length-(o-r);if(s&&o>=s.to)if(s.from==r&&s.to==o&&s.insert.eq(d)){s=this.pendingContextChange=null,t+=p,this.to+=p;return}else s=null,this.revertPending(e.state);if(r+=t,o+=t,o<=this.from)this.from+=p,this.to+=p;else if(rthis.to||this.to-this.from+d.length>3e4){i=!0;return}this.editContext.updateText(this.toContextPos(r),this.toContextPos(o),d.toString()),this.to+=p}t+=p}),s&&!i&&this.revertPending(e.state),!i}update(e){let t=this.pendingContextChange,i=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(i.from,i.to)&&e.transactions.some(s=>!s.isUserEvent("input.type")&&s.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||t)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:t}=e.selection.main;this.from=Math.max(0,t-1e4),this.to=Math.min(e.doc.length,t+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let t=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(t.from),this.toContextPos(t.from+t.insert.length),e.doc.sliceString(t.from,t.to))}setSelection(e){let{main:t}=e.selection,i=this.toContextPos(Math.max(this.from,Math.min(this.to,t.anchor))),s=this.toContextPos(t.head);(this.editContext.selectionStart!=i||this.editContext.selectionEnd!=s)&&this.editContext.updateSelection(i,s)}rangeIsValid(e){let{head:t}=e.selection.main;return!(this.from>0&&t-this.from<500||this.to1e4*3)}toEditorPos(e,t=this.to-this.from){e=Math.min(e,t);let i=this.composing;return i&&i.drifted?i.editorBase+(e-i.contextBase):e+this.from}toContextPos(e){let t=this.composing;return t&&t.drifted?t.contextBase+(e-t.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}}class re{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var t;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),e.parent&&e.parent.appendChild(this.dom);let{dispatch:i}=e;this.dispatchTransactions=e.dispatchTransactions||i&&(s=>s.forEach(r=>i(r,this)))||(s=>this.update(s)),this.dispatch=this.dispatch.bind(this),this._root=e.root||SE(e.parent)||document,this.viewState=new nv(e.state||ze.create(e)),e.scrollTo&&e.scrollTo.is(au)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(da).map(s=>new hm(s));for(let s of this.plugins)s.update(this);this.observer=new I5(this),this.inputState=new m5(this),this.inputState.ensureHandlers(this.plugins),this.docView=new Kx(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((t=document.fonts)===null||t===void 0)&&t.ready&&document.fonts.ready.then(()=>{this.viewState.mustMeasureContent="refresh",this.requestMeasure()})}dispatch(...e){let t=e.length==1&&e[0]instanceof At?e:e.length==1&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(t,this)}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let t=!1,i=!1,s,r=this.state;for(let x of e){if(x.startState!=r)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");r=x.state}if(this.destroyed){this.viewState.state=r;return}let o=this.hasFocus,u=0,f=null;e.some(x=>x.annotation(fS))?(this.inputState.notifiedFocused=o,u=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,f=dS(r,o),f||(u=1));let d=this.observer.delayedAndroidKey,p=null;if(d?(this.observer.clearDelayedAndroidKey(),p=this.observer.readChange(),(p&&!this.state.doc.eq(r.doc)||!this.state.selection.eq(r.selection))&&(p=null)):this.observer.clear(),r.facet(ze.phrases)!=this.state.facet(ze.phrases))return this.setState(r);s=Iu.create(this,r,e),s.flags|=u;let b=this.viewState.scrollTarget;try{this.updateState=2;for(let x of e){if(b&&(b=b.map(x.changes)),x.scrollIntoView){let{main:w}=x.state.selection;b=new wa(w.empty?w:X.cursor(w.head,w.head>w.anchor?-1:1))}for(let w of x.effects)w.is(au)&&(b=w.value.clip(this.state))}this.viewState.update(s,b),this.bidiCache=Qu.update(this.bidiCache,s.changes),s.empty||(this.updatePlugins(s),this.inputState.update(s)),t=this.docView.update(s),this.state.facet(Kr)!=this.styleModules&&this.mountStyles(),i=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(t,e.some(x=>x.isUserEvent("select.pointer")))}finally{this.updateState=0}if(s.startState.facet(fu)!=s.state.facet(fu)&&(this.viewState.mustMeasureContent=!0),(t||i||b||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),t&&this.docViewUpdate(),!s.empty)for(let x of this.state.facet(gp))try{x(s)}catch(w){un(this.state,w,"update listener")}(f||p)&&Promise.resolve().then(()=>{f&&this.state==f.startState&&this.dispatch(f),p&&!sS(this,p)&&d.force&&va(this.contentDOM,d.key,d.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let t=this.hasFocus;try{for(let i of this.plugins)i.destroy(this);this.viewState=new nv(e),this.plugins=e.facet(da).map(i=>new hm(i)),this.pluginMap.clear();for(let i of this.plugins)i.update(this);this.docView.destroy(),this.docView=new Kx(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}updatePlugins(e){let t=e.startState.facet(da),i=e.state.facet(da);if(t!=i){let s=[];for(let r of i){let o=t.indexOf(r);if(o<0)s.push(new hm(r));else{let u=this.plugins[o];u.mustUpdate=e,s.push(u)}}for(let r of this.plugins)r.mustUpdate!=e&&r.destroy(this);this.plugins=s,this.pluginMap.clear()}else for(let s of this.plugins)s.mustUpdate=e;for(let s=0;s-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,e&&this.observer.forceFlush();let t=null,i=this.scrollDOM,s=i.scrollTop*this.scaleY,{scrollAnchorPos:r,scrollAnchorHeight:o}=this.viewState;Math.abs(s-this.viewState.scrollTop)>1&&(o=-1),this.viewState.scrollAnchorHeight=-1;try{for(let u=0;;u++){if(o<0)if(Rw(i))r=-1,o=this.viewState.heightMap.height;else{let w=this.viewState.scrollAnchorAt(s);r=w.from,o=w.top}this.updateState=1;let f=this.viewState.measure(this);if(!f&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(u>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let d=[];f&4||([this.measureRequests,d]=[d,this.measureRequests]);let p=d.map(w=>{try{return w.read(this)}catch(S){return un(this.state,S),rv}}),b=Iu.create(this,this.state,[]),x=!1;b.flags|=f,t?t.flags|=f:t=b,this.updateState=2,b.empty||(this.updatePlugins(b),this.inputState.update(b),this.updateAttrs(),x=this.docView.update(b),x&&this.docViewUpdate());for(let w=0;w1||S<-1){s=s+S,i.scrollTop=s/this.scaleY,o=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let u of this.state.facet(gp))u(t)}get themeClasses(){return Sp+" "+(this.state.facet(wp)?yS:gS)+" "+this.state.facet(fu)}updateAttrs(){let e=ov(this,Zw,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(Ki)?"true":"false",class:"cm-content",style:`${oe.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),ov(this,bg,t);let i=this.observer.ignore(()=>{let s=zx(this.contentDOM,this.contentAttrs,t),r=zx(this.dom,this.editorAttrs,e);return s||r});return this.editorAttrs=e,this.contentAttrs=t,i}showAnnouncements(e){let t=!0;for(let i of e)for(let s of i.effects)if(s.is(re.announce)){t&&(this.announceDOM.textContent=""),t=!1;let r=this.announceDOM.appendChild(document.createElement("div"));r.textContent=s.value}}mountStyles(){this.styleModules=this.state.facet(Kr);let e=this.state.facet(re.cspNonce);jl.mount(this.root,this.styleModules.concat(K5).reverse(),e?{nonce:e}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let t=0;ti.plugin==e)||null),t&&t.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,t,i){return pm(this,e,Gx(this,e,t,i))}moveByGroup(e,t){return pm(this,e,Gx(this,e,t,i=>l5(this,e.head,i)))}visualLineSide(e,t){let i=this.bidiSpans(e),s=this.textDirectionAt(e.from),r=i[t?i.length-1:0];return X.cursor(r.side(t,s)+e.from,r.forward(!t,s)?1:-1)}moveToLineBoundary(e,t,i=!0){return i5(this,e,t,i)}moveVertically(e,t,i){return pm(this,e,s5(this,e,t,i))}domAtPos(e,t=1){return this.docView.domAtPos(e,t)}posAtDOM(e,t=0){return this.docView.posFromDOM(e,t)}posAtCoords(e,t=!0){this.readMeasured();let i=xp(this,e,t);return i&&i.pos}posAndSideAtCoords(e,t=!0){return this.readMeasured(),xp(this,e,t)}coordsAtPos(e,t=1){this.readMeasured();let i=this.docView.coordsAt(e,t);if(!i||i.left==i.right)return i;let s=this.state.doc.lineAt(e),r=this.bidiSpans(s),o=r[gi.find(r,e-s.from,-1,t)];return ho(i,o.dir==Je.LTR==t>0)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(Ww)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>F5)return Vw(e.length);let t=this.textDirectionAt(e.from),i;for(let r of this.bidiCache)if(r.from==e.from&&r.dir==t&&(r.fresh||Hw(r.isolates,i=Ux(this,e))))return r.order;i||(i=Ux(this,e));let s=DE(e.text,t,i);return this.bidiCache.push(new Qu(e.from,e.to,t,i,!0,s)),s}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||oe.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{jw(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,t={}){return au.of(new wa(typeof e=="number"?X.cursor(e):e,t.y,t.x,t.yMargin,t.xMargin))}scrollSnapshot(){let{scrollTop:e,scrollLeft:t}=this.scrollDOM,i=this.viewState.scrollAnchorAt(e);return au.of(new wa(X.cursor(i.from),"start","start",i.top-e,t,!0))}setTabFocusMode(e){e==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof e=="boolean"?this.inputState.tabFocusMode=e?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+e)}static domEventHandlers(e){return ft.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return ft.define(()=>({}),{eventObservers:e})}static theme(e,t){let i=jl.newName(),s=[fu.of(i),Kr.of(kp(`.${i}`,e))];return t&&t.dark&&s.push(wp.of(!0)),s}static baseTheme(e){return Ss.lowest(Kr.of(kp("."+Sp,e,bS)))}static findFromDOM(e){var t;let i=e.querySelector(".cm-content"),s=i&&wt.get(i)||wt.get(e);return((t=s==null?void 0:s.root)===null||t===void 0?void 0:t.view)||null}}re.styleModule=Kr;re.inputHandler=Iw;re.clipboardInputFilter=gg;re.clipboardOutputFilter=yg;re.scrollHandler=Xw;re.focusChangeEffect=Yw;re.perLineTextDirection=Ww;re.exceptionSink=Gw;re.updateListener=gp;re.editable=Ki;re.mouseSelectionStyle=Kw;re.dragMovesSelection=Pw;re.clickAddsSelectionRange=qw;re.decorations=bh;re.blockWrappers=$w;re.outerDecorations=xg;re.atomicRanges=Do;re.bidiIsolatedRanges=Jw;re.scrollMargins=eS;re.darkTheme=wp;re.cspNonce=ce.define({combine:n=>n.length?n[0]:""});re.contentAttributes=bg;re.editorAttributes=Zw;re.lineWrapping=re.contentAttributes.of({class:"cm-lineWrapping"});re.announce=Me.define();const F5=4096,rv={};class Qu{constructor(e,t,i,s,r,o){this.from=e,this.to=t,this.dir=i,this.isolates=s,this.fresh=r,this.order=o}static update(e,t){if(t.empty&&!e.some(r=>r.fresh))return e;let i=[],s=e.length?e[e.length-1].dir:Je.LTR;for(let r=Math.max(0,e.length-10);r=0;s--){let r=i[s],o=typeof r=="function"?r(n):r;o&&dg(o,t)}return t}const X5=oe.mac?"mac":oe.windows?"win":oe.linux?"linux":"key";function Q5(n,e){const t=n.split(/-(?!$)/);let i=t[t.length-1];i=="Space"&&(i=" ");let s,r,o,u;for(let f=0;fi.concat(s),[]))),t}function $5(n,e,t){return vS(xS(n.state),e,n,t)}let Ml=null;const J5=4e3;function eD(n,e=X5){let t=Object.create(null),i=Object.create(null),s=(o,u)=>{let f=i[o];if(f==null)i[o]=u;else if(f!=u)throw new Error("Key binding "+o+" is used both as a regular binding and as a multi-stroke prefix")},r=(o,u,f,d,p)=>{var b,x;let w=t[o]||(t[o]=Object.create(null)),S=u.split(/ (?!$)/).map(T=>Q5(T,e));for(let T=1;T{let q=Ml={view:E,prefix:R,scope:o};return setTimeout(()=>{Ml==q&&(Ml=null)},J5),!0}]})}let A=S.join(" ");s(A,!1);let C=w[A]||(w[A]={preventDefault:!1,stopPropagation:!1,run:((x=(b=w._any)===null||b===void 0?void 0:b.run)===null||x===void 0?void 0:x.slice())||[]});f&&C.run.push(f),d&&(C.preventDefault=!0),p&&(C.stopPropagation=!0)};for(let o of n){let u=o.scope?o.scope.split(" "):["editor"];if(o.any)for(let d of u){let p=t[d]||(t[d]=Object.create(null));p._any||(p._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:b}=o;for(let x in p)p[x].run.push(w=>b(w,Cp))}let f=o[e]||o.key;if(f)for(let d of u)r(d,f,o.run,o.preventDefault,o.stopPropagation),o.shift&&r(d,"Shift-"+f,o.shift,o.preventDefault,o.stopPropagation)}return t}let Cp=null;function vS(n,e,t,i){Cp=e;let s=dE(e),r=rn(s,0),o=mi(r)==s.length&&s!=" ",u="",f=!1,d=!1,p=!1;Ml&&Ml.view==t&&Ml.scope==i&&(u=Ml.prefix+" ",oS.indexOf(e.keyCode)<0&&(d=!0,Ml=null));let b=new Set,x=C=>{if(C){for(let T of C.run)if(!b.has(T)&&(b.add(T),T(t)))return C.stopPropagation&&(p=!0),!0;C.preventDefault&&(C.stopPropagation&&(p=!0),d=!0)}return!1},w=n[i],S,A;return w&&(x(w[u+du(s,e,!o)])?f=!0:o&&(e.altKey||e.metaKey||e.ctrlKey)&&!(oe.windows&&e.ctrlKey&&e.altKey)&&!(oe.mac&&e.altKey&&!(e.ctrlKey||e.metaKey))&&(S=Rl[e.keyCode])&&S!=s?(x(w[u+du(S,e,!0)])||e.shiftKey&&(A=oo[e.keyCode])!=s&&A!=S&&x(w[u+du(A,e,!1)]))&&(f=!0):o&&e.shiftKey&&x(w[u+du(s,e,!0)])&&(f=!0),!f&&x(w._any)&&(f=!0)),d&&(f=!0),f&&p&&e.stopPropagation(),Cp=null,f}class Oo{constructor(e,t,i,s,r){this.className=e,this.left=t,this.top=i,this.width=s,this.height=r}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,t){return t.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,t,i){if(i.empty){let s=e.coordsAtPos(i.head,i.assoc||1);if(!s)return[];let r=wS(e);return[new Oo(t,s.left-r.left,s.top-r.top,null,s.bottom-s.top)]}else return tD(e,t,i)}}function wS(n){let e=n.scrollDOM.getBoundingClientRect();return{left:(n.textDirection==Je.LTR?e.left:e.right-n.scrollDOM.clientWidth*n.scaleX)-n.scrollDOM.scrollLeft*n.scaleX,top:e.top-n.scrollDOM.scrollTop*n.scaleY}}function uv(n,e,t,i){let s=n.coordsAtPos(e,t*2);if(!s)return i;let r=n.dom.getBoundingClientRect(),o=(s.top+s.bottom)/2,u=n.posAtCoords({x:r.left+1,y:o}),f=n.posAtCoords({x:r.right-1,y:o});return u==null||f==null?i:{from:Math.max(i.from,Math.min(u,f)),to:Math.min(i.to,Math.max(u,f))}}function tD(n,e,t){if(t.to<=n.viewport.from||t.from>=n.viewport.to)return[];let i=Math.max(t.from,n.viewport.from),s=Math.min(t.to,n.viewport.to),r=n.textDirection==Je.LTR,o=n.contentDOM,u=o.getBoundingClientRect(),f=wS(n),d=o.querySelector(".cm-line"),p=d&&window.getComputedStyle(d),b=u.left+(p?parseInt(p.paddingLeft)+Math.min(0,parseInt(p.textIndent)):0),x=u.right-(p?parseInt(p.paddingRight):0),w=bp(n,i,1),S=bp(n,s,-1),A=w.type==qt.Text?w:null,C=S.type==qt.Text?S:null;if(A&&(n.lineWrapping||w.widgetLineBreaks)&&(A=uv(n,i,1,A)),C&&(n.lineWrapping||S.widgetLineBreaks)&&(C=uv(n,s,-1,C)),A&&C&&A.from==C.from&&A.to==C.to)return R(E(t.from,t.to,A));{let B=A?E(t.from,null,A):q(w,!1),I=C?E(null,t.to,C):q(S,!0),V=[];return(A||w).to<(C||S).from-(A&&C?1:0)||w.widgetLineBreaks>1&&B.bottom+n.defaultLineHeight/2ne&&J.from=z)break;ge>ve&&fe(Math.max(le,ve),B==null&&le<=ne,Math.min(ge,z),I==null&&ge>=pe,$.dir)}if(ve=K.to+1,ve>=z)break}return ue.length==0&&fe(ne,B==null,pe,I==null,n.textDirection),{top:Q,bottom:Z,horizontal:ue}}function q(B,I){let V=u.top+(I?B.top:B.bottom);return{top:V,bottom:V,horizontal:[]}}}function nD(n,e){return n.constructor==e.constructor&&n.eq(e)}class iD{constructor(e,t){this.view=e,this.layer=t,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),t.above&&this.dom.classList.add("cm-layer-above"),t.class&&this.dom.classList.add(t.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),t.mount&&t.mount(this.dom,e)}update(e){e.startState.facet(Ru)!=e.state.facet(Ru)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){this.layer.updateOnDocViewUpdate!==!1&&e.requestMeasure(this.measureReq)}setOrder(e){let t=0,i=e.facet(Ru);for(;t!nD(t,this.drawn[i]))){let t=this.dom.firstChild,i=0;for(let s of e)s.update&&t&&s.constructor&&this.drawn[i].constructor&&s.update(t,this.drawn[i])?(t=t.nextSibling,i++):this.dom.insertBefore(s.draw(),t);for(;t;){let s=t.nextSibling;t.remove(),t=s}this.drawn=e,oe.safari&&oe.safari_version>=26&&(this.dom.style.display=this.dom.firstChild?"":"none")}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}}const Ru=ce.define();function SS(n){return[ft.define(e=>new iD(e,n)),Ru.of(n)]}const mo=ce.define({combine(n){return Si(n,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,t)=>Math.min(e,t),drawRangeCursor:(e,t)=>e||t})}});function lD(n={}){return[mo.of(n),sD,aD,rD,Fw.of(!0)]}function kS(n){return n.startState.facet(mo)!=n.state.facet(mo)}const sD=SS({above:!0,markers(n){let{state:e}=n,t=e.facet(mo),i=[];for(let s of e.selection.ranges){let r=s==e.selection.main;if(s.empty||t.drawRangeCursor){let o=r?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",u=s.empty?s:X.cursor(s.head,s.head>s.anchor?-1:1);for(let f of Oo.forRange(n,o,u))i.push(f)}}return i},update(n,e){n.transactions.some(i=>i.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let t=kS(n);return t&&hv(n.state,e),n.docChanged||n.selectionSet||t},mount(n,e){hv(e.state,n)},class:"cm-cursorLayer"});function hv(n,e){e.style.animationDuration=n.facet(mo).cursorBlinkRate+"ms"}const aD=SS({above:!1,markers(n){return n.state.selection.ranges.map(e=>e.empty?[]:Oo.forRange(n,"cm-selectionBackground",e)).reduce((e,t)=>e.concat(t))},update(n,e){return n.docChanged||n.selectionSet||n.viewportChanged||kS(n)},class:"cm-selectionLayer"}),rD=Ss.highest(re.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:"transparent !important"},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),CS=Me.define({map(n,e){return n==null?null:e.mapPos(n)}}),Yr=It.define({create(){return null},update(n,e){return n!=null&&(n=e.changes.mapPos(n)),e.effects.reduce((t,i)=>i.is(CS)?i.value:t,n)}}),oD=ft.fromClass(class{constructor(n){this.view=n,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(n){var e;let t=n.state.field(Yr);t==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(n.startState.field(Yr)!=t||n.docChanged||n.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:n}=this,e=n.state.field(Yr),t=e!=null&&n.coordsAtPos(e);if(!t)return null;let i=n.scrollDOM.getBoundingClientRect();return{left:t.left-i.left+n.scrollDOM.scrollLeft*n.scaleX,top:t.top-i.top+n.scrollDOM.scrollTop*n.scaleY,height:t.bottom-t.top}}drawCursor(n){if(this.cursor){let{scaleX:e,scaleY:t}=this.view;n?(this.cursor.style.left=n.left/e+"px",this.cursor.style.top=n.top/t+"px",this.cursor.style.height=n.height/t+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(n){this.view.state.field(Yr)!=n&&this.view.dispatch({effects:CS.of(n)})}},{eventObservers:{dragover(n){this.setDropPos(this.view.posAtCoords({x:n.clientX,y:n.clientY}))},dragleave(n){(n.target==this.view.contentDOM||!this.view.contentDOM.contains(n.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function cD(){return[Yr,oD]}function fv(n,e,t,i,s){e.lastIndex=0;for(let r=n.iterRange(t,i),o=t,u;!r.next().done;o+=r.value.length)if(!r.lineBreak)for(;u=e.exec(r.value);)s(o+u.index,u)}function uD(n,e){let t=n.visibleRanges;if(t.length==1&&t[0].from==n.viewport.from&&t[0].to==n.viewport.to)return t;let i=[];for(let{from:s,to:r}of t)s=Math.max(n.state.doc.lineAt(s).from,s-e),r=Math.min(n.state.doc.lineAt(r).to,r+e),i.length&&i[i.length-1].to>=s?i[i.length-1].to=r:i.push({from:s,to:r});return i}class hD{constructor(e){const{regexp:t,decoration:i,decorate:s,boundary:r,maxLength:o=1e3}=e;if(!t.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=t,s)this.addMatch=(u,f,d,p)=>s(p,d,d+u[0].length,u,f);else if(typeof i=="function")this.addMatch=(u,f,d,p)=>{let b=i(u,f,d);b&&p(d,d+u[0].length,b)};else if(i)this.addMatch=(u,f,d,p)=>p(d,d+u[0].length,i);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=r,this.maxLength=o}createDeco(e){let t=new Fi,i=t.add.bind(t);for(let{from:s,to:r}of uD(e,this.maxLength))fv(e.state.doc,this.regexp,s,r,(o,u)=>this.addMatch(u,e,o,i));return t.finish()}updateDeco(e,t){let i=1e9,s=-1;return e.docChanged&&e.changes.iterChanges((r,o,u,f)=>{f>=e.view.viewport.from&&u<=e.view.viewport.to&&(i=Math.min(u,i),s=Math.max(f,s))}),e.viewportMoved||s-i>1e3?this.createDeco(e.view):s>-1?this.updateRange(e.view,t.map(e.changes),i,s):t}updateRange(e,t,i,s){for(let r of e.visibleRanges){let o=Math.max(r.from,i),u=Math.min(r.to,s);if(u>=o){let f=e.state.doc.lineAt(o),d=f.tof.from;o--)if(this.boundary.test(f.text[o-1-f.from])){p=o;break}for(;ux.push(T.range(A,C));if(f==d)for(this.regexp.lastIndex=p-f.from;(w=this.regexp.exec(f.text))&&w.indexthis.addMatch(C,e,A,S));t=t.update({filterFrom:p,filterTo:b,filter:(A,C)=>Ab,add:x})}}return t}}const Ap=/x/.unicode!=null?"gu":"g",fD=new RegExp(`[\0-\b ---Ÿ­؜​‎‏\u2028\u2029‭‮⁦⁧⁩\uFEFF-]`,Ap),dD={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let bm=null;function mD(){var n;if(bm==null&&typeof document<"u"&&document.body){let e=document.body.style;bm=((n=e.tabSize)!==null&&n!==void 0?n:e.MozTabSize)!=null}return bm||!1}const _u=ce.define({combine(n){let e=Si(n,{render:null,specialChars:fD,addSpecialChars:null});return(e.replaceTabs=!mD())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,Ap)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,Ap)),e}});function pD(n={}){return[_u.of(n),gD()]}let dv=null;function gD(){return dv||(dv=ft.fromClass(class{constructor(n){this.view=n,this.decorations=we.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(n.state.facet(_u)),this.decorations=this.decorator.createDeco(n)}makeDecorator(n){return new hD({regexp:n.specialChars,decoration:(e,t,i)=>{let{doc:s}=t.state,r=rn(e[0],0);if(r==9){let o=s.lineAt(i),u=t.state.tabSize,f=La(o.text,u,i-o.from);return we.replace({widget:new vD((u-f%u)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[r]||(this.decorationCache[r]=we.replace({widget:new xD(n,r)}))},boundary:n.replaceTabs?void 0:/[^]/})}update(n){let e=n.state.facet(_u);n.startState.facet(_u)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(n.view)):this.decorations=this.decorator.updateDeco(n,this.decorations)}},{decorations:n=>n.decorations}))}const yD="•";function bD(n){return n>=32?yD:n==10?"␤":String.fromCharCode(9216+n)}class xD extends ki{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=bD(this.code),i=e.state.phrase("Control character")+" "+(dD[this.code]||"0x"+this.code.toString(16)),s=this.options.render&&this.options.render(this.code,i,t);if(s)return s;let r=document.createElement("span");return r.textContent=t,r.title=i,r.setAttribute("aria-label",i),r.className="cm-specialChar",r}ignoreEvent(){return!1}}class vD extends ki{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}}function wD(){return kD}const SD=we.line({class:"cm-activeLine"}),kD=ft.fromClass(class{constructor(n){this.decorations=this.getDeco(n)}update(n){(n.docChanged||n.selectionSet)&&(this.decorations=this.getDeco(n.view))}getDeco(n){let e=-1,t=[];for(let i of n.state.selection.ranges){let s=n.lineBlockAt(i.head);s.from>e&&(t.push(SD.range(s.from)),e=s.from)}return we.set(t)}},{decorations:n=>n.decorations});class CD extends ki{constructor(e){super(),this.content=e}toDOM(e){let t=document.createElement("span");return t.className="cm-placeholder",t.style.pointerEvents="none",t.appendChild(typeof this.content=="string"?document.createTextNode(this.content):typeof this.content=="function"?this.content(e):this.content.cloneNode(!0)),t.setAttribute("aria-hidden","true"),t}coordsAt(e){let t=e.firstChild?Zr(e.firstChild):[];if(!t.length)return null;let i=window.getComputedStyle(e.parentNode),s=ho(t[0],i.direction!="rtl"),r=parseInt(i.lineHeight);return s.bottom-s.top>r*1.5?{left:s.left,right:s.right,top:s.top,bottom:s.top+r}:s}ignoreEvent(){return!1}}function AD(n){let e=ft.fromClass(class{constructor(t){this.view=t,this.placeholder=n?we.set([we.widget({widget:new CD(n),side:1}).range(0)]):we.none}get decorations(){return this.view.state.doc.length?we.none:this.placeholder}},{decorations:t=>t.decorations});return typeof n=="string"?[e,re.contentAttributes.of({"aria-placeholder":n})]:e}const Mp=2e3;function MD(n,e,t){let i=Math.min(e.line,t.line),s=Math.max(e.line,t.line),r=[];if(e.off>Mp||t.off>Mp||e.col<0||t.col<0){let o=Math.min(e.off,t.off),u=Math.max(e.off,t.off);for(let f=i;f<=s;f++){let d=n.doc.line(f);d.length<=u&&r.push(X.range(d.from+o,d.to+u))}}else{let o=Math.min(e.col,t.col),u=Math.max(e.col,t.col);for(let f=i;f<=s;f++){let d=n.doc.line(f),p=sp(d.text,o,n.tabSize,!0);if(p<0)r.push(X.cursor(d.to));else{let b=sp(d.text,u,n.tabSize);r.push(X.range(d.from+p,d.from+b))}}}return r}function TD(n,e){let t=n.coordsAtPos(n.viewport.from);return t?Math.round(Math.abs((t.left-e)/n.defaultCharacterWidth)):-1}function mv(n,e){let t=n.posAtCoords({x:e.clientX,y:e.clientY},!1),i=n.state.doc.lineAt(t),s=t-i.from,r=s>Mp?-1:s==i.length?TD(n,e.clientX):La(i.text,n.state.tabSize,t-i.from);return{line:i.number,col:r,off:s}}function ND(n,e){let t=mv(n,e),i=n.state.selection;return t?{update(s){if(s.docChanged){let r=s.changes.mapPos(s.startState.doc.line(t.line).from),o=s.state.doc.lineAt(r);t={line:o.number,col:t.col,off:Math.min(t.off,o.length)},i=i.map(s.changes)}},get(s,r,o){let u=mv(n,s);if(!u)return i;let f=MD(n.state,t,u);return f.length?o?X.create(f.concat(i.ranges)):X.create(f):i}}:null}function ED(n){let e=(t=>t.altKey&&t.button==0);return re.mouseSelectionStyle.of((t,i)=>e(i)?ND(t,i):null)}const DD={Alt:[18,n=>!!n.altKey],Control:[17,n=>!!n.ctrlKey],Shift:[16,n=>!!n.shiftKey],Meta:[91,n=>!!n.metaKey]},OD={style:"cursor: crosshair"};function jD(n={}){let[e,t]=DD[n.key||"Alt"],i=ft.fromClass(class{constructor(s){this.view=s,this.isDown=!1}set(s){this.isDown!=s&&(this.isDown=s,this.view.update([]))}},{eventObservers:{keydown(s){this.set(s.keyCode==e||t(s))},keyup(s){(s.keyCode==e||!t(s))&&this.set(!1)},mousemove(s){this.set(t(s))}}});return[i,re.contentAttributes.of(s=>{var r;return!((r=s.plugin(i))===null||r===void 0)&&r.isDown?OD:null})]}const mu="-10000px";class AS{constructor(e,t,i,s){this.facet=t,this.createTooltipView=i,this.removeTooltipView=s,this.input=e.state.facet(t),this.tooltips=this.input.filter(o=>o);let r=null;this.tooltipViews=this.tooltips.map(o=>r=i(o,r))}update(e,t){var i;let s=e.state.facet(this.facet),r=s.filter(f=>f);if(s===this.input){for(let f of this.tooltipViews)f.update&&f.update(e);return!1}let o=[],u=t?[]:null;for(let f=0;ft[d]=f),t.length=u.length),this.input=s,this.tooltips=r,this.tooltipViews=o,!0}}function RD(n){let e=n.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:e.clientHeight,right:e.clientWidth}}const xm=ce.define({combine:n=>{var e,t,i;return{position:oe.ios?"absolute":((e=n.find(s=>s.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((t=n.find(s=>s.parent))===null||t===void 0?void 0:t.parent)||null,tooltipSpace:((i=n.find(s=>s.tooltipSpace))===null||i===void 0?void 0:i.tooltipSpace)||RD}}}),pv=new WeakMap,Cg=ft.fromClass(class{constructor(n){this.view=n,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let e=n.state.facet(xm);this.position=e.position,this.parent=e.parent,this.classes=n.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver=typeof ResizeObserver=="function"?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new AS(n,Ag,(t,i)=>this.createTooltip(t,i),t=>{this.resizeObserver&&this.resizeObserver.unobserve(t.dom),t.dom.remove()}),this.above=this.manager.tooltips.map(t=>!!t.above),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(t=>{Date.now()>this.lastTransaction-50&&t.length>0&&t[t.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),n.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let n of this.manager.tooltipViews)this.intersectionObserver.observe(n.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(n){n.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(n,this.above);e&&this.observeIntersection();let t=e||n.geometryChanged,i=n.state.facet(xm);if(i.position!=this.position&&!this.madeAbsolute){this.position=i.position;for(let s of this.manager.tooltipViews)s.dom.style.position=this.position;t=!0}if(i.parent!=this.parent){this.parent&&this.container.remove(),this.parent=i.parent,this.createContainer();for(let s of this.manager.tooltipViews)this.container.appendChild(s.dom);t=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);t&&this.maybeMeasure()}createTooltip(n,e){let t=n.create(this.view),i=e?e.dom:null;if(t.dom.classList.add("cm-tooltip"),n.arrow&&!t.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let s=document.createElement("div");s.className="cm-tooltip-arrow",t.dom.appendChild(s)}return t.dom.style.position=this.position,t.dom.style.top=mu,t.dom.style.left="0px",this.container.insertBefore(t.dom,i),t.mount&&t.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(t.dom),t}destroy(){var n,e,t;this.view.win.removeEventListener("resize",this.measureSoon);for(let i of this.manager.tooltipViews)i.dom.remove(),(n=i.destroy)===null||n===void 0||n.call(i);this.parent&&this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(t=this.intersectionObserver)===null||t===void 0||t.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let n=1,e=1,t=!1;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:r}=this.manager.tooltipViews[0];if(oe.safari){let o=r.getBoundingClientRect();t=Math.abs(o.top+1e4)>1||Math.abs(o.left)>1}else t=!!r.offsetParent&&r.offsetParent!=this.container.ownerDocument.body}if(t||this.position=="absolute")if(this.parent){let r=this.parent.getBoundingClientRect();r.width&&r.height&&(n=r.width/this.parent.offsetWidth,e=r.height/this.parent.offsetHeight)}else({scaleX:n,scaleY:e}=this.view.viewState);let i=this.view.scrollDOM.getBoundingClientRect(),s=vg(this.view);return{visible:{left:i.left+s.left,top:i.top+s.top,right:i.right-s.right,bottom:i.bottom-s.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map((r,o)=>{let u=this.manager.tooltipViews[o];return u.getCoords?u.getCoords(r.pos):this.view.coordsAtPos(r.pos)}),size:this.manager.tooltipViews.map(({dom:r})=>r.getBoundingClientRect()),space:this.view.state.facet(xm).tooltipSpace(this.view),scaleX:n,scaleY:e,makeAbsolute:t}}writeMeasure(n){var e;if(n.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let u of this.manager.tooltipViews)u.dom.style.position="absolute"}let{visible:t,space:i,scaleX:s,scaleY:r}=n,o=[];for(let u=0;u=Math.min(t.bottom,i.bottom)||b.rightMath.min(t.right,i.right)+.1)){p.style.top=mu;continue}let w=f.arrow?d.dom.querySelector(".cm-tooltip-arrow"):null,S=w?7:0,A=x.right-x.left,C=(e=pv.get(d))!==null&&e!==void 0?e:x.bottom-x.top,T=d.offset||LD,R=this.view.textDirection==Je.LTR,E=x.width>i.right-i.left?R?i.left:i.right-x.width:R?Math.max(i.left,Math.min(b.left-(w?14:0)+T.x,i.right-A)):Math.min(Math.max(i.left,b.left-A+(w?14:0)-T.x),i.right-A),q=this.above[u];!f.strictSide&&(q?b.top-C-S-T.yi.bottom)&&q==i.bottom-b.bottom>b.top-i.top&&(q=this.above[u]=!q);let B=(q?b.top-i.top:i.bottom-b.bottom)-S;if(BE&&Q.topI&&(I=q?Q.top-C-2-S:Q.bottom+S+2);if(this.position=="absolute"?(p.style.top=(I-n.parent.top)/r+"px",gv(p,(E-n.parent.left)/s)):(p.style.top=I/r+"px",gv(p,E/s)),w){let Q=b.left+(R?T.x:-T.x)-(E+14-7);w.style.left=Q/s+"px"}d.overlap!==!0&&o.push({left:E,top:I,right:V,bottom:I+C}),p.classList.toggle("cm-tooltip-above",q),p.classList.toggle("cm-tooltip-below",!q),d.positioned&&d.positioned(n.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let n of this.manager.tooltipViews)n.dom.style.top=mu}},{eventObservers:{scroll(){this.maybeMeasure()}}});function gv(n,e){let t=parseInt(n.style.left,10);(isNaN(t)||Math.abs(e-t)>1)&&(n.style.left=e+"px")}const _D=re.baseTheme({".cm-tooltip":{zIndex:500,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:"14px",position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),LD={x:0,y:0},Ag=ce.define({enables:[Cg,_D]}),Zu=ce.define({combine:n=>n.reduce((e,t)=>e.concat(t),[])});class kh{static create(e){return new kh(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new AS(e,Zu,(t,i)=>this.createHostedView(t,i),t=>t.dom.remove())}createHostedView(e,t){let i=e.create(this.view);return i.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(i.dom,t?t.dom.nextSibling:this.dom.firstChild),this.mounted&&i.mount&&i.mount(this.view),i}mount(e){for(let t of this.manager.tooltipViews)t.mount&&t.mount(e);this.mounted=!0}positioned(e){for(let t of this.manager.tooltipViews)t.positioned&&t.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let t of this.manager.tooltipViews)(e=t.destroy)===null||e===void 0||e.call(t)}passProp(e){let t;for(let i of this.manager.tooltipViews){let s=i[e];if(s!==void 0){if(t===void 0)t=s;else if(t!==s)return}}return t}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}}const BD=Ag.compute([Zu],n=>{let e=n.facet(Zu);return e.length===0?null:{pos:Math.min(...e.map(t=>t.pos)),end:Math.max(...e.map(t=>{var i;return(i=t.end)!==null&&i!==void 0?i:t.pos})),create:kh.create,above:e[0].above,arrow:e.some(t=>t.arrow)}});class zD{constructor(e,t,i,s,r){this.view=e,this.source=t,this.field=i,this.setHover=s,this.hoverTime=r,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let e=Date.now()-this.lastMove.time;eu.bottom||t.xu.right+e.defaultCharacterWidth)return;let f=e.bidiSpans(e.state.doc.lineAt(s)).find(p=>p.from<=s&&p.to>=s),d=f&&f.dir==Je.RTL?-1:1;r=t.x{this.pending==u&&(this.pending=null,f&&!(Array.isArray(f)&&!f.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(f)?f:[f])}))},f=>un(e.state,f,"hover tooltip"))}else o&&!(Array.isArray(o)&&!o.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(o)?o:[o])})}get tooltip(){let e=this.view.plugin(Cg),t=e?e.manager.tooltips.findIndex(i=>i.create==kh.create):-1;return t>-1?e.manager.tooltipViews[t]:null}mousemove(e){var t,i;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:s,tooltip:r}=this;if(s.length&&r&&!HD(r.dom,e)||this.pending){let{pos:o}=s[0]||this.pending,u=(i=(t=s[0])===null||t===void 0?void 0:t.end)!==null&&i!==void 0?i:o;(o==u?this.view.posAtCoords(this.lastMove)!=o:!VD(this.view,o,u,e.clientX,e.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:t}=this;if(t.length){let{tooltip:i}=this;i&&i.dom.contains(e.relatedTarget)?this.watchTooltipLeave(i.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let t=i=>{e.removeEventListener("mouseleave",t),this.active.length&&!this.view.dom.contains(i.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener("mouseleave",t)}destroy(){clearTimeout(this.hoverTimeout),clearTimeout(this.restartTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}const pu=4;function HD(n,e){let{left:t,right:i,top:s,bottom:r}=n.getBoundingClientRect(),o;if(o=n.querySelector(".cm-tooltip-arrow")){let u=o.getBoundingClientRect();s=Math.min(u.top,s),r=Math.max(u.bottom,r)}return e.clientX>=t-pu&&e.clientX<=i+pu&&e.clientY>=s-pu&&e.clientY<=r+pu}function VD(n,e,t,i,s,r){let o=n.scrollDOM.getBoundingClientRect(),u=n.documentTop+n.documentPadding.top+n.contentHeight;if(o.left>i||o.rights||Math.min(o.bottom,u)=e&&f<=t}function UD(n,e={}){let t=Me.define(),i=It.define({create(){return[]},update(s,r){if(s.length&&(e.hideOnChange&&(r.docChanged||r.selection)?s=[]:e.hideOn&&(s=s.filter(o=>!e.hideOn(r,o))),r.docChanged)){let o=[];for(let u of s){let f=r.changes.mapPos(u.pos,-1,Qt.TrackDel);if(f!=null){let d=Object.assign(Object.create(null),u);d.pos=f,d.end!=null&&(d.end=r.changes.mapPos(d.end)),o.push(d)}}s=o}for(let o of r.effects)o.is(t)&&(s=o.value),o.is(qD)&&(s=[]);return s},provide:s=>Zu.from(s)});return{active:i,extension:[i,ft.define(s=>new zD(s,n,i,t,e.hoverTime||300)),BD]}}function MS(n,e){let t=n.plugin(Cg);if(!t)return null;let i=t.manager.tooltips.indexOf(e);return i<0?null:t.manager.tooltipViews[i]}const qD=Me.define(),yv=ce.define({combine(n){let e,t;for(let i of n)e=e||i.topContainer,t=t||i.bottomContainer;return{topContainer:e,bottomContainer:t}}});function Mg(n,e){let t=n.plugin(TS),i=t?t.specs.indexOf(e):-1;return i>-1?t.panels[i]:null}const TS=ft.fromClass(class{constructor(n){this.input=n.state.facet(po),this.specs=this.input.filter(t=>t),this.panels=this.specs.map(t=>t(n));let e=n.state.facet(yv);this.top=new gu(n,!0,e.topContainer),this.bottom=new gu(n,!1,e.bottomContainer),this.top.sync(this.panels.filter(t=>t.top)),this.bottom.sync(this.panels.filter(t=>!t.top));for(let t of this.panels)t.dom.classList.add("cm-panel"),t.mount&&t.mount()}update(n){let e=n.state.facet(yv);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new gu(n.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new gu(n.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let t=n.state.facet(po);if(t!=this.input){let i=t.filter(f=>f),s=[],r=[],o=[],u=[];for(let f of i){let d=this.specs.indexOf(f),p;d<0?(p=f(n.view),u.push(p)):(p=this.panels[d],p.update&&p.update(n)),s.push(p),(p.top?r:o).push(p)}this.specs=i,this.panels=s,this.top.sync(r),this.bottom.sync(o);for(let f of u)f.dom.classList.add("cm-panel"),f.mount&&f.mount()}else for(let i of this.panels)i.update&&i.update(n)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:n=>re.scrollMargins.of(e=>{let t=e.plugin(n);return t&&{top:t.top.scrollMargin(),bottom:t.bottom.scrollMargin()}})});class gu{constructor(e,t,i){this.view=e,this.top=t,this.container=i,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let t of this.panels)t.destroy&&e.indexOf(t)<0&&t.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let t=this.container||this.view.dom;t.insertBefore(this.dom,this.top?t.firstChild:null)}let e=this.dom.firstChild;for(let t of this.panels)if(t.dom.parentNode==this.dom){for(;e!=t.dom;)e=bv(e);e=e.nextSibling}else this.dom.insertBefore(t.dom,e);for(;e;)e=bv(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}}function bv(n){let e=n.nextSibling;return n.remove(),e}const po=ce.define({enables:TS});function PD(n,e){let t,i=new Promise(o=>t=o),s=o=>KD(o,e,t);n.state.field(vm,!1)?n.dispatch({effects:NS.of(s)}):n.dispatch({effects:Me.appendConfig.of(vm.init(()=>[s]))});let r=ES.of(s);return{close:r,result:i.then(o=>((n.win.queueMicrotask||(f=>n.win.setTimeout(f,10)))(()=>{n.state.field(vm).indexOf(s)>-1&&n.dispatch({effects:r})}),o))}}const vm=It.define({create(){return[]},update(n,e){for(let t of e.effects)t.is(NS)?n=[t.value].concat(n):t.is(ES)&&(n=n.filter(i=>i!=t.value));return n},provide:n=>po.computeN([n],e=>e.field(n))}),NS=Me.define(),ES=Me.define();function KD(n,e,t){let i=e.content?e.content(n,()=>o(null)):null;if(!i){if(i=Qe("form"),e.input){let u=Qe("input",e.input);/^(text|password|number|email|tel|url)$/.test(u.type)&&u.classList.add("cm-textfield"),u.name||(u.name="input"),i.appendChild(Qe("label",(e.label||"")+": ",u))}else i.appendChild(document.createTextNode(e.label||""));i.appendChild(document.createTextNode(" ")),i.appendChild(Qe("button",{class:"cm-button",type:"submit"},e.submitLabel||"OK"))}let s=i.nodeName=="FORM"?[i]:i.querySelectorAll("form");for(let u=0;u{d.keyCode==27?(d.preventDefault(),o(null)):d.keyCode==13&&(d.preventDefault(),o(f))}),f.addEventListener("submit",d=>{d.preventDefault(),o(f)})}let r=Qe("div",i,Qe("button",{onclick:()=>o(null),"aria-label":n.state.phrase("close"),class:"cm-dialog-close",type:"button"},["×"]));e.class&&(r.className=e.class),r.classList.add("cm-dialog");function o(u){r.contains(r.ownerDocument.activeElement)&&n.focus(),t(u)}return{dom:r,top:e.top,mount:()=>{if(e.focus){let u;typeof e.focus=="string"?u=i.querySelector(e.focus):u=i.querySelector("input")||i.querySelector("button"),u&&"select"in u?u.select():u&&"focus"in u&&u.focus()}}}}class Qi extends Ol{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}Qi.prototype.elementClass="";Qi.prototype.toDOM=void 0;Qi.prototype.mapMode=Qt.TrackBefore;Qi.prototype.startSide=Qi.prototype.endSide=-1;Qi.prototype.point=!0;const Lu=ce.define(),GD=ce.define(),ID={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>je.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},eo=ce.define();function YD(n){return[DS(),eo.of({...ID,...n})]}const xv=ce.define({combine:n=>n.some(e=>e)});function DS(n){return[WD]}const WD=ft.fromClass(class{constructor(n){this.view=n,this.domAfter=null,this.prevViewport=n.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters cm-gutters-before",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=n.state.facet(eo).map(e=>new wv(n,e)),this.fixed=!n.state.facet(xv);for(let e of this.gutters)e.config.side=="after"?this.getDOMAfter().appendChild(e.dom):this.dom.appendChild(e.dom);this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),n.scrollDOM.insertBefore(this.dom,n.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement("div"),this.domAfter.className="cm-gutters cm-gutters-after",this.domAfter.setAttribute("aria-hidden","true"),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.domAfter.style.position=this.fixed?"sticky":"",this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(n){if(this.updateGutters(n)){let e=this.prevViewport,t=n.view.viewport,i=Math.min(e.to,t.to)-Math.max(e.from,t.from);this.syncGutters(i<(t.to-t.from)*.8)}if(n.geometryChanged){let e=this.view.contentHeight/this.view.scaleY+"px";this.dom.style.minHeight=e,this.domAfter&&(this.domAfter.style.minHeight=e)}this.view.state.facet(xv)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=n.view.viewport}syncGutters(n){let e=this.dom.nextSibling;n&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let t=je.iter(this.view.state.facet(Lu),this.view.viewport.from),i=[],s=this.gutters.map(r=>new FD(r,this.view.viewport,-this.view.documentPadding.top));for(let r of this.view.viewportLineBlocks)if(i.length&&(i=[]),Array.isArray(r.type)){let o=!0;for(let u of r.type)if(u.type==qt.Text&&o){Tp(t,i,u.from);for(let f of s)f.line(this.view,u,i);o=!1}else if(u.widget)for(let f of s)f.widget(this.view,u)}else if(r.type==qt.Text){Tp(t,i,r.from);for(let o of s)o.line(this.view,r,i)}else if(r.widget)for(let o of s)o.widget(this.view,r);for(let r of s)r.finish();n&&(this.view.scrollDOM.insertBefore(this.dom,e),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(n){let e=n.startState.facet(eo),t=n.state.facet(eo),i=n.docChanged||n.heightChanged||n.viewportChanged||!je.eq(n.startState.facet(Lu),n.state.facet(Lu),n.view.viewport.from,n.view.viewport.to);if(e==t)for(let s of this.gutters)s.update(n)&&(i=!0);else{i=!0;let s=[];for(let r of t){let o=e.indexOf(r);o<0?s.push(new wv(this.view,r)):(this.gutters[o].update(n),s.push(this.gutters[o]))}for(let r of this.gutters)r.dom.remove(),s.indexOf(r)<0&&r.destroy();for(let r of s)r.config.side=="after"?this.getDOMAfter().appendChild(r.dom):this.dom.appendChild(r.dom);this.gutters=s}return i}destroy(){for(let n of this.gutters)n.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:n=>re.scrollMargins.of(e=>{let t=e.plugin(n);if(!t||t.gutters.length==0||!t.fixed)return null;let i=t.dom.offsetWidth*e.scaleX,s=t.domAfter?t.domAfter.offsetWidth*e.scaleX:0;return e.textDirection==Je.LTR?{left:i,right:s}:{right:i,left:s}})});function vv(n){return Array.isArray(n)?n:[n]}function Tp(n,e,t){for(;n.value&&n.from<=t;)n.from==t&&e.push(n.value),n.next()}class FD{constructor(e,t,i){this.gutter=e,this.height=i,this.i=0,this.cursor=je.iter(e.markers,t.from)}addElement(e,t,i){let{gutter:s}=this,r=(t.top-this.height)/e.scaleY,o=t.height/e.scaleY;if(this.i==s.elements.length){let u=new OS(e,o,r,i);s.elements.push(u),s.dom.appendChild(u.dom)}else s.elements[this.i].update(e,o,r,i);this.height=t.bottom,this.i++}line(e,t,i){let s=[];Tp(this.cursor,s,t.from),i.length&&(s=s.concat(i));let r=this.gutter.config.lineMarker(e,t,s);r&&s.unshift(r);let o=this.gutter;s.length==0&&!o.config.renderEmptyElements||this.addElement(e,t,s)}widget(e,t){let i=this.gutter.config.widgetMarker(e,t.widget,t),s=i?[i]:null;for(let r of e.state.facet(GD)){let o=r(e,t.widget,t);o&&(s||(s=[])).push(o)}s&&this.addElement(e,t,s)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let t=e.elements.pop();e.dom.removeChild(t.dom),t.destroy()}}}class wv{constructor(e,t){this.view=e,this.config=t,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let i in t.domEventHandlers)this.dom.addEventListener(i,s=>{let r=s.target,o;if(r!=this.dom&&this.dom.contains(r)){for(;r.parentNode!=this.dom;)r=r.parentNode;let f=r.getBoundingClientRect();o=(f.top+f.bottom)/2}else o=s.clientY;let u=e.lineBlockAtHeight(o-e.documentTop);t.domEventHandlers[i](e,u,s)&&s.preventDefault()});this.markers=vv(t.markers(e)),t.initialSpacer&&(this.spacer=new OS(e,0,0,[t.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let t=this.markers;if(this.markers=vv(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let s=this.config.updateSpacer(this.spacer.markers[0],e);s!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[s])}let i=e.view.viewport;return!je.eq(this.markers,t,i.from,i.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}}class OS{constructor(e,t,i,s){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,t,i,s)}update(e,t,i,s){this.height!=t&&(this.height=t,this.dom.style.height=t+"px"),this.above!=i&&(this.dom.style.marginTop=(this.above=i)?i+"px":""),XD(this.markers,s)||this.setMarkers(e,s)}setMarkers(e,t){let i="cm-gutterElement",s=this.dom.firstChild;for(let r=0,o=0;;){let u=o,f=rr(u,f,d)||o(u,f,d):o}return i}})}});class wm extends Qi{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function Sm(n,e){return n.state.facet(ma).formatNumber(e,n.state)}const $D=eo.compute([ma],n=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(QD)},lineMarker(e,t,i){return i.some(s=>s.toDOM)?null:new wm(Sm(e,e.state.doc.lineAt(t.from).number))},widgetMarker:(e,t,i)=>{for(let s of e.state.facet(ZD)){let r=s(e,t,i);if(r)return r}return null},lineMarkerChange:e=>e.startState.facet(ma)!=e.state.facet(ma),initialSpacer(e){return new wm(Sm(e,Sv(e.state.doc.lines)))},updateSpacer(e,t){let i=Sm(t.view,Sv(t.view.state.doc.lines));return i==e.number?e:new wm(i)},domEventHandlers:n.facet(ma).domEventHandlers,side:"before"}));function JD(n={}){return[ma.of(n),DS(),$D]}function Sv(n){let e=9;for(;e{let e=[],t=-1;for(let i of n.selection.ranges){let s=n.doc.lineAt(i.head).from;s>t&&(t=s,e.push(eO.range(s)))}return je.of(e)});function nO(){return tO}let iO=0;class Bn{constructor(e,t,i,s){this.name=e,this.set=t,this.base=i,this.modified=s,this.id=iO++}toString(){let{name:e}=this;for(let t of this.modified)t.name&&(e=`${t.name}(${e})`);return e}static define(e,t){let i=typeof e=="string"?e:"?";if(e instanceof Bn&&(t=e),t!=null&&t.base)throw new Error("Can not derive from a modified tag");let s=new Bn(i,[],null,[]);if(s.set.push(s),t)for(let r of t.set)s.set.push(r);return s}static defineModifier(e){let t=new $u(e);return i=>i.modified.indexOf(t)>-1?i:$u.get(i.base||i,i.modified.concat(t).sort((s,r)=>s.id-r.id))}}let lO=0;class $u{constructor(e){this.name=e,this.instances=[],this.id=lO++}static get(e,t){if(!t.length)return e;let i=t[0].instances.find(u=>u.base==e&&sO(t,u.modified));if(i)return i;let s=[],r=new Bn(e.name,s,e,t);for(let u of t)u.instances.push(r);let o=aO(t);for(let u of e.set)if(!u.modified.length)for(let f of o)s.push($u.get(u,f));return r}}function sO(n,e){return n.length==e.length&&n.every((t,i)=>t==e[i])}function aO(n){let e=[[]];for(let t=0;ti.length-t.length)}function rO(n){let e=Object.create(null);for(let t in n){let i=n[t];Array.isArray(i)||(i=[i]);for(let s of t.split(" "))if(s){let r=[],o=2,u=s;for(let b=0;;){if(u=="..."&&b>0&&b+3==s.length){o=1;break}let x=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(u);if(!x)throw new RangeError("Invalid path: "+s);if(r.push(x[0]=="*"?"":x[0][0]=='"'?JSON.parse(x[0]):x[0]),b+=x[0].length,b==s.length)break;let w=s[b++];if(b==s.length&&w=="!"){o=0;break}if(w!="/")throw new RangeError("Invalid path: "+s);u=s.slice(b)}let f=r.length-1,d=r[f];if(!d)throw new RangeError("Invalid path: "+s);let p=new go(i,o,f>0?r.slice(0,f):null);e[d]=p.sort(e[d])}}return jS.add(e)}const jS=new Le({combine(n,e){let t,i,s;for(;n||e;){if(!n||e&&n.depth>=e.depth?(s=e,e=e.next):(s=n,n=n.next),t&&t.mode==s.mode&&!s.context&&!t.context)continue;let r=new go(s.tags,s.mode,s.context);t?t.next=r:i=r,t=r}return i}});class go{constructor(e,t,i,s){this.tags=e,this.mode=t,this.context=i,this.next=s}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth{let o=s;for(let u of r)for(let f of u.set){let d=t[f.id];if(d){o=o?o+" "+d:d;break}}return o},scope:i}}function oO(n,e){let t=null;for(let i of n){let s=i.style(e);s&&(t=t?t+" "+s:s)}return t}function cO(n,e,t,i=0,s=n.length){let r=new uO(i,Array.isArray(e)?e:[e],t);r.highlightRange(n.cursor(),i,s,"",r.highlighters),r.flush(s)}class uO{constructor(e,t,i){this.at=e,this.highlighters=t,this.span=i,this.class=""}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,i,s,r){let{type:o,from:u,to:f}=e;if(u>=i||f<=t)return;o.isTop&&(r=this.highlighters.filter(w=>!w.scope||w.scope(o)));let d=s,p=hO(e)||go.empty,b=oO(r,p.tags);if(b&&(d&&(d+=" "),d+=b,p.mode==1&&(s+=(s?" ":"")+b)),this.startSpan(Math.max(t,u),d),p.opaque)return;let x=e.tree&&e.tree.prop(Le.mounted);if(x&&x.overlay){let w=e.node.enter(x.overlay[0].from+u,1),S=this.highlighters.filter(C=>!C.scope||C.scope(x.tree.type)),A=e.firstChild();for(let C=0,T=u;;C++){let R=C=E||!e.nextSibling())););if(!R||E>i)break;T=R.to+u,T>t&&(this.highlightRange(w.cursor(),Math.max(t,R.from+u),Math.min(i,T),"",S),this.startSpan(Math.min(i,T),d))}A&&e.parent()}else if(e.firstChild()){x&&(s="");do if(!(e.to<=t)){if(e.from>=i)break;this.highlightRange(e,t,i,s,r),this.startSpan(Math.min(i,e.to),d)}while(e.nextSibling());e.parent()}}}function hO(n){let e=n.type.prop(jS);for(;e&&e.context&&!n.matchContext(e.context);)e=e.next;return e||null}const se=Bn.define,yu=se(),Cl=se(),kv=se(Cl),Cv=se(Cl),Al=se(),bu=se(Al),km=se(Al),ui=se(),as=se(ui),oi=se(),ci=se(),Np=se(),Vr=se(Np),xu=se(),Y={comment:yu,lineComment:se(yu),blockComment:se(yu),docComment:se(yu),name:Cl,variableName:se(Cl),typeName:kv,tagName:se(kv),propertyName:Cv,attributeName:se(Cv),className:se(Cl),labelName:se(Cl),namespace:se(Cl),macroName:se(Cl),literal:Al,string:bu,docString:se(bu),character:se(bu),attributeValue:se(bu),number:km,integer:se(km),float:se(km),bool:se(Al),regexp:se(Al),escape:se(Al),color:se(Al),url:se(Al),keyword:oi,self:se(oi),null:se(oi),atom:se(oi),unit:se(oi),modifier:se(oi),operatorKeyword:se(oi),controlKeyword:se(oi),definitionKeyword:se(oi),moduleKeyword:se(oi),operator:ci,derefOperator:se(ci),arithmeticOperator:se(ci),logicOperator:se(ci),bitwiseOperator:se(ci),compareOperator:se(ci),updateOperator:se(ci),definitionOperator:se(ci),typeOperator:se(ci),controlOperator:se(ci),punctuation:Np,separator:se(Np),bracket:Vr,angleBracket:se(Vr),squareBracket:se(Vr),paren:se(Vr),brace:se(Vr),content:ui,heading:as,heading1:se(as),heading2:se(as),heading3:se(as),heading4:se(as),heading5:se(as),heading6:se(as),contentSeparator:se(ui),list:se(ui),quote:se(ui),emphasis:se(ui),strong:se(ui),link:se(ui),monospace:se(ui),strikethrough:se(ui),inserted:se(),deleted:se(),changed:se(),invalid:se(),meta:xu,documentMeta:se(xu),annotation:se(xu),processingInstruction:se(xu),definition:Bn.defineModifier("definition"),constant:Bn.defineModifier("constant"),function:Bn.defineModifier("function"),standard:Bn.defineModifier("standard"),local:Bn.defineModifier("local"),special:Bn.defineModifier("special")};for(let n in Y){let e=Y[n];e instanceof Bn&&(e.name=n)}RS([{tag:Y.link,class:"tok-link"},{tag:Y.heading,class:"tok-heading"},{tag:Y.emphasis,class:"tok-emphasis"},{tag:Y.strong,class:"tok-strong"},{tag:Y.keyword,class:"tok-keyword"},{tag:Y.atom,class:"tok-atom"},{tag:Y.bool,class:"tok-bool"},{tag:Y.url,class:"tok-url"},{tag:Y.labelName,class:"tok-labelName"},{tag:Y.inserted,class:"tok-inserted"},{tag:Y.deleted,class:"tok-deleted"},{tag:Y.literal,class:"tok-literal"},{tag:Y.string,class:"tok-string"},{tag:Y.number,class:"tok-number"},{tag:[Y.regexp,Y.escape,Y.special(Y.string)],class:"tok-string2"},{tag:Y.variableName,class:"tok-variableName"},{tag:Y.local(Y.variableName),class:"tok-variableName tok-local"},{tag:Y.definition(Y.variableName),class:"tok-variableName tok-definition"},{tag:Y.special(Y.variableName),class:"tok-variableName2"},{tag:Y.definition(Y.propertyName),class:"tok-propertyName tok-definition"},{tag:Y.typeName,class:"tok-typeName"},{tag:Y.namespace,class:"tok-namespace"},{tag:Y.className,class:"tok-className"},{tag:Y.macroName,class:"tok-macroName"},{tag:Y.propertyName,class:"tok-propertyName"},{tag:Y.operator,class:"tok-operator"},{tag:Y.comment,class:"tok-comment"},{tag:Y.meta,class:"tok-meta"},{tag:Y.invalid,class:"tok-invalid"},{tag:Y.punctuation,class:"tok-punctuation"}]);var Cm;const pa=new Le;function fO(n){return ce.define({combine:n?e=>e.concat(n):void 0})}const dO=new Le;class Fn{constructor(e,t,i=[],s=""){this.data=e,this.name=s,ze.prototype.hasOwnProperty("tree")||Object.defineProperty(ze.prototype,"tree",{get(){return Gt(this)}}),this.parser=t,this.extension=[Ll.of(this),ze.languageData.of((r,o,u)=>{let f=Av(r,o,u),d=f.type.prop(pa);if(!d)return[];let p=r.facet(d),b=f.type.prop(dO);if(b){let x=f.resolve(o-f.from,u);for(let w of b)if(w.test(x,r)){let S=r.facet(w.facet);return w.type=="replace"?S:S.concat(p)}}return p})].concat(i)}isActiveAt(e,t,i=-1){return Av(e,t,i).type.prop(pa)==this.data}findRegions(e){let t=e.facet(Ll);if((t==null?void 0:t.data)==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let i=[],s=(r,o)=>{if(r.prop(pa)==this.data){i.push({from:o,to:o+r.length});return}let u=r.prop(Le.mounted);if(u){if(u.tree.prop(pa)==this.data){if(u.overlay)for(let f of u.overlay)i.push({from:f.from+o,to:f.to+o});else i.push({from:o,to:o+r.length});return}else if(u.overlay){let f=i.length;if(s(u.tree,u.overlay[0].from+o),i.length>f)return}}for(let f=0;f=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-i,t-i)}}let Ur=null;class Ea{constructor(e,t,i=[],s,r,o,u,f){this.parser=e,this.state=t,this.fragments=i,this.tree=s,this.treeLen=r,this.viewport=o,this.skipped=u,this.scheduleOn=f,this.parse=null,this.tempSkipped=[]}static create(e,t,i){return new Ea(e,t,[],st.empty,0,i,[],null)}startParse(){return this.parser.startParse(new mO(this.state.doc),this.fragments)}work(e,t){return t!=null&&t>=this.state.doc.length&&(t=void 0),this.tree!=st.empty&&this.isDone(t??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var i;if(typeof e=="number"){let s=Date.now()+e;e=()=>Date.now()>s}for(this.parse||(this.parse=this.startParse()),t!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>t)&&t=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(t=this.parse.advance()););}),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(ms.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=Ur;Ur=this;try{return e()}finally{Ur=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=Mv(e,t.from,t.to);return e}changes(e,t){let{fragments:i,tree:s,treeLen:r,viewport:o,skipped:u}=this;if(this.takeTree(),!e.empty){let f=[];if(e.iterChangedRanges((d,p,b,x)=>f.push({fromA:d,toA:p,fromB:b,toB:x})),i=ms.applyChanges(i,f),s=st.empty,r=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){u=[];for(let d of this.skipped){let p=e.mapPos(d.from,1),b=e.mapPos(d.to,-1);pe.from&&(this.fragments=Mv(this.fragments,s,r),this.skipped.splice(i--,1))}return this.skipped.length>=t?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,t){this.skipped.push({from:e,to:t})}static getSkippingParser(e){return new class extends cw{createParse(t,i,s){let r=s[0].from,o=s[s.length-1].to;return{parsedPos:r,advance(){let f=Ur;if(f){for(let d of s)f.tempSkipped.push(d);e&&(f.scheduleOn=f.scheduleOn?Promise.all([f.scheduleOn,e]):e)}return this.parsedPos=o,new st(fn.none,[],[],o-r)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&t[0].from==0&&t[0].to>=e}static get(){return Ur}}function Mv(n,e,t){return ms.applyChanges(n,[{fromA:e,toA:t,fromB:e,toB:t}])}class Da{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let t=this.context.changes(e.changes,e.state),i=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),t.viewport.to);return t.work(20,i)||t.takeTree(),new Da(t)}static init(e){let t=Math.min(3e3,e.doc.length),i=Ea.create(e.facet(Ll).parser,e,{from:0,to:t});return i.work(20,t)||i.takeTree(),new Da(i)}}Fn.state=It.define({create:Da.init,update(n,e){for(let t of e.effects)if(t.is(Fn.setState))return t.value;return e.startState.facet(Ll)!=e.state.facet(Ll)?Da.init(e.state):n.apply(e)}});let _S=n=>{let e=setTimeout(()=>n(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(_S=n=>{let e=-1,t=setTimeout(()=>{e=requestIdleCallback(n,{timeout:400})},100);return()=>e<0?clearTimeout(t):cancelIdleCallback(e)});const Am=typeof navigator<"u"&&(!((Cm=navigator.scheduling)===null||Cm===void 0)&&Cm.isInputPending)?()=>navigator.scheduling.isInputPending():null,pO=ft.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field(Fn.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(Fn.state);(t.tree!=t.context.tree||!t.context.isDone(e.doc.length))&&(this.working=_S(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEnds+1e3,f=r.context.work(()=>Am&&Am()||Date.now()>o,s+(u?0:1e5));this.chunkBudget-=Date.now()-t,(f||this.chunkBudget<=0)&&(r.context.takeTree(),this.view.dispatch({effects:Fn.setState.of(new Da(r.context))})),this.chunkBudget>0&&!(f&&!u)&&this.scheduleWork(),this.checkAsyncSchedule(r.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(t=>un(this.view.state,t)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),Ll=ce.define({combine(n){return n.length?n[0]:null},enables:n=>[Fn.state,pO,re.contentAttributes.compute([n],e=>{let t=e.facet(n);return t&&t.name?{"data-language":t.name}:{}})]}),gO=ce.define(),Ch=ce.define({combine:n=>{if(!n.length)return" ";let e=n[0];if(!e||/\S/.test(e)||Array.from(e).some(t=>t!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(n[0]));return e}});function xs(n){let e=n.facet(Ch);return e.charCodeAt(0)==9?n.tabSize*e.length:e.length}function yo(n,e){let t="",i=n.tabSize,s=n.facet(Ch)[0];if(s==" "){for(;e>=i;)t+=" ",e-=i;s=" "}for(let r=0;r=e?yO(n,t,e):null}class Ah{constructor(e,t={}){this.state=e,this.options=t,this.unit=xs(e)}lineAt(e,t=1){let i=this.state.doc.lineAt(e),{simulateBreak:s,simulateDoubleBreak:r}=this.options;return s!=null&&s>=i.from&&s<=i.to?r&&s==e?{text:"",from:e}:(t<0?s-1&&(r+=o-this.countColumn(i,i.search(/\S|$/))),r}countColumn(e,t=e.length){return La(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:i,from:s}=this.lineAt(e,t),r=this.options.overrideIndentation;if(r){let o=r(s);if(o>-1)return o}return this.countColumn(i,i.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const LS=new Le;function yO(n,e,t){let i=e.resolveStack(t),s=e.resolveInner(t,-1).resolve(t,0).enterUnfinishedNodesBefore(t);if(s!=i.node){let r=[];for(let o=s;o&&!(o.fromi.node.to||o.from==i.node.from&&o.type==i.node.type);o=o.parent)r.push(o);for(let o=r.length-1;o>=0;o--)i={node:r[o],next:i}}return BS(i,n,t)}function BS(n,e,t){for(let i=n;i;i=i.next){let s=xO(i.node);if(s)return s(Ng.create(e,t,i))}return 0}function bO(n){return n.pos==n.options.simulateBreak&&n.options.simulateDoubleBreak}function xO(n){let e=n.type.prop(LS);if(e)return e;let t=n.firstChild,i;if(t&&(i=t.type.prop(Le.closedBy))){let s=n.lastChild,r=s&&i.indexOf(s.name)>-1;return o=>kO(o,!0,1,void 0,r&&!bO(o)?s.from:void 0)}return n.parent==null?vO:null}function vO(){return 0}class Ng extends Ah{constructor(e,t,i){super(e.state,e.options),this.base=e,this.pos=t,this.context=i}get node(){return this.context.node}static create(e,t,i){return new Ng(e,t,i)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let t=this.state.doc.lineAt(e.from);for(;;){let i=e.resolve(t.from);for(;i.parent&&i.parent.from==i.from;)i=i.parent;if(wO(i,e))break;t=this.state.doc.lineAt(i.from)}return this.lineIndent(t.from)}continue(){return BS(this.context.next,this.base,this.pos)}}function wO(n,e){for(let t=e;t;t=t.parent)if(n==t)return!0;return!1}function SO(n){let e=n.node,t=e.childAfter(e.from),i=e.lastChild;if(!t)return null;let s=n.options.simulateBreak,r=n.state.doc.lineAt(t.from),o=s==null||s<=r.from?r.to:Math.min(r.to,s);for(let u=t.to;;){let f=e.childAfter(u);if(!f||f==i)return null;if(!f.type.isSkipped){if(f.from>=o)return null;let d=/^ */.exec(r.text.slice(t.to-r.from))[0].length;return{from:t.from,to:t.to+d}}u=f.to}}function kO(n,e,t,i,s){let r=n.textAfter,o=r.match(/^\s*/)[0].length,u=i&&r.slice(o,o+i.length)==i||s==n.pos+o,f=SO(n);return f?u?n.column(f.from):n.column(f.to):n.baseIndent+(u?0:n.unit*t)}const CO=200;function AO(){return ze.transactionFilter.of(n=>{if(!n.docChanged||!n.isUserEvent("input.type")&&!n.isUserEvent("input.complete"))return n;let e=n.startState.languageDataAt("indentOnInput",n.startState.selection.main.head);if(!e.length)return n;let t=n.newDoc,{head:i}=n.newSelection.main,s=t.lineAt(i);if(i>s.from+CO)return n;let r=t.sliceString(s.from,i);if(!e.some(d=>d.test(r)))return n;let{state:o}=n,u=-1,f=[];for(let{head:d}of o.selection.ranges){let p=o.doc.lineAt(d);if(p.from==u)continue;u=p.from;let b=Tg(o,p.from);if(b==null)continue;let x=/^\s*/.exec(p.text)[0],w=yo(o,b);x!=w&&f.push({from:p.from,to:p.from+x.length,insert:w})}return f.length?[n,{changes:f,sequential:!0}]:n})}const MO=ce.define(),TO=new Le;function NO(n,e,t){let i=Gt(n);if(i.lengtht)continue;if(r&&u.from=e&&d.to>t&&(r=d)}}return r}function EO(n){let e=n.lastChild;return e&&e.to==n.to&&e.type.isError}function Ju(n,e,t){for(let i of n.facet(MO)){let s=i(n,e,t);if(s)return s}return NO(n,e,t)}function zS(n,e){let t=e.mapPos(n.from,1),i=e.mapPos(n.to,-1);return t>=i?void 0:{from:t,to:i}}const Mh=Me.define({map:zS}),jo=Me.define({map:zS});function HS(n){let e=[];for(let{head:t}of n.state.selection.ranges)e.some(i=>i.from<=t&&i.to>=t)||e.push(n.lineBlockAt(t));return e}const vs=It.define({create(){return we.none},update(n,e){e.isUserEvent("delete")&&e.changes.iterChangedRanges((t,i)=>n=Tv(n,t,i)),n=n.map(e.changes);for(let t of e.effects)if(t.is(Mh)&&!DO(n,t.value.from,t.value.to)){let{preparePlaceholder:i}=e.state.facet(qS),s=i?we.replace({widget:new zO(i(e.state,t.value))}):Nv;n=n.update({add:[s.range(t.value.from,t.value.to)]})}else t.is(jo)&&(n=n.update({filter:(i,s)=>t.value.from!=i||t.value.to!=s,filterFrom:t.value.from,filterTo:t.value.to}));return e.selection&&(n=Tv(n,e.selection.main.head)),n},provide:n=>re.decorations.from(n),toJSON(n,e){let t=[];return n.between(0,e.doc.length,(i,s)=>{t.push(i,s)}),t},fromJSON(n){if(!Array.isArray(n)||n.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let t=0;t{se&&(i=!0)}),i?n.update({filterFrom:e,filterTo:t,filter:(s,r)=>s>=t||r<=e}):n}function eh(n,e,t){var i;let s=null;return(i=n.field(vs,!1))===null||i===void 0||i.between(e,t,(r,o)=>{(!s||s.from>r)&&(s={from:r,to:o})}),s}function DO(n,e,t){let i=!1;return n.between(e,e,(s,r)=>{s==e&&r==t&&(i=!0)}),i}function VS(n,e){return n.field(vs,!1)?e:e.concat(Me.appendConfig.of(PS()))}const OO=n=>{for(let e of HS(n)){let t=Ju(n.state,e.from,e.to);if(t)return n.dispatch({effects:VS(n.state,[Mh.of(t),US(n,t)])}),!0}return!1},jO=n=>{if(!n.state.field(vs,!1))return!1;let e=[];for(let t of HS(n)){let i=eh(n.state,t.from,t.to);i&&e.push(jo.of(i),US(n,i,!1))}return e.length&&n.dispatch({effects:e}),e.length>0};function US(n,e,t=!0){let i=n.state.doc.lineAt(e.from).number,s=n.state.doc.lineAt(e.to).number;return re.announce.of(`${n.state.phrase(t?"Folded lines":"Unfolded lines")} ${i} ${n.state.phrase("to")} ${s}.`)}const RO=n=>{let{state:e}=n,t=[];for(let i=0;i{let e=n.state.field(vs,!1);if(!e||!e.size)return!1;let t=[];return e.between(0,n.state.doc.length,(i,s)=>{t.push(jo.of({from:i,to:s}))}),n.dispatch({effects:t}),!0},LO=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:OO},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:jO},{key:"Ctrl-Alt-[",run:RO},{key:"Ctrl-Alt-]",run:_O}],BO={placeholderDOM:null,preparePlaceholder:null,placeholderText:"…"},qS=ce.define({combine(n){return Si(n,BO)}});function PS(n){return[vs,UO]}function KS(n,e){let{state:t}=n,i=t.facet(qS),s=o=>{let u=n.lineBlockAt(n.posAtDOM(o.target)),f=eh(n.state,u.from,u.to);f&&n.dispatch({effects:jo.of(f)}),o.preventDefault()};if(i.placeholderDOM)return i.placeholderDOM(n,s,e);let r=document.createElement("span");return r.textContent=i.placeholderText,r.setAttribute("aria-label",t.phrase("folded code")),r.title=t.phrase("unfold"),r.className="cm-foldPlaceholder",r.onclick=s,r}const Nv=we.replace({widget:new class extends ki{toDOM(n){return KS(n,null)}}});class zO extends ki{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return KS(e,this.value)}}const HO={openText:"⌄",closedText:"›",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class Mm extends Qi{constructor(e,t){super(),this.config=e,this.open=t}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let t=document.createElement("span");return t.textContent=this.open?this.config.openText:this.config.closedText,t.title=e.state.phrase(this.open?"Fold line":"Unfold line"),t}}function VO(n={}){let e={...HO,...n},t=new Mm(e,!0),i=new Mm(e,!1),s=ft.fromClass(class{constructor(o){this.from=o.viewport.from,this.markers=this.buildMarkers(o)}update(o){(o.docChanged||o.viewportChanged||o.startState.facet(Ll)!=o.state.facet(Ll)||o.startState.field(vs,!1)!=o.state.field(vs,!1)||Gt(o.startState)!=Gt(o.state)||e.foldingChanged(o))&&(this.markers=this.buildMarkers(o.view))}buildMarkers(o){let u=new Fi;for(let f of o.viewportLineBlocks){let d=eh(o.state,f.from,f.to)?i:Ju(o.state,f.from,f.to)?t:null;d&&u.add(f.from,f.from,d)}return u.finish()}}),{domEventHandlers:r}=e;return[s,YD({class:"cm-foldGutter",markers(o){var u;return((u=o.plugin(s))===null||u===void 0?void 0:u.markers)||je.empty},initialSpacer(){return new Mm(e,!1)},domEventHandlers:{...r,click:(o,u,f)=>{if(r.click&&r.click(o,u,f))return!0;let d=eh(o.state,u.from,u.to);if(d)return o.dispatch({effects:jo.of(d)}),!0;let p=Ju(o.state,u.from,u.to);return p?(o.dispatch({effects:Mh.of(p)}),!0):!1}}}),PS()]}const UO=re.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}});class Ro{constructor(e,t){this.specs=e;let i;function s(u){let f=jl.newName();return(i||(i=Object.create(null)))["."+f]=u,f}const r=typeof t.all=="string"?t.all:t.all?s(t.all):void 0,o=t.scope;this.scope=o instanceof Fn?u=>u.prop(pa)==o.data:o?u=>u==o:void 0,this.style=RS(e.map(u=>({tag:u.tag,class:u.class||s(Object.assign({},u,{tag:null}))})),{all:r}).style,this.module=i?new jl(i):null,this.themeType=t.themeType}static define(e,t){return new Ro(e,t||{})}}const Ep=ce.define(),GS=ce.define({combine(n){return n.length?[n[0]]:null}});function Tm(n){let e=n.facet(Ep);return e.length?e:n.facet(GS)}function IS(n,e){let t=[PO],i;return n instanceof Ro&&(n.module&&t.push(re.styleModule.of(n.module)),i=n.themeType),e!=null&&e.fallback?t.push(GS.of(n)):i?t.push(Ep.computeN([re.darkTheme],s=>s.facet(re.darkTheme)==(i=="dark")?[n]:[])):t.push(Ep.of(n)),t}class qO{constructor(e){this.markCache=Object.create(null),this.tree=Gt(e.state),this.decorations=this.buildDeco(e,Tm(e.state)),this.decoratedTo=e.viewport.to}update(e){let t=Gt(e.state),i=Tm(e.state),s=i!=Tm(e.startState),{viewport:r}=e.view,o=e.changes.mapPos(this.decoratedTo,1);t.length=r.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=o):(t!=this.tree||e.viewportChanged||s)&&(this.tree=t,this.decorations=this.buildDeco(e.view,i),this.decoratedTo=r.to)}buildDeco(e,t){if(!t||!this.tree.length)return we.none;let i=new Fi;for(let{from:s,to:r}of e.visibleRanges)cO(this.tree,t,(o,u,f)=>{i.add(o,u,this.markCache[f]||(this.markCache[f]=we.mark({class:f})))},s,r);return i.finish()}}const PO=Ss.high(ft.fromClass(qO,{decorations:n=>n.decorations})),KO=Ro.define([{tag:Y.meta,color:"#404740"},{tag:Y.link,textDecoration:"underline"},{tag:Y.heading,textDecoration:"underline",fontWeight:"bold"},{tag:Y.emphasis,fontStyle:"italic"},{tag:Y.strong,fontWeight:"bold"},{tag:Y.strikethrough,textDecoration:"line-through"},{tag:Y.keyword,color:"#708"},{tag:[Y.atom,Y.bool,Y.url,Y.contentSeparator,Y.labelName],color:"#219"},{tag:[Y.literal,Y.inserted],color:"#164"},{tag:[Y.string,Y.deleted],color:"#a11"},{tag:[Y.regexp,Y.escape,Y.special(Y.string)],color:"#e40"},{tag:Y.definition(Y.variableName),color:"#00f"},{tag:Y.local(Y.variableName),color:"#30a"},{tag:[Y.typeName,Y.namespace],color:"#085"},{tag:Y.className,color:"#167"},{tag:[Y.special(Y.variableName),Y.macroName],color:"#256"},{tag:Y.definition(Y.propertyName),color:"#00c"},{tag:Y.comment,color:"#940"},{tag:Y.invalid,color:"#f00"}]),GO=re.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),YS=1e4,WS="()[]{}",FS=ce.define({combine(n){return Si(n,{afterCursor:!0,brackets:WS,maxScanDistance:YS,renderMatch:WO})}}),IO=we.mark({class:"cm-matchingBracket"}),YO=we.mark({class:"cm-nonmatchingBracket"});function WO(n){let e=[],t=n.matched?IO:YO;return e.push(t.range(n.start.from,n.start.to)),n.end&&e.push(t.range(n.end.from,n.end.to)),e}function Ev(n){let e=[],t=n.facet(FS);for(let i of n.selection.ranges){if(!i.empty)continue;let s=yi(n,i.head,-1,t)||i.head>0&&yi(n,i.head-1,1,t)||t.afterCursor&&(yi(n,i.head,1,t)||i.headn.decorations}),XO=[FO,GO];function QO(n={}){return[FS.of(n),XO]}const ZO=new Le;function Dp(n,e,t){let i=n.prop(e<0?Le.openedBy:Le.closedBy);if(i)return i;if(n.name.length==1){let s=t.indexOf(n.name);if(s>-1&&s%2==(e<0?1:0))return[t[s+e]]}return null}function Op(n){let e=n.type.prop(ZO);return e?e(n.node):n}function yi(n,e,t,i={}){let s=i.maxScanDistance||YS,r=i.brackets||WS,o=Gt(n),u=o.resolveInner(e,t);for(let f=u;f;f=f.parent){let d=Dp(f.type,t,r);if(d&&f.from0?e>=p.from&&ep.from&&e<=p.to))return $O(n,e,t,f,p,d,r)}}return JO(n,e,t,o,u.type,s,r)}function $O(n,e,t,i,s,r,o){let u=i.parent,f={from:s.from,to:s.to},d=0,p=u==null?void 0:u.cursor();if(p&&(t<0?p.childBefore(i.from):p.childAfter(i.to)))do if(t<0?p.to<=i.from:p.from>=i.to){if(d==0&&r.indexOf(p.type.name)>-1&&p.from0)return null;let d={from:t<0?e-1:e,to:t>0?e+1:e},p=n.doc.iterRange(e,t>0?n.doc.length:0),b=0;for(let x=0;!p.next().done&&x<=r;){let w=p.value;t<0&&(x+=w.length);let S=e+x*t;for(let A=t>0?0:w.length-1,C=t>0?w.length:-1;A!=C;A+=t){let T=o.indexOf(w[A]);if(!(T<0||i.resolveInner(S+A,1).type!=s))if(T%2==0==t>0)b++;else{if(b==1)return{start:d,end:{from:S+A,to:S+A+1},matched:T>>1==f>>1};b--}}t>0&&(x+=w.length)}return p.done?{start:d,matched:!1}:null}function Dv(n,e,t,i=0,s=0){e==null&&(e=n.search(/[^\s\u00a0]/),e==-1&&(e=n.length));let r=s;for(let o=i;o=this.string.length}sol(){return this.pos==0}peek(){return this.string.charAt(this.pos)||void 0}next(){if(this.post}eatSpace(){let e=this.pos;for(;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e}skipToEnd(){this.pos=this.string.length}skipTo(e){let t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0}backUp(e){this.pos-=e}column(){return this.lastColumnPosi?o.toLowerCase():o,r=this.string.substr(this.pos,e.length);return s(r)==s(e)?(t!==!1&&(this.pos+=e.length),!0):null}else{let s=this.string.slice(this.pos).match(e);return s&&s.index>0?null:(s&&t!==!1&&(this.pos+=s[0].length),s)}}current(){return this.string.slice(this.start,this.pos)}}function e8(n){return{name:n.name||"",token:n.token,blankLine:n.blankLine||(()=>{}),startState:n.startState||(()=>!0),copyState:n.copyState||t8,indent:n.indent||(()=>null),languageData:n.languageData||{},tokenTable:n.tokenTable||Og,mergeTokens:n.mergeTokens!==!1}}function t8(n){if(typeof n!="object")return n;let e={};for(let t in n){let i=n[t];e[t]=i instanceof Array?i.slice():i}return e}const Ov=new WeakMap;class Eg extends Fn{constructor(e){let t=fO(e.languageData),i=e8(e),s,r=new class extends cw{createParse(o,u,f){return new i8(s,o,u,f)}};super(t,r,[],e.name),this.topNode=a8(t,this),s=this,this.streamParser=i,this.stateAfter=new Le({perNode:!0}),this.tokenTable=e.tokenTable?new JS(i.tokenTable):s8}static define(e){return new Eg(e)}getIndent(e){let t,{overrideIndentation:i}=e.options;i&&(t=Ov.get(e.state),t!=null&&t1e4)return null;for(;r=i&&t+e.length<=s&&e.prop(n.stateAfter);if(r)return{state:n.streamParser.copyState(r),pos:t+e.length};for(let o=e.children.length-1;o>=0;o--){let u=e.children[o],f=t+e.positions[o],d=u instanceof st&&f=e.length)return e;!s&&t==0&&e.type==n.topNode&&(s=!0);for(let r=e.children.length-1;r>=0;r--){let o=e.positions[r],u=e.children[r],f;if(ot&&Dg(n,r.tree,0-r.offset,t,u),d;if(f&&f.pos<=i&&(d=QS(n,r.tree,t+r.offset,f.pos+r.offset,!1)))return{state:f.state,tree:d}}return{state:n.streamParser.startState(s?xs(s):4),tree:st.empty}}class i8{constructor(e,t,i,s){this.lang=e,this.input=t,this.fragments=i,this.ranges=s,this.stoppedAt=null,this.chunks=[],this.chunkPos=[],this.chunk=[],this.chunkReused=void 0,this.rangeIndex=0,this.to=s[s.length-1].to;let r=Ea.get(),o=s[0].from,{state:u,tree:f}=n8(e,i,o,this.to,r==null?void 0:r.state);this.state=u,this.parsedPos=this.chunkStart=o+f.length;for(let d=0;dd.from<=r.viewport.from&&d.to>=r.viewport.from)&&(this.state=this.lang.streamParser.startState(xs(r.state)),r.skipUntilInView(this.parsedPos,r.viewport.from),this.parsedPos=r.viewport.from),this.moveRangeIndex()}advance(){let e=Ea.get(),t=this.stoppedAt==null?this.to:Math.min(this.to,this.stoppedAt),i=Math.min(t,this.chunkStart+512);for(e&&(i=Math.min(i,e.viewport.to));this.parsedPos=t?this.finish():e&&this.parsedPos>=e.viewport.to?(e.skipUntilInView(this.parsedPos,t),this.finish()):null}stopAt(e){this.stoppedAt=e}lineAfter(e){let t=this.input.chunk(e);if(this.input.lineChunks)t==` +`){[e,t]=Aa(this,e,t);let s="";for(let r=0,o=0;re&&r&&(s+=i),eo&&(s+=u.sliceString(e-o,t-o,i)),o=f+1}return s}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof di))return 0;let i=0,[s,r,o,u]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;s+=t,r+=t){if(s==o||r==u)return i;let f=this.children[s],d=e.children[r];if(f!=d)return i+f.scanIdentical(d,t);i+=f.length+1}}static from(e,t=e.reduce((i,s)=>i+s.length+1,-1)){let i=0;for(let w of e)i+=w.lines;if(i<32){let w=[];for(let S of e)S.flatten(w);return new pt(w,t)}let s=Math.max(32,i>>5),r=s<<1,o=s>>1,u=[],f=0,d=-1,p=[];function b(w){let S;if(w.lines>r&&w instanceof di)for(let A of w.children)b(A);else w.lines>o&&(f>o||!f)?(x(),u.push(w)):w instanceof pt&&f&&(S=p[p.length-1])instanceof pt&&w.lines+S.lines<=32?(f+=w.lines,d+=w.length+1,p[p.length-1]=new pt(S.text.concat(w.text),S.length+1+w.length)):(f+w.lines>s&&x(),f+=w.lines,d+=w.length+1,p.push(w))}function x(){f!=0&&(u.push(p.length==1?p[0]:di.from(p,d)),d=-1,f=p.length=0)}for(let w of e)b(w);return x(),u.length==1?u[0]:new di(u,t)}}qe.empty=new pt([""],0);function YN(n){let e=-1;for(let t of n)e+=t.length+1;return e}function Du(n,e,t=0,i=1e9){for(let s=0,r=0,o=!0;r=t&&(f>i&&(u=u.slice(0,i-s)),s0?1:(e instanceof pt?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,s=this.nodes[i],r=this.offsets[i],o=r>>1,u=s instanceof pt?s.text.length:s.children.length;if(o==(t>0?u:0)){if(i==0)return this.done=!0,this.value="",this;t>0&&this.offsets[i-1]++,this.nodes.pop(),this.offsets.pop()}else if((r&1)==(t>0?0:1)){if(this.offsets[i]+=t,e==0)return this.lineBreak=!0,this.value=` +`,this;e--}else if(s instanceof pt){let f=s.text[o+(t<0?-1:0)];if(this.offsets[i]+=t,f.length>Math.max(0,e))return this.value=e==0?f:t>0?f.slice(e):f.slice(0,f.length-e),this;e-=f.length}else{let f=s.children[o+(t<0?-1:0)];e>f.length?(e-=f.length,this.offsets[i]+=t):(t<0&&this.offsets[i]--,this.nodes.push(f),this.offsets.push(t>0?1:(f instanceof pt?f.text.length:f.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class mw{constructor(e,t,i){this.value="",this.done=!1,this.cursor=new Fr(e,t>i?-1:1),this.pos=t>i?e.length:0,this.from=Math.min(t,i),this.to=Math.max(t,i)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let i=t<0?this.pos-this.from:this.to-this.pos;e>i&&(e=i),i-=e;let{value:s}=this.cursor.next(e);return this.pos+=(s.length+e)*t,this.value=s.length<=i?s:t<0?s.slice(s.length-i):s.slice(0,i),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class pw{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:i,value:s}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=s,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol<"u"&&(qe.prototype[Symbol.iterator]=function(){return this.iter()},Fr.prototype[Symbol.iterator]=mw.prototype[Symbol.iterator]=pw.prototype[Symbol.iterator]=function(){return this});class WN{constructor(e,t,i,s){this.from=e,this.to=t,this.number=i,this.text=s}get length(){return this.to-this.from}}function Aa(n,e,t){return e=Math.max(0,Math.min(n.length,e)),[e,Math.max(e,Math.min(n.length,t))]}function jt(n,e,t=!0,i=!0){return GN(n,e,t,i)}function FN(n){return n>=56320&&n<57344}function XN(n){return n>=55296&&n<56320}function rn(n,e){let t=n.charCodeAt(e);if(!XN(t)||e+1==n.length)return t;let i=n.charCodeAt(e+1);return FN(i)?(t-55296<<10)+(i-56320)+65536:t}function og(n){return n<=65535?String.fromCharCode(n):(n-=65536,String.fromCharCode((n>>10)+55296,(n&1023)+56320))}function mi(n){return n<65536?1:2}const Xm=/\r\n?|\n/;var Qt=(function(n){return n[n.Simple=0]="Simple",n[n.TrackDel=1]="TrackDel",n[n.TrackBefore=2]="TrackBefore",n[n.TrackAfter=3]="TrackAfter",n})(Qt||(Qt={}));class vi{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;te)return r+(e-s);r+=u}else{if(i!=Qt.Simple&&d>=e&&(i==Qt.TrackDel&&se||i==Qt.TrackBefore&&se))return null;if(d>e||d==e&&t<0&&!u)return e==s||t<0?r:r+f;r+=f}s=d}if(e>s)throw new RangeError(`Position ${e} is out of range for changeset of length ${s}`);return r}touchesRange(e,t=e){for(let i=0,s=0;i=0&&s<=t&&u>=e)return st?"cover":!0;s=u}return!1}toString(){let e="";for(let t=0;t=0?":"+s:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new vi(e)}static create(e){return new vi(e)}}class Ct extends vi{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return Qm(this,(t,i,s,r,o)=>e=e.replace(s,s+(i-t),o),!1),e}mapDesc(e,t=!1){return Zm(this,e,t,!0)}invert(e){let t=this.sections.slice(),i=[];for(let s=0,r=0;s=0){t[s]=u,t[s+1]=o;let f=s>>1;for(;i.length0&&Nl(i,t,r.text),r.forward(p),u+=p}let d=e[o++];for(;u>1].toJSON()))}return e}static of(e,t,i){let s=[],r=[],o=0,u=null;function f(p=!1){if(!p&&!s.length)return;ox||b<0||x>t)throw new RangeError(`Invalid change range ${b} to ${x} (in doc of length ${t})`);let S=w?typeof w=="string"?qe.of(w.split(i||Xm)):w:qe.empty,A=S.length;if(b==x&&A==0)return;bo&&Kt(s,b-o,-1),Kt(s,x-b,A),Nl(r,s,S),o=x}}return d(e),f(!u),u}static empty(e){return new Ct(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],i=[];for(let s=0;su&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(r.length==1)t.push(r[0],0);else{for(;i.length=0&&t<=0&&t==n[s+1]?n[s]+=e:s>=0&&e==0&&n[s]==0?n[s+1]+=t:i?(n[s]+=e,n[s+1]+=t):n.push(e,t)}function Nl(n,e,t){if(t.length==0)return;let i=e.length-2>>1;if(i>1])),!(t||o==n.sections.length||n.sections[o+1]<0);)u=n.sections[o++],f=n.sections[o++];e(s,d,r,p,b),s=d,r=p}}}function Zm(n,e,t,i=!1){let s=[],r=i?[]:null,o=new so(n),u=new so(e);for(let f=-1;;){if(o.done&&u.len||u.done&&o.len)throw new Error("Mismatched change set lengths");if(o.ins==-1&&u.ins==-1){let d=Math.min(o.len,u.len);Kt(s,d,-1),o.forward(d),u.forward(d)}else if(u.ins>=0&&(o.ins<0||f==o.i||o.off==0&&(u.len=0&&f=0){let d=0,p=o.len;for(;p;)if(u.ins==-1){let b=Math.min(p,u.len);d+=b,p-=b,u.forward(b)}else if(u.ins==0&&u.lenf||o.ins>=0&&o.len>f)&&(u||i.length>d),r.forward2(f),o.forward(f)}}}}class so{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return t>=e.length?qe.empty:e[t]}textBit(e){let{inserted:t}=this.set,i=this.i-2>>1;return i>=t.length&&!e?qe.empty:t[i].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class hs{constructor(e,t,i){this.from=e,this.to=t,this.flags=i}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}get goalColumn(){let e=this.flags>>6;return e==16777215?void 0:e}map(e,t=-1){let i,s;return this.empty?i=s=e.mapPos(this.from,t):(i=e.mapPos(this.from,1),s=e.mapPos(this.to,-1)),i==this.from&&s==this.to?this:new hs(i,s,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return X.range(e,t);let i=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return X.range(this.anchor,i)}eq(e,t=!1){return this.anchor==e.anchor&&this.head==e.head&&this.goalColumn==e.goalColumn&&(!t||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return X.range(e.anchor,e.head)}static create(e,t,i){return new hs(e,t,i)}}class X{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:X.create(this.ranges.map(i=>i.map(e,t)),this.mainIndex)}eq(e,t=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let i=0;ie.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new X(e.ranges.map(t=>hs.fromJSON(t)),e.main)}static single(e,t=e){return new X([X.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let i=0,s=0;se?8:0)|r)}static normalized(e,t=0){let i=e[t];e.sort((s,r)=>s.from-r.from),t=e.indexOf(i);for(let s=1;sr.head?X.range(f,u):X.range(u,f))}}return new X(e,t)}}function yw(n,e){for(let t of n.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}let cg=0;class ce{constructor(e,t,i,s,r){this.combine=e,this.compareInput=t,this.compare=i,this.isStatic=s,this.id=cg++,this.default=e([]),this.extensions=typeof r=="function"?r(this):r}get reader(){return this}static define(e={}){return new ce(e.combine||(t=>t),e.compareInput||((t,i)=>t===i),e.compare||(e.combine?(t,i)=>t===i:ug),!!e.static,e.enables)}of(e){return new Ou([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Ou(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Ou(e,this,2,t)}from(e,t){return t||(t=i=>i),this.compute([e],i=>t(i.field(e)))}}function ug(n,e){return n==e||n.length==e.length&&n.every((t,i)=>t===e[i])}class Ou{constructor(e,t,i,s){this.dependencies=e,this.facet=t,this.type=i,this.value=s,this.id=cg++}dynamicSlot(e){var t;let i=this.value,s=this.facet.compareInput,r=this.id,o=e[r]>>1,u=this.type==2,f=!1,d=!1,p=[];for(let b of this.dependencies)b=="doc"?f=!0:b=="selection"?d=!0:(((t=e[b.id])!==null&&t!==void 0?t:1)&1)==0&&p.push(e[b.id]);return{create(b){return b.values[o]=i(b),1},update(b,x){if(f&&x.docChanged||d&&(x.docChanged||x.selection)||$m(b,p)){let w=i(b);if(u?!Nx(w,b.values[o],s):!s(w,b.values[o]))return b.values[o]=w,1}return 0},reconfigure:(b,x)=>{let w,S=x.config.address[r];if(S!=null){let A=Pu(x,S);if(this.dependencies.every(C=>C instanceof ce?x.facet(C)===b.facet(C):C instanceof It?x.field(C,!1)==b.field(C,!1):!0)||(u?Nx(w=i(b),A,s):s(w=i(b),A)))return b.values[o]=A,0}else w=i(b);return b.values[o]=w,1}}}}function Nx(n,e,t){if(n.length!=e.length)return!1;for(let i=0;in[f.id]),s=t.map(f=>f.type),r=i.filter(f=>!(f&1)),o=n[e.id]>>1;function u(f){let d=[];for(let p=0;pi===s),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(iu).find(i=>i.field==this);return((t==null?void 0:t.create)||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:i=>(i.values[t]=this.create(i),1),update:(i,s)=>{let r=i.values[t],o=this.updateF(r,s);return this.compareF(r,o)?0:(i.values[t]=o,1)},reconfigure:(i,s)=>{let r=i.facet(iu),o=s.facet(iu),u;return(u=r.find(f=>f.field==this))&&u!=o.find(f=>f.field==this)?(i.values[t]=u.create(i),1):s.config.address[this.id]!=null?(i.values[t]=s.field(this),0):(i.values[t]=this.create(i),1)}}}init(e){return[this,iu.of({field:this,create:e})]}get extension(){return this}}const cs={lowest:4,low:3,default:2,high:1,highest:0};function zr(n){return e=>new bw(e,n)}const Ss={highest:zr(cs.highest),high:zr(cs.high),default:zr(cs.default),low:zr(cs.low),lowest:zr(cs.lowest)};class bw{constructor(e,t){this.inner=e,this.prec=t}}class gh{of(e){return new Jm(this,e)}reconfigure(e){return gh.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class Jm{constructor(e,t){this.compartment=e,this.inner=t}}class qu{constructor(e,t,i,s,r,o){for(this.base=e,this.compartments=t,this.dynamicSlots=i,this.address=s,this.staticValues=r,this.facets=o,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,t,i){let s=[],r=Object.create(null),o=new Map;for(let x of ZN(e,t,o))x instanceof It?s.push(x):(r[x.facet.id]||(r[x.facet.id]=[])).push(x);let u=Object.create(null),f=[],d=[];for(let x of s)u[x.id]=d.length<<1,d.push(w=>x.slot(w));let p=i==null?void 0:i.config.facets;for(let x in r){let w=r[x],S=w[0].facet,A=p&&p[x]||[];if(w.every(C=>C.type==0))if(u[S.id]=f.length<<1|1,ug(A,w))f.push(i.facet(S));else{let C=S.combine(w.map(T=>T.value));f.push(i&&S.compare(C,i.facet(S))?i.facet(S):C)}else{for(let C of w)C.type==0?(u[C.id]=f.length<<1|1,f.push(C.value)):(u[C.id]=d.length<<1,d.push(T=>C.dynamicSlot(T)));u[S.id]=d.length<<1,d.push(C=>QN(C,S,w))}}let b=d.map(x=>x(u));return new qu(e,o,b,u,f,r)}}function ZN(n,e,t){let i=[[],[],[],[],[]],s=new Map;function r(o,u){let f=s.get(o);if(f!=null){if(f<=u)return;let d=i[f].indexOf(o);d>-1&&i[f].splice(d,1),o instanceof Jm&&t.delete(o.compartment)}if(s.set(o,u),Array.isArray(o))for(let d of o)r(d,u);else if(o instanceof Jm){if(t.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let d=e.get(o.compartment)||o.inner;t.set(o.compartment,d),r(d,u)}else if(o instanceof bw)r(o.inner,o.prec);else if(o instanceof It)i[u].push(o),o.provides&&r(o.provides,u);else if(o instanceof Ou)i[u].push(o),o.facet.extensions&&r(o.facet.extensions,cs.default);else{let d=o.extension;if(!d)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);r(d,u)}}return r(n,cs.default),i.reduce((o,u)=>o.concat(u))}function Xr(n,e){if(e&1)return 2;let t=e>>1,i=n.status[t];if(i==4)throw new Error("Cyclic dependency between fields and/or facets");if(i&2)return i;n.status[t]=4;let s=n.computeSlot(n,n.config.dynamicSlots[t]);return n.status[t]=2|s}function Pu(n,e){return e&1?n.config.staticValues[e>>1]:n.values[e>>1]}const xw=ce.define(),ep=ce.define({combine:n=>n.some(e=>e),static:!0}),vw=ce.define({combine:n=>n.length?n[0]:void 0,static:!0}),ww=ce.define(),Sw=ce.define(),kw=ce.define(),Cw=ce.define({combine:n=>n.length?n[0]:!1});class wi{constructor(e,t){this.type=e,this.value=t}static define(){return new $N}}class $N{of(e){return new wi(this,e)}}class JN{constructor(e){this.map=e}of(e){return new Me(this,e)}}class Me{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new Me(this.type,t)}is(e){return this.type==e}static define(e={}){return new JN(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let i=[];for(let s of e){let r=s.map(t);r&&i.push(r)}return i}}Me.reconfigure=Me.define();Me.appendConfig=Me.define();class At{constructor(e,t,i,s,r,o){this.startState=e,this.changes=t,this.selection=i,this.effects=s,this.annotations=r,this.scrollIntoView=o,this._doc=null,this._state=null,i&&yw(i,t.newLength),r.some(u=>u.type==At.time)||(this.annotations=r.concat(At.time.of(Date.now())))}static create(e,t,i,s,r,o){return new At(e,t,i,s,r,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(At.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}}At.time=wi.define();At.userEvent=wi.define();At.addToHistory=wi.define();At.remote=wi.define();function eE(n,e){let t=[];for(let i=0,s=0;;){let r,o;if(i=n[i]))r=n[i++],o=n[i++];else if(s=0;s--){let r=i[s](n);r instanceof At?n=r:Array.isArray(r)&&r.length==1&&r[0]instanceof At?n=r[0]:n=Mw(e,ba(r),!1)}return n}function nE(n){let e=n.startState,t=e.facet(kw),i=n;for(let s=t.length-1;s>=0;s--){let r=t[s](n);r&&Object.keys(r).length&&(i=Aw(i,tp(e,r,n.changes.newLength),!0))}return i==n?n:At.create(e,n.changes,n.selection,i.effects,i.annotations,i.scrollIntoView)}const iE=[];function ba(n){return n==null?iE:Array.isArray(n)?n:[n]}var at=(function(n){return n[n.Word=0]="Word",n[n.Space=1]="Space",n[n.Other=2]="Other",n})(at||(at={}));const lE=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let np;try{np=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function sE(n){if(np)return np.test(n);for(let e=0;e"€"&&(t.toUpperCase()!=t.toLowerCase()||lE.test(t)))return!0}return!1}function aE(n){return e=>{if(!/\S/.test(e))return at.Space;if(sE(e))return at.Word;for(let t=0;t-1)return at.Word;return at.Other}}class ze{constructor(e,t,i,s,r,o){this.config=e,this.doc=t,this.selection=i,this.values=s,this.status=e.statusTemplate.slice(),this.computeSlot=r,o&&(o._state=this);for(let u=0;us.set(d,f)),t=null),s.set(u.value.compartment,u.value.extension)):u.is(Me.reconfigure)?(t=null,i=u.value):u.is(Me.appendConfig)&&(t=null,i=ba(i).concat(u.value));let r;t?r=e.startState.values.slice():(t=qu.resolve(i,s,this),r=new ze(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(f,d)=>d.reconfigure(f,this),null).values);let o=e.startState.facet(ep)?e.newSelection:e.newSelection.asSingle();new ze(t,e.newDoc,o,r,(u,f)=>f.update(u,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:X.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,i=e(t.ranges[0]),s=this.changes(i.changes),r=[i.range],o=ba(i.effects);for(let u=1;uo.spec.fromJSON(u,f)))}}return ze.create({doc:e.doc,selection:X.fromJSON(e.selection),extensions:t.extensions?s.concat([t.extensions]):s})}static create(e={}){let t=qu.resolve(e.extensions||[],new Map),i=e.doc instanceof qe?e.doc:qe.of((e.doc||"").split(t.staticFacet(ze.lineSeparator)||Xm)),s=e.selection?e.selection instanceof X?e.selection:X.single(e.selection.anchor,e.selection.head):X.single(0);return yw(s,i.length),t.staticFacet(ep)||(s=s.asSingle()),new ze(t,i,s,t.dynamicSlots.map(()=>null),(r,o)=>o.create(r),null)}get tabSize(){return this.facet(ze.tabSize)}get lineBreak(){return this.facet(ze.lineSeparator)||` +`}get readOnly(){return this.facet(Cw)}phrase(e,...t){for(let i of this.facet(ze.phrases))if(Object.prototype.hasOwnProperty.call(i,e)){e=i[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(i,s)=>{if(s=="$")return"$";let r=+(s||1);return!r||r>t.length?i:t[r-1]})),e}languageDataAt(e,t,i=-1){let s=[];for(let r of this.facet(xw))for(let o of r(this,t,i))Object.prototype.hasOwnProperty.call(o,e)&&s.push(o[e]);return s}charCategorizer(e){let t=this.languageDataAt("wordChars",e);return aE(t.length?t[0]:"")}wordAt(e){let{text:t,from:i,length:s}=this.doc.lineAt(e),r=this.charCategorizer(e),o=e-i,u=e-i;for(;o>0;){let f=jt(t,o,!1);if(r(t.slice(f,o))!=at.Word)break;o=f}for(;un.length?n[0]:4});ze.lineSeparator=vw;ze.readOnly=Cw;ze.phrases=ce.define({compare(n,e){let t=Object.keys(n),i=Object.keys(e);return t.length==i.length&&t.every(s=>n[s]==e[s])}});ze.languageData=xw;ze.changeFilter=ww;ze.transactionFilter=Sw;ze.transactionExtender=kw;gh.reconfigure=Me.define();function Si(n,e,t={}){let i={};for(let s of n)for(let r of Object.keys(s)){let o=s[r],u=i[r];if(u===void 0)i[r]=o;else if(!(u===o||o===void 0))if(Object.hasOwnProperty.call(t,r))i[r]=t[r](u,o);else throw new Error("Config merge conflict for field "+r)}for(let s in e)i[s]===void 0&&(i[s]=e[s]);return i}class Ol{eq(e){return this==e}range(e,t=e){return ao.create(e,t,this)}}Ol.prototype.startSide=Ol.prototype.endSide=0;Ol.prototype.point=!1;Ol.prototype.mapMode=Qt.TrackDel;function hg(n,e){return n==e||n.constructor==e.constructor&&n.eq(e)}class ao{constructor(e,t,i){this.from=e,this.to=t,this.value=i}static create(e,t,i){return new ao(e,t,i)}}function ip(n,e){return n.from-e.from||n.value.startSide-e.value.startSide}class fg{constructor(e,t,i,s){this.from=e,this.to=t,this.value=i,this.maxPoint=s}get length(){return this.to[this.to.length-1]}findIndex(e,t,i,s=0){let r=i?this.to:this.from;for(let o=s,u=r.length;;){if(o==u)return o;let f=o+u>>1,d=r[f]-e||(i?this.value[f].endSide:this.value[f].startSide)-t;if(f==o)return d>=0?o:u;d>=0?u=f:o=f+1}}between(e,t,i,s){for(let r=this.findIndex(t,-1e9,!0),o=this.findIndex(i,1e9,!1,r);rw||x==w&&d.startSide>0&&d.endSide<=0)continue;(w-x||d.endSide-d.startSide)<0||(o<0&&(o=x),d.point&&(u=Math.max(u,w-x)),i.push(d),s.push(x-o),r.push(w-o))}return{mapped:i.length?new fg(s,r,i,u):null,pos:o}}}class je{constructor(e,t,i,s){this.chunkPos=e,this.chunk=t,this.nextLayer=i,this.maxPoint=s}static create(e,t,i,s){return new je(e,t,i,s)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:i=!1,filterFrom:s=0,filterTo:r=this.length}=e,o=e.filter;if(t.length==0&&!o)return this;if(i&&(t=t.slice().sort(ip)),this.isEmpty)return t.length?je.of(t):this;let u=new Tw(this,null,-1).goto(0),f=0,d=[],p=new Fi;for(;u.value||f=0){let b=t[f++];p.addInner(b.from,b.to,b.value)||d.push(b)}else u.rangeIndex==1&&u.chunkIndexthis.chunkEnd(u.chunkIndex)||ru.to||r=r&&e<=r+o.length&&o.between(r,e-r,t-r,i)===!1)return}this.nextLayer.between(e,t,i)}}iter(e=0){return ro.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return ro.from(e).goto(t)}static compare(e,t,i,s,r=-1){let o=e.filter(b=>b.maxPoint>0||!b.isEmpty&&b.maxPoint>=r),u=t.filter(b=>b.maxPoint>0||!b.isEmpty&&b.maxPoint>=r),f=Ex(o,u,i),d=new Hr(o,f,r),p=new Hr(u,f,r);i.iterGaps((b,x,w)=>Dx(d,b,p,x,w,s)),i.empty&&i.length==0&&Dx(d,0,p,0,0,s)}static eq(e,t,i=0,s){s==null&&(s=999999999);let r=e.filter(p=>!p.isEmpty&&t.indexOf(p)<0),o=t.filter(p=>!p.isEmpty&&e.indexOf(p)<0);if(r.length!=o.length)return!1;if(!r.length)return!0;let u=Ex(r,o),f=new Hr(r,u,0).goto(i),d=new Hr(o,u,0).goto(i);for(;;){if(f.to!=d.to||!lp(f.active,d.active)||f.point&&(!d.point||!hg(f.point,d.point)))return!1;if(f.to>s)return!0;f.next(),d.next()}}static spans(e,t,i,s,r=-1){let o=new Hr(e,null,r).goto(t),u=t,f=o.openStart;for(;;){let d=Math.min(o.to,i);if(o.point){let p=o.activeForPoint(o.to),b=o.pointFromu&&(s.span(u,d,o.active,f),f=o.openEnd(d));if(o.to>i)return f+(o.point&&o.to>i?1:0);u=o.to,o.next()}}static of(e,t=!1){let i=new Fi;for(let s of e instanceof ao?[e]:t?rE(e):e)i.add(s.from,s.to,s.value);return i.finish()}static join(e){if(!e.length)return je.empty;let t=e[e.length-1];for(let i=e.length-2;i>=0;i--)for(let s=e[i];s!=je.empty;s=s.nextLayer)t=new je(s.chunkPos,s.chunk,t,Math.max(s.maxPoint,t.maxPoint));return t}}je.empty=new je([],[],null,-1);function rE(n){if(n.length>1)for(let e=n[0],t=1;t0)return n.slice().sort(ip);e=i}return n}je.empty.nextLayer=je.empty;class Fi{finishChunk(e){this.chunks.push(new fg(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,t,i){this.addInner(e,t,i)||(this.nextLayer||(this.nextLayer=new Fi)).add(e,t,i)}addInner(e,t,i){let s=e-this.lastTo||i.startSide-this.last.endSide;if(s<=0&&(e-this.lastFrom||i.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return s<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=i,this.lastFrom=e,this.lastTo=t,this.value.push(i),i.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),!0)}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);let i=t.value.length-1;return this.last=t.value[i],this.lastFrom=t.from[i]+e,this.lastTo=t.to[i]+e,!0}finish(){return this.finishInner(je.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let t=je.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}}function Ex(n,e,t){let i=new Map;for(let r of n)for(let o=0;o=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=i&&s.push(new Tw(o,t,i,r));return s.length==1?s[0]:new ro(s)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(let i of this.heap)i.goto(e,t);for(let i=this.heap.length>>1;i>=0;i--)om(this.heap,i);return this.next(),this}forward(e,t){for(let i of this.heap)i.forward(e,t);for(let i=this.heap.length>>1;i>=0;i--)om(this.heap,i);(this.to-e||this.value.endSide-t)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),om(this.heap,0)}}}function om(n,e){for(let t=n[e];;){let i=(e<<1)+1;if(i>=n.length)break;let s=n[i];if(i+1=0&&(s=n[i+1],i++),t.compare(s)<0)break;n[i]=t,n[e]=s,e=i}}class Hr{constructor(e,t,i){this.minPoint=i,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=ro.from(e,t,i)}goto(e,t=-1e9){return this.cursor.goto(e,t),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=t,this.openStart=-1,this.next(),this}forward(e,t){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-t)<0;)this.removeActive(this.minActive);this.cursor.forward(e,t)}removeActive(e){lu(this.active,e),lu(this.activeTo,e),lu(this.activeRank,e),this.minActive=Ox(this.active,this.activeTo)}addActive(e){let t=0,{value:i,to:s,rank:r}=this.cursor;for(;t0;)t++;su(this.active,t,i),su(this.activeTo,t,s),su(this.activeRank,t,r),e&&su(e,t,this.cursor.from),this.minActive=Ox(this.active,this.activeTo)}next(){let e=this.to,t=this.point;this.point=null;let i=this.openStart<0?[]:null;for(;;){let s=this.minActive;if(s>-1&&(this.activeTo[s]-this.cursor.from||this.active[s].endSide-this.cursor.startSide)<0){if(this.activeTo[s]>e){this.to=this.activeTo[s],this.endSide=this.active[s].endSide;break}this.removeActive(s),i&&lu(i,s)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let r=this.cursor.value;if(!r.point)this.addActive(i),this.cursor.next();else if(t&&this.cursor.to==this.to&&this.cursor.from=0&&i[s]=0&&!(this.activeRank[i]e||this.activeTo[i]==e&&this.active[i].endSide>=this.point.endSide)&&t.push(this.active[i]);return t.reverse()}openEnd(e){let t=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>e;i--)t++;return t}}function Dx(n,e,t,i,s,r){n.goto(e),t.goto(i);let o=i+s,u=i,f=i-e,d=!!r.boundChange;for(let p=!1;;){let b=n.to+f-t.to,x=b||n.endSide-t.endSide,w=x<0?n.to+f:t.to,S=Math.min(w,o);if(n.point||t.point?(n.point&&t.point&&hg(n.point,t.point)&&lp(n.activeForPoint(n.to),t.activeForPoint(t.to))||r.comparePoint(u,S,n.point,t.point),p=!1):(p&&r.boundChange(u),S>u&&!lp(n.active,t.active)&&r.compareRange(u,S,n.active,t.active),d&&So)break;u=w,x<=0&&n.next(),x>=0&&t.next()}}function lp(n,e){if(n.length!=e.length)return!1;for(let t=0;t=e;i--)n[i+1]=n[i];n[e]=t}function Ox(n,e){let t=-1,i=1e9;for(let s=0;s=e)return s;if(s==n.length)break;r+=n.charCodeAt(s)==9?t-r%t:1,s=jt(n,s)}return i===!0?-1:n.length}const ap="ͼ",jx=typeof Symbol>"u"?"__"+ap:Symbol.for(ap),rp=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),Rx=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{};class jl{constructor(e,t){this.rules=[];let{finish:i}=t||{};function s(o){return/^@/.test(o)?[o]:o.split(/,\s*/)}function r(o,u,f,d){let p=[],b=/^@(\w+)\b/.exec(o[0]),x=b&&b[1]=="keyframes";if(b&&u==null)return f.push(o[0]+";");for(let w in u){let S=u[w];if(/&/.test(w))r(w.split(/,\s*/).map(A=>o.map(C=>A.replace(/&/,C))).reduce((A,C)=>A.concat(C)),S,f);else if(S&&typeof S=="object"){if(!b)throw new RangeError("The value of a property ("+w+") should be a primitive value.");r(s(w),S,p,x)}else S!=null&&p.push(w.replace(/_.*/,"").replace(/[A-Z]/g,A=>"-"+A.toLowerCase())+": "+S+";")}(p.length||x)&&f.push((i&&!b&&!d?o.map(i):o).join(", ")+" {"+p.join(" ")+"}")}for(let o in e)r(s(o),e[o],this.rules)}getRules(){return this.rules.join(` +`)}static newName(){let e=Rx[jx]||1;return Rx[jx]=e+1,ap+e.toString(36)}static mount(e,t,i){let s=e[rp],r=i&&i.nonce;s?r&&s.setNonce(r):s=new oE(e,r),s.mount(Array.isArray(t)?t:[t],e)}}let _x=new Map;class oE{constructor(e,t){let i=e.ownerDocument||e,s=i.defaultView;if(!e.head&&e.adoptedStyleSheets&&s.CSSStyleSheet){let r=_x.get(i);if(r)return e[rp]=r;this.sheet=new s.CSSStyleSheet,_x.set(i,this)}else this.styleTag=i.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);this.modules=[],e[rp]=this}mount(e,t){let i=this.sheet,s=0,r=0;for(let o=0;o-1&&(this.modules.splice(f,1),r--,f=-1),f==-1){if(this.modules.splice(r++,0,u),i)for(let d=0;d",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},cE=typeof navigator<"u"&&/Mac/.test(navigator.platform),uE=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(var Ut=0;Ut<10;Ut++)Rl[48+Ut]=Rl[96+Ut]=String(Ut);for(var Ut=1;Ut<=24;Ut++)Rl[Ut+111]="F"+Ut;for(var Ut=65;Ut<=90;Ut++)Rl[Ut]=String.fromCharCode(Ut+32),oo[Ut]=String.fromCharCode(Ut);for(var cm in Rl)oo.hasOwnProperty(cm)||(oo[cm]=Rl[cm]);function hE(n){var e=cE&&n.metaKey&&n.shiftKey&&!n.ctrlKey&&!n.altKey||uE&&n.shiftKey&&n.key&&n.key.length==1||n.key=="Unidentified",t=!e&&n.key||(n.shiftKey?oo:Rl)[n.keyCode]||n.key||"Unidentified";return t=="Esc"&&(t="Escape"),t=="Del"&&(t="Delete"),t=="Left"&&(t="ArrowLeft"),t=="Up"&&(t="ArrowUp"),t=="Right"&&(t="ArrowRight"),t=="Down"&&(t="ArrowDown"),t}function Qe(){var n=arguments[0];typeof n=="string"&&(n=document.createElement(n));var e=1,t=arguments[1];if(t&&typeof t=="object"&&t.nodeType==null&&!Array.isArray(t)){for(var i in t)if(Object.prototype.hasOwnProperty.call(t,i)){var s=t[i];typeof s=="string"?n.setAttribute(i,s):s!=null&&(n[i]=s)}e++}for(;e2);var oe={mac:Bx||/Mac/.test(Xt.platform),windows:/Win/.test(Xt.platform),linux:/Linux|X11/.test(Xt.platform),ie:yh,ie_version:Ew?op.documentMode||6:up?+up[1]:cp?+cp[1]:0,gecko:Lx,gecko_version:Lx?+(/Firefox\/(\d+)/.exec(Xt.userAgent)||[0,0])[1]:0,chrome:!!um,chrome_version:um?+um[1]:0,ios:Bx,android:/Android\b/.test(Xt.userAgent),webkit_version:fE?+(/\bAppleWebKit\/(\d+)/.exec(Xt.userAgent)||[0,0])[1]:0,safari:hp,safari_version:hp?+(/\bVersion\/(\d+(\.\d+)?)/.exec(Xt.userAgent)||[0,0])[1]:0,tabSize:op.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function dg(n,e){for(let t in n)t=="class"&&e.class?e.class+=" "+n.class:t=="style"&&e.style?e.style+=";"+n.style:e[t]=n[t];return e}const Ku=Object.create(null);function mg(n,e,t){if(n==e)return!0;n||(n=Ku),e||(e=Ku);let i=Object.keys(n),s=Object.keys(e);if(i.length-0!=s.length-0)return!1;for(let r of i)if(r!=t&&(s.indexOf(r)==-1||n[r]!==e[r]))return!1;return!0}function dE(n,e){for(let t=n.attributes.length-1;t>=0;t--){let i=n.attributes[t].name;e[i]==null&&n.removeAttribute(i)}for(let t in e){let i=e[t];t=="style"?n.style.cssText=i:n.getAttribute(t)!=i&&n.setAttribute(t,i)}}function zx(n,e,t){let i=!1;if(e)for(let s in e)t&&s in t||(i=!0,s=="style"?n.style.cssText="":n.removeAttribute(s));if(t)for(let s in t)e&&e[s]==t[s]||(i=!0,s=="style"?n.style.cssText=t[s]:n.setAttribute(s,t[s]));return i}function mE(n){let e=Object.create(null);for(let t=0;t0?3e8:-4e8:t>0?1e8:-1e8,new gs(e,t,t,i,e.widget||null,!1)}static replace(e){let t=!!e.block,i,s;if(e.isBlockGap)i=-5e8,s=4e8;else{let{start:r,end:o}=Dw(e,t);i=(r?t?-3e8:-1:5e8)-1,s=(o?t?2e8:1:-6e8)+1}return new gs(e,i,s,t,e.widget||null,!0)}static line(e){return new Eo(e)}static set(e,t=!1){return je.of(e,t)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}}we.none=je.empty;class No extends we{constructor(e){let{start:t,end:i}=Dw(e);super(t?-1:5e8,i?1:-6e8,null,e),this.tagName=e.tagName||"span",this.attrs=e.class&&e.attributes?dg(e.attributes,{class:e.class}):e.class?{class:e.class}:e.attributes||Ku}eq(e){return this==e||e instanceof No&&this.tagName==e.tagName&&mg(this.attrs,e.attrs)}range(e,t=e){if(e>=t)throw new RangeError("Mark decorations may not be empty");return super.range(e,t)}}No.prototype.point=!1;class Eo extends we{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof Eo&&this.spec.class==e.spec.class&&mg(this.spec.attributes,e.spec.attributes)}range(e,t=e){if(t!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,t)}}Eo.prototype.mapMode=Qt.TrackBefore;Eo.prototype.point=!0;class gs extends we{constructor(e,t,i,s,r,o){super(t,i,r,e),this.block=s,this.isReplace=o,this.mapMode=s?t<=0?Qt.TrackBefore:Qt.TrackAfter:Qt.TrackDel}get type(){return this.startSide!=this.endSide?qt.WidgetRange:this.startSide<=0?qt.WidgetBefore:qt.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof gs&&pE(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,t=e){if(this.isReplace&&(e>t||e==t&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&t!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,t)}}gs.prototype.point=!0;function Dw(n,e=!1){let{inclusiveStart:t,inclusiveEnd:i}=n;return t==null&&(t=n.inclusive),i==null&&(i=n.inclusive),{start:t??e,end:i??e}}function pE(n,e){return n==e||!!(n&&e&&n.compare(e))}function xa(n,e,t,i=0){let s=t.length-1;s>=0&&t[s]+i>=n?t[s]=Math.max(t[s],e):t.push(n,e)}class co extends Ol{constructor(e,t){super(),this.tagName=e,this.attributes=t}eq(e){return e==this||e instanceof co&&this.tagName==e.tagName&&mg(this.attributes,e.attributes)}static create(e){return new co(e.tagName,e.attributes||Ku)}static set(e,t=!1){return je.of(e,t)}}co.prototype.startSide=co.prototype.endSide=-1;function uo(n){let e;return n.nodeType==11?e=n.getSelection?n:n.ownerDocument:e=n,e.getSelection()}function fp(n,e){return e?n==e||n.contains(e.nodeType!=1?e.parentNode:e):!1}function Qr(n,e){if(!e.anchorNode)return!1;try{return fp(n,e.anchorNode)}catch{return!1}}function Zr(n){return n.nodeType==3?fo(n,0,n.nodeValue.length).getClientRects():n.nodeType==1?n.getClientRects():[]}function $r(n,e,t,i){return t?Hx(n,e,t,i,-1)||Hx(n,e,t,i,1):!1}function _l(n){for(var e=0;;e++)if(n=n.previousSibling,!n)return e}function Gu(n){return n.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(n.nodeName)}function Hx(n,e,t,i,s){for(;;){if(n==t&&e==i)return!0;if(e==(s<0?0:Xi(n))){if(n.nodeName=="DIV")return!1;let r=n.parentNode;if(!r||r.nodeType!=1)return!1;e=_l(n)+(s<0?0:1),n=r}else if(n.nodeType==1){if(n=n.childNodes[e+(s<0?-1:0)],n.nodeType==1&&n.contentEditable=="false")return!1;e=s<0?Xi(n):0}else return!1}}function Xi(n){return n.nodeType==3?n.nodeValue.length:n.childNodes.length}function ho(n,e){let t=e?n.left:n.right;return{left:t,right:t,top:n.top,bottom:n.bottom}}function gE(n){let e=n.visualViewport;return e?{left:0,right:e.width,top:0,bottom:e.height}:{left:0,right:n.innerWidth,top:0,bottom:n.innerHeight}}function Ow(n,e){let t=e.width/n.offsetWidth,i=e.height/n.offsetHeight;return(t>.995&&t<1.005||!isFinite(t)||Math.abs(e.width-n.offsetWidth)<1)&&(t=1),(i>.995&&i<1.005||!isFinite(i)||Math.abs(e.height-n.offsetHeight)<1)&&(i=1),{scaleX:t,scaleY:i}}function yE(n,e,t,i,s,r,o,u){let f=n.ownerDocument,d=f.defaultView||window;for(let p=n,b=!1;p&&!b;)if(p.nodeType==1){let x,w=p==f.body,S=1,A=1;if(w)x=gE(d);else{if(/^(fixed|sticky)$/.test(getComputedStyle(p).position)&&(b=!0),p.scrollHeight<=p.clientHeight&&p.scrollWidth<=p.clientWidth){p=p.assignedSlot||p.parentNode;continue}let R=p.getBoundingClientRect();({scaleX:S,scaleY:A}=Ow(p,R)),x={left:R.left,right:R.left+p.clientWidth*S,top:R.top,bottom:R.top+p.clientHeight*A}}let C=0,T=0;if(s=="nearest")e.top0&&e.bottom>x.bottom+T&&(T=e.bottom-x.bottom+o)):e.bottom>x.bottom&&(T=e.bottom-x.bottom+o,t<0&&e.top-T0&&e.right>x.right+C&&(C=e.right-x.right+r)):e.right>x.right&&(C=e.right-x.right+r,t<0&&e.leftx.bottom||e.leftx.right)&&(e={left:Math.max(e.left,x.left),right:Math.min(e.right,x.right),top:Math.max(e.top,x.top),bottom:Math.min(e.bottom,x.bottom)}),p=p.assignedSlot||p.parentNode}else if(p.nodeType==11)p=p.host;else break}function bE(n){let e=n.ownerDocument,t,i;for(let s=n.parentNode;s&&!(s==e.body||t&&i);)if(s.nodeType==1)!i&&s.scrollHeight>s.clientHeight&&(i=s),!t&&s.scrollWidth>s.clientWidth&&(t=s),s=s.assignedSlot||s.parentNode;else if(s.nodeType==11)s=s.host;else break;return{x:t,y:i}}class xE{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:t,focusNode:i}=e;this.set(t,Math.min(e.anchorOffset,t?Xi(t):0),i,Math.min(e.focusOffset,i?Xi(i):0))}set(e,t,i,s){this.anchorNode=e,this.anchorOffset=t,this.focusNode=i,this.focusOffset=s}}let rs=null;oe.safari&&oe.safari_version>=26&&(rs=!1);function jw(n){if(n.setActive)return n.setActive();if(rs)return n.focus(rs);let e=[];for(let t=n;t&&(e.push(t,t.scrollTop,t.scrollLeft),t!=t.ownerDocument);t=t.parentNode);if(n.focus(rs==null?{get preventScroll(){return rs={preventScroll:!0},!0}}:void 0),!rs){rs=!1;for(let t=0;tMath.max(1,n.scrollHeight-n.clientHeight-4)}function _w(n,e){for(let t=n,i=e;;){if(t.nodeType==3&&i>0)return{node:t,offset:i};if(t.nodeType==1&&i>0){if(t.contentEditable=="false")return null;t=t.childNodes[i-1],i=Xi(t)}else if(t.parentNode&&!Gu(t))i=_l(t),t=t.parentNode;else return null}}function Lw(n,e){for(let t=n,i=e;;){if(t.nodeType==3&&i=t){if(u.level==i)return o;(r<0||(s!=0?s<0?u.fromt:e[r].level>u.level))&&(r=o)}}if(r<0)throw new RangeError("Index out of range");return r}}function Hw(n,e){if(n.length!=e.length)return!1;for(let t=0;t=0;A-=3)if(ri[A+1]==-w){let C=ri[A+2],T=C&2?s:C&4?C&1?r:s:0;T&&($e[b]=$e[ri[A]]=T),u=A;break}}else{if(ri.length==189)break;ri[u++]=b,ri[u++]=x,ri[u++]=f}else if((S=$e[b])==2||S==1){let A=S==s;f=A?0:1;for(let C=u-3;C>=0;C-=3){let T=ri[C+2];if(T&2)break;if(A)ri[C+2]|=2;else{if(T&4)break;ri[C+2]|=4}}}}}function TE(n,e,t,i){for(let s=0,r=i;s<=t.length;s++){let o=s?t[s-1].to:n,u=sf;)S==C&&(S=t[--A].from,C=A?t[A-1].to:n),$e[--S]=w;f=p}else r=d,f++}}}function mp(n,e,t,i,s,r,o){let u=i%2?2:1;if(i%2==s%2)for(let f=e,d=0;ff&&o.push(new gi(f,A.from,w));let C=A.direction==ys!=!(w%2);pp(n,C?i+1:i,s,A.inner,A.from,A.to,o),f=A.to}S=A.to}else{if(S==t||(p?$e[S]!=u:$e[S]==u))break;S++}x?mp(n,f,S,i+1,s,x,o):fe;){let p=!0,b=!1;if(!d||f>r[d-1].to){let A=$e[f-1];A!=u&&(p=!1,b=A==16)}let x=!p&&u==1?[]:null,w=p?i:i+1,S=f;e:for(;;)if(d&&S==r[d-1].to){if(b)break e;let A=r[--d];if(!p)for(let C=A.from,T=d;;){if(C==e)break e;if(T&&r[T-1].to==C)C=r[--T].from;else{if($e[C-1]==u)break e;break}}if(x)x.push(A);else{A.to$e.length;)$e[$e.length]=256;let i=[],s=e==ys?0:1;return pp(n,s,s,t,0,n.length,i),i}function Vw(n){return[new gi(0,n,0)]}let Uw="";function EE(n,e,t,i,s){var r;let o=i.head-n.from,u=gi.find(e,o,(r=i.bidiLevel)!==null&&r!==void 0?r:-1,i.assoc),f=e[u],d=f.side(s,t);if(o==d){let x=u+=s?1:-1;if(x<0||x>=e.length)return null;f=e[u=x],o=f.side(!s,t),d=f.side(s,t)}let p=jt(n.text,o,f.forward(s,t));(pf.to)&&(p=d),Uw=n.text.slice(Math.min(o,p),Math.max(o,p));let b=u==(s?e.length-1:0)?null:e[u+(s?1:-1)];return b&&p==d&&b.level+(s?0:1)n.some(e=>e)}),Fw=ce.define({combine:n=>n.some(e=>e)}),Xw=ce.define();class wa{constructor(e,t="nearest",i="nearest",s=5,r=5,o=!1){this.range=e,this.y=t,this.x=i,this.yMargin=s,this.xMargin=r,this.isSnapshot=o}map(e){return e.empty?this:new wa(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new wa(X.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const au=Me.define({map:(n,e)=>n.map(e)}),Qw=Me.define();function un(n,e,t){let i=n.facet(Gw);i.length?i[0](e):window.onerror&&window.onerror(String(e),t,void 0,void 0,e)||(t?console.error(t+":",e):console.error(e))}const Ki=ce.define({combine:n=>n.length?n[0]:!0});let OE=0;const da=ce.define({combine(n){return n.filter((e,t)=>{for(let i=0;i{let f=[];return o&&f.push(bh.of(d=>{let p=d.plugin(u);return p?o(p):we.none})),r&&f.push(r(u)),f})}static fromClass(e,t){return ft.define((i,s)=>new e(i,s),t)}}class hm{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(e){if(this.value){if(this.mustUpdate){let t=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(t)}catch(i){if(un(t.state,i,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(e,this.spec.arg)}catch(t){un(e.state,t,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var t;if(!((t=this.value)===null||t===void 0)&&t.destroy)try{this.value.destroy()}catch(i){un(e.state,i,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const Zw=ce.define(),bg=ce.define(),bh=ce.define(),$w=ce.define(),xg=ce.define(),Do=ce.define(),Jw=ce.define();function Ux(n,e){let t=n.state.facet(Jw);if(!t.length)return t;let i=t.map(r=>r instanceof Function?r(n):r),s=[];return je.spans(i,e.from,e.to,{point(){},span(r,o,u,f){let d=r-e.from,p=o-e.from,b=s;for(let x=u.length-1;x>=0;x--,f--){let w=u[x].spec.bidiIsolate,S;if(w==null&&(w=DE(e.text,d,p)),f>0&&b.length&&(S=b[b.length-1]).to==d&&S.direction==w)S.to=p,b=S.inner;else{let A={from:d,to:p,direction:w,inner:[]};b.push(A),b=A.inner}}}}),s}const eS=ce.define();function vg(n){let e=0,t=0,i=0,s=0;for(let r of n.state.facet(eS)){let o=r(n);o&&(o.left!=null&&(e=Math.max(e,o.left)),o.right!=null&&(t=Math.max(t,o.right)),o.top!=null&&(i=Math.max(i,o.top)),o.bottom!=null&&(s=Math.max(s,o.bottom)))}return{left:e,right:t,top:i,bottom:s}}const Kr=ce.define();class zn{constructor(e,t,i,s){this.fromA=e,this.toA=t,this.fromB=i,this.toB=s}join(e){return new zn(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let t=e.length,i=this;for(;t>0;t--){let s=e[t-1];if(!(s.fromA>i.toA)){if(s.toAs.push(new zn(r,o,u,f))),this.changedRanges=s}static create(e,t,i){return new Iu(e,t,i)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}}const jE=[];class wt{constructor(e,t,i=0){this.dom=e,this.length=t,this.flags=i,this.parent=null,e.cmTile=this}get breakAfter(){return this.flags&1}get children(){return jE}isWidget(){return!1}get isHidden(){return!1}isComposite(){return!1}isLine(){return!1}isText(){return!1}isBlock(){return!1}get domAttrs(){return null}sync(e){if(this.flags|=2,this.flags&4){this.flags&=-5;let t=this.domAttrs;t&&dE(this.dom,t)}}toString(){return this.constructor.name+(this.children.length?`(${this.children})`:"")+(this.breakAfter?"#":"")}destroy(){this.parent=null}setDOM(e){this.dom=e,e.cmTile=this}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e,t=this.posAtStart){let i=t;for(let s of this.children){if(s==e)return i;i+=s.length+s.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}covers(e){return!0}coordsIn(e,t){return null}domPosFor(e,t){let i=_l(this.dom),s=this.length?e>0:t>0;return new Wn(this.parent.dom,i+(s?1:0),e==0||e==this.length)}markDirty(e){this.flags&=-3,e&&(this.flags|=4),this.parent&&this.parent.flags&2&&this.parent.markDirty(!1)}get overrideDOMText(){return null}get root(){for(let e=this;e;e=e.parent)if(e instanceof vh)return e;return null}static get(e){return e.cmTile}}class xh extends wt{constructor(e){super(e,0),this._children=[]}isComposite(){return!0}get children(){return this._children}get lastChild(){return this.children.length?this.children[this.children.length-1]:null}append(e){this.children.push(e),e.parent=this}sync(e){if(this.flags&2)return;super.sync(e);let t=this.dom,i=null,s,r=(e==null?void 0:e.node)==t?e:null,o=0;for(let u of this.children){if(u.sync(e),o+=u.length+u.breakAfter,s=i?i.nextSibling:t.firstChild,r&&s!=u.dom&&(r.written=!0),u.dom.parentNode==t)for(;s&&s!=u.dom;)s=qx(s);else t.insertBefore(u.dom,s);i=u.dom}for(s=i?i.nextSibling:t.firstChild,r&&s&&(r.written=!0);s;)s=qx(s);this.length=o}}function qx(n){let e=n.nextSibling;return n.parentNode.removeChild(n),e}class vh extends xh{constructor(e,t){super(t),this.view=e}owns(e){for(;e;e=e.parent)if(e==this)return!0;return!1}isBlock(){return!0}nearest(e){for(;;){if(!e)return null;let t=wt.get(e);if(t&&this.owns(t))return t;e=e.parentNode}}blockTiles(e){for(let t=[],i=this,s=0,r=0;;)if(s==i.children.length){if(!t.length)return;i=i.parent,i.breakAfter&&r++,s=t.pop()}else{let o=i.children[s++];if(o instanceof Yi)t.push(s),i=o,s=0;else{let u=r+o.length,f=e(o,r);if(f!==void 0)return f;r=u+o.breakAfter}}}resolveBlock(e,t){let i,s=-1,r,o=-1;if(this.blockTiles((u,f)=>{let d=f+u.length;if(e>=f&&e<=d){if(u.isWidget()&&t>=-1&&t<=1){if(u.flags&32)return!0;u.flags&16&&(i=void 0)}(fe||e==f&&(t>1?u.length:u.covers(-1)))&&(!r||!u.isWidget()&&r.isWidget())&&(r=u,o=e-f)}}),!i&&!r)throw new Error("No tile at position "+e);return i&&t<0||!r?{tile:i,offset:s}:{tile:r,offset:o}}}class Yi extends xh{constructor(e,t){super(e),this.wrapper=t}isBlock(){return!0}covers(e){return this.children.length?e<0?this.children[0].covers(-1):this.lastChild.covers(1):!1}get domAttrs(){return this.wrapper.attributes}static of(e,t){let i=new Yi(t||document.createElement(e.tagName),e);return t||(i.flags|=4),i}}class Ma extends xh{constructor(e,t){super(e),this.attrs=t}isLine(){return!0}static start(e,t,i){let s=new Ma(t||document.createElement("div"),e);return(!t||!i)&&(s.flags|=4),s}get domAttrs(){return this.attrs}resolveInline(e,t,i){let s=null,r=-1,o=null,u=-1;function f(p,b){for(let x=0,w=0;x=b&&(S.isComposite()?f(S,b-w):(!o||o.isHidden&&(t>0||i&&_E(o,S)))&&(A>b||S.flags&32)?(o=S,u=b-w):(wi&&(e=i);let s=e,r=e,o=0;e==0&&t<0||e==i&&t>=0?oe.chrome||oe.gecko||(e?(s--,o=1):r=0)?0:u.length-1];return oe.safari&&!o&&f.width==0&&(f=Array.prototype.find.call(u,d=>d.width)||f),o?ho(f,o<0):f||null}static of(e,t){let i=new fs(t||document.createTextNode(e),e);return t||(i.flags|=2),i}}class bs extends wt{constructor(e,t,i,s){super(e,t,s),this.widget=i}isWidget(){return!0}get isHidden(){return this.widget.isHidden}covers(e){return this.flags&48?!1:(this.flags&(e<0?64:128))>0}coordsIn(e,t){return this.coordsInWidget(e,t,!1)}coordsInWidget(e,t,i){let s=this.widget.coordsAt(this.dom,e,t);if(s)return s;if(i)return ho(this.dom.getBoundingClientRect(),this.length?e==0:t<=0);{let r=this.dom.getClientRects(),o=null;if(!r.length)return null;let u=this.flags&16?!0:this.flags&32?!1:e>0;for(let f=u?r.length-1:0;o=r[f],!(e>0?f==0:f==r.length-1||o.top0;)if(s.isComposite())if(o){if(!e)break;i&&i.break(),e--,o=!1}else if(r==s.children.length){if(!e&&!u.length)break;i&&i.leave(s),o=!!s.breakAfter,{tile:s,index:r}=u.pop(),r++}else{let f=s.children[r],d=f.breakAfter;(t>0?f.length<=e:f.length=0;u--){let f=t.marks[u],d=s.lastChild;if(d instanceof cn&&d.mark.eq(f.mark))d.dom!=f.dom&&d.setDOM(fm(f.dom)),s=d;else{if(this.cache.reused.get(f)){let b=wt.get(f.dom);b&&b.setDOM(fm(f.dom))}let p=cn.of(f.mark,f.dom);s.append(p),s=p}this.cache.reused.set(f,2)}let r=wt.get(e.text);r&&this.cache.reused.set(r,2);let o=new fs(e.text,e.text.nodeValue);o.flags|=8,s.append(o)}addInlineWidget(e,t,i){let s=this.afterWidget&&e.flags&48&&(this.afterWidget.flags&48)==(e.flags&48);s||this.flushBuffer();let r=this.ensureMarks(t,i);!s&&!(e.flags&16)&&r.append(this.getBuffer(1)),r.append(e),this.pos+=e.length,this.afterWidget=e}addMark(e,t,i){this.flushBuffer(),this.ensureMarks(t,i).append(e),this.pos+=e.length,this.afterWidget=null}addBlockWidget(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}continueWidget(e){let t=this.afterWidget||this.lastBlock;t.length+=e,this.pos+=e}addLineStart(e,t){var i;e||(e=tS);let s=Ma.start(e,t||((i=this.cache.find(Ma))===null||i===void 0?void 0:i.dom),!!t);this.getBlockPos().append(this.lastBlock=this.curLine=s)}addLine(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}addBreak(){this.lastBlock.flags|=1,this.endLine(),this.pos++}addLineStartIfNotCovered(e){this.blockPosCovered()||this.addLineStart(e)}ensureLine(e){this.curLine||this.addLineStart(e)}ensureMarks(e,t){var i;let s=this.curLine;for(let r=e.length-1;r>=0;r--){let o=e[r],u;if(t>0&&(u=s.lastChild)&&u instanceof cn&&u.mark.eq(o))s=u,t--;else{let f=cn.of(o,(i=this.cache.find(cn,d=>d.mark.eq(o)))===null||i===void 0?void 0:i.dom);s.append(f),s=f,t=0}}return s}endLine(){if(this.curLine){this.flushBuffer();let e=this.curLine.lastChild;(!e||!Px(this.curLine,!1)||e.dom.nodeName!="BR"&&e.isWidget()&&!(oe.ios&&Px(this.curLine,!0)))&&this.curLine.append(this.cache.findWidget(dm,0,32)||new bs(dm.toDOM(),0,dm,32)),this.curLine=this.afterWidget=null}}updateBlockWrappers(){this.wrapperPos>this.pos+1e4&&(this.blockWrappers.goto(this.pos),this.wrappers.length=0);for(let e=this.wrappers.length-1;e>=0;e--)this.wrappers[e].to=this.pos){let t=new BE(e.from,e.to,e.value,e.rank),i=this.wrappers.length;for(;i>0&&(this.wrappers[i-1].rank-t.rank||this.wrappers[i-1].to-t.to)<0;)i--;this.wrappers.splice(i,0,t)}this.wrapperPos=this.pos}getBlockPos(){var e;this.updateBlockWrappers();let t=this.root;for(let i of this.wrappers){let s=t.lastChild;if(i.fromo.wrapper.eq(i.wrapper)))===null||e===void 0?void 0:e.dom);t.append(r),t=r}}return t}blockPosCovered(){let e=this.lastBlock;return e!=null&&!e.breakAfter&&(!e.isWidget()||(e.flags&160)>0)}getBuffer(e){let t=2|(e<0?16:32),i=this.cache.find(Yu,void 0,1);return i&&(i.flags=t),i||new Yu(t)}flushBuffer(){this.afterWidget&&!(this.afterWidget.flags&32)&&(this.afterWidget.parent.append(this.getBuffer(-1)),this.afterWidget=null)}}class HE{constructor(e){this.skipCount=0,this.text="",this.textOff=0,this.cursor=e.iter()}skip(e){this.textOff+e<=this.text.length?this.textOff+=e:(this.skipCount+=e-(this.text.length-this.textOff),this.text="",this.textOff=0)}next(e){if(this.textOff==this.text.length){let{value:s,lineBreak:r,done:o}=this.cursor.next(this.skipCount);if(this.skipCount=0,o)throw new Error("Ran out of text content when drawing inline views");this.text=s;let u=this.textOff=Math.min(e,s.length);return r?null:s.slice(0,u)}let t=Math.min(this.text.length,this.textOff+e),i=this.text.slice(this.textOff,t);return this.textOff=t,i}}const Wu=[bs,Ma,fs,cn,Yu,Yi,vh];for(let n=0;n[]),this.index=Wu.map(()=>0),this.reused=new Map}add(e){let t=e.constructor.bucket,i=this.buckets[t];i.length<6?i.push(e):i[this.index[t]=(this.index[t]+1)%6]=e}find(e,t,i=2){let s=e.bucket,r=this.buckets[s],o=this.index[s];for(let u=r.length-1;u>=0;u--){let f=(u+o)%r.length,d=r[f];if((!t||t(d))&&!this.reused.has(d))return r.splice(f,1),f{if(this.cache.add(o),o.isComposite())return!1},enter:o=>this.cache.add(o),leave:()=>{},break:()=>{}}}run(e,t){let i=t&&this.getCompositionContext(t.text);for(let s=0,r=0,o=0;;){let u=os){let d=f-s;this.preserve(d,!o,!u),s=f,r+=d}if(!u)break;t&&u.fromA<=t.range.fromA&&u.toA>=t.range.toA?(this.forward(u.fromA,t.range.fromA,t.range.fromA{if(o.isWidget())if(this.openWidget)this.builder.continueWidget(f-u);else{let d=f>0||u{o.isLine()?this.builder.addLineStart(o.attrs,this.cache.maybeReuse(o)):(this.cache.add(o),o instanceof cn&&s.unshift(o.mark)),this.openWidget=!1},leave:o=>{o.isLine()?s.length&&(s.length=r=0):o instanceof cn&&(s.shift(),r=Math.min(r,s.length))},break:()=>{this.builder.addBreak(),this.openWidget=!1}}),this.text.skip(e)}emit(e,t){let i=null,s=this.builder,r=0,o=je.spans(this.decorations,e,t,{point:(u,f,d,p,b,x)=>{if(d instanceof gs){if(this.disallowBlockEffectsFor[x]){if(d.block)throw new RangeError("Block decorations may not be specified via plugins");if(f>this.view.state.doc.lineAt(u).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}if(r=p.length,b>p.length)s.continueWidget(f-u);else{let w=d.widget||(d.block?Ta.block:Ta.inline),S=qE(d),A=this.cache.findWidget(w,f-u,S)||bs.of(w,this.view,f-u,S);d.block?(d.startSide>0&&s.addLineStartIfNotCovered(i),s.addBlockWidget(A)):(s.ensureLine(i),s.addInlineWidget(A,p,b))}i=null}else i=PE(i,d);f>u&&this.text.skip(f-u)},span:(u,f,d,p)=>{for(let b=u;br,this.openMarks=o}forward(e,t,i=1){t-e<=10?this.old.advance(t-e,i,this.reuseWalker):(this.old.advance(5,-1,this.reuseWalker),this.old.advance(t-e-10,-1),this.old.advance(5,i,this.reuseWalker))}getCompositionContext(e){let t=[],i=null;for(let s=e.parentNode;;s=s.parentNode){let r=wt.get(s);if(s==this.view.contentDOM)break;r instanceof cn?t.push(r):r!=null&&r.isLine()?i=r:r instanceof Yi||(s.nodeName=="DIV"&&!i&&s!=this.view.contentDOM?i=new Ma(s,tS):i||t.push(cn.of(new No({tagName:s.nodeName.toLowerCase(),attributes:mE(s)}),s)))}return{line:i,marks:t}}}function Px(n,e){let t=i=>{for(let s of i.children)if((e?s.isText():s.length)||t(s))return!0;return!1};return t(n)}function qE(n){let e=n.isReplace?(n.startSide<0?64:0)|(n.endSide>0?128:0):n.startSide>0?32:16;return n.block&&(e|=256),e}const tS={class:"cm-line"};function PE(n,e){let t=e.spec.attributes,i=e.spec.class;return!t&&!i||(n||(n={class:"cm-line"}),t&&dg(t,n),i&&(n.class+=" "+i)),n}function KE(n){let e=[];for(let t=n.parents.length;t>1;t--){let i=t==n.parents.length?n.tile:n.parents[t].tile;i instanceof cn&&e.push(i.mark)}return e}function fm(n){let e=wt.get(n);return e&&e.setDOM(n.cloneNode()),n}class Ta extends ki{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}Ta.inline=new Ta("span");Ta.block=new Ta("div");const dm=new class extends ki{toDOM(){return document.createElement("br")}get isHidden(){return!0}get editable(){return!0}};class Kx{constructor(e){this.view=e,this.decorations=[],this.blockWrappers=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.editContextFormatting=we.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.updateDeco(),this.tile=new vh(e,e.contentDOM),this.updateInner([new zn(0,0,0,e.state.doc.length)],null)}update(e){var t;let i=e.changedRanges;this.minWidth>0&&i.length&&(i.every(({fromA:p,toA:b})=>bthis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let s=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((t=this.domChanged)===null||t===void 0)&&t.newSel?s=this.domChanged.newSel.head:!$E(e.changes,this.hasComposition)&&!e.selectionSet&&(s=e.state.selection.main.head));let r=s>-1?IE(this.view,e.changes,s):null;if(this.domChanged=null,this.hasComposition){let{from:p,to:b}=this.hasComposition;i=new zn(p,b,e.changes.mapPos(p,-1),e.changes.mapPos(b,1)).addToSet(i.slice())}this.hasComposition=r?{from:r.range.fromB,to:r.range.toB}:null,(oe.ie||oe.chrome)&&!r&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let o=this.decorations,u=this.blockWrappers;this.updateDeco();let f=FE(o,this.decorations,e.changes);f.length&&(i=zn.extendWithRanges(i,f));let d=QE(u,this.blockWrappers,e.changes);return d.length&&(i=zn.extendWithRanges(i,d)),r&&!i.some(p=>p.fromA<=r.range.fromA&&p.toA>=r.range.toA)&&(i=r.range.addToSet(i.slice())),this.tile.flags&2&&i.length==0?!1:(this.updateInner(i,r),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,t){this.view.viewState.mustMeasureContent=!0;let{observer:i}=this.view;i.ignore(()=>{if(t||e.length){let o=this.tile,u=new UE(this.view,o,this.blockWrappers,this.decorations,this.dynamicDecorationMap);this.tile=u.run(e,t),yp(o,u.cache.reused)}this.tile.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.tile.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let r=oe.chrome||oe.ios?{node:i.selectionRange.focusNode,written:!1}:void 0;this.tile.sync(r),r&&(r.written||i.selectionRange.focusNode!=r.node||!this.tile.dom.contains(r.node))&&(this.forceSelection=!0),this.tile.dom.style.height=""});let s=[];if(this.view.viewport.from||this.view.viewport.to-1)&&Qr(i,this.view.observer.selectionRange)&&!(s&&i.contains(s));if(!(r||t||o))return;let u=this.forceSelection;this.forceSelection=!1;let f=this.view.state.selection.main,d,p;if(f.empty?p=d=this.inlineDOMNearPos(f.anchor,f.assoc||1):(p=this.inlineDOMNearPos(f.head,f.head==f.from?1:-1),d=this.inlineDOMNearPos(f.anchor,f.anchor==f.from?1:-1)),oe.gecko&&f.empty&&!this.hasComposition&&GE(d)){let x=document.createTextNode("");this.view.observer.ignore(()=>d.node.insertBefore(x,d.node.childNodes[d.offset]||null)),d=p=new Wn(x,0),u=!0}let b=this.view.observer.selectionRange;(u||!b.focusNode||(!$r(d.node,d.offset,b.anchorNode,b.anchorOffset)||!$r(p.node,p.offset,b.focusNode,b.focusOffset))&&!this.suppressWidgetCursorChange(b,f))&&(this.view.observer.ignore(()=>{oe.android&&oe.chrome&&i.contains(b.focusNode)&&ZE(b.focusNode,i)&&(i.blur(),i.focus({preventScroll:!0}));let x=uo(this.view.root);if(x)if(f.empty){if(oe.gecko){let w=YE(d.node,d.offset);if(w&&w!=3){let S=(w==1?_w:Lw)(d.node,d.offset);S&&(d=new Wn(S.node,S.offset))}}x.collapse(d.node,d.offset),f.bidiLevel!=null&&x.caretBidiLevel!==void 0&&(x.caretBidiLevel=f.bidiLevel)}else if(x.extend){x.collapse(d.node,d.offset);try{x.extend(p.node,p.offset)}catch{}}else{let w=document.createRange();f.anchor>f.head&&([d,p]=[p,d]),w.setEnd(p.node,p.offset),w.setStart(d.node,d.offset),x.removeAllRanges(),x.addRange(w)}o&&this.view.root.activeElement==i&&(i.blur(),s&&s.focus())}),this.view.observer.setSelectionRange(d,p)),this.impreciseAnchor=d.precise?null:new Wn(b.anchorNode,b.anchorOffset),this.impreciseHead=p.precise?null:new Wn(b.focusNode,b.focusOffset)}suppressWidgetCursorChange(e,t){return this.hasComposition&&t.empty&&$r(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==t.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,t=e.state.selection.main,i=uo(e.root),{anchorNode:s,anchorOffset:r}=e.observer.selectionRange;if(!i||!t.empty||!t.assoc||!i.modify)return;let o=this.lineAt(t.head,t.assoc);if(!o)return;let u=o.posAtStart;if(t.head==u||t.head==u+o.length)return;let f=this.coordsAt(t.head,-1),d=this.coordsAt(t.head,1);if(!f||!d||f.bottom>d.top)return;let p=this.domAtPos(t.head+t.assoc,t.assoc);i.collapse(p.node,p.offset),i.modify("move",t.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let b=e.observer.selectionRange;e.docView.posFromDOM(b.anchorNode,b.anchorOffset)!=t.from&&i.collapse(s,r)}posFromDOM(e,t){let i=this.tile.nearest(e);if(!i)return this.tile.dom.compareDocumentPosition(e)&2?0:this.view.state.doc.length;let s=i.posAtStart;if(i.isComposite()){let r;if(e==i.dom)r=i.dom.childNodes[t];else{let o=Xi(e)==0?0:t==0?-1:1;for(;;){let u=e.parentNode;if(u==i.dom)break;o==0&&u.firstChild!=u.lastChild&&(e==u.firstChild?o=-1:o=1),e=u}o<0?r=e:r=e.nextSibling}if(r==i.dom.firstChild)return s;for(;r&&!wt.get(r);)r=r.nextSibling;if(!r)return s+i.length;for(let o=0,u=s;;o++){let f=i.children[o];if(f.dom==r)return u;u+=f.length+f.breakAfter}}else return i.isText()?e==i.dom?s+t:s+(t?i.length:0):s}domAtPos(e,t){let{tile:i,offset:s}=this.tile.resolveBlock(e,t);return i.isWidget()?i.domPosFor(e,t):i.domIn(s,t)}inlineDOMNearPos(e,t){let i,s=-1,r=!1,o,u=-1,f=!1;return this.tile.blockTiles((d,p)=>{if(d.isWidget()){if(d.flags&32&&p>=e)return!0;d.flags&16&&(r=!0)}else{let b=p+d.length;if(p<=e&&(i=d,s=e-p,r=b=e&&!o&&(o=d,u=e-p,f=p>e),p>e&&o)return!0}}),!i&&!o?this.domAtPos(e,t):(r&&o?i=null:f&&i&&(o=null),i&&t<0||!o?i.domIn(s,t):o.domIn(u,t))}coordsAt(e,t){let{tile:i,offset:s}=this.tile.resolveBlock(e,t);return i.isWidget()?i.widget instanceof mm?null:i.coordsInWidget(s,t,!0):i.coordsIn(s,t)}lineAt(e,t){let{tile:i}=this.tile.resolveBlock(e,t);return i.isLine()?i:null}coordsForChar(e){let{tile:t,offset:i}=this.tile.resolveBlock(e,1);if(!t.isLine())return null;function s(r,o){if(r.isComposite())for(let u of r.children){if(u.length>=o){let f=s(u,o);if(f)return f}if(o-=u.length,o<0)break}else if(r.isText()&&oMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,u=-1,f=this.view.textDirection==Je.LTR,d=0,p=(b,x,w)=>{for(let S=0;Ss);S++){let A=b.children[S],C=x+A.length,T=A.dom.getBoundingClientRect(),{height:R}=T;if(w&&!S&&(d+=T.top-w.top),A instanceof Yi)C>i&&p(A,x,T);else if(x>=i&&(d>0&&t.push(-d),t.push(R+d),d=0,o)){let E=A.dom.lastChild,q=E?Zr(E):[];if(q.length){let B=q[q.length-1],I=f?B.right-T.left:T.right-B.left;I>u&&(u=I,this.minWidth=r,this.minWidthFrom=x,this.minWidthTo=C)}}w&&S==b.children.length-1&&(d+=w.bottom-T.bottom),x=C+A.breakAfter}};return p(this.tile,0,null),t}textDirectionAt(e){let{tile:t}=this.tile.resolveBlock(e,1);return getComputedStyle(t.dom).direction=="rtl"?Je.RTL:Je.LTR}measureTextSize(){let e=this.tile.blockTiles(o=>{if(o.isLine()&&o.children.length&&o.length<=20){let u=0,f;for(let d of o.children){if(!d.isText()||/[^ -~]/.test(d.text))return;let p=Zr(d.dom);if(p.length!=1)return;u+=p[0].width,f=p[0].height}if(u)return{lineHeight:o.dom.getBoundingClientRect().height,charWidth:u/o.length,textHeight:f}}});if(e)return e;let t=document.createElement("div"),i,s,r;return t.className="cm-line",t.style.width="99999px",t.style.position="absolute",t.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.tile.dom.appendChild(t);let o=Zr(t.firstChild)[0];i=t.getBoundingClientRect().height,s=o&&o.width?o.width/27:7,r=o&&o.height?o.height:i,t.remove()}),{lineHeight:i,charWidth:s,textHeight:r}}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let i=0,s=0;;s++){let r=s==t.viewports.length?null:t.viewports[s],o=r?r.from-1:this.view.state.doc.length;if(o>i){let u=(t.lineBlockAt(o).bottom-t.lineBlockAt(i).top)/this.view.scaleY;e.push(we.replace({widget:new mm(u),block:!0,inclusive:!0,isBlockGap:!0}).range(i,o))}if(!r)break;i=r.to+1}return we.set(e)}updateDeco(){let e=1,t=this.view.state.facet(bh).map(r=>(this.dynamicDecorationMap[e++]=typeof r=="function")?r(this.view):r),i=!1,s=this.view.state.facet(xg).map((r,o)=>{let u=typeof r=="function";return u&&(i=!0),u?r(this.view):r});for(s.length&&(this.dynamicDecorationMap[e++]=i,t.push(je.join(s))),this.decorations=[this.editContextFormatting,...t,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];etypeof r=="function"?r(this.view):r)}scrollIntoView(e){if(e.isSnapshot){let d=this.view.viewState.lineBlockAt(e.range.head);this.view.scrollDOM.scrollTop=d.top-e.yMargin,this.view.scrollDOM.scrollLeft=e.xMargin;return}for(let d of this.view.state.facet(Xw))try{if(d(this.view,e.range,e))return!0}catch(p){un(this.view.state,p,"scroll handler")}let{range:t}=e,i=this.coordsAt(t.head,t.empty?t.assoc:t.head>t.anchor?-1:1),s;if(!i)return;!t.empty&&(s=this.coordsAt(t.anchor,t.anchor>t.head?-1:1))&&(i={left:Math.min(i.left,s.left),top:Math.min(i.top,s.top),right:Math.max(i.right,s.right),bottom:Math.max(i.bottom,s.bottom)});let r=vg(this.view),o={left:i.left-r.left,top:i.top-r.top,right:i.right+r.right,bottom:i.bottom+r.bottom},{offsetWidth:u,offsetHeight:f}=this.view.scrollDOM;if(yE(this.view.scrollDOM,o,t.head1&&(i.top>window.pageYOffset+window.visualViewport.offsetTop+window.visualViewport.height||i.bottomi.isWidget()||i.children.some(t);return t(this.tile.resolveBlock(e,1).tile)}destroy(){yp(this.tile)}}function yp(n,e){let t=e==null?void 0:e.get(n);if(t!=1){t==null&&n.destroy();for(let i of n.children)yp(i,e)}}function GE(n){return n.node.nodeType==1&&n.node.firstChild&&(n.offset==0||n.node.childNodes[n.offset-1].contentEditable=="false")&&(n.offset==n.node.childNodes.length||n.node.childNodes[n.offset].contentEditable=="false")}function nS(n,e){let t=n.observer.selectionRange;if(!t.focusNode)return null;let i=_w(t.focusNode,t.focusOffset),s=Lw(t.focusNode,t.focusOffset),r=i||s;if(s&&i&&s.node!=i.node){let u=wt.get(s.node);if(!u||u.isText()&&u.text!=s.node.nodeValue)r=s;else if(n.docView.lastCompositionAfterCursor){let f=wt.get(i.node);!f||f.isText()&&f.text!=i.node.nodeValue||(r=s)}}if(n.docView.lastCompositionAfterCursor=r!=i,!r)return null;let o=e-r.offset;return{from:o,to:o+r.node.nodeValue.length,node:r.node}}function IE(n,e,t){let i=nS(n,t);if(!i)return null;let{node:s,from:r,to:o}=i,u=s.nodeValue;if(/[\n\r]/.test(u)||n.state.doc.sliceString(i.from,i.to)!=u)return null;let f=e.invertedDesc;return{range:new zn(f.mapPos(r),f.mapPos(o),r,o),text:s}}function YE(n,e){return n.nodeType!=1?0:(e&&n.childNodes[e-1].contentEditable=="false"?1:0)|(e{ie.from&&(t=!0)}),t}class mm extends ki{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return e.className="cm-gap",this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}}function JE(n,e,t=1){let i=n.charCategorizer(e),s=n.doc.lineAt(e),r=e-s.from;if(s.length==0)return X.cursor(e);r==0?t=1:r==s.length&&(t=-1);let o=r,u=r;t<0?o=jt(s.text,r,!1):u=jt(s.text,r);let f=i(s.text.slice(o,u));for(;o>0;){let d=jt(s.text,o,!1);if(i(s.text.slice(d,o))!=f)break;o=d}for(;un.defaultLineHeight*1.5){let u=n.viewState.heightOracle.textHeight,f=Math.floor((s-t.top-(n.defaultLineHeight-u)*.5)/u);r+=f*n.viewState.heightOracle.lineLength}let o=n.state.sliceDoc(t.from,t.to);return t.from+sp(o,r,n.state.tabSize)}function bp(n,e,t){let i=n.lineBlockAt(e);if(Array.isArray(i.type)){let s;for(let r of i.type){if(r.from>e)break;if(!(r.toe)return r;(!s||r.type==qt.Text&&(s.type!=r.type||(t<0?r.frome)))&&(s=r)}}return s||i}return i}function t5(n,e,t,i){let s=bp(n,e.head,e.assoc||-1),r=!i||s.type!=qt.Text||!(n.lineWrapping||s.widgetLineBreaks)?null:n.coordsAtPos(e.assoc<0&&e.head>s.from?e.head-1:e.head);if(r){let o=n.dom.getBoundingClientRect(),u=n.textDirectionAt(s.from),f=n.posAtCoords({x:t==(u==Je.LTR)?o.right-1:o.left+1,y:(r.top+r.bottom)/2});if(f!=null)return X.cursor(f,t?-1:1)}return X.cursor(t?s.to:s.from,t?-1:1)}function Gx(n,e,t,i){let s=n.state.doc.lineAt(e.head),r=n.bidiSpans(s),o=n.textDirectionAt(s.from);for(let u=e,f=null;;){let d=EE(s,r,o,u,t),p=Uw;if(!d){if(s.number==(t?n.state.doc.lines:1))return u;p=` +`,s=n.state.doc.line(s.number+(t?1:-1)),r=n.bidiSpans(s),d=n.visualLineSide(s,!t)}if(f){if(!f(p))return u}else{if(!i)return d;f=i(p)}u=d}}function n5(n,e,t){let i=n.state.charCategorizer(e),s=i(t);return r=>{let o=i(r);return s==at.Space&&(s=o),s==o}}function i5(n,e,t,i){let s=e.head,r=t?1:-1;if(s==(t?n.state.doc.length:0))return X.cursor(s,e.assoc);let o=e.goalColumn,u,f=n.contentDOM.getBoundingClientRect(),d=n.coordsAtPos(s,(e.empty?e.assoc:0)||(t?1:-1)),p=n.documentTop;if(d)o==null&&(o=d.left-f.left),u=r<0?d.top:d.bottom;else{let S=n.viewState.lineBlockAt(s);o==null&&(o=Math.min(f.right-f.left,n.defaultCharacterWidth*(s-S.from))),u=(r<0?S.top:S.bottom)+p}let b=f.left+o,x=i??n.viewState.heightOracle.textHeight>>1,w=xp(n,{x:b,y:u+x*r},!1,r);return X.cursor(w.pos,w.assoc,void 0,o)}function Jr(n,e,t){for(;;){let i=0;for(let s of n)s.between(e-1,e+1,(r,o,u)=>{if(e>r&&es(n)),t.from,e.head>t.from?-1:1);return i==t.from?t:X.cursor(i,in.viewState.docHeight)return new pi(n.state.doc.length,-1);if(d=n.elementAtHeight(f),i==null)break;if(d.type==qt.Text){if(i<0?d.ton.viewport.to)break;let x=n.docView.coordsAt(i<0?d.from:d.to,i>0?-1:1);if(x&&(i<0?x.top<=f+r:x.bottom>=f+r))break}let b=n.viewState.heightOracle.textHeight/2;f=i>0?d.bottom+b:d.top-b}if(n.viewport.from>=d.to||n.viewport.to<=d.from){if(t)return null;if(d.type==qt.Text){let b=e5(n,s,d,o,u);return new pi(b,b==d.from?1:-1)}}if(d.type!=qt.Text)return f<(d.top+d.bottom)/2?new pi(d.from,1):new pi(d.to,-1);let p=n.docView.lineAt(d.from,2);return(!p||p.length!=d.length)&&(p=n.docView.lineAt(d.from,-2)),new l5(n,o,u,n.textDirectionAt(d.from)).scanTile(p,d.from)}class l5{constructor(e,t,i,s){this.view=e,this.x=t,this.y=i,this.baseDir=s,this.line=null,this.spans=null}bidiSpansAt(e){return(!this.line||this.line.from>e||this.line.to1||i.length&&(i[0].level!=this.baseDir||i[0].to+s.from>1;t:if(r.has(S)){let C=i+Math.floor(Math.random()*w);for(let T=0;Tthis.y)(!f||f.top>T.top)&&(f=T),R=-1;else{let E=T.left>this.x?this.x-T.left:T.right(b.left+b.right)/2==x}}scanText(e,t){let i=[];for(let r=0;r{let o=i[r]-t,u=i[r+1]-t;return fo(e.dom,o,u).getClientRects()});return s.after?new pi(i[s.i+1],-1):new pi(i[s.i],1)}scanTile(e,t){if(!e.length)return new pi(t,1);if(e.children.length==1){let u=e.children[0];if(u.isText())return this.scanText(u,t);if(u.isComposite())return this.scanTile(u,t)}let i=[t];for(let u=0,f=t;u{let f=e.children[u];return f.flags&48?null:(f.dom.nodeType==1?f.dom:fo(f.dom,0,f.length)).getClientRects()}),r=e.children[s.i],o=i[s.i];return r.isText()?this.scanText(r,o):r.isComposite()?this.scanTile(r,o):s.after?new pi(i[s.i+1],-1):new pi(o,1)}}const Gr="￿";class s5{constructor(e,t){this.points=e,this.view=t,this.text="",this.lineSeparator=t.state.facet(ze.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=Gr}readRange(e,t){if(!e)return this;let i=e.parentNode;for(let s=e;;){this.findPointBefore(i,s);let r=this.text.length;this.readNode(s);let o=wt.get(s),u=s.nextSibling;if(u==t){o!=null&&o.breakAfter&&!u&&i!=this.view.contentDOM&&this.lineBreak();break}let f=wt.get(u);(o&&f?o.breakAfter:(o?o.breakAfter:Gu(s))||Gu(u)&&(s.nodeName!="BR"||o!=null&&o.isWidget())&&this.text.length>r)&&!r5(u,t)&&this.lineBreak(),s=u}return this.findPointBefore(i,t),this}readTextNode(e){let t=e.nodeValue;for(let i of this.points)i.node==e&&(i.pos=this.text.length+Math.min(i.offset,t.length));for(let i=0,s=this.lineSeparator?null:/\r\n?|\n/g;;){let r=-1,o=1,u;if(this.lineSeparator?(r=t.indexOf(this.lineSeparator,i),o=this.lineSeparator.length):(u=s.exec(t))&&(r=u.index,o=u[0].length),this.append(t.slice(i,r<0?t.length:r)),r<0)break;if(this.lineBreak(),o>1)for(let f of this.points)f.node==e&&f.pos>this.text.length&&(f.pos-=o-1);i=r+o}}readNode(e){let t=wt.get(e),i=t&&t.overrideDOMText;if(i!=null){this.findPointInside(e,i.length);for(let s=i.iter();!s.next().done;)s.lineBreak?this.lineBreak():this.append(s.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,t){for(let i of this.points)i.node==e&&e.childNodes[i.offset]==t&&(i.pos=this.text.length)}findPointInside(e,t){for(let i of this.points)(e.nodeType==3?i.node==e:e.contains(i.node))&&(i.pos=this.text.length+(a5(e,i.node,i.offset)?t:0))}}function a5(n,e,t){for(;;){if(!e||t-1;let{impreciseHead:r,impreciseAnchor:o}=e.docView;if(e.state.readOnly&&t>-1)this.newSel=null;else if(t>-1&&(this.bounds=lS(e.docView.tile,t,i,0))){let u=r||o?[]:u5(e),f=new s5(u,e);f.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=f.text,this.newSel=h5(u,this.bounds.from)}else{let u=e.observer.selectionRange,f=r&&r.node==u.focusNode&&r.offset==u.focusOffset||!fp(e.contentDOM,u.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(u.focusNode,u.focusOffset),d=o&&o.node==u.anchorNode&&o.offset==u.anchorOffset||!fp(e.contentDOM,u.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(u.anchorNode,u.anchorOffset),p=e.viewport;if((oe.ios||oe.chrome)&&e.state.selection.main.empty&&f!=d&&(p.from>0||p.to-1&&e.state.selection.ranges.length>1?this.newSel=e.state.selection.replaceRange(X.range(d,f)):this.newSel=X.single(d,f)}}}function lS(n,e,t,i){if(n.isComposite()){let s=-1,r=-1,o=-1,u=-1;for(let f=0,d=i,p=i;ft)return lS(b,e,t,d);if(x>=e&&s==-1&&(s=f,r=d),d>t&&b.dom.parentNode==n.dom){o=f,u=p;break}p=x,d=x+b.breakAfter}return{from:r,to:u<0?i+n.length:u,startDOM:(s?n.children[s-1].dom.nextSibling:null)||n.dom.firstChild,endDOM:o=0?n.children[o].dom:null}}else return n.isText()?{from:i,to:i+n.length,startDOM:n.dom,endDOM:n.dom.nextSibling}:null}function sS(n,e){let t,{newSel:i}=e,s=n.state.selection.main,r=n.inputState.lastKeyTime>Date.now()-100?n.inputState.lastKeyCode:-1;if(e.bounds){let{from:o,to:u}=e.bounds,f=s.from,d=null;(r===8||oe.android&&e.text.length=s.from&&t.to<=s.to&&(t.from!=s.from||t.to!=s.to)&&s.to-s.from-(t.to-t.from)<=4?t={from:s.from,to:s.to,insert:n.state.doc.slice(s.from,t.from).append(t.insert).append(n.state.doc.slice(t.to,s.to))}:n.state.doc.lineAt(s.from).toDate.now()-50?t={from:s.from,to:s.to,insert:n.state.toText(n.inputState.insertingText)}:oe.chrome&&t&&t.from==t.to&&t.from==s.head&&t.insert.toString()==` + `&&n.lineWrapping&&(i&&(i=X.single(i.main.anchor-1,i.main.head-1)),t={from:s.from,to:s.to,insert:qe.of([" "])}),t)return wg(n,t,i,r);if(i&&!Fu(i,s)){let o=!1,u="select";return n.inputState.lastSelectionTime>Date.now()-50&&(n.inputState.lastSelectionOrigin=="select"&&(o=!0),u=n.inputState.lastSelectionOrigin,u=="select.pointer"&&(i=iS(n.state.facet(Do).map(f=>f(n)),i))),n.dispatch({selection:i,scrollIntoView:o,userEvent:u}),!0}else return!1}function wg(n,e,t,i=-1){if(oe.ios&&n.inputState.flushIOSKey(e))return!0;let s=n.state.selection.main;if(oe.android&&(e.to==s.to&&(e.from==s.from||e.from==s.from-1&&n.state.sliceDoc(e.from,s.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&va(n.contentDOM,"Enter",13)||(e.from==s.from-1&&e.to==s.to&&e.insert.length==0||i==8&&e.insert.lengths.head)&&va(n.contentDOM,"Backspace",8)||e.from==s.from&&e.to==s.to+1&&e.insert.length==0&&va(n.contentDOM,"Delete",46)))return!0;let r=e.insert.toString();n.inputState.composing>=0&&n.inputState.composing++;let o,u=()=>o||(o=c5(n,e,t));return n.state.facet(Iw).some(f=>f(n,e.from,e.to,r,u))||n.dispatch(u()),!0}function c5(n,e,t){let i,s=n.state,r=s.selection.main,o=-1;if(e.from==e.to&&e.fromr.to){let f=e.fromb(n)),d,f);e.from==p&&(o=p)}if(o>-1)i={changes:e,selection:X.cursor(e.from+e.insert.length,-1)};else if(e.from>=r.from&&e.to<=r.to&&e.to-e.from>=(r.to-r.from)/3&&(!t||t.main.empty&&t.main.from==e.from+e.insert.length)&&n.inputState.composing<0){let f=r.frome.to?s.sliceDoc(e.to,r.to):"";i=s.replaceSelection(n.state.toText(f+e.insert.sliceString(0,void 0,n.state.lineBreak)+d))}else{let f=s.changes(e),d=t&&t.main.to<=f.newLength?t.main:void 0;if(s.selection.ranges.length>1&&(n.inputState.composing>=0||n.inputState.compositionPendingChange)&&e.to<=r.to+10&&e.to>=r.to-10){let p=n.state.sliceDoc(e.from,e.to),b,x=t&&nS(n,t.main.head);if(x){let S=e.insert.length-(e.to-e.from);b={from:x.from,to:x.to-S}}else b=n.state.doc.lineAt(r.head);let w=r.to-e.to;i=s.changeByRange(S=>{if(S.from==r.from&&S.to==r.to)return{changes:f,range:d||S.map(f)};let A=S.to-w,C=A-p.length;if(n.state.sliceDoc(C,A)!=p||A>=b.from&&C<=b.to)return{range:S};let T=s.changes({from:C,to:A,insert:e.insert}),R=S.to-r.to;return{changes:T,range:d?X.range(Math.max(0,d.anchor+R),Math.max(0,d.head+R)):S.map(T)}})}else i={changes:f,selection:d&&s.selection.replaceRange(d)}}let u="input.type";return(n.composing||n.inputState.compositionPendingChange&&n.inputState.compositionEndedAt>Date.now()-50)&&(n.inputState.compositionPendingChange=!1,u+=".compose",n.inputState.compositionFirstChange&&(u+=".start",n.inputState.compositionFirstChange=!1)),s.update(i,{userEvent:u,scrollIntoView:!0})}function aS(n,e,t,i){let s=Math.min(n.length,e.length),r=0;for(;r0&&u>0&&n.charCodeAt(o-1)==e.charCodeAt(u-1);)o--,u--;if(i=="end"){let f=Math.max(0,r-Math.min(o,u));t-=o+f-r}if(o=o?r-t:0;r-=f,u=r+(u-o),o=r}else if(u=u?r-t:0;r-=f,o=r+(o-u),u=r}return{from:r,toA:o,toB:u}}function u5(n){let e=[];if(n.root.activeElement!=n.contentDOM)return e;let{anchorNode:t,anchorOffset:i,focusNode:s,focusOffset:r}=n.observer.selectionRange;return t&&(e.push(new Ix(t,i)),(s!=t||r!=i)&&e.push(new Ix(s,r))),e}function h5(n,e){if(n.length==0)return null;let t=n[0].pos,i=n.length==2?n[1].pos:t;return t>-1&&i>-1?X.single(t+e,i+e):null}function Fu(n,e){return e.head==n.main.head&&e.anchor==n.main.anchor}class f5{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.pendingIOSKey=void 0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.insertingText="",this.insertingTextAt=0,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,oe.safari&&e.contentDOM.addEventListener("input",()=>null),oe.gecko&&T5(e.contentDOM.ownerDocument)}handleEvent(e){!v5(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,t){let i=this.handlers[e];if(i){for(let s of i.observers)s(this.view,t);for(let s of i.handlers){if(t.defaultPrevented)break;if(s(this.view,t)){t.preventDefault();break}}}}ensureHandlers(e){let t=d5(e),i=this.handlers,s=this.view.contentDOM;for(let r in t)if(r!="scroll"){let o=!t[r].handlers.length,u=i[r];u&&o!=!u.handlers.length&&(s.removeEventListener(r,this.handleEvent),u=null),u||s.addEventListener(r,this.handleEvent,{passive:o})}for(let r in i)r!="scroll"&&!t[r]&&s.removeEventListener(r,this.handleEvent);this.handlers=t}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&e.keyCode!=27&&oS.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),oe.android&&oe.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;let t;return oe.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&((t=rS.find(i=>i.keyCode==e.keyCode))&&!e.ctrlKey||m5.indexOf(e.key)>-1&&e.ctrlKey&&!e.shiftKey)?(this.pendingIOSKey=t||e,setTimeout(()=>this.flushIOSKey(),250),!0):(e.keyCode!=229&&this.view.observer.forceFlush(),!1)}flushIOSKey(e){let t=this.pendingIOSKey;return!t||t.key=="Enter"&&e&&e.from0?!0:oe.safari&&!oe.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}function Yx(n,e){return(t,i)=>{try{return e.call(n,i,t)}catch(s){un(t.state,s)}}}function d5(n){let e=Object.create(null);function t(i){return e[i]||(e[i]={observers:[],handlers:[]})}for(let i of n){let s=i.spec,r=s&&s.plugin.domEventHandlers,o=s&&s.plugin.domEventObservers;if(r)for(let u in r){let f=r[u];f&&t(u).handlers.push(Yx(i.value,f))}if(o)for(let u in o){let f=o[u];f&&t(u).observers.push(Yx(i.value,f))}}for(let i in Qn)t(i).handlers.push(Qn[i]);for(let i in qn)t(i).observers.push(qn[i]);return e}const rS=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],m5="dthko",oS=[16,17,18,20,91,92,224,225],ru=6;function ou(n){return Math.max(0,n)*.7+8}function p5(n,e){return Math.max(Math.abs(n.clientX-e.clientX),Math.abs(n.clientY-e.clientY))}class g5{constructor(e,t,i,s){this.view=e,this.startEvent=t,this.style=i,this.mustSelect=s,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=t,this.scrollParents=bE(e.contentDOM),this.atoms=e.state.facet(Do).map(o=>o(e));let r=e.contentDOM.ownerDocument;r.addEventListener("mousemove",this.move=this.move.bind(this)),r.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(ze.allowMultipleSelections)&&y5(e,t),this.dragging=x5(e,t)&&hS(t)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&p5(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let t=0,i=0,s=0,r=0,o=this.view.win.innerWidth,u=this.view.win.innerHeight;this.scrollParents.x&&({left:s,right:o}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:r,bottom:u}=this.scrollParents.y.getBoundingClientRect());let f=vg(this.view);e.clientX-f.left<=s+ru?t=-ou(s-e.clientX):e.clientX+f.right>=o-ru&&(t=ou(e.clientX-o)),e.clientY-f.top<=r+ru?i=-ou(r-e.clientY):e.clientY+f.bottom>=u-ru&&(i=ou(e.clientY-u)),this.setScrollSpeed(t,i)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,t){this.scrollSpeed={x:e,y:t},e||t?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:t}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),t&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=t,t=0),(e||t)&&this.view.win.scrollBy(e,t),this.dragging===!1&&this.select(this.lastEvent)}select(e){let{view:t}=this,i=iS(this.atoms,this.style.get(e,this.extend,this.multiple));(this.mustSelect||!i.eq(t.state.selection,this.dragging===!1))&&this.view.dispatch({selection:i,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.transactions.some(t=>t.isUserEvent("input.type"))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}}function y5(n,e){let t=n.state.facet(qw);return t.length?t[0](e):oe.mac?e.metaKey:e.ctrlKey}function b5(n,e){let t=n.state.facet(Pw);return t.length?t[0](e):oe.mac?!e.altKey:!e.ctrlKey}function x5(n,e){let{main:t}=n.state.selection;if(t.empty)return!1;let i=uo(n.root);if(!i||i.rangeCount==0)return!0;let s=i.getRangeAt(0).getClientRects();for(let r=0;r=e.clientX&&o.top<=e.clientY&&o.bottom>=e.clientY)return!0}return!1}function v5(n,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let t=e.target,i;t!=n.contentDOM;t=t.parentNode)if(!t||t.nodeType==11||(i=wt.get(t))&&i.isWidget()&&!i.isHidden&&i.widget.ignoreEvent(e))return!1;return!0}const Qn=Object.create(null),qn=Object.create(null),cS=oe.ie&&oe.ie_version<15||oe.ios&&oe.webkit_version<604;function w5(n){let e=n.dom.parentNode;if(!e)return;let t=e.appendChild(document.createElement("textarea"));t.style.cssText="position: fixed; left: -10000px; top: 10px",t.focus(),setTimeout(()=>{n.focus(),t.remove(),uS(n,t.value)},50)}function wh(n,e,t){for(let i of n.facet(e))t=i(t,n);return t}function uS(n,e){e=wh(n.state,gg,e);let{state:t}=n,i,s=1,r=t.toText(e),o=r.lines==t.selection.ranges.length;if(vp!=null&&t.selection.ranges.every(f=>f.empty)&&vp==r.toString()){let f=-1;i=t.changeByRange(d=>{let p=t.doc.lineAt(d.from);if(p.from==f)return{range:d};f=p.from;let b=t.toText((o?r.line(s++).text:e)+t.lineBreak);return{changes:{from:p.from,insert:b},range:X.cursor(d.from+b.length)}})}else o?i=t.changeByRange(f=>{let d=r.line(s++);return{changes:{from:f.from,to:f.to,insert:d.text},range:X.cursor(f.from+d.length)}}):i=t.replaceSelection(r);n.dispatch(i,{userEvent:"input.paste",scrollIntoView:!0})}qn.scroll=n=>{n.inputState.lastScrollTop=n.scrollDOM.scrollTop,n.inputState.lastScrollLeft=n.scrollDOM.scrollLeft};Qn.keydown=(n,e)=>(n.inputState.setSelectionOrigin("select"),e.keyCode==27&&n.inputState.tabFocusMode!=0&&(n.inputState.tabFocusMode=Date.now()+2e3),!1);qn.touchstart=(n,e)=>{n.inputState.lastTouchTime=Date.now(),n.inputState.setSelectionOrigin("select.pointer")};qn.touchmove=n=>{n.inputState.setSelectionOrigin("select.pointer")};Qn.mousedown=(n,e)=>{if(n.observer.flush(),n.inputState.lastTouchTime>Date.now()-2e3)return!1;let t=null;for(let i of n.state.facet(Kw))if(t=i(n,e),t)break;if(!t&&e.button==0&&(t=k5(n,e)),t){let i=!n.hasFocus;n.inputState.startMouseSelection(new g5(n,e,t,i)),i&&n.observer.ignore(()=>{jw(n.contentDOM);let r=n.root.activeElement;r&&!r.contains(n.contentDOM)&&r.blur()});let s=n.inputState.mouseSelection;if(s)return s.start(e),s.dragging===!1}else n.inputState.setSelectionOrigin("select.pointer");return!1};function Wx(n,e,t,i){if(i==1)return X.cursor(e,t);if(i==2)return JE(n.state,e,t);{let s=n.docView.lineAt(e,t),r=n.state.doc.lineAt(s?s.posAtEnd:e),o=s?s.posAtStart:r.from,u=s?s.posAtEnd:r.to;return uDate.now()-400&&Math.abs(e.clientX-n.clientX)<2&&Math.abs(e.clientY-n.clientY)<2?(Xx+1)%3:1}function k5(n,e){let t=n.posAndSideAtCoords({x:e.clientX,y:e.clientY},!1),i=hS(e),s=n.state.selection;return{update(r){r.docChanged&&(t.pos=r.changes.mapPos(t.pos),s=s.map(r.changes))},get(r,o,u){let f=n.posAndSideAtCoords({x:r.clientX,y:r.clientY},!1),d,p=Wx(n,f.pos,f.assoc,i);if(t.pos!=f.pos&&!o){let b=Wx(n,t.pos,t.assoc,i),x=Math.min(b.from,p.from),w=Math.max(b.to,p.to);p=x1&&(d=C5(s,f.pos))?d:u?s.addRange(p):X.create([p])}}}function C5(n,e){for(let t=0;t=e)return X.create(n.ranges.slice(0,t).concat(n.ranges.slice(t+1)),n.mainIndex==t?0:n.mainIndex-(n.mainIndex>t?1:0))}return null}Qn.dragstart=(n,e)=>{let{selection:{main:t}}=n.state;if(e.target.draggable){let s=n.docView.tile.nearest(e.target);if(s&&s.isWidget()){let r=s.posAtStart,o=r+s.length;(r>=t.to||o<=t.from)&&(t=X.range(r,o))}}let{inputState:i}=n;return i.mouseSelection&&(i.mouseSelection.dragging=!0),i.draggedContent=t,e.dataTransfer&&(e.dataTransfer.setData("Text",wh(n.state,yg,n.state.sliceDoc(t.from,t.to))),e.dataTransfer.effectAllowed="copyMove"),!1};Qn.dragend=n=>(n.inputState.draggedContent=null,!1);function Zx(n,e,t,i){if(t=wh(n.state,gg,t),!t)return;let s=n.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:r}=n.inputState,o=i&&r&&b5(n,e)?{from:r.from,to:r.to}:null,u={from:s,insert:t},f=n.state.changes(o?[o,u]:u);n.focus(),n.dispatch({changes:f,selection:{anchor:f.mapPos(s,-1),head:f.mapPos(s,1)},userEvent:o?"move.drop":"input.drop"}),n.inputState.draggedContent=null}Qn.drop=(n,e)=>{if(!e.dataTransfer)return!1;if(n.state.readOnly)return!0;let t=e.dataTransfer.files;if(t&&t.length){let i=Array(t.length),s=0,r=()=>{++s==t.length&&Zx(n,e,i.filter(o=>o!=null).join(n.state.lineBreak),!1)};for(let o=0;o{/[\x00-\x08\x0e-\x1f]{2}/.test(u.result)||(i[o]=u.result),r()},u.readAsText(t[o])}return!0}else{let i=e.dataTransfer.getData("Text");if(i)return Zx(n,e,i,!0),!0}return!1};Qn.paste=(n,e)=>{if(n.state.readOnly)return!0;n.observer.flush();let t=cS?null:e.clipboardData;return t?(uS(n,t.getData("text/plain")||t.getData("text/uri-list")),!0):(w5(n),!1)};function A5(n,e){let t=n.dom.parentNode;if(!t)return;let i=t.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.value=e,i.focus(),i.selectionEnd=e.length,i.selectionStart=0,setTimeout(()=>{i.remove(),n.focus()},50)}function M5(n){let e=[],t=[],i=!1;for(let s of n.selection.ranges)s.empty||(e.push(n.sliceDoc(s.from,s.to)),t.push(s));if(!e.length){let s=-1;for(let{from:r}of n.selection.ranges){let o=n.doc.lineAt(r);o.number>s&&(e.push(o.text),t.push({from:o.from,to:Math.min(n.doc.length,o.to+1)})),s=o.number}i=!0}return{text:wh(n,yg,e.join(n.lineBreak)),ranges:t,linewise:i}}let vp=null;Qn.copy=Qn.cut=(n,e)=>{if(!Qr(n.contentDOM,n.observer.selectionRange))return!1;let{text:t,ranges:i,linewise:s}=M5(n.state);if(!t&&!s)return!1;vp=s?t:null,e.type=="cut"&&!n.state.readOnly&&n.dispatch({changes:i,scrollIntoView:!0,userEvent:"delete.cut"});let r=cS?null:e.clipboardData;return r?(r.clearData(),r.setData("text/plain",t),!0):(A5(n,t),!1)};const fS=wi.define();function dS(n,e){let t=[];for(let i of n.facet(Yw)){let s=i(n,e);s&&t.push(s)}return t.length?n.update({effects:t,annotations:fS.of(!0)}):null}function mS(n){setTimeout(()=>{let e=n.hasFocus;if(e!=n.inputState.notifiedFocused){let t=dS(n.state,e);t?n.dispatch(t):n.update([])}},10)}qn.focus=n=>{n.inputState.lastFocusTime=Date.now(),!n.scrollDOM.scrollTop&&(n.inputState.lastScrollTop||n.inputState.lastScrollLeft)&&(n.scrollDOM.scrollTop=n.inputState.lastScrollTop,n.scrollDOM.scrollLeft=n.inputState.lastScrollLeft),mS(n)};qn.blur=n=>{n.observer.clearSelectionRange(),mS(n)};qn.compositionstart=qn.compositionupdate=n=>{n.observer.editContext||(n.inputState.compositionFirstChange==null&&(n.inputState.compositionFirstChange=!0),n.inputState.composing<0&&(n.inputState.composing=0))};qn.compositionend=n=>{n.observer.editContext||(n.inputState.composing=-1,n.inputState.compositionEndedAt=Date.now(),n.inputState.compositionPendingKey=!0,n.inputState.compositionPendingChange=n.observer.pendingRecords().length>0,n.inputState.compositionFirstChange=null,oe.chrome&&oe.android?n.observer.flushSoon():n.inputState.compositionPendingChange?Promise.resolve().then(()=>n.observer.flush()):setTimeout(()=>{n.inputState.composing<0&&n.docView.hasComposition&&n.update([])},50))};qn.contextmenu=n=>{n.inputState.lastContextMenu=Date.now()};Qn.beforeinput=(n,e)=>{var t,i;if((e.inputType=="insertText"||e.inputType=="insertCompositionText")&&(n.inputState.insertingText=e.data,n.inputState.insertingTextAt=Date.now()),e.inputType=="insertReplacementText"&&n.observer.editContext){let r=(t=e.dataTransfer)===null||t===void 0?void 0:t.getData("text/plain"),o=e.getTargetRanges();if(r&&o.length){let u=o[0],f=n.posAtDOM(u.startContainer,u.startOffset),d=n.posAtDOM(u.endContainer,u.endOffset);return wg(n,{from:f,to:d,insert:n.state.toText(r)},null),!0}}let s;if(oe.chrome&&oe.android&&(s=rS.find(r=>r.inputType==e.inputType))&&(n.observer.delayAndroidKey(s.key,s.keyCode),s.key=="Backspace"||s.key=="Delete")){let r=((i=window.visualViewport)===null||i===void 0?void 0:i.height)||0;setTimeout(()=>{var o;(((o=window.visualViewport)===null||o===void 0?void 0:o.height)||0)>r+10&&n.hasFocus&&(n.contentDOM.blur(),n.focus())},100)}return oe.ios&&e.inputType=="deleteContentForward"&&n.observer.flushSoon(),oe.safari&&e.inputType=="insertText"&&n.inputState.composing>=0&&setTimeout(()=>qn.compositionend(n,e),20),!1};const $x=new Set;function T5(n){$x.has(n)||($x.add(n),n.addEventListener("copy",()=>{}),n.addEventListener("cut",()=>{}))}const Jx=["pre-wrap","normal","pre-line","break-spaces"];let Na=!1;function ev(){Na=!1}class N5{constructor(e){this.lineWrapping=e,this.doc=qe.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,t){let i=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(i+=Math.max(0,Math.ceil((t-e-i*this.lineLength*.5)/this.lineLength))),this.lineHeight*i}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return Jx.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let i=0;i-1,f=Math.abs(t-this.lineHeight)>.3||this.lineWrapping!=u||Math.abs(i-this.charWidth)>.1;if(this.lineWrapping=u,this.lineHeight=t,this.charWidth=i,this.textHeight=s,this.lineLength=r,f){this.heightSamples={};for(let d=0;d0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>ju&&(Na=!0),this.height=e)}replace(e,t,i){return Zt.of(i)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(e,t,i,s){let r=this,o=i.doc;for(let u=s.length-1;u>=0;u--){let{fromA:f,toA:d,fromB:p,toB:b}=s[u],x=r.lineAt(f,tt.ByPosNoHeight,i.setDoc(t),0,0),w=x.to>=d?x:r.lineAt(d,tt.ByPosNoHeight,i,0,0);for(b+=w.to-d,d=w.to;u>0&&x.from<=s[u-1].toA;)f=s[u-1].fromA,p=s[u-1].fromB,u--,fr*2){let u=e[t-1];u.break?e.splice(--t,1,u.left,null,u.right):e.splice(--t,1,u.left,u.right),i+=1+u.break,s-=u.size}else if(r>s*2){let u=e[i];u.break?e.splice(i,1,u.left,null,u.right):e.splice(i,1,u.left,u.right),i+=2+u.break,r-=u.size}else break;else if(s=r&&o(this.lineAt(0,tt.ByPos,i,s,r))}setMeasuredHeight(e){let t=e.heights[e.index++];t<0?(this.spaceAbove=-t,t=e.heights[e.index++]):this.spaceAbove=0,this.setHeight(t)}updateHeight(e,t=0,i=!1,s){return s&&s.from<=t&&s.more&&this.setMeasuredHeight(s),this.outdated=!1,this}toString(){return`block(${this.length})`}}class kn extends pS{constructor(e,t,i){super(e,t,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0,this.spaceAbove=i}mainBlock(e,t){return new Yn(t,this.length,e+this.spaceAbove,this.height-this.spaceAbove,this.breaks)}replace(e,t,i){let s=i[0];return i.length==1&&(s instanceof kn||s instanceof Vt&&s.flags&4)&&Math.abs(this.length-s.length)<10?(s instanceof Vt?s=new kn(s.length,this.height,this.spaceAbove):s.height=this.height,this.outdated||(s.outdated=!1),s):Zt.of(i)}updateHeight(e,t=0,i=!1,s){return s&&s.from<=t&&s.more?this.setMeasuredHeight(s):(i||this.outdated)&&(this.spaceAbove=0,this.setHeight(Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight)),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class Vt extends Zt{constructor(e){super(e,0)}heightMetrics(e,t){let i=e.doc.lineAt(t).number,s=e.doc.lineAt(t+this.length).number,r=s-i+1,o,u=0;if(e.lineWrapping){let f=Math.min(this.height,e.lineHeight*r);o=f/r,this.length>r+1&&(u=(this.height-f)/(this.length-r-1))}else o=this.height/r;return{firstLine:i,lastLine:s,perLine:o,perChar:u}}blockAt(e,t,i,s){let{firstLine:r,lastLine:o,perLine:u,perChar:f}=this.heightMetrics(t,s);if(t.lineWrapping){let d=s+(e0){let r=i[i.length-1];r instanceof Vt?i[i.length-1]=new Vt(r.length+s):i.push(null,new Vt(s-1))}if(e>0){let r=i[0];r instanceof Vt?i[0]=new Vt(e+r.length):i.unshift(new Vt(e-1),null)}return Zt.of(i)}decomposeLeft(e,t){t.push(new Vt(e-1),null)}decomposeRight(e,t){t.push(null,new Vt(this.length-e-1))}updateHeight(e,t=0,i=!1,s){let r=t+this.length;if(s&&s.from<=t+this.length&&s.more){let o=[],u=Math.max(t,s.from),f=-1;for(s.from>t&&o.push(new Vt(s.from-t-1).updateHeight(e,t));u<=r&&s.more;){let p=e.doc.lineAt(u).length;o.length&&o.push(null);let b=s.heights[s.index++],x=0;b<0&&(x=-b,b=s.heights[s.index++]),f==-1?f=b:Math.abs(b-f)>=ju&&(f=-2);let w=new kn(p,b,x);w.outdated=!1,o.push(w),u+=p+1}u<=r&&o.push(null,new Vt(r-u).updateHeight(e,u));let d=Zt.of(o);return(f<0||Math.abs(d.height-this.height)>=ju||Math.abs(f-this.heightMetrics(e,t).perLine)>=ju)&&(Na=!0),Xu(this,d)}else(i||this.outdated)&&(this.setHeight(e.heightForGap(t,t+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}}class O5 extends Zt{constructor(e,t,i){super(e.length+t+i.length,e.height+i.height,t|(e.outdated||i.outdated?2:0)),this.left=e,this.right=i,this.size=e.size+i.size}get break(){return this.flags&1}blockAt(e,t,i,s){let r=i+this.left.height;return eu))return d;let p=t==tt.ByPosNoHeight?tt.ByPosNoHeight:tt.ByPos;return f?d.join(this.right.lineAt(u,p,i,o,u)):this.left.lineAt(u,p,i,s,r).join(d)}forEachLine(e,t,i,s,r,o){let u=s+this.left.height,f=r+this.left.length+this.break;if(this.break)e=f&&this.right.forEachLine(e,t,i,u,f,o);else{let d=this.lineAt(f,tt.ByPos,i,s,r);e=e&&d.from<=t&&o(d),t>d.to&&this.right.forEachLine(d.to+1,t,i,u,f,o)}}replace(e,t,i){let s=this.left.length+this.break;if(tthis.left.length)return this.balanced(this.left,this.right.replace(e-s,t-s,i));let r=[];e>0&&this.decomposeLeft(e,r);let o=r.length;for(let u of i)r.push(u);if(e>0&&tv(r,o-1),t=i&&t.push(null)),e>i&&this.right.decomposeLeft(e-i,t)}decomposeRight(e,t){let i=this.left.length,s=i+this.break;if(e>=s)return this.right.decomposeRight(e-s,t);e2*t.size||t.size>2*e.size?Zt.of(this.break?[e,null,t]:[e,t]):(this.left=Xu(this.left,e),this.right=Xu(this.right,t),this.setHeight(e.height+t.height),this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}updateHeight(e,t=0,i=!1,s){let{left:r,right:o}=this,u=t+r.length+this.break,f=null;return s&&s.from<=t+r.length&&s.more?f=r=r.updateHeight(e,t,i,s):r.updateHeight(e,t,i),s&&s.from<=u+o.length&&s.more?f=o=o.updateHeight(e,u,i,s):o.updateHeight(e,u,i),f?this.balanced(r,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function tv(n,e){let t,i;n[e]==null&&(t=n[e-1])instanceof Vt&&(i=n[e+1])instanceof Vt&&n.splice(e-1,3,new Vt(t.length+1+i.length))}const j5=5;class Sg{constructor(e,t){this.pos=e,this.oracle=t,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,t){if(this.lineStart>-1){let i=Math.min(t,this.lineEnd),s=this.nodes[this.nodes.length-1];s instanceof kn?s.length+=i-this.pos:(i>this.pos||!this.isCovered)&&this.nodes.push(new kn(i-this.pos,-1,0)),this.writtenTo=i,t>i&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=t}point(e,t,i){if(e=j5)&&this.addLineDeco(s,r,o)}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:t}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=t,this.writtenToe&&this.nodes.push(new kn(this.pos-e,-1,0)),this.writtenTo=this.pos}blankContent(e,t){let i=new Vt(t-e);return this.oracle.doc.lineAt(e).to==t&&(i.flags|=4),i}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof kn)return e;let t=new kn(0,-1,0);return this.nodes.push(t),t}addBlock(e){this.enterLine();let t=e.deco;t&&t.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,t&&t.endSide>0&&(this.covering=e)}addLineDeco(e,t,i){let s=this.ensureLine();s.length+=i,s.collapsed+=i,s.widgetHeight=Math.max(s.widgetHeight,e),s.breaks+=t,this.writtenTo=this.pos=this.pos+i}finish(e){let t=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(t instanceof kn)&&!this.isCovered?this.nodes.push(new kn(0,-1,0)):(this.writtenTop.clientHeight||p.scrollWidth>p.clientWidth)&&b.overflow!="visible"){let x=p.getBoundingClientRect();r=Math.max(r,x.left),o=Math.min(o,x.right),u=Math.max(u,x.top),f=Math.min(d==n.parentNode?s.innerHeight:f,x.bottom)}d=b.position=="absolute"||b.position=="fixed"?p.offsetParent:p.parentNode}else if(d.nodeType==11)d=d.host;else break;return{left:r-t.left,right:Math.max(r,o)-t.left,top:u-(t.top+e),bottom:Math.max(u,f)-(t.top+e)}}function B5(n){let e=n.getBoundingClientRect(),t=n.ownerDocument.defaultView||window;return e.left0&&e.top0}function z5(n,e){let t=n.getBoundingClientRect();return{left:0,right:t.right-t.left,top:e,bottom:t.bottom-(t.top+e)}}class gm{constructor(e,t,i,s){this.from=e,this.to=t,this.size=i,this.displaySize=s}static same(e,t){if(e.length!=t.length)return!1;for(let i=0;itypeof i!="function"&&i.class=="cm-lineWrapping");this.heightOracle=new N5(t),this.stateDeco=lv(e),this.heightMap=Zt.empty().applyChanges(this.stateDeco,qe.empty,this.heightOracle.setDoc(e.doc),[new zn(0,0,0,e.doc.length)]);for(let i=0;i<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());i++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=we.set(this.lineGaps.map(i=>i.draw(this,!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:t}=this.state.selection;for(let i=0;i<=1;i++){let s=i?t.head:t.anchor;if(!e.some(({from:r,to:o})=>s>=r&&s<=o)){let{from:r,to:o}=this.lineBlockAt(s);e.push(new cu(r,o))}}return this.viewports=e.sort((i,s)=>i.from-s.from),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?iv:new kg(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(Ir(e,this.scaler))})}update(e,t=null){this.state=e.state;let i=this.stateDeco;this.stateDeco=lv(this.state);let s=e.changedRanges,r=zn.extendWithRanges(s,R5(i,this.stateDeco,e?e.changes:Ct.empty(this.state.doc.length))),o=this.heightMap.height,u=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);ev(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),r),(this.heightMap.height!=o||Na)&&(e.flags|=2),u?(this.scrollAnchorPos=e.changes.mapPos(u.from,-1),this.scrollAnchorHeight=u.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=o);let f=r.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.headf.to)||!this.viewportIsAppropriate(f))&&(f=this.getViewport(0,t));let d=f.from!=this.viewport.from||f.to!=this.viewport.to;this.viewport=f,e.flags|=this.updateForViewport(),(d||!e.changes.empty||e.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(e.changes),t&&(this.scrollTarget=t),!this.mustEnforceCursorAssoc&&(e.selectionSet||e.focusChanged)&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(Fw)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let t=e.contentDOM,i=window.getComputedStyle(t),s=this.heightOracle,r=i.whiteSpace;this.defaultTextDirection=i.direction=="rtl"?Je.RTL:Je.LTR;let o=this.heightOracle.mustRefreshForWrapping(r)||this.mustMeasureContent==="refresh",u=t.getBoundingClientRect(),f=o||this.mustMeasureContent||this.contentDOMHeight!=u.height;this.contentDOMHeight=u.height,this.mustMeasureContent=!1;let d=0,p=0;if(u.width&&u.height){let{scaleX:q,scaleY:B}=Ow(t,u);(q>.005&&Math.abs(this.scaleX-q)>.005||B>.005&&Math.abs(this.scaleY-B)>.005)&&(this.scaleX=q,this.scaleY=B,d|=16,o=f=!0)}let b=(parseInt(i.paddingTop)||0)*this.scaleY,x=(parseInt(i.paddingBottom)||0)*this.scaleY;(this.paddingTop!=b||this.paddingBottom!=x)&&(this.paddingTop=b,this.paddingBottom=x,d|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(s.lineWrapping&&(f=!0),this.editorWidth=e.scrollDOM.clientWidth,d|=16);let w=e.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=w&&(this.scrollAnchorHeight=-1,this.scrollTop=w),this.scrolledToBottom=Rw(e.scrollDOM);let S=(this.printing?z5:L5)(t,this.paddingTop),A=S.top-this.pixelViewport.top,C=S.bottom-this.pixelViewport.bottom;this.pixelViewport=S;let T=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(T!=this.inView&&(this.inView=T,T&&(f=!0)),!this.inView&&!this.scrollTarget&&!B5(e.dom))return 0;let R=u.width;if((this.contentDOMWidth!=R||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=u.width,this.editorHeight=e.scrollDOM.clientHeight,d|=16),f){let q=e.docView.measureVisibleLineHeights(this.viewport);if(s.mustRefreshForHeights(q)&&(o=!0),o||s.lineWrapping&&Math.abs(R-this.contentDOMWidth)>s.charWidth){let{lineHeight:B,charWidth:I,textHeight:V}=e.docView.measureTextSize();o=B>0&&s.refresh(r,B,I,V,Math.max(5,R/I),q),o&&(e.docView.minWidth=0,d|=16)}A>0&&C>0?p=Math.max(A,C):A<0&&C<0&&(p=Math.min(A,C)),ev();for(let B of this.viewports){let I=B.from==this.viewport.from?q:e.docView.measureVisibleLineHeights(B);this.heightMap=(o?Zt.empty().applyChanges(this.stateDeco,qe.empty,this.heightOracle,[new zn(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(s,0,o,new E5(B.from,I))}Na&&(d|=2)}let E=!this.viewportIsAppropriate(this.viewport,p)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return E&&(d&2&&(d|=this.updateScaler()),this.viewport=this.getViewport(p,this.scrollTarget),d|=this.updateForViewport()),(d&2||E)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,e)),d|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),d}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,t){let i=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),s=this.heightMap,r=this.heightOracle,{visibleTop:o,visibleBottom:u}=this,f=new cu(s.lineAt(o-i*1e3,tt.ByHeight,r,0,0).from,s.lineAt(u+(1-i)*1e3,tt.ByHeight,r,0,0).to);if(t){let{head:d}=t.range;if(df.to){let p=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),b=s.lineAt(d,tt.ByPos,r,0,0),x;t.y=="center"?x=(b.top+b.bottom)/2-p/2:t.y=="start"||t.y=="nearest"&&d=u+Math.max(10,Math.min(i,250)))&&s>o-2*1e3&&r>1,o=s<<1;if(this.defaultTextDirection!=Je.LTR&&!i)return[];let u=[],f=(p,b,x,w)=>{if(b-pp&&TT.from>=x.from&&T.to<=x.to&&Math.abs(T.from-p)T.fromR));if(!C){if(bE.from<=b&&E.to>=b)){let E=t.moveToLineBoundary(X.cursor(b),!1,!0).head;E>p&&(b=E)}let T=this.gapSize(x,p,b,w),R=i||T<2e6?T:2e6;C=new gm(p,b,T,R)}u.push(C)},d=p=>{if(p.length2e6)for(let I of e)I.from>=p.from&&I.fromp.from&&f(p.from,w,p,b),St.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let t=this.stateDeco;this.lineGaps.length&&(t=t.concat(this.lineGapDeco));let i=[];je.spans(t,this.viewport.from,this.viewport.to,{span(r,o){i.push({from:r,to:o})},point(){}},20);let s=0;if(i.length!=this.visibleRanges.length)s=12;else for(let r=0;r=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(t=>t.from<=e&&t.to>=e)||Ir(this.heightMap.lineAt(e,tt.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(t=>t.top<=e&&t.bottom>=e)||Ir(this.heightMap.lineAt(this.scaler.fromDOM(e),tt.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(e){let t=this.lineBlockAtHeight(e+8);return t.from>=this.viewport.from||this.viewportLines[0].top-e>200?t:this.viewportLines[0]}elementAtHeight(e){return Ir(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class cu{constructor(e,t){this.from=e,this.to=t}}function V5(n,e,t){let i=[],s=n,r=0;return je.spans(t,n,e,{span(){},point(o,u){o>s&&(i.push({from:s,to:o}),r+=o-s),s=u}},20),s=1)return e[e.length-1].to;let i=Math.floor(n*t);for(let s=0;;s++){let{from:r,to:o}=e[s],u=o-r;if(i<=u)return r+i;i-=u}}function hu(n,e){let t=0;for(let{from:i,to:s}of n.ranges){if(e<=s){t+=e-i;break}t+=s-i}return t/n.total}function U5(n,e){for(let t of n)if(e(t))return t}const iv={toDOM(n){return n},fromDOM(n){return n},scale:1,eq(n){return n==this}};function lv(n){let e=n.facet(bh).filter(i=>typeof i!="function"),t=n.facet(xg).filter(i=>typeof i!="function");return t.length&&e.push(je.join(t)),e}class kg{constructor(e,t,i){let s=0,r=0,o=0;this.viewports=i.map(({from:u,to:f})=>{let d=t.lineAt(u,tt.ByPos,e,0,0).top,p=t.lineAt(f,tt.ByPos,e,0,0).bottom;return s+=p-d,{from:u,to:f,top:d,bottom:p,domTop:0,domBottom:0}}),this.scale=(7e6-s)/(t.height-s);for(let u of this.viewports)u.domTop=o+(u.top-r)*this.scale,o=u.domBottom=u.domTop+(u.bottom-u.top),r=u.bottom}toDOM(e){for(let t=0,i=0,s=0;;t++){let r=tt.from==e.viewports[i].from&&t.to==e.viewports[i].to):!1}}function Ir(n,e){if(e.scale==1)return n;let t=e.toDOM(n.top),i=e.toDOM(n.bottom);return new Yn(n.from,n.length,t,i-t,Array.isArray(n._content)?n._content.map(s=>Ir(s,e)):n._content)}const fu=ce.define({combine:n=>n.join(" ")}),wp=ce.define({combine:n=>n.indexOf(!0)>-1}),Sp=jl.newName(),gS=jl.newName(),yS=jl.newName(),bS={"&light":"."+gS,"&dark":"."+yS};function kp(n,e,t){return new jl(e,{finish(i){return/&/.test(i)?i.replace(/&\w*/,s=>{if(s=="&")return n;if(!t||!t[s])throw new RangeError(`Unsupported selector: ${s}`);return t[s]}):n+" "+i}})}const q5=kp("."+Sp,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},bS),P5={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},ym=oe.ie&&oe.ie_version<=11;class K5{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new xE,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(t=>{for(let i of t)this.queue.push(i);(oe.ie&&oe.ie_version<=11||oe.ios&&e.composing)&&t.some(i=>i.type=="childList"&&i.removedNodes.length||i.type=="characterData"&&i.oldValue.length>i.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&oe.android&&e.constructor.EDIT_CONTEXT!==!1&&!(oe.chrome&&oe.chrome_version<126)&&(this.editContext=new I5(e),e.state.facet(Ki)&&(e.contentDOM.editContext=this.editContext.editContext)),ym&&(this.onCharData=t=>{this.queue.push({target:t.target,type:"characterData",oldValue:t.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var t;((t=this.view.docView)===null||t===void 0?void 0:t.lastUpdate){this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),t.length>0&&t[t.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(t=>{t.length>0&&t[t.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(e){(e.type=="change"||!e.type)&&!e.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((t,i)=>t!=e[i]))){this.gapIntersection.disconnect();for(let t of e)this.gapIntersection.observe(t);this.gaps=e}}onSelectionChange(e){let t=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:i}=this,s=this.selectionRange;if(i.state.facet(Ki)?i.root.activeElement!=this.dom:!Qr(this.dom,s))return;let r=s.anchorNode&&i.docView.tile.nearest(s.anchorNode);if(r&&r.isWidget()&&r.widget.ignoreEvent(e)){t||(this.selectionChanged=!1);return}(oe.ie&&oe.ie_version<=11||oe.android&&oe.chrome)&&!i.state.selection.main.empty&&s.focusNode&&$r(s.focusNode,s.focusOffset,s.anchorNode,s.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=uo(e.root);if(!t)return!1;let i=oe.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&G5(this.view,t)||t;if(!i||this.selectionRange.eq(i))return!1;let s=Qr(this.dom,i);return s&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let r=this.delayedAndroidKey;r&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=r.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&r.force&&va(this.dom,r.key,r.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(s)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:t,force:this.lastChange{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let t=-1,i=-1,s=!1;for(let r of e){let o=this.readMutation(r);o&&(o.typeOver&&(s=!0),t==-1?{from:t,to:i}=o:(t=Math.min(o.from,t),i=Math.max(o.to,i)))}return{from:t,to:i,typeOver:s}}readChange(){let{from:e,to:t,typeOver:i}=this.processRecords(),s=this.selectionChanged&&Qr(this.dom,this.selectionRange);if(e<0&&!s)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let r=new o5(this.view,e,t,i);return this.view.docView.domChanged={newSel:r.newSel?r.newSel.main:null},r}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let t=this.readChange();if(!t)return this.view.requestMeasure(),!1;let i=this.view.state,s=sS(this.view,t);return this.view.state==i&&(t.domChanged||t.newSel&&!Fu(this.view.state.selection,t.newSel.main))&&this.view.update([]),s}readMutation(e){let t=this.view.docView.tile.nearest(e.target);if(!t||t.isWidget())return null;if(t.markDirty(e.type=="attributes"),e.type=="childList"){let i=sv(t,e.previousSibling||e.target.previousSibling,-1),s=sv(t,e.nextSibling||e.target.nextSibling,1);return{from:i?t.posAfter(i):t.posAtStart,to:s?t.posBefore(s):t.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet(Ki)!=e.state.facet(Ki)&&(e.view.contentDOM.editContext=e.state.facet(Ki)?this.editContext.editContext:null))}destroy(){var e,t,i;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(t=this.gapIntersection)===null||t===void 0||t.disconnect(),(i=this.resizeScroll)===null||i===void 0||i.disconnect();for(let s of this.scrollTargets)s.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}}function sv(n,e,t){for(;e;){let i=wt.get(e);if(i&&i.parent==n)return i;let s=e.parentNode;e=s!=n.dom?s:t>0?e.nextSibling:e.previousSibling}return null}function av(n,e){let t=e.startContainer,i=e.startOffset,s=e.endContainer,r=e.endOffset,o=n.docView.domAtPos(n.state.selection.main.anchor,1);return $r(o.node,o.offset,s,r)&&([t,i,s,r]=[s,r,t,i]),{anchorNode:t,anchorOffset:i,focusNode:s,focusOffset:r}}function G5(n,e){if(e.getComposedRanges){let s=e.getComposedRanges(n.root)[0];if(s)return av(n,s)}let t=null;function i(s){s.preventDefault(),s.stopImmediatePropagation(),t=s.getTargetRanges()[0]}return n.contentDOM.addEventListener("beforeinput",i,!0),n.dom.ownerDocument.execCommand("indent"),n.contentDOM.removeEventListener("beforeinput",i,!0),t?av(n,t):null}class I5{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(e.state);let t=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});this.handlers.textupdate=i=>{let s=e.state.selection.main,{anchor:r,head:o}=s,u=this.toEditorPos(i.updateRangeStart),f=this.toEditorPos(i.updateRangeEnd);e.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:i.updateRangeStart,editorBase:u,drifted:!1});let d=f-u>i.text.length;u==this.from&&rthis.to&&(f=r);let p=aS(e.state.sliceDoc(u,f),i.text,(d?s.from:s.to)-u,d?"end":null);if(!p){let x=X.single(this.toEditorPos(i.selectionStart),this.toEditorPos(i.selectionEnd));Fu(x,s)||e.dispatch({selection:x,userEvent:"select"});return}let b={from:p.from+u,to:p.toA+u,insert:qe.of(i.text.slice(p.from,p.toB).split(` +`))};if((oe.mac||oe.android)&&b.from==o-1&&/^\. ?$/.test(i.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(b={from:u,to:f,insert:qe.of([i.text.replace("."," ")])}),this.pendingContextChange=b,!e.state.readOnly){let x=this.to-this.from+(b.to-b.from+b.insert.length);wg(e,b,X.single(this.toEditorPos(i.selectionStart,x),this.toEditorPos(i.selectionEnd,x)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)),b.from=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(t.text.slice(Math.max(0,i.updateRangeStart-1),Math.min(t.text.length,i.updateRangeStart+1)))&&this.handlers.compositionend(i)},this.handlers.characterboundsupdate=i=>{let s=[],r=null;for(let o=this.toEditorPos(i.rangeStart),u=this.toEditorPos(i.rangeEnd);o{let s=[];for(let r of i.getTextFormats()){let o=r.underlineStyle,u=r.underlineThickness;if(!/none/i.test(o)&&!/none/i.test(u)){let f=this.toEditorPos(r.rangeStart),d=this.toEditorPos(r.rangeEnd);if(f{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:i}=this.composing;this.composing=null,i&&this.reset(e.state)}};for(let i in this.handlers)t.addEventListener(i,this.handlers[i]);this.measureReq={read:i=>{this.editContext.updateControlBounds(i.contentDOM.getBoundingClientRect());let s=uo(i.root);s&&s.rangeCount&&this.editContext.updateSelectionBounds(s.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let t=0,i=!1,s=this.pendingContextChange;return e.changes.iterChanges((r,o,u,f,d)=>{if(i)return;let p=d.length-(o-r);if(s&&o>=s.to)if(s.from==r&&s.to==o&&s.insert.eq(d)){s=this.pendingContextChange=null,t+=p,this.to+=p;return}else s=null,this.revertPending(e.state);if(r+=t,o+=t,o<=this.from)this.from+=p,this.to+=p;else if(rthis.to||this.to-this.from+d.length>3e4){i=!0;return}this.editContext.updateText(this.toContextPos(r),this.toContextPos(o),d.toString()),this.to+=p}t+=p}),s&&!i&&this.revertPending(e.state),!i}update(e){let t=this.pendingContextChange,i=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(i.from,i.to)&&e.transactions.some(s=>!s.isUserEvent("input.type")&&s.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||t)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:t}=e.selection.main;this.from=Math.max(0,t-1e4),this.to=Math.min(e.doc.length,t+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let t=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(t.from),this.toContextPos(t.from+t.insert.length),e.doc.sliceString(t.from,t.to))}setSelection(e){let{main:t}=e.selection,i=this.toContextPos(Math.max(this.from,Math.min(this.to,t.anchor))),s=this.toContextPos(t.head);(this.editContext.selectionStart!=i||this.editContext.selectionEnd!=s)&&this.editContext.updateSelection(i,s)}rangeIsValid(e){let{head:t}=e.selection.main;return!(this.from>0&&t-this.from<500||this.to1e4*3)}toEditorPos(e,t=this.to-this.from){e=Math.min(e,t);let i=this.composing;return i&&i.drifted?i.editorBase+(e-i.contextBase):e+this.from}toContextPos(e){let t=this.composing;return t&&t.drifted?t.contextBase+(e-t.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}}class re{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var t;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),e.parent&&e.parent.appendChild(this.dom);let{dispatch:i}=e;this.dispatchTransactions=e.dispatchTransactions||i&&(s=>s.forEach(r=>i(r,this)))||(s=>this.update(s)),this.dispatch=this.dispatch.bind(this),this._root=e.root||vE(e.parent)||document,this.viewState=new nv(e.state||ze.create(e)),e.scrollTo&&e.scrollTo.is(au)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(da).map(s=>new hm(s));for(let s of this.plugins)s.update(this);this.observer=new K5(this),this.inputState=new f5(this),this.inputState.ensureHandlers(this.plugins),this.docView=new Kx(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((t=document.fonts)===null||t===void 0)&&t.ready&&document.fonts.ready.then(()=>{this.viewState.mustMeasureContent="refresh",this.requestMeasure()})}dispatch(...e){let t=e.length==1&&e[0]instanceof At?e:e.length==1&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(t,this)}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let t=!1,i=!1,s,r=this.state;for(let x of e){if(x.startState!=r)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");r=x.state}if(this.destroyed){this.viewState.state=r;return}let o=this.hasFocus,u=0,f=null;e.some(x=>x.annotation(fS))?(this.inputState.notifiedFocused=o,u=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,f=dS(r,o),f||(u=1));let d=this.observer.delayedAndroidKey,p=null;if(d?(this.observer.clearDelayedAndroidKey(),p=this.observer.readChange(),(p&&!this.state.doc.eq(r.doc)||!this.state.selection.eq(r.selection))&&(p=null)):this.observer.clear(),r.facet(ze.phrases)!=this.state.facet(ze.phrases))return this.setState(r);s=Iu.create(this,r,e),s.flags|=u;let b=this.viewState.scrollTarget;try{this.updateState=2;for(let x of e){if(b&&(b=b.map(x.changes)),x.scrollIntoView){let{main:w}=x.state.selection;b=new wa(w.empty?w:X.cursor(w.head,w.head>w.anchor?-1:1))}for(let w of x.effects)w.is(au)&&(b=w.value.clip(this.state))}this.viewState.update(s,b),this.bidiCache=Qu.update(this.bidiCache,s.changes),s.empty||(this.updatePlugins(s),this.inputState.update(s)),t=this.docView.update(s),this.state.facet(Kr)!=this.styleModules&&this.mountStyles(),i=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(t,e.some(x=>x.isUserEvent("select.pointer")))}finally{this.updateState=0}if(s.startState.facet(fu)!=s.state.facet(fu)&&(this.viewState.mustMeasureContent=!0),(t||i||b||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),t&&this.docViewUpdate(),!s.empty)for(let x of this.state.facet(gp))try{x(s)}catch(w){un(this.state,w,"update listener")}(f||p)&&Promise.resolve().then(()=>{f&&this.state==f.startState&&this.dispatch(f),p&&!sS(this,p)&&d.force&&va(this.contentDOM,d.key,d.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let t=this.hasFocus;try{for(let i of this.plugins)i.destroy(this);this.viewState=new nv(e),this.plugins=e.facet(da).map(i=>new hm(i)),this.pluginMap.clear();for(let i of this.plugins)i.update(this);this.docView.destroy(),this.docView=new Kx(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}updatePlugins(e){let t=e.startState.facet(da),i=e.state.facet(da);if(t!=i){let s=[];for(let r of i){let o=t.indexOf(r);if(o<0)s.push(new hm(r));else{let u=this.plugins[o];u.mustUpdate=e,s.push(u)}}for(let r of this.plugins)r.mustUpdate!=e&&r.destroy(this);this.plugins=s,this.pluginMap.clear()}else for(let s of this.plugins)s.mustUpdate=e;for(let s=0;s-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,e&&this.observer.forceFlush();let t=null,i=this.scrollDOM,s=i.scrollTop*this.scaleY,{scrollAnchorPos:r,scrollAnchorHeight:o}=this.viewState;Math.abs(s-this.viewState.scrollTop)>1&&(o=-1),this.viewState.scrollAnchorHeight=-1;try{for(let u=0;;u++){if(o<0)if(Rw(i))r=-1,o=this.viewState.heightMap.height;else{let w=this.viewState.scrollAnchorAt(s);r=w.from,o=w.top}this.updateState=1;let f=this.viewState.measure(this);if(!f&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(u>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let d=[];f&4||([this.measureRequests,d]=[d,this.measureRequests]);let p=d.map(w=>{try{return w.read(this)}catch(S){return un(this.state,S),rv}}),b=Iu.create(this,this.state,[]),x=!1;b.flags|=f,t?t.flags|=f:t=b,this.updateState=2,b.empty||(this.updatePlugins(b),this.inputState.update(b),this.updateAttrs(),x=this.docView.update(b),x&&this.docViewUpdate());for(let w=0;w1||S<-1){s=s+S,i.scrollTop=s/this.scaleY,o=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let u of this.state.facet(gp))u(t)}get themeClasses(){return Sp+" "+(this.state.facet(wp)?yS:gS)+" "+this.state.facet(fu)}updateAttrs(){let e=ov(this,Zw,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(Ki)?"true":"false",class:"cm-content",style:`${oe.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),ov(this,bg,t);let i=this.observer.ignore(()=>{let s=zx(this.contentDOM,this.contentAttrs,t),r=zx(this.dom,this.editorAttrs,e);return s||r});return this.editorAttrs=e,this.contentAttrs=t,i}showAnnouncements(e){let t=!0;for(let i of e)for(let s of i.effects)if(s.is(re.announce)){t&&(this.announceDOM.textContent=""),t=!1;let r=this.announceDOM.appendChild(document.createElement("div"));r.textContent=s.value}}mountStyles(){this.styleModules=this.state.facet(Kr);let e=this.state.facet(re.cspNonce);jl.mount(this.root,this.styleModules.concat(q5).reverse(),e?{nonce:e}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let t=0;ti.plugin==e)||null),t&&t.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,t,i){return pm(this,e,Gx(this,e,t,i))}moveByGroup(e,t){return pm(this,e,Gx(this,e,t,i=>n5(this,e.head,i)))}visualLineSide(e,t){let i=this.bidiSpans(e),s=this.textDirectionAt(e.from),r=i[t?i.length-1:0];return X.cursor(r.side(t,s)+e.from,r.forward(!t,s)?1:-1)}moveToLineBoundary(e,t,i=!0){return t5(this,e,t,i)}moveVertically(e,t,i){return pm(this,e,i5(this,e,t,i))}domAtPos(e,t=1){return this.docView.domAtPos(e,t)}posAtDOM(e,t=0){return this.docView.posFromDOM(e,t)}posAtCoords(e,t=!0){this.readMeasured();let i=xp(this,e,t);return i&&i.pos}posAndSideAtCoords(e,t=!0){return this.readMeasured(),xp(this,e,t)}coordsAtPos(e,t=1){this.readMeasured();let i=this.docView.coordsAt(e,t);if(!i||i.left==i.right)return i;let s=this.state.doc.lineAt(e),r=this.bidiSpans(s),o=r[gi.find(r,e-s.from,-1,t)];return ho(i,o.dir==Je.LTR==t>0)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(Ww)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>Y5)return Vw(e.length);let t=this.textDirectionAt(e.from),i;for(let r of this.bidiCache)if(r.from==e.from&&r.dir==t&&(r.fresh||Hw(r.isolates,i=Ux(this,e))))return r.order;i||(i=Ux(this,e));let s=NE(e.text,t,i);return this.bidiCache.push(new Qu(e.from,e.to,t,i,!0,s)),s}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||oe.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{jw(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,t={}){return au.of(new wa(typeof e=="number"?X.cursor(e):e,t.y,t.x,t.yMargin,t.xMargin))}scrollSnapshot(){let{scrollTop:e,scrollLeft:t}=this.scrollDOM,i=this.viewState.scrollAnchorAt(e);return au.of(new wa(X.cursor(i.from),"start","start",i.top-e,t,!0))}setTabFocusMode(e){e==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof e=="boolean"?this.inputState.tabFocusMode=e?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+e)}static domEventHandlers(e){return ft.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return ft.define(()=>({}),{eventObservers:e})}static theme(e,t){let i=jl.newName(),s=[fu.of(i),Kr.of(kp(`.${i}`,e))];return t&&t.dark&&s.push(wp.of(!0)),s}static baseTheme(e){return Ss.lowest(Kr.of(kp("."+Sp,e,bS)))}static findFromDOM(e){var t;let i=e.querySelector(".cm-content"),s=i&&wt.get(i)||wt.get(e);return((t=s==null?void 0:s.root)===null||t===void 0?void 0:t.view)||null}}re.styleModule=Kr;re.inputHandler=Iw;re.clipboardInputFilter=gg;re.clipboardOutputFilter=yg;re.scrollHandler=Xw;re.focusChangeEffect=Yw;re.perLineTextDirection=Ww;re.exceptionSink=Gw;re.updateListener=gp;re.editable=Ki;re.mouseSelectionStyle=Kw;re.dragMovesSelection=Pw;re.clickAddsSelectionRange=qw;re.decorations=bh;re.blockWrappers=$w;re.outerDecorations=xg;re.atomicRanges=Do;re.bidiIsolatedRanges=Jw;re.scrollMargins=eS;re.darkTheme=wp;re.cspNonce=ce.define({combine:n=>n.length?n[0]:""});re.contentAttributes=bg;re.editorAttributes=Zw;re.lineWrapping=re.contentAttributes.of({class:"cm-lineWrapping"});re.announce=Me.define();const Y5=4096,rv={};class Qu{constructor(e,t,i,s,r,o){this.from=e,this.to=t,this.dir=i,this.isolates=s,this.fresh=r,this.order=o}static update(e,t){if(t.empty&&!e.some(r=>r.fresh))return e;let i=[],s=e.length?e[e.length-1].dir:Je.LTR;for(let r=Math.max(0,e.length-10);r=0;s--){let r=i[s],o=typeof r=="function"?r(n):r;o&&dg(o,t)}return t}const W5=oe.mac?"mac":oe.windows?"win":oe.linux?"linux":"key";function F5(n,e){const t=n.split(/-(?!$)/);let i=t[t.length-1];i=="Space"&&(i=" ");let s,r,o,u;for(let f=0;fi.concat(s),[]))),t}function Q5(n,e,t){return vS(xS(n.state),e,n,t)}let Ml=null;const Z5=4e3;function $5(n,e=W5){let t=Object.create(null),i=Object.create(null),s=(o,u)=>{let f=i[o];if(f==null)i[o]=u;else if(f!=u)throw new Error("Key binding "+o+" is used both as a regular binding and as a multi-stroke prefix")},r=(o,u,f,d,p)=>{var b,x;let w=t[o]||(t[o]=Object.create(null)),S=u.split(/ (?!$)/).map(T=>F5(T,e));for(let T=1;T{let q=Ml={view:E,prefix:R,scope:o};return setTimeout(()=>{Ml==q&&(Ml=null)},Z5),!0}]})}let A=S.join(" ");s(A,!1);let C=w[A]||(w[A]={preventDefault:!1,stopPropagation:!1,run:((x=(b=w._any)===null||b===void 0?void 0:b.run)===null||x===void 0?void 0:x.slice())||[]});f&&C.run.push(f),d&&(C.preventDefault=!0),p&&(C.stopPropagation=!0)};for(let o of n){let u=o.scope?o.scope.split(" "):["editor"];if(o.any)for(let d of u){let p=t[d]||(t[d]=Object.create(null));p._any||(p._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:b}=o;for(let x in p)p[x].run.push(w=>b(w,Cp))}let f=o[e]||o.key;if(f)for(let d of u)r(d,f,o.run,o.preventDefault,o.stopPropagation),o.shift&&r(d,"Shift-"+f,o.shift,o.preventDefault,o.stopPropagation)}return t}let Cp=null;function vS(n,e,t,i){Cp=e;let s=hE(e),r=rn(s,0),o=mi(r)==s.length&&s!=" ",u="",f=!1,d=!1,p=!1;Ml&&Ml.view==t&&Ml.scope==i&&(u=Ml.prefix+" ",oS.indexOf(e.keyCode)<0&&(d=!0,Ml=null));let b=new Set,x=C=>{if(C){for(let T of C.run)if(!b.has(T)&&(b.add(T),T(t)))return C.stopPropagation&&(p=!0),!0;C.preventDefault&&(C.stopPropagation&&(p=!0),d=!0)}return!1},w=n[i],S,A;return w&&(x(w[u+du(s,e,!o)])?f=!0:o&&(e.altKey||e.metaKey||e.ctrlKey)&&!(oe.windows&&e.ctrlKey&&e.altKey)&&!(oe.mac&&e.altKey&&!(e.ctrlKey||e.metaKey))&&(S=Rl[e.keyCode])&&S!=s?(x(w[u+du(S,e,!0)])||e.shiftKey&&(A=oo[e.keyCode])!=s&&A!=S&&x(w[u+du(A,e,!1)]))&&(f=!0):o&&e.shiftKey&&x(w[u+du(s,e,!0)])&&(f=!0),!f&&x(w._any)&&(f=!0)),d&&(f=!0),f&&p&&e.stopPropagation(),Cp=null,f}class Oo{constructor(e,t,i,s,r){this.className=e,this.left=t,this.top=i,this.width=s,this.height=r}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,t){return t.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,t,i){if(i.empty){let s=e.coordsAtPos(i.head,i.assoc||1);if(!s)return[];let r=wS(e);return[new Oo(t,s.left-r.left,s.top-r.top,null,s.bottom-s.top)]}else return J5(e,t,i)}}function wS(n){let e=n.scrollDOM.getBoundingClientRect();return{left:(n.textDirection==Je.LTR?e.left:e.right-n.scrollDOM.clientWidth*n.scaleX)-n.scrollDOM.scrollLeft*n.scaleX,top:e.top-n.scrollDOM.scrollTop*n.scaleY}}function uv(n,e,t,i){let s=n.coordsAtPos(e,t*2);if(!s)return i;let r=n.dom.getBoundingClientRect(),o=(s.top+s.bottom)/2,u=n.posAtCoords({x:r.left+1,y:o}),f=n.posAtCoords({x:r.right-1,y:o});return u==null||f==null?i:{from:Math.max(i.from,Math.min(u,f)),to:Math.min(i.to,Math.max(u,f))}}function J5(n,e,t){if(t.to<=n.viewport.from||t.from>=n.viewport.to)return[];let i=Math.max(t.from,n.viewport.from),s=Math.min(t.to,n.viewport.to),r=n.textDirection==Je.LTR,o=n.contentDOM,u=o.getBoundingClientRect(),f=wS(n),d=o.querySelector(".cm-line"),p=d&&window.getComputedStyle(d),b=u.left+(p?parseInt(p.paddingLeft)+Math.min(0,parseInt(p.textIndent)):0),x=u.right-(p?parseInt(p.paddingRight):0),w=bp(n,i,1),S=bp(n,s,-1),A=w.type==qt.Text?w:null,C=S.type==qt.Text?S:null;if(A&&(n.lineWrapping||w.widgetLineBreaks)&&(A=uv(n,i,1,A)),C&&(n.lineWrapping||S.widgetLineBreaks)&&(C=uv(n,s,-1,C)),A&&C&&A.from==C.from&&A.to==C.to)return R(E(t.from,t.to,A));{let B=A?E(t.from,null,A):q(w,!1),I=C?E(null,t.to,C):q(S,!0),V=[];return(A||w).to<(C||S).from-(A&&C?1:0)||w.widgetLineBreaks>1&&B.bottom+n.defaultLineHeight/2ne&&J.from=z)break;ge>ve&&fe(Math.max(ie,ve),B==null&&ie<=ne,Math.min(ge,z),I==null&&ge>=pe,$.dir)}if(ve=K.to+1,ve>=z)break}return ue.length==0&&fe(ne,B==null,pe,I==null,n.textDirection),{top:Q,bottom:Z,horizontal:ue}}function q(B,I){let V=u.top+(I?B.top:B.bottom);return{top:V,bottom:V,horizontal:[]}}}function eD(n,e){return n.constructor==e.constructor&&n.eq(e)}class tD{constructor(e,t){this.view=e,this.layer=t,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),t.above&&this.dom.classList.add("cm-layer-above"),t.class&&this.dom.classList.add(t.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),t.mount&&t.mount(this.dom,e)}update(e){e.startState.facet(Ru)!=e.state.facet(Ru)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){this.layer.updateOnDocViewUpdate!==!1&&e.requestMeasure(this.measureReq)}setOrder(e){let t=0,i=e.facet(Ru);for(;t!eD(t,this.drawn[i]))){let t=this.dom.firstChild,i=0;for(let s of e)s.update&&t&&s.constructor&&this.drawn[i].constructor&&s.update(t,this.drawn[i])?(t=t.nextSibling,i++):this.dom.insertBefore(s.draw(),t);for(;t;){let s=t.nextSibling;t.remove(),t=s}this.drawn=e,oe.safari&&oe.safari_version>=26&&(this.dom.style.display=this.dom.firstChild?"":"none")}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}}const Ru=ce.define();function SS(n){return[ft.define(e=>new tD(e,n)),Ru.of(n)]}const mo=ce.define({combine(n){return Si(n,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,t)=>Math.min(e,t),drawRangeCursor:(e,t)=>e||t})}});function nD(n={}){return[mo.of(n),iD,lD,sD,Fw.of(!0)]}function kS(n){return n.startState.facet(mo)!=n.state.facet(mo)}const iD=SS({above:!0,markers(n){let{state:e}=n,t=e.facet(mo),i=[];for(let s of e.selection.ranges){let r=s==e.selection.main;if(s.empty||t.drawRangeCursor){let o=r?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",u=s.empty?s:X.cursor(s.head,s.head>s.anchor?-1:1);for(let f of Oo.forRange(n,o,u))i.push(f)}}return i},update(n,e){n.transactions.some(i=>i.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let t=kS(n);return t&&hv(n.state,e),n.docChanged||n.selectionSet||t},mount(n,e){hv(e.state,n)},class:"cm-cursorLayer"});function hv(n,e){e.style.animationDuration=n.facet(mo).cursorBlinkRate+"ms"}const lD=SS({above:!1,markers(n){return n.state.selection.ranges.map(e=>e.empty?[]:Oo.forRange(n,"cm-selectionBackground",e)).reduce((e,t)=>e.concat(t))},update(n,e){return n.docChanged||n.selectionSet||n.viewportChanged||kS(n)},class:"cm-selectionLayer"}),sD=Ss.highest(re.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:"transparent !important"},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),CS=Me.define({map(n,e){return n==null?null:e.mapPos(n)}}),Yr=It.define({create(){return null},update(n,e){return n!=null&&(n=e.changes.mapPos(n)),e.effects.reduce((t,i)=>i.is(CS)?i.value:t,n)}}),aD=ft.fromClass(class{constructor(n){this.view=n,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(n){var e;let t=n.state.field(Yr);t==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(n.startState.field(Yr)!=t||n.docChanged||n.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:n}=this,e=n.state.field(Yr),t=e!=null&&n.coordsAtPos(e);if(!t)return null;let i=n.scrollDOM.getBoundingClientRect();return{left:t.left-i.left+n.scrollDOM.scrollLeft*n.scaleX,top:t.top-i.top+n.scrollDOM.scrollTop*n.scaleY,height:t.bottom-t.top}}drawCursor(n){if(this.cursor){let{scaleX:e,scaleY:t}=this.view;n?(this.cursor.style.left=n.left/e+"px",this.cursor.style.top=n.top/t+"px",this.cursor.style.height=n.height/t+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(n){this.view.state.field(Yr)!=n&&this.view.dispatch({effects:CS.of(n)})}},{eventObservers:{dragover(n){this.setDropPos(this.view.posAtCoords({x:n.clientX,y:n.clientY}))},dragleave(n){(n.target==this.view.contentDOM||!this.view.contentDOM.contains(n.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function rD(){return[Yr,aD]}function fv(n,e,t,i,s){e.lastIndex=0;for(let r=n.iterRange(t,i),o=t,u;!r.next().done;o+=r.value.length)if(!r.lineBreak)for(;u=e.exec(r.value);)s(o+u.index,u)}function oD(n,e){let t=n.visibleRanges;if(t.length==1&&t[0].from==n.viewport.from&&t[0].to==n.viewport.to)return t;let i=[];for(let{from:s,to:r}of t)s=Math.max(n.state.doc.lineAt(s).from,s-e),r=Math.min(n.state.doc.lineAt(r).to,r+e),i.length&&i[i.length-1].to>=s?i[i.length-1].to=r:i.push({from:s,to:r});return i}class cD{constructor(e){const{regexp:t,decoration:i,decorate:s,boundary:r,maxLength:o=1e3}=e;if(!t.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=t,s)this.addMatch=(u,f,d,p)=>s(p,d,d+u[0].length,u,f);else if(typeof i=="function")this.addMatch=(u,f,d,p)=>{let b=i(u,f,d);b&&p(d,d+u[0].length,b)};else if(i)this.addMatch=(u,f,d,p)=>p(d,d+u[0].length,i);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=r,this.maxLength=o}createDeco(e){let t=new Fi,i=t.add.bind(t);for(let{from:s,to:r}of oD(e,this.maxLength))fv(e.state.doc,this.regexp,s,r,(o,u)=>this.addMatch(u,e,o,i));return t.finish()}updateDeco(e,t){let i=1e9,s=-1;return e.docChanged&&e.changes.iterChanges((r,o,u,f)=>{f>=e.view.viewport.from&&u<=e.view.viewport.to&&(i=Math.min(u,i),s=Math.max(f,s))}),e.viewportMoved||s-i>1e3?this.createDeco(e.view):s>-1?this.updateRange(e.view,t.map(e.changes),i,s):t}updateRange(e,t,i,s){for(let r of e.visibleRanges){let o=Math.max(r.from,i),u=Math.min(r.to,s);if(u>=o){let f=e.state.doc.lineAt(o),d=f.tof.from;o--)if(this.boundary.test(f.text[o-1-f.from])){p=o;break}for(;ux.push(T.range(A,C));if(f==d)for(this.regexp.lastIndex=p-f.from;(w=this.regexp.exec(f.text))&&w.indexthis.addMatch(C,e,A,S));t=t.update({filterFrom:p,filterTo:b,filter:(A,C)=>Ab,add:x})}}return t}}const Ap=/x/.unicode!=null?"gu":"g",uD=new RegExp(`[\0-\b +--Ÿ­؜​‎‏\u2028\u2029‭‮⁦⁧⁩\uFEFF-]`,Ap),hD={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let bm=null;function fD(){var n;if(bm==null&&typeof document<"u"&&document.body){let e=document.body.style;bm=((n=e.tabSize)!==null&&n!==void 0?n:e.MozTabSize)!=null}return bm||!1}const _u=ce.define({combine(n){let e=Si(n,{render:null,specialChars:uD,addSpecialChars:null});return(e.replaceTabs=!fD())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,Ap)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,Ap)),e}});function dD(n={}){return[_u.of(n),mD()]}let dv=null;function mD(){return dv||(dv=ft.fromClass(class{constructor(n){this.view=n,this.decorations=we.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(n.state.facet(_u)),this.decorations=this.decorator.createDeco(n)}makeDecorator(n){return new cD({regexp:n.specialChars,decoration:(e,t,i)=>{let{doc:s}=t.state,r=rn(e[0],0);if(r==9){let o=s.lineAt(i),u=t.state.tabSize,f=La(o.text,u,i-o.from);return we.replace({widget:new bD((u-f%u)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[r]||(this.decorationCache[r]=we.replace({widget:new yD(n,r)}))},boundary:n.replaceTabs?void 0:/[^]/})}update(n){let e=n.state.facet(_u);n.startState.facet(_u)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(n.view)):this.decorations=this.decorator.updateDeco(n,this.decorations)}},{decorations:n=>n.decorations}))}const pD="•";function gD(n){return n>=32?pD:n==10?"␤":String.fromCharCode(9216+n)}class yD extends ki{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=gD(this.code),i=e.state.phrase("Control character")+" "+(hD[this.code]||"0x"+this.code.toString(16)),s=this.options.render&&this.options.render(this.code,i,t);if(s)return s;let r=document.createElement("span");return r.textContent=t,r.title=i,r.setAttribute("aria-label",i),r.className="cm-specialChar",r}ignoreEvent(){return!1}}class bD extends ki{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}}function xD(){return wD}const vD=we.line({class:"cm-activeLine"}),wD=ft.fromClass(class{constructor(n){this.decorations=this.getDeco(n)}update(n){(n.docChanged||n.selectionSet)&&(this.decorations=this.getDeco(n.view))}getDeco(n){let e=-1,t=[];for(let i of n.state.selection.ranges){let s=n.lineBlockAt(i.head);s.from>e&&(t.push(vD.range(s.from)),e=s.from)}return we.set(t)}},{decorations:n=>n.decorations});class SD extends ki{constructor(e){super(),this.content=e}toDOM(e){let t=document.createElement("span");return t.className="cm-placeholder",t.style.pointerEvents="none",t.appendChild(typeof this.content=="string"?document.createTextNode(this.content):typeof this.content=="function"?this.content(e):this.content.cloneNode(!0)),t.setAttribute("aria-hidden","true"),t}coordsAt(e){let t=e.firstChild?Zr(e.firstChild):[];if(!t.length)return null;let i=window.getComputedStyle(e.parentNode),s=ho(t[0],i.direction!="rtl"),r=parseInt(i.lineHeight);return s.bottom-s.top>r*1.5?{left:s.left,right:s.right,top:s.top,bottom:s.top+r}:s}ignoreEvent(){return!1}}function kD(n){let e=ft.fromClass(class{constructor(t){this.view=t,this.placeholder=n?we.set([we.widget({widget:new SD(n),side:1}).range(0)]):we.none}get decorations(){return this.view.state.doc.length?we.none:this.placeholder}},{decorations:t=>t.decorations});return typeof n=="string"?[e,re.contentAttributes.of({"aria-placeholder":n})]:e}const Mp=2e3;function CD(n,e,t){let i=Math.min(e.line,t.line),s=Math.max(e.line,t.line),r=[];if(e.off>Mp||t.off>Mp||e.col<0||t.col<0){let o=Math.min(e.off,t.off),u=Math.max(e.off,t.off);for(let f=i;f<=s;f++){let d=n.doc.line(f);d.length<=u&&r.push(X.range(d.from+o,d.to+u))}}else{let o=Math.min(e.col,t.col),u=Math.max(e.col,t.col);for(let f=i;f<=s;f++){let d=n.doc.line(f),p=sp(d.text,o,n.tabSize,!0);if(p<0)r.push(X.cursor(d.to));else{let b=sp(d.text,u,n.tabSize);r.push(X.range(d.from+p,d.from+b))}}}return r}function AD(n,e){let t=n.coordsAtPos(n.viewport.from);return t?Math.round(Math.abs((t.left-e)/n.defaultCharacterWidth)):-1}function mv(n,e){let t=n.posAtCoords({x:e.clientX,y:e.clientY},!1),i=n.state.doc.lineAt(t),s=t-i.from,r=s>Mp?-1:s==i.length?AD(n,e.clientX):La(i.text,n.state.tabSize,t-i.from);return{line:i.number,col:r,off:s}}function MD(n,e){let t=mv(n,e),i=n.state.selection;return t?{update(s){if(s.docChanged){let r=s.changes.mapPos(s.startState.doc.line(t.line).from),o=s.state.doc.lineAt(r);t={line:o.number,col:t.col,off:Math.min(t.off,o.length)},i=i.map(s.changes)}},get(s,r,o){let u=mv(n,s);if(!u)return i;let f=CD(n.state,t,u);return f.length?o?X.create(f.concat(i.ranges)):X.create(f):i}}:null}function TD(n){let e=(t=>t.altKey&&t.button==0);return re.mouseSelectionStyle.of((t,i)=>e(i)?MD(t,i):null)}const ND={Alt:[18,n=>!!n.altKey],Control:[17,n=>!!n.ctrlKey],Shift:[16,n=>!!n.shiftKey],Meta:[91,n=>!!n.metaKey]},ED={style:"cursor: crosshair"};function DD(n={}){let[e,t]=ND[n.key||"Alt"],i=ft.fromClass(class{constructor(s){this.view=s,this.isDown=!1}set(s){this.isDown!=s&&(this.isDown=s,this.view.update([]))}},{eventObservers:{keydown(s){this.set(s.keyCode==e||t(s))},keyup(s){(s.keyCode==e||!t(s))&&this.set(!1)},mousemove(s){this.set(t(s))}}});return[i,re.contentAttributes.of(s=>{var r;return!((r=s.plugin(i))===null||r===void 0)&&r.isDown?ED:null})]}const mu="-10000px";class AS{constructor(e,t,i,s){this.facet=t,this.createTooltipView=i,this.removeTooltipView=s,this.input=e.state.facet(t),this.tooltips=this.input.filter(o=>o);let r=null;this.tooltipViews=this.tooltips.map(o=>r=i(o,r))}update(e,t){var i;let s=e.state.facet(this.facet),r=s.filter(f=>f);if(s===this.input){for(let f of this.tooltipViews)f.update&&f.update(e);return!1}let o=[],u=t?[]:null;for(let f=0;ft[d]=f),t.length=u.length),this.input=s,this.tooltips=r,this.tooltipViews=o,!0}}function OD(n){let e=n.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:e.clientHeight,right:e.clientWidth}}const xm=ce.define({combine:n=>{var e,t,i;return{position:oe.ios?"absolute":((e=n.find(s=>s.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((t=n.find(s=>s.parent))===null||t===void 0?void 0:t.parent)||null,tooltipSpace:((i=n.find(s=>s.tooltipSpace))===null||i===void 0?void 0:i.tooltipSpace)||OD}}}),pv=new WeakMap,Cg=ft.fromClass(class{constructor(n){this.view=n,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let e=n.state.facet(xm);this.position=e.position,this.parent=e.parent,this.classes=n.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver=typeof ResizeObserver=="function"?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new AS(n,Ag,(t,i)=>this.createTooltip(t,i),t=>{this.resizeObserver&&this.resizeObserver.unobserve(t.dom),t.dom.remove()}),this.above=this.manager.tooltips.map(t=>!!t.above),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(t=>{Date.now()>this.lastTransaction-50&&t.length>0&&t[t.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),n.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let n of this.manager.tooltipViews)this.intersectionObserver.observe(n.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(n){n.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(n,this.above);e&&this.observeIntersection();let t=e||n.geometryChanged,i=n.state.facet(xm);if(i.position!=this.position&&!this.madeAbsolute){this.position=i.position;for(let s of this.manager.tooltipViews)s.dom.style.position=this.position;t=!0}if(i.parent!=this.parent){this.parent&&this.container.remove(),this.parent=i.parent,this.createContainer();for(let s of this.manager.tooltipViews)this.container.appendChild(s.dom);t=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);t&&this.maybeMeasure()}createTooltip(n,e){let t=n.create(this.view),i=e?e.dom:null;if(t.dom.classList.add("cm-tooltip"),n.arrow&&!t.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let s=document.createElement("div");s.className="cm-tooltip-arrow",t.dom.appendChild(s)}return t.dom.style.position=this.position,t.dom.style.top=mu,t.dom.style.left="0px",this.container.insertBefore(t.dom,i),t.mount&&t.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(t.dom),t}destroy(){var n,e,t;this.view.win.removeEventListener("resize",this.measureSoon);for(let i of this.manager.tooltipViews)i.dom.remove(),(n=i.destroy)===null||n===void 0||n.call(i);this.parent&&this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(t=this.intersectionObserver)===null||t===void 0||t.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let n=1,e=1,t=!1;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:r}=this.manager.tooltipViews[0];if(oe.safari){let o=r.getBoundingClientRect();t=Math.abs(o.top+1e4)>1||Math.abs(o.left)>1}else t=!!r.offsetParent&&r.offsetParent!=this.container.ownerDocument.body}if(t||this.position=="absolute")if(this.parent){let r=this.parent.getBoundingClientRect();r.width&&r.height&&(n=r.width/this.parent.offsetWidth,e=r.height/this.parent.offsetHeight)}else({scaleX:n,scaleY:e}=this.view.viewState);let i=this.view.scrollDOM.getBoundingClientRect(),s=vg(this.view);return{visible:{left:i.left+s.left,top:i.top+s.top,right:i.right-s.right,bottom:i.bottom-s.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map((r,o)=>{let u=this.manager.tooltipViews[o];return u.getCoords?u.getCoords(r.pos):this.view.coordsAtPos(r.pos)}),size:this.manager.tooltipViews.map(({dom:r})=>r.getBoundingClientRect()),space:this.view.state.facet(xm).tooltipSpace(this.view),scaleX:n,scaleY:e,makeAbsolute:t}}writeMeasure(n){var e;if(n.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let u of this.manager.tooltipViews)u.dom.style.position="absolute"}let{visible:t,space:i,scaleX:s,scaleY:r}=n,o=[];for(let u=0;u=Math.min(t.bottom,i.bottom)||b.rightMath.min(t.right,i.right)+.1)){p.style.top=mu;continue}let w=f.arrow?d.dom.querySelector(".cm-tooltip-arrow"):null,S=w?7:0,A=x.right-x.left,C=(e=pv.get(d))!==null&&e!==void 0?e:x.bottom-x.top,T=d.offset||RD,R=this.view.textDirection==Je.LTR,E=x.width>i.right-i.left?R?i.left:i.right-x.width:R?Math.max(i.left,Math.min(b.left-(w?14:0)+T.x,i.right-A)):Math.min(Math.max(i.left,b.left-A+(w?14:0)-T.x),i.right-A),q=this.above[u];!f.strictSide&&(q?b.top-C-S-T.yi.bottom)&&q==i.bottom-b.bottom>b.top-i.top&&(q=this.above[u]=!q);let B=(q?b.top-i.top:i.bottom-b.bottom)-S;if(BE&&Q.topI&&(I=q?Q.top-C-2-S:Q.bottom+S+2);if(this.position=="absolute"?(p.style.top=(I-n.parent.top)/r+"px",gv(p,(E-n.parent.left)/s)):(p.style.top=I/r+"px",gv(p,E/s)),w){let Q=b.left+(R?T.x:-T.x)-(E+14-7);w.style.left=Q/s+"px"}d.overlap!==!0&&o.push({left:E,top:I,right:V,bottom:I+C}),p.classList.toggle("cm-tooltip-above",q),p.classList.toggle("cm-tooltip-below",!q),d.positioned&&d.positioned(n.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let n of this.manager.tooltipViews)n.dom.style.top=mu}},{eventObservers:{scroll(){this.maybeMeasure()}}});function gv(n,e){let t=parseInt(n.style.left,10);(isNaN(t)||Math.abs(e-t)>1)&&(n.style.left=e+"px")}const jD=re.baseTheme({".cm-tooltip":{zIndex:500,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:"14px",position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),RD={x:0,y:0},Ag=ce.define({enables:[Cg,jD]}),Zu=ce.define({combine:n=>n.reduce((e,t)=>e.concat(t),[])});class kh{static create(e){return new kh(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new AS(e,Zu,(t,i)=>this.createHostedView(t,i),t=>t.dom.remove())}createHostedView(e,t){let i=e.create(this.view);return i.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(i.dom,t?t.dom.nextSibling:this.dom.firstChild),this.mounted&&i.mount&&i.mount(this.view),i}mount(e){for(let t of this.manager.tooltipViews)t.mount&&t.mount(e);this.mounted=!0}positioned(e){for(let t of this.manager.tooltipViews)t.positioned&&t.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let t of this.manager.tooltipViews)(e=t.destroy)===null||e===void 0||e.call(t)}passProp(e){let t;for(let i of this.manager.tooltipViews){let s=i[e];if(s!==void 0){if(t===void 0)t=s;else if(t!==s)return}}return t}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}}const _D=Ag.compute([Zu],n=>{let e=n.facet(Zu);return e.length===0?null:{pos:Math.min(...e.map(t=>t.pos)),end:Math.max(...e.map(t=>{var i;return(i=t.end)!==null&&i!==void 0?i:t.pos})),create:kh.create,above:e[0].above,arrow:e.some(t=>t.arrow)}});class LD{constructor(e,t,i,s,r){this.view=e,this.source=t,this.field=i,this.setHover=s,this.hoverTime=r,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let e=Date.now()-this.lastMove.time;eu.bottom||t.xu.right+e.defaultCharacterWidth)return;let f=e.bidiSpans(e.state.doc.lineAt(s)).find(p=>p.from<=s&&p.to>=s),d=f&&f.dir==Je.RTL?-1:1;r=t.x{this.pending==u&&(this.pending=null,f&&!(Array.isArray(f)&&!f.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(f)?f:[f])}))},f=>un(e.state,f,"hover tooltip"))}else o&&!(Array.isArray(o)&&!o.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(o)?o:[o])})}get tooltip(){let e=this.view.plugin(Cg),t=e?e.manager.tooltips.findIndex(i=>i.create==kh.create):-1;return t>-1?e.manager.tooltipViews[t]:null}mousemove(e){var t,i;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:s,tooltip:r}=this;if(s.length&&r&&!BD(r.dom,e)||this.pending){let{pos:o}=s[0]||this.pending,u=(i=(t=s[0])===null||t===void 0?void 0:t.end)!==null&&i!==void 0?i:o;(o==u?this.view.posAtCoords(this.lastMove)!=o:!zD(this.view,o,u,e.clientX,e.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:t}=this;if(t.length){let{tooltip:i}=this;i&&i.dom.contains(e.relatedTarget)?this.watchTooltipLeave(i.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let t=i=>{e.removeEventListener("mouseleave",t),this.active.length&&!this.view.dom.contains(i.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener("mouseleave",t)}destroy(){clearTimeout(this.hoverTimeout),clearTimeout(this.restartTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}const pu=4;function BD(n,e){let{left:t,right:i,top:s,bottom:r}=n.getBoundingClientRect(),o;if(o=n.querySelector(".cm-tooltip-arrow")){let u=o.getBoundingClientRect();s=Math.min(u.top,s),r=Math.max(u.bottom,r)}return e.clientX>=t-pu&&e.clientX<=i+pu&&e.clientY>=s-pu&&e.clientY<=r+pu}function zD(n,e,t,i,s,r){let o=n.scrollDOM.getBoundingClientRect(),u=n.documentTop+n.documentPadding.top+n.contentHeight;if(o.left>i||o.rights||Math.min(o.bottom,u)=e&&f<=t}function HD(n,e={}){let t=Me.define(),i=It.define({create(){return[]},update(s,r){if(s.length&&(e.hideOnChange&&(r.docChanged||r.selection)?s=[]:e.hideOn&&(s=s.filter(o=>!e.hideOn(r,o))),r.docChanged)){let o=[];for(let u of s){let f=r.changes.mapPos(u.pos,-1,Qt.TrackDel);if(f!=null){let d=Object.assign(Object.create(null),u);d.pos=f,d.end!=null&&(d.end=r.changes.mapPos(d.end)),o.push(d)}}s=o}for(let o of r.effects)o.is(t)&&(s=o.value),o.is(VD)&&(s=[]);return s},provide:s=>Zu.from(s)});return{active:i,extension:[i,ft.define(s=>new LD(s,n,i,t,e.hoverTime||300)),_D]}}function MS(n,e){let t=n.plugin(Cg);if(!t)return null;let i=t.manager.tooltips.indexOf(e);return i<0?null:t.manager.tooltipViews[i]}const VD=Me.define(),yv=ce.define({combine(n){let e,t;for(let i of n)e=e||i.topContainer,t=t||i.bottomContainer;return{topContainer:e,bottomContainer:t}}});function Mg(n,e){let t=n.plugin(TS),i=t?t.specs.indexOf(e):-1;return i>-1?t.panels[i]:null}const TS=ft.fromClass(class{constructor(n){this.input=n.state.facet(po),this.specs=this.input.filter(t=>t),this.panels=this.specs.map(t=>t(n));let e=n.state.facet(yv);this.top=new gu(n,!0,e.topContainer),this.bottom=new gu(n,!1,e.bottomContainer),this.top.sync(this.panels.filter(t=>t.top)),this.bottom.sync(this.panels.filter(t=>!t.top));for(let t of this.panels)t.dom.classList.add("cm-panel"),t.mount&&t.mount()}update(n){let e=n.state.facet(yv);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new gu(n.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new gu(n.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let t=n.state.facet(po);if(t!=this.input){let i=t.filter(f=>f),s=[],r=[],o=[],u=[];for(let f of i){let d=this.specs.indexOf(f),p;d<0?(p=f(n.view),u.push(p)):(p=this.panels[d],p.update&&p.update(n)),s.push(p),(p.top?r:o).push(p)}this.specs=i,this.panels=s,this.top.sync(r),this.bottom.sync(o);for(let f of u)f.dom.classList.add("cm-panel"),f.mount&&f.mount()}else for(let i of this.panels)i.update&&i.update(n)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:n=>re.scrollMargins.of(e=>{let t=e.plugin(n);return t&&{top:t.top.scrollMargin(),bottom:t.bottom.scrollMargin()}})});class gu{constructor(e,t,i){this.view=e,this.top=t,this.container=i,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let t of this.panels)t.destroy&&e.indexOf(t)<0&&t.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let t=this.container||this.view.dom;t.insertBefore(this.dom,this.top?t.firstChild:null)}let e=this.dom.firstChild;for(let t of this.panels)if(t.dom.parentNode==this.dom){for(;e!=t.dom;)e=bv(e);e=e.nextSibling}else this.dom.insertBefore(t.dom,e);for(;e;)e=bv(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}}function bv(n){let e=n.nextSibling;return n.remove(),e}const po=ce.define({enables:TS});function UD(n,e){let t,i=new Promise(o=>t=o),s=o=>qD(o,e,t);n.state.field(vm,!1)?n.dispatch({effects:NS.of(s)}):n.dispatch({effects:Me.appendConfig.of(vm.init(()=>[s]))});let r=ES.of(s);return{close:r,result:i.then(o=>((n.win.queueMicrotask||(f=>n.win.setTimeout(f,10)))(()=>{n.state.field(vm).indexOf(s)>-1&&n.dispatch({effects:r})}),o))}}const vm=It.define({create(){return[]},update(n,e){for(let t of e.effects)t.is(NS)?n=[t.value].concat(n):t.is(ES)&&(n=n.filter(i=>i!=t.value));return n},provide:n=>po.computeN([n],e=>e.field(n))}),NS=Me.define(),ES=Me.define();function qD(n,e,t){let i=e.content?e.content(n,()=>o(null)):null;if(!i){if(i=Qe("form"),e.input){let u=Qe("input",e.input);/^(text|password|number|email|tel|url)$/.test(u.type)&&u.classList.add("cm-textfield"),u.name||(u.name="input"),i.appendChild(Qe("label",(e.label||"")+": ",u))}else i.appendChild(document.createTextNode(e.label||""));i.appendChild(document.createTextNode(" ")),i.appendChild(Qe("button",{class:"cm-button",type:"submit"},e.submitLabel||"OK"))}let s=i.nodeName=="FORM"?[i]:i.querySelectorAll("form");for(let u=0;u{d.keyCode==27?(d.preventDefault(),o(null)):d.keyCode==13&&(d.preventDefault(),o(f))}),f.addEventListener("submit",d=>{d.preventDefault(),o(f)})}let r=Qe("div",i,Qe("button",{onclick:()=>o(null),"aria-label":n.state.phrase("close"),class:"cm-dialog-close",type:"button"},["×"]));e.class&&(r.className=e.class),r.classList.add("cm-dialog");function o(u){r.contains(r.ownerDocument.activeElement)&&n.focus(),t(u)}return{dom:r,top:e.top,mount:()=>{if(e.focus){let u;typeof e.focus=="string"?u=i.querySelector(e.focus):u=i.querySelector("input")||i.querySelector("button"),u&&"select"in u?u.select():u&&"focus"in u&&u.focus()}}}}class Qi extends Ol{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}Qi.prototype.elementClass="";Qi.prototype.toDOM=void 0;Qi.prototype.mapMode=Qt.TrackBefore;Qi.prototype.startSide=Qi.prototype.endSide=-1;Qi.prototype.point=!0;const Lu=ce.define(),PD=ce.define(),KD={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>je.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},eo=ce.define();function GD(n){return[DS(),eo.of({...KD,...n})]}const xv=ce.define({combine:n=>n.some(e=>e)});function DS(n){return[ID]}const ID=ft.fromClass(class{constructor(n){this.view=n,this.domAfter=null,this.prevViewport=n.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters cm-gutters-before",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=n.state.facet(eo).map(e=>new wv(n,e)),this.fixed=!n.state.facet(xv);for(let e of this.gutters)e.config.side=="after"?this.getDOMAfter().appendChild(e.dom):this.dom.appendChild(e.dom);this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),n.scrollDOM.insertBefore(this.dom,n.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement("div"),this.domAfter.className="cm-gutters cm-gutters-after",this.domAfter.setAttribute("aria-hidden","true"),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.domAfter.style.position=this.fixed?"sticky":"",this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(n){if(this.updateGutters(n)){let e=this.prevViewport,t=n.view.viewport,i=Math.min(e.to,t.to)-Math.max(e.from,t.from);this.syncGutters(i<(t.to-t.from)*.8)}if(n.geometryChanged){let e=this.view.contentHeight/this.view.scaleY+"px";this.dom.style.minHeight=e,this.domAfter&&(this.domAfter.style.minHeight=e)}this.view.state.facet(xv)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=n.view.viewport}syncGutters(n){let e=this.dom.nextSibling;n&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let t=je.iter(this.view.state.facet(Lu),this.view.viewport.from),i=[],s=this.gutters.map(r=>new YD(r,this.view.viewport,-this.view.documentPadding.top));for(let r of this.view.viewportLineBlocks)if(i.length&&(i=[]),Array.isArray(r.type)){let o=!0;for(let u of r.type)if(u.type==qt.Text&&o){Tp(t,i,u.from);for(let f of s)f.line(this.view,u,i);o=!1}else if(u.widget)for(let f of s)f.widget(this.view,u)}else if(r.type==qt.Text){Tp(t,i,r.from);for(let o of s)o.line(this.view,r,i)}else if(r.widget)for(let o of s)o.widget(this.view,r);for(let r of s)r.finish();n&&(this.view.scrollDOM.insertBefore(this.dom,e),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(n){let e=n.startState.facet(eo),t=n.state.facet(eo),i=n.docChanged||n.heightChanged||n.viewportChanged||!je.eq(n.startState.facet(Lu),n.state.facet(Lu),n.view.viewport.from,n.view.viewport.to);if(e==t)for(let s of this.gutters)s.update(n)&&(i=!0);else{i=!0;let s=[];for(let r of t){let o=e.indexOf(r);o<0?s.push(new wv(this.view,r)):(this.gutters[o].update(n),s.push(this.gutters[o]))}for(let r of this.gutters)r.dom.remove(),s.indexOf(r)<0&&r.destroy();for(let r of s)r.config.side=="after"?this.getDOMAfter().appendChild(r.dom):this.dom.appendChild(r.dom);this.gutters=s}return i}destroy(){for(let n of this.gutters)n.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:n=>re.scrollMargins.of(e=>{let t=e.plugin(n);if(!t||t.gutters.length==0||!t.fixed)return null;let i=t.dom.offsetWidth*e.scaleX,s=t.domAfter?t.domAfter.offsetWidth*e.scaleX:0;return e.textDirection==Je.LTR?{left:i,right:s}:{right:i,left:s}})});function vv(n){return Array.isArray(n)?n:[n]}function Tp(n,e,t){for(;n.value&&n.from<=t;)n.from==t&&e.push(n.value),n.next()}class YD{constructor(e,t,i){this.gutter=e,this.height=i,this.i=0,this.cursor=je.iter(e.markers,t.from)}addElement(e,t,i){let{gutter:s}=this,r=(t.top-this.height)/e.scaleY,o=t.height/e.scaleY;if(this.i==s.elements.length){let u=new OS(e,o,r,i);s.elements.push(u),s.dom.appendChild(u.dom)}else s.elements[this.i].update(e,o,r,i);this.height=t.bottom,this.i++}line(e,t,i){let s=[];Tp(this.cursor,s,t.from),i.length&&(s=s.concat(i));let r=this.gutter.config.lineMarker(e,t,s);r&&s.unshift(r);let o=this.gutter;s.length==0&&!o.config.renderEmptyElements||this.addElement(e,t,s)}widget(e,t){let i=this.gutter.config.widgetMarker(e,t.widget,t),s=i?[i]:null;for(let r of e.state.facet(PD)){let o=r(e,t.widget,t);o&&(s||(s=[])).push(o)}s&&this.addElement(e,t,s)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let t=e.elements.pop();e.dom.removeChild(t.dom),t.destroy()}}}class wv{constructor(e,t){this.view=e,this.config=t,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let i in t.domEventHandlers)this.dom.addEventListener(i,s=>{let r=s.target,o;if(r!=this.dom&&this.dom.contains(r)){for(;r.parentNode!=this.dom;)r=r.parentNode;let f=r.getBoundingClientRect();o=(f.top+f.bottom)/2}else o=s.clientY;let u=e.lineBlockAtHeight(o-e.documentTop);t.domEventHandlers[i](e,u,s)&&s.preventDefault()});this.markers=vv(t.markers(e)),t.initialSpacer&&(this.spacer=new OS(e,0,0,[t.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let t=this.markers;if(this.markers=vv(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let s=this.config.updateSpacer(this.spacer.markers[0],e);s!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[s])}let i=e.view.viewport;return!je.eq(this.markers,t,i.from,i.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}}class OS{constructor(e,t,i,s){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,t,i,s)}update(e,t,i,s){this.height!=t&&(this.height=t,this.dom.style.height=t+"px"),this.above!=i&&(this.dom.style.marginTop=(this.above=i)?i+"px":""),WD(this.markers,s)||this.setMarkers(e,s)}setMarkers(e,t){let i="cm-gutterElement",s=this.dom.firstChild;for(let r=0,o=0;;){let u=o,f=rr(u,f,d)||o(u,f,d):o}return i}})}});class wm extends Qi{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function Sm(n,e){return n.state.facet(ma).formatNumber(e,n.state)}const QD=eo.compute([ma],n=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(FD)},lineMarker(e,t,i){return i.some(s=>s.toDOM)?null:new wm(Sm(e,e.state.doc.lineAt(t.from).number))},widgetMarker:(e,t,i)=>{for(let s of e.state.facet(XD)){let r=s(e,t,i);if(r)return r}return null},lineMarkerChange:e=>e.startState.facet(ma)!=e.state.facet(ma),initialSpacer(e){return new wm(Sm(e,Sv(e.state.doc.lines)))},updateSpacer(e,t){let i=Sm(t.view,Sv(t.view.state.doc.lines));return i==e.number?e:new wm(i)},domEventHandlers:n.facet(ma).domEventHandlers,side:"before"}));function ZD(n={}){return[ma.of(n),DS(),QD]}function Sv(n){let e=9;for(;e{let e=[],t=-1;for(let i of n.selection.ranges){let s=n.doc.lineAt(i.head).from;s>t&&(t=s,e.push($D.range(s)))}return je.of(e)});function eO(){return JD}let tO=0;class Bn{constructor(e,t,i,s){this.name=e,this.set=t,this.base=i,this.modified=s,this.id=tO++}toString(){let{name:e}=this;for(let t of this.modified)t.name&&(e=`${t.name}(${e})`);return e}static define(e,t){let i=typeof e=="string"?e:"?";if(e instanceof Bn&&(t=e),t!=null&&t.base)throw new Error("Can not derive from a modified tag");let s=new Bn(i,[],null,[]);if(s.set.push(s),t)for(let r of t.set)s.set.push(r);return s}static defineModifier(e){let t=new $u(e);return i=>i.modified.indexOf(t)>-1?i:$u.get(i.base||i,i.modified.concat(t).sort((s,r)=>s.id-r.id))}}let nO=0;class $u{constructor(e){this.name=e,this.instances=[],this.id=nO++}static get(e,t){if(!t.length)return e;let i=t[0].instances.find(u=>u.base==e&&iO(t,u.modified));if(i)return i;let s=[],r=new Bn(e.name,s,e,t);for(let u of t)u.instances.push(r);let o=lO(t);for(let u of e.set)if(!u.modified.length)for(let f of o)s.push($u.get(u,f));return r}}function iO(n,e){return n.length==e.length&&n.every((t,i)=>t==e[i])}function lO(n){let e=[[]];for(let t=0;ti.length-t.length)}function sO(n){let e=Object.create(null);for(let t in n){let i=n[t];Array.isArray(i)||(i=[i]);for(let s of t.split(" "))if(s){let r=[],o=2,u=s;for(let b=0;;){if(u=="..."&&b>0&&b+3==s.length){o=1;break}let x=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(u);if(!x)throw new RangeError("Invalid path: "+s);if(r.push(x[0]=="*"?"":x[0][0]=='"'?JSON.parse(x[0]):x[0]),b+=x[0].length,b==s.length)break;let w=s[b++];if(b==s.length&&w=="!"){o=0;break}if(w!="/")throw new RangeError("Invalid path: "+s);u=s.slice(b)}let f=r.length-1,d=r[f];if(!d)throw new RangeError("Invalid path: "+s);let p=new go(i,o,f>0?r.slice(0,f):null);e[d]=p.sort(e[d])}}return jS.add(e)}const jS=new Le({combine(n,e){let t,i,s;for(;n||e;){if(!n||e&&n.depth>=e.depth?(s=e,e=e.next):(s=n,n=n.next),t&&t.mode==s.mode&&!s.context&&!t.context)continue;let r=new go(s.tags,s.mode,s.context);t?t.next=r:i=r,t=r}return i}});class go{constructor(e,t,i,s){this.tags=e,this.mode=t,this.context=i,this.next=s}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth{let o=s;for(let u of r)for(let f of u.set){let d=t[f.id];if(d){o=o?o+" "+d:d;break}}return o},scope:i}}function aO(n,e){let t=null;for(let i of n){let s=i.style(e);s&&(t=t?t+" "+s:s)}return t}function rO(n,e,t,i=0,s=n.length){let r=new oO(i,Array.isArray(e)?e:[e],t);r.highlightRange(n.cursor(),i,s,"",r.highlighters),r.flush(s)}class oO{constructor(e,t,i){this.at=e,this.highlighters=t,this.span=i,this.class=""}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,i,s,r){let{type:o,from:u,to:f}=e;if(u>=i||f<=t)return;o.isTop&&(r=this.highlighters.filter(w=>!w.scope||w.scope(o)));let d=s,p=cO(e)||go.empty,b=aO(r,p.tags);if(b&&(d&&(d+=" "),d+=b,p.mode==1&&(s+=(s?" ":"")+b)),this.startSpan(Math.max(t,u),d),p.opaque)return;let x=e.tree&&e.tree.prop(Le.mounted);if(x&&x.overlay){let w=e.node.enter(x.overlay[0].from+u,1),S=this.highlighters.filter(C=>!C.scope||C.scope(x.tree.type)),A=e.firstChild();for(let C=0,T=u;;C++){let R=C=E||!e.nextSibling())););if(!R||E>i)break;T=R.to+u,T>t&&(this.highlightRange(w.cursor(),Math.max(t,R.from+u),Math.min(i,T),"",S),this.startSpan(Math.min(i,T),d))}A&&e.parent()}else if(e.firstChild()){x&&(s="");do if(!(e.to<=t)){if(e.from>=i)break;this.highlightRange(e,t,i,s,r),this.startSpan(Math.min(i,e.to),d)}while(e.nextSibling());e.parent()}}}function cO(n){let e=n.type.prop(jS);for(;e&&e.context&&!n.matchContext(e.context);)e=e.next;return e||null}const le=Bn.define,yu=le(),Cl=le(),kv=le(Cl),Cv=le(Cl),Al=le(),bu=le(Al),km=le(Al),ui=le(),as=le(ui),oi=le(),ci=le(),Np=le(),Vr=le(Np),xu=le(),Y={comment:yu,lineComment:le(yu),blockComment:le(yu),docComment:le(yu),name:Cl,variableName:le(Cl),typeName:kv,tagName:le(kv),propertyName:Cv,attributeName:le(Cv),className:le(Cl),labelName:le(Cl),namespace:le(Cl),macroName:le(Cl),literal:Al,string:bu,docString:le(bu),character:le(bu),attributeValue:le(bu),number:km,integer:le(km),float:le(km),bool:le(Al),regexp:le(Al),escape:le(Al),color:le(Al),url:le(Al),keyword:oi,self:le(oi),null:le(oi),atom:le(oi),unit:le(oi),modifier:le(oi),operatorKeyword:le(oi),controlKeyword:le(oi),definitionKeyword:le(oi),moduleKeyword:le(oi),operator:ci,derefOperator:le(ci),arithmeticOperator:le(ci),logicOperator:le(ci),bitwiseOperator:le(ci),compareOperator:le(ci),updateOperator:le(ci),definitionOperator:le(ci),typeOperator:le(ci),controlOperator:le(ci),punctuation:Np,separator:le(Np),bracket:Vr,angleBracket:le(Vr),squareBracket:le(Vr),paren:le(Vr),brace:le(Vr),content:ui,heading:as,heading1:le(as),heading2:le(as),heading3:le(as),heading4:le(as),heading5:le(as),heading6:le(as),contentSeparator:le(ui),list:le(ui),quote:le(ui),emphasis:le(ui),strong:le(ui),link:le(ui),monospace:le(ui),strikethrough:le(ui),inserted:le(),deleted:le(),changed:le(),invalid:le(),meta:xu,documentMeta:le(xu),annotation:le(xu),processingInstruction:le(xu),definition:Bn.defineModifier("definition"),constant:Bn.defineModifier("constant"),function:Bn.defineModifier("function"),standard:Bn.defineModifier("standard"),local:Bn.defineModifier("local"),special:Bn.defineModifier("special")};for(let n in Y){let e=Y[n];e instanceof Bn&&(e.name=n)}RS([{tag:Y.link,class:"tok-link"},{tag:Y.heading,class:"tok-heading"},{tag:Y.emphasis,class:"tok-emphasis"},{tag:Y.strong,class:"tok-strong"},{tag:Y.keyword,class:"tok-keyword"},{tag:Y.atom,class:"tok-atom"},{tag:Y.bool,class:"tok-bool"},{tag:Y.url,class:"tok-url"},{tag:Y.labelName,class:"tok-labelName"},{tag:Y.inserted,class:"tok-inserted"},{tag:Y.deleted,class:"tok-deleted"},{tag:Y.literal,class:"tok-literal"},{tag:Y.string,class:"tok-string"},{tag:Y.number,class:"tok-number"},{tag:[Y.regexp,Y.escape,Y.special(Y.string)],class:"tok-string2"},{tag:Y.variableName,class:"tok-variableName"},{tag:Y.local(Y.variableName),class:"tok-variableName tok-local"},{tag:Y.definition(Y.variableName),class:"tok-variableName tok-definition"},{tag:Y.special(Y.variableName),class:"tok-variableName2"},{tag:Y.definition(Y.propertyName),class:"tok-propertyName tok-definition"},{tag:Y.typeName,class:"tok-typeName"},{tag:Y.namespace,class:"tok-namespace"},{tag:Y.className,class:"tok-className"},{tag:Y.macroName,class:"tok-macroName"},{tag:Y.propertyName,class:"tok-propertyName"},{tag:Y.operator,class:"tok-operator"},{tag:Y.comment,class:"tok-comment"},{tag:Y.meta,class:"tok-meta"},{tag:Y.invalid,class:"tok-invalid"},{tag:Y.punctuation,class:"tok-punctuation"}]);var Cm;const pa=new Le;function uO(n){return ce.define({combine:n?e=>e.concat(n):void 0})}const hO=new Le;class Fn{constructor(e,t,i=[],s=""){this.data=e,this.name=s,ze.prototype.hasOwnProperty("tree")||Object.defineProperty(ze.prototype,"tree",{get(){return Gt(this)}}),this.parser=t,this.extension=[Ll.of(this),ze.languageData.of((r,o,u)=>{let f=Av(r,o,u),d=f.type.prop(pa);if(!d)return[];let p=r.facet(d),b=f.type.prop(hO);if(b){let x=f.resolve(o-f.from,u);for(let w of b)if(w.test(x,r)){let S=r.facet(w.facet);return w.type=="replace"?S:S.concat(p)}}return p})].concat(i)}isActiveAt(e,t,i=-1){return Av(e,t,i).type.prop(pa)==this.data}findRegions(e){let t=e.facet(Ll);if((t==null?void 0:t.data)==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let i=[],s=(r,o)=>{if(r.prop(pa)==this.data){i.push({from:o,to:o+r.length});return}let u=r.prop(Le.mounted);if(u){if(u.tree.prop(pa)==this.data){if(u.overlay)for(let f of u.overlay)i.push({from:f.from+o,to:f.to+o});else i.push({from:o,to:o+r.length});return}else if(u.overlay){let f=i.length;if(s(u.tree,u.overlay[0].from+o),i.length>f)return}}for(let f=0;f=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-i,t-i)}}let Ur=null;class Ea{constructor(e,t,i=[],s,r,o,u,f){this.parser=e,this.state=t,this.fragments=i,this.tree=s,this.treeLen=r,this.viewport=o,this.skipped=u,this.scheduleOn=f,this.parse=null,this.tempSkipped=[]}static create(e,t,i){return new Ea(e,t,[],st.empty,0,i,[],null)}startParse(){return this.parser.startParse(new fO(this.state.doc),this.fragments)}work(e,t){return t!=null&&t>=this.state.doc.length&&(t=void 0),this.tree!=st.empty&&this.isDone(t??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var i;if(typeof e=="number"){let s=Date.now()+e;e=()=>Date.now()>s}for(this.parse||(this.parse=this.startParse()),t!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>t)&&t=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(t=this.parse.advance()););}),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(ms.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=Ur;Ur=this;try{return e()}finally{Ur=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=Mv(e,t.from,t.to);return e}changes(e,t){let{fragments:i,tree:s,treeLen:r,viewport:o,skipped:u}=this;if(this.takeTree(),!e.empty){let f=[];if(e.iterChangedRanges((d,p,b,x)=>f.push({fromA:d,toA:p,fromB:b,toB:x})),i=ms.applyChanges(i,f),s=st.empty,r=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){u=[];for(let d of this.skipped){let p=e.mapPos(d.from,1),b=e.mapPos(d.to,-1);pe.from&&(this.fragments=Mv(this.fragments,s,r),this.skipped.splice(i--,1))}return this.skipped.length>=t?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,t){this.skipped.push({from:e,to:t})}static getSkippingParser(e){return new class extends cw{createParse(t,i,s){let r=s[0].from,o=s[s.length-1].to;return{parsedPos:r,advance(){let f=Ur;if(f){for(let d of s)f.tempSkipped.push(d);e&&(f.scheduleOn=f.scheduleOn?Promise.all([f.scheduleOn,e]):e)}return this.parsedPos=o,new st(fn.none,[],[],o-r)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&t[0].from==0&&t[0].to>=e}static get(){return Ur}}function Mv(n,e,t){return ms.applyChanges(n,[{fromA:e,toA:t,fromB:e,toB:t}])}class Da{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let t=this.context.changes(e.changes,e.state),i=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),t.viewport.to);return t.work(20,i)||t.takeTree(),new Da(t)}static init(e){let t=Math.min(3e3,e.doc.length),i=Ea.create(e.facet(Ll).parser,e,{from:0,to:t});return i.work(20,t)||i.takeTree(),new Da(i)}}Fn.state=It.define({create:Da.init,update(n,e){for(let t of e.effects)if(t.is(Fn.setState))return t.value;return e.startState.facet(Ll)!=e.state.facet(Ll)?Da.init(e.state):n.apply(e)}});let _S=n=>{let e=setTimeout(()=>n(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(_S=n=>{let e=-1,t=setTimeout(()=>{e=requestIdleCallback(n,{timeout:400})},100);return()=>e<0?clearTimeout(t):cancelIdleCallback(e)});const Am=typeof navigator<"u"&&(!((Cm=navigator.scheduling)===null||Cm===void 0)&&Cm.isInputPending)?()=>navigator.scheduling.isInputPending():null,dO=ft.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field(Fn.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(Fn.state);(t.tree!=t.context.tree||!t.context.isDone(e.doc.length))&&(this.working=_S(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEnds+1e3,f=r.context.work(()=>Am&&Am()||Date.now()>o,s+(u?0:1e5));this.chunkBudget-=Date.now()-t,(f||this.chunkBudget<=0)&&(r.context.takeTree(),this.view.dispatch({effects:Fn.setState.of(new Da(r.context))})),this.chunkBudget>0&&!(f&&!u)&&this.scheduleWork(),this.checkAsyncSchedule(r.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(t=>un(this.view.state,t)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),Ll=ce.define({combine(n){return n.length?n[0]:null},enables:n=>[Fn.state,dO,re.contentAttributes.compute([n],e=>{let t=e.facet(n);return t&&t.name?{"data-language":t.name}:{}})]}),mO=ce.define(),Ch=ce.define({combine:n=>{if(!n.length)return" ";let e=n[0];if(!e||/\S/.test(e)||Array.from(e).some(t=>t!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(n[0]));return e}});function xs(n){let e=n.facet(Ch);return e.charCodeAt(0)==9?n.tabSize*e.length:e.length}function yo(n,e){let t="",i=n.tabSize,s=n.facet(Ch)[0];if(s==" "){for(;e>=i;)t+=" ",e-=i;s=" "}for(let r=0;r=e?pO(n,t,e):null}class Ah{constructor(e,t={}){this.state=e,this.options=t,this.unit=xs(e)}lineAt(e,t=1){let i=this.state.doc.lineAt(e),{simulateBreak:s,simulateDoubleBreak:r}=this.options;return s!=null&&s>=i.from&&s<=i.to?r&&s==e?{text:"",from:e}:(t<0?s-1&&(r+=o-this.countColumn(i,i.search(/\S|$/))),r}countColumn(e,t=e.length){return La(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:i,from:s}=this.lineAt(e,t),r=this.options.overrideIndentation;if(r){let o=r(s);if(o>-1)return o}return this.countColumn(i,i.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const LS=new Le;function pO(n,e,t){let i=e.resolveStack(t),s=e.resolveInner(t,-1).resolve(t,0).enterUnfinishedNodesBefore(t);if(s!=i.node){let r=[];for(let o=s;o&&!(o.fromi.node.to||o.from==i.node.from&&o.type==i.node.type);o=o.parent)r.push(o);for(let o=r.length-1;o>=0;o--)i={node:r[o],next:i}}return BS(i,n,t)}function BS(n,e,t){for(let i=n;i;i=i.next){let s=yO(i.node);if(s)return s(Ng.create(e,t,i))}return 0}function gO(n){return n.pos==n.options.simulateBreak&&n.options.simulateDoubleBreak}function yO(n){let e=n.type.prop(LS);if(e)return e;let t=n.firstChild,i;if(t&&(i=t.type.prop(Le.closedBy))){let s=n.lastChild,r=s&&i.indexOf(s.name)>-1;return o=>wO(o,!0,1,void 0,r&&!gO(o)?s.from:void 0)}return n.parent==null?bO:null}function bO(){return 0}class Ng extends Ah{constructor(e,t,i){super(e.state,e.options),this.base=e,this.pos=t,this.context=i}get node(){return this.context.node}static create(e,t,i){return new Ng(e,t,i)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let t=this.state.doc.lineAt(e.from);for(;;){let i=e.resolve(t.from);for(;i.parent&&i.parent.from==i.from;)i=i.parent;if(xO(i,e))break;t=this.state.doc.lineAt(i.from)}return this.lineIndent(t.from)}continue(){return BS(this.context.next,this.base,this.pos)}}function xO(n,e){for(let t=e;t;t=t.parent)if(n==t)return!0;return!1}function vO(n){let e=n.node,t=e.childAfter(e.from),i=e.lastChild;if(!t)return null;let s=n.options.simulateBreak,r=n.state.doc.lineAt(t.from),o=s==null||s<=r.from?r.to:Math.min(r.to,s);for(let u=t.to;;){let f=e.childAfter(u);if(!f||f==i)return null;if(!f.type.isSkipped){if(f.from>=o)return null;let d=/^ */.exec(r.text.slice(t.to-r.from))[0].length;return{from:t.from,to:t.to+d}}u=f.to}}function wO(n,e,t,i,s){let r=n.textAfter,o=r.match(/^\s*/)[0].length,u=i&&r.slice(o,o+i.length)==i||s==n.pos+o,f=vO(n);return f?u?n.column(f.from):n.column(f.to):n.baseIndent+(u?0:n.unit*t)}const SO=200;function kO(){return ze.transactionFilter.of(n=>{if(!n.docChanged||!n.isUserEvent("input.type")&&!n.isUserEvent("input.complete"))return n;let e=n.startState.languageDataAt("indentOnInput",n.startState.selection.main.head);if(!e.length)return n;let t=n.newDoc,{head:i}=n.newSelection.main,s=t.lineAt(i);if(i>s.from+SO)return n;let r=t.sliceString(s.from,i);if(!e.some(d=>d.test(r)))return n;let{state:o}=n,u=-1,f=[];for(let{head:d}of o.selection.ranges){let p=o.doc.lineAt(d);if(p.from==u)continue;u=p.from;let b=Tg(o,p.from);if(b==null)continue;let x=/^\s*/.exec(p.text)[0],w=yo(o,b);x!=w&&f.push({from:p.from,to:p.from+x.length,insert:w})}return f.length?[n,{changes:f,sequential:!0}]:n})}const CO=ce.define(),AO=new Le;function MO(n,e,t){let i=Gt(n);if(i.lengtht)continue;if(r&&u.from=e&&d.to>t&&(r=d)}}return r}function TO(n){let e=n.lastChild;return e&&e.to==n.to&&e.type.isError}function Ju(n,e,t){for(let i of n.facet(CO)){let s=i(n,e,t);if(s)return s}return MO(n,e,t)}function zS(n,e){let t=e.mapPos(n.from,1),i=e.mapPos(n.to,-1);return t>=i?void 0:{from:t,to:i}}const Mh=Me.define({map:zS}),jo=Me.define({map:zS});function HS(n){let e=[];for(let{head:t}of n.state.selection.ranges)e.some(i=>i.from<=t&&i.to>=t)||e.push(n.lineBlockAt(t));return e}const vs=It.define({create(){return we.none},update(n,e){e.isUserEvent("delete")&&e.changes.iterChangedRanges((t,i)=>n=Tv(n,t,i)),n=n.map(e.changes);for(let t of e.effects)if(t.is(Mh)&&!NO(n,t.value.from,t.value.to)){let{preparePlaceholder:i}=e.state.facet(qS),s=i?we.replace({widget:new LO(i(e.state,t.value))}):Nv;n=n.update({add:[s.range(t.value.from,t.value.to)]})}else t.is(jo)&&(n=n.update({filter:(i,s)=>t.value.from!=i||t.value.to!=s,filterFrom:t.value.from,filterTo:t.value.to}));return e.selection&&(n=Tv(n,e.selection.main.head)),n},provide:n=>re.decorations.from(n),toJSON(n,e){let t=[];return n.between(0,e.doc.length,(i,s)=>{t.push(i,s)}),t},fromJSON(n){if(!Array.isArray(n)||n.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let t=0;t{se&&(i=!0)}),i?n.update({filterFrom:e,filterTo:t,filter:(s,r)=>s>=t||r<=e}):n}function eh(n,e,t){var i;let s=null;return(i=n.field(vs,!1))===null||i===void 0||i.between(e,t,(r,o)=>{(!s||s.from>r)&&(s={from:r,to:o})}),s}function NO(n,e,t){let i=!1;return n.between(e,e,(s,r)=>{s==e&&r==t&&(i=!0)}),i}function VS(n,e){return n.field(vs,!1)?e:e.concat(Me.appendConfig.of(PS()))}const EO=n=>{for(let e of HS(n)){let t=Ju(n.state,e.from,e.to);if(t)return n.dispatch({effects:VS(n.state,[Mh.of(t),US(n,t)])}),!0}return!1},DO=n=>{if(!n.state.field(vs,!1))return!1;let e=[];for(let t of HS(n)){let i=eh(n.state,t.from,t.to);i&&e.push(jo.of(i),US(n,i,!1))}return e.length&&n.dispatch({effects:e}),e.length>0};function US(n,e,t=!0){let i=n.state.doc.lineAt(e.from).number,s=n.state.doc.lineAt(e.to).number;return re.announce.of(`${n.state.phrase(t?"Folded lines":"Unfolded lines")} ${i} ${n.state.phrase("to")} ${s}.`)}const OO=n=>{let{state:e}=n,t=[];for(let i=0;i{let e=n.state.field(vs,!1);if(!e||!e.size)return!1;let t=[];return e.between(0,n.state.doc.length,(i,s)=>{t.push(jo.of({from:i,to:s}))}),n.dispatch({effects:t}),!0},RO=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:EO},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:DO},{key:"Ctrl-Alt-[",run:OO},{key:"Ctrl-Alt-]",run:jO}],_O={placeholderDOM:null,preparePlaceholder:null,placeholderText:"…"},qS=ce.define({combine(n){return Si(n,_O)}});function PS(n){return[vs,HO]}function KS(n,e){let{state:t}=n,i=t.facet(qS),s=o=>{let u=n.lineBlockAt(n.posAtDOM(o.target)),f=eh(n.state,u.from,u.to);f&&n.dispatch({effects:jo.of(f)}),o.preventDefault()};if(i.placeholderDOM)return i.placeholderDOM(n,s,e);let r=document.createElement("span");return r.textContent=i.placeholderText,r.setAttribute("aria-label",t.phrase("folded code")),r.title=t.phrase("unfold"),r.className="cm-foldPlaceholder",r.onclick=s,r}const Nv=we.replace({widget:new class extends ki{toDOM(n){return KS(n,null)}}});class LO extends ki{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return KS(e,this.value)}}const BO={openText:"⌄",closedText:"›",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class Mm extends Qi{constructor(e,t){super(),this.config=e,this.open=t}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let t=document.createElement("span");return t.textContent=this.open?this.config.openText:this.config.closedText,t.title=e.state.phrase(this.open?"Fold line":"Unfold line"),t}}function zO(n={}){let e={...BO,...n},t=new Mm(e,!0),i=new Mm(e,!1),s=ft.fromClass(class{constructor(o){this.from=o.viewport.from,this.markers=this.buildMarkers(o)}update(o){(o.docChanged||o.viewportChanged||o.startState.facet(Ll)!=o.state.facet(Ll)||o.startState.field(vs,!1)!=o.state.field(vs,!1)||Gt(o.startState)!=Gt(o.state)||e.foldingChanged(o))&&(this.markers=this.buildMarkers(o.view))}buildMarkers(o){let u=new Fi;for(let f of o.viewportLineBlocks){let d=eh(o.state,f.from,f.to)?i:Ju(o.state,f.from,f.to)?t:null;d&&u.add(f.from,f.from,d)}return u.finish()}}),{domEventHandlers:r}=e;return[s,GD({class:"cm-foldGutter",markers(o){var u;return((u=o.plugin(s))===null||u===void 0?void 0:u.markers)||je.empty},initialSpacer(){return new Mm(e,!1)},domEventHandlers:{...r,click:(o,u,f)=>{if(r.click&&r.click(o,u,f))return!0;let d=eh(o.state,u.from,u.to);if(d)return o.dispatch({effects:jo.of(d)}),!0;let p=Ju(o.state,u.from,u.to);return p?(o.dispatch({effects:Mh.of(p)}),!0):!1}}}),PS()]}const HO=re.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}});class Ro{constructor(e,t){this.specs=e;let i;function s(u){let f=jl.newName();return(i||(i=Object.create(null)))["."+f]=u,f}const r=typeof t.all=="string"?t.all:t.all?s(t.all):void 0,o=t.scope;this.scope=o instanceof Fn?u=>u.prop(pa)==o.data:o?u=>u==o:void 0,this.style=RS(e.map(u=>({tag:u.tag,class:u.class||s(Object.assign({},u,{tag:null}))})),{all:r}).style,this.module=i?new jl(i):null,this.themeType=t.themeType}static define(e,t){return new Ro(e,t||{})}}const Ep=ce.define(),GS=ce.define({combine(n){return n.length?[n[0]]:null}});function Tm(n){let e=n.facet(Ep);return e.length?e:n.facet(GS)}function IS(n,e){let t=[UO],i;return n instanceof Ro&&(n.module&&t.push(re.styleModule.of(n.module)),i=n.themeType),e!=null&&e.fallback?t.push(GS.of(n)):i?t.push(Ep.computeN([re.darkTheme],s=>s.facet(re.darkTheme)==(i=="dark")?[n]:[])):t.push(Ep.of(n)),t}class VO{constructor(e){this.markCache=Object.create(null),this.tree=Gt(e.state),this.decorations=this.buildDeco(e,Tm(e.state)),this.decoratedTo=e.viewport.to}update(e){let t=Gt(e.state),i=Tm(e.state),s=i!=Tm(e.startState),{viewport:r}=e.view,o=e.changes.mapPos(this.decoratedTo,1);t.length=r.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=o):(t!=this.tree||e.viewportChanged||s)&&(this.tree=t,this.decorations=this.buildDeco(e.view,i),this.decoratedTo=r.to)}buildDeco(e,t){if(!t||!this.tree.length)return we.none;let i=new Fi;for(let{from:s,to:r}of e.visibleRanges)rO(this.tree,t,(o,u,f)=>{i.add(o,u,this.markCache[f]||(this.markCache[f]=we.mark({class:f})))},s,r);return i.finish()}}const UO=Ss.high(ft.fromClass(VO,{decorations:n=>n.decorations})),qO=Ro.define([{tag:Y.meta,color:"#404740"},{tag:Y.link,textDecoration:"underline"},{tag:Y.heading,textDecoration:"underline",fontWeight:"bold"},{tag:Y.emphasis,fontStyle:"italic"},{tag:Y.strong,fontWeight:"bold"},{tag:Y.strikethrough,textDecoration:"line-through"},{tag:Y.keyword,color:"#708"},{tag:[Y.atom,Y.bool,Y.url,Y.contentSeparator,Y.labelName],color:"#219"},{tag:[Y.literal,Y.inserted],color:"#164"},{tag:[Y.string,Y.deleted],color:"#a11"},{tag:[Y.regexp,Y.escape,Y.special(Y.string)],color:"#e40"},{tag:Y.definition(Y.variableName),color:"#00f"},{tag:Y.local(Y.variableName),color:"#30a"},{tag:[Y.typeName,Y.namespace],color:"#085"},{tag:Y.className,color:"#167"},{tag:[Y.special(Y.variableName),Y.macroName],color:"#256"},{tag:Y.definition(Y.propertyName),color:"#00c"},{tag:Y.comment,color:"#940"},{tag:Y.invalid,color:"#f00"}]),PO=re.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),YS=1e4,WS="()[]{}",FS=ce.define({combine(n){return Si(n,{afterCursor:!0,brackets:WS,maxScanDistance:YS,renderMatch:IO})}}),KO=we.mark({class:"cm-matchingBracket"}),GO=we.mark({class:"cm-nonmatchingBracket"});function IO(n){let e=[],t=n.matched?KO:GO;return e.push(t.range(n.start.from,n.start.to)),n.end&&e.push(t.range(n.end.from,n.end.to)),e}function Ev(n){let e=[],t=n.facet(FS);for(let i of n.selection.ranges){if(!i.empty)continue;let s=yi(n,i.head,-1,t)||i.head>0&&yi(n,i.head-1,1,t)||t.afterCursor&&(yi(n,i.head,1,t)||i.headn.decorations}),WO=[YO,PO];function FO(n={}){return[FS.of(n),WO]}const XO=new Le;function Dp(n,e,t){let i=n.prop(e<0?Le.openedBy:Le.closedBy);if(i)return i;if(n.name.length==1){let s=t.indexOf(n.name);if(s>-1&&s%2==(e<0?1:0))return[t[s+e]]}return null}function Op(n){let e=n.type.prop(XO);return e?e(n.node):n}function yi(n,e,t,i={}){let s=i.maxScanDistance||YS,r=i.brackets||WS,o=Gt(n),u=o.resolveInner(e,t);for(let f=u;f;f=f.parent){let d=Dp(f.type,t,r);if(d&&f.from0?e>=p.from&&ep.from&&e<=p.to))return QO(n,e,t,f,p,d,r)}}return ZO(n,e,t,o,u.type,s,r)}function QO(n,e,t,i,s,r,o){let u=i.parent,f={from:s.from,to:s.to},d=0,p=u==null?void 0:u.cursor();if(p&&(t<0?p.childBefore(i.from):p.childAfter(i.to)))do if(t<0?p.to<=i.from:p.from>=i.to){if(d==0&&r.indexOf(p.type.name)>-1&&p.from0)return null;let d={from:t<0?e-1:e,to:t>0?e+1:e},p=n.doc.iterRange(e,t>0?n.doc.length:0),b=0;for(let x=0;!p.next().done&&x<=r;){let w=p.value;t<0&&(x+=w.length);let S=e+x*t;for(let A=t>0?0:w.length-1,C=t>0?w.length:-1;A!=C;A+=t){let T=o.indexOf(w[A]);if(!(T<0||i.resolveInner(S+A,1).type!=s))if(T%2==0==t>0)b++;else{if(b==1)return{start:d,end:{from:S+A,to:S+A+1},matched:T>>1==f>>1};b--}}t>0&&(x+=w.length)}return p.done?{start:d,matched:!1}:null}function Dv(n,e,t,i=0,s=0){e==null&&(e=n.search(/[^\s\u00a0]/),e==-1&&(e=n.length));let r=s;for(let o=i;o=this.string.length}sol(){return this.pos==0}peek(){return this.string.charAt(this.pos)||void 0}next(){if(this.post}eatSpace(){let e=this.pos;for(;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e}skipToEnd(){this.pos=this.string.length}skipTo(e){let t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0}backUp(e){this.pos-=e}column(){return this.lastColumnPosi?o.toLowerCase():o,r=this.string.substr(this.pos,e.length);return s(r)==s(e)?(t!==!1&&(this.pos+=e.length),!0):null}else{let s=this.string.slice(this.pos).match(e);return s&&s.index>0?null:(s&&t!==!1&&(this.pos+=s[0].length),s)}}current(){return this.string.slice(this.start,this.pos)}}function $O(n){return{name:n.name||"",token:n.token,blankLine:n.blankLine||(()=>{}),startState:n.startState||(()=>!0),copyState:n.copyState||JO,indent:n.indent||(()=>null),languageData:n.languageData||{},tokenTable:n.tokenTable||Og,mergeTokens:n.mergeTokens!==!1}}function JO(n){if(typeof n!="object")return n;let e={};for(let t in n){let i=n[t];e[t]=i instanceof Array?i.slice():i}return e}const Ov=new WeakMap;class Eg extends Fn{constructor(e){let t=uO(e.languageData),i=$O(e),s,r=new class extends cw{createParse(o,u,f){return new t8(s,o,u,f)}};super(t,r,[],e.name),this.topNode=l8(t,this),s=this,this.streamParser=i,this.stateAfter=new Le({perNode:!0}),this.tokenTable=e.tokenTable?new JS(i.tokenTable):i8}static define(e){return new Eg(e)}getIndent(e){let t,{overrideIndentation:i}=e.options;i&&(t=Ov.get(e.state),t!=null&&t1e4)return null;for(;r=i&&t+e.length<=s&&e.prop(n.stateAfter);if(r)return{state:n.streamParser.copyState(r),pos:t+e.length};for(let o=e.children.length-1;o>=0;o--){let u=e.children[o],f=t+e.positions[o],d=u instanceof st&&f=e.length)return e;!s&&t==0&&e.type==n.topNode&&(s=!0);for(let r=e.children.length-1;r>=0;r--){let o=e.positions[r],u=e.children[r],f;if(ot&&Dg(n,r.tree,0-r.offset,t,u),d;if(f&&f.pos<=i&&(d=QS(n,r.tree,t+r.offset,f.pos+r.offset,!1)))return{state:f.state,tree:d}}return{state:n.streamParser.startState(s?xs(s):4),tree:st.empty}}class t8{constructor(e,t,i,s){this.lang=e,this.input=t,this.fragments=i,this.ranges=s,this.stoppedAt=null,this.chunks=[],this.chunkPos=[],this.chunk=[],this.chunkReused=void 0,this.rangeIndex=0,this.to=s[s.length-1].to;let r=Ea.get(),o=s[0].from,{state:u,tree:f}=e8(e,i,o,this.to,r==null?void 0:r.state);this.state=u,this.parsedPos=this.chunkStart=o+f.length;for(let d=0;dd.from<=r.viewport.from&&d.to>=r.viewport.from)&&(this.state=this.lang.streamParser.startState(xs(r.state)),r.skipUntilInView(this.parsedPos,r.viewport.from),this.parsedPos=r.viewport.from),this.moveRangeIndex()}advance(){let e=Ea.get(),t=this.stoppedAt==null?this.to:Math.min(this.to,this.stoppedAt),i=Math.min(t,this.chunkStart+512);for(e&&(i=Math.min(i,e.viewport.to));this.parsedPos=t?this.finish():e&&this.parsedPos>=e.viewport.to?(e.skipUntilInView(this.parsedPos,t),this.finish()):null}stopAt(e){this.stoppedAt=e}lineAfter(e){let t=this.input.chunk(e);if(this.input.lineChunks)t==` `&&(t="");else{let i=t.indexOf(` -`);i>-1&&(t=t.slice(0,i))}return e+t.length<=this.to?t:t.slice(0,this.to-e)}nextLine(){let e=this.parsedPos,t=this.lineAfter(e),i=e+t.length;for(let s=this.rangeIndex;;){let r=this.ranges[s].to;if(r>=i||(t=t.slice(0,r-(i-t.length)),s++,s==this.ranges.length))break;let o=this.ranges[s].from,u=this.lineAfter(o);t+=u,i=o+u.length}return{line:t,end:i}}skipGapsTo(e,t,i){for(;;){let s=this.ranges[this.rangeIndex].to,r=e+t;if(i>0?s>r:s>=r)break;let o=this.ranges[++this.rangeIndex].from;t+=o-s}return t}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to1){s=this.skipGapsTo(t,s,1),t+=s;let u=this.chunk.length;s=this.skipGapsTo(i,s,-1),i+=s,r+=this.chunk.length-u}let o=this.chunk.length-4;return this.lang.streamParser.mergeTokens&&r==4&&o>=0&&this.chunk[o]==e&&this.chunk[o+2]==t?this.chunk[o+2]=i:this.chunk.push(e,t,i,r),s}parseLine(e){let{line:t,end:i}=this.nextLine(),s=0,{streamParser:r}=this.lang,o=new XS(t,e?e.state.tabSize:4,e?xs(e.state):2);if(o.eol())r.blankLine(this.state,o.indentUnit);else for(;!o.eol();){let u=ZS(r.token,o,this.state);if(u&&(s=this.emitToken(this.lang.tokenTable.resolve(u),this.parsedPos+o.start,this.parsedPos+o.pos,s)),o.start>1e4)break}this.parsedPos=i,this.moveRangeIndex(),this.parsedPose.start)return s}throw new Error("Stream parser failed to advance stream.")}const Og=Object.create(null),bo=[fn.none],l8=new lg(bo),jv=[],Rv=Object.create(null),$S=Object.create(null);for(let[n,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])$S[n]=ek(Og,e);class JS{constructor(e){this.extra=e,this.table=Object.assign(Object.create(null),$S)}resolve(e){return e?this.table[e]||(this.table[e]=ek(this.extra,e)):0}}const s8=new JS(Og);function Nm(n,e){jv.indexOf(n)>-1||(jv.push(n),console.warn(e))}function ek(n,e){let t=[];for(let u of e.split(" ")){let f=[];for(let d of u.split(".")){let p=n[d]||Y[d];p?typeof p=="function"?f.length?f=f.map(p):Nm(d,`Modifier ${d} used at start of tag`):f.length?Nm(d,`Tag ${d} used as modifier`):f=Array.isArray(p)?p:[p]:Nm(d,`Unknown highlighting tag ${d}`)}for(let d of f)t.push(d)}if(!t.length)return 0;let i=e.replace(/ /g,"_"),s=i+" "+t.map(u=>u.id),r=Rv[s];if(r)return r.id;let o=Rv[s]=fn.define({id:bo.length,name:i,props:[rO({[i]:t})]});return bo.push(o),o.id}function a8(n,e){let t=fn.define({id:bo.length,name:"Document",props:[pa.add(()=>n),LS.add(()=>i=>e.getIndent(i))],top:!0});return bo.push(t),t}Je.RTL,Je.LTR;const r8="#e5c07b",_v="#e06c75",o8="#56b6c2",c8="#ffffff",Bu="#abb2bf",jp="#7d8799",u8="#61afef",h8="#98c379",Lv="#d19a66",f8="#c678dd",d8="#21252b",Bv="#2c313a",zv="#282c34",Em="#353a42",m8="#3E4451",Hv="#528bff",p8=re.theme({"&":{color:Bu,backgroundColor:zv},".cm-content":{caretColor:Hv},".cm-cursor, .cm-dropCursor":{borderLeftColor:Hv},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:m8},".cm-panels":{backgroundColor:d8,color:Bu},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:"#6699ff0b"},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847"},".cm-gutters":{backgroundColor:zv,color:jp,border:"none"},".cm-activeLineGutter":{backgroundColor:Bv},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:Em},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:Em,borderBottomColor:Em},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:Bv,color:Bu}}},{dark:!0}),g8=Ro.define([{tag:Y.keyword,color:f8},{tag:[Y.name,Y.deleted,Y.character,Y.propertyName,Y.macroName],color:_v},{tag:[Y.function(Y.variableName),Y.labelName],color:u8},{tag:[Y.color,Y.constant(Y.name),Y.standard(Y.name)],color:Lv},{tag:[Y.definition(Y.name),Y.separator],color:Bu},{tag:[Y.typeName,Y.className,Y.number,Y.changed,Y.annotation,Y.modifier,Y.self,Y.namespace],color:r8},{tag:[Y.operator,Y.operatorKeyword,Y.url,Y.escape,Y.regexp,Y.link,Y.special(Y.string)],color:o8},{tag:[Y.meta,Y.comment],color:jp},{tag:Y.strong,fontWeight:"bold"},{tag:Y.emphasis,fontStyle:"italic"},{tag:Y.strikethrough,textDecoration:"line-through"},{tag:Y.link,color:jp,textDecoration:"underline"},{tag:Y.heading,fontWeight:"bold",color:_v},{tag:[Y.atom,Y.bool,Y.special(Y.variableName)],color:Lv},{tag:[Y.processingInstruction,Y.string,Y.inserted],color:h8},{tag:Y.invalid,color:c8}]),tk=[p8,IS(g8)],y8={name:"toml",startState:function(){return{inString:!1,stringType:"",lhs:!0,inArray:0}},token:function(n,e){let t;if(!e.inString&&(t=n.match(/^('''|"""|'|")/))&&(e.stringType=t[0],e.inString=!0),n.sol()&&!e.inString&&e.inArray===0&&(e.lhs=!0),e.inString){for(;e.inString;)if(n.match(e.stringType))e.inString=!1;else if(n.peek()==="\\")n.next(),n.next();else{if(n.eol())break;n.match(/^.[^\\\"\']*/)}return e.lhs?"property":"string"}else{if(e.inArray&&n.peek()==="]")return n.next(),e.inArray--,"bracket";if(e.lhs&&n.peek()==="["&&n.skipTo("]"))return n.next(),n.peek()==="]"&&n.next(),"atom";if(n.peek()==="#")return n.skipToEnd(),"comment";if(n.eatSpace())return null;if(e.lhs&&n.eatWhile(function(i){return i!="="&&i!=" "}))return"property";if(e.lhs&&n.peek()==="=")return n.next(),e.lhs=!1,null;if(!e.lhs&&n.match(/^\d\d\d\d[\d\-\:\.T]*Z/))return"atom";if(!e.lhs&&(n.match("true")||n.match("false")))return"atom";if(!e.lhs&&n.peek()==="[")return e.inArray++,n.next(),"bracket";if(!e.lhs&&n.match(/^\-?\d+(?:\.\d+)?/))return"number";n.eatSpace()||n.next()}return null},languageData:{commentTokens:{line:"#"}}};function Rp(){return Rp=Object.assign?Object.assign.bind():function(n){for(var e=1;e{let{state:e}=n,t=e.doc.lineAt(e.selection.main.from),i=Rg(n.state,t.from);return i.line?v8(n):i.block?S8(n):!1};function jg(n,e){return({state:t,dispatch:i})=>{if(t.readOnly)return!1;let s=n(e,t);return s?(i(t.update(s)),!0):!1}}const v8=jg(A8,0),w8=jg(nk,0),S8=jg((n,e)=>nk(n,e,C8(e)),0);function Rg(n,e){let t=n.languageDataAt("commentTokens",e,1);return t.length?t[0]:{}}const qr=50;function k8(n,{open:e,close:t},i,s){let r=n.sliceDoc(i-qr,i),o=n.sliceDoc(s,s+qr),u=/\s*$/.exec(r)[0].length,f=/^\s*/.exec(o)[0].length,d=r.length-u;if(r.slice(d-e.length,d)==e&&o.slice(f,f+t.length)==t)return{open:{pos:i-u,margin:u&&1},close:{pos:s+f,margin:f&&1}};let p,b;s-i<=2*qr?p=b=n.sliceDoc(i,s):(p=n.sliceDoc(i,i+qr),b=n.sliceDoc(s-qr,s));let x=/^\s*/.exec(p)[0].length,w=/\s*$/.exec(b)[0].length,S=b.length-w-t.length;return p.slice(x,x+e.length)==e&&b.slice(S,S+t.length)==t?{open:{pos:i+x+e.length,margin:/\s/.test(p.charAt(x+e.length))?1:0},close:{pos:s-w-t.length,margin:/\s/.test(b.charAt(S-1))?1:0}}:null}function C8(n){let e=[];for(let t of n.selection.ranges){let i=n.doc.lineAt(t.from),s=t.to<=i.to?i:n.doc.lineAt(t.to);s.from>i.from&&s.from==t.to&&(s=t.to==i.to+1?i:n.doc.lineAt(t.to-1));let r=e.length-1;r>=0&&e[r].to>i.from?e[r].to=s.to:e.push({from:i.from+/^\s*/.exec(i.text)[0].length,to:s.to})}return e}function nk(n,e,t=e.selection.ranges){let i=t.map(r=>Rg(e,r.from).block);if(!i.every(r=>r))return null;let s=t.map((r,o)=>k8(e,i[o],r.from,r.to));if(n!=2&&!s.every(r=>r))return{changes:e.changes(t.map((r,o)=>s[o]?[]:[{from:r.from,insert:i[o].open+" "},{from:r.to,insert:" "+i[o].close}]))};if(n!=1&&s.some(r=>r)){let r=[];for(let o=0,u;os&&(r==o||o>b.from)){s=b.from;let x=/^\s*/.exec(b.text)[0].length,w=x==b.length,S=b.text.slice(x,x+d.length)==d?x:-1;xr.comment<0&&(!r.empty||r.single))){let r=[];for(let{line:u,token:f,indent:d,empty:p,single:b}of i)(b||!p)&&r.push({from:u.from+d,insert:f+" "});let o=e.changes(r);return{changes:o,selection:e.selection.map(o,1)}}else if(n!=1&&i.some(r=>r.comment>=0)){let r=[];for(let{line:o,comment:u,token:f}of i)if(u>=0){let d=o.from+u,p=d+f.length;o.text[p-o.from]==" "&&p++,r.push({from:d,to:p})}return{changes:r}}return null}const _p=wi.define(),M8=wi.define(),T8=ce.define(),ik=ce.define({combine(n){return Si(n,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(i,s)=>e(i,s)||t(i,s)})}}),lk=It.define({create(){return bi.empty},update(n,e){let t=e.state.facet(ik),i=e.annotation(_p);if(i){let f=hn.fromTransaction(e,i.selection),d=i.side,p=d==0?n.undone:n.done;return f?p=th(p,p.length,t.minDepth,f):p=rk(p,e.startState.selection),new bi(d==0?i.rest:p,d==0?p:i.rest)}let s=e.annotation(M8);if((s=="full"||s=="before")&&(n=n.isolate()),e.annotation(At.addToHistory)===!1)return e.changes.empty?n:n.addMapping(e.changes.desc);let r=hn.fromTransaction(e),o=e.annotation(At.time),u=e.annotation(At.userEvent);return r?n=n.addChanges(r,o,u,t,e):e.selection&&(n=n.addSelection(e.startState.selection,o,u,t.newGroupDelay)),(s=="full"||s=="after")&&(n=n.isolate()),n},toJSON(n){return{done:n.done.map(e=>e.toJSON()),undone:n.undone.map(e=>e.toJSON())}},fromJSON(n){return new bi(n.done.map(hn.fromJSON),n.undone.map(hn.fromJSON))}});function N8(n={}){return[lk,ik.of(n),re.domEventHandlers({beforeinput(e,t){let i=e.inputType=="historyUndo"?sk:e.inputType=="historyRedo"?Lp:null;return i?(e.preventDefault(),i(t)):!1}})]}function Th(n,e){return function({state:t,dispatch:i}){if(!e&&t.readOnly)return!1;let s=t.field(lk,!1);if(!s)return!1;let r=s.pop(n,t,e);return r?(i(r),!0):!1}}const sk=Th(0,!1),Lp=Th(1,!1),E8=Th(0,!0),D8=Th(1,!0);class hn{constructor(e,t,i,s,r){this.changes=e,this.effects=t,this.mapped=i,this.startSelection=s,this.selectionsAfter=r}setSelAfter(e){return new hn(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,i;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=this.mapped)===null||t===void 0?void 0:t.toJSON(),startSelection:(i=this.startSelection)===null||i===void 0?void 0:i.toJSON(),selectionsAfter:this.selectionsAfter.map(s=>s.toJSON())}}static fromJSON(e){return new hn(e.changes&&Ct.fromJSON(e.changes),[],e.mapped&&vi.fromJSON(e.mapped),e.startSelection&&X.fromJSON(e.startSelection),e.selectionsAfter.map(X.fromJSON))}static fromTransaction(e,t){let i=Hn;for(let s of e.startState.facet(T8)){let r=s(e);r.length&&(i=i.concat(r))}return!i.length&&e.changes.empty?null:new hn(e.changes.invert(e.startState.doc),i,void 0,t||e.startState.selection,Hn)}static selection(e){return new hn(void 0,Hn,void 0,void 0,e)}}function th(n,e,t,i){let s=e+1>t+20?e-t-1:0,r=n.slice(s,e);return r.push(i),r}function O8(n,e){let t=[],i=!1;return n.iterChangedRanges((s,r)=>t.push(s,r)),e.iterChangedRanges((s,r,o,u)=>{for(let f=0;f=d&&o<=p&&(i=!0)}}),i}function j8(n,e){return n.ranges.length==e.ranges.length&&n.ranges.filter((t,i)=>t.empty!=e.ranges[i].empty).length===0}function ak(n,e){return n.length?e.length?n.concat(e):n:e}const Hn=[],R8=200;function rk(n,e){if(n.length){let t=n[n.length-1],i=t.selectionsAfter.slice(Math.max(0,t.selectionsAfter.length-R8));return i.length&&i[i.length-1].eq(e)?n:(i.push(e),th(n,n.length-1,1e9,t.setSelAfter(i)))}else return[hn.selection([e])]}function _8(n){let e=n[n.length-1],t=n.slice();return t[n.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),t}function Dm(n,e){if(!n.length)return n;let t=n.length,i=Hn;for(;t;){let s=L8(n[t-1],e,i);if(s.changes&&!s.changes.empty||s.effects.length){let r=n.slice(0,t);return r[t-1]=s,r}else e=s.mapped,t--,i=s.selectionsAfter}return i.length?[hn.selection(i)]:Hn}function L8(n,e,t){let i=ak(n.selectionsAfter.length?n.selectionsAfter.map(u=>u.map(e)):Hn,t);if(!n.changes)return hn.selection(i);let s=n.changes.map(e),r=e.mapDesc(n.changes,!0),o=n.mapped?n.mapped.composeDesc(r):r;return new hn(s,Me.mapEffects(n.effects,e),o,n.startSelection.map(r),i)}const B8=/^(input\.type|delete)($|\.)/;class bi{constructor(e,t,i=0,s=void 0){this.done=e,this.undone=t,this.prevTime=i,this.prevUserEvent=s}isolate(){return this.prevTime?new bi(this.done,this.undone):this}addChanges(e,t,i,s,r){let o=this.done,u=o[o.length-1];return u&&u.changes&&!u.changes.empty&&e.changes&&(!i||B8.test(i))&&(!u.selectionsAfter.length&&t-this.prevTime0&&t-this.prevTimet.empty?n.moveByChar(t,e):Nh(t,e))}function Yt(n){return n.textDirectionAt(n.state.selection.main.head)==Je.LTR}const ck=n=>ok(n,!Yt(n)),uk=n=>ok(n,Yt(n));function hk(n,e){return Jn(n,t=>t.empty?n.moveByGroup(t,e):Nh(t,e))}const H8=n=>hk(n,!Yt(n)),V8=n=>hk(n,Yt(n));function U8(n,e,t){if(e.type.prop(t))return!0;let i=e.to-e.from;return i&&(i>2||/[^\s,.;:]/.test(n.sliceDoc(e.from,e.to)))||e.firstChild}function Eh(n,e,t){let i=Gt(n).resolveInner(e.head),s=t?Le.closedBy:Le.openedBy;for(let f=e.head;;){let d=t?i.childAfter(f):i.childBefore(f);if(!d)break;U8(n,d,s)?i=d:f=t?d.to:d.from}let r=i.type.prop(s),o,u;return r&&(o=t?yi(n,i.from,1):yi(n,i.to,-1))&&o.matched?u=t?o.end.to:o.end.from:u=t?i.to:i.from,X.cursor(u,t?-1:1)}const q8=n=>Jn(n,e=>Eh(n.state,e,!Yt(n))),P8=n=>Jn(n,e=>Eh(n.state,e,Yt(n)));function fk(n,e){return Jn(n,t=>{if(!t.empty)return Nh(t,e);let i=n.moveVertically(t,e);return i.head!=t.head?i:n.moveToLineBoundary(t,e)})}const dk=n=>fk(n,!1),mk=n=>fk(n,!0);function pk(n){let e=n.scrollDOM.clientHeighto.empty?n.moveVertically(o,e,t.height):Nh(o,e));if(s.eq(i.selection))return!1;let r;if(t.selfScroll){let o=n.coordsAtPos(i.selection.main.head),u=n.scrollDOM.getBoundingClientRect(),f=u.top+t.marginTop,d=u.bottom-t.marginBottom;o&&o.top>f&&o.bottomgk(n,!1),Bp=n=>gk(n,!0);function zl(n,e,t){let i=n.lineBlockAt(e.head),s=n.moveToLineBoundary(e,t);if(s.head==e.head&&s.head!=(t?i.to:i.from)&&(s=n.moveToLineBoundary(e,t,!1)),!t&&s.head==i.from&&i.length){let r=/^\s*/.exec(n.state.sliceDoc(i.from,Math.min(i.from+100,i.to)))[0].length;r&&e.head!=i.from+r&&(s=X.cursor(i.from+r))}return s}const K8=n=>Jn(n,e=>zl(n,e,!0)),G8=n=>Jn(n,e=>zl(n,e,!1)),I8=n=>Jn(n,e=>zl(n,e,!Yt(n))),Y8=n=>Jn(n,e=>zl(n,e,Yt(n))),W8=n=>Jn(n,e=>X.cursor(n.lineBlockAt(e.head).from,1)),F8=n=>Jn(n,e=>X.cursor(n.lineBlockAt(e.head).to,-1));function X8(n,e,t){let i=!1,s=Ba(n.selection,r=>{let o=yi(n,r.head,-1)||yi(n,r.head,1)||r.head>0&&yi(n,r.head-1,1)||r.headX8(n,e);function Pn(n,e){let t=Ba(n.state.selection,i=>{let s=e(i);return X.range(i.anchor,s.head,s.goalColumn,s.bidiLevel||void 0)});return t.eq(n.state.selection)?!1:(n.dispatch($n(n.state,t)),!0)}function yk(n,e){return Pn(n,t=>n.moveByChar(t,e))}const bk=n=>yk(n,!Yt(n)),xk=n=>yk(n,Yt(n));function vk(n,e){return Pn(n,t=>n.moveByGroup(t,e))}const Z8=n=>vk(n,!Yt(n)),$8=n=>vk(n,Yt(n)),J8=n=>Pn(n,e=>Eh(n.state,e,!Yt(n))),ej=n=>Pn(n,e=>Eh(n.state,e,Yt(n)));function wk(n,e){return Pn(n,t=>n.moveVertically(t,e))}const Sk=n=>wk(n,!1),kk=n=>wk(n,!0);function Ck(n,e){return Pn(n,t=>n.moveVertically(t,e,pk(n).height))}const Uv=n=>Ck(n,!1),qv=n=>Ck(n,!0),tj=n=>Pn(n,e=>zl(n,e,!0)),nj=n=>Pn(n,e=>zl(n,e,!1)),ij=n=>Pn(n,e=>zl(n,e,!Yt(n))),lj=n=>Pn(n,e=>zl(n,e,Yt(n))),sj=n=>Pn(n,e=>X.cursor(n.lineBlockAt(e.head).from)),aj=n=>Pn(n,e=>X.cursor(n.lineBlockAt(e.head).to)),Pv=({state:n,dispatch:e})=>(e($n(n,{anchor:0})),!0),Kv=({state:n,dispatch:e})=>(e($n(n,{anchor:n.doc.length})),!0),Gv=({state:n,dispatch:e})=>(e($n(n,{anchor:n.selection.main.anchor,head:0})),!0),Iv=({state:n,dispatch:e})=>(e($n(n,{anchor:n.selection.main.anchor,head:n.doc.length})),!0),rj=({state:n,dispatch:e})=>(e(n.update({selection:{anchor:0,head:n.doc.length},userEvent:"select"})),!0),oj=({state:n,dispatch:e})=>{let t=Dh(n).map(({from:i,to:s})=>X.range(i,Math.min(s+1,n.doc.length)));return e(n.update({selection:X.create(t),userEvent:"select"})),!0},cj=({state:n,dispatch:e})=>{let t=Ba(n.selection,i=>{let s=Gt(n),r=s.resolveStack(i.from,1);if(i.empty){let o=s.resolveStack(i.from,-1);o.node.from>=r.node.from&&o.node.to<=r.node.to&&(r=o)}for(let o=r;o;o=o.next){let{node:u}=o;if((u.from=i.to||u.to>i.to&&u.from<=i.from)&&o.next)return X.range(u.to,u.from)}return i});return t.eq(n.selection)?!1:(e($n(n,t)),!0)};function Ak(n,e){let{state:t}=n,i=t.selection,s=t.selection.ranges.slice();for(let r of t.selection.ranges){let o=t.doc.lineAt(r.head);if(e?o.to0)for(let u=r;;){let f=n.moveVertically(u,e);if(f.heado.to){s.some(d=>d.head==f.head)||s.push(f);break}else{if(f.head==u.head)break;u=f}}}return s.length==i.ranges.length?!1:(n.dispatch($n(t,X.create(s,s.length-1))),!0)}const uj=n=>Ak(n,!1),hj=n=>Ak(n,!0),fj=({state:n,dispatch:e})=>{let t=n.selection,i=null;return t.ranges.length>1?i=X.create([t.main]):t.main.empty||(i=X.create([X.cursor(t.main.head)])),i?(e($n(n,i)),!0):!1};function _o(n,e){if(n.state.readOnly)return!1;let t="delete.selection",{state:i}=n,s=i.changeByRange(r=>{let{from:o,to:u}=r;if(o==u){let f=e(r);fo&&(t="delete.forward",f=vu(n,f,!0)),o=Math.min(o,f),u=Math.max(u,f)}else o=vu(n,o,!1),u=vu(n,u,!0);return o==u?{range:r}:{changes:{from:o,to:u},range:X.cursor(o,os(n)))i.between(e,e,(s,r)=>{se&&(e=t?r:s)});return e}const Mk=(n,e,t)=>_o(n,i=>{let s=i.from,{state:r}=n,o=r.doc.lineAt(s),u,f;if(t&&!e&&s>o.from&&sMk(n,!1,!0),Tk=n=>Mk(n,!0,!1),Nk=(n,e)=>_o(n,t=>{let i=t.head,{state:s}=n,r=s.doc.lineAt(i),o=s.charCategorizer(i);for(let u=null;;){if(i==(e?r.to:r.from)){i==t.head&&r.number!=(e?s.doc.lines:1)&&(i+=e?1:-1);break}let f=jt(r.text,i-r.from,e)+r.from,d=r.text.slice(Math.min(i,f)-r.from,Math.max(i,f)-r.from),p=o(d);if(u!=null&&p!=u)break;(d!=" "||i!=t.head)&&(u=p),i=f}return i}),Ek=n=>Nk(n,!1),dj=n=>Nk(n,!0),mj=n=>_o(n,e=>{let t=n.lineBlockAt(e.head).to;return e.head_o(n,e=>{let t=n.moveToLineBoundary(e,!1).head;return e.head>t?t:Math.max(0,e.head-1)}),gj=n=>_o(n,e=>{let t=n.moveToLineBoundary(e,!0).head;return e.head{if(n.readOnly)return!1;let t=n.changeByRange(i=>({changes:{from:i.from,to:i.to,insert:qe.of(["",""])},range:X.cursor(i.from)}));return e(n.update(t,{scrollIntoView:!0,userEvent:"input"})),!0},bj=({state:n,dispatch:e})=>{if(n.readOnly)return!1;let t=n.changeByRange(i=>{if(!i.empty||i.from==0||i.from==n.doc.length)return{range:i};let s=i.from,r=n.doc.lineAt(s),o=s==r.from?s-1:jt(r.text,s-r.from,!1)+r.from,u=s==r.to?s+1:jt(r.text,s-r.from,!0)+r.from;return{changes:{from:o,to:u,insert:n.doc.slice(s,u).append(n.doc.slice(o,s))},range:X.cursor(u)}});return t.changes.empty?!1:(e(n.update(t,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function Dh(n){let e=[],t=-1;for(let i of n.selection.ranges){let s=n.doc.lineAt(i.from),r=n.doc.lineAt(i.to);if(!i.empty&&i.to==r.from&&(r=n.doc.lineAt(i.to-1)),t>=s.number){let o=e[e.length-1];o.to=r.to,o.ranges.push(i)}else e.push({from:s.from,to:r.to,ranges:[i]});t=r.number+1}return e}function Dk(n,e,t){if(n.readOnly)return!1;let i=[],s=[];for(let r of Dh(n)){if(t?r.to==n.doc.length:r.from==0)continue;let o=n.doc.lineAt(t?r.to+1:r.from-1),u=o.length+1;if(t){i.push({from:r.to,to:o.to},{from:r.from,insert:o.text+n.lineBreak});for(let f of r.ranges)s.push(X.range(Math.min(n.doc.length,f.anchor+u),Math.min(n.doc.length,f.head+u)))}else{i.push({from:o.from,to:r.from},{from:r.to,insert:n.lineBreak+o.text});for(let f of r.ranges)s.push(X.range(f.anchor-u,f.head-u))}}return i.length?(e(n.update({changes:i,scrollIntoView:!0,selection:X.create(s,n.selection.mainIndex),userEvent:"move.line"})),!0):!1}const xj=({state:n,dispatch:e})=>Dk(n,e,!1),vj=({state:n,dispatch:e})=>Dk(n,e,!0);function Ok(n,e,t){if(n.readOnly)return!1;let i=[];for(let r of Dh(n))t?i.push({from:r.from,insert:n.doc.slice(r.from,r.to)+n.lineBreak}):i.push({from:r.to,insert:n.lineBreak+n.doc.slice(r.from,r.to)});let s=n.changes(i);return e(n.update({changes:s,selection:n.selection.map(s,t?1:-1),scrollIntoView:!0,userEvent:"input.copyline"})),!0}const wj=({state:n,dispatch:e})=>Ok(n,e,!1),Sj=({state:n,dispatch:e})=>Ok(n,e,!0),kj=n=>{if(n.state.readOnly)return!1;let{state:e}=n,t=e.changes(Dh(e).map(({from:s,to:r})=>(s>0?s--:r{let r;if(n.lineWrapping){let o=n.lineBlockAt(s.head),u=n.coordsAtPos(s.head,s.assoc||1);u&&(r=o.bottom+n.documentTop-u.bottom+n.defaultLineHeight/2)}return n.moveVertically(s,!0,r)}).map(t);return n.dispatch({changes:t,selection:i,scrollIntoView:!0,userEvent:"delete.line"}),!0};function Cj(n,e){if(/\(\)|\[\]|\{\}/.test(n.sliceDoc(e-1,e+1)))return{from:e,to:e};let t=Gt(n).resolveInner(e),i=t.childBefore(e),s=t.childAfter(e),r;return i&&s&&i.to<=e&&s.from>=e&&(r=i.type.prop(Le.closedBy))&&r.indexOf(s.name)>-1&&n.doc.lineAt(i.to).from==n.doc.lineAt(s.from).from&&!/\S/.test(n.sliceDoc(i.to,s.from))?{from:i.to,to:s.from}:null}const Yv=jk(!1),Aj=jk(!0);function jk(n){return({state:e,dispatch:t})=>{if(e.readOnly)return!1;let i=e.changeByRange(s=>{let{from:r,to:o}=s,u=e.doc.lineAt(r),f=!n&&r==o&&Cj(e,r);n&&(r=o=(o<=u.to?u:e.doc.lineAt(o)).to);let d=new Ah(e,{simulateBreak:r,simulateDoubleBreak:!!f}),p=Tg(d,r);for(p==null&&(p=La(/^\s*/.exec(e.doc.lineAt(r).text)[0],e.tabSize));ou.from&&r{let s=[];for(let o=i.from;o<=i.to;){let u=n.doc.lineAt(o);u.number>t&&(i.empty||i.to>u.from)&&(e(u,s,i),t=u.number),o=u.to+1}let r=n.changes(s);return{changes:s,range:X.range(r.mapPos(i.anchor,1),r.mapPos(i.head,1))}})}const Mj=({state:n,dispatch:e})=>{if(n.readOnly)return!1;let t=Object.create(null),i=new Ah(n,{overrideIndentation:r=>{let o=t[r];return o??-1}}),s=_g(n,(r,o,u)=>{let f=Tg(i,r.from);if(f==null)return;/\S/.test(r.text)||(f=0);let d=/^\s*/.exec(r.text)[0],p=yo(n,f);(d!=p||u.fromn.readOnly?!1:(e(n.update(_g(n,(t,i)=>{i.push({from:t.from,insert:n.facet(Ch)})}),{userEvent:"input.indent"})),!0),_k=({state:n,dispatch:e})=>n.readOnly?!1:(e(n.update(_g(n,(t,i)=>{let s=/^\s*/.exec(t.text)[0];if(!s)return;let r=La(s,n.tabSize),o=0,u=yo(n,Math.max(0,r-xs(n)));for(;o(n.setTabFocusMode(),!0),Nj=[{key:"Ctrl-b",run:ck,shift:bk,preventDefault:!0},{key:"Ctrl-f",run:uk,shift:xk},{key:"Ctrl-p",run:dk,shift:Sk},{key:"Ctrl-n",run:mk,shift:kk},{key:"Ctrl-a",run:W8,shift:sj},{key:"Ctrl-e",run:F8,shift:aj},{key:"Ctrl-d",run:Tk},{key:"Ctrl-h",run:zp},{key:"Ctrl-k",run:mj},{key:"Ctrl-Alt-h",run:Ek},{key:"Ctrl-o",run:yj},{key:"Ctrl-t",run:bj},{key:"Ctrl-v",run:Bp}],Ej=[{key:"ArrowLeft",run:ck,shift:bk,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:H8,shift:Z8,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:I8,shift:ij,preventDefault:!0},{key:"ArrowRight",run:uk,shift:xk,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:V8,shift:$8,preventDefault:!0},{mac:"Cmd-ArrowRight",run:Y8,shift:lj,preventDefault:!0},{key:"ArrowUp",run:dk,shift:Sk,preventDefault:!0},{mac:"Cmd-ArrowUp",run:Pv,shift:Gv},{mac:"Ctrl-ArrowUp",run:Vv,shift:Uv},{key:"ArrowDown",run:mk,shift:kk,preventDefault:!0},{mac:"Cmd-ArrowDown",run:Kv,shift:Iv},{mac:"Ctrl-ArrowDown",run:Bp,shift:qv},{key:"PageUp",run:Vv,shift:Uv},{key:"PageDown",run:Bp,shift:qv},{key:"Home",run:G8,shift:nj,preventDefault:!0},{key:"Mod-Home",run:Pv,shift:Gv},{key:"End",run:K8,shift:tj,preventDefault:!0},{key:"Mod-End",run:Kv,shift:Iv},{key:"Enter",run:Yv,shift:Yv},{key:"Mod-a",run:rj},{key:"Backspace",run:zp,shift:zp,preventDefault:!0},{key:"Delete",run:Tk,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:Ek,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:dj,preventDefault:!0},{mac:"Mod-Backspace",run:pj,preventDefault:!0},{mac:"Mod-Delete",run:gj,preventDefault:!0}].concat(Nj.map(n=>({mac:n.key,run:n.run,shift:n.shift}))),Dj=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:q8,shift:J8},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:P8,shift:ej},{key:"Alt-ArrowUp",run:xj},{key:"Shift-Alt-ArrowUp",run:wj},{key:"Alt-ArrowDown",run:vj},{key:"Shift-Alt-ArrowDown",run:Sj},{key:"Mod-Alt-ArrowUp",run:uj},{key:"Mod-Alt-ArrowDown",run:hj},{key:"Escape",run:fj},{key:"Mod-Enter",run:Aj},{key:"Alt-l",mac:"Ctrl-l",run:oj},{key:"Mod-i",run:cj,preventDefault:!0},{key:"Mod-[",run:_k},{key:"Mod-]",run:Rk},{key:"Mod-Alt-\\",run:Mj},{key:"Shift-Mod-k",run:kj},{key:"Shift-Mod-\\",run:Q8},{key:"Mod-/",run:x8},{key:"Alt-A",run:w8},{key:"Ctrl-m",mac:"Shift-Alt-m",run:Tj}].concat(Ej),Oj={key:"Tab",run:Rk,shift:_k},Wv=typeof String.prototype.normalize=="function"?n=>n.normalize("NFKD"):n=>n;class Oa{constructor(e,t,i=0,s=e.length,r,o){this.test=o,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(i,s),this.bufferStart=i,this.normalize=r?u=>r(Wv(u)):Wv,this.query=this.normalize(t)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return rn(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let t=og(e),i=this.bufferStart+this.bufferPos;this.bufferPos+=mi(e);let s=this.normalize(t);if(s.length)for(let r=0,o=i;;r++){let u=s.charCodeAt(r),f=this.match(u,o,this.bufferPos+this.bufferStart);if(r==s.length-1){if(f)return this.value=f,this;break}o==i&&rthis.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let t=this.matchPos<=this.to&&this.re.exec(this.curLine);if(t){let i=this.curLineStart+t.index,s=i+t[0].length;if(this.matchPos=nh(this.text,s+(i==s?1:0)),i==this.curLineStart+this.curLine.length&&this.nextLine(),(ithis.value.to)&&(!this.test||this.test(i,s,t)))return this.value={from:i,to:s,match:t},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length=i||s.to<=t){let u=new Sa(t,e.sliceString(t,i));return Om.set(e,u),u}if(s.from==t&&s.to==i)return s;let{text:r,from:o}=s;return o>t&&(r=e.sliceString(t,o)+r,o=t),s.to=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,t=this.re.exec(this.flat.text);if(t&&!t[0]&&t.index==e&&(this.re.lastIndex=e+1,t=this.re.exec(this.flat.text)),t){let i=this.flat.from+t.index,s=i+t[0].length;if((this.flat.to>=this.to||t.index+t[0].length<=this.flat.text.length-10)&&(!this.test||this.test(i,s,t)))return this.value={from:i,to:s,match:t},this.matchPos=nh(this.text,s+(i==s?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=Sa.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}typeof Symbol<"u"&&(Bk.prototype[Symbol.iterator]=zk.prototype[Symbol.iterator]=function(){return this});function jj(n){try{return new RegExp(n,Lg),!0}catch{return!1}}function nh(n,e){if(e>=n.length)return e;let t=n.lineAt(e),i;for(;e=56320&&i<57344;)e++;return e}const Rj=n=>{let{state:e}=n,t=String(e.doc.lineAt(n.state.selection.main.head).number),{close:i,result:s}=PD(n,{label:e.phrase("Go to line"),input:{type:"text",name:"line",value:t},focus:!0,submitLabel:e.phrase("go")});return s.then(r=>{let o=r&&/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(r.elements.line.value);if(!o){n.dispatch({effects:i});return}let u=e.doc.lineAt(e.selection.main.head),[,f,d,p,b]=o,x=p?+p.slice(1):0,w=d?+d:u.number;if(d&&b){let C=w/100;f&&(C=C*(f=="-"?-1:1)+u.number/e.doc.lines),w=Math.round(e.doc.lines*C)}else d&&f&&(w=w*(f=="-"?-1:1)+u.number);let S=e.doc.line(Math.max(1,Math.min(e.doc.lines,w))),A=X.cursor(S.from+Math.max(0,Math.min(x,S.length)));n.dispatch({effects:[i,re.scrollIntoView(A.from,{y:"center"})],selection:A})}),!0},_j={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},Lj=ce.define({combine(n){return Si(n,_j,{highlightWordAroundCursor:(e,t)=>e||t,minSelectionLength:Math.min,maxMatches:Math.min})}});function Bj(n){return[qj,Uj]}const zj=we.mark({class:"cm-selectionMatch"}),Hj=we.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function Fv(n,e,t,i){return(t==0||n(e.sliceDoc(t-1,t))!=at.Word)&&(i==e.doc.length||n(e.sliceDoc(i,i+1))!=at.Word)}function Vj(n,e,t,i){return n(e.sliceDoc(t,t+1))==at.Word&&n(e.sliceDoc(i-1,i))==at.Word}const Uj=ft.fromClass(class{constructor(n){this.decorations=this.getDeco(n)}update(n){(n.selectionSet||n.docChanged||n.viewportChanged)&&(this.decorations=this.getDeco(n.view))}getDeco(n){let e=n.state.facet(Lj),{state:t}=n,i=t.selection;if(i.ranges.length>1)return we.none;let s=i.main,r,o=null;if(s.empty){if(!e.highlightWordAroundCursor)return we.none;let f=t.wordAt(s.head);if(!f)return we.none;o=t.charCategorizer(s.head),r=t.sliceDoc(f.from,f.to)}else{let f=s.to-s.from;if(f200)return we.none;if(e.wholeWords){if(r=t.sliceDoc(s.from,s.to),o=t.charCategorizer(s.head),!(Fv(o,t,s.from,s.to)&&Vj(o,t,s.from,s.to)))return we.none}else if(r=t.sliceDoc(s.from,s.to),!r)return we.none}let u=[];for(let f of n.visibleRanges){let d=new Oa(t.doc,r,f.from,f.to);for(;!d.next().done;){let{from:p,to:b}=d.value;if((!o||Fv(o,t,p,b))&&(s.empty&&p<=s.from&&b>=s.to?u.push(Hj.range(p,b)):(p>=s.to||b<=s.from)&&u.push(zj.range(p,b)),u.length>e.maxMatches))return we.none}}return we.set(u)}},{decorations:n=>n.decorations}),qj=re.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),Pj=({state:n,dispatch:e})=>{let{selection:t}=n,i=X.create(t.ranges.map(s=>n.wordAt(s.head)||X.cursor(s.head)),t.mainIndex);return i.eq(t)?!1:(e(n.update({selection:i})),!0)};function Kj(n,e){let{main:t,ranges:i}=n.selection,s=n.wordAt(t.head),r=s&&s.from==t.from&&s.to==t.to;for(let o=!1,u=new Oa(n.doc,e,i[i.length-1].to);;)if(u.next(),u.done){if(o)return null;u=new Oa(n.doc,e,0,Math.max(0,i[i.length-1].from-1)),o=!0}else{if(o&&i.some(f=>f.from==u.value.from))continue;if(r){let f=n.wordAt(u.value.from);if(!f||f.from!=u.value.from||f.to!=u.value.to)continue}return u.value}}const Gj=({state:n,dispatch:e})=>{let{ranges:t}=n.selection;if(t.some(r=>r.from===r.to))return Pj({state:n,dispatch:e});let i=n.sliceDoc(t[0].from,t[0].to);if(n.selection.ranges.some(r=>n.sliceDoc(r.from,r.to)!=i))return!1;let s=Kj(n,i);return s?(e(n.update({selection:n.selection.addRange(X.range(s.from,s.to),!1),effects:re.scrollIntoView(s.to)})),!0):!1},za=ce.define({combine(n){return Si(n,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new lR(e),scrollToMatch:e=>re.scrollIntoView(e)})}});class Hk{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||jj(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord,this.test=e.test}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(t,i)=>i=="n"?` -`:i=="r"?"\r":i=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord&&this.test==e.test}create(){return this.regexp?new Qj(this):new Wj(this)}getCursor(e,t=0,i){let s=e.doc?e:ze.create({doc:e});return i==null&&(i=s.doc.length),this.regexp?fa(this,s,t,i):ha(this,s,t,i)}}class Vk{constructor(e){this.spec=e}}function Ij(n,e,t){return(i,s,r,o)=>{if(t&&!t(i,s,r,o))return!1;let u=i>=o&&s<=o+r.length?r.slice(i-o,s-o):e.doc.sliceString(i,s);return n(u,e,i,s)}}function ha(n,e,t,i){let s;return n.wholeWord&&(s=Yj(e.doc,e.charCategorizer(e.selection.main.head))),n.test&&(s=Ij(n.test,e,s)),new Oa(e.doc,n.unquoted,t,i,n.caseSensitive?void 0:r=>r.toLowerCase(),s)}function Yj(n,e){return(t,i,s,r)=>((r>t||r+s.length=t)return null;s.push(i.value)}return s}highlight(e,t,i,s){let r=ha(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(i+this.spec.unquoted.length,e.doc.length));for(;!r.next().done;)s(r.value.from,r.value.to)}}function Fj(n,e,t){return(i,s,r)=>(!t||t(i,s,r))&&n(r[0],e,i,s)}function fa(n,e,t,i){let s;return n.wholeWord&&(s=Xj(e.charCategorizer(e.selection.main.head))),n.test&&(s=Fj(n.test,e,s)),new Bk(e.doc,n.search,{ignoreCase:!n.caseSensitive,test:s},t,i)}function ih(n,e){return n.slice(jt(n,e,!1),e)}function lh(n,e){return n.slice(e,jt(n,e))}function Xj(n){return(e,t,i)=>!i[0].length||(n(ih(i.input,i.index))!=at.Word||n(lh(i.input,i.index))!=at.Word)&&(n(lh(i.input,i.index+i[0].length))!=at.Word||n(ih(i.input,i.index+i[0].length))!=at.Word)}class Qj extends Vk{nextMatch(e,t,i){let s=fa(this.spec,e,i,e.doc.length).next();return s.done&&(s=fa(this.spec,e,0,t).next()),s.done?null:s.value}prevMatchInRange(e,t,i){for(let s=1;;s++){let r=Math.max(t,i-s*1e4),o=fa(this.spec,e,r,i),u=null;for(;!o.next().done;)u=o.value;if(u&&(r==t||u.from>r+10))return u;if(r==t)return null}}prevMatch(e,t,i){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,i,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(t,i)=>{if(i=="&")return e.match[0];if(i=="$")return"$";for(let s=i.length;s>0;s--){let r=+i.slice(0,s);if(r>0&&r=t)return null;s.push(i.value)}return s}highlight(e,t,i,s){let r=fa(this.spec,e,Math.max(0,t-250),Math.min(i+250,e.doc.length));for(;!r.next().done;)s(r.value.from,r.value.to)}}const xo=Me.define(),Bg=Me.define(),El=It.define({create(n){return new jm(Hp(n).create(),null)},update(n,e){for(let t of e.effects)t.is(xo)?n=new jm(t.value.create(),n.panel):t.is(Bg)&&(n=new jm(n.query,t.value?zg:null));return n},provide:n=>po.from(n,e=>e.panel)});class jm{constructor(e,t){this.query=e,this.panel=t}}const Zj=we.mark({class:"cm-searchMatch"}),$j=we.mark({class:"cm-searchMatch cm-searchMatch-selected"}),Jj=ft.fromClass(class{constructor(n){this.view=n,this.decorations=this.highlight(n.state.field(El))}update(n){let e=n.state.field(El);(e!=n.startState.field(El)||n.docChanged||n.selectionSet||n.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:n,panel:e}){if(!e||!n.spec.valid)return we.none;let{view:t}=this,i=new Fi;for(let s=0,r=t.visibleRanges,o=r.length;sr[s+1].from-500;)f=r[++s].to;n.highlight(t.state,u,f,(d,p)=>{let b=t.state.selection.ranges.some(x=>x.from==d&&x.to==p);i.add(d,p,b?$j:Zj)})}return i.finish()}},{decorations:n=>n.decorations});function Lo(n){return e=>{let t=e.state.field(El,!1);return t&&t.query.spec.valid?n(e,t):Pk(e)}}const sh=Lo((n,{query:e})=>{let{to:t}=n.state.selection.main,i=e.nextMatch(n.state,t,t);if(!i)return!1;let s=X.single(i.from,i.to),r=n.state.facet(za);return n.dispatch({selection:s,effects:[Hg(n,i),r.scrollToMatch(s.main,n)],userEvent:"select.search"}),qk(n),!0}),ah=Lo((n,{query:e})=>{let{state:t}=n,{from:i}=t.selection.main,s=e.prevMatch(t,i,i);if(!s)return!1;let r=X.single(s.from,s.to),o=n.state.facet(za);return n.dispatch({selection:r,effects:[Hg(n,s),o.scrollToMatch(r.main,n)],userEvent:"select.search"}),qk(n),!0}),eR=Lo((n,{query:e})=>{let t=e.matchAll(n.state,1e3);return!t||!t.length?!1:(n.dispatch({selection:X.create(t.map(i=>X.range(i.from,i.to))),userEvent:"select.search.matches"}),!0)}),tR=({state:n,dispatch:e})=>{let t=n.selection;if(t.ranges.length>1||t.main.empty)return!1;let{from:i,to:s}=t.main,r=[],o=0;for(let u=new Oa(n.doc,n.sliceDoc(i,s));!u.next().done;){if(r.length>1e3)return!1;u.value.from==i&&(o=r.length),r.push(X.range(u.value.from,u.value.to))}return e(n.update({selection:X.create(r,o),userEvent:"select.search.matches"})),!0},Xv=Lo((n,{query:e})=>{let{state:t}=n,{from:i,to:s}=t.selection.main;if(t.readOnly)return!1;let r=e.nextMatch(t,i,i);if(!r)return!1;let o=r,u=[],f,d,p=[];o.from==i&&o.to==s&&(d=t.toText(e.getReplacement(o)),u.push({from:o.from,to:o.to,insert:d}),o=e.nextMatch(t,o.from,o.to),p.push(re.announce.of(t.phrase("replaced match on line $",t.doc.lineAt(i).number)+".")));let b=n.state.changes(u);return o&&(f=X.single(o.from,o.to).map(b),p.push(Hg(n,o)),p.push(t.facet(za).scrollToMatch(f.main,n))),n.dispatch({changes:b,selection:f,effects:p,userEvent:"input.replace"}),!0}),nR=Lo((n,{query:e})=>{if(n.state.readOnly)return!1;let t=e.matchAll(n.state,1e9).map(s=>{let{from:r,to:o}=s;return{from:r,to:o,insert:e.getReplacement(s)}});if(!t.length)return!1;let i=n.state.phrase("replaced $ matches",t.length)+".";return n.dispatch({changes:t,effects:re.announce.of(i),userEvent:"input.replace.all"}),!0});function zg(n){return n.state.facet(za).createPanel(n)}function Hp(n,e){var t,i,s,r,o;let u=n.selection.main,f=u.empty||u.to>u.from+100?"":n.sliceDoc(u.from,u.to);if(e&&!f)return e;let d=n.facet(za);return new Hk({search:((t=e==null?void 0:e.literal)!==null&&t!==void 0?t:d.literal)?f:f.replace(/\n/g,"\\n"),caseSensitive:(i=e==null?void 0:e.caseSensitive)!==null&&i!==void 0?i:d.caseSensitive,literal:(s=e==null?void 0:e.literal)!==null&&s!==void 0?s:d.literal,regexp:(r=e==null?void 0:e.regexp)!==null&&r!==void 0?r:d.regexp,wholeWord:(o=e==null?void 0:e.wholeWord)!==null&&o!==void 0?o:d.wholeWord})}function Uk(n){let e=Mg(n,zg);return e&&e.dom.querySelector("[main-field]")}function qk(n){let e=Uk(n);e&&e==n.root.activeElement&&e.select()}const Pk=n=>{let e=n.state.field(El,!1);if(e&&e.panel){let t=Uk(n);if(t&&t!=n.root.activeElement){let i=Hp(n.state,e.query.spec);i.valid&&n.dispatch({effects:xo.of(i)}),t.focus(),t.select()}}else n.dispatch({effects:[Bg.of(!0),e?xo.of(Hp(n.state,e.query.spec)):Me.appendConfig.of(aR)]});return!0},Kk=n=>{let e=n.state.field(El,!1);if(!e||!e.panel)return!1;let t=Mg(n,zg);return t&&t.dom.contains(n.root.activeElement)&&n.focus(),n.dispatch({effects:Bg.of(!1)}),!0},iR=[{key:"Mod-f",run:Pk,scope:"editor search-panel"},{key:"F3",run:sh,shift:ah,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:sh,shift:ah,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:Kk,scope:"editor search-panel"},{key:"Mod-Shift-l",run:tR},{key:"Mod-Alt-g",run:Rj},{key:"Mod-d",run:Gj,preventDefault:!0}];class lR{constructor(e){this.view=e;let t=this.query=e.state.field(El).query.spec;this.commit=this.commit.bind(this),this.searchField=Qe("input",{value:t.search,placeholder:Sn(e,"Find"),"aria-label":Sn(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=Qe("input",{value:t.replace,placeholder:Sn(e,"Replace"),"aria-label":Sn(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=Qe("input",{type:"checkbox",name:"case",form:"",checked:t.caseSensitive,onchange:this.commit}),this.reField=Qe("input",{type:"checkbox",name:"re",form:"",checked:t.regexp,onchange:this.commit}),this.wordField=Qe("input",{type:"checkbox",name:"word",form:"",checked:t.wholeWord,onchange:this.commit});function i(s,r,o){return Qe("button",{class:"cm-button",name:s,onclick:r,type:"button"},o)}this.dom=Qe("div",{onkeydown:s=>this.keydown(s),class:"cm-search"},[this.searchField,i("next",()=>sh(e),[Sn(e,"next")]),i("prev",()=>ah(e),[Sn(e,"previous")]),i("select",()=>eR(e),[Sn(e,"all")]),Qe("label",null,[this.caseField,Sn(e,"match case")]),Qe("label",null,[this.reField,Sn(e,"regexp")]),Qe("label",null,[this.wordField,Sn(e,"by word")]),...e.state.readOnly?[]:[Qe("br"),this.replaceField,i("replace",()=>Xv(e),[Sn(e,"replace")]),i("replaceAll",()=>nR(e),[Sn(e,"replace all")])],Qe("button",{name:"close",onclick:()=>Kk(e),"aria-label":Sn(e,"close"),type:"button"},["×"])])}commit(){let e=new Hk({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:xo.of(e)}))}keydown(e){$5(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?ah:sh)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),Xv(this.view))}update(e){for(let t of e.transactions)for(let i of t.effects)i.is(xo)&&!i.value.eq(this.query)&&this.setQuery(i.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(za).top}}function Sn(n,e){return n.state.phrase(e)}const wu=30,Su=/[\s\.,:;?!]/;function Hg(n,{from:e,to:t}){let i=n.state.doc.lineAt(e),s=n.state.doc.lineAt(t).to,r=Math.max(i.from,e-wu),o=Math.min(s,t+wu),u=n.state.sliceDoc(r,o);if(r!=i.from){for(let f=0;fu.length-wu;f--)if(!Su.test(u[f-1])&&Su.test(u[f])){u=u.slice(0,f);break}}return re.announce.of(`${n.state.phrase("current match")}. ${u} ${n.state.phrase("on line")} ${i.number}.`)}const sR=re.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),aR=[El,Ss.low(Jj),sR];class Gk{constructor(e,t,i,s){this.state=e,this.pos=t,this.explicit=i,this.view=s,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let t=Gt(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),i=Math.max(t.from,this.pos-250),s=t.text.slice(i-t.from,this.pos-t.from),r=s.search(Ik(e,!1));return r<0?null:{from:i+r,to:this.pos,text:s.slice(r)}}get aborted(){return this.abortListeners==null}addEventListener(e,t,i){e=="abort"&&this.abortListeners&&(this.abortListeners.push(t),i&&i.onDocChange&&(this.abortOnDocChange=!0))}}function Qv(n){let e=Object.keys(n).join(""),t=/\w/.test(e);return t&&(e=e.replace(/\w/g,"")),`[${t?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function rR(n){let e=Object.create(null),t=Object.create(null);for(let{label:s}of n){e[s[0]]=!0;for(let r=1;rtypeof s=="string"?{label:s}:s),[t,i]=e.every(s=>/^\w+$/.test(s.label))?[/\w*$/,/\w+$/]:rR(e);return s=>{let r=s.matchBefore(i);return r||s.explicit?{from:r?r.from:s.pos,options:e,validFor:t}:null}}class Zv{constructor(e,t,i,s){this.completion=e,this.source=t,this.match=i,this.score=s}}function ps(n){return n.selection.main.from}function Ik(n,e){var t;let{source:i}=n,s=e&&i[0]!="^",r=i[i.length-1]!="$";return!s&&!r?n:new RegExp(`${s?"^":""}(?:${i})${r?"$":""}`,(t=n.flags)!==null&&t!==void 0?t:n.ignoreCase?"i":"")}const Yk=wi.define();function cR(n,e,t,i){let{main:s}=n.selection,r=t-s.from,o=i-s.from;return{...n.changeByRange(u=>{if(u!=s&&t!=i&&n.sliceDoc(u.from+r,u.from+o)!=n.sliceDoc(t,i))return{range:u};let f=n.toText(e);return{changes:{from:u.from+r,to:i==s.from?u.to:u.from+o,insert:f},range:X.cursor(u.from+r+f.length)}}),scrollIntoView:!0,userEvent:"input.complete"}}const $v=new WeakMap;function uR(n){if(!Array.isArray(n))return n;let e=$v.get(n);return e||$v.set(n,e=oR(n)),e}const rh=Me.define(),vo=Me.define();class hR{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let t=0;t=48&&B<=57||B>=97&&B<=122?2:B>=65&&B<=90?1:0:(I=og(B))!=I.toLowerCase()?1:I!=I.toUpperCase()?2:0;(!R||V==1&&C||q==0&&V!=0)&&(t[b]==B||i[b]==B&&(x=!0)?o[b++]=R:o.length&&(T=!1)),q=V,R+=mi(B)}return b==f&&o[0]==0&&T?this.result(-100+(x?-200:0),o,e):w==f&&S==0?this.ret(-200-e.length+(A==e.length?0:-100),[0,A]):u>-1?this.ret(-700-e.length,[u,u+this.pattern.length]):w==f?this.ret(-900-e.length,[S,A]):b==f?this.result(-100+(x?-200:0)+-700+(T?0:-1100),o,e):t.length==2?null:this.result((s[0]?-700:0)+-200+-1100,s,e)}result(e,t,i){let s=[],r=0;for(let o of t){let u=o+(this.astral?mi(rn(i,o)):1);r&&s[r-1]==o?s[r-1]=u:(s[r++]=o,s[r++]=u)}return this.ret(e-i.length,s)}}class fR{constructor(e){this.pattern=e,this.matched=[],this.score=0,this.folded=e.toLowerCase()}match(e){if(e.length!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:dR,filterStrict:!1,compareCompletions:(e,t)=>(e.sortText||e.label).localeCompare(t.sortText||t.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(e,t)=>e&&t,closeOnBlur:(e,t)=>e&&t,icons:(e,t)=>e&&t,tooltipClass:(e,t)=>i=>Jv(e(i),t(i)),optionClass:(e,t)=>i=>Jv(e(i),t(i)),addToOptions:(e,t)=>e.concat(t),filterStrict:(e,t)=>e||t})}});function Jv(n,e){return n?e?n+" "+e:n:e}function dR(n,e,t,i,s,r){let o=n.textDirection==Je.RTL,u=o,f=!1,d="top",p,b,x=e.left-s.left,w=s.right-e.right,S=i.right-i.left,A=i.bottom-i.top;if(u&&x=A||R>e.top?p=t.bottom-e.top:(d="bottom",p=e.bottom-t.top)}let C=(e.bottom-e.top)/r.offsetHeight,T=(e.right-e.left)/r.offsetWidth;return{style:`${d}: ${p/C}px; max-width: ${b/T}px`,class:"cm-completionInfo-"+(f?o?"left-narrow":"right-narrow":u?"left":"right")}}function mR(n){let e=n.addToOptions.slice();return n.icons&&e.push({render(t){let i=document.createElement("div");return i.classList.add("cm-completionIcon"),t.type&&i.classList.add(...t.type.split(/\s+/g).map(s=>"cm-completionIcon-"+s)),i.setAttribute("aria-hidden","true"),i},position:20}),e.push({render(t,i,s,r){let o=document.createElement("span");o.className="cm-completionLabel";let u=t.displayLabel||t.label,f=0;for(let d=0;df&&o.appendChild(document.createTextNode(u.slice(f,p)));let x=o.appendChild(document.createElement("span"));x.appendChild(document.createTextNode(u.slice(p,b))),x.className="cm-completionMatchedText",f=b}return ft.position-i.position).map(t=>t.render)}function Rm(n,e,t){if(n<=t)return{from:0,to:n};if(e<0&&(e=0),e<=n>>1){let s=Math.floor(e/t);return{from:s*t,to:(s+1)*t}}let i=Math.floor((n-e)/t);return{from:n-(i+1)*t,to:n-i*t}}class pR{constructor(e,t,i){this.view=e,this.stateField=t,this.applyCompletion=i,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:f=>this.placeInfo(f),key:this},this.space=null,this.currentClass="";let s=e.state.field(t),{options:r,selected:o}=s.open,u=e.state.facet(Ot);this.optionContent=mR(u),this.optionClass=u.optionClass,this.tooltipClass=u.tooltipClass,this.range=Rm(r.length,o,u.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",f=>{let{options:d}=e.state.field(t).open;for(let p=f.target,b;p&&p!=this.dom;p=p.parentNode)if(p.nodeName=="LI"&&(b=/-(\d+)$/.exec(p.id))&&+b[1]{let d=e.state.field(this.stateField,!1);d&&d.tooltip&&e.state.facet(Ot).closeOnBlur&&f.relatedTarget!=e.contentDOM&&e.dispatch({effects:vo.of(null)})}),this.showOptions(r,s.id)}mount(){this.updateSel()}showOptions(e,t){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(e,t,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(e){var t;let i=e.state.field(this.stateField),s=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),i!=s){let{options:r,selected:o,disabled:u}=i.open;(!s.open||s.open.options!=r)&&(this.range=Rm(r.length,o,e.state.facet(Ot).maxRenderedOptions),this.showOptions(r,i.id)),this.updateSel(),u!=((t=s.open)===null||t===void 0?void 0:t.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!u)}}updateTooltipClass(e){let t=this.tooltipClass(e);if(t!=this.currentClass){for(let i of this.currentClass.split(" "))i&&this.dom.classList.remove(i);for(let i of t.split(" "))i&&this.dom.classList.add(i);this.currentClass=t}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),t=e.open;(t.selected>-1&&t.selected=this.range.to)&&(this.range=Rm(t.options.length,t.selected,this.view.state.facet(Ot).maxRenderedOptions),this.showOptions(t.options,e.id));let i=this.updateSelectedOption(t.selected);if(i){this.destroyInfo();let{completion:s}=t.options[t.selected],{info:r}=s;if(!r)return;let o=typeof r=="string"?document.createTextNode(r):r(s);if(!o)return;"then"in o?o.then(u=>{u&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(u,s)}).catch(u=>un(this.view.state,u,"completion info")):(this.addInfoPane(o,s),i.setAttribute("aria-describedby",this.info.id))}}addInfoPane(e,t){this.destroyInfo();let i=this.info=document.createElement("div");if(i.className="cm-tooltip cm-completionInfo",i.id="cm-completionInfo-"+Math.floor(Math.random()*65535).toString(16),e.nodeType!=null)i.appendChild(e),this.infoDestroy=null;else{let{dom:s,destroy:r}=e;i.appendChild(s),this.infoDestroy=r||null}this.dom.appendChild(i),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let t=null;for(let i=this.list.firstChild,s=this.range.from;i;i=i.nextSibling,s++)i.nodeName!="LI"||!i.id?s--:s==e?i.hasAttribute("aria-selected")||(i.setAttribute("aria-selected","true"),t=i):i.hasAttribute("aria-selected")&&(i.removeAttribute("aria-selected"),i.removeAttribute("aria-describedby"));return t&&yR(this.list,t),t}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let t=this.dom.getBoundingClientRect(),i=this.info.getBoundingClientRect(),s=e.getBoundingClientRect(),r=this.space;if(!r){let o=this.dom.ownerDocument.documentElement;r={left:0,top:0,right:o.clientWidth,bottom:o.clientHeight}}return s.top>Math.min(r.bottom,t.bottom)-10||s.bottom{o.target==s&&o.preventDefault()});let r=null;for(let o=i.from;oi.from||i.from==0))if(r=x,typeof d!="string"&&d.header)s.appendChild(d.header(d));else{let w=s.appendChild(document.createElement("completion-section"));w.textContent=x}}const p=s.appendChild(document.createElement("li"));p.id=t+"-"+o,p.setAttribute("role","option");let b=this.optionClass(u);b&&(p.className=b);for(let x of this.optionContent){let w=x(u,this.view.state,this.view,f);w&&p.appendChild(w)}}return i.from&&s.classList.add("cm-completionListIncompleteTop"),i.tonew pR(t,n,e)}function yR(n,e){let t=n.getBoundingClientRect(),i=e.getBoundingClientRect(),s=t.height/n.offsetHeight;i.topt.bottom&&(n.scrollTop+=(i.bottom-t.bottom)/s)}function e2(n){return(n.boost||0)*100+(n.apply?10:0)+(n.info?5:0)+(n.type?1:0)}function bR(n,e){let t=[],i=null,s=null,r=p=>{t.push(p);let{section:b}=p.completion;if(b){i||(i=[]);let x=typeof b=="string"?b:b.name;i.some(w=>w.name==x)||i.push(typeof b=="string"?{name:x}:b)}},o=e.facet(Ot);for(let p of n)if(p.hasResult()){let b=p.result.getMatch;if(p.result.filter===!1)for(let x of p.result.options)r(new Zv(x,p.source,b?b(x):[],1e9-t.length));else{let x=e.sliceDoc(p.from,p.to),w,S=o.filterStrict?new fR(x):new hR(x);for(let A of p.result.options)if(w=S.match(A.label)){let C=A.displayLabel?b?b(A,w.matched):[]:w.matched,T=w.score+(A.boost||0);if(r(new Zv(A,p.source,C,T)),typeof A.section=="object"&&A.section.rank==="dynamic"){let{name:R}=A.section;s||(s=Object.create(null)),s[R]=Math.max(T,s[R]||-1e9)}}}}if(i){let p=Object.create(null),b=0,x=(w,S)=>(w.rank==="dynamic"&&S.rank==="dynamic"?s[S.name]-s[w.name]:0)||(typeof w.rank=="number"?w.rank:1e9)-(typeof S.rank=="number"?S.rank:1e9)||(w.namex.score-b.score||d(b.completion,x.completion))){let b=p.completion;!f||f.label!=b.label||f.detail!=b.detail||f.type!=null&&b.type!=null&&f.type!=b.type||f.apply!=b.apply||f.boost!=b.boost?u.push(p):e2(p.completion)>e2(f)&&(u[u.length-1]=p),f=p.completion}return u}class ga{constructor(e,t,i,s,r,o){this.options=e,this.attrs=t,this.tooltip=i,this.timestamp=s,this.selected=r,this.disabled=o}setSelected(e,t){return e==this.selected||e>=this.options.length?this:new ga(this.options,t2(t,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,t,i,s,r,o){if(s&&!o&&e.some(d=>d.isPending))return s.setDisabled();let u=bR(e,t);if(!u.length)return s&&e.some(d=>d.isPending)?s.setDisabled():null;let f=t.facet(Ot).selectOnOpen?0:-1;if(s&&s.selected!=f&&s.selected!=-1){let d=s.options[s.selected].completion;for(let p=0;pp.hasResult()?Math.min(d,p.from):d,1e8),create:CR,above:r.aboveCursor},s?s.timestamp:Date.now(),f,!1)}map(e){return new ga(this.options,this.attrs,{...this.tooltip,pos:e.mapPos(this.tooltip.pos)},this.timestamp,this.selected,this.disabled)}setDisabled(){return new ga(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}}class oh{constructor(e,t,i){this.active=e,this.id=t,this.open=i}static start(){return new oh(SR,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:t}=e,i=t.facet(Ot),r=(i.override||t.languageDataAt("autocomplete",ps(t)).map(uR)).map(f=>(this.active.find(p=>p.source==f)||new Vn(f,this.active.some(p=>p.state!=0)?1:0)).update(e,i));r.length==this.active.length&&r.every((f,d)=>f==this.active[d])&&(r=this.active);let o=this.open,u=e.effects.some(f=>f.is(Vg));o&&e.docChanged&&(o=o.map(e.changes)),e.selection||r.some(f=>f.hasResult()&&e.changes.touchesRange(f.from,f.to))||!xR(r,this.active)||u?o=ga.build(r,t,this.id,o,i,u):o&&o.disabled&&!r.some(f=>f.isPending)&&(o=null),!o&&r.every(f=>!f.isPending)&&r.some(f=>f.hasResult())&&(r=r.map(f=>f.hasResult()?new Vn(f.source,0):f));for(let f of e.effects)f.is(Fk)&&(o=o&&o.setSelected(f.value,this.id));return r==this.active&&o==this.open?this:new oh(r,this.id,o)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?vR:wR}}function xR(n,e){if(n==e)return!0;for(let t=0,i=0;;){for(;t-1&&(t["aria-activedescendant"]=n+"-"+e),t}const SR=[];function Wk(n,e){if(n.isUserEvent("input.complete")){let i=n.annotation(Yk);if(i&&e.activateOnCompletion(i))return 12}let t=n.isUserEvent("input.type");return t&&e.activateOnTyping?5:t?1:n.isUserEvent("delete.backward")?2:n.selection?8:n.docChanged?16:0}class Vn{constructor(e,t,i=!1){this.source=e,this.state=t,this.explicit=i}hasResult(){return!1}get isPending(){return this.state==1}update(e,t){let i=Wk(e,t),s=this;(i&8||i&16&&this.touches(e))&&(s=new Vn(s.source,0)),i&4&&s.state==0&&(s=new Vn(this.source,1)),s=s.updateFor(e,i);for(let r of e.effects)if(r.is(rh))s=new Vn(s.source,1,r.value);else if(r.is(vo))s=new Vn(s.source,0);else if(r.is(Vg))for(let o of r.value)o.source==s.source&&(s=o);return s}updateFor(e,t){return this.map(e.changes)}map(e){return this}touches(e){return e.changes.touchesRange(ps(e.state))}}class ka extends Vn{constructor(e,t,i,s,r,o){super(e,3,t),this.limit=i,this.result=s,this.from=r,this.to=o}hasResult(){return!0}updateFor(e,t){var i;if(!(t&3))return this.map(e.changes);let s=this.result;s.map&&!e.changes.empty&&(s=s.map(s,e.changes));let r=e.changes.mapPos(this.from),o=e.changes.mapPos(this.to,1),u=ps(e.state);if(u>o||!s||t&2&&(ps(e.startState)==this.from||ut.map(e))}}),Fk=Me.define(),on=It.define({create(){return oh.start()},update(n,e){return n.update(e)},provide:n=>[Ag.from(n,e=>e.tooltip),re.contentAttributes.from(n,e=>e.attrs)]});function Ug(n,e){const t=e.completion.apply||e.completion.label;let i=n.state.field(on).active.find(s=>s.source==e.source);return i instanceof ka?(typeof t=="string"?n.dispatch({...cR(n.state,t,i.from,i.to),annotations:Yk.of(e.completion)}):t(n,e.completion,i.from,i.to),!0):!1}const CR=gR(on,Ug);function ku(n,e="option"){return t=>{let i=t.state.field(on,!1);if(!i||!i.open||i.open.disabled||Date.now()-i.open.timestamp-1?i.open.selected+s*(n?1:-1):n?0:o-1;return u<0?u=e=="page"?0:o-1:u>=o&&(u=e=="page"?o-1:0),t.dispatch({effects:Fk.of(u)}),!0}}const AR=n=>{let e=n.state.field(on,!1);return n.state.readOnly||!e||!e.open||e.open.selected<0||e.open.disabled||Date.now()-e.open.timestampn.state.field(on,!1)?(n.dispatch({effects:rh.of(!0)}),!0):!1,MR=n=>{let e=n.state.field(on,!1);return!e||!e.active.some(t=>t.state!=0)?!1:(n.dispatch({effects:vo.of(null)}),!0)};class TR{constructor(e,t){this.active=e,this.context=t,this.time=Date.now(),this.updates=[],this.done=void 0}}const NR=50,ER=1e3,DR=ft.fromClass(class{constructor(n){this.view=n,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let e of n.state.field(on).active)e.isPending&&this.startQuery(e)}update(n){let e=n.state.field(on),t=n.state.facet(Ot);if(!n.selectionSet&&!n.docChanged&&n.startState.field(on)==e)return;let i=n.transactions.some(r=>{let o=Wk(r,t);return o&8||(r.selection||r.docChanged)&&!(o&3)});for(let r=0;rNR&&Date.now()-o.time>ER){for(let u of o.context.abortListeners)try{u()}catch(f){un(this.view.state,f)}o.context.abortListeners=null,this.running.splice(r--,1)}else o.updates.push(...n.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),n.transactions.some(r=>r.effects.some(o=>o.is(rh)))&&(this.pendingStart=!0);let s=this.pendingStart?50:t.activateOnTypingDelay;if(this.debounceUpdate=e.active.some(r=>r.isPending&&!this.running.some(o=>o.active.source==r.source))?setTimeout(()=>this.startUpdate(),s):-1,this.composing!=0)for(let r of n.transactions)r.isUserEvent("input.type")?this.composing=2:this.composing==2&&r.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:n}=this.view,e=n.field(on);for(let t of e.active)t.isPending&&!this.running.some(i=>i.active.source==t.source)&&this.startQuery(t);this.running.length&&e.open&&e.open.disabled&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(Ot).updateSyncTime))}startQuery(n){let{state:e}=this.view,t=ps(e),i=new Gk(e,t,n.explicit,this.view),s=new TR(n,i);this.running.push(s),Promise.resolve(n.source(i)).then(r=>{s.context.aborted||(s.done=r||null,this.scheduleAccept())},r=>{this.view.dispatch({effects:vo.of(null)}),un(this.view.state,r)})}scheduleAccept(){this.running.every(n=>n.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(Ot).updateSyncTime))}accept(){var n;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],t=this.view.state.facet(Ot),i=this.view.state.field(on);for(let s=0;su.source==r.active.source);if(o&&o.isPending)if(r.done==null){let u=new Vn(r.active.source,0);for(let f of r.updates)u=u.update(f,t);u.isPending||e.push(u)}else this.startQuery(o)}(e.length||i.open&&i.open.disabled)&&this.view.dispatch({effects:Vg.of(e)})}},{eventHandlers:{blur(n){let e=this.view.state.field(on,!1);if(e&&e.tooltip&&this.view.state.facet(Ot).closeOnBlur){let t=e.open&&MS(this.view,e.open.tooltip);(!t||!t.dom.contains(n.relatedTarget))&&setTimeout(()=>this.view.dispatch({effects:vo.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:rh.of(!1)}),20),this.composing=0}}}),OR=typeof navigator=="object"&&/Win/.test(navigator.platform),jR=Ss.highest(re.domEventHandlers({keydown(n,e){let t=e.state.field(on,!1);if(!t||!t.open||t.open.disabled||t.open.selected<0||n.key.length>1||n.ctrlKey&&!(OR&&n.altKey)||n.metaKey)return!1;let i=t.open.options[t.open.selected],s=t.active.find(o=>o.source==i.source),r=i.completion.commitCharacters||s.result.commitCharacters;return r&&r.indexOf(n.key)>-1&&Ug(e,i),!1}})),RR=re.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}}),wo={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},ds=Me.define({map(n,e){let t=e.mapPos(n,-1,Qt.TrackAfter);return t??void 0}}),qg=new class extends Ol{};qg.startSide=1;qg.endSide=-1;const Xk=It.define({create(){return je.empty},update(n,e){if(n=n.map(e.changes),e.selection){let t=e.state.doc.lineAt(e.selection.main.head);n=n.update({filter:i=>i>=t.from&&i<=t.to})}for(let t of e.effects)t.is(ds)&&(n=n.update({add:[qg.range(t.value,t.value+1)]}));return n}});function _R(){return[BR,Xk]}const Lm="()[]{}<>«»»«[]{}";function Qk(n){for(let e=0;e{if((LR?n.composing:n.compositionStarted)||n.state.readOnly)return!1;let s=n.state.selection.main;if(i.length>2||i.length==2&&mi(rn(i,0))==1||e!=s.from||t!=s.to)return!1;let r=VR(n.state,i);return r?(n.dispatch(r),!0):!1}),zR=({state:n,dispatch:e})=>{if(n.readOnly)return!1;let i=Zk(n,n.selection.main.head).brackets||wo.brackets,s=null,r=n.changeByRange(o=>{if(o.empty){let u=UR(n.doc,o.head);for(let f of i)if(f==u&&Oh(n.doc,o.head)==Qk(rn(f,0)))return{changes:{from:o.head-f.length,to:o.head+f.length},range:X.cursor(o.head-f.length)}}return{range:s=o}});return s||e(n.update(r,{scrollIntoView:!0,userEvent:"delete.backward"})),!s},HR=[{key:"Backspace",run:zR}];function VR(n,e){let t=Zk(n,n.selection.main.head),i=t.brackets||wo.brackets;for(let s of i){let r=Qk(rn(s,0));if(e==s)return r==s?KR(n,s,i.indexOf(s+s+s)>-1,t):qR(n,s,r,t.before||wo.before);if(e==r&&$k(n,n.selection.main.from))return PR(n,s,r)}return null}function $k(n,e){let t=!1;return n.field(Xk).between(0,n.doc.length,i=>{i==e&&(t=!0)}),t}function Oh(n,e){let t=n.sliceString(e,e+2);return t.slice(0,mi(rn(t,0)))}function UR(n,e){let t=n.sliceString(e-2,e);return mi(rn(t,0))==t.length?t:t.slice(1)}function qR(n,e,t,i){let s=null,r=n.changeByRange(o=>{if(!o.empty)return{changes:[{insert:e,from:o.from},{insert:t,from:o.to}],effects:ds.of(o.to+e.length),range:X.range(o.anchor+e.length,o.head+e.length)};let u=Oh(n.doc,o.head);return!u||/\s/.test(u)||i.indexOf(u)>-1?{changes:{insert:e+t,from:o.head},effects:ds.of(o.head+e.length),range:X.cursor(o.head+e.length)}:{range:s=o}});return s?null:n.update(r,{scrollIntoView:!0,userEvent:"input.type"})}function PR(n,e,t){let i=null,s=n.changeByRange(r=>r.empty&&Oh(n.doc,r.head)==t?{changes:{from:r.head,to:r.head+t.length,insert:t},range:X.cursor(r.head+t.length)}:i={range:r});return i?null:n.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function KR(n,e,t,i){let s=i.stringPrefixes||wo.stringPrefixes,r=null,o=n.changeByRange(u=>{if(!u.empty)return{changes:[{insert:e,from:u.from},{insert:e,from:u.to}],effects:ds.of(u.to+e.length),range:X.range(u.anchor+e.length,u.head+e.length)};let f=u.head,d=Oh(n.doc,f),p;if(d==e){if(n2(n,f))return{changes:{insert:e+e,from:f},effects:ds.of(f+e.length),range:X.cursor(f+e.length)};if($k(n,f)){let x=t&&n.sliceDoc(f,f+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:f,to:f+x.length,insert:x},range:X.cursor(f+x.length)}}}else{if(t&&n.sliceDoc(f-2*e.length,f)==e+e&&(p=i2(n,f-2*e.length,s))>-1&&n2(n,p))return{changes:{insert:e+e+e+e,from:f},effects:ds.of(f+e.length),range:X.cursor(f+e.length)};if(n.charCategorizer(f)(d)!=at.Word&&i2(n,f,s)>-1&&!GR(n,f,e,s))return{changes:{insert:e+e,from:f},effects:ds.of(f+e.length),range:X.cursor(f+e.length)}}return{range:r=u}});return r?null:n.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function n2(n,e){let t=Gt(n).resolveInner(e+1);return t.parent&&t.from==e}function GR(n,e,t,i){let s=Gt(n).resolveInner(e,-1),r=i.reduce((o,u)=>Math.max(o,u.length),0);for(let o=0;o<5;o++){let u=n.sliceDoc(s.from,Math.min(s.to,s.from+t.length+r)),f=u.indexOf(t);if(!f||f>-1&&i.indexOf(u.slice(0,f))>-1){let p=s.firstChild;for(;p&&p.from==s.from&&p.to-p.from>t.length+f;){if(n.sliceDoc(p.to-t.length,p.to)==t)return!1;p=p.firstChild}return!0}let d=s.to==e&&s.parent;if(!d)break;s=d}return!1}function i2(n,e,t){let i=n.charCategorizer(e);if(i(n.sliceDoc(e-1,e))!=at.Word)return e;for(let s of t){let r=e-s.length;if(n.sliceDoc(r,e)==s&&i(n.sliceDoc(r-1,r))!=at.Word)return r}return-1}function IR(n={}){return[jR,on,Ot.of(n),DR,YR,RR]}const Jk=[{key:"Ctrl-Space",run:_m},{mac:"Alt-`",run:_m},{mac:"Alt-i",run:_m},{key:"Escape",run:MR},{key:"ArrowDown",run:ku(!0)},{key:"ArrowUp",run:ku(!1)},{key:"PageDown",run:ku(!0,"page")},{key:"PageUp",run:ku(!1,"page")},{key:"Enter",run:AR}],YR=Ss.highest(Sh.computeN([Ot],n=>n.facet(Ot).defaultKeymap?[Jk]:[]));class l2{constructor(e,t,i){this.from=e,this.to=t,this.diagnostic=i}}class us{constructor(e,t,i){this.diagnostics=e,this.panel=t,this.selected=i}static init(e,t,i){let s=i.facet(So).markerFilter;s&&(e=s(e,i));let r=e.slice().sort((w,S)=>w.from-S.from||w.to-S.to),o=new Fi,u=[],f=0,d=i.doc.iter(),p=0,b=i.doc.length;for(let w=0;;){let S=w==r.length?null:r[w];if(!S&&!u.length)break;let A,C;if(u.length)A=f,C=u.reduce((E,q)=>Math.min(E,q.to),S&&S.from>A?S.from:1e8);else{if(A=S.from,A>b)break;C=S.to,u.push(S),w++}for(;wE.from||E.to==A))u.push(E),w++,C=Math.min(E.to,C);else{C=Math.min(E.from,C);break}}C=Math.min(C,b);let T=!1;if(u.some(E=>E.from==A&&(E.to==C||C==b))&&(T=A==C,!T&&C-A<10)){let E=A-(p+d.value.length);E>0&&(d.next(E),p=A);for(let q=A;;){if(q>=C){T=!0;break}if(!d.lineBreak&&p+d.value.length>q)break;q=p+d.value.length,p+=d.value.length,d.next()}}let R=s6(u);if(T)o.add(A,A,we.widget({widget:new t6(R),diagnostics:u.slice()}));else{let E=u.reduce((q,B)=>B.markClass?q+" "+B.markClass:q,"");o.add(A,C,we.mark({class:"cm-lintRange cm-lintRange-"+R+E,diagnostics:u.slice(),inclusiveEnd:u.some(q=>q.to>C)}))}if(f=C,f==b)break;for(let E=0;E{if(!(e&&o.diagnostics.indexOf(e)<0))if(!i)i=new l2(s,r,e||o.diagnostics[0]);else{if(o.diagnostics.indexOf(i.diagnostic)<0)return!1;i=new l2(i.from,r,i.diagnostic)}}),i}function WR(n,e){let t=e.pos,i=e.end||t,s=n.state.facet(So).hideOn(n,t,i);if(s!=null)return s;let r=n.startState.doc.lineAt(e.pos);return!!(n.effects.some(o=>o.is(eC))||n.changes.touchesRange(r.from,Math.max(r.to,i)))}function FR(n,e){return n.field(Cn,!1)?e:e.concat(Me.appendConfig.of(a6))}const eC=Me.define(),Pg=Me.define(),tC=Me.define(),Cn=It.define({create(){return new us(we.none,null,null)},update(n,e){if(e.docChanged&&n.diagnostics.size){let t=n.diagnostics.map(e.changes),i=null,s=n.panel;if(n.selected){let r=e.changes.mapPos(n.selected.from,1);i=Bl(t,n.selected.diagnostic,r)||Bl(t,null,r)}!t.size&&s&&e.state.facet(So).autoPanel&&(s=null),n=new us(t,s,i)}for(let t of e.effects)if(t.is(eC)){let i=e.state.facet(So).autoPanel?t.value.length?ko.open:null:n.panel;n=us.init(t.value,i,e.state)}else t.is(Pg)?n=new us(n.diagnostics,t.value?ko.open:null,n.selected):t.is(tC)&&(n=new us(n.diagnostics,n.panel,t.value));return n},provide:n=>[po.from(n,e=>e.panel),re.decorations.from(n,e=>e.diagnostics)]}),XR=we.mark({class:"cm-lintRange cm-lintRange-active"});function QR(n,e,t){let{diagnostics:i}=n.state.field(Cn),s,r=-1,o=-1;i.between(e-(t<0?1:0),e+(t>0?1:0),(f,d,{spec:p})=>{if(e>=f&&e<=d&&(f==d||(e>f||t>0)&&(eiC(n,t,!1)))}const $R=n=>{let e=n.state.field(Cn,!1);(!e||!e.panel)&&n.dispatch({effects:FR(n.state,[Pg.of(!0)])});let t=Mg(n,ko.open);return t&&t.dom.querySelector(".cm-panel-lint ul").focus(),!0},s2=n=>{let e=n.state.field(Cn,!1);return!e||!e.panel?!1:(n.dispatch({effects:Pg.of(!1)}),!0)},JR=n=>{let e=n.state.field(Cn,!1);if(!e)return!1;let t=n.state.selection.main,i=Bl(e.diagnostics,null,t.to+1);return!i&&(i=Bl(e.diagnostics,null,0),!i||i.from==t.from&&i.to==t.to)?!1:(n.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0}),!0)},e6=[{key:"Mod-Shift-m",run:$R,preventDefault:!0},{key:"F8",run:JR}],So=ce.define({combine(n){return{sources:n.map(e=>e.source).filter(e=>e!=null),...Si(n.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:a2,tooltipFilter:a2,needsRefresh:(e,t)=>e?t?i=>e(i)||t(i):e:t,hideOn:(e,t)=>e?t?(i,s,r)=>e(i,s,r)||t(i,s,r):e:t,autoPanel:(e,t)=>e||t})}}});function a2(n,e){return n?e?(t,i)=>e(n(t,i),i):n:e}function nC(n){let e=[];if(n)e:for(let{name:t}of n){for(let i=0;ir.toLowerCase()==s.toLowerCase())){e.push(s);continue e}}e.push("")}return e}function iC(n,e,t){var i;let s=t?nC(e.actions):[];return Qe("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},Qe("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage(n):e.message),(i=e.actions)===null||i===void 0?void 0:i.map((r,o)=>{let u=!1,f=w=>{if(w.preventDefault(),u)return;u=!0;let S=Bl(n.state.field(Cn).diagnostics,e);S&&r.apply(n,S.from,S.to)},{name:d}=r,p=s[o]?d.indexOf(s[o]):-1,b=p<0?d:[d.slice(0,p),Qe("u",d.slice(p,p+1)),d.slice(p+1)],x=r.markClass?" "+r.markClass:"";return Qe("button",{type:"button",class:"cm-diagnosticAction"+x,onclick:f,onmousedown:f,"aria-label":` Action: ${d}${p<0?"":` (access key "${s[o]})"`}.`},b)}),e.source&&Qe("div",{class:"cm-diagnosticSource"},e.source))}class t6 extends ki{constructor(e){super(),this.sev=e}eq(e){return e.sev==this.sev}toDOM(){return Qe("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}}class r2{constructor(e,t){this.diagnostic=t,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=iC(e,t,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class ko{constructor(e){this.view=e,this.items=[];let t=s=>{if(!(s.ctrlKey||s.altKey||s.metaKey)){if(s.keyCode==27)s2(this.view),this.view.focus();else if(s.keyCode==38||s.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(s.keyCode==40||s.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(s.keyCode==36)this.moveSelection(0);else if(s.keyCode==35)this.moveSelection(this.items.length-1);else if(s.keyCode==13)this.view.focus();else if(s.keyCode>=65&&s.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:r}=this.items[this.selectedIndex],o=nC(r.actions);for(let u=0;u{for(let r=0;rs2(this.view)},"×")),this.update()}get selectedIndex(){let e=this.view.state.field(Cn).selected;if(!e)return-1;for(let t=0;t{for(let p of d.diagnostics){if(o.has(p))continue;o.add(p);let b=-1,x;for(let w=i;wi&&(this.items.splice(i,b-i),s=!0)),t&&x.diagnostic==t.diagnostic?x.dom.hasAttribute("aria-selected")||(x.dom.setAttribute("aria-selected","true"),r=x):x.dom.hasAttribute("aria-selected")&&x.dom.removeAttribute("aria-selected"),i++}});i({sel:r.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:u,panel:f})=>{let d=f.height/this.list.offsetHeight;u.topf.bottom&&(this.list.scrollTop+=(u.bottom-f.bottom)/d)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),s&&this.sync()}sync(){let e=this.list.firstChild;function t(){let i=e;e=i.nextSibling,i.remove()}for(let i of this.items)if(i.dom.parentNode==this.list){for(;e!=i.dom;)t();e=i.dom.nextSibling}else this.list.insertBefore(i.dom,e);for(;e;)t()}moveSelection(e){if(this.selectedIndex<0)return;let t=this.view.state.field(Cn),i=Bl(t.diagnostics,this.items[e].diagnostic);i&&this.view.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0,effects:tC.of(i)})}static open(e){return new ko(e)}}function n6(n,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,${encodeURIComponent(n)}')`}function Cu(n){return n6(``,'width="6" height="3"')}const i6=re.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:Cu("#d11")},".cm-lintRange-warning":{backgroundImage:Cu("orange")},".cm-lintRange-info":{backgroundImage:Cu("#999")},".cm-lintRange-hint":{backgroundImage:Cu("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}});function l6(n){return n=="error"?4:n=="warning"?3:n=="info"?2:1}function s6(n){let e="hint",t=1;for(let i of n){let s=l6(i.severity);s>t&&(t=s,e=i.severity)}return e}const a6=[Cn,re.decorations.compute([Cn],n=>{let{selected:e,panel:t}=n.field(Cn);return!e||!t||e.from==e.to?we.none:we.set([XR.range(e.from,e.to)])}),UD(QR,{hideOn:WR}),i6];var o2=function(e){e===void 0&&(e={});var{crosshairCursor:t=!1}=e,i=[];e.closeBracketsKeymap!==!1&&(i=i.concat(HR)),e.defaultKeymap!==!1&&(i=i.concat(Dj)),e.searchKeymap!==!1&&(i=i.concat(iR)),e.historyKeymap!==!1&&(i=i.concat(z8)),e.foldKeymap!==!1&&(i=i.concat(LO)),e.completionKeymap!==!1&&(i=i.concat(Jk)),e.lintKeymap!==!1&&(i=i.concat(e6));var s=[];return e.lineNumbers!==!1&&s.push(JD()),e.highlightActiveLineGutter!==!1&&s.push(nO()),e.highlightSpecialChars!==!1&&s.push(pD()),e.history!==!1&&s.push(N8()),e.foldGutter!==!1&&s.push(VO()),e.drawSelection!==!1&&s.push(lD()),e.dropCursor!==!1&&s.push(cD()),e.allowMultipleSelections!==!1&&s.push(ze.allowMultipleSelections.of(!0)),e.indentOnInput!==!1&&s.push(AO()),e.syntaxHighlighting!==!1&&s.push(IS(KO,{fallback:!0})),e.bracketMatching!==!1&&s.push(QO()),e.closeBrackets!==!1&&s.push(_R()),e.autocompletion!==!1&&s.push(IR()),e.rectangularSelection!==!1&&s.push(ED()),t!==!1&&s.push(jD()),e.highlightActiveLine!==!1&&s.push(wD()),e.highlightSelectionMatches!==!1&&s.push(Bj()),e.tabSize&&typeof e.tabSize=="number"&&s.push(Ch.of(" ".repeat(e.tabSize))),s.concat([Sh.of(i.flat())]).filter(Boolean)},r6=re.theme({"&":{backgroundColor:"#fff"}},{dark:!1}),o6=function(e){e===void 0&&(e={});var{indentWithTab:t=!0,editable:i=!0,readOnly:s=!1,theme:r="light",placeholder:o="",basicSetup:u=!0}=e,f=[];switch(t&&f.unshift(Sh.of([Oj])),u&&(typeof u=="boolean"?f.unshift(o2()):f.unshift(o2(u))),o&&f.unshift(AD(o)),r){case"light":f.push(r6);break;case"dark":f.push(tk);break;case"none":break;default:f.push(r);break}return i===!1&&f.push(re.editable.of(!1)),s&&f.push(ze.readOnly.of(!0)),[...f]},c6=n=>({line:n.state.doc.lineAt(n.state.selection.main.from),lineCount:n.state.doc.lines,lineBreak:n.state.lineBreak,length:n.state.doc.length,readOnly:n.state.readOnly,tabSize:n.state.tabSize,selection:n.state.selection,selectionAsSingle:n.state.selection.asSingle().main,ranges:n.state.selection.ranges,selectionCode:n.state.sliceDoc(n.state.selection.main.from,n.state.selection.main.to),selections:n.state.selection.ranges.map(e=>n.state.sliceDoc(e.from,e.to)),selectedText:n.state.selection.ranges.some(e=>!e.empty)});class u6{constructor(e,t){this.timeLeftMS=void 0,this.timeoutMS=void 0,this.isCancelled=!1,this.isTimeExhausted=!1,this.callbacks=[],this.timeLeftMS=t,this.timeoutMS=t,this.callbacks.push(e)}tick(){if(!this.isCancelled&&!this.isTimeExhausted&&(this.timeLeftMS--,this.timeLeftMS<=0)){this.isTimeExhausted=!0;var e=this.callbacks.slice();this.callbacks.length=0,e.forEach(t=>{try{t()}catch(i){console.error("TimeoutLatch callback error:",i)}})}}cancel(){this.isCancelled=!0,this.callbacks.length=0}reset(){this.timeLeftMS=this.timeoutMS,this.isCancelled=!1,this.isTimeExhausted=!1}get isDone(){return this.isCancelled||this.isTimeExhausted}}class c2{constructor(){this.interval=null,this.latches=new Set}add(e){this.latches.add(e),this.start()}remove(e){this.latches.delete(e),this.latches.size===0&&this.stop()}start(){this.interval===null&&(this.interval=setInterval(()=>{this.latches.forEach(e=>{e.tick(),e.isDone&&this.remove(e)})},1))}stop(){this.interval!==null&&(clearInterval(this.interval),this.interval=null)}}var Bm=null,h6=()=>typeof window>"u"?new c2:(Bm||(Bm=new c2),Bm),u2=wi.define(),f6=200,d6=[];function m6(n){var{value:e,selection:t,onChange:i,onStatistics:s,onCreateEditor:r,onUpdate:o,extensions:u=d6,autoFocus:f,theme:d="light",height:p=null,minHeight:b=null,maxHeight:x=null,width:w=null,minWidth:S=null,maxWidth:A=null,placeholder:C="",editable:T=!0,readOnly:R=!1,indentWithTab:E=!0,basicSetup:q=!0,root:B,initialState:I}=n,[V,Q]=M.useState(),[Z,ue]=M.useState(),[fe,ne]=M.useState(),pe=M.useState(()=>({current:null}))[0],J=M.useState(()=>({current:null}))[0],ve=re.theme({"&":{height:p,minHeight:b,maxHeight:x,width:w,minWidth:S,maxWidth:A},"& .cm-scroller":{height:"100% !important"}}),z=re.updateListener.of(le=>{if(le.docChanged&&typeof i=="function"&&!le.transactions.some(P=>P.annotation(u2))){pe.current?pe.current.reset():(pe.current=new u6(()=>{if(J.current){var P=J.current;J.current=null,P()}pe.current=null},f6),h6().add(pe.current));var ge=le.state.doc,D=ge.toString();i(D,le)}s&&s(c6(le))}),K=o6({theme:d,editable:T,readOnly:R,placeholder:C,indentWithTab:E,basicSetup:q}),$=[z,ve,...K];return o&&typeof o=="function"&&$.push(re.updateListener.of(o)),$=$.concat(u),M.useLayoutEffect(()=>{if(V&&!fe){var le={doc:e,selection:t,extensions:$},ge=I?ze.fromJSON(I.json,le,I.fields):ze.create(le);if(ne(ge),!Z){var D=new re({state:ge,parent:V,root:B});ue(D),r&&r(D,ge)}}return()=>{Z&&(ne(void 0),ue(void 0))}},[V,fe]),M.useEffect(()=>{n.container&&Q(n.container)},[n.container]),M.useEffect(()=>()=>{Z&&(Z.destroy(),ue(void 0)),pe.current&&(pe.current.cancel(),pe.current=null)},[Z]),M.useEffect(()=>{f&&Z&&Z.focus()},[f,Z]),M.useEffect(()=>{Z&&Z.dispatch({effects:Me.reconfigure.of($)})},[d,u,p,b,x,w,S,A,C,T,R,E,q,i,o]),M.useEffect(()=>{if(e!==void 0){var le=Z?Z.state.doc.toString():"";if(Z&&e!==le){var ge=pe.current&&!pe.current.isDone,D=()=>{Z&&e!==Z.state.doc.toString()&&Z.dispatch({changes:{from:0,to:Z.state.doc.toString().length,insert:e||""},annotations:[u2.of(!0)]})};ge?J.current=D:D()}}},[e,Z]),{state:fe,setState:ne,view:Z,setView:ue,container:V,setContainer:Q}}var p6=["className","value","selection","extensions","onChange","onStatistics","onCreateEditor","onUpdate","autoFocus","theme","height","minHeight","maxHeight","width","minWidth","maxWidth","basicSetup","placeholder","indentWithTab","editable","readOnly","root","initialState"],lC=M.forwardRef((n,e)=>{var{className:t,value:i="",selection:s,extensions:r=[],onChange:o,onStatistics:u,onCreateEditor:f,onUpdate:d,autoFocus:p,theme:b="light",height:x,minHeight:w,maxHeight:S,width:A,minWidth:C,maxWidth:T,basicSetup:R,placeholder:E,indentWithTab:q,editable:B,readOnly:I,root:V,initialState:Q}=n,Z=b8(n,p6),ue=M.useRef(null),{state:fe,view:ne,container:pe,setContainer:J}=m6({root:V,value:i,autoFocus:p,theme:b,height:x,minHeight:w,maxHeight:S,width:A,minWidth:C,maxWidth:T,basicSetup:R,placeholder:E,indentWithTab:q,editable:B,readOnly:I,selection:s,onChange:o,onStatistics:u,onCreateEditor:f,onUpdate:d,extensions:r,initialState:Q});M.useImperativeHandle(e,()=>({editor:ue.current,state:fe,view:ne}),[ue,pe,fe,ne]);var ve=M.useCallback(K=>{ue.current=K,J(K)},[J]);if(typeof i!="string")throw new Error("value must be typeof string but got "+typeof i);var z=typeof b=="string"?"cm-theme-"+b:"cm-theme";return y.jsx("div",Rp({ref:ve,className:""+z+(t?" "+t:"")},Z))});lC.displayName="CodeMirror";const g6=Eg.define(y8);function y6({rawToml:n,onChange:e,disabled:t}){return y.jsxs("div",{className:"bg-gray-900 rounded-xl border border-gray-800 overflow-hidden",children:[y.jsxs("div",{className:"flex items-center justify-between px-4 py-2 border-b border-gray-800 bg-gray-800/50",children:[y.jsx("span",{className:"text-xs text-gray-400 font-medium uppercase tracking-wider",children:"TOML Configuration"}),y.jsxs("span",{className:"text-xs text-gray-500",children:[n.split(` -`).length," lines"]})]}),y.jsx(lC,{value:n,onChange:e,theme:tk,readOnly:!!t,editable:!t,height:"500px",basicSetup:{lineNumbers:!0,foldGutter:!1,highlightActiveLineGutter:!1,highlightActiveLine:!1},extensions:[g6,re.lineWrapping],className:"text-sm [&_.cm-scroller]:font-mono [&_.cm-scroller]:leading-6 [&_.cm-content]:py-4 [&_.cm-content]:px-0 [&_.cm-gutters]:border-r [&_.cm-gutters]:border-gray-800 [&_.cm-gutters]:bg-gray-950 [&_.cm-editor]:bg-gray-950 [&_.cm-editor]:focus:outline-none [&_.cm-focused]:ring-2 [&_.cm-focused]:ring-blue-500/70 [&_.cm-focused]:ring-inset","aria-label":"Raw TOML configuration editor with syntax highlighting"})]})}function h2({mode:n,active:e,icon:t,label:i,onClick:s}){return y.jsxs("button",{onClick:s,className:`flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-sm font-medium transition-colors ${e?"bg-blue-600 text-white":"text-gray-400 hover:text-gray-200 hover:bg-gray-800"}`,"aria-pressed":e,"data-mode":n,children:[y.jsx(t,{className:"h-3.5 w-3.5"}),i]})}function b6(){const{loading:n,saving:e,error:t,success:i,mode:s,rawToml:r,setMode:o,getFieldValue:u,setFieldValue:f,isFieldMasked:d,setRawToml:p,save:b}=NN();return n?y.jsx("div",{className:"flex items-center justify-center h-64",children:y.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-2 border-blue-500 border-t-transparent"})}):y.jsxs("div",{className:"p-6 space-y-6",children:[y.jsxs("div",{className:"flex items-center justify-between",children:[y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx(Zp,{className:"h-5 w-5 text-blue-400"}),y.jsx("h2",{className:"text-base font-semibold text-white",children:"Configuration"})]}),y.jsxs("div",{className:"flex items-center gap-3",children:[y.jsxs("div",{className:"flex items-center gap-1 bg-gray-900 border border-gray-800 rounded-lg p-0.5",children:[y.jsx(h2,{mode:"form",active:s==="form",icon:Z3,label:"Form",onClick:()=>o("form")}),y.jsx(h2,{mode:"raw",active:s==="raw",icon:H2,label:"Raw",onClick:()=>o("raw")})]}),y.jsxs("button",{onClick:b,disabled:e,className:"flex items-center gap-2 bg-blue-600 hover:bg-blue-700 text-white text-sm font-medium px-4 py-2 rounded-lg transition-colors disabled:opacity-50",children:[y.jsx(W3,{className:"h-4 w-4"}),e?"Saving...":"Save"]})]})]}),y.jsxs("div",{className:"flex items-start gap-3 bg-yellow-900/20 border border-yellow-700/40 rounded-lg p-4",children:[y.jsx(X3,{className:"h-5 w-5 text-yellow-400 flex-shrink-0 mt-0.5"}),y.jsxs("div",{children:[y.jsx("p",{className:"text-sm text-yellow-300 font-medium",children:"Sensitive fields are masked"}),y.jsx("p",{className:"text-sm text-yellow-400/70 mt-0.5",children:s==="form"?'Masked fields show "Configured (masked)" as a placeholder. Leave them untouched to preserve existing values, or enter a new value to update.':"API keys, tokens, and passwords are hidden for security. To update a masked field, replace the entire masked value with your new value."})]})]}),i&&y.jsxs("div",{className:"flex items-center gap-2 bg-green-900/30 border border-green-700 rounded-lg p-3",children:[y.jsx(fh,{className:"h-4 w-4 text-green-400 flex-shrink-0"}),y.jsx("span",{className:"text-sm text-green-300",children:i})]}),t&&y.jsxs("div",{className:"flex items-center gap-2 bg-red-900/30 border border-red-700 rounded-lg p-3",children:[y.jsx(Jp,{className:"h-4 w-4 text-red-400 flex-shrink-0"}),y.jsx("span",{className:"text-sm text-red-300",children:t})]}),s==="form"?y.jsx(BN,{getFieldValue:u,setFieldValue:f,isFieldMasked:d}):y.jsx(y6,{rawToml:r,onChange:p,disabled:e})]})}function Pr(n){return`$${n.toFixed(4)}`}function x6(){const[n,e]=M.useState(null),[t,i]=M.useState(!0),[s,r]=M.useState(null);if(M.useEffect(()=>{J2().then(e).catch(u=>r(u.message)).finally(()=>i(!1))},[]),s)return y.jsx("div",{className:"p-6",children:y.jsxs("div",{className:"rounded-lg bg-red-900/30 border border-red-700 p-4 text-red-300",children:["Failed to load cost data: ",s]})});if(t||!n)return y.jsx("div",{className:"flex items-center justify-center h-64",children:y.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-2 border-blue-500 border-t-transparent"})});const o=Object.values(n.by_model);return y.jsxs("div",{className:"p-6 space-y-6",children:[y.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4",children:[y.jsxs("div",{className:"bg-gray-900 rounded-xl p-5 border border-gray-800",children:[y.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[y.jsx("div",{className:"p-2 bg-blue-600/20 rounded-lg",children:y.jsx(dh,{className:"h-5 w-5 text-blue-400"})}),y.jsx("span",{className:"text-sm text-gray-400",children:"Session Cost"})]}),y.jsx("p",{className:"text-2xl font-bold text-white",children:Pr(n.session_cost_usd)})]}),y.jsxs("div",{className:"bg-gray-900 rounded-xl p-5 border border-gray-800",children:[y.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[y.jsx("div",{className:"p-2 bg-green-600/20 rounded-lg",children:y.jsx(tT,{className:"h-5 w-5 text-green-400"})}),y.jsx("span",{className:"text-sm text-gray-400",children:"Daily Cost"})]}),y.jsx("p",{className:"text-2xl font-bold text-white",children:Pr(n.daily_cost_usd)})]}),y.jsxs("div",{className:"bg-gray-900 rounded-xl p-5 border border-gray-800",children:[y.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[y.jsx("div",{className:"p-2 bg-purple-600/20 rounded-lg",children:y.jsx(j3,{className:"h-5 w-5 text-purple-400"})}),y.jsx("span",{className:"text-sm text-gray-400",children:"Monthly Cost"})]}),y.jsx("p",{className:"text-2xl font-bold text-white",children:Pr(n.monthly_cost_usd)})]}),y.jsxs("div",{className:"bg-gray-900 rounded-xl p-5 border border-gray-800",children:[y.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[y.jsx("div",{className:"p-2 bg-orange-600/20 rounded-lg",children:y.jsx(qm,{className:"h-5 w-5 text-orange-400"})}),y.jsx("span",{className:"text-sm text-gray-400",children:"Total Requests"})]}),y.jsx("p",{className:"text-2xl font-bold text-white",children:n.request_count.toLocaleString()})]})]}),y.jsxs("div",{className:"bg-gray-900 rounded-xl border border-gray-800 p-5",children:[y.jsx("h3",{className:"text-base font-semibold text-white mb-4",children:"Token Statistics"}),y.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[y.jsxs("div",{className:"bg-gray-800/50 rounded-lg p-4",children:[y.jsx("p",{className:"text-sm text-gray-400",children:"Total Tokens"}),y.jsx("p",{className:"text-xl font-bold text-white mt-1",children:n.total_tokens.toLocaleString()})]}),y.jsxs("div",{className:"bg-gray-800/50 rounded-lg p-4",children:[y.jsx("p",{className:"text-sm text-gray-400",children:"Avg Tokens / Request"}),y.jsx("p",{className:"text-xl font-bold text-white mt-1",children:n.request_count>0?Math.round(n.total_tokens/n.request_count).toLocaleString():"0"})]}),y.jsxs("div",{className:"bg-gray-800/50 rounded-lg p-4",children:[y.jsx("p",{className:"text-sm text-gray-400",children:"Cost per 1K Tokens"}),y.jsx("p",{className:"text-xl font-bold text-white mt-1",children:n.total_tokens>0?Pr(n.monthly_cost_usd/n.total_tokens*1e3):"$0.0000"})]})]})]}),y.jsxs("div",{className:"bg-gray-900 rounded-xl border border-gray-800 overflow-hidden",children:[y.jsx("div",{className:"px-5 py-4 border-b border-gray-800",children:y.jsx("h3",{className:"text-base font-semibold text-white",children:"Model Breakdown"})}),o.length===0?y.jsx("div",{className:"p-8 text-center text-gray-500",children:"No model data available."}):y.jsx("div",{className:"overflow-x-auto",children:y.jsxs("table",{className:"w-full text-sm",children:[y.jsx("thead",{children:y.jsxs("tr",{className:"border-b border-gray-800",children:[y.jsx("th",{className:"text-left px-5 py-3 text-gray-400 font-medium",children:"Model"}),y.jsx("th",{className:"text-right px-5 py-3 text-gray-400 font-medium",children:"Cost"}),y.jsx("th",{className:"text-right px-5 py-3 text-gray-400 font-medium",children:"Tokens"}),y.jsx("th",{className:"text-right px-5 py-3 text-gray-400 font-medium",children:"Requests"}),y.jsx("th",{className:"text-left px-5 py-3 text-gray-400 font-medium",children:"Share"})]})}),y.jsx("tbody",{children:o.sort((u,f)=>f.cost_usd-u.cost_usd).map(u=>{const f=n.monthly_cost_usd>0?u.cost_usd/n.monthly_cost_usd*100:0;return y.jsxs("tr",{className:"border-b border-gray-800/50 hover:bg-gray-800/30 transition-colors",children:[y.jsx("td",{className:"px-5 py-3 text-white font-medium",children:u.model}),y.jsx("td",{className:"px-5 py-3 text-gray-300 text-right font-mono",children:Pr(u.cost_usd)}),y.jsx("td",{className:"px-5 py-3 text-gray-300 text-right",children:u.total_tokens.toLocaleString()}),y.jsx("td",{className:"px-5 py-3 text-gray-300 text-right",children:u.request_count.toLocaleString()}),y.jsx("td",{className:"px-5 py-3",children:y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx("div",{className:"w-20 h-2 bg-gray-800 rounded-full overflow-hidden",children:y.jsx("div",{className:"h-full bg-blue-500 rounded-full",style:{width:`${Math.max(f,2)}%`}})}),y.jsxs("span",{className:"text-xs text-gray-400 w-10 text-right",children:[f.toFixed(1),"%"]})]})})]},u.model)})})]})})]})]})}const v6=1e3,w6=3e4;class S6{constructor(e={}){Xe(this,"controller",null);Xe(this,"reconnectTimer",null);Xe(this,"currentDelay");Xe(this,"intentionallyClosed",!1);Xe(this,"onEvent",null);Xe(this,"onError",null);Xe(this,"onConnect",null);Xe(this,"path");Xe(this,"reconnectDelay");Xe(this,"maxReconnectDelay");Xe(this,"autoReconnect");this.path=e.path??"/api/events",this.reconnectDelay=e.reconnectDelay??v6,this.maxReconnectDelay=e.maxReconnectDelay??w6,this.autoReconnect=e.autoReconnect??!0,this.currentDelay=this.reconnectDelay}connect(){this.intentionallyClosed=!1,this.clearReconnectTimer(),this.controller=new AbortController;const e=Ca(),t={Accept:"text/event-stream"};e&&(t.Authorization=`Bearer ${e}`),fetch(this.path,{headers:t,signal:this.controller.signal}).then(i=>{var s;if(!i.ok)throw new Error(`SSE connection failed: ${i.status}`);if(!i.body)throw new Error("SSE response has no body");return this.currentDelay=this.reconnectDelay,(s=this.onConnect)==null||s.call(this),this.consumeStream(i.body)}).catch(i=>{var s;i instanceof DOMException&&i.name==="AbortError"||((s=this.onError)==null||s.call(this,i instanceof Error?i:new Error(String(i))),this.scheduleReconnect())})}disconnect(){this.intentionallyClosed=!0,this.clearReconnectTimer(),this.controller&&(this.controller.abort(),this.controller=null)}async consumeStream(e){var r;const t=e.getReader(),i=new TextDecoder;let s="";try{for(;;){const{done:o,value:u}=await t.read();if(o)break;s+=i.decode(u,{stream:!0});const f=s.split(` +`);i>-1&&(t=t.slice(0,i))}return e+t.length<=this.to?t:t.slice(0,this.to-e)}nextLine(){let e=this.parsedPos,t=this.lineAfter(e),i=e+t.length;for(let s=this.rangeIndex;;){let r=this.ranges[s].to;if(r>=i||(t=t.slice(0,r-(i-t.length)),s++,s==this.ranges.length))break;let o=this.ranges[s].from,u=this.lineAfter(o);t+=u,i=o+u.length}return{line:t,end:i}}skipGapsTo(e,t,i){for(;;){let s=this.ranges[this.rangeIndex].to,r=e+t;if(i>0?s>r:s>=r)break;let o=this.ranges[++this.rangeIndex].from;t+=o-s}return t}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to1){s=this.skipGapsTo(t,s,1),t+=s;let u=this.chunk.length;s=this.skipGapsTo(i,s,-1),i+=s,r+=this.chunk.length-u}let o=this.chunk.length-4;return this.lang.streamParser.mergeTokens&&r==4&&o>=0&&this.chunk[o]==e&&this.chunk[o+2]==t?this.chunk[o+2]=i:this.chunk.push(e,t,i,r),s}parseLine(e){let{line:t,end:i}=this.nextLine(),s=0,{streamParser:r}=this.lang,o=new XS(t,e?e.state.tabSize:4,e?xs(e.state):2);if(o.eol())r.blankLine(this.state,o.indentUnit);else for(;!o.eol();){let u=ZS(r.token,o,this.state);if(u&&(s=this.emitToken(this.lang.tokenTable.resolve(u),this.parsedPos+o.start,this.parsedPos+o.pos,s)),o.start>1e4)break}this.parsedPos=i,this.moveRangeIndex(),this.parsedPose.start)return s}throw new Error("Stream parser failed to advance stream.")}const Og=Object.create(null),bo=[fn.none],n8=new lg(bo),jv=[],Rv=Object.create(null),$S=Object.create(null);for(let[n,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])$S[n]=ek(Og,e);class JS{constructor(e){this.extra=e,this.table=Object.assign(Object.create(null),$S)}resolve(e){return e?this.table[e]||(this.table[e]=ek(this.extra,e)):0}}const i8=new JS(Og);function Nm(n,e){jv.indexOf(n)>-1||(jv.push(n),console.warn(e))}function ek(n,e){let t=[];for(let u of e.split(" ")){let f=[];for(let d of u.split(".")){let p=n[d]||Y[d];p?typeof p=="function"?f.length?f=f.map(p):Nm(d,`Modifier ${d} used at start of tag`):f.length?Nm(d,`Tag ${d} used as modifier`):f=Array.isArray(p)?p:[p]:Nm(d,`Unknown highlighting tag ${d}`)}for(let d of f)t.push(d)}if(!t.length)return 0;let i=e.replace(/ /g,"_"),s=i+" "+t.map(u=>u.id),r=Rv[s];if(r)return r.id;let o=Rv[s]=fn.define({id:bo.length,name:i,props:[sO({[i]:t})]});return bo.push(o),o.id}function l8(n,e){let t=fn.define({id:bo.length,name:"Document",props:[pa.add(()=>n),LS.add(()=>i=>e.getIndent(i))],top:!0});return bo.push(t),t}Je.RTL,Je.LTR;const s8="#e5c07b",_v="#e06c75",a8="#56b6c2",r8="#ffffff",Bu="#abb2bf",jp="#7d8799",o8="#61afef",c8="#98c379",Lv="#d19a66",u8="#c678dd",h8="#21252b",Bv="#2c313a",zv="#282c34",Em="#353a42",f8="#3E4451",Hv="#528bff",d8=re.theme({"&":{color:Bu,backgroundColor:zv},".cm-content":{caretColor:Hv},".cm-cursor, .cm-dropCursor":{borderLeftColor:Hv},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:f8},".cm-panels":{backgroundColor:h8,color:Bu},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:"#6699ff0b"},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847"},".cm-gutters":{backgroundColor:zv,color:jp,border:"none"},".cm-activeLineGutter":{backgroundColor:Bv},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:Em},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:Em,borderBottomColor:Em},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:Bv,color:Bu}}},{dark:!0}),m8=Ro.define([{tag:Y.keyword,color:u8},{tag:[Y.name,Y.deleted,Y.character,Y.propertyName,Y.macroName],color:_v},{tag:[Y.function(Y.variableName),Y.labelName],color:o8},{tag:[Y.color,Y.constant(Y.name),Y.standard(Y.name)],color:Lv},{tag:[Y.definition(Y.name),Y.separator],color:Bu},{tag:[Y.typeName,Y.className,Y.number,Y.changed,Y.annotation,Y.modifier,Y.self,Y.namespace],color:s8},{tag:[Y.operator,Y.operatorKeyword,Y.url,Y.escape,Y.regexp,Y.link,Y.special(Y.string)],color:a8},{tag:[Y.meta,Y.comment],color:jp},{tag:Y.strong,fontWeight:"bold"},{tag:Y.emphasis,fontStyle:"italic"},{tag:Y.strikethrough,textDecoration:"line-through"},{tag:Y.link,color:jp,textDecoration:"underline"},{tag:Y.heading,fontWeight:"bold",color:_v},{tag:[Y.atom,Y.bool,Y.special(Y.variableName)],color:Lv},{tag:[Y.processingInstruction,Y.string,Y.inserted],color:c8},{tag:Y.invalid,color:r8}]),tk=[d8,IS(m8)],p8={name:"toml",startState:function(){return{inString:!1,stringType:"",lhs:!0,inArray:0}},token:function(n,e){let t;if(!e.inString&&(t=n.match(/^('''|"""|'|")/))&&(e.stringType=t[0],e.inString=!0),n.sol()&&!e.inString&&e.inArray===0&&(e.lhs=!0),e.inString){for(;e.inString;)if(n.match(e.stringType))e.inString=!1;else if(n.peek()==="\\")n.next(),n.next();else{if(n.eol())break;n.match(/^.[^\\\"\']*/)}return e.lhs?"property":"string"}else{if(e.inArray&&n.peek()==="]")return n.next(),e.inArray--,"bracket";if(e.lhs&&n.peek()==="["&&n.skipTo("]"))return n.next(),n.peek()==="]"&&n.next(),"atom";if(n.peek()==="#")return n.skipToEnd(),"comment";if(n.eatSpace())return null;if(e.lhs&&n.eatWhile(function(i){return i!="="&&i!=" "}))return"property";if(e.lhs&&n.peek()==="=")return n.next(),e.lhs=!1,null;if(!e.lhs&&n.match(/^\d\d\d\d[\d\-\:\.T]*Z/))return"atom";if(!e.lhs&&(n.match("true")||n.match("false")))return"atom";if(!e.lhs&&n.peek()==="[")return e.inArray++,n.next(),"bracket";if(!e.lhs&&n.match(/^\-?\d+(?:\.\d+)?/))return"number";n.eatSpace()||n.next()}return null},languageData:{commentTokens:{line:"#"}}};function Rp(){return Rp=Object.assign?Object.assign.bind():function(n){for(var e=1;e{let{state:e}=n,t=e.doc.lineAt(e.selection.main.from),i=Rg(n.state,t.from);return i.line?b8(n):i.block?v8(n):!1};function jg(n,e){return({state:t,dispatch:i})=>{if(t.readOnly)return!1;let s=n(e,t);return s?(i(t.update(s)),!0):!1}}const b8=jg(k8,0),x8=jg(nk,0),v8=jg((n,e)=>nk(n,e,S8(e)),0);function Rg(n,e){let t=n.languageDataAt("commentTokens",e,1);return t.length?t[0]:{}}const qr=50;function w8(n,{open:e,close:t},i,s){let r=n.sliceDoc(i-qr,i),o=n.sliceDoc(s,s+qr),u=/\s*$/.exec(r)[0].length,f=/^\s*/.exec(o)[0].length,d=r.length-u;if(r.slice(d-e.length,d)==e&&o.slice(f,f+t.length)==t)return{open:{pos:i-u,margin:u&&1},close:{pos:s+f,margin:f&&1}};let p,b;s-i<=2*qr?p=b=n.sliceDoc(i,s):(p=n.sliceDoc(i,i+qr),b=n.sliceDoc(s-qr,s));let x=/^\s*/.exec(p)[0].length,w=/\s*$/.exec(b)[0].length,S=b.length-w-t.length;return p.slice(x,x+e.length)==e&&b.slice(S,S+t.length)==t?{open:{pos:i+x+e.length,margin:/\s/.test(p.charAt(x+e.length))?1:0},close:{pos:s-w-t.length,margin:/\s/.test(b.charAt(S-1))?1:0}}:null}function S8(n){let e=[];for(let t of n.selection.ranges){let i=n.doc.lineAt(t.from),s=t.to<=i.to?i:n.doc.lineAt(t.to);s.from>i.from&&s.from==t.to&&(s=t.to==i.to+1?i:n.doc.lineAt(t.to-1));let r=e.length-1;r>=0&&e[r].to>i.from?e[r].to=s.to:e.push({from:i.from+/^\s*/.exec(i.text)[0].length,to:s.to})}return e}function nk(n,e,t=e.selection.ranges){let i=t.map(r=>Rg(e,r.from).block);if(!i.every(r=>r))return null;let s=t.map((r,o)=>w8(e,i[o],r.from,r.to));if(n!=2&&!s.every(r=>r))return{changes:e.changes(t.map((r,o)=>s[o]?[]:[{from:r.from,insert:i[o].open+" "},{from:r.to,insert:" "+i[o].close}]))};if(n!=1&&s.some(r=>r)){let r=[];for(let o=0,u;os&&(r==o||o>b.from)){s=b.from;let x=/^\s*/.exec(b.text)[0].length,w=x==b.length,S=b.text.slice(x,x+d.length)==d?x:-1;xr.comment<0&&(!r.empty||r.single))){let r=[];for(let{line:u,token:f,indent:d,empty:p,single:b}of i)(b||!p)&&r.push({from:u.from+d,insert:f+" "});let o=e.changes(r);return{changes:o,selection:e.selection.map(o,1)}}else if(n!=1&&i.some(r=>r.comment>=0)){let r=[];for(let{line:o,comment:u,token:f}of i)if(u>=0){let d=o.from+u,p=d+f.length;o.text[p-o.from]==" "&&p++,r.push({from:d,to:p})}return{changes:r}}return null}const _p=wi.define(),C8=wi.define(),A8=ce.define(),ik=ce.define({combine(n){return Si(n,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(i,s)=>e(i,s)||t(i,s)})}}),lk=It.define({create(){return bi.empty},update(n,e){let t=e.state.facet(ik),i=e.annotation(_p);if(i){let f=hn.fromTransaction(e,i.selection),d=i.side,p=d==0?n.undone:n.done;return f?p=th(p,p.length,t.minDepth,f):p=rk(p,e.startState.selection),new bi(d==0?i.rest:p,d==0?p:i.rest)}let s=e.annotation(C8);if((s=="full"||s=="before")&&(n=n.isolate()),e.annotation(At.addToHistory)===!1)return e.changes.empty?n:n.addMapping(e.changes.desc);let r=hn.fromTransaction(e),o=e.annotation(At.time),u=e.annotation(At.userEvent);return r?n=n.addChanges(r,o,u,t,e):e.selection&&(n=n.addSelection(e.startState.selection,o,u,t.newGroupDelay)),(s=="full"||s=="after")&&(n=n.isolate()),n},toJSON(n){return{done:n.done.map(e=>e.toJSON()),undone:n.undone.map(e=>e.toJSON())}},fromJSON(n){return new bi(n.done.map(hn.fromJSON),n.undone.map(hn.fromJSON))}});function M8(n={}){return[lk,ik.of(n),re.domEventHandlers({beforeinput(e,t){let i=e.inputType=="historyUndo"?sk:e.inputType=="historyRedo"?Lp:null;return i?(e.preventDefault(),i(t)):!1}})]}function Th(n,e){return function({state:t,dispatch:i}){if(!e&&t.readOnly)return!1;let s=t.field(lk,!1);if(!s)return!1;let r=s.pop(n,t,e);return r?(i(r),!0):!1}}const sk=Th(0,!1),Lp=Th(1,!1),T8=Th(0,!0),N8=Th(1,!0);class hn{constructor(e,t,i,s,r){this.changes=e,this.effects=t,this.mapped=i,this.startSelection=s,this.selectionsAfter=r}setSelAfter(e){return new hn(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,i;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=this.mapped)===null||t===void 0?void 0:t.toJSON(),startSelection:(i=this.startSelection)===null||i===void 0?void 0:i.toJSON(),selectionsAfter:this.selectionsAfter.map(s=>s.toJSON())}}static fromJSON(e){return new hn(e.changes&&Ct.fromJSON(e.changes),[],e.mapped&&vi.fromJSON(e.mapped),e.startSelection&&X.fromJSON(e.startSelection),e.selectionsAfter.map(X.fromJSON))}static fromTransaction(e,t){let i=Hn;for(let s of e.startState.facet(A8)){let r=s(e);r.length&&(i=i.concat(r))}return!i.length&&e.changes.empty?null:new hn(e.changes.invert(e.startState.doc),i,void 0,t||e.startState.selection,Hn)}static selection(e){return new hn(void 0,Hn,void 0,void 0,e)}}function th(n,e,t,i){let s=e+1>t+20?e-t-1:0,r=n.slice(s,e);return r.push(i),r}function E8(n,e){let t=[],i=!1;return n.iterChangedRanges((s,r)=>t.push(s,r)),e.iterChangedRanges((s,r,o,u)=>{for(let f=0;f=d&&o<=p&&(i=!0)}}),i}function D8(n,e){return n.ranges.length==e.ranges.length&&n.ranges.filter((t,i)=>t.empty!=e.ranges[i].empty).length===0}function ak(n,e){return n.length?e.length?n.concat(e):n:e}const Hn=[],O8=200;function rk(n,e){if(n.length){let t=n[n.length-1],i=t.selectionsAfter.slice(Math.max(0,t.selectionsAfter.length-O8));return i.length&&i[i.length-1].eq(e)?n:(i.push(e),th(n,n.length-1,1e9,t.setSelAfter(i)))}else return[hn.selection([e])]}function j8(n){let e=n[n.length-1],t=n.slice();return t[n.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),t}function Dm(n,e){if(!n.length)return n;let t=n.length,i=Hn;for(;t;){let s=R8(n[t-1],e,i);if(s.changes&&!s.changes.empty||s.effects.length){let r=n.slice(0,t);return r[t-1]=s,r}else e=s.mapped,t--,i=s.selectionsAfter}return i.length?[hn.selection(i)]:Hn}function R8(n,e,t){let i=ak(n.selectionsAfter.length?n.selectionsAfter.map(u=>u.map(e)):Hn,t);if(!n.changes)return hn.selection(i);let s=n.changes.map(e),r=e.mapDesc(n.changes,!0),o=n.mapped?n.mapped.composeDesc(r):r;return new hn(s,Me.mapEffects(n.effects,e),o,n.startSelection.map(r),i)}const _8=/^(input\.type|delete)($|\.)/;class bi{constructor(e,t,i=0,s=void 0){this.done=e,this.undone=t,this.prevTime=i,this.prevUserEvent=s}isolate(){return this.prevTime?new bi(this.done,this.undone):this}addChanges(e,t,i,s,r){let o=this.done,u=o[o.length-1];return u&&u.changes&&!u.changes.empty&&e.changes&&(!i||_8.test(i))&&(!u.selectionsAfter.length&&t-this.prevTime0&&t-this.prevTimet.empty?n.moveByChar(t,e):Nh(t,e))}function Yt(n){return n.textDirectionAt(n.state.selection.main.head)==Je.LTR}const ck=n=>ok(n,!Yt(n)),uk=n=>ok(n,Yt(n));function hk(n,e){return Jn(n,t=>t.empty?n.moveByGroup(t,e):Nh(t,e))}const B8=n=>hk(n,!Yt(n)),z8=n=>hk(n,Yt(n));function H8(n,e,t){if(e.type.prop(t))return!0;let i=e.to-e.from;return i&&(i>2||/[^\s,.;:]/.test(n.sliceDoc(e.from,e.to)))||e.firstChild}function Eh(n,e,t){let i=Gt(n).resolveInner(e.head),s=t?Le.closedBy:Le.openedBy;for(let f=e.head;;){let d=t?i.childAfter(f):i.childBefore(f);if(!d)break;H8(n,d,s)?i=d:f=t?d.to:d.from}let r=i.type.prop(s),o,u;return r&&(o=t?yi(n,i.from,1):yi(n,i.to,-1))&&o.matched?u=t?o.end.to:o.end.from:u=t?i.to:i.from,X.cursor(u,t?-1:1)}const V8=n=>Jn(n,e=>Eh(n.state,e,!Yt(n))),U8=n=>Jn(n,e=>Eh(n.state,e,Yt(n)));function fk(n,e){return Jn(n,t=>{if(!t.empty)return Nh(t,e);let i=n.moveVertically(t,e);return i.head!=t.head?i:n.moveToLineBoundary(t,e)})}const dk=n=>fk(n,!1),mk=n=>fk(n,!0);function pk(n){let e=n.scrollDOM.clientHeighto.empty?n.moveVertically(o,e,t.height):Nh(o,e));if(s.eq(i.selection))return!1;let r;if(t.selfScroll){let o=n.coordsAtPos(i.selection.main.head),u=n.scrollDOM.getBoundingClientRect(),f=u.top+t.marginTop,d=u.bottom-t.marginBottom;o&&o.top>f&&o.bottomgk(n,!1),Bp=n=>gk(n,!0);function zl(n,e,t){let i=n.lineBlockAt(e.head),s=n.moveToLineBoundary(e,t);if(s.head==e.head&&s.head!=(t?i.to:i.from)&&(s=n.moveToLineBoundary(e,t,!1)),!t&&s.head==i.from&&i.length){let r=/^\s*/.exec(n.state.sliceDoc(i.from,Math.min(i.from+100,i.to)))[0].length;r&&e.head!=i.from+r&&(s=X.cursor(i.from+r))}return s}const q8=n=>Jn(n,e=>zl(n,e,!0)),P8=n=>Jn(n,e=>zl(n,e,!1)),K8=n=>Jn(n,e=>zl(n,e,!Yt(n))),G8=n=>Jn(n,e=>zl(n,e,Yt(n))),I8=n=>Jn(n,e=>X.cursor(n.lineBlockAt(e.head).from,1)),Y8=n=>Jn(n,e=>X.cursor(n.lineBlockAt(e.head).to,-1));function W8(n,e,t){let i=!1,s=Ba(n.selection,r=>{let o=yi(n,r.head,-1)||yi(n,r.head,1)||r.head>0&&yi(n,r.head-1,1)||r.headW8(n,e);function Pn(n,e){let t=Ba(n.state.selection,i=>{let s=e(i);return X.range(i.anchor,s.head,s.goalColumn,s.bidiLevel||void 0)});return t.eq(n.state.selection)?!1:(n.dispatch($n(n.state,t)),!0)}function yk(n,e){return Pn(n,t=>n.moveByChar(t,e))}const bk=n=>yk(n,!Yt(n)),xk=n=>yk(n,Yt(n));function vk(n,e){return Pn(n,t=>n.moveByGroup(t,e))}const X8=n=>vk(n,!Yt(n)),Q8=n=>vk(n,Yt(n)),Z8=n=>Pn(n,e=>Eh(n.state,e,!Yt(n))),$8=n=>Pn(n,e=>Eh(n.state,e,Yt(n)));function wk(n,e){return Pn(n,t=>n.moveVertically(t,e))}const Sk=n=>wk(n,!1),kk=n=>wk(n,!0);function Ck(n,e){return Pn(n,t=>n.moveVertically(t,e,pk(n).height))}const Uv=n=>Ck(n,!1),qv=n=>Ck(n,!0),J8=n=>Pn(n,e=>zl(n,e,!0)),ej=n=>Pn(n,e=>zl(n,e,!1)),tj=n=>Pn(n,e=>zl(n,e,!Yt(n))),nj=n=>Pn(n,e=>zl(n,e,Yt(n))),ij=n=>Pn(n,e=>X.cursor(n.lineBlockAt(e.head).from)),lj=n=>Pn(n,e=>X.cursor(n.lineBlockAt(e.head).to)),Pv=({state:n,dispatch:e})=>(e($n(n,{anchor:0})),!0),Kv=({state:n,dispatch:e})=>(e($n(n,{anchor:n.doc.length})),!0),Gv=({state:n,dispatch:e})=>(e($n(n,{anchor:n.selection.main.anchor,head:0})),!0),Iv=({state:n,dispatch:e})=>(e($n(n,{anchor:n.selection.main.anchor,head:n.doc.length})),!0),sj=({state:n,dispatch:e})=>(e(n.update({selection:{anchor:0,head:n.doc.length},userEvent:"select"})),!0),aj=({state:n,dispatch:e})=>{let t=Dh(n).map(({from:i,to:s})=>X.range(i,Math.min(s+1,n.doc.length)));return e(n.update({selection:X.create(t),userEvent:"select"})),!0},rj=({state:n,dispatch:e})=>{let t=Ba(n.selection,i=>{let s=Gt(n),r=s.resolveStack(i.from,1);if(i.empty){let o=s.resolveStack(i.from,-1);o.node.from>=r.node.from&&o.node.to<=r.node.to&&(r=o)}for(let o=r;o;o=o.next){let{node:u}=o;if((u.from=i.to||u.to>i.to&&u.from<=i.from)&&o.next)return X.range(u.to,u.from)}return i});return t.eq(n.selection)?!1:(e($n(n,t)),!0)};function Ak(n,e){let{state:t}=n,i=t.selection,s=t.selection.ranges.slice();for(let r of t.selection.ranges){let o=t.doc.lineAt(r.head);if(e?o.to0)for(let u=r;;){let f=n.moveVertically(u,e);if(f.heado.to){s.some(d=>d.head==f.head)||s.push(f);break}else{if(f.head==u.head)break;u=f}}}return s.length==i.ranges.length?!1:(n.dispatch($n(t,X.create(s,s.length-1))),!0)}const oj=n=>Ak(n,!1),cj=n=>Ak(n,!0),uj=({state:n,dispatch:e})=>{let t=n.selection,i=null;return t.ranges.length>1?i=X.create([t.main]):t.main.empty||(i=X.create([X.cursor(t.main.head)])),i?(e($n(n,i)),!0):!1};function _o(n,e){if(n.state.readOnly)return!1;let t="delete.selection",{state:i}=n,s=i.changeByRange(r=>{let{from:o,to:u}=r;if(o==u){let f=e(r);fo&&(t="delete.forward",f=vu(n,f,!0)),o=Math.min(o,f),u=Math.max(u,f)}else o=vu(n,o,!1),u=vu(n,u,!0);return o==u?{range:r}:{changes:{from:o,to:u},range:X.cursor(o,os(n)))i.between(e,e,(s,r)=>{se&&(e=t?r:s)});return e}const Mk=(n,e,t)=>_o(n,i=>{let s=i.from,{state:r}=n,o=r.doc.lineAt(s),u,f;if(t&&!e&&s>o.from&&sMk(n,!1,!0),Tk=n=>Mk(n,!0,!1),Nk=(n,e)=>_o(n,t=>{let i=t.head,{state:s}=n,r=s.doc.lineAt(i),o=s.charCategorizer(i);for(let u=null;;){if(i==(e?r.to:r.from)){i==t.head&&r.number!=(e?s.doc.lines:1)&&(i+=e?1:-1);break}let f=jt(r.text,i-r.from,e)+r.from,d=r.text.slice(Math.min(i,f)-r.from,Math.max(i,f)-r.from),p=o(d);if(u!=null&&p!=u)break;(d!=" "||i!=t.head)&&(u=p),i=f}return i}),Ek=n=>Nk(n,!1),hj=n=>Nk(n,!0),fj=n=>_o(n,e=>{let t=n.lineBlockAt(e.head).to;return e.head_o(n,e=>{let t=n.moveToLineBoundary(e,!1).head;return e.head>t?t:Math.max(0,e.head-1)}),mj=n=>_o(n,e=>{let t=n.moveToLineBoundary(e,!0).head;return e.head{if(n.readOnly)return!1;let t=n.changeByRange(i=>({changes:{from:i.from,to:i.to,insert:qe.of(["",""])},range:X.cursor(i.from)}));return e(n.update(t,{scrollIntoView:!0,userEvent:"input"})),!0},gj=({state:n,dispatch:e})=>{if(n.readOnly)return!1;let t=n.changeByRange(i=>{if(!i.empty||i.from==0||i.from==n.doc.length)return{range:i};let s=i.from,r=n.doc.lineAt(s),o=s==r.from?s-1:jt(r.text,s-r.from,!1)+r.from,u=s==r.to?s+1:jt(r.text,s-r.from,!0)+r.from;return{changes:{from:o,to:u,insert:n.doc.slice(s,u).append(n.doc.slice(o,s))},range:X.cursor(u)}});return t.changes.empty?!1:(e(n.update(t,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function Dh(n){let e=[],t=-1;for(let i of n.selection.ranges){let s=n.doc.lineAt(i.from),r=n.doc.lineAt(i.to);if(!i.empty&&i.to==r.from&&(r=n.doc.lineAt(i.to-1)),t>=s.number){let o=e[e.length-1];o.to=r.to,o.ranges.push(i)}else e.push({from:s.from,to:r.to,ranges:[i]});t=r.number+1}return e}function Dk(n,e,t){if(n.readOnly)return!1;let i=[],s=[];for(let r of Dh(n)){if(t?r.to==n.doc.length:r.from==0)continue;let o=n.doc.lineAt(t?r.to+1:r.from-1),u=o.length+1;if(t){i.push({from:r.to,to:o.to},{from:r.from,insert:o.text+n.lineBreak});for(let f of r.ranges)s.push(X.range(Math.min(n.doc.length,f.anchor+u),Math.min(n.doc.length,f.head+u)))}else{i.push({from:o.from,to:r.from},{from:r.to,insert:n.lineBreak+o.text});for(let f of r.ranges)s.push(X.range(f.anchor-u,f.head-u))}}return i.length?(e(n.update({changes:i,scrollIntoView:!0,selection:X.create(s,n.selection.mainIndex),userEvent:"move.line"})),!0):!1}const yj=({state:n,dispatch:e})=>Dk(n,e,!1),bj=({state:n,dispatch:e})=>Dk(n,e,!0);function Ok(n,e,t){if(n.readOnly)return!1;let i=[];for(let r of Dh(n))t?i.push({from:r.from,insert:n.doc.slice(r.from,r.to)+n.lineBreak}):i.push({from:r.to,insert:n.lineBreak+n.doc.slice(r.from,r.to)});let s=n.changes(i);return e(n.update({changes:s,selection:n.selection.map(s,t?1:-1),scrollIntoView:!0,userEvent:"input.copyline"})),!0}const xj=({state:n,dispatch:e})=>Ok(n,e,!1),vj=({state:n,dispatch:e})=>Ok(n,e,!0),wj=n=>{if(n.state.readOnly)return!1;let{state:e}=n,t=e.changes(Dh(e).map(({from:s,to:r})=>(s>0?s--:r{let r;if(n.lineWrapping){let o=n.lineBlockAt(s.head),u=n.coordsAtPos(s.head,s.assoc||1);u&&(r=o.bottom+n.documentTop-u.bottom+n.defaultLineHeight/2)}return n.moveVertically(s,!0,r)}).map(t);return n.dispatch({changes:t,selection:i,scrollIntoView:!0,userEvent:"delete.line"}),!0};function Sj(n,e){if(/\(\)|\[\]|\{\}/.test(n.sliceDoc(e-1,e+1)))return{from:e,to:e};let t=Gt(n).resolveInner(e),i=t.childBefore(e),s=t.childAfter(e),r;return i&&s&&i.to<=e&&s.from>=e&&(r=i.type.prop(Le.closedBy))&&r.indexOf(s.name)>-1&&n.doc.lineAt(i.to).from==n.doc.lineAt(s.from).from&&!/\S/.test(n.sliceDoc(i.to,s.from))?{from:i.to,to:s.from}:null}const Yv=jk(!1),kj=jk(!0);function jk(n){return({state:e,dispatch:t})=>{if(e.readOnly)return!1;let i=e.changeByRange(s=>{let{from:r,to:o}=s,u=e.doc.lineAt(r),f=!n&&r==o&&Sj(e,r);n&&(r=o=(o<=u.to?u:e.doc.lineAt(o)).to);let d=new Ah(e,{simulateBreak:r,simulateDoubleBreak:!!f}),p=Tg(d,r);for(p==null&&(p=La(/^\s*/.exec(e.doc.lineAt(r).text)[0],e.tabSize));ou.from&&r{let s=[];for(let o=i.from;o<=i.to;){let u=n.doc.lineAt(o);u.number>t&&(i.empty||i.to>u.from)&&(e(u,s,i),t=u.number),o=u.to+1}let r=n.changes(s);return{changes:s,range:X.range(r.mapPos(i.anchor,1),r.mapPos(i.head,1))}})}const Cj=({state:n,dispatch:e})=>{if(n.readOnly)return!1;let t=Object.create(null),i=new Ah(n,{overrideIndentation:r=>{let o=t[r];return o??-1}}),s=_g(n,(r,o,u)=>{let f=Tg(i,r.from);if(f==null)return;/\S/.test(r.text)||(f=0);let d=/^\s*/.exec(r.text)[0],p=yo(n,f);(d!=p||u.fromn.readOnly?!1:(e(n.update(_g(n,(t,i)=>{i.push({from:t.from,insert:n.facet(Ch)})}),{userEvent:"input.indent"})),!0),_k=({state:n,dispatch:e})=>n.readOnly?!1:(e(n.update(_g(n,(t,i)=>{let s=/^\s*/.exec(t.text)[0];if(!s)return;let r=La(s,n.tabSize),o=0,u=yo(n,Math.max(0,r-xs(n)));for(;o(n.setTabFocusMode(),!0),Mj=[{key:"Ctrl-b",run:ck,shift:bk,preventDefault:!0},{key:"Ctrl-f",run:uk,shift:xk},{key:"Ctrl-p",run:dk,shift:Sk},{key:"Ctrl-n",run:mk,shift:kk},{key:"Ctrl-a",run:I8,shift:ij},{key:"Ctrl-e",run:Y8,shift:lj},{key:"Ctrl-d",run:Tk},{key:"Ctrl-h",run:zp},{key:"Ctrl-k",run:fj},{key:"Ctrl-Alt-h",run:Ek},{key:"Ctrl-o",run:pj},{key:"Ctrl-t",run:gj},{key:"Ctrl-v",run:Bp}],Tj=[{key:"ArrowLeft",run:ck,shift:bk,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:B8,shift:X8,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:K8,shift:tj,preventDefault:!0},{key:"ArrowRight",run:uk,shift:xk,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:z8,shift:Q8,preventDefault:!0},{mac:"Cmd-ArrowRight",run:G8,shift:nj,preventDefault:!0},{key:"ArrowUp",run:dk,shift:Sk,preventDefault:!0},{mac:"Cmd-ArrowUp",run:Pv,shift:Gv},{mac:"Ctrl-ArrowUp",run:Vv,shift:Uv},{key:"ArrowDown",run:mk,shift:kk,preventDefault:!0},{mac:"Cmd-ArrowDown",run:Kv,shift:Iv},{mac:"Ctrl-ArrowDown",run:Bp,shift:qv},{key:"PageUp",run:Vv,shift:Uv},{key:"PageDown",run:Bp,shift:qv},{key:"Home",run:P8,shift:ej,preventDefault:!0},{key:"Mod-Home",run:Pv,shift:Gv},{key:"End",run:q8,shift:J8,preventDefault:!0},{key:"Mod-End",run:Kv,shift:Iv},{key:"Enter",run:Yv,shift:Yv},{key:"Mod-a",run:sj},{key:"Backspace",run:zp,shift:zp,preventDefault:!0},{key:"Delete",run:Tk,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:Ek,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:hj,preventDefault:!0},{mac:"Mod-Backspace",run:dj,preventDefault:!0},{mac:"Mod-Delete",run:mj,preventDefault:!0}].concat(Mj.map(n=>({mac:n.key,run:n.run,shift:n.shift}))),Nj=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:V8,shift:Z8},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:U8,shift:$8},{key:"Alt-ArrowUp",run:yj},{key:"Shift-Alt-ArrowUp",run:xj},{key:"Alt-ArrowDown",run:bj},{key:"Shift-Alt-ArrowDown",run:vj},{key:"Mod-Alt-ArrowUp",run:oj},{key:"Mod-Alt-ArrowDown",run:cj},{key:"Escape",run:uj},{key:"Mod-Enter",run:kj},{key:"Alt-l",mac:"Ctrl-l",run:aj},{key:"Mod-i",run:rj,preventDefault:!0},{key:"Mod-[",run:_k},{key:"Mod-]",run:Rk},{key:"Mod-Alt-\\",run:Cj},{key:"Shift-Mod-k",run:wj},{key:"Shift-Mod-\\",run:F8},{key:"Mod-/",run:y8},{key:"Alt-A",run:x8},{key:"Ctrl-m",mac:"Shift-Alt-m",run:Aj}].concat(Tj),Ej={key:"Tab",run:Rk,shift:_k},Wv=typeof String.prototype.normalize=="function"?n=>n.normalize("NFKD"):n=>n;class Oa{constructor(e,t,i=0,s=e.length,r,o){this.test=o,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(i,s),this.bufferStart=i,this.normalize=r?u=>r(Wv(u)):Wv,this.query=this.normalize(t)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return rn(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let t=og(e),i=this.bufferStart+this.bufferPos;this.bufferPos+=mi(e);let s=this.normalize(t);if(s.length)for(let r=0,o=i;;r++){let u=s.charCodeAt(r),f=this.match(u,o,this.bufferPos+this.bufferStart);if(r==s.length-1){if(f)return this.value=f,this;break}o==i&&rthis.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let t=this.matchPos<=this.to&&this.re.exec(this.curLine);if(t){let i=this.curLineStart+t.index,s=i+t[0].length;if(this.matchPos=nh(this.text,s+(i==s?1:0)),i==this.curLineStart+this.curLine.length&&this.nextLine(),(ithis.value.to)&&(!this.test||this.test(i,s,t)))return this.value={from:i,to:s,match:t},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length=i||s.to<=t){let u=new Sa(t,e.sliceString(t,i));return Om.set(e,u),u}if(s.from==t&&s.to==i)return s;let{text:r,from:o}=s;return o>t&&(r=e.sliceString(t,o)+r,o=t),s.to=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,t=this.re.exec(this.flat.text);if(t&&!t[0]&&t.index==e&&(this.re.lastIndex=e+1,t=this.re.exec(this.flat.text)),t){let i=this.flat.from+t.index,s=i+t[0].length;if((this.flat.to>=this.to||t.index+t[0].length<=this.flat.text.length-10)&&(!this.test||this.test(i,s,t)))return this.value={from:i,to:s,match:t},this.matchPos=nh(this.text,s+(i==s?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=Sa.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}typeof Symbol<"u"&&(Bk.prototype[Symbol.iterator]=zk.prototype[Symbol.iterator]=function(){return this});function Dj(n){try{return new RegExp(n,Lg),!0}catch{return!1}}function nh(n,e){if(e>=n.length)return e;let t=n.lineAt(e),i;for(;e=56320&&i<57344;)e++;return e}const Oj=n=>{let{state:e}=n,t=String(e.doc.lineAt(n.state.selection.main.head).number),{close:i,result:s}=UD(n,{label:e.phrase("Go to line"),input:{type:"text",name:"line",value:t},focus:!0,submitLabel:e.phrase("go")});return s.then(r=>{let o=r&&/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(r.elements.line.value);if(!o){n.dispatch({effects:i});return}let u=e.doc.lineAt(e.selection.main.head),[,f,d,p,b]=o,x=p?+p.slice(1):0,w=d?+d:u.number;if(d&&b){let C=w/100;f&&(C=C*(f=="-"?-1:1)+u.number/e.doc.lines),w=Math.round(e.doc.lines*C)}else d&&f&&(w=w*(f=="-"?-1:1)+u.number);let S=e.doc.line(Math.max(1,Math.min(e.doc.lines,w))),A=X.cursor(S.from+Math.max(0,Math.min(x,S.length)));n.dispatch({effects:[i,re.scrollIntoView(A.from,{y:"center"})],selection:A})}),!0},jj={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},Rj=ce.define({combine(n){return Si(n,jj,{highlightWordAroundCursor:(e,t)=>e||t,minSelectionLength:Math.min,maxMatches:Math.min})}});function _j(n){return[Vj,Hj]}const Lj=we.mark({class:"cm-selectionMatch"}),Bj=we.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function Fv(n,e,t,i){return(t==0||n(e.sliceDoc(t-1,t))!=at.Word)&&(i==e.doc.length||n(e.sliceDoc(i,i+1))!=at.Word)}function zj(n,e,t,i){return n(e.sliceDoc(t,t+1))==at.Word&&n(e.sliceDoc(i-1,i))==at.Word}const Hj=ft.fromClass(class{constructor(n){this.decorations=this.getDeco(n)}update(n){(n.selectionSet||n.docChanged||n.viewportChanged)&&(this.decorations=this.getDeco(n.view))}getDeco(n){let e=n.state.facet(Rj),{state:t}=n,i=t.selection;if(i.ranges.length>1)return we.none;let s=i.main,r,o=null;if(s.empty){if(!e.highlightWordAroundCursor)return we.none;let f=t.wordAt(s.head);if(!f)return we.none;o=t.charCategorizer(s.head),r=t.sliceDoc(f.from,f.to)}else{let f=s.to-s.from;if(f200)return we.none;if(e.wholeWords){if(r=t.sliceDoc(s.from,s.to),o=t.charCategorizer(s.head),!(Fv(o,t,s.from,s.to)&&zj(o,t,s.from,s.to)))return we.none}else if(r=t.sliceDoc(s.from,s.to),!r)return we.none}let u=[];for(let f of n.visibleRanges){let d=new Oa(t.doc,r,f.from,f.to);for(;!d.next().done;){let{from:p,to:b}=d.value;if((!o||Fv(o,t,p,b))&&(s.empty&&p<=s.from&&b>=s.to?u.push(Bj.range(p,b)):(p>=s.to||b<=s.from)&&u.push(Lj.range(p,b)),u.length>e.maxMatches))return we.none}}return we.set(u)}},{decorations:n=>n.decorations}),Vj=re.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),Uj=({state:n,dispatch:e})=>{let{selection:t}=n,i=X.create(t.ranges.map(s=>n.wordAt(s.head)||X.cursor(s.head)),t.mainIndex);return i.eq(t)?!1:(e(n.update({selection:i})),!0)};function qj(n,e){let{main:t,ranges:i}=n.selection,s=n.wordAt(t.head),r=s&&s.from==t.from&&s.to==t.to;for(let o=!1,u=new Oa(n.doc,e,i[i.length-1].to);;)if(u.next(),u.done){if(o)return null;u=new Oa(n.doc,e,0,Math.max(0,i[i.length-1].from-1)),o=!0}else{if(o&&i.some(f=>f.from==u.value.from))continue;if(r){let f=n.wordAt(u.value.from);if(!f||f.from!=u.value.from||f.to!=u.value.to)continue}return u.value}}const Pj=({state:n,dispatch:e})=>{let{ranges:t}=n.selection;if(t.some(r=>r.from===r.to))return Uj({state:n,dispatch:e});let i=n.sliceDoc(t[0].from,t[0].to);if(n.selection.ranges.some(r=>n.sliceDoc(r.from,r.to)!=i))return!1;let s=qj(n,i);return s?(e(n.update({selection:n.selection.addRange(X.range(s.from,s.to),!1),effects:re.scrollIntoView(s.to)})),!0):!1},za=ce.define({combine(n){return Si(n,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new nR(e),scrollToMatch:e=>re.scrollIntoView(e)})}});class Hk{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||Dj(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord,this.test=e.test}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(t,i)=>i=="n"?` +`:i=="r"?"\r":i=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord&&this.test==e.test}create(){return this.regexp?new Fj(this):new Ij(this)}getCursor(e,t=0,i){let s=e.doc?e:ze.create({doc:e});return i==null&&(i=s.doc.length),this.regexp?fa(this,s,t,i):ha(this,s,t,i)}}class Vk{constructor(e){this.spec=e}}function Kj(n,e,t){return(i,s,r,o)=>{if(t&&!t(i,s,r,o))return!1;let u=i>=o&&s<=o+r.length?r.slice(i-o,s-o):e.doc.sliceString(i,s);return n(u,e,i,s)}}function ha(n,e,t,i){let s;return n.wholeWord&&(s=Gj(e.doc,e.charCategorizer(e.selection.main.head))),n.test&&(s=Kj(n.test,e,s)),new Oa(e.doc,n.unquoted,t,i,n.caseSensitive?void 0:r=>r.toLowerCase(),s)}function Gj(n,e){return(t,i,s,r)=>((r>t||r+s.length=t)return null;s.push(i.value)}return s}highlight(e,t,i,s){let r=ha(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(i+this.spec.unquoted.length,e.doc.length));for(;!r.next().done;)s(r.value.from,r.value.to)}}function Yj(n,e,t){return(i,s,r)=>(!t||t(i,s,r))&&n(r[0],e,i,s)}function fa(n,e,t,i){let s;return n.wholeWord&&(s=Wj(e.charCategorizer(e.selection.main.head))),n.test&&(s=Yj(n.test,e,s)),new Bk(e.doc,n.search,{ignoreCase:!n.caseSensitive,test:s},t,i)}function ih(n,e){return n.slice(jt(n,e,!1),e)}function lh(n,e){return n.slice(e,jt(n,e))}function Wj(n){return(e,t,i)=>!i[0].length||(n(ih(i.input,i.index))!=at.Word||n(lh(i.input,i.index))!=at.Word)&&(n(lh(i.input,i.index+i[0].length))!=at.Word||n(ih(i.input,i.index+i[0].length))!=at.Word)}class Fj extends Vk{nextMatch(e,t,i){let s=fa(this.spec,e,i,e.doc.length).next();return s.done&&(s=fa(this.spec,e,0,t).next()),s.done?null:s.value}prevMatchInRange(e,t,i){for(let s=1;;s++){let r=Math.max(t,i-s*1e4),o=fa(this.spec,e,r,i),u=null;for(;!o.next().done;)u=o.value;if(u&&(r==t||u.from>r+10))return u;if(r==t)return null}}prevMatch(e,t,i){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,i,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(t,i)=>{if(i=="&")return e.match[0];if(i=="$")return"$";for(let s=i.length;s>0;s--){let r=+i.slice(0,s);if(r>0&&r=t)return null;s.push(i.value)}return s}highlight(e,t,i,s){let r=fa(this.spec,e,Math.max(0,t-250),Math.min(i+250,e.doc.length));for(;!r.next().done;)s(r.value.from,r.value.to)}}const xo=Me.define(),Bg=Me.define(),El=It.define({create(n){return new jm(Hp(n).create(),null)},update(n,e){for(let t of e.effects)t.is(xo)?n=new jm(t.value.create(),n.panel):t.is(Bg)&&(n=new jm(n.query,t.value?zg:null));return n},provide:n=>po.from(n,e=>e.panel)});class jm{constructor(e,t){this.query=e,this.panel=t}}const Xj=we.mark({class:"cm-searchMatch"}),Qj=we.mark({class:"cm-searchMatch cm-searchMatch-selected"}),Zj=ft.fromClass(class{constructor(n){this.view=n,this.decorations=this.highlight(n.state.field(El))}update(n){let e=n.state.field(El);(e!=n.startState.field(El)||n.docChanged||n.selectionSet||n.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:n,panel:e}){if(!e||!n.spec.valid)return we.none;let{view:t}=this,i=new Fi;for(let s=0,r=t.visibleRanges,o=r.length;sr[s+1].from-500;)f=r[++s].to;n.highlight(t.state,u,f,(d,p)=>{let b=t.state.selection.ranges.some(x=>x.from==d&&x.to==p);i.add(d,p,b?Qj:Xj)})}return i.finish()}},{decorations:n=>n.decorations});function Lo(n){return e=>{let t=e.state.field(El,!1);return t&&t.query.spec.valid?n(e,t):Pk(e)}}const sh=Lo((n,{query:e})=>{let{to:t}=n.state.selection.main,i=e.nextMatch(n.state,t,t);if(!i)return!1;let s=X.single(i.from,i.to),r=n.state.facet(za);return n.dispatch({selection:s,effects:[Hg(n,i),r.scrollToMatch(s.main,n)],userEvent:"select.search"}),qk(n),!0}),ah=Lo((n,{query:e})=>{let{state:t}=n,{from:i}=t.selection.main,s=e.prevMatch(t,i,i);if(!s)return!1;let r=X.single(s.from,s.to),o=n.state.facet(za);return n.dispatch({selection:r,effects:[Hg(n,s),o.scrollToMatch(r.main,n)],userEvent:"select.search"}),qk(n),!0}),$j=Lo((n,{query:e})=>{let t=e.matchAll(n.state,1e3);return!t||!t.length?!1:(n.dispatch({selection:X.create(t.map(i=>X.range(i.from,i.to))),userEvent:"select.search.matches"}),!0)}),Jj=({state:n,dispatch:e})=>{let t=n.selection;if(t.ranges.length>1||t.main.empty)return!1;let{from:i,to:s}=t.main,r=[],o=0;for(let u=new Oa(n.doc,n.sliceDoc(i,s));!u.next().done;){if(r.length>1e3)return!1;u.value.from==i&&(o=r.length),r.push(X.range(u.value.from,u.value.to))}return e(n.update({selection:X.create(r,o),userEvent:"select.search.matches"})),!0},Xv=Lo((n,{query:e})=>{let{state:t}=n,{from:i,to:s}=t.selection.main;if(t.readOnly)return!1;let r=e.nextMatch(t,i,i);if(!r)return!1;let o=r,u=[],f,d,p=[];o.from==i&&o.to==s&&(d=t.toText(e.getReplacement(o)),u.push({from:o.from,to:o.to,insert:d}),o=e.nextMatch(t,o.from,o.to),p.push(re.announce.of(t.phrase("replaced match on line $",t.doc.lineAt(i).number)+".")));let b=n.state.changes(u);return o&&(f=X.single(o.from,o.to).map(b),p.push(Hg(n,o)),p.push(t.facet(za).scrollToMatch(f.main,n))),n.dispatch({changes:b,selection:f,effects:p,userEvent:"input.replace"}),!0}),eR=Lo((n,{query:e})=>{if(n.state.readOnly)return!1;let t=e.matchAll(n.state,1e9).map(s=>{let{from:r,to:o}=s;return{from:r,to:o,insert:e.getReplacement(s)}});if(!t.length)return!1;let i=n.state.phrase("replaced $ matches",t.length)+".";return n.dispatch({changes:t,effects:re.announce.of(i),userEvent:"input.replace.all"}),!0});function zg(n){return n.state.facet(za).createPanel(n)}function Hp(n,e){var t,i,s,r,o;let u=n.selection.main,f=u.empty||u.to>u.from+100?"":n.sliceDoc(u.from,u.to);if(e&&!f)return e;let d=n.facet(za);return new Hk({search:((t=e==null?void 0:e.literal)!==null&&t!==void 0?t:d.literal)?f:f.replace(/\n/g,"\\n"),caseSensitive:(i=e==null?void 0:e.caseSensitive)!==null&&i!==void 0?i:d.caseSensitive,literal:(s=e==null?void 0:e.literal)!==null&&s!==void 0?s:d.literal,regexp:(r=e==null?void 0:e.regexp)!==null&&r!==void 0?r:d.regexp,wholeWord:(o=e==null?void 0:e.wholeWord)!==null&&o!==void 0?o:d.wholeWord})}function Uk(n){let e=Mg(n,zg);return e&&e.dom.querySelector("[main-field]")}function qk(n){let e=Uk(n);e&&e==n.root.activeElement&&e.select()}const Pk=n=>{let e=n.state.field(El,!1);if(e&&e.panel){let t=Uk(n);if(t&&t!=n.root.activeElement){let i=Hp(n.state,e.query.spec);i.valid&&n.dispatch({effects:xo.of(i)}),t.focus(),t.select()}}else n.dispatch({effects:[Bg.of(!0),e?xo.of(Hp(n.state,e.query.spec)):Me.appendConfig.of(lR)]});return!0},Kk=n=>{let e=n.state.field(El,!1);if(!e||!e.panel)return!1;let t=Mg(n,zg);return t&&t.dom.contains(n.root.activeElement)&&n.focus(),n.dispatch({effects:Bg.of(!1)}),!0},tR=[{key:"Mod-f",run:Pk,scope:"editor search-panel"},{key:"F3",run:sh,shift:ah,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:sh,shift:ah,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:Kk,scope:"editor search-panel"},{key:"Mod-Shift-l",run:Jj},{key:"Mod-Alt-g",run:Oj},{key:"Mod-d",run:Pj,preventDefault:!0}];class nR{constructor(e){this.view=e;let t=this.query=e.state.field(El).query.spec;this.commit=this.commit.bind(this),this.searchField=Qe("input",{value:t.search,placeholder:Sn(e,"Find"),"aria-label":Sn(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=Qe("input",{value:t.replace,placeholder:Sn(e,"Replace"),"aria-label":Sn(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=Qe("input",{type:"checkbox",name:"case",form:"",checked:t.caseSensitive,onchange:this.commit}),this.reField=Qe("input",{type:"checkbox",name:"re",form:"",checked:t.regexp,onchange:this.commit}),this.wordField=Qe("input",{type:"checkbox",name:"word",form:"",checked:t.wholeWord,onchange:this.commit});function i(s,r,o){return Qe("button",{class:"cm-button",name:s,onclick:r,type:"button"},o)}this.dom=Qe("div",{onkeydown:s=>this.keydown(s),class:"cm-search"},[this.searchField,i("next",()=>sh(e),[Sn(e,"next")]),i("prev",()=>ah(e),[Sn(e,"previous")]),i("select",()=>$j(e),[Sn(e,"all")]),Qe("label",null,[this.caseField,Sn(e,"match case")]),Qe("label",null,[this.reField,Sn(e,"regexp")]),Qe("label",null,[this.wordField,Sn(e,"by word")]),...e.state.readOnly?[]:[Qe("br"),this.replaceField,i("replace",()=>Xv(e),[Sn(e,"replace")]),i("replaceAll",()=>eR(e),[Sn(e,"replace all")])],Qe("button",{name:"close",onclick:()=>Kk(e),"aria-label":Sn(e,"close"),type:"button"},["×"])])}commit(){let e=new Hk({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:xo.of(e)}))}keydown(e){Q5(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?ah:sh)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),Xv(this.view))}update(e){for(let t of e.transactions)for(let i of t.effects)i.is(xo)&&!i.value.eq(this.query)&&this.setQuery(i.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(za).top}}function Sn(n,e){return n.state.phrase(e)}const wu=30,Su=/[\s\.,:;?!]/;function Hg(n,{from:e,to:t}){let i=n.state.doc.lineAt(e),s=n.state.doc.lineAt(t).to,r=Math.max(i.from,e-wu),o=Math.min(s,t+wu),u=n.state.sliceDoc(r,o);if(r!=i.from){for(let f=0;fu.length-wu;f--)if(!Su.test(u[f-1])&&Su.test(u[f])){u=u.slice(0,f);break}}return re.announce.of(`${n.state.phrase("current match")}. ${u} ${n.state.phrase("on line")} ${i.number}.`)}const iR=re.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),lR=[El,Ss.low(Zj),iR];class Gk{constructor(e,t,i,s){this.state=e,this.pos=t,this.explicit=i,this.view=s,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let t=Gt(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),i=Math.max(t.from,this.pos-250),s=t.text.slice(i-t.from,this.pos-t.from),r=s.search(Ik(e,!1));return r<0?null:{from:i+r,to:this.pos,text:s.slice(r)}}get aborted(){return this.abortListeners==null}addEventListener(e,t,i){e=="abort"&&this.abortListeners&&(this.abortListeners.push(t),i&&i.onDocChange&&(this.abortOnDocChange=!0))}}function Qv(n){let e=Object.keys(n).join(""),t=/\w/.test(e);return t&&(e=e.replace(/\w/g,"")),`[${t?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function sR(n){let e=Object.create(null),t=Object.create(null);for(let{label:s}of n){e[s[0]]=!0;for(let r=1;rtypeof s=="string"?{label:s}:s),[t,i]=e.every(s=>/^\w+$/.test(s.label))?[/\w*$/,/\w+$/]:sR(e);return s=>{let r=s.matchBefore(i);return r||s.explicit?{from:r?r.from:s.pos,options:e,validFor:t}:null}}class Zv{constructor(e,t,i,s){this.completion=e,this.source=t,this.match=i,this.score=s}}function ps(n){return n.selection.main.from}function Ik(n,e){var t;let{source:i}=n,s=e&&i[0]!="^",r=i[i.length-1]!="$";return!s&&!r?n:new RegExp(`${s?"^":""}(?:${i})${r?"$":""}`,(t=n.flags)!==null&&t!==void 0?t:n.ignoreCase?"i":"")}const Yk=wi.define();function rR(n,e,t,i){let{main:s}=n.selection,r=t-s.from,o=i-s.from;return{...n.changeByRange(u=>{if(u!=s&&t!=i&&n.sliceDoc(u.from+r,u.from+o)!=n.sliceDoc(t,i))return{range:u};let f=n.toText(e);return{changes:{from:u.from+r,to:i==s.from?u.to:u.from+o,insert:f},range:X.cursor(u.from+r+f.length)}}),scrollIntoView:!0,userEvent:"input.complete"}}const $v=new WeakMap;function oR(n){if(!Array.isArray(n))return n;let e=$v.get(n);return e||$v.set(n,e=aR(n)),e}const rh=Me.define(),vo=Me.define();class cR{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let t=0;t=48&&B<=57||B>=97&&B<=122?2:B>=65&&B<=90?1:0:(I=og(B))!=I.toLowerCase()?1:I!=I.toUpperCase()?2:0;(!R||V==1&&C||q==0&&V!=0)&&(t[b]==B||i[b]==B&&(x=!0)?o[b++]=R:o.length&&(T=!1)),q=V,R+=mi(B)}return b==f&&o[0]==0&&T?this.result(-100+(x?-200:0),o,e):w==f&&S==0?this.ret(-200-e.length+(A==e.length?0:-100),[0,A]):u>-1?this.ret(-700-e.length,[u,u+this.pattern.length]):w==f?this.ret(-900-e.length,[S,A]):b==f?this.result(-100+(x?-200:0)+-700+(T?0:-1100),o,e):t.length==2?null:this.result((s[0]?-700:0)+-200+-1100,s,e)}result(e,t,i){let s=[],r=0;for(let o of t){let u=o+(this.astral?mi(rn(i,o)):1);r&&s[r-1]==o?s[r-1]=u:(s[r++]=o,s[r++]=u)}return this.ret(e-i.length,s)}}class uR{constructor(e){this.pattern=e,this.matched=[],this.score=0,this.folded=e.toLowerCase()}match(e){if(e.length!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:hR,filterStrict:!1,compareCompletions:(e,t)=>(e.sortText||e.label).localeCompare(t.sortText||t.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(e,t)=>e&&t,closeOnBlur:(e,t)=>e&&t,icons:(e,t)=>e&&t,tooltipClass:(e,t)=>i=>Jv(e(i),t(i)),optionClass:(e,t)=>i=>Jv(e(i),t(i)),addToOptions:(e,t)=>e.concat(t),filterStrict:(e,t)=>e||t})}});function Jv(n,e){return n?e?n+" "+e:n:e}function hR(n,e,t,i,s,r){let o=n.textDirection==Je.RTL,u=o,f=!1,d="top",p,b,x=e.left-s.left,w=s.right-e.right,S=i.right-i.left,A=i.bottom-i.top;if(u&&x=A||R>e.top?p=t.bottom-e.top:(d="bottom",p=e.bottom-t.top)}let C=(e.bottom-e.top)/r.offsetHeight,T=(e.right-e.left)/r.offsetWidth;return{style:`${d}: ${p/C}px; max-width: ${b/T}px`,class:"cm-completionInfo-"+(f?o?"left-narrow":"right-narrow":u?"left":"right")}}function fR(n){let e=n.addToOptions.slice();return n.icons&&e.push({render(t){let i=document.createElement("div");return i.classList.add("cm-completionIcon"),t.type&&i.classList.add(...t.type.split(/\s+/g).map(s=>"cm-completionIcon-"+s)),i.setAttribute("aria-hidden","true"),i},position:20}),e.push({render(t,i,s,r){let o=document.createElement("span");o.className="cm-completionLabel";let u=t.displayLabel||t.label,f=0;for(let d=0;df&&o.appendChild(document.createTextNode(u.slice(f,p)));let x=o.appendChild(document.createElement("span"));x.appendChild(document.createTextNode(u.slice(p,b))),x.className="cm-completionMatchedText",f=b}return ft.position-i.position).map(t=>t.render)}function Rm(n,e,t){if(n<=t)return{from:0,to:n};if(e<0&&(e=0),e<=n>>1){let s=Math.floor(e/t);return{from:s*t,to:(s+1)*t}}let i=Math.floor((n-e)/t);return{from:n-(i+1)*t,to:n-i*t}}class dR{constructor(e,t,i){this.view=e,this.stateField=t,this.applyCompletion=i,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:f=>this.placeInfo(f),key:this},this.space=null,this.currentClass="";let s=e.state.field(t),{options:r,selected:o}=s.open,u=e.state.facet(Ot);this.optionContent=fR(u),this.optionClass=u.optionClass,this.tooltipClass=u.tooltipClass,this.range=Rm(r.length,o,u.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",f=>{let{options:d}=e.state.field(t).open;for(let p=f.target,b;p&&p!=this.dom;p=p.parentNode)if(p.nodeName=="LI"&&(b=/-(\d+)$/.exec(p.id))&&+b[1]{let d=e.state.field(this.stateField,!1);d&&d.tooltip&&e.state.facet(Ot).closeOnBlur&&f.relatedTarget!=e.contentDOM&&e.dispatch({effects:vo.of(null)})}),this.showOptions(r,s.id)}mount(){this.updateSel()}showOptions(e,t){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(e,t,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(e){var t;let i=e.state.field(this.stateField),s=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),i!=s){let{options:r,selected:o,disabled:u}=i.open;(!s.open||s.open.options!=r)&&(this.range=Rm(r.length,o,e.state.facet(Ot).maxRenderedOptions),this.showOptions(r,i.id)),this.updateSel(),u!=((t=s.open)===null||t===void 0?void 0:t.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!u)}}updateTooltipClass(e){let t=this.tooltipClass(e);if(t!=this.currentClass){for(let i of this.currentClass.split(" "))i&&this.dom.classList.remove(i);for(let i of t.split(" "))i&&this.dom.classList.add(i);this.currentClass=t}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),t=e.open;(t.selected>-1&&t.selected=this.range.to)&&(this.range=Rm(t.options.length,t.selected,this.view.state.facet(Ot).maxRenderedOptions),this.showOptions(t.options,e.id));let i=this.updateSelectedOption(t.selected);if(i){this.destroyInfo();let{completion:s}=t.options[t.selected],{info:r}=s;if(!r)return;let o=typeof r=="string"?document.createTextNode(r):r(s);if(!o)return;"then"in o?o.then(u=>{u&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(u,s)}).catch(u=>un(this.view.state,u,"completion info")):(this.addInfoPane(o,s),i.setAttribute("aria-describedby",this.info.id))}}addInfoPane(e,t){this.destroyInfo();let i=this.info=document.createElement("div");if(i.className="cm-tooltip cm-completionInfo",i.id="cm-completionInfo-"+Math.floor(Math.random()*65535).toString(16),e.nodeType!=null)i.appendChild(e),this.infoDestroy=null;else{let{dom:s,destroy:r}=e;i.appendChild(s),this.infoDestroy=r||null}this.dom.appendChild(i),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let t=null;for(let i=this.list.firstChild,s=this.range.from;i;i=i.nextSibling,s++)i.nodeName!="LI"||!i.id?s--:s==e?i.hasAttribute("aria-selected")||(i.setAttribute("aria-selected","true"),t=i):i.hasAttribute("aria-selected")&&(i.removeAttribute("aria-selected"),i.removeAttribute("aria-describedby"));return t&&pR(this.list,t),t}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let t=this.dom.getBoundingClientRect(),i=this.info.getBoundingClientRect(),s=e.getBoundingClientRect(),r=this.space;if(!r){let o=this.dom.ownerDocument.documentElement;r={left:0,top:0,right:o.clientWidth,bottom:o.clientHeight}}return s.top>Math.min(r.bottom,t.bottom)-10||s.bottom{o.target==s&&o.preventDefault()});let r=null;for(let o=i.from;oi.from||i.from==0))if(r=x,typeof d!="string"&&d.header)s.appendChild(d.header(d));else{let w=s.appendChild(document.createElement("completion-section"));w.textContent=x}}const p=s.appendChild(document.createElement("li"));p.id=t+"-"+o,p.setAttribute("role","option");let b=this.optionClass(u);b&&(p.className=b);for(let x of this.optionContent){let w=x(u,this.view.state,this.view,f);w&&p.appendChild(w)}}return i.from&&s.classList.add("cm-completionListIncompleteTop"),i.tonew dR(t,n,e)}function pR(n,e){let t=n.getBoundingClientRect(),i=e.getBoundingClientRect(),s=t.height/n.offsetHeight;i.topt.bottom&&(n.scrollTop+=(i.bottom-t.bottom)/s)}function e2(n){return(n.boost||0)*100+(n.apply?10:0)+(n.info?5:0)+(n.type?1:0)}function gR(n,e){let t=[],i=null,s=null,r=p=>{t.push(p);let{section:b}=p.completion;if(b){i||(i=[]);let x=typeof b=="string"?b:b.name;i.some(w=>w.name==x)||i.push(typeof b=="string"?{name:x}:b)}},o=e.facet(Ot);for(let p of n)if(p.hasResult()){let b=p.result.getMatch;if(p.result.filter===!1)for(let x of p.result.options)r(new Zv(x,p.source,b?b(x):[],1e9-t.length));else{let x=e.sliceDoc(p.from,p.to),w,S=o.filterStrict?new uR(x):new cR(x);for(let A of p.result.options)if(w=S.match(A.label)){let C=A.displayLabel?b?b(A,w.matched):[]:w.matched,T=w.score+(A.boost||0);if(r(new Zv(A,p.source,C,T)),typeof A.section=="object"&&A.section.rank==="dynamic"){let{name:R}=A.section;s||(s=Object.create(null)),s[R]=Math.max(T,s[R]||-1e9)}}}}if(i){let p=Object.create(null),b=0,x=(w,S)=>(w.rank==="dynamic"&&S.rank==="dynamic"?s[S.name]-s[w.name]:0)||(typeof w.rank=="number"?w.rank:1e9)-(typeof S.rank=="number"?S.rank:1e9)||(w.namex.score-b.score||d(b.completion,x.completion))){let b=p.completion;!f||f.label!=b.label||f.detail!=b.detail||f.type!=null&&b.type!=null&&f.type!=b.type||f.apply!=b.apply||f.boost!=b.boost?u.push(p):e2(p.completion)>e2(f)&&(u[u.length-1]=p),f=p.completion}return u}class ga{constructor(e,t,i,s,r,o){this.options=e,this.attrs=t,this.tooltip=i,this.timestamp=s,this.selected=r,this.disabled=o}setSelected(e,t){return e==this.selected||e>=this.options.length?this:new ga(this.options,t2(t,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,t,i,s,r,o){if(s&&!o&&e.some(d=>d.isPending))return s.setDisabled();let u=gR(e,t);if(!u.length)return s&&e.some(d=>d.isPending)?s.setDisabled():null;let f=t.facet(Ot).selectOnOpen?0:-1;if(s&&s.selected!=f&&s.selected!=-1){let d=s.options[s.selected].completion;for(let p=0;pp.hasResult()?Math.min(d,p.from):d,1e8),create:SR,above:r.aboveCursor},s?s.timestamp:Date.now(),f,!1)}map(e){return new ga(this.options,this.attrs,{...this.tooltip,pos:e.mapPos(this.tooltip.pos)},this.timestamp,this.selected,this.disabled)}setDisabled(){return new ga(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}}class oh{constructor(e,t,i){this.active=e,this.id=t,this.open=i}static start(){return new oh(vR,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:t}=e,i=t.facet(Ot),r=(i.override||t.languageDataAt("autocomplete",ps(t)).map(oR)).map(f=>(this.active.find(p=>p.source==f)||new Vn(f,this.active.some(p=>p.state!=0)?1:0)).update(e,i));r.length==this.active.length&&r.every((f,d)=>f==this.active[d])&&(r=this.active);let o=this.open,u=e.effects.some(f=>f.is(Vg));o&&e.docChanged&&(o=o.map(e.changes)),e.selection||r.some(f=>f.hasResult()&&e.changes.touchesRange(f.from,f.to))||!yR(r,this.active)||u?o=ga.build(r,t,this.id,o,i,u):o&&o.disabled&&!r.some(f=>f.isPending)&&(o=null),!o&&r.every(f=>!f.isPending)&&r.some(f=>f.hasResult())&&(r=r.map(f=>f.hasResult()?new Vn(f.source,0):f));for(let f of e.effects)f.is(Fk)&&(o=o&&o.setSelected(f.value,this.id));return r==this.active&&o==this.open?this:new oh(r,this.id,o)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?bR:xR}}function yR(n,e){if(n==e)return!0;for(let t=0,i=0;;){for(;t-1&&(t["aria-activedescendant"]=n+"-"+e),t}const vR=[];function Wk(n,e){if(n.isUserEvent("input.complete")){let i=n.annotation(Yk);if(i&&e.activateOnCompletion(i))return 12}let t=n.isUserEvent("input.type");return t&&e.activateOnTyping?5:t?1:n.isUserEvent("delete.backward")?2:n.selection?8:n.docChanged?16:0}class Vn{constructor(e,t,i=!1){this.source=e,this.state=t,this.explicit=i}hasResult(){return!1}get isPending(){return this.state==1}update(e,t){let i=Wk(e,t),s=this;(i&8||i&16&&this.touches(e))&&(s=new Vn(s.source,0)),i&4&&s.state==0&&(s=new Vn(this.source,1)),s=s.updateFor(e,i);for(let r of e.effects)if(r.is(rh))s=new Vn(s.source,1,r.value);else if(r.is(vo))s=new Vn(s.source,0);else if(r.is(Vg))for(let o of r.value)o.source==s.source&&(s=o);return s}updateFor(e,t){return this.map(e.changes)}map(e){return this}touches(e){return e.changes.touchesRange(ps(e.state))}}class ka extends Vn{constructor(e,t,i,s,r,o){super(e,3,t),this.limit=i,this.result=s,this.from=r,this.to=o}hasResult(){return!0}updateFor(e,t){var i;if(!(t&3))return this.map(e.changes);let s=this.result;s.map&&!e.changes.empty&&(s=s.map(s,e.changes));let r=e.changes.mapPos(this.from),o=e.changes.mapPos(this.to,1),u=ps(e.state);if(u>o||!s||t&2&&(ps(e.startState)==this.from||ut.map(e))}}),Fk=Me.define(),on=It.define({create(){return oh.start()},update(n,e){return n.update(e)},provide:n=>[Ag.from(n,e=>e.tooltip),re.contentAttributes.from(n,e=>e.attrs)]});function Ug(n,e){const t=e.completion.apply||e.completion.label;let i=n.state.field(on).active.find(s=>s.source==e.source);return i instanceof ka?(typeof t=="string"?n.dispatch({...rR(n.state,t,i.from,i.to),annotations:Yk.of(e.completion)}):t(n,e.completion,i.from,i.to),!0):!1}const SR=mR(on,Ug);function ku(n,e="option"){return t=>{let i=t.state.field(on,!1);if(!i||!i.open||i.open.disabled||Date.now()-i.open.timestamp-1?i.open.selected+s*(n?1:-1):n?0:o-1;return u<0?u=e=="page"?0:o-1:u>=o&&(u=e=="page"?o-1:0),t.dispatch({effects:Fk.of(u)}),!0}}const kR=n=>{let e=n.state.field(on,!1);return n.state.readOnly||!e||!e.open||e.open.selected<0||e.open.disabled||Date.now()-e.open.timestampn.state.field(on,!1)?(n.dispatch({effects:rh.of(!0)}),!0):!1,CR=n=>{let e=n.state.field(on,!1);return!e||!e.active.some(t=>t.state!=0)?!1:(n.dispatch({effects:vo.of(null)}),!0)};class AR{constructor(e,t){this.active=e,this.context=t,this.time=Date.now(),this.updates=[],this.done=void 0}}const MR=50,TR=1e3,NR=ft.fromClass(class{constructor(n){this.view=n,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let e of n.state.field(on).active)e.isPending&&this.startQuery(e)}update(n){let e=n.state.field(on),t=n.state.facet(Ot);if(!n.selectionSet&&!n.docChanged&&n.startState.field(on)==e)return;let i=n.transactions.some(r=>{let o=Wk(r,t);return o&8||(r.selection||r.docChanged)&&!(o&3)});for(let r=0;rMR&&Date.now()-o.time>TR){for(let u of o.context.abortListeners)try{u()}catch(f){un(this.view.state,f)}o.context.abortListeners=null,this.running.splice(r--,1)}else o.updates.push(...n.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),n.transactions.some(r=>r.effects.some(o=>o.is(rh)))&&(this.pendingStart=!0);let s=this.pendingStart?50:t.activateOnTypingDelay;if(this.debounceUpdate=e.active.some(r=>r.isPending&&!this.running.some(o=>o.active.source==r.source))?setTimeout(()=>this.startUpdate(),s):-1,this.composing!=0)for(let r of n.transactions)r.isUserEvent("input.type")?this.composing=2:this.composing==2&&r.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:n}=this.view,e=n.field(on);for(let t of e.active)t.isPending&&!this.running.some(i=>i.active.source==t.source)&&this.startQuery(t);this.running.length&&e.open&&e.open.disabled&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(Ot).updateSyncTime))}startQuery(n){let{state:e}=this.view,t=ps(e),i=new Gk(e,t,n.explicit,this.view),s=new AR(n,i);this.running.push(s),Promise.resolve(n.source(i)).then(r=>{s.context.aborted||(s.done=r||null,this.scheduleAccept())},r=>{this.view.dispatch({effects:vo.of(null)}),un(this.view.state,r)})}scheduleAccept(){this.running.every(n=>n.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(Ot).updateSyncTime))}accept(){var n;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],t=this.view.state.facet(Ot),i=this.view.state.field(on);for(let s=0;su.source==r.active.source);if(o&&o.isPending)if(r.done==null){let u=new Vn(r.active.source,0);for(let f of r.updates)u=u.update(f,t);u.isPending||e.push(u)}else this.startQuery(o)}(e.length||i.open&&i.open.disabled)&&this.view.dispatch({effects:Vg.of(e)})}},{eventHandlers:{blur(n){let e=this.view.state.field(on,!1);if(e&&e.tooltip&&this.view.state.facet(Ot).closeOnBlur){let t=e.open&&MS(this.view,e.open.tooltip);(!t||!t.dom.contains(n.relatedTarget))&&setTimeout(()=>this.view.dispatch({effects:vo.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:rh.of(!1)}),20),this.composing=0}}}),ER=typeof navigator=="object"&&/Win/.test(navigator.platform),DR=Ss.highest(re.domEventHandlers({keydown(n,e){let t=e.state.field(on,!1);if(!t||!t.open||t.open.disabled||t.open.selected<0||n.key.length>1||n.ctrlKey&&!(ER&&n.altKey)||n.metaKey)return!1;let i=t.open.options[t.open.selected],s=t.active.find(o=>o.source==i.source),r=i.completion.commitCharacters||s.result.commitCharacters;return r&&r.indexOf(n.key)>-1&&Ug(e,i),!1}})),OR=re.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}}),wo={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},ds=Me.define({map(n,e){let t=e.mapPos(n,-1,Qt.TrackAfter);return t??void 0}}),qg=new class extends Ol{};qg.startSide=1;qg.endSide=-1;const Xk=It.define({create(){return je.empty},update(n,e){if(n=n.map(e.changes),e.selection){let t=e.state.doc.lineAt(e.selection.main.head);n=n.update({filter:i=>i>=t.from&&i<=t.to})}for(let t of e.effects)t.is(ds)&&(n=n.update({add:[qg.range(t.value,t.value+1)]}));return n}});function jR(){return[_R,Xk]}const Lm="()[]{}<>«»»«[]{}";function Qk(n){for(let e=0;e{if((RR?n.composing:n.compositionStarted)||n.state.readOnly)return!1;let s=n.state.selection.main;if(i.length>2||i.length==2&&mi(rn(i,0))==1||e!=s.from||t!=s.to)return!1;let r=zR(n.state,i);return r?(n.dispatch(r),!0):!1}),LR=({state:n,dispatch:e})=>{if(n.readOnly)return!1;let i=Zk(n,n.selection.main.head).brackets||wo.brackets,s=null,r=n.changeByRange(o=>{if(o.empty){let u=HR(n.doc,o.head);for(let f of i)if(f==u&&Oh(n.doc,o.head)==Qk(rn(f,0)))return{changes:{from:o.head-f.length,to:o.head+f.length},range:X.cursor(o.head-f.length)}}return{range:s=o}});return s||e(n.update(r,{scrollIntoView:!0,userEvent:"delete.backward"})),!s},BR=[{key:"Backspace",run:LR}];function zR(n,e){let t=Zk(n,n.selection.main.head),i=t.brackets||wo.brackets;for(let s of i){let r=Qk(rn(s,0));if(e==s)return r==s?qR(n,s,i.indexOf(s+s+s)>-1,t):VR(n,s,r,t.before||wo.before);if(e==r&&$k(n,n.selection.main.from))return UR(n,s,r)}return null}function $k(n,e){let t=!1;return n.field(Xk).between(0,n.doc.length,i=>{i==e&&(t=!0)}),t}function Oh(n,e){let t=n.sliceString(e,e+2);return t.slice(0,mi(rn(t,0)))}function HR(n,e){let t=n.sliceString(e-2,e);return mi(rn(t,0))==t.length?t:t.slice(1)}function VR(n,e,t,i){let s=null,r=n.changeByRange(o=>{if(!o.empty)return{changes:[{insert:e,from:o.from},{insert:t,from:o.to}],effects:ds.of(o.to+e.length),range:X.range(o.anchor+e.length,o.head+e.length)};let u=Oh(n.doc,o.head);return!u||/\s/.test(u)||i.indexOf(u)>-1?{changes:{insert:e+t,from:o.head},effects:ds.of(o.head+e.length),range:X.cursor(o.head+e.length)}:{range:s=o}});return s?null:n.update(r,{scrollIntoView:!0,userEvent:"input.type"})}function UR(n,e,t){let i=null,s=n.changeByRange(r=>r.empty&&Oh(n.doc,r.head)==t?{changes:{from:r.head,to:r.head+t.length,insert:t},range:X.cursor(r.head+t.length)}:i={range:r});return i?null:n.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function qR(n,e,t,i){let s=i.stringPrefixes||wo.stringPrefixes,r=null,o=n.changeByRange(u=>{if(!u.empty)return{changes:[{insert:e,from:u.from},{insert:e,from:u.to}],effects:ds.of(u.to+e.length),range:X.range(u.anchor+e.length,u.head+e.length)};let f=u.head,d=Oh(n.doc,f),p;if(d==e){if(n2(n,f))return{changes:{insert:e+e,from:f},effects:ds.of(f+e.length),range:X.cursor(f+e.length)};if($k(n,f)){let x=t&&n.sliceDoc(f,f+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:f,to:f+x.length,insert:x},range:X.cursor(f+x.length)}}}else{if(t&&n.sliceDoc(f-2*e.length,f)==e+e&&(p=i2(n,f-2*e.length,s))>-1&&n2(n,p))return{changes:{insert:e+e+e+e,from:f},effects:ds.of(f+e.length),range:X.cursor(f+e.length)};if(n.charCategorizer(f)(d)!=at.Word&&i2(n,f,s)>-1&&!PR(n,f,e,s))return{changes:{insert:e+e,from:f},effects:ds.of(f+e.length),range:X.cursor(f+e.length)}}return{range:r=u}});return r?null:n.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function n2(n,e){let t=Gt(n).resolveInner(e+1);return t.parent&&t.from==e}function PR(n,e,t,i){let s=Gt(n).resolveInner(e,-1),r=i.reduce((o,u)=>Math.max(o,u.length),0);for(let o=0;o<5;o++){let u=n.sliceDoc(s.from,Math.min(s.to,s.from+t.length+r)),f=u.indexOf(t);if(!f||f>-1&&i.indexOf(u.slice(0,f))>-1){let p=s.firstChild;for(;p&&p.from==s.from&&p.to-p.from>t.length+f;){if(n.sliceDoc(p.to-t.length,p.to)==t)return!1;p=p.firstChild}return!0}let d=s.to==e&&s.parent;if(!d)break;s=d}return!1}function i2(n,e,t){let i=n.charCategorizer(e);if(i(n.sliceDoc(e-1,e))!=at.Word)return e;for(let s of t){let r=e-s.length;if(n.sliceDoc(r,e)==s&&i(n.sliceDoc(r-1,r))!=at.Word)return r}return-1}function KR(n={}){return[DR,on,Ot.of(n),NR,GR,OR]}const Jk=[{key:"Ctrl-Space",run:_m},{mac:"Alt-`",run:_m},{mac:"Alt-i",run:_m},{key:"Escape",run:CR},{key:"ArrowDown",run:ku(!0)},{key:"ArrowUp",run:ku(!1)},{key:"PageDown",run:ku(!0,"page")},{key:"PageUp",run:ku(!1,"page")},{key:"Enter",run:kR}],GR=Ss.highest(Sh.computeN([Ot],n=>n.facet(Ot).defaultKeymap?[Jk]:[]));class l2{constructor(e,t,i){this.from=e,this.to=t,this.diagnostic=i}}class us{constructor(e,t,i){this.diagnostics=e,this.panel=t,this.selected=i}static init(e,t,i){let s=i.facet(So).markerFilter;s&&(e=s(e,i));let r=e.slice().sort((w,S)=>w.from-S.from||w.to-S.to),o=new Fi,u=[],f=0,d=i.doc.iter(),p=0,b=i.doc.length;for(let w=0;;){let S=w==r.length?null:r[w];if(!S&&!u.length)break;let A,C;if(u.length)A=f,C=u.reduce((E,q)=>Math.min(E,q.to),S&&S.from>A?S.from:1e8);else{if(A=S.from,A>b)break;C=S.to,u.push(S),w++}for(;wE.from||E.to==A))u.push(E),w++,C=Math.min(E.to,C);else{C=Math.min(E.from,C);break}}C=Math.min(C,b);let T=!1;if(u.some(E=>E.from==A&&(E.to==C||C==b))&&(T=A==C,!T&&C-A<10)){let E=A-(p+d.value.length);E>0&&(d.next(E),p=A);for(let q=A;;){if(q>=C){T=!0;break}if(!d.lineBreak&&p+d.value.length>q)break;q=p+d.value.length,p+=d.value.length,d.next()}}let R=i6(u);if(T)o.add(A,A,we.widget({widget:new JR(R),diagnostics:u.slice()}));else{let E=u.reduce((q,B)=>B.markClass?q+" "+B.markClass:q,"");o.add(A,C,we.mark({class:"cm-lintRange cm-lintRange-"+R+E,diagnostics:u.slice(),inclusiveEnd:u.some(q=>q.to>C)}))}if(f=C,f==b)break;for(let E=0;E{if(!(e&&o.diagnostics.indexOf(e)<0))if(!i)i=new l2(s,r,e||o.diagnostics[0]);else{if(o.diagnostics.indexOf(i.diagnostic)<0)return!1;i=new l2(i.from,r,i.diagnostic)}}),i}function IR(n,e){let t=e.pos,i=e.end||t,s=n.state.facet(So).hideOn(n,t,i);if(s!=null)return s;let r=n.startState.doc.lineAt(e.pos);return!!(n.effects.some(o=>o.is(eC))||n.changes.touchesRange(r.from,Math.max(r.to,i)))}function YR(n,e){return n.field(Cn,!1)?e:e.concat(Me.appendConfig.of(l6))}const eC=Me.define(),Pg=Me.define(),tC=Me.define(),Cn=It.define({create(){return new us(we.none,null,null)},update(n,e){if(e.docChanged&&n.diagnostics.size){let t=n.diagnostics.map(e.changes),i=null,s=n.panel;if(n.selected){let r=e.changes.mapPos(n.selected.from,1);i=Bl(t,n.selected.diagnostic,r)||Bl(t,null,r)}!t.size&&s&&e.state.facet(So).autoPanel&&(s=null),n=new us(t,s,i)}for(let t of e.effects)if(t.is(eC)){let i=e.state.facet(So).autoPanel?t.value.length?ko.open:null:n.panel;n=us.init(t.value,i,e.state)}else t.is(Pg)?n=new us(n.diagnostics,t.value?ko.open:null,n.selected):t.is(tC)&&(n=new us(n.diagnostics,n.panel,t.value));return n},provide:n=>[po.from(n,e=>e.panel),re.decorations.from(n,e=>e.diagnostics)]}),WR=we.mark({class:"cm-lintRange cm-lintRange-active"});function FR(n,e,t){let{diagnostics:i}=n.state.field(Cn),s,r=-1,o=-1;i.between(e-(t<0?1:0),e+(t>0?1:0),(f,d,{spec:p})=>{if(e>=f&&e<=d&&(f==d||(e>f||t>0)&&(eiC(n,t,!1)))}const QR=n=>{let e=n.state.field(Cn,!1);(!e||!e.panel)&&n.dispatch({effects:YR(n.state,[Pg.of(!0)])});let t=Mg(n,ko.open);return t&&t.dom.querySelector(".cm-panel-lint ul").focus(),!0},s2=n=>{let e=n.state.field(Cn,!1);return!e||!e.panel?!1:(n.dispatch({effects:Pg.of(!1)}),!0)},ZR=n=>{let e=n.state.field(Cn,!1);if(!e)return!1;let t=n.state.selection.main,i=Bl(e.diagnostics,null,t.to+1);return!i&&(i=Bl(e.diagnostics,null,0),!i||i.from==t.from&&i.to==t.to)?!1:(n.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0}),!0)},$R=[{key:"Mod-Shift-m",run:QR,preventDefault:!0},{key:"F8",run:ZR}],So=ce.define({combine(n){return{sources:n.map(e=>e.source).filter(e=>e!=null),...Si(n.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:a2,tooltipFilter:a2,needsRefresh:(e,t)=>e?t?i=>e(i)||t(i):e:t,hideOn:(e,t)=>e?t?(i,s,r)=>e(i,s,r)||t(i,s,r):e:t,autoPanel:(e,t)=>e||t})}}});function a2(n,e){return n?e?(t,i)=>e(n(t,i),i):n:e}function nC(n){let e=[];if(n)e:for(let{name:t}of n){for(let i=0;ir.toLowerCase()==s.toLowerCase())){e.push(s);continue e}}e.push("")}return e}function iC(n,e,t){var i;let s=t?nC(e.actions):[];return Qe("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},Qe("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage(n):e.message),(i=e.actions)===null||i===void 0?void 0:i.map((r,o)=>{let u=!1,f=w=>{if(w.preventDefault(),u)return;u=!0;let S=Bl(n.state.field(Cn).diagnostics,e);S&&r.apply(n,S.from,S.to)},{name:d}=r,p=s[o]?d.indexOf(s[o]):-1,b=p<0?d:[d.slice(0,p),Qe("u",d.slice(p,p+1)),d.slice(p+1)],x=r.markClass?" "+r.markClass:"";return Qe("button",{type:"button",class:"cm-diagnosticAction"+x,onclick:f,onmousedown:f,"aria-label":` Action: ${d}${p<0?"":` (access key "${s[o]})"`}.`},b)}),e.source&&Qe("div",{class:"cm-diagnosticSource"},e.source))}class JR extends ki{constructor(e){super(),this.sev=e}eq(e){return e.sev==this.sev}toDOM(){return Qe("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}}class r2{constructor(e,t){this.diagnostic=t,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=iC(e,t,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class ko{constructor(e){this.view=e,this.items=[];let t=s=>{if(!(s.ctrlKey||s.altKey||s.metaKey)){if(s.keyCode==27)s2(this.view),this.view.focus();else if(s.keyCode==38||s.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(s.keyCode==40||s.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(s.keyCode==36)this.moveSelection(0);else if(s.keyCode==35)this.moveSelection(this.items.length-1);else if(s.keyCode==13)this.view.focus();else if(s.keyCode>=65&&s.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:r}=this.items[this.selectedIndex],o=nC(r.actions);for(let u=0;u{for(let r=0;rs2(this.view)},"×")),this.update()}get selectedIndex(){let e=this.view.state.field(Cn).selected;if(!e)return-1;for(let t=0;t{for(let p of d.diagnostics){if(o.has(p))continue;o.add(p);let b=-1,x;for(let w=i;wi&&(this.items.splice(i,b-i),s=!0)),t&&x.diagnostic==t.diagnostic?x.dom.hasAttribute("aria-selected")||(x.dom.setAttribute("aria-selected","true"),r=x):x.dom.hasAttribute("aria-selected")&&x.dom.removeAttribute("aria-selected"),i++}});i({sel:r.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:u,panel:f})=>{let d=f.height/this.list.offsetHeight;u.topf.bottom&&(this.list.scrollTop+=(u.bottom-f.bottom)/d)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),s&&this.sync()}sync(){let e=this.list.firstChild;function t(){let i=e;e=i.nextSibling,i.remove()}for(let i of this.items)if(i.dom.parentNode==this.list){for(;e!=i.dom;)t();e=i.dom.nextSibling}else this.list.insertBefore(i.dom,e);for(;e;)t()}moveSelection(e){if(this.selectedIndex<0)return;let t=this.view.state.field(Cn),i=Bl(t.diagnostics,this.items[e].diagnostic);i&&this.view.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0,effects:tC.of(i)})}static open(e){return new ko(e)}}function e6(n,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,${encodeURIComponent(n)}')`}function Cu(n){return e6(``,'width="6" height="3"')}const t6=re.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:Cu("#d11")},".cm-lintRange-warning":{backgroundImage:Cu("orange")},".cm-lintRange-info":{backgroundImage:Cu("#999")},".cm-lintRange-hint":{backgroundImage:Cu("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}});function n6(n){return n=="error"?4:n=="warning"?3:n=="info"?2:1}function i6(n){let e="hint",t=1;for(let i of n){let s=n6(i.severity);s>t&&(t=s,e=i.severity)}return e}const l6=[Cn,re.decorations.compute([Cn],n=>{let{selected:e,panel:t}=n.field(Cn);return!e||!t||e.from==e.to?we.none:we.set([WR.range(e.from,e.to)])}),HD(FR,{hideOn:IR}),t6];var o2=function(e){e===void 0&&(e={});var{crosshairCursor:t=!1}=e,i=[];e.closeBracketsKeymap!==!1&&(i=i.concat(BR)),e.defaultKeymap!==!1&&(i=i.concat(Nj)),e.searchKeymap!==!1&&(i=i.concat(tR)),e.historyKeymap!==!1&&(i=i.concat(L8)),e.foldKeymap!==!1&&(i=i.concat(RO)),e.completionKeymap!==!1&&(i=i.concat(Jk)),e.lintKeymap!==!1&&(i=i.concat($R));var s=[];return e.lineNumbers!==!1&&s.push(ZD()),e.highlightActiveLineGutter!==!1&&s.push(eO()),e.highlightSpecialChars!==!1&&s.push(dD()),e.history!==!1&&s.push(M8()),e.foldGutter!==!1&&s.push(zO()),e.drawSelection!==!1&&s.push(nD()),e.dropCursor!==!1&&s.push(rD()),e.allowMultipleSelections!==!1&&s.push(ze.allowMultipleSelections.of(!0)),e.indentOnInput!==!1&&s.push(kO()),e.syntaxHighlighting!==!1&&s.push(IS(qO,{fallback:!0})),e.bracketMatching!==!1&&s.push(FO()),e.closeBrackets!==!1&&s.push(jR()),e.autocompletion!==!1&&s.push(KR()),e.rectangularSelection!==!1&&s.push(TD()),t!==!1&&s.push(DD()),e.highlightActiveLine!==!1&&s.push(xD()),e.highlightSelectionMatches!==!1&&s.push(_j()),e.tabSize&&typeof e.tabSize=="number"&&s.push(Ch.of(" ".repeat(e.tabSize))),s.concat([Sh.of(i.flat())]).filter(Boolean)},s6=re.theme({"&":{backgroundColor:"#fff"}},{dark:!1}),a6=function(e){e===void 0&&(e={});var{indentWithTab:t=!0,editable:i=!0,readOnly:s=!1,theme:r="light",placeholder:o="",basicSetup:u=!0}=e,f=[];switch(t&&f.unshift(Sh.of([Ej])),u&&(typeof u=="boolean"?f.unshift(o2()):f.unshift(o2(u))),o&&f.unshift(kD(o)),r){case"light":f.push(s6);break;case"dark":f.push(tk);break;case"none":break;default:f.push(r);break}return i===!1&&f.push(re.editable.of(!1)),s&&f.push(ze.readOnly.of(!0)),[...f]},r6=n=>({line:n.state.doc.lineAt(n.state.selection.main.from),lineCount:n.state.doc.lines,lineBreak:n.state.lineBreak,length:n.state.doc.length,readOnly:n.state.readOnly,tabSize:n.state.tabSize,selection:n.state.selection,selectionAsSingle:n.state.selection.asSingle().main,ranges:n.state.selection.ranges,selectionCode:n.state.sliceDoc(n.state.selection.main.from,n.state.selection.main.to),selections:n.state.selection.ranges.map(e=>n.state.sliceDoc(e.from,e.to)),selectedText:n.state.selection.ranges.some(e=>!e.empty)});class o6{constructor(e,t){this.timeLeftMS=void 0,this.timeoutMS=void 0,this.isCancelled=!1,this.isTimeExhausted=!1,this.callbacks=[],this.timeLeftMS=t,this.timeoutMS=t,this.callbacks.push(e)}tick(){if(!this.isCancelled&&!this.isTimeExhausted&&(this.timeLeftMS--,this.timeLeftMS<=0)){this.isTimeExhausted=!0;var e=this.callbacks.slice();this.callbacks.length=0,e.forEach(t=>{try{t()}catch(i){console.error("TimeoutLatch callback error:",i)}})}}cancel(){this.isCancelled=!0,this.callbacks.length=0}reset(){this.timeLeftMS=this.timeoutMS,this.isCancelled=!1,this.isTimeExhausted=!1}get isDone(){return this.isCancelled||this.isTimeExhausted}}class c2{constructor(){this.interval=null,this.latches=new Set}add(e){this.latches.add(e),this.start()}remove(e){this.latches.delete(e),this.latches.size===0&&this.stop()}start(){this.interval===null&&(this.interval=setInterval(()=>{this.latches.forEach(e=>{e.tick(),e.isDone&&this.remove(e)})},1))}stop(){this.interval!==null&&(clearInterval(this.interval),this.interval=null)}}var Bm=null,c6=()=>typeof window>"u"?new c2:(Bm||(Bm=new c2),Bm),u2=wi.define(),u6=200,h6=[];function f6(n){var{value:e,selection:t,onChange:i,onStatistics:s,onCreateEditor:r,onUpdate:o,extensions:u=h6,autoFocus:f,theme:d="light",height:p=null,minHeight:b=null,maxHeight:x=null,width:w=null,minWidth:S=null,maxWidth:A=null,placeholder:C="",editable:T=!0,readOnly:R=!1,indentWithTab:E=!0,basicSetup:q=!0,root:B,initialState:I}=n,[V,Q]=M.useState(),[Z,ue]=M.useState(),[fe,ne]=M.useState(),pe=M.useState(()=>({current:null}))[0],J=M.useState(()=>({current:null}))[0],ve=re.theme({"&":{height:p,minHeight:b,maxHeight:x,width:w,minWidth:S,maxWidth:A},"& .cm-scroller":{height:"100% !important"}}),z=re.updateListener.of(ie=>{if(ie.docChanged&&typeof i=="function"&&!ie.transactions.some(P=>P.annotation(u2))){pe.current?pe.current.reset():(pe.current=new o6(()=>{if(J.current){var P=J.current;J.current=null,P()}pe.current=null},u6),c6().add(pe.current));var ge=ie.state.doc,D=ge.toString();i(D,ie)}s&&s(r6(ie))}),K=a6({theme:d,editable:T,readOnly:R,placeholder:C,indentWithTab:E,basicSetup:q}),$=[z,ve,...K];return o&&typeof o=="function"&&$.push(re.updateListener.of(o)),$=$.concat(u),M.useLayoutEffect(()=>{if(V&&!fe){var ie={doc:e,selection:t,extensions:$},ge=I?ze.fromJSON(I.json,ie,I.fields):ze.create(ie);if(ne(ge),!Z){var D=new re({state:ge,parent:V,root:B});ue(D),r&&r(D,ge)}}return()=>{Z&&(ne(void 0),ue(void 0))}},[V,fe]),M.useEffect(()=>{n.container&&Q(n.container)},[n.container]),M.useEffect(()=>()=>{Z&&(Z.destroy(),ue(void 0)),pe.current&&(pe.current.cancel(),pe.current=null)},[Z]),M.useEffect(()=>{f&&Z&&Z.focus()},[f,Z]),M.useEffect(()=>{Z&&Z.dispatch({effects:Me.reconfigure.of($)})},[d,u,p,b,x,w,S,A,C,T,R,E,q,i,o]),M.useEffect(()=>{if(e!==void 0){var ie=Z?Z.state.doc.toString():"";if(Z&&e!==ie){var ge=pe.current&&!pe.current.isDone,D=()=>{Z&&e!==Z.state.doc.toString()&&Z.dispatch({changes:{from:0,to:Z.state.doc.toString().length,insert:e||""},annotations:[u2.of(!0)]})};ge?J.current=D:D()}}},[e,Z]),{state:fe,setState:ne,view:Z,setView:ue,container:V,setContainer:Q}}var d6=["className","value","selection","extensions","onChange","onStatistics","onCreateEditor","onUpdate","autoFocus","theme","height","minHeight","maxHeight","width","minWidth","maxWidth","basicSetup","placeholder","indentWithTab","editable","readOnly","root","initialState"],lC=M.forwardRef((n,e)=>{var{className:t,value:i="",selection:s,extensions:r=[],onChange:o,onStatistics:u,onCreateEditor:f,onUpdate:d,autoFocus:p,theme:b="light",height:x,minHeight:w,maxHeight:S,width:A,minWidth:C,maxWidth:T,basicSetup:R,placeholder:E,indentWithTab:q,editable:B,readOnly:I,root:V,initialState:Q}=n,Z=g8(n,d6),ue=M.useRef(null),{state:fe,view:ne,container:pe,setContainer:J}=f6({root:V,value:i,autoFocus:p,theme:b,height:x,minHeight:w,maxHeight:S,width:A,minWidth:C,maxWidth:T,basicSetup:R,placeholder:E,indentWithTab:q,editable:B,readOnly:I,selection:s,onChange:o,onStatistics:u,onCreateEditor:f,onUpdate:d,extensions:r,initialState:Q});M.useImperativeHandle(e,()=>({editor:ue.current,state:fe,view:ne}),[ue,pe,fe,ne]);var ve=M.useCallback(K=>{ue.current=K,J(K)},[J]);if(typeof i!="string")throw new Error("value must be typeof string but got "+typeof i);var z=typeof b=="string"?"cm-theme-"+b:"cm-theme";return y.jsx("div",Rp({ref:ve,className:""+z+(t?" "+t:"")},Z))});lC.displayName="CodeMirror";const m6=Eg.define(p8);function p6({rawToml:n,onChange:e,disabled:t}){return y.jsxs("div",{className:"bg-gray-900 rounded-xl border border-gray-800 overflow-hidden",children:[y.jsxs("div",{className:"flex items-center justify-between px-4 py-2 border-b border-gray-800 bg-gray-800/50",children:[y.jsx("span",{className:"text-xs text-gray-400 font-medium uppercase tracking-wider",children:"TOML Configuration"}),y.jsxs("span",{className:"text-xs text-gray-500",children:[n.split(` +`).length," lines"]})]}),y.jsx(lC,{value:n,onChange:e,theme:tk,readOnly:!!t,editable:!t,height:"500px",basicSetup:{lineNumbers:!0,foldGutter:!1,highlightActiveLineGutter:!1,highlightActiveLine:!1},extensions:[m6,re.lineWrapping],className:"text-sm [&_.cm-scroller]:font-mono [&_.cm-scroller]:leading-6 [&_.cm-content]:py-4 [&_.cm-content]:px-0 [&_.cm-gutters]:border-r [&_.cm-gutters]:border-gray-800 [&_.cm-gutters]:bg-gray-950 [&_.cm-editor]:bg-gray-950 [&_.cm-editor]:focus:outline-none [&_.cm-focused]:ring-2 [&_.cm-focused]:ring-blue-500/70 [&_.cm-focused]:ring-inset","aria-label":"Raw TOML configuration editor with syntax highlighting"})]})}function h2({mode:n,active:e,icon:t,label:i,onClick:s}){return y.jsxs("button",{onClick:s,className:`flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-sm font-medium transition-colors ${e?"bg-blue-600 text-white":"text-gray-400 hover:text-gray-200 hover:bg-gray-800"}`,"aria-pressed":e,"data-mode":n,children:[y.jsx(t,{className:"h-3.5 w-3.5"}),i]})}function g6(){const{loading:n,saving:e,error:t,success:i,mode:s,rawToml:r,setMode:o,getFieldValue:u,setFieldValue:f,isFieldMasked:d,setRawToml:p,save:b}=MN();return n?y.jsx("div",{className:"flex items-center justify-center h-64",children:y.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-2 border-blue-500 border-t-transparent"})}):y.jsxs("div",{className:"p-6 space-y-6",children:[y.jsxs("div",{className:"flex items-center justify-between",children:[y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx(Zp,{className:"h-5 w-5 text-blue-400"}),y.jsx("h2",{className:"text-base font-semibold text-white",children:"Configuration"})]}),y.jsxs("div",{className:"flex items-center gap-3",children:[y.jsxs("div",{className:"flex items-center gap-1 bg-gray-900 border border-gray-800 rounded-lg p-0.5",children:[y.jsx(h2,{mode:"form",active:s==="form",icon:X3,label:"Form",onClick:()=>o("form")}),y.jsx(h2,{mode:"raw",active:s==="raw",icon:H2,label:"Raw",onClick:()=>o("raw")})]}),y.jsxs("button",{onClick:b,disabled:e,className:"flex items-center gap-2 bg-blue-600 hover:bg-blue-700 text-white text-sm font-medium px-4 py-2 rounded-lg transition-colors disabled:opacity-50",children:[y.jsx(I3,{className:"h-4 w-4"}),e?"Saving...":"Save"]})]})]}),y.jsxs("div",{className:"flex items-start gap-3 bg-yellow-900/20 border border-yellow-700/40 rounded-lg p-4",children:[y.jsx(W3,{className:"h-5 w-5 text-yellow-400 flex-shrink-0 mt-0.5"}),y.jsxs("div",{children:[y.jsx("p",{className:"text-sm text-yellow-300 font-medium",children:"Sensitive fields are masked"}),y.jsx("p",{className:"text-sm text-yellow-400/70 mt-0.5",children:s==="form"?'Masked fields show "Configured (masked)" as a placeholder. Leave them untouched to preserve existing values, or enter a new value to update.':"API keys, tokens, and passwords are hidden for security. To update a masked field, replace the entire masked value with your new value."})]})]}),i&&y.jsxs("div",{className:"flex items-center gap-2 bg-green-900/30 border border-green-700 rounded-lg p-3",children:[y.jsx(fh,{className:"h-4 w-4 text-green-400 flex-shrink-0"}),y.jsx("span",{className:"text-sm text-green-300",children:i})]}),t&&y.jsxs("div",{className:"flex items-center gap-2 bg-red-900/30 border border-red-700 rounded-lg p-3",children:[y.jsx(Jp,{className:"h-4 w-4 text-red-400 flex-shrink-0"}),y.jsx("span",{className:"text-sm text-red-300",children:t})]}),s==="form"?y.jsx(_N,{getFieldValue:u,setFieldValue:f,isFieldMasked:d}):y.jsx(p6,{rawToml:r,onChange:p,disabled:e})]})}function Pr(n){return`$${n.toFixed(4)}`}function y6(){const[n,e]=M.useState(null),[t,i]=M.useState(!0),[s,r]=M.useState(null);if(M.useEffect(()=>{J2().then(e).catch(u=>r(u.message)).finally(()=>i(!1))},[]),s)return y.jsx("div",{className:"p-6",children:y.jsxs("div",{className:"rounded-lg bg-red-900/30 border border-red-700 p-4 text-red-300",children:["Failed to load cost data: ",s]})});if(t||!n)return y.jsx("div",{className:"flex items-center justify-center h-64",children:y.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-2 border-blue-500 border-t-transparent"})});const o=Object.values(n.by_model);return y.jsxs("div",{className:"p-6 space-y-6",children:[y.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4",children:[y.jsxs("div",{className:"bg-gray-900 rounded-xl p-5 border border-gray-800",children:[y.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[y.jsx("div",{className:"p-2 bg-blue-600/20 rounded-lg",children:y.jsx(dh,{className:"h-5 w-5 text-blue-400"})}),y.jsx("span",{className:"text-sm text-gray-400",children:"Session Cost"})]}),y.jsx("p",{className:"text-2xl font-bold text-white",children:Pr(n.session_cost_usd)})]}),y.jsxs("div",{className:"bg-gray-900 rounded-xl p-5 border border-gray-800",children:[y.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[y.jsx("div",{className:"p-2 bg-green-600/20 rounded-lg",children:y.jsx(J3,{className:"h-5 w-5 text-green-400"})}),y.jsx("span",{className:"text-sm text-gray-400",children:"Daily Cost"})]}),y.jsx("p",{className:"text-2xl font-bold text-white",children:Pr(n.daily_cost_usd)})]}),y.jsxs("div",{className:"bg-gray-900 rounded-xl p-5 border border-gray-800",children:[y.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[y.jsx("div",{className:"p-2 bg-purple-600/20 rounded-lg",children:y.jsx(j3,{className:"h-5 w-5 text-purple-400"})}),y.jsx("span",{className:"text-sm text-gray-400",children:"Monthly Cost"})]}),y.jsx("p",{className:"text-2xl font-bold text-white",children:Pr(n.monthly_cost_usd)})]}),y.jsxs("div",{className:"bg-gray-900 rounded-xl p-5 border border-gray-800",children:[y.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[y.jsx("div",{className:"p-2 bg-orange-600/20 rounded-lg",children:y.jsx(qm,{className:"h-5 w-5 text-orange-400"})}),y.jsx("span",{className:"text-sm text-gray-400",children:"Total Requests"})]}),y.jsx("p",{className:"text-2xl font-bold text-white",children:n.request_count.toLocaleString()})]})]}),y.jsxs("div",{className:"bg-gray-900 rounded-xl border border-gray-800 p-5",children:[y.jsx("h3",{className:"text-base font-semibold text-white mb-4",children:"Token Statistics"}),y.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[y.jsxs("div",{className:"bg-gray-800/50 rounded-lg p-4",children:[y.jsx("p",{className:"text-sm text-gray-400",children:"Total Tokens"}),y.jsx("p",{className:"text-xl font-bold text-white mt-1",children:n.total_tokens.toLocaleString()})]}),y.jsxs("div",{className:"bg-gray-800/50 rounded-lg p-4",children:[y.jsx("p",{className:"text-sm text-gray-400",children:"Avg Tokens / Request"}),y.jsx("p",{className:"text-xl font-bold text-white mt-1",children:n.request_count>0?Math.round(n.total_tokens/n.request_count).toLocaleString():"0"})]}),y.jsxs("div",{className:"bg-gray-800/50 rounded-lg p-4",children:[y.jsx("p",{className:"text-sm text-gray-400",children:"Cost per 1K Tokens"}),y.jsx("p",{className:"text-xl font-bold text-white mt-1",children:n.total_tokens>0?Pr(n.monthly_cost_usd/n.total_tokens*1e3):"$0.0000"})]})]})]}),y.jsxs("div",{className:"bg-gray-900 rounded-xl border border-gray-800 overflow-hidden",children:[y.jsx("div",{className:"px-5 py-4 border-b border-gray-800",children:y.jsx("h3",{className:"text-base font-semibold text-white",children:"Model Breakdown"})}),o.length===0?y.jsx("div",{className:"p-8 text-center text-gray-500",children:"No model data available."}):y.jsx("div",{className:"overflow-x-auto",children:y.jsxs("table",{className:"w-full text-sm",children:[y.jsx("thead",{children:y.jsxs("tr",{className:"border-b border-gray-800",children:[y.jsx("th",{className:"text-left px-5 py-3 text-gray-400 font-medium",children:"Model"}),y.jsx("th",{className:"text-right px-5 py-3 text-gray-400 font-medium",children:"Cost"}),y.jsx("th",{className:"text-right px-5 py-3 text-gray-400 font-medium",children:"Tokens"}),y.jsx("th",{className:"text-right px-5 py-3 text-gray-400 font-medium",children:"Requests"}),y.jsx("th",{className:"text-left px-5 py-3 text-gray-400 font-medium",children:"Share"})]})}),y.jsx("tbody",{children:o.sort((u,f)=>f.cost_usd-u.cost_usd).map(u=>{const f=n.monthly_cost_usd>0?u.cost_usd/n.monthly_cost_usd*100:0;return y.jsxs("tr",{className:"border-b border-gray-800/50 hover:bg-gray-800/30 transition-colors",children:[y.jsx("td",{className:"px-5 py-3 text-white font-medium",children:u.model}),y.jsx("td",{className:"px-5 py-3 text-gray-300 text-right font-mono",children:Pr(u.cost_usd)}),y.jsx("td",{className:"px-5 py-3 text-gray-300 text-right",children:u.total_tokens.toLocaleString()}),y.jsx("td",{className:"px-5 py-3 text-gray-300 text-right",children:u.request_count.toLocaleString()}),y.jsx("td",{className:"px-5 py-3",children:y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx("div",{className:"w-20 h-2 bg-gray-800 rounded-full overflow-hidden",children:y.jsx("div",{className:"h-full bg-blue-500 rounded-full",style:{width:`${Math.max(f,2)}%`}})}),y.jsxs("span",{className:"text-xs text-gray-400 w-10 text-right",children:[f.toFixed(1),"%"]})]})})]},u.model)})})]})})]})]})}const b6=1e3,x6=3e4;class v6{constructor(e={}){Xe(this,"controller",null);Xe(this,"reconnectTimer",null);Xe(this,"currentDelay");Xe(this,"intentionallyClosed",!1);Xe(this,"onEvent",null);Xe(this,"onError",null);Xe(this,"onConnect",null);Xe(this,"path");Xe(this,"reconnectDelay");Xe(this,"maxReconnectDelay");Xe(this,"autoReconnect");this.path=e.path??"/api/events",this.reconnectDelay=e.reconnectDelay??b6,this.maxReconnectDelay=e.maxReconnectDelay??x6,this.autoReconnect=e.autoReconnect??!0,this.currentDelay=this.reconnectDelay}connect(){this.intentionallyClosed=!1,this.clearReconnectTimer(),this.controller=new AbortController;const e=Ca(),t={Accept:"text/event-stream"};e&&(t.Authorization=`Bearer ${e}`),fetch(this.path,{headers:t,signal:this.controller.signal}).then(i=>{var s;if(!i.ok)throw new Error(`SSE connection failed: ${i.status}`);if(!i.body)throw new Error("SSE response has no body");return this.currentDelay=this.reconnectDelay,(s=this.onConnect)==null||s.call(this),this.consumeStream(i.body)}).catch(i=>{var s;i instanceof DOMException&&i.name==="AbortError"||((s=this.onError)==null||s.call(this,i instanceof Error?i:new Error(String(i))),this.scheduleReconnect())})}disconnect(){this.intentionallyClosed=!0,this.clearReconnectTimer(),this.controller&&(this.controller.abort(),this.controller=null)}async consumeStream(e){var r;const t=e.getReader(),i=new TextDecoder;let s="";try{for(;;){const{done:o,value:u}=await t.read();if(o)break;s+=i.decode(u,{stream:!0});const f=s.split(` `);s=f.pop()??"";for(const d of f)this.parseEvent(d)}}catch(o){if(o instanceof DOMException&&o.name==="AbortError")return;(r=this.onError)==null||r.call(this,o instanceof Error?o:new Error(String(o)))}finally{t.releaseLock()}this.scheduleReconnect()}parseEvent(e){var o;let t="message";const i=[];for(const u of e.split(` `))u.startsWith("event:")?t=u.slice(6).trim():u.startsWith("data:")&&i.push(u.slice(5).trim());if(i.length===0)return;const s=i.join(` -`);let r;try{r=JSON.parse(s),r.type=r.type??t}catch{r={type:t,data:s}}(o=this.onEvent)==null||o.call(this,r)}scheduleReconnect(){this.intentionallyClosed||!this.autoReconnect||(this.reconnectTimer=setTimeout(()=>{this.currentDelay=Math.min(this.currentDelay*2,this.maxReconnectDelay),this.connect()},this.currentDelay))}clearReconnectTimer(){this.reconnectTimer!==null&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)}}function k6(n){return n?new Date(n).toLocaleTimeString():new Date().toLocaleTimeString()}function C6(n){switch(n.toLowerCase()){case"error":return"bg-red-900/50 text-red-400 border-red-700/50";case"warn":case"warning":return"bg-yellow-900/50 text-yellow-400 border-yellow-700/50";case"tool_call":case"tool_result":return"bg-purple-900/50 text-purple-400 border-purple-700/50";case"message":case"chat":return"bg-blue-900/50 text-blue-400 border-blue-700/50";case"health":case"status":return"bg-green-900/50 text-green-400 border-green-700/50";default:return"bg-gray-800 text-gray-400 border-gray-700"}}function A6(){const[n,e]=M.useState([]),[t,i]=M.useState(!1),[s,r]=M.useState(!1),[o,u]=M.useState(!0),[f,d]=M.useState(new Set),p=M.useRef(null),b=M.useRef(null),x=M.useRef(!1),w=M.useRef(0);M.useEffect(()=>{x.current=t},[t]),M.useEffect(()=>{const E=new S6;return E.onConnect=()=>{r(!0)},E.onError=()=>{r(!1)},E.onEvent=q=>{if(x.current)return;w.current+=1;const B={id:`log-${w.current}`,event:q};e(I=>{const V=[...I,B];return V.length>500?V.slice(-500):V})},E.connect(),b.current=E,()=>{E.disconnect()}},[]),M.useEffect(()=>{o&&p.current&&(p.current.scrollTop=p.current.scrollHeight)},[n,o]);const S=M.useCallback(()=>{if(!p.current)return;const{scrollTop:E,scrollHeight:q,clientHeight:B}=p.current,I=q-E-B<50;u(I)},[]),A=()=>{p.current&&(p.current.scrollTop=p.current.scrollHeight),u(!0)},C=Array.from(new Set(n.map(E=>E.event.type))).sort(),T=E=>{d(q=>{const B=new Set(q);return B.has(E)?B.delete(E):B.add(E),B})},R=f.size===0?n:n.filter(E=>f.has(E.event.type));return y.jsxs("div",{className:"flex min-h-[28rem] flex-col h-[calc(100dvh-8.5rem)]",children:[y.jsxs("div",{className:"flex items-center justify-between px-6 py-3 border-b border-gray-800 bg-gray-900",children:[y.jsxs("div",{className:"flex items-center gap-3",children:[y.jsx(Hu,{className:"h-5 w-5 text-blue-400"}),y.jsx("h2",{className:"text-base font-semibold text-white",children:"Live Logs"}),y.jsxs("div",{className:"flex items-center gap-2 ml-2",children:[y.jsx("span",{className:`inline-block h-2 w-2 rounded-full ${s?"bg-green-500":"bg-red-500"}`}),y.jsx("span",{className:"text-xs text-gray-500",children:s?"Connected":"Disconnected"})]}),y.jsxs("span",{className:"text-xs text-gray-500 ml-2",children:[R.length," events"]})]}),y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx("button",{onClick:()=>i(!t),className:`flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-sm font-medium transition-colors ${t?"bg-green-600 hover:bg-green-700 text-white":"bg-yellow-600 hover:bg-yellow-700 text-white"}`,children:t?y.jsxs(y.Fragment,{children:[y.jsx(Qp,{className:"h-3.5 w-3.5"})," Resume"]}):y.jsxs(y.Fragment,{children:[y.jsx(G3,{className:"h-3.5 w-3.5"})," Pause"]})}),!o&&y.jsxs("button",{onClick:A,className:"flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-sm font-medium bg-blue-600 hover:bg-blue-700 text-white transition-colors",children:[y.jsx(y3,{className:"h-3.5 w-3.5"}),"Jump to bottom"]})]})]}),C.length>0&&y.jsxs("div",{className:"flex items-center gap-2 px-6 py-2 border-b border-gray-800 bg-gray-900/80 overflow-x-auto",children:[y.jsx(Xp,{className:"h-4 w-4 text-gray-500 flex-shrink-0"}),y.jsx("span",{className:"text-xs text-gray-500 flex-shrink-0",children:"Filter:"}),C.map(E=>y.jsxs("label",{className:"flex items-center gap-1.5 cursor-pointer flex-shrink-0",children:[y.jsx("input",{type:"checkbox",checked:f.has(E),onChange:()=>T(E),className:"rounded bg-gray-800 border-gray-600 text-blue-500 focus:ring-blue-500 focus:ring-offset-0 h-3.5 w-3.5"}),y.jsx("span",{className:"text-xs text-gray-400 capitalize",children:E})]},E)),f.size>0&&y.jsx("button",{onClick:()=>d(new Set),className:"text-xs text-blue-400 hover:text-blue-300 flex-shrink-0 ml-1",children:"Clear"})]}),y.jsx("div",{ref:p,onScroll:S,className:"flex-1 overflow-y-auto p-4 space-y-2",children:R.length===0?y.jsxs("div",{className:"flex flex-col items-center justify-center h-full text-gray-500",children:[y.jsx(Hu,{className:"h-10 w-10 text-gray-600 mb-3"}),y.jsx("p",{className:"text-sm",children:t?"Log streaming is paused.":"Waiting for events..."})]}):R.map(E=>{const{event:q}=E,B=q.message??q.content??q.data??JSON.stringify(Object.fromEntries(Object.entries(q).filter(([I])=>I!=="type"&&I!=="timestamp")));return y.jsx("div",{className:"bg-gray-900 border border-gray-800 rounded-lg p-3 hover:border-gray-700 transition-colors",children:y.jsxs("div",{className:"flex items-start gap-3",children:[y.jsx("span",{className:"text-xs text-gray-500 font-mono whitespace-nowrap mt-0.5",children:k6(q.timestamp)}),y.jsx("span",{className:`inline-flex items-center px-2 py-0.5 rounded text-xs font-medium border capitalize flex-shrink-0 ${C6(q.type)}`,children:q.type}),y.jsx("p",{className:"text-sm text-gray-300 break-all min-w-0",children:typeof B=="string"?B:JSON.stringify(B)})]})},E.id)})})]})}function M6(n){switch(n){case"ok":return y.jsx(fh,{className:"h-4 w-4 text-green-400 flex-shrink-0"});case"warn":return y.jsx(Jp,{className:"h-4 w-4 text-yellow-400 flex-shrink-0"});case"error":return y.jsx(Fp,{className:"h-4 w-4 text-red-400 flex-shrink-0"})}}function T6(n){switch(n){case"ok":return"border-green-700/40";case"warn":return"border-yellow-700/40";case"error":return"border-red-700/40"}}function N6(n){switch(n){case"ok":return"bg-green-900/10";case"warn":return"bg-yellow-900/10";case"error":return"bg-red-900/10"}}function E6(){const[n,e]=M.useState(null),[t,i]=M.useState(!1),[s,r]=M.useState(null),o=async()=>{i(!0),r(null),e(null);try{const b=await bT();e(b)}catch(b){r(b instanceof Error?b.message:"Failed to run diagnostics")}finally{i(!1)}},u=(n==null?void 0:n.filter(b=>b.severity==="ok").length)??0,f=(n==null?void 0:n.filter(b=>b.severity==="warn").length)??0,d=(n==null?void 0:n.filter(b=>b.severity==="error").length)??0,p=(n==null?void 0:n.reduce((b,x)=>{const w=x.category;return b[w]||(b[w]=[]),b[w].push(x),b},{}))??{};return y.jsxs("div",{className:"p-6 space-y-6",children:[y.jsxs("div",{className:"flex items-center justify-between",children:[y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx(Pm,{className:"h-5 w-5 text-blue-400"}),y.jsx("h2",{className:"text-base font-semibold text-white",children:"Diagnostics"})]}),y.jsx("button",{onClick:o,disabled:t,className:"flex items-center gap-2 bg-blue-600 hover:bg-blue-700 text-white text-sm font-medium px-4 py-2 rounded-lg transition-colors disabled:opacity-50",children:t?y.jsxs(y.Fragment,{children:[y.jsx(ix,{className:"h-4 w-4 animate-spin"}),"Running..."]}):y.jsxs(y.Fragment,{children:[y.jsx(Qp,{className:"h-4 w-4"}),"Run Diagnostics"]})})]}),s&&y.jsx("div",{className:"rounded-lg bg-red-900/30 border border-red-700 p-4 text-red-300",children:s}),t&&y.jsxs("div",{className:"flex flex-col items-center justify-center py-16",children:[y.jsx(ix,{className:"h-10 w-10 text-blue-500 animate-spin mb-4"}),y.jsx("p",{className:"text-gray-400",children:"Running diagnostics..."}),y.jsx("p",{className:"text-sm text-gray-500 mt-1",children:"This may take a few seconds."})]}),n&&!t&&y.jsxs(y.Fragment,{children:[y.jsxs("div",{className:"flex items-center gap-4 bg-gray-900 rounded-xl border border-gray-800 p-4",children:[y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx(fh,{className:"h-5 w-5 text-green-400"}),y.jsxs("span",{className:"text-sm text-white font-medium",children:[u," ",y.jsx("span",{className:"text-gray-400 font-normal",children:"ok"})]})]}),y.jsx("div",{className:"w-px h-5 bg-gray-700"}),y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx(Jp,{className:"h-5 w-5 text-yellow-400"}),y.jsxs("span",{className:"text-sm text-white font-medium",children:[f," ",y.jsxs("span",{className:"text-gray-400 font-normal",children:["warning",f!==1?"s":""]})]})]}),y.jsx("div",{className:"w-px h-5 bg-gray-700"}),y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx(Fp,{className:"h-5 w-5 text-red-400"}),y.jsxs("span",{className:"text-sm text-white font-medium",children:[d," ",y.jsxs("span",{className:"text-gray-400 font-normal",children:["error",d!==1?"s":""]})]})]}),y.jsx("div",{className:"ml-auto",children:d>0?y.jsx("span",{className:"inline-flex items-center gap-1.5 px-3 py-1 rounded-full text-xs font-medium bg-red-900/40 text-red-400 border border-red-700/50",children:"Issues Found"}):f>0?y.jsx("span",{className:"inline-flex items-center gap-1.5 px-3 py-1 rounded-full text-xs font-medium bg-yellow-900/40 text-yellow-400 border border-yellow-700/50",children:"Warnings"}):y.jsx("span",{className:"inline-flex items-center gap-1.5 px-3 py-1 rounded-full text-xs font-medium bg-green-900/40 text-green-400 border border-green-700/50",children:"All Clear"})})]}),Object.entries(p).sort(([b],[x])=>b.localeCompare(x)).map(([b,x])=>y.jsxs("div",{children:[y.jsx("h3",{className:"text-sm font-semibold text-gray-400 uppercase tracking-wider mb-3 capitalize",children:b}),y.jsx("div",{className:"space-y-2",children:x.map((w,S)=>y.jsxs("div",{className:`flex items-start gap-3 rounded-lg border p-3 ${T6(w.severity)} ${N6(w.severity)}`,children:[M6(w.severity),y.jsxs("div",{className:"min-w-0",children:[y.jsx("p",{className:"text-sm text-white",children:w.message}),y.jsx("p",{className:"text-xs text-gray-500 mt-0.5 capitalize",children:w.severity})]})]},`${b}-${S}`))})]},b))]}),!n&&!t&&!s&&y.jsxs("div",{className:"flex flex-col items-center justify-center py-16 text-gray-500",children:[y.jsx(Pm,{className:"h-12 w-12 text-gray-600 mb-4"}),y.jsx("p",{className:"text-lg font-medium",children:"System Diagnostics"}),y.jsx("p",{className:"text-sm mt-1",children:'Click "Run Diagnostics" to check your ZeroClaw installation.'})]})]})}const f2="zeroclaw:locale",sC=M.createContext({locale:"en",setAppLocale:n=>{}}),D6=()=>M.useContext(sC);function O6({onPair:n}){const[e,t]=M.useState(""),[i,s]=M.useState(""),[r,o]=M.useState(!1),u=async f=>{f.preventDefault(),o(!0),s("");try{await n(e)}catch(d){s(d instanceof Error?d.message:"Pairing failed")}finally{o(!1)}};return y.jsx("div",{className:"pairing-shell min-h-screen flex items-center justify-center px-4",children:y.jsxs("div",{className:"pairing-card w-full max-w-md rounded-2xl p-8",children:[y.jsxs("div",{className:"text-center mb-6",children:[y.jsx("h1",{className:"mb-2 text-2xl font-semibold tracking-[0.16em] pairing-brand",children:"ZEROCLAW"}),y.jsx("p",{className:"text-sm text-[#9bb8e8]",children:"Enter the one-time pairing code from your terminal"})]}),y.jsxs("form",{onSubmit:u,children:[y.jsx("input",{type:"text",value:e,onChange:f=>t(f.target.value),placeholder:"6-digit code",className:"w-full rounded-xl border border-[#29509c] bg-[#071228]/90 px-4 py-3 text-center text-2xl tracking-[0.35em] text-white focus:border-[#4f83ff] focus:outline-none mb-4",maxLength:6,autoFocus:!0}),i&&y.jsx("p",{className:"mb-4 text-center text-sm text-rose-300",children:i}),y.jsx("button",{type:"submit",disabled:r||e.length<6,className:"electric-button w-full rounded-xl py-3 font-medium text-white disabled:opacity-50",children:r?"Pairing...":"Pair"})]})]})})}function j6(){const{isAuthenticated:n,loading:e,pair:t,logout:i}=nw(),[s,r]=M.useState(()=>{if(typeof window>"u")return"en";const u=window.localStorage.getItem(f2);return ox(u||window.navigator.language)});M.useEffect(()=>{TT(s),typeof window<"u"&&window.localStorage.setItem(f2,s)},[s]);const o=u=>{r(u)};return M.useEffect(()=>{const u=()=>{i()};return window.addEventListener("zeroclaw-unauthorized",u),()=>window.removeEventListener("zeroclaw-unauthorized",u)},[i]),e?y.jsx("div",{className:"pairing-shell min-h-screen flex items-center justify-center",children:y.jsxs("div",{className:"flex flex-col items-center gap-3",children:[y.jsx("div",{className:"electric-loader h-10 w-10 rounded-full"}),y.jsx("p",{className:"text-[#a7c4f3]",children:"Connecting..."})]})}):n?y.jsx(sC.Provider,{value:{locale:s,setAppLocale:o},children:y.jsx(LM,{children:y.jsxs(an,{element:y.jsx(LT,{}),children:[y.jsx(an,{path:"/",element:y.jsx(UT,{})}),y.jsx(an,{path:"/agent",element:y.jsx(IT,{})}),y.jsx(an,{path:"/tools",element:y.jsx(YT,{})}),y.jsx(an,{path:"/cron",element:y.jsx(FT,{})}),y.jsx(an,{path:"/integrations",element:y.jsx(eN,{})}),y.jsx(an,{path:"/memory",element:y.jsx(iN,{})}),y.jsx(an,{path:"/devices",element:y.jsx(lN,{})}),y.jsx(an,{path:"/config",element:y.jsx(b6,{})}),y.jsx(an,{path:"/cost",element:y.jsx(x6,{})}),y.jsx(an,{path:"/logs",element:y.jsx(A6,{})}),y.jsx(an,{path:"/doctor",element:y.jsx(E6,{})}),y.jsx(an,{path:"*",element:y.jsx(jM,{to:"/",replace:!0})})]})})}):y.jsx(O6,{onPair:t})}function R6(){return y.jsx(OT,{children:y.jsx(j6,{})})}_4.createRoot(document.getElementById("root")).render(y.jsx(m2.StrictMode,{children:y.jsx(s3,{basename:"/",children:y.jsx(R6,{})})})); +`);let r;try{r=JSON.parse(s),r.type=r.type??t}catch{r={type:t,data:s}}(o=this.onEvent)==null||o.call(this,r)}scheduleReconnect(){this.intentionallyClosed||!this.autoReconnect||(this.reconnectTimer=setTimeout(()=>{this.currentDelay=Math.min(this.currentDelay*2,this.maxReconnectDelay),this.connect()},this.currentDelay))}clearReconnectTimer(){this.reconnectTimer!==null&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)}}function w6(n){return n?new Date(n).toLocaleTimeString():new Date().toLocaleTimeString()}function S6(n){switch(n.toLowerCase()){case"error":return"bg-red-900/50 text-red-400 border-red-700/50";case"warn":case"warning":return"bg-yellow-900/50 text-yellow-400 border-yellow-700/50";case"tool_call":case"tool_result":return"bg-purple-900/50 text-purple-400 border-purple-700/50";case"message":case"chat":return"bg-blue-900/50 text-blue-400 border-blue-700/50";case"health":case"status":return"bg-green-900/50 text-green-400 border-green-700/50";default:return"bg-gray-800 text-gray-400 border-gray-700"}}function k6(){const[n,e]=M.useState([]),[t,i]=M.useState(!1),[s,r]=M.useState(!1),[o,u]=M.useState(!0),[f,d]=M.useState(new Set),p=M.useRef(null),b=M.useRef(null),x=M.useRef(!1),w=M.useRef(0);M.useEffect(()=>{x.current=t},[t]),M.useEffect(()=>{const E=new v6;return E.onConnect=()=>{r(!0)},E.onError=()=>{r(!1)},E.onEvent=q=>{if(x.current)return;w.current+=1;const B={id:`log-${w.current}`,event:q};e(I=>{const V=[...I,B];return V.length>500?V.slice(-500):V})},E.connect(),b.current=E,()=>{E.disconnect()}},[]),M.useEffect(()=>{o&&p.current&&(p.current.scrollTop=p.current.scrollHeight)},[n,o]);const S=M.useCallback(()=>{if(!p.current)return;const{scrollTop:E,scrollHeight:q,clientHeight:B}=p.current,I=q-E-B<50;u(I)},[]),A=()=>{p.current&&(p.current.scrollTop=p.current.scrollHeight),u(!0)},C=Array.from(new Set(n.map(E=>E.event.type))).sort(),T=E=>{d(q=>{const B=new Set(q);return B.has(E)?B.delete(E):B.add(E),B})},R=f.size===0?n:n.filter(E=>f.has(E.event.type));return y.jsxs("div",{className:"flex min-h-[28rem] flex-col h-[calc(100dvh-8.5rem)]",children:[y.jsxs("div",{className:"flex items-center justify-between px-6 py-3 border-b border-gray-800 bg-gray-900",children:[y.jsxs("div",{className:"flex items-center gap-3",children:[y.jsx(Hu,{className:"h-5 w-5 text-blue-400"}),y.jsx("h2",{className:"text-base font-semibold text-white",children:"Live Logs"}),y.jsxs("div",{className:"flex items-center gap-2 ml-2",children:[y.jsx("span",{className:`inline-block h-2 w-2 rounded-full ${s?"bg-green-500":"bg-red-500"}`}),y.jsx("span",{className:"text-xs text-gray-500",children:s?"Connected":"Disconnected"})]}),y.jsxs("span",{className:"text-xs text-gray-500 ml-2",children:[R.length," events"]})]}),y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx("button",{onClick:()=>i(!t),className:`flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-sm font-medium transition-colors ${t?"bg-green-600 hover:bg-green-700 text-white":"bg-yellow-600 hover:bg-yellow-700 text-white"}`,children:t?y.jsxs(y.Fragment,{children:[y.jsx(Qp,{className:"h-3.5 w-3.5"})," Resume"]}):y.jsxs(y.Fragment,{children:[y.jsx(P3,{className:"h-3.5 w-3.5"})," Pause"]})}),!o&&y.jsxs("button",{onClick:A,className:"flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-sm font-medium bg-blue-600 hover:bg-blue-700 text-white transition-colors",children:[y.jsx(y3,{className:"h-3.5 w-3.5"}),"Jump to bottom"]})]})]}),C.length>0&&y.jsxs("div",{className:"flex items-center gap-2 px-6 py-2 border-b border-gray-800 bg-gray-900/80 overflow-x-auto",children:[y.jsx(Xp,{className:"h-4 w-4 text-gray-500 flex-shrink-0"}),y.jsx("span",{className:"text-xs text-gray-500 flex-shrink-0",children:"Filter:"}),C.map(E=>y.jsxs("label",{className:"flex items-center gap-1.5 cursor-pointer flex-shrink-0",children:[y.jsx("input",{type:"checkbox",checked:f.has(E),onChange:()=>T(E),className:"rounded bg-gray-800 border-gray-600 text-blue-500 focus:ring-blue-500 focus:ring-offset-0 h-3.5 w-3.5"}),y.jsx("span",{className:"text-xs text-gray-400 capitalize",children:E})]},E)),f.size>0&&y.jsx("button",{onClick:()=>d(new Set),className:"text-xs text-blue-400 hover:text-blue-300 flex-shrink-0 ml-1",children:"Clear"})]}),y.jsx("div",{ref:p,onScroll:S,className:"flex-1 overflow-y-auto p-4 space-y-2",children:R.length===0?y.jsxs("div",{className:"flex flex-col items-center justify-center h-full text-gray-500",children:[y.jsx(Hu,{className:"h-10 w-10 text-gray-600 mb-3"}),y.jsx("p",{className:"text-sm",children:t?"Log streaming is paused.":"Waiting for events..."})]}):R.map(E=>{const{event:q}=E,B=q.message??q.content??q.data??JSON.stringify(Object.fromEntries(Object.entries(q).filter(([I])=>I!=="type"&&I!=="timestamp")));return y.jsx("div",{className:"bg-gray-900 border border-gray-800 rounded-lg p-3 hover:border-gray-700 transition-colors",children:y.jsxs("div",{className:"flex items-start gap-3",children:[y.jsx("span",{className:"text-xs text-gray-500 font-mono whitespace-nowrap mt-0.5",children:w6(q.timestamp)}),y.jsx("span",{className:`inline-flex items-center px-2 py-0.5 rounded text-xs font-medium border capitalize flex-shrink-0 ${S6(q.type)}`,children:q.type}),y.jsx("p",{className:"text-sm text-gray-300 break-all min-w-0",children:typeof B=="string"?B:JSON.stringify(B)})]})},E.id)})})]})}function C6(n){switch(n){case"ok":return y.jsx(fh,{className:"h-4 w-4 text-green-400 flex-shrink-0"});case"warn":return y.jsx(Jp,{className:"h-4 w-4 text-yellow-400 flex-shrink-0"});case"error":return y.jsx(Fp,{className:"h-4 w-4 text-red-400 flex-shrink-0"})}}function A6(n){switch(n){case"ok":return"border-green-700/40";case"warn":return"border-yellow-700/40";case"error":return"border-red-700/40"}}function M6(n){switch(n){case"ok":return"bg-green-900/10";case"warn":return"bg-yellow-900/10";case"error":return"bg-red-900/10"}}function T6(){const[n,e]=M.useState(null),[t,i]=M.useState(!1),[s,r]=M.useState(null),o=async()=>{i(!0),r(null),e(null);try{const b=await gT();e(b)}catch(b){r(b instanceof Error?b.message:"Failed to run diagnostics")}finally{i(!1)}},u=(n==null?void 0:n.filter(b=>b.severity==="ok").length)??0,f=(n==null?void 0:n.filter(b=>b.severity==="warn").length)??0,d=(n==null?void 0:n.filter(b=>b.severity==="error").length)??0,p=(n==null?void 0:n.reduce((b,x)=>{const w=x.category;return b[w]||(b[w]=[]),b[w].push(x),b},{}))??{};return y.jsxs("div",{className:"p-6 space-y-6",children:[y.jsxs("div",{className:"flex items-center justify-between",children:[y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx(Pm,{className:"h-5 w-5 text-blue-400"}),y.jsx("h2",{className:"text-base font-semibold text-white",children:"Diagnostics"})]}),y.jsx("button",{onClick:o,disabled:t,className:"flex items-center gap-2 bg-blue-600 hover:bg-blue-700 text-white text-sm font-medium px-4 py-2 rounded-lg transition-colors disabled:opacity-50",children:t?y.jsxs(y.Fragment,{children:[y.jsx(ix,{className:"h-4 w-4 animate-spin"}),"Running..."]}):y.jsxs(y.Fragment,{children:[y.jsx(Qp,{className:"h-4 w-4"}),"Run Diagnostics"]})})]}),s&&y.jsx("div",{className:"rounded-lg bg-red-900/30 border border-red-700 p-4 text-red-300",children:s}),t&&y.jsxs("div",{className:"flex flex-col items-center justify-center py-16",children:[y.jsx(ix,{className:"h-10 w-10 text-blue-500 animate-spin mb-4"}),y.jsx("p",{className:"text-gray-400",children:"Running diagnostics..."}),y.jsx("p",{className:"text-sm text-gray-500 mt-1",children:"This may take a few seconds."})]}),n&&!t&&y.jsxs(y.Fragment,{children:[y.jsxs("div",{className:"flex items-center gap-4 bg-gray-900 rounded-xl border border-gray-800 p-4",children:[y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx(fh,{className:"h-5 w-5 text-green-400"}),y.jsxs("span",{className:"text-sm text-white font-medium",children:[u," ",y.jsx("span",{className:"text-gray-400 font-normal",children:"ok"})]})]}),y.jsx("div",{className:"w-px h-5 bg-gray-700"}),y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx(Jp,{className:"h-5 w-5 text-yellow-400"}),y.jsxs("span",{className:"text-sm text-white font-medium",children:[f," ",y.jsxs("span",{className:"text-gray-400 font-normal",children:["warning",f!==1?"s":""]})]})]}),y.jsx("div",{className:"w-px h-5 bg-gray-700"}),y.jsxs("div",{className:"flex items-center gap-2",children:[y.jsx(Fp,{className:"h-5 w-5 text-red-400"}),y.jsxs("span",{className:"text-sm text-white font-medium",children:[d," ",y.jsxs("span",{className:"text-gray-400 font-normal",children:["error",d!==1?"s":""]})]})]}),y.jsx("div",{className:"ml-auto",children:d>0?y.jsx("span",{className:"inline-flex items-center gap-1.5 px-3 py-1 rounded-full text-xs font-medium bg-red-900/40 text-red-400 border border-red-700/50",children:"Issues Found"}):f>0?y.jsx("span",{className:"inline-flex items-center gap-1.5 px-3 py-1 rounded-full text-xs font-medium bg-yellow-900/40 text-yellow-400 border border-yellow-700/50",children:"Warnings"}):y.jsx("span",{className:"inline-flex items-center gap-1.5 px-3 py-1 rounded-full text-xs font-medium bg-green-900/40 text-green-400 border border-green-700/50",children:"All Clear"})})]}),Object.entries(p).sort(([b],[x])=>b.localeCompare(x)).map(([b,x])=>y.jsxs("div",{children:[y.jsx("h3",{className:"text-sm font-semibold text-gray-400 uppercase tracking-wider mb-3 capitalize",children:b}),y.jsx("div",{className:"space-y-2",children:x.map((w,S)=>y.jsxs("div",{className:`flex items-start gap-3 rounded-lg border p-3 ${A6(w.severity)} ${M6(w.severity)}`,children:[C6(w.severity),y.jsxs("div",{className:"min-w-0",children:[y.jsx("p",{className:"text-sm text-white",children:w.message}),y.jsx("p",{className:"text-xs text-gray-500 mt-0.5 capitalize",children:w.severity})]})]},`${b}-${S}`))})]},b))]}),!n&&!t&&!s&&y.jsxs("div",{className:"flex flex-col items-center justify-center py-16 text-gray-500",children:[y.jsx(Pm,{className:"h-12 w-12 text-gray-600 mb-4"}),y.jsx("p",{className:"text-lg font-medium",children:"System Diagnostics"}),y.jsx("p",{className:"text-sm mt-1",children:'Click "Run Diagnostics" to check your ZeroClaw installation.'})]})]})}const f2="zeroclaw:locale",sC=M.createContext({locale:"en",setAppLocale:n=>{}}),N6=()=>M.useContext(sC);function E6({onPair:n}){const[e,t]=M.useState(""),[i,s]=M.useState(""),[r,o]=M.useState(!1),u=async f=>{f.preventDefault(),o(!0),s("");try{await n(e)}catch(d){s(d instanceof Error?d.message:"Pairing failed")}finally{o(!1)}};return y.jsx("div",{className:"pairing-shell min-h-screen flex items-center justify-center px-4",children:y.jsxs("div",{className:"pairing-card w-full max-w-md rounded-2xl p-8",children:[y.jsxs("div",{className:"text-center mb-6",children:[y.jsx("h1",{className:"mb-2 text-2xl font-semibold tracking-[0.16em] pairing-brand",children:"ZEROCLAW"}),y.jsx("p",{className:"text-sm text-[#9bb8e8]",children:"Enter the one-time pairing code from your terminal"})]}),y.jsxs("form",{onSubmit:u,children:[y.jsx("input",{type:"text",value:e,onChange:f=>t(f.target.value),placeholder:"6-digit code",className:"w-full rounded-xl border border-[#29509c] bg-[#071228]/90 px-4 py-3 text-center text-2xl tracking-[0.35em] text-white focus:border-[#4f83ff] focus:outline-none mb-4",maxLength:6,autoFocus:!0}),i&&y.jsx("p",{className:"mb-4 text-center text-sm text-rose-300",children:i}),y.jsx("button",{type:"submit",disabled:r||e.length<6,className:"electric-button w-full rounded-xl py-3 font-medium text-white disabled:opacity-50",children:r?"Pairing...":"Pair"})]})]})})}function D6(){const{isAuthenticated:n,loading:e,pair:t,logout:i}=nw(),[s,r]=M.useState(()=>{if(typeof window>"u")return"en";const u=window.localStorage.getItem(f2);return ox(u||window.navigator.language)});M.useEffect(()=>{AT(s),typeof window<"u"&&window.localStorage.setItem(f2,s)},[s]);const o=u=>{r(u)};return M.useEffect(()=>{const u=()=>{i()};return window.addEventListener("zeroclaw-unauthorized",u),()=>window.removeEventListener("zeroclaw-unauthorized",u)},[i]),e?y.jsx("div",{className:"pairing-shell min-h-screen flex items-center justify-center",children:y.jsxs("div",{className:"flex flex-col items-center gap-3",children:[y.jsx("div",{className:"electric-loader h-10 w-10 rounded-full"}),y.jsx("p",{className:"text-[#a7c4f3]",children:"Connecting..."})]})}):n?y.jsx(sC.Provider,{value:{locale:s,setAppLocale:o},children:y.jsx(LM,{children:y.jsxs(an,{element:y.jsx(RT,{}),children:[y.jsx(an,{path:"/",element:y.jsx(HT,{})}),y.jsx(an,{path:"/agent",element:y.jsx(KT,{})}),y.jsx(an,{path:"/tools",element:y.jsx(GT,{})}),y.jsx(an,{path:"/cron",element:y.jsx(YT,{})}),y.jsx(an,{path:"/integrations",element:y.jsx($T,{})}),y.jsx(an,{path:"/memory",element:y.jsx(tN,{})}),y.jsx(an,{path:"/devices",element:y.jsx(nN,{})}),y.jsx(an,{path:"/config",element:y.jsx(g6,{})}),y.jsx(an,{path:"/cost",element:y.jsx(y6,{})}),y.jsx(an,{path:"/logs",element:y.jsx(k6,{})}),y.jsx(an,{path:"/doctor",element:y.jsx(T6,{})}),y.jsx(an,{path:"*",element:y.jsx(jM,{to:"/",replace:!0})})]})})}):y.jsx(E6,{onPair:t})}function O6(){return y.jsx(ET,{children:y.jsx(D6,{})})}_4.createRoot(document.getElementById("root")).render(y.jsx(m2.StrictMode,{children:y.jsx(s3,{basename:"/",children:y.jsx(O6,{})})})); diff --git a/web/dist/index.html b/web/dist/index.html index a7a36b124..07af137f9 100644 --- a/web/dist/index.html +++ b/web/dist/index.html @@ -9,8 +9,8 @@ /> ZeroClaw - - + +