react-grab 0.0.72 → 0.0.74

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-1{padding-block:calc(var(--spacing)*1)}.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)}.pr-1{padding-right:calc(var(--spacing)*1)}.pr-1\\.5{padding-right:calc(var(--spacing)*1.5)}.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-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.72";
1081
+ var VERSION = "0.0.74";
1082
1082
  var VIEWPORT_MARGIN_PX = 8;
1083
1083
  var OFFSCREEN_POSITION = -1e3;
1084
1084
  var SELECTION_LERP_FACTOR = 0.95;
@@ -1086,6 +1086,8 @@ var SUCCESS_LABEL_DURATION_MS = 1700;
1086
1086
  var COPIED_LABEL_DURATION_MS = 1500;
1087
1087
  var SELECTION_CURSOR_SETTLE_DELAY_MS = 500;
1088
1088
  var BLUR_DEACTIVATION_THRESHOLD_MS = 500;
1089
+ var INPUT_FOCUS_ACTIVATION_DELAY_MS = 150;
1090
+ var DEFAULT_KEY_HOLD_DURATION_MS = 200;
1089
1091
  var DRAG_THRESHOLD_PX = 2;
1090
1092
  var ELEMENT_DETECTION_THROTTLE_MS = 32;
1091
1093
  var BOUNDS_RECALC_INTERVAL_MS = 100;
