bippy 0.2.9 → 0.2.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/inspect.cjs CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  require('./chunk-YZYCWAB2.cjs');
6
- var chunkR2Y4F7D7_cjs = require('./chunk-R2Y4F7D7.cjs');
6
+ var chunk4DXMRM7J_cjs = require('./chunk-4DXMRM7J.cjs');
7
7
  var React17 = require('react');
8
8
 
9
9
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
@@ -4785,7 +4785,7 @@ var CloseButton = React17__default.default.memo(({ onClick }) => /* @__PURE__ */
4785
4785
  },
4786
4786
  "\xD7"
4787
4787
  ));
4788
- var FiberGraph = React17__default.default.memo(
4788
+ React17__default.default.memo(
4789
4789
  ({
4790
4790
  fiber,
4791
4791
  onFiberSelect,
@@ -4818,9 +4818,9 @@ var FiberGraph = React17__default.default.memo(
4818
4818
  const links2 = [];
4819
4819
  const nodeMap = /* @__PURE__ */ new Map();
4820
4820
  let nodeCounter = 0;
4821
- const baseId = chunkR2Y4F7D7_cjs.getFiberId(fiber).toString();
4821
+ const baseId = chunk4DXMRM7J_cjs.getFiberId(fiber).toString();
4822
4822
  const rootId = `${baseId}-${nodeCounter++}`;
4823
- const rootName = typeof fiber.type === "string" ? fiber.type : fiber.type === null && fiber.tag === chunkR2Y4F7D7_cjs.HostRootTag ? "#root" : fiber.type === null && fiber.tag === chunkR2Y4F7D7_cjs.HostTextTag ? "#text" : chunkR2Y4F7D7_cjs.getDisplayName(fiber.type) || fiber.type?.name || fiber.type?.displayName || "Component";
4823
+ const rootName = typeof fiber.type === "string" ? fiber.type : fiber.type === null && fiber.tag === chunk4DXMRM7J_cjs.HostRootTag ? "#root" : fiber.type === null && fiber.tag === chunk4DXMRM7J_cjs.HostTextTag ? "#text" : chunk4DXMRM7J_cjs.getDisplayName(fiber.type) || fiber.type?.name || fiber.type?.displayName || "Component";
4824
4824
  const rootNode = {
4825
4825
  id: rootId,
4826
4826
  name: rootName,
@@ -4841,7 +4841,7 @@ var FiberGraph = React17__default.default.memo(
4841
4841
  const current = stack2.pop();
4842
4842
  if (!current) continue;
4843
4843
  const { fiber: currentFiber, parentId, depth } = current;
4844
- if (currentFiber.tag === chunkR2Y4F7D7_cjs.FragmentTag) {
4844
+ if (currentFiber.tag === chunk4DXMRM7J_cjs.FragmentTag) {
4845
4845
  if (currentFiber.child) {
4846
4846
  stack2.push({
4847
4847
  fiber: currentFiber.child,
@@ -4852,13 +4852,13 @@ var FiberGraph = React17__default.default.memo(
4852
4852
  if (currentFiber.sibling && currentFiber.return === currentFiber.sibling.return) {
4853
4853
  stack2.push({
4854
4854
  fiber: currentFiber.sibling,
4855
- parentId: currentFiber.return ? nodeMap.get(chunkR2Y4F7D7_cjs.getFiberId(currentFiber.return).toString())?.id || parentId : parentId,
4855
+ parentId: currentFiber.return ? nodeMap.get(chunk4DXMRM7J_cjs.getFiberId(currentFiber.return).toString())?.id || parentId : parentId,
4856
4856
  depth
4857
4857
  });
4858
4858
  }
4859
4859
  continue;
4860
4860
  }
4861
- if (currentFiber.type === null && chunkR2Y4F7D7_cjs.isHostFiber(currentFiber)) {
4861
+ if (currentFiber.type === null && chunk4DXMRM7J_cjs.isHostFiber(currentFiber)) {
4862
4862
  if (currentFiber.child) {
4863
4863
  stack2.push({
4864
4864
  fiber: currentFiber.child,
@@ -4869,27 +4869,27 @@ var FiberGraph = React17__default.default.memo(
4869
4869
  if (currentFiber.sibling && currentFiber.return === currentFiber.sibling.return) {
4870
4870
  stack2.push({
4871
4871
  fiber: currentFiber.sibling,
4872
- parentId: currentFiber.return ? nodeMap.get(chunkR2Y4F7D7_cjs.getFiberId(currentFiber.return).toString())?.id || parentId : parentId,
4872
+ parentId: currentFiber.return ? nodeMap.get(chunk4DXMRM7J_cjs.getFiberId(currentFiber.return).toString())?.id || parentId : parentId,
4873
4873
  depth
4874
4874
  });
4875
4875
  }
4876
4876
  continue;
4877
4877
  }
4878
- const childId = `${chunkR2Y4F7D7_cjs.getFiberId(currentFiber)}-${nodeCounter++}`;
4878
+ const childId = `${chunk4DXMRM7J_cjs.getFiberId(currentFiber)}-${nodeCounter++}`;
4879
4879
  let name = "unknown";
4880
4880
  if (typeof currentFiber.type === "string") {
4881
4881
  name = currentFiber.type;
4882
- } else if (currentFiber.type === null && currentFiber.tag === chunkR2Y4F7D7_cjs.HostTextTag) {
4882
+ } else if (currentFiber.type === null && currentFiber.tag === chunk4DXMRM7J_cjs.HostTextTag) {
4883
4883
  const text = currentFiber.stateNode?.nodeValue?.trim() || "";
4884
4884
  if (text) {
4885
4885
  name = text.length > 20 ? `"${text.slice(0, 20)}..."` : `"${text}"`;
4886
4886
  } else {
4887
4887
  name = "#text";
4888
4888
  }
4889
- } else if (currentFiber.type === null && currentFiber.tag === chunkR2Y4F7D7_cjs.HostRootTag) {
4889
+ } else if (currentFiber.type === null && currentFiber.tag === chunk4DXMRM7J_cjs.HostRootTag) {
4890
4890
  name = "#root";
4891
4891
  } else {
4892
- name = chunkR2Y4F7D7_cjs.getDisplayName(currentFiber.type) || currentFiber.type?.name || currentFiber.type?.displayName || "Component";
4892
+ name = chunk4DXMRM7J_cjs.getDisplayName(currentFiber.type) || currentFiber.type?.name || currentFiber.type?.displayName || "Component";
4893
4893
  }
4894
4894
  const node = {
4895
4895
  id: childId,
@@ -4913,7 +4913,7 @@ var FiberGraph = React17__default.default.memo(
4913
4913
  if (currentFiber.sibling && currentFiber.return === currentFiber.sibling.return) {
4914
4914
  stack2.push({
4915
4915
  fiber: currentFiber.sibling,
4916
- parentId: currentFiber.return ? nodeMap.get(chunkR2Y4F7D7_cjs.getFiberId(currentFiber.return).toString())?.id || parentId : parentId,
4916
+ parentId: currentFiber.return ? nodeMap.get(chunk4DXMRM7J_cjs.getFiberId(currentFiber.return).toString())?.id || parentId : parentId,
4917
4917
  depth
4918
4918
  });
4919
4919
  }
@@ -4986,7 +4986,7 @@ var FiberGraph = React17__default.default.memo(
4986
4986
  nodeElements.exit().remove();
4987
4987
  const nodeEnter = nodeElements.enter().append("g").attr("transform", (d) => `translate(${d.x},${d.y})`).style("cursor", "pointer").on("click", (event, d) => {
4988
4988
  event.stopPropagation();
4989
- const element = chunkR2Y4F7D7_cjs.getNearestHostFiber(d.data.fiber)?.stateNode;
4989
+ const element = chunk4DXMRM7J_cjs.getNearestHostFiber(d.data.fiber)?.stateNode;
4990
4990
  if (element instanceof HTMLElement) {
4991
4991
  element.scrollIntoView({ behavior: "smooth", block: "center" });
4992
4992
  const originalOutline = element.style.outline;
@@ -5009,9 +5009,9 @@ var FiberGraph = React17__default.default.memo(
5009
5009
  const isPreview = !isDialogMode;
5010
5010
  const scale = isRoot ? isPreview ? 2 : 1.75 : 1;
5011
5011
  const isRendered = renderedFibersRef.current.has(
5012
- chunkR2Y4F7D7_cjs.getFiberId(d.data.fiber).toString()
5012
+ chunk4DXMRM7J_cjs.getFiberId(d.data.fiber).toString()
5013
5013
  );
5014
- const rect = g.selectAll("rect").data([d]).join("rect").attr("x", -75 * scale).attr("y", -30 * scale).attr("width", 150 * scale).attr("height", 60 * scale).attr("rx", 6 * scale).attr("fill", chunkR2Y4F7D7_cjs.isCompositeFiber(d.data.fiber) ? "#FFF" : "#232323").attr("stroke", isRendered ? "#FFC799" : "#505050").attr("stroke-width", isRoot ? "3" : "2");
5014
+ const rect = g.selectAll("rect").data([d]).join("rect").attr("x", -75 * scale).attr("y", -30 * scale).attr("width", 150 * scale).attr("height", 60 * scale).attr("rx", 6 * scale).attr("fill", chunk4DXMRM7J_cjs.isCompositeFiber(d.data.fiber) ? "#FFF" : "#232323").attr("stroke", isRendered ? "#FFC799" : "#505050").attr("stroke-width", isRoot ? "3" : "2");
5015
5015
  rect.on("mouseover", function() {
5016
5016
  select_default2(this).attr("stroke", "#808080").attr("stroke-width", isRoot ? "4" : "3");
5017
5017
  }).on("mouseout", function() {
@@ -5019,11 +5019,11 @@ var FiberGraph = React17__default.default.memo(
5019
5019
  });
5020
5020
  const renderCount = renderCounts.get(d.data.fiber) || 0;
5021
5021
  const renderText = renderCount > 0 ? ` \xD7${renderCount}` : "";
5022
- g.selectAll("text.name").data([d]).join("text").attr("class", "name").attr("text-anchor", "middle").attr("dy", `${-0.6 * scale}em`).attr("fill", chunkR2Y4F7D7_cjs.isCompositeFiber(d.data.fiber) ? "#000" : "#FFF").attr("font-weight", "500").attr(
5022
+ g.selectAll("text.name").data([d]).join("text").attr("class", "name").attr("text-anchor", "middle").attr("dy", `${-0.6 * scale}em`).attr("fill", chunk4DXMRM7J_cjs.isCompositeFiber(d.data.fiber) ? "#000" : "#FFF").attr("font-weight", "500").attr(
5023
5023
  "font-size",
5024
5024
  isRoot ? isPreview ? "1.75em" : "1.5em" : "1em"
5025
5025
  ).text(d.data.name + renderText);
5026
- g.selectAll("text.props").data([d]).join("text").attr("class", "props").attr("text-anchor", "middle").attr("dy", `${0.9 * scale}em`).attr("fill", chunkR2Y4F7D7_cjs.isCompositeFiber(d.data.fiber) ? "#666" : "#999").attr(
5026
+ g.selectAll("text.props").data([d]).join("text").attr("class", "props").attr("text-anchor", "middle").attr("dy", `${0.9 * scale}em`).attr("fill", chunk4DXMRM7J_cjs.isCompositeFiber(d.data.fiber) ? "#666" : "#999").attr(
5027
5027
  "font-size",
5028
5028
  isRoot ? isPreview ? "1.25em" : "1.1em" : "0.75em"
5029
5029
  ).text(() => {
@@ -5088,13 +5088,13 @@ var FiberGraph = React17__default.default.memo(
5088
5088
  }
5089
5089
  }, [nodes.length, handleFit]);
5090
5090
  React17.useEffect(() => {
5091
- chunkR2Y4F7D7_cjs.onCommitFiberRoot((root2) => {
5091
+ chunk4DXMRM7J_cjs.onCommitFiberRoot((root2) => {
5092
5092
  if (flashTimeoutRef.current) {
5093
5093
  clearTimeout(flashTimeoutRef.current);
5094
5094
  }
5095
5095
  renderedFibersRef.current = /* @__PURE__ */ new Set();
5096
- chunkR2Y4F7D7_cjs.traverseRenderedFibers(root2, (renderedFiber) => {
5097
- const fiberId = chunkR2Y4F7D7_cjs.getFiberId(renderedFiber).toString();
5096
+ chunk4DXMRM7J_cjs.traverseRenderedFibers(root2, (renderedFiber) => {
5097
+ const fiberId = chunk4DXMRM7J_cjs.getFiberId(renderedFiber).toString();
5098
5098
  renderedFibersRef.current.add(fiberId);
5099
5099
  const states = fiberStates.get(fiberId) || [];
5100
5100
  states.push({
@@ -5103,13 +5103,16 @@ var FiberGraph = React17__default.default.memo(
5103
5103
  timestamp: Date.now()
5104
5104
  });
5105
5105
  fiberStates.set(fiberId, states);
5106
- renderCounts.set(renderedFiber, (renderCounts.get(renderedFiber) || 0) + 1);
5106
+ renderCounts.set(
5107
+ renderedFiber,
5108
+ (renderCounts.get(renderedFiber) || 0) + 1
5109
+ );
5107
5110
  });
5108
5111
  if (nodesGroupRef.current) {
5109
5112
  const nodeElements = select_default2(nodesGroupRef.current).selectAll("g");
5110
5113
  nodeElements.each(function(d) {
5111
5114
  const isRendered = renderedFibersRef.current.has(
5112
- chunkR2Y4F7D7_cjs.getFiberId(d.data.fiber).toString()
5115
+ chunk4DXMRM7J_cjs.getFiberId(d.data.fiber).toString()
5113
5116
  );
5114
5117
  if (isRendered) {
5115
5118
  const rect = select_default2(this).select("rect");
@@ -5130,40 +5133,43 @@ var FiberGraph = React17__default.default.memo(
5130
5133
  }
5131
5134
  };
5132
5135
  }, []);
5133
- const handleTimelineChange = React17.useCallback((index) => {
5134
- setTimelineIndex(index);
5135
- const fiberId = chunkR2Y4F7D7_cjs.getFiberId(fiber).toString();
5136
- const states = fiberStates.get(fiberId);
5137
- if (states?.[index]) {
5138
- const rdtHook = chunkR2Y4F7D7_cjs.getRDTHook();
5139
- if (rdtHook?.renderers.size > 0) {
5140
- const renderer = Array.from(rdtHook.renderers.values())?.[0];
5141
- const overrideProps = renderer?.currentDispatcherRef?.current?.overrideProps;
5142
- const overrideHookState = renderer?.currentDispatcherRef?.current?.overrideHookState;
5143
- const state = states?.[index];
5144
- if (state) {
5145
- if (overrideProps) {
5146
- overrideProps(fiber, state.props);
5147
- }
5148
- if (overrideHookState) {
5149
- overrideHookState(fiber, state.hookState);
5136
+ const handleTimelineChange = React17.useCallback(
5137
+ (index) => {
5138
+ setTimelineIndex(index);
5139
+ const fiberId = chunk4DXMRM7J_cjs.getFiberId(fiber).toString();
5140
+ const states = fiberStates.get(fiberId);
5141
+ if (states?.[index]) {
5142
+ const rdtHook = chunk4DXMRM7J_cjs.getRDTHook();
5143
+ if (rdtHook?.renderers.size > 0) {
5144
+ const renderer = Array.from(rdtHook.renderers.values())?.[0];
5145
+ const overrideProps = renderer?.currentDispatcherRef?.current?.overrideProps;
5146
+ const overrideHookState = renderer?.currentDispatcherRef?.current?.overrideHookState;
5147
+ const state = states?.[index];
5148
+ if (state) {
5149
+ if (overrideProps) {
5150
+ overrideProps(fiber, state.props);
5151
+ }
5152
+ if (overrideHookState) {
5153
+ overrideHookState(fiber, state.hookState);
5154
+ }
5150
5155
  }
5151
5156
  }
5152
5157
  }
5153
- }
5154
- }, [fiber]);
5158
+ },
5159
+ [fiber]
5160
+ );
5155
5161
  const handlePlayPause = React17.useCallback(() => {
5156
5162
  setIsPlaying((prev) => !prev);
5157
5163
  }, []);
5158
5164
  const handleStepForward = React17.useCallback(() => {
5159
- const states = fiberStates.get(chunkR2Y4F7D7_cjs.getFiberId(fiber).toString());
5165
+ const states = fiberStates.get(chunk4DXMRM7J_cjs.getFiberId(fiber).toString());
5160
5166
  if (states) {
5161
5167
  const nextIndex = Math.min(timelineIndex + 1, states.length - 1);
5162
5168
  handleTimelineChange(nextIndex);
5163
5169
  }
5164
5170
  }, [fiber, timelineIndex, handleTimelineChange]);
5165
5171
  const handleStepBack = React17.useCallback(() => {
5166
- const states = fiberStates.get(chunkR2Y4F7D7_cjs.getFiberId(fiber).toString());
5172
+ const states = fiberStates.get(chunk4DXMRM7J_cjs.getFiberId(fiber).toString());
5167
5173
  if (states) {
5168
5174
  const prevIndex = Math.max(timelineIndex - 1, 0);
5169
5175
  handleTimelineChange(prevIndex);
@@ -5172,7 +5178,7 @@ var FiberGraph = React17__default.default.memo(
5172
5178
  React17.useEffect(() => {
5173
5179
  if (isPlaying) {
5174
5180
  playIntervalRef.current = setInterval(() => {
5175
- const states = fiberStates.get(chunkR2Y4F7D7_cjs.getFiberId(fiber).toString());
5181
+ const states = fiberStates.get(chunk4DXMRM7J_cjs.getFiberId(fiber).toString());
5176
5182
  if (states) {
5177
5183
  const nextIndex = timelineIndex + 1;
5178
5184
  if (nextIndex >= states.length) {
@@ -5191,300 +5197,399 @@ var FiberGraph = React17__default.default.memo(
5191
5197
  }
5192
5198
  };
5193
5199
  }, [isPlaying, fiber, timelineIndex, handleTimelineChange]);
5194
- return /* @__PURE__ */ React17__default.default.createElement("div", { style: { height: "50ch", marginTop: "2ch", display: "flex", flexDirection: "column", position: "relative" } }, isDialogMode && /* @__PURE__ */ React17__default.default.createElement("div", { style: {
5195
- display: "flex",
5196
- gap: "0.5ch",
5197
- marginBottom: "1ch",
5198
- padding: "0 1ch",
5199
- borderBottom: "1px solid #282828"
5200
- } }, /* @__PURE__ */ React17__default.default.createElement(
5201
- "button",
5202
- {
5203
- type: "button",
5204
- onClick: () => setActiveTab("graph"),
5205
- style: {
5206
- background: "transparent",
5207
- border: "none",
5208
- color: activeTab === "graph" ? "#FFC799" : "#A0A0A0",
5209
- padding: "1ch",
5210
- cursor: "pointer",
5211
- position: "relative",
5212
- fontSize: "0.875rem",
5213
- fontWeight: activeTab === "graph" ? 500 : 400
5214
- }
5215
- },
5216
- "Graph View",
5217
- activeTab === "graph" && /* @__PURE__ */ React17__default.default.createElement("div", { style: {
5218
- position: "absolute",
5219
- bottom: "-1px",
5220
- left: 0,
5221
- right: 0,
5222
- height: "2px",
5223
- background: "#FFC799",
5224
- borderRadius: "2px 2px 0 0"
5225
- } })
5226
- ), /* @__PURE__ */ React17__default.default.createElement(
5227
- "button",
5200
+ return /* @__PURE__ */ React17__default.default.createElement(
5201
+ "div",
5228
5202
  {
5229
- type: "button",
5230
- onClick: () => setActiveTab("fiber"),
5231
5203
  style: {
5232
- background: "transparent",
5233
- border: "none",
5234
- color: activeTab === "fiber" ? "#FFC799" : "#A0A0A0",
5235
- padding: "1ch",
5236
- cursor: "pointer",
5237
- position: "relative",
5238
- fontSize: "0.875rem",
5239
- fontWeight: activeTab === "fiber" ? 500 : 400
5204
+ height: "50ch",
5205
+ marginTop: "2ch",
5206
+ display: "flex",
5207
+ flexDirection: "column",
5208
+ position: "relative"
5240
5209
  }
5241
5210
  },
5242
- "Fiber View",
5243
- activeTab === "fiber" && /* @__PURE__ */ React17__default.default.createElement("div", { style: {
5244
- position: "absolute",
5245
- bottom: "-1px",
5246
- left: 0,
5247
- right: 0,
5248
- height: "2px",
5249
- background: "#FFC799",
5250
- borderRadius: "2px 2px 0 0"
5251
- } })
5252
- )), /* @__PURE__ */ React17__default.default.createElement("div", { style: { position: "relative", flex: 1 } }, /* @__PURE__ */ React17__default.default.createElement("div", { style: {
5253
- position: "absolute",
5254
- inset: 0,
5255
- display: activeTab === "graph" ? "block" : "none"
5256
- } }, /* @__PURE__ */ React17__default.default.createElement(
5257
- Controls,
5258
- {
5259
- onZoomIn: handleZoomIn,
5260
- onZoomOut: handleZoomOut,
5261
- onReset: handleReset,
5262
- onFit: handleFit
5263
- }
5264
- ), /* @__PURE__ */ React17__default.default.createElement(
5265
- "svg",
5266
- {
5267
- ref: svgRef,
5268
- viewBox: `0 0 ${svgWidth} ${svgHeight}`,
5269
- xmlns: "http://www.w3.org/2000/svg",
5270
- style: {
5271
- width: "100%",
5272
- height: "100%",
5273
- background: "#101010",
5274
- borderRadius: "0.25rem",
5275
- cursor: "grab"
5211
+ isDialogMode && /* @__PURE__ */ React17__default.default.createElement(
5212
+ "div",
5213
+ {
5214
+ style: {
5215
+ display: "flex",
5216
+ gap: "0.5ch",
5217
+ marginBottom: "1ch",
5218
+ padding: "0 1ch",
5219
+ borderBottom: "1px solid #282828"
5220
+ }
5276
5221
  },
5277
- "aria-label": "Fiber Tree Visualization"
5278
- },
5279
- /* @__PURE__ */ React17__default.default.createElement("title", null, "Fiber Tree Visualization"),
5280
- /* @__PURE__ */ React17__default.default.createElement("g", { ref: svgGroupRef }, /* @__PURE__ */ React17__default.default.createElement("g", { ref: linksGroupRef, className: "links" }), /* @__PURE__ */ React17__default.default.createElement("g", { ref: nodesGroupRef, className: "nodes" }))
5281
- )), /* @__PURE__ */ React17__default.default.createElement("div", { style: {
5282
- position: "absolute",
5283
- inset: 0,
5284
- display: activeTab === "fiber" ? "block" : "none",
5285
- overflow: "auto",
5286
- background: "#101010",
5287
- borderRadius: "0.25rem",
5288
- padding: "1ch"
5289
- } }, /* @__PURE__ */ React17__default.default.createElement(
5290
- Inspector,
5291
- {
5292
- theme: theme3,
5293
- data: fiber,
5294
- expandLevel: isDialogMode ? 1 : 0,
5295
- table: false,
5296
- nodeRenderer: (props) => {
5297
- const Component = props.depth === 0 ? ObjectRootLabel : ObjectLabel;
5298
- return /* @__PURE__ */ React17__default.default.createElement(
5299
- "span",
5222
+ /* @__PURE__ */ React17__default.default.createElement(
5223
+ "button",
5224
+ {
5225
+ type: "button",
5226
+ onClick: () => setActiveTab("graph"),
5227
+ style: {
5228
+ background: "transparent",
5229
+ border: "none",
5230
+ color: activeTab === "graph" ? "#FFC799" : "#A0A0A0",
5231
+ padding: "1ch",
5232
+ cursor: "pointer",
5233
+ position: "relative",
5234
+ fontSize: "0.875rem",
5235
+ fontWeight: activeTab === "graph" ? 500 : 400
5236
+ }
5237
+ },
5238
+ "Graph View",
5239
+ activeTab === "graph" && /* @__PURE__ */ React17__default.default.createElement(
5240
+ "div",
5300
5241
  {
5301
- onMouseEnter: (e) => handlePropertyHover(e, props.name),
5302
- onMouseLeave: handlePropertyLeave,
5303
5242
  style: {
5304
- cursor: FIBER_PROP_EXPLANATIONS[props.name] ? "help" : "default",
5305
- padding: "1px 0",
5306
- display: "inline-block",
5307
- fontWeight: FIBER_PROP_EXPLANATIONS[props.name] ? 500 : "normal"
5243
+ position: "absolute",
5244
+ bottom: "-1px",
5245
+ left: 0,
5246
+ right: 0,
5247
+ height: "2px",
5248
+ background: "#FFC799",
5249
+ borderRadius: "2px 2px 0 0"
5308
5250
  }
5309
- },
5310
- /* @__PURE__ */ React17__default.default.createElement(
5311
- Component,
5312
- {
5313
- name: props.name,
5314
- data: props.data,
5315
- isNonenumerable: props.isNonenumerable
5251
+ }
5252
+ )
5253
+ ),
5254
+ /* @__PURE__ */ React17__default.default.createElement(
5255
+ "button",
5256
+ {
5257
+ type: "button",
5258
+ onClick: () => setActiveTab("fiber"),
5259
+ style: {
5260
+ background: "transparent",
5261
+ border: "none",
5262
+ color: activeTab === "fiber" ? "#FFC799" : "#A0A0A0",
5263
+ padding: "1ch",
5264
+ cursor: "pointer",
5265
+ position: "relative",
5266
+ fontSize: "0.875rem",
5267
+ fontWeight: activeTab === "fiber" ? 500 : 400
5268
+ }
5269
+ },
5270
+ "Fiber View",
5271
+ activeTab === "fiber" && /* @__PURE__ */ React17__default.default.createElement(
5272
+ "div",
5273
+ {
5274
+ style: {
5275
+ position: "absolute",
5276
+ bottom: "-1px",
5277
+ left: 0,
5278
+ right: 0,
5279
+ height: "2px",
5280
+ background: "#FFC799",
5281
+ borderRadius: "2px 2px 0 0"
5316
5282
  }
5317
- )
5318
- );
5319
- }
5320
- }
5321
- ), tooltip && /* @__PURE__ */ React17__default.default.createElement("div", { style: {
5322
- position: "absolute",
5323
- zIndex: 1001,
5324
- backgroundColor: "#161616",
5325
- color: "#FFF",
5326
- bottom: "2ch",
5327
- right: "2ch",
5328
- pointerEvents: "none",
5329
- overflowY: "auto",
5330
- padding: "1ch",
5331
- fontSize: "1ch",
5332
- border: "1px solid #282828",
5333
- borderRadius: "0.25ch"
5334
- } }, tooltip))), isDialogMode && /* @__PURE__ */ React17__default.default.createElement("div", { style: {
5335
- background: "#161616",
5336
- padding: "1ch",
5337
- margin: "1ch 1ch 0 1ch",
5338
- borderRadius: "0.25rem",
5339
- border: "1px solid #282828",
5340
- display: "flex",
5341
- flexDirection: "column",
5342
- gap: "0.5ch",
5343
- opacity: fiberStates.get(chunkR2Y4F7D7_cjs.getFiberId(fiber).toString())?.length ? 1 : 0.5
5344
- } }, /* @__PURE__ */ React17__default.default.createElement("div", { style: { display: "flex", alignItems: "center", gap: "0.5ch" } }, /* @__PURE__ */ React17__default.default.createElement(
5345
- "button",
5346
- {
5347
- type: "button",
5348
- onClick: handleStepBack,
5349
- disabled: !fiberStates.get(chunkR2Y4F7D7_cjs.getFiberId(fiber).toString())?.length,
5350
- style: {
5351
- background: "transparent",
5352
- border: "1px solid #282828",
5353
- color: "#FFF",
5354
- borderRadius: "0.25rem",
5355
- cursor: fiberStates.get(chunkR2Y4F7D7_cjs.getFiberId(fiber).toString())?.length ? "pointer" : "not-allowed",
5356
- padding: "0.25ch 0.5ch"
5357
- }
5358
- },
5359
- "\u23EE"
5360
- ), /* @__PURE__ */ React17__default.default.createElement(
5361
- "button",
5362
- {
5363
- type: "button",
5364
- onClick: handlePlayPause,
5365
- disabled: !fiberStates.get(chunkR2Y4F7D7_cjs.getFiberId(fiber).toString())?.length,
5366
- style: {
5367
- background: "transparent",
5368
- border: "1px solid #282828",
5369
- color: "#FFF",
5370
- borderRadius: "0.25rem",
5371
- cursor: fiberStates.get(chunkR2Y4F7D7_cjs.getFiberId(fiber).toString())?.length ? "pointer" : "not-allowed",
5372
- padding: "0.25ch 0.5ch"
5373
- }
5374
- },
5375
- isPlaying ? "\u23F8" : "\u25B6\uFE0F"
5376
- ), /* @__PURE__ */ React17__default.default.createElement(
5377
- "button",
5378
- {
5379
- type: "button",
5380
- onClick: handleStepForward,
5381
- disabled: !fiberStates.get(chunkR2Y4F7D7_cjs.getFiberId(fiber).toString())?.length,
5382
- style: {
5383
- background: "transparent",
5384
- border: "1px solid #282828",
5385
- color: "#FFF",
5386
- borderRadius: "0.25rem",
5387
- cursor: fiberStates.get(chunkR2Y4F7D7_cjs.getFiberId(fiber).toString())?.length ? "pointer" : "not-allowed",
5388
- padding: "0.25ch 0.5ch"
5389
- }
5390
- },
5391
- "\u23ED"
5392
- ), /* @__PURE__ */ React17__default.default.createElement("span", { style: { color: "#A0A0A0", fontSize: "0.75rem" } }, timelineIndex >= 0 && fiberStates.get(chunkR2Y4F7D7_cjs.getFiberId(fiber).toString())?.[timelineIndex]?.timestamp ? new Date(fiberStates.get(chunkR2Y4F7D7_cjs.getFiberId(fiber).toString())?.[timelineIndex]?.timestamp ?? 0).toLocaleTimeString() : "--:--:--"), !fiberStates.get(chunkR2Y4F7D7_cjs.getFiberId(fiber).toString())?.length && /* @__PURE__ */ React17__default.default.createElement("span", { style: { color: "#A0A0A0", fontSize: "0.75rem", marginLeft: "auto" } }, "No state changes recorded yet")), /* @__PURE__ */ React17__default.default.createElement("div", { style: {
5393
- display: "flex",
5394
- alignItems: "center",
5395
- gap: "0.25ch",
5396
- height: "2ch",
5397
- position: "relative"
5398
- } }, (fiberStates.get(chunkR2Y4F7D7_cjs.getFiberId(fiber).toString()) ?? []).map((state, i) => {
5399
- const isActive = i === timelineIndex;
5400
- return /* @__PURE__ */ React17__default.default.createElement(
5283
+ }
5284
+ )
5285
+ )
5286
+ ),
5287
+ /* @__PURE__ */ React17__default.default.createElement("div", { style: { position: "relative", flex: 1 } }, /* @__PURE__ */ React17__default.default.createElement(
5288
+ "div",
5289
+ {
5290
+ style: {
5291
+ position: "absolute",
5292
+ inset: 0,
5293
+ display: activeTab === "graph" ? "block" : "none"
5294
+ }
5295
+ },
5296
+ /* @__PURE__ */ React17__default.default.createElement(
5297
+ Controls,
5298
+ {
5299
+ onZoomIn: handleZoomIn,
5300
+ onZoomOut: handleZoomOut,
5301
+ onReset: handleReset,
5302
+ onFit: handleFit
5303
+ }
5304
+ ),
5305
+ /* @__PURE__ */ React17__default.default.createElement(
5306
+ "svg",
5307
+ {
5308
+ ref: svgRef,
5309
+ viewBox: `0 0 ${svgWidth} ${svgHeight}`,
5310
+ xmlns: "http://www.w3.org/2000/svg",
5311
+ style: {
5312
+ width: "100%",
5313
+ height: "100%",
5314
+ background: "#101010",
5315
+ borderRadius: "0.25rem",
5316
+ cursor: "grab"
5317
+ },
5318
+ "aria-label": "Fiber Tree Visualization"
5319
+ },
5320
+ /* @__PURE__ */ React17__default.default.createElement("title", null, "Fiber Tree Visualization"),
5321
+ /* @__PURE__ */ React17__default.default.createElement("g", { ref: svgGroupRef }, /* @__PURE__ */ React17__default.default.createElement("g", { ref: linksGroupRef, className: "links" }), /* @__PURE__ */ React17__default.default.createElement("g", { ref: nodesGroupRef, className: "nodes" }))
5322
+ )
5323
+ ), /* @__PURE__ */ React17__default.default.createElement(
5401
5324
  "div",
5402
5325
  {
5403
- key: state.timestamp,
5404
- onClick: () => handleTimelineChange(i),
5405
- onKeyDown: (e) => {
5406
- if (e.key === "Enter" || e.key === " ") {
5407
- handleTimelineChange(i);
5326
+ style: {
5327
+ position: "absolute",
5328
+ inset: 0,
5329
+ display: activeTab === "fiber" ? "block" : "none",
5330
+ overflow: "auto",
5331
+ background: "#101010",
5332
+ borderRadius: "0.25rem",
5333
+ padding: "1ch"
5334
+ }
5335
+ },
5336
+ /* @__PURE__ */ React17__default.default.createElement(
5337
+ Inspector,
5338
+ {
5339
+ theme: theme3,
5340
+ data: fiber,
5341
+ expandLevel: 1,
5342
+ table: false,
5343
+ nodeRenderer: (props) => {
5344
+ const Component = props.depth === 0 ? ObjectRootLabel : ObjectLabel;
5345
+ return /* @__PURE__ */ React17__default.default.createElement(
5346
+ "span",
5347
+ {
5348
+ onMouseEnter: (e) => handlePropertyHover(e, props.name),
5349
+ onMouseLeave: handlePropertyLeave,
5350
+ style: {
5351
+ cursor: FIBER_PROP_EXPLANATIONS[props.name] ? "help" : "default",
5352
+ padding: "1px 0",
5353
+ display: "inline-block",
5354
+ fontWeight: FIBER_PROP_EXPLANATIONS[props.name] ? 500 : "normal"
5355
+ }
5356
+ },
5357
+ /* @__PURE__ */ React17__default.default.createElement(
5358
+ Component,
5359
+ {
5360
+ name: props.name,
5361
+ data: props.data,
5362
+ isNonenumerable: props.isNonenumerable
5363
+ }
5364
+ )
5365
+ );
5366
+ }
5367
+ }
5368
+ ),
5369
+ tooltip && /* @__PURE__ */ React17__default.default.createElement(
5370
+ "div",
5371
+ {
5372
+ style: {
5373
+ position: "absolute",
5374
+ zIndex: 1001,
5375
+ backgroundColor: "#161616",
5376
+ color: "#FFF",
5377
+ bottom: "2ch",
5378
+ right: "2ch",
5379
+ pointerEvents: "none",
5380
+ overflowY: "auto",
5381
+ padding: "1ch",
5382
+ fontSize: "1ch",
5383
+ border: "1px solid #282828",
5384
+ borderRadius: "0.25ch"
5408
5385
  }
5409
5386
  },
5410
- role: "button",
5411
- tabIndex: 0,
5387
+ tooltip
5388
+ )
5389
+ )),
5390
+ isDialogMode && /* @__PURE__ */ React17__default.default.createElement(
5391
+ "div",
5392
+ {
5412
5393
  style: {
5413
- flex: 1,
5414
- height: "100%",
5415
- background: isActive ? "#FFC799" : "#282828",
5416
- cursor: "pointer",
5417
- position: "relative",
5418
- borderRadius: "0.125rem",
5419
- transition: "background-color 150ms",
5420
- outline: "none"
5394
+ background: "#161616",
5395
+ padding: "1ch",
5396
+ margin: "1ch 1ch 0 1ch",
5397
+ borderRadius: "0.25rem",
5398
+ border: "1px solid #282828",
5399
+ display: "flex",
5400
+ flexDirection: "column",
5401
+ gap: "0.5ch",
5402
+ opacity: fiberStates.get(chunk4DXMRM7J_cjs.getFiberId(fiber).toString())?.length ? 1 : 0.5
5403
+ }
5404
+ },
5405
+ /* @__PURE__ */ React17__default.default.createElement(
5406
+ "div",
5407
+ {
5408
+ style: { display: "flex", alignItems: "center", gap: "0.5ch" }
5421
5409
  },
5422
- onMouseEnter: (e) => {
5423
- const target = e.currentTarget;
5424
- const tooltip2 = document.createElement("div");
5425
- tooltip2.style.position = "absolute";
5426
- tooltip2.style.bottom = "100%";
5427
- tooltip2.style.left = "50%";
5428
- tooltip2.style.transform = "translateX(-50%)";
5429
- tooltip2.style.background = "#161616";
5430
- tooltip2.style.color = "#FFF";
5431
- tooltip2.style.padding = "0.5ch";
5432
- tooltip2.style.borderRadius = "0.25rem";
5433
- tooltip2.style.fontSize = "0.75rem";
5434
- tooltip2.style.whiteSpace = "nowrap";
5435
- tooltip2.style.pointerEvents = "none";
5436
- tooltip2.style.border = "1px solid #282828";
5437
- tooltip2.style.zIndex = "1000";
5438
- const changes = [];
5439
- const states = fiberStates.get(chunkR2Y4F7D7_cjs.getFiberId(fiber).toString());
5440
- const prevState = i > 0 && states ? states[i - 1] : null;
5441
- if (prevState) {
5442
- const propChanges = Object.keys(state.props).filter(
5443
- (key) => state.props[key] !== prevState.props[key]
5444
- );
5445
- if (propChanges.length > 0) {
5446
- changes.push(`Props: ${propChanges.join(", ")}`);
5410
+ /* @__PURE__ */ React17__default.default.createElement(
5411
+ "button",
5412
+ {
5413
+ type: "button",
5414
+ onClick: handleStepBack,
5415
+ disabled: !fiberStates.get(chunk4DXMRM7J_cjs.getFiberId(fiber).toString())?.length,
5416
+ style: {
5417
+ background: "transparent",
5418
+ border: "1px solid #282828",
5419
+ color: "#FFF",
5420
+ borderRadius: "0.25rem",
5421
+ cursor: fiberStates.get(chunk4DXMRM7J_cjs.getFiberId(fiber).toString())?.length ? "pointer" : "not-allowed",
5422
+ padding: "0.25ch 0.5ch"
5447
5423
  }
5448
- const hookChanges = Object.keys(state.hookState).filter(
5449
- (key) => state.hookState[key] !== prevState.hookState[key]
5450
- );
5451
- if (hookChanges.length > 0) {
5452
- changes.push(`State: ${hookChanges.join(", ")}`);
5424
+ },
5425
+ "\u23EE"
5426
+ ),
5427
+ /* @__PURE__ */ React17__default.default.createElement(
5428
+ "button",
5429
+ {
5430
+ type: "button",
5431
+ onClick: handlePlayPause,
5432
+ disabled: !fiberStates.get(chunk4DXMRM7J_cjs.getFiberId(fiber).toString())?.length,
5433
+ style: {
5434
+ background: "transparent",
5435
+ border: "1px solid #282828",
5436
+ color: "#FFF",
5437
+ borderRadius: "0.25rem",
5438
+ cursor: fiberStates.get(chunk4DXMRM7J_cjs.getFiberId(fiber).toString())?.length ? "pointer" : "not-allowed",
5439
+ padding: "0.25ch 0.5ch"
5440
+ }
5441
+ },
5442
+ isPlaying ? "\u23F8" : "\u25B6\uFE0F"
5443
+ ),
5444
+ /* @__PURE__ */ React17__default.default.createElement(
5445
+ "button",
5446
+ {
5447
+ type: "button",
5448
+ onClick: handleStepForward,
5449
+ disabled: !fiberStates.get(chunk4DXMRM7J_cjs.getFiberId(fiber).toString())?.length,
5450
+ style: {
5451
+ background: "transparent",
5452
+ border: "1px solid #282828",
5453
+ color: "#FFF",
5454
+ borderRadius: "0.25rem",
5455
+ cursor: fiberStates.get(chunk4DXMRM7J_cjs.getFiberId(fiber).toString())?.length ? "pointer" : "not-allowed",
5456
+ padding: "0.25ch 0.5ch"
5453
5457
  }
5458
+ },
5459
+ "\u23ED"
5460
+ ),
5461
+ /* @__PURE__ */ React17__default.default.createElement("span", { style: { color: "#A0A0A0", fontSize: "0.75rem" } }, timelineIndex >= 0 && fiberStates.get(chunk4DXMRM7J_cjs.getFiberId(fiber).toString())?.[timelineIndex]?.timestamp ? new Date(
5462
+ fiberStates.get(chunk4DXMRM7J_cjs.getFiberId(fiber).toString())?.[timelineIndex]?.timestamp ?? 0
5463
+ ).toLocaleTimeString() : "--:--:--"),
5464
+ !fiberStates.get(chunk4DXMRM7J_cjs.getFiberId(fiber).toString())?.length && /* @__PURE__ */ React17__default.default.createElement(
5465
+ "span",
5466
+ {
5467
+ style: {
5468
+ color: "#A0A0A0",
5469
+ fontSize: "0.75rem",
5470
+ marginLeft: "auto"
5471
+ }
5472
+ },
5473
+ "No state changes recorded yet"
5474
+ )
5475
+ ),
5476
+ /* @__PURE__ */ React17__default.default.createElement(
5477
+ "div",
5478
+ {
5479
+ style: {
5480
+ display: "flex",
5481
+ alignItems: "center",
5482
+ gap: "0.25ch",
5483
+ height: "2ch",
5484
+ position: "relative"
5454
5485
  }
5455
- tooltip2.textContent = changes.length > 0 ? changes.join(" | ") : prevState ? "No changes" : "Initial state";
5456
- target.appendChild(tooltip2);
5457
5486
  },
5458
- onMouseLeave: (e) => {
5459
- const tooltip2 = e.currentTarget.querySelector("div");
5460
- if (tooltip2) {
5461
- tooltip2.remove();
5487
+ (fiberStates.get(chunk4DXMRM7J_cjs.getFiberId(fiber).toString()) ?? []).map(
5488
+ (state, i) => {
5489
+ const isActive = i === timelineIndex;
5490
+ return /* @__PURE__ */ React17__default.default.createElement(
5491
+ "div",
5492
+ {
5493
+ key: state.timestamp,
5494
+ onClick: () => handleTimelineChange(i),
5495
+ onKeyDown: (e) => {
5496
+ if (e.key === "Enter" || e.key === " ") {
5497
+ handleTimelineChange(i);
5498
+ }
5499
+ },
5500
+ role: "button",
5501
+ tabIndex: 0,
5502
+ style: {
5503
+ flex: 1,
5504
+ height: "100%",
5505
+ background: isActive ? "#FFC799" : "#282828",
5506
+ cursor: "pointer",
5507
+ position: "relative",
5508
+ borderRadius: "0.125rem",
5509
+ transition: "background-color 150ms",
5510
+ outline: "none"
5511
+ },
5512
+ onMouseEnter: (e) => {
5513
+ const target = e.currentTarget;
5514
+ const tooltip2 = document.createElement("div");
5515
+ tooltip2.style.position = "absolute";
5516
+ tooltip2.style.bottom = "100%";
5517
+ tooltip2.style.left = "50%";
5518
+ tooltip2.style.transform = "translateX(-50%)";
5519
+ tooltip2.style.background = "#161616";
5520
+ tooltip2.style.color = "#FFF";
5521
+ tooltip2.style.padding = "0.5ch";
5522
+ tooltip2.style.borderRadius = "0.25rem";
5523
+ tooltip2.style.fontSize = "0.75rem";
5524
+ tooltip2.style.whiteSpace = "nowrap";
5525
+ tooltip2.style.pointerEvents = "none";
5526
+ tooltip2.style.border = "1px solid #282828";
5527
+ tooltip2.style.zIndex = "1000";
5528
+ const changes = [];
5529
+ const states = fiberStates.get(
5530
+ chunk4DXMRM7J_cjs.getFiberId(fiber).toString()
5531
+ );
5532
+ const prevState = i > 0 && states ? states[i - 1] : null;
5533
+ if (prevState) {
5534
+ const propChanges = Object.keys(state.props).filter(
5535
+ (key) => state.props[key] !== prevState.props[key]
5536
+ );
5537
+ if (propChanges.length > 0) {
5538
+ changes.push(`Props: ${propChanges.join(", ")}`);
5539
+ }
5540
+ const hookChanges = Object.keys(
5541
+ state.hookState
5542
+ ).filter(
5543
+ (key) => state.hookState[key] !== prevState.hookState[key]
5544
+ );
5545
+ if (hookChanges.length > 0) {
5546
+ changes.push(`State: ${hookChanges.join(", ")}`);
5547
+ }
5548
+ }
5549
+ tooltip2.textContent = changes.length > 0 ? changes.join(" | ") : prevState ? "No changes" : "Initial state";
5550
+ target.appendChild(tooltip2);
5551
+ },
5552
+ onMouseLeave: (e) => {
5553
+ const tooltip2 = e.currentTarget.querySelector("div");
5554
+ if (tooltip2) {
5555
+ tooltip2.remove();
5556
+ }
5557
+ }
5558
+ }
5559
+ );
5560
+ }
5561
+ ),
5562
+ !fiberStates.get(chunk4DXMRM7J_cjs.getFiberId(fiber).toString())?.length && /* @__PURE__ */ React17__default.default.createElement(
5563
+ "div",
5564
+ {
5565
+ style: {
5566
+ flex: 1,
5567
+ height: "100%",
5568
+ background: "#282828",
5569
+ borderRadius: "0.125rem",
5570
+ opacity: 0.5
5571
+ }
5572
+ }
5573
+ )
5574
+ ),
5575
+ /* @__PURE__ */ React17__default.default.createElement(
5576
+ "input",
5577
+ {
5578
+ type: "range",
5579
+ min: 0,
5580
+ max: (fiberStates.get(chunk4DXMRM7J_cjs.getFiberId(fiber).toString())?.length ?? 1) - 1,
5581
+ value: timelineIndex,
5582
+ onChange: (e) => handleTimelineChange(Number(e.target.value)),
5583
+ disabled: !fiberStates.get(chunk4DXMRM7J_cjs.getFiberId(fiber).toString())?.length,
5584
+ style: {
5585
+ width: "100%",
5586
+ accentColor: "#FFC799",
5587
+ opacity: fiberStates.get(chunk4DXMRM7J_cjs.getFiberId(fiber).toString())?.length ? 1 : 0.5
5462
5588
  }
5463
5589
  }
5464
- }
5465
- );
5466
- }), !fiberStates.get(chunkR2Y4F7D7_cjs.getFiberId(fiber).toString())?.length && /* @__PURE__ */ React17__default.default.createElement("div", { style: {
5467
- flex: 1,
5468
- height: "100%",
5469
- background: "#282828",
5470
- borderRadius: "0.125rem",
5471
- opacity: 0.5
5472
- } })), /* @__PURE__ */ React17__default.default.createElement(
5473
- "input",
5474
- {
5475
- type: "range",
5476
- min: 0,
5477
- max: (fiberStates.get(chunkR2Y4F7D7_cjs.getFiberId(fiber).toString())?.length ?? 1) - 1,
5478
- value: timelineIndex,
5479
- onChange: (e) => handleTimelineChange(Number(e.target.value)),
5480
- disabled: !fiberStates.get(chunkR2Y4F7D7_cjs.getFiberId(fiber).toString())?.length,
5481
- style: {
5482
- width: "100%",
5483
- accentColor: "#FFC799",
5484
- opacity: fiberStates.get(chunkR2Y4F7D7_cjs.getFiberId(fiber).toString())?.length ? 1 : 0.5
5485
- }
5486
- }
5487
- )));
5590
+ )
5591
+ )
5592
+ );
5488
5593
  }
5489
5594
  );
5490
5595
  var Inspector2 = React17__default.default.memo(
@@ -5502,22 +5607,16 @@ var Inspector2 = React17__default.default.memo(
5502
5607
  const [fiberHistory, setFiberHistory] = React17.useState([]);
5503
5608
  const getFiberForDisplay = React17.useCallback(() => {
5504
5609
  if (selectedFiber) return selectedFiber;
5505
- const fiber2 = chunkR2Y4F7D7_cjs.getFiberFromHostInstance(element);
5610
+ const fiber2 = chunk4DXMRM7J_cjs.getFiberFromHostInstance(element);
5506
5611
  return fiber2;
5507
5612
  }, [selectedFiber, element]);
5508
- const handleFiberSelect = (fiber2) => {
5509
- if (fiber2 !== selectedFiber) {
5510
- if (!isDialogMode) {
5511
- const currentFiber = getFiberForDisplay();
5512
- if (currentFiber) {
5513
- setFiberHistory([currentFiber]);
5514
- }
5515
- setIsDialogMode(true);
5516
- } else if (selectedFiber) {
5517
- setFiberHistory((prev) => [...prev, selectedFiber]);
5518
- }
5519
- setSelectedFiber(fiber2);
5520
- }
5613
+ const handlePropertyHover = (_e, propName) => {
5614
+ if (!isDialogMode) return;
5615
+ const explanation = FIBER_PROP_EXPLANATIONS[propName];
5616
+ setTooltip(explanation || null);
5617
+ };
5618
+ const handlePropertyLeave = () => {
5619
+ setTooltip(null);
5521
5620
  };
5522
5621
  const handleClose = React17.useCallback(() => {
5523
5622
  setIsDialogMode(false);
@@ -5555,15 +5654,15 @@ var Inspector2 = React17__default.default.memo(
5555
5654
  React17.useEffect(() => {
5556
5655
  const handleMouseMove = (event) => {
5557
5656
  if (isDialogMode) return;
5558
- const isActive2 = chunkR2Y4F7D7_cjs.isInstrumentationActive() || chunkR2Y4F7D7_cjs.hasRDTHook();
5657
+ const isActive2 = chunk4DXMRM7J_cjs.isInstrumentationActive() || chunk4DXMRM7J_cjs.hasRDTHook();
5559
5658
  if (!isActive2) {
5560
5659
  setIsActive(false);
5561
5660
  return;
5562
5661
  }
5563
5662
  if (!dangerouslyRunInProduction) {
5564
- const rdtHook = chunkR2Y4F7D7_cjs.getRDTHook();
5663
+ const rdtHook = chunk4DXMRM7J_cjs.getRDTHook();
5565
5664
  for (const renderer of rdtHook.renderers.values()) {
5566
- const buildType = chunkR2Y4F7D7_cjs.detectReactBuildType(renderer);
5665
+ const buildType = chunk4DXMRM7J_cjs.detectReactBuildType(renderer);
5567
5666
  if (buildType === "production") {
5568
5667
  setIsActive(false);
5569
5668
  return;
@@ -5624,7 +5723,7 @@ var Inspector2 = React17__default.default.memo(
5624
5723
  }, [rect]);
5625
5724
  React17.useEffect(() => {
5626
5725
  if (selectedFiber) {
5627
- const element2 = chunkR2Y4F7D7_cjs.getNearestHostFiber(selectedFiber)?.stateNode;
5726
+ const element2 = chunk4DXMRM7J_cjs.getNearestHostFiber(selectedFiber)?.stateNode;
5628
5727
  if (element2) {
5629
5728
  setElement(element2);
5630
5729
  setRect(element2.getBoundingClientRect());
@@ -5642,7 +5741,7 @@ var Inspector2 = React17__default.default.memo(
5642
5741
  const fiber = getFiberForDisplay();
5643
5742
  if (!fiber) return null;
5644
5743
  let foundInspect = false;
5645
- chunkR2Y4F7D7_cjs.traverseFiber(
5744
+ chunk4DXMRM7J_cjs.traverseFiber(
5646
5745
  fiber,
5647
5746
  (innerFiber) => {
5648
5747
  if (innerFiber.type === Inspector2) {
@@ -5677,7 +5776,7 @@ var Inspector2 = React17__default.default.memo(
5677
5776
  backgroundColor: "rgba(0, 0, 0, 0.7)",
5678
5777
  zIndex: 999
5679
5778
  } : {};
5680
- const fiberStack = fiber ? chunkR2Y4F7D7_cjs.getFiberStack(fiber) : [];
5779
+ const fiberStack = fiber ? chunk4DXMRM7J_cjs.getFiberStack(fiber) : [];
5681
5780
  return /* @__PURE__ */ React17__default.default.createElement(React17__default.default.Fragment, null, isDialogMode && /* @__PURE__ */ React17__default.default.createElement(
5682
5781
  "div",
5683
5782
  {
@@ -5738,7 +5837,7 @@ var Inspector2 = React17__default.default.memo(
5738
5837
  margin: 0
5739
5838
  }
5740
5839
  },
5741
- `<${typeof fiber.type === "string" ? fiber.type : chunkR2Y4F7D7_cjs.getDisplayName(fiber.type) || "unknown"}>`,
5840
+ `<${typeof fiber.type === "string" ? fiber.type : chunk4DXMRM7J_cjs.getDisplayName(fiber.type) || "unknown"}>`,
5742
5841
  !isDialogMode && /* @__PURE__ */ React17__default.default.createElement(
5743
5842
  "span",
5744
5843
  {
@@ -5767,9 +5866,9 @@ var Inspector2 = React17__default.default.memo(
5767
5866
  }
5768
5867
  },
5769
5868
  fiberStack.reverse().map((f, i, arr) => {
5770
- const name = typeof f.type === "string" ? f.type : chunkR2Y4F7D7_cjs.getDisplayName(f.type) || "unknown";
5869
+ const name = typeof f.type === "string" ? f.type : chunk4DXMRM7J_cjs.getDisplayName(f.type) || "unknown";
5771
5870
  if (!name) return null;
5772
- return /* @__PURE__ */ React17__default.default.createElement(React17__default.default.Fragment, { key: chunkR2Y4F7D7_cjs.getFiberId(f) }, /* @__PURE__ */ React17__default.default.createElement(
5871
+ return /* @__PURE__ */ React17__default.default.createElement(React17__default.default.Fragment, { key: chunk4DXMRM7J_cjs.getFiberId(f) }, /* @__PURE__ */ React17__default.default.createElement(
5773
5872
  BreadcrumbButton,
5774
5873
  {
5775
5874
  name,
@@ -5778,7 +5877,7 @@ var Inspector2 = React17__default.default.memo(
5778
5877
  setFiberHistory((prev) => [...prev, selectedFiber]);
5779
5878
  }
5780
5879
  setSelectedFiber(f);
5781
- const element2 = chunkR2Y4F7D7_cjs.getNearestHostFiber(f)?.stateNode;
5880
+ const element2 = chunk4DXMRM7J_cjs.getNearestHostFiber(f)?.stateNode;
5782
5881
  if (element2) {
5783
5882
  setElement(element2);
5784
5883
  setRect(element2.getBoundingClientRect());
@@ -5790,7 +5889,7 @@ var Inspector2 = React17__default.default.memo(
5790
5889
  setFiberHistory((prev) => [...prev, selectedFiber]);
5791
5890
  }
5792
5891
  setSelectedFiber(f);
5793
- const element2 = chunkR2Y4F7D7_cjs.getNearestHostFiber(f)?.stateNode;
5892
+ const element2 = chunk4DXMRM7J_cjs.getNearestHostFiber(f)?.stateNode;
5794
5893
  if (element2) {
5795
5894
  setElement(element2);
5796
5895
  setRect(element2.getBoundingClientRect());
@@ -5801,15 +5900,39 @@ var Inspector2 = React17__default.default.memo(
5801
5900
  ), i < arr.length - 1 && " > ");
5802
5901
  })
5803
5902
  ),
5804
- fiber && /* @__PURE__ */ React17__default.default.createElement(
5805
- FiberGraph,
5903
+ /* @__PURE__ */ React17__default.default.createElement("div", { style: { flex: 1, overflow: "auto" } }, fiber && /* @__PURE__ */ React17__default.default.createElement(
5904
+ Inspector,
5806
5905
  {
5807
- key: chunkR2Y4F7D7_cjs.getFiberId(fiber),
5808
- fiber,
5809
- onFiberSelect: handleFiberSelect,
5810
- isDialogMode
5906
+ theme: theme3,
5907
+ data: fiber,
5908
+ expandLevel: 1,
5909
+ table: false,
5910
+ nodeRenderer: (props) => {
5911
+ const Component = props.depth === 0 ? ObjectRootLabel : ObjectLabel;
5912
+ return /* @__PURE__ */ React17__default.default.createElement(
5913
+ "span",
5914
+ {
5915
+ onMouseEnter: (e) => handlePropertyHover(e, props.name),
5916
+ onMouseLeave: handlePropertyLeave,
5917
+ style: {
5918
+ cursor: FIBER_PROP_EXPLANATIONS[props.name] ? "help" : "default",
5919
+ padding: "1px 0",
5920
+ display: "inline-block",
5921
+ fontWeight: FIBER_PROP_EXPLANATIONS[props.name] ? 500 : "normal"
5922
+ }
5923
+ },
5924
+ /* @__PURE__ */ React17__default.default.createElement(
5925
+ Component,
5926
+ {
5927
+ name: props.name,
5928
+ data: props.data,
5929
+ isNonenumerable: props.isNonenumerable
5930
+ }
5931
+ )
5932
+ );
5933
+ }
5811
5934
  }
5812
- ),
5935
+ )),
5813
5936
  tooltip && /* @__PURE__ */ React17__default.default.createElement(
5814
5937
  "div",
5815
5938
  {