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
|
@@ -578,6 +578,61 @@ function mapArray(list, mapFn, options = {}) {
|
|
|
578
578
|
}
|
|
579
579
|
};
|
|
580
580
|
}
|
|
581
|
+
function indexArray(list, mapFn, options = {}) {
|
|
582
|
+
let items = [], mapped = [], disposers = [], signals = [], len = 0, i2;
|
|
583
|
+
onCleanup(() => dispose(disposers));
|
|
584
|
+
return () => {
|
|
585
|
+
const newItems = list() || [], newLen = newItems.length;
|
|
586
|
+
newItems[$TRACK];
|
|
587
|
+
return untrack(() => {
|
|
588
|
+
if (newLen === 0) {
|
|
589
|
+
if (len !== 0) {
|
|
590
|
+
dispose(disposers);
|
|
591
|
+
disposers = [];
|
|
592
|
+
items = [];
|
|
593
|
+
mapped = [];
|
|
594
|
+
len = 0;
|
|
595
|
+
signals = [];
|
|
596
|
+
}
|
|
597
|
+
if (options.fallback) {
|
|
598
|
+
items = [FALLBACK];
|
|
599
|
+
mapped[0] = createRoot((disposer) => {
|
|
600
|
+
disposers[0] = disposer;
|
|
601
|
+
return options.fallback();
|
|
602
|
+
});
|
|
603
|
+
len = 1;
|
|
604
|
+
}
|
|
605
|
+
return mapped;
|
|
606
|
+
}
|
|
607
|
+
if (items[0] === FALLBACK) {
|
|
608
|
+
disposers[0]();
|
|
609
|
+
disposers = [];
|
|
610
|
+
items = [];
|
|
611
|
+
mapped = [];
|
|
612
|
+
len = 0;
|
|
613
|
+
}
|
|
614
|
+
for (i2 = 0; i2 < newLen; i2++) {
|
|
615
|
+
if (i2 < items.length && items[i2] !== newItems[i2]) {
|
|
616
|
+
signals[i2](() => newItems[i2]);
|
|
617
|
+
} else if (i2 >= items.length) {
|
|
618
|
+
mapped[i2] = createRoot(mapper);
|
|
619
|
+
}
|
|
620
|
+
}
|
|
621
|
+
for (; i2 < items.length; i2++) {
|
|
622
|
+
disposers[i2]();
|
|
623
|
+
}
|
|
624
|
+
len = signals.length = disposers.length = newLen;
|
|
625
|
+
items = newItems.slice(0);
|
|
626
|
+
return mapped = mapped.slice(0, len);
|
|
627
|
+
});
|
|
628
|
+
function mapper(disposer) {
|
|
629
|
+
disposers[i2] = disposer;
|
|
630
|
+
const [s3, set] = createSignal(newItems[i2]);
|
|
631
|
+
signals[i2] = set;
|
|
632
|
+
return mapFn(s3, i2);
|
|
633
|
+
}
|
|
634
|
+
};
|
|
635
|
+
}
|
|
581
636
|
function createComponent(Comp, props) {
|
|
582
637
|
return untrack(() => Comp(props || {}));
|
|
583
638
|
}
|
|
@@ -588,6 +643,12 @@ function For(props) {
|
|
|
588
643
|
};
|
|
589
644
|
return createMemo(mapArray(() => props.each, props.children, fallback || void 0));
|
|
590
645
|
}
|
|
646
|
+
function Index(props) {
|
|
647
|
+
const fallback = "fallback" in props && {
|
|
648
|
+
fallback: () => props.fallback
|
|
649
|
+
};
|
|
650
|
+
return createMemo(indexArray(() => props.each, props.children, fallback || void 0));
|
|
651
|
+
}
|
|
591
652
|
function Show(props) {
|
|
592
653
|
const keyed = props.keyed;
|
|
593
654
|
const conditionValue = createMemo(() => props.when, void 0, void 0);
|
|
@@ -890,7 +951,7 @@ function cleanChildren(parent, current, marker, replacement) {
|
|
|
890
951
|
|
|
891
952
|
// dist/styles.css
|
|
892
953
|
var styles_default = `/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */
|
|
893
|
-
@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}}`;
|
|
954
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-contain-size:initial;--tw-contain-layout:initial;--tw-contain-paint:initial;--tw-contain-style:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-black:#000;--color-white:#fff;--spacing:.25rem;--font-weight-medium:500;--radius-xs:.125rem;--ease-out:cubic-bezier(0,0,.2,1);--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-grab-pink:#b21c8e;--color-grab-purple:#d239c0;--color-label-tag-border:#730079;--color-label-muted:#767676}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.top-0{top:calc(var(--spacing)*0)}.left-0{left:calc(var(--spacing)*0)}.z-2147483645{z-index:2147483645}.z-2147483646{z-index:2147483646}.z-2147483647{z-index:2147483647}.z-\\[2147483645\\]{z-index:2147483645}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing)*0)}.-mt-px{margin-top:-1px}.-ml-\\[2px\\]{margin-left:-2px}.ml-1{margin-left:calc(var(--spacing)*1)}.box-border{box-sizing:border-box}.flex{display:flex}.grid{display:grid}.hidden{display:none}.size-fit{width:fit-content;height:fit-content}.h-0{height:calc(var(--spacing)*0)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-5\\.5{height:calc(var(--spacing)*5.5)}.h-\\[7px\\]{height:7px}.h-\\[17px\\]{height:17px}.h-\\[18px\\]{height:18px}.h-fit{height:fit-content}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-4{min-height:calc(var(--spacing)*4)}.w-0{width:calc(var(--spacing)*0)}.w-0\\.5{width:calc(var(--spacing)*.5)}.w-1{width:calc(var(--spacing)*1)}.w-\\[7px\\]{width:7px}.w-\\[17px\\]{width:17px}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\\[280px\\]{max-width:280px}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.-translate-x-1\\/2{--tw-translate-x:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-75{--tw-scale-x:75%;--tw-scale-y:75%;--tw-scale-z:75%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.cursor-crosshair{cursor:crosshair}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.flex-col{flex-direction:column}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-\\[3px\\]{gap:3px}.gap-\\[5px\\]{gap:5px}.gap-px{gap:1px}.self-stretch{align-self:stretch}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded-\\[1\\.5px\\]{border-radius:1.5px}.rounded-\\[1px\\]{border-radius:1px}.rounded-full{border-radius:3.40282e38px}.rounded-xs{border-radius:var(--radius-xs)}.rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.rounded-b-xs{border-bottom-right-radius:var(--radius-xs);border-bottom-left-radius:var(--radius-xs)}.border{border-style:var(--tw-border-style);border-width:1px}.\\[border-width\\:0\\.5px\\]{border-width:.5px}.\\[border-top-width\\:0\\.5px\\]{border-top-width:.5px}.border-none{--tw-border-style:none;border-style:none}.border-solid{--tw-border-style:solid;border-style:solid}.border-\\[\\#7e0002\\]{border-color:#7e0002}.border-\\[\\#B3B3B3\\]{border-color:#b3b3b3}.border-grab-purple{border-color:var(--color-grab-purple)}.border-grab-purple\\/40{border-color:#d239c066}@supports (color:color-mix(in lab, red, red)){.border-grab-purple\\/40{border-color:color-mix(in oklab,var(--color-grab-purple)40%,transparent)}}.border-grab-purple\\/50{border-color:#d239c080}@supports (color:color-mix(in lab, red, red)){.border-grab-purple\\/50{border-color:color-mix(in oklab,var(--color-grab-purple)50%,transparent)}}.border-label-tag-border{border-color:var(--color-label-tag-border)}.border-white{border-color:var(--color-white)}.border-t-\\[\\#D9D9D9\\]{border-top-color:#d9d9d9}.bg-\\[\\#F7F7F7\\]{background-color:#f7f7f7}.bg-black{background-color:var(--color-black)}.bg-grab-pink{background-color:var(--color-grab-pink)}.bg-grab-purple{background-color:var(--color-grab-purple)}.bg-grab-purple\\/5{background-color:#d239c00d}@supports (color:color-mix(in lab, red, red)){.bg-grab-purple\\/5{background-color:color-mix(in oklab,var(--color-grab-purple)5%,transparent)}}.bg-grab-purple\\/8{background-color:#d239c014}@supports (color:color-mix(in lab, red, red)){.bg-grab-purple\\/8{background-color:color-mix(in oklab,var(--color-grab-purple)8%,transparent)}}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.px-0{padding-inline:calc(var(--spacing)*0)}.px-1\\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-\\[2px\\]{padding-inline:2px}.px-\\[3px\\]{padding-inline:3px}.py-0{padding-block:calc(var(--spacing)*0)}.py-\\[2px\\]{padding-block:2px}.py-\\[3px\\]{padding-block:3px}.py-\\[5px\\]{padding-block:5px}.py-px{padding-block:1px}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-1\\.5{padding-top:calc(var(--spacing)*1.5)}.pr-1{padding-right:calc(var(--spacing)*1)}.pr-1\\.5{padding-right:calc(var(--spacing)*1.5)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pl-1\\.5{padding-left:calc(var(--spacing)*1.5)}.align-middle{vertical-align:middle}.font-\\[ui-monospace\\,\\'SFMono-Regular\\'\\,\\'SF_Mono\\'\\,\\'Menlo\\'\\,\\'Consolas\\'\\,\\'Liberation_Mono\\'\\,monospace\\]{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-\\[11\\.5px\\]{font-size:11.5px}.text-\\[11px\\]{font-size:11px}.text-\\[12px\\]{font-size:12px}.leading-3\\.5{--tw-leading:calc(var(--spacing)*3.5);line-height:calc(var(--spacing)*3.5)}.leading-4{--tw-leading:calc(var(--spacing)*4);line-height:calc(var(--spacing)*4)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.tracking-\\[-0\\.04em\\]{--tw-tracking:-.04em;letter-spacing:-.04em}.tracking-\\[-0\\.08em\\]{--tw-tracking:-.08em;letter-spacing:-.08em}.wrap-break-word{overflow-wrap:break-word}.whitespace-normal{white-space:normal}.text-\\[\\#0C0C0C\\]{color:#0c0c0c}.text-\\[\\#47004A\\]{color:#47004a}.text-\\[\\#71717a\\]{color:#71717a}.text-\\[\\#B91C1C\\]{color:#b91c1c}.text-\\[\\#c00002\\]{color:#c00002}.text-black{color:var(--color-black)}.text-label-muted{color:var(--color-label-muted)}.text-label-tag-border{color:var(--color-label-tag-border)}.text-white{color:var(--color-white)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-100{opacity:1}.opacity-\\[0\\.99\\]{opacity:.99}.brightness-125{--tw-brightness:brightness(125%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter-\\[drop-shadow\\(0px_0px_4px_\\#51515180\\)\\]{filter:drop-shadow(0 0 4px #51515180)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-rows\\]{transition-property:grid-template-rows;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[width\\,height\\]{transition-property:width,height;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-none{transition-property:none}.duration-30{--tw-duration:30ms;transition-duration:30ms}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.will-change-\\[transform\\,width\\,height\\]{will-change:transform,width,height}.contain-layout{--tw-contain-layout:layout;contain:var(--tw-contain-size,)var(--tw-contain-layout,)var(--tw-contain-paint,)var(--tw-contain-style,)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\\[font-synthesis\\:none\\]{font-synthesis:none}@media (hover:hover){.hover\\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\\:bg-\\[\\#F5F5F5\\]:hover{background-color:#f5f5f5}.hover\\:bg-\\[\\#FEF2F2\\]:hover{background-color:#fef2f2}.hover\\:opacity-100:hover{opacity:1}}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-contain-size{syntax:"*";inherits:false}@property --tw-contain-layout{syntax:"*";inherits:false}@property --tw-contain-paint{syntax:"*";inherits:false}@property --tw-contain-style{syntax:"*";inherits:false}@keyframes pulse{50%{opacity:.5}}`;
|
|
894
955
|
|
|
895
956
|
// src/utils/is-keyboard-event-triggered-by-input.ts
|
|
896
957
|
var FORM_TAGS_AND_ROLES = [
|
|
@@ -1019,7 +1080,7 @@ var buildOpenFileUrl = (filePath, lineNumber) => {
|
|
|
1019
1080
|
};
|
|
1020
1081
|
|
|
1021
1082
|
// src/constants.ts
|
|
1022
|
-
var VERSION = "0.0.
|
|
1083
|
+
var VERSION = "0.0.73";
|
|
1023
1084
|
var VIEWPORT_MARGIN_PX = 8;
|
|
1024
1085
|
var OFFSCREEN_POSITION = -1e3;
|
|
1025
1086
|
var SELECTION_LERP_FACTOR = 0.95;
|
|
@@ -1027,6 +1088,7 @@ var SUCCESS_LABEL_DURATION_MS = 1700;
|
|
|
1027
1088
|
var COPIED_LABEL_DURATION_MS = 1500;
|
|
1028
1089
|
var SELECTION_CURSOR_SETTLE_DELAY_MS = 500;
|
|
1029
1090
|
var BLUR_DEACTIVATION_THRESHOLD_MS = 500;
|
|
1091
|
+
var INPUT_FOCUS_ACTIVATION_DELAY_MS = 150;
|
|
1030
1092
|
var DRAG_THRESHOLD_PX = 2;
|
|
1031
1093
|
var ELEMENT_DETECTION_THROTTLE_MS = 32;
|
|
1032
1094
|
var BOUNDS_RECALC_INTERVAL_MS = 100;
|
|
@@ -3601,7 +3663,7 @@ var SelectionBox = (props) => {
|
|
|
3601
3663
|
get children() {
|
|
3602
3664
|
var _el$ = _tmpl$();
|
|
3603
3665
|
createRenderEffect((_p$) => {
|
|
3604
|
-
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
|
|
3666
|
+
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;
|
|
3605
3667
|
_v$ !== _p$.e && className(_el$, _p$.e = _v$);
|
|
3606
3668
|
_v$2 !== _p$.t && setStyleProperty(_el$, "top", _p$.t = _v$2);
|
|
3607
3669
|
_v$3 !== _p$.a && setStyleProperty(_el$, "left", _p$.a = _v$3);
|
|
@@ -3763,7 +3825,7 @@ var useSpeechRecognition = (options) => {
|
|
|
3763
3825
|
let baseValue;
|
|
3764
3826
|
if (lastInterimText && currentValue.endsWith(lastInterimText)) {
|
|
3765
3827
|
baseValue = currentValue.slice(0, -lastInterimText.length);
|
|
3766
|
-
} else if (currentValue === lastValueWeSet) {
|
|
3828
|
+
} else if (currentValue === lastValueWeSet && lastInterimText) {
|
|
3767
3829
|
baseValue = currentValue.slice(0, -lastInterimText.length);
|
|
3768
3830
|
} else {
|
|
3769
3831
|
baseValue = currentValue;
|
|
@@ -3860,25 +3922,51 @@ var IconMic = (props) => {
|
|
|
3860
3922
|
})();
|
|
3861
3923
|
};
|
|
3862
3924
|
|
|
3925
|
+
// src/components/icon-return.tsx
|
|
3926
|
+
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>`);
|
|
3927
|
+
var IconReturn = (props) => {
|
|
3928
|
+
const size = () => props.size ?? 12;
|
|
3929
|
+
return (() => {
|
|
3930
|
+
var _el$ = _tmpl$5();
|
|
3931
|
+
createRenderEffect((_p$) => {
|
|
3932
|
+
var _v$ = size(), _v$2 = size() * 19 / 22, _v$3 = props.class;
|
|
3933
|
+
_v$ !== _p$.e && setAttribute(_el$, "width", _p$.e = _v$);
|
|
3934
|
+
_v$2 !== _p$.t && setAttribute(_el$, "height", _p$.t = _v$2);
|
|
3935
|
+
_v$3 !== _p$.a && setAttribute(_el$, "class", _p$.a = _v$3);
|
|
3936
|
+
return _p$;
|
|
3937
|
+
}, {
|
|
3938
|
+
e: void 0,
|
|
3939
|
+
t: void 0,
|
|
3940
|
+
a: void 0
|
|
3941
|
+
});
|
|
3942
|
+
return _el$;
|
|
3943
|
+
})();
|
|
3944
|
+
};
|
|
3945
|
+
|
|
3863
3946
|
// src/components/selection-label.tsx
|
|
3864
|
-
var _tmpl$
|
|
3947
|
+
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>`);
|
|
3865
3948
|
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">`);
|
|
3866
3949
|
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">>`);
|
|
3867
3950
|
var _tmpl$42 = /* @__PURE__ */ template(`<div class="absolute w-0 h-0"style="border-left:8px solid transparent;border-right:8px solid transparent">`);
|
|
3868
3951
|
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">`);
|
|
3869
|
-
var _tmpl$
|
|
3870
|
-
var _tmpl$7 = /* @__PURE__ */ template(`<div class="[
|
|
3871
|
-
var _tmpl$8 = /* @__PURE__ */ template(`<
|
|
3872
|
-
var _tmpl$9 = /* @__PURE__ */ template(`<
|
|
3873
|
-
var _tmpl$0 = /* @__PURE__ */ template(`<
|
|
3874
|
-
var _tmpl$1 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex items-center gap-
|
|
3875
|
-
var _tmpl$10 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex
|
|
3876
|
-
var _tmpl$11 = /* @__PURE__ */ template(`<
|
|
3877
|
-
var _tmpl$12 = /* @__PURE__ */ template(`<
|
|
3878
|
-
var _tmpl$13 = /* @__PURE__ */ template(`<
|
|
3879
|
-
var _tmpl$14 = /* @__PURE__ */ template(`<div class="
|
|
3880
|
-
var _tmpl$15 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex
|
|
3881
|
-
var _tmpl$16 = /* @__PURE__ */ template(`<div
|
|
3952
|
+
var _tmpl$62 = /* @__PURE__ */ template(`<div class="[font-synthesis:none] contain-layout shrink-0 flex flex-col items-start px-2 py-[5px] w-auto h-fit self-stretch [border-top-width:0.5px] border-t-solid border-t-[#D9D9D9] antialiased rounded-t-none rounded-b-xs -mt-px"style="background-image:linear-gradient(in oklab 180deg, oklab(100% 0 0) 0%, oklab(96.1% 0 0) 5.92%)">`);
|
|
3953
|
+
var _tmpl$7 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex items-center justify-end gap-[5px] w-full h-fit"><button class="contain-layout shrink-0 flex items-center justify-center px-[3px] py-px rounded-xs bg-white [border-width:0.5px] border-solid border-[#B3B3B3] cursor-pointer transition-all hover:bg-[#F5F5F5] h-[17px]"><span class="text-black text-[11px] leading-3.5 tracking-[-0.04em] font-sans font-medium">No</span></button><button class="contain-layout shrink-0 flex items-center justify-center gap-1 px-[3px] py-px rounded-xs bg-white [border-width:0.5px] border-solid border-[#7e0002] cursor-pointer transition-all hover:bg-[#FEF2F2] h-[17px]"><span class="text-[#B91C1C] text-[11px] leading-3.5 tracking-[-0.04em] font-sans font-medium">Yes`);
|
|
3954
|
+
var _tmpl$8 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex flex-col justify-center items-end gap-1 w-fit h-fit"><div class="contain-layout shrink-0 flex items-center gap-1 pt-1 px-1.5 w-full h-fit"><span class="text-black text-[12px] leading-4 shrink-0 tracking-[-0.04em] font-sans font-medium w-fit h-fit">Discard prompt?`);
|
|
3955
|
+
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`);
|
|
3956
|
+
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`);
|
|
3957
|
+
var _tmpl$1 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex items-center justify-end gap-[5px] w-full h-fit">`);
|
|
3958
|
+
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">`);
|
|
3959
|
+
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">`);
|
|
3960
|
+
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>`);
|
|
3961
|
+
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">`);
|
|
3962
|
+
var _tmpl$14 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex items-center gap-px w-fit h-fit">`);
|
|
3963
|
+
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`);
|
|
3964
|
+
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>`);
|
|
3965
|
+
var _tmpl$17 = /* @__PURE__ */ template(`<button>`);
|
|
3966
|
+
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">`);
|
|
3967
|
+
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">`);
|
|
3968
|
+
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>`);
|
|
3969
|
+
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">`);
|
|
3882
3970
|
var ARROW_HEIGHT = 8;
|
|
3883
3971
|
var LABEL_GAP = 4;
|
|
3884
3972
|
var IDLE_TIMEOUT_MS = 400;
|
|
@@ -3893,7 +3981,7 @@ var TagBadge = (props) => {
|
|
|
3893
3981
|
props.onHoverChange?.(false);
|
|
3894
3982
|
};
|
|
3895
3983
|
return (() => {
|
|
3896
|
-
var _el$ = _tmpl$
|
|
3984
|
+
var _el$ = _tmpl$6(), _el$2 = _el$.firstChild;
|
|
3897
3985
|
addEventListener(_el$, "click", props.onClick);
|
|
3898
3986
|
_el$.addEventListener("mouseleave", handleMouseLeave);
|
|
3899
3987
|
_el$.addEventListener("mouseenter", handleMouseEnter);
|
|
@@ -3966,19 +4054,61 @@ var ClickToCopyPill = (props) => {
|
|
|
3966
4054
|
})();
|
|
3967
4055
|
};
|
|
3968
4056
|
var BottomSection = (props) => (() => {
|
|
3969
|
-
var _el$9 = _tmpl$
|
|
4057
|
+
var _el$9 = _tmpl$62();
|
|
3970
4058
|
insert(_el$9, () => props.children);
|
|
3971
4059
|
return _el$9;
|
|
3972
4060
|
})();
|
|
4061
|
+
var DismissConfirmation = (props) => {
|
|
4062
|
+
const handleKeyDown = (event) => {
|
|
4063
|
+
if (event.code === "Enter") {
|
|
4064
|
+
event.preventDefault();
|
|
4065
|
+
event.stopPropagation();
|
|
4066
|
+
props.onConfirm?.();
|
|
4067
|
+
} else if (event.code === "Escape") {
|
|
4068
|
+
event.preventDefault();
|
|
4069
|
+
event.stopPropagation();
|
|
4070
|
+
props.onCancel?.();
|
|
4071
|
+
}
|
|
4072
|
+
};
|
|
4073
|
+
onMount(() => {
|
|
4074
|
+
window.addEventListener("keydown", handleKeyDown, {
|
|
4075
|
+
capture: true
|
|
4076
|
+
});
|
|
4077
|
+
});
|
|
4078
|
+
onCleanup(() => {
|
|
4079
|
+
window.removeEventListener("keydown", handleKeyDown, {
|
|
4080
|
+
capture: true
|
|
4081
|
+
});
|
|
4082
|
+
});
|
|
4083
|
+
return (() => {
|
|
4084
|
+
var _el$0 = _tmpl$8(); _el$0.firstChild;
|
|
4085
|
+
insert(_el$0, createComponent(BottomSection, {
|
|
4086
|
+
get children() {
|
|
4087
|
+
var _el$10 = _tmpl$7(), _el$11 = _el$10.firstChild, _el$12 = _el$11.nextSibling; _el$12.firstChild;
|
|
4088
|
+
addEventListener(_el$11, "click", props.onCancel);
|
|
4089
|
+
addEventListener(_el$12, "click", props.onConfirm);
|
|
4090
|
+
insert(_el$12, createComponent(IconReturn, {
|
|
4091
|
+
size: 10,
|
|
4092
|
+
"class": "text-[#c00002]"
|
|
4093
|
+
}), null);
|
|
4094
|
+
return _el$10;
|
|
4095
|
+
}
|
|
4096
|
+
}), null);
|
|
4097
|
+
return _el$0;
|
|
4098
|
+
})();
|
|
4099
|
+
};
|
|
3973
4100
|
var SelectionLabel = (props) => {
|
|
3974
4101
|
let containerRef;
|
|
3975
4102
|
let inputRef;
|
|
3976
4103
|
let isTagCurrentlyHovered = false;
|
|
4104
|
+
let lastValidPosition = null;
|
|
4105
|
+
let lastElementIdentity = null;
|
|
3977
4106
|
const [measuredWidth, setMeasuredWidth] = createSignal(0);
|
|
3978
4107
|
const [measuredHeight, setMeasuredHeight] = createSignal(0);
|
|
3979
4108
|
const [arrowPosition, setArrowPosition] = createSignal("bottom");
|
|
3980
4109
|
const [viewportVersion, setViewportVersion] = createSignal(0);
|
|
3981
4110
|
const [isIdle, setIsIdle] = createSignal(false);
|
|
4111
|
+
const [hadValidBounds, setHadValidBounds] = createSignal(false);
|
|
3982
4112
|
const speechRecognition = useSpeechRecognition({
|
|
3983
4113
|
onTranscript: (transcript) => props.onInputChange?.(transcript),
|
|
3984
4114
|
getCurrentValue: () => props.inputValue ?? ""
|
|
@@ -4035,8 +4165,11 @@ var SelectionLabel = (props) => {
|
|
|
4035
4165
|
}
|
|
4036
4166
|
});
|
|
4037
4167
|
createEffect(() => {
|
|
4038
|
-
|
|
4039
|
-
|
|
4168
|
+
const elementIdentity = `${props.tagName ?? ""}:${props.componentName ?? ""}`;
|
|
4169
|
+
if (elementIdentity !== lastElementIdentity) {
|
|
4170
|
+
lastElementIdentity = elementIdentity;
|
|
4171
|
+
resetIdleTimer();
|
|
4172
|
+
}
|
|
4040
4173
|
});
|
|
4041
4174
|
createEffect(() => {
|
|
4042
4175
|
if (props.visible) {
|
|
@@ -4061,8 +4194,10 @@ var SelectionLabel = (props) => {
|
|
|
4061
4194
|
const bounds = props.selectionBounds;
|
|
4062
4195
|
const labelWidth = measuredWidth();
|
|
4063
4196
|
const labelHeight = measuredHeight();
|
|
4064
|
-
|
|
4065
|
-
|
|
4197
|
+
const hasMeasurements = labelWidth > 0 && labelHeight > 0;
|
|
4198
|
+
const hasValidBounds = bounds && bounds.width > 0 && bounds.height > 0;
|
|
4199
|
+
if (!hasMeasurements || !hasValidBounds) {
|
|
4200
|
+
return lastValidPosition ?? {
|
|
4066
4201
|
left: -9999,
|
|
4067
4202
|
top: -9999,
|
|
4068
4203
|
arrowLeft: 0
|
|
@@ -4094,11 +4229,14 @@ var SelectionLabel = (props) => {
|
|
|
4094
4229
|
positionTop = VIEWPORT_MARGIN_PX;
|
|
4095
4230
|
}
|
|
4096
4231
|
const arrowLeft = Math.max(12, Math.min(cursorX - positionLeft, labelWidth - 12));
|
|
4097
|
-
|
|
4232
|
+
const position = {
|
|
4098
4233
|
left: positionLeft,
|
|
4099
4234
|
top: positionTop,
|
|
4100
4235
|
arrowLeft
|
|
4101
4236
|
};
|
|
4237
|
+
lastValidPosition = position;
|
|
4238
|
+
setHadValidBounds(true);
|
|
4239
|
+
return position;
|
|
4102
4240
|
};
|
|
4103
4241
|
const handleKeyDown = (event) => {
|
|
4104
4242
|
event.stopPropagation();
|
|
@@ -4131,85 +4269,129 @@ var SelectionLabel = (props) => {
|
|
|
4131
4269
|
event.stopPropagation();
|
|
4132
4270
|
event.stopImmediatePropagation();
|
|
4133
4271
|
};
|
|
4272
|
+
const handleContainerPointerDown = (event) => {
|
|
4273
|
+
stopPropagation(event);
|
|
4274
|
+
const isEditableInputVisible = isNotProcessing() && props.isInputExpanded && !props.isPendingDismiss;
|
|
4275
|
+
if (isEditableInputVisible && inputRef) {
|
|
4276
|
+
inputRef.focus();
|
|
4277
|
+
}
|
|
4278
|
+
};
|
|
4134
4279
|
const handleSubmit = () => {
|
|
4135
4280
|
if (props.isInputExpanded && !props.inputValue?.trim()) return;
|
|
4136
4281
|
speechRecognition.stop();
|
|
4137
4282
|
props.onSubmit?.();
|
|
4138
4283
|
};
|
|
4284
|
+
const shouldShowWithoutBounds = () => hadValidBounds() && (props.status === "copied" || props.status === "fading");
|
|
4139
4285
|
return createComponent(Show, {
|
|
4140
4286
|
get when() {
|
|
4141
|
-
return memo(() => props.visible !== false)() && props.selectionBounds;
|
|
4287
|
+
return memo(() => props.visible !== false)() && (props.selectionBounds || shouldShowWithoutBounds());
|
|
4142
4288
|
},
|
|
4143
4289
|
get children() {
|
|
4144
|
-
var _el$
|
|
4145
|
-
_el$
|
|
4146
|
-
_el$
|
|
4147
|
-
_el$
|
|
4290
|
+
var _el$14 = _tmpl$21(), _el$21 = _el$14.firstChild;
|
|
4291
|
+
_el$14.$$click = stopPropagation;
|
|
4292
|
+
_el$14.$$mousedown = stopPropagation;
|
|
4293
|
+
_el$14.$$pointerdown = handleContainerPointerDown;
|
|
4148
4294
|
var _ref$ = containerRef;
|
|
4149
|
-
typeof _ref$ === "function" ? use(_ref$, _el$
|
|
4150
|
-
insert(_el$
|
|
4295
|
+
typeof _ref$ === "function" ? use(_ref$, _el$14) : containerRef = _el$14;
|
|
4296
|
+
insert(_el$14, createComponent(Arrow, {
|
|
4151
4297
|
get position() {
|
|
4152
4298
|
return arrowPosition();
|
|
4153
4299
|
},
|
|
4154
4300
|
get leftPx() {
|
|
4155
4301
|
return computedPosition().arrowLeft;
|
|
4156
4302
|
}
|
|
4157
|
-
}), _el$
|
|
4158
|
-
insert(_el$
|
|
4303
|
+
}), _el$21);
|
|
4304
|
+
insert(_el$14, createComponent(Show, {
|
|
4159
4305
|
get when() {
|
|
4160
4306
|
return props.status === "copied" || props.status === "fading";
|
|
4161
4307
|
},
|
|
4162
4308
|
get children() {
|
|
4163
|
-
var _el$
|
|
4164
|
-
insert(_el$
|
|
4165
|
-
|
|
4309
|
+
var _el$15 = _tmpl$10(), _el$16 = _el$15.firstChild, _el$17 = _el$16.firstChild;
|
|
4310
|
+
insert(_el$17, (() => {
|
|
4311
|
+
var _c$ = memo(() => !!props.hasAgent);
|
|
4312
|
+
return () => _c$() ? props.statusText ?? "Completed" : "Copied";
|
|
4313
|
+
})());
|
|
4314
|
+
insert(_el$15, createComponent(Show, {
|
|
4315
|
+
get when() {
|
|
4316
|
+
return props.onDismiss || props.onUndo;
|
|
4317
|
+
},
|
|
4318
|
+
get children() {
|
|
4319
|
+
return createComponent(BottomSection, {
|
|
4320
|
+
get children() {
|
|
4321
|
+
var _el$18 = _tmpl$1();
|
|
4322
|
+
insert(_el$18, createComponent(Show, {
|
|
4323
|
+
get when() {
|
|
4324
|
+
return props.onUndo;
|
|
4325
|
+
},
|
|
4326
|
+
get children() {
|
|
4327
|
+
var _el$19 = _tmpl$9();
|
|
4328
|
+
_el$19.$$click = () => props.onUndo?.();
|
|
4329
|
+
return _el$19;
|
|
4330
|
+
}
|
|
4331
|
+
}), null);
|
|
4332
|
+
insert(_el$18, createComponent(Show, {
|
|
4333
|
+
get when() {
|
|
4334
|
+
return props.onDismiss;
|
|
4335
|
+
},
|
|
4336
|
+
get children() {
|
|
4337
|
+
var _el$20 = _tmpl$0();
|
|
4338
|
+
_el$20.$$click = () => props.onDismiss?.();
|
|
4339
|
+
return _el$20;
|
|
4340
|
+
}
|
|
4341
|
+
}), null);
|
|
4342
|
+
return _el$18;
|
|
4343
|
+
}
|
|
4344
|
+
});
|
|
4345
|
+
}
|
|
4346
|
+
}), null);
|
|
4347
|
+
return _el$15;
|
|
4166
4348
|
}
|
|
4167
|
-
}), _el$
|
|
4168
|
-
insert(_el$
|
|
4349
|
+
}), _el$21);
|
|
4350
|
+
insert(_el$21, createComponent(Show, {
|
|
4169
4351
|
get when() {
|
|
4170
4352
|
return props.status === "copying";
|
|
4171
4353
|
},
|
|
4172
4354
|
get children() {
|
|
4173
|
-
var _el$
|
|
4174
|
-
insert(_el$
|
|
4175
|
-
insert(_el$
|
|
4355
|
+
var _el$22 = _tmpl$13(), _el$23 = _el$22.firstChild, _el$24 = _el$23.firstChild, _el$25 = _el$24.firstChild;
|
|
4356
|
+
insert(_el$25, () => props.statusText ?? "Grabbing\u2026");
|
|
4357
|
+
insert(_el$22, createComponent(BottomSection, {
|
|
4176
4358
|
get children() {
|
|
4177
|
-
var _el$
|
|
4359
|
+
var _el$26 = _tmpl$12(), _el$27 = _el$26.firstChild;
|
|
4178
4360
|
var _ref$2 = inputRef;
|
|
4179
|
-
typeof _ref$2 === "function" ? use(_ref$2, _el$
|
|
4180
|
-
insert(_el$
|
|
4361
|
+
typeof _ref$2 === "function" ? use(_ref$2, _el$27) : inputRef = _el$27;
|
|
4362
|
+
insert(_el$26, createComponent(Show, {
|
|
4181
4363
|
get when() {
|
|
4182
4364
|
return props.onAbort;
|
|
4183
4365
|
},
|
|
4184
4366
|
get children() {
|
|
4185
|
-
var _el$
|
|
4186
|
-
_el$
|
|
4367
|
+
var _el$28 = _tmpl$11();
|
|
4368
|
+
_el$28.$$click = (event) => {
|
|
4187
4369
|
event.stopPropagation();
|
|
4188
4370
|
props.onAbort?.();
|
|
4189
4371
|
};
|
|
4190
|
-
_el$
|
|
4372
|
+
_el$28.$$pointerup = (event) => {
|
|
4191
4373
|
event.stopPropagation();
|
|
4192
4374
|
props.onAbort?.();
|
|
4193
4375
|
};
|
|
4194
|
-
_el$
|
|
4195
|
-
_el$
|
|
4196
|
-
return _el$
|
|
4376
|
+
_el$28.$$mousedown = (event) => event.stopPropagation();
|
|
4377
|
+
_el$28.$$pointerdown = (event) => event.stopPropagation();
|
|
4378
|
+
return _el$28;
|
|
4197
4379
|
}
|
|
4198
4380
|
}), null);
|
|
4199
|
-
createRenderEffect(() => _el$
|
|
4200
|
-
return _el$
|
|
4381
|
+
createRenderEffect(() => _el$27.value = props.inputValue ?? "");
|
|
4382
|
+
return _el$26;
|
|
4201
4383
|
}
|
|
4202
4384
|
}), null);
|
|
4203
|
-
return _el$
|
|
4385
|
+
return _el$22;
|
|
4204
4386
|
}
|
|
4205
4387
|
}), null);
|
|
4206
|
-
insert(_el$
|
|
4388
|
+
insert(_el$21, createComponent(Show, {
|
|
4207
4389
|
get when() {
|
|
4208
4390
|
return memo(() => !!isNotProcessing())() && !props.isInputExpanded;
|
|
4209
4391
|
},
|
|
4210
4392
|
get children() {
|
|
4211
|
-
var _el$
|
|
4212
|
-
insert(_el$
|
|
4393
|
+
var _el$29 = _tmpl$16(), _el$30 = _el$29.firstChild, _el$32 = _el$30.nextSibling, _el$33 = _el$32.firstChild;
|
|
4394
|
+
insert(_el$30, createComponent(ClickToCopyPill, {
|
|
4213
4395
|
onClick: handleSubmit,
|
|
4214
4396
|
shrink: true,
|
|
4215
4397
|
get hasParent() {
|
|
@@ -4219,19 +4401,19 @@ var SelectionLabel = (props) => {
|
|
|
4219
4401
|
return props.hasAgent;
|
|
4220
4402
|
}
|
|
4221
4403
|
}), null);
|
|
4222
|
-
insert(_el$
|
|
4404
|
+
insert(_el$30, createComponent(Show, {
|
|
4223
4405
|
get when() {
|
|
4224
4406
|
return props.componentName;
|
|
4225
4407
|
},
|
|
4226
4408
|
get children() {
|
|
4227
|
-
var _el$
|
|
4228
|
-
insert(_el$
|
|
4409
|
+
var _el$31 = _tmpl$14();
|
|
4410
|
+
insert(_el$31, createComponent(ParentBadge, {
|
|
4229
4411
|
get name() {
|
|
4230
4412
|
return props.componentName;
|
|
4231
4413
|
}
|
|
4232
4414
|
}), null);
|
|
4233
|
-
insert(_el$
|
|
4234
|
-
insert(_el$
|
|
4415
|
+
insert(_el$31, createComponent(ChevronSeparator, {}), null);
|
|
4416
|
+
insert(_el$31, createComponent(TagBadge, {
|
|
4235
4417
|
get tagName() {
|
|
4236
4418
|
return tagDisplay();
|
|
4237
4419
|
},
|
|
@@ -4243,10 +4425,10 @@ var SelectionLabel = (props) => {
|
|
|
4243
4425
|
showMono: true,
|
|
4244
4426
|
shrink: true
|
|
4245
4427
|
}), null);
|
|
4246
|
-
return _el$
|
|
4428
|
+
return _el$31;
|
|
4247
4429
|
}
|
|
4248
4430
|
}), null);
|
|
4249
|
-
insert(_el$
|
|
4431
|
+
insert(_el$30, createComponent(Show, {
|
|
4250
4432
|
get when() {
|
|
4251
4433
|
return !props.componentName;
|
|
4252
4434
|
},
|
|
@@ -4265,33 +4447,37 @@ var SelectionLabel = (props) => {
|
|
|
4265
4447
|
});
|
|
4266
4448
|
}
|
|
4267
4449
|
}), null);
|
|
4268
|
-
insert(_el$
|
|
4450
|
+
insert(_el$33, createComponent(BottomSection, {
|
|
4269
4451
|
get children() {
|
|
4270
|
-
var _el$
|
|
4271
|
-
|
|
4452
|
+
var _el$34 = _tmpl$15(), _el$35 = _el$34.firstChild, _el$36 = _el$35.nextSibling;
|
|
4453
|
+
insert(_el$36, createComponent(IconReturn, {
|
|
4454
|
+
size: 10,
|
|
4455
|
+
"class": "opacity-[0.99] text-black"
|
|
4456
|
+
}));
|
|
4457
|
+
return _el$34;
|
|
4272
4458
|
}
|
|
4273
4459
|
}));
|
|
4274
4460
|
createRenderEffect((_p$) => {
|
|
4275
4461
|
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");
|
|
4276
|
-
_v$3 !== _p$.e && className(_el$
|
|
4277
|
-
_v$4 !== _p$.t && setStyleProperty(_el$
|
|
4278
|
-
_v$5 !== _p$.a && className(_el$
|
|
4462
|
+
_v$3 !== _p$.e && className(_el$30, _p$.e = _v$3);
|
|
4463
|
+
_v$4 !== _p$.t && setStyleProperty(_el$32, "grid-template-rows", _p$.t = _v$4);
|
|
4464
|
+
_v$5 !== _p$.a && className(_el$33, _p$.a = _v$5);
|
|
4279
4465
|
return _p$;
|
|
4280
4466
|
}, {
|
|
4281
4467
|
e: void 0,
|
|
4282
4468
|
t: void 0,
|
|
4283
4469
|
a: void 0
|
|
4284
4470
|
});
|
|
4285
|
-
return _el$
|
|
4471
|
+
return _el$29;
|
|
4286
4472
|
}
|
|
4287
4473
|
}), null);
|
|
4288
|
-
insert(_el$
|
|
4474
|
+
insert(_el$21, createComponent(Show, {
|
|
4289
4475
|
get when() {
|
|
4290
|
-
return memo(() => !!isNotProcessing())() && props.
|
|
4476
|
+
return memo(() => !!(isNotProcessing() && props.isInputExpanded))() && !props.isPendingDismiss;
|
|
4291
4477
|
},
|
|
4292
4478
|
get children() {
|
|
4293
|
-
var _el$
|
|
4294
|
-
insert(_el$
|
|
4479
|
+
var _el$37 = _tmpl$20(), _el$38 = _el$37.firstChild;
|
|
4480
|
+
insert(_el$38, createComponent(ClickToCopyPill, {
|
|
4295
4481
|
onClick: handleSubmit,
|
|
4296
4482
|
dimmed: true,
|
|
4297
4483
|
shrink: true,
|
|
@@ -4302,19 +4488,19 @@ var SelectionLabel = (props) => {
|
|
|
4302
4488
|
return props.hasAgent;
|
|
4303
4489
|
}
|
|
4304
4490
|
}), null);
|
|
4305
|
-
insert(_el$
|
|
4491
|
+
insert(_el$38, createComponent(Show, {
|
|
4306
4492
|
get when() {
|
|
4307
4493
|
return props.componentName;
|
|
4308
4494
|
},
|
|
4309
4495
|
get children() {
|
|
4310
|
-
var _el$
|
|
4311
|
-
insert(_el$
|
|
4496
|
+
var _el$39 = _tmpl$14();
|
|
4497
|
+
insert(_el$39, createComponent(ParentBadge, {
|
|
4312
4498
|
get name() {
|
|
4313
4499
|
return props.componentName;
|
|
4314
4500
|
}
|
|
4315
4501
|
}), null);
|
|
4316
|
-
insert(_el$
|
|
4317
|
-
insert(_el$
|
|
4502
|
+
insert(_el$39, createComponent(ChevronSeparator, {}), null);
|
|
4503
|
+
insert(_el$39, createComponent(TagBadge, {
|
|
4318
4504
|
get tagName() {
|
|
4319
4505
|
return tagDisplay();
|
|
4320
4506
|
},
|
|
@@ -4327,10 +4513,10 @@ var SelectionLabel = (props) => {
|
|
|
4327
4513
|
shrink: true,
|
|
4328
4514
|
forceShowIcon: true
|
|
4329
4515
|
}), null);
|
|
4330
|
-
return _el$
|
|
4516
|
+
return _el$39;
|
|
4331
4517
|
}
|
|
4332
4518
|
}), null);
|
|
4333
|
-
insert(_el$
|
|
4519
|
+
insert(_el$38, createComponent(Show, {
|
|
4334
4520
|
get when() {
|
|
4335
4521
|
return !props.componentName;
|
|
4336
4522
|
},
|
|
@@ -4350,21 +4536,21 @@ var SelectionLabel = (props) => {
|
|
|
4350
4536
|
});
|
|
4351
4537
|
}
|
|
4352
4538
|
}), null);
|
|
4353
|
-
insert(_el$
|
|
4539
|
+
insert(_el$37, createComponent(BottomSection, {
|
|
4354
4540
|
get children() {
|
|
4355
|
-
var _el$
|
|
4356
|
-
_el$
|
|
4357
|
-
_el$
|
|
4541
|
+
var _el$40 = _tmpl$19(), _el$41 = _el$40.firstChild, _el$42 = _el$41.nextSibling;
|
|
4542
|
+
_el$41.$$keydown = handleKeyDown;
|
|
4543
|
+
_el$41.$$input = handleInput;
|
|
4358
4544
|
var _ref$3 = inputRef;
|
|
4359
|
-
typeof _ref$3 === "function" ? use(_ref$3, _el$
|
|
4360
|
-
insert(_el$
|
|
4545
|
+
typeof _ref$3 === "function" ? use(_ref$3, _el$41) : inputRef = _el$41;
|
|
4546
|
+
insert(_el$42, createComponent(Show, {
|
|
4361
4547
|
get when() {
|
|
4362
4548
|
return memo(() => !!(props.hasAgent && speechRecognition.isSupported()))() && !props.inputValue;
|
|
4363
4549
|
},
|
|
4364
4550
|
get children() {
|
|
4365
|
-
var _el$
|
|
4366
|
-
addEventListener(_el$
|
|
4367
|
-
insert(_el$
|
|
4551
|
+
var _el$43 = _tmpl$17();
|
|
4552
|
+
addEventListener(_el$43, "click", speechRecognition.toggle);
|
|
4553
|
+
insert(_el$43, createComponent(IconMic, {
|
|
4368
4554
|
size: 11,
|
|
4369
4555
|
get ["class"]() {
|
|
4370
4556
|
return speechRecognition.isListening() ? "animate-pulse" : "";
|
|
@@ -4372,42 +4558,61 @@ var SelectionLabel = (props) => {
|
|
|
4372
4558
|
}));
|
|
4373
4559
|
createRenderEffect((_p$) => {
|
|
4374
4560
|
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";
|
|
4375
|
-
_v$6 !== _p$.e && className(_el$
|
|
4376
|
-
_v$7 !== _p$.t && setAttribute(_el$
|
|
4561
|
+
_v$6 !== _p$.e && className(_el$43, _p$.e = _v$6);
|
|
4562
|
+
_v$7 !== _p$.t && setAttribute(_el$43, "title", _p$.t = _v$7);
|
|
4377
4563
|
return _p$;
|
|
4378
4564
|
}, {
|
|
4379
4565
|
e: void 0,
|
|
4380
4566
|
t: void 0
|
|
4381
4567
|
});
|
|
4382
|
-
return _el$
|
|
4568
|
+
return _el$43;
|
|
4383
4569
|
}
|
|
4384
4570
|
}), null);
|
|
4385
|
-
insert(_el$
|
|
4571
|
+
insert(_el$42, createComponent(Show, {
|
|
4386
4572
|
get when() {
|
|
4387
4573
|
return props.inputValue;
|
|
4388
4574
|
},
|
|
4389
4575
|
get children() {
|
|
4390
|
-
var _el$
|
|
4391
|
-
_el$
|
|
4392
|
-
|
|
4576
|
+
var _el$44 = _tmpl$18();
|
|
4577
|
+
_el$44.$$click = handleSubmit;
|
|
4578
|
+
insert(_el$44, createComponent(IconReturn, {
|
|
4579
|
+
size: 10,
|
|
4580
|
+
"class": "opacity-[0.99] text-black"
|
|
4581
|
+
}));
|
|
4582
|
+
return _el$44;
|
|
4393
4583
|
}
|
|
4394
4584
|
}), null);
|
|
4395
|
-
createRenderEffect(() => setAttribute(_el$
|
|
4396
|
-
createRenderEffect(() => _el$
|
|
4397
|
-
return _el$
|
|
4585
|
+
createRenderEffect(() => setAttribute(_el$41, "placeholder", speechRecognition.isListening() ? "listening..." : props.hasAgent && props.isAgentConnected ? "type to edit" : "type prompt"));
|
|
4586
|
+
createRenderEffect(() => _el$41.value = props.inputValue ?? "");
|
|
4587
|
+
return _el$40;
|
|
4398
4588
|
}
|
|
4399
4589
|
}), null);
|
|
4400
|
-
createRenderEffect(() => className(_el$
|
|
4401
|
-
return _el$
|
|
4590
|
+
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")));
|
|
4591
|
+
return _el$37;
|
|
4592
|
+
}
|
|
4593
|
+
}), null);
|
|
4594
|
+
insert(_el$21, createComponent(Show, {
|
|
4595
|
+
get when() {
|
|
4596
|
+
return props.isPendingDismiss;
|
|
4597
|
+
},
|
|
4598
|
+
get children() {
|
|
4599
|
+
return createComponent(DismissConfirmation, {
|
|
4600
|
+
get onConfirm() {
|
|
4601
|
+
return props.onConfirmDismiss;
|
|
4602
|
+
},
|
|
4603
|
+
get onCancel() {
|
|
4604
|
+
return props.onCancelDismiss;
|
|
4605
|
+
}
|
|
4606
|
+
});
|
|
4402
4607
|
}
|
|
4403
4608
|
}), null);
|
|
4404
4609
|
createRenderEffect((_p$) => {
|
|
4405
|
-
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;
|
|
4406
|
-
_v$8 !== _p$.e && setStyleProperty(_el$
|
|
4407
|
-
_v$9 !== _p$.t && setStyleProperty(_el$
|
|
4408
|
-
_v$0 !== _p$.a && setStyleProperty(_el$
|
|
4409
|
-
_v$1 !== _p$.o && setStyleProperty(_el$
|
|
4410
|
-
_v$10 !== _p$.i && setStyleProperty(_el$
|
|
4610
|
+
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;
|
|
4611
|
+
_v$8 !== _p$.e && setStyleProperty(_el$14, "top", _p$.e = _v$8);
|
|
4612
|
+
_v$9 !== _p$.t && setStyleProperty(_el$14, "left", _p$.t = _v$9);
|
|
4613
|
+
_v$0 !== _p$.a && setStyleProperty(_el$14, "pointer-events", _p$.a = _v$0);
|
|
4614
|
+
_v$1 !== _p$.o && setStyleProperty(_el$14, "opacity", _p$.o = _v$1);
|
|
4615
|
+
_v$10 !== _p$.i && setStyleProperty(_el$21, "display", _p$.i = _v$10);
|
|
4411
4616
|
return _p$;
|
|
4412
4617
|
}, {
|
|
4413
4618
|
e: void 0,
|
|
@@ -4416,14 +4621,14 @@ var SelectionLabel = (props) => {
|
|
|
4416
4621
|
o: void 0,
|
|
4417
4622
|
i: void 0
|
|
4418
4623
|
});
|
|
4419
|
-
return _el$
|
|
4624
|
+
return _el$14;
|
|
4420
4625
|
}
|
|
4421
4626
|
});
|
|
4422
4627
|
};
|
|
4423
4628
|
delegateEvents(["click", "pointerdown", "mousedown", "pointerup", "input", "keydown"]);
|
|
4424
4629
|
|
|
4425
4630
|
// src/components/selection-cursor.tsx
|
|
4426
|
-
var _tmpl$
|
|
4631
|
+
var _tmpl$23 = /* @__PURE__ */ template(`<div class="fixed z-2147483647"><button data-react-grab-selection-cursor>`);
|
|
4427
4632
|
var SelectionCursor = (props) => {
|
|
4428
4633
|
const [isHovered, setIsHovered] = createSignal(false);
|
|
4429
4634
|
const [debouncedVisible, setDebouncedVisible] = createSignal(false);
|
|
@@ -4460,7 +4665,7 @@ var SelectionCursor = (props) => {
|
|
|
4460
4665
|
});
|
|
4461
4666
|
}
|
|
4462
4667
|
}), (() => {
|
|
4463
|
-
var _el$ = _tmpl$
|
|
4668
|
+
var _el$ = _tmpl$23(), _el$2 = _el$.firstChild;
|
|
4464
4669
|
_el$.addEventListener("mouseleave", () => setIsHovered(false));
|
|
4465
4670
|
_el$.addEventListener("mouseenter", () => setIsHovered(true));
|
|
4466
4671
|
_el$2.$$click = handleClick;
|
|
@@ -4505,6 +4710,7 @@ delegateEvents(["click"]);
|
|
|
4505
4710
|
|
|
4506
4711
|
// src/components/renderer.tsx
|
|
4507
4712
|
var ReactGrabRenderer = (props) => {
|
|
4713
|
+
const agentSessionsList = createMemo(() => props.agentSessions ? Array.from(props.agentSessions.values()) : []);
|
|
4508
4714
|
return [createComponent(Show, {
|
|
4509
4715
|
get when() {
|
|
4510
4716
|
return memo(() => !!props.selectionVisible)() && props.selectionBounds;
|
|
@@ -4566,51 +4772,58 @@ var ReactGrabRenderer = (props) => {
|
|
|
4566
4772
|
return box.createdAt;
|
|
4567
4773
|
}
|
|
4568
4774
|
})
|
|
4569
|
-
}), createComponent(
|
|
4775
|
+
}), createComponent(Index, {
|
|
4570
4776
|
get each() {
|
|
4571
|
-
return
|
|
4777
|
+
return agentSessionsList();
|
|
4572
4778
|
},
|
|
4573
4779
|
children: (session) => [createComponent(Show, {
|
|
4574
4780
|
get when() {
|
|
4575
|
-
return session.selectionBounds;
|
|
4781
|
+
return session().selectionBounds;
|
|
4576
4782
|
},
|
|
4577
4783
|
get children() {
|
|
4578
4784
|
return createComponent(SelectionBox, {
|
|
4579
4785
|
variant: "processing",
|
|
4580
4786
|
get bounds() {
|
|
4581
|
-
return session.selectionBounds;
|
|
4787
|
+
return session().selectionBounds;
|
|
4582
4788
|
},
|
|
4583
4789
|
visible: true,
|
|
4584
4790
|
get isCompleted() {
|
|
4585
|
-
return !session.isStreaming;
|
|
4791
|
+
return !session().isStreaming;
|
|
4586
4792
|
}
|
|
4587
4793
|
});
|
|
4588
4794
|
}
|
|
4589
4795
|
}), createComponent(SelectionLabel, {
|
|
4590
4796
|
get tagName() {
|
|
4591
|
-
return session.tagName;
|
|
4797
|
+
return session().tagName;
|
|
4592
4798
|
},
|
|
4593
4799
|
get componentName() {
|
|
4594
|
-
return session.componentName;
|
|
4800
|
+
return session().componentName;
|
|
4595
4801
|
},
|
|
4596
4802
|
get selectionBounds() {
|
|
4597
|
-
return session.selectionBounds;
|
|
4803
|
+
return session().selectionBounds;
|
|
4598
4804
|
},
|
|
4599
4805
|
get mouseX() {
|
|
4600
|
-
return session.position.x;
|
|
4806
|
+
return session().position.x;
|
|
4601
4807
|
},
|
|
4602
4808
|
visible: true,
|
|
4603
4809
|
hasAgent: true,
|
|
4810
|
+
isAgentConnected: true,
|
|
4604
4811
|
get status() {
|
|
4605
|
-
return session.isStreaming ? "copying" : "copied";
|
|
4812
|
+
return session().isStreaming ? "copying" : "copied";
|
|
4606
4813
|
},
|
|
4607
4814
|
get statusText() {
|
|
4608
|
-
return session.lastStatus || "Thinking\u2026";
|
|
4815
|
+
return session().lastStatus || "Thinking\u2026";
|
|
4609
4816
|
},
|
|
4610
4817
|
get inputValue() {
|
|
4611
|
-
return session.context.prompt;
|
|
4818
|
+
return session().context.prompt;
|
|
4819
|
+
},
|
|
4820
|
+
onAbort: () => props.onAbortSession?.(session().id),
|
|
4821
|
+
get onDismiss() {
|
|
4822
|
+
return session().isStreaming ? void 0 : () => props.onDismissSession?.(session().id);
|
|
4612
4823
|
},
|
|
4613
|
-
|
|
4824
|
+
get onUndo() {
|
|
4825
|
+
return session().isStreaming ? void 0 : () => props.onUndoSession?.(session().id);
|
|
4826
|
+
}
|
|
4614
4827
|
})]
|
|
4615
4828
|
}), createComponent(Show, {
|
|
4616
4829
|
get when() {
|
|
@@ -4642,6 +4855,9 @@ var ReactGrabRenderer = (props) => {
|
|
|
4642
4855
|
get hasAgent() {
|
|
4643
4856
|
return props.hasAgent;
|
|
4644
4857
|
},
|
|
4858
|
+
get isAgentConnected() {
|
|
4859
|
+
return props.isAgentConnected;
|
|
4860
|
+
},
|
|
4645
4861
|
get status() {
|
|
4646
4862
|
return props.selectionLabelStatus;
|
|
4647
4863
|
},
|
|
@@ -4663,6 +4879,15 @@ var ReactGrabRenderer = (props) => {
|
|
|
4663
4879
|
get onToggleExpand() {
|
|
4664
4880
|
return props.onToggleExpand;
|
|
4665
4881
|
},
|
|
4882
|
+
get isPendingDismiss() {
|
|
4883
|
+
return props.isPendingDismiss;
|
|
4884
|
+
},
|
|
4885
|
+
get onConfirmDismiss() {
|
|
4886
|
+
return props.onConfirmDismiss;
|
|
4887
|
+
},
|
|
4888
|
+
get onCancelDismiss() {
|
|
4889
|
+
return props.onCancelDismiss;
|
|
4890
|
+
},
|
|
4666
4891
|
onOpen: () => {
|
|
4667
4892
|
if (props.selectionFilePath) {
|
|
4668
4893
|
const openFileUrl = buildOpenFileUrl(props.selectionFilePath, props.selectionLineNumber);
|
|
@@ -4728,7 +4953,7 @@ var ReactGrabRenderer = (props) => {
|
|
|
4728
4953
|
})];
|
|
4729
4954
|
};
|
|
4730
4955
|
|
|
4731
|
-
// ../../node_modules/.pnpm/bippy@0.5.25_@types+react@19.2.
|
|
4956
|
+
// ../../node_modules/.pnpm/bippy@0.5.25_@types+react@19.2.7_react@19.2.1/node_modules/bippy/dist/rdt-hook-7WClMTWh.js
|
|
4732
4957
|
var e = `0.5.25`;
|
|
4733
4958
|
var t = `bippy-${e}`;
|
|
4734
4959
|
var n = Object.defineProperty;
|
|
@@ -4816,7 +5041,7 @@ var _ = () => {
|
|
|
4816
5041
|
}
|
|
4817
5042
|
};
|
|
4818
5043
|
|
|
4819
|
-
// ../../node_modules/.pnpm/bippy@0.5.25_@types+react@19.2.
|
|
5044
|
+
// ../../node_modules/.pnpm/bippy@0.5.25_@types+react@19.2.7_react@19.2.1/node_modules/bippy/dist/core-CoV0JPOT.js
|
|
4820
5045
|
var a2 = 0;
|
|
4821
5046
|
var o2 = 1;
|
|
4822
5047
|
var c2 = 5;
|
|
@@ -4904,7 +5129,7 @@ var Pe = (e2) => {
|
|
|
4904
5129
|
return null;
|
|
4905
5130
|
};
|
|
4906
5131
|
|
|
4907
|
-
// ../../node_modules/.pnpm/bippy@0.5.25_@types+react@19.2.
|
|
5132
|
+
// ../../node_modules/.pnpm/bippy@0.5.25_@types+react@19.2.7_react@19.2.1/node_modules/bippy/dist/source.js
|
|
4908
5133
|
var g2 = Object.create;
|
|
4909
5134
|
var _2 = Object.defineProperty;
|
|
4910
5135
|
var v = Object.getOwnPropertyDescriptor;
|
|
@@ -5546,7 +5771,7 @@ var je = (e2) => {
|
|
|
5546
5771
|
// src/utils/is-capitalized.ts
|
|
5547
5772
|
var isCapitalized = (value) => value.length > 0 && /^[A-Z]/.test(value);
|
|
5548
5773
|
|
|
5549
|
-
// ../../node_modules/.pnpm/bippy@0.5.25_@types+react@19.2.
|
|
5774
|
+
// ../../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
|
|
5550
5775
|
_();
|
|
5551
5776
|
|
|
5552
5777
|
// src/context.ts
|
|
@@ -5709,11 +5934,12 @@ var getHTMLPreview = (element) => {
|
|
|
5709
5934
|
|
|
5710
5935
|
// src/utils/copy-content.ts
|
|
5711
5936
|
var REACT_GRAB_MIME_TYPE = "application/x-react-grab";
|
|
5712
|
-
var copyContent = (content,
|
|
5937
|
+
var copyContent = (content, options) => {
|
|
5713
5938
|
const metadata = JSON.stringify({
|
|
5714
5939
|
version: VERSION,
|
|
5715
5940
|
content,
|
|
5716
|
-
timestamp: Date.now()
|
|
5941
|
+
timestamp: Date.now(),
|
|
5942
|
+
...options?.prompt && { prompt: options.prompt }
|
|
5717
5943
|
});
|
|
5718
5944
|
const copyHandler = (event) => {
|
|
5719
5945
|
event.preventDefault();
|
|
@@ -5731,7 +5957,7 @@ var copyContent = (content, onSuccess) => {
|
|
|
5731
5957
|
try {
|
|
5732
5958
|
const didCopySucceed = document.execCommand("copy");
|
|
5733
5959
|
if (didCopySucceed) {
|
|
5734
|
-
onSuccess?.();
|
|
5960
|
+
options?.onSuccess?.();
|
|
5735
5961
|
}
|
|
5736
5962
|
return didCopySucceed;
|
|
5737
5963
|
} finally {
|
|
@@ -6185,9 +6411,7 @@ var createAgentManager = (initialAgentOptions) => {
|
|
|
6185
6411
|
const isProcessing = () => sessions().size > 0;
|
|
6186
6412
|
const executeSessionStream = async (session, streamIterator) => {
|
|
6187
6413
|
const storage = agentOptions?.storage;
|
|
6188
|
-
let didComplete = false;
|
|
6189
6414
|
let wasAborted = false;
|
|
6190
|
-
let hadError = false;
|
|
6191
6415
|
try {
|
|
6192
6416
|
for await (const status of streamIterator) {
|
|
6193
6417
|
const currentSessions = sessions();
|
|
@@ -6201,17 +6425,21 @@ var createAgentManager = (initialAgentOptions) => {
|
|
|
6201
6425
|
setSessions((prev) => new Map(prev).set(session.id, updatedSession));
|
|
6202
6426
|
agentOptions?.onStatus?.(status, updatedSession);
|
|
6203
6427
|
}
|
|
6204
|
-
didComplete = true;
|
|
6205
6428
|
const finalSessions = sessions();
|
|
6206
6429
|
const finalSession = finalSessions.get(session.id);
|
|
6207
6430
|
if (finalSession) {
|
|
6431
|
+
const completionMessage = agentOptions?.provider?.getCompletionMessage?.();
|
|
6208
6432
|
const completedSession = updateSession(
|
|
6209
6433
|
finalSession,
|
|
6210
|
-
{
|
|
6434
|
+
{
|
|
6435
|
+
isStreaming: false,
|
|
6436
|
+
...completionMessage ? { lastStatus: completionMessage } : {}
|
|
6437
|
+
},
|
|
6211
6438
|
storage
|
|
6212
6439
|
);
|
|
6213
6440
|
setSessions((prev) => new Map(prev).set(session.id, completedSession));
|
|
6214
|
-
|
|
6441
|
+
const element = sessionElements.get(session.id);
|
|
6442
|
+
agentOptions?.onComplete?.(completedSession, element);
|
|
6215
6443
|
}
|
|
6216
6444
|
} catch (error) {
|
|
6217
6445
|
const currentSessions = sessions();
|
|
@@ -6238,7 +6466,6 @@ var createAgentManager = (initialAgentOptions) => {
|
|
|
6238
6466
|
setSessions((prev) => new Map(prev).set(session.id, errorSession));
|
|
6239
6467
|
}
|
|
6240
6468
|
} else {
|
|
6241
|
-
hadError = true;
|
|
6242
6469
|
if (currentSession) {
|
|
6243
6470
|
const errorSession = updateSession(
|
|
6244
6471
|
currentSession,
|
|
@@ -6257,7 +6484,7 @@ var createAgentManager = (initialAgentOptions) => {
|
|
|
6257
6484
|
}
|
|
6258
6485
|
} finally {
|
|
6259
6486
|
abortControllers.delete(session.id);
|
|
6260
|
-
|
|
6487
|
+
if (wasAborted) {
|
|
6261
6488
|
sessionElements.delete(session.id);
|
|
6262
6489
|
clearSessionById(session.id, storage);
|
|
6263
6490
|
setSessions((prev) => {
|
|
@@ -6265,11 +6492,6 @@ var createAgentManager = (initialAgentOptions) => {
|
|
|
6265
6492
|
next.delete(session.id);
|
|
6266
6493
|
return next;
|
|
6267
6494
|
});
|
|
6268
|
-
};
|
|
6269
|
-
if (wasAborted) {
|
|
6270
|
-
removeSession();
|
|
6271
|
-
} else if (didComplete || hadError) {
|
|
6272
|
-
setTimeout(removeSession, 1500);
|
|
6273
6495
|
}
|
|
6274
6496
|
}
|
|
6275
6497
|
};
|
|
@@ -6344,7 +6566,7 @@ var createAgentManager = (initialAgentOptions) => {
|
|
|
6344
6566
|
return;
|
|
6345
6567
|
}
|
|
6346
6568
|
const elements = [element];
|
|
6347
|
-
const content = await generateSnippet(elements);
|
|
6569
|
+
const content = await generateSnippet(elements, { maxLines: Infinity });
|
|
6348
6570
|
const context = {
|
|
6349
6571
|
content,
|
|
6350
6572
|
prompt,
|
|
@@ -6363,7 +6585,7 @@ var createAgentManager = (initialAgentOptions) => {
|
|
|
6363
6585
|
sessionElements.set(session.id, element);
|
|
6364
6586
|
setSessions((prev) => new Map(prev).set(session.id, session));
|
|
6365
6587
|
saveSessionById(session, storage);
|
|
6366
|
-
agentOptions.onStart?.(session);
|
|
6588
|
+
agentOptions.onStart?.(session, element);
|
|
6367
6589
|
const abortController = new AbortController();
|
|
6368
6590
|
abortControllers.set(session.id, abortController);
|
|
6369
6591
|
const streamIterator = agentOptions.provider.send(
|
|
@@ -6384,20 +6606,33 @@ var createAgentManager = (initialAgentOptions) => {
|
|
|
6384
6606
|
setSessions(/* @__PURE__ */ new Map());
|
|
6385
6607
|
clearSessions(agentOptions?.storage);
|
|
6386
6608
|
};
|
|
6609
|
+
const dismissSession = (sessionId) => {
|
|
6610
|
+
const storage = agentOptions?.storage;
|
|
6611
|
+
sessionElements.delete(sessionId);
|
|
6612
|
+
clearSessionById(sessionId, storage);
|
|
6613
|
+
setSessions((prev) => {
|
|
6614
|
+
const next = new Map(prev);
|
|
6615
|
+
next.delete(sessionId);
|
|
6616
|
+
return next;
|
|
6617
|
+
});
|
|
6618
|
+
};
|
|
6619
|
+
const undoSession = (sessionId) => {
|
|
6620
|
+
const currentSessions = sessions();
|
|
6621
|
+
const session = currentSessions.get(sessionId);
|
|
6622
|
+
if (session) {
|
|
6623
|
+
const element = sessionElements.get(sessionId);
|
|
6624
|
+
agentOptions?.onUndo?.(session, element);
|
|
6625
|
+
void agentOptions?.provider?.undo?.();
|
|
6626
|
+
}
|
|
6627
|
+
dismissSession(sessionId);
|
|
6628
|
+
};
|
|
6387
6629
|
const updateSessionBoundsOnViewportChange = () => {
|
|
6388
6630
|
const currentSessions = sessions();
|
|
6389
6631
|
if (currentSessions.size === 0) return;
|
|
6390
6632
|
const updatedSessions = new Map(currentSessions);
|
|
6391
6633
|
let didUpdate = false;
|
|
6392
6634
|
for (const [sessionId, session] of currentSessions) {
|
|
6393
|
-
|
|
6394
|
-
if (!element || !document.contains(element)) {
|
|
6395
|
-
const reacquiredElement = tryReacquireElement(session);
|
|
6396
|
-
if (reacquiredElement) {
|
|
6397
|
-
sessionElements.set(sessionId, reacquiredElement);
|
|
6398
|
-
element = reacquiredElement;
|
|
6399
|
-
}
|
|
6400
|
-
}
|
|
6635
|
+
const element = sessionElements.get(sessionId);
|
|
6401
6636
|
if (element && document.contains(element)) {
|
|
6402
6637
|
const newBounds = createElementBounds(element);
|
|
6403
6638
|
if (newBounds) {
|
|
@@ -6432,6 +6667,8 @@ var createAgentManager = (initialAgentOptions) => {
|
|
|
6432
6667
|
startSession,
|
|
6433
6668
|
abortSession,
|
|
6434
6669
|
abortAllSessions,
|
|
6670
|
+
dismissSession,
|
|
6671
|
+
undoSession,
|
|
6435
6672
|
updateSessionBoundsOnViewportChange,
|
|
6436
6673
|
getSessionElement,
|
|
6437
6674
|
setOptions,
|
|
@@ -6440,8 +6677,8 @@ var createAgentManager = (initialAgentOptions) => {
|
|
|
6440
6677
|
};
|
|
6441
6678
|
|
|
6442
6679
|
// src/core.tsx
|
|
6443
|
-
var _tmpl$
|
|
6444
|
-
var _tmpl$
|
|
6680
|
+
var _tmpl$24 = /* @__PURE__ */ template(`<span class="tabular-nums align-middle">`);
|
|
6681
|
+
var _tmpl$25 = /* @__PURE__ */ template(`<span class="font-mono tabular-nums align-middle"><<!>>`);
|
|
6445
6682
|
var _tmpl$33 = /* @__PURE__ */ template(`<span class="tabular-nums ml-1 align-middle"> in `);
|
|
6446
6683
|
var onIdle = (callback) => {
|
|
6447
6684
|
if ("scheduler" in globalThis) {
|
|
@@ -6534,7 +6771,7 @@ var init = (rawOptions) => {
|
|
|
6534
6771
|
hasInited = true;
|
|
6535
6772
|
const logIntro = () => {
|
|
6536
6773
|
try {
|
|
6537
|
-
const version = "0.0.
|
|
6774
|
+
const version = "0.0.73";
|
|
6538
6775
|
const logoDataUri = `data:image/svg+xml;base64,${btoa(LOGO_SVG)}`;
|
|
6539
6776
|
console.log(`%cReact Grab${version ? ` v${version}` : ""}%c
|
|
6540
6777
|
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;`, "");
|
|
@@ -6568,6 +6805,7 @@ https://react-grab.com`, `background: #330039; color: #ffffff; border: 1px solid
|
|
|
6568
6805
|
const [selectionLabelStatus, setSelectionLabelStatus] = createSignal("idle");
|
|
6569
6806
|
const [labelInstances, setLabelInstances] = createSignal([]);
|
|
6570
6807
|
const [lastGrabbedElement, setLastGrabbedElement] = createSignal(null);
|
|
6808
|
+
const [lastCopiedElement, setLastCopiedElement] = createSignal(null);
|
|
6571
6809
|
const [progressStartTime, setProgressStartTime] = createSignal(null);
|
|
6572
6810
|
const [grabbedBoxes, setGrabbedBoxes] = createSignal([]);
|
|
6573
6811
|
const [isActivated, setIsActivated] = createSignal(false);
|
|
@@ -6587,6 +6825,8 @@ https://react-grab.com`, `background: #330039; color: #ffffff; border: 1px solid
|
|
|
6587
6825
|
const [isInputExpanded, setIsInputExpanded] = createSignal(false);
|
|
6588
6826
|
const [frozenElement, setFrozenElement] = createSignal(null);
|
|
6589
6827
|
const [hasAgentProvider, setHasAgentProvider] = createSignal(Boolean(options.agent?.provider));
|
|
6828
|
+
const [isAgentConnected, setIsAgentConnected] = createSignal(false);
|
|
6829
|
+
const [isPendingDismiss, setIsPendingDismiss] = createSignal(false);
|
|
6590
6830
|
const elementInputCache = /* @__PURE__ */ new WeakMap();
|
|
6591
6831
|
const [nativeSelectionCursorX, setNativeSelectionCursorX] = createSignal(OFFSCREEN_POSITION);
|
|
6592
6832
|
const [nativeSelectionCursorY, setNativeSelectionCursorY] = createSignal(OFFSCREEN_POSITION);
|
|
@@ -6607,6 +6847,7 @@ https://react-grab.com`, `background: #330039; color: #ffffff; border: 1px solid
|
|
|
6607
6847
|
return await getNearestComponentName(element) || void 0;
|
|
6608
6848
|
});
|
|
6609
6849
|
const clearNativeSelectionState = () => {
|
|
6850
|
+
setHasNativeSelection(false);
|
|
6610
6851
|
setNativeSelectionCursorX(OFFSCREEN_POSITION);
|
|
6611
6852
|
setNativeSelectionCursorY(OFFSCREEN_POSITION);
|
|
6612
6853
|
setNativeSelectionElements([]);
|
|
@@ -6722,6 +6963,9 @@ https://react-grab.com`, `background: #330039; color: #ffffff; border: 1px solid
|
|
|
6722
6963
|
await operation().finally(() => {
|
|
6723
6964
|
setIsCopying(false);
|
|
6724
6965
|
setDidJustCopy(true);
|
|
6966
|
+
if (element) {
|
|
6967
|
+
setLastCopiedElement(element);
|
|
6968
|
+
}
|
|
6725
6969
|
stopProgressAnimation();
|
|
6726
6970
|
if (instanceId) {
|
|
6727
6971
|
updateLabelInstance(instanceId, "copied");
|
|
@@ -6765,7 +7009,9 @@ https://react-grab.com`, `background: #330039; color: #ffffff; border: 1px solid
|
|
|
6765
7009
|
|
|
6766
7010
|
${combinedSnippets}` : combinedSnippets;
|
|
6767
7011
|
copiedContent = plainTextContent;
|
|
6768
|
-
didCopy = copyContent(plainTextContent
|
|
7012
|
+
didCopy = copyContent(plainTextContent, {
|
|
7013
|
+
prompt: extraPrompt
|
|
7014
|
+
});
|
|
6769
7015
|
}
|
|
6770
7016
|
if (!didCopy) {
|
|
6771
7017
|
const plainTextContentOnly = createCombinedTextContent(elements);
|
|
@@ -6774,7 +7020,9 @@ ${combinedSnippets}` : combinedSnippets;
|
|
|
6774
7020
|
|
|
6775
7021
|
${plainTextContentOnly}` : plainTextContentOnly;
|
|
6776
7022
|
copiedContent = contentWithPrompt;
|
|
6777
|
-
didCopy = copyContent(contentWithPrompt
|
|
7023
|
+
didCopy = copyContent(contentWithPrompt, {
|
|
7024
|
+
prompt: extraPrompt
|
|
7025
|
+
});
|
|
6778
7026
|
}
|
|
6779
7027
|
}
|
|
6780
7028
|
if (didCopy) {
|
|
@@ -6788,7 +7036,9 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
6788
7036
|
|
|
6789
7037
|
${plainTextContentOnly}` : plainTextContentOnly;
|
|
6790
7038
|
copiedContent = contentWithPrompt;
|
|
6791
|
-
didCopy = copyContent(contentWithPrompt
|
|
7039
|
+
didCopy = copyContent(contentWithPrompt, {
|
|
7040
|
+
prompt: extraPrompt
|
|
7041
|
+
});
|
|
6792
7042
|
}
|
|
6793
7043
|
}
|
|
6794
7044
|
options.onAfterCopy?.(elements, didCopy);
|
|
@@ -6823,6 +7073,12 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
6823
7073
|
if (element && !document.contains(element)) return null;
|
|
6824
7074
|
return element;
|
|
6825
7075
|
});
|
|
7076
|
+
const effectiveElement = createMemo(() => {
|
|
7077
|
+
if (isToggleFrozen()) {
|
|
7078
|
+
return frozenElement();
|
|
7079
|
+
}
|
|
7080
|
+
return targetElement();
|
|
7081
|
+
});
|
|
6826
7082
|
createEffect(() => {
|
|
6827
7083
|
const element = detectedElement();
|
|
6828
7084
|
if (!element) return;
|
|
@@ -6834,6 +7090,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
6834
7090
|
onCleanup(() => clearInterval(intervalId));
|
|
6835
7091
|
});
|
|
6836
7092
|
createEffect(() => {
|
|
7093
|
+
if (isToggleFrozen()) return;
|
|
6837
7094
|
const element = targetElement();
|
|
6838
7095
|
if (element) {
|
|
6839
7096
|
setFrozenElement(element);
|
|
@@ -6841,7 +7098,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
6841
7098
|
});
|
|
6842
7099
|
const selectionBounds = createMemo(() => {
|
|
6843
7100
|
viewportVersion();
|
|
6844
|
-
const element =
|
|
7101
|
+
const element = effectiveElement();
|
|
6845
7102
|
if (!element) return void 0;
|
|
6846
7103
|
return createElementBounds(element);
|
|
6847
7104
|
});
|
|
@@ -6893,7 +7150,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
6893
7150
|
const copying = isCopying();
|
|
6894
7151
|
if (!element) {
|
|
6895
7152
|
return (() => {
|
|
6896
|
-
var _el$ = _tmpl$
|
|
7153
|
+
var _el$ = _tmpl$24();
|
|
6897
7154
|
insert(_el$, copying ? "Processing\u2026" : "1 element");
|
|
6898
7155
|
return _el$;
|
|
6899
7156
|
})();
|
|
@@ -6902,7 +7159,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
6902
7159
|
const componentName = labelComponentName();
|
|
6903
7160
|
if (tagName && componentName) {
|
|
6904
7161
|
return [(() => {
|
|
6905
|
-
var _el$2 = _tmpl$
|
|
7162
|
+
var _el$2 = _tmpl$25(), _el$3 = _el$2.firstChild, _el$5 = _el$3.nextSibling; _el$5.nextSibling;
|
|
6906
7163
|
insert(_el$2, tagName, _el$5);
|
|
6907
7164
|
return _el$2;
|
|
6908
7165
|
})(), (() => {
|
|
@@ -6913,13 +7170,13 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
6913
7170
|
}
|
|
6914
7171
|
if (tagName) {
|
|
6915
7172
|
return (() => {
|
|
6916
|
-
var _el$8 = _tmpl$
|
|
7173
|
+
var _el$8 = _tmpl$25(), _el$9 = _el$8.firstChild, _el$1 = _el$9.nextSibling; _el$1.nextSibling;
|
|
6917
7174
|
insert(_el$8, tagName, _el$1);
|
|
6918
7175
|
return _el$8;
|
|
6919
7176
|
})();
|
|
6920
7177
|
}
|
|
6921
7178
|
return (() => {
|
|
6922
|
-
var _el$10 = _tmpl$
|
|
7179
|
+
var _el$10 = _tmpl$24();
|
|
6923
7180
|
insert(_el$10, copying ? "Processing\u2026" : "1 element");
|
|
6924
7181
|
return _el$10;
|
|
6925
7182
|
})();
|
|
@@ -7112,6 +7369,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7112
7369
|
setInputText("");
|
|
7113
7370
|
setIsToggleFrozen(false);
|
|
7114
7371
|
setIsInputExpanded(false);
|
|
7372
|
+
setIsPendingDismiss(false);
|
|
7115
7373
|
setFrozenElement(null);
|
|
7116
7374
|
setSelectionLabelStatus("idle");
|
|
7117
7375
|
setDidJustCopy(false);
|
|
@@ -7130,25 +7388,32 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7130
7388
|
previouslyFocusedElement = null;
|
|
7131
7389
|
options.onDeactivate?.();
|
|
7132
7390
|
};
|
|
7391
|
+
const restoreInputFromSession = (session, element) => {
|
|
7392
|
+
if (element && document.contains(element)) {
|
|
7393
|
+
const rect = element.getBoundingClientRect();
|
|
7394
|
+
const centerY = rect.top + rect.height / 2;
|
|
7395
|
+
setMouseX(session.position.x);
|
|
7396
|
+
setMouseY(centerY);
|
|
7397
|
+
setFrozenElement(element);
|
|
7398
|
+
setInputText(session.context.prompt);
|
|
7399
|
+
setIsInputExpanded(true);
|
|
7400
|
+
setIsInputMode(true);
|
|
7401
|
+
setIsToggleMode(true);
|
|
7402
|
+
setIsToggleFrozen(true);
|
|
7403
|
+
if (!isActivated()) {
|
|
7404
|
+
activateRenderer();
|
|
7405
|
+
}
|
|
7406
|
+
}
|
|
7407
|
+
};
|
|
7133
7408
|
const agentOptions = options.agent ? {
|
|
7134
7409
|
...options.agent,
|
|
7135
7410
|
onAbort: (session, element) => {
|
|
7136
7411
|
options.agent?.onAbort?.(session, element);
|
|
7137
|
-
|
|
7138
|
-
|
|
7139
|
-
|
|
7140
|
-
|
|
7141
|
-
|
|
7142
|
-
setFrozenElement(element);
|
|
7143
|
-
setInputText(session.context.prompt);
|
|
7144
|
-
setIsInputExpanded(true);
|
|
7145
|
-
setIsInputMode(true);
|
|
7146
|
-
setIsToggleMode(true);
|
|
7147
|
-
setIsToggleFrozen(true);
|
|
7148
|
-
if (!isActivated()) {
|
|
7149
|
-
activateRenderer();
|
|
7150
|
-
}
|
|
7151
|
-
}
|
|
7412
|
+
restoreInputFromSession(session, element);
|
|
7413
|
+
},
|
|
7414
|
+
onUndo: (session, element) => {
|
|
7415
|
+
options.agent?.onUndo?.(session, element);
|
|
7416
|
+
restoreInputFromSession(session, element);
|
|
7152
7417
|
}
|
|
7153
7418
|
} : void 0;
|
|
7154
7419
|
const agentManager = createAgentManager(agentOptions);
|
|
@@ -7156,6 +7421,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7156
7421
|
setInputText(value);
|
|
7157
7422
|
};
|
|
7158
7423
|
const handleInputSubmit = () => {
|
|
7424
|
+
setLastCopiedElement(null);
|
|
7159
7425
|
const element = frozenElement() || targetElement();
|
|
7160
7426
|
const prompt = isInputMode() ? inputText().trim() : "";
|
|
7161
7427
|
if (!element) {
|
|
@@ -7184,7 +7450,11 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7184
7450
|
}
|
|
7185
7451
|
setIsInputMode(false);
|
|
7186
7452
|
setInputText("");
|
|
7187
|
-
|
|
7453
|
+
if (prompt) {
|
|
7454
|
+
elementInputCache.set(element, prompt);
|
|
7455
|
+
} else {
|
|
7456
|
+
elementInputCache.delete(element);
|
|
7457
|
+
}
|
|
7188
7458
|
const tagName = extractElementTagName(element);
|
|
7189
7459
|
void getNearestComponentName(element).then((componentName) => {
|
|
7190
7460
|
void executeCopyOperation(currentX, currentY, () => copySingleElementToClipboard(element, prompt || void 0), bounds, tagName, componentName ?? void 0, element).then(() => {
|
|
@@ -7193,14 +7463,27 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7193
7463
|
});
|
|
7194
7464
|
};
|
|
7195
7465
|
const handleInputCancel = () => {
|
|
7466
|
+
setLastCopiedElement(null);
|
|
7196
7467
|
if (!isInputMode()) return;
|
|
7197
|
-
const element = frozenElement() || targetElement();
|
|
7198
7468
|
const currentInput = inputText().trim();
|
|
7469
|
+
if (currentInput && !isPendingDismiss()) {
|
|
7470
|
+
setIsPendingDismiss(true);
|
|
7471
|
+
return;
|
|
7472
|
+
}
|
|
7473
|
+
const element = frozenElement() || targetElement();
|
|
7199
7474
|
if (element && currentInput) {
|
|
7200
7475
|
elementInputCache.set(element, currentInput);
|
|
7201
7476
|
}
|
|
7477
|
+
setIsPendingDismiss(false);
|
|
7478
|
+
deactivateRenderer();
|
|
7479
|
+
};
|
|
7480
|
+
const handleConfirmDismiss = () => {
|
|
7481
|
+
setIsPendingDismiss(false);
|
|
7202
7482
|
deactivateRenderer();
|
|
7203
7483
|
};
|
|
7484
|
+
const handleCancelDismiss = () => {
|
|
7485
|
+
setIsPendingDismiss(false);
|
|
7486
|
+
};
|
|
7204
7487
|
const handleToggleExpand = () => {
|
|
7205
7488
|
const element = frozenElement() || targetElement();
|
|
7206
7489
|
if (element) {
|
|
@@ -7312,19 +7595,22 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7312
7595
|
transform: stripTranslateFromTransform(firstElement)
|
|
7313
7596
|
};
|
|
7314
7597
|
const tagName = extractElementTagName(firstElement);
|
|
7598
|
+
const centerX = bounds.x + bounds.width / 2;
|
|
7599
|
+
const centerY = bounds.y + bounds.height / 2;
|
|
7315
7600
|
if (hasAgentProvider()) {
|
|
7316
|
-
const centerX = bounds.x + bounds.width / 2;
|
|
7317
|
-
const centerY = bounds.y + bounds.height / 2;
|
|
7318
7601
|
setMouseX(centerX);
|
|
7319
7602
|
setMouseY(centerY);
|
|
7320
7603
|
setFrozenElement(firstElement);
|
|
7321
7604
|
setIsToggleMode(true);
|
|
7322
7605
|
setIsToggleFrozen(true);
|
|
7323
7606
|
setIsInputExpanded(true);
|
|
7607
|
+
if (!isActivated()) {
|
|
7608
|
+
activateRenderer();
|
|
7609
|
+
}
|
|
7324
7610
|
setIsInputMode(true);
|
|
7325
7611
|
} else {
|
|
7326
7612
|
void getNearestComponentName(firstElement).then((componentName) => {
|
|
7327
|
-
void executeCopyOperation(
|
|
7613
|
+
void executeCopyOperation(centerX, centerY, () => copyMultipleElementsToClipboard(selectedElements), bounds, tagName, componentName ?? void 0, firstElement, true);
|
|
7328
7614
|
});
|
|
7329
7615
|
}
|
|
7330
7616
|
}
|
|
@@ -7364,7 +7650,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7364
7650
|
const originalKey = originalKeyDescriptor?.get ? originalKeyDescriptor.get.call(event) : event.key;
|
|
7365
7651
|
const isEnterKey = originalKey === "Enter" || isEnterCode(event.code);
|
|
7366
7652
|
const isOverlayActive = isActivated() || isHoldingKeys();
|
|
7367
|
-
const shouldBlockEnter = isEnterKey && isOverlayActive && !isInputMode();
|
|
7653
|
+
const shouldBlockEnter = isEnterKey && isOverlayActive && !isInputMode() && !isToggleMode();
|
|
7368
7654
|
if (shouldBlockEnter) {
|
|
7369
7655
|
claimedEvents.add(event);
|
|
7370
7656
|
event.preventDefault();
|
|
@@ -7389,13 +7675,14 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7389
7675
|
window.addEventListener("keydown", (event) => {
|
|
7390
7676
|
blockEnterIfNeeded(event);
|
|
7391
7677
|
const isEnterToActivateInput = isEnterCode(event.code) && isHoldingKeys() && !isInputMode();
|
|
7392
|
-
if (isInputMode() && isTargetKeyCombination(event, options)) {
|
|
7678
|
+
if (isInputMode() && isTargetKeyCombination(event, options) && !event.repeat) {
|
|
7393
7679
|
event.preventDefault();
|
|
7394
7680
|
event.stopPropagation();
|
|
7395
7681
|
setIsInputMode(false);
|
|
7396
7682
|
setInputText("");
|
|
7397
7683
|
setIsToggleFrozen(false);
|
|
7398
7684
|
setIsInputExpanded(false);
|
|
7685
|
+
setIsPendingDismiss(false);
|
|
7399
7686
|
return;
|
|
7400
7687
|
}
|
|
7401
7688
|
if (isInputMode() || isEventFromOverlay(event, "data-react-grab-ignore-events") && !isEnterToActivateInput) {
|
|
@@ -7414,6 +7701,33 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7414
7701
|
return;
|
|
7415
7702
|
}
|
|
7416
7703
|
}
|
|
7704
|
+
const copiedElement = lastCopiedElement();
|
|
7705
|
+
if (isEnterCode(event.code) && !isHoldingKeys() && !isInputMode() && !isActivated() && copiedElement && document.contains(copiedElement) && !labelInstances().some((instance) => instance.status === "copied" || instance.status === "fading")) {
|
|
7706
|
+
event.preventDefault();
|
|
7707
|
+
event.stopPropagation();
|
|
7708
|
+
event.stopImmediatePropagation();
|
|
7709
|
+
const bounds = createElementBounds(copiedElement);
|
|
7710
|
+
const selectionCenterX = bounds.x + bounds.width / 2;
|
|
7711
|
+
const centerY = bounds.y + bounds.height / 2;
|
|
7712
|
+
setMouseX(selectionCenterX);
|
|
7713
|
+
setMouseY(centerY);
|
|
7714
|
+
setCopyStartX(selectionCenterX);
|
|
7715
|
+
setCopyStartY(centerY);
|
|
7716
|
+
setCopyOffsetFromCenterX(0);
|
|
7717
|
+
setFrozenElement(copiedElement);
|
|
7718
|
+
setLastCopiedElement(null);
|
|
7719
|
+
setLabelInstances([]);
|
|
7720
|
+
const cachedInput = elementInputCache.get(copiedElement);
|
|
7721
|
+
if (cachedInput) {
|
|
7722
|
+
setInputText(cachedInput);
|
|
7723
|
+
}
|
|
7724
|
+
setIsToggleMode(true);
|
|
7725
|
+
setIsToggleFrozen(true);
|
|
7726
|
+
setIsInputExpanded(true);
|
|
7727
|
+
activateRenderer();
|
|
7728
|
+
setIsInputMode(true);
|
|
7729
|
+
return;
|
|
7730
|
+
}
|
|
7417
7731
|
if (isEnterCode(event.code) && isHoldingKeys() && !isInputMode()) {
|
|
7418
7732
|
event.preventDefault();
|
|
7419
7733
|
event.stopPropagation();
|
|
@@ -7499,9 +7813,10 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7499
7813
|
if (!isHoldingKeys()) {
|
|
7500
7814
|
setIsHoldingKeys(true);
|
|
7501
7815
|
}
|
|
7816
|
+
const activationDuration = isKeyboardEventTriggeredByInput(event) ? options.keyHoldDuration + INPUT_FOCUS_ACTIVATION_DELAY_MS : options.keyHoldDuration;
|
|
7502
7817
|
holdTimerId = window.setTimeout(() => {
|
|
7503
7818
|
activateRenderer();
|
|
7504
|
-
},
|
|
7819
|
+
}, activationDuration);
|
|
7505
7820
|
}, {
|
|
7506
7821
|
signal: eventListenerSignal,
|
|
7507
7822
|
capture: true
|
|
@@ -7636,7 +7951,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7636
7951
|
if (hadDrag) {
|
|
7637
7952
|
setDidJustDrag(false);
|
|
7638
7953
|
}
|
|
7639
|
-
if (isToggleMode() && !isCopying()) {
|
|
7954
|
+
if (isToggleMode() && !isCopying() && !isInputMode()) {
|
|
7640
7955
|
if (!isHoldingKeys()) {
|
|
7641
7956
|
deactivateRenderer();
|
|
7642
7957
|
} else {
|
|
@@ -7700,6 +8015,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7700
8015
|
selectionDebounceTimerId = null;
|
|
7701
8016
|
const currentSelection = window.getSelection();
|
|
7702
8017
|
if (!currentSelection || currentSelection.isCollapsed || currentSelection.rangeCount === 0) {
|
|
8018
|
+
clearNativeSelectionState();
|
|
7703
8019
|
return;
|
|
7704
8020
|
}
|
|
7705
8021
|
const range = currentSelection.getRangeAt(0);
|
|
@@ -7708,6 +8024,11 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7708
8024
|
clearNativeSelectionState();
|
|
7709
8025
|
return;
|
|
7710
8026
|
}
|
|
8027
|
+
const selectedText = currentSelection.toString().trim();
|
|
8028
|
+
if (!selectedText) {
|
|
8029
|
+
clearNativeSelectionState();
|
|
8030
|
+
return;
|
|
8031
|
+
}
|
|
7711
8032
|
const isBackward = (() => {
|
|
7712
8033
|
if (!currentSelection.anchorNode || !currentSelection.focusNode) return false;
|
|
7713
8034
|
const position = currentSelection.anchorNode.compareDocumentPosition(currentSelection.focusNode);
|
|
@@ -7757,14 +8078,14 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7757
8078
|
const selectionVisible = createMemo(() => {
|
|
7758
8079
|
if (!theme().selectionBox.enabled) return false;
|
|
7759
8080
|
if (didJustCopy()) return false;
|
|
7760
|
-
return isRendererActive() && !isDragging() && Boolean(
|
|
8081
|
+
return isRendererActive() && !isDragging() && Boolean(effectiveElement());
|
|
7761
8082
|
});
|
|
7762
8083
|
const selectionTagName = createMemo(() => {
|
|
7763
|
-
const element =
|
|
8084
|
+
const element = effectiveElement();
|
|
7764
8085
|
if (!element) return void 0;
|
|
7765
8086
|
return extractElementTagName(element) || void 0;
|
|
7766
8087
|
});
|
|
7767
|
-
const [selectionComponentName] = createResource(() =>
|
|
8088
|
+
const [selectionComponentName] = createResource(() => effectiveElement(), async (element) => {
|
|
7768
8089
|
if (!element) return void 0;
|
|
7769
8090
|
const name = await getNearestComponentName(element);
|
|
7770
8091
|
return name ?? void 0;
|
|
@@ -7772,7 +8093,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7772
8093
|
const selectionLabelVisible = createMemo(() => {
|
|
7773
8094
|
if (!theme().elementLabel.enabled) return false;
|
|
7774
8095
|
if (didJustCopy()) return false;
|
|
7775
|
-
return isRendererActive() && !isDragging() && Boolean(
|
|
8096
|
+
return isRendererActive() && !isDragging() && Boolean(effectiveElement());
|
|
7776
8097
|
});
|
|
7777
8098
|
const computedLabelInstances = createMemo(() => {
|
|
7778
8099
|
viewportVersion();
|
|
@@ -7786,13 +8107,25 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7786
8107
|
};
|
|
7787
8108
|
});
|
|
7788
8109
|
});
|
|
8110
|
+
const computedGrabbedBoxes = createMemo(() => {
|
|
8111
|
+
viewportVersion();
|
|
8112
|
+
return grabbedBoxes().map((box) => {
|
|
8113
|
+
if (!box.element || !document.body.contains(box.element)) {
|
|
8114
|
+
return box;
|
|
8115
|
+
}
|
|
8116
|
+
return {
|
|
8117
|
+
...box,
|
|
8118
|
+
bounds: createElementBounds(box.element)
|
|
8119
|
+
};
|
|
8120
|
+
});
|
|
8121
|
+
});
|
|
7789
8122
|
const dragVisible = createMemo(() => theme().dragBox.enabled && isRendererActive() && isDraggingBeyondThreshold());
|
|
7790
8123
|
const labelVariant = createMemo(() => isCopying() ? "processing" : "hover");
|
|
7791
8124
|
const labelVisible = createMemo(() => {
|
|
7792
8125
|
if (!theme().elementLabel.enabled) return false;
|
|
7793
8126
|
if (isInputMode()) return false;
|
|
7794
8127
|
if (isCopying()) return true;
|
|
7795
|
-
return isRendererActive() && !isDragging() && Boolean(
|
|
8128
|
+
return isRendererActive() && !isDragging() && Boolean(effectiveElement());
|
|
7796
8129
|
});
|
|
7797
8130
|
const crosshairVisible = createMemo(() => theme().crosshair.enabled && isRendererActive() && !isDragging() && !isTouchMode() && !isToggleFrozen());
|
|
7798
8131
|
const shouldShowGrabbedBoxes = createMemo(() => theme().grabbedBoxes.enabled);
|
|
@@ -7839,7 +8172,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7839
8172
|
return dragBounds();
|
|
7840
8173
|
},
|
|
7841
8174
|
get grabbedBoxes() {
|
|
7842
|
-
return memo(() => !!shouldShowGrabbedBoxes())() ?
|
|
8175
|
+
return memo(() => !!shouldShowGrabbedBoxes())() ? computedGrabbedBoxes() : [];
|
|
7843
8176
|
},
|
|
7844
8177
|
labelZIndex: Z_INDEX_LABEL,
|
|
7845
8178
|
get mouseX() {
|
|
@@ -7860,14 +8193,24 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7860
8193
|
get hasAgent() {
|
|
7861
8194
|
return hasAgentProvider();
|
|
7862
8195
|
},
|
|
8196
|
+
get isAgentConnected() {
|
|
8197
|
+
return isAgentConnected();
|
|
8198
|
+
},
|
|
7863
8199
|
get agentSessions() {
|
|
7864
8200
|
return agentManager.sessions();
|
|
7865
8201
|
},
|
|
7866
8202
|
onAbortSession: (sessionId) => agentManager.abortSession(sessionId),
|
|
8203
|
+
onDismissSession: (sessionId) => agentManager.dismissSession(sessionId),
|
|
8204
|
+
onUndoSession: (sessionId) => agentManager.undoSession(sessionId),
|
|
7867
8205
|
onInputChange: handleInputChange,
|
|
7868
8206
|
onInputSubmit: () => void handleInputSubmit(),
|
|
7869
8207
|
onInputCancel: handleInputCancel,
|
|
7870
8208
|
onToggleExpand: handleToggleExpand,
|
|
8209
|
+
get isPendingDismiss() {
|
|
8210
|
+
return isPendingDismiss();
|
|
8211
|
+
},
|
|
8212
|
+
onConfirmDismiss: handleConfirmDismiss,
|
|
8213
|
+
onCancelDismiss: handleCancelDismiss,
|
|
7871
8214
|
get nativeSelectionCursorVisible() {
|
|
7872
8215
|
return hasNativeSelection();
|
|
7873
8216
|
},
|
|
@@ -7958,25 +8301,20 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7958
8301
|
provider: newAgentOptions.provider ?? existingOptions?.provider,
|
|
7959
8302
|
onAbort: (session, element) => {
|
|
7960
8303
|
newAgentOptions?.onAbort?.(session, element);
|
|
7961
|
-
|
|
7962
|
-
|
|
7963
|
-
|
|
7964
|
-
|
|
7965
|
-
|
|
7966
|
-
setFrozenElement(element);
|
|
7967
|
-
setInputText(session.context.prompt);
|
|
7968
|
-
setIsInputExpanded(true);
|
|
7969
|
-
setIsInputMode(true);
|
|
7970
|
-
setIsToggleMode(true);
|
|
7971
|
-
setIsToggleFrozen(true);
|
|
7972
|
-
if (!isActivated()) {
|
|
7973
|
-
activateRenderer();
|
|
7974
|
-
}
|
|
7975
|
-
}
|
|
8304
|
+
restoreInputFromSession(session, element);
|
|
8305
|
+
},
|
|
8306
|
+
onUndo: (session, element) => {
|
|
8307
|
+
newAgentOptions?.onUndo?.(session, element);
|
|
8308
|
+
restoreInputFromSession(session, element);
|
|
7976
8309
|
}
|
|
7977
8310
|
};
|
|
7978
8311
|
agentManager.setOptions(mergedOptions);
|
|
7979
8312
|
setHasAgentProvider(Boolean(mergedOptions.provider));
|
|
8313
|
+
if (mergedOptions.provider?.checkConnection) {
|
|
8314
|
+
void mergedOptions.provider.checkConnection().then((connected) => {
|
|
8315
|
+
setIsAgentConnected(connected);
|
|
8316
|
+
});
|
|
8317
|
+
}
|
|
7980
8318
|
agentManager.tryResumeSessions();
|
|
7981
8319
|
}
|
|
7982
8320
|
};
|