@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.mjs","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","for","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","onClick","className","disabled","variant","active","_jsx","trim","EmptyState","onRefresh","title","description","buttonText","_jsxs","StatusIndicator","status","message","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","hasUpdates","computed","signalCounts","counts","Map","signalName","updateTree","tree","stack","recentUpdates","reverse","depth","node","id","hasChildren","pop","parent","buildTree","signalUpdates","updatesArray","disposals","disposal","newDisposed","add","addDisposal","collapsedUpdateTree","updateTreeValue","settings","grouped","nodes","lastNode","_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","onToggleSettings","onTogglePause","onClear","SettingsPanel","onCancel","onApply","isVisible","localSettings","checked","onChange","target","htmlFor","min","max","parseInt","placeholder","join","split","pattern","handleApply","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","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","resetView","toggleExportMenu","async","lines","sourceId","targetId","JSON","stringify","round","backgroundColor","UpdateItem","time","timestamp","toLocaleTimeString","formatValue","_unused","countLabel","class","prevValue","newValue","firstValue","_Fragment","UpdateTreeNodeComponent","isCollapsed","nodeCount","childrenToRender","lastChild","mergedChild","toggleCollapse","UpdatesContainer","updatesListRef","scrollTop","size","DevToolsPanel","hideHeader","initialTab","activeTab","mount","options","panelProps","_objectWithoutPropertiesLoose","_excluded","connect"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function n(n,i){(null==i||i>n.length)&&(i=n.length);for(var t=0,e=Array(i);t<i;t++)e[t]=n[t];return e}function i(i,t){var e="undefined"!=typeof Symbol&&i[Symbol.iterator]||i["@@iterator"];if(e)return(e=e.call(i)).next.bind(e);if(Array.isArray(i)||(e=function(i,t){if(i){if("string"==typeof i)return n(i,t);var e={}.toString.call(i).slice(8,-1);return"Object"===e&&i.constructor&&(e=i.constructor.name),"Map"===e||"Set"===e?Array.from(i):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?n(i,t):void 0}}(i))||t&&i&&"number"==typeof i.length){e&&(i=e);var r=0;return function(){return r>=i.length?{done:!0}:{done:!1,value:i[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function t(){return t=Object.assign?Object.assign.bind():function(n){for(var i=1;i<arguments.length;i++){var t=arguments[i];for(var e in t)({}).hasOwnProperty.call(t,e)&&(n[e]=t[e])}return n},t.apply(null,arguments)}var e,r,o,u,a,l,c,s,f,d,h,v,p={},m=[],g=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,y=Array.isArray;function b(n,i){for(var t in i)n[t]=i[t];return n}function w(n){n&&n.parentNode&&n.parentNode.removeChild(n)}function N(n,i,t,e,u){var a={type:n,props:i,key:t,ref:e,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:null==u?++o:u,__i:-1,__u:0};return null==u&&null!=r.vnode&&r.vnode(a),a}function k(n){return n.children}function _(n,i){this.props=n,this.context=i}function x(n,i){if(null==i)return n.__?x(n.__,n.__i+1):null;for(var t;i<n.__k.length;i++)if(null!=(t=n.__k[i])&&null!=t.__e)return t.__e;return"function"==typeof n.type?x(n):null}function C(n){var i,t;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,i=0;i<n.__k.length;i++)if(null!=(t=n.__k[i])&&null!=t.__e){n.__e=n.__c.base=t.__e;break}return C(n)}}function S(n){(!n.__d&&(n.__d=!0)&&a.push(n)&&!M.__r++||l!=r.debounceRendering)&&((l=r.debounceRendering)||c)(M)}function M(){for(var n,i,t,e,o,u,l,c=1;a.length;)a.length>c&&a.sort(s),n=a.shift(),c=a.length,n.__d&&(t=void 0,e=void 0,o=(e=(i=n).__v).__e,u=[],l=[],i.__P&&((t=b({},e)).__v=e.__v+1,r.vnode&&r.vnode(t),O(i.__P,t,e,i.__n,i.__P.namespaceURI,32&e.__u?[o]:null,u,null==o?x(e):o,!!(32&e.__u),l),t.__v=e.__v,t.__.__k[t.__i]=t,j(u,t,l),e.__e=e.__=null,t.__e!=o&&C(t)));M.__r=0}function A(n,i,t,e,r,o,u,a,l,c,s){var f,d,h,v,g,b,w,_=e&&e.__k||m,C=i.length;for(l=function(n,i,t,e,r){var o,u,a,l,c,s=t.length,f=s,d=0;for(n.__k=new Array(r),o=0;o<r;o++)null!=(u=i[o])&&"boolean"!=typeof u&&"function"!=typeof u?(l=o+d,(u=n.__k[o]="string"==typeof u||"number"==typeof u||"bigint"==typeof u||u.constructor==String?N(null,u,null,null,null):y(u)?N(k,{children:u},null,null,null):null==u.constructor&&u.__b>0?N(u.type,u.props,u.key,u.ref?u.ref:null,u.__v):u).__=n,u.__b=n.__b+1,a=null,-1!=(c=u.__i=U(u,t,l,f))&&(f--,(a=t[c])&&(a.__u|=2)),null==a||null==a.__v?(-1==c&&(r>s?d--:r<s&&d++),"function"!=typeof u.type&&(u.__u|=4)):c!=l&&(c==l-1?d--:c==l+1?d++:(c>l?d--:d++,u.__u|=4))):n.__k[o]=null;if(f)for(o=0;o<s;o++)null!=(a=t[o])&&0==(2&a.__u)&&(a.__e==e&&(e=x(a)),q(a,a));return e}(t,i,_,l,C),f=0;f<C;f++)null!=(h=t.__k[f])&&(d=-1==h.__i?p:_[h.__i]||p,h.__i=f,b=O(n,h,d,r,o,u,a,l,c,s),v=h.__e,h.ref&&d.ref!=h.ref&&(d.ref&&$(d.ref,null,h),s.push(h.ref,h.__c||v,h)),null==g&&null!=v&&(g=v),(w=!!(4&h.__u))||d.__k===h.__k?l=P(h,l,n,w):"function"==typeof h.type&&void 0!==b?l=b:v&&(l=v.nextSibling),h.__u&=-7);return t.__e=g,l}function P(n,i,t,e){var r,o;if("function"==typeof n.type){for(r=n.__k,o=0;r&&o<r.length;o++)r[o]&&(r[o].__=n,i=P(r[o],i,t,e));return i}n.__e!=i&&(e&&(i&&n.type&&!i.parentNode&&(i=x(n)),t.insertBefore(n.__e,i||null)),i=n.__e);do{i=i&&i.nextSibling}while(null!=i&&8==i.nodeType);return i}function U(n,i,t,e){var r,o,u,a=n.key,l=n.type,c=i[t],s=null!=c&&0==(2&c.__u);if(null===c&&null==n.key||s&&a==c.key&&l==c.type)return t;if(e>(s?1:0))for(r=t-1,o=t+1;r>=0||o<i.length;)if(null!=(c=i[u=r>=0?r--:o++])&&0==(2&c.__u)&&a==c.key&&l==c.type)return u;return-1}function T(n,i,t){"-"==i[0]?n.setProperty(i,null==t?"":t):n[i]=null==t?"":"number"!=typeof t||g.test(i)?t:t+"px"}function D(n,i,t,e,r){var o,u;n:if("style"==i)if("string"==typeof t)n.style.cssText=t;else{if("string"==typeof e&&(n.style.cssText=e=""),e)for(i in e)t&&i in t||T(n.style,i,"");if(t)for(i in t)e&&t[i]==e[i]||T(n.style,i,t[i])}else if("o"==i[0]&&"n"==i[1])o=i!=(i=i.replace(f,"$1")),u=i.toLowerCase(),i=u in n||"onFocusOut"==i||"onFocusIn"==i?u.slice(2):i.slice(2),n.l||(n.l={}),n.l[i+o]=t,t?e?t.u=e.u:(t.u=d,n.addEventListener(i,o?v:h,o)):n.removeEventListener(i,o?v:h,o);else{if("http://www.w3.org/2000/svg"==r)i=i.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("width"!=i&&"height"!=i&&"href"!=i&&"list"!=i&&"form"!=i&&"tabIndex"!=i&&"download"!=i&&"rowSpan"!=i&&"colSpan"!=i&&"role"!=i&&"popover"!=i&&i in n)try{n[i]=null==t?"":t;break n}catch(n){}"function"==typeof t||(null==t||!1===t&&"-"!=i[4]?n.removeAttribute(i):n.setAttribute(i,"popover"==i&&1==t?"":t))}}function I(n){return function(i){if(this.l){var t=this.l[i.type+n];if(null==i.t)i.t=d++;else if(i.t<t.u)return;return t(r.event?r.event(i):i)}}}function O(n,i,t,e,o,u,a,l,c,s){var f,d,h,v,p,m,g,N,x,C,S,M,P,U,T,D,I,O=i.type;if(null!=i.constructor)return null;128&t.__u&&(c=!!(32&t.__u),u=[l=i.__e=t.__e]),(f=r.__b)&&f(i);n:if("function"==typeof O)try{if(N=i.props,x="prototype"in O&&O.prototype.render,C=(f=O.contextType)&&e[f.__c],S=f?C?C.props.value:f.__:e,t.__c?g=(d=i.__c=t.__c).__=d.__E:(x?i.__c=d=new O(N,S):(i.__c=d=new _(N,S),d.constructor=O,d.render=L),C&&C.sub(d),d.props=N,d.state||(d.state={}),d.context=S,d.__n=e,h=d.__d=!0,d.__h=[],d.m=[]),x&&null==d.__s&&(d.__s=d.state),x&&null!=O.getDerivedStateFromProps&&(d.__s==d.state&&(d.__s=b({},d.__s)),b(d.__s,O.getDerivedStateFromProps(N,d.__s))),v=d.props,p=d.state,d.__v=i,h)x&&null==O.getDerivedStateFromProps&&null!=d.componentWillMount&&d.componentWillMount(),x&&null!=d.componentDidMount&&d.__h.push(d.componentDidMount);else{if(x&&null==O.getDerivedStateFromProps&&N!==v&&null!=d.componentWillReceiveProps&&d.componentWillReceiveProps(N,S),!d.__e&&null!=d.shouldComponentUpdate&&!1===d.shouldComponentUpdate(N,d.__s,S)||i.__v==t.__v){for(i.__v!=t.__v&&(d.props=N,d.state=d.__s,d.__d=!1),i.__e=t.__e,i.__k=t.__k,i.__k.some(function(n){n&&(n.__=i)}),M=0;M<d.m.length;M++)d.__h.push(d.m[M]);d.m=[],d.__h.length&&a.push(d);break n}null!=d.componentWillUpdate&&d.componentWillUpdate(N,d.__s,S),x&&null!=d.componentDidUpdate&&d.__h.push(function(){d.componentDidUpdate(v,p,m)})}if(d.context=S,d.props=N,d.__P=n,d.__e=!1,P=r.__r,U=0,x){for(d.state=d.__s,d.__d=!1,P&&P(i),f=d.render(d.props,d.state,d.context),T=0;T<d.m.length;T++)d.__h.push(d.m[T]);d.m=[]}else do{d.__d=!1,P&&P(i),f=d.render(d.props,d.state,d.context),d.state=d.__s}while(d.__d&&++U<25);d.state=d.__s,null!=d.getChildContext&&(e=b(b({},e),d.getChildContext())),x&&!h&&null!=d.getSnapshotBeforeUpdate&&(m=d.getSnapshotBeforeUpdate(v,p)),D=f,null!=f&&f.type===k&&null==f.key&&(D=F(f.props.children)),l=A(n,y(D)?D:[D],i,t,e,o,u,a,l,c,s),d.base=i.__e,i.__u&=-161,d.__h.length&&a.push(d),g&&(d.__E=d.__=null)}catch(n){if(i.__v=null,c||null!=u)if(n.then){for(i.__u|=c?160:128;l&&8==l.nodeType&&l.nextSibling;)l=l.nextSibling;u[u.indexOf(l)]=null,i.__e=l}else{for(I=u.length;I--;)w(u[I]);E(i)}else i.__e=t.__e,i.__k=t.__k,n.then||E(i);r.__e(n,i,t)}else null==u&&i.__v==t.__v?(i.__k=t.__k,i.__e=t.__e):l=i.__e=R(t.__e,i,t,e,o,u,a,c,s);return(f=r.diffed)&&f(i),128&i.__u?void 0:l}function E(n){n&&n.__c&&(n.__c.__e=!0),n&&n.__k&&n.__k.forEach(E)}function j(n,i,t){for(var e=0;e<t.length;e++)$(t[e],t[++e],t[++e]);r.__c&&r.__c(i,n),n.some(function(i){try{n=i.__h,i.__h=[],n.some(function(n){n.call(i)})}catch(n){r.__e(n,i.__v)}})}function F(n){return"object"!=typeof n||null==n||n.__b&&n.__b>0?n:y(n)?n.map(F):b({},n)}function R(n,i,t,o,u,a,l,c,s){var f,d,h,v,m,g,b,N=t.props,k=i.props,_=i.type;if("svg"==_?u="http://www.w3.org/2000/svg":"math"==_?u="http://www.w3.org/1998/Math/MathML":u||(u="http://www.w3.org/1999/xhtml"),null!=a)for(f=0;f<a.length;f++)if((m=a[f])&&"setAttribute"in m==!!_&&(_?m.localName==_:3==m.nodeType)){n=m,a[f]=null;break}if(null==n){if(null==_)return document.createTextNode(k);n=document.createElementNS(u,_,k.is&&k),c&&(r.__m&&r.__m(i,a),c=!1),a=null}if(null==_)N===k||c&&n.data==k||(n.data=k);else{if(a=a&&e.call(n.childNodes),N=t.props||p,!c&&null!=a)for(N={},f=0;f<n.attributes.length;f++)N[(m=n.attributes[f]).name]=m.value;for(f in N)if(m=N[f],"children"==f);else if("dangerouslySetInnerHTML"==f)h=m;else if(!(f in k)){if("value"==f&&"defaultValue"in k||"checked"==f&&"defaultChecked"in k)continue;D(n,f,null,m,u)}for(f in k)m=k[f],"children"==f?v=m:"dangerouslySetInnerHTML"==f?d=m:"value"==f?g=m:"checked"==f?b=m:c&&"function"!=typeof m||N[f]===m||D(n,f,m,N[f],u);if(d)c||h&&(d.__html==h.__html||d.__html==n.innerHTML)||(n.innerHTML=d.__html),i.__k=[];else if(h&&(n.innerHTML=""),A("template"==i.type?n.content:n,y(v)?v:[v],i,t,o,"foreignObject"==_?"http://www.w3.org/1999/xhtml":u,a,l,a?a[0]:t.__k&&x(t,0),c,s),null!=a)for(f=a.length;f--;)w(a[f]);c||(f="value","progress"==_&&null==g?n.removeAttribute("value"):null!=g&&(g!==n[f]||"progress"==_&&!g||"option"==_&&g!=N[f])&&D(n,f,g,N[f],u),f="checked",null!=b&&b!=n[f]&&D(n,f,b,N[f],u))}return n}function $(n,i,t){try{if("function"==typeof n){var e="function"==typeof n.__u;e&&n.__u(),e&&null==i||(n.__u=n(i))}else n.current=i}catch(n){r.__e(n,t)}}function q(n,i,t){var e,o;if(r.unmount&&r.unmount(n),(e=n.ref)&&(e.current&&e.current!=n.__e||$(e,null,i)),null!=(e=n.__c)){if(e.componentWillUnmount)try{e.componentWillUnmount()}catch(n){r.__e(n,i)}e.base=e.__P=null}if(e=n.__k)for(o=0;o<e.length;o++)e[o]&&q(e[o],i,t||"function"!=typeof n.type);t||w(n.__e),n.__c=n.__=n.__e=void 0}function L(n,i,t){return this.constructor(n,t)}function z(n,i,t){var o,u,a,l;i==document&&(i=document.documentElement),r.__&&r.__(n,i),u=(o="function"==typeof t)?null:t&&t.__k||i.__k,a=[],l=[],O(i,n=(!o&&t||i).__k=function(n,i,t){var r,o,u,a={};for(u in i)"key"==u?r=i[u]:"ref"==u?o=i[u]:a[u]=i[u];if(arguments.length>2&&(a.children=arguments.length>3?e.call(arguments,2):t),"function"==typeof n&&null!=n.defaultProps)for(u in n.defaultProps)void 0===a[u]&&(a[u]=n.defaultProps[u]);return N(n,a,r,o,null)}(k,null,[n]),u||p,p,i.namespaceURI,!o&&t?[t]:u?null:i.firstChild?e.call(i.childNodes):null,a,!o&&t?t:u?u.__e:i.firstChild,o,l),j(a,n,l)}e=m.slice,r={__e:function(n,i,t,e){for(var r,o,u;i=i.__;)if((r=i.__c)&&!r.__)try{if((o=r.constructor)&&null!=o.getDerivedStateFromError&&(r.setState(o.getDerivedStateFromError(n)),u=r.__d),null!=r.componentDidCatch&&(r.componentDidCatch(n,e||{}),u=r.__d),u)return r.__E=r}catch(i){n=i}throw n}},o=0,u=function(n){return null!=n&&null==n.constructor},_.prototype.setState=function(n,i){var t;t=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=b({},this.state),"function"==typeof n&&(n=n(b({},t),this.props)),n&&b(t,n),null!=n&&this.__v&&(i&&this.m.push(i),S(this))},_.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),S(this))},_.prototype.render=k,a=[],c="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,s=function(n,i){return n.__v.__b-i.__v.__b},M.__r=0,f=/(PointerCapture)$|Capture$/i,d=0,h=I(!1),v=I(!0);var H=0;function G(n,i,t,e,o,u){i||(i={});var a,l,c=i;if("ref"in c)for(l in c={},i)"ref"==l?a=i[l]:c[l]=i[l];var s={type:n,props:c,key:t,ref:a,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--H,__i:-1,__u:0,__source:o,__self:u};if("function"==typeof n&&(a=n.defaultProps))for(l in a)void 0===c[l]&&(c[l]=a[l]);return r.vnode&&r.vnode(s),s}var J,W,B,V,Z=0,X=[],Y=r,K=Y.__b,Q=Y.__r,nn=Y.diffed,tn=Y.__c,en=Y.unmount,rn=Y.__;function on(n,i){Y.__h&&Y.__h(W,n,Z||i),Z=0;var t=W.__H||(W.__H={__:[],__h:[]});return n>=t.__.length&&t.__.push({}),t.__[n]}function un(n,i){var t=on(J++,3);!Y.__s&&vn(t.__H,i)&&(t.__=n,t.u=i,W.__H.__h.push(t))}function an(n){return Z=5,ln(function(){return{current:n}},[])}function ln(n,i){var t=on(J++,7);return vn(t.__H,i)&&(t.__=n(),t.__H=i,t.__h=n),t.__}function cn(){for(var n;n=X.shift();)if(n.__P&&n.__H)try{n.__H.__h.forEach(dn),n.__H.__h.forEach(hn),n.__H.__h=[]}catch(i){n.__H.__h=[],Y.__e(i,n.__v)}}Y.__b=function(n){W=null,K&&K(n)},Y.__=function(n,i){n&&i.__k&&i.__k.__m&&(n.__m=i.__k.__m),rn&&rn(n,i)},Y.__r=function(n){Q&&Q(n),J=0;var i=(W=n.__c).__H;i&&(B===W?(i.__h=[],W.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(i.__h.forEach(dn),i.__h.forEach(hn),i.__h=[],J=0)),B=W},Y.diffed=function(n){nn&&nn(n);var i=n.__c;i&&i.__H&&(i.__H.__h.length&&(1!==X.push(i)&&V===Y.requestAnimationFrame||((V=Y.requestAnimationFrame)||fn)(cn)),i.__H.__.forEach(function(n){n.u&&(n.__H=n.u),n.u=void 0})),B=W=null},Y.__c=function(n,i){i.some(function(n){try{n.__h.forEach(dn),n.__h=n.__h.filter(function(n){return!n.__||hn(n)})}catch(t){i.some(function(n){n.__h&&(n.__h=[])}),i=[],Y.__e(t,n.__v)}}),tn&&tn(n,i)},Y.unmount=function(n){en&&en(n);var i,t=n.__c;t&&t.__H&&(t.__H.__.forEach(function(n){try{dn(n)}catch(n){i=n}}),t.__H=void 0,i&&Y.__e(i,t.__v))};var sn="function"==typeof requestAnimationFrame;function fn(n){var i,t=function(){clearTimeout(e),sn&&cancelAnimationFrame(i),setTimeout(n)},e=setTimeout(t,35);sn&&(i=requestAnimationFrame(t))}function dn(n){var i=W,t=n.__c;"function"==typeof t&&(n.__c=void 0,t()),W=i}function hn(n){var i=W;n.__c=n.__(),W=i}function vn(n,i){return!n||n.length!==i.length||i.some(function(i,t){return i!==n[t]})}function pn(n,i){return"function"==typeof i?i(n):i}var mn=Symbol.for("preact-signals");function gn(){if(!(kn>1)){var n,i=!1;while(void 0!==Nn){var t=Nn;Nn=void 0;_n++;while(void 0!==t){var e=t.o;t.o=void 0;t.f&=-3;if(!(8&t.f)&&An(t))try{t.c()}catch(t){if(!i){n=t;i=!0}}t=e}}_n=0;kn--;if(i)throw n}else kn--}function yn(n){if(kn>0)return n();kn++;try{return n()}finally{gn()}}var bn=void 0;function wn(n){var i=bn;bn=void 0;try{return n()}finally{bn=i}}var Nn=void 0,kn=0,_n=0,xn=0;function Cn(n){if(void 0!==bn){var i=n.n;if(void 0===i||i.t!==bn){i={i:0,S:n,p:bn.s,n:void 0,t:bn,e:void 0,x:void 0,r:i};if(void 0!==bn.s)bn.s.n=i;bn.s=i;n.n=i;if(32&bn.f)n.S(i);return i}else if(-1===i.i){i.i=0;if(void 0!==i.n){i.n.p=i.p;if(void 0!==i.p)i.p.n=i.n;i.p=bn.s;i.n=void 0;bn.s.n=i;bn.s=i}return i}}}function Sn(n,i){this.v=n;this.i=0;this.n=void 0;this.t=void 0;this.W=null==i?void 0:i.watched;this.Z=null==i?void 0:i.unwatched;this.name=null==i?void 0:i.name}Sn.prototype.brand=mn;Sn.prototype.h=function(){return!0};Sn.prototype.S=function(n){var i=this,t=this.t;if(t!==n&&void 0===n.e){n.x=t;this.t=n;if(void 0!==t)t.e=n;else wn(function(){var n;null==(n=i.W)||n.call(i)})}};Sn.prototype.U=function(n){var i=this;if(void 0!==this.t){var t=n.e,e=n.x;if(void 0!==t){t.x=e;n.e=void 0}if(void 0!==e){e.e=t;n.x=void 0}if(n===this.t){this.t=e;if(void 0===e)wn(function(){var n;null==(n=i.Z)||n.call(i)})}}};Sn.prototype.subscribe=function(n){var i=this;return Fn(function(){var t=i.value,e=bn;bn=void 0;try{n(t)}finally{bn=e}},{name:"sub"})};Sn.prototype.valueOf=function(){return this.value};Sn.prototype.toString=function(){return this.value+""};Sn.prototype.toJSON=function(){return this.value};Sn.prototype.peek=function(){var n=bn;bn=void 0;try{return this.value}finally{bn=n}};Object.defineProperty(Sn.prototype,"value",{get:function(){var n=Cn(this);if(void 0!==n)n.i=this.i;return this.v},set:function(n){if(n!==this.v){if(_n>100)throw new Error("Cycle detected");this.v=n;this.i++;xn++;kn++;try{for(var i=this.t;void 0!==i;i=i.x)i.t.N()}finally{gn()}}}});function Mn(n,i){return new Sn(n,i)}function An(n){for(var i=n.s;void 0!==i;i=i.n)if(i.S.i!==i.i||!i.S.h()||i.S.i!==i.i)return!0;return!1}function Pn(n){for(var i=n.s;void 0!==i;i=i.n){var t=i.S.n;if(void 0!==t)i.r=t;i.S.n=i;i.i=-1;if(void 0===i.n){n.s=i;break}}}function Un(n){var i=n.s,t=void 0;while(void 0!==i){var e=i.p;if(-1===i.i){i.S.U(i);if(void 0!==e)e.n=i.n;if(void 0!==i.n)i.n.p=e}else t=i;i.S.n=i.r;if(void 0!==i.r)i.r=void 0;i=e}n.s=t}function Tn(n,i){Sn.call(this,void 0);this.x=n;this.s=void 0;this.g=xn-1;this.f=4;this.W=null==i?void 0:i.watched;this.Z=null==i?void 0:i.unwatched;this.name=null==i?void 0:i.name}Tn.prototype=new Sn;Tn.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===xn)return!0;this.g=xn;this.f|=1;if(this.i>0&&!An(this)){this.f&=-2;return!0}var n=bn;try{Pn(this);bn=this;var i=this.x();if(16&this.f||this.v!==i||0===this.i){this.v=i;this.f&=-17;this.i++}}catch(n){this.v=n;this.f|=16;this.i++}bn=n;Un(this);this.f&=-2;return!0};Tn.prototype.S=function(n){if(void 0===this.t){this.f|=36;for(var i=this.s;void 0!==i;i=i.n)i.S.S(i)}Sn.prototype.S.call(this,n)};Tn.prototype.U=function(n){if(void 0!==this.t){Sn.prototype.U.call(this,n);if(void 0===this.t){this.f&=-33;for(var i=this.s;void 0!==i;i=i.n)i.S.U(i)}}};Tn.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var n=this.t;void 0!==n;n=n.x)n.t.N()}};Object.defineProperty(Tn.prototype,"value",{get:function(){if(1&this.f)throw new Error("Cycle detected");var n=Cn(this);this.h();if(void 0!==n)n.i=this.i;if(16&this.f)throw this.v;return this.v}});function Dn(n,i){return new Tn(n,i)}function In(n){var i=n.u;n.u=void 0;if("function"==typeof i){kn++;var t=bn;bn=void 0;try{i()}catch(i){n.f&=-2;n.f|=8;On(n);throw i}finally{bn=t;gn()}}}function On(n){for(var i=n.s;void 0!==i;i=i.n)i.S.U(i);n.x=void 0;n.s=void 0;In(n)}function En(n){if(bn!==this)throw new Error("Out-of-order effect");Un(this);bn=n;this.f&=-2;if(8&this.f)On(this);gn()}function jn(n,i){this.x=n;this.u=void 0;this.s=void 0;this.o=void 0;this.f=32;this.name=null==i?void 0:i.name}jn.prototype.c=function(){var n=this.S();try{if(8&this.f)return;if(void 0===this.x)return;var i=this.x();if("function"==typeof i)this.u=i}finally{n()}};jn.prototype.S=function(){if(1&this.f)throw new Error("Cycle detected");this.f|=1;this.f&=-9;In(this);Pn(this);kn++;var n=bn;bn=this;return En.bind(this,n)};jn.prototype.N=function(){if(!(2&this.f)){this.f|=2;this.o=Nn;Nn=this}};jn.prototype.d=function(){this.f|=8;if(!(1&this.f))On(this)};jn.prototype.dispose=function(){this.d()};function Fn(n,i){var t=new jn(n,i);try{t.c()}catch(n){t.d();throw n}var e=t.d.bind(t);e[Symbol.dispose]=e;return e}var Rn,$n,qn,Ln="undefined"!=typeof window&&!!window.__PREACT_SIGNALS_DEVTOOLS__,zn=[],Hn=[];Fn(function(){Rn=this.N})();function Gn(n,i){r[n]=i.bind(null,r[n]||function(){})}function Jn(n){if(qn)qn();qn=n&&n.S()}function Wn(n){var i=this,t=n.data,e=useSignal(t);e.value=t;var r=ln(function(){var n=i,t=i.__v;while(t=t.__)if(t.__c){t.__c.__$f|=4;break}var r=Dn(function(){var n=e.value.value;return 0===n?0:!0===n?"":n||""}),o=Dn(function(){return!Array.isArray(r.value)&&!u(r.value)}),a=Fn(function(){this.N=Qn;if(o.value){var i=r.value;if(n.__v&&n.__v.__e&&3===n.__v.__e.nodeType)n.__v.__e.data=i}}),l=i.__$u.d;i.__$u.d=function(){a();l.call(this)};return[o,r]},[]),o=r[0],a=r[1];return o.value?a.peek():a.value}Wn.displayName="ReactiveTextNode";Object.defineProperties(Sn.prototype,{constructor:{configurable:!0,value:void 0},type:{configurable:!0,value:Wn},props:{configurable:!0,get:function(){return{data:this}}},__b:{configurable:!0,value:1}});Gn("__b",function(n,i){if("string"==typeof i.type){var t,e=i.props;for(var r in e)if("children"!==r){var o=e[r];if(o instanceof Sn){if(!t)i.__np=t={};t[r]=o;e[r]=o.peek()}}}n(i)});Gn("__r",function(n,i){if(i.type!==k){Jn();var t,e=i.__c;if(e){e.__$f&=-2;if(void 0===(t=e.__$u))e.__$u=t=function(n,i){var t;Fn(function(){t=this},{name:i});t.c=n;return t}(function(){var n;if(Ln)null==(n=t.y)||n.call(t);e.__$f|=1;e.setState({})},"function"==typeof i.type?i.type.displayName||i.type.name:"")}$n=e;Jn(t)}n(i)});Gn("__e",function(n,i,t,e){Jn();$n=void 0;n(i,t,e)});Gn("diffed",function(n,i){Jn();$n=void 0;var t;if("string"==typeof i.type&&(t=i.__e)){var e=i.__np,r=i.props;if(e){var o=t.U;if(o)for(var u in o){var a=o[u];if(void 0!==a&&!(u in e)){a.d();o[u]=void 0}}else{o={};t.U=o}for(var l in e){var c=o[l],s=e[l];if(void 0===c){c=Bn(t,l,s,r);o[l]=c}else c.o(s,r)}}}n(i)});function Bn(n,i,t,e){var r=i in n&&void 0===n.ownerSVGElement,o=Mn(t);return{o:function(n,i){o.value=n;e=i},d:Fn(function(){this.N=Qn;var t=o.value.value;if(e[i]!==t){e[i]=t;if(r)n[i]=t;else if(null!=t&&(!1!==t||"-"===i[4]))n.setAttribute(i,t);else n.removeAttribute(i)}})}}Gn("unmount",function(n,i){if("string"==typeof i.type){var t=i.__e;if(t){var e=t.U;if(e){t.U=void 0;for(var r in e){var o=e[r];if(o)o.d()}}}}else{var u=i.__c;if(u){var a=u.__$u;if(a){u.__$u=void 0;a.d()}}}n(i)});Gn("__h",function(n,i,t,e){if(e<3||9===e)i.__$f|=2;n(i,t,e)});_.prototype.shouldComponentUpdate=function(n,i){var t=this.__$u,e=t&&void 0!==t.s;for(var r in i)return!0;if(this.__f||"boolean"==typeof this.u&&!0===this.u){var o=2&this.__$f;if(!(e||o||4&this.__$f))return!0;if(1&this.__$f)return!0}else{if(!(e||4&this.__$f))return!0;if(3&this.__$f)return!0}for(var u in n)if("__source"!==u&&n[u]!==this.props[u])return!0;for(var a in this.props)if(!(a in n))return!0;return!1};function useSignal(n,i){return function(n){return Z=1,function(n,i,t){var e=on(J++,2);if(e.t=n,!e.__c&&(e.__=[t?t(i):pn(void 0,i),function(n){var i=e.__N?e.__N[0]:e.__[0],t=e.t(i,n);i!==t&&(e.__N=[t,e.__[1]],e.__c.setState({}))}],e.__c=W,!W.__f)){var r=function(n,i,t){if(!e.__c.__H)return!0;var r=e.__c.__H.__.filter(function(n){return!!n.__c});if(r.every(function(n){return!n.__N}))return!o||o.call(this,n,i,t);var u=e.__c.props!==n;return r.forEach(function(n){if(n.__N){var i=n.__[0];n.__=n.__N,n.__N=void 0,i!==n.__[0]&&(u=!0)}}),o&&o.call(this,n,i,t)||u};W.__f=!0;var o=W.shouldComponentUpdate,u=W.componentWillUpdate;W.componentWillUpdate=function(n,i,t){if(this.__e){var e=o;o=void 0,r(n,i,t),o=e}u&&u.call(this,n,i,t)},W.shouldComponentUpdate=r}return e.__N||e.__}(pn,n)}(function(){return Mn(n,i)})[0]}var Vn="undefined"==typeof requestAnimationFrame?setTimeout:function(n){var i=function(){clearTimeout(t);cancelAnimationFrame(e);n()},t=setTimeout(i,35),e=requestAnimationFrame(i)},Zn=function(n){queueMicrotask(function(){queueMicrotask(n)})};function Xn(){yn(function(){var n;while(n=zn.shift())Rn.call(n)})}function Yn(){if(1===zn.push(this))(r.requestAnimationFrame||Vn)(Xn)}function Kn(){yn(function(){var n;while(n=Hn.shift())Rn.call(n)})}function Qn(){if(1===Hn.push(this))(r.requestAnimationFrame||Zn)(Kn)}function useSignalEffect(n,i){var t=an(n);t.current=n;un(function(){return Fn(function(){this.N=Yn;return t.current()},i)},[])}function ni(n){var i=n.onClick,t=n.className,e=void 0===t?"":t,r=n.disabled,o=void 0===r?!1:r,u=n.children,a=n.variant,l=void 0===a?"secondary":a,c=n.active;return G("button",{onClick:i,className:("btn "+("primary"===l?"btn-primary":"btn-secondary")+" "+((void 0===c?0:c)?"active":"")+" "+e).trim(),disabled:o,children:u})}function ii(n){var i=n.onRefresh,t=n.title,e=void 0===t?"No Signals Detected":t,r=n.description,o=void 0===r?"Make sure your application is using @preact/signals-debug package.":r,u=n.buttonText,a=void 0===u?"Refresh Detection":u;return G("div",{className:"empty-state",children:G("div",{className:"empty-state-content",children:[G("h2",{children:e}),G("p",{children:o}),G("div",{className:"empty-state-actions",children:G(ni,{onClick:i,variant:"primary",children:a})})]})})}function ti(n){var i=n.status,t=n.message,e=n.showIndicator,r=void 0===e?!0:e,o=n.className;return G("div",{className:"connection-status "+i+" "+(void 0===o?"":o),children:[r&&G("span",{className:"status-indicator "+i}),G("span",{className:"status-text",children:t})]})}var ei=null;function ri(){if(!ei)throw new Error("DevTools context not initialized. Call initDevTools() first.");return ei}function oi(n){var i=Mn("connecting"),t=Mn("Connecting..."),e=Mn(!1);n.on("connectionStatusChanged",function(n){i.value=n.status;t.value=n.message});n.on("signalsAvailable",function(n){e.value=n});return{get status(){return i.value},get message(){return t.value},get isConnected(){return e.value},refreshConnection:function(){i.value="connecting";t.value="Connecting...";n.requestState()}}}var ui=function(n,i){return n.update.signalId===i.update.signalId&&n.children.length===i.children.length&&n.children.every(function(n,t){return ui(n,i.children[t])})};function ai(n,e){var r=Mn([]),o=Mn(!1),u=Mn(new Set),a=function(n){if(Array.isArray(n))n.forEach(function(n){if("divider"!==n.type)n.receivedAt=Date.now()});else if("update"===n.type)n.receivedAt=Date.now();r.value=[].concat(r.value,Array.isArray(n)?n:[n])},l=Dn(function(){return r.value.length>0}),c=Dn(function(){var n=new Map;r.value.forEach(function(i){if("divider"!==i.type){var t=i.signalName||"Unknown";n.set(t,(n.get(t)||0)+1)}});return n}),s=Dn(function(){return function(n){for(var i=[],t=[],e=n.slice(-100).reverse(),r=0;r<e.length;r++){var o=e[r];if("divider"!==o.type){var u=o,a=u.depth||0,l={type:"single",id:u.signalName+"-"+u.receivedAt+"-"+r,update:u,children:[],depth:a,hasChildren:!1};while(t.length>0&&t[t.length-1].depth>=a)t.pop();if(0===t.length)i.push(l);else{var c=t[t.length-1];c.children.push(l);c.hasChildren=!0}t.push(l)}}return i}(r.value)});n.on("signalUpdate",function(n){if(!o.value){var i=[].concat(n).reverse();i.push({type:"divider"});a(i)}});n.on("signalDisposed",function(n){if(!o.value)!function(n){for(var t,e=Array.isArray(n)?n:[n],r=new Set(u.value),o=i(e);!(t=o()).done;){var a=t.value;if(a.signalId)r.add(a.signalId)}u.value=r}(n)});var f=Dn(function(){var n=s.value;if(e.settings.grouped)return function(n){for(var e,r,o=[],u=i(n);!(r=u()).done;){var a=r.value;if(!e||!ui(e,a)){o.push(a);e=a}else if("group"!==e.type){o.pop();e=t({},e,{type:"group",count:2,firstUpdate:a.update,firstChildren:a.children});o.push(e)}else{e.count++;e.firstUpdate=a.update;e.firstChildren=a.children}}return o}(n);else return n});return{updates:r,updateTree:s,collapsedUpdateTree:f,totalUpdates:Dn(function(){return Object.keys(s.value).length}),signalCounts:c,disposedSignalIds:u,addUpdate:a,clearUpdates:function(){r.value=[];u.value=new Set},hasUpdates:l,isPaused:o}}function li(n){var i=Mn({enabled:!0,grouped:!0,maxUpdatesPerSecond:60,filterPatterns:[]}),t=Mn(!1),e=Mn(!1);n.on("configReceived",function(n){if(n.settings)i.value=n.settings});return{get settings(){return i.value},get showSettings(){return t.value},get showDisposedSignals(){return e.value},set settings(n){i.value=n},applySettings:function(e){i.value=e;n.sendConfig(e);t.value=!1},toggleSettings:function(){t.value=!t.value},hideSettings:function(){t.value=!1},toggleShowDisposedSignals:function(){e.value=!e.value}}}function ci(n){var i=li(n),t=ai(n,i),e=oi(n);return ei={adapter:n,connectionStore:e,updatesStore:t,settingsStore:i}}function si(){if(ei){ei.adapter.disconnect();ei=null}}function fi(){var n=ri(),i=n.connectionStore,t=n.updatesStore,e=n.settingsStore.toggleSettings,r=function(){t.isPaused.value=!t.isPaused.value},o=function(){t.clearUpdates()};return G("header",{className:"header",children:[G("div",{className:"header-title",children:[G("h1",{children:"Signals"}),G(ti,{status:i.status,message:i.message})]}),G("div",{className:"header-controls",children:[o&&G(ni,{onClick:o,children:"Clear"}),r&&G(ni,{onClick:r,active:t.isPaused.value,children:t.isPaused.value?"Resume":"Pause"}),e&&G(ni,{onClick:e,children:"Settings"})]})]})}function di(){var n=ri().settingsStore,i=n.hideSettings,e=n.applySettings,r=n.settings,o=n.showSettings,u=useSignal(r);useSignalEffect(function(){u.value=n.settings});if(!o)return null;else return G("div",{className:"settings-panel",children:G("div",{className:"settings-content",children:[G("h3",{children:"Debug Configuration"}),G("div",{className:"setting-group",children:G("label",{children:[G("input",{type:"checkbox",checked:u.value.enabled,onChange:function(n){return u.value=t({},u.value,{enabled:n.target.checked})}}),"Enable debug updates"]})}),G("div",{className:"setting-group",children:G("label",{children:[G("input",{type:"checkbox",checked:u.value.grouped,onChange:function(n){return u.value=t({},u.value,{grouped:n.target.checked})}}),"Group related updates"]})}),G("div",{className:"setting-group",children:[G("label",{htmlFor:"maxUpdatesInput",children:"Max updates per second:"}),G("input",{type:"number",id:"maxUpdatesInput",value:u.value.maxUpdatesPerSecond,min:"1",max:"1000",onChange:function(n){return u.value=t({},u.value,{maxUpdatesPerSecond:parseInt(n.target.value)||60})}})]}),G("div",{className:"setting-group",children:[G("label",{htmlFor:"filterPatternsInput",children:"Filter patterns (one per line):"}),G("textarea",{id:"filterPatternsInput",placeholder:"user.*\n.*State$\nglobal",value:u.value.filterPatterns.join("\n"),onChange:function(n){return u.value=t({},u.value,{filterPatterns:n.target.value.split("\n").map(function(n){return n.trim()}).filter(function(n){return n.length>0})})}})]}),G("h3",{children:"Graph Settings"}),G("div",{className:"setting-group",children:[G("label",{children:[G("input",{type:"checkbox",checked:n.showDisposedSignals,onChange:function(){return n.toggleShowDisposedSignals()}}),"Show disposed signals in graph"]}),G("p",{className:"setting-description",children:"When enabled, signals and effects that have been disposed will still be shown in the graph view."})]}),G("div",{className:"settings-actions",children:[G(ni,{onClick:function(){e(u.value)},variant:"primary",children:"Apply"}),G(ni,{onClick:i,children:"Cancel"})]})]})})}var hi=function(n){var i=document.createElement("textarea");try{i.value=n;document.body.append(i);i.select();document.execCommand("copy")}finally{i.remove()}};function vi(){var n=ri(),t=n.updatesStore,e=n.settingsStore,r=t.updates,o=t.disposedSignalIds,u=an(null),a=an(null),l=an(null),c=useSignal({x:0,y:0}),s=useSignal(1),f=useSignal(!1),d=useSignal({x:0,y:0}),h=useSignal(!1),v=useSignal(),p=useSignal(null),m=useSignal({x:0,y:0});un(function(){var n=function(n){if(h.value&&l.current&&!l.current.contains(n.target))h.value=!1};document.addEventListener("mousedown",n);return function(){document.removeEventListener("mousedown",n)}},[]);var g=function(n,i){var t=an(n);t.current=n;$n.__$f|=4;return ln(function(){return Dn(function(){return t.current()},void 0)},[])}(function(){var n=r.value,t=o.value,u=e.showDisposedSignals;if(!n||0===n.length)return{nodes:[],links:[]};for(var a,l=new Map,c=new Map,s=n.filter(function(n){return"divider"!==n.type}),f=i(s);!(a=f()).done;){var d=a.value;if(d.signalId)if(u||!t.has(d.signalId)){var h=d.signalType,v=d.depth||0;if(!l.has(d.signalId))l.set(d.signalId,{id:d.signalId,name:d.signalName,type:h,x:0,y:0,depth:v});if(d.subscribedTo){if(!u&&t.has(d.subscribedTo))continue;var p=d.subscribedTo+"->"+d.signalId;if(!c.has(p))c.set(p,{source:d.subscribedTo,target:d.signalId})}}}var m=Array.from(l.values()),g=new Map;m.forEach(function(n){if(!g.has(n.depth))g.set(n.depth,[]);g.get(n.depth).push(n)});var y=Math.max.apply(Math,m.map(function(n){return n.depth}));g.forEach(function(n,i){var t=120*(n.length-1),e=80+100*y-t/2;n.forEach(function(n,t){n.x=100+250*i;n.y=e+120*t})});return{nodes:m,links:Array.from(c.values())}}),y=function(){f.value=!1},b=/[^a-zA-Z0-9]/g,w=function(n){return n.replace(b,"_")},N=function(n){var i=6.5*n.name.length+16;return Math.max(30,Math.min(i/2,70))},k=function(n){var i=a.current;if(i&&p.value){var t=i.getBoundingClientRect();m.value={x:n.clientX-t.left,y:n.clientY-t.top}}},_=function(){p.value=null},x=function(n){v.value=n;setTimeout(function(){v.value=void 0},2e3)};if(0===g.value.nodes.length)return G("div",{className:"graph-empty",children:G("div",{children:[G("h3",{children:"No Signal Dependencies"}),G("p",{children:"Create some signals with dependencies to see the graph visualization."})]})});var C=Math.max.apply(Math,[800].concat(g.value.nodes.map(function(n){return n.x+100}))),S=Math.max.apply(Math,[600].concat(g.value.nodes.map(function(n){return n.y+100})));return G("div",{className:"graph-container",children:G("div",{ref:a,className:"graph-content",onMouseDown:function(n){if(0===n.button){f.value=!0;d.value={x:n.clientX-c.value.x,y:n.clientY-c.value.y}}},onMouseMove:function(n){if(f.value)c.value={x:n.clientX-d.value.x,y:n.clientY-d.value.y}},onMouseUp:y,onMouseLeave:y,onWheel:function(n){n.preventDefault();var i=a.current;if(i){var t=i.getBoundingClientRect(),e=n.clientX-t.left,r=n.clientY-t.top,o=n.deltaY>0?.96:1.04,u=Math.min(Math.max(.1,s.value*o),5),l=u/s.value;c.value={x:e-(e-c.value.x)*l,y:r-(r-c.value.y)*l};s.value=u}},style:{cursor:f.value?"grabbing":"grab"},children:[G("svg",{ref:u,className:"graph-svg",width:C,height:S,viewBox:"0 0 "+C+" "+S,children:[G("defs",{children:G("marker",{id:"arrowhead",markerWidth:"8",markerHeight:"6",refX:"7",refY:"3",orient:"auto",children:G("polygon",{points:"0 0, 8 3, 0 6",fill:"#94a3b8"})})}),G("g",{transform:"translate("+c.value.x+", "+c.value.y+") scale("+s.value+")",children:[G("g",{className:"links",children:g.value.links.map(function(n,i){var t=g.value.nodes.find(function(i){return i.id===n.source}),e=g.value.nodes.find(function(i){return i.id===n.target});if(!t||!e)return null;var r=N(t),o=N(e),u=t.x+r,a=t.y,l=e.x-o-8,c=e.y,s=u+.5*(l-u);return G("path",{className:"graph-link",d:"M "+u+" "+a+" C "+s+" "+a+", "+s+" "+c+", "+l+" "+c,fill:"none",markerEnd:"url(#arrowhead)"},"link-"+i)})}),G("g",{className:"nodes",children:g.value.nodes.map(function(n){var i,t=N(n),e=Math.floor((2*t-16)/6.5),r=n.name.length>e?n.name.slice(0,e-1)+"…":n.name;return G("g",{className:"graph-node-group "+((null==(i=p.value)?void 0:i.id)===n.id?"hovered":""),onMouseEnter:function(i){return function(n,i){p.value=n;var t=a.current;if(t){var e=t.getBoundingClientRect();m.value={x:i.clientX-e.left,y:i.clientY-e.top}}}(n,i)},onMouseMove:k,onMouseLeave:_,children:[G("circle",{className:"graph-node "+n.type,cx:n.x,cy:n.y,r:t}),G("text",{className:"graph-text",x:n.x,y:n.y,textAnchor:"middle",dominantBaseline:"central",children:r})]},n.id)})})]})]}),G("div",{className:"graph-controls",children:[G("button",{className:"graph-reset-button",onClick:function(){c.value={x:0,y:0};s.value=1},title:"Reset view",children:"⟲ Reset View"}),G("div",{ref:l,className:"graph-export-container",children:[G("button",{className:"graph-export-button",onClick:function(){h.value=!h.value},title:"Export graph",children:"↓ Export"}),h.value&&G("div",{className:"graph-export-menu",children:[G("button",{className:"graph-export-menu-item",onClick:function(){try{h.value=!1;var n=["graph LR"];g.value.nodes.forEach(function(i){var t=w(i.id),e=i.name;switch(i.type){case"signal":n.push(" "+t+"(("+e+"))");break;case"computed":n.push(" "+t+"("+e+")");break;case"effect":n.push(" "+t+"(["+e+"])")}});for(var t,e=i(g.value.links);!(t=e()).done;){var r=t.value,o=w(r.source),u=w(r.target);n.push(" "+o+" --\x3e "+u)}hi(n.join("\n"));x("Copied to clipboard!");return Promise.resolve()}catch(n){return Promise.reject(n)}},children:"Mermaid"}),G("button",{className:"graph-export-menu-item",onClick:function(){try{h.value=!1;var n=JSON.stringify(g.value,null,2);hi(n);x("Copied to clipboard!");return Promise.resolve()}catch(n){return Promise.reject(n)}},children:"JSON"})]})]}),G("div",{className:"graph-zoom-indicator",title:"Zoom level",children:[Math.round(100*s.value),"%"]})]}),v.value&&G("div",{className:"graph-toast",children:v.value}),p.value&&G("div",{className:"graph-tooltip",style:{left:m.value.x+12,top:m.value.y-8},children:[G("div",{className:"tooltip-header",children:G("span",{className:"tooltip-type "+p.value.type,children:p.value.type})}),G("div",{className:"tooltip-name",children:p.value.name}),G("div",{className:"tooltip-id",children:["ID: ",p.value.id]})]}),G("div",{className:"graph-legend",children:[G("div",{className:"legend-item",children:[G("div",{className:"legend-color",style:{backgroundColor:"#2196f3"}}),G("span",{children:"Signal"})]}),G("div",{className:"legend-item",children:[G("div",{className:"legend-color",style:{backgroundColor:"#ff9800"}}),G("span",{children:"Computed"})]}),G("div",{className:"legend-item",children:[G("div",{className:"legend-color",style:{backgroundColor:"#4caf50"}}),G("span",{children:"Effect"})]})]})]})})}function pi(n){var i=n.update,t=n.count,e=n.firstUpdate,r=new Date(i.timestamp||i.receivedAt).toLocaleTimeString(),o=function(n){if(null===n)return"null";if(void 0===n)return"undefined";if("string"==typeof n)return'"'+n+'"';if("function"==typeof n)return"function()";if("object"==typeof n)try{return JSON.stringify(n,null,0)}catch(n){return"[Object]"}return String(n)},u=t&&G("span",{class:"update-count",title:"Number of grouped identical updates",children:["x",t]});if("effect"===i.type)return G("div",{className:"update-item "+i.type,children:G("div",{className:"update-header",children:[G("span",{className:"signal-name",children:["↪️ ",i.signalName,u]}),G("span",{className:"update-time",children:r})]})});var a=o(i.prevValue),l=o(i.newValue),c=void 0!==e?o(e.prevValue):void 0;return G("div",{class:"update-item "+i.type,children:[G("div",{class:"update-header",children:[G("span",{class:"signal-name",children:[0===i.depth?"🎯":"↪️"," ",i.signalName,u]}),G("span",{class:"update-time",children:r})]}),G("div",{class:"value-change",children:[c&&c!==a&&G(k,{children:[G("span",{class:"value-prev",children:c}),G("span",{class:"value-arrow",children:"..."})]}),G("span",{class:"value-prev",children:a}),G("span",{class:"value-arrow",children:"→"}),G("span",{class:"value-new",children:l})]})]})}function mi(n){var i,e=n.node,r=useSignal(!1),o=e.children.length>0,u="group"===e.type?e.count:void 0,a="group"===e.type?e.firstUpdate:void 0;if("group"===e.type&&e.firstChildren)i=e.children.map(function(n,i){var r=e.firstChildren[i];return t({},n,{type:"group",firstUpdate:r.update,firstChildren:r.children,count:e.count})});else i=e.children;return G("div",{className:"tree-node",children:[G("div",{className:"tree-node-content",children:[o&&G("button",{className:"collapse-button",onClick:function(){r.value=!r.value},"aria-label":r.value?"Expand":"Collapse",children:r.value?"▶":"▼"}),!o&&G("div",{className:"collapse-spacer"}),G("div",{className:"update-content",children:G(pi,{update:e.update,count:u,firstUpdate:a})})]}),o&&!r.value&&G("div",{className:"tree-children",children:i.map(function(n){return G(mi,{node:n},n.id)})})]})}function gi(){var n=ri().updatesStore,i=an(null),t=n.collapsedUpdateTree.value;useSignalEffect(function(){if(i.current)i.current.scrollTop=0});return G("div",{className:"updates-container",children:[G("div",{className:"updates-header",children:G("div",{className:"updates-stats",children:[G("span",{children:["Updates: ",G("strong",{children:n.totalUpdates.value})]}),G("span",{children:["Signals: ",G("strong",{children:n.signalCounts.value.size})]})]})}),G("div",{className:"updates-list",ref:i,children:t.map(function(n){return G(mi,{node:n},n.id)})})]})}var yi=["adapter","container"],bi=function(n){try{var i=n.adapter,e=n.container,r=function(n,i){if(null==n)return{};var t={};for(var e in n)if({}.hasOwnProperty.call(n,e)){if(-1!==i.indexOf(e))continue;t[e]=n[e]}return t}(n,yi);ci(i);return Promise.resolve(i.connect()).then(function(){e.innerHTML="";z(G(wi,t({},r)),e);return function(){z(null,e);si()}})}catch(n){return Promise.reject(n)}};function wi(n){var i=void 0===n?{}:n,t=i.hideHeader,e=void 0===t?!1:t,r=i.initialTab,o=void 0===r?"updates":r,u=ri().connectionStore,a=useSignal(o);return G("div",{id:"app",className:"signals-devtools",children:[!e&&G(fi,{}),G(di,{}),G("main",{className:"main-content",children:[G("div",{className:"tabs",children:[G("button",{className:"tab "+("updates"===a.value?"active":""),onClick:function(){return a.value="updates"},children:"Updates"}),G("button",{className:"tab "+("graph"===a.value?"active":""),onClick:function(){return a.value="graph"},children:"Dependency Graph"})]}),G("div",{className:"tab-content",children:!u.isConnected?G(ii,{onRefresh:u.refreshConnection}):G(k,{children:["updates"===a.value&&G(gi,{}),"graph"===a.value&&G(vi,{})]})})]})]})}export{ni as Button,wi as DevToolsPanel,ii as EmptyState,vi as GraphVisualization,fi as Header,di as SettingsPanel,ti as StatusIndicator,pi as UpdateItem,mi as UpdateTreeNodeComponent,gi as UpdatesContainer,oi as createConnectionStore,li as createSettingsStore,ai as createUpdatesStore,si as destroyDevTools,ri as getContext,ci as initDevTools,bi as mount};//# sourceMappingURL=devtools-ui.module.js.map
|