react-grab 0.1.48-dev.f29c951 → 0.1.48-dev.fe982d7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/copy-content-C2zrO3VU.js +10 -0
- package/dist/{copy-content-B4Bw8Gfr.d.ts → copy-content-CDFe4uJW.d.ts} +49 -34
- package/dist/copy-content-CXUx_1iN.cjs +10 -0
- package/dist/{copy-content-Bd0tq7-s.d.cts → copy-content-hpjB511j.d.cts} +49 -34
- package/dist/core/index.cjs +1 -1
- package/dist/core/index.d.cts +2 -2
- package/dist/core/index.d.ts +2 -2
- package/dist/core/index.js +1 -1
- package/dist/core-iQ3mfusF.js +14 -0
- package/dist/core-x3YUe26k.cjs +14 -0
- package/dist/errors-Bk7FIavr.d.cts +21 -0
- package/dist/errors-Cy89H8tr.d.ts +21 -0
- package/dist/execute-context-menu-action-B-P_gUOs.js +9 -0
- package/dist/execute-context-menu-action-Ddtbmlwp.cjs +9 -0
- package/dist/freeze-updates-BVxvgb7T.js +61 -0
- package/dist/freeze-updates-D7HmnXxx.cjs +61 -0
- package/dist/{index-C8KX_pE5.d.cts → index-D23mfsUe.d.cts} +1 -1
- package/dist/{index-ColaCMun.d.ts → index-qFak7ECs.d.ts} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +4 -3
- package/dist/index.d.ts +4 -3
- package/dist/index.global.js +20 -19
- package/dist/index.js +1 -1
- package/dist/primitives.cjs +2 -2
- package/dist/primitives.d.cts +3 -2
- package/dist/primitives.d.ts +3 -2
- package/dist/primitives.js +2 -2
- package/dist/renderer-BN5dqKip.cjs +9 -0
- package/dist/renderer-CaZRY4SP.js +9 -0
- package/package.json +3 -3
- package/dist/copy-content-Brp9zcvw.cjs +0 -10
- package/dist/copy-content-DyrCZQcZ.js +0 -10
- package/dist/core-Br3ybht6.js +0 -14
- package/dist/core-DZuBh2fo.cjs +0 -14
- package/dist/create-pointer-move-prompt-handoff-CT65-51W.js +0 -9
- package/dist/create-pointer-move-prompt-handoff-jPQocaH4.cjs +0 -9
- package/dist/freeze-updates-C_IhYDHN.cjs +0 -51
- package/dist/freeze-updates-mmaoTEZQ.js +0 -51
- package/dist/renderer-DZGgt-RV.js +0 -9
- 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://
|
|
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-BVxvgb7T.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,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`),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 {
|
|
@@ -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?: () =>
|
|
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
|
-
|
|
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.
|
|
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/
|
|
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.
|
|
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,
|
|
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-D7HmnXxx.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,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`),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 {
|
|
@@ -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?: () =>
|
|
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
|
-
|
|
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.
|
|
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/
|
|
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.
|
|
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,
|
|
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 };
|
package/dist/core/index.cjs
CHANGED
|
@@ -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-
|
|
9
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../core-x3YUe26k.cjs`),t=require(`../freeze-updates-D7HmnXxx.cjs`),n=require(`../copy-content-CXUx_1iN.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;
|
package/dist/core/index.d.cts
CHANGED
|
@@ -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,
|
|
10
|
-
import { a as getStack, i as formatElementInfo, n as generateSnippet, r as DEFAULT_THEME, t as init } from "../index-
|
|
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 };
|
package/dist/core/index.d.ts
CHANGED
|
@@ -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,
|
|
10
|
-
import { a as getStack, i as formatElementInfo, n as generateSnippet, r as DEFAULT_THEME, t as init } from "../index-
|
|
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 };
|
package/dist/core/index.js
CHANGED
|
@@ -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-
|
|
9
|
+
import{a as e,n as t,t as n}from"../core-iQ3mfusF.js";import{q as r}from"../freeze-updates-BVxvgb7T.js";import{n as i,o as a,t as o}from"../copy-content-C2zrO3VU.js";export{e as DEFAULT_THEME,o as copyContent,i as formatElementInfo,t as generateSnippet,a as getStack,n as init,r as isInstrumentationActive};
|