@puddle-code/cli 0.0.9 → 0.0.10
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/CHANGELOG.md +22 -14
- package/dist/index.js +26 -3
- package/dist/public/assets/{Dashboard-CAM3cXGU.js → Dashboard-Botzm-4a.js} +1 -1
- package/dist/public/assets/{EditorTabClose-CnJvqROE.js → EditorTabClose-DXG0-8LG.js} +1 -1
- package/dist/public/assets/{ModelRefcount-DxceM9Ni.js → ModelRefcount-Cr0OdhVF.js} +1 -1
- package/dist/public/assets/PaneEditorBody-BzhoRYgd.js +66 -0
- package/dist/public/assets/SettingsDialog-Cd6rZoyo.js +1 -0
- package/dist/public/assets/{Terminal-DwGMsU4j.js → Terminal-DogmkohW.js} +2 -2
- package/dist/public/assets/Workspace-BDettW-h.js +7 -0
- package/dist/public/assets/{api-MnOKfpqf.js → api-BHwI7sYX.js} +1 -1
- package/dist/public/assets/{buffer-store-BLJJ5bBb.js → buffer-store-DF2zMOcz.js} +3 -3
- package/dist/public/assets/context-menu-CHZoXuDL.js +1 -0
- package/dist/public/assets/{cssMode-BRkqXiJB.js → cssMode-DYb85Jum.js} +1 -1
- package/dist/public/assets/{editor-tabs-DHrvhXUq.js → editor-tabs-BaSR99_-.js} +1 -1
- package/dist/public/assets/{htmlMode-BqZkTR1f.js → htmlMode-DyXrW8ZC.js} +1 -1
- package/dist/public/assets/index-BgfBBLZx.js +10 -0
- package/dist/public/assets/index-szwjDL7m.css +2 -0
- package/dist/public/assets/{jsonMode-CyukyrLW.js → jsonMode-B5kO-8PP.js} +1 -1
- package/dist/public/assets/session-seed-Dy0HnELo.js +1 -0
- package/dist/public/assets/ssh-mode-CY9J7nfI.js +1 -0
- package/dist/public/assets/{tsMode-ClBkYZNn.js → tsMode-BnA0oGE5.js} +1 -1
- package/dist/public/index.html +3 -3
- package/package.json +1 -1
- package/dist/public/assets/PaneEditorBody-Xz_NA7oS.js +0 -1
- package/dist/public/assets/SettingsDialog-CGLXP6AW.js +0 -1
- package/dist/public/assets/Workspace-vM9qSoWV.js +0 -7
- package/dist/public/assets/context-menu-DDQiarCp.js +0 -1
- package/dist/public/assets/index-B3xVOA2-.css +0 -2
- package/dist/public/assets/index-QU4DiDhV.js +0 -10
- package/dist/public/assets/session-seed-CRfTF2sq.js +0 -1
- package/dist/public/assets/ssh-mode-d5hq-vUb.js +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */
|
|
2
|
+
@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-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking: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}}}@font-face{font-family:Ubuntu Sans;src:url(/assets/UbuntuSans-variable-D2Z3tJLW.woff2)format("woff2");font-weight:100 800;font-stretch:75% 100%;font-style:normal;font-display:swap}@font-face{font-family:Ubuntu Sans;src:url(/assets/UbuntuSans-Italic-variable-RySnp6Km.woff2)format("woff2");font-weight:100 800;font-stretch:75% 100%;font-style:italic;font-display:swap}@font-face{font-family:Ubuntu Sans Mono;src:url(/assets/UbuntuSansMono-variable-DaQTOezC.woff2)format("woff2");font-weight:400 700;font-style:normal;font-display:swap}@font-face{font-family:Ubuntu Sans Mono;src:url(/assets/UbuntuSansMono-Italic-variable-DSY888gS.woff2)format("woff2");font-weight:400 700;font-style:italic;font-display:swap}:root{--altitude-blue:#7dadff;--krypton-green:#8be8b3;--quiet-khaki:#ddb28c;--storm-navy:#001c3d;--burnt-wood:#5a2f22;--navy-950:#000a14;--navy-900:#00132b;--navy-800:#001c3d;--navy-700:#0a2b52;--navy-600:#163c6b;--blue-200:#a7c7ff;--blue-300:#7dadff;--blue-500:#4a86e8;--blue-600:#2e6bd6;--green-200:#aff0cb;--green-300:#8be8b3;--green-500:#2fbf85;--green-600:#1fa26b;--green-700:#157a50;--neutral-0:#fff;--neutral-50:#f7f7f7;--neutral-100:#efefef;--neutral-200:#e5e5e5;--neutral-500:#6b6b6b;--khaki-50:#fbf5ec;--khaki-100:#f7ebda;--khaki-200:#ead9c0;--khaki-300:#ddb28c;--khaki-600:#a9743d;--amber-200:#f6c892;--amber-300:#f0b36e;--amber-600:#c08a4b;--ember-100:#f8b7a3;--ember-200:#f2957c;--ember-400:#d96a4e;--ember-500:#c2472e;--ember-600:#8c4a34;--ember-700:#5a2f22;--mist-100:#eaf1fb;--mist-300:#b9c9e0;--mist-500:#7e93b3;--bark-500:#8a7663;--cyan-200:#a5e4e8;--cyan-300:#7fd6dc;--cyan-500:#2fa6ae;--cyan-600:#1f8b92;--violet-200:#d0c2f7;--violet-300:#b9a3f2;--violet-500:#8b71db;--violet-600:#6d4fc4}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-base:var(--navy-950);--bg-surface:var(--navy-900);--bg-elevated:var(--navy-800);--border:var(--navy-600);--text-primary:var(--mist-100);--text-secondary:var(--mist-300);--text-muted:var(--mist-500);--text-gold:var(--khaki-300);--accent:var(--blue-300);--accent-hover:var(--blue-200);--focus-ring:var(--blue-300);--action:var(--mist-100);--action-hover:var(--mist-300);--action-ink:var(--navy-800);--danger:var(--ember-200);--status-running:var(--green-300);--status-waiting:var(--amber-300);--status-interrupted:var(--ember-200);--status-idle:var(--mist-500);--status-terminal:var(--blue-300);--selection:#7dadff4d;--diff-added:#8be8b32e;--diff-removed:#f2957c2e;--paper:var(--neutral-0);--ansi-black:var(--navy-700);--ansi-red:var(--ember-200);--ansi-green:var(--green-300);--ansi-yellow:var(--amber-300);--ansi-blue:var(--blue-300);--ansi-magenta:var(--violet-300);--ansi-cyan:var(--cyan-300);--ansi-white:var(--mist-300);--ansi-bright-black:var(--mist-500);--ansi-bright-red:var(--ember-100);--ansi-bright-green:var(--green-200);--ansi-bright-yellow:var(--amber-200);--ansi-bright-blue:var(--blue-200);--ansi-bright-magenta:var(--violet-200);--ansi-bright-cyan:var(--cyan-200);--ansi-bright-white:var(--mist-100)}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-base:var(--neutral-0);--bg-surface:var(--neutral-50);--bg-elevated:var(--neutral-100);--border:var(--neutral-200);--text-primary:var(--navy-800);--text-secondary:var(--navy-600);--text-muted:var(--neutral-500);--text-gold:var(--bark-500);--accent:var(--blue-600);--accent-hover:var(--blue-500);--focus-ring:var(--blue-600);--action:var(--navy-800);--action-hover:var(--navy-700);--action-ink:var(--neutral-0);--danger:var(--ember-500);--status-running:var(--green-700);--status-waiting:var(--khaki-600);--status-interrupted:var(--ember-500);--status-idle:var(--bark-500);--status-terminal:var(--blue-600);--selection:#2e6bd638;--diff-added:#1fa26b24;--diff-removed:#c2472e24;--paper:var(--neutral-0);--ansi-black:var(--navy-800);--ansi-red:var(--ember-500);--ansi-green:var(--green-600);--ansi-yellow:var(--khaki-600);--ansi-blue:var(--blue-600);--ansi-magenta:var(--violet-600);--ansi-cyan:var(--cyan-600);--ansi-white:var(--neutral-200);--ansi-bright-black:var(--bark-500);--ansi-bright-red:var(--ember-400);--ansi-bright-green:var(--green-500);--ansi-bright-yellow:var(--amber-600);--ansi-bright-blue:var(--blue-500);--ansi-bright-magenta:var(--violet-500);--ansi-bright-cyan:var(--cyan-500);--ansi-bright-white:var(--neutral-0)}@layer theme{:root,:host{--font-sans:"Ubuntu Sans", system-ui, sans-serif;--font-mono:"Ubuntu Sans Mono", ui-monospace, "SF Mono", monospace;--spacing:.25rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-3xl:48rem;--container-4xl:56rem;--text-base:.875rem;--text-base--line-height:1.375rem;--font-weight-medium:500;--font-weight-semibold:600;--tracking-wide:.025em;--tracking-widest:.1em;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:"Ubuntu Sans", system-ui, sans-serif;--default-mono-font-family:"Ubuntu Sans Mono", ui-monospace, "SF Mono", monospace}}@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,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{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}html{font-size:var(--ui-font-size,17.6px)}body{background-color:var(--bg-base);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--text-base--line-height);-webkit-font-smoothing:antialiased}::selection{background-color:var(--selection)}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}input:focus-visible,textarea:focus-visible{outline:none}button:not(:disabled),[role=button]:not([aria-disabled=true]),a,label[for],summary,select{cursor:pointer}button:disabled,[aria-disabled=true]{cursor:not-allowed}.tabular-nums,code,kbd{font-variant-numeric:tabular-nums}}@layer components{.status-dot{background:var(--status-idle);border-radius:9999px;flex-shrink:0;width:8px;height:8px;display:inline-block;position:relative}.status-dot[data-status=running],.status-dot[data-status=starting]{background:var(--status-running)}.status-dot[data-status=running]:before,.status-dot[data-status=running]:after,.status-dot[data-status=starting]:after{content:"";border:1px solid var(--status-running);border-radius:9999px;animation:2.6s ease-out infinite puddle-ripple;position:absolute;inset:0}.status-dot[data-status=running]:after{animation-delay:1.3s}.status-dot[data-kind=terminal][data-status=running],.status-dot[data-kind=terminal][data-status=starting]{background:var(--status-terminal)}.status-dot[data-kind=terminal][data-status=running]:before,.status-dot[data-kind=terminal][data-status=running]:after,.status-dot[data-kind=terminal][data-status=starting]:after{border-color:var(--status-terminal)}.status-dot[data-status=waiting_input]{background:var(--status-waiting);animation:1.3s ease-in-out infinite puddle-pulse}.status-dot[data-status=interrupted]{background:var(--status-interrupted)}@keyframes puddle-ripple{0%{opacity:.7;transform:scale(1)}to{transform:scale(var(--puddle-ripple-scale,3.4));opacity:0}}@keyframes puddle-pulse{0%,to{opacity:1}50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.status-dot,.status-dot:before,.status-dot:after{animation:none}.status-dot:before,.status-dot:after{content:none}}html[data-reduced-motion=true] .status-dot,html[data-reduced-motion=true] .status-dot:before,html[data-reduced-motion=true] .status-dot:after{animation:none}html[data-reduced-motion=true] .status-dot:before,html[data-reduced-motion=true] .status-dot:after{content:none}.no-scrollbar{scrollbar-width:none}.no-scrollbar::-webkit-scrollbar{display:none}.md-preview{overflow-wrap:break-word;line-height:1.6}.md-preview h1,.md-preview h2,.md-preview h3,.md-preview h4,.md-preview h5,.md-preview h6{color:var(--text-primary);margin:1.5em 0 .5em;font-weight:600;line-height:1.3}.md-preview h1{font-size:1.6em}.md-preview h2{font-size:1.3em}.md-preview h3{font-size:1.15em}.md-preview h1:first-child,.md-preview h2:first-child{margin-top:0}.md-preview p,.md-preview ul,.md-preview ol,.md-preview table,.md-preview pre,.md-preview blockquote{margin:.6em 0}.md-preview ul,.md-preview ol{padding-left:1.5em}.md-preview ul{list-style:outside}.md-preview ol{list-style:decimal}.md-preview li{margin:.2em 0}.md-preview a{color:var(--accent)}.md-preview a:hover{color:var(--accent-hover);text-decoration:underline}.md-preview code{background:var(--bg-elevated);font-family:var(--font-mono);border-radius:4px;padding:.1em .35em;font-size:.92em}.md-preview pre{background:var(--bg-elevated);border-radius:6px;padding:.75em 1em;overflow-x:auto}.md-preview pre code{background:0 0;padding:0}.md-preview blockquote{border-left:2px solid var(--border);color:var(--text-secondary);padding-left:1em}.md-preview hr{border:0;border-top:1px solid var(--border);margin:1.5em 0}.md-preview table{border-collapse:collapse;max-width:100%;display:block;overflow-x:auto}.md-preview th,.md-preview td{border-bottom:1px solid var(--border);text-align:left;padding:.3em .9em .3em 0}.md-preview th{color:var(--text-secondary);font-weight:600}.md-preview img{max-width:100%}.md-preview input[type=checkbox]{margin-right:.4em}}@layer utilities{.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}.inset-0{inset:0}.inset-x-0{inset-inline:0}.inset-y-0{inset-block:0}.top-0{top:0}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-3\.5{top:calc(var(--spacing) * 3.5)}.top-full{top:100%}.right-0{right:0}.right-1{right:var(--spacing)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-3\.5{right:calc(var(--spacing) * 3.5)}.bottom-0{bottom:0}.bottom-2{bottom:calc(var(--spacing) * 2)}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-1{margin-inline:var(--spacing)}.mx-auto{margin-inline:auto}.-my-1{margin-block:calc(var(--spacing) * -1)}.my-0\.5{margin-block:calc(var(--spacing) * .5)}.my-1{margin-block:var(--spacing)}.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-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-16{margin-top:calc(var(--spacing) * 16)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mb-1{margin-bottom:var(--spacing)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-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{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.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}.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-24{width:calc(var(--spacing) * 24);height:calc(var(--spacing) * 24)}.size-full{width:100%;height:100%}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-1\/2{height:50%}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-72{height:calc(var(--spacing) * 72)}.h-\[28rem\]{height:28rem}.h-\[34rem\]{height:34rem}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-\[45\%\]{max-height:45%}.max-h-full{max-height:100%}.min-h-0{min-height:0}.min-h-16{min-height:calc(var(--spacing) * 16)}.min-h-screen{min-height:100vh}.w-0\.5{width:calc(var(--spacing) * .5)}.w-1\/2{width:50%}.w-3{width:calc(var(--spacing) * 3)}.w-5{width:calc(var(--spacing) * 5)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.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-56{width:calc(var(--spacing) * 56)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-\[28rem\]{width:28rem}.w-\[min\(30rem\,42\%\)\]{width:min(30rem,42%)}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-52{max-width:calc(var(--spacing) * 52)}.max-w-\[36rem\]{max-width:36rem}.max-w-\[calc\(100vw-1rem\)\]{max-width:calc(100vw - 1rem)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:0}.min-w-24{min-width:calc(var(--spacing) * 24)}.min-w-36{min-width:calc(var(--spacing) * 36)}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-full{min-width:100%}.flex-1{flex:1}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-y{resize:vertical}.list-disc{list-style-type:disc}.auto-rows-fr{grid-auto-rows:minmax(0,1fr)}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid-cols-\[14rem_1fr\]{grid-template-columns:14rem 1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:0}.gap-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-10{gap:calc(var(--spacing) * 10)}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-t-md{border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.bg-accent,.bg-accent\/20{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\/20{background-color:color-mix(in oklab, var(--accent) 20%, transparent)}}.bg-action{background-color:var(--action)}.bg-border,.bg-border\/50{background-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.bg-border\/50{background-color:color-mix(in oklab, var(--border) 50%, transparent)}}.bg-current{background-color:currentColor}.bg-danger{background-color:var(--danger)}.bg-elevated{background-color:var(--bg-elevated)}.bg-fg-muted{background-color:var(--text-muted)}.bg-ground,.bg-ground\/70{background-color:var(--bg-base)}@supports (color:color-mix(in lab, red, red)){.bg-ground\/70{background-color:color-mix(in oklab, var(--bg-base) 70%, transparent)}}.bg-idle{background-color:var(--status-idle)}.bg-interrupted{background-color:var(--status-interrupted)}.bg-paper{background-color:var(--paper)}.bg-running{background-color:var(--status-running)}.bg-selection{background-color:var(--selection)}.bg-surface{background-color:var(--bg-surface)}.bg-transparent{background-color:#0000}.bg-waiting{background-color:var(--status-waiting)}.fill-current{fill:currentColor}.object-contain{object-fit:contain}.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-2\.5{padding:calc(var(--spacing) * 2.5)}.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)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0\.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-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.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)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-6{padding-right:calc(var(--spacing) * 6)}.pr-16{padding-right:calc(var(--spacing) * 16)}.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-6{padding-bottom:calc(var(--spacing) * 6)}.pb-16{padding-bottom:calc(var(--spacing) * 16)}.pb-24{padding-bottom:calc(var(--spacing) * 24)}.pl-1{padding-left:var(--spacing)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-7{padding-left:calc(var(--spacing) * 7)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:Ubuntu Sans Mono,ui-monospace,SF Mono,monospace}.font-sans{font-family:Ubuntu Sans,system-ui,sans-serif}.text-2xl{font-size:1.5rem;line-height:var(--tw-leading,2rem)}.text-2xs{font-size:.6875rem;line-height:var(--tw-leading,1rem)}.text-base{font-size:.875rem;line-height:var(--tw-leading,1.375rem)}.text-lg{font-size:1rem;line-height:var(--tw-leading,1.5rem)}.text-sm{font-size:.8125rem;line-height:var(--tw-leading,1.25rem)}.text-xs{font-size:.75rem;line-height:var(--tw-leading,1.125rem)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-accent{color:var(--accent)}.text-action-ink{color:var(--action-ink)}.text-danger{color:var(--danger)}.text-fg{color:var(--text-primary)}.text-fg-gold{color:var(--text-gold)}.text-fg-muted,.text-fg-muted\/40{color:var(--text-muted)}@supports (color:color-mix(in lab, red, red)){.text-fg-muted\/40{color:color-mix(in oklab, var(--text-muted) 40%, transparent)}}.text-fg-secondary{color:var(--text-secondary)}.text-ground{color:var(--bg-base)}.text-icon-amber{color:var(--ansi-yellow)}.text-icon-blue{color:var(--ansi-blue)}.text-icon-cyan{color:var(--ansi-cyan)}.text-icon-green{color:var(--ansi-green)}.text-icon-red{color:var(--ansi-red)}.text-icon-violet{color:var(--ansi-magenta)}.text-interrupted{color:var(--status-interrupted)}.text-running{color:var(--status-running)}.text-waiting{color:var(--status-waiting)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.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,)}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-100{opacity:1}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);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-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-\[2px\]{--tw-backdrop-blur:blur(2px);-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-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-150{--tw-duration:.15s;transition-duration:.15s}.duration-\[900ms\]{--tw-duration:.9s;transition-duration:.9s}.ease-linear{--tw-ease:linear;transition-timing-function:linear}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\[--puddle-ripple-scale\:2\.3\]{--puddle-ripple-scale:2.3}.group-focus-within\:flex:is(:where(.group):focus-within *){display:flex}@media (hover:hover){.group-hover\:pointer-events-auto:is(:where(.group):hover *){pointer-events:auto}.group-hover\:block:is(:where(.group):hover *){display:block}.group-hover\:flex:is(:where(.group):hover *){display:flex}.group-hover\:hidden:is(:where(.group):hover *){display:none}.group-hover\:inline-flex:is(:where(.group):hover *){display:inline-flex}.group-hover\:\[transform\:translateX\(var\(--tail\)\)\]:is(:where(.group):hover *){transform:translateX(var(--tail))}.group-hover\:text-accent:is(:where(.group):hover *){color:var(--accent)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.group-hover\/nav\:\[transform\:translateX\(var\(--tail\)\)\]:is(:where(.group\/nav):hover *){transform:translateX(var(--tail))}}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.placeholder\:text-fg-muted::placeholder{color:var(--text-muted)}.focus-within\:pointer-events-auto:focus-within{pointer-events:auto}.focus-within\:opacity-100:focus-within{opacity:1}@media (hover:hover){.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-action-hover:hover{background-color:var(--action-hover)}.hover\:bg-border:hover,.hover\:bg-border\/70:hover{background-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-border\/70:hover{background-color:color-mix(in oklab, var(--border) 70%, transparent)}}.hover\:bg-border\/80:hover{background-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-border\/80:hover{background-color:color-mix(in oklab, var(--border) 80%, transparent)}}.hover\:bg-elevated:hover{background-color:var(--bg-elevated)}.hover\:bg-ground:hover{background-color:var(--bg-base)}.hover\:bg-surface:hover{background-color:var(--bg-surface)}.hover\:text-danger:hover{color:var(--danger)}.hover\:text-fg:hover{color:var(--text-primary)}.hover\:text-fg-secondary:hover{color:var(--text-secondary)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-70:hover{opacity:.7}.hover\:opacity-90:hover{opacity:.9}}.focus\:bg-border\/80:focus{background-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.focus\:bg-border\/80:focus{background-color:color-mix(in oklab, var(--border) 80%, transparent)}}.focus\:bg-elevated:focus{background-color:var(--bg-elevated)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:bg-elevated:focus-visible{background-color:var(--bg-elevated)}.focus-visible\:text-fg:focus-visible{color:var(--text-primary)}.active\:bg-border:active,.active\:bg-border\/70:active{background-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.active\:bg-border\/70:active{background-color:color-mix(in oklab, var(--border) 70%, transparent)}}.active\:opacity-80:active{opacity:.8}.active\:opacity-85:active{opacity:.85}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.has-\[\[data-state\=open\]\]\:flex:has([data-state=open]){display:flex}.has-\[\[data-state\=open\]\]\:inline-flex:has([data-state=open]){display:inline-flex}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true]{pointer-events:none}.data-\[disabled\=true\]\:opacity-50[data-disabled=true]{opacity:.5}.data-\[highlighted\]\:bg-action[data-highlighted]{background-color:var(--action)}.data-\[highlighted\]\:text-action-ink[data-highlighted]{color:var(--action-ink)}.data-\[resizing\]\:bg-accent[data-resizing]{background-color:var(--accent)}.data-\[selected\=true\]\:bg-action[data-selected=true]{background-color:var(--action)}.data-\[selected\=true\]\:text-action-ink[data-selected=true]{color:var(--action-ink)}.data-\[state\=active\]\:bg-elevated[data-state=active]{background-color:var(--bg-elevated)}.data-\[state\=active\]\:text-fg[data-state=active]{color:var(--text-primary)}.data-\[state\=checked\]\:translate-x-\[1\.125rem\][data-state=checked]{--tw-translate-x:1.125rem;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=checked\]\:bg-action[data-state=checked],.data-\[state\=open\]\:bg-action[data-state=open]{background-color:var(--action)}.data-\[state\=open\]\:text-action-ink[data-state=open]{color:var(--action-ink)}.data-\[state\=unchecked\]\:translate-x-0\.5[data-state=unchecked]{--tw-translate-x:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=unchecked\]\:bg-border[data-state=unchecked]{background-color:var(--border)}@media (hover:hover){.data-\[state\=unchecked\]\:hover\:bg-border\/70[data-state=unchecked]:hover{background-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.data-\[state\=unchecked\]\:hover\:bg-border\/70[data-state=unchecked]:hover{background-color:color-mix(in oklab, var(--border) 70%, transparent)}}}@media (width>=40rem){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-inline:calc(var(--spacing) * 2)}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-block:calc(var(--spacing) * 1.5)}.\[\&_\[cmdk-group-heading\]\]\:text-2xs [cmdk-group-heading]{font-size:.6875rem;line-height:var(--tw-leading,1rem)}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.\[\&_\[cmdk-group-heading\]\]\:tracking-wide [cmdk-group-heading]{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.\[\&_\[cmdk-group-heading\]\]\:text-fg-muted [cmdk-group-heading]{color:var(--text-muted)}.\[\&_\[cmdk-group-heading\]\]\:uppercase [cmdk-group-heading]{text-transform:uppercase}.\[\&_svg\]\:size-3\.5 svg{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\]\:text-fg-muted svg{color:var(--text-muted)}.data-\[selected\=true\]\:\[\&_svg\]\:text-action-ink[data-selected=true] svg{color:var(--action-ink)}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>span\]\:truncate>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}}@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-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-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}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{h as e,p as t}from"./editor.api2-4X9Vh9Zw.js";import{m as n}from"./buffer-store-
|
|
1
|
+
import{h as e,p as t}from"./editor.api2-4X9Vh9Zw.js";import{m as n}from"./buffer-store-DF2zMOcz.js";import{_ as r,a as i,c as a,d as o,f as s,g as c,h as l,i as u,l as d,m as f,n as p,o as m,p as h,r as g,s as _,t as v,u as y,v as b}from"./lspLanguageFeatures-x2nWJpem.js";var x=120*1e3,S=class{constructor(e){this._defaults=e,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&=(this._worker.dispose(),null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){this._worker&&Date.now()-this._lastUsedTime>x&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||=(this._worker=n({moduleId:`vs/language/json/jsonWorker`,createWorker:()=>new Worker(new URL(`/assets/json.worker-Oa9UrkKE.js`,``+import.meta.url),{type:`module`}),label:this._defaults.languageId,createData:{languageSettings:this._defaults.diagnosticsOptions,languageId:this._defaults.languageId,enableSchemaRequest:this._defaults.diagnosticsOptions.enableSchemaRequest}}),this._worker.getProxy()),this._client}getLanguageServiceWorker(...e){let t;return this._getClient().then(e=>{t=e}).then(t=>{if(this._worker)return this._worker.withSyncedResources(e)}).then(e=>t)}};function C(e,t=!1){let n=e.length,r=0,i=``,a=0,o=16,s=0,c=0,l=0,u=0,d=0;function f(t,n){let i=0,a=0;for(;i<t;){let t=e.charCodeAt(r);if(t>=48&&t<=57)a=a*16+t-48;else if(t>=65&&t<=70)a=a*16+t-65+10;else if(t>=97&&t<=102)a=a*16+t-97+10;else break;r++,i++}return i<t&&(a=-1),a}function p(e){r=e,i=``,a=0,o=16,d=0}function m(){let t=r;if(e.charCodeAt(r)===48)r++;else for(r++;r<e.length&&E(e.charCodeAt(r));)r++;if(r<e.length&&e.charCodeAt(r)===46)if(r++,r<e.length&&E(e.charCodeAt(r)))for(r++;r<e.length&&E(e.charCodeAt(r));)r++;else return d=3,e.substring(t,r);let n=r;if(r<e.length&&(e.charCodeAt(r)===69||e.charCodeAt(r)===101))if(r++,(r<e.length&&e.charCodeAt(r)===43||e.charCodeAt(r)===45)&&r++,r<e.length&&E(e.charCodeAt(r))){for(r++;r<e.length&&E(e.charCodeAt(r));)r++;n=r}else d=3;return e.substring(t,n)}function h(){let t=``,i=r;for(;;){if(r>=n){t+=e.substring(i,r),d=2;break}let a=e.charCodeAt(r);if(a===34){t+=e.substring(i,r),r++;break}if(a===92){if(t+=e.substring(i,r),r++,r>=n){d=2;break}switch(e.charCodeAt(r++)){case 34:t+=`"`;break;case 92:t+=`\\`;break;case 47:t+=`/`;break;case 98:t+=`\b`;break;case 102:t+=`\f`;break;case 110:t+=`
|
|
2
2
|
`;break;case 114:t+=`\r`;break;case 116:t+=` `;break;case 117:let e=f(4);e>=0?t+=String.fromCharCode(e):d=4;break;default:d=5}i=r;continue}if(a>=0&&a<=31)if(T(a)){t+=e.substring(i,r),d=2;break}else d=6;r++}return t}function g(){if(i=``,d=0,a=r,c=s,u=l,r>=n)return a=n,o=17;let t=e.charCodeAt(r);if(w(t)){do r++,i+=String.fromCharCode(t),t=e.charCodeAt(r);while(w(t));return o=15}if(T(t))return r++,i+=String.fromCharCode(t),t===13&&e.charCodeAt(r)===10&&(r++,i+=`
|
|
3
3
|
`),s++,l=r,o=14;switch(t){case 123:return r++,o=1;case 125:return r++,o=2;case 91:return r++,o=3;case 93:return r++,o=4;case 58:return r++,o=6;case 44:return r++,o=5;case 34:return r++,i=h(),o=10;case 47:let c=r-1;if(e.charCodeAt(r+1)===47){for(r+=2;r<n&&!T(e.charCodeAt(r));)r++;return i=e.substring(c,r),o=12}if(e.charCodeAt(r+1)===42){r+=2;let t=n-1,a=!1;for(;r<t;){let t=e.charCodeAt(r);if(t===42&&e.charCodeAt(r+1)===47){r+=2,a=!0;break}r++,T(t)&&(t===13&&e.charCodeAt(r)===10&&r++,s++,l=r)}return a||(r++,d=1),i=e.substring(c,r),o=13}return i+=String.fromCharCode(t),r++,o=16;case 45:if(i+=String.fromCharCode(t),r++,r===n||!E(e.charCodeAt(r)))return o=16;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return i+=m(),o=11;default:for(;r<n&&_(t);)r++,t=e.charCodeAt(r);if(a!==r){switch(i=e.substring(a,r),i){case`true`:return o=8;case`false`:return o=9;case`null`:return o=7}return o=16}return i+=String.fromCharCode(t),r++,o=16}}function _(e){if(w(e)||T(e))return!1;switch(e){case 125:case 93:case 123:case 91:case 34:case 58:case 44:case 47:return!1}return!0}function v(){let e;do e=g();while(e>=12&&e<=15);return e}return{setPosition:p,getPosition:()=>r,scan:t?v:g,getToken:()=>o,getTokenValue:()=>i,getTokenOffset:()=>a,getTokenLength:()=>r-a,getTokenStartLine:()=>c,getTokenStartCharacter:()=>a-u,getTokenError:()=>d}}function w(e){return e===32||e===9}function T(e){return e===10||e===13}function E(e){return e>=48&&e<=57}var D;(function(e){e[e.lineFeed=10]=`lineFeed`,e[e.carriageReturn=13]=`carriageReturn`,e[e.space=32]=`space`,e[e._0=48]=`_0`,e[e._1=49]=`_1`,e[e._2=50]=`_2`,e[e._3=51]=`_3`,e[e._4=52]=`_4`,e[e._5=53]=`_5`,e[e._6=54]=`_6`,e[e._7=55]=`_7`,e[e._8=56]=`_8`,e[e._9=57]=`_9`,e[e.a=97]=`a`,e[e.b=98]=`b`,e[e.c=99]=`c`,e[e.d=100]=`d`,e[e.e=101]=`e`,e[e.f=102]=`f`,e[e.g=103]=`g`,e[e.h=104]=`h`,e[e.i=105]=`i`,e[e.j=106]=`j`,e[e.k=107]=`k`,e[e.l=108]=`l`,e[e.m=109]=`m`,e[e.n=110]=`n`,e[e.o=111]=`o`,e[e.p=112]=`p`,e[e.q=113]=`q`,e[e.r=114]=`r`,e[e.s=115]=`s`,e[e.t=116]=`t`,e[e.u=117]=`u`,e[e.v=118]=`v`,e[e.w=119]=`w`,e[e.x=120]=`x`,e[e.y=121]=`y`,e[e.z=122]=`z`,e[e.A=65]=`A`,e[e.B=66]=`B`,e[e.C=67]=`C`,e[e.D=68]=`D`,e[e.E=69]=`E`,e[e.F=70]=`F`,e[e.G=71]=`G`,e[e.H=72]=`H`,e[e.I=73]=`I`,e[e.J=74]=`J`,e[e.K=75]=`K`,e[e.L=76]=`L`,e[e.M=77]=`M`,e[e.N=78]=`N`,e[e.O=79]=`O`,e[e.P=80]=`P`,e[e.Q=81]=`Q`,e[e.R=82]=`R`,e[e.S=83]=`S`,e[e.T=84]=`T`,e[e.U=85]=`U`,e[e.V=86]=`V`,e[e.W=87]=`W`,e[e.X=88]=`X`,e[e.Y=89]=`Y`,e[e.Z=90]=`Z`,e[e.asterisk=42]=`asterisk`,e[e.backslash=92]=`backslash`,e[e.closeBrace=125]=`closeBrace`,e[e.closeBracket=93]=`closeBracket`,e[e.colon=58]=`colon`,e[e.comma=44]=`comma`,e[e.dot=46]=`dot`,e[e.doubleQuote=34]=`doubleQuote`,e[e.minus=45]=`minus`,e[e.openBrace=123]=`openBrace`,e[e.openBracket=91]=`openBracket`,e[e.plus=43]=`plus`,e[e.slash=47]=`slash`,e[e.formFeed=12]=`formFeed`,e[e.tab=9]=`tab`})(D||={}),Array(20).fill(0).map((e,t)=>` `.repeat(t));var O=200;Array(O).fill(0).map((e,t)=>`
|
|
4
4
|
`+` `.repeat(t)),Array(O).fill(0).map((e,t)=>`\r`+` `.repeat(t)),Array(O).fill(0).map((e,t)=>`\r
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{t}from"./react-CZI7_Jkm.js";import{n,t as r}from"./jsx-runtime-ffCh33zF.js";import{A as i,C as a,E as o,O as s,S as c,_ as l,b as u,d,f,j as p,m,p as h,v as g,w as _,x as v,y}from"./dialog-B43iKmfK.js";import{t as b}from"./utils-B6KiDbIe.js";import{t as x}from"./createLucideIcon-DyMAgLa3.js";import{n as S,t as C}from"./dist-VDiYuPKw.js";import{Bt as w,Gt as T,Jt as E,Kt as D,Vt as O,Xt as k,Yt as A,Zt as j,qt as ee,zt as te}from"./index-BgfBBLZx.js";var ne=x(`check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]),M=x(`chevron-down`,[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]),N=x(`copy`,[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]),re=x(`trash-2`,[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]]),P=e(t(),1),F=e(n(),1);function I(e,[t,n]){return Math.min(n,Math.max(t,e))}function L(e){let t=P.useRef({value:e,previous:e});return P.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}var R=r(),z=[` `,`Enter`,`ArrowUp`,`ArrowDown`],B=[` `,`Enter`],V=`Select`,[H,U,ie]=S(V),[W,ae]=s(V,[ie,k]),G=k(),[oe,K]=W(V),[se,ce]=W(V),le=`SelectProvider`;function ue(e){let{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:a,value:o,defaultValue:s,onValueChange:c,dir:d,name:f,autoComplete:p,disabled:m,required:h,form:g,internal_do_not_use_render:_}=e,v=G(t),[y,b]=P.useState(null),[x,S]=P.useState(null),[w,T]=P.useState(!1),E=C(d),[D,O]=l({prop:r,defaultProp:i??!1,onChange:a,caller:V}),[k,j]=l({prop:o,defaultProp:s,onChange:c,caller:V}),ee=P.useRef(null),te=P.useRef(k);P.useEffect(()=>{let e=g?y?.ownerDocument.getElementById(g):y?.form;if(e instanceof HTMLFormElement){let t=()=>j(te.current);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[g,y,j]);let ne=!y||!!g||!!y.closest(`form`),[M,N]=P.useState(new Set),re=u(),F=Array.from(M).map(e=>e.props.value).join(`;`),I=P.useCallback(e=>{N(t=>new Set(t).add(e))},[]),L=P.useCallback(e=>{N(t=>{let n=new Set(t);return n.delete(e),n})},[]),z={required:h,trigger:y,onTriggerChange:b,valueNode:x,onValueNodeChange:S,valueNodeHasChildren:w,onValueNodeHasChildrenChange:T,contentId:re,value:k,onValueChange:j,open:D,onOpenChange:O,dir:E,triggerPointerDownPosRef:ee,disabled:m,name:f,autoComplete:p,form:g,nativeOptions:M,nativeSelectKey:F,isFormControl:ne};return(0,R.jsx)(A,{...v,children:(0,R.jsx)(oe,{scope:t,...z,children:(0,R.jsx)(H.Provider,{scope:t,children:(0,R.jsx)(se,{scope:t,onNativeOptionAdd:I,onNativeOptionRemove:L,children:at(_)?_(z):n})})})})}ue.displayName=le;var de=e=>{let{__scopeSelect:t,children:n,...r}=e;return(0,R.jsx)(ue,{__scopeSelect:t,...r,internal_do_not_use_render:({isFormControl:e})=>(0,R.jsxs)(R.Fragment,{children:[n,e?(0,R.jsx)(it,{__scopeSelect:t}):null]})})};de.displayName=V;var fe=`SelectTrigger`,pe=P.forwardRef((e,t)=>{let{__scopeSelect:n,disabled:r=!1,...a}=e,o=G(n),s=K(fe,n),c=s.disabled||r,l=i(t,s.onTriggerChange),u=U(n),d=P.useRef(`touch`),[f,m,h]=ot(e=>{let t=u().filter(e=>!e.disabled),n=st(t,e,t.find(e=>e.value===s.value));n!==void 0&&s.onValueChange(n.value)}),g=e=>{c||(s.onOpenChange(!0),h()),e&&(s.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return(0,R.jsx)(D,{asChild:!0,...o,children:(0,R.jsx)(_.button,{type:`button`,role:`combobox`,"aria-controls":s.open?s.contentId:void 0,"aria-expanded":s.open,"aria-required":s.required,"aria-autocomplete":`none`,dir:s.dir,"data-state":s.open?`open`:`closed`,disabled:c,"data-disabled":c?``:void 0,"data-placeholder":Q(s.value)?``:void 0,...a,ref:l,onClick:p(a.onClick,e=>{e.currentTarget.focus(),d.current!==`mouse`&&g(e)}),onPointerDown:p(a.onPointerDown,e=>{d.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&e.pointerType===`mouse`&&(g(e),e.preventDefault())}),onKeyDown:p(a.onKeyDown,e=>{let t=f.current!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&m(e.key),!(t&&e.key===` `)&&z.includes(e.key)&&(g(),e.preventDefault())})})})});pe.displayName=fe;var me=`SelectValue`,he=P.forwardRef((e,t)=>{let{__scopeSelect:n,className:r,style:a,children:o,placeholder:s=``,...c}=e,l=K(me,n),{onValueNodeHasChildrenChange:u}=l,d=o!==void 0,f=i(t,l.onValueNodeChange);v(()=>{u(d)},[u,d]);let p=Q(l.value);return(0,R.jsx)(_.span,{...c,asChild:!p&&c.asChild,ref:f,style:{pointerEvents:`none`},children:(0,R.jsx)(P.Fragment,{children:p?s:o},p?`placeholder`:`value`)})});he.displayName=me;var ge=`SelectIcon`,_e=P.forwardRef((e,t)=>{let{__scopeSelect:n,children:r,...i}=e;return(0,R.jsx)(_.span,{"aria-hidden":!0,...i,ref:t,children:r||`▼`})});_e.displayName=ge;var ve=`SelectPortal`,[ye,be]=W(ve,{forceMount:void 0}),xe=e=>{let{__scopeSelect:t,forceMount:n,...r}=e;return(0,R.jsx)(ye,{scope:e.__scopeSelect,forceMount:n,children:(0,R.jsx)(y,{asChild:!0,...r})})};xe.displayName=ve;var q=`SelectContent`,Se=P.forwardRef((e,t)=>{let n=be(q,e.__scopeSelect),{forceMount:r=n.forceMount,...i}=e,a=K(q,e.__scopeSelect),[o,s]=P.useState();return v(()=>{s(new DocumentFragment)},[]),(0,R.jsx)(g,{present:r||a.open,children:({present:e})=>e?(0,R.jsx)(De,{...i,ref:t}):(0,R.jsx)(Ce,{...i,fragment:o})})});Se.displayName=q;var Ce=P.forwardRef((e,t)=>{let{__scopeSelect:n,children:r,fragment:i}=e;return i?F.createPortal((0,R.jsx)(we,{scope:n,children:(0,R.jsx)(H.Slot,{scope:n,children:(0,R.jsx)(`div`,{ref:t,children:r})})}),i):null});Ce.displayName=`SelectContentFragment`;var J=10,[we,Y]=W(q),Te=`SelectContentImpl`,Ee=o(`SelectContent.RemoveScroll`),De=P.forwardRef((e,t)=>{let{__scopeSelect:n}=e,{position:r=`item-aligned`,onCloseAutoFocus:a,onEscapeKeyDown:o,onPointerDownOutside:s,side:l,sideOffset:u,align:g,alignOffset:_,arrowPadding:v,collisionBoundary:y,collisionPadding:b,sticky:x,hideWhenDetached:S,avoidCollisions:C,...w}=e,T=K(q,n),[E,D]=P.useState(null),[O,k]=P.useState(null),A=i(t,D),[j,ee]=P.useState(null),[te,ne]=P.useState(null),M=U(n),[N,re]=P.useState(!1),F=P.useRef(!1);P.useEffect(()=>{if(E)return d(E)},[E]),h();let I=P.useCallback(e=>{let[t,...n]=M().map(e=>e.ref.current),[r]=n.slice(-1),i=document.activeElement;for(let n of e)if(n===i||(n?.scrollIntoView({block:`nearest`}),n===t&&O&&(O.scrollTop=0),n===r&&O&&(O.scrollTop=O.scrollHeight),n?.focus(),document.activeElement!==i))return},[M,O]),L=P.useCallback(()=>I([j,E]),[I,j,E]);P.useEffect(()=>{N&&L()},[N,L]);let{onOpenChange:z,triggerPointerDownPosRef:B}=T;P.useEffect(()=>{if(E){let e={x:0,y:0},t=t=>{e={x:Math.abs(Math.round(t.pageX)-(B.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(B.current?.y??0))}},n=n=>{e.x<=10&&e.y<=10?n.preventDefault():n.composedPath().includes(E)||z(!1),document.removeEventListener(`pointermove`,t),B.current=null};return B.current!==null&&(document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n,{capture:!0,once:!0})),()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n,{capture:!0})}}},[E,z,B]),P.useEffect(()=>{let e=()=>z(!1);return window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e)}},[z]);let[V,H]=ot(e=>{let t=M().filter(e=>!e.disabled),n=st(t,e,t.find(e=>e.ref.current===document.activeElement));n&&setTimeout(()=>n.ref.current?.focus())}),ie=P.useCallback((e,t,n)=>{let r=!F.current&&!n;(T.value!==void 0&&T.value===t||r)&&(ee(e),r&&(F.current=!0))},[T.value]),W=P.useCallback(()=>E?.focus(),[E]),ae=P.useCallback((e,t,n)=>{let r=!F.current&&!n;(T.value!==void 0&&T.value===t||r)&&ne(e)},[T.value]),G=r===`popper`?je:ke,oe=G===je?{side:l,sideOffset:u,align:g,alignOffset:_,arrowPadding:v,collisionBoundary:y,collisionPadding:b,sticky:x,hideWhenDetached:S,avoidCollisions:C}:{};return(0,R.jsx)(we,{scope:n,content:E,viewport:O,onViewportChange:k,itemRefCallback:ie,selectedItem:j,onItemLeave:W,itemTextRefCallback:ae,focusSelectedItem:L,selectedItemText:te,position:r,isPositioned:N,searchRef:V,children:(0,R.jsx)(f,{as:Ee,allowPinchZoom:!0,children:(0,R.jsx)(m,{asChild:!0,trapped:T.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:p(a,e=>{T.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,R.jsx)(c,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:o,onPointerDownOutside:s,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>T.onOpenChange(!1),children:(0,R.jsx)(G,{role:`listbox`,id:T.contentId,"data-state":T.open?`open`:`closed`,dir:T.dir,onContextMenu:e=>e.preventDefault(),...w,...oe,onPlaced:()=>re(!0),ref:A,style:{display:`flex`,flexDirection:`column`,outline:`none`,...w.style},onKeyDown:p(w.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&H(e.key),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=M().filter(e=>!e.disabled).map(e=>e.ref.current);if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>I(t)),e.preventDefault()}})})})})})})});De.displayName=Te;var Oe=`SelectItemAlignedPosition`,ke=P.forwardRef((e,t)=>{let{__scopeSelect:n,onPlaced:r,...a}=e,o=K(q,n),s=Y(q,n),[c,l]=P.useState(null),[u,d]=P.useState(null),f=i(t,d),p=U(n),m=P.useRef(!1),h=P.useRef(!0),{viewport:g,selectedItem:y,selectedItemText:b,focusSelectedItem:x}=s,S=P.useCallback(()=>{if(o.trigger&&o.valueNode&&c&&u&&g&&y&&b){let e=o.trigger.getBoundingClientRect(),t=u.getBoundingClientRect(),n=o.valueNode.getBoundingClientRect(),i=b.getBoundingClientRect();if(o.dir!==`rtl`){let r=i.left-t.left,a=n.left-r,o=e.left-a,s=e.width+o,l=Math.max(s,t.width),u=window.innerWidth-J,d=I(a,[J,Math.max(J,u-l)]);c.style.minWidth=s+`px`,c.style.left=d+`px`}else{let r=t.right-i.right,a=window.innerWidth-n.right-r,o=window.innerWidth-e.right-a,s=e.width+o,l=Math.max(s,t.width),u=window.innerWidth-J,d=I(a,[J,Math.max(J,u-l)]);c.style.minWidth=s+`px`,c.style.right=d+`px`}let a=p(),s=window.innerHeight-J*2,l=g.scrollHeight,d=window.getComputedStyle(u),f=parseInt(d.borderTopWidth,10),h=parseInt(d.paddingTop,10),_=parseInt(d.borderBottomWidth,10),v=parseInt(d.paddingBottom,10),x=f+h+l+v+_,S=Math.min(y.offsetHeight*5,x),C=window.getComputedStyle(g),w=parseInt(C.paddingTop,10),T=parseInt(C.paddingBottom,10),E=e.top+e.height/2-J,D=s-E,O=y.offsetHeight/2,k=y.offsetTop+O,A=f+h+k,j=x-A;if(A<=E){let e=a.length>0&&y===a[a.length-1].ref.current;c.style.bottom=`0px`;let t=u.clientHeight-g.offsetTop-g.offsetHeight,n=A+Math.max(D,O+(e?T:0)+t+_);c.style.height=n+`px`}else{let e=a.length>0&&y===a[0].ref.current;c.style.top=`0px`;let t=Math.max(E,f+g.offsetTop+(e?w:0)+O)+j;c.style.height=t+`px`,g.scrollTop=A-E+g.offsetTop}c.style.margin=`${J}px 0`,c.style.minHeight=S+`px`,c.style.maxHeight=s+`px`,r?.(),requestAnimationFrame(()=>m.current=!0)}},[p,o.trigger,o.valueNode,c,u,g,y,b,o.dir,r]);v(()=>S(),[S]);let[C,w]=P.useState();return v(()=>{u&&w(window.getComputedStyle(u).zIndex)},[u]),(0,R.jsx)(Me,{scope:n,contentWrapper:c,shouldExpandOnScrollRef:m,onScrollButtonChange:P.useCallback(e=>{e&&h.current===!0&&(S(),x?.(),h.current=!1)},[S,x]),children:(0,R.jsx)(`div`,{ref:l,style:{display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:C},children:(0,R.jsx)(_.div,{...a,ref:f,style:{boxSizing:`border-box`,maxHeight:`100%`,...a.style}})})})});ke.displayName=Oe;var Ae=`SelectPopperPosition`,je=P.forwardRef((e,t)=>{let{__scopeSelect:n,align:r=`start`,collisionPadding:i=J,...a}=e,o=G(n);return(0,R.jsx)(E,{...o,...a,ref:t,align:r,collisionPadding:i,style:{boxSizing:`border-box`,...a.style,"--radix-select-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-select-content-available-width":`var(--radix-popper-available-width)`,"--radix-select-content-available-height":`var(--radix-popper-available-height)`,"--radix-select-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-select-trigger-height":`var(--radix-popper-anchor-height)`}})});je.displayName=Ae;var[Me,Ne]=W(q,{}),Pe=`SelectViewport`,Fe=P.forwardRef((e,t)=>{let{__scopeSelect:n,nonce:r,...a}=e,o=Y(Pe,n),s=Ne(Pe,n),c=i(t,o.onViewportChange),l=P.useRef(0);return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`},nonce:r}),(0,R.jsx)(H.Slot,{scope:n,children:(0,R.jsx)(_.div,{"data-radix-select-viewport":``,role:`presentation`,...a,ref:c,style:{position:`relative`,flex:1,overflow:`hidden auto`,...a.style},onScroll:p(a.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=s;if(r?.current&&n){let e=Math.abs(l.current-t.scrollTop);if(e>0){let r=window.innerHeight-J*2,i=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),o=Math.max(i,a);if(o<r){let i=o+e,a=Math.min(r,i),s=i-a;n.style.height=a+`px`,n.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,n.style.justifyContent=`flex-end`)}}}l.current=t.scrollTop})})})]})});Fe.displayName=Pe;var Ie=`SelectGroup`,[Le,Re]=W(Ie),ze=P.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=u();return(0,R.jsx)(Le,{scope:n,id:i,children:(0,R.jsx)(_.div,{role:`group`,"aria-labelledby":i,...r,ref:t})})});ze.displayName=Ie;var Be=`SelectLabel`,Ve=P.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=Re(Be,n);return(0,R.jsx)(_.div,{id:i.id,...r,ref:t})});Ve.displayName=Be;var X=`SelectItem`,[He,Ue]=W(X),We=P.forwardRef((e,t)=>{let{__scopeSelect:n,value:r,disabled:o=!1,textValue:s,...c}=e,l=K(X,n),d=Y(X,n),f=l.value===r,[m,h]=P.useState(s??``),[g,v]=P.useState(!1),y=i(t,a(e=>d.itemRefCallback?.(e,r,o))),b=u(),x=P.useRef(`touch`),S=()=>{o||(l.onValueChange(r),l.onOpenChange(!1))};return(0,R.jsx)(He,{scope:n,value:r,disabled:o,textId:b,isSelected:f,onItemTextChange:P.useCallback(e=>{h(t=>t||(e?.textContent??``).trim())},[]),children:(0,R.jsx)(H.ItemSlot,{scope:n,value:r,disabled:o,textValue:m,children:(0,R.jsx)(_.div,{role:`option`,"aria-labelledby":b,"data-highlighted":g?``:void 0,"aria-selected":f&&g,"data-state":f?`checked`:`unchecked`,"aria-disabled":o||void 0,"data-disabled":o?``:void 0,tabIndex:o?void 0:-1,...c,ref:y,onFocus:p(c.onFocus,()=>v(!0)),onBlur:p(c.onBlur,()=>v(!1)),onClick:p(c.onClick,()=>{x.current!==`mouse`&&S()}),onPointerUp:p(c.onPointerUp,()=>{x.current===`mouse`&&S()}),onPointerDown:p(c.onPointerDown,e=>{x.current=e.pointerType}),onPointerMove:p(c.onPointerMove,e=>{x.current=e.pointerType,o?d.onItemLeave?.():x.current===`mouse`&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:p(c.onPointerLeave,e=>{e.currentTarget===document.activeElement&&d.onItemLeave?.()}),onKeyDown:p(c.onKeyDown,e=>{o||e.target!==e.currentTarget||d.searchRef?.current!==``&&e.key===` `||(B.includes(e.key)&&S(),e.key===` `&&e.preventDefault())})})})})});We.displayName=X;var Z=`SelectItemText`,Ge=P.forwardRef((e,t)=>{let{__scopeSelect:n,className:r,style:o,...s}=e,c=K(Z,n),l=Y(Z,n),u=Ue(Z,n),d=ce(Z,n),[f,p]=P.useState(null),m=a(e=>l.itemTextRefCallback?.(e,u.value,u.disabled)),h=i(t,p,u.onItemTextChange,m),g=f?.textContent,y=P.useMemo(()=>(0,R.jsx)(`option`,{value:u.value,disabled:u.disabled,children:g},u.value),[u.disabled,u.value,g]),{onNativeOptionAdd:b,onNativeOptionRemove:x}=d;return v(()=>(b(y),()=>x(y)),[b,x,y]),(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(_.span,{id:u.textId,...s,ref:h}),u.isSelected&&c.valueNode&&!c.valueNodeHasChildren&&!Q(c.value)?F.createPortal(s.children,c.valueNode):null]})});Ge.displayName=Z;var Ke=`SelectItemIndicator`,qe=P.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e;return Ue(Ke,n).isSelected?(0,R.jsx)(_.span,{"aria-hidden":!0,...r,ref:t}):null});qe.displayName=Ke;var Je=`SelectScrollUpButton`,Ye=P.forwardRef((e,t)=>{let n=Y(Je,e.__scopeSelect),r=Ne(Je,e.__scopeSelect),[a,o]=P.useState(!1),s=i(t,r.onScrollButtonChange);return v(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollTop>0;o(e)},t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),a?(0,R.jsx)(Qe,{...e,ref:s,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop-=t.offsetHeight)}}):null});Ye.displayName=Je;var Xe=`SelectScrollDownButton`,Ze=P.forwardRef((e,t)=>{let n=Y(Xe,e.__scopeSelect),r=Ne(Xe,e.__scopeSelect),[a,o]=P.useState(!1),s=i(t,r.onScrollButtonChange);return v(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight,n=Math.ceil(t.scrollTop)<e;o(n)},t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),a?(0,R.jsx)(Qe,{...e,ref:s,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop+=t.offsetHeight)}}):null});Ze.displayName=Xe;var Qe=P.forwardRef((e,t)=>{let{__scopeSelect:n,onAutoScroll:r,...i}=e,a=Y(`SelectScrollButton`,n),o=P.useRef(null),s=U(n),c=P.useCallback(()=>{o.current!==null&&(window.clearInterval(o.current),o.current=null)},[]);return P.useEffect(()=>()=>c(),[c]),v(()=>{s().find(e=>e.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:`nearest`})},[s]),(0,R.jsx)(_.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:p(i.onPointerDown,()=>{o.current===null&&(o.current=window.setInterval(r,50))}),onPointerMove:p(i.onPointerMove,()=>{a.onItemLeave?.(),o.current===null&&(o.current=window.setInterval(r,50))}),onPointerLeave:p(i.onPointerLeave,()=>{c()})})}),$e=`SelectSeparator`,et=P.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e;return(0,R.jsx)(_.div,{"aria-hidden":!0,...r,ref:t})});et.displayName=$e;var tt=`SelectArrow`,nt=P.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=G(n);return Y(tt,n).position===`popper`?(0,R.jsx)(ee,{...i,...r,ref:t}):null});nt.displayName=tt;var rt=`SelectBubbleInput`,it=P.forwardRef(({__scopeSelect:e,...t},n)=>{let r=K(rt,e),{value:a,onValueChange:o,required:s,disabled:c,name:l,autoComplete:u,form:d}=r,{nativeOptions:f,nativeSelectKey:p}=r,m=P.useRef(null),h=i(n,m),g=a??``,v=L(g),y=Array.from(f).some(e=>(e.props.value??``)===``);return P.useEffect(()=>{let e=m.current;if(!e)return;let t=window.HTMLSelectElement.prototype,n=Object.getOwnPropertyDescriptor(t,`value`).set;if(v!==g&&n){let t=new Event(`change`,{bubbles:!0});n.call(e,g),e.dispatchEvent(t)}},[v,g]),(0,R.jsxs)(_.select,{"aria-hidden":!0,required:s,tabIndex:-1,name:l,autoComplete:u,disabled:c,form:d,onChange:e=>o(e.target.value),...t,style:{...T,...t.style},ref:h,defaultValue:g,children:[Q(a)&&!y?(0,R.jsx)(`option`,{value:``}):null,Array.from(f)]},p)});it.displayName=rt;function at(e){return typeof e==`function`}function Q(e){return e===``||e===void 0}function ot(e){let t=a(e),n=P.useRef(``),r=P.useRef(0),i=P.useCallback(e=>{let i=n.current+e;t(i),(function e(t){n.current=t,window.clearTimeout(r.current),t!==``&&(r.current=window.setTimeout(()=>e(``),1e3))})(i)},[t]),o=P.useCallback(()=>{n.current=``,window.clearTimeout(r.current)},[]);return P.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,o]}function st(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=ct(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.textValue.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}function ct(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var lt=de,ut=he;function dt({className:e,children:t,...n}){return(0,R.jsxs)(pe,{className:b(`flex h-8 w-full cursor-pointer items-center justify-between gap-2 px-2.5 [&>span]:truncate`,te,e),...n,children:[t,(0,R.jsx)(_e,{asChild:!0,children:(0,R.jsx)(M,{className:`size-3.5 shrink-0 text-fg-muted`})})]})}function ft({className:e,children:t,position:n=`popper`,...r}){return(0,R.jsx)(xe,{children:(0,R.jsx)(Se,{position:n,sideOffset:4,className:b(`z-50 max-h-72 min-w-[var(--radix-select-trigger-width)] overflow-y-auto rounded-md bg-elevated p-1 shadow-xl`,e),...r,children:(0,R.jsx)(Fe,{children:t})})})}function pt({className:e,children:t,...n}){return(0,R.jsxs)(We,{className:b(O,w,`py-1.5 pl-7 pr-2`,e),...n,children:[(0,R.jsx)(`span`,{className:`absolute left-2 flex size-3.5 items-center justify-center`,children:(0,R.jsx)(qe,{children:(0,R.jsx)(ne,{className:`size-3.5`})})}),(0,R.jsx)(Ge,{children:t})]})}var $=`Switch`,[mt,ht]=s($),[gt,_t]=mt($);function vt(e){let{__scopeSwitch:t,checked:n,children:r,defaultChecked:i,disabled:a,form:o,name:s,onCheckedChange:c,required:u,value:d=`on`,internal_do_not_use_render:f}=e,[p,m]=l({prop:n,defaultProp:i??!1,onChange:c,caller:$}),[h,g]=P.useState(null),[_,v]=P.useState(null),y={checked:p,setChecked:m,disabled:a,control:h,setControl:g,name:s,form:o,value:d,hasConsumerStoppedPropagationRef:P.useRef(!1),required:u,defaultChecked:i,isFormControl:!h||!!o||!!h.closest(`form`),bubbleInput:_,setBubbleInput:v};return(0,R.jsx)(gt,{scope:t,...y,children:Et(f)?f(y):r})}var yt=`SwitchTrigger`,bt=P.forwardRef(({__scopeSwitch:e,onClick:t,...n},r)=>{let{control:a,form:o,value:s,disabled:c,checked:l,required:u,setControl:d,setChecked:f,hasConsumerStoppedPropagationRef:m,isFormControl:h,bubbleInput:g}=_t(yt,e),v=i(r,d),y=P.useRef(l);return P.useEffect(()=>{let e=o?a?.ownerDocument.getElementById(o):a?.form;if(e instanceof HTMLFormElement){let t=()=>f(y.current);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[a,o,f]),(0,R.jsx)(_.button,{type:`button`,role:`switch`,"aria-checked":l,"aria-required":u,"data-state":Dt(l),"data-disabled":c?``:void 0,disabled:c,value:s,...n,ref:v,onClick:p(t,e=>{f(e=>!e),g&&h&&(m.current=e.isPropagationStopped(),m.current||e.stopPropagation())})})});bt.displayName=yt;var xt=P.forwardRef((e,t)=>{let{__scopeSwitch:n,name:r,checked:i,defaultChecked:a,required:o,disabled:s,value:c,onCheckedChange:l,form:u,...d}=e;return(0,R.jsx)(vt,{__scopeSwitch:n,checked:i,defaultChecked:a,disabled:s,required:o,onCheckedChange:l,name:r,form:u,value:c,internal_do_not_use_render:({isFormControl:e})=>(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(bt,{...d,ref:t,__scopeSwitch:n}),e&&(0,R.jsx)(Tt,{__scopeSwitch:n})]})})});xt.displayName=$;var St=`SwitchThumb`,Ct=P.forwardRef((e,t)=>{let{__scopeSwitch:n,...r}=e,i=_t(St,n);return(0,R.jsx)(_.span,{"data-state":Dt(i.checked),"data-disabled":i.disabled?``:void 0,...r,ref:t})});Ct.displayName=St;var wt=`SwitchBubbleInput`,Tt=P.forwardRef(({__scopeSwitch:e,...t},n)=>{let{control:r,hasConsumerStoppedPropagationRef:a,checked:o,defaultChecked:s,required:c,disabled:l,name:u,value:d,form:f,bubbleInput:p,setBubbleInput:m}=_t(wt,e),h=i(n,m),g=L(o),v=j(r);P.useEffect(()=>{let e=p;if(!e)return;let t=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(t,`checked`).set,r=!a.current;if(g!==o&&n){let t=new Event(`click`,{bubbles:r});n.call(e,o),e.dispatchEvent(t)}},[p,g,o,a]);let y=P.useRef(o);return(0,R.jsx)(_.input,{type:`checkbox`,"aria-hidden":!0,defaultChecked:s??y.current,required:c,disabled:l,name:u,value:d,form:f,...t,tabIndex:-1,ref:h,style:{...t.style,...v,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0,transform:`translateX(-100%)`}})});Tt.displayName=wt;function Et(e){return typeof e==`function`}function Dt(e){return e?`checked`:`unchecked`}function Ot({className:e,...t}){return(0,R.jsx)(xt,{className:b(`peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full transition-colors data-[state=checked]:bg-action data-[state=unchecked]:bg-border data-[state=unchecked]:hover:bg-border/70 disabled:cursor-not-allowed disabled:opacity-50`,e),...t,children:(0,R.jsx)(Ct,{className:`pointer-events-none block size-4 rounded-full bg-ground shadow-sm transition-transform data-[state=checked]:translate-x-[1.125rem] data-[state=unchecked]:translate-x-0.5`})})}var kt={agent:{baseBranch:``,separateBranch:!0,separateWorktree:!0},terminal:{baseBranch:``,separateBranch:!1,separateWorktree:!1}};function At(e,t){let n=t?.sessionDefaults?.[e],r=kt[e],i=n?.separateBranch??r.separateBranch;return{baseBranch:n?.baseBranch??r.baseBranch,separateBranch:i,separateWorktree:i?!0:n?.separateWorktree??r.separateWorktree}}export{pt as a,re as c,ne as d,ft as i,N as l,Ot as n,dt as o,lt as r,ut as s,At as t,M as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./index-BgfBBLZx.js";function t(){return e.get()}export{t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as e,c as t,f as n,h as r,o as i,p as a}from"./editor.api2-4X9Vh9Zw.js";import{m as o,p as s}from"./buffer-store-
|
|
1
|
+
import{a as e,c as t,f as n,h as r,o as i,p as a}from"./editor.api2-4X9Vh9Zw.js";import{m as o,p as s}from"./buffer-store-DF2zMOcz.js";var c=class{constructor(e,t){this._modeId=e,this._defaults=t,this._worker=null,this._client=null,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker()),this._updateExtraLibsToken=0,this._extraLibsChangeListener=this._defaults.onDidExtraLibsChange(()=>this._updateExtraLibs())}dispose(){this._configChangeListener.dispose(),this._extraLibsChangeListener.dispose(),this._stopWorker()}_stopWorker(){this._worker&&=(this._worker.dispose(),null),this._client=null}async _updateExtraLibs(){if(!this._worker)return;let e=++this._updateExtraLibsToken,t=await this._worker.getProxy();this._updateExtraLibsToken===e&&t.updateExtraLibs(this._defaults.getExtraLibs())}_getClient(){return this._client||=(async()=>(this._worker=o({moduleId:`vs/language/typescript/tsWorker`,createWorker:()=>new Worker(new URL(`/assets/ts.worker-BtjBFNHX.js`,``+import.meta.url),{type:`module`}),label:this._modeId,keepIdleModels:!0,createData:{compilerOptions:this._defaults.getCompilerOptions(),extraLibs:this._defaults.getExtraLibs(),customWorkerPath:this._defaults.workerOptions.customWorkerPath,inlayHintsOptions:this._defaults.inlayHintsOptions}}),this._defaults.getEagerModelSync()?await this._worker.withSyncedResources(a.getModels().filter(e=>e.getLanguageId()===this._modeId).map(e=>e.uri)):await this._worker.getProxy()))(),this._client}async getLanguageServiceWorker(...e){let t=await this._getClient();return this._worker&&await this._worker.withSyncedResources(e),t}},l={};l[`lib.d.ts`]=!0,l[`lib.decorators.d.ts`]=!0,l[`lib.decorators.legacy.d.ts`]=!0,l[`lib.dom.asynciterable.d.ts`]=!0,l[`lib.dom.d.ts`]=!0,l[`lib.dom.iterable.d.ts`]=!0,l[`lib.es2015.collection.d.ts`]=!0,l[`lib.es2015.core.d.ts`]=!0,l[`lib.es2015.d.ts`]=!0,l[`lib.es2015.generator.d.ts`]=!0,l[`lib.es2015.iterable.d.ts`]=!0,l[`lib.es2015.promise.d.ts`]=!0,l[`lib.es2015.proxy.d.ts`]=!0,l[`lib.es2015.reflect.d.ts`]=!0,l[`lib.es2015.symbol.d.ts`]=!0,l[`lib.es2015.symbol.wellknown.d.ts`]=!0,l[`lib.es2016.array.include.d.ts`]=!0,l[`lib.es2016.d.ts`]=!0,l[`lib.es2016.full.d.ts`]=!0,l[`lib.es2016.intl.d.ts`]=!0,l[`lib.es2017.arraybuffer.d.ts`]=!0,l[`lib.es2017.d.ts`]=!0,l[`lib.es2017.date.d.ts`]=!0,l[`lib.es2017.full.d.ts`]=!0,l[`lib.es2017.intl.d.ts`]=!0,l[`lib.es2017.object.d.ts`]=!0,l[`lib.es2017.sharedmemory.d.ts`]=!0,l[`lib.es2017.string.d.ts`]=!0,l[`lib.es2017.typedarrays.d.ts`]=!0,l[`lib.es2018.asyncgenerator.d.ts`]=!0,l[`lib.es2018.asynciterable.d.ts`]=!0,l[`lib.es2018.d.ts`]=!0,l[`lib.es2018.full.d.ts`]=!0,l[`lib.es2018.intl.d.ts`]=!0,l[`lib.es2018.promise.d.ts`]=!0,l[`lib.es2018.regexp.d.ts`]=!0,l[`lib.es2019.array.d.ts`]=!0,l[`lib.es2019.d.ts`]=!0,l[`lib.es2019.full.d.ts`]=!0,l[`lib.es2019.intl.d.ts`]=!0,l[`lib.es2019.object.d.ts`]=!0,l[`lib.es2019.string.d.ts`]=!0,l[`lib.es2019.symbol.d.ts`]=!0,l[`lib.es2020.bigint.d.ts`]=!0,l[`lib.es2020.d.ts`]=!0,l[`lib.es2020.date.d.ts`]=!0,l[`lib.es2020.full.d.ts`]=!0,l[`lib.es2020.intl.d.ts`]=!0,l[`lib.es2020.number.d.ts`]=!0,l[`lib.es2020.promise.d.ts`]=!0,l[`lib.es2020.sharedmemory.d.ts`]=!0,l[`lib.es2020.string.d.ts`]=!0,l[`lib.es2020.symbol.wellknown.d.ts`]=!0,l[`lib.es2021.d.ts`]=!0,l[`lib.es2021.full.d.ts`]=!0,l[`lib.es2021.intl.d.ts`]=!0,l[`lib.es2021.promise.d.ts`]=!0,l[`lib.es2021.string.d.ts`]=!0,l[`lib.es2021.weakref.d.ts`]=!0,l[`lib.es2022.array.d.ts`]=!0,l[`lib.es2022.d.ts`]=!0,l[`lib.es2022.error.d.ts`]=!0,l[`lib.es2022.full.d.ts`]=!0,l[`lib.es2022.intl.d.ts`]=!0,l[`lib.es2022.object.d.ts`]=!0,l[`lib.es2022.regexp.d.ts`]=!0,l[`lib.es2022.string.d.ts`]=!0,l[`lib.es2023.array.d.ts`]=!0,l[`lib.es2023.collection.d.ts`]=!0,l[`lib.es2023.d.ts`]=!0,l[`lib.es2023.full.d.ts`]=!0,l[`lib.es2023.intl.d.ts`]=!0,l[`lib.es2024.arraybuffer.d.ts`]=!0,l[`lib.es2024.collection.d.ts`]=!0,l[`lib.es2024.d.ts`]=!0,l[`lib.es2024.full.d.ts`]=!0,l[`lib.es2024.object.d.ts`]=!0,l[`lib.es2024.promise.d.ts`]=!0,l[`lib.es2024.regexp.d.ts`]=!0,l[`lib.es2024.sharedmemory.d.ts`]=!0,l[`lib.es2024.string.d.ts`]=!0,l[`lib.es5.d.ts`]=!0,l[`lib.es6.d.ts`]=!0,l[`lib.esnext.array.d.ts`]=!0,l[`lib.esnext.collection.d.ts`]=!0,l[`lib.esnext.d.ts`]=!0,l[`lib.esnext.decorators.d.ts`]=!0,l[`lib.esnext.disposable.d.ts`]=!0,l[`lib.esnext.error.d.ts`]=!0,l[`lib.esnext.float16.d.ts`]=!0,l[`lib.esnext.full.d.ts`]=!0,l[`lib.esnext.intl.d.ts`]=!0,l[`lib.esnext.iterator.d.ts`]=!0,l[`lib.esnext.promise.d.ts`]=!0,l[`lib.esnext.sharedmemory.d.ts`]=!0,l[`lib.scripthost.d.ts`]=!0,l[`lib.webworker.asynciterable.d.ts`]=!0,l[`lib.webworker.d.ts`]=!0,l[`lib.webworker.importscripts.d.ts`]=!0,l[`lib.webworker.iterable.d.ts`]=!0;function u(e,t,n=0){if(typeof e==`string`)return e;if(e===void 0)return``;let r=``;if(n){r+=t;for(let e=0;e<n;e++)r+=` `}if(r+=e.messageText,n++,e.next)for(let i of e.next)r+=u(i,t,n);return r}function d(e){return e?e.map(e=>e.text).join(``):``}var f=class{constructor(e){this._worker=e}_textSpanToRange(e,t){let n=e.getPositionAt(t.start),r=e.getPositionAt(t.start+t.length),{lineNumber:i,column:a}=n,{lineNumber:o,column:s}=r;return{startLineNumber:i,startColumn:a,endLineNumber:o,endColumn:s}}},p=class{constructor(e){this._worker=e,this._libFiles={},this._hasFetchedLibFiles=!1,this._fetchLibFilesPromise=null}isLibFile(e){return e?e.path.indexOf(`/lib.`)===0&&!!l[e.path.slice(1)]:!1}getOrCreateModel(e){let t=n.parse(e),r=a.getModel(t);if(r)return r;if(this.isLibFile(t)&&this._hasFetchedLibFiles)return a.createModel(this._libFiles[t.path.slice(1)],`typescript`,t);let i=s.getExtraLibs()[e];return i?a.createModel(i.content,`typescript`,t):null}_containsLibFile(e){for(let t of e)if(this.isLibFile(t))return!0;return!1}async fetchLibFilesIfNecessary(e){this._containsLibFile(e)&&await this._fetchLibFiles()}_fetchLibFiles(){return this._fetchLibFilesPromise||=this._worker().then(e=>e.getLibFiles()).then(e=>{this._hasFetchedLibFiles=!0,this._libFiles=e}),this._fetchLibFilesPromise}},m=class extends f{constructor(e,t,n,r){super(r),this._libFiles=e,this._defaults=t,this._selector=n,this._disposables=[],this._listener=Object.create(null);let i=e=>{if(e.getLanguageId()!==n)return;let t=()=>{let{onlyVisible:t}=this._defaults.getDiagnosticsOptions();t?e.isAttachedToEditor()&&this._doValidate(e):this._doValidate(e)},r,i=e.onDidChangeContent(()=>{clearTimeout(r),r=window.setTimeout(t,500)}),o=e.onDidChangeAttached(()=>{let{onlyVisible:n}=this._defaults.getDiagnosticsOptions();n&&(e.isAttachedToEditor()?t():a.setModelMarkers(e,this._selector,[]))});this._listener[e.uri.toString()]={dispose(){i.dispose(),o.dispose(),clearTimeout(r)}},t()},o=e=>{a.setModelMarkers(e,this._selector,[]);let t=e.uri.toString();this._listener[t]&&(this._listener[t].dispose(),delete this._listener[t])};this._disposables.push(a.onDidCreateModel(e=>i(e))),this._disposables.push(a.onWillDisposeModel(o)),this._disposables.push(a.onDidChangeModelLanguage(e=>{o(e.model),i(e.model)})),this._disposables.push({dispose(){for(let e of a.getModels())o(e)}});let s=()=>{for(let e of a.getModels())o(e),i(e)};this._disposables.push(this._defaults.onDidChange(s)),this._disposables.push(this._defaults.onDidExtraLibsChange(s)),a.getModels().forEach(e=>i(e))}dispose(){this._disposables.forEach(e=>e&&e.dispose()),this._disposables=[]}async _doValidate(e){let t=await this._worker(e.uri);if(e.isDisposed())return;let r=[],{noSyntaxValidation:i,noSemanticValidation:o,noSuggestionDiagnostics:s}=this._defaults.getDiagnosticsOptions();i||r.push(t.getSyntacticDiagnostics(e.uri.toString())),o||r.push(t.getSemanticDiagnostics(e.uri.toString())),s||r.push(t.getSuggestionDiagnostics(e.uri.toString()));let c=await Promise.all(r);if(!c||e.isDisposed())return;let l=c.reduce((e,t)=>t.concat(e),[]).filter(e=>(this._defaults.getDiagnosticsOptions().diagnosticCodesToIgnore||[]).indexOf(e.code)===-1),u=l.map(e=>e.relatedInformation||[]).reduce((e,t)=>t.concat(e),[]).map(e=>e.file?n.parse(e.file.fileName):null);await this._libFiles.fetchLibFilesIfNecessary(u),!e.isDisposed()&&a.setModelMarkers(e,this._selector,l.map(t=>this._convertDiagnostics(e,t)))}_convertDiagnostics(e,t){let n=t.start||0,r=t.length||1,{lineNumber:a,column:o}=e.getPositionAt(n),{lineNumber:s,column:c}=e.getPositionAt(n+r),l=[];return t.reportsUnnecessary&&l.push(i.Unnecessary),t.reportsDeprecated&&l.push(i.Deprecated),{severity:this._tsDiagnosticCategoryToMarkerSeverity(t.category),startLineNumber:a,startColumn:o,endLineNumber:s,endColumn:c,message:u(t.messageText,`
|
|
2
2
|
`),code:t.code.toString(),tags:l,relatedInformation:this._convertRelatedInformation(e,t.relatedInformation)}}_convertRelatedInformation(e,t){if(!t)return[];let n=[];return t.forEach(t=>{let r=e;if(t.file&&(r=this._libFiles.getOrCreateModel(t.file.fileName)),!r)return;let i=t.start||0,a=t.length||1,{lineNumber:o,column:s}=r.getPositionAt(i),{lineNumber:c,column:l}=r.getPositionAt(i+a);n.push({resource:r.uri,startLineNumber:o,startColumn:s,endLineNumber:c,endColumn:l,message:u(t.messageText,`
|
|
3
3
|
`)})}),n}_tsDiagnosticCategoryToMarkerSeverity(t){switch(t){case 1:return e.Error;case 3:return e.Info;case 0:return e.Warning;case 2:return e.Hint}return e.Info}},h=class e extends f{get triggerCharacters(){return[`.`]}async provideCompletionItems(n,i,a,o){let s=n.getWordUntilPosition(i),c=new t(i.lineNumber,s.startColumn,i.lineNumber,s.endColumn),l=n.uri,u=n.getOffsetAt(i),d=await this._worker(l);if(n.isDisposed())return;let f=await d.getCompletionsAtPosition(l.toString(),u);if(!(!f||n.isDisposed()))return{suggestions:f.entries.map(a=>{let o=c;if(a.replacementSpan){let e=n.getPositionAt(a.replacementSpan.start),r=n.getPositionAt(a.replacementSpan.start+a.replacementSpan.length);o=new t(e.lineNumber,e.column,r.lineNumber,r.column)}let s=[];return a.kindModifiers!==void 0&&a.kindModifiers.indexOf(`deprecated`)!==-1&&s.push(r.CompletionItemTag.Deprecated),{uri:l,position:i,offset:u,range:o,label:a.name,insertText:a.name,sortText:a.sortText,kind:e.convertKind(a.kind),tags:s}})}}async resolveCompletionItem(t,n){let r=t,i=r.uri,a=r.position,o=r.offset,s=await(await this._worker(i)).getCompletionEntryDetails(i.toString(),o,r.label);return s?{uri:i,position:a,label:s.name,kind:e.convertKind(s.kind),detail:d(s.displayParts),documentation:{value:e.createDocumentationString(s)}}:r}static convertKind(e){switch(e){case C.primitiveType:case C.keyword:return r.CompletionItemKind.Keyword;case C.variable:case C.localVariable:return r.CompletionItemKind.Variable;case C.memberVariable:case C.memberGetAccessor:case C.memberSetAccessor:return r.CompletionItemKind.Field;case C.function:case C.memberFunction:case C.constructSignature:case C.callSignature:case C.indexSignature:return r.CompletionItemKind.Function;case C.enum:return r.CompletionItemKind.Enum;case C.module:return r.CompletionItemKind.Module;case C.class:return r.CompletionItemKind.Class;case C.interface:return r.CompletionItemKind.Interface;case C.warning:return r.CompletionItemKind.File}return r.CompletionItemKind.Property}static createDocumentationString(e){let t=d(e.documentation);if(e.tags)for(let n of e.tags)t+=`
|
|
4
4
|
|
package/dist/public/index.html
CHANGED
|
@@ -5,17 +5,17 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<link rel="icon" type="image/svg+xml" href="/puddle.svg" />
|
|
7
7
|
<title>puddle</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-BgfBBLZx.js"></script>
|
|
9
9
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-QTnfLwEv.js">
|
|
10
10
|
<link rel="modulepreload" crossorigin href="/assets/react-CZI7_Jkm.js">
|
|
11
11
|
<link rel="modulepreload" crossorigin href="/assets/jsx-runtime-ffCh33zF.js">
|
|
12
12
|
<link rel="modulepreload" crossorigin href="/assets/useMutation-Da9b4jwS.js">
|
|
13
13
|
<link rel="modulepreload" crossorigin href="/assets/preload-helper-Czpn1I53.js">
|
|
14
|
-
<link rel="modulepreload" crossorigin href="/assets/api-
|
|
14
|
+
<link rel="modulepreload" crossorigin href="/assets/api-BHwI7sYX.js">
|
|
15
15
|
<link rel="modulepreload" crossorigin href="/assets/utils-B6KiDbIe.js">
|
|
16
16
|
<link rel="modulepreload" crossorigin href="/assets/createLucideIcon-DyMAgLa3.js">
|
|
17
17
|
<link rel="modulepreload" crossorigin href="/assets/dialog-B43iKmfK.js">
|
|
18
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
18
|
+
<link rel="stylesheet" crossorigin href="/assets/index-szwjDL7m.css">
|
|
19
19
|
</head>
|
|
20
20
|
<body>
|
|
21
21
|
<div id="root"></div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@puddle-code/cli",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.10",
|
|
4
4
|
"description": "puddle — self-hosted orchestrator for CLI coding agents: serves the cockpit UI and connects it to local or SSH hosts.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/PerceptronV/puddle-code#readme",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{t}from"./react-CZI7_Jkm.js";import{t as n}from"./jsx-runtime-ffCh33zF.js";import{c as r,d as i,f as a,h as o,m as s,n as c,p as l,r as u,t as d}from"./editor-tabs-DHrvhXUq.js";import{b as f,r as p,t as m}from"./api-MnOKfpqf.js";import{t as h}from"./createLucideIcon-DyMAgLa3.js";import{S as g,a as _,o as v,s as y}from"./index-QU4DiDhV.js";import{i as b,r as x}from"./editor.api2-4X9Vh9Zw.js";import{a as S,c as C,d as w,f as T,i as E,l as ee,n as te,o as ne,r as D,s as O,t as k,u as A}from"./buffer-store-BLJJ5bBb.js";import{a as re,c as ie,i as j,l as M,n as N,o as P,r as F,s as I}from"./editor-sync-F3Wyveaa.js";import{r as L}from"./buffer-logic-BrpRsL1b.js";var R=h(`download`,[[`path`,{d:`M12 15V3`,key:`m9g1x1`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}],[`path`,{d:`m7 10 5 5 5-5`,key:`brsn70`}]]),z=e(t(),1);function B(e){return!e}function V(e){let t=e.split(`+`),n=t.pop()??``,r=0;for(let e of t)e===`meta`?r|=b.CtrlCmd:e===`ctrl`?r|=b.WinCtrl:e===`alt`?r|=b.Alt:e===`shift`&&(r|=b.Shift);let i=x[/^Key[A-Z]$/.test(n)?`Key${n.slice(3)}`:/^Digit[0-9]$/.test(n)?`Digit${n.slice(5)}`:n];return typeof i==`number`?r|i:null}function ae(e,t){let n=V(g(`editor.save`));n!==null&&e.addCommand(n,()=>t.onSave());let r=V(g(`editor.wordWrap`));e.addAction({id:`puddle.toggleWordWrap`,label:`Toggle Word Wrap`,keybindings:r===null?[]:[r],run:()=>v({editorWordWrap:B(_().editorWordWrap)})})}function H(e,t,n){let r=k(e,t),i=o(e,t),a=l(e),[s,c]=(0,z.useState)(null),[u,d]=(0,z.useState)(!1),p=(0,z.useRef)(!1),h=(0,z.useRef)(null),g=(0,z.useRef)(null),_=(0,z.useRef)(n);_.current=n;let v=(0,z.useRef)(!1),y=(0,z.useCallback)((e,t)=>{g.current?.cancel(),v.current=!0;try{ne(r,e,t)}finally{v.current=!1}},[r]),b=(0,z.useSyncExternalStore)((0,z.useCallback)(e=>ee(r,e),[r]),()=>D(r)),x=(0,z.useSyncExternalStore)((0,z.useCallback)(e=>P(r,e),[r]),()=>re(r));(0,z.useEffect)(()=>{let n=i.data;if(!n||n.binary||n.content===null||p.current)return;p.current=!0;let a=C(r)!==void 0,o=te(e,t,n.content,n.mtime_ms);c(o),!a&&M(e,t).then(e=>{e&&(e.base_mtime_ms===n.mtime_ms?L(o,e.content)&&d(!0):f(`This file has an unsaved draft from an earlier version.`,{description:`The file changed on disk since the draft was saved.`,duration:12e3,action:{label:`Restore draft`,onClick:()=>{L(o,e.content)&&d(!0)}}}))})},[i.data,r,e,t]),(0,z.useEffect)(()=>{if(!s)return;let n=ie(e,t);g.current=n;let i=s.onDidChangeContent(()=>{v.current||(n(s.getValue(),C(r)??0),N(e,t))});return()=>{n.flush(),i.dispose(),g.current=null}},[s,r,e,t]),(0,z.useEffect)(()=>{!s||!x.savedElsewhere||D(r)||i.refetch().then(e=>{D(r)||(e.data&&e.data.content!==null&&y(e.data.content,e.data.mtime_ms),j(r))})},[x.savedElsewhere,s,r]),(0,z.useEffect)(()=>{let e=i.data;!s||!e||e.content===null||!D(r)&&e.mtime_ms!==C(r)&&y(e.content,e.mtime_ms)},[i.data,s,r]);let S=(0,z.useCallback)((n,i)=>{E(r,n,i),g.current?.cancel(),I(e,t),F(e,t,i),d(!1)},[r,e,t]),w=(0,z.useCallback)(()=>{i.refetch().then(n=>{n.data&&n.data.content!==null&&y(n.data.content,n.data.mtime_ms),I(e,t),d(!1)})},[r,e,t,y]),T=(0,z.useCallback)((e,n)=>{a.mutate({path:t,content:e},{onSuccess:e=>S(n,e.mtime_ms),onError:e=>f.error(e instanceof Error?e.message:`Overwrite failed`)})},[a,t,S]),O=(0,z.useCallback)(()=>{if(!s||!D(r))return;let e=s.getValue(),n=s.getAlternativeVersionId();a.mutate({path:t,content:e,expected_mtime_ms:C(r)},{onSuccess:e=>S(n,e.mtime_ms),onError:t=>{t instanceof m&&t.status===409&&t.code===`stale_file`?f.error(`File changed on disk (probably the agent)`,{duration:1/0,action:{label:`Reload`,onClick:()=>w()},cancel:{label:`Overwrite`,onClick:()=>T(e,n)}}):f.error(t instanceof Error?t.message:`Save failed`)}})},[s,r,a,t,S,w,T]),A=(0,z.useRef)(O);A.current=O;let R=(0,z.useCallback)(()=>{let n=h.current,r=_.current;!n||!r||r.session!==e||r.path!==t||(n.revealLineInCenter(r.line),n.setPosition({lineNumber:r.line,column:r.column??1}),n.focus())},[e,t]),B=(0,z.useCallback)(e=>{h.current=e,ae(e,{onSave:()=>A.current()}),R()},[R]);(0,z.useEffect)(()=>{R()},[n,s,R]);let V=(0,z.useCallback)(()=>{w()},[w]),H,U=null;i.data?.binary?H=`binary`:i.error?i.error instanceof m&&i.error.status===413?H=`too-large`:(H=`error`,U=i.error instanceof Error?i.error.message:`Failed to load file`):H=s?`ready`:`loading`;let W=b&&x.savedElsewhere?`saved-elsewhere`:b&&x.dirtyElsewhere?`dirty-elsewhere`:null;return{status:H,errorMessage:U,model:s,dirty:b,restoredNotice:u,discardRestore:V,peerBadge:W,save:O,onMount:B}}var U=n();function W({message:e,session:t,path:n,download:i}){return(0,U.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-3 bg-ground text-sm text-fg-muted`,children:[(0,U.jsx)(`span`,{children:e}),i&&(0,U.jsxs)(`button`,{type:`button`,onClick:()=>void r(t,n).catch(e=>f.error(e instanceof Error?e.message:`Download failed`)),className:`flex items-center gap-1.5 text-fg-secondary transition-colors hover:text-fg`,children:[(0,U.jsx)(R,{className:`size-4`}),`Download`]})]})}function G({session:e,path:t,reveal:n}){let r=y(),i=H(e,t,n),a=(0,z.useMemo)(()=>getComputedStyle(document.documentElement).getPropertyValue(`--font-mono`).trim()||void 0,[]);if(i.status===`binary`)return(0,U.jsx)(W,{message:`Binary file — use Download`,session:e,path:t,download:!0});if(i.status===`too-large`)return(0,U.jsx)(W,{message:`File too large to edit — use Download`,session:e,path:t,download:!0});if(i.status===`error`)return(0,U.jsx)(W,{message:i.errorMessage??`Failed to load file`,session:e,path:t});let o=i.peerBadge===`saved-elsewhere`?`Saved in another window`:i.peerBadge===`dirty-elsewhere`?`Also being edited in another window`:null;return(0,U.jsxs)(`div`,{className:`flex h-full flex-col bg-ground`,children:[i.restoredNotice&&(0,U.jsxs)(`div`,{className:`flex items-center gap-3 bg-elevated px-3 py-1.5 text-xs text-fg-secondary`,children:[(0,U.jsx)(`span`,{children:`Restored unsaved changes`}),(0,U.jsx)(`button`,{type:`button`,onClick:i.discardRestore,className:`text-fg-muted transition-colors hover:text-fg`,children:`Discard`})]}),o&&(0,U.jsx)(`div`,{className:`bg-surface px-3 py-1 text-xs text-fg-muted`,children:o}),(0,U.jsx)(`div`,{className:`min-h-0 flex-1`,children:i.model&&(0,U.jsx)(w,{path:i.model.uri.toString(),defaultValue:i.model.getValue(),theme:`puddle`,keepCurrentModel:!0,onMount:e=>i.onMount(e),loading:(0,U.jsx)(`div`,{className:`p-3 text-xs text-fg-muted`,children:`…`}),options:{automaticLayout:!0,fontFamily:a,tabSize:r.editorTabSize,wordWrap:r.editorWordWrap?`on`:`off`,minimap:{enabled:!1},fixedOverflowWidgets:!0,scrollBeyondLastLine:!1}})})]})}function K({children:e}){return(0,U.jsx)(`div`,{className:`flex h-full items-center justify-center px-4 text-xs text-fg-muted`,children:e})}function q(e,t){let n=(0,z.useRef)(t);n.current=t,(0,z.useEffect)(()=>(O(e),()=>{n.current?.(),S(e)}),[e])}function J(e,t,n,r){let i=r.split(`/`).map(encodeURIComponent).join(`/`);return`${e}://${encodeURIComponent(t)}/${encodeURIComponent(n)}/${i}`}function Y({session:e,refName:t,path:n,content:r}){let i=(0,z.useMemo)(()=>getComputedStyle(document.documentElement).getPropertyValue(`--font-mono`).trim()||void 0,[]);return(0,U.jsx)(w,{path:J(`puddle-view`,e,t,n),defaultValue:r,theme:A,loading:(0,U.jsx)(K,{children:`…`}),options:{readOnly:!0,automaticLayout:!0,fontFamily:i,minimap:{enabled:!1},fixedOverflowWidgets:!0,scrollBeyondLastLine:!1}})}function X({session:e,against:t,path:n}){let r=a(e,t,n);return r.isPending?(0,U.jsx)(K,{children:`…`}):r.error?(0,U.jsx)(K,{children:r.error instanceof Error?r.error.message:`Failed to load`}):r.data.binary?(0,U.jsx)(K,{children:`Binary file — deleted`}):(0,U.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,U.jsx)(`div`,{className:`bg-surface px-4 py-1 text-xs text-fg-muted`,children:`Deleted`}),(0,U.jsx)(`div`,{className:`min-h-0 flex-1`,children:(0,U.jsx)(Y,{session:e,refName:t,path:n,content:r.data.content??``})})]})}function oe({session:e,against:t,path:n,basePath:r}){let i=y(),o=H(e,n,null),s=a(e,t,r),c=(0,z.useRef)(null);q(k(e,n),()=>{let e=c.current;if(!e)return;let t=e.getModel();e.setModel(null),t?.original.dispose(),c.current=null});let l=(0,z.useRef)(o.save);l.current=o.save;let u=(0,z.useMemo)(()=>getComputedStyle(document.documentElement).getPropertyValue(`--font-mono`).trim()||void 0,[]),d=s.error instanceof m&&s.error.status===404;return o.status===`binary`||s.data?.binary?(0,U.jsx)(K,{children:`Binary file`}):o.status===`too-large`?(0,U.jsx)(K,{children:`File too large to show`}):o.status===`error`?(0,U.jsx)(K,{children:o.errorMessage??`Failed to load file`}):d?(0,U.jsx)(G,{session:e,path:n,reveal:null}):s.isPending||!o.model?(0,U.jsx)(K,{children:`…`}):s.error?(0,U.jsx)(K,{children:s.error instanceof Error?s.error.message:`Failed to load base`}):(0,U.jsx)(T,{modifiedModelPath:o.model.uri.toString(),originalModelPath:J(`puddle-base`,e,t,r),original:s.data.content??``,language:o.model.getLanguageId(),theme:A,keepCurrentModifiedModel:!0,loading:(0,U.jsx)(K,{children:`…`}),onMount:e=>{c.current=e,e.onDidDispose(()=>{c.current=null}),e.getModifiedEditor().addCommand(b.CtrlCmd|x.KeyS,()=>l.current())},options:{readOnly:!1,originalEditable:!1,renderSideBySide:!0,automaticLayout:!0,fontFamily:u,wordWrap:i.editorWordWrap?`on`:`off`,minimap:{enabled:!1},fixedOverflowWidgets:!0,scrollBeyondLastLine:!1}})}function se({session:e,path:t}){return q(k(e,t)),(0,U.jsx)(G,{session:e,path:t,reveal:null})}function ce({session:e,against:t,entry:n}){switch(n.status){case`added`:return(0,U.jsx)(se,{session:e,path:n.path});case`deleted`:return(0,U.jsx)(X,{session:e,against:t,path:n.path});case`modified`:case`renamed`:return(0,U.jsx)(oe,{session:e,against:t,path:n.path,basePath:n.old_path??n.path});default:return null}}function Z({session:e,sha:t,path:n}){let r=a(e,t,n);return r.isPending?(0,U.jsx)(K,{children:`…`}):r.error?(0,U.jsx)(K,{children:r.error instanceof Error?r.error.message:`Failed to load file`}):r.data.binary?(0,U.jsx)(K,{children:`Binary file`}):(0,U.jsx)(Y,{session:e,refName:t,path:n,content:r.data.content??``})}function le({session:e,originalRef:t,originalPath:n,originalContent:r,modifiedRef:i,modifiedPath:a,modifiedContent:o}){let s=(0,z.useRef)(null),c=(0,z.useMemo)(()=>getComputedStyle(document.documentElement).getPropertyValue(`--font-mono`).trim()||void 0,[]);return(0,z.useEffect)(()=>()=>{let e=s.current;if(!e)return;let t=e.getModel();e.setModel(null),t?.original.dispose(),t?.modified.dispose(),s.current=null},[]),(0,U.jsx)(T,{originalModelPath:J(`puddle-hist-orig`,e,t,n),modifiedModelPath:J(`puddle-hist-mod`,e,i,a),original:r,modified:o,theme:A,keepCurrentOriginalModel:!0,keepCurrentModifiedModel:!0,loading:(0,U.jsx)(K,{children:`…`}),onMount:e=>{s.current=e,e.onDidDispose(()=>{s.current=null})},options:{readOnly:!0,originalEditable:!1,renderSideBySide:!0,automaticLayout:!0,fontFamily:c,minimap:{enabled:!1},fixedOverflowWidgets:!0,scrollBeyondLastLine:!1}})}function ue({session:e,sha:t,path:n,basePath:r}){let i=a(e,`${t}^`,r),o=a(e,t,n);return i.error instanceof m&&i.error.status===404?(0,U.jsx)(Z,{session:e,sha:t,path:n}):i.isPending||o.isPending?(0,U.jsx)(K,{children:`…`}):i.error?(0,U.jsx)(K,{children:i.error instanceof Error?i.error.message:`Failed to load original`}):o.error?(0,U.jsx)(K,{children:o.error instanceof Error?o.error.message:`Failed to load file`}):i.data.binary||o.data.binary?(0,U.jsx)(K,{children:`Binary file`}):(0,U.jsx)(le,{session:e,originalRef:`${t}^`,originalPath:r,originalContent:i.data.content??``,modifiedRef:t,modifiedPath:n,modifiedContent:o.data.content??``})}function de({session:e,sha:t,entry:n,isRootCommit:r}){switch(u(n.status,r)){case`added`:return(0,U.jsx)(Z,{session:e,sha:t,path:n.path});case`deleted`:return(0,U.jsx)(X,{session:e,against:`${t}^`,path:n.path});case`modified`:case`renamed`:return(0,U.jsx)(ue,{session:e,sha:t,path:n.path,basePath:n.old_path??n.path});default:return null}}function fe({session:e,sha:t,path:n}){let r=i(e,t);if(r.isPending)return(0,U.jsx)(`div`,{className:`px-4 py-3 text-xs text-fg-muted`,children:`Loading commit…`});if(r.error)return(0,U.jsx)(`div`,{className:`px-4 py-3 text-xs text-fg-muted`,children:r.error instanceof Error?r.error.message:`Failed to load commit`});let a=r.data.files.find(e=>e.path===n);return a?(0,U.jsx)(`div`,{className:`h-full`,children:(0,U.jsx)(de,{session:e,sha:t,entry:a,isRootCommit:r.data.parents.length===0})}):(0,U.jsxs)(`div`,{className:`flex h-full items-center justify-center px-4 text-center text-xs text-fg-muted`,children:[(0,U.jsx)(`span`,{className:`font-mono`,children:n}),` is not part of `,t.slice(0,7),`.`]})}function pe({session:e,path:t}){let n=s(e);if(n.isPending)return(0,U.jsx)(`div`,{className:`px-4 py-3 text-xs text-fg-muted`,children:`Loading diff…`});if(n.error)return(0,U.jsx)(`div`,{className:`px-4 py-3 text-xs text-fg-muted`,children:n.error instanceof Error?n.error.message:`Failed to load diff`});let r=n.data.entries.find(e=>e.path===t);return r?(0,U.jsx)(`div`,{className:`h-full`,children:(0,U.jsx)(ce,{session:e,against:n.data.against,entry:r})}):(0,U.jsxs)(`div`,{className:`flex h-full items-center justify-center px-4 text-center text-xs text-fg-muted`,children:[`No changes to `,(0,U.jsx)(`span`,{className:`mx-1 font-mono`,children:t}),` against the base.`]})}var me={png:`image`,jpg:`image`,jpeg:`image`,gif:`image`,webp:`image`,bmp:`image`,ico:`image`,avif:`image`,svg:`image`,mp4:`video`,m4v:`video`,webm:`video`,mov:`video`,mkv:`video`,avi:`video`,mp3:`audio`,wav:`audio`,ogg:`audio`,m4a:`audio`,flac:`audio`,aac:`audio`,pdf:`pdf`};function Q(e){let t=e.split(`/`).pop()??e,n=t.lastIndexOf(`.`);return n<=0?null:me[t.slice(n+1).toLowerCase()]??null}function he({session:e,path:t,kind:n}){let{url:r,error:i}=_e(e,t);return i?(0,U.jsxs)($,{children:[(0,U.jsx)(`p`,{className:`text-sm text-fg-secondary`,children:`Couldn’t load this file.`}),(0,U.jsx)(ge,{session:e,path:t})]}):r?n===`image`?(0,U.jsx)($,{children:(0,U.jsx)(`img`,{src:r,alt:t,className:`max-h-full max-w-full object-contain`})}):n===`video`?(0,U.jsx)($,{children:(0,U.jsx)(`video`,{src:r,controls:!0,className:`max-h-full max-w-full`})}):n===`audio`?(0,U.jsx)($,{children:(0,U.jsx)(`audio`,{src:r,controls:!0,className:`w-full max-w-xl`})}):(0,U.jsx)(`iframe`,{src:r,title:t,className:`h-full w-full border-0 bg-ground`}):(0,U.jsx)($,{children:(0,U.jsx)(`span`,{className:`text-xs text-fg-muted`,children:`…`})})}function $({children:e}){return(0,U.jsx)(`div`,{className:`flex h-full w-full flex-col items-center justify-center gap-3 overflow-auto bg-ground p-4`,children:e})}function ge({session:e,path:t}){return(0,U.jsx)(`button`,{type:`button`,onClick:()=>void r(e,t).catch(e=>f.error(e instanceof Error?e.message:`Download failed`)),className:`rounded-md bg-elevated px-3 py-1.5 text-sm text-fg transition-colors hover:bg-border/70`,children:`Download`})}function _e(e,t){let[n,r]=(0,z.useState)(null),[i,a]=(0,z.useState)(!1);return(0,z.useEffect)(()=>{let n=null,i=!1;return r(null),a(!1),p(`GET`,`/api/worktrees/${e}/media?path=${encodeURIComponent(t)}`).then(e=>e.blob()).then(e=>{i||(n=URL.createObjectURL(e),r(n))}).catch(()=>{i||a(!0)}),()=>{i=!0,n&&URL.revokeObjectURL(n)}},[e,t]),{url:n,error:i}}function ve({tab:e,reveal:t}){let n=c(e);if(n===`diff`)return(0,U.jsx)(pe,{session:e.session,path:e.path},d(e));if(n===`commit`&&e.sha)return(0,U.jsx)(fe,{session:e.session,sha:e.sha,path:e.path},d(e));let r=Q(e.path);return r?(0,U.jsx)(he,{session:e.session,path:e.path,kind:r},d(e)):(0,U.jsx)(G,{session:e.session,path:e.path,reveal:t},d(e))}export{ve as PaneEditorBody};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{t}from"./react-CZI7_Jkm.js";import{t as n}from"./jsx-runtime-ffCh33zF.js";import{b as r,d as i,f as a,h as o,l as s,m as c,p as l,u}from"./api-MnOKfpqf.js";import{a as d,g as f,i as p,n as m,o as h,r as g,t as _}from"./dialog-B43iKmfK.js";import{t as v}from"./utils-B6KiDbIe.js";import{t as y}from"./createLucideIcon-DyMAgLa3.js";import{a as b,c as x,d as S,i as C,l as w,n as T,o as E,r as D,s as O,t as k,u as ee}from"./session-seed-CRfTF2sq.js";import{i as te,r as ne}from"./dist-VDiYuPKw.js";import{A as re,C as ie,Ct as ae,D as oe,E as se,F as ce,Ft as A,G as le,H as ue,I as de,It as j,L as fe,N as pe,Ot as me,P as M,Pt as he,R as ge,V as _e,W as ve,X as ye,Xt as N,Z as be,a as xe,b as Se,bt as P,ct as Ce,dt as F,en as we,et as Te,f as Ee,g as De,gt as I,ht as L,i as Oe,it as ke,j as Ae,k as je,l as Me,lt as Ne,m as Pe,mt as R,o as z,ot as Fe,p as Ie,pt as Le,s as B,tt as Re,v as ze,vt as Be,x as Ve,xt as V,y as He}from"./index-QU4DiDhV.js";var Ue=y(`bell`,[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}]]),We=y(`code`,[[`path`,{d:`m16 18 6-6-6-6`,key:`eg8j8`}],[`path`,{d:`m8 6-6 6 6 6`,key:`ppft3o`}]]),Ge=y(`folder-input`,[[`path`,{d:`M2 9V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-1`,key:`fm4g5t`}],[`path`,{d:`M2 13h10`,key:`pgb2dq`}],[`path`,{d:`m9 16 3-3-3-3`,key:`6m91ic`}]]),Ke=y(`keyboard`,[[`path`,{d:`M10 8h.01`,key:`1r9ogq`}],[`path`,{d:`M12 12h.01`,key:`1mp3jc`}],[`path`,{d:`M14 8h.01`,key:`1primd`}],[`path`,{d:`M16 12h.01`,key:`1l6xoz`}],[`path`,{d:`M18 8h.01`,key:`emo2bl`}],[`path`,{d:`M6 8h.01`,key:`x9i8wu`}],[`path`,{d:`M7 16h10`,key:`wp8him`}],[`path`,{d:`M8 12h.01`,key:`czm47f`}],[`rect`,{width:`20`,height:`16`,x:`2`,y:`4`,rx:`2`,key:`18n3k1`}]]),qe=y(`rotate-ccw`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]),Je=y(`server`,[[`rect`,{width:`20`,height:`8`,x:`2`,y:`2`,rx:`2`,ry:`2`,key:`ngkwjq`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,ry:`2`,key:`iecqi9`}],[`line`,{x1:`6`,x2:`6.01`,y1:`6`,y2:`6`,key:`16zg32`}],[`line`,{x1:`6`,x2:`6.01`,y1:`18`,y2:`18`,key:`nzw8ys`}]]),Ye=y(`shield-alert`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`M12 8v4`,key:`1got3b`}],[`path`,{d:`M12 16h.01`,key:`1drbdi`}]]),Xe=y(`sliders-horizontal`,[[`path`,{d:`M10 5H3`,key:`1qgfaw`}],[`path`,{d:`M12 19H3`,key:`yhmn1j`}],[`path`,{d:`M14 3v4`,key:`1sua03`}],[`path`,{d:`M16 17v4`,key:`1q0r14`}],[`path`,{d:`M21 12h-9`,key:`1o4lsq`}],[`path`,{d:`M21 19h-5`,key:`1rlt1p`}],[`path`,{d:`M21 5h-7`,key:`1oszz2`}],[`path`,{d:`M8 10v4`,key:`tgpxqk`}],[`path`,{d:`M8 12H3`,key:`a7s4jb`}]]),Ze=y(`users`,[[`path`,{d:`M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2`,key:`1yyitq`}],[`path`,{d:`M16 3.128a4 4 0 0 1 0 7.744`,key:`16gr8j`}],[`path`,{d:`M22 21v-2a4 4 0 0 0-3-3.87`,key:`kshegd`}],[`circle`,{cx:`9`,cy:`7`,r:`4`,key:`nufk8`}]]),H=e(t(),1),U=n();function W({label:e,description:t,descriptionClassName:n,htmlFor:r,children:i,className:a}){return(0,U.jsxs)(`div`,{className:v(`flex items-center gap-4 py-2.5`,a),children:[(0,U.jsxs)(`label`,{htmlFor:r,className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[(0,U.jsx)(`span`,{className:`text-sm text-fg`,children:e}),t&&(0,U.jsx)(`span`,{className:v(`text-xs text-fg-muted`,n),children:t})]}),(0,U.jsx)(`div`,{className:`flex shrink-0 items-center gap-2`,children:i})]})}function G({children:e,note:t}){return(0,U.jsxs)(`div`,{className:`mb-2 flex flex-col gap-0.5`,children:[(0,U.jsx)(`h2`,{className:`text-base font-semibold text-fg`,children:e}),t&&(0,U.jsx)(`span`,{className:`text-xs text-fg-muted`,children:t})]})}function Qe(){let e=B(),[t,n]=(0,H.useState)(we());return(0,U.jsxs)(`div`,{children:[(0,U.jsx)(G,{note:`This browser only`,children:`Appearance`}),(0,U.jsx)(W,{label:`Theme`,description:`Chrome, terminal, and editor restyle together.`,children:(0,U.jsxs)(D,{value:t,onValueChange:e=>{n(e),N(e)},children:[(0,U.jsx)(E,{className:`w-32`,children:(0,U.jsx)(O,{})}),(0,U.jsxs)(C,{children:[(0,U.jsx)(b,{value:`dark`,children:`Dark`}),(0,U.jsx)(b,{value:`light`,children:`Light`}),(0,U.jsx)(b,{value:`system`,children:`System`})]})]})}),(0,U.jsx)(W,{label:`UI font size`,htmlFor:`ui-font-size`,children:(0,U.jsx)(A,{id:`ui-font-size`,type:`number`,min:12,max:24,step:.5,className:`w-20 tabular-nums`,value:e.uiFontSize,onChange:e=>z({uiFontSize:Number(e.target.value)||Oe.uiFontSize})})}),(0,U.jsx)(W,{label:`Terminal font size`,htmlFor:`terminal-font-size`,children:(0,U.jsx)(A,{id:`terminal-font-size`,type:`number`,min:9,max:24,className:`w-20 tabular-nums`,value:e.terminalFontSize,onChange:e=>z({terminalFontSize:Number(e.target.value)||13})})}),(0,U.jsx)(W,{label:`Density`,children:(0,U.jsxs)(D,{value:e.density,onValueChange:e=>z({density:e}),children:[(0,U.jsx)(E,{className:`w-36`,children:(0,U.jsx)(O,{})}),(0,U.jsxs)(C,{children:[(0,U.jsx)(b,{value:`compact`,children:`Compact`}),(0,U.jsx)(b,{value:`comfortable`,children:`Comfortable`})]})]})}),(0,U.jsx)(W,{label:`Reduced motion`,description:`Status ripples become static dots.`,htmlFor:`reduced-motion`,children:(0,U.jsx)(T,{id:`reduced-motion`,checked:e.reducedMotion,onCheckedChange:e=>z({reducedMotion:e})})}),(0,U.jsx)(W,{label:`All projects in the sidebar`,description:`Show every project's sessions in the right sidebar, grouped by project.`,htmlFor:`all-project-sessions`,children:(0,U.jsx)(T,{id:`all-project-sessions`,checked:e.showAllProjectSessions,onCheckedChange:e=>z({showAllProjectSessions:e})})})]})}function $e({profile:e}){let t=L(),[n,i]=(0,H.useState)(!1),a=n=>{t.mutate({id:e.id,icon:n},{onError:e=>r.error(e.message)}),i(!1)},o=n=>t.mutate({id:e.id,icon_colour:n},{onError:e=>r.error(e.message)});return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(W,{label:`Icon`,description:`The glyph shown wherever this profile appears.`,children:(0,U.jsxs)(Ee,{open:n,onOpenChange:i,children:[(0,U.jsx)(Pe,{asChild:!0,children:(0,U.jsxs)(`button`,{type:`button`,className:`flex size-9 items-center justify-center rounded-md text-fg-gold transition-colors hover:bg-elevated hover:text-fg`,children:[(0,U.jsx)(ce,{icon:e.icon,colour:e.icon_colour,className:`size-5`}),(0,U.jsx)(`span`,{className:`sr-only`,children:`Choose an icon`})]})}),(0,U.jsx)(Ie,{align:`end`,className:`w-72`,children:(0,U.jsxs)(`div`,{className:`grid grid-cols-8 gap-1`,children:[(0,U.jsx)(`button`,{type:`button`,title:`Default`,onClick:()=>a(null),className:v(`flex h-8 items-center justify-center rounded-md text-fg-secondary transition-colors hover:bg-elevated hover:text-fg`,!e.icon&&`bg-elevated text-fg`),children:(0,U.jsx)(ce,{icon:null,colour:null,className:`size-4`})}),fe.map(({name:t,Icon:n})=>(0,U.jsx)(`button`,{type:`button`,title:t,onClick:()=>a(t),className:v(`flex h-8 items-center justify-center rounded-md text-fg-secondary transition-colors hover:bg-elevated hover:text-fg`,e.icon===t&&`bg-elevated text-fg`),children:(0,U.jsx)(n,{className:`size-4`})},t))]})})]})}),(0,U.jsx)(W,{label:`Icon colour`,description:`Any theme colour; recolours with light/dark.`,children:(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1`,children:[(0,U.jsxs)(`button`,{type:`button`,title:`Default`,onClick:()=>o(null),className:v(`flex size-7 items-center justify-center rounded-md transition-colors hover:bg-elevated`,!e.icon_colour&&`bg-elevated`),children:[(0,U.jsx)(`span`,{className:`size-3.5 rounded-full bg-fg-muted`}),(0,U.jsx)(`span`,{className:`sr-only`,children:`Default colour`})]}),c.map(t=>(0,U.jsxs)(`button`,{type:`button`,title:t,onClick:()=>o(t),className:v(`flex size-7 items-center justify-center rounded-md transition-colors hover:bg-elevated`,e.icon_colour===t&&`bg-elevated`),children:[(0,U.jsx)(`span`,{className:v(`size-3.5 rounded-full bg-current`,de(t))}),(0,U.jsx)(`span`,{className:`sr-only`,children:t})]},t))]})})]})}var K=`__none__`;function et(){let e=M(),t=V().data?.find(t=>t.id===e),n=ye(e??void 0),i=P(e??void 0),a=L(),o=I(e??``),c=Fe(),[l,u]=(0,H.useState)(``),[v,y]=(0,H.useState)(``),[x,S]=(0,H.useState)(!1),[w,T]=(0,H.useState)(``);if((0,H.useEffect)(()=>{t&&(u(t.name),y(t.branch_prefix))},[t]),!t)return null;let k=i.data?.default_account_id;return(0,U.jsxs)(`div`,{children:[(0,U.jsx)(G,{children:`Profile`}),(0,U.jsxs)(W,{label:`Name`,description:`A display label. Letters, digits, dot, underscore and hyphen; must be unique.`,htmlFor:`profile-name`,children:[(0,U.jsx)(A,{id:`profile-name`,value:l,onChange:e=>u(e.target.value),className:`w-44 font-mono`}),(0,U.jsx)(f,{size:`sm`,variant:`secondary`,disabled:l===t.name||l.trim()===``||a.isPending,onClick:()=>a.mutate({id:t.id,name:l},{onError:e=>r.error(e.message)}),children:`Save`})]}),(0,U.jsxs)(W,{label:`Branch prefix`,description:`Session branches become <prefix><slug(title)>.`,htmlFor:`branch-prefix`,children:[(0,U.jsx)(A,{id:`branch-prefix`,value:v,onChange:e=>y(e.target.value),placeholder:s,className:`w-44 font-mono`}),(0,U.jsx)(f,{size:`sm`,variant:`secondary`,disabled:v===t.branch_prefix||a.isPending,onClick:()=>a.mutate({id:t.id,branch_prefix:v},{onError:e=>r.error(e.message)}),children:`Save`})]}),(0,U.jsx)($e,{profile:t}),(0,U.jsx)(W,{label:`Default account`,description:`Preselected in the new-session modal.`,children:(0,U.jsxs)(D,{value:typeof k==`number`?String(k):K,onValueChange:e=>o.mutate({default_account_id:e===K?null:Number(e)},{onError:e=>r.error(e.message)}),children:[(0,U.jsx)(E,{className:`w-56`,children:(0,U.jsx)(O,{})}),(0,U.jsxs)(C,{children:[(0,U.jsx)(b,{value:K,children:`First available`}),n.data?.map(e=>(0,U.jsx)(b,{value:String(e.id),children:(0,U.jsxs)(`span`,{className:`font-mono`,children:[e.agent_type,`/`,e.label]})},e.id))]})]})}),(0,U.jsx)(W,{label:`Delete profile`,description:`Removes its projects, accounts (logging them out), and archived history. Non-archived sessions block deletion.`,className:`mt-4`,children:(0,U.jsx)(f,{variant:`danger`,size:`sm`,onClick:()=>S(!0),children:`Delete…`})}),(0,U.jsx)(_,{open:x,onOpenChange:e=>{e||(S(!1),T(``))},children:(0,U.jsxs)(m,{children:[(0,U.jsxs)(d,{children:[(0,U.jsxs)(h,{children:[`Delete profile `,(0,U.jsx)(`span`,{className:`font-mono`,children:t.name}),`?`]}),(0,U.jsx)(g,{children:`Everything this profile owns goes with it: projects, workspace layouts, accounts and their credential directories, and archived session history. Branches, repositories, and terminal logs on disk are untouched. This cannot be undone.`})]}),(0,U.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,U.jsxs)(he,{htmlFor:`delete-confirm-name`,children:[`Type `,(0,U.jsx)(`span`,{className:`font-mono text-fg`,children:t.name}),` to confirm`]}),(0,U.jsx)(A,{id:`delete-confirm-name`,value:w,onChange:e=>T(e.target.value),className:`font-mono`,autoFocus:!0})]}),(0,U.jsxs)(p,{children:[(0,U.jsx)(f,{variant:`ghost`,onClick:()=>{S(!1),T(``)},children:`Cancel`}),(0,U.jsx)(f,{variant:`danger`,disabled:w!==t.name||c.isPending,onClick:()=>c.mutate(t.id,{onSuccess:()=>{je(),pe.set(null)},onError:e=>{S(!1),T(``),r.error(e.message)}}),children:`Delete profile`})]})]})})]})}function tt({agentId:e,profileId:t,onClose:n}){let i=Re(),[a,o]=(0,H.useState)(``),[s,c]=(0,H.useState)(``),l=Ce(se(s,150)),u=a.trim()!==``&&(s.startsWith(`/`)||s.startsWith(`~`));return(0,U.jsx)(_,{open:!0,onOpenChange:e=>!e&&n(),children:(0,U.jsxs)(m,{children:[(0,U.jsxs)(d,{children:[(0,U.jsx)(h,{children:`Import an existing account`}),(0,U.jsx)(g,{children:`The directory is copied into a puddle-owned account; the original is never touched. If credentials do not travel (macOS keychain), log in once afterwards.`})]}),(0,U.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,U.jsx)(A,{placeholder:`label, e.g. personal`,value:a,onChange:e=>o(e.target.value),className:`font-mono`}),(0,U.jsx)(oe,{value:s,onValueChange:c,placeholder:`config dir on the host, e.g. ~/.claude`,hints:(l.data?.entries??[]).map(e=>({value:e.path,label:e.name})),className:`font-mono`})]}),(0,U.jsxs)(p,{children:[(0,U.jsx)(f,{variant:`ghost`,onClick:n,children:`Cancel`}),(0,U.jsxs)(f,{disabled:!u||i.isPending,onClick:()=>i.mutate({profile_id:t,agent_type:e,label:a.trim(),import_dir:s.trim()},{onSuccess:e=>{n(),e.logged_in||r.info(`Imported without credentials — press Login to authenticate.`)},onError:e=>r.error(e.message)}),children:[(0,U.jsx)(Ge,{}),`Import`]})]})]})})}function nt({account:e,gateOpen:t}){let n=F(),i=Le(),a=ke(),[o,s]=(0,H.useState)(null),[c,l]=(0,H.useState)(!1),[u,v]=(0,H.useState)(e.label);return(0,H.useEffect)(()=>v(e.label),[e.label]),(0,U.jsxs)(`div`,{className:`flex items-center gap-3 rounded-md bg-surface px-3 py-2`,children:[(0,U.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,U.jsx)(`input`,{value:u,onChange:e=>v(e.target.value),onBlur:()=>{let t=u.trim();if(t!==e.label){if(t===``){v(e.label);return}i.mutate({id:e.id,label:t},{onError:t=>{r.error(t.message),v(e.label)}})}},onKeyDown:t=>{t.key===`Enter`?t.currentTarget.blur():t.key===`Escape`&&(v(e.label),t.currentTarget.blur())},"aria-label":`Account name`,className:`-mx-1 block w-full truncate rounded-sm bg-transparent px-1 py-0.5 font-mono text-sm text-fg transition-colors hover:bg-elevated focus:bg-elevated focus:outline-none`}),(0,U.jsx)(`span`,{className:`text-2xs ${e.logged_in?`text-running`:`text-waiting`}`,children:e.logged_in?`logged in`:`not logged in`})]}),t&&(0,U.jsxs)(`label`,{className:`flex items-center gap-2 text-xs text-fg-secondary`,children:[`skip prompts`,(0,U.jsx)(T,{checked:e.skip_permissions_default,onCheckedChange:t=>i.mutate({id:e.id,skip_permissions_default:t},{onError:e=>r.error(e.message)})})]}),(0,U.jsxs)(f,{size:`sm`,variant:`secondary`,disabled:n.isPending,onClick:()=>n.mutate(e.id,{onSuccess:e=>s(e.stream),onError:e=>r.error(e.message)}),children:[(0,U.jsx)(le,{}),e.logged_in?`Re-login`:`Login`]}),(0,U.jsxs)(f,{size:`icon`,variant:`ghost`,className:`size-7 text-fg-muted hover:text-danger`,onClick:()=>l(!0),children:[(0,U.jsx)(x,{}),(0,U.jsx)(`span`,{className:`sr-only`,children:`Delete account`})]}),o&&(0,U.jsx)(Me,{stream:o,label:`${e.agent_type}/${e.label}`,onClose:()=>s(null)}),(0,U.jsx)(_,{open:c,onOpenChange:l,children:(0,U.jsxs)(m,{children:[(0,U.jsxs)(d,{children:[(0,U.jsxs)(h,{children:[`Delete `,(0,U.jsx)(`span`,{className:`font-mono`,children:e.label}),`?`]}),(0,U.jsx)(g,{children:`Removes the account, its archived session history, and its credential directory — this logs the account out. Non-archived sessions block deletion.`})]}),(0,U.jsxs)(p,{children:[(0,U.jsx)(f,{variant:`ghost`,onClick:()=>l(!1),children:`Cancel`}),(0,U.jsx)(f,{variant:`danger`,disabled:a.isPending,onClick:()=>a.mutate(e.id,{onSuccess:()=>l(!1),onError:e=>{l(!1),r.error(e.message)}}),children:`Delete account`})]})]})})]})}function rt(){let e=M(),t=be(),n=ye(e??void 0),i=P(e??void 0),a=Re(),o=F(),[s,c]=(0,H.useState)({}),[l,u]=(0,H.useState)(null),[d,p]=(0,H.useState)(null),m=i.data?.allowSkipPermissions===!0,h=t=>{let n=(s[t]??``).trim();!n||e===null||a.mutate({profile_id:e,agent_type:t,label:n},{onSuccess:e=>{c(e=>({...e,[t]:``})),o.mutate(e.id,{onSuccess:n=>u({stream:n.stream,label:`${t}/${e.label}`})})},onError:e=>r.error(e.message)})};return(0,U.jsxs)(`div`,{children:[(0,U.jsx)(G,{children:`Accounts`}),t.data?.map(e=>{let t=n.data?.filter(t=>t.agent_type===e.id)??[];return(0,U.jsxs)(`div`,{className:`mb-5`,children:[(0,U.jsx)(W,{label:e.display_name,description:`Accounts are isolated config dirs under this profile.`,className:`py-1`,children:(0,U.jsx)(`span`,{className:`font-mono text-2xs text-fg-muted`,children:e.id})}),(0,U.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[t.map(t=>(0,U.jsx)(nt,{account:t,gateOpen:m&&e.capabilities.skip_permissions},t.id)),(0,U.jsxs)(`form`,{className:`flex gap-2`,onSubmit:t=>{t.preventDefault(),h(e.id)},children:[(0,U.jsx)(A,{placeholder:`label, e.g. personal`,value:s[e.id]??``,onChange:t=>c(n=>({...n,[e.id]:t.target.value})),className:`w-48 font-mono`}),(0,U.jsxs)(f,{type:`submit`,size:`sm`,variant:`secondary`,disabled:!(s[e.id]??``).trim()||a.isPending,children:[(0,U.jsx)(ue,{}),`Add account`]}),(0,U.jsxs)(f,{type:`button`,size:`sm`,variant:`ghost`,onClick:()=>p(e.id),children:[(0,U.jsx)(Ge,{}),`Import existing…`]})]})]})]},e.id)}),l&&(0,U.jsx)(Me,{stream:l.stream,label:l.label,onClose:()=>u(null)}),d!==null&&e!==null&&(0,U.jsx)(tt,{agentId:d,profileId:e,onClose:()=>p(null)})]})}function it(){let e=Te(),t=R(),[n,r]=(0,H.useState)(``);return(0,H.useEffect)(()=>{e.data&&r(e.data.agentPath)},[e.data]),(0,U.jsx)(W,{label:`Agent search path (host-wide)`,description:`Colon-separated dirs the daemon prepends to PATH to find agent CLIs like claude (e.g. ~/.local/bin). Applies after the daemon restarts.`,htmlFor:`agent-path`,children:(0,U.jsx)(A,{id:`agent-path`,type:`text`,className:`w-64 font-mono text-2xs`,value:n,onChange:e=>r(e.target.value),onBlur:()=>{e.data&&n!==e.data.agentPath&&t.mutate({agentPath:n})}})})}function at({kind:e,heading:t,settings:n,onSave:r,pending:i}){let a=k(e,n),o=n.sessionDefaults??{},[s,c]=(0,H.useState)(a.baseBranch),l=t=>r({...o,[e]:{...o[e],...t}});return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`p`,{className:`mb-1 mt-4 text-xs font-medium uppercase tracking-wide text-fg-gold`,children:t}),(0,U.jsx)(W,{label:`Base branch`,description:`Blank = the repository's default base branch.`,htmlFor:`${e}-default-base`,children:(0,U.jsx)(A,{id:`${e}-default-base`,type:`text`,placeholder:`repository default`,className:`w-48 font-mono`,value:s,onChange:e=>c(e.target.value),onBlur:()=>{s.trim()!==a.baseBranch&&l({baseBranch:s.trim()})}})}),(0,U.jsx)(W,{label:`Separate branch`,description:`Start on a fresh branch off the base, in its own directory.`,htmlFor:`${e}-default-branch`,children:(0,U.jsx)(T,{id:`${e}-default-branch`,checked:a.separateBranch,disabled:i,onCheckedChange:e=>l({separateBranch:e})})}),(0,U.jsx)(W,{label:`Separate directory`,description:a.separateBranch?`Always on while a separate branch is used.`:`An own working copy of the base branch, instead of sharing one.`,htmlFor:`${e}-default-dir`,children:(0,U.jsx)(T,{id:`${e}-default-dir`,checked:a.separateWorktree,disabled:i||a.separateBranch,onCheckedChange:e=>l({separateWorktree:e})})})]})}function ot(){return(0,U.jsx)(W,{label:`Terminal scrollback`,description:`Lines kept per terminal. This browser only.`,htmlFor:`scrollback`,children:(0,U.jsx)(A,{id:`scrollback`,type:`number`,min:500,max:1e5,step:500,className:`w-28 tabular-nums`,value:B().terminalScrollback,onChange:e=>z({terminalScrollback:Number(e.target.value)||5e3})})})}function q({id:e,label:t,description:n,initial:r,defaultText:i,onSave:a,pending:o}){let[s,c]=(0,H.useState)(r);return(0,U.jsxs)(`div`,{className:`mt-3 flex flex-col gap-1.5`,children:[(0,U.jsxs)(`label`,{htmlFor:e,className:`flex flex-col gap-0.5 text-sm text-fg`,children:[t,(0,U.jsx)(`span`,{className:`text-xs text-fg-muted`,children:n})]}),(0,U.jsx)(j,{id:e,value:s,onChange:e=>c(e.target.value),rows:6,className:`font-mono`}),(0,U.jsxs)(`div`,{className:`flex gap-2`,children:[(0,U.jsx)(f,{size:`sm`,variant:`secondary`,disabled:s===r||o,onClick:()=>a(s),children:`Save`}),(0,U.jsx)(f,{size:`sm`,variant:`ghost`,disabled:s===i||o,onClick:()=>{c(i),a(i)},children:`Reset to default`})]})]})}var st={id:`4f3c2b1a-7e6d-5c4b-3a2f-1e0d9c8b7a6f`,title:null,agent_title:`Refactor the auth flow`,osc_title:`claude`,branch:`alice/refactor-auth`,worktree_path:`/home/alice/code/app--refactor-auth`,status:`waiting_input`,agent_type:`claude-code`};function ct({initial:e,onSave:t,pending:n}){let[r,i]=(0,H.useState)(e),a=r.length>0?r:l;return(0,U.jsxs)(`div`,{className:`mt-3 flex flex-col gap-1.5`,children:[(0,U.jsxs)(`label`,{htmlFor:`tab-title-template`,className:`flex flex-col gap-0.5 text-sm text-fg`,children:[`Template`,(0,U.jsx)(`span`,{className:`text-xs text-fg-muted`,children:`Compose the label from the parts below. Empty falls back to the default.`})]}),(0,U.jsx)(A,{id:`tab-title-template`,value:r,onChange:e=>i(e.target.value),className:`font-mono`,placeholder:l}),(0,U.jsxs)(`p`,{className:`text-xs text-fg-muted`,children:[`Preview`,` `,(0,U.jsx)(`span`,{className:`ml-1 font-sans text-fg`,children:De(st,a)})]}),(0,U.jsx)(`dl`,{className:`mt-1 flex flex-col gap-0.5 text-xs`,children:o.map(([e,t])=>(0,U.jsxs)(`div`,{className:`flex gap-2`,children:[(0,U.jsx)(`dt`,{className:`w-24 shrink-0 font-mono text-fg-secondary`,children:`\${${e}}`}),(0,U.jsx)(`dd`,{className:`text-fg-muted`,children:t})]},e))}),(0,U.jsxs)(`div`,{className:`flex gap-2`,children:[(0,U.jsx)(f,{size:`sm`,variant:`secondary`,disabled:r===e||n,onClick:()=>t(r),children:`Save`}),(0,U.jsx)(f,{size:`sm`,variant:`ghost`,disabled:r==="${name}"||n,onClick:()=>{i(l),t(l)},children:`Reset to default`})]})]})}function lt(){let e=M(),t=V().data?.find(t=>t.id===e),n=P(e??void 0),o=I(e??``),[s,c]=(0,H.useState)(!1),[l,v]=(0,H.useState)(``),y=n.data?.allowSkipPermissions===!0,b=e=>o.mutate({allowSkipPermissions:e},{onSuccess:()=>{c(!1),v(``)},onError:e=>r.error(e.message)}),x=e=>t=>o.mutate({[e]:t},{onError:e=>r.error(e.message)});return(0,U.jsxs)(`div`,{children:[(0,U.jsx)(G,{children:`Sessions`}),(0,U.jsx)(`p`,{className:`mb-3 text-xs text-fg-secondary`,children:`Permission prompts are on by default, everywhere. Skipping them requires this profile gate, a per-account opt-in, and a per-session toggle — and the daemon re-checks all three on every launch, resume, and hand-off.`}),(0,U.jsx)(W,{label:`Allow skipping permission prompts`,description:y?`The gate is open: opted-in accounts can start prompt-free sessions.`:`The gate is closed: every session keeps its permission prompts.`,htmlFor:`gate`,children:(0,U.jsx)(T,{id:`gate`,checked:y,onCheckedChange:e=>{e?c(!0):b(!1)}})}),(0,U.jsx)(it,{}),(0,U.jsx)(ot,{}),(0,U.jsxs)(`div`,{className:`mt-5`,children:[(0,U.jsx)(G,{note:`What the new-agent and new-terminal modals open with — everything stays editable per session.`,children:`New session defaults`}),n.data&&(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(at,{kind:`agent`,heading:`New agents`,settings:n.data,onSave:e=>o.mutate({sessionDefaults:e},{onError:e=>r.error(e.message)}),pending:o.isPending},`${e}:agent-seed`),(0,U.jsx)(at,{kind:`terminal`,heading:`New terminals`,settings:n.data,onSave:e=>o.mutate({sessionDefaults:e},{onError:e=>r.error(e.message)}),pending:o.isPending},`${e}:terminal-seed`)]})]}),(0,U.jsxs)(`div`,{className:`mt-5`,children:[(0,U.jsx)(G,{note:`Sent to the agent as its opening message when a session starts. Leave a box empty to send no preamble.`,children:`Launch text`}),n.data&&(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(q,{id:`onboarding-template`,label:`New worktree`,description:`For a freshly created worktree. Use {{rules}} where the repo's onboarding notes should appear.`,initial:n.data.onboardingTemplate??i,defaultText:i,onSave:x(`onboardingTemplate`),pending:o.isPending},`${e}:onboarding`),(0,U.jsx)(q,{id:`concurrent-template`,label:`Existing / shared worktree`,description:`For a session joining a worktree other agents may already be working in.`,initial:n.data.concurrentTemplate??u,defaultText:u,onSave:x(`concurrentTemplate`),pending:o.isPending},`${e}:concurrent`),(0,U.jsx)(q,{id:`restart-template`,label:`Resume after restart`,description:`Sent when a session resumes after a daemon restart or machine reboot — its processes are gone.`,initial:n.data.restartTemplate??a,defaultText:a,onSave:x(`restartTemplate`),pending:o.isPending},`${e}:restart`)]})]}),(0,U.jsxs)(`div`,{className:`mt-5`,children:[(0,U.jsx)(G,{note:`How each session's tab and sidebar label is composed from its parts.`,children:`Tab title`}),n.data&&(0,U.jsx)(ct,{initial:n.data.tabTitleTemplate??"${name}",onSave:x(`tabTitleTemplate`),pending:o.isPending},`${e}:tab-title`)]}),(0,U.jsx)(_,{open:s,onOpenChange:e=>{e||(c(!1),v(``))},children:(0,U.jsxs)(m,{children:[(0,U.jsxs)(d,{children:[(0,U.jsxs)(h,{className:`flex items-center gap-2`,children:[(0,U.jsx)(Ye,{className:`size-5 text-danger`}),`Run agents without permission prompts?`]}),(0,U.jsx)(g,{asChild:!0,children:(0,U.jsxs)(`div`,{className:`flex flex-col gap-2 text-sm`,children:[(0,U.jsx)(`p`,{children:`A prompt-free agent acts unattended, with your credentials, inside its worktree — and nothing technically stops a shell command from reaching outside it. It can:`}),(0,U.jsxs)(`ul`,{className:`list-disc pl-5 text-fg-secondary`,children:[(0,U.jsx)(`li`,{children:`run any shell command without asking first,`}),(0,U.jsx)(`li`,{children:`modify, delete, or exfiltrate files your user can reach,`}),(0,U.jsx)(`li`,{children:`install dependencies and execute the network requests they make,`}),(0,U.jsx)(`li`,{children:`push branches or call remote APIs with the credentials it finds.`})]}),(0,U.jsx)(`p`,{children:`Only open this gate if every account you opt in runs work you would trust a colleague to run unsupervised on this machine.`}),(0,U.jsx)(`p`,{className:`text-fg-muted`,children:`Opening it also records the agent’s own bypass-permissions acceptance for this profile’s accounts, so the skip actually takes effect.`})]})})]}),(0,U.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,U.jsxs)(he,{htmlFor:`confirm-name`,children:[`Type `,(0,U.jsx)(`span`,{className:`font-mono text-fg`,children:t?.name}),` to confirm`]}),(0,U.jsx)(A,{id:`confirm-name`,value:l,onChange:e=>v(e.target.value),className:`font-mono`,autoFocus:!0})]}),(0,U.jsxs)(p,{children:[(0,U.jsx)(f,{variant:`ghost`,onClick:()=>{c(!1),v(``)},children:`Cancel`}),(0,U.jsx)(f,{variant:`danger`,disabled:l!==t?.name||o.isPending,onClick:()=>b(!0),children:`Open the gate`})]})]})})]})}var ut={desktop:!0,sound:!1,muted_projects:[]};function dt(){let e=M(),t=P(e??void 0),n=I(e??``),i=ae(e??void 0),a={...ut,...t.data?.notifications??{}},o=e=>n.mutate({notifications:e},{onError:e=>r.error(e.message)});return(0,U.jsxs)(`div`,{children:[(0,U.jsx)(G,{note:`Delivery lands in a later phase`,children:`Notifications`}),(0,U.jsx)(W,{label:`Desktop notification on waiting`,description:`When a session flips to waiting for input.`,htmlFor:`notify-desktop`,children:(0,U.jsx)(T,{id:`notify-desktop`,checked:a.desktop,onCheckedChange:e=>o({...a,desktop:e})})}),(0,U.jsx)(W,{label:`Sound`,htmlFor:`notify-sound`,children:(0,U.jsx)(T,{id:`notify-sound`,checked:a.sound,onCheckedChange:e=>o({...a,sound:e})})}),(0,U.jsx)(W,{label:`Muted projects`,description:`No notifications from these projects.`,children:(0,U.jsxs)(`span`,{className:`text-2xs text-fg-muted tabular-nums`,children:[a.muted_projects.length,` muted`]})}),(0,U.jsx)(`div`,{className:`flex flex-col gap-1`,children:i.data?.map(e=>(0,U.jsxs)(`label`,{className:`flex items-center gap-2 rounded-md px-2 py-1 text-sm text-fg-secondary hover:bg-elevated`,children:[(0,U.jsx)(T,{checked:a.muted_projects.includes(e.id),onCheckedChange:t=>o({...a,muted_projects:t?[...a.muted_projects,e.id]:a.muted_projects.filter(t=>t!==e.id)})}),e.name]},e.id))})]})}function ft(){let e=B();return(0,U.jsxs)(`div`,{children:[(0,U.jsx)(G,{note:`This browser only`,children:`Editor`}),(0,U.jsx)(W,{label:`Tab size`,description:`Spaces per indent level.`,htmlFor:`tab-size`,children:(0,U.jsx)(A,{id:`tab-size`,type:`number`,min:1,max:8,className:`w-20 tabular-nums`,value:e.editorTabSize,onChange:e=>z({editorTabSize:Number(e.target.value)||2})})}),(0,U.jsx)(W,{label:`Word wrap`,htmlFor:`word-wrap`,children:(0,U.jsx)(T,{id:`word-wrap`,checked:e.editorWordWrap,onCheckedChange:e=>z({editorWordWrap:e})})}),(0,U.jsx)(W,{label:`SSH host for editor links`,description:`Used for vscode:// and cursor:// remote links until the CLI supplies it automatically.`,htmlFor:`editor-link-host`,children:(0,U.jsx)(A,{id:`editor-link-host`,type:`text`,placeholder:`user@host`,className:`w-48`,value:e.editorLinkSshHost,onChange:e=>z({editorLinkSshHost:e.target.value})})})]})}function pt({value:e,isDefault:t,onRecord:n,onReset:r}){let[i,a]=(0,H.useState)(!1);return(0,U.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,U.jsx)(`button`,{type:`button`,onClick:()=>a(!0),onBlur:()=>a(!1),onKeyDown:e=>{if(!i)return;if(e.preventDefault(),e.stopPropagation(),e.key===`Escape`){a(!1);return}let t=Se(e.nativeEvent);t&&(n(t),a(!1))},className:v(`min-w-24 rounded-md px-2 py-1 text-center font-mono text-xs transition-colors`,i?`bg-action text-action-ink`:`bg-elevated text-fg hover:bg-border/70`),children:i?`Press keys…`:Ve(e)}),!t&&(0,U.jsxs)(`button`,{type:`button`,title:`Reset to default`,onClick:r,className:`rounded-md p-1 text-fg-gold transition-colors hover:bg-elevated hover:text-fg`,children:[(0,U.jsx)(qe,{className:`size-3.5`}),(0,U.jsx)(`span`,{className:`sr-only`,children:`Reset to default`})]})]})}function mt(){let e=M(),t=P(e??void 0),n=I(e??``),i=t.data?.hotkeys??{},a=(e,t)=>i[e]||t,o=new Map;for(let e of ze){let t=a(e.id,e.defaultBinding);o.set(t,(o.get(t)??0)+1)}let s=(e,t)=>n.mutate({hotkeys:{...i,[e]:t}},{onError:e=>r.error(e.message)}),c=e=>{let t={...i};delete t[e],n.mutate({hotkeys:t},{onError:e=>r.error(e.message)})};return(0,U.jsxs)(`div`,{children:[(0,U.jsx)(G,{children:`Hotkeys`}),(0,U.jsx)(`p`,{className:`mb-4 text-xs text-fg-muted`,children:`Per-profile keyboard shortcuts. Filetree navigation and terminal line-edits are fixed. Browser-reserved combos (⌘W, ⌘T, ⌘⇧B, …) can’t be captured by a web tab.`}),He.map(e=>{let t=ze.filter(t=>t.group===e);return t.length===0?null:(0,U.jsxs)(`div`,{className:`mb-5`,children:[(0,U.jsx)(`div`,{className:`mb-1 text-2xs font-medium uppercase tracking-wide text-fg-gold`,children:e}),t.map(e=>{let t=a(e.id,e.defaultBinding),n=(o.get(t)??0)>1,r=ie(t)?`Browser-reserved — won’t fire in a tab.`:n?`Conflicts with another shortcut.`:void 0;return(0,U.jsx)(W,{label:e.label,description:r,descriptionClassName:r?`text-interrupted`:void 0,children:(0,U.jsx)(pt,{value:t,isDefault:!i[e.id],onRecord:t=>s(e.id,t),onReset:()=>c(e.id)})},e.id)})]},e)})]})}var ht=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`,J=65,Y=Object.fromEntries([...ht].map((e,t)=>[e,t])),gt=`H`,_t=(()=>{let e=new Uint32Array(256);for(let t=0;t<256;t+=1){let n=t;for(let e=0;e<8;e+=1)n=n&1?3988292384^n>>>1:n>>>1;e[t]=n>>>0}return e})();function vt(e){let t=4294967295;for(let n of e)t=_t[(t^n)&255]^t>>>8;return((t^4294967295)>>>0).toString(16).padStart(8,`0`)}function yt(e){let t=``;for(let n of e)t+=String.fromCharCode(n);return btoa(t)}function bt(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e+=1)n[e]=t.charCodeAt(e);return n}async function xt(e){let t=new Blob([new TextEncoder().encode(e)]).stream().pipeThrough(new CompressionStream(`gzip`));return new Uint8Array(await new Response(t).arrayBuffer())}async function St(e){let t=new Blob([e]).stream().pipeThrough(new DecompressionStream(`gzip`));return new Response(t).text()}function X(e,t){let n=(t%J+J)%J,r=``;for(let t of e){let e=Y[t];r+=e===void 0?t:ht[(e+n)%J]}return r}async function Ct(e){let t=await xt(JSON.stringify(e));return X(yt(t)+vt(t),1+Math.floor(Math.random()*(J-1)))}async function wt(e){let t=e.trim(),n=t[0];if(!n||Y[n]===void 0)throw Error(`Not a settings export.`);let r=X(t,-((Y[n]-Y[gt]+J)%J));if(r.length<9||r[0]!==gt)throw Error(`Not a settings export.`);let i=r.slice(0,-8),a=r.slice(-8),o=bt(i);if(vt(o)!==a)throw Error(`Settings export is corrupt (checksum mismatch).`);return JSON.parse(await St(o))}var Z=[{id:`appearance`,label:`Appearance`,fields:[{key:`theme`,store:`theme`},{key:`uiFontSize`,store:`client`},{key:`terminalFontSize`,store:`client`},{key:`density`,store:`client`},{key:`reducedMotion`,store:`client`},{key:`terminalScrollback`,store:`client`},{key:`showAllProjectSessions`,store:`client`}]},{id:`profile`,label:`Profile`,fields:[{key:`branch_prefix`,store:`profileColumn`},{key:`icon`,store:`profileColumn`},{key:`icon_colour`,store:`profileColumn`}]},{id:`sessions`,label:`Sessions`,fields:[{key:`onboardingTemplate`,store:`profileSettings`},{key:`concurrentTemplate`,store:`profileSettings`},{key:`restartTemplate`,store:`profileSettings`},{key:`tabTitleTemplate`,store:`profileSettings`},{key:`sessionDefaults`,store:`profileSettings`},{key:`allowSkipPermissions`,store:`profileSettings`}]},{id:`editor`,label:`Editor`,fields:[{key:`editorTabSize`,store:`client`},{key:`editorWordWrap`,store:`client`},{key:`editorLinkSshHost`,store:`client`}]},{id:`hotkeys`,label:`Hotkeys`,fields:[{key:`hotkeys`,store:`profileSettings`}]}];function Tt(e,t){switch(e.store){case`client`:return t.client[e.key];case`theme`:return t.theme;case`profileSettings`:return t.profileSettings[e.key];case`profileColumn`:return t.profile[e.key]}}function Et(e,t){let n={};for(let r of Z){if(!e.includes(r.id))continue;let i={};for(let e of r.fields){let n=Tt(e,t);n!==void 0&&(i[e.key]=n)}Object.keys(i).length>0&&(n[r.id]=i)}return n}function Dt(e,t){if(!e||typeof e!=`object`)return[];let n=e,r={},i={},a={},o=[];for(let e of Z){let s=n[e.id];if(!s||typeof s!=`object`)continue;let c=s,l=!1;for(let n of e.fields){if(!(n.key in c))continue;l=!0;let e=c[n.key];n.store===`client`?r[n.key]=e:n.store===`theme`?t.setTheme(e):n.store===`profileSettings`?i[n.key]=e:a[n.key]=e}l&&o.push(e.label)}return Object.keys(r).length>0&&t.setClient(r),Object.keys(i).length>0&&t.patchProfileSettings(i),Object.keys(a).length>0&&t.patchProfileColumns(a),o}function Ot(){let e=M(),t=P(e??void 0),n=V().data?.find(t=>t.id===e),i=I(e??``),a=L(),[o,s]=(0,H.useState)(``),[c,l]=(0,H.useState)(``),[u,d]=(0,H.useState)(!1),[p,m]=(0,H.useState)(!1),[h,g]=(0,H.useState)(!1),[_,v]=(0,H.useState)(()=>Object.fromEntries(Z.map(e=>[e.id,!0]))),y=async()=>{g(!0);try{let t=Dt(await wt(o.trim()),{setClient:e=>z(e),setTheme:e=>{typeof e==`string`&&N(e)},patchProfileSettings:e=>i.mutate(e,{onError:e=>r.error(e.message)}),patchProfileColumns:t=>{e&&a.mutate({id:e,...t},{onError:e=>r.error(e.message)})}});t.length===0?r.error(`Nothing recognised to import.`):(r.success(`Imported ${t.join(`, `)}.`),s(``))}catch(e){r.error(e.message)}finally{g(!1)}},b=async()=>{g(!0);try{let e=Et(Z.filter(e=>_[e.id]).map(e=>e.id),{client:xe(),theme:we(),profileSettings:t.data??{},profile:n??{}});l(await Ct(e)),d(!1)}finally{g(!1)}};return(0,U.jsxs)(`div`,{children:[(0,U.jsx)(G,{children:`Sync`}),(0,U.jsx)(`p`,{className:`mb-5 text-xs text-fg-muted`,children:`Carry your settings between machines as one string. Accounts, repositories, and anything machine-specific are never included. Applies to this profile.`}),(0,U.jsxs)(`div`,{className:`mb-6`,children:[(0,U.jsx)(`h3`,{className:`text-sm font-medium text-fg`,children:`Import`}),(0,U.jsx)(`p`,{className:`mb-2 text-xs text-fg-muted`,children:`Paste an exported string — only the settings it carries are updated.`}),(0,U.jsx)(j,{value:o,onChange:e=>s(e.target.value),onKeyDown:e=>e.stopPropagation(),placeholder:`Paste a settings export…`,rows:3,spellCheck:!1,className:`resize-y font-mono text-xs`}),(0,U.jsx)(`div`,{className:`mt-2`,children:(0,U.jsx)(f,{size:`sm`,disabled:!o.trim()||h,onClick:()=>void y(),children:`Import`})})]}),(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`h3`,{className:`text-sm font-medium text-fg`,children:`Export`}),(0,U.jsxs)(`button`,{type:`button`,onClick:()=>m(e=>!e),className:`mb-2 mt-1 flex items-center gap-1 text-xs text-fg-secondary transition-colors hover:text-fg`,children:[p?(0,U.jsx)(ee,{className:`size-3.5`}):(0,U.jsx)(te,{className:`size-3.5`}),`Choose what to include`]}),p&&(0,U.jsx)(`div`,{className:`mb-3 flex flex-col gap-2 pl-1`,children:Z.map(e=>(0,U.jsxs)(`label`,{className:`flex items-center gap-2 text-sm text-fg`,children:[(0,U.jsx)(T,{checked:_[e.id]??!1,onCheckedChange:t=>v(n=>({...n,[e.id]:t}))}),e.label]},e.id))}),(0,U.jsx)(f,{size:`sm`,disabled:h,onClick:()=>void b(),children:`Export`}),c&&(0,U.jsxs)(`div`,{className:`mt-2`,children:[(0,U.jsx)(j,{readOnly:!0,value:c,rows:3,spellCheck:!1,onFocus:e=>e.currentTarget.select(),className:`resize-y font-mono text-xs`}),(0,U.jsx)(`div`,{className:`mt-2`,children:(0,U.jsxs)(f,{size:`sm`,variant:`secondary`,onClick:()=>{navigator.clipboard?.writeText(c),d(!0)},children:[u?(0,U.jsx)(S,{}):(0,U.jsx)(w,{}),u?`Copied`:`Copy`]})})]})]})]})}function kt({repo:e}){let t=Be(),n=Ne(),[i,a]=(0,H.useState)(e.default_base_branch),[o,s]=(0,H.useState)(e.onboarding_notes??``),c=e=>r.error(e.message);return(0,U.jsxs)(`div`,{className:`mb-4 rounded-lg bg-surface p-3`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-sm text-fg`,children:e.path}),(0,U.jsx)(`span`,{className:`shrink-0 text-2xs text-fg-muted tabular-nums`,children:e.last_fetched_at?`fetched ${new Date(e.last_fetched_at).toLocaleString()}`:`never fetched`}),(0,U.jsxs)(f,{size:`sm`,variant:`ghost`,disabled:n.isPending,onClick:()=>n.mutate(e.id,{onSuccess:()=>r.success(`Fetched.`),onError:c}),children:[(0,U.jsx)(_e,{}),`Fetch now`]})]}),(0,U.jsxs)(W,{label:`Default base branch`,htmlFor:`base-${e.id}`,className:`py-1.5`,children:[(0,U.jsx)(A,{id:`base-${e.id}`,value:i,onChange:e=>a(e.target.value),className:`w-40 font-mono`}),(0,U.jsx)(f,{size:`sm`,variant:`secondary`,disabled:i===e.default_base_branch||t.isPending,onClick:()=>t.mutate({id:e.id,default_base_branch:i},{onError:c}),children:`Save`})]}),(0,U.jsx)(W,{label:`Periodic fetch`,description:`Fetched on open and on the daemon's interval while sessions are active.`,htmlFor:`fetch-${e.id}`,className:`py-1.5`,children:(0,U.jsx)(T,{id:`fetch-${e.id}`,checked:e.fetch_enabled,onCheckedChange:n=>t.mutate({id:e.id,fetch_enabled:n},{onError:c})})}),(0,U.jsxs)(`div`,{className:`mt-1.5 flex flex-col gap-1.5`,children:[(0,U.jsxs)(`label`,{htmlFor:`notes-${e.id}`,className:`flex flex-col gap-0.5 text-sm text-fg`,children:[`Onboarding notes`,(0,U.jsx)(`span`,{className:`text-xs text-fg-muted`,children:`Standing setup rules, injected into every fresh worktree. Agents update them via .puddle/onboarding-notes.md.`})]}),(0,U.jsx)(j,{id:`notes-${e.id}`,value:o,onChange:e=>s(e.target.value),rows:4,className:`font-mono`}),(0,U.jsx)(`div`,{children:(0,U.jsx)(f,{size:`sm`,variant:`secondary`,disabled:o===(e.onboarding_notes??``)||t.isPending,onClick:()=>t.mutate({id:e.id,onboarding_notes:o},{onError:c}),children:`Save notes`})})]}),e.orphan_worktrees.length>0&&(0,U.jsxs)(`div`,{className:`mt-3 rounded-md bg-elevated p-2`,children:[(0,U.jsx)(`p`,{className:`text-xs text-fg-secondary`,children:`Orphan worktrees — directories no session claims. Puddle never deletes these automatically; remove them by hand if unwanted.`}),(0,U.jsx)(`ul`,{className:`mt-1 flex flex-col gap-0.5`,children:e.orphan_worktrees.map(e=>(0,U.jsx)(`li`,{className:`truncate font-mono text-2xs text-fg-muted`,children:e},e))})]})]})}function At(){let e=me();return(0,U.jsxs)(`div`,{children:[(0,U.jsx)(G,{children:`Repositories`}),e.data?.length===0&&(0,U.jsx)(`p`,{className:`text-sm text-fg-muted`,children:`No repositories yet — register one from the new-project flow on the dashboard.`}),e.data?.map(e=>(0,U.jsx)(kt,{repo:e},e.id))]})}function Q({label:e,description:t,field:n,config:i,min:a,step:o=1}){let s=R();return(0,U.jsx)(W,{label:e,description:t,htmlFor:`host-${n}`,children:(0,U.jsx)(A,{id:`host-${n}`,type:`number`,min:a,step:o,className:`w-32 tabular-nums`,defaultValue:i[n],onBlur:e=>{let t=Number(e.target.value);Number.isFinite(t)&&t!==i[n]&&s.mutate({[n]:t},{onError:e=>r.error(e.message)})}})})}function jt(){let e=Te(),t=R();return e.data?(0,U.jsxs)(`div`,{children:[(0,U.jsx)(G,{note:`Affects all profiles on this host`,children:`Host`}),(0,U.jsx)(Q,{label:`Fetch interval (minutes)`,description:`Periodic git fetch for repos with active sessions.`,field:`fetchIntervalMinutes`,config:e.data,min:1}),(0,U.jsx)(Q,{label:`Log size cap (bytes)`,description:`Per-terminal on-disk log cap.`,field:`logMaxBytes`,config:e.data,min:65536,step:1048576}),(0,U.jsx)(Q,{label:`Replay size (bytes)`,description:`Log tail sent to a terminal on attach.`,field:`replayBytes`,config:e.data,min:1024,step:65536}),(0,U.jsx)(Q,{label:`UI-state retention (days)`,description:`Stale workspace snapshots are swept at boot.`,field:`uiStateRetentionDays`,config:e.data,min:1}),(0,U.jsx)(W,{label:`Auto-resume`,description:`Resume interrupted sessions automatically after a daemon restart.`,htmlFor:`host-autoResume`,children:(0,U.jsx)(T,{id:`host-autoResume`,checked:e.data.autoResume,onCheckedChange:e=>t.mutate({autoResume:e},{onError:e=>r.error(e.message)})})})]}):null}var $=[{id:`appearance`,label:`Appearance`,icon:ve,render:()=>(0,U.jsx)(Qe,{})},{id:`profile`,label:`Profile`,icon:ge,render:()=>(0,U.jsx)(et,{})},{id:`accounts`,label:`Accounts`,icon:Ze,render:()=>(0,U.jsx)(rt,{})},{id:`sessions`,label:`Sessions`,icon:Xe,render:()=>(0,U.jsx)(lt,{})},{id:`editor`,label:`Editor`,icon:We,render:()=>(0,U.jsx)(ft,{})},{id:`hotkeys`,label:`Hotkeys`,icon:Ke,render:()=>(0,U.jsx)(mt,{})},{id:`notifications`,label:`Notifications`,icon:Ue,render:()=>(0,U.jsx)(dt,{})},{id:`repositories`,label:`Repositories`,icon:ne,render:()=>(0,U.jsx)(At,{})},{id:`host`,label:`Host`,icon:Je,render:()=>(0,U.jsx)(jt,{})},{id:`sync`,label:`Sync`,icon:_e,render:()=>(0,U.jsx)(Ot,{})}],Mt={terminal:`sessions`};function Nt(){let e=Ae(),t=e===null?null:Mt[e]??e,n=$.find(e=>e.id===t)??$[0];return(0,U.jsx)(_,{open:e!==null,onOpenChange:e=>!e&&je(),children:(0,U.jsxs)(m,{wide:!0,className:`grid h-[34rem] grid-cols-[14rem_1fr] gap-0 overflow-hidden p-0`,children:[(0,U.jsx)(h,{className:`sr-only`,children:`Settings`}),(0,U.jsxs)(`nav`,{className:`flex flex-col gap-1 bg-surface p-2.5 pr-6`,children:[(0,U.jsx)(`span`,{className:`px-2.5 py-2 text-2xs font-medium uppercase tracking-wide text-fg-muted`,children:`Settings`}),$.map(({id:e,label:t,icon:r})=>(0,U.jsxs)(`button`,{onClick:()=>re(e),className:v(`flex items-center gap-2.5 rounded-md px-2.5 py-1.5 text-left text-sm transition-colors`,e===n.id?`bg-elevated text-fg`:`text-fg-secondary hover:bg-elevated hover:text-fg`),children:[(0,U.jsx)(r,{className:`size-4 shrink-0`}),t]},e))]}),(0,U.jsx)(`div`,{className:`overflow-y-auto p-5`,children:n.render()})]})})}export{Nt as SettingsDialog};
|