@opetope/devtools 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/LICENSE +21 -0
  3. package/README.md +105 -0
  4. package/README.ru.md +105 -0
  5. package/dist/activity-export.d.ts +4 -0
  6. package/dist/activity.d.ts +63 -0
  7. package/dist/conformance-activity.d.ts +8 -0
  8. package/dist/conformance.d.ts +37 -0
  9. package/dist/control-subject.d.ts +15 -0
  10. package/dist/control-ui-DMmVy9Ob.js +16 -0
  11. package/dist/control-ui-DMmVy9Ob.js.map +1 -0
  12. package/dist/control.d.ts +45 -0
  13. package/dist/corpus.d.ts +33 -0
  14. package/dist/decode-activity.d.ts +4 -0
  15. package/dist/decode-shapes.d.ts +32 -0
  16. package/dist/decode-values.d.ts +36 -0
  17. package/dist/decode.d.ts +41 -0
  18. package/dist/digest.d.ts +17 -0
  19. package/dist/export-run-DIQZax_d.js +2 -0
  20. package/dist/export-run-DIQZax_d.js.map +1 -0
  21. package/dist/export-snapshot-Buw-c6ZG.js +2 -0
  22. package/dist/export-snapshot-Buw-c6ZG.js.map +1 -0
  23. package/dist/export-snapshot.d.ts +34 -0
  24. package/dist/extension-points.d.ts +45 -0
  25. package/dist/fixture-plan.d.ts +62 -0
  26. package/dist/fixture-runtime.d.ts +37 -0
  27. package/dist/fixture.d.ts +23 -0
  28. package/dist/fold-snapshot-DjiURn8v.js +2 -0
  29. package/dist/fold-snapshot-DjiURn8v.js.map +1 -0
  30. package/dist/fold-snapshot.d.ts +15 -0
  31. package/dist/graph-index.d.ts +104 -0
  32. package/dist/graph-store.d.ts +77 -0
  33. package/dist/graph.d.ts +211 -0
  34. package/dist/index.d.ts +33 -0
  35. package/dist/index.js +2 -0
  36. package/dist/index.js.map +1 -0
  37. package/dist/inspector.d.ts +70 -0
  38. package/dist/install.d.ts +44 -0
  39. package/dist/install.js +2 -0
  40. package/dist/install.js.map +1 -0
  41. package/dist/integration.d.ts +42 -0
  42. package/dist/integration.js +2 -0
  43. package/dist/integration.js.map +1 -0
  44. package/dist/legend-DT7j0_pD.js +2 -0
  45. package/dist/legend-DT7j0_pD.js.map +1 -0
  46. package/dist/node-facts.d.ts +20 -0
  47. package/dist/node-state.d.ts +152 -0
  48. package/dist/optional.d.ts +9 -0
  49. package/dist/panel-5jvisQBr.js +367 -0
  50. package/dist/panel-5jvisQBr.js.map +1 -0
  51. package/dist/producer-ids.d.ts +15 -0
  52. package/dist/protocol-joKTjlMj.js +2 -0
  53. package/dist/protocol-joKTjlMj.js.map +1 -0
  54. package/dist/protocol.d.ts +238 -0
  55. package/dist/react/activity-rows.d.ts +12 -0
  56. package/dist/react/activity-view.d.ts +9 -0
  57. package/dist/react/control-locale.d.ts +25 -0
  58. package/dist/react/control-styles.d.ts +7 -0
  59. package/dist/react/control-ui.d.ts +37 -0
  60. package/dist/react/edge-filter.d.ts +36 -0
  61. package/dist/react/edge-filters.d.ts +17 -0
  62. package/dist/react/export-delivery.d.ts +33 -0
  63. package/dist/react/export-run.d.ts +20 -0
  64. package/dist/react/format.d.ts +17 -0
  65. package/dist/react/glyph.d.ts +20 -0
  66. package/dist/react/graph-layout.d.ts +67 -0
  67. package/dist/react/graph-view.d.ts +30 -0
  68. package/dist/react/graph-viewport.d.ts +48 -0
  69. package/dist/react/icons.d.ts +12 -0
  70. package/dist/react/inspector-view.d.ts +29 -0
  71. package/dist/react/label.d.ts +28 -0
  72. package/dist/react/lazy-module.d.ts +38 -0
  73. package/dist/react/legend-locale.d.ts +23 -0
  74. package/dist/react/legend.d.ts +10 -0
  75. package/dist/react/locale-context.d.ts +17 -0
  76. package/dist/react/locale.d.ts +115 -0
  77. package/dist/react/main-column.d.ts +22 -0
  78. package/dist/react/panel-header.d.ts +20 -0
  79. package/dist/react/panel-mode.d.ts +3 -0
  80. package/dist/react/panel-status.d.ts +19 -0
  81. package/dist/react/panel.d.ts +41 -0
  82. package/dist/react/search-results.d.ts +18 -0
  83. package/dist/react/selection.d.ts +15 -0
  84. package/dist/react/styles.d.ts +13 -0
  85. package/dist/react/theme.d.ts +39 -0
  86. package/dist/react/timeline-locale.d.ts +20 -0
  87. package/dist/react/timeline-view.d.ts +14 -0
  88. package/dist/react/tree.d.ts +26 -0
  89. package/dist/react/use-store.d.ts +11 -0
  90. package/dist/react.d.ts +16 -0
  91. package/dist/react.js +2 -0
  92. package/dist/react.js.map +1 -0
  93. package/dist/search-CC7avy6I.js +2 -0
  94. package/dist/search-CC7avy6I.js.map +1 -0
  95. package/dist/search.d.ts +20 -0
  96. package/dist/session-qjKT0E69.js +2 -0
  97. package/dist/session-qjKT0E69.js.map +1 -0
  98. package/dist/session.d.ts +59 -0
  99. package/dist/testing.d.ts +10 -0
  100. package/dist/testing.js +4 -0
  101. package/dist/testing.js.map +1 -0
  102. package/dist/timeline-view-ByPB1a7-.js +2 -0
  103. package/dist/timeline-view-ByPB1a7-.js.map +1 -0
  104. package/dist/timeline.d.ts +57 -0
  105. package/dist/visual-axes.d.ts +35 -0
  106. package/package.json +107 -0
