react-grab 0.0.75 → 0.0.77

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.
@@ -951,7 +951,7 @@ function cleanChildren(parent, current, marker, replacement) {
951
951
 
952
952
  // dist/styles.css
953
953
  var styles_default = `/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */
954
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-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-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-duration:initial;--tw-ease:initial;--tw-contain-size:initial;--tw-contain-layout:initial;--tw-contain-paint:initial;--tw-contain-style:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-black:#000;--color-white:#fff;--spacing:.25rem;--font-weight-medium:500;--radius-xs:.125rem;--ease-out:cubic-bezier(0,0,.2,1);--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-grab-pink:#b21c8e;--color-grab-purple:#d239c0;--color-label-tag-border:#730079;--color-label-muted:#767676}}@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;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}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.top-0{top:calc(var(--spacing)*0)}.left-0{left:calc(var(--spacing)*0)}.z-2147483645{z-index:2147483645}.z-2147483646{z-index:2147483646}.z-2147483647{z-index:2147483647}.z-\\[2147483645\\]{z-index:2147483645}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing)*0)}.-mt-px{margin-top:-1px}.-ml-\\[2px\\]{margin-left:-2px}.ml-1{margin-left:calc(var(--spacing)*1)}.box-border{box-sizing:border-box}.flex{display:flex}.grid{display:grid}.hidden{display:none}.size-fit{width:fit-content;height:fit-content}.h-0{height:calc(var(--spacing)*0)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-5\\.5{height:calc(var(--spacing)*5.5)}.h-\\[7px\\]{height:7px}.h-\\[17px\\]{height:17px}.h-\\[18px\\]{height:18px}.h-fit{height:fit-content}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-4{min-height:calc(var(--spacing)*4)}.w-0{width:calc(var(--spacing)*0)}.w-0\\.5{width:calc(var(--spacing)*.5)}.w-1{width:calc(var(--spacing)*1)}.w-\\[7px\\]{width:7px}.w-\\[17px\\]{width:17px}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\\[280px\\]{max-width:280px}.flex-1{flex:1}.shrink{flex-shrink: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)}.scale-75{--tw-scale-x:75%;--tw-scale-y:75%;--tw-scale-z:75%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.cursor-crosshair{cursor:crosshair}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.flex-col{flex-direction:column}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-\\[3px\\]{gap:3px}.gap-\\[5px\\]{gap:5px}.gap-px{gap:1px}.self-stretch{align-self:stretch}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded-\\[1\\.5px\\]{border-radius:1.5px}.rounded-\\[1px\\]{border-radius:1px}.rounded-full{border-radius:3.40282e38px}.rounded-xs{border-radius:var(--radius-xs)}.rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.rounded-b-xs{border-bottom-right-radius:var(--radius-xs);border-bottom-left-radius:var(--radius-xs)}.border{border-style:var(--tw-border-style);border-width:1px}.\\[border-width\\:0\\.5px\\]{border-width:.5px}.\\[border-top-width\\:0\\.5px\\]{border-top-width:.5px}.border-none{--tw-border-style:none;border-style:none}.border-solid{--tw-border-style:solid;border-style:solid}.border-\\[\\#7e0002\\]{border-color:#7e0002}.border-\\[\\#B3B3B3\\]{border-color:#b3b3b3}.border-grab-purple{border-color:var(--color-grab-purple)}.border-grab-purple\\/40{border-color:#d239c066}@supports (color:color-mix(in lab, red, red)){.border-grab-purple\\/40{border-color:color-mix(in oklab,var(--color-grab-purple)40%,transparent)}}.border-grab-purple\\/50{border-color:#d239c080}@supports (color:color-mix(in lab, red, red)){.border-grab-purple\\/50{border-color:color-mix(in oklab,var(--color-grab-purple)50%,transparent)}}.border-label-tag-border{border-color:var(--color-label-tag-border)}.border-white{border-color:var(--color-white)}.border-t-\\[\\#D9D9D9\\]{border-top-color:#d9d9d9}.bg-\\[\\#F7F7F7\\]{background-color:#f7f7f7}.bg-black{background-color:var(--color-black)}.bg-grab-pink{background-color:var(--color-grab-pink)}.bg-grab-purple{background-color:var(--color-grab-purple)}.bg-grab-purple\\/5{background-color:#d239c00d}@supports (color:color-mix(in lab, red, red)){.bg-grab-purple\\/5{background-color:color-mix(in oklab,var(--color-grab-purple)5%,transparent)}}.bg-grab-purple\\/8{background-color:#d239c014}@supports (color:color-mix(in lab, red, red)){.bg-grab-purple\\/8{background-color:color-mix(in oklab,var(--color-grab-purple)8%,transparent)}}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.px-0{padding-inline:calc(var(--spacing)*0)}.px-1\\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-\\[2px\\]{padding-inline:2px}.px-\\[3px\\]{padding-inline:3px}.py-0{padding-block:calc(var(--spacing)*0)}.py-\\[2px\\]{padding-block:2px}.py-\\[3px\\]{padding-block:3px}.py-\\[5px\\]{padding-block:5px}.py-px{padding-block:1px}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-1\\.5{padding-top:calc(var(--spacing)*1.5)}.pr-1{padding-right:calc(var(--spacing)*1)}.pr-1\\.5{padding-right:calc(var(--spacing)*1.5)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pl-1\\.5{padding-left:calc(var(--spacing)*1.5)}.align-middle{vertical-align:middle}.font-\\[ui-monospace\\,\\'SFMono-Regular\\'\\,\\'SF_Mono\\'\\,\\'Menlo\\'\\,\\'Consolas\\'\\,\\'Liberation_Mono\\'\\,monospace\\]{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-\\[11\\.5px\\]{font-size:11.5px}.text-\\[11px\\]{font-size:11px}.text-\\[12px\\]{font-size:12px}.leading-3\\.5{--tw-leading:calc(var(--spacing)*3.5);line-height:calc(var(--spacing)*3.5)}.leading-4{--tw-leading:calc(var(--spacing)*4);line-height:calc(var(--spacing)*4)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.tracking-\\[-0\\.04em\\]{--tw-tracking:-.04em;letter-spacing:-.04em}.tracking-\\[-0\\.08em\\]{--tw-tracking:-.08em;letter-spacing:-.08em}.wrap-break-word{overflow-wrap:break-word}.whitespace-normal{white-space:normal}.text-\\[\\#0C0C0C\\]{color:#0c0c0c}.text-\\[\\#47004A\\]{color:#47004a}.text-\\[\\#71717a\\]{color:#71717a}.text-\\[\\#B91C1C\\]{color:#b91c1c}.text-\\[\\#c00002\\]{color:#c00002}.text-black{color:var(--color-black)}.text-label-muted{color:var(--color-label-muted)}.text-label-tag-border{color:var(--color-label-tag-border)}.text-white{color:var(--color-white)}.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,)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-100{opacity:1}.opacity-\\[0\\.99\\]{opacity:.99}.brightness-125{--tw-brightness:brightness(125%);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,)}.filter-\\[drop-shadow\\(0px_0px_4px_\\#51515180\\)\\]{filter:drop-shadow(0 0 4px #51515180)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-rows\\]{transition-property:grid-template-rows;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[width\\,height\\]{transition-property:width,height;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-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-none{transition-property:none}.duration-30{--tw-duration:30ms;transition-duration:30ms}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.will-change-\\[transform\\,width\\,height\\]{will-change:transform,width,height}.contain-layout{--tw-contain-layout:layout;contain:var(--tw-contain-size,)var(--tw-contain-layout,)var(--tw-contain-paint,)var(--tw-contain-style,)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\\[font-synthesis\\:none\\]{font-synthesis:none}@media (hover:hover){.hover\\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\\:bg-\\[\\#F5F5F5\\]:hover{background-color:#f5f5f5}.hover\\:bg-\\[\\#FEF2F2\\]:hover{background-color:#fef2f2}.hover\\:opacity-100:hover{opacity:1}}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-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-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-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-contain-size{syntax:"*";inherits:false}@property --tw-contain-layout{syntax:"*";inherits:false}@property --tw-contain-paint{syntax:"*";inherits:false}@property --tw-contain-style{syntax:"*";inherits:false}@keyframes pulse{50%{opacity:.5}}`;
954
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-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-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-duration:initial;--tw-ease:initial;--tw-contain-size:initial;--tw-contain-layout:initial;--tw-contain-paint:initial;--tw-contain-style:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-black:#000;--color-white:#fff;--spacing:.25rem;--font-weight-medium:500;--radius-xs:.125rem;--ease-out:cubic-bezier(0,0,.2,1);--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-grab-pink:#b21c8e;--color-grab-purple:#d239c0;--color-label-tag-border:#730079;--color-label-muted:#767676}}@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;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}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.top-0{top:calc(var(--spacing)*0)}.left-0{left:calc(var(--spacing)*0)}.z-2147483645{z-index:2147483645}.z-2147483646{z-index:2147483646}.z-2147483647{z-index:2147483647}.z-\\[2147483645\\]{z-index:2147483645}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing)*0)}.-mt-px{margin-top:-1px}.-ml-\\[2px\\]{margin-left:-2px}.ml-1{margin-left:calc(var(--spacing)*1)}.box-border{box-sizing:border-box}.flex{display:flex}.grid{display:grid}.hidden{display:none}.size-fit{width:fit-content;height:fit-content}.h-0{height:calc(var(--spacing)*0)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-5\\.5{height:calc(var(--spacing)*5.5)}.h-\\[7px\\]{height:7px}.h-\\[17px\\]{height:17px}.h-\\[18px\\]{height:18px}.h-fit{height:fit-content}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-4{min-height:calc(var(--spacing)*4)}.w-0{width:calc(var(--spacing)*0)}.w-0\\.5{width:calc(var(--spacing)*.5)}.w-1{width:calc(var(--spacing)*1)}.w-\\[7px\\]{width:7px}.w-\\[17px\\]{width:17px}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\\[280px\\]{max-width:280px}.flex-1{flex:1}.shrink{flex-shrink: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)}.scale-75{--tw-scale-x:75%;--tw-scale-y:75%;--tw-scale-z:75%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.cursor-crosshair{cursor:crosshair}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.flex-col{flex-direction:column}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-\\[3px\\]{gap:3px}.gap-\\[5px\\]{gap:5px}.gap-px{gap:1px}.self-stretch{align-self:stretch}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded-\\[1\\.5px\\]{border-radius:1.5px}.rounded-\\[1px\\]{border-radius:1px}.rounded-full{border-radius:3.40282e38px}.rounded-xs{border-radius:var(--radius-xs)}.rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.rounded-b-xs{border-bottom-right-radius:var(--radius-xs);border-bottom-left-radius:var(--radius-xs)}.border{border-style:var(--tw-border-style);border-width:1px}.\\[border-width\\:0\\.5px\\]{border-width:.5px}.\\[border-top-width\\:0\\.5px\\]{border-top-width:.5px}.border-none{--tw-border-style:none;border-style:none}.border-solid{--tw-border-style:solid;border-style:solid}.border-\\[\\#7e0002\\]{border-color:#7e0002}.border-\\[\\#B3B3B3\\]{border-color:#b3b3b3}.border-grab-purple{border-color:var(--color-grab-purple)}.border-grab-purple\\/40{border-color:#d239c066}@supports (color:color-mix(in lab, red, red)){.border-grab-purple\\/40{border-color:color-mix(in oklab,var(--color-grab-purple)40%,transparent)}}.border-grab-purple\\/50{border-color:#d239c080}@supports (color:color-mix(in lab, red, red)){.border-grab-purple\\/50{border-color:color-mix(in oklab,var(--color-grab-purple)50%,transparent)}}.border-label-tag-border{border-color:var(--color-label-tag-border)}.border-white{border-color:var(--color-white)}.border-t-\\[\\#D9D9D9\\]{border-top-color:#d9d9d9}.bg-\\[\\#F7F7F7\\]{background-color:#f7f7f7}.bg-black{background-color:var(--color-black)}.bg-grab-pink{background-color:var(--color-grab-pink)}.bg-grab-purple{background-color:var(--color-grab-purple)}.bg-grab-purple\\/5{background-color:#d239c00d}@supports (color:color-mix(in lab, red, red)){.bg-grab-purple\\/5{background-color:color-mix(in oklab,var(--color-grab-purple)5%,transparent)}}.bg-grab-purple\\/8{background-color:#d239c014}@supports (color:color-mix(in lab, red, red)){.bg-grab-purple\\/8{background-color:color-mix(in oklab,var(--color-grab-purple)8%,transparent)}}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.px-0{padding-inline:calc(var(--spacing)*0)}.px-1\\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-\\[2px\\]{padding-inline:2px}.px-\\[3px\\]{padding-inline:3px}.py-0{padding-block:calc(var(--spacing)*0)}.py-\\[2px\\]{padding-block:2px}.py-\\[3px\\]{padding-block:3px}.py-\\[5px\\]{padding-block:5px}.py-px{padding-block:1px}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-1\\.5{padding-top:calc(var(--spacing)*1.5)}.pr-1{padding-right:calc(var(--spacing)*1)}.pr-1\\.5{padding-right:calc(var(--spacing)*1.5)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pl-1\\.5{padding-left:calc(var(--spacing)*1.5)}.align-middle{vertical-align:middle}.font-\\[ui-monospace\\,\\'SFMono-Regular\\'\\,\\'SF_Mono\\'\\,\\'Menlo\\'\\,\\'Consolas\\'\\,\\'Liberation_Mono\\'\\,monospace\\]{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-\\[11\\.5px\\]{font-size:11.5px}.text-\\[11px\\]{font-size:11px}.text-\\[12px\\]{font-size:12px}.leading-3\\.5{--tw-leading:calc(var(--spacing)*3.5);line-height:calc(var(--spacing)*3.5)}.leading-4{--tw-leading:calc(var(--spacing)*4);line-height:calc(var(--spacing)*4)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.tracking-\\[-0\\.04em\\]{--tw-tracking:-.04em;letter-spacing:-.04em}.tracking-\\[-0\\.08em\\]{--tw-tracking:-.08em;letter-spacing:-.08em}.wrap-break-word{overflow-wrap:break-word}.whitespace-normal{white-space:normal}.text-\\[\\#0C0C0C\\]{color:#0c0c0c}.text-\\[\\#47004A\\]{color:#47004a}.text-\\[\\#71717a\\]{color:#71717a}.text-\\[\\#B91C1C\\]{color:#b91c1c}.text-\\[\\#c00002\\]{color:#c00002}.text-black{color:var(--color-black)}.text-black\\/50{color:#00000080}@supports (color:color-mix(in lab, red, red)){.text-black\\/50{color:color-mix(in oklab,var(--color-black)50%,transparent)}}.text-label-muted{color:var(--color-label-muted)}.text-label-tag-border{color:var(--color-label-tag-border)}.text-white{color:var(--color-white)}.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,)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-100{opacity:1}.opacity-\\[0\\.99\\]{opacity:.99}.brightness-125{--tw-brightness:brightness(125%);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,)}.filter-\\[drop-shadow\\(0px_0px_4px_\\#51515180\\)\\]{filter:drop-shadow(0 0 4px #51515180)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-rows\\]{transition-property:grid-template-rows;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[width\\,height\\]{transition-property:width,height;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-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-none{transition-property:none}.duration-30{--tw-duration:30ms;transition-duration:30ms}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.will-change-\\[transform\\,width\\,height\\]{will-change:transform,width,height}.contain-layout{--tw-contain-layout:layout;contain:var(--tw-contain-size,)var(--tw-contain-layout,)var(--tw-contain-paint,)var(--tw-contain-style,)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\\[font-synthesis\\:none\\]{font-synthesis:none}@media (hover:hover){.hover\\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\\:bg-\\[\\#F5F5F5\\]:hover{background-color:#f5f5f5}.hover\\:bg-\\[\\#FEF2F2\\]:hover{background-color:#fef2f2}.hover\\:opacity-100:hover{opacity:1}}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-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-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-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-contain-size{syntax:"*";inherits:false}@property --tw-contain-layout{syntax:"*";inherits:false}@property --tw-contain-paint{syntax:"*";inherits:false}@property --tw-contain-style{syntax:"*";inherits:false}@keyframes pulse{50%{opacity:.5}}`;
955
955
 
956
956
  // src/utils/is-keyboard-event-triggered-by-input.ts
957
957
  var FORM_TAGS_AND_ROLES = [
@@ -1080,7 +1080,7 @@ var buildOpenFileUrl = (filePath, lineNumber) => {
1080
1080
  };
1081
1081
 
1082
1082
  // src/constants.ts
1083
- var VERSION = "0.0.75";
1083
+ var VERSION = "0.0.77";
1084
1084
  var VIEWPORT_MARGIN_PX = 8;
1085
1085
  var OFFSCREEN_POSITION = -1e3;
1086
1086
  var SELECTION_LERP_FACTOR = 0.95;
@@ -1090,6 +1090,7 @@ var SELECTION_CURSOR_SETTLE_DELAY_MS = 500;
1090
1090
  var BLUR_DEACTIVATION_THRESHOLD_MS = 500;
1091
1091
  var INPUT_FOCUS_ACTIVATION_DELAY_MS = 150;
1092
1092
  var DEFAULT_KEY_HOLD_DURATION_MS = 200;
1093
+ var DOUBLE_CLICK_THRESHOLD_MS = 250;
1093
1094
  var DRAG_THRESHOLD_PX = 2;
1094
1095
  var ELEMENT_DETECTION_THROTTLE_MS = 32;
1095
1096
  var BOUNDS_RECALC_INTERVAL_MS = 100;
@@ -3953,21 +3954,23 @@ var _tmpl$52 = /* @__PURE__ */ template(`<div role=button><div class="text-black
3953
3954
  var _tmpl$62 = /* @__PURE__ */ template(`<div class="[font-synthesis:none] contain-layout shrink-0 flex flex-col items-start px-2 py-[5px] w-auto h-fit self-stretch [border-top-width:0.5px] border-t-solid border-t-[#D9D9D9] antialiased rounded-t-none rounded-b-xs -mt-px"style="background-image:linear-gradient(in oklab 180deg, oklab(100% 0 0) 0%, oklab(96.1% 0 0) 5.92%)">`);
3954
3955
  var _tmpl$7 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex items-center justify-end gap-[5px] w-full h-fit"><button class="contain-layout shrink-0 flex items-center justify-center px-[3px] py-px rounded-xs bg-white [border-width:0.5px] border-solid border-[#B3B3B3] cursor-pointer transition-all hover:bg-[#F5F5F5] h-[17px]"><span class="text-black text-[11px] leading-3.5 tracking-[-0.04em] font-sans font-medium">No</span></button><button class="contain-layout shrink-0 flex items-center justify-center gap-1 px-[3px] py-px rounded-xs bg-white [border-width:0.5px] border-solid border-[#7e0002] cursor-pointer transition-all hover:bg-[#FEF2F2] h-[17px]"><span class="text-[#B91C1C] text-[11px] leading-3.5 tracking-[-0.04em] font-sans font-medium">Yes`);
3955
3956
  var _tmpl$8 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex flex-col justify-center items-end gap-1 w-fit h-fit"><div class="contain-layout shrink-0 flex items-center gap-1 pt-1 px-1.5 w-full h-fit"><span class="text-black text-[12px] leading-4 shrink-0 tracking-[-0.04em] font-sans font-medium w-fit h-fit">Discard prompt?`);
3956
- var _tmpl$9 = /* @__PURE__ */ template(`<button class="contain-layout shrink-0 flex items-center justify-center px-[3px] py-px rounded-xs bg-white [border-width:0.5px] border-solid border-[#B3B3B3] cursor-pointer transition-all hover:bg-[#F5F5F5] h-[17px]"><span class="text-black text-[11px] leading-3.5 tracking-[-0.04em] font-sans font-medium">Undo`);
3957
- var _tmpl$0 = /* @__PURE__ */ template(`<button class="contain-layout shrink-0 flex items-center justify-center px-[3px] py-px rounded-xs bg-white [border-width:0.5px] border-solid border-[#B3B3B3] cursor-pointer transition-all hover:bg-[#F5F5F5] h-[17px]"><span class="text-black text-[11px] leading-3.5 tracking-[-0.04em] font-sans font-medium">Ok`);
3958
- var _tmpl$1 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex items-center justify-end gap-[5px] w-full h-fit">`);
3959
- var _tmpl$10 = /* @__PURE__ */ template(`<div class="[font-synthesis:none] contain-layout shrink-0 flex flex-col justify-center items-end rounded-xs bg-white antialiased w-fit h-fit"><div class="contain-layout shrink-0 flex items-center gap-1 pt-1.5 pb-1 px-1.5 w-full h-fit"><span class="text-black text-[12px] leading-4 shrink-0 tracking-[-0.04em] font-sans font-medium w-fit h-fit tabular-nums">`);
3960
- var _tmpl$11 = /* @__PURE__ */ template(`<button data-react-grab-ignore-events class="contain-layout shrink-0 flex flex-col items-start rounded-xs bg-white [border-width:0.5px] border-solid border-[#B3B3B3] p-1 size-fit cursor-pointer ml-1 transition-none hover:scale-105"><div data-react-grab-ignore-events class="shrink-0 w-[7px] h-[7px] rounded-[1px] bg-black pointer-events-none">`);
3961
- var _tmpl$12 = /* @__PURE__ */ template(`<div class="shrink-0 flex justify-between items-end w-full min-h-4"><textarea data-react-grab-ignore-events class="text-black text-[12px] leading-4 tracking-[-0.04em] font-medium bg-transparent border-none outline-none resize-none flex-1 p-0 m-0 opacity-50 wrap-break-word overflow-y-auto"placeholder="type to edit"rows=1 disabled style=field-sizing:content;min-height:16px;max-height:95px;scrollbar-width:none>`);
3962
- var _tmpl$13 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex flex-col justify-center items-start gap-1 w-fit h-fit max-w-[280px]"><div class="contain-layout shrink-0 flex items-center gap-1 pt-1 px-1.5 w-auto h-fit"><div class="contain-layout flex items-center px-0 py-px w-auto h-fit rounded-[1.5px] gap-[3px]"><span class="text-[12px] leading-4 tracking-[-0.04em] font-sans font-medium w-auto h-fit whitespace-normal text-[#71717a] animate-pulse tabular-nums">`);
3963
- var _tmpl$14 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex items-center gap-px w-fit h-fit">`);
3964
- var _tmpl$15 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex items-center gap-1 w-fit h-fit"><span class="text-label-muted text-[12px] leading-4 shrink-0 tracking-[-0.04em] font-sans font-medium w-fit h-fit">Press</span><div class="contain-layout shrink-0 flex flex-col items-start px-[3px] py-[3px] rounded-xs bg-white [border-width:0.5px] border-solid border-[#B3B3B3] size-fit"></div><span class="text-label-muted text-[12px] leading-4 shrink-0 tracking-[-0.04em] font-sans font-medium w-fit h-fit">to edit`);
3965
- var _tmpl$16 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex flex-col justify-center items-start gap-1 w-fit h-fit"><div></div><div class="grid transition-[grid-template-rows] duration-30 ease-out self-stretch"><div>`);
3966
- var _tmpl$17 = /* @__PURE__ */ template(`<button>`);
3967
- var _tmpl$18 = /* @__PURE__ */ template(`<button class="contain-layout shrink-0 flex flex-col items-start px-[3px] py-[3px] rounded-xs bg-white [border-width:0.5px] border-solid border-[#B3B3B3] size-fit cursor-pointer transition-all hover:scale-105">`);
3968
- var _tmpl$19 = /* @__PURE__ */ template(`<div class="shrink-0 flex justify-between items-end w-full min-h-4"><textarea data-react-grab-ignore-events class="text-black text-[12px] leading-4 tracking-[-0.04em] font-medium bg-transparent border-none outline-none resize-none flex-1 p-0 m-0 wrap-break-word overflow-y-auto"rows=1 style=field-sizing:content;min-height:16px;max-height:95px;scrollbar-width:none></textarea><div class="flex items-center gap-0.5 ml-1 w-[17px] h-[17px] justify-end">`);
3969
- var _tmpl$20 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex flex-col justify-center items-start gap-1 w-fit h-fit max-w-[280px]"><div>`);
3970
- var _tmpl$21 = /* @__PURE__ */ template(`<div data-react-grab-ignore-events class="fixed font-sans antialiased transition-opacity duration-300 ease-out filter-[drop-shadow(0px_0px_4px_#51515180)] select-none"style=z-index:2147483647><div class="[font-synthesis:none] contain-layout flex items-center gap-[5px] rounded-xs bg-white antialiased w-fit h-fit p-0">`);
3957
+ var _tmpl$9 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex items-center justify-end gap-[5px] w-full h-fit"><button class="contain-layout shrink-0 flex items-center justify-center gap-1 px-[3px] py-px rounded-xs bg-white [border-width:0.5px] border-solid border-[#B3B3B3] cursor-pointer transition-all hover:bg-[#F5F5F5] h-[17px]"><span class="text-black text-[11px] leading-3.5 tracking-[-0.04em] font-sans font-medium">Ok`);
3958
+ var _tmpl$0 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex flex-col justify-center items-end gap-1 w-fit h-fit max-w-[280px]"><div class="contain-layout shrink-0 flex items-center gap-1 pt-1 px-1.5 w-full h-fit"><span class="text-[#B91C1C] text-[12px] leading-4 tracking-[-0.04em] font-sans font-medium">`);
3959
+ var _tmpl$1 = /* @__PURE__ */ template(`<button class="contain-layout shrink-0 flex items-center justify-center px-[3px] py-px rounded-xs bg-white [border-width:0.5px] border-solid border-[#B3B3B3] cursor-pointer transition-all hover:bg-[#F5F5F5] h-[17px]"><span class="text-black text-[11px] leading-3.5 tracking-[-0.04em] font-sans font-medium">Undo`);
3960
+ var _tmpl$10 = /* @__PURE__ */ template(`<button class="contain-layout shrink-0 flex items-center justify-center px-[3px] py-px rounded-xs bg-white [border-width:0.5px] border-solid border-[#B3B3B3] cursor-pointer transition-all hover:bg-[#F5F5F5] h-[17px]"><span class="text-black text-[11px] leading-3.5 tracking-[-0.04em] font-sans font-medium">Ok`);
3961
+ var _tmpl$11 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex items-center justify-end gap-[5px] w-full h-fit">`);
3962
+ var _tmpl$12 = /* @__PURE__ */ template(`<div class="[font-synthesis:none] contain-layout shrink-0 flex flex-col justify-center items-end rounded-xs bg-white antialiased w-fit h-fit"><div class="contain-layout shrink-0 flex items-center gap-1 pt-1.5 pb-1 px-1.5 w-full h-fit"><span class="text-black text-[12px] leading-4 shrink-0 tracking-[-0.04em] font-sans font-medium w-fit h-fit tabular-nums">`);
3963
+ var _tmpl$13 = /* @__PURE__ */ template(`<button data-react-grab-ignore-events class="contain-layout shrink-0 flex flex-col items-start rounded-xs bg-white [border-width:0.5px] border-solid border-[#B3B3B3] p-1 size-fit cursor-pointer ml-1 transition-none hover:scale-105"><div data-react-grab-ignore-events class="shrink-0 w-[7px] h-[7px] rounded-[1px] bg-black pointer-events-none">`);
3964
+ var _tmpl$14 = /* @__PURE__ */ template(`<div class="shrink-0 flex justify-between items-end w-full min-h-4"><textarea data-react-grab-ignore-events class="text-black text-[12px] leading-4 tracking-[-0.04em] font-medium bg-transparent border-none outline-none resize-none flex-1 p-0 m-0 opacity-50 wrap-break-word overflow-y-auto"placeholder="type to edit"rows=1 disabled style=field-sizing:content;min-height:16px;max-height:95px;scrollbar-width:none>`);
3965
+ var _tmpl$15 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex flex-col justify-center items-start gap-1 w-fit h-fit max-w-[280px]"><div class="contain-layout shrink-0 flex items-center gap-1 pt-1 px-1.5 w-auto h-fit"><div class="contain-layout flex items-center px-0 py-px w-auto h-fit rounded-[1.5px] gap-[3px]"><span class="text-[12px] leading-4 tracking-[-0.04em] font-sans font-medium w-auto h-fit whitespace-normal text-[#71717a] animate-pulse tabular-nums">`);
3966
+ var _tmpl$16 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex items-center gap-px w-fit h-fit">`);
3967
+ var _tmpl$17 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex items-center gap-1 w-fit h-fit"><span class="text-label-muted text-[12px] leading-4 shrink-0 tracking-[-0.04em] font-sans font-medium w-fit h-fit">Press</span><div class="contain-layout shrink-0 flex flex-col items-start px-[3px] py-[3px] rounded-xs bg-white [border-width:0.5px] border-solid border-[#B3B3B3] size-fit"></div><span class="text-label-muted text-[12px] leading-4 shrink-0 tracking-[-0.04em] font-sans font-medium w-fit h-fit">to edit`);
3968
+ var _tmpl$18 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex flex-col justify-center items-start gap-1 w-fit h-fit"><div></div><div class="grid transition-[grid-template-rows] duration-30 ease-out self-stretch"><div>`);
3969
+ var _tmpl$19 = /* @__PURE__ */ template(`<button>`);
3970
+ var _tmpl$20 = /* @__PURE__ */ template(`<button class="contain-layout shrink-0 flex flex-col items-start px-[3px] py-[3px] rounded-xs bg-white [border-width:0.5px] border-solid border-[#B3B3B3] size-fit cursor-pointer transition-all hover:scale-105">`);
3971
+ var _tmpl$21 = /* @__PURE__ */ template(`<div class="shrink-0 flex justify-between items-end w-full min-h-4"><textarea data-react-grab-ignore-events class="text-black text-[12px] leading-4 tracking-[-0.04em] font-medium bg-transparent border-none outline-none resize-none flex-1 p-0 m-0 wrap-break-word overflow-y-auto"rows=1 style=field-sizing:content;min-height:16px;max-height:95px;scrollbar-width:none></textarea><div class="flex items-center gap-0.5 ml-1 w-[17px] h-[17px] justify-end">`);
3972
+ var _tmpl$222 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex flex-col justify-center items-start gap-1 w-fit h-fit max-w-[280px]"><div>`);
3973
+ var _tmpl$23 = /* @__PURE__ */ template(`<div data-react-grab-ignore-events class="fixed font-sans antialiased transition-opacity duration-300 ease-out filter-[drop-shadow(0px_0px_4px_#51515180)] select-none"style=z-index:2147483647><div class="[font-synthesis:none] contain-layout flex items-center gap-[5px] rounded-xs bg-white antialiased w-fit h-fit p-0">`);
3971
3974
  var ARROW_HEIGHT = 8;
3972
3975
  var LABEL_GAP = 4;
3973
3976
  var IDLE_TIMEOUT_MS = 400;
@@ -4094,6 +4097,48 @@ var DismissConfirmation = (props) => {
4094
4097
  return _el$0;
4095
4098
  })();
4096
4099
  };
4100
+ var MAX_ERROR_LENGTH = 50;
4101
+ var ErrorConfirmation = (props) => {
4102
+ const handleKeyDown = (event) => {
4103
+ if (event.code === "Enter" || event.code === "Escape") {
4104
+ event.preventDefault();
4105
+ event.stopPropagation();
4106
+ props.onAcknowledge?.();
4107
+ }
4108
+ };
4109
+ const truncatedError = () => {
4110
+ const error = props.error;
4111
+ if (error.length <= MAX_ERROR_LENGTH) return error;
4112
+ return `${error.slice(0, MAX_ERROR_LENGTH)}\u2026`;
4113
+ };
4114
+ onMount(() => {
4115
+ window.addEventListener("keydown", handleKeyDown, {
4116
+ capture: true
4117
+ });
4118
+ });
4119
+ onCleanup(() => {
4120
+ window.removeEventListener("keydown", handleKeyDown, {
4121
+ capture: true
4122
+ });
4123
+ });
4124
+ return (() => {
4125
+ var _el$14 = _tmpl$0(), _el$15 = _el$14.firstChild, _el$16 = _el$15.firstChild;
4126
+ insert(_el$16, truncatedError);
4127
+ insert(_el$14, createComponent(BottomSection, {
4128
+ get children() {
4129
+ var _el$17 = _tmpl$9(), _el$18 = _el$17.firstChild; _el$18.firstChild;
4130
+ addEventListener(_el$18, "click", props.onAcknowledge);
4131
+ insert(_el$18, createComponent(IconReturn, {
4132
+ size: 10,
4133
+ "class": "text-black/50"
4134
+ }), null);
4135
+ return _el$17;
4136
+ }
4137
+ }), null);
4138
+ createRenderEffect(() => setAttribute(_el$16, "title", props.error));
4139
+ return _el$14;
4140
+ })();
4141
+ };
4097
4142
  var SelectionLabel = (props) => {
4098
4143
  let containerRef;
4099
4144
  let inputRef;
@@ -4175,6 +4220,8 @@ var SelectionLabel = (props) => {
4175
4220
  void props.inputValue;
4176
4221
  void props.hasAgent;
4177
4222
  void props.isInputExpanded;
4223
+ void props.isPendingDismiss;
4224
+ void props.error;
4178
4225
  requestAnimationFrame(measureContainer);
4179
4226
  });
4180
4227
  createEffect(() => {
@@ -4293,111 +4340,111 @@ var SelectionLabel = (props) => {
4293
4340
  return memo(() => props.visible !== false)() && (props.selectionBounds || shouldShowWithoutBounds());
4294
4341
  },
4295
4342
  get children() {
4296
- var _el$14 = _tmpl$21(), _el$21 = _el$14.firstChild;
4297
- _el$14.$$click = stopPropagation;
4298
- _el$14.$$mousedown = stopPropagation;
4299
- _el$14.$$pointerdown = handleContainerPointerDown;
4343
+ var _el$20 = _tmpl$23(), _el$27 = _el$20.firstChild;
4344
+ _el$20.$$click = stopPropagation;
4345
+ _el$20.$$mousedown = stopPropagation;
4346
+ _el$20.$$pointerdown = handleContainerPointerDown;
4300
4347
  var _ref$ = containerRef;
4301
- typeof _ref$ === "function" ? use(_ref$, _el$14) : containerRef = _el$14;
4302
- insert(_el$14, createComponent(Arrow, {
4348
+ typeof _ref$ === "function" ? use(_ref$, _el$20) : containerRef = _el$20;
4349
+ insert(_el$20, createComponent(Arrow, {
4303
4350
  get position() {
4304
4351
  return arrowPosition();
4305
4352
  },
4306
4353
  get leftPx() {
4307
4354
  return computedPosition().arrowLeft;
4308
4355
  }
4309
- }), _el$21);
4310
- insert(_el$14, createComponent(Show, {
4356
+ }), _el$27);
4357
+ insert(_el$20, createComponent(Show, {
4311
4358
  get when() {
4312
- return props.status === "copied" || props.status === "fading";
4359
+ return memo(() => !!(props.status === "copied" || props.status === "fading"))() && !props.error;
4313
4360
  },
4314
4361
  get children() {
4315
- var _el$15 = _tmpl$10(), _el$16 = _el$15.firstChild, _el$17 = _el$16.firstChild;
4316
- insert(_el$17, (() => {
4362
+ var _el$21 = _tmpl$12(), _el$22 = _el$21.firstChild, _el$23 = _el$22.firstChild;
4363
+ insert(_el$23, (() => {
4317
4364
  var _c$ = memo(() => !!props.hasAgent);
4318
4365
  return () => _c$() ? props.statusText ?? "Completed" : "Copied";
4319
4366
  })());
4320
- insert(_el$15, createComponent(Show, {
4367
+ insert(_el$21, createComponent(Show, {
4321
4368
  get when() {
4322
4369
  return props.onDismiss || props.onUndo;
4323
4370
  },
4324
4371
  get children() {
4325
4372
  return createComponent(BottomSection, {
4326
4373
  get children() {
4327
- var _el$18 = _tmpl$1();
4328
- insert(_el$18, createComponent(Show, {
4374
+ var _el$24 = _tmpl$11();
4375
+ insert(_el$24, createComponent(Show, {
4329
4376
  get when() {
4330
4377
  return props.onUndo;
4331
4378
  },
4332
4379
  get children() {
4333
- var _el$19 = _tmpl$9();
4334
- _el$19.$$click = () => props.onUndo?.();
4335
- return _el$19;
4380
+ var _el$25 = _tmpl$1();
4381
+ _el$25.$$click = () => props.onUndo?.();
4382
+ return _el$25;
4336
4383
  }
4337
4384
  }), null);
4338
- insert(_el$18, createComponent(Show, {
4385
+ insert(_el$24, createComponent(Show, {
4339
4386
  get when() {
4340
4387
  return props.onDismiss;
4341
4388
  },
4342
4389
  get children() {
4343
- var _el$20 = _tmpl$0();
4344
- _el$20.$$click = () => props.onDismiss?.();
4345
- return _el$20;
4390
+ var _el$26 = _tmpl$10();
4391
+ _el$26.$$click = () => props.onDismiss?.();
4392
+ return _el$26;
4346
4393
  }
4347
4394
  }), null);
4348
- return _el$18;
4395
+ return _el$24;
4349
4396
  }
4350
4397
  });
4351
4398
  }
4352
4399
  }), null);
4353
- return _el$15;
4400
+ return _el$21;
4354
4401
  }
4355
- }), _el$21);
4356
- insert(_el$21, createComponent(Show, {
4402
+ }), _el$27);
4403
+ insert(_el$27, createComponent(Show, {
4357
4404
  get when() {
4358
4405
  return props.status === "copying";
4359
4406
  },
4360
4407
  get children() {
4361
- var _el$22 = _tmpl$13(), _el$23 = _el$22.firstChild, _el$24 = _el$23.firstChild, _el$25 = _el$24.firstChild;
4362
- insert(_el$25, () => props.statusText ?? "Grabbing\u2026");
4363
- insert(_el$22, createComponent(BottomSection, {
4408
+ var _el$28 = _tmpl$15(), _el$29 = _el$28.firstChild, _el$30 = _el$29.firstChild, _el$31 = _el$30.firstChild;
4409
+ insert(_el$31, () => props.statusText ?? "Grabbing\u2026");
4410
+ insert(_el$28, createComponent(BottomSection, {
4364
4411
  get children() {
4365
- var _el$26 = _tmpl$12(), _el$27 = _el$26.firstChild;
4412
+ var _el$32 = _tmpl$14(), _el$33 = _el$32.firstChild;
4366
4413
  var _ref$2 = inputRef;
4367
- typeof _ref$2 === "function" ? use(_ref$2, _el$27) : inputRef = _el$27;
4368
- insert(_el$26, createComponent(Show, {
4414
+ typeof _ref$2 === "function" ? use(_ref$2, _el$33) : inputRef = _el$33;
4415
+ insert(_el$32, createComponent(Show, {
4369
4416
  get when() {
4370
4417
  return props.onAbort;
4371
4418
  },
4372
4419
  get children() {
4373
- var _el$28 = _tmpl$11();
4374
- _el$28.$$click = (event) => {
4420
+ var _el$34 = _tmpl$13();
4421
+ _el$34.$$click = (event) => {
4375
4422
  event.stopPropagation();
4376
4423
  props.onAbort?.();
4377
4424
  };
4378
- _el$28.$$pointerup = (event) => {
4425
+ _el$34.$$pointerup = (event) => {
4379
4426
  event.stopPropagation();
4380
4427
  props.onAbort?.();
4381
4428
  };
4382
- _el$28.$$mousedown = (event) => event.stopPropagation();
4383
- _el$28.$$pointerdown = (event) => event.stopPropagation();
4384
- return _el$28;
4429
+ _el$34.$$mousedown = (event) => event.stopPropagation();
4430
+ _el$34.$$pointerdown = (event) => event.stopPropagation();
4431
+ return _el$34;
4385
4432
  }
4386
4433
  }), null);
4387
- createRenderEffect(() => _el$27.value = props.inputValue ?? "");
4388
- return _el$26;
4434
+ createRenderEffect(() => _el$33.value = props.inputValue ?? "");
4435
+ return _el$32;
4389
4436
  }
4390
4437
  }), null);
4391
- return _el$22;
4438
+ return _el$28;
4392
4439
  }
4393
4440
  }), null);
4394
- insert(_el$21, createComponent(Show, {
4441
+ insert(_el$27, createComponent(Show, {
4395
4442
  get when() {
4396
4443
  return memo(() => !!isNotProcessing())() && !props.isInputExpanded;
4397
4444
  },
4398
4445
  get children() {
4399
- var _el$29 = _tmpl$16(), _el$30 = _el$29.firstChild, _el$32 = _el$30.nextSibling, _el$33 = _el$32.firstChild;
4400
- insert(_el$30, createComponent(ClickToCopyPill, {
4446
+ var _el$35 = _tmpl$18(), _el$36 = _el$35.firstChild, _el$38 = _el$36.nextSibling, _el$39 = _el$38.firstChild;
4447
+ insert(_el$36, createComponent(ClickToCopyPill, {
4401
4448
  onClick: handleSubmit,
4402
4449
  shrink: true,
4403
4450
  get hasParent() {
@@ -4407,19 +4454,19 @@ var SelectionLabel = (props) => {
4407
4454
  return props.hasAgent;
4408
4455
  }
4409
4456
  }), null);
4410
- insert(_el$30, createComponent(Show, {
4457
+ insert(_el$36, createComponent(Show, {
4411
4458
  get when() {
4412
4459
  return props.componentName;
4413
4460
  },
4414
4461
  get children() {
4415
- var _el$31 = _tmpl$14();
4416
- insert(_el$31, createComponent(ParentBadge, {
4462
+ var _el$37 = _tmpl$16();
4463
+ insert(_el$37, createComponent(ParentBadge, {
4417
4464
  get name() {
4418
4465
  return props.componentName;
4419
4466
  }
4420
4467
  }), null);
4421
- insert(_el$31, createComponent(ChevronSeparator, {}), null);
4422
- insert(_el$31, createComponent(TagBadge, {
4468
+ insert(_el$37, createComponent(ChevronSeparator, {}), null);
4469
+ insert(_el$37, createComponent(TagBadge, {
4423
4470
  get tagName() {
4424
4471
  return tagDisplay();
4425
4472
  },
@@ -4431,10 +4478,10 @@ var SelectionLabel = (props) => {
4431
4478
  showMono: true,
4432
4479
  shrink: true
4433
4480
  }), null);
4434
- return _el$31;
4481
+ return _el$37;
4435
4482
  }
4436
4483
  }), null);
4437
- insert(_el$30, createComponent(Show, {
4484
+ insert(_el$36, createComponent(Show, {
4438
4485
  get when() {
4439
4486
  return !props.componentName;
4440
4487
  },
@@ -4453,37 +4500,37 @@ var SelectionLabel = (props) => {
4453
4500
  });
4454
4501
  }
4455
4502
  }), null);
4456
- insert(_el$33, createComponent(BottomSection, {
4503
+ insert(_el$39, createComponent(BottomSection, {
4457
4504
  get children() {
4458
- var _el$34 = _tmpl$15(), _el$35 = _el$34.firstChild, _el$36 = _el$35.nextSibling;
4459
- insert(_el$36, createComponent(IconReturn, {
4505
+ var _el$40 = _tmpl$17(), _el$41 = _el$40.firstChild, _el$42 = _el$41.nextSibling;
4506
+ insert(_el$42, createComponent(IconReturn, {
4460
4507
  size: 10,
4461
4508
  "class": "opacity-[0.99] text-black"
4462
4509
  }));
4463
- return _el$34;
4510
+ return _el$40;
4464
4511
  }
4465
4512
  }));
4466
4513
  createRenderEffect((_p$) => {
4467
4514
  var _v$3 = cn("contain-layout shrink-0 flex items-center gap-1 pt-1 w-fit h-fit pl-1.5", props.componentName ? "pr-1.5" : "pr-1"), _v$4 = isIdle() ? "1fr" : "0fr", _v$5 = cn("overflow-hidden min-h-0", !isIdle() && "w-0");
4468
- _v$3 !== _p$.e && className(_el$30, _p$.e = _v$3);
4469
- _v$4 !== _p$.t && setStyleProperty(_el$32, "grid-template-rows", _p$.t = _v$4);
4470
- _v$5 !== _p$.a && className(_el$33, _p$.a = _v$5);
4515
+ _v$3 !== _p$.e && className(_el$36, _p$.e = _v$3);
4516
+ _v$4 !== _p$.t && setStyleProperty(_el$38, "grid-template-rows", _p$.t = _v$4);
4517
+ _v$5 !== _p$.a && className(_el$39, _p$.a = _v$5);
4471
4518
  return _p$;
4472
4519
  }, {
4473
4520
  e: void 0,
4474
4521
  t: void 0,
4475
4522
  a: void 0
4476
4523
  });
4477
- return _el$29;
4524
+ return _el$35;
4478
4525
  }
4479
4526
  }), null);
4480
- insert(_el$21, createComponent(Show, {
4527
+ insert(_el$27, createComponent(Show, {
4481
4528
  get when() {
4482
4529
  return memo(() => !!(isNotProcessing() && props.isInputExpanded))() && !props.isPendingDismiss;
4483
4530
  },
4484
4531
  get children() {
4485
- var _el$37 = _tmpl$20(), _el$38 = _el$37.firstChild;
4486
- insert(_el$38, createComponent(ClickToCopyPill, {
4532
+ var _el$43 = _tmpl$222(), _el$44 = _el$43.firstChild;
4533
+ insert(_el$44, createComponent(ClickToCopyPill, {
4487
4534
  onClick: handleSubmit,
4488
4535
  dimmed: true,
4489
4536
  shrink: true,
@@ -4494,19 +4541,19 @@ var SelectionLabel = (props) => {
4494
4541
  return props.hasAgent;
4495
4542
  }
4496
4543
  }), null);
4497
- insert(_el$38, createComponent(Show, {
4544
+ insert(_el$44, createComponent(Show, {
4498
4545
  get when() {
4499
4546
  return props.componentName;
4500
4547
  },
4501
4548
  get children() {
4502
- var _el$39 = _tmpl$14();
4503
- insert(_el$39, createComponent(ParentBadge, {
4549
+ var _el$45 = _tmpl$16();
4550
+ insert(_el$45, createComponent(ParentBadge, {
4504
4551
  get name() {
4505
4552
  return props.componentName;
4506
4553
  }
4507
4554
  }), null);
4508
- insert(_el$39, createComponent(ChevronSeparator, {}), null);
4509
- insert(_el$39, createComponent(TagBadge, {
4555
+ insert(_el$45, createComponent(ChevronSeparator, {}), null);
4556
+ insert(_el$45, createComponent(TagBadge, {
4510
4557
  get tagName() {
4511
4558
  return tagDisplay();
4512
4559
  },
@@ -4519,10 +4566,10 @@ var SelectionLabel = (props) => {
4519
4566
  shrink: true,
4520
4567
  forceShowIcon: true
4521
4568
  }), null);
4522
- return _el$39;
4569
+ return _el$45;
4523
4570
  }
4524
4571
  }), null);
4525
- insert(_el$38, createComponent(Show, {
4572
+ insert(_el$44, createComponent(Show, {
4526
4573
  get when() {
4527
4574
  return !props.componentName;
4528
4575
  },
@@ -4542,21 +4589,21 @@ var SelectionLabel = (props) => {
4542
4589
  });
4543
4590
  }
4544
4591
  }), null);
4545
- insert(_el$37, createComponent(BottomSection, {
4592
+ insert(_el$43, createComponent(BottomSection, {
4546
4593
  get children() {
4547
- var _el$40 = _tmpl$19(), _el$41 = _el$40.firstChild, _el$42 = _el$41.nextSibling;
4548
- _el$41.$$keydown = handleKeyDown;
4549
- _el$41.$$input = handleInput;
4594
+ var _el$46 = _tmpl$21(), _el$47 = _el$46.firstChild, _el$48 = _el$47.nextSibling;
4595
+ _el$47.$$keydown = handleKeyDown;
4596
+ _el$47.$$input = handleInput;
4550
4597
  var _ref$3 = inputRef;
4551
- typeof _ref$3 === "function" ? use(_ref$3, _el$41) : inputRef = _el$41;
4552
- insert(_el$42, createComponent(Show, {
4598
+ typeof _ref$3 === "function" ? use(_ref$3, _el$47) : inputRef = _el$47;
4599
+ insert(_el$48, createComponent(Show, {
4553
4600
  get when() {
4554
4601
  return memo(() => !!(props.hasAgent && speechRecognition.isSupported()))() && !props.inputValue;
4555
4602
  },
4556
4603
  get children() {
4557
- var _el$43 = _tmpl$17();
4558
- addEventListener(_el$43, "click", speechRecognition.toggle);
4559
- insert(_el$43, createComponent(IconMic, {
4604
+ var _el$49 = _tmpl$19();
4605
+ addEventListener(_el$49, "click", speechRecognition.toggle);
4606
+ insert(_el$49, createComponent(IconMic, {
4560
4607
  size: 11,
4561
4608
  get ["class"]() {
4562
4609
  return speechRecognition.isListening() ? "animate-pulse" : "";
@@ -4564,40 +4611,40 @@ var SelectionLabel = (props) => {
4564
4611
  }));
4565
4612
  createRenderEffect((_p$) => {
4566
4613
  var _v$6 = cn("contain-layout shrink-0 flex items-center justify-center px-[2px] py-[2px] rounded-xs [border-width:0.5px] border-solid size-fit cursor-pointer transition-all hover:scale-105", speechRecognition.isListening() ? "bg-grab-purple border-grab-purple text-white" : "bg-white border-[#B3B3B3] text-black"), _v$7 = speechRecognition.isListening() ? "Stop listening" : "Start voice input";
4567
- _v$6 !== _p$.e && className(_el$43, _p$.e = _v$6);
4568
- _v$7 !== _p$.t && setAttribute(_el$43, "title", _p$.t = _v$7);
4614
+ _v$6 !== _p$.e && className(_el$49, _p$.e = _v$6);
4615
+ _v$7 !== _p$.t && setAttribute(_el$49, "title", _p$.t = _v$7);
4569
4616
  return _p$;
4570
4617
  }, {
4571
4618
  e: void 0,
4572
4619
  t: void 0
4573
4620
  });
4574
- return _el$43;
4621
+ return _el$49;
4575
4622
  }
4576
4623
  }), null);
4577
- insert(_el$42, createComponent(Show, {
4624
+ insert(_el$48, createComponent(Show, {
4578
4625
  get when() {
4579
4626
  return props.inputValue;
4580
4627
  },
4581
4628
  get children() {
4582
- var _el$44 = _tmpl$18();
4583
- _el$44.$$click = handleSubmit;
4584
- insert(_el$44, createComponent(IconReturn, {
4629
+ var _el$50 = _tmpl$20();
4630
+ _el$50.$$click = handleSubmit;
4631
+ insert(_el$50, createComponent(IconReturn, {
4585
4632
  size: 10,
4586
4633
  "class": "opacity-[0.99] text-black"
4587
4634
  }));
4588
- return _el$44;
4635
+ return _el$50;
4589
4636
  }
4590
4637
  }), null);
4591
- createRenderEffect(() => setAttribute(_el$41, "placeholder", speechRecognition.isListening() ? "listening..." : props.hasAgent && props.isAgentConnected ? "type to edit" : "type prompt"));
4592
- createRenderEffect(() => _el$41.value = props.inputValue ?? "");
4593
- return _el$40;
4638
+ createRenderEffect(() => setAttribute(_el$47, "placeholder", speechRecognition.isListening() ? "listening..." : "type prompt"));
4639
+ createRenderEffect(() => _el$47.value = props.inputValue ?? "");
4640
+ return _el$46;
4594
4641
  }
4595
4642
  }), null);
4596
- createRenderEffect(() => className(_el$38, cn("contain-layout shrink-0 flex items-center gap-1 pt-1 w-fit h-fit pl-1.5", props.componentName ? "pr-1.5" : "pr-1")));
4597
- return _el$37;
4643
+ createRenderEffect(() => className(_el$44, cn("contain-layout shrink-0 flex items-center gap-1 pt-1 w-fit h-fit pl-1.5", props.componentName ? "pr-1.5" : "pr-1")));
4644
+ return _el$43;
4598
4645
  }
4599
4646
  }), null);
4600
- insert(_el$21, createComponent(Show, {
4647
+ insert(_el$27, createComponent(Show, {
4601
4648
  get when() {
4602
4649
  return props.isPendingDismiss;
4603
4650
  },
@@ -4612,13 +4659,28 @@ var SelectionLabel = (props) => {
4612
4659
  });
4613
4660
  }
4614
4661
  }), null);
4662
+ insert(_el$27, createComponent(Show, {
4663
+ get when() {
4664
+ return props.error;
4665
+ },
4666
+ get children() {
4667
+ return createComponent(ErrorConfirmation, {
4668
+ get error() {
4669
+ return props.error;
4670
+ },
4671
+ get onAcknowledge() {
4672
+ return props.onAcknowledgeError;
4673
+ }
4674
+ });
4675
+ }
4676
+ }), null);
4615
4677
  createRenderEffect((_p$) => {
4616
- var _v$8 = `${computedPosition().top}px`, _v$9 = `${computedPosition().left}px`, _v$0 = props.isInputExpanded || props.status === "copied" && props.onDismiss || props.status === "copying" && props.onAbort ? "auto" : "none", _v$1 = props.status === "fading" ? 0 : 1, _v$10 = props.status === "copied" || props.status === "fading" ? "none" : void 0;
4617
- _v$8 !== _p$.e && setStyleProperty(_el$14, "top", _p$.e = _v$8);
4618
- _v$9 !== _p$.t && setStyleProperty(_el$14, "left", _p$.t = _v$9);
4619
- _v$0 !== _p$.a && setStyleProperty(_el$14, "pointer-events", _p$.a = _v$0);
4620
- _v$1 !== _p$.o && setStyleProperty(_el$14, "opacity", _p$.o = _v$1);
4621
- _v$10 !== _p$.i && setStyleProperty(_el$21, "display", _p$.i = _v$10);
4678
+ var _v$8 = `${computedPosition().top}px`, _v$9 = `${computedPosition().left}px`, _v$0 = props.isInputExpanded || props.status === "copied" && props.onDismiss || props.status === "copying" && props.onAbort ? "auto" : "none", _v$1 = props.status === "fading" ? 0 : 1, _v$10 = (props.status === "copied" || props.status === "fading") && !props.error ? "none" : void 0;
4679
+ _v$8 !== _p$.e && setStyleProperty(_el$20, "top", _p$.e = _v$8);
4680
+ _v$9 !== _p$.t && setStyleProperty(_el$20, "left", _p$.t = _v$9);
4681
+ _v$0 !== _p$.a && setStyleProperty(_el$20, "pointer-events", _p$.a = _v$0);
4682
+ _v$1 !== _p$.o && setStyleProperty(_el$20, "opacity", _p$.o = _v$1);
4683
+ _v$10 !== _p$.i && setStyleProperty(_el$27, "display", _p$.i = _v$10);
4622
4684
  return _p$;
4623
4685
  }, {
4624
4686
  e: void 0,
@@ -4627,14 +4689,14 @@ var SelectionLabel = (props) => {
4627
4689
  o: void 0,
4628
4690
  i: void 0
4629
4691
  });
4630
- return _el$14;
4692
+ return _el$20;
4631
4693
  }
4632
4694
  });
4633
4695
  };
4634
4696
  delegateEvents(["click", "pointerdown", "mousedown", "pointerup", "input", "keydown"]);
4635
4697
 
4636
4698
  // src/components/selection-cursor.tsx
4637
- var _tmpl$23 = /* @__PURE__ */ template(`<div class="fixed z-2147483647"><button data-react-grab-selection-cursor>`);
4699
+ var _tmpl$24 = /* @__PURE__ */ template(`<div class="fixed z-2147483647"><button data-react-grab-selection-cursor>`);
4638
4700
  var SelectionCursor = (props) => {
4639
4701
  const [isHovered, setIsHovered] = createSignal(false);
4640
4702
  const [debouncedVisible, setDebouncedVisible] = createSignal(false);
@@ -4671,7 +4733,7 @@ var SelectionCursor = (props) => {
4671
4733
  });
4672
4734
  }
4673
4735
  }), (() => {
4674
- var _el$ = _tmpl$23(), _el$2 = _el$.firstChild;
4736
+ var _el$ = _tmpl$24(), _el$2 = _el$.firstChild;
4675
4737
  _el$.addEventListener("mouseleave", () => setIsHovered(false));
4676
4738
  _el$.addEventListener("mouseenter", () => setIsHovered(true));
4677
4739
  _el$2.$$click = handleClick;
@@ -4829,7 +4891,11 @@ var ReactGrabRenderer = (props) => {
4829
4891
  },
4830
4892
  get onUndo() {
4831
4893
  return session().isStreaming ? void 0 : () => props.onUndoSession?.(session().id);
4832
- }
4894
+ },
4895
+ get error() {
4896
+ return session().error;
4897
+ },
4898
+ onAcknowledgeError: () => props.onAcknowledgeSessionError?.(session().id)
4833
4899
  })]
4834
4900
  }), createComponent(Show, {
4835
4901
  get when() {
@@ -6451,7 +6517,15 @@ var createAgentManager = (initialAgentOptions) => {
6451
6517
  );
6452
6518
  setSessions((prev) => new Map(prev).set(session.id, completedSession));
6453
6519
  const element = sessionElements.get(session.id);
6454
- agentOptions?.onComplete?.(completedSession, element);
6520
+ const result = agentOptions?.onComplete?.(completedSession, element);
6521
+ if (result?.error) {
6522
+ const errorSession = updateSession(
6523
+ completedSession,
6524
+ { error: result.error },
6525
+ storage
6526
+ );
6527
+ setSessions((prev) => new Map(prev).set(session.id, errorSession));
6528
+ }
6455
6529
  }
6456
6530
  } catch (error) {
6457
6531
  const currentSessions = sessions();
@@ -6464,33 +6538,18 @@ var createAgentManager = (initialAgentOptions) => {
6464
6538
  }
6465
6539
  } else {
6466
6540
  const errorMessage = error instanceof Error ? error.message : "Unknown error";
6467
- const lowerMessage = errorMessage.toLowerCase();
6468
- const isNetworkError = lowerMessage.includes("network") || lowerMessage.includes("fetch") || lowerMessage.includes("load failed") || lowerMessage.includes("cancelled") || lowerMessage.includes("canceled") || lowerMessage.includes("aborted");
6469
- if (isNetworkError) {
6470
- if (currentSession) {
6471
- const errorSession = updateSession(
6472
- currentSession,
6473
- {
6474
- lastStatus: `Error: ${errorMessage}`
6475
- },
6476
- storage
6477
- );
6478
- setSessions((prev) => new Map(prev).set(session.id, errorSession));
6479
- }
6480
- } else {
6481
- if (currentSession) {
6482
- const errorSession = updateSession(
6483
- currentSession,
6484
- {
6485
- lastStatus: `Error: ${errorMessage}`,
6486
- isStreaming: false
6487
- },
6488
- storage
6489
- );
6490
- setSessions((prev) => new Map(prev).set(session.id, errorSession));
6491
- if (error instanceof Error) {
6492
- agentOptions?.onError?.(error, errorSession);
6493
- }
6541
+ if (currentSession) {
6542
+ const errorSession = updateSession(
6543
+ currentSession,
6544
+ {
6545
+ error: errorMessage,
6546
+ isStreaming: false
6547
+ },
6548
+ storage
6549
+ );
6550
+ setSessions((prev) => new Map(prev).set(session.id, errorSession));
6551
+ if (error instanceof Error) {
6552
+ agentOptions?.onError?.(error, errorSession);
6494
6553
  }
6495
6554
  }
6496
6555
  }
@@ -6638,6 +6697,13 @@ var createAgentManager = (initialAgentOptions) => {
6638
6697
  }
6639
6698
  dismissSession(sessionId);
6640
6699
  };
6700
+ const acknowledgeSessionError = (sessionId) => {
6701
+ const currentSessions = sessions();
6702
+ const session = currentSessions.get(sessionId);
6703
+ const prompt = session?.context.prompt;
6704
+ dismissSession(sessionId);
6705
+ return prompt;
6706
+ };
6641
6707
  const updateSessionBoundsOnViewportChange = () => {
6642
6708
  const currentSessions = sessions();
6643
6709
  if (currentSessions.size === 0) return;
@@ -6681,6 +6747,7 @@ var createAgentManager = (initialAgentOptions) => {
6681
6747
  abortAllSessions,
6682
6748
  dismissSession,
6683
6749
  undoSession,
6750
+ acknowledgeSessionError,
6684
6751
  updateSessionBoundsOnViewportChange,
6685
6752
  getSessionElement,
6686
6753
  setOptions,
@@ -6689,8 +6756,8 @@ var createAgentManager = (initialAgentOptions) => {
6689
6756
  };
6690
6757
 
6691
6758
  // src/core.tsx
6692
- var _tmpl$24 = /* @__PURE__ */ template(`<span class="tabular-nums align-middle">`);
6693
- var _tmpl$25 = /* @__PURE__ */ template(`<span class="font-mono tabular-nums align-middle">&lt;<!>>`);
6759
+ var _tmpl$25 = /* @__PURE__ */ template(`<span class="tabular-nums align-middle">`);
6760
+ var _tmpl$26 = /* @__PURE__ */ template(`<span class="font-mono tabular-nums align-middle">&lt;<!>>`);
6694
6761
  var _tmpl$33 = /* @__PURE__ */ template(`<span class="tabular-nums ml-1 align-middle"> in `);
6695
6762
  var onIdle = (callback) => {
6696
6763
  if ("scheduler" in globalThis) {
@@ -6787,12 +6854,12 @@ var init = (rawOptions) => {
6787
6854
  hasInited = true;
6788
6855
  const logIntro = () => {
6789
6856
  try {
6790
- const version = "0.0.75";
6857
+ const version = "0.0.77";
6791
6858
  const logoDataUri = `data:image/svg+xml;base64,${btoa(LOGO_SVG)}`;
6792
6859
  console.log(`%cReact Grab${version ? ` v${version}` : ""}%c
6793
6860
  https://react-grab.com`, `background: #330039; color: #ffffff; border: 1px solid #d75fcb; padding: 4px 4px 4px 24px; border-radius: 4px; background-image: url("${logoDataUri}"); background-size: 16px 16px; background-repeat: no-repeat; background-position: 4px center; display: inline-block; margin-bottom: 4px;`, "");
6794
6861
  if (navigator.onLine && version) {
6795
- fetch(`https://www.react-grab.com/api/version?t=${Date.now()}`, {
6862
+ fetch(`https://www.react-grab.com/api/version?source=browser&t=${Date.now()}`, {
6796
6863
  referrerPolicy: "origin",
6797
6864
  keepalive: true,
6798
6865
  priority: "low",
@@ -6906,6 +6973,8 @@ https://react-grab.com`, `background: #330039; color: #ffffff; border: 1px solid
6906
6973
  let keydownSpamTimerId = null;
6907
6974
  let autoScrollAnimationId = null;
6908
6975
  let previouslyFocusedElement = null;
6976
+ let pendingClickTimeoutId = null;
6977
+ let pendingClickData = null;
6909
6978
  const isRendererActive = createMemo(() => isActivated() && !isCopying());
6910
6979
  const getAutoScrollDirection = (clientX, clientY) => {
6911
6980
  return {
@@ -7166,7 +7235,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
7166
7235
  const copying = isCopying();
7167
7236
  if (!element) {
7168
7237
  return (() => {
7169
- var _el$ = _tmpl$24();
7238
+ var _el$ = _tmpl$25();
7170
7239
  insert(_el$, copying ? "Processing\u2026" : "1 element");
7171
7240
  return _el$;
7172
7241
  })();
@@ -7175,7 +7244,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
7175
7244
  const componentName = labelComponentName();
7176
7245
  if (tagName && componentName) {
7177
7246
  return [(() => {
7178
- var _el$2 = _tmpl$25(), _el$3 = _el$2.firstChild, _el$5 = _el$3.nextSibling; _el$5.nextSibling;
7247
+ var _el$2 = _tmpl$26(), _el$3 = _el$2.firstChild, _el$5 = _el$3.nextSibling; _el$5.nextSibling;
7179
7248
  insert(_el$2, tagName, _el$5);
7180
7249
  return _el$2;
7181
7250
  })(), (() => {
@@ -7186,13 +7255,13 @@ ${plainTextContentOnly}` : plainTextContentOnly;
7186
7255
  }
7187
7256
  if (tagName) {
7188
7257
  return (() => {
7189
- var _el$8 = _tmpl$25(), _el$9 = _el$8.firstChild, _el$1 = _el$9.nextSibling; _el$1.nextSibling;
7258
+ var _el$8 = _tmpl$26(), _el$9 = _el$8.firstChild, _el$1 = _el$9.nextSibling; _el$1.nextSibling;
7190
7259
  insert(_el$8, tagName, _el$1);
7191
7260
  return _el$8;
7192
7261
  })();
7193
7262
  }
7194
7263
  return (() => {
7195
- var _el$10 = _tmpl$24();
7264
+ var _el$10 = _tmpl$25();
7196
7265
  insert(_el$10, copying ? "Processing\u2026" : "1 element");
7197
7266
  return _el$10;
7198
7267
  })();
@@ -7395,6 +7464,11 @@ ${plainTextContentOnly}` : plainTextContentOnly;
7395
7464
  }
7396
7465
  if (holdTimerId) window.clearTimeout(holdTimerId);
7397
7466
  if (keydownSpamTimerId) window.clearTimeout(keydownSpamTimerId);
7467
+ if (pendingClickTimeoutId) {
7468
+ window.clearTimeout(pendingClickTimeoutId);
7469
+ pendingClickTimeoutId = null;
7470
+ pendingClickData = null;
7471
+ }
7398
7472
  stopAutoScroll();
7399
7473
  stopProgressAnimation();
7400
7474
  activationTimestamp = null;
@@ -7633,12 +7707,55 @@ ${plainTextContentOnly}` : plainTextContentOnly;
7633
7707
  } else {
7634
7708
  const element = getElementAtPosition(clientX, clientY);
7635
7709
  if (!element) return;
7636
- setLastGrabbedElement(element);
7637
- const bounds = createElementBounds(element);
7638
- const tagName = extractElementTagName(element);
7639
- void getNearestComponentName(element).then((componentName) => {
7640
- void executeCopyOperation(clientX, clientY, () => copySingleElementToClipboard(element), bounds, tagName, componentName ?? void 0, element);
7641
- });
7710
+ if (hasAgentProvider()) {
7711
+ if (pendingClickTimeoutId !== null) {
7712
+ window.clearTimeout(pendingClickTimeoutId);
7713
+ pendingClickTimeoutId = null;
7714
+ const clickElement = pendingClickData?.element ?? element;
7715
+ pendingClickData = null;
7716
+ const bounds = createElementBounds(clickElement);
7717
+ const selectionCenterX = bounds.x + bounds.width / 2;
7718
+ setCopyStartX(clientX);
7719
+ setCopyStartY(clientY);
7720
+ setCopyOffsetFromCenterX(clientX - selectionCenterX);
7721
+ const cachedInput = elementInputCache.get(clickElement);
7722
+ if (cachedInput) {
7723
+ setInputText(cachedInput);
7724
+ }
7725
+ setMouseX(clientX);
7726
+ setMouseY(clientY);
7727
+ setFrozenElement(clickElement);
7728
+ setIsToggleMode(true);
7729
+ setIsToggleFrozen(true);
7730
+ setIsInputExpanded(true);
7731
+ setIsInputMode(true);
7732
+ return;
7733
+ }
7734
+ pendingClickData = {
7735
+ clientX,
7736
+ clientY,
7737
+ element
7738
+ };
7739
+ pendingClickTimeoutId = window.setTimeout(() => {
7740
+ pendingClickTimeoutId = null;
7741
+ const clickData = pendingClickData;
7742
+ pendingClickData = null;
7743
+ if (!clickData) return;
7744
+ setLastGrabbedElement(clickData.element);
7745
+ const bounds = createElementBounds(clickData.element);
7746
+ const tagName = extractElementTagName(clickData.element);
7747
+ void getNearestComponentName(clickData.element).then((componentName) => {
7748
+ void executeCopyOperation(clickData.clientX, clickData.clientY, () => copySingleElementToClipboard(clickData.element), bounds, tagName, componentName ?? void 0, clickData.element);
7749
+ });
7750
+ }, DOUBLE_CLICK_THRESHOLD_MS);
7751
+ } else {
7752
+ setLastGrabbedElement(element);
7753
+ const bounds = createElementBounds(element);
7754
+ const tagName = extractElementTagName(element);
7755
+ void getNearestComponentName(element).then((componentName) => {
7756
+ void executeCopyOperation(clientX, clientY, () => copySingleElementToClipboard(element), bounds, tagName, componentName ?? void 0, element);
7757
+ });
7758
+ }
7642
7759
  }
7643
7760
  };
7644
7761
  const abortController = new AbortController();
@@ -7779,7 +7896,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
7779
7896
  setIsInputMode(true);
7780
7897
  return;
7781
7898
  }
7782
- if (event.key.toLowerCase() === "o" && !isInputMode()) {
7899
+ if (event.key?.toLowerCase() === "o" && !isInputMode()) {
7783
7900
  if (isActivated() && (event.metaKey || event.ctrlKey)) {
7784
7901
  const filePath = selectionFilePath();
7785
7902
  const lineNumber = selectionLineNumber();
@@ -7872,7 +7989,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
7872
7989
  };
7873
7990
  const requiredModifiers = getRequiredModifiers();
7874
7991
  const isReleasingModifier = requiredModifiers.metaKey || requiredModifiers.ctrlKey ? !event.metaKey && !event.ctrlKey : requiredModifiers.shiftKey && !event.shiftKey || requiredModifiers.altKey && !event.altKey;
7875
- const isReleasingActivationKey = options.activationShortcut ? !options.activationShortcut(event) : options.activationKey ? options.activationKey.key ? event.key.toLowerCase() === options.activationKey.key.toLowerCase() || keyMatchesCode(options.activationKey.key, event.code) : false : isCLikeKey(event.key, event.code);
7992
+ const isReleasingActivationKey = options.activationShortcut ? !options.activationShortcut(event) : options.activationKey ? options.activationKey.key ? event.key?.toLowerCase() === options.activationKey.key.toLowerCase() || keyMatchesCode(options.activationKey.key, event.code) : false : isCLikeKey(event.key, event.code);
7876
7993
  if (isActivated()) {
7877
7994
  if (isReleasingModifier) {
7878
7995
  if (isToggleMode()) return;
@@ -8088,6 +8205,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
8088
8205
  abortController.abort();
8089
8206
  if (holdTimerId) window.clearTimeout(holdTimerId);
8090
8207
  if (keydownSpamTimerId) window.clearTimeout(keydownSpamTimerId);
8208
+ if (pendingClickTimeoutId) window.clearTimeout(pendingClickTimeoutId);
8091
8209
  stopAutoScroll();
8092
8210
  stopProgressAnimation();
8093
8211
  document.body.style.userSelect = "";
@@ -8224,6 +8342,12 @@ ${plainTextContentOnly}` : plainTextContentOnly;
8224
8342
  onAbortSession: (sessionId) => agentManager.abortSession(sessionId),
8225
8343
  onDismissSession: (sessionId) => agentManager.dismissSession(sessionId),
8226
8344
  onUndoSession: (sessionId) => agentManager.undoSession(sessionId),
8345
+ onAcknowledgeSessionError: (sessionId) => {
8346
+ const prompt = agentManager.acknowledgeSessionError(sessionId);
8347
+ if (prompt) {
8348
+ setInputText(prompt);
8349
+ }
8350
+ },
8227
8351
  onInputChange: handleInputChange,
8228
8352
  onInputSubmit: () => void handleInputSubmit(),
8229
8353
  onInputCancel: handleInputCancel,