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