bippy 0.3.3 → 0.3.4

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.
@@ -1,7 +1,8 @@
1
- import '../chunk-JNRY4VHI.js';
2
- import { getFiberFromHostInstance, getNearestHostFiber, traverseFiber, getFiberStack, getDisplayName, getFiberId, isInstrumentationActive, hasRDTHook, getRDTHook, detectReactBuildType } from '../chunk-HISEFTVK.js';
1
+ import { getFiberSource } from '../chunk-IXOVE6NU.js';
2
+ import '../chunk-XG3B2MUK.js';
3
+ import { getFiberFromHostInstance, getLatestFiber, getDisplayName, isInstrumentationActive, hasRDTHook, getRDTHook, detectReactBuildType } from '../chunk-W6TIDV6X.js';
3
4
  import '../chunk-EPG3GO3H.js';
4
- import React17, { createContext, memo, Children, useContext, useCallback, useState, useLayoutEffect, useEffect, useMemo } from 'react';
5
+ import React14, { createContext, memo, Children, useContext, useCallback, useState, useLayoutEffect, forwardRef, useMemo, useEffect, useImperativeHandle as useImperativeHandle$1 } from 'react';
5
6
  import ReactDOM from 'react-dom';
6
7
 
7
8
  /**
@@ -431,15 +432,15 @@ var themeAcceptor = (WrappedComponent) => {
431
432
  return createTheme(themes_exports[DEFAULT_THEME_NAME]);
432
433
  }
433
434
  }, [theme32]);
434
- return /* @__PURE__ */ React17.createElement(ThemeContext.Provider, {
435
+ return /* @__PURE__ */ React14.createElement(ThemeContext.Provider, {
435
436
  value: themeStyles
436
- }, /* @__PURE__ */ React17.createElement(WrappedComponent, {
437
+ }, /* @__PURE__ */ React14.createElement(WrappedComponent, {
437
438
  ...restProps
438
439
  }));
439
440
  };
440
441
  return ThemeAcceptor;
441
442
  };
442
- var Arrow = ({ expanded, styles }) => /* @__PURE__ */ React17.createElement("span", {
443
+ var Arrow = ({ expanded, styles }) => /* @__PURE__ */ React14.createElement("span", {
443
444
  style: {
444
445
  ...styles.base,
445
446
  ...expanded ? styles.expanded : styles.collapsed
@@ -448,7 +449,7 @@ var Arrow = ({ expanded, styles }) => /* @__PURE__ */ React17.createElement("spa
448
449
  var TreeNode = memo((props) => {
449
450
  props = {
450
451
  expanded: true,
451
- nodeRenderer: ({ name }) => /* @__PURE__ */ React17.createElement("span", null, name),
452
+ nodeRenderer: ({ name }) => /* @__PURE__ */ React14.createElement("span", null, name),
452
453
  onClick: () => {
453
454
  },
454
455
  shouldShowArrow: false,
@@ -458,22 +459,22 @@ var TreeNode = memo((props) => {
458
459
  const { expanded, onClick, children, nodeRenderer, title, shouldShowArrow, shouldShowPlaceholder } = props;
459
460
  const styles = useStyles("TreeNode");
460
461
  const NodeRenderer = nodeRenderer;
461
- return /* @__PURE__ */ React17.createElement("li", {
462
+ return /* @__PURE__ */ React14.createElement("li", {
462
463
  "aria-expanded": expanded,
463
464
  role: "treeitem",
464
465
  style: styles.treeNodeBase,
465
466
  title
466
- }, /* @__PURE__ */ React17.createElement("div", {
467
+ }, /* @__PURE__ */ React14.createElement("div", {
467
468
  style: styles.treeNodePreviewContainer,
468
469
  onClick
469
- }, shouldShowArrow || Children.count(children) > 0 ? /* @__PURE__ */ React17.createElement(Arrow, {
470
+ }, shouldShowArrow || Children.count(children) > 0 ? /* @__PURE__ */ React14.createElement(Arrow, {
470
471
  expanded,
471
472
  styles: styles.treeNodeArrow
472
- }) : shouldShowPlaceholder && /* @__PURE__ */ React17.createElement("span", {
473
+ }) : shouldShowPlaceholder && /* @__PURE__ */ React14.createElement("span", {
473
474
  style: styles.treeNodePlaceholder
474
- }, "\xA0"), /* @__PURE__ */ React17.createElement(NodeRenderer, {
475
+ }, "\xA0"), /* @__PURE__ */ React14.createElement(NodeRenderer, {
475
476
  ...props
476
- })), /* @__PURE__ */ React17.createElement("ol", {
477
+ })), /* @__PURE__ */ React14.createElement("ol", {
477
478
  role: "group",
478
479
  style: styles.treeNodeChildNodesContainer
479
480
  }, expanded ? children : void 0));
@@ -532,7 +533,7 @@ var ConnectedTreeNode = memo((props) => {
532
533
  ...prevExpandedPaths,
533
534
  [path]: !expanded
534
535
  })), [nodeHasChildNodes, setExpandedPaths, path, expanded]);
535
- return /* @__PURE__ */ React17.createElement(TreeNode, {
536
+ return /* @__PURE__ */ React14.createElement(TreeNode, {
536
537
  expanded,
537
538
  onClick: handleClick,
538
539
  shouldShowArrow: nodeHasChildNodes,
@@ -540,7 +541,7 @@ var ConnectedTreeNode = memo((props) => {
540
541
  nodeRenderer,
541
542
  ...props
542
543
  }, expanded ? [...dataIterator(data)].map(({ name, data: data2, ...renderNodeProps }) => {
543
- return /* @__PURE__ */ React17.createElement(ConnectedTreeNode, {
544
+ return /* @__PURE__ */ React14.createElement(ConnectedTreeNode, {
544
545
  name,
545
546
  data: data2,
546
547
  depth: depth + 1,
@@ -557,12 +558,12 @@ var TreeView = memo(({ name, data, dataIterator, nodeRenderer, expandPaths, expa
557
558
  const stateAndSetter = useState({});
558
559
  const [, setExpandedPaths] = stateAndSetter;
559
560
  useLayoutEffect(() => setExpandedPaths((prevExpandedPaths) => getExpandedPaths(data, dataIterator, expandPaths, expandLevel, prevExpandedPaths)), [data, dataIterator, expandPaths, expandLevel]);
560
- return /* @__PURE__ */ React17.createElement(ExpandedPathsContext.Provider, {
561
+ return /* @__PURE__ */ React14.createElement(ExpandedPathsContext.Provider, {
561
562
  value: stateAndSetter
562
- }, /* @__PURE__ */ React17.createElement("ol", {
563
+ }, /* @__PURE__ */ React14.createElement("ol", {
563
564
  role: "tree",
564
565
  style: styles.treeViewOutline
565
- }, /* @__PURE__ */ React17.createElement(ConnectedTreeNode, {
566
+ }, /* @__PURE__ */ React14.createElement(ConnectedTreeNode, {
566
567
  name,
567
568
  data,
568
569
  dataIterator,
@@ -578,7 +579,7 @@ var ObjectName = ({ name, dimmed = false, styles = {} }) => {
578
579
  ...dimmed ? themeStyles["dimmed"] : {},
579
580
  ...styles
580
581
  };
581
- return /* @__PURE__ */ React17.createElement("span", {
582
+ return /* @__PURE__ */ React14.createElement("span", {
582
583
  style: appliedStyles
583
584
  }, name);
584
585
  };
@@ -587,61 +588,61 @@ var ObjectValue = ({ object, styles }) => {
587
588
  const mkStyle = (key) => ({ ...themeStyles[key], ...styles });
588
589
  switch (typeof object) {
589
590
  case "bigint":
590
- return /* @__PURE__ */ React17.createElement("span", {
591
+ return /* @__PURE__ */ React14.createElement("span", {
591
592
  style: mkStyle("objectValueNumber")
592
593
  }, String(object), "n");
593
594
  case "number":
594
- return /* @__PURE__ */ React17.createElement("span", {
595
+ return /* @__PURE__ */ React14.createElement("span", {
595
596
  style: mkStyle("objectValueNumber")
596
597
  }, String(object));
597
598
  case "string":
598
- return /* @__PURE__ */ React17.createElement("span", {
599
+ return /* @__PURE__ */ React14.createElement("span", {
599
600
  style: mkStyle("objectValueString")
600
601
  }, '"', object, '"');
601
602
  case "boolean":
602
- return /* @__PURE__ */ React17.createElement("span", {
603
+ return /* @__PURE__ */ React14.createElement("span", {
603
604
  style: mkStyle("objectValueBoolean")
604
605
  }, String(object));
605
606
  case "undefined":
606
- return /* @__PURE__ */ React17.createElement("span", {
607
+ return /* @__PURE__ */ React14.createElement("span", {
607
608
  style: mkStyle("objectValueUndefined")
608
609
  }, "undefined");
609
610
  case "object":
610
611
  if (object === null) {
611
- return /* @__PURE__ */ React17.createElement("span", {
612
+ return /* @__PURE__ */ React14.createElement("span", {
612
613
  style: mkStyle("objectValueNull")
613
614
  }, "null");
614
615
  }
615
616
  if (object instanceof Date) {
616
- return /* @__PURE__ */ React17.createElement("span", null, object.toString());
617
+ return /* @__PURE__ */ React14.createElement("span", null, object.toString());
617
618
  }
618
619
  if (object instanceof RegExp) {
619
- return /* @__PURE__ */ React17.createElement("span", {
620
+ return /* @__PURE__ */ React14.createElement("span", {
620
621
  style: mkStyle("objectValueRegExp")
621
622
  }, object.toString());
622
623
  }
623
624
  if (Array.isArray(object)) {
624
- return /* @__PURE__ */ React17.createElement("span", null, `Array(${object.length})`);
625
+ return /* @__PURE__ */ React14.createElement("span", null, `Array(${object.length})`);
625
626
  }
626
627
  if (!object.constructor) {
627
- return /* @__PURE__ */ React17.createElement("span", null, "Object");
628
+ return /* @__PURE__ */ React14.createElement("span", null, "Object");
628
629
  }
629
630
  if (typeof object.constructor.isBuffer === "function" && object.constructor.isBuffer(object)) {
630
- return /* @__PURE__ */ React17.createElement("span", null, `Buffer[${object.length}]`);
631
+ return /* @__PURE__ */ React14.createElement("span", null, `Buffer[${object.length}]`);
631
632
  }
632
- return /* @__PURE__ */ React17.createElement("span", null, object.constructor.name);
633
+ return /* @__PURE__ */ React14.createElement("span", null, object.constructor.name);
633
634
  case "function":
634
- return /* @__PURE__ */ React17.createElement("span", null, /* @__PURE__ */ React17.createElement("span", {
635
+ return /* @__PURE__ */ React14.createElement("span", null, /* @__PURE__ */ React14.createElement("span", {
635
636
  style: mkStyle("objectValueFunctionPrefix")
636
- }, "\u0192\xA0"), /* @__PURE__ */ React17.createElement("span", {
637
+ }, "\u0192\xA0"), /* @__PURE__ */ React14.createElement("span", {
637
638
  style: mkStyle("objectValueFunctionName")
638
639
  }, object.name, "()"));
639
640
  case "symbol":
640
- return /* @__PURE__ */ React17.createElement("span", {
641
+ return /* @__PURE__ */ React14.createElement("span", {
641
642
  style: mkStyle("objectValueSymbol")
642
643
  }, object.toString());
643
644
  default:
644
- return /* @__PURE__ */ React17.createElement("span", null);
645
+ return /* @__PURE__ */ React14.createElement("span", null);
645
646
  }
646
647
  };
647
648
  var hasOwnProperty = Object.prototype.hasOwnProperty;
@@ -667,25 +668,25 @@ var ObjectPreview = ({ data }) => {
667
668
  const styles = useStyles("ObjectPreview");
668
669
  const object = data;
669
670
  if (typeof object !== "object" || object === null || object instanceof Date || object instanceof RegExp) {
670
- return /* @__PURE__ */ React17.createElement(ObjectValue, {
671
+ return /* @__PURE__ */ React14.createElement(ObjectValue, {
671
672
  object
672
673
  });
673
674
  }
674
675
  if (Array.isArray(object)) {
675
676
  const maxProperties = styles.arrayMaxProperties;
676
- const previewArray = object.slice(0, maxProperties).map((element, index) => /* @__PURE__ */ React17.createElement(ObjectValue, {
677
+ const previewArray = object.slice(0, maxProperties).map((element, index) => /* @__PURE__ */ React14.createElement(ObjectValue, {
677
678
  key: index,
678
679
  object: element
679
680
  }));
680
681
  if (object.length > maxProperties) {
681
- previewArray.push(/* @__PURE__ */ React17.createElement("span", {
682
+ previewArray.push(/* @__PURE__ */ React14.createElement("span", {
682
683
  key: "ellipsis"
683
684
  }, "\u2026"));
684
685
  }
685
686
  const arrayLength = object.length;
686
- return /* @__PURE__ */ React17.createElement(React17.Fragment, null, /* @__PURE__ */ React17.createElement("span", {
687
+ return /* @__PURE__ */ React14.createElement(React14.Fragment, null, /* @__PURE__ */ React14.createElement("span", {
687
688
  style: styles.objectDescription
688
- }, arrayLength === 0 ? `` : `(${arrayLength})\xA0`), /* @__PURE__ */ React17.createElement("span", {
689
+ }, arrayLength === 0 ? `` : `(${arrayLength})\xA0`), /* @__PURE__ */ React14.createElement("span", {
689
690
  style: styles.preview
690
691
  }, "[", intersperse(previewArray, ", "), "]"));
691
692
  } else {
@@ -695,16 +696,16 @@ var ObjectPreview = ({ data }) => {
695
696
  if (hasOwnProperty.call(object, propertyName)) {
696
697
  let ellipsis;
697
698
  if (propertyNodes.length === maxProperties - 1 && Object.keys(object).length > maxProperties) {
698
- ellipsis = /* @__PURE__ */ React17.createElement("span", {
699
+ ellipsis = /* @__PURE__ */ React14.createElement("span", {
699
700
  key: "ellipsis"
700
701
  }, "\u2026");
701
702
  }
702
703
  const propertyValue = getPropertyValue(object, propertyName);
703
- propertyNodes.push(/* @__PURE__ */ React17.createElement("span", {
704
+ propertyNodes.push(/* @__PURE__ */ React14.createElement("span", {
704
705
  key: propertyName
705
- }, /* @__PURE__ */ React17.createElement(ObjectName, {
706
+ }, /* @__PURE__ */ React14.createElement(ObjectName, {
706
707
  name: propertyName || `""`
707
- }), ":\xA0", /* @__PURE__ */ React17.createElement(ObjectValue, {
708
+ }), ":\xA0", /* @__PURE__ */ React14.createElement(ObjectValue, {
708
709
  object: propertyValue
709
710
  }), ellipsis));
710
711
  if (ellipsis)
@@ -712,34 +713,34 @@ var ObjectPreview = ({ data }) => {
712
713
  }
713
714
  }
714
715
  const objectConstructorName = object.constructor ? object.constructor.name : "Object";
715
- return /* @__PURE__ */ React17.createElement(React17.Fragment, null, /* @__PURE__ */ React17.createElement("span", {
716
+ return /* @__PURE__ */ React14.createElement(React14.Fragment, null, /* @__PURE__ */ React14.createElement("span", {
716
717
  style: styles.objectDescription
717
- }, objectConstructorName === "Object" ? "" : `${objectConstructorName} `), /* @__PURE__ */ React17.createElement("span", {
718
+ }, objectConstructorName === "Object" ? "" : `${objectConstructorName} `), /* @__PURE__ */ React14.createElement("span", {
718
719
  style: styles.preview
719
720
  }, "{", intersperse(propertyNodes, ", "), "}"));
720
721
  }
721
722
  };
722
723
  var ObjectRootLabel = ({ name, data }) => {
723
724
  if (typeof name === "string") {
724
- return /* @__PURE__ */ React17.createElement("span", null, /* @__PURE__ */ React17.createElement(ObjectName, {
725
+ return /* @__PURE__ */ React14.createElement("span", null, /* @__PURE__ */ React14.createElement(ObjectName, {
725
726
  name
726
- }), /* @__PURE__ */ React17.createElement("span", null, ": "), /* @__PURE__ */ React17.createElement(ObjectPreview, {
727
+ }), /* @__PURE__ */ React14.createElement("span", null, ": "), /* @__PURE__ */ React14.createElement(ObjectPreview, {
727
728
  data
728
729
  }));
729
730
  } else {
730
- return /* @__PURE__ */ React17.createElement(ObjectPreview, {
731
+ return /* @__PURE__ */ React14.createElement(ObjectPreview, {
731
732
  data
732
733
  });
733
734
  }
734
735
  };
735
736
  var ObjectLabel = ({ name, data, isNonenumerable = false }) => {
736
737
  const object = data;
737
- return /* @__PURE__ */ React17.createElement("span", null, typeof name === "string" ? /* @__PURE__ */ React17.createElement(ObjectName, {
738
+ return /* @__PURE__ */ React14.createElement("span", null, typeof name === "string" ? /* @__PURE__ */ React14.createElement(ObjectName, {
738
739
  name,
739
740
  dimmed: isNonenumerable
740
- }) : /* @__PURE__ */ React17.createElement(ObjectPreview, {
741
+ }) : /* @__PURE__ */ React14.createElement(ObjectPreview, {
741
742
  data: name
742
- }), /* @__PURE__ */ React17.createElement("span", null, ": "), /* @__PURE__ */ React17.createElement(ObjectValue, {
743
+ }), /* @__PURE__ */ React14.createElement("span", null, ": "), /* @__PURE__ */ React14.createElement(ObjectValue, {
743
744
  object
744
745
  }));
745
746
  };
@@ -806,10 +807,10 @@ var createIterator = (showNonenumerable, sortObjectKeys) => {
806
807
  };
807
808
  return objectIterator;
808
809
  };
809
- var defaultNodeRenderer = ({ depth, name, data, isNonenumerable }) => depth === 0 ? /* @__PURE__ */ React17.createElement(ObjectRootLabel, {
810
+ var defaultNodeRenderer = ({ depth, name, data, isNonenumerable }) => depth === 0 ? /* @__PURE__ */ React14.createElement(ObjectRootLabel, {
810
811
  name,
811
812
  data
812
- }) : /* @__PURE__ */ React17.createElement(ObjectLabel, {
813
+ }) : /* @__PURE__ */ React14.createElement(ObjectLabel, {
813
814
  name,
814
815
  data,
815
816
  isNonenumerable
@@ -817,7 +818,7 @@ var defaultNodeRenderer = ({ depth, name, data, isNonenumerable }) => depth ===
817
818
  var ObjectInspector = ({ showNonenumerable = false, sortObjectKeys, nodeRenderer, ...treeViewProps }) => {
818
819
  const dataIterator = createIterator(showNonenumerable, sortObjectKeys);
819
820
  const renderer = nodeRenderer ? nodeRenderer : defaultNodeRenderer;
820
- return /* @__PURE__ */ React17.createElement(TreeView, {
821
+ return /* @__PURE__ */ React14.createElement(TreeView, {
821
822
  nodeRenderer: renderer,
822
823
  dataIterator,
823
824
  ...treeViewProps
@@ -856,33 +857,33 @@ function getHeaders(data) {
856
857
  var DataContainer = ({ rows, columns, rowsData }) => {
857
858
  const styles = useStyles("TableInspectorDataContainer");
858
859
  const borderStyles = useStyles("TableInspectorLeftBorder");
859
- return /* @__PURE__ */ React17.createElement("div", {
860
+ return /* @__PURE__ */ React14.createElement("div", {
860
861
  style: styles.div
861
- }, /* @__PURE__ */ React17.createElement("table", {
862
+ }, /* @__PURE__ */ React14.createElement("table", {
862
863
  style: styles.table
863
- }, /* @__PURE__ */ React17.createElement("colgroup", null), /* @__PURE__ */ React17.createElement("tbody", null, rows.map((row, i) => /* @__PURE__ */ React17.createElement("tr", {
864
+ }, /* @__PURE__ */ React14.createElement("colgroup", null), /* @__PURE__ */ React14.createElement("tbody", null, rows.map((row, i) => /* @__PURE__ */ React14.createElement("tr", {
864
865
  key: row,
865
866
  style: styles.tr
866
- }, /* @__PURE__ */ React17.createElement("td", {
867
+ }, /* @__PURE__ */ React14.createElement("td", {
867
868
  style: { ...styles.td, ...borderStyles.none }
868
869
  }, row), columns.map((column) => {
869
870
  const rowData = rowsData[i];
870
871
  if (typeof rowData === "object" && rowData !== null && hasOwnProperty.call(rowData, column)) {
871
- return /* @__PURE__ */ React17.createElement("td", {
872
+ return /* @__PURE__ */ React14.createElement("td", {
872
873
  key: column,
873
874
  style: { ...styles.td, ...borderStyles.solid }
874
- }, /* @__PURE__ */ React17.createElement(ObjectValue, {
875
+ }, /* @__PURE__ */ React14.createElement(ObjectValue, {
875
876
  object: rowData[column]
876
877
  }));
877
878
  } else {
878
- return /* @__PURE__ */ React17.createElement("td", {
879
+ return /* @__PURE__ */ React14.createElement("td", {
879
880
  key: column,
880
881
  style: { ...styles.td, ...borderStyles.solid }
881
882
  });
882
883
  }
883
884
  }))))));
884
885
  };
885
- var SortIconContainer = (props) => /* @__PURE__ */ React17.createElement("div", {
886
+ var SortIconContainer = (props) => /* @__PURE__ */ React14.createElement("div", {
886
887
  style: {
887
888
  position: "absolute",
888
889
  top: 1,
@@ -895,7 +896,7 @@ var SortIconContainer = (props) => /* @__PURE__ */ React17.createElement("div",
895
896
  var SortIcon = ({ sortAscending }) => {
896
897
  const styles = useStyles("TableInspectorSortIcon");
897
898
  const glyph = sortAscending ? "\u25B2" : "\u25BC";
898
- return /* @__PURE__ */ React17.createElement("div", {
899
+ return /* @__PURE__ */ React14.createElement("div", {
899
900
  style: styles
900
901
  }, glyph);
901
902
  };
@@ -911,7 +912,7 @@ var TH = ({
911
912
  const [hovered, setHovered] = useState(false);
912
913
  const handleMouseEnter = useCallback(() => setHovered(true), []);
913
914
  const handleMouseLeave = useCallback(() => setHovered(false), []);
914
- return /* @__PURE__ */ React17.createElement("th", {
915
+ return /* @__PURE__ */ React14.createElement("th", {
915
916
  ...thProps,
916
917
  style: {
917
918
  ...styles.base,
@@ -921,9 +922,9 @@ var TH = ({
921
922
  onMouseEnter: handleMouseEnter,
922
923
  onMouseLeave: handleMouseLeave,
923
924
  onClick
924
- }, /* @__PURE__ */ React17.createElement("div", {
925
+ }, /* @__PURE__ */ React14.createElement("div", {
925
926
  style: styles.div
926
- }, children), sorted && /* @__PURE__ */ React17.createElement(SortIconContainer, null, /* @__PURE__ */ React17.createElement(SortIcon, {
927
+ }, children), sorted && /* @__PURE__ */ React14.createElement(SortIconContainer, null, /* @__PURE__ */ React14.createElement(SortIcon, {
927
928
  sortAscending
928
929
  })));
929
930
  };
@@ -939,16 +940,16 @@ var HeaderContainer = ({
939
940
  }) => {
940
941
  const styles = useStyles("TableInspectorHeaderContainer");
941
942
  const borderStyles = useStyles("TableInspectorLeftBorder");
942
- return /* @__PURE__ */ React17.createElement("div", {
943
+ return /* @__PURE__ */ React14.createElement("div", {
943
944
  style: styles.base
944
- }, /* @__PURE__ */ React17.createElement("table", {
945
+ }, /* @__PURE__ */ React14.createElement("table", {
945
946
  style: styles.table
946
- }, /* @__PURE__ */ React17.createElement("tbody", null, /* @__PURE__ */ React17.createElement("tr", null, /* @__PURE__ */ React17.createElement(TH, {
947
+ }, /* @__PURE__ */ React14.createElement("tbody", null, /* @__PURE__ */ React14.createElement("tr", null, /* @__PURE__ */ React14.createElement(TH, {
947
948
  borderStyle: borderStyles.none,
948
949
  sorted: sorted && sortIndexColumn,
949
950
  sortAscending,
950
951
  onClick: onIndexTHClick
951
- }, indexColumnText), columns.map((column) => /* @__PURE__ */ React17.createElement(TH, {
952
+ }, indexColumnText), columns.map((column) => /* @__PURE__ */ React14.createElement(TH, {
952
953
  borderStyle: borderStyles.solid,
953
954
  key: column,
954
955
  sorted: sorted && sortColumn === column,
@@ -984,7 +985,7 @@ var TableInspector = ({
984
985
  }));
985
986
  }, []);
986
987
  if (typeof data !== "object" || data === null) {
987
- return /* @__PURE__ */ React17.createElement("div", null);
988
+ return /* @__PURE__ */ React14.createElement("div", null);
988
989
  }
989
990
  let { rowHeaders, colHeaders } = getHeaders(data);
990
991
  if (columns !== void 0) {
@@ -1048,9 +1049,9 @@ var TableInspector = ({
1048
1049
  rowHeaders = sortedRowIndexes.map((i) => rowHeaders[i]);
1049
1050
  rowsData = sortedRowIndexes.map((i) => rowsData[i]);
1050
1051
  }
1051
- return /* @__PURE__ */ React17.createElement("div", {
1052
+ return /* @__PURE__ */ React14.createElement("div", {
1052
1053
  style: styles.base
1053
- }, /* @__PURE__ */ React17.createElement(HeaderContainer, {
1054
+ }, /* @__PURE__ */ React14.createElement(HeaderContainer, {
1054
1055
  columns: colHeaders,
1055
1056
  sorted,
1056
1057
  sortIndexColumn,
@@ -1058,7 +1059,7 @@ var TableInspector = ({
1058
1059
  sortAscending,
1059
1060
  onTHClick: handleTHClick,
1060
1061
  onIndexTHClick: handleIndexTHClick
1061
- }), /* @__PURE__ */ React17.createElement(DataContainer, {
1062
+ }), /* @__PURE__ */ React14.createElement(DataContainer, {
1062
1063
  rows: rowHeaders,
1063
1064
  columns: colHeaders,
1064
1065
  rowsData
@@ -1068,20 +1069,20 @@ var themedTableInspector = themeAcceptor(TableInspector);
1068
1069
  var TEXT_NODE_MAX_INLINE_CHARS = 80;
1069
1070
  var shouldInline = (data) => data.childNodes.length === 0 || data.childNodes.length === 1 && data.childNodes[0].nodeType === Node.TEXT_NODE && data.textContent.length < TEXT_NODE_MAX_INLINE_CHARS;
1070
1071
  var OpenTag = ({ tagName, attributes, styles }) => {
1071
- return /* @__PURE__ */ React17.createElement("span", {
1072
+ return /* @__PURE__ */ React14.createElement("span", {
1072
1073
  style: styles.base
1073
- }, "<", /* @__PURE__ */ React17.createElement("span", {
1074
+ }, "<", /* @__PURE__ */ React14.createElement("span", {
1074
1075
  style: styles.tagName
1075
1076
  }, tagName), (() => {
1076
1077
  if (attributes) {
1077
1078
  const attributeNodes = [];
1078
1079
  for (let i = 0; i < attributes.length; i++) {
1079
1080
  const attribute = attributes[i];
1080
- attributeNodes.push(/* @__PURE__ */ React17.createElement("span", {
1081
+ attributeNodes.push(/* @__PURE__ */ React14.createElement("span", {
1081
1082
  key: i
1082
- }, " ", /* @__PURE__ */ React17.createElement("span", {
1083
+ }, " ", /* @__PURE__ */ React14.createElement("span", {
1083
1084
  style: styles.htmlAttributeName
1084
- }, attribute.name), '="', /* @__PURE__ */ React17.createElement("span", {
1085
+ }, attribute.name), '="', /* @__PURE__ */ React14.createElement("span", {
1085
1086
  style: styles.htmlAttributeValue
1086
1087
  }, attribute.value), '"'));
1087
1088
  }
@@ -1089,9 +1090,9 @@ var OpenTag = ({ tagName, attributes, styles }) => {
1089
1090
  }
1090
1091
  })(), ">");
1091
1092
  };
1092
- var CloseTag = ({ tagName, isChildNode = false, styles }) => /* @__PURE__ */ React17.createElement("span", {
1093
+ var CloseTag = ({ tagName, isChildNode = false, styles }) => /* @__PURE__ */ React14.createElement("span", {
1093
1094
  style: Object.assign({}, styles.base, isChildNode && styles.offsetLeft)
1094
- }, "</", /* @__PURE__ */ React17.createElement("span", {
1095
+ }, "</", /* @__PURE__ */ React14.createElement("span", {
1095
1096
  style: styles.tagName
1096
1097
  }, tagName), ">");
1097
1098
  var nameByNodeType = {
@@ -1106,7 +1107,7 @@ var nameByNodeType = {
1106
1107
  var DOMNodePreview = ({ isCloseTag, data, expanded }) => {
1107
1108
  const styles = useStyles("DOMNodePreview");
1108
1109
  if (isCloseTag) {
1109
- return /* @__PURE__ */ React17.createElement(CloseTag, {
1110
+ return /* @__PURE__ */ React14.createElement(CloseTag, {
1110
1111
  styles: styles.htmlCloseTag,
1111
1112
  isChildNode: true,
1112
1113
  tagName: data.tagName
@@ -1114,34 +1115,34 @@ var DOMNodePreview = ({ isCloseTag, data, expanded }) => {
1114
1115
  }
1115
1116
  switch (data.nodeType) {
1116
1117
  case Node.ELEMENT_NODE:
1117
- return /* @__PURE__ */ React17.createElement("span", null, /* @__PURE__ */ React17.createElement(OpenTag, {
1118
+ return /* @__PURE__ */ React14.createElement("span", null, /* @__PURE__ */ React14.createElement(OpenTag, {
1118
1119
  tagName: data.tagName,
1119
1120
  attributes: data.attributes,
1120
1121
  styles: styles.htmlOpenTag
1121
- }), shouldInline(data) ? data.textContent : !expanded && "\u2026", !expanded && /* @__PURE__ */ React17.createElement(CloseTag, {
1122
+ }), shouldInline(data) ? data.textContent : !expanded && "\u2026", !expanded && /* @__PURE__ */ React14.createElement(CloseTag, {
1122
1123
  tagName: data.tagName,
1123
1124
  styles: styles.htmlCloseTag
1124
1125
  }));
1125
1126
  case Node.TEXT_NODE:
1126
- return /* @__PURE__ */ React17.createElement("span", null, data.textContent);
1127
+ return /* @__PURE__ */ React14.createElement("span", null, data.textContent);
1127
1128
  case Node.CDATA_SECTION_NODE:
1128
- return /* @__PURE__ */ React17.createElement("span", null, "<![CDATA[" + data.textContent + "]]>");
1129
+ return /* @__PURE__ */ React14.createElement("span", null, "<![CDATA[" + data.textContent + "]]>");
1129
1130
  case Node.COMMENT_NODE:
1130
- return /* @__PURE__ */ React17.createElement("span", {
1131
+ return /* @__PURE__ */ React14.createElement("span", {
1131
1132
  style: styles.htmlComment
1132
1133
  }, "<!--", data.textContent, "-->");
1133
1134
  case Node.PROCESSING_INSTRUCTION_NODE:
1134
- return /* @__PURE__ */ React17.createElement("span", null, data.nodeName);
1135
+ return /* @__PURE__ */ React14.createElement("span", null, data.nodeName);
1135
1136
  case Node.DOCUMENT_TYPE_NODE:
1136
- return /* @__PURE__ */ React17.createElement("span", {
1137
+ return /* @__PURE__ */ React14.createElement("span", {
1137
1138
  style: styles.htmlDoctype
1138
1139
  }, "<!DOCTYPE ", data.name, data.publicId ? ` PUBLIC "${data.publicId}"` : "", !data.publicId && data.systemId ? " SYSTEM" : "", data.systemId ? ` "${data.systemId}"` : "", ">");
1139
1140
  case Node.DOCUMENT_NODE:
1140
- return /* @__PURE__ */ React17.createElement("span", null, data.nodeName);
1141
+ return /* @__PURE__ */ React14.createElement("span", null, data.nodeName);
1141
1142
  case Node.DOCUMENT_FRAGMENT_NODE:
1142
- return /* @__PURE__ */ React17.createElement("span", null, data.nodeName);
1143
+ return /* @__PURE__ */ React14.createElement("span", null, data.nodeName);
1143
1144
  default:
1144
- return /* @__PURE__ */ React17.createElement("span", null, nameByNodeType[data.nodeType]);
1145
+ return /* @__PURE__ */ React14.createElement("span", null, nameByNodeType[data.nodeType]);
1145
1146
  }
1146
1147
  };
1147
1148
  var domIterator = function* (data) {
@@ -1171,7 +1172,7 @@ var domIterator = function* (data) {
1171
1172
  }
1172
1173
  };
1173
1174
  var DOMInspector = (props) => {
1174
- return /* @__PURE__ */ React17.createElement(TreeView, {
1175
+ return /* @__PURE__ */ React14.createElement(TreeView, {
1175
1176
  nodeRenderer: DOMNodePreview,
1176
1177
  dataIterator: domIterator,
1177
1178
  ...props
@@ -1181,41 +1182,35 @@ var themedDOMInspector = themeAcceptor(DOMInspector);
1181
1182
  var import_is_dom = __toESM(require_is_dom());
1182
1183
  var Inspector = ({ table = false, data, ...rest }) => {
1183
1184
  if (table) {
1184
- return /* @__PURE__ */ React17.createElement(themedTableInspector, {
1185
+ return /* @__PURE__ */ React14.createElement(themedTableInspector, {
1185
1186
  data,
1186
1187
  ...rest
1187
1188
  });
1188
1189
  }
1189
1190
  if ((0, import_is_dom.default)(data))
1190
- return /* @__PURE__ */ React17.createElement(themedDOMInspector, {
1191
+ return /* @__PURE__ */ React14.createElement(themedDOMInspector, {
1191
1192
  data,
1192
1193
  ...rest
1193
1194
  });
1194
- return /* @__PURE__ */ React17.createElement(themedObjectInspector, {
1195
+ return /* @__PURE__ */ React14.createElement(themedObjectInspector, {
1195
1196
  data,
1196
1197
  ...rest
1197
1198
  });
1198
1199
  };
1199
1200
 
1200
1201
  // src/experiments/inspect.tsx
1201
- var FIBER_PROP_EXPLANATIONS = {
1202
- tag: "Numeric type identifier for this fiber (e.g. 1=FunctionComponent, 5=HostComponent)",
1203
- elementType: "The original function/class/element type",
1204
- type: "The resolved function/class after going through any HOCs",
1205
- stateNode: "Reference to the actual instance (DOM node, class instance, etc)",
1206
- return: "Parent fiber",
1207
- child: "First child fiber",
1208
- sibling: "Next sibling fiber",
1209
- index: "Position among siblings",
1210
- ref: "Ref object or function",
1211
- pendingProps: "Props that are about to be applied",
1212
- memoizedProps: "Props from the last render",
1213
- memoizedState: "State from the last render",
1214
- dependencies: "Context and other dependencies this fiber subscribes to",
1215
- flags: "Side-effects flags (e.g. needs update, deletion)",
1216
- lanes: "Priority lanes for updates",
1217
- childLanes: "Priority lanes for child updates"
1202
+ var useImperativeHandlePolyfill = (ref, init, deps) => {
1203
+ useEffect(() => {
1204
+ if (ref) {
1205
+ if (typeof ref === "function") {
1206
+ ref(init());
1207
+ } else if (typeof ref === "object" && "current" in ref) {
1208
+ ref.current = init();
1209
+ }
1210
+ }
1211
+ }, deps);
1218
1212
  };
1213
+ var useImperativeHandle = useImperativeHandle$1 || useImperativeHandlePolyfill;
1219
1214
  var throttle = (fn, wait) => {
1220
1215
  let timeout = null;
1221
1216
  return function() {
@@ -1227,7 +1222,6 @@ var throttle = (fn, wait) => {
1227
1222
  }
1228
1223
  };
1229
1224
  };
1230
- var isMac = typeof navigator !== "undefined" && navigator.platform?.toLowerCase().includes("mac");
1231
1225
  var theme3 = {
1232
1226
  BASE_FONT_FAMILY: "Menlo, monospace",
1233
1227
  BASE_FONT_SIZE: "12px",
@@ -1267,142 +1261,52 @@ var theme3 = {
1267
1261
  TABLE_DATA_BACKGROUND_IMAGE: "none",
1268
1262
  TABLE_DATA_BACKGROUND_SIZE: "0"
1269
1263
  };
1270
- var BackButton = React17.memo(({ onClick }) => /* @__PURE__ */ React17.createElement(
1271
- "button",
1272
- {
1273
- type: "button",
1274
- onClick,
1275
- style: {
1276
- padding: "0.5ch 1ch",
1277
- background: "#161616",
1278
- border: "1px solid #282828",
1279
- color: "#FFF",
1280
- borderRadius: "0.25rem",
1281
- cursor: "pointer",
1282
- fontSize: "0.875rem",
1283
- opacity: 0.8,
1284
- transition: "opacity 150ms"
1285
- },
1286
- onMouseEnter: (e) => {
1287
- e.currentTarget.style.opacity = "1";
1288
- },
1289
- onMouseLeave: (e) => {
1290
- e.currentTarget.style.opacity = "0.8";
1291
- }
1292
- },
1293
- "\u2190 Back"
1294
- ));
1295
- var BreadcrumbButton = React17.memo(
1296
- ({
1297
- name,
1298
- onClick,
1299
- onKeyDown
1300
- }) => /* @__PURE__ */ React17.createElement(
1301
- "button",
1302
- {
1303
- type: "button",
1304
- onClick,
1305
- onKeyDown,
1306
- style: {
1307
- cursor: "pointer",
1308
- textDecoration: "underline",
1309
- color: "#A0A0A0",
1310
- background: "none",
1311
- border: "none",
1312
- padding: 0,
1313
- font: "inherit"
1314
- },
1315
- onMouseEnter: (e) => {
1316
- e.currentTarget.style.backgroundColor = "#232323";
1317
- e.currentTarget.style.color = "#FFF";
1318
- },
1319
- onMouseLeave: (e) => {
1320
- e.currentTarget.style.backgroundColor = "";
1321
- e.currentTarget.style.color = "#A0A0A0";
1322
- }
1323
- },
1324
- name
1325
- )
1326
- );
1327
- var CloseButton = React17.memo(({ onClick }) => /* @__PURE__ */ React17.createElement(
1328
- "button",
1329
- {
1330
- type: "button",
1331
- onClick,
1332
- style: {
1333
- border: "none",
1334
- background: "none",
1335
- cursor: "pointer",
1336
- padding: "0.5ch",
1337
- fontSize: "2ch",
1338
- opacity: 0.5,
1339
- color: "#FFF"
1340
- }
1341
- },
1342
- "\xD7"
1343
- ));
1344
- var RawInspector = React17.memo(
1345
- ({ enabled = true, dangerouslyRunInProduction = false }) => {
1264
+ var RawInspector = forwardRef(
1265
+ ({ enabled = true, dangerouslyRunInProduction = false }, ref) => {
1346
1266
  const [element, setElement] = useState(null);
1267
+ const [currentFiber, setCurrentFiber] = useState(null);
1268
+ const [currentFiberSource, setCurrentFiberSource] = useState(null);
1347
1269
  const [rect, setRect] = useState(null);
1348
1270
  const [isActive, setIsActive] = useState(true);
1349
- const [isDialogMode, setIsDialogMode] = useState(false);
1350
- const [tooltip, setTooltip] = useState(null);
1351
- const [selectedFiber, setSelectedFiber] = useState(null);
1352
- const [position, setPosition] = useState({
1353
- top: 0,
1354
- left: 0
1355
- });
1356
- const [fiberHistory, setFiberHistory] = useState([]);
1357
- const getFiberForDisplay = useCallback(() => {
1358
- if (selectedFiber) return selectedFiber;
1359
- const fiber2 = getFiberFromHostInstance(element);
1360
- return fiber2;
1361
- }, [selectedFiber, element]);
1362
- const handlePropertyHover = (_e, propName) => {
1363
- if (!isDialogMode) return;
1364
- const explanation = FIBER_PROP_EXPLANATIONS[propName];
1365
- setTooltip(explanation || null);
1366
- };
1367
- const handlePropertyLeave = () => {
1368
- setTooltip(null);
1369
- };
1370
- const handleClose = useCallback(() => {
1371
- setIsDialogMode(false);
1372
- setFiberHistory([]);
1373
- setTooltip(null);
1374
- setSelectedFiber(null);
1375
- setElement(null);
1376
- setRect(null);
1377
- }, []);
1378
- useEffect(() => {
1379
- const handleKeyDown = (e) => {
1380
- if (e.key === "o" && (e.metaKey || e.ctrlKey) && rect) {
1381
- e.preventDefault();
1382
- const currentFiber = getFiberForDisplay();
1383
- if (currentFiber) {
1384
- setFiberHistory([currentFiber]);
1385
- }
1386
- setIsDialogMode(true);
1387
- } else if (e.key === "Escape") {
1388
- handleClose();
1389
- }
1390
- };
1391
- window.addEventListener("keydown", handleKeyDown);
1392
- return () => window.removeEventListener("keydown", handleKeyDown);
1393
- }, [rect, getFiberForDisplay, handleClose]);
1394
- useEffect(() => {
1395
- if (!isDialogMode) {
1396
- setTooltip(null);
1397
- setFiberHistory([]);
1398
- setSelectedFiber(null);
1271
+ const [isEnabled, setIsEnabled] = useState(enabled);
1272
+ const [position, setPosition] = useState({ top: 0, left: 0 });
1273
+ const currentCleanedFiber = useMemo(() => {
1274
+ if (!currentFiber) return null;
1275
+ const clonedFiber = { ...currentFiber };
1276
+ for (const key in clonedFiber) {
1277
+ const value = clonedFiber[key];
1278
+ if (!value) delete clonedFiber[key];
1279
+ }
1280
+ return clonedFiber;
1281
+ }, [currentFiber]);
1282
+ useImperativeHandle(ref, () => ({
1283
+ enable: () => setIsEnabled(true),
1284
+ disable: () => {
1285
+ setIsEnabled(false);
1399
1286
  setElement(null);
1400
1287
  setRect(null);
1288
+ },
1289
+ inspectElement: (element2) => {
1290
+ if (!isEnabled) return;
1291
+ setElement(element2);
1292
+ setRect(element2.getBoundingClientRect());
1401
1293
  }
1402
- }, [isDialogMode]);
1294
+ }));
1295
+ useEffect(() => {
1296
+ (async () => {
1297
+ if (!element) return;
1298
+ const fiber = getFiberFromHostInstance(element);
1299
+ if (!fiber) return;
1300
+ const latestFiber = getLatestFiber(fiber);
1301
+ const source = await getFiberSource(latestFiber);
1302
+ setCurrentFiber(latestFiber);
1303
+ if (source) {
1304
+ setCurrentFiberSource(source);
1305
+ }
1306
+ })();
1307
+ }, [element]);
1403
1308
  useEffect(() => {
1404
1309
  const handleMouseMove = (event) => {
1405
- if (isDialogMode) return;
1406
1310
  const isActive2 = isInstrumentationActive() || hasRDTHook();
1407
1311
  if (!isActive2) {
1408
1312
  setIsActive(false);
@@ -1418,29 +1322,20 @@ var RawInspector = React17.memo(
1418
1322
  }
1419
1323
  }
1420
1324
  }
1421
- if (!enabled) {
1325
+ if (!isEnabled) {
1422
1326
  setElement(null);
1423
1327
  setRect(null);
1424
- setSelectedFiber(null);
1425
1328
  return;
1426
1329
  }
1427
- if (!isDialogMode) {
1428
- const element2 = document.elementFromPoint(
1429
- event.clientX,
1430
- event.clientY
1431
- );
1432
- if (!element2) return;
1433
- setElement(element2);
1434
- setRect(element2.getBoundingClientRect());
1435
- setSelectedFiber(null);
1436
- }
1330
+ const element2 = document.elementFromPoint(event.clientX, event.clientY);
1331
+ if (!element2) return;
1332
+ setElement(element2);
1333
+ setRect(element2.getBoundingClientRect());
1437
1334
  };
1438
1335
  const throttledMouseMove = throttle(handleMouseMove, 16);
1439
1336
  document.addEventListener("mousemove", throttledMouseMove);
1440
- return () => {
1441
- document.removeEventListener("mousemove", throttledMouseMove);
1442
- };
1443
- }, [enabled, isDialogMode, dangerouslyRunInProduction]);
1337
+ return () => document.removeEventListener("mousemove", throttledMouseMove);
1338
+ }, [isEnabled, dangerouslyRunInProduction]);
1444
1339
  useEffect(() => {
1445
1340
  if (!rect) return;
1446
1341
  const padding = 10;
@@ -1470,239 +1365,100 @@ var RawInspector = React17.memo(
1470
1365
  );
1471
1366
  setPosition({ top, left });
1472
1367
  }, [rect]);
1473
- useEffect(() => {
1474
- if (selectedFiber) {
1475
- const element2 = getNearestHostFiber(selectedFiber)?.stateNode;
1476
- if (element2) {
1477
- setElement(element2);
1478
- setRect(element2.getBoundingClientRect());
1479
- }
1480
- }
1481
- }, [selectedFiber]);
1482
- const handleBack = () => {
1483
- const previousFiber = fiberHistory[fiberHistory.length - 1];
1484
- if (previousFiber) {
1485
- setFiberHistory((prev) => prev.slice(0, -1));
1486
- setSelectedFiber(previousFiber);
1487
- }
1488
- };
1489
- if (!rect || !isActive) return null;
1490
- const fiber = getFiberForDisplay();
1491
- if (!fiber) return null;
1492
- let foundInspect = false;
1493
- traverseFiber(
1494
- fiber,
1495
- (innerFiber) => {
1496
- if (innerFiber.type === Inspector2) {
1497
- foundInspect = true;
1498
- return true;
1499
- }
1500
- },
1501
- true
1502
- );
1503
- if (foundInspect) return null;
1504
- const dialogStyle = isDialogMode ? {
1505
- position: "fixed",
1506
- top: "50%",
1507
- left: "50%",
1508
- transform: "translate(-50%, -50%)",
1509
- width: "80vw",
1510
- height: "80vh",
1511
- maxWidth: "none",
1512
- maxHeight: "none",
1513
- padding: "2ch",
1514
- boxShadow: "0 0 0 5px rgba(0, 0, 0, 0.3)",
1515
- backgroundColor: "#1a1a1a",
1516
- border: "1px solid #333",
1517
- zIndex: 1e3
1518
- } : {};
1519
- const overlayStyle = isDialogMode ? {
1520
- position: "fixed",
1521
- top: 0,
1522
- left: 0,
1523
- right: 0,
1524
- bottom: 0,
1525
- backgroundColor: "rgba(0, 0, 0, 0.7)",
1526
- zIndex: 999
1527
- } : {};
1528
- const fiberStack = fiber ? getFiberStack(fiber) : [];
1529
- return /* @__PURE__ */ React17.createElement(React17.Fragment, null, isDialogMode && /* @__PURE__ */ React17.createElement(
1530
- "div",
1531
- {
1532
- style: overlayStyle,
1533
- onClick: handleClose,
1534
- onKeyDown: (e) => {
1535
- if (e.key === "Escape") {
1536
- handleClose();
1537
- }
1538
- },
1539
- role: "button",
1540
- tabIndex: 0
1541
- }
1542
- ), /* @__PURE__ */ React17.createElement(
1368
+ if (!rect || !isActive || !isEnabled) return null;
1369
+ if (!currentFiber) return null;
1370
+ return /* @__PURE__ */ React14.createElement(React14.Fragment, null, /* @__PURE__ */ React14.createElement(
1543
1371
  "div",
1544
1372
  {
1373
+ className: "inspector-container",
1545
1374
  style: {
1546
1375
  position: "fixed",
1547
1376
  backgroundColor: "#101010",
1548
1377
  color: "#FFF",
1549
1378
  zIndex: 50,
1550
- padding: "1ch",
1551
- width: "50ch",
1552
- height: isDialogMode ? "80ch" : "40ch",
1553
- transition: "all 150ms, z-index 0ms",
1554
- overflow: "visible",
1555
- boxShadow: "0 1px 3px 0 rgb(0 0 0 / 0.3)",
1556
- border: "1px solid #282828",
1557
- top: position.top,
1558
- left: position.left,
1379
+ padding: "1rem",
1380
+ width: "30ch",
1381
+ height: "25ch",
1382
+ transition: "all 150ms ease-in-out",
1383
+ overflow: "auto",
1384
+ boxShadow: "0 4px 8px rgba(0, 0, 0, 0.5)",
1385
+ border: "1px solid #444",
1386
+ borderRadius: "8px",
1559
1387
  opacity: rect ? 1 : 0,
1560
1388
  transform: rect ? "translateY(0)" : "translateY(10px)",
1561
1389
  pointerEvents: rect ? "auto" : "none",
1562
- display: "flex",
1563
- flexDirection: "column",
1564
- ...dialogStyle
1390
+ top: position.top,
1391
+ left: position.left
1565
1392
  }
1566
1393
  },
1567
- /* @__PURE__ */ React17.createElement(
1394
+ currentFiber && /* @__PURE__ */ React14.createElement(
1395
+ Inspector,
1396
+ {
1397
+ theme: theme3,
1398
+ data: currentCleanedFiber,
1399
+ expandLevel: 1,
1400
+ table: false
1401
+ }
1402
+ ),
1403
+ /* @__PURE__ */ React14.createElement(
1568
1404
  "div",
1569
1405
  {
1570
1406
  style: {
1407
+ position: "absolute",
1408
+ bottom: "0",
1409
+ left: "0",
1410
+ right: "0",
1571
1411
  display: "flex",
1572
- justifyContent: "space-between",
1573
- alignItems: "center"
1412
+ alignItems: "center",
1413
+ gap: "1rem",
1414
+ backgroundColor: "#101010",
1415
+ padding: "0.75rem 1rem",
1416
+ borderTop: "1px solid #555",
1417
+ borderBottomLeftRadius: "8px",
1418
+ borderBottomRightRadius: "8px",
1419
+ zIndex: 1e3
1574
1420
  }
1575
1421
  },
1576
- /* @__PURE__ */ React17.createElement("div", { style: { display: "flex", alignItems: "center", gap: "1ch" } }, fiberHistory.length > 0 && /* @__PURE__ */ React17.createElement(BackButton, { onClick: handleBack }), /* @__PURE__ */ React17.createElement(
1577
- "h3",
1422
+ /* @__PURE__ */ React14.createElement(
1423
+ "div",
1578
1424
  {
1579
1425
  style: {
1580
1426
  fontSize: "0.875rem",
1581
- backgroundColor: "#161616",
1582
1427
  color: "#FFF",
1583
- padding: "0 0.5ch",
1584
- borderRadius: "0.125rem",
1585
- width: "fit-content",
1586
- margin: 0
1428
+ padding: "0.25rem 0.5rem",
1429
+ borderRadius: "4px",
1430
+ backgroundColor: "#3a3a3a"
1587
1431
  }
1588
1432
  },
1589
- `<${typeof fiber.type === "string" ? fiber.type : getDisplayName(fiber.type) || "unknown"}>`,
1590
- !isDialogMode && /* @__PURE__ */ React17.createElement(
1591
- "span",
1592
- {
1593
- style: {
1594
- marginLeft: "1ch",
1595
- opacity: 0.5,
1596
- fontSize: "0.75rem"
1597
- }
1598
- },
1599
- `Press ${isMac ? "\u2318" : "ctrl"}O to expand`
1600
- )
1601
- )),
1602
- isDialogMode && /* @__PURE__ */ React17.createElement(CloseButton, { onClick: handleClose })
1603
- ),
1604
- isDialogMode && /* @__PURE__ */ React17.createElement(
1605
- "div",
1606
- {
1607
- style: {
1608
- borderTop: "1px solid #282828",
1609
- padding: "0.5ch 0",
1610
- fontSize: "0.75rem",
1611
- color: "#A0A0A0",
1612
- whiteSpace: "nowrap",
1613
- overflow: "hidden",
1614
- textOverflow: "ellipsis"
1615
- }
1616
- },
1617
- fiberStack.reverse().map((f, i, arr) => {
1618
- const name = typeof f.type === "string" ? f.type : getDisplayName(f.type) || "unknown";
1619
- if (!name) return null;
1620
- return /* @__PURE__ */ React17.createElement(React17.Fragment, { key: getFiberId(f) }, /* @__PURE__ */ React17.createElement(
1621
- BreadcrumbButton,
1622
- {
1623
- name,
1624
- onClick: () => {
1625
- if (selectedFiber) {
1626
- setFiberHistory((prev) => [...prev, selectedFiber]);
1627
- }
1628
- setSelectedFiber(f);
1629
- const element2 = getNearestHostFiber(f)?.stateNode;
1630
- if (element2) {
1631
- setElement(element2);
1632
- setRect(element2.getBoundingClientRect());
1633
- }
1634
- },
1635
- onKeyDown: (e) => {
1636
- if (e.key === "Enter" || e.key === " ") {
1637
- if (selectedFiber) {
1638
- setFiberHistory((prev) => [...prev, selectedFiber]);
1639
- }
1640
- setSelectedFiber(f);
1641
- const element2 = getNearestHostFiber(f)?.stateNode;
1642
- if (element2) {
1643
- setElement(element2);
1644
- setRect(element2.getBoundingClientRect());
1645
- }
1646
- }
1647
- }
1433
+ `<${getDisplayName(currentFiber.type) || "unknown"}>`
1434
+ ),
1435
+ /* @__PURE__ */ React14.createElement(
1436
+ "div",
1437
+ {
1438
+ style: {
1439
+ fontSize: "0.75rem",
1440
+ color: "#CCC"
1648
1441
  }
1649
- ), i < arr.length - 1 && " > ");
1650
- })
1651
- ),
1652
- /* @__PURE__ */ React17.createElement("div", { style: { flex: 1, overflow: "auto" } }, fiber && /* @__PURE__ */ React17.createElement(
1653
- Inspector,
1654
- {
1655
- theme: theme3,
1656
- data: fiber,
1657
- expandLevel: 1,
1658
- table: false,
1659
- nodeRenderer: (props) => {
1660
- const Component = props.depth === 0 ? ObjectRootLabel : ObjectLabel;
1661
- return /* @__PURE__ */ React17.createElement(
1662
- "span",
1663
- {
1664
- onMouseEnter: (e) => handlePropertyHover(e, props.name),
1665
- onMouseLeave: handlePropertyLeave,
1666
- style: {
1667
- cursor: FIBER_PROP_EXPLANATIONS[props.name] ? "help" : "default",
1668
- padding: "1px 0",
1669
- display: "inline-block",
1670
- fontWeight: FIBER_PROP_EXPLANATIONS[props.name] ? 500 : "normal"
1671
- }
1672
- },
1673
- /* @__PURE__ */ React17.createElement(
1674
- Component,
1675
- {
1676
- name: props.name,
1677
- data: props.data,
1678
- isNonenumerable: props.isNonenumerable
1679
- }
1680
- )
1681
- );
1442
+ },
1443
+ currentFiberSource ? /* @__PURE__ */ React14.createElement(React14.Fragment, null, currentFiberSource.fileName.split("/").slice(-2).join("/"), " ", /* @__PURE__ */ React14.createElement("br", null), "@ line ", currentFiberSource.lineNumber, ", column", " ", currentFiberSource.columnNumber) : null
1444
+ )
1445
+ )
1446
+ ), /* @__PURE__ */ React14.createElement("style", null, `
1447
+ .inspector-container::-webkit-scrollbar {
1448
+ width: 8px;
1682
1449
  }
1683
- }
1684
- )),
1685
- tooltip && /* @__PURE__ */ React17.createElement(
1686
- "div",
1687
- {
1688
- style: {
1689
- position: "absolute",
1690
- zIndex: 1001,
1691
- backgroundColor: "#161616",
1692
- color: "#FFF",
1693
- bottom: "2ch",
1694
- right: "2ch",
1695
- pointerEvents: "none",
1696
- overflowY: "auto",
1697
- padding: "1ch",
1698
- fontSize: "1ch",
1699
- border: "1px solid #282828",
1700
- borderRadius: "0.25ch"
1450
+ .inspector-container::-webkit-scrollbar-track {
1451
+ background: #1E1E1E;
1452
+ border-radius: 8px;
1701
1453
  }
1702
- },
1703
- tooltip
1704
- )
1705
- ), !isDialogMode && /* @__PURE__ */ React17.createElement(
1454
+ .inspector-container::-webkit-scrollbar-thumb {
1455
+ background: #444;
1456
+ border-radius: 8px;
1457
+ }
1458
+ .inspector-container::-webkit-scrollbar-thumb:hover {
1459
+ background: #555;
1460
+ }
1461
+ `), /* @__PURE__ */ React14.createElement(
1706
1462
  "div",
1707
1463
  {
1708
1464
  style: {
@@ -1721,20 +1477,22 @@ var RawInspector = React17.memo(
1721
1477
  ));
1722
1478
  }
1723
1479
  );
1724
- var Inspector2 = React17.memo(({ ...props }) => {
1725
- const [root, setRoot] = useState(null);
1726
- useEffect(() => {
1727
- const div = document.createElement("div");
1728
- document.body.appendChild(div);
1729
- const shadowRoot = div.attachShadow({ mode: "open" });
1730
- setRoot(shadowRoot);
1731
- return () => {
1732
- document.body.removeChild(div);
1733
- };
1734
- }, []);
1735
- if (!root) return null;
1736
- return ReactDOM.createPortal(/* @__PURE__ */ React17.createElement(RawInspector, { ...props }), root);
1737
- });
1480
+ var Inspector2 = forwardRef(
1481
+ (props, ref) => {
1482
+ const [root, setRoot] = useState(null);
1483
+ useEffect(() => {
1484
+ const div = document.createElement("div");
1485
+ document.body.appendChild(div);
1486
+ const shadowRoot = div.attachShadow({ mode: "open" });
1487
+ setRoot(shadowRoot);
1488
+ return () => {
1489
+ document.body.removeChild(div);
1490
+ };
1491
+ }, []);
1492
+ if (!root) return null;
1493
+ return ReactDOM.createPortal(/* @__PURE__ */ React14.createElement(RawInspector, { ref, ...props }), root);
1494
+ }
1495
+ );
1738
1496
  var inspect_default = Inspector2;
1739
1497
 
1740
1498
  export { Inspector2 as Inspector, RawInspector, inspect_default as default };