react-grab 0.0.76 → 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.
@@ -949,7 +949,7 @@ function cleanChildren(parent, current, marker, replacement) {
949
949
 
950
950
  // dist/styles.css
951
951
  var styles_default = `/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */
952
- @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}}`;
952
+ @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}}`;
953
953
 
954
954
  // src/utils/is-keyboard-event-triggered-by-input.ts
955
955
  var FORM_TAGS_AND_ROLES = [
@@ -1078,7 +1078,7 @@ var buildOpenFileUrl = (filePath, lineNumber) => {
1078
1078
  };
1079
1079
 
1080
1080
  // src/constants.ts
1081
- var VERSION = "0.0.76";
1081
+ var VERSION = "0.0.77";
1082
1082
  var VIEWPORT_MARGIN_PX = 8;
1083
1083
  var OFFSCREEN_POSITION = -1e3;
1084
1084
  var SELECTION_LERP_FACTOR = 0.95;
@@ -1088,6 +1088,7 @@ var SELECTION_CURSOR_SETTLE_DELAY_MS = 500;
1088
1088
  var BLUR_DEACTIVATION_THRESHOLD_MS = 500;
1089
1089
  var INPUT_FOCUS_ACTIVATION_DELAY_MS = 150;
1090
1090
  var DEFAULT_KEY_HOLD_DURATION_MS = 200;
1091
+ var DOUBLE_CLICK_THRESHOLD_MS = 250;
1091
1092
  var DRAG_THRESHOLD_PX = 2;
1092
1093
  var ELEMENT_DETECTION_THROTTLE_MS = 32;
1093
1094
  var BOUNDS_RECALC_INTERVAL_MS = 100;
@@ -3951,21 +3952,23 @@ var _tmpl$52 = /* @__PURE__ */ template(`<div role=button><div class="text-black
3951
3952
  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%)">`);
3952
3953
  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`);
3953
3954
  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?`);
3954
- 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`);
3955
- 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`);
3956
- var _tmpl$1 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex items-center justify-end gap-[5px] w-full h-fit">`);
3957
- 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">`);
3958
- 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">`);
3959
- 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>`);
3960
- 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">`);
3961
- var _tmpl$14 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex items-center gap-px w-fit h-fit">`);
3962
- 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`);
3963
- 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>`);
3964
- var _tmpl$17 = /* @__PURE__ */ template(`<button>`);
3965
- 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">`);
3966
- 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">`);
3967
- 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>`);
3968
- 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">`);
3955
+ 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`);
3956
+ 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">`);
3957
+ 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`);
3958
+ 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`);
3959
+ var _tmpl$11 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex items-center justify-end gap-[5px] w-full h-fit">`);
3960
+ 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">`);
3961
+ 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">`);
3962
+ 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>`);
3963
+ 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">`);
3964
+ var _tmpl$16 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex items-center gap-px w-fit h-fit">`);
3965
+ 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`);
3966
+ 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>`);
3967
+ var _tmpl$19 = /* @__PURE__ */ template(`<button>`);
3968
+ 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">`);
3969
+ 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">`);
3970
+ 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>`);
3971
+ 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">`);
3969
3972
  var ARROW_HEIGHT = 8;
3970
3973
  var LABEL_GAP = 4;
3971
3974
  var IDLE_TIMEOUT_MS = 400;
@@ -4092,6 +4095,48 @@ var DismissConfirmation = (props) => {
4092
4095
  return _el$0;
4093
4096
  })();
4094
4097
  };
4098
+ var MAX_ERROR_LENGTH = 50;
4099
+ var ErrorConfirmation = (props) => {
4100
+ const handleKeyDown = (event) => {
4101
+ if (event.code === "Enter" || event.code === "Escape") {
4102
+ event.preventDefault();
4103
+ event.stopPropagation();
4104
+ props.onAcknowledge?.();
4105
+ }
4106
+ };
4107
+ const truncatedError = () => {
4108
+ const error = props.error;
4109
+ if (error.length <= MAX_ERROR_LENGTH) return error;
4110
+ return `${error.slice(0, MAX_ERROR_LENGTH)}\u2026`;
4111
+ };
4112
+ onMount(() => {
4113
+ window.addEventListener("keydown", handleKeyDown, {
4114
+ capture: true
4115
+ });
4116
+ });
4117
+ onCleanup(() => {
4118
+ window.removeEventListener("keydown", handleKeyDown, {
4119
+ capture: true
4120
+ });
4121
+ });
4122
+ return (() => {
4123
+ var _el$14 = _tmpl$0(), _el$15 = _el$14.firstChild, _el$16 = _el$15.firstChild;
4124
+ insert(_el$16, truncatedError);
4125
+ insert(_el$14, createComponent(BottomSection, {
4126
+ get children() {
4127
+ var _el$17 = _tmpl$9(), _el$18 = _el$17.firstChild; _el$18.firstChild;
4128
+ addEventListener(_el$18, "click", props.onAcknowledge);
4129
+ insert(_el$18, createComponent(IconReturn, {
4130
+ size: 10,
4131
+ "class": "text-black/50"
4132
+ }), null);
4133
+ return _el$17;
4134
+ }
4135
+ }), null);
4136
+ createRenderEffect(() => setAttribute(_el$16, "title", props.error));
4137
+ return _el$14;
4138
+ })();
4139
+ };
4095
4140
  var SelectionLabel = (props) => {
4096
4141
  let containerRef;
4097
4142
  let inputRef;
@@ -4173,6 +4218,8 @@ var SelectionLabel = (props) => {
4173
4218
  void props.inputValue;
4174
4219
  void props.hasAgent;
4175
4220
  void props.isInputExpanded;
4221
+ void props.isPendingDismiss;
4222
+ void props.error;
4176
4223
  requestAnimationFrame(measureContainer);
4177
4224
  });
