sidakram-bippy 0.2.24

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.
@@ -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;