react-grab 0.1.48-dev.a036acc → 0.1.48-dev.b18eff0

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.
Files changed (41) hide show
  1. package/README.md +1 -1
  2. package/dist/copy-content-BX7Cfd2n.js +10 -0
  3. package/dist/{copy-content-BPB8MmpL.d.cts → copy-content-CDFe4uJW.d.ts} +49 -32
  4. package/dist/copy-content-Cf6xuUb1.cjs +10 -0
  5. package/dist/{copy-content-C7lFyXsY.d.ts → copy-content-hpjB511j.d.cts} +49 -32
  6. package/dist/core/index.cjs +1 -1
  7. package/dist/core/index.d.cts +2 -2
  8. package/dist/core/index.d.ts +2 -2
  9. package/dist/core/index.js +1 -1
  10. package/dist/core-Bhesyij7.cjs +14 -0
  11. package/dist/core-gGgxPEEO.js +14 -0
  12. package/dist/errors-Bk7FIavr.d.cts +21 -0
  13. package/dist/errors-Cy89H8tr.d.ts +21 -0
  14. package/dist/execute-context-menu-action-5MMF1tSN.js +9 -0
  15. package/dist/execute-context-menu-action-Cuu4EgLI.cjs +9 -0
  16. package/dist/freeze-updates-CQNe1XqU.cjs +61 -0
  17. package/dist/freeze-updates-irDkdLIm.js +61 -0
  18. package/dist/{index-DMyJsiaz.d.cts → index-D23mfsUe.d.cts} +1 -1
  19. package/dist/{index-VkohC_Hw.d.ts → index-qFak7ECs.d.ts} +1 -1
  20. package/dist/index.cjs +1 -1
  21. package/dist/index.d.cts +4 -3
  22. package/dist/index.d.ts +4 -3
  23. package/dist/index.global.js +20 -19
  24. package/dist/index.js +1 -1
  25. package/dist/primitives.cjs +2 -2
  26. package/dist/primitives.d.cts +3 -2
  27. package/dist/primitives.d.ts +3 -2
  28. package/dist/primitives.js +2 -2
  29. package/dist/renderer-5gTtKWyI.cjs +9 -0
  30. package/dist/renderer-B4dG3kky.js +9 -0
  31. package/package.json +3 -3
  32. package/dist/copy-content-HtjEd7D4.js +0 -10
  33. package/dist/copy-content-i_57jcU1.cjs +0 -10
  34. package/dist/core-Cs4nKfRj.cjs +0 -14
  35. package/dist/core-DtDBp7P-.js +0 -14
  36. package/dist/create-pointer-move-prompt-handoff-D4JZbeiE.cjs +0 -9
  37. package/dist/create-pointer-move-prompt-handoff-DRZp7pT5.js +0 -9
  38. package/dist/freeze-updates-2TTw39qB.js +0 -51
  39. package/dist/freeze-updates-m7dy-Od3.cjs +0 -51
  40. package/dist/renderer-D07SadMO.cjs +0 -9
  41. package/dist/renderer-DhsYpO42.js +0 -9
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Copy any UI element for your agent.
7
7
 