@@ -3806,7 +3808,7 @@ var Crosshair = (props) => {
3806
3808
  var useSpeechRecognition = (options) => {
3807
3809
  let speechRecognition;
3808
3810
  const [isListening, setIsListening] = createSignal(false);
3809
- const isSupported = () => typeof window !== "undefined" && (!!window.SpeechRecognition || !!window.webkitSpeechRecognition);
3811
+ const isSupported = () => typeof window !== "undefined" && (Boolean(window.SpeechRecognition) || Boolean(window.webkitSpeechRecognition));
3810
3812
  const start = () => {
3811
3813
  if (!isSupported()) return;
3812
3814
  const SpeechRecognitionConstructor = window.SpeechRecognition || window.webkitSpeechRecognition;
@@ -3949,18 +3951,21 @@ var _tmpl$52 = /* @__PURE__ */ template(`<div role=button><div class="text-black
3949
3951
  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%)">`);
3950
3952
  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`);
3951
3953
  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?`);
3952
- var _tmpl$9 = /* @__PURE__ */ template(`<div class="[font-synthesis:none] contain-layout shrink-0 flex items-center gap-1 rounded-xs bg-white antialiased w-fit h-fit py-1 px-1.5"><div class="contain-layout shrink-0 flex items-center px-0 py-px w-fit h-[18px] rounded-[1.5px] gap-[3px]"><div class="text-black text-[12px] leading-4 shrink-0 tracking-[-0.04em] font-sans font-medium w-fit h-fit">`);
3953
- var _tmpl$0 = /* @__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">`);
3954
- var _tmpl$1 = /* @__PURE__ */ template(`<div class="shrink-0 flex justify-between items-end w-full min-h-4"><textarea 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>`);
3955
- var _tmpl$10 = /* @__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">`);
3956
- var _tmpl$11 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex items-center gap-px w-fit h-fit">`);
3957
- var _tmpl$12 = /* @__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`);
3958
- var _tmpl$13 = /* @__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>`);
3959
- var _tmpl$14 = /* @__PURE__ */ template(`<button>`);
3960
- var _tmpl$15 = /* @__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">`);
3961
- var _tmpl$16 = /* @__PURE__ */ template(`<div class="shrink-0 flex justify-between items-end w-full min-h-4"><textarea 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">`);
3962
- var _tmpl$17 = /* @__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>`);
3963
- var _tmpl$18 = /* @__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">`);
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">`);
3964
3969
  var ARROW_HEIGHT = 8;
3965
3970
  var LABEL_GAP = 4;
3966
3971
  var IDLE_TIMEOUT_MS = 400;
@@ -4165,6 +4170,15 @@ var SelectionLabel = (props) => {
4165
4170
  resetIdleTimer();
4166
4171
  }
4167
4172
  });
4173
+ createEffect(() => {
4174
+ void props.tagName;
4175
+ void props.componentName;
4176
+ void props.statusText;
4177
+ void props.inputValue;
4178
+ void props.hasAgent;
4179
+ void props.isInputExpanded;
4180
+ requestAnimationFrame(measureContainer);
4181
+ });
4168
4182
  createEffect(() => {
4169
4183
  if (props.visible) {
4170
4184
  requestAnimationFrame(measureContainer);
@@ -4281,7 +4295,7 @@ var SelectionLabel = (props) => {
4281
4295
  return memo(() => props.visible !== false)() && (props.selectionBounds || shouldShowWithoutBounds());
4282
4296
  },
4283
4297
  get children() {
4284
- var _el$14 = _tmpl$18(), _el$18 = _el$14.firstChild;
4298
+ var _el$14 = _tmpl$21(), _el$21 = _el$14.firstChild;
4285
4299
  _el$14.$$click = stopPropagation;
4286
4300
  _el$14.$$mousedown = stopPropagation;
4287
4301
  _el$14.$$pointerdown = handleContainerPointerDown;
@@ -4294,84 +4308,120 @@ var SelectionLabel = (props) => {
4294
4308
  get leftPx() {
4295
4309
  return computedPosition().arrowLeft;
4296
4310
  }
4297
- }), _el$18);
4311
+ }), _el$21);
4298
4312
  insert(_el$14, createComponent(Show, {
4299
4313
  get when() {
4300
4314
  return props.status === "copied" || props.status === "fading";
4301
4315
  },
4302
4316
  get children() {
4303
- var _el$15 = _tmpl$9(), _el$16 = _el$15.firstChild, _el$17 = _el$16.firstChild;
4304
- insert(_el$17, () => props.hasAgent ? "Completed" : "Copied");
4317
+ var _el$15 = _tmpl$10(), _el$16 = _el$15.firstChild, _el$17 = _el$16.firstChild;
4318
+ insert(_el$17, (() => {
4319
+ var _c$ = memo(() => !!props.hasAgent);
4320
+ return () => _c$() ? props.statusText ?? "Completed" : "Copied";
4321
+ })());
4322
+ insert(_el$15, createComponent(Show, {
4323
+ get when() {
4324
+ return props.onDismiss || props.onUndo;
4325
+ },
4326
+ get children() {
4327
+ return createComponent(BottomSection, {
4328
+ get children() {
4329
+ var _el$18 = _tmpl$1();
4330
+ insert(_el$18, createComponent(Show, {
4331
+ get when() {
4332
+ return props.onUndo;
4333
+ },
4334
+ get children() {
4335
+ var _el$19 = _tmpl$9();
4336
+ _el$19.$$click = () => props.onUndo?.();
4337
+ return _el$19;
4338
+ }
4339
+ }), null);
4340
+ insert(_el$18, createComponent(Show, {
4341
+ get when() {
4342
+ return props.onDismiss;
4343
+ },
4344
+ get children() {
4345
+ var _el$20 = _tmpl$0();
4346
+ _el$20.$$click = () => props.onDismiss?.();
4347
+ return _el$20;
4348
+ }
4349
+ }), null);
4350
+ return _el$18;
4351
+ }
4352
+ });
4353
+ }
4354
+ }), null);
4305
4355
  return _el$15;
4306
4356
  }
4307
- }), _el$18);
4308
- insert(_el$18, createComponent(Show, {
4357
+ }), _el$21);
4358
+ insert(_el$21, createComponent(Show, {
4309
4359
  get when() {
4310
4360
  return props.status === "copying";
4311
4361
  },
4312
4362
  get children() {
4313
- var _el$19 = _tmpl$10(), _el$20 = _el$19.firstChild, _el$21 = _el$20.firstChild, _el$22 = _el$21.firstChild;
4314
- insert(_el$22, () => props.statusText ?? "Grabbing\u2026");
4315
- insert(_el$19, createComponent(BottomSection, {
4363
+ var _el$22 = _tmpl$13(), _el$23 = _el$22.firstChild, _el$24 = _el$23.firstChild, _el$25 = _el$24.firstChild;
4364
+ insert(_el$25, () => props.statusText ?? "Grabbing\u2026");
4365
+ insert(_el$22, createComponent(BottomSection, {
4316
4366
  get children() {
4317
- var _el$23 = _tmpl$1(), _el$24 = _el$23.firstChild;
4367
+ var _el$26 = _tmpl$12(), _el$27 = _el$26.firstChild;
4318
4368
  var _ref$2 = inputRef;
4319
- typeof _ref$2 === "function" ? use(_ref$2, _el$24) : inputRef = _el$24;
4320
- insert(_el$23, createComponent(Show, {
4369
+ typeof _ref$2 === "function" ? use(_ref$2, _el$27) : inputRef = _el$27;
4370
+ insert(_el$26, createComponent(Show, {
4321
4371
  get when() {
4322
4372
  return props.onAbort;
4323
4373
  },
4324
4374
  get children() {
4325
- var _el$25 = _tmpl$0();
4326
- _el$25.$$click = (event) => {
4375
+ var _el$28 = _tmpl$11();
4376
+ _el$28.$$click = (event) => {
4327
4377
  event.stopPropagation();
4328
4378
  props.onAbort?.();
4329
4379
  };
4330
- _el$25.$$pointerup = (event) => {
4380
+ _el$28.$$pointerup = (event) => {
4331
4381
  event.stopPropagation();
4332
4382
  props.onAbort?.();
4333
4383
  };
4334
- _el$25.$$mousedown = (event) => event.stopPropagation();
4335
- _el$25.$$pointerdown = (event) => event.stopPropagation();
4336
- return _el$25;
4384
+ _el$28.$$mousedown = (event) => event.stopPropagation();
4385
+ _el$28.$$pointerdown = (event) => event.stopPropagation();
4386
+ return _el$28;
4337
4387
  }
4338
4388
  }), null);
4339
- createRenderEffect(() => _el$24.value = props.inputValue ?? "");
4340
- return _el$23;
4389
+ createRenderEffect(() => _el$27.value = props.inputValue ?? "");
4390
+ return _el$26;
4341
4391
  }
4342
4392
  }), null);
4343
- return _el$19;
4393
+ return _el$22;
4344
4394
  }
4345
4395
  }), null);
4346
- insert(_el$18, createComponent(Show, {
4396
+ insert(_el$21, createComponent(Show, {
4347
4397
  get when() {
4348
4398
  return memo(() => !!isNotProcessing())() && !props.isInputExpanded;
4349
4399
  },
4350
4400
  get children() {
4351
- var _el$26 = _tmpl$13(), _el$27 = _el$26.firstChild, _el$29 = _el$27.nextSibling, _el$30 = _el$29.firstChild;
4352
- insert(_el$27, createComponent(ClickToCopyPill, {
4401
+ var _el$29 = _tmpl$16(), _el$30 = _el$29.firstChild, _el$32 = _el$30.nextSibling, _el$33 = _el$32.firstChild;
4402
+ insert(_el$30, createComponent(ClickToCopyPill, {
4353
4403
  onClick: handleSubmit,
4354
4404
  shrink: true,
4355
4405
  get hasParent() {
4356
- return !!props.componentName;
4406
+ return Boolean(props.componentName);
4357
4407
  },
4358
4408
  get hasAgent() {
4359
4409
  return props.hasAgent;
4360
4410
  }
4361
4411
  }), null);
4362
- insert(_el$27, createComponent(Show, {
4412
+ insert(_el$30, createComponent(Show, {
4363
4413
  get when() {
4364
4414
  return props.componentName;
4365
4415
  },
4366
4416
  get children() {
4367
- var _el$28 = _tmpl$11();
4368
- insert(_el$28, createComponent(ParentBadge, {
4417
+ var _el$31 = _tmpl$14();
4418
+ insert(_el$31, createComponent(ParentBadge, {
4369
4419
  get name() {
4370
4420
  return props.componentName;
4371
4421
  }
4372
4422
  }), null);
4373
- insert(_el$28, createComponent(ChevronSeparator, {}), null);
4374
- insert(_el$28, createComponent(TagBadge, {
4423
+ insert(_el$31, createComponent(ChevronSeparator, {}), null);
4424
+ insert(_el$31, createComponent(TagBadge, {
4375
4425
  get tagName() {
4376
4426
  return tagDisplay();
4377
4427
  },
@@ -4383,10 +4433,10 @@ var SelectionLabel = (props) => {
4383
4433
  showMono: true,
4384
4434
  shrink: true
4385
4435
  }), null);
4386
- return _el$28;
4436
+ return _el$31;
4387
4437
  }
4388
4438
  }), null);
4389
- insert(_el$27, createComponent(Show, {
4439
+ insert(_el$30, createComponent(Show, {
4390
4440
  get when() {
4391
4441
  return !props.componentName;
4392
4442
  },
@@ -4405,60 +4455,60 @@ var SelectionLabel = (props) => {
4405
4455
  });
4406
4456
  }
4407
4457
  }), null);
4408
- insert(_el$30, createComponent(BottomSection, {
4458
+ insert(_el$33, createComponent(BottomSection, {
4409
4459
  get children() {
4410
- var _el$31 = _tmpl$12(), _el$32 = _el$31.firstChild, _el$33 = _el$32.nextSibling;
4411
- insert(_el$33, createComponent(IconReturn, {
4460
+ var _el$34 = _tmpl$15(), _el$35 = _el$34.firstChild, _el$36 = _el$35.nextSibling;
4461
+ insert(_el$36, createComponent(IconReturn, {
4412
4462
  size: 10,
4413
4463
  "class": "opacity-[0.99] text-black"
4414
4464
  }));
4415
- return _el$31;
4465
+ return _el$34;
4416
4466
  }
4417
4467
  }));
4418
4468
  createRenderEffect((_p$) => {
4419
4469
  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");
4420
- _v$3 !== _p$.e && className(_el$27, _p$.e = _v$3);
4421
- _v$4 !== _p$.t && setStyleProperty(_el$29, "grid-template-rows", _p$.t = _v$4);
4422
- _v$5 !== _p$.a && className(_el$30, _p$.a = _v$5);
4470
+ _v$3 !== _p$.e && className(_el$30, _p$.e = _v$3);
4471
+ _v$4 !== _p$.t && setStyleProperty(_el$32, "grid-template-rows", _p$.t = _v$4);
4472
+ _v$5 !== _p$.a && className(_el$33, _p$.a = _v$5);
4423
4473
  return _p$;
4424
4474
  }, {
4425
4475
  e: void 0,
4426
4476
  t: void 0,
4427
4477
  a: void 0
4428
4478
  });
4429
- return _el$26;
4479
+ return _el$29;
4430
4480
  }
4431
4481
  }), null);
4432
- insert(_el$18, createComponent(Show, {
4482
+ insert(_el$21, createComponent(Show, {
4433
4483
  get when() {
4434
4484
  return memo(() => !!(isNotProcessing() && props.isInputExpanded))() && !props.isPendingDismiss;
4435
4485
  },
4436
4486
  get children() {
4437
- var _el$34 = _tmpl$17(), _el$35 = _el$34.firstChild;
4438
- insert(_el$35, createComponent(ClickToCopyPill, {
4487
+ var _el$37 = _tmpl$20(), _el$38 = _el$37.firstChild;
4488
+ insert(_el$38, createComponent(ClickToCopyPill, {
4439
4489
  onClick: handleSubmit,
4440
4490
  dimmed: true,
4441
4491
  shrink: true,
4442
4492
  get hasParent() {
4443
- return !!props.componentName;
4493
+ return Boolean(props.componentName);
4444
4494
  },
4445
4495
  get hasAgent() {
4446
4496
  return props.hasAgent;
4447
4497
  }
4448
4498
  }), null);
4449
- insert(_el$35, createComponent(Show, {
4499
+ insert(_el$38, createComponent(Show, {
4450
4500
  get when() {
4451
4501
  return props.componentName;
4452
4502
  },
4453
4503
  get children() {
4454
- var _el$36 = _tmpl$11();
4455
- insert(_el$36, createComponent(ParentBadge, {
4504
+ var _el$39 = _tmpl$14();
4505
+ insert(_el$39, createComponent(ParentBadge, {
4456
4506
  get name() {
4457
4507
  return props.componentName;
4458
4508
  }
4459
4509
  }), null);
4460
- insert(_el$36, createComponent(ChevronSeparator, {}), null);
4461
- insert(_el$36, createComponent(TagBadge, {
4510
+ insert(_el$39, createComponent(ChevronSeparator, {}), null);
4511
+ insert(_el$39, createComponent(TagBadge, {
4462
4512
  get tagName() {
4463
4513
  return tagDisplay();
4464
4514
  },
@@ -4471,10 +4521,10 @@ var SelectionLabel = (props) => {
4471
4521
  shrink: true,
4472
4522
  forceShowIcon: true
4473
4523
  }), null);
4474
- return _el$36;
4524
+ return _el$39;
4475
4525
  }
4476
4526
  }), null);
4477
- insert(_el$35, createComponent(Show, {
4527
+ insert(_el$38, createComponent(Show, {
4478
4528
  get when() {
4479
4529
  return !props.componentName;
4480
4530
  },
@@ -4494,21 +4544,21 @@ var SelectionLabel = (props) => {
4494
4544
  });
4495
4545
  }
4496
4546
  }), null);
4497
- insert(_el$34, createComponent(BottomSection, {
4547
+ insert(_el$37, createComponent(BottomSection, {
4498
4548
  get children() {
4499
- var _el$37 = _tmpl$16(), _el$38 = _el$37.firstChild, _el$39 = _el$38.nextSibling;
4500
- _el$38.$$keydown = handleKeyDown;
4501
- _el$38.$$input = handleInput;
4549
+ var _el$40 = _tmpl$19(), _el$41 = _el$40.firstChild, _el$42 = _el$41.nextSibling;
4550
+ _el$41.$$keydown = handleKeyDown;
4551
+ _el$41.$$input = handleInput;
4502
4552
  var _ref$3 = inputRef;
4503
- typeof _ref$3 === "function" ? use(_ref$3, _el$38) : inputRef = _el$38;
4504
- insert(_el$39, createComponent(Show, {
4553
+ typeof _ref$3 === "function" ? use(_ref$3, _el$41) : inputRef = _el$41;
4554
+ insert(_el$42, createComponent(Show, {
4505
4555
  get when() {
4506
4556
  return memo(() => !!(props.hasAgent && speechRecognition.isSupported()))() && !props.inputValue;
4507
4557
  },
4508
4558
  get children() {
4509
- var _el$40 = _tmpl$14();
4510
- addEventListener(_el$40, "click", speechRecognition.toggle);
4511
- insert(_el$40, createComponent(IconMic, {
4559
+ var _el$43 = _tmpl$17();
4560
+ addEventListener(_el$43, "click", speechRecognition.toggle);
4561
+ insert(_el$43, createComponent(IconMic, {
4512
4562
  size: 11,
4513
4563
  get ["class"]() {
4514
4564
  return speechRecognition.isListening() ? "animate-pulse" : "";
@@ -4516,40 +4566,40 @@ var SelectionLabel = (props) => {
4516
4566
  }));
4517
4567
  createRenderEffect((_p$) => {
4518
4568
  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";
4519
- _v$6 !== _p$.e && className(_el$40, _p$.e = _v$6);
4520
- _v$7 !== _p$.t && setAttribute(_el$40, "title", _p$.t = _v$7);
4569
+ _v$6 !== _p$.e && className(_el$43, _p$.e = _v$6);
4570
+ _v$7 !== _p$.t && setAttribute(_el$43, "title", _p$.t = _v$7);
4521
4571
  return _p$;
4522
4572
  }, {
4523
4573
  e: void 0,
4524
4574
  t: void 0
4525
4575
  });
4526
- return _el$40;
4576
+ return _el$43;
4527
4577
  }
4528
4578
  }), null);
4529
- insert(_el$39, createComponent(Show, {
4579
+ insert(_el$42, createComponent(Show, {
4530
4580
  get when() {
4531
4581
  return props.inputValue;
4532
4582
  },
4533
4583
  get children() {
4534
- var _el$41 = _tmpl$15();
4535
- _el$41.$$click = handleSubmit;
4536
- insert(_el$41, createComponent(IconReturn, {
4584
+ var _el$44 = _tmpl$18();
4585
+ _el$44.$$click = handleSubmit;
4586
+ insert(_el$44, createComponent(IconReturn, {
4537
4587
  size: 10,
4538
4588
  "class": "opacity-[0.99] text-black"
4539
4589
  }));
4540
- return _el$41;
4590
+ return _el$44;
4541
4591
  }
4542
4592
  }), null);
4543
- createRenderEffect(() => setAttribute(_el$38, "placeholder", speechRecognition.isListening() ? "listening..." : props.hasAgent && props.isAgentConnected ? "type to edit" : "type prompt"));
4544
- createRenderEffect(() => _el$38.value = props.inputValue ?? "");
4545
- return _el$37;
4593
+ createRenderEffect(() => setAttribute(_el$41, "placeholder", speechRecognition.isListening() ? "listening..." : props.hasAgent && props.isAgentConnected ? "type to edit" : "type prompt"));
4594
+ createRenderEffect(() => _el$41.value = props.inputValue ?? "");
4595
+ return _el$40;
4546
4596
  }
4547
4597
  }), null);
4548
- createRenderEffect(() => className(_el$35, 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")));
4549
- return _el$34;
4598
+ 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")));
4599
+ return _el$37;
4550
4600
  }
4551
4601
  }), null);
4552
- insert(_el$18, createComponent(Show, {
4602
+ insert(_el$21, createComponent(Show, {
4553
4603
  get when() {
4554
4604
  return props.isPendingDismiss;
4555
4605
  },
@@ -4565,12 +4615,12 @@ var SelectionLabel = (props) => {
4565
4615
  }
4566
4616
  }), null);
4567
4617
  createRenderEffect((_p$) => {
4568
- var _v$8 = `${computedPosition().top}px`, _v$9 = `${computedPosition().left}px`, _v$0 = props.isInputExpanded ? "auto" : "none", _v$1 = props.status === "fading" ? 0 : 1, _v$10 = props.status === "copied" || props.status === "fading" ? "none" : void 0;
4618
+ 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;
4569
4619
  _v$8 !== _p$.e && setStyleProperty(_el$14, "top", _p$.e = _v$8);
4570
4620
  _v$9 !== _p$.t && setStyleProperty(_el$14, "left", _p$.t = _v$9);
4571
4621
  _v$0 !== _p$.a && setStyleProperty(_el$14, "pointer-events", _p$.a = _v$0);
4572
4622
  _v$1 !== _p$.o && setStyleProperty(_el$14, "opacity", _p$.o = _v$1);
4573
- _v$10 !== _p$.i && setStyleProperty(_el$18, "display", _p$.i = _v$10);
4623
+ _v$10 !== _p$.i && setStyleProperty(_el$21, "display", _p$.i = _v$10);
4574
4624
  return _p$;
4575
4625
  }, {
4576
4626
  e: void 0,
@@ -4586,7 +4636,7 @@ var SelectionLabel = (props) => {
4586
4636
  delegateEvents(["click", "pointerdown", "mousedown", "pointerup", "input", "keydown"]);
4587
4637
 
4588
4638
  // src/components/selection-cursor.tsx
4589
- var _tmpl$19 = /* @__PURE__ */ template(`<div class="fixed z-2147483647"><button data-react-grab-selection-cursor>`);
4639
+ var _tmpl$23 = /* @__PURE__ */ template(`<div class="fixed z-2147483647"><button data-react-grab-selection-cursor>`);
4590
4640
  var SelectionCursor = (props) => {
4591
4641
  const [isHovered, setIsHovered] = createSignal(false);
4592
4642
  const [debouncedVisible, setDebouncedVisible] = createSignal(false);
@@ -4623,7 +4673,7 @@ var SelectionCursor = (props) => {
4623
4673
  });
4624
4674
  }
4625
4675
  }), (() => {
4626
- var _el$ = _tmpl$19(), _el$2 = _el$.firstChild;
4676
+ var _el$ = _tmpl$23(), _el$2 = _el$.firstChild;
4627
4677
  _el$.addEventListener("mouseleave", () => setIsHovered(false));
4628
4678
  _el$.addEventListener("mouseenter", () => setIsHovered(true));
4629
4679
  _el$2.$$click = handleClick;
@@ -4775,7 +4825,13 @@ var ReactGrabRenderer = (props) => {
4775
4825
  get inputValue() {
4776
4826
  return session().context.prompt;
4777
4827
  },
4778
- onAbort: () => props.onAbortSession?.(session().id)
4828
+ onAbort: () => props.onAbortSession?.(session().id),
4829
+ get onDismiss() {
4830
+ return session().isStreaming ? void 0 : () => props.onDismissSession?.(session().id);
4831
+ },
4832
+ get onUndo() {
4833
+ return session().isStreaming ? void 0 : () => props.onUndoSession?.(session().id);
4834
+ }
4779
4835
  })]
4780
4836
  }), createComponent(Show, {
4781
4837
  get when() {
@@ -4905,7 +4961,7 @@ var ReactGrabRenderer = (props) => {
4905
4961
  })];
4906
4962
  };
4907
4963
 
4908
- // ../../node_modules/.pnpm/bippy@0.5.25_@types+react@19.2.2_react@19.2.1/node_modules/bippy/dist/rdt-hook-7WClMTWh.js
4964
+ // ../../node_modules/.pnpm/bippy@0.5.25_@types+react@19.2.7_react@19.2.1/node_modules/bippy/dist/rdt-hook-7WClMTWh.js
4909
4965
  var e = `0.5.25`;
4910
4966
  var t = `bippy-${e}`;
4911
4967
  var n = Object.defineProperty;
@@ -4993,7 +5049,7 @@ var _ = () => {
4993
5049
  }
4994
5050
  };
4995
5051
 
4996
- // ../../node_modules/.pnpm/bippy@0.5.25_@types+react@19.2.2_react@19.2.1/node_modules/bippy/dist/core-CoV0JPOT.js
5052
+ // ../../node_modules/.pnpm/bippy@0.5.25_@types+react@19.2.7_react@19.2.1/node_modules/bippy/dist/core-CoV0JPOT.js
4997
5053
  var a2 = 0;
4998
5054
  var o2 = 1;
4999
5055
  var c2 = 5;
@@ -5081,7 +5137,7 @@ var Pe = (e2) => {
5081
5137
  return null;
5082
5138
  };
5083
5139
 
5084
- // ../../node_modules/.pnpm/bippy@0.5.25_@types+react@19.2.2_react@19.2.1/node_modules/bippy/dist/source.js
5140
+ // ../../node_modules/.pnpm/bippy@0.5.25_@types+react@19.2.7_react@19.2.1/node_modules/bippy/dist/source.js
5085
5141
  var g2 = Object.create;
5086
5142
  var _2 = Object.defineProperty;
5087
5143
  var v = Object.getOwnPropertyDescriptor;
@@ -5723,7 +5779,7 @@ var je = (e2) => {
5723
5779
  // src/utils/is-capitalized.ts
5724
5780
  var isCapitalized = (value) => value.length > 0 && /^[A-Z]/.test(value);
5725
5781
 
5726
- // ../../node_modules/.pnpm/bippy@0.5.25_@types+react@19.2.2_react@19.2.1/node_modules/bippy/dist/install-hook-only-CTBENLgG.js
5782
+ // ../../node_modules/.pnpm/bippy@0.5.25_@types+react@19.2.7_react@19.2.1/node_modules/bippy/dist/install-hook-only-CTBENLgG.js
5727
5783
  _();
5728
5784
 
5729
5785
  // src/context.ts
@@ -5886,11 +5942,12 @@ var getHTMLPreview = (element) => {
5886
5942
 
5887
5943
  // src/utils/copy-content.ts
5888
5944
  var REACT_GRAB_MIME_TYPE = "application/x-react-grab";
5889
- var copyContent = (content, onSuccess) => {
5945
+ var copyContent = (content, options) => {
5890
5946
  const metadata = JSON.stringify({
5891
5947
  version: VERSION,
5892
5948
  content,
5893
- timestamp: Date.now()
5949
+ timestamp: Date.now(),
5950
+ ...options?.prompt && { prompt: options.prompt }
5894
5951
  });
5895
5952
  const copyHandler = (event) => {
5896
5953
  event.preventDefault();
@@ -5908,7 +5965,7 @@ var copyContent = (content, onSuccess) => {
5908
5965
  try {
5909
5966
  const didCopySucceed = document.execCommand("copy");
5910
5967
  if (didCopySucceed) {
5911
- onSuccess?.();
5968
+ options?.onSuccess?.();
5912
5969
  }
5913
5970
  return didCopySucceed;
5914
5971
  } finally {
@@ -6362,9 +6419,7 @@ var createAgentManager = (initialAgentOptions) => {
6362
6419
  const isProcessing = () => sessions().size > 0;
6363
6420
  const executeSessionStream = async (session, streamIterator) => {
6364
6421
  const storage = agentOptions?.storage;
6365
- let didComplete = false;
6366
6422
  let wasAborted = false;
6367
- let hadError = false;
6368
6423
  try {
6369
6424
  for await (const status of streamIterator) {
6370
6425
  const currentSessions = sessions();
@@ -6378,13 +6433,16 @@ var createAgentManager = (initialAgentOptions) => {
6378
6433
  setSessions((prev) => new Map(prev).set(session.id, updatedSession));
6379
6434
  agentOptions?.onStatus?.(status, updatedSession);
6380
6435
  }
6381
- didComplete = true;
6382
6436
  const finalSessions = sessions();
6383
6437
  const finalSession = finalSessions.get(session.id);
6384
6438
  if (finalSession) {
6439
+ const completionMessage = agentOptions?.provider?.getCompletionMessage?.();
6385
6440
  const completedSession = updateSession(
6386
6441
  finalSession,
6387
- { isStreaming: false },
6442
+ {
6443
+ isStreaming: false,
6444
+ ...completionMessage ? { lastStatus: completionMessage } : {}
6445
+ },
6388
6446
  storage
6389
6447
  );
6390
6448
  setSessions((prev) => new Map(prev).set(session.id, completedSession));
@@ -6416,7 +6474,6 @@ var createAgentManager = (initialAgentOptions) => {
6416
6474
  setSessions((prev) => new Map(prev).set(session.id, errorSession));
6417
6475
  }
6418
6476
  } else {
6419
- hadError = true;
6420
6477
  if (currentSession) {
6421
6478
  const errorSession = updateSession(
6422
6479
  currentSession,
@@ -6435,7 +6492,7 @@ var createAgentManager = (initialAgentOptions) => {
6435
6492
  }
6436
6493
  } finally {
6437
6494
  abortControllers.delete(session.id);
6438
- const removeSession = () => {
6495
+ if (wasAborted) {
6439
6496
  sessionElements.delete(session.id);
6440
6497
  clearSessionById(session.id, storage);
6441
6498
  setSessions((prev) => {
@@ -6443,11 +6500,6 @@ var createAgentManager = (initialAgentOptions) => {
6443
6500
  next.delete(session.id);
6444
6501
  return next;
6445
6502
  });
6446
- };
6447
- if (wasAborted) {
6448
- removeSession();
6449
- } else if (didComplete || hadError) {
6450
- setTimeout(removeSession, 1500);
6451
6503
  }
6452
6504
  }
6453
6505
  };
@@ -6562,20 +6614,33 @@ var createAgentManager = (initialAgentOptions) => {
6562
6614
  setSessions(/* @__PURE__ */ new Map());
6563
6615
  clearSessions(agentOptions?.storage);
6564
6616
  };
6617
+ const dismissSession = (sessionId) => {
6618
+ const storage = agentOptions?.storage;
6619
+ sessionElements.delete(sessionId);
6620
+ clearSessionById(sessionId, storage);
6621
+ setSessions((prev) => {
6622
+ const next = new Map(prev);
6623
+ next.delete(sessionId);
6624
+ return next;
6625
+ });
6626
+ };
6627
+ const undoSession = (sessionId) => {
6628
+ const currentSessions = sessions();
6629
+ const session = currentSessions.get(sessionId);
6630
+ if (session) {
6631
+ const element = sessionElements.get(sessionId);
6632
+ agentOptions?.onUndo?.(session, element);
6633
+ void agentOptions?.provider?.undo?.();
6634
+ }
6635
+ dismissSession(sessionId);
6636
+ };
6565
6637
  const updateSessionBoundsOnViewportChange = () => {
6566
6638
  const currentSessions = sessions();
6567
6639
  if (currentSessions.size === 0) return;
6568
6640
  const updatedSessions = new Map(currentSessions);
6569
6641
  let didUpdate = false;
6570
6642
  for (const [sessionId, session] of currentSessions) {
6571
- let element = sessionElements.get(sessionId);
6572
- if (!element || !document.contains(element)) {
6573
- const reacquiredElement = tryReacquireElement(session);
6574
- if (reacquiredElement) {
6575
- sessionElements.set(sessionId, reacquiredElement);
6576
- element = reacquiredElement;
6577
- }
6578
- }
6643
+ const element = sessionElements.get(sessionId);
6579
6644
  if (element && document.contains(element)) {
6580
6645
  const newBounds = createElementBounds(element);
6581
6646
  if (newBounds) {
@@ -6610,6 +6675,8 @@ var createAgentManager = (initialAgentOptions) => {
6610
6675
  startSession,
6611
6676
  abortSession,
6612
6677
  abortAllSessions,
6678
+ dismissSession,
6679
+ undoSession,
6613
6680
  updateSessionBoundsOnViewportChange,
6614
6681
  getSessionElement,
6615
6682
  setOptions,
@@ -6618,8 +6685,8 @@ var createAgentManager = (initialAgentOptions) => {
6618
6685
  };
6619
6686
 
6620
6687
  // src/core.tsx
6621
- var _tmpl$20 = /* @__PURE__ */ template(`<span class="tabular-nums align-middle">`);
6622
- var _tmpl$23 = /* @__PURE__ */ template(`<span class="font-mono tabular-nums align-middle">&lt;<!>>`);
6688
+ var _tmpl$24 = /* @__PURE__ */ template(`<span class="tabular-nums align-middle">`);
6689
+ var _tmpl$25 = /* @__PURE__ */ template(`<span class="font-mono tabular-nums align-middle">&lt;<!>>`);
6623
6690
  var _tmpl$33 = /* @__PURE__ */ template(`<span class="tabular-nums ml-1 align-middle"> in `);
6624
6691
  var onIdle = (callback) => {
6625
6692
  if ("scheduler" in globalThis) {
@@ -6669,13 +6736,15 @@ var init = (rawOptions) => {
6669
6736
  },
6670
6737
  getTheme: () => initialTheme,
6671
6738
  setAgent: () => {
6739
+ },
6740
+ updateOptions: () => {
6672
6741
  }
6673
6742
  };
6674
6743
  }
6675
6744
  const scriptOptions = getScriptOptions();
6676
- const options = {
6745
+ let options = {
6677
6746
  enabled: true,
6678
- keyHoldDuration: 200,
6747
+ keyHoldDuration: DEFAULT_KEY_HOLD_DURATION_MS,
6679
6748
  allowActivationInsideInput: true,
6680
6749
  maxContextLines: 3,
6681
6750
  ...scriptOptions,
@@ -6706,13 +6775,15 @@ var init = (rawOptions) => {
6706
6775
  },
6707
6776
  getTheme: () => mergedTheme,
6708
6777
  setAgent: () => {
6778
+ },
6779
+ updateOptions: () => {
6709
6780
  }
6710
6781
  };
6711
6782
  }
6712
6783
  hasInited = true;
6713
6784
  const logIntro = () => {
6714
6785
  try {
6715
- const version = "0.0.72";
6786
+ const version = "0.0.74";
6716
6787
  const logoDataUri = `data:image/svg+xml;base64,${btoa(LOGO_SVG)}`;
6717
6788
  console.log(`%cReact Grab${version ? ` v${version}` : ""}%c
6718
6789
  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;`, "");
@@ -6950,7 +7021,9 @@ https://react-grab.com`, `background: #330039; color: #ffffff; border: 1px solid
6950
7021
 
6951
7022
  ${combinedSnippets}` : combinedSnippets;
6952
7023
  copiedContent = plainTextContent;
6953
- didCopy = copyContent(plainTextContent);
7024
+ didCopy = copyContent(plainTextContent, {
7025
+ prompt: extraPrompt
7026
+ });
6954
7027
  }
6955
7028
  if (!didCopy) {
6956
7029
  const plainTextContentOnly = createCombinedTextContent(elements);
@@ -6959,12 +7032,11 @@ ${combinedSnippets}` : combinedSnippets;
6959
7032
 
6960
7033
  ${plainTextContentOnly}` : plainTextContentOnly;
6961
7034
  copiedContent = contentWithPrompt;
6962
- didCopy = copyContent(contentWithPrompt);
7035
+ didCopy = copyContent(contentWithPrompt, {
7036
+ prompt: extraPrompt
7037
+ });
6963
7038
  }
6964
7039
  }
6965
- if (didCopy) {
6966
- options.onCopySuccess?.(elements, copiedContent);
6967
- }
6968
7040
  } catch (error) {
6969
7041
  options.onCopyError?.(error);
6970
7042
  const plainTextContentOnly = createCombinedTextContent(elements);
@@ -6973,9 +7045,14 @@ ${plainTextContentOnly}` : plainTextContentOnly;
6973
7045
 
6974
7046
  ${plainTextContentOnly}` : plainTextContentOnly;
6975
7047
  copiedContent = contentWithPrompt;
6976
- didCopy = copyContent(contentWithPrompt);
7048
+ didCopy = copyContent(contentWithPrompt, {
7049
+ prompt: extraPrompt
7050
+ });
6977
7051
  }
6978
7052
  }
7053
+ if (didCopy) {
7054
+ options.onCopySuccess?.(elements, copiedContent);
7055
+ }
6979
7056
  options.onAfterCopy?.(elements, didCopy);
6980
7057
  return didCopy;
6981
7058
  };
@@ -7025,6 +7102,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
7025
7102
  onCleanup(() => clearInterval(intervalId));
7026
7103
  });
7027
7104
  createEffect(() => {
7105
+ if (isToggleFrozen()) return;
7028
7106
  const element = targetElement();
7029
7107
  if (element) {
7030
7108
  setFrozenElement(element);
@@ -7084,7 +7162,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
7084
7162
  const copying = isCopying();
7085
7163
  if (!element) {
7086
7164
  return (() => {
7087
- var _el$ = _tmpl$20();
7165
+ var _el$ = _tmpl$24();
7088
7166
  insert(_el$, copying ? "Processing\u2026" : "1 element");
7089
7167
  return _el$;
7090
7168
  })();
@@ -7093,7 +7171,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
7093
7171
  const componentName = labelComponentName();
7094
7172
  if (tagName && componentName) {
7095
7173
  return [(() => {
7096
- var _el$2 = _tmpl$23(), _el$3 = _el$2.firstChild, _el$5 = _el$3.nextSibling; _el$5.nextSibling;
7174
+ var _el$2 = _tmpl$25(), _el$3 = _el$2.firstChild, _el$5 = _el$3.nextSibling; _el$5.nextSibling;
7097
7175
  insert(_el$2, tagName, _el$5);
7098
7176
  return _el$2;
7099
7177
  })(), (() => {
@@ -7104,13 +7182,13 @@ ${plainTextContentOnly}` : plainTextContentOnly;
7104
7182
  }
7105
7183
  if (tagName) {
7106
7184
  return (() => {
7107
- var _el$8 = _tmpl$23(), _el$9 = _el$8.firstChild, _el$1 = _el$9.nextSibling; _el$1.nextSibling;
7185
+ var _el$8 = _tmpl$25(), _el$9 = _el$8.firstChild, _el$1 = _el$9.nextSibling; _el$1.nextSibling;
7108
7186
  insert(_el$8, tagName, _el$1);
7109
7187
  return _el$8;
7110
7188
  })();
7111
7189
  }
7112
7190
  return (() => {
7113
- var _el$10 = _tmpl$20();
7191
+ var _el$10 = _tmpl$24();
7114
7192
  insert(_el$10, copying ? "Processing\u2026" : "1 element");
7115
7193
  return _el$10;
7116
7194
  })();
@@ -7240,7 +7318,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
7240
7318
  }));
7241
7319
  const startProgressAnimation = (duration) => {
7242
7320
  const startTime = Date.now();
7243
- const animationDuration = options.keyHoldDuration;
7321
+ const animationDuration = options.keyHoldDuration ?? DEFAULT_KEY_HOLD_DURATION_MS;
7244
7322
  setProgressStartTime(startTime);
7245
7323
  const animateProgress = () => {
7246
7324
  const currentStartTime = progressStartTime();
@@ -7322,25 +7400,32 @@ ${plainTextContentOnly}` : plainTextContentOnly;
7322
7400
  previouslyFocusedElement = null;
7323
7401
  options.onDeactivate?.();
7324
7402
  };
7403
+ const restoreInputFromSession = (session, element) => {
7404
+ if (element && document.contains(element)) {
7405
+ const rect = element.getBoundingClientRect();
7406
+ const centerY = rect.top + rect.height / 2;
7407
+ setMouseX(session.position.x);
7408
+ setMouseY(centerY);
7409
+ setFrozenElement(element);
7410
+ setInputText(session.context.prompt);
7411
+ setIsInputExpanded(true);
7412
+ setIsInputMode(true);
7413
+ setIsToggleMode(true);
7414
+ setIsToggleFrozen(true);
7415
+ if (!isActivated()) {
7416
+ activateRenderer();
7417
+ }
7418
+ }
7419
+ };
7325
7420
  const agentOptions = options.agent ? {
7326
7421
  ...options.agent,
7327
7422
  onAbort: (session, element) => {
7328
7423
  options.agent?.onAbort?.(session, element);
7329
- if (element && document.contains(element)) {
7330
- const rect = element.getBoundingClientRect();
7331
- const centerY = rect.top + rect.height / 2;
7332
- setMouseX(session.position.x);
7333
- setMouseY(centerY);
7334
- setFrozenElement(element);
7335
- setInputText(session.context.prompt);
7336
- setIsInputExpanded(true);
7337
- setIsInputMode(true);
7338
- setIsToggleMode(true);
7339
- setIsToggleFrozen(true);
7340
- if (!isActivated()) {
7341
- activateRenderer();
7342
- }
7343
- }
7424
+ restoreInputFromSession(session, element);
7425
+ },
7426
+ onUndo: (session, element) => {
7427
+ options.agent?.onUndo?.(session, element);
7428
+ restoreInputFromSession(session, element);
7344
7429
  }
7345
7430
  } : void 0;
7346
7431
  const agentManager = createAgentManager(agentOptions);
@@ -7629,7 +7714,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
7629
7714
  }
7630
7715
  }
7631
7716
  const copiedElement = lastCopiedElement();
7632
- if (isEnterCode(event.code) && !isHoldingKeys() && !isInputMode() && !isActivated() && copiedElement && document.contains(copiedElement)) {
7717
+ if (isEnterCode(event.code) && !isHoldingKeys() && !isInputMode() && !isActivated() && copiedElement && document.contains(copiedElement) && !labelInstances().some((instance) => instance.status === "copied" || instance.status === "fading")) {
7633
7718
  event.preventDefault();
7634
7719
  event.stopPropagation();
7635
7720
  event.stopImmediatePropagation();
@@ -7740,9 +7825,11 @@ ${plainTextContentOnly}` : plainTextContentOnly;
7740
7825
  if (!isHoldingKeys()) {
7741
7826
  setIsHoldingKeys(true);
7742
7827
  }
7828
+ const keyHoldDuration = options.keyHoldDuration ?? DEFAULT_KEY_HOLD_DURATION_MS;
7829
+ const activationDuration = isKeyboardEventTriggeredByInput(event) ? keyHoldDuration + INPUT_FOCUS_ACTIVATION_DELAY_MS : keyHoldDuration;
7743
7830
  holdTimerId = window.setTimeout(() => {
7744
7831
  activateRenderer();
7745
- }, options.keyHoldDuration);
7832
+ }, activationDuration);
7746
7833
  }, {
7747
7834
  signal: eventListenerSignal,
7748
7835
  capture: true
@@ -7761,10 +7848,10 @@ ${plainTextContentOnly}` : plainTextContentOnly;
7761
7848
  altKey
7762
7849
  } = options.activationKey;
7763
7850
  return {
7764
- metaKey: !!metaKey,
7765
- ctrlKey: !!ctrlKey,
7766
- shiftKey: !!shiftKey,
7767
- altKey: !!altKey
7851
+ metaKey: Boolean(metaKey),
7852
+ ctrlKey: Boolean(ctrlKey),
7853
+ shiftKey: Boolean(shiftKey),
7854
+ altKey: Boolean(altKey)
7768
7855
  };
7769
7856
  }
7770
7857
  return {
@@ -8126,6 +8213,8 @@ ${plainTextContentOnly}` : plainTextContentOnly;
8126
8213
  return agentManager.sessions();
8127
8214
  },
8128
8215
  onAbortSession: (sessionId) => agentManager.abortSession(sessionId),
8216
+ onDismissSession: (sessionId) => agentManager.dismissSession(sessionId),
8217
+ onUndoSession: (sessionId) => agentManager.undoSession(sessionId),
8129
8218
  onInputChange: handleInputChange,
8130
8219
  onInputSubmit: () => void handleInputSubmit(),
8131
8220
  onInputCancel: handleInputCancel,
@@ -8225,21 +8314,11 @@ ${plainTextContentOnly}` : plainTextContentOnly;
8225
8314
  provider: newAgentOptions.provider ?? existingOptions?.provider,
8226
8315
  onAbort: (session, element) => {
8227
8316
  newAgentOptions?.onAbort?.(session, element);
8228
- if (element && document.contains(element)) {
8229
- const rect = element.getBoundingClientRect();
8230
- const centerY = rect.top + rect.height / 2;
8231
- setMouseX(session.position.x);
8232
- setMouseY(centerY);
8233
- setFrozenElement(element);
8234
- setInputText(session.context.prompt);
8235
- setIsInputExpanded(true);
8236
- setIsInputMode(true);
8237
- setIsToggleMode(true);
8238
- setIsToggleFrozen(true);
8239
- if (!isActivated()) {
8240
- activateRenderer();
8241
- }
8242
- }
8317
+ restoreInputFromSession(session, element);
8318
+ },
8319
+ onUndo: (session, element) => {
8320
+ newAgentOptions?.onUndo?.(session, element);
8321
+ restoreInputFromSession(session, element);
8243
8322
  }
8244
8323
  };
8245
8324
  agentManager.setOptions(mergedOptions);
@@ -8250,6 +8329,12 @@ ${plainTextContentOnly}` : plainTextContentOnly;
8250
8329
  });
8251
8330
  }
8252
8331
  agentManager.tryResumeSessions();
8332
+ },
8333
+ updateOptions: (newOptions) => {
8334
+ options = {
8335
+ ...options,
8336
+ ...newOptions
8337
+ };
8253
8338
  }
8254
8339
  };
8255
8340
  });