@bimetal/devtools-react 0.16.5

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 (36) hide show
  1. package/LICENSE +129 -0
  2. package/README.md +61 -0
  3. package/dist/.tsbuildinfo +1 -0
  4. package/dist/BridgesBody.d.ts +27 -0
  5. package/dist/BridgesBody.d.ts.map +1 -0
  6. package/dist/BridgesBody.js +154 -0
  7. package/dist/BridgesBody.js.map +1 -0
  8. package/dist/CausationBody.d.ts +30 -0
  9. package/dist/CausationBody.d.ts.map +1 -0
  10. package/dist/CausationBody.js +149 -0
  11. package/dist/CausationBody.js.map +1 -0
  12. package/dist/DevtoolsRegistryContext.d.ts +14 -0
  13. package/dist/DevtoolsRegistryContext.d.ts.map +1 -0
  14. package/dist/DevtoolsRegistryContext.js +14 -0
  15. package/dist/DevtoolsRegistryContext.js.map +1 -0
  16. package/dist/DevtoolsRegistryProvider.d.ts +16 -0
  17. package/dist/DevtoolsRegistryProvider.d.ts.map +1 -0
  18. package/dist/DevtoolsRegistryProvider.js +14 -0
  19. package/dist/DevtoolsRegistryProvider.js.map +1 -0
  20. package/dist/EventInspectorPanel.d.ts +27 -0
  21. package/dist/EventInspectorPanel.d.ts.map +1 -0
  22. package/dist/EventInspectorPanel.js +669 -0
  23. package/dist/EventInspectorPanel.js.map +1 -0
  24. package/dist/index.d.ts +29 -0
  25. package/dist/index.d.ts.map +1 -0
  26. package/dist/index.js +27 -0
  27. package/dist/index.js.map +1 -0
  28. package/dist/inspector-shared.d.ts +52 -0
  29. package/dist/inspector-shared.d.ts.map +1 -0
  30. package/dist/inspector-shared.js +168 -0
  31. package/dist/inspector-shared.js.map +1 -0
  32. package/dist/useDevtoolsRegistry.d.ts +20 -0
  33. package/dist/useDevtoolsRegistry.d.ts.map +1 -0
  34. package/dist/useDevtoolsRegistry.js +37 -0
  35. package/dist/useDevtoolsRegistry.js.map +1 -0
  36. package/package.json +56 -0
