local-operator-ui 0.25.13 → 0.25.15
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-bc4VmDGV.js → _basePickBy-BbG1ALnJ.js} +1 -1
- package/out/renderer/assets/{_baseUniq-Bfdqvg6j.js → _baseUniq-39ru0B3E.js} +1 -1
- package/out/renderer/assets/{agent-details-page-CbKvdL6k.js → agent-details-page-C9rPrquS.js} +1 -1
- package/out/renderer/assets/{agent-hub-page-DewaCmoB.js → agent-hub-page-Cu9y5Fv3.js} +1 -1
- package/out/renderer/assets/{agents-page-BAx-HTA8.js → agents-page-CPEV0QSi.js} +2 -2
- package/out/renderer/assets/{arc-DqaD77oR.js → arc-k8I-fTlM.js} +1 -1
- package/out/renderer/assets/{architectureDiagram-IEHRJDOE-DuYm-XdM.js → architectureDiagram-IEHRJDOE-B932TMSo.js} +1 -1
- package/out/renderer/assets/{blockDiagram-JOT3LUYC-BN9W0iCQ.js → blockDiagram-JOT3LUYC-db9X5MaR.js} +1 -1
- package/out/renderer/assets/browser-page-CVNYxXP9.js +1 -0
- package/out/renderer/assets/{c4Diagram-VJAJSXHY-BZzWuj2V.js → c4Diagram-VJAJSXHY-BDeQ-fFt.js} +1 -1
- package/out/renderer/assets/channel-BCQWjHH-.js +1 -0
- package/out/renderer/assets/{chunk-4BMEZGHF-CCFD5fiW.js → chunk-4BMEZGHF-CU7jL1L6.js} +1 -1
- package/out/renderer/assets/{chunk-A2AXSNBT-B4_sh8M9.js → chunk-A2AXSNBT-BMqBS1A3.js} +1 -1
- package/out/renderer/assets/{chunk-AEK57VVT-Do-iHcjv.js → chunk-AEK57VVT-CzSKpycZ.js} +1 -1
- package/out/renderer/assets/{chunk-D6G4REZN-BzRRbCAS.js → chunk-D6G4REZN-CQrJDOZy.js} +1 -1
- package/out/renderer/assets/{chunk-RZ5BOZE2-C2kh9IiB.js → chunk-RZ5BOZE2-D-km9m_s.js} +1 -1
- package/out/renderer/assets/{chunk-XZIHB7SX-BDfpJdHp.js → chunk-XZIHB7SX-DvYPRRJu.js} +1 -1
- package/out/renderer/assets/classDiagram-GIVACNV2-CMKx9Iyl.js +1 -0
- package/out/renderer/assets/classDiagram-v2-COTLJTTW-CMKx9Iyl.js +1 -0
- package/out/renderer/assets/clone-DjqArOKT.js +1 -0
- package/out/renderer/assets/{compact-pagination-D_8zpUwL.js → compact-pagination-Blz0sDBO.js} +1 -1
- package/out/renderer/assets/{dagre-OKDRZEBW-ChnHnfTz.js → dagre-OKDRZEBW-BnrgxubF.js} +1 -1
- package/out/renderer/assets/{diagram-SSKATNLV-CavENQaI.js → diagram-SSKATNLV-BxNKFJLF.js} +1 -1
- package/out/renderer/assets/{diagram-VNBRO52H-690ggnVw.js → diagram-VNBRO52H-CxgCBOir.js} +1 -1
- package/out/renderer/assets/{erDiagram-Q7BY3M3F-CTuMQBV8.js → erDiagram-Q7BY3M3F-Iu1vsWbC.js} +1 -1
- package/out/renderer/assets/{flowDiagram-4HSFHLVR-CtFFE60v.js → flowDiagram-4HSFHLVR-CfWHKRc5.js} +1 -1
- package/out/renderer/assets/{ganttDiagram-APWFNJXF-CPU9-_Vk.js → ganttDiagram-APWFNJXF-BjrQal6l.js} +1 -1
- package/out/renderer/assets/{gitGraphDiagram-7IBYFJ6S-FqEzibOg.js → gitGraphDiagram-7IBYFJ6S-56KW2PEZ.js} +1 -1
- package/out/renderer/assets/{graph-CREA3FQF.js → graph-D2-WGGeI.js} +1 -1
- package/out/renderer/assets/icon-C3z02Ja7.css +1 -0
- package/out/renderer/assets/{icon-Bo1zJC-t.js → icon-KrVT-csH.js} +1 -1
- package/out/renderer/assets/{index-CMeXUi08.js → index-Br-nYwjt.js} +1 -1
- package/out/renderer/assets/{index-C97fby69.js → index-D-QwRw4U.js} +1 -1
- package/out/renderer/assets/{index-DxqLk7VV.js → index-DHoa_fTS.js} +358 -358
- package/out/renderer/assets/{infoDiagram-PH2N3AL5-B95RTSnF.js → infoDiagram-PH2N3AL5-ClQjGEIz.js} +1 -1
- package/out/renderer/assets/{installer-BAJmF9yH.js → installer-Db9wXNQc.js} +1 -1
- package/out/renderer/assets/{journeyDiagram-U35MCT3I-BFmOoFz6.js → journeyDiagram-U35MCT3I-DBqMAMQ-.js} +1 -1
- package/out/renderer/assets/{kanban-definition-NDS4AKOZ-DU4RbTYN.js → kanban-definition-NDS4AKOZ-BhN-Ow0z.js} +1 -1
- package/out/renderer/assets/{layout-CKc9PdBJ.js → layout-CY_5UQfo.js} +1 -1
- package/out/renderer/assets/{legacy-agents-page-BW2DFvs-.js → legacy-agents-page-C8sy-DYn.js} +1 -1
- package/out/renderer/assets/{mermaid.core-DrsX5aBH.js → mermaid.core-CLbGiFTT.js} +5 -5
- package/out/renderer/assets/{mindmap-definition-ALO5MXBD-C06r_bU7.js → mindmap-definition-ALO5MXBD-DTCex3sv.js} +1 -1
- package/out/renderer/assets/{page-header-D3y3cG3g.js → page-header-CNu3r7Wl.js} +1 -1
- package/out/renderer/assets/{parseISO-Btt_HSDs.js → parseISO-8OYUNJsZ.js} +1 -1
- package/out/renderer/assets/{pieDiagram-IB7DONF6-ClWoeK5n.js → pieDiagram-IB7DONF6-cgOz8lSB.js} +1 -1
- package/out/renderer/assets/{quadrantDiagram-7GDLP6J5-DIdoFHQf.js → quadrantDiagram-7GDLP6J5-CZDm8E4e.js} +1 -1
- package/out/renderer/assets/{radar-MK3ICKWK-Bxan-5zf.js → radar-MK3ICKWK-oyemI_vE.js} +1 -1
- package/out/renderer/assets/{radient-auth-buttons-BIDrKwvA.js → radient-auth-buttons-VdrbQ4YR.js} +1 -1
- package/out/renderer/assets/{requirementDiagram-KVF5MWMF-ByLs9mhD.js → requirementDiagram-KVF5MWMF-DzsbNKTp.js} +1 -1
- package/out/renderer/assets/{sankeyDiagram-QLVOVGJD-cunFi4-W.js → sankeyDiagram-QLVOVGJD-BxGeIBOk.js} +1 -1
- package/out/renderer/assets/{schedules-page-aaSvtN4L.js → schedules-page-BPqzmDMl.js} +1 -1
- package/out/renderer/assets/{sequenceDiagram-X6HHIX6F-BuKmmvFg.js → sequenceDiagram-X6HHIX6F-DNfN9fLV.js} +1 -1
- package/out/renderer/assets/settings-page-Dp-fMka0.js +92 -0
- package/out/renderer/assets/{stateDiagram-DGXRK772-DBbRR9aw.js → stateDiagram-DGXRK772-BBmMoXFE.js} +1 -1
- package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-D2k9IF9I.js +1 -0
- package/out/renderer/assets/{timeline-definition-BDJGKUSR-ZsiLwTvu.js → timeline-definition-BDJGKUSR-BIxvSKv3.js} +1 -1
- package/out/renderer/assets/{use-agent-like-mutation-rONZaYUu.js → use-agent-like-mutation-1ckg9XNU.js} +1 -1
- package/out/renderer/assets/{xychartDiagram-VJFVF3MP-B4zHXz_w.js → xychartDiagram-VJFVF3MP-DOk0QFVy.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-B_8MbM1r.js +0 -1
- package/out/renderer/assets/channel-DHbUfcCI.js +0 -1
- package/out/renderer/assets/classDiagram-GIVACNV2-umxMhdp2.js +0 -1
- package/out/renderer/assets/classDiagram-v2-COTLJTTW-umxMhdp2.js +0 -1
- package/out/renderer/assets/clone-1LjvTklj.js +0 -1
- package/out/renderer/assets/icon-Ch_c-7ox.css +0 -1
- package/out/renderer/assets/settings-page-BGg48O26.js +0 -92
- package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-C5vQs2y2.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-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)}.-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-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-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-\[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-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-\[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-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-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-\[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-\[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-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-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-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-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)}.\[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-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-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}.\[--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-success-wash:hover{background-color:var(--color-success-wash)}.hover\:bg-sunken:hover{background-color:var(--color-sunken)}.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\: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\: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-\[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)}.\[\&_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-2\.5 svg{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.\[\&_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)}.\[\&\>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-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-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-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-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-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-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-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-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-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-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-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-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-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 I,r,j as e,B as w,S as D,J as He,g as ye,u as je,A as P,I as H,T as be,K as Ke,M as Ye,N as Ge,O as Qe,Q as ke,X as _e,v as me,L as W,U as bt,c as ne,V as We,y as kt,F as Nt,Y as wt,Z as Ct,i as St,f as Ze}from"./icon-Bo1zJC-t.js";import{bH as At,bI as Ee,bJ as Re,bj as Tt,g as le,bk as Je,bl as we,ar as Xe,f as et,ac as _t,as as Et,bK as Rt,bL as Mt,bM as It,bN as Lt,bO as tt,a3 as Pt,bP as Ft,bQ as ee,bR as Ce,bS as st,aK as zt,bT as Me,bU as Ot,j as oe,b as at,d as nt,bV as rt,bp as it,bW as Ut,bX as he,ay as Dt,az as ot,bY as lt,bZ as ie,aN as $t,b_ as ct,b$ as qt,P as Bt,i as de,c0 as Vt,c1 as Ht,c2 as xe,c3 as dt,c4 as Kt,c5 as Yt,c6 as ut,c7 as Gt,c8 as Qt,c9 as Wt,ca as Zt,aa as Jt,cb as mt,aM as ht,cc as Xt,cd as es,ce as ts,aw as ss,cf as xt,by as Ne,bs as as,cg as ns,ch as rs,bn as is,ci as os,cj as ls,ck as cs,bf as Ie,cl as ds,br as Le,cm as us,cn as ms,bt as hs,bu as xs,bq as pe,co as ps,cp as fs,cq as gs,cr as vs,cs as ys,ct as js,cu as bs}from"./index-DxqLk7VV.js";import{P as ks}from"./page-header-D3y3cG3g.js";import{S as F,I as Se,a as U,R as Ns,N as ws}from"./radient-auth-buttons-BIDrKwvA.js";import{a as Cs,H as Ss,p as fe}from"./parseISO-Btt_HSDs.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 As=[["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"}]],Ts=I("audio-waveform",As);/**
|
|
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 _s=[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"m19 9-5 5-4-4-3 3",key:"2osh9i"}]],Es=I("chart-line",_s);/**
|
|
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 Rs=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"M12 8v8",key:"napkw2"}]],Ms=I("circle-plus",Rs);/**
|
|
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 Is=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 18a6 6 0 0 0 0-12v12z",key:"j4l70d"}]],pt=I("contrast",Is);/**
|
|
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 Ls=[["rect",{width:"20",height:"14",x:"2",y:"5",rx:"2",key:"ynyp8z"}],["line",{x1:"2",x2:"22",y1:"10",y2:"10",key:"1b3vmo"}]],Ps=I("credit-card",Ls);/**
|
|
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 Fs=[["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"}]],zs=I("flame",Fs);/**
|
|
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 Os=[["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"}]],Us=I("hexagon",Os);/**
|
|
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 Ds=[["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"}]],$s=I("leaf",Ds);/**
|
|
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 qs=[["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"}]],Bs=I("lock",qs);/**
|
|
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 Vs=[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]],Hs=I("moon",Vs);/**
|
|
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 Ks=[["path",{d:"m8 3 4 8 5-5 5 15H2L8 3z",key:"otkl63"}]],Ys=I("mountain",Ks);/**
|
|
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 Gs=[["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"}]],Qs=I("plug-zap",Gs);/**
|
|
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 Ws=[["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"}]],Zs=I("skull",Ws);/**
|
|
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 Js=[["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"}]],Xs=I("snowflake",Js);/**
|
|
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 ea=[["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"}]],ta=I("sun",ea);/**
|
|
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 sa=[["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"}]],aa=I("undo-2",sa);/**
|
|
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 na=[["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"}]],ra=I("zap",na),ia=()=>{const t="https://local-operator.com/download",[i,s]=r.useState(!1),[n,a]=r.useState(!1),[c,m]=r.useState(null),[g,p]=r.useState("info"),[h,o]=r.useState(null),[l,f]=r.useState(null),x=r.useRef(!1),u=r.useRef(!1),d=r.useRef(0),j=r.useRef(!1),N=r.useCallback((S,C)=>{u.current=!1,m(S),p(C),a(!0)},[]),E=r.useCallback(S=>{u.current=!0,m(S),p("success"),a(!0)},[]),b=r.useCallback(()=>{u.current&&(u.current=!1,a(!1),m(null))},[]),{clearDeferredUpdate:R}=At();r.useEffect(()=>{const S=window.api.updater.onUpdateError(O=>{if(!x.current)return;const K=["ENOENT: no such file or directory, open","Could not get code signature for running application","Cannot find latest.yml"].some(v=>O.includes(v));O.includes("manually")?(o({message:"The server is installed outside the app, so use the tool you installed it with - uv, pipx or pip.",command:""}),u.current=!1,m(null),p("warning"),a(!0)):K||N(O,"danger")}),C=window.api.updater.onBackendUpdateDevMode(O=>{x.current&&N(O,"info")}),y=()=>{j.current=!0,b()},z=window.api.updater.onUpdateAvailable(y),_=window.api.updater.onUpdateNpxAvailable(y),Z=window.api.updater.onBackendUpdateAvailable(y);return()=>{S(),C(),z(),_(),Z()}},[b,N]),r.useEffect(()=>{let S=!1;const C=()=>{window.api.updater.getLastInstallAttempt().then(z=>{S||f(z)}).catch(()=>{})};C();const y=window.api.updater.onUpdateInstallFailed(()=>C());return()=>{S=!0,y()}},[]);const A=async()=>{const S=++d.current;b(),j.current=!1;try{s(!0),x.current=!0,R(Re.UI),R(Re.BACKEND);const C=await window.api.updater.checkForAllUpdates({manual:!0});if(S!==d.current)return;C?.affirmation&&!j.current?E(C.affirmation):b()}catch(C){if(S!==d.current)return;N(`Error checking for updates: ${C instanceof Error?C.message:String(C)}`,"danger")}finally{S===d.current&&s(!1),setTimeout(()=>{x.current=!1},2e3)}},L=()=>{u.current=!1,a(!1),m(null)};return e.jsxs(e.Fragment,{children:[l&&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 ",l.targetVersion," didn't finish",l.attempts>1?` (${l.attempts} attempts)`:"",". Version ",l.runningVersion," is running."]}),e.jsxs("p",{className:"mt-1 text-meta text-ink-dim",children:["Detected"," ",l.detectedAt?new Date(l.detectedAt).toLocaleString():"at an unknown time",". ",l.detail]}),e.jsx(w,{variant:"outline",size:"sm",className:"mt-2",onClick:()=>void window.api.openExternal(t),children:"Download a fresh copy"})]}),e.jsxs(w,{variant:"outline",onClick:()=>void A(),disabled:i,children:[i?e.jsx(D,{size:"sm"}):null,i?"Checking...":"Check for updates"]}),h&&e.jsxs(Ee,{open:n,autoHideDuration:1e4,onClose:L,variant:"warning",children:[e.jsx("p",{className:"text-body-sm",children:h.message}),h.command&&e.jsx("code",{className:"mt-2 block rounded-sm bg-sunken p-2 text-mono-sm text-ink",children:h.command})]}),c&&e.jsx(Ee,{open:n,autoHideDuration:6e3,onClose:L,variant:g,children:c})]})},ue=["system-prompt"],oa=()=>{const{shouldEnableQuery:t}=Tt();return le({enabled:t({bypassInternetCheck:!0}),queryKey:ue,queryFn:async()=>{try{const s=await Je(we.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(i){const s=i instanceof Error?i.message:"An unknown error occurred while fetching system prompt";throw Xe(s),i}},refetchOnWindowFocus:!1,staleTime:5e3})},la=()=>{const t=et(),i=Je(we.baseUrl);return _t({mutationFn:async s=>{try{const n=await i.config.updateSystemPrompt(s);if(n.status>=400)throw new Error(n.message||"Failed to update system prompt");return n.result}catch(n){const a=n instanceof Error?n.message:"An unknown error occurred while updating system prompt";throw Xe(a),n}},onSuccess:async s=>{await t.invalidateQueries({queryKey:ue,refetchType:"none"}),t.setQueryData(ue,n=>n&&{...n,...s}),await t.refetchQueries({queryKey:ue,type:"all"}),Et("System prompt updated")},onError:s=>{console.error("Error updating system prompt:",s)}})},ca=({value:t,label:i,description:s,onChange:n,icon:a,isSaving:c=!1})=>{const[m,g]=r.useState(t),p=r.useId(),h=`${p}-label`,o=`${p}-description`,l=async f=>{if(!c){g(f);try{await n(f)}catch(x){g(!f),console.error("Error toggling setting:",x)}}};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:h,className:"flex min-h-6 items-center gap-2 text-body text-ink",children:[a&&e.jsx(a,{size:14,"aria-hidden":"true",className:"shrink-0 text-ink-dim"}),i]}),s&&e.jsx("p",{id:o,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:c?e.jsx(D,{size:"md",label:`Saving ${i}`}):e.jsx(He,{checked:m,onCheckedChange:l,"aria-labelledby":h,"aria-describedby":s?o:void 0})})]})};var da=Rt({chartName:"LineChart",GraphicalChild:tt,axisComponents:[{axisType:"xAxis",AxisComp:Mt},{axisType:"yAxis",AxisComp:It}],formatAxisMap:Lt});function Pe(t,i){const s=Pt(t,i?.in);if(!Ft(s))throw new RangeError("Invalid time value");const n=ee(s.getDate(),2),a=ee(s.getMonth()+1,2),c=s.getFullYear(),m=ee(s.getHours(),2),g=ee(s.getMinutes(),2),p=ee(s.getSeconds(),2);let h="",o="";const l=s.getTimezoneOffset();if(l!==0){const f=Math.abs(l),x=ee(Math.trunc(f/60),2),u=ee(f%60,2);o=`${l<0?"+":"-"}${x}:${u}`}else o="Z";return`${c}-${a}-${n}T${m}:${g}:${p}${h}${o}`}function ua(t,i,s){return Cs(t,-30,s)}const ma=["radient","creditBalance"],ha=t=>{const{user:i,isAuthenticated:s}=Ce(),n=i?.account?.tenant_id,a=s&&!!n&&t?.enabled;return le({queryKey:[ma,n],queryFn:async()=>{if(!n)throw new Error("Tenant ID not available");const c=await st({operation:"credits",tenantId:n});if(!c||typeof c.balance!="number")throw new Error("Invalid credit balance response format");return c},enabled:a,staleTime:5*60*1e3,refetchOnWindowFocus:!0})};function xa(t,i){const[s,n]=r.useState(!1);return r.useEffect(()=>{if(!t){n(!1);return}const a=setTimeout(()=>n(!0),i);return()=>clearTimeout(a)},[t,i]),s}const pa=["radient","usageRollup"],fa=(t,i)=>{const{user:s,isAuthenticated:n}=Ce(),a=s?.account?.tenant_id,c=n&&!!a&&i?.enabled;return le({queryKey:[...pa,a,t],queryFn:async()=>{if(!a)throw new Error("Tenant ID not available");const m={};for(const[p,h]of Object.entries(t))h!=null&&(m[p]=String(h));const g=await st({operation:"usage",tenantId:a,query:m});if(!g)throw new Error("Invalid usage rollup response format");return g},enabled:c,staleTime:5*60*1e3,refetchOnWindowFocus:!0})},ga=()=>e.jsx(ia,{}),va=t=>{if(!t)return null;try{return new URL(t).host}catch{return null}},ya=()=>{const[t,i]=r.useState("Loading..."),[s,n]=r.useState({value:"Loading...",detail:null,degraded:!1}),[a,c]=r.useState({platform:"Loading...",arch:"...",nodeVersion:"Loading...",electronVersion:"Loading...",chromeVersion:"Loading..."});r.useEffect(()=>{let g=!0;const p=x=>{if(!g)return;const u=va(x.url);if(x.state==="connecting"){n({value:"Loading...",detail:null,degraded:!1});return}if(x.state==="detached"){n({value:"Not connected",detail:x.detail||null,degraded:!1});return}if(x.state==="wedged"){n({value:"Not attached",detail:x.detail||null,degraded:!1});return}const d=x.version||"Version unknown";n({value:u?`${d} · ${u}`:d,detail:x.detail||null,degraded:x.state==="degraded"})};let h=!1;const o=window.api?.backend?.onStatusChange(x=>{h=!0,p(x)}),l=async()=>{try{const[x,u]=await Promise.all([window.api.systemInfo.getAppVersion(),window.api.systemInfo.getPlatformInfo()]);g&&(i(x),c(u))}catch(x){console.error("Error fetching app information:",x)}},f=async()=>{try{const x=window.api?.backend;if(x){const j=await x.getStatus();h||p(j);return}const u=await Me.healthCheck(we.baseUrl),d=Me.getServerVersion(u);g&&n({value:d,detail:null,degraded:!1})}catch(x){console.error("Error fetching server version:",x),g&&n({value:"Unavailable",detail:null,degraded:!1})}};return l(),f(),()=>{g=!1,o?.()}},[]);const m=(g,p,h,o={})=>e.jsx(U,{label:e.jsx(ye,{content:h,children:e.jsxs("span",{className:"inline-flex cursor-help items-center gap-1.5",children:[e.jsx(je,{size:12,className:"shrink-0"}),g]})}),valueClassName:o.valueClassName,value:e.jsxs(e.Fragment,{children:[o.valueTooltip?e.jsx(ye,{content:o.valueTooltip,children:e.jsx("span",{"data-backend-version":o.valueHoverTarget?"":void 0,className:"cursor-help",children:p})}):p,o.statusNote?e.jsx("span",{className:"mt-0.5 block text-meta text-ink-dim",children:o.statusNote}):null]})});return e.jsx(F,{title:"Application updates and info",icon:zt,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(Se,{children:[m("Application version",t,"The version of the Local Operator user interface application."),m("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}),m("Platform",`${a.platform} (${a.arch})`,"The operating system and architecture your application is running on."),m("Node.js version",a.nodeVersion,"The JavaScript runtime environment version."),m("Electron version",a.electronVersion,"The framework version enabling this desktop application.")]}),e.jsx(ga,{})]})})},ft="__cascade__";function ae(t){return t==null?"":typeof t=="object"?JSON.stringify(t):String(t)}function ja(t,i){return t.kind==="cascade"?i!==ft:t.kind==="list"?i!==t.value?.join(`
|
|
87
|
-
`):i!==ae(t.value)}const ba=({setting:t,scope:i,onSaved:s,children:n})=>{const[a,c]=r.useState({value:t.kind==="list"?(t.value??[]).join(`
|
|
88
|
-
`):t.kind==="cascade"?ft:ae(t.value),cascadeBase:null,saving:!1,error:null}),m=ja(t,a.value)||a.cascadeBase!==null,g=async()=>{let l=null,f;const x=()=>({op:"settings.edit",key:t.key,value:l,...f?{base:f}:{}});switch(t.kind){case"bool":l=a.value==="true";break;case"int":if(l=Number.parseInt(a.value,10),Number.isNaN(l)){c(u=>({...u,error:"Enter a whole number."}));return}break;case"float":{const u=Number.parseFloat(a.value);if(!Number.isFinite(u)){c(d=>({...d,error:"Enter a finite number."}));return}l=u;break}case"enum":{const u=t.choices.find(d=>ae(d.value)===a.value);l=u?u.value:a.value;break}case"list":l=a.value.split(`
|
|
89
|
-
`).map(u=>u.trim()).filter(Boolean);break;case"cascade":{if(!a.cascadeBase)return;const u={};for(const[d,j]of Object.entries(a.cascadeBase))u[d]=j;l=u,f=t.value??void 0;break}default:t.empty_unsets&&a.value.trim()===""?l=null:l=a.value}c(u=>({...u,saving:!0,error:null}));try{await oe(x()),c(u=>({...u,saving:!1,cascadeBase:null})),await s?.()}catch(u){c(d=>({...d,saving:!1,error:u instanceof Error?u.message:"The setting could not be saved."}))}},p=async()=>{c(l=>({...l,saving:!0,error:null}));try{await oe({op:"settings.reset",key:t.key}),c(l=>({...l,saving:!1})),await s?.()}catch(l){c(f=>({...f,saving:!1,error:l instanceof Error?l.message:"The setting could not be reset."}))}};if(t.redacted)return e.jsx(P,{variant:"neutral",className:"w-full",children:"This value carries inline credentials or query parameters and cannot be edited here. Secrets belong in the credential manager."});if(t.kind==="readonly")return e.jsx("p",{className:"text-body-sm text-ink-muted",children:ae(t.value)||"Not set"});let h;switch(t.kind){case"bool":h=e.jsx(He,{checked:a.value==="true",onCheckedChange:l=>c(f=>({...f,value:l?"true":"false"})),"aria-label":t.label});break;case"enum":h=e.jsxs(Ke,{value:a.value,onValueChange:l=>c(f=>({...f,value:l})),children:[e.jsx(Ye,{"aria-label":t.label,className:"w-full",children:e.jsx(Ge,{})}),e.jsx(Qe,{children:t.choices.map(l=>e.jsx(ke,{value:ae(l.value),children:l.label},ae(l.value)))})]});break;case"int":case"float":h=e.jsx(H,{type:"number",value:a.value,min:t.minimum??void 0,max:t.maximum??void 0,step:t.kind==="int"?1:"any",onChange:l=>c(f=>({...f,value:l.target.value})),"aria-label":t.label});break;case"list":h=e.jsx(be,{value:a.value,rows:Math.min(6,t.members.length+2),onChange:l=>c(f=>({...f,value:l.target.value})),"aria-label":t.label,className:"font-mono text-body-sm"});break;case"cascade":{const l=a.cascadeBase??t.value??{};h=e.jsxs("div",{className:"flex flex-col gap-3",children:[Object.entries(l).map(([f,x])=>e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx("span",{className:"font-mono text-meta text-ink-dim",children:f}),e.jsx(be,{value:x.join(`
|
|
90
|
-
`),rows:Math.max(2,x.length+1),onChange:u=>c(d=>({...d,cascadeBase:{...d.cascadeBase??l,[f]:u.target.value.split(`
|
|
91
|
-
`).map(j=>j.trim()).filter(Boolean)}})),"aria-label":`${t.label}: ${f}`,className:"font-mono text-body-sm"})]},f)),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."})]});break}default:h=e.jsx(H,{value:a.value,onChange:l=>c(f=>({...f,value:l.target.value})),"aria-label":t.label})}const o=e.jsxs("div",{className:"flex flex-col gap-2","data-setting-key":t.key,children:[e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsxs("div",{className:"flex min-w-0 flex-col gap-0.5",children:[e.jsx("span",{className:"text-body-sm text-ink",children:t.label}),t.help&&e.jsx("span",{className:"text-meta text-ink-dim",children:t.help})]}),e.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[!t.is_default&&e.jsxs(w,{variant:"ghost",size:"sm",onClick:()=>void p(),disabled:a.saving,children:[e.jsx(aa,{"aria-hidden":"true"}),"Use default"]}),m&&e.jsx(w,{variant:"primary",size:"sm",onClick:()=>void g(),disabled:a.saving,children:a.saving?"Saving":"Save"})]})]}),h,t.kind!=="bool"&&!t.is_default&&e.jsxs("p",{className:"text-meta text-ink-dim",children:["Changed from the default",i?`; ${i}`:""]}),a.error&&e.jsx(P,{variant:"danger",children:e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsx("span",{children:a.error}),e.jsxs(w,{variant:"secondary",size:"sm",onClick:()=>void g(),disabled:a.saving,children:[e.jsx(Ot,{"aria-hidden":"true"}),"Retry"]})]})})]});return n?n(o):o},ka={all:["desktop","settings"]},ge={live:"Takes effect immediately","new launch":"Takes effect the next time the app starts","new sessions":"Takes effect for new conversations"},Na=({focusKey:t,initialFilter:i=""})=>{const s=at(),n=nt(s.data,"settings"),[a,c]=r.useState(i),[m,g]=r.useState(new Set),p=r.useRef(!1),h=le({queryKey:ka.all,queryFn:()=>oe({op:"settings.list"}),enabled:n,staleTime:1e4}),o=h.data,l=r.useMemo(()=>{if(!o)return null;const d=N=>N.toLowerCase().replace(/[-_]/g," "),j=d(a.trim());return j?o.settings.filter(N=>d([N.label,N.help,N.key,N.section].join(" ")).includes(j)):o.settings},[o,a]);if(r.useEffect(()=>{if(!t||!o||p.current)return;p.current=!0;const d=o.settings.find(j=>j.key===t);d&&(g(j=>{if(!j.has(d.section))return j;const N=new Set(j);return N.delete(d.section),N}),requestAnimationFrame(()=>{const j=document.querySelector(`[data-setting-key="${CSS.escape(t)}"] input, [data-setting-key="${CSS.escape(t)}"] textarea, [data-setting-key="${CSS.escape(t)}"] button[role="switch"], [data-setting-key="${CSS.escape(t)}"] button`);j?.focus(),j?.scrollIntoView({block:"center"})}))},[t,o]),s.data&&!n)return e.jsx(P,{variant:"warning",children:"Searchable settings need a newer Local Operator server. Update the server and restart the app to manage these settings here."});if(h.isLoading||s.isLoading)return e.jsx("div",{className:"flex h-40 items-center justify-center",children:e.jsx(D,{size:"lg",label:"Loading settings"})});const f=(s.data?null:s.error)??h.error;if(f||!o||!l){const d=s.isFetching||h.isFetching;return e.jsx(P,{variant:"warning",children:e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsx("span",{children:rt("Your settings could not be loaded.",f)}),e.jsx(w,{variant:"secondary",size:"sm",className:"shrink-0",onClick:()=>{s.isError?s.refetch():h.refetch()},disabled:d,children:d?"Retrying":"Retry"})]})})}const x=o.sections.filter(d=>l.some(j=>j.section===d.name)),u=d=>g(j=>{const N=new Set(j);return N.has(d)?N.delete(d):N.add(d),N});return e.jsxs("div",{className:"flex flex-col gap-6",children:[e.jsxs("div",{className:"relative",children:[e.jsx(it,{size:16,className:"pointer-events-none absolute top-1/2 left-3 -translate-y-1/2 text-ink-dim","aria-hidden":"true"}),e.jsx(H,{value:a,onChange:d=>c(d.target.value),placeholder:"Search settings by name, description or key","aria-label":"Search settings",className:"pl-9"}),a&&e.jsx(w,{variant:"ghost",size:"icon-sm",className:"absolute top-1/2 right-1 -translate-y-1/2",onClick:()=>c(""),"aria-label":"Clear search",children:e.jsx(_e,{"aria-hidden":"true"})})]}),l.length===0&&e.jsxs("div",{className:"flex flex-col items-center gap-2 py-6 text-center",children:[e.jsx("p",{className:"text-body-sm text-ink-muted",children:"No settings match this search."}),e.jsxs(w,{variant:"secondary",size:"sm",onClick:()=>c(""),children:[e.jsx(_e,{"aria-hidden":"true"}),"Clear search"]})]}),x.map(d=>{const j=l.filter(E=>E.section===d.name),N=m.has(d.name);return e.jsxs("section",{"data-settings-section":d.name,className:"flex flex-col gap-3",children:[e.jsxs("button",{type:"button",onClick:()=>u(d.name),"aria-expanded":!N,className:"flex items-baseline justify-between gap-3 text-left",children:[e.jsxs("span",{className:"flex flex-col gap-0.5",children:[e.jsx("span",{className:"text-heading text-ink",children:d.title}),d.description&&e.jsx("span",{className:"text-meta text-ink-dim",children:d.description})]}),ge[d.scope]&&e.jsx(me,{variant:"neutral",children:ge[d.scope]})]}),!N&&e.jsx("div",{className:"flex flex-col gap-5",children:j.map(E=>e.jsx(ba,{setting:E,scope:ge[d.scope],onSaved:()=>h.refetch()},E.key))})]},d.name)})]})},Fe=({credentialKey:t,isConfigured:i=!1,onEdit:s,onClear:n,onAdd:a})=>{const c=Ut(t),m=i?Bs:he;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(m,{className:"size-3.5 shrink-0 text-ink-dim"}),c.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:c.description})]}),e.jsx("div",{className:"mt-auto flex flex-wrap items-center justify-end gap-2 pt-4",children:i?e.jsxs(e.Fragment,{children:[e.jsxs(w,{variant:"ghost",size:"sm",onClick:()=>s?.(t),children:[e.jsx(Dt,{}),"Update"]}),e.jsxs(w,{variant:"ghost",size:"sm",className:"text-danger hover:bg-danger-wash hover:text-danger",onClick:()=>n?.(t),children:[e.jsx(ot,{}),"Clear"]})]}):e.jsxs(e.Fragment,{children:[e.jsxs(w,{variant:"outline",size:"sm",onClick:()=>a?.(t),children:[e.jsx(he,{}),"Configure"]}),c.url&&e.jsx(ye,{content:`Get your ${c.name} key`,children:e.jsx(w,{variant:"ghost",size:"icon-sm",asChild:!0,children:e.jsx("a",{href:c.url,target:"_blank",rel:"noopener noreferrer","aria-label":`Get your ${c.name} key`,children:e.jsx(lt,{})})})})]})})]})},ve="_custom_",ze="credential-custom-key",Oe="credential-custom-key-error",Ue="credential-type",De="credential-type-help",$e="credential-value",qe="credential-value-help",Be=({open:t,onClose:i,onSave:s,initialKey:n="",existingKeys:a,isSaving:c,isEditMode:m})=>{const[g,p]=r.useState(n),[h,o]=r.useState(""),[l,f]=r.useState(""),[x,u]=r.useState(!1);r.useEffect(()=>{if(t){const y=ie.some(_=>_.key===n),z=!m&&n&&!y;p(y?n:""),o(""),f(z?n:""),u(z||m&&!y)}},[t,n,m]);const d=()=>{let y="";if(m?y=n:y=x?l.trim():g,!y){console.error("No key provided for credential");return}if(!h.trim()){console.error("No value provided for credential");return}s({key:y,value:h})},j=y=>a.includes(y)&&y!==n,N=j(l),E=m?!0:x?l.trim()!==""&&!N:g!==""&&!j(g),b=h.trim()!=="",R=E&&b&&!c,A=ie.find(y=>y.key===g),L=!!A&&!x,S=m?"Update credential":"Add new credential",C=e.jsxs(e.Fragment,{children:[e.jsx(w,{variant:"secondary",onClick:i,children:"Cancel"}),e.jsxs(w,{variant:"primary",onClick:d,disabled:!R,children:[c&&e.jsx(D,{size:"sm",className:"border-t-on-accent"}),c?"Saving...":"Save"]})]});return e.jsx($t,{open:t,onClose:i,title:S,actions:C,maxWidth:"sm",fullWidth:!0,children:e.jsxs("div",{className:"flex flex-col gap-4",children:[m?e.jsx(U,{label:"Credential key",value:e.jsx("span",{className:"text-mono-sm",children:n})}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(W,{htmlFor:Ue,children:"Credential type"}),e.jsxs(Ke,{value:x?ve:g,onValueChange:y=>{y===ve?(u(!0),p("")):(u(!1),p(y),f(""))},children:[e.jsx(Ye,{id:Ue,"aria-describedby":L?De:void 0,children:e.jsx(Ge,{placeholder:"Select a credential type"})}),e.jsxs(Qe,{children:[ie.filter(y=>!y.internal).map(y=>e.jsxs(ke,{value:y.key,disabled:j(y.key),children:[y.name,j(y.key)&&" (configured)"]},y.key)),e.jsx(ke,{value:ve,children:"Custom credential"})]})]}),L&&A&&e.jsxs("div",{id:De,className:"flex flex-col items-start gap-1",children:[e.jsx("p",{className:"text-meta text-ink-dim",children:A.description}),A.url&&e.jsxs("a",{href:A.url,target:"_blank",rel:"noopener noreferrer",className:"text-accent text-meta underline-offset-4 hover:text-accent-hover hover:underline",children:["Get your ",A.name," key"]})]})]}),x&&e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(W,{htmlFor:ze,children:"Custom credential key"}),e.jsx(H,{id:ze,value:l,onChange:y=>f(y.target.value),"aria-invalid":N||void 0,"aria-describedby":N?Oe:void 0,required:!0,autoFocus:!0}),N&&e.jsx("p",{id:Oe,className:"text-danger text-meta",children:"This credential already exists"})]})]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(W,{htmlFor:$e,children:"Credential value"}),e.jsx(H,{id:$e,type:"password",value:h,onChange:y=>o(y.target.value),onKeyDown:y=>{y.key==="Enter"&&R&&d()},"aria-describedby":m?qe:void 0,required:!0,autoFocus:m,placeholder:"Enter the credential value or API key"}),m&&e.jsxs("p",{id:qe,className:"text-ink-dim text-meta",children:["Enter the new value for ",n]})]})]})})},Ve=({title:t,description:i,children:s,isEmpty:n=!1,emptyStateType:a="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:i}),e.jsx(bt,{variant:"surface",padding:"sm",className:"mt-3",children:n?e.jsx(wa,{type:a}):e.jsx("div",{className:"grid grid-cols-[repeat(auto-fit,minmax(260px,1fr))] gap-2",children:s})})]}),wa=({type:t,className:i})=>{const s=t==="noCredentials",n=s?he:We;return e.jsxs("div",{className:ne("flex flex-col items-center px-4 py-8 text-center",i),children:[e.jsx(n,{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."})]})},Ca=()=>{const{data:t,isLoading:i,error:s,refetch:n}=ct(),a=qt(),[c,m]=r.useState(!1),[g,p]=r.useState(!1),[h,o]=r.useState(null),l=b=>{o(b),m(!0)},f=(b=null)=>{o(b),p(!0)},x=()=>{m(!1),p(!1),o(null)},u=async b=>{try{await a.mutateAsync(b),x(),await n()}catch(R){console.error("Error saving credential:",R)}},d=async b=>{try{await a.mutateAsync({key:b,value:""}),await n()}catch(R){console.error("Error clearing credential:",R)}},j=r.useMemo(()=>t?.keys?.filter(b=>!ie.find(R=>R.key===b)?.internal)??[],[t]),N=r.useMemo(()=>ie.filter(b=>!j.includes(b.key)&&!b.internal),[j]),E=()=>i?e.jsx("div",{className:"flex min-h-40 items-center justify-center",children:e.jsx(D,{size:"lg",label:"Loading credentials"})}):s||!t?e.jsxs(P,{variant:"danger",role:"alert",children:[e.jsx(kt,{children:"Could not load credentials"}),e.jsx(Nt,{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(Ve,{title:"Configured credentials",description:"These API credentials are currently configured and available for use.",isEmpty:j.length===0,emptyStateType:"noCredentials",children:j.map(b=>e.jsx(Fe,{credentialKey:b,isConfigured:!0,onEdit:l,onClear:d},b))}),e.jsx(Ve,{title:"Available credentials",description:"These are common API credentials you can configure to enhance functionality.",isEmpty:N.length===0,emptyStateType:"allConfigured",children:N.map(b=>e.jsx(Fe,{credentialKey:b.key,isConfigured:!1,onAdd:()=>f(b.key)},b.key))}),e.jsx("div",{className:"flex justify-center",children:e.jsxs(w,{variant:"secondary",size:"sm",onClick:()=>f(null),children:[e.jsx(Bt,{}),"Add custom credential"]})}),c&&e.jsx(Be,{open:c,onClose:x,onSave:u,initialKey:h||"",existingKeys:j,isSaving:a.isPending,isEditMode:!0}),g&&e.jsx(Be,{open:g,onClose:x,onSave:u,initialKey:h||"",existingKeys:j,isSaving:a.isPending,isEditMode:!1})]});return e.jsx("div",{className:"flex flex-col gap-6",children:E()})},Sa=[[[".claude.json"],"Claude Code"],[[".claude",".mcp.json"],"Claude Code"],[[".cursor","mcp.json"],"Cursor"],[[".vscode","mcp.json"],"VS Code"],[[".codex","config.toml"],"Codex CLI"]];function Aa(t){if(!t)return null;const i=t.split("\\").join("/").split("/").filter(Boolean);for(const[s,n]of Sa)if(!(i.length<s.length)&&i.slice(-s.length).join("/")===s.join("/"))return n;return null}const Ta={list:"status",add:"add",remove:"remove",reload:"reload",connect:"reconnect",probe:"probe",disconnect:"disconnect",login:"grant",logout:"disconnect",reauth:"grant",status:"status",cancel:"cancel"},_a=(t,i)=>{const s=t?.trim();if(!s)return null;const n=Wt(s,i);return n.kind==="auth"?{kind:"matched",name:n.name,unresolved:null}:{kind:"miss",asked:s}},Ea=t=>t.reduce((i,s)=>i?(s.updated_at??0)>(i.updated_at??0)?s:i:s,null),Ra=({sessionId:t,onAdded:i})=>{const[s,n]=r.useState(""),[a,c]=r.useState("command"),[m,g]=r.useState(""),[p,h]=r.useState(""),[o,l]=r.useState(""),[f,x]=r.useState("global"),[u,d]=r.useState(null),[j,N]=r.useState(!1),E=async()=>{N(!0),d(null);try{await oe({op:"mcp.control",sessionId:t,control:{action:"add",name:s,scope:f,...a==="command"?{command:m,args:p.split(`
|
|
92
|
-
`).map(b=>b.trim()).filter(Boolean)}:{url:o}}}),n(""),g(""),h(""),l(""),i()}catch(b){d(dt("add",b,!1))}finally{N(!1)}};return e.jsxs("form",{className:"flex flex-col gap-3 rounded-md border border-control bg-surface p-4",onSubmit:b=>{b.preventDefault(),E()},children:[e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx(W,{htmlFor:"mcp-add-name",children:"Name"}),e.jsx(H,{id:"mcp-add-name",value:s,onChange:b=>n(b.target.value),required:!0})]}),e.jsxs("fieldset",{className:"flex gap-2",children:[e.jsx("legend",{className:"sr-only",children:"Server transport"}),e.jsx(w,{type:"button",variant:a==="command"?"secondary":"ghost",size:"sm",onClick:()=>c("command"),children:"Local command"}),e.jsx(w,{type:"button",variant:a==="url"?"secondary":"ghost",size:"sm",onClick:()=>c("url"),children:"Remote URL"})]}),a==="command"?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx(W,{htmlFor:"mcp-add-command",children:"Command"}),e.jsx(H,{id:"mcp-add-command",value:m,onChange:b=>g(b.target.value),className:"font-mono",required:!0})]}),e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx(W,{htmlFor:"mcp-add-args",children:"Arguments, one per line"}),e.jsx("textarea",{id:"mcp-add-args",value:p,onChange:b=>h(b.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(W,{htmlFor:"mcp-add-url",children:"URL"}),e.jsx(H,{id:"mcp-add-url",type:"url",value:o,onChange:b=>l(b.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(w,{type:"button",variant:f==="global"?"secondary":"ghost",size:"sm",onClick:()=>x("global"),children:"Global"}),e.jsx(w,{type:"button",variant:f==="project"?"secondary":"ghost",size:"sm",onClick:()=>x("project"),children:"This project"})]}),u&&e.jsxs(P,{variant:"danger",children:[e.jsx("p",{children:u.message}),u.detail?e.jsx("p",{className:"font-mono text-ink-dim text-mono-sm",title:u.detail,children:u.detail}):null]}),e.jsx("div",{children:e.jsxs(w,{type:"submit",variant:"primary",size:"sm",disabled:j||!s||!(a==="command"?m:o),children:[j?e.jsx(D,{size:"sm"}):null,"Add server"]})})]})},Ma=({sessionId:t,sectionRef:i,highlightServer:s})=>{const n=at(),a=nt(n.data,"mcp"),c=et(),m=de(v=>v.sessions),g=de(v=>v.fetchSessions),p=de(v=>v.loading),h=r.useMemo(()=>t?null:Ea(m),[t,m]),o=t??h?.session_id,[l,f]=r.useState(null),[x,u]=r.useState(null),[d,j]=r.useState(!1),[N,E]=r.useState(null),b=Vt({sessionId:o}),[R,A]=r.useState("");r.useEffect(()=>{t||!a||m.length>0||g()},[t,a,m.length,g]);const L=le({queryKey:xe.list(o??""),queryFn:()=>{if(!o)throw new Error("No conversation selected.");return Zt(o)},enabled:a&&!!o,staleTime:1e4}),S=Ht(L.data),C=r.useMemo(()=>_a(s,S.map(v=>v.name)),[s,S]),y=C?.kind==="matched"?C.name:null,z=r.useRef(null),_=r.useRef(null),Z=R.trim().toLowerCase(),O=r.useMemo(()=>Z?S.filter(v=>v.name.toLowerCase().includes(Z)):S,[S,Z]);r.useEffect(()=>{!y||_.current===y||!R||A("")},[y,R]),r.useEffect(()=>{y&&_.current!==y&&O.some(v=>v.name===y)&&(_.current=y,z.current?.scrollIntoView({block:"center",behavior:"smooth"}))},[y,O]);const te=r.useCallback(()=>{o&&c.invalidateQueries({queryKey:xe.list(o)})},[c,o]),K=r.useCallback(async(v,q,J={})=>{if(o){u(null);try{await oe({op:"mcp.control",sessionId:o,control:{action:v,name:q,...J}}),te()}catch(B){const k=c.getQueryData(xe.list(o));u(dt(Ta[v],B,Kt(k?.operations)))}}},[c,o,te]);return a?o?e.jsx(F,{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:i,children:e.jsxs("div",{className:"flex flex-col gap-4",children:[x&&e.jsxs(P,{variant:"danger",children:[e.jsx("p",{children:x.message}),x.detail?e.jsx("p",{className:"font-mono text-ink-dim text-mono-sm",title:x.detail,children:x.detail}):null]}),h&&e.jsxs("p",{className:"text-body-sm text-ink-muted",children:["Showing MCP servers for"," ",h.title?.trim()||h.session_id.slice(0,6),", your most recent conversation. Open a conversation to see its own list."]}),L.isLoading&&e.jsx("div",{className:"flex h-24 items-center justify-center",children:e.jsx(D,{size:"lg",label:"Loading MCP servers"})}),L.isError&&e.jsx(P,{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(w,{variant:"secondary",size:"sm",onClick:()=>void L.refetch(),children:"Retry"})]})}),S.length>0&&e.jsxs("div",{className:"relative",children:[e.jsx(it,{"aria-hidden":"true",className:"pointer-events-none absolute top-1/2 left-3 size-4 -translate-y-1/2 text-ink-dim"}),e.jsx(H,{value:R,onChange:v=>A(v.target.value),placeholder:"Search MCP servers","aria-label":"Search MCP servers",className:"pl-9"})]}),C?.kind==="miss"&&S.length>0&&e.jsx("p",{className:"text-body-sm text-ink-muted",children:`No MCP server matches "${C.asked}".`}),C?.kind==="matched"&&C.unresolved&&e.jsx("p",{className:"text-body-sm text-ink-muted",children:`Showing "${C.name}" — "${C.unresolved}" is not one of your servers.`}),L.isSuccess&&S.length===0&&e.jsx("p",{className:"text-body-sm text-ink-muted",children:"No MCP servers configured yet. Add one below."}),S.length>0&&O.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(w,{variant:"secondary",size:"sm",onClick:()=>A(""),children:"Clear search"})]}),O.length>0&&e.jsx("ul",{className:"flex flex-col gap-2",children:O.map(v=>{const q=v.status==="connected",J=v.name===y,B=v.owned_scope,k=v.transport==="http"&&v.transport_oauth_supported!==!1,M=Aa(v.source);return e.jsxs("li",{ref:J?z:void 0,className:ne("flex flex-col gap-2 rounded-md border border-control bg-surface p-3",J&&"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:v.name}),B&&e.jsx(me,{variant:"outline",children:B==="project"?"This project":"Global"}),v.transport&&e.jsx("span",{className:"text-meta text-ink-dim",children:v.transport})]}),e.jsx(me,{variant:q?"success":v.status==="connecting"?"info":v.status==="auth-required"?"warning":"neutral",children:v.status??"unknown"})]}),typeof v.tool_count=="number"&&e.jsxs("p",{className:"text-meta text-ink-dim",children:[v.tool_count," tools available"]}),v.status==="auth-required"&&!k&&e.jsx("p",{className:"text-meta text-ink-dim",children:v.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."}),!B&&e.jsxs("p",{className:"text-meta text-ink-dim",children:[M?`Imported from ${M}.`:"Imported from a configuration local-operator does not write."," ",v.source?e.jsxs(e.Fragment,{children:["Remove it in"," ",e.jsx("span",{className:"font-mono text-mono-sm text-ink-dim",children:Yt(v.source)}),"."]}):e.jsx(e.Fragment,{children:"Remove it wherever it is defined."})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[q?e.jsxs(w,{variant:"secondary",size:"sm",onClick:()=>{f(null),K("disconnect",v.name,{confirmed:!0})},children:[e.jsx(ut,{"aria-hidden":"true"}),"Disconnect"]}):e.jsxs(w,{variant:"secondary",size:"sm",onClick:()=>void K("connect",v.name),children:[e.jsx(Qs,{"aria-hidden":"true"}),"Connect"]}),e.jsxs(w,{variant:"ghost",size:"sm",onClick:()=>void K("reload",v.name),children:[e.jsx(wt,{"aria-hidden":"true"}),"Reload"]}),e.jsx(w,{variant:"ghost",size:"sm",onClick:()=>{const T=Gt(L.data?.servers??[]).find(Y=>Y.name===v.name);T&&E({row:T,sessionId:o})},children:"Sign in"}),v.setup?.text?e.jsx(w,{variant:"ghost",size:"sm",onClick:()=>{navigator.clipboard.writeText(v.setup?.text??"").catch(()=>{})},children:"Copy setup prompt"}):null,B?l===v.name?e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"text-body-sm text-ink",children:["Remove ",v.name,"?"]}),e.jsx(w,{variant:"danger",size:"sm",onClick:()=>{f(null),K("remove",v.name,{confirmed:!0,scope:B})},children:"Confirm removal"}),e.jsx(w,{variant:"ghost",size:"sm",onClick:()=>f(null),children:"Keep"})]}):e.jsxs(w,{variant:"ghost",size:"sm",className:"text-danger",onClick:()=>f(v.name),children:[e.jsx(ot,{"aria-hidden":"true"}),"Remove"]}):null]})]},v.name)})}),N?.sessionId===o?e.jsx(Qt,{row:N.row,remedy:b,onClose:()=>E(null)},o):null,d?e.jsx(Ra,{sessionId:o,onAdded:()=>{j(!1),te()}}):e.jsx("div",{children:e.jsx(w,{variant:"secondary",size:"sm",onClick:()=>j(!0),"data-tour-tag":"mcp-add-server",children:"Add server"})})]})}):e.jsx(F,{title:"Integrations",description:"MCP servers connect agents to your tools and accounts.",sectionRef:i,children:p?e.jsx("div",{className:"flex h-24 items-center justify-center",children:e.jsx(D,{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(F,{title:"Integrations",description:"MCP servers connect agents to your tools and accounts.",sectionRef:i,children:e.jsx(P,{variant:"warning",children:"Integration management needs a newer Local Operator backend. Update the backend and restart the app to manage MCP servers here."})})},Ia=({onAfterCredentialUpdate:t})=>{const{isAuthenticated:i,user:s,isLoading:n,error:a,signOut:c}=Jt(),m=mt(o=>o.isSigningOut),g=r.useCallback(async()=>{try{await c()}catch(o){console.error("Error signing out:",o)}},[c]),p=r.useMemo(()=>{if(!i||!s?.radientUser)return null;const{account:o,identity:l}=s.radientUser;return e.jsxs(e.Fragment,{children:[e.jsxs(Se,{children:[e.jsx(U,{label:"Status",value:e.jsxs("span",{className:"inline-flex items-center gap-2",children:["Connected",e.jsx(me,{variant:"success",className:"capitalize",children:o.status})]})}),e.jsx(U,{label:"Name",value:o.name||"Not provided"}),e.jsx(U,{label:"Email",value:o.email}),e.jsx(U,{label:"Account ID",value:e.jsx("span",{className:"text-mono-sm",children:o.id})}),e.jsx(U,{label:"Tenant ID",value:e.jsx("span",{className:"text-mono-sm",children:o.tenant_id})}),e.jsx(U,{label:"Provider",value:e.jsx("span",{className:"capitalize",children:l.provider})}),e.jsx(U,{label:"Created",value:ht(o.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(w,{variant:"danger",className:"mt-3",onClick:g,children:[e.jsx(Xt,{}),"Sign out from Radient"]})]})]})},[i,s?.radientUser,g]),h=r.useMemo(()=>i&&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(Ns,{titleText:"",onAfterCredentialUpdate:t,descriptionText:"",onSignInSuccess:()=>{}})})]}),[i,s,t]);return n||m?e.jsx("div",{className:"flex min-h-36 items-center justify-center",children:e.jsx(D,{size:"lg",label:"Loading account"})}):i&&s?.radientUser?p:e.jsxs("div",{className:"flex flex-col gap-4",children:[a&&e.jsxs(P,{variant:"danger",children:["Error checking account status:"," ",a instanceof Error?a.message:String(a)]}),h]})};function La({metric:t,data:i}){return e.jsx(es,{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 ${i.length} days.`,xTickFormatter:s=>s,yTickFormatter:s=>t==="credits"?`$${s.toFixed(2)}`:ts(s),children:e.jsx(da,{data:i,children:e.jsx(tt,{type:"monotone",dataKey:"value",strokeWidth:2,dot:!1,activeDot:{r:4,strokeWidth:0},name:t==="credits"?"Credits consumed":"Tokens used"})})})}const Pa=()=>{const{data:t,isLoading:i,error:s,refetch:n}=oa(),a=la(),[c,m]=r.useState(""),[g,p]=r.useState(!1);r.useEffect(()=>{m(t?.content??""),p(!1)},[t]);const h=u=>{const d=u.target.value;m(d),p(d!==(t?.content??""))},o=async()=>{if(!(!g||a.isPending))try{const u={content:c};await a.mutateAsync(u),await n(),p(!1)}catch(u){console.error("Error updating system prompt:",u)}},l=()=>{m(t?.content??""),p(!1)},f=a.isPending,x=()=>e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(W,{htmlFor:"app-system-prompt",children:"Instructions"}),e.jsx(be,{id:"app-system-prompt",name:"systemPrompt",value:c,onChange:h,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(w,{variant:"primary",onClick:o,disabled:!g||f,children:[f?e.jsx(D,{size:"sm"}):e.jsx(ss,{}),f?"Saving...":"Save changes"]}),e.jsx(w,{onClick:l,disabled:!g||f,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:xt(t.last_modified)})]})]});return e.jsx(F,{title:"System prompt",icon:ws,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:i?e.jsx("div",{className:"flex min-h-50 items-center justify-center",children:e.jsx(D,{size:"lg",label:"Loading system prompt"})}):s?e.jsxs(P,{variant:"danger",children:["Failed to load system prompt:"," ",s instanceof Error?s.message:"Unknown error"]}):x()})},Fa={localOperatorDark:Hs,localOperatorLight:ta,radient:Us,dracula:Zs,dune:zs,sage:$s,monokai:St,tokyoNight:Ys,iceberg:Xs,neon:ra,obsidian:pt,synth:Ts},za=({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"})]})]})]}),Oa=({id:t,name:i,description:s,isSelected:n,onSelect:a})=>{const c=Fa[t];return e.jsxs("button",{type:"button","aria-pressed":n,onClick:a,className:ne("flex flex-col gap-2 rounded-lg p-2 text-left transition-colors duration-fast ease-out-quart",n?"bg-accent-wash":"hover:bg-surface"),children:[e.jsx("span",{className:ne("block aspect-16/10 overflow-hidden rounded-md border transition-colors duration-fast ease-out-quart",n?"border-accent":"border-hairline"),children:e.jsx(za,{id:t})}),e.jsxs("span",{className:"flex items-center gap-2 px-1",children:[e.jsx(c,{size:14,className:"shrink-0 text-ink-dim","aria-hidden":"true"}),e.jsx("span",{className:ne("min-w-0 flex-1 truncate text-body-sm text-ink",n&&"font-medium"),children:i}),n&&e.jsx(We,{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})]})},Ua=()=>{const{themeName:t,setTheme:i}=Ne(),s=r.useMemo(()=>{const n=Object.values(Ct);return[{label:"Dark",items:n.filter(a=>a.theme.palette.mode==="dark")},{label:"Light",items:n.filter(a=>a.theme.palette.mode==="light")}].filter(a=>a.items.length>0)},[]);return e.jsx("div",{className:"flex flex-col gap-6",children:s.map(n=>e.jsxs("div",{children:[e.jsx("h3",{className:"px-1 pb-2 text-meta text-ink-dim",children:n.label}),e.jsx("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(240px,1fr))] gap-2",children:n.items.map(({id:a,name:c,description:m})=>e.jsx(Oa,{id:a,name:c,description:m,isSelected:a===t,onSelect:()=>i(a)},a))})]},n.label))})},Da=()=>{const{data:t,isLoading:i,error:s}=ha({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(Ps,{size:16,className:"shrink-0 text-ink-dim"}),"Radient Pass"]}),i&&e.jsx(Ze,{className:"h-6 w-36"}),s&&e.jsxs(P,{variant:"warning",children:["Could not load your credit balance. ",s.message]}),t&&!i&&!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(w,{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(Ms,{}),"Add credits"]})})]})]})},$a=[{id:"credits",label:"Credits"},{id:"tokens",label:"Tokens"}],qa=()=>{const[t,i]=r.useState("credits"),s=r.useMemo(()=>{const g=new Date,p=ua(g);return{start_date:Pe(p),end_date:Pe(g),rollup:"daily"}},[]),{data:n,isLoading:a,error:c}=fa(s,{enabled:!0}),m=r.useMemo(()=>n?.data_points?[...n.data_points].sort((p,h)=>fe(p.timestamp).getTime()-fe(h.timestamp).getTime()).map(p=>({bucket:ys(js(fe(p.timestamp),"yyyy-MM-dd")),value:t==="credits"?Number.parseFloat(p.total_cost.toFixed(2)):p.total_tokens})):[],[n,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(Es,{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:$a.map(({id:g,label:p})=>e.jsx(w,{variant:"ghost",size:"sm","aria-pressed":t===g,onClick:()=>i(g),className:ne(t===g&&"bg-surface text-ink hover:bg-surface"),children:p},g))})]})]}),a&&e.jsx(Ze,{className:"h-62 w-full"}),c&&e.jsxs(P,{variant:"warning",children:["Could not load your usage data. ",c.message]}),!a&&!c&&n&&m.length>0&&e.jsx(La,{metric:t,data:m}),!a&&!c&&(!n||m.length===0)&&e.jsx("p",{className:"text-body-sm text-ink-muted",children:"No usage recorded in the last 30 days."})]})},Ba=()=>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(bs,{size:16,className:"shrink-0 text-ink-dim"}),"Radient account"]}),e.jsx(w,{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(lt,{})]})})]}),Wa=()=>{const t=Ne(k=>k.showAgentReasoning),i=Ne(k=>k.setShowAgentReasoning),{data:s,isLoading:n,isFetching:a,error:c,refetch:m}=as(),g=ns(),[p,h]=r.useState(null),o=mt(),{isAuthenticated:l,isLoading:f}=Ce(),x=de(k=>k.activeSessionId),[u,d]=r.useState("general"),[j,N]=r.useState(!1),E=r.useRef(null),b=r.useRef(null),{startTour:R}=rs(),A=is(),{data:L,refetch:S}=ct(),{refreshModels:C}=os(),y=r.useMemo(()=>L?.keys?[...L.keys].sort():[],[L?.keys]),z=r.useRef({keys:"",hosting:void 0});r.useEffect(()=>{const k=y.join(","),M=s?.values?.hosting;(z.current.keys!==k||z.current.hosting!==M)&&(z.current={keys:k,hosting:M},C().catch(T=>{console.error("Failed to refresh models after credentials or hosting change:",T)}))},[y,s?.values?.hosting,C]);const _=r.useRef({general:r.useRef(null),radient:r.useRef(null),integrations:r.useRef(null),appearance:r.useRef(null),credentials:r.useRef(null),providers:r.useRef(null),backend:r.useRef(null),updates:r.useRef(null)}).current,Z=r.useMemo(()=>new URLSearchParams(A.search).get("setting"),[A.search]),O=r.useMemo(()=>new URLSearchParams(A.search).get("filter")??"",[A.search]),te=r.useMemo(()=>new URLSearchParams(A.search).get("mcp")??void 0,[A.search]),K=r.useMemo(()=>new URLSearchParams(A.search).get("provider"),[A.search]),v=r.useCallback(k=>{d(k),N(!0);const M=_[k],T=b.current;if(M?.current&&T){const $=M.current.getBoundingClientRect().top-T.getBoundingClientRect().top;T.scrollHeight>T.clientHeight?T.scrollTo({top:Math.max(0,T.scrollTop+$-80),behavior:"smooth"}):window.scrollTo({top:Math.max(0,M.current.getBoundingClientRect().top+window.scrollY-80),behavior:"smooth"}),clearTimeout(E.current??void 0),E.current=setTimeout(()=>{N(!1),E.current=null},800)}else N(!1)},[_]);r.useEffect(()=>{const k=setTimeout(()=>{const M=b.current;if(!M)return;const T=()=>{if(j)return;const Y=M.getBoundingClientRect(),$=Y.height;let G="",V=0;for(const[ce,X]of Object.entries(_))if(X.current){const Q=X.current.getBoundingClientRect(),re=Y.top,se=Q.top-re,gt=Q.bottom-re,vt=Q.height,yt=Math.max(0,se),jt=Math.min($,gt),Ae=Math.max(0,jt-yt)/vt,Te=Ae+(se<$*.3?.1:0);Te>V&&Ae>.1&&(V=Te,G=ce)}G&&G!==u&&d(G)};return T(),M.addEventListener("scroll",T,{passive:!0}),()=>{M.removeEventListener("scroll",T),clearTimeout(E.current??void 0)}},100);return()=>clearTimeout(k)},[_,u,j]),r.useEffect(()=>{const k=new URLSearchParams(A.search),M=k.get("section"),T=k.get("setting")?"backend":M,Y=T?_[T]:void 0;if(!T||!Y)return;let $=!1,G=Number.NaN,V=0;const ce=window.setTimeout(()=>{$||($=!0,Q.disconnect(),v(T))},2e3),X=()=>{if($)return;const re=Y.current;if(!re){V=requestAnimationFrame(X);return}const se=Math.round(re.getBoundingClientRect().top+window.scrollY);if(se===G&&se>0){$=!0,Q.disconnect(),window.clearTimeout(ce),v(T);return}G=se,V=requestAnimationFrame(X)},Q=new ResizeObserver(()=>{$||(cancelAnimationFrame(V),V=requestAnimationFrame(X))});return b.current&&Q.observe(b.current),V=requestAnimationFrame(X),()=>{$=!0,cancelAnimationFrame(V),Q.disconnect(),window.clearTimeout(ce)}},[A.search,_,v]);const q=async(k,M)=>{h(k);try{await g.mutateAsync({[k]:M}),await m()}catch(T){console.error(`Error updating ${k}:`,T)}finally{h(null)}},J=n||f,B=xa(J,4e3);return c?e.jsx("div",{className:"flex h-full w-full items-center justify-center bg-canvas p-6",children:e.jsx(P,{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:rt("Your settings could not be loaded.",c)}),e.jsx(w,{variant:"secondary",size:"sm",className:"shrink-0",onClick:()=>void m(),disabled:a,children:a?"Retrying":"Retry"})]})})}):J?e.jsxs("div",{role:"status",className:"flex h-full w-full flex-col items-center justify-center gap-3 bg-canvas",children:[e.jsx(D,{size:"lg",label:B?void 0:"Loading settings"}),B&&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(ls,{activeSection:u,onSelectSection:v,sections:cs})}),e.jsx("div",{ref:b,"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(ks,{title:"Settings",icon:Ie}),e.jsxs("div",{className:"flex flex-col gap-8",children:[e.jsxs("div",{ref:_.general,className:"flex flex-col gap-8",children:[e.jsx(F,{title:"User profile",icon:ds,description:`Your user profile information displayed in the application. This information is not provided to the agents. ${l?"These details are provided through your Radient account.":""}`,children:e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsx(Le,{value:o.profile.name,label:"Display name",placeholder:"Enter your name...",isSaving:p==="user_name",onSave:async k=>{h("user_name");try{o.updateName(k)}finally{h(null)}},readOnly:l}),e.jsx(Le,{value:o.profile.email,label:"Email address",placeholder:"Enter your email...",isSaving:p==="user_email",onSave:async k=>{h("user_email");try{o.updateEmail(k)}finally{h(null)}},readOnly:l})]})}),e.jsx(F,{title:"Application tour",description:"Missed the application onboarding tour or want a refresher? Start it again here.",children:e.jsxs(w,{variant:"secondary",onClick:()=>{R({forceModalCompleted:!0})},children:[e.jsx(us,{}),"Take the tour"]})}),e.jsx(F,{title:"Model settings",icon:ms,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(hs,{value:s.values.hosting,isSaving:p==="hosting",onSave:k=>q("hosting",k),filterByCredentials:!0,allowCustom:!0,allowDefault:!1,emptyHelperText:"No hosting providers available. Add one in API credentials, in the list on the left."}),e.jsx(xs,{value:s.values.model_name,hostingId:s.values.hosting,isSaving:p==="model_name",onSave:k=>q("model_name",k),allowCustom:!0,allowDefault:!1}),e.jsx(P,{variant:"neutral",icon:e.jsx(je,{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(Pa,{}),e.jsx(F,{title:"History settings",icon:Ss,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(pe,{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:ps,isSaving:p==="conversation_length",onChange:k=>q("conversation_length",k)}),e.jsx(pe,{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:fs,isSaving:p==="detail_length",onChange:k=>q("detail_length",k)}),e.jsx(pe,{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:gs,isSaving:p==="max_learnings_history",onChange:k=>q("max_learnings_history",k)})]})}),e.jsx(F,{title:"Configuration information",icon:je,description:"System information about the current configuration.",children:e.jsxs(Se,{children:[e.jsx(U,{label:"Version",value:e.jsx("span",{className:"text-mono-sm",children:s.version})}),e.jsx(U,{label:"Created",value:ht(s.metadata.created_at)}),e.jsx(U,{label:"Last modified",value:xt(s.metadata.last_modified)}),e.jsx(U,{label:"Description",value:s.metadata.description||"No description available"})]})})]}),e.jsx(F,{title:"Appearance",icon:pt,description:"Customize the look and feel of Local Operator",sectionRef:_.appearance,dataTourTag:"settings-appearance-section",children:e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsx(Ua,{}),e.jsx(ca,{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 k=>i(k)})]})}),e.jsx(F,{title:"Radient account",titleComponent:e.jsx(Ba,{}),description:"Manage your Radient account, Radient Pass details, and credits.",sectionRef:_.radient,dataTourTag:"settings-radient-account-section",children:e.jsxs("div",{className:"flex flex-col gap-8",children:[e.jsx(Ia,{onAfterCredentialUpdate:()=>{C(),S()}}),l&&e.jsxs(e.Fragment,{children:[e.jsx(Da,{}),e.jsx(qa,{})]})]})}),e.jsx(F,{title:"Providers",icon:ut,description:"Model providers, how you sign in to each, and which are connected.",sectionRef:_.providers,children:e.jsx(vs,{initialProviderId:K})}),e.jsx(F,{title:"Backend settings",icon:Ie,description:"Every setting the backend registry owns, searchable, with typed editors and scopes.",sectionRef:_.backend,children:e.jsx(Na,{focusKey:Z,initialFilter:O})}),e.jsx(Ma,{sessionId:x??void 0,sectionRef:_.integrations,highlightServer:te}),e.jsx(F,{title:"API credentials",icon:he,description:"Manage your API keys for various services and integrations",sectionRef:_.credentials,dataTourTag:"settings-api-credentials-section",children:e.jsx(Ca,{})}),e.jsx("div",{ref:_.updates,children:e.jsx(ya,{})})]})]})})]}):e.jsx("div",{className:"flex h-full w-full items-center justify-center bg-canvas p-6",children:e.jsx(P,{variant:"warning",className:"w-full max-w-xl",children:"Your settings could not be loaded."})})};export{Wa as SettingsPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as e,b as r,a,S as s}from"./chunk-AEK57VVT-Do-iHcjv.js";import{_ as i}from"./mermaid.core-DrsX5aBH.js";import"./chunk-RZ5BOZE2-C2kh9IiB.js";import"./index-DxqLk7VV.js";import"./icon-Bo1zJC-t.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};
|