react-grab 0.1.48-dev.f29c951 → 0.1.48-dev.f8bac7f

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-C0U2O8u-.js +10 -0
  3. package/dist/{copy-content-B4Bw8Gfr.d.ts → copy-content-CDFe4uJW.d.ts} +49 -34
  4. package/dist/copy-content-D42Pfsuq.cjs +10 -0
  5. package/dist/{copy-content-Bd0tq7-s.d.cts → copy-content-hpjB511j.d.cts} +49 -34
  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-Bpg7XRic.js +14 -0
  11. package/dist/core-C15zpS13.cjs +14 -0
  12. package/dist/errors-0FkK6sRG.d.ts +17 -0
  13. package/dist/errors-CgCtKMy4.d.cts +17 -0
  14. package/dist/execute-context-menu-action-BFApEmF4.js +9 -0
  15. package/dist/execute-context-menu-action-CowPiG4S.cjs +9 -0
  16. package/dist/freeze-updates-BMIGQY9z.js +61 -0
  17. package/dist/freeze-updates-BZyl_zps.cjs +61 -0
  18. package/dist/{index-C8KX_pE5.d.cts → index-D23mfsUe.d.cts} +1 -1
  19. package/dist/{index-ColaCMun.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-Bftkh7-o.js +9 -0
  30. package/dist/renderer-Dek76jH-.cjs +9 -0
  31. package/package.json +3 -3
  32. package/dist/copy-content-Brp9zcvw.cjs +0 -10
  33. package/dist/copy-content-DyrCZQcZ.js +0 -10
  34. package/dist/core-Br3ybht6.js +0 -14
  35. package/dist/core-DZuBh2fo.cjs +0 -14
  36. package/dist/create-pointer-move-prompt-handoff-CT65-51W.js +0 -9
  37. package/dist/create-pointer-move-prompt-handoff-jPQocaH4.cjs +0 -9
  38. package/dist/freeze-updates-C_IhYDHN.cjs +0 -51
  39. package/dist/freeze-updates-mmaoTEZQ.js +0 -51
  40. package/dist/renderer-DZGgt-RV.js +0 -9
  41. package/dist/renderer-OHO3IThO.cjs +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://benchmark.react-grab.com/) 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{Bt as e,C as t,D as n,E as r,G as i,H as a,Ht as o,J as s,Jt as c,L as l,M as u,O as d,S as f,T as p,Tt as m,U as h,V as ee,Vt as te,W as ne,Y as g,Yt as re,Zt as ie,b as ae,et as oe,k as se,qt as ce,w as le,x as ue,zt as de}from"./freeze-updates-BMIGQY9z.js";const fe=e=>e===void 0||!Number.isFinite(e)?3:Math.max(0,Math.floor(e)),_=e=>{try{return decodeURIComponent(e)}catch{return e}},pe=/(?:^|[/\\])node_modules[/\\]/,me=/[/\\]\.vite[/\\]deps[^/\\]*[/\\]/,he=/\.[mc]?[jt]sx?$/i,ge=/^chunk-[A-Za-z0-9_-]+$/,_e=/[/\\]/,ve=/^(.+?)@v?\d/,v=e=>e.split(_e).filter(Boolean),ye=e=>{let[t,n]=v(e);return!t||t.startsWith(`.`)?null:t.startsWith(`@`)?n?`${t}/${n}`:null:t},be=e=>{let t=v(e)[0];if(!t)return null;let n=t.replace(he,``);if(ge.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)}`},y=(e,t,n)=>{let r=e.split(t);return r.length>1?n(r[r.length-1]):null},b=e=>e?.match(ve)?.[1]??null,xe=e=>{let t;try{t=new URL(e)}catch{return null}if(!t.hostname)return null;let n=v(t.pathname).map(_);for(let[e,t]of n.entries()){if(t.startsWith(`@`)){let r=b(n[e+1]);if(r)return`${t}/${r}`;continue}let r=b(t);if(r)return r}return null},Se=e=>y(e,me,be)??y(e,pe,ye),Ce=e=>{if(!e)return null;let n=t(e);return n&&(Se(_(n))||xe(e))||null},we=/^@[A-Za-z0-9][A-Za-z0-9._-]*$/,Te=/^[A-Za-z0-9][A-Za-z0-9._-]*$/,Ee=new Set([`app`,`web`,`website`,`frontend`,`client`,`src`]),De=new Set([`app`,`src`,`components`,`pages`,`features`,`modules`,`hooks`,`lib`,`utils`,`ui`,`shared`,`common`,`core`,`styles`,`assets`]),Oe=e=>{let t=e;for(;t.startsWith(`../`)||t.startsWith(`./`);)t=t.slice(t.startsWith(`../`)?3:2);return t},ke=e=>{let n=Oe(_(t(e)));if(n.startsWith(`/`))return null;let[r,i,...a]=v(n);return!r||!i||a.length===0||!we.test(r)||De.has(r.slice(1))||!Te.test(i)||he.test(i)||Ee.has(i)?null:`${r}/${i}`},Ae=e=>e?Ce(e)??ke(e):null,x=e=>{if(!e)return{origin:`unknown`,packageName:null};let t=Ae(e);return t?{origin:`package`,packageName:t}:n(e)?{origin:`app`,packageName:null}:{origin:`unknown`,packageName:null}},je=new Set([`role`,`name`,`aria-label`,`rel`,`href`]),S=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},Me=(e,t)=>{let n=je.has(e)||e.startsWith(`data-`)&&S(e),r=S(t)&&t.length<100||t.startsWith(`#`)&&S(t.slice(1));return n&&r},C=e=>{let t=e[0].name;for(let n=1;n<e.length;n++)t=`${e[n].name} > ${t}`;return t},w=e=>{let t=0;for(let n of e)t+=n.penalty;return t},T=(e,t)=>w(e)-w(t),E=(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},Ne=(e,t)=>e===`html`?`html`:`${e}:nth-child(${t})`,D=(e,t)=>e===`html`?`html`:`${e}:nth-of-type(${t})`,Pe=(e,t)=>{let n=[],r=e.getAttribute(`id`),i=e.tagName.toLowerCase();r&&S(r)&&n.push({name:`#${CSS.escape(r)}`,penalty:0});for(let t of e.classList)S(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=E(e,i);a!==void 0&&n.push({name:D(i,a),penalty:10});let o=E(e);return o!==void 0&&n.push({name:Ne(i,o),penalty:50}),n},O=(e,t=m,n=[])=>{if(t<=0)return[];if(e.length===0)return[n];let r=[];for(let i of e[0]){let a=t-r.length;if(a<=0)break;r.push(...O(e.slice(1),a,[...n,i]))}return r},Fe=(e,t)=>{let n=t.getRootNode?.();return n instanceof ShadowRoot?n:e instanceof Document?e:e.ownerDocument},k=(e,t)=>t.querySelectorAll(C(e)).length===1,Ie=(e,t)=>{let n=e,r=[];for(;n&&n!==t;){let e=n.tagName.toLowerCase(),t=E(n,e);if(t===void 0)return;r.push({name:D(e,t),penalty:10}),n=n.parentElement}return k(r,t)?r:void 0},Le=(e,t,n,r)=>{if(e.nodeType!==Node.ELEMENT_NODE)throw new l;if(e.tagName.toLowerCase()===`html`)return`html`;let i=Fe(t,e),o=Date.now(),s=[],c=e,u=0,d;for(;c&&c!==i&&!d;)if(s.push(Pe(c,r)),c=c.parentElement,u++,u>=3){let t=O(s);t.sort(T);for(let r of t){if(Date.now()-o>n){let t=Ie(e,i);if(!t)throw new a(n);return C(t)}if(k(r,i)){d=r;break}}}if(!d&&u<3){let e=O(s);e.sort(T);for(let t of e){if(Date.now()-o>n)break;if(k(t,i)){d=t;break}}}if(!d)throw new ee;return C(d)},A=e=>e.ownerDocument.body??e.ownerDocument.documentElement,j=new Set([`data-testid`,`data-test-id`,`data-test`,`data-cy`,`data-qa`,`aria-label`,`href`,`src`,`role`,`name`,`title`,`alt`]),M=e=>e.length>0&&e.length<=120,N=(e,t)=>{try{let n=e.ownerDocument.querySelectorAll(t);return n.length===1&&n[0]===e}catch{return!1}},Re=e=>{if(e instanceof HTMLElement&&e.id){let t=`#${CSS.escape(e.id)}`;if(N(e,t))return t}for(let t of j){let n=e.getAttribute(t);if(!n||!M(n))continue;let r=`[${t}=${JSON.stringify(n)}]`;if(N(e,r))return r;let i=`${e.tagName.toLowerCase()}${r}`;if(N(e,i))return i}return null},ze=e=>{let t=[],n=A(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(` > `)},P=e=>{let t=Re(e);if(t)return t;try{let t=Le(e,A(e),200,(e,t)=>Me(e,t)||j.has(e)&&M(t));if(t)return t}catch{}return ze(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(`,`),Ve=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>=oe},F=e=>{let t=e.closest(Be);return!t||Ve(t)?e:t},He=[/\/assets\/[^/?#]+-[a-z0-9_-]{6,}\.(?:c|m)?js(?:[?#]|$)/,/\/_next\/static\/.*\.(?:c|m)?js(?:[?#]|$)/,/\/static\/chunks\/.*\.(?:c|m)?js(?:[?#]|$)/],I=e=>{if(!e)return!1;let t=`/${f(e)}`.toLowerCase();return He.some(e=>e.test(t))},Ue=e=>{if(!e)return!1;let t=`/${f(e)}/`.toLowerCase();return ce.some(e=>t.includes(e))},L=e=>e.map(e=>`\n in ${e}`).join(``),R=[`about://React/`,`rsc://React/`],We=e=>R.some(t=>e.startsWith(t)),Ge=e=>{for(let t of R){if(!e.startsWith(t))continue;let n=e.indexOf(`/`,t.length);if(n===-1)continue;let r=n+1,i=e.lastIndexOf(`?`);return _(i>r?e.slice(r,i):e.slice(r))}return e},Ke=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}},qe=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:Ge(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(),re),o=()=>i.abort();t?.aborted&&i.abort(),t?.addEventListener(`abort`,o);try{let t=await fetch(`${ae()}/__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=Ke(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)}},Je=e=>{let t=new Map;return s(e,e=>{if(!p(e))return!1;let n=se(e._debugStack.stack);if(!n)return!1;for(let e of d(n))!e.functionName||!e.fileName||We(e.fileName)&&(t.has(e.functionName)||t.set(e.functionName,{...e,isServer:!0}));return!1},!0),t},Ye=(e,t)=>{if(!t.some(e=>e.isServer&&!e.fileName&&e.functionName))return t;let n=Je(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 z=0;const B=[],Xe=()=>z<3?(z+=1,Promise.resolve()):new Promise(e=>{B.push(e)}),Ze=()=>{let e=B.shift();if(e){e();return}--z},V=async(e,t,n=c)=>{await Xe();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),Ze()}},H=(e,t)=>e.length>t?`${e.slice(0,t)}...`:e,Qe=e=>e.startsWith(`data-react-grab-`),$e=e=>e.replace(/\s+/g,` `).trim(),et=e=>{let t=[];for(let n of e.childNodes){if(n.nodeType!==Node.TEXT_NODE)continue;let e=$e(n.textContent??``);e&&t.push(e)}return t.join(` `)},tt=e=>e.getAttribute(`aria-hidden`)===`true`||e.hasAttribute(`hidden`)?!0:o.has(e.tagName.toLowerCase()),nt=(e,t,n)=>{if(e.nodeType===Node.TEXT_NODE){let r=$e(e.textContent??``);return r?(t.push(r),n-r.length):n}if(!(e instanceof Element)||tt(e))return n;for(let r of e.childNodes)if(n=nt(r,t,n),n<=0)break;return n},rt=(e,t)=>{if(tt(e))return``;let n=et(e);if(!de.has(t)||n&&e.children.length===0)return n;let r=[];return nt(e,r,100),r.join(` `)},it=e=>H(e,15),at=e=>{let t=[];for(let n of te){let r=e.getAttribute(n);r&&t.push(`${n}="${r}"`)}return t.length>0?` ${t.join(` `)}`:``},ot=e=>e===`class`||e===`className`||e===`style`,st=t=>{let n=[],r=[],i=``;for(let{name:a,value:o}of t.attributes)if(!Qe(a)){if(ot(a)){a!==`style`&&o&&(i=` class="${it(o)}"`);continue}e.has(a)?n.push(o?` ${a}="${o}"`:` ${a}`):o&&r.push(` ${a}="${it(o)}"`)}return n.join(``)+r.join(``)+i},ct=e=>e.length===0?``:e.length<=2?e.map(e=>`<${u(e)} ...>`).join(`
10
+ `):`(${e.length} elements)`,lt=e=>{let t=u(e);if(!(e instanceof HTMLElement))return`<${t}${at(e)} />`;let n=st(e),r=H(rt(e,t),100);return r?`<${t}${n}>${r}</${t}>`:`<${t}${n} />`},ut=e=>{let t=u(e),n=st(e),r=rt(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&&de.has(t),c=``,l=ct(i);l&&!s&&(c+=`\n ${l}`),r&&(c+=`\n ${H(r,100)}`);let d=ct(a);return d&&!s&&(c+=`\n ${d}`),c.length>0?`<${t}${n}>${c}\n</${t}>`:`<${t}${n} />`},dt=new Set([`_`,`$`,`motion.`,`styled.`,`chakra.`,`ark.`,`Primitive.`,`Slot.`]),ft=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(`.`)),pt=new Set([`<anonymous>`,`<unknown>`,`Anonymous`,`Unknown`]),mt=new Set([`Suspense`,`Fragment`,`StrictMode`,`Profiler`,`SuspenseList`]),ht=new Set([`MotionDOMComponent`,`Slot`,`SlotClone`]),gt=[`.Consumer`,`.Context`,`.Provider`,`.Slot`,`.SlotClone`,`.Slottable`,`ProviderProvider`],_t=e=>{if(pt.has(e)||ft.has(e)||mt.has(e)||ht.has(e))return!0;for(let t of gt)if(e.endsWith(t))return!0;for(let t of dt)if(e.startsWith(t))return!0;return!1},vt=e=>!(!e||_t(e)),yt=e=>!(e.length<=1||_t(e)||e[0]!==e[0].toUpperCase()),U=e=>e&&yt(e)?e:null,W=e=>!Ue(e)&&!I(e),G=e=>{if(!i())return e;let t=e;for(;t;){if(g(t))return t;t=t.parentElement}return e},bt=e=>{let t=e.return?.child??null;for(;t;){if(t!==e&&t.key!==null)return!0;t=t.sibling}return!1},xt=e=>{let t=e,n=0;for(;t;){if(t.key!==null&&bt(t))return String(t.key);if(h(t)&&(n+=1,n===2))break;t=t.return}return null},St=e=>i()?xt(g(G(e))):null,K=new WeakMap,q=new WeakMap,Ct=e=>t=>fetch(t,{signal:e,priority:`high`}),wt=e=>V(async t=>{try{let n=g(e);if(!n)return null;let i=await r(n,!0,Ct(t));return ue()?await qe(Ye(n,i),t):i}catch{return null}},null),J=e=>{if(!i())return Promise.resolve([]);let t=G(e),n=K.get(t);if(n)return n;let r=wt(t).then(e=>(e===null&&K.delete(t),e));return K.set(t,r),r},Tt=async e=>{if(!i())return null;let t=await J(e);if(!t)return null;for(let e of t){let t=U(e.functionName);if(t)return t}return null},Et=e=>e.find(e=>!!U(e.functionName))??e[0]??null,Dt=e=>!e||!h(e)?null:U(ne(e.type)),Ot=e=>V(async t=>{let n=g(G(e));if(!n)return null;try{let e=await le(n,!0,Ct(t));return e?.fileName?{filePath:f(e.fileName),lineNumber:e.lineNumber??null,columnNumber:e.columnNumber??null,componentName:U(e.functionName)??Dt(n._debugOwner),origin:x(e.fileName).origin}:null}catch{return null}},null),kt=e=>{let t=G(e),n=q.get(t);if(n)return n;let r=Ot(t).then(e=>(e||q.delete(t),e));return q.set(t,r),r},Y=(e,t)=>{let n=(e,t)=>{let n=Et(e);return n?.fileName?{filePath:f(n.fileName),lineNumber:n.lineNumber??null,columnNumber:n.columnNumber??null,componentName:U(n.functionName),origin:t}:null},r=t.filter(e=>x(e.fileName).origin===`app`),i=r.filter(e=>W(e.fileName));return e?.origin===`app`&&W(e.filePath)?e:n(i,`app`)||(e?.origin===`app`&&!I(e.filePath)?e:n(r,`app`)||(e?.origin===`app`||e?.origin===`package`?e:n(t.filter(e=>x(e.fileName).origin===`package`),`package`)))},At=async e=>{let t=await kt(e);return t?.origin===`app`&&W(t.filePath)?t:Y(t,await J(e)??[])},jt=e=>X(G(e),1)[0]??null,X=(e,t,n=()=>!0)=>{if(!i())return[];let r=g(e);if(!r)return[];let a=[];return s(r,e=>{if(a.length>=t)return!0;if(h(e)){let t=ne(e.type);t&&vt(t)&&n(t)&&a.push(t)}return!1},!0),a},Mt=[`/src/app/`,`/src/pages/`,`/app/`,`/pages/`],Nt=(e,t)=>{let n=f(e);if(!t||!n.startsWith(`/`))return n;for(let e of Mt){let t=n.indexOf(e);if(t!==-1)return`/./${n.slice(t+1)}`}return n},Pt=(e,t)=>{let n=Nt(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},Ft=(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:Pt({componentName:n,filePath:a,lineNumber:e.lineNumber??null,columnNumber:e.columnNumber??null},r),isAppSource:!0,consumesBudget:W(a)}:null},It=(e,t={},n=null)=>{let r=fe(t.maxLines),i=Math.max(r,20),a=ue(),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`&&W(n.filePath);u=e,e&&(f+=1),p(n.componentName),o.push(Pt(n,a))}for(let t of e){if(f>=r||o.length>=i)break;let e=x(t.fileName),s=U(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=Ft(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}},Lt=(e,t)=>{let n=Y(e,t);return n?.origin===`app`?n:null},Rt=(e,t,n)=>{let r=X(G(e),n,e=>yt(e)&&!t.renderedComponentNames.has(e));return r.length===0?t:{...t,text:`${t.text}${L(r)}`}},Q=async(e,t={})=>{let n=await kt(e),r=await J(e)??[],i=Lt(n,r),a=fe(t.maxLines),o=It(r,t,i);if(o.text)return o.hasBudgetedStackFrame?o:Rt(e,o,a);let s=X(G(e),a);return{text:L(s),shouldAppendSelectorHint:!0,hasBudgetedStackFrame:!1,renderedComponentNames:new Set(s)}},zt=async(e,t={})=>(await Q(e,t)).text,$=(e,t)=>{let n=St(e),r=n===null?``:`\n key: "${n}"`,i=t.shouldAppendSelectorHint?`\n selector: ${P(F(e))}`:``;return`${t.text}${r}${i}`},Bt=async(e,t={})=>{let n=await Q(e,t);return`${lt(e)}${$(e,n).replace(/\n\s+/g,` `)}`},Vt=async(e,t={})=>{let n=G(e);return`${ut(n)}${$(n,await Q(n,t))}`},Ht=e=>e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`),Ut=(e,t)=>{let n=t?.componentName??`div`,r={version:ie,content:e,entries:t?.entries??[{tagName:t?.tagName,componentName:n,content:e,commentText:t?.commentText}],timestamp:Date.now()},i=t=>{t.preventDefault(),t.clipboardData?.setData(`text/plain`,e),t.clipboardData?.setData(`text/html`,`<meta charset='utf-8'><pre><code>${Ht(e)}</code></pre>`),t.clipboardData?.setData(`application/x-react-grab`,JSON.stringify(r))};document.addEventListener(`copy`,i);let a=document.createElement(`textarea`);a.value=e,a.style.position=`fixed`,a.style.left=`-9999px`,a.ariaHidden=`true`,document.body.appendChild(a),a.select();try{return typeof document.execCommand==`function`?document.execCommand(`copy`):!1}finally{document.removeEventListener(`copy`,i),a.remove()}};export{Tt as a,At as c,P as d,Bt as i,ut as l,Vt as n,J as o,jt as r,zt as s,Ut as t,F 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 {
@@ -228,14 +230,12 @@ interface PreviewStyles {
228
230
  interface EditPanelState {
229
231
  element: Element;
230
232
  position: Position;
231
- selectionBounds: OverlayBounds;
232
233
  properties: EditableProperty[];
233
234
  preview: PreviewStyles;
234
235
  filePath?: string;
235
236
  lineNumber?: number;
236
237
  componentName?: string;
237
238
  tagName?: string;
238
- htmlPreview?: string;
239
239
  initialSearchQuery?: string;
240
240
  hasSessionEdits?: boolean;
241
241
  designTokens?: DesignTokenResolver;
@@ -260,24 +260,24 @@ interface HierarchyState {
260
260
  activeIndex: number;
261
261
  }
262
262
  interface PluginHooks {
263
- onActivate?: () => void;
264
- onDeactivate?: () => void;
265
- onElementHover?: (element: Element) => void;
263
+ onActivate?: () => void | Promise<void>;
264
+ onDeactivate?: () => void | Promise<void>;
265
+ onElementHover?: (element: Element) => void | Promise<void>;
266
266
  onElementSelect?: (element: Element) => boolean | void | Promise<boolean>;
267
- onDragStart?: (startX: number, startY: number) => void;
268
- onDragEnd?: (elements: Element[], bounds: DragRect) => void;
267
+ onDragStart?: (startX: number, startY: number) => void | Promise<void>;
268
+ onDragEnd?: (elements: Element[], bounds: DragRect) => void | Promise<void>;
269
269
  onBeforeCopy?: (elements: Element[]) => void | Promise<void>;
270
270
  transformCopyContent?: (content: string, elements: Element[]) => string | Promise<string>;
271
- onAfterCopy?: (elements: Element[], success: boolean) => void;
272
- onCopySuccess?: (elements: Element[], content: string) => void;
273
- onCopyError?: (error: Error) => void;
274
- onStateChange?: (state: ReactGrabState) => void;
275
- onPromptModeChange?: (isPromptMode: boolean, context: PromptModeContext) => void;
276
- onSelectionBox?: (visible: boolean, bounds: OverlayBounds | null, element: Element | null) => void;
277
- onDragBox?: (visible: boolean, bounds: OverlayBounds | null) => void;
278
- onGrabbedBox?: (bounds: OverlayBounds, element: Element) => void;
279
- onElementLabel?: (visible: boolean, variant: ElementLabelVariant, context: ElementLabelContext) => void;
280
- 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>;
281
281
  onOpenFile?: (filePath: string, lineNumber?: number) => boolean | void;
282
282
  transformHtmlContent?: (html: string, elements: Element[]) => string | Promise<string>;
283
283
  transformAgentContext?: (context: AgentContext, elements: Element[]) => AgentContext | Promise<AgentContext>;
@@ -289,7 +289,7 @@ interface PluginConfig {
289
289
  options?: SettableOptions;
290
290
  actions?: ContextMenuAction[];
291
291
  hooks?: PluginHooks;
292
- cleanup?: () => void;
292
+ cleanup?: () => undefined;
293
293
  }
294
294
  interface Plugin {
295
295
  name: string;
@@ -432,13 +432,19 @@ interface FrozenLabelEntry {
432
432
  bounds: OverlayBounds;
433
433
  mouseX?: number;
434
434
  }
435
+ interface FrozenLabelEntryAccessor {
436
+ read: () => FrozenLabelEntry | null;
437
+ }
438
+ interface SelectionLabelInstanceAccessor {
439
+ read: () => SelectionLabelInstance | null;
440
+ }
435
441
  interface ReactGrabRendererProps {
436
442
  selectionVisible?: boolean;
437
443
  selectionBounds?: OverlayBounds;
438
444
  selectionBoundsMultiple?: OverlayBounds[];
439
445
  selectionShouldSnap?: boolean;
440
446
  selectionElementsCount?: number;
441
- frozenLabelEntries?: FrozenLabelEntry[];
447
+ frozenLabelEntryAccessors?: FrozenLabelEntryAccessor[];
442
448
  pendingShiftPreviewEntry?: FrozenLabelEntry;
443
449
  selectionFilePath?: string;
444
450
  selectionLineNumber?: number;
@@ -449,6 +455,7 @@ interface ReactGrabRendererProps {
449
455
  hierarchyState?: HierarchyState;
450
456
  hierarchyMenuPosition?: DropdownAnchor | null;
451
457
  labelInstances?: SelectionLabelInstance[];
458
+ labelInstanceAccessors?: SelectionLabelInstanceAccessor[];
452
459
  dragVisible?: boolean;
453
460
  dragBounds?: OverlayBounds;
454
461
  grabbedBoxes?: Array<{
@@ -550,7 +557,7 @@ interface ReactGrabEntry {
550
557
  frames?: ReactGrabStackFrame[];
551
558
  }
552
559
  //#endregion
553
- //#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
554
561
  type Flags = number;
555
562
  type Lanes = number;
556
563
  type TypeOfMode = number;
@@ -640,6 +647,14 @@ interface Effect {
640
647
  interface Family {
641
648
  current: unknown;
642
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
+ }
643
658
  /**
644
659
  * Represents a react-internal Fiber node.
645
660
  */
@@ -690,6 +705,7 @@ interface ReactDevToolsGlobalHook {
690
705
  onCommitFiberRoot: (rendererID: number, root: FiberRoot, priority: number | void) => void;
691
706
  onCommitFiberUnmount: (rendererID: number, fiber: Fiber) => void;
692
707
  onPostCommitFiberRoot: (rendererID: number, root: FiberRoot) => void;
708
+ onScheduleFiberRoot?: (rendererID: number, root: FiberRoot, children: ReactNode) => void;
693
709
  renderers: Map<number, ReactRenderer>;
694
710
  supportsFiber: boolean;
695
711
  supportsFlight: boolean;
@@ -708,10 +724,7 @@ interface ReactRenderer {
708
724
  overridePropsRenamePath?: (fiber: Fiber, oldPath: Array<number | string>, newPath: Array<number | string>) => void;
709
725
  reconcilerVersion: string;
710
726
  rendererPackageName: string;
711
- scheduleRefresh?: (root: FiberRoot, update: {
712
- staleFamilies: Set<Family>;
713
- updatedFamilies: Set<Family>;
714
- }) => void;
727
+ scheduleRefresh?: (root: FiberRoot, update: RendererRefreshUpdate) => void;
715
728
  scheduleRoot?: (root: FiberRoot, element: React.ReactNode) => void;
716
729
  scheduleUpdate?: (fiber: Fiber) => void;
717
730
  setErrorHandler?: (newShouldErrorImpl: (fiber: Fiber) => boolean) => void;
@@ -722,28 +735,30 @@ interface ReactRenderer {
722
735
  declare global {
723
736
  var __REACT_DEVTOOLS_GLOBAL_HOOK__: ReactDevToolsGlobalHook | undefined;
724
737
  } //#endregion
725
- //#region src/rdt-hook.d.ts
726
- /**
727
- * Returns `true` if bippy's instrumentation is active.
728
- */
729
- declare const isInstrumentationActive: () => boolean;
730
- /**
731
- * Returns the latest fiber (since it may be double-buffered).
732
- */
738
+ //#region src/unsubscribe.d.ts
733
739
  //#endregion
734
- //#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
735
741
  //#region src/source/parse-stack.d.ts
736
742
  interface StackFrame {
737
743
  args?: unknown[];
738
744
  columnNumber?: number;
739
745
  lineNumber?: number;
746
+ enclosingLineNumber?: number;
747
+ enclosingColumnNumber?: number;
740
748
  fileName?: string;
741
749
  functionName?: string;
742
750
  source?: string;
743
751
  isServer?: boolean;
744
752
  isSymbolicated?: boolean;
753
+ isIgnoreListed?: boolean;
745
754
  }
746
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
747
762
  //#region src/utils/copy-content.d.ts
748
763
  interface CopyContentOptions {
749
764
  componentName?: string;
@@ -753,4 +768,4 @@ interface CopyContentOptions {
753
768
  }
754
769
  declare const copyContent: (content: string, options?: CopyContentOptions) => boolean;
755
770
  //#endregion
756
- 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-BZyl_zps.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.Tt,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.H(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.V;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.et},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.qt.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.Yt),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.J(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.Jt)=>{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.Ht.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.zt.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.Vt){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.Bt.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.zt.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.G())return t;let n=t;for(;n;){if(e.Y(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.U(n)&&(r+=1,r===2))break;n=n.return}return null},Je=t=>e.G()?qe(e.Y(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.Y(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.G())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.G())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.U(t)?null:U(e.W(t.type)),et=t=>N(async n=>{let r=e.Y(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.G())return[];let i=e.Y(t);if(!i)return[];let a=[];return e.J(i,t=>{if(a.length>=n)return!0;if(e.U(t)){let n=e.W(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.Zt,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 {
@@ -228,14 +230,12 @@ interface PreviewStyles {
228
230
  interface EditPanelState {
229
231
  element: Element;
230
232
  position: Position;
231
- selectionBounds: OverlayBounds;
232
233
  properties: EditableProperty[];
233
234
  preview: PreviewStyles;
234
235
  filePath?: string;
235
236
  lineNumber?: number;
236
237
  componentName?: string;
237
238
  tagName?: string;
238
- htmlPreview?: string;
239
239
  initialSearchQuery?: string;
240
240
  hasSessionEdits?: boolean;
241
241
  designTokens?: DesignTokenResolver;
@@ -260,24 +260,24 @@ interface HierarchyState {
260
260
  activeIndex: number;
261
261
  }
262
262
  interface PluginHooks {
263
- onActivate?: () => void;
264
- onDeactivate?: () => void;
265
- onElementHover?: (element: Element) => void;
263
+ onActivate?: () => void | Promise<void>;
264
+ onDeactivate?: () => void | Promise<void>;
265
+ onElementHover?: (element: Element) => void | Promise<void>;
266
266
  onElementSelect?: (element: Element) => boolean | void | Promise<boolean>;
267
- onDragStart?: (startX: number, startY: number) => void;
268
- onDragEnd?: (elements: Element[], bounds: DragRect) => void;
267
+ onDragStart?: (startX: number, startY: number) => void | Promise<void>;
268
+ onDragEnd?: (elements: Element[], bounds: DragRect) => void | Promise<void>;
269
269
  onBeforeCopy?: (elements: Element[]) => void | Promise<void>;
270
270
  transformCopyContent?: (content: string, elements: Element[]) => string | Promise<string>;
271
- onAfterCopy?: (elements: Element[], success: boolean) => void;
272
- onCopySuccess?: (elements: Element[], content: string) => void;
273
- onCopyError?: (error: Error) => void;
274
- onStateChange?: (state: ReactGrabState) => void;
275
- onPromptModeChange?: (isPromptMode: boolean, context: PromptModeContext) => void;
276
- onSelectionBox?: (visible: boolean, bounds: OverlayBounds | null, element: Element | null) => void;
277
- onDragBox?: (visible: boolean, bounds: OverlayBounds | null) => void;
278
- onGrabbedBox?: (bounds: OverlayBounds, element: Element) => void;
279
- onElementLabel?: (visible: boolean, variant: ElementLabelVariant, context: ElementLabelContext) => void;
280
- 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>;
281
281
  onOpenFile?: (filePath: string, lineNumber?: number) => boolean | void;
282
282
  transformHtmlContent?: (html: string, elements: Element[]) => string | Promise<string>;
283
283
  transformAgentContext?: (context: AgentContext, elements: Element[]) => AgentContext | Promise<AgentContext>;
@@ -289,7 +289,7 @@ interface PluginConfig {
289
289
  options?: SettableOptions;
290
290
  actions?: ContextMenuAction[];
291
291
  hooks?: PluginHooks;
292
- cleanup?: () => void;
292
+ cleanup?: () => undefined;
293
293
  }
294
294
  interface Plugin {
295
295
  name: string;
@@ -432,13 +432,19 @@ interface FrozenLabelEntry {
432
432
  bounds: OverlayBounds;
433
433
  mouseX?: number;
434
434
  }
435
+ interface FrozenLabelEntryAccessor {
436
+ read: () => FrozenLabelEntry | null;
437
+ }
438
+ interface SelectionLabelInstanceAccessor {
439
+ read: () => SelectionLabelInstance | null;
440
+ }
435
441
  interface ReactGrabRendererProps {
436
442
  selectionVisible?: boolean;
437
443
  selectionBounds?: OverlayBounds;
438
444
  selectionBoundsMultiple?: OverlayBounds[];
439
445
  selectionShouldSnap?: boolean;
440
446
  selectionElementsCount?: number;
441
- frozenLabelEntries?: FrozenLabelEntry[];
447
+ frozenLabelEntryAccessors?: FrozenLabelEntryAccessor[];
442
448
  pendingShiftPreviewEntry?: FrozenLabelEntry;
443
449
  selectionFilePath?: string;
444
450
  selectionLineNumber?: number;
@@ -449,6 +455,7 @@ interface ReactGrabRendererProps {
449
455
  hierarchyState?: HierarchyState;
450
456
  hierarchyMenuPosition?: DropdownAnchor | null;
451
457
  labelInstances?: SelectionLabelInstance[];
458
+ labelInstanceAccessors?: SelectionLabelInstanceAccessor[];
452
459
  dragVisible?: boolean;
453
460
  dragBounds?: OverlayBounds;
454
461
  grabbedBoxes?: Array<{
@@ -550,7 +557,7 @@ interface ReactGrabEntry {
550
557
  frames?: ReactGrabStackFrame[];
551
558
  }
552
559
  //#endregion
553
- //#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
554
561
  type Flags = number;
555
562
  type Lanes = number;
556
563
  type TypeOfMode = number;
@@ -640,6 +647,14 @@ interface Effect {
640
647
  interface Family {
641
648
  current: unknown;
642
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
+ }
643
658
  /**
644
659
  * Represents a react-internal Fiber node.
645
660
  */
@@ -690,6 +705,7 @@ interface ReactDevToolsGlobalHook {
690
705
  onCommitFiberRoot: (rendererID: number, root: FiberRoot, priority: number | void) => void;
691
706
  onCommitFiberUnmount: (rendererID: number, fiber: Fiber) => void;
692
707
  onPostCommitFiberRoot: (rendererID: number, root: FiberRoot) => void;
708
+ onScheduleFiberRoot?: (rendererID: number, root: FiberRoot, children: ReactNode) => void;
693
709
  renderers: Map<number, ReactRenderer>;
694
710
  supportsFiber: boolean;
695
711
  supportsFlight: boolean;
@@ -708,10 +724,7 @@ interface ReactRenderer {
708
724
  overridePropsRenamePath?: (fiber: Fiber, oldPath: Array<number | string>, newPath: Array<number | string>) => void;
709
725
  reconcilerVersion: string;
710
726
  rendererPackageName: string;
711
- scheduleRefresh?: (root: FiberRoot, update: {
712
- staleFamilies: Set<Family>;
713
- updatedFamilies: Set<Family>;
714
- }) => void;
727
+ scheduleRefresh?: (root: FiberRoot, update: RendererRefreshUpdate) => void;
715
728
  scheduleRoot?: (root: FiberRoot, element: React.ReactNode) => void;
716
729
  scheduleUpdate?: (fiber: Fiber) => void;
717
730
  setErrorHandler?: (newShouldErrorImpl: (fiber: Fiber) => boolean) => void;
@@ -722,28 +735,30 @@ interface ReactRenderer {
722
735
  declare global {
723
736
  var __REACT_DEVTOOLS_GLOBAL_HOOK__: ReactDevToolsGlobalHook | undefined;
724
737
  } //#endregion
725
- //#region src/rdt-hook.d.ts
726
- /**
727
- * Returns `true` if bippy's instrumentation is active.
728
- */
729
- declare const isInstrumentationActive: () => boolean;
730
- /**
731
- * Returns the latest fiber (since it may be double-buffered).
732
- */
738
+ //#region src/unsubscribe.d.ts
733
739
  //#endregion
734
- //#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
735
741
  //#region src/source/parse-stack.d.ts
736
742
  interface StackFrame {
737
743
  args?: unknown[];
738
744
  columnNumber?: number;
739
745
  lineNumber?: number;
746
+ enclosingLineNumber?: number;
747
+ enclosingColumnNumber?: number;
740
748
  fileName?: string;
741
749
  functionName?: string;
742
750
  source?: string;
743
751
  isServer?: boolean;
744
752
  isSymbolicated?: boolean;
753
+ isIgnoreListed?: boolean;
745
754
  }
746
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
747
762
  //#region src/utils/copy-content.d.ts
748
763
  interface CopyContentOptions {
749
764
  componentName?: string;
@@ -753,4 +768,4 @@ interface CopyContentOptions {
753
768
  }
754
769
  declare const copyContent: (content: string, options?: CopyContentOptions) => boolean;
755
770
  //#endregion
756
- 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-DZuBh2fo.cjs`),t=require(`../freeze-updates-C_IhYDHN.cjs`),n=require(`../copy-content-Brp9zcvw.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.A;
9
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../core-C15zpS13.cjs`),t=require(`../freeze-updates-BZyl_zps.cjs`),n=require(`../copy-content-D42Pfsuq.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.G;
@@ -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-Bd0tq7-s.cjs";
10
- import { a as getStack, i as formatElementInfo, n as generateSnippet, r as DEFAULT_THEME, t as init } from "../index-C8KX_pE5.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-B4Bw8Gfr.js";
10
- import { a as getStack, i as formatElementInfo, n as generateSnippet, r as DEFAULT_THEME, t as init } from "../index-ColaCMun.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-Br3ybht6.js";import{A as r}from"../freeze-updates-mmaoTEZQ.js";import{n as i,o as a,t as o}from"../copy-content-DyrCZQcZ.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-Bpg7XRic.js";import{G as r}from"../freeze-updates-BMIGQY9z.js";import{n as i,o as a,t as o}from"../copy-content-C0U2O8u-.js";export{e as DEFAULT_THEME,o as copyContent,i as formatElementInfo,t as generateSnippet,a as getStack,n as init,r as isInstrumentationActive};