local-operator-ui 0.25.19 → 0.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/out/renderer/assets/{_basePickBy-5CoGdeKI.js → _basePickBy-Bpah_DB5.js} +1 -1
- package/out/renderer/assets/{_baseUniq-CXR3bGLu.js → _baseUniq-BjTYkdoM.js} +1 -1
- package/out/renderer/assets/{agent-details-page-Bjt69TC3.js → agent-details-page-DUnaZtSD.js} +1 -1
- package/out/renderer/assets/{agent-hub-page-BJiTX5nz.js → agent-hub-page-D2jMJi71.js} +1 -1
- package/out/renderer/assets/{agents-page-0rMcAByt.js → agents-page-BzmZF2wA.js} +2 -2
- package/out/renderer/assets/{arc-CMNkyDKA.js → arc-PgrQf5G9.js} +1 -1
- package/out/renderer/assets/{architectureDiagram-IEHRJDOE-B7g44Vlf.js → architectureDiagram-IEHRJDOE-DYQewNZN.js} +1 -1
- package/out/renderer/assets/{blockDiagram-JOT3LUYC-Bc4GOnQ5.js → blockDiagram-JOT3LUYC-DfZ_XFPJ.js} +1 -1
- package/out/renderer/assets/browser-page-CsDt8lIc.js +1 -0
- package/out/renderer/assets/{c4Diagram-VJAJSXHY-BjtgyGC1.js → c4Diagram-VJAJSXHY-DDHzlwDi.js} +1 -1
- package/out/renderer/assets/channel-BbfnWIUI.js +1 -0
- package/out/renderer/assets/{chunk-4BMEZGHF-DPnejOYP.js → chunk-4BMEZGHF-BQl3nYL1.js} +1 -1
- package/out/renderer/assets/{chunk-A2AXSNBT-BDEtVwaL.js → chunk-A2AXSNBT-Bggc0r9P.js} +1 -1
- package/out/renderer/assets/{chunk-AEK57VVT-CmzdR892.js → chunk-AEK57VVT-y_KlRITR.js} +1 -1
- package/out/renderer/assets/{chunk-D6G4REZN-C2zmgcrD.js → chunk-D6G4REZN-Dktfzx4I.js} +1 -1
- package/out/renderer/assets/{chunk-RZ5BOZE2-BJJ-OTAf.js → chunk-RZ5BOZE2-CNXYA_Ud.js} +1 -1
- package/out/renderer/assets/{chunk-XZIHB7SX-DwyjIxJs.js → chunk-XZIHB7SX-CU1hhxyc.js} +1 -1
- package/out/renderer/assets/classDiagram-GIVACNV2-BaDHx5v3.js +1 -0
- package/out/renderer/assets/classDiagram-v2-COTLJTTW-BaDHx5v3.js +1 -0
- package/out/renderer/assets/clone-Bx12E3nh.js +1 -0
- package/out/renderer/assets/{compact-pagination-BhjXL_Vy.js → compact-pagination-vqH3UMnL.js} +1 -1
- package/out/renderer/assets/{dagre-OKDRZEBW-D915Oq0h.js → dagre-OKDRZEBW-Cq9mNXrX.js} +1 -1
- package/out/renderer/assets/{diagram-SSKATNLV-CCMHSOFl.js → diagram-SSKATNLV-Dr4fitdd.js} +1 -1
- package/out/renderer/assets/{diagram-VNBRO52H-DQFZ47jz.js → diagram-VNBRO52H-C0kaVZy-.js} +1 -1
- package/out/renderer/assets/{erDiagram-Q7BY3M3F-DOb42yOL.js → erDiagram-Q7BY3M3F-DvKxgX1J.js} +1 -1
- package/out/renderer/assets/{flowDiagram-4HSFHLVR-C9xATOcb.js → flowDiagram-4HSFHLVR-u8R-9WXa.js} +1 -1
- package/out/renderer/assets/{ganttDiagram-APWFNJXF-BKGrN3nG.js → ganttDiagram-APWFNJXF-Vb4fxadf.js} +1 -1
- package/out/renderer/assets/{gitGraphDiagram-7IBYFJ6S-DR0Z91nS.js → gitGraphDiagram-7IBYFJ6S-DqWUw8Th.js} +1 -1
- package/out/renderer/assets/{graph-BZhzpHSl.js → graph-D3CyNCVS.js} +1 -1
- package/out/renderer/assets/icon-B8Li1YYS.css +1 -0
- package/out/renderer/assets/icon-Bny6j4NZ.js +200 -0
- package/out/renderer/assets/{index-C-4XRZ68.js → index-Bcz37Dsr.js} +6 -6
- package/out/renderer/assets/{index-0fhFwnUv.js → index-C4wE5-hf.js} +1 -1
- package/out/renderer/assets/{index-CTTuGe3U.js → index-DOGq7e-U.js} +1 -1
- package/out/renderer/assets/{infoDiagram-PH2N3AL5-BSvIpVNN.js → infoDiagram-PH2N3AL5-Cyzau35q.js} +1 -1
- package/out/renderer/assets/{installer-CmDlZ6ZC.js → installer-DDldqUI5.js} +1 -1
- package/out/renderer/assets/{journeyDiagram-U35MCT3I-bGhEBTWY.js → journeyDiagram-U35MCT3I-oZgA4kiL.js} +1 -1
- package/out/renderer/assets/{kanban-definition-NDS4AKOZ-1GZIm9bo.js → kanban-definition-NDS4AKOZ-DQV7n-AW.js} +1 -1
- package/out/renderer/assets/{layout-BxSJya1i.js → layout-Dh8fv9xe.js} +1 -1
- package/out/renderer/assets/{legacy-agents-page-MjvhEvs0.js → legacy-agents-page-DptSmKpl.js} +1 -1
- package/out/renderer/assets/{mermaid.core-C8WrVHA6.js → mermaid.core-Du-3Cewj.js} +5 -5
- package/out/renderer/assets/{mindmap-definition-ALO5MXBD-BrVNBwrz.js → mindmap-definition-ALO5MXBD-DDPHJEC1.js} +1 -1
- package/out/renderer/assets/{page-header-BxSu579T.js → page-header-un3csrkZ.js} +1 -1
- package/out/renderer/assets/{parseISO-Chhis1zA.js → parseISO-D7nsYBq4.js} +1 -1
- package/out/renderer/assets/{pieDiagram-IB7DONF6-DoaEBzyY.js → pieDiagram-IB7DONF6-D7lXUGWg.js} +1 -1
- package/out/renderer/assets/{quadrantDiagram-7GDLP6J5-Rt0jQZuL.js → quadrantDiagram-7GDLP6J5-BBAynwl9.js} +1 -1
- package/out/renderer/assets/{radar-MK3ICKWK-DB3WvJx3.js → radar-MK3ICKWK-C59pXUfZ.js} +1 -1
- package/out/renderer/assets/{radient-auth-buttons-BgiaQdhl.js → radient-auth-buttons-C5U9BVCs.js} +1 -1
- package/out/renderer/assets/{requirementDiagram-KVF5MWMF-CZKO92D0.js → requirementDiagram-KVF5MWMF-BP02izkG.js} +1 -1
- package/out/renderer/assets/{sankeyDiagram-QLVOVGJD-BRxDE8ze.js → sankeyDiagram-QLVOVGJD-BGMCA7OJ.js} +1 -1
- package/out/renderer/assets/{schedules-page-BzdwC9M-.js → schedules-page-BSMjSJUt.js} +1 -1
- package/out/renderer/assets/{sequenceDiagram-X6HHIX6F-Mg9abwLq.js → sequenceDiagram-X6HHIX6F-CjFv2kmo.js} +1 -1
- package/out/renderer/assets/settings-page-BN1gnOIT.js +312 -0
- package/out/renderer/assets/{stateDiagram-DGXRK772-DzYf0hgn.js → stateDiagram-DGXRK772-Cd-iahlq.js} +1 -1
- package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-eF4wpUTl.js +1 -0
- package/out/renderer/assets/{timeline-definition-BDJGKUSR-SX-srvDY.js → timeline-definition-BDJGKUSR-ENYTiDkb.js} +1 -1
- package/out/renderer/assets/{use-agent-like-mutation-ZhXVgsm3.js → use-agent-like-mutation-CxNAsw0f.js} +1 -1
- package/out/renderer/assets/{xychartDiagram-VJFVF3MP-CmjoPhao.js → xychartDiagram-VJFVF3MP-DUL0l1bZ.js} +1 -1
- package/out/renderer/index.html +3 -3
- package/out/renderer/installer.html +3 -3
- package/package.json +2 -2
- package/out/renderer/assets/browser-page-_cYqTYuS.js +0 -1
- package/out/renderer/assets/channel-DGjSSyl5.js +0 -1
- package/out/renderer/assets/classDiagram-GIVACNV2-ClRq6A8Z.js +0 -1
- package/out/renderer/assets/classDiagram-v2-COTLJTTW-ClRq6A8Z.js +0 -1
- package/out/renderer/assets/clone-DFaAQ-x7.js +0 -1
- package/out/renderer/assets/icon-CeaDeErk.js +0 -200
- package/out/renderer/assets/icon-FFSyDN4z.css +0 -1
- package/out/renderer/assets/settings-page-BJeFjWrB.js +0 -92
- package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-Ccz78IHI.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
@font-face{font-family:Roboto Mono;font-style:normal;font-weight:400;font-display:swap;src:url(./RobotoMono-Regular-BCiLwUa1.ttf) format("truetype")}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:700;font-display:swap;src:url(./RobotoMono-Bold-CA4NrfZm.ttf) format("truetype")}@font-face{font-family:Geist Mono;src:url(./GeistMonoNerdFontMono-Regular-CWdDX7GJ.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(./GeistMonoNerdFontMono-Bold-B9bGosAz.otf) format("opentype");font-weight:700;font-style:normal;font-display:swap}/*! 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-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--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:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--container-7xl:80rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--leading-relaxed:1.625;--radius-xs:2px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--ease-in-out:cubic-bezier(.65, 0, .35, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-canvas:var(--lo-canvas);--color-surface:var(--lo-surface);--color-elevated:var(--lo-elevated);--color-sunken:var(--lo-sunken);--color-highlight:var(--lo-highlight);--color-ink:var(--lo-ink);--color-ink-muted:var(--lo-ink-muted);--color-ink-dim:var(--lo-ink-dim);--color-ink-disabled:var(--lo-ink-disabled);--color-hairline:var(--lo-hairline);--color-control:var(--lo-border-control);--color-accent:var(--lo-accent);--color-accent-hover:var(--lo-accent-hover);--color-accent-active:var(--lo-accent-active);--color-accent-wash:var(--lo-accent-wash);--color-on-accent:var(--lo-on-accent);--color-chart-bar-hover:var(--lo-chart-bar-hover);--color-success:var(--lo-success);--color-success-wash:var(--lo-success-wash);--color-success-border:var(--lo-success-border);--color-warning:var(--lo-warning);--color-warning-wash:var(--lo-warning-wash);--color-warning-border:var(--lo-warning-border);--color-danger:var(--lo-danger);--color-danger-wash:var(--lo-danger-wash);--color-danger-border:var(--lo-danger-border);--color-info:var(--lo-info);--color-info-wash:var(--lo-info-wash);--color-info-border:var(--lo-info-border);--text-display:1.75rem;--text-display--line-height:1.2;--text-display--letter-spacing:-.02em;--text-display--font-weight:600;--text-title:1.25rem;--text-title--line-height:1.3;--text-title--letter-spacing:-.012em;--text-title--font-weight:600;--text-heading:1rem;--text-heading--line-height:1.4;--text-heading--letter-spacing:-.006em;--text-heading--font-weight:600;--text-body:.875rem;--text-body--line-height:1.55;--text-body-sm:.8125rem;--text-body-sm--line-height:1.5;--text-meta:.75rem;--text-meta--line-height:1.45;--text-mono:.8125rem;--text-mono--line-height:1.5;--text-mono-sm:.75rem;--text-mono-sm--line-height:1.45;--radius-frame:16px;--transition-duration-instant:80ms;--transition-duration-fast:.12s;--transition-duration-base:.18s;--transition-duration-slow:.24s;--duration-fast:.12s;--duration-slow:.24s;--ease-out-quart:cubic-bezier(.25, 1, .5, 1);--animate-pulse-visible:pulse-visible 2s cubic-bezier(.4, 0, .6, 1) infinite;--color-scrim:var(--lo-scrim);--shadow-overlay:var(--lo-overlay-shadow)}}@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;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}:where(:focus-visible){border-radius:inherit}:where(:disabled,[aria-disabled=true]){opacity:1;cursor:not-allowed}html,body,#app{height:100%;overflow:hidden}body,#app{position:relative}body{background-color:var(--color-canvas);color:var(--color-ink);font-family:var(--font-sans);font-size:var(--text-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.55}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}}@layer components;@layer utilities{.\@container\/chatcol{container:chatcol/inline-size}.\@container\/consent-actions{container:consent-actions/inline-size}.\@container\/olderhistory{container:olderhistory/inline-size}.\@container\/slash{container:slash/inline-size}.\@container\/strip{container:strip/inline-size}.\@container\/toolrow{container:toolrow/inline-size}.\@container{container-type:inline-size}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{inset-inline:0}.inset-y-0{inset-block:0}.-top-0\.5{top:calc(var(--spacing) * -.5)}.-top-1\.5{top:calc(var(--spacing) * -1.5)}.-top-2{top:calc(var(--spacing) * -2)}.-top-2\.5{top:calc(var(--spacing) * -2.5)}.-top-80{top:calc(var(--spacing) * -80)}.top-0{top:0}.top-1{top:var(--spacing)}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.top-4{top:calc(var(--spacing) * 4)}.top-14{top:calc(var(--spacing) * 14)}.-right-0\.5{right:calc(var(--spacing) * -.5)}.-right-1\.5{right:calc(var(--spacing) * -1.5)}.-right-2\.5{right:calc(var(--spacing) * -2.5)}.right-0{right:0}.right-1{right:var(--spacing)}.right-1\.5{right:calc(var(--spacing) * 1.5)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.right-9{right:calc(var(--spacing) * 9)}.-bottom-3{bottom:calc(var(--spacing) * -3)}.-bottom-px{bottom:-1px}.bottom-0{bottom:0}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-full{bottom:100%}.-left-1\.5{left:calc(var(--spacing) * -1.5)}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-2\.5{left:calc(var(--spacing) * 2.5)}.left-3{left:calc(var(--spacing) * 3)}.left-4{left:calc(var(--spacing) * 4)}.isolate{isolation:isolate}.-z-10{z-index:-10}.z-10{z-index:10}.z-11{z-index:11}.z-12{z-index:12}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.z-2100{z-index:2100}.z-2200{z-index:2200}.z-\[2\]{z-index:2}.z-\[1300\]{z-index:1300}.z-\[1301\]{z-index:1301}.z-\[2300\]{z-index:2300}.order-2{order:2}.order-3{order:3}.order-first{order:-9999}.col-span-2{grid-column:span 2/span 2}.col-span-full{grid-column:1/-1}.row-1{grid-row:1}.\!container{width:100%!important}@media (min-width:40rem){.\!container{max-width:40rem!important}}@media (min-width:48rem){.\!container{max-width:48rem!important}}@media (min-width:64rem){.\!container{max-width:64rem!important}}@media (min-width:80rem){.\!container{max-width:80rem!important}}@media (min-width:96rem){.\!container{max-width:96rem!important}}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:0}.m-4{margin:calc(var(--spacing) * 4)}.m-6{margin:calc(var(--spacing) * 6)}.m-auto{margin:auto}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.-mx-1\.5{margin-inline:calc(var(--spacing) * -1.5)}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.mx-1{margin-inline:var(--spacing)}.mx-1\.5{margin-inline:calc(var(--spacing) * 1.5)}.mx-3{margin-inline:calc(var(--spacing) * 3)}.mx-auto{margin-inline:auto}.mx-px{margin-inline:1px}.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)}.my-6{margin-block:calc(var(--spacing) * 6)}.-mt-4{margin-top:calc(var(--spacing) * -4)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-auto{margin-top:auto}.mt-px{margin-top:1px}.mr-0\.5{margin-right:calc(var(--spacing) * .5)}.mr-1{margin-right:var(--spacing)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-2\.5{margin-right:calc(var(--spacing) * 2.5)}.mr-4{margin-right:calc(var(--spacing) * 4)}.mr-6{margin-right:calc(var(--spacing) * 6)}.-mb-3{margin-bottom:calc(var(--spacing) * -3)}.-mb-px{margin-bottom:-1px}.mb-0{margin-bottom:0}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.-ml-1\.5{margin-left:calc(var(--spacing) * -1.5)}.-ml-2{margin-left:calc(var(--spacing) * -2)}.ml-0\.5{margin-left:calc(var(--spacing) * .5)}.ml-1{margin-left:var(--spacing)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-5{margin-left:calc(var(--spacing) * 5)}.ml-6{margin-left:calc(var(--spacing) * 6)}.ml-auto{margin-left:auto}.box-border{box-sizing:border-box}.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!important}.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}.aspect-16\/10{aspect-ratio:16/10}.aspect-square{aspect-ratio:1}.size-1{width:var(--spacing);height:var(--spacing)}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.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-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-9\.5{width:calc(var(--spacing) * 9.5);height:calc(var(--spacing) * 9.5)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.size-16{width:calc(var(--spacing) * 16);height:calc(var(--spacing) * 16)}.size-25{width:calc(var(--spacing) * 25);height:calc(var(--spacing) * 25)}.size-75{width:calc(var(--spacing) * 75);height:calc(var(--spacing) * 75)}.size-\[3px\]{width:3px;height:3px}.size-full{width:100%;height:100%}.h-0{height:0}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.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-9\.5{height:calc(var(--spacing) * 9.5)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-13{height:calc(var(--spacing) * 13)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-21{height:calc(var(--spacing) * 21)}.h-24{height:calc(var(--spacing) * 24)}.h-30{height:calc(var(--spacing) * 30)}.h-32{height:calc(var(--spacing) * 32)}.h-40{height:calc(var(--spacing) * 40)}.h-44{height:calc(var(--spacing) * 44)}.h-56{height:calc(var(--spacing) * 56)}.h-60{height:calc(var(--spacing) * 60)}.h-62{height:calc(var(--spacing) * 62)}.h-64{height:calc(var(--spacing) * 64)}.h-96{height:calc(var(--spacing) * 96)}.h-\[80vh\]{height:80vh}.h-\[84px\]{height:84px}.h-\[90vh\]{height:90vh}.h-\[148px\]{height:148px}.h-\[200px\]{height:200px}.h-\[260px\]{height:260px}.h-\[520px\]{height:520px}.h-\[560px\]{height:560px}.h-\[600px\]{height:600px}.h-\[720px\]{height:720px}.h-auto{height:auto}.h-fit{height:fit-content}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-24{max-height:calc(var(--spacing) * 24)}.max-h-28{max-height:calc(var(--spacing) * 28)}.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-56{max-height:calc(var(--spacing) * 56)}.max-h-60{max-height:calc(var(--spacing) * 60)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-75{max-height:calc(var(--spacing) * 75)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[7\.5rem\]{max-height:7.5rem}.max-h-\[45\%\]{max-height:45%}.max-h-\[70\%\]{max-height:70%}.max-h-\[90vh\]{max-height:90vh}.max-h-\[200px\]{max-height:200px}.max-h-\[240px\]{max-height:240px}.max-h-\[300px\]{max-height:300px}.max-h-\[380px\]{max-height:380px}.max-h-\[740px\]{max-height:740px}.max-h-\[calc\(100vh-4rem\)\]{max-height:calc(100vh - 4rem)}.max-h-\[min\(50vh\,420px\)\]{max-height:min(50vh,420px)}.max-h-\[min\(60vh\,520px\)\]{max-height:min(60vh,520px)}.max-h-\[min\(76vh\,760px\)\]{max-height:min(76vh,760px)}.max-h-\[min\(90vh\,calc\(100vh-104px\)\)\]{max-height:min(90vh,100vh - 104px)}.max-h-\[var\(--radix-dropdown-menu-content-available-height\)\]{max-height:var(--radix-dropdown-menu-content-available-height)}.max-h-full{max-height:100%}.\[min-height\:50px\]{min-height:50px}.min-h-0{min-height:0}.min-h-5{min-height:calc(var(--spacing) * 5)}.min-h-5\.5{min-height:calc(var(--spacing) * 5.5)}.min-h-6{min-height:calc(var(--spacing) * 6)}.min-h-7{min-height:calc(var(--spacing) * 7)}.min-h-8{min-height:calc(var(--spacing) * 8)}.min-h-9{min-height:calc(var(--spacing) * 9)}.min-h-10{min-height:calc(var(--spacing) * 10)}.min-h-11{min-height:calc(var(--spacing) * 11)}.min-h-13{min-height:calc(var(--spacing) * 13)}.min-h-16{min-height:calc(var(--spacing) * 16)}.min-h-20{min-height:calc(var(--spacing) * 20)}.min-h-25{min-height:calc(var(--spacing) * 25)}.min-h-36{min-height:calc(var(--spacing) * 36)}.min-h-40{min-height:calc(var(--spacing) * 40)}.min-h-50{min-height:calc(var(--spacing) * 50)}.min-h-52{min-height:calc(var(--spacing) * 52)}.min-h-80{min-height:calc(var(--spacing) * 80)}.min-h-\[50px\]{min-height:50px}.min-h-\[320px\]{min-height:320px}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-\(--radix-popover-trigger-width\){width:var(--radix-popover-trigger-width)}.w-0{width:0}.w-0\.5{width:calc(var(--spacing) * .5)}.w-1\/2{width:50%}.w-1\/3{width:33.3333%}.w-1\/4{width:25%}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-2\/3{width:66.6667%}.w-3{width:calc(var(--spacing) * 3)}.w-3\/4{width:75%}.w-3\/5{width:60%}.w-4{width:calc(var(--spacing) * 4)}.w-4\/5{width:80%}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-9{width:calc(var(--spacing) * 9)}.w-12{width:calc(var(--spacing) * 12)}.w-15{width:calc(var(--spacing) * 15)}.w-16{width:calc(var(--spacing) * 16)}.w-18{width:calc(var(--spacing) * 18)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-30{width:calc(var(--spacing) * 30)}.w-32{width:calc(var(--spacing) * 32)}.w-36{width:calc(var(--spacing) * 36)}.w-40{width:calc(var(--spacing) * 40)}.w-44{width:calc(var(--spacing) * 44)}.w-48{width:calc(var(--spacing) * 48)}.w-52{width:calc(var(--spacing) * 52)}.w-55{width:calc(var(--spacing) * 55)}.w-56{width:calc(var(--spacing) * 56)}.w-60{width:calc(var(--spacing) * 60)}.w-64{width:calc(var(--spacing) * 64)}.w-70{width:calc(var(--spacing) * 70)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-90{width:calc(var(--spacing) * 90)}.w-96{width:calc(var(--spacing) * 96)}.w-100{width:calc(var(--spacing) * 100)}.w-125{width:calc(var(--spacing) * 125)}.w-150{width:calc(var(--spacing) * 150)}.w-160{width:calc(var(--spacing) * 160)}.w-\[1ch\]{width:1ch}.w-\[5ch\]{width:5ch}.w-\[6ch\]{width:6ch}.w-\[32rem\]{width:32rem}.w-\[70px\]{width:70px}.w-\[280px\]{width:280px}.w-\[360px\]{width:360px}.w-\[380px\]{width:380px}.w-\[420px\]{width:420px}.w-\[560px\]{width:560px}.w-\[720px\]{width:720px}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.w-screen{width:100vw}.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-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-32{max-width:calc(var(--spacing) * 32)}.max-w-40{max-width:calc(var(--spacing) * 40)}.max-w-45{max-width:calc(var(--spacing) * 45)}.max-w-64{max-width:calc(var(--spacing) * 64)}.max-w-65{max-width:calc(var(--spacing) * 65)}.max-w-72{max-width:calc(var(--spacing) * 72)}.max-w-80{max-width:calc(var(--spacing) * 80)}.max-w-96{max-width:calc(var(--spacing) * 96)}.max-w-100{max-width:calc(var(--spacing) * 100)}.max-w-110{max-width:calc(var(--spacing) * 110)}.max-w-120{max-width:calc(var(--spacing) * 120)}.max-w-140{max-width:calc(var(--spacing) * 140)}.max-w-150{max-width:calc(var(--spacing) * 150)}.max-w-160{max-width:calc(var(--spacing) * 160)}.max-w-200{max-width:calc(var(--spacing) * 200)}.max-w-\[19rem\]{max-width:19rem}.max-w-\[45\%\]{max-width:45%}.max-w-\[46rem\]{max-width:46rem}.max-w-\[50\%\]{max-width:50%}.max-w-\[60\%\]{max-width:60%}.max-w-\[75\%\]{max-width:75%}.max-w-\[90vw\]{max-width:90vw}.max-w-\[92\%\]{max-width:92%}.max-w-\[380px\]{max-width:380px}.max-w-\[400px\]{max-width:400px}.max-w-\[420px\]{max-width:420px}.max-w-\[480px\]{max-width:480px}.max-w-\[600px\]{max-width:600px}.max-w-\[700px\]{max-width:700px}.max-w-\[720px\]{max-width:720px}.max-w-\[900px\]{max-width:900px}.max-w-\[calc\(100\%-15rem\)\]{max-width:calc(100% - 15rem)}.max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.max-w-\[calc\(100vw-4rem\)\]{max-width:calc(100vw - 4rem)}.max-w-\[min\(90vw\,calc\(100vw-104px\)\)\]{max-width:min(90vw,100vw - 104px)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-\(--radix-select-trigger-width\){min-width:var(--radix-select-trigger-width)}.min-w-0{min-width:0}.min-w-2{min-width:calc(var(--spacing) * 2)}.min-w-4{min-width:calc(var(--spacing) * 4)}.min-w-5{min-width:calc(var(--spacing) * 5)}.min-w-10{min-width:calc(var(--spacing) * 10)}.min-w-11{min-width:calc(var(--spacing) * 11)}.min-w-14{min-width:calc(var(--spacing) * 14)}.min-w-16{min-width:calc(var(--spacing) * 16)}.min-w-20{min-width:calc(var(--spacing) * 20)}.min-w-24{min-width:calc(var(--spacing) * 24)}.min-w-25{min-width:calc(var(--spacing) * 25)}.min-w-32{min-width:calc(var(--spacing) * 32)}.min-w-44{min-width:calc(var(--spacing) * 44)}.min-w-45{min-width:calc(var(--spacing) * 45)}.min-w-50{min-width:calc(var(--spacing) * 50)}.min-w-55{min-width:calc(var(--spacing) * 55)}.min-w-56{min-width:calc(var(--spacing) * 56)}.min-w-60{min-width:calc(var(--spacing) * 60)}.min-w-64{min-width:calc(var(--spacing) * 64)}.min-w-72{min-width:calc(var(--spacing) * 72)}.min-w-80{min-width:calc(var(--spacing) * 80)}.min-w-96{min-width:calc(var(--spacing) * 96)}.min-w-\[26rem\]{min-width:26rem}.min-w-\[30rem\]{min-width:30rem}.min-w-\[140px\]{min-width:140px}.min-w-\[220px\]{min-width:220px}.flex-1{flex:1}.flex-none{flex:none}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-2\/5{flex-basis:40%}.basis-32{flex-basis:calc(var(--spacing) * 32)}.basis-full{flex-basis:100%}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50% ;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-1\/2{--tw-translate-x: 50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-none{translate:none}.\[transform\:translateZ\(0\)\]{transform:translateZ(0)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-\[recording-ping_1\.6s_ease-out_infinite\]{animation:1.6s ease-out infinite recording-ping}.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-pulse-visible{animation:var(--animate-pulse-visible)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.\[scrollbar-width\:none\]{scrollbar-width:none}.\[scrollbar-gutter\:stable\]{scrollbar-gutter:stable}.\[scrollbar-gutter\:stable_both-edges\]{scrollbar-gutter:stable both-edges}.list-disc{list-style-type:disc}.\[appearance\:textfield\]{appearance:textfield}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid-cols-\[0\.375rem_minmax\(3rem\,11rem\)_minmax\(1\.5rem\,1fr\)_11rem_7\.5rem\]{grid-template-columns:.375rem minmax(3rem,11rem) minmax(1.5rem,1fr) 11rem 7.5rem}.grid-cols-\[10rem_1fr\]{grid-template-columns:10rem 1fr}.grid-cols-\[max-content_1fr\]{grid-template-columns:max-content 1fr}.grid-cols-\[repeat\(auto-fill\,minmax\(17\.5rem\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(17.5rem,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(150px\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(240px\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.grid-cols-\[repeat\(auto-fit\,minmax\(160px\,1fr\)\)\]{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.grid-cols-\[repeat\(auto-fit\,minmax\(260px\,1fr\)\)\]{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-nowrap{flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0{gap:0}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-10{gap:calc(var(--spacing) * 10)}.gap-24{gap:calc(var(--spacing) * 24)}: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-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-1{column-gap:var(--spacing)}.gap-x-1\.5{column-gap:calc(var(--spacing) * 1.5)}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-0\.5{row-gap:calc(var(--spacing) * .5)}.gap-y-1{row-gap:var(--spacing)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.gap-y-4{row-gap:calc(var(--spacing) * 4)}.self-center{align-self:center}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-clip{overflow:clip}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.overscroll-contain{overscroll-behavior:contain}.rounded{border-radius:.25rem}.rounded-\[1px\]{border-radius:1px}.rounded-\[inherit\]{border-radius:inherit}.rounded-frame{border-radius:var(--radius-frame)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xs{border-radius:var(--radius-xs)}.rounded-t-sm{border-top-left-radius:var(--radius-sm);border-top-right-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-x-0{border-inline-style:var(--tw-border-style);border-inline-width:0}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-dotted{--tw-border-style:dotted;border-style:dotted}.border-accent,.border-accent\/20{border-color:var(--color-accent)}@supports (color:color-mix(in lab,red,red)){.border-accent\/20{border-color:color-mix(in oklab,var(--color-accent) 20%,transparent)}}.border-control{border-color:var(--color-control)}.border-danger{border-color:var(--color-danger)}.border-danger-border{border-color:var(--color-danger-border)}.border-hairline{border-color:var(--color-hairline)}.border-info-border{border-color:var(--color-info-border)}.border-ink-dim{border-color:var(--color-ink-dim)}.border-success-border{border-color:var(--color-success-border)}.border-transparent{border-color:#0000}.border-warning{border-color:var(--color-warning)}.border-warning-border{border-color:var(--color-warning-border)}.border-t-accent{border-top-color:var(--color-accent)}.border-t-on-accent{border-top-color:var(--color-on-accent)}.bg-\[color-mix\(in_oklab\,var\(--color-accent-wash\)_80\%\,var\(--color-accent\)\)\]{background-color:var(--color-accent-wash)}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_oklab\,var\(--color-accent-wash\)_80\%\,var\(--color-accent\)\)\]{background-color:color-mix(in oklab,var(--color-accent-wash) 80%,var(--color-accent))}}.bg-\[color-mix\(in_oklab\,var\(--color-danger-wash\)_80\%\,var\(--color-danger\)\)\]{background-color:var(--color-danger-wash)}@supports (color:color-mix(in lab,red,red)){.bg-\[color-mix\(in_oklab\,var\(--color-danger-wash\)_80\%\,var\(--color-danger\)\)\]{background-color:color-mix(in oklab,var(--color-danger-wash) 80%,var(--color-danger))}}.bg-accent{background-color:var(--color-accent)}.bg-accent-active{background-color:var(--color-accent-active)}.bg-accent-hover{background-color:var(--color-accent-hover)}.bg-accent-wash{background-color:var(--color-accent-wash)}.bg-canvas{background-color:var(--color-canvas)}.bg-control{background-color:var(--color-control)}.bg-danger{background-color:var(--color-danger)}.bg-danger-wash{background-color:var(--color-danger-wash)}.bg-elevated{background-color:var(--color-elevated)}.bg-hairline{background-color:var(--color-hairline)}.bg-highlight{background-color:var(--color-highlight)}.bg-info{background-color:var(--color-info)}.bg-info-wash{background-color:var(--color-info-wash)}.bg-inherit{background-color:inherit}.bg-ink{background-color:var(--color-ink)}.bg-ink-dim{background-color:var(--color-ink-dim)}.bg-ink-muted{background-color:var(--color-ink-muted)}.bg-scrim{background-color:var(--color-scrim)}.bg-success{background-color:var(--color-success)}.bg-success-wash{background-color:var(--color-success-wash)}.bg-sunken{background-color:var(--color-sunken)}.bg-surface,.bg-surface\/85{background-color:var(--color-surface)}@supports (color:color-mix(in lab,red,red)){.bg-surface\/85{background-color:color-mix(in oklab,var(--color-surface) 85%,transparent)}}.bg-transparent{background-color:#0000}.bg-warning{background-color:var(--color-warning)}.bg-warning-wash{background-color:var(--color-warning-wash)}.bg-gradient-to-t{--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-\[linear-gradient\(to_right\,var\(--color-accent\)_0_var\(--fill\)\,var\(--color-sunken\)_var\(--fill\)_100\%\)\]{background-image:linear-gradient(to right,var(--color-accent) 0 var(--fill),var(--color-sunken) var(--fill) 100%)}.from-elevated{--tw-gradient-from:var(--color-elevated);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.\[mask-image\:linear-gradient\(\.\.\.\)\]{-webkit-mask-image:linear-gradient(...);mask-image:linear-gradient(...)}.\[mask-image\:linear-gradient\(to_bottom\,black_calc\(100\%-20px\)\,transparent\)\]{-webkit-mask-image:linear-gradient(#000 calc(100% - 20px),#0000);mask-image:linear-gradient(#000 calc(100% - 20px),#0000)}.\[mask-image\:linear-gradient\(to_right\,black_calc\(100\%-24px\)\,transparent\)\]{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 24px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 24px),#0000)}.box-decoration-clone{-webkit-box-decoration-break:clone;box-decoration-break:clone}.bg-\[length\:100\%_6px\]{background-size:100% 6px}.bg-center{background-position:50%}.bg-no-repeat{background-repeat:no-repeat}.fill-accent{fill:var(--color-accent)}.stroke-danger{stroke:var(--color-danger)}.stroke-hairline{stroke:var(--color-hairline)}.stroke-info{stroke:var(--color-info)}.stroke-sunken{stroke:var(--color-sunken)}.stroke-warning{stroke:var(--color-warning)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.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-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.p-10{padding:calc(var(--spacing) * 10)}.p-px{padding:1px}.px-0{padding-inline:0}.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-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-7{padding-inline:calc(var(--spacing) * 7)}.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-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-16{padding-block:calc(var(--spacing) * 16)}.pt-0{padding-top:0}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.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-5{padding-top:calc(var(--spacing) * 5)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-24{padding-top:calc(var(--spacing) * 24)}.pr-0\.5{padding-right:calc(var(--spacing) * .5)}.pr-1{padding-right:var(--spacing)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-5{padding-right:calc(var(--spacing) * 5)}.pr-7{padding-right:calc(var(--spacing) * 7)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-9{padding-right:calc(var(--spacing) * 9)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pr-12{padding-right:calc(var(--spacing) * 12)}.pr-18{padding-right:calc(var(--spacing) * 18)}.pr-20{padding-right:calc(var(--spacing) * 20)}.pr-28{padding-right:calc(var(--spacing) * 28)}.pb-0\.5{padding-bottom:calc(var(--spacing) * .5)}.pb-1{padding-bottom:var(--spacing)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.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)}.pb-8{padding-bottom:calc(var(--spacing) * 8)}.pb-64{padding-bottom:calc(var(--spacing) * 64)}.pb-96{padding-bottom:calc(var(--spacing) * 96)}.pl-1\.5{padding-left:calc(var(--spacing) * 1.5)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-7{padding-left:calc(var(--spacing) * 7)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-9{padding-left:calc(var(--spacing) * 9)}.pl-10{padding-left:calc(var(--spacing) * 10)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-display{font-size:var(--text-display);line-height:var(--tw-leading,var(--text-display--line-height));letter-spacing:var(--tw-tracking,var(--text-display--letter-spacing));font-weight:var(--tw-font-weight,var(--text-display--font-weight))}.text-heading{font-size:var(--text-heading);line-height:var(--tw-leading,var(--text-heading--line-height));letter-spacing:var(--tw-tracking,var(--text-heading--letter-spacing));font-weight:var(--tw-font-weight,var(--text-heading--font-weight))}.text-title{font-size:var(--text-title);line-height:var(--tw-leading,var(--text-title--line-height));letter-spacing:var(--tw-tracking,var(--text-title--letter-spacing));font-weight:var(--tw-font-weight,var(--text-title--font-weight))}.text-body{font-size:var(--text-body);line-height:var(--tw-leading,var(--text-body--line-height))}.text-body-sm{font-size:var(--text-body-sm);line-height:var(--tw-leading,var(--text-body-sm--line-height))}.text-meta{font-size:var(--text-meta);line-height:var(--tw-leading,var(--text-meta--line-height))}.text-mono{font-size:var(--text-mono);line-height:var(--tw-leading,var(--text-mono--line-height))}.text-mono-sm{font-size:var(--text-mono-sm);line-height:var(--tw-leading,var(--text-mono-sm--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.text-ellipsis{text-overflow:ellipsis}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-accent{color:var(--color-accent)}.text-accent-hover{color:var(--color-accent-hover)}.text-current{color:currentColor}.text-danger{color:var(--color-danger)}.text-info{color:var(--color-info)}.text-ink{color:var(--color-ink)}.text-ink-dim{color:var(--color-ink-dim)}.text-ink-disabled{color:var(--color-ink-disabled)}.text-ink-muted{color:var(--color-ink-muted)}.text-on-accent{color:var(--color-on-accent)}.text-success{color:var(--color-success)}.text-transparent{color:#0000}.text-warning{color:var(--color-warning)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.decoration-2{text-decoration-thickness:2px}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.accent-accent{accent-color:var(--color-accent)}.accent-on-accent{accent-color:var(--color-on-accent)}.opacity-0{opacity:0}.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-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-overlay{--tw-shadow:var(--lo-overlay-shadow);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-canvas{--tw-ring-color:var(--color-canvas)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline,.outline-1{outline-style:var(--tw-outline-style);outline-width:1px}.outline-2{outline-style:var(--tw-outline-style);outline-width:2px}.-outline-offset-1{outline-offset:-1px}.outline-offset-1{outline-offset:1px}.outline-offset-2{outline-offset:2px}.outline-accent{outline-color:var(--color-accent)}.outline-control{outline-color:var(--color-control)}.outline-info-border{outline-color:var(--color-info-border)}.outline-warning-border{outline-color:var(--color-warning-border)}.blur{--tw-blur:blur(8px);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,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);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,)}.invert{--tw-invert:invert(100%);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-filter{-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-\[opacity\,background-color\]{transition-property:opacity,background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[opacity\,visibility\]{transition-property:opacity,visibility;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-base{--tw-duration:var(--transition-duration-base);transition-duration:var(--transition-duration-base)}.duration-fast{--tw-duration:var(--transition-duration-fast);transition-duration:var(--transition-duration-fast)}.duration-instant{--tw-duration:var(--transition-duration-instant);transition-duration:var(--transition-duration-instant)}.duration-slow{--tw-duration:var(--transition-duration-slow);transition-duration:var(--transition-duration-slow)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-linear{--tw-ease:linear;transition-timing-function:linear}.ease-out-quart{--tw-ease:var(--ease-out-quart);transition-timing-function:var(--ease-out-quart)}.will-change-\[scroll-position\]{will-change:scroll-position}.fade-in-0{--tw-enter-opacity:0}.outline-dashed{--tw-outline-style:dashed;outline-style:dashed}.outline-none{--tw-outline-style:none;outline-style:none}.outline-none\!{--tw-outline-style:none!important;outline-style:none!important}.outline-solid{--tw-outline-style:solid;outline-style:solid}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}.\!running{animation-play-state:running!important}.\[--md-ink\:var\(--lo-danger\)\]{--md-ink:var(--lo-danger)}.\[--md-ink\:var\(--lo-ink-muted\)\]{--md-ink:var(--lo-ink-muted)}.\[-ms-overflow-style\:none\]{-ms-overflow-style:none}.\[overflow-anchor\:auto\]{overflow-anchor:auto}.\[overflow-clip-margin\:4px\]{overflow-clip-margin:4px}.fade-in{--tw-enter-opacity:0}.paused{animation-play-state:paused}.running{animation-play-state:running}.group-focus-within\:pointer-events-auto:is(:where(.group):focus-within *){pointer-events:auto}.group-focus-within\:bg-elevated:is(:where(.group):focus-within *){background-color:var(--color-elevated)}.group-focus-within\:opacity-0:is(:where(.group):focus-within *){opacity:0}.group-focus-within\:opacity-100:is(:where(.group):focus-within *){opacity:1}.group-focus-within\:duration-fast:is(:where(.group):focus-within *){--tw-duration:var(--transition-duration-fast);transition-duration:var(--transition-duration-fast)}@media (hover:hover){.group-hover\:pointer-events-auto:is(:where(.group):hover *){pointer-events:auto}.group-hover\:visible:is(:where(.group):hover *){visibility:visible}.group-hover\:bg-elevated:is(:where(.group):hover *){background-color:var(--color-elevated)}.group-hover\:text-ink:is(:where(.group):hover *){color:var(--color-ink)}.group-hover\:opacity-0:is(:where(.group):hover *){opacity:0}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.group-hover\:delay-\[1500ms\]:is(:where(.group):hover *){transition-delay:1.5s}.group-hover\:duration-fast:is(:where(.group):hover *){--tw-duration:var(--transition-duration-fast);transition-duration:var(--transition-duration-fast)}.group-hover\:delay-\[1500ms\]:is(:where(.group):hover *){--tw-animation-delay:1.5s;animation-delay:1.5s}}.peer-disabled\:text-ink-disabled:is(:where(.peer):disabled~*){color:var(--color-ink-disabled)}.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\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-ink::file-selector-button{color:var(--color-ink)}.placeholder\:text-ink-dim::placeholder{color:var(--color-ink-dim)}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:inset-y-0:before{content:var(--tw-content);inset-block:0}.before\:left-0:before{content:var(--tw-content);left:0}.before\:w-0\.5:before{content:var(--tw-content);width:calc(var(--spacing) * .5)}.before\:bg-accent:before{content:var(--tw-content);background-color:var(--color-accent)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\:border-control:hover{border-color:var(--color-control)}.hover\:bg-accent-hover:hover{background-color:var(--color-accent-hover)}.hover\:bg-accent-wash:hover{background-color:var(--color-accent-wash)}.hover\:bg-danger-wash:hover{background-color:var(--color-danger-wash)}.hover\:bg-elevated:hover{background-color:var(--color-elevated)}.hover\:bg-highlight:hover{background-color:var(--color-highlight)}.hover\:bg-success-wash:hover{background-color:var(--color-success-wash)}.hover\:bg-surface:hover{background-color:var(--color-surface)}.hover\:bg-transparent:hover{background-color:#0000}.hover\:text-accent:hover{color:var(--color-accent)}.hover\:text-accent-hover:hover{color:var(--color-accent-hover)}.hover\:text-danger:hover{color:var(--color-danger)}.hover\:text-ink:hover{color:var(--color-ink)}.hover\:text-ink-disabled:hover{color:var(--color-ink-disabled)}.hover\:text-ink-muted:hover{color:var(--color-ink-muted)}.hover\:text-success:hover{color:var(--color-success)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:bg-danger-wash:focus{background-color:var(--color-danger-wash)}.focus\:text-danger:focus{color:var(--color-danger)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:opacity-100:focus-visible{opacity:1}.focus-visible\:outline:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-1\!:focus-visible{outline-offset:1px!important}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-offset-\[-2px\]\!:focus-visible{outline-offset:-2px!important}.focus-visible\:outline-accent:focus-visible{outline-color:var(--color-accent)}.active\:border-accent:active{border-color:var(--color-accent)}.active\:border-danger:active{border-color:var(--color-danger)}.active\:border-hairline:active{border-color:var(--color-hairline)}.active\:bg-\[color-mix\(in_oklab\,var\(--color-accent-wash\)_80\%\,var\(--color-accent\)\)\]:active{background-color:var(--color-accent-wash)}@supports (color:color-mix(in lab,red,red)){.active\:bg-\[color-mix\(in_oklab\,var\(--color-accent-wash\)_80\%\,var\(--color-accent\)\)\]:active{background-color:color-mix(in oklab,var(--color-accent-wash) 80%,var(--color-accent))}}.active\:bg-\[color-mix\(in_oklab\,var\(--color-danger-wash\)_80\%\,var\(--color-danger\)\)\]:active{background-color:var(--color-danger-wash)}@supports (color:color-mix(in lab,red,red)){.active\:bg-\[color-mix\(in_oklab\,var\(--color-danger-wash\)_80\%\,var\(--color-danger\)\)\]:active{background-color:color-mix(in oklab,var(--color-danger-wash) 80%,var(--color-danger))}}.active\:bg-accent-active:active{background-color:var(--color-accent-active)}.active\:bg-accent-wash:active{background-color:var(--color-accent-wash)}.active\:bg-sunken:active{background-color:var(--color-sunken)}.active\:bg-transparent:active{background-color:#0000}.active\:text-accent:active{color:var(--color-accent)}.active\:text-ink:active{color:var(--color-ink)}.active\:underline:active{text-decoration-line:underline}.active\:decoration-2:active{text-decoration-thickness:2px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:resize-none:disabled{resize:none}.disabled\:border-hairline:disabled{border-color:var(--color-hairline)}.disabled\:bg-sunken:disabled{background-color:var(--color-sunken)}.disabled\:bg-transparent:disabled{background-color:#0000}.disabled\:bg-none:disabled{background-image:none}.disabled\:text-ink-disabled:disabled{color:var(--color-ink-disabled)}.disabled\:no-underline:disabled{text-decoration-line:none}.disabled\:accent-ink-disabled:disabled{accent-color:var(--color-ink-disabled)}.disabled\:placeholder\:text-ink-disabled:disabled::placeholder{color:var(--color-ink-disabled)}@media (hover:hover){.disabled\:hover\:bg-transparent:disabled:hover{background-color:#0000}}.has-\[\[aria-expanded\=true\]\]\:pointer-events-auto:has([aria-expanded=true]){pointer-events:auto}.has-\[\[aria-expanded\=true\]\]\:opacity-100:has([aria-expanded=true]){opacity:1}.has-\[input\:focus-visible\]\:outline-2:has(:is(input:focus-visible)){outline-style:var(--tw-outline-style);outline-width:2px}.has-\[input\:focus-visible\]\:outline-offset-2:has(:is(input:focus-visible)){outline-offset:2px}.has-\[input\:focus-visible\]\:outline-accent:has(:is(input:focus-visible)){outline-color:var(--color-accent)}.has-\[input\:focus-visible\]\:outline-solid:has(:is(input:focus-visible)){--tw-outline-style:solid;outline-style:solid}.has-\[textarea\:focus-visible\]\:outline-2:has(:is(textarea:focus-visible)){outline-style:var(--tw-outline-style);outline-width:2px}.has-\[textarea\:focus-visible\]\:outline-offset-2:has(:is(textarea:focus-visible)){outline-offset:2px}.has-\[textarea\:focus-visible\]\:outline-accent:has(:is(textarea:focus-visible)){outline-color:var(--color-accent)}.has-\[textarea\:focus-visible\]\:outline-solid:has(:is(textarea:focus-visible)){--tw-outline-style:solid;outline-style:solid}.aria-invalid\:border-danger[aria-invalid=true]{border-color:var(--color-danger)}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:border-hairline[data-disabled]{border-color:var(--color-hairline)}.data-\[disabled\]\:bg-ink-disabled[data-disabled]{background-color:var(--color-ink-disabled)}.data-\[disabled\]\:bg-sunken[data-disabled]{background-color:var(--color-sunken)}.data-\[disabled\]\:text-ink-disabled[data-disabled]{color:var(--color-ink-disabled)}.data-\[highlighted\]\:bg-accent-wash[data-highlighted]{background-color:var(--color-accent-wash)}.data-\[highlighted\]\:bg-danger-wash[data-highlighted]{background-color:var(--color-danger-wash)}.data-\[highlighted\]\:bg-warning-wash[data-highlighted]{background-color:var(--color-warning-wash)}.data-\[placeholder\]\:not-data-\[disabled\]\:text-ink-dim[data-placeholder]:not([data-disabled]){color:var(--color-ink-dim)}.data-\[side\=bottom\]\:mt-1\.5[data-side=bottom]{margin-top:calc(var(--spacing) * 1.5)}.data-\[side\=top\]\:mb-1\.5[data-side=top]{margin-bottom:calc(var(--spacing) * 1.5)}.data-\[state\=active\]\:bg-surface[data-state=active]{background-color:var(--color-surface)}.data-\[state\=active\]\:text-ink[data-state=active]{color:var(--color-ink)}.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\]\:not-data-\[disabled\]\:border-accent[data-state=checked]:not([data-disabled]){border-color:var(--color-accent)}.data-\[state\=checked\]\:not-data-\[disabled\]\:bg-accent[data-state=checked]:not([data-disabled]){background-color:var(--color-accent)}.data-\[state\=checked\]\:not-data-\[disabled\]\:bg-on-accent[data-state=checked]:not([data-disabled]){background-color:var(--color-on-accent)}.data-\[state\=indeterminate\]\:not-data-\[disabled\]\:border-accent[data-state=indeterminate]:not([data-disabled]){border-color:var(--color-accent)}.data-\[state\=indeterminate\]\:not-data-\[disabled\]\:bg-accent[data-state=indeterminate]:not([data-disabled]){background-color:var(--color-accent)}.data-\[state\=open\]\:bg-accent-wash[data-state=open]{background-color:var(--color-accent-wash)}@media (prefers-reduced-motion:no-preference){.motion-safe\:animate-spin{animation:var(--animate-spin)}}@media (min-width:1040px){.min-\[1040px\]\:w-55{width:calc(var(--spacing) * 55)}}@media (min-width:1280px){.min-\[1280px\]\:w-96{width:calc(var(--spacing) * 96)}}@media (min-width:40rem){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:max-w-\[90\%\]{max-width:90%}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:justify-end{justify-content:flex-end}.sm\:self-center{align-self:center}.sm\:p-6{padding:calc(var(--spacing) * 6)}}@media (min-width:48rem){.md\:block{display:block}.md\:max-w-\[900px\]{max-width:900px}.md\:p-8{padding:calc(var(--spacing) * 8)}}@media (min-width:64rem){.lg\:hidden{display:none}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.lg\:border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.lg\:p-8{padding:calc(var(--spacing) * 8)}.lg\:p-12{padding:calc(var(--spacing) * 12)}}@container not (min-width:520px){.\@max-\[520px\]\:hidden{display:none}}@container olderhistory not (min-width:260px){.\@max-\[260px\]\/olderhistory\:hidden{display:none}}@container chatcol not (min-width:240px){.\@max-\[240px\]\/chatcol\:sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.\@max-\[240px\]\/chatcol\:w-11{width:calc(var(--spacing) * 11)}.\@max-\[240px\]\/chatcol\:w-full{width:100%}.\@max-\[240px\]\/chatcol\:min-w-11{min-width:calc(var(--spacing) * 11)}.\@max-\[240px\]\/chatcol\:flex-none{flex:none}.\@max-\[240px\]\/chatcol\:flex-col{flex-direction:column}.\@max-\[240px\]\/chatcol\:flex-nowrap{flex-wrap:nowrap}.\@max-\[240px\]\/chatcol\:justify-center{justify-content:center}.\@max-\[240px\]\/chatcol\:px-0{padding-inline:0}}@container not (min-width:56rem){.\@max-4xl\:ml-auto{margin-left:auto}}@container not (min-width:42rem){.\@max-2xl\:pointer-events-none{pointer-events:none}.\@max-2xl\:absolute{position:absolute}.\@max-2xl\:inset-y-0{inset-block:0}.\@max-2xl\:right-1{right:var(--spacing)}.\@max-2xl\:min-w-30{min-width:calc(var(--spacing) * 30)}.\@max-2xl\:min-w-33{min-width:calc(var(--spacing) * 33)}.\@max-2xl\:min-w-50{min-width:calc(var(--spacing) * 50)}.\@max-2xl\:min-w-56{min-width:calc(var(--spacing) * 56)}.\@max-2xl\:min-w-62{min-width:calc(var(--spacing) * 62)}.\@max-2xl\:min-w-\[17rem\]{min-width:17rem}.\@max-2xl\:bg-elevated{background-color:var(--color-elevated)}.\@max-2xl\:opacity-0{opacity:0}.\@max-2xl\:group-focus-within\:pointer-events-auto:is(:where(.group):focus-within *){pointer-events:auto}.\@max-2xl\:group-focus-within\:bg-elevated:is(:where(.group):focus-within *){background-color:var(--color-elevated)}.\@max-2xl\:group-focus-within\:opacity-100:is(:where(.group):focus-within *){opacity:1}@media (hover:hover){.\@max-2xl\:group-hover\:pointer-events-auto:is(:where(.group):hover *){pointer-events:auto}.\@max-2xl\:group-hover\:bg-elevated:is(:where(.group):hover *){background-color:var(--color-elevated)}.\@max-2xl\:group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}}@container olderhistory (min-width:260px){.\@min-\[260px\]\/olderhistory\:hidden{display:none}}@container (min-width:400px){.\@min-\[400px\]\:hidden{display:none}.\@min-\[400px\]\:inline-flex{display:inline-flex}}@container (min-width:560px){.\@min-\[560px\]\:px-8{padding-inline:calc(var(--spacing) * 8)}.\@min-\[560px\]\:py-8{padding-block:calc(var(--spacing) * 8)}}@container chatcol (min-width:620px){.\@min-\[620px\]\/chatcol\:inline{display:inline}}@container chatcol (min-width:750px){.\@min-\[750px\]\/chatcol\:order-2{order:2}.\@min-\[750px\]\/chatcol\:order-3{order:3}.\@min-\[750px\]\/chatcol\:mx-auto{margin-inline:auto}.\@min-\[750px\]\/chatcol\:contents{display:contents}.\@min-\[750px\]\/chatcol\:max-w-\[900px\]{max-width:900px}.\@min-\[750px\]\/chatcol\:shrink-0{flex-shrink:0}.\@min-\[750px\]\/chatcol\:basis-auto{flex-basis:auto}.\@min-\[750px\]\/chatcol\:flex-nowrap{flex-wrap:nowrap}@container chatcol not (min-width:860px){.\@min-\[750px\]\/chatcol\:\@max-\[860px\]\/chatcol\:hidden{display:none}}}@container chatcol (min-width:900px){.\@min-\[900px\]\/chatcol\:w-\[16ch\]{width:16ch}.\@min-\[900px\]\/chatcol\:max-w-\[19rem\]{max-width:19rem}}@container slash (min-width:24rem){.\@min-\[24rem\]\/slash\:inline{display:inline}}@container toolrow (min-width:34rem){.\@\[34rem\]\/toolrow\:flex{display:flex}}@container (min-width:42rem){@container not (min-width:72rem){.\@2xl\:\@max-6xl\:min-w-36{min-width:calc(var(--spacing) * 36)}.\@2xl\:\@max-6xl\:min-w-48{min-width:calc(var(--spacing) * 48)}.\@2xl\:\@max-6xl\:min-w-60{min-width:calc(var(--spacing) * 60)}.\@2xl\:\@max-6xl\:min-w-72{min-width:calc(var(--spacing) * 72)}.\@2xl\:\@max-6xl\:min-w-80{min-width:calc(var(--spacing) * 80)}}}.\[\&_\.pointer-events-none\.opacity-0\]\:pointer-events-auto .pointer-events-none.opacity-0{pointer-events:auto}.\[\&_\.pointer-events-none\.opacity-0\]\:opacity-100 .pointer-events-none.opacity-0{opacity:1}.\[\&_\.react-syntax-highlighter-code-block_\*\]\:font-mono\! .react-syntax-highlighter-code-block *{font-family:var(--font-mono)!important}.\[\&_\.recharts-active-bar\]\:fill-chart-bar-hover .recharts-active-bar{fill:var(--color-chart-bar-hover)}.\[\&_\.recharts-active-dot_circle\]\:fill-accent .recharts-active-dot circle,.\[\&_\.recharts-bar-rectangle\]\:fill-accent .recharts-bar-rectangle{fill:var(--color-accent)}.\[\&_\.recharts-cartesian-axis-tick-value\]\:fill-ink-dim .recharts-cartesian-axis-tick-value{fill:var(--color-ink-dim)}.\[\&_\.recharts-cartesian-axis-tick-value\]\:text-meta .recharts-cartesian-axis-tick-value{font-size:var(--text-meta);line-height:var(--tw-leading,var(--text-meta--line-height))}.\[\&_\.recharts-cartesian-grid_line\]\:stroke-hairline .recharts-cartesian-grid line{stroke:var(--color-hairline)}.\[\&_\.recharts-line-curve\]\:stroke-accent .recharts-line-curve{stroke:var(--color-accent)}.\[\&_\.recharts-tooltip-cursor\]\:stroke-hairline .recharts-tooltip-cursor{stroke:var(--color-hairline)}.\[\&_\:is\(h1\,h2\,h3\,h4\,h5\,h6\)\]\:mt-3 :is(h1,h2,h3,h4,h5,h6){margin-top:calc(var(--spacing) * 3)}.\[\&_\:is\(h1\,h2\,h3\,h4\,h5\,h6\)\]\:mt-4 :is(h1,h2,h3,h4,h5,h6){margin-top:calc(var(--spacing) * 4)}.\[\&_\:is\(h1\,h2\,h3\,h4\,h5\,h6\)\]\:mb-1 :is(h1,h2,h3,h4,h5,h6){margin-bottom:var(--spacing)}.\[\&_\:is\(h1\,h2\,h3\,h4\,h5\,h6\)\]\:mb-2 :is(h1,h2,h3,h4,h5,h6){margin-bottom:calc(var(--spacing) * 2)}.\[\&_\:is\(h1\,h2\,h3\,h4\,h5\,h6\)\]\:font-semibold :is(h1,h2,h3,h4,h5,h6){--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.\[\&_\:is\(h1\,h2\,h3\,h4\,h5\,h6\)\]\:text-ink :is(h1,h2,h3,h4,h5,h6){color:var(--color-ink)}.\[\&_\:is\(h1\,h2\,h3\,h4\,h5\,h6\)\:first-child\]\:mt-0 :is(h1,h2,h3,h4,h5,h6):first-child{margin-top:0}.\[\&_\:is\(th\,td\)\]\:border-b :is(th,td){border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_\:is\(th\,td\)\]\:border-hairline :is(th,td){border-color:var(--color-hairline)}.\[\&_\:is\(th\,td\)\]\:py-1\.5 :is(th,td){padding-block:calc(var(--spacing) * 1.5)}.\[\&_\:is\(th\,td\)\]\:pr-4 :is(th,td){padding-right:calc(var(--spacing) * 4)}.\[\&_\:is\(th\,td\)\]\:text-left :is(th,td){text-align:left}.\[\&_\:is\(th\,td\)\:last-child\]\:pr-0 :is(th,td):last-child{padding-right:0}.\[\&_\:is\(ul\,ol\)\]\:my-1\.5 :is(ul,ol){margin-block:calc(var(--spacing) * 1.5)}.\[\&_\:is\(ul\,ol\)\]\:my-2 :is(ul,ol){margin-block:calc(var(--spacing) * 2)}.\[\&_\:is\(ul\,ol\)\]\:pl-5 :is(ul,ol){padding-left:calc(var(--spacing) * 5)}.\[\&_\:is\(ul\,ol\)\]\:pl-6 :is(ul,ol){padding-left:calc(var(--spacing) * 6)}.\[\&_\[contenteditable\]\]\:min-h-50 [contenteditable]{min-height:calc(var(--spacing) * 50)}.\[\&_\[contenteditable\]\]\:text-body [contenteditable]{font-size:var(--text-body);line-height:var(--tw-leading,var(--text-body--line-height))}.\[\&_\[contenteditable\]\]\:leading-relaxed [contenteditable]{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\[\&_\[contenteditable\]\]\:text-ink [contenteditable]{color:var(--color-ink)}.\[\&_\[contenteditable\]\]\:outline-none [contenteditable]{--tw-outline-style:none;outline-style:none}.\[\&_\[data-alert-mark\]\]\:text-danger [data-alert-mark]{color:var(--color-danger)}.\[\&_\[data-alert-mark\]\]\:text-info [data-alert-mark]{color:var(--color-info)}.\[\&_\[data-alert-mark\]\]\:text-ink [data-alert-mark]{color:var(--color-ink)}.\[\&_\[data-alert-mark\]\]\:text-success [data-alert-mark]{color:var(--color-success)}.\[\&_\[data-alert-mark\]\]\:text-warning [data-alert-mark]{color:var(--color-warning)}.\[\&_a\]\:text-accent a{color:var(--color-accent)}.\[\&_a\]\:underline a{text-decoration-line:underline}.\[\&_a\]\:underline-offset-4 a{text-underline-offset:4px}@media (hover:hover){.\[\&_a\]\:hover\:underline a:hover,.hover\:\[\&_a\]\:underline:hover a{text-decoration-line:underline}}.\[\&_a\:hover\]\:text-accent-hover a:hover{color:var(--color-accent-hover)}.\[\&_blockquote\]\:my-3 blockquote{margin-block:calc(var(--spacing) * 3)}.\[\&_blockquote\]\:rounded-r-xs blockquote{border-top-right-radius:var(--radius-xs);border-bottom-right-radius:var(--radius-xs)}.\[\&_blockquote\]\:border-l-2 blockquote{border-left-style:var(--tw-border-style);border-left-width:2px}.\[\&_blockquote\]\:border-hairline blockquote{border-color:var(--color-hairline)}.\[\&_blockquote\]\:bg-sunken blockquote{background-color:var(--color-sunken)}.\[\&_blockquote\]\:px-3 blockquote{padding-inline:calc(var(--spacing) * 3)}.\[\&_blockquote\]\:py-2 blockquote{padding-block:calc(var(--spacing) * 2)}.\[\&_blockquote\]\:text-ink-muted blockquote{color:var(--color-ink-muted)}.\[\&_code\]\:rounded-xs code{border-radius:var(--radius-xs)}.\[\&_code\]\:bg-sunken code{background-color:var(--color-sunken)}.\[\&_code\]\:bg-none code{background-image:none}.\[\&_code\]\:p-0\.5 code{padding:calc(var(--spacing) * .5)}.\[\&_code\]\:px-1 code{padding-inline:var(--spacing)}.\[\&_code\]\:font-mono code{font-family:var(--font-mono)}.\[\&_code\]\:text-mono-sm code{font-size:var(--text-mono-sm);line-height:var(--tw-leading,var(--text-mono-sm--line-height))}.\[\&_h1\]\:text-heading h1{font-size:var(--text-heading);line-height:var(--tw-leading,var(--text-heading--line-height));letter-spacing:var(--tw-tracking,var(--text-heading--letter-spacing));font-weight:var(--tw-font-weight,var(--text-heading--font-weight))}.\[\&_h1\]\:text-title h1{font-size:var(--text-title);line-height:var(--tw-leading,var(--text-title--line-height));letter-spacing:var(--tw-tracking,var(--text-title--letter-spacing));font-weight:var(--tw-font-weight,var(--text-title--font-weight))}.\[\&_h2\]\:text-heading h2,.\[\&_h3\]\:text-heading h3{font-size:var(--text-heading);line-height:var(--tw-leading,var(--text-heading--line-height));letter-spacing:var(--tw-tracking,var(--text-heading--letter-spacing));font-weight:var(--tw-font-weight,var(--text-heading--font-weight))}.\[\&_h3\]\:text-body h3,.\[\&_h4\]\:text-body h4,.\[\&_h5\]\:text-body h5{font-size:var(--text-body);line-height:var(--tw-leading,var(--text-body--line-height))}.\[\&_h5\]\:text-body-sm h5,.\[\&_h6\]\:text-body-sm h6{font-size:var(--text-body-sm);line-height:var(--tw-leading,var(--text-body-sm--line-height))}.\[\&_img\]\:my-2 img{margin-block:calc(var(--spacing) * 2)}.\[\&_img\]\:h-auto img{height:auto}.\[\&_img\]\:max-w-full img{max-width:100%}.\[\&_img\]\:rounded-xs img{border-radius:var(--radius-xs)}.\[\&_kbd_svg\]\:size-3 kbd svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_li\]\:my-0\.5 li{margin-block:calc(var(--spacing) * .5)}.\[\&_li\]\:my-1 li{margin-block:var(--spacing)}.\[\&_li\.task-list-item\]\:list-none li.task-list-item{list-style-type:none}.\[\&_ol_li\]\:list-decimal ol li{list-style-type:decimal}.\[\&_p\]\:m-0 p{margin:0}.\[\&_p\]\:my-1\.5 p{margin-block:calc(var(--spacing) * 1.5)}.\[\&_p\]\:my-2 p{margin-block:calc(var(--spacing) * 2)}.\[\&_p\:first-child\]\:mt-0 p:first-child{margin-top:0}.\[\&_p\:last-child\]\:mb-0 p:last-child{margin-bottom:0}.\[\&_pre\]\:my-3 pre{margin-block:calc(var(--spacing) * 3)}.\[\&_pre\]\:overflow-auto pre{overflow:auto}.\[\&_pre\]\:rounded-sm pre{border-radius:var(--radius-sm)}.\[\&_pre\]\:bg-sunken pre{background-color:var(--color-sunken)}.\[\&_pre\]\:bg-none pre{background-image:none}.\[\&_pre\]\:p-3 pre{padding:calc(var(--spacing) * 3)}.\[\&_pre_code\]\:bg-transparent pre code{background-color:#0000}.\[\&_pre_code\]\:p-0 pre code{padding:0}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-3 svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\]\:size-3\.5 svg{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\]\:size-5 svg{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.\[\&_svg\]\:h-auto svg{height:auto}.\[\&_svg\]\:max-h-full svg{max-height:100%}.\[\&_svg\]\:min-h-100 svg{min-height:calc(var(--spacing) * 100)}.\[\&_svg\]\:w-auto svg{width:auto}.\[\&_svg\]\:max-w-full svg{max-width:100%}.\[\&_svg\]\:max-w-none svg{max-width:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\]\:bg-transparent svg{background-color:#0000}.\[\&_table\]\:my-3 table{margin-block:calc(var(--spacing) * 3)}.\[\&_table\]\:w-full table{width:100%}.\[\&_table\]\:border-collapse table{border-collapse:collapse}.\[\&_tbody_tr\:last-child_td\]\:border-b-0 tbody tr:last-child td{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.\[\&_th\]\:font-semibold th{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.\[\&_th\]\:text-ink-muted th{color:var(--color-ink-muted)}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&_ul_li\]\:list-disc ul li{list-style-type:disc}.\[\&\:\:-webkit-inner-spin-button\]\:appearance-none::-webkit-inner-spin-button{appearance:none}.\[\&\:\:-webkit-outer-spin-button\]\:appearance-none::-webkit-outer-spin-button{appearance:none}.\[\&\:\:-webkit-scrollbar\]\:hidden::-webkit-scrollbar{display:none}.\[\&\:\:-webkit-slider-thumb\]\:size-4::-webkit-slider-thumb{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&\:\:-webkit-slider-thumb\]\:appearance-none::-webkit-slider-thumb{appearance:none}.\[\&\:\:-webkit-slider-thumb\]\:rounded-full::-webkit-slider-thumb{border-radius:3.40282e38px}.\[\&\:\:-webkit-slider-thumb\]\:bg-accent::-webkit-slider-thumb{background-color:var(--color-accent)}.\[\&\:\:-webkit-slider-thumb\]\:transition-colors::-webkit-slider-thumb{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))}.\[\&\:\:-webkit-slider-thumb\]\:duration-fast::-webkit-slider-thumb{--tw-duration:var(--transition-duration-fast);transition-duration:var(--transition-duration-fast)}.\[\&\:\:-webkit-slider-thumb\]\:ease-out-quart::-webkit-slider-thumb{--tw-ease:var(--ease-out-quart);transition-timing-function:var(--ease-out-quart)}@media (hover:hover){.\[\&\:\:-webkit-slider-thumb\]\:hover\:bg-accent-hover::-webkit-slider-thumb:hover{background-color:var(--color-accent-hover)}}.disabled\:\[\&\:\:-webkit-slider-thumb\]\:bg-ink-disabled:disabled::-webkit-slider-thumb{background-color:var(--color-ink-disabled)}.\[\&\:\:highlight\(current-find-highlight\)\]\:bg-accent::highlight(current-find-highlight){background-color:var(--color-accent)}.\[\&\:\:highlight\(current-find-highlight\)\]\:text-on-accent::highlight(current-find-highlight){color:var(--color-on-accent)}.\[\&\:\:highlight\(find-highlight\)\]\:bg-accent-wash::highlight(find-highlight){background-color:var(--color-accent-wash)}.\[\&\:\:highlight\(find-highlight\)\]\:text-ink::highlight(find-highlight){color:var(--color-ink)}.\[\&\>div\:empty\]\:hidden>div:empty{display:none}.\[\&\>span\]\:animate-\[waveform-bar_1\.2s_infinite_ease-in-out\]>span{animation:1.2s ease-in-out infinite waveform-bar}.\[\&\>span\]\:truncate>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}}@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}[data-theme=dracula]{color-scheme:dark;--lo-canvas:#282a36;--lo-surface:#2f3146;--lo-elevated:#3d4055;--lo-sunken:#21222c;--lo-highlight:#36384d;--lo-ink:#f8f8f2;--lo-ink-muted:#bfbfbf;--lo-ink-dim:#a3acc9;--lo-ink-disabled:#6272a4;--lo-hairline:#4a4c5e;--lo-border-control:#7d8bb4;--lo-accent:#bd93f9;--lo-accent-hover:#d1aeff;--lo-accent-active:#a884de;--lo-chart-bar-hover:#d3b8fb;--lo-accent-wash:#3a374d;--lo-on-accent:#282a36;--lo-success:#50fa7b;--lo-success-wash:#2d433e;--lo-success-border:#3e9c5c;--lo-warning:#ffb86c;--lo-warning-wash:#423b3c;--lo-warning-border:#9e7854;--lo-danger:#ff7171;--lo-danger-wash:#422f3a;--lo-danger-border:#be6368;--lo-info:#8be9fd;--lo-info-wash:#34414e;--lo-info-border:#5e93a3;--lo-overlay-shadow:0 12px 32px -12px #0d0e14a6;--lo-scrim:#0d0e1499}[data-theme=dune]{color-scheme:dark;--lo-canvas:#0f0d0b;--lo-surface:#1a1714;--lo-elevated:#261e17;--lo-sunken:#050403;--lo-highlight:#211e1b;--lo-ink:#f8f3ec;--lo-ink-muted:#bfb3a7;--lo-ink-dim:#9e9285;--lo-ink-disabled:#6b6055;--lo-hairline:#3a2b11;--lo-border-control:#8a7d6e;--lo-accent:#ff8c38;--lo-accent-hover:#ffa75c;--lo-accent-active:#e67016;--lo-chart-bar-hover:#ffb27a;--lo-accent-wash:#2c1c10;--lo-on-accent:#0f0d0b;--lo-success:#a3c46b;--lo-success-wash:#212317;--lo-success-border:#607240;--lo-warning:#e8c15a;--lo-warning-wash:#292314;--lo-warning-border:#867036;--lo-danger:#e5604c;--lo-danger-wash:#291713;--lo-danger-border:#a74a3b;--lo-info:#ff8c38;--lo-info-wash:#2c1c10;--lo-info-border:#985625;--lo-overlay-shadow:0 12px 32px -12px #050403b3;--lo-scrim:#05040399}[data-theme=iceberg]{color-scheme:light;--lo-canvas:#e8e9ec;--lo-surface:#f2f3f6;--lo-elevated:#fdfdff;--lo-sunken:#e1e2e7;--lo-highlight:#e8e9eb;--lo-ink:#33374c;--lo-ink-muted:#4a4e64;--lo-ink-dim:#5b5f74;--lo-ink-disabled:#a0a4b8;--lo-hairline:#cbccd2;--lo-border-control:#787d97;--lo-accent:#2d539e;--lo-accent-hover:#1e3a7d;--lo-accent-active:#162e63;--lo-chart-bar-hover:#1f396c;--lo-accent-wash:#d5dae4;--lo-on-accent:#f2f5f9;--lo-success:#4c692d;--lo-success-wash:#dbe0db;--lo-success-border:#718b57;--lo-warning:#8d5229;--lo-warning-wash:#e5ddda;--lo-warning-border:#b87142;--lo-danger:#ab325b;--lo-danger-wash:#e5dae1;--lo-danger-border:#c76286;--lo-info:#316682;--lo-info-wash:#d7dfe5;--lo-info-border:#5289a8;--lo-overlay-shadow:0 12px 32px -12px #262a3f38;--lo-scrim:#262a3f59}[data-theme=localOperatorDark]{color-scheme:dark;--lo-canvas:#16130e;--lo-surface:#1e1a14;--lo-elevated:#282318;--lo-sunken:#0f0c08;--lo-highlight:#25211b;--lo-ink:#f1eee6;--lo-ink-muted:#b5afa2;--lo-ink-dim:#918b7d;--lo-ink-disabled:#5f5a4e;--lo-hairline:#353022;--lo-border-control:#837c6d;--lo-accent:#38c96a;--lo-accent-hover:#5ad584;--lo-accent-active:#2bb25c;--lo-chart-bar-hover:#85dea3;--lo-accent-wash:#16281d;--lo-on-accent:#16130e;--lo-success:#57c785;--lo-success-wash:#16281d;--lo-success-border:#417557;--lo-warning:#e0b04b;--lo-warning-wash:#2a2213;--lo-warning-border:#857036;--lo-danger:#ef8078;--lo-danger-wash:#2e1b18;--lo-danger-border:#9e5a51;--lo-info:#86b3f2;--lo-info-wash:#192332;--lo-info-border:#5475a2;--lo-overlay-shadow:0 12px 32px -12px #0009;--lo-scrim:#0009}[data-theme=localOperatorLight]{color-scheme:light;--lo-canvas:#f5f0e6;--lo-surface:#faf8f1;--lo-elevated:#fffefb;--lo-sunken:#efe9db;--lo-highlight:#efede6;--lo-ink:#211e18;--lo-ink-muted:#565147;--lo-ink-dim:#6c675c;--lo-ink-disabled:#9a9488;--lo-hairline:#ddd8ce;--lo-border-control:#857f70;--lo-accent:#147842;--lo-accent-hover:#116036;--lo-accent-active:#0c4b2a;--lo-chart-bar-hover:#0f5a31;--lo-accent-wash:#e7f1e8;--lo-on-accent:#f6faf8;--lo-success:#1a774a;--lo-success-wash:#e6f1ea;--lo-success-border:#3e6b4e;--lo-warning:#8a5800;--lo-warning-wash:#f5ecd9;--lo-warning-border:#7a5a1e;--lo-danger:#b23a31;--lo-danger-wash:#f7e7e4;--lo-danger-border:#96544c;--lo-info:#2368a8;--lo-info-wash:#e9ebef;--lo-info-border:#486893;--lo-overlay-shadow:0 12px 32px -12px #14110c40;--lo-scrim:#14110c59}[data-theme=monokai]{color-scheme:dark;--lo-canvas:#272822;--lo-surface:#2e2f28;--lo-elevated:#3e3d32;--lo-sunken:#1e1f1a;--lo-highlight:#35362f;--lo-ink:#f8f8f2;--lo-ink-muted:#bfbfbf;--lo-ink-dim:#aca998;--lo-ink-disabled:#75715e;--lo-hairline:#464740;--lo-border-control:#8e8a73;--lo-accent:#a6e22e;--lo-accent-hover:#b6e94e;--lo-accent-active:#8bc220;--lo-chart-bar-hover:#d0f090;--lo-accent-wash:#363e23;--lo-on-accent:#272822;--lo-success:#a6e22e;--lo-success-wash:#363e23;--lo-success-border:#6d8e29;--lo-warning:#fd971f;--lo-warning-wash:#413522;--lo-warning-border:#a76c22;--lo-danger:#fb6097;--lo-danger-wash:#40282c;--lo-danger-border:#d04573;--lo-info:#66d9ef;--lo-info-wash:#2f3d3b;--lo-info-border:#4a8993;--lo-overlay-shadow:0 12px 32px -12px #0f0f0ca6;--lo-scrim:#0f0f0c99}[data-theme=neon]{color-scheme:dark;--lo-canvas:#080c18;--lo-surface:#0f1524;--lo-elevated:#182036;--lo-sunken:#03040a;--lo-highlight:#171c2b;--lo-ink:#e0e0e0;--lo-ink-muted:#a0a0b0;--lo-ink-dim:#8a8a9c;--lo-ink-disabled:#5e5e70;--lo-hairline:#0d3140;--lo-border-control:#6f8f99;--lo-accent:#00efff;--lo-accent-hover:#66f7ff;--lo-accent-active:#00b8d9;--lo-chart-bar-hover:#b0faff;--lo-accent-wash:#072734;--lo-on-accent:#000e0f;--lo-success:#2bff88;--lo-success-wash:#0c2925;--lo-success-border:#1b9256;--lo-warning:orange;--lo-warning-wash:#261e15;--lo-warning-border:#90600b;--lo-danger:#ff00a0;--lo-danger-wash:#260b28;--lo-danger-border:#c00784;--lo-info:#00efff;--lo-info-wash:#072734;--lo-info-border:#048997;--lo-overlay-shadow:0 12px 32px -12px #000000bf;--lo-scrim:#020408a6}[data-theme=obsidian]{color-scheme:dark;--lo-canvas:#09090b;--lo-surface:#18181b;--lo-elevated:#27272a;--lo-sunken:#030307;--lo-highlight:#1f1f22;--lo-ink:#fafafa;--lo-ink-muted:#a1a1aa;--lo-ink-dim:#8f8f97;--lo-ink-disabled:#52525b;--lo-hairline:#343436;--lo-border-control:#72727b;--lo-accent:#fafafa;--lo-accent-hover:#e4e4e7;--lo-accent-active:#d4d4d8;--lo-chart-bar-hover:#fcfce4;--lo-accent-wash:#262628;--lo-on-accent:#09090b;--lo-success:#86bfa1;--lo-success-wash:#181f1d;--lo-success-border:#4e6e5f;--lo-warning:#cbaf7e;--lo-warning-wash:#201d19;--lo-warning-border:#75654a;--lo-danger:#de9391;--lo-danger-wash:#231a1b;--lo-danger-border:#885c5c;--lo-info:#fafafa;--lo-info-wash:#262628;--lo-info-border:#8e8e8e;--lo-overlay-shadow:0 12px 32px -12px #030307cc;--lo-scrim:#030307a6}[data-theme=radient]{color-scheme:dark;--lo-canvas:#10151c;--lo-surface:#1a1f2f;--lo-elevated:#282d47;--lo-sunken:#0a0d12;--lo-highlight:#212636;--lo-ink:#f2f7fc;--lo-ink-muted:#c2d2e0;--lo-ink-dim:#8fa8bc;--lo-ink-disabled:#64748b;--lo-hairline:#343847;--lo-border-control:#7a8ca3;--lo-accent:#91b7e9;--lo-accent-hover:#bdf0fd;--lo-accent-active:#6e9ad4;--lo-chart-bar-hover:#c1d7f3;--lo-accent-wash:#1f2835;--lo-on-accent:#10151c;--lo-success:#63d2a0;--lo-success-wash:#1a2c2c;--lo-success-border:#3e7d65;--lo-warning:#e3b457;--lo-warning-wash:#292823;--lo-warning-border:#846c3c;--lo-danger:#ef7e86;--lo-danger-wash:#2b2229;--lo-danger-border:#9c5960;--lo-info:#91b7e9;--lo-info-wash:#1f2835;--lo-info-border:#576e8d;--lo-overlay-shadow:0 12px 32px -12px #04060ab3;--lo-scrim:#04060a99}[data-theme=sage]{color-scheme:light;--lo-canvas:#f3eee0;--lo-surface:#fbf7ec;--lo-elevated:#fffef9;--lo-sunken:#e9e2d0;--lo-highlight:#f0ede2;--lo-ink:#222c1f;--lo-ink-muted:#454f3a;--lo-ink-dim:#5a674c;--lo-ink-disabled:#96a088;--lo-hairline:#d5d3c5;--lo-border-control:#68865f;--lo-accent:#476e49;--lo-accent-hover:#35563a;--lo-accent-active:#294229;--lo-chart-bar-hover:#345035;--lo-accent-wash:#e6e9d8;--lo-on-accent:#f4f6f4;--lo-success:#446f26;--lo-success-wash:#e9ebd3;--lo-success-border:#669438;--lo-warning:#825c06;--lo-warning-wash:#eae2cc;--lo-warning-border:#9e8549;--lo-danger:#a8402f;--lo-danger-wash:#edded0;--lo-danger-border:#bf7462;--lo-info:#3a659f;--lo-info-wash:#e9e9e7;--lo-info-border:#6888be;--lo-overlay-shadow:0 12px 32px -12px #222c1f38;--lo-scrim:#222c1f59}[data-theme=synth]{color-scheme:dark;--lo-canvas:#120720;--lo-surface:#1b0a2f;--lo-elevated:#2c1d43;--lo-sunken:#06020d;--lo-highlight:#231236;--lo-ink:#f7f2fb;--lo-ink-muted:#b9aaca;--lo-ink-dim:#9c8cae;--lo-ink-disabled:#6b5c7d;--lo-hairline:#5b1946;--lo-border-control:#8a7ba0;--lo-accent:#ff4081;--lo-accent-hover:#ff79b0;--lo-accent-active:#f50057;--lo-chart-bar-hover:#ff7ba8;--lo-accent-wash:#2e0e2c;--lo-on-accent:#120720;--lo-success:#4de8a8;--lo-success-wash:#192230;--lo-success-border:#32836b;--lo-warning:orange;--lo-warning-wash:#2e1a1c;--lo-warning-border:#945e0e;--lo-danger:#ff6b6b;--lo-danger-wash:#2e1329;--lo-danger-border:#a44551;--lo-info:#00e5ff;--lo-info-wash:#10223b;--lo-info-border:#08819b;--lo-overlay-shadow:0 12px 32px -12px #06020dbf;--lo-scrim:#06020da6}[data-theme=tokyoNight]{color-scheme:dark;--lo-canvas:#1a1b26;--lo-surface:#24283b;--lo-elevated:#2f334d;--lo-sunken:#14141b;--lo-highlight:#2b2f42;--lo-ink:#c0caf5;--lo-ink-muted:#a9b1d6;--lo-ink-dim:#979ebe;--lo-ink-disabled:#565f89;--lo-hairline:#3d4462;--lo-border-control:#757ea9;--lo-accent:#7aa2f7;--lo-accent-hover:#9ebcff;--lo-accent-active:#6d8fda;--lo-chart-bar-hover:#aac3fa;--lo-accent-wash:#262b3f;--lo-on-accent:#1a1b26;--lo-success:#9ece6a;--lo-success-wash:#2a302e;--lo-success-border:#637d4b;--lo-warning:#e0af68;--lo-warning-wash:#322d2e;--lo-warning-border:#8c704d;--lo-danger:#f7768e;--lo-danger-wash:#352632;--lo-danger-border:#ab5d70;--lo-info:#7dcfff;--lo-info-wash:#263140;--lo-info-border:#507e9d;--lo-overlay-shadow:0 12px 32px -12px #09090eb3;--lo-scrim:#09090e99}[data-theme]:not(:root){--color-canvas:var(--lo-canvas);--color-surface:var(--lo-surface);--color-elevated:var(--lo-elevated);--color-sunken:var(--lo-sunken);--color-highlight:var(--lo-highlight);--color-ink:var(--lo-ink);--color-ink-muted:var(--lo-ink-muted);--color-ink-dim:var(--lo-ink-dim);--color-ink-disabled:var(--lo-ink-disabled);--color-hairline:var(--lo-hairline);--color-control:var(--lo-border-control);--color-accent:var(--lo-accent);--color-accent-hover:var(--lo-accent-hover);--color-accent-active:var(--lo-accent-active);--color-accent-wash:var(--lo-accent-wash);--color-on-accent:var(--lo-on-accent);--color-chart-bar-hover:var(--lo-chart-bar-hover);--color-success:var(--lo-success);--color-success-wash:var(--lo-success-wash);--color-success-border:var(--lo-success-border);--color-warning:var(--lo-warning);--color-warning-wash:var(--lo-warning-wash);--color-warning-border:var(--lo-warning-border);--color-danger:var(--lo-danger);--color-danger-wash:var(--lo-danger-wash);--color-danger-border:var(--lo-danger-border);--color-info:var(--lo-info);--color-info-wash:var(--lo-info-wash);--color-info-border:var(--lo-info-border);--color-scrim:var(--lo-scrim);--shadow-overlay:var(--lo-overlay-shadow)}.lo-quantity-header .ag-header-cell-label{flex-direction:row;justify-content:flex-end}html :focus-visible,html .Mui-focusVisible{outline-width:2px;outline-style:var(--tw-outline-style,solid);outline-color:var(--color-accent);outline-offset:2px;box-shadow:none!important}[data-radix-popper-content-wrapper]:has(>[data-lo-tooltip-panel]){pointer-events:none!important}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@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 pulse-visible{0%,to{opacity:1}50%{opacity:.7}}
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import{a as B,r as i,j as e,B as C,S as X,J as st,g as Re,u as Me,I as ae,T as Ie,K as at,M as nt,N as rt,O as it,Q as Le,c as J,A as K,X as Tt,v as Ne,L as de,U as Rt,V as ot,y as Mt,F as It,Y as Lt,Z as Ft,i as zt,f as lt}from"./icon-CeaDeErk.js";import{bH as Pt,bI as Ue,bJ as $e,bK as Ot,bj as Dt,g as ye,bk as ct,bl as ze,ar as dt,f as ut,ac as Ut,as as $t,bL as qt,bM as Bt,bN as Ht,bO as Vt,bP as mt,a3 as Kt,bQ as Yt,bR as me,bS as Pe,bT as ht,aK as Gt,bU as qe,bV as pt,bW as Qt,bp as xt,b as ft,d as gt,j as ge,bX as vt,bY as Wt,bZ as Ce,ay as Zt,az as yt,b_ as jt,b$ as ve,aN as Jt,c0 as bt,c1 as Xt,P as es,i as be,c2 as ts,c3 as ss,c4 as _e,c5 as kt,c6 as as,c7 as ns,c8 as wt,c9 as rs,ca as is,cb as os,cc as ls,aa as cs,cd as Nt,aM as Ct,ce as ds,cf as us,cg as ms,aw as hs,ch as St,by as Fe,bs as ps,ci as xs,cj as fs,bn as gs,ck as vs,cl as ys,cm as js,bf as Be,cn as bs,br as He,co as ks,cp as ws,bt as Ns,bu as Cs,bq as Ae,cq as Ss,cr as _s,cs as As,ct as Es,cu as Ts,cv as Rs,cw as Ms}from"./index-C-4XRZ68.js";import{P as Is}from"./page-header-BxSu579T.js";import{S as V,I as Oe,a as G,R as Ls,N as Fs}from"./radient-auth-buttons-BgiaQdhl.js";import{a as zs,H as Ps,p as Ee}from"./parseISO-Chhis1zA.js";/**
|
|
2
|
-
* @license lucide-react v0.507.0 - ISC
|
|
3
|
-
*
|
|
4
|
-
* This source code is licensed under the ISC license.
|
|
5
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
-
*/const Os=[["path",{d:"M2 13a2 2 0 0 0 2-2V7a2 2 0 0 1 4 0v13a2 2 0 0 0 4 0V4a2 2 0 0 1 4 0v13a2 2 0 0 0 4 0v-4a2 2 0 0 1 2-2",key:"57tc96"}]],Ds=B("audio-waveform",Os);/**
|
|
7
|
-
* @license lucide-react v0.507.0 - ISC
|
|
8
|
-
*
|
|
9
|
-
* This source code is licensed under the ISC license.
|
|
10
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
11
|
-
*/const Us=[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"m19 9-5 5-4-4-3 3",key:"2osh9i"}]],$s=B("chart-line",Us);/**
|
|
12
|
-
* @license lucide-react v0.507.0 - ISC
|
|
13
|
-
*
|
|
14
|
-
* This source code is licensed under the ISC license.
|
|
15
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
16
|
-
*/const qs=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"M12 8v8",key:"napkw2"}]],Bs=B("circle-plus",qs);/**
|
|
17
|
-
* @license lucide-react v0.507.0 - ISC
|
|
18
|
-
*
|
|
19
|
-
* This source code is licensed under the ISC license.
|
|
20
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
21
|
-
*/const Hs=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 18a6 6 0 0 0 0-12v12z",key:"j4l70d"}]],_t=B("contrast",Hs);/**
|
|
22
|
-
* @license lucide-react v0.507.0 - ISC
|
|
23
|
-
*
|
|
24
|
-
* This source code is licensed under the ISC license.
|
|
25
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
26
|
-
*/const Vs=[["rect",{width:"20",height:"14",x:"2",y:"5",rx:"2",key:"ynyp8z"}],["line",{x1:"2",x2:"22",y1:"10",y2:"10",key:"1b3vmo"}]],Ks=B("credit-card",Vs);/**
|
|
27
|
-
* @license lucide-react v0.507.0 - ISC
|
|
28
|
-
*
|
|
29
|
-
* This source code is licensed under the ISC license.
|
|
30
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
31
|
-
*/const Ys=[["path",{d:"M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z",key:"96xj49"}]],Gs=B("flame",Ys);/**
|
|
32
|
-
* @license lucide-react v0.507.0 - ISC
|
|
33
|
-
*
|
|
34
|
-
* This source code is licensed under the ISC license.
|
|
35
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
36
|
-
*/const Qs=[["path",{d:"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z",key:"yt0hxn"}]],Ws=B("hexagon",Qs);/**
|
|
37
|
-
* @license lucide-react v0.507.0 - ISC
|
|
38
|
-
*
|
|
39
|
-
* This source code is licensed under the ISC license.
|
|
40
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
41
|
-
*/const Zs=[["path",{d:"M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.48 19 2c1 2 2 4.18 2 8 0 5.5-4.78 10-10 10Z",key:"nnexq3"}],["path",{d:"M2 21c0-3 1.85-5.36 5.08-6C9.5 14.52 12 13 13 12",key:"mt58a7"}]],Js=B("leaf",Zs);/**
|
|
42
|
-
* @license lucide-react v0.507.0 - ISC
|
|
43
|
-
*
|
|
44
|
-
* This source code is licensed under the ISC license.
|
|
45
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
46
|
-
*/const Xs=[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]],ea=B("lock",Xs);/**
|
|
47
|
-
* @license lucide-react v0.507.0 - ISC
|
|
48
|
-
*
|
|
49
|
-
* This source code is licensed under the ISC license.
|
|
50
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
51
|
-
*/const ta=[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]],sa=B("moon",ta);/**
|
|
52
|
-
* @license lucide-react v0.507.0 - ISC
|
|
53
|
-
*
|
|
54
|
-
* This source code is licensed under the ISC license.
|
|
55
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
56
|
-
*/const aa=[["path",{d:"m8 3 4 8 5-5 5 15H2L8 3z",key:"otkl63"}]],na=B("mountain",aa);/**
|
|
57
|
-
* @license lucide-react v0.507.0 - ISC
|
|
58
|
-
*
|
|
59
|
-
* This source code is licensed under the ISC license.
|
|
60
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
61
|
-
*/const ra=[["path",{d:"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z",key:"goz73y"}],["path",{d:"m2 22 3-3",key:"19mgm9"}],["path",{d:"M7.5 13.5 10 11",key:"7xgeeb"}],["path",{d:"M10.5 16.5 13 14",key:"10btkg"}],["path",{d:"m18 3-4 4h6l-4 4",key:"16psg9"}]],ia=B("plug-zap",ra);/**
|
|
62
|
-
* @license lucide-react v0.507.0 - ISC
|
|
63
|
-
*
|
|
64
|
-
* This source code is licensed under the ISC license.
|
|
65
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
66
|
-
*/const oa=[["path",{d:"m12.5 17-.5-1-.5 1h1z",key:"3me087"}],["path",{d:"M15 22a1 1 0 0 0 1-1v-1a2 2 0 0 0 1.56-3.25 8 8 0 1 0-11.12 0A2 2 0 0 0 8 20v1a1 1 0 0 0 1 1z",key:"1o5pge"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}]],la=B("skull",oa);/**
|
|
67
|
-
* @license lucide-react v0.507.0 - ISC
|
|
68
|
-
*
|
|
69
|
-
* This source code is licensed under the ISC license.
|
|
70
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
71
|
-
*/const ca=[["path",{d:"m10 20-1.25-2.5L6 18",key:"18frcb"}],["path",{d:"M10 4 8.75 6.5 6 6",key:"7mghy3"}],["path",{d:"m14 20 1.25-2.5L18 18",key:"1chtki"}],["path",{d:"m14 4 1.25 2.5L18 6",key:"1b4wsy"}],["path",{d:"m17 21-3-6h-4",key:"15hhxa"}],["path",{d:"m17 3-3 6 1.5 3",key:"11697g"}],["path",{d:"M2 12h6.5L10 9",key:"kv9z4n"}],["path",{d:"m20 10-1.5 2 1.5 2",key:"1swlpi"}],["path",{d:"M22 12h-6.5L14 15",key:"1mxi28"}],["path",{d:"m4 10 1.5 2L4 14",key:"k9enpj"}],["path",{d:"m7 21 3-6-1.5-3",key:"j8hb9u"}],["path",{d:"m7 3 3 6h4",key:"1otusx"}]],da=B("snowflake",ca);/**
|
|
72
|
-
* @license lucide-react v0.507.0 - ISC
|
|
73
|
-
*
|
|
74
|
-
* This source code is licensed under the ISC license.
|
|
75
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
76
|
-
*/const ua=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],ma=B("sun",ua);/**
|
|
77
|
-
* @license lucide-react v0.507.0 - ISC
|
|
78
|
-
*
|
|
79
|
-
* This source code is licensed under the ISC license.
|
|
80
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
81
|
-
*/const ha=[["path",{d:"M9 14 4 9l5-5",key:"102s5s"}],["path",{d:"M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11",key:"f3b9sd"}]],pa=B("undo-2",ha);/**
|
|
82
|
-
* @license lucide-react v0.507.0 - ISC
|
|
83
|
-
*
|
|
84
|
-
* This source code is licensed under the ISC license.
|
|
85
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
86
|
-
*/const xa=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],fa=B("zap",xa),ga=()=>{const t="https://local-operator.com/download",[a,s]=i.useState(!1),[r,n]=i.useState(!1),[d,l]=i.useState(null),[u,m]=i.useState("info"),[p,c]=i.useState(null),[y,S]=i.useState(null),h=i.useRef(!1),j=i.useRef(!1),_=i.useRef(0),A=i.useRef(!1),R=i.useCallback((E,T)=>{j.current=!1,l(E),m(T),n(!0)},[]),$=i.useCallback(E=>{j.current=!0,l(E),m("success"),n(!0)},[]),g=i.useCallback(()=>{j.current&&(j.current=!1,n(!1),l(null))},[]),{clearDeferredUpdate:O}=Pt();i.useEffect(()=>{const E=window.api.updater.onUpdateError(H=>{h.current&&H.includes("manually")&&(c({message:"The server is installed outside the app, so use the tool you installed it with - uv, pipx or pip.",command:""}),j.current=!1,l(null),m("warning"),n(!0))}),T=window.api.updater.onBackendUpdateDevMode(H=>{h.current&&R(H,"info")}),v=()=>{A.current=!0,g()},z=window.api.updater.onUpdateAvailable(v),b=window.api.updater.onUpdateNpxAvailable(v),Q=window.api.updater.onBackendUpdateAvailable(v);return()=>{E(),T(),z(),b(),Q()}},[g,R]),i.useEffect(()=>{let E=!1;const T=()=>{window.api.updater.getLastInstallAttempt().then(z=>{E||S(z)}).catch(()=>{})};T();const v=window.api.updater.onUpdateInstallFailed(()=>T());return()=>{E=!0,v()}},[]);const M=async()=>{const E=++_.current;g(),A.current=!1;try{s(!0),h.current=!0,O($e.UI),O($e.BACKEND);const T=await window.api.updater.checkForAllUpdates({manual:!0});if(E!==_.current)return;T?.affirmation&&!A.current?$(T.affirmation):g()}catch(T){if(E!==_.current)return;console.warn(`Update check failed; the app-level alert owns the report: ${Ot(T)}`)}finally{E===_.current&&s(!1),setTimeout(()=>{h.current=!1},2e3)}},U=()=>{j.current=!1,n(!1),l(null)};return e.jsxs(e.Fragment,{children:[y&&e.jsxs("div",{className:"mb-3 rounded-sm bg-sunken p-3",children:[e.jsxs("p",{className:"text-body-sm text-ink",children:["The last update to version ",y.targetVersion," didn't finish",y.attempts>1?` (${y.attempts} attempts)`:"",". Version ",y.runningVersion," is running."]}),e.jsxs("p",{className:"mt-1 text-meta text-ink-dim",children:["Detected"," ",y.detectedAt?new Date(y.detectedAt).toLocaleString():"at an unknown time",". ",y.detail]}),e.jsx(C,{variant:"outline",size:"sm",className:"mt-2",onClick:()=>void window.api.openExternal(t),children:"Download a fresh copy"})]}),e.jsxs(C,{variant:"outline",onClick:()=>void M(),disabled:a,children:[a?e.jsx(X,{size:"sm"}):null,a?"Checking...":"Check for updates"]}),p&&e.jsxs(Ue,{open:r,autoHideDuration:1e4,onClose:U,variant:"warning",children:[e.jsx("p",{className:"text-body-sm",children:p.message}),p.command&&e.jsx("code",{className:"mt-2 block rounded-sm bg-sunken p-2 text-mono-sm text-ink",children:p.command})]}),d&&u!=="danger"&&e.jsx(Ue,{open:r,autoHideDuration:6e3,onClose:U,variant:u,children:d})]})},ke=["system-prompt"],va=()=>{const{shouldEnableQuery:t}=Dt();return ye({enabled:t({bypassInternetCheck:!0}),queryKey:ke,queryFn:async()=>{try{const s=await ct(ze.baseUrl).config.getSystemPrompt();if(s===null)return null;if(s.status>=400)throw new Error(s.message||"Failed to fetch system prompt");return s.result}catch(a){const s=a instanceof Error?a.message:"An unknown error occurred while fetching system prompt";throw dt(s),a}},refetchOnWindowFocus:!1,staleTime:5e3})},ya=()=>{const t=ut(),a=ct(ze.baseUrl);return Ut({mutationFn:async s=>{try{const r=await a.config.updateSystemPrompt(s);if(r.status>=400)throw new Error(r.message||"Failed to update system prompt");return r.result}catch(r){const n=r instanceof Error?r.message:"An unknown error occurred while updating system prompt";throw dt(n),r}},onSuccess:async s=>{await t.invalidateQueries({queryKey:ke,refetchType:"none"}),t.setQueryData(ke,r=>r&&{...r,...s}),await t.refetchQueries({queryKey:ke,type:"all"}),$t("System prompt updated")},onError:s=>{console.error("Error updating system prompt:",s)}})},ja=({value:t,label:a,description:s,onChange:r,icon:n,isSaving:d=!1})=>{const[l,u]=i.useState(t),m=i.useId(),p=`${m}-label`,c=`${m}-description`,y=async S=>{if(!d){u(S);try{await r(S)}catch(h){u(!S),console.error("Error toggling setting:",h)}}};return e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("span",{id:p,className:"flex min-h-6 items-center gap-2 text-body text-ink",children:[n&&e.jsx(n,{size:14,"aria-hidden":"true",className:"shrink-0 text-ink-dim"}),a]}),s&&e.jsx("p",{id:c,className:"mt-0.5 max-w-2xl text-body-sm text-ink-muted",children:s})]}),e.jsx("div",{className:"flex h-6 shrink-0 items-center",children:d?e.jsx(X,{size:"md",label:`Saving ${a}`}):e.jsx(st,{checked:l,onCheckedChange:y,"aria-labelledby":p,"aria-describedby":s?c:void 0})})]})};var ba=qt({chartName:"LineChart",GraphicalChild:mt,axisComponents:[{axisType:"xAxis",AxisComp:Bt},{axisType:"yAxis",AxisComp:Ht}],formatAxisMap:Vt});function Ve(t,a){const s=Kt(t,a?.in);if(!Yt(s))throw new RangeError("Invalid time value");const r=me(s.getDate(),2),n=me(s.getMonth()+1,2),d=s.getFullYear(),l=me(s.getHours(),2),u=me(s.getMinutes(),2),m=me(s.getSeconds(),2);let p="",c="";const y=s.getTimezoneOffset();if(y!==0){const S=Math.abs(y),h=me(Math.trunc(S/60),2),j=me(S%60,2);c=`${y<0?"+":"-"}${h}:${j}`}else c="Z";return`${d}-${n}-${r}T${l}:${u}:${m}${p}${c}`}function ka(t,a,s){return zs(t,-30,s)}const wa=["radient","creditBalance"],Na=t=>{const{user:a,isAuthenticated:s}=Pe(),r=a?.account?.tenant_id,n=s&&!!r&&t?.enabled;return ye({queryKey:[wa,r],queryFn:async()=>{if(!r)throw new Error("Tenant ID not available");const d=await ht({operation:"credits",tenantId:r});if(!d||typeof d.balance!="number")throw new Error("Invalid credit balance response format");return d},enabled:n,staleTime:5*60*1e3,refetchOnWindowFocus:!0})};function Ca(t,a){const[s,r]=i.useState(!1);return i.useEffect(()=>{if(!t){r(!1);return}const n=setTimeout(()=>r(!0),a);return()=>clearTimeout(n)},[t,a]),s}const Sa=["radient","usageRollup"],_a=(t,a)=>{const{user:s,isAuthenticated:r}=Pe(),n=s?.account?.tenant_id,d=r&&!!n&&a?.enabled;return ye({queryKey:[...Sa,n,t],queryFn:async()=>{if(!n)throw new Error("Tenant ID not available");const l={};for(const[m,p]of Object.entries(t))p!=null&&(l[m]=String(p));const u=await ht({operation:"usage",tenantId:n,query:l});if(!u)throw new Error("Invalid usage rollup response format");return u},enabled:d,staleTime:5*60*1e3,refetchOnWindowFocus:!0})},Aa=()=>e.jsx(ga,{}),Ea=t=>{if(!t)return null;try{return new URL(t).host}catch{return null}},Ta=()=>{const[t,a]=i.useState("Loading..."),[s,r]=i.useState({value:"Loading...",detail:null,degraded:!1}),[n,d]=i.useState({platform:"Loading...",arch:"...",nodeVersion:"Loading...",electronVersion:"Loading...",chromeVersion:"Loading..."});i.useEffect(()=>{let u=!0;const m=h=>{if(!u)return;const j=Ea(h.url);if(h.state==="connecting"){r({value:"Loading...",detail:null,degraded:!1});return}if(h.state==="detached"){r({value:"Not connected",detail:h.detail||null,degraded:!1});return}if(h.state==="wedged"){r({value:"Not attached",detail:h.detail||null,degraded:!1});return}const _=h.version||"Version unknown";r({value:j?`${_} · ${j}`:_,detail:h.detail||null,degraded:h.state==="degraded"})};let p=!1;const c=window.api?.backend?.onStatusChange(h=>{p=!0,m(h)}),y=async()=>{try{const[h,j]=await Promise.all([window.api.systemInfo.getAppVersion(),window.api.systemInfo.getPlatformInfo()]);u&&(a(h),d(j))}catch(h){console.error("Error fetching app information:",h)}},S=async()=>{try{const h=window.api?.backend;if(h){const A=await h.getStatus();p||m(A);return}const j=await qe.healthCheck(ze.baseUrl),_=qe.getServerVersion(j);u&&r({value:_,detail:null,degraded:!1})}catch(h){console.error("Error fetching server version:",h),u&&r({value:"Unavailable",detail:null,degraded:!1})}};return y(),S(),()=>{u=!1,c?.()}},[]);const l=(u,m,p,c={})=>e.jsx(G,{label:e.jsx(Re,{content:p,children:e.jsxs("span",{className:"inline-flex cursor-help items-center gap-1.5",children:[e.jsx(Me,{size:12,className:"shrink-0"}),u]})}),valueClassName:c.valueClassName,value:e.jsxs(e.Fragment,{children:[c.valueTooltip?e.jsx(Re,{content:c.valueTooltip,children:e.jsx("span",{"data-backend-version":c.valueHoverTarget?"":void 0,className:"cursor-help",children:m})}):m,c.statusNote?e.jsx("span",{className:"mt-0.5 block text-meta text-ink-dim",children:c.statusNote}):null]})});return e.jsx(V,{title:"Application updates and info",icon:Gt,description:"Check for updates and view information about your Local Operator installation.",dataTourTag:"settings-app-updates-section",children:e.jsxs("div",{className:"flex flex-col gap-6",children:[e.jsxs(Oe,{children:[l("Application version",t,"The version of the Local Operator user interface application."),l("Server version",s.value,"The version of the Local Operator API server backend, and the address of the daemon it was read from.",{valueTooltip:s.detail,valueHoverTarget:!0,statusNote:s.degraded?"Not answering":void 0,valueClassName:s.degraded?"text-ink-muted":void 0}),l("Platform",`${n.platform} (${n.arch})`,"The operating system and architecture your application is running on."),l("Node.js version",n.nodeVersion,"The JavaScript runtime environment version."),l("Electron version",n.electronVersion,"The framework version enabling this desktop application.")]}),e.jsx(Aa,{})]})})},Ra={hosting:"core",model_name:"core",model_effort:"core","providers.openai.use_max_context_window":"advanced","providers.openai.api":"advanced","providers.anthropic.cache_ttl_1h_min_context_tokens":"advanced","providers.openrouter.provider_affinity":"advanced","providers.openrouter.sort":"advanced","providers.openrouter.order":"advanced","providers.openrouter.only":"advanced","providers.openrouter.ignore":"advanced","providers.openrouter.allow_fallbacks":"advanced","providers.openrouter.require_parameters":"advanced","providers.openrouter.data_collection":"advanced","providers.openrouter.zdr":"advanced","providers.openrouter.enforce_distillable_text":"advanced","providers.openrouter.quantizations":"advanced","providers.openrouter.max_price":"advanced","providers.openrouter.preferred_min_throughput":"advanced","providers.openrouter.preferred_max_latency":"advanced","retry.enabled":"core","retry.maxRetries":"advanced","retry.baseDelayMs":"advanced","retry.connectivityMaxRetries":"advanced","retry.connectivityBackoffCapMs":"advanced","retry.modelFallback":"advanced","retry.usageAwareFallback":"advanced","retry.usageAwareAccountPick":"advanced","retry.usageReservePercent":"advanced","retry.fallbackChains":"advanced","tui.theme":"advanced","display.shimmer":"advanced","display.comfortable_rows":"advanced","display.nerd_icons":"advanced","display.heading_markers":"advanced","display.terminal_title":"advanced","display.images":"advanced","display.notifications":"core","display.notification_session_name":"advanced","display.time_format":"advanced","display.dock":"advanced","tui.sidebar_visible":"advanced","tui.sidebar_position":"advanced","keymap.new_session":"advanced","keymap.resume":"advanced",tool_approval_mode:"core",auto_save_conversation:"core","session.cleanup.enabled":"core","session.cleanup.max_sessions":"advanced","session.cleanup.max_inactive_days":"advanced","session.cleanup.max_total_bytes":"advanced","session.cleanup.remove_empty":"advanced","runtime.background_on_resume":"advanced","runtime.unattended_gate_timeout":"advanced","subagents.max_running":"advanced","subagents.model_choice":"advanced","subagents.models.lo":"advanced","subagents.models.med":"advanced","subagents.models.hi":"advanced","fork.mode":"core","fork.cmux_placement":"advanced","compaction.enabled":"core","compaction.strategy":"advanced","compaction.threshold_percent":"advanced","compaction.threshold_tokens":"advanced","compaction.keep_recent_tokens":"advanced","compaction.auto_continue":"advanced","compaction.mid_turn_enabled":"advanced","compaction.wire_bytes_budget":"advanced","compaction.wire_bytes_trigger":"advanced","web_search.enabled":"core","web_fetch.enabled":"core","web_search.strategy":"advanced","web_search.providers":"advanced","web_search.timeout_seconds":"advanced","web_search.searxng_endpoint":"advanced","web_search.deepseek_evidence":"advanced","web_search.read_enabled":"advanced","web_fetch.timeout_seconds":"advanced","web_fetch.max_bytes":"advanced","web_fetch.max_redirects":"advanced","web_fetch.cache_ttl_seconds":"advanced","web_fetch.allow_private":"advanced","web_fetch.render_backend":"advanced","web_fetch.enrich":"advanced","web_fetch.max_attempts":"advanced","web_fetch.blocked_retry":"advanced","bash.shell":"advanced","providers.lmstudio.base_url":"advanced","providers.lmstudio.models":"advanced","providers.ollama.base_url":"advanced","providers.ollama.models":"advanced","providers.vllm.base_url":"advanced","providers.vllm.models":"advanced","providers.llamacpp.base_url":"advanced","providers.llamacpp.models":"advanced","providers.openai-compatible.base_url":"advanced","providers.openai-compatible.models":"advanced",conversation_length:"advanced",detail_length:"advanced",max_learnings_history:"advanced","desktop.launch_command":"advanced"},Ma={model:"core",approvals:"core",web_tools:"core",desktop:"advanced"};function he(t){return t.tier==="core"||t.tier==="advanced"?t.tier:Ra[t.key]??Ma[t.section]??"advanced"}function Ia(t){return t.length===0?!1:t.filter(s=>he(s)==="core").length*2>=t.length}function La(t,a,s){return a?{layout:null,filter:t?[]:[...s]}:{layout:{opened:t?[...s]:[],closed:t?[]:[...s]},filter:[]}}const At="__cascade__";function xe(t){return t==null?"":typeof t=="object"?JSON.stringify(t):String(t)}function ce(t){return{value:t.kind==="list"?(t.value??[]).join(`
|
|
87
|
-
`):t.kind==="cascade"?At:xe(t.value),cascadeBase:null}}function we(t,a){return a.cascadeBase!==null?!0:t.kind==="cascade"?a.value!==At:t.kind==="list"?a.value!==t.value?.join(`
|
|
88
|
-
`):a.value!==xe(t.value)}function Fa(t,a){let s=null,r;switch(t.kind){case"bool":s=a.value==="true";break;case"int":{const n=Number.parseInt(a.value,10);if(Number.isNaN(n))return{ok:!1,error:"Enter a whole number."};s=n;break}case"float":{const n=Number.parseFloat(a.value);if(!Number.isFinite(n))return{ok:!1,error:"Enter a finite number."};s=n;break}case"enum":{const n=t.choices.find(d=>xe(d.value)===a.value);s=n?n.value:a.value;break}case"list":s=a.value.split(`
|
|
89
|
-
`).map(n=>n.trim()).filter(Boolean);break;case"cascade":{if(!a.cascadeBase)return{ok:!1,error:"Nothing has been edited yet."};const n={};for(const[d,l]of Object.entries(a.cascadeBase))n[d]=l;s=n,r=t.value??void 0;break}default:t.empty_unsets&&a.value.trim()===""?s=null:s=a.value}return{ok:!0,request:{op:"settings.edit",key:t.key,value:s,...r?{base:r}:{}}}}const Ke={bool:"w-9",int:"w-28",float:"w-28",enum:"w-64",text:"w-96",hotkey:"w-56",list:"w-full min-w-0",cascade:"w-full min-w-0",readonly:"w-40"};function za(t){return Ke[t]??Ke.text}const Pa={" ":"space",Spacebar:"space",Escape:"escape",Esc:"escape",Enter:"enter",Tab:"tab",Backspace:"backspace",Delete:"delete",ArrowUp:"up",ArrowDown:"down",ArrowLeft:"left",ArrowRight:"right",Home:"home",End:"end",PageUp:"pageup",PageDown:"pagedown"},Oa=new Set(["Control","Shift","Alt","Meta","AltGraph"]),Da=new Set(["Escape","Esc","Enter"]);function Ua(t){if(Oa.has(t.key)||t.nativeEvent.isComposing)return"";const a=[];t.ctrlKey&&a.push("ctrl"),t.altKey&&a.push("alt"),t.shiftKey&&a.push("shift"),t.metaKey&&a.push("meta");const s=Pa[t.key]??t.key.toLowerCase();return s?[...a,s].join("+"):""}const $a=({value:t,label:a,disabled:s,onChange:r})=>e.jsxs("span",{className:"flex w-full flex-col gap-0.5",children:[e.jsx(ae,{readOnly:!0,value:t,disabled:s,"aria-label":`${a}: press the key you want`,className:"font-mono text-body-sm",onKeyDown:n=>{if(Da.has(n.key)){n.currentTarget.blur();return}const d=Ua(n);d&&(n.preventDefault(),r(d))}}),e.jsx("span",{className:"text-meta text-ink-dim",children:"Press the keys you want; Esc cancels."})]}),qa=({setting:t,value:a,chains:s,disabled:r=!1,onValueChange:n,onChainsChange:d})=>{switch(t.kind){case"bool":return e.jsx(st,{checked:a==="true",disabled:r,onCheckedChange:l=>n(l?"true":"false"),"aria-label":t.label});case"enum":return e.jsxs(at,{value:a,disabled:r,onValueChange:n,children:[e.jsx(nt,{"aria-label":t.label,className:"w-full",children:e.jsx(rt,{})}),e.jsx(it,{children:t.choices.map(l=>e.jsx(Le,{value:xe(l.value),title:l.description||void 0,children:l.label},xe(l.value)))})]});case"int":case"float":return e.jsx(ae,{type:"number",value:a,disabled:r,min:t.minimum??void 0,max:t.maximum??void 0,step:t.kind==="int"?1:"any",onChange:l=>n(l.target.value),"aria-label":t.label});case"hotkey":return e.jsx($a,{value:a,label:t.label,disabled:r,onChange:n});case"list":return e.jsx(Ie,{value:a,disabled:r,rows:Math.min(6,t.members.length+2),onChange:l=>n(l.target.value),"aria-label":t.label,placeholder:t.placeholder,className:"font-mono text-body-sm"});case"cascade":{const l=s??t.value??{};return e.jsxs("div",{className:"flex flex-col gap-3",children:[Object.entries(l).map(([u,m])=>e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx("span",{className:"font-mono text-meta text-ink-dim",children:u}),e.jsx(Ie,{value:m.join(`
|
|
90
|
-
`),disabled:r,rows:Math.max(2,m.length+1),onChange:p=>d?.({...l,[u]:p.target.value.split(`
|
|
91
|
-
`).map(c=>c.trim()).filter(Boolean)}),"aria-label":`${t.label}: ${u}`,className:"font-mono text-body-sm"})]},u)),e.jsx("p",{className:"text-meta text-ink-dim",children:"One hop per line, as provider/model (effort). An empty chain moves to the next provider."})]})}default:return e.jsx(ae,{value:a,disabled:r,onChange:l=>n(l.target.value),"aria-label":t.label,placeholder:t.placeholder})}},Et=({className:t})=>e.jsx("span",{role:"img","aria-label":"Changed from the default",title:"Changed from the default",className:J("size-1.5 shrink-0 rounded-full bg-accent",t)}),Ba=({title:t,rowCount:a,advancedCount:s,scope:r,modified:n,onOpenChange:d,defaultOpen:l=!1})=>e.jsx("div",{"data-section-header":t,className:"flex w-full flex-col",children:e.jsx(pt,{defaultOpen:l,onOpenChange:d,triggerClassName:"text-ink hover:bg-elevated hover:text-ink",chevronClassName:"text-ink-dim",rowClassName:"min-h-10 py-0",className:"w-full",summary:e.jsxs("span",{className:"flex w-full min-w-0 items-center gap-2",children:[e.jsxs("span",{className:"flex min-w-0 items-center gap-2",children:[e.jsx("span",{className:"truncate text-heading text-ink",children:t}),a>0&&e.jsx("span",{className:"shrink-0 text-meta text-ink-dim",children:a===1?"1 setting":`${a} settings`}),r&&e.jsx("span",{className:"shrink-0 text-meta text-ink-dim",children:r}),s>0&&e.jsxs("span",{className:"shrink-0 text-meta text-ink-dim",children:[s," advanced"]})]}),n&&e.jsx(Et,{className:"ml-auto"})]})})}),Ha="size-3.5 shrink-0",Va=({setting:t,draft:a,tier:s,gate:r,saving:n,error:d,onDraftChange:l,onSave:u,onReset:m})=>{const p=!!(r&&!r.on),c=we(t,a),y=n||p,S=t.kind==="list"||t.kind==="cascade",h=e.jsxs("span",{className:"flex min-w-0 flex-col gap-0.5",children:[e.jsx("span",{className:"truncate text-body-sm text-ink",children:t.label}),t.kind==="readonly"&&e.jsx("span",{className:"text-meta text-ink-dim",children:"Read-only"}),t.warning&&e.jsx("span",{className:"text-meta text-danger",children:t.warning})]}),j=p&&r&&e.jsxs("p",{className:"text-meta text-ink-dim",children:["Needs ",r.label," on. Nothing here is saved while it is off."]});return e.jsx("div",{"data-setting-key":t.key,"data-tier":s,className:"border-b border-hairline",children:e.jsxs("div",{className:"flex flex-wrap items-start gap-x-4 gap-y-1 px-1 py-2.5",children:[e.jsxs("div",{className:J("flex min-w-44 flex-col gap-0.5",S?"shrink-0 basis-2/5":"flex-1"),children:[s==="advanced"&&t.help?e.jsx(pt,{summary:h,triggerClassName:"min-h-5 py-0 px-0 text-body-sm text-ink hover:text-ink",chevronClassName:"text-ink-dim",summaryAlign:"firstLine",rowClassName:"min-h-5 py-0",className:"w-full",children:e.jsx("span",{className:"text-meta text-ink-dim",children:t.help})}):e.jsxs("span",{className:"flex min-h-5 items-center gap-1.5",children:[e.jsx("span",{"aria-hidden":!0,className:Ha}),h]}),s==="core"&&t.help&&e.jsx("p",{className:"ml-5 text-meta text-ink-dim",children:t.help}),j]}),e.jsxs("div",{className:J("flex shrink-0 items-center gap-2 self-center",S&&"min-w-0 flex-1 items-start"),children:[(!t.is_default||c)&&e.jsx(Et,{}),!t.is_default&&t.kind!=="readonly"&&e.jsxs(C,{variant:"ghost",size:"sm",disabled:y,onClick:m,"aria-label":`Use default for ${t.label}`,children:[e.jsx(pa,{"aria-hidden":"true"}),"Use default"]}),c&&e.jsx(C,{variant:"primary",size:"sm",disabled:y,onClick:u,children:n?"Saving":"Save"}),e.jsx("div",{className:za(t.kind),"data-setting-control":"",children:t.redacted?e.jsx("span",{className:"text-meta text-ink-dim",children:"Set in the credential manager: this value carries inline credentials or query parameters."}):t.kind==="readonly"?e.jsx("span",{className:"text-body-sm text-ink-muted",children:xe(t.value)||"Not set"}):e.jsx(qa,{setting:t,value:a.value,chains:a.cascadeBase??void 0,disabled:y,onValueChange:_=>l({...a,value:_}),onChainsChange:_=>l({...a,cascadeBase:_})})})]}),d&&e.jsx(K,{variant:"danger",role:"alert",className:"w-full",children:e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsx("span",{children:d}),e.jsxs(C,{variant:"secondary",size:"sm",disabled:n,onClick:u,children:[e.jsx(Qt,{"aria-hidden":"true"}),"Retry"]})]})})]})})},Ka="w-full max-w-[400px]",Ya=({query:t,onQueryChange:a,matchCount:s,matchSections:r,coreCount:n,advancedCount:d,modifiedCount:l,modifiedOnly:u,onModifiedOnlyChange:m,showAdvanced:p,onShowAdvancedChange:c,onExpandAll:y,onCollapseAll:S,unsavedCount:h,savingAll:j,onSaveAll:_,onDiscardAll:A})=>e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[e.jsxs("div",{className:J("relative",Ka),children:[e.jsx(xt,{size:16,className:"pointer-events-none absolute top-1/2 left-3 -translate-y-1/2 text-ink-dim","aria-hidden":"true"}),e.jsx(ae,{value:t,onChange:R=>a(R.target.value),onKeyDown:R=>{R.key==="Escape"&&t&&a("")},placeholder:"Search settings by name, description or key","aria-label":"Search settings",className:"pl-9"}),t&&e.jsx(C,{variant:"ghost",size:"icon-sm",className:"absolute top-1/2 right-1 -translate-y-1/2",onClick:()=>a(""),"aria-label":"Clear search",children:e.jsx(Tt,{"aria-hidden":"true"})})]}),e.jsxs("fieldset",{className:"m-0 border-0 p-0",children:[e.jsx("legend",{className:"sr-only",children:"Settings filters"}),e.jsxs("div",{className:"flex gap-0.5 rounded-md bg-sunken p-0.5",children:[e.jsxs(C,{variant:"ghost",size:"sm","aria-pressed":u,onClick:()=>m(!u),className:J(u&&"bg-surface text-ink hover:bg-surface"),children:["Modified",e.jsx(Ne,{variant:"neutral",children:l})]}),e.jsx(C,{variant:"ghost",size:"sm","aria-pressed":p,onClick:()=>c(!p),className:J(p&&"bg-surface text-ink hover:bg-surface"),children:"Show advanced"})]})]}),e.jsxs("div",{className:"ml-auto flex items-center gap-2",children:[h>0&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-meta text-ink-dim",children:h===1?"1 unsaved change":`${h} unsaved changes`}),e.jsx(C,{variant:"primary",size:"sm",disabled:j,onClick:_,children:j?"Saving":"Save all"}),e.jsx(C,{variant:"ghost",size:"sm",disabled:j,onClick:A,children:"Discard all"})]}),e.jsx(C,{variant:"ghost",size:"sm",onClick:y,children:"Expand all"}),e.jsx(C,{variant:"ghost",size:"sm",onClick:S,children:"Collapse all"})]})]}),e.jsx("p",{className:"text-meta text-ink-dim","aria-live":"polite",children:s!==null?`${s} ${s===1?"result":"results"} in ${r} ${r===1?"section":"sections"}`:u?`${l} modified ${l===1?"setting":"settings"}`:p?`${d} advanced settings shown — Expand all to see them`:`${n} core settings, ${d} advanced`})]}),Ga={all:["desktop","settings"]},Qa={live:"Takes effect immediately","new launch":"Takes effect the next time the app starts","new sessions":"Takes effect for new conversations"},Wa=40,pe=t=>t.toLowerCase().replace(/[-_.]/g," "),Za=({focusKey:t,initialFilter:a=""})=>{const s=ft(),r=gt(s.data,"settings"),[n,d]=i.useState(a),[l,u]=i.useState(!1),[m,p]=i.useState(!1),[c,y]=i.useState({}),[S,h]=i.useState({}),[j,_]=i.useState({}),[A,R]=i.useState(!1),[$,g]=i.useState(new Set),[O,M]=i.useState(new Set),[U,E]=i.useState(new Set),T=i.useRef(null),v=i.useRef(null),z=ye({queryKey:Ga.all,queryFn:()=>ge({op:"settings.list"}),enabled:r,staleTime:1e4}),b=z.data;i.useEffect(()=>{b&&y(o=>{let x=!1;const k={...o};for(const N of b.settings){const F=o[N.key];if(!F){k[N.key]=ce(N),x=!0;continue}if(we(N,F))continue;const I=ce(N);(I.value!==F.value||I.cascadeBase!==F.cascadeBase)&&(k[N.key]=I,x=!0)}return x?k:o})},[b]);const Q=i.useCallback(o=>!o.is_default||we(o,c[o.key]??ce(o)),[c]),H=i.useMemo(()=>{if(!b)return[];const o=pe(n.trim()),x=o.length>0||m;return b.settings.filter(k=>!x&&he(k)==="advanced"&&!l||m&&!Q(k)?!1:o?pe([k.label,k.help,k.key,k.section,k.warning??""].join(" ")).includes(o):!0)},[b,n,l,m,Q]),W=n.trim().length>0||m,ne=i.useMemo(()=>b?.sections??[],[b]),f=i.useCallback(o=>(b?.settings??[]).filter(x=>x.section===o),[b]),Y=o=>H.filter(x=>x.section===o),re=o=>$.has(o)?!0:O.has(o)?!1:Ia(f(o)),Z=(o,x)=>{g(k=>{const N=new Set(k);return x?N.add(o):N.delete(o),N}),M(k=>{const N=new Set(k);return x?N.delete(o):N.add(o),N})},w=(o,x)=>{E(k=>{const N=new Set(k);return x?N.delete(o):N.add(o),N})},P=o=>{const x=ne.filter(N=>o||Y(N.name).length>0).map(N=>N.name),k=La(o,W,x);k.layout&&(g(new Set(k.layout.opened)),M(new Set(k.layout.closed))),E(new Set(k.filter))};i.useEffect(()=>{n.trim()||E(new Set)},[n]);const L=i.useCallback(o=>{const x=o.gated_by;if(!x||!b)return null;const k=b.settings.find(N=>N.key===x);return{key:x,label:k?.label??x,on:k?.value===!0||k?.value==="true"}},[b]),q=i.useCallback((o,x)=>h(k=>({...k,[o]:x})),[]),D=i.useCallback((o,x)=>_(k=>({...k,[o]:x})),[]),ee=i.useCallback(async o=>{const x=c[o.key];if(!x)return!1;const k=Fa(o,x);if(!k.ok)return D(o.key,k.error),!1;q(o.key,!0),D(o.key,null);try{await ge(k.request),q(o.key,!1);const F=(await z.refetch()).data?.settings.find(I=>I.key===o.key);return F&&y(I=>{const fe=I[o.key];return fe&&fe.value===x.value&&fe.cascadeBase===x.cascadeBase?{...I,[o.key]:ce(F)}:I}),!0}catch(N){return q(o.key,!1),D(o.key,N instanceof Error?N.message:"The setting could not be saved."),!1}},[c,z,q,D]),te=i.useCallback(async o=>{q(o.key,!0),D(o.key,null);try{await ge({op:"settings.reset",key:o.key}),y(x=>({...x,[o.key]:ce({...o,value:o.default,is_default:!0})})),q(o.key,!1),await z.refetch()}catch(x){q(o.key,!1),D(o.key,x instanceof Error?x.message:"The setting could not be reset.")}},[z,q,D]),ue=i.useMemo(()=>(b?.settings??[]).filter(o=>we(o,c[o.key]??ce(o))),[b,c]),ie=async()=>{R(!0);for(const o of ue)await ee(o);R(!1)},se=()=>{b&&(y(o=>{const x={...o};for(const k of b.settings)x[k.key]=ce(k);return x}),_({}))};i.useEffect(()=>{if(!t||!b||T.current===t)return;const o=b.settings.find(N=>N.key===t);if(!o)return;T.current=t,he(o)==="advanced"&&u(!0);const x=pe(n.trim());!x||pe([o.label,o.help,o.key,o.section].join(" ")).includes(x)||d(""),p(!1),g(N=>new Set(N).add(o.section)),M(N=>{const F=new Set(N);return F.delete(o.section),F})},[t,b,n]);const le=i.useMemo(()=>{if(!t||!b)return!1;const o=b.settings.find(k=>k.key===t);if(!o||he(o)==="advanced"&&!l)return!1;const x=pe(n.trim());return x?pe([o.label,o.help,o.key,o.section].join(" ")).includes(x):!0},[t,b,n,l]);if(i.useEffect(()=>{if(!le||!t||v.current===t)return;let o=0,x=0;const k=()=>{const N=document.querySelector(`[data-setting-key="${CSS.escape(t)}"]`),F=N?.querySelector('[data-setting-control] :is(input, textarea, select, button[role="switch"], button)')??N;if(F){F===N&&(F.tabIndex=-1),F.focus(),F.scrollIntoView({block:"center"}),v.current=t;return}x+=1,x<Wa&&(o=requestAnimationFrame(k))};return o=requestAnimationFrame(k),()=>cancelAnimationFrame(o)},[le,t]),s.data&&!r)return e.jsx(K,{variant:"warning",children:"Searchable settings need a newer Local Operator server. Update the server and restart the app to manage these settings here."});if(z.isLoading||s.isLoading)return e.jsx("div",{className:"flex h-40 items-center justify-center",children:e.jsx(X,{size:"lg",label:"Loading settings"})});const oe=(s.data?null:s.error)??z.error;if(oe||!b){const o=s.isFetching||z.isFetching;return e.jsx(K,{variant:"warning",children:e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsx("span",{children:vt("Your settings could not be loaded.",oe)}),e.jsx(C,{variant:"secondary",size:"sm",className:"shrink-0",onClick:()=>{s.isError?s.refetch():z.refetch()},disabled:o,children:o?"Retrying":"Retry"})]})})}const je=b.settings.reduce((o,x)=>(o[he(x)]+=1,o),{core:0,advanced:0}),Se=new Set(H.map(o=>o.section)).size;return e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsx(Ya,{query:n,onQueryChange:d,matchCount:n.trim()?H.length:null,matchSections:Se,coreCount:je.core,advancedCount:je.advanced,modifiedCount:b.settings.filter(Q).length,modifiedOnly:m,onModifiedOnlyChange:p,showAdvanced:l,onShowAdvancedChange:u,onExpandAll:()=>P(!0),onCollapseAll:()=>P(!1),unsavedCount:ue.length,savingAll:A,onSaveAll:()=>void ie(),onDiscardAll:se}),W&&H.length===0&&e.jsx("div",{className:"flex flex-col items-center py-6 text-center",children:e.jsx("p",{className:"text-body-sm text-ink-muted",children:"No settings match this search. Clear the search field to see every setting again."})}),e.jsx("div",{className:"flex flex-col gap-1",children:ne.map(o=>{const x=Y(o.name),k=f(o.name),N=W?0:k.filter(I=>he(I)==="advanced").length;if(W&&x.length===0)return null;const F=W?x.length>0&&!U.has(o.name):re(o.name);return e.jsxs("section",{"data-settings-section":o.name,"data-open":F,className:"flex flex-col",children:[e.jsx(Ba,{title:o.title,rowCount:x.length,advancedCount:N,scope:Qa[o.scope],modified:k.some(Q),defaultOpen:F,onOpenChange:I=>W?w(o.name,I):Z(o.name,I)},`${o.name}:${F?"open":"closed"}`),e.jsxs("div",{hidden:!F,className:"flex flex-col pb-3",children:[o.description&&e.jsx("p",{className:"px-1 pb-1 text-meta text-ink-dim",children:o.description}),x.length===0?e.jsxs("div",{className:"flex items-center gap-2 px-1 py-2",children:[e.jsx("p",{className:"text-body-sm text-ink-muted",children:N>0?"Advanced settings are hidden here.":"Nothing in this section matches."}),N>0&&e.jsxs(C,{variant:"secondary",size:"sm",onClick:()=>u(!0),children:["Show ",N," advanced"]})]}):x.map(I=>e.jsx(Va,{setting:I,draft:c[I.key]??ce(I),tier:he(I),gate:L(I),saving:!!S[I.key],error:j[I.key]??null,onDraftChange:fe=>y(De=>({...De,[I.key]:fe})),onSave:()=>void ee(I),onReset:()=>void te(I)},I.key))]})]},o.name)})})]})},Ye=({credentialKey:t,isConfigured:a=!1,onEdit:s,onClear:r,onAdd:n})=>{const d=Wt(t),l=a?ea:Ce;return e.jsxs("div",{className:"flex flex-col rounded-md p-3 transition-colors duration-fast ease-out-quart hover:bg-elevated",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("h3",{className:"flex items-center gap-2 text-body font-medium text-ink",children:[e.jsx(l,{className:"size-3.5 shrink-0 text-ink-dim"}),d.name]}),e.jsx("p",{className:"mt-1 break-all text-mono-sm text-ink-dim",children:t}),e.jsx("p",{className:"mt-2 text-body-sm text-ink-muted",children:d.description})]}),e.jsx("div",{className:"mt-auto flex flex-wrap items-center justify-end gap-2 pt-4",children:a?e.jsxs(e.Fragment,{children:[e.jsxs(C,{variant:"ghost",size:"sm",onClick:()=>s?.(t),children:[e.jsx(Zt,{}),"Update"]}),e.jsxs(C,{variant:"ghost",size:"sm",className:"text-danger hover:bg-danger-wash hover:text-danger",onClick:()=>r?.(t),children:[e.jsx(yt,{}),"Clear"]})]}):e.jsxs(e.Fragment,{children:[e.jsxs(C,{variant:"outline",size:"sm",onClick:()=>n?.(t),children:[e.jsx(Ce,{}),"Configure"]}),d.url&&e.jsx(Re,{content:`Get your ${d.name} key`,children:e.jsx(C,{variant:"ghost",size:"icon-sm",asChild:!0,children:e.jsx("a",{href:d.url,target:"_blank",rel:"noopener noreferrer","aria-label":`Get your ${d.name} key`,children:e.jsx(jt,{})})})})]})})]})},Te="_custom_",Ge="credential-custom-key",Qe="credential-custom-key-error",We="credential-type",Ze="credential-type-help",Je="credential-value",Xe="credential-value-help",et=({open:t,onClose:a,onSave:s,initialKey:r="",existingKeys:n,isSaving:d,isEditMode:l})=>{const[u,m]=i.useState(r),[p,c]=i.useState(""),[y,S]=i.useState(""),[h,j]=i.useState(!1);i.useEffect(()=>{if(t){const v=ve.some(b=>b.key===r),z=!l&&r&&!v;m(v?r:""),c(""),S(z?r:""),j(z||l&&!v)}},[t,r,l]);const _=()=>{let v="";if(l?v=r:v=h?y.trim():u,!v){console.error("No key provided for credential");return}if(!p.trim()){console.error("No value provided for credential");return}s({key:v,value:p})},A=v=>n.includes(v)&&v!==r,R=A(y),$=l?!0:h?y.trim()!==""&&!R:u!==""&&!A(u),g=p.trim()!=="",O=$&&g&&!d,M=ve.find(v=>v.key===u),U=!!M&&!h,E=l?"Update credential":"Add new credential",T=e.jsxs(e.Fragment,{children:[e.jsx(C,{variant:"secondary",onClick:a,children:"Cancel"}),e.jsxs(C,{variant:"primary",onClick:_,disabled:!O,children:[d&&e.jsx(X,{size:"sm",className:"border-t-on-accent"}),d?"Saving...":"Save"]})]});return e.jsx(Jt,{open:t,onClose:a,title:E,actions:T,maxWidth:"sm",fullWidth:!0,children:e.jsxs("div",{className:"flex flex-col gap-4",children:[l?e.jsx(G,{label:"Credential key",value:e.jsx("span",{className:"text-mono-sm",children:r})}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(de,{htmlFor:We,children:"Credential type"}),e.jsxs(at,{value:h?Te:u,onValueChange:v=>{v===Te?(j(!0),m("")):(j(!1),m(v),S(""))},children:[e.jsx(nt,{id:We,"aria-describedby":U?Ze:void 0,children:e.jsx(rt,{placeholder:"Select a credential type"})}),e.jsxs(it,{children:[ve.filter(v=>!v.internal).map(v=>e.jsxs(Le,{value:v.key,disabled:A(v.key),children:[v.name,A(v.key)&&" (configured)"]},v.key)),e.jsx(Le,{value:Te,children:"Custom credential"})]})]}),U&&M&&e.jsxs("div",{id:Ze,className:"flex flex-col items-start gap-1",children:[e.jsx("p",{className:"text-meta text-ink-dim",children:M.description}),M.url&&e.jsxs("a",{href:M.url,target:"_blank",rel:"noopener noreferrer",className:"text-accent text-meta underline-offset-4 hover:text-accent-hover hover:underline",children:["Get your ",M.name," key"]})]})]}),h&&e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(de,{htmlFor:Ge,children:"Custom credential key"}),e.jsx(ae,{id:Ge,value:y,onChange:v=>S(v.target.value),"aria-invalid":R||void 0,"aria-describedby":R?Qe:void 0,required:!0,autoFocus:!0}),R&&e.jsx("p",{id:Qe,className:"text-danger text-meta",children:"This credential already exists"})]})]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(de,{htmlFor:Je,children:"Credential value"}),e.jsx(ae,{id:Je,type:"password",value:p,onChange:v=>c(v.target.value),onKeyDown:v=>{v.key==="Enter"&&O&&_()},"aria-describedby":l?Xe:void 0,required:!0,autoFocus:l,placeholder:"Enter the credential value or API key"}),l&&e.jsxs("p",{id:Xe,className:"text-ink-dim text-meta",children:["Enter the new value for ",r]})]})]})})},tt=({title:t,description:a,children:s,isEmpty:r=!1,emptyStateType:n="noCredentials"})=>e.jsxs("section",{children:[e.jsx("h3",{className:"text-body font-medium text-ink",children:t}),e.jsx("p",{className:"mt-1 max-w-2xl text-body-sm text-ink-muted",children:a}),e.jsx(Rt,{variant:"surface",padding:"sm",className:"mt-3",children:r?e.jsx(Ja,{type:n}):e.jsx("div",{className:"grid grid-cols-[repeat(auto-fit,minmax(260px,1fr))] gap-2",children:s})})]}),Ja=({type:t,className:a})=>{const s=t==="noCredentials",r=s?Ce:ot;return e.jsxs("div",{className:J("flex flex-col items-center px-4 py-8 text-center",a),children:[e.jsx(r,{size:20,className:"text-ink-dim","aria-hidden":!0}),e.jsx("p",{className:"mt-3 text-body font-medium text-ink",children:s?"No credentials configured":"All available credentials configured"}),e.jsx("p",{className:"mt-1 max-w-sm text-body-sm text-ink-muted",children:s?"You haven't set up any API credentials yet. Add credentials from the available options or add a custom one.":"You've configured all the common API credentials. You can still add custom credentials if needed."})]})},Xa=()=>{const{data:t,isLoading:a,error:s,refetch:r}=bt(),n=Xt(),[d,l]=i.useState(!1),[u,m]=i.useState(!1),[p,c]=i.useState(null),y=g=>{c(g),l(!0)},S=(g=null)=>{c(g),m(!0)},h=()=>{l(!1),m(!1),c(null)},j=async g=>{try{await n.mutateAsync(g),h(),await r()}catch(O){console.error("Error saving credential:",O)}},_=async g=>{try{await n.mutateAsync({key:g,value:""}),await r()}catch(O){console.error("Error clearing credential:",O)}},A=i.useMemo(()=>t?.keys?.filter(g=>!ve.find(O=>O.key===g)?.internal)??[],[t]),R=i.useMemo(()=>ve.filter(g=>!A.includes(g.key)&&!g.internal),[A]),$=()=>a?e.jsx("div",{className:"flex min-h-40 items-center justify-center",children:e.jsx(X,{size:"lg",label:"Loading credentials"})}):s||!t?e.jsxs(K,{variant:"danger",role:"alert",children:[e.jsx(Mt,{children:"Could not load credentials"}),e.jsx(It,{children:s instanceof Error?s.message:"The server did not say why. Check that Local Operator is running, then reopen this page."})]}):e.jsxs(e.Fragment,{children:[e.jsx(tt,{title:"Configured credentials",description:"These API credentials are currently configured and available for use.",isEmpty:A.length===0,emptyStateType:"noCredentials",children:A.map(g=>e.jsx(Ye,{credentialKey:g,isConfigured:!0,onEdit:y,onClear:_},g))}),e.jsx(tt,{title:"Available credentials",description:"These are common API credentials you can configure to enhance functionality.",isEmpty:R.length===0,emptyStateType:"allConfigured",children:R.map(g=>e.jsx(Ye,{credentialKey:g.key,isConfigured:!1,onAdd:()=>S(g.key)},g.key))}),e.jsx("div",{className:"flex justify-center",children:e.jsxs(C,{variant:"secondary",size:"sm",onClick:()=>S(null),children:[e.jsx(es,{}),"Add custom credential"]})}),d&&e.jsx(et,{open:d,onClose:h,onSave:j,initialKey:p||"",existingKeys:A,isSaving:n.isPending,isEditMode:!0}),u&&e.jsx(et,{open:u,onClose:h,onSave:j,initialKey:p||"",existingKeys:A,isSaving:n.isPending,isEditMode:!1})]});return e.jsx("div",{className:"flex flex-col gap-6",children:$()})},en=[[[".claude.json"],"Claude Code"],[[".claude",".mcp.json"],"Claude Code"],[[".cursor","mcp.json"],"Cursor"],[[".vscode","mcp.json"],"VS Code"],[[".codex","config.toml"],"Codex CLI"]];function tn(t){if(!t)return null;const a=t.split("\\").join("/").split("/").filter(Boolean);for(const[s,r]of en)if(!(a.length<s.length)&&a.slice(-s.length).join("/")===s.join("/"))return r;return null}const sn={list:"status",add:"add",remove:"remove",reload:"reload",connect:"reconnect",probe:"probe",disconnect:"disconnect",login:"grant",logout:"disconnect",reauth:"grant",status:"status",cancel:"cancel"},an=(t,a)=>{const s=t?.trim();if(!s)return null;const r=os(s,a);return r.kind==="auth"?{kind:"matched",name:r.name,unresolved:null}:{kind:"miss",asked:s}},nn=t=>t.reduce((a,s)=>a?(s.updated_at??0)>(a.updated_at??0)?s:a:s,null),rn=({sessionId:t,onAdded:a})=>{const[s,r]=i.useState(""),[n,d]=i.useState("command"),[l,u]=i.useState(""),[m,p]=i.useState(""),[c,y]=i.useState(""),[S,h]=i.useState("global"),[j,_]=i.useState(null),[A,R]=i.useState(!1),$=async()=>{R(!0),_(null);try{await ge({op:"mcp.control",sessionId:t,control:{action:"add",name:s,scope:S,...n==="command"?{command:l,args:m.split(`
|
|
92
|
-
`).map(g=>g.trim()).filter(Boolean)}:{url:c}}}),r(""),u(""),p(""),y(""),a()}catch(g){_(kt("add",g,!1))}finally{R(!1)}};return e.jsxs("form",{className:"flex flex-col gap-3 rounded-md border border-control bg-surface p-4",onSubmit:g=>{g.preventDefault(),$()},children:[e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx(de,{htmlFor:"mcp-add-name",children:"Name"}),e.jsx(ae,{id:"mcp-add-name",value:s,onChange:g=>r(g.target.value),required:!0})]}),e.jsxs("fieldset",{className:"flex gap-2",children:[e.jsx("legend",{className:"sr-only",children:"Server transport"}),e.jsx(C,{type:"button",variant:n==="command"?"secondary":"ghost",size:"sm",onClick:()=>d("command"),children:"Local command"}),e.jsx(C,{type:"button",variant:n==="url"?"secondary":"ghost",size:"sm",onClick:()=>d("url"),children:"Remote URL"})]}),n==="command"?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx(de,{htmlFor:"mcp-add-command",children:"Command"}),e.jsx(ae,{id:"mcp-add-command",value:l,onChange:g=>u(g.target.value),className:"font-mono",required:!0})]}),e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx(de,{htmlFor:"mcp-add-args",children:"Arguments, one per line"}),e.jsx("textarea",{id:"mcp-add-args",value:m,onChange:g=>p(g.target.value),rows:2,className:"rounded-sm border border-control bg-surface p-2 font-mono text-body-sm text-ink"})]})]}):e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx(de,{htmlFor:"mcp-add-url",children:"URL"}),e.jsx(ae,{id:"mcp-add-url",type:"url",value:c,onChange:g=>y(g.target.value),className:"font-mono",required:!0}),e.jsx("p",{className:"text-meta text-ink-dim",children:"No inline credentials or query parameters; secrets are referenced from the credential manager."})]}),e.jsxs("fieldset",{className:"flex gap-2",children:[e.jsx("legend",{className:"sr-only",children:"Configuration scope"}),e.jsx(C,{type:"button",variant:S==="global"?"secondary":"ghost",size:"sm",onClick:()=>h("global"),children:"Global"}),e.jsx(C,{type:"button",variant:S==="project"?"secondary":"ghost",size:"sm",onClick:()=>h("project"),children:"This project"})]}),j&&e.jsxs(K,{variant:"danger",children:[e.jsx("p",{children:j.message}),j.detail?e.jsx("p",{className:"font-mono text-ink-dim text-mono-sm",title:j.detail,children:j.detail}):null]}),e.jsx("div",{children:e.jsxs(C,{type:"submit",variant:"primary",size:"sm",disabled:A||!s||!(n==="command"?l:c),children:[A?e.jsx(X,{size:"sm"}):null,"Add server"]})})]})},on=({sessionId:t,sectionRef:a,highlightServer:s})=>{const r=ft(),n=gt(r.data,"mcp"),d=ut(),l=be(f=>f.sessions),u=be(f=>f.fetchSessions),m=be(f=>f.loading),p=i.useMemo(()=>t?null:nn(l),[t,l]),c=t??p?.session_id,[y,S]=i.useState(null),[h,j]=i.useState(null),[_,A]=i.useState(!1),[R,$]=i.useState(null),g=ts({sessionId:c}),[O,M]=i.useState("");i.useEffect(()=>{t||!n||l.length>0||u()},[t,n,l.length,u]);const U=ye({queryKey:_e.list(c??""),queryFn:()=>{if(!c)throw new Error("No conversation selected.");return ls(c)},enabled:n&&!!c,staleTime:1e4}),E=ss(U.data),T=i.useMemo(()=>an(s,E.map(f=>f.name)),[s,E]),v=T?.kind==="matched"?T.name:null,z=i.useRef(null),b=i.useRef(null),Q=O.trim().toLowerCase(),H=i.useMemo(()=>Q?E.filter(f=>f.name.toLowerCase().includes(Q)):E,[E,Q]);i.useEffect(()=>{!v||b.current===v||!O||M("")},[v,O]),i.useEffect(()=>{v&&b.current!==v&&H.some(f=>f.name===v)&&(b.current=v,z.current?.scrollIntoView({block:"center",behavior:"smooth"}))},[v,H]);const W=i.useCallback(()=>{c&&d.invalidateQueries({queryKey:_e.list(c)})},[d,c]),ne=i.useCallback(async(f,Y,re={})=>{if(c){j(null);try{await ge({op:"mcp.control",sessionId:c,control:{action:f,name:Y,...re}}),W()}catch(Z){const w=d.getQueryData(_e.list(c));j(kt(sn[f],Z,as(w?.operations)))}}},[d,c,W]);return n?c?e.jsx(V,{title:"Integrations",description:"MCP servers connect agents to your tools and accounts. A connected server is a working transport; the account behind it may still need its own sign-in.",sectionRef:a,children:e.jsxs("div",{className:"flex flex-col gap-4",children:[h&&e.jsxs(K,{variant:"danger",children:[e.jsx("p",{children:h.message}),h.detail?e.jsx("p",{className:"font-mono text-ink-dim text-mono-sm",title:h.detail,children:h.detail}):null]}),p&&e.jsxs("p",{className:"text-body-sm text-ink-muted",children:["Showing MCP servers for"," ",p.title?.trim()||p.session_id.slice(0,6),", your most recent conversation. Open a conversation to see its own list."]}),U.isLoading&&e.jsx("div",{className:"flex h-24 items-center justify-center",children:e.jsx(X,{size:"lg",label:"Loading MCP servers"})}),U.isError&&e.jsx(K,{variant:"warning",children:e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsx("span",{children:"MCP servers could not be loaded."}),e.jsx(C,{variant:"secondary",size:"sm",onClick:()=>void U.refetch(),children:"Retry"})]})}),E.length>0&&e.jsxs("div",{className:"relative",children:[e.jsx(xt,{"aria-hidden":"true",className:"pointer-events-none absolute top-1/2 left-3 size-4 -translate-y-1/2 text-ink-dim"}),e.jsx(ae,{value:O,onChange:f=>M(f.target.value),placeholder:"Search MCP servers","aria-label":"Search MCP servers",className:"pl-9"})]}),T?.kind==="miss"&&E.length>0&&e.jsx("p",{className:"text-body-sm text-ink-muted",children:`No MCP server matches "${T.asked}".`}),T?.kind==="matched"&&T.unresolved&&e.jsx("p",{className:"text-body-sm text-ink-muted",children:`Showing "${T.name}" — "${T.unresolved}" is not one of your servers.`}),U.isSuccess&&E.length===0&&e.jsx("p",{className:"text-body-sm text-ink-muted",children:"No MCP servers configured yet. Add one below."}),E.length>0&&H.length===0&&e.jsxs("div",{className:"flex flex-col items-start gap-2",children:[e.jsx("p",{className:"text-body-sm text-ink-muted",children:"No MCP servers match this search."}),e.jsx(C,{variant:"secondary",size:"sm",onClick:()=>M(""),children:"Clear search"})]}),H.length>0&&e.jsx("ul",{className:"flex flex-col gap-2",children:H.map(f=>{const Y=f.status==="connected",re=f.name===v,Z=f.owned_scope,w=f.transport==="http"&&f.transport_oauth_supported!==!1,P=tn(f.source);return e.jsxs("li",{ref:re?z:void 0,className:J("flex flex-col gap-2 rounded-md border border-control bg-surface p-3",re&&"border-accent bg-elevated"),children:[e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[e.jsx("span",{className:"truncate font-medium text-body text-ink",children:f.name}),Z&&e.jsx(Ne,{variant:"outline",children:Z==="project"?"This project":"Global"}),f.transport&&e.jsx("span",{className:"text-meta text-ink-dim",children:f.transport})]}),e.jsx(Ne,{variant:Y?"success":f.status==="connecting"?"info":f.status==="auth-required"?"warning":"neutral",children:f.status??"unknown"})]}),typeof f.tool_count=="number"&&e.jsxs("p",{className:"text-meta text-ink-dim",children:[f.tool_count," tools available"]}),f.status==="auth-required"&&!w&&e.jsx("p",{className:"text-meta text-ink-dim",children:f.setup?.text?"This server needs credentials local-operator cannot collect. Copy the setup prompt to have an agent walk you through it.":"This server needs credentials local-operator cannot collect."}),!Z&&e.jsxs("p",{className:"text-meta text-ink-dim",children:[P?`Imported from ${P}.`:"Imported from a configuration local-operator does not write."," ",f.source?e.jsxs(e.Fragment,{children:["Remove it in"," ",e.jsx("span",{className:"font-mono text-mono-sm text-ink-dim",children:ns(f.source)}),"."]}):e.jsx(e.Fragment,{children:"Remove it wherever it is defined."})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[Y?e.jsxs(C,{variant:"secondary",size:"sm",onClick:()=>{S(null),ne("disconnect",f.name,{confirmed:!0})},children:[e.jsx(wt,{"aria-hidden":"true"}),"Disconnect"]}):e.jsxs(C,{variant:"secondary",size:"sm",onClick:()=>void ne("connect",f.name),children:[e.jsx(ia,{"aria-hidden":"true"}),"Connect"]}),e.jsxs(C,{variant:"ghost",size:"sm",onClick:()=>void ne("reload",f.name),children:[e.jsx(Lt,{"aria-hidden":"true"}),"Reload"]}),e.jsx(C,{variant:"ghost",size:"sm",onClick:()=>{const L=rs(U.data?.servers??[]).find(q=>q.name===f.name);L&&$({row:L,sessionId:c})},children:"Sign in"}),f.setup?.text?e.jsx(C,{variant:"ghost",size:"sm",onClick:()=>{navigator.clipboard.writeText(f.setup?.text??"").catch(()=>{})},children:"Copy setup prompt"}):null,Z?y===f.name?e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"text-body-sm text-ink",children:["Remove ",f.name,"?"]}),e.jsx(C,{variant:"danger",size:"sm",onClick:()=>{S(null),ne("remove",f.name,{confirmed:!0,scope:Z})},children:"Confirm removal"}),e.jsx(C,{variant:"ghost",size:"sm",onClick:()=>S(null),children:"Keep"})]}):e.jsxs(C,{variant:"ghost",size:"sm",className:"text-danger",onClick:()=>S(f.name),children:[e.jsx(yt,{"aria-hidden":"true"}),"Remove"]}):null]})]},f.name)})}),R?.sessionId===c?e.jsx(is,{row:R.row,remedy:g,onClose:()=>$(null)},c):null,_?e.jsx(rn,{sessionId:c,onAdded:()=>{A(!1),W()}}):e.jsx("div",{children:e.jsx(C,{variant:"secondary",size:"sm",onClick:()=>A(!0),"data-tour-tag":"mcp-add-server",children:"Add server"})})]})}):e.jsx(V,{title:"Integrations",description:"MCP servers connect agents to your tools and accounts.",sectionRef:a,children:m?e.jsx("div",{className:"flex h-24 items-center justify-center",children:e.jsx(X,{size:"lg",label:"Loading MCP servers"})}):e.jsx("p",{className:"text-body-sm text-ink-muted",children:"Open a conversation to manage its MCP servers."})}):e.jsx(V,{title:"Integrations",description:"MCP servers connect agents to your tools and accounts.",sectionRef:a,children:e.jsx(K,{variant:"warning",children:"Integration management needs a newer Local Operator backend. Update the backend and restart the app to manage MCP servers here."})})},ln=({onAfterCredentialUpdate:t})=>{const{isAuthenticated:a,user:s,isLoading:r,error:n,signOut:d}=cs(),l=Nt(c=>c.isSigningOut),u=i.useCallback(async()=>{try{await d()}catch(c){console.error("Error signing out:",c)}},[d]),m=i.useMemo(()=>{if(!a||!s?.radientUser)return null;const{account:c,identity:y}=s.radientUser;return e.jsxs(e.Fragment,{children:[e.jsxs(Oe,{children:[e.jsx(G,{label:"Status",value:e.jsxs("span",{className:"inline-flex items-center gap-2",children:["Connected",e.jsx(Ne,{variant:"success",className:"capitalize",children:c.status})]})}),e.jsx(G,{label:"Name",value:c.name||"Not provided"}),e.jsx(G,{label:"Email",value:c.email}),e.jsx(G,{label:"Account ID",value:e.jsx("span",{className:"text-mono-sm",children:c.id})}),e.jsx(G,{label:"Tenant ID",value:e.jsx("span",{className:"text-mono-sm",children:c.tenant_id})}),e.jsx(G,{label:"Provider",value:e.jsx("span",{className:"capitalize",children:y.provider})}),e.jsx(G,{label:"Created",value:Ct(c.created_at)})]}),e.jsxs("div",{className:"mt-8",children:[e.jsx("p",{className:"text-body-sm text-ink-muted",children:"Need to sign out or switch accounts?"}),e.jsxs(C,{variant:"danger",className:"mt-3",onClick:u,children:[e.jsx(ds,{}),"Sign out from Radient"]})]})]})},[a,s?.radientUser,u]),p=i.useMemo(()=>a&&s?null:e.jsxs("div",{children:[e.jsx("p",{className:"text-body-sm text-ink-muted",children:"You are not currently signed in to Radient. Sign in to access your account details or sign up to get free credits and unified access to models, tools, and more with Radient Pass. Radient's automatic model router will automatically select the best model for your agents to balance cost and performance. It is often cheaper to use Radient Pass than to use single AI providers due to automatic cost optimization."}),e.jsx("div",{className:"mt-6",children:e.jsx(Ls,{titleText:"",onAfterCredentialUpdate:t,descriptionText:"",onSignInSuccess:()=>{}})})]}),[a,s,t]);return r||l?e.jsx("div",{className:"flex min-h-36 items-center justify-center",children:e.jsx(X,{size:"lg",label:"Loading account"})}):a&&s?.radientUser?m:e.jsxs("div",{className:"flex flex-col gap-4",children:[n&&e.jsxs(K,{variant:"danger",children:["Error checking account status:"," ",n instanceof Error?n.message:String(n)]}),p]})};function cn({metric:t,data:a}){return e.jsx(us,{title:"",heightClassName:"h-62",yAxisWidth:48,unit:t==="credits"?"credits":"tokens",srSummary:`${t==="credits"?"Credits consumed":"Tokens used"} over the last 30 days, plotted per day across ${a.length} days.`,xTickFormatter:s=>s,yTickFormatter:s=>t==="credits"?`$${s.toFixed(2)}`:ms(s),children:e.jsx(ba,{data:a,children:e.jsx(mt,{type:"monotone",dataKey:"value",strokeWidth:2,dot:!1,activeDot:{r:4,strokeWidth:0},name:t==="credits"?"Credits consumed":"Tokens used"})})})}const dn=()=>{const{data:t,isLoading:a,error:s,refetch:r}=va(),n=ya(),[d,l]=i.useState(""),[u,m]=i.useState(!1);i.useEffect(()=>{l(t?.content??""),m(!1)},[t]);const p=j=>{const _=j.target.value;l(_),m(_!==(t?.content??""))},c=async()=>{if(!(!u||n.isPending))try{const j={content:d};await n.mutateAsync(j),await r(),m(!1)}catch(j){console.error("Error updating system prompt:",j)}},y=()=>{l(t?.content??""),m(!1)},S=n.isPending,h=()=>e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(de,{htmlFor:"app-system-prompt",children:"Instructions"}),e.jsx(Ie,{id:"app-system-prompt",name:"systemPrompt",value:d,onChange:p,placeholder:"Enter instructions for how all agents should behave and respond to your requests...",className:"min-h-50"})]}),e.jsxs("div",{className:"flex gap-3",children:[e.jsxs(C,{variant:"primary",onClick:c,disabled:!u||S,children:[S?e.jsx(X,{size:"sm"}):e.jsx(hs,{}),S?"Saving...":"Save changes"]}),e.jsx(C,{onClick:y,disabled:!u||S,children:"Cancel"})]}),t?.last_modified&&e.jsxs("p",{className:"text-ink-dim text-meta",children:["Last modified:"," ",e.jsx("span",{className:"font-mono text-mono-sm",children:St(t.last_modified)})]})]});return e.jsx(V,{title:"System prompt",icon:Fs,description:"Every Local Operator agent receives this prompt in addition to its own instructions, so it is the place for baseline expectations and for details you want every agent to know about you, such as your name, location, or preferences. It is sent to your selected hosting provider.",children:a?e.jsx("div",{className:"flex min-h-50 items-center justify-center",children:e.jsx(X,{size:"lg",label:"Loading system prompt"})}):s?e.jsxs(K,{variant:"danger",children:["Failed to load system prompt:"," ",s instanceof Error?s.message:"Unknown error"]}):h()})},un={localOperatorDark:sa,localOperatorLight:ma,radient:Ws,dracula:la,dune:Gs,sage:Js,monokai:zt,tokyoNight:na,iceberg:da,neon:fa,obsidian:_t,synth:Ds},mn=({id:t})=>e.jsxs("div",{"data-theme":t,"aria-hidden":"true",className:"flex h-full bg-canvas",children:[e.jsxs("div",{className:"flex w-1/4 flex-col gap-1 bg-sunken p-1.5",children:[e.jsx("span",{className:"flex h-2.5 items-center rounded-xs bg-accent-wash px-1",children:e.jsx("span",{className:"h-1 w-full rounded-xs bg-accent"})}),e.jsx("span",{className:"mx-1 h-1 w-2/3 rounded-xs bg-ink-dim"}),e.jsx("span",{className:"mx-1 h-1 w-1/2 rounded-xs bg-ink-dim"})]}),e.jsxs("div",{className:"flex flex-1 flex-col justify-between p-2",children:[e.jsxs("div",{className:"flex flex-col gap-1.5 rounded-sm bg-surface p-2",children:[e.jsx("span",{className:"h-1.5 w-3/5 rounded-xs bg-ink"}),e.jsx("span",{className:"h-1 w-full rounded-xs bg-ink-dim"}),e.jsx("span",{className:"h-1 w-4/5 rounded-xs bg-ink-dim"})]}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"h-3 w-9 rounded-xs bg-accent"}),e.jsx("span",{className:"h-3 w-6 rounded-xs border border-control"})]})]})]}),hn=({id:t,name:a,description:s,isSelected:r,onSelect:n})=>{const d=un[t];return e.jsxs("button",{type:"button","aria-pressed":r,onClick:n,className:J("flex flex-col gap-2 rounded-lg p-2 text-left transition-colors duration-fast ease-out-quart",r?"bg-accent-wash":"hover:bg-surface"),children:[e.jsx("span",{className:J("block aspect-16/10 overflow-hidden rounded-md border transition-colors duration-fast ease-out-quart",r?"border-accent":"border-hairline"),children:e.jsx(mn,{id:t})}),e.jsxs("span",{className:"flex items-center gap-2 px-1",children:[e.jsx(d,{size:14,className:"shrink-0 text-ink-dim","aria-hidden":"true"}),e.jsx("span",{className:J("min-w-0 flex-1 truncate text-body-sm text-ink",r&&"font-medium"),children:a}),r&&e.jsx(ot,{size:14,className:"shrink-0 text-accent","aria-hidden":"true"})]}),e.jsx("span",{className:"px-1 pb-1 text-meta text-ink-muted",children:s})]})},pn=()=>{const{themeName:t,setTheme:a}=Fe(),s=i.useMemo(()=>{const r=Object.values(Ft);return[{label:"Dark",items:r.filter(n=>n.theme.palette.mode==="dark")},{label:"Light",items:r.filter(n=>n.theme.palette.mode==="light")}].filter(n=>n.items.length>0)},[]);return e.jsx("div",{className:"flex flex-col gap-6",children:s.map(r=>e.jsxs("div",{children:[e.jsx("h3",{className:"px-1 pb-2 text-meta text-ink-dim",children:r.label}),e.jsx("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(240px,1fr))] gap-2",children:r.items.map(({id:n,name:d,description:l})=>e.jsx(hn,{id:n,name:d,description:l,isSelected:n===t,onSelect:()=>a(n)},n))})]},r.label))})},xn=()=>{const{data:t,isLoading:a,error:s}=Na({enabled:!0});return e.jsxs("div",{children:[e.jsxs("h3",{className:"mb-3 flex items-center gap-2 text-heading text-ink",children:[e.jsx(Ks,{size:16,className:"shrink-0 text-ink-dim"}),"Radient Pass"]}),a&&e.jsx(lt,{className:"h-6 w-36"}),s&&e.jsxs(K,{variant:"warning",children:["Could not load your credit balance. ",s.message]}),t&&!a&&!s&&e.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center",children:[e.jsxs("p",{className:"flex-1 text-body-sm text-ink-muted",children:["Available credits"," ",e.jsx("span",{className:"font-medium text-ink",children:t.balance.toFixed(2)})]}),e.jsx(C,{variant:"secondary",size:"sm",asChild:!0,children:e.jsxs("a",{href:"https://console.radienthq.com/dashboard/billing",target:"_blank",rel:"noopener noreferrer",children:[e.jsx(Bs,{}),"Add credits"]})})]})]})},fn=[{id:"credits",label:"Credits"},{id:"tokens",label:"Tokens"}],gn=()=>{const[t,a]=i.useState("credits"),s=i.useMemo(()=>{const u=new Date,m=ka(u);return{start_date:Ve(m),end_date:Ve(u),rollup:"daily"}},[]),{data:r,isLoading:n,error:d}=_a(s,{enabled:!0}),l=i.useMemo(()=>r?.data_points?[...r.data_points].sort((m,p)=>Ee(m.timestamp).getTime()-Ee(p.timestamp).getTime()).map(m=>({bucket:Ts(Rs(Ee(m.timestamp),"yyyy-MM-dd")),value:t==="credits"?Number.parseFloat(m.total_cost.toFixed(2)):m.total_tokens})):[],[r,t]);return e.jsxs("div",{children:[e.jsxs("div",{className:"mb-5 flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[e.jsxs("h3",{className:"flex items-center gap-2 text-heading text-ink",children:[e.jsx($s,{size:16,className:"shrink-0 text-ink-dim"}),"Usage (last 30 days)"]}),e.jsxs("fieldset",{className:"m-0 w-fit border-0 p-0",children:[e.jsx("legend",{className:"sr-only",children:"Usage metric"}),e.jsx("div",{className:"flex gap-0.5 rounded-md bg-sunken p-0.5",children:fn.map(({id:u,label:m})=>e.jsx(C,{variant:"ghost",size:"sm","aria-pressed":t===u,onClick:()=>a(u),className:J(t===u&&"bg-surface text-ink hover:bg-surface"),children:m},u))})]})]}),n&&e.jsx(lt,{className:"h-62 w-full"}),d&&e.jsxs(K,{variant:"warning",children:["Could not load your usage data. ",d.message]}),!n&&!d&&r&&l.length>0&&e.jsx(cn,{metric:t,data:l}),!n&&!d&&(!r||l.length===0)&&e.jsx("p",{className:"text-body-sm text-ink-muted",children:"No usage recorded in the last 30 days."})]})},vn=()=>e.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[e.jsxs("h2",{className:"flex items-center gap-2 text-heading text-ink",children:[e.jsx(Ms,{size:16,className:"shrink-0 text-ink-dim"}),"Radient account"]}),e.jsx(C,{variant:"secondary",size:"sm",className:"self-start sm:self-center",asChild:!0,children:e.jsxs("a",{href:"https://console.radienthq.com",target:"_blank",rel:"noopener noreferrer",children:["Go to Radient console",e.jsx(jt,{})]})})]}),Nn=()=>{const t=Fe(w=>w.showAgentReasoning),a=Fe(w=>w.setShowAgentReasoning),{data:s,isLoading:r,isFetching:n,error:d,refetch:l}=ps(),u=xs(),[m,p]=i.useState(null),c=Nt(),{isAuthenticated:y,isLoading:S}=Pe(),h=be(w=>w.activeSessionId),[j,_]=i.useState("general"),[A,R]=i.useState(!1),$=i.useRef(null),g=i.useRef(null),{startTour:O}=fs(),M=gs(),{data:U,refetch:E}=bt(),{refreshModels:T}=vs(),v=i.useMemo(()=>U?.keys?[...U.keys].sort():[],[U?.keys]),z=i.useRef({keys:"",hosting:void 0});i.useEffect(()=>{const w=v.join(","),P=s?.values?.hosting;(z.current.keys!==w||z.current.hosting!==P)&&(z.current={keys:w,hosting:P},T().catch(L=>{console.error("Failed to refresh models after credentials or hosting change:",L)}))},[v,s?.values?.hosting,T]);const b=i.useRef({general:i.useRef(null),radient:i.useRef(null),integrations:i.useRef(null),appearance:i.useRef(null),credentials:i.useRef(null),providers:i.useRef(null),backend:i.useRef(null),updates:i.useRef(null)}).current,Q=i.useMemo(()=>new URLSearchParams(M.search).get("setting"),[M.search]),H=i.useMemo(()=>new URLSearchParams(M.search).get("filter")??"",[M.search]),W=i.useMemo(()=>new URLSearchParams(M.search).get("mcp")??void 0,[M.search]),ne=i.useMemo(()=>new URLSearchParams(M.search).get("provider"),[M.search]),f=i.useCallback(w=>{_(w),R(!0);const P=b[w],L=g.current;if(P?.current&&L){const D=P.current.getBoundingClientRect().top-L.getBoundingClientRect().top;L.scrollHeight>L.clientHeight?L.scrollTo({top:Math.max(0,L.scrollTop+D-80),behavior:"smooth"}):window.scrollTo({top:Math.max(0,P.current.getBoundingClientRect().top+window.scrollY-80),behavior:"smooth"}),clearTimeout($.current??void 0),$.current=setTimeout(()=>{R(!1),$.current=null},800)}else R(!1)},[b]);i.useEffect(()=>{const w=setTimeout(()=>{const P=g.current;if(!P)return;const L=()=>{if(A)return;const q=P.getBoundingClientRect(),D=q.height;let ee="",te=0;for(const[ue,ie]of Object.entries(b))if(ie.current){const se=ie.current.getBoundingClientRect(),le=q.top,oe=se.top-le,je=se.bottom-le,Se=se.height,o=Math.max(0,oe),x=Math.min(D,je),N=Math.max(0,x-o)/Se,F=N+(oe<D*.3?.1:0);F>te&&N>.1&&(te=F,ee=ue)}ee&&ee!==j&&_(ee)};return L(),P.addEventListener("scroll",L,{passive:!0}),()=>{P.removeEventListener("scroll",L),clearTimeout($.current??void 0)}},100);return()=>clearTimeout(w)},[b,j,A]),i.useEffect(()=>{const w=new URLSearchParams(M.search),P=w.get("section"),L=w.get("setting")?"backend":P,q=L?b[L]:void 0;if(!L||!q)return;let D=!1,ee=Number.NaN,te=0;const ue=window.setTimeout(()=>{D||(D=!0,se.disconnect(),f(L))},2e3),ie=()=>{if(D)return;const le=q.current;if(!le){te=requestAnimationFrame(ie);return}const oe=Math.round(le.getBoundingClientRect().top+window.scrollY);if(oe===ee&&oe>0){D=!0,se.disconnect(),window.clearTimeout(ue),f(L);return}ee=oe,te=requestAnimationFrame(ie)},se=new ResizeObserver(()=>{D||(cancelAnimationFrame(te),te=requestAnimationFrame(ie))});return g.current&&se.observe(g.current),te=requestAnimationFrame(ie),()=>{D=!0,cancelAnimationFrame(te),se.disconnect(),window.clearTimeout(ue)}},[M.search,b,f]);const Y=async(w,P)=>{p(w);try{await u.mutateAsync({[w]:P}),await l()}catch(L){console.error(`Error updating ${w}:`,L)}finally{p(null)}},re=r||S,Z=Ca(re,4e3);return d?e.jsx("div",{className:"flex h-full w-full items-center justify-center bg-canvas p-6",children:e.jsx(K,{variant:"warning",className:"w-full max-w-xl",children:e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsx("span",{children:vt("Your settings could not be loaded.",d)}),e.jsx(C,{variant:"secondary",size:"sm",className:"shrink-0",onClick:()=>void l(),disabled:n,children:n?"Retrying":"Retry"})]})})}):re?e.jsxs("div",{role:"status",className:"flex h-full w-full flex-col items-center justify-center gap-3 bg-canvas",children:[e.jsx(X,{size:"lg",label:Z?void 0:"Loading settings"}),Z&&e.jsx("p",{className:"max-w-sm text-center text-body-sm text-ink-muted",children:"The Local Operator server is taking longer than usual to answer. If it does not respond, you will be able to retry from here."})]}):s?e.jsxs("div",{className:"flex h-full w-full overflow-hidden bg-canvas",children:[e.jsx("div",{className:"w-12 shrink-0 overflow-y-auto border-r border-hairline min-[1040px]:w-55",children:e.jsx(ys,{activeSection:j,onSelectSection:f,sections:js})}),e.jsx("div",{ref:g,"data-settings-content":!0,"data-tour-tag":"settings-general-section",className:"flex-1 overflow-y-auto overflow-x-hidden p-4 sm:p-6 md:p-8",children:e.jsxs("div",{className:"mx-auto flex w-full max-w-4xl flex-col gap-8 pb-8",children:[e.jsx(Is,{title:"Settings",icon:Be}),e.jsxs("div",{className:"flex flex-col gap-8",children:[e.jsxs("div",{ref:b.general,className:"flex flex-col gap-8",children:[e.jsx(V,{title:"User profile",icon:bs,description:`Your user profile information displayed in the application. This information is not provided to the agents. ${y?"These details are provided through your Radient account.":""}`,children:e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsx(He,{value:c.profile.name,label:"Display name",placeholder:"Enter your name...",isSaving:m==="user_name",onSave:async w=>{p("user_name");try{c.updateName(w)}finally{p(null)}},readOnly:y}),e.jsx(He,{value:c.profile.email,label:"Email address",placeholder:"Enter your email...",isSaving:m==="user_email",onSave:async w=>{p("user_email");try{c.updateEmail(w)}finally{p(null)}},readOnly:y})]})}),e.jsx(V,{title:"Application tour",description:"Missed the application onboarding tour or want a refresher? Start it again here.",children:e.jsxs(C,{variant:"secondary",onClick:()=>{O({forceModalCompleted:!0})},children:[e.jsx(ks,{}),"Take the tour"]})}),e.jsx(V,{title:"Model settings",icon:ws,description:"Configure the default AI model and hosting providers used for generating responses. This will be used for all agents that don't have a specific model or hosting provider configured. You can override these settings for individual agents in the agent settings.",children:e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsx(Ns,{value:s.values.hosting,isSaving:m==="hosting",onSave:w=>Y("hosting",w),filterByCredentials:!0,allowCustom:!0,allowDefault:!1,emptyHelperText:"No hosting providers available. Add one in API credentials, in the list on the left."}),e.jsx(Cs,{value:s.values.model_name,hostingId:s.values.hosting,isSaving:m==="model_name",onSave:w=>Y("model_name",w),allowCustom:!0,allowDefault:!1}),e.jsx(K,{variant:"neutral",icon:e.jsx(Me,{className:"size-4","aria-hidden":"true"}),children:"You need a Radient account or your own API keys to reach cloud providers. If you don't see more hosting providers and models here, add credentials or sign in to Radient."})]})}),e.jsx(dn,{}),e.jsx(V,{title:"History settings",icon:Ps,description:"Configure how much conversation history is retained and displayed. These are tools to help balance cost and performance by controlling the amount of data used by the agents.",children:e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsx(Ae,{value:s.values.conversation_length,label:"Maximum conversation history",description:"Number of messages to keep in conversation history for context. More messages will make the agents have longer memory but more expensive to run. Recommended: 100",min:10,max:500,step:10,unit:"msgs",icon:Ss,isSaving:m==="conversation_length",onChange:w=>Y("conversation_length",w)}),e.jsx(Ae,{value:s.values.detail_length,label:"Detail view length",description:"Maximum number of messages to show in the detailed conversation view. Messages beyond this limit will be summarized. Shortening this will decrease costs but some important details could get lost from earlier messages. Recommended: 15",min:10,max:500,step:5,unit:"msgs",icon:_s,isSaving:m==="detail_length",onChange:w=>Y("detail_length",w)}),e.jsx(Ae,{value:s.values.max_learnings_history,label:"Maximum learnings history",description:"Agents note down specific insights and key learnings in memory which persist beyond the maximum conversation history and summarization. This setting controls the maximum number of learning items to retain. More items will make the agents acquire a longer history of knowledge from your conversations but more expensive to run. Recommended: 50",min:10,max:200,step:10,unit:"notes",icon:As,isSaving:m==="max_learnings_history",onChange:w=>Y("max_learnings_history",w)})]})}),e.jsx(V,{title:"Configuration information",icon:Me,description:"System information about the current configuration.",children:e.jsxs(Oe,{children:[e.jsx(G,{label:"Version",value:e.jsx("span",{className:"text-mono-sm",children:s.version})}),e.jsx(G,{label:"Created",value:Ct(s.metadata.created_at)}),e.jsx(G,{label:"Last modified",value:St(s.metadata.last_modified)}),e.jsx(G,{label:"Description",value:s.metadata.description||"No description available"})]})})]}),e.jsx(V,{title:"Appearance",icon:_t,description:"Customize the look and feel of Local Operator",sectionRef:b.appearance,dataTourTag:"settings-appearance-section",children:e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsx(pn,{}),e.jsx(ja,{value:t,label:"Show agent reasoning",description:"Adds the agent's Reasoning and Thinking rows to conversations. They stay closed until you open one.",onChange:async w=>a(w)})]})}),e.jsx(V,{title:"Radient account",titleComponent:e.jsx(vn,{}),description:"Manage your Radient account, Radient Pass details, and credits.",sectionRef:b.radient,dataTourTag:"settings-radient-account-section",children:e.jsxs("div",{className:"flex flex-col gap-8",children:[e.jsx(ln,{onAfterCredentialUpdate:()=>{T(),E()}}),y&&e.jsxs(e.Fragment,{children:[e.jsx(xn,{}),e.jsx(gn,{})]})]})}),e.jsx(V,{title:"Providers",icon:wt,description:"Model providers, how you sign in to each, and which are connected.",sectionRef:b.providers,children:e.jsx(Es,{initialProviderId:ne})}),e.jsx(V,{title:"Backend settings",icon:Be,description:"Every setting the backend registry owns, searchable, with typed editors and scopes.",sectionRef:b.backend,children:e.jsx(Za,{focusKey:Q,initialFilter:H})}),e.jsx(on,{sessionId:h??void 0,sectionRef:b.integrations,highlightServer:W}),e.jsx(V,{title:"API credentials",icon:Ce,description:"Manage your API keys for various services and integrations",sectionRef:b.credentials,dataTourTag:"settings-api-credentials-section",children:e.jsx(Xa,{})}),e.jsx("div",{ref:b.updates,children:e.jsx(Ta,{})})]})]})})]}):e.jsx("div",{className:"flex h-full w-full items-center justify-center bg-canvas p-6",children:e.jsx(K,{variant:"warning",className:"w-full max-w-xl",children:"Your settings could not be loaded."})})};export{Nn as SettingsPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as e,b as r,a,S as s}from"./chunk-AEK57VVT-CmzdR892.js";import{_ as i}from"./mermaid.core-C8WrVHA6.js";import"./chunk-RZ5BOZE2-BJJ-OTAf.js";import"./index-C-4XRZ68.js";import"./icon-CeaDeErk.js";var p={parser:a,get db(){return new s(2)},renderer:r,styles:e,init:i(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")};export{p as diagram};
|