4178
4225
  createEffect(() => {
@@ -4291,111 +4338,111 @@ var SelectionLabel = (props) => {
4291
4338
  return memo(() => props.visible !== false)() && (props.selectionBounds || shouldShowWithoutBounds());
4292
4339
  },
4293
4340
  get children() {
4294
- var _el$14 = _tmpl$21(), _el$21 = _el$14.firstChild;
4295
- _el$14.$$click = stopPropagation;
4296
- _el$14.$$mousedown = stopPropagation;
4297
- _el$14.$$pointerdown = handleContainerPointerDown;
4341
+ var _el$20 = _tmpl$23(), _el$27 = _el$20.firstChild;
4342
+ _el$20.$$click = stopPropagation;
4343
+ _el$20.$$mousedown = stopPropagation;
4344
+ _el$20.$$pointerdown = handleContainerPointerDown;
4298
4345
  var _ref$ = containerRef;
4299
- typeof _ref$ === "function" ? use(_ref$, _el$14) : containerRef = _el$14;
4300
- insert(_el$14, createComponent(Arrow, {
4346
+ typeof _ref$ === "function" ? use(_ref$, _el$20) : containerRef = _el$20;
4347
+ insert(_el$20, createComponent(Arrow, {
4301
4348
  get position() {
4302
4349
  return arrowPosition();
4303
4350
  },
4304
4351
  get leftPx() {
4305
4352
  return computedPosition().arrowLeft;
4306
4353
  }
4307
- }), _el$21);
4308
- insert(_el$14, createComponent(Show, {
4354
+ }), _el$27);
4355
+ insert(_el$20, createComponent(Show, {
4309
4356
  get when() {
4310
- return props.status === "copied" || props.status === "fading";
4357
+ return memo(() => !!(props.status === "copied" || props.status === "fading"))() && !props.error;
4311
4358
  },
4312
4359
  get children() {
4313
- var _el$15 = _tmpl$10(), _el$16 = _el$15.firstChild, _el$17 = _el$16.firstChild;
4314
- insert(_el$17, (() => {
4360
+ var _el$21 = _tmpl$12(), _el$22 = _el$21.firstChild, _el$23 = _el$22.firstChild;
4361
+ insert(_el$23, (() => {
4315
4362
  var _c$ = memo(() => !!props.hasAgent);
4316
4363
  return () => _c$() ? props.statusText ?? "Completed" : "Copied";
4317
4364
  })());
4318
- insert(_el$15, createComponent(Show, {
4365
+ insert(_el$21, createComponent(Show, {
4319
4366
  get when() {
4320
4367
  return props.onDismiss || props.onUndo;
4321
4368
  },
4322
4369
  get children() {
4323
4370
  return createComponent(BottomSection, {
4324
4371
  get children() {
4325
- var _el$18 = _tmpl$1();
4326
- insert(_el$18, createComponent(Show, {
4372
+ var _el$24 = _tmpl$11();
4373
+ insert(_el$24, createComponent(Show, {
4327
4374
  get when() {
4328
4375
  return props.onUndo;
4329
4376
  },
4330
4377
  get children() {
4331
- var _el$19 = _tmpl$9();
4332
- _el$19.$$click = () => props.onUndo?.();
4333
- return _el$19;
4378
+ var _el$25 = _tmpl$1();
4379
+ _el$25.$$click = () => props.onUndo?.();
4380
+ return _el$25;
4334
4381
  }
4335
4382
  }), null);
4336
- insert(_el$18, createComponent(Show, {
4383
+ insert(_el$24, createComponent(Show, {
4337
4384
  get when() {
4338
4385
  return props.onDismiss;
4339
4386
  },
4340
4387
  get children() {
4341
- var _el$20 = _tmpl$0();
4342
- _el$20.$$click = () => props.onDismiss?.();
4343
- return _el$20;
4388
+ var _el$26 = _tmpl$10();
4389
+ _el$26.$$click = () => props.onDismiss?.();
4390
+ return _el$26;
4344
4391
  }
4345
4392
  }), null);
4346
- return _el$18;
4393
+ return _el$24;
4347
4394
  }
4348
4395
  });
4349
4396
  }
4350
4397
  }), null);
4351
- return _el$15;
4398
+ return _el$21;
4352
4399
  }
4353
- }), _el$21);
4354
- insert(_el$21, createComponent(Show, {
4400
+ }), _el$27);
4401
+ insert(_el$27, createComponent(Show, {
4355
4402
  get when() {
4356
4403
  return props.status === "copying";
4357
4404
  },
4358
4405
  get children() {
4359
- var _el$22 = _tmpl$13(), _el$23 = _el$22.firstChild, _el$24 = _el$23.firstChild, _el$25 = _el$24.firstChild;
4360
- insert(_el$25, () => props.statusText ?? "Grabbing\u2026");
4361
- insert(_el$22, createComponent(BottomSection, {
4406
+ var _el$28 = _tmpl$15(), _el$29 = _el$28.firstChild, _el$30 = _el$29.firstChild, _el$31 = _el$30.firstChild;
4407
+ insert(_el$31, () => props.statusText ?? "Grabbing\u2026");
4408
+ insert(_el$28, createComponent(BottomSection, {
4362
4409
  get children() {
4363
- var _el$26 = _tmpl$12(), _el$27 = _el$26.firstChild;
4410
+ var _el$32 = _tmpl$14(), _el$33 = _el$32.firstChild;
4364
4411
  var _ref$2 = inputRef;
4365
- typeof _ref$2 === "function" ? use(_ref$2, _el$27) : inputRef = _el$27;
4366
- insert(_el$26, createComponent(Show, {
4412
+ typeof _ref$2 === "function" ? use(_ref$2, _el$33) : inputRef = _el$33;
4413
+ insert(_el$32, createComponent(Show, {
4367
4414
  get when() {
4368
4415
  return props.onAbort;
4369
4416
  },
4370
4417
  get children() {
4371
- var _el$28 = _tmpl$11();
4372
- _el$28.$$click = (event) => {
4418
+ var _el$34 = _tmpl$13();
4419
+ _el$34.$$click = (event) => {
4373
4420
  event.stopPropagation();
4374
4421
  props.onAbort?.();
4375
4422
  };
4376
- _el$28.$$pointerup = (event) => {
4423
+ _el$34.$$pointerup = (event) => {
4377
4424
  event.stopPropagation();
4378
4425
  props.onAbort?.();
4379
4426
  };
4380
- _el$28.$$mousedown = (event) => event.stopPropagation();
4381
- _el$28.$$pointerdown = (event) => event.stopPropagation();
4382
- return _el$28;
4427
+ _el$34.$$mousedown = (event) => event.stopPropagation();
4428
+ _el$34.$$pointerdown = (event) => event.stopPropagation();
4429
+ return _el$34;
4383
4430
  }
4384
4431
  }), null);
4385
- createRenderEffect(() => _el$27.value = props.inputValue ?? "");
4386
- return _el$26;
4432
+ createRenderEffect(() => _el$33.value = props.inputValue ?? "");
4433
+ return _el$32;
4387
4434
  }
4388
4435
  }), null);
4389
- return _el$22;
4436
+ return _el$28;
4390
4437
  }
4391
4438
  }), null);
4392
- insert(_el$21, createComponent(Show, {
4439
+ insert(_el$27, createComponent(Show, {
4393
4440
  get when() {
4394
4441
  return memo(() => !!isNotProcessing())() && !props.isInputExpanded;
4395
4442
  },
4396
4443
  get children() {
4397
- var _el$29 = _tmpl$16(), _el$30 = _el$29.firstChild, _el$32 = _el$30.nextSibling, _el$33 = _el$32.firstChild;
4398
- insert(_el$30, createComponent(ClickToCopyPill, {
4444
+ var _el$35 = _tmpl$18(), _el$36 = _el$35.firstChild, _el$38 = _el$36.nextSibling, _el$39 = _el$38.firstChild;
4445
+ insert(_el$36, createComponent(ClickToCopyPill, {
4399
4446
  onClick: handleSubmit,
4400
4447
  shrink: true,
4401
4448
  get hasParent() {
@@ -4405,19 +4452,19 @@ var SelectionLabel = (props) => {
4405
4452
  return props.hasAgent;
4406
4453
  }
4407
4454
  }), null);
4408
- insert(_el$30, createComponent(Show, {
4455
+ insert(_el$36, createComponent(Show, {
4409
4456
  get when() {
4410
4457
  return props.componentName;
4411
4458
  },
4412
4459
  get children() {
4413
- var _el$31 = _tmpl$14();
4414
- insert(_el$31, createComponent(ParentBadge, {
4460
+ var _el$37 = _tmpl$16();
4461
+ insert(_el$37, createComponent(ParentBadge, {
4415
4462
  get name() {
4416
4463
  return props.componentName;
4417
4464
  }
4418
4465
  }), null);
4419
- insert(_el$31, createComponent(ChevronSeparator, {}), null);
4420
- insert(_el$31, createComponent(TagBadge, {
4466
+ insert(_el$37, createComponent(ChevronSeparator, {}), null);
4467
+ insert(_el$37, createComponent(TagBadge, {
4421
4468
  get tagName() {
4422
4469
  return tagDisplay();
4423
4470
  },
@@ -4429,10 +4476,10 @@ var SelectionLabel = (props) => {
4429
4476
  showMono: true,
4430
4477
  shrink: true
4431
4478
  }), null);
4432
- return _el$31;
4479
+ return _el$37;
4433
4480
  }
4434
4481
  }), null);
4435
- insert(_el$30, createComponent(Show, {
4482
+ insert(_el$36, createComponent(Show, {
4436
4483
  get when() {
4437
4484
  return !props.componentName;
4438
4485
  },
@@ -4451,37 +4498,37 @@ var SelectionLabel = (props) => {
4451
4498
  });
4452
4499
  }
4453
4500
  }), null);
4454
- insert(_el$33, createComponent(BottomSection, {
4501
+ insert(_el$39, createComponent(BottomSection, {
4455
4502
  get children() {
4456
- var _el$34 = _tmpl$15(), _el$35 = _el$34.firstChild, _el$36 = _el$35.nextSibling;
4457
- insert(_el$36, createComponent(IconReturn, {
4503
+ var _el$40 = _tmpl$17(), _el$41 = _el$40.firstChild, _el$42 = _el$41.nextSibling;
4504
+ insert(_el$42, createComponent(IconReturn, {
4458
4505
  size: 10,
4459
4506
  "class": "opacity-[0.99] text-black"
4460
4507
  }));
4461
- return _el$34;
4508
+ return _el$40;
4462
4509
  }
4463
4510
  }));
4464
4511
  createRenderEffect((_p$) => {
4465
4512
  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");
4466
- _v$3 !== _p$.e && className(_el$30, _p$.e = _v$3);
4467
- _v$4 !== _p$.t && setStyleProperty(_el$32, "grid-template-rows", _p$.t = _v$4);
4468
- _v$5 !== _p$.a && className(_el$33, _p$.a = _v$5);
4513
+ _v$3 !== _p$.e && className(_el$36, _p$.e = _v$3);
4514
+ _v$4 !== _p$.t && setStyleProperty(_el$38, "grid-template-rows", _p$.t = _v$4);
4515
+ _v$5 !== _p$.a && className(_el$39, _p$.a = _v$5);
4469
4516
  return _p$;
4470
4517
  }, {
4471
4518
  e: void 0,
4472
4519
  t: void 0,
4473
4520
  a: void 0
4474
4521
  });
4475
- return _el$29;
4522
+ return _el$35;
4476
4523
  }
4477
4524
  }), null);
4478
- insert(_el$21, createComponent(Show, {
4525
+ insert(_el$27, createComponent(Show, {
4479
4526
  get when() {
4480
4527
  return memo(() => !!(isNotProcessing() && props.isInputExpanded))() && !props.isPendingDismiss;
4481
4528
  },
4482
4529
  get children() {
4483
- var _el$37 = _tmpl$20(), _el$38 = _el$37.firstChild;
4484
- insert(_el$38, createComponent(ClickToCopyPill, {
4530
+ var _el$43 = _tmpl$222(), _el$44 = _el$43.firstChild;
4531
+ insert(_el$44, createComponent(ClickToCopyPill, {
4485
4532
  onClick: handleSubmit,
4486
4533
  dimmed: true,
4487
4534
  shrink: true,
@@ -4492,19 +4539,19 @@ var SelectionLabel = (props) => {
4492
4539
  return props.hasAgent;
4493
4540
  }
4494
4541
  }), null);
4495
- insert(_el$38, createComponent(Show, {
4542
+ insert(_el$44, createComponent(Show, {
4496
4543
  get when() {
4497
4544
  return props.componentName;
4498
4545
  },
4499
4546
  get children() {
4500
- var _el$39 = _tmpl$14();
4501
- insert(_el$39, createComponent(ParentBadge, {
4547
+ var _el$45 = _tmpl$16();
4548
+ insert(_el$45, createComponent(ParentBadge, {
4502
4549
  get name() {
4503
4550
  return props.componentName;
4504
4551
  }
4505
4552
  }), null);
4506
- insert(_el$39, createComponent(ChevronSeparator, {}), null);
4507
- insert(_el$39, createComponent(TagBadge, {
4553
+ insert(_el$45, createComponent(ChevronSeparator, {}), null);
4554
+ insert(_el$45, createComponent(TagBadge, {
4508
4555
  get tagName() {
4509
4556
  return tagDisplay();
4510
4557
  },
@@ -4517,10 +4564,10 @@ var SelectionLabel = (props) => {
4517
4564
  shrink: true,
4518
4565
  forceShowIcon: true
4519
4566
  }), null);
4520
- return _el$39;
4567
+ return _el$45;
4521
4568
  }
4522
4569
  }), null);
4523
- insert(_el$38, createComponent(Show, {
4570
+ insert(_el$44, createComponent(Show, {
4524
4571
  get when() {
4525
4572
  return !props.componentName;
4526
4573
  },
@@ -4540,21 +4587,21 @@ var SelectionLabel = (props) => {
4540
4587
  });
4541
4588
  }
4542
4589
  }), null);
4543
- insert(_el$37, createComponent(BottomSection, {
4590
+ insert(_el$43, createComponent(BottomSection, {
4544
4591
  get children() {
4545
- var _el$40 = _tmpl$19(), _el$41 = _el$40.firstChild, _el$42 = _el$41.nextSibling;
4546
- _el$41.$$keydown = handleKeyDown;
4547
- _el$41.$$input = handleInput;
4592
+ var _el$46 = _tmpl$21(), _el$47 = _el$46.firstChild, _el$48 = _el$47.nextSibling;
4593
+ _el$47.$$keydown = handleKeyDown;
4594
+ _el$47.$$input = handleInput;
4548
4595
  var _ref$3 = inputRef;
4549
- typeof _ref$3 === "function" ? use(_ref$3, _el$41) : inputRef = _el$41;
4550
- insert(_el$42, createComponent(Show, {
4596
+ typeof _ref$3 === "function" ? use(_ref$3, _el$47) : inputRef = _el$47;
4597
+ insert(_el$48, createComponent(Show, {
4551
4598
  get when() {
4552
4599
  return memo(() => !!(props.hasAgent && speechRecognition.isSupported()))() && !props.inputValue;
4553
4600
  },
4554
4601
  get children() {
4555
- var _el$43 = _tmpl$17();
4556
- addEventListener(_el$43, "click", speechRecognition.toggle);
4557
- insert(_el$43, createComponent(IconMic, {
4602
+ var _el$49 = _tmpl$19();
4603
+ addEventListener(_el$49, "click", speechRecognition.toggle);
4604
+ insert(_el$49, createComponent(IconMic, {
4558
4605
  size: 11,
4559
4606
  get ["class"]() {
4560
4607
  return speechRecognition.isListening() ? "animate-pulse" : "";
@@ -4562,40 +4609,40 @@ var SelectionLabel = (props) => {
4562
4609
  }));
4563
4610
  createRenderEffect((_p$) => {
4564
4611
  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";
4565
- _v$6 !== _p$.e && className(_el$43, _p$.e = _v$6);
4566
- _v$7 !== _p$.t && setAttribute(_el$43, "title", _p$.t = _v$7);
4612
+ _v$6 !== _p$.e && className(_el$49, _p$.e = _v$6);
4613
+ _v$7 !== _p$.t && setAttribute(_el$49, "title", _p$.t = _v$7);
4567
4614
  return _p$;
4568
4615
  }, {
4569
4616
  e: void 0,
4570
4617
  t: void 0
4571
4618
  });
4572
- return _el$43;
4619
+ return _el$49;
4573
4620
  }
4574
4621
  }), null);
4575
- insert(_el$42, createComponent(Show, {
4622
+ insert(_el$48, createComponent(Show, {
4576
4623
  get when() {
4577
4624
  return props.inputValue;
4578
4625
  },
4579
4626
  get children() {
4580
- var _el$44 = _tmpl$18();
4581
- _el$44.$$click = handleSubmit;
4582
- insert(_el$44, createComponent(IconReturn, {
4627
+ var _el$50 = _tmpl$20();
4628
+ _el$50.$$click = handleSubmit;
4629
+ insert(_el$50, createComponent(IconReturn, {
4583
4630
  size: 10,
4584
4631
  "class": "opacity-[0.99] text-black"
4585
4632
  }));
4586
- return _el$44;
4633
+ return _el$50;
4587
4634
  }
4588
4635
  }), null);
4589
- createRenderEffect(() => setAttribute(_el$41, "placeholder", speechRecognition.isListening() ? "listening..." : props.hasAgent && props.isAgentConnected ? "type to edit" : "type prompt"));
4590
- createRenderEffect(() => _el$41.value = props.inputValue ?? "");
4591
- return _el$40;
4636
+ createRenderEffect(() => setAttribute(_el$47, "placeholder", speechRecognition.isListening() ? "listening..." : "type prompt"));
4637
+ createRenderEffect(() => _el$47.value = props.inputValue ?? "");
4638
+ return _el$46;
4592
4639
  }
4593
4640
  }), null);
4594
- 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")));
4595
- return _el$37;
4641
+ 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")));
4642
+ return _el$43;
4596
4643
  }
4597
4644
  }), null);
4598
- insert(_el$21, createComponent(Show, {
4645
+ insert(_el$27, createComponent(Show, {
4599
4646
  get when() {
4600
4647
  return props.isPendingDismiss;
4601
4648
  },
@@ -4610,13 +4657,28 @@ var SelectionLabel = (props) => {
4610
4657
  });
4611
4658
  }
4612
4659
  }), null);
4660
+ insert(_el$27, createComponent(Show, {
4661
+ get when() {
4662
+ return props.error;
4663
+ },
4664
+ get children() {
4665
+ return createComponent(ErrorConfirmation, {
4666
+ get error() {
4667
+ return props.error;
4668
+ },
4669
+ get onAcknowledge() {
4670
+ return props.onAcknowledgeError;
4671
+ }
4672
+ });
4673
+ }
4674
+ }), null);
4613
4675
  createRenderEffect((_p$) => {
4614
- 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;
4615
- _v$8 !== _p$.e && setStyleProperty(_el$14, "top", _p$.e = _v$8);
4616
- _v$9 !== _p$.t && setStyleProperty(_el$14, "left", _p$.t = _v$9);
4617
- _v$0 !== _p$.a && setStyleProperty(_el$14, "pointer-events", _p$.a = _v$0);
4618
- _v$1 !== _p$.o && setStyleProperty(_el$14, "opacity", _p$.o = _v$1);
4619
- _v$10 !== _p$.i && setStyleProperty(_el$21, "display", _p$.i = _v$10);
4676
+ 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;
4677
+ _v$8 !== _p$.e && setStyleProperty(_el$20, "top", _p$.e = _v$8);
4678
+ _v$9 !== _p$.t && setStyleProperty(_el$20, "left", _p$.t = _v$9);
4679
+ _v$0 !== _p$.a && setStyleProperty(_el$20, "pointer-events", _p$.a = _v$0);
4680
+ _v$1 !== _p$.o && setStyleProperty(_el$20, "opacity", _p$.o = _v$1);
4681
+ _v$10 !== _p$.i && setStyleProperty(_el$27, "display", _p$.i = _v$10);
4620
4682
  return _p$;
4621
4683
  }, {
4622
4684
  e: void 0,
@@ -4625,14 +4687,14 @@ var SelectionLabel = (props) => {
4625
4687
  o: void 0,
4626
4688
  i: void 0
4627
4689
  });
4628
- return _el$14;
4690
+ return _el$20;
4629
4691
  }
4630
4692
  });
4631
4693
  };
4632
4694
  delegateEvents(["click", "pointerdown", "mousedown", "pointerup", "input", "keydown"]);
4633
4695
 
4634
4696
  // src/components/selection-cursor.tsx
4635
- var _tmpl$23 = /* @__PURE__ */ template(`<div class="fixed z-2147483647"><button data-react-grab-selection-cursor>`);
4697
+ var _tmpl$24 = /* @__PURE__ */ template(`<div class="fixed z-2147483647"><button data-react-grab-selection-cursor>`);
4636
4698
  var SelectionCursor = (props) => {
4637
4699
  const [isHovered, setIsHovered] = createSignal(false);
4638
4700
  const [debouncedVisible, setDebouncedVisible] = createSignal(false);
@@ -4669,7 +4731,7 @@ var SelectionCursor = (props) => {
4669
4731
  });
4670
4732
  }
4671
4733
  }), (() => {
4672
- var _el$ = _tmpl$23(), _el$2 = _el$.firstChild;
4734
+ var _el$ = _tmpl$24(), _el$2 = _el$.firstChild;
4673
4735
  _el$.addEventListener("mouseleave", () => setIsHovered(false));
4674
4736
  _el$.addEventListener("mouseenter", () => setIsHovered(true));
4675
4737
  _el$2.$$click = handleClick;
@@ -4827,7 +4889,11 @@ var ReactGrabRenderer = (props) => {
4827
4889
  },
4828
4890
  get onUndo() {
4829
4891
  return session().isStreaming ? void 0 : () => props.onUndoSession?.(session().id);
4830
- }
4892
+ },
4893
+ get error() {
4894
+ return session().error;
4895
+ },
4896
+ onAcknowledgeError: () => props.onAcknowledgeSessionError?.(session().id)
4831
4897
  })]
4832
4898
  }), createComponent(Show, {
4833
4899
  get when() {
@@ -6449,7 +6515,15 @@ var createAgentManager = (initialAgentOptions) => {
6449
6515
  );
6450
6516
  setSessions((prev) => new Map(prev).set(session.id, completedSession));
6451
6517
  const element = sessionElements.get(session.id);
6452
- agentOptions?.onComplete?.(completedSession, element);
6518
+ const result = agentOptions?.onComplete?.(completedSession, element);
6519
+ if (result?.error) {
6520
+ const errorSession = updateSession(
6521
+ completedSession,
6522
+ { error: result.error },
6523
+ storage
6524
+ );
6525
+ setSessions((prev) => new Map(prev).set(session.id, errorSession));
6526
+ }
6453
6527
  }
6454
6528
  } catch (error) {
6455
6529
  const currentSessions = sessions();
@@ -6462,33 +6536,18 @@ var createAgentManager = (initialAgentOptions) => {
6462
6536
  }
6463
6537
  } else {
6464
6538
  const errorMessage = error instanceof Error ? error.message : "Unknown error";
6465
- const lowerMessage = errorMessage.toLowerCase();
6466
- const isNetworkError = lowerMessage.includes("network") || lowerMessage.includes("fetch") || lowerMessage.includes("load failed") || lowerMessage.includes("cancelled") || lowerMessage.includes("canceled") || lowerMessage.includes("aborted");
6467
- if (isNetworkError) {
6468
- if (currentSession) {
6469
- const errorSession = updateSession(
6470
- currentSession,
6471
- {
6472
- lastStatus: `Error: ${errorMessage}`
6473
- },
6474
- storage
6475
- );
6476
- setSessions((prev) => new Map(prev).set(session.id, errorSession));
6477
- }
6478
- } else {
6479
- if (currentSession) {
6480
- const errorSession = updateSession(
6481
- currentSession,
6482
- {
6483
- lastStatus: `Error: ${errorMessage}`,
6484
- isStreaming: false
6485
- },
6486
- storage
6487
- );
6488
- setSessions((prev) => new Map(prev).set(session.id, errorSession));
6489
- if (error instanceof Error) {
6490
- agentOptions?.onError?.(error, errorSession);
6491
- }
6539
+ if (currentSession) {
6540
+ const errorSession = updateSession(
6541
+ currentSession,
6542
+ {
6543
+ error: errorMessage,
6544
+ isStreaming: false
6545
+ },
6546
+ storage
6547
+ );
6548
+ setSessions((prev) => new Map(prev).set(session.id, errorSession));
6549
+ if (error instanceof Error) {
6550
+ agentOptions?.onError?.(error, errorSession);
6492
6551
  }
6493
6552
  }
6494
6553
  }
@@ -6636,6 +6695,13 @@ var createAgentManager = (initialAgentOptions) => {
6636
6695
  }
6637
6696
  dismissSession(sessionId);
6638
6697
  };
6698
+ const acknowledgeSessionError = (sessionId) => {
6699
+ const currentSessions = sessions();
6700
+ const session = currentSessions.get(sessionId);
6701
+ const prompt = session?.context.prompt;
6702
+ dismissSession(sessionId);
6703
+ return prompt;
6704
+ };
6639
6705
  const updateSessionBoundsOnViewportChange = () => {
6640
6706
  const currentSessions = sessions();
6641
6707
  if (currentSessions.size === 0) return;
@@ -6679,6 +6745,7 @@ var createAgentManager = (initialAgentOptions) => {
6679
6745
  abortAllSessions,
6680
6746
  dismissSession,
6681
6747
  undoSession,
6748
+ acknowledgeSessionError,
6682
6749
  updateSessionBoundsOnViewportChange,
6683
6750
  getSessionElement,
6684
6751
  setOptions,
@@ -6687,8 +6754,8 @@ var createAgentManager = (initialAgentOptions) => {
6687
6754
  };
6688
6755
 
6689
6756
  // src/core.tsx
6690
- var _tmpl$24 = /* @__PURE__ */ template(`<span class="tabular-nums align-middle">`);
6691
- var _tmpl$25 = /* @__PURE__ */ template(`<span class="font-mono tabular-nums align-middle">&lt;<!>>`);
6757
+ var _tmpl$25 = /* @__PURE__ */ template(`<span class="tabular-nums align-middle">`);
6758
+ var _tmpl$26 = /* @__PURE__ */ template(`<span class="font-mono tabular-nums align-middle">&lt;<!>>`);
6692
6759
  var _tmpl$33 = /* @__PURE__ */ template(`<span class="tabular-nums ml-1 align-middle"> in `);
6693
6760
  var onIdle = (callback) => {
6694
6761
  if ("scheduler" in globalThis) {
@@ -6785,12 +6852,12 @@ var init = (rawOptions) => {
6785
6852
  hasInited = true;
6786
6853
  const logIntro = () => {
6787
6854
  try {
6788
- const version = "0.0.76";
6855
+ const version = "0.0.77";
6789
6856
  const logoDataUri = `data:image/svg+xml;base64,${btoa(LOGO_SVG)}`;
6790
6857
  console.log(`%cReact Grab${version ? ` v${version}` : ""}%c
6791
6858
  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;`, "");
6792
6859
  if (navigator.onLine && version) {
6793
- fetch(`https://www.react-grab.com/api/version?t=${Date.now()}`, {
6860
+ fetch(`https://www.react-grab.com/api/version?source=browser&t=${Date.now()}`, {
6794
6861
  referrerPolicy: "origin",
6795
6862
  keepalive: true,
6796
6863
  priority: "low",
@@ -6904,6 +6971,8 @@ https://react-grab.com`, `background: #330039; color: #ffffff; border: 1px solid
6904
6971
  let keydownSpamTimerId = null;
6905
6972
  let autoScrollAnimationId = null;
6906
6973
  let previouslyFocusedElement = null;
6974
+ let pendingClickTimeoutId = null;
6975
+ let pendingClickData = null;
6907
6976
  const isRendererActive = createMemo(() => isActivated() && !isCopying());
6908
6977
  const getAutoScrollDirection = (clientX, clientY) => {
6909
6978
  return {
@@ -7164,7 +7233,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
7164
7233
  const copying = isCopying();
7165
7234
  if (!element) {
7166
7235
  return (() => {
7167
- var _el$ = _tmpl$24();
7236
+ var _el$ = _tmpl$25();
7168
7237
  insert(_el$, copying ? "Processing\u2026" : "1 element");
7169
7238
  return _el$;
7170
7239
  })();
@@ -7173,7 +7242,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
7173
7242
  const componentName = labelComponentName();
7174
7243
  if (tagName && componentName) {
7175
7244
  return [(() => {
7176
- var _el$2 = _tmpl$25(), _el$3 = _el$2.firstChild, _el$5 = _el$3.nextSibling; _el$5.nextSibling;
7245
+ var _el$2 = _tmpl$26(), _el$3 = _el$2.firstChild, _el$5 = _el$3.nextSibling; _el$5.nextSibling;
7177
7246
  insert(_el$2, tagName, _el$5);
7178
7247
  return _el$2;
7179
7248
  })(), (() => {
@@ -7184,13 +7253,13 @@ ${plainTextContentOnly}` : plainTextContentOnly;
7184
7253
  }
7185
7254
  if (tagName) {
7186
7255
  return (() => {
7187
- var _el$8 = _tmpl$25(), _el$9 = _el$8.firstChild, _el$1 = _el$9.nextSibling; _el$1.nextSibling;
7256
+ var _el$8 = _tmpl$26(), _el$9 = _el$8.firstChild, _el$1 = _el$9.nextSibling; _el$1.nextSibling;
7188
7257
  insert(_el$8, tagName, _el$1);
7189
7258
  return _el$8;
7190
7259
  })();
7191
7260
  }
7192
7261
  return (() => {
7193
- var _el$10 = _tmpl$24();
7262
+ var _el$10 = _tmpl$25();
7194
7263
  insert(_el$10, copying ? "Processing\u2026" : "1 element");
7195
7264
  return _el$10;
7196
7265
  })();
@@ -7393,6 +7462,11 @@ ${plainTextContentOnly}` : plainTextContentOnly;
7393
7462
  }
7394
7463
  if (holdTimerId) window.clearTimeout(holdTimerId);
7395
7464
  if (keydownSpamTimerId) window.clearTimeout(keydownSpamTimerId);
7465
+ if (pendingClickTimeoutId) {
7466
+ window.clearTimeout(pendingClickTimeoutId);
7467
+ pendingClickTimeoutId = null;
7468
+ pendingClickData = null;
7469
+ }
7396
7470
  stopAutoScroll();
7397
7471
  stopProgressAnimation();
7398
7472
  activationTimestamp = null;
@@ -7631,12 +7705,55 @@ ${plainTextContentOnly}` : plainTextContentOnly;
7631
7705
  } else {
7632
7706
  const element = getElementAtPosition(clientX, clientY);
7633
7707
  if (!element) return;
7634
- setLastGrabbedElement(element);
7635
- const bounds = createElementBounds(element);
7636
- const tagName = extractElementTagName(element);
7637
- void getNearestComponentName(element).then((componentName) => {
7638
- void executeCopyOperation(clientX, clientY, () => copySingleElementToClipboard(element), bounds, tagName, componentName ?? void 0, element);
7639
- });
7708
+ if (hasAgentProvider()) {
7709
+ if (pendingClickTimeoutId !== null) {
7710
+ window.clearTimeout(pendingClickTimeoutId);
7711
+ pendingClickTimeoutId = null;
7712
+ const clickElement = pendingClickData?.element ?? element;
7713
+ pendingClickData = null;
7714
+ const bounds = createElementBounds(clickElement);
7715
+ const selectionCenterX = bounds.x + bounds.width / 2;
7716
+ setCopyStartX(clientX);
7717
+ setCopyStartY(clientY);
7718
+ setCopyOffsetFromCenterX(clientX - selectionCenterX);
7719
+ const cachedInput = elementInputCache.get(clickElement);
7720
+ if (cachedInput) {
7721
+ setInputText(cachedInput);
7722
+ }
7723
+ setMouseX(clientX);
7724
+ setMouseY(clientY);
7725
+ setFrozenElement(clickElement);
7726
+ setIsToggleMode(true);
7727
+ setIsToggleFrozen(true);
7728
+ setIsInputExpanded(true);
7729
+ setIsInputMode(true);
7730
+ return;
7731
+ }
7732
+ pendingClickData = {
7733
+ clientX,
7734
+ clientY,
7735
+ element
7736
+ };
7737
+ pendingClickTimeoutId = window.setTimeout(() => {
7738
+ pendingClickTimeoutId = null;
7739
+ const clickData = pendingClickData;
7740
+ pendingClickData = null;
7741
+ if (!clickData) return;
7742
+ setLastGrabbedElement(clickData.element);
7743
+ const bounds = createElementBounds(clickData.element);
7744
+ const tagName = extractElementTagName(clickData.element);
7745
+ void getNearestComponentName(clickData.element).then((componentName) => {
7746
+ void executeCopyOperation(clickData.clientX, clickData.clientY, () => copySingleElementToClipboard(clickData.element), bounds, tagName, componentName ?? void 0, clickData.element);
7747
+ });
7748
+ }, DOUBLE_CLICK_THRESHOLD_MS);
7749
+ } else {
7750
+ setLastGrabbedElement(element);
7751
+ const bounds = createElementBounds(element);
7752
+ const tagName = extractElementTagName(element);
7753
+ void getNearestComponentName(element).then((componentName) => {
7754
+ void executeCopyOperation(clientX, clientY, () => copySingleElementToClipboard(element), bounds, tagName, componentName ?? void 0, element);
7755
+ });
7756
+ }
7640
7757
  }
7641
7758
  };
7642
7759
  const abortController = new AbortController();
@@ -7777,7 +7894,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
7777
7894
  setIsInputMode(true);
7778
7895
  return;
7779
7896
  }
7780
- if (event.key.toLowerCase() === "o" && !isInputMode()) {
7897
+ if (event.key?.toLowerCase() === "o" && !isInputMode()) {
7781
7898
  if (isActivated() && (event.metaKey || event.ctrlKey)) {
7782
7899
  const filePath = selectionFilePath();
7783
7900
  const lineNumber = selectionLineNumber();
@@ -7870,7 +7987,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
7870
7987
  };
7871
7988
  const requiredModifiers = getRequiredModifiers();
7872
7989
  const isReleasingModifier = requiredModifiers.metaKey || requiredModifiers.ctrlKey ? !event.metaKey && !event.ctrlKey : requiredModifiers.shiftKey && !event.shiftKey || requiredModifiers.altKey && !event.altKey;
7873
- 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);
7990
+ 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);
7874
7991
  if (isActivated()) {
7875
7992
  if (isReleasingModifier) {
7876
7993
  if (isToggleMode()) return;
@@ -8086,6 +8203,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
8086
8203
  abortController.abort();
8087
8204
  if (holdTimerId) window.clearTimeout(holdTimerId);
8088
8205
  if (keydownSpamTimerId) window.clearTimeout(keydownSpamTimerId);
8206
+ if (pendingClickTimeoutId) window.clearTimeout(pendingClickTimeoutId);
8089
8207
  stopAutoScroll();
8090
8208
  stopProgressAnimation();
8091
8209
  document.body.style.userSelect = "";
@@ -8222,6 +8340,12 @@ ${plainTextContentOnly}` : plainTextContentOnly;
8222
8340
  onAbortSession: (sessionId) => agentManager.abortSession(sessionId),
8223
8341
  onDismissSession: (sessionId) => agentManager.dismissSession(sessionId),
8224
8342
  onUndoSession: (sessionId) => agentManager.undoSession(sessionId),
8343
+ onAcknowledgeSessionError: (sessionId) => {
8344
+ const prompt = agentManager.acknowledgeSessionError(sessionId);
8345
+ if (prompt) {
8346
+ setInputText(prompt);
8347
+ }
8348
+ },
8225
8349
  onInputChange: handleInputChange,
8226
8350
  onInputSubmit: () => void handleInputSubmit(),
8227
8351
  onInputCancel: handleInputCancel,