8
- React Grab points agents to the actual source behind each selection. Agents are [**2× faster**](https://www.react-grab.com/benchmarks) and more accurate when using React Grab.
8
+ React Grab points agents to the actual source behind each selection. Agents are [**2× faster**](https://react-grab.com/benchmarks) and more accurate when using React Grab.
9
9
 
10
10
  [**Website →**](https://react-grab.com)
11
11
 
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @license MIT
3
+ *
4
+ * Copyright (c) 2025 Aiden Bai
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */
9
+ import{$t as e,C as t,D as n,Dt as r,E as i,G as a,Ht as o,K as s,L as c,M as l,O as u,S as d,T as f,U as p,Ut as m,Vt as h,W as ee,Wt as te,X as ne,Xt as re,Yt as ie,Z as g,Zt as ae,b as oe,k as se,nt as ce,q as _,w as le,x as v}from"./freeze-updates-irDkdLIm.js";const ue=e=>e===void 0||!Number.isFinite(e)?3:Math.max(0,Math.floor(e)),y=e=>{try{return decodeURIComponent(e)}catch{return e}},de=/(?:^|[/\\])node_modules[/\\]/,fe=/[/\\]\.vite[/\\]deps[^/\\]*[/\\]/,pe=/\.[mc]?[jt]sx?$/i,me=/^chunk-[A-Za-z0-9_-]+$/,he=/[/\\]/,ge=/^(.+?)@v?\d/,b=e=>e.split(he).filter(Boolean),_e=e=>{let[t,n]=b(e);return!t||t.startsWith(`.`)?null:t.startsWith(`@`)?n?`${t}/${n}`:null:t},ve=e=>{let t=b(e)[0];if(!t)return null;let n=t.replace(pe,``);if(me.test(n))return null;if(!n.startsWith(`@`))return n;let r=n.indexOf(`_`);return r===-1?null:`${n.slice(0,r)}/${n.slice(r+1)}`},ye=(e,t,n)=>{let r=e.split(t);return r.length>1?n(r[r.length-1]):null},x=e=>e?.match(ge)?.[1]??null,be=e=>{let t;try{t=new URL(e)}catch{return null}if(!t.hostname)return null;let n=b(t.pathname).map(y);for(let[e,t]of n.entries()){if(t.startsWith(`@`)){let r=x(n[e+1]);if(r)return`${t}/${r}`;continue}let r=x(t);if(r)return r}return null},xe=e=>ye(e,fe,ve)??ye(e,de,_e),Se=e=>{if(!e)return null;let n=t(e);return n&&(xe(y(n))||be(e))||null},Ce=/^@[A-Za-z0-9][A-Za-z0-9._-]*$/,we=/^[A-Za-z0-9][A-Za-z0-9._-]*$/,Te=new Set([`app`,`web`,`website`,`frontend`,`client`,`src`]),Ee=new Set([`app`,`src`,`components`,`pages`,`features`,`modules`,`hooks`,`lib`,`utils`,`ui`,`shared`,`common`,`core`,`styles`,`assets`]),De=e=>{let t=e;for(;t.startsWith(`../`)||t.startsWith(`./`);)t=t.slice(t.startsWith(`../`)?3:2);return t},Oe=e=>{let n=De(y(t(e)));if(n.startsWith(`/`))return null;let[r,i,...a]=b(n);return!r||!i||a.length===0||!Ce.test(r)||Ee.has(r.slice(1))||!we.test(i)||pe.test(i)||Te.has(i)?null:`${r}/${i}`},ke=e=>e?Se(e)??Oe(e):null,S=e=>{if(!e)return{origin:`unknown`,packageName:null};let t=ke(e);return t?{origin:`package`,packageName:t}:n(e)?{origin:`app`,packageName:null}:{origin:`unknown`,packageName:null}},Ae=new Set([`role`,`name`,`aria-label`,`rel`,`href`]),C=e=>{if(!/^[a-z-]{3,}$/i.test(e))return!1;let t=e.split(/-|[A-Z]/);for(let e of t)if(e.length<=2||/[^aeiou]{4,}/i.test(e))return!1;return!0},je=(e,t)=>{let n=Ae.has(e)||e.startsWith(`data-`)&&C(e),r=C(t)&&t.length<100||t.startsWith(`#`)&&C(t.slice(1));return n&&r},w=e=>{let t=e[0].name;for(let n=1;n<e.length;n++)t=`${e[n].name} > ${t}`;return t},T=e=>{let t=0;for(let n of e)t+=n.penalty;return t},E=(e,t)=>T(e)-T(t),D=(e,t)=>{let n=e.parentNode;if(!n)return;let r=n.firstChild;if(!r)return;let i=0;for(;r&&(r instanceof Element&&(t===void 0||r.tagName.toLowerCase()===t)&&i++,r!==e);)r=r.nextSibling;return i},Me=(e,t)=>e===`html`?`html`:`${e}:nth-child(${t})`,O=(e,t)=>e===`html`?`html`:`${e}:nth-of-type(${t})`,Ne=(e,t)=>{let n=[],r=e.getAttribute(`id`),i=e.tagName.toLowerCase();r&&C(r)&&n.push({name:`#${CSS.escape(r)}`,penalty:0});for(let t of e.classList)C(t)&&n.push({name:`.${CSS.escape(t)}`,penalty:1});for(let r of e.attributes)t(r.name,r.value)&&n.push({name:`[${CSS.escape(r.name)}="${CSS.escape(r.value)}"]`,penalty:2});n.push({name:i,penalty:5});let a=D(e,i);a!==void 0&&n.push({name:O(i,a),penalty:10});let o=D(e);return o!==void 0&&n.push({name:Me(i,o),penalty:50}),n},k=(e,t=r,n=[])=>{if(t<=0)return[];if(e.length===0)return[n];let i=[];for(let r of e[0]){let a=t-i.length;if(a<=0)break;i.push(...k(e.slice(1),a,[...n,r]))}return i},Pe=(e,t)=>{let n=t.getRootNode?.();return n instanceof ShadowRoot?n:e instanceof Document?e:e.ownerDocument},A=(e,t)=>t.querySelectorAll(w(e)).length===1,Fe=(e,t)=>{let n=e,r=[];for(;n&&n!==t;){let e=n.tagName.toLowerCase(),t=D(n,e);if(t===void 0)return;r.push({name:O(e,t),penalty:10}),n=n.parentElement}return A(r,t)?r:void 0},Ie=(e,t,n,r)=>{if(e.nodeType!==Node.ELEMENT_NODE)throw new c;if(e.tagName.toLowerCase()===`html`)return`html`;let i=Pe(t,e),a=Date.now(),o=[],s=e,l=0,u;for(;s&&s!==i&&!u;)if(o.push(Ne(s,r)),s=s.parentElement,l++,l>=3){let t=k(o);t.sort(E);for(let r of t){if(Date.now()-a>n){let t=Fe(e,i);if(!t)throw new ee(n);return w(t)}if(A(r,i)){u=r;break}}}if(!u&&l<3){let e=k(o);e.sort(E);for(let t of e){if(Date.now()-a>n)break;if(A(t,i)){u=t;break}}}if(!u)throw new p;return w(u)},j=e=>e.ownerDocument.body??e.ownerDocument.documentElement,M=new Set([`data-testid`,`data-test-id`,`data-test`,`data-cy`,`data-qa`,`aria-label`,`href`,`src`,`role`,`name`,`title`,`alt`]),N=e=>e.length>0&&e.length<=120,P=(e,t)=>{try{let n=e.ownerDocument.querySelectorAll(t);return n.length===1&&n[0]===e}catch{return!1}},Le=e=>{if(e instanceof HTMLElement&&e.id){let t=`#${CSS.escape(e.id)}`;if(P(e,t))return t}for(let t of M){let n=e.getAttribute(t);if(!n||!N(n))continue;let r=`[${t}=${JSON.stringify(n)}]`;if(P(e,r))return r;let i=`${e.tagName.toLowerCase()}${r}`;if(P(e,i))return i}return null},Re=e=>{let t=[],n=j(e),r=e;for(;r;){if(r instanceof HTMLElement&&r.id){t.unshift(`#${CSS.escape(r.id)}`);break}let e=r.parentElement;if(!e){t.unshift(r.tagName.toLowerCase());break}let i=Array.from(e.children).indexOf(r)+1;if(t.unshift(`${r.tagName.toLowerCase()}:nth-child(${i})`),e===n){t.unshift(n.tagName.toLowerCase());break}r=e}return t.join(` > `)},F=e=>{let t=Le(e);if(t)return t;try{let t=Ie(e,j(e),200,(e,t)=>je(e,t)||M.has(e)&&N(t));if(t)return t}catch{}return Re(e)},ze=[`[id]`,`[data-testid]`,`[data-test-id]`,`[data-test]`,`[data-cy]`,`[data-qa]`,`[aria-label]`,`a[href]`,`button`,`input`,`select`,`textarea`,`[role="button"]`,`[role="link"]`,`[role="checkbox"]`,`[role="radio"]`,`[role="switch"]`,`[role="tab"]`,`[role="menuitem"]`,`[role="option"]`,`[role="textbox"]`,`[role="combobox"]`,`[role="slider"]`,`[role="spinbutton"]`].join(`,`),Be=e=>{let{body:t,documentElement:n}=e.ownerDocument;if(e===t||e===n)return!0;if(!t)return!1;let r=t.getElementsByTagName(`*`).length;return r===0?!1:e.getElementsByTagName(`*`).length/r>=ce},I=e=>{let t=e.closest(ze);return!t||Be(t)?e:t},Ve=[/\/assets\/[^/?#]+-[a-z0-9_-]{6,}\.(?:c|m)?js(?:[?#]|$)/,/\/_next\/static\/.*\.(?:c|m)?js(?:[?#]|$)/,/\/static\/chunks\/.*\.(?:c|m)?js(?:[?#]|$)/],L=e=>{if(!e)return!1;let t=`/${d(e)}`.toLowerCase();return Ve.some(e=>e.test(t))},He=e=>{if(!e)return!1;let t=`/${d(e)}/`.toLowerCase();return ie.some(e=>t.includes(e))},R=e=>e.map(e=>`\n in ${e}`).join(``),z=[`about://React/`,`rsc://React/`],Ue=e=>z.some(t=>e.startsWith(t)),We=e=>{for(let t of z){if(!e.startsWith(t))continue;let n=e.indexOf(`/`,t.length);if(n===-1)continue;let r=n+1,i=e.lastIndexOf(`?`);return y(i>r?e.slice(r,i):e.slice(r))}return e},Ge=e=>{if(typeof e!=`object`||!e||!(`status`in e)||e.status!==`fulfilled`||!(`value`in e)||typeof e.value!=`object`||e.value===null||!(`originalStackFrame`in e.value))return null;let t=e.value.originalStackFrame;return typeof t!=`object`||!t||!(`file`in t)||typeof t.file!=`string`||!t.file||`ignored`in t&&t.ignored?null:{file:t.file,line1:`line1`in t&&typeof t.line1==`number`?t.line1:null,column1:`column1`in t&&typeof t.column1==`number`?t.column1:null}},Ke=async(e,t)=>{let n=[],r=[];for(let t=0;t<e.length;t++){let i=e[t];!i.isServer||!i.fileName||(n.push(t),r.push({file:We(i.fileName),methodName:i.functionName??`<unknown>`,line1:i.lineNumber??null,column1:i.columnNumber??null,arguments:[]}))}if(r.length===0)return e;let i=new AbortController,a=setTimeout(()=>i.abort(),ae),o=()=>i.abort();t?.aborted&&i.abort(),t?.addEventListener(`abort`,o);try{let t=await fetch(`${oe()}/__nextjs_original-stack-frames`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({frames:r,isServer:!0,isEdgeServer:!1,isAppDirectory:!0}),priority:`high`,signal:i.signal});if(!t.ok)return e;let a=await t.json();if(!Array.isArray(a))return e;let o=[...e];for(let t=0;t<n.length;t++){let r=Ge(a[t]);if(!r)continue;let i=n[t];o[i]={...e[i],fileName:r.file,lineNumber:r.line1??void 0,columnNumber:r.column1??void 0,isSymbolicated:!0}}return o}catch{return e}finally{clearTimeout(a),t?.removeEventListener(`abort`,o)}},qe=e=>{let t=new Map;return ne(e,e=>{if(!f(e))return!1;let n=se(e._debugStack.stack);if(!n)return!1;for(let e of u(n))!e.functionName||!e.fileName||Ue(e.fileName)&&(t.has(e.functionName)||t.set(e.functionName,{...e,isServer:!0}));return!1},!0),t},Je=(e,t)=>{if(!t.some(e=>e.isServer&&!e.fileName&&e.functionName))return t;let n=qe(e);return n.size===0?t:t.map(e=>{if(!e.isServer||e.fileName||!e.functionName)return e;let t=n.get(e.functionName);return t?{...e,fileName:t.fileName,lineNumber:t.lineNumber,columnNumber:t.columnNumber}:e})};let B=0;const V=[],Ye=()=>B<3?(B+=1,Promise.resolve()):new Promise(e=>{V.push(e)}),Xe=()=>{let e=V.shift();if(e){e();return}--B},H=async(e,t,n=re)=>{await Ye();let r=new AbortController,i,a=new Promise(e=>{i=setTimeout(()=>{r.abort(),e(t)},n)});try{let t=e(r.signal);return t.catch(()=>{}),await Promise.race([t,a])}finally{clearTimeout(i),Xe()}},U=(e,t)=>e.length>t?`${e.slice(0,t)}...`:e,Ze=e=>e.startsWith(`data-react-grab-`),Qe=e=>e.replace(/\s+/g,` `).trim(),$e=e=>{let t=[];for(let n of e.childNodes){if(n.nodeType!==Node.TEXT_NODE)continue;let e=Qe(n.textContent??``);e&&t.push(e)}return t.join(` `)},et=e=>e.getAttribute(`aria-hidden`)===`true`||e.hasAttribute(`hidden`)?!0:te.has(e.tagName.toLowerCase()),tt=(e,t,n)=>{if(e.nodeType===Node.TEXT_NODE){let r=Qe(e.textContent??``);return r?(t.push(r),n-r.length):n}if(!(e instanceof Element)||et(e))return n;for(let r of e.childNodes)if(n=tt(r,t,n),n<=0)break;return n},nt=(e,t)=>{if(et(e))return``;let n=$e(e);if(!h.has(t)||n&&e.children.length===0)return n;let r=[];return tt(e,r,100),r.join(` `)},rt=e=>U(e,15),it=e=>{let t=[];for(let n of m){let r=e.getAttribute(n);r&&t.push(`${n}="${r}"`)}return t.length>0?` ${t.join(` `)}`:``},at=e=>e===`class`||e===`className`||e===`style`,ot=e=>{let t=[],n=[],r=``;for(let{name:i,value:a}of e.attributes)if(!Ze(i)){if(at(i)){i!==`style`&&a&&(r=` class="${rt(a)}"`);continue}o.has(i)?t.push(a?` ${i}="${a}"`:` ${i}`):a&&n.push(` ${i}="${rt(a)}"`)}return t.join(``)+n.join(``)+r},st=e=>e.length===0?``:e.length<=2?e.map(e=>`<${l(e)} ...>`).join(`
10
+ `):`(${e.length} elements)`,ct=e=>{let t=l(e);if(!(e instanceof HTMLElement))return`<${t}${it(e)} />`;let n=ot(e),r=U(nt(e,t),100);return r?`<${t}${n}>${r}</${t}>`:`<${t}${n} />`},lt=e=>{let t=l(e),n=ot(e),r=nt(e,t),i=[],a=[],o=!1;for(let t of e.childNodes)t.nodeType!==Node.COMMENT_NODE&&(t.nodeType===Node.TEXT_NODE?t.textContent&&t.textContent.trim().length>0&&(o=!0):t instanceof Element&&(o?a.push(t):i.push(t)));let s=r.length>0&&h.has(t),c=``,u=st(i);u&&!s&&(c+=`\n ${u}`),r&&(c+=`\n ${U(r,100)}`);let d=st(a);return d&&!s&&(c+=`\n ${d}`),c.length>0?`<${t}${n}>${c}\n</${t}>`:`<${t}${n} />`},ut=new Set([`_`,`$`,`motion.`,`styled.`,`chakra.`,`ark.`,`Primitive.`,`Slot.`]),dt=new Set(`AppRouter.AppRouterAnnouncer.AppDevOverlay.AppDevOverlayErrorBoundary.ClientPageRoot.ClientSegmentRoot.DevRootHTTPAccessFallbackBoundary.ErrorBoundary.ErrorBoundaryHandler.GracefulDegradeBoundary.HTTPAccessErrorFallback.HTTPAccessFallbackBoundary.HTTPAccessFallbackErrorBoundary.HandleRedirect.Head.HistoryUpdater.HotReload.InnerLayoutRouter.InnerScrollAndFocusHandler.InnerScrollAndFocusHandlerOld.InnerScrollAndMaybeFocusHandler.InnerScrollHandlerNew.LoadableComponent.LoadingBoundary.LoadingBoundaryProvider.NotAllowedRootHTTPFallbackError.OfflineProvider.OuterLayoutRouter.RedirectBoundary.RedirectErrorBoundary.RenderFromTemplateContext.RenderValidationBoundaryAtThisLevel.ReplaySsrOnlyErrors.RootErrorBoundary.RootLevelDevOverlayElement.Router.ScrollAndFocusHandler.ScrollAndMaybeFocusHandler.SegmentBoundaryTrigger.SegmentBoundaryTriggerNode.SegmentStateProvider.SegmentTrieNode.SegmentViewNode.SegmentViewStateNode.ServerRoot.body.html`.split(`.`)),ft=new Set([`<anonymous>`,`<unknown>`,`Anonymous`,`Unknown`]),pt=new Set([`Suspense`,`Fragment`,`StrictMode`,`Profiler`,`SuspenseList`]),mt=new Set([`MotionDOMComponent`,`Slot`,`SlotClone`]),ht=[`.Consumer`,`.Context`,`.Provider`,`.Slot`,`.SlotClone`,`.Slottable`,`ProviderProvider`],gt=e=>{if(ft.has(e)||dt.has(e)||pt.has(e)||mt.has(e))return!0;for(let t of ht)if(e.endsWith(t))return!0;for(let t of ut)if(e.startsWith(t))return!0;return!1},_t=e=>!(!e||gt(e)),vt=e=>!(e.length<=1||gt(e)||e[0]!==e[0].toUpperCase()),W=e=>e&&vt(e)?e:null,G=e=>!He(e)&&!L(e),K=e=>{if(!_())return e;let t=e;for(;t;){if(g(t))return t;t=t.parentElement}return e},yt=e=>{let t=e.return?.child??null;for(;t;){if(t!==e&&t.key!==null)return!0;t=t.sibling}return!1},bt=e=>{let t=e,n=0;for(;t;){if(t.key!==null&&yt(t))return String(t.key);if(a(t)&&(n+=1,n===2))break;t=t.return}return null},xt=e=>_()?bt(g(K(e))):null,q=new WeakMap,J=new WeakMap,St=e=>t=>fetch(t,{signal:e,priority:`high`}),Ct=e=>H(async t=>{try{let n=g(e);if(!n)return null;let r=await i(n,!0,St(t));return v()?await Ke(Je(n,r),t):r}catch{return null}},null),Y=e=>{if(!_())return Promise.resolve([]);let t=K(e),n=q.get(t);if(n)return n;let r=Ct(t).then(e=>(e===null&&q.delete(t),e));return q.set(t,r),r},wt=async e=>{if(!_())return null;let t=await Y(e);if(!t)return null;for(let e of t){let t=W(e.functionName);if(t)return t}return null},Tt=e=>e.find(e=>!!W(e.functionName))??e[0]??null,Et=e=>!e||!a(e)?null:W(s(e.type)),Dt=e=>H(async t=>{let n=g(K(e));if(!n)return null;try{let e=await le(n,!0,St(t));return e?.fileName?{filePath:d(e.fileName),lineNumber:e.lineNumber??null,columnNumber:e.columnNumber??null,componentName:W(e.functionName)??Et(n._debugOwner),origin:S(e.fileName).origin}:null}catch{return null}},null),Ot=e=>{let t=K(e),n=J.get(t);if(n)return n;let r=Dt(t).then(e=>(e||J.delete(t),e));return J.set(t,r),r},X=(e,t)=>{let n=(e,t)=>{let n=Tt(e);return n?.fileName?{filePath:d(n.fileName),lineNumber:n.lineNumber??null,columnNumber:n.columnNumber??null,componentName:W(n.functionName),origin:t}:null},r=t.filter(e=>S(e.fileName).origin===`app`),i=r.filter(e=>G(e.fileName));return e?.origin===`app`&&G(e.filePath)?e:n(i,`app`)||(e?.origin===`app`&&!L(e.filePath)?e:n(r,`app`)||(e?.origin===`app`||e?.origin===`package`?e:n(t.filter(e=>S(e.fileName).origin===`package`),`package`)))},kt=async e=>{let t=await Ot(e);return t?.origin===`app`&&G(t.filePath)?t:X(t,await Y(e)??[])},At=e=>Z(K(e),1)[0]??null,Z=(e,t,n=()=>!0)=>{if(!_())return[];let r=g(e);if(!r)return[];let i=[];return ne(r,e=>{if(i.length>=t)return!0;if(a(e)){let t=s(e.type);t&&_t(t)&&n(t)&&i.push(t)}return!1},!0),i},jt=[`/src/app/`,`/src/pages/`,`/app/`,`/pages/`],Mt=(e,t)=>{let n=d(e);if(!t||!n.startsWith(`/`))return n;for(let e of jt){let t=n.indexOf(e);if(t!==-1)return`/./${n.slice(t+1)}`}return n},Nt=(e,t)=>{let n=Mt(e.filePath,t),r=t&&e.lineNumber?`${n}:${e.lineNumber}${e.columnNumber?`:${e.columnNumber}`:``}`:n;return e.componentName?`\n in ${e.componentName} (at ${r})`:`\n in ${r}`},Q={isAppSource:!1,consumesBudget:!1},Pt=(e,t,n,r)=>{let i=t.packageName,a=t.origin===`app`?e.fileName:null;if(e.isServer&&!a&&(n||!e.functionName)){let e=i?`${i} at Server`:`at Server`;return{text:`\n in ${n??`<anonymous>`} (${e})`,...Q}}return!a&&n?{text:i?`\n in ${n} (${i})`:`\n in ${n}`,...Q}:i?{text:`\n in ${i}`,...Q}:a?{text:Nt({componentName:n,filePath:a,lineNumber:e.lineNumber??null,columnNumber:e.columnNumber??null},r),isAppSource:!0,consumesBudget:G(a)}:null},Ft=(e,t={},n=null)=>{let r=ue(t.maxLines),i=Math.max(r,20),a=v(),o=[],s=new Set,c=null,l=!1,u=!1,d=!1,f=0,p=e=>{e&&s.add(e)};if(n){let e=n.origin===`app`&&G(n.filePath);u=e,e&&(f+=1),p(n.componentName),o.push(Nt(n,a))}for(let t of e){if(f>=r||o.length>=i)break;let e=S(t.fileName),s=W(t.functionName),m=e.packageName?`${e.packageName}:${s??``}:${t.isServer?`server`:`client`}`:null;if(m&&m===c)continue;if(!l&&s&&s===n?.componentName){l=!0;continue}let h=Pt(t,e,s,a);h!==null&&h.text!==o[o.length-1]&&(h.isAppSource&&h.consumesBudget&&(u=!0),h.consumesBudget&&(f+=1,d=!0),p(s),o.push(h.text),c=m)}return{text:o.join(``),shouldAppendSelectorHint:!u,hasBudgetedStackFrame:d,renderedComponentNames:s}},It=(e,t)=>{let n=X(e,t);return n?.origin===`app`?n:null},Lt=(e,t,n)=>{let r=Z(K(e),n,e=>vt(e)&&!t.renderedComponentNames.has(e));return r.length===0?t:{...t,text:`${t.text}${R(r)}`}},$=async(e,t={})=>{let n=await Ot(e),r=await Y(e)??[],i=It(n,r),a=ue(t.maxLines),o=Ft(r,t,i);if(o.text)return o.hasBudgetedStackFrame?o:Lt(e,o,a);let s=Z(K(e),a);return{text:R(s),shouldAppendSelectorHint:!0,hasBudgetedStackFrame:!1,renderedComponentNames:new Set(s)}},Rt=async(e,t={})=>(await $(e,t)).text,zt=(e,t)=>{let n=xt(e),r=n===null?``:`\n key: "${n}"`,i=t.shouldAppendSelectorHint?`\n selector: ${F(I(e))}`:``;return`${t.text}${r}${i}`},Bt=async(e,t={})=>{let n=await $(e,t);return`${ct(e)}${zt(e,n).replace(/\n\s+/g,` `)}`},Vt=async(e,t={})=>{let n=K(e);return`${lt(n)}${zt(n,await $(n,t))}`},Ht=e=>e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`),Ut=(t,n)=>{let r=n?.componentName??`div`,i={version:e,content:t,entries:n?.entries??[{tagName:n?.tagName,componentName:r,content:t,commentText:n?.commentText}],timestamp:Date.now()},a=e=>{e.preventDefault(),e.clipboardData?.setData(`text/plain`,t),e.clipboardData?.setData(`text/html`,`<meta charset='utf-8'><pre><code>${Ht(t)}</code></pre>`),e.clipboardData?.setData(`application/x-react-grab`,JSON.stringify(i))};document.addEventListener(`copy`,a);let o=document.createElement(`textarea`);o.value=t,o.style.position=`fixed`,o.style.left=`-9999px`,o.ariaHidden=`true`,document.body.appendChild(o),o.select();try{return typeof document.execCommand==`function`?document.execCommand(`copy`):!1}finally{document.removeEventListener(`copy`,a),o.remove()}};export{wt as a,kt as c,F as d,Bt as i,lt as l,Vt as n,Y as o,At as r,Rt as s,Ut as t,I as u};
@@ -6,6 +6,8 @@
6
6
  * This source code is licensed under the MIT license found in the
7
7
  * LICENSE file in the root directory of this source tree.
8
8
  */
9
+ import { ReactNode } from "react";
10
+
9
11
  //#region ../../node_modules/.pnpm/solid-js@1.9.12/node_modules/solid-js/types/reactive/observable.d.ts
10
12
  declare global {
11
13
  interface SymbolConstructor {
@@ -258,24 +260,24 @@ interface HierarchyState {
258
260
  activeIndex: number;
259
261
  }
260
262
  interface PluginHooks {
261
- onActivate?: () => void;
262
- onDeactivate?: () => void;
263
- onElementHover?: (element: Element) => void;
263
+ onActivate?: () => void | Promise<void>;
264
+ onDeactivate?: () => void | Promise<void>;
265
+ onElementHover?: (element: Element) => void | Promise<void>;
264
266
  onElementSelect?: (element: Element) => boolean | void | Promise<boolean>;
265
- onDragStart?: (startX: number, startY: number) => void;
266
- onDragEnd?: (elements: Element[], bounds: DragRect) => void;
267
+ onDragStart?: (startX: number, startY: number) => void | Promise<void>;
268
+ onDragEnd?: (elements: Element[], bounds: DragRect) => void | Promise<void>;
267
269
  onBeforeCopy?: (elements: Element[]) => void | Promise<void>;
268
270
  transformCopyContent?: (content: string, elements: Element[]) => string | Promise<string>;
269
- onAfterCopy?: (elements: Element[], success: boolean) => void;
270
- onCopySuccess?: (elements: Element[], content: string) => void;
271
- onCopyError?: (error: Error) => void;
272
- onStateChange?: (state: ReactGrabState) => void;
273
- onPromptModeChange?: (isPromptMode: boolean, context: PromptModeContext) => void;
274
- onSelectionBox?: (visible: boolean, bounds: OverlayBounds | null, element: Element | null) => void;
275
- onDragBox?: (visible: boolean, bounds: OverlayBounds | null) => void;
276
- onGrabbedBox?: (bounds: OverlayBounds, element: Element) => void;
277
- onElementLabel?: (visible: boolean, variant: ElementLabelVariant, context: ElementLabelContext) => void;
278
- onContextMenu?: (element: Element, position: Position) => void;
271
+ onAfterCopy?: (elements: Element[], success: boolean) => void | Promise<void>;
272
+ onCopySuccess?: (elements: Element[], content: string) => void | Promise<void>;
273
+ onCopyError?: (error: Error) => void | Promise<void>;
274
+ onStateChange?: (state: ReactGrabState) => void | Promise<void>;
275
+ onPromptModeChange?: (isPromptMode: boolean, context: PromptModeContext) => void | Promise<void>;
276
+ onSelectionBox?: (visible: boolean, bounds: OverlayBounds | null, element: Element | null) => void | Promise<void>;
277
+ onDragBox?: (visible: boolean, bounds: OverlayBounds | null) => void | Promise<void>;
278
+ onGrabbedBox?: (bounds: OverlayBounds, element: Element) => void | Promise<void>;
279
+ onElementLabel?: (visible: boolean, variant: ElementLabelVariant, context: ElementLabelContext) => void | Promise<void>;
280
+ onContextMenu?: (element: Element, position: Position) => void | Promise<void>;
279
281
  onOpenFile?: (filePath: string, lineNumber?: number) => boolean | void;
280
282
  transformHtmlContent?: (html: string, elements: Element[]) => string | Promise<string>;
281
283
  transformAgentContext?: (context: AgentContext, elements: Element[]) => AgentContext | Promise<AgentContext>;
@@ -287,7 +289,7 @@ interface PluginConfig {
287
289
  options?: SettableOptions;
288
290
  actions?: ContextMenuAction[];
289
291
  hooks?: PluginHooks;
290
- cleanup?: () => void;
292
+ cleanup?: () => undefined;
291
293
  }
292
294
  interface Plugin {
293
295
  name: string;
@@ -430,13 +432,19 @@ interface FrozenLabelEntry {
430
432
  bounds: OverlayBounds;
431
433
  mouseX?: number;
432
434
  }
435
+ interface FrozenLabelEntryAccessor {
436
+ read: () => FrozenLabelEntry | null;
437
+ }
438
+ interface SelectionLabelInstanceAccessor {
439
+ read: () => SelectionLabelInstance | null;
440
+ }
433
441
  interface ReactGrabRendererProps {
434
442
  selectionVisible?: boolean;
435
443
  selectionBounds?: OverlayBounds;
436
444
  selectionBoundsMultiple?: OverlayBounds[];
437
445
  selectionShouldSnap?: boolean;
438
446
  selectionElementsCount?: number;
439
- frozenLabelEntries?: FrozenLabelEntry[];
447
+ frozenLabelEntryAccessors?: FrozenLabelEntryAccessor[];
440
448
  pendingShiftPreviewEntry?: FrozenLabelEntry;
441
449
  selectionFilePath?: string;
442
450
  selectionLineNumber?: number;
@@ -447,6 +455,7 @@ interface ReactGrabRendererProps {
447
455
  hierarchyState?: HierarchyState;
448
456
  hierarchyMenuPosition?: DropdownAnchor | null;
449
457
  labelInstances?: SelectionLabelInstance[];
458
+ labelInstanceAccessors?: SelectionLabelInstanceAccessor[];
450
459
  dragVisible?: boolean;
451
460
  dragBounds?: OverlayBounds;
452
461
  grabbedBoxes?: Array<{
@@ -548,7 +557,7 @@ interface ReactGrabEntry {
548
557
  frames?: ReactGrabStackFrame[];
549
558
  }
550
559
  //#endregion
551
- //#region ../../node_modules/.pnpm/bippy@0.5.43_react@19.2.6/node_modules/bippy/dist/core.d.ts
560
+ //#region ../../node_modules/.pnpm/bippy@0.6.0_react@19.2.6/node_modules/bippy/dist/unsubscribe.d.ts
552
561
  type Flags = number;
553
562
  type Lanes = number;
554
563
  type TypeOfMode = number;
@@ -638,6 +647,14 @@ interface Effect {
638
647
  interface Family {
639
648
  current: unknown;
640
649
  }
650
+ /**
651
+ * React 19 flight metadata for a server component owner (ReactComponentInfo).
652
+ * Unlike client owners it has no `tag`; the owner chain continues via `owner`.
653
+ */
654
+ interface RendererRefreshUpdate {
655
+ staleFamilies: Set<Family>;
656
+ updatedFamilies: Set<Family>;
657
+ }
641
658
  /**
642
659
  * Represents a react-internal Fiber node.
643
660
  */
@@ -688,6 +705,7 @@ interface ReactDevToolsGlobalHook {
688
705
  onCommitFiberRoot: (rendererID: number, root: FiberRoot, priority: number | void) => void;
689
706
  onCommitFiberUnmount: (rendererID: number, fiber: Fiber) => void;
690
707
  onPostCommitFiberRoot: (rendererID: number, root: FiberRoot) => void;
708
+ onScheduleFiberRoot?: (rendererID: number, root: FiberRoot, children: ReactNode) => void;
691
709
  renderers: Map<number, ReactRenderer>;
692
710
  supportsFiber: boolean;
693
711
  supportsFlight: boolean;
@@ -706,10 +724,7 @@ interface ReactRenderer {
706
724
  overridePropsRenamePath?: (fiber: Fiber, oldPath: Array<number | string>, newPath: Array<number | string>) => void;
707
725
  reconcilerVersion: string;
708
726
  rendererPackageName: string;
709
- scheduleRefresh?: (root: FiberRoot, update: {
710
- staleFamilies: Set<Family>;
711
- updatedFamilies: Set<Family>;
712
- }) => void;
727
+ scheduleRefresh?: (root: FiberRoot, update: RendererRefreshUpdate) => void;
713
728
  scheduleRoot?: (root: FiberRoot, element: React.ReactNode) => void;
714
729
  scheduleUpdate?: (fiber: Fiber) => void;
715
730
  setErrorHandler?: (newShouldErrorImpl: (fiber: Fiber) => boolean) => void;
@@ -720,28 +735,30 @@ interface ReactRenderer {
720
735
  declare global {
721
736
  var __REACT_DEVTOOLS_GLOBAL_HOOK__: ReactDevToolsGlobalHook | undefined;
722
737
  } //#endregion
723
- //#region src/rdt-hook.d.ts
724
- /**
725
- * Returns `true` if bippy's instrumentation is active.
726
- */
727
- declare const isInstrumentationActive: () => boolean;
728
- /**
729
- * Returns the latest fiber (since it may be double-buffered).
730
- */
738
+ //#region src/unsubscribe.d.ts
731
739
  //#endregion
732
- //#region ../../node_modules/.pnpm/bippy@0.5.43_react@19.2.6/node_modules/bippy/dist/source.d.ts
740
+ //#region ../../node_modules/.pnpm/bippy@0.6.0_react@19.2.6/node_modules/bippy/dist/source.d.ts
733
741
  //#region src/source/parse-stack.d.ts
734
742
  interface StackFrame {
735
743
  args?: unknown[];
736
744
  columnNumber?: number;
737
745
  lineNumber?: number;
746
+ enclosingLineNumber?: number;
747
+ enclosingColumnNumber?: number;
738
748
  fileName?: string;
739
749
  functionName?: string;
740
750
  source?: string;
741
751
  isServer?: boolean;
742
752
  isSymbolicated?: boolean;
753
+ isIgnoreListed?: boolean;
743
754
  }
744
755
  //#endregion
756
+ //#region ../../node_modules/.pnpm/bippy@0.6.0_react@19.2.6/node_modules/bippy/dist/core.d.ts
757
+ /**
758
+ * Returns `true` if bippy's instrumentation is active.
759
+ */
760
+ declare const isInstrumentationActive: () => boolean;
761
+ //#endregion
745
762
  //#region src/utils/copy-content.d.ts
746
763
  interface CopyContentOptions {
747
764
  componentName?: string;
@@ -751,4 +768,4 @@ interface CopyContentOptions {
751
768
  }
752
769
  declare const copyContent: (content: string, options?: CopyContentOptions) => boolean;
753
770
  //#endregion
754
- export { SourceInfo as A, PromptModeContext as C, Rect as D, ReactGrabState as E, ToolbarState as M, SelectedElementPayload as O, Position as S, ReactGrabRendererProps as T, Options as _, ActionContext as a, PluginConfig as b, AgentContext as c, DeepPartial as d, DragRect as f, GrabbedBox as g, ElementSelectedEventDetail as h, isInstrumentationActive as i, Theme as j, SettableOptions as k, ContextMenuAction as l, ElementLabelVariant as m, StackFrame as n, ActionContextHooks as o, ElementLabelContext as p, Fiber as r, ActivationMode as s, copyContent as t, ContextMenuActionContext as u, OverlayBounds as v, ReactGrabAPI as w, PluginHooks as x, Plugin as y };
771
+ export { SourceInfo as A, PromptModeContext as C, Rect as D, ReactGrabState as E, ToolbarState as M, SelectedElementPayload as O, Position as S, ReactGrabRendererProps as T, Options as _, ActionContext as a, PluginConfig as b, AgentContext as c, DeepPartial as d, DragRect as f, GrabbedBox as g, ElementSelectedEventDetail as h, Fiber as i, Theme as j, SettableOptions as k, ContextMenuAction as l, ElementLabelVariant as m, isInstrumentationActive as n, ActionContextHooks as o, ElementLabelContext as p, StackFrame as r, ActivationMode as s, copyContent as t, ContextMenuActionContext as u, OverlayBounds as v, ReactGrabAPI as w, PluginHooks as x, Plugin as y };
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @license MIT
3
+ *
4
+ * Copyright (c) 2025 Aiden Bai
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */
9
+ const e=require(`./freeze-updates-CQNe1XqU.cjs`),t=e=>e===void 0||!Number.isFinite(e)?3:Math.max(0,Math.floor(e)),n=e=>{try{return decodeURIComponent(e)}catch{return e}},r=/(?:^|[/\\])node_modules[/\\]/,i=/[/\\]\.vite[/\\]deps[^/\\]*[/\\]/,a=/\.[mc]?[jt]sx?$/i,o=/^chunk-[A-Za-z0-9_-]+$/,s=/[/\\]/,c=/^(.+?)@v?\d/,l=e=>e.split(s).filter(Boolean),u=e=>{let[t,n]=l(e);return!t||t.startsWith(`.`)?null:t.startsWith(`@`)?n?`${t}/${n}`:null:t},d=e=>{let t=l(e)[0];if(!t)return null;let n=t.replace(a,``);if(o.test(n))return null;if(!n.startsWith(`@`))return n;let r=n.indexOf(`_`);return r===-1?null:`${n.slice(0,r)}/${n.slice(r+1)}`},f=(e,t,n)=>{let r=e.split(t);return r.length>1?n(r[r.length-1]):null},p=e=>e?.match(c)?.[1]??null,m=e=>{let t;try{t=new URL(e)}catch{return null}if(!t.hostname)return null;let r=l(t.pathname).map(n);for(let[e,t]of r.entries()){if(t.startsWith(`@`)){let n=p(r[e+1]);if(n)return`${t}/${n}`;continue}let n=p(t);if(n)return n}return null},h=e=>f(e,i,d)??f(e,r,u),ee=t=>{if(!t)return null;let r=e.C(t);return r&&(h(n(r))||m(t))||null},te=/^@[A-Za-z0-9][A-Za-z0-9._-]*$/,ne=/^[A-Za-z0-9][A-Za-z0-9._-]*$/,re=new Set([`app`,`web`,`website`,`frontend`,`client`,`src`]),ie=new Set([`app`,`src`,`components`,`pages`,`features`,`modules`,`hooks`,`lib`,`utils`,`ui`,`shared`,`common`,`core`,`styles`,`assets`]),ae=e=>{let t=e;for(;t.startsWith(`../`)||t.startsWith(`./`);)t=t.slice(t.startsWith(`../`)?3:2);return t},oe=t=>{let r=ae(n(e.C(t)));if(r.startsWith(`/`))return null;let[i,o,...s]=l(r);return!i||!o||s.length===0||!te.test(i)||ie.has(i.slice(1))||!ne.test(o)||a.test(o)||re.has(o)?null:`${i}/${o}`},se=e=>e?ee(e)??oe(e):null,g=t=>{if(!t)return{origin:`unknown`,packageName:null};let n=se(t);return n?{origin:`package`,packageName:n}:e.D(t)?{origin:`app`,packageName:null}:{origin:`unknown`,packageName:null}},ce=new Set([`role`,`name`,`aria-label`,`rel`,`href`]),_=e=>{if(!/^[a-z-]{3,}$/i.test(e))return!1;let t=e.split(/-|[A-Z]/);for(let e of t)if(e.length<=2||/[^aeiou]{4,}/i.test(e))return!1;return!0},le=(e,t)=>{let n=ce.has(e)||e.startsWith(`data-`)&&_(e),r=_(t)&&t.length<100||t.startsWith(`#`)&&_(t.slice(1));return n&&r},v=e=>{let t=e[0].name;for(let n=1;n<e.length;n++)t=`${e[n].name} > ${t}`;return t},ue=e=>{let t=0;for(let n of e)t+=n.penalty;return t},de=(e,t)=>ue(e)-ue(t),y=(e,t)=>{let n=e.parentNode;if(!n)return;let r=n.firstChild;if(!r)return;let i=0;for(;r&&(r instanceof Element&&(t===void 0||r.tagName.toLowerCase()===t)&&i++,r!==e);)r=r.nextSibling;return i},fe=(e,t)=>e===`html`?`html`:`${e}:nth-child(${t})`,pe=(e,t)=>e===`html`?`html`:`${e}:nth-of-type(${t})`,me=(e,t)=>{let n=[],r=e.getAttribute(`id`),i=e.tagName.toLowerCase();r&&_(r)&&n.push({name:`#${CSS.escape(r)}`,penalty:0});for(let t of e.classList)_(t)&&n.push({name:`.${CSS.escape(t)}`,penalty:1});for(let r of e.attributes)t(r.name,r.value)&&n.push({name:`[${CSS.escape(r.name)}="${CSS.escape(r.value)}"]`,penalty:2});n.push({name:i,penalty:5});let a=y(e,i);a!==void 0&&n.push({name:pe(i,a),penalty:10});let o=y(e);return o!==void 0&&n.push({name:fe(i,o),penalty:50}),n},b=(t,n=e.Dt,r=[])=>{if(n<=0)return[];if(t.length===0)return[r];let i=[];for(let e of t[0]){let a=n-i.length;if(a<=0)break;i.push(...b(t.slice(1),a,[...r,e]))}return i},he=(e,t)=>{let n=t.getRootNode?.();return n instanceof ShadowRoot?n:e instanceof Document?e:e.ownerDocument},x=(e,t)=>t.querySelectorAll(v(e)).length===1,ge=(e,t)=>{let n=e,r=[];for(;n&&n!==t;){let e=n.tagName.toLowerCase(),t=y(n,e);if(t===void 0)return;r.push({name:pe(e,t),penalty:10}),n=n.parentElement}return x(r,t)?r:void 0},_e=(t,n,r,i)=>{if(t.nodeType!==Node.ELEMENT_NODE)throw new e.L;if(t.tagName.toLowerCase()===`html`)return`html`;let a=he(n,t),o=Date.now(),s=[],c=t,l=0,u;for(;c&&c!==a&&!u;)if(s.push(me(c,i)),c=c.parentElement,l++,l>=3){let n=b(s);n.sort(de);for(let i of n){if(Date.now()-o>r){let n=ge(t,a);if(!n)throw new e.W(r);return v(n)}if(x(i,a)){u=i;break}}}if(!u&&l<3){let e=b(s);e.sort(de);for(let t of e){if(Date.now()-o>r)break;if(x(t,a)){u=t;break}}}if(!u)throw new e.U;return v(u)},S=e=>e.ownerDocument.body??e.ownerDocument.documentElement,C=new Set([`data-testid`,`data-test-id`,`data-test`,`data-cy`,`data-qa`,`aria-label`,`href`,`src`,`role`,`name`,`title`,`alt`]),w=e=>e.length>0&&e.length<=120,T=(e,t)=>{try{let n=e.ownerDocument.querySelectorAll(t);return n.length===1&&n[0]===e}catch{return!1}},ve=e=>{if(e instanceof HTMLElement&&e.id){let t=`#${CSS.escape(e.id)}`;if(T(e,t))return t}for(let t of C){let n=e.getAttribute(t);if(!n||!w(n))continue;let r=`[${t}=${JSON.stringify(n)}]`;if(T(e,r))return r;let i=`${e.tagName.toLowerCase()}${r}`;if(T(e,i))return i}return null},ye=e=>{let t=[],n=S(e),r=e;for(;r;){if(r instanceof HTMLElement&&r.id){t.unshift(`#${CSS.escape(r.id)}`);break}let e=r.parentElement;if(!e){t.unshift(r.tagName.toLowerCase());break}let i=Array.from(e.children).indexOf(r)+1;if(t.unshift(`${r.tagName.toLowerCase()}:nth-child(${i})`),e===n){t.unshift(n.tagName.toLowerCase());break}r=e}return t.join(` > `)},E=e=>{let t=ve(e);if(t)return t;try{let t=_e(e,S(e),200,(e,t)=>le(e,t)||C.has(e)&&w(t));if(t)return t}catch{}return ye(e)},be=[`[id]`,`[data-testid]`,`[data-test-id]`,`[data-test]`,`[data-cy]`,`[data-qa]`,`[aria-label]`,`a[href]`,`button`,`input`,`select`,`textarea`,`[role="button"]`,`[role="link"]`,`[role="checkbox"]`,`[role="radio"]`,`[role="switch"]`,`[role="tab"]`,`[role="menuitem"]`,`[role="option"]`,`[role="textbox"]`,`[role="combobox"]`,`[role="slider"]`,`[role="spinbutton"]`].join(`,`),xe=t=>{let{body:n,documentElement:r}=t.ownerDocument;if(t===n||t===r)return!0;if(!n)return!1;let i=n.getElementsByTagName(`*`).length;return i===0?!1:t.getElementsByTagName(`*`).length/i>=e.nt},D=e=>{let t=e.closest(be);return!t||xe(t)?e:t},Se=[/\/assets\/[^/?#]+-[a-z0-9_-]{6,}\.(?:c|m)?js(?:[?#]|$)/,/\/_next\/static\/.*\.(?:c|m)?js(?:[?#]|$)/,/\/static\/chunks\/.*\.(?:c|m)?js(?:[?#]|$)/],O=t=>{if(!t)return!1;let n=`/${e.S(t)}`.toLowerCase();return Se.some(e=>e.test(n))},Ce=t=>{if(!t)return!1;let n=`/${e.S(t)}/`.toLowerCase();return e.Yt.some(e=>n.includes(e))},k=e=>e.map(e=>`\n in ${e}`).join(``),A=[`about://React/`,`rsc://React/`],we=e=>A.some(t=>e.startsWith(t)),Te=e=>{for(let t of A){if(!e.startsWith(t))continue;let r=e.indexOf(`/`,t.length);if(r===-1)continue;let i=r+1,a=e.lastIndexOf(`?`);return n(a>i?e.slice(i,a):e.slice(i))}return e},Ee=e=>{if(typeof e!=`object`||!e||!(`status`in e)||e.status!==`fulfilled`||!(`value`in e)||typeof e.value!=`object`||e.value===null||!(`originalStackFrame`in e.value))return null;let t=e.value.originalStackFrame;return typeof t!=`object`||!t||!(`file`in t)||typeof t.file!=`string`||!t.file||`ignored`in t&&t.ignored?null:{file:t.file,line1:`line1`in t&&typeof t.line1==`number`?t.line1:null,column1:`column1`in t&&typeof t.column1==`number`?t.column1:null}},De=async(t,n)=>{let r=[],i=[];for(let e=0;e<t.length;e++){let n=t[e];!n.isServer||!n.fileName||(r.push(e),i.push({file:Te(n.fileName),methodName:n.functionName??`<unknown>`,line1:n.lineNumber??null,column1:n.columnNumber??null,arguments:[]}))}if(i.length===0)return t;let a=new AbortController,o=setTimeout(()=>a.abort(),e.Zt),s=()=>a.abort();n?.aborted&&a.abort(),n?.addEventListener(`abort`,s);try{let n=await fetch(`${e.b()}/__nextjs_original-stack-frames`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({frames:i,isServer:!0,isEdgeServer:!1,isAppDirectory:!0}),priority:`high`,signal:a.signal});if(!n.ok)return t;let o=await n.json();if(!Array.isArray(o))return t;let s=[...t];for(let e=0;e<r.length;e++){let n=Ee(o[e]);if(!n)continue;let i=r[e];s[i]={...t[i],fileName:n.file,lineNumber:n.line1??void 0,columnNumber:n.column1??void 0,isSymbolicated:!0}}return s}catch{return t}finally{clearTimeout(o),n?.removeEventListener(`abort`,s)}},Oe=t=>{let n=new Map;return e.X(t,t=>{if(!e.T(t))return!1;let r=e.k(t._debugStack.stack);if(!r)return!1;for(let t of e.O(r))!t.functionName||!t.fileName||we(t.fileName)&&(n.has(t.functionName)||n.set(t.functionName,{...t,isServer:!0}));return!1},!0),n},ke=(e,t)=>{if(!t.some(e=>e.isServer&&!e.fileName&&e.functionName))return t;let n=Oe(e);return n.size===0?t:t.map(e=>{if(!e.isServer||e.fileName||!e.functionName)return e;let t=n.get(e.functionName);return t?{...e,fileName:t.fileName,lineNumber:t.lineNumber,columnNumber:t.columnNumber}:e})};let j=0;const M=[],Ae=()=>j<3?(j+=1,Promise.resolve()):new Promise(e=>{M.push(e)}),je=()=>{let e=M.shift();if(e){e();return}--j},N=async(t,n,r=e.Xt)=>{await Ae();let i=new AbortController,a,o=new Promise(e=>{a=setTimeout(()=>{i.abort(),e(n)},r)});try{let e=t(i.signal);return e.catch(()=>{}),await Promise.race([e,o])}finally{clearTimeout(a),je()}},P=(e,t)=>e.length>t?`${e.slice(0,t)}...`:e,Me=e=>e.startsWith(`data-react-grab-`),F=e=>e.replace(/\s+/g,` `).trim(),Ne=e=>{let t=[];for(let n of e.childNodes){if(n.nodeType!==Node.TEXT_NODE)continue;let e=F(n.textContent??``);e&&t.push(e)}return t.join(` `)},I=t=>t.getAttribute(`aria-hidden`)===`true`||t.hasAttribute(`hidden`)?!0:e.Wt.has(t.tagName.toLowerCase()),L=(e,t,n)=>{if(e.nodeType===Node.TEXT_NODE){let r=F(e.textContent??``);return r?(t.push(r),n-r.length):n}if(!(e instanceof Element)||I(e))return n;for(let r of e.childNodes)if(n=L(r,t,n),n<=0)break;return n},R=(t,n)=>{if(I(t))return``;let r=Ne(t);if(!e.Vt.has(n)||r&&t.children.length===0)return r;let i=[];return L(t,i,100),i.join(` `)},z=e=>P(e,15),Pe=t=>{let n=[];for(let r of e.Ut){let e=t.getAttribute(r);e&&n.push(`${r}="${e}"`)}return n.length>0?` ${n.join(` `)}`:``},Fe=e=>e===`class`||e===`className`||e===`style`,B=t=>{let n=[],r=[],i=``;for(let{name:a,value:o}of t.attributes)if(!Me(a)){if(Fe(a)){a!==`style`&&o&&(i=` class="${z(o)}"`);continue}e.Ht.has(a)?n.push(o?` ${a}="${o}"`:` ${a}`):o&&r.push(` ${a}="${z(o)}"`)}return n.join(``)+r.join(``)+i},V=t=>t.length===0?``:t.length<=2?t.map(t=>`<${e.M(t)} ...>`).join(`
10
+ `):`(${t.length} elements)`,Ie=t=>{let n=e.M(t);if(!(t instanceof HTMLElement))return`<${n}${Pe(t)} />`;let r=B(t),i=P(R(t,n),100);return i?`<${n}${r}>${i}</${n}>`:`<${n}${r} />`},Le=t=>{let n=e.M(t),r=B(t),i=R(t,n),a=[],o=[],s=!1;for(let e of t.childNodes)e.nodeType!==Node.COMMENT_NODE&&(e.nodeType===Node.TEXT_NODE?e.textContent&&e.textContent.trim().length>0&&(s=!0):e instanceof Element&&(s?o.push(e):a.push(e)));let c=i.length>0&&e.Vt.has(n),l=``,u=V(a);u&&!c&&(l+=`\n ${u}`),i&&(l+=`\n ${P(i,100)}`);let d=V(o);return d&&!c&&(l+=`\n ${d}`),l.length>0?`<${n}${r}>${l}\n</${n}>`:`<${n}${r} />`},Re=new Set([`_`,`$`,`motion.`,`styled.`,`chakra.`,`ark.`,`Primitive.`,`Slot.`]),ze=new Set(`AppRouter.AppRouterAnnouncer.AppDevOverlay.AppDevOverlayErrorBoundary.ClientPageRoot.ClientSegmentRoot.DevRootHTTPAccessFallbackBoundary.ErrorBoundary.ErrorBoundaryHandler.GracefulDegradeBoundary.HTTPAccessErrorFallback.HTTPAccessFallbackBoundary.HTTPAccessFallbackErrorBoundary.HandleRedirect.Head.HistoryUpdater.HotReload.InnerLayoutRouter.InnerScrollAndFocusHandler.InnerScrollAndFocusHandlerOld.InnerScrollAndMaybeFocusHandler.InnerScrollHandlerNew.LoadableComponent.LoadingBoundary.LoadingBoundaryProvider.NotAllowedRootHTTPFallbackError.OfflineProvider.OuterLayoutRouter.RedirectBoundary.RedirectErrorBoundary.RenderFromTemplateContext.RenderValidationBoundaryAtThisLevel.ReplaySsrOnlyErrors.RootErrorBoundary.RootLevelDevOverlayElement.Router.ScrollAndFocusHandler.ScrollAndMaybeFocusHandler.SegmentBoundaryTrigger.SegmentBoundaryTriggerNode.SegmentStateProvider.SegmentTrieNode.SegmentViewNode.SegmentViewStateNode.ServerRoot.body.html`.split(`.`)),Be=new Set([`<anonymous>`,`<unknown>`,`Anonymous`,`Unknown`]),Ve=new Set([`Suspense`,`Fragment`,`StrictMode`,`Profiler`,`SuspenseList`]),He=new Set([`MotionDOMComponent`,`Slot`,`SlotClone`]),Ue=[`.Consumer`,`.Context`,`.Provider`,`.Slot`,`.SlotClone`,`.Slottable`,`ProviderProvider`],H=e=>{if(Be.has(e)||ze.has(e)||Ve.has(e)||He.has(e))return!0;for(let t of Ue)if(e.endsWith(t))return!0;for(let t of Re)if(e.startsWith(t))return!0;return!1},We=e=>!(!e||H(e)),Ge=e=>!(e.length<=1||H(e)||e[0]!==e[0].toUpperCase()),U=e=>e&&Ge(e)?e:null,W=e=>!Ce(e)&&!O(e),G=t=>{if(!e.q())return t;let n=t;for(;n;){if(e.Z(n))return n;n=n.parentElement}return t},Ke=e=>{let t=e.return?.child??null;for(;t;){if(t!==e&&t.key!==null)return!0;t=t.sibling}return!1},qe=t=>{let n=t,r=0;for(;n;){if(n.key!==null&&Ke(n))return String(n.key);if(e.G(n)&&(r+=1,r===2))break;n=n.return}return null},Je=t=>e.q()?qe(e.Z(G(t))):null,K=new WeakMap,q=new WeakMap,Ye=e=>t=>fetch(t,{signal:e,priority:`high`}),Xe=t=>N(async n=>{try{let r=e.Z(t);if(!r)return null;let i=await e.E(r,!0,Ye(n));return e.x()?await De(ke(r,i),n):i}catch{return null}},null),J=t=>{if(!e.q())return Promise.resolve([]);let n=G(t),r=K.get(n);if(r)return r;let i=Xe(n).then(e=>(e===null&&K.delete(n),e));return K.set(n,i),i},Ze=async t=>{if(!e.q())return null;let n=await J(t);if(!n)return null;for(let e of n){let t=U(e.functionName);if(t)return t}return null},Qe=e=>e.find(e=>!!U(e.functionName))??e[0]??null,$e=t=>!t||!e.G(t)?null:U(e.K(t.type)),et=t=>N(async n=>{let r=e.Z(G(t));if(!r)return null;try{let t=await e.w(r,!0,Ye(n));return t?.fileName?{filePath:e.S(t.fileName),lineNumber:t.lineNumber??null,columnNumber:t.columnNumber??null,componentName:U(t.functionName)??$e(r._debugOwner),origin:g(t.fileName).origin}:null}catch{return null}},null),tt=e=>{let t=G(e),n=q.get(t);if(n)return n;let r=et(t).then(e=>(e||q.delete(t),e));return q.set(t,r),r},Y=(t,n)=>{let r=(t,n)=>{let r=Qe(t);return r?.fileName?{filePath:e.S(r.fileName),lineNumber:r.lineNumber??null,columnNumber:r.columnNumber??null,componentName:U(r.functionName),origin:n}:null},i=n.filter(e=>g(e.fileName).origin===`app`),a=i.filter(e=>W(e.fileName));return t?.origin===`app`&&W(t.filePath)?t:r(a,`app`)||(t?.origin===`app`&&!O(t.filePath)?t:r(i,`app`)||(t?.origin===`app`||t?.origin===`package`?t:r(n.filter(e=>g(e.fileName).origin===`package`),`package`)))},nt=async e=>{let t=await tt(e);return t?.origin===`app`&&W(t.filePath)?t:Y(t,await J(e)??[])},rt=e=>X(G(e),1)[0]??null,X=(t,n,r=()=>!0)=>{if(!e.q())return[];let i=e.Z(t);if(!i)return[];let a=[];return e.X(i,t=>{if(a.length>=n)return!0;if(e.G(t)){let n=e.K(t.type);n&&We(n)&&r(n)&&a.push(n)}return!1},!0),a},it=[`/src/app/`,`/src/pages/`,`/app/`,`/pages/`],at=(t,n)=>{let r=e.S(t);if(!n||!r.startsWith(`/`))return r;for(let e of it){let t=r.indexOf(e);if(t!==-1)return`/./${r.slice(t+1)}`}return r},ot=(e,t)=>{let n=at(e.filePath,t),r=t&&e.lineNumber?`${n}:${e.lineNumber}${e.columnNumber?`:${e.columnNumber}`:``}`:n;return e.componentName?`\n in ${e.componentName} (at ${r})`:`\n in ${r}`},Z={isAppSource:!1,consumesBudget:!1},st=(e,t,n,r)=>{let i=t.packageName,a=t.origin===`app`?e.fileName:null;if(e.isServer&&!a&&(n||!e.functionName)){let e=i?`${i} at Server`:`at Server`;return{text:`\n in ${n??`<anonymous>`} (${e})`,...Z}}return!a&&n?{text:i?`\n in ${n} (${i})`:`\n in ${n}`,...Z}:i?{text:`\n in ${i}`,...Z}:a?{text:ot({componentName:n,filePath:a,lineNumber:e.lineNumber??null,columnNumber:e.columnNumber??null},r),isAppSource:!0,consumesBudget:W(a)}:null},ct=(n,r={},i=null)=>{let a=t(r.maxLines),o=Math.max(a,20),s=e.x(),c=[],l=new Set,u=null,d=!1,f=!1,p=!1,m=0,h=e=>{e&&l.add(e)};if(i){let e=i.origin===`app`&&W(i.filePath);f=e,e&&(m+=1),h(i.componentName),c.push(ot(i,s))}for(let e of n){if(m>=a||c.length>=o)break;let t=g(e.fileName),n=U(e.functionName),r=t.packageName?`${t.packageName}:${n??``}:${e.isServer?`server`:`client`}`:null;if(r&&r===u)continue;if(!d&&n&&n===i?.componentName){d=!0;continue}let l=st(e,t,n,s);l!==null&&l.text!==c[c.length-1]&&(l.isAppSource&&l.consumesBudget&&(f=!0),l.consumesBudget&&(m+=1,p=!0),h(n),c.push(l.text),u=r)}return{text:c.join(``),shouldAppendSelectorHint:!f,hasBudgetedStackFrame:p,renderedComponentNames:l}},lt=(e,t)=>{let n=Y(e,t);return n?.origin===`app`?n:null},ut=(e,t,n)=>{let r=X(G(e),n,e=>Ge(e)&&!t.renderedComponentNames.has(e));return r.length===0?t:{...t,text:`${t.text}${k(r)}`}},Q=async(e,n={})=>{let r=await tt(e),i=await J(e)??[],a=lt(r,i),o=t(n.maxLines),s=ct(i,n,a);if(s.text)return s.hasBudgetedStackFrame?s:ut(e,s,o);let c=X(G(e),o);return{text:k(c),shouldAppendSelectorHint:!0,hasBudgetedStackFrame:!1,renderedComponentNames:new Set(c)}},dt=async(e,t={})=>(await Q(e,t)).text,$=(e,t)=>{let n=Je(e),r=n===null?``:`\n key: "${n}"`,i=t.shouldAppendSelectorHint?`\n selector: ${E(D(e))}`:``;return`${t.text}${r}${i}`},ft=async(e,t={})=>{let n=await Q(e,t);return`${Ie(e)}${$(e,n).replace(/\n\s+/g,` `)}`},pt=async(e,t={})=>{let n=G(e);return`${Le(n)}${$(n,await Q(n,t))}`},mt=e=>e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`),ht=(t,n)=>{let r=n?.componentName??`div`,i={version:e.$t,content:t,entries:n?.entries??[{tagName:n?.tagName,componentName:r,content:t,commentText:n?.commentText}],timestamp:Date.now()},a=e=>{e.preventDefault(),e.clipboardData?.setData(`text/plain`,t),e.clipboardData?.setData(`text/html`,`<meta charset='utf-8'><pre><code>${mt(t)}</code></pre>`),e.clipboardData?.setData(`application/x-react-grab`,JSON.stringify(i))};document.addEventListener(`copy`,a);let o=document.createElement(`textarea`);o.value=t,o.style.position=`fixed`,o.style.left=`-9999px`,o.ariaHidden=`true`,document.body.appendChild(o),o.select();try{return typeof document.execCommand==`function`?document.execCommand(`copy`):!1}finally{document.removeEventListener(`copy`,a),o.remove()}};Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return Ze}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return nt}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return ft}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return Le}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return pt}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return rt}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return dt}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return ht}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return D}});
@@ -6,6 +6,8 @@
6
6
  * This source code is licensed under the MIT license found in the
7
7
  * LICENSE file in the root directory of this source tree.
8
8
  */
9
+ import { ReactNode } from "react";
10
+
9
11
  //#region ../../node_modules/.pnpm/solid-js@1.9.12/node_modules/solid-js/types/reactive/observable.d.ts
10
12
  declare global {
11
13
  interface SymbolConstructor {
@@ -258,24 +260,24 @@ interface HierarchyState {
258
260
  activeIndex: number;
259
261
  }
260
262
  interface PluginHooks {
261
- onActivate?: () => void;
262
- onDeactivate?: () => void;
263
- onElementHover?: (element: Element) => void;
263
+ onActivate?: () => void | Promise<void>;
264
+ onDeactivate?: () => void | Promise<void>;
265
+ onElementHover?: (element: Element) => void | Promise<void>;
264
266
  onElementSelect?: (element: Element) => boolean | void | Promise<boolean>;
265
- onDragStart?: (startX: number, startY: number) => void;
266
- onDragEnd?: (elements: Element[], bounds: DragRect) => void;
267
+ onDragStart?: (startX: number, startY: number) => void | Promise<void>;
268
+ onDragEnd?: (elements: Element[], bounds: DragRect) => void | Promise<void>;
267
269
  onBeforeCopy?: (elements: Element[]) => void | Promise<void>;
268
270
  transformCopyContent?: (content: string, elements: Element[]) => string | Promise<string>;
269
- onAfterCopy?: (elements: Element[], success: boolean) => void;
270
- onCopySuccess?: (elements: Element[], content: string) => void;
271
- onCopyError?: (error: Error) => void;
272
- onStateChange?: (state: ReactGrabState) => void;
273
- onPromptModeChange?: (isPromptMode: boolean, context: PromptModeContext) => void;
274
- onSelectionBox?: (visible: boolean, bounds: OverlayBounds | null, element: Element | null) => void;
275
- onDragBox?: (visible: boolean, bounds: OverlayBounds | null) => void;
276
- onGrabbedBox?: (bounds: OverlayBounds, element: Element) => void;
277
- onElementLabel?: (visible: boolean, variant: ElementLabelVariant, context: ElementLabelContext) => void;
278
- onContextMenu?: (element: Element, position: Position) => void;
271
+ onAfterCopy?: (elements: Element[], success: boolean) => void | Promise<void>;
272
+ onCopySuccess?: (elements: Element[], content: string) => void | Promise<void>;
273
+ onCopyError?: (error: Error) => void | Promise<void>;
274
+ onStateChange?: (state: ReactGrabState) => void | Promise<void>;
275
+ onPromptModeChange?: (isPromptMode: boolean, context: PromptModeContext) => void | Promise<void>;
276
+ onSelectionBox?: (visible: boolean, bounds: OverlayBounds | null, element: Element | null) => void | Promise<void>;
277
+ onDragBox?: (visible: boolean, bounds: OverlayBounds | null) => void | Promise<void>;
278
+ onGrabbedBox?: (bounds: OverlayBounds, element: Element) => void | Promise<void>;
279
+ onElementLabel?: (visible: boolean, variant: ElementLabelVariant, context: ElementLabelContext) => void | Promise<void>;
280
+ onContextMenu?: (element: Element, position: Position) => void | Promise<void>;
279
281
  onOpenFile?: (filePath: string, lineNumber?: number) => boolean | void;
280
282
  transformHtmlContent?: (html: string, elements: Element[]) => string | Promise<string>;
281
283
  transformAgentContext?: (context: AgentContext, elements: Element[]) => AgentContext | Promise<AgentContext>;
@@ -287,7 +289,7 @@ interface PluginConfig {
287
289
  options?: SettableOptions;
288
290
  actions?: ContextMenuAction[];
289
291
  hooks?: PluginHooks;
290
- cleanup?: () => void;
292
+ cleanup?: () => undefined;
291
293
  }
292
294
  interface Plugin {
293
295
  name: string;
@@ -430,13 +432,19 @@ interface FrozenLabelEntry {
430
432
  bounds: OverlayBounds;
431
433
  mouseX?: number;
432
434
  }
435
+ interface FrozenLabelEntryAccessor {
436
+ read: () => FrozenLabelEntry | null;
437
+ }
438
+ interface SelectionLabelInstanceAccessor {
439
+ read: () => SelectionLabelInstance | null;
440
+ }
433
441
  interface ReactGrabRendererProps {
434
442
  selectionVisible?: boolean;
435
443
  selectionBounds?: OverlayBounds;
436
444
  selectionBoundsMultiple?: OverlayBounds[];
437
445
  selectionShouldSnap?: boolean;
438
446
  selectionElementsCount?: number;
439
- frozenLabelEntries?: FrozenLabelEntry[];
447
+ frozenLabelEntryAccessors?: FrozenLabelEntryAccessor[];
440
448
  pendingShiftPreviewEntry?: FrozenLabelEntry;
441
449
  selectionFilePath?: string;
442
450
  selectionLineNumber?: number;
@@ -447,6 +455,7 @@ interface ReactGrabRendererProps {
447
455
  hierarchyState?: HierarchyState;
448
456
  hierarchyMenuPosition?: DropdownAnchor | null;
449
457
  labelInstances?: SelectionLabelInstance[];
458
+ labelInstanceAccessors?: SelectionLabelInstanceAccessor[];
450
459
  dragVisible?: boolean;
451
460
  dragBounds?: OverlayBounds;
452
461
  grabbedBoxes?: Array<{
@@ -548,7 +557,7 @@ interface ReactGrabEntry {
548
557
  frames?: ReactGrabStackFrame[];
549
558
  }
550
559
  //#endregion
551
- //#region ../../node_modules/.pnpm/bippy@0.5.43_react@19.2.6/node_modules/bippy/dist/core.d.ts
560
+ //#region ../../node_modules/.pnpm/bippy@0.6.0_react@19.2.6/node_modules/bippy/dist/unsubscribe.d.ts
552
561
  type Flags = number;
553
562
  type Lanes = number;
554
563
  type TypeOfMode = number;
@@ -638,6 +647,14 @@ interface Effect {
638
647
  interface Family {
639
648
  current: unknown;
640
649
  }
650
+ /**
651
+ * React 19 flight metadata for a server component owner (ReactComponentInfo).
652
+ * Unlike client owners it has no `tag`; the owner chain continues via `owner`.
653
+ */
654
+ interface RendererRefreshUpdate {
655
+ staleFamilies: Set<Family>;
656
+ updatedFamilies: Set<Family>;
657
+ }
641
658
  /**
642
659
  * Represents a react-internal Fiber node.
643
660
  */
@@ -688,6 +705,7 @@ interface ReactDevToolsGlobalHook {
688
705
  onCommitFiberRoot: (rendererID: number, root: FiberRoot, priority: number | void) => void;
689
706
  onCommitFiberUnmount: (rendererID: number, fiber: Fiber) => void;
690
707
  onPostCommitFiberRoot: (rendererID: number, root: FiberRoot) => void;
708
+ onScheduleFiberRoot?: (rendererID: number, root: FiberRoot, children: ReactNode) => void;
691
709
  renderers: Map<number, ReactRenderer>;
692
710
  supportsFiber: boolean;
693
711
  supportsFlight: boolean;
@@ -706,10 +724,7 @@ interface ReactRenderer {
706
724
  overridePropsRenamePath?: (fiber: Fiber, oldPath: Array<number | string>, newPath: Array<number | string>) => void;
707
725
  reconcilerVersion: string;
708
726
  rendererPackageName: string;
709
- scheduleRefresh?: (root: FiberRoot, update: {
710
- staleFamilies: Set<Family>;
711
- updatedFamilies: Set<Family>;
712
- }) => void;
727
+ scheduleRefresh?: (root: FiberRoot, update: RendererRefreshUpdate) => void;
713
728
  scheduleRoot?: (root: FiberRoot, element: React.ReactNode) => void;
714
729
  scheduleUpdate?: (fiber: Fiber) => void;
715
730
  setErrorHandler?: (newShouldErrorImpl: (fiber: Fiber) => boolean) => void;
@@ -720,28 +735,30 @@ interface ReactRenderer {
720
735
  declare global {
721
736
  var __REACT_DEVTOOLS_GLOBAL_HOOK__: ReactDevToolsGlobalHook | undefined;
722
737
  } //#endregion
723
- //#region src/rdt-hook.d.ts
724
- /**
725
- * Returns `true` if bippy's instrumentation is active.
726
- */
727
- declare const isInstrumentationActive: () => boolean;
728
- /**
729
- * Returns the latest fiber (since it may be double-buffered).
730
- */
738
+ //#region src/unsubscribe.d.ts
731
739
  //#endregion
732
- //#region ../../node_modules/.pnpm/bippy@0.5.43_react@19.2.6/node_modules/bippy/dist/source.d.ts
740
+ //#region ../../node_modules/.pnpm/bippy@0.6.0_react@19.2.6/node_modules/bippy/dist/source.d.ts
733
741
  //#region src/source/parse-stack.d.ts
734
742
  interface StackFrame {
735
743
  args?: unknown[];
736
744
  columnNumber?: number;
737
745
  lineNumber?: number;
746
+ enclosingLineNumber?: number;
747
+ enclosingColumnNumber?: number;
738
748
  fileName?: string;
739
749
  functionName?: string;
740
750
  source?: string;
741
751
  isServer?: boolean;
742
752
  isSymbolicated?: boolean;
753
+ isIgnoreListed?: boolean;
743
754
  }
744
755
  //#endregion
756
+ //#region ../../node_modules/.pnpm/bippy@0.6.0_react@19.2.6/node_modules/bippy/dist/core.d.ts
757
+ /**
758
+ * Returns `true` if bippy's instrumentation is active.
759
+ */
760
+ declare const isInstrumentationActive: () => boolean;
761
+ //#endregion
745
762
  //#region src/utils/copy-content.d.ts
746
763
  interface CopyContentOptions {
747
764
  componentName?: string;
@@ -751,4 +768,4 @@ interface CopyContentOptions {
751
768
  }
752
769
  declare const copyContent: (content: string, options?: CopyContentOptions) => boolean;
753
770
  //#endregion
754
- export { SourceInfo as A, PromptModeContext as C, Rect as D, ReactGrabState as E, ToolbarState as M, SelectedElementPayload as O, Position as S, ReactGrabRendererProps as T, Options as _, ActionContext as a, PluginConfig as b, AgentContext as c, DeepPartial as d, DragRect as f, GrabbedBox as g, ElementSelectedEventDetail as h, isInstrumentationActive as i, Theme as j, SettableOptions as k, ContextMenuAction as l, ElementLabelVariant as m, StackFrame as n, ActionContextHooks as o, ElementLabelContext as p, Fiber as r, ActivationMode as s, copyContent as t, ContextMenuActionContext as u, OverlayBounds as v, ReactGrabAPI as w, PluginHooks as x, Plugin as y };
771
+ export { SourceInfo as A, PromptModeContext as C, Rect as D, ReactGrabState as E, ToolbarState as M, SelectedElementPayload as O, Position as S, ReactGrabRendererProps as T, Options as _, ActionContext as a, PluginConfig as b, AgentContext as c, DeepPartial as d, DragRect as f, GrabbedBox as g, ElementSelectedEventDetail as h, Fiber as i, Theme as j, SettableOptions as k, ContextMenuAction as l, ElementLabelVariant as m, isInstrumentationActive as n, ActionContextHooks as o, ElementLabelContext as p, StackFrame as r, ActivationMode as s, copyContent as t, ContextMenuActionContext as u, OverlayBounds as v, ReactGrabAPI as w, PluginHooks as x, Plugin as y };
@@ -6,4 +6,4 @@
6
6
  * This source code is licensed under the MIT license found in the
7
7
  * LICENSE file in the root directory of this source tree.
8
8
  */
9
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../core-Cs4nKfRj.cjs`),t=require(`../freeze-updates-m7dy-Od3.cjs`),n=require(`../copy-content-i_57jcU1.cjs`);exports.DEFAULT_THEME=e.a,exports.copyContent=n.t,exports.formatElementInfo=n.n,exports.generateSnippet=e.n,exports.getStack=n.o,exports.init=e.t,exports.isInstrumentationActive=t.N;
9
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../core-Bhesyij7.cjs`),t=require(`../freeze-updates-CQNe1XqU.cjs`),n=require(`../copy-content-Cf6xuUb1.cjs`);exports.DEFAULT_THEME=e.a,exports.copyContent=n.t,exports.formatElementInfo=n.n,exports.generateSnippet=e.n,exports.getStack=n.o,exports.init=e.t,exports.isInstrumentationActive=t.q;
@@ -6,6 +6,6 @@
6
6
  * This source code is licensed under the MIT license found in the
7
7
  * LICENSE file in the root directory of this source tree.
8
8
  */
9
- import { A as SourceInfo, T as ReactGrabRendererProps, _ as Options, a as ActionContext, b as PluginConfig, c as AgentContext, i as isInstrumentationActive, k as SettableOptions, l as ContextMenuAction, t as copyContent, v as OverlayBounds, w as ReactGrabAPI, x as PluginHooks, y as Plugin } from "../copy-content-BPB8MmpL.cjs";
10
- import { a as getStack, i as formatElementInfo, n as generateSnippet, r as DEFAULT_THEME, t as init } from "../index-DMyJsiaz.cjs";
9
+ import { A as SourceInfo, T as ReactGrabRendererProps, _ as Options, a as ActionContext, b as PluginConfig, c as AgentContext, k as SettableOptions, l as ContextMenuAction, n as isInstrumentationActive, t as copyContent, v as OverlayBounds, w as ReactGrabAPI, x as PluginHooks, y as Plugin } from "../copy-content-hpjB511j.cjs";
10
+ import { a as getStack, i as formatElementInfo, n as generateSnippet, r as DEFAULT_THEME, t as init } from "../index-D23mfsUe.cjs";
11
11
  export { ActionContext, AgentContext, ContextMenuAction, DEFAULT_THEME, Options, OverlayBounds, Plugin, PluginConfig, PluginHooks, ReactGrabAPI, ReactGrabRendererProps, SettableOptions, SourceInfo, copyContent, formatElementInfo, generateSnippet, getStack, init, isInstrumentationActive };
@@ -6,6 +6,6 @@
6
6
  * This source code is licensed under the MIT license found in the
7
7
  * LICENSE file in the root directory of this source tree.
8
8
  */
9
- import { A as SourceInfo, T as ReactGrabRendererProps, _ as Options, a as ActionContext, b as PluginConfig, c as AgentContext, i as isInstrumentationActive, k as SettableOptions, l as ContextMenuAction, t as copyContent, v as OverlayBounds, w as ReactGrabAPI, x as PluginHooks, y as Plugin } from "../copy-content-C7lFyXsY.js";
10
- import { a as getStack, i as formatElementInfo, n as generateSnippet, r as DEFAULT_THEME, t as init } from "../index-VkohC_Hw.js";
9
+ import { A as SourceInfo, T as ReactGrabRendererProps, _ as Options, a as ActionContext, b as PluginConfig, c as AgentContext, k as SettableOptions, l as ContextMenuAction, n as isInstrumentationActive, t as copyContent, v as OverlayBounds, w as ReactGrabAPI, x as PluginHooks, y as Plugin } from "../copy-content-CDFe4uJW.js";
10
+ import { a as getStack, i as formatElementInfo, n as generateSnippet, r as DEFAULT_THEME, t as init } from "../index-qFak7ECs.js";
11
11
  export { ActionContext, AgentContext, ContextMenuAction, DEFAULT_THEME, Options, OverlayBounds, Plugin, PluginConfig, PluginHooks, ReactGrabAPI, ReactGrabRendererProps, SettableOptions, SourceInfo, copyContent, formatElementInfo, generateSnippet, getStack, init, isInstrumentationActive };
@@ -6,4 +6,4 @@
6
6
  * This source code is licensed under the MIT license found in the
7
7
  * LICENSE file in the root directory of this source tree.
8
8
  */
9
- import{a as e,n as t,t as n}from"../core-DtDBp7P-.js";import{N as r}from"../freeze-updates-2TTw39qB.js";import{n as i,o as a,t as o}from"../copy-content-HtjEd7D4.js";export{e as DEFAULT_THEME,o as copyContent,i as formatElementInfo,t as generateSnippet,a as getStack,n as init,r as isInstrumentationActive};
9
+ import{a as e,n as t,t as n}from"../core-gGgxPEEO.js";import{q as r}from"../freeze-updates-irDkdLIm.js";import{n as i,o as a,t as o}from"../copy-content-BX7Cfd2n.js";export{e as DEFAULT_THEME,o as copyContent,i as formatElementInfo,t as generateSnippet,a as getStack,n as init,r as isInstrumentationActive};