@preact/signals-devtools-ui 0.1.0
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/CHANGELOG.md +12 -0
- package/LICENSE +21 -0
- package/README.md +139 -0
- package/dist/devtools-ui.d.ts +5 -0
- package/dist/devtools-ui.js +1 -0
- package/dist/devtools-ui.js.map +1 -0
- package/dist/devtools-ui.min.js +1 -0
- package/dist/devtools-ui.min.js.map +1 -0
- package/dist/devtools-ui.mjs +1 -0
- package/dist/devtools-ui.mjs.map +1 -0
- package/dist/devtools-ui.module.js +1 -0
- package/dist/devtools-ui.module.js.map +1 -0
- package/dist/styles.css +835 -0
- package/package.json +66 -0
- package/src/DevToolsPanel.tsx +107 -0
- package/src/components/Button.tsx +31 -0
- package/src/components/EmptyState.tsx +29 -0
- package/src/components/Graph.tsx +496 -0
- package/src/components/Header.tsx +39 -0
- package/src/components/SettingsPanel.tsx +129 -0
- package/src/components/StatusIndicator.tsx +22 -0
- package/src/components/UpdateItem.tsx +75 -0
- package/src/components/UpdateTreeNode.tsx +69 -0
- package/src/components/UpdatesContainer.tsx +41 -0
- package/src/components/index.ts +9 -0
- package/src/context.ts +359 -0
- package/src/index.ts +47 -0
- package/src/styles.css +835 -0
- package/src/types.ts +35 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devtools-ui.module.js","sources":["../../../node_modules/.pnpm/preact@10.27.2/node_modules/preact/dist/preact.module.js","../../../node_modules/.pnpm/preact@10.27.2/node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js","../../../node_modules/.pnpm/preact@10.27.2/node_modules/preact/hooks/dist/hooks.module.js","../../core/dist/signals-core.module.js","../../preact/dist/signals.module.js","../src/components/Button.tsx","../src/components/EmptyState.tsx","../src/components/StatusIndicator.tsx","../src/context.ts","../src/components/Header.tsx","../src/components/SettingsPanel.tsx","../src/components/Graph.tsx","../src/components/UpdateItem.tsx","../src/components/UpdateTreeNode.tsx","../src/components/UpdatesContainer.tsx","../src/DevToolsPanel.tsx"],"sourcesContent":["var n,l,u,t,i,r,o,e,f,c,s,a,h,p={},v=[],y=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,w=Array.isArray;function d(n,l){for(var u in l)n[u]=l[u];return n}function g(n){n&&n.parentNode&&n.parentNode.removeChild(n)}function _(l,u,t){var i,r,o,e={};for(o in u)\"key\"==o?i=u[o]:\"ref\"==o?r=u[o]:e[o]=u[o];if(arguments.length>2&&(e.children=arguments.length>3?n.call(arguments,2):t),\"function\"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)void 0===e[o]&&(e[o]=l.defaultProps[o]);return m(l,e,i,r,null)}function m(n,t,i,r,o){var e={type:n,props:t,key:i,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:null==o?++u:o,__i:-1,__u:0};return null==o&&null!=l.vnode&&l.vnode(e),e}function b(){return{current:null}}function k(n){return n.children}function x(n,l){this.props=n,this.context=l}function S(n,l){if(null==l)return n.__?S(n.__,n.__i+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?S(n):null}function C(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return C(n)}}function M(n){(!n.__d&&(n.__d=!0)&&i.push(n)&&!$.__r++||r!=l.debounceRendering)&&((r=l.debounceRendering)||o)($)}function $(){for(var n,u,t,r,o,f,c,s=1;i.length;)i.length>s&&i.sort(e),n=i.shift(),s=i.length,n.__d&&(t=void 0,r=void 0,o=(r=(u=n).__v).__e,f=[],c=[],u.__P&&((t=d({},r)).__v=r.__v+1,l.vnode&&l.vnode(t),O(u.__P,t,r,u.__n,u.__P.namespaceURI,32&r.__u?[o]:null,f,null==o?S(r):o,!!(32&r.__u),c),t.__v=r.__v,t.__.__k[t.__i]=t,N(f,t,c),r.__e=r.__=null,t.__e!=o&&C(t)));$.__r=0}function I(n,l,u,t,i,r,o,e,f,c,s){var a,h,y,w,d,g,_,m=t&&t.__k||v,b=l.length;for(f=P(u,l,m,f,b),a=0;a<b;a++)null!=(y=u.__k[a])&&(h=-1==y.__i?p:m[y.__i]||p,y.__i=a,g=O(n,y,h,i,r,o,e,f,c,s),w=y.__e,y.ref&&h.ref!=y.ref&&(h.ref&&B(h.ref,null,y),s.push(y.ref,y.__c||w,y)),null==d&&null!=w&&(d=w),(_=!!(4&y.__u))||h.__k===y.__k?f=A(y,f,n,_):\"function\"==typeof y.type&&void 0!==g?f=g:w&&(f=w.nextSibling),y.__u&=-7);return u.__e=d,f}function P(n,l,u,t,i){var r,o,e,f,c,s=u.length,a=s,h=0;for(n.__k=new Array(i),r=0;r<i;r++)null!=(o=l[r])&&\"boolean\"!=typeof o&&\"function\"!=typeof o?(f=r+h,(o=n.__k[r]=\"string\"==typeof o||\"number\"==typeof o||\"bigint\"==typeof o||o.constructor==String?m(null,o,null,null,null):w(o)?m(k,{children:o},null,null,null):null==o.constructor&&o.__b>0?m(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):o).__=n,o.__b=n.__b+1,e=null,-1!=(c=o.__i=L(o,u,f,a))&&(a--,(e=u[c])&&(e.__u|=2)),null==e||null==e.__v?(-1==c&&(i>s?h--:i<s&&h++),\"function\"!=typeof o.type&&(o.__u|=4)):c!=f&&(c==f-1?h--:c==f+1?h++:(c>f?h--:h++,o.__u|=4))):n.__k[r]=null;if(a)for(r=0;r<s;r++)null!=(e=u[r])&&0==(2&e.__u)&&(e.__e==t&&(t=S(e)),D(e,e));return t}function A(n,l,u,t){var i,r;if(\"function\"==typeof n.type){for(i=n.__k,r=0;i&&r<i.length;r++)i[r]&&(i[r].__=n,l=A(i[r],l,u,t));return l}n.__e!=l&&(t&&(l&&n.type&&!l.parentNode&&(l=S(n)),u.insertBefore(n.__e,l||null)),l=n.__e);do{l=l&&l.nextSibling}while(null!=l&&8==l.nodeType);return l}function H(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(w(n)?n.some(function(n){H(n,l)}):l.push(n)),l}function L(n,l,u,t){var i,r,o,e=n.key,f=n.type,c=l[u],s=null!=c&&0==(2&c.__u);if(null===c&&null==n.key||s&&e==c.key&&f==c.type)return u;if(t>(s?1:0))for(i=u-1,r=u+1;i>=0||r<l.length;)if(null!=(c=l[o=i>=0?i--:r++])&&0==(2&c.__u)&&e==c.key&&f==c.type)return o;return-1}function T(n,l,u){\"-\"==l[0]?n.setProperty(l,null==u?\"\":u):n[l]=null==u?\"\":\"number\"!=typeof u||y.test(l)?u:u+\"px\"}function j(n,l,u,t,i){var r,o;n:if(\"style\"==l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof t&&(n.style.cssText=t=\"\"),t)for(l in t)u&&l in u||T(n.style,l,\"\");if(u)for(l in u)t&&u[l]==t[l]||T(n.style,l,u[l])}else if(\"o\"==l[0]&&\"n\"==l[1])r=l!=(l=l.replace(f,\"$1\")),o=l.toLowerCase(),l=o in n||\"onFocusOut\"==l||\"onFocusIn\"==l?o.slice(2):l.slice(2),n.l||(n.l={}),n.l[l+r]=u,u?t?u.u=t.u:(u.u=c,n.addEventListener(l,r?a:s,r)):n.removeEventListener(l,r?a:s,r);else{if(\"http://www.w3.org/2000/svg\"==i)l=l.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(\"width\"!=l&&\"height\"!=l&&\"href\"!=l&&\"list\"!=l&&\"form\"!=l&&\"tabIndex\"!=l&&\"download\"!=l&&\"rowSpan\"!=l&&\"colSpan\"!=l&&\"role\"!=l&&\"popover\"!=l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null==u||!1===u&&\"-\"!=l[4]?n.removeAttribute(l):n.setAttribute(l,\"popover\"==l&&1==u?\"\":u))}}function F(n){return function(u){if(this.l){var t=this.l[u.type+n];if(null==u.t)u.t=c++;else if(u.t<t.u)return;return t(l.event?l.event(u):u)}}}function O(n,u,t,i,r,o,e,f,c,s){var a,h,p,v,y,_,m,b,S,C,M,$,P,A,H,L,T,j=u.type;if(null!=u.constructor)return null;128&t.__u&&(c=!!(32&t.__u),o=[f=u.__e=t.__e]),(a=l.__b)&&a(u);n:if(\"function\"==typeof j)try{if(b=u.props,S=\"prototype\"in j&&j.prototype.render,C=(a=j.contextType)&&i[a.__c],M=a?C?C.props.value:a.__:i,t.__c?m=(h=u.__c=t.__c).__=h.__E:(S?u.__c=h=new j(b,M):(u.__c=h=new x(b,M),h.constructor=j,h.render=E),C&&C.sub(h),h.props=b,h.state||(h.state={}),h.context=M,h.__n=i,p=h.__d=!0,h.__h=[],h._sb=[]),S&&null==h.__s&&(h.__s=h.state),S&&null!=j.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=d({},h.__s)),d(h.__s,j.getDerivedStateFromProps(b,h.__s))),v=h.props,y=h.state,h.__v=u,p)S&&null==j.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),S&&null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(S&&null==j.getDerivedStateFromProps&&b!==v&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(b,M),!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(b,h.__s,M)||u.__v==t.__v){for(u.__v!=t.__v&&(h.props=b,h.state=h.__s,h.__d=!1),u.__e=t.__e,u.__k=t.__k,u.__k.some(function(n){n&&(n.__=u)}),$=0;$<h._sb.length;$++)h.__h.push(h._sb[$]);h._sb=[],h.__h.length&&e.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(b,h.__s,M),S&&null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(v,y,_)})}if(h.context=M,h.props=b,h.__P=n,h.__e=!1,P=l.__r,A=0,S){for(h.state=h.__s,h.__d=!1,P&&P(u),a=h.render(h.props,h.state,h.context),H=0;H<h._sb.length;H++)h.__h.push(h._sb[H]);h._sb=[]}else do{h.__d=!1,P&&P(u),a=h.render(h.props,h.state,h.context),h.state=h.__s}while(h.__d&&++A<25);h.state=h.__s,null!=h.getChildContext&&(i=d(d({},i),h.getChildContext())),S&&!p&&null!=h.getSnapshotBeforeUpdate&&(_=h.getSnapshotBeforeUpdate(v,y)),L=a,null!=a&&a.type===k&&null==a.key&&(L=V(a.props.children)),f=I(n,w(L)?L:[L],u,t,i,r,o,e,f,c,s),h.base=u.__e,u.__u&=-161,h.__h.length&&e.push(h),m&&(h.__E=h.__=null)}catch(n){if(u.__v=null,c||null!=o)if(n.then){for(u.__u|=c?160:128;f&&8==f.nodeType&&f.nextSibling;)f=f.nextSibling;o[o.indexOf(f)]=null,u.__e=f}else{for(T=o.length;T--;)g(o[T]);z(u)}else u.__e=t.__e,u.__k=t.__k,n.then||z(u);l.__e(n,u,t)}else null==o&&u.__v==t.__v?(u.__k=t.__k,u.__e=t.__e):f=u.__e=q(t.__e,u,t,i,r,o,e,c,s);return(a=l.diffed)&&a(u),128&u.__u?void 0:f}function z(n){n&&n.__c&&(n.__c.__e=!0),n&&n.__k&&n.__k.forEach(z)}function N(n,u,t){for(var i=0;i<t.length;i++)B(t[i],t[++i],t[++i]);l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function V(n){return\"object\"!=typeof n||null==n||n.__b&&n.__b>0?n:w(n)?n.map(V):d({},n)}function q(u,t,i,r,o,e,f,c,s){var a,h,v,y,d,_,m,b=i.props,k=t.props,x=t.type;if(\"svg\"==x?o=\"http://www.w3.org/2000/svg\":\"math\"==x?o=\"http://www.w3.org/1998/Math/MathML\":o||(o=\"http://www.w3.org/1999/xhtml\"),null!=e)for(a=0;a<e.length;a++)if((d=e[a])&&\"setAttribute\"in d==!!x&&(x?d.localName==x:3==d.nodeType)){u=d,e[a]=null;break}if(null==u){if(null==x)return document.createTextNode(k);u=document.createElementNS(o,x,k.is&&k),c&&(l.__m&&l.__m(t,e),c=!1),e=null}if(null==x)b===k||c&&u.data==k||(u.data=k);else{if(e=e&&n.call(u.childNodes),b=i.props||p,!c&&null!=e)for(b={},a=0;a<u.attributes.length;a++)b[(d=u.attributes[a]).name]=d.value;for(a in b)if(d=b[a],\"children\"==a);else if(\"dangerouslySetInnerHTML\"==a)v=d;else if(!(a in k)){if(\"value\"==a&&\"defaultValue\"in k||\"checked\"==a&&\"defaultChecked\"in k)continue;j(u,a,null,d,o)}for(a in k)d=k[a],\"children\"==a?y=d:\"dangerouslySetInnerHTML\"==a?h=d:\"value\"==a?_=d:\"checked\"==a?m=d:c&&\"function\"!=typeof d||b[a]===d||j(u,a,d,b[a],o);if(h)c||v&&(h.__html==v.__html||h.__html==u.innerHTML)||(u.innerHTML=h.__html),t.__k=[];else if(v&&(u.innerHTML=\"\"),I(\"template\"==t.type?u.content:u,w(y)?y:[y],t,i,r,\"foreignObject\"==x?\"http://www.w3.org/1999/xhtml\":o,e,f,e?e[0]:i.__k&&S(i,0),c,s),null!=e)for(a=e.length;a--;)g(e[a]);c||(a=\"value\",\"progress\"==x&&null==_?u.removeAttribute(\"value\"):null!=_&&(_!==u[a]||\"progress\"==x&&!_||\"option\"==x&&_!=b[a])&&j(u,a,_,b[a],o),a=\"checked\",null!=m&&m!=u[a]&&j(u,a,m,b[a],o))}return u}function B(n,u,t){try{if(\"function\"==typeof n){var i=\"function\"==typeof n.__u;i&&n.__u(),i&&null==u||(n.__u=n(u))}else n.current=u}catch(n){l.__e(n,t)}}function D(n,u,t){var i,r;if(l.unmount&&l.unmount(n),(i=n.ref)&&(i.current&&i.current!=n.__e||B(i,null,u)),null!=(i=n.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(n){l.__e(n,u)}i.base=i.__P=null}if(i=n.__k)for(r=0;r<i.length;r++)i[r]&&D(i[r],u,t||\"function\"!=typeof n.type);t||g(n.__e),n.__c=n.__=n.__e=void 0}function E(n,l,u){return this.constructor(n,u)}function G(u,t,i){var r,o,e,f;t==document&&(t=document.documentElement),l.__&&l.__(u,t),o=(r=\"function\"==typeof i)?null:i&&i.__k||t.__k,e=[],f=[],O(t,u=(!r&&i||t).__k=_(k,null,[u]),o||p,p,t.namespaceURI,!r&&i?[i]:o?null:t.firstChild?n.call(t.childNodes):null,e,!r&&i?i:o?o.__e:t.firstChild,r,f),N(e,u,f)}function J(n,l){G(n,l,J)}function K(l,u,t){var i,r,o,e,f=d({},l.props);for(o in l.type&&l.type.defaultProps&&(e=l.type.defaultProps),u)\"key\"==o?i=u[o]:\"ref\"==o?r=u[o]:f[o]=void 0===u[o]&&null!=e?e[o]:u[o];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),m(l.type,f,i||l.key,r||l.ref,null)}function Q(n){function l(n){var u,t;return this.getChildContext||(u=new Set,(t={})[l.__c]=this,this.getChildContext=function(){return t},this.componentWillUnmount=function(){u=null},this.shouldComponentUpdate=function(n){this.props.value!=n.value&&u.forEach(function(n){n.__e=!0,M(n)})},this.sub=function(n){u.add(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u&&u.delete(n),l&&l.call(n)}}),n.children}return l.__c=\"__cC\"+h++,l.__=n,l.Provider=l.__l=(l.Consumer=function(n,l){return n.children(l)}).contextType=l,l}n=v.slice,l={__e:function(n,l,u,t){for(var i,r,o;l=l.__;)if((i=l.__c)&&!i.__)try{if((r=i.constructor)&&null!=r.getDerivedStateFromError&&(i.setState(r.getDerivedStateFromError(n)),o=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),o=i.__d),o)return i.__E=i}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&null==n.constructor},x.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=d({},this.state),\"function\"==typeof n&&(n=n(d({},u),this.props)),n&&d(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),M(this))},x.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),M(this))},x.prototype.render=k,i=[],o=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,e=function(n,l){return n.__v.__b-l.__v.__b},$.__r=0,f=/(PointerCapture)$|Capture$/i,c=0,s=F(!1),a=F(!0),h=0;export{x as Component,k as Fragment,K as cloneElement,Q as createContext,_ as createElement,b as createRef,_ as h,J as hydrate,t as isValidElement,l as options,G as render,H as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n","import{options as r,Fragment as e}from\"preact\";export{Fragment}from\"preact\";var t=/[\"&<]/;function n(r){if(0===r.length||!1===t.test(r))return r;for(var e=0,n=0,o=\"\",f=\"\";n<r.length;n++){switch(r.charCodeAt(n)){case 34:f=\""\";break;case 38:f=\"&\";break;case 60:f=\"<\";break;default:continue}n!==e&&(o+=r.slice(e,n)),o+=f,e=n+1}return n!==e&&(o+=r.slice(e,n)),o}var o=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,f=0,i=Array.isArray;function u(e,t,n,o,i,u){t||(t={});var a,c,p=t;if(\"ref\"in p)for(c in p={},t)\"ref\"==c?a=t[c]:p[c]=t[c];var l={type:e,props:p,key:n,ref:a,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--f,__i:-1,__u:0,__source:i,__self:u};if(\"function\"==typeof e&&(a=e.defaultProps))for(c in a)void 0===p[c]&&(p[c]=a[c]);return r.vnode&&r.vnode(l),l}function a(r){var t=u(e,{tpl:r,exprs:[].slice.call(arguments,1)});return t.key=t.__v,t}var c={},p=/[A-Z]/g;function l(e,t){if(r.attr){var f=r.attr(e,t);if(\"string\"==typeof f)return f}if(t=function(r){return null!==r&&\"object\"==typeof r&&\"function\"==typeof r.valueOf?r.valueOf():r}(t),\"ref\"===e||\"key\"===e)return\"\";if(\"style\"===e&&\"object\"==typeof t){var i=\"\";for(var u in t){var a=t[u];if(null!=a&&\"\"!==a){var l=\"-\"==u[0]?u:c[u]||(c[u]=u.replace(p,\"-$&\").toLowerCase()),s=\";\";\"number\"!=typeof a||l.startsWith(\"--\")||o.test(l)||(s=\"px;\"),i=i+l+\":\"+a+s}}return e+'=\"'+n(i)+'\"'}return null==t||!1===t||\"function\"==typeof t||\"object\"==typeof t?\"\":!0===t?e:e+'=\"'+n(\"\"+t)+'\"'}function s(r){if(null==r||\"boolean\"==typeof r||\"function\"==typeof r)return null;if(\"object\"==typeof r){if(void 0===r.constructor)return r;if(i(r)){for(var e=0;e<r.length;e++)r[e]=s(r[e]);return r}}return n(\"\"+r)}export{u as jsx,l as jsxAttr,u as jsxDEV,s as jsxEscape,a as jsxTemplate,u as jsxs};\n//# sourceMappingURL=jsxRuntime.module.js.map\n","import{options as n}from\"preact\";var t,r,u,i,o=0,f=[],c=n,e=c.__b,a=c.__r,v=c.diffed,l=c.__c,m=c.unmount,s=c.__;function p(n,t){c.__h&&c.__h(r,n,o||t),o=0;var u=r.__H||(r.__H={__:[],__h:[]});return n>=u.__.length&&u.__.push({}),u.__[n]}function d(n){return o=1,h(D,n)}function h(n,u,i){var o=p(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):D(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.__f)){var f=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return!!n.__c});if(u.every(function(n){return!n.__N}))return!c||c.call(this,n,t,r);var i=o.__c.props!==n;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),c&&c.call(this,n,t,r)||i};r.__f=!0;var c=r.shouldComponentUpdate,e=r.componentWillUpdate;r.componentWillUpdate=function(n,t,r){if(this.__e){var u=c;c=void 0,f(n,t,r),c=u}e&&e.call(this,n,t,r)},r.shouldComponentUpdate=f}return o.__N||o.__}function y(n,u){var i=p(t++,3);!c.__s&&C(i.__H,u)&&(i.__=n,i.u=u,r.__H.__h.push(i))}function _(n,u){var i=p(t++,4);!c.__s&&C(i.__H,u)&&(i.__=n,i.u=u,r.__h.push(i))}function A(n){return o=5,T(function(){return{current:n}},[])}function F(n,t,r){o=6,_(function(){if(\"function\"==typeof n){var r=n(t());return function(){n(null),r&&\"function\"==typeof r&&r()}}if(n)return n.current=t(),function(){return n.current=null}},null==r?r:r.concat(n))}function T(n,r){var u=p(t++,7);return C(u.__H,r)&&(u.__=n(),u.__H=r,u.__h=n),u.__}function q(n,t){return o=8,T(function(){return n},t)}function x(n){var u=r.context[n.__c],i=p(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function P(n,t){c.useDebugValue&&c.useDebugValue(t?t(n):n)}function b(n){var u=p(t++,10),i=d();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function g(){var n=p(t++,11);if(!n.__){for(var u=r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__=\"P\"+i[0]+\"-\"+i[1]++}return n.__}function j(){for(var n;n=f.shift();)if(n.__P&&n.__H)try{n.__H.__h.forEach(z),n.__H.__h.forEach(B),n.__H.__h=[]}catch(t){n.__H.__h=[],c.__e(t,n.__v)}}c.__b=function(n){r=null,e&&e(n)},c.__=function(n,t){n&&t.__k&&t.__k.__m&&(n.__m=t.__k.__m),s&&s(n,t)},c.__r=function(n){a&&a(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(i.__h.forEach(z),i.__h.forEach(B),i.__h=[],t=0)),u=r},c.diffed=function(n){v&&v(n);var t=n.__c;t&&t.__H&&(t.__H.__h.length&&(1!==f.push(t)&&i===c.requestAnimationFrame||((i=c.requestAnimationFrame)||w)(j)),t.__H.__.forEach(function(n){n.u&&(n.__H=n.u),n.u=void 0})),u=r=null},c.__c=function(n,t){t.some(function(n){try{n.__h.forEach(z),n.__h=n.__h.filter(function(n){return!n.__||B(n)})}catch(r){t.some(function(n){n.__h&&(n.__h=[])}),t=[],c.__e(r,n.__v)}}),l&&l(n,t)},c.unmount=function(n){m&&m(n);var t,r=n.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{z(n)}catch(n){t=n}}),r.__H=void 0,t&&c.__e(t,r.__v))};var k=\"function\"==typeof requestAnimationFrame;function w(n){var t,r=function(){clearTimeout(u),k&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,35);k&&(t=requestAnimationFrame(r))}function z(n){var t=r,u=n.__c;\"function\"==typeof u&&(n.__c=void 0,u()),r=t}function B(n){var t=r;n.__c=n.__(),r=t}function C(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function D(n,t){return\"function\"==typeof t?t(n):t}export{q as useCallback,x as useContext,P as useDebugValue,y as useEffect,b as useErrorBoundary,g as useId,F as useImperativeHandle,_ as useLayoutEffect,T as useMemo,h as useReducer,A as useRef,d as useState};\n//# sourceMappingURL=hooks.module.js.map\n","var i=Symbol.for(\"preact-signals\");function t(){if(!(s>1)){var i,t=!1;while(void 0!==h){var r=h;h=void 0;f++;while(void 0!==r){var o=r.o;r.o=void 0;r.f&=-3;if(!(8&r.f)&&c(r))try{r.c()}catch(r){if(!t){i=r;t=!0}}r=o}}f=0;s--;if(t)throw i}else s--}function r(i){if(s>0)return i();s++;try{return i()}finally{t()}}var o=void 0;function n(i){var t=o;o=void 0;try{return i()}finally{o=t}}var h=void 0,s=0,f=0,v=0;function e(i){if(void 0!==o){var t=i.n;if(void 0===t||t.t!==o){t={i:0,S:i,p:o.s,n:void 0,t:o,e:void 0,x:void 0,r:t};if(void 0!==o.s)o.s.n=t;o.s=t;i.n=t;if(32&o.f)i.S(t);return t}else if(-1===t.i){t.i=0;if(void 0!==t.n){t.n.p=t.p;if(void 0!==t.p)t.p.n=t.n;t.p=o.s;t.n=void 0;o.s.n=t;o.s=t}return t}}}function u(i,t){this.v=i;this.i=0;this.n=void 0;this.t=void 0;this.W=null==t?void 0:t.watched;this.Z=null==t?void 0:t.unwatched;this.name=null==t?void 0:t.name}u.prototype.brand=i;u.prototype.h=function(){return!0};u.prototype.S=function(i){var t=this,r=this.t;if(r!==i&&void 0===i.e){i.x=r;this.t=i;if(void 0!==r)r.e=i;else n(function(){var i;null==(i=t.W)||i.call(t)})}};u.prototype.U=function(i){var t=this;if(void 0!==this.t){var r=i.e,o=i.x;if(void 0!==r){r.x=o;i.e=void 0}if(void 0!==o){o.e=r;i.x=void 0}if(i===this.t){this.t=o;if(void 0===o)n(function(){var i;null==(i=t.Z)||i.call(t)})}}};u.prototype.subscribe=function(i){var t=this;return E(function(){var r=t.value,n=o;o=void 0;try{i(r)}finally{o=n}},{name:\"sub\"})};u.prototype.valueOf=function(){return this.value};u.prototype.toString=function(){return this.value+\"\"};u.prototype.toJSON=function(){return this.value};u.prototype.peek=function(){var i=o;o=void 0;try{return this.value}finally{o=i}};Object.defineProperty(u.prototype,\"value\",{get:function(){var i=e(this);if(void 0!==i)i.i=this.i;return this.v},set:function(i){if(i!==this.v){if(f>100)throw new Error(\"Cycle detected\");this.v=i;this.i++;v++;s++;try{for(var r=this.t;void 0!==r;r=r.x)r.t.N()}finally{t()}}}});function d(i,t){return new u(i,t)}function c(i){for(var t=i.s;void 0!==t;t=t.n)if(t.S.i!==t.i||!t.S.h()||t.S.i!==t.i)return!0;return!1}function a(i){for(var t=i.s;void 0!==t;t=t.n){var r=t.S.n;if(void 0!==r)t.r=r;t.S.n=t;t.i=-1;if(void 0===t.n){i.s=t;break}}}function l(i){var t=i.s,r=void 0;while(void 0!==t){var o=t.p;if(-1===t.i){t.S.U(t);if(void 0!==o)o.n=t.n;if(void 0!==t.n)t.n.p=o}else r=t;t.S.n=t.r;if(void 0!==t.r)t.r=void 0;t=o}i.s=r}function y(i,t){u.call(this,void 0);this.x=i;this.s=void 0;this.g=v-1;this.f=4;this.W=null==t?void 0:t.watched;this.Z=null==t?void 0:t.unwatched;this.name=null==t?void 0:t.name}y.prototype=new u;y.prototype.h=function(){this.f&=-3;if(1&this.f)return!1;if(32==(36&this.f))return!0;this.f&=-5;if(this.g===v)return!0;this.g=v;this.f|=1;if(this.i>0&&!c(this)){this.f&=-2;return!0}var i=o;try{a(this);o=this;var t=this.x();if(16&this.f||this.v!==t||0===this.i){this.v=t;this.f&=-17;this.i++}}catch(i){this.v=i;this.f|=16;this.i++}o=i;l(this);this.f&=-2;return!0};y.prototype.S=function(i){if(void 0===this.t){this.f|=36;for(var t=this.s;void 0!==t;t=t.n)t.S.S(t)}u.prototype.S.call(this,i)};y.prototype.U=function(i){if(void 0!==this.t){u.prototype.U.call(this,i);if(void 0===this.t){this.f&=-33;for(var t=this.s;void 0!==t;t=t.n)t.S.U(t)}}};y.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var i=this.t;void 0!==i;i=i.x)i.t.N()}};Object.defineProperty(y.prototype,\"value\",{get:function(){if(1&this.f)throw new Error(\"Cycle detected\");var i=e(this);this.h();if(void 0!==i)i.i=this.i;if(16&this.f)throw this.v;return this.v}});function w(i,t){return new y(i,t)}function _(i){var r=i.u;i.u=void 0;if(\"function\"==typeof r){s++;var n=o;o=void 0;try{r()}catch(t){i.f&=-2;i.f|=8;b(i);throw t}finally{o=n;t()}}}function b(i){for(var t=i.s;void 0!==t;t=t.n)t.S.U(t);i.x=void 0;i.s=void 0;_(i)}function g(i){if(o!==this)throw new Error(\"Out-of-order effect\");l(this);o=i;this.f&=-2;if(8&this.f)b(this);t()}function p(i,t){this.x=i;this.u=void 0;this.s=void 0;this.o=void 0;this.f=32;this.name=null==t?void 0:t.name}p.prototype.c=function(){var i=this.S();try{if(8&this.f)return;if(void 0===this.x)return;var t=this.x();if(\"function\"==typeof t)this.u=t}finally{i()}};p.prototype.S=function(){if(1&this.f)throw new Error(\"Cycle detected\");this.f|=1;this.f&=-9;_(this);a(this);s++;var i=o;o=this;return g.bind(this,i)};p.prototype.N=function(){if(!(2&this.f)){this.f|=2;this.o=h;h=this}};p.prototype.d=function(){this.f|=8;if(!(1&this.f))b(this)};p.prototype.dispose=function(){this.d()};function E(i,t){var r=new p(i,t);try{r.c()}catch(i){r.d();throw i}var o=r.d.bind(r);o[Symbol.dispose]=o;return o}export{y as Computed,p as Effect,u as Signal,r as batch,w as computed,E as effect,d as signal,n as untracked};//# sourceMappingURL=signals-core.module.js.map\n","import{Component as i,options as n,isValidElement as t,Fragment as r}from\"preact\";import{useMemo as f,useState as o,useRef as e,useEffect as u}from\"preact/hooks\";import{effect as a,Signal as c,computed as v,signal as s,batch as l}from\"@preact/signals-core\";export{Signal,batch,computed,effect,signal,untracked}from\"@preact/signals-core\";var h,d,p,m=\"undefined\"!=typeof window&&!!window.__PREACT_SIGNALS_DEVTOOLS__,_=[],g=[];a(function(){h=this.N})();function b(i,t){n[i]=t.bind(null,n[i]||function(){})}function y(i){if(p)p();p=i&&i.S()}function w(i){var n=this,r=i.data,o=useSignal(r);o.value=r;var e=f(function(){var i=n,r=n.__v;while(r=r.__)if(r.__c){r.__c.__$f|=4;break}var f=v(function(){var i=o.value.value;return 0===i?0:!0===i?\"\":i||\"\"}),e=v(function(){return!Array.isArray(f.value)&&!t(f.value)}),u=a(function(){this.N=M;if(e.value){var n=f.value;if(i.__v&&i.__v.__e&&3===i.__v.__e.nodeType)i.__v.__e.data=n}}),c=n.__$u.d;n.__$u.d=function(){u();c.call(this)};return[e,f]},[]),u=e[0],c=e[1];return u.value?c.peek():c.value}w.displayName=\"ReactiveTextNode\";Object.defineProperties(c.prototype,{constructor:{configurable:!0,value:void 0},type:{configurable:!0,value:w},props:{configurable:!0,get:function(){return{data:this}}},__b:{configurable:!0,value:1}});b(\"__b\",function(i,n){if(\"string\"==typeof n.type){var t,r=n.props;for(var f in r)if(\"children\"!==f){var o=r[f];if(o instanceof c){if(!t)n.__np=t={};t[f]=o;r[f]=o.peek()}}}i(n)});b(\"__r\",function(i,n){if(n.type!==r){y();var t,f=n.__c;if(f){f.__$f&=-2;if(void 0===(t=f.__$u))f.__$u=t=function(i,n){var t;a(function(){t=this},{name:n});t.c=i;return t}(function(){var i;if(m)null==(i=t.y)||i.call(t);f.__$f|=1;f.setState({})},\"function\"==typeof n.type?n.type.displayName||n.type.name:\"\")}d=f;y(t)}i(n)});b(\"__e\",function(i,n,t,r){y();d=void 0;i(n,t,r)});b(\"diffed\",function(i,n){y();d=void 0;var t;if(\"string\"==typeof n.type&&(t=n.__e)){var r=n.__np,f=n.props;if(r){var o=t.U;if(o)for(var e in o){var u=o[e];if(void 0!==u&&!(e in r)){u.d();o[e]=void 0}}else{o={};t.U=o}for(var a in r){var c=o[a],v=r[a];if(void 0===c){c=k(t,a,v,f);o[a]=c}else c.o(v,f)}}}i(n)});function k(i,n,t,r){var f=n in i&&void 0===i.ownerSVGElement,o=s(t);return{o:function(i,n){o.value=i;r=n},d:a(function(){this.N=M;var t=o.value.value;if(r[n]!==t){r[n]=t;if(f)i[n]=t;else if(null!=t&&(!1!==t||\"-\"===n[4]))i.setAttribute(n,t);else i.removeAttribute(n)}})}}b(\"unmount\",function(i,n){if(\"string\"==typeof n.type){var t=n.__e;if(t){var r=t.U;if(r){t.U=void 0;for(var f in r){var o=r[f];if(o)o.d()}}}}else{var e=n.__c;if(e){var u=e.__$u;if(u){e.__$u=void 0;u.d()}}}i(n)});b(\"__h\",function(i,n,t,r){if(r<3||9===r)n.__$f|=2;i(n,t,r)});i.prototype.shouldComponentUpdate=function(i,n){var t=this.__$u,r=t&&void 0!==t.s;for(var f in n)return!0;if(this.__f||\"boolean\"==typeof this.u&&!0===this.u){var o=2&this.__$f;if(!(r||o||4&this.__$f))return!0;if(1&this.__$f)return!0}else{if(!(r||4&this.__$f))return!0;if(3&this.__$f)return!0}for(var e in i)if(\"__source\"!==e&&i[e]!==this.props[e])return!0;for(var u in this.props)if(!(u in i))return!0;return!1};function useSignal(i,n){return o(function(){return s(i,n)})[0]}function useComputed(i,n){var t=e(i);t.current=i;d.__$f|=4;return f(function(){return v(function(){return t.current()},n)},[])}var q=\"undefined\"==typeof requestAnimationFrame?setTimeout:function(i){var n=function(){clearTimeout(t);cancelAnimationFrame(r);i()},t=setTimeout(n,35),r=requestAnimationFrame(n)},A=function(i){queueMicrotask(function(){queueMicrotask(i)})};function T(){l(function(){var i;while(i=_.shift())h.call(i)})}function x(){if(1===_.push(this))(n.requestAnimationFrame||q)(T)}function F(){l(function(){var i;while(i=g.shift())h.call(i)})}function M(){if(1===g.push(this))(n.requestAnimationFrame||A)(F)}function useSignalEffect(i,n){var t=e(i);t.current=i;u(function(){return a(function(){this.N=x;return t.current()},n)},[])}export{useComputed,useSignal,useSignalEffect};//# sourceMappingURL=signals.module.js.map\n","import type { ComponentChildren } from \"preact\";\n\ninterface ButtonProps {\n\tonClick: () => void;\n\tclassName?: string;\n\tdisabled?: boolean;\n\tchildren: ComponentChildren;\n\tvariant?: \"primary\" | \"secondary\";\n\tactive?: boolean;\n}\n\nexport function Button({\n\tonClick,\n\tclassName = \"\",\n\tdisabled = false,\n\tchildren,\n\tvariant = \"secondary\",\n\tactive = false,\n}: ButtonProps) {\n\tconst baseClass = \"btn\";\n\tconst variantClass = variant === \"primary\" ? \"btn-primary\" : \"btn-secondary\";\n\tconst activeClass = active ? \"active\" : \"\";\n\tconst combinedClassName =\n\t\t`${baseClass} ${variantClass} ${activeClass} ${className}`.trim();\n\n\treturn (\n\t\t<button onClick={onClick} className={combinedClassName} disabled={disabled}>\n\t\t\t{children}\n\t\t</button>\n\t);\n}\n","import { Button } from \"./Button\";\n\ninterface EmptyStateProps {\n\tonRefresh: () => void;\n\ttitle?: string;\n\tdescription?: string;\n\tbuttonText?: string;\n}\n\nexport function EmptyState({\n\tonRefresh,\n\ttitle = \"No Signals Detected\",\n\tdescription = \"Make sure your application is using @preact/signals-debug package.\",\n\tbuttonText = \"Refresh Detection\",\n}: EmptyStateProps) {\n\treturn (\n\t\t<div className=\"empty-state\">\n\t\t\t<div className=\"empty-state-content\">\n\t\t\t\t<h2>{title}</h2>\n\t\t\t\t<p>{description}</p>\n\t\t\t\t<div className=\"empty-state-actions\">\n\t\t\t\t\t<Button onClick={onRefresh} variant=\"primary\">\n\t\t\t\t\t\t{buttonText}\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n","import type { ConnectionStatusType } from \"@preact/signals-devtools-adapter\";\n\ninterface StatusIndicatorProps {\n\tstatus: ConnectionStatusType;\n\tmessage: string;\n\tshowIndicator?: boolean;\n\tclassName?: string;\n}\n\nexport function StatusIndicator({\n\tstatus,\n\tmessage,\n\tshowIndicator = true,\n\tclassName = \"\",\n}: StatusIndicatorProps) {\n\treturn (\n\t\t<div className={`connection-status ${status} ${className}`}>\n\t\t\t{showIndicator && <span className={`status-indicator ${status}`}></span>}\n\t\t\t<span className=\"status-text\">{message}</span>\n\t\t</div>\n\t);\n}\n","import { signal, computed } from \"@preact/signals\";\nimport type {\n\tDevToolsAdapter,\n\tConnectionStatus,\n\tConnectionStatusType,\n\tSettings,\n\tSignalDisposed,\n} from \"@preact/signals-devtools-adapter\";\n\nexport interface DevToolsContext {\n\tadapter: DevToolsAdapter;\n\tconnectionStore: ReturnType<typeof createConnectionStore>;\n\tupdatesStore: ReturnType<typeof createUpdatesStore>;\n\tsettingsStore: ReturnType<typeof createSettingsStore>;\n}\n\nlet currentContext: DevToolsContext | null = null;\n\nexport function getContext(): DevToolsContext {\n\tif (!currentContext) {\n\t\tthrow new Error(\n\t\t\t\"DevTools context not initialized. Call initDevTools() first.\"\n\t\t);\n\t}\n\treturn currentContext;\n}\n\nexport function createConnectionStore(adapter: DevToolsAdapter) {\n\tconst status = signal<ConnectionStatusType>(\"connecting\");\n\tconst message = signal<string>(\"Connecting...\");\n\tconst isConnected = signal(false);\n\n\t// Listen to adapter events\n\tadapter.on(\n\t\t\"connectionStatusChanged\",\n\t\t(connectionStatus: ConnectionStatus) => {\n\t\t\tstatus.value = connectionStatus.status;\n\t\t\tmessage.value = connectionStatus.message;\n\t\t}\n\t);\n\n\tadapter.on(\"signalsAvailable\", (available: boolean) => {\n\t\tisConnected.value = available;\n\t});\n\n\tconst refreshConnection = () => {\n\t\tstatus.value = \"connecting\";\n\t\tmessage.value = \"Connecting...\";\n\t\tadapter.requestState();\n\t};\n\n\treturn {\n\t\tget status() {\n\t\t\treturn status.value;\n\t\t},\n\t\tget message() {\n\t\t\treturn message.value;\n\t\t},\n\t\tget isConnected() {\n\t\t\treturn isConnected.value;\n\t\t},\n\t\trefreshConnection,\n\t};\n}\n\nexport interface SignalUpdate {\n\ttype: \"update\" | \"effect\";\n\tsignalType: \"signal\" | \"computed\" | \"effect\";\n\tsignalName: string;\n\tsignalId?: string;\n\tprevValue?: any;\n\tnewValue?: any;\n\ttimestamp?: number;\n\treceivedAt: number;\n\tdepth?: number;\n\tsubscribedTo?: string;\n}\n\nexport type Divider = { type: \"divider\" };\n\nexport interface UpdateTreeNodeBase {\n\tid: string;\n\tupdate: SignalUpdate;\n\tchildren: UpdateTreeNode[];\n\tdepth: number;\n\thasChildren: boolean;\n}\n\nexport interface UpdateTreeNodeSingle extends UpdateTreeNodeBase {\n\ttype: \"single\";\n}\n\nexport interface UpdateTreeNodeGroup extends UpdateTreeNodeBase {\n\ttype: \"group\";\n\tcount: number;\n\tfirstUpdate: SignalUpdate;\n\tfirstChildren: UpdateTreeNode[];\n}\n\nexport type UpdateTreeNode = UpdateTreeNodeGroup | UpdateTreeNodeSingle;\n\nconst nodesAreEqual = (a: UpdateTreeNode, b: UpdateTreeNode): boolean => {\n\treturn (\n\t\ta.update.signalId === b.update.signalId &&\n\t\ta.children.length === b.children.length &&\n\t\ta.children.every((child, index) => nodesAreEqual(child, b.children[index]))\n\t);\n};\n\nconst collapseTree = (nodes: UpdateTreeNodeSingle[]): UpdateTreeNode[] => {\n\tconst tree: UpdateTreeNode[] = [];\n\tlet lastNode: UpdateTreeNode | undefined;\n\n\tfor (const node of nodes) {\n\t\tif (lastNode && nodesAreEqual(lastNode, node)) {\n\t\t\tif (lastNode.type !== \"group\") {\n\t\t\t\ttree.pop();\n\t\t\t\tlastNode = {\n\t\t\t\t\t...lastNode,\n\t\t\t\t\ttype: \"group\",\n\t\t\t\t\tcount: 2,\n\t\t\t\t\tfirstUpdate: node.update,\n\t\t\t\t\tfirstChildren: node.children,\n\t\t\t\t};\n\t\t\t\ttree.push(lastNode);\n\t\t\t} else {\n\t\t\t\tlastNode.count++;\n\t\t\t\tlastNode.firstUpdate = node.update;\n\t\t\t\tlastNode.firstChildren = node.children;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\ttree.push(node);\n\t\tlastNode = node;\n\t}\n\n\treturn tree;\n};\n\nexport function createUpdatesStore(\n\tadapter: DevToolsAdapter,\n\tsettingsStore: ReturnType<typeof createSettingsStore>\n) {\n\tconst updates = signal<(SignalUpdate | Divider)[]>([]);\n\tconst isPaused = signal<boolean>(false);\n\tconst disposedSignalIds = signal<Set<string>>(new Set());\n\n\tconst addUpdate = (\n\t\tupdate: SignalUpdate | Divider | Array<SignalUpdate | Divider>\n\t) => {\n\t\tif (Array.isArray(update)) {\n\t\t\tupdate.forEach(item => {\n\t\t\t\tif (item.type !== \"divider\") item.receivedAt = Date.now();\n\t\t\t});\n\t\t} else if (update.type === \"update\") {\n\t\t\tupdate.receivedAt = Date.now();\n\t\t}\n\t\tupdates.value = [\n\t\t\t...updates.value,\n\t\t\t...(Array.isArray(update) ? update : [update]),\n\t\t];\n\t};\n\n\tconst addDisposal = (disposal: SignalDisposed | SignalDisposed[]) => {\n\t\tconst disposals = Array.isArray(disposal) ? disposal : [disposal];\n\t\tconst newDisposed = new Set(disposedSignalIds.value);\n\t\tfor (const d of disposals) {\n\t\t\tif (d.signalId) {\n\t\t\t\tnewDisposed.add(d.signalId);\n\t\t\t}\n\t\t}\n\t\tdisposedSignalIds.value = newDisposed;\n\t};\n\n\tconst hasUpdates = computed(() => updates.value.length > 0);\n\n\tconst signalCounts = computed(() => {\n\t\tconst counts = new Map<string, number>();\n\t\tupdates.value.forEach(update => {\n\t\t\tif (update.type === \"divider\") return;\n\t\t\tconst signalName = update.signalName || \"Unknown\";\n\t\t\tcounts.set(signalName, (counts.get(signalName) || 0) + 1);\n\t\t});\n\t\treturn counts;\n\t});\n\n\tconst updateTree = computed(() => {\n\t\tconst buildTree = (\n\t\t\tupdates: (SignalUpdate | Divider)[]\n\t\t): UpdateTreeNodeSingle[] => {\n\t\t\tconst tree: UpdateTreeNodeSingle[] = [];\n\t\t\tconst stack: UpdateTreeNodeSingle[] = [];\n\n\t\t\tconst recentUpdates = updates.slice(-100).reverse();\n\n\t\t\tfor (let i = 0; i < recentUpdates.length; i++) {\n\t\t\t\tconst item = recentUpdates[i];\n\n\t\t\t\tif (item.type === \"divider\") {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst update = item as SignalUpdate;\n\t\t\t\tconst depth = update.depth || 0;\n\n\t\t\t\tconst nodeId = `${update.signalName}-${update.receivedAt}-${i}`;\n\n\t\t\t\tconst node: UpdateTreeNodeSingle = {\n\t\t\t\t\ttype: \"single\",\n\t\t\t\t\tid: nodeId,\n\t\t\t\t\tupdate,\n\t\t\t\t\tchildren: [],\n\t\t\t\t\tdepth,\n\t\t\t\t\thasChildren: false,\n\t\t\t\t};\n\n\t\t\t\twhile (stack.length > 0 && stack[stack.length - 1].depth >= depth) {\n\t\t\t\t\tstack.pop();\n\t\t\t\t}\n\n\t\t\t\tif (stack.length === 0) {\n\t\t\t\t\ttree.push(node);\n\t\t\t\t} else {\n\t\t\t\t\tconst parent = stack[stack.length - 1];\n\t\t\t\t\tparent.children.push(node);\n\t\t\t\t\tparent.hasChildren = true;\n\t\t\t\t}\n\n\t\t\t\tstack.push(node);\n\t\t\t}\n\n\t\t\treturn tree;\n\t\t};\n\n\t\treturn buildTree(updates.value);\n\t});\n\n\tconst clearUpdates = () => {\n\t\tupdates.value = [];\n\t\tdisposedSignalIds.value = new Set();\n\t};\n\n\t// Listen to adapter events\n\tadapter.on(\"signalUpdate\", (signalUpdates: SignalUpdate[]) => {\n\t\tif (isPaused.value) return;\n\n\t\tconst updatesArray: Array<SignalUpdate | Divider> = [\n\t\t\t...signalUpdates,\n\t\t].reverse();\n\t\tupdatesArray.push({ type: \"divider\" });\n\n\t\taddUpdate(updatesArray);\n\t});\n\n\t// Listen to disposal events\n\tadapter.on(\"signalDisposed\", (disposals: SignalDisposed[]) => {\n\t\tif (isPaused.value) return;\n\t\taddDisposal(disposals);\n\t});\n\n\tconst collapsedUpdateTree = computed(() => {\n\t\tconst updateTreeValue = updateTree.value;\n\t\tif (settingsStore.settings.grouped) {\n\t\t\treturn collapseTree(updateTreeValue);\n\t\t}\n\t\treturn updateTreeValue;\n\t});\n\n\treturn {\n\t\tupdates,\n\t\tupdateTree,\n\t\tcollapsedUpdateTree,\n\t\ttotalUpdates: computed(() => Object.keys(updateTree.value).length),\n\t\tsignalCounts,\n\t\tdisposedSignalIds,\n\t\taddUpdate,\n\t\tclearUpdates,\n\t\thasUpdates,\n\t\tisPaused,\n\t};\n}\n\nexport function createSettingsStore(adapter: DevToolsAdapter) {\n\tconst settings = signal<Settings>({\n\t\tenabled: true,\n\t\tgrouped: true,\n\t\tmaxUpdatesPerSecond: 60,\n\t\tfilterPatterns: [],\n\t});\n\n\tconst showSettings = signal<boolean>(false);\n\tconst showDisposedSignals = signal<boolean>(false);\n\n\tconst applySettings = (newSettings: Settings) => {\n\t\tsettings.value = newSettings;\n\t\tadapter.sendConfig(newSettings);\n\t\tshowSettings.value = false;\n\t};\n\n\tconst toggleSettings = () => {\n\t\tshowSettings.value = !showSettings.value;\n\t};\n\n\tconst hideSettings = () => {\n\t\tshowSettings.value = false;\n\t};\n\n\tconst toggleShowDisposedSignals = () => {\n\t\tshowDisposedSignals.value = !showDisposedSignals.value;\n\t};\n\n\t// Listen to adapter events\n\tadapter.on(\"configReceived\", (config: { settings?: Settings }) => {\n\t\tif (config.settings) {\n\t\t\tsettings.value = config.settings;\n\t\t}\n\t});\n\n\treturn {\n\t\tget settings() {\n\t\t\treturn settings.value;\n\t\t},\n\t\tget showSettings() {\n\t\t\treturn showSettings.value;\n\t\t},\n\t\tget showDisposedSignals() {\n\t\t\treturn showDisposedSignals.value;\n\t\t},\n\t\tset settings(newSettings: Settings) {\n\t\t\tsettings.value = newSettings;\n\t\t},\n\t\tapplySettings,\n\t\ttoggleSettings,\n\t\thideSettings,\n\t\ttoggleShowDisposedSignals,\n\t};\n}\n\nexport function initDevTools(adapter: DevToolsAdapter): DevToolsContext {\n\tconst settingsStore = createSettingsStore(adapter);\n\tconst updatesStore = createUpdatesStore(adapter, settingsStore);\n\tconst connectionStore = createConnectionStore(adapter);\n\n\tcurrentContext = {\n\t\tadapter,\n\t\tconnectionStore,\n\t\tupdatesStore,\n\t\tsettingsStore,\n\t};\n\n\treturn currentContext;\n}\n\nexport function destroyDevTools(): void {\n\tif (currentContext) {\n\t\tcurrentContext.adapter.disconnect();\n\t\tcurrentContext = null;\n\t}\n}\n","import { StatusIndicator } from \"./StatusIndicator\";\nimport { Button } from \"./Button\";\nimport { getContext } from \"../context\";\n\nexport function Header() {\n\tconst { connectionStore, updatesStore, settingsStore } = getContext();\n\n\tconst onToggleSettings = settingsStore.toggleSettings;\n\tconst onTogglePause = () => {\n\t\tupdatesStore.isPaused.value = !updatesStore.isPaused.value;\n\t};\n\n\tconst onClear = () => {\n\t\tupdatesStore.clearUpdates();\n\t};\n\n\treturn (\n\t\t<header className=\"header\">\n\t\t\t<div className=\"header-title\">\n\t\t\t\t<h1>Signals</h1>\n\t\t\t\t<StatusIndicator\n\t\t\t\t\tstatus={connectionStore.status}\n\t\t\t\t\tmessage={connectionStore.message}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div className=\"header-controls\">\n\t\t\t\t{onClear && <Button onClick={onClear}>Clear</Button>}\n\t\t\t\t{onTogglePause && (\n\t\t\t\t\t<Button onClick={onTogglePause} active={updatesStore.isPaused.value}>\n\t\t\t\t\t\t{updatesStore.isPaused.value ? \"Resume\" : \"Pause\"}\n\t\t\t\t\t</Button>\n\t\t\t\t)}\n\t\t\t\t{onToggleSettings && (\n\t\t\t\t\t<Button onClick={onToggleSettings}>Settings</Button>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</header>\n\t);\n}\n","import { useSignal, useSignalEffect } from \"@preact/signals\";\nimport { Button } from \"./Button\";\nimport type { Settings } from \"@preact/signals-devtools-adapter\";\nimport { getContext } from \"../context\";\n\nexport function SettingsPanel() {\n\tconst { settingsStore } = getContext();\n\n\tconst onCancel = settingsStore.hideSettings;\n\tconst onApply = settingsStore.applySettings;\n\tconst settings = settingsStore.settings;\n\tconst isVisible = settingsStore.showSettings;\n\n\tconst localSettings = useSignal<Settings>(settings);\n\n\tuseSignalEffect(() => {\n\t\tlocalSettings.value = settingsStore.settings;\n\t});\n\n\tconst handleApply = () => {\n\t\tonApply(localSettings.value);\n\t};\n\n\tif (!isVisible) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className=\"settings-panel\">\n\t\t\t<div className=\"settings-content\">\n\t\t\t\t<h3>Debug Configuration</h3>\n\n\t\t\t\t<div className=\"setting-group\">\n\t\t\t\t\t<label>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\tchecked={localSettings.value.enabled}\n\t\t\t\t\t\t\tonChange={e =>\n\t\t\t\t\t\t\t\t(localSettings.value = {\n\t\t\t\t\t\t\t\t\t...localSettings.value,\n\t\t\t\t\t\t\t\t\tenabled: (e.target as HTMLInputElement).checked,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\tEnable debug updates\n\t\t\t\t\t</label>\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"setting-group\">\n\t\t\t\t\t<label>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\tchecked={localSettings.value.grouped}\n\t\t\t\t\t\t\tonChange={e =>\n\t\t\t\t\t\t\t\t(localSettings.value = {\n\t\t\t\t\t\t\t\t\t...localSettings.value,\n\t\t\t\t\t\t\t\t\tgrouped: (e.target as HTMLInputElement).checked,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\tGroup related updates\n\t\t\t\t\t</label>\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"setting-group\">\n\t\t\t\t\t<label htmlFor=\"maxUpdatesInput\">Max updates per second:</label>\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\tid=\"maxUpdatesInput\"\n\t\t\t\t\t\tvalue={localSettings.value.maxUpdatesPerSecond}\n\t\t\t\t\t\tmin=\"1\"\n\t\t\t\t\t\tmax=\"1000\"\n\t\t\t\t\t\tonChange={e =>\n\t\t\t\t\t\t\t(localSettings.value = {\n\t\t\t\t\t\t\t\t...localSettings.value,\n\t\t\t\t\t\t\t\tmaxUpdatesPerSecond:\n\t\t\t\t\t\t\t\t\tparseInt((e.target as HTMLInputElement).value) || 60,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"setting-group\">\n\t\t\t\t\t<label htmlFor=\"filterPatternsInput\">\n\t\t\t\t\t\tFilter patterns (one per line):\n\t\t\t\t\t</label>\n\t\t\t\t\t<textarea\n\t\t\t\t\t\tid=\"filterPatternsInput\"\n\t\t\t\t\t\tplaceholder=\"user.* .*State$ global\"\n\t\t\t\t\t\tvalue={localSettings.value.filterPatterns.join(\"\\n\")}\n\t\t\t\t\t\tonChange={e =>\n\t\t\t\t\t\t\t(localSettings.value = {\n\t\t\t\t\t\t\t\t...localSettings.value,\n\t\t\t\t\t\t\t\tfilterPatterns: (e.target as HTMLTextAreaElement).value\n\t\t\t\t\t\t\t\t\t.split(\"\\n\")\n\t\t\t\t\t\t\t\t\t.map(pattern => pattern.trim())\n\t\t\t\t\t\t\t\t\t.filter(pattern => pattern.length > 0),\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\n\t\t\t\t<h3>Graph Settings</h3>\n\n\t\t\t\t<div className=\"setting-group\">\n\t\t\t\t\t<label>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\tchecked={settingsStore.showDisposedSignals}\n\t\t\t\t\t\t\tonChange={() => settingsStore.toggleShowDisposedSignals()}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\tShow disposed signals in graph\n\t\t\t\t\t</label>\n\t\t\t\t\t<p className=\"setting-description\">\n\t\t\t\t\t\tWhen enabled, signals and effects that have been disposed will still\n\t\t\t\t\t\tbe shown in the graph view.\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\n\t\t\t\t<div className=\"settings-actions\">\n\t\t\t\t\t<Button onClick={handleApply} variant=\"primary\">\n\t\t\t\t\t\tApply\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button onClick={onCancel}>Cancel</Button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n","import { useRef, useEffect } from \"preact/hooks\";\nimport { useComputed, useSignal } from \"@preact/signals\";\nimport type { GraphData, GraphLink, GraphNode } from \"../types\";\nimport type { SignalUpdate } from \"../context\";\nimport { getContext } from \"../context\";\n\nconst copyToClipboard = (text: string) => {\n\tconst copyEl = document.createElement(\"textarea\");\n\ttry {\n\t\tcopyEl.value = text;\n\t\tdocument.body.append(copyEl);\n\t\tcopyEl.select();\n\t\tdocument.execCommand(\"copy\");\n\t} finally {\n\t\tcopyEl.remove();\n\t}\n};\n\nexport function GraphVisualization() {\n\tconst { updatesStore, settingsStore } = getContext();\n\tconst updates = updatesStore.updates;\n\tconst disposedSignalIds = updatesStore.disposedSignalIds;\n\tconst svgRef = useRef<SVGSVGElement>(null);\n\tconst containerRef = useRef<HTMLDivElement>(null);\n\tconst exportMenuRef = useRef<HTMLDivElement>(null);\n\n\t// Pan and zoom state using signals\n\tconst panOffset = useSignal({ x: 0, y: 0 });\n\tconst zoom = useSignal(1);\n\tconst isPanning = useSignal(false);\n\tconst startPan = useSignal({ x: 0, y: 0 });\n\tconst showExportMenu = useSignal(false);\n\tconst toastText = useSignal<string>();\n\tconst hoveredNode = useSignal<GraphNode | null>(null);\n\tconst tooltipPos = useSignal({ x: 0, y: 0 });\n\n\tuseEffect(() => {\n\t\tconst handleClickOutside = (e: MouseEvent) => {\n\t\t\tif (\n\t\t\t\tshowExportMenu.value &&\n\t\t\t\texportMenuRef.current &&\n\t\t\t\t!exportMenuRef.current.contains(e.target as Node)\n\t\t\t) {\n\t\t\t\tshowExportMenu.value = false;\n\t\t\t}\n\t\t};\n\n\t\tdocument.addEventListener(\"mousedown\", handleClickOutside);\n\t\treturn () => {\n\t\t\tdocument.removeEventListener(\"mousedown\", handleClickOutside);\n\t\t};\n\t}, []);\n\n\t// Build graph data from updates signal using a computed\n\tconst graphData = useComputed<GraphData>(() => {\n\t\tconst rawUpdates = updates.value;\n\t\tconst disposed = disposedSignalIds.value;\n\t\tconst showDisposed = settingsStore.showDisposedSignals;\n\n\t\tif (!rawUpdates || rawUpdates.length === 0) return { nodes: [], links: [] };\n\n\t\tconst nodes = new Map<string, GraphNode>();\n\t\tconst links = new Map<string, GraphLink>();\n\n\t\t// Process updates to build graph structure\n\t\tconst signalUpdates = rawUpdates.filter(\n\t\t\tupdate => update.type !== \"divider\"\n\t\t) as SignalUpdate[];\n\n\t\tfor (const update of signalUpdates) {\n\t\t\tif (!update.signalId) continue;\n\n\t\t\t// Skip disposed signals unless showDisposed is enabled\n\t\t\tif (!showDisposed && disposed.has(update.signalId)) continue;\n\n\t\t\tconst type: \"signal\" | \"computed\" | \"effect\" = update.signalType;\n\t\t\tconst currentDepth = update.depth || 0;\n\n\t\t\tif (!nodes.has(update.signalId)) {\n\t\t\t\tnodes.set(update.signalId, {\n\t\t\t\t\tid: update.signalId,\n\t\t\t\t\tname: update.signalName,\n\t\t\t\t\ttype,\n\t\t\t\t\tx: 0,\n\t\t\t\t\ty: 0,\n\t\t\t\t\tdepth: currentDepth,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (update.subscribedTo) {\n\t\t\t\t// Also skip links to/from disposed signals\n\t\t\t\tconst sourceDisposed =\n\t\t\t\t\t!showDisposed && disposed.has(update.subscribedTo);\n\t\t\t\tif (sourceDisposed) continue;\n\n\t\t\t\tconst linkKey = `${update.subscribedTo}->${update.signalId}`;\n\t\t\t\tif (!links.has(linkKey)) {\n\t\t\t\t\tlinks.set(linkKey, {\n\t\t\t\t\t\tsource: update.subscribedTo,\n\t\t\t\t\t\ttarget: update.signalId,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Simple depth-based layout\n\t\tconst allNodes = Array.from(nodes.values());\n\t\tconst nodeSpacing = 120;\n\t\tconst depthSpacing = 250;\n\t\tconst startX = 100;\n\t\tconst startY = 80;\n\n\t\t// Group nodes by depth\n\t\tconst nodesByDepth = new Map<number, GraphNode[]>();\n\t\tallNodes.forEach(node => {\n\t\t\tif (!nodesByDepth.has(node.depth)) {\n\t\t\t\tnodesByDepth.set(node.depth, []);\n\t\t\t}\n\t\t\tnodesByDepth.get(node.depth)!.push(node);\n\t\t});\n\n\t\t// Layout nodes by depth, centering each depth level vertically\n\t\tconst maxDepth = Math.max(...allNodes.map(n => n.depth));\n\t\tnodesByDepth.forEach((depthNodes, depth) => {\n\t\t\tconst depthHeight = (depthNodes.length - 1) * nodeSpacing;\n\t\t\tconst depthStartY = startY + maxDepth * 100 - depthHeight / 2;\n\n\t\t\tdepthNodes.forEach((node, index) => {\n\t\t\t\tnode.x = startX + depth * depthSpacing;\n\t\t\t\tnode.y = depthStartY + index * nodeSpacing;\n\t\t\t});\n\t\t});\n\n\t\treturn {\n\t\t\tnodes: allNodes,\n\t\t\tlinks: Array.from(links.values()),\n\t\t};\n\t});\n\n\t// Mouse event handlers for panning\n\tconst handleMouseDown = (e: MouseEvent) => {\n\t\tif (e.button !== 0) return;\n\t\tisPanning.value = true;\n\t\tstartPan.value = {\n\t\t\tx: e.clientX - panOffset.value.x,\n\t\t\ty: e.clientY - panOffset.value.y,\n\t\t};\n\t};\n\n\tconst handleMouseMove = (e: MouseEvent) => {\n\t\tif (!isPanning.value) return;\n\t\tpanOffset.value = {\n\t\t\tx: e.clientX - startPan.value.x,\n\t\t\ty: e.clientY - startPan.value.y,\n\t\t};\n\t};\n\n\tconst handleMouseUp = () => {\n\t\tisPanning.value = false;\n\t};\n\n\tconst handleWheel = (e: WheelEvent) => {\n\t\te.preventDefault();\n\n\t\tconst container = containerRef.current;\n\t\tif (!container) return;\n\n\t\tconst rect = container.getBoundingClientRect();\n\t\tconst mouseX = e.clientX - rect.left;\n\t\tconst mouseY = e.clientY - rect.top;\n\n\t\t// Smoother zoom: smaller delta for less aggressive scrolling\n\t\tconst delta = e.deltaY > 0 ? 0.96 : 1.04;\n\t\tconst newZoom = Math.min(Math.max(0.1, zoom.value * delta), 5);\n\n\t\tconst zoomRatio = newZoom / zoom.value;\n\t\tpanOffset.value = {\n\t\t\tx: mouseX - (mouseX - panOffset.value.x) * zoomRatio,\n\t\t\ty: mouseY - (mouseY - panOffset.value.y) * zoomRatio,\n\t\t};\n\n\t\tzoom.value = newZoom;\n\t};\n\n\tconst resetView = () => {\n\t\tpanOffset.value = { x: 0, y: 0 };\n\t\tzoom.value = 1;\n\t};\n\n\tconst toggleExportMenu = () => {\n\t\tshowExportMenu.value = !showExportMenu.value;\n\t};\n\n\tconst mermaidIdPattern = /[^a-zA-Z0-9]/g;\n\tconst computeMermaidId = (id: string) => id.replace(mermaidIdPattern, \"_\");\n\n\t// Calculate node radius based on name length\n\tconst getNodeRadius = (node: GraphNode) => {\n\t\tconst baseRadius = 30;\n\t\tconst charWidth = 6.5; // Approximate width per character\n\t\tconst padding = 16;\n\t\tconst textWidth = node.name.length * charWidth + padding;\n\t\treturn Math.max(baseRadius, Math.min(textWidth / 2, 70));\n\t};\n\n\t// Handle node hover for tooltip\n\tconst handleNodeMouseEnter = (node: GraphNode, e: MouseEvent) => {\n\t\thoveredNode.value = node;\n\t\tconst container = containerRef.current;\n\t\tif (container) {\n\t\t\tconst rect = container.getBoundingClientRect();\n\t\t\ttooltipPos.value = {\n\t\t\t\tx: e.clientX - rect.left,\n\t\t\t\ty: e.clientY - rect.top,\n\t\t\t};\n\t\t}\n\t};\n\n\tconst handleNodeMouseMove = (e: MouseEvent) => {\n\t\tconst container = containerRef.current;\n\t\tif (container && hoveredNode.value) {\n\t\t\tconst rect = container.getBoundingClientRect();\n\t\t\ttooltipPos.value = {\n\t\t\t\tx: e.clientX - rect.left,\n\t\t\t\ty: e.clientY - rect.top,\n\t\t\t};\n\t\t}\n\t};\n\n\tconst handleNodeMouseLeave = () => {\n\t\thoveredNode.value = null;\n\t};\n\n\tconst showToast = (text: string) => {\n\t\ttoastText.value = text;\n\t\tsetTimeout(() => {\n\t\t\ttoastText.value = undefined;\n\t\t}, 2000);\n\t};\n\n\tconst handleExportMermaid = async () => {\n\t\tshowExportMenu.value = false;\n\n\t\tconst lines: string[] = [\"graph LR\"];\n\n\t\tgraphData.value.nodes.forEach(node => {\n\t\t\tconst id = computeMermaidId(node.id);\n\t\t\tconst name = node.name;\n\n\t\t\tswitch (node.type) {\n\t\t\t\tcase \"signal\":\n\t\t\t\t\tlines.push(` ${id}((${name}))`);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"computed\":\n\t\t\t\t\tlines.push(` ${id}(${name})`);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"effect\":\n\t\t\t\t\tlines.push(` ${id}([${name}])`);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\n\t\tfor (const link of graphData.value.links) {\n\t\t\tconst sourceId = computeMermaidId(link.source);\n\t\t\tconst targetId = computeMermaidId(link.target);\n\t\t\tlines.push(` ${sourceId} --> ${targetId}`);\n\t\t}\n\n\t\tcopyToClipboard(lines.join(\"\\n\"));\n\t\tshowToast(\"Copied to clipboard!\");\n\t};\n\n\tconst handleExportJSON = async () => {\n\t\tshowExportMenu.value = false;\n\t\tconst value = JSON.stringify(graphData.value, null, 2);\n\t\tcopyToClipboard(value);\n\t\tshowToast(\"Copied to clipboard!\");\n\t};\n\n\tif (graphData.value.nodes.length === 0) {\n\t\treturn (\n\t\t\t<div className=\"graph-empty\">\n\t\t\t\t<div>\n\t\t\t\t\t<h3>No Signal Dependencies</h3>\n\t\t\t\t\t<p>\n\t\t\t\t\t\tCreate some signals with dependencies to see the graph\n\t\t\t\t\t\tvisualization.\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst svgWidth = Math.max(800, ...graphData.value.nodes.map(n => n.x + 100));\n\tconst svgHeight = Math.max(600, ...graphData.value.nodes.map(n => n.y + 100));\n\n\treturn (\n\t\t<div className=\"graph-container\">\n\t\t\t<div\n\t\t\t\tref={containerRef}\n\t\t\t\tclassName=\"graph-content\"\n\t\t\t\tonMouseDown={handleMouseDown}\n\t\t\t\tonMouseMove={handleMouseMove}\n\t\t\t\tonMouseUp={handleMouseUp}\n\t\t\t\tonMouseLeave={handleMouseUp}\n\t\t\t\tonWheel={handleWheel}\n\t\t\t\tstyle={{ cursor: isPanning.value ? \"grabbing\" : \"grab\" }}\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\tref={svgRef}\n\t\t\t\t\tclassName=\"graph-svg\"\n\t\t\t\t\twidth={svgWidth}\n\t\t\t\t\theight={svgHeight}\n\t\t\t\t\tviewBox={`0 0 ${svgWidth} ${svgHeight}`}\n\t\t\t\t>\n\t\t\t\t\t<defs>\n\t\t\t\t\t\t<marker\n\t\t\t\t\t\t\tid=\"arrowhead\"\n\t\t\t\t\t\t\tmarkerWidth=\"8\"\n\t\t\t\t\t\t\tmarkerHeight=\"6\"\n\t\t\t\t\t\t\trefX=\"7\"\n\t\t\t\t\t\t\trefY=\"3\"\n\t\t\t\t\t\t\torient=\"auto\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<polygon points=\"0 0, 8 3, 0 6\" fill=\"#94a3b8\" />\n\t\t\t\t\t\t</marker>\n\t\t\t\t\t</defs>\n\n\t\t\t\t\t<g\n\t\t\t\t\t\ttransform={`translate(${panOffset.value.x}, ${panOffset.value.y}) scale(${zoom.value})`}\n\t\t\t\t\t>\n\t\t\t\t\t\t<g className=\"links\">\n\t\t\t\t\t\t\t{graphData.value.links.map((link, index) => {\n\t\t\t\t\t\t\t\tconst sourceNode = graphData.value.nodes.find(\n\t\t\t\t\t\t\t\t\tn => n.id === link.source\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tconst targetNode = graphData.value.nodes.find(\n\t\t\t\t\t\t\t\t\tn => n.id === link.target\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\tif (!sourceNode || !targetNode) return null;\n\n\t\t\t\t\t\t\t\tconst sourceRadius = getNodeRadius(sourceNode);\n\t\t\t\t\t\t\t\tconst targetRadius = getNodeRadius(targetNode);\n\t\t\t\t\t\t\t\tconst sourceX = sourceNode.x + sourceRadius;\n\t\t\t\t\t\t\t\tconst sourceY = sourceNode.y;\n\t\t\t\t\t\t\t\tconst targetX = targetNode.x - targetRadius - 8; // Extra space for arrow\n\t\t\t\t\t\t\t\tconst targetY = targetNode.y;\n\n\t\t\t\t\t\t\t\tconst midX = sourceX + (targetX - sourceX) * 0.5;\n\t\t\t\t\t\t\t\tconst pathData = `M ${sourceX} ${sourceY} C ${midX} ${sourceY}, ${midX} ${targetY}, ${targetX} ${targetY}`;\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<path\n\t\t\t\t\t\t\t\t\t\tkey={`link-${index}`}\n\t\t\t\t\t\t\t\t\t\tclassName=\"graph-link\"\n\t\t\t\t\t\t\t\t\t\td={pathData}\n\t\t\t\t\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\t\t\t\t\tmarkerEnd=\"url(#arrowhead)\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</g>\n\n\t\t\t\t\t\t<g className=\"nodes\">\n\t\t\t\t\t\t\t{graphData.value.nodes.map(node => {\n\t\t\t\t\t\t\t\tconst radius = getNodeRadius(node);\n\t\t\t\t\t\t\t\t// Calculate max chars based on radius\n\t\t\t\t\t\t\t\tconst maxChars = Math.floor((radius * 2 - 16) / 6.5);\n\t\t\t\t\t\t\t\tconst displayName =\n\t\t\t\t\t\t\t\t\tnode.name.length > maxChars\n\t\t\t\t\t\t\t\t\t\t? node.name.slice(0, maxChars - 1) + \"…\"\n\t\t\t\t\t\t\t\t\t\t: node.name;\n\t\t\t\t\t\t\t\tconst isHovered = hoveredNode.value?.id === node.id;\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<g\n\t\t\t\t\t\t\t\t\t\tkey={node.id}\n\t\t\t\t\t\t\t\t\t\tclassName={`graph-node-group ${isHovered ? \"hovered\" : \"\"}`}\n\t\t\t\t\t\t\t\t\t\tonMouseEnter={(e: MouseEvent) =>\n\t\t\t\t\t\t\t\t\t\t\thandleNodeMouseEnter(node, e)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonMouseMove={handleNodeMouseMove}\n\t\t\t\t\t\t\t\t\t\tonMouseLeave={handleNodeMouseLeave}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<circle\n\t\t\t\t\t\t\t\t\t\t\tclassName={`graph-node ${node.type}`}\n\t\t\t\t\t\t\t\t\t\t\tcx={node.x}\n\t\t\t\t\t\t\t\t\t\t\tcy={node.y}\n\t\t\t\t\t\t\t\t\t\t\tr={radius}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<text\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"graph-text\"\n\t\t\t\t\t\t\t\t\t\t\tx={node.x}\n\t\t\t\t\t\t\t\t\t\t\ty={node.y}\n\t\t\t\t\t\t\t\t\t\t\ttextAnchor=\"middle\"\n\t\t\t\t\t\t\t\t\t\t\tdominantBaseline=\"central\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{displayName}\n\t\t\t\t\t\t\t\t\t\t</text>\n\t\t\t\t\t\t\t\t\t</g>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</g>\n\t\t\t\t\t</g>\n\t\t\t\t</svg>\n\n\t\t\t\t<div className=\"graph-controls\">\n\t\t\t\t\t<button\n\t\t\t\t\t\tclassName=\"graph-reset-button\"\n\t\t\t\t\t\tonClick={resetView}\n\t\t\t\t\t\ttitle=\"Reset view\"\n\t\t\t\t\t>\n\t\t\t\t\t\t⟲ Reset View\n\t\t\t\t\t</button>\n\n\t\t\t\t\t<div ref={exportMenuRef} className=\"graph-export-container\">\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tclassName=\"graph-export-button\"\n\t\t\t\t\t\t\tonClick={toggleExportMenu}\n\t\t\t\t\t\t\ttitle=\"Export graph\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t↓ Export\n\t\t\t\t\t\t</button>\n\t\t\t\t\t\t{showExportMenu.value && (\n\t\t\t\t\t\t\t<div className=\"graph-export-menu\">\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\tclassName=\"graph-export-menu-item\"\n\t\t\t\t\t\t\t\t\tonClick={handleExportMermaid}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tMermaid\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\tclassName=\"graph-export-menu-item\"\n\t\t\t\t\t\t\t\t\tonClick={handleExportJSON}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tJSON\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"graph-zoom-indicator\" title=\"Zoom level\">\n\t\t\t\t\t\t{Math.round(zoom.value * 100)}%\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t{toastText.value && (\n\t\t\t\t\t<div className=\"graph-toast\">{toastText.value}</div>\n\t\t\t\t)}\n\n\t\t\t\t{hoveredNode.value && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"graph-tooltip\"\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tleft: tooltipPos.value.x + 12,\n\t\t\t\t\t\t\ttop: tooltipPos.value.y - 8,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"tooltip-header\">\n\t\t\t\t\t\t\t<span className={`tooltip-type ${hoveredNode.value.type}`}>\n\t\t\t\t\t\t\t\t{hoveredNode.value.type}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className=\"tooltip-name\">{hoveredNode.value.name}</div>\n\t\t\t\t\t\t<div className=\"tooltip-id\">ID: {hoveredNode.value.id}</div>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t<div className=\"graph-legend\">\n\t\t\t\t\t<div className=\"legend-item\">\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"legend-color\"\n\t\t\t\t\t\t\tstyle={{ backgroundColor: \"#2196f3\" }}\n\t\t\t\t\t\t></div>\n\t\t\t\t\t\t<span>Signal</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"legend-item\">\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"legend-color\"\n\t\t\t\t\t\t\tstyle={{ backgroundColor: \"#ff9800\" }}\n\t\t\t\t\t\t></div>\n\t\t\t\t\t\t<span>Computed</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"legend-item\">\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"legend-color\"\n\t\t\t\t\t\t\tstyle={{ backgroundColor: \"#4caf50\" }}\n\t\t\t\t\t\t></div>\n\t\t\t\t\t\t<span>Effect</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n","import type { SignalUpdate } from \"../context\";\n\ninterface UpdateItemProps {\n\tupdate: SignalUpdate;\n\tfirstUpdate?: SignalUpdate;\n\tcount?: number;\n}\n\nexport function UpdateItem({ update, count, firstUpdate }: UpdateItemProps) {\n\tconst time = new Date(\n\t\tupdate.timestamp || update.receivedAt\n\t).toLocaleTimeString();\n\n\tconst formatValue = (value: any): string => {\n\t\tif (value === null) return \"null\";\n\t\tif (value === undefined) return \"undefined\";\n\t\tif (typeof value === \"string\") return `\"${value}\"`;\n\t\tif (typeof value === \"function\") return \"function()\";\n\t\tif (typeof value === \"object\") {\n\t\t\ttry {\n\t\t\t\treturn JSON.stringify(value, null, 0);\n\t\t\t} catch {\n\t\t\t\treturn \"[Object]\";\n\t\t\t}\n\t\t}\n\t\treturn String(value);\n\t};\n\tconst countLabel = count && (\n\t\t<span class=\"update-count\" title=\"Number of grouped identical updates\">\n\t\t\tx{count}\n\t\t</span>\n\t);\n\n\tif (update.type === \"effect\") {\n\t\treturn (\n\t\t\t<div className={`update-item ${update.type}`}>\n\t\t\t\t<div className=\"update-header\">\n\t\t\t\t\t<span className=\"signal-name\">\n\t\t\t\t\t\t↪️ {update.signalName}\n\t\t\t\t\t\t{countLabel}\n\t\t\t\t\t</span>\n\t\t\t\t\t<span className=\"update-time\">{time}</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst prevValue = formatValue(update.prevValue);\n\tconst newValue = formatValue(update.newValue);\n\tconst firstValue =\n\t\tfirstUpdate !== undefined ? formatValue(firstUpdate.prevValue) : undefined;\n\n\treturn (\n\t\t<div class={`update-item ${update.type}`}>\n\t\t\t<div class=\"update-header\">\n\t\t\t\t<span class=\"signal-name\">\n\t\t\t\t\t{update.depth === 0 ? \"🎯\" : \"↪️\"} {update.signalName}\n\t\t\t\t\t{countLabel}\n\t\t\t\t</span>\n\t\t\t\t<span class=\"update-time\">{time}</span>\n\t\t\t</div>\n\t\t\t<div class=\"value-change\">\n\t\t\t\t{firstValue && firstValue !== prevValue && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<span class=\"value-prev\">{firstValue}</span>\n\t\t\t\t\t\t<span class=\"value-arrow\">...</span>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t\t<span class=\"value-prev\">{prevValue}</span>\n\t\t\t\t<span class=\"value-arrow\">→</span>\n\t\t\t\t<span class=\"value-new\">{newValue}</span>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n","import { useSignal } from \"@preact/signals\";\nimport type { UpdateTreeNode } from \"../context\";\nimport { UpdateItem } from \"./UpdateItem\";\n\ninterface UpdateTreeNodeProps {\n\tnode: UpdateTreeNode;\n}\n\nexport function UpdateTreeNodeComponent({ node }: UpdateTreeNodeProps) {\n\tconst isCollapsed = useSignal(false);\n\n\tconst toggleCollapse = () => {\n\t\tisCollapsed.value = !isCollapsed.value;\n\t};\n\n\tconst hasChildren = node.children.length > 0;\n\tconst nodeCount = node.type === \"group\" ? node.count : undefined;\n\tconst firstUpdate = node.type === \"group\" ? node.firstUpdate : undefined;\n\n\tlet childrenToRender: UpdateTreeNode[];\n\n\tif (node.type === \"group\" && node.firstChildren) {\n\t\tchildrenToRender = node.children.map((lastChild, index) => {\n\t\t\tconst firstChild = node.firstChildren[index];\n\t\t\tconst mergedChild: UpdateTreeNode = {\n\t\t\t\t...lastChild,\n\t\t\t\ttype: \"group\",\n\t\t\t\tfirstUpdate: firstChild.update,\n\t\t\t\tfirstChildren: firstChild.children,\n\t\t\t\tcount: node.count,\n\t\t\t};\n\t\t\treturn mergedChild;\n\t\t});\n\t} else {\n\t\tchildrenToRender = node.children;\n\t}\n\n\treturn (\n\t\t<div className=\"tree-node\">\n\t\t\t<div className=\"tree-node-content\">\n\t\t\t\t{hasChildren && (\n\t\t\t\t\t<button\n\t\t\t\t\t\tclassName=\"collapse-button\"\n\t\t\t\t\t\tonClick={toggleCollapse}\n\t\t\t\t\t\taria-label={isCollapsed.value ? \"Expand\" : \"Collapse\"}\n\t\t\t\t\t>\n\t\t\t\t\t\t{isCollapsed.value ? \"▶\" : \"▼\"}\n\t\t\t\t\t</button>\n\t\t\t\t)}\n\t\t\t\t{!hasChildren && <div className=\"collapse-spacer\" />}\n\t\t\t\t<div className=\"update-content\">\n\t\t\t\t\t<UpdateItem\n\t\t\t\t\t\tupdate={node.update}\n\t\t\t\t\t\tcount={nodeCount}\n\t\t\t\t\t\tfirstUpdate={firstUpdate}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{hasChildren && !isCollapsed.value && (\n\t\t\t\t<div className=\"tree-children\">\n\t\t\t\t\t{childrenToRender.map(child => (\n\t\t\t\t\t\t<UpdateTreeNodeComponent key={child.id} node={child} />\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n","import { useRef } from \"preact/hooks\";\nimport { useSignalEffect } from \"@preact/signals\";\nimport { UpdateTreeNodeComponent } from \"./UpdateTreeNode\";\nimport { getContext } from \"../context\";\n\nexport function UpdatesContainer() {\n\tconst { updatesStore } = getContext();\n\tconst updatesListRef = useRef<HTMLDivElement>(null);\n\tconst updateTree = updatesStore.collapsedUpdateTree.value;\n\n\tuseSignalEffect(() => {\n\t\t// Register scroll restoration\n\t\t// When a new update is added we scroll to top\n\t\t// Access the signal to subscribe to updates\n\t\tupdatesStore.updateTree.value;\n\t\tif (updatesListRef.current) {\n\t\t\tupdatesListRef.current.scrollTop = 0;\n\t\t}\n\t});\n\n\treturn (\n\t\t<div className=\"updates-container\">\n\t\t\t<div className=\"updates-header\">\n\t\t\t\t<div className=\"updates-stats\">\n\t\t\t\t\t<span>\n\t\t\t\t\t\tUpdates: <strong>{updatesStore.totalUpdates.value}</strong>\n\t\t\t\t\t</span>\n\t\t\t\t\t<span>\n\t\t\t\t\t\tSignals: <strong>{updatesStore.signalCounts.value.size}</strong>\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div className=\"updates-list\" ref={updatesListRef}>\n\t\t\t\t{updateTree.map(node => (\n\t\t\t\t\t<UpdateTreeNodeComponent key={node.id} node={node} />\n\t\t\t\t))}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n","import { render } from \"preact\";\nimport { useSignal } from \"@preact/signals\";\nimport type { DevToolsAdapter } from \"@preact/signals-devtools-adapter\";\nimport { EmptyState } from \"./components/EmptyState\";\nimport { Header } from \"./components/Header\";\nimport { SettingsPanel } from \"./components/SettingsPanel\";\nimport { GraphVisualization } from \"./components/Graph\";\nimport { UpdatesContainer } from \"./components/UpdatesContainer\";\nimport { initDevTools, destroyDevTools, getContext } from \"./context\";\n\nexport interface DevToolsPanelProps {\n\t/** Hide the header (useful for embedded contexts) */\n\thideHeader?: boolean;\n\t/** Initial tab to show */\n\tinitialTab?: \"updates\" | \"graph\";\n}\n\nexport function DevToolsPanel({\n\thideHeader = false,\n\tinitialTab = \"updates\",\n}: DevToolsPanelProps = {}) {\n\tconst { connectionStore } = getContext();\n\tconst activeTab = useSignal<\"updates\" | \"graph\">(initialTab);\n\n\treturn (\n\t\t<div id=\"app\" className=\"signals-devtools\">\n\t\t\t{!hideHeader && <Header />}\n\n\t\t\t<SettingsPanel />\n\n\t\t\t<main className=\"main-content\">\n\t\t\t\t<div className=\"tabs\">\n\t\t\t\t\t<button\n\t\t\t\t\t\tclassName={`tab ${activeTab.value === \"updates\" ? \"active\" : \"\"}`}\n\t\t\t\t\t\tonClick={() => (activeTab.value = \"updates\")}\n\t\t\t\t\t>\n\t\t\t\t\t\tUpdates\n\t\t\t\t\t</button>\n\t\t\t\t\t<button\n\t\t\t\t\t\tclassName={`tab ${activeTab.value === \"graph\" ? \"active\" : \"\"}`}\n\t\t\t\t\t\tonClick={() => (activeTab.value = \"graph\")}\n\t\t\t\t\t>\n\t\t\t\t\t\tDependency Graph\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"tab-content\">\n\t\t\t\t\t{!connectionStore.isConnected ? (\n\t\t\t\t\t\t<EmptyState onRefresh={connectionStore.refreshConnection} />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{activeTab.value === \"updates\" && <UpdatesContainer />}\n\t\t\t\t\t\t\t{activeTab.value === \"graph\" && <GraphVisualization />}\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</main>\n\t\t</div>\n\t);\n}\n\nexport interface MountOptions extends DevToolsPanelProps {\n\t/** The adapter to use for communication */\n\tadapter: DevToolsAdapter;\n\t/** The container element to render into */\n\tcontainer: HTMLElement;\n}\n\n/**\n * Mount the DevTools UI into a container element.\n *\n * @example\n * ```tsx\n * import { mount } from \"@preact/signals-devtools-ui\";\n * import { createDirectAdapter } from \"@preact/signals-devtools-adapter\";\n *\n * const adapter = createDirectAdapter();\n *\n * const unmount = await mount({\n * adapter,\n * container: document.getElementById(\"devtools\")!,\n * });\n *\n * // Later, to cleanup:\n * unmount();\n * ```\n */\nexport async function mount(options: MountOptions): Promise<() => void> {\n\tconst { adapter, container, ...panelProps } = options;\n\n\t// Initialize context with adapter\n\tinitDevTools(adapter);\n\n\t// Connect the adapter\n\tawait adapter.connect();\n\n\t// Clear existing content\n\tcontainer.innerHTML = \"\";\n\n\t// Render the panel\n\trender(<DevToolsPanel {...panelProps} />, container);\n\n\t// Return cleanup function\n\treturn () => {\n\t\trender(null, container);\n\t\tdestroyDevTools();\n\t};\n}\n"],"names":["n","l","u","t","i","r","o","e","f","c","s","a","p","v","y","w","Array","isArray","d","g","parentNode","removeChild","m","type","props","key","ref","__k","__","__b","__e","__c","constructor","__v","__i","__u","vnode","k","children","x","this","context","S","length","C","base","M","__d","push","$","__r","debounceRendering","sort","shift","__P","O","__n","namespaceURI","N","I","h","_","b","String","L","D","P","B","A","nextSibling","insertBefore","nodeType","T","setProperty","test","j","style","cssText","replace","toLowerCase","slice","addEventListener","removeEventListener","removeAttribute","setAttribute","F","event","H","prototype","render","contextType","value","__E","E","sub","state","__h","_sb","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","some","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","V","then","indexOf","z","q","diffed","forEach","call","map","localName","document","createTextNode","createElementNS","is","__m","data","childNodes","attributes","name","__html","innerHTML","content","current","unmount","componentWillUnmount","G","documentElement","arguments","defaultProps","firstChild","getDerivedStateFromError","setState","componentDidCatch","forceUpdate","Promise","bind","resolve","setTimeout","__source","__self","__H","__N","requestAnimationFrame","filter","clearTimeout","cancelAnimationFrame","Symbol","W","watched","Z","unwatched","brand","U","subscribe","valueOf","toString","toJSON","peek","Object","defineProperty","get","set","Error","dispose","window","__PREACT_SIGNALS_DEVTOOLS__","useSignal","__$f","__$u","displayName","defineProperties","configurable","__np","ownerSVGElement","__f","every","queueMicrotask","useSignalEffect","Button","_ref","onClick","_ref$className","className","_ref$disabled","disabled","_ref$variant","variant","_ref$active","active","_jsx","baseClass","trim","EmptyState","onRefresh","_ref$title","title","_ref$description","description","_ref$buttonText","buttonText","_jsxs","StatusIndicator","status","message","_ref$showIndicator","showIndicator","currentContext","getContext","createConnectionStore","adapter","signal","isConnected","on","connectionStatus","available","refreshConnection","requestState","nodesAreEqual","update","signalId","child","index","createUpdatesStore","settingsStore","updates","isPaused","disposedSignalIds","Set","addUpdate","item","receivedAt","Date","now","concat","hasUpdates","computed","signalCounts","counts","Map","signalName","updateTree","tree","stack","recentUpdates","reverse","depth","node","id","hasChildren","pop","parent","buildTree","signalUpdates","updatesArray","disposals","disposal","_step2","newDisposed","_iterator2","_createForOfIteratorHelperLoose","done","add","addDisposal","collapsedUpdateTree","updateTreeValue","settings","grouped","nodes","lastNode","_step","_iterator","_extends","count","firstUpdate","firstChildren","collapseTree","totalUpdates","keys","clearUpdates","createSettingsStore","enabled","maxUpdatesPerSecond","filterPatterns","showSettings","showDisposedSignals","config","newSettings","applySettings","sendConfig","toggleSettings","hideSettings","toggleShowDisposedSignals","initDevTools","updatesStore","connectionStore","destroyDevTools","disconnect","Header","_getContext","onToggleSettings","onTogglePause","onClear","SettingsPanel","onCancel","onApply","isVisible","localSettings","checked","onChange","target","htmlFor","min","max","parseInt","placeholder","join","split","pattern","copyToClipboard","text","copyEl","createElement","body","append","select","execCommand","remove","GraphVisualization","svgRef","useRef","containerRef","exportMenuRef","panOffset","zoom","isPanning","startPan","showExportMenu","toastText","hoveredNode","tooltipPos","useEffect","handleClickOutside","contains","graphData","useComputed","rawUpdates","disposed","showDisposed","links","has","signalType","currentDepth","subscribedTo","linkKey","source","allNodes","from","values","nodesByDepth","maxDepth","Math","apply","depthNodes","depthHeight","depthStartY","handleMouseUp","mermaidIdPattern","computeMermaidId","getNodeRadius","textWidth","handleNodeMouseMove","container","rect","getBoundingClientRect","clientX","left","clientY","top","handleNodeMouseLeave","showToast","undefined","svgWidth","svgHeight","onMouseDown","button","onMouseMove","onMouseUp","onMouseLeave","onWheel","preventDefault","mouseX","mouseY","delta","deltaY","newZoom","zoomRatio","cursor","width","height","viewBox","markerWidth","markerHeight","refX","refY","orient","points","fill","transform","link","sourceNode","find","targetNode","sourceRadius","targetRadius","sourceX","sourceY","targetX","targetY","midX","markerEnd","_hoveredNode$value","radius","maxChars","floor","onMouseEnter","handleNodeMouseEnter","cx","cy","textAnchor","dominantBaseline","lines","sourceId","targetId","reject","JSON","stringify","round","backgroundColor","UpdateItem","time","timestamp","toLocaleTimeString","formatValue","_unused","countLabel","class","prevValue","newValue","firstValue","_Fragment","UpdateTreeNodeComponent","childrenToRender","isCollapsed","nodeCount","lastChild","UpdatesContainer","updatesListRef","scrollTop","size","mount","options","panelProps","_objectWithoutPropertiesLoose","_excluded","connect","DevToolsPanel","_temp","_ref$hideHeader","hideHeader","_ref$initialTab","initialTab","activeTab"],"mappings":"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"}
|