sidakram-bippy 0.2.24

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,1732 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ require('../chunk-JOS5RHYU.cjs');
6
+ var chunk475IQUDX_cjs = require('../chunk-475IQUDX.cjs');
7
+ var React17 = require('react');
8
+ var ReactDOM = require('react-dom');
9
+
10
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
+
12
+ var React17__default = /*#__PURE__*/_interopDefault(React17);
13
+ var ReactDOM__default = /*#__PURE__*/_interopDefault(ReactDOM);
14
+
15
+ /**
16
+ * @license bippy
17
+ *
18
+ * Copyright (c) Aiden Bai, Million Software, Inc.
19
+ *
20
+ * This source code is licensed under the MIT license found in the
21
+ * LICENSE file in the root directory of this source tree.
22
+ */
23
+ var __create = Object.create;
24
+ var __defProp = Object.defineProperty;
25
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
26
+ var __getOwnPropNames = Object.getOwnPropertyNames;
27
+ var __getProtoOf = Object.getPrototypeOf;
28
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
29
+ var __commonJS = (cb, mod) => function __require() {
30
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
31
+ };
32
+ var __export = (target, all) => {
33
+ for (var name in all)
34
+ __defProp(target, name, { get: all[name], enumerable: true });
35
+ };
36
+ var __copyProps = (to, from, except, desc) => {
37
+ if (from && typeof from === "object" || typeof from === "function") {
38
+ for (let key of __getOwnPropNames(from))
39
+ if (!__hasOwnProp.call(to, key) && key !== except)
40
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
41
+ }
42
+ return to;
43
+ };
44
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(!mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
45
+ var require_is_object = __commonJS({
46
+ "node_modules/is-object/index.js"(exports, module) {
47
+ module.exports = function isObject(x) {
48
+ return typeof x === "object" && x !== null;
49
+ };
50
+ }
51
+ });
52
+ var require_is_window = __commonJS({
53
+ "node_modules/is-window/index.js"(exports, module) {
54
+ module.exports = function(obj) {
55
+ if (obj == null) {
56
+ return false;
57
+ }
58
+ var o = Object(obj);
59
+ return o === o.window;
60
+ };
61
+ }
62
+ });
63
+ var require_is_dom = __commonJS({
64
+ "node_modules/is-dom/index.js"(exports, module) {
65
+ var isObject = require_is_object();
66
+ var isWindow = require_is_window();
67
+ function isNode(val) {
68
+ if (!isObject(val) || !isWindow(window) || typeof window.Node !== "function") {
69
+ return false;
70
+ }
71
+ return typeof val.nodeType === "number" && typeof val.nodeName === "string";
72
+ }
73
+ module.exports = isNode;
74
+ }
75
+ });
76
+ var themes_exports = {};
77
+ __export(themes_exports, {
78
+ chromeDark: () => theme,
79
+ chromeLight: () => theme2
80
+ });
81
+ var theme = {
82
+ BASE_FONT_FAMILY: "Menlo, monospace",
83
+ BASE_FONT_SIZE: "11px",
84
+ BASE_LINE_HEIGHT: 1.2,
85
+ BASE_BACKGROUND_COLOR: "rgb(36, 36, 36)",
86
+ BASE_COLOR: "rgb(213, 213, 213)",
87
+ OBJECT_PREVIEW_ARRAY_MAX_PROPERTIES: 10,
88
+ OBJECT_PREVIEW_OBJECT_MAX_PROPERTIES: 5,
89
+ OBJECT_NAME_COLOR: "rgb(227, 110, 236)",
90
+ OBJECT_VALUE_NULL_COLOR: "rgb(127, 127, 127)",
91
+ OBJECT_VALUE_UNDEFINED_COLOR: "rgb(127, 127, 127)",
92
+ OBJECT_VALUE_REGEXP_COLOR: "rgb(233, 63, 59)",
93
+ OBJECT_VALUE_STRING_COLOR: "rgb(233, 63, 59)",
94
+ OBJECT_VALUE_SYMBOL_COLOR: "rgb(233, 63, 59)",
95
+ OBJECT_VALUE_NUMBER_COLOR: "hsl(252, 100%, 75%)",
96
+ OBJECT_VALUE_BOOLEAN_COLOR: "hsl(252, 100%, 75%)",
97
+ OBJECT_VALUE_FUNCTION_PREFIX_COLOR: "rgb(85, 106, 242)",
98
+ HTML_TAG_COLOR: "rgb(93, 176, 215)",
99
+ HTML_TAGNAME_COLOR: "rgb(93, 176, 215)",
100
+ HTML_TAGNAME_TEXT_TRANSFORM: "lowercase",
101
+ HTML_ATTRIBUTE_NAME_COLOR: "rgb(155, 187, 220)",
102
+ HTML_ATTRIBUTE_VALUE_COLOR: "rgb(242, 151, 102)",
103
+ HTML_COMMENT_COLOR: "rgb(137, 137, 137)",
104
+ HTML_DOCTYPE_COLOR: "rgb(192, 192, 192)",
105
+ ARROW_COLOR: "rgb(145, 145, 145)",
106
+ ARROW_MARGIN_RIGHT: 3,
107
+ ARROW_FONT_SIZE: 12,
108
+ ARROW_ANIMATION_DURATION: "0",
109
+ TREENODE_FONT_FAMILY: "Menlo, monospace",
110
+ TREENODE_FONT_SIZE: "11px",
111
+ TREENODE_LINE_HEIGHT: 1.2,
112
+ TREENODE_PADDING_LEFT: 12,
113
+ TABLE_BORDER_COLOR: "rgb(85, 85, 85)",
114
+ TABLE_TH_BACKGROUND_COLOR: "rgb(44, 44, 44)",
115
+ TABLE_TH_HOVER_COLOR: "rgb(48, 48, 48)",
116
+ TABLE_SORT_ICON_COLOR: "black",
117
+ TABLE_DATA_BACKGROUND_IMAGE: "linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, 0) 50%, rgba(51, 139, 255, 0.0980392) 50%, rgba(51, 139, 255, 0.0980392))",
118
+ TABLE_DATA_BACKGROUND_SIZE: "128px 32px"
119
+ };
120
+ var theme2 = {
121
+ BASE_FONT_FAMILY: "Menlo, monospace",
122
+ BASE_FONT_SIZE: "11px",
123
+ BASE_LINE_HEIGHT: 1.2,
124
+ BASE_BACKGROUND_COLOR: "white",
125
+ BASE_COLOR: "black",
126
+ OBJECT_PREVIEW_ARRAY_MAX_PROPERTIES: 10,
127
+ OBJECT_PREVIEW_OBJECT_MAX_PROPERTIES: 5,
128
+ OBJECT_NAME_COLOR: "rgb(136, 19, 145)",
129
+ OBJECT_VALUE_NULL_COLOR: "rgb(128, 128, 128)",
130
+ OBJECT_VALUE_UNDEFINED_COLOR: "rgb(128, 128, 128)",
131
+ OBJECT_VALUE_REGEXP_COLOR: "rgb(196, 26, 22)",
132
+ OBJECT_VALUE_STRING_COLOR: "rgb(196, 26, 22)",
133
+ OBJECT_VALUE_SYMBOL_COLOR: "rgb(196, 26, 22)",
134
+ OBJECT_VALUE_NUMBER_COLOR: "rgb(28, 0, 207)",
135
+ OBJECT_VALUE_BOOLEAN_COLOR: "rgb(28, 0, 207)",
136
+ OBJECT_VALUE_FUNCTION_PREFIX_COLOR: "rgb(13, 34, 170)",
137
+ HTML_TAG_COLOR: "rgb(168, 148, 166)",
138
+ HTML_TAGNAME_COLOR: "rgb(136, 18, 128)",
139
+ HTML_TAGNAME_TEXT_TRANSFORM: "lowercase",
140
+ HTML_ATTRIBUTE_NAME_COLOR: "rgb(153, 69, 0)",
141
+ HTML_ATTRIBUTE_VALUE_COLOR: "rgb(26, 26, 166)",
142
+ HTML_COMMENT_COLOR: "rgb(35, 110, 37)",
143
+ HTML_DOCTYPE_COLOR: "rgb(192, 192, 192)",
144
+ ARROW_COLOR: "#6e6e6e",
145
+ ARROW_MARGIN_RIGHT: 3,
146
+ ARROW_FONT_SIZE: 12,
147
+ ARROW_ANIMATION_DURATION: "0",
148
+ TREENODE_FONT_FAMILY: "Menlo, monospace",
149
+ TREENODE_FONT_SIZE: "11px",
150
+ TREENODE_LINE_HEIGHT: 1.2,
151
+ TREENODE_PADDING_LEFT: 12,
152
+ TABLE_BORDER_COLOR: "#aaa",
153
+ TABLE_TH_BACKGROUND_COLOR: "#eee",
154
+ TABLE_TH_HOVER_COLOR: "hsla(0, 0%, 90%, 1)",
155
+ TABLE_SORT_ICON_COLOR: "#6e6e6e",
156
+ TABLE_DATA_BACKGROUND_IMAGE: "linear-gradient(to bottom, white, white 50%, rgb(234, 243, 255) 50%, rgb(234, 243, 255))",
157
+ TABLE_DATA_BACKGROUND_SIZE: "128px 32px"
158
+ };
159
+ var ExpandedPathsContext = React17.createContext([{}, () => {
160
+ }]);
161
+ var unselectable = {
162
+ WebkitTouchCallout: "none",
163
+ WebkitUserSelect: "none",
164
+ KhtmlUserSelect: "none",
165
+ MozUserSelect: "none",
166
+ msUserSelect: "none",
167
+ OUserSelect: "none",
168
+ userSelect: "none"
169
+ };
170
+ var createTheme = (theme32) => ({
171
+ DOMNodePreview: {
172
+ htmlOpenTag: {
173
+ base: {
174
+ color: theme32.HTML_TAG_COLOR
175
+ },
176
+ tagName: {
177
+ color: theme32.HTML_TAGNAME_COLOR,
178
+ textTransform: theme32.HTML_TAGNAME_TEXT_TRANSFORM
179
+ },
180
+ htmlAttributeName: {
181
+ color: theme32.HTML_ATTRIBUTE_NAME_COLOR
182
+ },
183
+ htmlAttributeValue: {
184
+ color: theme32.HTML_ATTRIBUTE_VALUE_COLOR
185
+ }
186
+ },
187
+ htmlCloseTag: {
188
+ base: {
189
+ color: theme32.HTML_TAG_COLOR
190
+ },
191
+ offsetLeft: {
192
+ marginLeft: -theme32.TREENODE_PADDING_LEFT
193
+ },
194
+ tagName: {
195
+ color: theme32.HTML_TAGNAME_COLOR,
196
+ textTransform: theme32.HTML_TAGNAME_TEXT_TRANSFORM
197
+ }
198
+ },
199
+ htmlComment: {
200
+ color: theme32.HTML_COMMENT_COLOR
201
+ },
202
+ htmlDoctype: {
203
+ color: theme32.HTML_DOCTYPE_COLOR
204
+ }
205
+ },
206
+ ObjectPreview: {
207
+ objectDescription: {
208
+ fontStyle: "italic"
209
+ },
210
+ preview: {
211
+ fontStyle: "italic"
212
+ },
213
+ arrayMaxProperties: theme32.OBJECT_PREVIEW_ARRAY_MAX_PROPERTIES,
214
+ objectMaxProperties: theme32.OBJECT_PREVIEW_OBJECT_MAX_PROPERTIES
215
+ },
216
+ ObjectName: {
217
+ base: {
218
+ color: theme32.OBJECT_NAME_COLOR
219
+ },
220
+ dimmed: {
221
+ opacity: 0.6
222
+ }
223
+ },
224
+ ObjectValue: {
225
+ objectValueNull: {
226
+ color: theme32.OBJECT_VALUE_NULL_COLOR
227
+ },
228
+ objectValueUndefined: {
229
+ color: theme32.OBJECT_VALUE_UNDEFINED_COLOR
230
+ },
231
+ objectValueRegExp: {
232
+ color: theme32.OBJECT_VALUE_REGEXP_COLOR
233
+ },
234
+ objectValueString: {
235
+ color: theme32.OBJECT_VALUE_STRING_COLOR
236
+ },
237
+ objectValueSymbol: {
238
+ color: theme32.OBJECT_VALUE_SYMBOL_COLOR
239
+ },
240
+ objectValueNumber: {
241
+ color: theme32.OBJECT_VALUE_NUMBER_COLOR
242
+ },
243
+ objectValueBoolean: {
244
+ color: theme32.OBJECT_VALUE_BOOLEAN_COLOR
245
+ },
246
+ objectValueFunctionPrefix: {
247
+ color: theme32.OBJECT_VALUE_FUNCTION_PREFIX_COLOR,
248
+ fontStyle: "italic"
249
+ },
250
+ objectValueFunctionName: {
251
+ fontStyle: "italic"
252
+ }
253
+ },
254
+ TreeView: {
255
+ treeViewOutline: {
256
+ padding: 0,
257
+ margin: 0,
258
+ listStyleType: "none"
259
+ }
260
+ },
261
+ TreeNode: {
262
+ treeNodeBase: {
263
+ color: theme32.BASE_COLOR,
264
+ backgroundColor: theme32.BASE_BACKGROUND_COLOR,
265
+ lineHeight: theme32.TREENODE_LINE_HEIGHT,
266
+ cursor: "default",
267
+ boxSizing: "border-box",
268
+ listStyle: "none",
269
+ fontFamily: theme32.TREENODE_FONT_FAMILY,
270
+ fontSize: theme32.TREENODE_FONT_SIZE
271
+ },
272
+ treeNodePreviewContainer: {},
273
+ treeNodePlaceholder: chunk475IQUDX_cjs.__spreadValues({
274
+ whiteSpace: "pre",
275
+ fontSize: theme32.ARROW_FONT_SIZE,
276
+ marginRight: theme32.ARROW_MARGIN_RIGHT
277
+ }, unselectable),
278
+ treeNodeArrow: {
279
+ base: chunk475IQUDX_cjs.__spreadValues(chunk475IQUDX_cjs.__spreadValues({
280
+ color: theme32.ARROW_COLOR,
281
+ display: "inline-block",
282
+ fontSize: theme32.ARROW_FONT_SIZE,
283
+ marginRight: theme32.ARROW_MARGIN_RIGHT
284
+ }, parseFloat(theme32.ARROW_ANIMATION_DURATION) > 0 ? {
285
+ transition: `transform ${theme32.ARROW_ANIMATION_DURATION} ease 0s`
286
+ } : {}), unselectable),
287
+ expanded: {
288
+ WebkitTransform: "rotateZ(90deg)",
289
+ MozTransform: "rotateZ(90deg)",
290
+ transform: "rotateZ(90deg)"
291
+ },
292
+ collapsed: {
293
+ WebkitTransform: "rotateZ(0deg)",
294
+ MozTransform: "rotateZ(0deg)",
295
+ transform: "rotateZ(0deg)"
296
+ }
297
+ },
298
+ treeNodeChildNodesContainer: {
299
+ margin: 0,
300
+ paddingLeft: theme32.TREENODE_PADDING_LEFT
301
+ }
302
+ },
303
+ TableInspector: {
304
+ base: {
305
+ color: theme32.BASE_COLOR,
306
+ position: "relative",
307
+ border: `1px solid ${theme32.TABLE_BORDER_COLOR}`,
308
+ fontFamily: theme32.BASE_FONT_FAMILY,
309
+ fontSize: theme32.BASE_FONT_SIZE,
310
+ lineHeight: "120%",
311
+ boxSizing: "border-box",
312
+ cursor: "default"
313
+ }
314
+ },
315
+ TableInspectorHeaderContainer: {
316
+ base: {
317
+ top: 0,
318
+ height: "17px",
319
+ left: 0,
320
+ right: 0,
321
+ overflowX: "hidden"
322
+ },
323
+ table: {
324
+ tableLayout: "fixed",
325
+ borderSpacing: 0,
326
+ borderCollapse: "separate",
327
+ height: "100%",
328
+ width: "100%",
329
+ margin: 0
330
+ }
331
+ },
332
+ TableInspectorDataContainer: {
333
+ tr: {
334
+ display: "table-row"
335
+ },
336
+ td: {
337
+ boxSizing: "border-box",
338
+ border: "none",
339
+ height: "16px",
340
+ verticalAlign: "top",
341
+ padding: "1px 4px",
342
+ WebkitUserSelect: "text",
343
+ whiteSpace: "nowrap",
344
+ textOverflow: "ellipsis",
345
+ overflow: "hidden",
346
+ lineHeight: "14px"
347
+ },
348
+ div: {
349
+ position: "static",
350
+ top: "17px",
351
+ bottom: 0,
352
+ overflowY: "overlay",
353
+ transform: "translateZ(0)",
354
+ left: 0,
355
+ right: 0,
356
+ overflowX: "hidden"
357
+ },
358
+ table: {
359
+ positon: "static",
360
+ left: 0,
361
+ top: 0,
362
+ right: 0,
363
+ bottom: 0,
364
+ borderTop: "0 none transparent",
365
+ margin: 0,
366
+ backgroundImage: theme32.TABLE_DATA_BACKGROUND_IMAGE,
367
+ backgroundSize: theme32.TABLE_DATA_BACKGROUND_SIZE,
368
+ tableLayout: "fixed",
369
+ borderSpacing: 0,
370
+ borderCollapse: "separate",
371
+ width: "100%",
372
+ fontSize: theme32.BASE_FONT_SIZE,
373
+ lineHeight: "120%"
374
+ }
375
+ },
376
+ TableInspectorTH: {
377
+ base: {
378
+ position: "relative",
379
+ height: "auto",
380
+ textAlign: "left",
381
+ backgroundColor: theme32.TABLE_TH_BACKGROUND_COLOR,
382
+ borderBottom: `1px solid ${theme32.TABLE_BORDER_COLOR}`,
383
+ fontWeight: "normal",
384
+ verticalAlign: "middle",
385
+ padding: "0 4px",
386
+ whiteSpace: "nowrap",
387
+ textOverflow: "ellipsis",
388
+ overflow: "hidden",
389
+ lineHeight: "14px",
390
+ ":hover": {
391
+ backgroundColor: theme32.TABLE_TH_HOVER_COLOR
392
+ }
393
+ },
394
+ div: {
395
+ whiteSpace: "nowrap",
396
+ textOverflow: "ellipsis",
397
+ overflow: "hidden",
398
+ fontSize: theme32.BASE_FONT_SIZE,
399
+ lineHeight: "120%"
400
+ }
401
+ },
402
+ TableInspectorLeftBorder: {
403
+ none: {
404
+ borderLeft: "none"
405
+ },
406
+ solid: {
407
+ borderLeft: `1px solid ${theme32.TABLE_BORDER_COLOR}`
408
+ }
409
+ },
410
+ TableInspectorSortIcon: chunk475IQUDX_cjs.__spreadValues({
411
+ display: "block",
412
+ marginRight: 3,
413
+ width: 8,
414
+ height: 7,
415
+ marginTop: -7,
416
+ color: theme32.TABLE_SORT_ICON_COLOR,
417
+ fontSize: 12
418
+ }, unselectable)
419
+ });
420
+ var DEFAULT_THEME_NAME = "chromeLight";
421
+ var ThemeContext = React17.createContext(createTheme(themes_exports[DEFAULT_THEME_NAME]));
422
+ var useStyles = (baseStylesKey) => {
423
+ const themeStyles = React17.useContext(ThemeContext);
424
+ return themeStyles[baseStylesKey];
425
+ };
426
+ var themeAcceptor = (WrappedComponent) => {
427
+ const ThemeAcceptor = (_a) => {
428
+ var _b = _a, { theme: theme32 = DEFAULT_THEME_NAME } = _b, restProps = chunk475IQUDX_cjs.__objRest(_b, ["theme"]);
429
+ const themeStyles = React17.useMemo(() => {
430
+ switch (Object.prototype.toString.call(theme32)) {
431
+ case "[object String]":
432
+ return createTheme(themes_exports[theme32]);
433
+ case "[object Object]":
434
+ return createTheme(theme32);
435
+ default:
436
+ return createTheme(themes_exports[DEFAULT_THEME_NAME]);
437
+ }
438
+ }, [theme32]);
439
+ return /* @__PURE__ */ React17__default.default.createElement(ThemeContext.Provider, {
440
+ value: themeStyles
441
+ }, /* @__PURE__ */ React17__default.default.createElement(WrappedComponent, chunk475IQUDX_cjs.__spreadValues({}, restProps)));
442
+ };
443
+ return ThemeAcceptor;
444
+ };
445
+ var Arrow = ({ expanded, styles }) => /* @__PURE__ */ React17__default.default.createElement("span", {
446
+ style: chunk475IQUDX_cjs.__spreadValues(chunk475IQUDX_cjs.__spreadValues({}, styles.base), expanded ? styles.expanded : styles.collapsed)
447
+ }, "\u25B6");
448
+ var TreeNode = React17.memo((props) => {
449
+ props = chunk475IQUDX_cjs.__spreadValues({
450
+ expanded: true,
451
+ nodeRenderer: ({ name }) => /* @__PURE__ */ React17__default.default.createElement("span", null, name),
452
+ onClick: () => {
453
+ },
454
+ shouldShowArrow: false,
455
+ shouldShowPlaceholder: true
456
+ }, props);
457
+ const { expanded, onClick, children, nodeRenderer, title, shouldShowArrow, shouldShowPlaceholder } = props;
458
+ const styles = useStyles("TreeNode");
459
+ const NodeRenderer = nodeRenderer;
460
+ return /* @__PURE__ */ React17__default.default.createElement("li", {
461
+ "aria-expanded": expanded,
462
+ role: "treeitem",
463
+ style: styles.treeNodeBase,
464
+ title
465
+ }, /* @__PURE__ */ React17__default.default.createElement("div", {
466
+ style: styles.treeNodePreviewContainer,
467
+ onClick
468
+ }, shouldShowArrow || React17.Children.count(children) > 0 ? /* @__PURE__ */ React17__default.default.createElement(Arrow, {
469
+ expanded,
470
+ styles: styles.treeNodeArrow
471
+ }) : shouldShowPlaceholder && /* @__PURE__ */ React17__default.default.createElement("span", {
472
+ style: styles.treeNodePlaceholder
473
+ }, "\xA0"), /* @__PURE__ */ React17__default.default.createElement(NodeRenderer, chunk475IQUDX_cjs.__spreadValues({}, props))), /* @__PURE__ */ React17__default.default.createElement("ol", {
474
+ role: "group",
475
+ style: styles.treeNodeChildNodesContainer
476
+ }, expanded ? children : void 0));
477
+ });
478
+ var DEFAULT_ROOT_PATH = "$";
479
+ var WILDCARD = "*";
480
+ function hasChildNodes(data, dataIterator) {
481
+ return !dataIterator(data).next().done;
482
+ }
483
+ var wildcardPathsFromLevel = (level) => {
484
+ return Array.from({ length: level }, (_, i) => [DEFAULT_ROOT_PATH].concat(Array.from({ length: i }, () => "*")).join("."));
485
+ };
486
+ var getExpandedPaths = (data, dataIterator, expandPaths, expandLevel, prevExpandedPaths) => {
487
+ const wildcardPaths = [].concat(wildcardPathsFromLevel(expandLevel)).concat(expandPaths).filter((path) => typeof path === "string");
488
+ const expandedPaths = [];
489
+ wildcardPaths.forEach((wildcardPath) => {
490
+ const keyPaths = wildcardPath.split(".");
491
+ const populatePaths = (curData, curPath, depth) => {
492
+ if (depth === keyPaths.length) {
493
+ expandedPaths.push(curPath);
494
+ return;
495
+ }
496
+ const key = keyPaths[depth];
497
+ if (depth === 0) {
498
+ if (hasChildNodes(curData, dataIterator) && (key === DEFAULT_ROOT_PATH || key === WILDCARD)) {
499
+ populatePaths(curData, DEFAULT_ROOT_PATH, depth + 1);
500
+ }
501
+ } else {
502
+ if (key === WILDCARD) {
503
+ for (const { name, data: data2 } of dataIterator(curData)) {
504
+ if (hasChildNodes(data2, dataIterator)) {
505
+ populatePaths(data2, `${curPath}.${name}`, depth + 1);
506
+ }
507
+ }
508
+ } else {
509
+ const value = curData[key];
510
+ if (hasChildNodes(value, dataIterator)) {
511
+ populatePaths(value, `${curPath}.${key}`, depth + 1);
512
+ }
513
+ }
514
+ }
515
+ };
516
+ populatePaths(data, "", 0);
517
+ });
518
+ return expandedPaths.reduce((obj, path) => {
519
+ obj[path] = true;
520
+ return obj;
521
+ }, chunk475IQUDX_cjs.__spreadValues({}, prevExpandedPaths));
522
+ };
523
+ var ConnectedTreeNode = React17.memo((props) => {
524
+ const { data, dataIterator, path, depth, nodeRenderer } = props;
525
+ const [expandedPaths, setExpandedPaths] = React17.useContext(ExpandedPathsContext);
526
+ const nodeHasChildNodes = hasChildNodes(data, dataIterator);
527
+ const expanded = !!expandedPaths[path];
528
+ const handleClick = React17.useCallback(() => nodeHasChildNodes && setExpandedPaths((prevExpandedPaths) => chunk475IQUDX_cjs.__spreadProps(chunk475IQUDX_cjs.__spreadValues({}, prevExpandedPaths), {
529
+ [path]: !expanded
530
+ })), [nodeHasChildNodes, setExpandedPaths, path, expanded]);
531
+ return /* @__PURE__ */ React17__default.default.createElement(TreeNode, chunk475IQUDX_cjs.__spreadValues({
532
+ expanded,
533
+ onClick: handleClick,
534
+ shouldShowArrow: nodeHasChildNodes,
535
+ shouldShowPlaceholder: depth > 0,
536
+ nodeRenderer
537
+ }, props), expanded ? [...dataIterator(data)].map((_a) => {
538
+ var _b = _a, { name, data: data2 } = _b, renderNodeProps = chunk475IQUDX_cjs.__objRest(_b, ["name", "data"]);
539
+ return /* @__PURE__ */ React17__default.default.createElement(ConnectedTreeNode, chunk475IQUDX_cjs.__spreadValues({
540
+ name,
541
+ data: data2,
542
+ depth: depth + 1,
543
+ path: `${path}.${name}`,
544
+ key: name,
545
+ dataIterator,
546
+ nodeRenderer
547
+ }, renderNodeProps));
548
+ }) : null);
549
+ });
550
+ var TreeView = React17.memo(({ name, data, dataIterator, nodeRenderer, expandPaths, expandLevel }) => {
551
+ const styles = useStyles("TreeView");
552
+ const stateAndSetter = React17.useState({});
553
+ const [, setExpandedPaths] = stateAndSetter;
554
+ React17.useLayoutEffect(() => setExpandedPaths((prevExpandedPaths) => getExpandedPaths(data, dataIterator, expandPaths, expandLevel, prevExpandedPaths)), [data, dataIterator, expandPaths, expandLevel]);
555
+ return /* @__PURE__ */ React17__default.default.createElement(ExpandedPathsContext.Provider, {
556
+ value: stateAndSetter
557
+ }, /* @__PURE__ */ React17__default.default.createElement("ol", {
558
+ role: "tree",
559
+ style: styles.treeViewOutline
560
+ }, /* @__PURE__ */ React17__default.default.createElement(ConnectedTreeNode, {
561
+ name,
562
+ data,
563
+ dataIterator,
564
+ depth: 0,
565
+ path: DEFAULT_ROOT_PATH,
566
+ nodeRenderer
567
+ })));
568
+ });
569
+ var ObjectName = ({ name, dimmed = false, styles = {} }) => {
570
+ const themeStyles = useStyles("ObjectName");
571
+ const appliedStyles = chunk475IQUDX_cjs.__spreadValues(chunk475IQUDX_cjs.__spreadValues(chunk475IQUDX_cjs.__spreadValues({}, themeStyles.base), dimmed ? themeStyles["dimmed"] : {}), styles);
572
+ return /* @__PURE__ */ React17__default.default.createElement("span", {
573
+ style: appliedStyles
574
+ }, name);
575
+ };
576
+ var ObjectValue = ({ object, styles }) => {
577
+ const themeStyles = useStyles("ObjectValue");
578
+ const mkStyle = (key) => chunk475IQUDX_cjs.__spreadValues(chunk475IQUDX_cjs.__spreadValues({}, themeStyles[key]), styles);
579
+ switch (typeof object) {
580
+ case "bigint":
581
+ return /* @__PURE__ */ React17__default.default.createElement("span", {
582
+ style: mkStyle("objectValueNumber")
583
+ }, String(object), "n");
584
+ case "number":
585
+ return /* @__PURE__ */ React17__default.default.createElement("span", {
586
+ style: mkStyle("objectValueNumber")
587
+ }, String(object));
588
+ case "string":
589
+ return /* @__PURE__ */ React17__default.default.createElement("span", {
590
+ style: mkStyle("objectValueString")
591
+ }, '"', object, '"');
592
+ case "boolean":
593
+ return /* @__PURE__ */ React17__default.default.createElement("span", {
594
+ style: mkStyle("objectValueBoolean")
595
+ }, String(object));
596
+ case "undefined":
597
+ return /* @__PURE__ */ React17__default.default.createElement("span", {
598
+ style: mkStyle("objectValueUndefined")
599
+ }, "undefined");
600
+ case "object":
601
+ if (object === null) {
602
+ return /* @__PURE__ */ React17__default.default.createElement("span", {
603
+ style: mkStyle("objectValueNull")
604
+ }, "null");
605
+ }
606
+ if (object instanceof Date) {
607
+ return /* @__PURE__ */ React17__default.default.createElement("span", null, object.toString());
608
+ }
609
+ if (object instanceof RegExp) {
610
+ return /* @__PURE__ */ React17__default.default.createElement("span", {
611
+ style: mkStyle("objectValueRegExp")
612
+ }, object.toString());
613
+ }
614
+ if (Array.isArray(object)) {
615
+ return /* @__PURE__ */ React17__default.default.createElement("span", null, `Array(${object.length})`);
616
+ }
617
+ if (!object.constructor) {
618
+ return /* @__PURE__ */ React17__default.default.createElement("span", null, "Object");
619
+ }
620
+ if (typeof object.constructor.isBuffer === "function" && object.constructor.isBuffer(object)) {
621
+ return /* @__PURE__ */ React17__default.default.createElement("span", null, `Buffer[${object.length}]`);
622
+ }
623
+ return /* @__PURE__ */ React17__default.default.createElement("span", null, object.constructor.name);
624
+ case "function":
625
+ return /* @__PURE__ */ React17__default.default.createElement("span", null, /* @__PURE__ */ React17__default.default.createElement("span", {
626
+ style: mkStyle("objectValueFunctionPrefix")
627
+ }, "\u0192\xA0"), /* @__PURE__ */ React17__default.default.createElement("span", {
628
+ style: mkStyle("objectValueFunctionName")
629
+ }, object.name, "()"));
630
+ case "symbol":
631
+ return /* @__PURE__ */ React17__default.default.createElement("span", {
632
+ style: mkStyle("objectValueSymbol")
633
+ }, object.toString());
634
+ default:
635
+ return /* @__PURE__ */ React17__default.default.createElement("span", null);
636
+ }
637
+ };
638
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
639
+ var propertyIsEnumerable = Object.prototype.propertyIsEnumerable;
640
+ function getPropertyValue(object, propertyName) {
641
+ const propertyDescriptor = Object.getOwnPropertyDescriptor(object, propertyName);
642
+ if (propertyDescriptor.get) {
643
+ try {
644
+ return propertyDescriptor.get();
645
+ } catch (e) {
646
+ return propertyDescriptor.get;
647
+ }
648
+ }
649
+ return object[propertyName];
650
+ }
651
+ function intersperse(arr, sep) {
652
+ if (arr.length === 0) {
653
+ return [];
654
+ }
655
+ return arr.slice(1).reduce((xs, x) => xs.concat([sep, x]), [arr[0]]);
656
+ }
657
+ var ObjectPreview = ({ data }) => {
658
+ const styles = useStyles("ObjectPreview");
659
+ const object = data;
660
+ if (typeof object !== "object" || object === null || object instanceof Date || object instanceof RegExp) {
661
+ return /* @__PURE__ */ React17__default.default.createElement(ObjectValue, {
662
+ object
663
+ });
664
+ }
665
+ if (Array.isArray(object)) {
666
+ const maxProperties = styles.arrayMaxProperties;
667
+ const previewArray = object.slice(0, maxProperties).map((element, index) => /* @__PURE__ */ React17__default.default.createElement(ObjectValue, {
668
+ key: index,
669
+ object: element
670
+ }));
671
+ if (object.length > maxProperties) {
672
+ previewArray.push(/* @__PURE__ */ React17__default.default.createElement("span", {
673
+ key: "ellipsis"
674
+ }, "\u2026"));
675
+ }
676
+ const arrayLength = object.length;
677
+ return /* @__PURE__ */ React17__default.default.createElement(React17__default.default.Fragment, null, /* @__PURE__ */ React17__default.default.createElement("span", {
678
+ style: styles.objectDescription
679
+ }, arrayLength === 0 ? `` : `(${arrayLength})\xA0`), /* @__PURE__ */ React17__default.default.createElement("span", {
680
+ style: styles.preview
681
+ }, "[", intersperse(previewArray, ", "), "]"));
682
+ } else {
683
+ const maxProperties = styles.objectMaxProperties;
684
+ const propertyNodes = [];
685
+ for (const propertyName in object) {
686
+ if (hasOwnProperty.call(object, propertyName)) {
687
+ let ellipsis;
688
+ if (propertyNodes.length === maxProperties - 1 && Object.keys(object).length > maxProperties) {
689
+ ellipsis = /* @__PURE__ */ React17__default.default.createElement("span", {
690
+ key: "ellipsis"
691
+ }, "\u2026");
692
+ }
693
+ const propertyValue = getPropertyValue(object, propertyName);
694
+ propertyNodes.push(/* @__PURE__ */ React17__default.default.createElement("span", {
695
+ key: propertyName
696
+ }, /* @__PURE__ */ React17__default.default.createElement(ObjectName, {
697
+ name: propertyName || `""`
698
+ }), ":\xA0", /* @__PURE__ */ React17__default.default.createElement(ObjectValue, {
699
+ object: propertyValue
700
+ }), ellipsis));
701
+ if (ellipsis)
702
+ break;
703
+ }
704
+ }
705
+ const objectConstructorName = object.constructor ? object.constructor.name : "Object";
706
+ return /* @__PURE__ */ React17__default.default.createElement(React17__default.default.Fragment, null, /* @__PURE__ */ React17__default.default.createElement("span", {
707
+ style: styles.objectDescription
708
+ }, objectConstructorName === "Object" ? "" : `${objectConstructorName} `), /* @__PURE__ */ React17__default.default.createElement("span", {
709
+ style: styles.preview
710
+ }, "{", intersperse(propertyNodes, ", "), "}"));
711
+ }
712
+ };
713
+ var ObjectRootLabel = ({ name, data }) => {
714
+ if (typeof name === "string") {
715
+ return /* @__PURE__ */ React17__default.default.createElement("span", null, /* @__PURE__ */ React17__default.default.createElement(ObjectName, {
716
+ name
717
+ }), /* @__PURE__ */ React17__default.default.createElement("span", null, ": "), /* @__PURE__ */ React17__default.default.createElement(ObjectPreview, {
718
+ data
719
+ }));
720
+ } else {
721
+ return /* @__PURE__ */ React17__default.default.createElement(ObjectPreview, {
722
+ data
723
+ });
724
+ }
725
+ };
726
+ var ObjectLabel = ({ name, data, isNonenumerable = false }) => {
727
+ const object = data;
728
+ return /* @__PURE__ */ React17__default.default.createElement("span", null, typeof name === "string" ? /* @__PURE__ */ React17__default.default.createElement(ObjectName, {
729
+ name,
730
+ dimmed: isNonenumerable
731
+ }) : /* @__PURE__ */ React17__default.default.createElement(ObjectPreview, {
732
+ data: name
733
+ }), /* @__PURE__ */ React17__default.default.createElement("span", null, ": "), /* @__PURE__ */ React17__default.default.createElement(ObjectValue, {
734
+ object
735
+ }));
736
+ };
737
+ var createIterator = (showNonenumerable, sortObjectKeys) => {
738
+ const objectIterator = function* (data) {
739
+ const shouldIterate = typeof data === "object" && data !== null || typeof data === "function";
740
+ if (!shouldIterate)
741
+ return;
742
+ const dataIsArray = Array.isArray(data);
743
+ if (!dataIsArray && data[Symbol.iterator]) {
744
+ let i = 0;
745
+ for (const entry of data) {
746
+ if (Array.isArray(entry) && entry.length === 2) {
747
+ const [k, v] = entry;
748
+ yield {
749
+ name: k,
750
+ data: v
751
+ };
752
+ } else {
753
+ yield {
754
+ name: i.toString(),
755
+ data: entry
756
+ };
757
+ }
758
+ i++;
759
+ }
760
+ } else {
761
+ const keys = Object.getOwnPropertyNames(data);
762
+ if (sortObjectKeys === true && !dataIsArray) {
763
+ keys.sort();
764
+ } else if (typeof sortObjectKeys === "function") {
765
+ keys.sort(sortObjectKeys);
766
+ }
767
+ for (const propertyName of keys) {
768
+ if (propertyIsEnumerable.call(data, propertyName)) {
769
+ const propertyValue = getPropertyValue(data, propertyName);
770
+ yield {
771
+ name: propertyName || `""`,
772
+ data: propertyValue
773
+ };
774
+ } else if (showNonenumerable) {
775
+ let propertyValue;
776
+ try {
777
+ propertyValue = getPropertyValue(data, propertyName);
778
+ } catch (e) {
779
+ }
780
+ if (propertyValue !== void 0) {
781
+ yield {
782
+ name: propertyName,
783
+ data: propertyValue,
784
+ isNonenumerable: true
785
+ };
786
+ }
787
+ }
788
+ }
789
+ if (showNonenumerable && data !== Object.prototype) {
790
+ yield {
791
+ name: "__proto__",
792
+ data: Object.getPrototypeOf(data),
793
+ isNonenumerable: true
794
+ };
795
+ }
796
+ }
797
+ };
798
+ return objectIterator;
799
+ };
800
+ var defaultNodeRenderer = ({ depth, name, data, isNonenumerable }) => depth === 0 ? /* @__PURE__ */ React17__default.default.createElement(ObjectRootLabel, {
801
+ name,
802
+ data
803
+ }) : /* @__PURE__ */ React17__default.default.createElement(ObjectLabel, {
804
+ name,
805
+ data,
806
+ isNonenumerable
807
+ });
808
+ var ObjectInspector = (_a) => {
809
+ var _b = _a, { showNonenumerable = false, sortObjectKeys, nodeRenderer } = _b, treeViewProps = chunk475IQUDX_cjs.__objRest(_b, ["showNonenumerable", "sortObjectKeys", "nodeRenderer"]);
810
+ const dataIterator = createIterator(showNonenumerable, sortObjectKeys);
811
+ const renderer = nodeRenderer ? nodeRenderer : defaultNodeRenderer;
812
+ return /* @__PURE__ */ React17__default.default.createElement(TreeView, chunk475IQUDX_cjs.__spreadValues({
813
+ nodeRenderer: renderer,
814
+ dataIterator
815
+ }, treeViewProps));
816
+ };
817
+ var themedObjectInspector = themeAcceptor(ObjectInspector);
818
+ function getHeaders(data) {
819
+ if (typeof data === "object") {
820
+ let rowHeaders = [];
821
+ if (Array.isArray(data)) {
822
+ const nRows = data.length;
823
+ rowHeaders = [...Array(nRows).keys()];
824
+ } else if (data !== null) {
825
+ rowHeaders = Object.keys(data);
826
+ }
827
+ const colHeaders = rowHeaders.reduce((colHeaders2, rowHeader) => {
828
+ const row = data[rowHeader];
829
+ if (typeof row === "object" && row !== null) {
830
+ const cols = Object.keys(row);
831
+ cols.reduce((xs, x) => {
832
+ if (!xs.includes(x)) {
833
+ xs.push(x);
834
+ }
835
+ return xs;
836
+ }, colHeaders2);
837
+ }
838
+ return colHeaders2;
839
+ }, []);
840
+ return {
841
+ rowHeaders,
842
+ colHeaders
843
+ };
844
+ }
845
+ return void 0;
846
+ }
847
+ var DataContainer = ({ rows, columns, rowsData }) => {
848
+ const styles = useStyles("TableInspectorDataContainer");
849
+ const borderStyles = useStyles("TableInspectorLeftBorder");
850
+ return /* @__PURE__ */ React17__default.default.createElement("div", {
851
+ style: styles.div
852
+ }, /* @__PURE__ */ React17__default.default.createElement("table", {
853
+ style: styles.table
854
+ }, /* @__PURE__ */ React17__default.default.createElement("colgroup", null), /* @__PURE__ */ React17__default.default.createElement("tbody", null, rows.map((row, i) => /* @__PURE__ */ React17__default.default.createElement("tr", {
855
+ key: row,
856
+ style: styles.tr
857
+ }, /* @__PURE__ */ React17__default.default.createElement("td", {
858
+ style: chunk475IQUDX_cjs.__spreadValues(chunk475IQUDX_cjs.__spreadValues({}, styles.td), borderStyles.none)
859
+ }, row), columns.map((column) => {
860
+ const rowData = rowsData[i];
861
+ if (typeof rowData === "object" && rowData !== null && hasOwnProperty.call(rowData, column)) {
862
+ return /* @__PURE__ */ React17__default.default.createElement("td", {
863
+ key: column,
864
+ style: chunk475IQUDX_cjs.__spreadValues(chunk475IQUDX_cjs.__spreadValues({}, styles.td), borderStyles.solid)
865
+ }, /* @__PURE__ */ React17__default.default.createElement(ObjectValue, {
866
+ object: rowData[column]
867
+ }));
868
+ } else {
869
+ return /* @__PURE__ */ React17__default.default.createElement("td", {
870
+ key: column,
871
+ style: chunk475IQUDX_cjs.__spreadValues(chunk475IQUDX_cjs.__spreadValues({}, styles.td), borderStyles.solid)
872
+ });
873
+ }
874
+ }))))));
875
+ };
876
+ var SortIconContainer = (props) => /* @__PURE__ */ React17__default.default.createElement("div", {
877
+ style: {
878
+ position: "absolute",
879
+ top: 1,
880
+ right: 0,
881
+ bottom: 1,
882
+ display: "flex",
883
+ alignItems: "center"
884
+ }
885
+ }, props.children);
886
+ var SortIcon = ({ sortAscending }) => {
887
+ const styles = useStyles("TableInspectorSortIcon");
888
+ const glyph = sortAscending ? "\u25B2" : "\u25BC";
889
+ return /* @__PURE__ */ React17__default.default.createElement("div", {
890
+ style: styles
891
+ }, glyph);
892
+ };
893
+ var TH = (_a) => {
894
+ var _b = _a, {
895
+ sortAscending = false,
896
+ sorted = false,
897
+ onClick = void 0,
898
+ borderStyle = {},
899
+ children
900
+ } = _b, thProps = chunk475IQUDX_cjs.__objRest(_b, [
901
+ "sortAscending",
902
+ "sorted",
903
+ "onClick",
904
+ "borderStyle",
905
+ "children"
906
+ ]);
907
+ const styles = useStyles("TableInspectorTH");
908
+ const [hovered, setHovered] = React17.useState(false);
909
+ const handleMouseEnter = React17.useCallback(() => setHovered(true), []);
910
+ const handleMouseLeave = React17.useCallback(() => setHovered(false), []);
911
+ return /* @__PURE__ */ React17__default.default.createElement("th", chunk475IQUDX_cjs.__spreadProps(chunk475IQUDX_cjs.__spreadValues({}, thProps), {
912
+ style: chunk475IQUDX_cjs.__spreadValues(chunk475IQUDX_cjs.__spreadValues(chunk475IQUDX_cjs.__spreadValues({}, styles.base), borderStyle), hovered ? styles.base[":hover"] : {}),
913
+ onMouseEnter: handleMouseEnter,
914
+ onMouseLeave: handleMouseLeave,
915
+ onClick
916
+ }), /* @__PURE__ */ React17__default.default.createElement("div", {
917
+ style: styles.div
918
+ }, children), sorted && /* @__PURE__ */ React17__default.default.createElement(SortIconContainer, null, /* @__PURE__ */ React17__default.default.createElement(SortIcon, {
919
+ sortAscending
920
+ })));
921
+ };
922
+ var HeaderContainer = ({
923
+ indexColumnText = "(index)",
924
+ columns = [],
925
+ sorted,
926
+ sortIndexColumn,
927
+ sortColumn,
928
+ sortAscending,
929
+ onTHClick,
930
+ onIndexTHClick
931
+ }) => {
932
+ const styles = useStyles("TableInspectorHeaderContainer");
933
+ const borderStyles = useStyles("TableInspectorLeftBorder");
934
+ return /* @__PURE__ */ React17__default.default.createElement("div", {
935
+ style: styles.base
936
+ }, /* @__PURE__ */ React17__default.default.createElement("table", {
937
+ style: styles.table
938
+ }, /* @__PURE__ */ React17__default.default.createElement("tbody", null, /* @__PURE__ */ React17__default.default.createElement("tr", null, /* @__PURE__ */ React17__default.default.createElement(TH, {
939
+ borderStyle: borderStyles.none,
940
+ sorted: sorted && sortIndexColumn,
941
+ sortAscending,
942
+ onClick: onIndexTHClick
943
+ }, indexColumnText), columns.map((column) => /* @__PURE__ */ React17__default.default.createElement(TH, {
944
+ borderStyle: borderStyles.solid,
945
+ key: column,
946
+ sorted: sorted && sortColumn === column,
947
+ sortAscending,
948
+ onClick: onTHClick.bind(null, column)
949
+ }, column))))));
950
+ };
951
+ var TableInspector = ({
952
+ data,
953
+ columns
954
+ }) => {
955
+ const styles = useStyles("TableInspector");
956
+ const [{ sorted, sortIndexColumn, sortColumn, sortAscending }, setState] = React17.useState({
957
+ sorted: false,
958
+ sortIndexColumn: false,
959
+ sortColumn: void 0,
960
+ sortAscending: false
961
+ });
962
+ const handleIndexTHClick = React17.useCallback(() => {
963
+ setState(({ sortIndexColumn: sortIndexColumn2, sortAscending: sortAscending2 }) => ({
964
+ sorted: true,
965
+ sortIndexColumn: true,
966
+ sortColumn: void 0,
967
+ sortAscending: sortIndexColumn2 ? !sortAscending2 : true
968
+ }));
969
+ }, []);
970
+ const handleTHClick = React17.useCallback((col) => {
971
+ setState(({ sortColumn: sortColumn2, sortAscending: sortAscending2 }) => ({
972
+ sorted: true,
973
+ sortIndexColumn: false,
974
+ sortColumn: col,
975
+ sortAscending: col === sortColumn2 ? !sortAscending2 : true
976
+ }));
977
+ }, []);
978
+ if (typeof data !== "object" || data === null) {
979
+ return /* @__PURE__ */ React17__default.default.createElement("div", null);
980
+ }
981
+ let { rowHeaders, colHeaders } = getHeaders(data);
982
+ if (columns !== void 0) {
983
+ colHeaders = columns;
984
+ }
985
+ let rowsData = rowHeaders.map((rowHeader) => data[rowHeader]);
986
+ let columnDataWithRowIndexes;
987
+ if (sortColumn !== void 0) {
988
+ columnDataWithRowIndexes = rowsData.map((rowData, index) => {
989
+ if (typeof rowData === "object" && rowData !== null) {
990
+ const columnData = rowData[sortColumn];
991
+ return [columnData, index];
992
+ }
993
+ return [void 0, index];
994
+ });
995
+ } else {
996
+ if (sortIndexColumn) {
997
+ columnDataWithRowIndexes = rowHeaders.map((rowData, index) => {
998
+ const columnData = rowHeaders[index];
999
+ return [columnData, index];
1000
+ });
1001
+ }
1002
+ }
1003
+ if (columnDataWithRowIndexes !== void 0) {
1004
+ const comparator = (mapper, ascending) => {
1005
+ return (a, b) => {
1006
+ const v1 = mapper(a);
1007
+ const v2 = mapper(b);
1008
+ const type1 = typeof v1;
1009
+ const type2 = typeof v2;
1010
+ const lt = (v12, v22) => {
1011
+ if (v12 < v22) {
1012
+ return -1;
1013
+ } else if (v12 > v22) {
1014
+ return 1;
1015
+ } else {
1016
+ return 0;
1017
+ }
1018
+ };
1019
+ let result;
1020
+ if (type1 === type2) {
1021
+ result = lt(v1, v2);
1022
+ } else {
1023
+ const order = {
1024
+ string: 0,
1025
+ number: 1,
1026
+ object: 2,
1027
+ symbol: 3,
1028
+ boolean: 4,
1029
+ undefined: 5,
1030
+ function: 6
1031
+ };
1032
+ result = lt(order[type1], order[type2]);
1033
+ }
1034
+ if (!ascending)
1035
+ result = -result;
1036
+ return result;
1037
+ };
1038
+ };
1039
+ const sortedRowIndexes = columnDataWithRowIndexes.sort(comparator((item) => item[0], sortAscending)).map((item) => item[1]);
1040
+ rowHeaders = sortedRowIndexes.map((i) => rowHeaders[i]);
1041
+ rowsData = sortedRowIndexes.map((i) => rowsData[i]);
1042
+ }
1043
+ return /* @__PURE__ */ React17__default.default.createElement("div", {
1044
+ style: styles.base
1045
+ }, /* @__PURE__ */ React17__default.default.createElement(HeaderContainer, {
1046
+ columns: colHeaders,
1047
+ sorted,
1048
+ sortIndexColumn,
1049
+ sortColumn,
1050
+ sortAscending,
1051
+ onTHClick: handleTHClick,
1052
+ onIndexTHClick: handleIndexTHClick
1053
+ }), /* @__PURE__ */ React17__default.default.createElement(DataContainer, {
1054
+ rows: rowHeaders,
1055
+ columns: colHeaders,
1056
+ rowsData
1057
+ }));
1058
+ };
1059
+ var themedTableInspector = themeAcceptor(TableInspector);
1060
+ var TEXT_NODE_MAX_INLINE_CHARS = 80;
1061
+ 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;
1062
+ var OpenTag = ({ tagName, attributes, styles }) => {
1063
+ return /* @__PURE__ */ React17__default.default.createElement("span", {
1064
+ style: styles.base
1065
+ }, "<", /* @__PURE__ */ React17__default.default.createElement("span", {
1066
+ style: styles.tagName
1067
+ }, tagName), (() => {
1068
+ if (attributes) {
1069
+ const attributeNodes = [];
1070
+ for (let i = 0; i < attributes.length; i++) {
1071
+ const attribute = attributes[i];
1072
+ attributeNodes.push(/* @__PURE__ */ React17__default.default.createElement("span", {
1073
+ key: i
1074
+ }, " ", /* @__PURE__ */ React17__default.default.createElement("span", {
1075
+ style: styles.htmlAttributeName
1076
+ }, attribute.name), '="', /* @__PURE__ */ React17__default.default.createElement("span", {
1077
+ style: styles.htmlAttributeValue
1078
+ }, attribute.value), '"'));
1079
+ }
1080
+ return attributeNodes;
1081
+ }
1082
+ })(), ">");
1083
+ };
1084
+ var CloseTag = ({ tagName, isChildNode = false, styles }) => /* @__PURE__ */ React17__default.default.createElement("span", {
1085
+ style: Object.assign({}, styles.base, isChildNode && styles.offsetLeft)
1086
+ }, "</", /* @__PURE__ */ React17__default.default.createElement("span", {
1087
+ style: styles.tagName
1088
+ }, tagName), ">");
1089
+ var nameByNodeType = {
1090
+ 1: "ELEMENT_NODE",
1091
+ 3: "TEXT_NODE",
1092
+ 7: "PROCESSING_INSTRUCTION_NODE",
1093
+ 8: "COMMENT_NODE",
1094
+ 9: "DOCUMENT_NODE",
1095
+ 10: "DOCUMENT_TYPE_NODE",
1096
+ 11: "DOCUMENT_FRAGMENT_NODE"
1097
+ };
1098
+ var DOMNodePreview = ({ isCloseTag, data, expanded }) => {
1099
+ const styles = useStyles("DOMNodePreview");
1100
+ if (isCloseTag) {
1101
+ return /* @__PURE__ */ React17__default.default.createElement(CloseTag, {
1102
+ styles: styles.htmlCloseTag,
1103
+ isChildNode: true,
1104
+ tagName: data.tagName
1105
+ });
1106
+ }
1107
+ switch (data.nodeType) {
1108
+ case Node.ELEMENT_NODE:
1109
+ return /* @__PURE__ */ React17__default.default.createElement("span", null, /* @__PURE__ */ React17__default.default.createElement(OpenTag, {
1110
+ tagName: data.tagName,
1111
+ attributes: data.attributes,
1112
+ styles: styles.htmlOpenTag
1113
+ }), shouldInline(data) ? data.textContent : !expanded && "\u2026", !expanded && /* @__PURE__ */ React17__default.default.createElement(CloseTag, {
1114
+ tagName: data.tagName,
1115
+ styles: styles.htmlCloseTag
1116
+ }));
1117
+ case Node.TEXT_NODE:
1118
+ return /* @__PURE__ */ React17__default.default.createElement("span", null, data.textContent);
1119
+ case Node.CDATA_SECTION_NODE:
1120
+ return /* @__PURE__ */ React17__default.default.createElement("span", null, "<![CDATA[" + data.textContent + "]]>");
1121
+ case Node.COMMENT_NODE:
1122
+ return /* @__PURE__ */ React17__default.default.createElement("span", {
1123
+ style: styles.htmlComment
1124
+ }, "<!--", data.textContent, "-->");
1125
+ case Node.PROCESSING_INSTRUCTION_NODE:
1126
+ return /* @__PURE__ */ React17__default.default.createElement("span", null, data.nodeName);
1127
+ case Node.DOCUMENT_TYPE_NODE:
1128
+ return /* @__PURE__ */ React17__default.default.createElement("span", {
1129
+ style: styles.htmlDoctype
1130
+ }, "<!DOCTYPE ", data.name, data.publicId ? ` PUBLIC "${data.publicId}"` : "", !data.publicId && data.systemId ? " SYSTEM" : "", data.systemId ? ` "${data.systemId}"` : "", ">");
1131
+ case Node.DOCUMENT_NODE:
1132
+ return /* @__PURE__ */ React17__default.default.createElement("span", null, data.nodeName);
1133
+ case Node.DOCUMENT_FRAGMENT_NODE:
1134
+ return /* @__PURE__ */ React17__default.default.createElement("span", null, data.nodeName);
1135
+ default:
1136
+ return /* @__PURE__ */ React17__default.default.createElement("span", null, nameByNodeType[data.nodeType]);
1137
+ }
1138
+ };
1139
+ var domIterator = function* (data) {
1140
+ if (data && data.childNodes) {
1141
+ const textInlined = shouldInline(data);
1142
+ if (textInlined) {
1143
+ return;
1144
+ }
1145
+ for (let i = 0; i < data.childNodes.length; i++) {
1146
+ const node = data.childNodes[i];
1147
+ if (node.nodeType === Node.TEXT_NODE && node.textContent.trim().length === 0)
1148
+ continue;
1149
+ yield {
1150
+ name: `${node.tagName}[${i}]`,
1151
+ data: node
1152
+ };
1153
+ }
1154
+ if (data.tagName) {
1155
+ yield {
1156
+ name: "CLOSE_TAG",
1157
+ data: {
1158
+ tagName: data.tagName
1159
+ },
1160
+ isCloseTag: true
1161
+ };
1162
+ }
1163
+ }
1164
+ };
1165
+ var DOMInspector = (props) => {
1166
+ return /* @__PURE__ */ React17__default.default.createElement(TreeView, chunk475IQUDX_cjs.__spreadValues({
1167
+ nodeRenderer: DOMNodePreview,
1168
+ dataIterator: domIterator
1169
+ }, props));
1170
+ };
1171
+ var themedDOMInspector = themeAcceptor(DOMInspector);
1172
+ var import_is_dom = __toESM(require_is_dom());
1173
+ var Inspector = (_a) => {
1174
+ var _b = _a, { table = false, data } = _b, rest = chunk475IQUDX_cjs.__objRest(_b, ["table", "data"]);
1175
+ if (table) {
1176
+ return /* @__PURE__ */ React17__default.default.createElement(themedTableInspector, chunk475IQUDX_cjs.__spreadValues({
1177
+ data
1178
+ }, rest));
1179
+ }
1180
+ if ((0, import_is_dom.default)(data))
1181
+ return /* @__PURE__ */ React17__default.default.createElement(themedDOMInspector, chunk475IQUDX_cjs.__spreadValues({
1182
+ data
1183
+ }, rest));
1184
+ return /* @__PURE__ */ React17__default.default.createElement(themedObjectInspector, chunk475IQUDX_cjs.__spreadValues({
1185
+ data
1186
+ }, rest));
1187
+ };
1188
+ var FIBER_PROP_EXPLANATIONS = {
1189
+ tag: "Numeric type identifier for this fiber (e.g. 1=FunctionComponent, 5=HostComponent)",
1190
+ elementType: "The original function/class/element type",
1191
+ type: "The resolved function/class after going through any HOCs",
1192
+ stateNode: "Reference to the actual instance (DOM node, class instance, etc)",
1193
+ return: "Parent fiber",
1194
+ child: "First child fiber",
1195
+ sibling: "Next sibling fiber",
1196
+ index: "Position among siblings",
1197
+ ref: "Ref object or function",
1198
+ pendingProps: "Props that are about to be applied",
1199
+ memoizedProps: "Props from the last render",
1200
+ memoizedState: "State from the last render",
1201
+ dependencies: "Context and other dependencies this fiber subscribes to",
1202
+ flags: "Side-effects flags (e.g. needs update, deletion)",
1203
+ lanes: "Priority lanes for updates",
1204
+ childLanes: "Priority lanes for child updates"
1205
+ };
1206
+ var throttle = (fn, wait) => {
1207
+ let timeout = null;
1208
+ return function() {
1209
+ if (!timeout) {
1210
+ timeout = setTimeout(() => {
1211
+ fn.apply(this, arguments);
1212
+ timeout = null;
1213
+ }, wait);
1214
+ }
1215
+ };
1216
+ };
1217
+ var isMac = typeof navigator !== "undefined" && navigator.platform.toLowerCase().includes("mac");
1218
+ var theme3 = {
1219
+ BASE_FONT_FAMILY: "Menlo, monospace",
1220
+ BASE_FONT_SIZE: "12px",
1221
+ BASE_LINE_HEIGHT: 1.2,
1222
+ BASE_BACKGROUND_COLOR: "none",
1223
+ BASE_COLOR: "#FFF",
1224
+ OBJECT_PREVIEW_ARRAY_MAX_PROPERTIES: 10,
1225
+ OBJECT_PREVIEW_OBJECT_MAX_PROPERTIES: 5,
1226
+ OBJECT_NAME_COLOR: "#FFC799",
1227
+ OBJECT_VALUE_NULL_COLOR: "#A0A0A0",
1228
+ OBJECT_VALUE_UNDEFINED_COLOR: "#A0A0A0",
1229
+ OBJECT_VALUE_REGEXP_COLOR: "#FF8080",
1230
+ OBJECT_VALUE_STRING_COLOR: "#99FFE4",
1231
+ OBJECT_VALUE_SYMBOL_COLOR: "#FFC799",
1232
+ OBJECT_VALUE_NUMBER_COLOR: "#FFC799",
1233
+ OBJECT_VALUE_BOOLEAN_COLOR: "#FFC799",
1234
+ OBJECT_VALUE_FUNCTION_PREFIX_COLOR: "#FFC799",
1235
+ HTML_TAG_COLOR: "#FFC799",
1236
+ HTML_TAGNAME_COLOR: "#FFC799",
1237
+ HTML_TAGNAME_TEXT_TRANSFORM: "lowercase",
1238
+ HTML_ATTRIBUTE_NAME_COLOR: "#A0A0A0",
1239
+ HTML_ATTRIBUTE_VALUE_COLOR: "#99FFE4",
1240
+ HTML_COMMENT_COLOR: "#8b8b8b94",
1241
+ HTML_DOCTYPE_COLOR: "#A0A0A0",
1242
+ ARROW_COLOR: "#A0A0A0",
1243
+ ARROW_MARGIN_RIGHT: 3,
1244
+ ARROW_FONT_SIZE: 12,
1245
+ ARROW_ANIMATION_DURATION: "0",
1246
+ TREENODE_FONT_FAMILY: "Menlo, monospace",
1247
+ TREENODE_FONT_SIZE: "11px",
1248
+ TREENODE_LINE_HEIGHT: 1.2,
1249
+ TREENODE_PADDING_LEFT: 12,
1250
+ TABLE_BORDER_COLOR: "#282828",
1251
+ TABLE_TH_BACKGROUND_COLOR: "#161616",
1252
+ TABLE_TH_HOVER_COLOR: "#232323",
1253
+ TABLE_SORT_ICON_COLOR: "#A0A0A0",
1254
+ TABLE_DATA_BACKGROUND_IMAGE: "none",
1255
+ TABLE_DATA_BACKGROUND_SIZE: "0"
1256
+ };
1257
+ var BackButton = React17__default.default.memo(({ onClick }) => /* @__PURE__ */ React17__default.default.createElement(
1258
+ "button",
1259
+ {
1260
+ type: "button",
1261
+ onClick,
1262
+ style: {
1263
+ padding: "0.5ch 1ch",
1264
+ background: "#161616",
1265
+ border: "1px solid #282828",
1266
+ color: "#FFF",
1267
+ borderRadius: "0.25rem",
1268
+ cursor: "pointer",
1269
+ fontSize: "0.875rem",
1270
+ opacity: 0.8,
1271
+ transition: "opacity 150ms"
1272
+ },
1273
+ onMouseEnter: (e) => {
1274
+ e.currentTarget.style.opacity = "1";
1275
+ },
1276
+ onMouseLeave: (e) => {
1277
+ e.currentTarget.style.opacity = "0.8";
1278
+ }
1279
+ },
1280
+ "\u2190 Back"
1281
+ ));
1282
+ var BreadcrumbButton = React17__default.default.memo(
1283
+ ({
1284
+ name,
1285
+ onClick,
1286
+ onKeyDown
1287
+ }) => /* @__PURE__ */ React17__default.default.createElement(
1288
+ "button",
1289
+ {
1290
+ type: "button",
1291
+ onClick,
1292
+ onKeyDown,
1293
+ style: {
1294
+ cursor: "pointer",
1295
+ textDecoration: "underline",
1296
+ color: "#A0A0A0",
1297
+ background: "none",
1298
+ border: "none",
1299
+ padding: 0,
1300
+ font: "inherit"
1301
+ },
1302
+ onMouseEnter: (e) => {
1303
+ e.currentTarget.style.backgroundColor = "#232323";
1304
+ e.currentTarget.style.color = "#FFF";
1305
+ },
1306
+ onMouseLeave: (e) => {
1307
+ e.currentTarget.style.backgroundColor = "";
1308
+ e.currentTarget.style.color = "#A0A0A0";
1309
+ }
1310
+ },
1311
+ name
1312
+ )
1313
+ );
1314
+ var CloseButton = React17__default.default.memo(({ onClick }) => /* @__PURE__ */ React17__default.default.createElement(
1315
+ "button",
1316
+ {
1317
+ type: "button",
1318
+ onClick,
1319
+ style: {
1320
+ border: "none",
1321
+ background: "none",
1322
+ cursor: "pointer",
1323
+ padding: "0.5ch",
1324
+ fontSize: "2ch",
1325
+ opacity: 0.5,
1326
+ color: "#FFF"
1327
+ }
1328
+ },
1329
+ "\xD7"
1330
+ ));
1331
+ var RawInspector = React17__default.default.memo(
1332
+ ({ enabled = true, dangerouslyRunInProduction = false }) => {
1333
+ const [element, setElement] = React17.useState(null);
1334
+ const [rect, setRect] = React17.useState(null);
1335
+ const [isActive, setIsActive] = React17.useState(true);
1336
+ const [isDialogMode, setIsDialogMode] = React17.useState(false);
1337
+ const [tooltip, setTooltip] = React17.useState(null);
1338
+ const [selectedFiber, setSelectedFiber] = React17.useState(null);
1339
+ const [position, setPosition] = React17.useState({
1340
+ top: 0,
1341
+ left: 0
1342
+ });
1343
+ const [fiberHistory, setFiberHistory] = React17.useState([]);
1344
+ const getFiberForDisplay = React17.useCallback(() => {
1345
+ if (selectedFiber) return selectedFiber;
1346
+ const fiber2 = chunk475IQUDX_cjs.getFiberFromHostInstance(element);
1347
+ return fiber2;
1348
+ }, [selectedFiber, element]);
1349
+ const handlePropertyHover = (_e, propName) => {
1350
+ if (!isDialogMode) return;
1351
+ const explanation = FIBER_PROP_EXPLANATIONS[propName];
1352
+ setTooltip(explanation || null);
1353
+ };
1354
+ const handlePropertyLeave = () => {
1355
+ setTooltip(null);
1356
+ };
1357
+ const handleClose = React17.useCallback(() => {
1358
+ setIsDialogMode(false);
1359
+ setFiberHistory([]);
1360
+ setTooltip(null);
1361
+ setSelectedFiber(null);
1362
+ setElement(null);
1363
+ setRect(null);
1364
+ }, []);
1365
+ React17.useEffect(() => {
1366
+ const handleKeyDown = (e) => {
1367
+ if (e.key === "o" && (e.metaKey || e.ctrlKey) && rect) {
1368
+ e.preventDefault();
1369
+ const currentFiber = getFiberForDisplay();
1370
+ if (currentFiber) {
1371
+ setFiberHistory([currentFiber]);
1372
+ }
1373
+ setIsDialogMode(true);
1374
+ } else if (e.key === "Escape") {
1375
+ handleClose();
1376
+ }
1377
+ };
1378
+ window.addEventListener("keydown", handleKeyDown);
1379
+ return () => window.removeEventListener("keydown", handleKeyDown);
1380
+ }, [rect, getFiberForDisplay, handleClose]);
1381
+ React17.useEffect(() => {
1382
+ if (!isDialogMode) {
1383
+ setTooltip(null);
1384
+ setFiberHistory([]);
1385
+ setSelectedFiber(null);
1386
+ setElement(null);
1387
+ setRect(null);
1388
+ }
1389
+ }, [isDialogMode]);
1390
+ React17.useEffect(() => {
1391
+ const handleMouseMove = (event) => {
1392
+ if (isDialogMode) return;
1393
+ const isActive2 = chunk475IQUDX_cjs.isInstrumentationActive() || chunk475IQUDX_cjs.hasRDTHook();
1394
+ if (!isActive2) {
1395
+ setIsActive(false);
1396
+ return;
1397
+ }
1398
+ if (!dangerouslyRunInProduction) {
1399
+ const rdtHook = chunk475IQUDX_cjs.getRDTHook();
1400
+ for (const renderer of rdtHook.renderers.values()) {
1401
+ const buildType = chunk475IQUDX_cjs.detectReactBuildType(renderer);
1402
+ if (buildType === "production") {
1403
+ setIsActive(false);
1404
+ return;
1405
+ }
1406
+ }
1407
+ }
1408
+ if (!enabled) {
1409
+ setElement(null);
1410
+ setRect(null);
1411
+ setSelectedFiber(null);
1412
+ return;
1413
+ }
1414
+ if (!isDialogMode) {
1415
+ const element2 = document.elementFromPoint(
1416
+ event.clientX,
1417
+ event.clientY
1418
+ );
1419
+ if (!element2) return;
1420
+ setElement(element2);
1421
+ setRect(element2.getBoundingClientRect());
1422
+ setSelectedFiber(null);
1423
+ }
1424
+ };
1425
+ const throttledMouseMove = throttle(handleMouseMove, 16);
1426
+ document.addEventListener("mousemove", throttledMouseMove);
1427
+ return () => {
1428
+ document.removeEventListener("mousemove", throttledMouseMove);
1429
+ };
1430
+ }, [enabled, isDialogMode, dangerouslyRunInProduction]);
1431
+ React17.useEffect(() => {
1432
+ if (!rect) return;
1433
+ const padding = 10;
1434
+ const inspectorWidth = 400;
1435
+ const inspectorHeight = 320;
1436
+ let left = rect.left + rect.width + padding;
1437
+ let top = rect.top;
1438
+ if (left + inspectorWidth > window.innerWidth) {
1439
+ left = Math.max(padding, rect.left - inspectorWidth - padding);
1440
+ }
1441
+ if (top >= rect.top && top <= rect.bottom) {
1442
+ if (rect.bottom + inspectorHeight + padding <= window.innerHeight) {
1443
+ top = rect.bottom + padding;
1444
+ } else if (rect.top - inspectorHeight - padding >= 0) {
1445
+ top = rect.top - inspectorHeight - padding;
1446
+ } else {
1447
+ top = window.innerHeight - inspectorHeight - padding;
1448
+ }
1449
+ }
1450
+ top = Math.max(
1451
+ padding,
1452
+ Math.min(top, window.innerHeight - inspectorHeight - padding)
1453
+ );
1454
+ left = Math.max(
1455
+ padding,
1456
+ Math.min(left, window.innerWidth - inspectorWidth - padding)
1457
+ );
1458
+ setPosition({ top, left });
1459
+ }, [rect]);
1460
+ React17.useEffect(() => {
1461
+ var _a;
1462
+ if (selectedFiber) {
1463
+ const element2 = (_a = chunk475IQUDX_cjs.getNearestHostFiber(selectedFiber)) == null ? void 0 : _a.stateNode;
1464
+ if (element2) {
1465
+ setElement(element2);
1466
+ setRect(element2.getBoundingClientRect());
1467
+ }
1468
+ }
1469
+ }, [selectedFiber]);
1470
+ const handleBack = () => {
1471
+ const previousFiber = fiberHistory[fiberHistory.length - 1];
1472
+ if (previousFiber) {
1473
+ setFiberHistory((prev) => prev.slice(0, -1));
1474
+ setSelectedFiber(previousFiber);
1475
+ }
1476
+ };
1477
+ if (!rect || !isActive) return null;
1478
+ const fiber = getFiberForDisplay();
1479
+ if (!fiber) return null;
1480
+ let foundInspect = false;
1481
+ chunk475IQUDX_cjs.traverseFiber(
1482
+ fiber,
1483
+ (innerFiber) => {
1484
+ if (innerFiber.type === Inspector2) {
1485
+ foundInspect = true;
1486
+ return true;
1487
+ }
1488
+ },
1489
+ true
1490
+ );
1491
+ if (foundInspect) return null;
1492
+ const dialogStyle = isDialogMode ? {
1493
+ position: "fixed",
1494
+ top: "50%",
1495
+ left: "50%",
1496
+ transform: "translate(-50%, -50%)",
1497
+ width: "80vw",
1498
+ height: "80vh",
1499
+ maxWidth: "none",
1500
+ maxHeight: "none",
1501
+ padding: "2ch",
1502
+ boxShadow: "0 0 0 5px rgba(0, 0, 0, 0.3)",
1503
+ backgroundColor: "#1a1a1a",
1504
+ border: "1px solid #333",
1505
+ zIndex: 1e3
1506
+ } : {};
1507
+ const overlayStyle = isDialogMode ? {
1508
+ position: "fixed",
1509
+ top: 0,
1510
+ left: 0,
1511
+ right: 0,
1512
+ bottom: 0,
1513
+ backgroundColor: "rgba(0, 0, 0, 0.7)",
1514
+ zIndex: 999
1515
+ } : {};
1516
+ const fiberStack = fiber ? chunk475IQUDX_cjs.getFiberStack(fiber) : [];
1517
+ return /* @__PURE__ */ React17__default.default.createElement(React17__default.default.Fragment, null, isDialogMode && /* @__PURE__ */ React17__default.default.createElement(
1518
+ "div",
1519
+ {
1520
+ style: overlayStyle,
1521
+ onClick: handleClose,
1522
+ onKeyDown: (e) => {
1523
+ if (e.key === "Escape") {
1524
+ handleClose();
1525
+ }
1526
+ },
1527
+ role: "button",
1528
+ tabIndex: 0
1529
+ }
1530
+ ), /* @__PURE__ */ React17__default.default.createElement(
1531
+ "div",
1532
+ {
1533
+ style: chunk475IQUDX_cjs.__spreadValues({
1534
+ position: "fixed",
1535
+ backgroundColor: "#101010",
1536
+ color: "#FFF",
1537
+ zIndex: 50,
1538
+ padding: "1ch",
1539
+ width: "50ch",
1540
+ height: isDialogMode ? "80ch" : "40ch",
1541
+ transition: "all 150ms, z-index 0ms",
1542
+ overflow: "visible",
1543
+ boxShadow: "0 1px 3px 0 rgb(0 0 0 / 0.3)",
1544
+ border: "1px solid #282828",
1545
+ top: position.top,
1546
+ left: position.left,
1547
+ opacity: rect ? 1 : 0,
1548
+ transform: rect ? "translateY(0)" : "translateY(10px)",
1549
+ pointerEvents: rect ? "auto" : "none",
1550
+ display: "flex",
1551
+ flexDirection: "column"
1552
+ }, dialogStyle)
1553
+ },
1554
+ /* @__PURE__ */ React17__default.default.createElement(
1555
+ "div",
1556
+ {
1557
+ style: {
1558
+ display: "flex",
1559
+ justifyContent: "space-between",
1560
+ alignItems: "center"
1561
+ }
1562
+ },
1563
+ /* @__PURE__ */ React17__default.default.createElement("div", { style: { display: "flex", alignItems: "center", gap: "1ch" } }, fiberHistory.length > 0 && /* @__PURE__ */ React17__default.default.createElement(BackButton, { onClick: handleBack }), /* @__PURE__ */ React17__default.default.createElement(
1564
+ "h3",
1565
+ {
1566
+ style: {
1567
+ fontSize: "0.875rem",
1568
+ backgroundColor: "#161616",
1569
+ color: "#FFF",
1570
+ padding: "0 0.5ch",
1571
+ borderRadius: "0.125rem",
1572
+ width: "fit-content",
1573
+ margin: 0
1574
+ }
1575
+ },
1576
+ `<${typeof fiber.type === "string" ? fiber.type : chunk475IQUDX_cjs.getDisplayName(fiber.type) || "unknown"}>`,
1577
+ !isDialogMode && /* @__PURE__ */ React17__default.default.createElement(
1578
+ "span",
1579
+ {
1580
+ style: {
1581
+ marginLeft: "1ch",
1582
+ opacity: 0.5,
1583
+ fontSize: "0.75rem"
1584
+ }
1585
+ },
1586
+ `Press ${isMac ? "\u2318" : "ctrl"}O to expand`
1587
+ )
1588
+ )),
1589
+ isDialogMode && /* @__PURE__ */ React17__default.default.createElement(CloseButton, { onClick: handleClose })
1590
+ ),
1591
+ isDialogMode && /* @__PURE__ */ React17__default.default.createElement(
1592
+ "div",
1593
+ {
1594
+ style: {
1595
+ borderTop: "1px solid #282828",
1596
+ padding: "0.5ch 0",
1597
+ fontSize: "0.75rem",
1598
+ color: "#A0A0A0",
1599
+ whiteSpace: "nowrap",
1600
+ overflow: "hidden",
1601
+ textOverflow: "ellipsis"
1602
+ }
1603
+ },
1604
+ fiberStack.reverse().map((f, i, arr) => {
1605
+ const name = typeof f.type === "string" ? f.type : chunk475IQUDX_cjs.getDisplayName(f.type) || "unknown";
1606
+ if (!name) return null;
1607
+ return /* @__PURE__ */ React17__default.default.createElement(React17__default.default.Fragment, { key: chunk475IQUDX_cjs.getFiberId(f) }, /* @__PURE__ */ React17__default.default.createElement(
1608
+ BreadcrumbButton,
1609
+ {
1610
+ name,
1611
+ onClick: () => {
1612
+ var _a;
1613
+ if (selectedFiber) {
1614
+ setFiberHistory((prev) => [...prev, selectedFiber]);
1615
+ }
1616
+ setSelectedFiber(f);
1617
+ const element2 = (_a = chunk475IQUDX_cjs.getNearestHostFiber(f)) == null ? void 0 : _a.stateNode;
1618
+ if (element2) {
1619
+ setElement(element2);
1620
+ setRect(element2.getBoundingClientRect());
1621
+ }
1622
+ },
1623
+ onKeyDown: (e) => {
1624
+ var _a;
1625
+ if (e.key === "Enter" || e.key === " ") {
1626
+ if (selectedFiber) {
1627
+ setFiberHistory((prev) => [...prev, selectedFiber]);
1628
+ }
1629
+ setSelectedFiber(f);
1630
+ const element2 = (_a = chunk475IQUDX_cjs.getNearestHostFiber(f)) == null ? void 0 : _a.stateNode;
1631
+ if (element2) {
1632
+ setElement(element2);
1633
+ setRect(element2.getBoundingClientRect());
1634
+ }
1635
+ }
1636
+ }
1637
+ }
1638
+ ), i < arr.length - 1 && " > ");
1639
+ })
1640
+ ),
1641
+ /* @__PURE__ */ React17__default.default.createElement("div", { style: { flex: 1, overflow: "auto" } }, fiber && /* @__PURE__ */ React17__default.default.createElement(
1642
+ Inspector,
1643
+ {
1644
+ theme: theme3,
1645
+ data: fiber,
1646
+ expandLevel: 1,
1647
+ table: false,
1648
+ nodeRenderer: (props) => {
1649
+ const Component = props.depth === 0 ? ObjectRootLabel : ObjectLabel;
1650
+ return /* @__PURE__ */ React17__default.default.createElement(
1651
+ "span",
1652
+ {
1653
+ onMouseEnter: (e) => handlePropertyHover(e, props.name),
1654
+ onMouseLeave: handlePropertyLeave,
1655
+ style: {
1656
+ cursor: FIBER_PROP_EXPLANATIONS[props.name] ? "help" : "default",
1657
+ padding: "1px 0",
1658
+ display: "inline-block",
1659
+ fontWeight: FIBER_PROP_EXPLANATIONS[props.name] ? 500 : "normal"
1660
+ }
1661
+ },
1662
+ /* @__PURE__ */ React17__default.default.createElement(
1663
+ Component,
1664
+ {
1665
+ name: props.name,
1666
+ data: props.data,
1667
+ isNonenumerable: props.isNonenumerable
1668
+ }
1669
+ )
1670
+ );
1671
+ }
1672
+ }
1673
+ )),
1674
+ tooltip && /* @__PURE__ */ React17__default.default.createElement(
1675
+ "div",
1676
+ {
1677
+ style: {
1678
+ position: "absolute",
1679
+ zIndex: 1001,
1680
+ backgroundColor: "#161616",
1681
+ color: "#FFF",
1682
+ bottom: "2ch",
1683
+ right: "2ch",
1684
+ pointerEvents: "none",
1685
+ overflowY: "auto",
1686
+ padding: "1ch",
1687
+ fontSize: "1ch",
1688
+ border: "1px solid #282828",
1689
+ borderRadius: "0.25ch"
1690
+ }
1691
+ },
1692
+ tooltip
1693
+ )
1694
+ ), !isDialogMode && /* @__PURE__ */ React17__default.default.createElement(
1695
+ "div",
1696
+ {
1697
+ style: {
1698
+ position: "fixed",
1699
+ zIndex: 40,
1700
+ pointerEvents: "none",
1701
+ transition: "all 150ms",
1702
+ border: "1px dashed #505050",
1703
+ left: rect.left,
1704
+ top: rect.top,
1705
+ width: rect.width,
1706
+ height: rect.height,
1707
+ opacity: rect ? 1 : 0
1708
+ }
1709
+ }
1710
+ ));
1711
+ }
1712
+ );
1713
+ var Inspector2 = React17__default.default.memo((_a) => {
1714
+ var props = chunk475IQUDX_cjs.__objRest(_a, []);
1715
+ const [root, setRoot] = React17.useState(null);
1716
+ React17.useEffect(() => {
1717
+ const div = document.createElement("div");
1718
+ document.body.appendChild(div);
1719
+ const shadowRoot = div.attachShadow({ mode: "open" });
1720
+ setRoot(shadowRoot);
1721
+ return () => {
1722
+ document.body.removeChild(div);
1723
+ };
1724
+ }, []);
1725
+ if (!root) return null;
1726
+ return ReactDOM__default.default.createPortal(/* @__PURE__ */ React17__default.default.createElement(RawInspector, chunk475IQUDX_cjs.__spreadValues({}, props)), root);
1727
+ });
1728
+ var inspect_default = Inspector2;
1729
+
1730
+ exports.Inspector = Inspector2;
1731
+ exports.RawInspector = RawInspector;
1732
+ exports.default = inspect_default;