mates-devtools 0.1.0-beta.5 → 0.1.0-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/dist/mates-devtools.es.js +953 -835
  2. package/dist/mates-devtools.umd.js +190 -179
  3. package/dist/types/Mates-DevTools/src/MatesDevTools.d.ts.map +1 -1
  4. package/dist/types/Mates-DevTools/src/MatesDevToolsComponent.d.ts.map +1 -1
  5. package/dist/types/Mates-DevTools/src/components/Header.d.ts +3 -2
  6. package/dist/types/Mates-DevTools/src/components/Header.d.ts.map +1 -1
  7. package/dist/types/Mates-DevTools/src/components/UserLogsViewer.d.ts +6 -0
  8. package/dist/types/Mates-DevTools/src/components/UserLogsViewer.d.ts.map +1 -0
  9. package/dist/types/Mates-DevTools/src/userLogStore.d.ts +26 -0
  10. package/dist/types/Mates-DevTools/src/userLogStore.d.ts.map +1 -0
  11. package/dist/types/lib/Directives/animationClasses.d.ts +1 -1
  12. package/dist/types/lib/Directives/customEvent.d.ts +74 -0
  13. package/dist/types/lib/Directives/customEvent.d.ts.map +1 -0
  14. package/dist/types/lib/Directives/disappear.d.ts +23 -0
  15. package/dist/types/lib/Directives/disappear.d.ts.map +1 -0
  16. package/dist/types/lib/Directives/eleHook.d.ts.map +1 -1
  17. package/dist/types/lib/Directives/htmlHook.d.ts.map +1 -1
  18. package/dist/types/lib/Directives/index.d.ts +5 -3
  19. package/dist/types/lib/Directives/index.d.ts.map +1 -1
  20. package/dist/types/lib/Directives/onDirective.d.ts.map +1 -1
  21. package/dist/types/lib/Directives/onParentDirective.d.ts +1 -1
  22. package/dist/types/lib/Directives/timerDirective.d.ts +6 -6
  23. package/dist/types/lib/Directives/timerDirective.d.ts.map +1 -1
  24. package/dist/types/lib/Directives/virtualHelpers.d.ts +8 -6
  25. package/dist/types/lib/Directives/virtualHelpers.d.ts.map +1 -1
  26. package/dist/types/lib/Fetch/Fetch.d.ts +59 -13
  27. package/dist/types/lib/Fetch/Fetch.d.ts.map +1 -1
  28. package/dist/types/lib/MatesUtils/FetchUtils.d.ts +23 -0
  29. package/dist/types/lib/MatesUtils/FetchUtils.d.ts.map +1 -0
  30. package/dist/types/lib/MatesUtils/MatesUtils.d.ts +47 -0
  31. package/dist/types/lib/MatesUtils/MatesUtils.d.ts.map +1 -0
  32. package/dist/types/lib/MatesUtils/RouterUtils.d.ts +39 -0
  33. package/dist/types/lib/MatesUtils/RouterUtils.d.ts.map +1 -0
  34. package/dist/types/lib/MatesUtils/StorageUtils.d.ts +16 -0
  35. package/dist/types/lib/MatesUtils/StorageUtils.d.ts.map +1 -0
  36. package/dist/types/lib/MatesUtils/ThemeUtils.d.ts +18 -0
  37. package/dist/types/lib/MatesUtils/ThemeUtils.d.ts.map +1 -0
  38. package/dist/types/lib/MatesUtils/index.d.ts +6 -0
  39. package/dist/types/lib/MatesUtils/index.d.ts.map +1 -0
  40. package/dist/types/lib/Mutables/Extended Atoms/changeFlagAtom.d.ts +56 -0
  41. package/dist/types/lib/Mutables/Extended Atoms/changeFlagAtom.d.ts.map +1 -0
  42. package/dist/types/lib/Mutables/Extended Atoms/index.d.ts +1 -0
  43. package/dist/types/lib/Mutables/Extended Atoms/index.d.ts.map +1 -1
  44. package/dist/types/lib/Mutables/Extended Atoms/themeAtom.d.ts +3 -15
  45. package/dist/types/lib/Mutables/Extended Atoms/themeAtom.d.ts.map +1 -1
  46. package/dist/types/lib/Mutables/atom/atom.d.ts.map +1 -1
  47. package/dist/types/lib/Mutables/atom/delayAtom.d.ts +40 -0
  48. package/dist/types/lib/Mutables/atom/delayAtom.d.ts.map +1 -0
  49. package/dist/types/lib/Mutables/atom/index.d.ts +2 -1
  50. package/dist/types/lib/Mutables/atom/index.d.ts.map +1 -1
  51. package/dist/types/lib/Mutables/atom/storageAtom.d.ts +9 -31
  52. package/dist/types/lib/Mutables/atom/storageAtom.d.ts.map +1 -1
  53. package/dist/types/lib/Mutables/atom/titleAtom.d.ts +3 -9
  54. package/dist/types/lib/Mutables/atom/titleAtom.d.ts.map +1 -1
  55. package/dist/types/lib/Mutables/form/formAtom.d.ts +7 -5
  56. package/dist/types/lib/Mutables/form/formAtom.d.ts.map +1 -1
  57. package/dist/types/lib/Mutables/scope/scope.d.ts +32 -1
  58. package/dist/types/lib/Mutables/scope/scope.d.ts.map +1 -1
  59. package/dist/types/lib/Mutables/useStore/hostContext.d.ts.map +1 -1
  60. package/dist/types/lib/Mutables/useStore/subscription.d.ts +1 -1
  61. package/dist/types/lib/Mutables/useStore/subscription.d.ts.map +1 -1
  62. package/dist/types/lib/Router/Router.d.ts +2 -2
  63. package/dist/types/lib/Router/Router.d.ts.map +1 -1
  64. package/dist/types/lib/Router/animatedRouter.d.ts.map +1 -1
  65. package/dist/types/lib/Router/hashAtom.d.ts +7 -3
  66. package/dist/types/lib/Router/hashAtom.d.ts.map +1 -1
  67. package/dist/types/lib/Router/historyStateAtom.d.ts +8 -0
  68. package/dist/types/lib/Router/historyStateAtom.d.ts.map +1 -0
  69. package/dist/types/lib/Router/historyUtils.d.ts +14 -0
  70. package/dist/types/lib/Router/historyUtils.d.ts.map +1 -0
  71. package/dist/types/lib/Router/index.d.ts +2 -6
  72. package/dist/types/lib/Router/index.d.ts.map +1 -1
  73. package/dist/types/lib/Router/isPathMatching.d.ts +5 -1
  74. package/dist/types/lib/Router/isPathMatching.d.ts.map +1 -1
  75. package/dist/types/lib/Router/location.d.ts +4 -63
  76. package/dist/types/lib/Router/location.d.ts.map +1 -1
  77. package/dist/types/lib/Router/navigateTo.d.ts +8 -27
  78. package/dist/types/lib/Router/navigateTo.d.ts.map +1 -1
  79. package/dist/types/lib/Router/navigationLock.d.ts +5 -46
  80. package/dist/types/lib/Router/navigationLock.d.ts.map +1 -1
  81. package/dist/types/lib/Router/navigationRequest.d.ts +26 -0
  82. package/dist/types/lib/Router/navigationRequest.d.ts.map +1 -0
  83. package/dist/types/lib/Router/pathAtom.d.ts +16 -36
  84. package/dist/types/lib/Router/pathAtom.d.ts.map +1 -1
  85. package/dist/types/lib/Router/qsAtom.d.ts +7 -3
  86. package/dist/types/lib/Router/qsAtom.d.ts.map +1 -1
  87. package/dist/types/lib/Template/hmr.d.ts +6 -0
  88. package/dist/types/lib/Template/hmr.d.ts.map +1 -0
  89. package/dist/types/lib/Template/x-x.d.ts +1 -0
  90. package/dist/types/lib/Template/x-x.d.ts.map +1 -1
  91. package/dist/types/lib/Template/x-x.types.d.ts +0 -22
  92. package/dist/types/lib/Template/x-x.types.d.ts.map +1 -1
  93. package/dist/types/lib/Template/x.d.ts +19 -2
  94. package/dist/types/lib/Template/x.d.ts.map +1 -1
  95. package/dist/types/lib/TrackState/componentStatus.d.ts +0 -5
  96. package/dist/types/lib/TrackState/componentStatus.d.ts.map +1 -1
  97. package/dist/types/lib/TrackState/readTracking.d.ts.map +1 -1
  98. package/dist/types/lib/Utils/cookie.d.ts +2 -0
  99. package/dist/types/lib/Utils/cookie.d.ts.map +1 -0
  100. package/dist/types/lib/Utils/countdown.d.ts +48 -0
  101. package/dist/types/lib/Utils/countdown.d.ts.map +1 -0
  102. package/dist/types/lib/Utils/index.d.ts +3 -0
  103. package/dist/types/lib/Utils/index.d.ts.map +1 -1
  104. package/dist/types/lib/Utils/logEvent.d.ts +24 -0
  105. package/dist/types/lib/Utils/logEvent.d.ts.map +1 -0
  106. package/dist/types/lib/Utils/logger.d.ts +24 -13
  107. package/dist/types/lib/Utils/logger.d.ts.map +1 -1
  108. package/dist/types/lib/Utils/onceIdle.d.ts +28 -0
  109. package/dist/types/lib/Utils/onceIdle.d.ts.map +1 -0
  110. package/dist/types/lib/Utils/svgIcon.d.ts +2 -4
  111. package/dist/types/lib/Utils/svgIcon.d.ts.map +1 -1
  112. package/dist/types/lib/actions/asyncAction.d.ts.map +1 -1
  113. package/dist/types/lib/css-in-js/index.d.ts +1 -1
  114. package/dist/types/lib/css-in-js/index.d.ts.map +1 -1
  115. package/dist/types/lib/css-in-js/stylesheet.d.ts +15 -0
  116. package/dist/types/lib/css-in-js/stylesheet.d.ts.map +1 -1
  117. package/dist/types/lib/css-in-js/theme.d.ts +0 -8
  118. package/dist/types/lib/css-in-js/theme.d.ts.map +1 -1
  119. package/dist/types/lib/index.d.ts +25 -18
  120. package/dist/types/lib/index.d.ts.map +1 -1
  121. package/dist/types/lib/indexdb/index.d.ts +3 -0
  122. package/dist/types/lib/indexdb/index.d.ts.map +1 -0
  123. package/dist/types/lib/indexdb/indexdb.d.ts +86 -0
  124. package/dist/types/lib/indexdb/indexdb.d.ts.map +1 -0
  125. package/dist/types/lib/indexdb/types.d.ts +249 -0
  126. package/dist/types/lib/indexdb/types.d.ts.map +1 -0
  127. package/dist/types/lib/minidb/index.d.ts +3 -0
  128. package/dist/types/lib/minidb/index.d.ts.map +1 -0
  129. package/dist/types/lib/minidb/minidb.d.ts +105 -0
  130. package/dist/types/lib/minidb/minidb.d.ts.map +1 -0
  131. package/dist/types/lib/on/hooks.d.ts.map +1 -1
  132. package/dist/types/lib/portals/floating-container.d.ts +129 -0
  133. package/dist/types/lib/portals/floating-container.d.ts.map +1 -0
  134. package/dist/types/lib/portals/index.d.ts +5 -3
  135. package/dist/types/lib/portals/index.d.ts.map +1 -1
  136. package/dist/types/lib/portals/popup.d.ts +75 -11
  137. package/dist/types/lib/portals/popup.d.ts.map +1 -1
  138. package/dist/types/lib/portals/popupPlacement.d.ts +52 -0
  139. package/dist/types/lib/portals/popupPlacement.d.ts.map +1 -0
  140. package/dist/types/lib/portals/portal.d.ts +40 -16
  141. package/dist/types/lib/portals/portal.d.ts.map +1 -1
  142. package/dist/types/lib/socket/ws.d.ts +2 -2
  143. package/dist/types/lib/ssr/index.d.ts +1 -0
  144. package/dist/types/lib/ssr/index.d.ts.map +1 -1
  145. package/dist/types/lib/ssr/ssrFlag.d.ts +56 -21
  146. package/dist/types/lib/ssr/ssrFlag.d.ts.map +1 -1
  147. package/dist/types/lib/ssr/useCtx.d.ts +63 -0
  148. package/dist/types/lib/ssr/useCtx.d.ts.map +1 -0
  149. package/dist/types/lib/virtualizer/Virtualizer.d.ts +3 -2
  150. package/dist/types/lib/virtualizer/Virtualizer.d.ts.map +1 -1
  151. package/dist/types/lib/virtualizer/layouts/shared/BaseLayout.d.ts +8 -0
  152. package/dist/types/lib/virtualizer/layouts/shared/BaseLayout.d.ts.map +1 -1
  153. package/dist/types/lib/virtualizer/mates-adapter.d.ts +36 -88
  154. package/dist/types/lib/virtualizer/mates-adapter.d.ts.map +1 -1
  155. package/package.json +1 -1
  156. package/dist/types/lib/Router/pathResolver.d.ts +0 -9
  157. package/dist/types/lib/Router/pathResolver.d.ts.map +0 -1
  158. package/dist/types/lib/portals/tip.d.ts +0 -38
  159. package/dist/types/lib/portals/tip.d.ts.map +0 -1
  160. package/dist/types/lib/virtualizer/layouts/grid.d.ts +0 -25
  161. package/dist/types/lib/virtualizer/layouts/grid.d.ts.map +0 -1
