diff --git a/.github/workflows/python-tests.yml b/.github/workflows/python-tests.yml index 467aa1b7470..27637a3897f 100644 --- a/.github/workflows/python-tests.yml +++ b/.github/workflows/python-tests.yml @@ -15,6 +15,51 @@ env: UV_CACHE_DIR: /tmp/.uv-cache jobs: + devui-changes: + name: Detect DevUI Changes + runs-on: ubuntu-latest + permissions: + contents: read + pull-requests: read + outputs: + devui: ${{ steps.filter.outputs.devui }} + steps: + - uses: dorny/paths-filter@ceb8a2b8f2d89434be7ff52d3de7ec3738c5cc9d # v4.0.3 + id: filter + with: + filters: | + devui: + - 'python/packages/devui/**' + - '.github/workflows/python-tests.yml' + + devui-frontend: + name: DevUI Frontend Checks + needs: devui-changes + if: needs.devui-changes.outputs.devui == 'true' + runs-on: ubuntu-latest + permissions: + contents: read + defaults: + run: + working-directory: python/packages/devui/frontend + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + - uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0 + with: + node-version: "24" + cache: npm + cache-dependency-path: python/packages/devui/frontend/package-lock.json + - name: Install frontend dependencies + run: npm ci + - name: Test file links + run: npm run test:file-urls + - name: Test tracing + run: npm run test:tracing + - name: Lint frontend + run: npm run lint + - name: Build frontend + run: npm run build + python-tests: name: Python Tests runs-on: ${{ matrix.os }} diff --git a/python/packages/devui/agent_framework_devui/ui/assets/index.css b/python/packages/devui/agent_framework_devui/ui/assets/index.css index 378cc999350..124a88af02d 100644 --- a/python/packages/devui/agent_framework_devui/ui/assets/index.css +++ b/python/packages/devui/agent_framework_devui/ui/assets/index.css @@ -1,2 +1,2 @@ /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */ -@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-red-950:oklch(25.8% .092 26.042);--color-orange-50:oklch(98% .016 73.684);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-200:oklch(90.1% .076 70.697);--color-orange-300:oklch(83.7% .128 66.29);--color-orange-400:oklch(75% .183 55.934);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-600:oklch(64.6% .222 41.116);--color-orange-700:oklch(55.3% .195 38.402);--color-orange-800:oklch(47% .157 37.304);--color-orange-900:oklch(40.8% .123 38.172);--color-orange-950:oklch(26.6% .079 36.259);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-amber-950:oklch(27.9% .077 45.635);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-600:oklch(68.1% .162 75.834);--color-yellow-700:oklch(55.4% .135 66.442);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--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-50:oklch(97.9% .021 166.113);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-emerald-800:oklch(43.2% .095 166.913);--color-blue-50:oklch(97% .014 254.604);--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-50:oklch(97.7% .014 308.299);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-800:oklch(43.8% .218 303.724);--color-purple-900:oklch(38.1% .176 304.987);--color-gray-50:oklch(98.5% .002 247.839);--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-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-lg:32rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--container-7xl:80rem;--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:calc(1.5 / 1);--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);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-relaxed:1.625;--drop-shadow-lg:0 4px 4px #00000026;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--animate-bounce:bounce 1s infinite;--blur-sm:8px;--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%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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;-webkit-text-decoration:inherit;-webkit-text-decoration: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:where(:not(iframe)){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]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab, var(--ring) 50%, transparent)}}body{background-color:var(--background);color:var(--foreground)}}@layer components;@layer utilities{.\@container\/card-header{container:card-header/inline-size}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:0}.inset-2{inset:calc(var(--spacing) * 2)}.inset-y-0{inset-block:0}.top-0{top:0}.top-1{top:var(--spacing)}.top-2{top:calc(var(--spacing) * 2)}.top-4{top:calc(var(--spacing) * 4)}.top-\[30px\]{top:30px}.-right-2{right:calc(var(--spacing) * -2)}.right-0{right:0}.right-1{right:var(--spacing)}.right-2{right:calc(var(--spacing) * 2)}.right-4{right:calc(var(--spacing) * 4)}.bottom-0{bottom:0}.bottom-24{bottom:calc(var(--spacing) * 24)}.-left-2{left:calc(var(--spacing) * -2)}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-\[18px\]{left:18px}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.container\!{width:100%!important}@media (width>=40rem){.container\!{max-width:40rem!important}}@media (width>=48rem){.container\!{max-width:48rem!important}}@media (width>=64rem){.container\!{max-width:64rem!important}}@media (width>=80rem){.container\!{max-width:80rem!important}}@media (width>=96rem){.container\!{max-width:96rem!important}}.m-2{margin:calc(var(--spacing) * 2)}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-0\.5{margin-inline:calc(var(--spacing) * .5)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.my-1{margin-block:var(--spacing)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-3{margin-block:calc(var(--spacing) * 3)}.my-4{margin-block:calc(var(--spacing) * 4)}.mt-0{margin-top:0}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.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-12{margin-top:calc(var(--spacing) * 12)}.mr-1{margin-right:var(--spacing)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:var(--spacing)}.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)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.ml-0{margin-left:0}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-5{margin-left:calc(var(--spacing) * 5)}.ml-6{margin-left:calc(var(--spacing) * 6)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.field-sizing-content{field-sizing:content}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.\!h-2{height:calc(var(--spacing) * 2)!important}.h-0{height:0}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1{height:var(--spacing)}.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-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-32{height:calc(var(--spacing) * 32)}.h-\[1\.2rem\]{height:1.2rem}.h-\[1px\]{height:1px}.h-\[85vh\]{height:85vh}.h-\[500px\]{height:500px}.h-\[calc\(100\%\+8px\)\]{height:calc(100% + 8px)}.h-\[calc\(100vh-3\.5rem\)\]{height:calc(100vh - 3.5rem)}.h-\[calc\(100vh-3\.7rem\)\]{height:calc(100vh - 3.7rem)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-\(--radix-dropdown-menu-content-available-height\){max-height:var(--radix-dropdown-menu-content-available-height)}.max-h-\(--radix-select-content-available-height\){max-height:var(--radix-select-content-available-height)}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-60{max-height:calc(var(--spacing) * 60)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[200px\]{max-height:200px}.max-h-\[400px\]{max-height:400px}.max-h-none{max-height:none}.max-h-screen{max-height:100vh}.\!min-h-0{min-height:0!important}.min-h-0{min-height:0}.min-h-16{min-height:calc(var(--spacing) * 16)}.min-h-\[36px\]{min-height:36px}.min-h-\[40px\]{min-height:40px}.min-h-\[50vh\]{min-height:50vh}.min-h-\[400px\]{min-height:400px}.min-h-screen{min-height:100vh}.\!w-2{width:calc(var(--spacing) * 2)!important}.w-1{width:var(--spacing)}.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-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-56{width:calc(var(--spacing) * 56)}.w-64{width:calc(var(--spacing) * 64)}.w-80{width:calc(var(--spacing) * 80)}.w-\[1\.2rem\]{width:1.2rem}.w-\[1px\]{width:1px}.w-\[28rem\]{width:28rem}.w-\[90vw\]{width:90vw}.w-\[600px\]{width:600px}.w-\[800px\]{width:800px}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-\[80\%\]{max-width:80%}.max-w-\[90vw\]{max-width:90vw}.max-w-\[200px\]{max-width:200px}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.\!min-w-0{min-width:0!important}.min-w-0{min-width:0}.min-w-\[1\.25rem\]{min-width:1.25rem}.min-w-\[8rem\]{min-width:8rem}.min-w-\[50px\]{min-width:50px}.min-w-\[80px\]{min-width:80px}.min-w-\[300px\]{min-width:300px}.min-w-\[400px\]{min-width:400px}.min-w-\[800px\]{min-width:800px}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.origin-\(--radix-dropdown-menu-content-transform-origin\){transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.origin-\(--radix-select-content-transform-origin\){transform-origin:var(--radix-select-content-transform-origin)}.origin-bottom{transform-origin:bottom}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-4{--tw-translate-x:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-0{--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-75{--tw-scale-x:75%;--tw-scale-y:75%;--tw-scale-z:75%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.rotate-0{rotate:0deg}.rotate-90{rotate:90deg}.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-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.scroll-my-1{scroll-margin-block:var(--spacing)}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[auto_auto_1fr_auto\]{grid-template-columns:auto auto 1fr auto}.grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.flex-col{flex-direction:column}.flex-row-reverse{flex-direction:row-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:0}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-0\.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-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * 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-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)}:where(.space-x-1>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(var(--spacing) * var(--tw-space-x-reverse));margin-inline-end:calc(var(--spacing) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}.gap-y-1{row-gap:var(--spacing)}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.\!rounded-full{border-radius:2147483647px!important}.rounded{border-radius:.25rem}.rounded-\[4px\]{border-radius:4px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.\!border{border-style:var(--tw-border-style)!important;border-width:1px!important}.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-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-0{border-left-style:var(--tw-border-style);border-left-width:0}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.\!border-gray-600{border-color:var(--color-gray-600)!important}.border-\[\#643FB2\]{border-color:#643fb2}.border-\[\#643FB2\]\/20{border-color:oklab(47.4316% .069152 -.159147/.2)}.border-\[\#643FB2\]\/30{border-color:oklab(47.4316% .069152 -.159147/.3)}.border-amber-200{border-color:var(--color-amber-200)}.border-blue-200{border-color:var(--color-blue-200)}.border-blue-300{border-color:var(--color-blue-300)}.border-blue-400{border-color:var(--color-blue-400)}.border-blue-500{border-color:var(--color-blue-500)}.border-border,.border-border\/50{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/50{border-color:color-mix(in oklab, var(--border) 50%, transparent)}}.border-current\/30{border-color:currentColor}@supports (color:color-mix(in lab, red, red)){.border-current\/30{border-color:color-mix(in oklab, currentcolor 30%, transparent)}}.border-destructive\/30{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\/30{border-color:color-mix(in oklab, var(--destructive) 30%, transparent)}}.border-foreground\/5{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.border-foreground\/5{border-color:color-mix(in oklab, var(--foreground) 5%, transparent)}}.border-foreground\/10{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.border-foreground\/10{border-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}.border-foreground\/20{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.border-foreground\/20{border-color:color-mix(in oklab, var(--foreground) 20%, transparent)}}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-400{border-color:var(--color-gray-400)}.border-gray-500\/20{border-color:#6a728233}@supports (color:color-mix(in lab, red, red)){.border-gray-500\/20{border-color:color-mix(in oklab, var(--color-gray-500) 20%, transparent)}}.border-green-200{border-color:var(--color-green-200)}.border-green-500{border-color:var(--color-green-500)}.border-green-500\/20{border-color:#00c75833}@supports (color:color-mix(in lab, red, red)){.border-green-500\/20{border-color:color-mix(in oklab, var(--color-green-500) 20%, transparent)}}.border-green-500\/40{border-color:#00c75866}@supports (color:color-mix(in lab, red, red)){.border-green-500\/40{border-color:color-mix(in oklab, var(--color-green-500) 40%, transparent)}}.border-green-600\/20{border-color:#00a54433}@supports (color:color-mix(in lab, red, red)){.border-green-600\/20{border-color:color-mix(in oklab, var(--color-green-600) 20%, transparent)}}.border-input{border-color:var(--input)}.border-muted,.border-muted\/50{border-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.border-muted\/50{border-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.border-orange-200{border-color:var(--color-orange-200)}.border-orange-300{border-color:var(--color-orange-300)}.border-orange-500{border-color:var(--color-orange-500)}.border-orange-500\/20{border-color:#fe6e0033}@supports (color:color-mix(in lab, red, red)){.border-orange-500\/20{border-color:color-mix(in oklab, var(--color-orange-500) 20%, transparent)}}.border-orange-500\/40{border-color:#fe6e0066}@supports (color:color-mix(in lab, red, red)){.border-orange-500\/40{border-color:color-mix(in oklab, var(--color-orange-500) 40%, transparent)}}.border-orange-600\/20{border-color:#f0510033}@supports (color:color-mix(in lab, red, red)){.border-orange-600\/20{border-color:color-mix(in oklab, var(--color-orange-600) 20%, transparent)}}.border-primary,.border-primary\/20{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.border-primary\/20{border-color:color-mix(in oklab, var(--primary) 20%, transparent)}}.border-red-200{border-color:var(--color-red-200)}.border-red-500{border-color:var(--color-red-500)}.border-red-500\/20{border-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.border-red-500\/20{border-color:color-mix(in oklab, var(--color-red-500) 20%, transparent)}}.border-transparent{border-color:#0000}.border-yellow-200{border-color:var(--color-yellow-200)}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-\[\#643FB2\]{background-color:#643fb2}.bg-\[\#643FB2\]\/10{background-color:oklab(47.4316% .069152 -.159147/.1)}.bg-accent\/10{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\/10{background-color:color-mix(in oklab, var(--accent) 10%, transparent)}}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/10{background-color:color-mix(in oklab, var(--color-amber-500) 10%, transparent)}}.bg-background,.bg-background\/50{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/50{background-color:color-mix(in oklab, var(--background) 50%, transparent)}}.bg-black{background-color:var(--color-black)}.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-blue-50{background-color:var(--color-blue-50)}.bg-blue-50\/80{background-color:#eff6ffcc}@supports (color:color-mix(in lab, red, red)){.bg-blue-50\/80{background-color:color-mix(in oklab, var(--color-blue-50) 80%, transparent)}}.bg-blue-50\/95{background-color:#eff6fff2}@supports (color:color-mix(in lab, red, red)){.bg-blue-50\/95{background-color:color-mix(in oklab, var(--color-blue-50) 95%, transparent)}}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-500\/5{background-color:#3080ff0d}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\/5{background-color:color-mix(in oklab, var(--color-blue-500) 5%, transparent)}}.bg-blue-500\/10{background-color:#3080ff1a}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\/10{background-color:color-mix(in oklab, var(--color-blue-500) 10%, transparent)}}.bg-blue-600{background-color:var(--color-blue-600)}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-current{background-color:currentColor}.bg-destructive,.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/10{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-foreground\/5{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.bg-foreground\/5{background-color:color-mix(in oklab, var(--foreground) 5%, transparent)}}.bg-foreground\/10{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.bg-foreground\/10{background-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-500\/10{background-color:#6a72821a}@supports (color:color-mix(in lab, red, red)){.bg-gray-500\/10{background-color:color-mix(in oklab, var(--color-gray-500) 10%, transparent)}}.bg-gray-900\/90{background-color:#101828e6}@supports (color:color-mix(in lab, red, red)){.bg-gray-900\/90{background-color:color-mix(in oklab, var(--color-gray-900) 90%, transparent)}}.bg-green-50{background-color:var(--color-green-50)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\/5{background-color:#00c7580d}@supports (color:color-mix(in lab, red, red)){.bg-green-500\/5{background-color:color-mix(in oklab, var(--color-green-500) 5%, transparent)}}.bg-green-500\/10{background-color:#00c7581a}@supports (color:color-mix(in lab, red, red)){.bg-green-500\/10{background-color:color-mix(in oklab, var(--color-green-500) 10%, transparent)}}.bg-muted{background-color:var(--muted)}.bg-muted-foreground\/20{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.bg-muted-foreground\/20{background-color:color-mix(in oklab, var(--muted-foreground) 20%, transparent)}}.bg-muted-foreground\/30{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.bg-muted-foreground\/30{background-color:color-mix(in oklab, var(--muted-foreground) 30%, transparent)}}.bg-muted\/30{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/30{background-color:color-mix(in oklab, var(--muted) 30%, transparent)}}.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/50{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.bg-orange-50{background-color:var(--color-orange-50)}.bg-orange-50\/50{background-color:#fff7ed80}@supports (color:color-mix(in lab, red, red)){.bg-orange-50\/50{background-color:color-mix(in oklab, var(--color-orange-50) 50%, transparent)}}.bg-orange-100{background-color:var(--color-orange-100)}.bg-orange-100\/50{background-color:#ffedd580}@supports (color:color-mix(in lab, red, red)){.bg-orange-100\/50{background-color:color-mix(in oklab, var(--color-orange-100) 50%, transparent)}}.bg-orange-500{background-color:var(--color-orange-500)}.bg-orange-500\/5{background-color:#fe6e000d}@supports (color:color-mix(in lab, red, red)){.bg-orange-500\/5{background-color:color-mix(in oklab, var(--color-orange-500) 5%, transparent)}}.bg-orange-500\/10{background-color:#fe6e001a}@supports (color:color-mix(in lab, red, red)){.bg-orange-500\/10{background-color:color-mix(in oklab, var(--color-orange-500) 10%, transparent)}}.bg-popover{background-color:var(--popover)}.bg-primary,.bg-primary\/10{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/10{background-color:color-mix(in oklab, var(--primary) 10%, transparent)}}.bg-primary\/30{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/30{background-color:color-mix(in oklab, var(--primary) 30%, transparent)}}.bg-primary\/40{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/40{background-color:color-mix(in oklab, var(--primary) 40%, transparent)}}.bg-purple-50{background-color:var(--color-purple-50)}.bg-purple-100{background-color:var(--color-purple-100)}.bg-purple-500{background-color:var(--color-purple-500)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/10{background-color:color-mix(in oklab, var(--color-red-500) 10%, transparent)}}.bg-secondary{background-color:var(--secondary)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\/60{background-color:#fff9}@supports (color:color-mix(in lab, red, red)){.bg-white\/60{background-color:color-mix(in oklab, var(--color-white) 60%, transparent)}}.bg-white\/90{background-color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.bg-white\/90{background-color:color-mix(in oklab, var(--color-white) 90%, transparent)}}.bg-yellow-100{background-color:var(--color-yellow-100)}.fill-current{fill:currentColor}.object-cover{object-fit:cover}.p-0{padding:0}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.p-\[1px\]{padding:1px}.px-1{padding-inline:var(--spacing)}.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-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0{padding-block:0}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.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-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.pt-0{padding-top:0}.pt-1{padding-top:var(--spacing)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-8{padding-top:calc(var(--spacing) * 8)}.pt-9{padding-top:calc(var(--spacing) * 9)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-8{padding-left:calc(var(--spacing) * 8)}.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}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.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-\[\#643FB2\]{color:#643fb2}.text-amber-500{color:var(--color-amber-500)}.text-amber-600{color:var(--color-amber-600)}.text-amber-600\/80{color:#dd7400cc}@supports (color:color-mix(in lab, red, red)){.text-amber-600\/80{color:color-mix(in oklab, var(--color-amber-600) 80%, transparent)}}.text-amber-700{color:var(--color-amber-700)}.text-amber-800{color:var(--color-amber-800)}.text-amber-900{color:var(--color-amber-900)}.text-blue-500{color:var(--color-blue-500)}.text-blue-500\/80{color:#3080ffcc}@supports (color:color-mix(in lab, red, red)){.text-blue-500\/80{color:color-mix(in oklab, var(--color-blue-500) 80%, transparent)}}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-blue-800{color:var(--color-blue-800)}.text-blue-900{color:var(--color-blue-900)}.text-card-foreground{color:var(--card-foreground)}.text-current{color:currentColor}.text-destructive,.text-destructive\/70{color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.text-destructive\/70{color:color-mix(in oklab, var(--destructive) 70%, transparent)}}.text-destructive\/90{color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.text-destructive\/90{color:color-mix(in oklab, var(--destructive) 90%, transparent)}}.text-emerald-600{color:var(--color-emerald-600)}.text-foreground{color:var(--foreground)}.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-gray-700{color:var(--color-gray-700)}.text-gray-900{color:var(--color-gray-900)}.text-green-500{color:var(--color-green-500)}.text-green-600{color:var(--color-green-600)}.text-green-700{color:var(--color-green-700)}.text-green-800{color:var(--color-green-800)}.text-green-900{color:var(--color-green-900)}.text-muted-foreground,.text-muted-foreground\/60{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/60{color:color-mix(in oklab, var(--muted-foreground) 60%, transparent)}}.text-muted-foreground\/70{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/70{color:color-mix(in oklab, var(--muted-foreground) 70%, transparent)}}.text-muted-foreground\/80{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/80{color:color-mix(in oklab, var(--muted-foreground) 80%, transparent)}}.text-orange-500{color:var(--color-orange-500)}.text-orange-600{color:var(--color-orange-600)}.text-orange-700{color:var(--color-orange-700)}.text-orange-800{color:var(--color-orange-800)}.text-orange-900{color:var(--color-orange-900)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-purple-500{color:var(--color-purple-500)}.text-purple-600{color:var(--color-purple-600)}.text-purple-800{color:var(--color-purple-800)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-red-800{color:var(--color-red-800)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-white{color:var(--color-white)}.text-yellow-600{color:var(--color-yellow-600)}.text-yellow-700{color:var(--color-yellow-700)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[\#643FB2\]\/20{--tw-shadow-color:#643fb233}@supports (color:color-mix(in lab, red, red)){.shadow-\[\#643FB2\]\/20{--tw-shadow-color:color-mix(in oklab, oklab(47.4316% .069152 -.159147/.2) var(--tw-shadow-alpha), transparent)}}.shadow-green-500\/20{--tw-shadow-color:#00c75833}@supports (color:color-mix(in lab, red, red)){.shadow-green-500\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-green-500) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-orange-500\/20{--tw-shadow-color:#fe6e0033}@supports (color:color-mix(in lab, red, red)){.shadow-orange-500\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-orange-500) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-primary\/25{--tw-shadow-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.shadow-primary\/25{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--primary) 25%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-red-500\/20{--tw-shadow-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.shadow-red-500\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-red-500) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-blue-500{--tw-ring-color:var(--color-blue-500)}.ring-blue-500\/20{--tw-ring-color:#3080ff33}@supports (color:color-mix(in lab, red, red)){.ring-blue-500\/20{--tw-ring-color:color-mix(in oklab, var(--color-blue-500) 20%, transparent)}}.ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.drop-shadow-lg{--tw-drop-shadow-size:drop-shadow(0 4px 4px var(--tw-drop-shadow-color,#00000026));--tw-drop-shadow:drop-shadow(var(--drop-shadow-lg));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,)}.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-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{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-\[color\,box-shadow\]{transition-property:color,box-shadow;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-shadow{transition-property:box-shadow;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))}.transition-none{transition-property:none}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.fade-in-0{--tw-enter-opacity:0}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.zoom-in-95{--tw-enter-scale:.95}.\[animation-delay\:-0\.3s\]{animation-delay:-.3s}.\[animation-delay\:-0\.15s\]{animation-delay:-.15s}.fade-in{--tw-enter-opacity:0}.running{animation-play-state:running}.slide-in-from-bottom-2{--tw-enter-translate-y:calc(2*var(--spacing))}.group-open\:rotate-90:is(:where(.group):is([open],:popover-open,:open) *){rotate:90deg}.group-open\:rotate-180:is(:where(.group):is([open],:popover-open,:open) *){rotate:180deg}@media (hover:hover){.group-hover\:bg-primary:is(:where(.group):hover *){background-color:var(--primary)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.group-hover\:shadow-md:is(:where(.group):hover *){--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px 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)}.group-hover\:shadow-primary\/20:is(:where(.group):hover *){--tw-shadow-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.group-hover\:shadow-primary\/20:is(:where(.group):hover *){--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--primary) 20%, transparent) var(--tw-shadow-alpha), transparent)}}}.group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled=true] *){opacity:.5}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.selection\:bg-primary ::selection{background-color:var(--primary)}.selection\:bg-primary::selection{background-color:var(--primary)}.selection\:text-primary-foreground ::selection{color:var(--primary-foreground)}.selection\:text-primary-foreground::selection{color:var(--primary-foreground)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:calc(var(--spacing) * 7)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.first\:mt-0:first-child{margin-top:0}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}.last\:border-r-0:last-child{border-right-style:var(--tw-border-style);border-right-width:0}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\:scale-y-\[1\.15\]:hover{--tw-scale-y:1.15;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:border-gray-300:hover{border-color:var(--color-gray-300)}.hover\:border-muted-foreground\/30:hover{border-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.hover\:border-muted-foreground\/30:hover{border-color:color-mix(in oklab, var(--muted-foreground) 30%, transparent)}}.hover\:bg-accent:hover,.hover\:bg-accent\/50:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent\/50:hover{background-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.hover\:bg-amber-100:hover{background-color:var(--color-amber-100)}.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-destructive\/80:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/80:hover{background-color:color-mix(in oklab, var(--destructive) 80%, transparent)}}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, var(--destructive) 90%, transparent)}}.hover\:bg-muted:hover,.hover\:bg-muted\/30:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/30:hover{background-color:color-mix(in oklab, var(--muted) 30%, transparent)}}.hover\:bg-muted\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.hover\:bg-muted\/70:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/70:hover{background-color:color-mix(in oklab, var(--muted) 70%, transparent)}}.hover\:bg-orange-100:hover{background-color:var(--color-orange-100)}.hover\:bg-primary\/20:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/20:hover{background-color:color-mix(in oklab, var(--primary) 20%, transparent)}}.hover\:bg-primary\/80:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/80:hover{background-color:color-mix(in oklab, var(--primary) 80%, transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--primary) 90%, transparent)}}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab, var(--secondary) 80%, transparent)}}.hover\:bg-white:hover{background-color:var(--color-white)}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-destructive\/80:hover{color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:text-destructive\/80:hover{color:color-mix(in oklab, var(--destructive) 80%, transparent)}}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-orange-900:hover{color:var(--color-orange-900)}.hover\:text-primary:hover{color:var(--primary)}.hover\:text-red-600:hover{color:var(--color-red-600)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-70:hover{opacity:.7}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px 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)}.hover\:brightness-110:hover{--tw-brightness:brightness(110%);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,)}}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.focus-visible\:ring-ring:focus-visible,.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:var(--background)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing) * 2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing) * 3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing) * 4)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[inset\]\:pl-8[data-inset]{padding-left:calc(var(--spacing) * 8)}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[size\=default\]\:h-9[data-size=default]{height:calc(var(--spacing) * 9)}.data-\[size\=sm\]\:h-8[data-size=sm]{height:calc(var(--spacing) * 8)}:is(.\*\:data-\[slot\=select-value\]\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.\*\:data-\[slot\=select-value\]\:flex>*)[data-slot=select-value]{display:flex}:is(.\*\:data-\[slot\=select-value\]\:items-center>*)[data-slot=select-value]{align-items:center}:is(.\*\:data-\[slot\=select-value\]\:gap-2>*)[data-slot=select-value]{gap:calc(var(--spacing) * 2)}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:var(--background)}.data-\[state\=active\]\:text-foreground[data-state=active]{color:var(--foreground)}.data-\[state\=active\]\:shadow[data-state=active]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px 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)}.data-\[state\=checked\]\:translate-x-4[data-state=checked]{--tw-translate-x:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=checked\]\:border-primary[data-state=checked]{border-color:var(--primary)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--primary)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:var(--primary-foreground)}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--accent)}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:var(--accent-foreground)}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:var(--input)}.data-\[variant\=destructive\]\:text-destructive[data-variant=destructive]{color:var(--destructive)}.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.data-\[variant\=destructive\]\:focus\:text-destructive[data-variant=destructive]:focus{color:var(--destructive)}@media (width>=40rem){.sm\:w-64{width:calc(var(--spacing) * 64)}.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:flex-none{flex:none}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}}@media (width>=48rem){.md\:col-span-2{grid-column:span 2/span 2}.md\:col-start-2{grid-column-start:2}.md\:inline{display:inline}.md\:max-w-2xl{max-width:var(--container-2xl)}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media (width>=64rem){.lg\:col-span-3{grid-column:span 3/span 3}.lg\:max-w-4xl{max-width:var(--container-4xl)}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}}@media (width>=80rem){.xl\:col-span-2{grid-column:span 2/span 2}.xl\:col-span-4{grid-column:span 4/span 4}.xl\:max-w-5xl{max-width:var(--container-5xl)}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.dark\:scale-0:is(.dark *){--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x) var(--tw-scale-y)}.dark\:scale-100:is(.dark *){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.dark\:-rotate-90:is(.dark *){rotate:-90deg}.dark\:rotate-0:is(.dark *){rotate:0deg}.dark\:\!border-gray-500:is(.dark *){border-color:var(--color-gray-500)!important}.dark\:\!border-gray-600:is(.dark *){border-color:var(--color-gray-600)!important}.dark\:border-\[\#8B5CF6\]:is(.dark *){border-color:#8b5cf6}.dark\:border-\[\#8B5CF6\]\/20:is(.dark *){border-color:oklab(60.5631% .0845411 -.201932/.2)}.dark\:border-\[\#8B5CF6\]\/30:is(.dark *){border-color:oklab(60.5631% .0845411 -.201932/.3)}.dark\:border-amber-800:is(.dark *){border-color:var(--color-amber-800)}.dark\:border-amber-900:is(.dark *){border-color:var(--color-amber-900)}.dark\:border-blue-400:is(.dark *){border-color:var(--color-blue-400)}.dark\:border-blue-500:is(.dark *){border-color:var(--color-blue-500)}.dark\:border-blue-700:is(.dark *){border-color:var(--color-blue-700)}.dark\:border-blue-800:is(.dark *){border-color:var(--color-blue-800)}.dark\:border-gray-500:is(.dark *){border-color:var(--color-gray-500)}.dark\:border-gray-600:is(.dark *){border-color:var(--color-gray-600)}.dark\:border-gray-700:is(.dark *){border-color:var(--color-gray-700)}.dark\:border-green-400:is(.dark *){border-color:var(--color-green-400)}.dark\:border-green-800:is(.dark *){border-color:var(--color-green-800)}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:border-orange-400:is(.dark *){border-color:var(--color-orange-400)}.dark\:border-orange-700:is(.dark *){border-color:var(--color-orange-700)}.dark\:border-orange-800:is(.dark *){border-color:var(--color-orange-800)}.dark\:border-red-400:is(.dark *){border-color:var(--color-red-400)}.dark\:border-red-800:is(.dark *){border-color:var(--color-red-800)}.dark\:\!bg-gray-800\/90:is(.dark *){background-color:#1e2939e6!important}@supports (color:color-mix(in lab, red, red)){.dark\:\!bg-gray-800\/90:is(.dark *){background-color:color-mix(in oklab, var(--color-gray-800) 90%, transparent)!important}}.dark\:bg-\[\#8B5CF6\]:is(.dark *){background-color:#8b5cf6}.dark\:bg-\[\#8B5CF6\]\/10:is(.dark *){background-color:oklab(60.5631% .0845411 -.201932/.1)}.dark\:bg-amber-600:is(.dark *){background-color:var(--color-amber-600)}.dark\:bg-amber-950\/20:is(.dark *){background-color:#46190133}@supports (color:color-mix(in lab, red, red)){.dark\:bg-amber-950\/20:is(.dark *){background-color:color-mix(in oklab, var(--color-amber-950) 20%, transparent)}}.dark\:bg-amber-950\/50:is(.dark *){background-color:#46190180}@supports (color:color-mix(in lab, red, red)){.dark\:bg-amber-950\/50:is(.dark *){background-color:color-mix(in oklab, var(--color-amber-950) 50%, transparent)}}.dark\:bg-blue-500\/10:is(.dark *){background-color:#3080ff1a}@supports (color:color-mix(in lab, red, red)){.dark\:bg-blue-500\/10:is(.dark *){background-color:color-mix(in oklab, var(--color-blue-500) 10%, transparent)}}.dark\:bg-blue-600:is(.dark *){background-color:var(--color-blue-600)}.dark\:bg-blue-900:is(.dark *){background-color:var(--color-blue-900)}.dark\:bg-blue-900\/20:is(.dark *){background-color:#1c398e33}@supports (color:color-mix(in lab, red, red)){.dark\:bg-blue-900\/20:is(.dark *){background-color:color-mix(in oklab, var(--color-blue-900) 20%, transparent)}}.dark\:bg-blue-950\/20:is(.dark *){background-color:#16245633}@supports (color:color-mix(in lab, red, red)){.dark\:bg-blue-950\/20:is(.dark *){background-color:color-mix(in oklab, var(--color-blue-950) 20%, transparent)}}.dark\:bg-blue-950\/40:is(.dark *){background-color:#16245666}@supports (color:color-mix(in lab, red, red)){.dark\:bg-blue-950\/40:is(.dark *){background-color:color-mix(in oklab, var(--color-blue-950) 40%, transparent)}}.dark\:bg-blue-950\/50:is(.dark *){background-color:#16245680}@supports (color:color-mix(in lab, red, red)){.dark\:bg-blue-950\/50:is(.dark *){background-color:color-mix(in oklab, var(--color-blue-950) 50%, transparent)}}.dark\:bg-blue-950\/95:is(.dark *){background-color:#162456f2}@supports (color:color-mix(in lab, red, red)){.dark\:bg-blue-950\/95:is(.dark *){background-color:color-mix(in oklab, var(--color-blue-950) 95%, transparent)}}.dark\:bg-card:is(.dark *){background-color:var(--card)}.dark\:bg-destructive\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-destructive\/60:is(.dark *){background-color:color-mix(in oklab, var(--destructive) 60%, transparent)}}.dark\:bg-emerald-600:is(.dark *){background-color:var(--color-emerald-600)}.dark\:bg-foreground\/10:is(.dark *){background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-foreground\/10:is(.dark *){background-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}.dark\:bg-gray-500:is(.dark *){background-color:var(--color-gray-500)}.dark\:bg-gray-800:is(.dark *){background-color:var(--color-gray-800)}.dark\:bg-gray-800\/90:is(.dark *){background-color:#1e2939e6}@supports (color:color-mix(in lab, red, red)){.dark\:bg-gray-800\/90:is(.dark *){background-color:color-mix(in oklab, var(--color-gray-800) 90%, transparent)}}.dark\:bg-gray-900:is(.dark *){background-color:var(--color-gray-900)}.dark\:bg-gray-900\/30:is(.dark *){background-color:#1018284d}@supports (color:color-mix(in lab, red, red)){.dark\:bg-gray-900\/30:is(.dark *){background-color:color-mix(in oklab, var(--color-gray-900) 30%, transparent)}}.dark\:bg-green-400:is(.dark *){background-color:var(--color-green-400)}.dark\:bg-green-500\/10:is(.dark *){background-color:#00c7581a}@supports (color:color-mix(in lab, red, red)){.dark\:bg-green-500\/10:is(.dark *){background-color:color-mix(in oklab, var(--color-green-500) 10%, transparent)}}.dark\:bg-green-900:is(.dark *){background-color:var(--color-green-900)}.dark\:bg-green-950:is(.dark *){background-color:var(--color-green-950)}.dark\:bg-green-950\/20:is(.dark *){background-color:#032e1533}@supports (color:color-mix(in lab, red, red)){.dark\:bg-green-950\/20:is(.dark *){background-color:color-mix(in oklab, var(--color-green-950) 20%, transparent)}}.dark\:bg-green-950\/50:is(.dark *){background-color:#032e1580}@supports (color:color-mix(in lab, red, red)){.dark\:bg-green-950\/50:is(.dark *){background-color:color-mix(in oklab, var(--color-green-950) 50%, transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab, var(--input) 30%, transparent)}}.dark\:bg-orange-400:is(.dark *){background-color:var(--color-orange-400)}.dark\:bg-orange-500\/10:is(.dark *){background-color:#fe6e001a}@supports (color:color-mix(in lab, red, red)){.dark\:bg-orange-500\/10:is(.dark *){background-color:color-mix(in oklab, var(--color-orange-500) 10%, transparent)}}.dark\:bg-orange-600:is(.dark *){background-color:var(--color-orange-600)}.dark\:bg-orange-900:is(.dark *){background-color:var(--color-orange-900)}.dark\:bg-orange-950:is(.dark *){background-color:var(--color-orange-950)}.dark\:bg-orange-950\/20:is(.dark *){background-color:#44130633}@supports (color:color-mix(in lab, red, red)){.dark\:bg-orange-950\/20:is(.dark *){background-color:color-mix(in oklab, var(--color-orange-950) 20%, transparent)}}.dark\:bg-orange-950\/30:is(.dark *){background-color:#4413064d}@supports (color:color-mix(in lab, red, red)){.dark\:bg-orange-950\/30:is(.dark *){background-color:color-mix(in oklab, var(--color-orange-950) 30%, transparent)}}.dark\:bg-orange-950\/50:is(.dark *){background-color:#44130680}@supports (color:color-mix(in lab, red, red)){.dark\:bg-orange-950\/50:is(.dark *){background-color:color-mix(in oklab, var(--color-orange-950) 50%, transparent)}}.dark\:bg-purple-600:is(.dark *){background-color:var(--color-purple-600)}.dark\:bg-purple-900:is(.dark *){background-color:var(--color-purple-900)}.dark\:bg-red-400:is(.dark *){background-color:var(--color-red-400)}.dark\:bg-red-900:is(.dark *){background-color:var(--color-red-900)}.dark\:bg-red-950:is(.dark *){background-color:var(--color-red-950)}.dark\:bg-red-950\/20:is(.dark *){background-color:#46080933}@supports (color:color-mix(in lab, red, red)){.dark\:bg-red-950\/20:is(.dark *){background-color:color-mix(in oklab, var(--color-red-950) 20%, transparent)}}.dark\:text-\[\#8B5CF6\]:is(.dark *){color:#8b5cf6}.dark\:text-amber-100:is(.dark *){color:var(--color-amber-100)}.dark\:text-amber-200:is(.dark *){color:var(--color-amber-200)}.dark\:text-amber-300:is(.dark *){color:var(--color-amber-300)}.dark\:text-amber-400:is(.dark *){color:var(--color-amber-400)}.dark\:text-amber-400\/80:is(.dark *){color:#fcbb00cc}@supports (color:color-mix(in lab, red, red)){.dark\:text-amber-400\/80:is(.dark *){color:color-mix(in oklab, var(--color-amber-400) 80%, transparent)}}.dark\:text-amber-500:is(.dark *){color:var(--color-amber-500)}.dark\:text-blue-100:is(.dark *){color:var(--color-blue-100)}.dark\:text-blue-200:is(.dark *){color:var(--color-blue-200)}.dark\:text-blue-300:is(.dark *){color:var(--color-blue-300)}.dark\:text-blue-400:is(.dark *){color:var(--color-blue-400)}.dark\:text-blue-400\/70:is(.dark *){color:#54a2ffb3}@supports (color:color-mix(in lab, red, red)){.dark\:text-blue-400\/70:is(.dark *){color:color-mix(in oklab, var(--color-blue-400) 70%, transparent)}}.dark\:text-blue-500:is(.dark *){color:var(--color-blue-500)}.dark\:text-emerald-400:is(.dark *){color:var(--color-emerald-400)}.dark\:text-gray-100:is(.dark *){color:var(--color-gray-100)}.dark\:text-gray-300:is(.dark *){color:var(--color-gray-300)}.dark\:text-gray-400:is(.dark *){color:var(--color-gray-400)}.dark\:text-green-100:is(.dark *){color:var(--color-green-100)}.dark\:text-green-200:is(.dark *){color:var(--color-green-200)}.dark\:text-green-300:is(.dark *){color:var(--color-green-300)}.dark\:text-green-400:is(.dark *){color:var(--color-green-400)}.dark\:text-orange-100:is(.dark *){color:var(--color-orange-100)}.dark\:text-orange-200:is(.dark *){color:var(--color-orange-200)}.dark\:text-orange-300:is(.dark *){color:var(--color-orange-300)}.dark\:text-orange-400:is(.dark *){color:var(--color-orange-400)}.dark\:text-purple-200:is(.dark *){color:var(--color-purple-200)}.dark\:text-purple-400:is(.dark *){color:var(--color-purple-400)}.dark\:text-red-200:is(.dark *){color:var(--color-red-200)}.dark\:text-red-400:is(.dark *){color:var(--color-red-400)}.dark\:text-yellow-400:is(.dark *){color:var(--color-yellow-400)}.dark\:opacity-30:is(.dark *){opacity:.3}@media (hover:hover){.dark\:hover\:border-gray-600:is(.dark *):hover{border-color:var(--color-gray-600)}.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.dark\:hover\:bg-amber-950\/30:is(.dark *):hover{background-color:#4619014d}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-amber-950\/30:is(.dark *):hover{background-color:color-mix(in oklab, var(--color-amber-950) 30%, transparent)}}.dark\:hover\:bg-gray-800:is(.dark *):hover{background-color:var(--color-gray-800)}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--input) 50%, transparent)}}.dark\:hover\:bg-orange-950\/40:is(.dark *):hover{background-color:#44130666}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-orange-950\/40:is(.dark *):hover{background-color:color-mix(in oklab, var(--color-orange-950) 40%, transparent)}}.dark\:hover\:bg-red-900\/20:is(.dark *):hover{background-color:#82181a33}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-red-900\/20:is(.dark *):hover{background-color:color-mix(in oklab, var(--color-red-900) 20%, transparent)}}.dark\:hover\:text-orange-200:is(.dark *):hover{color:var(--color-orange-200)}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:data-\[state\=checked\]\:bg-primary:is(.dark *)[data-state=checked]{background-color:var(--primary)}.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.\[\&_p\]\:leading-relaxed p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*=text-]){color:var(--muted-foreground)}.\[\.border-b\]\:pb-6.border-b{padding-bottom:calc(var(--spacing) * 6)}.\[\.border-t\]\:pt-6.border-t{padding-top:calc(var(--spacing) * 6)}:is(.\*\:\[span\]\:last\:flex>*):is(span):last-child{display:flex}:is(.\*\:\[span\]\:last\:items-center>*):is(span):last-child{align-items:center}:is(.\*\:\[span\]\:last\:gap-2>*):is(span):last-child{gap:calc(var(--spacing) * 2)}:is(.data-\[variant\=destructive\]\:\*\:\[svg\]\:\!text-destructive[data-variant=destructive]>*):is(svg){color:var(--destructive)!important}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:top-4>svg{top:calc(var(--spacing) * 4)}.\[\&\>svg\]\:left-4>svg{left:calc(var(--spacing) * 4)}.\[\&\>svg\]\:text-foreground>svg{color:var(--foreground)}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y:-3px;translate:var(--tw-translate-x) var(--tw-translate-y)}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:calc(var(--spacing) * 7)}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--radius:.625rem;--background:oklch(100% 0 0);--foreground:oklch(14.5% 0 0);--card:oklch(100% 0 0);--card-foreground:oklch(14.5% 0 0);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.5% 0 0);--primary:oklch(48% .18 290);--primary-foreground:oklch(98.5% 0 0);--secondary:oklch(97% 0 0);--secondary-foreground:oklch(20.5% 0 0);--muted:oklch(97% 0 0);--muted-foreground:oklch(55.6% 0 0);--accent:oklch(97% 0 0);--accent-foreground:oklch(20.5% 0 0);--destructive:oklch(57.7% .245 27.325);--border:oklch(92.2% 0 0);--input:oklch(92.2% 0 0);--ring:oklch(70.8% 0 0);--chart-1:oklch(64.6% .222 41.116);--chart-2:oklch(60% .118 184.704);--chart-3:oklch(39.8% .07 227.392);--chart-4:oklch(82.8% .189 84.429);--chart-5:oklch(76.9% .188 70.08);--sidebar:oklch(98.5% 0 0);--sidebar-foreground:oklch(14.5% 0 0);--sidebar-primary:oklch(20.5% 0 0);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(97% 0 0);--sidebar-accent-foreground:oklch(20.5% 0 0);--sidebar-border:oklch(92.2% 0 0);--sidebar-ring:oklch(70.8% 0 0)}.dark{--background:oklch(14.5% 0 0);--foreground:oklch(98.5% 0 0);--card:oklch(20.5% 0 0);--card-foreground:oklch(98.5% 0 0);--popover:oklch(20.5% 0 0);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(62% .2 290);--primary-foreground:oklch(98.5% 0 0);--secondary:oklch(26.9% 0 0);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(26.9% 0 0);--muted-foreground:oklch(70.8% 0 0);--accent:oklch(26.9% 0 0);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(55.6% 0 0);--chart-1:oklch(48.8% .243 264.376);--chart-2:oklch(69.6% .17 162.48);--chart-3:oklch(76.9% .188 70.08);--chart-4:oklch(62.7% .265 303.9);--chart-5:oklch(64.5% .246 16.439);--sidebar:oklch(20.5% 0 0);--sidebar-foreground:oklch(98.5% 0 0);--sidebar-primary:oklch(48.8% .243 264.376);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(26.9% 0 0);--sidebar-accent-foreground:oklch(98.5% 0 0);--sidebar-border:oklch(100% 0 0/.1);--sidebar-ring:oklch(55.6% 0 0)}.workflow-chat-view .border-green-200{border-color:var(--color-emerald-200)}.workflow-chat-view .bg-green-50{background-color:var(--color-emerald-50)}.workflow-chat-view .bg-green-100{background-color:var(--color-emerald-100)}.workflow-chat-view .text-green-600{color:var(--color-emerald-600)}.workflow-chat-view .text-green-700{color:var(--color-emerald-700)}.workflow-chat-view .text-green-800{color:var(--color-emerald-800)}.highlight-attention{animation:1s ease-out highlight-flash}@keyframes highlight-flash{0%{background-color:#fb923c4d;transform:scale(1.02)}to{background-color:#0000;transform:scale(1)}}.hil-waiting-glow{animation:2s infinite pulse-glow;box-shadow:0 0 #fb923c66,inset 0 0 0 1px #fb923c33}@keyframes pulse-glow{0%,to{box-shadow:0 0 #fb923c66,inset 0 0 0 1px #fb923c33}50%{box-shadow:0 0 20px 5px #fb923c33,inset 0 0 0 2px #fb923c4d}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@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-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";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}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@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}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 .5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#555;--xy-background-pattern-lines-color-default:#333;--xy-background-pattern-cross-color-default:#333;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 .5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;color:var(--xy-node-color,var(--xy-node-color-default));text-align:center;border:var(--xy-node-border,var(--xy-node-border-default));background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));padding:10px;font-size:12px}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default)));color:var(--xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default)))}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)))}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))} +@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-red-950:oklch(25.8% .092 26.042);--color-orange-50:oklch(98% .016 73.684);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-200:oklch(90.1% .076 70.697);--color-orange-300:oklch(83.7% .128 66.29);--color-orange-400:oklch(75% .183 55.934);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-600:oklch(64.6% .222 41.116);--color-orange-700:oklch(55.3% .195 38.402);--color-orange-800:oklch(47% .157 37.304);--color-orange-900:oklch(40.8% .123 38.172);--color-orange-950:oklch(26.6% .079 36.259);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-amber-950:oklch(27.9% .077 45.635);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-600:oklch(68.1% .162 75.834);--color-yellow-700:oklch(55.4% .135 66.442);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--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-50:oklch(97.9% .021 166.113);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-emerald-800:oklch(43.2% .095 166.913);--color-blue-50:oklch(97% .014 254.604);--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-50:oklch(97.7% .014 308.299);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-800:oklch(43.8% .218 303.724);--color-purple-900:oklch(38.1% .176 304.987);--color-gray-50:oklch(98.5% .002 247.839);--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-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-lg:32rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--container-7xl:80rem;--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:calc(1.5 / 1);--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);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-relaxed:1.625;--drop-shadow-lg:0 4px 4px #00000026;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--animate-bounce:bounce 1s infinite;--blur-sm:8px;--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%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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;-webkit-text-decoration:inherit;-webkit-text-decoration: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:where(:not(iframe)){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]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab, var(--ring) 50%, transparent)}}body{background-color:var(--background);color:var(--foreground)}}@layer components;@layer utilities{.\@container\/card-header{container:card-header/inline-size}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:0}.inset-2{inset:calc(var(--spacing) * 2)}.inset-y-0{inset-block:0}.top-0{top:0}.top-1{top:var(--spacing)}.top-2{top:calc(var(--spacing) * 2)}.top-4{top:calc(var(--spacing) * 4)}.top-\[30px\]{top:30px}.-right-2{right:calc(var(--spacing) * -2)}.right-0{right:0}.right-1{right:var(--spacing)}.right-2{right:calc(var(--spacing) * 2)}.right-4{right:calc(var(--spacing) * 4)}.bottom-0{bottom:0}.bottom-24{bottom:calc(var(--spacing) * 24)}.-left-2{left:calc(var(--spacing) * -2)}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-\[18px\]{left:18px}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.container\!{width:100%!important}@media (width>=40rem){.container\!{max-width:40rem!important}}@media (width>=48rem){.container\!{max-width:48rem!important}}@media (width>=64rem){.container\!{max-width:64rem!important}}@media (width>=80rem){.container\!{max-width:80rem!important}}@media (width>=96rem){.container\!{max-width:96rem!important}}.m-2{margin:calc(var(--spacing) * 2)}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-0\.5{margin-inline:calc(var(--spacing) * .5)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.my-1{margin-block:var(--spacing)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-3{margin-block:calc(var(--spacing) * 3)}.my-4{margin-block:calc(var(--spacing) * 4)}.mt-0{margin-top:0}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.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-12{margin-top:calc(var(--spacing) * 12)}.mr-1{margin-right:var(--spacing)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:var(--spacing)}.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)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.ml-0{margin-left:0}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-5{margin-left:calc(var(--spacing) * 5)}.ml-6{margin-left:calc(var(--spacing) * 6)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.field-sizing-content{field-sizing:content}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.\!h-2{height:calc(var(--spacing) * 2)!important}.h-0{height:0}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1{height:var(--spacing)}.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-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-32{height:calc(var(--spacing) * 32)}.h-\[1\.2rem\]{height:1.2rem}.h-\[1px\]{height:1px}.h-\[85vh\]{height:85vh}.h-\[500px\]{height:500px}.h-\[calc\(100\%\+8px\)\]{height:calc(100% + 8px)}.h-\[calc\(100vh-3\.5rem\)\]{height:calc(100vh - 3.5rem)}.h-\[calc\(100vh-3\.7rem\)\]{height:calc(100vh - 3.7rem)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-\(--radix-dropdown-menu-content-available-height\){max-height:var(--radix-dropdown-menu-content-available-height)}.max-h-\(--radix-select-content-available-height\){max-height:var(--radix-select-content-available-height)}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-60{max-height:calc(var(--spacing) * 60)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[200px\]{max-height:200px}.max-h-\[400px\]{max-height:400px}.max-h-none{max-height:none}.max-h-screen{max-height:100vh}.\!min-h-0{min-height:0!important}.min-h-0{min-height:0}.min-h-16{min-height:calc(var(--spacing) * 16)}.min-h-\[36px\]{min-height:36px}.min-h-\[40px\]{min-height:40px}.min-h-\[50vh\]{min-height:50vh}.min-h-\[400px\]{min-height:400px}.min-h-screen{min-height:100vh}.\!w-2{width:calc(var(--spacing) * 2)!important}.w-1{width:var(--spacing)}.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-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-56{width:calc(var(--spacing) * 56)}.w-64{width:calc(var(--spacing) * 64)}.w-80{width:calc(var(--spacing) * 80)}.w-\[1\.2rem\]{width:1.2rem}.w-\[1px\]{width:1px}.w-\[28rem\]{width:28rem}.w-\[90vw\]{width:90vw}.w-\[600px\]{width:600px}.w-\[800px\]{width:800px}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-\[80\%\]{max-width:80%}.max-w-\[90vw\]{max-width:90vw}.max-w-\[200px\]{max-width:200px}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.\!min-w-0{min-width:0!important}.min-w-0{min-width:0}.min-w-\[1\.25rem\]{min-width:1.25rem}.min-w-\[8rem\]{min-width:8rem}.min-w-\[50px\]{min-width:50px}.min-w-\[80px\]{min-width:80px}.min-w-\[300px\]{min-width:300px}.min-w-\[400px\]{min-width:400px}.min-w-\[800px\]{min-width:800px}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.origin-\(--radix-dropdown-menu-content-transform-origin\){transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.origin-\(--radix-select-content-transform-origin\){transform-origin:var(--radix-select-content-transform-origin)}.origin-bottom{transform-origin:bottom}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-4{--tw-translate-x:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-0{--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-75{--tw-scale-x:75%;--tw-scale-y:75%;--tw-scale-z:75%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.rotate-0{rotate:0deg}.rotate-90{rotate:90deg}.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-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.scroll-my-1{scroll-margin-block:var(--spacing)}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[auto_auto_1fr_auto\]{grid-template-columns:auto auto 1fr auto}.grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.flex-col{flex-direction:column}.flex-row-reverse{flex-direction:row-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:0}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-0\.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-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * 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-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)}:where(.space-x-1>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(var(--spacing) * var(--tw-space-x-reverse));margin-inline-end:calc(var(--spacing) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}.gap-y-1{row-gap:var(--spacing)}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.\!rounded-full{border-radius:2147483647px!important}.rounded{border-radius:.25rem}.rounded-\[4px\]{border-radius:4px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.\!border{border-style:var(--tw-border-style)!important;border-width:1px!important}.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-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-0{border-left-style:var(--tw-border-style);border-left-width:0}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.\!border-gray-600{border-color:var(--color-gray-600)!important}.border-\[\#643FB2\]{border-color:#643fb2}.border-\[\#643FB2\]\/20{border-color:oklab(47.4316% .069152 -.159147/.2)}.border-\[\#643FB2\]\/30{border-color:oklab(47.4316% .069152 -.159147/.3)}.border-amber-200{border-color:var(--color-amber-200)}.border-blue-200{border-color:var(--color-blue-200)}.border-blue-300{border-color:var(--color-blue-300)}.border-blue-400{border-color:var(--color-blue-400)}.border-blue-500{border-color:var(--color-blue-500)}.border-border,.border-border\/50{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/50{border-color:color-mix(in oklab, var(--border) 50%, transparent)}}.border-current\/30{border-color:currentColor}@supports (color:color-mix(in lab, red, red)){.border-current\/30{border-color:color-mix(in oklab, currentcolor 30%, transparent)}}.border-destructive\/30{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\/30{border-color:color-mix(in oklab, var(--destructive) 30%, transparent)}}.border-foreground\/5{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.border-foreground\/5{border-color:color-mix(in oklab, var(--foreground) 5%, transparent)}}.border-foreground\/10{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.border-foreground\/10{border-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}.border-foreground\/20{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.border-foreground\/20{border-color:color-mix(in oklab, var(--foreground) 20%, transparent)}}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-400{border-color:var(--color-gray-400)}.border-gray-500\/20{border-color:#6a728233}@supports (color:color-mix(in lab, red, red)){.border-gray-500\/20{border-color:color-mix(in oklab, var(--color-gray-500) 20%, transparent)}}.border-green-200{border-color:var(--color-green-200)}.border-green-500{border-color:var(--color-green-500)}.border-green-500\/20{border-color:#00c75833}@supports (color:color-mix(in lab, red, red)){.border-green-500\/20{border-color:color-mix(in oklab, var(--color-green-500) 20%, transparent)}}.border-green-500\/40{border-color:#00c75866}@supports (color:color-mix(in lab, red, red)){.border-green-500\/40{border-color:color-mix(in oklab, var(--color-green-500) 40%, transparent)}}.border-green-600\/20{border-color:#00a54433}@supports (color:color-mix(in lab, red, red)){.border-green-600\/20{border-color:color-mix(in oklab, var(--color-green-600) 20%, transparent)}}.border-input{border-color:var(--input)}.border-muted,.border-muted\/50{border-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.border-muted\/50{border-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.border-orange-200{border-color:var(--color-orange-200)}.border-orange-300{border-color:var(--color-orange-300)}.border-orange-500{border-color:var(--color-orange-500)}.border-orange-500\/20{border-color:#fe6e0033}@supports (color:color-mix(in lab, red, red)){.border-orange-500\/20{border-color:color-mix(in oklab, var(--color-orange-500) 20%, transparent)}}.border-orange-500\/40{border-color:#fe6e0066}@supports (color:color-mix(in lab, red, red)){.border-orange-500\/40{border-color:color-mix(in oklab, var(--color-orange-500) 40%, transparent)}}.border-orange-600\/20{border-color:#f0510033}@supports (color:color-mix(in lab, red, red)){.border-orange-600\/20{border-color:color-mix(in oklab, var(--color-orange-600) 20%, transparent)}}.border-primary,.border-primary\/20{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.border-primary\/20{border-color:color-mix(in oklab, var(--primary) 20%, transparent)}}.border-red-200{border-color:var(--color-red-200)}.border-red-500{border-color:var(--color-red-500)}.border-red-500\/20{border-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.border-red-500\/20{border-color:color-mix(in oklab, var(--color-red-500) 20%, transparent)}}.border-transparent{border-color:#0000}.border-yellow-200{border-color:var(--color-yellow-200)}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-\[\#643FB2\]{background-color:#643fb2}.bg-\[\#643FB2\]\/10{background-color:oklab(47.4316% .069152 -.159147/.1)}.bg-accent\/10{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\/10{background-color:color-mix(in oklab, var(--accent) 10%, transparent)}}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/10{background-color:color-mix(in oklab, var(--color-amber-500) 10%, transparent)}}.bg-background,.bg-background\/50{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\/50{background-color:color-mix(in oklab, var(--background) 50%, transparent)}}.bg-black{background-color:var(--color-black)}.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-blue-50{background-color:var(--color-blue-50)}.bg-blue-50\/80{background-color:#eff6ffcc}@supports (color:color-mix(in lab, red, red)){.bg-blue-50\/80{background-color:color-mix(in oklab, var(--color-blue-50) 80%, transparent)}}.bg-blue-50\/95{background-color:#eff6fff2}@supports (color:color-mix(in lab, red, red)){.bg-blue-50\/95{background-color:color-mix(in oklab, var(--color-blue-50) 95%, transparent)}}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-500\/5{background-color:#3080ff0d}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\/5{background-color:color-mix(in oklab, var(--color-blue-500) 5%, transparent)}}.bg-blue-500\/10{background-color:#3080ff1a}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\/10{background-color:color-mix(in oklab, var(--color-blue-500) 10%, transparent)}}.bg-blue-600{background-color:var(--color-blue-600)}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-current{background-color:currentColor}.bg-destructive,.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/10{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-foreground\/5{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.bg-foreground\/5{background-color:color-mix(in oklab, var(--foreground) 5%, transparent)}}.bg-foreground\/10{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.bg-foreground\/10{background-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-500\/10{background-color:#6a72821a}@supports (color:color-mix(in lab, red, red)){.bg-gray-500\/10{background-color:color-mix(in oklab, var(--color-gray-500) 10%, transparent)}}.bg-gray-900\/90{background-color:#101828e6}@supports (color:color-mix(in lab, red, red)){.bg-gray-900\/90{background-color:color-mix(in oklab, var(--color-gray-900) 90%, transparent)}}.bg-green-50{background-color:var(--color-green-50)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\/5{background-color:#00c7580d}@supports (color:color-mix(in lab, red, red)){.bg-green-500\/5{background-color:color-mix(in oklab, var(--color-green-500) 5%, transparent)}}.bg-green-500\/10{background-color:#00c7581a}@supports (color:color-mix(in lab, red, red)){.bg-green-500\/10{background-color:color-mix(in oklab, var(--color-green-500) 10%, transparent)}}.bg-muted{background-color:var(--muted)}.bg-muted-foreground\/20{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.bg-muted-foreground\/20{background-color:color-mix(in oklab, var(--muted-foreground) 20%, transparent)}}.bg-muted-foreground\/30{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.bg-muted-foreground\/30{background-color:color-mix(in oklab, var(--muted-foreground) 30%, transparent)}}.bg-muted\/30{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/30{background-color:color-mix(in oklab, var(--muted) 30%, transparent)}}.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/50{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.bg-orange-50{background-color:var(--color-orange-50)}.bg-orange-50\/50{background-color:#fff7ed80}@supports (color:color-mix(in lab, red, red)){.bg-orange-50\/50{background-color:color-mix(in oklab, var(--color-orange-50) 50%, transparent)}}.bg-orange-100{background-color:var(--color-orange-100)}.bg-orange-100\/50{background-color:#ffedd580}@supports (color:color-mix(in lab, red, red)){.bg-orange-100\/50{background-color:color-mix(in oklab, var(--color-orange-100) 50%, transparent)}}.bg-orange-500{background-color:var(--color-orange-500)}.bg-orange-500\/5{background-color:#fe6e000d}@supports (color:color-mix(in lab, red, red)){.bg-orange-500\/5{background-color:color-mix(in oklab, var(--color-orange-500) 5%, transparent)}}.bg-orange-500\/10{background-color:#fe6e001a}@supports (color:color-mix(in lab, red, red)){.bg-orange-500\/10{background-color:color-mix(in oklab, var(--color-orange-500) 10%, transparent)}}.bg-popover{background-color:var(--popover)}.bg-primary,.bg-primary\/10{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/10{background-color:color-mix(in oklab, var(--primary) 10%, transparent)}}.bg-primary\/30{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/30{background-color:color-mix(in oklab, var(--primary) 30%, transparent)}}.bg-primary\/40{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/40{background-color:color-mix(in oklab, var(--primary) 40%, transparent)}}.bg-purple-50{background-color:var(--color-purple-50)}.bg-purple-100{background-color:var(--color-purple-100)}.bg-purple-500{background-color:var(--color-purple-500)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/10{background-color:color-mix(in oklab, var(--color-red-500) 10%, transparent)}}.bg-secondary{background-color:var(--secondary)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\/60{background-color:#fff9}@supports (color:color-mix(in lab, red, red)){.bg-white\/60{background-color:color-mix(in oklab, var(--color-white) 60%, transparent)}}.bg-white\/90{background-color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.bg-white\/90{background-color:color-mix(in oklab, var(--color-white) 90%, transparent)}}.bg-yellow-100{background-color:var(--color-yellow-100)}.fill-current{fill:currentColor}.object-cover{object-fit:cover}.p-0{padding:0}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.p-\[1px\]{padding:1px}.px-1{padding-inline:var(--spacing)}.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-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0{padding-block:0}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.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-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.pt-0{padding-top:0}.pt-1{padding-top:var(--spacing)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-8{padding-top:calc(var(--spacing) * 8)}.pt-9{padding-top:calc(var(--spacing) * 9)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-8{padding-left:calc(var(--spacing) * 8)}.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}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.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-\[\#643FB2\]{color:#643fb2}.text-amber-500{color:var(--color-amber-500)}.text-amber-600{color:var(--color-amber-600)}.text-amber-600\/80{color:#dd7400cc}@supports (color:color-mix(in lab, red, red)){.text-amber-600\/80{color:color-mix(in oklab, var(--color-amber-600) 80%, transparent)}}.text-amber-700{color:var(--color-amber-700)}.text-amber-800{color:var(--color-amber-800)}.text-amber-900{color:var(--color-amber-900)}.text-blue-500{color:var(--color-blue-500)}.text-blue-500\/80{color:#3080ffcc}@supports (color:color-mix(in lab, red, red)){.text-blue-500\/80{color:color-mix(in oklab, var(--color-blue-500) 80%, transparent)}}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-blue-800{color:var(--color-blue-800)}.text-blue-900{color:var(--color-blue-900)}.text-card-foreground{color:var(--card-foreground)}.text-current{color:currentColor}.text-destructive,.text-destructive\/70{color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.text-destructive\/70{color:color-mix(in oklab, var(--destructive) 70%, transparent)}}.text-destructive\/90{color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.text-destructive\/90{color:color-mix(in oklab, var(--destructive) 90%, transparent)}}.text-emerald-600{color:var(--color-emerald-600)}.text-foreground{color:var(--foreground)}.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-gray-700{color:var(--color-gray-700)}.text-gray-900{color:var(--color-gray-900)}.text-green-500{color:var(--color-green-500)}.text-green-600{color:var(--color-green-600)}.text-green-700{color:var(--color-green-700)}.text-green-800{color:var(--color-green-800)}.text-green-900{color:var(--color-green-900)}.text-muted-foreground,.text-muted-foreground\/60{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/60{color:color-mix(in oklab, var(--muted-foreground) 60%, transparent)}}.text-muted-foreground\/70{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/70{color:color-mix(in oklab, var(--muted-foreground) 70%, transparent)}}.text-muted-foreground\/80{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\/80{color:color-mix(in oklab, var(--muted-foreground) 80%, transparent)}}.text-orange-500{color:var(--color-orange-500)}.text-orange-600{color:var(--color-orange-600)}.text-orange-700{color:var(--color-orange-700)}.text-orange-800{color:var(--color-orange-800)}.text-orange-900{color:var(--color-orange-900)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-purple-500{color:var(--color-purple-500)}.text-purple-600{color:var(--color-purple-600)}.text-purple-800{color:var(--color-purple-800)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-red-800{color:var(--color-red-800)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-white{color:var(--color-white)}.text-yellow-600{color:var(--color-yellow-600)}.text-yellow-700{color:var(--color-yellow-700)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[\#643FB2\]\/20{--tw-shadow-color:#643fb233}@supports (color:color-mix(in lab, red, red)){.shadow-\[\#643FB2\]\/20{--tw-shadow-color:color-mix(in oklab, oklab(47.4316% .069152 -.159147/.2) var(--tw-shadow-alpha), transparent)}}.shadow-green-500\/20{--tw-shadow-color:#00c75833}@supports (color:color-mix(in lab, red, red)){.shadow-green-500\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-green-500) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-orange-500\/20{--tw-shadow-color:#fe6e0033}@supports (color:color-mix(in lab, red, red)){.shadow-orange-500\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-orange-500) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-primary\/25{--tw-shadow-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.shadow-primary\/25{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--primary) 25%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-red-500\/20{--tw-shadow-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.shadow-red-500\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-red-500) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-blue-500{--tw-ring-color:var(--color-blue-500)}.ring-blue-500\/20{--tw-ring-color:#3080ff33}@supports (color:color-mix(in lab, red, red)){.ring-blue-500\/20{--tw-ring-color:color-mix(in oklab, var(--color-blue-500) 20%, transparent)}}.ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.drop-shadow-lg{--tw-drop-shadow-size:drop-shadow(0 4px 4px var(--tw-drop-shadow-color,#00000026));--tw-drop-shadow:drop-shadow(var(--drop-shadow-lg));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,)}.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-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{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-\[color\,box-shadow\]{transition-property:color,box-shadow;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-shadow{transition-property:box-shadow;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))}.transition-none{transition-property:none}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.fade-in-0{--tw-enter-opacity:0}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.zoom-in-95{--tw-enter-scale:.95}.\[animation-delay\:-0\.3s\]{animation-delay:-.3s}.\[animation-delay\:-0\.15s\]{animation-delay:-.15s}.fade-in{--tw-enter-opacity:0}.running{animation-play-state:running}.slide-in-from-bottom-2{--tw-enter-translate-y:calc(2*var(--spacing))}.group-open\:rotate-90:is(:where(.group):is([open],:popover-open,:open) *){rotate:90deg}.group-open\:rotate-180:is(:where(.group):is([open],:popover-open,:open) *){rotate:180deg}@media (hover:hover){.group-hover\:bg-primary:is(:where(.group):hover *){background-color:var(--primary)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.group-hover\:shadow-md:is(:where(.group):hover *){--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px 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)}.group-hover\:shadow-primary\/20:is(:where(.group):hover *){--tw-shadow-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.group-hover\:shadow-primary\/20:is(:where(.group):hover *){--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--primary) 20%, transparent) var(--tw-shadow-alpha), transparent)}}}.group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled=true] *){opacity:.5}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.selection\:bg-primary ::selection{background-color:var(--primary)}.selection\:bg-primary::selection{background-color:var(--primary)}.selection\:text-primary-foreground ::selection{color:var(--primary-foreground)}.selection\:text-primary-foreground::selection{color:var(--primary-foreground)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:calc(var(--spacing) * 7)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.first\:mt-0:first-child{margin-top:0}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}.last\:border-r-0:last-child{border-right-style:var(--tw-border-style);border-right-width:0}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\:scale-y-\[1\.15\]:hover{--tw-scale-y:1.15;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:border-gray-300:hover{border-color:var(--color-gray-300)}.hover\:border-muted-foreground\/30:hover{border-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.hover\:border-muted-foreground\/30:hover{border-color:color-mix(in oklab, var(--muted-foreground) 30%, transparent)}}.hover\:bg-accent:hover,.hover\:bg-accent\/50:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent\/50:hover{background-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.hover\:bg-amber-100:hover{background-color:var(--color-amber-100)}.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-destructive\/80:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/80:hover{background-color:color-mix(in oklab, var(--destructive) 80%, transparent)}}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, var(--destructive) 90%, transparent)}}.hover\:bg-muted:hover,.hover\:bg-muted\/30:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/30:hover{background-color:color-mix(in oklab, var(--muted) 30%, transparent)}}.hover\:bg-muted\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.hover\:bg-muted\/70:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/70:hover{background-color:color-mix(in oklab, var(--muted) 70%, transparent)}}.hover\:bg-orange-100:hover{background-color:var(--color-orange-100)}.hover\:bg-primary\/20:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/20:hover{background-color:color-mix(in oklab, var(--primary) 20%, transparent)}}.hover\:bg-primary\/80:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/80:hover{background-color:color-mix(in oklab, var(--primary) 80%, transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--primary) 90%, transparent)}}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab, var(--secondary) 80%, transparent)}}.hover\:bg-white:hover{background-color:var(--color-white)}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-destructive\/80:hover{color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:text-destructive\/80:hover{color:color-mix(in oklab, var(--destructive) 80%, transparent)}}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-orange-900:hover{color:var(--color-orange-900)}.hover\:text-primary:hover{color:var(--primary)}.hover\:text-red-600:hover{color:var(--color-red-600)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-70:hover{opacity:.7}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px 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)}.hover\:brightness-110:hover{--tw-brightness:brightness(110%);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,)}}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.focus-visible\:ring-ring:focus-visible,.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:var(--background)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing) * 2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing) * 3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing) * 4)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[inset\]\:pl-8[data-inset]{padding-left:calc(var(--spacing) * 8)}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[size\=default\]\:h-9[data-size=default]{height:calc(var(--spacing) * 9)}.data-\[size\=sm\]\:h-8[data-size=sm]{height:calc(var(--spacing) * 8)}:is(.\*\:data-\[slot\=select-value\]\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.\*\:data-\[slot\=select-value\]\:flex>*)[data-slot=select-value]{display:flex}:is(.\*\:data-\[slot\=select-value\]\:items-center>*)[data-slot=select-value]{align-items:center}:is(.\*\:data-\[slot\=select-value\]\:gap-2>*)[data-slot=select-value]{gap:calc(var(--spacing) * 2)}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:var(--background)}.data-\[state\=active\]\:text-foreground[data-state=active]{color:var(--foreground)}.data-\[state\=active\]\:shadow[data-state=active]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px 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)}.data-\[state\=checked\]\:translate-x-4[data-state=checked]{--tw-translate-x:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=checked\]\:border-primary[data-state=checked]{border-color:var(--primary)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--primary)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:var(--primary-foreground)}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--accent)}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:var(--accent-foreground)}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:var(--input)}.data-\[variant\=destructive\]\:text-destructive[data-variant=destructive]{color:var(--destructive)}.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.data-\[variant\=destructive\]\:focus\:text-destructive[data-variant=destructive]:focus{color:var(--destructive)}@media (width>=40rem){.sm\:w-64{width:calc(var(--spacing) * 64)}.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:flex-none{flex:none}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}}@media (width>=48rem){.md\:col-span-2{grid-column:span 2/span 2}.md\:col-start-2{grid-column-start:2}.md\:inline{display:inline}.md\:max-w-2xl{max-width:var(--container-2xl)}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media (width>=64rem){.lg\:col-span-3{grid-column:span 3/span 3}.lg\:max-w-4xl{max-width:var(--container-4xl)}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}}@media (width>=80rem){.xl\:col-span-2{grid-column:span 2/span 2}.xl\:col-span-4{grid-column:span 4/span 4}.xl\:max-w-5xl{max-width:var(--container-5xl)}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.dark\:scale-0:is(.dark *){--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x) var(--tw-scale-y)}.dark\:scale-100:is(.dark *){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.dark\:-rotate-90:is(.dark *){rotate:-90deg}.dark\:rotate-0:is(.dark *){rotate:0deg}.dark\:\!border-gray-500:is(.dark *){border-color:var(--color-gray-500)!important}.dark\:\!border-gray-600:is(.dark *){border-color:var(--color-gray-600)!important}.dark\:border-\[\#8B5CF6\]:is(.dark *){border-color:#8b5cf6}.dark\:border-\[\#8B5CF6\]\/20:is(.dark *){border-color:oklab(60.5631% .0845415 -.201932/.2)}.dark\:border-\[\#8B5CF6\]\/30:is(.dark *){border-color:oklab(60.5631% .0845415 -.201932/.3)}.dark\:border-amber-800:is(.dark *){border-color:var(--color-amber-800)}.dark\:border-amber-900:is(.dark *){border-color:var(--color-amber-900)}.dark\:border-blue-400:is(.dark *){border-color:var(--color-blue-400)}.dark\:border-blue-500:is(.dark *){border-color:var(--color-blue-500)}.dark\:border-blue-700:is(.dark *){border-color:var(--color-blue-700)}.dark\:border-blue-800:is(.dark *){border-color:var(--color-blue-800)}.dark\:border-gray-500:is(.dark *){border-color:var(--color-gray-500)}.dark\:border-gray-600:is(.dark *){border-color:var(--color-gray-600)}.dark\:border-gray-700:is(.dark *){border-color:var(--color-gray-700)}.dark\:border-green-400:is(.dark *){border-color:var(--color-green-400)}.dark\:border-green-800:is(.dark *){border-color:var(--color-green-800)}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:border-orange-400:is(.dark *){border-color:var(--color-orange-400)}.dark\:border-orange-700:is(.dark *){border-color:var(--color-orange-700)}.dark\:border-orange-800:is(.dark *){border-color:var(--color-orange-800)}.dark\:border-red-400:is(.dark *){border-color:var(--color-red-400)}.dark\:border-red-800:is(.dark *){border-color:var(--color-red-800)}.dark\:\!bg-gray-800\/90:is(.dark *){background-color:#1e2939e6!important}@supports (color:color-mix(in lab, red, red)){.dark\:\!bg-gray-800\/90:is(.dark *){background-color:color-mix(in oklab, var(--color-gray-800) 90%, transparent)!important}}.dark\:bg-\[\#8B5CF6\]:is(.dark *){background-color:#8b5cf6}.dark\:bg-\[\#8B5CF6\]\/10:is(.dark *){background-color:oklab(60.5631% .0845415 -.201932/.1)}.dark\:bg-amber-600:is(.dark *){background-color:var(--color-amber-600)}.dark\:bg-amber-950\/20:is(.dark *){background-color:#46190133}@supports (color:color-mix(in lab, red, red)){.dark\:bg-amber-950\/20:is(.dark *){background-color:color-mix(in oklab, var(--color-amber-950) 20%, transparent)}}.dark\:bg-amber-950\/50:is(.dark *){background-color:#46190180}@supports (color:color-mix(in lab, red, red)){.dark\:bg-amber-950\/50:is(.dark *){background-color:color-mix(in oklab, var(--color-amber-950) 50%, transparent)}}.dark\:bg-blue-500\/10:is(.dark *){background-color:#3080ff1a}@supports (color:color-mix(in lab, red, red)){.dark\:bg-blue-500\/10:is(.dark *){background-color:color-mix(in oklab, var(--color-blue-500) 10%, transparent)}}.dark\:bg-blue-600:is(.dark *){background-color:var(--color-blue-600)}.dark\:bg-blue-900:is(.dark *){background-color:var(--color-blue-900)}.dark\:bg-blue-900\/20:is(.dark *){background-color:#1c398e33}@supports (color:color-mix(in lab, red, red)){.dark\:bg-blue-900\/20:is(.dark *){background-color:color-mix(in oklab, var(--color-blue-900) 20%, transparent)}}.dark\:bg-blue-950\/20:is(.dark *){background-color:#16245633}@supports (color:color-mix(in lab, red, red)){.dark\:bg-blue-950\/20:is(.dark *){background-color:color-mix(in oklab, var(--color-blue-950) 20%, transparent)}}.dark\:bg-blue-950\/40:is(.dark *){background-color:#16245666}@supports (color:color-mix(in lab, red, red)){.dark\:bg-blue-950\/40:is(.dark *){background-color:color-mix(in oklab, var(--color-blue-950) 40%, transparent)}}.dark\:bg-blue-950\/50:is(.dark *){background-color:#16245680}@supports (color:color-mix(in lab, red, red)){.dark\:bg-blue-950\/50:is(.dark *){background-color:color-mix(in oklab, var(--color-blue-950) 50%, transparent)}}.dark\:bg-blue-950\/95:is(.dark *){background-color:#162456f2}@supports (color:color-mix(in lab, red, red)){.dark\:bg-blue-950\/95:is(.dark *){background-color:color-mix(in oklab, var(--color-blue-950) 95%, transparent)}}.dark\:bg-card:is(.dark *){background-color:var(--card)}.dark\:bg-destructive\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-destructive\/60:is(.dark *){background-color:color-mix(in oklab, var(--destructive) 60%, transparent)}}.dark\:bg-emerald-600:is(.dark *){background-color:var(--color-emerald-600)}.dark\:bg-foreground\/10:is(.dark *){background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-foreground\/10:is(.dark *){background-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}.dark\:bg-gray-500:is(.dark *){background-color:var(--color-gray-500)}.dark\:bg-gray-800:is(.dark *){background-color:var(--color-gray-800)}.dark\:bg-gray-800\/90:is(.dark *){background-color:#1e2939e6}@supports (color:color-mix(in lab, red, red)){.dark\:bg-gray-800\/90:is(.dark *){background-color:color-mix(in oklab, var(--color-gray-800) 90%, transparent)}}.dark\:bg-gray-900:is(.dark *){background-color:var(--color-gray-900)}.dark\:bg-gray-900\/30:is(.dark *){background-color:#1018284d}@supports (color:color-mix(in lab, red, red)){.dark\:bg-gray-900\/30:is(.dark *){background-color:color-mix(in oklab, var(--color-gray-900) 30%, transparent)}}.dark\:bg-green-400:is(.dark *){background-color:var(--color-green-400)}.dark\:bg-green-500\/10:is(.dark *){background-color:#00c7581a}@supports (color:color-mix(in lab, red, red)){.dark\:bg-green-500\/10:is(.dark *){background-color:color-mix(in oklab, var(--color-green-500) 10%, transparent)}}.dark\:bg-green-900:is(.dark *){background-color:var(--color-green-900)}.dark\:bg-green-950:is(.dark *){background-color:var(--color-green-950)}.dark\:bg-green-950\/20:is(.dark *){background-color:#032e1533}@supports (color:color-mix(in lab, red, red)){.dark\:bg-green-950\/20:is(.dark *){background-color:color-mix(in oklab, var(--color-green-950) 20%, transparent)}}.dark\:bg-green-950\/50:is(.dark *){background-color:#032e1580}@supports (color:color-mix(in lab, red, red)){.dark\:bg-green-950\/50:is(.dark *){background-color:color-mix(in oklab, var(--color-green-950) 50%, transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab, var(--input) 30%, transparent)}}.dark\:bg-orange-400:is(.dark *){background-color:var(--color-orange-400)}.dark\:bg-orange-500\/10:is(.dark *){background-color:#fe6e001a}@supports (color:color-mix(in lab, red, red)){.dark\:bg-orange-500\/10:is(.dark *){background-color:color-mix(in oklab, var(--color-orange-500) 10%, transparent)}}.dark\:bg-orange-600:is(.dark *){background-color:var(--color-orange-600)}.dark\:bg-orange-900:is(.dark *){background-color:var(--color-orange-900)}.dark\:bg-orange-950:is(.dark *){background-color:var(--color-orange-950)}.dark\:bg-orange-950\/20:is(.dark *){background-color:#44130633}@supports (color:color-mix(in lab, red, red)){.dark\:bg-orange-950\/20:is(.dark *){background-color:color-mix(in oklab, var(--color-orange-950) 20%, transparent)}}.dark\:bg-orange-950\/30:is(.dark *){background-color:#4413064d}@supports (color:color-mix(in lab, red, red)){.dark\:bg-orange-950\/30:is(.dark *){background-color:color-mix(in oklab, var(--color-orange-950) 30%, transparent)}}.dark\:bg-orange-950\/50:is(.dark *){background-color:#44130680}@supports (color:color-mix(in lab, red, red)){.dark\:bg-orange-950\/50:is(.dark *){background-color:color-mix(in oklab, var(--color-orange-950) 50%, transparent)}}.dark\:bg-purple-600:is(.dark *){background-color:var(--color-purple-600)}.dark\:bg-purple-900:is(.dark *){background-color:var(--color-purple-900)}.dark\:bg-red-400:is(.dark *){background-color:var(--color-red-400)}.dark\:bg-red-900:is(.dark *){background-color:var(--color-red-900)}.dark\:bg-red-950:is(.dark *){background-color:var(--color-red-950)}.dark\:bg-red-950\/20:is(.dark *){background-color:#46080933}@supports (color:color-mix(in lab, red, red)){.dark\:bg-red-950\/20:is(.dark *){background-color:color-mix(in oklab, var(--color-red-950) 20%, transparent)}}.dark\:text-\[\#8B5CF6\]:is(.dark *){color:#8b5cf6}.dark\:text-amber-100:is(.dark *){color:var(--color-amber-100)}.dark\:text-amber-200:is(.dark *){color:var(--color-amber-200)}.dark\:text-amber-300:is(.dark *){color:var(--color-amber-300)}.dark\:text-amber-400:is(.dark *){color:var(--color-amber-400)}.dark\:text-amber-400\/80:is(.dark *){color:#fcbb00cc}@supports (color:color-mix(in lab, red, red)){.dark\:text-amber-400\/80:is(.dark *){color:color-mix(in oklab, var(--color-amber-400) 80%, transparent)}}.dark\:text-amber-500:is(.dark *){color:var(--color-amber-500)}.dark\:text-blue-100:is(.dark *){color:var(--color-blue-100)}.dark\:text-blue-200:is(.dark *){color:var(--color-blue-200)}.dark\:text-blue-300:is(.dark *){color:var(--color-blue-300)}.dark\:text-blue-400:is(.dark *){color:var(--color-blue-400)}.dark\:text-blue-400\/70:is(.dark *){color:#54a2ffb3}@supports (color:color-mix(in lab, red, red)){.dark\:text-blue-400\/70:is(.dark *){color:color-mix(in oklab, var(--color-blue-400) 70%, transparent)}}.dark\:text-blue-500:is(.dark *){color:var(--color-blue-500)}.dark\:text-emerald-400:is(.dark *){color:var(--color-emerald-400)}.dark\:text-gray-100:is(.dark *){color:var(--color-gray-100)}.dark\:text-gray-300:is(.dark *){color:var(--color-gray-300)}.dark\:text-gray-400:is(.dark *){color:var(--color-gray-400)}.dark\:text-green-100:is(.dark *){color:var(--color-green-100)}.dark\:text-green-200:is(.dark *){color:var(--color-green-200)}.dark\:text-green-300:is(.dark *){color:var(--color-green-300)}.dark\:text-green-400:is(.dark *){color:var(--color-green-400)}.dark\:text-orange-100:is(.dark *){color:var(--color-orange-100)}.dark\:text-orange-200:is(.dark *){color:var(--color-orange-200)}.dark\:text-orange-300:is(.dark *){color:var(--color-orange-300)}.dark\:text-orange-400:is(.dark *){color:var(--color-orange-400)}.dark\:text-purple-200:is(.dark *){color:var(--color-purple-200)}.dark\:text-purple-400:is(.dark *){color:var(--color-purple-400)}.dark\:text-red-200:is(.dark *){color:var(--color-red-200)}.dark\:text-red-400:is(.dark *){color:var(--color-red-400)}.dark\:text-yellow-400:is(.dark *){color:var(--color-yellow-400)}.dark\:opacity-30:is(.dark *){opacity:.3}@media (hover:hover){.dark\:hover\:border-gray-600:is(.dark *):hover{border-color:var(--color-gray-600)}.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.dark\:hover\:bg-amber-950\/30:is(.dark *):hover{background-color:#4619014d}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-amber-950\/30:is(.dark *):hover{background-color:color-mix(in oklab, var(--color-amber-950) 30%, transparent)}}.dark\:hover\:bg-gray-800:is(.dark *):hover{background-color:var(--color-gray-800)}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--input) 50%, transparent)}}.dark\:hover\:bg-orange-950\/40:is(.dark *):hover{background-color:#44130666}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-orange-950\/40:is(.dark *):hover{background-color:color-mix(in oklab, var(--color-orange-950) 40%, transparent)}}.dark\:hover\:bg-red-900\/20:is(.dark *):hover{background-color:#82181a33}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-red-900\/20:is(.dark *):hover{background-color:color-mix(in oklab, var(--color-red-900) 20%, transparent)}}.dark\:hover\:text-orange-200:is(.dark *):hover{color:var(--color-orange-200)}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:data-\[state\=checked\]\:bg-primary:is(.dark *)[data-state=checked]{background-color:var(--primary)}.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.\[\&_p\]\:leading-relaxed p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*=text-]){color:var(--muted-foreground)}.\[\.border-b\]\:pb-6.border-b{padding-bottom:calc(var(--spacing) * 6)}.\[\.border-t\]\:pt-6.border-t{padding-top:calc(var(--spacing) * 6)}:is(.\*\:\[span\]\:last\:flex>*):is(span):last-child{display:flex}:is(.\*\:\[span\]\:last\:items-center>*):is(span):last-child{align-items:center}:is(.\*\:\[span\]\:last\:gap-2>*):is(span):last-child{gap:calc(var(--spacing) * 2)}:is(.data-\[variant\=destructive\]\:\*\:\[svg\]\:\!text-destructive[data-variant=destructive]>*):is(svg){color:var(--destructive)!important}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:top-4>svg{top:calc(var(--spacing) * 4)}.\[\&\>svg\]\:left-4>svg{left:calc(var(--spacing) * 4)}.\[\&\>svg\]\:text-foreground>svg{color:var(--foreground)}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y:-3px;translate:var(--tw-translate-x) var(--tw-translate-y)}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:calc(var(--spacing) * 7)}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--radius:.625rem;--background:oklch(100% 0 0);--foreground:oklch(14.5% 0 0);--card:oklch(100% 0 0);--card-foreground:oklch(14.5% 0 0);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.5% 0 0);--primary:oklch(48% .18 290);--primary-foreground:oklch(98.5% 0 0);--secondary:oklch(97% 0 0);--secondary-foreground:oklch(20.5% 0 0);--muted:oklch(97% 0 0);--muted-foreground:oklch(55.6% 0 0);--accent:oklch(97% 0 0);--accent-foreground:oklch(20.5% 0 0);--destructive:oklch(57.7% .245 27.325);--border:oklch(92.2% 0 0);--input:oklch(92.2% 0 0);--ring:oklch(70.8% 0 0);--chart-1:oklch(64.6% .222 41.116);--chart-2:oklch(60% .118 184.704);--chart-3:oklch(39.8% .07 227.392);--chart-4:oklch(82.8% .189 84.429);--chart-5:oklch(76.9% .188 70.08);--sidebar:oklch(98.5% 0 0);--sidebar-foreground:oklch(14.5% 0 0);--sidebar-primary:oklch(20.5% 0 0);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(97% 0 0);--sidebar-accent-foreground:oklch(20.5% 0 0);--sidebar-border:oklch(92.2% 0 0);--sidebar-ring:oklch(70.8% 0 0)}.dark{--background:oklch(14.5% 0 0);--foreground:oklch(98.5% 0 0);--card:oklch(20.5% 0 0);--card-foreground:oklch(98.5% 0 0);--popover:oklch(20.5% 0 0);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(62% .2 290);--primary-foreground:oklch(98.5% 0 0);--secondary:oklch(26.9% 0 0);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(26.9% 0 0);--muted-foreground:oklch(70.8% 0 0);--accent:oklch(26.9% 0 0);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(55.6% 0 0);--chart-1:oklch(48.8% .243 264.376);--chart-2:oklch(69.6% .17 162.48);--chart-3:oklch(76.9% .188 70.08);--chart-4:oklch(62.7% .265 303.9);--chart-5:oklch(64.5% .246 16.439);--sidebar:oklch(20.5% 0 0);--sidebar-foreground:oklch(98.5% 0 0);--sidebar-primary:oklch(48.8% .243 264.376);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(26.9% 0 0);--sidebar-accent-foreground:oklch(98.5% 0 0);--sidebar-border:oklch(100% 0 0/.1);--sidebar-ring:oklch(55.6% 0 0)}.workflow-chat-view .border-green-200{border-color:var(--color-emerald-200)}.workflow-chat-view .bg-green-50{background-color:var(--color-emerald-50)}.workflow-chat-view .bg-green-100{background-color:var(--color-emerald-100)}.workflow-chat-view .text-green-600{color:var(--color-emerald-600)}.workflow-chat-view .text-green-700{color:var(--color-emerald-700)}.workflow-chat-view .text-green-800{color:var(--color-emerald-800)}.highlight-attention{animation:1s ease-out highlight-flash}@keyframes highlight-flash{0%{background-color:#fb923c4d;transform:scale(1.02)}to{background-color:#0000;transform:scale(1)}}.hil-waiting-glow{animation:2s infinite pulse-glow;box-shadow:0 0 #fb923c66,inset 0 0 0 1px #fb923c33}@keyframes pulse-glow{0%,to{box-shadow:0 0 #fb923c66,inset 0 0 0 1px #fb923c33}50%{box-shadow:0 0 20px 5px #fb923c33,inset 0 0 0 2px #fb923c4d}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@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-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";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}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@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}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 .5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#555;--xy-background-pattern-lines-color-default:#333;--xy-background-pattern-cross-color-default:#333;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 .5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;color:var(--xy-node-color,var(--xy-node-color-default));text-align:center;border:var(--xy-node-border,var(--xy-node-border-default));background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));padding:10px;font-size:12px}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default)));color:var(--xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default)))}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)))}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))} diff --git a/python/packages/devui/agent_framework_devui/ui/assets/index.js b/python/packages/devui/agent_framework_devui/ui/assets/index.js index b4189b21d8f..45ec4311f38 100644 --- a/python/packages/devui/agent_framework_devui/ui/assets/index.js +++ b/python/packages/devui/agent_framework_devui/ui/assets/index.js @@ -135,21 +135,21 @@ asyncio.run(main())`})]})]}),(0,K.jsxs)(`div`,{className:`flex gap-2 pt-4 border transition-all duration-200 opacity-0 group-hover:opacity-100`,title:n?`Copied!`:`Copy code`,children:n?(0,K.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,className:`text-green-600 dark:text-green-400`,children:(0,K.jsx)(`polyline`,{points:`20 6 9 17 4 12`})}):(0,K.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,K.jsx)(`rect`,{x:`9`,y:`9`,width:`13`,height:`13`,rx:`2`,ry:`2`}),(0,K.jsx)(`path`,{d:`M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1`})]})})]})}function dv({content:e,className:t=``}){let n=e.split(` `),r=[],i=0;for(;i(0,K.jsx)(`li`,{className:`text-sm break-words`,children:fv(e)},t))},r.length));continue}if(e.match(/^[\s]*\d+\.\s+/)){let e=[];for(;i(0,K.jsx)(`li`,{className:`text-sm break-words`,children:fv(e)},t))},r.length));continue}if(e.trim().startsWith(`|`)&&e.trim().endsWith(`|`)){let e=[];for(;i=2){let t=e[0].split(`|`).slice(1,-1).map(e=>e.trim());if(e[1].match(/^\|[\s\-:|]+\|$/)){let n=e.slice(2).map(e=>e.split(`|`).slice(1,-1).map(e=>e.trim()));r.push((0,K.jsx)(`div`,{className:`my-3 overflow-x-auto`,children:(0,K.jsxs)(`table`,{className:`min-w-full border border-foreground/10 text-sm`,children:[(0,K.jsx)(`thead`,{className:`bg-foreground/5`,children:(0,K.jsx)(`tr`,{children:t.map((e,t)=>(0,K.jsx)(`th`,{className:`border-b border-foreground/10 px-3 py-2 text-left font-semibold break-words`,children:fv(e)},t))})}),(0,K.jsx)(`tbody`,{children:n.map((e,t)=>(0,K.jsx)(`tr`,{className:`border-b border-foreground/5 last:border-b-0`,children:e.map((e,t)=>(0,K.jsx)(`td`,{className:`px-3 py-2 border-r border-foreground/5 last:border-r-0 break-words`,children:fv(e)},t))},t))})]})},r.length));continue}}for(let t of e)r.push((0,K.jsx)(`p`,{className:`my-1`,children:fv(t)},r.length));continue}if(e.trim().startsWith(`>`)){let e=[];for(;i`);)e.push(n[i].replace(/^>\s?/,``)),i++;r.push((0,K.jsx)(`blockquote`,{className:`my-2 pl-4 border-l-4 border-current/30 opacity-80 italic break-words`,children:e.map((e,t)=>(0,K.jsx)(`div`,{className:`break-words`,children:fv(e)},t))},r.length));continue}if(e.match(/^[\s]*[-*_]{3,}[\s]*$/)){r.push((0,K.jsx)(`hr`,{className:`my-4 border-t border-border`},r.length)),i++;continue}if(e.trim()===``){r.push((0,K.jsx)(`div`,{className:`h-2`},r.length)),i++;continue}r.push((0,K.jsx)(`p`,{className:`my-1 break-words`,children:fv(e)},r.length)),i++}return(0,K.jsx)(`div`,{className:`markdown-content break-words ${t}`,children:r})}function fv(e){let t=[],n=e,r=0;for(;n.length>0;){let e=n.match(/`([^`]+)`/);if(e&&e.index!==void 0){e.index>0&&t.push((0,K.jsx)(`span`,{children:pv(n.slice(0,e.index))},r++)),t.push((0,K.jsx)(`code`,{className:`px-1.5 py-0.5 bg-foreground/10 rounded text-xs font-mono border border-foreground/20`,children:e[1]},r++)),n=n.slice(e.index+e[0].length);continue}t.push((0,K.jsx)(`span`,{children:pv(n)},r++));break}return t}function pv(e){let t=[],n=e,r=0;for(;n.length>0;){let e=[{regex:/\*\*\[([^\]]+)\]\(([^)]+)\)\*\*/,component:`strong-link`},{regex:/__\[([^\]]+)\]\(([^)]+)\)__/,component:`strong-link`},{regex:/\*\[([^\]]+)\]\(([^)]+)\)\*/,component:`em-link`},{regex:/_\[([^\]]+)\]\(([^)]+)\)_/,component:`em-link`},{regex:/\[([^\]]+)\]\(([^)]+)\)/,component:`link`},{regex:/\*\*(.+?)\*\*/,component:`strong`},{regex:/__(.+?)__/,component:`strong`},{regex:/\*(.+?)\*/,component:`em`},{regex:/_(.+?)_/,component:`em`}],i=!1;for(let a of e){let e=n.match(a.regex);if(e&&e.index!==void 0){if(e.index>0&&t.push(n.slice(0,e.index)),a.component===`strong`)t.push((0,K.jsx)(`strong`,{className:`font-semibold`,children:e[1]},r++));else if(a.component===`em`)t.push((0,K.jsx)(`em`,{className:`italic`,children:e[1]},r++));else if(a.component===`strong-link`){let n=e[1],i=e[2],a=pv(n);t.push((0,K.jsx)(`strong`,{className:`font-semibold`,children:(0,K.jsx)(`a`,{href:i,target:`_blank`,rel:`noopener noreferrer`,className:`text-primary hover:underline break-words`,children:a})},r++))}else if(a.component===`em-link`){let n=e[1],i=e[2],a=pv(n);t.push((0,K.jsx)(`em`,{className:`italic`,children:(0,K.jsx)(`a`,{href:i,target:`_blank`,rel:`noopener noreferrer`,className:`text-primary hover:underline break-words`,children:a})},r++))}else if(a.component===`link`){let n=e[1],i=e[2],a=pv(n);t.push((0,K.jsx)(`a`,{href:i,target:`_blank`,rel:`noopener noreferrer`,className:`text-primary hover:underline break-words`,children:a},r++))}n=n.slice(e.index+e[0].length),i=!0;break}}if(!i){n.length>0&&t.push(n);break}}return t}function mv({content:e,className:t,isStreaming:n}){if(e.type!==`text`&&e.type!==`input_text`&&e.type!==`output_text`&&e.type!==`refusal`)return null;let r=e.type===`refusal`?e.refusal:e.text;return(0,K.jsxs)(`div`,{className:`break-words ${t||``}`,children:[(0,K.jsx)(dv,{content:r}),n&&r.length>0&&(0,K.jsx)(`span`,{className:`ml-1 inline-block h-2 w-2 animate-pulse rounded-full bg-current`})]})}function hv({content:e,className:t}){let[n,r]=(0,y.useState)(!1),[i,a]=(0,y.useState)(!1);if(e.type!==`input_image`&&e.type!==`output_image`)return null;let o=e.image_url;return n?(0,K.jsx)(`div`,{className:`my-2 p-3 border rounded-lg bg-muted ${t||``}`,children:(0,K.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-muted-foreground`,children:[(0,K.jsx)(Uu,{className:`h-4 w-4`}),(0,K.jsx)(`span`,{children:`Image could not be loaded`})]})}):(0,K.jsxs)(`div`,{className:`my-2 ${t||``}`,children:[(0,K.jsx)(`img`,{src:o,alt:`Uploaded image`,className:`rounded-lg border max-w-full transition-all cursor-pointer ${i?`max-h-none`:`max-h-64`}`,onClick:()=>a(!i),onError:()=>r(!0)}),i&&(0,K.jsx)(`div`,{className:`text-xs text-muted-foreground mt-1`,children:`Click to collapse`})]})}function gv(e,t){let[n,r]=(0,y.useState)(null);return(0,y.useEffect)(()=>{if(!e){r(null);return}try{let n;if(e.startsWith(`data:`)){let t=e.split(`,`);if(t.length!==2){r(null);return}n=t[1]}else n=e;let i=atob(n),a=new Uint8Array(i.length);for(let e=0;e{URL.revokeObjectURL(s)}}catch(e){console.error(`Failed to convert base64 to blob URL:`,e),r(null)}},[e,t]),n}function _v({content:e,className:t}){let[n,r]=(0,y.useState)(!0),i=e.type===`input_file`||e.type===`output_file`,a=i?e.file_url||e.file_data:void 0,o=i?e.filename||`file`:void 0,s=o?.toLowerCase().endsWith(`.pdf`)||a?.includes(`application/pdf`),c=o?.toLowerCase().match(/\.(mp3|wav|m4a|ogg|flac|aac)$/),l=gv(i&&s?e.file_data||e.file_url:void 0,`application/pdf`);if(!i)return null;let u=l||a;return s&&a?(0,K.jsxs)(`div`,{className:`my-2 ${t||``}`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2 mb-2 px-1`,children:[(0,K.jsx)(Uu,{className:`h-4 w-4 text-red-500`}),(0,K.jsx)(`span`,{className:`text-sm font-medium truncate flex-1`,children:o}),(0,K.jsx)(`button`,{onClick:()=>r(!n),className:`text-xs text-muted-foreground hover:text-foreground flex items-center gap-1`,children:n?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(su,{className:`h-3 w-3`}),`Collapse`]}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(du,{className:`h-3 w-3`}),`Expand`]})})]}),n&&(0,K.jsxs)(`div`,{className:`border rounded-lg p-6 bg-muted/50 flex flex-col items-center justify-center gap-4`,children:[(0,K.jsx)(Uu,{className:`h-16 w-16 text-red-400`}),(0,K.jsxs)(`div`,{className:`text-center`,children:[(0,K.jsx)(`p`,{className:`text-sm font-medium mb-1`,children:o}),(0,K.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`PDF Document`})]}),(0,K.jsxs)(`div`,{className:`flex gap-3`,children:[(0,K.jsx)(`button`,{onClick:()=>{u&&window.open(u,`_blank`)},className:`text-sm bg-primary text-primary-foreground hover:bg-primary/90 flex items-center gap-2 px-4 py-2 rounded-md transition-colors`,children:`Open in new tab`}),(0,K.jsxs)(`a`,{href:u||a,download:o,className:`text-sm text-foreground hover:bg-accent flex items-center gap-2 px-4 py-2 border rounded-md transition-colors`,children:[(0,K.jsx)(Lu,{className:`h-4 w-4`}),`Download`]})]})]})]}):c&&a?(0,K.jsxs)(`div`,{className:`my-2 p-3 border rounded-lg ${t||``}`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,K.jsx)(xd,{className:`h-4 w-4 text-muted-foreground`}),(0,K.jsx)(`span`,{className:`text-sm font-medium`,children:o})]}),(0,K.jsxs)(`audio`,{controls:!0,className:`w-full`,children:[(0,K.jsx)(`source`,{src:a}),`Your browser does not support audio playback.`]})]}):(0,K.jsx)(`div`,{className:`my-2 p-3 border rounded-lg bg-muted ${t||``}`,children:(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(Uu,{className:`h-4 w-4 text-muted-foreground`}),(0,K.jsx)(`span`,{className:`text-sm`,children:o})]}),a&&(0,K.jsxs)(`a`,{href:a,download:o,className:`text-xs text-primary hover:underline flex items-center gap-1`,children:[(0,K.jsx)(Lu,{className:`h-3 w-3`}),`Download`]})]})})}function vv({content:e,className:t}){let[n,r]=(0,y.useState)(!1);if(e.type!==`output_data`)return null;let i=e.data,a=e.mime_type,o=e.description,s=i;try{let e=JSON.parse(i);s=JSON.stringify(e,null,2)}catch{}return(0,K.jsxs)(`div`,{className:`my-2 p-3 border rounded-lg bg-muted ${t||``}`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2 cursor-pointer`,onClick:()=>r(!n),children:[(0,K.jsx)(Uu,{className:`h-4 w-4 text-muted-foreground`}),(0,K.jsx)(`span`,{className:`text-sm font-medium`,children:o||`Data Output`}),(0,K.jsx)(`span`,{className:`text-xs text-muted-foreground ml-auto`,children:a}),n?(0,K.jsx)(su,{className:`h-4 w-4 text-muted-foreground`}):(0,K.jsx)(du,{className:`h-4 w-4 text-muted-foreground`})]}),n&&(0,K.jsx)(`pre`,{className:`mt-2 text-xs overflow-auto max-h-64 bg-background p-2 rounded border font-mono`,children:s})]})}function yv({content:e,className:t}){let[n,r]=(0,y.useState)(!1);if(e.type!==`function_approval_request`)return null;let{status:i,function_call:a}=e,o={pending:{icon:Tu,label:`Awaiting approval`,iconClass:`text-amber-600 dark:text-amber-400`},approved:{icon:ru,label:`Approved`,iconClass:`text-green-600 dark:text-green-400`},rejected:{icon:mf,label:`Rejected`,iconClass:`text-red-600 dark:text-red-400`}}[i],s=o.icon,c;try{c=typeof a.arguments==`string`?JSON.parse(a.arguments):a.arguments}catch{c=a.arguments}return(0,K.jsxs)(`div`,{className:t,children:[(0,K.jsxs)(`button`,{onClick:()=>r(!n),className:`flex items-center gap-2 px-2 py-1 text-xs rounded hover:bg-muted/50 transition-colors w-fit`,children:[(0,K.jsx)(s,{className:`h-3 w-3 ${o.iconClass}`}),(0,K.jsx)(`span`,{className:`text-muted-foreground font-mono`,children:a.name}),(0,K.jsx)(`span`,{className:`text-xs ${o.iconClass}`,children:o.label}),n?(0,K.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`▼`}):(0,K.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`▶`})]}),n&&(0,K.jsx)(`div`,{className:`ml-5 mt-1 text-xs font-mono text-muted-foreground border-l-2 border-muted pl-3`,children:(0,K.jsx)(`pre`,{className:`whitespace-pre-wrap break-all`,children:JSON.stringify(c,null,2)})})]})}function bv({content:e,className:t,isStreaming:n}){switch(e.type){case`text`:case`input_text`:case`output_text`:case`refusal`:return(0,K.jsx)(mv,{content:e,className:t,isStreaming:n});case`input_image`:case`output_image`:return(0,K.jsx)(hv,{content:e,className:t});case`input_file`:case`output_file`:return(0,K.jsx)(_v,{content:e,className:t});case`output_data`:return(0,K.jsx)(vv,{content:e,className:t});case`function_approval_request`:return(0,K.jsx)(yv,{content:e,className:t});default:return null}}function xv({name:e,arguments:t,className:n}){let[r,i]=(0,y.useState)(!1),a;try{a=typeof t==`string`?JSON.parse(t):t}catch{a=t}return(0,K.jsxs)(`div`,{className:`my-2 p-3 border rounded bg-blue-50 dark:bg-blue-950/20 ${n||``}`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2 cursor-pointer`,onClick:()=>i(!r),children:[(0,K.jsx)(ku,{className:`h-4 w-4 text-blue-600 dark:text-blue-400`}),(0,K.jsxs)(`span`,{className:`text-sm font-medium text-blue-800 dark:text-blue-300`,children:[`Function Call: `,e]}),r?(0,K.jsx)(su,{className:`h-4 w-4 text-blue-600 dark:text-blue-400 ml-auto`}):(0,K.jsx)(du,{className:`h-4 w-4 text-blue-600 dark:text-blue-400 ml-auto`})]}),r&&(0,K.jsxs)(`div`,{className:`mt-2 text-xs font-mono bg-white dark:bg-gray-900 p-2 rounded border`,children:[(0,K.jsx)(`div`,{className:`text-blue-600 dark:text-blue-400 mb-1`,children:`Arguments:`}),(0,K.jsx)(`pre`,{className:`whitespace-pre-wrap`,children:JSON.stringify(a,null,2)})]})]})}function Sv({output:e,call_id:t,className:n}){let[r,i]=(0,y.useState)(!1),a;try{a=typeof e==`string`?JSON.parse(e):e}catch{a=e}return(0,K.jsxs)(`div`,{className:`my-2 p-3 border rounded bg-green-50 dark:bg-green-950/20 ${n||``}`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2 cursor-pointer`,onClick:()=>i(!r),children:[(0,K.jsx)(ku,{className:`h-4 w-4 text-green-600 dark:text-green-400`}),(0,K.jsx)(`span`,{className:`text-sm font-medium text-green-800 dark:text-green-300`,children:`Function Result`}),r?(0,K.jsx)(su,{className:`h-4 w-4 text-green-600 dark:text-green-400 ml-auto`}):(0,K.jsx)(du,{className:`h-4 w-4 text-green-600 dark:text-green-400 ml-auto`})]}),r&&(0,K.jsxs)(`div`,{className:`mt-2 text-xs font-mono bg-white dark:bg-gray-900 p-2 rounded border`,children:[(0,K.jsx)(`div`,{className:`text-green-600 dark:text-green-400 mb-1`,children:`Output:`}),(0,K.jsx)(`pre`,{className:`whitespace-pre-wrap`,children:JSON.stringify(a,null,2)}),(0,K.jsxs)(`div`,{className:`text-gray-500 text-[10px] mt-2`,children:[`Call ID: `,t]})]})]})}function Cv({item:e,className:t}){if(e.type===`message`){let n=e.status===`in_progress`,r=e.content.length>0;return(0,K.jsxs)(`div`,{className:t,children:[e.content.map((e,t)=>(0,K.jsx)(bv,{content:e,className:t>0?`mt-2`:``,isStreaming:n},t)),n&&!r&&(0,K.jsx)(`div`,{className:`flex items-center space-x-1`,children:(0,K.jsxs)(`div`,{className:`flex space-x-1`,children:[(0,K.jsx)(`div`,{className:`h-2 w-2 animate-bounce rounded-full bg-current [animation-delay:-0.3s]`}),(0,K.jsx)(`div`,{className:`h-2 w-2 animate-bounce rounded-full bg-current [animation-delay:-0.15s]`}),(0,K.jsx)(`div`,{className:`h-2 w-2 animate-bounce rounded-full bg-current`})]})})]})}return e.type===`function_call`?(0,K.jsx)(xv,{name:e.name,arguments:e.arguments,className:t}):e.type===`function_call_output`?(0,K.jsx)(Sv,{output:e.output,call_id:e.call_id,className:t}):null}var wv=Object.defineProperty,Tv=(e,t)=>wv(e,`name`,{value:t,configurable:!0}),Ev={ItemAligned:`item-aligned`,Popper:`popper`},Dv={LTR:`ltr`,RTL:`rtl`},Ov=[` `,`Enter`,`ArrowUp`,`ArrowDown`],kv=[` `,`Enter`],Av=`Select`,[jv,Mv,Nv]=hn(Av),[Pv,Fv]=Kt(Av,[Nv,Ja]),Iv=Ja(),[Lv,Rv]=Pv(Av),[zv,Bv]=Pv(Av);function Vv(e){let{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:a,value:o,defaultValue:s,onValueChange:c,dir:l,name:u,autoComplete:d,disabled:f,required:p,form:m,internal_do_not_use_render:h}=e,g=Iv(t),[_,v]=y.useState(null),[b,x]=y.useState(null),[S,C]=y.useState(!1),w=jn(l),[T,E]=rn({prop:r,defaultProp:i??!1,onChange:a,caller:Av}),[D,O]=rn({prop:o,defaultProp:s,onChange:c,caller:Av}),k=y.useRef(null),A=y.useRef(!1),[j,M]=y.useState(null),N=Tv(e=>{M({value:e,hasConsumerStoppedPropagation:A.current}),O(e)},`handleUserSelect`),P=y.useRef(D);y.useEffect(()=>{let e=m?_?.ownerDocument.getElementById(m):_?.form;if(e instanceof HTMLFormElement){let t=Tv(()=>O(P.current),`reset`);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[m,_,O]);let F=!_||!!m||!!_.closest(`form`),[I,L]=y.useState(new Set),R=Or(),z=Array.from(I).map(e=>e.props.value).join(`;`),B=y.useCallback(e=>{L(t=>new Set(t).add(e))},[]),ee=y.useCallback(e=>{L(t=>{let n=new Set(t);return n.delete(e),n})},[]),V={required:p,trigger:_,onTriggerChange:v,valueNode:b,onValueNodeChange:x,valueNodeHasChildren:S,onValueNodeHasChildrenChange:C,contentId:R,value:D,onValueChange:O,hasConsumerStoppedPropagationRef:A,userSelection:j,onUserSelect:N,open:T,onOpenChange:E,dir:w,triggerPointerDownPosRef:k,disabled:f,name:u,autoComplete:d,form:m,nativeOptions:I,nativeSelectKey:z,isFormControl:F};return(0,K.jsx)(Za,{...g,children:(0,K.jsx)(Lv,{scope:t,...V,children:(0,K.jsx)(jv.Provider,{scope:t,children:(0,K.jsx)(zv,{scope:t,onNativeOptionAdd:B,onNativeOptionRemove:ee,children:Oy(h)?h(V):n})})})})}Tv(Vv,`SelectProvider`);var Hv=Tv(e=>{let{__scopeSelect:t,children:n,...r}=e;return(0,K.jsx)(Vv,{__scopeSelect:t,...r,internal_do_not_use_render:({isFormControl:e})=>(0,K.jsxs)(K.Fragment,{children:[n,e?(0,K.jsx)(Dy,{__scopeSelect:t}):null]})})},`Select`),Uv=`SelectTrigger`,Wv=y.forwardRef(Tv(function(e,t){let{__scopeSelect:n,disabled:r=!1,...i}=e,a=Iv(n),o=Rv(Uv,n),s=o.disabled||r,c=T(t,o.onTriggerChange),l=Mv(n),u=y.useRef(`touch`),[d,f,p]=Ay(e=>{let t=l().filter(e=>!e.disabled),n=jy(t,e,t.find(e=>e.value===o.value));n!==void 0&&o.onUserSelect(n.value)}),m=Tv(e=>{s||(o.onOpenChange(!0),p()),e&&(o.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})},`handleOpen`);return(0,K.jsx)($a,{asChild:!0,...a,children:(0,K.jsx)(Y.button,{type:`button`,role:`combobox`,"aria-controls":o.open?o.contentId:void 0,"aria-expanded":o.open,"aria-required":o.required,"aria-autocomplete":`none`,dir:o.dir,"data-state":o.open?`open`:`closed`,disabled:s,"data-disabled":s?``:void 0,"data-placeholder":ky(o.value)?``:void 0,...i,ref:c,onClick:J(i.onClick,e=>{e.currentTarget.focus(),u.current!==`mouse`&&m(e)}),onPointerDown:J(i.onPointerDown,e=>{u.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&e.pointerType===`mouse`&&(m(e),e.preventDefault())}),onKeyDown:J(i.onKeyDown,e=>{let t=d.current!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&(o.hasConsumerStoppedPropagationRef.current=e.isPropagationStopped(),f(e.key)),!(t&&e.key===` `)&&Ov.includes(e.key)&&(m(),e.preventDefault())})})})},`SelectTrigger`)),Gv=`SelectValue`,Kv=y.forwardRef(Tv(function(e,t){let{__scopeSelect:n,className:r,style:i,children:a,placeholder:o=``,...s}=e,c=Rv(Gv,n),{onValueNodeHasChildrenChange:l}=c,u=a!==void 0,d=T(t,c.onValueNodeChange);Jt(()=>{l(u)},[l,u]);let f=ky(c.value);return(0,K.jsx)(Y.span,{...s,asChild:!f&&s.asChild,ref:d,style:{pointerEvents:`none`},children:(0,K.jsx)(y.Fragment,{children:f?o:a},f?`placeholder`:`value`)})},`SelectValue`)),qv=y.forwardRef(Tv(function(e,t){let{__scopeSelect:n,children:r,...i}=e;return(0,K.jsx)(Y.span,{"aria-hidden":!0,...i,ref:t,children:r||`▼`})},`SelectIcon`)),[Jv,Yv]=Pv(`SelectPortal`,{forceMount:void 0}),Xv=Tv(e=>{let{__scopeSelect:t,forceMount:n,...r}=e;return(0,K.jsx)(Jv,{scope:e.__scopeSelect,forceMount:n,children:(0,K.jsx)(co,{asChild:!0,...r})})},`SelectPortal`),Zv=`SelectContent`,Qv=y.forwardRef(Tv(function(e,t){let n=Yv(Zv,e.__scopeSelect),{forceMount:r=n.forceMount,...i}=e,a=Rv(Zv,e.__scopeSelect),[o,s]=y.useState();return Jt(()=>{s(new DocumentFragment)},[]),(0,K.jsx)(po,{present:r||a.open,children:({present:e})=>e?(0,K.jsx)(iy,{...i,ref:t}):(0,K.jsx)($v,{...i,fragment:o})})},`SelectContent`)),$v=y.forwardRef(Tv(function(e,t){let{__scopeSelect:n,children:r,fragment:i}=e;return i?ln.createPortal((0,K.jsx)(ty,{scope:n,children:(0,K.jsx)(jv.Slot,{scope:n,children:(0,K.jsx)(`div`,{ref:t,children:r})})}),i):null},`SelectContentFragment`)),ey=10,[ty,ny]=Pv(Zv),ry=O(`SelectContent.RemoveScroll`),iy=y.forwardRef(Tv(function(e,t){let{__scopeSelect:n}=e,{position:r=Ev.ItemAligned,onCloseAutoFocus:i,onEscapeKeyDown:a,onPointerDownOutside:o,side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:f,collisionPadding:p,sticky:m,hideWhenDetached:h,avoidCollisions:g,..._}=e,v=Rv(Zv,n),[b,x]=y.useState(null),[S,C]=y.useState(null),w=T(t,x),[E,D]=y.useState(null),[O,k]=y.useState(null),A=Mv(n),[j,M]=y.useState(!1),N=y.useRef(!1),P=y.useRef(!1),F=y.useRef(!1);y.useEffect(()=>{if(b)return is(b)},[b]),tr();let I=y.useCallback(e=>{let[t,...n]=A().map(e=>e.ref.current),[r]=n.slice(-1),i=document.activeElement;for(let n of e)if(n===i||(n?.scrollIntoView({block:`nearest`}),n===t&&S&&(S.scrollTop=0),n===r&&S&&(S.scrollTop=S.scrollHeight),n?.focus(),document.activeElement!==i))return},[A,S]),L=y.useCallback(()=>I([E,b]),[I,E,b]);y.useEffect(()=>{j&&L()},[j,L]);let{onOpenChange:R,triggerPointerDownPosRef:z}=v;y.useEffect(()=>{if(b){let e={x:0,y:0},t=Tv(t=>{e={x:Math.abs(Math.round(t.pageX)-(z.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(z.current?.y??0))}},`handlePointerMove`),n=Tv(n=>{e.x<=10&&e.y<=10?n.preventDefault():n.composedPath().includes(b)||R(!1),document.removeEventListener(`pointermove`,t),z.current=null},`handlePointerUp`);return z.current!==null&&(document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n,{capture:!0,once:!0})),()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n,{capture:!0})}}},[b,R,z]),y.useEffect(()=>{let e=Tv(()=>R(!1),`close`);return window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e)}},[R]);let[B,ee]=Ay(e=>{let t=A().filter(e=>!e.disabled),n=jy(t,e,t.find(e=>e.ref.current===document.activeElement));n&&setTimeout(()=>n.ref.current?.focus())}),V=y.useCallback((e,t,n)=>{let r=!P.current;r&&(P.current=!0);let i=!N.current&&!n;v.value!==void 0&&v.value===t||i?(D(e),i&&(N.current=!0)):r&&D(e)},[v.value]),H=y.useCallback(()=>b?.focus(),[b]),te=y.useCallback((e,t,n)=>{if(!e)return;let r=!F.current;r&&(F.current=!0);let i=!N.current&&!n;(v.value!==void 0&&v.value===t||i||r)&&k(e)},[v.value]),ne=r===Ev.Popper?oy:ay,re=ne===oy?{side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:f,collisionPadding:p,sticky:m,hideWhenDetached:h,avoidCollisions:g}:{};return(0,K.jsx)(ty,{scope:n,content:b,viewport:S,onViewportChange:C,itemRefCallback:V,selectedItem:E,onItemLeave:H,itemTextRefCallback:te,focusSelectedItem:L,selectedItemText:O,position:r,isPositioned:j,searchRef:B,children:(0,K.jsx)(fc,{as:ry,allowPinchZoom:!0,children:(0,K.jsx)(cr,{asChild:!0,trapped:v.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:J(i,e=>{v.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,K.jsx)(Un,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>v.onOpenChange(!1),children:(0,K.jsx)(ne,{role:`listbox`,id:v.contentId,"data-state":v.open?`open`:`closed`,dir:v.dir,onContextMenu:e=>e.preventDefault(),..._,...re,onPlaced:()=>M(!0),ref:w,style:{display:`flex`,flexDirection:`column`,outline:`none`,..._.style},onKeyDown:J(_.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&ee(e.key),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=A().filter(e=>!e.disabled).map(e=>e.ref.current);if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>I(t)),e.preventDefault()}})})})})})})},`SelectContentImpl`)),ay=y.forwardRef(Tv(function(e,t){let{__scopeSelect:n,onPlaced:r,...i}=e,a=Rv(Zv,n),o=ny(Zv,n),[s,c]=y.useState(null),[l,u]=y.useState(null),d=T(t,u),f=Mv(n),p=y.useRef(!1),m=y.useRef(!0),{viewport:h,selectedItem:g,selectedItemText:_,focusSelectedItem:v}=o,b=y.useCallback(()=>{if(a.trigger&&a.valueNode&&s&&l&&h&&g&&_){let e=a.trigger.getBoundingClientRect(),t=l.getBoundingClientRect(),n=a.valueNode.getBoundingClientRect(),i=_.getBoundingClientRect();if(a.dir!==Dv.RTL){let r=i.left-t.left,a=n.left-r,o=e.left-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-ey,d=Sp(a,[ey,Math.max(ey,u-l)]);s.style.minWidth=c+`px`,s.style.left=d+`px`}else{let r=t.right-i.right,a=window.innerWidth-n.right-r,o=window.innerWidth-e.right-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-ey,d=Sp(a,[ey,Math.max(ey,u-l)]);s.style.minWidth=c+`px`,s.style.right=d+`px`}let o=f(),c=window.innerHeight-ey*2,u=h.scrollHeight,d=window.getComputedStyle(l),m=parseInt(d.borderTopWidth,10),v=parseInt(d.paddingTop,10),y=parseInt(d.borderBottomWidth,10),b=parseInt(d.paddingBottom,10),x=m+v+u+b+y,S=Math.min(g.offsetHeight*5,x),C=window.getComputedStyle(h),w=parseInt(C.paddingTop,10),T=parseInt(C.paddingBottom,10),E=e.top+e.height/2-ey,D=c-E,O=g.offsetHeight/2,k=g.offsetTop+O,A=m+v+k,j=x-A;if(A<=E){let e=o.length>0&&g===o[o.length-1].ref.current;s.style.bottom=`0px`;let t=l.clientHeight-h.offsetTop-h.offsetHeight,n=A+Math.max(D,O+(e?T:0)+t+y);s.style.height=n+`px`}else{let e=o.length>0&&g===o[0].ref.current;s.style.top=`0px`;let t=Math.max(E,m+h.offsetTop+(e?w:0)+O)+j;s.style.height=t+`px`,h.scrollTop=A-E+h.offsetTop}s.style.margin=`${ey}px 0`,s.style.minHeight=S+`px`,s.style.maxHeight=c+`px`,r?.(),requestAnimationFrame(()=>p.current=!0)}},[f,a.trigger,a.valueNode,s,l,h,g,_,a.dir,r]);Jt(()=>b(),[b]);let[x,S]=y.useState();Jt(()=>{l&&S(window.getComputedStyle(l).zIndex)},[l]);let C=y.useCallback(e=>{e&&m.current===!0&&(b(),v?.(),m.current=!1)},[b,v]);return(0,K.jsx)(sy,{scope:n,contentWrapper:s,shouldExpandOnScrollRef:p,onScrollButtonChange:C,children:(0,K.jsx)(`div`,{ref:c,style:{display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:x},children:(0,K.jsx)(Y.div,{...i,ref:d,style:{boxSizing:`border-box`,maxHeight:`100%`,...i.style}})})})},`SelectItemAlignedPosition`)),oy=y.forwardRef(Tv(function(e,t){let{__scopeSelect:n,align:r=`start`,collisionPadding:i=ey,...a}=e,o=Iv(n);return(0,K.jsx)(ro,{...o,...a,ref:t,align:r,collisionPadding:i,style:{boxSizing:`border-box`,...a.style,"--radix-select-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-select-content-available-width":`var(--radix-popper-available-width)`,"--radix-select-content-available-height":`var(--radix-popper-available-height)`,"--radix-select-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-select-trigger-height":`var(--radix-popper-anchor-height)`}})},`SelectPopperPosition`)),[sy,cy]=Pv(Zv,{}),ly=`SelectViewport`,uy=y.forwardRef(Tv(function(e,t){let{__scopeSelect:n,nonce:r,...i}=e,a=ny(ly,n),o=cy(ly,n),s=T(t,a.onViewportChange),c=y.useRef(0);return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`},nonce:r}),(0,K.jsx)(jv.Slot,{scope:n,children:(0,K.jsx)(Y.div,{"data-radix-select-viewport":``,role:`presentation`,...i,ref:s,style:{position:`relative`,flex:1,overflow:`hidden auto`,...i.style},onScroll:J(i.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=o;if(r?.current&&n){let e=Math.abs(c.current-t.scrollTop);if(e>0){let r=window.innerHeight-ey*2,i=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),o=Math.max(i,a);if(o0?s:0,n.style.justifyContent=`flex-end`)}}}c.current=t.scrollTop})})})]})},`SelectViewport`)),[dy,fy]=Pv(`SelectGroup`),py=`SelectItem`,[my,hy]=Pv(py),gy=y.forwardRef(Tv(function(e,t){let{__scopeSelect:n,value:r,disabled:i=!1,textValue:a,...o}=e,s=Rv(py,n),c=ny(py,n),l=s.value===r,[u,d]=y.useState(a??``),[f,p]=y.useState(!1),m=T(t,Fn(e=>c.itemRefCallback?.(e,r,i))),h=Or(),g=y.useRef(`touch`);function _(e){s.hasConsumerStoppedPropagationRef.current=e.isPropagationStopped(),s.onUserSelect(r),s.onOpenChange(!1)}return Tv(_,`handleSelect`),(0,K.jsx)(my,{scope:n,value:r,disabled:i,textId:h,isSelected:l,onItemTextChange:y.useCallback(e=>{d(t=>t||(e?.textContent??``).trim())},[]),children:(0,K.jsx)(jv.ItemSlot,{scope:n,value:r,disabled:i,textValue:u,children:(0,K.jsx)(Y.div,{role:`option`,"aria-labelledby":h,"data-highlighted":f?``:void 0,"aria-selected":l&&f,"data-state":l?`checked`:`unchecked`,"aria-disabled":i||void 0,"data-disabled":i?``:void 0,tabIndex:i?void 0:-1,...o,ref:m,onFocus:J(o.onFocus,()=>p(!0)),onBlur:J(o.onBlur,()=>p(!1)),onClick:J(o.onClick,e=>{i||g.current!==`mouse`&&_(e)}),onPointerUp:J(o.onPointerUp,e=>{i||g.current===`mouse`&&_(e)}),onPointerDown:J(o.onPointerDown,e=>{g.current=e.pointerType}),onPointerMove:J(o.onPointerMove,e=>{g.current=e.pointerType,i?c.onItemLeave?.():g.current===`mouse`&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:J(o.onPointerLeave,e=>{e.currentTarget===document.activeElement&&c.onItemLeave?.()}),onKeyDown:J(o.onKeyDown,e=>{i||e.target!==e.currentTarget||(c.searchRef?.current===``||e.key!==` `)&&(kv.includes(e.key)&&_(e),e.key===` `&&e.preventDefault())})})})})},`SelectItem`)),_y=`SelectItemText`,vy=y.forwardRef(Tv(function(e,t){let{__scopeSelect:n,className:r,style:i,...a}=e,o=Rv(_y,n),s=ny(_y,n),c=hy(_y,n),l=Bv(_y,n),[u,d]=y.useState(null),f=Fn(e=>s.itemTextRefCallback?.(e,c.value,c.disabled)),p=T(t,d,c.onItemTextChange,f),m=u?.textContent,h=y.useMemo(()=>(0,K.jsx)(`option`,{value:c.value,disabled:c.disabled,children:m},c.value),[c.disabled,c.value,m]),{onNativeOptionAdd:g,onNativeOptionRemove:_}=l;return Jt(()=>(g(h),()=>_(h)),[g,_,h]),(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(Y.span,{id:c.textId,...a,ref:p}),c.isSelected&&o.valueNode&&!o.valueNodeHasChildren&&!ky(o.value)?ln.createPortal(a.children,o.valueNode):null]})},`SelectItemText`)),yy=`SelectItemIndicator`,by=y.forwardRef(Tv(function(e,t){let{__scopeSelect:n,...r}=e;return hy(yy,n).isSelected?(0,K.jsx)(Y.span,{"aria-hidden":!0,...r,ref:t}):null},`SelectItemIndicator`)),xy=`SelectScrollUpButton`,Sy=y.forwardRef(Tv(function(e,t){let n=ny(xy,e.__scopeSelect),r=cy(xy,e.__scopeSelect),[i,a]=y.useState(!1),o=T(t,r.onScrollButtonChange);return Jt(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollTop>0;a(e)};Tv(e,`handleScroll`);let t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,K.jsx)(Ty,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop-=t.offsetHeight)}}):null},`SelectScrollUpButton`)),Cy=`SelectScrollDownButton`,wy=y.forwardRef(Tv(function(e,t){let n=ny(Cy,e.__scopeSelect),r=cy(Cy,e.__scopeSelect),[i,a]=y.useState(!1),o=T(t,r.onScrollButtonChange);return Jt(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight,n=Math.ceil(t.scrollTop)t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,K.jsx)(Ty,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop+=t.offsetHeight)}}):null},`SelectScrollDownButton`)),Ty=y.forwardRef(Tv(function(e,t){let{__scopeSelect:n,onAutoScroll:r,...i}=e,a=ny(`SelectScrollButton`,n),o=y.useRef(null),s=Mv(n),c=y.useCallback(()=>{o.current!==null&&(window.clearInterval(o.current),o.current=null)},[]);return y.useEffect(()=>()=>c(),[c]),Jt(()=>{s().find(e=>e.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:`nearest`})},[s]),(0,K.jsx)(Y.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:J(i.onPointerDown,()=>{o.current===null&&(o.current=window.setInterval(r,50))}),onPointerMove:J(i.onPointerMove,()=>{a.onItemLeave?.(),o.current===null&&(o.current=window.setInterval(r,50))}),onPointerLeave:J(i.onPointerLeave,()=>{c()})})},`SelectScrollButtonImpl`)),Ey=`SelectBubbleInput`,Dy=y.forwardRef(Tv(function({__scopeSelect:e,...t},n){let r=Rv(Ey,e),{value:i,onValueChange:a,required:o,disabled:s,name:c,autoComplete:l,form:u,userSelection:d}=r,{nativeOptions:f,nativeSelectKey:p}=r,m=y.useRef(null),h=T(n,m),g=i??``,_=y.useRef(g),v=y.useRef(d),b=y.useRef(!1),x=Array.from(f).some(e=>(e.props.value??``)===``);return y.useEffect(()=>{let e=m.current;if(!e)return;let t=window.HTMLSelectElement.prototype,n=Object.getOwnPropertyDescriptor(t,`value`).set,r=d!==null&&d!==v.current;v.current=d;let i=_.current!==g;_.current=g;let a=r&&i;if(r&&!i&&d.value!==g&&!d.hasConsumerStoppedPropagation&&n){b.current=!0;try{n.call(e,d.value),e.dispatchEvent(new Event(`change`,{bubbles:!0}))}finally{b.current=!1,n.call(e,g)}return}let o=a&&!d.hasConsumerStoppedPropagation;if(i&&n){let t=new Event(`change`,{bubbles:o});n.call(e,g),e.dispatchEvent(t)}},[g,d]),(0,K.jsxs)(Y.select,{"aria-hidden":!0,required:o,tabIndex:-1,name:c,autoComplete:l,disabled:s,form:u,onChange:e=>{b.current||a(e.target.value)},...t,style:{...ah,...t.style},ref:h,defaultValue:g,children:[ky(i)&&!x?(0,K.jsx)(`option`,{value:``}):null,Array.from(f)]},p)},`SelectBubbleInput`));function Oy(e){return typeof e==`function`}Tv(Oy,`isFunction`);function ky(e){return e===``||e===void 0}Tv(ky,`shouldShowPlaceholder`);function Ay(e){let t=Fn(e),n=y.useRef(``),r=y.useRef(0),i=y.useCallback(e=>{let i=n.current+e;t(i);function a(e){n.current=e,window.clearTimeout(r.current),e!==``&&(r.current=window.setTimeout(()=>a(``),1e3))}Tv(a,`updateSearch`),a(i)},[t]),a=y.useCallback(()=>{n.current=``,window.clearTimeout(r.current)},[]);return y.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,a]}Tv(Ay,`useTypeaheadSearch`);function jy(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=My(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.textValue.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}Tv(jy,`findNextItem`);function My(e,t){return e.map((n,r)=>e[(t+r)%e.length])}Tv(My,`wrapArray`);function Ny({...e}){return(0,K.jsx)(Hv,{"data-slot":`select`,...e})}function Py({...e}){return(0,K.jsx)(Kv,{"data-slot":`select-value`,...e})}function Fy({className:e,size:t=`default`,children:n,...r}){return(0,K.jsxs)(Wv,{"data-slot":`select-trigger`,"data-size":t,className:jt(`border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),...r,children:[n,(0,K.jsx)(qv,{asChild:!0,children:(0,K.jsx)(su,{className:`size-4 opacity-50`})})]})}function Iy({className:e,children:t,position:n=`popper`,...r}){return(0,K.jsx)(Xv,{children:(0,K.jsxs)(Qv,{"data-slot":`select-content`,className:jt(`bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md`,n===`popper`&&`data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1`,e),position:n,...r,children:[(0,K.jsx)(Ry,{}),(0,K.jsx)(uy,{className:jt(`p-1`,n===`popper`&&`h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1`),children:t}),(0,K.jsx)(zy,{})]})})}function Ly({className:e,children:t,...n}){return(0,K.jsxs)(gy,{"data-slot":`select-item`,className:jt(`focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2`,e),...n,children:[(0,K.jsx)(`span`,{className:`absolute right-2 flex size-3.5 items-center justify-center`,children:(0,K.jsx)(by,{children:(0,K.jsx)(ru,{className:`size-4`})})}),(0,K.jsx)(vy,{children:t})]})}function Ry({className:e,...t}){return(0,K.jsx)(Sy,{"data-slot":`select-scroll-up-button`,className:jt(`flex cursor-default items-center justify-center py-1`,e),...t,children:(0,K.jsx)(pu,{className:`size-4`})})}function zy({className:e,...t}){return(0,K.jsx)(wy,{"data-slot":`select-scroll-down-button`,className:jt(`flex cursor-default items-center justify-center py-1`,e),...t,children:(0,K.jsx)(su,{className:`size-4`})})}function By({title:e,icon:t,children:n,className:r=``}){return(0,K.jsxs)(`div`,{className:`border rounded-lg p-4 bg-card ${r}`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2 mb-3`,children:[t,(0,K.jsx)(`h3`,{className:`text-sm font-semibold text-foreground`,children:e})]}),(0,K.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:n})]})}function Vy({agent:e,open:t,onOpenChange:n}){let r=e.source===`directory`?(0,K.jsx)(Gu,{className:`h-4 w-4 text-muted-foreground`}):e.source===`in_memory`?(0,K.jsx)(Fu,{className:`h-4 w-4 text-muted-foreground`}):(0,K.jsx)(qu,{className:`h-4 w-4 text-muted-foreground`}),i=e.source===`directory`?`Local`:e.source===`in_memory`?`In-Memory`:`Gallery`;return(0,K.jsx)(Og,{open:t,onOpenChange:n,children:(0,K.jsxs)(kg,{className:`max-w-4xl max-h-[90vh] flex flex-col`,children:[(0,K.jsxs)(Ag,{className:`px-6 pt-6 flex-shrink-0`,children:[(0,K.jsx)(jg,{children:`Agent Details`}),(0,K.jsx)(Ng,{onClose:()=>n(!1)})]}),(0,K.jsxs)(`div`,{className:`px-6 pb-6 overflow-y-auto flex-1`,children:[(0,K.jsxs)(`div`,{className:`mb-6`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-3 mb-2`,children:[(0,K.jsx)($l,{className:`h-6 w-6 text-primary`}),(0,K.jsx)(`h2`,{className:`text-xl font-semibold text-foreground`,children:e.name||e.id})]}),e.description&&(0,K.jsx)(`p`,{className:`text-muted-foreground`,children:e.description})]}),(0,K.jsx)(`div`,{className:`h-px bg-border mb-6`}),(0,K.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-4 mb-4`,children:[(e.model_id||e.chat_client_type)&&(0,K.jsx)(By,{title:`Model & Client`,icon:(0,K.jsx)($l,{className:`h-4 w-4 text-muted-foreground`}),children:(0,K.jsxs)(`div`,{className:`space-y-1`,children:[e.model_id&&(0,K.jsx)(`div`,{className:`font-mono text-foreground`,children:e.model_id}),e.chat_client_type&&(0,K.jsxs)(`div`,{className:`text-xs`,children:[`(`,e.chat_client_type,`)`]})]})}),(0,K.jsx)(By,{title:`Source`,icon:r,children:(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`div`,{className:`text-foreground`,children:i}),e.module_path&&(0,K.jsx)(`div`,{className:`font-mono text-xs break-all`,children:e.module_path})]})}),(0,K.jsx)(By,{title:`Environment`,icon:e.has_env?(0,K.jsx)(Cu,{className:`h-4 w-4 text-orange-500`}):(0,K.jsx)(_u,{className:`h-4 w-4 text-green-500`}),className:`md:col-span-2`,children:(0,K.jsx)(`div`,{className:e.has_env?`text-orange-600 dark:text-orange-400`:`text-green-600 dark:text-green-400`,children:e.has_env?`Requires environment variables`:`No environment variables required`})})]}),e.instructions&&(0,K.jsx)(By,{title:`Instructions`,icon:(0,K.jsx)(Uu,{className:`h-4 w-4 text-muted-foreground`}),className:`mb-4`,children:(0,K.jsx)(`div`,{className:`text-sm text-foreground leading-relaxed whitespace-pre-wrap`,children:e.instructions})}),(0,K.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-4`,children:[e.tools&&e.tools.length>0&&(0,K.jsx)(By,{title:`Tools (${e.tools.length})`,icon:(0,K.jsx)(Cd,{className:`h-4 w-4 text-muted-foreground`}),children:(0,K.jsx)(`ul`,{className:`space-y-1`,children:e.tools.map((e,t)=>(0,K.jsxs)(`li`,{className:`font-mono text-xs text-foreground`,children:[`• `,e]},t))})}),e.middleware&&e.middleware.length>0&&(0,K.jsx)(By,{title:`Middlewares (${e.middleware.length})`,icon:(0,K.jsx)(Cd,{className:`h-4 w-4 text-muted-foreground`}),children:(0,K.jsx)(`ul`,{className:`space-y-1`,children:e.middleware.map((e,t)=>(0,K.jsxs)(`li`,{className:`font-mono text-xs text-foreground`,children:[`• `,e]},t))})}),e.context_provider&&(0,K.jsx)(By,{title:`Context Provider`,icon:(0,K.jsx)(Fu,{className:`h-4 w-4 text-muted-foreground`}),className:!e.middleware||e.middleware.length===0?`md:col-start-2`:``,children:(0,K.jsx)(`div`,{className:`font-mono text-xs text-foreground`,children:e.context_provider})})]})]})]})})}vp();var Hy=50,Uy=`[Earlier streaming content omitted after refresh] +`),language:a},r.length));continue}let t=e.match(/^(#{1,6})\s+(.+)$/);if(t){let e=t[1].length,n=t[2],a=`${[`text-2xl`,`text-xl`,`text-lg`,`text-base`,`text-sm`,`text-sm`][e-1]} font-semibold mt-4 mb-2 first:mt-0 break-words`,o=e===1?(0,K.jsx)(`h1`,{className:a,children:fv(n)},r.length):e===2?(0,K.jsx)(`h2`,{className:a,children:fv(n)},r.length):e===3?(0,K.jsx)(`h3`,{className:a,children:fv(n)},r.length):e===4?(0,K.jsx)(`h4`,{className:a,children:fv(n)},r.length):e===5?(0,K.jsx)(`h5`,{className:a,children:fv(n)},r.length):(0,K.jsx)(`h6`,{className:a,children:fv(n)},r.length);r.push(o),i++;continue}if(e.match(/^[\s]*[-*+]\s+/)){let e=[];for(;i(0,K.jsx)(`li`,{className:`text-sm break-words`,children:fv(e)},t))},r.length));continue}if(e.match(/^[\s]*\d+\.\s+/)){let e=[];for(;i(0,K.jsx)(`li`,{className:`text-sm break-words`,children:fv(e)},t))},r.length));continue}if(e.trim().startsWith(`|`)&&e.trim().endsWith(`|`)){let e=[];for(;i=2){let t=e[0].split(`|`).slice(1,-1).map(e=>e.trim());if(e[1].match(/^\|[\s\-:|]+\|$/)){let n=e.slice(2).map(e=>e.split(`|`).slice(1,-1).map(e=>e.trim()));r.push((0,K.jsx)(`div`,{className:`my-3 overflow-x-auto`,children:(0,K.jsxs)(`table`,{className:`min-w-full border border-foreground/10 text-sm`,children:[(0,K.jsx)(`thead`,{className:`bg-foreground/5`,children:(0,K.jsx)(`tr`,{children:t.map((e,t)=>(0,K.jsx)(`th`,{className:`border-b border-foreground/10 px-3 py-2 text-left font-semibold break-words`,children:fv(e)},t))})}),(0,K.jsx)(`tbody`,{children:n.map((e,t)=>(0,K.jsx)(`tr`,{className:`border-b border-foreground/5 last:border-b-0`,children:e.map((e,t)=>(0,K.jsx)(`td`,{className:`px-3 py-2 border-r border-foreground/5 last:border-r-0 break-words`,children:fv(e)},t))},t))})]})},r.length));continue}}for(let t of e)r.push((0,K.jsx)(`p`,{className:`my-1`,children:fv(t)},r.length));continue}if(e.trim().startsWith(`>`)){let e=[];for(;i`);)e.push(n[i].replace(/^>\s?/,``)),i++;r.push((0,K.jsx)(`blockquote`,{className:`my-2 pl-4 border-l-4 border-current/30 opacity-80 italic break-words`,children:e.map((e,t)=>(0,K.jsx)(`div`,{className:`break-words`,children:fv(e)},t))},r.length));continue}if(e.match(/^[\s]*[-*_]{3,}[\s]*$/)){r.push((0,K.jsx)(`hr`,{className:`my-4 border-t border-border`},r.length)),i++;continue}if(e.trim()===``){r.push((0,K.jsx)(`div`,{className:`h-2`},r.length)),i++;continue}r.push((0,K.jsx)(`p`,{className:`my-1 break-words`,children:fv(e)},r.length)),i++}return(0,K.jsx)(`div`,{className:`markdown-content break-words ${t}`,children:r})}function fv(e){let t=[],n=e,r=0;for(;n.length>0;){let e=n.match(/`([^`]+)`/);if(e&&e.index!==void 0){e.index>0&&t.push((0,K.jsx)(`span`,{children:pv(n.slice(0,e.index))},r++)),t.push((0,K.jsx)(`code`,{className:`px-1.5 py-0.5 bg-foreground/10 rounded text-xs font-mono border border-foreground/20`,children:e[1]},r++)),n=n.slice(e.index+e[0].length);continue}t.push((0,K.jsx)(`span`,{children:pv(n)},r++));break}return t}function pv(e){let t=[],n=e,r=0;for(;n.length>0;){let e=[{regex:/\*\*\[([^\]]+)\]\(([^)]+)\)\*\*/,component:`strong-link`},{regex:/__\[([^\]]+)\]\(([^)]+)\)__/,component:`strong-link`},{regex:/\*\[([^\]]+)\]\(([^)]+)\)\*/,component:`em-link`},{regex:/_\[([^\]]+)\]\(([^)]+)\)_/,component:`em-link`},{regex:/\[([^\]]+)\]\(([^)]+)\)/,component:`link`},{regex:/\*\*(.+?)\*\*/,component:`strong`},{regex:/__(.+?)__/,component:`strong`},{regex:/\*(.+?)\*/,component:`em`},{regex:/_(.+?)_/,component:`em`}],i=!1;for(let a of e){let e=n.match(a.regex);if(e&&e.index!==void 0){if(e.index>0&&t.push(n.slice(0,e.index)),a.component===`strong`)t.push((0,K.jsx)(`strong`,{className:`font-semibold`,children:e[1]},r++));else if(a.component===`em`)t.push((0,K.jsx)(`em`,{className:`italic`,children:e[1]},r++));else if(a.component===`strong-link`){let n=e[1],i=e[2],a=pv(n);t.push((0,K.jsx)(`strong`,{className:`font-semibold`,children:(0,K.jsx)(`a`,{href:i,target:`_blank`,rel:`noopener noreferrer`,className:`text-primary hover:underline break-words`,children:a})},r++))}else if(a.component===`em-link`){let n=e[1],i=e[2],a=pv(n);t.push((0,K.jsx)(`em`,{className:`italic`,children:(0,K.jsx)(`a`,{href:i,target:`_blank`,rel:`noopener noreferrer`,className:`text-primary hover:underline break-words`,children:a})},r++))}else if(a.component===`link`){let n=e[1],i=e[2],a=pv(n);t.push((0,K.jsx)(`a`,{href:i,target:`_blank`,rel:`noopener noreferrer`,className:`text-primary hover:underline break-words`,children:a},r++))}n=n.slice(e.index+e[0].length),i=!0;break}}if(!i){n.length>0&&t.push(n);break}}return t}function mv(e){if(!e||!URL.canParse(e))return;let t=new URL(e);return t.protocol===`https:`||t.protocol===`http:`?t.href:void 0}function hv(e,t){let n=e;if(/^data:/i.test(e)){let r=/^data:([^;,]+);base64,([a-z0-9+/=\s]*)$/i.exec(e);if(!r)throw Error(`Unsupported embedded file format`);let i=r[1].toLowerCase();if(t&&t!==i)throw Error(`Embedded file type does not match its declared type`);t=i,n=r[2]}if(!t||![`application/pdf`,`video/mp4`,`video/webm`].includes(t))throw Error(`Unsupported embedded file type`);let r=atob(n);return new Blob([Uint8Array.from(r,e=>e.charCodeAt(0))],{type:t})}function gv({content:e,className:t,isStreaming:n}){if(e.type!==`text`&&e.type!==`input_text`&&e.type!==`output_text`&&e.type!==`refusal`)return null;let r=e.type===`refusal`?e.refusal:e.text;return(0,K.jsxs)(`div`,{className:`break-words ${t||``}`,children:[(0,K.jsx)(dv,{content:r}),n&&r.length>0&&(0,K.jsx)(`span`,{className:`ml-1 inline-block h-2 w-2 animate-pulse rounded-full bg-current`})]})}function _v({content:e,className:t}){let[n,r]=(0,y.useState)(!1),[i,a]=(0,y.useState)(!1);if(e.type!==`input_image`&&e.type!==`output_image`)return null;let o=e.image_url;return n?(0,K.jsx)(`div`,{className:`my-2 p-3 border rounded-lg bg-muted ${t||``}`,children:(0,K.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-muted-foreground`,children:[(0,K.jsx)(Uu,{className:`h-4 w-4`}),(0,K.jsx)(`span`,{children:`Image could not be loaded`})]})}):(0,K.jsxs)(`div`,{className:`my-2 ${t||``}`,children:[(0,K.jsx)(`img`,{src:o,alt:`Uploaded image`,className:`rounded-lg border max-w-full transition-all cursor-pointer ${i?`max-h-none`:`max-h-64`}`,onClick:()=>a(!i),onError:()=>r(!0)}),i&&(0,K.jsx)(`div`,{className:`text-xs text-muted-foreground mt-1`,children:`Click to collapse`})]})}function vv(e,t){let[n,r]=(0,y.useState)(null);return(0,y.useEffect)(()=>{if(e)try{let n=hv(e,t),i=URL.createObjectURL(n);return r({data:e,mimeType:t,url:i}),()=>{URL.revokeObjectURL(i)}}catch(e){console.error(`Failed to convert base64 to blob URL:`,e),r(null)}},[e,t]),n&&n.data===e&&n.mimeType===t?n.url:null}function yv({content:e,className:t}){let[n,r]=(0,y.useState)(!0),i=e.type===`input_file`||e.type===`output_file`,a=i?e.file_url||e.file_data:void 0,o=i?e.filename||`file`:void 0,s=o?.toLowerCase().endsWith(`.pdf`)||a?.includes(`application/pdf`),c=o?.toLowerCase().match(/\.(mp3|wav|m4a|ogg|flac|aac)$/),l=mv(a),u=vv(i&&(s||!c)?/^data:/i.test(e.file_url||``)?e.file_url:e.file_data||(l?void 0:e.file_url):void 0,s?`application/pdf`:e.type===`output_file`?e.mime_type:void 0);if(!i)return null;let d=u||l;return s&&a?(0,K.jsxs)(`div`,{className:`my-2 ${t||``}`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2 mb-2 px-1`,children:[(0,K.jsx)(Uu,{className:`h-4 w-4 text-red-500`}),(0,K.jsx)(`span`,{className:`text-sm font-medium truncate flex-1`,children:o}),(0,K.jsx)(`button`,{onClick:()=>r(!n),className:`text-xs text-muted-foreground hover:text-foreground flex items-center gap-1`,children:n?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(su,{className:`h-3 w-3`}),`Collapse`]}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(du,{className:`h-3 w-3`}),`Expand`]})})]}),n&&(0,K.jsxs)(`div`,{className:`border rounded-lg p-6 bg-muted/50 flex flex-col items-center justify-center gap-4`,children:[(0,K.jsx)(Uu,{className:`h-16 w-16 text-red-400`}),(0,K.jsxs)(`div`,{className:`text-center`,children:[(0,K.jsx)(`p`,{className:`text-sm font-medium mb-1`,children:o}),(0,K.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`PDF Document`})]}),(0,K.jsxs)(`div`,{className:`flex gap-3`,children:[(0,K.jsx)(`button`,{onClick:()=>{d&&window.open(d,`_blank`,`noopener,noreferrer`)},disabled:!d,className:`text-sm bg-primary text-primary-foreground hover:bg-primary/90 flex items-center gap-2 px-4 py-2 rounded-md transition-colors`,children:`Open in new tab`}),d&&(0,K.jsxs)(`a`,{href:d,download:o,className:`text-sm text-foreground hover:bg-accent flex items-center gap-2 px-4 py-2 border rounded-md transition-colors`,children:[(0,K.jsx)(Lu,{className:`h-4 w-4`}),`Download`]})]}),!d&&(0,K.jsx)(`p`,{role:`status`,className:`text-sm text-muted-foreground`,children:`This file cannot be opened: its link or embedded data is unavailable or unsupported.`})]})]}):c&&a?(0,K.jsxs)(`div`,{className:`my-2 p-3 border rounded-lg ${t||``}`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,K.jsx)(xd,{className:`h-4 w-4 text-muted-foreground`}),(0,K.jsx)(`span`,{className:`text-sm font-medium`,children:o})]}),(0,K.jsxs)(`audio`,{controls:!0,className:`w-full`,children:[(0,K.jsx)(`source`,{src:a}),`Your browser does not support audio playback.`]})]}):(0,K.jsxs)(`div`,{className:`my-2 p-3 border rounded-lg bg-muted ${t||``}`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(Uu,{className:`h-4 w-4 text-muted-foreground`}),(0,K.jsx)(`span`,{className:`text-sm`,children:o})]}),d&&(0,K.jsxs)(`a`,{href:d,download:o,className:`text-xs text-primary hover:underline flex items-center gap-1`,children:[(0,K.jsx)(Lu,{className:`h-3 w-3`}),`Download`]})]}),a&&!d&&(0,K.jsx)(`p`,{role:`status`,className:`text-sm text-muted-foreground`,children:`This file cannot be downloaded: its link or embedded data is unavailable or unsupported.`})]})}function bv({content:e,className:t}){let[n,r]=(0,y.useState)(!1);if(e.type!==`output_data`)return null;let i=e.data,a=e.mime_type,o=e.description,s=i;try{let e=JSON.parse(i);s=JSON.stringify(e,null,2)}catch{}return(0,K.jsxs)(`div`,{className:`my-2 p-3 border rounded-lg bg-muted ${t||``}`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2 cursor-pointer`,onClick:()=>r(!n),children:[(0,K.jsx)(Uu,{className:`h-4 w-4 text-muted-foreground`}),(0,K.jsx)(`span`,{className:`text-sm font-medium`,children:o||`Data Output`}),(0,K.jsx)(`span`,{className:`text-xs text-muted-foreground ml-auto`,children:a}),n?(0,K.jsx)(su,{className:`h-4 w-4 text-muted-foreground`}):(0,K.jsx)(du,{className:`h-4 w-4 text-muted-foreground`})]}),n&&(0,K.jsx)(`pre`,{className:`mt-2 text-xs overflow-auto max-h-64 bg-background p-2 rounded border font-mono`,children:s})]})}function xv({content:e,className:t}){let[n,r]=(0,y.useState)(!1);if(e.type!==`function_approval_request`)return null;let{status:i,function_call:a}=e,o={pending:{icon:Tu,label:`Awaiting approval`,iconClass:`text-amber-600 dark:text-amber-400`},approved:{icon:ru,label:`Approved`,iconClass:`text-green-600 dark:text-green-400`},rejected:{icon:mf,label:`Rejected`,iconClass:`text-red-600 dark:text-red-400`}}[i],s=o.icon,c;try{c=typeof a.arguments==`string`?JSON.parse(a.arguments):a.arguments}catch{c=a.arguments}return(0,K.jsxs)(`div`,{className:t,children:[(0,K.jsxs)(`button`,{onClick:()=>r(!n),className:`flex items-center gap-2 px-2 py-1 text-xs rounded hover:bg-muted/50 transition-colors w-fit`,children:[(0,K.jsx)(s,{className:`h-3 w-3 ${o.iconClass}`}),(0,K.jsx)(`span`,{className:`text-muted-foreground font-mono`,children:a.name}),(0,K.jsx)(`span`,{className:`text-xs ${o.iconClass}`,children:o.label}),n?(0,K.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`▼`}):(0,K.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`▶`})]}),n&&(0,K.jsx)(`div`,{className:`ml-5 mt-1 text-xs font-mono text-muted-foreground border-l-2 border-muted pl-3`,children:(0,K.jsx)(`pre`,{className:`whitespace-pre-wrap break-all`,children:JSON.stringify(c,null,2)})})]})}function Sv({content:e,className:t,isStreaming:n}){switch(e.type){case`text`:case`input_text`:case`output_text`:case`refusal`:return(0,K.jsx)(gv,{content:e,className:t,isStreaming:n});case`input_image`:case`output_image`:return(0,K.jsx)(_v,{content:e,className:t});case`input_file`:case`output_file`:return(0,K.jsx)(yv,{content:e,className:t});case`output_data`:return(0,K.jsx)(bv,{content:e,className:t});case`function_approval_request`:return(0,K.jsx)(xv,{content:e,className:t});default:return null}}function Cv({name:e,arguments:t,className:n}){let[r,i]=(0,y.useState)(!1),a;try{a=typeof t==`string`?JSON.parse(t):t}catch{a=t}return(0,K.jsxs)(`div`,{className:`my-2 p-3 border rounded bg-blue-50 dark:bg-blue-950/20 ${n||``}`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2 cursor-pointer`,onClick:()=>i(!r),children:[(0,K.jsx)(ku,{className:`h-4 w-4 text-blue-600 dark:text-blue-400`}),(0,K.jsxs)(`span`,{className:`text-sm font-medium text-blue-800 dark:text-blue-300`,children:[`Function Call: `,e]}),r?(0,K.jsx)(su,{className:`h-4 w-4 text-blue-600 dark:text-blue-400 ml-auto`}):(0,K.jsx)(du,{className:`h-4 w-4 text-blue-600 dark:text-blue-400 ml-auto`})]}),r&&(0,K.jsxs)(`div`,{className:`mt-2 text-xs font-mono bg-white dark:bg-gray-900 p-2 rounded border`,children:[(0,K.jsx)(`div`,{className:`text-blue-600 dark:text-blue-400 mb-1`,children:`Arguments:`}),(0,K.jsx)(`pre`,{className:`whitespace-pre-wrap`,children:JSON.stringify(a,null,2)})]})]})}function wv({output:e,call_id:t,className:n}){let[r,i]=(0,y.useState)(!1),a;try{a=typeof e==`string`?JSON.parse(e):e}catch{a=e}return(0,K.jsxs)(`div`,{className:`my-2 p-3 border rounded bg-green-50 dark:bg-green-950/20 ${n||``}`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2 cursor-pointer`,onClick:()=>i(!r),children:[(0,K.jsx)(ku,{className:`h-4 w-4 text-green-600 dark:text-green-400`}),(0,K.jsx)(`span`,{className:`text-sm font-medium text-green-800 dark:text-green-300`,children:`Function Result`}),r?(0,K.jsx)(su,{className:`h-4 w-4 text-green-600 dark:text-green-400 ml-auto`}):(0,K.jsx)(du,{className:`h-4 w-4 text-green-600 dark:text-green-400 ml-auto`})]}),r&&(0,K.jsxs)(`div`,{className:`mt-2 text-xs font-mono bg-white dark:bg-gray-900 p-2 rounded border`,children:[(0,K.jsx)(`div`,{className:`text-green-600 dark:text-green-400 mb-1`,children:`Output:`}),(0,K.jsx)(`pre`,{className:`whitespace-pre-wrap`,children:JSON.stringify(a,null,2)}),(0,K.jsxs)(`div`,{className:`text-gray-500 text-[10px] mt-2`,children:[`Call ID: `,t]})]})]})}function Tv({item:e,className:t}){if(e.type===`message`){let n=e.status===`in_progress`,r=e.content.length>0;return(0,K.jsxs)(`div`,{className:t,children:[e.content.map((e,t)=>(0,K.jsx)(Sv,{content:e,className:t>0?`mt-2`:``,isStreaming:n},t)),n&&!r&&(0,K.jsx)(`div`,{className:`flex items-center space-x-1`,children:(0,K.jsxs)(`div`,{className:`flex space-x-1`,children:[(0,K.jsx)(`div`,{className:`h-2 w-2 animate-bounce rounded-full bg-current [animation-delay:-0.3s]`}),(0,K.jsx)(`div`,{className:`h-2 w-2 animate-bounce rounded-full bg-current [animation-delay:-0.15s]`}),(0,K.jsx)(`div`,{className:`h-2 w-2 animate-bounce rounded-full bg-current`})]})})]})}return e.type===`function_call`?(0,K.jsx)(Cv,{name:e.name,arguments:e.arguments,className:t}):e.type===`function_call_output`?(0,K.jsx)(wv,{output:e.output,call_id:e.call_id,className:t}):null}var Ev=Object.defineProperty,Dv=(e,t)=>Ev(e,`name`,{value:t,configurable:!0}),Ov={ItemAligned:`item-aligned`,Popper:`popper`},kv={LTR:`ltr`,RTL:`rtl`},Av=[` `,`Enter`,`ArrowUp`,`ArrowDown`],jv=[` `,`Enter`],Mv=`Select`,[Nv,Pv,Fv]=hn(Mv),[Iv,Lv]=Kt(Mv,[Fv,Ja]),Rv=Ja(),[zv,Bv]=Iv(Mv),[Vv,Hv]=Iv(Mv);function Uv(e){let{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:a,value:o,defaultValue:s,onValueChange:c,dir:l,name:u,autoComplete:d,disabled:f,required:p,form:m,internal_do_not_use_render:h}=e,g=Rv(t),[_,v]=y.useState(null),[b,x]=y.useState(null),[S,C]=y.useState(!1),w=jn(l),[T,E]=rn({prop:r,defaultProp:i??!1,onChange:a,caller:Mv}),[D,O]=rn({prop:o,defaultProp:s,onChange:c,caller:Mv}),k=y.useRef(null),A=y.useRef(!1),[j,M]=y.useState(null),N=Dv(e=>{M({value:e,hasConsumerStoppedPropagation:A.current}),O(e)},`handleUserSelect`),P=y.useRef(D);y.useEffect(()=>{let e=m?_?.ownerDocument.getElementById(m):_?.form;if(e instanceof HTMLFormElement){let t=Dv(()=>O(P.current),`reset`);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[m,_,O]);let F=!_||!!m||!!_.closest(`form`),[I,L]=y.useState(new Set),R=Or(),z=Array.from(I).map(e=>e.props.value).join(`;`),B=y.useCallback(e=>{L(t=>new Set(t).add(e))},[]),ee=y.useCallback(e=>{L(t=>{let n=new Set(t);return n.delete(e),n})},[]),V={required:p,trigger:_,onTriggerChange:v,valueNode:b,onValueNodeChange:x,valueNodeHasChildren:S,onValueNodeHasChildrenChange:C,contentId:R,value:D,onValueChange:O,hasConsumerStoppedPropagationRef:A,userSelection:j,onUserSelect:N,open:T,onOpenChange:E,dir:w,triggerPointerDownPosRef:k,disabled:f,name:u,autoComplete:d,form:m,nativeOptions:I,nativeSelectKey:z,isFormControl:F};return(0,K.jsx)(Za,{...g,children:(0,K.jsx)(zv,{scope:t,...V,children:(0,K.jsx)(Nv.Provider,{scope:t,children:(0,K.jsx)(Vv,{scope:t,onNativeOptionAdd:B,onNativeOptionRemove:ee,children:Ay(h)?h(V):n})})})})}Dv(Uv,`SelectProvider`);var Wv=Dv(e=>{let{__scopeSelect:t,children:n,...r}=e;return(0,K.jsx)(Uv,{__scopeSelect:t,...r,internal_do_not_use_render:({isFormControl:e})=>(0,K.jsxs)(K.Fragment,{children:[n,e?(0,K.jsx)(ky,{__scopeSelect:t}):null]})})},`Select`),Gv=`SelectTrigger`,Kv=y.forwardRef(Dv(function(e,t){let{__scopeSelect:n,disabled:r=!1,...i}=e,a=Rv(n),o=Bv(Gv,n),s=o.disabled||r,c=T(t,o.onTriggerChange),l=Pv(n),u=y.useRef(`touch`),[d,f,p]=My(e=>{let t=l().filter(e=>!e.disabled),n=Ny(t,e,t.find(e=>e.value===o.value));n!==void 0&&o.onUserSelect(n.value)}),m=Dv(e=>{s||(o.onOpenChange(!0),p()),e&&(o.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})},`handleOpen`);return(0,K.jsx)($a,{asChild:!0,...a,children:(0,K.jsx)(Y.button,{type:`button`,role:`combobox`,"aria-controls":o.open?o.contentId:void 0,"aria-expanded":o.open,"aria-required":o.required,"aria-autocomplete":`none`,dir:o.dir,"data-state":o.open?`open`:`closed`,disabled:s,"data-disabled":s?``:void 0,"data-placeholder":jy(o.value)?``:void 0,...i,ref:c,onClick:J(i.onClick,e=>{e.currentTarget.focus(),u.current!==`mouse`&&m(e)}),onPointerDown:J(i.onPointerDown,e=>{u.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&e.pointerType===`mouse`&&(m(e),e.preventDefault())}),onKeyDown:J(i.onKeyDown,e=>{let t=d.current!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&(o.hasConsumerStoppedPropagationRef.current=e.isPropagationStopped(),f(e.key)),!(t&&e.key===` `)&&Av.includes(e.key)&&(m(),e.preventDefault())})})})},`SelectTrigger`)),qv=`SelectValue`,Jv=y.forwardRef(Dv(function(e,t){let{__scopeSelect:n,className:r,style:i,children:a,placeholder:o=``,...s}=e,c=Bv(qv,n),{onValueNodeHasChildrenChange:l}=c,u=a!==void 0,d=T(t,c.onValueNodeChange);Jt(()=>{l(u)},[l,u]);let f=jy(c.value);return(0,K.jsx)(Y.span,{...s,asChild:!f&&s.asChild,ref:d,style:{pointerEvents:`none`},children:(0,K.jsx)(y.Fragment,{children:f?o:a},f?`placeholder`:`value`)})},`SelectValue`)),Yv=y.forwardRef(Dv(function(e,t){let{__scopeSelect:n,children:r,...i}=e;return(0,K.jsx)(Y.span,{"aria-hidden":!0,...i,ref:t,children:r||`▼`})},`SelectIcon`)),[Xv,Zv]=Iv(`SelectPortal`,{forceMount:void 0}),Qv=Dv(e=>{let{__scopeSelect:t,forceMount:n,...r}=e;return(0,K.jsx)(Xv,{scope:e.__scopeSelect,forceMount:n,children:(0,K.jsx)(co,{asChild:!0,...r})})},`SelectPortal`),$v=`SelectContent`,ey=y.forwardRef(Dv(function(e,t){let n=Zv($v,e.__scopeSelect),{forceMount:r=n.forceMount,...i}=e,a=Bv($v,e.__scopeSelect),[o,s]=y.useState();return Jt(()=>{s(new DocumentFragment)},[]),(0,K.jsx)(po,{present:r||a.open,children:({present:e})=>e?(0,K.jsx)(oy,{...i,ref:t}):(0,K.jsx)(ty,{...i,fragment:o})})},`SelectContent`)),ty=y.forwardRef(Dv(function(e,t){let{__scopeSelect:n,children:r,fragment:i}=e;return i?ln.createPortal((0,K.jsx)(ry,{scope:n,children:(0,K.jsx)(Nv.Slot,{scope:n,children:(0,K.jsx)(`div`,{ref:t,children:r})})}),i):null},`SelectContentFragment`)),ny=10,[ry,iy]=Iv($v),ay=O(`SelectContent.RemoveScroll`),oy=y.forwardRef(Dv(function(e,t){let{__scopeSelect:n}=e,{position:r=Ov.ItemAligned,onCloseAutoFocus:i,onEscapeKeyDown:a,onPointerDownOutside:o,side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:f,collisionPadding:p,sticky:m,hideWhenDetached:h,avoidCollisions:g,..._}=e,v=Bv($v,n),[b,x]=y.useState(null),[S,C]=y.useState(null),w=T(t,x),[E,D]=y.useState(null),[O,k]=y.useState(null),A=Pv(n),[j,M]=y.useState(!1),N=y.useRef(!1),P=y.useRef(!1),F=y.useRef(!1);y.useEffect(()=>{if(b)return is(b)},[b]),tr();let I=y.useCallback(e=>{let[t,...n]=A().map(e=>e.ref.current),[r]=n.slice(-1),i=document.activeElement;for(let n of e)if(n===i||(n?.scrollIntoView({block:`nearest`}),n===t&&S&&(S.scrollTop=0),n===r&&S&&(S.scrollTop=S.scrollHeight),n?.focus(),document.activeElement!==i))return},[A,S]),L=y.useCallback(()=>I([E,b]),[I,E,b]);y.useEffect(()=>{j&&L()},[j,L]);let{onOpenChange:R,triggerPointerDownPosRef:z}=v;y.useEffect(()=>{if(b){let e={x:0,y:0},t=Dv(t=>{e={x:Math.abs(Math.round(t.pageX)-(z.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(z.current?.y??0))}},`handlePointerMove`),n=Dv(n=>{e.x<=10&&e.y<=10?n.preventDefault():n.composedPath().includes(b)||R(!1),document.removeEventListener(`pointermove`,t),z.current=null},`handlePointerUp`);return z.current!==null&&(document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n,{capture:!0,once:!0})),()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n,{capture:!0})}}},[b,R,z]),y.useEffect(()=>{let e=Dv(()=>R(!1),`close`);return window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e)}},[R]);let[B,ee]=My(e=>{let t=A().filter(e=>!e.disabled),n=Ny(t,e,t.find(e=>e.ref.current===document.activeElement));n&&setTimeout(()=>n.ref.current?.focus())}),V=y.useCallback((e,t,n)=>{let r=!P.current;r&&(P.current=!0);let i=!N.current&&!n;v.value!==void 0&&v.value===t||i?(D(e),i&&(N.current=!0)):r&&D(e)},[v.value]),H=y.useCallback(()=>b?.focus(),[b]),te=y.useCallback((e,t,n)=>{if(!e)return;let r=!F.current;r&&(F.current=!0);let i=!N.current&&!n;(v.value!==void 0&&v.value===t||i||r)&&k(e)},[v.value]),ne=r===Ov.Popper?cy:sy,re=ne===cy?{side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:f,collisionPadding:p,sticky:m,hideWhenDetached:h,avoidCollisions:g}:{};return(0,K.jsx)(ry,{scope:n,content:b,viewport:S,onViewportChange:C,itemRefCallback:V,selectedItem:E,onItemLeave:H,itemTextRefCallback:te,focusSelectedItem:L,selectedItemText:O,position:r,isPositioned:j,searchRef:B,children:(0,K.jsx)(fc,{as:ay,allowPinchZoom:!0,children:(0,K.jsx)(cr,{asChild:!0,trapped:v.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:J(i,e=>{v.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,K.jsx)(Un,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>v.onOpenChange(!1),children:(0,K.jsx)(ne,{role:`listbox`,id:v.contentId,"data-state":v.open?`open`:`closed`,dir:v.dir,onContextMenu:e=>e.preventDefault(),..._,...re,onPlaced:()=>M(!0),ref:w,style:{display:`flex`,flexDirection:`column`,outline:`none`,..._.style},onKeyDown:J(_.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&ee(e.key),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=A().filter(e=>!e.disabled).map(e=>e.ref.current);if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>I(t)),e.preventDefault()}})})})})})})},`SelectContentImpl`)),sy=y.forwardRef(Dv(function(e,t){let{__scopeSelect:n,onPlaced:r,...i}=e,a=Bv($v,n),o=iy($v,n),[s,c]=y.useState(null),[l,u]=y.useState(null),d=T(t,u),f=Pv(n),p=y.useRef(!1),m=y.useRef(!0),{viewport:h,selectedItem:g,selectedItemText:_,focusSelectedItem:v}=o,b=y.useCallback(()=>{if(a.trigger&&a.valueNode&&s&&l&&h&&g&&_){let e=a.trigger.getBoundingClientRect(),t=l.getBoundingClientRect(),n=a.valueNode.getBoundingClientRect(),i=_.getBoundingClientRect();if(a.dir!==kv.RTL){let r=i.left-t.left,a=n.left-r,o=e.left-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-ny,d=Sp(a,[ny,Math.max(ny,u-l)]);s.style.minWidth=c+`px`,s.style.left=d+`px`}else{let r=t.right-i.right,a=window.innerWidth-n.right-r,o=window.innerWidth-e.right-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-ny,d=Sp(a,[ny,Math.max(ny,u-l)]);s.style.minWidth=c+`px`,s.style.right=d+`px`}let o=f(),c=window.innerHeight-ny*2,u=h.scrollHeight,d=window.getComputedStyle(l),m=parseInt(d.borderTopWidth,10),v=parseInt(d.paddingTop,10),y=parseInt(d.borderBottomWidth,10),b=parseInt(d.paddingBottom,10),x=m+v+u+b+y,S=Math.min(g.offsetHeight*5,x),C=window.getComputedStyle(h),w=parseInt(C.paddingTop,10),T=parseInt(C.paddingBottom,10),E=e.top+e.height/2-ny,D=c-E,O=g.offsetHeight/2,k=g.offsetTop+O,A=m+v+k,j=x-A;if(A<=E){let e=o.length>0&&g===o[o.length-1].ref.current;s.style.bottom=`0px`;let t=l.clientHeight-h.offsetTop-h.offsetHeight,n=A+Math.max(D,O+(e?T:0)+t+y);s.style.height=n+`px`}else{let e=o.length>0&&g===o[0].ref.current;s.style.top=`0px`;let t=Math.max(E,m+h.offsetTop+(e?w:0)+O)+j;s.style.height=t+`px`,h.scrollTop=A-E+h.offsetTop}s.style.margin=`${ny}px 0`,s.style.minHeight=S+`px`,s.style.maxHeight=c+`px`,r?.(),requestAnimationFrame(()=>p.current=!0)}},[f,a.trigger,a.valueNode,s,l,h,g,_,a.dir,r]);Jt(()=>b(),[b]);let[x,S]=y.useState();Jt(()=>{l&&S(window.getComputedStyle(l).zIndex)},[l]);let C=y.useCallback(e=>{e&&m.current===!0&&(b(),v?.(),m.current=!1)},[b,v]);return(0,K.jsx)(ly,{scope:n,contentWrapper:s,shouldExpandOnScrollRef:p,onScrollButtonChange:C,children:(0,K.jsx)(`div`,{ref:c,style:{display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:x},children:(0,K.jsx)(Y.div,{...i,ref:d,style:{boxSizing:`border-box`,maxHeight:`100%`,...i.style}})})})},`SelectItemAlignedPosition`)),cy=y.forwardRef(Dv(function(e,t){let{__scopeSelect:n,align:r=`start`,collisionPadding:i=ny,...a}=e,o=Rv(n);return(0,K.jsx)(ro,{...o,...a,ref:t,align:r,collisionPadding:i,style:{boxSizing:`border-box`,...a.style,"--radix-select-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-select-content-available-width":`var(--radix-popper-available-width)`,"--radix-select-content-available-height":`var(--radix-popper-available-height)`,"--radix-select-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-select-trigger-height":`var(--radix-popper-anchor-height)`}})},`SelectPopperPosition`)),[ly,uy]=Iv($v,{}),dy=`SelectViewport`,fy=y.forwardRef(Dv(function(e,t){let{__scopeSelect:n,nonce:r,...i}=e,a=iy(dy,n),o=uy(dy,n),s=T(t,a.onViewportChange),c=y.useRef(0);return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`},nonce:r}),(0,K.jsx)(Nv.Slot,{scope:n,children:(0,K.jsx)(Y.div,{"data-radix-select-viewport":``,role:`presentation`,...i,ref:s,style:{position:`relative`,flex:1,overflow:`hidden auto`,...i.style},onScroll:J(i.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=o;if(r?.current&&n){let e=Math.abs(c.current-t.scrollTop);if(e>0){let r=window.innerHeight-ny*2,i=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),o=Math.max(i,a);if(o0?s:0,n.style.justifyContent=`flex-end`)}}}c.current=t.scrollTop})})})]})},`SelectViewport`)),[py,my]=Iv(`SelectGroup`),hy=`SelectItem`,[gy,_y]=Iv(hy),vy=y.forwardRef(Dv(function(e,t){let{__scopeSelect:n,value:r,disabled:i=!1,textValue:a,...o}=e,s=Bv(hy,n),c=iy(hy,n),l=s.value===r,[u,d]=y.useState(a??``),[f,p]=y.useState(!1),m=T(t,Fn(e=>c.itemRefCallback?.(e,r,i))),h=Or(),g=y.useRef(`touch`);function _(e){s.hasConsumerStoppedPropagationRef.current=e.isPropagationStopped(),s.onUserSelect(r),s.onOpenChange(!1)}return Dv(_,`handleSelect`),(0,K.jsx)(gy,{scope:n,value:r,disabled:i,textId:h,isSelected:l,onItemTextChange:y.useCallback(e=>{d(t=>t||(e?.textContent??``).trim())},[]),children:(0,K.jsx)(Nv.ItemSlot,{scope:n,value:r,disabled:i,textValue:u,children:(0,K.jsx)(Y.div,{role:`option`,"aria-labelledby":h,"data-highlighted":f?``:void 0,"aria-selected":l&&f,"data-state":l?`checked`:`unchecked`,"aria-disabled":i||void 0,"data-disabled":i?``:void 0,tabIndex:i?void 0:-1,...o,ref:m,onFocus:J(o.onFocus,()=>p(!0)),onBlur:J(o.onBlur,()=>p(!1)),onClick:J(o.onClick,e=>{i||g.current!==`mouse`&&_(e)}),onPointerUp:J(o.onPointerUp,e=>{i||g.current===`mouse`&&_(e)}),onPointerDown:J(o.onPointerDown,e=>{g.current=e.pointerType}),onPointerMove:J(o.onPointerMove,e=>{g.current=e.pointerType,i?c.onItemLeave?.():g.current===`mouse`&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:J(o.onPointerLeave,e=>{e.currentTarget===document.activeElement&&c.onItemLeave?.()}),onKeyDown:J(o.onKeyDown,e=>{i||e.target!==e.currentTarget||(c.searchRef?.current===``||e.key!==` `)&&(jv.includes(e.key)&&_(e),e.key===` `&&e.preventDefault())})})})})},`SelectItem`)),yy=`SelectItemText`,by=y.forwardRef(Dv(function(e,t){let{__scopeSelect:n,className:r,style:i,...a}=e,o=Bv(yy,n),s=iy(yy,n),c=_y(yy,n),l=Hv(yy,n),[u,d]=y.useState(null),f=Fn(e=>s.itemTextRefCallback?.(e,c.value,c.disabled)),p=T(t,d,c.onItemTextChange,f),m=u?.textContent,h=y.useMemo(()=>(0,K.jsx)(`option`,{value:c.value,disabled:c.disabled,children:m},c.value),[c.disabled,c.value,m]),{onNativeOptionAdd:g,onNativeOptionRemove:_}=l;return Jt(()=>(g(h),()=>_(h)),[g,_,h]),(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(Y.span,{id:c.textId,...a,ref:p}),c.isSelected&&o.valueNode&&!o.valueNodeHasChildren&&!jy(o.value)?ln.createPortal(a.children,o.valueNode):null]})},`SelectItemText`)),xy=`SelectItemIndicator`,Sy=y.forwardRef(Dv(function(e,t){let{__scopeSelect:n,...r}=e;return _y(xy,n).isSelected?(0,K.jsx)(Y.span,{"aria-hidden":!0,...r,ref:t}):null},`SelectItemIndicator`)),Cy=`SelectScrollUpButton`,wy=y.forwardRef(Dv(function(e,t){let n=iy(Cy,e.__scopeSelect),r=uy(Cy,e.__scopeSelect),[i,a]=y.useState(!1),o=T(t,r.onScrollButtonChange);return Jt(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollTop>0;a(e)};Dv(e,`handleScroll`);let t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,K.jsx)(Dy,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop-=t.offsetHeight)}}):null},`SelectScrollUpButton`)),Ty=`SelectScrollDownButton`,Ey=y.forwardRef(Dv(function(e,t){let n=iy(Ty,e.__scopeSelect),r=uy(Ty,e.__scopeSelect),[i,a]=y.useState(!1),o=T(t,r.onScrollButtonChange);return Jt(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight,n=Math.ceil(t.scrollTop)t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,K.jsx)(Dy,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop+=t.offsetHeight)}}):null},`SelectScrollDownButton`)),Dy=y.forwardRef(Dv(function(e,t){let{__scopeSelect:n,onAutoScroll:r,...i}=e,a=iy(`SelectScrollButton`,n),o=y.useRef(null),s=Pv(n),c=y.useCallback(()=>{o.current!==null&&(window.clearInterval(o.current),o.current=null)},[]);return y.useEffect(()=>()=>c(),[c]),Jt(()=>{s().find(e=>e.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:`nearest`})},[s]),(0,K.jsx)(Y.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:J(i.onPointerDown,()=>{o.current===null&&(o.current=window.setInterval(r,50))}),onPointerMove:J(i.onPointerMove,()=>{a.onItemLeave?.(),o.current===null&&(o.current=window.setInterval(r,50))}),onPointerLeave:J(i.onPointerLeave,()=>{c()})})},`SelectScrollButtonImpl`)),Oy=`SelectBubbleInput`,ky=y.forwardRef(Dv(function({__scopeSelect:e,...t},n){let r=Bv(Oy,e),{value:i,onValueChange:a,required:o,disabled:s,name:c,autoComplete:l,form:u,userSelection:d}=r,{nativeOptions:f,nativeSelectKey:p}=r,m=y.useRef(null),h=T(n,m),g=i??``,_=y.useRef(g),v=y.useRef(d),b=y.useRef(!1),x=Array.from(f).some(e=>(e.props.value??``)===``);return y.useEffect(()=>{let e=m.current;if(!e)return;let t=window.HTMLSelectElement.prototype,n=Object.getOwnPropertyDescriptor(t,`value`).set,r=d!==null&&d!==v.current;v.current=d;let i=_.current!==g;_.current=g;let a=r&&i;if(r&&!i&&d.value!==g&&!d.hasConsumerStoppedPropagation&&n){b.current=!0;try{n.call(e,d.value),e.dispatchEvent(new Event(`change`,{bubbles:!0}))}finally{b.current=!1,n.call(e,g)}return}let o=a&&!d.hasConsumerStoppedPropagation;if(i&&n){let t=new Event(`change`,{bubbles:o});n.call(e,g),e.dispatchEvent(t)}},[g,d]),(0,K.jsxs)(Y.select,{"aria-hidden":!0,required:o,tabIndex:-1,name:c,autoComplete:l,disabled:s,form:u,onChange:e=>{b.current||a(e.target.value)},...t,style:{...ah,...t.style},ref:h,defaultValue:g,children:[jy(i)&&!x?(0,K.jsx)(`option`,{value:``}):null,Array.from(f)]},p)},`SelectBubbleInput`));function Ay(e){return typeof e==`function`}Dv(Ay,`isFunction`);function jy(e){return e===``||e===void 0}Dv(jy,`shouldShowPlaceholder`);function My(e){let t=Fn(e),n=y.useRef(``),r=y.useRef(0),i=y.useCallback(e=>{let i=n.current+e;t(i);function a(e){n.current=e,window.clearTimeout(r.current),e!==``&&(r.current=window.setTimeout(()=>a(``),1e3))}Dv(a,`updateSearch`),a(i)},[t]),a=y.useCallback(()=>{n.current=``,window.clearTimeout(r.current)},[]);return y.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,a]}Dv(My,`useTypeaheadSearch`);function Ny(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=Py(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.textValue.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}Dv(Ny,`findNextItem`);function Py(e,t){return e.map((n,r)=>e[(t+r)%e.length])}Dv(Py,`wrapArray`);function Fy({...e}){return(0,K.jsx)(Wv,{"data-slot":`select`,...e})}function Iy({...e}){return(0,K.jsx)(Jv,{"data-slot":`select-value`,...e})}function Ly({className:e,size:t=`default`,children:n,...r}){return(0,K.jsxs)(Kv,{"data-slot":`select-trigger`,"data-size":t,className:jt(`border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),...r,children:[n,(0,K.jsx)(Yv,{asChild:!0,children:(0,K.jsx)(su,{className:`size-4 opacity-50`})})]})}function Ry({className:e,children:t,position:n=`popper`,...r}){return(0,K.jsx)(Qv,{children:(0,K.jsxs)(ey,{"data-slot":`select-content`,className:jt(`bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md`,n===`popper`&&`data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1`,e),position:n,...r,children:[(0,K.jsx)(By,{}),(0,K.jsx)(fy,{className:jt(`p-1`,n===`popper`&&`h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1`),children:t}),(0,K.jsx)(Vy,{})]})})}function zy({className:e,children:t,...n}){return(0,K.jsxs)(vy,{"data-slot":`select-item`,className:jt(`focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2`,e),...n,children:[(0,K.jsx)(`span`,{className:`absolute right-2 flex size-3.5 items-center justify-center`,children:(0,K.jsx)(Sy,{children:(0,K.jsx)(ru,{className:`size-4`})})}),(0,K.jsx)(by,{children:t})]})}function By({className:e,...t}){return(0,K.jsx)(wy,{"data-slot":`select-scroll-up-button`,className:jt(`flex cursor-default items-center justify-center py-1`,e),...t,children:(0,K.jsx)(pu,{className:`size-4`})})}function Vy({className:e,...t}){return(0,K.jsx)(Ey,{"data-slot":`select-scroll-down-button`,className:jt(`flex cursor-default items-center justify-center py-1`,e),...t,children:(0,K.jsx)(su,{className:`size-4`})})}function Hy({title:e,icon:t,children:n,className:r=``}){return(0,K.jsxs)(`div`,{className:`border rounded-lg p-4 bg-card ${r}`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2 mb-3`,children:[t,(0,K.jsx)(`h3`,{className:`text-sm font-semibold text-foreground`,children:e})]}),(0,K.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:n})]})}function Uy({agent:e,open:t,onOpenChange:n}){let r=e.source===`directory`?(0,K.jsx)(Gu,{className:`h-4 w-4 text-muted-foreground`}):e.source===`in_memory`?(0,K.jsx)(Fu,{className:`h-4 w-4 text-muted-foreground`}):(0,K.jsx)(qu,{className:`h-4 w-4 text-muted-foreground`}),i=e.source===`directory`?`Local`:e.source===`in_memory`?`In-Memory`:`Gallery`;return(0,K.jsx)(Og,{open:t,onOpenChange:n,children:(0,K.jsxs)(kg,{className:`max-w-4xl max-h-[90vh] flex flex-col`,children:[(0,K.jsxs)(Ag,{className:`px-6 pt-6 flex-shrink-0`,children:[(0,K.jsx)(jg,{children:`Agent Details`}),(0,K.jsx)(Ng,{onClose:()=>n(!1)})]}),(0,K.jsxs)(`div`,{className:`px-6 pb-6 overflow-y-auto flex-1`,children:[(0,K.jsxs)(`div`,{className:`mb-6`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-3 mb-2`,children:[(0,K.jsx)($l,{className:`h-6 w-6 text-primary`}),(0,K.jsx)(`h2`,{className:`text-xl font-semibold text-foreground`,children:e.name||e.id})]}),e.description&&(0,K.jsx)(`p`,{className:`text-muted-foreground`,children:e.description})]}),(0,K.jsx)(`div`,{className:`h-px bg-border mb-6`}),(0,K.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-4 mb-4`,children:[(e.model_id||e.chat_client_type)&&(0,K.jsx)(Hy,{title:`Model & Client`,icon:(0,K.jsx)($l,{className:`h-4 w-4 text-muted-foreground`}),children:(0,K.jsxs)(`div`,{className:`space-y-1`,children:[e.model_id&&(0,K.jsx)(`div`,{className:`font-mono text-foreground`,children:e.model_id}),e.chat_client_type&&(0,K.jsxs)(`div`,{className:`text-xs`,children:[`(`,e.chat_client_type,`)`]})]})}),(0,K.jsx)(Hy,{title:`Source`,icon:r,children:(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`div`,{className:`text-foreground`,children:i}),e.module_path&&(0,K.jsx)(`div`,{className:`font-mono text-xs break-all`,children:e.module_path})]})}),(0,K.jsx)(Hy,{title:`Environment`,icon:e.has_env?(0,K.jsx)(Cu,{className:`h-4 w-4 text-orange-500`}):(0,K.jsx)(_u,{className:`h-4 w-4 text-green-500`}),className:`md:col-span-2`,children:(0,K.jsx)(`div`,{className:e.has_env?`text-orange-600 dark:text-orange-400`:`text-green-600 dark:text-green-400`,children:e.has_env?`Requires environment variables`:`No environment variables required`})})]}),e.instructions&&(0,K.jsx)(Hy,{title:`Instructions`,icon:(0,K.jsx)(Uu,{className:`h-4 w-4 text-muted-foreground`}),className:`mb-4`,children:(0,K.jsx)(`div`,{className:`text-sm text-foreground leading-relaxed whitespace-pre-wrap`,children:e.instructions})}),(0,K.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-4`,children:[e.tools&&e.tools.length>0&&(0,K.jsx)(Hy,{title:`Tools (${e.tools.length})`,icon:(0,K.jsx)(Cd,{className:`h-4 w-4 text-muted-foreground`}),children:(0,K.jsx)(`ul`,{className:`space-y-1`,children:e.tools.map((e,t)=>(0,K.jsxs)(`li`,{className:`font-mono text-xs text-foreground`,children:[`• `,e]},t))})}),e.middleware&&e.middleware.length>0&&(0,K.jsx)(Hy,{title:`Middlewares (${e.middleware.length})`,icon:(0,K.jsx)(Cd,{className:`h-4 w-4 text-muted-foreground`}),children:(0,K.jsx)(`ul`,{className:`space-y-1`,children:e.middleware.map((e,t)=>(0,K.jsxs)(`li`,{className:`font-mono text-xs text-foreground`,children:[`• `,e]},t))})}),e.context_provider&&(0,K.jsx)(Hy,{title:`Context Provider`,icon:(0,K.jsx)(Fu,{className:`h-4 w-4 text-muted-foreground`}),className:!e.middleware||e.middleware.length===0?`md:col-start-2`:``,children:(0,K.jsx)(`div`,{className:`font-mono text-xs text-foreground`,children:e.context_provider})})]})]})]})})}vp();var Wy=50,Gy=`[Earlier streaming content omitted after refresh] -`;function Wy(e){let t=e.accumulatedParts?.map(e=>({...e}))??(e.accumulatedText?[{itemId:e.lastMessageId,contentIndex:0,type:e.accumulatedTextType??`text`,text:e.accumulatedText}]:[]);return e.accumulatedTextIsPreview&&t.unshift({itemId:e.lastMessageId,contentIndex:-1,type:`text`,text:Uy}),t}function Gy(e,t){return t===`refusal`?{type:`refusal`,refusal:e}:{type:`text`,text:e}}function Ky(e){return e.map(e=>Gy(e.text,e.type))}function qy({item:e,toolCalls:t=[],toolResults:n=[]}){let[r,i]=(0,y.useState)(!1),[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(!1),l=Q(e=>e.showToolCalls),u=()=>e.type===`message`?e.content.filter(e=>e.type===`text`||e.type===`output_text`||e.type===`refusal`).map(e=>`refusal`in e?e.refusal:e.text).join(` -`):``,d=async()=>{let e=u();if(e)try{await navigator.clipboard.writeText(e),o(!0),setTimeout(()=>o(!1),2e3)}catch(e){console.error(`Failed to copy:`,e)}};if(e.type===`message`){let o=e.role===`user`,f=e.status===`incomplete`,p=o?cf:f?hu:$l,m=u();return(0,K.jsxs)(`div`,{className:`flex gap-3 ${o?`flex-row-reverse`:``}`,onMouseEnter:()=>i(!0),onMouseLeave:()=>i(!1),children:[(0,K.jsx)(`div`,{className:`flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-md border ${o?`bg-primary text-primary-foreground`:f?`bg-orange-100 dark:bg-orange-900 text-orange-600 dark:text-orange-400 border-orange-200 dark:border-orange-800`:`bg-muted`}`,children:(0,K.jsx)(p,{className:`h-4 w-4`})}),(0,K.jsxs)(`div`,{className:`flex flex-col space-y-1 ${o?`items-end`:`items-start`} max-w-[80%]`,children:[(0,K.jsxs)(`div`,{className:`relative group`,children:[(0,K.jsxs)(`div`,{className:`rounded px-3 py-2 text-sm ${o?`bg-primary text-primary-foreground`:f?`bg-orange-50 dark:bg-orange-950/50 text-orange-800 dark:text-orange-200 border border-orange-200 dark:border-orange-800`:`bg-muted`}`,children:[f&&(0,K.jsxs)(`div`,{className:`flex items-start gap-2 mb-2`,children:[(0,K.jsx)(hu,{className:`h-4 w-4 text-orange-500 mt-0.5 flex-shrink-0`}),(0,K.jsx)(`span`,{className:`font-medium text-sm`,children:`Unable to process request`})]}),(0,K.jsx)(`div`,{className:f?`text-xs leading-relaxed break-all`:``,children:(0,K.jsx)(Cv,{item:e})})]}),m&&r&&(0,K.jsx)(`button`,{onClick:d,className:`absolute top-1 right-1 +`;function Ky(e){let t=e.accumulatedParts?.map(e=>({...e}))??(e.accumulatedText?[{itemId:e.lastMessageId,contentIndex:0,type:e.accumulatedTextType??`text`,text:e.accumulatedText}]:[]);return e.accumulatedTextIsPreview&&t.unshift({itemId:e.lastMessageId,contentIndex:-1,type:`text`,text:Gy}),t}function qy(e,t){return t===`refusal`?{type:`refusal`,refusal:e}:{type:`text`,text:e}}function Jy(e){return e.map(e=>qy(e.text,e.type))}function Yy({item:e,toolCalls:t=[],toolResults:n=[]}){let[r,i]=(0,y.useState)(!1),[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(!1),l=Q(e=>e.showToolCalls),u=()=>e.type===`message`?e.content.filter(e=>e.type===`text`||e.type===`output_text`||e.type===`refusal`).map(e=>`refusal`in e?e.refusal:e.text).join(` +`):``,d=async()=>{let e=u();if(e)try{await navigator.clipboard.writeText(e),o(!0),setTimeout(()=>o(!1),2e3)}catch(e){console.error(`Failed to copy:`,e)}};if(e.type===`message`){let o=e.role===`user`,f=e.status===`incomplete`,p=o?cf:f?hu:$l,m=u();return(0,K.jsxs)(`div`,{className:`flex gap-3 ${o?`flex-row-reverse`:``}`,onMouseEnter:()=>i(!0),onMouseLeave:()=>i(!1),children:[(0,K.jsx)(`div`,{className:`flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-md border ${o?`bg-primary text-primary-foreground`:f?`bg-orange-100 dark:bg-orange-900 text-orange-600 dark:text-orange-400 border-orange-200 dark:border-orange-800`:`bg-muted`}`,children:(0,K.jsx)(p,{className:`h-4 w-4`})}),(0,K.jsxs)(`div`,{className:`flex flex-col space-y-1 ${o?`items-end`:`items-start`} max-w-[80%]`,children:[(0,K.jsxs)(`div`,{className:`relative group`,children:[(0,K.jsxs)(`div`,{className:`rounded px-3 py-2 text-sm ${o?`bg-primary text-primary-foreground`:f?`bg-orange-50 dark:bg-orange-950/50 text-orange-800 dark:text-orange-200 border border-orange-200 dark:border-orange-800`:`bg-muted`}`,children:[f&&(0,K.jsxs)(`div`,{className:`flex items-start gap-2 mb-2`,children:[(0,K.jsx)(hu,{className:`h-4 w-4 text-orange-500 mt-0.5 flex-shrink-0`}),(0,K.jsx)(`span`,{className:`font-medium text-sm`,children:`Unable to process request`})]}),(0,K.jsx)(`div`,{className:f?`text-xs leading-relaxed break-all`:``,children:(0,K.jsx)(Tv,{item:e})})]}),m&&r&&(0,K.jsx)(`button`,{onClick:d,className:`absolute top-1 right-1 p-1.5 rounded-md border shadow-sm bg-background hover:bg-accent text-muted-foreground hover:text-foreground transition-all duration-200 ease-in-out - opacity-0 group-hover:opacity-100`,title:a?`Copied!`:`Copy message`,children:a?(0,K.jsx)(au,{className:`h-3.5 w-3.5 text-green-600 dark:text-green-400`}):(0,K.jsx)(Nu,{className:`h-3.5 w-3.5`})})]}),(0,K.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground font-mono`,children:[(0,K.jsx)(`span`,{children:e.created_at?new Date(e.created_at*1e3).toLocaleTimeString():new Date().toLocaleTimeString()}),!o&&e.usage&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`span`,{children:`•`}),(0,K.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,K.jsxs)(`span`,{className:`text-blue-600 dark:text-blue-400`,children:[`↑`,e.usage.input_tokens]}),(0,K.jsxs)(`span`,{className:`text-green-600 dark:text-green-400`,children:[`↓`,e.usage.output_tokens]}),(0,K.jsxs)(`span`,{children:[`(`,e.usage.total_tokens,` tokens)`]})]})]}),!o&&l&&t.length>0&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`span`,{children:`•`}),(0,K.jsxs)(`button`,{onClick:()=>c(!s),className:`flex items-center gap-1 hover:text-foreground transition-colors`,title:`${t.length} tool call${t.length>1?`s`:``} - click to ${s?`hide`:`show`} details`,children:[(0,K.jsx)(ff,{className:`h-3 w-3`}),(0,K.jsx)(`span`,{children:t.length})]})]})]}),!o&&s&&t.length>0&&(0,K.jsx)(`div`,{className:`mt-2 ml-0 p-3 bg-muted/30 rounded-md border border-muted`,children:(0,K.jsx)(`div`,{className:`space-y-2`,children:t.map(e=>{let t=n.find(t=>t.call_id===e.call_id);return(0,K.jsx)(`div`,{className:`text-xs`,children:(0,K.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,K.jsx)(ff,{className:`h-3 w-3 text-muted-foreground mt-0.5 flex-shrink-0`}),(0,K.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,K.jsxs)(`div`,{className:`font-mono text-muted-foreground`,children:[(0,K.jsx)(`span`,{className:`text-blue-600 dark:text-blue-400`,children:e.name}),(0,K.jsx)(`span`,{className:`text-muted-foreground/60 ml-1`,children:e.arguments&&(0,K.jsxs)(`span`,{className:`break-all`,children:[`(`,e.arguments,`)`]})})]}),t&&t.output&&(0,K.jsx)(`div`,{className:`mt-1 pl-5 border-l-2 border-green-600/20`,children:(0,K.jsxs)(`div`,{className:`flex items-start gap-1`,children:[(0,K.jsx)(ru,{className:`h-3 w-3 text-green-600 dark:text-green-400 mt-0.5 flex-shrink-0`}),(0,K.jsx)(`pre`,{className:`font-mono text-muted-foreground whitespace-pre-wrap break-all`,children:t.output.substring(0,200)+(t.output.length>200?`...`:``)})]})}),e.status===`incomplete`&&(0,K.jsx)(`div`,{className:`mt-1 pl-5 border-l-2 border-orange-600/20`,children:(0,K.jsxs)(`div`,{className:`flex items-start gap-1`,children:[(0,K.jsx)(mf,{className:`h-3 w-3 text-orange-600 dark:text-orange-400 mt-0.5 flex-shrink-0`}),(0,K.jsx)(`span`,{className:`font-mono text-orange-600 dark:text-orange-400`,children:`Failed`})]})})]})]})},e.id)})})})]})]})}return e.type===`function_call`||e.type,null}function Jy({selectedAgent:e,onDebugEvent:t}){let n=Q(e=>e.currentConversation),r=Q(e=>e.availableConversations),i=Q(e=>e.chatItems),a=Q(e=>e.isStreaming),o=Q(e=>e.isSubmitting),s=Q(e=>e.loadingConversations),c=Q(e=>e.uiMode),l=Q(e=>e.conversationUsage),u=Q(e=>e.pendingApprovals),d=Q(e=>e.oaiMode),f=Q(e=>e.streamingEnabled),p=Q(e=>e.setCurrentConversation),m=Q(e=>e.setAvailableConversations),h=Q(e=>e.setChatItems),g=Q(e=>e.setIsStreaming),_=Q(e=>e.setIsSubmitting),v=Q(e=>e.setLoadingConversations),b=Q(e=>e.updateConversationUsage),x=Q(e=>e.setPendingApprovals),[S,C]=(0,y.useState)(!1),[w,T]=(0,y.useState)(null),[E,D]=(0,y.useState)(!1),[O,k]=(0,y.useState)(!1),{isCancelling:A,createAbortSignal:j,handleCancel:M,resetCancelling:N}=y_(),{isDragOver:P,droppedFiles:F,clearDroppedFiles:I,dragHandlers:L}=x_({disabled:o||a}),R=(0,y.useRef)(null),z=(0,y.useRef)(null),B=(0,y.useRef)(null),ee=(0,y.useRef)(!1),V=(0,y.useRef)(``),H=(0,y.useRef)([]),te=(0,y.useRef)(0),ne=(0,y.useRef)(new Set),re=(0,y.useCallback)(()=>{for(let e of ne.current)e.abort();ne.current.clear()},[]),ie=(0,y.useCallback)(e=>{let n=new AbortController;ne.current.add(n),R_.getTraceEvents(e,Q.getState().serverCapabilities.trace_retrieval,n.signal).then(e=>{if(!n.signal.aborted)for(let n of e)t(n)}).catch(e=>{b_(e)||console.debug(`Failed to retrieve response traces`,e)}).finally(()=>{ne.current.delete(n)})},[t]),ae=(0,y.useCallback)(()=>{re(),t(`clear`)},[re,t]);(0,y.useEffect)(()=>re,[e?.id,re]);let oe=(0,y.useCallback)((e,t=`in_progress`,n=!1)=>{let r=performance.now();if(!n&&r-te.current{if(n.id!==e||n.type!==`message`)return n;let r=n.content.filter(e=>e.type!==`text`&&e.type!==`output_text`&&e.type!==`refusal`),i=Ky(H.current),o=n.content.filter(e=>e.type===`text`||e.type===`output_text`||e.type===`refusal`);return JSON.stringify(o)===JSON.stringify(i)&&n.status===t?n:(a=!0,{...n,content:[...r,...i],status:t})});a?(te.current=r,h(o)):n&&(te.current=r)},[h]);(0,y.useEffect)(()=>{if(!z.current)return;let e=R.current?.querySelector(`[data-radix-scroll-area-viewport]`),t=!1;if(e){let{scrollTop:n,scrollHeight:r,clientHeight:i}=e,a=r-n-i<100;t=ee.current||a}else t=!0;t&&z.current.scrollIntoView({behavior:a?`instant`:`smooth`}),ee.current&&!a&&(ee.current=!1)},[i,a]),(0,y.useEffect)(()=>{},[a,o]),(0,y.useEffect)(()=>{let n=async(e,n,r)=>{let i=h_(n.id);if(!i||!i.responseId){g(!1);return}try{let a={model:r.id,input:[],stream:!0,conversation:n.id},o=R_.streamAgentExecutionOpenAIDirect(r.id,a,n.id,void 0,i.responseId);te.current=0;for await(let n of o){if(t(n),n.type===`response.completed`){let e=n.response?.usage;e&&(B.current={input_tokens:e.input_tokens,output_tokens:e.output_tokens,total_tokens:e.total_tokens});continue}if(n.type===`response.failed`){let t=n.response?.error,r=t?typeof t==`object`&&`message`in t?t.message:JSON.stringify(t):`Request failed`;if(V.current){oe(e.id,`incomplete`,!0),g(!1);return}let i=Q.getState().chatItems;h(i.map(t=>t.id===e.id&&t.type===`message`?{...t,content:[{type:`text`,text:V.current||r}],status:`incomplete`}:t)),g(!1);return}if(n.type===`response.function_approval.requested`){let t=n;oe(e.id,`in_progress`,!0),x([...Q.getState().pendingApprovals,{request_id:t.request_id,function_call:t.function_call}]);continue}if(n.type===`response.function_approval.responded`){let e=n;x(Q.getState().pendingApprovals.filter(t=>t.request_id!==e.request_id));continue}if(n.type===`error`){let t=n.message||`An error occurred`;if(V.current){oe(e.id,`incomplete`,!0),g(!1);return}let r=Q.getState().chatItems;h(r.map(n=>n.id===e.id&&n.type===`message`?{...n,content:[{type:`text`,text:V.current||t}],status:`incomplete`}:n)),g(!1);return}(n.type===`response.output_text.delta`||n.type===`response.refusal.delta`)&&`delta`in n&&n.delta&&(H.current=a_(H.current,n),V.current=H.current.map(e=>e.text).join(``),oe(e.id))}let s=B.current;oe(e.id,`in_progress`,!0);let c=Q.getState().chatItems;h(c.map(t=>t.id===e.id&&t.type===`message`?{...t,status:`completed`,usage:s||void 0}:t)),g(!1),s&&b(s.total_tokens),B.current=null}catch(t){let n=Q.getState().chatItems;h(n.map(n=>n.id===e.id&&n.type===`message`?{...n,content:[{type:`text`,text:`Error resuming stream: ${t instanceof Error?t.message:`Unknown error`}`}],status:`incomplete`}:n)),g(!1)}};h([]),g(!1),p(void 0),V.current=``,H.current=[],te.current=0,(async()=>{if(e){v(!0);try{try{let{data:r}=await R_.listConversations(e.id);if(m(r),r.length>0){let i=r[0];p(i);try{let r=[],a=!0,o,s=[];for(;a;){let e=await R_.listConversationItems(i.id,{order:`asc`,after:o});r=r.concat(e.data),a=e.has_more,e.metadata?.traces&&e.metadata.traces.length>0&&(s=e.metadata.traces),a&&e.data.length>0&&(o=e.data[e.data.length-1].id)}if(h(r),g(!1),s.length>0){ae();for(let e of s)t({type:`response.trace.completed`,data:e,sequence_number:0})}let c=h_(i.id);if(c&&!c.completed){let t=Wy(c);H.current=t,V.current=t.map(e=>e.text).join(``);let a={id:c.lastMessageId||`assistant-${Date.now()}`,type:`message`,role:`assistant`,content:Ky(t),status:`in_progress`};h([...r,a]),g(!0),setTimeout(()=>{n(a,i,e)},100)}setTimeout(()=>{z.current?.scrollIntoView({behavior:`smooth`})},100)}catch{console.debug(`No items found for conversation ${i.id}, starting fresh`),h([]),g(!1)}return}}catch{}let r=`devui_convs_${e.id}`,i=localStorage.getItem(r);if(i)try{let e=JSON.parse(i);if(e.length>0)try{await R_.listConversationItems(e[0].id),m(e),p(e[0]),h([]),g(!1);return}catch{console.debug(`Cached conversation ${e[0].id} no longer exists, clearing cache`),localStorage.removeItem(r)}}catch{localStorage.removeItem(r)}let a=await R_.createConversation({agent_id:e.id});p(a),m([a]),h([]),g(!1),T(null),localStorage.setItem(r,JSON.stringify([a]))}catch(e){m([]),h([]),g(!1);let t=e instanceof Error?e.message:`Failed to create conversation`;T({message:t,type:`conversation_creation_error`})}finally{v(!1)}}})()},[e,t,ae,oe,h,g,v,m,p,x,b]);let se=(0,y.useCallback)(async()=>{if(e)try{let t=await R_.createConversation({agent_id:e.id});p(t),m([t,...Q.getState().availableConversations]),h([]),g(!1),T(null),Q.setState({conversationUsage:{total_tokens:0,message_count:0}}),V.current=``,H.current=[],ae();let n=`devui_convs_${e.id}`,i=[t,...r];localStorage.setItem(n,JSON.stringify(i))}catch(e){let t=e instanceof Error?e.message:`Failed to create conversation`;T({message:t,type:`conversation_creation_error`})}},[e,r,ae,p,m,h,g]),U=(0,y.useCallback)(async(e,t)=>{if(t&&(t.preventDefault(),t.stopPropagation()),confirm(`Delete this conversation? This cannot be undone.`))try{if(await R_.deleteConversation(e)){let t=r.filter(t=>t.id!==e);if(m(t),n?.id===e){if(t.length>0){let e=t[0];p(e),h([]),g(!1)}else p(void 0),h([]),g(!1),Q.setState({conversationUsage:{total_tokens:0,message_count:0}}),V.current=``,H.current=[]}ae()}}catch{alert(`Failed to delete conversation. Please try again.`)}},[r,n,ae,m,p,h,g]),ce=(0,y.useCallback)(async()=>{if(E||!e)return;D(!0);let t=Q.getState().addToast,n=Q.getState().updateAgent;try{await R_.reloadEntity(e.id),n(await R_.getAgentInfo(e.id)),t({message:`${e.name} has been reloaded successfully`,type:`success`})}catch(e){t({message:`Failed to reload: ${e instanceof Error?e.message:`Failed to reload entity`}`,type:`error`,duration:6e3})}finally{D(!1)}},[E,e]),le=(0,y.useCallback)(async e=>{let n=r.find(t=>t.id===e);if(n){p(n),ae();try{let n=[],r=!0,i,a=[];for(;r;){let t=await R_.listConversationItems(e,{order:`asc`,after:i});n=n.concat(t.data),r=t.has_more,t.metadata?.traces&&t.metadata.traces.length>0&&(a=t.metadata.traces),r&&t.data.length>0&&(i=t.data[t.data.length-1].id)}let o=n;if(h(o),g(!1),a.length>0)for(let e of a)t({type:`response.trace.completed`,data:e,sequence_number:0});Q.setState({conversationUsage:{total_tokens:0,message_count:o.length}});let s=h_(e);if(s?.accumulatedText){let e=Wy(s);H.current=e,V.current=e.map(e=>e.text).join(``);let t={id:`assistant-${Date.now()}`,type:`message`,role:`assistant`,content:Ky(e),status:`in_progress`};h([...o,t]),g(!0)}setTimeout(()=>{z.current?.scrollIntoView({behavior:`smooth`})},100)}catch{console.debug(`No items found for conversation ${e}, starting with empty chat`),h([]),g(!1),Q.setState({conversationUsage:{total_tokens:0,message_count:0}})}V.current=``,H.current=[]}},[r,t,ae,p,h,g]),ue=async(e,t)=>{let r=u.find(t=>t.request_id===e);if(!r)return;let i=Math.floor(Date.now()/1e3),a={id:`user-approval-${Date.now()}`,type:`message`,role:`user`,content:[{type:`function_approval_request`,request_id:e,status:t?`approved`:`rejected`,function_call:r.function_call}],status:`completed`,created_at:i},o=Q.getState().chatItems;h([...o,a]);let s={input:[{type:`message`,role:`user`,content:[{type:`function_approval_response`,request_id:e,approved:t,function_call:r.function_call}]}],conversation_id:n?.id};return x(Q.getState().pendingApprovals.filter(t=>t.request_id!==e)),s},de=(0,y.useCallback)(async r=>{if(!e)return;let i=r.input.some(e=>e.type===`message`&&Array.isArray(e.content)&&e.content.some(e=>e.type===`function_approval_response`)),a=[];for(let e of r.input)if(e.type===`message`&&Array.isArray(e.content)){for(let t of e.content)if(t.type===`input_text`)a.push({type:`text`,text:t.text});else if(t.type===`input_image`)a.push({type:`input_image`,image_url:t.image_url||``,detail:`auto`});else if(t.type===`input_file`){let e=t;a.push({type:`input_file`,file_data:e.file_data,filename:e.filename})}}let o=Math.floor(Date.now()/1e3);if(!i&&a.length>0){let e={id:`user-${Date.now()}`,type:`message`,role:`user`,content:a,status:`completed`,created_at:o};h([...Q.getState().chatItems,e])}g(!0);let s={id:`assistant-${Date.now()}`,type:`message`,role:`assistant`,content:[],status:`in_progress`,created_at:o};h([...Q.getState().chatItems,s]);let c,l;try{let i=n;if(!i)try{i=await R_.createConversation({agent_id:e.id}),p(i),m([i,...Q.getState().availableConversations]),T(null)}catch(e){let t=e instanceof Error?e.message:`Failed to create conversation`;T({message:t,type:`conversation_creation_error`}),_(!1),g(!1);return}i?.id&&R_.clearStreamingState(i.id);let a={input:r.input,conversation_id:i?.id};V.current=``,H.current=[],te.current=0,l=j();let o=R_.streamAgentExecutionOpenAI(e.id,a,l);for await(let e of o){if(t(e),`response`in e&&e.response&&typeof e.response==`object`&&`id`in e.response&&typeof e.response.id==`string`&&(c=e.response.id),e.type===`response.completed`){let t=e.response?.usage;t&&(B.current={input_tokens:t.input_tokens,output_tokens:t.output_tokens,total_tokens:t.total_tokens});continue}if(e.type===`response.failed`){let t=e.response?.error,n=`Request failed`;if(t&&(typeof t==`object`&&`message`in t?(n=t.message,`code`in t&&t.code&&(n+=` (Code: ${t.code})`)):typeof t==`string`&&(n=t)),V.current){oe(s.id,`incomplete`,!0),g(!1);return}let r=Q.getState().chatItems;h(r.map(e=>e.id===s.id&&e.type===`message`?{...e,content:[{type:`text`,text:V.current||n}],status:`incomplete`}:e)),g(!1);return}if(e.type===`response.function_approval.requested`){let t=e;oe(s.id,`in_progress`,!0),x([...Q.getState().pendingApprovals,{request_id:t.request_id,function_call:t.function_call}]);let n=Q.getState().chatItems;h(n.map(e=>e.id===s.id&&e.type===`message`?{...e,content:[...e.content,{type:`function_approval_request`,request_id:t.request_id,status:`pending`,function_call:t.function_call}],status:`in_progress`}:e));continue}if(e.type===`response.function_call_arguments.delta`){let t=e,n=Q.getState().chatItems;h(n.map(e=>e.type===`function_call`&&e.call_id===t.item_id?{...e,arguments:(e.arguments||``)+(t.delta||``)}:e));continue}if(e.type===`response.function_result.complete`){let t=e,n={id:`result-${Date.now()}`,type:`function_call_output`,call_id:t.call_id,output:t.output,status:t.status===`completed`?`completed`:`incomplete`,created_at:Math.floor(Date.now()/1e3)},r=Q.getState().chatItems;h([...r,n]);continue}if(e.type===`error`){let t=e.message||`An error occurred`;if(V.current){oe(s.id,`incomplete`,!0),g(!1);return}let n=Q.getState().chatItems;h(n.map(e=>e.id===s.id&&e.type===`message`?{...e,content:[{type:`text`,text:t}],status:`incomplete`}:e)),g(!1);return}if(e.type===`response.output_item.added`){let t=e.item;if(oe(s.id,`in_progress`,!0),t.type===`function_call`){let e=t,n={id:e.id||`call-${Date.now()}`,type:`function_call`,name:e.name,arguments:e.arguments||``,call_id:e.call_id,status:e.status||`in_progress`,created_at:Math.floor(Date.now()/1e3)},r=Q.getState().chatItems;h([...r,n]);continue}let n=Q.getState().chatItems;h(n.map(e=>{if(e.id===s.id&&e.type===`message`){let n=e.content,r=null;if(t.type===`output_image`?r={type:`output_image`,image_url:t.image_url,alt_text:t.alt_text,mime_type:t.mime_type}:t.type===`output_file`?r={type:`output_file`,filename:t.filename,file_url:t.file_url,file_data:t.file_data,mime_type:t.mime_type}:t.type===`output_data`&&(r={type:`output_data`,data:t.data,mime_type:t.mime_type,description:t.description}),r)return{...e,content:[...n,r],status:`in_progress`}}return e}));continue}(e.type===`response.output_text.delta`||e.type===`response.refusal.delta`)&&`delta`in e&&e.delta&&(H.current=a_(H.current,e),V.current=H.current.map(e=>e.text).join(``),oe(s.id))}let u=B.current;oe(s.id,`in_progress`,!0);let d=Q.getState().chatItems;h(d.map(e=>e.id===s.id&&e.type===`message`?{...e,status:`completed`,usage:u||void 0}:e)),g(!1),u&&b(u.total_tokens),B.current=null}catch(e){if(b_(e))k(!0),oe(s.id,V.current?`completed`:`incomplete`,!0);else if(V.current)oe(s.id,`incomplete`,!0);else{let t=Q.getState().chatItems;h(t.map(t=>t.id===s.id&&t.type===`message`?{...t,content:[{type:`text`,text:`Error: ${e instanceof Error?e.message:`Failed to get response`}`}],status:`incomplete`}:t))}g(!1),N()}finally{c&&!l?.aborted&&ie(c)}},[e,n,t,oe,h,g,_,p,m,x,b,j,N,ie]),fe=(0,y.useCallback)(async r=>{if(!e)return;let i=r.input.some(e=>e.type===`message`&&Array.isArray(e.content)&&e.content.some(e=>e.type===`function_approval_response`)),a=[];for(let e of r.input)if(e.type===`message`&&Array.isArray(e.content)){for(let t of e.content)if(t.type===`input_text`)a.push({type:`text`,text:t.text});else if(t.type===`input_image`)a.push({type:`input_image`,image_url:t.image_url||``,detail:`auto`});else if(t.type===`input_file`){let e=t;a.push({type:`input_file`,file_data:e.file_data,filename:e.filename})}}let o=Math.floor(Date.now()/1e3);if(!i&&a.length>0){let e={id:`user-${Date.now()}`,type:`message`,role:`user`,content:a,status:`completed`,created_at:o};h([...Q.getState().chatItems,e])}_(!0);try{let i=n;if(!i)try{i=await R_.createConversation({agent_id:e.id}),p(i),m([i,...Q.getState().availableConversations]),T(null)}catch(e){let t=e instanceof Error?e.message:`Failed to create conversation`;T({message:t,type:`conversation_creation_error`}),_(!1);return}let a=await R_.runAgentSync(e.id,{input:r.input,conversation_id:i?.id}),s=[],c=[],l=[];if(a.output){for(let e of a.output)if(e.type===`message`){let t=e;if(t.content)for(let e of t.content)e.type===`output_text`?s.push({type:`text`,text:e.text}):e.type===`refusal`?s.push({type:`refusal`,refusal:e.refusal}):(e.type===`output_image`||e.type===`output_file`||e.type===`output_data`)&&s.push(e)}else if(e.type===`function_call`){let t=e;c.push({id:t.id||`call-${Date.now()}`,type:`function_call`,name:t.name,arguments:t.arguments||``,call_id:t.call_id,status:t.status||`completed`,created_at:o})}else if(e.type===`function_call_output`){let t=e;l.push({id:`result-${Date.now()}`,type:`function_call_output`,call_id:t.call_id,output:t.output,status:`completed`,created_at:o})}}let u={id:`assistant-${Date.now()}`,type:`message`,role:`assistant`,content:s,status:`completed`,created_at:o,usage:a.usage?{input_tokens:a.usage.input_tokens,output_tokens:a.usage.output_tokens,total_tokens:a.usage.total_tokens}:void 0},d=[...Q.getState().chatItems,u,...c,...l];h(d),a.usage&&b(a.usage.total_tokens),t({type:`response.completed`,response:a,sequence_number:0}),typeof a.id==`string`&&ie(a.id)}catch(e){let t=e instanceof Error?e.message:`Failed to get response`,n={id:`assistant-${Date.now()}`,type:`message`,role:`assistant`,content:[{type:`text`,text:`Error: ${t}`}],status:`incomplete`,created_at:o},r=Q.getState().chatItems;h([...r,n])}finally{_(!1)}},[e,n,t,h,p,m,b,_,ie]),pe=async t=>{if(e&&t.length!==0){ee.current=!0,k(!1),_(!0);try{let e={input:[{type:`message`,role:`user`,content:t}],conversation_id:n?.id};f?await de(e):await fe(e)}finally{_(!1)}}};return(0,K.jsxs)(`div`,{className:`flex h-[calc(100vh-3.5rem)] flex-col relative`,...L,children:[P&&(0,K.jsx)(`div`,{className:`absolute inset-0 z-50 bg-blue-50/95 dark:bg-blue-950/95 backdrop-blur-sm flex items-center justify-center border-2 border-dashed border-blue-400 dark:border-blue-500 rounded-lg m-2`,children:(0,K.jsxs)(`div`,{className:`text-center p-8`,children:[(0,K.jsx)(`div`,{className:`text-blue-600 dark:text-blue-400 text-lg font-medium mb-2`,children:`Drop files here`}),(0,K.jsx)(`div`,{className:`text-blue-500/80 dark:text-blue-400/70 text-sm`,children:`Images, PDFs, audio, and other files`})]})}),(0,K.jsxs)(`div`,{className:`border-b pb-2 p-4 flex-shrink-0`,children:[(0,K.jsxs)(`div`,{className:`flex flex-col lg:flex-row lg:items-center lg:justify-between gap-3 mb-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,K.jsx)(`h2`,{className:`font-semibold text-sm truncate`,children:(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)($l,{className:`h-4 w-4 flex-shrink-0`}),(0,K.jsx)(`span`,{className:`truncate`,children:d.enabled?`Chat with ${d.model}`:`Chat with ${e.name||e.id}`})]})}),!d.enabled&&c===`developer`&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(q,{variant:`ghost`,size:`sm`,onClick:()=>C(!0),className:`h-6 w-6 p-0 flex-shrink-0`,title:`View agent details`,children:(0,K.jsx)(td,{className:`h-4 w-4`})}),e.source!==`in_memory`&&(0,K.jsx)(q,{variant:`ghost`,size:`sm`,onClick:ce,disabled:E,className:`h-6 w-6 p-0 flex-shrink-0`,title:E?`Reloading...`:`Reload entity code (hot reload)`,children:(0,K.jsx)(Nd,{className:`h-4 w-4 ${E?`animate-spin`:``}`})})]})]}),(0,K.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-stretch sm:items-center gap-2 flex-shrink-0`,children:[(0,K.jsxs)(Ny,{value:n?.id||``,onValueChange:le,disabled:s||o,children:[(0,K.jsx)(Fy,{className:`w-full sm:w-64`,children:(0,K.jsx)(Py,{placeholder:s?`Loading...`:r.length===0?`No conversations`:n?`Conversation ${n.id.slice(-8)}`:`Select conversation`,children:n&&(0,K.jsxs)(`div`,{className:`flex items-center gap-2 text-xs`,children:[(0,K.jsxs)(`span`,{children:[`Conversation `,n.id.slice(-8)]}),l.total_tokens>0&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`span`,{className:`text-muted-foreground`,children:`•`}),(0,K.jsxs)(`span`,{className:`text-muted-foreground`,children:[l.total_tokens>=1e3?`${(l.total_tokens/1e3).toFixed(1)}k`:l.total_tokens,` `,`tokens`]})]})]})})}),(0,K.jsx)(Iy,{children:r.map(e=>(0,K.jsx)(Ly,{value:e.id,children:(0,K.jsxs)(`div`,{className:`flex items-center justify-between w-full`,children:[(0,K.jsxs)(`span`,{children:[`Conversation `,e.id.slice(-8)]}),e.created_at&&(0,K.jsx)(`span`,{className:`text-xs text-muted-foreground ml-3`,children:new Date(e.created_at*1e3).toLocaleDateString()})]})},e.id))})]}),(0,K.jsx)(q,{variant:`outline`,size:`icon`,onClick:()=>n&&U(n.id),disabled:!n||o,title:n?`Delete Conversation ${n.id.slice(-8)}`:`No conversation selected`,children:(0,K.jsx)(tf,{className:`h-4 w-4`})}),(0,K.jsxs)(q,{variant:`outline`,size:`lg`,onClick:se,disabled:!e||o,className:`whitespace-nowrap `,children:[(0,K.jsx)(jd,{className:`h-4 w-4 mr-2`}),(0,K.jsx)(`span`,{className:`hidden md:inline`,children:` New Conversation`})]})]})]}),d.enabled?(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Using OpenAI model directly. Local agent tools and instructions are not applied.`}):e.description&&(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e.description})]}),w&&(0,K.jsxs)(`div`,{className:`mx-4 mt-2 p-3 bg-destructive/10 border border-destructive/30 rounded-md flex items-start gap-2`,children:[(0,K.jsx)(hu,{className:`h-4 w-4 text-destructive mt-0.5 flex-shrink-0`}),(0,K.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,K.jsx)(`div`,{className:`text-sm font-medium text-destructive`,children:`Failed to Create Conversation`}),(0,K.jsx)(`div`,{className:`text-xs text-destructive/90 mt-1 break-words`,children:w.message}),w.code&&(0,K.jsxs)(`div`,{className:`text-xs text-destructive/70 mt-1`,children:[`Error Code: `,w.code]})]}),(0,K.jsx)(`button`,{onClick:()=>T(null),className:`text-destructive hover:text-destructive/80 flex-shrink-0`,title:`Dismiss error`,children:(0,K.jsx)(mf,{className:`h-4 w-4`})})]}),(0,K.jsx)(mm,{className:`flex-1 p-4 h-0`,ref:R,children:(0,K.jsxs)(`div`,{className:`space-y-4`,children:[i.length===0?(0,K.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-32 text-center`,children:[(0,K.jsxs)(`div`,{className:`text-muted-foreground text-sm`,children:[`Start a conversation with`,` `,e.name||e.id]}),(0,K.jsx)(`div`,{className:`text-xs text-muted-foreground mt-1`,children:`Type a message below to begin`})]}):(()=>{let e=[],t=new Map,n=new Map,r=null,a=[],o=[];for(let e=0;e0){let e=t.get(s.id)||[];e.push(...a),t.set(s.id,e),a.length=0}if(o.length>0){let e=n.get(s.id)||[];e.push(...o),n.set(s.id,e),o.length=0}r=s.id}else if(s.type===`function_call`){if(r){let e=t.get(r)||[];e.push(s),t.set(r,e)}else a.push(s)}else if(s.type===`function_call_output`){if(r){let e=n.get(r)||[];e.push(s),n.set(r,e)}else o.push(s)}else s.type===`message`&&s.role===`user`&&(r=null)}for(let r of i)if(r.type===`message`){let i=t.get(r.id)||[],a=n.get(r.id)||[];e.push((0,K.jsx)(qy,{item:r,toolCalls:i,toolResults:a},r.id))}return e})(),O&&!a&&(0,K.jsx)(`div`,{className:`px-4 py-2`,children:(0,K.jsx)(`div`,{className:`border rounded-lg border-orange-500/40 bg-orange-500/5 dark:bg-orange-500/10`,children:(0,K.jsxs)(`div`,{className:`px-4 py-3 flex items-center gap-2`,children:[(0,K.jsx)(Zd,{className:`w-4 h-4 text-orange-500 dark:text-orange-400 fill-current`}),(0,K.jsx)(`span`,{className:`font-medium text-sm text-orange-700 dark:text-orange-300`,children:`Response stopped by user`})]})})}),(0,K.jsx)(`div`,{ref:z})]})}),u.length>0&&(0,K.jsx)(`div`,{className:`border-t bg-amber-50 dark:bg-amber-950/20 p-4 flex-shrink-0`,children:(0,K.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,K.jsx)(hu,{className:`h-5 w-5 text-amber-600 dark:text-amber-500 mt-0.5 flex-shrink-0`}),(0,K.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,K.jsx)(`h4`,{className:`font-medium text-sm mb-2`,children:`Approval Required`}),(0,K.jsx)(`div`,{className:`space-y-2`,children:u.map(e=>(0,K.jsxs)(`div`,{className:`bg-white dark:bg-gray-900 rounded-lg p-3 border border-amber-200 dark:border-amber-900`,children:[(0,K.jsxs)(`div`,{className:`font-mono text-xs mb-3 break-all`,children:[(0,K.jsx)(`span`,{className:`text-blue-600 dark:text-blue-400 font-semibold`,children:e.function_call.name}),(0,K.jsx)(`span`,{className:`text-gray-500`,children:`(`}),(0,K.jsx)(`span`,{className:`text-gray-700 dark:text-gray-300`,children:JSON.stringify(e.function_call.arguments)}),(0,K.jsx)(`span`,{className:`text-gray-500`,children:`)`})]}),(0,K.jsxs)(`div`,{className:`flex gap-2`,children:[(0,K.jsxs)(q,{size:`sm`,onClick:async()=>{let t=await ue(e.request_id,!0);t&&await de(t)},variant:`default`,className:`flex-1 sm:flex-none`,children:[(0,K.jsx)(ru,{className:`h-4 w-4 mr-1`}),`Approve`]}),(0,K.jsxs)(q,{size:`sm`,onClick:async()=>{let t=await ue(e.request_id,!1);t&&await de(t)},variant:`outline`,className:`flex-1 sm:flex-none`,children:[(0,K.jsx)(mf,{className:`h-4 w-4 mr-1`}),`Reject`]})]})]},e.request_id))})]})]})}),(0,K.jsx)(`div`,{className:`border-t flex-shrink-0`,children:(0,K.jsx)(`div`,{className:`p-4`,children:(0,K.jsx)(lv,{onSubmit:pe,isSubmitting:o,isStreaming:a,onCancel:M,isCancelling:A,placeholder:`Message ${e.name||e.id}... (Shift+Enter for new line)`,showFileUpload:!0,entityName:e.name||e.id,disabled:!e,externalFiles:F,onExternalFilesProcessed:I})})}),(0,K.jsx)(Vy,{agent:e,open:S,onOpenChange:C})]})}function Yy({message:e=`Loading...`,description:t,size:n=`md`,className:r,fullPage:i=!1}){let a=(0,K.jsxs)(`div`,{className:jt(`flex flex-col items-center justify-center gap-3`,i?`min-h-[50vh]`:`py-8`,r),children:[(0,K.jsx)(Cf,{size:n,className:`text-muted-foreground`}),(0,K.jsxs)(`div`,{className:`text-center space-y-1`,children:[(0,K.jsx)(`p`,{className:jt(`font-medium text-muted-foreground`,n===`sm`&&`text-sm`,n===`lg`&&`text-lg`),children:e}),t&&(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground/80`,children:t})]})]});return i?(0,K.jsx)(`div`,{className:`flex items-center justify-center min-h-screen bg-background`,children:a}):a}function Xy(e){return[`name`,`title`,`id`,`key`,`label`,`type`,`status`,`tag`,`category`,`code`,`username`,`password`,`email`].includes(e.toLowerCase())}function Zy(e){if(e.type)return e;if(e.anyOf&&e.anyOf.length>0){let t=e.anyOf.filter(e=>e.type!==`null`&&e.type!==void 0);if(t.length>0)return{...t[0],default:e.default??t[0].default,description:e.description??t[0].description,title:e.title??t[0].title}}if(e.oneOf&&e.oneOf.length>0){let t=e.oneOf.filter(e=>e.type!==`null`&&e.type!==void 0);if(t.length>0)return{...t[0],default:e.default??t[0].default,description:e.description??t[0].description,title:e.title??t[0].title}}return e}function Qy(e,t){return t.format===`textarea`||!!t.description&&t.description.length>100||t.type===`string`&&!t.enum&&!Xy(e)}function $y(e,t){let n=Qy(e,t),r=!!t.description&&t.description.length>150;return n||r?`md:col-span-2 lg:col-span-3 xl:col-span-4`:t.type===`array`||t.description&&t.description.length>80?`xl:col-span-2`:``}function eb(e,t){if(e.type!==`object`||!e.properties)return!1;let n=e.properties,r=Object.keys(n).filter(e=>!t.includes(e));return t.includes(`role`)&&r.some(e=>[`text`,`message`,`content`].includes(e))&&n.role?.type===`string`}function tb({name:e,schema:t,value:n,onChange:r,isRequired:i=!1,isReadOnly:a=!1}){let o=Zy(t),{type:s,description:c,enum:l,default:u}=o,d=Qy(e,o);return(0,K.jsx)(`div`,{className:$y(e,o),children:(()=>{if(a)return(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsx)(Rg,{htmlFor:e,className:`text-muted-foreground`,children:e}),(0,K.jsx)(`div`,{className:`text-sm p-2 bg-muted rounded border`,children:typeof n==`object`?JSON.stringify(n,null,2):String(n)}),c&&(0,K.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:c})]});switch(s){case`string`:return l?(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsxs)(Rg,{htmlFor:e,children:[e,i&&(0,K.jsx)(`span`,{className:`text-destructive ml-1`,children:`*`})]}),(0,K.jsxs)(Ny,{value:typeof n==`string`&&n?n:typeof u==`string`?u:l[0],onValueChange:e=>r(e),children:[(0,K.jsx)(Fy,{children:(0,K.jsx)(Py,{placeholder:`Select ${e}`})}),(0,K.jsx)(Iy,{children:l.map(e=>(0,K.jsx)(Ly,{value:e,children:e},e))})]}),c&&(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:c})]}):d?(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsxs)(Rg,{htmlFor:e,children:[e,i&&(0,K.jsx)(`span`,{className:`text-destructive ml-1`,children:`*`})]}),(0,K.jsx)(rv,{id:e,value:typeof n==`string`?n:``,onChange:e=>r(e.target.value),placeholder:typeof u==`string`?u:`Enter ${e}`,rows:4,className:`min-w-[300px] w-full`}),c&&(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:c})]}):(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsxs)(Rg,{htmlFor:e,children:[e,i&&(0,K.jsx)(`span`,{className:`text-destructive ml-1`,children:`*`})]}),(0,K.jsx)(Fg,{id:e,type:`text`,value:typeof n==`string`?n:``,onChange:e=>r(e.target.value),placeholder:typeof u==`string`?u:`Enter ${e}`}),c&&(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:c})]});case`integer`:case`number`:return(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsxs)(Rg,{htmlFor:e,children:[e,i&&(0,K.jsx)(`span`,{className:`text-destructive ml-1`,children:`*`})]}),(0,K.jsx)(Fg,{id:e,type:`number`,step:s===`integer`?`1`:`any`,value:typeof n==`number`?n:``,onChange:e=>{let t=s===`integer`?parseInt(e.target.value):parseFloat(e.target.value);r(isNaN(t)?``:t)},placeholder:typeof u==`number`?u.toString():`Enter ${e}`}),c&&(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:c})]});case`boolean`:return(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,K.jsx)(nh,{id:e,checked:!!n,onCheckedChange:e=>r(e)}),(0,K.jsxs)(Rg,{htmlFor:e,children:[e,i&&(0,K.jsx)(`span`,{className:`text-destructive ml-1`,children:`*`})]})]}),c&&(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:c})]});case`array`:return(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsxs)(Rg,{htmlFor:e,children:[e,i&&(0,K.jsx)(`span`,{className:`text-destructive ml-1`,children:`*`})]}),(0,K.jsx)(rv,{id:e,value:Array.isArray(n)?n.join(`, `):typeof n==`string`?n:``,onChange:e=>{r(e.target.value.split(`,`).map(e=>e.trim()).filter(e=>e.length>0))},placeholder:`Enter items separated by commas`,rows:2}),c&&(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:c})]});default:return(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsxs)(Rg,{htmlFor:e,children:[e,i&&(0,K.jsx)(`span`,{className:`text-destructive ml-1`,children:`*`})]}),(0,K.jsx)(rv,{id:e,value:typeof n==`object`&&n?JSON.stringify(n,null,2):typeof n==`string`?n:``,onChange:e=>{try{r(JSON.parse(e.target.value))}catch{r(e.target.value)}},placeholder:`{"key": "value"}`,rows:3,className:`font-mono text-xs`}),c&&(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:c})]})}})()})}function nb({schema:e,values:t,onChange:n,disabled:r=!1,readOnlyFields:i=[],hideFields:a=[],showCollapsedByDefault:o=!1,layout:s=`stack`}){let[c,l]=(0,y.useState)(o),u=s===`grid`?`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6`:`space-y-3`,d=e.properties||{},f=Object.keys(d).filter(e=>!a.includes(e)),p=(e.required||[]).filter(e=>!a.includes(e)),m=eb(e,p),h=f.filter(e=>p.includes(e)&&!(m&&e===`role`)),g=f.filter(e=>!p.includes(e)),_=m?[...g].sort((e,t)=>{let n=e=>+!![`text`,`message`,`content`].includes(e);return n(t)-n(e)}):g,v=Math.max(0,(m?1:6)-h.length),b=_.slice(0,v),x=_.slice(v),S=x.length>0,C=h.length>0,w=(e,r)=>{n({...t,[e]:r})},T=s===`grid`?`md:col-span-2 lg:col-span-3 xl:col-span-4`:``;return(0,K.jsxs)(`div`,{className:u,children:[h.map(e=>(0,K.jsx)(tb,{name:e,schema:d[e],value:t[e],onChange:t=>w(e,t),isRequired:!0,isReadOnly:r||i.includes(e)},e)),C&&g.length>0&&(0,K.jsx)(`div`,{className:T,children:(0,K.jsx)(`div`,{className:`border-t border-border`})}),b.map(e=>(0,K.jsx)(tb,{name:e,schema:d[e],value:t[e],onChange:t=>w(e,t),isRequired:!1,isReadOnly:r||i.includes(e)},e)),S&&(0,K.jsx)(`div`,{className:T,children:(0,K.jsx)(q,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>l(!c),className:`w-full justify-center gap-2`,disabled:r,children:c?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(pu,{className:`h-4 w-4`}),`Hide `,x.length,` optional field`,x.length===1?``:`s`]}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(su,{className:`h-4 w-4`}),`Show `,x.length,` optional field`,x.length===1?``:`s`]})})}),c&&x.map(e=>(0,K.jsx)(tb,{name:e,schema:d[e],value:t[e],onChange:t=>w(e,t),isRequired:!1,isReadOnly:r||i.includes(e)},e))]})}function rb(e,t){return(e.required||[]).every(e=>{let n=t[e];return n!==void 0&&n!==``&&n!==null})}function ib(e,t){let n=e.required||[],r={};return Object.keys(t).forEach(e=>{let i=t[e];(n.includes(e)||i!==void 0&&i!==``&&i!==null)&&(r[e]=i)}),r}function ab({inputSchema:e,inputTypeName:t,onSubmit:n,isSubmitting:r=!1,className:i}){let[a,o]=(0,y.useState)(!1),s=i?.includes(`embedded`),[c,l]=(0,y.useState)({}),[u,d]=(0,y.useState)(!1),f=e.properties||{},p=Object.keys(f),m=e.required||[],h=e.type===`string`&&!e.enum,g=eb(e,m),_=h?c.value!==void 0&&c.value!==``:m.length>0?m.every(e=>g&&e===`role`&&c.role===`user`?!0:c[e]!==void 0&&c[e]!==``):Object.keys(c).length>0;(0,y.useEffect)(()=>{if(e.type===`string`)l({value:e.default||``});else if(e.type===`object`&&e.properties){let t={};Object.entries(e.properties).forEach(([e,n])=>{n.default===void 0?n.enum&&n.enum.length>0&&(t[e]=n.enum[0]):t[e]=n.default}),g&&!t.role&&(t.role=`user`),l(t)}},[e,g]);let v=t=>{if(t.preventDefault(),d(!0),e.type===`string`)n({input:c.value||``});else if(e.type===`object`){let t=e.properties||{},r=Object.keys(t);if(r.length===1){let e=r[0];n({[e]:c[e]||``})}else n(ib(e,c))}else n(c);s||o(!1),d(!1)},b=e=>{l(e)},x=()=>(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsx)(Rg,{htmlFor:`simple-input`,children:`Input`}),(0,K.jsx)(rv,{id:`simple-input`,value:typeof c.value==`string`?c.value:``,onChange:e=>l({value:e.target.value}),placeholder:typeof e.default==`string`?e.default:`Enter input`,rows:4,className:`min-w-[300px] w-full`}),e.description&&(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e.description})]});return s?(0,K.jsxs)(`form`,{onSubmit:v,className:i,children:[h&&x(),!h&&(0,K.jsx)(nb,{schema:e,values:c,onChange:b,disabled:u,hideFields:g?[`role`]:[],layout:`grid`}),(0,K.jsx)(`div`,{className:`flex gap-2 mt-4 justify-end`,children:(0,K.jsxs)(q,{type:`submit`,disabled:u||!_,size:`default`,children:[(0,K.jsx)(Ud,{className:`h-4 w-4`}),u?`Running...`:`Run Workflow`]})})]}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`div`,{className:jt(`flex flex-col`,i),children:[(0,K.jsxs)(`div`,{className:`border-b border-border px-4 py-3 bg-muted`,children:[(0,K.jsx)(H_,{className:`text-sm mb-3`,children:`Run Workflow`}),(0,K.jsxs)(q,{onClick:()=>o(!0),disabled:r,className:`w-full`,size:`default`,children:[(0,K.jsx)(Ud,{className:`h-4 w-4 mr-2`}),r?`Running...`:`Run Workflow`]})]}),(0,K.jsxs)(`div`,{className:`px-4 py-3`,children:[(0,K.jsxs)(`div`,{className:`text-sm text-muted-foreground`,children:[(0,K.jsx)(`strong`,{children:`Input Type:`}),` `,(0,K.jsx)(`code`,{className:`bg-muted px-1 py-0.5 rounded`,children:t}),e.type===`object`&&e.properties&&(0,K.jsxs)(`span`,{className:`ml-2`,children:[`(`,Object.keys(e.properties).length,` field`,Object.keys(e.properties).length===1?``:`s`,`)`]})]}),(0,K.jsx)(`p`,{className:`text-xs text-muted-foreground mt-2`,children:`Click "Run Workflow" to configure inputs and execute`})]})]}),(0,K.jsx)(Og,{open:a,onOpenChange:o,children:(0,K.jsxs)(kg,{className:`w-full max-w-md sm:max-w-lg md:max-w-2xl lg:max-w-4xl xl:max-w-5xl max-h-[90vh] flex flex-col`,children:[(0,K.jsxs)(Ag,{children:[(0,K.jsx)(jg,{children:`Run Workflow`}),(0,K.jsx)(Ng,{onClose:()=>o(!1)})]}),(0,K.jsx)(`div`,{className:`px-8 py-4 border-b flex-shrink-0`,children:(0,K.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsx)(`span`,{className:`font-medium`,children:`Input Type:`}),(0,K.jsx)(`code`,{className:`bg-muted px-3 py-1 text-xs font-mono`,children:t}),e.type===`object`&&(0,K.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[p.length,` field`,p.length===1?``:`s`]})]})})}),(0,K.jsx)(`div`,{className:`px-8 py-6 overflow-y-auto flex-1 min-h-0`,children:(0,K.jsxs)(`form`,{id:`workflow-modal-form`,onSubmit:v,children:[h&&x(),!h&&(0,K.jsx)(nb,{schema:e,values:c,onChange:b,disabled:u,hideFields:g?[`role`]:[],layout:`grid`})]})}),(0,K.jsx)(`div`,{className:`px-8 py-4 border-t flex-shrink-0`,children:(0,K.jsxs)(Pg,{children:[(0,K.jsx)(q,{variant:`outline`,onClick:()=>o(!1),disabled:u,children:`Cancel`}),(0,K.jsxs)(q,{type:`submit`,form:`workflow-modal-form`,disabled:u||!_,children:[(0,K.jsx)(Ud,{className:`h-4 w-4 mr-2`}),u?`Running...`:`Run Workflow`]})]})})]})})]})}function ob(e,t,n=`LR`){if(e.length===0)return e;if(e.length===1)return e.map(e=>({...e,position:{x:0,y:0}}));let r=new Map,i=new Map;e.forEach(e=>{r.set(e.id,[]),i.set(e.id,[])}),t.forEach(e=>{r.get(e.source)?.push(e.target),i.get(e.target)?.push(e.source)});let a=e.filter(e=>(i.get(e.id)||[]).length===0);a.length===0&&a.push(e[0]);let o=n===`LR`?350:280,s=n===`TB`?250:180,c=new Map,l=new Map,u=[],d=new Set;for(a.forEach(e=>{u.push({nodeId:e.id,level:0})});u.length>0;){let{nodeId:e,level:t}=u.shift();d.has(e)||(d.add(e),l.has(t)||l.set(t,[]),l.get(t).push(e),(r.get(e)||[]).forEach(e=>{d.has(e)||u.push({nodeId:e,level:t+1})}))}return e.forEach(e=>{if(!d.has(e.id)){let t=Math.max(...Array.from(l.keys()),-1)+1;l.has(t)||l.set(t,[]),l.get(t).push(e.id)}}),l.forEach((e,t)=>{let r=e.length;e.forEach((e,i)=>{let a,l;n===`LR`?(a=t*o,l=-((r-1)*s)/2+i*s):(l=t*s,a=-((r-1)*o)/2+i*o),c.set(e,{x:a,y:l,level:t})})}),e.map(e=>{let t=c.get(e.id)||{x:0,y:0};return{...e,position:{x:t.x-110,y:t.y-60}}})}function sb(e){if(typeof e!=`object`||!e)return!1;let t=e;return`id`in t&&`edge_groups`in t&&`executors`in t&&`start_executor_id`in t&&`max_iterations`in t&&typeof t.id==`string`&&Array.isArray(t.edge_groups)&&typeof t.executors==`object`&&typeof t.start_executor_id==`string`&&typeof t.max_iterations==`number`}function cb(e){return sb(e)?e:null}function lb(e){if(!e||e.type!==`object`||!e.properties)return!1;let t=e.properties,n=`text`in t&&t.text?.type===`string`,r=`role`in t&&t.role?.type===`string`;return!!(n&&r||Object.keys(t).length===1&&n)}function ub(e,t=50,n=`...`){return e.length<=t?e:e.substring(0,t)+n}function db(e,t,n){if(!e)return console.warn(`convertWorkflowDumpToNodes: workflowDump is undefined`),[];let r=cb(e),i,a;return r?(i=Object.values(r.executors).map(e=>({id:e.id,type:e.type,name:e.name||e.id,description:e.description,config:e.config})),a=r.start_executor_id):(i=pb(e),a=e?.start_executor_id),!i||!Array.isArray(i)||i.length===0?(console.warn(`No executors found in workflow dump. Available keys:`,Object.keys(e)),[]):i.map(e=>({id:e.id,type:`executor`,position:{x:0,y:0},data:{executorId:e.id,executorType:e.type,name:e.name||e.id,state:`pending`,isStartNode:e.id===a,layoutDirection:n||`LR`,onNodeClick:t}}))}function fb(e){if(!e)return console.warn(`convertWorkflowDumpToEdges: workflowDump is undefined`),[];let t=cb(e),n;return t?(n=[],t.edge_groups.forEach(e=>{e.edges.forEach(e=>{n.push({source:e.source_id,target:e.target_id,condition:e.condition_name})})})):n=mb(e),!n||!Array.isArray(n)||n.length===0?(console.warn(`No connections found in workflow dump. Available keys:`,Object.keys(e)),[]):n.map(e=>{let t=e.source===e.target;return{id:`${e.source}-${e.target}`,source:e.source,target:e.target,sourceHandle:`source`,targetHandle:`target`,type:t?`selfLoop`:`default`,animated:!1,style:{stroke:`#6b7280`,strokeWidth:2}}})}function pb(e){if(e.executors&&typeof e.executors==`object`&&!Array.isArray(e.executors)){let t=e.executors;return Object.entries(t).map(([e,t])=>({id:e,type:t.type_||t.type||`executor`,name:t.name||e,description:t.description,config:t.config}))}for(let t of[`executors`,`agents`,`steps`,`nodes`])if(e[t]&&Array.isArray(e[t]))return e[t];if(e.config&&typeof e.config==`object`)return pb(e.config);let t=[];return Object.entries(e).forEach(([e,n])=>{if(typeof n==`object`&&n&&(`type`in n||`type_`in n)){let r=n;t.push({id:e,type:r.type_||r.type||`executor`,name:r.name||e,description:r.description,config:r.config})}}),t}function mb(e){if(e.edge_groups&&Array.isArray(e.edge_groups)){let t=[];return e.edge_groups.forEach(e=>{if(typeof e==`object`&&e&&`edges`in e){let n=e.edges;Array.isArray(n)&&n.forEach(e=>{if(typeof e==`object`&&e&&`source_id`in e&&`target_id`in e){let n=e;t.push({source:n.source_id,target:n.target_id,condition:n.condition_name||void 0})}})}}),t}for(let t of[`connections`,`edges`,`transitions`,`links`])if(e[t]&&Array.isArray(e[t]))return e[t];return e.config&&typeof e.config==`object`?mb(e.config):[]}function hb(e,t,n=`LR`){return ob(e,t,n)}function gb(e,t){let n={},r=!1,i={};return e.forEach(e=>{if(e.type===`response.output_item.added`||e.type===`response.output_item.done`){let t=e.item;if(t&&t.type===`executor_action`&&`executor_id`in t){let r=t.executor_id,a=t.id;if(e.type===`response.output_item.added`&&(i[r]=a),i[r]!==a&&e.type===`response.output_item.done`)return;let o=`pending`,s;e.type===`response.output_item.added`?o=`running`:e.type===`response.output_item.done`&&(t.status===`completed`?o=`completed`:t.status===`failed`?(o=`failed`,s=t.error?typeof t.error==`string`?t.error:JSON.stringify(t.error):`Execution failed`):t.status===`cancelled`&&(o=`cancelled`)),n[r]={nodeId:r,state:o,data:t.result,error:s,timestamp:new Date().toISOString()}}}else if(e.type===`response.created`||e.type===`response.in_progress`)r=!0;else if(e.type===`response.workflow_event.completed`&&`data`in e&&e.data){let t=e.data,i=t.executor_id,a=t.event_type,o=t.data,s=`pending`,c;a===`ExecutorInvokedEvent`?s=`running`:a===`ExecutorCompletedEvent`?s=`completed`:a?.includes(`Error`)||a?.includes(`Failed`)?(s=`failed`,c=typeof o==`string`?o:`Execution failed`):a?.includes(`Cancel`)?s=`cancelled`:a===`WorkflowCompletedEvent`||a===`WorkflowOutputEvent`?s=`completed`:a===`WorkflowStartedEvent`&&(r=!0),i&&(n[i]={nodeId:i,state:s,data:o,error:c,timestamp:new Date().toISOString()})}}),r&&t&&!n[t]&&(e.some(e=>{if(e.type===`response.output_item.done`){let n=e.item;return n&&n.type===`executor_action`&&`executor_id`in n&&n.executor_id===t}if(e.type===`response.workflow_event.completed`&&`data`in e&&e.data){let n=e.data;return n.executor_id===t&&(n.event_type===`ExecutorCompletedEvent`||n.event_type===`ExecutorFailedEvent`||typeof n.event_type==`string`&&n.event_type.includes(`Error`)||typeof n.event_type==`string`&&n.event_type.includes(`Failed`))}return!1})||(n[t]={nodeId:t,state:`running`,data:void 0,error:void 0,timestamp:new Date().toISOString()})),n}function _b(e,t,n=!0){return e.map(e=>{let r=t[e.id];return r?{...e,data:{...e.data,state:r.state,outputData:r.data,error:r.error,isStreaming:n,layoutDirection:e.data.layoutDirection}}:e})}function vb(e){let t={};return e.forEach(e=>{if(e.type===`response.output_item.added`||e.type===`response.output_item.done`){let n=e.item;if(n&&n.type===`executor_action`&&`executor_id`in n){let r=n.executor_id;t[r]={lastEvent:e.type===`response.output_item.added`?`ExecutorInvokedEvent`:`ExecutorCompletedEvent`,timestamp:new Date().toISOString()}}}else if(e.type===`response.workflow_event.completed`&&`data`in e&&e.data){let n=e.data,r=n.executor_id,i=n.event_type;r&&(i===`ExecutorInvokedEvent`||i===`ExecutorCompletedEvent`)&&(t[r]={lastEvent:i,timestamp:new Date().toISOString()})}}),Object.entries(t).filter(([,e])=>e.lastEvent===`ExecutorInvokedEvent`).map(([e])=>e)}function yb(e,t){let n=vb(t),r={};return t.forEach(e=>{if(e.type===`response.workflow_event.completed`&&`data`in e&&e.data){let t=e.data,n=t.executor_id,i=t.event_type;n&&i&&(r[n]||(r[n]={completed:!1,invoked:!1}),i===`ExecutorInvokedEvent`?r[n].invoked=!0:i===`ExecutorCompletedEvent`&&(r[n].completed=!0))}}),e.map(e=>{let t=r[e.source],i=r[e.target],a=n.includes(e.target),o={...e.style},s=!1;return t?.completed&&a?(o={stroke:`#643FB2`,strokeWidth:3,strokeDasharray:`5,5`},s=!0):o=t?.completed&&i?.completed?{stroke:`#10b981`,strokeWidth:2}:t?.completed&&i?.invoked?{stroke:`#f59e0b`,strokeWidth:2}:{stroke:`#6b7280`,strokeWidth:2},{...e,style:o,animated:s}})}function bb(e){let t=new Map,n=new Set;return e.forEach(e=>{let r=`${e.source}-${e.target}`,i=`${e.target}-${e.source}`;if(e.source===e.target){t.set(r,e);return}if(t.has(i)){n.add(i),n.add(r);let e=t.get(i);t.set(i,{...e,markerStart:{type:`arrow`,width:20,height:20},markerEnd:{type:`arrow`,width:20,height:20},data:{...e.data,isBidirectional:!0}})}else n.has(r)||t.set(r,e)}),Array.from(t.values())}function xb({inputSchema:e,onRun:t,onCancel:n,isSubmitting:r,isCancelling:i=!1,workflowState:a,checkpoints:o=[],showCheckpoints:s=!0}){let[c,l]=(0,y.useState)(!1);(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&c&&l(!1)};if(c)return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[c]);let u=(0,y.useMemo)(()=>{let t=lb(e);if(!e)return{needsInput:!1,hasDefaults:!1,fieldCount:0,canRunDirectly:!0,isChatMessage:!1};if(e.type===`string`)return{needsInput:!e.default,hasDefaults:!!e.default,fieldCount:1,canRunDirectly:!!e.default,isChatMessage:!1};if(e.type===`object`&&e.properties){let n=e.properties,r=Object.entries(n),i=r.filter(([,e])=>e.default!==void 0||e.enum&&e.enum.length>0);return{needsInput:r.length>0,hasDefaults:i.length>0,fieldCount:r.length,canRunDirectly:r.length===0||i.length===r.length,isChatMessage:t}}return{needsInput:!1,hasDefaults:!1,fieldCount:0,canRunDirectly:!0,isChatMessage:!1}},[e]),d=()=>{if(a===`running`&&n)n();else if(u.canRunDirectly){let n={};e?.type===`string`&&e.default?n.input=e.default:e?.type===`object`&&e.properties&&Object.entries(e.properties).forEach(([e,t])=>{t.default===void 0?t.enum&&t.enum.length>0&&(n[e]=t.enum[0]):n[e]=t.default}),t(n)}else l(!0)},f=n=>{if(u.canRunDirectly){let r={};e?.type===`string`&&e.default?r.input=e.default:e?.type===`object`&&e.properties&&Object.entries(e.properties).forEach(([e,t])=>{t.default===void 0?t.enum&&t.enum.length>0&&(r[e]=t.enum[0]):r[e]=t.default}),t(r,n)}else l(!0)},p=s&&o.length>0,m=e=>{if(!e)return``;let t=e/1024;return t<1?`${e} B`:t<1024?`${t.toFixed(1)} KB`:`${(t/1024).toFixed(1)} MB`},{icon:h,text:g}={icon:i?(0,K.jsx)(ld,{className:`w-4 h-4 animate-spin`}):a===`running`&&n?(0,K.jsx)(Zd,{className:`w-4 h-4 fill-current`}):a===`running`?(0,K.jsx)(ld,{className:`w-4 h-4 animate-spin`}):a===`error`?(0,K.jsx)(Ld,{className:`w-4 h-4`}):u.needsInput&&!u.canRunDirectly?(0,K.jsx)(qd,{className:`w-4 h-4`}):(0,K.jsx)(kd,{className:`w-4 h-4`}),text:i?`Stopping...`:a===`running`&&n?`Stop`:a===`running`?`Running...`:a===`completed`?`Run Again`:a===`error`?`Retry`:u.fieldCount===0||u.canRunDirectly?`Run Workflow`:`Configure & Run`},_=a===`running`&&!n||i,v=a===`error`?`destructive`:`default`;return(0,K.jsxs)(K.Fragment,{children:[p||u.needsInput?(0,K.jsxs)(_f,{children:[(0,K.jsxs)(`div`,{className:`flex w-full`,children:[(0,K.jsxs)(q,{onClick:d,disabled:_,variant:v,className:`gap-2 rounded-r-none flex-1`,title:a===`running`&&n?`Stop workflow execution`:void 0,children:[h,g]}),(0,K.jsx)(vf,{asChild:!0,children:(0,K.jsx)(q,{disabled:_,variant:v,className:`rounded-l-none border-l-0 px-2`,title:`More options`,children:(0,K.jsx)(su,{className:`w-4 h-4`})})})]}),(0,K.jsxs)(yf,{align:`end`,className:`w-80 max-h-[400px] overflow-y-auto`,children:[p&&(0,K.jsxs)(bf,{onClick:d,children:[(0,K.jsx)(kd,{className:`w-4 h-4 mr-2`}),`Run Fresh`]}),u.needsInput&&(0,K.jsxs)(bf,{onClick:()=>l(!0),children:[(0,K.jsx)(qd,{className:`w-4 h-4 mr-2`}),`Configure Inputs`]}),p&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(Sf,{}),(0,K.jsx)(`div`,{className:`px-2 py-1.5 text-xs text-muted-foreground`,children:`Resume from checkpoint`}),o.map((e,t)=>(0,K.jsxs)(bf,{onClick:()=>f(e.checkpoint_id),className:`flex flex-col items-start py-2`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2 w-full`,children:[(0,K.jsx)(Nd,{className:`w-4 h-4 flex-shrink-0`}),(0,K.jsx)(`span`,{className:`font-medium`,children:e.metadata.iteration_count===0?`Initial State`:`Step ${e.metadata.iteration_count}`}),t===0&&(0,K.jsx)(Ft,{variant:`secondary`,className:`text-[10px] h-4 px-1 ml-auto`,children:`Latest`})]}),(0,K.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground ml-6 mt-0.5`,children:[(0,K.jsx)(Tu,{className:`w-3 h-3`}),(0,K.jsx)(`span`,{children:new Date(e.timestamp).toLocaleTimeString()}),e.metadata.size_bytes&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`span`,{children:`•`}),(0,K.jsx)(`span`,{children:m(e.metadata.size_bytes)})]})]})]},e.checkpoint_id))]})]})]}):(0,K.jsxs)(q,{onClick:d,disabled:_,variant:v,className:`gap-2 w-full`,title:a===`running`&&n?`Stop workflow execution`:void 0,children:[h,g]}),e&&(0,K.jsx)(Og,{open:c,onOpenChange:l,children:(0,K.jsxs)(kg,{className:`w-full min-w-[400px] max-w-md sm:max-w-lg md:max-w-2xl lg:max-w-4xl xl:max-w-5xl max-h-[90vh] flex flex-col`,children:[(0,K.jsxs)(Ag,{className:`px-8 pt-6`,children:[(0,K.jsx)(jg,{children:`Configure Workflow Inputs`}),(0,K.jsx)(Ng,{onClose:()=>l(!1)})]}),(0,K.jsx)(`div`,{className:`px-8 py-4 border-b flex-shrink-0`,children:(0,K.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsx)(`span`,{className:`font-medium`,children:`Input Type:`}),(0,K.jsx)(Ft,{variant:`secondary`,children:u.isChatMessage?`Chat Message`:e.type===`string`?`Simple Text`:`Structured Data`})]})})}),(0,K.jsx)(`div`,{className:`flex-1 overflow-y-auto py-4 px-8`,children:u.isChatMessage?(0,K.jsx)(lv,{onSubmit:async e=>{t([{type:`message`,role:`user`,content:e}]),l(!1)},isSubmitting:r,placeholder:`Enter your message...`,entityName:`workflow`,showFileUpload:!0}):(0,K.jsx)(ab,{inputSchema:e,inputTypeName:`Input`,onSubmit:e=>{t(e),l(!1)},isSubmitting:r,className:`embedded`})})]})})]})}function Sb(e){if(typeof e==`string`||typeof e==`number`)return``+e;let t=``;if(Array.isArray(e))for(let n=0,r;n{}};function wb(){for(var e=0,t=arguments.length,n={},r;e=0&&(n=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw Error(`unknown type: `+e);return{type:e,name:n}})}Tb.prototype=wb.prototype={constructor:Tb,on:function(e,t){var n=this._,r=Eb(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a0)for(var n=Array(i),r=0,i,a;r=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),kb.hasOwnProperty(t)?{space:kb[t],local:e}:e}function jb(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===`http://www.w3.org/1999/xhtml`&&t.documentElement.namespaceURI===`http://www.w3.org/1999/xhtml`?t.createElement(e):t.createElementNS(n,e)}}function Mb(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Nb(e){var t=Ab(e);return(t.local?Mb:jb)(t)}function Pb(){}function Fb(e){return e==null?Pb:function(){return this.querySelector(e)}}function Ib(e){typeof e!=`function`&&(e=Fb(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i=v&&(v=_+1);!(b=g[v])&&++v=0;)(o=r[i])&&(a&&o.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(o,a),a=o);return this}function fx(e){e||=px;function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}for(var n=this._groups,r=n.length,i=Array(r),a=0;at?1:e>=t?0:NaN}function mx(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function hx(){return Array.from(this)}function gx(){for(var e=this._groups,t=0,n=e.length;t1?this.each((t==null?Ox:typeof t==`function`?Ax:kx)(e,t,n??``)):Mx(this.node(),e)}function Mx(e,t){return e.style.getPropertyValue(t)||Dx(e).getComputedStyle(e,null).getPropertyValue(t)}function Nx(e){return function(){delete this[e]}}function Px(e,t){return function(){this[e]=t}}function Fx(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Ix(e,t){return arguments.length>1?this.each((t==null?Nx:typeof t==`function`?Fx:Px)(e,t)):this.node()[e]}function Lx(e){return e.trim().split(/^|\s+/)}function Rx(e){return e.classList||new zx(e)}function zx(e){this._node=e,this._names=Lx(e.getAttribute(`class`)||``)}zx.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute(`class`,this._names.join(` `)))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute(`class`,this._names.join(` `)))},contains:function(e){return this._names.indexOf(e)>=0}};function Bx(e,t){for(var n=Rx(e),r=-1,i=t.length;++r=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}})}function hS(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,a;n()=>e;function LS(e,{sourceEvent:t,subject:n,target:r,identifier:i,active:a,x:o,y:s,dx:c,dy:l,dispatch:u}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:u}})}LS.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function RS(e){return!e.ctrlKey&&!e.button}function zS(){return this.parentNode}function BS(e,t){return t??{x:e.x,y:e.y}}function VS(){return navigator.maxTouchPoints||`ontouchstart`in this}function HS(){var e=RS,t=zS,n=BS,r=VS,i={},a=wb(`start`,`drag`,`end`),o=0,s,c,l,u,d=0;function f(e){e.on(`mousedown.drag`,p).filter(r).on(`touchstart.drag`,g).on(`touchmove.drag`,_,AS).on(`touchend.drag touchcancel.drag`,v).style(`touch-action`,`none`).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}function p(n,r){if(!u&&e.call(this,n,r)){var i=y(this,t.call(this,n,r),n,r,`mouse`);i&&(DS(n.view).on(`mousemove.drag`,m,jS).on(`mouseup.drag`,h,jS),PS(n.view),MS(n),l=!1,s=n.clientX,c=n.clientY,i(`start`,n))}}function m(e){if(NS(e),!l){var t=e.clientX-s,n=e.clientY-c;l=t*t+n*n>d}i.mouse(`drag`,e)}function h(e){DS(e.view).on(`mousemove.drag mouseup.drag`,null),FS(e.view,l),NS(e),i.mouse(`end`,e)}function g(n,r){if(e.call(this,n,r))for(var i=n.changedTouches,a=t.call(this,n,r),o=i.length,s=0,c;s>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?dC(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?dC(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=QS.exec(e))?new mC(t[1],t[2],t[3],1):(t=$S.exec(e))?new mC(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=eC.exec(e))?dC(t[1],t[2],t[3],t[4]):(t=tC.exec(e))?dC(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=nC.exec(e))?xC(t[1],t[2]/100,t[3]/100,1):(t=rC.exec(e))?xC(t[1],t[2]/100,t[3]/100,t[4]):iC.hasOwnProperty(e)?uC(iC[e]):e===`transparent`?new mC(NaN,NaN,NaN,0):null}function uC(e){return new mC(e>>16&255,e>>8&255,e&255,1)}function dC(e,t,n,r){return r<=0&&(e=t=n=NaN),new mC(e,t,n,r)}function fC(e){return e instanceof GS||(e=lC(e)),e?(e=e.rgb(),new mC(e.r,e.g,e.b,e.opacity)):new mC}function pC(e,t,n,r){return arguments.length===1?fC(e):new mC(e,t,n,r??1)}function mC(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}US(mC,pC,WS(GS,{brighter(e){return e=e==null?qS:qS**+e,new mC(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?KS:KS**+e,new mC(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new mC(yC(this.r),yC(this.g),yC(this.b),vC(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:hC,formatHex:hC,formatHex8:gC,formatRgb:_C,toString:_C}));function hC(){return`#${bC(this.r)}${bC(this.g)}${bC(this.b)}`}function gC(){return`#${bC(this.r)}${bC(this.g)}${bC(this.b)}${bC((isNaN(this.opacity)?1:this.opacity)*255)}`}function _C(){let e=vC(this.opacity);return`${e===1?`rgb(`:`rgba(`}${yC(this.r)}, ${yC(this.g)}, ${yC(this.b)}${e===1?`)`:`, ${e})`}`}function vC(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function yC(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function bC(e){return e=yC(e),(e<16?`0`:``)+e.toString(16)}function xC(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new wC(e,t,n,r)}function SC(e){if(e instanceof wC)return new wC(e.h,e.s,e.l,e.opacity);if(e instanceof GS||(e=lC(e)),!e)return new wC;if(e instanceof wC)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,c=(a+i)/2;return s?(o=t===a?(n-r)/s+(n0&&c<1?0:o,new wC(o,s,c,e.opacity)}function CC(e,t,n,r){return arguments.length===1?SC(e):new wC(e,t,n,r??1)}function wC(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}US(wC,CC,WS(GS,{brighter(e){return e=e==null?qS:qS**+e,new wC(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?KS:KS**+e,new wC(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new mC(DC(e>=240?e-240:e+120,i,r),DC(e,i,r),DC(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new wC(TC(this.h),EC(this.s),EC(this.l),vC(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=vC(this.opacity);return`${e===1?`hsl(`:`hsla(`}${TC(this.h)}, ${EC(this.s)*100}%, ${EC(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function TC(e){return e=(e||0)%360,e<0?e+360:e}function EC(e){return Math.max(0,Math.min(1,e||0))}function DC(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}var OC=e=>()=>e;function kC(e,t){return function(n){return e+n*t}}function AC(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function jC(e){return(e=+e)==1?MC:function(t,n){return n-t?AC(t,n,e):OC(isNaN(t)?n:t)}}function MC(e,t){var n=t-e;return n?kC(e,n):OC(isNaN(e)?t:e)}var NC=(function e(t){var n=jC(t);function r(e,t){var r=n((e=pC(e)).r,(t=pC(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=MC(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+``}}return r.gamma=e,r})(1);function PC(e,t){t||=[];var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;in&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:RC(r,i)})),n=VC.lastIndex;return n180?t+=360:t-e>180&&(e+=360),a.push({i:n.push(i(n)+`rotate(`,null,r)-2,x:RC(e,t)}))}function s(e,t,n,a){e===t?t&&n.push(i(n)+`skewX(`+t+r):a.push({i:n.push(i(n)+`skewX(`,null,r)-2,x:RC(e,t)})}function c(e,t,n,r,a,o){if(e!==n||t!==r){var s=a.push(i(a)+`scale(`,null,`,`,null,`)`);o.push({i:s-4,x:RC(e,n)},{i:s-2,x:RC(t,r)})}else(n!==1||r!==1)&&a.push(i(a)+`scale(`+n+`,`+r+`)`)}return function(t,n){var r=[],i=[];return t=e(t),n=e(n),a(t.translateX,t.translateY,n.translateX,n.translateY,r,i),o(t.rotate,n.rotate,r,i),s(t.skewX,n.skewX,r,i),c(t.scaleX,t.scaleY,n.scaleX,n.scaleY,r,i),t=n=null,function(e){for(var t=-1,n=i.length,a;++t=0&&e._call.call(void 0,t),e=e._next;--ow}function Sw(){pw=(fw=hw.now())+mw,ow=sw=0;try{xw()}finally{ow=0,ww(),pw=0}}function Cw(){var e=hw.now(),t=e-fw;t>lw&&(mw-=t,fw=e)}function ww(){for(var e,t=uw,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:uw=n);dw=e,Tw(r)}function Tw(e){ow||(sw&&=clearTimeout(sw),e-pw>24?(e<1/0&&(sw=setTimeout(Sw,e-hw.now()-mw)),cw&&=clearInterval(cw)):(cw||=(fw=hw.now(),setInterval(Cw,lw)),ow=1,gw(Sw)))}function Ew(e,t,n){var r=new yw;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var Dw=wb(`start`,`end`,`cancel`,`interrupt`),Ow=[];function kw(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;Nw(e,n,{name:t,index:r,group:i,on:Dw,tween:Ow,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function Aw(e,t){var n=Mw(e,t);if(n.state>0)throw Error(`too late; already scheduled`);return n}function jw(e,t){var n=Mw(e,t);if(n.state>3)throw Error(`too late; already running`);return n}function Mw(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function Nw(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=bw(a,0,n.time);function a(e){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=e&&o(e-n.delay)}function o(a){var l,u,d,f;if(n.state!==1)return c();for(l in r)if(f=r[l],f.name===n.name){if(f.state===3)return Ew(o);f.state===4?(f.state=6,f.timer.stop(),f.on.call(`interrupt`,e,e.__data__,f.index,f.group),delete r[l]):+l2&&r.state<5,r.state=6,r.timer.stop(),r.on.call(i?`interrupt`:`cancel`,e,e.__data__,r.index,r.group),delete n[o]}a&&delete e.__transition}}function Fw(e){return this.each(function(){Pw(this,e)})}function Iw(e,t){var n,r;return function(){var i=jw(this,e),a=i.tween;if(a!==n){r=n=a;for(var o=0,s=r.length;o=0&&(e=e.slice(0,t)),!e||e===`start`})}function fT(e,t,n){var r,i,a=dT(t)?Aw:jw;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function pT(e,t){var n=this._id;return arguments.length<2?Mw(this.node(),n).on.on(e):this.each(fT(n,e,t))}function mT(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function hT(){return this.on(`end.remove`,mT(this._id))}function gT(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=Fb(e));for(var r=this._groups,i=r.length,a=Array(i),o=0;o()=>e;function KT(e,{sourceEvent:t,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function qT(e,t,n){this.k=e,this.x=t,this.y=n}qT.prototype={constructor:qT,scale:function(e){return e===1?this:new qT(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new qT(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return`translate(`+this.x+`,`+this.y+`) scale(`+this.k+`)`}};var JT=new qT(1,0,0);YT.prototype=qT.prototype;function YT(e){for(;!e.__zoom;)if(!(e=e.parentNode))return JT;return e.__zoom}function XT(e){e.stopImmediatePropagation()}function ZT(e){e.preventDefault(),e.stopImmediatePropagation()}function QT(e){return(!e.ctrlKey||e.type===`wheel`)&&!e.button}function $T(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute(`viewBox`)?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function eE(){return this.__zoom||JT}function tE(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function nE(){return navigator.maxTouchPoints||`ontouchstart`in this}function rE(e,t,n){var r=e.invertX(t[0][0])-n[0][0],i=e.invertX(t[1][0])-n[1][0],a=e.invertY(t[0][1])-n[0][1],o=e.invertY(t[1][1])-n[1][1];return e.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>a?(a+o)/2:Math.min(0,a)||Math.max(0,o))}function iE(){var e=QT,t=$T,n=rE,r=tE,i=nE,a=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],s=250,c=aw,l=wb(`start`,`zoom`,`end`),u,d,f,p=500,m=150,h=0,g=10;function _(e){e.property(`__zoom`,eE).on(`wheel.zoom`,w,{passive:!1}).on(`mousedown.zoom`,T).on(`dblclick.zoom`,E).filter(i).on(`touchstart.zoom`,D).on(`touchmove.zoom`,O).on(`touchend.zoom touchcancel.zoom`,k).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}_.transform=function(e,t,n,r){var i=e.selection?e.selection():e;i.property(`__zoom`,eE),e===i?i.interrupt().each(function(){S(this,arguments).event(r).start().zoom(null,typeof t==`function`?t.apply(this,arguments):t).end()}):x(e,t,n,r)},_.scaleBy=function(e,t,n,r){_.scaleTo(e,function(){return this.__zoom.k*(typeof t==`function`?t.apply(this,arguments):t)},n,r)},_.scaleTo=function(e,r,i,a){_.transform(e,function(){var e=t.apply(this,arguments),a=this.__zoom,s=i==null?b(e):typeof i==`function`?i.apply(this,arguments):i,c=a.invert(s),l=typeof r==`function`?r.apply(this,arguments):r;return n(y(v(a,l),s,c),e,o)},i,a)},_.translateBy=function(e,r,i,a){_.transform(e,function(){return n(this.__zoom.translate(typeof r==`function`?r.apply(this,arguments):r,typeof i==`function`?i.apply(this,arguments):i),t.apply(this,arguments),o)},null,a)},_.translateTo=function(e,r,i,a,s){_.transform(e,function(){var e=t.apply(this,arguments),s=this.__zoom,c=a==null?b(e):typeof a==`function`?a.apply(this,arguments):a;return n(JT.translate(c[0],c[1]).scale(s.k).translate(typeof r==`function`?-r.apply(this,arguments):-r,typeof i==`function`?-i.apply(this,arguments):-i),e,o)},a,s)};function v(e,t){return t=Math.max(a[0],Math.min(a[1],t)),t===e.k?e:new qT(t,e.x,e.y)}function y(e,t,n){var r=t[0]-n[0]*e.k,i=t[1]-n[1]*e.k;return r===e.x&&i===e.y?e:new qT(e.k,r,i)}function b(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function x(e,n,r,i){e.on(`start.zoom`,function(){S(this,arguments).event(i).start()}).on(`interrupt.zoom end.zoom`,function(){S(this,arguments).event(i).end()}).tween(`zoom`,function(){var e=this,a=arguments,o=S(e,a).event(i),s=t.apply(e,a),l=r==null?b(s):typeof r==`function`?r.apply(e,a):r,u=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),d=e.__zoom,f=typeof n==`function`?n.apply(e,a):n,p=c(d.invert(l).concat(u/d.k),f.invert(l).concat(u/f.k));return function(e){if(e===1)e=f;else{var t=p(e),n=u/t[2];e=new qT(n,l[0]-t[0]*n,l[1]-t[1]*n)}o.zoom(null,e)}})}function S(e,t,n){return!n&&e.__zooming||new C(e,t)}function C(e,n){this.that=e,this.args=n,this.active=0,this.sourceEvent=null,this.extent=t.apply(e,n),this.taps=0}C.prototype={event:function(e){return e&&(this.sourceEvent=e),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit(`start`)),this},zoom:function(e,t){return this.mouse&&e!==`mouse`&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&e!==`touch`&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&e!==`touch`&&(this.touch1[1]=t.invert(this.touch1[0])),this.that.__zoom=t,this.emit(`zoom`),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit(`end`)),this},emit:function(e){var t=DS(this.that).datum();l.call(e,this.that,new KT(e,{sourceEvent:this.sourceEvent,target:_,type:e,transform:this.that.__zoom,dispatch:l}),t)}};function w(t,...i){if(!e.apply(this,arguments))return;var s=S(this,i).event(t),c=this.__zoom,l=Math.max(a[0],Math.min(a[1],c.k*2**r.apply(this,arguments))),u=kS(t);if(s.wheel)(s.mouse[0][0]!==u[0]||s.mouse[0][1]!==u[1])&&(s.mouse[1]=c.invert(s.mouse[0]=u)),clearTimeout(s.wheel);else if(c.k===l)return;else s.mouse=[u,c.invert(u)],Pw(this),s.start();ZT(t),s.wheel=setTimeout(d,m),s.zoom(`mouse`,n(y(v(c,l),s.mouse[0],s.mouse[1]),s.extent,o));function d(){s.wheel=null,s.end()}}function T(t,...r){if(f||!e.apply(this,arguments))return;var i=t.currentTarget,a=S(this,r,!0).event(t),s=DS(t.view).on(`mousemove.zoom`,d,!0).on(`mouseup.zoom`,p,!0),c=kS(t,i),l=t.clientX,u=t.clientY;PS(t.view),XT(t),a.mouse=[c,this.__zoom.invert(c)],Pw(this),a.start();function d(e){if(ZT(e),!a.moved){var t=e.clientX-l,r=e.clientY-u;a.moved=t*t+r*r>h}a.event(e).zoom(`mouse`,n(y(a.that.__zoom,a.mouse[0]=kS(e,i),a.mouse[1]),a.extent,o))}function p(e){s.on(`mousemove.zoom mouseup.zoom`,null),FS(e.view,a.moved),ZT(e),a.event(e).end()}}function E(r,...i){if(e.apply(this,arguments)){var a=this.__zoom,c=kS(r.changedTouches?r.changedTouches[0]:r,this),l=a.invert(c),u=a.k*(r.shiftKey?.5:2),d=n(y(v(a,u),c,l),t.apply(this,i),o);ZT(r),s>0?DS(this).transition().duration(s).call(x,d,c,r):DS(this).call(_.transform,d,c,r)}}function D(t,...n){if(e.apply(this,arguments)){var r=t.touches,i=r.length,a=S(this,n,t.changedTouches.length===i).event(t),o,s,c,l;for(XT(t),s=0;s`Seems like you have not used ${e===`svelte`?`SvelteFlowProvider`:`ReactFlowProvider`} as an ancestor. Help: https://${e}flow.dev/error#001`,error002:()=>`It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.`,error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>`The parent container needs a width and a height to render the graph.`,error005:()=>`Only child nodes can use a parent extent.`,error006:()=>`Can't create edge. An edge needs a source and a target.`,error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e===`source`?n:r}", edge id: ${t}.`,error010:()=>`Handle: No node id found. Make sure to only use a Handle inside a custom Node.`,error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e=`react`)=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>`useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.`,error015:()=>`It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.`,error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},oE=[[-1/0,-1/0],[1/0,1/0]],sE=[`Enter`,` `,`Escape`],cE={"node.a11yDescription.default":`Press enter or space to select a node. Press delete to remove it and escape to cancel.`,"node.a11yDescription.keyboardDisabled":`Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.`,"node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":`Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.`,"controls.ariaLabel":`Control Panel`,"controls.zoomIn.ariaLabel":`Zoom In`,"controls.zoomOut.ariaLabel":`Zoom Out`,"controls.fitView.ariaLabel":`Fit View`,"controls.interactive.ariaLabel":`Toggle Interactivity`,"minimap.ariaLabel":`Mini Map`,"handle.ariaLabel":`Handle`},lE;(function(e){e.Strict=`strict`,e.Loose=`loose`})(lE||={});var uE;(function(e){e.Free=`free`,e.Vertical=`vertical`,e.Horizontal=`horizontal`})(uE||={});var dE;(function(e){e.Partial=`partial`,e.Full=`full`})(dE||={});var fE={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null},pE;(function(e){e.Bezier=`default`,e.Straight=`straight`,e.Step=`step`,e.SmoothStep=`smoothstep`,e.SimpleBezier=`simplebezier`})(pE||={});var mE;(function(e){e.Arrow=`arrow`,e.ArrowClosed=`arrowclosed`})(mE||={});var $;(function(e){e.Left=`left`,e.Top=`top`,e.Right=`right`,e.Bottom=`bottom`})($||={});var hE={[$.Left]:$.Right,[$.Right]:$.Left,[$.Top]:$.Bottom,[$.Bottom]:$.Top},gE=e=>!!e&&typeof e==`object`&&`id`in e&&`source`in e&&`target`in e,_E=e=>!!e&&typeof e==`object`&&`id`in e&&`position`in e&&!(`source`in e)&&!(`target`in e),vE=e=>!!e&&typeof e==`object`&&`id`in e&&`internals`in e&&!(`source`in e)&&!(`target`in e),yE=(e,t=[0,0])=>{let{width:n,height:r}=$E(e),i=e.origin??t,a=n*i[0],o=r*i[1];return{x:e.position.x-a,y:e.position.y-o}},bE=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};let n=!1,r=e.reduce((e,r)=>{let i=typeof r==`string`,a=!t.nodeLookup&&!i?r:void 0;return t.nodeLookup&&(a=i?t.nodeLookup.get(r):vE(r)?r:t.nodeLookup.get(r.id)),a?(n=!0,NE(e,LE(a,t.nodeOrigin))):e},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return n?FE(r):{x:0,y:0,width:0,height:0}},xE=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(e=>{(t.filter===void 0||t.filter(e))&&(n=NE(n,LE(e)),r=!0)}),r?FE(n):{x:0,y:0,width:0,height:0}},SE=(e,t,[n,r,i]=[0,0,1],a=!1,o=!1)=>{let s=(t.x-n)/i,c=(t.y-r)/i,l=t.width/i,u=t.height/i,d=[];for(let t of e.values()){let{measured:e,selectable:n=!0,hidden:r=!1}=t;if(o&&!n||r)continue;let i=e.width??t.width??t.initialWidth??0,f=e.height??t.height??t.initialHeight??0,{x:p,y:m}=t.internals.positionAbsolute,h=zE(s,c,l,u,p,m,i,f),g=i*f,_=a&&h>0;(!t.internals.handleBounds||_||h>=g||t.dragging)&&d.push(t)}return d},CE=(e,t)=>{let n=new Set;return e.forEach(e=>{n.add(e.id)}),t.filter(e=>n.has(e.source)||n.has(e.target))};function wE(e,t){let n=new Map,r=t?.nodes?new Set(t.nodes.map(e=>e.id)):null;return e.forEach(e=>{let i;if(t?.includeHiddenNodes){let{width:t,height:n}=$E(e);i=t>0&&n>0}else i=!!(e.measured.width&&e.measured.height&&!e.hidden);i&&(!r||r.has(e.id))&&n.set(e.id,e)}),n}async function TE({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:a},o){if(e.size===0)return!0;let s=XE(xE(wE(e,o)),t,n,o?.minZoom??i,o?.maxZoom??a,o?.padding??.1);return await r.setViewport(s,{duration:o?.duration,ease:o?.ease,interpolate:o?.interpolate}),!0}function EE({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,onError:a}){let o=n.get(e),s=o.parentId?n.get(o.parentId):void 0,{x:c,y:l}=s?s.internals.positionAbsolute:{x:0,y:0},u=o.origin??r,d=o.extent||i;if(o.extent===`parent`&&!o.expandParent){if(!s)a?.(`005`,aE.error005());else{let{width:e,height:t}=$E(s);e&&t&&(d=[[c,l],[c+e,l+t]])}}else s&&QE(o.extent)&&(d=[[o.extent[0][0]+c,o.extent[0][1]+l],[o.extent[1][0]+c,o.extent[1][1]+l]]);let f=QE(d)?kE(t,d,o.measured):t;return(o.measured.width===void 0||o.measured.height===void 0)&&a?.(`015`,aE.error015()),{position:{x:f.x-c+(o.measured.width??0)*u[0],y:f.y-l+(o.measured.height??0)*u[1]},positionAbsolute:f}}async function DE({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:i}){let a=new Set(e.map(e=>e.id)),o=[];for(let e of n){if(e.deletable===!1)continue;let t=a.has(e.id),n=!t&&e.parentId&&o.find(t=>t.id===e.parentId);(t||n)&&o.push(e)}let s=new Set(t.map(e=>e.id)),c=r.filter(e=>e.deletable!==!1),l=CE(o,c);for(let e of c)s.has(e.id)&&!l.find(t=>t.id===e.id)&&l.push(e);if(!i)return{edges:l,nodes:o};let u=await i({nodes:o,edges:l});return typeof u==`boolean`?u?{edges:l,nodes:o}:{edges:[],nodes:[]}:u}var OE=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),kE=(e={x:0,y:0},t,n)=>({x:OE(e.x,t[0][0],t[1][0]-(n?.width??0)),y:OE(e.y,t[0][1],t[1][1]-(n?.height??0))});function AE(e,t,n){let{width:r,height:i}=$E(n),{x:a,y:o}=n.internals.positionAbsolute;return kE(e,[[a,o],[a+r,o+i]],t)}var jE=(e,t,n)=>en?-OE(Math.abs(e-n),1,t)/t:0,ME=(e,t,n=15,r=40)=>[jE(e.x,r,t.width-r)*n,jE(e.y,r,t.height-r)*n],NE=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),PE=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),FE=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),IE=(e,t=[0,0])=>{let{x:n,y:r}=vE(e)?e.internals.positionAbsolute:yE(e,t);return{x:n,y:r,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},LE=(e,t=[0,0])=>{let{x:n,y:r}=vE(e)?e.internals.positionAbsolute:yE(e,t);return{x:n,y:r,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:r+(e.measured?.height??e.height??e.initialHeight??0)}},RE=(e,t)=>FE(NE(PE(e),PE(t))),zE=(e,t,n,r,i,a,o,s)=>{let c=Math.max(0,Math.min(e+n,i+o)-Math.max(e,i)),l=Math.max(0,Math.min(t+r,a+s)-Math.max(t,a));return Math.ceil(c*l)},BE=(e,t)=>zE(e.x,e.y,e.width,e.height,t.x,t.y,t.width,t.height),VE=e=>HE(e.width)&&HE(e.height)&&HE(e.x)&&HE(e.y),HE=e=>!isNaN(e)&&isFinite(e),UE=(e,t)=>(e,t)=>{},WE=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),GE=({x:e,y:t},[n,r,i],a=!1,o=[1,1])=>{let s={x:(e-n)/i,y:(t-r)/i};return a?WE(s,o):s},KE=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function qE(e,t){if(typeof e==`number`)return Math.floor((t-t/(1+e))*.5);if(typeof e==`string`&&e.endsWith(`px`)){let t=parseFloat(e);if(!Number.isNaN(t))return Math.floor(t)}if(typeof e==`string`&&e.endsWith(`%`)){let n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function JE(e,t,n){if(typeof e==`string`||typeof e==`number`){let r=qE(e,n),i=qE(e,t);return{top:r,right:i,bottom:r,left:i,x:i*2,y:r*2}}if(typeof e==`object`){let r=qE(e.top??e.y??0,n),i=qE(e.bottom??e.y??0,n),a=qE(e.left??e.x??0,t),o=qE(e.right??e.x??0,t);return{top:r,right:o,bottom:i,left:a,x:a+o,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function YE(e,t,n,r,i,a){let{x:o,y:s}=KE(e,[t,n,r]),{x:c,y:l}=KE({x:e.x+e.width,y:e.y+e.height},[t,n,r]),u=i-c,d=a-l;return{left:Math.floor(o),top:Math.floor(s),right:Math.floor(u),bottom:Math.floor(d)}}var XE=(e,t,n,r,i,a)=>{let o=JE(a,t,n),s=(t-o.x)/e.width,c=(n-o.y)/e.height,l=OE(Math.min(s,c),r,i),u=e.x+e.width/2,d=e.y+e.height/2,f=t/2-u*l,p=n/2-d*l,m=YE(e,f,p,l,t,n),h={left:Math.min(m.left-o.left,0),top:Math.min(m.top-o.top,0),right:Math.min(m.right-o.right,0),bottom:Math.min(m.bottom-o.bottom,0)};return{x:f-h.left+h.right,y:p-h.top+h.bottom,zoom:l}},ZE=()=>typeof navigator<`u`&&navigator?.userAgent?.indexOf(`Mac`)>=0;function QE(e){return e!=null&&e!==`parent`}function $E(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function eD(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function tD(e,t={width:0,height:0},n,r,i){let a={...e},o=r.get(n);if(o){let e=o.origin||i;a.x+=o.internals.positionAbsolute.x-(t.width??0)*e[0],a.y+=o.internals.positionAbsolute.y-(t.height??0)*e[1]}return a}function nD(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function rD(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function iD(e){return{...cE,...e||{}}}function aD(e){return e===null?null:e?`valid`:`invalid`}function oD(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){let{x:a,y:o}=fD(e),s=GE({x:a-(i?.left??0),y:o-(i?.top??0)},r),{x:c,y:l}=n?WE(s,t):s;return{xSnapped:c,ySnapped:l,...s}}var sD=e=>({width:e.offsetWidth,height:e.offsetHeight}),cD=e=>e?.getRootNode?.()||window?.document,lD=[`INPUT`,`SELECT`,`TEXTAREA`];function uD(e){let t=e.composedPath?.()?.[0]||e.target;return t?.nodeType===1?lD.includes(t.nodeName)||t.hasAttribute(`contenteditable`)||!!t.closest(`.nokey`):!1}var dD=e=>`clientX`in e,fD=(e,t)=>{let n=dD(e),r=n?e.clientX:e.touches?.[0].clientX,i=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:i-(t?.top??0)}},pD=(e,t,n,r,i)=>{let a=t.querySelectorAll(`.${e}`);return!a||!a.length?null:Array.from(a).map(t=>{let a=t.getBoundingClientRect();return{id:t.getAttribute(`data-handleid`),type:e,nodeId:i,position:t.getAttribute(`data-handlepos`),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...sD(t)}})};function mD({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:i,sourceControlY:a,targetControlX:o,targetControlY:s}){let c=e*.125+i*.375+o*.375+n*.125,l=t*.125+a*.375+s*.375+r*.125;return[c,l,Math.abs(c-e),Math.abs(l-t)]}function hD(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function gD({pos:e,x1:t,y1:n,x2:r,y2:i,c:a}){switch(e){case $.Left:return[t-hD(t-r,a),n];case $.Right:return[t+hD(r-t,a),n];case $.Top:return[t,n-hD(n-i,a)];case $.Bottom:return[t,n+hD(i-n,a)]}}function _D({sourceX:e,sourceY:t,sourcePosition:n=$.Bottom,targetX:r,targetY:i,targetPosition:a=$.Top,curvature:o=.25}){let[s,c]=gD({pos:n,x1:e,y1:t,x2:r,y2:i,c:o}),[l,u]=gD({pos:a,x1:r,y1:i,x2:e,y2:t,c:o}),[d,f,p,m]=mD({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:s,sourceControlY:c,targetControlX:l,targetControlY:u});return[`M${e},${t} C${s},${c} ${l},${u} ${r},${i}`,d,f,p,m]}function vD({sourceX:e,sourceY:t,targetX:n,targetY:r}){let i=Math.abs(n-e)/2,a=n0}var xD=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||``}-${n}${r||``}`,SD=(e,t)=>t.some(t=>t.source===e.source&&t.target===e.target&&(t.sourceHandle===e.sourceHandle||!t.sourceHandle&&!e.sourceHandle)&&(t.targetHandle===e.targetHandle||!t.targetHandle&&!e.targetHandle)),CD=(e,t,n={})=>{if(!e.source||!e.target)return n.onError?.(`006`,aE.error006()),t;let r=n.getEdgeId||xD,i;return i=gE(e)?{...e}:{...e,id:r(e)},SD(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))};function wD({sourceX:e,sourceY:t,targetX:n,targetY:r}){let[i,a,o,s]=vD({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,a,o,s]}var TD={[$.Left]:{x:-1,y:0},[$.Right]:{x:1,y:0},[$.Top]:{x:0,y:-1},[$.Bottom]:{x:0,y:1}},ED=({source:e,sourcePosition:t=$.Bottom,target:n})=>t===$.Left||t===$.Right?e.xMath.sqrt((t.x-e.x)**2+(t.y-e.y)**2);function OD({source:e,sourcePosition:t=$.Bottom,target:n,targetPosition:r=$.Top,center:i,offset:a,stepPosition:o}){let s=TD[t],c=TD[r],l={x:e.x+s.x*a,y:e.y+s.y*a},u={x:n.x+c.x*a,y:n.y+c.y*a},d=ED({source:l,sourcePosition:t,target:u}),f=d.x===0?`y`:`x`,p=d[f],m=[],h,g,_={x:0,y:0},v={x:0,y:0},[,,y,b]=vD({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(s[f]*c[f]===-1){f===`x`?(h=i.x??l.x+(u.x-l.x)*o,g=i.y??(l.y+u.y)/2):(h=i.x??(l.x+u.x)/2,g=i.y??l.y+(u.y-l.y)*o);let e=[{x:h,y:l.y},{x:h,y:u.y}],t=[{x:l.x,y:g},{x:u.x,y:g}];m=s[f]===p?f===`x`?e:t:f===`x`?t:e}else{let i=[{x:l.x,y:u.y}],o=[{x:u.x,y:l.y}];if(m=f===`x`?s.x===p?o:i:s.y===p?i:o,t===r){let t=Math.abs(e[f]-n[f]);if(t<=a){let r=Math.min(a-1,a-t);s[f]===p?_[f]=(l[f]>e[f]?-1:1)*r:v[f]=(u[f]>n[f]?-1:1)*r}}if(t!==r){let e=f===`x`?`y`:`x`,t=s[f]===c[e],n=l[e]>u[e],r=l[e]=Math.max(Math.abs(d.y-m[0].y),Math.abs(y.y-m[0].y))?(h=(d.x+y.x)/2,g=m[0].y):(h=m[0].x,g=(d.y+y.y)/2)}let x={x:l.x+_.x,y:l.y+_.y},S={x:u.x+v.x,y:u.y+v.y};return[[e,...x.x!==m[0].x||x.y!==m[0].y?[x]:[],...m,...S.x!==m[m.length-1].x||S.y!==m[m.length-1].y?[S]:[],n],h,g,y,b]}function kD(e,t,n,r){let i=Math.min(DD(e,t)/2,DD(t,n)/2,r),{x:a,y:o}=t;if(e.x===a&&a===n.x||e.y===o&&o===n.y)return`L${a} ${o}`;if(e.y===o){let t=e.xe.id===t):e[0])||null}function ID(e,t){return e?typeof e==`string`?e:`${t?`${t}__`:``}${Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join(`&`)}`:``}function LD(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){let a=new Set;return e.reduce((e,o)=>([o.markerStart||r,o.markerEnd||i].forEach(r=>{if(r&&typeof r==`object`){let i=ID(r,t);a.has(i)||(e.push({id:i,color:r.color||n,...r}),a.add(i))}}),e),[]).sort((e,t)=>e.id.localeCompare(t.id))}var RD=1e3,zD=10,BD={nodeOrigin:[0,0],nodeExtent:oE,elevateNodesOnSelect:!0,zIndexMode:`basic`,defaults:{}},VD={...BD,checkEquality:!0};function HD(e,t){let n={...e};for(let e in t)t[e]!==void 0&&(n[e]=t[e]);return n}function UD(e,t,n){let r=HD(BD,n);for(let n of e.values())if(n.parentId)JD(n,e,t,r);else{let e=kE(yE(n,r.nodeOrigin),QE(n.extent)?n.extent:r.nodeExtent,$E(n));n.internals.positionAbsolute=e}}function WD(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;let n=[],r=[];for(let t of e.handles){let i={id:t.id,width:t.width??1,height:t.height??1,nodeId:e.id,x:t.x,y:t.y,position:t.position,type:t.type};t.type===`source`?n.push(i):t.type===`target`&&r.push(i)}return{source:n,target:r}}function GD(e){return e===`manual`}function KD(e,t,n,r={}){let i=HD(VD,r),a={i:0},o=new Map(t),s=i?.elevateNodesOnSelect&&!GD(i.zIndexMode)?RD:0,c=e.length>0,l=!1;t.clear(),n.clear();for(let u of e){let e=o.get(u.id);if(i.checkEquality&&u===e?.internals.userNode)t.set(u.id,e);else{let n=kE(yE(u,i.nodeOrigin),QE(u.extent)?u.extent:i.nodeExtent,$E(u));e={...i.defaults,...u,measured:{width:u.measured?.width,height:u.measured?.height},internals:{positionAbsolute:n,handleBounds:WD(u,e),z:YD(u,s,i.zIndexMode),userNode:u}},t.set(u.id,e)}(e.measured===void 0||e.measured.width===void 0||e.measured.height===void 0)&&!e.hidden&&(c=!1),u.parentId&&JD(e,t,n,r,a),l||=u.selected??!1}return{nodesInitialized:c,hasSelectedNodes:l}}function qD(e,t){if(!e.parentId)return;let n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function JD(e,t,n,r,i){let{elevateNodesOnSelect:a,nodeOrigin:o,nodeExtent:s,zIndexMode:c}=HD(BD,r),l=e.parentId,u=t.get(l);if(!u){console.warn(`Parent node ${l} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}qD(e,n),i&&!u.parentId&&u.internals.rootParentIndex===void 0&&c===`auto`&&(u.internals.rootParentIndex=++i.i,u.internals.z=u.internals.z+i.i*zD),i&&u.internals.rootParentIndex!==void 0&&(i.i=u.internals.rootParentIndex);let{x:d,y:f,z:p}=XD(e,u,o,s,a&&!GD(c)?RD:0,c),{positionAbsolute:m}=e.internals,h=d!==m.x||f!==m.y;(h||p!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:h?{x:d,y:f}:m,z:p}})}function YD(e,t,n){let r=HE(e.zIndex)?e.zIndex:0;return GD(n)?r:r+(e.selected?t:0)}function XD(e,t,n,r,i,a){let{x:o,y:s}=t.internals.positionAbsolute,c=$E(e),l=yE(e,n),u=QE(e.extent)?kE(l,e.extent,c):l,d=kE({x:o+u.x,y:s+u.y},r,c);e.extent===`parent`&&(d=AE(d,c,t));let f=YD(e,i,a),p=t.internals.z??0;return{x:d.x,y:d.y,z:p>=f?p+1:f}}function ZD(e,t,n,r=[0,0]){let i=[],a=new Map;for(let n of e){let e=t.get(n.parentId);if(!e)continue;let r=RE(a.get(n.parentId)?.expandedRect??IE(e),n.rect);a.set(n.parentId,{expandedRect:r,parent:e})}return a.size>0&&a.forEach(({expandedRect:t,parent:a},o)=>{let s=a.internals.positionAbsolute,c=$E(a),l=a.origin??r,u=t.x0||d>0||m||h)&&(i.push({id:o,type:`position`,position:{x:a.position.x-u+m,y:a.position.y-d+h}}),n.get(o)?.forEach(t=>{e.some(e=>e.id===t.id)||i.push({id:t.id,type:`position`,position:{x:t.position.x+u,y:t.position.y+d}})})),(c.width0){let e=ZD(f,t,n,i);l.push(...e)}return{changes:l,updatedInternals:c}}async function $D({delta:e,panZoom:t,transform:n,translateExtent:r,width:i,height:a}){if(!t||!e.x&&!e.y)return!1;let o=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[i,a]],r);return!!o&&(o.x!==n[0]||o.y!==n[1]||o.k!==n[2])}function eO(e,t,n,r,i,a){let o=i,s=r.get(o)||new Map;r.set(o,s.set(n,t)),o=`${i}-${e}`;let c=r.get(o)||new Map;if(r.set(o,c.set(n,t)),a){o=`${i}-${e}-${a}`;let s=r.get(o)||new Map;r.set(o,s.set(n,t))}}function tO(e,t,n){e.clear(),t.clear();for(let r of n){let{source:n,target:i,sourceHandle:a=null,targetHandle:o=null}=r,s={edgeId:r.id,source:n,target:i,sourceHandle:a,targetHandle:o},c=`${n}-${a}--${i}-${o}`;eO(`source`,s,`${i}-${o}--${n}-${a}`,e,n,a),eO(`target`,s,c,e,i,o),t.set(r.id,r)}}function nO(e,t){if(!e.parentId)return!1;let n=t.get(e.parentId);return n?n.selected?!0:nO(n,t):!1}function rO(e,t,n){let r=e;do{if(r?.matches?.(t))return!0;if(r===n)return!1;r=r?.parentElement}while(r);return!1}function iO(e,t,n,r){let i=new Map;for(let[a,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!nO(o,e))&&(o.draggable||t&&o.draggable===void 0)){let t=e.get(a);t&&i.set(a,{id:a,position:t.position||{x:0,y:0},distance:{x:n.x-t.internals.positionAbsolute.x,y:n.y-t.internals.positionAbsolute.y},extent:t.extent,parentId:t.parentId,origin:t.origin,expandParent:t.expandParent,internals:{positionAbsolute:t.internals.positionAbsolute||{x:0,y:0}},measured:{width:t.measured.width??0,height:t.measured.height??0}})}return i}function aO({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){let i=[];for(let[e,a]of t){let t=n.get(e)?.internals.userNode;t&&i.push({...t,position:a.position,dragging:r})}if(!e)return[i[0],i];let a=n.get(e)?.internals.userNode;return[a?{...a,position:t.get(e)?.position||a.position,dragging:r}:i[0],i]}function oO({dragItems:e,snapGrid:t,x:n,y:r}){let i=e.values().next().value;if(!i)return null;let a={x:n-i.distance.x,y:r-i.distance.y},o=WE(a,t);return{x:o.x-a.x,y:o.y-a.y}}function sO({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:i}){let a={x:null,y:null},o=0,s=new Map,c=!1,l={x:0,y:0},u=null,d=!1,f=null,p=!1,m=!1,h=null;function g({noDragClassName:g,handleSelector:_,domNode:v,isSelectable:y,nodeId:b,nodeClickDistance:x=0}){f=DS(v);function S({x:e,y:n}){let{nodeLookup:i,nodeExtent:o,snapGrid:c,snapToGrid:l,nodeOrigin:u,onNodeDrag:d,onSelectionDrag:f,onError:p,updateNodePositions:g}=t();a={x:e,y:n};let _=!1,v=s.size>1,y=v&&o?PE(xE(s)):null,x=v&&l?oO({dragItems:s,snapGrid:c,x:e,y:n}):null;for(let[t,r]of s){if(!i.has(t))continue;let a={x:e-r.distance.x,y:n-r.distance.y};l&&(a=x?{x:Math.round(a.x+x.x),y:Math.round(a.y+x.y)}:WE(a,c));let s=null;if(v&&o&&!r.extent&&y){let{positionAbsolute:e}=r.internals,t=e.x-y.x+o[0][0],n=e.x+r.measured.width-y.x2+o[1][0],i=e.y-y.y+o[0][1],a=e.y+r.measured.height-y.y2+o[1][1];s=[[t,i],[n,a]]}let{position:d,positionAbsolute:f}=EE({nodeId:t,nextPosition:a,nodeLookup:i,nodeExtent:s||o,nodeOrigin:u,onError:p});_=_||r.position.x!==d.x||r.position.y!==d.y,r.position=d,r.internals.positionAbsolute=f}if(m||=_,_&&(g(s,!0),h&&(r||d||!b&&f))){let[e,t]=aO({nodeId:b,dragItems:s,nodeLookup:i});r?.(h,s,e,t),d?.(h,e,t),b||f?.(h,t)}}async function C(){if(!u)return;let{transform:e,panBy:n,autoPanSpeed:r,autoPanOnNodeDrag:i}=t();if(!i){c=!1,cancelAnimationFrame(o);return}let[s,d]=ME(l,u,r);(s!==0||d!==0)&&(a.x=(a.x??0)-s/e[2],a.y=(a.y??0)-d/e[2],await n({x:s,y:d})&&S(a)),o=requestAnimationFrame(C)}function w(r){let{nodeLookup:i,multiSelectionActive:o,nodesDraggable:c,transform:l,snapGrid:f,snapToGrid:p,selectNodesOnDrag:m,onNodeDragStart:h,onSelectionDragStart:g,unselectNodesAndEdges:_}=t();d=!0,(!m||!y)&&!o&&b&&(i.get(b)?.selected||_()),y&&m&&b&&e?.(b);let v=oD(r.sourceEvent,{transform:l,snapGrid:f,snapToGrid:p,containerBounds:u});if(a=v,s=iO(i,c,v,b),s.size>0&&(n||h||!b&&g)){let[e,t]=aO({nodeId:b,dragItems:s,nodeLookup:i});n?.(r.sourceEvent,s,e,t),h?.(r.sourceEvent,e,t),b||g?.(r.sourceEvent,t)}}let T=HS().clickDistance(x).on(`start`,e=>{let{domNode:n,nodeDragThreshold:r,transform:i,snapGrid:o,snapToGrid:s}=t();u=n?.getBoundingClientRect()||null,p=!1,m=!1,h=e.sourceEvent,r===0&&w(e),a=oD(e.sourceEvent,{transform:i,snapGrid:o,snapToGrid:s,containerBounds:u}),l=fD(e.sourceEvent,u)}).on(`drag`,e=>{let{autoPanOnNodeDrag:n,transform:r,snapGrid:i,snapToGrid:o,nodeDragThreshold:f,nodeLookup:m}=t(),g=oD(e.sourceEvent,{transform:r,snapGrid:i,snapToGrid:o,containerBounds:u});if(h=e.sourceEvent,(e.sourceEvent.type===`touchmove`&&e.sourceEvent.touches.length>1||b&&!m.has(b))&&(p=!0),!p){if(!c&&n&&d&&(c=!0,C()),!d){let t=fD(e.sourceEvent,u),n=t.x-l.x,r=t.y-l.y;Math.sqrt(n*n+r*r)>f&&w(e)}(a.x!==g.xSnapped||a.y!==g.ySnapped)&&s&&d&&(l=fD(e.sourceEvent,u),S(g))}}).on(`end`,e=>{if(!d||p){p&&s.size>0&&t().updateNodePositions(s,!1);return}if(c=!1,d=!1,cancelAnimationFrame(o),s.size>0){let{nodeLookup:n,updateNodePositions:r,onNodeDragStop:a,onSelectionDragStop:o}=t();if(m&&=(r(s,!1),!1),i||a||!b&&o){let[t,r]=aO({nodeId:b,dragItems:s,nodeLookup:n,dragging:!1});i?.(e.sourceEvent,s,t,r),a?.(e.sourceEvent,t,r),b||o?.(e.sourceEvent,r)}}}).filter(e=>{let t=e.target;return!e.button&&(!g||!rO(t,`.${g}`,v))&&(!_||rO(t,_,v))});f.call(T)}function _(){f?.on(`.drag`,null)}return{update:g,destroy:_}}function cO(e,t,n){let r=[],i={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(let e of t.values())BE(i,IE(e))>0&&r.push(e);return r}var lO=250;function uO(e,t,n,r){let i=[],a=1/0,o=cO(e,n,t+lO);for(let n of o){let o=[...n.internals.handleBounds?.source??[],...n.internals.handleBounds?.target??[]];for(let s of o){if(r.nodeId===s.nodeId&&r.type===s.type&&r.id===s.id)continue;let{x:o,y:c}=PD(n,s,s.position,!0),l=Math.sqrt((o-e.x)**2+(c-e.y)**2);l>t||(l1){let e=r.type===`source`?`target`:`source`;return i.find(t=>t.type===e)??i[0]}return i[0]}function dO(e,t,n,r,i,a=!1){let o=r.get(e);if(!o)return null;let s=i===`strict`?o.internals.handleBounds?.[t]:[...o.internals.handleBounds?.source??[],...o.internals.handleBounds?.target??[]],c=(n?s?.find(e=>e.id===n):s?.[0])??null;return c&&a?{...c,...PD(o,c,c.position,!0)}:c}function fO(e,t){return e||(t?.classList.contains(`target`)?`target`:t?.classList.contains(`source`)?`source`:null)}function pO(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}var mO=()=>!0;function hO(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:a,isTarget:o,domNode:s,nodeLookup:c,lib:l,autoPanOnConnect:u,flowId:d,panBy:f,cancelConnection:p,onConnectStart:m,onConnect:h,onConnectEnd:g,isValidConnection:_=mO,onReconnectEnd:v,updateConnection:y,getTransform:b,getFromHandle:x,autoPanSpeed:S,dragThreshold:C=1,handleDomNode:w}){let T=cD(e.target),E=0,D,{x:O,y:k}=fD(e),A=fO(a,w),j=s?.getBoundingClientRect(),M=!1;if(!j||!A)return;let N=dO(i,A,r,c,t);if(!N)return;let P=fD(e,j),F=!1,I=null,L=!1,R=null;function z(){if(!u||!j)return;let[e,t]=ME(P,j,S);f({x:e,y:t}),E=requestAnimationFrame(z)}let B={...N,nodeId:i,type:A,position:N.position},ee=c.get(i),V={inProgress:!0,isValid:null,from:PD(ee,B,$.Left,!0),fromHandle:B,fromPosition:B.position,fromNode:ee,to:P,toHandle:null,toPosition:hE[B.position],toNode:null,pointer:P};function H(){M=!0,y(V),m?.(e,{nodeId:i,handleId:r,handleType:A})}C===0&&H();function te(e){if(!M){let{x:t,y:n}=fD(e),r=t-O,i=n-k;if(!(r*r+i*i>C*C))return;H()}if(!x()||!B){ne(e);return}let a=b();P=fD(e,j),D=uO(GE(P,a,!1,[1,1]),n,c,B),F||=(z(),!0);let s=gO(e,{handle:D,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:o?`target`:`source`,isValidConnection:_,doc:T,lib:l,flowId:d,nodeLookup:c});R=s.handleDomNode,I=s.connection,L=pO(!!D,s.isValid);let u=c.get(i),f=u?PD(u,B,$.Left,!0):V.from,p={...V,from:f,isValid:L,to:s.toHandle&&L?KE({x:s.toHandle.x,y:s.toHandle.y},a):P,toHandle:s.toHandle,toPosition:L&&s.toHandle?s.toHandle.position:hE[B.position],toNode:s.toHandle?c.get(s.toHandle.nodeId):null,pointer:P};y(p),V=p}function ne(e){if(!(`touches`in e&&e.touches.length>0)){if(M){(D||R)&&I&&L&&h?.(I);let{inProgress:t,...n}=V,r={...n,toPosition:V.toHandle?V.toPosition:null};g?.(e,r),a&&v?.(e,r)}p(),cancelAnimationFrame(E),F=!1,L=!1,I=null,R=null,T.removeEventListener(`mousemove`,te),T.removeEventListener(`mouseup`,ne),T.removeEventListener(`touchmove`,te),T.removeEventListener(`touchend`,ne)}}T.addEventListener(`mousemove`,te),T.addEventListener(`mouseup`,ne),T.addEventListener(`touchmove`,te),T.addEventListener(`touchend`,ne)}function gO(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:a,doc:o,lib:s,flowId:c,isValidConnection:l=mO,nodeLookup:u}){let d=a===`target`,f=t?o.querySelector(`.${s}-flow__handle[data-id="${c}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:p,y:m}=fD(e),h=o.elementFromPoint(p,m),g=h?.classList.contains(`${s}-flow__handle`)?h:f,_={handleDomNode:g,isValid:!1,connection:null,toHandle:null};if(g){let e=fO(void 0,g),t=g.getAttribute(`data-nodeid`),a=g.getAttribute(`data-handleid`),o=g.classList.contains(`connectable`),s=g.classList.contains(`connectableend`);if(!t||!e)return _;let c={source:d?t:r,sourceHandle:d?a:i,target:d?r:t,targetHandle:d?i:a};_.connection=c,_.isValid=o&&s&&(n===lE.Strict?d&&e===`source`||!d&&e===`target`:t!==r||a!==i)&&l(c),_.toHandle=dO(t,e,a,u,n,!0)}return _}var _O={onPointerDown:hO,isValid:gO};function vO({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){let i=DS(e);function a({translateExtent:e,width:a,height:o,zoomStep:s=1,pannable:c=!0,zoomable:l=!0,inversePan:u=!1}){let d=e=>{if(e.sourceEvent.type!==`wheel`||!t)return;let r=n(),i=e.sourceEvent.ctrlKey&&ZE()?10:1,a=-e.sourceEvent.deltaY*(e.sourceEvent.deltaMode===1?.05:e.sourceEvent.deltaMode?1:.002)*s,o=r[2]*2**(a*i);t.scaleTo(o)},f=[0,0],p=iE().on(`start`,e=>{(e.sourceEvent.type===`mousedown`||e.sourceEvent.type===`touchstart`)&&(f=[e.sourceEvent.clientX??e.sourceEvent.touches[0].clientX,e.sourceEvent.clientY??e.sourceEvent.touches[0].clientY])}).on(`zoom`,c?i=>{let s=n();if(i.sourceEvent.type!==`mousemove`&&i.sourceEvent.type!==`touchmove`||!t)return;let c=[i.sourceEvent.clientX??i.sourceEvent.touches[0].clientX,i.sourceEvent.clientY??i.sourceEvent.touches[0].clientY],l=[c[0]-f[0],c[1]-f[1]];f=c;let d=r()*Math.max(s[2],Math.log(s[2]))*(u?-1:1),p={x:s[0]-l[0]*d,y:s[1]-l[1]*d},m=[[0,0],[a,o]];t.setViewportConstrained({x:p.x,y:p.y,zoom:s[2]},m,e)}:null).on(`zoom.wheel`,l?d:null);i.call(p,{})}function o(){i.on(`zoom`,null)}return{update:a,destroy:o,pointer:kS}}var yO=e=>({x:e.x,y:e.y,zoom:e.k}),bO=({x:e,y:t,zoom:n})=>JT.translate(e,t).scale(n),xO=(e,t)=>e.target.closest(`.${t}`),SO=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),CO=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,wO=(e,t=0,n=CO,r=()=>{})=>{let i=typeof t==`number`&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on(`end`,r):e},TO=e=>{let t=e.ctrlKey&&ZE()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function EO({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:a,zoomOnPinch:o,onPanZoomStart:s,onPanZoom:c,onPanZoomEnd:l}){return u=>{if(xO(u,t))return u.ctrlKey&&u.preventDefault(),!1;u.preventDefault(),u.stopImmediatePropagation();let d=n.property(`__zoom`).k||1;if(u.ctrlKey&&o){let e=kS(u),t=d*2**TO(u);r.scaleTo(n,t,e,u);return}let f=u.deltaMode===1?20:1,p=i===uE.Vertical?0:u.deltaX*f,m=i===uE.Horizontal?0:u.deltaY*f;!ZE()&&u.shiftKey&&i!==uE.Vertical&&(p=u.deltaY*f,m=0),r.translateBy(n,-(p/d)*a,-(m/d)*a,{internal:!0});let h=yO(n.property(`__zoom`));clearTimeout(e.panScrollTimeout),e.isPanScrolling?c?.(u,h):(e.isPanScrolling=!0,s?.(u,h)),e.panScrollTimeout=setTimeout(()=>{l?.(u,h),e.isPanScrolling=!1},150)}}function DO({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){let a=r.type===`wheel`,o=!t&&a&&!r.ctrlKey,s=xO(r,e);if(r.ctrlKey&&a&&s&&r.preventDefault(),o||s)return null;r.preventDefault(),n.call(this,r,i)}}function OO({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;let i=yO(r.transform);e.mouseButton=r.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=i,r.sourceEvent?.type===`mousedown`&&t(!0),n&&n?.(r.sourceEvent,i)}}function kO({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return a=>{e.usedRightMouseButton=!!(n&&SO(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),i&&!a.sourceEvent?.internal&&i?.(a.sourceEvent,yO(a.transform))}}function AO({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:a}){return o=>{if(!o.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&SO(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&a(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){let t=yO(o.transform);e.prevViewport=t,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i?.(o.sourceEvent,t)},n?150:0)}}}function jO({panActivationKeyPressed:e,zoomActivationKeyPressed:t,zoomOnScroll:n,zoomOnPinch:r,panOnDrag:i,panOnScroll:a,zoomOnDoubleClick:o,userSelectionActive:s,noWheelClassName:c,noPanClassName:l,lib:u,connectionInProgress:d}){return f=>{let p=t||n,m=r&&f.ctrlKey,h=f.type===`wheel`;if(f.button===1&&f.type===`mousedown`&&(xO(f,`${u}-flow__node`)||xO(f,`${u}-flow__edge`)||xO(f,`${u}-flow__selection`)||xO(f,`${u}-flow__nodesselection`)))return!0;if(!i&&!p&&!a&&!o&&!r||s||d&&!h||xO(f,c)&&h||xO(f,l)&&(!h||a&&h&&!t)||!r&&f.ctrlKey&&h)return!1;if(!r&&f.type===`touchstart`&&f.touches?.length>1)return f.preventDefault(),!1;if(!p&&!a&&!m&&h||!i&&(f.type===`mousedown`||f.type===`touchstart`)||Array.isArray(i)&&!i.includes(f.button)&&f.type===`mousedown`)return!1;let g=Array.isArray(i)&&i.includes(f.button)||!f.button||f.button<=1;return(!f.ctrlKey||h||e)&&g}}function MO({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:i,onPanZoom:a,onPanZoomStart:o,onPanZoomEnd:s,onDraggingChange:c}){let l={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},u=e.getBoundingClientRect(),d=[[0,0],[u.width,u.height]];(typeof ResizeObserver<`u`?new ResizeObserver(e=>{let t=e[0];t&&(d=[[0,0],[t.contentRect.width,t.contentRect.height]])}):null)?.observe(e);let f=iE().extent(()=>d).scaleExtent([t,n]).translateExtent(r),p=DS(e).call(f);y({x:i.x,y:i.y,zoom:OE(i.zoom,t,n)},[[0,0],[u.width,u.height]],r);let m=p.on(`wheel.zoom`),h=p.on(`dblclick.zoom`);f.wheelDelta(TO);async function g(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?GC:aw).transform(wO(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function _({noWheelClassName:e,noPanClassName:t,onPaneContextMenu:n,userSelectionActive:r,panOnScroll:i,panOnDrag:u,panOnScrollMode:d,panOnScrollSpeed:g,preventScrolling:_,zoomOnPinch:y,zoomOnScroll:b,zoomOnDoubleClick:x,panActivationKeyPressed:S=!1,zoomActivationKeyPressed:C,lib:w,onTransformChange:T,connectionInProgress:E,paneClickDistance:D,selectionOnDrag:O}){r&&!l.isZoomingOrPanning&&v();let k=i&&!C&&!r;f.clickDistance(O?1/0:!HE(D)||D<0?0:D);let A=k?EO({zoomPanValues:l,noWheelClassName:e,d3Selection:p,d3Zoom:f,panOnScrollMode:d,panOnScrollSpeed:g,zoomOnPinch:y,onPanZoomStart:o,onPanZoom:a,onPanZoomEnd:s}):DO({noWheelClassName:e,preventScrolling:_,d3ZoomHandler:m});p.on(`wheel.zoom`,A,{passive:!1});let j=OO({zoomPanValues:l,onDraggingChange:c,onPanZoomStart:o});f.on(`start`,j);let M=kO({zoomPanValues:l,panOnDrag:u,onPaneContextMenu:!!n,onPanZoom:a,onTransformChange:T});f.on(`zoom`,M);let N=AO({zoomPanValues:l,panOnDrag:u,panOnScroll:i,onPaneContextMenu:n,onPanZoomEnd:s,onDraggingChange:c});f.on(`end`,N);let P=jO({panActivationKeyPressed:S,zoomActivationKeyPressed:C,panOnDrag:u,zoomOnScroll:b,panOnScroll:i,zoomOnDoubleClick:x,zoomOnPinch:y,userSelectionActive:r,noPanClassName:t,noWheelClassName:e,lib:w,connectionInProgress:E});f.filter(P),x?p.on(`dblclick.zoom`,h):p.on(`dblclick.zoom`,null)}function v(){f.on(`zoom`,null)}async function y(e,t,n){let r=bO(e),i=f?.constrain()(r,t,n);return i&&await g(i),i}async function b(e,t){let n=bO(e);return await g(n,t),n}function x(e){if(p){let t=bO(e),n=p.property(`__zoom`);(n.k!==e.zoom||n.x!==e.x||n.y!==e.y)&&f?.transform(p,t,null,{sync:!0})}}function S(){let e=p?YT(p.node()):{x:0,y:0,k:1};return{x:e.x,y:e.y,zoom:e.k}}async function C(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?GC:aw).scaleTo(wO(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}async function w(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?GC:aw).scaleBy(wO(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function T(e){f?.scaleExtent(e)}function E(e){f?.translateExtent(e)}function D(e){let t=!HE(e)||e<0?0:e;f?.clickDistance(t)}return{update:_,destroy:v,setViewport:b,setViewportConstrained:y,getViewport:S,scaleTo:C,scaleBy:w,setScaleExtent:T,setTranslateExtent:E,syncViewport:x,setClickDistance:D}}var NO;(function(e){e.Line=`line`,e.Handle=`handle`})(NO||={});function PO({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:i,affectsY:a}){let o=e-t,s=n-r,c=[o>0?1:o<0?-1:0,s>0?1:s<0?-1:0];return o&&i&&(c[0]*=-1),s&&a&&(c[1]*=-1),c}function FO(e){return{isHorizontal:e.includes(`right`)||e.includes(`left`),isVertical:e.includes(`bottom`)||e.includes(`top`),affectsX:e.includes(`left`),affectsY:e.includes(`top`)}}function IO(e,t){return Math.max(0,t-e)}function LO(e,t){return Math.max(0,e-t)}function RO(e,t,n){return Math.max(0,t-e,e-n)}function zO(e,t){return e?!t:t}function BO(e,t,n,r,i,a,o,s){let{affectsX:c,affectsY:l}=t,{isHorizontal:u,isVertical:d}=t,f=u&&d,{xSnapped:p,ySnapped:m}=n,{minWidth:h,maxWidth:g,minHeight:_,maxHeight:v}=r,{x:y,y:b,width:x,height:S,aspectRatio:C}=e,w=Math.floor(u?p-e.pointerX:0),T=Math.floor(d?m-e.pointerY:0),E=x+(c?-w:w),D=S+(l?-T:T),O=-a[0]*x,k=-a[1]*S,A=RO(E,h,g),j=RO(D,_,v);if(o){let e=0,t=0;c&&w<0?e=IO(y+w+O,o[0][0]):!c&&w>0&&(e=LO(y+E+O,o[1][0])),l&&T<0?t=IO(b+T+k,o[0][1]):!l&&T>0&&(t=LO(b+D+k,o[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(s){let e=0,t=0;c&&w>0?e=LO(y+w,s[0][0]):!c&&w<0&&(e=IO(y+E,s[1][0])),l&&T>0?t=LO(b+T,s[0][1]):!l&&T<0&&(t=IO(b+D,s[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(i){if(u){let e=RO(E/C,_,v)*C;if(A=Math.max(A,e),o){let e=0;e=!c&&!l||c&&!l&&f?LO(b+k+E/C,o[1][1])*C:IO(b+k+(c?w:-w)/C,o[0][1])*C,A=Math.max(A,e)}if(s){let e=0;e=!c&&!l||c&&!l&&f?IO(b+E/C,s[1][1])*C:LO(b+(c?w:-w)/C,s[0][1])*C,A=Math.max(A,e)}}if(d){let e=RO(D*C,h,g)/C;if(j=Math.max(j,e),o){let e=0;e=!c&&!l||l&&!c&&f?LO(y+D*C+O,o[1][0])/C:IO(y+(l?T:-T)*C+O,o[0][0])/C,j=Math.max(j,e)}if(s){let e=0;e=!c&&!l||l&&!c&&f?IO(y+D*C,s[1][0])/C:LO(y+(l?T:-T)*C,s[0][0])/C,j=Math.max(j,e)}}}T+=T<0?j:-j,w+=w<0?A:-A,i&&(f?E>D*C?T=(zO(c,l)?-w:w)/C:w=(zO(c,l)?-T:T)*C:u?(T=w/C,l=c):(w=T*C,c=l));let M=c?y+w:y,N=l?b+T:b;return{width:x+(c?-w:w),height:S+(l?-T:T),x:a[0]*w*(c?-1:1)+M,y:a[1]*T*(l?-1:1)+N}}var VO={width:0,height:0,x:0,y:0},HO={...VO,pointerX:0,pointerY:0,aspectRatio:1};function UO(e,t,n){let r=t.position.x+e.position.x,i=t.position.y+e.position.y,a=e.measured.width??0,o=e.measured.height??0,s=n[0]*a,c=n[1]*o;return[[r-s,i-c],[r+a-s,i+o-c]]}function WO({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:i}){let a=DS(e),o={controlDirection:FO(`bottom-right`),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function s({controlPosition:e,boundaries:s,keepAspectRatio:c,resizeDirection:l,onResizeStart:u,onResize:d,onResizeEnd:f,shouldResize:p}){let m={...VO},h={...HO};o={boundaries:s,resizeDirection:l,keepAspectRatio:c,controlDirection:FO(e)};let g,_=null,v=[],y,b,x,S=HS().on(`start`,e=>{let{nodeLookup:r,transform:i,snapGrid:a,snapToGrid:o,nodeOrigin:s,paneDomNode:c}=n();if(g=r.get(t),!g)return;_=c?.getBoundingClientRect()??null;let{xSnapped:l,ySnapped:d}=oD(e.sourceEvent,{transform:i,snapGrid:a,snapToGrid:o,containerBounds:_});m={width:g.measured.width??0,height:g.measured.height??0,x:g.position.x??0,y:g.position.y??0},h={...m,pointerX:l,pointerY:d,aspectRatio:m.width/m.height},y=void 0,b=QE(g.extent)?g.extent:void 0,g.parentId&&(g.extent===`parent`||g.expandParent)&&(y=r.get(g.parentId)),y&&g.extent===`parent`&&(b=[[0,0],[y.measured.width,y.measured.height]]),v=[],x=void 0;for(let[e,n]of r)if(n.parentId===t&&(v.push({id:e,position:{...n.position},extent:n.extent}),n.extent===`parent`||n.expandParent)){let e=UO(n,g,n.origin??s);x=x?[[Math.min(e[0][0],x[0][0]),Math.min(e[0][1],x[0][1])],[Math.max(e[1][0],x[1][0]),Math.max(e[1][1],x[1][1])]]:e}u?.(e,{...m})}).on(`drag`,e=>{let{transform:t,snapGrid:i,snapToGrid:a,nodeOrigin:s}=n(),c=oD(e.sourceEvent,{transform:t,snapGrid:i,snapToGrid:a,containerBounds:_}),l=[];if(!g)return;let{x:u,y:f,width:S,height:C}=m,w={},T=g.origin??s,{width:E,height:D,x:O,y:k}=BO(h,o.controlDirection,c,o.boundaries,o.keepAspectRatio,T,b,x),A=E!==S,j=D!==C,M=O!==u&&A,N=k!==f&&j;if(!M&&!N&&!A&&!j)return;let P={prevValues:{...m},startX:h.x,startY:h.y,childNodes:v.map(e=>({...e,position:{...e.position}}))};if((M||N||T[0]===1||T[1]===1)&&(w.x=M?O:m.x,w.y=N?k:m.y,m.x=w.x,m.y=w.y,v.length>0)){let e=O-u,t=k-f;for(let n of v)n.position={x:n.position.x-e+T[0]*(E-S),y:n.position.y-t+T[1]*(D-C)},l.push(n)}if((A||j)&&(w.width=A&&(!o.resizeDirection||o.resizeDirection===`horizontal`)?E:m.width,w.height=j&&(!o.resizeDirection||o.resizeDirection===`vertical`)?D:m.height,m.width=w.width,m.height=w.height),y&&g.expandParent){let e=T[0]*(w.width??0);w.x&&w.x{e.position=P.childNodes[t].position});return}d?.(e,I),r(w,l)}).on(`end`,e=>{f?.(e,{...m}),i?.({...m})});a.call(S)}function c(){a.on(`.drag`,null)}return{update:s,destroy:c}}var GO=s((e=>{var t=f();function n(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var r=typeof Object.is==`function`?Object.is:n,i=t.useState,a=t.useEffect,o=t.useLayoutEffect,s=t.useDebugValue;function c(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),c=r[0].inst,u=r[1];return o(function(){c.value=n,c.getSnapshot=t,l(c)&&u({inst:c})},[e,n,t]),a(function(){return l(c)&&u({inst:c}),e(function(){l(c)&&u({inst:c})})},[e]),s(n),n}function l(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch{return!0}}function u(e,t){return t()}var d=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?u:c;e.useSyncExternalStore=t.useSyncExternalStore===void 0?d:t.useSyncExternalStore})),KO=s(((e,t)=>{t.exports=GO()})),qO=s((e=>{var t=f(),n=KO();function r(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var i=typeof Object.is==`function`?Object.is:r,a=n.useSyncExternalStore,o=t.useRef,s=t.useEffect,c=t.useMemo,l=t.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,u){var d=o(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=c(function(){function e(e){if(!a){if(a=!0,o=e,e=r(e),u!==void 0&&f.hasValue){var t=f.value;if(u(t,e))return s=t}return s=e}if(t=s,i(o,e))return t;var n=r(e);return u!==void 0&&u(t,n)?(o=e,t):(o=e,s=n)}var a=!1,o,s,c=n===void 0?null:n;return[function(){return e(t())},c===null?void 0:function(){return e(c())}]},[t,n,r,u]);var p=a(e,d[0],d[1]);return s(function(){f.hasValue=!0,f.value=p},[p]),l(p),p}})),JO=u(s(((e,t)=>{t.exports=qO()}))(),1),YO=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e)),destroy:()=>{n.clear()}},o=t=e(r,i,a);return a},XO=e=>e?YO(e):YO,{useDebugValue:ZO}=y.default,{useSyncExternalStoreWithSelector:QO}=JO.default,$O=e=>e;function ek(e,t=$O,n){let r=QO(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return ZO(r),r}var tk=(e,t)=>{let n=XO(e),r=(e,r=t)=>ek(n,e,r);return Object.assign(r,n),r},nk=(e,t)=>e?tk(e,t):tk;function rk(e,t){if(Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[n,r]of e)if(!Object.is(r,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}var ik=(0,y.createContext)(null),ak=ik.Provider,ok=aE.error001(`react`);function sk(e,t){let n=(0,y.useContext)(ik);if(n===null)throw Error(ok);return ek(n,e,t)}function ck(){let e=(0,y.useContext)(ik);if(e===null)throw Error(ok);return(0,y.useMemo)(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}var lk={display:`none`},uk={position:`absolute`,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0px, 0px, 0px, 0px)`,clipPath:`inset(100%)`},dk=`react-flow__node-desc`,fk=`react-flow__edge-desc`,pk=`react-flow__aria-live`,mk=e=>e.ariaLiveMessage,hk=e=>e.ariaLabelConfig;function gk({rfId:e}){let t=sk(mk);return(0,K.jsx)(`div`,{id:`${pk}-${e}`,"aria-live":`assertive`,"aria-atomic":`true`,style:uk,children:t})}function _k({rfId:e,disableKeyboardA11y:t}){let n=sk(hk);return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`div`,{id:`${dk}-${e}`,style:lk,children:t?n[`node.a11yDescription.default`]:n[`node.a11yDescription.keyboardDisabled`]}),(0,K.jsx)(`div`,{id:`${fk}-${e}`,style:lk,children:n[`edge.a11yDescription.default`]}),!t&&(0,K.jsx)(gk,{rfId:e})]})}var vk=(0,y.forwardRef)(({position:e=`top-left`,children:t,className:n,style:r,...i},a)=>{let o=`${e}`.split(`-`);return(0,K.jsx)(`div`,{className:Sb([`react-flow__panel`,n,...o]),style:r,ref:a,...i,children:t})});vk.displayName=`Panel`;var yk=`https://reactflow.dev?utm_source=attribution`;function bk({proOptions:e,position:t=`bottom-right`}){return(0,y.useEffect)(()=>{},[]),e?.hideAttribution?null:(0,K.jsx)(vk,{position:t,className:`react-flow__attribution`,"data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${yk}`,children:(0,K.jsx)(`a`,{href:yk,target:`_blank`,rel:`noopener noreferrer`,"aria-label":`React Flow attribution`,children:`React Flow`})})}var xk=e=>{let t=[],n=[];for(let[,n]of e.nodeLookup)n.selected&&t.push(n.internals.userNode);for(let[,t]of e.edgeLookup)t.selected&&n.push(t);return{selectedNodes:t,selectedEdges:n}},Sk=e=>e.id;function Ck(e,t){return rk(e.selectedNodes.map(Sk),t.selectedNodes.map(Sk))&&rk(e.selectedEdges.map(Sk),t.selectedEdges.map(Sk))}function wk({onSelectionChange:e}){let t=ck(),{selectedNodes:n,selectedEdges:r}=sk(xk,Ck);return(0,y.useEffect)(()=>{let i={nodes:n,edges:r};e?.(i),t.getState().onSelectionChangeHandlers.forEach(e=>e(i))},[n,r,e]),null}var Tk=e=>!!e.onSelectionChangeHandlers;function Ek({onSelectionChange:e}){let t=sk(Tk);return e||t?(0,K.jsx)(wk,{onSelectionChange:e}):null}var Dk=[0,0],Ok={x:0,y:0,zoom:1},kk=[...`nodes.edges.defaultNodes.defaultEdges.onConnect.onConnectStart.onConnectEnd.onClickConnectStart.onClickConnectEnd.nodesDraggable.autoPanOnNodeFocus.nodesConnectable.nodesFocusable.edgesFocusable.edgesReconnectable.elevateNodesOnSelect.elevateEdgesOnSelect.minZoom.maxZoom.nodeExtent.onNodesChange.onEdgesChange.elementsSelectable.connectionMode.snapGrid.snapToGrid.translateExtent.connectOnClick.defaultEdgeOptions.fitView.fitViewOptions.onNodesDelete.onEdgesDelete.onDelete.onNodeDrag.onNodeDragStart.onNodeDragStop.onSelectionDrag.onSelectionDragStart.onSelectionDragStop.onMoveStart.onMove.onMoveEnd.noPanClassName.nodeOrigin.autoPanOnConnect.autoPanOnNodeDrag.onError.connectionRadius.isValidConnection.selectNodesOnDrag.nodeDragThreshold.connectionDragThreshold.onBeforeDelete.debug.autoPanSpeed.ariaLabelConfig.zIndexMode`.split(`.`),`rfId`],Ak=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),jk={translateExtent:oE,nodeOrigin:Dk,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:`nopan`,rfId:`1`};function Mk(e){let{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:i,setTranslateExtent:a,setNodeExtent:o,reset:s,setDefaultNodesAndEdges:c}=sk(Ak,rk),l=ck();(0,y.useEffect)(()=>(c(e.defaultNodes,e.defaultEdges),()=>{u.current=jk,s()}),[]);let u=(0,y.useRef)(jk);return(0,y.useEffect)(()=>{for(let s of kk){let c=e[s];c!==u.current[s]&&e[s]!==void 0&&(s===`nodes`?t(c):s===`edges`?n(c):s===`minZoom`?r(c):s===`maxZoom`?i(c):s===`translateExtent`?a(c):s===`nodeExtent`?o(c):s===`ariaLabelConfig`?l.setState({ariaLabelConfig:iD(c)}):s===`fitView`?l.setState({fitViewQueued:c}):s===`fitViewOptions`?l.setState({fitViewOptions:c}):l.setState({[s]:c}))}u.current=e},kk.map(t=>e[t])),null}function Nk(){return typeof window>`u`||!window.matchMedia?null:window.matchMedia(`(prefers-color-scheme: dark)`)}function Pk(e){let[t,n]=(0,y.useState)(e===`system`?null:e);return(0,y.useEffect)(()=>{if(e!==`system`){n(e);return}let t=Nk(),r=()=>n(t?.matches?`dark`:`light`);return r(),t?.addEventListener(`change`,r),()=>{t?.removeEventListener(`change`,r)}},[e]),t===null?Nk()?.matches?`dark`:`light`:t}var Fk=typeof document<`u`?document:null;function Ik(e=null,t={target:Fk,actInsideInputWithModifier:!0}){let[n,r]=(0,y.useState)(!1),i=(0,y.useRef)(!1),a=(0,y.useRef)(new Set([])),[o,s]=(0,y.useMemo)(()=>{if(e!==null){let t=(Array.isArray(e)?e:[e]).filter(e=>typeof e==`string`).map(e=>e.replace(/\+/g,` + opacity-0 group-hover:opacity-100`,title:a?`Copied!`:`Copy message`,children:a?(0,K.jsx)(au,{className:`h-3.5 w-3.5 text-green-600 dark:text-green-400`}):(0,K.jsx)(Nu,{className:`h-3.5 w-3.5`})})]}),(0,K.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground font-mono`,children:[(0,K.jsx)(`span`,{children:e.created_at?new Date(e.created_at*1e3).toLocaleTimeString():new Date().toLocaleTimeString()}),!o&&e.usage&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`span`,{children:`•`}),(0,K.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,K.jsxs)(`span`,{className:`text-blue-600 dark:text-blue-400`,children:[`↑`,e.usage.input_tokens]}),(0,K.jsxs)(`span`,{className:`text-green-600 dark:text-green-400`,children:[`↓`,e.usage.output_tokens]}),(0,K.jsxs)(`span`,{children:[`(`,e.usage.total_tokens,` tokens)`]})]})]}),!o&&l&&t.length>0&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`span`,{children:`•`}),(0,K.jsxs)(`button`,{onClick:()=>c(!s),className:`flex items-center gap-1 hover:text-foreground transition-colors`,title:`${t.length} tool call${t.length>1?`s`:``} - click to ${s?`hide`:`show`} details`,children:[(0,K.jsx)(ff,{className:`h-3 w-3`}),(0,K.jsx)(`span`,{children:t.length})]})]})]}),!o&&s&&t.length>0&&(0,K.jsx)(`div`,{className:`mt-2 ml-0 p-3 bg-muted/30 rounded-md border border-muted`,children:(0,K.jsx)(`div`,{className:`space-y-2`,children:t.map(e=>{let t=n.find(t=>t.call_id===e.call_id);return(0,K.jsx)(`div`,{className:`text-xs`,children:(0,K.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,K.jsx)(ff,{className:`h-3 w-3 text-muted-foreground mt-0.5 flex-shrink-0`}),(0,K.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,K.jsxs)(`div`,{className:`font-mono text-muted-foreground`,children:[(0,K.jsx)(`span`,{className:`text-blue-600 dark:text-blue-400`,children:e.name}),(0,K.jsx)(`span`,{className:`text-muted-foreground/60 ml-1`,children:e.arguments&&(0,K.jsxs)(`span`,{className:`break-all`,children:[`(`,e.arguments,`)`]})})]}),t&&t.output&&(0,K.jsx)(`div`,{className:`mt-1 pl-5 border-l-2 border-green-600/20`,children:(0,K.jsxs)(`div`,{className:`flex items-start gap-1`,children:[(0,K.jsx)(ru,{className:`h-3 w-3 text-green-600 dark:text-green-400 mt-0.5 flex-shrink-0`}),(0,K.jsx)(`pre`,{className:`font-mono text-muted-foreground whitespace-pre-wrap break-all`,children:t.output.substring(0,200)+(t.output.length>200?`...`:``)})]})}),e.status===`incomplete`&&(0,K.jsx)(`div`,{className:`mt-1 pl-5 border-l-2 border-orange-600/20`,children:(0,K.jsxs)(`div`,{className:`flex items-start gap-1`,children:[(0,K.jsx)(mf,{className:`h-3 w-3 text-orange-600 dark:text-orange-400 mt-0.5 flex-shrink-0`}),(0,K.jsx)(`span`,{className:`font-mono text-orange-600 dark:text-orange-400`,children:`Failed`})]})})]})]})},e.id)})})})]})]})}return e.type===`function_call`||e.type,null}function Xy({selectedAgent:e,onDebugEvent:t}){let n=Q(e=>e.currentConversation),r=Q(e=>e.availableConversations),i=Q(e=>e.chatItems),a=Q(e=>e.isStreaming),o=Q(e=>e.isSubmitting),s=Q(e=>e.loadingConversations),c=Q(e=>e.uiMode),l=Q(e=>e.conversationUsage),u=Q(e=>e.pendingApprovals),d=Q(e=>e.oaiMode),f=Q(e=>e.streamingEnabled),p=Q(e=>e.setCurrentConversation),m=Q(e=>e.setAvailableConversations),h=Q(e=>e.setChatItems),g=Q(e=>e.setIsStreaming),_=Q(e=>e.setIsSubmitting),v=Q(e=>e.setLoadingConversations),b=Q(e=>e.updateConversationUsage),x=Q(e=>e.setPendingApprovals),[S,C]=(0,y.useState)(!1),[w,T]=(0,y.useState)(null),[E,D]=(0,y.useState)(!1),[O,k]=(0,y.useState)(!1),{isCancelling:A,createAbortSignal:j,handleCancel:M,resetCancelling:N}=y_(),{isDragOver:P,droppedFiles:F,clearDroppedFiles:I,dragHandlers:L}=x_({disabled:o||a}),R=(0,y.useRef)(null),z=(0,y.useRef)(null),B=(0,y.useRef)(null),ee=(0,y.useRef)(!1),V=(0,y.useRef)(``),H=(0,y.useRef)([]),te=(0,y.useRef)(0),ne=(0,y.useRef)(new Set),re=(0,y.useCallback)(()=>{for(let e of ne.current)e.abort();ne.current.clear()},[]),ie=(0,y.useCallback)(e=>{let n=new AbortController;ne.current.add(n),R_.getTraceEvents(e,Q.getState().serverCapabilities.trace_retrieval,n.signal).then(e=>{if(!n.signal.aborted)for(let n of e)t(n)}).catch(e=>{b_(e)||console.debug(`Failed to retrieve response traces`,e)}).finally(()=>{ne.current.delete(n)})},[t]),ae=(0,y.useCallback)(()=>{re(),t(`clear`)},[re,t]);(0,y.useEffect)(()=>re,[e?.id,re]);let oe=(0,y.useCallback)((e,t=`in_progress`,n=!1)=>{let r=performance.now();if(!n&&r-te.current{if(n.id!==e||n.type!==`message`)return n;let r=n.content.filter(e=>e.type!==`text`&&e.type!==`output_text`&&e.type!==`refusal`),i=Jy(H.current),o=n.content.filter(e=>e.type===`text`||e.type===`output_text`||e.type===`refusal`);return JSON.stringify(o)===JSON.stringify(i)&&n.status===t?n:(a=!0,{...n,content:[...r,...i],status:t})});a?(te.current=r,h(o)):n&&(te.current=r)},[h]);(0,y.useEffect)(()=>{if(!z.current)return;let e=R.current?.querySelector(`[data-radix-scroll-area-viewport]`),t=!1;if(e){let{scrollTop:n,scrollHeight:r,clientHeight:i}=e,a=r-n-i<100;t=ee.current||a}else t=!0;t&&z.current.scrollIntoView({behavior:a?`instant`:`smooth`}),ee.current&&!a&&(ee.current=!1)},[i,a]),(0,y.useEffect)(()=>{},[a,o]),(0,y.useEffect)(()=>{let n=async(e,n,r)=>{let i=h_(n.id);if(!i||!i.responseId){g(!1);return}try{let a={model:r.id,input:[],stream:!0,conversation:n.id},o=R_.streamAgentExecutionOpenAIDirect(r.id,a,n.id,void 0,i.responseId);te.current=0;for await(let n of o){if(t(n),n.type===`response.completed`){let e=n.response?.usage;e&&(B.current={input_tokens:e.input_tokens,output_tokens:e.output_tokens,total_tokens:e.total_tokens});continue}if(n.type===`response.failed`){let t=n.response?.error,r=t?typeof t==`object`&&`message`in t?t.message:JSON.stringify(t):`Request failed`;if(V.current){oe(e.id,`incomplete`,!0),g(!1);return}let i=Q.getState().chatItems;h(i.map(t=>t.id===e.id&&t.type===`message`?{...t,content:[{type:`text`,text:V.current||r}],status:`incomplete`}:t)),g(!1);return}if(n.type===`response.function_approval.requested`){let t=n;oe(e.id,`in_progress`,!0),x([...Q.getState().pendingApprovals,{request_id:t.request_id,function_call:t.function_call}]);continue}if(n.type===`response.function_approval.responded`){let e=n;x(Q.getState().pendingApprovals.filter(t=>t.request_id!==e.request_id));continue}if(n.type===`error`){let t=n.message||`An error occurred`;if(V.current){oe(e.id,`incomplete`,!0),g(!1);return}let r=Q.getState().chatItems;h(r.map(n=>n.id===e.id&&n.type===`message`?{...n,content:[{type:`text`,text:V.current||t}],status:`incomplete`}:n)),g(!1);return}(n.type===`response.output_text.delta`||n.type===`response.refusal.delta`)&&`delta`in n&&n.delta&&(H.current=a_(H.current,n),V.current=H.current.map(e=>e.text).join(``),oe(e.id))}let s=B.current;oe(e.id,`in_progress`,!0);let c=Q.getState().chatItems;h(c.map(t=>t.id===e.id&&t.type===`message`?{...t,status:`completed`,usage:s||void 0}:t)),g(!1),s&&b(s.total_tokens),B.current=null}catch(t){let n=Q.getState().chatItems;h(n.map(n=>n.id===e.id&&n.type===`message`?{...n,content:[{type:`text`,text:`Error resuming stream: ${t instanceof Error?t.message:`Unknown error`}`}],status:`incomplete`}:n)),g(!1)}};h([]),g(!1),p(void 0),V.current=``,H.current=[],te.current=0,(async()=>{if(e){v(!0);try{try{let{data:r}=await R_.listConversations(e.id);if(m(r),r.length>0){let i=r[0];p(i);try{let r=[],a=!0,o,s=[];for(;a;){let e=await R_.listConversationItems(i.id,{order:`asc`,after:o});r=r.concat(e.data),a=e.has_more,e.metadata?.traces&&e.metadata.traces.length>0&&(s=e.metadata.traces),a&&e.data.length>0&&(o=e.data[e.data.length-1].id)}if(h(r),g(!1),s.length>0){ae();for(let e of s)t({type:`response.trace.completed`,data:e,sequence_number:0})}let c=h_(i.id);if(c&&!c.completed){let t=Ky(c);H.current=t,V.current=t.map(e=>e.text).join(``);let a={id:c.lastMessageId||`assistant-${Date.now()}`,type:`message`,role:`assistant`,content:Jy(t),status:`in_progress`};h([...r,a]),g(!0),setTimeout(()=>{n(a,i,e)},100)}setTimeout(()=>{z.current?.scrollIntoView({behavior:`smooth`})},100)}catch{console.debug(`No items found for conversation ${i.id}, starting fresh`),h([]),g(!1)}return}}catch{}let r=`devui_convs_${e.id}`,i=localStorage.getItem(r);if(i)try{let e=JSON.parse(i);if(e.length>0)try{await R_.listConversationItems(e[0].id),m(e),p(e[0]),h([]),g(!1);return}catch{console.debug(`Cached conversation ${e[0].id} no longer exists, clearing cache`),localStorage.removeItem(r)}}catch{localStorage.removeItem(r)}let a=await R_.createConversation({agent_id:e.id});p(a),m([a]),h([]),g(!1),T(null),localStorage.setItem(r,JSON.stringify([a]))}catch(e){m([]),h([]),g(!1);let t=e instanceof Error?e.message:`Failed to create conversation`;T({message:t,type:`conversation_creation_error`})}finally{v(!1)}}})()},[e,t,ae,oe,h,g,v,m,p,x,b]);let se=(0,y.useCallback)(async()=>{if(e)try{let t=await R_.createConversation({agent_id:e.id});p(t),m([t,...Q.getState().availableConversations]),h([]),g(!1),T(null),Q.setState({conversationUsage:{total_tokens:0,message_count:0}}),V.current=``,H.current=[],ae();let n=`devui_convs_${e.id}`,i=[t,...r];localStorage.setItem(n,JSON.stringify(i))}catch(e){let t=e instanceof Error?e.message:`Failed to create conversation`;T({message:t,type:`conversation_creation_error`})}},[e,r,ae,p,m,h,g]),U=(0,y.useCallback)(async(e,t)=>{if(t&&(t.preventDefault(),t.stopPropagation()),confirm(`Delete this conversation? This cannot be undone.`))try{if(await R_.deleteConversation(e)){let t=r.filter(t=>t.id!==e);if(m(t),n?.id===e){if(t.length>0){let e=t[0];p(e),h([]),g(!1)}else p(void 0),h([]),g(!1),Q.setState({conversationUsage:{total_tokens:0,message_count:0}}),V.current=``,H.current=[]}ae()}}catch{alert(`Failed to delete conversation. Please try again.`)}},[r,n,ae,m,p,h,g]),ce=(0,y.useCallback)(async()=>{if(E||!e)return;D(!0);let t=Q.getState().addToast,n=Q.getState().updateAgent;try{await R_.reloadEntity(e.id),n(await R_.getAgentInfo(e.id)),t({message:`${e.name} has been reloaded successfully`,type:`success`})}catch(e){t({message:`Failed to reload: ${e instanceof Error?e.message:`Failed to reload entity`}`,type:`error`,duration:6e3})}finally{D(!1)}},[E,e]),le=(0,y.useCallback)(async e=>{let n=r.find(t=>t.id===e);if(n){p(n),ae();try{let n=[],r=!0,i,a=[];for(;r;){let t=await R_.listConversationItems(e,{order:`asc`,after:i});n=n.concat(t.data),r=t.has_more,t.metadata?.traces&&t.metadata.traces.length>0&&(a=t.metadata.traces),r&&t.data.length>0&&(i=t.data[t.data.length-1].id)}let o=n;if(h(o),g(!1),a.length>0)for(let e of a)t({type:`response.trace.completed`,data:e,sequence_number:0});Q.setState({conversationUsage:{total_tokens:0,message_count:o.length}});let s=h_(e);if(s?.accumulatedText){let e=Ky(s);H.current=e,V.current=e.map(e=>e.text).join(``);let t={id:`assistant-${Date.now()}`,type:`message`,role:`assistant`,content:Jy(e),status:`in_progress`};h([...o,t]),g(!0)}setTimeout(()=>{z.current?.scrollIntoView({behavior:`smooth`})},100)}catch{console.debug(`No items found for conversation ${e}, starting with empty chat`),h([]),g(!1),Q.setState({conversationUsage:{total_tokens:0,message_count:0}})}V.current=``,H.current=[]}},[r,t,ae,p,h,g]),ue=async(e,t)=>{let r=u.find(t=>t.request_id===e);if(!r)return;let i=Math.floor(Date.now()/1e3),a={id:`user-approval-${Date.now()}`,type:`message`,role:`user`,content:[{type:`function_approval_request`,request_id:e,status:t?`approved`:`rejected`,function_call:r.function_call}],status:`completed`,created_at:i},o=Q.getState().chatItems;h([...o,a]);let s={input:[{type:`message`,role:`user`,content:[{type:`function_approval_response`,request_id:e,approved:t,function_call:r.function_call}]}],conversation_id:n?.id};return x(Q.getState().pendingApprovals.filter(t=>t.request_id!==e)),s},de=(0,y.useCallback)(async r=>{if(!e)return;let i=r.input.some(e=>e.type===`message`&&Array.isArray(e.content)&&e.content.some(e=>e.type===`function_approval_response`)),a=[];for(let e of r.input)if(e.type===`message`&&Array.isArray(e.content)){for(let t of e.content)if(t.type===`input_text`)a.push({type:`text`,text:t.text});else if(t.type===`input_image`)a.push({type:`input_image`,image_url:t.image_url||``,detail:`auto`});else if(t.type===`input_file`){let e=t;a.push({type:`input_file`,file_data:e.file_data,filename:e.filename})}}let o=Math.floor(Date.now()/1e3);if(!i&&a.length>0){let e={id:`user-${Date.now()}`,type:`message`,role:`user`,content:a,status:`completed`,created_at:o};h([...Q.getState().chatItems,e])}g(!0);let s={id:`assistant-${Date.now()}`,type:`message`,role:`assistant`,content:[],status:`in_progress`,created_at:o};h([...Q.getState().chatItems,s]);let c,l;try{let i=n;if(!i)try{i=await R_.createConversation({agent_id:e.id}),p(i),m([i,...Q.getState().availableConversations]),T(null)}catch(e){let t=e instanceof Error?e.message:`Failed to create conversation`;T({message:t,type:`conversation_creation_error`}),_(!1),g(!1);return}i?.id&&R_.clearStreamingState(i.id);let a={input:r.input,conversation_id:i?.id};V.current=``,H.current=[],te.current=0,l=j();let o=R_.streamAgentExecutionOpenAI(e.id,a,l);for await(let e of o){if(t(e),`response`in e&&e.response&&typeof e.response==`object`&&`id`in e.response&&typeof e.response.id==`string`&&(c=e.response.id),e.type===`response.completed`){let t=e.response?.usage;t&&(B.current={input_tokens:t.input_tokens,output_tokens:t.output_tokens,total_tokens:t.total_tokens});continue}if(e.type===`response.failed`){let t=e.response?.error,n=`Request failed`;if(t&&(typeof t==`object`&&`message`in t?(n=t.message,`code`in t&&t.code&&(n+=` (Code: ${t.code})`)):typeof t==`string`&&(n=t)),V.current){oe(s.id,`incomplete`,!0),g(!1);return}let r=Q.getState().chatItems;h(r.map(e=>e.id===s.id&&e.type===`message`?{...e,content:[{type:`text`,text:V.current||n}],status:`incomplete`}:e)),g(!1);return}if(e.type===`response.function_approval.requested`){let t=e;oe(s.id,`in_progress`,!0),x([...Q.getState().pendingApprovals,{request_id:t.request_id,function_call:t.function_call}]);let n=Q.getState().chatItems;h(n.map(e=>e.id===s.id&&e.type===`message`?{...e,content:[...e.content,{type:`function_approval_request`,request_id:t.request_id,status:`pending`,function_call:t.function_call}],status:`in_progress`}:e));continue}if(e.type===`response.function_call_arguments.delta`){let t=e,n=Q.getState().chatItems;h(n.map(e=>e.type===`function_call`&&e.call_id===t.item_id?{...e,arguments:(e.arguments||``)+(t.delta||``)}:e));continue}if(e.type===`response.function_result.complete`){let t=e,n={id:`result-${Date.now()}`,type:`function_call_output`,call_id:t.call_id,output:t.output,status:t.status===`completed`?`completed`:`incomplete`,created_at:Math.floor(Date.now()/1e3)},r=Q.getState().chatItems;h([...r,n]);continue}if(e.type===`error`){let t=e.message||`An error occurred`;if(V.current){oe(s.id,`incomplete`,!0),g(!1);return}let n=Q.getState().chatItems;h(n.map(e=>e.id===s.id&&e.type===`message`?{...e,content:[{type:`text`,text:t}],status:`incomplete`}:e)),g(!1);return}if(e.type===`response.output_item.added`){let t=e.item;if(oe(s.id,`in_progress`,!0),t.type===`function_call`){let e=t,n={id:e.id||`call-${Date.now()}`,type:`function_call`,name:e.name,arguments:e.arguments||``,call_id:e.call_id,status:e.status||`in_progress`,created_at:Math.floor(Date.now()/1e3)},r=Q.getState().chatItems;h([...r,n]);continue}let n=Q.getState().chatItems;h(n.map(e=>{if(e.id===s.id&&e.type===`message`){let n=e.content,r=null;if(t.type===`output_image`?r={type:`output_image`,image_url:t.image_url,alt_text:t.alt_text,mime_type:t.mime_type}:t.type===`output_file`?r={type:`output_file`,filename:t.filename,file_url:t.file_url,file_data:t.file_data,mime_type:t.mime_type}:t.type===`output_data`&&(r={type:`output_data`,data:t.data,mime_type:t.mime_type,description:t.description}),r)return{...e,content:[...n,r],status:`in_progress`}}return e}));continue}(e.type===`response.output_text.delta`||e.type===`response.refusal.delta`)&&`delta`in e&&e.delta&&(H.current=a_(H.current,e),V.current=H.current.map(e=>e.text).join(``),oe(s.id))}let u=B.current;oe(s.id,`in_progress`,!0);let d=Q.getState().chatItems;h(d.map(e=>e.id===s.id&&e.type===`message`?{...e,status:`completed`,usage:u||void 0}:e)),g(!1),u&&b(u.total_tokens),B.current=null}catch(e){if(b_(e))k(!0),oe(s.id,V.current?`completed`:`incomplete`,!0);else if(V.current)oe(s.id,`incomplete`,!0);else{let t=Q.getState().chatItems;h(t.map(t=>t.id===s.id&&t.type===`message`?{...t,content:[{type:`text`,text:`Error: ${e instanceof Error?e.message:`Failed to get response`}`}],status:`incomplete`}:t))}g(!1),N()}finally{c&&!l?.aborted&&ie(c)}},[e,n,t,oe,h,g,_,p,m,x,b,j,N,ie]),fe=(0,y.useCallback)(async r=>{if(!e)return;let i=r.input.some(e=>e.type===`message`&&Array.isArray(e.content)&&e.content.some(e=>e.type===`function_approval_response`)),a=[];for(let e of r.input)if(e.type===`message`&&Array.isArray(e.content)){for(let t of e.content)if(t.type===`input_text`)a.push({type:`text`,text:t.text});else if(t.type===`input_image`)a.push({type:`input_image`,image_url:t.image_url||``,detail:`auto`});else if(t.type===`input_file`){let e=t;a.push({type:`input_file`,file_data:e.file_data,filename:e.filename})}}let o=Math.floor(Date.now()/1e3);if(!i&&a.length>0){let e={id:`user-${Date.now()}`,type:`message`,role:`user`,content:a,status:`completed`,created_at:o};h([...Q.getState().chatItems,e])}_(!0);try{let i=n;if(!i)try{i=await R_.createConversation({agent_id:e.id}),p(i),m([i,...Q.getState().availableConversations]),T(null)}catch(e){let t=e instanceof Error?e.message:`Failed to create conversation`;T({message:t,type:`conversation_creation_error`}),_(!1);return}let a=await R_.runAgentSync(e.id,{input:r.input,conversation_id:i?.id}),s=[],c=[],l=[];if(a.output){for(let e of a.output)if(e.type===`message`){let t=e;if(t.content)for(let e of t.content)e.type===`output_text`?s.push({type:`text`,text:e.text}):e.type===`refusal`?s.push({type:`refusal`,refusal:e.refusal}):(e.type===`output_image`||e.type===`output_file`||e.type===`output_data`)&&s.push(e)}else if(e.type===`function_call`){let t=e;c.push({id:t.id||`call-${Date.now()}`,type:`function_call`,name:t.name,arguments:t.arguments||``,call_id:t.call_id,status:t.status||`completed`,created_at:o})}else if(e.type===`function_call_output`){let t=e;l.push({id:`result-${Date.now()}`,type:`function_call_output`,call_id:t.call_id,output:t.output,status:`completed`,created_at:o})}}let u={id:`assistant-${Date.now()}`,type:`message`,role:`assistant`,content:s,status:`completed`,created_at:o,usage:a.usage?{input_tokens:a.usage.input_tokens,output_tokens:a.usage.output_tokens,total_tokens:a.usage.total_tokens}:void 0},d=[...Q.getState().chatItems,u,...c,...l];h(d),a.usage&&b(a.usage.total_tokens),t({type:`response.completed`,response:a,sequence_number:0}),typeof a.id==`string`&&ie(a.id)}catch(e){let t=e instanceof Error?e.message:`Failed to get response`,n={id:`assistant-${Date.now()}`,type:`message`,role:`assistant`,content:[{type:`text`,text:`Error: ${t}`}],status:`incomplete`,created_at:o},r=Q.getState().chatItems;h([...r,n])}finally{_(!1)}},[e,n,t,h,p,m,b,_,ie]),pe=async t=>{if(e&&t.length!==0){ee.current=!0,k(!1),_(!0);try{let e={input:[{type:`message`,role:`user`,content:t}],conversation_id:n?.id};f?await de(e):await fe(e)}finally{_(!1)}}};return(0,K.jsxs)(`div`,{className:`flex h-[calc(100vh-3.5rem)] flex-col relative`,...L,children:[P&&(0,K.jsx)(`div`,{className:`absolute inset-0 z-50 bg-blue-50/95 dark:bg-blue-950/95 backdrop-blur-sm flex items-center justify-center border-2 border-dashed border-blue-400 dark:border-blue-500 rounded-lg m-2`,children:(0,K.jsxs)(`div`,{className:`text-center p-8`,children:[(0,K.jsx)(`div`,{className:`text-blue-600 dark:text-blue-400 text-lg font-medium mb-2`,children:`Drop files here`}),(0,K.jsx)(`div`,{className:`text-blue-500/80 dark:text-blue-400/70 text-sm`,children:`Images, PDFs, audio, and other files`})]})}),(0,K.jsxs)(`div`,{className:`border-b pb-2 p-4 flex-shrink-0`,children:[(0,K.jsxs)(`div`,{className:`flex flex-col lg:flex-row lg:items-center lg:justify-between gap-3 mb-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,K.jsx)(`h2`,{className:`font-semibold text-sm truncate`,children:(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)($l,{className:`h-4 w-4 flex-shrink-0`}),(0,K.jsx)(`span`,{className:`truncate`,children:d.enabled?`Chat with ${d.model}`:`Chat with ${e.name||e.id}`})]})}),!d.enabled&&c===`developer`&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(q,{variant:`ghost`,size:`sm`,onClick:()=>C(!0),className:`h-6 w-6 p-0 flex-shrink-0`,title:`View agent details`,children:(0,K.jsx)(td,{className:`h-4 w-4`})}),e.source!==`in_memory`&&(0,K.jsx)(q,{variant:`ghost`,size:`sm`,onClick:ce,disabled:E,className:`h-6 w-6 p-0 flex-shrink-0`,title:E?`Reloading...`:`Reload entity code (hot reload)`,children:(0,K.jsx)(Nd,{className:`h-4 w-4 ${E?`animate-spin`:``}`})})]})]}),(0,K.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-stretch sm:items-center gap-2 flex-shrink-0`,children:[(0,K.jsxs)(Fy,{value:n?.id||``,onValueChange:le,disabled:s||o,children:[(0,K.jsx)(Ly,{className:`w-full sm:w-64`,children:(0,K.jsx)(Iy,{placeholder:s?`Loading...`:r.length===0?`No conversations`:n?`Conversation ${n.id.slice(-8)}`:`Select conversation`,children:n&&(0,K.jsxs)(`div`,{className:`flex items-center gap-2 text-xs`,children:[(0,K.jsxs)(`span`,{children:[`Conversation `,n.id.slice(-8)]}),l.total_tokens>0&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`span`,{className:`text-muted-foreground`,children:`•`}),(0,K.jsxs)(`span`,{className:`text-muted-foreground`,children:[l.total_tokens>=1e3?`${(l.total_tokens/1e3).toFixed(1)}k`:l.total_tokens,` `,`tokens`]})]})]})})}),(0,K.jsx)(Ry,{children:r.map(e=>(0,K.jsx)(zy,{value:e.id,children:(0,K.jsxs)(`div`,{className:`flex items-center justify-between w-full`,children:[(0,K.jsxs)(`span`,{children:[`Conversation `,e.id.slice(-8)]}),e.created_at&&(0,K.jsx)(`span`,{className:`text-xs text-muted-foreground ml-3`,children:new Date(e.created_at*1e3).toLocaleDateString()})]})},e.id))})]}),(0,K.jsx)(q,{variant:`outline`,size:`icon`,onClick:()=>n&&U(n.id),disabled:!n||o,title:n?`Delete Conversation ${n.id.slice(-8)}`:`No conversation selected`,children:(0,K.jsx)(tf,{className:`h-4 w-4`})}),(0,K.jsxs)(q,{variant:`outline`,size:`lg`,onClick:se,disabled:!e||o,className:`whitespace-nowrap `,children:[(0,K.jsx)(jd,{className:`h-4 w-4 mr-2`}),(0,K.jsx)(`span`,{className:`hidden md:inline`,children:` New Conversation`})]})]})]}),d.enabled?(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Using OpenAI model directly. Local agent tools and instructions are not applied.`}):e.description&&(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e.description})]}),w&&(0,K.jsxs)(`div`,{className:`mx-4 mt-2 p-3 bg-destructive/10 border border-destructive/30 rounded-md flex items-start gap-2`,children:[(0,K.jsx)(hu,{className:`h-4 w-4 text-destructive mt-0.5 flex-shrink-0`}),(0,K.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,K.jsx)(`div`,{className:`text-sm font-medium text-destructive`,children:`Failed to Create Conversation`}),(0,K.jsx)(`div`,{className:`text-xs text-destructive/90 mt-1 break-words`,children:w.message}),w.code&&(0,K.jsxs)(`div`,{className:`text-xs text-destructive/70 mt-1`,children:[`Error Code: `,w.code]})]}),(0,K.jsx)(`button`,{onClick:()=>T(null),className:`text-destructive hover:text-destructive/80 flex-shrink-0`,title:`Dismiss error`,children:(0,K.jsx)(mf,{className:`h-4 w-4`})})]}),(0,K.jsx)(mm,{className:`flex-1 p-4 h-0`,ref:R,children:(0,K.jsxs)(`div`,{className:`space-y-4`,children:[i.length===0?(0,K.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-32 text-center`,children:[(0,K.jsxs)(`div`,{className:`text-muted-foreground text-sm`,children:[`Start a conversation with`,` `,e.name||e.id]}),(0,K.jsx)(`div`,{className:`text-xs text-muted-foreground mt-1`,children:`Type a message below to begin`})]}):(()=>{let e=[],t=new Map,n=new Map,r=null,a=[],o=[];for(let e=0;e0){let e=t.get(s.id)||[];e.push(...a),t.set(s.id,e),a.length=0}if(o.length>0){let e=n.get(s.id)||[];e.push(...o),n.set(s.id,e),o.length=0}r=s.id}else if(s.type===`function_call`){if(r){let e=t.get(r)||[];e.push(s),t.set(r,e)}else a.push(s)}else if(s.type===`function_call_output`){if(r){let e=n.get(r)||[];e.push(s),n.set(r,e)}else o.push(s)}else s.type===`message`&&s.role===`user`&&(r=null)}for(let r of i)if(r.type===`message`){let i=t.get(r.id)||[],a=n.get(r.id)||[];e.push((0,K.jsx)(Yy,{item:r,toolCalls:i,toolResults:a},r.id))}return e})(),O&&!a&&(0,K.jsx)(`div`,{className:`px-4 py-2`,children:(0,K.jsx)(`div`,{className:`border rounded-lg border-orange-500/40 bg-orange-500/5 dark:bg-orange-500/10`,children:(0,K.jsxs)(`div`,{className:`px-4 py-3 flex items-center gap-2`,children:[(0,K.jsx)(Zd,{className:`w-4 h-4 text-orange-500 dark:text-orange-400 fill-current`}),(0,K.jsx)(`span`,{className:`font-medium text-sm text-orange-700 dark:text-orange-300`,children:`Response stopped by user`})]})})}),(0,K.jsx)(`div`,{ref:z})]})}),u.length>0&&(0,K.jsx)(`div`,{className:`border-t bg-amber-50 dark:bg-amber-950/20 p-4 flex-shrink-0`,children:(0,K.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,K.jsx)(hu,{className:`h-5 w-5 text-amber-600 dark:text-amber-500 mt-0.5 flex-shrink-0`}),(0,K.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,K.jsx)(`h4`,{className:`font-medium text-sm mb-2`,children:`Approval Required`}),(0,K.jsx)(`div`,{className:`space-y-2`,children:u.map(e=>(0,K.jsxs)(`div`,{className:`bg-white dark:bg-gray-900 rounded-lg p-3 border border-amber-200 dark:border-amber-900`,children:[(0,K.jsxs)(`div`,{className:`font-mono text-xs mb-3 break-all`,children:[(0,K.jsx)(`span`,{className:`text-blue-600 dark:text-blue-400 font-semibold`,children:e.function_call.name}),(0,K.jsx)(`span`,{className:`text-gray-500`,children:`(`}),(0,K.jsx)(`span`,{className:`text-gray-700 dark:text-gray-300`,children:JSON.stringify(e.function_call.arguments)}),(0,K.jsx)(`span`,{className:`text-gray-500`,children:`)`})]}),(0,K.jsxs)(`div`,{className:`flex gap-2`,children:[(0,K.jsxs)(q,{size:`sm`,onClick:async()=>{let t=await ue(e.request_id,!0);t&&await de(t)},variant:`default`,className:`flex-1 sm:flex-none`,children:[(0,K.jsx)(ru,{className:`h-4 w-4 mr-1`}),`Approve`]}),(0,K.jsxs)(q,{size:`sm`,onClick:async()=>{let t=await ue(e.request_id,!1);t&&await de(t)},variant:`outline`,className:`flex-1 sm:flex-none`,children:[(0,K.jsx)(mf,{className:`h-4 w-4 mr-1`}),`Reject`]})]})]},e.request_id))})]})]})}),(0,K.jsx)(`div`,{className:`border-t flex-shrink-0`,children:(0,K.jsx)(`div`,{className:`p-4`,children:(0,K.jsx)(lv,{onSubmit:pe,isSubmitting:o,isStreaming:a,onCancel:M,isCancelling:A,placeholder:`Message ${e.name||e.id}... (Shift+Enter for new line)`,showFileUpload:!0,entityName:e.name||e.id,disabled:!e,externalFiles:F,onExternalFilesProcessed:I})})}),(0,K.jsx)(Uy,{agent:e,open:S,onOpenChange:C})]})}function Zy({message:e=`Loading...`,description:t,size:n=`md`,className:r,fullPage:i=!1}){let a=(0,K.jsxs)(`div`,{className:jt(`flex flex-col items-center justify-center gap-3`,i?`min-h-[50vh]`:`py-8`,r),children:[(0,K.jsx)(Cf,{size:n,className:`text-muted-foreground`}),(0,K.jsxs)(`div`,{className:`text-center space-y-1`,children:[(0,K.jsx)(`p`,{className:jt(`font-medium text-muted-foreground`,n===`sm`&&`text-sm`,n===`lg`&&`text-lg`),children:e}),t&&(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground/80`,children:t})]})]});return i?(0,K.jsx)(`div`,{className:`flex items-center justify-center min-h-screen bg-background`,children:a}):a}function Qy(e){return[`name`,`title`,`id`,`key`,`label`,`type`,`status`,`tag`,`category`,`code`,`username`,`password`,`email`].includes(e.toLowerCase())}function $y(e){if(e.type)return e;if(e.anyOf&&e.anyOf.length>0){let t=e.anyOf.filter(e=>e.type!==`null`&&e.type!==void 0);if(t.length>0)return{...t[0],default:e.default??t[0].default,description:e.description??t[0].description,title:e.title??t[0].title}}if(e.oneOf&&e.oneOf.length>0){let t=e.oneOf.filter(e=>e.type!==`null`&&e.type!==void 0);if(t.length>0)return{...t[0],default:e.default??t[0].default,description:e.description??t[0].description,title:e.title??t[0].title}}return e}function eb(e,t){return t.format===`textarea`||!!t.description&&t.description.length>100||t.type===`string`&&!t.enum&&!Qy(e)}function tb(e,t){let n=eb(e,t),r=!!t.description&&t.description.length>150;return n||r?`md:col-span-2 lg:col-span-3 xl:col-span-4`:t.type===`array`||t.description&&t.description.length>80?`xl:col-span-2`:``}function nb(e,t){if(e.type!==`object`||!e.properties)return!1;let n=e.properties,r=Object.keys(n).filter(e=>!t.includes(e));return t.includes(`role`)&&r.some(e=>[`text`,`message`,`content`].includes(e))&&n.role?.type===`string`}function rb({name:e,schema:t,value:n,onChange:r,isRequired:i=!1,isReadOnly:a=!1}){let o=$y(t),{type:s,description:c,enum:l,default:u}=o,d=eb(e,o);return(0,K.jsx)(`div`,{className:tb(e,o),children:(()=>{if(a)return(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsx)(Rg,{htmlFor:e,className:`text-muted-foreground`,children:e}),(0,K.jsx)(`div`,{className:`text-sm p-2 bg-muted rounded border`,children:typeof n==`object`?JSON.stringify(n,null,2):String(n)}),c&&(0,K.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:c})]});switch(s){case`string`:return l?(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsxs)(Rg,{htmlFor:e,children:[e,i&&(0,K.jsx)(`span`,{className:`text-destructive ml-1`,children:`*`})]}),(0,K.jsxs)(Fy,{value:typeof n==`string`&&n?n:typeof u==`string`?u:l[0],onValueChange:e=>r(e),children:[(0,K.jsx)(Ly,{children:(0,K.jsx)(Iy,{placeholder:`Select ${e}`})}),(0,K.jsx)(Ry,{children:l.map(e=>(0,K.jsx)(zy,{value:e,children:e},e))})]}),c&&(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:c})]}):d?(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsxs)(Rg,{htmlFor:e,children:[e,i&&(0,K.jsx)(`span`,{className:`text-destructive ml-1`,children:`*`})]}),(0,K.jsx)(rv,{id:e,value:typeof n==`string`?n:``,onChange:e=>r(e.target.value),placeholder:typeof u==`string`?u:`Enter ${e}`,rows:4,className:`min-w-[300px] w-full`}),c&&(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:c})]}):(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsxs)(Rg,{htmlFor:e,children:[e,i&&(0,K.jsx)(`span`,{className:`text-destructive ml-1`,children:`*`})]}),(0,K.jsx)(Fg,{id:e,type:`text`,value:typeof n==`string`?n:``,onChange:e=>r(e.target.value),placeholder:typeof u==`string`?u:`Enter ${e}`}),c&&(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:c})]});case`integer`:case`number`:return(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsxs)(Rg,{htmlFor:e,children:[e,i&&(0,K.jsx)(`span`,{className:`text-destructive ml-1`,children:`*`})]}),(0,K.jsx)(Fg,{id:e,type:`number`,step:s===`integer`?`1`:`any`,value:typeof n==`number`?n:``,onChange:e=>{let t=s===`integer`?parseInt(e.target.value):parseFloat(e.target.value);r(isNaN(t)?``:t)},placeholder:typeof u==`number`?u.toString():`Enter ${e}`}),c&&(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:c})]});case`boolean`:return(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,K.jsx)(nh,{id:e,checked:!!n,onCheckedChange:e=>r(e)}),(0,K.jsxs)(Rg,{htmlFor:e,children:[e,i&&(0,K.jsx)(`span`,{className:`text-destructive ml-1`,children:`*`})]})]}),c&&(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:c})]});case`array`:return(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsxs)(Rg,{htmlFor:e,children:[e,i&&(0,K.jsx)(`span`,{className:`text-destructive ml-1`,children:`*`})]}),(0,K.jsx)(rv,{id:e,value:Array.isArray(n)?n.join(`, `):typeof n==`string`?n:``,onChange:e=>{r(e.target.value.split(`,`).map(e=>e.trim()).filter(e=>e.length>0))},placeholder:`Enter items separated by commas`,rows:2}),c&&(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:c})]});default:return(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsxs)(Rg,{htmlFor:e,children:[e,i&&(0,K.jsx)(`span`,{className:`text-destructive ml-1`,children:`*`})]}),(0,K.jsx)(rv,{id:e,value:typeof n==`object`&&n?JSON.stringify(n,null,2):typeof n==`string`?n:``,onChange:e=>{try{r(JSON.parse(e.target.value))}catch{r(e.target.value)}},placeholder:`{"key": "value"}`,rows:3,className:`font-mono text-xs`}),c&&(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:c})]})}})()})}function ib({schema:e,values:t,onChange:n,disabled:r=!1,readOnlyFields:i=[],hideFields:a=[],showCollapsedByDefault:o=!1,layout:s=`stack`}){let[c,l]=(0,y.useState)(o),u=s===`grid`?`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6`:`space-y-3`,d=e.properties||{},f=Object.keys(d).filter(e=>!a.includes(e)),p=(e.required||[]).filter(e=>!a.includes(e)),m=nb(e,p),h=f.filter(e=>p.includes(e)&&!(m&&e===`role`)),g=f.filter(e=>!p.includes(e)),_=m?[...g].sort((e,t)=>{let n=e=>+!![`text`,`message`,`content`].includes(e);return n(t)-n(e)}):g,v=Math.max(0,(m?1:6)-h.length),b=_.slice(0,v),x=_.slice(v),S=x.length>0,C=h.length>0,w=(e,r)=>{n({...t,[e]:r})},T=s===`grid`?`md:col-span-2 lg:col-span-3 xl:col-span-4`:``;return(0,K.jsxs)(`div`,{className:u,children:[h.map(e=>(0,K.jsx)(rb,{name:e,schema:d[e],value:t[e],onChange:t=>w(e,t),isRequired:!0,isReadOnly:r||i.includes(e)},e)),C&&g.length>0&&(0,K.jsx)(`div`,{className:T,children:(0,K.jsx)(`div`,{className:`border-t border-border`})}),b.map(e=>(0,K.jsx)(rb,{name:e,schema:d[e],value:t[e],onChange:t=>w(e,t),isRequired:!1,isReadOnly:r||i.includes(e)},e)),S&&(0,K.jsx)(`div`,{className:T,children:(0,K.jsx)(q,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>l(!c),className:`w-full justify-center gap-2`,disabled:r,children:c?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(pu,{className:`h-4 w-4`}),`Hide `,x.length,` optional field`,x.length===1?``:`s`]}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(su,{className:`h-4 w-4`}),`Show `,x.length,` optional field`,x.length===1?``:`s`]})})}),c&&x.map(e=>(0,K.jsx)(rb,{name:e,schema:d[e],value:t[e],onChange:t=>w(e,t),isRequired:!1,isReadOnly:r||i.includes(e)},e))]})}function ab(e,t){return(e.required||[]).every(e=>{let n=t[e];return n!==void 0&&n!==``&&n!==null})}function ob(e,t){let n=e.required||[],r={};return Object.keys(t).forEach(e=>{let i=t[e];(n.includes(e)||i!==void 0&&i!==``&&i!==null)&&(r[e]=i)}),r}function sb({inputSchema:e,inputTypeName:t,onSubmit:n,isSubmitting:r=!1,className:i}){let[a,o]=(0,y.useState)(!1),s=i?.includes(`embedded`),[c,l]=(0,y.useState)({}),[u,d]=(0,y.useState)(!1),f=e.properties||{},p=Object.keys(f),m=e.required||[],h=e.type===`string`&&!e.enum,g=nb(e,m),_=h?c.value!==void 0&&c.value!==``:m.length>0?m.every(e=>g&&e===`role`&&c.role===`user`?!0:c[e]!==void 0&&c[e]!==``):Object.keys(c).length>0;(0,y.useEffect)(()=>{if(e.type===`string`)l({value:e.default||``});else if(e.type===`object`&&e.properties){let t={};Object.entries(e.properties).forEach(([e,n])=>{n.default===void 0?n.enum&&n.enum.length>0&&(t[e]=n.enum[0]):t[e]=n.default}),g&&!t.role&&(t.role=`user`),l(t)}},[e,g]);let v=t=>{if(t.preventDefault(),d(!0),e.type===`string`)n({input:c.value||``});else if(e.type===`object`){let t=e.properties||{},r=Object.keys(t);if(r.length===1){let e=r[0];n({[e]:c[e]||``})}else n(ob(e,c))}else n(c);s||o(!1),d(!1)},b=e=>{l(e)},x=()=>(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsx)(Rg,{htmlFor:`simple-input`,children:`Input`}),(0,K.jsx)(rv,{id:`simple-input`,value:typeof c.value==`string`?c.value:``,onChange:e=>l({value:e.target.value}),placeholder:typeof e.default==`string`?e.default:`Enter input`,rows:4,className:`min-w-[300px] w-full`}),e.description&&(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e.description})]});return s?(0,K.jsxs)(`form`,{onSubmit:v,className:i,children:[h&&x(),!h&&(0,K.jsx)(ib,{schema:e,values:c,onChange:b,disabled:u,hideFields:g?[`role`]:[],layout:`grid`}),(0,K.jsx)(`div`,{className:`flex gap-2 mt-4 justify-end`,children:(0,K.jsxs)(q,{type:`submit`,disabled:u||!_,size:`default`,children:[(0,K.jsx)(Ud,{className:`h-4 w-4`}),u?`Running...`:`Run Workflow`]})})]}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`div`,{className:jt(`flex flex-col`,i),children:[(0,K.jsxs)(`div`,{className:`border-b border-border px-4 py-3 bg-muted`,children:[(0,K.jsx)(H_,{className:`text-sm mb-3`,children:`Run Workflow`}),(0,K.jsxs)(q,{onClick:()=>o(!0),disabled:r,className:`w-full`,size:`default`,children:[(0,K.jsx)(Ud,{className:`h-4 w-4 mr-2`}),r?`Running...`:`Run Workflow`]})]}),(0,K.jsxs)(`div`,{className:`px-4 py-3`,children:[(0,K.jsxs)(`div`,{className:`text-sm text-muted-foreground`,children:[(0,K.jsx)(`strong`,{children:`Input Type:`}),` `,(0,K.jsx)(`code`,{className:`bg-muted px-1 py-0.5 rounded`,children:t}),e.type===`object`&&e.properties&&(0,K.jsxs)(`span`,{className:`ml-2`,children:[`(`,Object.keys(e.properties).length,` field`,Object.keys(e.properties).length===1?``:`s`,`)`]})]}),(0,K.jsx)(`p`,{className:`text-xs text-muted-foreground mt-2`,children:`Click "Run Workflow" to configure inputs and execute`})]})]}),(0,K.jsx)(Og,{open:a,onOpenChange:o,children:(0,K.jsxs)(kg,{className:`w-full max-w-md sm:max-w-lg md:max-w-2xl lg:max-w-4xl xl:max-w-5xl max-h-[90vh] flex flex-col`,children:[(0,K.jsxs)(Ag,{children:[(0,K.jsx)(jg,{children:`Run Workflow`}),(0,K.jsx)(Ng,{onClose:()=>o(!1)})]}),(0,K.jsx)(`div`,{className:`px-8 py-4 border-b flex-shrink-0`,children:(0,K.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsx)(`span`,{className:`font-medium`,children:`Input Type:`}),(0,K.jsx)(`code`,{className:`bg-muted px-3 py-1 text-xs font-mono`,children:t}),e.type===`object`&&(0,K.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[p.length,` field`,p.length===1?``:`s`]})]})})}),(0,K.jsx)(`div`,{className:`px-8 py-6 overflow-y-auto flex-1 min-h-0`,children:(0,K.jsxs)(`form`,{id:`workflow-modal-form`,onSubmit:v,children:[h&&x(),!h&&(0,K.jsx)(ib,{schema:e,values:c,onChange:b,disabled:u,hideFields:g?[`role`]:[],layout:`grid`})]})}),(0,K.jsx)(`div`,{className:`px-8 py-4 border-t flex-shrink-0`,children:(0,K.jsxs)(Pg,{children:[(0,K.jsx)(q,{variant:`outline`,onClick:()=>o(!1),disabled:u,children:`Cancel`}),(0,K.jsxs)(q,{type:`submit`,form:`workflow-modal-form`,disabled:u||!_,children:[(0,K.jsx)(Ud,{className:`h-4 w-4 mr-2`}),u?`Running...`:`Run Workflow`]})]})})]})})]})}function cb(e,t,n=`LR`){if(e.length===0)return e;if(e.length===1)return e.map(e=>({...e,position:{x:0,y:0}}));let r=new Map,i=new Map;e.forEach(e=>{r.set(e.id,[]),i.set(e.id,[])}),t.forEach(e=>{r.get(e.source)?.push(e.target),i.get(e.target)?.push(e.source)});let a=e.filter(e=>(i.get(e.id)||[]).length===0);a.length===0&&a.push(e[0]);let o=n===`LR`?350:280,s=n===`TB`?250:180,c=new Map,l=new Map,u=[],d=new Set;for(a.forEach(e=>{u.push({nodeId:e.id,level:0})});u.length>0;){let{nodeId:e,level:t}=u.shift();d.has(e)||(d.add(e),l.has(t)||l.set(t,[]),l.get(t).push(e),(r.get(e)||[]).forEach(e=>{d.has(e)||u.push({nodeId:e,level:t+1})}))}return e.forEach(e=>{if(!d.has(e.id)){let t=Math.max(...Array.from(l.keys()),-1)+1;l.has(t)||l.set(t,[]),l.get(t).push(e.id)}}),l.forEach((e,t)=>{let r=e.length;e.forEach((e,i)=>{let a,l;n===`LR`?(a=t*o,l=-((r-1)*s)/2+i*s):(l=t*s,a=-((r-1)*o)/2+i*o),c.set(e,{x:a,y:l,level:t})})}),e.map(e=>{let t=c.get(e.id)||{x:0,y:0};return{...e,position:{x:t.x-110,y:t.y-60}}})}function lb(e){if(typeof e!=`object`||!e)return!1;let t=e;return`id`in t&&`edge_groups`in t&&`executors`in t&&`start_executor_id`in t&&`max_iterations`in t&&typeof t.id==`string`&&Array.isArray(t.edge_groups)&&typeof t.executors==`object`&&typeof t.start_executor_id==`string`&&typeof t.max_iterations==`number`}function ub(e){return lb(e)?e:null}function db(e){if(!e||e.type!==`object`||!e.properties)return!1;let t=e.properties,n=`text`in t&&t.text?.type===`string`,r=`role`in t&&t.role?.type===`string`;return!!(n&&r||Object.keys(t).length===1&&n)}function fb(e,t=50,n=`...`){return e.length<=t?e:e.substring(0,t)+n}function pb(e,t,n){if(!e)return console.warn(`convertWorkflowDumpToNodes: workflowDump is undefined`),[];let r=ub(e),i,a;return r?(i=Object.values(r.executors).map(e=>({id:e.id,type:e.type,name:e.name||e.id,description:e.description,config:e.config})),a=r.start_executor_id):(i=hb(e),a=e?.start_executor_id),!i||!Array.isArray(i)||i.length===0?(console.warn(`No executors found in workflow dump. Available keys:`,Object.keys(e)),[]):i.map(e=>({id:e.id,type:`executor`,position:{x:0,y:0},data:{executorId:e.id,executorType:e.type,name:e.name||e.id,state:`pending`,isStartNode:e.id===a,layoutDirection:n||`LR`,onNodeClick:t}}))}function mb(e){if(!e)return console.warn(`convertWorkflowDumpToEdges: workflowDump is undefined`),[];let t=ub(e),n;return t?(n=[],t.edge_groups.forEach(e=>{e.edges.forEach(e=>{n.push({source:e.source_id,target:e.target_id,condition:e.condition_name})})})):n=gb(e),!n||!Array.isArray(n)||n.length===0?(console.warn(`No connections found in workflow dump. Available keys:`,Object.keys(e)),[]):n.map(e=>{let t=e.source===e.target;return{id:`${e.source}-${e.target}`,source:e.source,target:e.target,sourceHandle:`source`,targetHandle:`target`,type:t?`selfLoop`:`default`,animated:!1,style:{stroke:`#6b7280`,strokeWidth:2}}})}function hb(e){if(e.executors&&typeof e.executors==`object`&&!Array.isArray(e.executors)){let t=e.executors;return Object.entries(t).map(([e,t])=>({id:e,type:t.type_||t.type||`executor`,name:t.name||e,description:t.description,config:t.config}))}for(let t of[`executors`,`agents`,`steps`,`nodes`])if(e[t]&&Array.isArray(e[t]))return e[t];if(e.config&&typeof e.config==`object`)return hb(e.config);let t=[];return Object.entries(e).forEach(([e,n])=>{if(typeof n==`object`&&n&&(`type`in n||`type_`in n)){let r=n;t.push({id:e,type:r.type_||r.type||`executor`,name:r.name||e,description:r.description,config:r.config})}}),t}function gb(e){if(e.edge_groups&&Array.isArray(e.edge_groups)){let t=[];return e.edge_groups.forEach(e=>{if(typeof e==`object`&&e&&`edges`in e){let n=e.edges;Array.isArray(n)&&n.forEach(e=>{if(typeof e==`object`&&e&&`source_id`in e&&`target_id`in e){let n=e;t.push({source:n.source_id,target:n.target_id,condition:n.condition_name||void 0})}})}}),t}for(let t of[`connections`,`edges`,`transitions`,`links`])if(e[t]&&Array.isArray(e[t]))return e[t];return e.config&&typeof e.config==`object`?gb(e.config):[]}function _b(e,t,n=`LR`){return cb(e,t,n)}function vb(e,t){let n={},r=!1,i={};return e.forEach(e=>{if(e.type===`response.output_item.added`||e.type===`response.output_item.done`){let t=e.item;if(t&&t.type===`executor_action`&&`executor_id`in t){let r=t.executor_id,a=t.id;if(e.type===`response.output_item.added`&&(i[r]=a),i[r]!==a&&e.type===`response.output_item.done`)return;let o=`pending`,s;e.type===`response.output_item.added`?o=`running`:e.type===`response.output_item.done`&&(t.status===`completed`?o=`completed`:t.status===`failed`?(o=`failed`,s=t.error?typeof t.error==`string`?t.error:JSON.stringify(t.error):`Execution failed`):t.status===`cancelled`&&(o=`cancelled`)),n[r]={nodeId:r,state:o,data:t.result,error:s,timestamp:new Date().toISOString()}}}else if(e.type===`response.created`||e.type===`response.in_progress`)r=!0;else if(e.type===`response.workflow_event.completed`&&`data`in e&&e.data){let t=e.data,i=t.executor_id,a=t.event_type,o=t.data,s=`pending`,c;a===`ExecutorInvokedEvent`?s=`running`:a===`ExecutorCompletedEvent`?s=`completed`:a?.includes(`Error`)||a?.includes(`Failed`)?(s=`failed`,c=typeof o==`string`?o:`Execution failed`):a?.includes(`Cancel`)?s=`cancelled`:a===`WorkflowCompletedEvent`||a===`WorkflowOutputEvent`?s=`completed`:a===`WorkflowStartedEvent`&&(r=!0),i&&(n[i]={nodeId:i,state:s,data:o,error:c,timestamp:new Date().toISOString()})}}),r&&t&&!n[t]&&(e.some(e=>{if(e.type===`response.output_item.done`){let n=e.item;return n&&n.type===`executor_action`&&`executor_id`in n&&n.executor_id===t}if(e.type===`response.workflow_event.completed`&&`data`in e&&e.data){let n=e.data;return n.executor_id===t&&(n.event_type===`ExecutorCompletedEvent`||n.event_type===`ExecutorFailedEvent`||typeof n.event_type==`string`&&n.event_type.includes(`Error`)||typeof n.event_type==`string`&&n.event_type.includes(`Failed`))}return!1})||(n[t]={nodeId:t,state:`running`,data:void 0,error:void 0,timestamp:new Date().toISOString()})),n}function yb(e,t,n=!0){return e.map(e=>{let r=t[e.id];return r?{...e,data:{...e.data,state:r.state,outputData:r.data,error:r.error,isStreaming:n,layoutDirection:e.data.layoutDirection}}:e})}function bb(e){let t={};return e.forEach(e=>{if(e.type===`response.output_item.added`||e.type===`response.output_item.done`){let n=e.item;if(n&&n.type===`executor_action`&&`executor_id`in n){let r=n.executor_id;t[r]={lastEvent:e.type===`response.output_item.added`?`ExecutorInvokedEvent`:`ExecutorCompletedEvent`,timestamp:new Date().toISOString()}}}else if(e.type===`response.workflow_event.completed`&&`data`in e&&e.data){let n=e.data,r=n.executor_id,i=n.event_type;r&&(i===`ExecutorInvokedEvent`||i===`ExecutorCompletedEvent`)&&(t[r]={lastEvent:i,timestamp:new Date().toISOString()})}}),Object.entries(t).filter(([,e])=>e.lastEvent===`ExecutorInvokedEvent`).map(([e])=>e)}function xb(e,t){let n=bb(t),r={};return t.forEach(e=>{if(e.type===`response.workflow_event.completed`&&`data`in e&&e.data){let t=e.data,n=t.executor_id,i=t.event_type;n&&i&&(r[n]||(r[n]={completed:!1,invoked:!1}),i===`ExecutorInvokedEvent`?r[n].invoked=!0:i===`ExecutorCompletedEvent`&&(r[n].completed=!0))}}),e.map(e=>{let t=r[e.source],i=r[e.target],a=n.includes(e.target),o={...e.style},s=!1;return t?.completed&&a?(o={stroke:`#643FB2`,strokeWidth:3,strokeDasharray:`5,5`},s=!0):o=t?.completed&&i?.completed?{stroke:`#10b981`,strokeWidth:2}:t?.completed&&i?.invoked?{stroke:`#f59e0b`,strokeWidth:2}:{stroke:`#6b7280`,strokeWidth:2},{...e,style:o,animated:s}})}function Sb(e){let t=new Map,n=new Set;return e.forEach(e=>{let r=`${e.source}-${e.target}`,i=`${e.target}-${e.source}`;if(e.source===e.target){t.set(r,e);return}if(t.has(i)){n.add(i),n.add(r);let e=t.get(i);t.set(i,{...e,markerStart:{type:`arrow`,width:20,height:20},markerEnd:{type:`arrow`,width:20,height:20},data:{...e.data,isBidirectional:!0}})}else n.has(r)||t.set(r,e)}),Array.from(t.values())}function Cb({inputSchema:e,onRun:t,onCancel:n,isSubmitting:r,isCancelling:i=!1,workflowState:a,checkpoints:o=[],showCheckpoints:s=!0}){let[c,l]=(0,y.useState)(!1);(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&c&&l(!1)};if(c)return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[c]);let u=(0,y.useMemo)(()=>{let t=db(e);if(!e)return{needsInput:!1,hasDefaults:!1,fieldCount:0,canRunDirectly:!0,isChatMessage:!1};if(e.type===`string`)return{needsInput:!e.default,hasDefaults:!!e.default,fieldCount:1,canRunDirectly:!!e.default,isChatMessage:!1};if(e.type===`object`&&e.properties){let n=e.properties,r=Object.entries(n),i=r.filter(([,e])=>e.default!==void 0||e.enum&&e.enum.length>0);return{needsInput:r.length>0,hasDefaults:i.length>0,fieldCount:r.length,canRunDirectly:r.length===0||i.length===r.length,isChatMessage:t}}return{needsInput:!1,hasDefaults:!1,fieldCount:0,canRunDirectly:!0,isChatMessage:!1}},[e]),d=()=>{if(a===`running`&&n)n();else if(u.canRunDirectly){let n={};e?.type===`string`&&e.default?n.input=e.default:e?.type===`object`&&e.properties&&Object.entries(e.properties).forEach(([e,t])=>{t.default===void 0?t.enum&&t.enum.length>0&&(n[e]=t.enum[0]):n[e]=t.default}),t(n)}else l(!0)},f=n=>{if(u.canRunDirectly){let r={};e?.type===`string`&&e.default?r.input=e.default:e?.type===`object`&&e.properties&&Object.entries(e.properties).forEach(([e,t])=>{t.default===void 0?t.enum&&t.enum.length>0&&(r[e]=t.enum[0]):r[e]=t.default}),t(r,n)}else l(!0)},p=s&&o.length>0,m=e=>{if(!e)return``;let t=e/1024;return t<1?`${e} B`:t<1024?`${t.toFixed(1)} KB`:`${(t/1024).toFixed(1)} MB`},{icon:h,text:g}={icon:i?(0,K.jsx)(ld,{className:`w-4 h-4 animate-spin`}):a===`running`&&n?(0,K.jsx)(Zd,{className:`w-4 h-4 fill-current`}):a===`running`?(0,K.jsx)(ld,{className:`w-4 h-4 animate-spin`}):a===`error`?(0,K.jsx)(Ld,{className:`w-4 h-4`}):u.needsInput&&!u.canRunDirectly?(0,K.jsx)(qd,{className:`w-4 h-4`}):(0,K.jsx)(kd,{className:`w-4 h-4`}),text:i?`Stopping...`:a===`running`&&n?`Stop`:a===`running`?`Running...`:a===`completed`?`Run Again`:a===`error`?`Retry`:u.fieldCount===0||u.canRunDirectly?`Run Workflow`:`Configure & Run`},_=a===`running`&&!n||i,v=a===`error`?`destructive`:`default`;return(0,K.jsxs)(K.Fragment,{children:[p||u.needsInput?(0,K.jsxs)(_f,{children:[(0,K.jsxs)(`div`,{className:`flex w-full`,children:[(0,K.jsxs)(q,{onClick:d,disabled:_,variant:v,className:`gap-2 rounded-r-none flex-1`,title:a===`running`&&n?`Stop workflow execution`:void 0,children:[h,g]}),(0,K.jsx)(vf,{asChild:!0,children:(0,K.jsx)(q,{disabled:_,variant:v,className:`rounded-l-none border-l-0 px-2`,title:`More options`,children:(0,K.jsx)(su,{className:`w-4 h-4`})})})]}),(0,K.jsxs)(yf,{align:`end`,className:`w-80 max-h-[400px] overflow-y-auto`,children:[p&&(0,K.jsxs)(bf,{onClick:d,children:[(0,K.jsx)(kd,{className:`w-4 h-4 mr-2`}),`Run Fresh`]}),u.needsInput&&(0,K.jsxs)(bf,{onClick:()=>l(!0),children:[(0,K.jsx)(qd,{className:`w-4 h-4 mr-2`}),`Configure Inputs`]}),p&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(Sf,{}),(0,K.jsx)(`div`,{className:`px-2 py-1.5 text-xs text-muted-foreground`,children:`Resume from checkpoint`}),o.map((e,t)=>(0,K.jsxs)(bf,{onClick:()=>f(e.checkpoint_id),className:`flex flex-col items-start py-2`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2 w-full`,children:[(0,K.jsx)(Nd,{className:`w-4 h-4 flex-shrink-0`}),(0,K.jsx)(`span`,{className:`font-medium`,children:e.metadata.iteration_count===0?`Initial State`:`Step ${e.metadata.iteration_count}`}),t===0&&(0,K.jsx)(Ft,{variant:`secondary`,className:`text-[10px] h-4 px-1 ml-auto`,children:`Latest`})]}),(0,K.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground ml-6 mt-0.5`,children:[(0,K.jsx)(Tu,{className:`w-3 h-3`}),(0,K.jsx)(`span`,{children:new Date(e.timestamp).toLocaleTimeString()}),e.metadata.size_bytes&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`span`,{children:`•`}),(0,K.jsx)(`span`,{children:m(e.metadata.size_bytes)})]})]})]},e.checkpoint_id))]})]})]}):(0,K.jsxs)(q,{onClick:d,disabled:_,variant:v,className:`gap-2 w-full`,title:a===`running`&&n?`Stop workflow execution`:void 0,children:[h,g]}),e&&(0,K.jsx)(Og,{open:c,onOpenChange:l,children:(0,K.jsxs)(kg,{className:`w-full min-w-[400px] max-w-md sm:max-w-lg md:max-w-2xl lg:max-w-4xl xl:max-w-5xl max-h-[90vh] flex flex-col`,children:[(0,K.jsxs)(Ag,{className:`px-8 pt-6`,children:[(0,K.jsx)(jg,{children:`Configure Workflow Inputs`}),(0,K.jsx)(Ng,{onClose:()=>l(!1)})]}),(0,K.jsx)(`div`,{className:`px-8 py-4 border-b flex-shrink-0`,children:(0,K.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:(0,K.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,K.jsx)(`span`,{className:`font-medium`,children:`Input Type:`}),(0,K.jsx)(Ft,{variant:`secondary`,children:u.isChatMessage?`Chat Message`:e.type===`string`?`Simple Text`:`Structured Data`})]})})}),(0,K.jsx)(`div`,{className:`flex-1 overflow-y-auto py-4 px-8`,children:u.isChatMessage?(0,K.jsx)(lv,{onSubmit:async e=>{t([{type:`message`,role:`user`,content:e}]),l(!1)},isSubmitting:r,placeholder:`Enter your message...`,entityName:`workflow`,showFileUpload:!0}):(0,K.jsx)(sb,{inputSchema:e,inputTypeName:`Input`,onSubmit:e=>{t(e),l(!1)},isSubmitting:r,className:`embedded`})})]})})]})}function wb(e){if(typeof e==`string`||typeof e==`number`)return``+e;let t=``;if(Array.isArray(e))for(let n=0,r;n{}};function Eb(){for(var e=0,t=arguments.length,n={},r;e=0&&(n=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw Error(`unknown type: `+e);return{type:e,name:n}})}Db.prototype=Eb.prototype={constructor:Db,on:function(e,t){var n=this._,r=Ob(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a0)for(var n=Array(i),r=0,i,a;r=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),jb.hasOwnProperty(t)?{space:jb[t],local:e}:e}function Nb(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===`http://www.w3.org/1999/xhtml`&&t.documentElement.namespaceURI===`http://www.w3.org/1999/xhtml`?t.createElement(e):t.createElementNS(n,e)}}function Pb(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Fb(e){var t=Mb(e);return(t.local?Pb:Nb)(t)}function Ib(){}function Lb(e){return e==null?Ib:function(){return this.querySelector(e)}}function Rb(e){typeof e!=`function`&&(e=Lb(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i=v&&(v=_+1);!(b=g[v])&&++v=0;)(o=r[i])&&(a&&o.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(o,a),a=o);return this}function mx(e){e||=hx;function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}for(var n=this._groups,r=n.length,i=Array(r),a=0;at?1:e>=t?0:NaN}function gx(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function _x(){return Array.from(this)}function vx(){for(var e=this._groups,t=0,n=e.length;t1?this.each((t==null?Ax:typeof t==`function`?Mx:jx)(e,t,n??``)):Px(this.node(),e)}function Px(e,t){return e.style.getPropertyValue(t)||kx(e).getComputedStyle(e,null).getPropertyValue(t)}function Fx(e){return function(){delete this[e]}}function Ix(e,t){return function(){this[e]=t}}function Lx(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Rx(e,t){return arguments.length>1?this.each((t==null?Fx:typeof t==`function`?Lx:Ix)(e,t)):this.node()[e]}function zx(e){return e.trim().split(/^|\s+/)}function Bx(e){return e.classList||new Vx(e)}function Vx(e){this._node=e,this._names=zx(e.getAttribute(`class`)||``)}Vx.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute(`class`,this._names.join(` `)))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute(`class`,this._names.join(` `)))},contains:function(e){return this._names.indexOf(e)>=0}};function Hx(e,t){for(var n=Bx(e),r=-1,i=t.length;++r=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}})}function _S(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,a;n()=>e;function zS(e,{sourceEvent:t,subject:n,target:r,identifier:i,active:a,x:o,y:s,dx:c,dy:l,dispatch:u}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:u}})}zS.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function BS(e){return!e.ctrlKey&&!e.button}function VS(){return this.parentNode}function HS(e,t){return t??{x:e.x,y:e.y}}function US(){return navigator.maxTouchPoints||`ontouchstart`in this}function WS(){var e=BS,t=VS,n=HS,r=US,i={},a=Eb(`start`,`drag`,`end`),o=0,s,c,l,u,d=0;function f(e){e.on(`mousedown.drag`,p).filter(r).on(`touchstart.drag`,g).on(`touchmove.drag`,_,MS).on(`touchend.drag touchcancel.drag`,v).style(`touch-action`,`none`).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}function p(n,r){if(!u&&e.call(this,n,r)){var i=y(this,t.call(this,n,r),n,r,`mouse`);i&&(kS(n.view).on(`mousemove.drag`,m,NS).on(`mouseup.drag`,h,NS),IS(n.view),PS(n),l=!1,s=n.clientX,c=n.clientY,i(`start`,n))}}function m(e){if(FS(e),!l){var t=e.clientX-s,n=e.clientY-c;l=t*t+n*n>d}i.mouse(`drag`,e)}function h(e){kS(e.view).on(`mousemove.drag mouseup.drag`,null),LS(e.view,l),FS(e),i.mouse(`end`,e)}function g(n,r){if(e.call(this,n,r))for(var i=n.changedTouches,a=t.call(this,n,r),o=i.length,s=0,c;s>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?pC(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?pC(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=eC.exec(e))?new gC(t[1],t[2],t[3],1):(t=tC.exec(e))?new gC(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=nC.exec(e))?pC(t[1],t[2],t[3],t[4]):(t=rC.exec(e))?pC(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=iC.exec(e))?CC(t[1],t[2]/100,t[3]/100,1):(t=aC.exec(e))?CC(t[1],t[2]/100,t[3]/100,t[4]):oC.hasOwnProperty(e)?fC(oC[e]):e===`transparent`?new gC(NaN,NaN,NaN,0):null}function fC(e){return new gC(e>>16&255,e>>8&255,e&255,1)}function pC(e,t,n,r){return r<=0&&(e=t=n=NaN),new gC(e,t,n,r)}function mC(e){return e instanceof qS||(e=dC(e)),e?(e=e.rgb(),new gC(e.r,e.g,e.b,e.opacity)):new gC}function hC(e,t,n,r){return arguments.length===1?mC(e):new gC(e,t,n,r??1)}function gC(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}GS(gC,hC,KS(qS,{brighter(e){return e=e==null?YS:YS**+e,new gC(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?JS:JS**+e,new gC(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new gC(xC(this.r),xC(this.g),xC(this.b),bC(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:_C,formatHex:_C,formatHex8:vC,formatRgb:yC,toString:yC}));function _C(){return`#${SC(this.r)}${SC(this.g)}${SC(this.b)}`}function vC(){return`#${SC(this.r)}${SC(this.g)}${SC(this.b)}${SC((isNaN(this.opacity)?1:this.opacity)*255)}`}function yC(){let e=bC(this.opacity);return`${e===1?`rgb(`:`rgba(`}${xC(this.r)}, ${xC(this.g)}, ${xC(this.b)}${e===1?`)`:`, ${e})`}`}function bC(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function xC(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function SC(e){return e=xC(e),(e<16?`0`:``)+e.toString(16)}function CC(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new EC(e,t,n,r)}function wC(e){if(e instanceof EC)return new EC(e.h,e.s,e.l,e.opacity);if(e instanceof qS||(e=dC(e)),!e)return new EC;if(e instanceof EC)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,c=(a+i)/2;return s?(o=t===a?(n-r)/s+(n0&&c<1?0:o,new EC(o,s,c,e.opacity)}function TC(e,t,n,r){return arguments.length===1?wC(e):new EC(e,t,n,r??1)}function EC(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}GS(EC,TC,KS(qS,{brighter(e){return e=e==null?YS:YS**+e,new EC(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?JS:JS**+e,new EC(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new gC(kC(e>=240?e-240:e+120,i,r),kC(e,i,r),kC(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new EC(DC(this.h),OC(this.s),OC(this.l),bC(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=bC(this.opacity);return`${e===1?`hsl(`:`hsla(`}${DC(this.h)}, ${OC(this.s)*100}%, ${OC(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function DC(e){return e=(e||0)%360,e<0?e+360:e}function OC(e){return Math.max(0,Math.min(1,e||0))}function kC(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}var AC=e=>()=>e;function jC(e,t){return function(n){return e+n*t}}function MC(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function NC(e){return(e=+e)==1?PC:function(t,n){return n-t?MC(t,n,e):AC(isNaN(t)?n:t)}}function PC(e,t){var n=t-e;return n?jC(e,n):AC(isNaN(e)?t:e)}var FC=(function e(t){var n=NC(t);function r(e,t){var r=n((e=hC(e)).r,(t=hC(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=PC(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+``}}return r.gamma=e,r})(1);function IC(e,t){t||=[];var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;in&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:BC(r,i)})),n=UC.lastIndex;return n180?t+=360:t-e>180&&(e+=360),a.push({i:n.push(i(n)+`rotate(`,null,r)-2,x:BC(e,t)}))}function s(e,t,n,a){e===t?t&&n.push(i(n)+`skewX(`+t+r):a.push({i:n.push(i(n)+`skewX(`,null,r)-2,x:BC(e,t)})}function c(e,t,n,r,a,o){if(e!==n||t!==r){var s=a.push(i(a)+`scale(`,null,`,`,null,`)`);o.push({i:s-4,x:BC(e,n)},{i:s-2,x:BC(t,r)})}else(n!==1||r!==1)&&a.push(i(a)+`scale(`+n+`,`+r+`)`)}return function(t,n){var r=[],i=[];return t=e(t),n=e(n),a(t.translateX,t.translateY,n.translateX,n.translateY,r,i),o(t.rotate,n.rotate,r,i),s(t.skewX,n.skewX,r,i),c(t.scaleX,t.scaleY,n.scaleX,n.scaleY,r,i),t=n=null,function(e){for(var t=-1,n=i.length,a;++t=0&&e._call.call(void 0,t),e=e._next;--cw}function ww(){hw=(mw=_w.now())+gw,cw=lw=0;try{Cw()}finally{cw=0,Ew(),hw=0}}function Tw(){var e=_w.now(),t=e-mw;t>dw&&(gw-=t,mw=e)}function Ew(){for(var e,t=fw,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:fw=n);pw=e,Dw(r)}function Dw(e){cw||(lw&&=clearTimeout(lw),e-hw>24?(e<1/0&&(lw=setTimeout(ww,e-_w.now()-gw)),uw&&=clearInterval(uw)):(uw||=(mw=_w.now(),setInterval(Tw,dw)),cw=1,vw(ww)))}function Ow(e,t,n){var r=new xw;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var kw=Eb(`start`,`end`,`cancel`,`interrupt`),Aw=[];function jw(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;Fw(e,n,{name:t,index:r,group:i,on:kw,tween:Aw,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function Mw(e,t){var n=Pw(e,t);if(n.state>0)throw Error(`too late; already scheduled`);return n}function Nw(e,t){var n=Pw(e,t);if(n.state>3)throw Error(`too late; already running`);return n}function Pw(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function Fw(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=Sw(a,0,n.time);function a(e){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=e&&o(e-n.delay)}function o(a){var l,u,d,f;if(n.state!==1)return c();for(l in r)if(f=r[l],f.name===n.name){if(f.state===3)return Ow(o);f.state===4?(f.state=6,f.timer.stop(),f.on.call(`interrupt`,e,e.__data__,f.index,f.group),delete r[l]):+l2&&r.state<5,r.state=6,r.timer.stop(),r.on.call(i?`interrupt`:`cancel`,e,e.__data__,r.index,r.group),delete n[o]}a&&delete e.__transition}}function Lw(e){return this.each(function(){Iw(this,e)})}function Rw(e,t){var n,r;return function(){var i=Nw(this,e),a=i.tween;if(a!==n){r=n=a;for(var o=0,s=r.length;o=0&&(e=e.slice(0,t)),!e||e===`start`})}function mT(e,t,n){var r,i,a=pT(t)?Mw:Nw;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function hT(e,t){var n=this._id;return arguments.length<2?Pw(this.node(),n).on.on(e):this.each(mT(n,e,t))}function gT(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function _T(){return this.on(`end.remove`,gT(this._id))}function vT(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=Lb(e));for(var r=this._groups,i=r.length,a=Array(i),o=0;o()=>e;function JT(e,{sourceEvent:t,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function YT(e,t,n){this.k=e,this.x=t,this.y=n}YT.prototype={constructor:YT,scale:function(e){return e===1?this:new YT(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new YT(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return`translate(`+this.x+`,`+this.y+`) scale(`+this.k+`)`}};var XT=new YT(1,0,0);ZT.prototype=YT.prototype;function ZT(e){for(;!e.__zoom;)if(!(e=e.parentNode))return XT;return e.__zoom}function QT(e){e.stopImmediatePropagation()}function $T(e){e.preventDefault(),e.stopImmediatePropagation()}function eE(e){return(!e.ctrlKey||e.type===`wheel`)&&!e.button}function tE(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute(`viewBox`)?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function nE(){return this.__zoom||XT}function rE(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function iE(){return navigator.maxTouchPoints||`ontouchstart`in this}function aE(e,t,n){var r=e.invertX(t[0][0])-n[0][0],i=e.invertX(t[1][0])-n[1][0],a=e.invertY(t[0][1])-n[0][1],o=e.invertY(t[1][1])-n[1][1];return e.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>a?(a+o)/2:Math.min(0,a)||Math.max(0,o))}function oE(){var e=eE,t=tE,n=aE,r=rE,i=iE,a=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],s=250,c=sw,l=Eb(`start`,`zoom`,`end`),u,d,f,p=500,m=150,h=0,g=10;function _(e){e.property(`__zoom`,nE).on(`wheel.zoom`,w,{passive:!1}).on(`mousedown.zoom`,T).on(`dblclick.zoom`,E).filter(i).on(`touchstart.zoom`,D).on(`touchmove.zoom`,O).on(`touchend.zoom touchcancel.zoom`,k).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}_.transform=function(e,t,n,r){var i=e.selection?e.selection():e;i.property(`__zoom`,nE),e===i?i.interrupt().each(function(){S(this,arguments).event(r).start().zoom(null,typeof t==`function`?t.apply(this,arguments):t).end()}):x(e,t,n,r)},_.scaleBy=function(e,t,n,r){_.scaleTo(e,function(){return this.__zoom.k*(typeof t==`function`?t.apply(this,arguments):t)},n,r)},_.scaleTo=function(e,r,i,a){_.transform(e,function(){var e=t.apply(this,arguments),a=this.__zoom,s=i==null?b(e):typeof i==`function`?i.apply(this,arguments):i,c=a.invert(s),l=typeof r==`function`?r.apply(this,arguments):r;return n(y(v(a,l),s,c),e,o)},i,a)},_.translateBy=function(e,r,i,a){_.transform(e,function(){return n(this.__zoom.translate(typeof r==`function`?r.apply(this,arguments):r,typeof i==`function`?i.apply(this,arguments):i),t.apply(this,arguments),o)},null,a)},_.translateTo=function(e,r,i,a,s){_.transform(e,function(){var e=t.apply(this,arguments),s=this.__zoom,c=a==null?b(e):typeof a==`function`?a.apply(this,arguments):a;return n(XT.translate(c[0],c[1]).scale(s.k).translate(typeof r==`function`?-r.apply(this,arguments):-r,typeof i==`function`?-i.apply(this,arguments):-i),e,o)},a,s)};function v(e,t){return t=Math.max(a[0],Math.min(a[1],t)),t===e.k?e:new YT(t,e.x,e.y)}function y(e,t,n){var r=t[0]-n[0]*e.k,i=t[1]-n[1]*e.k;return r===e.x&&i===e.y?e:new YT(e.k,r,i)}function b(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function x(e,n,r,i){e.on(`start.zoom`,function(){S(this,arguments).event(i).start()}).on(`interrupt.zoom end.zoom`,function(){S(this,arguments).event(i).end()}).tween(`zoom`,function(){var e=this,a=arguments,o=S(e,a).event(i),s=t.apply(e,a),l=r==null?b(s):typeof r==`function`?r.apply(e,a):r,u=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),d=e.__zoom,f=typeof n==`function`?n.apply(e,a):n,p=c(d.invert(l).concat(u/d.k),f.invert(l).concat(u/f.k));return function(e){if(e===1)e=f;else{var t=p(e),n=u/t[2];e=new YT(n,l[0]-t[0]*n,l[1]-t[1]*n)}o.zoom(null,e)}})}function S(e,t,n){return!n&&e.__zooming||new C(e,t)}function C(e,n){this.that=e,this.args=n,this.active=0,this.sourceEvent=null,this.extent=t.apply(e,n),this.taps=0}C.prototype={event:function(e){return e&&(this.sourceEvent=e),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit(`start`)),this},zoom:function(e,t){return this.mouse&&e!==`mouse`&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&e!==`touch`&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&e!==`touch`&&(this.touch1[1]=t.invert(this.touch1[0])),this.that.__zoom=t,this.emit(`zoom`),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit(`end`)),this},emit:function(e){var t=kS(this.that).datum();l.call(e,this.that,new JT(e,{sourceEvent:this.sourceEvent,target:_,type:e,transform:this.that.__zoom,dispatch:l}),t)}};function w(t,...i){if(!e.apply(this,arguments))return;var s=S(this,i).event(t),c=this.__zoom,l=Math.max(a[0],Math.min(a[1],c.k*2**r.apply(this,arguments))),u=jS(t);if(s.wheel)(s.mouse[0][0]!==u[0]||s.mouse[0][1]!==u[1])&&(s.mouse[1]=c.invert(s.mouse[0]=u)),clearTimeout(s.wheel);else if(c.k===l)return;else s.mouse=[u,c.invert(u)],Iw(this),s.start();$T(t),s.wheel=setTimeout(d,m),s.zoom(`mouse`,n(y(v(c,l),s.mouse[0],s.mouse[1]),s.extent,o));function d(){s.wheel=null,s.end()}}function T(t,...r){if(f||!e.apply(this,arguments))return;var i=t.currentTarget,a=S(this,r,!0).event(t),s=kS(t.view).on(`mousemove.zoom`,d,!0).on(`mouseup.zoom`,p,!0),c=jS(t,i),l=t.clientX,u=t.clientY;IS(t.view),QT(t),a.mouse=[c,this.__zoom.invert(c)],Iw(this),a.start();function d(e){if($T(e),!a.moved){var t=e.clientX-l,r=e.clientY-u;a.moved=t*t+r*r>h}a.event(e).zoom(`mouse`,n(y(a.that.__zoom,a.mouse[0]=jS(e,i),a.mouse[1]),a.extent,o))}function p(e){s.on(`mousemove.zoom mouseup.zoom`,null),LS(e.view,a.moved),$T(e),a.event(e).end()}}function E(r,...i){if(e.apply(this,arguments)){var a=this.__zoom,c=jS(r.changedTouches?r.changedTouches[0]:r,this),l=a.invert(c),u=a.k*(r.shiftKey?.5:2),d=n(y(v(a,u),c,l),t.apply(this,i),o);$T(r),s>0?kS(this).transition().duration(s).call(x,d,c,r):kS(this).call(_.transform,d,c,r)}}function D(t,...n){if(e.apply(this,arguments)){var r=t.touches,i=r.length,a=S(this,n,t.changedTouches.length===i).event(t),o,s,c,l;for(QT(t),s=0;s`Seems like you have not used ${e===`svelte`?`SvelteFlowProvider`:`ReactFlowProvider`} as an ancestor. Help: https://${e}flow.dev/error#001`,error002:()=>`It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.`,error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>`The parent container needs a width and a height to render the graph.`,error005:()=>`Only child nodes can use a parent extent.`,error006:()=>`Can't create edge. An edge needs a source and a target.`,error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e===`source`?n:r}", edge id: ${t}.`,error010:()=>`Handle: No node id found. Make sure to only use a Handle inside a custom Node.`,error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e=`react`)=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>`useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.`,error015:()=>`It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.`,error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},cE=[[-1/0,-1/0],[1/0,1/0]],lE=[`Enter`,` `,`Escape`],uE={"node.a11yDescription.default":`Press enter or space to select a node. Press delete to remove it and escape to cancel.`,"node.a11yDescription.keyboardDisabled":`Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.`,"node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":`Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.`,"controls.ariaLabel":`Control Panel`,"controls.zoomIn.ariaLabel":`Zoom In`,"controls.zoomOut.ariaLabel":`Zoom Out`,"controls.fitView.ariaLabel":`Fit View`,"controls.interactive.ariaLabel":`Toggle Interactivity`,"minimap.ariaLabel":`Mini Map`,"handle.ariaLabel":`Handle`},dE;(function(e){e.Strict=`strict`,e.Loose=`loose`})(dE||={});var fE;(function(e){e.Free=`free`,e.Vertical=`vertical`,e.Horizontal=`horizontal`})(fE||={});var pE;(function(e){e.Partial=`partial`,e.Full=`full`})(pE||={});var mE={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null},hE;(function(e){e.Bezier=`default`,e.Straight=`straight`,e.Step=`step`,e.SmoothStep=`smoothstep`,e.SimpleBezier=`simplebezier`})(hE||={});var gE;(function(e){e.Arrow=`arrow`,e.ArrowClosed=`arrowclosed`})(gE||={});var $;(function(e){e.Left=`left`,e.Top=`top`,e.Right=`right`,e.Bottom=`bottom`})($||={});var _E={[$.Left]:$.Right,[$.Right]:$.Left,[$.Top]:$.Bottom,[$.Bottom]:$.Top},vE=e=>!!e&&typeof e==`object`&&`id`in e&&`source`in e&&`target`in e,yE=e=>!!e&&typeof e==`object`&&`id`in e&&`position`in e&&!(`source`in e)&&!(`target`in e),bE=e=>!!e&&typeof e==`object`&&`id`in e&&`internals`in e&&!(`source`in e)&&!(`target`in e),xE=(e,t=[0,0])=>{let{width:n,height:r}=tD(e),i=e.origin??t,a=n*i[0],o=r*i[1];return{x:e.position.x-a,y:e.position.y-o}},SE=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};let n=!1,r=e.reduce((e,r)=>{let i=typeof r==`string`,a=!t.nodeLookup&&!i?r:void 0;return t.nodeLookup&&(a=i?t.nodeLookup.get(r):bE(r)?r:t.nodeLookup.get(r.id)),a?(n=!0,FE(e,zE(a,t.nodeOrigin))):e},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return n?LE(r):{x:0,y:0,width:0,height:0}},CE=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(e=>{(t.filter===void 0||t.filter(e))&&(n=FE(n,zE(e)),r=!0)}),r?LE(n):{x:0,y:0,width:0,height:0}},wE=(e,t,[n,r,i]=[0,0,1],a=!1,o=!1)=>{let s=(t.x-n)/i,c=(t.y-r)/i,l=t.width/i,u=t.height/i,d=[];for(let t of e.values()){let{measured:e,selectable:n=!0,hidden:r=!1}=t;if(o&&!n||r)continue;let i=e.width??t.width??t.initialWidth??0,f=e.height??t.height??t.initialHeight??0,{x:p,y:m}=t.internals.positionAbsolute,h=VE(s,c,l,u,p,m,i,f),g=i*f,_=a&&h>0;(!t.internals.handleBounds||_||h>=g||t.dragging)&&d.push(t)}return d},TE=(e,t)=>{let n=new Set;return e.forEach(e=>{n.add(e.id)}),t.filter(e=>n.has(e.source)||n.has(e.target))};function EE(e,t){let n=new Map,r=t?.nodes?new Set(t.nodes.map(e=>e.id)):null;return e.forEach(e=>{let i;if(t?.includeHiddenNodes){let{width:t,height:n}=tD(e);i=t>0&&n>0}else i=!!(e.measured.width&&e.measured.height&&!e.hidden);i&&(!r||r.has(e.id))&&n.set(e.id,e)}),n}async function DE({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:a},o){if(e.size===0)return!0;let s=QE(CE(EE(e,o)),t,n,o?.minZoom??i,o?.maxZoom??a,o?.padding??.1);return await r.setViewport(s,{duration:o?.duration,ease:o?.ease,interpolate:o?.interpolate}),!0}function OE({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,onError:a}){let o=n.get(e),s=o.parentId?n.get(o.parentId):void 0,{x:c,y:l}=s?s.internals.positionAbsolute:{x:0,y:0},u=o.origin??r,d=o.extent||i;if(o.extent===`parent`&&!o.expandParent){if(!s)a?.(`005`,sE.error005());else{let{width:e,height:t}=tD(s);e&&t&&(d=[[c,l],[c+e,l+t]])}}else s&&eD(o.extent)&&(d=[[o.extent[0][0]+c,o.extent[0][1]+l],[o.extent[1][0]+c,o.extent[1][1]+l]]);let f=eD(d)?jE(t,d,o.measured):t;return(o.measured.width===void 0||o.measured.height===void 0)&&a?.(`015`,sE.error015()),{position:{x:f.x-c+(o.measured.width??0)*u[0],y:f.y-l+(o.measured.height??0)*u[1]},positionAbsolute:f}}async function kE({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:i}){let a=new Set(e.map(e=>e.id)),o=[];for(let e of n){if(e.deletable===!1)continue;let t=a.has(e.id),n=!t&&e.parentId&&o.find(t=>t.id===e.parentId);(t||n)&&o.push(e)}let s=new Set(t.map(e=>e.id)),c=r.filter(e=>e.deletable!==!1),l=TE(o,c);for(let e of c)s.has(e.id)&&!l.find(t=>t.id===e.id)&&l.push(e);if(!i)return{edges:l,nodes:o};let u=await i({nodes:o,edges:l});return typeof u==`boolean`?u?{edges:l,nodes:o}:{edges:[],nodes:[]}:u}var AE=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),jE=(e={x:0,y:0},t,n)=>({x:AE(e.x,t[0][0],t[1][0]-(n?.width??0)),y:AE(e.y,t[0][1],t[1][1]-(n?.height??0))});function ME(e,t,n){let{width:r,height:i}=tD(n),{x:a,y:o}=n.internals.positionAbsolute;return jE(e,[[a,o],[a+r,o+i]],t)}var NE=(e,t,n)=>en?-AE(Math.abs(e-n),1,t)/t:0,PE=(e,t,n=15,r=40)=>[NE(e.x,r,t.width-r)*n,NE(e.y,r,t.height-r)*n],FE=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),IE=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),LE=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),RE=(e,t=[0,0])=>{let{x:n,y:r}=bE(e)?e.internals.positionAbsolute:xE(e,t);return{x:n,y:r,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},zE=(e,t=[0,0])=>{let{x:n,y:r}=bE(e)?e.internals.positionAbsolute:xE(e,t);return{x:n,y:r,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:r+(e.measured?.height??e.height??e.initialHeight??0)}},BE=(e,t)=>LE(FE(IE(e),IE(t))),VE=(e,t,n,r,i,a,o,s)=>{let c=Math.max(0,Math.min(e+n,i+o)-Math.max(e,i)),l=Math.max(0,Math.min(t+r,a+s)-Math.max(t,a));return Math.ceil(c*l)},HE=(e,t)=>VE(e.x,e.y,e.width,e.height,t.x,t.y,t.width,t.height),UE=e=>WE(e.width)&&WE(e.height)&&WE(e.x)&&WE(e.y),WE=e=>!isNaN(e)&&isFinite(e),GE=(e,t)=>(e,t)=>{},KE=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),qE=({x:e,y:t},[n,r,i],a=!1,o=[1,1])=>{let s={x:(e-n)/i,y:(t-r)/i};return a?KE(s,o):s},JE=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function YE(e,t){if(typeof e==`number`)return Math.floor((t-t/(1+e))*.5);if(typeof e==`string`&&e.endsWith(`px`)){let t=parseFloat(e);if(!Number.isNaN(t))return Math.floor(t)}if(typeof e==`string`&&e.endsWith(`%`)){let n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function XE(e,t,n){if(typeof e==`string`||typeof e==`number`){let r=YE(e,n),i=YE(e,t);return{top:r,right:i,bottom:r,left:i,x:i*2,y:r*2}}if(typeof e==`object`){let r=YE(e.top??e.y??0,n),i=YE(e.bottom??e.y??0,n),a=YE(e.left??e.x??0,t),o=YE(e.right??e.x??0,t);return{top:r,right:o,bottom:i,left:a,x:a+o,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function ZE(e,t,n,r,i,a){let{x:o,y:s}=JE(e,[t,n,r]),{x:c,y:l}=JE({x:e.x+e.width,y:e.y+e.height},[t,n,r]),u=i-c,d=a-l;return{left:Math.floor(o),top:Math.floor(s),right:Math.floor(u),bottom:Math.floor(d)}}var QE=(e,t,n,r,i,a)=>{let o=XE(a,t,n),s=(t-o.x)/e.width,c=(n-o.y)/e.height,l=AE(Math.min(s,c),r,i),u=e.x+e.width/2,d=e.y+e.height/2,f=t/2-u*l,p=n/2-d*l,m=ZE(e,f,p,l,t,n),h={left:Math.min(m.left-o.left,0),top:Math.min(m.top-o.top,0),right:Math.min(m.right-o.right,0),bottom:Math.min(m.bottom-o.bottom,0)};return{x:f-h.left+h.right,y:p-h.top+h.bottom,zoom:l}},$E=()=>typeof navigator<`u`&&navigator?.userAgent?.indexOf(`Mac`)>=0;function eD(e){return e!=null&&e!==`parent`}function tD(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function nD(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function rD(e,t={width:0,height:0},n,r,i){let a={...e},o=r.get(n);if(o){let e=o.origin||i;a.x+=o.internals.positionAbsolute.x-(t.width??0)*e[0],a.y+=o.internals.positionAbsolute.y-(t.height??0)*e[1]}return a}function iD(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function aD(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function oD(e){return{...uE,...e||{}}}function sD(e){return e===null?null:e?`valid`:`invalid`}function cD(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){let{x:a,y:o}=mD(e),s=qE({x:a-(i?.left??0),y:o-(i?.top??0)},r),{x:c,y:l}=n?KE(s,t):s;return{xSnapped:c,ySnapped:l,...s}}var lD=e=>({width:e.offsetWidth,height:e.offsetHeight}),uD=e=>e?.getRootNode?.()||window?.document,dD=[`INPUT`,`SELECT`,`TEXTAREA`];function fD(e){let t=e.composedPath?.()?.[0]||e.target;return t?.nodeType===1?dD.includes(t.nodeName)||t.hasAttribute(`contenteditable`)||!!t.closest(`.nokey`):!1}var pD=e=>`clientX`in e,mD=(e,t)=>{let n=pD(e),r=n?e.clientX:e.touches?.[0].clientX,i=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:i-(t?.top??0)}},hD=(e,t,n,r,i)=>{let a=t.querySelectorAll(`.${e}`);return!a||!a.length?null:Array.from(a).map(t=>{let a=t.getBoundingClientRect();return{id:t.getAttribute(`data-handleid`),type:e,nodeId:i,position:t.getAttribute(`data-handlepos`),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...lD(t)}})};function gD({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:i,sourceControlY:a,targetControlX:o,targetControlY:s}){let c=e*.125+i*.375+o*.375+n*.125,l=t*.125+a*.375+s*.375+r*.125;return[c,l,Math.abs(c-e),Math.abs(l-t)]}function _D(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function vD({pos:e,x1:t,y1:n,x2:r,y2:i,c:a}){switch(e){case $.Left:return[t-_D(t-r,a),n];case $.Right:return[t+_D(r-t,a),n];case $.Top:return[t,n-_D(n-i,a)];case $.Bottom:return[t,n+_D(i-n,a)]}}function yD({sourceX:e,sourceY:t,sourcePosition:n=$.Bottom,targetX:r,targetY:i,targetPosition:a=$.Top,curvature:o=.25}){let[s,c]=vD({pos:n,x1:e,y1:t,x2:r,y2:i,c:o}),[l,u]=vD({pos:a,x1:r,y1:i,x2:e,y2:t,c:o}),[d,f,p,m]=gD({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:s,sourceControlY:c,targetControlX:l,targetControlY:u});return[`M${e},${t} C${s},${c} ${l},${u} ${r},${i}`,d,f,p,m]}function bD({sourceX:e,sourceY:t,targetX:n,targetY:r}){let i=Math.abs(n-e)/2,a=n0}var CD=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||``}-${n}${r||``}`,wD=(e,t)=>t.some(t=>t.source===e.source&&t.target===e.target&&(t.sourceHandle===e.sourceHandle||!t.sourceHandle&&!e.sourceHandle)&&(t.targetHandle===e.targetHandle||!t.targetHandle&&!e.targetHandle)),TD=(e,t,n={})=>{if(!e.source||!e.target)return n.onError?.(`006`,sE.error006()),t;let r=n.getEdgeId||CD,i;return i=vE(e)?{...e}:{...e,id:r(e)},wD(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))};function ED({sourceX:e,sourceY:t,targetX:n,targetY:r}){let[i,a,o,s]=bD({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,a,o,s]}var DD={[$.Left]:{x:-1,y:0},[$.Right]:{x:1,y:0},[$.Top]:{x:0,y:-1},[$.Bottom]:{x:0,y:1}},OD=({source:e,sourcePosition:t=$.Bottom,target:n})=>t===$.Left||t===$.Right?e.xMath.sqrt((t.x-e.x)**2+(t.y-e.y)**2);function AD({source:e,sourcePosition:t=$.Bottom,target:n,targetPosition:r=$.Top,center:i,offset:a,stepPosition:o}){let s=DD[t],c=DD[r],l={x:e.x+s.x*a,y:e.y+s.y*a},u={x:n.x+c.x*a,y:n.y+c.y*a},d=OD({source:l,sourcePosition:t,target:u}),f=d.x===0?`y`:`x`,p=d[f],m=[],h,g,_={x:0,y:0},v={x:0,y:0},[,,y,b]=bD({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(s[f]*c[f]===-1){f===`x`?(h=i.x??l.x+(u.x-l.x)*o,g=i.y??(l.y+u.y)/2):(h=i.x??(l.x+u.x)/2,g=i.y??l.y+(u.y-l.y)*o);let e=[{x:h,y:l.y},{x:h,y:u.y}],t=[{x:l.x,y:g},{x:u.x,y:g}];m=s[f]===p?f===`x`?e:t:f===`x`?t:e}else{let i=[{x:l.x,y:u.y}],o=[{x:u.x,y:l.y}];if(m=f===`x`?s.x===p?o:i:s.y===p?i:o,t===r){let t=Math.abs(e[f]-n[f]);if(t<=a){let r=Math.min(a-1,a-t);s[f]===p?_[f]=(l[f]>e[f]?-1:1)*r:v[f]=(u[f]>n[f]?-1:1)*r}}if(t!==r){let e=f===`x`?`y`:`x`,t=s[f]===c[e],n=l[e]>u[e],r=l[e]=Math.max(Math.abs(d.y-m[0].y),Math.abs(y.y-m[0].y))?(h=(d.x+y.x)/2,g=m[0].y):(h=m[0].x,g=(d.y+y.y)/2)}let x={x:l.x+_.x,y:l.y+_.y},S={x:u.x+v.x,y:u.y+v.y};return[[e,...x.x!==m[0].x||x.y!==m[0].y?[x]:[],...m,...S.x!==m[m.length-1].x||S.y!==m[m.length-1].y?[S]:[],n],h,g,y,b]}function jD(e,t,n,r){let i=Math.min(kD(e,t)/2,kD(t,n)/2,r),{x:a,y:o}=t;if(e.x===a&&a===n.x||e.y===o&&o===n.y)return`L${a} ${o}`;if(e.y===o){let t=e.xe.id===t):e[0])||null}function RD(e,t){return e?typeof e==`string`?e:`${t?`${t}__`:``}${Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join(`&`)}`:``}function zD(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){let a=new Set;return e.reduce((e,o)=>([o.markerStart||r,o.markerEnd||i].forEach(r=>{if(r&&typeof r==`object`){let i=RD(r,t);a.has(i)||(e.push({id:i,color:r.color||n,...r}),a.add(i))}}),e),[]).sort((e,t)=>e.id.localeCompare(t.id))}var BD=1e3,VD=10,HD={nodeOrigin:[0,0],nodeExtent:cE,elevateNodesOnSelect:!0,zIndexMode:`basic`,defaults:{}},UD={...HD,checkEquality:!0};function WD(e,t){let n={...e};for(let e in t)t[e]!==void 0&&(n[e]=t[e]);return n}function GD(e,t,n){let r=WD(HD,n);for(let n of e.values())if(n.parentId)XD(n,e,t,r);else{let e=jE(xE(n,r.nodeOrigin),eD(n.extent)?n.extent:r.nodeExtent,tD(n));n.internals.positionAbsolute=e}}function KD(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;let n=[],r=[];for(let t of e.handles){let i={id:t.id,width:t.width??1,height:t.height??1,nodeId:e.id,x:t.x,y:t.y,position:t.position,type:t.type};t.type===`source`?n.push(i):t.type===`target`&&r.push(i)}return{source:n,target:r}}function qD(e){return e===`manual`}function JD(e,t,n,r={}){let i=WD(UD,r),a={i:0},o=new Map(t),s=i?.elevateNodesOnSelect&&!qD(i.zIndexMode)?BD:0,c=e.length>0,l=!1;t.clear(),n.clear();for(let u of e){let e=o.get(u.id);if(i.checkEquality&&u===e?.internals.userNode)t.set(u.id,e);else{let n=jE(xE(u,i.nodeOrigin),eD(u.extent)?u.extent:i.nodeExtent,tD(u));e={...i.defaults,...u,measured:{width:u.measured?.width,height:u.measured?.height},internals:{positionAbsolute:n,handleBounds:KD(u,e),z:ZD(u,s,i.zIndexMode),userNode:u}},t.set(u.id,e)}(e.measured===void 0||e.measured.width===void 0||e.measured.height===void 0)&&!e.hidden&&(c=!1),u.parentId&&XD(e,t,n,r,a),l||=u.selected??!1}return{nodesInitialized:c,hasSelectedNodes:l}}function YD(e,t){if(!e.parentId)return;let n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function XD(e,t,n,r,i){let{elevateNodesOnSelect:a,nodeOrigin:o,nodeExtent:s,zIndexMode:c}=WD(HD,r),l=e.parentId,u=t.get(l);if(!u){console.warn(`Parent node ${l} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}YD(e,n),i&&!u.parentId&&u.internals.rootParentIndex===void 0&&c===`auto`&&(u.internals.rootParentIndex=++i.i,u.internals.z=u.internals.z+i.i*VD),i&&u.internals.rootParentIndex!==void 0&&(i.i=u.internals.rootParentIndex);let{x:d,y:f,z:p}=QD(e,u,o,s,a&&!qD(c)?BD:0,c),{positionAbsolute:m}=e.internals,h=d!==m.x||f!==m.y;(h||p!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:h?{x:d,y:f}:m,z:p}})}function ZD(e,t,n){let r=WE(e.zIndex)?e.zIndex:0;return qD(n)?r:r+(e.selected?t:0)}function QD(e,t,n,r,i,a){let{x:o,y:s}=t.internals.positionAbsolute,c=tD(e),l=xE(e,n),u=eD(e.extent)?jE(l,e.extent,c):l,d=jE({x:o+u.x,y:s+u.y},r,c);e.extent===`parent`&&(d=ME(d,c,t));let f=ZD(e,i,a),p=t.internals.z??0;return{x:d.x,y:d.y,z:p>=f?p+1:f}}function $D(e,t,n,r=[0,0]){let i=[],a=new Map;for(let n of e){let e=t.get(n.parentId);if(!e)continue;let r=BE(a.get(n.parentId)?.expandedRect??RE(e),n.rect);a.set(n.parentId,{expandedRect:r,parent:e})}return a.size>0&&a.forEach(({expandedRect:t,parent:a},o)=>{let s=a.internals.positionAbsolute,c=tD(a),l=a.origin??r,u=t.x0||d>0||m||h)&&(i.push({id:o,type:`position`,position:{x:a.position.x-u+m,y:a.position.y-d+h}}),n.get(o)?.forEach(t=>{e.some(e=>e.id===t.id)||i.push({id:t.id,type:`position`,position:{x:t.position.x+u,y:t.position.y+d}})})),(c.width0){let e=$D(f,t,n,i);l.push(...e)}return{changes:l,updatedInternals:c}}async function tO({delta:e,panZoom:t,transform:n,translateExtent:r,width:i,height:a}){if(!t||!e.x&&!e.y)return!1;let o=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[i,a]],r);return!!o&&(o.x!==n[0]||o.y!==n[1]||o.k!==n[2])}function nO(e,t,n,r,i,a){let o=i,s=r.get(o)||new Map;r.set(o,s.set(n,t)),o=`${i}-${e}`;let c=r.get(o)||new Map;if(r.set(o,c.set(n,t)),a){o=`${i}-${e}-${a}`;let s=r.get(o)||new Map;r.set(o,s.set(n,t))}}function rO(e,t,n){e.clear(),t.clear();for(let r of n){let{source:n,target:i,sourceHandle:a=null,targetHandle:o=null}=r,s={edgeId:r.id,source:n,target:i,sourceHandle:a,targetHandle:o},c=`${n}-${a}--${i}-${o}`;nO(`source`,s,`${i}-${o}--${n}-${a}`,e,n,a),nO(`target`,s,c,e,i,o),t.set(r.id,r)}}function iO(e,t){if(!e.parentId)return!1;let n=t.get(e.parentId);return n?n.selected?!0:iO(n,t):!1}function aO(e,t,n){let r=e;do{if(r?.matches?.(t))return!0;if(r===n)return!1;r=r?.parentElement}while(r);return!1}function oO(e,t,n,r){let i=new Map;for(let[a,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!iO(o,e))&&(o.draggable||t&&o.draggable===void 0)){let t=e.get(a);t&&i.set(a,{id:a,position:t.position||{x:0,y:0},distance:{x:n.x-t.internals.positionAbsolute.x,y:n.y-t.internals.positionAbsolute.y},extent:t.extent,parentId:t.parentId,origin:t.origin,expandParent:t.expandParent,internals:{positionAbsolute:t.internals.positionAbsolute||{x:0,y:0}},measured:{width:t.measured.width??0,height:t.measured.height??0}})}return i}function sO({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){let i=[];for(let[e,a]of t){let t=n.get(e)?.internals.userNode;t&&i.push({...t,position:a.position,dragging:r})}if(!e)return[i[0],i];let a=n.get(e)?.internals.userNode;return[a?{...a,position:t.get(e)?.position||a.position,dragging:r}:i[0],i]}function cO({dragItems:e,snapGrid:t,x:n,y:r}){let i=e.values().next().value;if(!i)return null;let a={x:n-i.distance.x,y:r-i.distance.y},o=KE(a,t);return{x:o.x-a.x,y:o.y-a.y}}function lO({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:i}){let a={x:null,y:null},o=0,s=new Map,c=!1,l={x:0,y:0},u=null,d=!1,f=null,p=!1,m=!1,h=null;function g({noDragClassName:g,handleSelector:_,domNode:v,isSelectable:y,nodeId:b,nodeClickDistance:x=0}){f=kS(v);function S({x:e,y:n}){let{nodeLookup:i,nodeExtent:o,snapGrid:c,snapToGrid:l,nodeOrigin:u,onNodeDrag:d,onSelectionDrag:f,onError:p,updateNodePositions:g}=t();a={x:e,y:n};let _=!1,v=s.size>1,y=v&&o?IE(CE(s)):null,x=v&&l?cO({dragItems:s,snapGrid:c,x:e,y:n}):null;for(let[t,r]of s){if(!i.has(t))continue;let a={x:e-r.distance.x,y:n-r.distance.y};l&&(a=x?{x:Math.round(a.x+x.x),y:Math.round(a.y+x.y)}:KE(a,c));let s=null;if(v&&o&&!r.extent&&y){let{positionAbsolute:e}=r.internals,t=e.x-y.x+o[0][0],n=e.x+r.measured.width-y.x2+o[1][0],i=e.y-y.y+o[0][1],a=e.y+r.measured.height-y.y2+o[1][1];s=[[t,i],[n,a]]}let{position:d,positionAbsolute:f}=OE({nodeId:t,nextPosition:a,nodeLookup:i,nodeExtent:s||o,nodeOrigin:u,onError:p});_=_||r.position.x!==d.x||r.position.y!==d.y,r.position=d,r.internals.positionAbsolute=f}if(m||=_,_&&(g(s,!0),h&&(r||d||!b&&f))){let[e,t]=sO({nodeId:b,dragItems:s,nodeLookup:i});r?.(h,s,e,t),d?.(h,e,t),b||f?.(h,t)}}async function C(){if(!u)return;let{transform:e,panBy:n,autoPanSpeed:r,autoPanOnNodeDrag:i}=t();if(!i){c=!1,cancelAnimationFrame(o);return}let[s,d]=PE(l,u,r);(s!==0||d!==0)&&(a.x=(a.x??0)-s/e[2],a.y=(a.y??0)-d/e[2],await n({x:s,y:d})&&S(a)),o=requestAnimationFrame(C)}function w(r){let{nodeLookup:i,multiSelectionActive:o,nodesDraggable:c,transform:l,snapGrid:f,snapToGrid:p,selectNodesOnDrag:m,onNodeDragStart:h,onSelectionDragStart:g,unselectNodesAndEdges:_}=t();d=!0,(!m||!y)&&!o&&b&&(i.get(b)?.selected||_()),y&&m&&b&&e?.(b);let v=cD(r.sourceEvent,{transform:l,snapGrid:f,snapToGrid:p,containerBounds:u});if(a=v,s=oO(i,c,v,b),s.size>0&&(n||h||!b&&g)){let[e,t]=sO({nodeId:b,dragItems:s,nodeLookup:i});n?.(r.sourceEvent,s,e,t),h?.(r.sourceEvent,e,t),b||g?.(r.sourceEvent,t)}}let T=WS().clickDistance(x).on(`start`,e=>{let{domNode:n,nodeDragThreshold:r,transform:i,snapGrid:o,snapToGrid:s}=t();u=n?.getBoundingClientRect()||null,p=!1,m=!1,h=e.sourceEvent,r===0&&w(e),a=cD(e.sourceEvent,{transform:i,snapGrid:o,snapToGrid:s,containerBounds:u}),l=mD(e.sourceEvent,u)}).on(`drag`,e=>{let{autoPanOnNodeDrag:n,transform:r,snapGrid:i,snapToGrid:o,nodeDragThreshold:f,nodeLookup:m}=t(),g=cD(e.sourceEvent,{transform:r,snapGrid:i,snapToGrid:o,containerBounds:u});if(h=e.sourceEvent,(e.sourceEvent.type===`touchmove`&&e.sourceEvent.touches.length>1||b&&!m.has(b))&&(p=!0),!p){if(!c&&n&&d&&(c=!0,C()),!d){let t=mD(e.sourceEvent,u),n=t.x-l.x,r=t.y-l.y;Math.sqrt(n*n+r*r)>f&&w(e)}(a.x!==g.xSnapped||a.y!==g.ySnapped)&&s&&d&&(l=mD(e.sourceEvent,u),S(g))}}).on(`end`,e=>{if(!d||p){p&&s.size>0&&t().updateNodePositions(s,!1);return}if(c=!1,d=!1,cancelAnimationFrame(o),s.size>0){let{nodeLookup:n,updateNodePositions:r,onNodeDragStop:a,onSelectionDragStop:o}=t();if(m&&=(r(s,!1),!1),i||a||!b&&o){let[t,r]=sO({nodeId:b,dragItems:s,nodeLookup:n,dragging:!1});i?.(e.sourceEvent,s,t,r),a?.(e.sourceEvent,t,r),b||o?.(e.sourceEvent,r)}}}).filter(e=>{let t=e.target;return!e.button&&(!g||!aO(t,`.${g}`,v))&&(!_||aO(t,_,v))});f.call(T)}function _(){f?.on(`.drag`,null)}return{update:g,destroy:_}}function uO(e,t,n){let r=[],i={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(let e of t.values())HE(i,RE(e))>0&&r.push(e);return r}var dO=250;function fO(e,t,n,r){let i=[],a=1/0,o=uO(e,n,t+dO);for(let n of o){let o=[...n.internals.handleBounds?.source??[],...n.internals.handleBounds?.target??[]];for(let s of o){if(r.nodeId===s.nodeId&&r.type===s.type&&r.id===s.id)continue;let{x:o,y:c}=ID(n,s,s.position,!0),l=Math.sqrt((o-e.x)**2+(c-e.y)**2);l>t||(l1){let e=r.type===`source`?`target`:`source`;return i.find(t=>t.type===e)??i[0]}return i[0]}function pO(e,t,n,r,i,a=!1){let o=r.get(e);if(!o)return null;let s=i===`strict`?o.internals.handleBounds?.[t]:[...o.internals.handleBounds?.source??[],...o.internals.handleBounds?.target??[]],c=(n?s?.find(e=>e.id===n):s?.[0])??null;return c&&a?{...c,...ID(o,c,c.position,!0)}:c}function mO(e,t){return e||(t?.classList.contains(`target`)?`target`:t?.classList.contains(`source`)?`source`:null)}function hO(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}var gO=()=>!0;function _O(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:a,isTarget:o,domNode:s,nodeLookup:c,lib:l,autoPanOnConnect:u,flowId:d,panBy:f,cancelConnection:p,onConnectStart:m,onConnect:h,onConnectEnd:g,isValidConnection:_=gO,onReconnectEnd:v,updateConnection:y,getTransform:b,getFromHandle:x,autoPanSpeed:S,dragThreshold:C=1,handleDomNode:w}){let T=uD(e.target),E=0,D,{x:O,y:k}=mD(e),A=mO(a,w),j=s?.getBoundingClientRect(),M=!1;if(!j||!A)return;let N=pO(i,A,r,c,t);if(!N)return;let P=mD(e,j),F=!1,I=null,L=!1,R=null;function z(){if(!u||!j)return;let[e,t]=PE(P,j,S);f({x:e,y:t}),E=requestAnimationFrame(z)}let B={...N,nodeId:i,type:A,position:N.position},ee=c.get(i),V={inProgress:!0,isValid:null,from:ID(ee,B,$.Left,!0),fromHandle:B,fromPosition:B.position,fromNode:ee,to:P,toHandle:null,toPosition:_E[B.position],toNode:null,pointer:P};function H(){M=!0,y(V),m?.(e,{nodeId:i,handleId:r,handleType:A})}C===0&&H();function te(e){if(!M){let{x:t,y:n}=mD(e),r=t-O,i=n-k;if(!(r*r+i*i>C*C))return;H()}if(!x()||!B){ne(e);return}let a=b();P=mD(e,j),D=fO(qE(P,a,!1,[1,1]),n,c,B),F||=(z(),!0);let s=vO(e,{handle:D,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:o?`target`:`source`,isValidConnection:_,doc:T,lib:l,flowId:d,nodeLookup:c});R=s.handleDomNode,I=s.connection,L=hO(!!D,s.isValid);let u=c.get(i),f=u?ID(u,B,$.Left,!0):V.from,p={...V,from:f,isValid:L,to:s.toHandle&&L?JE({x:s.toHandle.x,y:s.toHandle.y},a):P,toHandle:s.toHandle,toPosition:L&&s.toHandle?s.toHandle.position:_E[B.position],toNode:s.toHandle?c.get(s.toHandle.nodeId):null,pointer:P};y(p),V=p}function ne(e){if(!(`touches`in e&&e.touches.length>0)){if(M){(D||R)&&I&&L&&h?.(I);let{inProgress:t,...n}=V,r={...n,toPosition:V.toHandle?V.toPosition:null};g?.(e,r),a&&v?.(e,r)}p(),cancelAnimationFrame(E),F=!1,L=!1,I=null,R=null,T.removeEventListener(`mousemove`,te),T.removeEventListener(`mouseup`,ne),T.removeEventListener(`touchmove`,te),T.removeEventListener(`touchend`,ne)}}T.addEventListener(`mousemove`,te),T.addEventListener(`mouseup`,ne),T.addEventListener(`touchmove`,te),T.addEventListener(`touchend`,ne)}function vO(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:a,doc:o,lib:s,flowId:c,isValidConnection:l=gO,nodeLookup:u}){let d=a===`target`,f=t?o.querySelector(`.${s}-flow__handle[data-id="${c}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:p,y:m}=mD(e),h=o.elementFromPoint(p,m),g=h?.classList.contains(`${s}-flow__handle`)?h:f,_={handleDomNode:g,isValid:!1,connection:null,toHandle:null};if(g){let e=mO(void 0,g),t=g.getAttribute(`data-nodeid`),a=g.getAttribute(`data-handleid`),o=g.classList.contains(`connectable`),s=g.classList.contains(`connectableend`);if(!t||!e)return _;let c={source:d?t:r,sourceHandle:d?a:i,target:d?r:t,targetHandle:d?i:a};_.connection=c,_.isValid=o&&s&&(n===dE.Strict?d&&e===`source`||!d&&e===`target`:t!==r||a!==i)&&l(c),_.toHandle=pO(t,e,a,u,n,!0)}return _}var yO={onPointerDown:_O,isValid:vO};function bO({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){let i=kS(e);function a({translateExtent:e,width:a,height:o,zoomStep:s=1,pannable:c=!0,zoomable:l=!0,inversePan:u=!1}){let d=e=>{if(e.sourceEvent.type!==`wheel`||!t)return;let r=n(),i=e.sourceEvent.ctrlKey&&$E()?10:1,a=-e.sourceEvent.deltaY*(e.sourceEvent.deltaMode===1?.05:e.sourceEvent.deltaMode?1:.002)*s,o=r[2]*2**(a*i);t.scaleTo(o)},f=[0,0],p=oE().on(`start`,e=>{(e.sourceEvent.type===`mousedown`||e.sourceEvent.type===`touchstart`)&&(f=[e.sourceEvent.clientX??e.sourceEvent.touches[0].clientX,e.sourceEvent.clientY??e.sourceEvent.touches[0].clientY])}).on(`zoom`,c?i=>{let s=n();if(i.sourceEvent.type!==`mousemove`&&i.sourceEvent.type!==`touchmove`||!t)return;let c=[i.sourceEvent.clientX??i.sourceEvent.touches[0].clientX,i.sourceEvent.clientY??i.sourceEvent.touches[0].clientY],l=[c[0]-f[0],c[1]-f[1]];f=c;let d=r()*Math.max(s[2],Math.log(s[2]))*(u?-1:1),p={x:s[0]-l[0]*d,y:s[1]-l[1]*d},m=[[0,0],[a,o]];t.setViewportConstrained({x:p.x,y:p.y,zoom:s[2]},m,e)}:null).on(`zoom.wheel`,l?d:null);i.call(p,{})}function o(){i.on(`zoom`,null)}return{update:a,destroy:o,pointer:jS}}var xO=e=>({x:e.x,y:e.y,zoom:e.k}),SO=({x:e,y:t,zoom:n})=>XT.translate(e,t).scale(n),CO=(e,t)=>e.target.closest(`.${t}`),wO=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),TO=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,EO=(e,t=0,n=TO,r=()=>{})=>{let i=typeof t==`number`&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on(`end`,r):e},DO=e=>{let t=e.ctrlKey&&$E()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function OO({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:a,zoomOnPinch:o,onPanZoomStart:s,onPanZoom:c,onPanZoomEnd:l}){return u=>{if(CO(u,t))return u.ctrlKey&&u.preventDefault(),!1;u.preventDefault(),u.stopImmediatePropagation();let d=n.property(`__zoom`).k||1;if(u.ctrlKey&&o){let e=jS(u),t=d*2**DO(u);r.scaleTo(n,t,e,u);return}let f=u.deltaMode===1?20:1,p=i===fE.Vertical?0:u.deltaX*f,m=i===fE.Horizontal?0:u.deltaY*f;!$E()&&u.shiftKey&&i!==fE.Vertical&&(p=u.deltaY*f,m=0),r.translateBy(n,-(p/d)*a,-(m/d)*a,{internal:!0});let h=xO(n.property(`__zoom`));clearTimeout(e.panScrollTimeout),e.isPanScrolling?c?.(u,h):(e.isPanScrolling=!0,s?.(u,h)),e.panScrollTimeout=setTimeout(()=>{l?.(u,h),e.isPanScrolling=!1},150)}}function kO({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){let a=r.type===`wheel`,o=!t&&a&&!r.ctrlKey,s=CO(r,e);if(r.ctrlKey&&a&&s&&r.preventDefault(),o||s)return null;r.preventDefault(),n.call(this,r,i)}}function AO({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;let i=xO(r.transform);e.mouseButton=r.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=i,r.sourceEvent?.type===`mousedown`&&t(!0),n&&n?.(r.sourceEvent,i)}}function jO({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return a=>{e.usedRightMouseButton=!!(n&&wO(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),i&&!a.sourceEvent?.internal&&i?.(a.sourceEvent,xO(a.transform))}}function MO({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:a}){return o=>{if(!o.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&wO(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&a(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){let t=xO(o.transform);e.prevViewport=t,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i?.(o.sourceEvent,t)},n?150:0)}}}function NO({panActivationKeyPressed:e,zoomActivationKeyPressed:t,zoomOnScroll:n,zoomOnPinch:r,panOnDrag:i,panOnScroll:a,zoomOnDoubleClick:o,userSelectionActive:s,noWheelClassName:c,noPanClassName:l,lib:u,connectionInProgress:d}){return f=>{let p=t||n,m=r&&f.ctrlKey,h=f.type===`wheel`;if(f.button===1&&f.type===`mousedown`&&(CO(f,`${u}-flow__node`)||CO(f,`${u}-flow__edge`)||CO(f,`${u}-flow__selection`)||CO(f,`${u}-flow__nodesselection`)))return!0;if(!i&&!p&&!a&&!o&&!r||s||d&&!h||CO(f,c)&&h||CO(f,l)&&(!h||a&&h&&!t)||!r&&f.ctrlKey&&h)return!1;if(!r&&f.type===`touchstart`&&f.touches?.length>1)return f.preventDefault(),!1;if(!p&&!a&&!m&&h||!i&&(f.type===`mousedown`||f.type===`touchstart`)||Array.isArray(i)&&!i.includes(f.button)&&f.type===`mousedown`)return!1;let g=Array.isArray(i)&&i.includes(f.button)||!f.button||f.button<=1;return(!f.ctrlKey||h||e)&&g}}function PO({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:i,onPanZoom:a,onPanZoomStart:o,onPanZoomEnd:s,onDraggingChange:c}){let l={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},u=e.getBoundingClientRect(),d=[[0,0],[u.width,u.height]];(typeof ResizeObserver<`u`?new ResizeObserver(e=>{let t=e[0];t&&(d=[[0,0],[t.contentRect.width,t.contentRect.height]])}):null)?.observe(e);let f=oE().extent(()=>d).scaleExtent([t,n]).translateExtent(r),p=kS(e).call(f);y({x:i.x,y:i.y,zoom:AE(i.zoom,t,n)},[[0,0],[u.width,u.height]],r);let m=p.on(`wheel.zoom`),h=p.on(`dblclick.zoom`);f.wheelDelta(DO);async function g(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?qC:sw).transform(EO(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function _({noWheelClassName:e,noPanClassName:t,onPaneContextMenu:n,userSelectionActive:r,panOnScroll:i,panOnDrag:u,panOnScrollMode:d,panOnScrollSpeed:g,preventScrolling:_,zoomOnPinch:y,zoomOnScroll:b,zoomOnDoubleClick:x,panActivationKeyPressed:S=!1,zoomActivationKeyPressed:C,lib:w,onTransformChange:T,connectionInProgress:E,paneClickDistance:D,selectionOnDrag:O}){r&&!l.isZoomingOrPanning&&v();let k=i&&!C&&!r;f.clickDistance(O?1/0:!WE(D)||D<0?0:D);let A=k?OO({zoomPanValues:l,noWheelClassName:e,d3Selection:p,d3Zoom:f,panOnScrollMode:d,panOnScrollSpeed:g,zoomOnPinch:y,onPanZoomStart:o,onPanZoom:a,onPanZoomEnd:s}):kO({noWheelClassName:e,preventScrolling:_,d3ZoomHandler:m});p.on(`wheel.zoom`,A,{passive:!1});let j=AO({zoomPanValues:l,onDraggingChange:c,onPanZoomStart:o});f.on(`start`,j);let M=jO({zoomPanValues:l,panOnDrag:u,onPaneContextMenu:!!n,onPanZoom:a,onTransformChange:T});f.on(`zoom`,M);let N=MO({zoomPanValues:l,panOnDrag:u,panOnScroll:i,onPaneContextMenu:n,onPanZoomEnd:s,onDraggingChange:c});f.on(`end`,N);let P=NO({panActivationKeyPressed:S,zoomActivationKeyPressed:C,panOnDrag:u,zoomOnScroll:b,panOnScroll:i,zoomOnDoubleClick:x,zoomOnPinch:y,userSelectionActive:r,noPanClassName:t,noWheelClassName:e,lib:w,connectionInProgress:E});f.filter(P),x?p.on(`dblclick.zoom`,h):p.on(`dblclick.zoom`,null)}function v(){f.on(`zoom`,null)}async function y(e,t,n){let r=SO(e),i=f?.constrain()(r,t,n);return i&&await g(i),i}async function b(e,t){let n=SO(e);return await g(n,t),n}function x(e){if(p){let t=SO(e),n=p.property(`__zoom`);(n.k!==e.zoom||n.x!==e.x||n.y!==e.y)&&f?.transform(p,t,null,{sync:!0})}}function S(){let e=p?ZT(p.node()):{x:0,y:0,k:1};return{x:e.x,y:e.y,zoom:e.k}}async function C(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?qC:sw).scaleTo(EO(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}async function w(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?qC:sw).scaleBy(EO(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function T(e){f?.scaleExtent(e)}function E(e){f?.translateExtent(e)}function D(e){let t=!WE(e)||e<0?0:e;f?.clickDistance(t)}return{update:_,destroy:v,setViewport:b,setViewportConstrained:y,getViewport:S,scaleTo:C,scaleBy:w,setScaleExtent:T,setTranslateExtent:E,syncViewport:x,setClickDistance:D}}var FO;(function(e){e.Line=`line`,e.Handle=`handle`})(FO||={});function IO({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:i,affectsY:a}){let o=e-t,s=n-r,c=[o>0?1:o<0?-1:0,s>0?1:s<0?-1:0];return o&&i&&(c[0]*=-1),s&&a&&(c[1]*=-1),c}function LO(e){return{isHorizontal:e.includes(`right`)||e.includes(`left`),isVertical:e.includes(`bottom`)||e.includes(`top`),affectsX:e.includes(`left`),affectsY:e.includes(`top`)}}function RO(e,t){return Math.max(0,t-e)}function zO(e,t){return Math.max(0,e-t)}function BO(e,t,n){return Math.max(0,t-e,e-n)}function VO(e,t){return e?!t:t}function HO(e,t,n,r,i,a,o,s){let{affectsX:c,affectsY:l}=t,{isHorizontal:u,isVertical:d}=t,f=u&&d,{xSnapped:p,ySnapped:m}=n,{minWidth:h,maxWidth:g,minHeight:_,maxHeight:v}=r,{x:y,y:b,width:x,height:S,aspectRatio:C}=e,w=Math.floor(u?p-e.pointerX:0),T=Math.floor(d?m-e.pointerY:0),E=x+(c?-w:w),D=S+(l?-T:T),O=-a[0]*x,k=-a[1]*S,A=BO(E,h,g),j=BO(D,_,v);if(o){let e=0,t=0;c&&w<0?e=RO(y+w+O,o[0][0]):!c&&w>0&&(e=zO(y+E+O,o[1][0])),l&&T<0?t=RO(b+T+k,o[0][1]):!l&&T>0&&(t=zO(b+D+k,o[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(s){let e=0,t=0;c&&w>0?e=zO(y+w,s[0][0]):!c&&w<0&&(e=RO(y+E,s[1][0])),l&&T>0?t=zO(b+T,s[0][1]):!l&&T<0&&(t=RO(b+D,s[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(i){if(u){let e=BO(E/C,_,v)*C;if(A=Math.max(A,e),o){let e=0;e=!c&&!l||c&&!l&&f?zO(b+k+E/C,o[1][1])*C:RO(b+k+(c?w:-w)/C,o[0][1])*C,A=Math.max(A,e)}if(s){let e=0;e=!c&&!l||c&&!l&&f?RO(b+E/C,s[1][1])*C:zO(b+(c?w:-w)/C,s[0][1])*C,A=Math.max(A,e)}}if(d){let e=BO(D*C,h,g)/C;if(j=Math.max(j,e),o){let e=0;e=!c&&!l||l&&!c&&f?zO(y+D*C+O,o[1][0])/C:RO(y+(l?T:-T)*C+O,o[0][0])/C,j=Math.max(j,e)}if(s){let e=0;e=!c&&!l||l&&!c&&f?RO(y+D*C,s[1][0])/C:zO(y+(l?T:-T)*C,s[0][0])/C,j=Math.max(j,e)}}}T+=T<0?j:-j,w+=w<0?A:-A,i&&(f?E>D*C?T=(VO(c,l)?-w:w)/C:w=(VO(c,l)?-T:T)*C:u?(T=w/C,l=c):(w=T*C,c=l));let M=c?y+w:y,N=l?b+T:b;return{width:x+(c?-w:w),height:S+(l?-T:T),x:a[0]*w*(c?-1:1)+M,y:a[1]*T*(l?-1:1)+N}}var UO={width:0,height:0,x:0,y:0},WO={...UO,pointerX:0,pointerY:0,aspectRatio:1};function GO(e,t,n){let r=t.position.x+e.position.x,i=t.position.y+e.position.y,a=e.measured.width??0,o=e.measured.height??0,s=n[0]*a,c=n[1]*o;return[[r-s,i-c],[r+a-s,i+o-c]]}function KO({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:i}){let a=kS(e),o={controlDirection:LO(`bottom-right`),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function s({controlPosition:e,boundaries:s,keepAspectRatio:c,resizeDirection:l,onResizeStart:u,onResize:d,onResizeEnd:f,shouldResize:p}){let m={...UO},h={...WO};o={boundaries:s,resizeDirection:l,keepAspectRatio:c,controlDirection:LO(e)};let g,_=null,v=[],y,b,x,S=WS().on(`start`,e=>{let{nodeLookup:r,transform:i,snapGrid:a,snapToGrid:o,nodeOrigin:s,paneDomNode:c}=n();if(g=r.get(t),!g)return;_=c?.getBoundingClientRect()??null;let{xSnapped:l,ySnapped:d}=cD(e.sourceEvent,{transform:i,snapGrid:a,snapToGrid:o,containerBounds:_});m={width:g.measured.width??0,height:g.measured.height??0,x:g.position.x??0,y:g.position.y??0},h={...m,pointerX:l,pointerY:d,aspectRatio:m.width/m.height},y=void 0,b=eD(g.extent)?g.extent:void 0,g.parentId&&(g.extent===`parent`||g.expandParent)&&(y=r.get(g.parentId)),y&&g.extent===`parent`&&(b=[[0,0],[y.measured.width,y.measured.height]]),v=[],x=void 0;for(let[e,n]of r)if(n.parentId===t&&(v.push({id:e,position:{...n.position},extent:n.extent}),n.extent===`parent`||n.expandParent)){let e=GO(n,g,n.origin??s);x=x?[[Math.min(e[0][0],x[0][0]),Math.min(e[0][1],x[0][1])],[Math.max(e[1][0],x[1][0]),Math.max(e[1][1],x[1][1])]]:e}u?.(e,{...m})}).on(`drag`,e=>{let{transform:t,snapGrid:i,snapToGrid:a,nodeOrigin:s}=n(),c=cD(e.sourceEvent,{transform:t,snapGrid:i,snapToGrid:a,containerBounds:_}),l=[];if(!g)return;let{x:u,y:f,width:S,height:C}=m,w={},T=g.origin??s,{width:E,height:D,x:O,y:k}=HO(h,o.controlDirection,c,o.boundaries,o.keepAspectRatio,T,b,x),A=E!==S,j=D!==C,M=O!==u&&A,N=k!==f&&j;if(!M&&!N&&!A&&!j)return;let P={prevValues:{...m},startX:h.x,startY:h.y,childNodes:v.map(e=>({...e,position:{...e.position}}))};if((M||N||T[0]===1||T[1]===1)&&(w.x=M?O:m.x,w.y=N?k:m.y,m.x=w.x,m.y=w.y,v.length>0)){let e=O-u,t=k-f;for(let n of v)n.position={x:n.position.x-e+T[0]*(E-S),y:n.position.y-t+T[1]*(D-C)},l.push(n)}if((A||j)&&(w.width=A&&(!o.resizeDirection||o.resizeDirection===`horizontal`)?E:m.width,w.height=j&&(!o.resizeDirection||o.resizeDirection===`vertical`)?D:m.height,m.width=w.width,m.height=w.height),y&&g.expandParent){let e=T[0]*(w.width??0);w.x&&w.x{e.position=P.childNodes[t].position});return}d?.(e,I),r(w,l)}).on(`end`,e=>{f?.(e,{...m}),i?.({...m})});a.call(S)}function c(){a.on(`.drag`,null)}return{update:s,destroy:c}}var qO=s((e=>{var t=f();function n(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var r=typeof Object.is==`function`?Object.is:n,i=t.useState,a=t.useEffect,o=t.useLayoutEffect,s=t.useDebugValue;function c(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),c=r[0].inst,u=r[1];return o(function(){c.value=n,c.getSnapshot=t,l(c)&&u({inst:c})},[e,n,t]),a(function(){return l(c)&&u({inst:c}),e(function(){l(c)&&u({inst:c})})},[e]),s(n),n}function l(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch{return!0}}function u(e,t){return t()}var d=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?u:c;e.useSyncExternalStore=t.useSyncExternalStore===void 0?d:t.useSyncExternalStore})),JO=s(((e,t)=>{t.exports=qO()})),YO=s((e=>{var t=f(),n=JO();function r(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var i=typeof Object.is==`function`?Object.is:r,a=n.useSyncExternalStore,o=t.useRef,s=t.useEffect,c=t.useMemo,l=t.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,u){var d=o(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=c(function(){function e(e){if(!a){if(a=!0,o=e,e=r(e),u!==void 0&&f.hasValue){var t=f.value;if(u(t,e))return s=t}return s=e}if(t=s,i(o,e))return t;var n=r(e);return u!==void 0&&u(t,n)?(o=e,t):(o=e,s=n)}var a=!1,o,s,c=n===void 0?null:n;return[function(){return e(t())},c===null?void 0:function(){return e(c())}]},[t,n,r,u]);var p=a(e,d[0],d[1]);return s(function(){f.hasValue=!0,f.value=p},[p]),l(p),p}})),XO=u(s(((e,t)=>{t.exports=YO()}))(),1),ZO=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e)),destroy:()=>{n.clear()}},o=t=e(r,i,a);return a},QO=e=>e?ZO(e):ZO,{useDebugValue:$O}=y.default,{useSyncExternalStoreWithSelector:ek}=XO.default,tk=e=>e;function nk(e,t=tk,n){let r=ek(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return $O(r),r}var rk=(e,t)=>{let n=QO(e),r=(e,r=t)=>nk(n,e,r);return Object.assign(r,n),r},ik=(e,t)=>e?rk(e,t):rk;function ak(e,t){if(Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[n,r]of e)if(!Object.is(r,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}var ok=(0,y.createContext)(null),sk=ok.Provider,ck=sE.error001(`react`);function lk(e,t){let n=(0,y.useContext)(ok);if(n===null)throw Error(ck);return nk(n,e,t)}function uk(){let e=(0,y.useContext)(ok);if(e===null)throw Error(ck);return(0,y.useMemo)(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}var dk={display:`none`},fk={position:`absolute`,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0px, 0px, 0px, 0px)`,clipPath:`inset(100%)`},pk=`react-flow__node-desc`,mk=`react-flow__edge-desc`,hk=`react-flow__aria-live`,gk=e=>e.ariaLiveMessage,_k=e=>e.ariaLabelConfig;function vk({rfId:e}){let t=lk(gk);return(0,K.jsx)(`div`,{id:`${hk}-${e}`,"aria-live":`assertive`,"aria-atomic":`true`,style:fk,children:t})}function yk({rfId:e,disableKeyboardA11y:t}){let n=lk(_k);return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`div`,{id:`${pk}-${e}`,style:dk,children:t?n[`node.a11yDescription.default`]:n[`node.a11yDescription.keyboardDisabled`]}),(0,K.jsx)(`div`,{id:`${mk}-${e}`,style:dk,children:n[`edge.a11yDescription.default`]}),!t&&(0,K.jsx)(vk,{rfId:e})]})}var bk=(0,y.forwardRef)(({position:e=`top-left`,children:t,className:n,style:r,...i},a)=>{let o=`${e}`.split(`-`);return(0,K.jsx)(`div`,{className:wb([`react-flow__panel`,n,...o]),style:r,ref:a,...i,children:t})});bk.displayName=`Panel`;var xk=`https://reactflow.dev?utm_source=attribution`;function Sk({proOptions:e,position:t=`bottom-right`}){return(0,y.useEffect)(()=>{},[]),e?.hideAttribution?null:(0,K.jsx)(bk,{position:t,className:`react-flow__attribution`,"data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${xk}`,children:(0,K.jsx)(`a`,{href:xk,target:`_blank`,rel:`noopener noreferrer`,"aria-label":`React Flow attribution`,children:`React Flow`})})}var Ck=e=>{let t=[],n=[];for(let[,n]of e.nodeLookup)n.selected&&t.push(n.internals.userNode);for(let[,t]of e.edgeLookup)t.selected&&n.push(t);return{selectedNodes:t,selectedEdges:n}},wk=e=>e.id;function Tk(e,t){return ak(e.selectedNodes.map(wk),t.selectedNodes.map(wk))&&ak(e.selectedEdges.map(wk),t.selectedEdges.map(wk))}function Ek({onSelectionChange:e}){let t=uk(),{selectedNodes:n,selectedEdges:r}=lk(Ck,Tk);return(0,y.useEffect)(()=>{let i={nodes:n,edges:r};e?.(i),t.getState().onSelectionChangeHandlers.forEach(e=>e(i))},[n,r,e]),null}var Dk=e=>!!e.onSelectionChangeHandlers;function Ok({onSelectionChange:e}){let t=lk(Dk);return e||t?(0,K.jsx)(Ek,{onSelectionChange:e}):null}var kk=[0,0],Ak={x:0,y:0,zoom:1},jk=[...`nodes.edges.defaultNodes.defaultEdges.onConnect.onConnectStart.onConnectEnd.onClickConnectStart.onClickConnectEnd.nodesDraggable.autoPanOnNodeFocus.nodesConnectable.nodesFocusable.edgesFocusable.edgesReconnectable.elevateNodesOnSelect.elevateEdgesOnSelect.minZoom.maxZoom.nodeExtent.onNodesChange.onEdgesChange.elementsSelectable.connectionMode.snapGrid.snapToGrid.translateExtent.connectOnClick.defaultEdgeOptions.fitView.fitViewOptions.onNodesDelete.onEdgesDelete.onDelete.onNodeDrag.onNodeDragStart.onNodeDragStop.onSelectionDrag.onSelectionDragStart.onSelectionDragStop.onMoveStart.onMove.onMoveEnd.noPanClassName.nodeOrigin.autoPanOnConnect.autoPanOnNodeDrag.onError.connectionRadius.isValidConnection.selectNodesOnDrag.nodeDragThreshold.connectionDragThreshold.onBeforeDelete.debug.autoPanSpeed.ariaLabelConfig.zIndexMode`.split(`.`),`rfId`],Mk=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),Nk={translateExtent:cE,nodeOrigin:kk,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:`nopan`,rfId:`1`};function Pk(e){let{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:i,setTranslateExtent:a,setNodeExtent:o,reset:s,setDefaultNodesAndEdges:c}=lk(Mk,ak),l=uk();(0,y.useEffect)(()=>(c(e.defaultNodes,e.defaultEdges),()=>{u.current=Nk,s()}),[]);let u=(0,y.useRef)(Nk);return(0,y.useEffect)(()=>{for(let s of jk){let c=e[s];c!==u.current[s]&&e[s]!==void 0&&(s===`nodes`?t(c):s===`edges`?n(c):s===`minZoom`?r(c):s===`maxZoom`?i(c):s===`translateExtent`?a(c):s===`nodeExtent`?o(c):s===`ariaLabelConfig`?l.setState({ariaLabelConfig:oD(c)}):s===`fitView`?l.setState({fitViewQueued:c}):s===`fitViewOptions`?l.setState({fitViewOptions:c}):l.setState({[s]:c}))}u.current=e},jk.map(t=>e[t])),null}function Fk(){return typeof window>`u`||!window.matchMedia?null:window.matchMedia(`(prefers-color-scheme: dark)`)}function Ik(e){let[t,n]=(0,y.useState)(e===`system`?null:e);return(0,y.useEffect)(()=>{if(e!==`system`){n(e);return}let t=Fk(),r=()=>n(t?.matches?`dark`:`light`);return r(),t?.addEventListener(`change`,r),()=>{t?.removeEventListener(`change`,r)}},[e]),t===null?Fk()?.matches?`dark`:`light`:t}var Lk=typeof document<`u`?document:null;function Rk(e=null,t={target:Lk,actInsideInputWithModifier:!0}){let[n,r]=(0,y.useState)(!1),i=(0,y.useRef)(!1),a=(0,y.useRef)(new Set([])),[o,s]=(0,y.useMemo)(()=>{if(e!==null){let t=(Array.isArray(e)?e:[e]).filter(e=>typeof e==`string`).map(e=>e.replace(/\+/g,` `).replace(` `,` +`).split(` -`));return[t,t.reduce((e,t)=>e.concat(...t),[])]}return[[],[]]},[e]);return(0,y.useEffect)(()=>{let n=t?.target??Fk,c=t?.actInsideInputWithModifier??!0;if(e!==null){let e=e=>{if(i.current=e.ctrlKey||e.metaKey||e.shiftKey||e.altKey,(!i.current||i.current&&!c)&&uD(e))return!1;let n=Rk(e.code,s);if(a.current.add(e[n]),Lk(o,a.current,!1)){let n=e.composedPath?.()?.[0]||e.target,a=n?.nodeName===`BUTTON`||n?.nodeName===`A`;t.preventDefault!==!1&&(i.current||!a)&&e.preventDefault(),r(!0)}},l=e=>{let t=Rk(e.code,s);Lk(o,a.current,!0)?(r(!1),a.current.clear()):a.current.delete(e[t]),e.key===`Meta`&&a.current.clear(),i.current=!1},u=()=>{a.current.clear(),r(!1)};return n?.addEventListener(`keydown`,e),n?.addEventListener(`keyup`,l),window.addEventListener(`blur`,u),window.addEventListener(`contextmenu`,u),()=>{n?.removeEventListener(`keydown`,e),n?.removeEventListener(`keyup`,l),window.removeEventListener(`blur`,u),window.removeEventListener(`contextmenu`,u)}}},[e,r]),n}function Lk(e,t,n){return e.filter(e=>n||e.length===t.size).some(e=>e.every(e=>t.has(e)))}function Rk(e,t){return t.includes(e)?`code`:`key`}var zk=()=>{let e=ck();return(0,y.useMemo)(()=>({zoomIn:async t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):!1},zoomOut:async t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):!1},zoomTo:async(t,n)=>{let{panZoom:r}=e.getState();return r?r.scaleTo(t,n):!1},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{let{transform:[r,i,a],panZoom:o}=e.getState();return o?(await o.setViewport({x:t.x??r,y:t.y??i,zoom:t.zoom??a},n),!0):!1},getViewport:()=>{let[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{let{width:r,height:i,minZoom:a,maxZoom:o,panZoom:s}=e.getState(),c=XE(t,r,i,a,o,n?.padding??.1);return s?(await s.setViewport(c,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0):!1},screenToFlowPosition:(t,n={})=>{let{transform:r,snapGrid:i,snapToGrid:a,domNode:o}=e.getState();if(!o)return t;let{x:s,y:c}=o.getBoundingClientRect(),l={x:t.x-s,y:t.y-c},u=n.snapGrid??i;return GE(l,r,n.snapToGrid??a,u)},flowToScreenPosition:t=>{let{transform:n,domNode:r}=e.getState();if(!r)return t;let{x:i,y:a}=r.getBoundingClientRect(),o=KE(t,n);return{x:o.x+i,y:o.y+a}}}),[])};function Bk(e,t){let n=[],r=new Map,i=[];for(let t of e)if(t.type===`add`){i.push(t);continue}else if(t.type===`remove`||t.type===`replace`)r.set(t.id,[t]);else{let e=r.get(t.id);e?e.push(t):r.set(t.id,[t])}for(let e of t){let t=r.get(e.id);if(!t){n.push(e);continue}if(t[0].type===`remove`)continue;if(t[0].type===`replace`){n.push({...t[0].item});continue}let i={...e};for(let e of t)Vk(e,i);n.push(i)}return i.length&&i.forEach(e=>{e.index===void 0?n.push({...e.item}):n.splice(e.index,0,{...e.item})}),n}function Vk(e,t){switch(e.type){case`select`:t.selected=e.selected;break;case`position`:e.position!==void 0&&(t.position=e.position),e.dragging!==void 0&&(t.dragging=e.dragging);break;case`dimensions`:e.dimensions!==void 0&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes===`width`)&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes===`height`)&&(t.height=e.dimensions.height))),typeof e.resizing==`boolean`&&(t.resizing=e.resizing)}}function Hk(e,t){return Bk(e,t)}function Uk(e,t){return Bk(e,t)}function Wk(e,t){return{id:e,type:`select`,selected:t}}function Gk(e,t=new Set,n=!1){let r=[];for(let[i,a]of e){let e=t.has(i);(a.selected!==void 0||e)&&a.selected!==e&&(n&&(a.selected=e),r.push(Wk(a.id,e)))}return r}function Kk({items:e=[],lookup:t}){let n=[],r=new Map(e.map(e=>[e.id,e]));for(let[r,i]of e.entries()){let e=t.get(i.id),a=e?.internals?.userNode??e;a!==void 0&&a!==i&&n.push({id:i.id,item:i,type:`replace`}),a===void 0&&n.push({item:i,type:`add`,index:r})}for(let[e]of t)r.get(e)===void 0&&n.push({id:e,type:`remove`});return n}function qk(e){return{id:e.id,type:`remove`}}var Jk=UE(`React Flow`,`https://reactflow.dev/`);function Yk(e,t,n={}){return CD(e,t,{...n,onError:n.onError??Jk})}var Xk=e=>_E(e),Zk=e=>gE(e);function Qk(e){return(0,y.forwardRef)(e)}var $k=typeof window<`u`?y.useLayoutEffect:y.useEffect;function eA(e){let[t,n]=(0,y.useState)(BigInt(0)),[r]=(0,y.useState)(()=>tA(()=>n(e=>e+BigInt(1))));return $k(()=>{let t=r.get();t.length&&(e(t),r.reset())},[t]),r}function tA(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}var nA=(0,y.createContext)(null);function rA({children:e}){let t=ck(),n=eA((0,y.useCallback)(e=>{let{nodes:n=[],setNodes:r,hasDefaultNodes:i,onNodesChange:a,nodeLookup:o,fitViewQueued:s,onNodesChangeMiddlewareMap:c}=t.getState(),l=n;for(let t of e)l=typeof t==`function`?t(l):t;let u=Kk({items:l,lookup:o});for(let e of c.values())u=e(u);i&&r(l),u.length>0?a?.(u):s&&window.requestAnimationFrame(()=>{let{fitViewQueued:e,nodes:n,setNodes:r}=t.getState();e&&r(n)})},[])),r=eA((0,y.useCallback)(e=>{let{edges:n=[],setEdges:r,hasDefaultEdges:i,onEdgesChange:a,edgeLookup:o}=t.getState(),s=n;for(let t of e)s=typeof t==`function`?t(s):t;i?r(s):a&&a(Kk({items:s,lookup:o}))},[])),i=(0,y.useMemo)(()=>({nodeQueue:n,edgeQueue:r}),[]);return(0,K.jsx)(nA.Provider,{value:i,children:e})}function iA(){let e=(0,y.useContext)(nA);if(!e)throw Error(`useBatchContext must be used within a BatchProvider`);return e}var aA=e=>!!e.panZoom;function oA(){let e=zk(),t=ck(),n=iA(),r=sk(aA),i=(0,y.useMemo)(()=>{let e=e=>t.getState().nodeLookup.get(e),r=e=>{n.nodeQueue.push(e)},i=e=>{n.edgeQueue.push(e)},a=e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState(),i=Xk(e)?e:n.get(e.id),a=i.parentId?tD(i.position,i.measured,i.parentId,n,r):i.position;return IE({...i,position:a,width:i.measured?.width??i.width,height:i.measured?.height??i.height})},o=(e,t,n={replace:!1})=>{r(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&Xk(e)?e:{...r,...e}}return r}))},s=(e,t,n={replace:!1})=>{i(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&Zk(e)?e:{...r,...e}}return r}))};return{getNodes:()=>t.getState().nodes.map(e=>({...e})),getNode:t=>e(t)?.internals.userNode,getInternalNode:e,getEdges:()=>{let{edges:e=[]}=t.getState();return e.map(e=>({...e}))},getEdge:e=>t.getState().edgeLookup.get(e),setNodes:r,setEdges:i,addNodes:e=>{let t=Array.isArray(e)?e:[e];n.nodeQueue.push(e=>[...e,...t])},addEdges:e=>{let t=Array.isArray(e)?e:[e];n.edgeQueue.push(e=>[...e,...t])},toObject:()=>{let{nodes:e=[],edges:n=[],transform:r}=t.getState(),[i,a,o]=r;return{nodes:e.map(e=>({...e})),edges:n.map(e=>({...e})),viewport:{x:i,y:a,zoom:o}}},deleteElements:async({nodes:e=[],edges:n=[]})=>{let{nodes:r,edges:i,onNodesDelete:a,onEdgesDelete:o,triggerNodeChanges:s,triggerEdgeChanges:c,onDelete:l,onBeforeDelete:u}=t.getState(),{nodes:d,edges:f}=await DE({nodesToRemove:e,edgesToRemove:n,nodes:r,edges:i,onBeforeDelete:u}),p=f.length>0,m=d.length>0;if(p){let e=f.map(qk);o?.(f),c(e)}if(m){let e=d.map(qk);a?.(d),s(e)}return(m||p)&&l?.({nodes:d,edges:f}),{deletedNodes:d,deletedEdges:f}},getIntersectingNodes:(e,n=!0,r)=>{let i=VE(e),o=i?e:a(e),s=r!==void 0;return o?(r||t.getState().nodes).filter(r=>{let a=t.getState().nodeLookup.get(r.id);if(a&&!i&&(r.id===e.id||!a.internals.positionAbsolute))return!1;let c=IE(s?r:a),l=BE(c,o);return n&&l>0||l>=c.width*c.height||l>=o.width*o.height}):[]},isNodeIntersecting:(e,t,n=!0)=>{let r=VE(e)?e:a(e);if(!r)return!1;let i=BE(r,t);return n&&i>0||i>=t.width*t.height||i>=r.width*r.height},updateNode:o,updateNodeData:(e,t,n={replace:!1})=>{o(e,e=>{let r=typeof t==`function`?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},updateEdge:s,updateEdgeData:(e,t,n={replace:!1})=>{s(e,e=>{let r=typeof t==`function`?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},getNodesBounds:e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState();return bE(e,{nodeLookup:n,nodeOrigin:r})},getHandleConnections:({type:e,id:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}-${e}${n?`-${n}`:``}`)?.values()??[]),getNodeConnections:({type:e,handleId:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}${e?n?`-${e}-${n}`:`-${e}`:``}`)?.values()??[]),fitView:async e=>{let r=t.getState().fitViewResolver??rD();return t.setState({fitViewQueued:!0,fitViewOptions:e,fitViewResolver:r}),n.nodeQueue.push(e=>[...e]),r.promise}}},[]);return(0,y.useMemo)(()=>({...i,...e,viewportInitialized:r}),[r])}var sA=e=>e.selected,cA=typeof window<`u`?window:void 0;function lA({deleteKeyCode:e,multiSelectionKeyCode:t}){let n=ck(),{deleteElements:r}=oA(),i=Ik(e,{actInsideInputWithModifier:!1}),a=Ik(t,{target:cA});(0,y.useEffect)(()=>{if(i){let{edges:e,nodes:t}=n.getState();r({nodes:t.filter(sA),edges:e.filter(sA)}),n.setState({nodesSelectionActive:!1})}},[i]),(0,y.useEffect)(()=>{n.setState({multiSelectionActive:a})},[a])}function uA(e){let t=ck();(0,y.useEffect)(()=>{let n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;let n=sD(e.current);(n.height===0||n.width===0)&&t.getState().onError?.(`004`,aE.error004()),t.setState({width:n.width||500,height:n.height||500})};if(e.current){n(),window.addEventListener(`resize`,n);let t=new ResizeObserver(()=>n());return t.observe(e.current),()=>{window.removeEventListener(`resize`,n),t&&e.current&&t.unobserve(e.current)}}},[])}var dA={position:`absolute`,width:`100%`,height:`100%`,top:0,left:0},fA=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function pA({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panActivationKeyPressed:i,panOnScrollSpeed:a=.5,panOnScrollMode:o=uE.Free,zoomOnDoubleClick:s=!0,panOnDrag:c=!0,defaultViewport:l,translateExtent:u,minZoom:d,maxZoom:f,zoomActivationKeyCode:p,preventScrolling:m=!0,children:h,noWheelClassName:g,noPanClassName:_,onViewportChange:v,isControlledViewport:b,paneClickDistance:x,selectionOnDrag:S}){let C=ck(),w=(0,y.useRef)(null),{userSelectionActive:T,lib:E,connectionInProgress:D}=sk(fA,rk),O=Ik(p),k=(0,y.useRef)();uA(w);let A=(0,y.useCallback)(e=>{v?.({x:e[0],y:e[1],zoom:e[2]}),b||C.setState({transform:e})},[v,b]);return(0,y.useEffect)(()=>{if(w.current){k.current=MO({domNode:w.current,minZoom:d,maxZoom:f,translateExtent:u,viewport:l,onDraggingChange:e=>C.setState(t=>t.paneDragging===e?t:{paneDragging:e}),onPanZoomStart:(e,t)=>{let{onViewportChangeStart:n,onMoveStart:r}=C.getState();r?.(e,t),n?.(t)},onPanZoom:(e,t)=>{let{onViewportChange:n,onMove:r}=C.getState();r?.(e,t),n?.(t)},onPanZoomEnd:(e,t)=>{let{onViewportChangeEnd:n,onMoveEnd:r}=C.getState();r?.(e,t),n?.(t)}});let{x:e,y:t,zoom:n}=k.current.getViewport();return C.setState({panZoom:k.current,transform:[e,t,n],domNode:w.current.closest(`.react-flow`)}),()=>{k.current?.destroy()}}},[]),(0,y.useEffect)(()=>{k.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panActivationKeyPressed:i,panOnScrollSpeed:a,panOnScrollMode:o,zoomOnDoubleClick:s,panOnDrag:c,zoomActivationKeyPressed:O,preventScrolling:m,noPanClassName:_,userSelectionActive:T,noWheelClassName:g,lib:E,onTransformChange:A,connectionInProgress:D,selectionOnDrag:S,paneClickDistance:x})},[e,t,n,r,i,a,o,s,c,O,m,_,T,g,E,A,D,S,x]),(0,K.jsx)(`div`,{className:`react-flow__renderer`,ref:w,style:dA,children:h})}var mA=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function hA(){let{userSelectionActive:e,userSelectionRect:t}=sk(mA,rk);return e&&t?(0,K.jsx)(`div`,{className:`react-flow__selection react-flow__container`,style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}var gA=(e,t)=>n=>{n.target===t.current&&e?.(n)},_A=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function vA({isSelecting:e,selectionKeyPressed:t,selectionMode:n=dE.Full,panOnDrag:r,autoPanOnSelection:i,paneClickDistance:a,selectionOnDrag:o,onSelectionStart:s,onSelectionEnd:c,onPaneClick:l,onPaneContextMenu:u,onPaneScroll:d,onPaneMouseEnter:f,onPaneMouseMove:p,onPaneMouseLeave:m,children:h}){let g=(0,y.useRef)(0),_=ck(),{userSelectionActive:v,elementsSelectable:b,dragging:x,panBy:S,autoPanSpeed:C}=sk(_A,rk),w=b&&(e||v),T=(0,y.useRef)(null),E=(0,y.useRef)(),D=(0,y.useRef)(new Set),O=(0,y.useRef)(new Set),k=(0,y.useRef)(!1),A=(0,y.useRef)(!1),j=(0,y.useRef)({x:0,y:0}),M=(0,y.useRef)(!1),N=e=>{if(A.current||k.current||_.getState().connection.inProgress){A.current=!1,k.current=!1;return}l?.(e),_.getState().resetSelectedElements(),_.setState({nodesSelectionActive:!1})},P=e=>{if(Array.isArray(r)&&r?.includes(2)){e.preventDefault();return}u?.(e)},F=d?e=>d(e):void 0,I=e=>{A.current&&=(e.stopPropagation(),!1)},L=n=>{if(n.pointerType===`touch`&&r!==!1&&!t)return;let{domNode:i,transform:a}=_.getState();if(E.current=i?.getBoundingClientRect(),!E.current)return;let s=n.target===T.current;if(!s&&n.target.closest(`.nokey`)||!e||!(o&&s||t)||n.button!==0||!n.isPrimary)return;n.target?.setPointerCapture?.(n.pointerId),A.current=!1;let{x:c,y:l}=fD(n.nativeEvent,E.current),u=GE({x:c,y:l},a);_.setState({userSelectionRect:{width:0,height:0,startX:u.x,startY:u.y,x:c,y:l}}),s||(n.stopPropagation(),n.preventDefault())};function R(e,t){let{userSelectionRect:r}=_.getState();if(!r)return;let{transform:i,nodeLookup:a,edgeLookup:o,connectionLookup:s,triggerNodeChanges:c,triggerEdgeChanges:l,defaultEdgeOptions:u}=_.getState(),d={x:r.startX,y:r.startY},{x:f,y:p}=KE(d,i),m={startX:d.x,startY:d.y,x:ee.id)),O.current=new Set;let v=u?.selectable??!0;for(let e of D.current){let t=s.get(e);if(t)for(let{edgeId:e}of t.values()){let t=o.get(e);t&&(t.selectable??v)&&O.current.add(e)}}nD(h,D.current)||c(Gk(a,D.current,!0)),nD(g,O.current)||l(Gk(o,O.current)),_.setState({userSelectionRect:m,userSelectionActive:!0,nodesSelectionActive:!1})}function z(){if(!i||!E.current)return;let[e,t]=ME(j.current,E.current,C);S({x:e,y:t}).then(e=>{if(!A.current||!e){g.current=requestAnimationFrame(z);return}let{x:t,y:n}=j.current;R(t,n),g.current=requestAnimationFrame(z)})}let B=()=>{cancelAnimationFrame(g.current),g.current=0,M.current=!1};(0,y.useEffect)(()=>()=>B(),[]);let ee=e=>{let{userSelectionRect:n,transform:r,resetSelectedElements:i}=_.getState();if(!E.current||!n)return;let{x:o,y:c}=fD(e.nativeEvent,E.current);j.current={x:o,y:c};let l=KE({x:n.startX,y:n.startY},r);if(!A.current){let n=t?0:a;if(Math.hypot(o-l.x,c-l.y)<=n)return;i(),s?.(e)}A.current=!0,M.current||=(z(),!0),R(o,c)},V=e=>{if(!w){e.target===T.current&&_.getState().connection.inProgress&&(k.current=!0);return}e.button===0&&(e.target?.releasePointerCapture?.(e.pointerId),!v&&e.target===T.current&&_.getState().userSelectionRect&&N?.(e),_.setState({userSelectionActive:!1,userSelectionRect:null}),A.current&&(c?.(e),_.setState({nodesSelectionActive:D.current.size>0})),B())},H=e=>{e.target?.releasePointerCapture?.(e.pointerId),B()},te=r===!0||Array.isArray(r)&&r.includes(0);return(0,K.jsxs)(`div`,{className:Sb([`react-flow__pane`,{draggable:te,dragging:x,selection:e}]),onClick:w?void 0:gA(N,T),onContextMenu:gA(P,T),onWheel:gA(F,T),onPointerEnter:w?void 0:f,onPointerMove:w?ee:p,onPointerUp:V,onPointerCancel:w?H:void 0,onPointerDownCapture:w?L:void 0,onClickCapture:w?I:void 0,onPointerLeave:m,ref:T,style:dA,children:[h,(0,K.jsx)(hA,{})]})}function yA({id:e,store:t,unselect:n=!1,nodeRef:r}){let{addSelectedNodes:i,unselectNodesAndEdges:a,multiSelectionActive:o,nodeLookup:s,onError:c}=t.getState(),l=s.get(e);if(!l){c?.(`012`,aE.error012(e));return}t.setState({nodesSelectionActive:!1}),l.selected?(n||l.selected&&o)&&(a({nodes:[l],edges:[]}),requestAnimationFrame(()=>r?.current?.blur())):i([e])}function bA({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:i,isSelectable:a,nodeClickDistance:o}){let s=ck(),[c,l]=(0,y.useState)(!1),u=(0,y.useRef)();return(0,y.useEffect)(()=>{if(!t)return u.current=sO({getStoreItems:()=>s.getState(),onNodeMouseDown:t=>{yA({id:t,store:s,nodeRef:e})},onDragStart:()=>{l(!0)},onDragStop:()=>{l(!1)}}),()=>{u.current?.destroy(),u.current=void 0}},[t,s,e]),(0,y.useEffect)(()=>{!t&&e.current&&u.current&&u.current.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:a,nodeId:i,nodeClickDistance:o})},[n,r,t,a,e,i,o]),c}var xA=e=>t=>t.selected&&(t.draggable||e&&t.draggable===void 0);function SA(){let e=ck();return(0,y.useCallback)(t=>{let{nodeExtent:n,snapToGrid:r,snapGrid:i,nodesDraggable:a,onError:o,updateNodePositions:s,nodeLookup:c,nodeOrigin:l}=e.getState(),u=new Map,d=xA(a),f=r?i[0]:5,p=r?i[1]:5,m=t.direction.x*f*t.factor,h=t.direction.y*p*t.factor;for(let[,e]of c){if(!d(e))continue;let t={x:e.internals.positionAbsolute.x+m,y:e.internals.positionAbsolute.y+h};r&&(t=WE(t,i));let{position:a,positionAbsolute:s}=EE({nodeId:e.id,nextPosition:t,nodeLookup:c,nodeExtent:n,nodeOrigin:l,onError:o});e.position=a,e.internals.positionAbsolute=s,u.set(e.id,e)}s(u)},[])}var CA=(0,y.createContext)(null),wA=CA.Provider;CA.Consumer;var TA=()=>(0,y.useContext)(CA),EA=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),DA=(0,y.createContext)(null);function OA({children:e}){let t=sk(EA,rk);return(0,K.jsx)(DA.Provider,{value:t,children:e})}function kA(){let e=(0,y.useContext)(DA);if(!e)throw Error(`useHandleConfig must be used within a HandleConfigProvider`);return e}var AA={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},jA=(e,t,n)=>r=>{let{connectionClickStartHandle:i,connectionMode:a,connection:o}=r,{fromHandle:s,toHandle:c,isValid:l}=o;if(!s&&!i)return AA;let u=c?.nodeId===e&&c?.id===t&&c?.type===n;return{connectingFrom:s?.nodeId===e&&s?.id===t&&s?.type===n,connectingTo:u,clickConnecting:i?.nodeId===e&&i?.id===t&&i?.type===n,isPossibleEndHandle:a===lE.Strict?s?.type!==n:e!==s?.nodeId||t!==s?.id,connectionInProcess:!!s,clickConnectionInProcess:!!i,valid:u&&l}};function MA({type:e=`source`,position:t=$.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:i=!0,isConnectableEnd:a=!0,id:o,onConnect:s,children:c,className:l,onMouseDown:u,onTouchStart:d,...f},p){let m=o||null,h=e===`target`,g=ck(),_=TA(),{connectOnClick:v,noPanClassName:y,rfId:b}=kA(),{connectingFrom:x,connectingTo:S,clickConnecting:C,isPossibleEndHandle:w,connectionInProcess:T,clickConnectionInProcess:E,valid:D}=sk(jA(_,m,e),rk);_||g.getState().onError?.(`010`,aE.error010());let O=e=>{let{defaultEdgeOptions:t,onConnect:n,hasDefaultEdges:r}=g.getState(),i={...t,...e};if(r){let{edges:e,setEdges:t,onError:n}=g.getState();t(Yk(i,e,{onError:n}))}n?.(i),s?.(i)},k=e=>{if(!_)return;let t=dD(e.nativeEvent);if(i&&(t&&e.button===0||!t)){let t=g.getState();_O.onPointerDown(e.nativeEvent,{handleDomNode:e.currentTarget,autoPanOnConnect:t.autoPanOnConnect,connectionMode:t.connectionMode,connectionRadius:t.connectionRadius,domNode:t.domNode,nodeLookup:t.nodeLookup,lib:t.lib,isTarget:h,handleId:m,nodeId:_,flowId:t.rfId,panBy:t.panBy,cancelConnection:t.cancelConnection,onConnectStart:t.onConnectStart,onConnectEnd:(...e)=>g.getState().onConnectEnd?.(...e),updateConnection:t.updateConnection,onConnect:O,isValidConnection:n||((...e)=>g.getState().isValidConnection?.(...e)??!0),getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,autoPanSpeed:t.autoPanSpeed,dragThreshold:t.connectionDragThreshold})}t?u?.(e):d?.(e)};return(0,K.jsx)(`div`,{"data-handleid":m,"data-nodeid":_,"data-handlepos":t,"data-id":`${b}-${_}-${m}-${e}`,className:Sb([`react-flow__handle`,`react-flow__handle-${t}`,`nodrag`,y,l,{source:!h,target:h,connectable:r,connectablestart:i,connectableend:a,clickconnecting:C,connectingfrom:x,connectingto:S,valid:D,connectionindicator:r&&(!T||w)&&(T||E?a:i)}]),onMouseDown:k,onTouchStart:k,onClick:v?t=>{let{onClickConnectStart:r,onClickConnectEnd:a,connectionClickStartHandle:o,connectionMode:s,isValidConnection:c,lib:l,rfId:u,nodeLookup:d,connection:f}=g.getState();if(!_||!o&&!i)return;if(!o){r?.(t.nativeEvent,{nodeId:_,handleId:m,handleType:e}),g.setState({connectionClickStartHandle:{nodeId:_,type:e,id:m}});return}let p=cD(t.target),h=n||c,{connection:v,isValid:y}=_O.isValid(t.nativeEvent,{handle:{nodeId:_,id:m,type:e},connectionMode:s,fromNodeId:o.nodeId,fromHandleId:o.id||null,fromType:o.type,isValidConnection:h,flowId:u,doc:p,lib:l,nodeLookup:d});y&&v&&O(v);let b=structuredClone(f);delete b.inProgress,b.toPosition=b.toHandle?b.toHandle.position:null,a?.(t,b),g.setState({connectionClickStartHandle:null})}:void 0,ref:p,...f,children:c})}var NA=(0,y.memo)(Qk(MA));function PA({data:e,isConnectable:t,sourcePosition:n=$.Bottom}){return(0,K.jsxs)(K.Fragment,{children:[e?.label,(0,K.jsx)(NA,{type:`source`,position:n,isConnectable:t})]})}function FA({data:e,isConnectable:t,targetPosition:n=$.Top,sourcePosition:r=$.Bottom}){return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(NA,{type:`target`,position:n,isConnectable:t}),e?.label,(0,K.jsx)(NA,{type:`source`,position:r,isConnectable:t})]})}function IA(){return null}function LA({data:e,isConnectable:t,targetPosition:n=$.Top}){return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(NA,{type:`target`,position:n,isConnectable:t}),e?.label]})}var RA={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},zA={input:PA,default:FA,output:LA,group:IA};function BA(e){return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??e.style?.width,height:e.height??e.initialHeight??e.style?.height}:{width:e.width??e.style?.width,height:e.height??e.style?.height}}var VA=e=>{let{width:t,height:n,x:r,y:i}=xE(e.nodeLookup,{filter:e=>!!e.selected});return{width:HE(t)?t:null,height:HE(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${i}px)`}};function HA({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){let r=ck(),{width:i,height:a,transformString:o,userSelectionActive:s}=sk(VA,rk),c=SA(),l=(0,y.useRef)(null);(0,y.useEffect)(()=>{n||l.current?.focus({preventScroll:!0})},[n]);let u=!s&&i!==null&&a!==null;if(bA({nodeRef:l,disabled:!u}),!u)return null;let d=e?t=>{e(t,r.getState().nodes.filter(e=>e.selected))}:void 0;return(0,K.jsx)(`div`,{className:Sb([`react-flow__nodesselection`,`react-flow__container`,t]),style:{transform:o},children:(0,K.jsx)(`div`,{ref:l,className:`react-flow__nodesselection-rect`,onContextMenu:d,tabIndex:n?void 0:-1,onKeyDown:n?void 0:e=>{Object.prototype.hasOwnProperty.call(RA,e.key)&&(e.preventDefault(),c({direction:RA[e.key],factor:e.shiftKey?4:1}))},style:{width:i,height:a}})})}var UA=typeof window<`u`?window:void 0,WA=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function GA({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,paneClickDistance:s,deleteKeyCode:c,selectionKeyCode:l,selectionOnDrag:u,selectionMode:d,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:m,panActivationKeyCode:h,zoomActivationKeyCode:g,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:b,panOnScrollSpeed:x,panOnScrollMode:S,zoomOnDoubleClick:C,panOnDrag:w,autoPanOnSelection:T,defaultViewport:E,translateExtent:D,minZoom:O,maxZoom:k,preventScrolling:A,onSelectionContextMenu:j,noWheelClassName:M,noPanClassName:N,disableKeyboardA11y:P,onViewportChange:F,isControlledViewport:I}){let{nodesSelectionActive:L,userSelectionActive:R}=sk(WA,rk),z=Ik(l,{target:UA}),B=Ik(h,{target:UA}),ee=B||w,V=B||b,H=u&&ee!==!0,te=z||R||H;return lA({deleteKeyCode:c,multiSelectionKeyCode:m}),(0,K.jsx)(pA,{onPaneContextMenu:a,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:V,panActivationKeyPressed:B,panOnScrollSpeed:x,panOnScrollMode:S,zoomOnDoubleClick:C,panOnDrag:!z&&ee,defaultViewport:E,translateExtent:D,minZoom:O,maxZoom:k,zoomActivationKeyCode:g,preventScrolling:A,noWheelClassName:M,noPanClassName:N,onViewportChange:F,isControlledViewport:I,paneClickDistance:s,selectionOnDrag:H,children:(0,K.jsxs)(vA,{onSelectionStart:f,onSelectionEnd:p,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,panOnDrag:ee,autoPanOnSelection:T,isSelecting:!!te,selectionMode:d,selectionKeyPressed:z,paneClickDistance:s,selectionOnDrag:H,children:[e,L&&(0,K.jsx)(HA,{onSelectionContextMenu:j,noPanClassName:N,disableKeyboardA11y:P})]})})}GA.displayName=`FlowRenderer`;var KA=(0,y.memo)(GA),qA=e=>t=>e?SE(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(e=>e.id):Array.from(t.nodeLookup.keys());function JA(e){return sk((0,y.useCallback)(qA(e),[e]),rk)}var YA=e=>e.updateNodeInternals;function XA(){let e=sk(YA),[t]=(0,y.useState)(()=>typeof ResizeObserver>`u`?null:new ResizeObserver(t=>{let n=new Map;t.forEach(e=>{let t=e.target.getAttribute(`data-id`);n.set(t,{id:t,nodeElement:e.target,force:!0})}),e(n)}));return(0,y.useEffect)(()=>()=>{t?.disconnect()},[t]),t}function ZA({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){let i=ck(),a=(0,y.useRef)(null),o=(0,y.useRef)(null),s=(0,y.useRef)(e.sourcePosition),c=(0,y.useRef)(e.targetPosition),l=(0,y.useRef)(t),u=n&&!!e.internals.handleBounds;return(0,y.useEffect)(()=>{a.current&&!e.hidden&&(!u||o.current!==a.current)&&(o.current&&r?.unobserve(o.current),r?.observe(a.current),o.current=a.current)},[u,e.hidden]),(0,y.useEffect)(()=>()=>{o.current&&=(r?.unobserve(o.current),null)},[]),(0,y.useEffect)(()=>{if(a.current){let n=l.current!==t,r=s.current!==e.sourcePosition,o=c.current!==e.targetPosition;(n||r||o)&&(l.current=t,s.current=e.sourcePosition,c.current=e.targetPosition,i.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:a.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),a}function QA({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:i,onContextMenu:a,onDoubleClick:o,nodesDraggable:s,elementsSelectable:c,nodesConnectable:l,nodesFocusable:u,resizeObserver:d,noDragClassName:f,noPanClassName:p,disableKeyboardA11y:m,rfId:h,nodeTypes:g,nodeClickDistance:_,onError:v}){let{node:y,internals:b,isParent:x}=sk(t=>{let n=t.nodeLookup.get(e),r=t.parentLookup.has(e);return{node:n,internals:n.internals,isParent:r}},rk),S=y.type||`default`,C=g?.[S]||zA[S];C===void 0&&(v?.(`003`,aE.error003(S)),S=`default`,C=g?.default||zA.default);let w=!!(y.draggable||s&&y.draggable===void 0),T=!!(y.selectable||c&&y.selectable===void 0),E=!!(y.connectable||l&&y.connectable===void 0),D=!!(y.focusable||u&&y.focusable===void 0),O=ck(),k=eD(y),A=ZA({node:y,nodeType:S,hasDimensions:k,resizeObserver:d}),j=bA({nodeRef:A,disabled:y.hidden||!w,noDragClassName:f,handleSelector:y.dragHandle,nodeId:e,isSelectable:T,nodeClickDistance:_}),M=SA();if(y.hidden)return null;let N=$E(y),P=BA(y),F=T||w||t||n||r||i,I=n?e=>n(e,{...b.userNode}):void 0,L=r?e=>r(e,{...b.userNode}):void 0,R=i?e=>i(e,{...b.userNode}):void 0,z=a?e=>a(e,{...b.userNode}):void 0,B=o?e=>o(e,{...b.userNode}):void 0,ee=n=>{let{selectNodesOnDrag:r,nodeDragThreshold:i}=O.getState();T&&(!r||!w||i>0)&&yA({id:e,store:O,nodeRef:A}),t&&t(n,{...b.userNode})},V=t=>{if(!(uD(t.nativeEvent)||m)){if(sE.includes(t.key)&&T){let n=t.key===`Escape`;yA({id:e,store:O,unselect:n,nodeRef:A})}else if(w&&y.selected&&Object.prototype.hasOwnProperty.call(RA,t.key)){t.preventDefault();let{ariaLabelConfig:e}=O.getState();O.setState({ariaLiveMessage:e[`node.a11yDescription.ariaLiveMessage`]({direction:t.key.replace(`Arrow`,``).toLowerCase(),x:~~b.positionAbsolute.x,y:~~b.positionAbsolute.y})}),M({direction:RA[t.key],factor:t.shiftKey?4:1})}}},H=()=>{if(m||!A.current?.matches(`:focus-visible`))return;let{transform:t,width:n,height:r,autoPanOnNodeFocus:i,setCenter:a}=O.getState();i&&(SE(new Map([[e,y]]),{x:0,y:0,width:n,height:r},t,!0).length>0||a(y.position.x+N.width/2,y.position.y+N.height/2,{zoom:t[2]}))};return(0,K.jsx)(`div`,{className:Sb([`react-flow__node`,`react-flow__node-${S}`,{[p]:w},y.className,{selected:y.selected,selectable:T,parent:x,draggable:w,dragging:j}]),ref:A,style:{zIndex:b.z,transform:`translate(${b.positionAbsolute.x}px,${b.positionAbsolute.y}px)`,pointerEvents:F?`all`:`none`,visibility:k?`visible`:`hidden`,...y.style,...P},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:I,onMouseMove:L,onMouseLeave:R,onContextMenu:z,onClick:ee,onDoubleClick:B,onKeyDown:D?V:void 0,tabIndex:D?0:void 0,onFocus:D?H:void 0,role:y.ariaRole??(D?`group`:void 0),"aria-roledescription":`node`,"aria-describedby":m?void 0:`${dk}-${h}`,"aria-label":y.ariaLabel,...y.domAttributes,children:(0,K.jsx)(wA,{value:e,children:(0,K.jsx)(C,{id:e,data:y.data,type:S,positionAbsoluteX:b.positionAbsolute.x,positionAbsoluteY:b.positionAbsolute.y,selected:y.selected??!1,selectable:T,draggable:w,deletable:y.deletable??!0,isConnectable:E,sourcePosition:y.sourcePosition,targetPosition:y.targetPosition,dragging:j,dragHandle:y.dragHandle,zIndex:b.z,parentId:y.parentId,...N})})})}var $A=(0,y.memo)(QA),ej=e=>({nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function tj(e){let{nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,onError:i}=sk(ej,rk),a=JA(e.onlyRenderVisibleElements),o=XA();return(0,K.jsx)(`div`,{className:`react-flow__nodes`,style:dA,children:a.map(a=>(0,K.jsx)($A,{id:a,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:o,nodesDraggable:e.nodesDraggable??!0,nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,nodeClickDistance:e.nodeClickDistance,onError:i},a))})}tj.displayName=`NodeRenderer`;var nj=(0,y.memo)(tj);function rj(e){return sk((0,y.useCallback)(t=>{if(!e)return t.edges.map(e=>e.id);let n=[];if(t.width&&t.height)for(let e of t.edges){let r=t.nodeLookup.get(e.source),i=t.nodeLookup.get(e.target);r&&i&&bD({sourceNode:r,targetNode:i,width:t.width,height:t.height,transform:t.transform})&&n.push(e.id)}return n},[e]),rk)}var ij=({color:e=`none`,strokeWidth:t=1})=>{let n={strokeWidth:t,...e&&{stroke:e}};return(0,K.jsx)(`polyline`,{className:`arrow`,style:n,strokeLinecap:`round`,fill:`none`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4`})},aj=({color:e=`none`,strokeWidth:t=1})=>{let n={strokeWidth:t,...e&&{stroke:e,fill:e}};return(0,K.jsx)(`polyline`,{className:`arrowclosed`,style:n,strokeLinecap:`round`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4 -5,-4`})},oj={[mE.Arrow]:ij,[mE.ArrowClosed]:aj};function sj(e){let t=ck();return(0,y.useMemo)(()=>Object.prototype.hasOwnProperty.call(oj,e)?oj[e]:(t.getState().onError?.(`009`,aE.error009(e)),null),[e])}var cj=({id:e,type:t,color:n,width:r=12.5,height:i=12.5,markerUnits:a=`strokeWidth`,strokeWidth:o,orient:s=`auto-start-reverse`})=>{let c=sj(t);return c?(0,K.jsx)(`marker`,{className:`react-flow__arrowhead`,id:e,markerWidth:`${r}`,markerHeight:`${i}`,viewBox:`-10 -10 20 20`,markerUnits:a,orient:s,refX:`0`,refY:`0`,children:(0,K.jsx)(c,{color:n,strokeWidth:o})}):null},lj=({defaultColor:e,rfId:t})=>{let n=sk(e=>e.edges),r=sk(e=>e.defaultEdgeOptions),i=(0,y.useMemo)(()=>LD(n,{id:t,defaultColor:e,defaultMarkerStart:r?.markerStart,defaultMarkerEnd:r?.markerEnd}),[n,r,t,e]);return i.length?(0,K.jsx)(`svg`,{className:`react-flow__marker`,"aria-hidden":`true`,children:(0,K.jsx)(`defs`,{children:i.map(e=>(0,K.jsx)(cj,{id:e.id,type:e.type,color:e.color,width:e.width,height:e.height,markerUnits:e.markerUnits,strokeWidth:e.strokeWidth,orient:e.orient},e.id))})}):null};lj.displayName=`MarkerDefinitions`;var uj=(0,y.memo)(lj);function dj({x:e,y:t,label:n,labelStyle:r,labelShowBg:i=!0,labelBgStyle:a,labelBgPadding:o=[2,4],labelBgBorderRadius:s=2,children:c,className:l,...u}){let[d,f]=(0,y.useState)({x:1,y:0,width:0,height:0}),p=Sb([`react-flow__edge-textwrapper`,l]),m=(0,y.useRef)(null);return(0,y.useEffect)(()=>{if(m.current){let e=m.current.getBBox();f({x:e.x,y:e.y,width:e.width,height:e.height})}},[n]),n?(0,K.jsxs)(`g`,{transform:`translate(${e-d.width/2} ${t-d.height/2})`,className:p,visibility:d.width?`visible`:`hidden`,...u,children:[i&&(0,K.jsx)(`rect`,{width:d.width+2*o[0],x:-o[0],y:-o[1],height:d.height+2*o[1],className:`react-flow__edge-textbg`,style:a,rx:s,ry:s}),(0,K.jsx)(`text`,{className:`react-flow__edge-text`,y:d.height/2,dy:`0.3em`,ref:m,style:r,children:n}),c]}):null}dj.displayName=`EdgeText`;var fj=(0,y.memo)(dj);function pj({path:e,labelX:t,labelY:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c,interactionWidth:l=20,...u}){return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{...u,d:e,fill:`none`,className:Sb([`react-flow__edge-path`,u.className])}),l?(0,K.jsx)(`path`,{d:e,fill:`none`,strokeOpacity:0,strokeWidth:l,className:`react-flow__edge-interaction`}):null,r&&HE(t)&&HE(n)?(0,K.jsx)(fj,{x:t,y:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c}):null]})}function mj({pos:e,x1:t,y1:n,x2:r,y2:i}){return e===$.Left||e===$.Right?[.5*(t+r),n]:[t,.5*(n+i)]}function hj({sourceX:e,sourceY:t,sourcePosition:n=$.Bottom,targetX:r,targetY:i,targetPosition:a=$.Top}){let[o,s]=mj({pos:n,x1:e,y1:t,x2:r,y2:i}),[c,l]=mj({pos:a,x1:r,y1:i,x2:e,y2:t}),[u,d,f,p]=mD({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:o,sourceControlY:s,targetControlX:c,targetControlY:l});return[`M${e},${t} C${o},${s} ${c},${l} ${r},${i}`,u,d,f,p]}function gj(e){return(0,y.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o,targetPosition:s,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})=>{let[v,y,b]=hj({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s}),x=e.isInternal?void 0:t;return(0,K.jsx)(pj,{id:x,path:v,labelX:y,labelY:b,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})})}var _j=gj({isInternal:!1}),vj=gj({isInternal:!0});_j.displayName=`SimpleBezierEdge`,vj.displayName=`SimpleBezierEdgeInternal`;function yj(e){return(0,y.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,sourcePosition:p=$.Bottom,targetPosition:m=$.Top,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,b,x]=AD({sourceX:n,sourceY:r,sourcePosition:p,targetX:i,targetY:a,targetPosition:m,borderRadius:_?.borderRadius,offset:_?.offset,stepPosition:_?.stepPosition}),S=e.isInternal?void 0:t;return(0,K.jsx)(pj,{id:S,path:y,labelX:b,labelY:x,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:h,markerStart:g,interactionWidth:v})})}var bj=yj({isInternal:!1}),xj=yj({isInternal:!0});bj.displayName=`SmoothStepEdge`,xj.displayName=`SmoothStepEdgeInternal`;function Sj(e){return(0,y.memo)(({id:t,...n})=>{let r=e.isInternal?void 0:t;return(0,K.jsx)(bj,{...n,id:r,pathOptions:(0,y.useMemo)(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}var Cj=Sj({isInternal:!1}),wj=Sj({isInternal:!0});Cj.displayName=`StepEdge`,wj.displayName=`StepEdgeInternal`;function Tj(e){return(0,y.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})=>{let[g,_,v]=wD({sourceX:n,sourceY:r,targetX:i,targetY:a}),y=e.isInternal?void 0:t;return(0,K.jsx)(pj,{id:y,path:g,labelX:_,labelY:v,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})})}var Ej=Tj({isInternal:!1}),Dj=Tj({isInternal:!0});Ej.displayName=`StraightEdge`,Dj.displayName=`StraightEdgeInternal`;function Oj(e){return(0,y.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o=$.Bottom,targetPosition:s=$.Top,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,b,x]=_D({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s,curvature:_?.curvature}),S=e.isInternal?void 0:t;return(0,K.jsx)(pj,{id:S,path:y,labelX:b,labelY:x,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:v})})}var kj=Oj({isInternal:!1}),Aj=Oj({isInternal:!0});kj.displayName=`BezierEdge`,Aj.displayName=`BezierEdgeInternal`;var jj={default:Aj,straight:Dj,step:wj,smoothstep:xj,simplebezier:vj},Mj={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},Nj=(e,t,n)=>n===$.Left?e-t:n===$.Right?e+t:e,Pj=(e,t,n)=>n===$.Top?e-t:n===$.Bottom?e+t:e,Fj=`react-flow__edgeupdater`;function Ij({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:i,onMouseEnter:a,onMouseOut:o,type:s}){return(0,K.jsx)(`circle`,{onMouseDown:i,onMouseEnter:a,onMouseOut:o,className:Sb([Fj,`${Fj}-${s}`]),cx:Nj(t,r,e),cy:Pj(n,r,e),r,stroke:`transparent`,fill:`transparent`})}function Lj({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:i,targetX:a,targetY:o,sourcePosition:s,targetPosition:c,onReconnect:l,onReconnectStart:u,onReconnectEnd:d,setReconnecting:f,setUpdateHover:p}){let m=ck(),h=(e,t)=>{if(e.button!==0)return;let{autoPanOnConnect:r,domNode:i,connectionMode:a,connectionRadius:o,lib:s,onConnectStart:c,cancelConnection:p,nodeLookup:h,rfId:g,panBy:_,updateConnection:v}=m.getState(),y=t.type===`target`;_O.onPointerDown(e.nativeEvent,{autoPanOnConnect:r,connectionMode:a,connectionRadius:o,domNode:i,handleId:t.id,nodeId:t.nodeId,nodeLookup:h,isTarget:y,edgeUpdaterType:t.type,lib:s,flowId:g,cancelConnection:p,panBy:_,isValidConnection:(...e)=>m.getState().isValidConnection?.(...e)??!0,onConnect:e=>l?.(n,e),onConnectStart:(r,i)=>{f(!0),u?.(e,n,t.type),c?.(r,i)},onConnectEnd:(...e)=>m.getState().onConnectEnd?.(...e),onReconnectEnd:(e,r)=>{f(!1),d?.(e,n,t.type,r)},updateConnection:v,getTransform:()=>m.getState().transform,getFromHandle:()=>m.getState().connection.fromHandle,dragThreshold:m.getState().connectionDragThreshold,handleDomNode:e.currentTarget})},g=e=>h(e,{nodeId:n.target,id:n.targetHandle??null,type:`target`}),_=e=>h(e,{nodeId:n.source,id:n.sourceHandle??null,type:`source`}),v=()=>p(!0),y=()=>p(!1);return(0,K.jsxs)(K.Fragment,{children:[(e===!0||e===`source`)&&(0,K.jsx)(Ij,{position:s,centerX:r,centerY:i,radius:t,onMouseDown:g,onMouseEnter:v,onMouseOut:y,type:`source`}),(e===!0||e===`target`)&&(0,K.jsx)(Ij,{position:c,centerX:a,centerY:o,radius:t,onMouseDown:_,onMouseEnter:v,onMouseOut:y,type:`target`})]})}function Rj({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:i,onDoubleClick:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,rfId:m,edgeTypes:h,noPanClassName:g,onError:_,disableKeyboardA11y:v}){let b=sk(t=>t.edgeLookup.get(e)),x=sk(e=>e.defaultEdgeOptions);b=x?{...x,...b}:b;let S=b.type||`default`,C=h?.[S]||jj[S];C===void 0&&(_?.(`011`,aE.error011(S)),S=`default`,C=h?.default||jj.default);let w=!!(b.focusable||t&&b.focusable===void 0),T=d!==void 0&&(b.reconnectable||n&&b.reconnectable===void 0),E=!!(b.selectable||r&&b.selectable===void 0),D=(0,y.useRef)(null),[O,k]=(0,y.useState)(!1),[A,j]=(0,y.useState)(!1),M=ck(),{zIndex:N=b.zIndex,sourceX:P,sourceY:F,targetX:I,targetY:L,sourcePosition:R,targetPosition:z}=sk((0,y.useCallback)(t=>{let n=t.nodeLookup.get(b.source),r=t.nodeLookup.get(b.target);if(!n||!r)return Mj;let i=MD({id:e,sourceNode:n,targetNode:r,sourceHandle:b.sourceHandle||null,targetHandle:b.targetHandle||null,connectionMode:t.connectionMode,onError:_}),a=yD({selected:b.selected,zIndex:b.zIndex,sourceNode:n,targetNode:r,elevateOnSelect:t.elevateEdgesOnSelect,zIndexMode:t.zIndexMode});return{...i||Mj,zIndex:a}},[b.source,b.target,b.sourceHandle,b.targetHandle,b.selected,b.zIndex,_]),rk),B=(0,y.useMemo)(()=>b.markerStart?`url('#${ID(b.markerStart,m)}')`:void 0,[b.markerStart,m]),ee=(0,y.useMemo)(()=>b.markerEnd?`url('#${ID(b.markerEnd,m)}')`:void 0,[b.markerEnd,m]);if(b.hidden||P===null||F===null||I===null||L===null)return null;let V=t=>{let{addSelectedEdges:n,unselectNodesAndEdges:r,multiSelectionActive:a}=M.getState();E&&(M.setState({nodesSelectionActive:!1}),b.selected&&a?(r({nodes:[],edges:[b]}),D.current?.blur()):n([e])),i&&i(t,b)},H=a?e=>{a(e,{...b})}:void 0,te=o?e=>{o(e,{...b})}:void 0,ne=s?e=>{s(e,{...b})}:void 0,re=c?e=>{c(e,{...b})}:void 0,ie=l?e=>{l(e,{...b})}:void 0;return(0,K.jsx)(`svg`,{style:{zIndex:N},children:(0,K.jsxs)(`g`,{className:Sb([`react-flow__edge`,`react-flow__edge-${S}`,b.className,g,{selected:b.selected,animated:b.animated,inactive:!E&&!i,updating:O,selectable:E}]),onClick:V,onDoubleClick:H,onContextMenu:te,onMouseEnter:ne,onMouseMove:re,onMouseLeave:ie,onKeyDown:w?t=>{if(!v&&sE.includes(t.key)&&E){let{unselectNodesAndEdges:n,addSelectedEdges:r}=M.getState();t.key===`Escape`?(D.current?.blur(),n({edges:[b]})):r([e])}}:void 0,tabIndex:w?0:void 0,role:b.ariaRole??(w?`group`:`img`),"aria-roledescription":`edge`,"data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":b.ariaLabel===null?void 0:b.ariaLabel||`Edge from ${b.source} to ${b.target}`,"aria-describedby":w?`${fk}-${m}`:void 0,ref:D,...b.domAttributes,children:[!A&&(0,K.jsx)(C,{id:e,source:b.source,target:b.target,type:b.type,selected:b.selected,animated:b.animated,selectable:E,deletable:b.deletable??!0,label:b.label,labelStyle:b.labelStyle,labelShowBg:b.labelShowBg,labelBgStyle:b.labelBgStyle,labelBgPadding:b.labelBgPadding,labelBgBorderRadius:b.labelBgBorderRadius,sourceX:P,sourceY:F,targetX:I,targetY:L,sourcePosition:R,targetPosition:z,data:b.data,style:b.style,sourceHandleId:b.sourceHandle,targetHandleId:b.targetHandle,markerStart:B,markerEnd:ee,pathOptions:`pathOptions`in b?b.pathOptions:void 0,interactionWidth:b.interactionWidth}),T&&(0,K.jsx)(Lj,{edge:b,isReconnectable:T,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,sourceX:P,sourceY:F,targetX:I,targetY:L,sourcePosition:R,targetPosition:z,setUpdateHover:k,setReconnecting:j})]})})}var zj=(0,y.memo)(Rj),Bj=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function Vj({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:i,onReconnect:a,onEdgeContextMenu:o,onEdgeMouseEnter:s,onEdgeMouseMove:c,onEdgeMouseLeave:l,onEdgeClick:u,reconnectRadius:d,onEdgeDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,disableKeyboardA11y:h}){let{edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,onError:y}=sk(Bj,rk),b=rj(t);return(0,K.jsxs)(`div`,{className:`react-flow__edges`,children:[(0,K.jsx)(uj,{defaultColor:e,rfId:n}),b.map(e=>(0,K.jsx)(zj,{id:e,edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,noPanClassName:i,onReconnect:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,onClick:u,reconnectRadius:d,onDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,rfId:n,onError:y,edgeTypes:r,disableKeyboardA11y:h},e))]})}Vj.displayName=`EdgeRenderer`;var Hj=(0,y.memo)(Vj),Uj=e=>`translate(${e[0]}px,${e[1]}px) scale(${e[2]})`;function Wj({children:e}){let t=ck(),n=(0,y.useRef)(null),[r]=(0,y.useState)(()=>t.getState().transform);return $k(()=>{let e=null,r=()=>{let r=t.getState().transform;e&&r[0]===e[0]&&r[1]===e[1]&&r[2]===e[2]||(e=r,n.current&&(n.current.style.transform=Uj(r)))};return r(),t.subscribe(r)},[t]),(0,K.jsx)(`div`,{ref:n,className:`react-flow__viewport xyflow__viewport react-flow__container`,style:{transform:Uj(r)},children:e})}function Gj(e){let t=oA(),n=(0,y.useRef)(!1);(0,y.useEffect)(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}var Kj=e=>e.panZoom?.syncViewport;function qj(e){let t=sk(Kj),n=ck();return(0,y.useEffect)(()=>{e&&(t?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function Jj(e){return e.connection.inProgress?{...e.connection,to:GE(e.connection.to,e.transform)}:{...e.connection}}function Yj(e){return e?t=>e(Jj(t)):Jj}function Xj(e){return sk(Yj(e),rk)}var Zj=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function Qj({containerStyle:e,style:t,type:n,component:r}){let{nodesConnectable:i,width:a,height:o,isValid:s,inProgress:c}=sk(Zj,rk);return a&&i&&c?(0,K.jsx)(`svg`,{style:e,width:a,height:o,className:`react-flow__connectionline react-flow__container`,children:(0,K.jsx)(`g`,{className:Sb([`react-flow__connection`,aD(s)]),children:(0,K.jsx)($j,{style:t,type:n,CustomComponent:r,isValid:s})})}):null}var $j=({style:e,type:t=pE.Bezier,CustomComponent:n,isValid:r})=>{let{inProgress:i,from:a,fromNode:o,fromHandle:s,fromPosition:c,to:l,toNode:u,toHandle:d,toPosition:f,pointer:p}=Xj();if(!i)return;if(n)return(0,K.jsx)(n,{connectionLineType:t,connectionLineStyle:e,fromNode:o,fromHandle:s,fromX:a.x,fromY:a.y,toX:l.x,toY:l.y,fromPosition:c,toPosition:f,connectionStatus:aD(r),toNode:u,toHandle:d,pointer:p});let m=``,h={sourceX:a.x,sourceY:a.y,sourcePosition:c,targetX:l.x,targetY:l.y,targetPosition:f};switch(t){case pE.Bezier:[m]=_D(h);break;case pE.SimpleBezier:[m]=hj(h);break;case pE.Step:[m]=AD({...h,borderRadius:0});break;case pE.SmoothStep:[m]=AD(h);break;default:[m]=wD(h)}return(0,K.jsx)(`path`,{d:m,fill:`none`,className:`react-flow__connection-path`,style:e})};$j.displayName=`ConnectionLine`;var eM={};function tM(e=eM){(0,y.useRef)(e),ck(),(0,y.useEffect)(()=>{},[e])}function nM(){ck(),(0,y.useRef)(!1),(0,y.useEffect)(()=>{},[])}function rM({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:i,onNodeDoubleClick:a,onEdgeDoubleClick:o,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,onSelectionContextMenu:d,onSelectionStart:f,onSelectionEnd:p,connectionLineType:m,connectionLineStyle:h,connectionLineComponent:g,connectionLineContainerStyle:_,selectionKeyCode:v,selectionOnDrag:y,selectionMode:b,multiSelectionKeyCode:x,panActivationKeyCode:S,zoomActivationKeyCode:C,deleteKeyCode:w,onlyRenderVisibleElements:T,elementsSelectable:E,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,preventScrolling:j,defaultMarkerColor:M,zoomOnScroll:N,zoomOnPinch:P,panOnScroll:F,panOnScrollSpeed:I,panOnScrollMode:L,zoomOnDoubleClick:R,panOnDrag:z,autoPanOnSelection:B,onPaneClick:ee,onPaneMouseEnter:V,onPaneMouseMove:H,onPaneMouseLeave:te,onPaneScroll:ne,onPaneContextMenu:re,paneClickDistance:ie,nodeClickDistance:ae,onEdgeContextMenu:oe,onEdgeMouseEnter:se,onEdgeMouseMove:U,onEdgeMouseLeave:ce,reconnectRadius:le,onReconnect:ue,onReconnectStart:de,onReconnectEnd:fe,noDragClassName:pe,noWheelClassName:me,noPanClassName:he,disableKeyboardA11y:ge,nodeExtent:_e,rfId:ve,viewport:ye,onViewportChange:be,nodesDraggable:xe}){return tM(e),tM(t),nM(),Gj(n),qj(ye),(0,K.jsx)(KA,{onPaneClick:ee,onPaneMouseEnter:V,onPaneMouseMove:H,onPaneMouseLeave:te,onPaneContextMenu:re,onPaneScroll:ne,paneClickDistance:ie,deleteKeyCode:w,selectionKeyCode:v,selectionOnDrag:y,selectionMode:b,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:x,panActivationKeyCode:S,zoomActivationKeyCode:C,elementsSelectable:E,zoomOnScroll:N,zoomOnPinch:P,zoomOnDoubleClick:R,panOnScroll:F,panOnScrollSpeed:I,panOnScrollMode:L,panOnDrag:z,autoPanOnSelection:B,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,onSelectionContextMenu:d,preventScrolling:j,noDragClassName:pe,noWheelClassName:me,noPanClassName:he,disableKeyboardA11y:ge,onViewportChange:be,isControlledViewport:!!ye,children:(0,K.jsxs)(Wj,{children:[(0,K.jsx)(Hj,{edgeTypes:t,onEdgeClick:i,onEdgeDoubleClick:o,onReconnect:ue,onReconnectStart:de,onReconnectEnd:fe,onlyRenderVisibleElements:T,onEdgeContextMenu:oe,onEdgeMouseEnter:se,onEdgeMouseMove:U,onEdgeMouseLeave:ce,reconnectRadius:le,defaultMarkerColor:M,noPanClassName:he,disableKeyboardA11y:ge,rfId:ve}),(0,K.jsx)(Qj,{style:h,type:m,component:g,containerStyle:_}),(0,K.jsx)(`div`,{className:`react-flow__edgelabel-renderer`}),(0,K.jsx)(nj,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:a,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,nodeClickDistance:ae,onlyRenderVisibleElements:T,noPanClassName:he,noDragClassName:pe,disableKeyboardA11y:ge,nodeExtent:_e,rfId:ve,nodesDraggable:xe}),(0,K.jsx)(`div`,{className:`react-flow__viewport-portal`})]})})}rM.displayName=`GraphView`;var iM=(0,y.memo)(rM),aM=UE(`React Flow`,`https://reactflow.dev/`),oM=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c=.5,maxZoom:l=2,nodeOrigin:u,nodeExtent:d,zIndexMode:f=`basic`}={})=>{let p=new Map,m=new Map,h=new Map,g=new Map,_=r??t??[],v=n??e??[],y=u??[0,0],b=d??oE;tO(h,g,_);let{nodesInitialized:x}=KD(v,p,m,{nodeOrigin:y,nodeExtent:b,zIndexMode:f}),S=[0,0,1];if(o&&i&&a){let{x:e,y:t,zoom:n}=XE(xE(p,{filter:e=>!(!e.width&&!e.initialWidth||!e.height&&!e.initialHeight)}),i,a,c,l,s?.padding??.1);S=[e,t,n]}return{rfId:`1`,width:i??0,height:a??0,transform:S,nodes:v,nodesInitialized:x,nodeLookup:p,parentLookup:m,edges:_,edgeLookup:g,connectionLookup:h,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:c,maxZoom:l,translateExtent:oE,nodeExtent:b,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:lE.Strict,domNode:null,paneDragging:!1,noPanClassName:`nopan`,nodeOrigin:y,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:o??!1,fitViewOptions:s,fitViewResolver:null,connection:{...fE},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:``,autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:aM,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:`react`,debug:!1,ariaLabelConfig:cE,zIndexMode:f,defaultEdgeOptions:void 0,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map,onNodesDelete:void 0,onEdgesDelete:void 0,onDelete:void 0,onBeforeDelete:void 0,onViewportChangeStart:void 0,onViewportChange:void 0,onViewportChangeEnd:void 0,onNodeDragStart:void 0,onNodeDrag:void 0,onNodeDragStop:void 0,onSelectionDragStart:void 0,onSelectionDrag:void 0,onSelectionDragStop:void 0,onMoveStart:void 0,onMove:void 0,onMoveEnd:void 0,onConnect:void 0,onConnectStart:void 0,onConnectEnd:void 0,onClickConnectStart:void 0,onClickConnectEnd:void 0}},sM=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f})=>nk((p,m)=>{async function h(){let{nodeLookup:e,panZoom:t,fitViewOptions:n,fitViewResolver:r,width:i,height:a,minZoom:o,maxZoom:s}=m();t&&(await TE({nodes:e,width:i,height:a,panZoom:t,minZoom:o,maxZoom:s},n),r?.resolve(!0),p({fitViewResolver:null}))}return{...oM({nodes:e,edges:t,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,defaultNodes:n,defaultEdges:r,zIndexMode:f}),setNodes:e=>{let{nodeLookup:t,parentLookup:n,nodeOrigin:r,nodeExtent:i,elevateNodesOnSelect:a,fitViewQueued:o,zIndexMode:s,nodesSelectionActive:c}=m(),{nodesInitialized:l,hasSelectedNodes:u}=KD(e,t,n,{nodeOrigin:r,nodeExtent:i,elevateNodesOnSelect:a,checkEquality:!0,zIndexMode:s}),d=c&&u;o&&l?(h(),p({nodes:e,nodesInitialized:l,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:d})):p({nodes:e,nodesInitialized:l,nodesSelectionActive:d})},setEdges:e=>{let{connectionLookup:t,edgeLookup:n}=m();tO(t,n,e),p({edges:e})},setDefaultNodesAndEdges:(e,t)=>{if(e){let{setNodes:t}=m();t(e),p({hasDefaultNodes:!0})}if(t){let{setEdges:e}=m();e(t),p({hasDefaultEdges:!0})}},updateNodeInternals:e=>{let{triggerNodeChanges:t,nodeLookup:n,parentLookup:r,domNode:i,nodeOrigin:a,nodeExtent:o,debug:s,fitViewQueued:c,zIndexMode:l}=m(),{changes:u,updatedInternals:d}=QD(e,n,r,i,a,o,l);d&&(UD(n,r,{nodeOrigin:a,nodeExtent:o,zIndexMode:l}),c?(h(),p({fitViewQueued:!1,fitViewOptions:void 0})):p({}),u?.length>0&&(s&&console.log(`React Flow: trigger node changes`,u),t?.(u)))},updateNodePositions:(e,t=!1)=>{let n=[],r=[],{nodeLookup:i,triggerNodeChanges:a,connection:o,updateConnection:s,onNodesChangeMiddlewareMap:c}=m();for(let[a,c]of e){let e=i.get(a),l=!!(e?.expandParent&&e?.parentId&&c?.position),u={id:a,type:`position`,position:l?{x:Math.max(0,c.position.x),y:Math.max(0,c.position.y)}:c.position,dragging:t};if(e&&o.inProgress&&o.fromNode.id===e.id){let t=PD(e,o.fromHandle,$.Left,!0);s({...o,from:t})}l&&e.parentId&&n.push({id:a,parentId:e.parentId,rect:{...c.internals.positionAbsolute,width:c.measured.width??0,height:c.measured.height??0}}),r.push(u)}if(n.length>0){let{parentLookup:e,nodeOrigin:t}=m(),a=ZD(n,i,e,t);r.push(...a)}for(let e of c.values())r=e(r);a(r)},triggerNodeChanges:e=>{let{onNodesChange:t,setNodes:n,nodes:r,hasDefaultNodes:i,debug:a}=m();e?.length&&(i&&n(Hk(e,r)),a&&console.log(`React Flow: trigger node changes`,e),t?.(e))},triggerEdgeChanges:e=>{let{onEdgesChange:t,setEdges:n,edges:r,hasDefaultEdges:i,debug:a}=m();e?.length&&(i&&n(Uk(e,r)),a&&console.log(`React Flow: trigger edge changes`,e),t?.(e))},addSelectedNodes:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){i(e.map(e=>Wk(e,!0)));return}i(Gk(r,new Set([...e]),!0)),a(Gk(n))},addSelectedEdges:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){a(e.map(e=>Wk(e,!0)));return}a(Gk(n,new Set([...e]))),i(Gk(r,new Set,!0))},unselectNodesAndEdges:({nodes:e,edges:t}={})=>{let{edges:n,nodes:r,nodeLookup:i,triggerNodeChanges:a,triggerEdgeChanges:o}=m(),s=e||r,c=t||n,l=[];for(let e of s){if(!e.selected)continue;let t=i.get(e.id);t&&(t.selected=!1),l.push(Wk(e.id,!1))}let u=[];for(let e of c)e.selected&&u.push(Wk(e.id,!1));a(l),o(u)},setMinZoom:e=>{let{panZoom:t,maxZoom:n}=m();t?.setScaleExtent([e,n]),p({minZoom:e})},setMaxZoom:e=>{let{panZoom:t,minZoom:n}=m();t?.setScaleExtent([n,e]),p({maxZoom:e})},setTranslateExtent:e=>{m().panZoom?.setTranslateExtent(e),p({translateExtent:e})},resetSelectedElements:()=>{let{edges:e,nodes:t,triggerNodeChanges:n,triggerEdgeChanges:r,elementsSelectable:i}=m();if(!i)return;let a=t.reduce((e,t)=>t.selected?[...e,Wk(t.id,!1)]:e,[]),o=e.reduce((e,t)=>t.selected?[...e,Wk(t.id,!1)]:e,[]);n(a),r(o)},setNodeExtent:e=>{let{nodes:t,nodeLookup:n,parentLookup:r,nodeOrigin:i,elevateNodesOnSelect:a,nodeExtent:o,zIndexMode:s}=m();(e[0][0]!==o[0][0]||e[0][1]!==o[0][1]||e[1][0]!==o[1][0]||e[1][1]!==o[1][1])&&(KD(t,n,r,{nodeOrigin:i,nodeExtent:e,elevateNodesOnSelect:a,checkEquality:!1,zIndexMode:s}),p({nodeExtent:e}))},panBy:e=>{let{transform:t,width:n,height:r,panZoom:i,translateExtent:a}=m();return $D({delta:e,panZoom:i,transform:t,translateExtent:a,width:n,height:r})},setCenter:async(e,t,n)=>{let{width:r,height:i,maxZoom:a,panZoom:o}=m();if(!o)return!1;let s=n?.zoom===void 0?a:n.zoom;return await o.setViewport({x:r/2-e*s,y:i/2-t*s,zoom:s},{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0},cancelConnection:()=>{p({connection:{...fE}})},updateConnection:e=>{p({connection:e})},reset:()=>p({...oM()})}},Object.is);function cM({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:i,initialHeight:a,initialMinZoom:o,initialMaxZoom:s,initialFitViewOptions:c,fitView:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f,children:p}){let[m]=(0,y.useState)(()=>sM({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:l,minZoom:o,maxZoom:s,fitViewOptions:c,nodeOrigin:u,nodeExtent:d,zIndexMode:f}));return(0,K.jsx)(ak,{value:m,children:(0,K.jsx)(rA,{children:(0,K.jsx)(OA,{children:p})})})}function lM({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:i,width:a,height:o,fitView:s,fitViewOptions:c,minZoom:l,maxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p}){return(0,y.useContext)(ik)?(0,K.jsx)(K.Fragment,{children:e}):(0,K.jsx)(cM,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:i,initialWidth:a,initialHeight:o,fitView:s,initialFitViewOptions:c,initialMinZoom:l,initialMaxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p,children:e})}var uM={width:`100%`,height:`100%`,overflow:`hidden`,position:`relative`,zIndex:0};function dM({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:i,nodeTypes:a,edgeTypes:o,onNodeClick:s,onEdgeClick:c,onInit:l,onMove:u,onMoveStart:d,onMoveEnd:f,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:_,onNodeMouseEnter:v,onNodeMouseMove:b,onNodeMouseLeave:x,onNodeContextMenu:S,onNodeDoubleClick:C,onNodeDragStart:w,onNodeDrag:T,onNodeDragStop:E,onNodesDelete:D,onEdgesDelete:O,onDelete:k,onSelectionChange:A,onSelectionDragStart:j,onSelectionDrag:M,onSelectionDragStop:N,onSelectionContextMenu:P,onSelectionStart:F,onSelectionEnd:I,onBeforeDelete:L,connectionMode:R,connectionLineType:z=pE.Bezier,connectionLineStyle:B,connectionLineComponent:ee,connectionLineContainerStyle:V,deleteKeyCode:H=`Backspace`,selectionKeyCode:te=`Shift`,selectionOnDrag:ne=!1,selectionMode:re=dE.Full,panActivationKeyCode:ie=`Space`,multiSelectionKeyCode:ae=ZE()?`Meta`:`Control`,zoomActivationKeyCode:oe=ZE()?`Meta`:`Control`,snapToGrid:se,snapGrid:U,onlyRenderVisibleElements:ce=!1,selectNodesOnDrag:le,nodesDraggable:ue,autoPanOnNodeFocus:de,nodesConnectable:fe,nodesFocusable:pe,nodeOrigin:me=Dk,edgesFocusable:he,edgesReconnectable:ge,elementsSelectable:_e=!0,defaultViewport:ve=Ok,minZoom:ye=.5,maxZoom:be=2,translateExtent:xe=oE,preventScrolling:Se=!0,nodeExtent:Ce,defaultMarkerColor:we=`#b1b1b7`,zoomOnScroll:Te=!0,zoomOnPinch:Ee=!0,panOnScroll:De=!1,panOnScrollSpeed:Oe=.5,panOnScrollMode:ke=uE.Free,zoomOnDoubleClick:Ae=!0,panOnDrag:je=!0,onPaneClick:Me,onPaneMouseEnter:Ne,onPaneMouseMove:Pe,onPaneMouseLeave:Fe,onPaneScroll:Ie,onPaneContextMenu:Le,paneClickDistance:Re=1,nodeClickDistance:ze=0,children:Be,onReconnect:Ve,onReconnectStart:He,onReconnectEnd:Ue,onEdgeContextMenu:We,onEdgeDoubleClick:Ge,onEdgeMouseEnter:Ke,onEdgeMouseMove:qe,onEdgeMouseLeave:Je,reconnectRadius:Ye=10,onNodesChange:Xe,onEdgesChange:Ze,noDragClassName:Qe=`nodrag`,noWheelClassName:$e=`nowheel`,noPanClassName:et=`nopan`,fitView:tt,fitViewOptions:nt,connectOnClick:rt,attributionPosition:it,proOptions:at,defaultEdgeOptions:W,elevateNodesOnSelect:ot=!0,elevateEdgesOnSelect:st=!1,disableKeyboardA11y:ct=!1,autoPanOnConnect:lt,autoPanOnNodeDrag:ut,autoPanOnSelection:dt=!0,autoPanSpeed:ft,connectionRadius:G,isValidConnection:pt,onError:mt,style:ht,id:gt,nodeDragThreshold:_t,connectionDragThreshold:vt,viewport:yt,onViewportChange:bt,width:xt,height:St,colorMode:Ct=`light`,debug:wt,onScroll:Tt,ariaLabelConfig:Et,zIndexMode:Dt=`basic`,...Ot},kt){let At=gt||`1`,jt=Pk(Ct),Mt=(0,y.useCallback)(e=>{e.currentTarget.scrollTo({top:0,left:0,behavior:`instant`}),Tt?.(e)},[Tt]);return(0,K.jsx)(`div`,{"data-testid":`rf__wrapper`,...Ot,onScroll:Mt,style:{...ht,...uM},ref:kt,className:Sb([`react-flow`,i,jt]),id:gt,role:`application`,children:(0,K.jsxs)(lM,{nodes:e,edges:t,width:xt,height:St,fitView:tt,fitViewOptions:nt,minZoom:ye,maxZoom:be,nodeOrigin:me,nodeExtent:Ce,zIndexMode:Dt,children:[(0,K.jsx)(Mk,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:_,nodesDraggable:ue,autoPanOnNodeFocus:de,nodesConnectable:fe,nodesFocusable:pe,edgesFocusable:he,edgesReconnectable:ge,elementsSelectable:_e,elevateNodesOnSelect:ot,elevateEdgesOnSelect:st,minZoom:ye,maxZoom:be,nodeExtent:Ce,onNodesChange:Xe,onEdgesChange:Ze,snapToGrid:se,snapGrid:U,connectionMode:R,translateExtent:xe,connectOnClick:rt,defaultEdgeOptions:W,fitView:tt,fitViewOptions:nt,onNodesDelete:D,onEdgesDelete:O,onDelete:k,onNodeDragStart:w,onNodeDrag:T,onNodeDragStop:E,onSelectionDrag:M,onSelectionDragStart:j,onSelectionDragStop:N,onMove:u,onMoveStart:d,onMoveEnd:f,noPanClassName:et,nodeOrigin:me,rfId:At,autoPanOnConnect:lt,autoPanOnNodeDrag:ut,autoPanSpeed:ft,onError:mt,connectionRadius:G,isValidConnection:pt,selectNodesOnDrag:le,nodeDragThreshold:_t,connectionDragThreshold:vt,onBeforeDelete:L,debug:wt,ariaLabelConfig:Et,zIndexMode:Dt}),(0,K.jsx)(iM,{onInit:l,onNodeClick:s,onEdgeClick:c,onNodeMouseEnter:v,onNodeMouseMove:b,onNodeMouseLeave:x,onNodeContextMenu:S,onNodeDoubleClick:C,nodeTypes:a,edgeTypes:o,connectionLineType:z,connectionLineStyle:B,connectionLineComponent:ee,connectionLineContainerStyle:V,selectionKeyCode:te,selectionOnDrag:ne,selectionMode:re,deleteKeyCode:H,multiSelectionKeyCode:ae,panActivationKeyCode:ie,zoomActivationKeyCode:oe,onlyRenderVisibleElements:ce,defaultViewport:ve,translateExtent:xe,minZoom:ye,maxZoom:be,preventScrolling:Se,zoomOnScroll:Te,zoomOnPinch:Ee,zoomOnDoubleClick:Ae,panOnScroll:De,panOnScrollSpeed:Oe,panOnScrollMode:ke,panOnDrag:je,autoPanOnSelection:dt,onPaneClick:Me,onPaneMouseEnter:Ne,onPaneMouseMove:Pe,onPaneMouseLeave:Fe,onPaneScroll:Ie,onPaneContextMenu:Le,paneClickDistance:Re,nodeClickDistance:ze,onSelectionContextMenu:P,onSelectionStart:F,onSelectionEnd:I,onReconnect:Ve,onReconnectStart:He,onReconnectEnd:Ue,onEdgeContextMenu:We,onEdgeDoubleClick:Ge,onEdgeMouseEnter:Ke,onEdgeMouseMove:qe,onEdgeMouseLeave:Je,reconnectRadius:Ye,defaultMarkerColor:we,noDragClassName:Qe,noWheelClassName:$e,noPanClassName:et,rfId:At,disableKeyboardA11y:ct,nodeExtent:Ce,viewport:yt,onViewportChange:bt,nodesDraggable:ue}),(0,K.jsx)(Ek,{onSelectionChange:A}),Be,(0,K.jsx)(bk,{proOptions:at,position:it}),(0,K.jsx)(_k,{rfId:At,disableKeyboardA11y:ct})]})})}var fM=Qk(dM);function pM(e){let[t,n]=(0,y.useState)(e);return[t,n,(0,y.useCallback)(e=>n(t=>Hk(e,t)),[])]}function mM(e){let[t,n]=(0,y.useState)(e);return[t,n,(0,y.useCallback)(e=>n(t=>Uk(e,t)),[])]}aE.error014();function hM(e){return sk((0,y.useCallback)(t=>t.nodeLookup.get(e),[e]),rk)}function gM({dimensions:e,lineWidth:t,variant:n,className:r}){return(0,K.jsx)(`path`,{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:Sb([`react-flow__background-pattern`,n,r])})}function _M({radius:e,className:t}){return(0,K.jsx)(`circle`,{cx:e,cy:e,r:e,className:Sb([`react-flow__background-pattern`,`dots`,t])})}var vM;(function(e){e.Lines=`lines`,e.Dots=`dots`,e.Cross=`cross`})(vM||={});var yM={[vM.Dots]:1,[vM.Lines]:1,[vM.Cross]:6},bM=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function xM({id:e,variant:t=vM.Dots,gap:n=20,size:r,lineWidth:i=1,offset:a=0,color:o,bgColor:s,style:c,className:l,patternClassName:u}){let d=(0,y.useRef)(null),{transform:f,patternId:p}=sk(bM,rk),m=r||yM[t],h=t===vM.Dots,g=t===vM.Cross,_=Array.isArray(n)?n:[n,n],v=[_[0]*f[2]||1,_[1]*f[2]||1],b=m*f[2],x=Array.isArray(a)?a:[a,a],S=g?[b,b]:v,C=[x[0]*f[2]+S[0]/2,x[1]*f[2]+S[1]/2],w=`${p}${e||``}`;return(0,K.jsxs)(`svg`,{className:Sb([`react-flow__background`,l]),style:{...c,...dA,"--xy-background-color-props":s,"--xy-background-pattern-color-props":o},ref:d,"data-testid":`rf__background`,children:[(0,K.jsx)(`pattern`,{id:w,x:f[0]%v[0],y:f[1]%v[1],width:v[0],height:v[1],patternUnits:`userSpaceOnUse`,patternTransform:`translate(-${C[0]},-${C[1]})`,children:h?(0,K.jsx)(_M,{radius:b/2,className:u}):(0,K.jsx)(gM,{dimensions:S,lineWidth:i,variant:t,className:u})}),(0,K.jsx)(`rect`,{x:`0`,y:`0`,width:`100%`,height:`100%`,fill:`url(#${w})`})]})}xM.displayName=`Background`;var SM=(0,y.memo)(xM);function CM(){return(0,K.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 32`,children:(0,K.jsx)(`path`,{d:`M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z`})})}function wM(){return(0,K.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 5`,children:(0,K.jsx)(`path`,{d:`M0 0h32v4.2H0z`})})}function TM(){return(0,K.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 30`,children:(0,K.jsx)(`path`,{d:`M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z`})})}function EM(){return(0,K.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,K.jsx)(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z`})})}function DM(){return(0,K.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,K.jsx)(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z`})})}function OM({children:e,className:t,...n}){return(0,K.jsx)(`button`,{type:`button`,className:Sb([`react-flow__controls-button`,t]),...n,children:e})}var kM=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function AM({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:i,onZoomIn:a,onZoomOut:o,onFitView:s,onInteractiveChange:c,className:l,children:u,position:d=`bottom-left`,orientation:f=`vertical`,"aria-label":p}){let m=ck(),{isInteractive:h,minZoomReached:g,maxZoomReached:_,ariaLabelConfig:v}=sk(kM,rk),{zoomIn:y,zoomOut:b,fitView:x}=oA();return(0,K.jsxs)(vk,{className:Sb([`react-flow__controls`,f===`horizontal`?`horizontal`:`vertical`,l]),position:d,style:e,"data-testid":`rf__controls`,"aria-label":p??v[`controls.ariaLabel`],children:[t&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(OM,{onClick:()=>{y(),a?.()},className:`react-flow__controls-zoomin`,title:v[`controls.zoomIn.ariaLabel`],"aria-label":v[`controls.zoomIn.ariaLabel`],disabled:_,children:(0,K.jsx)(CM,{})}),(0,K.jsx)(OM,{onClick:()=>{b(),o?.()},className:`react-flow__controls-zoomout`,title:v[`controls.zoomOut.ariaLabel`],"aria-label":v[`controls.zoomOut.ariaLabel`],disabled:g,children:(0,K.jsx)(wM,{})})]}),n&&(0,K.jsx)(OM,{className:`react-flow__controls-fitview`,onClick:()=>{x(i),s?.()},title:v[`controls.fitView.ariaLabel`],"aria-label":v[`controls.fitView.ariaLabel`],children:(0,K.jsx)(TM,{})}),r&&(0,K.jsx)(OM,{className:`react-flow__controls-interactive`,onClick:()=>{m.setState({nodesDraggable:!h,nodesConnectable:!h,elementsSelectable:!h}),c?.(!h)},title:v[`controls.interactive.ariaLabel`],"aria-label":v[`controls.interactive.ariaLabel`],children:h?(0,K.jsx)(DM,{}):(0,K.jsx)(EM,{})}),u]})}AM.displayName=`Controls`;var jM=(0,y.memo)(AM);function MM({id:e,x:t,y:n,width:r,height:i,style:a,color:o,strokeColor:s,strokeWidth:c,className:l,borderRadius:u,shapeRendering:d,selected:f,onClick:p}){let{background:m,backgroundColor:h}=a||{},g=o||m||h;return(0,K.jsx)(`rect`,{className:Sb([`react-flow__minimap-node`,{selected:f},l]),x:t,y:n,rx:u,ry:u,width:r,height:i,style:{fill:g,stroke:s,strokeWidth:c},shapeRendering:d,onClick:p?t=>p(t,e):void 0})}var NM=(0,y.memo)(MM),PM=e=>e.nodes.map(e=>e.id),FM=e=>e instanceof Function?e:()=>e;function IM({nodeStrokeColor:e,nodeColor:t,nodeClassName:n=``,nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:a=NM,onClick:o}){let s=sk(PM,rk),c=FM(t),l=FM(e),u=FM(n),d=typeof window>`u`||window.chrome?`crispEdges`:`geometricPrecision`;return(0,K.jsx)(K.Fragment,{children:s.map(e=>(0,K.jsx)(RM,{id:e,nodeColorFunc:c,nodeStrokeColorFunc:l,nodeClassNameFunc:u,nodeBorderRadius:r,nodeStrokeWidth:i,NodeComponent:a,onClick:o,shapeRendering:d},e))})}function LM({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:i,nodeStrokeWidth:a,shapeRendering:o,NodeComponent:s,onClick:c}){let{node:l,x:u,y:d,width:f,height:p}=sk(t=>{let n=t.nodeLookup.get(e);if(!n)return{node:void 0,x:0,y:0,width:0,height:0};let r=n.internals.userNode,{x:i,y:a}=n.internals.positionAbsolute,{width:o,height:s}=$E(r);return{node:r,x:i,y:a,width:o,height:s}},rk);return!l||l.hidden||!eD(l)?null:(0,K.jsx)(s,{x:u,y:d,width:f,height:p,style:l.style,selected:!!l.selected,className:r(l),color:t(l),borderRadius:i,strokeColor:n(l),strokeWidth:a,shapeRendering:o,onClick:c,id:l.id})}var RM=(0,y.memo)(LM),zM=(0,y.memo)(IM),BM=200,VM=150,HM=e=>!e.hidden,UM=e=>{let t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]},n=!1;for(let t of e.nodeLookup.values())if(!t.hidden){n=!0;break}return{viewBB:t,boundingRect:n?RE(xE(e.nodeLookup,{filter:HM}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},WM=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,GM=(e,t)=>WM(e.viewBB,t.viewBB)&&WM(e.boundingRect,t.boundingRect)&&e.rfId===t.rfId&&e.panZoom===t.panZoom&&e.translateExtent===t.translateExtent&&e.flowWidth===t.flowWidth&&e.flowHeight===t.flowHeight&&e.ariaLabelConfig===t.ariaLabelConfig,KM=`react-flow__minimap-desc`;function qM({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:i=``,nodeBorderRadius:a=5,nodeStrokeWidth:o,nodeComponent:s,bgColor:c,maskColor:l,maskStrokeColor:u,maskStrokeWidth:d,position:f=`bottom-right`,onClick:p,onNodeClick:m,pannable:h=!1,zoomable:g=!1,ariaLabel:_,inversePan:v,zoomStep:b=1,offsetScale:x=5}){let S=ck(),C=(0,y.useRef)(null),{boundingRect:w,panZoom:T,viewBB:E,rfId:D,translateExtent:O,flowWidth:k,flowHeight:A,ariaLabelConfig:j}=sk(UM,GM),M=e?.width??BM,N=e?.height??VM,P=w.width/M,F=w.height/N,I=Math.max(P,F),L=I*M,R=I*N,z=x*I,B=w.x-(L-w.width)/2-z,ee=w.y-(R-w.height)/2-z,V=L+z*2,H=R+z*2,te=`${KM}-${D}`,ne=(0,y.useRef)(0),re=(0,y.useRef)();ne.current=I,(0,y.useEffect)(()=>{let e=S.getState().panZoom;if(C.current&&e)return re.current=vO({domNode:C.current,panZoom:e,getTransform:()=>S.getState().transform,getViewScale:()=>ne.current}),()=>{re.current?.destroy()}},[T]),(0,y.useEffect)(()=>{re.current?.update({translateExtent:O,width:k,height:A,inversePan:v,pannable:h,zoomStep:b,zoomable:g})},[h,g,v,b,O,k,A]);let ie=p?e=>{let[t,n]=re.current?.pointer(e)||[0,0];p(e,{x:t,y:n})}:void 0,ae=(0,y.useCallback)((e,t)=>{let n=S.getState().nodeLookup.get(t).internals.userNode;m?.(e,n)},[m]),oe=m?ae:void 0,se=_??j[`minimap.ariaLabel`];return(0,K.jsx)(vk,{position:f,style:{...e,"--xy-minimap-background-color-props":typeof c==`string`?c:void 0,"--xy-minimap-mask-background-color-props":typeof l==`string`?l:void 0,"--xy-minimap-mask-stroke-color-props":typeof u==`string`?u:void 0,"--xy-minimap-mask-stroke-width-props":typeof d==`number`?d*I:void 0,"--xy-minimap-node-background-color-props":typeof r==`string`?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n==`string`?n:void 0,"--xy-minimap-node-stroke-width-props":typeof o==`number`?o:void 0},className:Sb([`react-flow__minimap`,t]),"data-testid":`rf__minimap`,children:(0,K.jsxs)(`svg`,{width:M,height:N,viewBox:`${B} ${ee} ${V} ${H}`,className:`react-flow__minimap-svg`,role:`img`,"aria-labelledby":te,ref:C,onClick:ie,children:[se&&(0,K.jsx)(`title`,{id:te,children:se}),(0,K.jsx)(zM,{onClick:oe,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:a,nodeClassName:i,nodeStrokeWidth:o,nodeComponent:s}),(0,K.jsx)(`path`,{className:`react-flow__minimap-mask`,d:`M${B-z},${ee-z}h${V+z*2}v${H+z*2}h${-V-z*2}z - M${E.x},${E.y}h${E.width}v${E.height}h${-E.width}z`,fillRule:`evenodd`,pointerEvents:`none`})]})})}qM.displayName=`MiniMap`;var JM=(0,y.memo)(qM),YM=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,XM={[NO.Line]:`right`,[NO.Handle]:`bottom-right`};function ZM({nodeId:e,position:t,variant:n=NO.Handle,className:r,style:i=void 0,children:a,color:o,minWidth:s=10,minHeight:c=10,maxWidth:l=Number.MAX_VALUE,maxHeight:u=Number.MAX_VALUE,keepAspectRatio:d=!1,resizeDirection:f,autoScale:p=!0,shouldResize:m,onResizeStart:h,onResize:g,onResizeEnd:_}){let v=TA(),b=typeof e==`string`?e:v,x=ck(),S=(0,y.useRef)(null),C=n===NO.Handle,w=sk((0,y.useCallback)(YM(C&&p),[C,p]),rk),T=(0,y.useRef)(null),E=t??XM[n];(0,y.useEffect)(()=>{if(S.current&&b)return T.current||=WO({domNode:S.current,nodeId:b,getStoreItems:()=>{let{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,domNode:a}=x.getState();return{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,paneDomNode:a}},onChange:(e,t)=>{let{triggerNodeChanges:n,nodeLookup:r,parentLookup:i,nodeOrigin:a}=x.getState(),o=[],s={x:e.x,y:e.y},c=r.get(b);if(c&&c.expandParent&&c.parentId){let t=c.origin??a,n=e.width??c.measured.width??0,l=e.height??c.measured.height??0,u=ZD([{id:c.id,parentId:c.parentId,rect:{width:n,height:l,...tD({x:e.x??c.position.x,y:e.y??c.position.y},{width:n,height:l},c.parentId,r,t)}}],r,i,a);o.push(...u),s.x=e.x?Math.max(t[0]*n,e.x):void 0,s.y=e.y?Math.max(t[1]*l,e.y):void 0}if(s.x!==void 0&&s.y!==void 0){let e={id:b,type:`position`,position:{...s}};o.push(e)}if(e.width!==void 0&&e.height!==void 0){let t={id:b,type:`dimensions`,resizing:!0,setAttributes:f?f===`horizontal`?`width`:`height`:!0,dimensions:{width:e.width,height:e.height}};o.push(t)}for(let e of t){let t={...e,type:`position`};o.push(t)}n(o)},onEnd:({width:e,height:t})=>{let n={id:b,type:`dimensions`,resizing:!1,dimensions:{width:e,height:t}};x.getState().triggerNodeChanges([n])}}),T.current.update({controlPosition:E,boundaries:{minWidth:s,minHeight:c,maxWidth:l,maxHeight:u},keepAspectRatio:d,resizeDirection:f,onResizeStart:h,onResize:g,onResizeEnd:_,shouldResize:m}),()=>{T.current?.destroy()}},[E,s,c,l,u,d,h,g,_,m]);let D=E.split(`-`);return(0,K.jsx)(`div`,{className:Sb([`react-flow__resize-control`,`nodrag`,...D,n,r]),ref:S,style:{...i,scale:w,...o&&{[C?`backgroundColor`:`borderColor`]:o}},children:a})}(0,y.memo)(ZM);var QM=e=>{switch(e){case`running`:return{borderColor:`border-[#643FB2] dark:border-[#8B5CF6]`,glow:`shadow-lg shadow-[#643FB2]/20`,badgeColor:`bg-[#643FB2] dark:bg-[#8B5CF6]`};case`completed`:return{borderColor:`border-green-500 dark:border-green-400`,glow:`shadow-lg shadow-green-500/20`,badgeColor:`bg-green-500 dark:bg-green-400`};case`failed`:return{borderColor:`border-red-500 dark:border-red-400`,glow:`shadow-lg shadow-red-500/20`,badgeColor:`bg-red-500 dark:bg-red-400`};case`cancelled`:return{borderColor:`border-orange-500 dark:border-orange-400`,glow:`shadow-lg shadow-orange-500/20`,badgeColor:`bg-orange-500 dark:bg-orange-400`};default:return{borderColor:`border-gray-300 dark:border-gray-600`,glow:``,badgeColor:`bg-gray-400 dark:bg-gray-500`}}},$M=(0,y.memo)(({data:e,selected:t})=>{let n=e,r=QM(n.state),[i,a]=(0,y.useState)(!1),o=n.outputData||n.error,s=n.state===`running`,c=s&&(n.isStreaming??!0),l=n.layoutDirection===`TB`,u=l?$.Top:$.Left,d=l?$.Bottom:$.Right;return(0,K.jsxs)(`div`,{className:jt(`group relative w-64 bg-card dark:bg-card rounded border-2 transition-all duration-200`,r.borderColor,t?`ring-2 ring-blue-500 ring-offset-2`:``,s?r.glow:`shadow-sm`),children:[(0,K.jsx)(NA,{type:`target`,position:u,id:`target`,className:`!w-2 !h-2 !rounded-full !border !border-gray-600 dark:!border-gray-500 transition-colors !min-w-0 !min-h-0`,style:{backgroundColor:n.state===`running`?`#643FB2`:n.state===`completed`?`#10b981`:n.state===`failed`?`#ef4444`:n.state===`cancelled`?`#f97316`:`#4b5563`}}),(0,K.jsx)(NA,{type:`source`,position:d,id:`source`,className:`!w-2 !h-2 !rounded-full !border !border-gray-600 dark:!border-gray-500 transition-colors !min-w-0 !min-h-0`,style:{backgroundColor:n.state===`running`?`#643FB2`:n.state===`completed`?`#10b981`:n.state===`failed`?`#ef4444`:n.state===`cancelled`?`#f97316`:`#4b5563`}}),(0,K.jsxs)(`div`,{className:`p-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,K.jsx)(`div`,{className:`flex-shrink-0 relative`,children:(0,K.jsx)(`div`,{className:`w-10 h-10 rounded-lg bg-gray-900/90 dark:bg-gray-800/90 flex items-center justify-center`,children:n.isStartNode?(0,K.jsx)(Zu,{className:`w-5 h-5 text-[#643FB2] dark:text-[#8B5CF6]`}):(0,K.jsx)(uf,{className:`w-5 h-5 text-gray-300 dark:text-gray-400`})})}),(0,K.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,K.jsx)(`h3`,{className:`font-medium text-sm text-gray-900 dark:text-gray-100 truncate`,children:n.name||n.executorId}),s&&(0,K.jsx)(ld,{className:`w-4 h-4 text-[#643FB2] dark:text-[#8B5CF6] ${c?`animate-spin`:``} flex-shrink-0`})]}),n.executorType&&(0,K.jsx)(`p`,{className:`text-xs text-gray-500 dark:text-gray-400 truncate mt-0.5`,children:n.executorType})]})]}),o&&(0,K.jsxs)(`div`,{className:`mt-2 border-t border-border/50 pt-2`,children:[(0,K.jsxs)(`button`,{onClick:e=>{e.stopPropagation(),a(!i)},className:`flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors w-full`,children:[i?(0,K.jsx)(su,{className:`w-3 h-3`}):(0,K.jsx)(du,{className:`w-3 h-3`}),(0,K.jsx)(`span`,{children:n.error?`Show error`:`Show output`})]}),i&&(0,K.jsx)(`div`,{className:`mt-2`,children:(()=>{if(n.error&&typeof n.error==`string`){let e=ub(n.error,200);return(0,K.jsx)(`div`,{className:`text-xs text-red-600 dark:text-red-400 bg-red-50 dark:bg-red-950/20 p-2 rounded border border-red-200 dark:border-red-800 break-words max-h-32 overflow-auto`,children:e})}if(n.outputData)try{let e=typeof n.outputData==`string`?n.outputData:JSON.stringify(n.outputData,null,2);return(0,K.jsx)(`div`,{className:`text-xs text-gray-700 dark:text-gray-300 bg-muted/50 p-2 rounded border max-h-32 overflow-auto`,children:(0,K.jsx)(`pre`,{className:`whitespace-pre-wrap font-mono`,children:e})})}catch{return(0,K.jsx)(`div`,{className:`text-xs text-gray-600 dark:text-gray-400 bg-muted/50 p-2 rounded border`,children:`[Unable to display output]`})}return null})()})]}),s&&(0,K.jsx)(`div`,{className:`absolute inset-0 rounded border-2 border-[#643FB2]/30 dark:border-[#8B5CF6]/30 animate-pulse pointer-events-none`})]})]})});$M.displayName=`ExecutorNode`;var eN=(0,y.memo)(function({id:e,source:t,markerEnd:n,style:r}){let i=hM(t);if(!i)return null;let{width:a,height:o}=i.measured,{x:s,y:c}=i.internals.positionAbsolute;if(!a||!o)return null;let l=i.data?.layoutDirection===`TB`,u;if(l){let e=s+a/2,t=c+o,n=s+a/2,r=c,i=s+a+100;u=`M ${e} ${t} C ${e} ${t+40}, ${i} ${t+40}, ${i} ${c+o/2} C ${i} ${r-40}, ${n} ${r-40}, ${n} ${r}`}else{let e=s+a,t=c+o/2,n=s,r=c+o/2,i=c+o+100;u=`M ${e} ${t} C ${e+40} ${t}, ${e+40} ${i}, ${s+a/2} ${i} C ${n-40} ${i}, ${n-40} ${r}, ${n} ${r}`}return(0,K.jsx)(pj,{id:e,path:u,markerEnd:n,style:r})}),tN={executor:$M},nN={selfLoop:eN};function rN({workflowDump:e,onNodeSelect:t,viewOptions:n,onToggleViewOption:r,layoutDirection:i,onLayoutDirectionChange:a}){let{fitView:o,setViewport:s,setNodes:c}=oA();return(0,K.jsx)(`div`,{className:`absolute top-4 right-4 z-10`,children:(0,K.jsxs)(_f,{children:[(0,K.jsx)(vf,{asChild:!0,children:(0,K.jsxs)(q,{variant:`outline`,size:`sm`,className:`h-8 w-8 p-0 bg-white/90 backdrop-blur-sm border-gray-200 shadow-sm hover:bg-white dark:bg-gray-800/90 dark:border-gray-600 dark:hover:bg-gray-800`,children:[(0,K.jsx)(zu,{className:`h-4 w-4`}),(0,K.jsx)(`span`,{className:`sr-only`,children:`View options`})]})}),(0,K.jsxs)(yf,{align:`end`,className:`w-56`,children:[(0,K.jsxs)(bf,{className:`flex items-center justify-between`,onClick:()=>r?.(`showMinimap`),children:[(0,K.jsxs)(`div`,{className:`flex items-center`,children:[(0,K.jsx)(pd,{className:`mr-2 h-4 w-4`}),`Show Minimap`]}),(0,K.jsx)(nh,{checked:n.showMinimap,onChange:()=>{}})]}),(0,K.jsxs)(bf,{className:`flex items-center justify-between`,onClick:()=>r?.(`showGrid`),children:[(0,K.jsxs)(`div`,{className:`flex items-center`,children:[(0,K.jsx)(Yu,{className:`mr-2 h-4 w-4`}),`Show Grid`]}),(0,K.jsx)(nh,{checked:n.showGrid,onChange:()=>{}})]}),(0,K.jsxs)(bf,{className:`flex items-center justify-between`,onClick:()=>r?.(`animateRun`),children:[(0,K.jsxs)(`div`,{className:`flex items-center`,children:[(0,K.jsx)(gf,{className:`mr-2 h-4 w-4`}),`Animate Run`]}),(0,K.jsx)(nh,{checked:n.animateRun,onChange:()=>{}})]}),(0,K.jsxs)(bf,{className:`flex items-center justify-between`,onClick:()=>r?.(`consolidateBidirectionalEdges`),children:[(0,K.jsxs)(`div`,{className:`flex items-center`,children:[(0,K.jsx)(ql,{className:`mr-2 h-4 w-4`}),`Merge Bidirectional Edges`]}),(0,K.jsx)(nh,{checked:n.consolidateBidirectionalEdges,onChange:()=>{}})]}),(0,K.jsx)(Sf,{}),(0,K.jsxs)(bf,{className:`flex items-center justify-between`,onClick:()=>{let n=i===`LR`?`TB`:`LR`;if(a?.(n),e){let r=hb(db(e,t,n),fb(e),n);c(r)}},children:[(0,K.jsxs)(`div`,{className:`flex items-center`,children:[(0,K.jsx)(Gl,{className:`mr-2 h-4 w-4`}),`Vertical Layout`]}),(0,K.jsx)(nh,{checked:i===`TB`,onChange:()=>{}})]}),(0,K.jsx)(Sf,{}),(0,K.jsxs)(bf,{onClick:()=>{s({x:0,y:0,zoom:1})},children:[(0,K.jsx)(Ld,{className:`mr-2 h-4 w-4`}),`Reset Zoom`]}),(0,K.jsxs)(bf,{onClick:()=>{o({padding:.2})},children:[(0,K.jsx)(hd,{className:`mr-2 h-4 w-4`}),`Fit to Screen`]}),(0,K.jsxs)(bf,{onClick:()=>{if(!e)return;let n=hb(db(e,t,i),fb(e),i);c(n)},children:[(0,K.jsx)(Yd,{className:`mr-2 h-4 w-4`}),`Auto-arrange`]})]})]})})}function iN({nodes:e,nodeUpdates:t,isStreaming:n,animateRun:r}){let{fitView:i}=oA();return(0,y.useEffect)(()=>{if(r){if(n){let t=e.filter(e=>e.data.state===`running`);if(t.length>0){let e=t[0];i({nodes:[e],duration:800,padding:.3,minZoom:.8,maxZoom:1.5})}}else e.length>0&&i({duration:1e3,padding:.2})}},[t,n,r,e]),null}var aN=(0,y.memo)(({timelineVisible:e})=>{let{fitView:t}=oA();return(0,y.useEffect)(()=>{let e=setTimeout(()=>{t({padding:.2,duration:300})},350);return()=>clearTimeout(e)},[e]),null}),oN=(0,y.memo)(function({workflowDump:e,events:t,isStreaming:n,onNodeSelect:r,className:i=``,viewOptions:a={showMinimap:!1,showGrid:!0,animateRun:!0,consolidateBidirectionalEdges:!0},onToggleViewOption:o,layoutDirection:s=`TB`,onLayoutDirectionChange:c,timelineVisible:l=!1}){let{initialNodes:u,initialEdges:d}=(0,y.useMemo)(()=>{if(!e)return{initialNodes:[],initialEdges:[]};let t=db(e,r,s),n=fb(e),i=a.consolidateBidirectionalEdges?bb(n):n;return{initialNodes:t.length>0?hb(t,i,s):t,initialEdges:i}},[e,r,s,a.consolidateBidirectionalEdges]),[f,p,m]=pM(u),[h,g,_]=mM(d),v=(0,y.useMemo)(()=>gb(t,e?.start_executor_id),[t,e?.start_executor_id]);(0,y.useMemo)(()=>{Object.keys(v).length>0?p(e=>_b(e,v,n)):t.length===0&&p(e=>e.map(e=>({...e,data:{...e.data,state:`pending`,outputData:void 0,error:void 0,isStreaming:!1}})))},[v,p,t.length,n]),(0,y.useMemo)(()=>{t.length>0?g(e=>{let n=yb(e,t);return a.consolidateBidirectionalEdges?bb(n):n}):g(e=>{let t=e.map(e=>({...e,animated:!1,style:{stroke:`#6b7280`,strokeWidth:2}}));return a.consolidateBidirectionalEdges?bb(t):t})},[t,g,a.consolidateBidirectionalEdges]),(0,y.useEffect)(()=>{u.length>0&&(p(u),g(d))},[e,a.consolidateBidirectionalEdges]);let b=(0,y.useCallback)((e,t)=>{e.stopPropagation(),r?.(t.data.executorId,t.data)},[r]);return e?u.length===0?(0,K.jsx)(`div`,{className:`flex items-center justify-center h-full bg-gray-50 dark:bg-gray-900 rounded border border-gray-200 dark:border-gray-700 ${i}`,children:(0,K.jsxs)(`div`,{className:`text-center text-gray-500 dark:text-gray-400`,children:[(0,K.jsx)(`div`,{className:`text-lg font-medium mb-2`,children:`No Executors Found`}),(0,K.jsx)(`div`,{className:`text-sm`,children:`Could not extract executors from workflow dump.`}),(0,K.jsxs)(`details`,{className:`mt-2 text-xs`,children:[(0,K.jsx)(`summary`,{className:`cursor-pointer`,children:`Debug Info`}),(0,K.jsx)(`pre`,{className:`mt-1 p-2 bg-gray-100 dark:bg-gray-800 rounded text-left overflow-auto`,children:JSON.stringify(e,null,2)})]})]})}):(0,K.jsxs)(`div`,{className:`h-full w-full ${i}`,children:[(0,K.jsxs)(fM,{nodes:f,edges:h,onNodesChange:m,onEdgesChange:_,onNodeClick:b,nodeTypes:tN,edgeTypes:nN,fitView:!0,fitViewOptions:{padding:.2},minZoom:.1,maxZoom:1.5,defaultEdgeOptions:{type:`default`,animated:!1,style:{stroke:`#6b7280`,strokeWidth:2}},nodesDraggable:!n,nodesConnectable:!1,elementsSelectable:!0,proOptions:{hideAttribution:!0},children:[a.showGrid&&(0,K.jsx)(SM,{variant:vM.Dots,gap:20,size:1,color:`#e5e7eb`,className:`dark:opacity-30`}),(0,K.jsx)(jM,{position:`bottom-left`,showInteractive:!1,style:{backgroundColor:`rgba(255, 255, 255, 0.9)`,border:`1px solid #e5e7eb`,borderRadius:`3px`},className:`dark:!bg-gray-800/90 dark:!border-gray-600`}),a.showMinimap&&(0,K.jsx)(JM,{nodeColor:e=>{switch(e.data?.state){case`running`:return`#643FB2`;case`completed`:return`#10b981`;case`failed`:return`#ef4444`;case`cancelled`:return`#f97316`;default:return`#6b7280`}},maskColor:`rgba(0, 0, 0, 0.1)`,position:`bottom-right`,style:{backgroundColor:`rgba(255, 255, 255, 0.9)`,border:`1px solid #e5e7eb`,borderRadius:`8px`},className:`dark:!bg-gray-800/90 dark:!border-gray-600`}),(0,K.jsx)(iN,{nodes:f,nodeUpdates:v,isStreaming:n,animateRun:a.animateRun}),(0,K.jsx)(aN,{timelineVisible:l}),(0,K.jsx)(rN,{workflowDump:e,onNodeSelect:r,viewOptions:a,onToggleViewOption:o,layoutDirection:s,onLayoutDirectionChange:c})]}),(0,K.jsx)(`style`,{children:` +`));return[t,t.reduce((e,t)=>e.concat(...t),[])]}return[[],[]]},[e]);return(0,y.useEffect)(()=>{let n=t?.target??Lk,c=t?.actInsideInputWithModifier??!0;if(e!==null){let e=e=>{if(i.current=e.ctrlKey||e.metaKey||e.shiftKey||e.altKey,(!i.current||i.current&&!c)&&fD(e))return!1;let n=Bk(e.code,s);if(a.current.add(e[n]),zk(o,a.current,!1)){let n=e.composedPath?.()?.[0]||e.target,a=n?.nodeName===`BUTTON`||n?.nodeName===`A`;t.preventDefault!==!1&&(i.current||!a)&&e.preventDefault(),r(!0)}},l=e=>{let t=Bk(e.code,s);zk(o,a.current,!0)?(r(!1),a.current.clear()):a.current.delete(e[t]),e.key===`Meta`&&a.current.clear(),i.current=!1},u=()=>{a.current.clear(),r(!1)};return n?.addEventListener(`keydown`,e),n?.addEventListener(`keyup`,l),window.addEventListener(`blur`,u),window.addEventListener(`contextmenu`,u),()=>{n?.removeEventListener(`keydown`,e),n?.removeEventListener(`keyup`,l),window.removeEventListener(`blur`,u),window.removeEventListener(`contextmenu`,u)}}},[e,r]),n}function zk(e,t,n){return e.filter(e=>n||e.length===t.size).some(e=>e.every(e=>t.has(e)))}function Bk(e,t){return t.includes(e)?`code`:`key`}var Vk=()=>{let e=uk();return(0,y.useMemo)(()=>({zoomIn:async t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):!1},zoomOut:async t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):!1},zoomTo:async(t,n)=>{let{panZoom:r}=e.getState();return r?r.scaleTo(t,n):!1},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{let{transform:[r,i,a],panZoom:o}=e.getState();return o?(await o.setViewport({x:t.x??r,y:t.y??i,zoom:t.zoom??a},n),!0):!1},getViewport:()=>{let[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{let{width:r,height:i,minZoom:a,maxZoom:o,panZoom:s}=e.getState(),c=QE(t,r,i,a,o,n?.padding??.1);return s?(await s.setViewport(c,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0):!1},screenToFlowPosition:(t,n={})=>{let{transform:r,snapGrid:i,snapToGrid:a,domNode:o}=e.getState();if(!o)return t;let{x:s,y:c}=o.getBoundingClientRect(),l={x:t.x-s,y:t.y-c},u=n.snapGrid??i;return qE(l,r,n.snapToGrid??a,u)},flowToScreenPosition:t=>{let{transform:n,domNode:r}=e.getState();if(!r)return t;let{x:i,y:a}=r.getBoundingClientRect(),o=JE(t,n);return{x:o.x+i,y:o.y+a}}}),[])};function Hk(e,t){let n=[],r=new Map,i=[];for(let t of e)if(t.type===`add`){i.push(t);continue}else if(t.type===`remove`||t.type===`replace`)r.set(t.id,[t]);else{let e=r.get(t.id);e?e.push(t):r.set(t.id,[t])}for(let e of t){let t=r.get(e.id);if(!t){n.push(e);continue}if(t[0].type===`remove`)continue;if(t[0].type===`replace`){n.push({...t[0].item});continue}let i={...e};for(let e of t)Uk(e,i);n.push(i)}return i.length&&i.forEach(e=>{e.index===void 0?n.push({...e.item}):n.splice(e.index,0,{...e.item})}),n}function Uk(e,t){switch(e.type){case`select`:t.selected=e.selected;break;case`position`:e.position!==void 0&&(t.position=e.position),e.dragging!==void 0&&(t.dragging=e.dragging);break;case`dimensions`:e.dimensions!==void 0&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes===`width`)&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes===`height`)&&(t.height=e.dimensions.height))),typeof e.resizing==`boolean`&&(t.resizing=e.resizing)}}function Wk(e,t){return Hk(e,t)}function Gk(e,t){return Hk(e,t)}function Kk(e,t){return{id:e,type:`select`,selected:t}}function qk(e,t=new Set,n=!1){let r=[];for(let[i,a]of e){let e=t.has(i);(a.selected!==void 0||e)&&a.selected!==e&&(n&&(a.selected=e),r.push(Kk(a.id,e)))}return r}function Jk({items:e=[],lookup:t}){let n=[],r=new Map(e.map(e=>[e.id,e]));for(let[r,i]of e.entries()){let e=t.get(i.id),a=e?.internals?.userNode??e;a!==void 0&&a!==i&&n.push({id:i.id,item:i,type:`replace`}),a===void 0&&n.push({item:i,type:`add`,index:r})}for(let[e]of t)r.get(e)===void 0&&n.push({id:e,type:`remove`});return n}function Yk(e){return{id:e.id,type:`remove`}}var Xk=GE(`React Flow`,`https://reactflow.dev/`);function Zk(e,t,n={}){return TD(e,t,{...n,onError:n.onError??Xk})}var Qk=e=>yE(e),$k=e=>vE(e);function eA(e){return(0,y.forwardRef)(e)}var tA=typeof window<`u`?y.useLayoutEffect:y.useEffect;function nA(e){let[t,n]=(0,y.useState)(BigInt(0)),[r]=(0,y.useState)(()=>rA(()=>n(e=>e+BigInt(1))));return tA(()=>{let t=r.get();t.length&&(e(t),r.reset())},[t]),r}function rA(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}var iA=(0,y.createContext)(null);function aA({children:e}){let t=uk(),n=nA((0,y.useCallback)(e=>{let{nodes:n=[],setNodes:r,hasDefaultNodes:i,onNodesChange:a,nodeLookup:o,fitViewQueued:s,onNodesChangeMiddlewareMap:c}=t.getState(),l=n;for(let t of e)l=typeof t==`function`?t(l):t;let u=Jk({items:l,lookup:o});for(let e of c.values())u=e(u);i&&r(l),u.length>0?a?.(u):s&&window.requestAnimationFrame(()=>{let{fitViewQueued:e,nodes:n,setNodes:r}=t.getState();e&&r(n)})},[])),r=nA((0,y.useCallback)(e=>{let{edges:n=[],setEdges:r,hasDefaultEdges:i,onEdgesChange:a,edgeLookup:o}=t.getState(),s=n;for(let t of e)s=typeof t==`function`?t(s):t;i?r(s):a&&a(Jk({items:s,lookup:o}))},[])),i=(0,y.useMemo)(()=>({nodeQueue:n,edgeQueue:r}),[]);return(0,K.jsx)(iA.Provider,{value:i,children:e})}function oA(){let e=(0,y.useContext)(iA);if(!e)throw Error(`useBatchContext must be used within a BatchProvider`);return e}var sA=e=>!!e.panZoom;function cA(){let e=Vk(),t=uk(),n=oA(),r=lk(sA),i=(0,y.useMemo)(()=>{let e=e=>t.getState().nodeLookup.get(e),r=e=>{n.nodeQueue.push(e)},i=e=>{n.edgeQueue.push(e)},a=e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState(),i=Qk(e)?e:n.get(e.id),a=i.parentId?rD(i.position,i.measured,i.parentId,n,r):i.position;return RE({...i,position:a,width:i.measured?.width??i.width,height:i.measured?.height??i.height})},o=(e,t,n={replace:!1})=>{r(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&Qk(e)?e:{...r,...e}}return r}))},s=(e,t,n={replace:!1})=>{i(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&$k(e)?e:{...r,...e}}return r}))};return{getNodes:()=>t.getState().nodes.map(e=>({...e})),getNode:t=>e(t)?.internals.userNode,getInternalNode:e,getEdges:()=>{let{edges:e=[]}=t.getState();return e.map(e=>({...e}))},getEdge:e=>t.getState().edgeLookup.get(e),setNodes:r,setEdges:i,addNodes:e=>{let t=Array.isArray(e)?e:[e];n.nodeQueue.push(e=>[...e,...t])},addEdges:e=>{let t=Array.isArray(e)?e:[e];n.edgeQueue.push(e=>[...e,...t])},toObject:()=>{let{nodes:e=[],edges:n=[],transform:r}=t.getState(),[i,a,o]=r;return{nodes:e.map(e=>({...e})),edges:n.map(e=>({...e})),viewport:{x:i,y:a,zoom:o}}},deleteElements:async({nodes:e=[],edges:n=[]})=>{let{nodes:r,edges:i,onNodesDelete:a,onEdgesDelete:o,triggerNodeChanges:s,triggerEdgeChanges:c,onDelete:l,onBeforeDelete:u}=t.getState(),{nodes:d,edges:f}=await kE({nodesToRemove:e,edgesToRemove:n,nodes:r,edges:i,onBeforeDelete:u}),p=f.length>0,m=d.length>0;if(p){let e=f.map(Yk);o?.(f),c(e)}if(m){let e=d.map(Yk);a?.(d),s(e)}return(m||p)&&l?.({nodes:d,edges:f}),{deletedNodes:d,deletedEdges:f}},getIntersectingNodes:(e,n=!0,r)=>{let i=UE(e),o=i?e:a(e),s=r!==void 0;return o?(r||t.getState().nodes).filter(r=>{let a=t.getState().nodeLookup.get(r.id);if(a&&!i&&(r.id===e.id||!a.internals.positionAbsolute))return!1;let c=RE(s?r:a),l=HE(c,o);return n&&l>0||l>=c.width*c.height||l>=o.width*o.height}):[]},isNodeIntersecting:(e,t,n=!0)=>{let r=UE(e)?e:a(e);if(!r)return!1;let i=HE(r,t);return n&&i>0||i>=t.width*t.height||i>=r.width*r.height},updateNode:o,updateNodeData:(e,t,n={replace:!1})=>{o(e,e=>{let r=typeof t==`function`?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},updateEdge:s,updateEdgeData:(e,t,n={replace:!1})=>{s(e,e=>{let r=typeof t==`function`?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},getNodesBounds:e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState();return SE(e,{nodeLookup:n,nodeOrigin:r})},getHandleConnections:({type:e,id:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}-${e}${n?`-${n}`:``}`)?.values()??[]),getNodeConnections:({type:e,handleId:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}${e?n?`-${e}-${n}`:`-${e}`:``}`)?.values()??[]),fitView:async e=>{let r=t.getState().fitViewResolver??aD();return t.setState({fitViewQueued:!0,fitViewOptions:e,fitViewResolver:r}),n.nodeQueue.push(e=>[...e]),r.promise}}},[]);return(0,y.useMemo)(()=>({...i,...e,viewportInitialized:r}),[r])}var lA=e=>e.selected,uA=typeof window<`u`?window:void 0;function dA({deleteKeyCode:e,multiSelectionKeyCode:t}){let n=uk(),{deleteElements:r}=cA(),i=Rk(e,{actInsideInputWithModifier:!1}),a=Rk(t,{target:uA});(0,y.useEffect)(()=>{if(i){let{edges:e,nodes:t}=n.getState();r({nodes:t.filter(lA),edges:e.filter(lA)}),n.setState({nodesSelectionActive:!1})}},[i]),(0,y.useEffect)(()=>{n.setState({multiSelectionActive:a})},[a])}function fA(e){let t=uk();(0,y.useEffect)(()=>{let n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;let n=lD(e.current);(n.height===0||n.width===0)&&t.getState().onError?.(`004`,sE.error004()),t.setState({width:n.width||500,height:n.height||500})};if(e.current){n(),window.addEventListener(`resize`,n);let t=new ResizeObserver(()=>n());return t.observe(e.current),()=>{window.removeEventListener(`resize`,n),t&&e.current&&t.unobserve(e.current)}}},[])}var pA={position:`absolute`,width:`100%`,height:`100%`,top:0,left:0},mA=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function hA({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panActivationKeyPressed:i,panOnScrollSpeed:a=.5,panOnScrollMode:o=fE.Free,zoomOnDoubleClick:s=!0,panOnDrag:c=!0,defaultViewport:l,translateExtent:u,minZoom:d,maxZoom:f,zoomActivationKeyCode:p,preventScrolling:m=!0,children:h,noWheelClassName:g,noPanClassName:_,onViewportChange:v,isControlledViewport:b,paneClickDistance:x,selectionOnDrag:S}){let C=uk(),w=(0,y.useRef)(null),{userSelectionActive:T,lib:E,connectionInProgress:D}=lk(mA,ak),O=Rk(p),k=(0,y.useRef)();fA(w);let A=(0,y.useCallback)(e=>{v?.({x:e[0],y:e[1],zoom:e[2]}),b||C.setState({transform:e})},[v,b]);return(0,y.useEffect)(()=>{if(w.current){k.current=PO({domNode:w.current,minZoom:d,maxZoom:f,translateExtent:u,viewport:l,onDraggingChange:e=>C.setState(t=>t.paneDragging===e?t:{paneDragging:e}),onPanZoomStart:(e,t)=>{let{onViewportChangeStart:n,onMoveStart:r}=C.getState();r?.(e,t),n?.(t)},onPanZoom:(e,t)=>{let{onViewportChange:n,onMove:r}=C.getState();r?.(e,t),n?.(t)},onPanZoomEnd:(e,t)=>{let{onViewportChangeEnd:n,onMoveEnd:r}=C.getState();r?.(e,t),n?.(t)}});let{x:e,y:t,zoom:n}=k.current.getViewport();return C.setState({panZoom:k.current,transform:[e,t,n],domNode:w.current.closest(`.react-flow`)}),()=>{k.current?.destroy()}}},[]),(0,y.useEffect)(()=>{k.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panActivationKeyPressed:i,panOnScrollSpeed:a,panOnScrollMode:o,zoomOnDoubleClick:s,panOnDrag:c,zoomActivationKeyPressed:O,preventScrolling:m,noPanClassName:_,userSelectionActive:T,noWheelClassName:g,lib:E,onTransformChange:A,connectionInProgress:D,selectionOnDrag:S,paneClickDistance:x})},[e,t,n,r,i,a,o,s,c,O,m,_,T,g,E,A,D,S,x]),(0,K.jsx)(`div`,{className:`react-flow__renderer`,ref:w,style:pA,children:h})}var gA=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function _A(){let{userSelectionActive:e,userSelectionRect:t}=lk(gA,ak);return e&&t?(0,K.jsx)(`div`,{className:`react-flow__selection react-flow__container`,style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}var vA=(e,t)=>n=>{n.target===t.current&&e?.(n)},yA=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function bA({isSelecting:e,selectionKeyPressed:t,selectionMode:n=pE.Full,panOnDrag:r,autoPanOnSelection:i,paneClickDistance:a,selectionOnDrag:o,onSelectionStart:s,onSelectionEnd:c,onPaneClick:l,onPaneContextMenu:u,onPaneScroll:d,onPaneMouseEnter:f,onPaneMouseMove:p,onPaneMouseLeave:m,children:h}){let g=(0,y.useRef)(0),_=uk(),{userSelectionActive:v,elementsSelectable:b,dragging:x,panBy:S,autoPanSpeed:C}=lk(yA,ak),w=b&&(e||v),T=(0,y.useRef)(null),E=(0,y.useRef)(),D=(0,y.useRef)(new Set),O=(0,y.useRef)(new Set),k=(0,y.useRef)(!1),A=(0,y.useRef)(!1),j=(0,y.useRef)({x:0,y:0}),M=(0,y.useRef)(!1),N=e=>{if(A.current||k.current||_.getState().connection.inProgress){A.current=!1,k.current=!1;return}l?.(e),_.getState().resetSelectedElements(),_.setState({nodesSelectionActive:!1})},P=e=>{if(Array.isArray(r)&&r?.includes(2)){e.preventDefault();return}u?.(e)},F=d?e=>d(e):void 0,I=e=>{A.current&&=(e.stopPropagation(),!1)},L=n=>{if(n.pointerType===`touch`&&r!==!1&&!t)return;let{domNode:i,transform:a}=_.getState();if(E.current=i?.getBoundingClientRect(),!E.current)return;let s=n.target===T.current;if(!s&&n.target.closest(`.nokey`)||!e||!(o&&s||t)||n.button!==0||!n.isPrimary)return;n.target?.setPointerCapture?.(n.pointerId),A.current=!1;let{x:c,y:l}=mD(n.nativeEvent,E.current),u=qE({x:c,y:l},a);_.setState({userSelectionRect:{width:0,height:0,startX:u.x,startY:u.y,x:c,y:l}}),s||(n.stopPropagation(),n.preventDefault())};function R(e,t){let{userSelectionRect:r}=_.getState();if(!r)return;let{transform:i,nodeLookup:a,edgeLookup:o,connectionLookup:s,triggerNodeChanges:c,triggerEdgeChanges:l,defaultEdgeOptions:u}=_.getState(),d={x:r.startX,y:r.startY},{x:f,y:p}=JE(d,i),m={startX:d.x,startY:d.y,x:ee.id)),O.current=new Set;let v=u?.selectable??!0;for(let e of D.current){let t=s.get(e);if(t)for(let{edgeId:e}of t.values()){let t=o.get(e);t&&(t.selectable??v)&&O.current.add(e)}}iD(h,D.current)||c(qk(a,D.current,!0)),iD(g,O.current)||l(qk(o,O.current)),_.setState({userSelectionRect:m,userSelectionActive:!0,nodesSelectionActive:!1})}function z(){if(!i||!E.current)return;let[e,t]=PE(j.current,E.current,C);S({x:e,y:t}).then(e=>{if(!A.current||!e){g.current=requestAnimationFrame(z);return}let{x:t,y:n}=j.current;R(t,n),g.current=requestAnimationFrame(z)})}let B=()=>{cancelAnimationFrame(g.current),g.current=0,M.current=!1};(0,y.useEffect)(()=>()=>B(),[]);let ee=e=>{let{userSelectionRect:n,transform:r,resetSelectedElements:i}=_.getState();if(!E.current||!n)return;let{x:o,y:c}=mD(e.nativeEvent,E.current);j.current={x:o,y:c};let l=JE({x:n.startX,y:n.startY},r);if(!A.current){let n=t?0:a;if(Math.hypot(o-l.x,c-l.y)<=n)return;i(),s?.(e)}A.current=!0,M.current||=(z(),!0),R(o,c)},V=e=>{if(!w){e.target===T.current&&_.getState().connection.inProgress&&(k.current=!0);return}e.button===0&&(e.target?.releasePointerCapture?.(e.pointerId),!v&&e.target===T.current&&_.getState().userSelectionRect&&N?.(e),_.setState({userSelectionActive:!1,userSelectionRect:null}),A.current&&(c?.(e),_.setState({nodesSelectionActive:D.current.size>0})),B())},H=e=>{e.target?.releasePointerCapture?.(e.pointerId),B()},te=r===!0||Array.isArray(r)&&r.includes(0);return(0,K.jsxs)(`div`,{className:wb([`react-flow__pane`,{draggable:te,dragging:x,selection:e}]),onClick:w?void 0:vA(N,T),onContextMenu:vA(P,T),onWheel:vA(F,T),onPointerEnter:w?void 0:f,onPointerMove:w?ee:p,onPointerUp:V,onPointerCancel:w?H:void 0,onPointerDownCapture:w?L:void 0,onClickCapture:w?I:void 0,onPointerLeave:m,ref:T,style:pA,children:[h,(0,K.jsx)(_A,{})]})}function xA({id:e,store:t,unselect:n=!1,nodeRef:r}){let{addSelectedNodes:i,unselectNodesAndEdges:a,multiSelectionActive:o,nodeLookup:s,onError:c}=t.getState(),l=s.get(e);if(!l){c?.(`012`,sE.error012(e));return}t.setState({nodesSelectionActive:!1}),l.selected?(n||l.selected&&o)&&(a({nodes:[l],edges:[]}),requestAnimationFrame(()=>r?.current?.blur())):i([e])}function SA({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:i,isSelectable:a,nodeClickDistance:o}){let s=uk(),[c,l]=(0,y.useState)(!1),u=(0,y.useRef)();return(0,y.useEffect)(()=>{if(!t)return u.current=lO({getStoreItems:()=>s.getState(),onNodeMouseDown:t=>{xA({id:t,store:s,nodeRef:e})},onDragStart:()=>{l(!0)},onDragStop:()=>{l(!1)}}),()=>{u.current?.destroy(),u.current=void 0}},[t,s,e]),(0,y.useEffect)(()=>{!t&&e.current&&u.current&&u.current.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:a,nodeId:i,nodeClickDistance:o})},[n,r,t,a,e,i,o]),c}var CA=e=>t=>t.selected&&(t.draggable||e&&t.draggable===void 0);function wA(){let e=uk();return(0,y.useCallback)(t=>{let{nodeExtent:n,snapToGrid:r,snapGrid:i,nodesDraggable:a,onError:o,updateNodePositions:s,nodeLookup:c,nodeOrigin:l}=e.getState(),u=new Map,d=CA(a),f=r?i[0]:5,p=r?i[1]:5,m=t.direction.x*f*t.factor,h=t.direction.y*p*t.factor;for(let[,e]of c){if(!d(e))continue;let t={x:e.internals.positionAbsolute.x+m,y:e.internals.positionAbsolute.y+h};r&&(t=KE(t,i));let{position:a,positionAbsolute:s}=OE({nodeId:e.id,nextPosition:t,nodeLookup:c,nodeExtent:n,nodeOrigin:l,onError:o});e.position=a,e.internals.positionAbsolute=s,u.set(e.id,e)}s(u)},[])}var TA=(0,y.createContext)(null),EA=TA.Provider;TA.Consumer;var DA=()=>(0,y.useContext)(TA),OA=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),kA=(0,y.createContext)(null);function AA({children:e}){let t=lk(OA,ak);return(0,K.jsx)(kA.Provider,{value:t,children:e})}function jA(){let e=(0,y.useContext)(kA);if(!e)throw Error(`useHandleConfig must be used within a HandleConfigProvider`);return e}var MA={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},NA=(e,t,n)=>r=>{let{connectionClickStartHandle:i,connectionMode:a,connection:o}=r,{fromHandle:s,toHandle:c,isValid:l}=o;if(!s&&!i)return MA;let u=c?.nodeId===e&&c?.id===t&&c?.type===n;return{connectingFrom:s?.nodeId===e&&s?.id===t&&s?.type===n,connectingTo:u,clickConnecting:i?.nodeId===e&&i?.id===t&&i?.type===n,isPossibleEndHandle:a===dE.Strict?s?.type!==n:e!==s?.nodeId||t!==s?.id,connectionInProcess:!!s,clickConnectionInProcess:!!i,valid:u&&l}};function PA({type:e=`source`,position:t=$.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:i=!0,isConnectableEnd:a=!0,id:o,onConnect:s,children:c,className:l,onMouseDown:u,onTouchStart:d,...f},p){let m=o||null,h=e===`target`,g=uk(),_=DA(),{connectOnClick:v,noPanClassName:y,rfId:b}=jA(),{connectingFrom:x,connectingTo:S,clickConnecting:C,isPossibleEndHandle:w,connectionInProcess:T,clickConnectionInProcess:E,valid:D}=lk(NA(_,m,e),ak);_||g.getState().onError?.(`010`,sE.error010());let O=e=>{let{defaultEdgeOptions:t,onConnect:n,hasDefaultEdges:r}=g.getState(),i={...t,...e};if(r){let{edges:e,setEdges:t,onError:n}=g.getState();t(Zk(i,e,{onError:n}))}n?.(i),s?.(i)},k=e=>{if(!_)return;let t=pD(e.nativeEvent);if(i&&(t&&e.button===0||!t)){let t=g.getState();yO.onPointerDown(e.nativeEvent,{handleDomNode:e.currentTarget,autoPanOnConnect:t.autoPanOnConnect,connectionMode:t.connectionMode,connectionRadius:t.connectionRadius,domNode:t.domNode,nodeLookup:t.nodeLookup,lib:t.lib,isTarget:h,handleId:m,nodeId:_,flowId:t.rfId,panBy:t.panBy,cancelConnection:t.cancelConnection,onConnectStart:t.onConnectStart,onConnectEnd:(...e)=>g.getState().onConnectEnd?.(...e),updateConnection:t.updateConnection,onConnect:O,isValidConnection:n||((...e)=>g.getState().isValidConnection?.(...e)??!0),getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,autoPanSpeed:t.autoPanSpeed,dragThreshold:t.connectionDragThreshold})}t?u?.(e):d?.(e)};return(0,K.jsx)(`div`,{"data-handleid":m,"data-nodeid":_,"data-handlepos":t,"data-id":`${b}-${_}-${m}-${e}`,className:wb([`react-flow__handle`,`react-flow__handle-${t}`,`nodrag`,y,l,{source:!h,target:h,connectable:r,connectablestart:i,connectableend:a,clickconnecting:C,connectingfrom:x,connectingto:S,valid:D,connectionindicator:r&&(!T||w)&&(T||E?a:i)}]),onMouseDown:k,onTouchStart:k,onClick:v?t=>{let{onClickConnectStart:r,onClickConnectEnd:a,connectionClickStartHandle:o,connectionMode:s,isValidConnection:c,lib:l,rfId:u,nodeLookup:d,connection:f}=g.getState();if(!_||!o&&!i)return;if(!o){r?.(t.nativeEvent,{nodeId:_,handleId:m,handleType:e}),g.setState({connectionClickStartHandle:{nodeId:_,type:e,id:m}});return}let p=uD(t.target),h=n||c,{connection:v,isValid:y}=yO.isValid(t.nativeEvent,{handle:{nodeId:_,id:m,type:e},connectionMode:s,fromNodeId:o.nodeId,fromHandleId:o.id||null,fromType:o.type,isValidConnection:h,flowId:u,doc:p,lib:l,nodeLookup:d});y&&v&&O(v);let b=structuredClone(f);delete b.inProgress,b.toPosition=b.toHandle?b.toHandle.position:null,a?.(t,b),g.setState({connectionClickStartHandle:null})}:void 0,ref:p,...f,children:c})}var FA=(0,y.memo)(eA(PA));function IA({data:e,isConnectable:t,sourcePosition:n=$.Bottom}){return(0,K.jsxs)(K.Fragment,{children:[e?.label,(0,K.jsx)(FA,{type:`source`,position:n,isConnectable:t})]})}function LA({data:e,isConnectable:t,targetPosition:n=$.Top,sourcePosition:r=$.Bottom}){return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(FA,{type:`target`,position:n,isConnectable:t}),e?.label,(0,K.jsx)(FA,{type:`source`,position:r,isConnectable:t})]})}function RA(){return null}function zA({data:e,isConnectable:t,targetPosition:n=$.Top}){return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(FA,{type:`target`,position:n,isConnectable:t}),e?.label]})}var BA={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},VA={input:IA,default:LA,output:zA,group:RA};function HA(e){return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??e.style?.width,height:e.height??e.initialHeight??e.style?.height}:{width:e.width??e.style?.width,height:e.height??e.style?.height}}var UA=e=>{let{width:t,height:n,x:r,y:i}=CE(e.nodeLookup,{filter:e=>!!e.selected});return{width:WE(t)?t:null,height:WE(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${i}px)`}};function WA({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){let r=uk(),{width:i,height:a,transformString:o,userSelectionActive:s}=lk(UA,ak),c=wA(),l=(0,y.useRef)(null);(0,y.useEffect)(()=>{n||l.current?.focus({preventScroll:!0})},[n]);let u=!s&&i!==null&&a!==null;if(SA({nodeRef:l,disabled:!u}),!u)return null;let d=e?t=>{e(t,r.getState().nodes.filter(e=>e.selected))}:void 0;return(0,K.jsx)(`div`,{className:wb([`react-flow__nodesselection`,`react-flow__container`,t]),style:{transform:o},children:(0,K.jsx)(`div`,{ref:l,className:`react-flow__nodesselection-rect`,onContextMenu:d,tabIndex:n?void 0:-1,onKeyDown:n?void 0:e=>{Object.prototype.hasOwnProperty.call(BA,e.key)&&(e.preventDefault(),c({direction:BA[e.key],factor:e.shiftKey?4:1}))},style:{width:i,height:a}})})}var GA=typeof window<`u`?window:void 0,KA=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function qA({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,paneClickDistance:s,deleteKeyCode:c,selectionKeyCode:l,selectionOnDrag:u,selectionMode:d,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:m,panActivationKeyCode:h,zoomActivationKeyCode:g,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:b,panOnScrollSpeed:x,panOnScrollMode:S,zoomOnDoubleClick:C,panOnDrag:w,autoPanOnSelection:T,defaultViewport:E,translateExtent:D,minZoom:O,maxZoom:k,preventScrolling:A,onSelectionContextMenu:j,noWheelClassName:M,noPanClassName:N,disableKeyboardA11y:P,onViewportChange:F,isControlledViewport:I}){let{nodesSelectionActive:L,userSelectionActive:R}=lk(KA,ak),z=Rk(l,{target:GA}),B=Rk(h,{target:GA}),ee=B||w,V=B||b,H=u&&ee!==!0,te=z||R||H;return dA({deleteKeyCode:c,multiSelectionKeyCode:m}),(0,K.jsx)(hA,{onPaneContextMenu:a,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:V,panActivationKeyPressed:B,panOnScrollSpeed:x,panOnScrollMode:S,zoomOnDoubleClick:C,panOnDrag:!z&&ee,defaultViewport:E,translateExtent:D,minZoom:O,maxZoom:k,zoomActivationKeyCode:g,preventScrolling:A,noWheelClassName:M,noPanClassName:N,onViewportChange:F,isControlledViewport:I,paneClickDistance:s,selectionOnDrag:H,children:(0,K.jsxs)(bA,{onSelectionStart:f,onSelectionEnd:p,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,panOnDrag:ee,autoPanOnSelection:T,isSelecting:!!te,selectionMode:d,selectionKeyPressed:z,paneClickDistance:s,selectionOnDrag:H,children:[e,L&&(0,K.jsx)(WA,{onSelectionContextMenu:j,noPanClassName:N,disableKeyboardA11y:P})]})})}qA.displayName=`FlowRenderer`;var JA=(0,y.memo)(qA),YA=e=>t=>e?wE(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(e=>e.id):Array.from(t.nodeLookup.keys());function XA(e){return lk((0,y.useCallback)(YA(e),[e]),ak)}var ZA=e=>e.updateNodeInternals;function QA(){let e=lk(ZA),[t]=(0,y.useState)(()=>typeof ResizeObserver>`u`?null:new ResizeObserver(t=>{let n=new Map;t.forEach(e=>{let t=e.target.getAttribute(`data-id`);n.set(t,{id:t,nodeElement:e.target,force:!0})}),e(n)}));return(0,y.useEffect)(()=>()=>{t?.disconnect()},[t]),t}function $A({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){let i=uk(),a=(0,y.useRef)(null),o=(0,y.useRef)(null),s=(0,y.useRef)(e.sourcePosition),c=(0,y.useRef)(e.targetPosition),l=(0,y.useRef)(t),u=n&&!!e.internals.handleBounds;return(0,y.useEffect)(()=>{a.current&&!e.hidden&&(!u||o.current!==a.current)&&(o.current&&r?.unobserve(o.current),r?.observe(a.current),o.current=a.current)},[u,e.hidden]),(0,y.useEffect)(()=>()=>{o.current&&=(r?.unobserve(o.current),null)},[]),(0,y.useEffect)(()=>{if(a.current){let n=l.current!==t,r=s.current!==e.sourcePosition,o=c.current!==e.targetPosition;(n||r||o)&&(l.current=t,s.current=e.sourcePosition,c.current=e.targetPosition,i.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:a.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),a}function ej({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:i,onContextMenu:a,onDoubleClick:o,nodesDraggable:s,elementsSelectable:c,nodesConnectable:l,nodesFocusable:u,resizeObserver:d,noDragClassName:f,noPanClassName:p,disableKeyboardA11y:m,rfId:h,nodeTypes:g,nodeClickDistance:_,onError:v}){let{node:y,internals:b,isParent:x}=lk(t=>{let n=t.nodeLookup.get(e),r=t.parentLookup.has(e);return{node:n,internals:n.internals,isParent:r}},ak),S=y.type||`default`,C=g?.[S]||VA[S];C===void 0&&(v?.(`003`,sE.error003(S)),S=`default`,C=g?.default||VA.default);let w=!!(y.draggable||s&&y.draggable===void 0),T=!!(y.selectable||c&&y.selectable===void 0),E=!!(y.connectable||l&&y.connectable===void 0),D=!!(y.focusable||u&&y.focusable===void 0),O=uk(),k=nD(y),A=$A({node:y,nodeType:S,hasDimensions:k,resizeObserver:d}),j=SA({nodeRef:A,disabled:y.hidden||!w,noDragClassName:f,handleSelector:y.dragHandle,nodeId:e,isSelectable:T,nodeClickDistance:_}),M=wA();if(y.hidden)return null;let N=tD(y),P=HA(y),F=T||w||t||n||r||i,I=n?e=>n(e,{...b.userNode}):void 0,L=r?e=>r(e,{...b.userNode}):void 0,R=i?e=>i(e,{...b.userNode}):void 0,z=a?e=>a(e,{...b.userNode}):void 0,B=o?e=>o(e,{...b.userNode}):void 0,ee=n=>{let{selectNodesOnDrag:r,nodeDragThreshold:i}=O.getState();T&&(!r||!w||i>0)&&xA({id:e,store:O,nodeRef:A}),t&&t(n,{...b.userNode})},V=t=>{if(!(fD(t.nativeEvent)||m)){if(lE.includes(t.key)&&T){let n=t.key===`Escape`;xA({id:e,store:O,unselect:n,nodeRef:A})}else if(w&&y.selected&&Object.prototype.hasOwnProperty.call(BA,t.key)){t.preventDefault();let{ariaLabelConfig:e}=O.getState();O.setState({ariaLiveMessage:e[`node.a11yDescription.ariaLiveMessage`]({direction:t.key.replace(`Arrow`,``).toLowerCase(),x:~~b.positionAbsolute.x,y:~~b.positionAbsolute.y})}),M({direction:BA[t.key],factor:t.shiftKey?4:1})}}},H=()=>{if(m||!A.current?.matches(`:focus-visible`))return;let{transform:t,width:n,height:r,autoPanOnNodeFocus:i,setCenter:a}=O.getState();i&&(wE(new Map([[e,y]]),{x:0,y:0,width:n,height:r},t,!0).length>0||a(y.position.x+N.width/2,y.position.y+N.height/2,{zoom:t[2]}))};return(0,K.jsx)(`div`,{className:wb([`react-flow__node`,`react-flow__node-${S}`,{[p]:w},y.className,{selected:y.selected,selectable:T,parent:x,draggable:w,dragging:j}]),ref:A,style:{zIndex:b.z,transform:`translate(${b.positionAbsolute.x}px,${b.positionAbsolute.y}px)`,pointerEvents:F?`all`:`none`,visibility:k?`visible`:`hidden`,...y.style,...P},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:I,onMouseMove:L,onMouseLeave:R,onContextMenu:z,onClick:ee,onDoubleClick:B,onKeyDown:D?V:void 0,tabIndex:D?0:void 0,onFocus:D?H:void 0,role:y.ariaRole??(D?`group`:void 0),"aria-roledescription":`node`,"aria-describedby":m?void 0:`${pk}-${h}`,"aria-label":y.ariaLabel,...y.domAttributes,children:(0,K.jsx)(EA,{value:e,children:(0,K.jsx)(C,{id:e,data:y.data,type:S,positionAbsoluteX:b.positionAbsolute.x,positionAbsoluteY:b.positionAbsolute.y,selected:y.selected??!1,selectable:T,draggable:w,deletable:y.deletable??!0,isConnectable:E,sourcePosition:y.sourcePosition,targetPosition:y.targetPosition,dragging:j,dragHandle:y.dragHandle,zIndex:b.z,parentId:y.parentId,...N})})})}var tj=(0,y.memo)(ej),nj=e=>({nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function rj(e){let{nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,onError:i}=lk(nj,ak),a=XA(e.onlyRenderVisibleElements),o=QA();return(0,K.jsx)(`div`,{className:`react-flow__nodes`,style:pA,children:a.map(a=>(0,K.jsx)(tj,{id:a,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:o,nodesDraggable:e.nodesDraggable??!0,nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,nodeClickDistance:e.nodeClickDistance,onError:i},a))})}rj.displayName=`NodeRenderer`;var ij=(0,y.memo)(rj);function aj(e){return lk((0,y.useCallback)(t=>{if(!e)return t.edges.map(e=>e.id);let n=[];if(t.width&&t.height)for(let e of t.edges){let r=t.nodeLookup.get(e.source),i=t.nodeLookup.get(e.target);r&&i&&SD({sourceNode:r,targetNode:i,width:t.width,height:t.height,transform:t.transform})&&n.push(e.id)}return n},[e]),ak)}var oj=({color:e=`none`,strokeWidth:t=1})=>{let n={strokeWidth:t,...e&&{stroke:e}};return(0,K.jsx)(`polyline`,{className:`arrow`,style:n,strokeLinecap:`round`,fill:`none`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4`})},sj=({color:e=`none`,strokeWidth:t=1})=>{let n={strokeWidth:t,...e&&{stroke:e,fill:e}};return(0,K.jsx)(`polyline`,{className:`arrowclosed`,style:n,strokeLinecap:`round`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4 -5,-4`})},cj={[gE.Arrow]:oj,[gE.ArrowClosed]:sj};function lj(e){let t=uk();return(0,y.useMemo)(()=>Object.prototype.hasOwnProperty.call(cj,e)?cj[e]:(t.getState().onError?.(`009`,sE.error009(e)),null),[e])}var uj=({id:e,type:t,color:n,width:r=12.5,height:i=12.5,markerUnits:a=`strokeWidth`,strokeWidth:o,orient:s=`auto-start-reverse`})=>{let c=lj(t);return c?(0,K.jsx)(`marker`,{className:`react-flow__arrowhead`,id:e,markerWidth:`${r}`,markerHeight:`${i}`,viewBox:`-10 -10 20 20`,markerUnits:a,orient:s,refX:`0`,refY:`0`,children:(0,K.jsx)(c,{color:n,strokeWidth:o})}):null},dj=({defaultColor:e,rfId:t})=>{let n=lk(e=>e.edges),r=lk(e=>e.defaultEdgeOptions),i=(0,y.useMemo)(()=>zD(n,{id:t,defaultColor:e,defaultMarkerStart:r?.markerStart,defaultMarkerEnd:r?.markerEnd}),[n,r,t,e]);return i.length?(0,K.jsx)(`svg`,{className:`react-flow__marker`,"aria-hidden":`true`,children:(0,K.jsx)(`defs`,{children:i.map(e=>(0,K.jsx)(uj,{id:e.id,type:e.type,color:e.color,width:e.width,height:e.height,markerUnits:e.markerUnits,strokeWidth:e.strokeWidth,orient:e.orient},e.id))})}):null};dj.displayName=`MarkerDefinitions`;var fj=(0,y.memo)(dj);function pj({x:e,y:t,label:n,labelStyle:r,labelShowBg:i=!0,labelBgStyle:a,labelBgPadding:o=[2,4],labelBgBorderRadius:s=2,children:c,className:l,...u}){let[d,f]=(0,y.useState)({x:1,y:0,width:0,height:0}),p=wb([`react-flow__edge-textwrapper`,l]),m=(0,y.useRef)(null);return(0,y.useEffect)(()=>{if(m.current){let e=m.current.getBBox();f({x:e.x,y:e.y,width:e.width,height:e.height})}},[n]),n?(0,K.jsxs)(`g`,{transform:`translate(${e-d.width/2} ${t-d.height/2})`,className:p,visibility:d.width?`visible`:`hidden`,...u,children:[i&&(0,K.jsx)(`rect`,{width:d.width+2*o[0],x:-o[0],y:-o[1],height:d.height+2*o[1],className:`react-flow__edge-textbg`,style:a,rx:s,ry:s}),(0,K.jsx)(`text`,{className:`react-flow__edge-text`,y:d.height/2,dy:`0.3em`,ref:m,style:r,children:n}),c]}):null}pj.displayName=`EdgeText`;var mj=(0,y.memo)(pj);function hj({path:e,labelX:t,labelY:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c,interactionWidth:l=20,...u}){return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`path`,{...u,d:e,fill:`none`,className:wb([`react-flow__edge-path`,u.className])}),l?(0,K.jsx)(`path`,{d:e,fill:`none`,strokeOpacity:0,strokeWidth:l,className:`react-flow__edge-interaction`}):null,r&&WE(t)&&WE(n)?(0,K.jsx)(mj,{x:t,y:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c}):null]})}function gj({pos:e,x1:t,y1:n,x2:r,y2:i}){return e===$.Left||e===$.Right?[.5*(t+r),n]:[t,.5*(n+i)]}function _j({sourceX:e,sourceY:t,sourcePosition:n=$.Bottom,targetX:r,targetY:i,targetPosition:a=$.Top}){let[o,s]=gj({pos:n,x1:e,y1:t,x2:r,y2:i}),[c,l]=gj({pos:a,x1:r,y1:i,x2:e,y2:t}),[u,d,f,p]=gD({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:o,sourceControlY:s,targetControlX:c,targetControlY:l});return[`M${e},${t} C${o},${s} ${c},${l} ${r},${i}`,u,d,f,p]}function vj(e){return(0,y.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o,targetPosition:s,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})=>{let[v,y,b]=_j({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s}),x=e.isInternal?void 0:t;return(0,K.jsx)(hj,{id:x,path:v,labelX:y,labelY:b,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})})}var yj=vj({isInternal:!1}),bj=vj({isInternal:!0});yj.displayName=`SimpleBezierEdge`,bj.displayName=`SimpleBezierEdgeInternal`;function xj(e){return(0,y.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,sourcePosition:p=$.Bottom,targetPosition:m=$.Top,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,b,x]=MD({sourceX:n,sourceY:r,sourcePosition:p,targetX:i,targetY:a,targetPosition:m,borderRadius:_?.borderRadius,offset:_?.offset,stepPosition:_?.stepPosition}),S=e.isInternal?void 0:t;return(0,K.jsx)(hj,{id:S,path:y,labelX:b,labelY:x,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:h,markerStart:g,interactionWidth:v})})}var Sj=xj({isInternal:!1}),Cj=xj({isInternal:!0});Sj.displayName=`SmoothStepEdge`,Cj.displayName=`SmoothStepEdgeInternal`;function wj(e){return(0,y.memo)(({id:t,...n})=>{let r=e.isInternal?void 0:t;return(0,K.jsx)(Sj,{...n,id:r,pathOptions:(0,y.useMemo)(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}var Tj=wj({isInternal:!1}),Ej=wj({isInternal:!0});Tj.displayName=`StepEdge`,Ej.displayName=`StepEdgeInternal`;function Dj(e){return(0,y.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})=>{let[g,_,v]=ED({sourceX:n,sourceY:r,targetX:i,targetY:a}),y=e.isInternal?void 0:t;return(0,K.jsx)(hj,{id:y,path:g,labelX:_,labelY:v,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})})}var Oj=Dj({isInternal:!1}),kj=Dj({isInternal:!0});Oj.displayName=`StraightEdge`,kj.displayName=`StraightEdgeInternal`;function Aj(e){return(0,y.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o=$.Bottom,targetPosition:s=$.Top,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,b,x]=yD({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s,curvature:_?.curvature}),S=e.isInternal?void 0:t;return(0,K.jsx)(hj,{id:S,path:y,labelX:b,labelY:x,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:v})})}var jj=Aj({isInternal:!1}),Mj=Aj({isInternal:!0});jj.displayName=`BezierEdge`,Mj.displayName=`BezierEdgeInternal`;var Nj={default:Mj,straight:kj,step:Ej,smoothstep:Cj,simplebezier:bj},Pj={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},Fj=(e,t,n)=>n===$.Left?e-t:n===$.Right?e+t:e,Ij=(e,t,n)=>n===$.Top?e-t:n===$.Bottom?e+t:e,Lj=`react-flow__edgeupdater`;function Rj({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:i,onMouseEnter:a,onMouseOut:o,type:s}){return(0,K.jsx)(`circle`,{onMouseDown:i,onMouseEnter:a,onMouseOut:o,className:wb([Lj,`${Lj}-${s}`]),cx:Fj(t,r,e),cy:Ij(n,r,e),r,stroke:`transparent`,fill:`transparent`})}function zj({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:i,targetX:a,targetY:o,sourcePosition:s,targetPosition:c,onReconnect:l,onReconnectStart:u,onReconnectEnd:d,setReconnecting:f,setUpdateHover:p}){let m=uk(),h=(e,t)=>{if(e.button!==0)return;let{autoPanOnConnect:r,domNode:i,connectionMode:a,connectionRadius:o,lib:s,onConnectStart:c,cancelConnection:p,nodeLookup:h,rfId:g,panBy:_,updateConnection:v}=m.getState(),y=t.type===`target`;yO.onPointerDown(e.nativeEvent,{autoPanOnConnect:r,connectionMode:a,connectionRadius:o,domNode:i,handleId:t.id,nodeId:t.nodeId,nodeLookup:h,isTarget:y,edgeUpdaterType:t.type,lib:s,flowId:g,cancelConnection:p,panBy:_,isValidConnection:(...e)=>m.getState().isValidConnection?.(...e)??!0,onConnect:e=>l?.(n,e),onConnectStart:(r,i)=>{f(!0),u?.(e,n,t.type),c?.(r,i)},onConnectEnd:(...e)=>m.getState().onConnectEnd?.(...e),onReconnectEnd:(e,r)=>{f(!1),d?.(e,n,t.type,r)},updateConnection:v,getTransform:()=>m.getState().transform,getFromHandle:()=>m.getState().connection.fromHandle,dragThreshold:m.getState().connectionDragThreshold,handleDomNode:e.currentTarget})},g=e=>h(e,{nodeId:n.target,id:n.targetHandle??null,type:`target`}),_=e=>h(e,{nodeId:n.source,id:n.sourceHandle??null,type:`source`}),v=()=>p(!0),y=()=>p(!1);return(0,K.jsxs)(K.Fragment,{children:[(e===!0||e===`source`)&&(0,K.jsx)(Rj,{position:s,centerX:r,centerY:i,radius:t,onMouseDown:g,onMouseEnter:v,onMouseOut:y,type:`source`}),(e===!0||e===`target`)&&(0,K.jsx)(Rj,{position:c,centerX:a,centerY:o,radius:t,onMouseDown:_,onMouseEnter:v,onMouseOut:y,type:`target`})]})}function Bj({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:i,onDoubleClick:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,rfId:m,edgeTypes:h,noPanClassName:g,onError:_,disableKeyboardA11y:v}){let b=lk(t=>t.edgeLookup.get(e)),x=lk(e=>e.defaultEdgeOptions);b=x?{...x,...b}:b;let S=b.type||`default`,C=h?.[S]||Nj[S];C===void 0&&(_?.(`011`,sE.error011(S)),S=`default`,C=h?.default||Nj.default);let w=!!(b.focusable||t&&b.focusable===void 0),T=d!==void 0&&(b.reconnectable||n&&b.reconnectable===void 0),E=!!(b.selectable||r&&b.selectable===void 0),D=(0,y.useRef)(null),[O,k]=(0,y.useState)(!1),[A,j]=(0,y.useState)(!1),M=uk(),{zIndex:N=b.zIndex,sourceX:P,sourceY:F,targetX:I,targetY:L,sourcePosition:R,targetPosition:z}=lk((0,y.useCallback)(t=>{let n=t.nodeLookup.get(b.source),r=t.nodeLookup.get(b.target);if(!n||!r)return Pj;let i=PD({id:e,sourceNode:n,targetNode:r,sourceHandle:b.sourceHandle||null,targetHandle:b.targetHandle||null,connectionMode:t.connectionMode,onError:_}),a=xD({selected:b.selected,zIndex:b.zIndex,sourceNode:n,targetNode:r,elevateOnSelect:t.elevateEdgesOnSelect,zIndexMode:t.zIndexMode});return{...i||Pj,zIndex:a}},[b.source,b.target,b.sourceHandle,b.targetHandle,b.selected,b.zIndex,_]),ak),B=(0,y.useMemo)(()=>b.markerStart?`url('#${RD(b.markerStart,m)}')`:void 0,[b.markerStart,m]),ee=(0,y.useMemo)(()=>b.markerEnd?`url('#${RD(b.markerEnd,m)}')`:void 0,[b.markerEnd,m]);if(b.hidden||P===null||F===null||I===null||L===null)return null;let V=t=>{let{addSelectedEdges:n,unselectNodesAndEdges:r,multiSelectionActive:a}=M.getState();E&&(M.setState({nodesSelectionActive:!1}),b.selected&&a?(r({nodes:[],edges:[b]}),D.current?.blur()):n([e])),i&&i(t,b)},H=a?e=>{a(e,{...b})}:void 0,te=o?e=>{o(e,{...b})}:void 0,ne=s?e=>{s(e,{...b})}:void 0,re=c?e=>{c(e,{...b})}:void 0,ie=l?e=>{l(e,{...b})}:void 0;return(0,K.jsx)(`svg`,{style:{zIndex:N},children:(0,K.jsxs)(`g`,{className:wb([`react-flow__edge`,`react-flow__edge-${S}`,b.className,g,{selected:b.selected,animated:b.animated,inactive:!E&&!i,updating:O,selectable:E}]),onClick:V,onDoubleClick:H,onContextMenu:te,onMouseEnter:ne,onMouseMove:re,onMouseLeave:ie,onKeyDown:w?t=>{if(!v&&lE.includes(t.key)&&E){let{unselectNodesAndEdges:n,addSelectedEdges:r}=M.getState();t.key===`Escape`?(D.current?.blur(),n({edges:[b]})):r([e])}}:void 0,tabIndex:w?0:void 0,role:b.ariaRole??(w?`group`:`img`),"aria-roledescription":`edge`,"data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":b.ariaLabel===null?void 0:b.ariaLabel||`Edge from ${b.source} to ${b.target}`,"aria-describedby":w?`${mk}-${m}`:void 0,ref:D,...b.domAttributes,children:[!A&&(0,K.jsx)(C,{id:e,source:b.source,target:b.target,type:b.type,selected:b.selected,animated:b.animated,selectable:E,deletable:b.deletable??!0,label:b.label,labelStyle:b.labelStyle,labelShowBg:b.labelShowBg,labelBgStyle:b.labelBgStyle,labelBgPadding:b.labelBgPadding,labelBgBorderRadius:b.labelBgBorderRadius,sourceX:P,sourceY:F,targetX:I,targetY:L,sourcePosition:R,targetPosition:z,data:b.data,style:b.style,sourceHandleId:b.sourceHandle,targetHandleId:b.targetHandle,markerStart:B,markerEnd:ee,pathOptions:`pathOptions`in b?b.pathOptions:void 0,interactionWidth:b.interactionWidth}),T&&(0,K.jsx)(zj,{edge:b,isReconnectable:T,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,sourceX:P,sourceY:F,targetX:I,targetY:L,sourcePosition:R,targetPosition:z,setUpdateHover:k,setReconnecting:j})]})})}var Vj=(0,y.memo)(Bj),Hj=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function Uj({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:i,onReconnect:a,onEdgeContextMenu:o,onEdgeMouseEnter:s,onEdgeMouseMove:c,onEdgeMouseLeave:l,onEdgeClick:u,reconnectRadius:d,onEdgeDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,disableKeyboardA11y:h}){let{edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,onError:y}=lk(Hj,ak),b=aj(t);return(0,K.jsxs)(`div`,{className:`react-flow__edges`,children:[(0,K.jsx)(fj,{defaultColor:e,rfId:n}),b.map(e=>(0,K.jsx)(Vj,{id:e,edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,noPanClassName:i,onReconnect:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,onClick:u,reconnectRadius:d,onDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,rfId:n,onError:y,edgeTypes:r,disableKeyboardA11y:h},e))]})}Uj.displayName=`EdgeRenderer`;var Wj=(0,y.memo)(Uj),Gj=e=>`translate(${e[0]}px,${e[1]}px) scale(${e[2]})`;function Kj({children:e}){let t=uk(),n=(0,y.useRef)(null),[r]=(0,y.useState)(()=>t.getState().transform);return tA(()=>{let e=null,r=()=>{let r=t.getState().transform;e&&r[0]===e[0]&&r[1]===e[1]&&r[2]===e[2]||(e=r,n.current&&(n.current.style.transform=Gj(r)))};return r(),t.subscribe(r)},[t]),(0,K.jsx)(`div`,{ref:n,className:`react-flow__viewport xyflow__viewport react-flow__container`,style:{transform:Gj(r)},children:e})}function qj(e){let t=cA(),n=(0,y.useRef)(!1);(0,y.useEffect)(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}var Jj=e=>e.panZoom?.syncViewport;function Yj(e){let t=lk(Jj),n=uk();return(0,y.useEffect)(()=>{e&&(t?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function Xj(e){return e.connection.inProgress?{...e.connection,to:qE(e.connection.to,e.transform)}:{...e.connection}}function Zj(e){return e?t=>e(Xj(t)):Xj}function Qj(e){return lk(Zj(e),ak)}var $j=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function eM({containerStyle:e,style:t,type:n,component:r}){let{nodesConnectable:i,width:a,height:o,isValid:s,inProgress:c}=lk($j,ak);return a&&i&&c?(0,K.jsx)(`svg`,{style:e,width:a,height:o,className:`react-flow__connectionline react-flow__container`,children:(0,K.jsx)(`g`,{className:wb([`react-flow__connection`,sD(s)]),children:(0,K.jsx)(tM,{style:t,type:n,CustomComponent:r,isValid:s})})}):null}var tM=({style:e,type:t=hE.Bezier,CustomComponent:n,isValid:r})=>{let{inProgress:i,from:a,fromNode:o,fromHandle:s,fromPosition:c,to:l,toNode:u,toHandle:d,toPosition:f,pointer:p}=Qj();if(!i)return;if(n)return(0,K.jsx)(n,{connectionLineType:t,connectionLineStyle:e,fromNode:o,fromHandle:s,fromX:a.x,fromY:a.y,toX:l.x,toY:l.y,fromPosition:c,toPosition:f,connectionStatus:sD(r),toNode:u,toHandle:d,pointer:p});let m=``,h={sourceX:a.x,sourceY:a.y,sourcePosition:c,targetX:l.x,targetY:l.y,targetPosition:f};switch(t){case hE.Bezier:[m]=yD(h);break;case hE.SimpleBezier:[m]=_j(h);break;case hE.Step:[m]=MD({...h,borderRadius:0});break;case hE.SmoothStep:[m]=MD(h);break;default:[m]=ED(h)}return(0,K.jsx)(`path`,{d:m,fill:`none`,className:`react-flow__connection-path`,style:e})};tM.displayName=`ConnectionLine`;var nM={};function rM(e=nM){(0,y.useRef)(e),uk(),(0,y.useEffect)(()=>{},[e])}function iM(){uk(),(0,y.useRef)(!1),(0,y.useEffect)(()=>{},[])}function aM({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:i,onNodeDoubleClick:a,onEdgeDoubleClick:o,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,onSelectionContextMenu:d,onSelectionStart:f,onSelectionEnd:p,connectionLineType:m,connectionLineStyle:h,connectionLineComponent:g,connectionLineContainerStyle:_,selectionKeyCode:v,selectionOnDrag:y,selectionMode:b,multiSelectionKeyCode:x,panActivationKeyCode:S,zoomActivationKeyCode:C,deleteKeyCode:w,onlyRenderVisibleElements:T,elementsSelectable:E,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,preventScrolling:j,defaultMarkerColor:M,zoomOnScroll:N,zoomOnPinch:P,panOnScroll:F,panOnScrollSpeed:I,panOnScrollMode:L,zoomOnDoubleClick:R,panOnDrag:z,autoPanOnSelection:B,onPaneClick:ee,onPaneMouseEnter:V,onPaneMouseMove:H,onPaneMouseLeave:te,onPaneScroll:ne,onPaneContextMenu:re,paneClickDistance:ie,nodeClickDistance:ae,onEdgeContextMenu:oe,onEdgeMouseEnter:se,onEdgeMouseMove:U,onEdgeMouseLeave:ce,reconnectRadius:le,onReconnect:ue,onReconnectStart:de,onReconnectEnd:fe,noDragClassName:pe,noWheelClassName:me,noPanClassName:he,disableKeyboardA11y:ge,nodeExtent:_e,rfId:ve,viewport:ye,onViewportChange:be,nodesDraggable:xe}){return rM(e),rM(t),iM(),qj(n),Yj(ye),(0,K.jsx)(JA,{onPaneClick:ee,onPaneMouseEnter:V,onPaneMouseMove:H,onPaneMouseLeave:te,onPaneContextMenu:re,onPaneScroll:ne,paneClickDistance:ie,deleteKeyCode:w,selectionKeyCode:v,selectionOnDrag:y,selectionMode:b,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:x,panActivationKeyCode:S,zoomActivationKeyCode:C,elementsSelectable:E,zoomOnScroll:N,zoomOnPinch:P,zoomOnDoubleClick:R,panOnScroll:F,panOnScrollSpeed:I,panOnScrollMode:L,panOnDrag:z,autoPanOnSelection:B,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,onSelectionContextMenu:d,preventScrolling:j,noDragClassName:pe,noWheelClassName:me,noPanClassName:he,disableKeyboardA11y:ge,onViewportChange:be,isControlledViewport:!!ye,children:(0,K.jsxs)(Kj,{children:[(0,K.jsx)(Wj,{edgeTypes:t,onEdgeClick:i,onEdgeDoubleClick:o,onReconnect:ue,onReconnectStart:de,onReconnectEnd:fe,onlyRenderVisibleElements:T,onEdgeContextMenu:oe,onEdgeMouseEnter:se,onEdgeMouseMove:U,onEdgeMouseLeave:ce,reconnectRadius:le,defaultMarkerColor:M,noPanClassName:he,disableKeyboardA11y:ge,rfId:ve}),(0,K.jsx)(eM,{style:h,type:m,component:g,containerStyle:_}),(0,K.jsx)(`div`,{className:`react-flow__edgelabel-renderer`}),(0,K.jsx)(ij,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:a,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,nodeClickDistance:ae,onlyRenderVisibleElements:T,noPanClassName:he,noDragClassName:pe,disableKeyboardA11y:ge,nodeExtent:_e,rfId:ve,nodesDraggable:xe}),(0,K.jsx)(`div`,{className:`react-flow__viewport-portal`})]})})}aM.displayName=`GraphView`;var oM=(0,y.memo)(aM),sM=GE(`React Flow`,`https://reactflow.dev/`),cM=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c=.5,maxZoom:l=2,nodeOrigin:u,nodeExtent:d,zIndexMode:f=`basic`}={})=>{let p=new Map,m=new Map,h=new Map,g=new Map,_=r??t??[],v=n??e??[],y=u??[0,0],b=d??cE;rO(h,g,_);let{nodesInitialized:x}=JD(v,p,m,{nodeOrigin:y,nodeExtent:b,zIndexMode:f}),S=[0,0,1];if(o&&i&&a){let{x:e,y:t,zoom:n}=QE(CE(p,{filter:e=>!(!e.width&&!e.initialWidth||!e.height&&!e.initialHeight)}),i,a,c,l,s?.padding??.1);S=[e,t,n]}return{rfId:`1`,width:i??0,height:a??0,transform:S,nodes:v,nodesInitialized:x,nodeLookup:p,parentLookup:m,edges:_,edgeLookup:g,connectionLookup:h,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:c,maxZoom:l,translateExtent:cE,nodeExtent:b,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:dE.Strict,domNode:null,paneDragging:!1,noPanClassName:`nopan`,nodeOrigin:y,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:o??!1,fitViewOptions:s,fitViewResolver:null,connection:{...mE},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:``,autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:sM,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:`react`,debug:!1,ariaLabelConfig:uE,zIndexMode:f,defaultEdgeOptions:void 0,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map,onNodesDelete:void 0,onEdgesDelete:void 0,onDelete:void 0,onBeforeDelete:void 0,onViewportChangeStart:void 0,onViewportChange:void 0,onViewportChangeEnd:void 0,onNodeDragStart:void 0,onNodeDrag:void 0,onNodeDragStop:void 0,onSelectionDragStart:void 0,onSelectionDrag:void 0,onSelectionDragStop:void 0,onMoveStart:void 0,onMove:void 0,onMoveEnd:void 0,onConnect:void 0,onConnectStart:void 0,onConnectEnd:void 0,onClickConnectStart:void 0,onClickConnectEnd:void 0}},lM=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f})=>ik((p,m)=>{async function h(){let{nodeLookup:e,panZoom:t,fitViewOptions:n,fitViewResolver:r,width:i,height:a,minZoom:o,maxZoom:s}=m();t&&(await DE({nodes:e,width:i,height:a,panZoom:t,minZoom:o,maxZoom:s},n),r?.resolve(!0),p({fitViewResolver:null}))}return{...cM({nodes:e,edges:t,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,defaultNodes:n,defaultEdges:r,zIndexMode:f}),setNodes:e=>{let{nodeLookup:t,parentLookup:n,nodeOrigin:r,nodeExtent:i,elevateNodesOnSelect:a,fitViewQueued:o,zIndexMode:s,nodesSelectionActive:c}=m(),{nodesInitialized:l,hasSelectedNodes:u}=JD(e,t,n,{nodeOrigin:r,nodeExtent:i,elevateNodesOnSelect:a,checkEquality:!0,zIndexMode:s}),d=c&&u;o&&l?(h(),p({nodes:e,nodesInitialized:l,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:d})):p({nodes:e,nodesInitialized:l,nodesSelectionActive:d})},setEdges:e=>{let{connectionLookup:t,edgeLookup:n}=m();rO(t,n,e),p({edges:e})},setDefaultNodesAndEdges:(e,t)=>{if(e){let{setNodes:t}=m();t(e),p({hasDefaultNodes:!0})}if(t){let{setEdges:e}=m();e(t),p({hasDefaultEdges:!0})}},updateNodeInternals:e=>{let{triggerNodeChanges:t,nodeLookup:n,parentLookup:r,domNode:i,nodeOrigin:a,nodeExtent:o,debug:s,fitViewQueued:c,zIndexMode:l}=m(),{changes:u,updatedInternals:d}=eO(e,n,r,i,a,o,l);d&&(GD(n,r,{nodeOrigin:a,nodeExtent:o,zIndexMode:l}),c?(h(),p({fitViewQueued:!1,fitViewOptions:void 0})):p({}),u?.length>0&&(s&&console.log(`React Flow: trigger node changes`,u),t?.(u)))},updateNodePositions:(e,t=!1)=>{let n=[],r=[],{nodeLookup:i,triggerNodeChanges:a,connection:o,updateConnection:s,onNodesChangeMiddlewareMap:c}=m();for(let[a,c]of e){let e=i.get(a),l=!!(e?.expandParent&&e?.parentId&&c?.position),u={id:a,type:`position`,position:l?{x:Math.max(0,c.position.x),y:Math.max(0,c.position.y)}:c.position,dragging:t};if(e&&o.inProgress&&o.fromNode.id===e.id){let t=ID(e,o.fromHandle,$.Left,!0);s({...o,from:t})}l&&e.parentId&&n.push({id:a,parentId:e.parentId,rect:{...c.internals.positionAbsolute,width:c.measured.width??0,height:c.measured.height??0}}),r.push(u)}if(n.length>0){let{parentLookup:e,nodeOrigin:t}=m(),a=$D(n,i,e,t);r.push(...a)}for(let e of c.values())r=e(r);a(r)},triggerNodeChanges:e=>{let{onNodesChange:t,setNodes:n,nodes:r,hasDefaultNodes:i,debug:a}=m();e?.length&&(i&&n(Wk(e,r)),a&&console.log(`React Flow: trigger node changes`,e),t?.(e))},triggerEdgeChanges:e=>{let{onEdgesChange:t,setEdges:n,edges:r,hasDefaultEdges:i,debug:a}=m();e?.length&&(i&&n(Gk(e,r)),a&&console.log(`React Flow: trigger edge changes`,e),t?.(e))},addSelectedNodes:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){i(e.map(e=>Kk(e,!0)));return}i(qk(r,new Set([...e]),!0)),a(qk(n))},addSelectedEdges:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){a(e.map(e=>Kk(e,!0)));return}a(qk(n,new Set([...e]))),i(qk(r,new Set,!0))},unselectNodesAndEdges:({nodes:e,edges:t}={})=>{let{edges:n,nodes:r,nodeLookup:i,triggerNodeChanges:a,triggerEdgeChanges:o}=m(),s=e||r,c=t||n,l=[];for(let e of s){if(!e.selected)continue;let t=i.get(e.id);t&&(t.selected=!1),l.push(Kk(e.id,!1))}let u=[];for(let e of c)e.selected&&u.push(Kk(e.id,!1));a(l),o(u)},setMinZoom:e=>{let{panZoom:t,maxZoom:n}=m();t?.setScaleExtent([e,n]),p({minZoom:e})},setMaxZoom:e=>{let{panZoom:t,minZoom:n}=m();t?.setScaleExtent([n,e]),p({maxZoom:e})},setTranslateExtent:e=>{m().panZoom?.setTranslateExtent(e),p({translateExtent:e})},resetSelectedElements:()=>{let{edges:e,nodes:t,triggerNodeChanges:n,triggerEdgeChanges:r,elementsSelectable:i}=m();if(!i)return;let a=t.reduce((e,t)=>t.selected?[...e,Kk(t.id,!1)]:e,[]),o=e.reduce((e,t)=>t.selected?[...e,Kk(t.id,!1)]:e,[]);n(a),r(o)},setNodeExtent:e=>{let{nodes:t,nodeLookup:n,parentLookup:r,nodeOrigin:i,elevateNodesOnSelect:a,nodeExtent:o,zIndexMode:s}=m();(e[0][0]!==o[0][0]||e[0][1]!==o[0][1]||e[1][0]!==o[1][0]||e[1][1]!==o[1][1])&&(JD(t,n,r,{nodeOrigin:i,nodeExtent:e,elevateNodesOnSelect:a,checkEquality:!1,zIndexMode:s}),p({nodeExtent:e}))},panBy:e=>{let{transform:t,width:n,height:r,panZoom:i,translateExtent:a}=m();return tO({delta:e,panZoom:i,transform:t,translateExtent:a,width:n,height:r})},setCenter:async(e,t,n)=>{let{width:r,height:i,maxZoom:a,panZoom:o}=m();if(!o)return!1;let s=n?.zoom===void 0?a:n.zoom;return await o.setViewport({x:r/2-e*s,y:i/2-t*s,zoom:s},{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0},cancelConnection:()=>{p({connection:{...mE}})},updateConnection:e=>{p({connection:e})},reset:()=>p({...cM()})}},Object.is);function uM({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:i,initialHeight:a,initialMinZoom:o,initialMaxZoom:s,initialFitViewOptions:c,fitView:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f,children:p}){let[m]=(0,y.useState)(()=>lM({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:l,minZoom:o,maxZoom:s,fitViewOptions:c,nodeOrigin:u,nodeExtent:d,zIndexMode:f}));return(0,K.jsx)(sk,{value:m,children:(0,K.jsx)(aA,{children:(0,K.jsx)(AA,{children:p})})})}function dM({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:i,width:a,height:o,fitView:s,fitViewOptions:c,minZoom:l,maxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p}){return(0,y.useContext)(ok)?(0,K.jsx)(K.Fragment,{children:e}):(0,K.jsx)(uM,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:i,initialWidth:a,initialHeight:o,fitView:s,initialFitViewOptions:c,initialMinZoom:l,initialMaxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p,children:e})}var fM={width:`100%`,height:`100%`,overflow:`hidden`,position:`relative`,zIndex:0};function pM({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:i,nodeTypes:a,edgeTypes:o,onNodeClick:s,onEdgeClick:c,onInit:l,onMove:u,onMoveStart:d,onMoveEnd:f,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:_,onNodeMouseEnter:v,onNodeMouseMove:b,onNodeMouseLeave:x,onNodeContextMenu:S,onNodeDoubleClick:C,onNodeDragStart:w,onNodeDrag:T,onNodeDragStop:E,onNodesDelete:D,onEdgesDelete:O,onDelete:k,onSelectionChange:A,onSelectionDragStart:j,onSelectionDrag:M,onSelectionDragStop:N,onSelectionContextMenu:P,onSelectionStart:F,onSelectionEnd:I,onBeforeDelete:L,connectionMode:R,connectionLineType:z=hE.Bezier,connectionLineStyle:B,connectionLineComponent:ee,connectionLineContainerStyle:V,deleteKeyCode:H=`Backspace`,selectionKeyCode:te=`Shift`,selectionOnDrag:ne=!1,selectionMode:re=pE.Full,panActivationKeyCode:ie=`Space`,multiSelectionKeyCode:ae=$E()?`Meta`:`Control`,zoomActivationKeyCode:oe=$E()?`Meta`:`Control`,snapToGrid:se,snapGrid:U,onlyRenderVisibleElements:ce=!1,selectNodesOnDrag:le,nodesDraggable:ue,autoPanOnNodeFocus:de,nodesConnectable:fe,nodesFocusable:pe,nodeOrigin:me=kk,edgesFocusable:he,edgesReconnectable:ge,elementsSelectable:_e=!0,defaultViewport:ve=Ak,minZoom:ye=.5,maxZoom:be=2,translateExtent:xe=cE,preventScrolling:Se=!0,nodeExtent:Ce,defaultMarkerColor:we=`#b1b1b7`,zoomOnScroll:Te=!0,zoomOnPinch:Ee=!0,panOnScroll:De=!1,panOnScrollSpeed:Oe=.5,panOnScrollMode:ke=fE.Free,zoomOnDoubleClick:Ae=!0,panOnDrag:je=!0,onPaneClick:Me,onPaneMouseEnter:Ne,onPaneMouseMove:Pe,onPaneMouseLeave:Fe,onPaneScroll:Ie,onPaneContextMenu:Le,paneClickDistance:Re=1,nodeClickDistance:ze=0,children:Be,onReconnect:Ve,onReconnectStart:He,onReconnectEnd:Ue,onEdgeContextMenu:We,onEdgeDoubleClick:Ge,onEdgeMouseEnter:Ke,onEdgeMouseMove:qe,onEdgeMouseLeave:Je,reconnectRadius:Ye=10,onNodesChange:Xe,onEdgesChange:Ze,noDragClassName:Qe=`nodrag`,noWheelClassName:$e=`nowheel`,noPanClassName:et=`nopan`,fitView:tt,fitViewOptions:nt,connectOnClick:rt,attributionPosition:it,proOptions:at,defaultEdgeOptions:W,elevateNodesOnSelect:ot=!0,elevateEdgesOnSelect:st=!1,disableKeyboardA11y:ct=!1,autoPanOnConnect:lt,autoPanOnNodeDrag:ut,autoPanOnSelection:dt=!0,autoPanSpeed:ft,connectionRadius:G,isValidConnection:pt,onError:mt,style:ht,id:gt,nodeDragThreshold:_t,connectionDragThreshold:vt,viewport:yt,onViewportChange:bt,width:xt,height:St,colorMode:Ct=`light`,debug:wt,onScroll:Tt,ariaLabelConfig:Et,zIndexMode:Dt=`basic`,...Ot},kt){let At=gt||`1`,jt=Ik(Ct),Mt=(0,y.useCallback)(e=>{e.currentTarget.scrollTo({top:0,left:0,behavior:`instant`}),Tt?.(e)},[Tt]);return(0,K.jsx)(`div`,{"data-testid":`rf__wrapper`,...Ot,onScroll:Mt,style:{...ht,...fM},ref:kt,className:wb([`react-flow`,i,jt]),id:gt,role:`application`,children:(0,K.jsxs)(dM,{nodes:e,edges:t,width:xt,height:St,fitView:tt,fitViewOptions:nt,minZoom:ye,maxZoom:be,nodeOrigin:me,nodeExtent:Ce,zIndexMode:Dt,children:[(0,K.jsx)(Pk,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:_,nodesDraggable:ue,autoPanOnNodeFocus:de,nodesConnectable:fe,nodesFocusable:pe,edgesFocusable:he,edgesReconnectable:ge,elementsSelectable:_e,elevateNodesOnSelect:ot,elevateEdgesOnSelect:st,minZoom:ye,maxZoom:be,nodeExtent:Ce,onNodesChange:Xe,onEdgesChange:Ze,snapToGrid:se,snapGrid:U,connectionMode:R,translateExtent:xe,connectOnClick:rt,defaultEdgeOptions:W,fitView:tt,fitViewOptions:nt,onNodesDelete:D,onEdgesDelete:O,onDelete:k,onNodeDragStart:w,onNodeDrag:T,onNodeDragStop:E,onSelectionDrag:M,onSelectionDragStart:j,onSelectionDragStop:N,onMove:u,onMoveStart:d,onMoveEnd:f,noPanClassName:et,nodeOrigin:me,rfId:At,autoPanOnConnect:lt,autoPanOnNodeDrag:ut,autoPanSpeed:ft,onError:mt,connectionRadius:G,isValidConnection:pt,selectNodesOnDrag:le,nodeDragThreshold:_t,connectionDragThreshold:vt,onBeforeDelete:L,debug:wt,ariaLabelConfig:Et,zIndexMode:Dt}),(0,K.jsx)(oM,{onInit:l,onNodeClick:s,onEdgeClick:c,onNodeMouseEnter:v,onNodeMouseMove:b,onNodeMouseLeave:x,onNodeContextMenu:S,onNodeDoubleClick:C,nodeTypes:a,edgeTypes:o,connectionLineType:z,connectionLineStyle:B,connectionLineComponent:ee,connectionLineContainerStyle:V,selectionKeyCode:te,selectionOnDrag:ne,selectionMode:re,deleteKeyCode:H,multiSelectionKeyCode:ae,panActivationKeyCode:ie,zoomActivationKeyCode:oe,onlyRenderVisibleElements:ce,defaultViewport:ve,translateExtent:xe,minZoom:ye,maxZoom:be,preventScrolling:Se,zoomOnScroll:Te,zoomOnPinch:Ee,zoomOnDoubleClick:Ae,panOnScroll:De,panOnScrollSpeed:Oe,panOnScrollMode:ke,panOnDrag:je,autoPanOnSelection:dt,onPaneClick:Me,onPaneMouseEnter:Ne,onPaneMouseMove:Pe,onPaneMouseLeave:Fe,onPaneScroll:Ie,onPaneContextMenu:Le,paneClickDistance:Re,nodeClickDistance:ze,onSelectionContextMenu:P,onSelectionStart:F,onSelectionEnd:I,onReconnect:Ve,onReconnectStart:He,onReconnectEnd:Ue,onEdgeContextMenu:We,onEdgeDoubleClick:Ge,onEdgeMouseEnter:Ke,onEdgeMouseMove:qe,onEdgeMouseLeave:Je,reconnectRadius:Ye,defaultMarkerColor:we,noDragClassName:Qe,noWheelClassName:$e,noPanClassName:et,rfId:At,disableKeyboardA11y:ct,nodeExtent:Ce,viewport:yt,onViewportChange:bt,nodesDraggable:ue}),(0,K.jsx)(Ok,{onSelectionChange:A}),Be,(0,K.jsx)(Sk,{proOptions:at,position:it}),(0,K.jsx)(yk,{rfId:At,disableKeyboardA11y:ct})]})})}var mM=eA(pM);function hM(e){let[t,n]=(0,y.useState)(e);return[t,n,(0,y.useCallback)(e=>n(t=>Wk(e,t)),[])]}function gM(e){let[t,n]=(0,y.useState)(e);return[t,n,(0,y.useCallback)(e=>n(t=>Gk(e,t)),[])]}sE.error014();function _M(e){return lk((0,y.useCallback)(t=>t.nodeLookup.get(e),[e]),ak)}function vM({dimensions:e,lineWidth:t,variant:n,className:r}){return(0,K.jsx)(`path`,{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:wb([`react-flow__background-pattern`,n,r])})}function yM({radius:e,className:t}){return(0,K.jsx)(`circle`,{cx:e,cy:e,r:e,className:wb([`react-flow__background-pattern`,`dots`,t])})}var bM;(function(e){e.Lines=`lines`,e.Dots=`dots`,e.Cross=`cross`})(bM||={});var xM={[bM.Dots]:1,[bM.Lines]:1,[bM.Cross]:6},SM=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function CM({id:e,variant:t=bM.Dots,gap:n=20,size:r,lineWidth:i=1,offset:a=0,color:o,bgColor:s,style:c,className:l,patternClassName:u}){let d=(0,y.useRef)(null),{transform:f,patternId:p}=lk(SM,ak),m=r||xM[t],h=t===bM.Dots,g=t===bM.Cross,_=Array.isArray(n)?n:[n,n],v=[_[0]*f[2]||1,_[1]*f[2]||1],b=m*f[2],x=Array.isArray(a)?a:[a,a],S=g?[b,b]:v,C=[x[0]*f[2]+S[0]/2,x[1]*f[2]+S[1]/2],w=`${p}${e||``}`;return(0,K.jsxs)(`svg`,{className:wb([`react-flow__background`,l]),style:{...c,...pA,"--xy-background-color-props":s,"--xy-background-pattern-color-props":o},ref:d,"data-testid":`rf__background`,children:[(0,K.jsx)(`pattern`,{id:w,x:f[0]%v[0],y:f[1]%v[1],width:v[0],height:v[1],patternUnits:`userSpaceOnUse`,patternTransform:`translate(-${C[0]},-${C[1]})`,children:h?(0,K.jsx)(yM,{radius:b/2,className:u}):(0,K.jsx)(vM,{dimensions:S,lineWidth:i,variant:t,className:u})}),(0,K.jsx)(`rect`,{x:`0`,y:`0`,width:`100%`,height:`100%`,fill:`url(#${w})`})]})}CM.displayName=`Background`;var wM=(0,y.memo)(CM);function TM(){return(0,K.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 32`,children:(0,K.jsx)(`path`,{d:`M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z`})})}function EM(){return(0,K.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 5`,children:(0,K.jsx)(`path`,{d:`M0 0h32v4.2H0z`})})}function DM(){return(0,K.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 30`,children:(0,K.jsx)(`path`,{d:`M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z`})})}function OM(){return(0,K.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,K.jsx)(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z`})})}function kM(){return(0,K.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,K.jsx)(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z`})})}function AM({children:e,className:t,...n}){return(0,K.jsx)(`button`,{type:`button`,className:wb([`react-flow__controls-button`,t]),...n,children:e})}var jM=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function MM({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:i,onZoomIn:a,onZoomOut:o,onFitView:s,onInteractiveChange:c,className:l,children:u,position:d=`bottom-left`,orientation:f=`vertical`,"aria-label":p}){let m=uk(),{isInteractive:h,minZoomReached:g,maxZoomReached:_,ariaLabelConfig:v}=lk(jM,ak),{zoomIn:y,zoomOut:b,fitView:x}=cA();return(0,K.jsxs)(bk,{className:wb([`react-flow__controls`,f===`horizontal`?`horizontal`:`vertical`,l]),position:d,style:e,"data-testid":`rf__controls`,"aria-label":p??v[`controls.ariaLabel`],children:[t&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(AM,{onClick:()=>{y(),a?.()},className:`react-flow__controls-zoomin`,title:v[`controls.zoomIn.ariaLabel`],"aria-label":v[`controls.zoomIn.ariaLabel`],disabled:_,children:(0,K.jsx)(TM,{})}),(0,K.jsx)(AM,{onClick:()=>{b(),o?.()},className:`react-flow__controls-zoomout`,title:v[`controls.zoomOut.ariaLabel`],"aria-label":v[`controls.zoomOut.ariaLabel`],disabled:g,children:(0,K.jsx)(EM,{})})]}),n&&(0,K.jsx)(AM,{className:`react-flow__controls-fitview`,onClick:()=>{x(i),s?.()},title:v[`controls.fitView.ariaLabel`],"aria-label":v[`controls.fitView.ariaLabel`],children:(0,K.jsx)(DM,{})}),r&&(0,K.jsx)(AM,{className:`react-flow__controls-interactive`,onClick:()=>{m.setState({nodesDraggable:!h,nodesConnectable:!h,elementsSelectable:!h}),c?.(!h)},title:v[`controls.interactive.ariaLabel`],"aria-label":v[`controls.interactive.ariaLabel`],children:h?(0,K.jsx)(kM,{}):(0,K.jsx)(OM,{})}),u]})}MM.displayName=`Controls`;var NM=(0,y.memo)(MM);function PM({id:e,x:t,y:n,width:r,height:i,style:a,color:o,strokeColor:s,strokeWidth:c,className:l,borderRadius:u,shapeRendering:d,selected:f,onClick:p}){let{background:m,backgroundColor:h}=a||{},g=o||m||h;return(0,K.jsx)(`rect`,{className:wb([`react-flow__minimap-node`,{selected:f},l]),x:t,y:n,rx:u,ry:u,width:r,height:i,style:{fill:g,stroke:s,strokeWidth:c},shapeRendering:d,onClick:p?t=>p(t,e):void 0})}var FM=(0,y.memo)(PM),IM=e=>e.nodes.map(e=>e.id),LM=e=>e instanceof Function?e:()=>e;function RM({nodeStrokeColor:e,nodeColor:t,nodeClassName:n=``,nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:a=FM,onClick:o}){let s=lk(IM,ak),c=LM(t),l=LM(e),u=LM(n),d=typeof window>`u`||window.chrome?`crispEdges`:`geometricPrecision`;return(0,K.jsx)(K.Fragment,{children:s.map(e=>(0,K.jsx)(BM,{id:e,nodeColorFunc:c,nodeStrokeColorFunc:l,nodeClassNameFunc:u,nodeBorderRadius:r,nodeStrokeWidth:i,NodeComponent:a,onClick:o,shapeRendering:d},e))})}function zM({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:i,nodeStrokeWidth:a,shapeRendering:o,NodeComponent:s,onClick:c}){let{node:l,x:u,y:d,width:f,height:p}=lk(t=>{let n=t.nodeLookup.get(e);if(!n)return{node:void 0,x:0,y:0,width:0,height:0};let r=n.internals.userNode,{x:i,y:a}=n.internals.positionAbsolute,{width:o,height:s}=tD(r);return{node:r,x:i,y:a,width:o,height:s}},ak);return!l||l.hidden||!nD(l)?null:(0,K.jsx)(s,{x:u,y:d,width:f,height:p,style:l.style,selected:!!l.selected,className:r(l),color:t(l),borderRadius:i,strokeColor:n(l),strokeWidth:a,shapeRendering:o,onClick:c,id:l.id})}var BM=(0,y.memo)(zM),VM=(0,y.memo)(RM),HM=200,UM=150,WM=e=>!e.hidden,GM=e=>{let t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]},n=!1;for(let t of e.nodeLookup.values())if(!t.hidden){n=!0;break}return{viewBB:t,boundingRect:n?BE(CE(e.nodeLookup,{filter:WM}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},KM=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,qM=(e,t)=>KM(e.viewBB,t.viewBB)&&KM(e.boundingRect,t.boundingRect)&&e.rfId===t.rfId&&e.panZoom===t.panZoom&&e.translateExtent===t.translateExtent&&e.flowWidth===t.flowWidth&&e.flowHeight===t.flowHeight&&e.ariaLabelConfig===t.ariaLabelConfig,JM=`react-flow__minimap-desc`;function YM({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:i=``,nodeBorderRadius:a=5,nodeStrokeWidth:o,nodeComponent:s,bgColor:c,maskColor:l,maskStrokeColor:u,maskStrokeWidth:d,position:f=`bottom-right`,onClick:p,onNodeClick:m,pannable:h=!1,zoomable:g=!1,ariaLabel:_,inversePan:v,zoomStep:b=1,offsetScale:x=5}){let S=uk(),C=(0,y.useRef)(null),{boundingRect:w,panZoom:T,viewBB:E,rfId:D,translateExtent:O,flowWidth:k,flowHeight:A,ariaLabelConfig:j}=lk(GM,qM),M=e?.width??HM,N=e?.height??UM,P=w.width/M,F=w.height/N,I=Math.max(P,F),L=I*M,R=I*N,z=x*I,B=w.x-(L-w.width)/2-z,ee=w.y-(R-w.height)/2-z,V=L+z*2,H=R+z*2,te=`${JM}-${D}`,ne=(0,y.useRef)(0),re=(0,y.useRef)();ne.current=I,(0,y.useEffect)(()=>{let e=S.getState().panZoom;if(C.current&&e)return re.current=bO({domNode:C.current,panZoom:e,getTransform:()=>S.getState().transform,getViewScale:()=>ne.current}),()=>{re.current?.destroy()}},[T]),(0,y.useEffect)(()=>{re.current?.update({translateExtent:O,width:k,height:A,inversePan:v,pannable:h,zoomStep:b,zoomable:g})},[h,g,v,b,O,k,A]);let ie=p?e=>{let[t,n]=re.current?.pointer(e)||[0,0];p(e,{x:t,y:n})}:void 0,ae=(0,y.useCallback)((e,t)=>{let n=S.getState().nodeLookup.get(t).internals.userNode;m?.(e,n)},[m]),oe=m?ae:void 0,se=_??j[`minimap.ariaLabel`];return(0,K.jsx)(bk,{position:f,style:{...e,"--xy-minimap-background-color-props":typeof c==`string`?c:void 0,"--xy-minimap-mask-background-color-props":typeof l==`string`?l:void 0,"--xy-minimap-mask-stroke-color-props":typeof u==`string`?u:void 0,"--xy-minimap-mask-stroke-width-props":typeof d==`number`?d*I:void 0,"--xy-minimap-node-background-color-props":typeof r==`string`?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n==`string`?n:void 0,"--xy-minimap-node-stroke-width-props":typeof o==`number`?o:void 0},className:wb([`react-flow__minimap`,t]),"data-testid":`rf__minimap`,children:(0,K.jsxs)(`svg`,{width:M,height:N,viewBox:`${B} ${ee} ${V} ${H}`,className:`react-flow__minimap-svg`,role:`img`,"aria-labelledby":te,ref:C,onClick:ie,children:[se&&(0,K.jsx)(`title`,{id:te,children:se}),(0,K.jsx)(VM,{onClick:oe,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:a,nodeClassName:i,nodeStrokeWidth:o,nodeComponent:s}),(0,K.jsx)(`path`,{className:`react-flow__minimap-mask`,d:`M${B-z},${ee-z}h${V+z*2}v${H+z*2}h${-V-z*2}z + M${E.x},${E.y}h${E.width}v${E.height}h${-E.width}z`,fillRule:`evenodd`,pointerEvents:`none`})]})})}YM.displayName=`MiniMap`;var XM=(0,y.memo)(YM),ZM=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,QM={[FO.Line]:`right`,[FO.Handle]:`bottom-right`};function $M({nodeId:e,position:t,variant:n=FO.Handle,className:r,style:i=void 0,children:a,color:o,minWidth:s=10,minHeight:c=10,maxWidth:l=Number.MAX_VALUE,maxHeight:u=Number.MAX_VALUE,keepAspectRatio:d=!1,resizeDirection:f,autoScale:p=!0,shouldResize:m,onResizeStart:h,onResize:g,onResizeEnd:_}){let v=DA(),b=typeof e==`string`?e:v,x=uk(),S=(0,y.useRef)(null),C=n===FO.Handle,w=lk((0,y.useCallback)(ZM(C&&p),[C,p]),ak),T=(0,y.useRef)(null),E=t??QM[n];(0,y.useEffect)(()=>{if(S.current&&b)return T.current||=KO({domNode:S.current,nodeId:b,getStoreItems:()=>{let{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,domNode:a}=x.getState();return{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,paneDomNode:a}},onChange:(e,t)=>{let{triggerNodeChanges:n,nodeLookup:r,parentLookup:i,nodeOrigin:a}=x.getState(),o=[],s={x:e.x,y:e.y},c=r.get(b);if(c&&c.expandParent&&c.parentId){let t=c.origin??a,n=e.width??c.measured.width??0,l=e.height??c.measured.height??0,u=$D([{id:c.id,parentId:c.parentId,rect:{width:n,height:l,...rD({x:e.x??c.position.x,y:e.y??c.position.y},{width:n,height:l},c.parentId,r,t)}}],r,i,a);o.push(...u),s.x=e.x?Math.max(t[0]*n,e.x):void 0,s.y=e.y?Math.max(t[1]*l,e.y):void 0}if(s.x!==void 0&&s.y!==void 0){let e={id:b,type:`position`,position:{...s}};o.push(e)}if(e.width!==void 0&&e.height!==void 0){let t={id:b,type:`dimensions`,resizing:!0,setAttributes:f?f===`horizontal`?`width`:`height`:!0,dimensions:{width:e.width,height:e.height}};o.push(t)}for(let e of t){let t={...e,type:`position`};o.push(t)}n(o)},onEnd:({width:e,height:t})=>{let n={id:b,type:`dimensions`,resizing:!1,dimensions:{width:e,height:t}};x.getState().triggerNodeChanges([n])}}),T.current.update({controlPosition:E,boundaries:{minWidth:s,minHeight:c,maxWidth:l,maxHeight:u},keepAspectRatio:d,resizeDirection:f,onResizeStart:h,onResize:g,onResizeEnd:_,shouldResize:m}),()=>{T.current?.destroy()}},[E,s,c,l,u,d,h,g,_,m]);let D=E.split(`-`);return(0,K.jsx)(`div`,{className:wb([`react-flow__resize-control`,`nodrag`,...D,n,r]),ref:S,style:{...i,scale:w,...o&&{[C?`backgroundColor`:`borderColor`]:o}},children:a})}(0,y.memo)($M);var eN=e=>{switch(e){case`running`:return{borderColor:`border-[#643FB2] dark:border-[#8B5CF6]`,glow:`shadow-lg shadow-[#643FB2]/20`,badgeColor:`bg-[#643FB2] dark:bg-[#8B5CF6]`};case`completed`:return{borderColor:`border-green-500 dark:border-green-400`,glow:`shadow-lg shadow-green-500/20`,badgeColor:`bg-green-500 dark:bg-green-400`};case`failed`:return{borderColor:`border-red-500 dark:border-red-400`,glow:`shadow-lg shadow-red-500/20`,badgeColor:`bg-red-500 dark:bg-red-400`};case`cancelled`:return{borderColor:`border-orange-500 dark:border-orange-400`,glow:`shadow-lg shadow-orange-500/20`,badgeColor:`bg-orange-500 dark:bg-orange-400`};default:return{borderColor:`border-gray-300 dark:border-gray-600`,glow:``,badgeColor:`bg-gray-400 dark:bg-gray-500`}}},tN=(0,y.memo)(({data:e,selected:t})=>{let n=e,r=eN(n.state),[i,a]=(0,y.useState)(!1),o=n.outputData||n.error,s=n.state===`running`,c=s&&(n.isStreaming??!0),l=n.layoutDirection===`TB`,u=l?$.Top:$.Left,d=l?$.Bottom:$.Right;return(0,K.jsxs)(`div`,{className:jt(`group relative w-64 bg-card dark:bg-card rounded border-2 transition-all duration-200`,r.borderColor,t?`ring-2 ring-blue-500 ring-offset-2`:``,s?r.glow:`shadow-sm`),children:[(0,K.jsx)(FA,{type:`target`,position:u,id:`target`,className:`!w-2 !h-2 !rounded-full !border !border-gray-600 dark:!border-gray-500 transition-colors !min-w-0 !min-h-0`,style:{backgroundColor:n.state===`running`?`#643FB2`:n.state===`completed`?`#10b981`:n.state===`failed`?`#ef4444`:n.state===`cancelled`?`#f97316`:`#4b5563`}}),(0,K.jsx)(FA,{type:`source`,position:d,id:`source`,className:`!w-2 !h-2 !rounded-full !border !border-gray-600 dark:!border-gray-500 transition-colors !min-w-0 !min-h-0`,style:{backgroundColor:n.state===`running`?`#643FB2`:n.state===`completed`?`#10b981`:n.state===`failed`?`#ef4444`:n.state===`cancelled`?`#f97316`:`#4b5563`}}),(0,K.jsxs)(`div`,{className:`p-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,K.jsx)(`div`,{className:`flex-shrink-0 relative`,children:(0,K.jsx)(`div`,{className:`w-10 h-10 rounded-lg bg-gray-900/90 dark:bg-gray-800/90 flex items-center justify-center`,children:n.isStartNode?(0,K.jsx)(Zu,{className:`w-5 h-5 text-[#643FB2] dark:text-[#8B5CF6]`}):(0,K.jsx)(uf,{className:`w-5 h-5 text-gray-300 dark:text-gray-400`})})}),(0,K.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,K.jsx)(`h3`,{className:`font-medium text-sm text-gray-900 dark:text-gray-100 truncate`,children:n.name||n.executorId}),s&&(0,K.jsx)(ld,{className:`w-4 h-4 text-[#643FB2] dark:text-[#8B5CF6] ${c?`animate-spin`:``} flex-shrink-0`})]}),n.executorType&&(0,K.jsx)(`p`,{className:`text-xs text-gray-500 dark:text-gray-400 truncate mt-0.5`,children:n.executorType})]})]}),o&&(0,K.jsxs)(`div`,{className:`mt-2 border-t border-border/50 pt-2`,children:[(0,K.jsxs)(`button`,{onClick:e=>{e.stopPropagation(),a(!i)},className:`flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors w-full`,children:[i?(0,K.jsx)(su,{className:`w-3 h-3`}):(0,K.jsx)(du,{className:`w-3 h-3`}),(0,K.jsx)(`span`,{children:n.error?`Show error`:`Show output`})]}),i&&(0,K.jsx)(`div`,{className:`mt-2`,children:(()=>{if(n.error&&typeof n.error==`string`){let e=fb(n.error,200);return(0,K.jsx)(`div`,{className:`text-xs text-red-600 dark:text-red-400 bg-red-50 dark:bg-red-950/20 p-2 rounded border border-red-200 dark:border-red-800 break-words max-h-32 overflow-auto`,children:e})}if(n.outputData)try{let e=typeof n.outputData==`string`?n.outputData:JSON.stringify(n.outputData,null,2);return(0,K.jsx)(`div`,{className:`text-xs text-gray-700 dark:text-gray-300 bg-muted/50 p-2 rounded border max-h-32 overflow-auto`,children:(0,K.jsx)(`pre`,{className:`whitespace-pre-wrap font-mono`,children:e})})}catch{return(0,K.jsx)(`div`,{className:`text-xs text-gray-600 dark:text-gray-400 bg-muted/50 p-2 rounded border`,children:`[Unable to display output]`})}return null})()})]}),s&&(0,K.jsx)(`div`,{className:`absolute inset-0 rounded border-2 border-[#643FB2]/30 dark:border-[#8B5CF6]/30 animate-pulse pointer-events-none`})]})]})});tN.displayName=`ExecutorNode`;var nN=(0,y.memo)(function({id:e,source:t,markerEnd:n,style:r}){let i=_M(t);if(!i)return null;let{width:a,height:o}=i.measured,{x:s,y:c}=i.internals.positionAbsolute;if(!a||!o)return null;let l=i.data?.layoutDirection===`TB`,u;if(l){let e=s+a/2,t=c+o,n=s+a/2,r=c,i=s+a+100;u=`M ${e} ${t} C ${e} ${t+40}, ${i} ${t+40}, ${i} ${c+o/2} C ${i} ${r-40}, ${n} ${r-40}, ${n} ${r}`}else{let e=s+a,t=c+o/2,n=s,r=c+o/2,i=c+o+100;u=`M ${e} ${t} C ${e+40} ${t}, ${e+40} ${i}, ${s+a/2} ${i} C ${n-40} ${i}, ${n-40} ${r}, ${n} ${r}`}return(0,K.jsx)(hj,{id:e,path:u,markerEnd:n,style:r})}),rN={executor:tN},iN={selfLoop:nN};function aN({workflowDump:e,onNodeSelect:t,viewOptions:n,onToggleViewOption:r,layoutDirection:i,onLayoutDirectionChange:a}){let{fitView:o,setViewport:s,setNodes:c}=cA();return(0,K.jsx)(`div`,{className:`absolute top-4 right-4 z-10`,children:(0,K.jsxs)(_f,{children:[(0,K.jsx)(vf,{asChild:!0,children:(0,K.jsxs)(q,{variant:`outline`,size:`sm`,className:`h-8 w-8 p-0 bg-white/90 backdrop-blur-sm border-gray-200 shadow-sm hover:bg-white dark:bg-gray-800/90 dark:border-gray-600 dark:hover:bg-gray-800`,children:[(0,K.jsx)(zu,{className:`h-4 w-4`}),(0,K.jsx)(`span`,{className:`sr-only`,children:`View options`})]})}),(0,K.jsxs)(yf,{align:`end`,className:`w-56`,children:[(0,K.jsxs)(bf,{className:`flex items-center justify-between`,onClick:()=>r?.(`showMinimap`),children:[(0,K.jsxs)(`div`,{className:`flex items-center`,children:[(0,K.jsx)(pd,{className:`mr-2 h-4 w-4`}),`Show Minimap`]}),(0,K.jsx)(nh,{checked:n.showMinimap,onChange:()=>{}})]}),(0,K.jsxs)(bf,{className:`flex items-center justify-between`,onClick:()=>r?.(`showGrid`),children:[(0,K.jsxs)(`div`,{className:`flex items-center`,children:[(0,K.jsx)(Yu,{className:`mr-2 h-4 w-4`}),`Show Grid`]}),(0,K.jsx)(nh,{checked:n.showGrid,onChange:()=>{}})]}),(0,K.jsxs)(bf,{className:`flex items-center justify-between`,onClick:()=>r?.(`animateRun`),children:[(0,K.jsxs)(`div`,{className:`flex items-center`,children:[(0,K.jsx)(gf,{className:`mr-2 h-4 w-4`}),`Animate Run`]}),(0,K.jsx)(nh,{checked:n.animateRun,onChange:()=>{}})]}),(0,K.jsxs)(bf,{className:`flex items-center justify-between`,onClick:()=>r?.(`consolidateBidirectionalEdges`),children:[(0,K.jsxs)(`div`,{className:`flex items-center`,children:[(0,K.jsx)(ql,{className:`mr-2 h-4 w-4`}),`Merge Bidirectional Edges`]}),(0,K.jsx)(nh,{checked:n.consolidateBidirectionalEdges,onChange:()=>{}})]}),(0,K.jsx)(Sf,{}),(0,K.jsxs)(bf,{className:`flex items-center justify-between`,onClick:()=>{let n=i===`LR`?`TB`:`LR`;if(a?.(n),e){let r=_b(pb(e,t,n),mb(e),n);c(r)}},children:[(0,K.jsxs)(`div`,{className:`flex items-center`,children:[(0,K.jsx)(Gl,{className:`mr-2 h-4 w-4`}),`Vertical Layout`]}),(0,K.jsx)(nh,{checked:i===`TB`,onChange:()=>{}})]}),(0,K.jsx)(Sf,{}),(0,K.jsxs)(bf,{onClick:()=>{s({x:0,y:0,zoom:1})},children:[(0,K.jsx)(Ld,{className:`mr-2 h-4 w-4`}),`Reset Zoom`]}),(0,K.jsxs)(bf,{onClick:()=>{o({padding:.2})},children:[(0,K.jsx)(hd,{className:`mr-2 h-4 w-4`}),`Fit to Screen`]}),(0,K.jsxs)(bf,{onClick:()=>{if(!e)return;let n=_b(pb(e,t,i),mb(e),i);c(n)},children:[(0,K.jsx)(Yd,{className:`mr-2 h-4 w-4`}),`Auto-arrange`]})]})]})})}function oN({nodes:e,nodeUpdates:t,isStreaming:n,animateRun:r}){let{fitView:i}=cA();return(0,y.useEffect)(()=>{if(r){if(n){let t=e.filter(e=>e.data.state===`running`);if(t.length>0){let e=t[0];i({nodes:[e],duration:800,padding:.3,minZoom:.8,maxZoom:1.5})}}else e.length>0&&i({duration:1e3,padding:.2})}},[t,n,r,e]),null}var sN=(0,y.memo)(({timelineVisible:e})=>{let{fitView:t}=cA();return(0,y.useEffect)(()=>{let e=setTimeout(()=>{t({padding:.2,duration:300})},350);return()=>clearTimeout(e)},[e]),null}),cN=(0,y.memo)(function({workflowDump:e,events:t,isStreaming:n,onNodeSelect:r,className:i=``,viewOptions:a={showMinimap:!1,showGrid:!0,animateRun:!0,consolidateBidirectionalEdges:!0},onToggleViewOption:o,layoutDirection:s=`TB`,onLayoutDirectionChange:c,timelineVisible:l=!1}){let{initialNodes:u,initialEdges:d}=(0,y.useMemo)(()=>{if(!e)return{initialNodes:[],initialEdges:[]};let t=pb(e,r,s),n=mb(e),i=a.consolidateBidirectionalEdges?Sb(n):n;return{initialNodes:t.length>0?_b(t,i,s):t,initialEdges:i}},[e,r,s,a.consolidateBidirectionalEdges]),[f,p,m]=hM(u),[h,g,_]=gM(d),v=(0,y.useMemo)(()=>vb(t,e?.start_executor_id),[t,e?.start_executor_id]);(0,y.useMemo)(()=>{Object.keys(v).length>0?p(e=>yb(e,v,n)):t.length===0&&p(e=>e.map(e=>({...e,data:{...e.data,state:`pending`,outputData:void 0,error:void 0,isStreaming:!1}})))},[v,p,t.length,n]),(0,y.useMemo)(()=>{t.length>0?g(e=>{let n=xb(e,t);return a.consolidateBidirectionalEdges?Sb(n):n}):g(e=>{let t=e.map(e=>({...e,animated:!1,style:{stroke:`#6b7280`,strokeWidth:2}}));return a.consolidateBidirectionalEdges?Sb(t):t})},[t,g,a.consolidateBidirectionalEdges]),(0,y.useEffect)(()=>{u.length>0&&(p(u),g(d))},[e,a.consolidateBidirectionalEdges]);let b=(0,y.useCallback)((e,t)=>{e.stopPropagation(),r?.(t.data.executorId,t.data)},[r]);return e?u.length===0?(0,K.jsx)(`div`,{className:`flex items-center justify-center h-full bg-gray-50 dark:bg-gray-900 rounded border border-gray-200 dark:border-gray-700 ${i}`,children:(0,K.jsxs)(`div`,{className:`text-center text-gray-500 dark:text-gray-400`,children:[(0,K.jsx)(`div`,{className:`text-lg font-medium mb-2`,children:`No Executors Found`}),(0,K.jsx)(`div`,{className:`text-sm`,children:`Could not extract executors from workflow dump.`}),(0,K.jsxs)(`details`,{className:`mt-2 text-xs`,children:[(0,K.jsx)(`summary`,{className:`cursor-pointer`,children:`Debug Info`}),(0,K.jsx)(`pre`,{className:`mt-1 p-2 bg-gray-100 dark:bg-gray-800 rounded text-left overflow-auto`,children:JSON.stringify(e,null,2)})]})]})}):(0,K.jsxs)(`div`,{className:`h-full w-full ${i}`,children:[(0,K.jsxs)(mM,{nodes:f,edges:h,onNodesChange:m,onEdgesChange:_,onNodeClick:b,nodeTypes:rN,edgeTypes:iN,fitView:!0,fitViewOptions:{padding:.2},minZoom:.1,maxZoom:1.5,defaultEdgeOptions:{type:`default`,animated:!1,style:{stroke:`#6b7280`,strokeWidth:2}},nodesDraggable:!n,nodesConnectable:!1,elementsSelectable:!0,proOptions:{hideAttribution:!0},children:[a.showGrid&&(0,K.jsx)(wM,{variant:bM.Dots,gap:20,size:1,color:`#e5e7eb`,className:`dark:opacity-30`}),(0,K.jsx)(NM,{position:`bottom-left`,showInteractive:!1,style:{backgroundColor:`rgba(255, 255, 255, 0.9)`,border:`1px solid #e5e7eb`,borderRadius:`3px`},className:`dark:!bg-gray-800/90 dark:!border-gray-600`}),a.showMinimap&&(0,K.jsx)(XM,{nodeColor:e=>{switch(e.data?.state){case`running`:return`#643FB2`;case`completed`:return`#10b981`;case`failed`:return`#ef4444`;case`cancelled`:return`#f97316`;default:return`#6b7280`}},maskColor:`rgba(0, 0, 0, 0.1)`,position:`bottom-right`,style:{backgroundColor:`rgba(255, 255, 255, 0.9)`,border:`1px solid #e5e7eb`,borderRadius:`8px`},className:`dark:!bg-gray-800/90 dark:!border-gray-600`}),(0,K.jsx)(oN,{nodes:f,nodeUpdates:v,isStreaming:n,animateRun:a.animateRun}),(0,K.jsx)(sN,{timelineVisible:l}),(0,K.jsx)(aN,{workflowDump:e,onNodeSelect:r,viewOptions:a,onToggleViewOption:o,layoutDirection:s,onLayoutDirectionChange:c})]}),(0,K.jsx)(`style`,{children:` .react-flow__edge-path { transition: stroke 0.3s ease, stroke-width 0.3s ease; } @@ -182,12 +182,12 @@ asyncio.run(main())`})]})]}),(0,K.jsxs)(`div`,{className:`flex gap-2 pt-4 border .dark .react-flow__controls-button:hover svg { fill: rgb(255, 255, 255) !important; } - `})]}):(0,K.jsx)(`div`,{className:`flex items-center justify-center h-full bg-gray-50 dark:bg-gray-900 rounded border border-gray-200 dark:border-gray-700 ${i}`,children:(0,K.jsxs)(`div`,{className:`text-center text-gray-500 dark:text-gray-400`,children:[(0,K.jsx)(`div`,{className:`text-lg font-medium mb-2`,children:`No Workflow Data`}),(0,K.jsx)(`div`,{className:`text-sm`,children:`Workflow dump is not available.`})]})})});function sN({title:e,icon:t,children:n,className:r=``}){return(0,K.jsxs)(`div`,{className:`border rounded-lg p-4 bg-card ${r}`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2 mb-3`,children:[t,(0,K.jsx)(`h3`,{className:`text-sm font-semibold text-foreground`,children:e})]}),(0,K.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:n})]})}function cN({workflow:e,open:t,onOpenChange:n}){let r=e.source===`directory`?(0,K.jsx)(Gu,{className:`h-4 w-4 text-muted-foreground`}):e.source===`in_memory`?(0,K.jsx)(Fu,{className:`h-4 w-4 text-muted-foreground`}):(0,K.jsx)(qu,{className:`h-4 w-4 text-muted-foreground`}),i=e.source===`directory`?`Local`:e.source===`in_memory`?`In-Memory`:`Gallery`;return(0,K.jsx)(Og,{open:t,onOpenChange:n,children:(0,K.jsxs)(kg,{className:`max-w-4xl max-h-[90vh] flex flex-col`,children:[(0,K.jsxs)(Ag,{className:`px-6 pt-6 flex-shrink-0`,children:[(0,K.jsx)(jg,{children:`Workflow Details`}),(0,K.jsx)(Ng,{onClose:()=>n(!1)})]}),(0,K.jsxs)(`div`,{className:`px-6 pb-6 overflow-y-auto flex-1`,children:[(0,K.jsxs)(`div`,{className:`mb-6`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-3 mb-2`,children:[(0,K.jsx)(uf,{className:`h-6 w-6 text-primary`}),(0,K.jsx)(`h2`,{className:`text-xl font-semibold text-foreground`,children:e.name||e.id})]}),e.description&&(0,K.jsx)(`p`,{className:`text-muted-foreground`,children:e.description})]}),(0,K.jsx)(`div`,{className:`h-px bg-border mb-6`}),(0,K.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-4 mb-4`,children:[(0,K.jsx)(sN,{title:`Start Executor`,icon:(0,K.jsx)(xu,{className:`h-4 w-4 text-muted-foreground`}),children:(0,K.jsx)(`div`,{className:`font-mono text-foreground`,children:e.start_executor_id})}),(0,K.jsx)(sN,{title:`Source`,icon:r,children:(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`div`,{className:`text-foreground`,children:i}),e.module_path&&(0,K.jsx)(`div`,{className:`font-mono text-xs break-all`,children:e.module_path})]})}),(0,K.jsx)(sN,{title:`Environment`,icon:e.has_env?(0,K.jsx)(Cu,{className:`h-4 w-4 text-orange-500`}):(0,K.jsx)(_u,{className:`h-4 w-4 text-green-500`}),className:`md:col-span-2`,children:(0,K.jsx)(`div`,{className:e.has_env?`text-orange-600 dark:text-orange-400`:`text-green-600 dark:text-green-400`,children:e.has_env?`Requires environment variables`:`No environment variables required`})})]}),(0,K.jsx)(sN,{title:`Executors (${e.executors.length})`,icon:(0,K.jsx)(Cd,{className:`h-4 w-4 text-muted-foreground`}),children:e.executors.length>0?(0,K.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-2`,children:e.executors.map((e,t)=>(0,K.jsx)(`div`,{className:`font-mono text-xs text-foreground bg-muted px-2 py-1 rounded truncate`,title:e,children:e},t))}):(0,K.jsx)(`div`,{className:`text-muted-foreground`,children:`No executors configured`})})]})]})})}function lN({session:e,checkpoints:t,open:n,onOpenChange:r}){let[i,a]=(0,y.useState)(null),[o,s]=(0,y.useState)(null),[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(!0);if((0,y.useEffect)(()=>{n&&t.length>0&&(t.some(e=>e.checkpoint_id===i)||a(t[0].checkpoint_id))},[n,t]),(0,y.useEffect)(()=>{i&&e&&(async()=>{l(!0);try{let t=await R_.getConversationItem(e.conversation_id,`checkpoint_${i}`);s(t.metadata?.full_checkpoint??null)}catch(e){console.error(`Failed to load checkpoint:`,e),s(null)}finally{l(!1)}})()},[i,e]),!e)return null;let f=t.find(e=>e.checkpoint_id===i),p=o?.state?._executor_state?Object.keys(o.state._executor_state):[],m=o?.messages?Object.keys(o.messages):[],h=e=>{if(!e)return``;let t=e/1024;return t<1?`${e} B`:t<1024?`${t.toFixed(1)} KB`:`${(t/1024).toFixed(1)} MB`};return(0,K.jsx)(Og,{open:n,onOpenChange:r,children:(0,K.jsxs)(kg,{className:`w-[90vw] max-w-6xl min-w-[800px] h-[85vh] flex flex-col p-0`,children:[(0,K.jsx)(Ag,{className:`px-6 pt-6 pb-4 border-b flex-shrink-0`,children:(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsxs)(`div`,{className:`flex-1`,children:[(0,K.jsx)(jg,{children:e.metadata.name}),(0,K.jsxs)(`div`,{className:`text-sm text-muted-foreground mt-1`,children:[t.length,` checkpoint`,t.length===1?``:`s`]}),(0,K.jsx)(`div`,{className:`text-xs text-muted-foreground mt-2 max-w-2xl`,children:`This is a read only view of the current checkpoint ids in the checkpoint storage for this workflow run.`})]}),(0,K.jsx)(Ng,{onClose:()=>r(!1)})]})}),(0,K.jsxs)(`div`,{className:`flex-1 flex overflow-hidden min-h-0`,children:[(0,K.jsx)(`div`,{className:`w-80 border-r flex flex-col`,children:(0,K.jsx)(mm,{className:`flex-1`,children:(0,K.jsx)(`div`,{className:`p-4 space-y-2`,children:t.length===0?(0,K.jsx)(`div`,{className:`text-center text-sm text-muted-foreground py-8`,children:`No checkpoints yet`}):t.map((e,n)=>{let r=e.checkpoint_id===i,o=e.metadata.has_pending_hil;return(0,K.jsxs)(`div`,{className:`relative`,children:[(0,K.jsx)(`button`,{onClick:()=>a(e.checkpoint_id),className:jt(`relative w-full text-left p-3 rounded-lg border transition-colors`,r?`bg-primary/10 border-primary`:`hover:bg-muted/50 border-transparent`),children:(0,K.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,K.jsx)(`div`,{className:`flex flex-col items-center pt-1`,children:(0,K.jsx)(`div`,{className:jt(`w-2 h-2 rounded-full z-10`,o?`bg-blue-500 ring-2 ring-blue-500/20`:`bg-muted-foreground/30`)})}),(0,K.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`text-sm font-medium`,children:e.metadata.iteration_count===0?`Initial State`:`Step ${e.metadata.iteration_count}`}),(0,K.jsx)(`span`,{className:`text-[10px] font-mono text-muted-foreground/70`,title:e.checkpoint_id,children:e.checkpoint_id.slice(0,8)}),n===0&&(0,K.jsx)(Ft,{variant:`secondary`,className:`text-[10px] h-4 px-1`,children:`Latest`}),o&&(0,K.jsxs)(Ft,{variant:`secondary`,className:`text-[10px] h-4 px-1.5`,children:[e.metadata.pending_hil_count,` HIL`]})]}),(0,K.jsxs)(`div`,{className:`flex items-center gap-3 text-xs text-muted-foreground mt-1`,children:[(0,K.jsx)(`span`,{children:new Date(e.timestamp).toLocaleTimeString()}),e.metadata.size_bytes&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`span`,{children:`•`}),(0,K.jsx)(`span`,{children:h(e.metadata.size_bytes)})]})]})]})]})}),n0&&(0,K.jsxs)(`div`,{children:[(0,K.jsxs)(`div`,{className:`text-sm font-medium mb-3 flex items-center gap-2`,children:[(0,K.jsx)(Cd,{className:`h-4 w-4`}),`Active Executors (`,p.length,`)`]}),(0,K.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:p.map(e=>(0,K.jsx)(Ft,{variant:`outline`,className:`font-mono text-xs`,children:e},e))})]}),m.length>0&&o&&(0,K.jsxs)(`div`,{children:[(0,K.jsxs)(`div`,{className:`text-sm font-medium mb-3 flex items-center gap-2`,children:[(0,K.jsx)(_d,{className:`h-4 w-4`}),`Messages`]}),(0,K.jsx)(`div`,{className:`grid grid-cols-2 gap-3`,children:m.map(e=>{let t=o.messages[e]?.length;return(0,K.jsxs)(`div`,{className:`bg-muted/50 p-3 rounded-lg`,children:[(0,K.jsx)(`div`,{className:`text-xs font-mono text-muted-foreground mb-1`,children:e}),(0,K.jsxs)(`div`,{className:`font-medium`,children:[t,` message`,t===1?``:`s`]})]},e)})})]}),o?.pending_request_info_events&&Object.keys(o.pending_request_info_events).length>0&&(0,K.jsxs)(`div`,{children:[(0,K.jsxs)(`div`,{className:`text-sm font-medium mb-3 flex items-center gap-2`,children:[(0,K.jsx)(hu,{className:`h-4 w-4`}),`Pending HIL Requests (`,Object.keys(o.pending_request_info_events).length,`)`]}),(0,K.jsx)(`div`,{className:`space-y-2`,children:Object.entries(o.pending_request_info_events).map(([e,t])=>(0,K.jsxs)(`div`,{className:`bg-muted/50 border border-border p-3 rounded-lg`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,K.jsxs)(`code`,{className:`text-xs bg-background px-2 py-1 rounded`,children:[e.slice(0,24),`...`]}),(0,K.jsx)(Ft,{variant:`outline`,className:`text-xs`,children:t.source_executor_id})]}),(0,K.jsxs)(`div`,{className:`text-xs space-y-1`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`span`,{className:`text-muted-foreground`,children:`Request:`}),` `,(0,K.jsx)(`code`,{className:`bg-background px-1 py-0.5 rounded`,children:t.request_type?.split(`.`).pop()||t.request_type})]}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`span`,{className:`text-muted-foreground`,children:`Response:`}),` `,(0,K.jsx)(`code`,{className:`bg-background px-1 py-0.5 rounded`,children:t.response_type?.split(`.`).pop()||t.response_type})]})]})]},e))})]}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`div`,{className:`text-sm font-medium mb-3`,children:`Workflow State`}),o?.state&&Object.keys(o.state).filter(e=>e!==`_executor_state`).length>0?(0,K.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:Object.keys(o.state).filter(e=>e!==`_executor_state`).map(e=>(0,K.jsx)(Ft,{variant:`secondary`,className:`font-mono text-xs`,children:e},e))}):(0,K.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:`No custom state`})]}),(0,K.jsxs)(`div`,{className:`border-t pt-6`,children:[(0,K.jsxs)(`button`,{onClick:()=>d(!u),className:`flex items-center gap-2 text-sm font-medium hover:text-primary transition-colors w-full`,children:[u?(0,K.jsx)(su,{className:`h-4 w-4`}):(0,K.jsx)(du,{className:`h-4 w-4`}),`Raw JSON`]}),u&&(0,K.jsx)(`pre`,{className:`mt-3 text-[10px] font-mono bg-muted p-4 rounded overflow-x-auto`,children:JSON.stringify(o,null,2)})]})]})})})]})]})})}function uN({request:e,response:t,onResponseChange:n,onSubmit:r,isSubmitting:i}){let[a,o]=(0,y.useState)(!0),s=e=>{n(e)},c=rb(e.request_schema,t);return(0,K.jsx)(`div`,{className:`relative group`,children:(0,K.jsx)(`div`,{children:(0,K.jsx)(`div`,{className:`flex-1`,children:(0,K.jsxs)(`div`,{className:`border border-orange-200 dark:border-orange-800 bg-orange-50/50 dark:bg-orange-950/20 overflow-hidden rounded-lg`,children:[(0,K.jsxs)(`div`,{className:`px-4 py-3 bg-orange-100/50 dark:bg-orange-950/30 border-b border-orange-200 dark:border-orange-800 flex items-center justify-between cursor-pointer hover:bg-orange-100 dark:hover:bg-orange-950/40 transition-colors`,onClick:()=>o(!a),children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`font-medium text-sm text-orange-900 dark:text-orange-100`,children:`Workflow needs your input`}),(0,K.jsx)(Ft,{variant:`outline`,className:`text-xs font-mono border-orange-300 dark:border-orange-700 text-orange-700 dark:text-orange-300`,children:e.request_id.slice(0,8)}),!a&&(0,K.jsx)(`span`,{className:`text-xs text-orange-600 dark:text-orange-400 animate-pulse`,children:`Click to respond`})]}),i&&(0,K.jsx)(Ft,{variant:`secondary`,className:`animate-pulse`,children:`Submitting...`})]}),a&&(0,K.jsxs)(`div`,{className:`p-4 space-y-4`,children:[Object.keys(e.request_data).length>0&&(0,K.jsxs)(`div`,{className:`bg-white/60 dark:bg-gray-900/30 rounded-md p-3 space-y-2`,children:[(0,K.jsx)(`p`,{className:`text-xs font-medium text-muted-foreground uppercase tracking-wider`,children:`Context`}),(0,K.jsx)(`div`,{className:`max-h-48 overflow-y-auto space-y-1 pr-2`,children:Object.entries(e.request_data).filter(([e])=>![`request_id`,`source_executor_id`].includes(e)).map(([e,t])=>(0,K.jsxs)(`div`,{className:`text-sm`,children:[(0,K.jsxs)(`span`,{className:`font-medium text-muted-foreground`,children:[e,`:`]}),` `,(0,K.jsx)(`span`,{className:`text-foreground break-all`,children:typeof t==`object`?JSON.stringify(t,null,2):String(t)})]},e))})]}),e.request_schema?.description&&(0,K.jsxs)(`div`,{className:`text-sm text-muted-foreground bg-blue-50 dark:bg-blue-950/20 p-3 rounded-md border border-blue-200 dark:border-blue-800`,children:[(0,K.jsx)(`p`,{className:`font-medium text-blue-900 dark:text-blue-100 mb-1`,children:`What's needed:`}),(0,K.jsx)(`p`,{className:`text-blue-800 dark:text-blue-200`,children:e.request_schema.description})]}),(0,K.jsx)(`div`,{className:`space-y-3`,children:(0,K.jsx)(nb,{schema:e.request_schema,values:t,onChange:s})}),(0,K.jsxs)(`div`,{className:`space-y-2 pt-2`,children:[(0,K.jsxs)(q,{size:`default`,onClick:r,disabled:!c||i,className:`w-full gap-2`,children:[(0,K.jsx)(Ud,{className:`w-4 h-4`}),`Submit Response`]}),!c&&(0,K.jsx)(`div`,{className:`text-xs text-muted-foreground text-center`,children:`Please fill in all required fields`})]})]})]})})})})}function dN(e,t=!0){switch(e){case`running`:return(0,K.jsx)(ld,{className:`w-4 h-4 text-[#643FB2] dark:text-[#8B5CF6] ${t?`animate-spin`:``}`});case`completed`:return(0,K.jsx)(_u,{className:`w-4 h-4 text-green-500 dark:text-green-400`});case`failed`:return(0,K.jsx)(Cu,{className:`w-4 h-4 text-red-500 dark:text-red-400`});case`cancelled`:return(0,K.jsx)(hu,{className:`w-4 h-4 text-orange-500 dark:text-orange-400`});default:return(0,K.jsx)(`div`,{className:`w-4 h-4 rounded-full border-2 border-gray-400 dark:border-gray-500`})}}function fN(e){switch(e){case`running`:return`bg-[#643FB2]/10 text-[#643FB2] dark:bg-[#8B5CF6]/10 dark:text-[#8B5CF6] border-[#643FB2]/20 dark:border-[#8B5CF6]/20`;case`completed`:return`bg-green-500/10 text-green-600 dark:text-green-400 border-green-500/20`;case`failed`:return`bg-red-500/10 text-red-600 dark:text-red-400 border-red-500/20`;case`cancelled`:return`bg-orange-500/10 text-orange-600 dark:text-orange-400 border-orange-500/20`;default:return`bg-gray-500/10 text-gray-600 dark:text-gray-400 border-gray-500/20`}}function pN(e){return e.content?.map(e=>e.type===`output_text`?e.text:e.type===`refusal`?e.refusal:void 0).filter(e=>!!e).join(` -`)??``}function mN({run:e,isExpanded:t,onToggle:n,onClick:r,isSelected:i,isStreaming:a}){let o=new Date(e.timestamp).toLocaleTimeString(),s=e.output.trim().length>0||e.error,c=(0,y.useRef)(null);return(0,y.useEffect)(()=>{t&&e.state===`running`&&c.current&&(c.current.scrollTop=c.current.scrollHeight)},[e.output,t,e.state]),(0,K.jsxs)(`div`,{className:`border rounded-lg transition-all ${i?`border-blue-500 dark:border-blue-400 bg-blue-500/5 dark:bg-blue-500/10`:`border-border hover:border-muted-foreground/30`}`,children:[(0,K.jsxs)(`div`,{className:`p-3 cursor-pointer`,onClick:()=>{r(),s&&n()},children:[(0,K.jsxs)(`div`,{className:`grid grid-cols-[auto_auto_1fr_auto] items-center gap-2 mb-1`,children:[(0,K.jsx)(`div`,{className:`w-3 text-muted-foreground`,children:s&&(0,K.jsx)(K.Fragment,{children:t?(0,K.jsx)(su,{className:`w-3 h-3`}):(0,K.jsx)(du,{className:`w-3 h-3`})})}),(0,K.jsx)(`div`,{children:dN(e.state,a)}),(0,K.jsx)(`span`,{className:`font-medium text-sm truncate overflow-hidden`,children:e.executorName}),e.runNumber>1?(0,K.jsxs)(Ft,{variant:`outline`,className:`text-xs whitespace-nowrap`,children:[`Run #`,e.runNumber]}):(0,K.jsx)(`div`,{})]}),(0,K.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground ml-5`,children:[(0,K.jsx)(`span`,{className:`font-mono`,children:o}),(0,K.jsx)(Ft,{variant:`outline`,className:`text-xs border ${fN(e.state)}`,children:e.state})]})]}),t&&s&&(0,K.jsx)(`div`,{className:`border-t px-3 py-2 bg-muted/30`,children:e.error?(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`div`,{className:`text-xs font-medium text-red-600 dark:text-red-400`,children:`Error:`}),(0,K.jsx)(`pre`,{className:`text-xs bg-red-50 dark:bg-red-950/20 border border-red-200 dark:border-red-800 rounded p-2 overflow-y-auto overflow-x-hidden max-h-40 whitespace-pre-wrap break-all`,children:e.error})]}):(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`div`,{className:`text-xs font-medium text-muted-foreground`,children:`Output:`}),(0,K.jsx)(`pre`,{ref:c,className:`text-xs bg-background border rounded p-2 overflow-y-auto overflow-x-hidden max-h-60 whitespace-pre-wrap break-all`,children:e.output})]})})]})}function hN({events:e,itemOutputs:t,currentExecutorId:n,isStreaming:r,onExecutorClick:i,selectedExecutorId:a,workflowResult:o,pendingHilRequests:s=[],hilResponses:c={},onHilResponseChange:l,onHilSubmit:u,isSubmittingHil:d=!1,inputSchema:f,onRun:p,onCancel:m,isCancelling:h=!1,workflowState:g=`ready`,wasCancelled:_=!1,checkpoints:v=[]}){let[b,x]=(0,y.useState)(new Set),[S,C]=(0,y.useState)(0),[w,T]=(0,y.useState)(!1),E=(0,y.useRef)(null),D=(0,y.useRef)(null),O=(0,y.useRef)(null);(0,y.useEffect)(()=>{if(r){let e=setInterval(()=>{C(e=>e+1)},100);return()=>clearInterval(e)}},[r]);let{executorRuns:k,executorRunCount:A}=(0,y.useMemo)(()=>{let n=[],r=new Map;return e.forEach(e=>{let i=`_uiTimestamp`in e&&typeof e._uiTimestamp==`number`?e._uiTimestamp*1e3:Date.now();if(e.type===`response.output_item.added`){let a=e.item;if(a&&a.type===`executor_action`&&`executor_id`in a&&a.id){let e=String(a.executor_id),o=a.id,s=(r.get(e)||0)+1;r.set(e,s),n.push({executorId:e,executorName:ub(e,35),itemId:o,state:`running`,output:t[o]||``,timestamp:i,runNumber:s})}else if(a&&a.type===`message`&&`metadata`in a&&a.id){let e=a.metadata;if(e?.agent_id&&e?.source===`magentic`){let o=e.agent_id,s=a.id,c=(r.get(o)||0)+1;r.set(o,c),n.push({executorId:o,executorName:ub(o,35),itemId:s,state:`running`,output:t[s]||``,timestamp:i,runNumber:c})}else if(e?.executor_id&&e.workflow_output_kind===`intermediate`){let o=e.executor_id,s=a.id,c=(r.get(o)||0)+1;r.set(o,c),n.push({executorId:o,executorName:ub(o,35),itemId:s,state:a.status===`completed`?`completed`:`running`,output:t[s]||pN(a),timestamp:i,runNumber:c})}}}if(e.type===`response.output_item.done`){let r=e.item;if(r&&r.type===`executor_action`&&`executor_id`in r&&r.id){let e=r.id,i=n.find(t=>t.itemId===e);i&&(i.state=r.status===`completed`?`completed`:r.status===`failed`?`failed`:`completed`,i.output=t[e]||``,r.status===`failed`&&`error`in r&&r.error&&(i.error=String(r.error)))}else if(r&&r.type===`message`&&`metadata`in r&&r.id){let e=r.metadata;if(e?.agent_id&&e?.source===`magentic`){let e=r.id,i=n.find(t=>t.itemId===e);i&&(i.state=r.status===`completed`?`completed`:`failed`,i.output=t[e]||``)}else if(e?.executor_id&&e.workflow_output_kind===`intermediate`){let e=r.id,i=n.find(t=>t.itemId===e);i&&(i.state=r.status===`completed`?`completed`:`failed`,i.output=t[e]||pN(r))}}}if(e.type===`response.workflow_event.completed`&&`data`in e&&e.data){let a=e.data,o=a.executor_id;if(!o)return;let s=a.event_type;if(s===`ExecutorInvokedEvent`){let e=(r.get(o)||0)+1;r.set(o,e);let a=`fallback_${o}_run${e}`;n.push({executorId:o,executorName:ub(o,35),itemId:a,state:`running`,output:t[a]||``,timestamp:i,runNumber:e})}else if(s===`ExecutorCompletedEvent`){let e;for(let t=n.length-1;t>=0;t--)if(n[t].executorId===o&&n[t].state===`running`){e=n[t];break}e&&(e.state=`completed`,e.output=t[e.itemId]||``)}else if(s?.includes(`Error`)||s?.includes(`Failed`)){let e;for(let t=n.length-1;t>=0;t--)if(n[t].executorId===o&&n[t].state===`running`){e=n[t];break}e&&(e.state=`failed`,e.error=typeof a.data==`string`?a.data:`Execution failed`)}}}),n.forEach(e=>{e.state===`running`&&t[e.itemId]&&(e.output=t[e.itemId])}),{executorRuns:n,executorRunCount:r}},[e,t,S]);return(0,y.useEffect)(()=>{n&&x(e=>{let t=new Set(e);return t.add(`${n}-${A.get(n)||1}`),t})},[n,A]),(0,y.useEffect)(()=>{if(k.length>0&&r){let e=k[k.length-1],t=`${e.executorId}-${e.runNumber}`;t!==E.current&&(E.current=t,D.current&&D.current.scrollIntoView({behavior:`smooth`,block:`end`}))}},[k,r]),(0,y.useEffect)(()=>{o&&!r&&D.current&&setTimeout(()=>{D.current?.scrollIntoView({behavior:`smooth`,block:`end`})},100)},[o,r]),(0,y.useEffect)(()=>{!r&&k.length>0&&s.length===0&&setTimeout(()=>{D.current?.scrollIntoView({behavior:`smooth`,block:`end`})},100)},[r,s.length,k.length]),(0,y.useEffect)(()=>{s.length>0&&O.current&&setTimeout(()=>{O.current?.scrollIntoView({behavior:`smooth`,block:`end`}),O.current?.classList.add(`highlight-attention`),setTimeout(()=>{O.current?.classList.remove(`highlight-attention`)},1e3)},100)},[s.length]),(0,K.jsxs)(`div`,{className:`h-full flex flex-col border-l bg-muted/30`,children:[(0,K.jsxs)(`div`,{className:`p-3 border-b bg-background flex items-center justify-between flex-shrink-0`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`font-medium text-sm`,children:`Execution Timeline`}),(0,K.jsx)(Ft,{variant:`outline`,className:`text-xs`,children:k.length}),r&&(0,K.jsxs)(`div`,{className:`flex items-center gap-1 text-xs text-muted-foreground`,children:[(0,K.jsx)(`div`,{className:`h-2 w-2 animate-pulse rounded-full bg-[#643FB2] dark:bg-[#8B5CF6]`}),(0,K.jsx)(`span`,{children:`Running`})]})]}),k.length>0&&(0,K.jsx)(q,{variant:`ghost`,size:`sm`,onClick:()=>{let e=k.map(e=>`${`[${new Date(e.timestamp).toLocaleTimeString()}] ${e.executorName} (${e.state})`}\n${e.error||e.output||`(no output)`}\n`).join(` -`);navigator.clipboard.writeText(e),T(!0),setTimeout(()=>T(!1),2e3)},className:`h-7 px-2 text-xs ${w?`text-green-600 dark:text-green-400`:``}`,children:w?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(ru,{className:`w-3 h-3 mr-1`}),`Copied!`]}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(Nu,{className:`w-3 h-3 mr-1`}),`Copy All`]})})]}),(0,K.jsx)(mm,{className:`flex-1`,children:(0,K.jsxs)(`div`,{className:`p-3 space-y-2`,children:[k.length===0?(0,K.jsx)(`div`,{className:`text-center text-muted-foreground text-sm py-8`,children:r?`Workflow is running...`:`Ready to run workflow`}):(0,K.jsxs)(K.Fragment,{children:[k.map((e,t)=>{let n=`${e.executorId}-${e.runNumber}`;return(0,K.jsx)(mN,{run:e,isExpanded:b.has(n),onToggle:()=>{x(e=>{let t=new Set(e);return t.has(n)?t.delete(n):t.add(n),t})},onClick:()=>i?.(e.executorId),isSelected:a===e.executorId,isStreaming:r},`${n}-${t}`)}),s.length>0&&(0,K.jsx)(`div`,{ref:O,"data-hil-form":!0,className:`transition-all duration-300`,children:s.map(e=>(0,K.jsx)(uN,{request:e,response:c[e.request_id]||{},onResponseChange:t=>l?.(e.request_id,t),onSubmit:()=>u?.(),isSubmitting:d},e.request_id))})]}),o&&o.trim().length>0&&!r&&!_&&(0,K.jsxs)(`div`,{className:`border rounded-lg border-green-500/40 bg-green-500/5 dark:bg-green-500/10`,children:[(0,K.jsx)(`div`,{className:`p-3 bg-green-500/10 border-b border-green-500/20`,children:(0,K.jsxs)(`div`,{className:`flex items-center gap-2 mb-1`,children:[(0,K.jsx)(_u,{className:`w-4 h-4 text-green-500 dark:text-green-400`}),(0,K.jsx)(`span`,{className:`font-medium text-sm`,children:`Workflow Complete`})]})}),(0,K.jsx)(`div`,{className:`border-t px-3 py-2 bg-muted/30`,children:(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`div`,{className:`text-xs font-medium text-muted-foreground`,children:`Final Output:`}),(0,K.jsx)(`pre`,{className:`text-xs bg-background border rounded p-2 overflow-y-auto overflow-x-hidden max-h-60 whitespace-pre-wrap break-all`,children:o})]})})]}),_&&!r&&(0,K.jsx)(`div`,{className:`border rounded-lg border-orange-500/40 bg-orange-500/5 dark:bg-orange-500/10`,children:(0,K.jsxs)(`div`,{className:`px-4 py-3 flex items-center gap-2`,children:[(0,K.jsx)(Zd,{className:`w-4 h-4 text-orange-500 dark:text-orange-400 fill-current`}),(0,K.jsx)(`span`,{className:`font-medium text-sm text-orange-700 dark:text-orange-300`,children:`Execution stopped by user`})]})}),(0,K.jsx)(`div`,{ref:D})]})}),(p||m)&&s.length===0&&(0,K.jsx)(`div`,{className:`border-t p-3 bg-background flex-shrink-0`,children:f&&lb(f)?(0,K.jsx)(lv,{onSubmit:async e=>{p?.([{type:`message`,role:`user`,content:e}])},isSubmitting:g===`running`,isStreaming:g===`running`,onCancel:m,isCancelling:h,placeholder:`Message workflow...`,showFileUpload:!0,entityName:`workflow`}):(0,K.jsx)(xb,{inputSchema:f,onRun:p||(()=>{}),onCancel:m,isSubmitting:g===`running`,isCancelling:h,workflowState:g,checkpoints:v,showCheckpoints:!1})})]})}gp();function gN(e){if(`created_at`in e&&typeof e.created_at==`number`&&e.created_at)return e.created_at;let t=`response`in e?e.response:void 0;if(t&&typeof t==`object`&&`created_at`in t){let e=t.created_at;if(typeof e==`number`)return e}let n=`data`in e?e.data:void 0;if(n&&typeof n==`object`&&`timestamp`in n&&typeof n.timestamp==`string`){let e=new Date(n.timestamp).getTime();return Number.isFinite(e)?e/1e3:void 0}}function _N({selectedWorkflow:e,onDebugEvent:t}){let[n,r]=(0,y.useState)(null),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(null),[c,l]=(0,y.useState)([]),[u,d]=(0,y.useState)(!1),[f,p]=(0,y.useState)(!1),[m,h]=(0,y.useState)(null),[g,_]=(0,y.useState)(!1),[v,b]=(0,y.useState)(!1),[x,S]=(0,y.useState)(!1),[C,w]=(0,y.useState)(!1),[T,E]=(0,y.useState)(``),[D,O]=(0,y.useState)([]),{isCancelling:k,createAbortSignal:A,handleCancel:j,resetCancelling:M}=y_(),[N,P]=(0,y.useState)([]),[F,I]=(0,y.useState)({}),L=(0,y.useRef)({}),R=(0,y.useRef)(null),z=(0,y.useRef)(null),B=Q(e=>e.currentSession),ee=Q(e=>e.availableSessions),V=Q(e=>e.loadingSessions),H=Q(e=>e.setCurrentSession),te=Q(e=>e.setAvailableSessions),ne=Q(e=>e.setLoadingSessions),re=Q(e=>e.addSession),ie=Q(e=>e.removeSession),ae=Q(e=>e.addToast),oe=Q(e=>e.runtime),se=Q(e=>e.streamingEnabled),[U,ce]=(0,y.useState)(()=>{let e=localStorage.getItem(`workflowViewOptions`),t={showMinimap:!1,showGrid:!0,animateRun:!1,consolidateBidirectionalEdges:!0};if(e){let n=JSON.parse(e);return{...t,...n}}return t}),[le,ue]=(0,y.useState)(()=>localStorage.getItem(`workflowLayoutDirection`)||`TB`);(0,y.useEffect)(()=>{localStorage.setItem(`workflowViewOptions`,JSON.stringify(U))},[U]),(0,y.useEffect)(()=>{localStorage.setItem(`workflowLayoutDirection`,le)},[le]);let de=e=>{ce(t=>({...t,[e]:!t[e]}))},fe=async()=>{if(x||!e)return;S(!0);let{addToast:t,updateWorkflow:n}=await D_(()=>Promise.resolve().then(()=>(vp(),_p)).then(e=>({addToast:e.useDevUIStore.getState().addToast,updateWorkflow:e.useDevUIStore.getState().updateWorkflow})),void 0,import.meta.url);try{await R_.reloadEntity(e.id);let i=await R_.getWorkflowInfo(e.id);n(i),r(i),t({message:`${e.name} has been reloaded successfully`,type:`success`})}catch(e){t({message:`Failed to reload: ${e instanceof Error?e.message:`Failed to reload entity`}`,type:`error`,duration:6e3})}finally{S(!1)}};(0,y.useEffect)(()=>{l([]),d(!1),h(null),E(``),s(null),L.current={},R.current=null,z.current=null,(async()=>{if(e.type===`workflow`){a(!0),s(null);try{let t=await R_.getWorkflowInfo(e.id);r(t),s(null)}catch(e){r(null);let t=e instanceof Error?e.message:String(e);s(t),console.error(`Error loading workflow info:`,e)}finally{a(!1)}}})()},[e.id,e.type]);let pe=(0,y.useCallback)(async()=>{if(n){ne(!0);try{let e=await R_.listWorkflowSessions(n.id);if(e.data.length===0){let e=await R_.createWorkflowSession(n.id,{name:`Checkpoint Storage ${new Date().toLocaleString()}`});te([e]),H(e)}else{let t=[...e.data].sort((e,t)=>t.created_at-e.created_at);if(te(t),!B){let e=t[0];H(e),await he(e)}}}catch(e){console.error(`Failed to load sessions:`,e),oe!==`dotnet`&&ae({message:`Failed to load sessions`,type:`error`})}finally{ne(!1)}}},[n,B,oe,ae,te,H]);(0,y.useEffect)(()=>{pe()},[n?.id,oe]);let me=(0,y.useCallback)(async()=>{if(!B){O([]);return}try{let e=(await R_.listConversationItems(B.conversation_id,{limit:100})).data.filter(e=>typeof e==`object`&&!!e&&`type`in e&&e.type===`checkpoint`);O(e)}catch(e){console.error(`Failed to load checkpoints for session ${B.conversation_id}:`,e),O([])}},[B]);(0,y.useEffect)(()=>{v&&B&&me()},[v,B,me]);let he=(0,y.useCallback)(async e=>{e&&n&&(l([]),d(!1),p(!1),h(null),w(!1),E(``),P([]),I({}),L.current={},R.current=null,z.current=null)},[n]),ge=(0,y.useCallback)(async e=>{let t=ee.find(t=>t.conversation_id===e);t&&(H(t),await he(t))},[ee,H,he]),_e=(0,y.useCallback)(async()=>{if(n)try{let e=await R_.createWorkflowSession(n.id,{name:`Checkpoint Storage ${new Date().toLocaleString()}`});console.log(`[WorkflowView] Created new session:`,e.conversation_id),console.log(`[WorkflowView] Previous session:`,B?.conversation_id),re(e),H(e),await he(e),await new Promise(e=>setTimeout(e,100)),ae({message:`New checkpoint storage created`,type:`success`})}catch(e){console.error(`Failed to create checkpoint storage:`,e),ae({message:`Failed to create checkpoint storage`,type:`error`})}},[n,B,re,H,he,ae]),ve=(0,y.useCallback)(async()=>{if(B&&n&&confirm(`Delete this session? All checkpoints will be lost.`))try{await R_.deleteWorkflowSession(n.id,B.conversation_id),ie(B.conversation_id),ae({message:`Session deleted`,type:`success`})}catch(e){console.error(`Failed to delete session:`,e),ae({message:`Failed to delete session`,type:`error`})}},[B,n,ie,ae]),ye=e=>{h(e)},be=(0,y.useMemo)(()=>c.filter(e=>e.type===`response.output_item.added`||e.type===`response.output_item.done`||e.type===`response.created`||e.type===`response.in_progress`||e.type===`response.completed`||e.type===`response.failed`||e.type===`response.workflow_event.completed`||e.type===`response.workflow_event.complete`),[c]),xe=(0,y.useMemo)(()=>{let e=[];return be.forEach(t=>{if(t.type===`response.output_item.added`||t.type===`response.output_item.done`){let n=t.item;n&&n.type===`executor_action`&&`executor_id`in n&&n.executor_id&&e.push({executorId:String(n.executor_id),message:t.type===`response.output_item.added`?`Executor started`:n.status===`completed`?`Executor completed`:n.status===`failed`?`Executor failed`:`Executor processing`,timestamp:new Date().toISOString(),status:n.status===`completed`?`completed`:n.status===`failed`?`error`:`running`})}else if(t.type===`response.workflow_event.complete`&&`data`in t&&t.data&&typeof t.data==`object`){let n=t.data;n.executor_id!=null&&e.push({executorId:String(n.executor_id),message:String(n.event_type||`Processing`),timestamp:String(n.timestamp||new Date().toISOString()),status:String(n.event_type||``).includes(`Completed`)?`completed`:String(n.event_type||``).includes(`Error`)?`error`:`running`})}}),e},[be]),Se=(0,y.useMemo)(()=>u?xe.filter(e=>e.status===`running`).slice(-2).map(e=>e.executorId):[],[xe,u]),Ce=(0,y.useCallback)(async(n,r)=>{if(!e||e.type!==`workflow`)return;d(!0),p(!1),l([]),E(``),L.current={},R.current=null,z.current=null,P([]),I({}),t(`clear`);let i=A();try{console.log(`[WorkflowView] Running workflow with:`),console.log(` - Current session ID:`,B?.conversation_id),console.log(` - Input data:`,n);let a={input_data:n,conversation_id:B?.conversation_id||void 0,checkpoint_id:r};B?.conversation_id?R_.clearStreamingState(B.conversation_id):R_.clearStreamingState(e.id);let o=R_.streamWorkflowExecutionOpenAI(e.id,a,i);for await(let e of o){if((e.type===`response.output_item.added`||e.type===`response.output_item.done`||e.type===`response.created`||e.type===`response.in_progress`||e.type===`response.completed`||e.type===`response.failed`||e.type===`response.workflow_event.completed`||e.type===`response.workflow_event.complete`)&&l(t=>{let n=gN(e),r=Math.floor(Date.now()/1e3),i=t.length>0&&t[t.length-1]._uiTimestamp||0,a=n===void 0?Math.max(r,i+1):Math.max(n,i);return[...t,{...e,_uiTimestamp:a}]}),t(e),e.type===`response.output_item.added`){let t=e.item;if(t&&t.type===`executor_action`&&t.executor_id&&t.id&&(R.current=t.id,L.current[t.id]||(L.current[t.id]=``)),t&&t.type===`message`&&`metadata`in t&&t.metadata?.source===`magentic`&&t.id&&(R.current=t.id,L.current[t.id]||(L.current[t.id]=``)),t&&t.type===`message`&&(!(`metadata`in t)||!t.metadata?.source)&&t.metadata?.workflow_output_kind!==`intermediate`&&`content`in t&&Array.isArray(t.content))for(let e of t.content){let t=e.type===`output_text`?e.text:e.type===`refusal`?e.refusal:void 0;if(t){E(e=>e&&e.length>0?e+` + `})]}):(0,K.jsx)(`div`,{className:`flex items-center justify-center h-full bg-gray-50 dark:bg-gray-900 rounded border border-gray-200 dark:border-gray-700 ${i}`,children:(0,K.jsxs)(`div`,{className:`text-center text-gray-500 dark:text-gray-400`,children:[(0,K.jsx)(`div`,{className:`text-lg font-medium mb-2`,children:`No Workflow Data`}),(0,K.jsx)(`div`,{className:`text-sm`,children:`Workflow dump is not available.`})]})})});function lN({title:e,icon:t,children:n,className:r=``}){return(0,K.jsxs)(`div`,{className:`border rounded-lg p-4 bg-card ${r}`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2 mb-3`,children:[t,(0,K.jsx)(`h3`,{className:`text-sm font-semibold text-foreground`,children:e})]}),(0,K.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:n})]})}function uN({workflow:e,open:t,onOpenChange:n}){let r=e.source===`directory`?(0,K.jsx)(Gu,{className:`h-4 w-4 text-muted-foreground`}):e.source===`in_memory`?(0,K.jsx)(Fu,{className:`h-4 w-4 text-muted-foreground`}):(0,K.jsx)(qu,{className:`h-4 w-4 text-muted-foreground`}),i=e.source===`directory`?`Local`:e.source===`in_memory`?`In-Memory`:`Gallery`;return(0,K.jsx)(Og,{open:t,onOpenChange:n,children:(0,K.jsxs)(kg,{className:`max-w-4xl max-h-[90vh] flex flex-col`,children:[(0,K.jsxs)(Ag,{className:`px-6 pt-6 flex-shrink-0`,children:[(0,K.jsx)(jg,{children:`Workflow Details`}),(0,K.jsx)(Ng,{onClose:()=>n(!1)})]}),(0,K.jsxs)(`div`,{className:`px-6 pb-6 overflow-y-auto flex-1`,children:[(0,K.jsxs)(`div`,{className:`mb-6`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-3 mb-2`,children:[(0,K.jsx)(uf,{className:`h-6 w-6 text-primary`}),(0,K.jsx)(`h2`,{className:`text-xl font-semibold text-foreground`,children:e.name||e.id})]}),e.description&&(0,K.jsx)(`p`,{className:`text-muted-foreground`,children:e.description})]}),(0,K.jsx)(`div`,{className:`h-px bg-border mb-6`}),(0,K.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-4 mb-4`,children:[(0,K.jsx)(lN,{title:`Start Executor`,icon:(0,K.jsx)(xu,{className:`h-4 w-4 text-muted-foreground`}),children:(0,K.jsx)(`div`,{className:`font-mono text-foreground`,children:e.start_executor_id})}),(0,K.jsx)(lN,{title:`Source`,icon:r,children:(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`div`,{className:`text-foreground`,children:i}),e.module_path&&(0,K.jsx)(`div`,{className:`font-mono text-xs break-all`,children:e.module_path})]})}),(0,K.jsx)(lN,{title:`Environment`,icon:e.has_env?(0,K.jsx)(Cu,{className:`h-4 w-4 text-orange-500`}):(0,K.jsx)(_u,{className:`h-4 w-4 text-green-500`}),className:`md:col-span-2`,children:(0,K.jsx)(`div`,{className:e.has_env?`text-orange-600 dark:text-orange-400`:`text-green-600 dark:text-green-400`,children:e.has_env?`Requires environment variables`:`No environment variables required`})})]}),(0,K.jsx)(lN,{title:`Executors (${e.executors.length})`,icon:(0,K.jsx)(Cd,{className:`h-4 w-4 text-muted-foreground`}),children:e.executors.length>0?(0,K.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-2`,children:e.executors.map((e,t)=>(0,K.jsx)(`div`,{className:`font-mono text-xs text-foreground bg-muted px-2 py-1 rounded truncate`,title:e,children:e},t))}):(0,K.jsx)(`div`,{className:`text-muted-foreground`,children:`No executors configured`})})]})]})})}function dN({session:e,checkpoints:t,open:n,onOpenChange:r}){let[i,a]=(0,y.useState)(null),[o,s]=(0,y.useState)(null),[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(!0);if((0,y.useEffect)(()=>{n&&t.length>0&&(t.some(e=>e.checkpoint_id===i)||a(t[0].checkpoint_id))},[n,t]),(0,y.useEffect)(()=>{i&&e&&(async()=>{l(!0);try{let t=await R_.getConversationItem(e.conversation_id,`checkpoint_${i}`);s(t.metadata?.full_checkpoint??null)}catch(e){console.error(`Failed to load checkpoint:`,e),s(null)}finally{l(!1)}})()},[i,e]),!e)return null;let f=t.find(e=>e.checkpoint_id===i),p=o?.state?._executor_state?Object.keys(o.state._executor_state):[],m=o?.messages?Object.keys(o.messages):[],h=e=>{if(!e)return``;let t=e/1024;return t<1?`${e} B`:t<1024?`${t.toFixed(1)} KB`:`${(t/1024).toFixed(1)} MB`};return(0,K.jsx)(Og,{open:n,onOpenChange:r,children:(0,K.jsxs)(kg,{className:`w-[90vw] max-w-6xl min-w-[800px] h-[85vh] flex flex-col p-0`,children:[(0,K.jsx)(Ag,{className:`px-6 pt-6 pb-4 border-b flex-shrink-0`,children:(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsxs)(`div`,{className:`flex-1`,children:[(0,K.jsx)(jg,{children:e.metadata.name}),(0,K.jsxs)(`div`,{className:`text-sm text-muted-foreground mt-1`,children:[t.length,` checkpoint`,t.length===1?``:`s`]}),(0,K.jsx)(`div`,{className:`text-xs text-muted-foreground mt-2 max-w-2xl`,children:`This is a read only view of the current checkpoint ids in the checkpoint storage for this workflow run.`})]}),(0,K.jsx)(Ng,{onClose:()=>r(!1)})]})}),(0,K.jsxs)(`div`,{className:`flex-1 flex overflow-hidden min-h-0`,children:[(0,K.jsx)(`div`,{className:`w-80 border-r flex flex-col`,children:(0,K.jsx)(mm,{className:`flex-1`,children:(0,K.jsx)(`div`,{className:`p-4 space-y-2`,children:t.length===0?(0,K.jsx)(`div`,{className:`text-center text-sm text-muted-foreground py-8`,children:`No checkpoints yet`}):t.map((e,n)=>{let r=e.checkpoint_id===i,o=e.metadata.has_pending_hil;return(0,K.jsxs)(`div`,{className:`relative`,children:[(0,K.jsx)(`button`,{onClick:()=>a(e.checkpoint_id),className:jt(`relative w-full text-left p-3 rounded-lg border transition-colors`,r?`bg-primary/10 border-primary`:`hover:bg-muted/50 border-transparent`),children:(0,K.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,K.jsx)(`div`,{className:`flex flex-col items-center pt-1`,children:(0,K.jsx)(`div`,{className:jt(`w-2 h-2 rounded-full z-10`,o?`bg-blue-500 ring-2 ring-blue-500/20`:`bg-muted-foreground/30`)})}),(0,K.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`text-sm font-medium`,children:e.metadata.iteration_count===0?`Initial State`:`Step ${e.metadata.iteration_count}`}),(0,K.jsx)(`span`,{className:`text-[10px] font-mono text-muted-foreground/70`,title:e.checkpoint_id,children:e.checkpoint_id.slice(0,8)}),n===0&&(0,K.jsx)(Ft,{variant:`secondary`,className:`text-[10px] h-4 px-1`,children:`Latest`}),o&&(0,K.jsxs)(Ft,{variant:`secondary`,className:`text-[10px] h-4 px-1.5`,children:[e.metadata.pending_hil_count,` HIL`]})]}),(0,K.jsxs)(`div`,{className:`flex items-center gap-3 text-xs text-muted-foreground mt-1`,children:[(0,K.jsx)(`span`,{children:new Date(e.timestamp).toLocaleTimeString()}),e.metadata.size_bytes&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`span`,{children:`•`}),(0,K.jsx)(`span`,{children:h(e.metadata.size_bytes)})]})]})]})]})}),n0&&(0,K.jsxs)(`div`,{children:[(0,K.jsxs)(`div`,{className:`text-sm font-medium mb-3 flex items-center gap-2`,children:[(0,K.jsx)(Cd,{className:`h-4 w-4`}),`Active Executors (`,p.length,`)`]}),(0,K.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:p.map(e=>(0,K.jsx)(Ft,{variant:`outline`,className:`font-mono text-xs`,children:e},e))})]}),m.length>0&&o&&(0,K.jsxs)(`div`,{children:[(0,K.jsxs)(`div`,{className:`text-sm font-medium mb-3 flex items-center gap-2`,children:[(0,K.jsx)(_d,{className:`h-4 w-4`}),`Messages`]}),(0,K.jsx)(`div`,{className:`grid grid-cols-2 gap-3`,children:m.map(e=>{let t=o.messages[e]?.length;return(0,K.jsxs)(`div`,{className:`bg-muted/50 p-3 rounded-lg`,children:[(0,K.jsx)(`div`,{className:`text-xs font-mono text-muted-foreground mb-1`,children:e}),(0,K.jsxs)(`div`,{className:`font-medium`,children:[t,` message`,t===1?``:`s`]})]},e)})})]}),o?.pending_request_info_events&&Object.keys(o.pending_request_info_events).length>0&&(0,K.jsxs)(`div`,{children:[(0,K.jsxs)(`div`,{className:`text-sm font-medium mb-3 flex items-center gap-2`,children:[(0,K.jsx)(hu,{className:`h-4 w-4`}),`Pending HIL Requests (`,Object.keys(o.pending_request_info_events).length,`)`]}),(0,K.jsx)(`div`,{className:`space-y-2`,children:Object.entries(o.pending_request_info_events).map(([e,t])=>(0,K.jsxs)(`div`,{className:`bg-muted/50 border border-border p-3 rounded-lg`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,K.jsxs)(`code`,{className:`text-xs bg-background px-2 py-1 rounded`,children:[e.slice(0,24),`...`]}),(0,K.jsx)(Ft,{variant:`outline`,className:`text-xs`,children:t.source_executor_id})]}),(0,K.jsxs)(`div`,{className:`text-xs space-y-1`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`span`,{className:`text-muted-foreground`,children:`Request:`}),` `,(0,K.jsx)(`code`,{className:`bg-background px-1 py-0.5 rounded`,children:t.request_type?.split(`.`).pop()||t.request_type})]}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`span`,{className:`text-muted-foreground`,children:`Response:`}),` `,(0,K.jsx)(`code`,{className:`bg-background px-1 py-0.5 rounded`,children:t.response_type?.split(`.`).pop()||t.response_type})]})]})]},e))})]}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`div`,{className:`text-sm font-medium mb-3`,children:`Workflow State`}),o?.state&&Object.keys(o.state).filter(e=>e!==`_executor_state`).length>0?(0,K.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:Object.keys(o.state).filter(e=>e!==`_executor_state`).map(e=>(0,K.jsx)(Ft,{variant:`secondary`,className:`font-mono text-xs`,children:e},e))}):(0,K.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:`No custom state`})]}),(0,K.jsxs)(`div`,{className:`border-t pt-6`,children:[(0,K.jsxs)(`button`,{onClick:()=>d(!u),className:`flex items-center gap-2 text-sm font-medium hover:text-primary transition-colors w-full`,children:[u?(0,K.jsx)(su,{className:`h-4 w-4`}):(0,K.jsx)(du,{className:`h-4 w-4`}),`Raw JSON`]}),u&&(0,K.jsx)(`pre`,{className:`mt-3 text-[10px] font-mono bg-muted p-4 rounded overflow-x-auto`,children:JSON.stringify(o,null,2)})]})]})})})]})]})})}function fN({request:e,response:t,onResponseChange:n,onSubmit:r,isSubmitting:i}){let[a,o]=(0,y.useState)(!0),s=e=>{n(e)},c=ab(e.request_schema,t);return(0,K.jsx)(`div`,{className:`relative group`,children:(0,K.jsx)(`div`,{children:(0,K.jsx)(`div`,{className:`flex-1`,children:(0,K.jsxs)(`div`,{className:`border border-orange-200 dark:border-orange-800 bg-orange-50/50 dark:bg-orange-950/20 overflow-hidden rounded-lg`,children:[(0,K.jsxs)(`div`,{className:`px-4 py-3 bg-orange-100/50 dark:bg-orange-950/30 border-b border-orange-200 dark:border-orange-800 flex items-center justify-between cursor-pointer hover:bg-orange-100 dark:hover:bg-orange-950/40 transition-colors`,onClick:()=>o(!a),children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`font-medium text-sm text-orange-900 dark:text-orange-100`,children:`Workflow needs your input`}),(0,K.jsx)(Ft,{variant:`outline`,className:`text-xs font-mono border-orange-300 dark:border-orange-700 text-orange-700 dark:text-orange-300`,children:e.request_id.slice(0,8)}),!a&&(0,K.jsx)(`span`,{className:`text-xs text-orange-600 dark:text-orange-400 animate-pulse`,children:`Click to respond`})]}),i&&(0,K.jsx)(Ft,{variant:`secondary`,className:`animate-pulse`,children:`Submitting...`})]}),a&&(0,K.jsxs)(`div`,{className:`p-4 space-y-4`,children:[Object.keys(e.request_data).length>0&&(0,K.jsxs)(`div`,{className:`bg-white/60 dark:bg-gray-900/30 rounded-md p-3 space-y-2`,children:[(0,K.jsx)(`p`,{className:`text-xs font-medium text-muted-foreground uppercase tracking-wider`,children:`Context`}),(0,K.jsx)(`div`,{className:`max-h-48 overflow-y-auto space-y-1 pr-2`,children:Object.entries(e.request_data).filter(([e])=>![`request_id`,`source_executor_id`].includes(e)).map(([e,t])=>(0,K.jsxs)(`div`,{className:`text-sm`,children:[(0,K.jsxs)(`span`,{className:`font-medium text-muted-foreground`,children:[e,`:`]}),` `,(0,K.jsx)(`span`,{className:`text-foreground break-all`,children:typeof t==`object`?JSON.stringify(t,null,2):String(t)})]},e))})]}),e.request_schema?.description&&(0,K.jsxs)(`div`,{className:`text-sm text-muted-foreground bg-blue-50 dark:bg-blue-950/20 p-3 rounded-md border border-blue-200 dark:border-blue-800`,children:[(0,K.jsx)(`p`,{className:`font-medium text-blue-900 dark:text-blue-100 mb-1`,children:`What's needed:`}),(0,K.jsx)(`p`,{className:`text-blue-800 dark:text-blue-200`,children:e.request_schema.description})]}),(0,K.jsx)(`div`,{className:`space-y-3`,children:(0,K.jsx)(ib,{schema:e.request_schema,values:t,onChange:s})}),(0,K.jsxs)(`div`,{className:`space-y-2 pt-2`,children:[(0,K.jsxs)(q,{size:`default`,onClick:r,disabled:!c||i,className:`w-full gap-2`,children:[(0,K.jsx)(Ud,{className:`w-4 h-4`}),`Submit Response`]}),!c&&(0,K.jsx)(`div`,{className:`text-xs text-muted-foreground text-center`,children:`Please fill in all required fields`})]})]})]})})})})}function pN(e,t=!0){switch(e){case`running`:return(0,K.jsx)(ld,{className:`w-4 h-4 text-[#643FB2] dark:text-[#8B5CF6] ${t?`animate-spin`:``}`});case`completed`:return(0,K.jsx)(_u,{className:`w-4 h-4 text-green-500 dark:text-green-400`});case`failed`:return(0,K.jsx)(Cu,{className:`w-4 h-4 text-red-500 dark:text-red-400`});case`cancelled`:return(0,K.jsx)(hu,{className:`w-4 h-4 text-orange-500 dark:text-orange-400`});default:return(0,K.jsx)(`div`,{className:`w-4 h-4 rounded-full border-2 border-gray-400 dark:border-gray-500`})}}function mN(e){switch(e){case`running`:return`bg-[#643FB2]/10 text-[#643FB2] dark:bg-[#8B5CF6]/10 dark:text-[#8B5CF6] border-[#643FB2]/20 dark:border-[#8B5CF6]/20`;case`completed`:return`bg-green-500/10 text-green-600 dark:text-green-400 border-green-500/20`;case`failed`:return`bg-red-500/10 text-red-600 dark:text-red-400 border-red-500/20`;case`cancelled`:return`bg-orange-500/10 text-orange-600 dark:text-orange-400 border-orange-500/20`;default:return`bg-gray-500/10 text-gray-600 dark:text-gray-400 border-gray-500/20`}}function hN(e){return e.content?.map(e=>e.type===`output_text`?e.text:e.type===`refusal`?e.refusal:void 0).filter(e=>!!e).join(` +`)??``}function gN({run:e,isExpanded:t,onToggle:n,onClick:r,isSelected:i,isStreaming:a}){let o=new Date(e.timestamp).toLocaleTimeString(),s=e.output.trim().length>0||e.error,c=(0,y.useRef)(null);return(0,y.useEffect)(()=>{t&&e.state===`running`&&c.current&&(c.current.scrollTop=c.current.scrollHeight)},[e.output,t,e.state]),(0,K.jsxs)(`div`,{className:`border rounded-lg transition-all ${i?`border-blue-500 dark:border-blue-400 bg-blue-500/5 dark:bg-blue-500/10`:`border-border hover:border-muted-foreground/30`}`,children:[(0,K.jsxs)(`div`,{className:`p-3 cursor-pointer`,onClick:()=>{r(),s&&n()},children:[(0,K.jsxs)(`div`,{className:`grid grid-cols-[auto_auto_1fr_auto] items-center gap-2 mb-1`,children:[(0,K.jsx)(`div`,{className:`w-3 text-muted-foreground`,children:s&&(0,K.jsx)(K.Fragment,{children:t?(0,K.jsx)(su,{className:`w-3 h-3`}):(0,K.jsx)(du,{className:`w-3 h-3`})})}),(0,K.jsx)(`div`,{children:pN(e.state,a)}),(0,K.jsx)(`span`,{className:`font-medium text-sm truncate overflow-hidden`,children:e.executorName}),e.runNumber>1?(0,K.jsxs)(Ft,{variant:`outline`,className:`text-xs whitespace-nowrap`,children:[`Run #`,e.runNumber]}):(0,K.jsx)(`div`,{})]}),(0,K.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground ml-5`,children:[(0,K.jsx)(`span`,{className:`font-mono`,children:o}),(0,K.jsx)(Ft,{variant:`outline`,className:`text-xs border ${mN(e.state)}`,children:e.state})]})]}),t&&s&&(0,K.jsx)(`div`,{className:`border-t px-3 py-2 bg-muted/30`,children:e.error?(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`div`,{className:`text-xs font-medium text-red-600 dark:text-red-400`,children:`Error:`}),(0,K.jsx)(`pre`,{className:`text-xs bg-red-50 dark:bg-red-950/20 border border-red-200 dark:border-red-800 rounded p-2 overflow-y-auto overflow-x-hidden max-h-40 whitespace-pre-wrap break-all`,children:e.error})]}):(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`div`,{className:`text-xs font-medium text-muted-foreground`,children:`Output:`}),(0,K.jsx)(`pre`,{ref:c,className:`text-xs bg-background border rounded p-2 overflow-y-auto overflow-x-hidden max-h-60 whitespace-pre-wrap break-all`,children:e.output})]})})]})}function _N({events:e,itemOutputs:t,currentExecutorId:n,isStreaming:r,onExecutorClick:i,selectedExecutorId:a,workflowResult:o,pendingHilRequests:s=[],hilResponses:c={},onHilResponseChange:l,onHilSubmit:u,isSubmittingHil:d=!1,inputSchema:f,onRun:p,onCancel:m,isCancelling:h=!1,workflowState:g=`ready`,wasCancelled:_=!1,checkpoints:v=[]}){let[b,x]=(0,y.useState)(new Set),[S,C]=(0,y.useState)(0),[w,T]=(0,y.useState)(!1),E=(0,y.useRef)(null),D=(0,y.useRef)(null),O=(0,y.useRef)(null);(0,y.useEffect)(()=>{if(r){let e=setInterval(()=>{C(e=>e+1)},100);return()=>clearInterval(e)}},[r]);let{executorRuns:k,executorRunCount:A}=(0,y.useMemo)(()=>{let n=[],r=new Map;return e.forEach(e=>{let i=`_uiTimestamp`in e&&typeof e._uiTimestamp==`number`?e._uiTimestamp*1e3:Date.now();if(e.type===`response.output_item.added`){let a=e.item;if(a&&a.type===`executor_action`&&`executor_id`in a&&a.id){let e=String(a.executor_id),o=a.id,s=(r.get(e)||0)+1;r.set(e,s),n.push({executorId:e,executorName:fb(e,35),itemId:o,state:`running`,output:t[o]||``,timestamp:i,runNumber:s})}else if(a&&a.type===`message`&&`metadata`in a&&a.id){let e=a.metadata;if(e?.agent_id&&e?.source===`magentic`){let o=e.agent_id,s=a.id,c=(r.get(o)||0)+1;r.set(o,c),n.push({executorId:o,executorName:fb(o,35),itemId:s,state:`running`,output:t[s]||``,timestamp:i,runNumber:c})}else if(e?.executor_id&&e.workflow_output_kind===`intermediate`){let o=e.executor_id,s=a.id,c=(r.get(o)||0)+1;r.set(o,c),n.push({executorId:o,executorName:fb(o,35),itemId:s,state:a.status===`completed`?`completed`:`running`,output:t[s]||hN(a),timestamp:i,runNumber:c})}}}if(e.type===`response.output_item.done`){let r=e.item;if(r&&r.type===`executor_action`&&`executor_id`in r&&r.id){let e=r.id,i=n.find(t=>t.itemId===e);i&&(i.state=r.status===`completed`?`completed`:r.status===`failed`?`failed`:`completed`,i.output=t[e]||``,r.status===`failed`&&`error`in r&&r.error&&(i.error=String(r.error)))}else if(r&&r.type===`message`&&`metadata`in r&&r.id){let e=r.metadata;if(e?.agent_id&&e?.source===`magentic`){let e=r.id,i=n.find(t=>t.itemId===e);i&&(i.state=r.status===`completed`?`completed`:`failed`,i.output=t[e]||``)}else if(e?.executor_id&&e.workflow_output_kind===`intermediate`){let e=r.id,i=n.find(t=>t.itemId===e);i&&(i.state=r.status===`completed`?`completed`:`failed`,i.output=t[e]||hN(r))}}}if(e.type===`response.workflow_event.completed`&&`data`in e&&e.data){let a=e.data,o=a.executor_id;if(!o)return;let s=a.event_type;if(s===`ExecutorInvokedEvent`){let e=(r.get(o)||0)+1;r.set(o,e);let a=`fallback_${o}_run${e}`;n.push({executorId:o,executorName:fb(o,35),itemId:a,state:`running`,output:t[a]||``,timestamp:i,runNumber:e})}else if(s===`ExecutorCompletedEvent`){let e;for(let t=n.length-1;t>=0;t--)if(n[t].executorId===o&&n[t].state===`running`){e=n[t];break}e&&(e.state=`completed`,e.output=t[e.itemId]||``)}else if(s?.includes(`Error`)||s?.includes(`Failed`)){let e;for(let t=n.length-1;t>=0;t--)if(n[t].executorId===o&&n[t].state===`running`){e=n[t];break}e&&(e.state=`failed`,e.error=typeof a.data==`string`?a.data:`Execution failed`)}}}),n.forEach(e=>{e.state===`running`&&t[e.itemId]&&(e.output=t[e.itemId])}),{executorRuns:n,executorRunCount:r}},[e,t,S]);return(0,y.useEffect)(()=>{n&&x(e=>{let t=new Set(e);return t.add(`${n}-${A.get(n)||1}`),t})},[n,A]),(0,y.useEffect)(()=>{if(k.length>0&&r){let e=k[k.length-1],t=`${e.executorId}-${e.runNumber}`;t!==E.current&&(E.current=t,D.current&&D.current.scrollIntoView({behavior:`smooth`,block:`end`}))}},[k,r]),(0,y.useEffect)(()=>{o&&!r&&D.current&&setTimeout(()=>{D.current?.scrollIntoView({behavior:`smooth`,block:`end`})},100)},[o,r]),(0,y.useEffect)(()=>{!r&&k.length>0&&s.length===0&&setTimeout(()=>{D.current?.scrollIntoView({behavior:`smooth`,block:`end`})},100)},[r,s.length,k.length]),(0,y.useEffect)(()=>{s.length>0&&O.current&&setTimeout(()=>{O.current?.scrollIntoView({behavior:`smooth`,block:`end`}),O.current?.classList.add(`highlight-attention`),setTimeout(()=>{O.current?.classList.remove(`highlight-attention`)},1e3)},100)},[s.length]),(0,K.jsxs)(`div`,{className:`h-full flex flex-col border-l bg-muted/30`,children:[(0,K.jsxs)(`div`,{className:`p-3 border-b bg-background flex items-center justify-between flex-shrink-0`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`font-medium text-sm`,children:`Execution Timeline`}),(0,K.jsx)(Ft,{variant:`outline`,className:`text-xs`,children:k.length}),r&&(0,K.jsxs)(`div`,{className:`flex items-center gap-1 text-xs text-muted-foreground`,children:[(0,K.jsx)(`div`,{className:`h-2 w-2 animate-pulse rounded-full bg-[#643FB2] dark:bg-[#8B5CF6]`}),(0,K.jsx)(`span`,{children:`Running`})]})]}),k.length>0&&(0,K.jsx)(q,{variant:`ghost`,size:`sm`,onClick:()=>{let e=k.map(e=>`${`[${new Date(e.timestamp).toLocaleTimeString()}] ${e.executorName} (${e.state})`}\n${e.error||e.output||`(no output)`}\n`).join(` +`);navigator.clipboard.writeText(e),T(!0),setTimeout(()=>T(!1),2e3)},className:`h-7 px-2 text-xs ${w?`text-green-600 dark:text-green-400`:``}`,children:w?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(ru,{className:`w-3 h-3 mr-1`}),`Copied!`]}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(Nu,{className:`w-3 h-3 mr-1`}),`Copy All`]})})]}),(0,K.jsx)(mm,{className:`flex-1`,children:(0,K.jsxs)(`div`,{className:`p-3 space-y-2`,children:[k.length===0?(0,K.jsx)(`div`,{className:`text-center text-muted-foreground text-sm py-8`,children:r?`Workflow is running...`:`Ready to run workflow`}):(0,K.jsxs)(K.Fragment,{children:[k.map((e,t)=>{let n=`${e.executorId}-${e.runNumber}`;return(0,K.jsx)(gN,{run:e,isExpanded:b.has(n),onToggle:()=>{x(e=>{let t=new Set(e);return t.has(n)?t.delete(n):t.add(n),t})},onClick:()=>i?.(e.executorId),isSelected:a===e.executorId,isStreaming:r},`${n}-${t}`)}),s.length>0&&(0,K.jsx)(`div`,{ref:O,"data-hil-form":!0,className:`transition-all duration-300`,children:s.map(e=>(0,K.jsx)(fN,{request:e,response:c[e.request_id]||{},onResponseChange:t=>l?.(e.request_id,t),onSubmit:()=>u?.(),isSubmitting:d},e.request_id))})]}),o&&o.trim().length>0&&!r&&!_&&(0,K.jsxs)(`div`,{className:`border rounded-lg border-green-500/40 bg-green-500/5 dark:bg-green-500/10`,children:[(0,K.jsx)(`div`,{className:`p-3 bg-green-500/10 border-b border-green-500/20`,children:(0,K.jsxs)(`div`,{className:`flex items-center gap-2 mb-1`,children:[(0,K.jsx)(_u,{className:`w-4 h-4 text-green-500 dark:text-green-400`}),(0,K.jsx)(`span`,{className:`font-medium text-sm`,children:`Workflow Complete`})]})}),(0,K.jsx)(`div`,{className:`border-t px-3 py-2 bg-muted/30`,children:(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`div`,{className:`text-xs font-medium text-muted-foreground`,children:`Final Output:`}),(0,K.jsx)(`pre`,{className:`text-xs bg-background border rounded p-2 overflow-y-auto overflow-x-hidden max-h-60 whitespace-pre-wrap break-all`,children:o})]})})]}),_&&!r&&(0,K.jsx)(`div`,{className:`border rounded-lg border-orange-500/40 bg-orange-500/5 dark:bg-orange-500/10`,children:(0,K.jsxs)(`div`,{className:`px-4 py-3 flex items-center gap-2`,children:[(0,K.jsx)(Zd,{className:`w-4 h-4 text-orange-500 dark:text-orange-400 fill-current`}),(0,K.jsx)(`span`,{className:`font-medium text-sm text-orange-700 dark:text-orange-300`,children:`Execution stopped by user`})]})}),(0,K.jsx)(`div`,{ref:D})]})}),(p||m)&&s.length===0&&(0,K.jsx)(`div`,{className:`border-t p-3 bg-background flex-shrink-0`,children:f&&db(f)?(0,K.jsx)(lv,{onSubmit:async e=>{p?.([{type:`message`,role:`user`,content:e}])},isSubmitting:g===`running`,isStreaming:g===`running`,onCancel:m,isCancelling:h,placeholder:`Message workflow...`,showFileUpload:!0,entityName:`workflow`}):(0,K.jsx)(Cb,{inputSchema:f,onRun:p||(()=>{}),onCancel:m,isSubmitting:g===`running`,isCancelling:h,workflowState:g,checkpoints:v,showCheckpoints:!1})})]})}gp();function vN(e){if(`created_at`in e&&typeof e.created_at==`number`&&e.created_at)return e.created_at;let t=`response`in e?e.response:void 0;if(t&&typeof t==`object`&&`created_at`in t){let e=t.created_at;if(typeof e==`number`)return e}let n=`data`in e?e.data:void 0;if(n&&typeof n==`object`&&`timestamp`in n&&typeof n.timestamp==`string`){let e=new Date(n.timestamp).getTime();return Number.isFinite(e)?e/1e3:void 0}}function yN({selectedWorkflow:e,onDebugEvent:t}){let[n,r]=(0,y.useState)(null),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(null),[c,l]=(0,y.useState)([]),[u,d]=(0,y.useState)(!1),[f,p]=(0,y.useState)(!1),[m,h]=(0,y.useState)(null),[g,_]=(0,y.useState)(!1),[v,b]=(0,y.useState)(!1),[x,S]=(0,y.useState)(!1),[C,w]=(0,y.useState)(!1),[T,E]=(0,y.useState)(``),[D,O]=(0,y.useState)([]),{isCancelling:k,createAbortSignal:A,handleCancel:j,resetCancelling:M}=y_(),[N,P]=(0,y.useState)([]),[F,I]=(0,y.useState)({}),L=(0,y.useRef)({}),R=(0,y.useRef)(null),z=(0,y.useRef)(null),B=Q(e=>e.currentSession),ee=Q(e=>e.availableSessions),V=Q(e=>e.loadingSessions),H=Q(e=>e.setCurrentSession),te=Q(e=>e.setAvailableSessions),ne=Q(e=>e.setLoadingSessions),re=Q(e=>e.addSession),ie=Q(e=>e.removeSession),ae=Q(e=>e.addToast),oe=Q(e=>e.runtime),se=Q(e=>e.streamingEnabled),[U,ce]=(0,y.useState)(()=>{let e=localStorage.getItem(`workflowViewOptions`),t={showMinimap:!1,showGrid:!0,animateRun:!1,consolidateBidirectionalEdges:!0};if(e){let n=JSON.parse(e);return{...t,...n}}return t}),[le,ue]=(0,y.useState)(()=>localStorage.getItem(`workflowLayoutDirection`)||`TB`);(0,y.useEffect)(()=>{localStorage.setItem(`workflowViewOptions`,JSON.stringify(U))},[U]),(0,y.useEffect)(()=>{localStorage.setItem(`workflowLayoutDirection`,le)},[le]);let de=e=>{ce(t=>({...t,[e]:!t[e]}))},fe=async()=>{if(x||!e)return;S(!0);let{addToast:t,updateWorkflow:n}=await D_(()=>Promise.resolve().then(()=>(vp(),_p)).then(e=>({addToast:e.useDevUIStore.getState().addToast,updateWorkflow:e.useDevUIStore.getState().updateWorkflow})),void 0,import.meta.url);try{await R_.reloadEntity(e.id);let i=await R_.getWorkflowInfo(e.id);n(i),r(i),t({message:`${e.name} has been reloaded successfully`,type:`success`})}catch(e){t({message:`Failed to reload: ${e instanceof Error?e.message:`Failed to reload entity`}`,type:`error`,duration:6e3})}finally{S(!1)}};(0,y.useEffect)(()=>{l([]),d(!1),h(null),E(``),s(null),L.current={},R.current=null,z.current=null,(async()=>{if(e.type===`workflow`){a(!0),s(null);try{let t=await R_.getWorkflowInfo(e.id);r(t),s(null)}catch(e){r(null);let t=e instanceof Error?e.message:String(e);s(t),console.error(`Error loading workflow info:`,e)}finally{a(!1)}}})()},[e.id,e.type]);let pe=(0,y.useCallback)(async()=>{if(n){ne(!0);try{let e=await R_.listWorkflowSessions(n.id);if(e.data.length===0){let e=await R_.createWorkflowSession(n.id,{name:`Checkpoint Storage ${new Date().toLocaleString()}`});te([e]),H(e)}else{let t=[...e.data].sort((e,t)=>t.created_at-e.created_at);if(te(t),!B){let e=t[0];H(e),await he(e)}}}catch(e){console.error(`Failed to load sessions:`,e),oe!==`dotnet`&&ae({message:`Failed to load sessions`,type:`error`})}finally{ne(!1)}}},[n,B,oe,ae,te,H]);(0,y.useEffect)(()=>{pe()},[n?.id,oe]);let me=(0,y.useCallback)(async()=>{if(!B){O([]);return}try{let e=(await R_.listConversationItems(B.conversation_id,{limit:100})).data.filter(e=>typeof e==`object`&&!!e&&`type`in e&&e.type===`checkpoint`);O(e)}catch(e){console.error(`Failed to load checkpoints for session ${B.conversation_id}:`,e),O([])}},[B]);(0,y.useEffect)(()=>{v&&B&&me()},[v,B,me]);let he=(0,y.useCallback)(async e=>{e&&n&&(l([]),d(!1),p(!1),h(null),w(!1),E(``),P([]),I({}),L.current={},R.current=null,z.current=null)},[n]),ge=(0,y.useCallback)(async e=>{let t=ee.find(t=>t.conversation_id===e);t&&(H(t),await he(t))},[ee,H,he]),_e=(0,y.useCallback)(async()=>{if(n)try{let e=await R_.createWorkflowSession(n.id,{name:`Checkpoint Storage ${new Date().toLocaleString()}`});console.log(`[WorkflowView] Created new session:`,e.conversation_id),console.log(`[WorkflowView] Previous session:`,B?.conversation_id),re(e),H(e),await he(e),await new Promise(e=>setTimeout(e,100)),ae({message:`New checkpoint storage created`,type:`success`})}catch(e){console.error(`Failed to create checkpoint storage:`,e),ae({message:`Failed to create checkpoint storage`,type:`error`})}},[n,B,re,H,he,ae]),ve=(0,y.useCallback)(async()=>{if(B&&n&&confirm(`Delete this session? All checkpoints will be lost.`))try{await R_.deleteWorkflowSession(n.id,B.conversation_id),ie(B.conversation_id),ae({message:`Session deleted`,type:`success`})}catch(e){console.error(`Failed to delete session:`,e),ae({message:`Failed to delete session`,type:`error`})}},[B,n,ie,ae]),ye=e=>{h(e)},be=(0,y.useMemo)(()=>c.filter(e=>e.type===`response.output_item.added`||e.type===`response.output_item.done`||e.type===`response.created`||e.type===`response.in_progress`||e.type===`response.completed`||e.type===`response.failed`||e.type===`response.workflow_event.completed`||e.type===`response.workflow_event.complete`),[c]),xe=(0,y.useMemo)(()=>{let e=[];return be.forEach(t=>{if(t.type===`response.output_item.added`||t.type===`response.output_item.done`){let n=t.item;n&&n.type===`executor_action`&&`executor_id`in n&&n.executor_id&&e.push({executorId:String(n.executor_id),message:t.type===`response.output_item.added`?`Executor started`:n.status===`completed`?`Executor completed`:n.status===`failed`?`Executor failed`:`Executor processing`,timestamp:new Date().toISOString(),status:n.status===`completed`?`completed`:n.status===`failed`?`error`:`running`})}else if(t.type===`response.workflow_event.complete`&&`data`in t&&t.data&&typeof t.data==`object`){let n=t.data;n.executor_id!=null&&e.push({executorId:String(n.executor_id),message:String(n.event_type||`Processing`),timestamp:String(n.timestamp||new Date().toISOString()),status:String(n.event_type||``).includes(`Completed`)?`completed`:String(n.event_type||``).includes(`Error`)?`error`:`running`})}}),e},[be]),Se=(0,y.useMemo)(()=>u?xe.filter(e=>e.status===`running`).slice(-2).map(e=>e.executorId):[],[xe,u]),Ce=(0,y.useCallback)(async(n,r)=>{if(!e||e.type!==`workflow`)return;d(!0),p(!1),l([]),E(``),L.current={},R.current=null,z.current=null,P([]),I({}),t(`clear`);let i=A();try{console.log(`[WorkflowView] Running workflow with:`),console.log(` - Current session ID:`,B?.conversation_id),console.log(` - Input data:`,n);let a={input_data:n,conversation_id:B?.conversation_id||void 0,checkpoint_id:r};B?.conversation_id?R_.clearStreamingState(B.conversation_id):R_.clearStreamingState(e.id);let o=R_.streamWorkflowExecutionOpenAI(e.id,a,i);for await(let e of o){if((e.type===`response.output_item.added`||e.type===`response.output_item.done`||e.type===`response.created`||e.type===`response.in_progress`||e.type===`response.completed`||e.type===`response.failed`||e.type===`response.workflow_event.completed`||e.type===`response.workflow_event.complete`)&&l(t=>{let n=vN(e),r=Math.floor(Date.now()/1e3),i=t.length>0&&t[t.length-1]._uiTimestamp||0,a=n===void 0?Math.max(r,i+1):Math.max(n,i);return[...t,{...e,_uiTimestamp:a}]}),t(e),e.type===`response.output_item.added`){let t=e.item;if(t&&t.type===`executor_action`&&t.executor_id&&t.id&&(R.current=t.id,L.current[t.id]||(L.current[t.id]=``)),t&&t.type===`message`&&`metadata`in t&&t.metadata?.source===`magentic`&&t.id&&(R.current=t.id,L.current[t.id]||(L.current[t.id]=``)),t&&t.type===`message`&&(!(`metadata`in t)||!t.metadata?.source)&&t.metadata?.workflow_output_kind!==`intermediate`&&`content`in t&&Array.isArray(t.content))for(let e of t.content){let t=e.type===`output_text`?e.text:e.type===`refusal`?e.refusal:void 0;if(t){E(e=>e&&e.length>0?e+` `+t:t);try{let n=e.type===`output_text`?JSON.parse(t):void 0;typeof n==`object`&&n&&(z.current=n)}catch{}}}}if(e.type,e.type,e.type===`response.workflow_event.completed`&&`data`in e&&e.data){let t=e.data;if(t.event_type===`ExecutorInvokedEvent`&&t.executor_id){let e=`fallback_${t.executor_id}_${Date.now()}`;R.current=e,L.current[e]||(L.current[e]=``)}(t.event_type===`WorkflowCompletedEvent`||t.event_type===`WorkflowOutputEvent`)&&t.data&&(typeof t.data==`object`&&(z.current=t.data),R.current=null)}if((e.type===`response.output_text.delta`||e.type===`response.refusal.delta`)&&`delta`in e&&e.delta){let t=e.item_id||R.current;t&&(L.current[t]||(L.current[t]=``),L.current[t]+=e.delta)}if(e.type===`response.request_info.requested`){let t=e;P(e=>[...e,{request_id:t.request_id,request_data:t.request_data,request_schema:t.request_schema}]);let n=t.request_schema,r={};n.properties&&Object.entries(n.properties).forEach(([e,t])=>{let n=t;n.enum&&n.enum.length>0?r[e]=n.enum[0]:n.default!==void 0&&(r[e]=n.default)}),I(e=>({...e,[t.request_id]:r}))}if(e.type===`error`)break}d(!1)}catch(e){b_(e)?(console.log(`Workflow execution cancelled by user`),p(!0),P([]),I({})):console.error(`Workflow execution error:`,e),d(!1),M()}},[e,t,B,A,M]),we=(0,y.useCallback)(async(n,r)=>{if(e&&e.type===`workflow`){d(!1),p(!1),l([]),E(``),L.current={},R.current=null,z.current=null,P([]),I({}),t(`clear`);try{let i=await R_.runWorkflowSync(e.id,{input_data:n,conversation_id:B?.conversation_id||void 0,checkpoint_id:r});if(i.output){for(let e of i.output)if(e.type===`message`&&`content`in e&&Array.isArray(e.content))for(let t of e.content){let e=t.type===`output_text`?t.text:t.type===`refusal`?t.refusal:void 0;if(e){E(t=>t&&t.length>0?t+` -`+e:e);try{let n=t.type===`output_text`?JSON.parse(e):void 0;typeof n==`object`&&n&&(z.current=n)}catch{}}}}let a={type:`response.completed`,response:i,sequence_number:0};l([a]),t(a),await me()}catch(e){console.error(`Workflow execution error:`,e);let n={type:`response.failed`,response:{error:{message:e instanceof Error?e.message:`Workflow execution failed`}},sequence_number:0};l([n]),t(n)}}},[e,B,t,me]),Te=(0,y.useCallback)(async(e,t)=>{se?await Ce(e,t):await we(e,t)},[se,Ce,we]),Ee=(0,y.useCallback)(()=>{for(let e of N){let t=F[e.request_id]||{};if(!rb(e.request_schema,t))return!1}return!0},[N,F]),De=(0,y.useCallback)(async()=>{if(!e||e.type!==`workflow`)return;if(!Ee()){console.warn(`Cannot submit: Not all HIL forms are valid`);return}d(!0),P([]),I({});let n=A();try{let r={input_data:[{type:`message`,content:[{type:`workflow_hil_response`,responses:F}]}],conversation_id:B?.conversation_id||void 0},i=R_.streamWorkflowExecutionOpenAI(e.id,r,n),a=!1,o=[];for await(let e of i){if((e.type===`response.output_item.added`||e.type===`response.output_item.done`||e.type===`response.created`||e.type===`response.in_progress`||e.type===`response.completed`||e.type===`response.failed`||e.type===`response.workflow_event.completed`)&&l(t=>{let n=gN(e),r=Math.floor(Date.now()/1e3),i=t.length>0&&t[t.length-1]._uiTimestamp||0,a=n===void 0?Math.max(r,i+1):Math.max(n,i);return[...t,{...e,_uiTimestamp:a}]}),t(e),e.type===`response.request_info.requested`){let t=e;a=!0;let n={request_id:t.request_id,request_data:t.request_data,request_schema:t.request_schema};o.push(n);let r=t.request_schema,i={};r.properties&&Object.entries(r.properties).forEach(([e,t])=>{let n=t;n.enum&&n.enum.length>0?i[e]=n.enum[0]:n.default!==void 0&&(i[e]=n.default)}),I(e=>({...e,[t.request_id]:i}))}if(e.type===`response.output_item.added`){let t=e.item;if(t&&t.type===`executor_action`&&t.executor_id&&t.id&&(R.current=t.id,L.current[t.id]||(L.current[t.id]=``)),t&&t.type===`message`&&`content`in t&&Array.isArray(t.content)&&t.metadata?.workflow_output_kind!==`intermediate`)for(let e of t.content){let t=e.type===`output_text`?e.text:e.type===`refusal`?e.refusal:void 0;if(t){E(e=>e&&e.length>0?e+` +`+e:e);try{let n=t.type===`output_text`?JSON.parse(e):void 0;typeof n==`object`&&n&&(z.current=n)}catch{}}}}let a={type:`response.completed`,response:i,sequence_number:0};l([a]),t(a),await me()}catch(e){console.error(`Workflow execution error:`,e);let n={type:`response.failed`,response:{error:{message:e instanceof Error?e.message:`Workflow execution failed`}},sequence_number:0};l([n]),t(n)}}},[e,B,t,me]),Te=(0,y.useCallback)(async(e,t)=>{se?await Ce(e,t):await we(e,t)},[se,Ce,we]),Ee=(0,y.useCallback)(()=>{for(let e of N){let t=F[e.request_id]||{};if(!ab(e.request_schema,t))return!1}return!0},[N,F]),De=(0,y.useCallback)(async()=>{if(!e||e.type!==`workflow`)return;if(!Ee()){console.warn(`Cannot submit: Not all HIL forms are valid`);return}d(!0),P([]),I({});let n=A();try{let r={input_data:[{type:`message`,content:[{type:`workflow_hil_response`,responses:F}]}],conversation_id:B?.conversation_id||void 0},i=R_.streamWorkflowExecutionOpenAI(e.id,r,n),a=!1,o=[];for await(let e of i){if((e.type===`response.output_item.added`||e.type===`response.output_item.done`||e.type===`response.created`||e.type===`response.in_progress`||e.type===`response.completed`||e.type===`response.failed`||e.type===`response.workflow_event.completed`)&&l(t=>{let n=vN(e),r=Math.floor(Date.now()/1e3),i=t.length>0&&t[t.length-1]._uiTimestamp||0,a=n===void 0?Math.max(r,i+1):Math.max(n,i);return[...t,{...e,_uiTimestamp:a}]}),t(e),e.type===`response.request_info.requested`){let t=e;a=!0;let n={request_id:t.request_id,request_data:t.request_data,request_schema:t.request_schema};o.push(n);let r=t.request_schema,i={};r.properties&&Object.entries(r.properties).forEach(([e,t])=>{let n=t;n.enum&&n.enum.length>0?i[e]=n.enum[0]:n.default!==void 0&&(i[e]=n.default)}),I(e=>({...e,[t.request_id]:i}))}if(e.type===`response.output_item.added`){let t=e.item;if(t&&t.type===`executor_action`&&t.executor_id&&t.id&&(R.current=t.id,L.current[t.id]||(L.current[t.id]=``)),t&&t.type===`message`&&`content`in t&&Array.isArray(t.content)&&t.metadata?.workflow_output_kind!==`intermediate`)for(let e of t.content){let t=e.type===`output_text`?e.text:e.type===`refusal`?e.refusal:void 0;if(t){E(e=>e&&e.length>0?e+` -`+t:t);try{let n=e.type===`output_text`?JSON.parse(t):void 0;typeof n==`object`&&n&&(z.current=n)}catch{}}}}if((e.type===`response.output_text.delta`||e.type===`response.refusal.delta`)&&`delta`in e&&e.delta){let t=R.current;t&&(L.current[t]||(L.current[t]=``),L.current[t]+=e.delta)}e.type===`response.completed`&&await me(),e.type===`response.failed`&&await me()}a&&P(o),d(!1),await me()}catch(e){b_(e)?(console.log(`HIL submission cancelled by user`),p(!0)):console.error(`HIL submission error:`,e),d(!1),M(),await me()}},[e,F,t,B,Ee,A,M,me]);return i?(0,K.jsx)(Yy,{message:`Loading workflow...`,description:`Fetching workflow structure and configuration`}):o?(0,K.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,K.jsxs)(`div`,{className:`text-center max-w-md p-6`,children:[(0,K.jsx)(`div`,{className:`text-red-500 mb-4`,children:(0,K.jsx)(`svg`,{className:`w-16 h-16 mx-auto`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,children:(0,K.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z`})})}),(0,K.jsx)(`h3`,{className:`text-lg font-semibold mb-2`,children:`Failed to Load Workflow`}),(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground mb-4`,children:o}),(0,K.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`This may not be a valid workflow entity. Check the file contains a workflow export.`})]})}):!n?.workflow_dump&&!xe.length?(0,K.jsx)(Yy,{message:`Initializing workflow...`,description:`Setting up workflow execution environment`}):(0,K.jsxs)(`div`,{className:`workflow-view flex flex-col h-full`,children:[(0,K.jsxs)(`div`,{className:`border-b pb-2 p-4 flex-shrink-0`,children:[(0,K.jsxs)(`div`,{className:`flex flex-col lg:flex-row lg:items-center lg:justify-between gap-3 mb-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,K.jsx)(`h2`,{className:`font-semibold text-sm truncate`,children:(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(uf,{className:`h-4 w-4 flex-shrink-0`}),(0,K.jsx)(`span`,{className:`truncate`,children:e.name||e.id})]})}),(0,K.jsx)(q,{variant:`ghost`,size:`sm`,onClick:()=>_(!0),className:`h-6 w-6 p-0 flex-shrink-0`,title:`View workflow details`,children:(0,K.jsx)(td,{className:`h-4 w-4`})}),e.source!==`in_memory`&&(0,K.jsx)(q,{variant:`ghost`,size:`sm`,onClick:fe,disabled:x,className:`h-6 w-6 p-0 flex-shrink-0`,title:x?`Reloading...`:`Reload entity code (hot reload)`,children:(0,K.jsx)(Nd,{className:`h-4 w-4 ${x?`animate-spin`:``}`})})]}),n&&(0,K.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-stretch sm:items-center gap-2 flex-shrink-0`,children:[(0,K.jsxs)(Ny,{value:B?.conversation_id||``,onValueChange:ge,disabled:V,children:[(0,K.jsx)(Fy,{className:`w-full sm:w-64`,children:(0,K.jsx)(Py,{placeholder:V?`Loading...`:ee.length===0?`No checkpoint storages`:`Select checkpoint storage`,children:B&&(0,K.jsxs)(`div`,{className:`flex items-center gap-2 text-xs`,children:[(0,K.jsx)(`span`,{className:`truncate`,children:B.metadata.name||`Checkpoint Storage ${B.conversation_id.slice(-8)}`}),B.metadata.checkpoint_summary&&B.metadata.checkpoint_summary.count>0&&(0,K.jsxs)(`div`,{className:`flex items-center gap-1 flex-shrink-0`,children:[(0,K.jsx)(Ft,{variant:`secondary`,className:`h-4 px-1.5 text-[10px]`,children:B.metadata.checkpoint_summary.count}),B.metadata.checkpoint_summary.has_pending_hil&&(0,K.jsx)(Ft,{variant:`secondary`,className:`h-4 px-1.5 text-[10px]`,children:`HIL`})]})]})})}),(0,K.jsx)(Iy,{children:ee.map(e=>(0,K.jsx)(Ly,{value:e.conversation_id,children:(0,K.jsxs)(`div`,{className:`flex items-center justify-between w-full gap-2`,children:[(0,K.jsx)(`span`,{className:`truncate`,children:e.metadata.name||`Checkpoint Storage ${e.conversation_id.slice(-8)}`}),(0,K.jsxs)(`div`,{className:`flex items-center gap-1 flex-shrink-0`,children:[e.created_at&&(0,K.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:new Date(e.created_at*1e3).toLocaleTimeString()}),e.metadata.checkpoint_summary&&e.metadata.checkpoint_summary.count>0&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(Ft,{variant:`secondary`,className:`h-4 px-1.5 text-[10px]`,children:e.metadata.checkpoint_summary.count}),e.metadata.checkpoint_summary.has_pending_hil&&(0,K.jsx)(Ft,{variant:`secondary`,className:`h-4 px-1.5 text-[10px]`,children:`HIL`})]})]})]})},e.conversation_id))})]}),(0,K.jsx)(q,{variant:`ghost`,size:`sm`,onClick:()=>b(!0),disabled:!B,className:`h-9 w-9 p-0 flex-shrink-0`,title:`View checkpoint details`,children:(0,K.jsx)(td,{className:`h-4 w-4`})}),(0,K.jsx)(q,{variant:`ghost`,size:`sm`,onClick:ve,disabled:!B||V,className:`h-9 w-9 p-0`,title:`Delete current session`,children:(0,K.jsx)(tf,{className:`h-4 w-4 `})}),(0,K.jsx)(q,{variant:`ghost`,size:`sm`,onClick:_e,disabled:V,className:`h-9 px-3`,title:`New session`,children:(0,K.jsx)(jd,{className:`h-4 w-4`})}),C&&(0,K.jsx)(xb,{inputSchema:n.input_schema,onRun:Te,onCancel:j,isSubmitting:u,isCancelling:k,workflowState:u?`running`:xe.length>0?`completed`:`ready`,checkpoints:D,showCheckpoints:!1})]})]}),e.description&&(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e.description})]}),N.length>0&&(0,K.jsx)(`div`,{className:`bg-orange-100 dark:bg-orange-950/30 border-b border-orange-300 dark:border-orange-800 px-4 py-2`,children:(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(hu,{className:`w-4 h-4 text-orange-600 dark:text-orange-400`}),(0,K.jsxs)(`span`,{className:`text-sm font-medium text-orange-900 dark:text-orange-100`,children:[`Workflow is waiting for your input (`,N.length,` `,`request`,N.length>1?`s`:``,`)`]})]}),(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[N.length>1&&(0,K.jsxs)(q,{size:`sm`,onClick:De,disabled:!Ee()||u,className:`gap-1`,children:[(0,K.jsx)(Ud,{className:`w-3.5 h-3.5`}),`Submit All`]}),(0,K.jsx)(q,{size:`sm`,variant:`ghost`,onClick:()=>{document.querySelector(`[data-hil-form]`)?.scrollIntoView({behavior:`smooth`,block:`center`})},className:`text-orange-700 hover:text-orange-900 dark:text-orange-400 dark:hover:text-orange-200`,children:`Jump to input →`})]})]})}),(0,K.jsxs)(`div`,{className:`flex-1 min-h-0 flex gap-0`,children:[(0,K.jsx)(`div`,{className:`flex-1 min-w-0 transition-all duration-300`,children:n?.workflow_dump&&(0,K.jsx)(oN,{workflowDump:n.workflow_dump,events:be,isStreaming:u,onNodeSelect:ye,className:`h-full`,viewOptions:U,onToggleViewOption:de,layoutDirection:le,onLayoutDirectionChange:ue,timelineVisible:!0})}),(0,K.jsx)(`div`,{className:`flex-shrink-0 overflow-hidden transition-all duration-300 ease-out border-l`,style:{width:C?`2.5rem`:`28rem`},children:C?(0,K.jsxs)(`div`,{className:`h-full w-10 bg-background flex flex-col items-center py-2 cursor-pointer hover:bg-accent/50 transition-colors`,onClick:()=>w(!1),title:`Expand timeline`,children:[(0,K.jsx)(`div`,{className:`h-8 w-8 flex items-center justify-center`,children:(0,K.jsx)(lu,{className:`h-4 w-4 text-muted-foreground`})}),(0,K.jsxs)(`div`,{className:`flex-1 flex flex-col items-center justify-center gap-2 pointer-events-none`,children:[(0,K.jsx)(`div`,{className:`text-xs text-muted-foreground select-none`,style:{writingMode:`vertical-rl`,transform:`rotate(180deg)`},children:`Execution Timeline`}),be.length>0&&(0,K.jsx)(`div`,{className:`bg-primary text-primary-foreground rounded-full w-5 h-5 flex items-center justify-center ${u?`animate-pulse`:``}`,style:{fontSize:`10px`},children:be.length})]})]}):(0,K.jsxs)(`div`,{className:`w-[28rem] h-full flex flex-col`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between p-2 border-b`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`h3`,{className:`text-sm font-medium`,children:`Execution Timeline`}),be.length>0&&(0,K.jsx)(`div`,{className:`bg-primary text-primary-foreground rounded-full px-2 h-5 flex items-center justify-center ${u?`animate-pulse`:``}`,style:{fontSize:`11px`,minWidth:`20px`},children:be.length})]}),(0,K.jsx)(q,{variant:`ghost`,size:`sm`,onClick:()=>w(!0),className:`h-8 w-8 p-0`,title:`Minimize timeline`,children:(0,K.jsx)(du,{className:`h-4 w-4`})})]}),(0,K.jsx)(`div`,{className:`flex-1 min-h-0 overflow-hidden`,children:(0,K.jsx)(hN,{events:be,itemOutputs:L.current,currentExecutorId:Se[Se.length-1]||null,isStreaming:u,onExecutorClick:ye,selectedExecutorId:m,workflowResult:T,pendingHilRequests:N,hilResponses:F,onHilResponseChange:(e,t)=>{I(n=>({...n,[e]:t}))},onHilSubmit:De,isSubmittingHil:u,inputSchema:n?.input_schema,onRun:(e,t)=>{Te(e,t)},onCancel:j,isCancelling:k,workflowState:u?`running`:f?`cancelled`:xe.length>0?`completed`:`ready`,wasCancelled:f,checkpoints:D})})]})})]}),(0,K.jsx)(cN,{workflow:e,open:g,onOpenChange:_}),(0,K.jsx)(lN,{session:B||null,checkpoints:D,open:v,onOpenChange:b})]})}function vN({message:e,type:t=`info`,duration:n=4e3,onClose:r}){let[i,a]=(0,y.useState)(!0);(0,y.useEffect)(()=>{let e=setTimeout(()=>{a(!1),setTimeout(r,300)},n);return()=>clearTimeout(e)},[n,r]);let o={info:`bg-primary/10 border-primary/20`,success:`bg-green-50 dark:bg-green-950 border-green-200 dark:border-green-800`,warning:`bg-orange-50 dark:bg-orange-950 border-orange-200 dark:border-orange-800`,error:`bg-red-50 dark:bg-red-950 border-red-200 dark:border-red-800`}[t],s={info:`text-primary`,success:`text-green-800 dark:text-green-200`,warning:`text-orange-800 dark:text-orange-200`,error:`text-red-800 dark:text-red-200`}[t];return(0,K.jsxs)(`div`,{className:`fixed top-4 right-4 z-50 flex items-start gap-3 p-4 rounded-lg border shadow-lg max-w-md transition-all duration-300 ${i?`opacity-100 translate-x-0`:`opacity-0 translate-x-4`} ${o}`,children:[(0,K.jsx)(`p`,{className:`text-sm flex-1 ${s}`,children:e}),(0,K.jsx)(`button`,{onClick:()=>{a(!1),setTimeout(r,300)},className:`flex-shrink-0 hover:opacity-70 transition-opacity ${s}`,children:(0,K.jsx)(mf,{className:`h-4 w-4`})})]})}function yN({toasts:e,onRemove:t}){return(0,K.jsx)(`div`,{className:`fixed top-4 right-4 z-50 flex flex-col gap-2`,children:e.map(e=>(0,K.jsx)(vN,{message:e.message,type:e.type,duration:e.duration,onClose:()=>t(e.id)},e.id))})}vp();var bN=50;function xN(){let[e,t]=(0,y.useState)(!1),[n,r]=(0,y.useState)(``),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(``),c=(0,y.useRef)(null),l=(0,y.useRef)(0),u=Q(e=>e.agents),d=Q(e=>e.workflows),f=Q(e=>e.entities),p=Q(e=>e.selectedAgent),m=Q(e=>e.azureDeploymentEnabled),h=Q(e=>e.isLoadingEntities),g=Q(e=>e.entityError),_=Q(e=>e.oaiMode),v=Q(e=>e.uiMode),b=Q(e=>e.setAgents),x=Q(e=>e.setWorkflows),S=Q(e=>e.setEntities),C=Q(e=>e.selectEntity),w=Q(e=>e.updateAgent),T=Q(e=>e.updateWorkflow),E=Q(e=>e.setIsLoadingEntities),D=Q(e=>e.setEntityError),O=Q(e=>e.showDebugPanel),k=Q(e=>e.debugPanelMinimized),A=Q(e=>e.debugPanelWidth),j=Q(e=>e.debugEvents),M=Q(e=>e.isResizing),N=Q(e=>e.setShowDebugPanel),P=Q(e=>e.setDebugPanelMinimized),F=Q(e=>e.setDebugPanelWidth),I=Q(e=>e.addDebugEvent),L=Q(e=>e.clearDebugEvents),R=Q(e=>e.setIsResizing),z=Q(e=>e.showAboutModal),B=Q(e=>e.showGallery),ee=Q(e=>e.showDeployModal),V=Q(e=>e.showEntityNotFoundToast),H=Q(e=>e.setShowAboutModal),te=Q(e=>e.setShowGallery),ne=Q(e=>e.setShowDeployModal),re=Q(e=>e.setShowEntityNotFoundToast),ie=Q(e=>e.toasts),ae=Q(e=>e.addToast),oe=Q(e=>e.removeToast);(0,y.useEffect)(()=>{(async()=>{try{let e=await R_.getMeta();if(e.auth_required&&(t(!0),!R_.getAuthToken())){D(`UNAUTHORIZED`),E(!1);return}let n={instrumentation:e.capabilities.instrumentation??e.capabilities.tracing??!1,trace_retrieval:e.capabilities.trace_retrieval??!1,openai_proxy:e.capabilities.openai_proxy,deployment:e.capabilities.deployment};Q.getState().setServerMeta({uiMode:e.ui_mode,runtime:e.runtime,capabilities:n,authRequired:e.auth_required,version:e.version});let{entities:r,agents:i,workflows:a}=await R_.getEntities();S(r),b(i),x(a);let o=new URLSearchParams(window.location.search).get(`entity_id`),s;if(o&&(s=r.find(e=>e.id===o),s||re(!0)),!s){if(s=r.length>0?r[0]:void 0,s){let e=new URL(window.location.href);e.searchParams.set(`entity_id`,s.id),window.history.replaceState({},``,e)}else{let e=new URL(window.location.href);e.searchParams.delete(`entity_id`),window.history.replaceState({},``,e)}}if(s&&(C(s),s.metadata?.lazy_loaded===!1))try{if(s.type===`agent`){let e=await R_.getAgentInfo(s.id);w(e)}else{let e=await R_.getWorkflowInfo(s.id);T(e)}}catch(e){console.error(`Failed to load full info for first entity ${s.id}:`,e);let t=e instanceof Error?e.message:String(e);ae({type:`error`,message:`Failed to load "${s.id}": ${t}`})}E(!1)}catch(e){console.error(`Failed to load agents/workflows:`,e);let n=e instanceof Error?e.message:`Failed to load data`;n===`UNAUTHORIZED`&&t(!0),D(n),E(!1)}})()},[b,x,C,w,T,E,D,re,ae,S]);let se=(0,y.useCallback)(async()=>{if(n.trim()){a(!0),s(``);try{R_.setAuthToken(n.trim()),await R_.getEntities(),window.location.reload()}catch(e){R_.clearAuthToken(),a(!1);let t=e instanceof Error?e.message:`Unknown error`;s(t===`UNAUTHORIZED`?`Invalid token. Please check and try again.`:`Failed to connect: ${t}`)}}},[n]);(0,y.useEffect)(()=>{if(_.enabled&&p?.type===`workflow`){let e=u[0];e&&C(e)}},[_.enabled,p,u,C]);let U=(0,y.useCallback)(e=>{e.preventDefault(),R(!0);let t=e.clientX,n=A,r=e=>{let r=t-e.clientX,i=Math.max(200,Math.min(window.innerWidth*.5,n+r));F(i)},i=()=>{R(!1),document.removeEventListener(`mousemove`,r),document.removeEventListener(`mouseup`,i)};document.addEventListener(`mousemove`,r),document.addEventListener(`mouseup`,i)},[A]),ce=(0,y.useCallback)(async e=>{if(C(e),e.metadata?.lazy_loaded===!1)try{if(e.type===`agent`){let t=await R_.getAgentInfo(e.id);w(t)}else{let t=await R_.getWorkflowInfo(e.id);T(t)}}catch(t){console.error(`Failed to load full info for ${e.id}:`,t);let n=t instanceof Error?t.message:String(t);ae({type:`error`,message:`Failed to load "${e.id}": ${n}`})}},[C,w,T,ae]),le=(0,y.useCallback)(()=>{let e=c.current;e&&(c.current=null,l.current=performance.now(),I(e))},[I]),ue=(0,y.useCallback)(e=>{if(e===`clear`){c.current=null,L();return}if(e.type===`response.output_text.delta`&&`delta`in e&&typeof e.delta==`string`&&e.delta.length>0){let t=c.current;t!==null&&t.item_id===e.item_id&&t.output_index===e.output_index&&t.content_index===e.content_index&&t?c.current={...t,delta:t.delta+e.delta,sequence_number:e.sequence_number??t.sequence_number}:(le(),c.current={...e}),performance.now()-l.current>=bN&&le();return}le(),I(e)},[I,L,le]);if(h)return(0,K.jsxs)(`div`,{className:`h-screen flex flex-col bg-background`,children:[(0,K.jsxs)(`header`,{className:`flex h-14 items-center gap-4 border-b px-4`,children:[(0,K.jsx)(`div`,{className:`w-64 h-9 bg-muted animate-pulse rounded-md`}),(0,K.jsxs)(`div`,{className:`flex items-center gap-2 ml-auto`,children:[(0,K.jsx)(`div`,{className:`w-8 h-8 bg-muted animate-pulse rounded-md`}),(0,K.jsx)(`div`,{className:`w-8 h-8 bg-muted animate-pulse rounded-md`})]})]}),(0,K.jsx)(`div`,{className:`flex-1 flex items-center justify-center`,children:(0,K.jsxs)(`div`,{className:`text-center`,children:[(0,K.jsx)(`div`,{className:`text-lg font-medium`,children:`Initializing DevUI...`}),(0,K.jsx)(`div`,{className:`text-sm text-muted-foreground mt-2`,children:`Loading agents and workflows from your configuration`})]})})]});if(g){let t=R_.getBaseUrl(),a=g===`UNAUTHORIZED`||e,s=`8080`;try{if(t){let e=new URL(t);s=e.port||(e.protocol===`https:`?`443`:`80`)}}catch{}return(0,K.jsxs)(`div`,{className:`h-screen flex flex-col bg-background`,children:[(0,K.jsx)(yp,{agents:[],workflows:[],entities:[],selectedItem:void 0,onSelect:()=>{},isLoading:!1,onSettingsClick:()=>H(!0)}),(0,K.jsx)(`div`,{className:`flex-1 flex items-center justify-center p-8`,children:(0,K.jsxs)(`div`,{className:`text-center space-y-6 max-w-2xl`,children:[(0,K.jsx)(`div`,{className:`flex justify-center`,children:(0,K.jsx)(`div`,{className:`rounded-full bg-muted p-4 animate-pulse`,children:a?(0,K.jsx)(dd,{className:`h-12 w-12 text-muted-foreground`}):(0,K.jsx)(Gd,{className:`h-12 w-12 text-muted-foreground`})})}),(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsx)(`h2`,{className:`text-2xl font-semibold text-foreground`,children:a?`Authentication Required`:`Can't Connect to Backend`}),(0,K.jsx)(`p`,{className:`text-muted-foreground text-base`,children:a?`This backend requires a bearer token to access.`:`No worries! Just start the DevUI backend server and you'll be good to go.`})]}),a?(0,K.jsxs)(`div`,{className:`space-y-4`,children:[(0,K.jsxs)(`div`,{className:`text-left bg-muted/50 rounded-lg p-4 space-y-3`,children:[(0,K.jsx)(`p`,{className:`text-sm font-medium text-foreground`,children:`Enter Authentication Token`}),(0,K.jsx)(Fg,{type:`password`,placeholder:`Paste token from server logs`,value:n,onChange:e=>r(e.target.value),onKeyDown:e=>{e.key===`Enter`&&!i&&se()},disabled:i,className:`font-mono text-sm`}),(0,K.jsx)(q,{onClick:se,disabled:!n.trim()||i,className:`w-full`,children:i?`Verifying...`:`Connect`}),o&&(0,K.jsx)(`p`,{className:`text-sm text-red-600 dark:text-red-400 text-center`,children:o})]}),(0,K.jsxs)(`details`,{className:`text-left group`,children:[(0,K.jsxs)(`summary`,{className:`text-sm text-muted-foreground cursor-pointer hover:text-foreground flex items-center gap-2 justify-center`,children:[(0,K.jsx)(su,{className:`h-4 w-4 transition-transform group-open:rotate-180`}),`Where do I find the token?`]}),(0,K.jsxs)(`div`,{className:`mt-3 text-left bg-muted/30 rounded-lg p-3 space-y-2`,children:[(0,K.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Look for this in your DevUI server startup logs:`}),(0,K.jsxs)(`code`,{className:`block bg-background px-2 py-1 rounded text-xs font-mono text-foreground`,children:[`🔑 DEV TOKEN (localhost only, shown once):`,(0,K.jsx)(`br`,{}),`\xA0\xA0 abc123xyz...`]})]})]})]}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`div`,{className:`space-y-3`,children:[(0,K.jsxs)(`div`,{className:`text-left bg-muted/50 rounded-lg p-4 space-y-3`,children:[(0,K.jsx)(`p`,{className:`text-sm font-medium text-foreground`,children:`Start the backend:`}),(0,K.jsxs)(`code`,{className:`block bg-background px-3 py-2 rounded border text-sm font-mono text-foreground`,children:[`devui ./agents --port `,s]}),(0,K.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Or launch programmatically with`,` `,(0,K.jsx)(`code`,{className:`text-xs`,children:`serve(entities=[agent])`})]})]}),(0,K.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Default:`,` `,(0,K.jsx)(`span`,{className:`font-mono`,children:t})]})]}),g&&(0,K.jsxs)(`details`,{className:`text-left group`,children:[(0,K.jsxs)(`summary`,{className:`text-sm text-muted-foreground cursor-pointer hover:text-foreground flex items-center gap-2`,children:[(0,K.jsx)(su,{className:`h-4 w-4 transition-transform group-open:rotate-180`}),`Error details`]}),(0,K.jsx)(`p`,{className:`mt-2 text-xs text-muted-foreground font-mono bg-muted/30 p-3 rounded border`,children:g})]}),(0,K.jsx)(q,{onClick:()=>window.location.reload(),variant:`default`,className:`mt-2`,children:`Retry Connection`})]})]})}),(0,K.jsx)(i_,{open:z,onOpenChange:H})]})}return(0,K.jsxs)(`div`,{className:`h-screen flex flex-col bg-background max-h-screen`,children:[(0,K.jsx)(yp,{agents:u,workflows:d,entities:f,selectedItem:p,onSelect:ce,onBrowseGallery:()=>te(!0),isLoading:h,onSettingsClick:()=>H(!0)}),(0,K.jsx)(`div`,{className:`flex flex-1 overflow-hidden`,children:B?(0,K.jsx)(`div`,{className:`flex-1 w-full`,children:(0,K.jsx)(nv,{variant:`route`,onClose:()=>te(!1),hasExistingEntities:u.length>0||d.length>0})}):u.length===0&&d.length===0?(0,K.jsx)(nv,{variant:`inline`}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`div`,{className:`flex-1 min-w-0`,children:p?p.type===`agent`?(0,K.jsx)(Jy,{selectedAgent:p,onDebugEvent:ue}):(0,K.jsx)(_N,{selectedWorkflow:p,onDebugEvent:ue}):(0,K.jsx)(`div`,{className:`flex-1 flex items-center justify-center text-muted-foreground`,children:`Select an agent or workflow to get started.`})}),v===`developer`&&O?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`div`,{className:`w-1 cursor-col-resize flex-shrink-0 relative group transition-colors duration-200 ease-in-out ${M?`bg-primary/40`:`bg-border hover:bg-primary/20`}`,onMouseDown:U,children:(0,K.jsx)(`div`,{className:`absolute inset-y-0 -left-2 -right-2 flex items-center justify-center`,children:(0,K.jsx)(`div`,{className:`h-12 w-1 rounded-full transition-all duration-200 ease-in-out ${M?`bg-primary shadow-lg shadow-primary/25`:`bg-primary/30 group-hover:bg-primary group-hover:shadow-md group-hover:shadow-primary/20`}`})})}),(0,K.jsx)(`div`,{className:`flex-shrink-0 flex flex-col h-[calc(100vh-3.7rem)]`,style:{width:k?`2.5rem`:`${A}px`},children:k?(0,K.jsxs)(`div`,{className:`h-full w-10 bg-background border-l flex flex-col items-center py-2 cursor-pointer hover:bg-accent/50 transition-colors`,onClick:()=>P(!1),title:`Expand debug panel`,children:[(0,K.jsx)(`div`,{className:`h-8 w-8 flex items-center justify-center`,children:(0,K.jsx)(lu,{className:`h-4 w-4 text-muted-foreground`})}),(0,K.jsxs)(`div`,{className:`flex-1 flex flex-col items-center justify-center gap-2 pointer-events-none`,children:[(0,K.jsx)(`div`,{className:`text-xs text-muted-foreground select-none`,style:{writingMode:`vertical-rl`,transform:`rotate(180deg)`},children:`Debug Panel`}),j.length>0&&(0,K.jsx)(`div`,{className:`bg-primary text-primary-foreground rounded-full w-5 h-5 flex items-center justify-center`,style:{fontSize:`10px`},children:j.length})]})]}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(Dg,{events:j,isStreaming:!1,onMinimize:()=>P(!0)}),(0,K.jsx)(`div`,{className:`border-t bg-muted/30 px-3 py-2.5 flex-shrink-0`,children:(0,K.jsxs)(q,{onClick:()=>ne(!0),className:`w-full`,variant:`outline`,size:`sm`,children:[(0,K.jsx)(Fd,{className:`h-3 w-3 mr-2 flex-shrink-0`}),(0,K.jsx)(`span`,{className:`truncate text-xs`,children:m&&p?.deployment_supported?`Deploy to Azure`:`Deployment Guide`})]})})]})})]}):v===`developer`?(0,K.jsx)(`div`,{className:`flex-shrink-0`,children:(0,K.jsx)(q,{variant:`ghost`,size:`sm`,onClick:()=>N(!0),className:`h-full w-10 rounded-none border-l`,title:`Show debug panel`,children:(0,K.jsx)(Td,{className:`h-4 w-4`})})}):null]})}),(0,K.jsx)(i_,{open:z,onOpenChange:H}),(0,K.jsx)(z_,{open:ee,onClose:()=>ne(!1),agentName:p?.name,entity:p}),V&&(0,K.jsx)(vN,{message:`Entity not found. Showing first available entity instead.`,type:`info`,onClose:()=>re(!1)}),(0,K.jsx)(yN,{toasts:ie,onRemove:oe})]})}function SN({children:e,attribute:t=`class`,defaultTheme:n=`dark`,enableSystem:r=!0,disableTransitionOnChange:i=!0,...a}){return(0,K.jsx)(Nf,{attribute:t,defaultTheme:n,enableSystem:r,disableTransitionOnChange:i,...a,children:e})}v_(),(0,b.createRoot)(document.getElementById(`root`)).render((0,K.jsx)(y.StrictMode,{children:(0,K.jsx)(SN,{attribute:`class`,defaultTheme:`dark`,enableSystem:!0,disableTransitionOnChange:!0,children:(0,K.jsx)(xN,{})})})); +`+t:t);try{let n=e.type===`output_text`?JSON.parse(t):void 0;typeof n==`object`&&n&&(z.current=n)}catch{}}}}if((e.type===`response.output_text.delta`||e.type===`response.refusal.delta`)&&`delta`in e&&e.delta){let t=R.current;t&&(L.current[t]||(L.current[t]=``),L.current[t]+=e.delta)}e.type===`response.completed`&&await me(),e.type===`response.failed`&&await me()}a&&P(o),d(!1),await me()}catch(e){b_(e)?(console.log(`HIL submission cancelled by user`),p(!0)):console.error(`HIL submission error:`,e),d(!1),M(),await me()}},[e,F,t,B,Ee,A,M,me]);return i?(0,K.jsx)(Zy,{message:`Loading workflow...`,description:`Fetching workflow structure and configuration`}):o?(0,K.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,K.jsxs)(`div`,{className:`text-center max-w-md p-6`,children:[(0,K.jsx)(`div`,{className:`text-red-500 mb-4`,children:(0,K.jsx)(`svg`,{className:`w-16 h-16 mx-auto`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,children:(0,K.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z`})})}),(0,K.jsx)(`h3`,{className:`text-lg font-semibold mb-2`,children:`Failed to Load Workflow`}),(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground mb-4`,children:o}),(0,K.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`This may not be a valid workflow entity. Check the file contains a workflow export.`})]})}):!n?.workflow_dump&&!xe.length?(0,K.jsx)(Zy,{message:`Initializing workflow...`,description:`Setting up workflow execution environment`}):(0,K.jsxs)(`div`,{className:`workflow-view flex flex-col h-full`,children:[(0,K.jsxs)(`div`,{className:`border-b pb-2 p-4 flex-shrink-0`,children:[(0,K.jsxs)(`div`,{className:`flex flex-col lg:flex-row lg:items-center lg:justify-between gap-3 mb-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,K.jsx)(`h2`,{className:`font-semibold text-sm truncate`,children:(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(uf,{className:`h-4 w-4 flex-shrink-0`}),(0,K.jsx)(`span`,{className:`truncate`,children:e.name||e.id})]})}),(0,K.jsx)(q,{variant:`ghost`,size:`sm`,onClick:()=>_(!0),className:`h-6 w-6 p-0 flex-shrink-0`,title:`View workflow details`,children:(0,K.jsx)(td,{className:`h-4 w-4`})}),e.source!==`in_memory`&&(0,K.jsx)(q,{variant:`ghost`,size:`sm`,onClick:fe,disabled:x,className:`h-6 w-6 p-0 flex-shrink-0`,title:x?`Reloading...`:`Reload entity code (hot reload)`,children:(0,K.jsx)(Nd,{className:`h-4 w-4 ${x?`animate-spin`:``}`})})]}),n&&(0,K.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-stretch sm:items-center gap-2 flex-shrink-0`,children:[(0,K.jsxs)(Fy,{value:B?.conversation_id||``,onValueChange:ge,disabled:V,children:[(0,K.jsx)(Ly,{className:`w-full sm:w-64`,children:(0,K.jsx)(Iy,{placeholder:V?`Loading...`:ee.length===0?`No checkpoint storages`:`Select checkpoint storage`,children:B&&(0,K.jsxs)(`div`,{className:`flex items-center gap-2 text-xs`,children:[(0,K.jsx)(`span`,{className:`truncate`,children:B.metadata.name||`Checkpoint Storage ${B.conversation_id.slice(-8)}`}),B.metadata.checkpoint_summary&&B.metadata.checkpoint_summary.count>0&&(0,K.jsxs)(`div`,{className:`flex items-center gap-1 flex-shrink-0`,children:[(0,K.jsx)(Ft,{variant:`secondary`,className:`h-4 px-1.5 text-[10px]`,children:B.metadata.checkpoint_summary.count}),B.metadata.checkpoint_summary.has_pending_hil&&(0,K.jsx)(Ft,{variant:`secondary`,className:`h-4 px-1.5 text-[10px]`,children:`HIL`})]})]})})}),(0,K.jsx)(Ry,{children:ee.map(e=>(0,K.jsx)(zy,{value:e.conversation_id,children:(0,K.jsxs)(`div`,{className:`flex items-center justify-between w-full gap-2`,children:[(0,K.jsx)(`span`,{className:`truncate`,children:e.metadata.name||`Checkpoint Storage ${e.conversation_id.slice(-8)}`}),(0,K.jsxs)(`div`,{className:`flex items-center gap-1 flex-shrink-0`,children:[e.created_at&&(0,K.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:new Date(e.created_at*1e3).toLocaleTimeString()}),e.metadata.checkpoint_summary&&e.metadata.checkpoint_summary.count>0&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(Ft,{variant:`secondary`,className:`h-4 px-1.5 text-[10px]`,children:e.metadata.checkpoint_summary.count}),e.metadata.checkpoint_summary.has_pending_hil&&(0,K.jsx)(Ft,{variant:`secondary`,className:`h-4 px-1.5 text-[10px]`,children:`HIL`})]})]})]})},e.conversation_id))})]}),(0,K.jsx)(q,{variant:`ghost`,size:`sm`,onClick:()=>b(!0),disabled:!B,className:`h-9 w-9 p-0 flex-shrink-0`,title:`View checkpoint details`,children:(0,K.jsx)(td,{className:`h-4 w-4`})}),(0,K.jsx)(q,{variant:`ghost`,size:`sm`,onClick:ve,disabled:!B||V,className:`h-9 w-9 p-0`,title:`Delete current session`,children:(0,K.jsx)(tf,{className:`h-4 w-4 `})}),(0,K.jsx)(q,{variant:`ghost`,size:`sm`,onClick:_e,disabled:V,className:`h-9 px-3`,title:`New session`,children:(0,K.jsx)(jd,{className:`h-4 w-4`})}),C&&(0,K.jsx)(Cb,{inputSchema:n.input_schema,onRun:Te,onCancel:j,isSubmitting:u,isCancelling:k,workflowState:u?`running`:xe.length>0?`completed`:`ready`,checkpoints:D,showCheckpoints:!1})]})]}),e.description&&(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e.description})]}),N.length>0&&(0,K.jsx)(`div`,{className:`bg-orange-100 dark:bg-orange-950/30 border-b border-orange-300 dark:border-orange-800 px-4 py-2`,children:(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(hu,{className:`w-4 h-4 text-orange-600 dark:text-orange-400`}),(0,K.jsxs)(`span`,{className:`text-sm font-medium text-orange-900 dark:text-orange-100`,children:[`Workflow is waiting for your input (`,N.length,` `,`request`,N.length>1?`s`:``,`)`]})]}),(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[N.length>1&&(0,K.jsxs)(q,{size:`sm`,onClick:De,disabled:!Ee()||u,className:`gap-1`,children:[(0,K.jsx)(Ud,{className:`w-3.5 h-3.5`}),`Submit All`]}),(0,K.jsx)(q,{size:`sm`,variant:`ghost`,onClick:()=>{document.querySelector(`[data-hil-form]`)?.scrollIntoView({behavior:`smooth`,block:`center`})},className:`text-orange-700 hover:text-orange-900 dark:text-orange-400 dark:hover:text-orange-200`,children:`Jump to input →`})]})]})}),(0,K.jsxs)(`div`,{className:`flex-1 min-h-0 flex gap-0`,children:[(0,K.jsx)(`div`,{className:`flex-1 min-w-0 transition-all duration-300`,children:n?.workflow_dump&&(0,K.jsx)(cN,{workflowDump:n.workflow_dump,events:be,isStreaming:u,onNodeSelect:ye,className:`h-full`,viewOptions:U,onToggleViewOption:de,layoutDirection:le,onLayoutDirectionChange:ue,timelineVisible:!0})}),(0,K.jsx)(`div`,{className:`flex-shrink-0 overflow-hidden transition-all duration-300 ease-out border-l`,style:{width:C?`2.5rem`:`28rem`},children:C?(0,K.jsxs)(`div`,{className:`h-full w-10 bg-background flex flex-col items-center py-2 cursor-pointer hover:bg-accent/50 transition-colors`,onClick:()=>w(!1),title:`Expand timeline`,children:[(0,K.jsx)(`div`,{className:`h-8 w-8 flex items-center justify-center`,children:(0,K.jsx)(lu,{className:`h-4 w-4 text-muted-foreground`})}),(0,K.jsxs)(`div`,{className:`flex-1 flex flex-col items-center justify-center gap-2 pointer-events-none`,children:[(0,K.jsx)(`div`,{className:`text-xs text-muted-foreground select-none`,style:{writingMode:`vertical-rl`,transform:`rotate(180deg)`},children:`Execution Timeline`}),be.length>0&&(0,K.jsx)(`div`,{className:`bg-primary text-primary-foreground rounded-full w-5 h-5 flex items-center justify-center ${u?`animate-pulse`:``}`,style:{fontSize:`10px`},children:be.length})]})]}):(0,K.jsxs)(`div`,{className:`w-[28rem] h-full flex flex-col`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between p-2 border-b`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`h3`,{className:`text-sm font-medium`,children:`Execution Timeline`}),be.length>0&&(0,K.jsx)(`div`,{className:`bg-primary text-primary-foreground rounded-full px-2 h-5 flex items-center justify-center ${u?`animate-pulse`:``}`,style:{fontSize:`11px`,minWidth:`20px`},children:be.length})]}),(0,K.jsx)(q,{variant:`ghost`,size:`sm`,onClick:()=>w(!0),className:`h-8 w-8 p-0`,title:`Minimize timeline`,children:(0,K.jsx)(du,{className:`h-4 w-4`})})]}),(0,K.jsx)(`div`,{className:`flex-1 min-h-0 overflow-hidden`,children:(0,K.jsx)(_N,{events:be,itemOutputs:L.current,currentExecutorId:Se[Se.length-1]||null,isStreaming:u,onExecutorClick:ye,selectedExecutorId:m,workflowResult:T,pendingHilRequests:N,hilResponses:F,onHilResponseChange:(e,t)=>{I(n=>({...n,[e]:t}))},onHilSubmit:De,isSubmittingHil:u,inputSchema:n?.input_schema,onRun:(e,t)=>{Te(e,t)},onCancel:j,isCancelling:k,workflowState:u?`running`:f?`cancelled`:xe.length>0?`completed`:`ready`,wasCancelled:f,checkpoints:D})})]})})]}),(0,K.jsx)(uN,{workflow:e,open:g,onOpenChange:_}),(0,K.jsx)(dN,{session:B||null,checkpoints:D,open:v,onOpenChange:b})]})}function bN({message:e,type:t=`info`,duration:n=4e3,onClose:r}){let[i,a]=(0,y.useState)(!0);(0,y.useEffect)(()=>{let e=setTimeout(()=>{a(!1),setTimeout(r,300)},n);return()=>clearTimeout(e)},[n,r]);let o={info:`bg-primary/10 border-primary/20`,success:`bg-green-50 dark:bg-green-950 border-green-200 dark:border-green-800`,warning:`bg-orange-50 dark:bg-orange-950 border-orange-200 dark:border-orange-800`,error:`bg-red-50 dark:bg-red-950 border-red-200 dark:border-red-800`}[t],s={info:`text-primary`,success:`text-green-800 dark:text-green-200`,warning:`text-orange-800 dark:text-orange-200`,error:`text-red-800 dark:text-red-200`}[t];return(0,K.jsxs)(`div`,{className:`fixed top-4 right-4 z-50 flex items-start gap-3 p-4 rounded-lg border shadow-lg max-w-md transition-all duration-300 ${i?`opacity-100 translate-x-0`:`opacity-0 translate-x-4`} ${o}`,children:[(0,K.jsx)(`p`,{className:`text-sm flex-1 ${s}`,children:e}),(0,K.jsx)(`button`,{onClick:()=>{a(!1),setTimeout(r,300)},className:`flex-shrink-0 hover:opacity-70 transition-opacity ${s}`,children:(0,K.jsx)(mf,{className:`h-4 w-4`})})]})}function xN({toasts:e,onRemove:t}){return(0,K.jsx)(`div`,{className:`fixed top-4 right-4 z-50 flex flex-col gap-2`,children:e.map(e=>(0,K.jsx)(bN,{message:e.message,type:e.type,duration:e.duration,onClose:()=>t(e.id)},e.id))})}vp();var SN=50;function CN(){let[e,t]=(0,y.useState)(!1),[n,r]=(0,y.useState)(``),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(``),c=(0,y.useRef)(null),l=(0,y.useRef)(0),u=Q(e=>e.agents),d=Q(e=>e.workflows),f=Q(e=>e.entities),p=Q(e=>e.selectedAgent),m=Q(e=>e.azureDeploymentEnabled),h=Q(e=>e.isLoadingEntities),g=Q(e=>e.entityError),_=Q(e=>e.oaiMode),v=Q(e=>e.uiMode),b=Q(e=>e.setAgents),x=Q(e=>e.setWorkflows),S=Q(e=>e.setEntities),C=Q(e=>e.selectEntity),w=Q(e=>e.updateAgent),T=Q(e=>e.updateWorkflow),E=Q(e=>e.setIsLoadingEntities),D=Q(e=>e.setEntityError),O=Q(e=>e.showDebugPanel),k=Q(e=>e.debugPanelMinimized),A=Q(e=>e.debugPanelWidth),j=Q(e=>e.debugEvents),M=Q(e=>e.isResizing),N=Q(e=>e.setShowDebugPanel),P=Q(e=>e.setDebugPanelMinimized),F=Q(e=>e.setDebugPanelWidth),I=Q(e=>e.addDebugEvent),L=Q(e=>e.clearDebugEvents),R=Q(e=>e.setIsResizing),z=Q(e=>e.showAboutModal),B=Q(e=>e.showGallery),ee=Q(e=>e.showDeployModal),V=Q(e=>e.showEntityNotFoundToast),H=Q(e=>e.setShowAboutModal),te=Q(e=>e.setShowGallery),ne=Q(e=>e.setShowDeployModal),re=Q(e=>e.setShowEntityNotFoundToast),ie=Q(e=>e.toasts),ae=Q(e=>e.addToast),oe=Q(e=>e.removeToast);(0,y.useEffect)(()=>{(async()=>{try{let e=await R_.getMeta();if(e.auth_required&&(t(!0),!R_.getAuthToken())){D(`UNAUTHORIZED`),E(!1);return}let n={instrumentation:e.capabilities.instrumentation??e.capabilities.tracing??!1,trace_retrieval:e.capabilities.trace_retrieval??!1,openai_proxy:e.capabilities.openai_proxy,deployment:e.capabilities.deployment};Q.getState().setServerMeta({uiMode:e.ui_mode,runtime:e.runtime,capabilities:n,authRequired:e.auth_required,version:e.version});let{entities:r,agents:i,workflows:a}=await R_.getEntities();S(r),b(i),x(a);let o=new URLSearchParams(window.location.search).get(`entity_id`),s;if(o&&(s=r.find(e=>e.id===o),s||re(!0)),!s){if(s=r.length>0?r[0]:void 0,s){let e=new URL(window.location.href);e.searchParams.set(`entity_id`,s.id),window.history.replaceState({},``,e)}else{let e=new URL(window.location.href);e.searchParams.delete(`entity_id`),window.history.replaceState({},``,e)}}if(s&&(C(s),s.metadata?.lazy_loaded===!1))try{if(s.type===`agent`){let e=await R_.getAgentInfo(s.id);w(e)}else{let e=await R_.getWorkflowInfo(s.id);T(e)}}catch(e){console.error(`Failed to load full info for first entity ${s.id}:`,e);let t=e instanceof Error?e.message:String(e);ae({type:`error`,message:`Failed to load "${s.id}": ${t}`})}E(!1)}catch(e){console.error(`Failed to load agents/workflows:`,e);let n=e instanceof Error?e.message:`Failed to load data`;n===`UNAUTHORIZED`&&t(!0),D(n),E(!1)}})()},[b,x,C,w,T,E,D,re,ae,S]);let se=(0,y.useCallback)(async()=>{if(n.trim()){a(!0),s(``);try{R_.setAuthToken(n.trim()),await R_.getEntities(),window.location.reload()}catch(e){R_.clearAuthToken(),a(!1);let t=e instanceof Error?e.message:`Unknown error`;s(t===`UNAUTHORIZED`?`Invalid token. Please check and try again.`:`Failed to connect: ${t}`)}}},[n]);(0,y.useEffect)(()=>{if(_.enabled&&p?.type===`workflow`){let e=u[0];e&&C(e)}},[_.enabled,p,u,C]);let U=(0,y.useCallback)(e=>{e.preventDefault(),R(!0);let t=e.clientX,n=A,r=e=>{let r=t-e.clientX,i=Math.max(200,Math.min(window.innerWidth*.5,n+r));F(i)},i=()=>{R(!1),document.removeEventListener(`mousemove`,r),document.removeEventListener(`mouseup`,i)};document.addEventListener(`mousemove`,r),document.addEventListener(`mouseup`,i)},[A]),ce=(0,y.useCallback)(async e=>{if(C(e),e.metadata?.lazy_loaded===!1)try{if(e.type===`agent`){let t=await R_.getAgentInfo(e.id);w(t)}else{let t=await R_.getWorkflowInfo(e.id);T(t)}}catch(t){console.error(`Failed to load full info for ${e.id}:`,t);let n=t instanceof Error?t.message:String(t);ae({type:`error`,message:`Failed to load "${e.id}": ${n}`})}},[C,w,T,ae]),le=(0,y.useCallback)(()=>{let e=c.current;e&&(c.current=null,l.current=performance.now(),I(e))},[I]),ue=(0,y.useCallback)(e=>{if(e===`clear`){c.current=null,L();return}if(e.type===`response.output_text.delta`&&`delta`in e&&typeof e.delta==`string`&&e.delta.length>0){let t=c.current;t!==null&&t.item_id===e.item_id&&t.output_index===e.output_index&&t.content_index===e.content_index&&t?c.current={...t,delta:t.delta+e.delta,sequence_number:e.sequence_number??t.sequence_number}:(le(),c.current={...e}),performance.now()-l.current>=SN&&le();return}le(),I(e)},[I,L,le]);if(h)return(0,K.jsxs)(`div`,{className:`h-screen flex flex-col bg-background`,children:[(0,K.jsxs)(`header`,{className:`flex h-14 items-center gap-4 border-b px-4`,children:[(0,K.jsx)(`div`,{className:`w-64 h-9 bg-muted animate-pulse rounded-md`}),(0,K.jsxs)(`div`,{className:`flex items-center gap-2 ml-auto`,children:[(0,K.jsx)(`div`,{className:`w-8 h-8 bg-muted animate-pulse rounded-md`}),(0,K.jsx)(`div`,{className:`w-8 h-8 bg-muted animate-pulse rounded-md`})]})]}),(0,K.jsx)(`div`,{className:`flex-1 flex items-center justify-center`,children:(0,K.jsxs)(`div`,{className:`text-center`,children:[(0,K.jsx)(`div`,{className:`text-lg font-medium`,children:`Initializing DevUI...`}),(0,K.jsx)(`div`,{className:`text-sm text-muted-foreground mt-2`,children:`Loading agents and workflows from your configuration`})]})})]});if(g){let t=R_.getBaseUrl(),a=g===`UNAUTHORIZED`||e,s=`8080`;try{if(t){let e=new URL(t);s=e.port||(e.protocol===`https:`?`443`:`80`)}}catch{}return(0,K.jsxs)(`div`,{className:`h-screen flex flex-col bg-background`,children:[(0,K.jsx)(yp,{agents:[],workflows:[],entities:[],selectedItem:void 0,onSelect:()=>{},isLoading:!1,onSettingsClick:()=>H(!0)}),(0,K.jsx)(`div`,{className:`flex-1 flex items-center justify-center p-8`,children:(0,K.jsxs)(`div`,{className:`text-center space-y-6 max-w-2xl`,children:[(0,K.jsx)(`div`,{className:`flex justify-center`,children:(0,K.jsx)(`div`,{className:`rounded-full bg-muted p-4 animate-pulse`,children:a?(0,K.jsx)(dd,{className:`h-12 w-12 text-muted-foreground`}):(0,K.jsx)(Gd,{className:`h-12 w-12 text-muted-foreground`})})}),(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsx)(`h2`,{className:`text-2xl font-semibold text-foreground`,children:a?`Authentication Required`:`Can't Connect to Backend`}),(0,K.jsx)(`p`,{className:`text-muted-foreground text-base`,children:a?`This backend requires a bearer token to access.`:`No worries! Just start the DevUI backend server and you'll be good to go.`})]}),a?(0,K.jsxs)(`div`,{className:`space-y-4`,children:[(0,K.jsxs)(`div`,{className:`text-left bg-muted/50 rounded-lg p-4 space-y-3`,children:[(0,K.jsx)(`p`,{className:`text-sm font-medium text-foreground`,children:`Enter Authentication Token`}),(0,K.jsx)(Fg,{type:`password`,placeholder:`Paste token from server logs`,value:n,onChange:e=>r(e.target.value),onKeyDown:e=>{e.key===`Enter`&&!i&&se()},disabled:i,className:`font-mono text-sm`}),(0,K.jsx)(q,{onClick:se,disabled:!n.trim()||i,className:`w-full`,children:i?`Verifying...`:`Connect`}),o&&(0,K.jsx)(`p`,{className:`text-sm text-red-600 dark:text-red-400 text-center`,children:o})]}),(0,K.jsxs)(`details`,{className:`text-left group`,children:[(0,K.jsxs)(`summary`,{className:`text-sm text-muted-foreground cursor-pointer hover:text-foreground flex items-center gap-2 justify-center`,children:[(0,K.jsx)(su,{className:`h-4 w-4 transition-transform group-open:rotate-180`}),`Where do I find the token?`]}),(0,K.jsxs)(`div`,{className:`mt-3 text-left bg-muted/30 rounded-lg p-3 space-y-2`,children:[(0,K.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Look for this in your DevUI server startup logs:`}),(0,K.jsxs)(`code`,{className:`block bg-background px-2 py-1 rounded text-xs font-mono text-foreground`,children:[`🔑 DEV TOKEN (localhost only, shown once):`,(0,K.jsx)(`br`,{}),`\xA0\xA0 abc123xyz...`]})]})]})]}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`div`,{className:`space-y-3`,children:[(0,K.jsxs)(`div`,{className:`text-left bg-muted/50 rounded-lg p-4 space-y-3`,children:[(0,K.jsx)(`p`,{className:`text-sm font-medium text-foreground`,children:`Start the backend:`}),(0,K.jsxs)(`code`,{className:`block bg-background px-3 py-2 rounded border text-sm font-mono text-foreground`,children:[`devui ./agents --port `,s]}),(0,K.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Or launch programmatically with`,` `,(0,K.jsx)(`code`,{className:`text-xs`,children:`serve(entities=[agent])`})]})]}),(0,K.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Default:`,` `,(0,K.jsx)(`span`,{className:`font-mono`,children:t})]})]}),g&&(0,K.jsxs)(`details`,{className:`text-left group`,children:[(0,K.jsxs)(`summary`,{className:`text-sm text-muted-foreground cursor-pointer hover:text-foreground flex items-center gap-2`,children:[(0,K.jsx)(su,{className:`h-4 w-4 transition-transform group-open:rotate-180`}),`Error details`]}),(0,K.jsx)(`p`,{className:`mt-2 text-xs text-muted-foreground font-mono bg-muted/30 p-3 rounded border`,children:g})]}),(0,K.jsx)(q,{onClick:()=>window.location.reload(),variant:`default`,className:`mt-2`,children:`Retry Connection`})]})]})}),(0,K.jsx)(i_,{open:z,onOpenChange:H})]})}return(0,K.jsxs)(`div`,{className:`h-screen flex flex-col bg-background max-h-screen`,children:[(0,K.jsx)(yp,{agents:u,workflows:d,entities:f,selectedItem:p,onSelect:ce,onBrowseGallery:()=>te(!0),isLoading:h,onSettingsClick:()=>H(!0)}),(0,K.jsx)(`div`,{className:`flex flex-1 overflow-hidden`,children:B?(0,K.jsx)(`div`,{className:`flex-1 w-full`,children:(0,K.jsx)(nv,{variant:`route`,onClose:()=>te(!1),hasExistingEntities:u.length>0||d.length>0})}):u.length===0&&d.length===0?(0,K.jsx)(nv,{variant:`inline`}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`div`,{className:`flex-1 min-w-0`,children:p?p.type===`agent`?(0,K.jsx)(Xy,{selectedAgent:p,onDebugEvent:ue}):(0,K.jsx)(yN,{selectedWorkflow:p,onDebugEvent:ue}):(0,K.jsx)(`div`,{className:`flex-1 flex items-center justify-center text-muted-foreground`,children:`Select an agent or workflow to get started.`})}),v===`developer`&&O?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`div`,{className:`w-1 cursor-col-resize flex-shrink-0 relative group transition-colors duration-200 ease-in-out ${M?`bg-primary/40`:`bg-border hover:bg-primary/20`}`,onMouseDown:U,children:(0,K.jsx)(`div`,{className:`absolute inset-y-0 -left-2 -right-2 flex items-center justify-center`,children:(0,K.jsx)(`div`,{className:`h-12 w-1 rounded-full transition-all duration-200 ease-in-out ${M?`bg-primary shadow-lg shadow-primary/25`:`bg-primary/30 group-hover:bg-primary group-hover:shadow-md group-hover:shadow-primary/20`}`})})}),(0,K.jsx)(`div`,{className:`flex-shrink-0 flex flex-col h-[calc(100vh-3.7rem)]`,style:{width:k?`2.5rem`:`${A}px`},children:k?(0,K.jsxs)(`div`,{className:`h-full w-10 bg-background border-l flex flex-col items-center py-2 cursor-pointer hover:bg-accent/50 transition-colors`,onClick:()=>P(!1),title:`Expand debug panel`,children:[(0,K.jsx)(`div`,{className:`h-8 w-8 flex items-center justify-center`,children:(0,K.jsx)(lu,{className:`h-4 w-4 text-muted-foreground`})}),(0,K.jsxs)(`div`,{className:`flex-1 flex flex-col items-center justify-center gap-2 pointer-events-none`,children:[(0,K.jsx)(`div`,{className:`text-xs text-muted-foreground select-none`,style:{writingMode:`vertical-rl`,transform:`rotate(180deg)`},children:`Debug Panel`}),j.length>0&&(0,K.jsx)(`div`,{className:`bg-primary text-primary-foreground rounded-full w-5 h-5 flex items-center justify-center`,style:{fontSize:`10px`},children:j.length})]})]}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(Dg,{events:j,isStreaming:!1,onMinimize:()=>P(!0)}),(0,K.jsx)(`div`,{className:`border-t bg-muted/30 px-3 py-2.5 flex-shrink-0`,children:(0,K.jsxs)(q,{onClick:()=>ne(!0),className:`w-full`,variant:`outline`,size:`sm`,children:[(0,K.jsx)(Fd,{className:`h-3 w-3 mr-2 flex-shrink-0`}),(0,K.jsx)(`span`,{className:`truncate text-xs`,children:m&&p?.deployment_supported?`Deploy to Azure`:`Deployment Guide`})]})})]})})]}):v===`developer`?(0,K.jsx)(`div`,{className:`flex-shrink-0`,children:(0,K.jsx)(q,{variant:`ghost`,size:`sm`,onClick:()=>N(!0),className:`h-full w-10 rounded-none border-l`,title:`Show debug panel`,children:(0,K.jsx)(Td,{className:`h-4 w-4`})})}):null]})}),(0,K.jsx)(i_,{open:z,onOpenChange:H}),(0,K.jsx)(z_,{open:ee,onClose:()=>ne(!1),agentName:p?.name,entity:p}),V&&(0,K.jsx)(bN,{message:`Entity not found. Showing first available entity instead.`,type:`info`,onClose:()=>re(!1)}),(0,K.jsx)(xN,{toasts:ie,onRemove:oe})]})}function wN({children:e,attribute:t=`class`,defaultTheme:n=`dark`,enableSystem:r=!0,disableTransitionOnChange:i=!0,...a}){return(0,K.jsx)(Nf,{attribute:t,defaultTheme:n,enableSystem:r,disableTransitionOnChange:i,...a,children:e})}v_(),(0,b.createRoot)(document.getElementById(`root`)).render((0,K.jsx)(y.StrictMode,{children:(0,K.jsx)(wN,{attribute:`class`,defaultTheme:`dark`,enableSystem:!0,disableTransitionOnChange:!0,children:(0,K.jsx)(CN,{})})})); \ No newline at end of file diff --git a/python/packages/devui/frontend/package-lock.json b/python/packages/devui/frontend/package-lock.json index 91855afe756..c1ecfd8e86e 100644 --- a/python/packages/devui/frontend/package-lock.json +++ b/python/packages/devui/frontend/package-lock.json @@ -40,6 +40,7 @@ "eslint-plugin-react-hooks": "^7.1.1", "eslint-plugin-react-refresh": "^0.5.7", "globals": "^17.13.0", + "happy-dom": "^21.0.4", "tw-animate-css": "^1.4.0", "typescript": "~5.9.3", "typescript-eslint": "^8.71.2", @@ -77,6 +78,7 @@ "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.29.7", "@babel/generator": "^7.29.7", @@ -2072,6 +2074,7 @@ "integrity": "sha512-uMzsv9stDdofIZBx4UGh4Z9ZgXnGC9seRDscilBcTHAeOFk67MZg/k9bWVfO+bk4qZmG+l52hRnLwUiH2LnJTg==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "undici-types": "~8.9.0" } @@ -2082,6 +2085,7 @@ "integrity": "sha1-Ozzo2MFif7XM1NrdV+9EXFoVO3c=", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "csstype": "^3.2.2" } @@ -2092,10 +2096,28 @@ "integrity": "sha1-kClKkmbv2SilJm8hENYNXbpQFdI=", "devOptional": true, "license": "MIT", + "peer": true, "peerDependencies": { "@types/react": "^19.3.0" } }, + "node_modules/@types/whatwg-mimetype": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/whatwg-mimetype/-/whatwg-mimetype-3.0.2.tgz", + "integrity": "sha512-c2AKvDT8ToxLIOUlN51gTiHXflsfIFisS4pO7pDPoKouJCESkhZnEy623gwP9laCy5lnLDAw1vAzu2vM2YLOrA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/ws": { + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.2.tgz", + "integrity": "sha512-67MQl+fpWKVTT1NYdnmo3U4sc/xPo/zQBncVnI74qmQa0z/b+1g6iYqNmGCPbxO+zz2aklb08a0oHfegiVd0/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "8.71.2", "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.71.2.tgz", @@ -2141,6 +2163,7 @@ "integrity": "sha512-aTtmZjp/x3gsGHkDs04/1I8kNogBJkpQaeGaN0PfiG43NzDEmW2n+OP5im9wfsvyX0yP1UZWBrAGtDBfH9jEVw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.71.2", "@typescript-eslint/types": "8.71.2", @@ -2445,6 +2468,7 @@ "integrity": "sha512-oJlA3XiRm7Cyk6qFD2Jn8ak9B7jSy0qy00ADO3+8dpT0LSjFihQYv4C02LFCSYJV3Q37xYwwRy5m+IpIiUzqWw==", "dev": true, "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -2547,6 +2571,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "baseline-browser-mapping": "^2.11.12", "caniuse-lite": "^1.0.30001809", @@ -2561,6 +2586,19 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/buffer-image-size": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/buffer-image-size/-/buffer-image-size-0.6.4.tgz", + "integrity": "sha512-nEh+kZOPY1w+gcCMobZ6ETUp9WfibndnosbpwB1iJk/8Gt5ZF2bhS6+B6bPYz424KtwsR6Rflc3tCz1/ghX2dQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + }, + "engines": { + "node": ">=4.0" + } + }, "node_modules/cacheable": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-2.5.0.tgz", @@ -2709,6 +2747,7 @@ "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", "license": "ISC", + "peer": true, "engines": { "node": ">=12" } @@ -2817,6 +2856,19 @@ "node": ">=10.13.0" } }, + "node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", @@ -2846,6 +2898,7 @@ "integrity": "sha512-npHjrHb2o4ehH3mE+YuxABR+0gyb0aVWCIolgJDArwCiHEIsonBm3ZKjel5b0U5+a+MbEvIyRCGCzD3eKKK2NA==", "dev": true, "license": "MIT", + "peer": true, "workspaces": [ "packages/*" ], @@ -3174,6 +3227,25 @@ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "license": "ISC" }, + "node_modules/happy-dom": { + "version": "21.0.4", + "resolved": "https://registry.npmjs.org/happy-dom/-/happy-dom-21.0.4.tgz", + "integrity": "sha512-tFm+GaLBgo6o0awHnvHaNoraVo27qJ+2tZEtZ+cIa08hXbeitrxAJajLI05hsUy/2/YTKcUjQYzHe5mCcraLBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": ">=20.0.0", + "@types/whatwg-mimetype": "^3.0.2", + "@types/ws": "^8.18.1", + "buffer-image-size": "^0.6.4", + "entities": "^7.0.1", + "whatwg-mimetype": "^3.0.0", + "ws": "^8.21.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, "node_modules/hashery": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/hashery/-/hashery-1.5.1.tgz", @@ -3323,6 +3395,7 @@ "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@keyv/serialize": "^1.1.1" } @@ -3789,6 +3862,7 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==", "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -3869,6 +3943,7 @@ "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/react/-/react-19.3.1.tgz", "integrity": "sha512-QNhWdt7nrgVWWQG58QuGsAR3jv3Hbe4mb4vz7w2csnHavciZJgda1CPNaldF6eVxv90ud3jUXpKlHL69gO38yw==", "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -3878,6 +3953,7 @@ "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/react-dom/-/react-dom-19.3.1.tgz", "integrity": "sha512-Y0bARz53lhEC1NMCASs0/j+faB/zqt3R8hpvg1e8+61ZVJ4UL0UdC4cBbXfZMcIuhrfgeILTLe+ZeBCavQPtKQ==", "license": "MIT", + "peer": true, "dependencies": { "scheduler": "^0.28.0" }, @@ -4128,6 +4204,7 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -4265,6 +4342,7 @@ "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/vite/-/vite-8.3.4.tgz", "integrity": "sha512-IftLE8phJhdNRIGNEV4JCCvfNScoZQVfcXaN8TQropWGJtOHcu+iAB9pHcuGvmEb/kddw0LBe/jS8ztdC6xdiQ==", "license": "MIT", + "peer": true, "dependencies": { "lightningcss": "^1.33.0", "picomatch": "^4.0.7", @@ -4586,6 +4664,16 @@ "url": "https://opencollective.com/parcel" } }, + "node_modules/whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -4612,6 +4700,28 @@ "node": ">=0.10.0" } }, + "node_modules/ws": { + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.22.0.tgz", + "integrity": "sha512-Ydggc987+RO0AnWtZ/7Wq9FtNvcrL1b/RO0ud9mWjUPgDrsAAwQSF51sm2hm1XofbU/4jkpGEsLFsZZxU+1DOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", @@ -4638,6 +4748,7 @@ "integrity": "sha512-v5l/aFXZQeai4awLbOpSoHecE9UiMrnfx75tEXLjNonXVARxQ5mOeipTjROUchszUNCqnE+hqAMujRsRHsut2Q==", "dev": true, "license": "MIT", + "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } diff --git a/python/packages/devui/frontend/package.json b/python/packages/devui/frontend/package.json index c2a6f73cdc7..2283872045d 100644 --- a/python/packages/devui/frontend/package.json +++ b/python/packages/devui/frontend/package.json @@ -7,6 +7,7 @@ "dev": "vite", "build": "tsc -b && vite build", "lint": "eslint .", + "test:file-urls": "node --test test/file-urls.test.mjs", "test:tracing": "node --test test/trace-polling.test.mjs", "preview": "vite preview" }, @@ -43,6 +44,7 @@ "eslint-plugin-react-hooks": "^7.1.1", "eslint-plugin-react-refresh": "^0.5.7", "globals": "^17.13.0", + "happy-dom": "^21.0.4", "tw-animate-css": "^1.4.0", "typescript": "~5.9.3", "typescript-eslint": "^8.71.2", diff --git a/python/packages/devui/frontend/src/components/features/agent/message-renderers/OpenAIContentRenderer.tsx b/python/packages/devui/frontend/src/components/features/agent/message-renderers/OpenAIContentRenderer.tsx index 1892aa5c429..47641b287d8 100644 --- a/python/packages/devui/frontend/src/components/features/agent/message-renderers/OpenAIContentRenderer.tsx +++ b/python/packages/devui/frontend/src/components/features/agent/message-renderers/OpenAIContentRenderer.tsx @@ -17,6 +17,7 @@ import { } from "lucide-react"; import type { MessageContent } from "@/types/openai"; import { MarkdownRenderer } from "@/components/ui/markdown-renderer"; +import { createEmbeddedFileBlob, getSafeFileUrl } from "@/lib/file-urls"; interface ContentRendererProps { content: MessageContent; @@ -85,41 +86,19 @@ function ImageContentRenderer({ content, className }: ContentRendererProps) { ); } -// Helper to convert base64 (or data URI) to blob URL for better browser compatibility -function useBase64ToBlobUrl(data: string | undefined, mimeType: string): string | null { - const [blobUrl, setBlobUrl] = useState(null); +// Only locally created blob URLs are trusted for embedded files. +function useEmbeddedFileBlobUrl(data: string | undefined, mimeType: string | undefined): string | null { + const [result, setResult] = useState<{ data: string; mimeType: string | undefined; url: string } | null>(null); useEffect(() => { if (!data) { - setBlobUrl(null); return; } try { - // Handle both data URI format and raw base64 - let base64Data: string; - if (data.startsWith('data:')) { - // Extract base64 from data URI (e.g., "data:application/pdf;base64,...") - const parts = data.split(','); - if (parts.length !== 2) { - setBlobUrl(null); - return; - } - base64Data = parts[1]; - } else { - // Raw base64 data - base64Data = data; - } - - const binaryString = atob(base64Data); - const bytes = new Uint8Array(binaryString.length); - for (let i = 0; i < binaryString.length; i++) { - bytes[i] = binaryString.charCodeAt(i); - } - - const blob = new Blob([bytes], { type: mimeType }); + const blob = createEmbeddedFileBlob(data, mimeType); const url = URL.createObjectURL(blob); - setBlobUrl(url); + setResult({ data, mimeType, url }); // Cleanup on unmount or when data changes return () => { @@ -127,11 +106,11 @@ function useBase64ToBlobUrl(data: string | undefined, mimeType: string): string }; } catch (error) { console.error('Failed to convert base64 to blob URL:', error); - setBlobUrl(null); + setResult(null); } }, [data, mimeType]); - return blobUrl; + return result && result.data === data && result.mimeType === mimeType ? result.url : null; } // File content renderer (handles both input and output files) @@ -147,22 +126,26 @@ function FileContentRenderer({ content, className }: ContentRendererProps) { const isPdf = filename?.toLowerCase().endsWith(".pdf") || fileUrl?.includes("application/pdf"); const isAudio = filename?.toLowerCase().match(/\.(mp3|wav|m4a|ogg|flac|aac)$/); - // Convert base64 to blob URL for PDFs (better browser compatibility) - // Use file_data (raw base64) if available, otherwise try file_url - // Hook must be called unconditionally - pass undefined if not a PDF - const pdfData = (isFileContent && isPdf) ? (content.file_data || content.file_url) : undefined; - const pdfBlobUrl = useBase64ToBlobUrl(pdfData, 'application/pdf'); + const safeFileUrl = getSafeFileUrl(fileUrl); + const embeddedData = (isFileContent && (isPdf || !isAudio)) + ? (/^data:/i.test(content.file_url || "") + ? content.file_url + : content.file_data || (safeFileUrl ? undefined : content.file_url)) + : undefined; + const embeddedMimeType = isPdf + ? "application/pdf" + : content.type === "output_file" ? content.mime_type : undefined; + const embeddedBlobUrl = useEmbeddedFileBlobUrl(embeddedData, embeddedMimeType); // Early return after all hooks if (!isFileContent) return null; - // Use blob URL if available, otherwise fall back to original URL - const effectivePdfUrl = pdfBlobUrl || fileUrl; + const effectiveFileUrl = embeddedBlobUrl || safeFileUrl; // Helper to open PDF in new tab const openPdfInNewTab = () => { - if (effectivePdfUrl) { - window.open(effectivePdfUrl, '_blank'); + if (effectiveFileUrl) { + window.open(effectiveFileUrl, '_blank', 'noopener,noreferrer'); } }; @@ -203,19 +186,27 @@ function FileContentRenderer({ content, className }: ContentRendererProps) {
- - - Download - + {effectiveFileUrl && ( + + + Download + + )}
+ {!effectiveFileUrl && ( +

+ This file cannot be opened: its link or embedded data is unavailable or unsupported. +

+ )} )} @@ -246,9 +237,9 @@ function FileContentRenderer({ content, className }: ContentRendererProps) { {filename} - {fileUrl && ( + {effectiveFileUrl && ( @@ -257,6 +248,11 @@ function FileContentRenderer({ content, className }: ContentRendererProps) { )} + {fileUrl && !effectiveFileUrl && ( +

+ This file cannot be downloaded: its link or embedded data is unavailable or unsupported. +

+ )} ); } diff --git a/python/packages/devui/frontend/src/lib/file-urls.ts b/python/packages/devui/frontend/src/lib/file-urls.ts new file mode 100644 index 00000000000..99e194f922f --- /dev/null +++ b/python/packages/devui/frontend/src/lib/file-urls.ts @@ -0,0 +1,29 @@ +// Copyright (c) Microsoft. All rights reserved. + +export function getSafeFileUrl(value: string | undefined): string | undefined { + if (!value || !URL.canParse(value)) return undefined; + const url = new URL(value); + return url.protocol === "https:" || url.protocol === "http:" ? url.href : undefined; +} + +export function createEmbeddedFileBlob(data: string, mimeType?: string): Blob { + let base64 = data; + if (/^data:/i.test(data)) { + const match = /^data:([^;,]+);base64,([a-z0-9+/=\s]*)$/i.exec(data); + if (!match) throw new Error("Unsupported embedded file format"); + const declaredMimeType = match[1].toLowerCase(); + if (mimeType && mimeType !== declaredMimeType) { + throw new Error("Embedded file type does not match its declared type"); + } + mimeType = declaredMimeType; + base64 = match[2]; + } + if (!mimeType || !["application/pdf", "video/mp4", "video/webm"].includes(mimeType)) { + throw new Error("Unsupported embedded file type"); + } + const binary = atob(base64); + return new Blob( + [Uint8Array.from(binary, (character) => character.charCodeAt(0))], + { type: mimeType }, + ); +} diff --git a/python/packages/devui/frontend/test/file-urls.test.mjs b/python/packages/devui/frontend/test/file-urls.test.mjs new file mode 100644 index 00000000000..25daea14572 --- /dev/null +++ b/python/packages/devui/frontend/test/file-urls.test.mjs @@ -0,0 +1,244 @@ +// Copyright (c) Microsoft. All rights reserved. + +import assert from "node:assert/strict"; +import { after, before, test } from "node:test"; +import { fileURLToPath } from "node:url"; +import { act, createElement } from "react"; +import { renderToStaticMarkup } from "react-dom/server"; +import { Window } from "happy-dom"; +import { createServer } from "vite"; + +let server; +let getSafeFileUrl; +let createEmbeddedFileBlob; +let OpenAIContentRenderer; +let createRoot; +let window; +const originalWindow = globalThis.window; +const originalDocument = globalThis.document; +const originalActEnvironment = globalThis.IS_REACT_ACT_ENVIRONMENT; + +before(async () => { + window = new Window({ url: "http://localhost" }); + globalThis.window = window; + globalThis.document = window.document; + globalThis.IS_REACT_ACT_ENVIRONMENT = true; + ({ createRoot } = await import("react-dom/client")); + server = await createServer({ + configFile: false, + root: fileURLToPath(new URL("..", import.meta.url)), + resolve: { alias: { "@": fileURLToPath(new URL("../src", import.meta.url)) } }, + esbuild: { jsx: "automatic" }, + server: { middlewareMode: true, hmr: false, ws: false, watch: null }, + optimizeDeps: { noDiscovery: true, include: [] }, + }); + ({ getSafeFileUrl, createEmbeddedFileBlob } = await server.ssrLoadModule("/src/lib/file-urls.ts")); + ({ OpenAIContentRenderer } = await server.ssrLoadModule( + "/src/components/features/agent/message-renderers/OpenAIContentRenderer.tsx", + )); +}); + +after(async () => { + await server?.close(); + await window?.happyDOM.close(); + globalThis.window = originalWindow; + globalThis.document = originalDocument; + globalThis.IS_REACT_ACT_ENVIRONMENT = originalActEnvironment; +}); + +function renderFile(filename, fileUrl, type = "output_file") { + return renderToStaticMarkup(createElement(OpenAIContentRenderer, { + content: { type, filename, file_url: fileUrl }, + })); +} + +test("allows HTTP and HTTPS file links", () => { + for (const url of ["https://example.com/report.pdf", "http://localhost:8090/report.pdf"]) { + assert.equal(getSafeFileUrl(url), url); + const markup = renderFile("report.pdf", url); + assert.ok(markup.includes(`href="${url}"`)); + assert.ok(!markup.includes("disabled")); + } +}); + +test("blocks unsupported schemes, including disguised script schemes, in file controls", () => { + for (const url of [ + "javascript:void(0)//report.pdf", + " \tJaVaScRiPt:void(0)//report.pdf", + "java\nscript:void(0)//report.pdf", + "data:text/html;base64,SGVsbG8=", + "blob:https://example.com/untrusted", + "file:///report.pdf", + "ftp://example.com/report.pdf", + "//example.com/report.pdf", + "/report.pdf", + "not a URL", + ]) { + assert.equal(getSafeFileUrl(url), undefined); + for (const type of ["input_file", "output_file"]) { + const pdf = renderFile("report.pdf", url, type); + assert.match(pdf, /disabled=""/); + assert.ok(!pdf.includes("href=")); + assert.ok(pdf.includes("This file cannot be opened")); + const generic = renderFile("report.txt", url, type); + assert.ok(!generic.includes("href=")); + assert.ok(generic.includes("This file cannot be downloaded")); + } + } +}); + +test("keeps ordinary downloads and audio playback", () => { + assert.ok(renderFile("report.txt", "https://example.com/report.txt") + .includes('href="https://example.com/report.txt"')); + assert.ok(renderFile("recording.mp3", "data:audio/mpeg;base64,SGVsbG8=") + .includes(' { + const pdf = "%PDF-1.7\nexample\n%%EOF"; + const base64 = btoa(pdf); + for (const data of [base64, `data:application/pdf;base64,${base64}`]) { + const blob = createEmbeddedFileBlob(data, "application/pdf"); + assert.equal(blob.type, "application/pdf"); + assert.equal(await blob.text(), pdf); + assert.equal(getSafeFileUrl(data), undefined); + } +}); + +test("rejects malformed PDF data and unsupported embedded formats", () => { + for (const data of [ + "not valid base64!", + "javascript:void(0)//report.pdf", + "data:text/html;base64,SGVsbG8=", + "data:application/pdf,plain text", + "data:application/pdf;base64,!!!", + ]) { + assert.throws(() => createEmbeddedFileBlob(data, "application/pdf")); + } +}); + +async function mountFile(t, content) { + const container = document.createElement("div"); + document.body.append(container); + const root = createRoot(container); + const render = async (value) => { + await act(async () => root.render(createElement(OpenAIContentRenderer, { content: value }))); + }; + t.after(async () => { + await act(async () => root.unmount()); + container.remove(); + }); + await render(content); + return { container, root, render }; +} + +for (const mimeType of ["video/mp4", "video/webm"]) { + test(`renders working embedded ${mimeType} downloads`, async (t) => { + const bytes = new Uint8Array([0, 1, 128, 255]); + const base64 = btoa(String.fromCharCode(...bytes)); + const fileUrl = `data:${mimeType};base64,${base64}`; + for (const fields of [ + { type: "output_file", file_url: fileUrl, file_data: base64 }, + { type: "output_file", file_data: base64 }, + { type: "input_file", file_url: fileUrl }, + ]) { + const { container } = await mountFile(t, { + filename: `clip.${mimeType.split("/")[1]}`, + mime_type: mimeType, + ...fields, + }); + const link = container.querySelector("a[download]"); + assert.ok(link); + assert.ok(link.href.startsWith("blob:")); + assert.equal(container.querySelector('[role="status"]'), null); + const response = await fetch(link.href); + assert.equal(response.headers.get("content-type"), mimeType); + assert.deepEqual(new Uint8Array(await response.arrayBuffer()), bytes); + } + }); +} + +test("keeps embedded PDF opening working without accepting script links", async (t) => { + const open = t.mock.method(window, "open", () => null); + t.mock.method(console, "error", () => {}); + const { container, render } = await mountFile(t, { + type: "output_file", + filename: "report.pdf", + mime_type: "application/pdf", + file_data: btoa("%PDF-1.7\nexample\n%%EOF"), + }); + const link = container.querySelector("a[download]"); + assert.ok(link.href.startsWith("blob:")); + const button = [...container.querySelectorAll("button")] + .find((button) => button.textContent === "Open in new tab"); + await act(async () => button.click()); + assert.deepEqual(open.mock.calls[0].arguments, [link.href, "_blank", "noopener,noreferrer"]); + const blobUrl = link.href; + await render({ + type: "output_file", + filename: "report.pdf", + mime_type: "application/pdf", + file_url: "javascript:void(0)//report.pdf", + }); + assert.equal(container.querySelector("a[download]"), null); + assert.equal(button.disabled, true); + await act(async () => button.click()); + assert.equal(open.mock.callCount(), 1); + await assert.rejects(fetch(blobUrl)); +}); + +test("releases embedded file links on replacement and unmount", async (t) => { + const content = { + type: "output_file", + filename: "clip.mp4", + mime_type: "video/mp4", + file_data: btoa("first video"), + }; + const { container, root, render } = await mountFile(t, content); + const firstUrl = container.querySelector("a[download]").href; + await render({ ...content, file_data: btoa("second video") }); + const secondUrl = container.querySelector("a[download]").href; + assert.notEqual(secondUrl, firstUrl); + await assert.rejects(fetch(firstUrl)); + assert.equal(await (await fetch(secondUrl)).text(), "second video"); + await act(async () => root.unmount()); + await assert.rejects(fetch(secondUrl)); +}); + +test("removes an embedded link when replacement content has an unsupported type", async (t) => { + t.mock.method(console, "error", () => {}); + const { container, render } = await mountFile(t, { + type: "output_file", + filename: "clip.mp4", + mime_type: "video/mp4", + file_data: btoa("video"), + }); + const url = container.querySelector("a[download]").href; + await render({ + type: "output_file", + filename: "page.html", + mime_type: "text/html", + file_data: btoa("video"), + }); + assert.equal(container.querySelector("a[download]"), null); + assert.ok(container.textContent.includes("This file cannot be downloaded")); + await assert.rejects(fetch(url)); +}); + +test("keeps malformed and disallowed embedded files unavailable", async (t) => { + const errors = t.mock.method(console, "error", () => {}); + for (const fields of [ + { mime_type: "video/mp4", file_data: "invalid base64!" }, + { mime_type: "text/html", file_url: `data:text/html;base64,${btoa("

example

")}` }, + { mime_type: "video/mp4", file_url: `data:video/webm;base64,${btoa("video")}` }, + ]) { + const { container } = await mountFile(t, { + type: "output_file", + filename: "clip.mp4", + ...fields, + }); + assert.equal(container.querySelector("a[download]"), null); + assert.ok(container.textContent.includes("This file cannot be downloaded")); + } + assert.equal(errors.mock.callCount(), 3); +}); diff --git a/python/packages/devui/frontend/yarn.lock b/python/packages/devui/frontend/yarn.lock index b175eacfea3..d85c639a721 100644 --- a/python/packages/devui/frontend/yarn.lock +++ b/python/packages/devui/frontend/yarn.lock @@ -948,7 +948,7 @@ resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== -"@types/node@^26.6.5": +"@types/node@*", "@types/node@>=20.0.0", "@types/node@^26.6.5": version "26.6.5" resolved "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@types/node/-/node-26.6.5.tgz" integrity sha512-uMzsv9stDdofIZBx4UGh4Z9ZgXnGC9seRDscilBcTHAeOFk67MZg/k9bWVfO+bk4qZmG+l52hRnLwUiH2LnJTg== @@ -967,6 +967,18 @@ dependencies: csstype "^3.2.2" +"@types/whatwg-mimetype@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/whatwg-mimetype/-/whatwg-mimetype-3.0.2.tgz#e5e06dcd3e92d4e622ef0129637707d66c28d6a4" + integrity sha512-c2AKvDT8ToxLIOUlN51gTiHXflsfIFisS4pO7pDPoKouJCESkhZnEy623gwP9laCy5lnLDAw1vAzu2vM2YLOrA== + +"@types/ws@^8.18.1": + version "8.18.2" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.18.2.tgz#25d6321b30ef0fddf6cc7052b4eef9ce4e412b6e" + integrity sha512-67MQl+fpWKVTT1NYdnmo3U4sc/xPo/zQBncVnI74qmQa0z/b+1g6iYqNmGCPbxO+zz2aklb08a0oHfegiVd0/w== + dependencies: + "@types/node" "*" + "@typescript-eslint/eslint-plugin@8.71.2": version "8.71.2" resolved "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.71.2.tgz" @@ -1149,6 +1161,13 @@ browserslist@^4.24.0: node-releases "^2.0.53" update-browserslist-db "^1.3.0" +buffer-image-size@^0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/buffer-image-size/-/buffer-image-size-0.6.4.tgz#357e8173e951ced3b5a2785c695993aa29dbcac4" + integrity sha512-nEh+kZOPY1w+gcCMobZ6ETUp9WfibndnosbpwB1iJk/8Gt5ZF2bhS6+B6bPYz424KtwsR6Rflc3tCz1/ghX2dQ== + dependencies: + "@types/node" "*" + cacheable@^2.5.0: version "2.5.0" resolved "https://registry.npmjs.org/cacheable/-/cacheable-2.5.0.tgz" @@ -1298,6 +1317,11 @@ enhanced-resolve@^5.24.1: graceful-fs "^4.2.4" tapable "^2.3.3" +entities@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/entities/-/entities-7.0.1.tgz#26e8a88889db63417dcb9a1e79a3f1bc92b5976b" + integrity sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA== + escalade@^3.2.0: version "3.2.0" resolved "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz" @@ -1494,6 +1518,19 @@ graceful-fs@^4.2.4: resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== +happy-dom@^21.0.4: + version "21.0.4" + resolved "https://registry.yarnpkg.com/happy-dom/-/happy-dom-21.0.4.tgz#3b9e4b23a6ef5f94f6db242857a99742dd14f943" + integrity sha512-tFm+GaLBgo6o0awHnvHaNoraVo27qJ+2tZEtZ+cIa08hXbeitrxAJajLI05hsUy/2/YTKcUjQYzHe5mCcraLBw== + dependencies: + "@types/node" ">=20.0.0" + "@types/whatwg-mimetype" "^3.0.2" + "@types/ws" "^8.18.1" + buffer-image-size "^0.6.4" + entities "^7.0.1" + whatwg-mimetype "^3.0.0" + ws "^8.21.0" + hashery@^1.4.0, hashery@^1.5.1: version "1.5.1" resolved "https://registry.npmjs.org/hashery/-/hashery-1.5.1.tgz" @@ -2086,6 +2123,11 @@ vite@^8.3.4: optionalDependencies: fsevents "~2.3.3" +whatwg-mimetype@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" + integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q== + which@^2.0.1: version "2.0.2" resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" @@ -2098,6 +2140,11 @@ word-wrap@^1.2.5: resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz" integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== +ws@^8.21.0: + version "8.22.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.22.0.tgz#40f16e1d7588ac0575041be5c49b8eb261c28e73" + integrity sha512-Ydggc987+RO0AnWtZ/7Wq9FtNvcrL1b/RO0ud9mWjUPgDrsAAwQSF51sm2hm1XofbU/4jkpGEsLFsZZxU+1DOg== + yallist@^3.0.2: version "3.1.1" resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz"