react-grab 0.0.71 → 0.0.73
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/{chunk-RPPUX2ZU.cjs → chunk-6ZPKD3CA.cjs} +548 -210
- package/dist/{chunk-HJLMLJJA.js → chunk-KXX6WKZA.js} +548 -210
- package/dist/{core-Dm5hxkI3.d.cts → core-eQvDkDGv.d.cts} +12 -2
- package/dist/{core-Dm5hxkI3.d.ts → core-eQvDkDGv.d.ts} +12 -2
- package/dist/core.cjs +7 -7
- package/dist/core.d.cts +1 -1
- package/dist/core.d.ts +1 -1
- package/dist/core.js +1 -1
- package/dist/index.cjs +8 -8
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.global.js +27 -27
- package/dist/index.js +2 -2
- package/dist/styles.css +1 -1
- package/package.json +1 -1
|
@@ -576,6 +576,61 @@ function mapArray(list, mapFn, options = {}) {
|
|
|
576
576
|
}
|
|
577
577
|
};
|
|
578
578
|
}
|
|
579
|
+
function indexArray(list, mapFn, options = {}) {
|
|
580
|
+
let items = [], mapped = [], disposers = [], signals = [], len = 0, i2;
|
|
581
|
+
onCleanup(() => dispose(disposers));
|
|
582
|
+
return () => {
|
|
583
|
+
const newItems = list() || [], newLen = newItems.length;
|
|
584
|
+
newItems[$TRACK];
|
|
585
|
+
return untrack(() => {
|
|
586
|
+
if (newLen === 0) {
|
|
587
|
+
if (len !== 0) {
|
|
588
|
+
dispose(disposers);
|
|
589
|
+
disposers = [];
|
|
590
|
+
items = [];
|
|
591
|
+
mapped = [];
|
|
592
|
+
len = 0;
|
|
593
|
+
signals = [];
|
|
594
|
+
}
|
|
595
|
+
if (options.fallback) {
|
|
596
|
+
items = [FALLBACK];
|
|
597
|
+
mapped[0] = createRoot((disposer) => {
|
|
598
|
+
disposers[0] = disposer;
|
|
599
|
+
return options.fallback();
|
|
600
|
+
});
|
|
601
|
+
len = 1;
|
|
602
|
+
}
|
|
603
|
+
return mapped;
|
|
604
|
+
}
|
|
605
|
+
if (items[0] === FALLBACK) {
|
|
606
|
+
disposers[0]();
|
|
607
|
+
disposers = [];
|
|
608
|
+
items = [];
|
|
609
|
+
mapped = [];
|
|
610
|
+
len = 0;
|
|
611
|
+
}
|
|
612
|
+
for (i2 = 0; i2 < newLen; i2++) {
|
|
613
|
+
if (i2 < items.length && items[i2] !== newItems[i2]) {
|
|
614
|
+
signals[i2](() => newItems[i2]);
|
|
615
|
+
} else if (i2 >= items.length) {
|
|
616
|
+
mapped[i2] = createRoot(mapper);
|
|
617
|
+
}
|
|
618
|
+
}
|
|
619
|
+
for (; i2 < items.length; i2++) {
|
|
620
|
+
disposers[i2]();
|
|
621
|
+
}
|
|
622
|
+
len = signals.length = disposers.length = newLen;
|
|
623
|
+
items = newItems.slice(0);
|
|
624
|
+
return mapped = mapped.slice(0, len);
|
|
625
|
+
});
|
|
626
|
+
function mapper(disposer) {
|
|
627
|
+
disposers[i2] = disposer;
|
|
628
|
+
const [s3, set] = createSignal(newItems[i2]);
|
|
629
|
+
signals[i2] = set;
|
|
630
|
+
return mapFn(s3, i2);
|
|
631
|
+
}
|
|
632
|
+
};
|
|
633
|
+
}
|
|
579
634
|
function createComponent(Comp, props) {
|
|
580
635
|
return untrack(() => Comp(props || {}));
|
|
581
636
|
}
|
|
@@ -586,6 +641,12 @@ function For(props) {
|
|
|
586
641
|
};
|
|
587
642
|
return createMemo(mapArray(() => props.each, props.children, fallback || void 0));
|
|
588
643
|
}
|
|
644
|
+
function Index(props) {
|
|
645
|
+
const fallback = "fallback" in props && {
|
|
646
|
+
fallback: () => props.fallback
|
|
647
|
+
};
|
|
648
|
+
return createMemo(indexArray(() => props.each, props.children, fallback || void 0));
|
|
649
|
+
}
|
|
589
650
|
function Show(props) {
|
|
590
651
|
const keyed = props.keyed;
|
|
591
652
|
const conditionValue = createMemo(() => props.when, void 0, void 0);
|
|
@@ -888,7 +949,7 @@ function cleanChildren(parent, current, marker, replacement) {
|
|
|
888
949
|
|
|
889
950
|
// dist/styles.css
|
|
890
951
|
var styles_default = `/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */
|
|
891
|
-
@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)}.-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-\\[9px\\]{height:9px}.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-2\\.5{width:calc(var(--spacing)*2.5)}.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-\\[\\#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)}.bg-cover{background-size:cover}.bg-center{background-position:50%}.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-\\[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-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\\:opacity-100:hover{opacity:1}}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes flash{0%{opacity:1;background-color:#d239c040;border-color:#d239c0}50%{opacity:1;background-color:#d239c073;border-color:#e650d2}to{opacity:1;background-color:#d239c014;border-color:#d239c080}}.react-grab-flash{animation:.4s ease-out forwards flash}.react-grab-shimmer{position:relative;overflow:hidden}.react-grab-shimmer:after{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(90deg,#0000 0%,#fff6 50%,#0000 100%) 0 0/200% 100%;animation:1.5s ease-in-out infinite shimmer;position:absolute;inset:0}@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}}`;
|
|
892
953
|
|
|
893
954
|
// src/utils/is-keyboard-event-triggered-by-input.ts
|
|
894
955
|
var FORM_TAGS_AND_ROLES = [
|
|
@@ -1017,7 +1078,7 @@ var buildOpenFileUrl = (filePath, lineNumber) => {
|
|
|
1017
1078
|
};
|
|
1018
1079
|
|
|
1019
1080
|
// src/constants.ts
|
|
1020
|
-
var VERSION = "0.0.
|
|
1081
|
+
var VERSION = "0.0.73";
|
|
1021
1082
|
var VIEWPORT_MARGIN_PX = 8;
|
|
1022
1083
|
var OFFSCREEN_POSITION = -1e3;
|
|
1023
1084
|
var SELECTION_LERP_FACTOR = 0.95;
|
|
@@ -1025,6 +1086,7 @@ var SUCCESS_LABEL_DURATION_MS = 1700;
|
|
|
1025
1086
|
var COPIED_LABEL_DURATION_MS = 1500;
|
|
1026
1087
|
var SELECTION_CURSOR_SETTLE_DELAY_MS = 500;
|
|
1027
1088
|
var BLUR_DEACTIVATION_THRESHOLD_MS = 500;
|
|
1089
|
+
var INPUT_FOCUS_ACTIVATION_DELAY_MS = 150;
|
|
1028
1090
|
var DRAG_THRESHOLD_PX = 2;
|
|
1029
1091
|
var ELEMENT_DETECTION_THROTTLE_MS = 32;
|
|
1030
1092
|
var BOUNDS_RECALC_INTERVAL_MS = 100;
|
|
@@ -3599,7 +3661,7 @@ var SelectionBox = (props) => {
|
|
|
3599
3661
|
get children() {
|
|
3600
3662
|
var _el$ = _tmpl$();
|
|
3601
3663
|
createRenderEffect((_p$) => {
|
|
3602
|
-
var _v$ = cn("fixed box-border", props.variant === "drag" && "pointer-events-none", props.variant !== "drag" && "pointer-events-auto", props.variant === "grabbed" && "z-2147483645", props.variant !== "grabbed" && "z-2147483646", props.variant === "drag" && "border border-solid border-grab-purple/40 bg-grab-purple/5 will-change-[transform,width,height] cursor-crosshair", props.variant === "selection" && "border border-solid border-grab-purple/50 bg-grab-purple/8 transition-opacity duration-100 ease-out", props.variant === "grabbed" && "border border-solid
|
|
3664
|
+
var _v$ = cn("fixed box-border", props.variant === "drag" && "pointer-events-none", props.variant !== "drag" && "pointer-events-auto", props.variant === "grabbed" && "z-2147483645", props.variant !== "grabbed" && "z-2147483646", props.variant === "drag" && "border border-solid border-grab-purple/40 bg-grab-purple/5 will-change-[transform,width,height] cursor-crosshair", props.variant === "selection" && "border border-solid border-grab-purple/50 bg-grab-purple/8 transition-opacity duration-100 ease-out", props.variant === "grabbed" && "border border-solid border-grab-purple/50 bg-grab-purple/8", props.variant === "processing" && !props.isCompleted && "border border-solid border-grab-purple/50 bg-grab-purple/8", props.variant === "processing" && props.isCompleted && "border border-solid border-grab-purple/50 bg-grab-purple/8"), _v$2 = `${currentY()}px`, _v$3 = `${currentX()}px`, _v$4 = `${currentWidth()}px`, _v$5 = `${currentHeight()}px`, _v$6 = props.bounds.borderRadius, _v$7 = props.bounds.transform, _v$8 = props.isFading ? 0 : opacity(), _v$9 = props.variant === "drag" ? "layout paint size" : void 0;
|
|
3603
3665
|
_v$ !== _p$.e && className(_el$, _p$.e = _v$);
|
|
3604
3666
|
_v$2 !== _p$.t && setStyleProperty(_el$, "top", _p$.t = _v$2);
|
|
3605
3667
|
_v$3 !== _p$.a && setStyleProperty(_el$, "left", _p$.a = _v$3);
|
|
@@ -3761,7 +3823,7 @@ var useSpeechRecognition = (options) => {
|
|
|
3761
3823
|
let baseValue;
|
|
3762
3824
|
if (lastInterimText && currentValue.endsWith(lastInterimText)) {
|
|
3763
3825
|
baseValue = currentValue.slice(0, -lastInterimText.length);
|
|
3764
|
-
} else if (currentValue === lastValueWeSet) {
|
|
3826
|
+
} else if (currentValue === lastValueWeSet && lastInterimText) {
|
|
3765
3827
|
baseValue = currentValue.slice(0, -lastInterimText.length);
|
|
3766
3828
|
} else {
|
|
3767
3829
|
baseValue = currentValue;
|
|
@@ -3858,25 +3920,51 @@ var IconMic = (props) => {
|
|
|
3858
3920
|
})();
|
|
3859
3921
|
};
|
|
3860
3922
|
|
|
3923
|
+
// src/components/icon-return.tsx
|
|
3924
|
+
var _tmpl$5 = /* @__PURE__ */ template(`<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 22 19"fill=none><path d="M6.76263 18.6626C7.48251 18.6626 7.95474 18.1682 7.95474 17.4895C7.95474 17.1207 7.80474 16.8576 7.58683 16.6361L5.3018 14.4137L2.84621 12.3589L2.44374 13.0037L5.92137 13.1622H17.9232C20.4842 13.1622 21.593 12.021 21.593 9.47237V3.66983C21.593 1.10875 20.4842 0 17.9232 0H12.5414C11.8179 0 11.3018 0.545895 11.3018 1.21695C11.3018 1.888 11.8179 2.43389 12.5414 2.43389H17.8424C18.7937 2.43389 19.1897 2.83653 19.1897 3.78784V9.35747C19.1897 10.3257 18.7937 10.7314 17.8424 10.7314H5.92137L2.44374 10.8832L2.84621 11.5281L5.3018 9.47993L7.58683 7.2606C7.80474 7.03914 7.95474 6.7693 7.95474 6.40049C7.95474 5.72854 7.48251 5.22747 6.76263 5.22747C6.46129 5.22747 6.12975 5.36905 5.89231 5.6096L0.376815 11.0425C0.134921 11.2777 0 11.6141 0 11.9452C0 12.2728 0.134921 12.6158 0.376815 12.848L5.89231 18.2871C6.12975 18.5276 6.46129 18.6626 6.76263 18.6626Z"fill=currentColor>`);
|
|
3925
|
+
var IconReturn = (props) => {
|
|
3926
|
+
const size = () => props.size ?? 12;
|
|
3927
|
+
return (() => {
|
|
3928
|
+
var _el$ = _tmpl$5();
|
|
3929
|
+
createRenderEffect((_p$) => {
|
|
3930
|
+
var _v$ = size(), _v$2 = size() * 19 / 22, _v$3 = props.class;
|
|
3931
|
+
_v$ !== _p$.e && setAttribute(_el$, "width", _p$.e = _v$);
|
|
3932
|
+
_v$2 !== _p$.t && setAttribute(_el$, "height", _p$.t = _v$2);
|
|
3933
|
+
_v$3 !== _p$.a && setAttribute(_el$, "class", _p$.a = _v$3);
|
|
3934
|
+
return _p$;
|
|
3935
|
+
}, {
|
|
3936
|
+
e: void 0,
|
|
3937
|
+
t: void 0,
|
|
3938
|
+
a: void 0
|
|
3939
|
+
});
|
|
3940
|
+
return _el$;
|
|
3941
|
+
})();
|
|
3942
|
+
};
|
|
3943
|
+
|
|
3861
3944
|
// src/components/selection-label.tsx
|
|
3862
|
-
var _tmpl$
|
|
3945
|
+
var _tmpl$6 = /* @__PURE__ */ template(`<div style="background-image:linear-gradient(in oklab 180deg, oklab(88.7% 0.086 -0.058) 0%, oklab(83.2% 0.132 -0.089) 100%)"><span>`);
|
|
3863
3946
|
var _tmpl$22 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex items-center w-fit h-4 rounded-[1px] gap-1 px-[3px] [border-width:0.5px] border-solid border-[#B3B3B3] py-0 bg-[#F7F7F7]"><span class="text-[#0C0C0C] text-[11.5px] leading-3.5 shrink-0 tracking-[-0.08em] font-[ui-monospace,'SFMono-Regular','SF_Mono','Menlo','Consolas','Liberation_Mono',monospace] w-fit h-fit">`);
|
|
3864
3947
|
var _tmpl$32 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex items-center w-fit h-4 rounded-[1px] gap-1 px-[3px] [border-width:0.5px] border-solid border-white py-0"><span class="text-[#0C0C0C] text-[11.5px] leading-3.5 shrink-0 tracking-[-0.08em] font-[ui-monospace,'SFMono-Regular','SF_Mono','Menlo','Consolas','Liberation_Mono',monospace] w-fit h-fit">>`);
|
|
3865
3948
|
var _tmpl$42 = /* @__PURE__ */ template(`<div class="absolute w-0 h-0"style="border-left:8px solid transparent;border-right:8px solid transparent">`);
|
|
3866
3949
|
var _tmpl$52 = /* @__PURE__ */ template(`<div role=button><div class="text-black text-[12px] leading-4 shrink-0 tracking-[-0.04em] font-sans font-medium w-fit h-fit">`);
|
|
3867
|
-
var _tmpl$
|
|
3868
|
-
var _tmpl$7 = /* @__PURE__ */ template(`<div class="[
|
|
3869
|
-
var _tmpl$8 = /* @__PURE__ */ template(`<
|
|
3870
|
-
var _tmpl$9 = /* @__PURE__ */ template(`<
|
|
3871
|
-
var _tmpl$0 = /* @__PURE__ */ template(`<
|
|
3872
|
-
var _tmpl$1 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex items-center gap-
|
|
3873
|
-
var _tmpl$10 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex
|
|
3874
|
-
var _tmpl$11 = /* @__PURE__ */ template(`<
|
|
3875
|
-
var _tmpl$12 = /* @__PURE__ */ template(`<
|
|
3876
|
-
var _tmpl$13 = /* @__PURE__ */ template(`<
|
|
3877
|
-
var _tmpl$14 = /* @__PURE__ */ template(`<div class="
|
|
3878
|
-
var _tmpl$15 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex
|
|
3879
|
-
var _tmpl$16 = /* @__PURE__ */ template(`<div
|
|
3950
|
+
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%)">`);
|
|
3951
|
+
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`);
|
|
3952
|
+
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?`);
|
|
3953
|
+
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`);
|
|
3954
|
+
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`);
|
|
3955
|
+
var _tmpl$1 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex items-center justify-end gap-[5px] w-full h-fit">`);
|
|
3956
|
+
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">`);
|
|
3957
|
+
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">`);
|
|
3958
|
+
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>`);
|
|
3959
|
+
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">`);
|
|
3960
|
+
var _tmpl$14 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex items-center gap-px w-fit h-fit">`);
|
|
3961
|
+
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`);
|
|
3962
|
+
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>`);
|
|
3963
|
+
var _tmpl$17 = /* @__PURE__ */ template(`<button>`);
|
|
3964
|
+
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">`);
|
|
3965
|
+
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">`);
|
|
3966
|
+
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>`);
|
|
3967
|
+
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">`);
|
|
3880
3968
|
var ARROW_HEIGHT = 8;
|
|
3881
3969
|
var LABEL_GAP = 4;
|
|
3882
3970
|
var IDLE_TIMEOUT_MS = 400;
|
|
@@ -3891,7 +3979,7 @@ var TagBadge = (props) => {
|
|
|
3891
3979
|
props.onHoverChange?.(false);
|
|
3892
3980
|
};
|
|
3893
3981
|
return (() => {
|
|
3894
|
-
var _el$ = _tmpl$
|
|
3982
|
+
var _el$ = _tmpl$6(), _el$2 = _el$.firstChild;
|
|
3895
3983
|
addEventListener(_el$, "click", props.onClick);
|
|
3896
3984
|
_el$.addEventListener("mouseleave", handleMouseLeave);
|
|
3897
3985
|
_el$.addEventListener("mouseenter", handleMouseEnter);
|
|
@@ -3964,19 +4052,61 @@ var ClickToCopyPill = (props) => {
|
|
|
3964
4052
|
})();
|
|
3965
4053
|
};
|
|
3966
4054
|
var BottomSection = (props) => (() => {
|
|
3967
|
-
var _el$9 = _tmpl$
|
|
4055
|
+
var _el$9 = _tmpl$62();
|
|
3968
4056
|
insert(_el$9, () => props.children);
|
|
3969
4057
|
return _el$9;
|
|
3970
4058
|
})();
|
|
4059
|
+
var DismissConfirmation = (props) => {
|
|
4060
|
+
const handleKeyDown = (event) => {
|
|
4061
|
+
if (event.code === "Enter") {
|
|
4062
|
+
event.preventDefault();
|
|
4063
|
+
event.stopPropagation();
|
|
4064
|
+
props.onConfirm?.();
|
|
4065
|
+
} else if (event.code === "Escape") {
|
|
4066
|
+
event.preventDefault();
|
|
4067
|
+
event.stopPropagation();
|
|
4068
|
+
props.onCancel?.();
|
|
4069
|
+
}
|
|
4070
|
+
};
|
|
4071
|
+
onMount(() => {
|
|
4072
|
+
window.addEventListener("keydown", handleKeyDown, {
|
|
4073
|
+
capture: true
|
|
4074
|
+
});
|
|
4075
|
+
});
|
|
4076
|
+
onCleanup(() => {
|
|
4077
|
+
window.removeEventListener("keydown", handleKeyDown, {
|
|
4078
|
+
capture: true
|
|
4079
|
+
});
|
|
4080
|
+
});
|
|
4081
|
+
return (() => {
|
|
4082
|
+
var _el$0 = _tmpl$8(); _el$0.firstChild;
|
|
4083
|
+
insert(_el$0, createComponent(BottomSection, {
|
|
4084
|
+
get children() {
|
|
4085
|
+
var _el$10 = _tmpl$7(), _el$11 = _el$10.firstChild, _el$12 = _el$11.nextSibling; _el$12.firstChild;
|
|
4086
|
+
addEventListener(_el$11, "click", props.onCancel);
|
|
4087
|
+
addEventListener(_el$12, "click", props.onConfirm);
|
|
4088
|
+
insert(_el$12, createComponent(IconReturn, {
|
|
4089
|
+
size: 10,
|
|
4090
|
+
"class": "text-[#c00002]"
|
|
4091
|
+
}), null);
|
|
4092
|
+
return _el$10;
|
|
4093
|
+
}
|
|
4094
|
+
}), null);
|
|
4095
|
+
return _el$0;
|
|
4096
|
+
})();
|
|
4097
|
+
};
|
|
3971
4098
|
var SelectionLabel = (props) => {
|
|
3972
4099
|
let containerRef;
|
|
3973
4100
|
let inputRef;
|
|
3974
4101
|
let isTagCurrentlyHovered = false;
|
|
4102
|
+
let lastValidPosition = null;
|
|
4103
|
+
let lastElementIdentity = null;
|
|
3975
4104
|
const [measuredWidth, setMeasuredWidth] = createSignal(0);
|
|
3976
4105
|
const [measuredHeight, setMeasuredHeight] = createSignal(0);
|
|
3977
4106
|
const [arrowPosition, setArrowPosition] = createSignal("bottom");
|
|
3978
4107
|
const [viewportVersion, setViewportVersion] = createSignal(0);
|
|
3979
4108
|
const [isIdle, setIsIdle] = createSignal(false);
|
|
4109
|
+
const [hadValidBounds, setHadValidBounds] = createSignal(false);
|
|
3980
4110
|
const speechRecognition = useSpeechRecognition({
|
|
3981
4111
|
onTranscript: (transcript) => props.onInputChange?.(transcript),
|
|
3982
4112
|
getCurrentValue: () => props.inputValue ?? ""
|
|
@@ -4033,8 +4163,11 @@ var SelectionLabel = (props) => {
|
|
|
4033
4163
|
}
|
|
4034
4164
|
});
|
|
4035
4165
|
createEffect(() => {
|
|
4036
|
-
|
|
4037
|
-
|
|
4166
|
+
const elementIdentity = `${props.tagName ?? ""}:${props.componentName ?? ""}`;
|
|
4167
|
+
if (elementIdentity !== lastElementIdentity) {
|
|
4168
|
+
lastElementIdentity = elementIdentity;
|
|
4169
|
+
resetIdleTimer();
|
|
4170
|
+
}
|
|
4038
4171
|
});
|
|
4039
4172
|
createEffect(() => {
|
|
4040
4173
|
if (props.visible) {
|
|
@@ -4059,8 +4192,10 @@ var SelectionLabel = (props) => {
|
|
|
4059
4192
|
const bounds = props.selectionBounds;
|
|
4060
4193
|
const labelWidth = measuredWidth();
|
|
4061
4194
|
const labelHeight = measuredHeight();
|
|
4062
|
-
|
|
4063
|
-
|
|
4195
|
+
const hasMeasurements = labelWidth > 0 && labelHeight > 0;
|
|
4196
|
+
const hasValidBounds = bounds && bounds.width > 0 && bounds.height > 0;
|
|
4197
|
+
if (!hasMeasurements || !hasValidBounds) {
|
|
4198
|
+
return lastValidPosition ?? {
|
|
4064
4199
|
left: -9999,
|
|
4065
4200
|
top: -9999,
|
|
4066
4201
|
arrowLeft: 0
|
|
@@ -4092,11 +4227,14 @@ var SelectionLabel = (props) => {
|
|
|
4092
4227
|
positionTop = VIEWPORT_MARGIN_PX;
|
|
4093
4228
|
}
|
|
4094
4229
|
const arrowLeft = Math.max(12, Math.min(cursorX - positionLeft, labelWidth - 12));
|
|
4095
|
-
|
|
4230
|
+
const position = {
|
|
4096
4231
|
left: positionLeft,
|
|
4097
4232
|
top: positionTop,
|
|
4098
4233
|
arrowLeft
|
|
4099
4234
|
};
|
|
4235
|
+
lastValidPosition = position;
|
|
4236
|
+
setHadValidBounds(true);
|
|
4237
|
+
return position;
|
|
4100
4238
|
};
|
|
4101
4239
|
const handleKeyDown = (event) => {
|
|
4102
4240
|
event.stopPropagation();
|
|
@@ -4129,85 +4267,129 @@ var SelectionLabel = (props) => {
|
|
|
4129
4267
|
event.stopPropagation();
|
|
4130
4268
|
event.stopImmediatePropagation();
|
|
4131
4269
|
};
|
|
4270
|
+
const handleContainerPointerDown = (event) => {
|
|
4271
|
+
stopPropagation(event);
|
|
4272
|
+
const isEditableInputVisible = isNotProcessing() && props.isInputExpanded && !props.isPendingDismiss;
|
|
4273
|
+
if (isEditableInputVisible && inputRef) {
|
|
4274
|
+
inputRef.focus();
|
|
4275
|
+
}
|
|
4276
|
+
};
|
|
4132
4277
|
const handleSubmit = () => {
|
|
4133
4278
|
if (props.isInputExpanded && !props.inputValue?.trim()) return;
|
|
4134
4279
|
speechRecognition.stop();
|
|
4135
4280
|
props.onSubmit?.();
|
|
4136
4281
|
};
|
|
4282
|
+
const shouldShowWithoutBounds = () => hadValidBounds() && (props.status === "copied" || props.status === "fading");
|
|
4137
4283
|
return createComponent(Show, {
|
|
4138
4284
|
get when() {
|
|
4139
|
-
return memo(() => props.visible !== false)() && props.selectionBounds;
|
|
4285
|
+
return memo(() => props.visible !== false)() && (props.selectionBounds || shouldShowWithoutBounds());
|
|
4140
4286
|
},
|
|
4141
4287
|
get children() {
|
|
4142
|
-
var _el$
|
|
4143
|
-
_el$
|
|
4144
|
-
_el$
|
|
4145
|
-
_el$
|
|
4288
|
+
var _el$14 = _tmpl$21(), _el$21 = _el$14.firstChild;
|
|
4289
|
+
_el$14.$$click = stopPropagation;
|
|
4290
|
+
_el$14.$$mousedown = stopPropagation;
|
|
4291
|
+
_el$14.$$pointerdown = handleContainerPointerDown;
|
|
4146
4292
|
var _ref$ = containerRef;
|
|
4147
|
-
typeof _ref$ === "function" ? use(_ref$, _el$
|
|
4148
|
-
insert(_el$
|
|
4293
|
+
typeof _ref$ === "function" ? use(_ref$, _el$14) : containerRef = _el$14;
|
|
4294
|
+
insert(_el$14, createComponent(Arrow, {
|
|
4149
4295
|
get position() {
|
|
4150
4296
|
return arrowPosition();
|
|
4151
4297
|
},
|
|
4152
4298
|
get leftPx() {
|
|
4153
4299
|
return computedPosition().arrowLeft;
|
|
4154
4300
|
}
|
|
4155
|
-
}), _el$
|
|
4156
|
-
insert(_el$
|
|
4301
|
+
}), _el$21);
|
|
4302
|
+
insert(_el$14, createComponent(Show, {
|
|
4157
4303
|
get when() {
|
|
4158
4304
|
return props.status === "copied" || props.status === "fading";
|
|
4159
4305
|
},
|
|
4160
4306
|
get children() {
|
|
4161
|
-
var _el$
|
|
4162
|
-
insert(_el$
|
|
4163
|
-
|
|
4307
|
+
var _el$15 = _tmpl$10(), _el$16 = _el$15.firstChild, _el$17 = _el$16.firstChild;
|
|
4308
|
+
insert(_el$17, (() => {
|
|
4309
|
+
var _c$ = memo(() => !!props.hasAgent);
|
|
4310
|
+
return () => _c$() ? props.statusText ?? "Completed" : "Copied";
|
|
4311
|
+
})());
|
|
4312
|
+
insert(_el$15, createComponent(Show, {
|
|
4313
|
+
get when() {
|
|
4314
|
+
return props.onDismiss || props.onUndo;
|
|
4315
|
+
},
|
|
4316
|
+
get children() {
|
|
4317
|
+
return createComponent(BottomSection, {
|
|
4318
|
+
get children() {
|
|
4319
|
+
var _el$18 = _tmpl$1();
|
|
4320
|
+
insert(_el$18, createComponent(Show, {
|
|
4321
|
+
get when() {
|
|
4322
|
+
return props.onUndo;
|
|
4323
|
+
},
|
|
4324
|
+
get children() {
|
|
4325
|
+
var _el$19 = _tmpl$9();
|
|
4326
|
+
_el$19.$$click = () => props.onUndo?.();
|
|
4327
|
+
return _el$19;
|
|
4328
|
+
}
|
|
4329
|
+
}), null);
|
|
4330
|
+
insert(_el$18, createComponent(Show, {
|
|
4331
|
+
get when() {
|
|
4332
|
+
return props.onDismiss;
|
|
4333
|
+
},
|
|
4334
|
+
get children() {
|
|
4335
|
+
var _el$20 = _tmpl$0();
|
|
4336
|
+
_el$20.$$click = () => props.onDismiss?.();
|
|
4337
|
+
return _el$20;
|
|
4338
|
+
}
|
|
4339
|
+
}), null);
|
|
4340
|
+
return _el$18;
|
|
4341
|
+
}
|
|
4342
|
+
});
|
|
4343
|
+
}
|
|
4344
|
+
}), null);
|
|
4345
|
+
return _el$15;
|
|
4164
4346
|
}
|
|
4165
|
-
}), _el$
|
|
4166
|
-
insert(_el$
|
|
4347
|
+
}), _el$21);
|
|
4348
|
+
insert(_el$21, createComponent(Show, {
|
|
4167
4349
|
get when() {
|
|
4168
4350
|
return props.status === "copying";
|
|
4169
4351
|
},
|
|
4170
4352
|
get children() {
|
|
4171
|
-
var _el$
|
|
4172
|
-
insert(_el$
|
|
4173
|
-
insert(_el$
|
|
4353
|
+
var _el$22 = _tmpl$13(), _el$23 = _el$22.firstChild, _el$24 = _el$23.firstChild, _el$25 = _el$24.firstChild;
|
|
4354
|
+
insert(_el$25, () => props.statusText ?? "Grabbing\u2026");
|
|
4355
|
+
insert(_el$22, createComponent(BottomSection, {
|
|
4174
4356
|
get children() {
|
|
4175
|
-
var _el$
|
|
4357
|
+
var _el$26 = _tmpl$12(), _el$27 = _el$26.firstChild;
|
|
4176
4358
|
var _ref$2 = inputRef;
|
|
4177
|
-
typeof _ref$2 === "function" ? use(_ref$2, _el$
|
|
4178
|
-
insert(_el$
|
|
4359
|
+
typeof _ref$2 === "function" ? use(_ref$2, _el$27) : inputRef = _el$27;
|
|
4360
|
+
insert(_el$26, createComponent(Show, {
|
|
4179
4361
|
get when() {
|
|
4180
4362
|
return props.onAbort;
|
|
4181
4363
|
},
|
|
4182
4364
|
get children() {
|
|
4183
|
-
var _el$
|
|
4184
|
-
_el$
|
|
4365
|
+
var _el$28 = _tmpl$11();
|
|
4366
|
+
_el$28.$$click = (event) => {
|
|
4185
4367
|
event.stopPropagation();
|
|
4186
4368
|
props.onAbort?.();
|
|
4187
4369
|
};
|
|
4188
|
-
_el$
|
|
4370
|
+
_el$28.$$pointerup = (event) => {
|
|
4189
4371
|
event.stopPropagation();
|
|
4190
4372
|
props.onAbort?.();
|
|
4191
4373
|
};
|
|
4192
|
-
_el$
|
|
4193
|
-
_el$
|
|
4194
|
-
return _el$
|
|
4374
|
+
_el$28.$$mousedown = (event) => event.stopPropagation();
|
|
4375
|
+
_el$28.$$pointerdown = (event) => event.stopPropagation();
|
|
4376
|
+
return _el$28;
|
|
4195
4377
|
}
|
|
4196
4378
|
}), null);
|
|
4197
|
-
createRenderEffect(() => _el$
|
|
4198
|
-
return _el$
|
|
4379
|
+
createRenderEffect(() => _el$27.value = props.inputValue ?? "");
|
|
4380
|
+
return _el$26;
|
|
4199
4381
|
}
|
|
4200
4382
|
}), null);
|
|
4201
|
-
return _el$
|
|
4383
|
+
return _el$22;
|
|
4202
4384
|
}
|
|
4203
4385
|
}), null);
|
|
4204
|
-
insert(_el$
|
|
4386
|
+
insert(_el$21, createComponent(Show, {
|
|
4205
4387
|
get when() {
|
|
4206
4388
|
return memo(() => !!isNotProcessing())() && !props.isInputExpanded;
|
|
4207
4389
|
},
|
|
4208
4390
|
get children() {
|
|
4209
|
-
var _el$
|
|
4210
|
-
insert(_el$
|
|
4391
|
+
var _el$29 = _tmpl$16(), _el$30 = _el$29.firstChild, _el$32 = _el$30.nextSibling, _el$33 = _el$32.firstChild;
|
|
4392
|
+
insert(_el$30, createComponent(ClickToCopyPill, {
|
|
4211
4393
|
onClick: handleSubmit,
|
|
4212
4394
|
shrink: true,
|
|
4213
4395
|
get hasParent() {
|
|
@@ -4217,19 +4399,19 @@ var SelectionLabel = (props) => {
|
|
|
4217
4399
|
return props.hasAgent;
|
|
4218
4400
|
}
|
|
4219
4401
|
}), null);
|
|
4220
|
-
insert(_el$
|
|
4402
|
+
insert(_el$30, createComponent(Show, {
|
|
4221
4403
|
get when() {
|
|
4222
4404
|
return props.componentName;
|
|
4223
4405
|
},
|
|
4224
4406
|
get children() {
|
|
4225
|
-
var _el$
|
|
4226
|
-
insert(_el$
|
|
4407
|
+
var _el$31 = _tmpl$14();
|
|
4408
|
+
insert(_el$31, createComponent(ParentBadge, {
|
|
4227
4409
|
get name() {
|
|
4228
4410
|
return props.componentName;
|
|
4229
4411
|
}
|
|
4230
4412
|
}), null);
|
|
4231
|
-
insert(_el$
|
|
4232
|
-
insert(_el$
|
|
4413
|
+
insert(_el$31, createComponent(ChevronSeparator, {}), null);
|
|
4414
|
+
insert(_el$31, createComponent(TagBadge, {
|
|
4233
4415
|
get tagName() {
|
|
4234
4416
|
return tagDisplay();
|
|
4235
4417
|
},
|
|
@@ -4241,10 +4423,10 @@ var SelectionLabel = (props) => {
|
|
|
4241
4423
|
showMono: true,
|
|
4242
4424
|
shrink: true
|
|
4243
4425
|
}), null);
|
|
4244
|
-
return _el$
|
|
4426
|
+
return _el$31;
|
|
4245
4427
|
}
|
|
4246
4428
|
}), null);
|
|
4247
|
-
insert(_el$
|
|
4429
|
+
insert(_el$30, createComponent(Show, {
|
|
4248
4430
|
get when() {
|
|
4249
4431
|
return !props.componentName;
|
|
4250
4432
|
},
|
|
@@ -4263,33 +4445,37 @@ var SelectionLabel = (props) => {
|
|
|
4263
4445
|
});
|
|
4264
4446
|
}
|
|
4265
4447
|
}), null);
|
|
4266
|
-
insert(_el$
|
|
4448
|
+
insert(_el$33, createComponent(BottomSection, {
|
|
4267
4449
|
get children() {
|
|
4268
|
-
var _el$
|
|
4269
|
-
|
|
4450
|
+
var _el$34 = _tmpl$15(), _el$35 = _el$34.firstChild, _el$36 = _el$35.nextSibling;
|
|
4451
|
+
insert(_el$36, createComponent(IconReturn, {
|
|
4452
|
+
size: 10,
|
|
4453
|
+
"class": "opacity-[0.99] text-black"
|
|
4454
|
+
}));
|
|
4455
|
+
return _el$34;
|
|
4270
4456
|
}
|
|
4271
4457
|
}));
|
|
4272
4458
|
createRenderEffect((_p$) => {
|
|
4273
4459
|
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");
|
|
4274
|
-
_v$3 !== _p$.e && className(_el$
|
|
4275
|
-
_v$4 !== _p$.t && setStyleProperty(_el$
|
|
4276
|
-
_v$5 !== _p$.a && className(_el$
|
|
4460
|
+
_v$3 !== _p$.e && className(_el$30, _p$.e = _v$3);
|
|
4461
|
+
_v$4 !== _p$.t && setStyleProperty(_el$32, "grid-template-rows", _p$.t = _v$4);
|
|
4462
|
+
_v$5 !== _p$.a && className(_el$33, _p$.a = _v$5);
|
|
4277
4463
|
return _p$;
|
|
4278
4464
|
}, {
|
|
4279
4465
|
e: void 0,
|
|
4280
4466
|
t: void 0,
|
|
4281
4467
|
a: void 0
|
|
4282
4468
|
});
|
|
4283
|
-
return _el$
|
|
4469
|
+
return _el$29;
|
|
4284
4470
|
}
|
|
4285
4471
|
}), null);
|
|
4286
|
-
insert(_el$
|
|
4472
|
+
insert(_el$21, createComponent(Show, {
|
|
4287
4473
|
get when() {
|
|
4288
|
-
return memo(() => !!isNotProcessing())() && props.
|
|
4474
|
+
return memo(() => !!(isNotProcessing() && props.isInputExpanded))() && !props.isPendingDismiss;
|
|
4289
4475
|
},
|
|
4290
4476
|
get children() {
|
|
4291
|
-
var _el$
|
|
4292
|
-
insert(_el$
|
|
4477
|
+
var _el$37 = _tmpl$20(), _el$38 = _el$37.firstChild;
|
|
4478
|
+
insert(_el$38, createComponent(ClickToCopyPill, {
|
|
4293
4479
|
onClick: handleSubmit,
|
|
4294
4480
|
dimmed: true,
|
|
4295
4481
|
shrink: true,
|
|
@@ -4300,19 +4486,19 @@ var SelectionLabel = (props) => {
|
|
|
4300
4486
|
return props.hasAgent;
|
|
4301
4487
|
}
|
|
4302
4488
|
}), null);
|
|
4303
|
-
insert(_el$
|
|
4489
|
+
insert(_el$38, createComponent(Show, {
|
|
4304
4490
|
get when() {
|
|
4305
4491
|
return props.componentName;
|
|
4306
4492
|
},
|
|
4307
4493
|
get children() {
|
|
4308
|
-
var _el$
|
|
4309
|
-
insert(_el$
|
|
4494
|
+
var _el$39 = _tmpl$14();
|
|
4495
|
+
insert(_el$39, createComponent(ParentBadge, {
|
|
4310
4496
|
get name() {
|
|
4311
4497
|
return props.componentName;
|
|
4312
4498
|
}
|
|
4313
4499
|
}), null);
|
|
4314
|
-
insert(_el$
|
|
4315
|
-
insert(_el$
|
|
4500
|
+
insert(_el$39, createComponent(ChevronSeparator, {}), null);
|
|
4501
|
+
insert(_el$39, createComponent(TagBadge, {
|
|
4316
4502
|
get tagName() {
|
|
4317
4503
|
return tagDisplay();
|
|
4318
4504
|
},
|
|
@@ -4325,10 +4511,10 @@ var SelectionLabel = (props) => {
|
|
|
4325
4511
|
shrink: true,
|
|
4326
4512
|
forceShowIcon: true
|
|
4327
4513
|
}), null);
|
|
4328
|
-
return _el$
|
|
4514
|
+
return _el$39;
|
|
4329
4515
|
}
|
|
4330
4516
|
}), null);
|
|
4331
|
-
insert(_el$
|
|
4517
|
+
insert(_el$38, createComponent(Show, {
|
|
4332
4518
|
get when() {
|
|
4333
4519
|
return !props.componentName;
|
|
4334
4520
|
},
|
|
@@ -4348,21 +4534,21 @@ var SelectionLabel = (props) => {
|
|
|
4348
4534
|
});
|
|
4349
4535
|
}
|
|
4350
4536
|
}), null);
|
|
4351
|
-
insert(_el$
|
|
4537
|
+
insert(_el$37, createComponent(BottomSection, {
|
|
4352
4538
|
get children() {
|
|
4353
|
-
var _el$
|
|
4354
|
-
_el$
|
|
4355
|
-
_el$
|
|
4539
|
+
var _el$40 = _tmpl$19(), _el$41 = _el$40.firstChild, _el$42 = _el$41.nextSibling;
|
|
4540
|
+
_el$41.$$keydown = handleKeyDown;
|
|
4541
|
+
_el$41.$$input = handleInput;
|
|
4356
4542
|
var _ref$3 = inputRef;
|
|
4357
|
-
typeof _ref$3 === "function" ? use(_ref$3, _el$
|
|
4358
|
-
insert(_el$
|
|
4543
|
+
typeof _ref$3 === "function" ? use(_ref$3, _el$41) : inputRef = _el$41;
|
|
4544
|
+
insert(_el$42, createComponent(Show, {
|
|
4359
4545
|
get when() {
|
|
4360
4546
|
return memo(() => !!(props.hasAgent && speechRecognition.isSupported()))() && !props.inputValue;
|
|
4361
4547
|
},
|
|
4362
4548
|
get children() {
|
|
4363
|
-
var _el$
|
|
4364
|
-
addEventListener(_el$
|
|
4365
|
-
insert(_el$
|
|
4549
|
+
var _el$43 = _tmpl$17();
|
|
4550
|
+
addEventListener(_el$43, "click", speechRecognition.toggle);
|
|
4551
|
+
insert(_el$43, createComponent(IconMic, {
|
|
4366
4552
|
size: 11,
|
|
4367
4553
|
get ["class"]() {
|
|
4368
4554
|
return speechRecognition.isListening() ? "animate-pulse" : "";
|
|
@@ -4370,42 +4556,61 @@ var SelectionLabel = (props) => {
|
|
|
4370
4556
|
}));
|
|
4371
4557
|
createRenderEffect((_p$) => {
|
|
4372
4558
|
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";
|
|
4373
|
-
_v$6 !== _p$.e && className(_el$
|
|
4374
|
-
_v$7 !== _p$.t && setAttribute(_el$
|
|
4559
|
+
_v$6 !== _p$.e && className(_el$43, _p$.e = _v$6);
|
|
4560
|
+
_v$7 !== _p$.t && setAttribute(_el$43, "title", _p$.t = _v$7);
|
|
4375
4561
|
return _p$;
|
|
4376
4562
|
}, {
|
|
4377
4563
|
e: void 0,
|
|
4378
4564
|
t: void 0
|
|
4379
4565
|
});
|
|
4380
|
-
return _el$
|
|
4566
|
+
return _el$43;
|
|
4381
4567
|
}
|
|
4382
4568
|
}), null);
|
|
4383
|
-
insert(_el$
|
|
4569
|
+
insert(_el$42, createComponent(Show, {
|
|
4384
4570
|
get when() {
|
|
4385
4571
|
return props.inputValue;
|
|
4386
4572
|
},
|
|
4387
4573
|
get children() {
|
|
4388
|
-
var _el$
|
|
4389
|
-
_el$
|
|
4390
|
-
|
|
4574
|
+
var _el$44 = _tmpl$18();
|
|
4575
|
+
_el$44.$$click = handleSubmit;
|
|
4576
|
+
insert(_el$44, createComponent(IconReturn, {
|
|
4577
|
+
size: 10,
|
|
4578
|
+
"class": "opacity-[0.99] text-black"
|
|
4579
|
+
}));
|
|
4580
|
+
return _el$44;
|
|
4391
4581
|
}
|
|
4392
4582
|
}), null);
|
|
4393
|
-
createRenderEffect(() => setAttribute(_el$
|
|
4394
|
-
createRenderEffect(() => _el$
|
|
4395
|
-
return _el$
|
|
4583
|
+
createRenderEffect(() => setAttribute(_el$41, "placeholder", speechRecognition.isListening() ? "listening..." : props.hasAgent && props.isAgentConnected ? "type to edit" : "type prompt"));
|
|
4584
|
+
createRenderEffect(() => _el$41.value = props.inputValue ?? "");
|
|
4585
|
+
return _el$40;
|
|
4396
4586
|
}
|
|
4397
4587
|
}), null);
|
|
4398
|
-
createRenderEffect(() => className(_el$
|
|
4399
|
-
return _el$
|
|
4588
|
+
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")));
|
|
4589
|
+
return _el$37;
|
|
4590
|
+
}
|
|
4591
|
+
}), null);
|
|
4592
|
+
insert(_el$21, createComponent(Show, {
|
|
4593
|
+
get when() {
|
|
4594
|
+
return props.isPendingDismiss;
|
|
4595
|
+
},
|
|
4596
|
+
get children() {
|
|
4597
|
+
return createComponent(DismissConfirmation, {
|
|
4598
|
+
get onConfirm() {
|
|
4599
|
+
return props.onConfirmDismiss;
|
|
4600
|
+
},
|
|
4601
|
+
get onCancel() {
|
|
4602
|
+
return props.onCancelDismiss;
|
|
4603
|
+
}
|
|
4604
|
+
});
|
|
4400
4605
|
}
|
|
4401
4606
|
}), null);
|
|
4402
4607
|
createRenderEffect((_p$) => {
|
|
4403
|
-
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;
|
|
4404
|
-
_v$8 !== _p$.e && setStyleProperty(_el$
|
|
4405
|
-
_v$9 !== _p$.t && setStyleProperty(_el$
|
|
4406
|
-
_v$0 !== _p$.a && setStyleProperty(_el$
|
|
4407
|
-
_v$1 !== _p$.o && setStyleProperty(_el$
|
|
4408
|
-
_v$10 !== _p$.i && setStyleProperty(_el$
|
|
4608
|
+
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;
|
|
4609
|
+
_v$8 !== _p$.e && setStyleProperty(_el$14, "top", _p$.e = _v$8);
|
|
4610
|
+
_v$9 !== _p$.t && setStyleProperty(_el$14, "left", _p$.t = _v$9);
|
|
4611
|
+
_v$0 !== _p$.a && setStyleProperty(_el$14, "pointer-events", _p$.a = _v$0);
|
|
4612
|
+
_v$1 !== _p$.o && setStyleProperty(_el$14, "opacity", _p$.o = _v$1);
|
|
4613
|
+
_v$10 !== _p$.i && setStyleProperty(_el$21, "display", _p$.i = _v$10);
|
|
4409
4614
|
return _p$;
|
|
4410
4615
|
}, {
|
|
4411
4616
|
e: void 0,
|
|
@@ -4414,14 +4619,14 @@ var SelectionLabel = (props) => {
|
|
|
4414
4619
|
o: void 0,
|
|
4415
4620
|
i: void 0
|
|
4416
4621
|
});
|
|
4417
|
-
return _el$
|
|
4622
|
+
return _el$14;
|
|
4418
4623
|
}
|
|
4419
4624
|
});
|
|
4420
4625
|
};
|
|
4421
4626
|
delegateEvents(["click", "pointerdown", "mousedown", "pointerup", "input", "keydown"]);
|
|
4422
4627
|
|
|
4423
4628
|
// src/components/selection-cursor.tsx
|
|
4424
|
-
var _tmpl$
|
|
4629
|
+
var _tmpl$23 = /* @__PURE__ */ template(`<div class="fixed z-2147483647"><button data-react-grab-selection-cursor>`);
|
|
4425
4630
|
var SelectionCursor = (props) => {
|
|
4426
4631
|
const [isHovered, setIsHovered] = createSignal(false);
|
|
4427
4632
|
const [debouncedVisible, setDebouncedVisible] = createSignal(false);
|
|
@@ -4458,7 +4663,7 @@ var SelectionCursor = (props) => {
|
|
|
4458
4663
|
});
|
|
4459
4664
|
}
|
|
4460
4665
|
}), (() => {
|
|
4461
|
-
var _el$ = _tmpl$
|
|
4666
|
+
var _el$ = _tmpl$23(), _el$2 = _el$.firstChild;
|
|
4462
4667
|
_el$.addEventListener("mouseleave", () => setIsHovered(false));
|
|
4463
4668
|
_el$.addEventListener("mouseenter", () => setIsHovered(true));
|
|
4464
4669
|
_el$2.$$click = handleClick;
|
|
@@ -4503,6 +4708,7 @@ delegateEvents(["click"]);
|
|
|
4503
4708
|
|
|
4504
4709
|
// src/components/renderer.tsx
|
|
4505
4710
|
var ReactGrabRenderer = (props) => {
|
|
4711
|
+
const agentSessionsList = createMemo(() => props.agentSessions ? Array.from(props.agentSessions.values()) : []);
|
|
4506
4712
|
return [createComponent(Show, {
|
|
4507
4713
|
get when() {
|
|
4508
4714
|
return memo(() => !!props.selectionVisible)() && props.selectionBounds;
|
|
@@ -4564,51 +4770,58 @@ var ReactGrabRenderer = (props) => {
|
|
|
4564
4770
|
return box.createdAt;
|
|
4565
4771
|
}
|
|
4566
4772
|
})
|
|
4567
|
-
}), createComponent(
|
|
4773
|
+
}), createComponent(Index, {
|
|
4568
4774
|
get each() {
|
|
4569
|
-
return
|
|
4775
|
+
return agentSessionsList();
|
|
4570
4776
|
},
|
|
4571
4777
|
children: (session) => [createComponent(Show, {
|
|
4572
4778
|
get when() {
|
|
4573
|
-
return session.selectionBounds;
|
|
4779
|
+
return session().selectionBounds;
|
|
4574
4780
|
},
|
|
4575
4781
|
get children() {
|
|
4576
4782
|
return createComponent(SelectionBox, {
|
|
4577
4783
|
variant: "processing",
|
|
4578
4784
|
get bounds() {
|
|
4579
|
-
return session.selectionBounds;
|
|
4785
|
+
return session().selectionBounds;
|
|
4580
4786
|
},
|
|
4581
4787
|
visible: true,
|
|
4582
4788
|
get isCompleted() {
|
|
4583
|
-
return !session.isStreaming;
|
|
4789
|
+
return !session().isStreaming;
|
|
4584
4790
|
}
|
|
4585
4791
|
});
|
|
4586
4792
|
}
|
|
4587
4793
|
}), createComponent(SelectionLabel, {
|
|
4588
4794
|
get tagName() {
|
|
4589
|
-
return session.tagName;
|
|
4795
|
+
return session().tagName;
|
|
4590
4796
|
},
|
|
4591
4797
|
get componentName() {
|
|
4592
|
-
return session.componentName;
|
|
4798
|
+
return session().componentName;
|
|
4593
4799
|
},
|
|
4594
4800
|
get selectionBounds() {
|
|
4595
|
-
return session.selectionBounds;
|
|
4801
|
+
return session().selectionBounds;
|
|
4596
4802
|
},
|
|
4597
4803
|
get mouseX() {
|
|
4598
|
-
return session.position.x;
|
|
4804
|
+
return session().position.x;
|
|
4599
4805
|
},
|
|
4600
4806
|
visible: true,
|
|
4601
4807
|
hasAgent: true,
|
|
4808
|
+
isAgentConnected: true,
|
|
4602
4809
|
get status() {
|
|
4603
|
-
return session.isStreaming ? "copying" : "copied";
|
|
4810
|
+
return session().isStreaming ? "copying" : "copied";
|
|
4604
4811
|
},
|
|
4605
4812
|
get statusText() {
|
|
4606
|
-
return session.lastStatus || "Thinking\u2026";
|
|
4813
|
+
return session().lastStatus || "Thinking\u2026";
|
|
4607
4814
|
},
|
|
4608
4815
|
get inputValue() {
|
|
4609
|
-
return session.context.prompt;
|
|
4816
|
+
return session().context.prompt;
|
|
4817
|
+
},
|
|
4818
|
+
onAbort: () => props.onAbortSession?.(session().id),
|
|
4819
|
+
get onDismiss() {
|
|
4820
|
+
return session().isStreaming ? void 0 : () => props.onDismissSession?.(session().id);
|
|
4610
4821
|
},
|
|
4611
|
-
|
|
4822
|
+
get onUndo() {
|
|
4823
|
+
return session().isStreaming ? void 0 : () => props.onUndoSession?.(session().id);
|
|
4824
|
+
}
|
|
4612
4825
|
})]
|
|
4613
4826
|
}), createComponent(Show, {
|
|
4614
4827
|
get when() {
|
|
@@ -4640,6 +4853,9 @@ var ReactGrabRenderer = (props) => {
|
|
|
4640
4853
|
get hasAgent() {
|
|
4641
4854
|
return props.hasAgent;
|
|
4642
4855
|
},
|
|
4856
|
+
get isAgentConnected() {
|
|
4857
|
+
return props.isAgentConnected;
|
|
4858
|
+
},
|
|
4643
4859
|
get status() {
|
|
4644
4860
|
return props.selectionLabelStatus;
|
|
4645
4861
|
},
|
|
@@ -4661,6 +4877,15 @@ var ReactGrabRenderer = (props) => {
|
|
|
4661
4877
|
get onToggleExpand() {
|
|
4662
4878
|
return props.onToggleExpand;
|
|
4663
4879
|
},
|
|
4880
|
+
get isPendingDismiss() {
|
|
4881
|
+
return props.isPendingDismiss;
|
|
4882
|
+
},
|
|
4883
|
+
get onConfirmDismiss() {
|
|
4884
|
+
return props.onConfirmDismiss;
|
|
4885
|
+
},
|
|
4886
|
+
get onCancelDismiss() {
|
|
4887
|
+
return props.onCancelDismiss;
|
|
4888
|
+
},
|
|
4664
4889
|
onOpen: () => {
|
|
4665
4890
|
if (props.selectionFilePath) {
|
|
4666
4891
|
const openFileUrl = buildOpenFileUrl(props.selectionFilePath, props.selectionLineNumber);
|
|
@@ -4726,7 +4951,7 @@ var ReactGrabRenderer = (props) => {
|
|
|
4726
4951
|
})];
|
|
4727
4952
|
};
|
|
4728
4953
|
|
|
4729
|
-
// ../../node_modules/.pnpm/bippy@0.5.25_@types+react@19.2.
|
|
4954
|
+
// ../../node_modules/.pnpm/bippy@0.5.25_@types+react@19.2.7_react@19.2.1/node_modules/bippy/dist/rdt-hook-7WClMTWh.js
|
|
4730
4955
|
var e = `0.5.25`;
|
|
4731
4956
|
var t = `bippy-${e}`;
|
|
4732
4957
|
var n = Object.defineProperty;
|
|
@@ -4814,7 +5039,7 @@ var _ = () => {
|
|
|
4814
5039
|
}
|
|
4815
5040
|
};
|
|
4816
5041
|
|
|
4817
|
-
// ../../node_modules/.pnpm/bippy@0.5.25_@types+react@19.2.
|
|
5042
|
+
// ../../node_modules/.pnpm/bippy@0.5.25_@types+react@19.2.7_react@19.2.1/node_modules/bippy/dist/core-CoV0JPOT.js
|
|
4818
5043
|
var a2 = 0;
|
|
4819
5044
|
var o2 = 1;
|
|
4820
5045
|
var c2 = 5;
|
|
@@ -4902,7 +5127,7 @@ var Pe = (e2) => {
|
|
|
4902
5127
|
return null;
|
|
4903
5128
|
};
|
|
4904
5129
|
|
|
4905
|
-
// ../../node_modules/.pnpm/bippy@0.5.25_@types+react@19.2.
|
|
5130
|
+
// ../../node_modules/.pnpm/bippy@0.5.25_@types+react@19.2.7_react@19.2.1/node_modules/bippy/dist/source.js
|
|
4906
5131
|
var g2 = Object.create;
|
|
4907
5132
|
var _2 = Object.defineProperty;
|
|
4908
5133
|
var v = Object.getOwnPropertyDescriptor;
|
|
@@ -5544,7 +5769,7 @@ var je = (e2) => {
|
|
|
5544
5769
|
// src/utils/is-capitalized.ts
|
|
5545
5770
|
var isCapitalized = (value) => value.length > 0 && /^[A-Z]/.test(value);
|
|
5546
5771
|
|
|
5547
|
-
// ../../node_modules/.pnpm/bippy@0.5.25_@types+react@19.2.
|
|
5772
|
+
// ../../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
|
|
5548
5773
|
_();
|
|
5549
5774
|
|
|
5550
5775
|
// src/context.ts
|
|
@@ -5707,11 +5932,12 @@ var getHTMLPreview = (element) => {
|
|
|
5707
5932
|
|
|
5708
5933
|
// src/utils/copy-content.ts
|
|
5709
5934
|
var REACT_GRAB_MIME_TYPE = "application/x-react-grab";
|
|
5710
|
-
var copyContent = (content,
|
|
5935
|
+
var copyContent = (content, options) => {
|
|
5711
5936
|
const metadata = JSON.stringify({
|
|
5712
5937
|
version: VERSION,
|
|
5713
5938
|
content,
|
|
5714
|
-
timestamp: Date.now()
|
|
5939
|
+
timestamp: Date.now(),
|
|
5940
|
+
...options?.prompt && { prompt: options.prompt }
|
|
5715
5941
|
});
|
|
5716
5942
|
const copyHandler = (event) => {
|
|
5717
5943
|
event.preventDefault();
|
|
@@ -5729,7 +5955,7 @@ var copyContent = (content, onSuccess) => {
|
|
|
5729
5955
|
try {
|
|
5730
5956
|
const didCopySucceed = document.execCommand("copy");
|
|
5731
5957
|
if (didCopySucceed) {
|
|
5732
|
-
onSuccess?.();
|
|
5958
|
+
options?.onSuccess?.();
|
|
5733
5959
|
}
|
|
5734
5960
|
return didCopySucceed;
|
|
5735
5961
|
} finally {
|
|
@@ -6183,9 +6409,7 @@ var createAgentManager = (initialAgentOptions) => {
|
|
|
6183
6409
|
const isProcessing = () => sessions().size > 0;
|
|
6184
6410
|
const executeSessionStream = async (session, streamIterator) => {
|
|
6185
6411
|
const storage = agentOptions?.storage;
|
|
6186
|
-
let didComplete = false;
|
|
6187
6412
|
let wasAborted = false;
|
|
6188
|
-
let hadError = false;
|
|
6189
6413
|
try {
|
|
6190
6414
|
for await (const status of streamIterator) {
|
|
6191
6415
|
const currentSessions = sessions();
|
|
@@ -6199,17 +6423,21 @@ var createAgentManager = (initialAgentOptions) => {
|
|
|
6199
6423
|
setSessions((prev) => new Map(prev).set(session.id, updatedSession));
|
|
6200
6424
|
agentOptions?.onStatus?.(status, updatedSession);
|
|
6201
6425
|
}
|
|
6202
|
-
didComplete = true;
|
|
6203
6426
|
const finalSessions = sessions();
|
|
6204
6427
|
const finalSession = finalSessions.get(session.id);
|
|
6205
6428
|
if (finalSession) {
|
|
6429
|
+
const completionMessage = agentOptions?.provider?.getCompletionMessage?.();
|
|
6206
6430
|
const completedSession = updateSession(
|
|
6207
6431
|
finalSession,
|
|
6208
|
-
{
|
|
6432
|
+
{
|
|
6433
|
+
isStreaming: false,
|
|
6434
|
+
...completionMessage ? { lastStatus: completionMessage } : {}
|
|
6435
|
+
},
|
|
6209
6436
|
storage
|
|
6210
6437
|
);
|
|
6211
6438
|
setSessions((prev) => new Map(prev).set(session.id, completedSession));
|
|
6212
|
-
|
|
6439
|
+
const element = sessionElements.get(session.id);
|
|
6440
|
+
agentOptions?.onComplete?.(completedSession, element);
|
|
6213
6441
|
}
|
|
6214
6442
|
} catch (error) {
|
|
6215
6443
|
const currentSessions = sessions();
|
|
@@ -6236,7 +6464,6 @@ var createAgentManager = (initialAgentOptions) => {
|
|
|
6236
6464
|
setSessions((prev) => new Map(prev).set(session.id, errorSession));
|
|
6237
6465
|
}
|
|
6238
6466
|
} else {
|
|
6239
|
-
hadError = true;
|
|
6240
6467
|
if (currentSession) {
|
|
6241
6468
|
const errorSession = updateSession(
|
|
6242
6469
|
currentSession,
|
|
@@ -6255,7 +6482,7 @@ var createAgentManager = (initialAgentOptions) => {
|
|
|
6255
6482
|
}
|
|
6256
6483
|
} finally {
|
|
6257
6484
|
abortControllers.delete(session.id);
|
|
6258
|
-
|
|
6485
|
+
if (wasAborted) {
|
|
6259
6486
|
sessionElements.delete(session.id);
|
|
6260
6487
|
clearSessionById(session.id, storage);
|
|
6261
6488
|
setSessions((prev) => {
|
|
@@ -6263,11 +6490,6 @@ var createAgentManager = (initialAgentOptions) => {
|
|
|
6263
6490
|
next.delete(session.id);
|
|
6264
6491
|
return next;
|
|
6265
6492
|
});
|
|
6266
|
-
};
|
|
6267
|
-
if (wasAborted) {
|
|
6268
|
-
removeSession();
|
|
6269
|
-
} else if (didComplete || hadError) {
|
|
6270
|
-
setTimeout(removeSession, 1500);
|
|
6271
6493
|
}
|
|
6272
6494
|
}
|
|
6273
6495
|
};
|
|
@@ -6342,7 +6564,7 @@ var createAgentManager = (initialAgentOptions) => {
|
|
|
6342
6564
|
return;
|
|
6343
6565
|
}
|
|
6344
6566
|
const elements = [element];
|
|
6345
|
-
const content = await generateSnippet(elements);
|
|
6567
|
+
const content = await generateSnippet(elements, { maxLines: Infinity });
|
|
6346
6568
|
const context = {
|
|
6347
6569
|
content,
|
|
6348
6570
|
prompt,
|
|
@@ -6361,7 +6583,7 @@ var createAgentManager = (initialAgentOptions) => {
|
|
|
6361
6583
|
sessionElements.set(session.id, element);
|
|
6362
6584
|
setSessions((prev) => new Map(prev).set(session.id, session));
|
|
6363
6585
|
saveSessionById(session, storage);
|
|
6364
|
-
agentOptions.onStart?.(session);
|
|
6586
|
+
agentOptions.onStart?.(session, element);
|
|
6365
6587
|
const abortController = new AbortController();
|
|
6366
6588
|
abortControllers.set(session.id, abortController);
|
|
6367
6589
|
const streamIterator = agentOptions.provider.send(
|
|
@@ -6382,20 +6604,33 @@ var createAgentManager = (initialAgentOptions) => {
|
|
|
6382
6604
|
setSessions(/* @__PURE__ */ new Map());
|
|
6383
6605
|
clearSessions(agentOptions?.storage);
|
|
6384
6606
|
};
|
|
6607
|
+
const dismissSession = (sessionId) => {
|
|
6608
|
+
const storage = agentOptions?.storage;
|
|
6609
|
+
sessionElements.delete(sessionId);
|
|
6610
|
+
clearSessionById(sessionId, storage);
|
|
6611
|
+
setSessions((prev) => {
|
|
6612
|
+
const next = new Map(prev);
|
|
6613
|
+
next.delete(sessionId);
|
|
6614
|
+
return next;
|
|
6615
|
+
});
|
|
6616
|
+
};
|
|
6617
|
+
const undoSession = (sessionId) => {
|
|
6618
|
+
const currentSessions = sessions();
|
|
6619
|
+
const session = currentSessions.get(sessionId);
|
|
6620
|
+
if (session) {
|
|
6621
|
+
const element = sessionElements.get(sessionId);
|
|
6622
|
+
agentOptions?.onUndo?.(session, element);
|
|
6623
|
+
void agentOptions?.provider?.undo?.();
|
|
6624
|
+
}
|
|
6625
|
+
dismissSession(sessionId);
|
|
6626
|
+
};
|
|
6385
6627
|
const updateSessionBoundsOnViewportChange = () => {
|
|
6386
6628
|
const currentSessions = sessions();
|
|
6387
6629
|
if (currentSessions.size === 0) return;
|
|
6388
6630
|
const updatedSessions = new Map(currentSessions);
|
|
6389
6631
|
let didUpdate = false;
|
|
6390
6632
|
for (const [sessionId, session] of currentSessions) {
|
|
6391
|
-
|
|
6392
|
-
if (!element || !document.contains(element)) {
|
|
6393
|
-
const reacquiredElement = tryReacquireElement(session);
|
|
6394
|
-
if (reacquiredElement) {
|
|
6395
|
-
sessionElements.set(sessionId, reacquiredElement);
|
|
6396
|
-
element = reacquiredElement;
|
|
6397
|
-
}
|
|
6398
|
-
}
|
|
6633
|
+
const element = sessionElements.get(sessionId);
|
|
6399
6634
|
if (element && document.contains(element)) {
|
|
6400
6635
|
const newBounds = createElementBounds(element);
|
|
6401
6636
|
if (newBounds) {
|
|
@@ -6430,6 +6665,8 @@ var createAgentManager = (initialAgentOptions) => {
|
|
|
6430
6665
|
startSession,
|
|
6431
6666
|
abortSession,
|
|
6432
6667
|
abortAllSessions,
|
|
6668
|
+
dismissSession,
|
|
6669
|
+
undoSession,
|
|
6433
6670
|
updateSessionBoundsOnViewportChange,
|
|
6434
6671
|
getSessionElement,
|
|
6435
6672
|
setOptions,
|
|
@@ -6438,8 +6675,8 @@ var createAgentManager = (initialAgentOptions) => {
|
|
|
6438
6675
|
};
|
|
6439
6676
|
|
|
6440
6677
|
// src/core.tsx
|
|
6441
|
-
var _tmpl$
|
|
6442
|
-
var _tmpl$
|
|
6678
|
+
var _tmpl$24 = /* @__PURE__ */ template(`<span class="tabular-nums align-middle">`);
|
|
6679
|
+
var _tmpl$25 = /* @__PURE__ */ template(`<span class="font-mono tabular-nums align-middle"><<!>>`);
|
|
6443
6680
|
var _tmpl$33 = /* @__PURE__ */ template(`<span class="tabular-nums ml-1 align-middle"> in `);
|
|
6444
6681
|
var onIdle = (callback) => {
|
|
6445
6682
|
if ("scheduler" in globalThis) {
|
|
@@ -6532,7 +6769,7 @@ var init = (rawOptions) => {
|
|
|
6532
6769
|
hasInited = true;
|
|
6533
6770
|
const logIntro = () => {
|
|
6534
6771
|
try {
|
|
6535
|
-
const version = "0.0.
|
|
6772
|
+
const version = "0.0.73";
|
|
6536
6773
|
const logoDataUri = `data:image/svg+xml;base64,${btoa(LOGO_SVG)}`;
|
|
6537
6774
|
console.log(`%cReact Grab${version ? ` v${version}` : ""}%c
|
|
6538
6775
|
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;`, "");
|
|
@@ -6566,6 +6803,7 @@ https://react-grab.com`, `background: #330039; color: #ffffff; border: 1px solid
|
|
|
6566
6803
|
const [selectionLabelStatus, setSelectionLabelStatus] = createSignal("idle");
|
|
6567
6804
|
const [labelInstances, setLabelInstances] = createSignal([]);
|
|
6568
6805
|
const [lastGrabbedElement, setLastGrabbedElement] = createSignal(null);
|
|
6806
|
+
const [lastCopiedElement, setLastCopiedElement] = createSignal(null);
|
|
6569
6807
|
const [progressStartTime, setProgressStartTime] = createSignal(null);
|
|
6570
6808
|
const [grabbedBoxes, setGrabbedBoxes] = createSignal([]);
|
|
6571
6809
|
const [isActivated, setIsActivated] = createSignal(false);
|
|
@@ -6585,6 +6823,8 @@ https://react-grab.com`, `background: #330039; color: #ffffff; border: 1px solid
|
|
|
6585
6823
|
const [isInputExpanded, setIsInputExpanded] = createSignal(false);
|
|
6586
6824
|
const [frozenElement, setFrozenElement] = createSignal(null);
|
|
6587
6825
|
const [hasAgentProvider, setHasAgentProvider] = createSignal(Boolean(options.agent?.provider));
|
|
6826
|
+
const [isAgentConnected, setIsAgentConnected] = createSignal(false);
|
|
6827
|
+
const [isPendingDismiss, setIsPendingDismiss] = createSignal(false);
|
|
6588
6828
|
const elementInputCache = /* @__PURE__ */ new WeakMap();
|
|
6589
6829
|
const [nativeSelectionCursorX, setNativeSelectionCursorX] = createSignal(OFFSCREEN_POSITION);
|
|
6590
6830
|
const [nativeSelectionCursorY, setNativeSelectionCursorY] = createSignal(OFFSCREEN_POSITION);
|
|
@@ -6605,6 +6845,7 @@ https://react-grab.com`, `background: #330039; color: #ffffff; border: 1px solid
|
|
|
6605
6845
|
return await getNearestComponentName(element) || void 0;
|
|
6606
6846
|
});
|
|
6607
6847
|
const clearNativeSelectionState = () => {
|
|
6848
|
+
setHasNativeSelection(false);
|
|
6608
6849
|
setNativeSelectionCursorX(OFFSCREEN_POSITION);
|
|
6609
6850
|
setNativeSelectionCursorY(OFFSCREEN_POSITION);
|
|
6610
6851
|
setNativeSelectionElements([]);
|
|
@@ -6720,6 +6961,9 @@ https://react-grab.com`, `background: #330039; color: #ffffff; border: 1px solid
|
|
|
6720
6961
|
await operation().finally(() => {
|
|
6721
6962
|
setIsCopying(false);
|
|
6722
6963
|
setDidJustCopy(true);
|
|
6964
|
+
if (element) {
|
|
6965
|
+
setLastCopiedElement(element);
|
|
6966
|
+
}
|
|
6723
6967
|
stopProgressAnimation();
|
|
6724
6968
|
if (instanceId) {
|
|
6725
6969
|
updateLabelInstance(instanceId, "copied");
|
|
@@ -6763,7 +7007,9 @@ https://react-grab.com`, `background: #330039; color: #ffffff; border: 1px solid
|
|
|
6763
7007
|
|
|
6764
7008
|
${combinedSnippets}` : combinedSnippets;
|
|
6765
7009
|
copiedContent = plainTextContent;
|
|
6766
|
-
didCopy = copyContent(plainTextContent
|
|
7010
|
+
didCopy = copyContent(plainTextContent, {
|
|
7011
|
+
prompt: extraPrompt
|
|
7012
|
+
});
|
|
6767
7013
|
}
|
|
6768
7014
|
if (!didCopy) {
|
|
6769
7015
|
const plainTextContentOnly = createCombinedTextContent(elements);
|
|
@@ -6772,7 +7018,9 @@ ${combinedSnippets}` : combinedSnippets;
|
|
|
6772
7018
|
|
|
6773
7019
|
${plainTextContentOnly}` : plainTextContentOnly;
|
|
6774
7020
|
copiedContent = contentWithPrompt;
|
|
6775
|
-
didCopy = copyContent(contentWithPrompt
|
|
7021
|
+
didCopy = copyContent(contentWithPrompt, {
|
|
7022
|
+
prompt: extraPrompt
|
|
7023
|
+
});
|
|
6776
7024
|
}
|
|
6777
7025
|
}
|
|
6778
7026
|
if (didCopy) {
|
|
@@ -6786,7 +7034,9 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
6786
7034
|
|
|
6787
7035
|
${plainTextContentOnly}` : plainTextContentOnly;
|
|
6788
7036
|
copiedContent = contentWithPrompt;
|
|
6789
|
-
didCopy = copyContent(contentWithPrompt
|
|
7037
|
+
didCopy = copyContent(contentWithPrompt, {
|
|
7038
|
+
prompt: extraPrompt
|
|
7039
|
+
});
|
|
6790
7040
|
}
|
|
6791
7041
|
}
|
|
6792
7042
|
options.onAfterCopy?.(elements, didCopy);
|
|
@@ -6821,6 +7071,12 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
6821
7071
|
if (element && !document.contains(element)) return null;
|
|
6822
7072
|
return element;
|
|
6823
7073
|
});
|
|
7074
|
+
const effectiveElement = createMemo(() => {
|
|
7075
|
+
if (isToggleFrozen()) {
|
|
7076
|
+
return frozenElement();
|
|
7077
|
+
}
|
|
7078
|
+
return targetElement();
|
|
7079
|
+
});
|
|
6824
7080
|
createEffect(() => {
|
|
6825
7081
|
const element = detectedElement();
|
|
6826
7082
|
if (!element) return;
|
|
@@ -6832,6 +7088,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
6832
7088
|
onCleanup(() => clearInterval(intervalId));
|
|
6833
7089
|
});
|
|
6834
7090
|
createEffect(() => {
|
|
7091
|
+
if (isToggleFrozen()) return;
|
|
6835
7092
|
const element = targetElement();
|
|
6836
7093
|
if (element) {
|
|
6837
7094
|
setFrozenElement(element);
|
|
@@ -6839,7 +7096,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
6839
7096
|
});
|
|
6840
7097
|
const selectionBounds = createMemo(() => {
|
|
6841
7098
|
viewportVersion();
|
|
6842
|
-
const element =
|
|
7099
|
+
const element = effectiveElement();
|
|
6843
7100
|
if (!element) return void 0;
|
|
6844
7101
|
return createElementBounds(element);
|
|
6845
7102
|
});
|
|
@@ -6891,7 +7148,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
6891
7148
|
const copying = isCopying();
|
|
6892
7149
|
if (!element) {
|
|
6893
7150
|
return (() => {
|
|
6894
|
-
var _el$ = _tmpl$
|
|
7151
|
+
var _el$ = _tmpl$24();
|
|
6895
7152
|
insert(_el$, copying ? "Processing\u2026" : "1 element");
|
|
6896
7153
|
return _el$;
|
|
6897
7154
|
})();
|
|
@@ -6900,7 +7157,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
6900
7157
|
const componentName = labelComponentName();
|
|
6901
7158
|
if (tagName && componentName) {
|
|
6902
7159
|
return [(() => {
|
|
6903
|
-
var _el$2 = _tmpl$
|
|
7160
|
+
var _el$2 = _tmpl$25(), _el$3 = _el$2.firstChild, _el$5 = _el$3.nextSibling; _el$5.nextSibling;
|
|
6904
7161
|
insert(_el$2, tagName, _el$5);
|
|
6905
7162
|
return _el$2;
|
|
6906
7163
|
})(), (() => {
|
|
@@ -6911,13 +7168,13 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
6911
7168
|
}
|
|
6912
7169
|
if (tagName) {
|
|
6913
7170
|
return (() => {
|
|
6914
|
-
var _el$8 = _tmpl$
|
|
7171
|
+
var _el$8 = _tmpl$25(), _el$9 = _el$8.firstChild, _el$1 = _el$9.nextSibling; _el$1.nextSibling;
|
|
6915
7172
|
insert(_el$8, tagName, _el$1);
|
|
6916
7173
|
return _el$8;
|
|
6917
7174
|
})();
|
|
6918
7175
|
}
|
|
6919
7176
|
return (() => {
|
|
6920
|
-
var _el$10 = _tmpl$
|
|
7177
|
+
var _el$10 = _tmpl$24();
|
|
6921
7178
|
insert(_el$10, copying ? "Processing\u2026" : "1 element");
|
|
6922
7179
|
return _el$10;
|
|
6923
7180
|
})();
|
|
@@ -7110,6 +7367,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7110
7367
|
setInputText("");
|
|
7111
7368
|
setIsToggleFrozen(false);
|
|
7112
7369
|
setIsInputExpanded(false);
|
|
7370
|
+
setIsPendingDismiss(false);
|
|
7113
7371
|
setFrozenElement(null);
|
|
7114
7372
|
setSelectionLabelStatus("idle");
|
|
7115
7373
|
setDidJustCopy(false);
|
|
@@ -7128,25 +7386,32 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7128
7386
|
previouslyFocusedElement = null;
|
|
7129
7387
|
options.onDeactivate?.();
|
|
7130
7388
|
};
|
|
7389
|
+
const restoreInputFromSession = (session, element) => {
|
|
7390
|
+
if (element && document.contains(element)) {
|
|
7391
|
+
const rect = element.getBoundingClientRect();
|
|
7392
|
+
const centerY = rect.top + rect.height / 2;
|
|
7393
|
+
setMouseX(session.position.x);
|
|
7394
|
+
setMouseY(centerY);
|
|
7395
|
+
setFrozenElement(element);
|
|
7396
|
+
setInputText(session.context.prompt);
|
|
7397
|
+
setIsInputExpanded(true);
|
|
7398
|
+
setIsInputMode(true);
|
|
7399
|
+
setIsToggleMode(true);
|
|
7400
|
+
setIsToggleFrozen(true);
|
|
7401
|
+
if (!isActivated()) {
|
|
7402
|
+
activateRenderer();
|
|
7403
|
+
}
|
|
7404
|
+
}
|
|
7405
|
+
};
|
|
7131
7406
|
const agentOptions = options.agent ? {
|
|
7132
7407
|
...options.agent,
|
|
7133
7408
|
onAbort: (session, element) => {
|
|
7134
7409
|
options.agent?.onAbort?.(session, element);
|
|
7135
|
-
|
|
7136
|
-
|
|
7137
|
-
|
|
7138
|
-
|
|
7139
|
-
|
|
7140
|
-
setFrozenElement(element);
|
|
7141
|
-
setInputText(session.context.prompt);
|
|
7142
|
-
setIsInputExpanded(true);
|
|
7143
|
-
setIsInputMode(true);
|
|
7144
|
-
setIsToggleMode(true);
|
|
7145
|
-
setIsToggleFrozen(true);
|
|
7146
|
-
if (!isActivated()) {
|
|
7147
|
-
activateRenderer();
|
|
7148
|
-
}
|
|
7149
|
-
}
|
|
7410
|
+
restoreInputFromSession(session, element);
|
|
7411
|
+
},
|
|
7412
|
+
onUndo: (session, element) => {
|
|
7413
|
+
options.agent?.onUndo?.(session, element);
|
|
7414
|
+
restoreInputFromSession(session, element);
|
|
7150
7415
|
}
|
|
7151
7416
|
} : void 0;
|
|
7152
7417
|
const agentManager = createAgentManager(agentOptions);
|
|
@@ -7154,6 +7419,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7154
7419
|
setInputText(value);
|
|
7155
7420
|
};
|
|
7156
7421
|
const handleInputSubmit = () => {
|
|
7422
|
+
setLastCopiedElement(null);
|
|
7157
7423
|
const element = frozenElement() || targetElement();
|
|
7158
7424
|
const prompt = isInputMode() ? inputText().trim() : "";
|
|
7159
7425
|
if (!element) {
|
|
@@ -7182,7 +7448,11 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7182
7448
|
}
|
|
7183
7449
|
setIsInputMode(false);
|
|
7184
7450
|
setInputText("");
|
|
7185
|
-
|
|
7451
|
+
if (prompt) {
|
|
7452
|
+
elementInputCache.set(element, prompt);
|
|
7453
|
+
} else {
|
|
7454
|
+
elementInputCache.delete(element);
|
|
7455
|
+
}
|
|
7186
7456
|
const tagName = extractElementTagName(element);
|
|
7187
7457
|
void getNearestComponentName(element).then((componentName) => {
|
|
7188
7458
|
void executeCopyOperation(currentX, currentY, () => copySingleElementToClipboard(element, prompt || void 0), bounds, tagName, componentName ?? void 0, element).then(() => {
|
|
@@ -7191,14 +7461,27 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7191
7461
|
});
|
|
7192
7462
|
};
|
|
7193
7463
|
const handleInputCancel = () => {
|
|
7464
|
+
setLastCopiedElement(null);
|
|
7194
7465
|
if (!isInputMode()) return;
|
|
7195
|
-
const element = frozenElement() || targetElement();
|
|
7196
7466
|
const currentInput = inputText().trim();
|
|
7467
|
+
if (currentInput && !isPendingDismiss()) {
|
|
7468
|
+
setIsPendingDismiss(true);
|
|
7469
|
+
return;
|
|
7470
|
+
}
|
|
7471
|
+
const element = frozenElement() || targetElement();
|
|
7197
7472
|
if (element && currentInput) {
|
|
7198
7473
|
elementInputCache.set(element, currentInput);
|
|
7199
7474
|
}
|
|
7475
|
+
setIsPendingDismiss(false);
|
|
7476
|
+
deactivateRenderer();
|
|
7477
|
+
};
|
|
7478
|
+
const handleConfirmDismiss = () => {
|
|
7479
|
+
setIsPendingDismiss(false);
|
|
7200
7480
|
deactivateRenderer();
|
|
7201
7481
|
};
|
|
7482
|
+
const handleCancelDismiss = () => {
|
|
7483
|
+
setIsPendingDismiss(false);
|
|
7484
|
+
};
|
|
7202
7485
|
const handleToggleExpand = () => {
|
|
7203
7486
|
const element = frozenElement() || targetElement();
|
|
7204
7487
|
if (element) {
|
|
@@ -7310,19 +7593,22 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7310
7593
|
transform: stripTranslateFromTransform(firstElement)
|
|
7311
7594
|
};
|
|
7312
7595
|
const tagName = extractElementTagName(firstElement);
|
|
7596
|
+
const centerX = bounds.x + bounds.width / 2;
|
|
7597
|
+
const centerY = bounds.y + bounds.height / 2;
|
|
7313
7598
|
if (hasAgentProvider()) {
|
|
7314
|
-
const centerX = bounds.x + bounds.width / 2;
|
|
7315
|
-
const centerY = bounds.y + bounds.height / 2;
|
|
7316
7599
|
setMouseX(centerX);
|
|
7317
7600
|
setMouseY(centerY);
|
|
7318
7601
|
setFrozenElement(firstElement);
|
|
7319
7602
|
setIsToggleMode(true);
|
|
7320
7603
|
setIsToggleFrozen(true);
|
|
7321
7604
|
setIsInputExpanded(true);
|
|
7605
|
+
if (!isActivated()) {
|
|
7606
|
+
activateRenderer();
|
|
7607
|
+
}
|
|
7322
7608
|
setIsInputMode(true);
|
|
7323
7609
|
} else {
|
|
7324
7610
|
void getNearestComponentName(firstElement).then((componentName) => {
|
|
7325
|
-
void executeCopyOperation(
|
|
7611
|
+
void executeCopyOperation(centerX, centerY, () => copyMultipleElementsToClipboard(selectedElements), bounds, tagName, componentName ?? void 0, firstElement, true);
|
|
7326
7612
|
});
|
|
7327
7613
|
}
|
|
7328
7614
|
}
|
|
@@ -7362,7 +7648,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7362
7648
|
const originalKey = originalKeyDescriptor?.get ? originalKeyDescriptor.get.call(event) : event.key;
|
|
7363
7649
|
const isEnterKey = originalKey === "Enter" || isEnterCode(event.code);
|
|
7364
7650
|
const isOverlayActive = isActivated() || isHoldingKeys();
|
|
7365
|
-
const shouldBlockEnter = isEnterKey && isOverlayActive && !isInputMode();
|
|
7651
|
+
const shouldBlockEnter = isEnterKey && isOverlayActive && !isInputMode() && !isToggleMode();
|
|
7366
7652
|
if (shouldBlockEnter) {
|
|
7367
7653
|
claimedEvents.add(event);
|
|
7368
7654
|
event.preventDefault();
|
|
@@ -7387,13 +7673,14 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7387
7673
|
window.addEventListener("keydown", (event) => {
|
|
7388
7674
|
blockEnterIfNeeded(event);
|
|
7389
7675
|
const isEnterToActivateInput = isEnterCode(event.code) && isHoldingKeys() && !isInputMode();
|
|
7390
|
-
if (isInputMode() && isTargetKeyCombination(event, options)) {
|
|
7676
|
+
if (isInputMode() && isTargetKeyCombination(event, options) && !event.repeat) {
|
|
7391
7677
|
event.preventDefault();
|
|
7392
7678
|
event.stopPropagation();
|
|
7393
7679
|
setIsInputMode(false);
|
|
7394
7680
|
setInputText("");
|
|
7395
7681
|
setIsToggleFrozen(false);
|
|
7396
7682
|
setIsInputExpanded(false);
|
|
7683
|
+
setIsPendingDismiss(false);
|
|
7397
7684
|
return;
|
|
7398
7685
|
}
|
|
7399
7686
|
if (isInputMode() || isEventFromOverlay(event, "data-react-grab-ignore-events") && !isEnterToActivateInput) {
|
|
@@ -7412,6 +7699,33 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7412
7699
|
return;
|
|
7413
7700
|
}
|
|
7414
7701
|
}
|
|
7702
|
+
const copiedElement = lastCopiedElement();
|
|
7703
|
+
if (isEnterCode(event.code) && !isHoldingKeys() && !isInputMode() && !isActivated() && copiedElement && document.contains(copiedElement) && !labelInstances().some((instance) => instance.status === "copied" || instance.status === "fading")) {
|
|
7704
|
+
event.preventDefault();
|
|
7705
|
+
event.stopPropagation();
|
|
7706
|
+
event.stopImmediatePropagation();
|
|
7707
|
+
const bounds = createElementBounds(copiedElement);
|
|
7708
|
+
const selectionCenterX = bounds.x + bounds.width / 2;
|
|
7709
|
+
const centerY = bounds.y + bounds.height / 2;
|
|
7710
|
+
setMouseX(selectionCenterX);
|
|
7711
|
+
setMouseY(centerY);
|
|
7712
|
+
setCopyStartX(selectionCenterX);
|
|
7713
|
+
setCopyStartY(centerY);
|
|
7714
|
+
setCopyOffsetFromCenterX(0);
|
|
7715
|
+
setFrozenElement(copiedElement);
|
|
7716
|
+
setLastCopiedElement(null);
|
|
7717
|
+
setLabelInstances([]);
|
|
7718
|
+
const cachedInput = elementInputCache.get(copiedElement);
|
|
7719
|
+
if (cachedInput) {
|
|
7720
|
+
setInputText(cachedInput);
|
|
7721
|
+
}
|
|
7722
|
+
setIsToggleMode(true);
|
|
7723
|
+
setIsToggleFrozen(true);
|
|
7724
|
+
setIsInputExpanded(true);
|
|
7725
|
+
activateRenderer();
|
|
7726
|
+
setIsInputMode(true);
|
|
7727
|
+
return;
|
|
7728
|
+
}
|
|
7415
7729
|
if (isEnterCode(event.code) && isHoldingKeys() && !isInputMode()) {
|
|
7416
7730
|
event.preventDefault();
|
|
7417
7731
|
event.stopPropagation();
|
|
@@ -7497,9 +7811,10 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7497
7811
|
if (!isHoldingKeys()) {
|
|
7498
7812
|
setIsHoldingKeys(true);
|
|
7499
7813
|
}
|
|
7814
|
+
const activationDuration = isKeyboardEventTriggeredByInput(event) ? options.keyHoldDuration + INPUT_FOCUS_ACTIVATION_DELAY_MS : options.keyHoldDuration;
|
|
7500
7815
|
holdTimerId = window.setTimeout(() => {
|
|
7501
7816
|
activateRenderer();
|
|
7502
|
-
},
|
|
7817
|
+
}, activationDuration);
|
|
7503
7818
|
}, {
|
|
7504
7819
|
signal: eventListenerSignal,
|
|
7505
7820
|
capture: true
|
|
@@ -7634,7 +7949,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7634
7949
|
if (hadDrag) {
|
|
7635
7950
|
setDidJustDrag(false);
|
|
7636
7951
|
}
|
|
7637
|
-
if (isToggleMode() && !isCopying()) {
|
|
7952
|
+
if (isToggleMode() && !isCopying() && !isInputMode()) {
|
|
7638
7953
|
if (!isHoldingKeys()) {
|
|
7639
7954
|
deactivateRenderer();
|
|
7640
7955
|
} else {
|
|
@@ -7698,6 +8013,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7698
8013
|
selectionDebounceTimerId = null;
|
|
7699
8014
|
const currentSelection = window.getSelection();
|
|
7700
8015
|
if (!currentSelection || currentSelection.isCollapsed || currentSelection.rangeCount === 0) {
|
|
8016
|
+
clearNativeSelectionState();
|
|
7701
8017
|
return;
|
|
7702
8018
|
}
|
|
7703
8019
|
const range = currentSelection.getRangeAt(0);
|
|
@@ -7706,6 +8022,11 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7706
8022
|
clearNativeSelectionState();
|
|
7707
8023
|
return;
|
|
7708
8024
|
}
|
|
8025
|
+
const selectedText = currentSelection.toString().trim();
|
|
8026
|
+
if (!selectedText) {
|
|
8027
|
+
clearNativeSelectionState();
|
|
8028
|
+
return;
|
|
8029
|
+
}
|
|
7709
8030
|
const isBackward = (() => {
|
|
7710
8031
|
if (!currentSelection.anchorNode || !currentSelection.focusNode) return false;
|
|
7711
8032
|
const position = currentSelection.anchorNode.compareDocumentPosition(currentSelection.focusNode);
|
|
@@ -7755,14 +8076,14 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7755
8076
|
const selectionVisible = createMemo(() => {
|
|
7756
8077
|
if (!theme().selectionBox.enabled) return false;
|
|
7757
8078
|
if (didJustCopy()) return false;
|
|
7758
|
-
return isRendererActive() && !isDragging() && Boolean(
|
|
8079
|
+
return isRendererActive() && !isDragging() && Boolean(effectiveElement());
|
|
7759
8080
|
});
|
|
7760
8081
|
const selectionTagName = createMemo(() => {
|
|
7761
|
-
const element =
|
|
8082
|
+
const element = effectiveElement();
|
|
7762
8083
|
if (!element) return void 0;
|
|
7763
8084
|
return extractElementTagName(element) || void 0;
|
|
7764
8085
|
});
|
|
7765
|
-
const [selectionComponentName] = createResource(() =>
|
|
8086
|
+
const [selectionComponentName] = createResource(() => effectiveElement(), async (element) => {
|
|
7766
8087
|
if (!element) return void 0;
|
|
7767
8088
|
const name = await getNearestComponentName(element);
|
|
7768
8089
|
return name ?? void 0;
|
|
@@ -7770,7 +8091,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7770
8091
|
const selectionLabelVisible = createMemo(() => {
|
|
7771
8092
|
if (!theme().elementLabel.enabled) return false;
|
|
7772
8093
|
if (didJustCopy()) return false;
|
|
7773
|
-
return isRendererActive() && !isDragging() && Boolean(
|
|
8094
|
+
return isRendererActive() && !isDragging() && Boolean(effectiveElement());
|
|
7774
8095
|
});
|
|
7775
8096
|
const computedLabelInstances = createMemo(() => {
|
|
7776
8097
|
viewportVersion();
|
|
@@ -7784,13 +8105,25 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7784
8105
|
};
|
|
7785
8106
|
});
|
|
7786
8107
|
});
|
|
8108
|
+
const computedGrabbedBoxes = createMemo(() => {
|
|
8109
|
+
viewportVersion();
|
|
8110
|
+
return grabbedBoxes().map((box) => {
|
|
8111
|
+
if (!box.element || !document.body.contains(box.element)) {
|
|
8112
|
+
return box;
|
|
8113
|
+
}
|
|
8114
|
+
return {
|
|
8115
|
+
...box,
|
|
8116
|
+
bounds: createElementBounds(box.element)
|
|
8117
|
+
};
|
|
8118
|
+
});
|
|
8119
|
+
});
|
|
7787
8120
|
const dragVisible = createMemo(() => theme().dragBox.enabled && isRendererActive() && isDraggingBeyondThreshold());
|
|
7788
8121
|
const labelVariant = createMemo(() => isCopying() ? "processing" : "hover");
|
|
7789
8122
|
const labelVisible = createMemo(() => {
|
|
7790
8123
|
if (!theme().elementLabel.enabled) return false;
|
|
7791
8124
|
if (isInputMode()) return false;
|
|
7792
8125
|
if (isCopying()) return true;
|
|
7793
|
-
return isRendererActive() && !isDragging() && Boolean(
|
|
8126
|
+
return isRendererActive() && !isDragging() && Boolean(effectiveElement());
|
|
7794
8127
|
});
|
|
7795
8128
|
const crosshairVisible = createMemo(() => theme().crosshair.enabled && isRendererActive() && !isDragging() && !isTouchMode() && !isToggleFrozen());
|
|
7796
8129
|
const shouldShowGrabbedBoxes = createMemo(() => theme().grabbedBoxes.enabled);
|
|
@@ -7837,7 +8170,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7837
8170
|
return dragBounds();
|
|
7838
8171
|
},
|
|
7839
8172
|
get grabbedBoxes() {
|
|
7840
|
-
return memo(() => !!shouldShowGrabbedBoxes())() ?
|
|
8173
|
+
return memo(() => !!shouldShowGrabbedBoxes())() ? computedGrabbedBoxes() : [];
|
|
7841
8174
|
},
|
|
7842
8175
|
labelZIndex: Z_INDEX_LABEL,
|
|
7843
8176
|
get mouseX() {
|
|
@@ -7858,14 +8191,24 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7858
8191
|
get hasAgent() {
|
|
7859
8192
|
return hasAgentProvider();
|
|
7860
8193
|
},
|
|
8194
|
+
get isAgentConnected() {
|
|
8195
|
+
return isAgentConnected();
|
|
8196
|
+
},
|
|
7861
8197
|
get agentSessions() {
|
|
7862
8198
|
return agentManager.sessions();
|
|
7863
8199
|
},
|
|
7864
8200
|
onAbortSession: (sessionId) => agentManager.abortSession(sessionId),
|
|
8201
|
+
onDismissSession: (sessionId) => agentManager.dismissSession(sessionId),
|
|
8202
|
+
onUndoSession: (sessionId) => agentManager.undoSession(sessionId),
|
|
7865
8203
|
onInputChange: handleInputChange,
|
|
7866
8204
|
onInputSubmit: () => void handleInputSubmit(),
|
|
7867
8205
|
onInputCancel: handleInputCancel,
|
|
7868
8206
|
onToggleExpand: handleToggleExpand,
|
|
8207
|
+
get isPendingDismiss() {
|
|
8208
|
+
return isPendingDismiss();
|
|
8209
|
+
},
|
|
8210
|
+
onConfirmDismiss: handleConfirmDismiss,
|
|
8211
|
+
onCancelDismiss: handleCancelDismiss,
|
|
7869
8212
|
get nativeSelectionCursorVisible() {
|
|
7870
8213
|
return hasNativeSelection();
|
|
7871
8214
|
},
|
|
@@ -7956,25 +8299,20 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7956
8299
|
provider: newAgentOptions.provider ?? existingOptions?.provider,
|
|
7957
8300
|
onAbort: (session, element) => {
|
|
7958
8301
|
newAgentOptions?.onAbort?.(session, element);
|
|
7959
|
-
|
|
7960
|
-
|
|
7961
|
-
|
|
7962
|
-
|
|
7963
|
-
|
|
7964
|
-
setFrozenElement(element);
|
|
7965
|
-
setInputText(session.context.prompt);
|
|
7966
|
-
setIsInputExpanded(true);
|
|
7967
|
-
setIsInputMode(true);
|
|
7968
|
-
setIsToggleMode(true);
|
|
7969
|
-
setIsToggleFrozen(true);
|
|
7970
|
-
if (!isActivated()) {
|
|
7971
|
-
activateRenderer();
|
|
7972
|
-
}
|
|
7973
|
-
}
|
|
8302
|
+
restoreInputFromSession(session, element);
|
|
8303
|
+
},
|
|
8304
|
+
onUndo: (session, element) => {
|
|
8305
|
+
newAgentOptions?.onUndo?.(session, element);
|
|
8306
|
+
restoreInputFromSession(session, element);
|
|
7974
8307
|
}
|
|
7975
8308
|
};
|
|
7976
8309
|
agentManager.setOptions(mergedOptions);
|
|
7977
8310
|
setHasAgentProvider(Boolean(mergedOptions.provider));
|
|
8311
|
+
if (mergedOptions.provider?.checkConnection) {
|
|
8312
|
+
void mergedOptions.provider.checkConnection().then((connected) => {
|
|
8313
|
+
setIsAgentConnected(connected);
|
|
8314
|
+
});
|
|
8315
|
+
}
|
|
7978
8316
|
agentManager.tryResumeSessions();
|
|
7979
8317
|
}
|
|
7980
8318
|
};
|