@@ -0,0 +1,149 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /**
3
+ * Causation-Tab (v0.16.3) — Forest-Rendering aus dem rolling-window.
4
+ *
5
+ * Architektur-Doc: `design/calendar/16-causation-forest-architecture.md`.
6
+ *
7
+ * Pure-Function lebt in `@bimetal/devtools`; diese Datei ist reine
8
+ * UI-Schicht. Komponenten + Forest-spezifische Styles wurden aus
9
+ * `EventInspectorPanel.tsx` herausgezogen, weil der Inspector-Monolith
10
+ * bei jeder neuen Slice mitgewachsen ist. Geteilte Bits (EventDetail,
11
+ * MetaPlainRow, stub, Detail-Layout-Styles) werden re-importiert.
12
+ */
13
+ import { useMemo, useState } from 'react';
14
+ import { buildCausationForest } from '@bimetal/devtools';
15
+ import { EventDetail, MetaPlainRow, detailColumnStyle, detailHeaderStyle, detailInnerStyle, detailMetaGridStyle, emptyDetailStyle, emptyStyle, inlineCodeStyle, stub, tableScrollStyle, twoColStyle, } from './inspector-shared.js';
16
+ /**
17
+ * Forest aus rolling-window via `buildCausationForest`, gerendert als
18
+ * eingerückte Baum-Liste. UI memoiziert über die `events`-Reference.
19
+ *
20
+ * Klick auf EventNode → EventDetail rechts (wiederverwendet).
21
+ * Klick auf ExternalCauseNode → kompaktes Cause-Detail mit ID +
22
+ * Reason + Hinweis ("aus events[] allein nicht entscheidbar, ob
23
+ * Command, dropped Event oder Fremdprozess").
24
+ *
25
+ * Im Calendar-DomainStore-Flow sind die Bäume meistens flach (jedes
26
+ * Event hängt unter einem nicht-eingefangenen Command). Das ist
27
+ * Eigenschaft des Flows, kein UX-Versagen — anderen Frameworks
28
+ * liefert der Tab den vollen Tiefendurchblick.
29
+ */
30
+ export function CausationBody({ events }) {
31
+ const forest = useMemo(() => buildCausationForest(events), [events]);
32
+ const [selectedNodeId, setSelectedNodeId] = useState(null);
33
+ const selected = useMemo(() => findNodeById(forest, selectedNodeId), [forest, selectedNodeId]);
34
+ if (events.length === 0) {
35
+ return (_jsxs("div", { style: emptyStyle, children: ["Noch keine Events captured. Sobald ein registrierter EventStore Events emittiert, baut sich der Causation-Forest aus ", _jsx("code", { children: "metadata.causationId" }), " auf."] }));
36
+ }
37
+ return (_jsxs("div", { style: twoColStyle, children: [_jsx("div", { style: tableScrollStyle, children: _jsx("div", { style: forestListStyle, children: forest.map(root => (_jsx(ForestNode, { node: root, depth: 0, selectedNodeId: selectedNodeId, onSelect: setSelectedNodeId }, root.nodeId))) }) }), _jsx("div", { style: detailColumnStyle, children: selected
38
+ ? selected.kind === 'event'
39
+ ? _jsx(EventDetail, { captured: selected.event })
40
+ : _jsx(ExternalCauseDetail, { node: selected })
41
+ : _jsx("div", { style: emptyDetailStyle, children: "Klick auf einen Knoten zeigt Event-Detail bzw. Cause-Info." }) })] }));
42
+ }
43
+ function findNodeById(forest, nodeId) {
44
+ if (nodeId === null)
45
+ return null;
46
+ // DFS — Forest ist in Demo-Größen klein genug, dass Map-Caching nicht nötig ist.
47
+ for (const root of forest) {
48
+ const found = walkFind(root, nodeId);
49
+ if (found)
50
+ return found;
51
+ }
52
+ return null;
53
+ }
54
+ function walkFind(node, nodeId) {
55
+ if (node.nodeId === nodeId)
56
+ return node;
57
+ for (const child of node.children) {
58
+ const found = walkFind(child, nodeId);
59
+ if (found)
60
+ return found;
61
+ }
62
+ return null;
63
+ }
64
+ function ForestNode({ node, depth, selectedNodeId, onSelect, }) {
65
+ const isSelected = node.nodeId === selectedNodeId;
66
+ return (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", onClick: () => onSelect(node.nodeId), style: {
67
+ ...forestRowStyle,
68
+ paddingLeft: 8 + depth * 16,
69
+ ...(isSelected ? forestRowSelectedStyle : null),
70
+ }, title: node.kind === 'event' ? node.event.event.type : `external cause · ${node.reason}`, children: node.kind === 'event'
71
+ ? _jsx(EventNodeLabel, { node: node })
72
+ : _jsx(ExternalCauseNodeLabel, { node: node }) }), node.children.map(child => (_jsx(ForestNode, { node: child, depth: depth + 1, selectedNodeId: selectedNodeId, onSelect: onSelect }, child.nodeId)))] }));
73
+ }
74
+ function EventNodeLabel({ node }) {
75
+ const ev = node.event;
76
+ return (_jsxs("span", { style: forestLabelStyle, children: [_jsx("span", { style: forestKindGlyph, children: "\u25CF" }), _jsx("span", { style: forestEventTypeStyle, children: ev.event.type }), _jsxs("span", { style: forestMetaStyle, children: ["#", ev.seq, " \u00B7 ", stub(ev.event.envelope.id), " \u00B7 v", ev.event.envelope.version] }), node.cycleBroken && (_jsx("span", { style: forestCycleStyle, title: "cycle broken at this node \u2014 die eigene Parent-Edge schlie\u00DFt einen Zyklus und wurde gebrochen", children: "\u26A0 cycle" }))] }));
77
+ }
78
+ function ExternalCauseNodeLabel({ node }) {
79
+ return (_jsxs("span", { style: forestLabelStyle, children: [_jsx("span", { style: forestKindGlyph, children: "\u25CC" }), _jsx("span", { style: forestExternalLabelStyle, children: node.label }), _jsx("span", { style: forestMetaStyle, children: node.reason })] }));
80
+ }
81
+ function ExternalCauseDetail({ node }) {
82
+ return (_jsxs("div", { style: detailInnerStyle, children: [_jsxs("div", { style: detailHeaderStyle, children: [_jsx("div", { style: { fontWeight: 600, fontSize: 14 }, children: "External Cause" }), _jsxs("div", { style: { fontSize: 11, color: '#888', marginTop: 4 }, children: ["Store ", _jsx("code", { style: inlineCodeStyle, children: node.storeId })] }), _jsxs("div", { style: detailMetaGridStyle, children: [_jsx(MetaPlainRow, { label: "Cause-ID", value: node.id, mono: true }), _jsx(MetaPlainRow, { label: "Reason", value: node.reason }), _jsx(MetaPlainRow, { label: "Label", value: node.label })] })] }), _jsxs("div", { style: { marginTop: 12, padding: '10px 14px', background: '#1a1a1a', borderRadius: 4, fontSize: 12, color: '#bbb', lineHeight: 1.5 }, children: ["Aus dem rolling-window allein ist ", _jsx("strong", { style: { color: '#ddd' }, children: "nicht entscheidbar" }), ", ob die Quelle eine Command-ID, ein aus dem Window gefallenes Event oder ein externer Prozess (z. B. Bridge-Push) war. Causation-Forest sagt ehrlich \u201Enot-captured\" und vermeidet Fake-Verlinkung."] })] }));
83
+ }
84
+ // ── Forest-Styles ─────────────────────────────────────────────────
85
+ const forestListStyle = {
86
+ display: 'flex',
87
+ flexDirection: 'column',
88
+ padding: '4px 0',
89
+ };
90
+ const forestRowStyle = {
91
+ display: 'flex',
92
+ alignItems: 'center',
93
+ width: '100%',
94
+ textAlign: 'left',
95
+ background: 'transparent',
96
+ border: 'none',
97
+ color: '#ddd',
98
+ padding: '4px 8px',
99
+ cursor: 'pointer',
100
+ fontSize: 12,
101
+ borderRadius: 3,
102
+ };
103
+ const forestRowSelectedStyle = {
104
+ background: '#2a3a4a',
105
+ };
106
+ const forestLabelStyle = {
107
+ display: 'flex',
108
+ alignItems: 'baseline',
109
+ gap: 8,
110
+ overflow: 'hidden',
111
+ flex: 1,
112
+ };
113
+ const forestKindGlyph = {
114
+ fontSize: 10,
115
+ color: '#888',
116
+ width: 10,
117
+ textAlign: 'center',
118
+ flexShrink: 0,
119
+ };
120
+ const forestEventTypeStyle = {
121
+ fontFamily: 'ui-monospace, "SF Mono", monospace',
122
+ fontSize: 12,
123
+ color: '#e0e0e0',
124
+ whiteSpace: 'nowrap',
125
+ overflow: 'hidden',
126
+ textOverflow: 'ellipsis',
127
+ };
128
+ const forestExternalLabelStyle = {
129
+ fontFamily: 'ui-monospace, "SF Mono", monospace',
130
+ fontSize: 12,
131
+ color: '#c0c0c0',
132
+ fontStyle: 'italic',
133
+ whiteSpace: 'nowrap',
134
+ overflow: 'hidden',
135
+ textOverflow: 'ellipsis',
136
+ };
137
+ const forestMetaStyle = {
138
+ fontSize: 10,
139
+ color: '#888',
140
+ whiteSpace: 'nowrap',
141
+ };
142
+ const forestCycleStyle = {
143
+ fontSize: 10,
144
+ color: '#ffc88a',
145
+ background: '#3a2a1a',
146
+ padding: '1px 6px',
147
+ borderRadius: 3,
148
+ };
149
+ //# sourceMappingURL=CausationBody.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CausationBody.js","sourceRoot":"","sources":["../src/CausationBody.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * React-Context für die `DevtoolsRegistry`.
3
+ *
4
+ * **Vertrag (Pilot-Schärfung 2026-06-09):** der Context hat KEINEN
5
+ * impliziten Singleton-Default. Default ist `null`; `useDevtoolsRegistry`
6
+ * wirft mit klarer Message, wenn weder Provider noch Prop vorhanden ist.
7
+ *
8
+ * Begründung: ein Package-Singleton würde mehrere Konsumenten
9
+ * zwangsläufig zusammenketten — Tests, Multi-Inspector-Layouts und
10
+ * isolierte Demo-Variants wären nicht möglich.
11
+ */
12
+ import type { DevtoolsRegistry } from '@bimetal/devtools';
13
+ export declare const DevtoolsRegistryContext: import("react").Context<DevtoolsRegistry | null>;
14
+ //# sourceMappingURL=DevtoolsRegistryContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DevtoolsRegistryContext.d.ts","sourceRoot":"","sources":["../src/DevtoolsRegistryContext.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,eAAO,MAAM,uBAAuB,kDAA+C,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * React-Context für die `DevtoolsRegistry`.
3
+ *
4
+ * **Vertrag (Pilot-Schärfung 2026-06-09):** der Context hat KEINEN
5
+ * impliziten Singleton-Default. Default ist `null`; `useDevtoolsRegistry`
6
+ * wirft mit klarer Message, wenn weder Provider noch Prop vorhanden ist.
7
+ *
8
+ * Begründung: ein Package-Singleton würde mehrere Konsumenten
9
+ * zwangsläufig zusammenketten — Tests, Multi-Inspector-Layouts und
10
+ * isolierte Demo-Variants wären nicht möglich.
11
+ */
12
+ import { createContext } from 'react';
13
+ export const DevtoolsRegistryContext = createContext(null);
14
+ //# sourceMappingURL=DevtoolsRegistryContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DevtoolsRegistryContext.js","sourceRoot":"","sources":["../src/DevtoolsRegistryContext.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAGtC,MAAM,CAAC,MAAM,uBAAuB,GAAG,aAAa,CAA0B,IAAI,CAAC,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { DevtoolsRegistry } from '@bimetal/devtools';
3
+ export interface DevtoolsRegistryProviderProps {
4
+ readonly value: DevtoolsRegistry;
5
+ readonly children: ReactNode;
6
+ }
7
+ /**
8
+ * Stellt eine `DevtoolsRegistry` für nachgelagerte `useDevtoolsRegistry`-
9
+ * Konsumenten + propless `EventInspectorPanel`-Renderings bereit.
10
+ *
11
+ * Mehrere Provider können in unterschiedlichen Subtrees verschiedene
12
+ * Registries bereitstellen — nützlich für Tests oder Multi-Inspector-
13
+ * Layouts.
14
+ */
15
+ export declare function DevtoolsRegistryProvider({ value, children }: DevtoolsRegistryProviderProps): import("react/jsx-runtime").JSX.Element;
16
+ //# sourceMappingURL=DevtoolsRegistryProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DevtoolsRegistryProvider.d.ts","sourceRoot":"","sources":["../src/DevtoolsRegistryProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG1D,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;CAC9B;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,6BAA6B,2CAM1F"}
@@ -0,0 +1,14 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { DevtoolsRegistryContext } from './DevtoolsRegistryContext.js';
3
+ /**
4
+ * Stellt eine `DevtoolsRegistry` für nachgelagerte `useDevtoolsRegistry`-
5
+ * Konsumenten + propless `EventInspectorPanel`-Renderings bereit.
6
+ *
7
+ * Mehrere Provider können in unterschiedlichen Subtrees verschiedene
8
+ * Registries bereitstellen — nützlich für Tests oder Multi-Inspector-
9
+ * Layouts.
10
+ */
11
+ export function DevtoolsRegistryProvider({ value, children }) {
12
+ return (_jsx(DevtoolsRegistryContext.Provider, { value: value, children: children }));
13
+ }
14
+ //# sourceMappingURL=DevtoolsRegistryProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DevtoolsRegistryProvider.js","sourceRoot":"","sources":["../src/DevtoolsRegistryProvider.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAOvE;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAiC;IACzF,OAAO,CACL,KAAC,uBAAuB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAC3C,QAAQ,GACwB,CACpC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Event-Inspector — Vollseiten-Variant (v0.14.0, in `@bimetal/devtools-react`
3
+ * extrahiert in v0.16.5).
4
+ *
5
+ * UX-Vorbild laut Architektur-Doc: EDA-Lab / KurrentDB-UI.
6
+ * Tabelle statt Cards. ID-Stubs (8-Zeichen) statt Volltext.
7
+ * Causation/Correlation als first-class Spalten.
8
+ *
9
+ * Ehrlichkeits-Grundsatz: causationId zeigt im Calendar-DomainStore-Flow
10
+ * auf eine Command-ID, nicht auf ein vorausgehendes Event. Die Tabelle
11
+ * zeigt die rohe ID — keine Fake-Causation-Tree-Verlinkung.
12
+ *
13
+ * **Registry-Resolution (v0.16.5 Pilot-Schärfung):** Prop > Context >
14
+ * Throw. Kein impliziter Singleton-Fallback. Siehe
15
+ * `16-devtools-react-architecture.md` Leitplanke 2.
16
+ */
17
+ import type { DevtoolsRegistry } from '@bimetal/devtools';
18
+ export interface EventInspectorPanelProps {
19
+ /**
20
+ * Optional explicit registry. Wenn weggelassen, holt sich der Inspector
21
+ * die Registry aus dem nächsten `<DevtoolsRegistryProvider>` — fehlt
22
+ * auch das, wirft `useResolvedRegistry()` mit klarer Message.
23
+ */
24
+ readonly registry?: DevtoolsRegistry;
25
+ }
26
+ export declare function EventInspectorPanel({ registry: registryProp }?: EventInspectorPanelProps): import("react/jsx-runtime").JSX.Element;
27
+ //# sourceMappingURL=EventInspectorPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventInspectorPanel.d.ts","sourceRoot":"","sources":["../src/EventInspectorPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAGV,gBAAgB,EAMjB,MAAM,mBAAmB,CAAC;AA4B3B,MAAM,WAAW,wBAAwB;IACvC;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CACtC;AAED,wBAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAE,wBAA6B,2CA4K5F"}