@@ -0,0 +1,367 @@
1
+ import{jsx as a,jsxs as s,Fragment as T}from"react/jsx-runtime";import{useMemo as S,createContext as mt,useContext as xt,useCallback as p,useState as k,useEffect as q,useRef as R,useSyncExternalStore as bt}from"react";import{b as yt,s as vt,a as wt}from"./search-CC7avy6I.js";import{c as kt}from"./protocol-joKTjlMj.js";function Nt(e,t){const n=e.graph.planNode(t);return(n==null?void 0:n.kind)==="condition-group"&&n.conditions.length>0}function $t(e){return e.kind==="feature-instance"&&e.display==="quarantined"}function he(e,t){if(t!==void 0)return t.kind==="condition-group"?Nt(e,t.id)?"condition-group":void 0:$t(t)?"quarantined-instance":void 0}const fe=["hard-import","optional-import","absent-import","on-demand-import","requires-port","optional-port","absent-port","provides-port","owns","contributes-to","condition-control"],G=[{id:"imports-and-ports",kinds:["absent-import","absent-port","hard-import","on-demand-import","optional-import","optional-port","provides-port","requires-port"],label:"presetImportsAndPorts"},{id:"conditions",kinds:["condition-control","owns"],label:"presetConditions"},{id:"ownership",kinds:["owns"],label:"presetOwnership"},{id:"extension-points",kinds:["contributes-to","owns"],label:"presetExtensionPoints"}],St="imports-and-ports";function te(e){var t;return new Set(((t=G.find(n=>n.id===e))==null?void 0:t.kinds)??[])}function Ct(e,t){return e.size===t.length&&t.every(n=>e.has(n))}function ge(e){var t;return(t=G.find(n=>Ct(e,n.kinds)))==null?void 0:t.id}function It(e,t){const n=new Set(e);return n.delete(t)||n.add(t),n}const Lt=e=>{const t=e%100;if(t>=11&&t<=14)return`${e} \u0441\u0432\u044F\u0437\u0435\u0439`;const n=e%10;return n===1?`${e} \u0441\u0432\u044F\u0437\u044C`:n>=2&&n<=4?`${e} \u0441\u0432\u044F\u0437\u0438`:`${e} \u0441\u0432\u044F\u0437\u0435\u0439`},zt={activity:"physical activity",activityCall:e=>({draining:"Caller settled; physical body has not finished.",queued:"Waiting for lane admission.",running:"Call body is running."})[e]??e,activityCoverage:"Registered resources and feature/model Calls only. Host demand, UI models and stream loads are unknown. Counts do not prove absence of leaks.",activityEmpty:"No activity reported for this selection within the producer coverage.",activityOwner:"owner",activityTruncated:"Activity was truncated. Missing entries are unknown.",axisDesired:"desired",axisHealth:"health",axisLifecycle:"lifecycle",canvasHidden:e=>e===1?"1 more relation on this node is filtered out.":`${e} more relations on this node are filtered out.`,causeGatedBy:"Gated by ",causeOpenUnder:"Open under ",close:"Close devtools",controlPlaneOff:"control plane \xB7 off in this build",controlPlaneRequiresAuthority:"control plane \xB7 authority required",copyId:"Copy diagnostic id",copyIdDone:"Diagnostic id copied to the clipboard.",copyIdFailed:"The diagnostic id could not be copied.",dependenciesSatisfied:e=>`All ${e} dependencies are satisfied.`,dependenciesUnsatisfied:(e,t)=>`${e} of ${t} dependencies are not satisfied.`,dependsOn:"depends on",dependsOnCount:(e,t)=>`${e} of ${t} unsatisfied`,dependsOnNothing:"this node depends on nothing",edgeFilters:"Relations drawn",emptySelection:"Select a feature to see what it depends on and what it owns.",exportSnapshot:"Export snapshot",failureSentence:(e,t,n)=>`${e} failed in ${t} with ${n}. `,fit:"Fit",instanceCurrent:e=>`${e} current`,instanceWithPrevious:(e,t)=>`${e} current \xB7 ${t} previous`,keyInstance:"instance",keyKind:"kind",keyLifetime:"lifetime",keyOverride:"override",keyProvenance:"provenance",keyState:"state",language:"Language",lastCausalChain:"last causal chain",legend:"Legend",live:"live",matchedFailureCode:"matched failure code",matchedFailureSubject:"matched failure subject",matchedId:"matched id",matchedKind:"matched kind",matchedProvenance:"matched source path",neighbourhood:"Selected node neighbourhood",noChain:"no commit has touched this node in the retained history",noSearchHit:"No node matches this query.",noSelection:"Nothing selected.",noStateCause:"No committed cause for this state yet.",ownedCount:(e,t)=>`${e} ${t}${e===1?"":"s"}`,owns:"owns",ownsNothing:"this node owns nothing right now",panelDetails:"Details about the panel itself",panelTitle:"Opetope Devtools",planBadge:(e,t)=>`${e} \xB7 plan ${t}`,presetConditions:"Conditions",presetExtensionPoints:"Extension points",presetImportsAndPorts:"Imports and ports",presetOwnership:"Ownership",presets:"Relation presets",reducerPaint:(e,t)=>`reducer ${e} \xB7 paint ${t}`,searchLabel:"Search by name, id, kind, source path or failure",searchResults:"Search results",selectedInstanceTag:e=>`instance ${e}`,selectionPath:"Selection path",showInTimeline:"Show in timeline",stateDeclared:"declared by the plan, no instance has opened it",stateFailed:"failed to open, or its cleanup was reported",stateOpening:"opening, not ready yet",stateQuarantined:"quarantined, its cleanup did not settle",stateReady:"ready, its exports are live",stateRetiring:"retiring or closed",stateWaiting:"waiting on a dependency it has not got",statusDropped:e=>`${e} dropped`,statusFrame:(e,t)=>`frame ${e} \xB7 state rev ${t}`,surfaceFailed:"This part of the panel could not be loaded.",surfaceRetry:"Try again",tabGraph:"Graph",tabTimeline:"Timeline",themeDefaults:"theme \xB7 package defaults",themeHost:e=>`theme \xB7 host tokens via config (${e} vars)`,treeGroupPrefix:"when",treeLabel:"Application features by lifetime owner",treeSummary:(e,t)=>`application \xB7 ${e} features \xB7 ${t} condition groups`,whyThisState:"why this state",zoomIn:"Zoom in",zoomOut:"Zoom out"},Pt={activity:"\u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043A\u0430\u044F \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u044C",activityCall:e=>({draining:"\u0412\u044B\u0437\u044B\u0432\u0430\u044E\u0449\u0438\u0439 \u043F\u043E\u043B\u0443\u0447\u0438\u043B \u0438\u0441\u0445\u043E\u0434; \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043A\u043E\u0435 \u0442\u0435\u043B\u043E \u0435\u0449\u0451 \u043D\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043B\u043E\u0441\u044C.",queued:"\u041E\u0436\u0438\u0434\u0430\u0435\u0442 \u0434\u043E\u043F\u0443\u0441\u043A\u0430 \u0432 lane.",running:"\u0422\u0435\u043B\u043E Call \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F."})[e]??e,activityCoverage:"\u0422\u043E\u043B\u044C\u043A\u043E \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044B \u0438 \u0432\u044B\u0437\u043E\u0432\u044B \u0444\u0438\u0447/\u043C\u043E\u0434\u0435\u043B\u0435\u0439. \u0421\u043F\u0440\u043E\u0441 \u0445\u043E\u0441\u0442\u0430, \u043C\u043E\u0434\u0435\u043B\u0438 \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438 \u043F\u043E\u0442\u043E\u043A\u043E\u0432 \u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u044B. \u0421\u0447\u0451\u0442\u0447\u0438\u043A\u0438 \u043D\u0435 \u0434\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u044E\u0442 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0443\u0442\u0435\u0447\u0435\u043A.",activityEmpty:"\u0412 \u043F\u0440\u0435\u0434\u0435\u043B\u0430\u0445 \u043D\u0430\u0431\u043B\u044E\u0434\u0435\u043D\u0438\u044F \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u044C \u0434\u043B\u044F \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u0443\u0437\u043B\u0430 \u043D\u0435 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u0430.",activityOwner:"\u0432\u043B\u0430\u0434\u0435\u043B\u0435\u0446",activityTruncated:"\u0410\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u044C \u0443\u0441\u0435\u0447\u0435\u043D\u0430. \u041E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 \u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u044B.",axisDesired:"\u0436\u0435\u043B\u0430\u0435\u043C\u043E\u0435",axisHealth:"\u0438\u0441\u043F\u0440\u0430\u0432\u043D\u043E\u0441\u0442\u044C",axisLifecycle:"\u0436\u0438\u0437\u043D\u0435\u043D\u043D\u044B\u0439 \u0446\u0438\u043A\u043B",canvasHidden:e=>`\u0415\u0449\u0451 ${Lt(e)} \u044D\u0442\u043E\u0433\u043E \u0443\u0437\u043B\u0430 \u043E\u0442\u0444\u0438\u043B\u044C\u0442\u0440\u043E\u0432\u0430\u043D\u043E.`,causeGatedBy:"\u0417\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u043E \u0443\u0441\u043B\u043E\u0432\u0438\u0435\u043C ",causeOpenUnder:"\u041E\u0442\u043A\u0440\u044B\u0442\u043E \u043F\u0440\u0438 \u0443\u0441\u043B\u043E\u0432\u0438\u0438 ",close:"\u0417\u0430\u043A\u0440\u044B\u0442\u044C devtools",controlPlaneOff:"control plane \xB7 \u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D \u0432 \u044D\u0442\u043E\u0439 \u0441\u0431\u043E\u0440\u043A\u0435",controlPlaneRequiresAuthority:"control plane \xB7 \u043D\u0443\u0436\u043D\u0430 authority",copyId:"\u0421\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0434\u0438\u0430\u0433\u043D\u043E\u0441\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0439 id",copyIdDone:"\u0414\u0438\u0430\u0433\u043D\u043E\u0441\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0439 id \u0441\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D \u0432 \u0431\u0443\u0444\u0435\u0440 \u043E\u0431\u043C\u0435\u043D\u0430.",copyIdFailed:"\u0421\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0434\u0438\u0430\u0433\u043D\u043E\u0441\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0439 id \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C.",dependenciesSatisfied:e=>`\u0412\u0441\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u0438 \u0443\u0434\u043E\u0432\u043B\u0435\u0442\u0432\u043E\u0440\u0435\u043D\u044B: ${e}.`,dependenciesUnsatisfied:(e,t)=>`\u041D\u0435 \u0443\u0434\u043E\u0432\u043B\u0435\u0442\u0432\u043E\u0440\u0435\u043D\u043E ${e} \u0438\u0437 ${t} \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u0435\u0439.`,dependsOn:"\u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043E\u0442",dependsOnCount:(e,t)=>`${e} \u0438\u0437 ${t} \u043D\u0435 \u0443\u0434\u043E\u0432\u043B\u0435\u0442\u0432\u043E\u0440\u0435\u043D\u043E`,dependsOnNothing:"\u0443\u0437\u0435\u043B \u043D\u0438 \u043E\u0442 \u0447\u0435\u0433\u043E \u043D\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442",edgeFilters:"\u041A\u0430\u043A\u0438\u0435 \u0441\u0432\u044F\u0437\u0438 \u0440\u0438\u0441\u043E\u0432\u0430\u0442\u044C",emptySelection:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0444\u0438\u0447\u0443, \u0447\u0442\u043E\u0431\u044B \u0443\u0432\u0438\u0434\u0435\u0442\u044C \u0435\u0451 \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u0438 \u0438 \u0442\u043E, \u0447\u0435\u043C \u043E\u043D\u0430 \u0432\u043B\u0430\u0434\u0435\u0435\u0442.",exportSnapshot:"\u0412\u044B\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0441\u043D\u0438\u043C\u043E\u043A",failureSentence:(e,t,n)=>`${e}: \u043E\u0442\u043A\u0430\u0437 \u0432 \u0444\u0430\u0437\u0435 ${t}, \u043A\u043E\u0434 ${n}. `,fit:"\u0412\u043F\u0438\u0441\u0430\u0442\u044C",instanceCurrent:e=>`${e} \u0442\u0435\u043A\u0443\u0449\u0438\u0439`,instanceWithPrevious:(e,t)=>`${e} \u0442\u0435\u043A\u0443\u0449\u0438\u0439 \xB7 ${t} \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0438\u0439`,keyInstance:"\u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440",keyKind:"\u0432\u0438\u0434",keyLifetime:"\u0432\u0440\u0435\u043C\u044F \u0436\u0438\u0437\u043D\u0438",keyOverride:"override",keyProvenance:"\u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A",keyState:"\u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435",language:"\u042F\u0437\u044B\u043A",lastCausalChain:"\u043F\u043E\u0441\u043B\u0435\u0434\u043D\u044F\u044F \u043F\u0440\u0438\u0447\u0438\u043D\u043D\u0430\u044F \u0446\u0435\u043F\u043E\u0447\u043A\u0430",legend:"\u041B\u0435\u0433\u0435\u043D\u0434\u0430",live:"\u0436\u0438\u0432\u043E\u0439",matchedFailureCode:"\u0441\u043E\u0432\u043F\u0430\u043B \u043A\u043E\u0434 \u043E\u0442\u043A\u0430\u0437\u0430",matchedFailureSubject:"\u0441\u043E\u0432\u043F\u0430\u043B \u0441\u0443\u0431\u044A\u0435\u043A\u0442 \u043E\u0442\u043A\u0430\u0437\u0430",matchedId:"\u0441\u043E\u0432\u043F\u0430\u043B id",matchedKind:"\u0441\u043E\u0432\u043F\u0430\u043B \u0432\u0438\u0434",matchedProvenance:"\u0441\u043E\u0432\u043F\u0430\u043B \u043F\u0443\u0442\u044C \u043A \u0438\u0441\u0445\u043E\u0434\u043D\u0438\u043A\u0443",neighbourhood:"\u041E\u043A\u0440\u0435\u0441\u0442\u043D\u043E\u0441\u0442\u044C \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u0443\u0437\u043B\u0430",noChain:"\u0432 \u0441\u043E\u0445\u0440\u0430\u043D\u0451\u043D\u043D\u043E\u0439 \u0438\u0441\u0442\u043E\u0440\u0438\u0438 \u043D\u0435\u0442 \u043A\u043E\u043C\u043C\u0438\u0442\u0430, \u0437\u0430\u0442\u0440\u043E\u043D\u0443\u0432\u0448\u0435\u0433\u043E \u044D\u0442\u043E\u0442 \u0443\u0437\u0435\u043B",noSearchHit:"\u041D\u0438 \u043E\u0434\u0438\u043D \u0443\u0437\u0435\u043B \u043D\u0435 \u043F\u043E\u0434\u0445\u043E\u0434\u0438\u0442 \u043F\u043E\u0434 \u0437\u0430\u043F\u0440\u043E\u0441.",noSelection:"\u041D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u043E.",noStateCause:"\u0423 \u044D\u0442\u043E\u0433\u043E \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u044F \u0435\u0449\u0451 \u043D\u0435\u0442 \u0437\u0430\u0444\u0438\u043A\u0441\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0439 \u043F\u0440\u0438\u0447\u0438\u043D\u044B.",ownedCount:(e,t)=>`${t}: ${e}`,owns:"\u0432\u043B\u0430\u0434\u0435\u0435\u0442",ownsNothing:"\u0441\u0435\u0439\u0447\u0430\u0441 \u0443\u0437\u0435\u043B \u043D\u0438\u0447\u0435\u043C \u043D\u0435 \u0432\u043B\u0430\u0434\u0435\u0435\u0442",panelDetails:"\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438 \u043E \u0441\u0430\u043C\u043E\u0439 \u043F\u0430\u043D\u0435\u043B\u0438",panelTitle:"Opetope Devtools",planBadge:(e,t)=>`${e} \xB7 \u043F\u043B\u0430\u043D ${t}`,presetConditions:"\u0423\u0441\u043B\u043E\u0432\u0438\u044F",presetExtensionPoints:"\u0422\u043E\u0447\u043A\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F",presetImportsAndPorts:"\u0418\u043C\u043F\u043E\u0440\u0442\u044B \u0438 \u043F\u043E\u0440\u0442\u044B",presetOwnership:"\u0412\u043B\u0430\u0434\u0435\u043D\u0438\u0435",presets:"\u041D\u0430\u0431\u043E\u0440\u044B \u0441\u0432\u044F\u0437\u0435\u0439",reducerPaint:(e,t)=>`reducer ${e} \xB7 \u043E\u0442\u0440\u0438\u0441\u043E\u0432\u043A\u0430 ${t}`,searchLabel:"\u041F\u043E\u0438\u0441\u043A \u043F\u043E \u0438\u043C\u0435\u043D\u0438, id, \u0432\u0438\u0434\u0443, \u043F\u0443\u0442\u0438 \u043A \u0438\u0441\u0445\u043E\u0434\u043D\u0438\u043A\u0443 \u0438\u043B\u0438 \u043E\u0442\u043A\u0430\u0437\u0443",searchResults:"\u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B \u043F\u043E\u0438\u0441\u043A\u0430",selectedInstanceTag:e=>`\u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440 ${e}`,selectionPath:"\u041F\u0443\u0442\u044C \u0432\u044B\u0431\u043E\u0440\u0430",showInTimeline:"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0432 \u0445\u0440\u043E\u043D\u043E\u043B\u043E\u0433\u0438\u0438",stateDeclared:"\u043E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u043E \u043F\u043B\u0430\u043D\u043E\u043C, \u044D\u043A\u0437\u0435\u043C\u043F\u043B\u044F\u0440 \u0435\u0449\u0451 \u043D\u0435 \u043E\u0442\u043A\u0440\u044B\u0432\u0430\u043B\u0441\u044F",stateFailed:"\u043D\u0435 \u043E\u0442\u043A\u0440\u044B\u043B\u043E\u0441\u044C, \u043B\u0438\u0431\u043E \u043E\u0431 \u0443\u0431\u043E\u0440\u043A\u0435 \u0434\u043E\u043B\u043E\u0436\u0435\u043D\u043E",stateOpening:"\u043E\u0442\u043A\u0440\u044B\u0432\u0430\u0435\u0442\u0441\u044F, \u0435\u0449\u0451 \u043D\u0435 \u0433\u043E\u0442\u043E\u0432\u043E",stateQuarantined:"\u0432 \u043A\u0430\u0440\u0430\u043D\u0442\u0438\u043D\u0435, \u0443\u0431\u043E\u0440\u043A\u0430 \u043D\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043B\u0430\u0441\u044C",stateReady:"\u0433\u043E\u0442\u043E\u0432\u043E, \u044D\u043A\u0441\u043F\u043E\u0440\u0442\u044B \u0436\u0438\u0432\u044B\u0435",stateRetiring:"\u0443\u0445\u043E\u0434\u0438\u0442 \u0438\u043B\u0438 \u0437\u0430\u043A\u0440\u044B\u0442\u043E",stateWaiting:"\u0436\u0434\u0451\u0442 \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u044C, \u043A\u043E\u0442\u043E\u0440\u043E\u0439 \u0443 \u043D\u0435\u0433\u043E \u043D\u0435\u0442",statusDropped:e=>`\u043F\u043E\u0442\u0435\u0440\u044F\u043D\u043E: ${e}`,statusFrame:(e,t)=>`\u043A\u0430\u0434\u0440 ${e} \xB7 \u0440\u0435\u0432\u0438\u0437\u0438\u044F ${t}`,surfaceFailed:"\u042D\u0442\u0443 \u0447\u0430\u0441\u0442\u044C \u043F\u0430\u043D\u0435\u043B\u0438 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C.",surfaceRetry:"\u041F\u043E\u043F\u0440\u043E\u0431\u043E\u0432\u0430\u0442\u044C \u0441\u043D\u043E\u0432\u0430",tabGraph:"\u0413\u0440\u0430\u0444",tabTimeline:"\u0425\u0440\u043E\u043D\u043E\u043B\u043E\u0433\u0438\u044F",themeDefaults:"\u0442\u0435\u043C\u0430 \xB7 \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044F \u043F\u0430\u043A\u0435\u0442\u0430",themeHost:e=>`\u0442\u0435\u043C\u0430 \xB7 \u0442\u043E\u043A\u0435\u043D\u044B \u0445\u043E\u0441\u0442\u0430 \u0438\u0437 \u043A\u043E\u043D\u0444\u0438\u0433\u0430 (${e})`,treeGroupPrefix:"when",treeLabel:"\u0424\u0438\u0447\u0438 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043F\u043E \u0432\u043B\u0430\u0434\u0435\u043B\u044C\u0446\u0443 \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u0436\u0438\u0437\u043D\u0438",treeSummary:(e,t)=>`\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \xB7 \u0444\u0438\u0447: ${e} \xB7 \u0433\u0440\u0443\u043F\u043F \u0443\u0441\u043B\u043E\u0432\u0438\u0439: ${t}`,whyThisState:"\u043F\u043E\u0447\u0435\u043C\u0443 \u044D\u0442\u043E \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435",zoomIn:"\u041F\u0440\u0438\u0431\u043B\u0438\u0437\u0438\u0442\u044C",zoomOut:"\u041E\u0442\u0434\u0430\u043B\u0438\u0442\u044C"},Ot={en:zt,ru:Pt},me=["en","ru"];function Tt(e){return me.includes(e)}function Rt(e=(t=>(t=globalThis.navigator)==null?void 0:t.languages)()??[]){for(const n of e){const i=n.slice(0,2).toLowerCase();if(Tt(i))return i}return"en"}function Mt(e){return Ot[e]}const xe=mt(void 0);function Bt({children:e,locale:t}){const n=S(()=>({locale:t,strings:Mt(t)}),[t]);return a(xe,{value:n,children:e})}function be(){const e=xt(xe);if(e===void 0)throw new Error("Devtools strings were read outside the panel.");return e}function v(){return be().strings}function Dt(){return be().locale}function Ft({label:e,onPreset:t,preset:n,pressed:i}){const o=p(()=>t(n),[t,n]);return a("button",{"aria-pressed":i,className:"odt-preset",type:"button",onClick:o,children:e})}function At({kind:e,on:t,onToggle:n}){const i=p(()=>n(e),[e,n]);return a("button",{"aria-checked":t,className:"odt-chip",role:"switch",type:"button",onClick:i,children:e})}function qt({onPreset:e,onToggle:t,selected:n}){const i=v(),o=ge(n);return s("div",{className:"odt-filters",children:[a("div",{"aria-label":i.presets,className:"odt-presets",role:"group",children:G.map(d=>a(Ft,{label:i[d.label],preset:d.id,pressed:d.id===o,onPreset:e},d.id))}),a("div",{"aria-label":i.edgeFilters,className:"odt-chips",role:"group",children:fe.map(d=>a(At,{kind:d,on:n.has(d),onToggle:t},d))})]})}function Et(e){var n;const t=(n=e.lane)==null?void 0:n.blockedBy;return t==="unknown"?t:(t==null?void 0:t.join(", "))??""}function Ht(e){return e.loads==="unknown"?"unknown":e.loads.map(t=>`${t.id}: ${t.state}`).join(", ")}function Wt(e){var n;const t=e.features.map(i=>({details:[["body",i.body],["demand",i.demandCount]],id:i.id,kind:"feature",label:i.feature,owner:i,state:i.phase}));for(const i of e.calls)t.push({details:[["pendingWaiters",i.pendingWaiters],["lane",((n=i.lane)==null?void 0:n.id)??"parallel"],["blockedBy",Et(i)]],id:i.id,kind:"call",label:i.declaration,owner:i.owner,state:i.state});for(const i of e.resources)t.push({details:[["generation",i.generation],["retention",i.retention],["retainers",i.retainers],["loads",Ht(i)]],id:i.id,kind:i.kind,label:i.id,owner:i.owner,state:i.state});return t}function Gt({onSelect:e,row:t}){const n=v(),i=p(()=>e(kt(t.owner.feature)),[e,t.owner.feature]);return a("div",{id:t.id,className:"odt-chain",children:s("div",{children:[s("div",{className:"odt-mono",children:[t.kind," \xB7 ",t.label," \xB7 ",t.state]}),a("div",{className:"odt-k",children:t.id}),t.kind==="call"?a("div",{children:n.activityCall(t.state)}):void 0,s("button",{className:"odt-btn odt-btn-quiet",type:"button",onClick:i,children:[n.activityOwner," \xB7 ",t.owner.instance," \xB7 #",t.owner.generation]}),t.details.map(([o,d])=>s("div",{className:"odt-k",children:[o,": ",d===""?"\u2014":d]},o))]})})}function Kt(e){const t=e.applicationActivity,n=new Set([e.id,...e.owned.map(o=>o.node.id)]);return t===void 0?[]:Wt(t).filter(o=>e.kind==="application"||n.has(o.owner.feature)||n.has(o.owner.instance))}function Ut({onSelect:e,projection:t}){const n=v(),i=t.applicationActivity,o=Kt(t);return s("section",{className:"odt-section",children:[a("h3",{className:"odt-sec",children:n.activity}),s("div",{className:"odt-k",children:[i==null?void 0:i.executionId," \xB7 ",(i==null?void 0:i.freshness)??"unknown"]}),i!=null&&i.truncated?a("div",{children:n.activityTruncated}):void 0,a("div",{className:"odt-k",children:n.activityCoverage}),o.length===0?a("div",{className:"odt-k",children:n.activityEmpty}):o.map(d=>a(Gt,{row:d,onSelect:e},d.id))]})}const Vt=new Intl.DateTimeFormat(void 0,{hour:"2-digit",hour12:!1,minute:"2-digit",second:"2-digit"});function ye(e){return Vt.format(e)}function ve(e){const t=String(e%1e3).padStart(3,"0");return`${ye(e)}.${t}`}function we(e,t,n){return t===void 0?n.instanceCurrent(e):n.instanceWithPrevious(e,t)}function ne(e){return e===void 0?"\u2014":ve(e)}function ke(e){return`${e<10?e.toFixed(1):Math.round(e)} ms`}const Zt={declared:"ring",failed:"triangle",opening:"ring",quarantined:"cross-square",ready:"circle",retiring:"diamond",waiting:"ring"},Yt={declared:"mute",failed:"bad",opening:"mute",quarantined:"bad",ready:"ok",retiring:"mute",waiting:"warn"},Qt={declared:"odt-tag-mute",failed:"odt-tag-bad",opening:"odt-tag-mute",quarantined:"odt-tag-bad",ready:"odt-tag-ok",retiring:"odt-tag-mute",waiting:"odt-tag-warn"},Xt={declared:"stateDeclared",failed:"stateFailed",opening:"stateOpening",quarantined:"stateQuarantined",ready:"stateReady",retiring:"stateRetiring",waiting:"stateWaiting"};function Ne(e,t){return t[Xt[e]]}const Jt=["ready","opening","waiting","declared","retiring","failed","quarantined"];function _t(e){return e==="circle"?a("circle",{cx:"5",cy:"5",fill:"currentColor",r:"5"}):e==="ring"?a("circle",{cx:"5",cy:"5",fill:"none",r:"4",stroke:"currentColor",strokeWidth:"2"}):e==="diamond"?a("path",{d:"M5 0l5 5-5 5-5-5z",fill:"currentColor"}):e==="triangle"?a("path",{d:"M5 0l5 10H0z",fill:"currentColor"}):s("g",{fill:"none",stroke:"currentColor",strokeWidth:"1.5",children:[a("path",{d:"M1 1h8v8H1z"}),a("path",{d:"M1 1l8 8M9 1L1 9",strokeWidth:"1.2"})]})}function L({size:e=10,state:t}){return a("span",{className:`odt-glyph odt-glyph-${Yt[t]}`,"aria-hidden":!0,children:a("svg",{height:e,viewBox:"0 0 10 10",width:e,children:_t(Zt[t])})})}function ie({state:e}){const t=v();return a("span",{className:`odt-tag ${Qt[e]}`,title:Ne(e,t),children:e})}function K(e,t){return a("span",{className:"odt-glyph","aria-hidden":!0,children:a("svg",{fill:"currentColor",height:t,viewBox:"0 0 24 24",width:t,children:e})})}function jt({size:e=16}){return K(a("path",{clipRule:"evenodd",d:"M11 4a7 7 0 1 0 4.856 12.041 1 1 0 0 1 .185-.185A7 7 0 0 0 11 4m7.032 12.618a9 9 0 1 0-1.414 1.414l3.675 3.675a1 1 0 0 0 1.414-1.414z",fillRule:"evenodd"}),e)}function en({size:e=16}){return K(a("path",{d:"M6.707 5.293a1 1 0 0 0-1.414 1.414L10.586 12l-5.293 5.293a1 1 0 1 0 1.414 1.414L12 13.414l5.293 5.293a1 1 0 0 0 1.414-1.414L13.414 12l5.293-5.293a1 1 0 0 0-1.414-1.414L12 10.586z"}),e)}function tn({size:e=16}){return K(a("path",{d:"M8 3a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2zm0 2h8v10H8zM4 8a1 1 0 0 1 1 1v9h8a1 1 0 1 1 0 2H5a2 2 0 0 1-2-2V9a1 1 0 0 1 1-1"}),e)}function nn({open:e,size:t=16}){return K(e?a("path",{d:"M8.293 9.293a1 1 0 0 1 1.414 0L12 11.586l2.293-2.293a1 1 0 1 1 1.414 1.414l-3 3a1 1 0 0 1-1.414 0l-3-3a1 1 0 0 1 0-1.414"}):a("path",{d:"M9.293 8.293a1 1 0 0 1 1.414 0l3 3a1 1 0 0 1 0 1.414l-3 3a1 1 0 0 1-1.414-1.414L11.586 12 9.293 9.707a1 1 0 0 1 0-1.414"}),t)}function $e(e){return e?"odt-tag-ok":"odt-tag-bad"}function on(e,t){return t.failureSentence(e.subject,e.phase,e.code)}function an(e,t,n){const i=e.why.cause;if(i===void 0)return[];const o=i.at===void 0?". ":` \xB7 ${ne(i.at)}. `;return i.condition===void 0?[`${i.kind}${o}`]:[e.axes.lifecycle==="ready"?t.causeOpenUnder:t.causeGatedBy,a("span",{className:"odt-why-ref",children:n(i.condition)},"condition"),o]}function dn(e,t){if(e.totalBlockers!==0)return e.readyBlockers===e.totalBlockers?t.dependenciesSatisfied(e.totalBlockers):t.dependenciesUnsatisfied(e.totalBlockers-e.readyBlockers,e.totalBlockers)}function rn(e,t,n){const{why:i}=e,o=i.failure===void 0?[...an(e,t,n)]:[on(i.failure,t)];i.progress!==void 0&&o.push(`${i.progress}. `);const d=dn(i,t);return d!==void 0&&o.push(d),o.length===0?t.noStateCause:o}function M({children:e,label:t}){return s(T,{children:[a("span",{className:"odt-k",children:t}),a("span",{className:"odt-v",title:typeof e=="string"?e:void 0,children:e})]})}function sn({projection:e}){const t=v(),{generation:n,node:i}=e;if(n===void 0)return;const o=(i==null?void 0:i.kind)==="feature-instance"?i.previous:void 0;return a(M,{label:t.keyInstance,children:a("span",{className:"odt-mono",children:we(n,o,t)})})}function ln({projection:e}){const t=v(),{groupLabel:n,node:i,override:o,provenance:d}=e;return s("div",{className:"odt-kv",children:[a(M,{label:t.keyKind,children:e.kind}),a(sn,{projection:e}),n===void 0?void 0:a(M,{label:t.keyLifetime,children:n}),i===void 0?void 0:a(M,{label:t.keyState,children:i.state.kind}),o==="none"?void 0:a(M,{label:t.keyOverride,children:o}),d===void 0?void 0:a(M,{label:t.keyProvenance,children:d})]})}function cn({blocker:e,onSelect:t}){const n=p(()=>t(e.node),[e.node,t]);return s("button",{className:"odt-section-row",type:"button",onClick:n,children:[a(L,{size:8,state:e.display}),a("span",{className:"odt-section-row-label",children:e.label}),s("span",{className:"odt-k",children:[e.kind,e.lookup===void 0?"":` \xB7 ${e.lookup}`]})]})}function un({onSelect:e,row:t}){const n=p(()=>e(t.node.id),[e,t.node.id]);return s("button",{className:t.depth>0?"odt-section-row odt-section-row-nested":"odt-section-row",type:"button",onClick:n,children:[a(L,{size:8,state:t.display}),a("span",{className:"odt-section-row-label",children:t.node.label}),a("span",{className:"odt-k odt-mono",children:t.node.state.kind})]})}function pn({conditionLabelOf:e,labelOf:t,step:n}){const i=n.cause.condition===void 0?void 0:e(n.cause.condition),o=n.node===void 0?n.cause.kind:t(n.node);return s("div",{className:"odt-chain",children:[a("span",{className:"odt-chain-time",children:ne(n.cause.at)}),a("span",{children:i===void 0?s(T,{children:[o," \xB7 ",n.lifecycle??n.cause.kind]}):s(T,{children:[a("span",{className:"odt-why-ref",children:i})," \u2192 ",o]})})]})}function hn({actionStatus:e,conditionLabelOf:t,control:n,labelOf:i,onCopyId:o,onExport:d,onSelect:c,onShowInTimeline:r,projection:h}){const u=v(),{axes:l,blockers:g,chain:m,owned:x}=h,b=p(()=>o(h.id),[o,h.id]);return s("div",{className:"odt-inspector",children:[s("div",{className:"odt-inspector-scroll",children:[s("div",{className:"odt-inspector-head",children:[s("div",{className:"odt-inspector-title",children:[a("span",{className:"odt-truncate",children:h.label}),a("button",{"aria-label":u.copyId,className:"odt-btn odt-btn-icon odt-btn-quiet",type:"button",onClick:b,children:a(tn,{})})]}),s("div",{className:"odt-axes",children:[s("span",{className:"odt-tag odt-tag-accent",children:[u.axisDesired," \xB7 ",l.desired]}),s("span",{className:`odt-tag ${$e(l.lifecycle!=="closed")}`,children:[u.axisLifecycle," \xB7 ",l.lifecycle]}),s("span",{className:`odt-tag ${$e(l.health==="healthy")}`,children:[u.axisHealth," \xB7 ",l.health]})]})]}),a(ln,{projection:h}),s("div",{className:"odt-why",children:[a("div",{className:"odt-sec",children:u.whyThisState}),a("div",{className:"odt-why-text",children:rn(h,u,t)})]}),s("section",{className:"odt-section",children:[s("h3",{className:"odt-sec",children:[u.dependsOn," \xB7"," ",u.dependsOnCount(h.why.totalBlockers-h.why.readyBlockers,h.why.totalBlockers)]}),a("div",{className:"odt-section-rows",children:g.length===0?a("span",{className:"odt-k",children:u.dependsOnNothing}):g.map(y=>a(cn,{blocker:y,onSelect:c},y.node))})]}),s("section",{className:"odt-section",children:[a("h3",{className:"odt-sec",children:u.owns}),a("div",{className:"odt-section-rows",children:x.length===0?a("span",{className:"odt-k",children:u.ownsNothing}):x.map(y=>a(un,{row:y,onSelect:c},y.edge.id))})]}),a(Ut,{projection:h,onSelect:c}),s("section",{className:"odt-section",children:[a("h3",{className:"odt-sec",children:u.lastCausalChain}),a("div",{className:"odt-section-rows",children:m.length===0?a("span",{className:"odt-k",children:u.noChain}):m.map(y=>a(pn,{conditionLabelOf:t,labelOf:i,step:y},`${y.sequence}:${y.node??""}`))})]})]}),s("div",{className:"odt-footer",children:[n,a("button",{className:"odt-btn odt-btn-small",type:"button",onClick:r,children:u.showInTimeline}),a("button",{className:"odt-btn odt-btn-small",type:"button",onClick:d,children:u.exportSnapshot}),a("span",{"aria-live":"polite",className:"odt-footer-status odt-footer-end",children:e??""})]})]})}const oe=new Map,U=new Map;function ae(e){const[t,n]=k(0),[i,o]=k(void 0),[d,c]=k(void 0),r=e,h=p(()=>{o(void 0),n(l=>l+1)},[]);q(()=>{if(r===void 0||oe.has(r))return;let l=!0;const g=U.get(r)??e();return U.set(r,g),g.then(m=>{oe.set(r,m),U.delete(r),l&&c(m)},m=>{U.delete(r),l&&o(m)}),()=>{l=!1}},[t,r,e]);const u=r===void 0?void 0:oe.get(r)??d;return{error:r===void 0?void 0:i,module:u,retry:h}}const fn=()=>import("./control-ui-DMmVy9Ob.js"),gn=()=>import("./legend-DT7j0_pD.js"),mn=()=>import("./export-run-DIQZax_d.js"),xn=()=>import("./timeline-view-ByPB1a7-.js"),bn=23,yn=19;function vn(e,t){return t===void 0||t===e?e:e.startsWith(`${t}.`)?`\u2026${e.slice(t.length+1)}`:e}function Se(e,t){if(e.length<=t)return e;const n=e.lastIndexOf("."),i=n===-1?e:e.slice(n);return i.length+1>=t?`\u2026${e.slice(e.length-t+1)}`:`${e.slice(0,t-i.length-1)}\u2026${i}`}function V(e,t){return Se(vn(e,t),bn)}function Ce(e){return Se(e,yn)}const Z=188,B=52,Y=76,wn=244,E=96,de=24,H=52,Ie=44;function Q(e){return{x:e.x+Z,y:e.y+e.height/2}}function X(e){return{x:e.x,y:e.y+e.height/2}}function J(e,t){if(e.y===t.y)return`M ${e.x} ${e.y} L ${t.x} ${t.y}`;const n=Math.min(40,(t.x-e.x)/2);return`M ${e.x} ${e.y} C ${e.x+n} ${e.y}, ${t.x-n} ${t.y}, ${t.x} ${t.y}`}function z(e){return de+e*wn}function _(e,t,n){const i=(n-t)/2;return H+(e+Math.max(0,i))*E}function kn(e,t,n,i,o){return{display:e.display,height:B,id:e.node,key:`in:${t}:${e.node}`,label:V(e.label,o),selected:!1,sub:[e.kind,e.ready?"ready":"waiting"],title:e.label,x:z(0),y:_(t,n,i)}}function Nn(e,t,n,i,o){return{display:e.display,height:B,id:e.node.id,key:e.edge.id,label:V(e.node.label,o),selected:!1,sub:[e.edge.kind,e.node.state.kind],title:e.node.label,x:z(2),y:_(t,n,i)}}function $n(e,t){const n=new Map;for(const o of e.owned)n.set(o.node.kind,(n.get(o.node.kind)??0)+1);const i=[...n.entries()].map(([o,d])=>t.ownedCount(d,o));return i.length===0?void 0:i.join(" \xB7 ")}function Sn(e,t){return e.generation===void 0?[e.kind]:[e.kind,t.selectedInstanceTag(e.generation)]}function Cn(e,t,n,i,o,d){return{display:e.contributionDisplay,height:B,id:e.contribution,key:`contribution:${t}:${e.contribution}`,label:V(e.contributionLabel,d),selected:!1,sub:[o?"contributes-to":e.contributorLabel,e.state],title:e.contributionLabel,x:z(1),y:_(t,n,i)}}function In(e,t,n,i,o,d){return{display:e.endpointDisplay,height:B,id:e.endpoint,key:`endpoint:${t}:${e.endpoint}`,label:V(e.endpointLabel,d),selected:!1,sub:[o?"contributor":"target",e.endpointDisplay],title:e.endpointLabel,x:z(2),y:_(t,n,i)}}function Le(e,t,n){const i=b=>t===void 0||t.has(b),o=e.blockers.filter(b=>i(b.kind)),d=e.owned.filter(b=>b.depth===0&&i(b.edge.kind)),c=Math.max(o.length,d.length,1),r=o.map((b,y)=>kn(b,y,o.length,c,e.label)),h=d.map((b,y)=>Nn(b,y,d.length,c,e.label)),u=$n(e,n),l={...u===void 0?{}:{detail:u},display:e.display,height:Y,id:e.id,key:`selected:${e.id}`,label:Ce(e.label),selected:!0,tags:Sn(e,n),title:e.label,x:z(1),y:H+((c-1)*E+B-Y)/2},g=[];for(const[b,y]of o.entries()){const N=r[b];N!==void 0&&g.push({id:N.key,kind:y.kind,path:J(Q(N),X(l))})}for(const[b,y]of d.entries()){const N=h[b];N!==void 0&&g.push({id:N.key,kind:y.edge.kind,path:J(Q(l),X(N))})}const m=o.length+d.length,x=e.blockers.length+e.owned.filter(b=>b.depth===0).length;return{edges:g,height:H+c*E+Ie,hidden:x-m,nodes:[...r,l,...h],width:z(2)+Z+de}}function Ln(e){const{inverted:t,rows:n}=e,i=[...new Map(n.map(l=>[l.endpoint,l])).values()],o=Math.max(n.length,i.length,1),d=n.map((l,g)=>Cn(l,g,n.length,o,t,e.label)),c=i.map((l,g)=>In(l,g,i.length,o,t,e.label)),r=new Map;for(const l of c)r.set(l.id,l);const h={display:e.display,height:Y,id:e.id,key:`selected:${e.id}`,label:Ce(e.label),selected:!0,tags:[e.kind],title:e.label,x:z(0),y:H+((o-1)*E+B-Y)/2},u=[];for(const[l,g]of n.entries()){const m=d[l],x=r.get(g.endpoint);m===void 0||x===void 0||(g.own&&u.push({id:`own:${m.key}`,kind:"owns",path:J(Q(h),X(m))}),u.push({id:m.key,kind:"contributes-to",path:J(Q(m),X(x))}))}return{edges:u,height:H+o*E+Ie,hidden:0,nodes:[h,...d,...c],width:z(2)+Z+de}}const zn=.25,Pn=2.5,ze=1.2,On=.0015,Tn=(e,t)=>t===1?e*16:t===2?e*400:e;function Rn(e,t=0){const n=Math.max(-200,Math.min(200,Tn(e,t)));return Math.exp(-n*On)}const Pe=24,Oe={x:0,y:0,zoom:1};function Te(e){return Number.isFinite(e)?Math.min(Pn,Math.max(zn,e)):1}function Re(e){return e.width>0&&e.height>0}function Mn(e,t){if(!Re(t)||!Re(e))return Oe;const n=Math.max(1,t.width-Pe*2),i=Math.max(1,t.height-Pe*2),o=Te(Math.min(1,n/e.width,i/e.height));return{x:(t.width-e.width*o)/2,y:(t.height-e.height*o)/2,zoom:o}}function Bn(e,t,n){return{x:e.x+t,y:e.y+n,zoom:e.zoom}}function Me(e,t,n){const i=Te(e.zoom*n),o=i/e.zoom;return{x:t.x-(t.x-e.x)*o,y:t.y-(t.y-e.y)*o,zoom:i}}function Dn(e){return{x:e.width/2,y:e.height/2}}function Fn(e){return`translate(${e.x}px, ${e.y}px) scale(${e.zoom})`}const An=new Set(["absent-import","absent-port","hard-import","optional-import","optional-port","requires-port"]);function qn(e){return An.has(e)?"odt-edge odt-edge-wait":e==="contributes-to"?"odt-edge odt-edge-contribute":"odt-edge odt-edge-own"}function En({node:e,onSelect:t}){var c;const n=p(()=>t(e.id),[e.id,t]),i=p(r=>r.stopPropagation(),[]),o=((c=e.sub)==null?void 0:c[0])==="contributes-to",d=S(()=>({left:e.x,top:e.y,width:Z}),[e.x,e.y]);return s("button",{"aria-current":e.selected,className:o?"odt-node odt-node-contribution":"odt-node",style:d,type:"button",onClick:n,onPointerDown:i,children:[s("span",{className:"odt-node-head",children:[a(L,{state:e.display}),a("span",{className:e.selected?"odt-node-title odt-truncate":"odt-truncate",title:e.title,children:e.label})]}),e.tags===void 0?void 0:s("span",{className:"odt-node-tags",children:[e.tags.map(r=>a("span",{className:"odt-tag odt-tag-mute odt-mono",children:r},r)),a(ie,{state:e.display})]}),e.sub===void 0?void 0:s("span",{className:"odt-node-sub",children:[e.sub[0]," \xB7 ",e.sub[1]]}),e.detail===void 0?void 0:a("span",{className:"odt-node-detail",children:e.detail})]})}function Hn(e){const t=R(void 0),[n,i]=k(!1);return{onPointerDown:p(o=>{var d,c;o.preventDefault(),t.current={x:o.clientX,y:o.clientY},i(!0),(c=(d=o.currentTarget).setPointerCapture)==null||c.call(d,o.pointerId)},[]),onPointerMove:p(o=>{const d=t.current;d!==void 0&&(t.current={x:o.clientX,y:o.clientY},e(o.clientX-d.x,o.clientY-d.y))},[e]),onPointerUp:p(o=>{var d,c;t.current=void 0,i(!1),(c=(d=o.currentTarget).releasePointerCapture)==null||c.call(d,o.pointerId)},[]),panning:n}}function Wn(e,t){q(()=>{const n=e.current;if(n===null)return;const i=o=>{o.preventDefault();const d=n.getBoundingClientRect(),c={x:o.clientX-d.left,y:o.clientY-d.top};t(c,Rn(o.deltaY,o.deltaMode))};return n.addEventListener("wheel",i,{passive:!1}),()=>n.removeEventListener("wheel",i)},[e,t])}function Gn({canvasRef:e,layout:t,onPan:n,onSelect:i,onZoomAt:o,transform:d}){const c=v(),{panning:r,...h}=Hn(n),u=S(()=>({height:t.height,transform:Fn(d),width:t.width}),[t.height,t.width,d]);return Wn(e,o),s("div",{"aria-label":c.neighbourhood,className:r?"odt-canvas odt-canvas-panning":"odt-canvas",ref:e,role:"application",...h,onPointerCancel:h.onPointerUp,onPointerLeave:h.onPointerUp,children:[t.hidden===0?void 0:a("p",{className:"odt-canvas-hint",children:c.canvasHidden(t.hidden)}),s("div",{className:"odt-canvas-layer",style:u,children:[a("svg",{className:"odt-edges",preserveAspectRatio:"xMinYMin meet",viewBox:`0 0 ${t.width} ${t.height}`,children:t.edges.map(l=>a("path",{className:qn(l.kind),d:l.path},l.id))}),t.nodes.map(l=>a(En,{node:l,onSelect:i},l.key))]})]})}function Kn({node:e,onSelect:t}){const n=p(()=>t(e.id),[e.id,t]);return s("button",{"aria-selected":e.selected,className:"odt-list-row",role:"option",tabIndex:e.selected?0:-1,type:"button",onClick:n,children:[a(L,{state:e.display}),a("span",{className:"odt-row-label",title:e.title,children:e.label}),a("span",{className:"odt-list-meta",children:e.sub===void 0?e.display:`${e.sub[0]} \xB7 ${e.sub[1]}`})]})}function Un({layout:e,onSelect:t}){const n=v();return a("div",{"aria-label":n.neighbourhood,className:"odt-list",role:"listbox",children:e.nodes.map(i=>a(Kn,{node:i,onSelect:t},i.key))})}const Vn=1100;function Be(){return typeof globalThis.innerWidth=="number"&&globalThis.innerWidth<Vn}function Zn(){const[e,t]=k(Be);return q(()=>{const n=()=>t(Be());return n(),globalThis.addEventListener("resize",n),()=>globalThis.removeEventListener("resize",n)},[]),e}function Yn({asList:e,canvasRef:t,layout:n,onFit:i,onPan:o,onSelect:d,onZoomAt:c,onZoomIn:r,onZoomOut:h,transform:u}){const l=v();return e?a(Un,{layout:n,onSelect:d}):s(T,{children:[a(Gn,{canvasRef:t,layout:n,transform:u,onPan:o,onSelect:d,onZoomAt:c}),s("div",{className:"odt-canvas-zoom",children:[a("button",{"aria-label":l.zoomOut,className:"odt-btn odt-btn-small odt-btn-icon",type:"button",onClick:h,children:"\u2212"}),a("button",{"aria-label":l.zoomIn,className:"odt-btn odt-btn-small odt-btn-icon",type:"button",onClick:r,children:"+"}),a("button",{className:"odt-btn odt-btn-small",type:"button",onClick:i,children:l.fit})]})]})}function Qn({crumb:e,current:t,onSelect:n}){const{id:i}=e,o=p(()=>{i!==void 0&&n(i)},[i,n]);return t||i===void 0?a("span",{className:t?"odt-crumb-current odt-truncate":void 0,title:e.label,children:e.label}):a("button",{className:"odt-crumb-link odt-truncate",title:e.label,type:"button",onClick:o,children:e.label})}function Xn({onSelect:e,projection:t}){const n=v(),i=(t==null?void 0:t.breadcrumbs)??[];return a("nav",{"aria-label":n.selectionPath,className:"odt-crumbs",children:i.map((o,d)=>s("span",{className:"odt-crumb",children:[d===0?"":"\u203A ",a(Qn,{crumb:o,current:d===i.length-1,onSelect:e})]},`${o.id??""}:${o.label}`))})}function De(e){return{height:(e==null?void 0:e.clientHeight)??0,width:(e==null?void 0:e.clientWidth)??0}}function Jn(e,t,n,i){return t!==void 0?Ln(t):e===void 0?void 0:Le(e,n,i)}function _n({control:e,edgeKinds:t,extensionPoints:n,onSelect:i,projection:o}){const d=v(),c=Zn(),[r,h]=k(Oe),u=R(null),l=S(()=>Jn(o,n,t,d),[o,n,t,d]),g=p(($,I)=>h(D=>Bn(D,$,I)),[]),m=p(($,I)=>h(D=>Me(D,$,I)),[]),x=p($=>h(I=>Me(I,Dn(De(u.current)),$)),[]),b=p(()=>x(1/ze),[x]),y=p(()=>x(ze),[x]),N=p(()=>{l!==void 0&&h(Mn(l,De(u.current)))},[l]);return q(()=>{N()},[N,o==null?void 0:o.id]),s("div",{className:"odt-main",children:[s("div",{className:"odt-main-bar",children:[a(Xn,{projection:o,onSelect:i}),e]}),l===void 0?a("div",{className:"odt-empty",children:d.emptySelection}):a(Yn,{asList:c,canvasRef:u,layout:l,transform:r,onFit:N,onPan:g,onSelect:i,onZoomAt:m,onZoomIn:y,onZoomOut:b})]})}function Fe({label:e,onSelect:t,selected:n,tab:i}){const o=p(()=>t(i),[t,i]);return a("button",{"aria-selected":n,className:"odt-tab",role:"tab",type:"button",onClick:o,children:e})}function jn({locale:e,onLocale:t}){const n=v(),i=p(o=>t(o.target.value),[t]);return a("select",{"aria-label":n.language,className:"odt-locale",value:e,onChange:i,children:me.map(o=>a("option",{value:o,children:o.toUpperCase()},o))})}function ei({legendOpen:e,locale:t,onClose:n,onLegend:i,onLocale:o,onQuery:d,onTab:c,query:r,searchRef:h,status:u,tab:l}){const g=v(),m=p(x=>d(x.target.value),[d]);return s("div",{className:"odt-header",children:[s("div",{className:"odt-header-group",children:[a("span",{children:g.panelTitle}),a("span",{className:"odt-tag odt-tag-mute odt-mono",children:g.planBadge(u.sessionId,u.planFingerprint)})]}),s("div",{className:"odt-tabs",role:"tablist",children:[a(Fe,{label:g.tabGraph,selected:l==="graph",tab:"graph",onSelect:c}),a(Fe,{label:g.tabTimeline,selected:l==="timeline",tab:"timeline",onSelect:c})]}),s("div",{className:"odt-header-group",children:[s("label",{className:"odt-search",children:[a(jt,{}),a("input",{"aria-label":g.searchLabel,placeholder:g.searchLabel,ref:h,value:r,onChange:m})]}),a(jn,{locale:t,onLocale:o}),a("button",{"aria-expanded":e,className:"odt-btn odt-btn-small",type:"button",onClick:i,children:g.legend}),n===void 0?void 0:a("button",{"aria-label":g.close,className:"odt-btn odt-btn-icon odt-btn-quiet",type:"button",onClick:n,children:a(en,{})})]})]})}function ti({mappedTokens:e,mode:t,renderCost:n,status:i}){const o=v(),[d,c]=k(!1),r=p(()=>c(h=>!h),[]);return s("div",{className:"odt-status",children:[s("div",{className:"odt-status-group",children:[a("span",{className:"odt-mono",children:o.statusFrame(i.lastSequence,i.stateRevision)}),a("span",{className:"odt-mono",children:o.statusDropped(i.droppedFrames)}),s("span",{className:"odt-tag odt-tag-ok",children:[a(L,{size:6,state:"ready"}),o.live]})]}),s("div",{className:"odt-status-group",children:[d?s(T,{children:[a("span",{className:"odt-mono",children:o.reducerPaint(ke(i.reducerMs),ke(n))}),a("span",{children:e===0?o.themeDefaults:o.themeHost(e)}),a("span",{children:t==="inspect"?o.controlPlaneOff:o.controlPlaneRequiresAuthority}),a("span",{className:"odt-mono",children:i.schemaRevision})]}):void 0,a("button",{"aria-expanded":d,"aria-label":o.panelDetails,className:"odt-status-more",type:"button",onClick:r,children:"\u22EF"})]})]})}const ni={"failure-code":"matchedFailureCode","failure-subject":"matchedFailureSubject",id:"matchedId",kind:"matchedKind",provenance:"matchedProvenance"};function ii(e,t){const n=ni[e.field];return n===void 0?e.kind:t[n]}function oi({hit:e,onSelect:t,selected:n}){const i=v(),o=p(()=>t(e.id),[e.id,t]);return s("button",{"aria-selected":n,className:"odt-row",role:"option",type:"button",onClick:o,children:[a(L,{state:e.display}),a("span",{className:"odt-row-label",children:e.label}),a("span",{className:"odt-k",children:ii(e,i)})]})}function ai({hits:e,onSelect:t,selectedId:n}){const i=v();return s("div",{"aria-label":i.searchResults,className:"odt-tree",role:"listbox",children:[e.length===0?a("span",{className:"odt-empty",children:i.noSearchHit}):void 0,e.map(o=>a(oi,{hit:o,selected:o.id===n,onSelect:t},o.id))]})}function di(e,t){return e.features.some(n=>t(n.id)!=="ready")}function ri(e,t){for(const n of e)for(const i of n.features)if(t(i.id)!=="ready")return i.id}function si(e){for(const t of e){const n=t.features[0];if(n!==void 0)return n.id}}function li(e,t){return e.find(n=>n.features.some(i=>i.id===t))}function ci(e){const t=e.graph.tree(),n=c=>e.graph.displayOf(e.graph.currentNodeId(c)),i=ri(t,n)??si(t),o=new Set(t.filter(c=>di(c,n)).map(c=>c.id)),d=li(t,i);return d!==void 0&&o.add(d.id),{expanded:o,selectedId:i}}const Ae=`
2
+ .odt {
3
+ --odt-canvas: #0e0f14;
4
+ --odt-surface: #17191f;
5
+ --odt-surface-2: #292c34;
6
+ --odt-text: rgba(246, 247, 255, 1);
7
+ --odt-text-muted: rgba(246, 247, 255, 0.5);
8
+ --odt-line: rgba(246, 247, 255, 0.06);
9
+ --odt-line-strong: rgba(246, 247, 255, 0.25);
10
+ --odt-control: rgba(246, 247, 255, 0.08);
11
+ --odt-accent: #4763f0;
12
+ --odt-accent-text: #5364ff;
13
+ --odt-accent-surface: rgba(71, 99, 240, 0.15);
14
+ --odt-ok: rgba(0, 185, 122, 1);
15
+ --odt-ok-surface: rgba(0, 159, 112, 0.15);
16
+ --odt-warn: rgba(231, 200, 42, 1);
17
+ --odt-warn-surface: rgba(255, 204, 74, 0.15);
18
+ --odt-bad: rgba(254, 85, 100, 1);
19
+ --odt-bad-surface: rgba(241, 79, 93, 0.15);
20
+ --odt-radius: 8px;
21
+ --odt-font: system-ui, -apple-system, sans-serif;
22
+
23
+ display: flex;
24
+ flex-direction: column;
25
+ box-sizing: border-box;
26
+ height: 100%;
27
+ min-height: 0;
28
+ background: var(--odt-surface);
29
+ border-top: 1px solid var(--odt-line);
30
+ color: var(--odt-text);
31
+ font-family: var(--odt-font);
32
+ font-size: 14px;
33
+ font-weight: 500;
34
+ line-height: 1.142;
35
+ -webkit-font-smoothing: antialiased;
36
+ }
37
+ .odt *, .odt *::before, .odt *::after { box-sizing: border-box; }
38
+ .odt button { appearance: none; border: 0; background: none; color: inherit; font: inherit; cursor: pointer; }
39
+ .odt input { appearance: none; border: 0; background: none; color: inherit; font: inherit; }
40
+ .odt :focus-visible { outline: 2px solid var(--odt-accent-text); outline-offset: 1px; }
41
+ .odt-mono { font-variant-numeric: lining-nums tabular-nums; }
42
+ .odt-sec { font-size: 10px; line-height: 1.6; text-transform: uppercase; color: var(--odt-text-muted); }
43
+ .odt-truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
44
+
45
+ .odt-header {
46
+ display: flex;
47
+ align-items: center;
48
+ justify-content: space-between;
49
+ gap: 12px;
50
+ height: 48px;
51
+ flex-shrink: 0;
52
+ padding: 0 12px 0 16px;
53
+ border-bottom: 1px solid var(--odt-line);
54
+ }
55
+ .odt-header-group { display: flex; align-items: center; gap: 12px; min-width: 0; }
56
+ .odt-tabs { display: flex; align-items: stretch; gap: 4px; height: 48px; }
57
+ .odt-tab {
58
+ display: flex;
59
+ align-items: center;
60
+ justify-content: center;
61
+ height: 40px;
62
+ padding: 0 12px;
63
+ color: var(--odt-text-muted);
64
+ white-space: nowrap;
65
+ }
66
+ .odt-tab[aria-selected='true'] { color: var(--odt-text); box-shadow: inset 0 -1px 0 var(--odt-text); }
67
+
68
+ .odt-filters {
69
+ display: flex;
70
+ align-items: center;
71
+ gap: 8px 16px;
72
+ flex-wrap: wrap;
73
+ flex-shrink: 0;
74
+ padding: 6px 16px;
75
+ border-bottom: 1px solid var(--odt-line);
76
+ }
77
+ .odt-presets { display: flex; align-items: center; gap: 2px; padding: 2px; border-radius: 1000px; background: var(--odt-control); }
78
+ .odt-preset {
79
+ padding: 3px 12px;
80
+ border-radius: 50px;
81
+ font-size: 12px;
82
+ line-height: 1.333;
83
+ color: var(--odt-text-muted);
84
+ white-space: nowrap;
85
+ }
86
+ .odt-preset[aria-pressed='true'] { background: var(--odt-surface); color: var(--odt-text); }
87
+ .odt-chips { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; min-width: 0; }
88
+ .odt-chip {
89
+ padding: 2px 8px;
90
+ border: 1px solid var(--odt-line);
91
+ border-radius: 1000px;
92
+ font-size: 11px;
93
+ line-height: 1.45;
94
+ color: var(--odt-text-muted);
95
+ white-space: nowrap;
96
+ }
97
+ .odt-chip[aria-checked='true'] {
98
+ border-color: var(--odt-accent-text);
99
+ background: var(--odt-accent-surface);
100
+ color: var(--odt-accent-text);
101
+ }
102
+
103
+ .odt-tag {
104
+ display: inline-flex;
105
+ align-items: center;
106
+ gap: 4px;
107
+ min-height: 16px;
108
+ padding: 2px 4px;
109
+ border-radius: 4px;
110
+ font-size: 10px;
111
+ line-height: 1.6;
112
+ text-transform: uppercase;
113
+ white-space: nowrap;
114
+ }
115
+ .odt-tag-ok { background: var(--odt-ok-surface); color: var(--odt-ok); }
116
+ .odt-tag-warn { background: var(--odt-warn-surface); color: var(--odt-warn); }
117
+ .odt-tag-bad { background: var(--odt-bad-surface); color: var(--odt-bad); }
118
+ .odt-tag-mute { background: var(--odt-line); color: var(--odt-text-muted); }
119
+ /* A tag that must give way rather than push its row label out: it clips itself and keeps the rest in the title. */
120
+ .odt-tag-clip { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
121
+ .odt-tag-accent { background: var(--odt-accent-surface); color: var(--odt-accent-text); }
122
+
123
+ .odt-btn {
124
+ display: inline-flex;
125
+ align-items: center;
126
+ justify-content: center;
127
+ gap: 6px;
128
+ height: 32px;
129
+ padding: 0 12px;
130
+ border-radius: var(--odt-radius);
131
+ background: var(--odt-control);
132
+ white-space: nowrap;
133
+ }
134
+ .odt-btn-small { height: 28px; font-size: 12px; }
135
+ .odt-btn-icon { width: 32px; padding: 0; }
136
+ .odt-btn-quiet { background: none; color: var(--odt-text-muted); }
137
+ .odt-btn:disabled { background: rgba(246, 247, 255, 0.04); color: rgba(246, 247, 255, 0.25); cursor: default; }
138
+
139
+ .odt-search {
140
+ display: flex;
141
+ align-items: center;
142
+ gap: 8px;
143
+ width: 300px;
144
+ max-width: 40vw;
145
+ height: 32px;
146
+ padding: 0 12px;
147
+ border: 1px solid var(--odt-line);
148
+ border-radius: var(--odt-radius);
149
+ background: rgba(246, 247, 255, 0.04);
150
+ color: var(--odt-text-muted);
151
+ }
152
+ .odt-search input { width: 100%; min-width: 0; color: var(--odt-text); }
153
+ .odt-search input::placeholder { color: var(--odt-text-muted); }
154
+
155
+ .odt-body { display: grid; grid-template-columns: 320px minmax(0, 1fr) 400px; flex-grow: 1; min-height: 0; }
156
+
157
+ .odt-tree {
158
+ display: flex;
159
+ flex-direction: column;
160
+ gap: 2px;
161
+ padding: 8px;
162
+ border-right: 1px solid var(--odt-line);
163
+ overflow-y: auto;
164
+ }
165
+ .odt-row {
166
+ display: flex;
167
+ align-items: center;
168
+ gap: 8px;
169
+ height: 32px;
170
+ flex-shrink: 0;
171
+ padding: 0 12px 0 44px;
172
+ border-radius: var(--odt-radius);
173
+ text-align: left;
174
+ width: 100%;
175
+ }
176
+ .odt-row-group { padding: 0 12px 0 20px; font-size: 12px; line-height: 1.333; text-transform: uppercase; color: var(--odt-text-muted); }
177
+ .odt-row-root { padding-left: 12px; }
178
+ .odt-row[aria-selected='true'] { background: var(--odt-control); box-shadow: inset 2px 0 0 var(--odt-accent); }
179
+ .odt-row-label { flex-grow: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
180
+
181
+ .odt-glyph { display: inline-flex; width: 16px; height: 16px; align-items: center; justify-content: center; flex-shrink: 0; }
182
+ .odt-glyph-ok { color: var(--odt-ok); }
183
+ .odt-glyph-warn { color: var(--odt-warn); }
184
+ .odt-glyph-bad { color: var(--odt-bad); }
185
+ .odt-glyph-mute { color: var(--odt-text-muted); }
186
+
187
+ .odt-main { position: relative; display: flex; flex-direction: column; border-right: 1px solid var(--odt-line); min-width: 0; }
188
+ .odt-main-bar {
189
+ display: flex;
190
+ align-items: center;
191
+ justify-content: space-between;
192
+ gap: 12px;
193
+ height: 40px;
194
+ flex-shrink: 0;
195
+ padding: 0 16px;
196
+ border-bottom: 1px solid var(--odt-line);
197
+ }
198
+ .odt-crumbs { display: flex; align-items: center; gap: 6px; min-width: 0; font-size: 12px; line-height: 1.333; color: var(--odt-text-muted); }
199
+ .odt-crumb { display: inline-flex; align-items: center; gap: 6px; min-width: 0; }
200
+ .odt-crumb-link { color: inherit; text-decoration: underline; text-decoration-color: var(--odt-line-strong); }
201
+ .odt-crumb-link:hover, .odt-crumb-link:focus-visible { color: var(--odt-text); }
202
+ .odt-crumb-current { color: var(--odt-text); }
203
+ .odt-locale {
204
+ padding: 2px 6px;
205
+ border: 1px solid var(--odt-line);
206
+ border-radius: var(--odt-radius);
207
+ background: var(--odt-control);
208
+ font: inherit;
209
+ font-size: 12px;
210
+ line-height: 1.333;
211
+ color: var(--odt-text-muted);
212
+ }
213
+
214
+ .odt-canvas {
215
+ position: relative;
216
+ flex-grow: 1;
217
+ min-height: 0;
218
+ /* A lens draws inside itself: the camera is what reaches a node the fit did not cover. */
219
+ overflow: hidden;
220
+ touch-action: none;
221
+ /* A drag moves the camera; it must not also select the labels it crosses. */
222
+ user-select: none;
223
+ cursor: grab;
224
+ background-image: radial-gradient(var(--odt-line) 1px, transparent 1px);
225
+ background-size: 16px 16px;
226
+ }
227
+ .odt-canvas-panning { cursor: grabbing; }
228
+ .odt-canvas-layer { position: absolute; top: 0; left: 0; transform-origin: 0 0; }
229
+ /* Edges sit under the cards, and the cards are opaque, so a line can never cross a badge. */
230
+ .odt-edges { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; pointer-events: none; }
231
+ .odt-node {
232
+ position: absolute;
233
+ display: flex;
234
+ flex-direction: column;
235
+ gap: 4px;
236
+ width: 188px;
237
+ padding: 8px 12px;
238
+ z-index: 1;
239
+ border: 1px solid var(--odt-line);
240
+ border-radius: var(--odt-radius);
241
+ background: var(--odt-surface-2);
242
+ font-size: 12px;
243
+ line-height: 1.333;
244
+ text-align: left;
245
+ color: var(--odt-text);
246
+ }
247
+ .odt-node-contribution { border-style: dashed; }
248
+ .odt-node[aria-current='true'] { gap: 6px; border-color: var(--odt-accent); background: var(--odt-accent-surface); }
249
+ .odt-node-head { display: flex; align-items: center; gap: 6px; min-width: 0; }
250
+ .odt-node-title { font-size: 14px; line-height: 1.142; }
251
+ .odt-node-sub { font-size: 10px; line-height: 1.6; text-transform: uppercase; color: var(--odt-text-muted); }
252
+ .odt-node-detail { font-size: 10px; line-height: 1.6; color: var(--odt-text-muted); }
253
+ .odt-node-tags { display: flex; flex-wrap: wrap; gap: 4px; min-width: 0; }
254
+ .odt-node-tags > * { flex-shrink: 0; }
255
+ .odt-canvas-hint {
256
+ position: absolute;
257
+ right: 16px;
258
+ top: 12px;
259
+ max-width: 60%;
260
+ margin: 0;
261
+ padding: 4px 8px;
262
+ border-radius: var(--odt-radius);
263
+ background: var(--odt-surface-2);
264
+ font-size: 10px;
265
+ line-height: 1.6;
266
+ text-transform: uppercase;
267
+ color: var(--odt-text-muted);
268
+ }
269
+ .odt-legend-panel {
270
+ display: grid;
271
+ grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
272
+ gap: 12px 24px;
273
+ flex-shrink: 0;
274
+ max-height: 40%;
275
+ overflow: auto;
276
+ padding: 12px 16px;
277
+ border-bottom: 1px solid var(--odt-line);
278
+ background: var(--odt-surface);
279
+ }
280
+ .odt-legend-group { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
281
+ .odt-legend-row { display: flex; align-items: center; gap: 8px; min-width: 0; font-size: 12px; line-height: 1.333; }
282
+ .odt-legend-name { flex-shrink: 0; color: var(--odt-text); }
283
+ .odt-legend-detail { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--odt-text-muted); }
284
+ .odt-canvas-zoom { position: absolute; right: 16px; bottom: 12px; display: flex; gap: 4px; }
285
+ .odt-edge { fill: none; stroke-width: 1.5; }
286
+ .odt-edge-wait { stroke: var(--odt-line-strong); }
287
+ .odt-edge-own { stroke: var(--odt-accent-text); }
288
+ .odt-edge-contribute { stroke: var(--odt-line-strong); stroke-dasharray: 4 4; }
289
+ .odt-edge-sample { display: inline-block; width: 16px; height: 0; border-top: 1.5px solid var(--odt-line-strong); }
290
+ .odt-edge-sample-accent { border-color: var(--odt-accent-text); }
291
+ .odt-edge-sample-dashed { border-top-style: dashed; }
292
+
293
+ .odt-list { display: flex; flex-direction: column; gap: 2px; padding: 8px; overflow-y: auto; flex-grow: 1; min-height: 0; }
294
+ .odt-list-row { display: flex; align-items: center; gap: 8px; height: 32px; flex-shrink: 0; padding: 0 12px; border-radius: var(--odt-radius); text-align: left; }
295
+ .odt-list-row[aria-selected='true'] { background: var(--odt-control); }
296
+ .odt-list-meta { font-size: 12px; line-height: 1.333; color: var(--odt-text-muted); white-space: nowrap; }
297
+
298
+ .odt-inspector-host { display: flex; min-width: 0; min-height: 0; }
299
+ .odt-inspector { display: flex; flex-direction: column; flex-grow: 1; min-width: 0; min-height: 0; }
300
+ .odt-inspector-scroll { display: flex; flex-direction: column; gap: 10px; padding: 12px 16px; overflow-y: auto; flex-grow: 1; min-height: 0; }
301
+ .odt-inspector-head { display: flex; flex-direction: column; gap: 6px; }
302
+ .odt-inspector-title { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 16px; line-height: 1.25; }
303
+ .odt-axes { display: flex; flex-wrap: wrap; gap: 4px; }
304
+ .odt-kv { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 4px 12px; font-size: 12px; line-height: 1.333; }
305
+ .odt-k { color: var(--odt-text-muted); }
306
+ .odt-v { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
307
+ .odt-why { display: flex; flex-direction: column; gap: 6px; padding: 8px 12px; border-radius: var(--odt-radius); background: rgba(246, 247, 255, 0.05); }
308
+ .odt-why-text { font-size: 12px; line-height: 1.333; }
309
+ .odt-why-ref { color: var(--odt-accent-text); }
310
+ .odt-section { display: flex; flex-direction: column; gap: 6px; }
311
+ .odt-section-rows { display: flex; flex-direction: column; gap: 4px; font-size: 12px; line-height: 1.333; }
312
+ .odt-section-row { display: flex; align-items: center; gap: 8px; text-align: left; width: 100%; }
313
+ .odt-section-row-nested { padding-left: 16px; }
314
+ .odt-section-row-label { flex-grow: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
315
+ .odt-chain { display: flex; gap: 10px; align-items: flex-start; font-size: 12px; line-height: 1.333; }
316
+ .odt-chain-time { width: 78px; flex-shrink: 0; color: var(--odt-text-muted); font-variant-numeric: tabular-nums; }
317
+ .odt-footer { display: flex; flex-wrap: wrap; gap: 8px; padding: 10px 16px; border-top: 1px solid var(--odt-line); flex-shrink: 0; }
318
+ .odt-footer-end { margin-left: auto; }
319
+ .odt-footer-status { min-width: 0; font-size: 10px; line-height: 1.6; text-align: right; color: var(--odt-text-muted); }
320
+ .odt-empty { padding: 12px 16px; font-size: 12px; line-height: 1.333; color: var(--odt-text-muted); }
321
+
322
+ .odt-timeline { display: flex; flex-direction: column; gap: 2px; padding: 8px 16px; overflow-y: auto; flex-grow: 1; min-height: 0; }
323
+ .odt-timeline-row { display: flex; align-items: center; gap: 12px; height: 28px; flex-shrink: 0; font-size: 12px; line-height: 1.333; text-align: left; }
324
+ .odt-timeline-gap { color: var(--odt-warn); }
325
+ .odt-timeline-seq { width: 96px; flex-shrink: 0; color: var(--odt-text-muted); font-variant-numeric: tabular-nums; }
326
+ .odt-timeline-time { width: 96px; flex-shrink: 0; color: var(--odt-text-muted); font-variant-numeric: tabular-nums; }
327
+
328
+ .odt-status {
329
+ display: flex;
330
+ align-items: center;
331
+ justify-content: space-between;
332
+ gap: 16px;
333
+ flex-wrap: wrap;
334
+ min-height: 28px;
335
+ flex-shrink: 0;
336
+ padding: 4px 16px;
337
+ border-top: 1px solid var(--odt-line);
338
+ font-size: 10px;
339
+ line-height: 1.6;
340
+ text-transform: uppercase;
341
+ color: var(--odt-text-muted);
342
+ }
343
+ .odt-status-group { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 16px; min-width: 0; }
344
+ .odt-status-more { padding: 0 4px; font-size: 12px; line-height: 1; color: var(--odt-text-muted); }
345
+ .odt-status-more[aria-expanded='true'] { color: var(--odt-text); }
346
+
347
+ /**
348
+ * Below 1100 px the three columns stop being readable, so the neighbourhood \u2014 drawn as a list at this width \u2014 and
349
+ * the inspector share the second column instead of one of them disappearing. Losing the neighbourhood would leave
350
+ * the panel unable to answer what a node is waiting for, which is the question it exists for.
351
+ */
352
+ @media (max-width: 1100px) {
353
+ .odt-body { grid-template-columns: 320px minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) minmax(0, 1fr); }
354
+ .odt-tree { grid-row: 1 / span 2; }
355
+ .odt-main { border-right: 0; border-bottom: 1px solid var(--odt-line); }
356
+ }
357
+ @media (max-width: 720px) {
358
+ .odt-body { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto; }
359
+ .odt-tree { grid-row: auto; border-right: 0; }
360
+ .odt-step-hidden { display: none; }
361
+ .odt-search { width: auto; max-width: none; flex-grow: 1; }
362
+ }
363
+ @media (prefers-reduced-motion: no-preference) {
364
+ .odt-canvas-layer { transition: transform 120ms ease-out; }
365
+ }
366
+ `,ui="data-opetope-devtools";function qe(e,t,n=globalThis.document){if((n==null?void 0:n.querySelector(`style[${e}]`))!==null)return;const i=n.createElement("style");i.setAttribute(e,""),i.textContent=t,n.head.append(i)}function Ee(e){qe(ui,Ae,e)}const pi={accent:"--odt-accent",accentSurface:"--odt-accent-surface",accentText:"--odt-accent-text",bad:"--odt-bad",badSurface:"--odt-bad-surface",canvas:"--odt-canvas",control:"--odt-control",font:"--odt-font",line:"--odt-line",lineStrong:"--odt-line-strong",ok:"--odt-ok",okSurface:"--odt-ok-surface",radius:"--odt-radius",surface:"--odt-surface",surfaceRaised:"--odt-surface-2",text:"--odt-text",textMuted:"--odt-text-muted",warn:"--odt-warn",warnSurface:"--odt-warn-surface"};function He(e){if(e===void 0)return{mapped:0,style:{}};const t={};for(const[n,i]of Object.entries(pi)){const o=e[n];o!==void 0&&(t[i]=o)}return{mapped:Object.keys(t).length,style:t}}const hi={accent:"#60a5fa",accentText:"#dbeafe",bad:"#f87171",badSurface:"#321f23",canvas:"#111827",control:"#273449",font:"system-ui, sans-serif",line:"#334155",lineStrong:"#64748b",ok:"#4ade80",okSurface:"#18332a",radius:"6px",surface:"#1e293b",surfaceRaised:"#334155",text:"#f1f5f9",textMuted:"#94a3b8",warn:"#fbbf24",warnSurface:"#352d1c"};function fi(e,t,n){const i=[];for(const o of e){const d=t.has(o.id),c=o.conditions.map(r=>r.label);if(i.push({...c.length===0?{}:{conditions:c},display:n(o.id),expandable:o.features.length>0,expanded:d,id:o.id,label:o.label,level:1,variant:"group"}),!!d)for(const r of o.features)i.push({display:n(r.id),expandable:!1,expanded:!1,id:r.id,label:r.label,level:2,variant:"feature"})}return i}function gi(e,t,n){var i,o;if(n==="ArrowDown")return(i=e[Math.min(t+1,e.length-1)])==null?void 0:i.id;if(n==="ArrowUp")return(o=e[Math.max(t-1,0)])==null?void 0:o.id}function mi(e,t){return(e==null?void 0:e.expandable)!==!0?!1:t==="ArrowRight"?!e.expanded:t==="ArrowLeft"&&e.expanded}function xi(e,t,n){if(n==="Enter"||n===" ")return{kind:"confirm"};const i=e.findIndex(c=>c.id===t),o=e[i];if(mi(o,n))return{id:o.id,kind:"toggle"};const d=gi(e,i,n);return d===void 0?void 0:{id:d,kind:"select"}}function bi({conditions:e}){if(e===void 0||e.length===0)return a("span",{});const[t="",...n]=e,i=e.join(" \xB7 ");return a("span",{className:"odt-tag odt-tag-mute odt-tag-clip",title:i,children:n.length===0?t:`${t} +${n.length}`})}function yi({onSelect:e,onToggle:t,row:n,selected:i}){const o=v(),d=p(()=>{t(n.id),e(n.id)},[e,t,n.id]);return s("button",{"aria-expanded":n.expandable?n.expanded:void 0,"aria-level":n.level,"aria-selected":i,className:"odt-row odt-row-group",role:"treeitem",tabIndex:i?0:-1,type:"button",onClick:d,children:[a(nn,{open:n.expanded}),a("span",{className:"odt-row-label",title:n.label,children:n.conditions===void 0?n.label:o.treeGroupPrefix}),a(bi,{conditions:n.conditions})]})}function vi({onSelect:e,row:t,selected:n}){const i=p(()=>e(t.id),[e,t.id]),o=t.display??"declared";return s("button",{"aria-level":t.level,"aria-selected":n,className:"odt-row",role:"treeitem",tabIndex:n?0:-1,type:"button",onClick:i,children:[a(L,{state:o}),a("span",{className:"odt-row-label",children:t.label}),a(ie,{state:o})]})}function wi({onSelect:e,onToggle:t,row:n,selected:i}){return n.variant==="group"?a(yi,{row:n,selected:i,onSelect:e,onToggle:t}):a(vi,{row:n,selected:i,onSelect:e})}function ki({displayOf:e,expanded:t,groups:n,onConfirm:i,onSelect:o,onToggle:d,selectedId:c,summary:r,version:h}){const u=v(),l=S(()=>fi(n,t,e),[n,t,e,h]),g=p(m=>{const x=xi(l,c,m.key);x!==void 0&&(m.preventDefault(),x.kind==="confirm"?i():x.kind==="toggle"?d(x.id):o(x.id))},[i,o,d,l,c]);return s("div",{"aria-label":u.treeLabel,className:"odt-tree",role:"tree",onKeyDown:g,children:[a("div",{className:"odt-row odt-row-group odt-row-root odt-mono odt-truncate",title:r,children:r}),l.map(m=>a(wi,{row:m,selected:m.id===c,onSelect:o,onToggle:d},m.id))]})}function We(e){return bt(p(t=>e.subscribe(t),[e]),p(()=>e.getVersion(),[e]),()=>0)}function Ge(){return typeof performance=="object"?performance.now():0}function Ke(e){const t=R(0),n=R(0);return n.current=Ge(),q(()=>{t.current=t.current*.8+(Ge()-n.current)*.2},[e]),t.current}function Ni(e,t){return e==="/"&&!t?"focus-search":e==="Escape"?"dismiss":void 0}function $i(e,t){const{application:n}=e.graph.plan;return t.treeSummary(n.features,n.groups)}function Si(e,t){return t===void 0?void 0:e.graph.currentNodeId(t)}function Ci(e,t,n){if(!(t===void 0||ge(n)!=="extension-points"))return wt(e,e.graph.currentNodeId(t))}function re({onRetry:e}){const t=v();return s("div",{className:"odt-empty",children:[t.surfaceFailed," ",a("button",{className:"odt-btn odt-btn-small",type:"button",onClick:e,children:t.surfaceRetry})]})}function Ii(e,t){return e===void 0||t===void 0?void 0:fn}function Li(e){return e?gn:void 0}function zi(e){return e==="timeline"?xn:void 0}function Pi({state:e}){return e.module!==void 0?a(e.module.Legend,{}):e.error===void 0?void 0:a(re,{onRetry:e.retry})}function Ue({audit:e,control:t,controlUi:n,onAudit:i,place:o,projection:d,store:c}){if(t!==void 0)return n.module===void 0?n.error===void 0?void 0:a(re,{onRetry:n.retry}):a(n.module.ControlSlot,{audit:e,place:o,projection:d,session:t,store:c,onAudit:i})}function Oi({audit:e,controlUi:t,entries:n,timeline:i}){return i.module===void 0&&i.error!==void 0?a(re,{onRetry:i.retry}):s(T,{children:[t===void 0?void 0:a(t.ControlAudit,{entries:e}),i.module===void 0?void 0:a(i.module.TimelineView,{entries:n})]})}function Ti({actionStatus:e,control:t,projection:n,...i}){const o=v();return n===void 0?a("div",{className:"odt-empty",children:o.noSelection}):a(hn,{...e===void 0?{}:{actionStatus:e},...i,control:t,projection:n})}function Ri({control:e,exportHost:t,locale:n,mode:i="inspect",onClose:o,onExport:d,onLocale:c,store:r,theme:h}){const u=v();Ee();const l=We(r),g=Ke(l),m=S(()=>ci(r),[r]),[x,b]=k("graph"),[y,N]=k([]),[$,I]=k(()=>te(St)),[D,F]=k(void 0),[se,Ve]=k(!1),Ze=ae(Li(se)),Ye=ae(zi(x)),[P,le]=k(""),[Qe,Xe]=k(m.expanded),[O,Je]=k(m.selectedId),j=R(null),ce=R(null),{mapped:_e,style:je}=S(()=>He(h),[h]),{status:ue}=r,et=Si(r,O),A=S(()=>O===void 0?void 0:yt(r,r.graph.currentNodeId(O)),[r,O,l]),tt=he(r,A),ee=ae(Ii(e,tt)),nt=S(()=>Ci(r,O,$),[r,O,$,l]),it=S(()=>P===""?[]:vt(r.graph,P),[r,P,l]),ot=p(f=>{Xe(w=>{const C=new Set(w);return C.delete(f)||C.add(f),C})},[]),at=p(f=>{var w;return((w=r.graph.node(f))==null?void 0:w.label)??f},[r]),dt=p(f=>{var w;return((w=r.graph.condition(f))==null?void 0:w.label)??f},[r]),rt=p(f=>r.graph.displayOf(r.graph.currentNodeId(f)),[r]),W=p(f=>{const w=r.graph.runtimeNode(f);Je((w==null?void 0:w.kind)==="feature-instance"?w.declaration??f:f)},[r]),pe=p(f=>N(w=>[...w,f]),[]),st=p(()=>{var f;return(f=ce.current)==null?void 0:f.focus()},[]),lt=p(()=>Ve(f=>!f),[]),ct=p(()=>b("timeline"),[]),ut=p(f=>I(te(f)),[]),pt=p(f=>I(w=>It(w,f)),[]),ht=p(()=>{mn().then(f=>f.runExport({host:t,locale:n,onExport:d,store:r})).then(F,()=>F(u.surfaceFailed))},[t,n,d,r,u]),ft=p(f=>{var C;const w=(C=globalThis.navigator)==null?void 0:C.clipboard;if(w===void 0){F(u.copyIdFailed);return}w.writeText(f).then(()=>F(u.copyIdDone),()=>F(u.copyIdFailed))},[u]),gt=p(f=>{var C;const w=Ni(f.key,f.target===j.current);w!==void 0&&(f.preventDefault(),w==="focus-search"?(C=j.current)==null||C.focus():P!==""?le(""):o==null||o())},[o,P]);return s("div",{"aria-label":"Opetope Devtools",className:"odt",role:"region",style:je,onKeyDown:gt,children:[a(ei,{legendOpen:se,locale:n,query:P,searchRef:j,status:ue,tab:x,onClose:o,onLegend:lt,onLocale:c,onQuery:le,onTab:b}),x==="graph"?a(qt,{selected:$,onPreset:ut,onToggle:pt}):void 0,a(Pi,{state:Ze}),x==="timeline"?a(Oi,{audit:y,controlUi:ee.module,entries:r.timeline.list(),timeline:Ye}):s("div",{className:"odt-body",children:[P===""?a(ki,{displayOf:rt,expanded:Qe,groups:r.graph.tree(),selectedId:O,summary:$i(r,u),version:l,onConfirm:st,onSelect:W,onToggle:ot}):a(ai,{hits:it,selectedId:et,onSelect:W}),a(_n,{control:a(Ue,{audit:y,control:e,controlUi:ee,place:"bar",projection:A,store:r,onAudit:pe}),edgeKinds:$,extensionPoints:nt,projection:A,onSelect:W}),a("div",{className:"odt-inspector-host",ref:ce,tabIndex:-1,children:a(Ti,{actionStatus:D,conditionLabelOf:dt,control:a(Ue,{audit:y,control:e,controlUi:ee,place:"inspector",projection:A,store:r,onAudit:pe}),labelOf:at,projection:A,onCopyId:ft,onExport:ht,onSelect:W,onShowInTimeline:ct})})]}),a(ti,{mappedTokens:_e,mode:i,renderCost:g,status:ue})]})}function Mi(e){const[t,n]=k(()=>e.locale??Rt());return a(Bt,{locale:t,children:a(Ri,{...e,locale:t,onLocale:n})})}export{Mi as D,L as S,ie as a,G as b,Ee as c,hi as d,fe as e,ye as f,we as g,ne as h,ve as i,Ne as j,We as k,Le as l,v as m,Dt as n,Jt as o,te as p,qe as q,he as r,Ae as s,He as t,Ke as u};
367
+ //# sourceMappingURL=panel-5jvisQBr.js.map