@@ -1,119 +1,119 @@
1
- (function(s,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("mates")):typeof define=="function"&&define.amd?define(["exports","mates"],o):(s=typeof globalThis<"u"?globalThis:s||self,o(s.MatesDevTools={},s.Mates))})(this,(function(s,o){"use strict";const Gt="selected",on="selected",cn=o.keyframes("mates-dt-flash",{"0%":{background:"var(--dt-flash-bg)",color:"#fff"},"100%":{background:"transparent",color:"var(--dt-text-muted)"}}),ot={"&::-webkit-scrollbar":{width:"6px"},"&::-webkit-scrollbar-track":{background:"transparent"},"&::-webkit-scrollbar-thumb":{background:"var(--dt-scrollbar)",borderRadius:"3px"},"&::-webkit-scrollbar-thumb:hover":{background:"var(--dt-scrollbar-hover)"}},r=o.globalCSS({fab:{position:"fixed",bottom:"50px",right:"50px",width:"44px",height:"44px",borderRadius:"50%",background:"var(--dt-bg)",border:"2px solid var(--dt-border)",color:"var(--dt-text-bright)",fontSize:"20px",lineHeight:"1",display:"flex",alignItems:"center",justifyContent:"center",cursor:"grab",zIndex:"100000",boxShadow:"0 2px 10px rgba(0,0,0,0.4)",userSelect:"none",transition:"box-shadow 0.15s ease, border-color 0.15s ease, transform 0.1s ease","-webkit-tap-highlight-color":"transparent","&:hover":{borderColor:"var(--dt-accent)",boxShadow:"0 4px 16px rgba(0,119,230,0.3)"},"&:active":{cursor:"grabbing",transform:"scale(0.95)"}},fabDragging:{cursor:"grabbing",transform:"scale(0.95)"},panel:{position:"fixed",bottom:"0",left:"0",right:"0",width:"100%",height:"320px",background:"var(--dt-bg)",borderTop:"1px solid var(--dt-border)",boxShadow:"0 -2px 12px rgba(0,0,0,0.4)",zIndex:"99999",display:"flex",flexDirection:"column",fontFamily:"'SF Mono', 'Fira Code', 'Consolas', monospace",fontSize:"13px",color:"var(--dt-text)",opacity:"0",transform:"translateY(12px)",transition:"opacity 0.2s ease, transform 0.2s ease",pointerEvents:"none"},panelVisible:{opacity:"1",transform:"translateY(0)",pointerEvents:"all"},minimized:{display:"none"},resizeHandle:{position:"absolute",top:"0",left:"0",right:"0",height:"4px",cursor:"ns-resize",zIndex:"1","&:hover":{background:"rgba(0,119,230,0.4)"}},header:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"0 10px",height:"38px",borderBottom:"1px solid var(--dt-border-2)",flexShrink:"0",gap:"16px"},headerLeft:{display:"flex",alignItems:"center",gap:"16px",minWidth:"0"},title:{fontWeight:"700",fontSize:"12px",color:"var(--dt-text-bright)",letterSpacing:"0.06em",textTransform:"uppercase",whiteSpace:"nowrap",flexShrink:"0"},controls:{display:"flex",alignItems:"center",gap:"4px",flexShrink:"0"},button:{background:"none",border:"none",color:"var(--dt-text-muted)",cursor:"pointer",padding:"4px 6px",borderRadius:"4px",fontSize:"13px",lineHeight:"1",display:"flex",alignItems:"center",justifyContent:"center",transition:"background 0.1s, color 0.1s","&:hover":{background:"var(--dt-bg-3)",color:"var(--dt-text-bright)"}},tabBar:{display:"flex",alignItems:"center",gap:"4px"},tabBtn:{background:"none",border:"none",color:"var(--dt-text-muted)",cursor:"pointer",padding:"4px 12px",borderRadius:"4px",fontSize:"12px",fontFamily:"inherit",fontWeight:"500",letterSpacing:"0.03em",transition:"background 0.1s, color 0.1s",position:"relative","&:hover":{background:"var(--dt-bg-3)",color:"var(--dt-text)"},"&.active":{color:"var(--dt-text-selected)",background:"var(--dt-bg-selected)"}},tabBadge:{display:"inline-flex",alignItems:"center",justifyContent:"center",background:"var(--dt-accent)",color:"#fff",borderRadius:"8px",fontSize:"10px",fontWeight:"700",minWidth:"16px",height:"16px",padding:"0 4px",marginLeft:"5px",lineHeight:"1"},body:{display:"flex",flex:"1",minHeight:"0",overflow:"hidden"},leftColumn:{width:"260px",minWidth:"160px",borderRight:"1px solid var(--dt-border-2)",display:"flex",flexDirection:"column",flexShrink:"0"},leftTabs:{display:"flex",gap:"4px",padding:"5px 8px",borderBottom:"1px solid var(--dt-border-2)",flexShrink:"0"},leftTabBtn:{background:"none",border:"none",color:"var(--dt-text-dim)",cursor:"pointer",padding:"3px 6px",borderRadius:"3px",display:"flex",alignItems:"center",justifyContent:"center",transition:"background 0.1s, color 0.1s","&:hover":{background:"var(--dt-bg-3)",color:"var(--dt-text)"},"&.active":{background:"var(--dt-bg-selected)",color:"var(--dt-text-selected)"}},content:{flex:"1",overflowY:"auto",...ot},componentSearch:{width:"100%",boxSizing:"border-box",background:"var(--dt-bg-input)",border:"none",borderBottom:"1px solid var(--dt-border-2)",color:"var(--dt-text)",fontFamily:"inherit",fontSize:"12px",padding:"6px 10px",outline:"none",flexShrink:"0","&::placeholder":{color:"var(--dt-text-dimmer)"},"&:focus":{borderBottomColor:"var(--dt-accent)"}},componentList:{listStyle:"none",margin:"0",padding:"4px 0"},componentItem:{display:"flex",alignItems:"center",gap:"6px",justifyContent:"space-between",padding:"5px 8px",cursor:"pointer",borderRadius:"3px",margin:"1px 4px",transition:"background 0.1s","&:hover":{background:"var(--dt-bg-hover)"},"&.selected":{background:"var(--dt-bg-selected)",color:"var(--dt-text-selected)"}},componentName:{flex:"1",minWidth:"0",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:"12px",color:"var(--dt-text)"},componentBadge:{display:"flex",alignItems:"center",gap:"6px",flexShrink:"0"},componentBadgeSelected:{display:"flex",alignItems:"center",gap:"6px",flexShrink:"0",color:"var(--dt-accent)"},componentCount:{fontSize:"11px",color:"var(--dt-text-dim)",background:"var(--dt-bg-3)",borderRadius:"8px",padding:"1px 6px",minWidth:"18px",textAlign:"center"},componentCountSelected:{fontSize:"11px",color:"var(--dt-accent)",background:"var(--dt-bg-3)",borderRadius:"8px",padding:"1px 6px",minWidth:"18px",textAlign:"center"},componentHighlightBtn:{background:"none",border:"none",color:"var(--dt-text-dim)",cursor:"pointer",padding:"2px 4px",borderRadius:"3px",fontSize:"11px",lineHeight:"1",display:"flex",alignItems:"center",opacity:"1",transition:"color 0.1s","&:hover":{color:"var(--dt-accent)"}},componentHighlightBtnSelected:{background:"none",border:"none",color:"var(--dt-accent)",cursor:"pointer",padding:"2px 4px",borderRadius:"3px",fontSize:"11px",lineHeight:"1",display:"flex",alignItems:"center",opacity:"1",transition:"color 0.1s","&:hover":{color:"var(--dt-accent)"}},empty:{padding:"16px 12px",color:"var(--dt-text-dimmer)",fontSize:"12px",textAlign:"center"},treeToggle:{background:"none",border:"none",color:"var(--dt-text-dim)",cursor:"pointer",padding:"0 3px",fontSize:"11px",lineHeight:"1",flexShrink:"0",width:"16px",textAlign:"center","&:hover":{color:"var(--dt-text)"}},treeLeaf:{display:"inline-block",width:"16px",flexShrink:"0",textAlign:"center",color:"var(--dt-text-dim)"},inspector:{flex:"1",minWidth:"0",overflowY:"auto",padding:"10px",...ot},inspectorBreadcrumb:{display:"flex",alignItems:"center",gap:"4px",marginBottom:"10px",flexWrap:"wrap"},breadcrumbSegment:{color:"var(--dt-text-dim)",cursor:"pointer",fontSize:"11px","&:hover":{color:"var(--dt-text-selected)"}},breadcrumbSeparator:{color:"var(--dt-border)",fontSize:"11px"},breadcrumbCurrent:{color:"var(--dt-text-selected)",fontSize:"11px"},inspectorTitle:{fontWeight:"600",fontSize:"13px",color:"var(--dt-text-bright)",marginBottom:"8px"},instanceCount:{fontSize:"11px",color:"var(--dt-text-dim)",marginBottom:"8px"},instanceList:{listStyle:"none",margin:"0 0 8px 0",padding:"0",display:"flex",flexDirection:"column",gap:"4px"},instanceGroup:{border:"1px solid var(--dt-border-2)",borderRadius:"4px",overflow:"hidden"},instanceItem:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"6px",padding:"5px 10px",cursor:"pointer",transition:"background 0.1s","&:hover":{background:"var(--dt-bg-hover)"},"&.selected":{background:"var(--dt-bg-selected)"}},instanceToggle:{background:"none",border:"none",color:"var(--dt-text-dim)",cursor:"pointer",padding:"0 3px",fontSize:"11px",flexShrink:"0","&:hover":{color:"var(--dt-text)"}},instanceToggleSelected:{background:"none",border:"none",color:"var(--dt-accent)",cursor:"pointer",padding:"0 3px",fontSize:"11px",flexShrink:"0","&:hover":{color:"var(--dt-accent)"}},instanceId:{fontSize:"11px",color:"var(--dt-text-dim)",flexShrink:"0",marginRight:"2px"},instanceDetails:{margin:"0 0 6px 0",padding:"8px 12px",borderLeft:"2px solid var(--dt-instance-border)",background:"var(--dt-instance-bg)",borderRadius:"0 4px 4px 0"},highlightBtn:{background:"none",border:"1px solid var(--dt-border)",color:"var(--dt-text-muted)",cursor:"pointer",padding:"2px 7px",borderRadius:"3px",fontSize:"11px",fontFamily:"inherit",transition:"border-color 0.1s, color 0.1s","&:hover":{borderColor:"var(--dt-accent)",color:"var(--dt-accent)"}},domHighlight:{position:"absolute",zIndex:"100001",pointerEvents:"none",border:"2px solid #e53e3e",background:"rgba(229,62,62,0.18)",borderRadius:"3px",transition:"opacity 0.6s ease"},hooksSummary:{display:"flex",flexWrap:"wrap",gap:"5px",marginBottom:"10px"},hookPill:{display:"inline-flex",alignItems:"center",gap:"4px",background:"var(--dt-bg-2)",border:"1px solid var(--dt-border)",borderRadius:"10px",padding:"2px 8px",fontSize:"11px"},hookPillLabel:{color:"var(--dt-text-muted)"},hookPillCount:{color:"var(--dt-hook-count)",fontWeight:"600"},sectionHeader:{fontSize:"10px",fontWeight:"700",textTransform:"uppercase",letterSpacing:"0.08em",color:"var(--dt-text-dim)",marginBottom:"4px",marginTop:"12px","&:first-child":{marginTop:"0"}},propItem:{display:"flex",alignItems:"baseline",gap:"8px",padding:"3px 0",fontSize:"12px",borderBottom:"1px solid var(--dt-border-3)"},propKey:{color:"var(--dt-prop-key)",flexShrink:"0",minWidth:"80px"},propValue:{color:"var(--dt-prop-val)",wordBreak:"break-all"},scopeItem:{padding:"3px 0",fontSize:"12px",borderBottom:"1px solid var(--dt-border-3)"},scopeName:{color:"var(--dt-scope-name)"},atomItem:{display:"flex",alignItems:"baseline",gap:"8px",padding:"3px 0",fontSize:"12px",borderBottom:"1px solid var(--dt-border-3)"},atomName:{color:"var(--dt-prop-key)",flexShrink:"0",minWidth:"80px"},atomValue:{color:"var(--dt-prop-val)",wordBreak:"break-all"},highlight:{display:"inline-block",padding:"1px 5px",borderRadius:"8px",fontSize:"11px",color:"var(--dt-text-muted)",background:"transparent",transition:"background 0.1s, color 0.1s"},highlightFlash:{animation:`${cn} 0.6s ease forwards`},logsPanel:{flex:"1",display:"flex",flexDirection:"column",minHeight:"0",overflow:"hidden"},logsToolbar:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"5px 10px",borderBottom:"1px solid var(--dt-border-2)",flexShrink:"0",gap:"10px"},logsFilterRow:{display:"flex",gap:"4px"},logsFilterBtn:{background:"none",border:"1px solid var(--dt-border)",color:"var(--dt-text-muted)",cursor:"pointer",padding:"2px 9px",borderRadius:"3px",fontSize:"11px",fontFamily:"inherit",transition:"border-color 0.1s, color 0.1s, background 0.1s","&:hover":{borderColor:"var(--dt-text-dim)",color:"var(--dt-text)"},"&.active":{borderColor:"var(--dt-border-selected)",color:"var(--dt-text-selected)",background:"var(--dt-bg-active)"}},logsActions:{display:"flex",gap:"6px",alignItems:"center"},logsCount:{fontSize:"11px",color:"var(--dt-text-dimmer)"},logsContainer:{flex:"1",overflowY:"auto",padding:"4px 0",...ot},logEntry:{display:"flex",alignItems:"baseline",gap:"8px",padding:"3px 10px",fontSize:"12px",borderBottom:"1px solid var(--dt-border-3)","&:hover":{background:"var(--dt-bg-hover)"}},logTs:{color:"var(--dt-text-dimmer)",flexShrink:"0",fontSize:"11px",minWidth:"56px"},logBadge:{flexShrink:"0",padding:"1px 5px",borderRadius:"3px",fontSize:"10px",fontWeight:"700",textTransform:"uppercase",letterSpacing:"0.05em"},logLabel:{color:"var(--dt-text)",flexShrink:"0"},logDetail:{color:"var(--dt-text-muted)",wordBreak:"break-all",flex:"1",minWidth:"0"},perfPanel:{flex:"1",display:"flex",flexDirection:"column",minHeight:"0",overflow:"hidden"},perfToolbar:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"5px 10px",borderBottom:"1px solid var(--dt-border-2)",flexShrink:"0",gap:"10px"},perfTabs:{display:"flex",gap:"4px"},perfTabBtn:{background:"none",border:"1px solid var(--dt-border)",color:"var(--dt-text-muted)",cursor:"pointer",padding:"2px 9px",borderRadius:"3px",fontSize:"11px",fontFamily:"inherit",transition:"border-color 0.1s, color 0.1s, background 0.1s","&:hover":{borderColor:"var(--dt-text-dim)",color:"var(--dt-text)"},"&.active":{borderColor:"var(--dt-border-selected)",color:"var(--dt-text-selected)",background:"var(--dt-bg-active)"}},perfActions:{display:"flex",gap:"6px",alignItems:"center"},perfContent:{flex:"1",overflowY:"auto",...ot},perfTable:{width:"100%",borderCollapse:"collapse",fontSize:"12px"},perfTh:{padding:"5px 10px",textAlign:"left",color:"var(--dt-text-dim)",fontWeight:"600",fontSize:"10px",textTransform:"uppercase",letterSpacing:"0.06em",borderBottom:"1px solid var(--dt-border-2)",position:"sticky",top:"0",background:"var(--dt-bg)"},perfThRight:{textAlign:"right"},perfRow:{borderBottom:"1px solid var(--dt-border-3)","&:hover":{background:"var(--dt-bg-hover)"}},perfRowClickable:{cursor:"pointer"},perfCell:{padding:"4px 10px",verticalAlign:"middle"},perfName:{color:"var(--dt-text)",fontWeight:"500"},perfNum:{textAlign:"right",color:"var(--dt-text-muted)",fontVariantNumeric:"tabular-nums"},perfBarWrap:{width:"80px",height:"6px",background:"var(--dt-bg-3)",borderRadius:"3px",overflow:"hidden",display:"inline-block",verticalAlign:"middle"},perfBar:{height:"100%",background:"var(--dt-accent)",borderRadius:"3px",transition:"width 0.2s ease"},perfBarLabel:{fontSize:"11px",color:"var(--dt-text-dim)",marginLeft:"5px"}}),wt=new Set,it=new WeakMap,ct=new WeakMap,N=o.event("devtools");function Ut(t,e){try{wt.add(t);let n=it.get(e);n||(n=new Set,it.set(e,n)),n.add(t),ct.set(t,1),N.trigger({type:"mount",component:t})}catch{}}function Yt(t,e){try{if(wt.delete(t),e){const n=it.get(e);n&&n.delete(t)}N.trigger({type:"unmount",component:t})}catch{}}function Xt(t){try{const e=ct.get(t)??0;ct.set(t,e+1),N.trigger({type:"render",component:t})}catch{}}function j(t){try{return ct.get(t)??0}catch{}return 0}function A(t){try{return t._depth??0}catch{}return 0}function St(t){try{return t._parentComponent??null}catch{}return null}function kt(){try{return Array.from(wt).filter(t=>{const e=t._view||t.oldView;return!e?.__devtools__&&!e?.skipDevToolsRender})}catch{}return[]}function ln(t){try{const e=it.get(t);return e?Array.from(e):[]}catch{}return[]}function E(t){try{return(t._view||t.oldView)?.name||"Anonymous"}catch{}return""}function an(t){try{return t._view||t.oldView||null}catch{}return null}function qt(){try{const t=kt(),e=new Map;for(const i of t){const c=an(i);if(!c)continue;let l=e.get(c);l||(l=[],e.set(c,l)),l.push(i)}const n=[];for(const[i,c]of e)n.push({viewFn:i,name:i.name||"Anonymous",instances:c});try{n.sort((i,c)=>{const l=a=>a.instances.reduce((u,d)=>Math.min(u,A(d)),1/0);return l(i)-l(c)})}catch{}return n}catch{}return[]}const h={row:"display:flex;align-items:baseline;gap:4px;font-size:13px;line-height:20px;font-family:'SF Mono',Monaco,Consolas,monospace;",toggle:"cursor:pointer;background:none;border:none;color:#888;font-size:10px;padding:0 2px;width:14px;text-align:center;flex-shrink:0;",key:"color:#9cdcfe;white-space:nowrap;",colon:"color:#777;",string:"color:#ce9178;",number:"color:#b5cea8;",boolean:"color:#569cd6;",null:"color:#569cd6;font-style:italic;",undefined:"color:#777;font-style:italic;",function:"color:#dcdcaa;font-style:italic;",symbol:"color:#c586c0;",preview:"color:#888;font-style:italic;",children:"margin-left:14px;padding-left:6px;border-left:1px solid #333;",badge:"color:#777;font-size:11px;margin-left:4px;background:#2a2a2a;padding:0 4px;border-radius:3px;"},Jt=new WeakMap;let Kt=null;function Ct(t){try{Kt=t}catch{}}function Qt(t){try{let e=Jt.get(t);return e||(e=new Set,Jt.set(t,e)),e}catch{return new Set}}function sn(t,e){try{return Qt(t).has(e)}catch{return!1}}function dn(t,e){try{const n=Qt(t);n.has(e)?n.delete(e):n.add(e);try{Kt?.()}catch{}}catch{}}function un(t){try{return t==null?!1:typeof t=="object"}catch{return!1}}function lt(t){try{return t===null?"null":t===void 0?"undefined":Array.isArray(t)?"array":t instanceof Date?"date":t instanceof RegExp?"regexp":t instanceof Map?"map":t instanceof Set?"set":typeof t}catch{return""}}function Zt(t,e=60){try{const n=lt(t);if(n==="array"){const i=t;if(i.length===0)return"[]";const c=i.slice(0,5).map(a=>te(a)).join(", "),l=i.length>5?", …":"";return`[${c}${l}] (${i.length})`}if(n==="map")return`Map(${t.size})`;if(n==="set")return`Set(${t.size})`;if(n==="date")return`Date(${t.toISOString()})`;if(n==="regexp")return String(t);if(n==="object"){const i=t,c=Object.keys(i);if(c.length===0)return"{}";const l=c.slice(0,4).map(d=>`${d}: ${te(i[d])}`).join(", "),a=c.length>4?", …":"",u=`{${l}${a}}`;return u.length>e?u.slice(0,e-1)+"…}":u}return String(t)}catch{return""}}function te(t){try{switch(lt(t)){case"string":{const n=t;return n.length>30?`"${n.slice(0,27)}…"`:`"${n}"`}case"number":case"boolean":return String(t);case"null":return"null";case"undefined":return"undefined";case"function":return"ƒ()";case"symbol":return String(t);case"array":return`Array(${t.length})`;case"object":return"{…}";case"date":return"Date";case"map":return`Map(${t.size})`;case"set":return`Set(${t.size})`;default:return String(t)}}catch{return""}}function pn(t){try{switch(lt(t)){case"string":return o.html`<span style="${h.string}">"${String(t)}"</span>`;case"number":return o.html`<span style="${h.number}">${String(t)}</span>`;case"boolean":return o.html`<span style="${h.boolean}">${String(t)}</span>`;case"null":return o.html`<span style="${h.null}">null</span>`;case"undefined":return o.html`<span style="${h.undefined}">undefined</span>`;case"function":return o.html`<span style="${h.function}"
1
+ (function(a,i){typeof exports=="object"&&typeof module<"u"?i(exports,require("mates")):typeof define=="function"&&define.amd?define(["exports","mates"],i):(a=typeof globalThis<"u"?globalThis:a||self,i(a.MatesDevTools={},a.Mates))})(this,(function(a,i){"use strict";const qt="selected",pn="selected",fn=i.keyframes("mates-dt-flash",{"0%":{background:"var(--dt-flash-bg)",color:"#fff"},"100%":{background:"transparent",color:"var(--dt-text-muted)"}}),lt={"&::-webkit-scrollbar":{width:"6px"},"&::-webkit-scrollbar-track":{background:"transparent"},"&::-webkit-scrollbar-thumb":{background:"var(--dt-scrollbar)",borderRadius:"3px"},"&::-webkit-scrollbar-thumb:hover":{background:"var(--dt-scrollbar-hover)"}},r=i.globalCSS({fab:{position:"fixed",bottom:"50px",right:"50px",width:"44px",height:"44px",borderRadius:"50%",background:"var(--dt-bg)",border:"2px solid var(--dt-border)",color:"var(--dt-text-bright)",fontSize:"20px",lineHeight:"1",display:"flex",alignItems:"center",justifyContent:"center",cursor:"grab",zIndex:"100000",boxShadow:"0 2px 10px rgba(0,0,0,0.4)",userSelect:"none",transition:"box-shadow 0.15s ease, border-color 0.15s ease, transform 0.1s ease","-webkit-tap-highlight-color":"transparent","&:hover":{borderColor:"var(--dt-accent)",boxShadow:"0 4px 16px rgba(0,119,230,0.3)"},"&:active":{cursor:"grabbing",transform:"scale(0.95)"}},fabDragging:{cursor:"grabbing",transform:"scale(0.95)"},panel:{position:"fixed",bottom:"0",left:"0",right:"0",width:"100%",height:"320px",background:"var(--dt-bg)",borderTop:"1px solid var(--dt-border)",boxShadow:"0 -2px 12px rgba(0,0,0,0.4)",zIndex:"99999",display:"flex",flexDirection:"column",fontFamily:"'SF Mono', 'Fira Code', 'Consolas', monospace",fontSize:"13px",color:"var(--dt-text)",opacity:"0",transform:"translateY(12px)",transition:"opacity 0.2s ease, transform 0.2s ease",pointerEvents:"none"},panelVisible:{opacity:"1",transform:"translateY(0)",pointerEvents:"all"},minimized:{display:"none"},resizeHandle:{position:"absolute",top:"0",left:"0",right:"0",height:"4px",cursor:"ns-resize",zIndex:"1","&:hover":{background:"rgba(0,119,230,0.4)"}},header:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"0 10px",height:"38px",borderBottom:"1px solid var(--dt-border-2)",flexShrink:"0",gap:"16px"},headerLeft:{display:"flex",alignItems:"center",gap:"16px",minWidth:"0"},title:{fontWeight:"700",fontSize:"12px",color:"var(--dt-text-bright)",letterSpacing:"0.06em",textTransform:"uppercase",whiteSpace:"nowrap",flexShrink:"0"},controls:{display:"flex",alignItems:"center",gap:"4px",flexShrink:"0"},button:{background:"none",border:"none",color:"var(--dt-text-muted)",cursor:"pointer",padding:"4px 6px",borderRadius:"4px",fontSize:"13px",lineHeight:"1",display:"flex",alignItems:"center",justifyContent:"center",transition:"background 0.1s, color 0.1s","&:hover":{background:"var(--dt-bg-3)",color:"var(--dt-text-bright)"}},tabBar:{display:"flex",alignItems:"center",gap:"4px"},tabBtn:{background:"none",border:"none",color:"var(--dt-text-muted)",cursor:"pointer",padding:"4px 12px",borderRadius:"4px",fontSize:"12px",fontFamily:"inherit",fontWeight:"500",letterSpacing:"0.03em",transition:"background 0.1s, color 0.1s",position:"relative","&:hover":{background:"var(--dt-bg-3)",color:"var(--dt-text)"},"&.active":{color:"var(--dt-text-selected)",background:"var(--dt-bg-selected)"}},tabBadge:{display:"inline-flex",alignItems:"center",justifyContent:"center",background:"var(--dt-accent)",color:"#fff",borderRadius:"8px",fontSize:"10px",fontWeight:"700",minWidth:"16px",height:"16px",padding:"0 4px",marginLeft:"5px",lineHeight:"1"},body:{display:"flex",flex:"1",minHeight:"0",overflow:"hidden"},leftColumn:{width:"260px",minWidth:"160px",borderRight:"1px solid var(--dt-border-2)",display:"flex",flexDirection:"column",flexShrink:"0"},leftTabs:{display:"flex",gap:"4px",padding:"5px 8px",borderBottom:"1px solid var(--dt-border-2)",flexShrink:"0"},leftTabBtn:{background:"none",border:"none",color:"var(--dt-text-dim)",cursor:"pointer",padding:"3px 6px",borderRadius:"3px",display:"flex",alignItems:"center",justifyContent:"center",transition:"background 0.1s, color 0.1s","&:hover":{background:"var(--dt-bg-3)",color:"var(--dt-text)"},"&.active":{background:"var(--dt-bg-selected)",color:"var(--dt-text-selected)"}},content:{flex:"1",overflowY:"auto",...lt},componentSearch:{width:"100%",boxSizing:"border-box",background:"var(--dt-bg-input)",border:"none",borderBottom:"1px solid var(--dt-border-2)",color:"var(--dt-text)",fontFamily:"inherit",fontSize:"12px",padding:"6px 10px",outline:"none",flexShrink:"0","&::placeholder":{color:"var(--dt-text-dimmer)"},"&:focus":{borderBottomColor:"var(--dt-accent)"}},componentList:{listStyle:"none",margin:"0",padding:"4px 0"},componentItem:{display:"flex",alignItems:"center",gap:"6px",justifyContent:"space-between",padding:"5px 8px",cursor:"pointer",borderRadius:"3px",margin:"1px 4px",transition:"background 0.1s","&:hover":{background:"var(--dt-bg-hover)"},"&.selected":{background:"var(--dt-bg-selected)",color:"var(--dt-text-selected)"}},componentName:{flex:"1",minWidth:"0",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:"12px",color:"var(--dt-text)"},componentBadge:{display:"flex",alignItems:"center",gap:"6px",flexShrink:"0"},componentBadgeSelected:{display:"flex",alignItems:"center",gap:"6px",flexShrink:"0",color:"var(--dt-accent)"},componentCount:{fontSize:"11px",color:"var(--dt-text-dim)",background:"var(--dt-bg-3)",borderRadius:"8px",padding:"1px 6px",minWidth:"18px",textAlign:"center"},componentCountSelected:{fontSize:"11px",color:"var(--dt-accent)",background:"var(--dt-bg-3)",borderRadius:"8px",padding:"1px 6px",minWidth:"18px",textAlign:"center"},componentHighlightBtn:{background:"none",border:"none",color:"var(--dt-text-dim)",cursor:"pointer",padding:"2px 4px",borderRadius:"3px",fontSize:"11px",lineHeight:"1",display:"flex",alignItems:"center",opacity:"1",transition:"color 0.1s","&:hover":{color:"var(--dt-accent)"}},componentHighlightBtnSelected:{background:"none",border:"none",color:"var(--dt-accent)",cursor:"pointer",padding:"2px 4px",borderRadius:"3px",fontSize:"11px",lineHeight:"1",display:"flex",alignItems:"center",opacity:"1",transition:"color 0.1s","&:hover":{color:"var(--dt-accent)"}},empty:{padding:"16px 12px",color:"var(--dt-text-dimmer)",fontSize:"12px",textAlign:"center"},treeToggle:{background:"none",border:"none",color:"var(--dt-text-dim)",cursor:"pointer",padding:"0 3px",fontSize:"11px",lineHeight:"1",flexShrink:"0",width:"16px",textAlign:"center","&:hover":{color:"var(--dt-text)"}},treeLeaf:{display:"inline-block",width:"16px",flexShrink:"0",textAlign:"center",color:"var(--dt-text-dim)"},inspector:{flex:"1",minWidth:"0",overflowY:"auto",padding:"10px",...lt},inspectorBreadcrumb:{display:"flex",alignItems:"center",gap:"4px",marginBottom:"10px",flexWrap:"wrap"},breadcrumbSegment:{color:"var(--dt-text-dim)",cursor:"pointer",fontSize:"11px","&:hover":{color:"var(--dt-text-selected)"}},breadcrumbSeparator:{color:"var(--dt-border)",fontSize:"11px"},breadcrumbCurrent:{color:"var(--dt-text-selected)",fontSize:"11px"},inspectorTitle:{fontWeight:"600",fontSize:"13px",color:"var(--dt-text-bright)",marginBottom:"8px"},instanceCount:{fontSize:"11px",color:"var(--dt-text-dim)",marginBottom:"8px"},instanceList:{listStyle:"none",margin:"0 0 8px 0",padding:"0",display:"flex",flexDirection:"column",gap:"4px"},instanceGroup:{border:"1px solid var(--dt-border-2)",borderRadius:"4px",overflow:"hidden"},instanceItem:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"6px",padding:"5px 10px",cursor:"pointer",transition:"background 0.1s","&:hover":{background:"var(--dt-bg-hover)"},"&.selected":{background:"var(--dt-bg-selected)"}},instanceToggle:{background:"none",border:"none",color:"var(--dt-text-dim)",cursor:"pointer",padding:"0 3px",fontSize:"11px",flexShrink:"0","&:hover":{color:"var(--dt-text)"}},instanceToggleSelected:{background:"none",border:"none",color:"var(--dt-accent)",cursor:"pointer",padding:"0 3px",fontSize:"11px",flexShrink:"0","&:hover":{color:"var(--dt-accent)"}},instanceId:{fontSize:"11px",color:"var(--dt-text-dim)",flexShrink:"0",marginRight:"2px"},instanceDetails:{margin:"0 0 6px 0",padding:"8px 12px",borderLeft:"2px solid var(--dt-instance-border)",background:"var(--dt-instance-bg)",borderRadius:"0 4px 4px 0"},highlightBtn:{background:"none",border:"1px solid var(--dt-border)",color:"var(--dt-text-muted)",cursor:"pointer",padding:"2px 7px",borderRadius:"3px",fontSize:"11px",fontFamily:"inherit",transition:"border-color 0.1s, color 0.1s","&:hover":{borderColor:"var(--dt-accent)",color:"var(--dt-accent)"}},domHighlight:{position:"absolute",zIndex:"100001",pointerEvents:"none",border:"2px solid #e53e3e",background:"rgba(229,62,62,0.18)",borderRadius:"3px",transition:"opacity 0.6s ease"},hooksSummary:{display:"flex",flexWrap:"wrap",gap:"5px",marginBottom:"10px"},hookPill:{display:"inline-flex",alignItems:"center",gap:"4px",background:"var(--dt-bg-2)",border:"1px solid var(--dt-border)",borderRadius:"10px",padding:"2px 8px",fontSize:"11px"},hookPillLabel:{color:"var(--dt-text-muted)"},hookPillCount:{color:"var(--dt-hook-count)",fontWeight:"600"},sectionHeader:{fontSize:"10px",fontWeight:"700",textTransform:"uppercase",letterSpacing:"0.08em",color:"var(--dt-text-dim)",marginBottom:"4px",marginTop:"12px","&:first-child":{marginTop:"0"}},propItem:{display:"flex",alignItems:"baseline",gap:"8px",padding:"3px 0",fontSize:"12px",borderBottom:"1px solid var(--dt-border-3)"},propKey:{color:"var(--dt-prop-key)",flexShrink:"0",minWidth:"80px"},propValue:{color:"var(--dt-prop-val)",wordBreak:"break-all"},scopeItem:{padding:"3px 0",fontSize:"12px",borderBottom:"1px solid var(--dt-border-3)"},scopeName:{color:"var(--dt-scope-name)"},atomItem:{display:"flex",alignItems:"baseline",gap:"8px",padding:"3px 0",fontSize:"12px",borderBottom:"1px solid var(--dt-border-3)"},atomName:{color:"var(--dt-prop-key)",flexShrink:"0",minWidth:"80px"},atomValue:{color:"var(--dt-prop-val)",wordBreak:"break-all"},highlight:{display:"inline-block",padding:"1px 5px",borderRadius:"8px",fontSize:"11px",color:"var(--dt-text-muted)",background:"transparent",transition:"background 0.1s, color 0.1s"},highlightFlash:{animation:`${fn} 0.6s ease forwards`},logsPanel:{flex:"1",display:"flex",flexDirection:"column",minHeight:"0",overflow:"hidden"},logsToolbar:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"5px 10px",borderBottom:"1px solid var(--dt-border-2)",flexShrink:"0",gap:"10px"},logsFilterRow:{display:"flex",gap:"4px"},logsFilterBtn:{background:"none",border:"1px solid var(--dt-border)",color:"var(--dt-text-muted)",cursor:"pointer",padding:"2px 9px",borderRadius:"3px",fontSize:"11px",fontFamily:"inherit",transition:"border-color 0.1s, color 0.1s, background 0.1s","&:hover":{borderColor:"var(--dt-text-dim)",color:"var(--dt-text)"},"&.active":{borderColor:"var(--dt-border-selected)",color:"var(--dt-text-selected)",background:"var(--dt-bg-active)"}},logsActions:{display:"flex",gap:"6px",alignItems:"center"},logsCount:{fontSize:"11px",color:"var(--dt-text-dimmer)"},logsContainer:{flex:"1",overflowY:"auto",padding:"4px 0",...lt},logEntry:{display:"flex",alignItems:"baseline",gap:"8px",padding:"3px 10px",fontSize:"12px",borderBottom:"1px solid var(--dt-border-3)","&:hover":{background:"var(--dt-bg-hover)"}},logTs:{color:"var(--dt-text-dimmer)",flexShrink:"0",fontSize:"11px",minWidth:"56px"},logBadge:{flexShrink:"0",padding:"1px 5px",borderRadius:"3px",fontSize:"10px",fontWeight:"700",textTransform:"uppercase",letterSpacing:"0.05em"},logLabel:{color:"var(--dt-text)",flexShrink:"0"},logDetail:{color:"var(--dt-text-muted)",wordBreak:"break-all",flex:"1",minWidth:"0"},perfPanel:{flex:"1",display:"flex",flexDirection:"column",minHeight:"0",overflow:"hidden"},perfToolbar:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"5px 10px",borderBottom:"1px solid var(--dt-border-2)",flexShrink:"0",gap:"10px"},perfTabs:{display:"flex",gap:"4px"},perfTabBtn:{background:"none",border:"1px solid var(--dt-border)",color:"var(--dt-text-muted)",cursor:"pointer",padding:"2px 9px",borderRadius:"3px",fontSize:"11px",fontFamily:"inherit",transition:"border-color 0.1s, color 0.1s, background 0.1s","&:hover":{borderColor:"var(--dt-text-dim)",color:"var(--dt-text)"},"&.active":{borderColor:"var(--dt-border-selected)",color:"var(--dt-text-selected)",background:"var(--dt-bg-active)"}},perfActions:{display:"flex",gap:"6px",alignItems:"center"},perfContent:{flex:"1",overflowY:"auto",...lt},perfTable:{width:"100%",borderCollapse:"collapse",fontSize:"12px"},perfTh:{padding:"5px 10px",textAlign:"left",color:"var(--dt-text-dim)",fontWeight:"600",fontSize:"10px",textTransform:"uppercase",letterSpacing:"0.06em",borderBottom:"1px solid var(--dt-border-2)",position:"sticky",top:"0",background:"var(--dt-bg)"},perfThRight:{textAlign:"right"},perfRow:{borderBottom:"1px solid var(--dt-border-3)","&:hover":{background:"var(--dt-bg-hover)"}},perfRowClickable:{cursor:"pointer"},perfCell:{padding:"4px 10px",verticalAlign:"middle"},perfName:{color:"var(--dt-text)",fontWeight:"500"},perfNum:{textAlign:"right",color:"var(--dt-text-muted)",fontVariantNumeric:"tabular-nums"},perfBarWrap:{width:"80px",height:"6px",background:"var(--dt-bg-3)",borderRadius:"3px",overflow:"hidden",display:"inline-block",verticalAlign:"middle"},perfBar:{height:"100%",background:"var(--dt-accent)",borderRadius:"3px",transition:"width 0.2s ease"},perfBarLabel:{fontSize:"11px",color:"var(--dt-text-dim)",marginLeft:"5px"}}),Ct=new Set,st=new WeakMap,at=new WeakMap,j=i.event("devtools");function Jt(t,e){try{Ct.add(t);let n=st.get(e);n||(n=new Set,st.set(e,n)),n.add(t),at.set(t,1),j.trigger({type:"mount",component:t})}catch{}}function Kt(t,e){try{if(Ct.delete(t),e){const n=st.get(e);n&&n.delete(t)}j.trigger({type:"unmount",component:t})}catch{}}function Qt(t){try{const e=at.get(t)??0;at.set(t,e+1),j.trigger({type:"render",component:t})}catch{}}function W(t){try{return at.get(t)??0}catch{}return 0}function E(t){try{return t._depth??0}catch{}return 0}function Tt(t){try{return t._parentComponent??null}catch{}return null}function Mt(){try{return Array.from(Ct).filter(t=>{const e=t._view||t.oldView;return!e?.__devtools__&&!e?.skipDevToolsRender})}catch{}return[]}function hn(t){try{const e=st.get(t);return e?Array.from(e):[]}catch{}return[]}function R(t){try{return(t._view||t.oldView)?.name||"Anonymous"}catch{}return""}function gn(t){try{return t._view||t.oldView||null}catch{}return null}function Zt(){try{const t=Mt(),e=new Map;for(const o of t){const c=gn(o);if(!c)continue;let l=e.get(c);l||(l=[],e.set(c,l)),l.push(o)}const n=[];for(const[o,c]of e)n.push({viewFn:o,name:o.name||"Anonymous",instances:c});try{n.sort((o,c)=>{const l=s=>s.instances.reduce((u,d)=>Math.min(u,E(d)),1/0);return l(o)-l(c)})}catch{}return n}catch{}return[]}const h={row:"display:flex;align-items:baseline;gap:4px;font-size:13px;line-height:20px;font-family:'SF Mono',Monaco,Consolas,monospace;",toggle:"cursor:pointer;background:none;border:none;color:#888;font-size:10px;padding:0 2px;width:14px;text-align:center;flex-shrink:0;",key:"color:#9cdcfe;white-space:nowrap;",colon:"color:#777;",string:"color:#ce9178;",number:"color:#b5cea8;",boolean:"color:#569cd6;",null:"color:#569cd6;font-style:italic;",undefined:"color:#777;font-style:italic;",function:"color:#dcdcaa;font-style:italic;",symbol:"color:#c586c0;",preview:"color:#888;font-style:italic;",children:"margin-left:14px;padding-left:6px;border-left:1px solid #333;",badge:"color:#777;font-size:11px;margin-left:4px;background:#2a2a2a;padding:0 4px;border-radius:3px;"},te=new WeakMap;let ee=null;function It(t){try{ee=t}catch{}}function ne(t){try{let e=te.get(t);return e||(e=new Set,te.set(t,e)),e}catch{return new Set}}function mn(t,e){try{return ne(t).has(e)}catch{return!1}}function yn(t,e){try{const n=ne(t);n.has(e)?n.delete(e):n.add(e);try{ee?.()}catch{}}catch{}}function bn(t){try{return t==null?!1:typeof t=="object"}catch{return!1}}function dt(t){try{return t===null?"null":t===void 0?"undefined":Array.isArray(t)?"array":t instanceof Date?"date":t instanceof RegExp?"regexp":t instanceof Map?"map":t instanceof Set?"set":typeof t}catch{return""}}function re(t,e=60){try{const n=dt(t);if(n==="array"){const o=t;if(o.length===0)return"[]";const c=o.slice(0,5).map(s=>oe(s)).join(", "),l=o.length>5?", …":"";return`[${c}${l}] (${o.length})`}if(n==="map")return`Map(${t.size})`;if(n==="set")return`Set(${t.size})`;if(n==="date")return`Date(${t.toISOString()})`;if(n==="regexp")return String(t);if(n==="object"){const o=t,c=Object.keys(o);if(c.length===0)return"{}";const l=c.slice(0,4).map(d=>`${d}: ${oe(o[d])}`).join(", "),s=c.length>4?", …":"",u=`{${l}${s}}`;return u.length>e?u.slice(0,e-1)+"…}":u}return String(t)}catch{return""}}function oe(t){try{switch(dt(t)){case"string":{const n=t;return n.length>30?`"${n.slice(0,27)}…"`:`"${n}"`}case"number":case"boolean":return String(t);case"null":return"null";case"undefined":return"undefined";case"function":return"ƒ()";case"symbol":return String(t);case"array":return`Array(${t.length})`;case"object":return"{…}";case"date":return"Date";case"map":return`Map(${t.size})`;case"set":return`Set(${t.size})`;default:return String(t)}}catch{return""}}function vn(t){try{switch(dt(t)){case"string":return i.html`<span style="${h.string}">"${String(t)}"</span>`;case"number":return i.html`<span style="${h.number}">${String(t)}</span>`;case"boolean":return i.html`<span style="${h.boolean}">${String(t)}</span>`;case"null":return i.html`<span style="${h.null}">null</span>`;case"undefined":return i.html`<span style="${h.undefined}">undefined</span>`;case"function":return i.html`<span style="${h.function}"
2
2
  >ƒ ${t.name||"anonymous"}()</span
3
- >`;case"symbol":return o.html`<span style="${h.symbol}">${String(t)}</span>`;case"date":return o.html`<span style="${h.string}"
3
+ >`;case"symbol":return i.html`<span style="${h.symbol}">${String(t)}</span>`;case"date":return i.html`<span style="${h.string}"
4
4
  >${t.toISOString()}</span
5
- >`;case"regexp":return o.html`<span style="${h.string}">${String(t)}</span>`;default:return o.html`<span style="${h.preview}">${String(t)}</span>`}}catch{return o.html``}}function fn(t){try{if(t instanceof Map)return Array.from(t.entries()).map(([e,n])=>({key:String(e),value:n}));if(t instanceof Set)return Array.from(t).map((e,n)=>({key:String(n),value:e}));if(Array.isArray(t))return t.map((e,n)=>({key:String(n),value:e}));if(typeof t=="object"&&t!==null){const e=[],n=new Set;for(const c of Object.keys(t)){n.add(c);try{e.push({key:c,value:t[c]})}catch{e.push({key:c,value:"[error reading]"})}}let i=Object.getPrototypeOf(t);for(;i&&i!==Object.prototype;){for(const c of Object.getOwnPropertyNames(i)){if(n.has(c)||c==="constructor")continue;if(Object.getOwnPropertyDescriptor(i,c)?.get){n.add(c);try{e.push({key:c,value:t[c]})}catch{e.push({key:c,value:"[error reading]"})}}}i=Object.getPrototypeOf(i)}return e}return[]}catch{return[]}}function T(t,e,n,i="root",c=0){try{if(c>15)return o.html`
5
+ >`;case"regexp":return i.html`<span style="${h.string}">${String(t)}</span>`;default:return i.html`<span style="${h.preview}">${String(t)}</span>`}}catch{return i.html``}}function xn(t){try{if(t instanceof Map)return Array.from(t.entries()).map(([e,n])=>({key:String(e),value:n}));if(t instanceof Set)return Array.from(t).map((e,n)=>({key:String(n),value:e}));if(Array.isArray(t))return t.map((e,n)=>({key:String(n),value:e}));if(typeof t=="object"&&t!==null){const e=[],n=new Set;for(const c of Object.keys(t)){n.add(c);try{e.push({key:c,value:t[c]})}catch{e.push({key:c,value:"[error reading]"})}}let o=Object.getPrototypeOf(t);for(;o&&o!==Object.prototype;){for(const c of Object.getOwnPropertyNames(o)){if(n.has(c)||c==="constructor")continue;if(Object.getOwnPropertyDescriptor(o,c)?.get){n.add(c);try{e.push({key:c,value:t[c]})}catch{e.push({key:c,value:"[error reading]"})}}}o=Object.getPrototypeOf(o)}return e}return[]}catch{return[]}}function T(t,e,n,o="root",c=0){try{if(c>15)return i.html`
6
6
  <div style="${h.row}">
7
- ${e!=null?o.html`<span style="${h.key}">${e}</span
8
- ><span style="${h.colon}">:</span>`:o.nothing}
7
+ ${e!=null?i.html`<span style="${h.key}">${e}</span
8
+ ><span style="${h.colon}">:</span>`:i.nothing}
9
9
  <span style="${h.preview}">[max depth]</span>
10
10
  </div>
11
- `;const l=un(n),a=l&&sn(t,i);if(!l)return o.html`
11
+ `;const l=bn(n),s=l&&mn(t,o);if(!l)return i.html`
12
12
  <div style="${h.row}">
13
13
  <span style="${h.toggle}"></span>
14
- ${e!=null?o.html`<span style="${h.key}">${e}</span
15
- ><span style="${h.colon}">:</span>`:o.nothing}
16
- ${pn(n)}
14
+ ${e!=null?i.html`<span style="${h.key}">${e}</span
15
+ ><span style="${h.colon}">:</span>`:i.nothing}
16
+ ${vn(n)}
17
17
  </div>
18
- `;const u=a?fn(n):[],d=lt(n);return o.html`
18
+ `;const u=s?xn(n):[],d=dt(n);return i.html`
19
19
  <div>
20
20
  <div
21
21
  style="${h.row}cursor:pointer;user-select:none;"
22
- @click=${p=>{try{p.stopPropagation(),dn(t,i)}catch{}}}
22
+ @click=${p=>{try{p.stopPropagation(),yn(t,o)}catch{}}}
23
23
  >
24
- <span style="${h.toggle}">${a?"▼":"▶"}</span>
25
- ${e!=null?o.html`<span style="${h.key}">${e}</span
26
- ><span style="${h.colon}">:</span>`:o.nothing}
27
- ${a?o.html`<span style="${h.preview}"
28
- >${d==="array"?`Array(${n.length})`:d==="object"?"{":Zt(n)}</span
29
- >`:o.html`<span style="${h.preview}">${Zt(n)}</span>`}
24
+ <span style="${h.toggle}">${s?"▼":"▶"}</span>
25
+ ${e!=null?i.html`<span style="${h.key}">${e}</span
26
+ ><span style="${h.colon}">:</span>`:i.nothing}
27
+ ${s?i.html`<span style="${h.preview}"
28
+ >${d==="array"?`Array(${n.length})`:d==="object"?"{":re(n)}</span
29
+ >`:i.html`<span style="${h.preview}">${re(n)}</span>`}
30
30
  </div>
31
- ${a?o.html`
31
+ ${s?i.html`
32
32
  <div style="${h.children}">
33
- ${u.map(p=>T(t,p.key,p.value,`${i}.${p.key}`,c+1))}
34
- ${u.length===0?o.html`<div style="${h.row}">
33
+ ${u.map(p=>T(t,p.key,p.value,`${o}.${p.key}`,c+1))}
34
+ ${u.length===0?i.html`<div style="${h.row}">
35
35
  <span style="${h.preview}">(empty)</span>
36
- </div>`:o.nothing}
36
+ </div>`:i.nothing}
37
37
  </div>
38
- ${d==="object"&&a?o.html`<div style="${h.row};margin-left:14px;">
38
+ ${d==="object"&&s?i.html`<div style="${h.row};margin-left:14px;">
39
39
  <span style="${h.preview}">}</span>
40
- </div>`:o.nothing}
41
- `:o.nothing}
40
+ </div>`:i.nothing}
41
+ `:i.nothing}
42
42
  </div>
43
- `}catch{return o.html``}}function hn(t,e,n="root"){try{const i=Object.keys(e);return i.length===0?o.html`<div style="color:#777;font-size:13px;padding:2px 0;">
43
+ `}catch{return i.html``}}function $n(t,e,n="root"){try{const o=Object.keys(e);return o.length===0?i.html`<div style="color:#777;font-size:13px;padding:2px 0;">
44
44
  No data
45
- </div>`:o.html`
46
- ${i.map(c=>T(t,c,e[c],`${n}.${c}`,0))}
47
- `}catch{return o.html``}}function ee(t){try{const e=Object.keys(t);return e.length===0?o.html`<div style="color: #777; font-size: 13px;">No props</div>`:o.html`
48
- ${o.repeat(e,n=>n,n=>T(t,n,t[n],`props.${n}`,0))}
49
- `}catch{return o.html``}}function ne(t){try{return!t||t.size===0?o.html`<div style="color: #777; font-size: 13px;">No scopes</div>`:o.html`
50
- ${[...t?.entries()||[]].map(([e,n])=>{try{const i=e.name||"AnonymousScope",c={},l=new Set;for(const d of Object.keys(n))if(!(d==="__isScope___"||d==="reset")){l.add(d);try{const p=n[d];p&&typeof p=="function"&&p.__isAtom___?c[`${d} (atom)`]=p.get():c[d]=p}catch{c[d]="[error reading]"}}let a=Object.getPrototypeOf(n);for(;a&&a!==Object.prototype;){for(const d of Object.getOwnPropertyNames(a)){if(l.has(d)||d==="constructor"||d==="__isScope___"||d==="reset")continue;if(Object.getOwnPropertyDescriptor(a,d)?.get){l.add(d);try{c[`${d} (get)`]=n[d]}catch{c[`${d} (get)`]="[error reading]"}}}a=Object.getPrototypeOf(a)}const u=n;return o.html`
45
+ </div>`:i.html`
46
+ ${o.map(c=>T(t,c,e[c],`${n}.${c}`,0))}
47
+ `}catch{return i.html``}}function ie(t){try{const e=Object.keys(t);return e.length===0?i.html`<div style="color: #777; font-size: 13px;">No props</div>`:i.html`
48
+ ${i.repeat(e,n=>n,n=>T(t,n,t[n],`props.${n}`,0))}
49
+ `}catch{return i.html``}}function ce(t){try{return!t||t.size===0?i.html`<div style="color: #777; font-size: 13px;">No scopes</div>`:i.html`
50
+ ${[...t?.entries()||[]].map(([e,n])=>{try{const o=e.name||"AnonymousScope",c={},l=new Set;for(const d of Object.keys(n))if(!(d==="__isScope___"||d==="reset")){l.add(d);try{const p=n[d];p&&typeof p=="function"&&p.__isAtom___?c[`${d} (atom)`]=p.get():c[d]=p}catch{c[d]="[error reading]"}}let s=Object.getPrototypeOf(n);for(;s&&s!==Object.prototype;){for(const d of Object.getOwnPropertyNames(s)){if(l.has(d)||d==="constructor"||d==="__isScope___"||d==="reset")continue;if(Object.getOwnPropertyDescriptor(s,d)?.get){l.add(d);try{c[`${d} (get)`]=n[d]}catch{c[`${d} (get)`]="[error reading]"}}}s=Object.getPrototypeOf(s)}const u=n;return i.html`
51
51
  <div style="margin-bottom:6px;">
52
52
  <div
53
53
  style="color:#4ec9b0;font-weight:500;font-size:13px;margin-bottom:2px;font-family:'SF Mono',Monaco,Consolas,monospace;"
54
54
  >
55
- ${i}
55
+ ${o}
56
56
  </div>
57
57
  <div style="margin-left:4px;">
58
- ${Object.keys(c).length===0?o.html`<div style="color:#666;font-size:13px;">
58
+ ${Object.keys(c).length===0?i.html`<div style="color:#666;font-size:13px;">
59
59
  (empty scope)
60
- </div>`:o.html`
61
- ${Object.keys(c).map(d=>T(u,d,c[d],`scope_${i}.${d}`,0))}
60
+ </div>`:i.html`
61
+ ${Object.keys(c).map(d=>T(u,d,c[d],`scope_${o}.${d}`,0))}
62
62
  `}
63
63
  </div>
64
64
  </div>
65
- `}catch{return o.html``}})}
66
- `}catch{return o.html``}}function gn(t){try{if(!t)return[];const e=[];for(const n of t.keys())if(n&&typeof n=="function"&&n.__isAtom___)try{e.push({id:n.__id__??"?",value:n.get(),key:n})}catch{}return e}catch{return[]}}function re(t){try{const e=gn(t);return e.length===0?o.html`<div style="color: #777; font-size: 13px;">No atoms</div>`:o.html`
67
- ${o.repeat(e,n=>n.id,(n,i)=>{const c=e.length===1?"atom":`atom#${i+1}`,l=typeof n.value=="object"&&n.value!==null?n.value:n.key;return T(l,c,n.value,`atom_${n.id}`,0)})}
68
- `}catch{return o.html``}}function oe(t){try{return!t||t.length===0?o.html`<div style="color: #777; font-size: 13px;">No state</div>`:o.html`
69
- ${t.map((e,n)=>{const i=t.length===1?"state":`state#${n+1}`;let c;try{c=e.atom.get()}catch{c=e.state}return T(c,i,c,`useState_${n}`,0)})}
70
- `}catch{return o.html``}}function mn(t){try{const e={onMount:0,onCleanup:0,onPaint:0,onAllMount:0,effects:0,on:0,setters:0,useState:0,atoms:0,events:0,channels:0},n=t._useStates;n&&(e.useState=n.length);const i=t.cleanups;if(!i)return e;for(const c of i.keys())if(c!=null){if(c.__isAtom___){e.atoms++;continue}if(c.__isSetter___){e.setters++;continue}if(c.__isCleanupEvent___){e.events++;continue}if(c.__isEvent___){e.events++;continue}if(c.__isChannel___){e.channels++;continue}if(c.__isOnMount__){e.onMount++;continue}if(c.__isOnCleanup__){e.onCleanup++;continue}if(c.__isOnPaint__){e.onPaint++;continue}if(c.__isOnAllMount__){e.onAllMount++;continue}if(c.__isEffect__){e.effects++;continue}if(c.__isOn__){e.on++;continue}}return e}catch{return{onMount:0,onCleanup:0,onPaint:0,onAllMount:0,effects:0,on:0,setters:0,useState:0,atoms:0,events:0,channels:0}}}function bn(t,e){try{return o.html`
65
+ `}catch{return i.html``}})}
66
+ `}catch{return i.html``}}function _n(t){try{if(!t)return[];const e=[];for(const n of t.keys())if(n&&typeof n=="function"&&n.__isAtom___)try{e.push({id:n.__id__??"?",value:n.get(),key:n})}catch{}return e}catch{return[]}}function le(t){try{const e=_n(t);return e.length===0?i.html`<div style="color: #777; font-size: 13px;">No atoms</div>`:i.html`
67
+ ${i.repeat(e,n=>n.id,(n,o)=>{const c=e.length===1?"atom":`atom#${o+1}`,l=typeof n.value=="object"&&n.value!==null?n.value:n.key;return T(l,c,n.value,`atom_${n.id}`,0)})}
68
+ `}catch{return i.html``}}function se(t){try{return!t||t.length===0?i.html`<div style="color: #777; font-size: 13px;">No state</div>`:i.html`
69
+ ${t.map((e,n)=>{const o=t.length===1?"state":`state#${n+1}`;let c;try{c=e.atom.get()}catch{c=e.state}return T(c,o,c,`useState_${n}`,0)})}
70
+ `}catch{return i.html``}}function wn(t){try{const e={onMount:0,onCleanup:0,onPaint:0,onAllMount:0,effects:0,on:0,setters:0,useState:0,atoms:0,events:0,channels:0},n=t._useStates;n&&(e.useState=n.length);const o=t.cleanups;if(!o)return e;for(const c of o.keys())if(c!=null){if(c.__isAtom___){e.atoms++;continue}if(c.__isSetter___){e.setters++;continue}if(c.__isCleanupEvent___){e.events++;continue}if(c.__isEvent___){e.events++;continue}if(c.__isChannel___){e.channels++;continue}if(c.__isOnMount__){e.onMount++;continue}if(c.__isOnCleanup__){e.onCleanup++;continue}if(c.__isOnPaint__){e.onPaint++;continue}if(c.__isOnAllMount__){e.onAllMount++;continue}if(c.__isEffect__){e.effects++;continue}if(c.__isOn__){e.on++;continue}}return e}catch{return{onMount:0,onCleanup:0,onPaint:0,onAllMount:0,effects:0,on:0,setters:0,useState:0,atoms:0,events:0,channels:0}}}function Sn(t,e){try{return i.html`
71
71
  <span class="${r.hookPill}">
72
72
  <span class="${r.hookPillLabel}">${t}</span>
73
73
  <span class="${r.hookPillCount}">${e}</span>
74
74
  </span>
75
- `}catch{return o.html``}}function Tt(t){try{const e=mn(t),n=[];return e.onMount>0&&n.push({label:"onMount",count:e.onMount}),e.onCleanup>0&&n.push({label:"onCleanup",count:e.onCleanup}),e.onPaint>0&&n.push({label:"onPaint",count:e.onPaint}),e.onAllMount>0&&n.push({label:"onAllMount",count:e.onAllMount}),e.effects>0&&n.push({label:"effect",count:e.effects}),e.on>0&&n.push({label:"on",count:e.on}),e.setters>0&&n.push({label:"setter",count:e.setters}),e.useState>0&&n.push({label:"useState",count:e.useState}),e.atoms>0&&n.push({label:"atom",count:e.atoms}),e.events>0&&n.push({label:"event",count:e.events}),e.channels>0&&n.push({label:"channel",count:e.channels}),n.length===0?o.nothing:o.html`
75
+ `}catch{return i.html``}}function Bt(t){try{const e=wn(t),n=[];return e.onMount>0&&n.push({label:"onMount",count:e.onMount}),e.onCleanup>0&&n.push({label:"onCleanup",count:e.onCleanup}),e.onPaint>0&&n.push({label:"onPaint",count:e.onPaint}),e.onAllMount>0&&n.push({label:"onAllMount",count:e.onAllMount}),e.effects>0&&n.push({label:"effect",count:e.effects}),e.on>0&&n.push({label:"on",count:e.on}),e.setters>0&&n.push({label:"setter",count:e.setters}),e.useState>0&&n.push({label:"useState",count:e.useState}),e.atoms>0&&n.push({label:"atom",count:e.atoms}),e.events>0&&n.push({label:"event",count:e.events}),e.channels>0&&n.push({label:"channel",count:e.channels}),n.length===0?i.nothing:i.html`
76
76
  <div class="${r.hooksSummary}">
77
- ${n.map(i=>bn(i.label,i.count))}
77
+ ${n.map(o=>Sn(o.label,o.count))}
78
78
  </div>
79
- `}catch{return o.html``}}function yn(t,e){try{t.stopPropagation(),bt(e)}catch{}}function vn(t){try{const e=[];let n=St(t);for(;n;)e.push(E(n)),n=St(n);return e.reverse(),e}catch{return[]}}function ie(t){try{const e=vn(t),n=E(t);if(e.length===0)return o.html`
79
+ `}catch{return i.html``}}function kn(t,e){try{t.stopPropagation(),$t(e)}catch{}}function Cn(t){try{const e=[];let n=Tt(t);for(;n;)e.push(R(n)),n=Tt(n);return e.reverse(),e}catch{return[]}}function ae(t){try{const e=Cn(t),n=R(t);if(e.length===0)return i.html`
80
80
  <div class="${r.inspectorBreadcrumb}">
81
81
  <span class="${r.breadcrumbSegment} ${r.breadcrumbCurrent}"
82
82
  >${n}</span
83
83
  >
84
84
  </div>
85
- `;const i=[];for(let c=0;c<e.length;c++)c>0&&i.push(o.html`<span class="${r.breadcrumbSeparator}">›</span>`),i.push(o.html`<span class="${r.breadcrumbSegment}">${e[c]}</span>`);return i.push(o.html`<span class="${r.breadcrumbSeparator}">›</span>`),i.push(o.html`<span class="${r.breadcrumbSegment} ${r.breadcrumbCurrent}"
85
+ `;const o=[];for(let c=0;c<e.length;c++)c>0&&o.push(i.html`<span class="${r.breadcrumbSeparator}">›</span>`),o.push(i.html`<span class="${r.breadcrumbSegment}">${e[c]}</span>`);return o.push(i.html`<span class="${r.breadcrumbSeparator}">›</span>`),o.push(i.html`<span class="${r.breadcrumbSegment} ${r.breadcrumbCurrent}"
86
86
  >${n}</span
87
- >`),o.html` <div class="${r.inspectorBreadcrumb}">${i}</div> `}catch{return o.html``}}function ce(t){try{return o.html`
87
+ >`),i.html` <div class="${r.inspectorBreadcrumb}">${o}</div> `}catch{return i.html``}}function de(t){try{return i.html`
88
88
  <div class="${r.instanceDetails}">
89
89
  <div class="${r.sectionHeader}">Props</div>
90
- ${ee(t._props||{})}
90
+ ${ie(t._props||{})}
91
91
 
92
92
  <div class="${r.sectionHeader}">State</div>
93
- ${oe(t._useStates)}
93
+ ${se(t._useStates)}
94
94
 
95
95
  <div class="${r.sectionHeader}">Atoms</div>
96
- ${re(t.cleanups)}
96
+ ${le(t.cleanups)}
97
97
 
98
98
  <div class="${r.sectionHeader}">Scopes</div>
99
- ${ne(t.scopes)}
99
+ ${ce(t.scopes)}
100
100
  </div>
101
- `}catch{return o.html``}}function le(){try{return o.html`
101
+ `}catch{return i.html``}}function ue(){try{return i.html`
102
102
  <div class="${r.inspector}">
103
103
  <div class="${r.empty}">Select a component to inspect</div>
104
104
  </div>
105
- `}catch{return o.html``}}function ae(t){try{const e=E(t),n=t.componentId,i=A(t),c=j(t);return o.html`
105
+ `}catch{return i.html``}}function pe(t){try{const e=R(t),n=t.componentId,o=E(t),c=W(t);return i.html`
106
106
  <div class="${r.inspector}">
107
- ${ie(t)}
107
+ ${ae(t)}
108
108
  <div class="${r.inspectorTitle}">
109
109
  <span>${e}</span>
110
110
  <span class="${r.instanceCount}">
111
- #${n.toString().slice(2,6)} · depth ${i} · renders ${c}
111
+ #${n.toString().slice(2,6)} · depth ${o} · renders ${c}
112
112
  </span>
113
113
  <button
114
114
  class="${r.highlightBtn}"
115
115
  style="opacity: 1;"
116
- @click=${l=>{try{yn(l,t)}catch{}}}
116
+ @click=${l=>{try{kn(l,t)}catch{}}}
117
117
  title="Highlight in DOM"
118
118
  >
119
119
  <svg
@@ -133,9 +133,9 @@
133
133
  </button>
134
134
  </div>
135
135
 
136
- ${Tt(t)} ${ce(t)}
136
+ ${Bt(t)} ${de(t)}
137
137
  </div>
138
- `}catch{return o.html``}}function xn(t,e,n,i){try{const{name:c,instances:l}=t;return o.html`
138
+ `}catch{return i.html``}}function Tn(t,e,n,o){try{const{name:c,instances:l}=t;return i.html`
139
139
  <div class="${r.inspector}">
140
140
  <div class="${r.inspectorTitle}">
141
141
  <span>${c}</span>
@@ -145,15 +145,15 @@
145
145
  </div>
146
146
 
147
147
  <ul class="${r.instanceList}">
148
- ${o.repeat(l,a=>a.componentId,a=>{const u=a.componentId,d=A(a),p=j(a),v=e===u;return o.html`
148
+ ${i.repeat(l,s=>s.componentId,s=>{const u=s.componentId,d=E(s),p=W(s),b=e===u;return i.html`
149
149
  <li class="${r.instanceGroup}">
150
150
  <div
151
- class="${r.instanceItem} ${v?on:""}"
151
+ class="${r.instanceItem} ${b?pn:""}"
152
152
  @click=${()=>{try{n(u)}catch{}}}
153
153
  >
154
154
  <span
155
- class="${r.instanceToggle} ${v?r.instanceToggleSelected:""}"
156
- >${v?"▼":"▶"}</span
155
+ class="${r.instanceToggle} ${b?r.instanceToggleSelected:""}"
156
+ >${b?"▼":"▶"}</span
157
157
  >
158
158
  <span class="${r.instanceId}"
159
159
  >#${u.toString().slice(2,6)}</span
@@ -164,7 +164,7 @@
164
164
  >
165
165
  <button
166
166
  class="${r.componentHighlightBtn}"
167
- @click=${m=>{try{m.stopPropagation(),i(a)}catch{}}}
167
+ @click=${m=>{try{m.stopPropagation(),o(s)}catch{}}}
168
168
  title="Highlight in page"
169
169
  >
170
170
  <svg
@@ -183,49 +183,49 @@
183
183
  </svg>
184
184
  </button>
185
185
  </div>
186
- ${v?o.html`
187
- ${ie(a)} ${Tt(a)}
188
- ${ce(a)}
189
- `:o.nothing}
186
+ ${b?i.html`
187
+ ${ae(s)} ${Bt(s)}
188
+ ${de(s)}
189
+ `:i.nothing}
190
190
  </li>
191
191
  `})}
192
192
  </ul>
193
193
  </div>
194
- `}catch{return o.html``}}function Mt(t){try{if("selectedComponent"in t&&t.selectedComponent!==void 0)return t.selectedComponent?ae(t.selectedComponent):le();const{selectedGroup:e,selectedInstanceId:n,onSelectInstance:i,onHighlight:c}=t;return e?e.instances.length===1?ae(e.instances[0]):xn(e,n,i,c):le()}catch{return o.html``}}const M=new Set;let W=null,G=null,U=null,Y=null,at=!1,st=!1;const dt=o.atom(0);dt.skipDevToolsLog=!0;function R(){try{dt.set(M.size)}catch{}}function X(t){st=!0;try{return t()}finally{st=!1}}function $n(){try{if(at)return;at=!0,W=window.setTimeout,G=window.setInterval,U=window.clearTimeout,Y=window.clearInterval;const t=W,e=G,n=U,i=Y;window.setTimeout=function(l,a,...u){let d;try{if(typeof l!="function")return d=t(l,a,...u),d;const p=l;d=t(function(...m){try{return M.delete(d)&&R(),p.apply(this,m.length?m:u)}catch{}},a,...u),st||(M.add(d),R())}catch{d=t(l,a,...u)}return d},window.setInterval=function(l,a,...u){let d;try{if(typeof l!="function")return d=e(l,a,...u),d;const p=l;d=e(function(...m){try{return p.apply(this,m.length?m:u)}catch{}},a,...u),st||(M.add(d),R())}catch{d=e(l,a,...u)}return d},window.clearTimeout=function(l){try{l!==void 0&&M.delete(l)&&R()}catch{}n(l)},window.clearInterval=function(l){try{l!==void 0&&M.delete(l)&&R()}catch{}i(l)}}catch{}}function _n(){try{if(!at)return;at=!1,W&&(window.setTimeout=W),G&&(window.setInterval=G),U&&(window.clearTimeout=U),Y&&(window.clearInterval=Y),W=null,G=null,U=null,Y=null,M.clear(),R()}catch{}}const It=new WeakMap;let wn=0;function Sn(t){return It.has(t)||It.set(t,`mdt-hl-${++wn}`),It.get(t)}function se(t,e,n){try{const i=n.get(e),c=i!==void 0&&i!==t;n.set(e,t);const l=Sn(e);return c&&X(()=>setTimeout(()=>{try{const a=document.getElementById(l);if(!a)return;a.classList.remove("mdt-highlight-flash"),a.offsetWidth,a.classList.add("mdt-highlight-flash"),setTimeout(()=>{try{a.classList.remove("mdt-highlight-flash")}catch{}},600)}catch{}},0)),o.html`<span id="${l}" class="mdt-highlight">${t}</span>`}catch{return o.html``}}const kn=new WeakMap;let Bt="";function Cn(t){try{let e=0;for(const n of t.instances){const i=j(n);i>e&&(e=i)}return e}catch{return 0}}function Lt(t){try{let e=1/0;for(const n of t.instances){const i=A(n);i<e&&(e=i)}return e===1/0?0:e}catch{return 0}}function de({groups:t,selectedViewFn:e,onSelectGroup:n,onHighlight:i,renderCallback:c}){try{const l=Bt.trim().toLowerCase(),u=[...l?t.filter(p=>p.name.toLowerCase().includes(l)):t].sort((p,v)=>{const m=Lt(p),x=Lt(v);return m-x||p.name.localeCompare(v.name)}),d=p=>{try{Bt=p.target.value,c()}catch{}};return o.html`
194
+ `}catch{return i.html``}}function Lt(t){try{if("selectedComponent"in t&&t.selectedComponent!==void 0)return t.selectedComponent?pe(t.selectedComponent):ue();const{selectedGroup:e,selectedInstanceId:n,onSelectInstance:o,onHighlight:c}=t;return e?e.instances.length===1?pe(e.instances[0]):Tn(e,n,o,c):ue()}catch{return i.html``}}const M=new Set;let U=null,G=null,Y=null,X=null,ut=!1,pt=!1;const ft=i.atom(0);ft.skipDevToolsLog=!0;function A(){try{ft.set(M.size)}catch{}}function q(t){pt=!0;try{return t()}finally{pt=!1}}function Mn(){try{if(ut)return;ut=!0,U=window.setTimeout,G=window.setInterval,Y=window.clearTimeout,X=window.clearInterval;const t=U,e=G,n=Y,o=X;window.setTimeout=function(l,s,...u){let d;try{if(typeof l!="function")return d=t(l,s,...u),d;const p=l;d=t(function(...m){try{return M.delete(d)&&A(),p.apply(this,m.length?m:u)}catch{}},s,...u),pt||(M.add(d),A())}catch{d=t(l,s,...u)}return d},window.setInterval=function(l,s,...u){let d;try{if(typeof l!="function")return d=e(l,s,...u),d;const p=l;d=e(function(...m){try{return p.apply(this,m.length?m:u)}catch{}},s,...u),pt||(M.add(d),A())}catch{d=e(l,s,...u)}return d},window.clearTimeout=function(l){try{l!==void 0&&M.delete(l)&&A()}catch{}n(l)},window.clearInterval=function(l){try{l!==void 0&&M.delete(l)&&A()}catch{}o(l)}}catch{}}function In(){try{if(!ut)return;ut=!1,U&&(window.setTimeout=U),G&&(window.setInterval=G),Y&&(window.clearTimeout=Y),X&&(window.clearInterval=X),U=null,G=null,Y=null,X=null,M.clear(),A()}catch{}}const Et=new WeakMap;let Bn=0;function Ln(t){return Et.has(t)||Et.set(t,`mdt-hl-${++Bn}`),Et.get(t)}function fe(t,e,n){try{const o=n.get(e),c=o!==void 0&&o!==t;n.set(e,t);const l=Ln(e);return c&&q(()=>setTimeout(()=>{try{const s=document.getElementById(l);if(!s)return;s.classList.remove("mdt-highlight-flash"),s.offsetWidth,s.classList.add("mdt-highlight-flash"),setTimeout(()=>{try{s.classList.remove("mdt-highlight-flash")}catch{}},600)}catch{}},0)),i.html`<span id="${l}" class="mdt-highlight">${t}</span>`}catch{return i.html``}}const En=new WeakMap;let Rt="";function Rn(t){try{let e=0;for(const n of t.instances){const o=W(n);o>e&&(e=o)}return e}catch{return 0}}function At(t){try{let e=1/0;for(const n of t.instances){const o=E(n);o<e&&(e=o)}return e===1/0?0:e}catch{return 0}}function he({groups:t,selectedViewFn:e,onSelectGroup:n,onHighlight:o,renderCallback:c}){try{const l=Rt.trim().toLowerCase(),u=[...l?t.filter(p=>p.name.toLowerCase().includes(l)):t].sort((p,b)=>{const m=At(p),v=At(b);return m-v||p.name.localeCompare(b.name)}),d=p=>{try{Rt=p.target.value,c()}catch{}};return i.html`
195
195
  <div class="${r.content}">
196
196
  <div style="padding: 0 0 6px 0; flex-shrink: 0;">
197
197
  <input
198
198
  class="${r.componentSearch}"
199
199
  type="text"
200
200
  placeholder="Search components…"
201
- .value=${Bt}
201
+ .value=${Rt}
202
202
  @input=${d}
203
203
  />
204
204
  </div>
205
- ${u.length===0?o.html`<div class="${r.empty}">
205
+ ${u.length===0?i.html`<div class="${r.empty}">
206
206
  ${l?"No matching components":"No components mounted"}
207
- </div>`:o.html`
207
+ </div>`:i.html`
208
208
  <ul class="${r.componentList}">
209
- ${o.repeat(u,p=>p.viewFn,p=>{const v=Cn(p),m=e===p.viewFn,x=Lt(p),_t=p.instances.length,nn=p.instances[0];return o.html`
209
+ ${i.repeat(u,p=>p.viewFn,p=>{const b=Rn(p),m=e===p.viewFn,v=At(p),kt=p.instances.length,dn=p.instances[0];return i.html`
210
210
  <li
211
- class="${r.componentItem} ${m?Gt:""}"
211
+ class="${r.componentItem} ${m?qt:""}"
212
212
  @click=${()=>{try{n(p.viewFn)}catch{}}}
213
213
  >
214
- ${se(v,nn,kn)}
214
+ ${fe(b,dn,En)}
215
215
  <span class="${r.componentName}"
216
216
  >${p.name}</span
217
217
  >
218
- ${_t>1?o.html`<span
218
+ ${kt>1?i.html`<span
219
219
  class="${r.componentCount} ${m?r.componentCountSelected:""}"
220
- >×${_t}</span
220
+ >×${kt}</span
221
221
  >`:""}
222
222
  <span
223
223
  class="${r.componentBadge} ${m?r.componentBadgeSelected:""}"
224
- >depth ${x}</span
224
+ >depth ${v}</span
225
225
  >
226
226
  <button
227
227
  class="${r.componentHighlightBtn} ${m?r.componentHighlightBtnSelected:""}"
228
- @click=${rn=>{try{rn.stopPropagation(),i(nn)}catch{}}}
228
+ @click=${un=>{try{un.stopPropagation(),o(dn)}catch{}}}
229
229
  title="Highlight in page"
230
230
  >
231
231
  <svg
@@ -250,23 +250,23 @@
250
250
  </ul>
251
251
  `}
252
252
  </div>
253
- `}catch{return o.html``}}const Tn=new WeakMap,At=new WeakSet;function Mn(t){try{const e=new Set(t),n=new Map;for(const l of t)n.set(l,{component:l,name:E(l),depth:A(l),id:l.componentId,children:[]});const i=[];for(const l of t){const a=n.get(l),u=St(l);if(u&&e.has(u)){const d=n.get(u);if(d){d.children.push(a);continue}}i.push(a)}const c=l=>{try{l.sort((a,u)=>a.depth-u.depth||a.name.localeCompare(u.name));for(const a of l)c(a.children)}catch{}};return c(i),i}catch{return[]}}function ue(t,e,n,i,c){try{const l=t.children.length>0,a=At.has(t.component),u=j(t.component),d=e===t.id,p=t.depth*16,v=x=>{try{x.stopPropagation(),a?At.delete(t.component):At.add(t.component),c()}catch{}},m=()=>{try{n(t.id)}catch{}};return o.html`
253
+ `}catch{return i.html``}}const An=new WeakMap,Pt=new WeakSet;function Pn(t){try{const e=new Set(t),n=new Map;for(const l of t)n.set(l,{component:l,name:R(l),depth:E(l),id:l.componentId,children:[]});const o=[];for(const l of t){const s=n.get(l),u=Tt(l);if(u&&e.has(u)){const d=n.get(u);if(d){d.children.push(s);continue}}o.push(s)}const c=l=>{try{l.sort((s,u)=>s.depth-u.depth||s.name.localeCompare(u.name));for(const s of l)c(s.children)}catch{}};return c(o),o}catch{return[]}}function ge(t,e,n,o,c){try{const l=t.children.length>0,s=Pt.has(t.component),u=W(t.component),d=e===t.id,p=t.depth*16,b=v=>{try{v.stopPropagation(),s?Pt.delete(t.component):Pt.add(t.component),c()}catch{}},m=()=>{try{n(t.id)}catch{}};return i.html`
254
254
  <li
255
- class="${r.componentItem} ${d?Gt:""}"
255
+ class="${r.componentItem} ${d?qt:""}"
256
256
  style="margin-left: ${p}px;"
257
257
  @click=${m}
258
258
  >
259
- ${l?o.html`<span class="${r.treeToggle}" @click=${v}
260
- >${a?"▶":"▼"}</span
261
- >`:o.html`<span class="${r.treeLeaf}">·</span>`}
262
- ${se(u,t.component,Tn)}
259
+ ${l?i.html`<span class="${r.treeToggle}" @click=${b}
260
+ >${s?"▶":"▼"}</span
261
+ >`:i.html`<span class="${r.treeLeaf}">·</span>`}
262
+ ${fe(u,t.component,An)}
263
263
  <span class="${r.componentName}">${t.name}</span>
264
264
  <span class="${r.componentBadge}"
265
265
  >#${t.id.toString().slice(2,6)}</span
266
266
  >
267
267
  <button
268
268
  class="${r.componentHighlightBtn}"
269
- @click=${x=>{try{x.stopPropagation(),i(t.component)}catch{}}}
269
+ @click=${v=>{try{v.stopPropagation(),o(t.component)}catch{}}}
270
270
  title="Highlight in page"
271
271
  >
272
272
  <svg
@@ -287,16 +287,16 @@
287
287
  </svg>
288
288
  </button>
289
289
  </li>
290
- ${l&&!a?o.repeat(t.children,x=>x.component,x=>ue(x,e,n,i,c)):o.nothing}
291
- `}catch{return o.html``}}function pe({selectedComponentId:t,onSelectComponent:e,onHighlight:n,renderCallback:i}){try{const c=kt(),l=Mn(c);return o.html`
290
+ ${l&&!s?i.repeat(t.children,v=>v.component,v=>ge(v,e,n,o,c)):i.nothing}
291
+ `}catch{return i.html``}}function me({selectedComponentId:t,onSelectComponent:e,onHighlight:n,renderCallback:o}){try{const c=Mt(),l=Pn(c);return i.html`
292
292
  <div class="${r.content}">
293
- ${l.length===0?o.html`<div class="${r.empty}">No components mounted</div>`:o.html`
293
+ ${l.length===0?i.html`<div class="${r.empty}">No components mounted</div>`:i.html`
294
294
  <ul class="${r.componentList}">
295
- ${o.repeat(l,a=>a.component,a=>ue(a,t,e,n,i))}
295
+ ${i.repeat(l,s=>s.component,s=>ge(s,t,e,n,o))}
296
296
  </ul>
297
297
  `}
298
298
  </div>
299
- `}catch{return o.html``}}const fe=()=>(o.effect(()=>{try{console.log(dt())}catch{}}),()=>{try{return o.html`Active Timers (${dt()})`}catch{return o.html``}});fe.skipDevToolsRender=!0;function he({activeTab:t,onTabChange:e,onMinimise:n,onClose:i,unreadLogCount:c}){try{return o.html`
299
+ `}catch{return i.html``}}const ye=()=>(i.effect(()=>{try{console.log(ft())}catch{}}),()=>{try{return i.html`Active Timers (${ft()})`}catch{return i.html``}});ye.skipDevToolsRender=!0;function be({activeTab:t,onTabChange:e,onMinimise:n,onClose:o,unreadLogCount:c,unreadUserLogCount:l}){try{return i.html`
300
300
  <div class="${r.header}">
301
301
  <div class="${r.headerLeft}">
302
302
  <div class="${r.title}">🔧 Mates DevTools</div>
@@ -312,10 +312,19 @@
312
312
  @click=${()=>{try{e("logs")}catch{}}}
313
313
  >
314
314
  Logs
315
- ${c>0?o.html`<span class="${r.tabBadge}"
315
+ ${c>0?i.html`<span class="${r.tabBadge}"
316
316
  >${c>99?"99+":c}</span
317
317
  >`:""}
318
318
  </button>
319
+ <button
320
+ class="${r.tabBtn} ${t==="user-logs"?"active":""}"
321
+ @click=${()=>{try{e("user-logs")}catch{}}}
322
+ >
323
+ User Logs
324
+ ${l>0?i.html`<span class="${r.tabBadge}"
325
+ >${l>99?"99+":l}</span
326
+ >`:""}
327
+ </button>
319
328
  <button
320
329
  class="${r.tabBtn} ${t==="performance"?"active":""}"
321
330
  @click=${()=>{try{e("performance")}catch{}}}
@@ -325,7 +334,7 @@
325
334
  </nav>
326
335
  </div>
327
336
  <div>
328
- <button style="margin-left: 10px">${o.x(fe)}</button>
337
+ <button style="margin-left: 10px">${i.x(ye)}</button>
329
338
  </div>
330
339
  <div class="${r.controls}">
331
340
  <button
@@ -337,41 +346,41 @@
337
346
  </button>
338
347
  <button
339
348
  class="${r.button}"
340
- @click=${()=>{try{i()}catch{}}}
349
+ @click=${()=>{try{o()}catch{}}}
341
350
  title="Close"
342
351
  >
343
352
  ×
344
353
  </button>
345
354
  </div>
346
355
  </div>
347
- `}catch{return o.html``}}let ut=null;function ge(t){try{return ut=t,()=>{ut===t&&(ut=null)}}catch{}return()=>{}}let $=!1;function me(){$=!0}function be(){$=!1}function In(){return $}const Bn=100,P=[];let ye=1,pt=0;const ve=new Set(["devtools","DOMReady","Paint"]);function k(t,e,n){try{P.length>=Bn&&P.shift(),P.push({id:ye++,ts:performance.now(),category:t,label:e,detail:n}),pt++;try{ut?.()}catch{}}catch{}}function Et(t){try{if(t===void 0)return"undefined";if(t===null)return"null";if(typeof t=="function")return"ƒ()";try{const e=JSON.stringify(t);return e.length>120?e.slice(0,117)+"...":e}catch{return String(t)}}catch{}return""}function xe(){return P}function Ln(){return P.length}function $e(){return pt}function _e(){try{pt=0}catch{}}function we(){try{P.length=0,pt=0,ye=1}catch{}}function Se(t){try{if(!$)return;k("mount",t,"mounted")}catch{}}function ke(t,e){try{if(!$)return;k("update",t,`updated (${e.toFixed(2)}ms)`)}catch{}}function Ce(t){try{if(!$)return;k("cleanup",t,"cleaned up")}catch{}}function Te(t,e){try{if(!$)return;k("setter",t,Et(e))}catch{}}function Me(t){try{if(!$)return;k("action",t)}catch{}}function Ie(t,e){try{if(!$||ve.has(t))return;k("event",t,e!==void 0?Et(e):void 0)}catch{}}const Rt=80,Be=120;function z(t,e){try{return t.length>e?t.slice(0,e-1)+"…":t}catch{}return""}function An(t,e,n){try{if(!$)return;const i=n?`pending · ${z(n,50)}`:"pending";k("fetch",z(`${t} ${e}`,Rt),i)}catch{}}function Le(t,e,n,i){try{if(!$)return;k("fetch",z(`${t} ${e}`,Rt),z(`${n} · ${i.toFixed(0)}ms`,Be))}catch{}}function Ae(t,e,n,i){try{if(!$)return;k("fetch",z(`${t} ${e}`,Rt),z(`error · ${i.toFixed(0)}ms · ${n}`,Be))}catch{}}function Ee(t,e){try{if(!$||ve.has(t))return;k("event",`${t} (cleanup)`,e!==void 0?Et(e):void 0)}catch{}}const H={mount:"#66bb6a",update:"#42a5f5",cleanup:"#ef5350",setter:"#4fc3f7",action:"#81c784",event:"#ffb74d",fetch:"#ce93d8"},En={mount:"MNT",update:"UPD",cleanup:"CLN",setter:"SET",action:"ACT",event:"EVT",fetch:"NET"};let w="all";const Rn={all:null,lifecycle:["mount","update","cleanup"],logs:["setter","action","event"],network:["fetch"]};function Pn(t){try{const e=t/1e3|0,n=t%1e3,i=e/60|0,c=e%60;return`${String(i).padStart(2,"0")}:${String(c).padStart(2,"0")}.${String(n|0).padStart(3,"0")}`}catch{return""}}function zn(){try{const t=xe(),e=Rn[w];if(!e)return t;const n=new Set(e);return t.filter(i=>n.has(i.category))}catch{return[]}}function Re({onClear:t,renderCallback:e}){try{_e();const n=zn();return o.html`
356
+ `}catch{return i.html``}}let ht=null;function ve(t){try{return ht=t,()=>{ht===t&&(ht=null)}}catch{}return()=>{}}let x=!1;function xe(){x=!0}function $e(){x=!1}function zn(){return x}const Hn=100,P=[];let _e=1,gt=0;const we=new Set(["devtools","DOMReady","Paint"]);function k(t,e,n){try{P.length>=Hn&&P.shift(),P.push({id:_e++,ts:performance.now(),category:t,label:e,detail:n}),gt++;try{ht?.()}catch{}}catch{}}function zt(t){try{if(t===void 0)return"undefined";if(t===null)return"null";if(typeof t=="function")return"ƒ()";try{const e=JSON.stringify(t);return e.length>120?e.slice(0,117)+"...":e}catch{return String(t)}}catch{}return""}function Se(){return P}function Fn(){return P.length}function ke(){return gt}function Ce(){try{gt=0}catch{}}function Te(){try{P.length=0,gt=0,_e=1}catch{}}function Me(t){try{if(!x)return;k("mount",t,"mounted")}catch{}}function Ie(t,e){try{if(!x)return;k("update",t,`updated (${e.toFixed(2)}ms)`)}catch{}}function Be(t){try{if(!x)return;k("cleanup",t,"cleaned up")}catch{}}function Le(t,e){try{if(!x)return;k("setter",t,zt(e))}catch{}}function Ee(t){try{if(!x)return;k("action",t)}catch{}}function Re(t,e){try{if(!x||we.has(t))return;k("event",t,e!==void 0?zt(e):void 0)}catch{}}const Ht=80,Ae=120;function z(t,e){try{return t.length>e?t.slice(0,e-1)+"…":t}catch{}return""}function Dn(t,e,n){try{if(!x)return;const o=n?`pending · ${z(n,50)}`:"pending";k("fetch",z(`${t} ${e}`,Ht),o)}catch{}}function Pe(t,e,n,o){try{if(!x)return;k("fetch",z(`${t} ${e}`,Ht),z(`${n} · ${o.toFixed(0)}ms`,Ae))}catch{}}function ze(t,e,n,o){try{if(!x)return;k("fetch",z(`${t} ${e}`,Ht),z(`error · ${o.toFixed(0)}ms · ${n}`,Ae))}catch{}}function He(t,e){try{if(!x||we.has(t))return;k("event",`${t} (cleanup)`,e!==void 0?zt(e):void 0)}catch{}}const H={mount:"#66bb6a",update:"#42a5f5",cleanup:"#ef5350",setter:"#4fc3f7",action:"#81c784",event:"#ffb74d",fetch:"#ce93d8"},On={mount:"MNT",update:"UPD",cleanup:"CLN",setter:"SET",action:"ACT",event:"EVT",fetch:"NET"};let _="all";const Nn={all:null,lifecycle:["mount","update","cleanup"],logs:["setter","action","event"],network:["fetch"]};function Vn(t){try{const e=t/1e3|0,n=t%1e3,o=e/60|0,c=e%60;return`${String(o).padStart(2,"0")}:${String(c).padStart(2,"0")}.${String(n|0).padStart(3,"0")}`}catch{return""}}function jn(){try{const t=Se(),e=Nn[_];if(!e)return t;const n=new Set(e);return t.filter(o=>n.has(o.category))}catch{return[]}}function Fe({onClear:t,renderCallback:e}){try{Ce();const n=jn();return i.html`
348
357
  <div class="${r.logsPanel}">
349
358
  <div class="${r.logsToolbar}">
350
359
  <div class="${r.logsFilterRow}">
351
360
  <button
352
- class="${r.logsFilterBtn} ${w==="all"?"active":""}"
353
- @click=${()=>{try{w="all",e()}catch{}}}
361
+ class="${r.logsFilterBtn} ${_==="all"?"active":""}"
362
+ @click=${()=>{try{_="all",e()}catch{}}}
354
363
  >
355
364
  All
356
365
  </button>
357
366
  <button
358
- class="${r.logsFilterBtn} ${w==="lifecycle"?"active":""}"
367
+ class="${r.logsFilterBtn} ${_==="lifecycle"?"active":""}"
359
368
  style="--mdt-filter-color: ${H.mount}"
360
- @click=${()=>{try{w=w==="lifecycle"?"all":"lifecycle",e()}catch{}}}
369
+ @click=${()=>{try{_=_==="lifecycle"?"all":"lifecycle",e()}catch{}}}
361
370
  >
362
371
  Mounts / Updates
363
372
  </button>
364
373
  <button
365
- class="${r.logsFilterBtn} ${w==="logs"?"active":""}"
374
+ class="${r.logsFilterBtn} ${_==="logs"?"active":""}"
366
375
  style="--mdt-filter-color: ${H.setter}"
367
- @click=${()=>{try{w=w==="logs"?"all":"logs",e()}catch{}}}
376
+ @click=${()=>{try{_=_==="logs"?"all":"logs",e()}catch{}}}
368
377
  >
369
378
  Logs
370
379
  </button>
371
380
  <button
372
- class="${r.logsFilterBtn} ${w==="network"?"active":""}"
381
+ class="${r.logsFilterBtn} ${_==="network"?"active":""}"
373
382
  style="--mdt-filter-color: ${H.fetch}"
374
- @click=${()=>{try{w=w==="network"?"all":"network",e()}catch{}}}
383
+ @click=${()=>{try{_=_==="network"?"all":"network",e()}catch{}}}
375
384
  >
376
385
  Network
377
386
  </button>
@@ -380,7 +389,7 @@
380
389
  <span class="${r.logsCount}">${n.length} entries</span>
381
390
  <button
382
391
  class="${r.button}"
383
- @click=${()=>{try{we(),t()}catch{}}}
392
+ @click=${()=>{try{Te(),t()}catch{}}}
384
393
  title="Clear logs"
385
394
  >
386
395
  🗑
@@ -389,27 +398,27 @@
389
398
  </div>
390
399
 
391
400
  <div class="${r.logsContainer}">
392
- ${n.length===0?o.html`<div class="${r.empty}">
401
+ ${n.length===0?i.html`<div class="${r.empty}">
393
402
  No logs yet. Interact with the app to see activity.
394
- </div>`:o.repeat(n,i=>i.id,i=>o.html`
403
+ </div>`:i.repeat(n,o=>o.id,o=>i.html`
395
404
  <div class="${r.logEntry}">
396
- <span class="${r.logTs}">${Pn(i.ts)}</span>
405
+ <span class="${r.logTs}">${Vn(o.ts)}</span>
397
406
  <span
398
407
  class="${r.logBadge}"
399
- style="background: ${H[i.category]}22; color: ${H[i.category]}; border-color: ${H[i.category]}44;"
400
- >${En[i.category]}</span
408
+ style="background: ${H[o.category]}22; color: ${H[o.category]}; border-color: ${H[o.category]}44;"
409
+ >${On[o.category]}</span
401
410
  >
402
- <span class="${r.logLabel}">${i.label}</span>
403
- ${i.detail?o.html`<span class="${r.logDetail}"
404
- >${i.detail}</span
405
- >`:o.nothing}
411
+ <span class="${r.logLabel}">${o.label}</span>
412
+ ${o.detail?i.html`<span class="${r.logDetail}"
413
+ >${o.detail}</span
414
+ >`:i.nothing}
406
415
  </div>
407
416
  `)}
408
417
  </div>
409
418
  </div>
410
- `}catch{return o.html``}}let q=!1;function Pe(){try{q=!0}catch{}}function ze(){try{q=!1}catch{}}function Hn(){return q}const Fn=100,J=new Map;let He=1,ft=null;function Fe(t){try{return ft=t,()=>{try{ft===t&&(ft=null)}catch{}}}catch{}return()=>{}}function Pt(t,e,n){try{if(!q)return;const i={id:He++,ts:performance.now(),durationMs:n,componentName:t,instanceId:e};let c=J.get(t);c||(c=[],J.set(t,c)),c.length>=Fn&&c.shift(),c.push(i);try{ft?.()}catch{}}catch{}}function Dn(t,e){try{if(!q)return De;const n=performance.now();return()=>Pt(t,e,performance.now()-n)}catch{}return De}function De(){}function Oe(){try{const t=[];for(const[e,n]of J){if(n.length===0)continue;let i=0,c=0,l=1/0;for(const a of n)i+=a.durationMs,a.durationMs>c&&(c=a.durationMs),a.durationMs<l&&(l=a.durationMs);t.push({name:e,renderCount:n.length,avgMs:i/n.length,maxMs:c,minMs:l,lastMs:n[n.length-1].durationMs,totalMs:i,timings:n})}return t.sort((e,n)=>n.totalMs-e.totalMs),t}catch{}return[]}function Ve(){try{const t=[];for(const e of J.values())for(let n=0;n<e.length;n++)t.push(e[n]);return t}catch{}return[]}function On(t=50){try{const e=Ve();return e.sort((n,i)=>i.ts-n.ts),e.length>t?e.slice(0,t):e}catch{}return[]}function Ne(t=20){try{const e=Ve();return e.sort((n,i)=>i.durationMs-n.durationMs),e.length>t?e.slice(0,t):e}catch{}return[]}function je(){try{J.clear(),He=1}catch{}}o.atom(0);function K(t){try{return t<.01?"<0.01ms":t<1?`${t.toFixed(2)}ms`:t<10?`${t.toFixed(1)}ms`:`${t.toFixed(0)}ms`}catch{return""}}function We(t,e){try{return e<=0?0:Math.max(2,Math.min(100,t/e*100))}catch{return 0}}function Ge(t){try{return t<16?"#66bb6a":t<=20?"#ffb74d":"#ef5350"}catch{return""}}let Q="summary";function Vn(t){try{if(t.length===0)return o.html`<div class="${r.empty}">
419
+ `}catch{return i.html``}}let J=!1;function De(){try{J=!0}catch{}}function Oe(){try{J=!1}catch{}}function Wn(){return J}const Un=100,K=new Map;let Ne=1,mt=null;function Ve(t){try{return mt=t,()=>{try{mt===t&&(mt=null)}catch{}}}catch{}return()=>{}}function Ft(t,e,n){try{if(!J)return;const o={id:Ne++,ts:performance.now(),durationMs:n,componentName:t,instanceId:e};let c=K.get(t);c||(c=[],K.set(t,c)),c.length>=Un&&c.shift(),c.push(o);try{mt?.()}catch{}}catch{}}function Gn(t,e){try{if(!J)return je;const n=performance.now();return()=>Ft(t,e,performance.now()-n)}catch{}return je}function je(){}function We(){try{const t=[];for(const[e,n]of K){if(n.length===0)continue;let o=0,c=0,l=1/0;for(const s of n)o+=s.durationMs,s.durationMs>c&&(c=s.durationMs),s.durationMs<l&&(l=s.durationMs);t.push({name:e,renderCount:n.length,avgMs:o/n.length,maxMs:c,minMs:l,lastMs:n[n.length-1].durationMs,totalMs:o,timings:n})}return t.sort((e,n)=>n.totalMs-e.totalMs),t}catch{}return[]}function Ue(){try{const t=[];for(const e of K.values())for(let n=0;n<e.length;n++)t.push(e[n]);return t}catch{}return[]}function Yn(t=50){try{const e=Ue();return e.sort((n,o)=>o.ts-n.ts),e.length>t?e.slice(0,t):e}catch{}return[]}function Ge(t=20){try{const e=Ue();return e.sort((n,o)=>o.durationMs-n.durationMs),e.length>t?e.slice(0,t):e}catch{}return[]}function Ye(){try{K.clear(),Ne=1}catch{}}i.atom(0);function Q(t){try{return t<.01?"<0.01ms":t<1?`${t.toFixed(2)}ms`:t<10?`${t.toFixed(1)}ms`:`${t.toFixed(0)}ms`}catch{return""}}function Xe(t,e){try{return e<=0?0:Math.max(2,Math.min(100,t/e*100))}catch{return 0}}function qe(t){try{return t<16?"#66bb6a":t<=20?"#ffb74d":"#ef5350"}catch{return""}}let Z="summary";function Xn(t){try{if(t.length===0)return i.html`<div class="${r.empty}">
411
420
  No render data yet. Interact with the app to see component performance.
412
- </div>`;const e=Math.max(...t.map(n=>n.totalMs));return o.html`
421
+ </div>`;const e=Math.max(...t.map(n=>n.totalMs));return i.html`
413
422
  <table class="${r.perfTable}">
414
423
  <thead>
415
424
  <tr>
@@ -422,7 +431,7 @@
422
431
  </tr>
423
432
  </thead>
424
433
  <tbody>
425
- ${o.repeat(t,n=>n.name,n=>{const i=Ge(n.lastMs);return o.html`
434
+ ${i.repeat(t,n=>n.name,n=>{const o=qe(n.lastMs);return i.html`
426
435
  <tr class="${r.perfRow}">
427
436
  <td class="${r.perfCell} ${r.perfName}">
428
437
  ${n.name}
@@ -431,22 +440,22 @@
431
440
  ${n.renderCount}
432
441
  </td>
433
442
  <td class="${r.perfCell} ${r.perfNum}">
434
- ${K(n.avgMs)}
443
+ ${Q(n.avgMs)}
435
444
  </td>
436
445
  <td class="${r.perfCell} ${r.perfNum}">
437
- ${K(n.maxMs)}
446
+ ${Q(n.maxMs)}
438
447
  </td>
439
448
  <td class="${r.perfCell} ${r.perfNum}">
440
- ${K(n.lastMs)}
449
+ ${Q(n.lastMs)}
441
450
  </td>
442
451
  <td class="${r.perfCell}">
443
452
  <div class="${r.perfBarWrap}">
444
453
  <div
445
454
  class="${r.perfBar}"
446
- style="width: ${We(n.totalMs,e)}%; background: ${i};"
455
+ style="width: ${Xe(n.totalMs,e)}%; background: ${o};"
447
456
  ></div>
448
457
  <span class="${r.perfBarLabel}"
449
- >${K(n.totalMs)}</span
458
+ >${Q(n.totalMs)}</span
450
459
  >
451
460
  </div>
452
461
  </td>
@@ -454,9 +463,9 @@
454
463
  `})}
455
464
  </tbody>
456
465
  </table>
457
- `}catch{return o.html``}}function Nn(t,e){try{if(t.length===0)return o.html`<div class="${r.empty}">
466
+ `}catch{return i.html``}}function qn(t,e){try{if(t.length===0)return i.html`<div class="${r.empty}">
458
467
  No render data yet. Interact with the app to see slow renders.
459
- </div>`;const n=Math.max(...t.map(c=>c.durationMs)),i=!!e;return o.html`
468
+ </div>`;const n=Math.max(...t.map(c=>c.durationMs)),o=!!e;return i.html`
460
469
  <table class="${r.perfTable}">
461
470
  <thead>
462
471
  <tr>
@@ -466,23 +475,23 @@
466
475
  </tr>
467
476
  </thead>
468
477
  <tbody>
469
- ${o.repeat(t,c=>c.id,c=>{const l=Ge(c.durationMs),a=i?()=>{try{e(c.instanceId)}catch{}}:void 0;return o.html`
478
+ ${i.repeat(t,c=>c.id,c=>{const l=qe(c.durationMs),s=o?()=>{try{e(c.instanceId)}catch{}}:void 0;return i.html`
470
479
  <tr
471
- class="${r.perfRow} ${i?r.perfRowClickable:""}"
472
- @click=${a}
473
- title=${i?`Go to ${c.componentName} in Components tab`:""}
480
+ class="${r.perfRow} ${o?r.perfRowClickable:""}"
481
+ @click=${s}
482
+ title=${o?`Go to ${c.componentName} in Components tab`:""}
474
483
  >
475
484
  <td class="${r.perfCell} ${r.perfName}">
476
485
  ${c.componentName}
477
486
  </td>
478
487
  <td class="${r.perfCell} ${r.perfNum}">
479
- ${K(c.durationMs)}
488
+ ${Q(c.durationMs)}
480
489
  </td>
481
490
  <td class="${r.perfCell}">
482
491
  <div class="${r.perfBarWrap}">
483
492
  <div
484
493
  class="${r.perfBar}"
485
- style="width: ${We(c.durationMs,n)}%; background: ${l};"
494
+ style="width: ${Xe(c.durationMs,n)}%; background: ${l};"
486
495
  ></div>
487
496
  </div>
488
497
  </td>
@@ -490,19 +499,19 @@
490
499
  `})}
491
500
  </tbody>
492
501
  </table>
493
- `}catch{return o.html``}}function Ue({onClear:t,renderCallback:e,onNavigateToComponent:n}){try{const i=Oe(),c=Ne(30);return o.html`
502
+ `}catch{return i.html``}}function Je({onClear:t,renderCallback:e,onNavigateToComponent:n}){try{const o=We(),c=Ge(30);return i.html`
494
503
  <div class="${r.perfPanel}">
495
504
  <div class="${r.perfToolbar}">
496
505
  <div class="${r.perfTabs}">
497
506
  <button
498
- class="${r.perfTabBtn} ${Q==="summary"?"active":""}"
499
- @click=${()=>{try{Q="summary",e()}catch{}}}
507
+ class="${r.perfTabBtn} ${Z==="summary"?"active":""}"
508
+ @click=${()=>{try{Z="summary",e()}catch{}}}
500
509
  >
501
510
  Summary
502
511
  </button>
503
512
  <button
504
- class="${r.perfTabBtn} ${Q==="slowest"?"active":""}"
505
- @click=${()=>{try{Q="slowest",e()}catch{}}}
513
+ class="${r.perfTabBtn} ${Z==="slowest"?"active":""}"
514
+ @click=${()=>{try{Z="slowest",e()}catch{}}}
506
515
  >
507
516
  Slowest Renders
508
517
  </button>
@@ -510,7 +519,7 @@
510
519
  <div class="${r.perfActions}">
511
520
  <button
512
521
  class="${r.button}"
513
- @click=${()=>{try{je(),t()}catch{}}}
522
+ @click=${()=>{try{Ye(),t()}catch{}}}
514
523
  title="Clear performance data"
515
524
  >
516
525
  🗑
@@ -519,10 +528,46 @@
519
528
  </div>
520
529
 
521
530
  <div class="${r.perfContent}">
522
- ${Q==="summary"?Vn(i):Nn(c,n??null)}
531
+ ${Z==="summary"?Xn(o):qn(c,n??null)}
532
+ </div>
533
+ </div>
534
+ `}catch{return i.html``}}const Jn=100,tt=[];let Ke=1,yt=0,bt=null,Qe=null;function Kn(t){try{return bt=t,()=>{bt===t&&(bt=null)}}catch{}return()=>{}}function Qn(t){try{return t===null?"null":t===void 0?"undefined":typeof t=="string"?t:t instanceof Error?`${t.name}: ${t.message}`:typeof t=="function"?"ƒ()":JSON.stringify(t)}catch{try{return String(t)}catch{return""}}}function Ze(){try{if(Qe)return;Qe=i.matesLogEvent.__subscribe(t=>{try{tt.length>=Jn&&tt.shift(),tt.push({id:Ke++,ts:t.ts??performance.now(),level:t.level,message:Qn(t.message),data:t.data}),yt++;try{bt?.()}catch{}}catch{}})}catch{}}function Zn(){return tt}function tr(){return yt}function er(){try{yt=0}catch{}}function nr(){try{tt.length=0,yt=0,Ke=1}catch{}}const Dt={log:"#4fc3f7",warn:"#ffb74d",error:"#ef5350"},rr={log:"LOG",warn:"WRN",error:"ERR"};function or(t){try{const e=t/1e3|0,n=t%1e3,o=e/60|0,c=e%60;return`${String(o).padStart(2,"0")}:${String(c).padStart(2,"0")}.${String(n|0).padStart(3,"0")}`}catch{return""}}function ir(t){if(t==null)return"";try{return JSON.stringify(t,null,2)}catch{try{return String(t)}catch{return""}}}function cr({onClear:t,renderCallback:e}){try{er();const n=Zn();return i.html`
535
+ <div class="${r.logsPanel}">
536
+ <div class="${r.logsToolbar}">
537
+ <div class="${r.logsFilterRow}">
538
+ <span style="font-size:0.72rem;color:var(--mdt-text-muted);padding:0 4px;">
539
+ User logs from <code style="font-size:0.7rem;opacity:.8;">log()</code> / <code style="font-size:0.7rem;opacity:.8;">logError()</code>
540
+ </span>
541
+ </div>
542
+ <div class="${r.logsActions}">
543
+ <span class="${r.logsCount}">${n.length} entries</span>
544
+ <button
545
+ class="${r.button}"
546
+ @click=${()=>{try{nr(),t()}catch{}}}
547
+ title="Clear user logs"
548
+ >🗑</button>
549
+ </div>
550
+ </div>
551
+
552
+ <div class="${r.logsContainer}">
553
+ ${n.length===0?i.html`<div class="${r.empty}">
554
+ No user logs yet. Call <code>log("message", data)</code> or <code>logError(...)</code> from your app.
555
+ </div>`:i.repeat([...n].reverse(),o=>o.id,o=>{const c=ir(o.data);return i.html`
556
+ <div class="${r.logEntry}" style="align-items:flex-start;flex-direction:column;gap:2px;padding:5px 8px;">
557
+ <div style="display:flex;align-items:center;gap:6px;width:100%;">
558
+ <span class="${r.logTs}">${or(o.ts)}</span>
559
+ <span
560
+ class="${r.logBadge}"
561
+ style="background:${Dt[o.level]}22;color:${Dt[o.level]};border-color:${Dt[o.level]}44;"
562
+ >${rr[o.level]}</span>
563
+ <span class="${r.logLabel}" style="flex:1;">${o.message}</span>
564
+ </div>
565
+ ${c?i.html`<pre style="margin:0 0 0 52px;font-size:0.68rem;color:var(--mdt-text-muted);white-space:pre-wrap;word-break:break-all;max-height:120px;overflow:auto;">${c}</pre>`:i.nothing}
566
+ </div>
567
+ `})}
523
568
  </div>
524
569
  </div>
525
- `}catch{return o.html``}}let I=!1,C=!1,Z="components",B="list",_=null,S=null,b=null,F=[],f=null,y=null,ht=null,D=0;const jn=150,Wn=.8,Gn=.5;let L=null;function zt(){try{const t=document.documentElement;L===null&&(L=parseFloat(getComputedStyle(t).paddingBottom)||0),t.style.paddingBottom=`${L+D}px`}catch{}}function Ht(){try{if(L===null)return;document.documentElement.style.paddingBottom=L===0?"":`${L}px`,L=null}catch{}}let Ft=!1,Ye=0,Xe=0,gt=!1,tt=null,et=null,nt=null,O=null,V=null;function Un(){try{V!==null&&(clearTimeout(V),V=null)}catch{}}function mt(){try{Un(),O&&(O.remove(),O=null)}catch{}}function bt(t){try{let e=function(){try{const l=document.createElement("div");l.className=r.domHighlight,document.body.appendChild(l),O=l;const a=n.getBoundingClientRect();c?(l.style.position="fixed",l.style.top=`${a.top}px`,l.style.left=`${a.left}px`):(l.style.top=`${a.top+window.scrollY}px`,l.style.left=`${a.left+window.scrollX}px`),l.style.width=`${a.width}px`,l.style.height=`${a.height}px`,V=X(()=>setTimeout(()=>{try{O===l&&(l.classList.add("fade-out"),V=X(()=>setTimeout(()=>{try{O===l&&mt()}catch{}},600)))}catch{}},1500))}catch{}};mt();const n=t.firstElementChild??t,i=getComputedStyle(n).position,c=i==="fixed"||i==="sticky";if(c)e();else{const l=n.getBoundingClientRect(),a=l.top>=0&&l.bottom<=(window.innerHeight||document.documentElement.clientHeight);a||n.scrollIntoView({behavior:"smooth",block:"center"}),V=X(()=>setTimeout(e,a?0:400))}}catch{}}function qe(){try{if(_===null)return null;for(const t of F)for(const e of t.instances)if(e.componentId===_)return e;return null}catch{}return null}function Dt(){try{return S===null?null:F.find(t=>t.viewFn===S)??null}catch{}return null}function Yn(){try{if(b===null)return null;const t=Dt();return t?t.instances.find(e=>e.componentId===b)??null:null}catch{}return null}function yt(){try{F=qt(),_!==null&&!qe()&&(_=null),S!==null&&!Dt()?(S=null,b=null):b!==null&&!Yn()&&(b=null)}catch{}}function vt(){try{return I&&!C}catch{}return!1}function rt(){try{return y?.querySelector(`.${r.panel}`)??null}catch{}return null}function Xn(t){try{_=_===t?null:t,g()}catch{}}function qn(t){try{S===t?(S=null,b=null):(S=t,b=null),g()}catch{}}function Jn(t){try{b=b===t?null:t,g()}catch{}}function Kn(t){try{_=t,Z="components",yt(),S=null,b=null;for(const e of F){for(const n of e.instances)if(n.componentId===t){S=e.viewFn,b=t;break}if(S)break}g()}catch{}}function Qn(t){try{Z=t,g()}catch{}}function Zn(){try{if(!I||C)return;C=!0,rt()?.classList.remove(r.panelVisible),f&&(f.style.display=""),Ht()}catch{}}function tr(){try{if(!C)return;C=!1,f&&(f.style.display="none"),yt(),g(),zt(),requestAnimationFrame(()=>{try{requestAnimationFrame(()=>{try{rt()?.classList.add(r.panelVisible)}catch{}})}catch{}})}catch{}}function er(){try{I=!1,C=!1,_=null,Je(),mt(),Ht();const t=rt();if(t){t.classList.remove(r.panelVisible);let e=!1;const n=()=>{try{if(e)return;e=!0,t.removeEventListener("transitionend",n),Vt()}catch{}};t.addEventListener("transitionend",n,{once:!0}),X(()=>setTimeout(n,350))}else Vt();f&&(f.style.display="")}catch{}}function nr(){try{if(I)return;I=!0,C=!1,f&&(f.style.display="none"),D=Math.round(window.innerHeight*Gn),rr(),sr(),yt(),g(),zt(),requestAnimationFrame(()=>{try{requestAnimationFrame(()=>{try{rt()?.classList.add(r.panelVisible)}catch{}})}catch{}})}catch{}}function rr(){try{Pe(),tt||(tt=ge(()=>{try{vt()&&g()}catch{}})),et||(et=Fe(()=>{try{vt()&&g()}catch{}}))}catch{}}function Je(){try{ze(),tt&&(tt(),tt=null),et&&(et(),et=null)}catch{}}const Ot="mates-devtools-vars";function or(){try{if(document.getElementById(Ot))return;const t=document.createElement("style");t.id=Ot,t.textContent=`
570
+ `}catch{return i.html``}}let I=!1,C=!1,F="components",B="list",$=null,w=null,y=null,D=[],f=null,S=null,O=0;const lr=150,sr=.8,ar=.5;let L=null;function Ot(){try{const t=document.documentElement;L===null&&(L=parseFloat(getComputedStyle(t).paddingBottom)||0),t.style.paddingBottom=`${L+O}px`}catch{}}function Nt(){try{if(L===null)return;document.documentElement.style.paddingBottom=L===0?"":`${L}px`,L=null}catch{}}let Vt=!1,tn=0,en=0,vt=!1,et=null,nt=null,rt=null,ot=null,N=null,V=null;function dr(){try{V!==null&&(clearTimeout(V),V=null)}catch{}}function xt(){try{dr(),N&&(N.remove(),N=null)}catch{}}function $t(t){try{let e=function(){try{const l=document.createElement("div");l.className=r.domHighlight,document.body.appendChild(l),N=l;const s=n.getBoundingClientRect();c?(l.style.position="fixed",l.style.top=`${s.top}px`,l.style.left=`${s.left}px`):(l.style.top=`${s.top+window.scrollY}px`,l.style.left=`${s.left+window.scrollX}px`),l.style.width=`${s.width}px`,l.style.height=`${s.height}px`,V=q(()=>setTimeout(()=>{try{N===l&&(l.classList.add("fade-out"),V=q(()=>setTimeout(()=>{try{N===l&&xt()}catch{}},600)))}catch{}},1500))}catch{}};xt();const n=t.firstElementChild??t,o=getComputedStyle(n).position,c=o==="fixed"||o==="sticky";if(c)e();else{const l=n.getBoundingClientRect(),s=l.top>=0&&l.bottom<=(window.innerHeight||document.documentElement.clientHeight);s||n.scrollIntoView({behavior:"smooth",block:"center"}),V=q(()=>setTimeout(e,s?0:400))}}catch{}}function nn(){try{if($===null)return null;for(const t of D)for(const e of t.instances)if(e.componentId===$)return e;return null}catch{}return null}function jt(){try{return w===null?null:D.find(t=>t.viewFn===w)??null}catch{}return null}function ur(){try{if(y===null)return null;const t=jt();return t?t.instances.find(e=>e.componentId===y)??null:null}catch{}return null}function _t(){try{D=Zt(),$!==null&&!nn()&&($=null),w!==null&&!jt()?(w=null,y=null):y!==null&&!ur()&&(y=null)}catch{}}function it(){try{return I&&!C}catch{}return!1}function ct(){try{return S?.querySelector(`.${r.panel}`)??null}catch{}return null}function pr(t){try{$=$===t?null:t,g()}catch{}}function fr(t){try{w===t?(w=null,y=null):(w=t,y=null),g()}catch{}}function hr(t){try{y=y===t?null:t,g()}catch{}}function gr(t){try{$=t,F="components",_t(),w=null,y=null;for(const e of D){for(const n of e.instances)if(n.componentId===t){w=e.viewFn,y=t;break}if(w)break}g()}catch{}}function mr(t){try{F=t,g()}catch{}}function yr(){try{if(!I||C)return;C=!0,ct()?.classList.remove(r.panelVisible),f&&(f.style.display=""),Nt()}catch{}}function br(){try{if(!C)return;C=!1,f&&(f.style.display="none"),_t(),g(),Ot(),requestAnimationFrame(()=>{try{requestAnimationFrame(()=>{try{ct()?.classList.add(r.panelVisible)}catch{}})}catch{}})}catch{}}function vr(){try{I=!1,C=!1,$=null,rn(),xt(),Nt();const t=ct();if(t){t.classList.remove(r.panelVisible);let e=!1;const n=()=>{try{if(e)return;e=!0,t.removeEventListener("transitionend",n),Ut()}catch{}};t.addEventListener("transitionend",n,{once:!0}),q(()=>setTimeout(n,350))}else Ut();f&&(f.style.display="")}catch{}}function xr(){try{if(I)return;I=!0,C=!1,f&&(f.style.display="none"),O=Math.round(window.innerHeight*ar),$r(),Sr(),_t(),g(),Ot(),requestAnimationFrame(()=>{try{requestAnimationFrame(()=>{try{ct()?.classList.add(r.panelVisible)}catch{}})}catch{}})}catch{}}function $r(){try{De(),et||(et=ve(()=>{try{it()&&g()}catch{}})),nt||(nt=Ve(()=>{try{it()&&g()}catch{}})),Ze(),ot||(ot=Kn(()=>{try{it()&&g()}catch{}}))}catch{}}function rn(){try{Oe(),et&&(et(),et=null),nt&&(nt(),nt=null),ot&&(ot(),ot=null)}catch{}}const Wt="mates-devtools-vars";function _r(){try{if(document.getElementById(Wt))return;const t=document.createElement("style");t.id=Wt,t.textContent=`
526
571
  #mates-devtools {
527
572
  --dt-bg: #1a1a1a;
528
573
  --dt-bg-2: #222222;
@@ -554,42 +599,8 @@
554
599
  --dt-flash-bg: rgba(0,180,100,0.45);
555
600
  }
556
601
 
557
- @media (prefers-color-scheme: light) {
558
- #mates-devtools,
559
- #mates-devtools-fab {
560
- --dt-bg: #f5f5f5;
561
- --dt-bg-2: #ebebeb;
562
- --dt-bg-3: #e0e0e0;
563
- --dt-bg-input: #ffffff;
564
- --dt-bg-hover: #e8e8e8;
565
- --dt-bg-selected: #dbeafe;
566
- --dt-bg-active: rgba(59,130,246,0.12);
567
- --dt-border: #cccccc;
568
- --dt-border-2: #d4d4d4;
569
- --dt-border-3: #e4e4e4;
570
- --dt-border-selected: #3b82f6;
571
- --dt-text: #333333;
572
- --dt-text-bright: #111111;
573
- --dt-text-muted: #666666;
574
- --dt-text-dim: #888888;
575
- --dt-text-dimmer: #999999;
576
- --dt-text-selected: #1d4ed8;
577
- --dt-accent: #0077e6;
578
- --dt-accent-2: #3b82f6;
579
- --dt-scrollbar: #bbbbbb;
580
- --dt-scrollbar-hover: #999999;
581
- --dt-prop-key: #0070c1;
582
- --dt-prop-val: #a31515;
583
- --dt-scope-name: #007f6a;
584
- --dt-hook-count: #0070c1;
585
- --dt-instance-border: #3b82f6;
586
- --dt-instance-bg: #f0f4ff;
587
- --dt-flash-bg: rgba(0,160,90,0.3);
588
- }
589
- }
590
-
591
- #mates-devtools[data-theme="light"],
592
- #mates-devtools-fab[data-theme="light"] {
602
+ :root[data-theme="light"] #mates-devtools,
603
+ :root[data-theme="light"] #mates-devtools-fab {
593
604
  --dt-bg: #f5f5f5;
594
605
  --dt-bg-2: #ebebeb;
595
606
  --dt-bg-3: #e0e0e0;
@@ -619,7 +630,7 @@
619
630
  --dt-instance-bg: #f0f4ff;
620
631
  --dt-flash-bg: rgba(0,160,90,0.3);
621
632
  }
622
- `,document.head.appendChild(t)}catch{}}function ir(){try{document.getElementById(Ot)?.remove()}catch{}}function cr(){try{const t=o.themeAtom.resolved;f&&(f.dataset.theme=t),y&&(y.dataset.theme=t)}catch{}}function lr(){try{if(ht)return;cr(),ht=o.effect(()=>{try{const t=o.themeAtom.resolved;f&&(f.dataset.theme=t),y&&(y.dataset.theme=t)}catch{}})}catch{}}function ar(){try{ht?.(),ht=null}catch{}}function sr(){try{if(y)return;or(),y=document.createElement("div"),y.id="mates-devtools",y.dataset.theme=o.themeAtom.resolved,document.body.appendChild(y)}catch{}}function Vt(){try{if(!y)return;o.render(o.html``,y),y.remove(),y=null,ir()}catch{}}function g(){try{if(!y||!I)return;const t=(()=>{try{switch(Z){case"components":return o.html`
633
+ `,document.head.appendChild(t)}catch{}}function wr(){try{document.getElementById(Wt)?.remove()}catch{}}function Sr(){try{if(S)return;_r(),S=document.createElement("div"),S.id="mates-devtools",document.body.appendChild(S)}catch{}}function Ut(){try{if(!S)return;i.render(i.html``,S),S.remove(),S=null,wr()}catch{}}function g(){try{if(!S||!I)return;const t=(()=>{try{switch(F){case"components":return i.html`
623
634
  <div class="${r.body}">
624
635
  <div class="${r.leftColumn}">
625
636
  <div class="${r.leftTabs}">
@@ -670,14 +681,14 @@
670
681
  </svg>
671
682
  </button>
672
683
  </div>
673
- ${B==="list"?de({groups:F,selectedViewFn:S,onSelectGroup:qn,onHighlight:e=>bt(e),renderCallback:g}):pe({selectedComponentId:_,onSelectComponent:Xn,onHighlight:e=>bt(e),renderCallback:g})}
684
+ ${B==="list"?he({groups:D,selectedViewFn:w,onSelectGroup:fr,onHighlight:e=>$t(e),renderCallback:g}):me({selectedComponentId:$,onSelectComponent:pr,onHighlight:e=>$t(e),renderCallback:g})}
674
685
  </div>
675
- ${Mt(B==="list"?{selectedGroup:Dt(),selectedInstanceId:b,onSelectInstance:Jn,onHighlight:e=>bt(e)}:{selectedComponent:qe()})}
686
+ ${Lt(B==="list"?{selectedGroup:jt(),selectedInstanceId:y,onSelectInstance:hr,onHighlight:e=>$t(e)}:{selectedComponent:nn()})}
676
687
  </div>
677
- `;case"logs":return Re({onClear:g,renderCallback:g});case"performance":return Ue({onClear:g,renderCallback:g,onNavigateToComponent:Kn});default:return o.html``}}catch{}return o.html``})();o.render(o.html`
678
- <div class="${r.panel}" style="height: ${D}px;">
679
- <div class="${r.resizeHandle}" @mousedown=${dr}></div>
680
- ${he({activeTab:Z,onTabChange:Qn,onMinimise:Zn,onClose:er,unreadLogCount:Z==="logs"?0:$e()})}
688
+ `;case"logs":return Fe({onClear:g,renderCallback:g});case"user-logs":return cr({onClear:g,renderCallback:g});case"performance":return Je({onClear:g,renderCallback:g,onNavigateToComponent:gr});default:return i.html``}}catch{}return i.html``})();i.render(i.html`
689
+ <div class="${r.panel}" style="height: ${O}px;">
690
+ <div class="${r.resizeHandle}" @mousedown=${kr}></div>
691
+ ${be({activeTab:F,onTabChange:mr,onMinimise:yr,onClose:vr,unreadLogCount:F==="logs"?0:ke(),unreadUserLogCount:F==="user-logs"?0:tr()})}
681
692
  ${t}
682
693
  </div>
683
- `,y)}catch{}}function dr(t){try{t.preventDefault();const e=t.clientY,n=D,i=l=>{try{const a=window.innerHeight*Wn;D=Math.max(jn,Math.min(a,n+(e-l.clientY)));const u=rt();u&&(u.style.height=`${D}px`),zt()}catch{}},c=()=>{try{document.removeEventListener("mousemove",i),document.removeEventListener("mouseup",c)}catch{}};document.addEventListener("mousemove",i),document.addEventListener("mouseup",c)}catch{}}function ur(){try{if(f)return;f=document.createElement("div"),f.id="mates-devtools-fab",f.className=r.fab,f.dataset.theme=o.themeAtom.resolved,f.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"/></svg>',f.style.bottom="50px",f.style.right="50px",f.addEventListener("mousedown",Qe),f.addEventListener("click",Ke),document.body.appendChild(f)}catch{}}function pr(){try{if(!f)return;f.removeEventListener("mousedown",Qe),f.removeEventListener("click",Ke),f.remove(),f=null}catch{}}function Ke(){try{if(gt){gt=!1;return}C?tr():nr()}catch{}}function Qe(t){try{t.preventDefault(),Ft=!0,gt=!1;const e=f.getBoundingClientRect();Ye=t.clientX-e.left,Xe=t.clientY-e.top,f.classList.add(r.fabDragging),document.addEventListener("mousemove",Ze),document.addEventListener("mouseup",tn)}catch{}}function Ze(t){try{if(!Ft||!f)return;gt=!0,f.style.bottom="auto",f.style.right="auto",f.style.left=`${Math.max(0,Math.min(window.innerWidth-48,t.clientX-Ye))}px`,f.style.top=`${Math.max(0,Math.min(window.innerHeight-48,t.clientY-Xe))}px`}catch{}}function tn(){try{Ft=!1,f?.classList.remove(r.fabDragging),document.removeEventListener("mousemove",Ze),document.removeEventListener("mouseup",tn)}catch{}}function fr(){try{$n(),lr(),ur(),nt||(nt=N.__subscribe(t=>{try{t?.type==="unmount"&&(_!==null&&t.component.componentId===_&&(_=null),b!==null&&t.component.componentId===b&&(b=null)),yt(),vt()&&g()}catch{}})),Ct(()=>{try{vt()&&g()}catch{}})}catch{}}function en(){try{_n(),Ct(null),mt(),Je(),be(),Ht(),nt&&(nt(),nt=null),ar(),I=!1,C=!1,B="list",_=null,S=null,b=null,F=[],Vt(),pr()}catch{}}const xt=[];let Nt=null,jt=null,Wt=null;function hr(){try{Nt=o.interceptBefore((t,e)=>{try{const n=(e.method??"GET").toUpperCase();xt.push({method:n,url:t,startTs:performance.now()})}catch{}return{url:t,options:e}}),jt=o.interceptAfter(t=>{try{const e=xt.shift(),n=e?.method??"",i=e?.url??t.url??"",c=e?performance.now()-e.startTs:0;Le(n,i,t.status,c)}catch{}return t}),Wt=o.interceptError(t=>{try{const e=xt.shift(),n=e?performance.now()-e.startTs:0;Ae(e?.method??"",e?.url??"",t.message,n)}catch{}})}catch{}}function gr(){try{Nt?.(),jt?.(),Wt?.(),Nt=null,jt=null,Wt=null,xt.length=0}catch{}}function mr(){try{if(o.isDevToolsInstalled())return;o.installDevToolsHooks({registerComponent:Ut,unregisterComponent:Yt,notifyRender:Xt,getComponentName:E,logComponentMount:Se,logComponentRender:ke,logComponentUnmount:Ce,logAtomSet:Te,logAtomUpdate:Me,logEventTrigger:Ie,logCleanupEventTrigger:Ee,logFetchRequest:An,logFetchResponse:Le,logFetchError:Ae,recordRender:Pt}),me(),hr()}catch{}}let $t=!1;function br(){try{if($t)return;$t=!0,mr(),fr()}catch{}}function yr(){try{if(!$t)return;$t=!1,gr(),en()}catch{}}s.clearLogs=we,s.clearPerfData=je,s.connectLogStore=me,s.connectPerfStore=Pe,s.destroyDevTools=en,s.destroyMatesDevTools=yr,s.devToolsEvent=N,s.disconnectLogStore=be,s.disconnectPerfStore=ze,s.getAllComponents=kt,s.getComponentDepth=A,s.getComponentGroups=qt,s.getComponentName=E,s.getComponentsByView=ln,s.getLogCount=Ln,s.getLogs=xe,s.getPerfSummaries=Oe,s.getRecentTimings=On,s.getRenderVersion=j,s.getSlowestRenders=Ne,s.getUnreadLogCount=$e,s.isLogStoreConnected=In,s.isPerfStoreConnected=Hn,s.logAtomSet=Te,s.logAtomUpdate=Me,s.logCleanupEventTrigger=Ee,s.logComponentMount=Se,s.logComponentRender=ke,s.logComponentUnmount=Ce,s.logEventTrigger=Ie,s.markLogsRead=_e,s.notifyRender=Xt,s.onLogEntry=ge,s.onPerfEntry=Fe,s.recordRender=Pt,s.registerComponent=Ut,s.renderAtomsViewer=re,s.renderComponentInspector=Mt,s.renderComponentList=de,s.renderComponentTree=pe,s.renderHeader=he,s.renderHooksViewer=Tt,s.renderLogsViewer=Re,s.renderMatesDevTools=br,s.renderPerfViewer=Ue,s.renderPropsViewer=ee,s.renderScopesViewer=ne,s.renderUseStateViewer=oe,s.renderValueTree=T,s.renderValueTreeEntries=hn,s.setValueTreeRenderCallback=Ct,s.startRenderTiming=Dn,s.styles=r,s.unregisterComponent=Yt,Object.defineProperty(s,Symbol.toStringTag,{value:"Module"})}));
694
+ `,S)}catch{}}function kr(t){try{t.preventDefault();const e=t.clientY,n=O,o=l=>{try{const s=window.innerHeight*sr;O=Math.max(lr,Math.min(s,n+(e-l.clientY)));const u=ct();u&&(u.style.height=`${O}px`),Ot()}catch{}},c=()=>{try{document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",c)}catch{}};document.addEventListener("mousemove",o),document.addEventListener("mouseup",c)}catch{}}function Cr(){try{if(f)return;f=document.createElement("div"),f.id="mates-devtools-fab",f.className=r.fab,f.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"/></svg>',f.style.bottom="50px",f.style.right="50px",f.addEventListener("mousedown",cn),f.addEventListener("click",on),document.body.appendChild(f)}catch{}}function Tr(){try{if(!f)return;f.removeEventListener("mousedown",cn),f.removeEventListener("click",on),f.remove(),f=null}catch{}}function on(){try{if(vt){vt=!1;return}C?br():xr()}catch{}}function cn(t){try{t.preventDefault(),Vt=!0,vt=!1;const e=f.getBoundingClientRect();tn=t.clientX-e.left,en=t.clientY-e.top,f.classList.add(r.fabDragging),document.addEventListener("mousemove",ln),document.addEventListener("mouseup",sn)}catch{}}function ln(t){try{if(!Vt||!f)return;vt=!0,f.style.bottom="auto",f.style.right="auto",f.style.left=`${Math.max(0,Math.min(window.innerWidth-48,t.clientX-tn))}px`,f.style.top=`${Math.max(0,Math.min(window.innerHeight-48,t.clientY-en))}px`}catch{}}function sn(){try{Vt=!1,f?.classList.remove(r.fabDragging),document.removeEventListener("mousemove",ln),document.removeEventListener("mouseup",sn)}catch{}}function Mr(){try{Mn(),Cr(),rt||(rt=j.__subscribe(t=>{try{t?.type==="unmount"&&($!==null&&t.component.componentId===$&&($=null),y!==null&&t.component.componentId===y&&(y=null)),_t(),it()&&g()}catch{}})),It(()=>{try{it()&&g()}catch{}})}catch{}}function an(){try{In(),It(null),xt(),rn(),$e(),Nt(),rt&&(rt(),rt=null),I=!1,C=!1,B="list",$=null,w=null,y=null,D=[],Ut(),Tr()}catch{}}const wt=[];let Gt=null,Yt=null,Xt=null;function Ir(){const t=new i.FetchUtils;try{Gt=t.interceptBefore((e,n)=>{try{const o=(n.method??"GET").toUpperCase();wt.push({method:o,url:e,startTs:performance.now()})}catch{}return{url:e,options:n}}),Yt=t.interceptAfter(e=>{try{const n=wt.shift(),o=n?.method??"",c=n?.url??e.url??"",l=n?performance.now()-n.startTs:0;Pe(o,c,e.status,l)}catch{}return e}),Xt=t.interceptError(e=>{try{const n=wt.shift(),o=n?performance.now()-n.startTs:0;ze(n?.method??"",n?.url??"",e.message,o)}catch{}})}catch{}}function Br(){try{Gt?.(),Yt?.(),Xt?.(),Gt=null,Yt=null,Xt=null,wt.length=0}catch{}}function Lr(){try{if(i.isDevToolsInstalled())return;i.installDevToolsHooks({registerComponent:Jt,unregisterComponent:Kt,notifyRender:Qt,getComponentName:R,logComponentMount:Me,logComponentRender:Ie,logComponentUnmount:Be,logAtomSet:Le,logAtomUpdate:Ee,logEventTrigger:Re,logCleanupEventTrigger:He,logFetchRequest:Dn,logFetchResponse:Pe,logFetchError:ze,recordRender:Ft}),xe(),Ze(),Ir()}catch{}}let St=!1;function Er(){try{if(St)return;St=!0,Lr(),Mr()}catch{}}function Rr(){try{if(!St)return;St=!1,Br(),an()}catch{}}a.clearLogs=Te,a.clearPerfData=Ye,a.connectLogStore=xe,a.connectPerfStore=De,a.destroyDevTools=an,a.destroyMatesDevTools=Rr,a.devToolsEvent=j,a.disconnectLogStore=$e,a.disconnectPerfStore=Oe,a.getAllComponents=Mt,a.getComponentDepth=E,a.getComponentGroups=Zt,a.getComponentName=R,a.getComponentsByView=hn,a.getLogCount=Fn,a.getLogs=Se,a.getPerfSummaries=We,a.getRecentTimings=Yn,a.getRenderVersion=W,a.getSlowestRenders=Ge,a.getUnreadLogCount=ke,a.isLogStoreConnected=zn,a.isPerfStoreConnected=Wn,a.logAtomSet=Le,a.logAtomUpdate=Ee,a.logCleanupEventTrigger=He,a.logComponentMount=Me,a.logComponentRender=Ie,a.logComponentUnmount=Be,a.logEventTrigger=Re,a.markLogsRead=Ce,a.notifyRender=Qt,a.onLogEntry=ve,a.onPerfEntry=Ve,a.recordRender=Ft,a.registerComponent=Jt,a.renderAtomsViewer=le,a.renderComponentInspector=Lt,a.renderComponentList=he,a.renderComponentTree=me,a.renderHeader=be,a.renderHooksViewer=Bt,a.renderLogsViewer=Fe,a.renderMatesDevTools=Er,a.renderPerfViewer=Je,a.renderPropsViewer=ie,a.renderScopesViewer=ce,a.renderUseStateViewer=se,a.renderValueTree=T,a.renderValueTreeEntries=$n,a.setValueTreeRenderCallback=It,a.startRenderTiming=Gn,a.styles=r,a.unregisterComponent=Kt,Object.defineProperty(a,Symbol.toStringTag,{value:"Module"})}));