bippy 0.2.5 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/inspect.cjs CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  require('./chunk-YZYCWAB2.cjs');
6
- var chunkCQFIS43Y_cjs = require('./chunk-CQFIS43Y.cjs');
6
+ var chunkA425RZH5_cjs = require('./chunk-A425RZH5.cjs');
7
7
  var React17 = require('react');
8
8
 
9
9
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
@@ -42,8 +42,8 @@ var __copyProps = (to, from, except, desc) => {
42
42
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(!mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
43
43
  var require_is_object = __commonJS({
44
44
  "node_modules/is-object/index.js"(exports, module) {
45
- module.exports = function isObject(x) {
46
- return typeof x === "object" && x !== null;
45
+ module.exports = function isObject(x2) {
46
+ return typeof x2 === "object" && x2 !== null;
47
47
  };
48
48
  }
49
49
  });
@@ -165,40 +165,40 @@ var unselectable = {
165
165
  OUserSelect: "none",
166
166
  userSelect: "none"
167
167
  };
168
- var createTheme = (theme3) => ({
168
+ var createTheme = (theme32) => ({
169
169
  DOMNodePreview: {
170
170
  htmlOpenTag: {
171
171
  base: {
172
- color: theme3.HTML_TAG_COLOR
172
+ color: theme32.HTML_TAG_COLOR
173
173
  },
174
174
  tagName: {
175
- color: theme3.HTML_TAGNAME_COLOR,
176
- textTransform: theme3.HTML_TAGNAME_TEXT_TRANSFORM
175
+ color: theme32.HTML_TAGNAME_COLOR,
176
+ textTransform: theme32.HTML_TAGNAME_TEXT_TRANSFORM
177
177
  },
178
178
  htmlAttributeName: {
179
- color: theme3.HTML_ATTRIBUTE_NAME_COLOR
179
+ color: theme32.HTML_ATTRIBUTE_NAME_COLOR
180
180
  },
181
181
  htmlAttributeValue: {
182
- color: theme3.HTML_ATTRIBUTE_VALUE_COLOR
182
+ color: theme32.HTML_ATTRIBUTE_VALUE_COLOR
183
183
  }
184
184
  },
185
185
  htmlCloseTag: {
186
186
  base: {
187
- color: theme3.HTML_TAG_COLOR
187
+ color: theme32.HTML_TAG_COLOR
188
188
  },
189
189
  offsetLeft: {
190
- marginLeft: -theme3.TREENODE_PADDING_LEFT
190
+ marginLeft: -theme32.TREENODE_PADDING_LEFT
191
191
  },
192
192
  tagName: {
193
- color: theme3.HTML_TAGNAME_COLOR,
194
- textTransform: theme3.HTML_TAGNAME_TEXT_TRANSFORM
193
+ color: theme32.HTML_TAGNAME_COLOR,
194
+ textTransform: theme32.HTML_TAGNAME_TEXT_TRANSFORM
195
195
  }
196
196
  },
197
197
  htmlComment: {
198
- color: theme3.HTML_COMMENT_COLOR
198
+ color: theme32.HTML_COMMENT_COLOR
199
199
  },
200
200
  htmlDoctype: {
201
- color: theme3.HTML_DOCTYPE_COLOR
201
+ color: theme32.HTML_DOCTYPE_COLOR
202
202
  }
203
203
  },
204
204
  ObjectPreview: {
@@ -208,12 +208,12 @@ var createTheme = (theme3) => ({
208
208
  preview: {
209
209
  fontStyle: "italic"
210
210
  },
211
- arrayMaxProperties: theme3.OBJECT_PREVIEW_ARRAY_MAX_PROPERTIES,
212
- objectMaxProperties: theme3.OBJECT_PREVIEW_OBJECT_MAX_PROPERTIES
211
+ arrayMaxProperties: theme32.OBJECT_PREVIEW_ARRAY_MAX_PROPERTIES,
212
+ objectMaxProperties: theme32.OBJECT_PREVIEW_OBJECT_MAX_PROPERTIES
213
213
  },
214
214
  ObjectName: {
215
215
  base: {
216
- color: theme3.OBJECT_NAME_COLOR
216
+ color: theme32.OBJECT_NAME_COLOR
217
217
  },
218
218
  dimmed: {
219
219
  opacity: 0.6
@@ -221,28 +221,28 @@ var createTheme = (theme3) => ({
221
221
  },
222
222
  ObjectValue: {
223
223
  objectValueNull: {
224
- color: theme3.OBJECT_VALUE_NULL_COLOR
224
+ color: theme32.OBJECT_VALUE_NULL_COLOR
225
225
  },
226
226
  objectValueUndefined: {
227
- color: theme3.OBJECT_VALUE_UNDEFINED_COLOR
227
+ color: theme32.OBJECT_VALUE_UNDEFINED_COLOR
228
228
  },
229
229
  objectValueRegExp: {
230
- color: theme3.OBJECT_VALUE_REGEXP_COLOR
230
+ color: theme32.OBJECT_VALUE_REGEXP_COLOR
231
231
  },
232
232
  objectValueString: {
233
- color: theme3.OBJECT_VALUE_STRING_COLOR
233
+ color: theme32.OBJECT_VALUE_STRING_COLOR
234
234
  },
235
235
  objectValueSymbol: {
236
- color: theme3.OBJECT_VALUE_SYMBOL_COLOR
236
+ color: theme32.OBJECT_VALUE_SYMBOL_COLOR
237
237
  },
238
238
  objectValueNumber: {
239
- color: theme3.OBJECT_VALUE_NUMBER_COLOR
239
+ color: theme32.OBJECT_VALUE_NUMBER_COLOR
240
240
  },
241
241
  objectValueBoolean: {
242
- color: theme3.OBJECT_VALUE_BOOLEAN_COLOR
242
+ color: theme32.OBJECT_VALUE_BOOLEAN_COLOR
243
243
  },
244
244
  objectValueFunctionPrefix: {
245
- color: theme3.OBJECT_VALUE_FUNCTION_PREFIX_COLOR,
245
+ color: theme32.OBJECT_VALUE_FUNCTION_PREFIX_COLOR,
246
246
  fontStyle: "italic"
247
247
  },
248
248
  objectValueFunctionName: {
@@ -258,30 +258,30 @@ var createTheme = (theme3) => ({
258
258
  },
259
259
  TreeNode: {
260
260
  treeNodeBase: {
261
- color: theme3.BASE_COLOR,
262
- backgroundColor: theme3.BASE_BACKGROUND_COLOR,
263
- lineHeight: theme3.TREENODE_LINE_HEIGHT,
261
+ color: theme32.BASE_COLOR,
262
+ backgroundColor: theme32.BASE_BACKGROUND_COLOR,
263
+ lineHeight: theme32.TREENODE_LINE_HEIGHT,
264
264
  cursor: "default",
265
265
  boxSizing: "border-box",
266
266
  listStyle: "none",
267
- fontFamily: theme3.TREENODE_FONT_FAMILY,
268
- fontSize: theme3.TREENODE_FONT_SIZE
267
+ fontFamily: theme32.TREENODE_FONT_FAMILY,
268
+ fontSize: theme32.TREENODE_FONT_SIZE
269
269
  },
270
270
  treeNodePreviewContainer: {},
271
271
  treeNodePlaceholder: {
272
272
  whiteSpace: "pre",
273
- fontSize: theme3.ARROW_FONT_SIZE,
274
- marginRight: theme3.ARROW_MARGIN_RIGHT,
273
+ fontSize: theme32.ARROW_FONT_SIZE,
274
+ marginRight: theme32.ARROW_MARGIN_RIGHT,
275
275
  ...unselectable
276
276
  },
277
277
  treeNodeArrow: {
278
278
  base: {
279
- color: theme3.ARROW_COLOR,
279
+ color: theme32.ARROW_COLOR,
280
280
  display: "inline-block",
281
- fontSize: theme3.ARROW_FONT_SIZE,
282
- marginRight: theme3.ARROW_MARGIN_RIGHT,
283
- ...parseFloat(theme3.ARROW_ANIMATION_DURATION) > 0 ? {
284
- transition: `transform ${theme3.ARROW_ANIMATION_DURATION} ease 0s`
281
+ fontSize: theme32.ARROW_FONT_SIZE,
282
+ marginRight: theme32.ARROW_MARGIN_RIGHT,
283
+ ...parseFloat(theme32.ARROW_ANIMATION_DURATION) > 0 ? {
284
+ transition: `transform ${theme32.ARROW_ANIMATION_DURATION} ease 0s`
285
285
  } : {},
286
286
  ...unselectable
287
287
  },
@@ -298,16 +298,16 @@ var createTheme = (theme3) => ({
298
298
  },
299
299
  treeNodeChildNodesContainer: {
300
300
  margin: 0,
301
- paddingLeft: theme3.TREENODE_PADDING_LEFT
301
+ paddingLeft: theme32.TREENODE_PADDING_LEFT
302
302
  }
303
303
  },
304
304
  TableInspector: {
305
305
  base: {
306
- color: theme3.BASE_COLOR,
306
+ color: theme32.BASE_COLOR,
307
307
  position: "relative",
308
- border: `1px solid ${theme3.TABLE_BORDER_COLOR}`,
309
- fontFamily: theme3.BASE_FONT_FAMILY,
310
- fontSize: theme3.BASE_FONT_SIZE,
308
+ border: `1px solid ${theme32.TABLE_BORDER_COLOR}`,
309
+ fontFamily: theme32.BASE_FONT_FAMILY,
310
+ fontSize: theme32.BASE_FONT_SIZE,
311
311
  lineHeight: "120%",
312
312
  boxSizing: "border-box",
313
313
  cursor: "default"
@@ -364,13 +364,13 @@ var createTheme = (theme3) => ({
364
364
  bottom: 0,
365
365
  borderTop: "0 none transparent",
366
366
  margin: 0,
367
- backgroundImage: theme3.TABLE_DATA_BACKGROUND_IMAGE,
368
- backgroundSize: theme3.TABLE_DATA_BACKGROUND_SIZE,
367
+ backgroundImage: theme32.TABLE_DATA_BACKGROUND_IMAGE,
368
+ backgroundSize: theme32.TABLE_DATA_BACKGROUND_SIZE,
369
369
  tableLayout: "fixed",
370
370
  borderSpacing: 0,
371
371
  borderCollapse: "separate",
372
372
  width: "100%",
373
- fontSize: theme3.BASE_FONT_SIZE,
373
+ fontSize: theme32.BASE_FONT_SIZE,
374
374
  lineHeight: "120%"
375
375
  }
376
376
  },
@@ -379,8 +379,8 @@ var createTheme = (theme3) => ({
379
379
  position: "relative",
380
380
  height: "auto",
381
381
  textAlign: "left",
382
- backgroundColor: theme3.TABLE_TH_BACKGROUND_COLOR,
383
- borderBottom: `1px solid ${theme3.TABLE_BORDER_COLOR}`,
382
+ backgroundColor: theme32.TABLE_TH_BACKGROUND_COLOR,
383
+ borderBottom: `1px solid ${theme32.TABLE_BORDER_COLOR}`,
384
384
  fontWeight: "normal",
385
385
  verticalAlign: "middle",
386
386
  padding: "0 4px",
@@ -389,14 +389,14 @@ var createTheme = (theme3) => ({
389
389
  overflow: "hidden",
390
390
  lineHeight: "14px",
391
391
  ":hover": {
392
- backgroundColor: theme3.TABLE_TH_HOVER_COLOR
392
+ backgroundColor: theme32.TABLE_TH_HOVER_COLOR
393
393
  }
394
394
  },
395
395
  div: {
396
396
  whiteSpace: "nowrap",
397
397
  textOverflow: "ellipsis",
398
398
  overflow: "hidden",
399
- fontSize: theme3.BASE_FONT_SIZE,
399
+ fontSize: theme32.BASE_FONT_SIZE,
400
400
  lineHeight: "120%"
401
401
  }
402
402
  },
@@ -405,7 +405,7 @@ var createTheme = (theme3) => ({
405
405
  borderLeft: "none"
406
406
  },
407
407
  solid: {
408
- borderLeft: `1px solid ${theme3.TABLE_BORDER_COLOR}`
408
+ borderLeft: `1px solid ${theme32.TABLE_BORDER_COLOR}`
409
409
  }
410
410
  },
411
411
  TableInspectorSortIcon: {
@@ -414,7 +414,7 @@ var createTheme = (theme3) => ({
414
414
  width: 8,
415
415
  height: 7,
416
416
  marginTop: -7,
417
- color: theme3.TABLE_SORT_ICON_COLOR,
417
+ color: theme32.TABLE_SORT_ICON_COLOR,
418
418
  fontSize: 12,
419
419
  ...unselectable
420
420
  }
@@ -426,17 +426,17 @@ var useStyles = (baseStylesKey) => {
426
426
  return themeStyles[baseStylesKey];
427
427
  };
428
428
  var themeAcceptor = (WrappedComponent) => {
429
- const ThemeAcceptor = ({ theme: theme3 = DEFAULT_THEME_NAME, ...restProps }) => {
429
+ const ThemeAcceptor = ({ theme: theme32 = DEFAULT_THEME_NAME, ...restProps }) => {
430
430
  const themeStyles = React17.useMemo(() => {
431
- switch (Object.prototype.toString.call(theme3)) {
431
+ switch (Object.prototype.toString.call(theme32)) {
432
432
  case "[object String]":
433
- return createTheme(themes_exports[theme3]);
433
+ return createTheme(themes_exports[theme32]);
434
434
  case "[object Object]":
435
- return createTheme(theme3);
435
+ return createTheme(theme32);
436
436
  default:
437
437
  return createTheme(themes_exports[DEFAULT_THEME_NAME]);
438
438
  }
439
- }, [theme3]);
439
+ }, [theme32]);
440
440
  return /* @__PURE__ */ React17__default.default.createElement(ThemeContext.Provider, {
441
441
  value: themeStyles
442
442
  }, /* @__PURE__ */ React17__default.default.createElement(WrappedComponent, {
@@ -461,7 +461,7 @@ var TreeNode = React17.memo((props) => {
461
461
  shouldShowPlaceholder: true,
462
462
  ...props
463
463
  };
464
- const { expanded, onClick, children, nodeRenderer, title, shouldShowArrow, shouldShowPlaceholder } = props;
464
+ const { expanded, onClick, children: children2, nodeRenderer, title, shouldShowArrow, shouldShowPlaceholder } = props;
465
465
  const styles = useStyles("TreeNode");
466
466
  const NodeRenderer = nodeRenderer;
467
467
  return /* @__PURE__ */ React17__default.default.createElement("li", {
@@ -472,7 +472,7 @@ var TreeNode = React17.memo((props) => {
472
472
  }, /* @__PURE__ */ React17__default.default.createElement("div", {
473
473
  style: styles.treeNodePreviewContainer,
474
474
  onClick
475
- }, shouldShowArrow || React17.Children.count(children) > 0 ? /* @__PURE__ */ React17__default.default.createElement(Arrow, {
475
+ }, shouldShowArrow || React17.Children.count(children2) > 0 ? /* @__PURE__ */ React17__default.default.createElement(Arrow, {
476
476
  expanded,
477
477
  styles: styles.treeNodeArrow
478
478
  }) : shouldShowPlaceholder && /* @__PURE__ */ React17__default.default.createElement("span", {
@@ -482,7 +482,7 @@ var TreeNode = React17.memo((props) => {
482
482
  })), /* @__PURE__ */ React17__default.default.createElement("ol", {
483
483
  role: "group",
484
484
  style: styles.treeNodeChildNodesContainer
485
- }, expanded ? children : void 0));
485
+ }, expanded ? children2 : void 0));
486
486
  });
487
487
  var DEFAULT_ROOT_PATH = "$";
488
488
  var WILDCARD = "*";
@@ -493,7 +493,7 @@ var wildcardPathsFromLevel = (level) => {
493
493
  return Array.from({ length: level }, (_, i) => [DEFAULT_ROOT_PATH].concat(Array.from({ length: i }, () => "*")).join("."));
494
494
  };
495
495
  var getExpandedPaths = (data, dataIterator, expandPaths, expandLevel, prevExpandedPaths) => {
496
- const wildcardPaths = [].concat(wildcardPathsFromLevel(expandLevel)).concat(expandPaths).filter((path) => typeof path === "string");
496
+ const wildcardPaths = [].concat(wildcardPathsFromLevel(expandLevel)).concat(expandPaths).filter((path2) => typeof path2 === "string");
497
497
  const expandedPaths = [];
498
498
  wildcardPaths.forEach((wildcardPath) => {
499
499
  const keyPaths = wildcardPath.split(".");
@@ -524,20 +524,20 @@ var getExpandedPaths = (data, dataIterator, expandPaths, expandLevel, prevExpand
524
524
  };
525
525
  populatePaths(data, "", 0);
526
526
  });
527
- return expandedPaths.reduce((obj, path) => {
528
- obj[path] = true;
527
+ return expandedPaths.reduce((obj, path2) => {
528
+ obj[path2] = true;
529
529
  return obj;
530
530
  }, { ...prevExpandedPaths });
531
531
  };
532
532
  var ConnectedTreeNode = React17.memo((props) => {
533
- const { data, dataIterator, path, depth, nodeRenderer } = props;
533
+ const { data, dataIterator, path: path2, depth, nodeRenderer } = props;
534
534
  const [expandedPaths, setExpandedPaths] = React17.useContext(ExpandedPathsContext);
535
535
  const nodeHasChildNodes = hasChildNodes(data, dataIterator);
536
- const expanded = !!expandedPaths[path];
536
+ const expanded = !!expandedPaths[path2];
537
537
  const handleClick = React17.useCallback(() => nodeHasChildNodes && setExpandedPaths((prevExpandedPaths) => ({
538
538
  ...prevExpandedPaths,
539
- [path]: !expanded
540
- })), [nodeHasChildNodes, setExpandedPaths, path, expanded]);
539
+ [path2]: !expanded
540
+ })), [nodeHasChildNodes, setExpandedPaths, path2, expanded]);
541
541
  return /* @__PURE__ */ React17__default.default.createElement(TreeNode, {
542
542
  expanded,
543
543
  onClick: handleClick,
@@ -550,7 +550,7 @@ var ConnectedTreeNode = React17.memo((props) => {
550
550
  name,
551
551
  data: data2,
552
552
  depth: depth + 1,
553
- path: `${path}.${name}`,
553
+ path: `${path2}.${name}`,
554
554
  key: name,
555
555
  dataIterator,
556
556
  nodeRenderer,
@@ -667,7 +667,7 @@ function intersperse(arr, sep) {
667
667
  if (arr.length === 0) {
668
668
  return [];
669
669
  }
670
- return arr.slice(1).reduce((xs, x) => xs.concat([sep, x]), [arr[0]]);
670
+ return arr.slice(1).reduce((xs, x2) => xs.concat([sep, x2]), [arr[0]]);
671
671
  }
672
672
  var ObjectPreview = ({ data }) => {
673
673
  const styles = useStyles("ObjectPreview");
@@ -843,9 +843,9 @@ function getHeaders(data) {
843
843
  const row = data[rowHeader];
844
844
  if (typeof row === "object" && row !== null) {
845
845
  const cols = Object.keys(row);
846
- cols.reduce((xs, x) => {
847
- if (!xs.includes(x)) {
848
- xs.push(x);
846
+ cols.reduce((xs, x2) => {
847
+ if (!xs.includes(x2)) {
848
+ xs.push(x2);
849
849
  }
850
850
  return xs;
851
851
  }, colHeaders2);
@@ -910,7 +910,7 @@ var TH = ({
910
910
  sorted = false,
911
911
  onClick = void 0,
912
912
  borderStyle = {},
913
- children,
913
+ children: children2,
914
914
  ...thProps
915
915
  }) => {
916
916
  const styles = useStyles("TableInspectorTH");
@@ -929,7 +929,7 @@ var TH = ({
929
929
  onClick
930
930
  }, /* @__PURE__ */ React17__default.default.createElement("div", {
931
931
  style: styles.div
932
- }, children), sorted && /* @__PURE__ */ React17__default.default.createElement(SortIconContainer, null, /* @__PURE__ */ React17__default.default.createElement(SortIcon, {
932
+ }, children2), sorted && /* @__PURE__ */ React17__default.default.createElement(SortIconContainer, null, /* @__PURE__ */ React17__default.default.createElement(SortIcon, {
933
933
  sortAscending
934
934
  })));
935
935
  };
@@ -1015,7 +1015,7 @@ var TableInspector = ({
1015
1015
  }
1016
1016
  }
1017
1017
  if (columnDataWithRowIndexes !== void 0) {
1018
- const comparator = (mapper, ascending) => {
1018
+ const comparator = (mapper, ascending2) => {
1019
1019
  return (a, b) => {
1020
1020
  const v1 = mapper(a);
1021
1021
  const v2 = mapper(b);
@@ -1045,7 +1045,7 @@ var TableInspector = ({
1045
1045
  };
1046
1046
  result = lt(order[type1], order[type2]);
1047
1047
  }
1048
- if (!ascending)
1048
+ if (!ascending2)
1049
1049
  result = -result;
1050
1050
  return result;
1051
1051
  };
@@ -1203,6 +1203,3386 @@ var Inspector = ({ table = false, data, ...rest }) => {
1203
1203
  });
1204
1204
  };
1205
1205
 
1206
+ // node_modules/.pnpm/d3-dispatch@3.0.1/node_modules/d3-dispatch/src/dispatch.js
1207
+ var noop = { value: () => {
1208
+ } };
1209
+ function dispatch() {
1210
+ for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {
1211
+ if (!(t = arguments[i] + "") || t in _ || /[\s.]/.test(t)) throw new Error("illegal type: " + t);
1212
+ _[t] = [];
1213
+ }
1214
+ return new Dispatch(_);
1215
+ }
1216
+ function Dispatch(_) {
1217
+ this._ = _;
1218
+ }
1219
+ function parseTypenames(typenames, types) {
1220
+ return typenames.trim().split(/^|\s+/).map(function(t) {
1221
+ var name = "", i = t.indexOf(".");
1222
+ if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);
1223
+ if (t && !types.hasOwnProperty(t)) throw new Error("unknown type: " + t);
1224
+ return { type: t, name };
1225
+ });
1226
+ }
1227
+ Dispatch.prototype = dispatch.prototype = {
1228
+ constructor: Dispatch,
1229
+ on: function(typename, callback) {
1230
+ var _ = this._, T = parseTypenames(typename + "", _), t, i = -1, n = T.length;
1231
+ if (arguments.length < 2) {
1232
+ while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;
1233
+ return;
1234
+ }
1235
+ if (callback != null && typeof callback !== "function") throw new Error("invalid callback: " + callback);
1236
+ while (++i < n) {
1237
+ if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);
1238
+ else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);
1239
+ }
1240
+ return this;
1241
+ },
1242
+ copy: function() {
1243
+ var copy = {}, _ = this._;
1244
+ for (var t in _) copy[t] = _[t].slice();
1245
+ return new Dispatch(copy);
1246
+ },
1247
+ call: function(type2, that) {
1248
+ if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];
1249
+ if (!this._.hasOwnProperty(type2)) throw new Error("unknown type: " + type2);
1250
+ for (t = this._[type2], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);
1251
+ },
1252
+ apply: function(type2, that, args) {
1253
+ if (!this._.hasOwnProperty(type2)) throw new Error("unknown type: " + type2);
1254
+ for (var t = this._[type2], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);
1255
+ }
1256
+ };
1257
+ function get(type2, name) {
1258
+ for (var i = 0, n = type2.length, c; i < n; ++i) {
1259
+ if ((c = type2[i]).name === name) {
1260
+ return c.value;
1261
+ }
1262
+ }
1263
+ }
1264
+ function set(type2, name, callback) {
1265
+ for (var i = 0, n = type2.length; i < n; ++i) {
1266
+ if (type2[i].name === name) {
1267
+ type2[i] = noop, type2 = type2.slice(0, i).concat(type2.slice(i + 1));
1268
+ break;
1269
+ }
1270
+ }
1271
+ if (callback != null) type2.push({ name, value: callback });
1272
+ return type2;
1273
+ }
1274
+ var dispatch_default = dispatch;
1275
+
1276
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/namespaces.js
1277
+ var xhtml = "http://www.w3.org/1999/xhtml";
1278
+ var namespaces_default = {
1279
+ svg: "http://www.w3.org/2000/svg",
1280
+ xhtml,
1281
+ xlink: "http://www.w3.org/1999/xlink",
1282
+ xml: "http://www.w3.org/XML/1998/namespace",
1283
+ xmlns: "http://www.w3.org/2000/xmlns/"
1284
+ };
1285
+
1286
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/namespace.js
1287
+ function namespace_default(name) {
1288
+ var prefix = name += "", i = prefix.indexOf(":");
1289
+ if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns") name = name.slice(i + 1);
1290
+ return namespaces_default.hasOwnProperty(prefix) ? { space: namespaces_default[prefix], local: name } : name;
1291
+ }
1292
+
1293
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/creator.js
1294
+ function creatorInherit(name) {
1295
+ return function() {
1296
+ var document2 = this.ownerDocument, uri = this.namespaceURI;
1297
+ return uri === xhtml && document2.documentElement.namespaceURI === xhtml ? document2.createElement(name) : document2.createElementNS(uri, name);
1298
+ };
1299
+ }
1300
+ function creatorFixed(fullname) {
1301
+ return function() {
1302
+ return this.ownerDocument.createElementNS(fullname.space, fullname.local);
1303
+ };
1304
+ }
1305
+ function creator_default(name) {
1306
+ var fullname = namespace_default(name);
1307
+ return (fullname.local ? creatorFixed : creatorInherit)(fullname);
1308
+ }
1309
+
1310
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selector.js
1311
+ function none() {
1312
+ }
1313
+ function selector_default(selector) {
1314
+ return selector == null ? none : function() {
1315
+ return this.querySelector(selector);
1316
+ };
1317
+ }
1318
+
1319
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/select.js
1320
+ function select_default(select) {
1321
+ if (typeof select !== "function") select = selector_default(select);
1322
+ for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
1323
+ for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {
1324
+ if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {
1325
+ if ("__data__" in node) subnode.__data__ = node.__data__;
1326
+ subgroup[i] = subnode;
1327
+ }
1328
+ }
1329
+ }
1330
+ return new Selection(subgroups, this._parents);
1331
+ }
1332
+
1333
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/array.js
1334
+ function array(x2) {
1335
+ return x2 == null ? [] : Array.isArray(x2) ? x2 : Array.from(x2);
1336
+ }
1337
+
1338
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selectorAll.js
1339
+ function empty() {
1340
+ return [];
1341
+ }
1342
+ function selectorAll_default(selector) {
1343
+ return selector == null ? empty : function() {
1344
+ return this.querySelectorAll(selector);
1345
+ };
1346
+ }
1347
+
1348
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/selectAll.js
1349
+ function arrayAll(select) {
1350
+ return function() {
1351
+ return array(select.apply(this, arguments));
1352
+ };
1353
+ }
1354
+ function selectAll_default(select) {
1355
+ if (typeof select === "function") select = arrayAll(select);
1356
+ else select = selectorAll_default(select);
1357
+ for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {
1358
+ for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
1359
+ if (node = group[i]) {
1360
+ subgroups.push(select.call(node, node.__data__, i, group));
1361
+ parents.push(node);
1362
+ }
1363
+ }
1364
+ }
1365
+ return new Selection(subgroups, parents);
1366
+ }
1367
+
1368
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/matcher.js
1369
+ function matcher_default(selector) {
1370
+ return function() {
1371
+ return this.matches(selector);
1372
+ };
1373
+ }
1374
+ function childMatcher(selector) {
1375
+ return function(node) {
1376
+ return node.matches(selector);
1377
+ };
1378
+ }
1379
+
1380
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/selectChild.js
1381
+ var find = Array.prototype.find;
1382
+ function childFind(match) {
1383
+ return function() {
1384
+ return find.call(this.children, match);
1385
+ };
1386
+ }
1387
+ function childFirst() {
1388
+ return this.firstElementChild;
1389
+ }
1390
+ function selectChild_default(match) {
1391
+ return this.select(match == null ? childFirst : childFind(typeof match === "function" ? match : childMatcher(match)));
1392
+ }
1393
+
1394
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/selectChildren.js
1395
+ var filter = Array.prototype.filter;
1396
+ function children() {
1397
+ return Array.from(this.children);
1398
+ }
1399
+ function childrenFilter(match) {
1400
+ return function() {
1401
+ return filter.call(this.children, match);
1402
+ };
1403
+ }
1404
+ function selectChildren_default(match) {
1405
+ return this.selectAll(match == null ? children : childrenFilter(typeof match === "function" ? match : childMatcher(match)));
1406
+ }
1407
+
1408
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/filter.js
1409
+ function filter_default(match) {
1410
+ if (typeof match !== "function") match = matcher_default(match);
1411
+ for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
1412
+ for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {
1413
+ if ((node = group[i]) && match.call(node, node.__data__, i, group)) {
1414
+ subgroup.push(node);
1415
+ }
1416
+ }
1417
+ }
1418
+ return new Selection(subgroups, this._parents);
1419
+ }
1420
+
1421
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/sparse.js
1422
+ function sparse_default(update) {
1423
+ return new Array(update.length);
1424
+ }
1425
+
1426
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/enter.js
1427
+ function enter_default() {
1428
+ return new Selection(this._enter || this._groups.map(sparse_default), this._parents);
1429
+ }
1430
+ function EnterNode(parent, datum2) {
1431
+ this.ownerDocument = parent.ownerDocument;
1432
+ this.namespaceURI = parent.namespaceURI;
1433
+ this._next = null;
1434
+ this._parent = parent;
1435
+ this.__data__ = datum2;
1436
+ }
1437
+ EnterNode.prototype = {
1438
+ constructor: EnterNode,
1439
+ appendChild: function(child) {
1440
+ return this._parent.insertBefore(child, this._next);
1441
+ },
1442
+ insertBefore: function(child, next) {
1443
+ return this._parent.insertBefore(child, next);
1444
+ },
1445
+ querySelector: function(selector) {
1446
+ return this._parent.querySelector(selector);
1447
+ },
1448
+ querySelectorAll: function(selector) {
1449
+ return this._parent.querySelectorAll(selector);
1450
+ }
1451
+ };
1452
+
1453
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/constant.js
1454
+ function constant_default(x2) {
1455
+ return function() {
1456
+ return x2;
1457
+ };
1458
+ }
1459
+
1460
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/data.js
1461
+ function bindIndex(parent, group, enter, update, exit, data) {
1462
+ var i = 0, node, groupLength = group.length, dataLength = data.length;
1463
+ for (; i < dataLength; ++i) {
1464
+ if (node = group[i]) {
1465
+ node.__data__ = data[i];
1466
+ update[i] = node;
1467
+ } else {
1468
+ enter[i] = new EnterNode(parent, data[i]);
1469
+ }
1470
+ }
1471
+ for (; i < groupLength; ++i) {
1472
+ if (node = group[i]) {
1473
+ exit[i] = node;
1474
+ }
1475
+ }
1476
+ }
1477
+ function bindKey(parent, group, enter, update, exit, data, key) {
1478
+ var i, node, nodeByKeyValue = /* @__PURE__ */ new Map(), groupLength = group.length, dataLength = data.length, keyValues = new Array(groupLength), keyValue;
1479
+ for (i = 0; i < groupLength; ++i) {
1480
+ if (node = group[i]) {
1481
+ keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + "";
1482
+ if (nodeByKeyValue.has(keyValue)) {
1483
+ exit[i] = node;
1484
+ } else {
1485
+ nodeByKeyValue.set(keyValue, node);
1486
+ }
1487
+ }
1488
+ }
1489
+ for (i = 0; i < dataLength; ++i) {
1490
+ keyValue = key.call(parent, data[i], i, data) + "";
1491
+ if (node = nodeByKeyValue.get(keyValue)) {
1492
+ update[i] = node;
1493
+ node.__data__ = data[i];
1494
+ nodeByKeyValue.delete(keyValue);
1495
+ } else {
1496
+ enter[i] = new EnterNode(parent, data[i]);
1497
+ }
1498
+ }
1499
+ for (i = 0; i < groupLength; ++i) {
1500
+ if ((node = group[i]) && nodeByKeyValue.get(keyValues[i]) === node) {
1501
+ exit[i] = node;
1502
+ }
1503
+ }
1504
+ }
1505
+ function datum(node) {
1506
+ return node.__data__;
1507
+ }
1508
+ function data_default(value, key) {
1509
+ if (!arguments.length) return Array.from(this, datum);
1510
+ var bind = key ? bindKey : bindIndex, parents = this._parents, groups = this._groups;
1511
+ if (typeof value !== "function") value = constant_default(value);
1512
+ for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {
1513
+ var parent = parents[j], group = groups[j], groupLength = group.length, data = arraylike(value.call(parent, parent && parent.__data__, j, parents)), dataLength = data.length, enterGroup = enter[j] = new Array(dataLength), updateGroup = update[j] = new Array(dataLength), exitGroup = exit[j] = new Array(groupLength);
1514
+ bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);
1515
+ for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {
1516
+ if (previous = enterGroup[i0]) {
1517
+ if (i0 >= i1) i1 = i0 + 1;
1518
+ while (!(next = updateGroup[i1]) && ++i1 < dataLength) ;
1519
+ previous._next = next || null;
1520
+ }
1521
+ }
1522
+ }
1523
+ update = new Selection(update, parents);
1524
+ update._enter = enter;
1525
+ update._exit = exit;
1526
+ return update;
1527
+ }
1528
+ function arraylike(data) {
1529
+ return typeof data === "object" && "length" in data ? data : Array.from(data);
1530
+ }
1531
+
1532
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/exit.js
1533
+ function exit_default() {
1534
+ return new Selection(this._exit || this._groups.map(sparse_default), this._parents);
1535
+ }
1536
+
1537
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/join.js
1538
+ function join_default(onenter, onupdate, onexit) {
1539
+ var enter = this.enter(), update = this, exit = this.exit();
1540
+ if (typeof onenter === "function") {
1541
+ enter = onenter(enter);
1542
+ if (enter) enter = enter.selection();
1543
+ } else {
1544
+ enter = enter.append(onenter + "");
1545
+ }
1546
+ if (onupdate != null) {
1547
+ update = onupdate(update);
1548
+ if (update) update = update.selection();
1549
+ }
1550
+ if (onexit == null) exit.remove();
1551
+ else onexit(exit);
1552
+ return enter && update ? enter.merge(update).order() : update;
1553
+ }
1554
+
1555
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/merge.js
1556
+ function merge_default(context) {
1557
+ var selection2 = context.selection ? context.selection() : context;
1558
+ for (var groups0 = this._groups, groups1 = selection2._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {
1559
+ for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {
1560
+ if (node = group0[i] || group1[i]) {
1561
+ merge[i] = node;
1562
+ }
1563
+ }
1564
+ }
1565
+ for (; j < m0; ++j) {
1566
+ merges[j] = groups0[j];
1567
+ }
1568
+ return new Selection(merges, this._parents);
1569
+ }
1570
+
1571
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/order.js
1572
+ function order_default() {
1573
+ for (var groups = this._groups, j = -1, m = groups.length; ++j < m; ) {
1574
+ for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0; ) {
1575
+ if (node = group[i]) {
1576
+ if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);
1577
+ next = node;
1578
+ }
1579
+ }
1580
+ }
1581
+ return this;
1582
+ }
1583
+
1584
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/sort.js
1585
+ function sort_default(compare) {
1586
+ if (!compare) compare = ascending;
1587
+ function compareNode(a, b) {
1588
+ return a && b ? compare(a.__data__, b.__data__) : !a - !b;
1589
+ }
1590
+ for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {
1591
+ for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {
1592
+ if (node = group[i]) {
1593
+ sortgroup[i] = node;
1594
+ }
1595
+ }
1596
+ sortgroup.sort(compareNode);
1597
+ }
1598
+ return new Selection(sortgroups, this._parents).order();
1599
+ }
1600
+ function ascending(a, b) {
1601
+ return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
1602
+ }
1603
+
1604
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/call.js
1605
+ function call_default() {
1606
+ var callback = arguments[0];
1607
+ arguments[0] = this;
1608
+ callback.apply(null, arguments);
1609
+ return this;
1610
+ }
1611
+
1612
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/nodes.js
1613
+ function nodes_default() {
1614
+ return Array.from(this);
1615
+ }
1616
+
1617
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/node.js
1618
+ function node_default() {
1619
+ for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
1620
+ for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {
1621
+ var node = group[i];
1622
+ if (node) return node;
1623
+ }
1624
+ }
1625
+ return null;
1626
+ }
1627
+
1628
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/size.js
1629
+ function size_default() {
1630
+ let size = 0;
1631
+ for (const node of this) ++size;
1632
+ return size;
1633
+ }
1634
+
1635
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/empty.js
1636
+ function empty_default() {
1637
+ return !this.node();
1638
+ }
1639
+
1640
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/each.js
1641
+ function each_default(callback) {
1642
+ for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
1643
+ for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {
1644
+ if (node = group[i]) callback.call(node, node.__data__, i, group);
1645
+ }
1646
+ }
1647
+ return this;
1648
+ }
1649
+
1650
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/attr.js
1651
+ function attrRemove(name) {
1652
+ return function() {
1653
+ this.removeAttribute(name);
1654
+ };
1655
+ }
1656
+ function attrRemoveNS(fullname) {
1657
+ return function() {
1658
+ this.removeAttributeNS(fullname.space, fullname.local);
1659
+ };
1660
+ }
1661
+ function attrConstant(name, value) {
1662
+ return function() {
1663
+ this.setAttribute(name, value);
1664
+ };
1665
+ }
1666
+ function attrConstantNS(fullname, value) {
1667
+ return function() {
1668
+ this.setAttributeNS(fullname.space, fullname.local, value);
1669
+ };
1670
+ }
1671
+ function attrFunction(name, value) {
1672
+ return function() {
1673
+ var v = value.apply(this, arguments);
1674
+ if (v == null) this.removeAttribute(name);
1675
+ else this.setAttribute(name, v);
1676
+ };
1677
+ }
1678
+ function attrFunctionNS(fullname, value) {
1679
+ return function() {
1680
+ var v = value.apply(this, arguments);
1681
+ if (v == null) this.removeAttributeNS(fullname.space, fullname.local);
1682
+ else this.setAttributeNS(fullname.space, fullname.local, v);
1683
+ };
1684
+ }
1685
+ function attr_default(name, value) {
1686
+ var fullname = namespace_default(name);
1687
+ if (arguments.length < 2) {
1688
+ var node = this.node();
1689
+ return fullname.local ? node.getAttributeNS(fullname.space, fullname.local) : node.getAttribute(fullname);
1690
+ }
1691
+ return this.each((value == null ? fullname.local ? attrRemoveNS : attrRemove : typeof value === "function" ? fullname.local ? attrFunctionNS : attrFunction : fullname.local ? attrConstantNS : attrConstant)(fullname, value));
1692
+ }
1693
+
1694
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/window.js
1695
+ function window_default(node) {
1696
+ return node.ownerDocument && node.ownerDocument.defaultView || node.document && node || node.defaultView;
1697
+ }
1698
+
1699
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/style.js
1700
+ function styleRemove(name) {
1701
+ return function() {
1702
+ this.style.removeProperty(name);
1703
+ };
1704
+ }
1705
+ function styleConstant(name, value, priority) {
1706
+ return function() {
1707
+ this.style.setProperty(name, value, priority);
1708
+ };
1709
+ }
1710
+ function styleFunction(name, value, priority) {
1711
+ return function() {
1712
+ var v = value.apply(this, arguments);
1713
+ if (v == null) this.style.removeProperty(name);
1714
+ else this.style.setProperty(name, v, priority);
1715
+ };
1716
+ }
1717
+ function style_default(name, value, priority) {
1718
+ return arguments.length > 1 ? this.each((value == null ? styleRemove : typeof value === "function" ? styleFunction : styleConstant)(name, value, priority == null ? "" : priority)) : styleValue(this.node(), name);
1719
+ }
1720
+ function styleValue(node, name) {
1721
+ return node.style.getPropertyValue(name) || window_default(node).getComputedStyle(node, null).getPropertyValue(name);
1722
+ }
1723
+
1724
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/property.js
1725
+ function propertyRemove(name) {
1726
+ return function() {
1727
+ delete this[name];
1728
+ };
1729
+ }
1730
+ function propertyConstant(name, value) {
1731
+ return function() {
1732
+ this[name] = value;
1733
+ };
1734
+ }
1735
+ function propertyFunction(name, value) {
1736
+ return function() {
1737
+ var v = value.apply(this, arguments);
1738
+ if (v == null) delete this[name];
1739
+ else this[name] = v;
1740
+ };
1741
+ }
1742
+ function property_default(name, value) {
1743
+ return arguments.length > 1 ? this.each((value == null ? propertyRemove : typeof value === "function" ? propertyFunction : propertyConstant)(name, value)) : this.node()[name];
1744
+ }
1745
+
1746
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/classed.js
1747
+ function classArray(string) {
1748
+ return string.trim().split(/^|\s+/);
1749
+ }
1750
+ function classList(node) {
1751
+ return node.classList || new ClassList(node);
1752
+ }
1753
+ function ClassList(node) {
1754
+ this._node = node;
1755
+ this._names = classArray(node.getAttribute("class") || "");
1756
+ }
1757
+ ClassList.prototype = {
1758
+ add: function(name) {
1759
+ var i = this._names.indexOf(name);
1760
+ if (i < 0) {
1761
+ this._names.push(name);
1762
+ this._node.setAttribute("class", this._names.join(" "));
1763
+ }
1764
+ },
1765
+ remove: function(name) {
1766
+ var i = this._names.indexOf(name);
1767
+ if (i >= 0) {
1768
+ this._names.splice(i, 1);
1769
+ this._node.setAttribute("class", this._names.join(" "));
1770
+ }
1771
+ },
1772
+ contains: function(name) {
1773
+ return this._names.indexOf(name) >= 0;
1774
+ }
1775
+ };
1776
+ function classedAdd(node, names) {
1777
+ var list = classList(node), i = -1, n = names.length;
1778
+ while (++i < n) list.add(names[i]);
1779
+ }
1780
+ function classedRemove(node, names) {
1781
+ var list = classList(node), i = -1, n = names.length;
1782
+ while (++i < n) list.remove(names[i]);
1783
+ }
1784
+ function classedTrue(names) {
1785
+ return function() {
1786
+ classedAdd(this, names);
1787
+ };
1788
+ }
1789
+ function classedFalse(names) {
1790
+ return function() {
1791
+ classedRemove(this, names);
1792
+ };
1793
+ }
1794
+ function classedFunction(names, value) {
1795
+ return function() {
1796
+ (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);
1797
+ };
1798
+ }
1799
+ function classed_default(name, value) {
1800
+ var names = classArray(name + "");
1801
+ if (arguments.length < 2) {
1802
+ var list = classList(this.node()), i = -1, n = names.length;
1803
+ while (++i < n) if (!list.contains(names[i])) return false;
1804
+ return true;
1805
+ }
1806
+ return this.each((typeof value === "function" ? classedFunction : value ? classedTrue : classedFalse)(names, value));
1807
+ }
1808
+
1809
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/text.js
1810
+ function textRemove() {
1811
+ this.textContent = "";
1812
+ }
1813
+ function textConstant(value) {
1814
+ return function() {
1815
+ this.textContent = value;
1816
+ };
1817
+ }
1818
+ function textFunction(value) {
1819
+ return function() {
1820
+ var v = value.apply(this, arguments);
1821
+ this.textContent = v == null ? "" : v;
1822
+ };
1823
+ }
1824
+ function text_default(value) {
1825
+ return arguments.length ? this.each(value == null ? textRemove : (typeof value === "function" ? textFunction : textConstant)(value)) : this.node().textContent;
1826
+ }
1827
+
1828
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/html.js
1829
+ function htmlRemove() {
1830
+ this.innerHTML = "";
1831
+ }
1832
+ function htmlConstant(value) {
1833
+ return function() {
1834
+ this.innerHTML = value;
1835
+ };
1836
+ }
1837
+ function htmlFunction(value) {
1838
+ return function() {
1839
+ var v = value.apply(this, arguments);
1840
+ this.innerHTML = v == null ? "" : v;
1841
+ };
1842
+ }
1843
+ function html_default(value) {
1844
+ return arguments.length ? this.each(value == null ? htmlRemove : (typeof value === "function" ? htmlFunction : htmlConstant)(value)) : this.node().innerHTML;
1845
+ }
1846
+
1847
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/raise.js
1848
+ function raise() {
1849
+ if (this.nextSibling) this.parentNode.appendChild(this);
1850
+ }
1851
+ function raise_default() {
1852
+ return this.each(raise);
1853
+ }
1854
+
1855
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/lower.js
1856
+ function lower() {
1857
+ if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);
1858
+ }
1859
+ function lower_default() {
1860
+ return this.each(lower);
1861
+ }
1862
+
1863
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/append.js
1864
+ function append_default(name) {
1865
+ var create2 = typeof name === "function" ? name : creator_default(name);
1866
+ return this.select(function() {
1867
+ return this.appendChild(create2.apply(this, arguments));
1868
+ });
1869
+ }
1870
+
1871
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/insert.js
1872
+ function constantNull() {
1873
+ return null;
1874
+ }
1875
+ function insert_default(name, before) {
1876
+ var create2 = typeof name === "function" ? name : creator_default(name), select = before == null ? constantNull : typeof before === "function" ? before : selector_default(before);
1877
+ return this.select(function() {
1878
+ return this.insertBefore(create2.apply(this, arguments), select.apply(this, arguments) || null);
1879
+ });
1880
+ }
1881
+
1882
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/remove.js
1883
+ function remove() {
1884
+ var parent = this.parentNode;
1885
+ if (parent) parent.removeChild(this);
1886
+ }
1887
+ function remove_default() {
1888
+ return this.each(remove);
1889
+ }
1890
+
1891
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/clone.js
1892
+ function selection_cloneShallow() {
1893
+ var clone = this.cloneNode(false), parent = this.parentNode;
1894
+ return parent ? parent.insertBefore(clone, this.nextSibling) : clone;
1895
+ }
1896
+ function selection_cloneDeep() {
1897
+ var clone = this.cloneNode(true), parent = this.parentNode;
1898
+ return parent ? parent.insertBefore(clone, this.nextSibling) : clone;
1899
+ }
1900
+ function clone_default(deep) {
1901
+ return this.select(deep ? selection_cloneDeep : selection_cloneShallow);
1902
+ }
1903
+
1904
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/datum.js
1905
+ function datum_default(value) {
1906
+ return arguments.length ? this.property("__data__", value) : this.node().__data__;
1907
+ }
1908
+
1909
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/on.js
1910
+ function contextListener(listener) {
1911
+ return function(event) {
1912
+ listener.call(this, event, this.__data__);
1913
+ };
1914
+ }
1915
+ function parseTypenames2(typenames) {
1916
+ return typenames.trim().split(/^|\s+/).map(function(t) {
1917
+ var name = "", i = t.indexOf(".");
1918
+ if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);
1919
+ return { type: t, name };
1920
+ });
1921
+ }
1922
+ function onRemove(typename) {
1923
+ return function() {
1924
+ var on = this.__on;
1925
+ if (!on) return;
1926
+ for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {
1927
+ if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {
1928
+ this.removeEventListener(o.type, o.listener, o.options);
1929
+ } else {
1930
+ on[++i] = o;
1931
+ }
1932
+ }
1933
+ if (++i) on.length = i;
1934
+ else delete this.__on;
1935
+ };
1936
+ }
1937
+ function onAdd(typename, value, options) {
1938
+ return function() {
1939
+ var on = this.__on, o, listener = contextListener(value);
1940
+ if (on) for (var j = 0, m = on.length; j < m; ++j) {
1941
+ if ((o = on[j]).type === typename.type && o.name === typename.name) {
1942
+ this.removeEventListener(o.type, o.listener, o.options);
1943
+ this.addEventListener(o.type, o.listener = listener, o.options = options);
1944
+ o.value = value;
1945
+ return;
1946
+ }
1947
+ }
1948
+ this.addEventListener(typename.type, listener, options);
1949
+ o = { type: typename.type, name: typename.name, value, listener, options };
1950
+ if (!on) this.__on = [o];
1951
+ else on.push(o);
1952
+ };
1953
+ }
1954
+ function on_default(typename, value, options) {
1955
+ var typenames = parseTypenames2(typename + ""), i, n = typenames.length, t;
1956
+ if (arguments.length < 2) {
1957
+ var on = this.node().__on;
1958
+ if (on) for (var j = 0, m = on.length, o; j < m; ++j) {
1959
+ for (i = 0, o = on[j]; i < n; ++i) {
1960
+ if ((t = typenames[i]).type === o.type && t.name === o.name) {
1961
+ return o.value;
1962
+ }
1963
+ }
1964
+ }
1965
+ return;
1966
+ }
1967
+ on = value ? onAdd : onRemove;
1968
+ for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));
1969
+ return this;
1970
+ }
1971
+
1972
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/dispatch.js
1973
+ function dispatchEvent(node, type2, params) {
1974
+ var window2 = window_default(node), event = window2.CustomEvent;
1975
+ if (typeof event === "function") {
1976
+ event = new event(type2, params);
1977
+ } else {
1978
+ event = window2.document.createEvent("Event");
1979
+ if (params) event.initEvent(type2, params.bubbles, params.cancelable), event.detail = params.detail;
1980
+ else event.initEvent(type2, false, false);
1981
+ }
1982
+ node.dispatchEvent(event);
1983
+ }
1984
+ function dispatchConstant(type2, params) {
1985
+ return function() {
1986
+ return dispatchEvent(this, type2, params);
1987
+ };
1988
+ }
1989
+ function dispatchFunction(type2, params) {
1990
+ return function() {
1991
+ return dispatchEvent(this, type2, params.apply(this, arguments));
1992
+ };
1993
+ }
1994
+ function dispatch_default2(type2, params) {
1995
+ return this.each((typeof params === "function" ? dispatchFunction : dispatchConstant)(type2, params));
1996
+ }
1997
+
1998
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/iterator.js
1999
+ function* iterator_default() {
2000
+ for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
2001
+ for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {
2002
+ if (node = group[i]) yield node;
2003
+ }
2004
+ }
2005
+ }
2006
+
2007
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/index.js
2008
+ var root = [null];
2009
+ function Selection(groups, parents) {
2010
+ this._groups = groups;
2011
+ this._parents = parents;
2012
+ }
2013
+ function selection() {
2014
+ return new Selection([[document.documentElement]], root);
2015
+ }
2016
+ function selection_selection() {
2017
+ return this;
2018
+ }
2019
+ Selection.prototype = selection.prototype = {
2020
+ constructor: Selection,
2021
+ select: select_default,
2022
+ selectAll: selectAll_default,
2023
+ selectChild: selectChild_default,
2024
+ selectChildren: selectChildren_default,
2025
+ filter: filter_default,
2026
+ data: data_default,
2027
+ enter: enter_default,
2028
+ exit: exit_default,
2029
+ join: join_default,
2030
+ merge: merge_default,
2031
+ selection: selection_selection,
2032
+ order: order_default,
2033
+ sort: sort_default,
2034
+ call: call_default,
2035
+ nodes: nodes_default,
2036
+ node: node_default,
2037
+ size: size_default,
2038
+ empty: empty_default,
2039
+ each: each_default,
2040
+ attr: attr_default,
2041
+ style: style_default,
2042
+ property: property_default,
2043
+ classed: classed_default,
2044
+ text: text_default,
2045
+ html: html_default,
2046
+ raise: raise_default,
2047
+ lower: lower_default,
2048
+ append: append_default,
2049
+ insert: insert_default,
2050
+ remove: remove_default,
2051
+ clone: clone_default,
2052
+ datum: datum_default,
2053
+ on: on_default,
2054
+ dispatch: dispatch_default2,
2055
+ [Symbol.iterator]: iterator_default
2056
+ };
2057
+ var selection_default = selection;
2058
+
2059
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/select.js
2060
+ function select_default2(selector) {
2061
+ return typeof selector === "string" ? new Selection([[document.querySelector(selector)]], [document.documentElement]) : new Selection([[selector]], root);
2062
+ }
2063
+
2064
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/sourceEvent.js
2065
+ function sourceEvent_default(event) {
2066
+ let sourceEvent;
2067
+ while (sourceEvent = event.sourceEvent) event = sourceEvent;
2068
+ return event;
2069
+ }
2070
+
2071
+ // node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/pointer.js
2072
+ function pointer_default(event, node) {
2073
+ event = sourceEvent_default(event);
2074
+ if (node === void 0) node = event.currentTarget;
2075
+ if (node) {
2076
+ var svg = node.ownerSVGElement || node;
2077
+ if (svg.createSVGPoint) {
2078
+ var point = svg.createSVGPoint();
2079
+ point.x = event.clientX, point.y = event.clientY;
2080
+ point = point.matrixTransform(node.getScreenCTM().inverse());
2081
+ return [point.x, point.y];
2082
+ }
2083
+ if (node.getBoundingClientRect) {
2084
+ var rect = node.getBoundingClientRect();
2085
+ return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];
2086
+ }
2087
+ }
2088
+ return [event.pageX, event.pageY];
2089
+ }
2090
+
2091
+ // node_modules/.pnpm/d3-drag@3.0.0/node_modules/d3-drag/src/noevent.js
2092
+ var nonpassivecapture = { capture: true, passive: false };
2093
+ function noevent_default(event) {
2094
+ event.preventDefault();
2095
+ event.stopImmediatePropagation();
2096
+ }
2097
+
2098
+ // node_modules/.pnpm/d3-drag@3.0.0/node_modules/d3-drag/src/nodrag.js
2099
+ function nodrag_default(view) {
2100
+ var root2 = view.document.documentElement, selection2 = select_default2(view).on("dragstart.drag", noevent_default, nonpassivecapture);
2101
+ if ("onselectstart" in root2) {
2102
+ selection2.on("selectstart.drag", noevent_default, nonpassivecapture);
2103
+ } else {
2104
+ root2.__noselect = root2.style.MozUserSelect;
2105
+ root2.style.MozUserSelect = "none";
2106
+ }
2107
+ }
2108
+ function yesdrag(view, noclick) {
2109
+ var root2 = view.document.documentElement, selection2 = select_default2(view).on("dragstart.drag", null);
2110
+ if (noclick) {
2111
+ selection2.on("click.drag", noevent_default, nonpassivecapture);
2112
+ setTimeout(function() {
2113
+ selection2.on("click.drag", null);
2114
+ }, 0);
2115
+ }
2116
+ if ("onselectstart" in root2) {
2117
+ selection2.on("selectstart.drag", null);
2118
+ } else {
2119
+ root2.style.MozUserSelect = root2.__noselect;
2120
+ delete root2.__noselect;
2121
+ }
2122
+ }
2123
+
2124
+ // node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/define.js
2125
+ function define_default(constructor, factory, prototype) {
2126
+ constructor.prototype = factory.prototype = prototype;
2127
+ prototype.constructor = constructor;
2128
+ }
2129
+ function extend(parent, definition) {
2130
+ var prototype = Object.create(parent.prototype);
2131
+ for (var key in definition) prototype[key] = definition[key];
2132
+ return prototype;
2133
+ }
2134
+
2135
+ // node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/color.js
2136
+ function Color() {
2137
+ }
2138
+ var darker = 0.7;
2139
+ var brighter = 1 / darker;
2140
+ var reI = "\\s*([+-]?\\d+)\\s*";
2141
+ var reN = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*";
2142
+ var reP = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*";
2143
+ var reHex = /^#([0-9a-f]{3,8})$/;
2144
+ var reRgbInteger = new RegExp(`^rgb\\(${reI},${reI},${reI}\\)$`);
2145
+ var reRgbPercent = new RegExp(`^rgb\\(${reP},${reP},${reP}\\)$`);
2146
+ var reRgbaInteger = new RegExp(`^rgba\\(${reI},${reI},${reI},${reN}\\)$`);
2147
+ var reRgbaPercent = new RegExp(`^rgba\\(${reP},${reP},${reP},${reN}\\)$`);
2148
+ var reHslPercent = new RegExp(`^hsl\\(${reN},${reP},${reP}\\)$`);
2149
+ var reHslaPercent = new RegExp(`^hsla\\(${reN},${reP},${reP},${reN}\\)$`);
2150
+ var named = {
2151
+ aliceblue: 15792383,
2152
+ antiquewhite: 16444375,
2153
+ aqua: 65535,
2154
+ aquamarine: 8388564,
2155
+ azure: 15794175,
2156
+ beige: 16119260,
2157
+ bisque: 16770244,
2158
+ black: 0,
2159
+ blanchedalmond: 16772045,
2160
+ blue: 255,
2161
+ blueviolet: 9055202,
2162
+ brown: 10824234,
2163
+ burlywood: 14596231,
2164
+ cadetblue: 6266528,
2165
+ chartreuse: 8388352,
2166
+ chocolate: 13789470,
2167
+ coral: 16744272,
2168
+ cornflowerblue: 6591981,
2169
+ cornsilk: 16775388,
2170
+ crimson: 14423100,
2171
+ cyan: 65535,
2172
+ darkblue: 139,
2173
+ darkcyan: 35723,
2174
+ darkgoldenrod: 12092939,
2175
+ darkgray: 11119017,
2176
+ darkgreen: 25600,
2177
+ darkgrey: 11119017,
2178
+ darkkhaki: 12433259,
2179
+ darkmagenta: 9109643,
2180
+ darkolivegreen: 5597999,
2181
+ darkorange: 16747520,
2182
+ darkorchid: 10040012,
2183
+ darkred: 9109504,
2184
+ darksalmon: 15308410,
2185
+ darkseagreen: 9419919,
2186
+ darkslateblue: 4734347,
2187
+ darkslategray: 3100495,
2188
+ darkslategrey: 3100495,
2189
+ darkturquoise: 52945,
2190
+ darkviolet: 9699539,
2191
+ deeppink: 16716947,
2192
+ deepskyblue: 49151,
2193
+ dimgray: 6908265,
2194
+ dimgrey: 6908265,
2195
+ dodgerblue: 2003199,
2196
+ firebrick: 11674146,
2197
+ floralwhite: 16775920,
2198
+ forestgreen: 2263842,
2199
+ fuchsia: 16711935,
2200
+ gainsboro: 14474460,
2201
+ ghostwhite: 16316671,
2202
+ gold: 16766720,
2203
+ goldenrod: 14329120,
2204
+ gray: 8421504,
2205
+ green: 32768,
2206
+ greenyellow: 11403055,
2207
+ grey: 8421504,
2208
+ honeydew: 15794160,
2209
+ hotpink: 16738740,
2210
+ indianred: 13458524,
2211
+ indigo: 4915330,
2212
+ ivory: 16777200,
2213
+ khaki: 15787660,
2214
+ lavender: 15132410,
2215
+ lavenderblush: 16773365,
2216
+ lawngreen: 8190976,
2217
+ lemonchiffon: 16775885,
2218
+ lightblue: 11393254,
2219
+ lightcoral: 15761536,
2220
+ lightcyan: 14745599,
2221
+ lightgoldenrodyellow: 16448210,
2222
+ lightgray: 13882323,
2223
+ lightgreen: 9498256,
2224
+ lightgrey: 13882323,
2225
+ lightpink: 16758465,
2226
+ lightsalmon: 16752762,
2227
+ lightseagreen: 2142890,
2228
+ lightskyblue: 8900346,
2229
+ lightslategray: 7833753,
2230
+ lightslategrey: 7833753,
2231
+ lightsteelblue: 11584734,
2232
+ lightyellow: 16777184,
2233
+ lime: 65280,
2234
+ limegreen: 3329330,
2235
+ linen: 16445670,
2236
+ magenta: 16711935,
2237
+ maroon: 8388608,
2238
+ mediumaquamarine: 6737322,
2239
+ mediumblue: 205,
2240
+ mediumorchid: 12211667,
2241
+ mediumpurple: 9662683,
2242
+ mediumseagreen: 3978097,
2243
+ mediumslateblue: 8087790,
2244
+ mediumspringgreen: 64154,
2245
+ mediumturquoise: 4772300,
2246
+ mediumvioletred: 13047173,
2247
+ midnightblue: 1644912,
2248
+ mintcream: 16121850,
2249
+ mistyrose: 16770273,
2250
+ moccasin: 16770229,
2251
+ navajowhite: 16768685,
2252
+ navy: 128,
2253
+ oldlace: 16643558,
2254
+ olive: 8421376,
2255
+ olivedrab: 7048739,
2256
+ orange: 16753920,
2257
+ orangered: 16729344,
2258
+ orchid: 14315734,
2259
+ palegoldenrod: 15657130,
2260
+ palegreen: 10025880,
2261
+ paleturquoise: 11529966,
2262
+ palevioletred: 14381203,
2263
+ papayawhip: 16773077,
2264
+ peachpuff: 16767673,
2265
+ peru: 13468991,
2266
+ pink: 16761035,
2267
+ plum: 14524637,
2268
+ powderblue: 11591910,
2269
+ purple: 8388736,
2270
+ rebeccapurple: 6697881,
2271
+ red: 16711680,
2272
+ rosybrown: 12357519,
2273
+ royalblue: 4286945,
2274
+ saddlebrown: 9127187,
2275
+ salmon: 16416882,
2276
+ sandybrown: 16032864,
2277
+ seagreen: 3050327,
2278
+ seashell: 16774638,
2279
+ sienna: 10506797,
2280
+ silver: 12632256,
2281
+ skyblue: 8900331,
2282
+ slateblue: 6970061,
2283
+ slategray: 7372944,
2284
+ slategrey: 7372944,
2285
+ snow: 16775930,
2286
+ springgreen: 65407,
2287
+ steelblue: 4620980,
2288
+ tan: 13808780,
2289
+ teal: 32896,
2290
+ thistle: 14204888,
2291
+ tomato: 16737095,
2292
+ turquoise: 4251856,
2293
+ violet: 15631086,
2294
+ wheat: 16113331,
2295
+ white: 16777215,
2296
+ whitesmoke: 16119285,
2297
+ yellow: 16776960,
2298
+ yellowgreen: 10145074
2299
+ };
2300
+ define_default(Color, color, {
2301
+ copy(channels) {
2302
+ return Object.assign(new this.constructor(), this, channels);
2303
+ },
2304
+ displayable() {
2305
+ return this.rgb().displayable();
2306
+ },
2307
+ hex: color_formatHex,
2308
+ // Deprecated! Use color.formatHex.
2309
+ formatHex: color_formatHex,
2310
+ formatHex8: color_formatHex8,
2311
+ formatHsl: color_formatHsl,
2312
+ formatRgb: color_formatRgb,
2313
+ toString: color_formatRgb
2314
+ });
2315
+ function color_formatHex() {
2316
+ return this.rgb().formatHex();
2317
+ }
2318
+ function color_formatHex8() {
2319
+ return this.rgb().formatHex8();
2320
+ }
2321
+ function color_formatHsl() {
2322
+ return hslConvert(this).formatHsl();
2323
+ }
2324
+ function color_formatRgb() {
2325
+ return this.rgb().formatRgb();
2326
+ }
2327
+ function color(format) {
2328
+ var m, l;
2329
+ format = (format + "").trim().toLowerCase();
2330
+ return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) : l === 3 ? new Rgb(m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, (m & 15) << 4 | m & 15, 1) : l === 8 ? rgba(m >> 24 & 255, m >> 16 & 255, m >> 8 & 255, (m & 255) / 255) : l === 4 ? rgba(m >> 12 & 15 | m >> 8 & 240, m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, ((m & 15) << 4 | m & 15) / 255) : null) : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) : named.hasOwnProperty(format) ? rgbn(named[format]) : format === "transparent" ? new Rgb(NaN, NaN, NaN, 0) : null;
2331
+ }
2332
+ function rgbn(n) {
2333
+ return new Rgb(n >> 16 & 255, n >> 8 & 255, n & 255, 1);
2334
+ }
2335
+ function rgba(r, g, b, a) {
2336
+ if (a <= 0) r = g = b = NaN;
2337
+ return new Rgb(r, g, b, a);
2338
+ }
2339
+ function rgbConvert(o) {
2340
+ if (!(o instanceof Color)) o = color(o);
2341
+ if (!o) return new Rgb();
2342
+ o = o.rgb();
2343
+ return new Rgb(o.r, o.g, o.b, o.opacity);
2344
+ }
2345
+ function rgb(r, g, b, opacity) {
2346
+ return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);
2347
+ }
2348
+ function Rgb(r, g, b, opacity) {
2349
+ this.r = +r;
2350
+ this.g = +g;
2351
+ this.b = +b;
2352
+ this.opacity = +opacity;
2353
+ }
2354
+ define_default(Rgb, rgb, extend(Color, {
2355
+ brighter(k) {
2356
+ k = k == null ? brighter : Math.pow(brighter, k);
2357
+ return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
2358
+ },
2359
+ darker(k) {
2360
+ k = k == null ? darker : Math.pow(darker, k);
2361
+ return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
2362
+ },
2363
+ rgb() {
2364
+ return this;
2365
+ },
2366
+ clamp() {
2367
+ return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));
2368
+ },
2369
+ displayable() {
2370
+ return -0.5 <= this.r && this.r < 255.5 && (-0.5 <= this.g && this.g < 255.5) && (-0.5 <= this.b && this.b < 255.5) && (0 <= this.opacity && this.opacity <= 1);
2371
+ },
2372
+ hex: rgb_formatHex,
2373
+ // Deprecated! Use color.formatHex.
2374
+ formatHex: rgb_formatHex,
2375
+ formatHex8: rgb_formatHex8,
2376
+ formatRgb: rgb_formatRgb,
2377
+ toString: rgb_formatRgb
2378
+ }));
2379
+ function rgb_formatHex() {
2380
+ return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;
2381
+ }
2382
+ function rgb_formatHex8() {
2383
+ return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;
2384
+ }
2385
+ function rgb_formatRgb() {
2386
+ const a = clampa(this.opacity);
2387
+ return `${a === 1 ? "rgb(" : "rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? ")" : `, ${a})`}`;
2388
+ }
2389
+ function clampa(opacity) {
2390
+ return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));
2391
+ }
2392
+ function clampi(value) {
2393
+ return Math.max(0, Math.min(255, Math.round(value) || 0));
2394
+ }
2395
+ function hex(value) {
2396
+ value = clampi(value);
2397
+ return (value < 16 ? "0" : "") + value.toString(16);
2398
+ }
2399
+ function hsla(h, s, l, a) {
2400
+ if (a <= 0) h = s = l = NaN;
2401
+ else if (l <= 0 || l >= 1) h = s = NaN;
2402
+ else if (s <= 0) h = NaN;
2403
+ return new Hsl(h, s, l, a);
2404
+ }
2405
+ function hslConvert(o) {
2406
+ if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);
2407
+ if (!(o instanceof Color)) o = color(o);
2408
+ if (!o) return new Hsl();
2409
+ if (o instanceof Hsl) return o;
2410
+ o = o.rgb();
2411
+ var r = o.r / 255, g = o.g / 255, b = o.b / 255, min2 = Math.min(r, g, b), max2 = Math.max(r, g, b), h = NaN, s = max2 - min2, l = (max2 + min2) / 2;
2412
+ if (s) {
2413
+ if (r === max2) h = (g - b) / s + (g < b) * 6;
2414
+ else if (g === max2) h = (b - r) / s + 2;
2415
+ else h = (r - g) / s + 4;
2416
+ s /= l < 0.5 ? max2 + min2 : 2 - max2 - min2;
2417
+ h *= 60;
2418
+ } else {
2419
+ s = l > 0 && l < 1 ? 0 : h;
2420
+ }
2421
+ return new Hsl(h, s, l, o.opacity);
2422
+ }
2423
+ function hsl(h, s, l, opacity) {
2424
+ return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);
2425
+ }
2426
+ function Hsl(h, s, l, opacity) {
2427
+ this.h = +h;
2428
+ this.s = +s;
2429
+ this.l = +l;
2430
+ this.opacity = +opacity;
2431
+ }
2432
+ define_default(Hsl, hsl, extend(Color, {
2433
+ brighter(k) {
2434
+ k = k == null ? brighter : Math.pow(brighter, k);
2435
+ return new Hsl(this.h, this.s, this.l * k, this.opacity);
2436
+ },
2437
+ darker(k) {
2438
+ k = k == null ? darker : Math.pow(darker, k);
2439
+ return new Hsl(this.h, this.s, this.l * k, this.opacity);
2440
+ },
2441
+ rgb() {
2442
+ var h = this.h % 360 + (this.h < 0) * 360, s = isNaN(h) || isNaN(this.s) ? 0 : this.s, l = this.l, m2 = l + (l < 0.5 ? l : 1 - l) * s, m1 = 2 * l - m2;
2443
+ return new Rgb(
2444
+ hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),
2445
+ hsl2rgb(h, m1, m2),
2446
+ hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),
2447
+ this.opacity
2448
+ );
2449
+ },
2450
+ clamp() {
2451
+ return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));
2452
+ },
2453
+ displayable() {
2454
+ return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && (0 <= this.l && this.l <= 1) && (0 <= this.opacity && this.opacity <= 1);
2455
+ },
2456
+ formatHsl() {
2457
+ const a = clampa(this.opacity);
2458
+ return `${a === 1 ? "hsl(" : "hsla("}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? ")" : `, ${a})`}`;
2459
+ }
2460
+ }));
2461
+ function clamph(value) {
2462
+ value = (value || 0) % 360;
2463
+ return value < 0 ? value + 360 : value;
2464
+ }
2465
+ function clampt(value) {
2466
+ return Math.max(0, Math.min(1, value || 0));
2467
+ }
2468
+ function hsl2rgb(h, m1, m2) {
2469
+ return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255;
2470
+ }
2471
+
2472
+ // node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/constant.js
2473
+ var constant_default2 = (x2) => () => x2;
2474
+
2475
+ // node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/color.js
2476
+ function linear(a, d) {
2477
+ return function(t) {
2478
+ return a + t * d;
2479
+ };
2480
+ }
2481
+ function exponential(a, b, y2) {
2482
+ return a = Math.pow(a, y2), b = Math.pow(b, y2) - a, y2 = 1 / y2, function(t) {
2483
+ return Math.pow(a + t * b, y2);
2484
+ };
2485
+ }
2486
+ function gamma(y2) {
2487
+ return (y2 = +y2) === 1 ? nogamma : function(a, b) {
2488
+ return b - a ? exponential(a, b, y2) : constant_default2(isNaN(a) ? b : a);
2489
+ };
2490
+ }
2491
+ function nogamma(a, b) {
2492
+ var d = b - a;
2493
+ return d ? linear(a, d) : constant_default2(isNaN(a) ? b : a);
2494
+ }
2495
+
2496
+ // node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/rgb.js
2497
+ var rgb_default = function rgbGamma(y2) {
2498
+ var color2 = gamma(y2);
2499
+ function rgb2(start2, end) {
2500
+ var r = color2((start2 = rgb(start2)).r, (end = rgb(end)).r), g = color2(start2.g, end.g), b = color2(start2.b, end.b), opacity = nogamma(start2.opacity, end.opacity);
2501
+ return function(t) {
2502
+ start2.r = r(t);
2503
+ start2.g = g(t);
2504
+ start2.b = b(t);
2505
+ start2.opacity = opacity(t);
2506
+ return start2 + "";
2507
+ };
2508
+ }
2509
+ rgb2.gamma = rgbGamma;
2510
+ return rgb2;
2511
+ }(1);
2512
+
2513
+ // node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/number.js
2514
+ function number_default(a, b) {
2515
+ return a = +a, b = +b, function(t) {
2516
+ return a * (1 - t) + b * t;
2517
+ };
2518
+ }
2519
+
2520
+ // node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/string.js
2521
+ var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g;
2522
+ var reB = new RegExp(reA.source, "g");
2523
+ function zero(b) {
2524
+ return function() {
2525
+ return b;
2526
+ };
2527
+ }
2528
+ function one(b) {
2529
+ return function(t) {
2530
+ return b(t) + "";
2531
+ };
2532
+ }
2533
+ function string_default(a, b) {
2534
+ var bi = reA.lastIndex = reB.lastIndex = 0, am, bm, bs, i = -1, s = [], q = [];
2535
+ a = a + "", b = b + "";
2536
+ while ((am = reA.exec(a)) && (bm = reB.exec(b))) {
2537
+ if ((bs = bm.index) > bi) {
2538
+ bs = b.slice(bi, bs);
2539
+ if (s[i]) s[i] += bs;
2540
+ else s[++i] = bs;
2541
+ }
2542
+ if ((am = am[0]) === (bm = bm[0])) {
2543
+ if (s[i]) s[i] += bm;
2544
+ else s[++i] = bm;
2545
+ } else {
2546
+ s[++i] = null;
2547
+ q.push({ i, x: number_default(am, bm) });
2548
+ }
2549
+ bi = reB.lastIndex;
2550
+ }
2551
+ if (bi < b.length) {
2552
+ bs = b.slice(bi);
2553
+ if (s[i]) s[i] += bs;
2554
+ else s[++i] = bs;
2555
+ }
2556
+ return s.length < 2 ? q[0] ? one(q[0].x) : zero(b) : (b = q.length, function(t) {
2557
+ for (var i2 = 0, o; i2 < b; ++i2) s[(o = q[i2]).i] = o.x(t);
2558
+ return s.join("");
2559
+ });
2560
+ }
2561
+
2562
+ // node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/transform/decompose.js
2563
+ var degrees = 180 / Math.PI;
2564
+ var identity = {
2565
+ translateX: 0,
2566
+ translateY: 0,
2567
+ rotate: 0,
2568
+ skewX: 0,
2569
+ scaleX: 1,
2570
+ scaleY: 1
2571
+ };
2572
+ function decompose_default(a, b, c, d, e, f) {
2573
+ var scaleX, scaleY, skewX;
2574
+ if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;
2575
+ if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;
2576
+ if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;
2577
+ if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;
2578
+ return {
2579
+ translateX: e,
2580
+ translateY: f,
2581
+ rotate: Math.atan2(b, a) * degrees,
2582
+ skewX: Math.atan(skewX) * degrees,
2583
+ scaleX,
2584
+ scaleY
2585
+ };
2586
+ }
2587
+
2588
+ // node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/transform/parse.js
2589
+ var svgNode;
2590
+ function parseCss(value) {
2591
+ const m = new (typeof DOMMatrix === "function" ? DOMMatrix : WebKitCSSMatrix)(value + "");
2592
+ return m.isIdentity ? identity : decompose_default(m.a, m.b, m.c, m.d, m.e, m.f);
2593
+ }
2594
+ function parseSvg(value) {
2595
+ if (value == null) return identity;
2596
+ if (!svgNode) svgNode = document.createElementNS("http://www.w3.org/2000/svg", "g");
2597
+ svgNode.setAttribute("transform", value);
2598
+ if (!(value = svgNode.transform.baseVal.consolidate())) return identity;
2599
+ value = value.matrix;
2600
+ return decompose_default(value.a, value.b, value.c, value.d, value.e, value.f);
2601
+ }
2602
+
2603
+ // node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/transform/index.js
2604
+ function interpolateTransform(parse, pxComma, pxParen, degParen) {
2605
+ function pop(s) {
2606
+ return s.length ? s.pop() + " " : "";
2607
+ }
2608
+ function translate(xa, ya, xb, yb, s, q) {
2609
+ if (xa !== xb || ya !== yb) {
2610
+ var i = s.push("translate(", null, pxComma, null, pxParen);
2611
+ q.push({ i: i - 4, x: number_default(xa, xb) }, { i: i - 2, x: number_default(ya, yb) });
2612
+ } else if (xb || yb) {
2613
+ s.push("translate(" + xb + pxComma + yb + pxParen);
2614
+ }
2615
+ }
2616
+ function rotate(a, b, s, q) {
2617
+ if (a !== b) {
2618
+ if (a - b > 180) b += 360;
2619
+ else if (b - a > 180) a += 360;
2620
+ q.push({ i: s.push(pop(s) + "rotate(", null, degParen) - 2, x: number_default(a, b) });
2621
+ } else if (b) {
2622
+ s.push(pop(s) + "rotate(" + b + degParen);
2623
+ }
2624
+ }
2625
+ function skewX(a, b, s, q) {
2626
+ if (a !== b) {
2627
+ q.push({ i: s.push(pop(s) + "skewX(", null, degParen) - 2, x: number_default(a, b) });
2628
+ } else if (b) {
2629
+ s.push(pop(s) + "skewX(" + b + degParen);
2630
+ }
2631
+ }
2632
+ function scale(xa, ya, xb, yb, s, q) {
2633
+ if (xa !== xb || ya !== yb) {
2634
+ var i = s.push(pop(s) + "scale(", null, ",", null, ")");
2635
+ q.push({ i: i - 4, x: number_default(xa, xb) }, { i: i - 2, x: number_default(ya, yb) });
2636
+ } else if (xb !== 1 || yb !== 1) {
2637
+ s.push(pop(s) + "scale(" + xb + "," + yb + ")");
2638
+ }
2639
+ }
2640
+ return function(a, b) {
2641
+ var s = [], q = [];
2642
+ a = parse(a), b = parse(b);
2643
+ translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);
2644
+ rotate(a.rotate, b.rotate, s, q);
2645
+ skewX(a.skewX, b.skewX, s, q);
2646
+ scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);
2647
+ a = b = null;
2648
+ return function(t) {
2649
+ var i = -1, n = q.length, o;
2650
+ while (++i < n) s[(o = q[i]).i] = o.x(t);
2651
+ return s.join("");
2652
+ };
2653
+ };
2654
+ }
2655
+ var interpolateTransformCss = interpolateTransform(parseCss, "px, ", "px)", "deg)");
2656
+ var interpolateTransformSvg = interpolateTransform(parseSvg, ", ", ")", ")");
2657
+
2658
+ // node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/zoom.js
2659
+ var epsilon2 = 1e-12;
2660
+ function cosh(x2) {
2661
+ return ((x2 = Math.exp(x2)) + 1 / x2) / 2;
2662
+ }
2663
+ function sinh(x2) {
2664
+ return ((x2 = Math.exp(x2)) - 1 / x2) / 2;
2665
+ }
2666
+ function tanh(x2) {
2667
+ return ((x2 = Math.exp(2 * x2)) - 1) / (x2 + 1);
2668
+ }
2669
+ var zoom_default = function zoomRho(rho, rho2, rho4) {
2670
+ function zoom(p0, p1) {
2671
+ var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], ux1 = p1[0], uy1 = p1[1], w1 = p1[2], dx = ux1 - ux0, dy = uy1 - uy0, d2 = dx * dx + dy * dy, i, S;
2672
+ if (d2 < epsilon2) {
2673
+ S = Math.log(w1 / w0) / rho;
2674
+ i = function(t) {
2675
+ return [
2676
+ ux0 + t * dx,
2677
+ uy0 + t * dy,
2678
+ w0 * Math.exp(rho * t * S)
2679
+ ];
2680
+ };
2681
+ } else {
2682
+ var d1 = Math.sqrt(d2), b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1), b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1), r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);
2683
+ S = (r1 - r0) / rho;
2684
+ i = function(t) {
2685
+ var s = t * S, coshr0 = cosh(r0), u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));
2686
+ return [
2687
+ ux0 + u * dx,
2688
+ uy0 + u * dy,
2689
+ w0 * coshr0 / cosh(rho * s + r0)
2690
+ ];
2691
+ };
2692
+ }
2693
+ i.duration = S * 1e3 * rho / Math.SQRT2;
2694
+ return i;
2695
+ }
2696
+ zoom.rho = function(_) {
2697
+ var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;
2698
+ return zoomRho(_1, _2, _4);
2699
+ };
2700
+ return zoom;
2701
+ }(Math.SQRT2, 2, 4);
2702
+
2703
+ // node_modules/.pnpm/d3-timer@3.0.1/node_modules/d3-timer/src/timer.js
2704
+ var frame = 0;
2705
+ var timeout = 0;
2706
+ var interval = 0;
2707
+ var pokeDelay = 1e3;
2708
+ var taskHead;
2709
+ var taskTail;
2710
+ var clockLast = 0;
2711
+ var clockNow = 0;
2712
+ var clockSkew = 0;
2713
+ var clock = typeof performance === "object" && performance.now ? performance : Date;
2714
+ var setFrame = typeof window === "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) {
2715
+ setTimeout(f, 17);
2716
+ };
2717
+ function now() {
2718
+ return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);
2719
+ }
2720
+ function clearNow() {
2721
+ clockNow = 0;
2722
+ }
2723
+ function Timer() {
2724
+ this._call = this._time = this._next = null;
2725
+ }
2726
+ Timer.prototype = timer.prototype = {
2727
+ constructor: Timer,
2728
+ restart: function(callback, delay, time) {
2729
+ if (typeof callback !== "function") throw new TypeError("callback is not a function");
2730
+ time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);
2731
+ if (!this._next && taskTail !== this) {
2732
+ if (taskTail) taskTail._next = this;
2733
+ else taskHead = this;
2734
+ taskTail = this;
2735
+ }
2736
+ this._call = callback;
2737
+ this._time = time;
2738
+ sleep();
2739
+ },
2740
+ stop: function() {
2741
+ if (this._call) {
2742
+ this._call = null;
2743
+ this._time = Infinity;
2744
+ sleep();
2745
+ }
2746
+ }
2747
+ };
2748
+ function timer(callback, delay, time) {
2749
+ var t = new Timer();
2750
+ t.restart(callback, delay, time);
2751
+ return t;
2752
+ }
2753
+ function timerFlush() {
2754
+ now();
2755
+ ++frame;
2756
+ var t = taskHead, e;
2757
+ while (t) {
2758
+ if ((e = clockNow - t._time) >= 0) t._call.call(void 0, e);
2759
+ t = t._next;
2760
+ }
2761
+ --frame;
2762
+ }
2763
+ function wake() {
2764
+ clockNow = (clockLast = clock.now()) + clockSkew;
2765
+ frame = timeout = 0;
2766
+ try {
2767
+ timerFlush();
2768
+ } finally {
2769
+ frame = 0;
2770
+ nap();
2771
+ clockNow = 0;
2772
+ }
2773
+ }
2774
+ function poke() {
2775
+ var now2 = clock.now(), delay = now2 - clockLast;
2776
+ if (delay > pokeDelay) clockSkew -= delay, clockLast = now2;
2777
+ }
2778
+ function nap() {
2779
+ var t0, t1 = taskHead, t2, time = Infinity;
2780
+ while (t1) {
2781
+ if (t1._call) {
2782
+ if (time > t1._time) time = t1._time;
2783
+ t0 = t1, t1 = t1._next;
2784
+ } else {
2785
+ t2 = t1._next, t1._next = null;
2786
+ t1 = t0 ? t0._next = t2 : taskHead = t2;
2787
+ }
2788
+ }
2789
+ taskTail = t0;
2790
+ sleep(time);
2791
+ }
2792
+ function sleep(time) {
2793
+ if (frame) return;
2794
+ if (timeout) timeout = clearTimeout(timeout);
2795
+ var delay = time - clockNow;
2796
+ if (delay > 24) {
2797
+ if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);
2798
+ if (interval) interval = clearInterval(interval);
2799
+ } else {
2800
+ if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);
2801
+ frame = 1, setFrame(wake);
2802
+ }
2803
+ }
2804
+
2805
+ // node_modules/.pnpm/d3-timer@3.0.1/node_modules/d3-timer/src/timeout.js
2806
+ function timeout_default(callback, delay, time) {
2807
+ var t = new Timer();
2808
+ delay = delay == null ? 0 : +delay;
2809
+ t.restart((elapsed) => {
2810
+ t.stop();
2811
+ callback(elapsed + delay);
2812
+ }, delay, time);
2813
+ return t;
2814
+ }
2815
+
2816
+ // node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/schedule.js
2817
+ var emptyOn = dispatch_default("start", "end", "cancel", "interrupt");
2818
+ var emptyTween = [];
2819
+ var CREATED = 0;
2820
+ var SCHEDULED = 1;
2821
+ var STARTING = 2;
2822
+ var STARTED = 3;
2823
+ var RUNNING = 4;
2824
+ var ENDING = 5;
2825
+ var ENDED = 6;
2826
+ function schedule_default(node, name, id2, index, group, timing) {
2827
+ var schedules = node.__transition;
2828
+ if (!schedules) node.__transition = {};
2829
+ else if (id2 in schedules) return;
2830
+ create(node, id2, {
2831
+ name,
2832
+ index,
2833
+ // For context during callback.
2834
+ group,
2835
+ // For context during callback.
2836
+ on: emptyOn,
2837
+ tween: emptyTween,
2838
+ time: timing.time,
2839
+ delay: timing.delay,
2840
+ duration: timing.duration,
2841
+ ease: timing.ease,
2842
+ timer: null,
2843
+ state: CREATED
2844
+ });
2845
+ }
2846
+ function init(node, id2) {
2847
+ var schedule = get2(node, id2);
2848
+ if (schedule.state > CREATED) throw new Error("too late; already scheduled");
2849
+ return schedule;
2850
+ }
2851
+ function set2(node, id2) {
2852
+ var schedule = get2(node, id2);
2853
+ if (schedule.state > STARTED) throw new Error("too late; already running");
2854
+ return schedule;
2855
+ }
2856
+ function get2(node, id2) {
2857
+ var schedule = node.__transition;
2858
+ if (!schedule || !(schedule = schedule[id2])) throw new Error("transition not found");
2859
+ return schedule;
2860
+ }
2861
+ function create(node, id2, self) {
2862
+ var schedules = node.__transition, tween;
2863
+ schedules[id2] = self;
2864
+ self.timer = timer(schedule, 0, self.time);
2865
+ function schedule(elapsed) {
2866
+ self.state = SCHEDULED;
2867
+ self.timer.restart(start2, self.delay, self.time);
2868
+ if (self.delay <= elapsed) start2(elapsed - self.delay);
2869
+ }
2870
+ function start2(elapsed) {
2871
+ var i, j, n, o;
2872
+ if (self.state !== SCHEDULED) return stop();
2873
+ for (i in schedules) {
2874
+ o = schedules[i];
2875
+ if (o.name !== self.name) continue;
2876
+ if (o.state === STARTED) return timeout_default(start2);
2877
+ if (o.state === RUNNING) {
2878
+ o.state = ENDED;
2879
+ o.timer.stop();
2880
+ o.on.call("interrupt", node, node.__data__, o.index, o.group);
2881
+ delete schedules[i];
2882
+ } else if (+i < id2) {
2883
+ o.state = ENDED;
2884
+ o.timer.stop();
2885
+ o.on.call("cancel", node, node.__data__, o.index, o.group);
2886
+ delete schedules[i];
2887
+ }
2888
+ }
2889
+ timeout_default(function() {
2890
+ if (self.state === STARTED) {
2891
+ self.state = RUNNING;
2892
+ self.timer.restart(tick, self.delay, self.time);
2893
+ tick(elapsed);
2894
+ }
2895
+ });
2896
+ self.state = STARTING;
2897
+ self.on.call("start", node, node.__data__, self.index, self.group);
2898
+ if (self.state !== STARTING) return;
2899
+ self.state = STARTED;
2900
+ tween = new Array(n = self.tween.length);
2901
+ for (i = 0, j = -1; i < n; ++i) {
2902
+ if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {
2903
+ tween[++j] = o;
2904
+ }
2905
+ }
2906
+ tween.length = j + 1;
2907
+ }
2908
+ function tick(elapsed) {
2909
+ var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1), i = -1, n = tween.length;
2910
+ while (++i < n) {
2911
+ tween[i].call(node, t);
2912
+ }
2913
+ if (self.state === ENDING) {
2914
+ self.on.call("end", node, node.__data__, self.index, self.group);
2915
+ stop();
2916
+ }
2917
+ }
2918
+ function stop() {
2919
+ self.state = ENDED;
2920
+ self.timer.stop();
2921
+ delete schedules[id2];
2922
+ for (var i in schedules) return;
2923
+ delete node.__transition;
2924
+ }
2925
+ }
2926
+
2927
+ // node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/interrupt.js
2928
+ function interrupt_default(node, name) {
2929
+ var schedules = node.__transition, schedule, active, empty2 = true, i;
2930
+ if (!schedules) return;
2931
+ name = name == null ? null : name + "";
2932
+ for (i in schedules) {
2933
+ if ((schedule = schedules[i]).name !== name) {
2934
+ empty2 = false;
2935
+ continue;
2936
+ }
2937
+ active = schedule.state > STARTING && schedule.state < ENDING;
2938
+ schedule.state = ENDED;
2939
+ schedule.timer.stop();
2940
+ schedule.on.call(active ? "interrupt" : "cancel", node, node.__data__, schedule.index, schedule.group);
2941
+ delete schedules[i];
2942
+ }
2943
+ if (empty2) delete node.__transition;
2944
+ }
2945
+
2946
+ // node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/selection/interrupt.js
2947
+ function interrupt_default2(name) {
2948
+ return this.each(function() {
2949
+ interrupt_default(this, name);
2950
+ });
2951
+ }
2952
+
2953
+ // node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/tween.js
2954
+ function tweenRemove(id2, name) {
2955
+ var tween0, tween1;
2956
+ return function() {
2957
+ var schedule = set2(this, id2), tween = schedule.tween;
2958
+ if (tween !== tween0) {
2959
+ tween1 = tween0 = tween;
2960
+ for (var i = 0, n = tween1.length; i < n; ++i) {
2961
+ if (tween1[i].name === name) {
2962
+ tween1 = tween1.slice();
2963
+ tween1.splice(i, 1);
2964
+ break;
2965
+ }
2966
+ }
2967
+ }
2968
+ schedule.tween = tween1;
2969
+ };
2970
+ }
2971
+ function tweenFunction(id2, name, value) {
2972
+ var tween0, tween1;
2973
+ if (typeof value !== "function") throw new Error();
2974
+ return function() {
2975
+ var schedule = set2(this, id2), tween = schedule.tween;
2976
+ if (tween !== tween0) {
2977
+ tween1 = (tween0 = tween).slice();
2978
+ for (var t = { name, value }, i = 0, n = tween1.length; i < n; ++i) {
2979
+ if (tween1[i].name === name) {
2980
+ tween1[i] = t;
2981
+ break;
2982
+ }
2983
+ }
2984
+ if (i === n) tween1.push(t);
2985
+ }
2986
+ schedule.tween = tween1;
2987
+ };
2988
+ }
2989
+ function tween_default(name, value) {
2990
+ var id2 = this._id;
2991
+ name += "";
2992
+ if (arguments.length < 2) {
2993
+ var tween = get2(this.node(), id2).tween;
2994
+ for (var i = 0, n = tween.length, t; i < n; ++i) {
2995
+ if ((t = tween[i]).name === name) {
2996
+ return t.value;
2997
+ }
2998
+ }
2999
+ return null;
3000
+ }
3001
+ return this.each((value == null ? tweenRemove : tweenFunction)(id2, name, value));
3002
+ }
3003
+ function tweenValue(transition2, name, value) {
3004
+ var id2 = transition2._id;
3005
+ transition2.each(function() {
3006
+ var schedule = set2(this, id2);
3007
+ (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);
3008
+ });
3009
+ return function(node) {
3010
+ return get2(node, id2).value[name];
3011
+ };
3012
+ }
3013
+
3014
+ // node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/interpolate.js
3015
+ function interpolate_default(a, b) {
3016
+ var c;
3017
+ return (typeof b === "number" ? number_default : b instanceof color ? rgb_default : (c = color(b)) ? (b = c, rgb_default) : string_default)(a, b);
3018
+ }
3019
+
3020
+ // node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/attr.js
3021
+ function attrRemove2(name) {
3022
+ return function() {
3023
+ this.removeAttribute(name);
3024
+ };
3025
+ }
3026
+ function attrRemoveNS2(fullname) {
3027
+ return function() {
3028
+ this.removeAttributeNS(fullname.space, fullname.local);
3029
+ };
3030
+ }
3031
+ function attrConstant2(name, interpolate, value1) {
3032
+ var string00, string1 = value1 + "", interpolate0;
3033
+ return function() {
3034
+ var string0 = this.getAttribute(name);
3035
+ return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate(string00 = string0, value1);
3036
+ };
3037
+ }
3038
+ function attrConstantNS2(fullname, interpolate, value1) {
3039
+ var string00, string1 = value1 + "", interpolate0;
3040
+ return function() {
3041
+ var string0 = this.getAttributeNS(fullname.space, fullname.local);
3042
+ return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate(string00 = string0, value1);
3043
+ };
3044
+ }
3045
+ function attrFunction2(name, interpolate, value) {
3046
+ var string00, string10, interpolate0;
3047
+ return function() {
3048
+ var string0, value1 = value(this), string1;
3049
+ if (value1 == null) return void this.removeAttribute(name);
3050
+ string0 = this.getAttribute(name);
3051
+ string1 = value1 + "";
3052
+ return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));
3053
+ };
3054
+ }
3055
+ function attrFunctionNS2(fullname, interpolate, value) {
3056
+ var string00, string10, interpolate0;
3057
+ return function() {
3058
+ var string0, value1 = value(this), string1;
3059
+ if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);
3060
+ string0 = this.getAttributeNS(fullname.space, fullname.local);
3061
+ string1 = value1 + "";
3062
+ return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));
3063
+ };
3064
+ }
3065
+ function attr_default2(name, value) {
3066
+ var fullname = namespace_default(name), i = fullname === "transform" ? interpolateTransformSvg : interpolate_default;
3067
+ return this.attrTween(name, typeof value === "function" ? (fullname.local ? attrFunctionNS2 : attrFunction2)(fullname, i, tweenValue(this, "attr." + name, value)) : value == null ? (fullname.local ? attrRemoveNS2 : attrRemove2)(fullname) : (fullname.local ? attrConstantNS2 : attrConstant2)(fullname, i, value));
3068
+ }
3069
+
3070
+ // node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/attrTween.js
3071
+ function attrInterpolate(name, i) {
3072
+ return function(t) {
3073
+ this.setAttribute(name, i.call(this, t));
3074
+ };
3075
+ }
3076
+ function attrInterpolateNS(fullname, i) {
3077
+ return function(t) {
3078
+ this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));
3079
+ };
3080
+ }
3081
+ function attrTweenNS(fullname, value) {
3082
+ var t0, i0;
3083
+ function tween() {
3084
+ var i = value.apply(this, arguments);
3085
+ if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);
3086
+ return t0;
3087
+ }
3088
+ tween._value = value;
3089
+ return tween;
3090
+ }
3091
+ function attrTween(name, value) {
3092
+ var t0, i0;
3093
+ function tween() {
3094
+ var i = value.apply(this, arguments);
3095
+ if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);
3096
+ return t0;
3097
+ }
3098
+ tween._value = value;
3099
+ return tween;
3100
+ }
3101
+ function attrTween_default(name, value) {
3102
+ var key = "attr." + name;
3103
+ if (arguments.length < 2) return (key = this.tween(key)) && key._value;
3104
+ if (value == null) return this.tween(key, null);
3105
+ if (typeof value !== "function") throw new Error();
3106
+ var fullname = namespace_default(name);
3107
+ return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));
3108
+ }
3109
+
3110
+ // node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/delay.js
3111
+ function delayFunction(id2, value) {
3112
+ return function() {
3113
+ init(this, id2).delay = +value.apply(this, arguments);
3114
+ };
3115
+ }
3116
+ function delayConstant(id2, value) {
3117
+ return value = +value, function() {
3118
+ init(this, id2).delay = value;
3119
+ };
3120
+ }
3121
+ function delay_default(value) {
3122
+ var id2 = this._id;
3123
+ return arguments.length ? this.each((typeof value === "function" ? delayFunction : delayConstant)(id2, value)) : get2(this.node(), id2).delay;
3124
+ }
3125
+
3126
+ // node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/duration.js
3127
+ function durationFunction(id2, value) {
3128
+ return function() {
3129
+ set2(this, id2).duration = +value.apply(this, arguments);
3130
+ };
3131
+ }
3132
+ function durationConstant(id2, value) {
3133
+ return value = +value, function() {
3134
+ set2(this, id2).duration = value;
3135
+ };
3136
+ }
3137
+ function duration_default(value) {
3138
+ var id2 = this._id;
3139
+ return arguments.length ? this.each((typeof value === "function" ? durationFunction : durationConstant)(id2, value)) : get2(this.node(), id2).duration;
3140
+ }
3141
+
3142
+ // node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/ease.js
3143
+ function easeConstant(id2, value) {
3144
+ if (typeof value !== "function") throw new Error();
3145
+ return function() {
3146
+ set2(this, id2).ease = value;
3147
+ };
3148
+ }
3149
+ function ease_default(value) {
3150
+ var id2 = this._id;
3151
+ return arguments.length ? this.each(easeConstant(id2, value)) : get2(this.node(), id2).ease;
3152
+ }
3153
+
3154
+ // node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/easeVarying.js
3155
+ function easeVarying(id2, value) {
3156
+ return function() {
3157
+ var v = value.apply(this, arguments);
3158
+ if (typeof v !== "function") throw new Error();
3159
+ set2(this, id2).ease = v;
3160
+ };
3161
+ }
3162
+ function easeVarying_default(value) {
3163
+ if (typeof value !== "function") throw new Error();
3164
+ return this.each(easeVarying(this._id, value));
3165
+ }
3166
+
3167
+ // node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/filter.js
3168
+ function filter_default2(match) {
3169
+ if (typeof match !== "function") match = matcher_default(match);
3170
+ for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
3171
+ for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {
3172
+ if ((node = group[i]) && match.call(node, node.__data__, i, group)) {
3173
+ subgroup.push(node);
3174
+ }
3175
+ }
3176
+ }
3177
+ return new Transition(subgroups, this._parents, this._name, this._id);
3178
+ }
3179
+
3180
+ // node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/merge.js
3181
+ function merge_default2(transition2) {
3182
+ if (transition2._id !== this._id) throw new Error();
3183
+ for (var groups0 = this._groups, groups1 = transition2._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {
3184
+ for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {
3185
+ if (node = group0[i] || group1[i]) {
3186
+ merge[i] = node;
3187
+ }
3188
+ }
3189
+ }
3190
+ for (; j < m0; ++j) {
3191
+ merges[j] = groups0[j];
3192
+ }
3193
+ return new Transition(merges, this._parents, this._name, this._id);
3194
+ }
3195
+
3196
+ // node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/on.js
3197
+ function start(name) {
3198
+ return (name + "").trim().split(/^|\s+/).every(function(t) {
3199
+ var i = t.indexOf(".");
3200
+ if (i >= 0) t = t.slice(0, i);
3201
+ return !t || t === "start";
3202
+ });
3203
+ }
3204
+ function onFunction(id2, name, listener) {
3205
+ var on0, on1, sit = start(name) ? init : set2;
3206
+ return function() {
3207
+ var schedule = sit(this, id2), on = schedule.on;
3208
+ if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);
3209
+ schedule.on = on1;
3210
+ };
3211
+ }
3212
+ function on_default2(name, listener) {
3213
+ var id2 = this._id;
3214
+ return arguments.length < 2 ? get2(this.node(), id2).on.on(name) : this.each(onFunction(id2, name, listener));
3215
+ }
3216
+
3217
+ // node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/remove.js
3218
+ function removeFunction(id2) {
3219
+ return function() {
3220
+ var parent = this.parentNode;
3221
+ for (var i in this.__transition) if (+i !== id2) return;
3222
+ if (parent) parent.removeChild(this);
3223
+ };
3224
+ }
3225
+ function remove_default2() {
3226
+ return this.on("end.remove", removeFunction(this._id));
3227
+ }
3228
+
3229
+ // node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/select.js
3230
+ function select_default3(select) {
3231
+ var name = this._name, id2 = this._id;
3232
+ if (typeof select !== "function") select = selector_default(select);
3233
+ for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
3234
+ for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {
3235
+ if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {
3236
+ if ("__data__" in node) subnode.__data__ = node.__data__;
3237
+ subgroup[i] = subnode;
3238
+ schedule_default(subgroup[i], name, id2, i, subgroup, get2(node, id2));
3239
+ }
3240
+ }
3241
+ }
3242
+ return new Transition(subgroups, this._parents, name, id2);
3243
+ }
3244
+
3245
+ // node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/selectAll.js
3246
+ function selectAll_default2(select) {
3247
+ var name = this._name, id2 = this._id;
3248
+ if (typeof select !== "function") select = selectorAll_default(select);
3249
+ for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {
3250
+ for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
3251
+ if (node = group[i]) {
3252
+ for (var children2 = select.call(node, node.__data__, i, group), child, inherit2 = get2(node, id2), k = 0, l = children2.length; k < l; ++k) {
3253
+ if (child = children2[k]) {
3254
+ schedule_default(child, name, id2, k, children2, inherit2);
3255
+ }
3256
+ }
3257
+ subgroups.push(children2);
3258
+ parents.push(node);
3259
+ }
3260
+ }
3261
+ }
3262
+ return new Transition(subgroups, parents, name, id2);
3263
+ }
3264
+
3265
+ // node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/selection.js
3266
+ var Selection2 = selection_default.prototype.constructor;
3267
+ function selection_default2() {
3268
+ return new Selection2(this._groups, this._parents);
3269
+ }
3270
+
3271
+ // node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/style.js
3272
+ function styleNull(name, interpolate) {
3273
+ var string00, string10, interpolate0;
3274
+ return function() {
3275
+ var string0 = styleValue(this, name), string1 = (this.style.removeProperty(name), styleValue(this, name));
3276
+ return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : interpolate0 = interpolate(string00 = string0, string10 = string1);
3277
+ };
3278
+ }
3279
+ function styleRemove2(name) {
3280
+ return function() {
3281
+ this.style.removeProperty(name);
3282
+ };
3283
+ }
3284
+ function styleConstant2(name, interpolate, value1) {
3285
+ var string00, string1 = value1 + "", interpolate0;
3286
+ return function() {
3287
+ var string0 = styleValue(this, name);
3288
+ return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate(string00 = string0, value1);
3289
+ };
3290
+ }
3291
+ function styleFunction2(name, interpolate, value) {
3292
+ var string00, string10, interpolate0;
3293
+ return function() {
3294
+ var string0 = styleValue(this, name), value1 = value(this), string1 = value1 + "";
3295
+ if (value1 == null) string1 = value1 = (this.style.removeProperty(name), styleValue(this, name));
3296
+ return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));
3297
+ };
3298
+ }
3299
+ function styleMaybeRemove(id2, name) {
3300
+ var on0, on1, listener0, key = "style." + name, event = "end." + key, remove2;
3301
+ return function() {
3302
+ var schedule = set2(this, id2), on = schedule.on, listener = schedule.value[key] == null ? remove2 || (remove2 = styleRemove2(name)) : void 0;
3303
+ if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);
3304
+ schedule.on = on1;
3305
+ };
3306
+ }
3307
+ function style_default2(name, value, priority) {
3308
+ var i = (name += "") === "transform" ? interpolateTransformCss : interpolate_default;
3309
+ return value == null ? this.styleTween(name, styleNull(name, i)).on("end.style." + name, styleRemove2(name)) : typeof value === "function" ? this.styleTween(name, styleFunction2(name, i, tweenValue(this, "style." + name, value))).each(styleMaybeRemove(this._id, name)) : this.styleTween(name, styleConstant2(name, i, value), priority).on("end.style." + name, null);
3310
+ }
3311
+
3312
+ // node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/styleTween.js
3313
+ function styleInterpolate(name, i, priority) {
3314
+ return function(t) {
3315
+ this.style.setProperty(name, i.call(this, t), priority);
3316
+ };
3317
+ }
3318
+ function styleTween(name, value, priority) {
3319
+ var t, i0;
3320
+ function tween() {
3321
+ var i = value.apply(this, arguments);
3322
+ if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);
3323
+ return t;
3324
+ }
3325
+ tween._value = value;
3326
+ return tween;
3327
+ }
3328
+ function styleTween_default(name, value, priority) {
3329
+ var key = "style." + (name += "");
3330
+ if (arguments.length < 2) return (key = this.tween(key)) && key._value;
3331
+ if (value == null) return this.tween(key, null);
3332
+ if (typeof value !== "function") throw new Error();
3333
+ return this.tween(key, styleTween(name, value, priority == null ? "" : priority));
3334
+ }
3335
+
3336
+ // node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/text.js
3337
+ function textConstant2(value) {
3338
+ return function() {
3339
+ this.textContent = value;
3340
+ };
3341
+ }
3342
+ function textFunction2(value) {
3343
+ return function() {
3344
+ var value1 = value(this);
3345
+ this.textContent = value1 == null ? "" : value1;
3346
+ };
3347
+ }
3348
+ function text_default2(value) {
3349
+ return this.tween("text", typeof value === "function" ? textFunction2(tweenValue(this, "text", value)) : textConstant2(value == null ? "" : value + ""));
3350
+ }
3351
+
3352
+ // node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/textTween.js
3353
+ function textInterpolate(i) {
3354
+ return function(t) {
3355
+ this.textContent = i.call(this, t);
3356
+ };
3357
+ }
3358
+ function textTween(value) {
3359
+ var t0, i0;
3360
+ function tween() {
3361
+ var i = value.apply(this, arguments);
3362
+ if (i !== i0) t0 = (i0 = i) && textInterpolate(i);
3363
+ return t0;
3364
+ }
3365
+ tween._value = value;
3366
+ return tween;
3367
+ }
3368
+ function textTween_default(value) {
3369
+ var key = "text";
3370
+ if (arguments.length < 1) return (key = this.tween(key)) && key._value;
3371
+ if (value == null) return this.tween(key, null);
3372
+ if (typeof value !== "function") throw new Error();
3373
+ return this.tween(key, textTween(value));
3374
+ }
3375
+
3376
+ // node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/transition.js
3377
+ function transition_default() {
3378
+ var name = this._name, id0 = this._id, id1 = newId();
3379
+ for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {
3380
+ for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
3381
+ if (node = group[i]) {
3382
+ var inherit2 = get2(node, id0);
3383
+ schedule_default(node, name, id1, i, group, {
3384
+ time: inherit2.time + inherit2.delay + inherit2.duration,
3385
+ delay: 0,
3386
+ duration: inherit2.duration,
3387
+ ease: inherit2.ease
3388
+ });
3389
+ }
3390
+ }
3391
+ }
3392
+ return new Transition(groups, this._parents, name, id1);
3393
+ }
3394
+
3395
+ // node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/end.js
3396
+ function end_default() {
3397
+ var on0, on1, that = this, id2 = that._id, size = that.size();
3398
+ return new Promise(function(resolve, reject) {
3399
+ var cancel = { value: reject }, end = { value: function() {
3400
+ if (--size === 0) resolve();
3401
+ } };
3402
+ that.each(function() {
3403
+ var schedule = set2(this, id2), on = schedule.on;
3404
+ if (on !== on0) {
3405
+ on1 = (on0 = on).copy();
3406
+ on1._.cancel.push(cancel);
3407
+ on1._.interrupt.push(cancel);
3408
+ on1._.end.push(end);
3409
+ }
3410
+ schedule.on = on1;
3411
+ });
3412
+ if (size === 0) resolve();
3413
+ });
3414
+ }
3415
+
3416
+ // node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/index.js
3417
+ var id = 0;
3418
+ function Transition(groups, parents, name, id2) {
3419
+ this._groups = groups;
3420
+ this._parents = parents;
3421
+ this._name = name;
3422
+ this._id = id2;
3423
+ }
3424
+ function newId() {
3425
+ return ++id;
3426
+ }
3427
+ var selection_prototype = selection_default.prototype;
3428
+ Transition.prototype = {
3429
+ constructor: Transition,
3430
+ select: select_default3,
3431
+ selectAll: selectAll_default2,
3432
+ selectChild: selection_prototype.selectChild,
3433
+ selectChildren: selection_prototype.selectChildren,
3434
+ filter: filter_default2,
3435
+ merge: merge_default2,
3436
+ selection: selection_default2,
3437
+ transition: transition_default,
3438
+ call: selection_prototype.call,
3439
+ nodes: selection_prototype.nodes,
3440
+ node: selection_prototype.node,
3441
+ size: selection_prototype.size,
3442
+ empty: selection_prototype.empty,
3443
+ each: selection_prototype.each,
3444
+ on: on_default2,
3445
+ attr: attr_default2,
3446
+ attrTween: attrTween_default,
3447
+ style: style_default2,
3448
+ styleTween: styleTween_default,
3449
+ text: text_default2,
3450
+ textTween: textTween_default,
3451
+ remove: remove_default2,
3452
+ tween: tween_default,
3453
+ delay: delay_default,
3454
+ duration: duration_default,
3455
+ ease: ease_default,
3456
+ easeVarying: easeVarying_default,
3457
+ end: end_default,
3458
+ [Symbol.iterator]: selection_prototype[Symbol.iterator]
3459
+ };
3460
+
3461
+ // node_modules/.pnpm/d3-ease@3.0.1/node_modules/d3-ease/src/cubic.js
3462
+ function cubicInOut(t) {
3463
+ return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;
3464
+ }
3465
+
3466
+ // node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/selection/transition.js
3467
+ var defaultTiming = {
3468
+ time: null,
3469
+ // Set on use.
3470
+ delay: 0,
3471
+ duration: 250,
3472
+ ease: cubicInOut
3473
+ };
3474
+ function inherit(node, id2) {
3475
+ var timing;
3476
+ while (!(timing = node.__transition) || !(timing = timing[id2])) {
3477
+ if (!(node = node.parentNode)) {
3478
+ throw new Error(`transition ${id2} not found`);
3479
+ }
3480
+ }
3481
+ return timing;
3482
+ }
3483
+ function transition_default2(name) {
3484
+ var id2, timing;
3485
+ if (name instanceof Transition) {
3486
+ id2 = name._id, name = name._name;
3487
+ } else {
3488
+ id2 = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + "";
3489
+ }
3490
+ for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {
3491
+ for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
3492
+ if (node = group[i]) {
3493
+ schedule_default(node, name, id2, i, group, timing || inherit(node, id2));
3494
+ }
3495
+ }
3496
+ }
3497
+ return new Transition(groups, this._parents, name, id2);
3498
+ }
3499
+
3500
+ // node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/selection/index.js
3501
+ selection_default.prototype.interrupt = interrupt_default2;
3502
+ selection_default.prototype.transition = transition_default2;
3503
+
3504
+ // node_modules/.pnpm/d3-path@3.1.0/node_modules/d3-path/src/path.js
3505
+ var pi = Math.PI;
3506
+ var tau = 2 * pi;
3507
+ var epsilon = 1e-6;
3508
+ var tauEpsilon = tau - epsilon;
3509
+ function append(strings) {
3510
+ this._ += strings[0];
3511
+ for (let i = 1, n = strings.length; i < n; ++i) {
3512
+ this._ += arguments[i] + strings[i];
3513
+ }
3514
+ }
3515
+ function appendRound(digits) {
3516
+ let d = Math.floor(digits);
3517
+ if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);
3518
+ if (d > 15) return append;
3519
+ const k = 10 ** d;
3520
+ return function(strings) {
3521
+ this._ += strings[0];
3522
+ for (let i = 1, n = strings.length; i < n; ++i) {
3523
+ this._ += Math.round(arguments[i] * k) / k + strings[i];
3524
+ }
3525
+ };
3526
+ }
3527
+ var Path = class {
3528
+ constructor(digits) {
3529
+ this._x0 = this._y0 = // start of current subpath
3530
+ this._x1 = this._y1 = null;
3531
+ this._ = "";
3532
+ this._append = digits == null ? append : appendRound(digits);
3533
+ }
3534
+ moveTo(x2, y2) {
3535
+ this._append`M${this._x0 = this._x1 = +x2},${this._y0 = this._y1 = +y2}`;
3536
+ }
3537
+ closePath() {
3538
+ if (this._x1 !== null) {
3539
+ this._x1 = this._x0, this._y1 = this._y0;
3540
+ this._append`Z`;
3541
+ }
3542
+ }
3543
+ lineTo(x2, y2) {
3544
+ this._append`L${this._x1 = +x2},${this._y1 = +y2}`;
3545
+ }
3546
+ quadraticCurveTo(x1, y1, x2, y2) {
3547
+ this._append`Q${+x1},${+y1},${this._x1 = +x2},${this._y1 = +y2}`;
3548
+ }
3549
+ bezierCurveTo(x1, y1, x2, y2, x3, y3) {
3550
+ this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x3},${this._y1 = +y3}`;
3551
+ }
3552
+ arcTo(x1, y1, x2, y2, r) {
3553
+ x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;
3554
+ if (r < 0) throw new Error(`negative radius: ${r}`);
3555
+ let x0 = this._x1, y0 = this._y1, x21 = x2 - x1, y21 = y2 - y1, x01 = x0 - x1, y01 = y0 - y1, l01_2 = x01 * x01 + y01 * y01;
3556
+ if (this._x1 === null) {
3557
+ this._append`M${this._x1 = x1},${this._y1 = y1}`;
3558
+ } else if (!(l01_2 > epsilon)) ;
3559
+ else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {
3560
+ this._append`L${this._x1 = x1},${this._y1 = y1}`;
3561
+ } else {
3562
+ let x20 = x2 - x0, y20 = y2 - y0, l21_2 = x21 * x21 + y21 * y21, l20_2 = x20 * x20 + y20 * y20, l21 = Math.sqrt(l21_2), l01 = Math.sqrt(l01_2), l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2), t01 = l / l01, t21 = l / l21;
3563
+ if (Math.abs(t01 - 1) > epsilon) {
3564
+ this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;
3565
+ }
3566
+ this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;
3567
+ }
3568
+ }
3569
+ arc(x2, y2, r, a0, a1, ccw) {
3570
+ x2 = +x2, y2 = +y2, r = +r, ccw = !!ccw;
3571
+ if (r < 0) throw new Error(`negative radius: ${r}`);
3572
+ let dx = r * Math.cos(a0), dy = r * Math.sin(a0), x0 = x2 + dx, y0 = y2 + dy, cw = 1 ^ ccw, da = ccw ? a0 - a1 : a1 - a0;
3573
+ if (this._x1 === null) {
3574
+ this._append`M${x0},${y0}`;
3575
+ } else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {
3576
+ this._append`L${x0},${y0}`;
3577
+ }
3578
+ if (!r) return;
3579
+ if (da < 0) da = da % tau + tau;
3580
+ if (da > tauEpsilon) {
3581
+ this._append`A${r},${r},0,1,${cw},${x2 - dx},${y2 - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;
3582
+ } else if (da > epsilon) {
3583
+ this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x2 + r * Math.cos(a1)},${this._y1 = y2 + r * Math.sin(a1)}`;
3584
+ }
3585
+ }
3586
+ rect(x2, y2, w, h) {
3587
+ this._append`M${this._x0 = this._x1 = +x2},${this._y0 = this._y1 = +y2}h${w = +w}v${+h}h${-w}Z`;
3588
+ }
3589
+ toString() {
3590
+ return this._;
3591
+ }
3592
+ };
3593
+
3594
+ // node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/count.js
3595
+ function count(node) {
3596
+ var sum = 0, children2 = node.children, i = children2 && children2.length;
3597
+ if (!i) sum = 1;
3598
+ else while (--i >= 0) sum += children2[i].value;
3599
+ node.value = sum;
3600
+ }
3601
+ function count_default() {
3602
+ return this.eachAfter(count);
3603
+ }
3604
+
3605
+ // node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/each.js
3606
+ function each_default2(callback, that) {
3607
+ let index = -1;
3608
+ for (const node of this) {
3609
+ callback.call(that, node, ++index, this);
3610
+ }
3611
+ return this;
3612
+ }
3613
+
3614
+ // node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/eachBefore.js
3615
+ function eachBefore_default(callback, that) {
3616
+ var node = this, nodes = [node], children2, i, index = -1;
3617
+ while (node = nodes.pop()) {
3618
+ callback.call(that, node, ++index, this);
3619
+ if (children2 = node.children) {
3620
+ for (i = children2.length - 1; i >= 0; --i) {
3621
+ nodes.push(children2[i]);
3622
+ }
3623
+ }
3624
+ }
3625
+ return this;
3626
+ }
3627
+
3628
+ // node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/eachAfter.js
3629
+ function eachAfter_default(callback, that) {
3630
+ var node = this, nodes = [node], next = [], children2, i, n, index = -1;
3631
+ while (node = nodes.pop()) {
3632
+ next.push(node);
3633
+ if (children2 = node.children) {
3634
+ for (i = 0, n = children2.length; i < n; ++i) {
3635
+ nodes.push(children2[i]);
3636
+ }
3637
+ }
3638
+ }
3639
+ while (node = next.pop()) {
3640
+ callback.call(that, node, ++index, this);
3641
+ }
3642
+ return this;
3643
+ }
3644
+
3645
+ // node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/find.js
3646
+ function find_default(callback, that) {
3647
+ let index = -1;
3648
+ for (const node of this) {
3649
+ if (callback.call(that, node, ++index, this)) {
3650
+ return node;
3651
+ }
3652
+ }
3653
+ }
3654
+
3655
+ // node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/sum.js
3656
+ function sum_default(value) {
3657
+ return this.eachAfter(function(node) {
3658
+ var sum = +value(node.data) || 0, children2 = node.children, i = children2 && children2.length;
3659
+ while (--i >= 0) sum += children2[i].value;
3660
+ node.value = sum;
3661
+ });
3662
+ }
3663
+
3664
+ // node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/sort.js
3665
+ function sort_default2(compare) {
3666
+ return this.eachBefore(function(node) {
3667
+ if (node.children) {
3668
+ node.children.sort(compare);
3669
+ }
3670
+ });
3671
+ }
3672
+
3673
+ // node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/path.js
3674
+ function path_default(end) {
3675
+ var start2 = this, ancestor = leastCommonAncestor(start2, end), nodes = [start2];
3676
+ while (start2 !== ancestor) {
3677
+ start2 = start2.parent;
3678
+ nodes.push(start2);
3679
+ }
3680
+ var k = nodes.length;
3681
+ while (end !== ancestor) {
3682
+ nodes.splice(k, 0, end);
3683
+ end = end.parent;
3684
+ }
3685
+ return nodes;
3686
+ }
3687
+ function leastCommonAncestor(a, b) {
3688
+ if (a === b) return a;
3689
+ var aNodes = a.ancestors(), bNodes = b.ancestors(), c = null;
3690
+ a = aNodes.pop();
3691
+ b = bNodes.pop();
3692
+ while (a === b) {
3693
+ c = a;
3694
+ a = aNodes.pop();
3695
+ b = bNodes.pop();
3696
+ }
3697
+ return c;
3698
+ }
3699
+
3700
+ // node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/ancestors.js
3701
+ function ancestors_default() {
3702
+ var node = this, nodes = [node];
3703
+ while (node = node.parent) {
3704
+ nodes.push(node);
3705
+ }
3706
+ return nodes;
3707
+ }
3708
+
3709
+ // node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/descendants.js
3710
+ function descendants_default() {
3711
+ return Array.from(this);
3712
+ }
3713
+
3714
+ // node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/leaves.js
3715
+ function leaves_default() {
3716
+ var leaves = [];
3717
+ this.eachBefore(function(node) {
3718
+ if (!node.children) {
3719
+ leaves.push(node);
3720
+ }
3721
+ });
3722
+ return leaves;
3723
+ }
3724
+
3725
+ // node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/links.js
3726
+ function links_default() {
3727
+ var root2 = this, links = [];
3728
+ root2.each(function(node) {
3729
+ if (node !== root2) {
3730
+ links.push({ source: node.parent, target: node });
3731
+ }
3732
+ });
3733
+ return links;
3734
+ }
3735
+
3736
+ // node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/iterator.js
3737
+ function* iterator_default2() {
3738
+ var node = this, current, next = [node], children2, i, n;
3739
+ do {
3740
+ current = next.reverse(), next = [];
3741
+ while (node = current.pop()) {
3742
+ yield node;
3743
+ if (children2 = node.children) {
3744
+ for (i = 0, n = children2.length; i < n; ++i) {
3745
+ next.push(children2[i]);
3746
+ }
3747
+ }
3748
+ }
3749
+ } while (next.length);
3750
+ }
3751
+
3752
+ // node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/index.js
3753
+ function hierarchy(data, children2) {
3754
+ if (data instanceof Map) {
3755
+ data = [void 0, data];
3756
+ if (children2 === void 0) children2 = mapChildren;
3757
+ } else if (children2 === void 0) {
3758
+ children2 = objectChildren;
3759
+ }
3760
+ var root2 = new Node2(data), node, nodes = [root2], child, childs, i, n;
3761
+ while (node = nodes.pop()) {
3762
+ if ((childs = children2(node.data)) && (n = (childs = Array.from(childs)).length)) {
3763
+ node.children = childs;
3764
+ for (i = n - 1; i >= 0; --i) {
3765
+ nodes.push(child = childs[i] = new Node2(childs[i]));
3766
+ child.parent = node;
3767
+ child.depth = node.depth + 1;
3768
+ }
3769
+ }
3770
+ }
3771
+ return root2.eachBefore(computeHeight);
3772
+ }
3773
+ function node_copy() {
3774
+ return hierarchy(this).eachBefore(copyData);
3775
+ }
3776
+ function objectChildren(d) {
3777
+ return d.children;
3778
+ }
3779
+ function mapChildren(d) {
3780
+ return Array.isArray(d) ? d[1] : null;
3781
+ }
3782
+ function copyData(node) {
3783
+ if (node.data.value !== void 0) node.value = node.data.value;
3784
+ node.data = node.data.data;
3785
+ }
3786
+ function computeHeight(node) {
3787
+ var height = 0;
3788
+ do
3789
+ node.height = height;
3790
+ while ((node = node.parent) && node.height < ++height);
3791
+ }
3792
+ function Node2(data) {
3793
+ this.data = data;
3794
+ this.depth = this.height = 0;
3795
+ this.parent = null;
3796
+ }
3797
+ Node2.prototype = hierarchy.prototype = {
3798
+ constructor: Node2,
3799
+ count: count_default,
3800
+ each: each_default2,
3801
+ eachAfter: eachAfter_default,
3802
+ eachBefore: eachBefore_default,
3803
+ find: find_default,
3804
+ sum: sum_default,
3805
+ sort: sort_default2,
3806
+ path: path_default,
3807
+ ancestors: ancestors_default,
3808
+ descendants: descendants_default,
3809
+ leaves: leaves_default,
3810
+ links: links_default,
3811
+ copy: node_copy,
3812
+ [Symbol.iterator]: iterator_default2
3813
+ };
3814
+
3815
+ // node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/accessors.js
3816
+ function optional(f) {
3817
+ return f == null ? null : required(f);
3818
+ }
3819
+ function required(f) {
3820
+ if (typeof f !== "function") throw new Error();
3821
+ return f;
3822
+ }
3823
+
3824
+ // node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/stratify.js
3825
+ var preroot = { depth: -1 };
3826
+ var ambiguous = {};
3827
+ var imputed = {};
3828
+ function defaultId(d) {
3829
+ return d.id;
3830
+ }
3831
+ function defaultParentId(d) {
3832
+ return d.parentId;
3833
+ }
3834
+ function stratify_default() {
3835
+ var id2 = defaultId, parentId = defaultParentId, path2;
3836
+ function stratify(data) {
3837
+ var nodes = Array.from(data), currentId = id2, currentParentId = parentId, n, d, i, root2, parent, node, nodeId, nodeKey, nodeByKey = /* @__PURE__ */ new Map();
3838
+ if (path2 != null) {
3839
+ const I = nodes.map((d2, i2) => normalize(path2(d2, i2, data)));
3840
+ const P = I.map(parentof);
3841
+ const S = new Set(I).add("");
3842
+ for (const i2 of P) {
3843
+ if (!S.has(i2)) {
3844
+ S.add(i2);
3845
+ I.push(i2);
3846
+ P.push(parentof(i2));
3847
+ nodes.push(imputed);
3848
+ }
3849
+ }
3850
+ currentId = (_, i2) => I[i2];
3851
+ currentParentId = (_, i2) => P[i2];
3852
+ }
3853
+ for (i = 0, n = nodes.length; i < n; ++i) {
3854
+ d = nodes[i], node = nodes[i] = new Node2(d);
3855
+ if ((nodeId = currentId(d, i, data)) != null && (nodeId += "")) {
3856
+ nodeKey = node.id = nodeId;
3857
+ nodeByKey.set(nodeKey, nodeByKey.has(nodeKey) ? ambiguous : node);
3858
+ }
3859
+ if ((nodeId = currentParentId(d, i, data)) != null && (nodeId += "")) {
3860
+ node.parent = nodeId;
3861
+ }
3862
+ }
3863
+ for (i = 0; i < n; ++i) {
3864
+ node = nodes[i];
3865
+ if (nodeId = node.parent) {
3866
+ parent = nodeByKey.get(nodeId);
3867
+ if (!parent) throw new Error("missing: " + nodeId);
3868
+ if (parent === ambiguous) throw new Error("ambiguous: " + nodeId);
3869
+ if (parent.children) parent.children.push(node);
3870
+ else parent.children = [node];
3871
+ node.parent = parent;
3872
+ } else {
3873
+ if (root2) throw new Error("multiple roots");
3874
+ root2 = node;
3875
+ }
3876
+ }
3877
+ if (!root2) throw new Error("no root");
3878
+ if (path2 != null) {
3879
+ while (root2.data === imputed && root2.children.length === 1) {
3880
+ root2 = root2.children[0], --n;
3881
+ }
3882
+ for (let i2 = nodes.length - 1; i2 >= 0; --i2) {
3883
+ node = nodes[i2];
3884
+ if (node.data !== imputed) break;
3885
+ node.data = null;
3886
+ }
3887
+ }
3888
+ root2.parent = preroot;
3889
+ root2.eachBefore(function(node2) {
3890
+ node2.depth = node2.parent.depth + 1;
3891
+ --n;
3892
+ }).eachBefore(computeHeight);
3893
+ root2.parent = null;
3894
+ if (n > 0) throw new Error("cycle");
3895
+ return root2;
3896
+ }
3897
+ stratify.id = function(x2) {
3898
+ return arguments.length ? (id2 = optional(x2), stratify) : id2;
3899
+ };
3900
+ stratify.parentId = function(x2) {
3901
+ return arguments.length ? (parentId = optional(x2), stratify) : parentId;
3902
+ };
3903
+ stratify.path = function(x2) {
3904
+ return arguments.length ? (path2 = optional(x2), stratify) : path2;
3905
+ };
3906
+ return stratify;
3907
+ }
3908
+ function normalize(path2) {
3909
+ path2 = `${path2}`;
3910
+ let i = path2.length;
3911
+ if (slash(path2, i - 1) && !slash(path2, i - 2)) path2 = path2.slice(0, -1);
3912
+ return path2[0] === "/" ? path2 : `/${path2}`;
3913
+ }
3914
+ function parentof(path2) {
3915
+ let i = path2.length;
3916
+ if (i < 2) return "";
3917
+ while (--i > 1) if (slash(path2, i)) break;
3918
+ return path2.slice(0, i);
3919
+ }
3920
+ function slash(path2, i) {
3921
+ if (path2[i] === "/") {
3922
+ let k = 0;
3923
+ while (i > 0 && path2[--i] === "\\") ++k;
3924
+ if ((k & 1) === 0) return true;
3925
+ }
3926
+ return false;
3927
+ }
3928
+
3929
+ // node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/tree.js
3930
+ function defaultSeparation(a, b) {
3931
+ return a.parent === b.parent ? 1 : 2;
3932
+ }
3933
+ function nextLeft(v) {
3934
+ var children2 = v.children;
3935
+ return children2 ? children2[0] : v.t;
3936
+ }
3937
+ function nextRight(v) {
3938
+ var children2 = v.children;
3939
+ return children2 ? children2[children2.length - 1] : v.t;
3940
+ }
3941
+ function moveSubtree(wm, wp, shift) {
3942
+ var change = shift / (wp.i - wm.i);
3943
+ wp.c -= change;
3944
+ wp.s += shift;
3945
+ wm.c += change;
3946
+ wp.z += shift;
3947
+ wp.m += shift;
3948
+ }
3949
+ function executeShifts(v) {
3950
+ var shift = 0, change = 0, children2 = v.children, i = children2.length, w;
3951
+ while (--i >= 0) {
3952
+ w = children2[i];
3953
+ w.z += shift;
3954
+ w.m += shift;
3955
+ shift += w.s + (change += w.c);
3956
+ }
3957
+ }
3958
+ function nextAncestor(vim, v, ancestor) {
3959
+ return vim.a.parent === v.parent ? vim.a : ancestor;
3960
+ }
3961
+ function TreeNode2(node, i) {
3962
+ this._ = node;
3963
+ this.parent = null;
3964
+ this.children = null;
3965
+ this.A = null;
3966
+ this.a = this;
3967
+ this.z = 0;
3968
+ this.m = 0;
3969
+ this.c = 0;
3970
+ this.s = 0;
3971
+ this.t = null;
3972
+ this.i = i;
3973
+ }
3974
+ TreeNode2.prototype = Object.create(Node2.prototype);
3975
+ function treeRoot(root2) {
3976
+ var tree = new TreeNode2(root2, 0), node, nodes = [tree], child, children2, i, n;
3977
+ while (node = nodes.pop()) {
3978
+ if (children2 = node._.children) {
3979
+ node.children = new Array(n = children2.length);
3980
+ for (i = n - 1; i >= 0; --i) {
3981
+ nodes.push(child = node.children[i] = new TreeNode2(children2[i], i));
3982
+ child.parent = node;
3983
+ }
3984
+ }
3985
+ }
3986
+ (tree.parent = new TreeNode2(null, 0)).children = [tree];
3987
+ return tree;
3988
+ }
3989
+ function tree_default() {
3990
+ var separation = defaultSeparation, dx = 1, dy = 1, nodeSize = null;
3991
+ function tree(root2) {
3992
+ var t = treeRoot(root2);
3993
+ t.eachAfter(firstWalk), t.parent.m = -t.z;
3994
+ t.eachBefore(secondWalk);
3995
+ if (nodeSize) root2.eachBefore(sizeNode);
3996
+ else {
3997
+ var left = root2, right = root2, bottom = root2;
3998
+ root2.eachBefore(function(node) {
3999
+ if (node.x < left.x) left = node;
4000
+ if (node.x > right.x) right = node;
4001
+ if (node.depth > bottom.depth) bottom = node;
4002
+ });
4003
+ var s = left === right ? 1 : separation(left, right) / 2, tx = s - left.x, kx = dx / (right.x + s + tx), ky = dy / (bottom.depth || 1);
4004
+ root2.eachBefore(function(node) {
4005
+ node.x = (node.x + tx) * kx;
4006
+ node.y = node.depth * ky;
4007
+ });
4008
+ }
4009
+ return root2;
4010
+ }
4011
+ function firstWalk(v) {
4012
+ var children2 = v.children, siblings = v.parent.children, w = v.i ? siblings[v.i - 1] : null;
4013
+ if (children2) {
4014
+ executeShifts(v);
4015
+ var midpoint = (children2[0].z + children2[children2.length - 1].z) / 2;
4016
+ if (w) {
4017
+ v.z = w.z + separation(v._, w._);
4018
+ v.m = v.z - midpoint;
4019
+ } else {
4020
+ v.z = midpoint;
4021
+ }
4022
+ } else if (w) {
4023
+ v.z = w.z + separation(v._, w._);
4024
+ }
4025
+ v.parent.A = apportion(v, w, v.parent.A || siblings[0]);
4026
+ }
4027
+ function secondWalk(v) {
4028
+ v._.x = v.z + v.parent.m;
4029
+ v.m += v.parent.m;
4030
+ }
4031
+ function apportion(v, w, ancestor) {
4032
+ if (w) {
4033
+ var vip = v, vop = v, vim = w, vom = vip.parent.children[0], sip = vip.m, sop = vop.m, sim = vim.m, som = vom.m, shift;
4034
+ while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) {
4035
+ vom = nextLeft(vom);
4036
+ vop = nextRight(vop);
4037
+ vop.a = v;
4038
+ shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);
4039
+ if (shift > 0) {
4040
+ moveSubtree(nextAncestor(vim, v, ancestor), v, shift);
4041
+ sip += shift;
4042
+ sop += shift;
4043
+ }
4044
+ sim += vim.m;
4045
+ sip += vip.m;
4046
+ som += vom.m;
4047
+ sop += vop.m;
4048
+ }
4049
+ if (vim && !nextRight(vop)) {
4050
+ vop.t = vim;
4051
+ vop.m += sim - sop;
4052
+ }
4053
+ if (vip && !nextLeft(vom)) {
4054
+ vom.t = vip;
4055
+ vom.m += sip - som;
4056
+ ancestor = v;
4057
+ }
4058
+ }
4059
+ return ancestor;
4060
+ }
4061
+ function sizeNode(node) {
4062
+ node.x *= dx;
4063
+ node.y = node.depth * dy;
4064
+ }
4065
+ tree.separation = function(x2) {
4066
+ return arguments.length ? (separation = x2, tree) : separation;
4067
+ };
4068
+ tree.size = function(x2) {
4069
+ return arguments.length ? (nodeSize = false, dx = +x2[0], dy = +x2[1], tree) : nodeSize ? null : [dx, dy];
4070
+ };
4071
+ tree.nodeSize = function(x2) {
4072
+ return arguments.length ? (nodeSize = true, dx = +x2[0], dy = +x2[1], tree) : nodeSize ? [dx, dy] : null;
4073
+ };
4074
+ return tree;
4075
+ }
4076
+
4077
+ // node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/constant.js
4078
+ function constant_default4(x2) {
4079
+ return function constant() {
4080
+ return x2;
4081
+ };
4082
+ }
4083
+
4084
+ // node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/path.js
4085
+ function withPath(shape) {
4086
+ let digits = 3;
4087
+ shape.digits = function(_) {
4088
+ if (!arguments.length) return digits;
4089
+ if (_ == null) {
4090
+ digits = null;
4091
+ } else {
4092
+ const d = Math.floor(_);
4093
+ if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);
4094
+ digits = d;
4095
+ }
4096
+ return shape;
4097
+ };
4098
+ return () => new Path(digits);
4099
+ }
4100
+
4101
+ // node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/array.js
4102
+ var slice = Array.prototype.slice;
4103
+
4104
+ // node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/point.js
4105
+ function x(p) {
4106
+ return p[0];
4107
+ }
4108
+ function y(p) {
4109
+ return p[1];
4110
+ }
4111
+
4112
+ // node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/bump.js
4113
+ var Bump = class {
4114
+ constructor(context, x2) {
4115
+ this._context = context;
4116
+ this._x = x2;
4117
+ }
4118
+ areaStart() {
4119
+ this._line = 0;
4120
+ }
4121
+ areaEnd() {
4122
+ this._line = NaN;
4123
+ }
4124
+ lineStart() {
4125
+ this._point = 0;
4126
+ }
4127
+ lineEnd() {
4128
+ if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();
4129
+ this._line = 1 - this._line;
4130
+ }
4131
+ point(x2, y2) {
4132
+ x2 = +x2, y2 = +y2;
4133
+ switch (this._point) {
4134
+ case 0: {
4135
+ this._point = 1;
4136
+ if (this._line) this._context.lineTo(x2, y2);
4137
+ else this._context.moveTo(x2, y2);
4138
+ break;
4139
+ }
4140
+ case 1:
4141
+ this._point = 2;
4142
+ // falls through
4143
+ default: {
4144
+ if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x2) / 2, this._y0, this._x0, y2, x2, y2);
4145
+ else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y2) / 2, x2, this._y0, x2, y2);
4146
+ break;
4147
+ }
4148
+ }
4149
+ this._x0 = x2, this._y0 = y2;
4150
+ }
4151
+ };
4152
+ function bumpY(context) {
4153
+ return new Bump(context, false);
4154
+ }
4155
+
4156
+ // node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/link.js
4157
+ function linkSource(d) {
4158
+ return d.source;
4159
+ }
4160
+ function linkTarget(d) {
4161
+ return d.target;
4162
+ }
4163
+ function link(curve) {
4164
+ let source = linkSource, target = linkTarget, x2 = x, y2 = y, context = null, output = null, path2 = withPath(link2);
4165
+ function link2() {
4166
+ let buffer;
4167
+ const argv = slice.call(arguments);
4168
+ const s = source.apply(this, argv);
4169
+ const t = target.apply(this, argv);
4170
+ if (context == null) output = curve(buffer = path2());
4171
+ output.lineStart();
4172
+ argv[0] = s, output.point(+x2.apply(this, argv), +y2.apply(this, argv));
4173
+ argv[0] = t, output.point(+x2.apply(this, argv), +y2.apply(this, argv));
4174
+ output.lineEnd();
4175
+ if (buffer) return output = null, buffer + "" || null;
4176
+ }
4177
+ link2.source = function(_) {
4178
+ return arguments.length ? (source = _, link2) : source;
4179
+ };
4180
+ link2.target = function(_) {
4181
+ return arguments.length ? (target = _, link2) : target;
4182
+ };
4183
+ link2.x = function(_) {
4184
+ return arguments.length ? (x2 = typeof _ === "function" ? _ : constant_default4(+_), link2) : x2;
4185
+ };
4186
+ link2.y = function(_) {
4187
+ return arguments.length ? (y2 = typeof _ === "function" ? _ : constant_default4(+_), link2) : y2;
4188
+ };
4189
+ link2.context = function(_) {
4190
+ return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), link2) : context;
4191
+ };
4192
+ return link2;
4193
+ }
4194
+ function linkVertical() {
4195
+ return link(bumpY);
4196
+ }
4197
+
4198
+ // node_modules/.pnpm/d3-zoom@3.0.0/node_modules/d3-zoom/src/constant.js
4199
+ var constant_default5 = (x2) => () => x2;
4200
+
4201
+ // node_modules/.pnpm/d3-zoom@3.0.0/node_modules/d3-zoom/src/event.js
4202
+ function ZoomEvent(type2, {
4203
+ sourceEvent,
4204
+ target,
4205
+ transform: transform2,
4206
+ dispatch: dispatch2
4207
+ }) {
4208
+ Object.defineProperties(this, {
4209
+ type: { value: type2, enumerable: true, configurable: true },
4210
+ sourceEvent: { value: sourceEvent, enumerable: true, configurable: true },
4211
+ target: { value: target, enumerable: true, configurable: true },
4212
+ transform: { value: transform2, enumerable: true, configurable: true },
4213
+ _: { value: dispatch2 }
4214
+ });
4215
+ }
4216
+
4217
+ // node_modules/.pnpm/d3-zoom@3.0.0/node_modules/d3-zoom/src/transform.js
4218
+ function Transform(k, x2, y2) {
4219
+ this.k = k;
4220
+ this.x = x2;
4221
+ this.y = y2;
4222
+ }
4223
+ Transform.prototype = {
4224
+ constructor: Transform,
4225
+ scale: function(k) {
4226
+ return k === 1 ? this : new Transform(this.k * k, this.x, this.y);
4227
+ },
4228
+ translate: function(x2, y2) {
4229
+ return x2 === 0 & y2 === 0 ? this : new Transform(this.k, this.x + this.k * x2, this.y + this.k * y2);
4230
+ },
4231
+ apply: function(point) {
4232
+ return [point[0] * this.k + this.x, point[1] * this.k + this.y];
4233
+ },
4234
+ applyX: function(x2) {
4235
+ return x2 * this.k + this.x;
4236
+ },
4237
+ applyY: function(y2) {
4238
+ return y2 * this.k + this.y;
4239
+ },
4240
+ invert: function(location) {
4241
+ return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];
4242
+ },
4243
+ invertX: function(x2) {
4244
+ return (x2 - this.x) / this.k;
4245
+ },
4246
+ invertY: function(y2) {
4247
+ return (y2 - this.y) / this.k;
4248
+ },
4249
+ rescaleX: function(x2) {
4250
+ return x2.copy().domain(x2.range().map(this.invertX, this).map(x2.invert, x2));
4251
+ },
4252
+ rescaleY: function(y2) {
4253
+ return y2.copy().domain(y2.range().map(this.invertY, this).map(y2.invert, y2));
4254
+ },
4255
+ toString: function() {
4256
+ return "translate(" + this.x + "," + this.y + ") scale(" + this.k + ")";
4257
+ }
4258
+ };
4259
+ var identity2 = new Transform(1, 0, 0);
4260
+ Transform.prototype;
4261
+
4262
+ // node_modules/.pnpm/d3-zoom@3.0.0/node_modules/d3-zoom/src/noevent.js
4263
+ function nopropagation2(event) {
4264
+ event.stopImmediatePropagation();
4265
+ }
4266
+ function noevent_default3(event) {
4267
+ event.preventDefault();
4268
+ event.stopImmediatePropagation();
4269
+ }
4270
+
4271
+ // node_modules/.pnpm/d3-zoom@3.0.0/node_modules/d3-zoom/src/zoom.js
4272
+ function defaultFilter(event) {
4273
+ return (!event.ctrlKey || event.type === "wheel") && !event.button;
4274
+ }
4275
+ function defaultExtent() {
4276
+ var e = this;
4277
+ if (e instanceof SVGElement) {
4278
+ e = e.ownerSVGElement || e;
4279
+ if (e.hasAttribute("viewBox")) {
4280
+ e = e.viewBox.baseVal;
4281
+ return [[e.x, e.y], [e.x + e.width, e.y + e.height]];
4282
+ }
4283
+ return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];
4284
+ }
4285
+ return [[0, 0], [e.clientWidth, e.clientHeight]];
4286
+ }
4287
+ function defaultTransform() {
4288
+ return this.__zoom || identity2;
4289
+ }
4290
+ function defaultWheelDelta(event) {
4291
+ return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 2e-3) * (event.ctrlKey ? 10 : 1);
4292
+ }
4293
+ function defaultTouchable() {
4294
+ return navigator.maxTouchPoints || "ontouchstart" in this;
4295
+ }
4296
+ function defaultConstrain(transform2, extent, translateExtent) {
4297
+ var dx0 = transform2.invertX(extent[0][0]) - translateExtent[0][0], dx1 = transform2.invertX(extent[1][0]) - translateExtent[1][0], dy0 = transform2.invertY(extent[0][1]) - translateExtent[0][1], dy1 = transform2.invertY(extent[1][1]) - translateExtent[1][1];
4298
+ return transform2.translate(
4299
+ dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),
4300
+ dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)
4301
+ );
4302
+ }
4303
+ function zoom_default2() {
4304
+ var filter2 = defaultFilter, extent = defaultExtent, constrain = defaultConstrain, wheelDelta = defaultWheelDelta, touchable = defaultTouchable, scaleExtent = [0, Infinity], translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]], duration = 250, interpolate = zoom_default, listeners = dispatch_default("start", "zoom", "end"), touchstarting, touchfirst, touchending, touchDelay = 500, wheelDelay = 150, clickDistance2 = 0, tapDistance = 10;
4305
+ function zoom(selection2) {
4306
+ selection2.property("__zoom", defaultTransform).on("wheel.zoom", wheeled, { passive: false }).on("mousedown.zoom", mousedowned).on("dblclick.zoom", dblclicked).filter(touchable).on("touchstart.zoom", touchstarted).on("touchmove.zoom", touchmoved).on("touchend.zoom touchcancel.zoom", touchended).style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
4307
+ }
4308
+ zoom.transform = function(collection, transform2, point, event) {
4309
+ var selection2 = collection.selection ? collection.selection() : collection;
4310
+ selection2.property("__zoom", defaultTransform);
4311
+ if (collection !== selection2) {
4312
+ schedule(collection, transform2, point, event);
4313
+ } else {
4314
+ selection2.interrupt().each(function() {
4315
+ gesture(this, arguments).event(event).start().zoom(null, typeof transform2 === "function" ? transform2.apply(this, arguments) : transform2).end();
4316
+ });
4317
+ }
4318
+ };
4319
+ zoom.scaleBy = function(selection2, k, p, event) {
4320
+ zoom.scaleTo(selection2, function() {
4321
+ var k0 = this.__zoom.k, k1 = typeof k === "function" ? k.apply(this, arguments) : k;
4322
+ return k0 * k1;
4323
+ }, p, event);
4324
+ };
4325
+ zoom.scaleTo = function(selection2, k, p, event) {
4326
+ zoom.transform(selection2, function() {
4327
+ var e = extent.apply(this, arguments), t0 = this.__zoom, p0 = p == null ? centroid(e) : typeof p === "function" ? p.apply(this, arguments) : p, p1 = t0.invert(p0), k1 = typeof k === "function" ? k.apply(this, arguments) : k;
4328
+ return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);
4329
+ }, p, event);
4330
+ };
4331
+ zoom.translateBy = function(selection2, x2, y2, event) {
4332
+ zoom.transform(selection2, function() {
4333
+ return constrain(this.__zoom.translate(
4334
+ typeof x2 === "function" ? x2.apply(this, arguments) : x2,
4335
+ typeof y2 === "function" ? y2.apply(this, arguments) : y2
4336
+ ), extent.apply(this, arguments), translateExtent);
4337
+ }, null, event);
4338
+ };
4339
+ zoom.translateTo = function(selection2, x2, y2, p, event) {
4340
+ zoom.transform(selection2, function() {
4341
+ var e = extent.apply(this, arguments), t = this.__zoom, p0 = p == null ? centroid(e) : typeof p === "function" ? p.apply(this, arguments) : p;
4342
+ return constrain(identity2.translate(p0[0], p0[1]).scale(t.k).translate(
4343
+ typeof x2 === "function" ? -x2.apply(this, arguments) : -x2,
4344
+ typeof y2 === "function" ? -y2.apply(this, arguments) : -y2
4345
+ ), e, translateExtent);
4346
+ }, p, event);
4347
+ };
4348
+ function scale(transform2, k) {
4349
+ k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));
4350
+ return k === transform2.k ? transform2 : new Transform(k, transform2.x, transform2.y);
4351
+ }
4352
+ function translate(transform2, p0, p1) {
4353
+ var x2 = p0[0] - p1[0] * transform2.k, y2 = p0[1] - p1[1] * transform2.k;
4354
+ return x2 === transform2.x && y2 === transform2.y ? transform2 : new Transform(transform2.k, x2, y2);
4355
+ }
4356
+ function centroid(extent2) {
4357
+ return [(+extent2[0][0] + +extent2[1][0]) / 2, (+extent2[0][1] + +extent2[1][1]) / 2];
4358
+ }
4359
+ function schedule(transition2, transform2, point, event) {
4360
+ transition2.on("start.zoom", function() {
4361
+ gesture(this, arguments).event(event).start();
4362
+ }).on("interrupt.zoom end.zoom", function() {
4363
+ gesture(this, arguments).event(event).end();
4364
+ }).tween("zoom", function() {
4365
+ var that = this, args = arguments, g = gesture(that, args).event(event), e = extent.apply(that, args), p = point == null ? centroid(e) : typeof point === "function" ? point.apply(that, args) : point, w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]), a = that.__zoom, b = typeof transform2 === "function" ? transform2.apply(that, args) : transform2, i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));
4366
+ return function(t) {
4367
+ if (t === 1) t = b;
4368
+ else {
4369
+ var l = i(t), k = w / l[2];
4370
+ t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k);
4371
+ }
4372
+ g.zoom(null, t);
4373
+ };
4374
+ });
4375
+ }
4376
+ function gesture(that, args, clean) {
4377
+ return !clean && that.__zooming || new Gesture(that, args);
4378
+ }
4379
+ function Gesture(that, args) {
4380
+ this.that = that;
4381
+ this.args = args;
4382
+ this.active = 0;
4383
+ this.sourceEvent = null;
4384
+ this.extent = extent.apply(that, args);
4385
+ this.taps = 0;
4386
+ }
4387
+ Gesture.prototype = {
4388
+ event: function(event) {
4389
+ if (event) this.sourceEvent = event;
4390
+ return this;
4391
+ },
4392
+ start: function() {
4393
+ if (++this.active === 1) {
4394
+ this.that.__zooming = this;
4395
+ this.emit("start");
4396
+ }
4397
+ return this;
4398
+ },
4399
+ zoom: function(key, transform2) {
4400
+ if (this.mouse && key !== "mouse") this.mouse[1] = transform2.invert(this.mouse[0]);
4401
+ if (this.touch0 && key !== "touch") this.touch0[1] = transform2.invert(this.touch0[0]);
4402
+ if (this.touch1 && key !== "touch") this.touch1[1] = transform2.invert(this.touch1[0]);
4403
+ this.that.__zoom = transform2;
4404
+ this.emit("zoom");
4405
+ return this;
4406
+ },
4407
+ end: function() {
4408
+ if (--this.active === 0) {
4409
+ delete this.that.__zooming;
4410
+ this.emit("end");
4411
+ }
4412
+ return this;
4413
+ },
4414
+ emit: function(type2) {
4415
+ var d = select_default2(this.that).datum();
4416
+ listeners.call(
4417
+ type2,
4418
+ this.that,
4419
+ new ZoomEvent(type2, {
4420
+ sourceEvent: this.sourceEvent,
4421
+ target: zoom,
4422
+ type: type2,
4423
+ transform: this.that.__zoom,
4424
+ dispatch: listeners
4425
+ }),
4426
+ d
4427
+ );
4428
+ }
4429
+ };
4430
+ function wheeled(event, ...args) {
4431
+ if (!filter2.apply(this, arguments)) return;
4432
+ var g = gesture(this, args).event(event), t = this.__zoom, k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))), p = pointer_default(event);
4433
+ if (g.wheel) {
4434
+ if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {
4435
+ g.mouse[1] = t.invert(g.mouse[0] = p);
4436
+ }
4437
+ clearTimeout(g.wheel);
4438
+ } else if (t.k === k) return;
4439
+ else {
4440
+ g.mouse = [p, t.invert(p)];
4441
+ interrupt_default(this);
4442
+ g.start();
4443
+ }
4444
+ noevent_default3(event);
4445
+ g.wheel = setTimeout(wheelidled, wheelDelay);
4446
+ g.zoom("mouse", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));
4447
+ function wheelidled() {
4448
+ g.wheel = null;
4449
+ g.end();
4450
+ }
4451
+ }
4452
+ function mousedowned(event, ...args) {
4453
+ if (touchending || !filter2.apply(this, arguments)) return;
4454
+ var currentTarget = event.currentTarget, g = gesture(this, args, true).event(event), v = select_default2(event.view).on("mousemove.zoom", mousemoved, true).on("mouseup.zoom", mouseupped, true), p = pointer_default(event, currentTarget), x0 = event.clientX, y0 = event.clientY;
4455
+ nodrag_default(event.view);
4456
+ nopropagation2(event);
4457
+ g.mouse = [p, this.__zoom.invert(p)];
4458
+ interrupt_default(this);
4459
+ g.start();
4460
+ function mousemoved(event2) {
4461
+ noevent_default3(event2);
4462
+ if (!g.moved) {
4463
+ var dx = event2.clientX - x0, dy = event2.clientY - y0;
4464
+ g.moved = dx * dx + dy * dy > clickDistance2;
4465
+ }
4466
+ g.event(event2).zoom("mouse", constrain(translate(g.that.__zoom, g.mouse[0] = pointer_default(event2, currentTarget), g.mouse[1]), g.extent, translateExtent));
4467
+ }
4468
+ function mouseupped(event2) {
4469
+ v.on("mousemove.zoom mouseup.zoom", null);
4470
+ yesdrag(event2.view, g.moved);
4471
+ noevent_default3(event2);
4472
+ g.event(event2).end();
4473
+ }
4474
+ }
4475
+ function dblclicked(event, ...args) {
4476
+ if (!filter2.apply(this, arguments)) return;
4477
+ var t0 = this.__zoom, p0 = pointer_default(event.changedTouches ? event.changedTouches[0] : event, this), p1 = t0.invert(p0), k1 = t0.k * (event.shiftKey ? 0.5 : 2), t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent);
4478
+ noevent_default3(event);
4479
+ if (duration > 0) select_default2(this).transition().duration(duration).call(schedule, t1, p0, event);
4480
+ else select_default2(this).call(zoom.transform, t1, p0, event);
4481
+ }
4482
+ function touchstarted(event, ...args) {
4483
+ if (!filter2.apply(this, arguments)) return;
4484
+ var touches = event.touches, n = touches.length, g = gesture(this, args, event.changedTouches.length === n).event(event), started, i, t, p;
4485
+ nopropagation2(event);
4486
+ for (i = 0; i < n; ++i) {
4487
+ t = touches[i], p = pointer_default(t, this);
4488
+ p = [p, this.__zoom.invert(p), t.identifier];
4489
+ if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;
4490
+ else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;
4491
+ }
4492
+ if (touchstarting) touchstarting = clearTimeout(touchstarting);
4493
+ if (started) {
4494
+ if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() {
4495
+ touchstarting = null;
4496
+ }, touchDelay);
4497
+ interrupt_default(this);
4498
+ g.start();
4499
+ }
4500
+ }
4501
+ function touchmoved(event, ...args) {
4502
+ if (!this.__zooming) return;
4503
+ var g = gesture(this, args).event(event), touches = event.changedTouches, n = touches.length, i, t, p, l;
4504
+ noevent_default3(event);
4505
+ for (i = 0; i < n; ++i) {
4506
+ t = touches[i], p = pointer_default(t, this);
4507
+ if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;
4508
+ else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;
4509
+ }
4510
+ t = g.that.__zoom;
4511
+ if (g.touch1) {
4512
+ var p0 = g.touch0[0], l0 = g.touch0[1], p1 = g.touch1[0], l1 = g.touch1[1], dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp, dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;
4513
+ t = scale(t, Math.sqrt(dp / dl));
4514
+ p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];
4515
+ l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];
4516
+ } else if (g.touch0) p = g.touch0[0], l = g.touch0[1];
4517
+ else return;
4518
+ g.zoom("touch", constrain(translate(t, p, l), g.extent, translateExtent));
4519
+ }
4520
+ function touchended(event, ...args) {
4521
+ if (!this.__zooming) return;
4522
+ var g = gesture(this, args).event(event), touches = event.changedTouches, n = touches.length, i, t;
4523
+ nopropagation2(event);
4524
+ if (touchending) clearTimeout(touchending);
4525
+ touchending = setTimeout(function() {
4526
+ touchending = null;
4527
+ }, touchDelay);
4528
+ for (i = 0; i < n; ++i) {
4529
+ t = touches[i];
4530
+ if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;
4531
+ else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;
4532
+ }
4533
+ if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;
4534
+ if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);
4535
+ else {
4536
+ g.end();
4537
+ if (g.taps === 2) {
4538
+ t = pointer_default(t, this);
4539
+ if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) {
4540
+ var p = select_default2(this).on("dblclick.zoom");
4541
+ if (p) p.apply(this, arguments);
4542
+ }
4543
+ }
4544
+ }
4545
+ }
4546
+ zoom.wheelDelta = function(_) {
4547
+ return arguments.length ? (wheelDelta = typeof _ === "function" ? _ : constant_default5(+_), zoom) : wheelDelta;
4548
+ };
4549
+ zoom.filter = function(_) {
4550
+ return arguments.length ? (filter2 = typeof _ === "function" ? _ : constant_default5(!!_), zoom) : filter2;
4551
+ };
4552
+ zoom.touchable = function(_) {
4553
+ return arguments.length ? (touchable = typeof _ === "function" ? _ : constant_default5(!!_), zoom) : touchable;
4554
+ };
4555
+ zoom.extent = function(_) {
4556
+ return arguments.length ? (extent = typeof _ === "function" ? _ : constant_default5([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;
4557
+ };
4558
+ zoom.scaleExtent = function(_) {
4559
+ return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];
4560
+ };
4561
+ zoom.translateExtent = function(_) {
4562
+ return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];
4563
+ };
4564
+ zoom.constrain = function(_) {
4565
+ return arguments.length ? (constrain = _, zoom) : constrain;
4566
+ };
4567
+ zoom.duration = function(_) {
4568
+ return arguments.length ? (duration = +_, zoom) : duration;
4569
+ };
4570
+ zoom.interpolate = function(_) {
4571
+ return arguments.length ? (interpolate = _, zoom) : interpolate;
4572
+ };
4573
+ zoom.on = function() {
4574
+ var value = listeners.on.apply(listeners, arguments);
4575
+ return value === listeners ? zoom : value;
4576
+ };
4577
+ zoom.clickDistance = function(_) {
4578
+ return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);
4579
+ };
4580
+ zoom.tapDistance = function(_) {
4581
+ return arguments.length ? (tapDistance = +_, zoom) : tapDistance;
4582
+ };
4583
+ return zoom;
4584
+ }
4585
+
1206
4586
  // src/inspect.tsx
1207
4587
  var FIBER_PROP_EXPLANATIONS = {
1208
4588
  tag: "Numeric type identifier for this fiber (e.g. 1=FunctionComponent, 5=HostComponent)",
@@ -1223,17 +4603,496 @@ var FIBER_PROP_EXPLANATIONS = {
1223
4603
  childLanes: "Priority lanes for child updates"
1224
4604
  };
1225
4605
  var throttle = (fn, wait) => {
1226
- let timeout = null;
4606
+ let timeout2 = null;
1227
4607
  return function() {
1228
- if (!timeout) {
1229
- timeout = setTimeout(() => {
4608
+ if (!timeout2) {
4609
+ timeout2 = setTimeout(() => {
1230
4610
  fn.apply(this, arguments);
1231
- timeout = null;
4611
+ timeout2 = null;
1232
4612
  }, wait);
1233
4613
  }
1234
4614
  };
1235
4615
  };
1236
4616
  var isMac = typeof navigator !== "undefined" && navigator.platform.toLowerCase().includes("mac");
4617
+ var theme3 = {
4618
+ BASE_FONT_FAMILY: "Menlo, monospace",
4619
+ BASE_FONT_SIZE: "12px",
4620
+ BASE_LINE_HEIGHT: 1.2,
4621
+ BASE_BACKGROUND_COLOR: "none",
4622
+ BASE_COLOR: "#FFF",
4623
+ OBJECT_PREVIEW_ARRAY_MAX_PROPERTIES: 10,
4624
+ OBJECT_PREVIEW_OBJECT_MAX_PROPERTIES: 5,
4625
+ OBJECT_NAME_COLOR: "#FFC799",
4626
+ OBJECT_VALUE_NULL_COLOR: "#A0A0A0",
4627
+ OBJECT_VALUE_UNDEFINED_COLOR: "#A0A0A0",
4628
+ OBJECT_VALUE_REGEXP_COLOR: "#FF8080",
4629
+ OBJECT_VALUE_STRING_COLOR: "#99FFE4",
4630
+ OBJECT_VALUE_SYMBOL_COLOR: "#FFC799",
4631
+ OBJECT_VALUE_NUMBER_COLOR: "#FFC799",
4632
+ OBJECT_VALUE_BOOLEAN_COLOR: "#FFC799",
4633
+ OBJECT_VALUE_FUNCTION_PREFIX_COLOR: "#FFC799",
4634
+ HTML_TAG_COLOR: "#FFC799",
4635
+ HTML_TAGNAME_COLOR: "#FFC799",
4636
+ HTML_TAGNAME_TEXT_TRANSFORM: "lowercase",
4637
+ HTML_ATTRIBUTE_NAME_COLOR: "#A0A0A0",
4638
+ HTML_ATTRIBUTE_VALUE_COLOR: "#99FFE4",
4639
+ HTML_COMMENT_COLOR: "#8b8b8b94",
4640
+ HTML_DOCTYPE_COLOR: "#A0A0A0",
4641
+ ARROW_COLOR: "#A0A0A0",
4642
+ ARROW_MARGIN_RIGHT: 3,
4643
+ ARROW_FONT_SIZE: 12,
4644
+ ARROW_ANIMATION_DURATION: "0",
4645
+ TREENODE_FONT_FAMILY: "Menlo, monospace",
4646
+ TREENODE_FONT_SIZE: "11px",
4647
+ TREENODE_LINE_HEIGHT: 1.2,
4648
+ TREENODE_PADDING_LEFT: 12,
4649
+ TABLE_BORDER_COLOR: "#282828",
4650
+ TABLE_TH_BACKGROUND_COLOR: "#161616",
4651
+ TABLE_TH_HOVER_COLOR: "#232323",
4652
+ TABLE_SORT_ICON_COLOR: "#A0A0A0",
4653
+ TABLE_DATA_BACKGROUND_IMAGE: "none",
4654
+ TABLE_DATA_BACKGROUND_SIZE: "0"
4655
+ };
4656
+ var ControlButton = React17__default.default.memo(
4657
+ ({ onClick, children: children2 }) => /* @__PURE__ */ React17__default.default.createElement(
4658
+ "button",
4659
+ {
4660
+ type: "button",
4661
+ onClick,
4662
+ onMouseEnter: (e) => {
4663
+ e.currentTarget.style.opacity = "1";
4664
+ },
4665
+ onMouseLeave: (e) => {
4666
+ e.currentTarget.style.opacity = "0.8";
4667
+ },
4668
+ style: {
4669
+ padding: "0.5ch 0.75ch",
4670
+ background: "transparent",
4671
+ border: "1px solid #282828",
4672
+ color: "#FFF",
4673
+ borderRadius: "0.25rem",
4674
+ cursor: "pointer",
4675
+ fontSize: "0.75rem",
4676
+ lineHeight: 1,
4677
+ opacity: 0.8,
4678
+ transition: "opacity 150ms"
4679
+ }
4680
+ },
4681
+ children2
4682
+ )
4683
+ );
4684
+ var Controls = React17__default.default.memo(
4685
+ ({
4686
+ onZoomIn,
4687
+ onZoomOut,
4688
+ onReset,
4689
+ onFit
4690
+ }) => /* @__PURE__ */ React17__default.default.createElement(
4691
+ "div",
4692
+ {
4693
+ style: {
4694
+ position: "absolute",
4695
+ right: "1ch",
4696
+ bottom: "1ch",
4697
+ display: "flex",
4698
+ gap: "0.5ch",
4699
+ zIndex: 1,
4700
+ background: "#161616",
4701
+ padding: "0.5ch",
4702
+ borderRadius: "0.25rem",
4703
+ border: "1px solid #282828"
4704
+ }
4705
+ },
4706
+ /* @__PURE__ */ React17__default.default.createElement(ControlButton, { onClick: onZoomIn }, "+"),
4707
+ /* @__PURE__ */ React17__default.default.createElement(ControlButton, { onClick: onZoomOut }, "-"),
4708
+ /* @__PURE__ */ React17__default.default.createElement(ControlButton, { onClick: onReset }, "Reset"),
4709
+ /* @__PURE__ */ React17__default.default.createElement(ControlButton, { onClick: onFit }, "Fit")
4710
+ )
4711
+ );
4712
+ var BackButton = React17__default.default.memo(({ onClick }) => /* @__PURE__ */ React17__default.default.createElement(
4713
+ "button",
4714
+ {
4715
+ type: "button",
4716
+ onClick,
4717
+ style: {
4718
+ padding: "0.5ch 1ch",
4719
+ background: "#161616",
4720
+ border: "1px solid #282828",
4721
+ color: "#FFF",
4722
+ borderRadius: "0.25rem",
4723
+ cursor: "pointer",
4724
+ fontSize: "0.875rem",
4725
+ opacity: 0.8,
4726
+ transition: "opacity 150ms"
4727
+ },
4728
+ onMouseEnter: (e) => {
4729
+ e.currentTarget.style.opacity = "1";
4730
+ },
4731
+ onMouseLeave: (e) => {
4732
+ e.currentTarget.style.opacity = "0.8";
4733
+ }
4734
+ },
4735
+ "\u2190 Back"
4736
+ ));
4737
+ var BreadcrumbButton = React17__default.default.memo(
4738
+ ({
4739
+ name,
4740
+ onClick,
4741
+ onKeyDown
4742
+ }) => /* @__PURE__ */ React17__default.default.createElement(
4743
+ "button",
4744
+ {
4745
+ type: "button",
4746
+ onClick,
4747
+ onKeyDown,
4748
+ style: {
4749
+ cursor: "pointer",
4750
+ textDecoration: "underline",
4751
+ color: "#A0A0A0",
4752
+ background: "none",
4753
+ border: "none",
4754
+ padding: 0,
4755
+ font: "inherit"
4756
+ },
4757
+ onMouseEnter: (e) => {
4758
+ e.currentTarget.style.backgroundColor = "#232323";
4759
+ e.currentTarget.style.color = "#FFF";
4760
+ },
4761
+ onMouseLeave: (e) => {
4762
+ e.currentTarget.style.backgroundColor = "";
4763
+ e.currentTarget.style.color = "#A0A0A0";
4764
+ }
4765
+ },
4766
+ name
4767
+ )
4768
+ );
4769
+ var CloseButton = React17__default.default.memo(({ onClick }) => /* @__PURE__ */ React17__default.default.createElement(
4770
+ "button",
4771
+ {
4772
+ type: "button",
4773
+ onClick,
4774
+ style: {
4775
+ border: "none",
4776
+ background: "none",
4777
+ cursor: "pointer",
4778
+ padding: "0.5ch",
4779
+ fontSize: "2ch",
4780
+ opacity: 0.5,
4781
+ color: "#FFF"
4782
+ }
4783
+ },
4784
+ "\xD7"
4785
+ ));
4786
+ var FiberGraph = React17__default.default.memo(
4787
+ ({
4788
+ fiber,
4789
+ onFiberSelect,
4790
+ isDialogMode = true
4791
+ }) => {
4792
+ const svgRef = React17.useRef(null);
4793
+ const [svgWidth, setSvgWidth] = React17.useState(0);
4794
+ const [svgHeight, setSvgHeight] = React17.useState(0);
4795
+ const svgGroupRef = React17.useRef(null);
4796
+ const zoomRef = React17.useRef();
4797
+ const linksGroupRef = React17.useRef(null);
4798
+ const nodesGroupRef = React17.useRef(null);
4799
+ const { nodes, links } = React17.useMemo(() => {
4800
+ const nodes2 = [];
4801
+ const links2 = [];
4802
+ const nodeMap = /* @__PURE__ */ new Map();
4803
+ let nodeCounter = 0;
4804
+ const baseId = chunkA425RZH5_cjs.getFiberId(fiber).toString();
4805
+ const rootId = `${baseId}-${nodeCounter++}`;
4806
+ const rootName = typeof fiber.type === "string" ? fiber.type : fiber.type === null && fiber.tag === chunkA425RZH5_cjs.HostRootTag ? "#root" : fiber.type === null && fiber.tag === chunkA425RZH5_cjs.HostTextTag ? "#text" : chunkA425RZH5_cjs.getDisplayName(fiber.type) || fiber.type?.name || fiber.type?.displayName || "Component";
4807
+ const rootNode = {
4808
+ id: rootId,
4809
+ name: rootName,
4810
+ fiber,
4811
+ depth: 0
4812
+ };
4813
+ nodes2.push(rootNode);
4814
+ nodeMap.set(rootId, rootNode);
4815
+ if (fiber.child) {
4816
+ const stack2 = [
4817
+ {
4818
+ fiber: fiber.child,
4819
+ parentId: rootId,
4820
+ depth: 1
4821
+ }
4822
+ ];
4823
+ while (stack2.length > 0) {
4824
+ const current = stack2.pop();
4825
+ if (!current) continue;
4826
+ const { fiber: currentFiber, parentId, depth } = current;
4827
+ if (currentFiber.tag === chunkA425RZH5_cjs.FragmentTag) {
4828
+ if (currentFiber.child) {
4829
+ stack2.push({
4830
+ fiber: currentFiber.child,
4831
+ parentId,
4832
+ depth
4833
+ });
4834
+ }
4835
+ if (currentFiber.sibling && currentFiber.return === currentFiber.sibling.return) {
4836
+ stack2.push({
4837
+ fiber: currentFiber.sibling,
4838
+ parentId: currentFiber.return ? nodeMap.get(chunkA425RZH5_cjs.getFiberId(currentFiber.return).toString())?.id || parentId : parentId,
4839
+ depth
4840
+ });
4841
+ }
4842
+ continue;
4843
+ }
4844
+ if (currentFiber.type === null && chunkA425RZH5_cjs.isHostFiber(currentFiber)) {
4845
+ if (currentFiber.child) {
4846
+ stack2.push({
4847
+ fiber: currentFiber.child,
4848
+ parentId,
4849
+ depth
4850
+ });
4851
+ }
4852
+ if (currentFiber.sibling && currentFiber.return === currentFiber.sibling.return) {
4853
+ stack2.push({
4854
+ fiber: currentFiber.sibling,
4855
+ parentId: currentFiber.return ? nodeMap.get(chunkA425RZH5_cjs.getFiberId(currentFiber.return).toString())?.id || parentId : parentId,
4856
+ depth
4857
+ });
4858
+ }
4859
+ continue;
4860
+ }
4861
+ const childId = `${chunkA425RZH5_cjs.getFiberId(currentFiber)}-${nodeCounter++}`;
4862
+ let name = "unknown";
4863
+ if (typeof currentFiber.type === "string") {
4864
+ name = currentFiber.type;
4865
+ } else if (currentFiber.type === null && currentFiber.tag === chunkA425RZH5_cjs.HostTextTag) {
4866
+ const text = currentFiber.stateNode?.nodeValue?.trim() || "";
4867
+ if (text) {
4868
+ name = text.length > 20 ? `"${text.slice(0, 20)}..."` : `"${text}"`;
4869
+ } else {
4870
+ name = "#text";
4871
+ }
4872
+ } else if (currentFiber.type === null && currentFiber.tag === chunkA425RZH5_cjs.HostRootTag) {
4873
+ name = "#root";
4874
+ } else {
4875
+ name = chunkA425RZH5_cjs.getDisplayName(currentFiber.type) || currentFiber.type?.name || currentFiber.type?.displayName || "Component";
4876
+ }
4877
+ const node = {
4878
+ id: childId,
4879
+ name,
4880
+ fiber: currentFiber,
4881
+ depth
4882
+ };
4883
+ nodes2.push(node);
4884
+ nodeMap.set(childId, node);
4885
+ links2.push({
4886
+ source: parentId,
4887
+ target: childId
4888
+ });
4889
+ if (currentFiber.child) {
4890
+ stack2.push({
4891
+ fiber: currentFiber.child,
4892
+ parentId: childId,
4893
+ depth: depth + 1
4894
+ });
4895
+ }
4896
+ if (currentFiber.sibling && currentFiber.return === currentFiber.sibling.return) {
4897
+ stack2.push({
4898
+ fiber: currentFiber.sibling,
4899
+ parentId: currentFiber.return ? nodeMap.get(chunkA425RZH5_cjs.getFiberId(currentFiber.return).toString())?.id || parentId : parentId,
4900
+ depth
4901
+ });
4902
+ }
4903
+ }
4904
+ }
4905
+ return { nodes: nodes2, links: links2 };
4906
+ }, [fiber]);
4907
+ const { descendants, treeLinks } = React17.useMemo(() => {
4908
+ if (!svgWidth || !svgHeight || nodes.length === 0) {
4909
+ return { descendants: [], treeLinks: [] };
4910
+ }
4911
+ const stratify = stratify_default().id((d) => d.id).parentId((d) => {
4912
+ if (d.id === nodes[0].id) return null;
4913
+ const parentLink = links.find((link2) => link2.target === d.id);
4914
+ if (parentLink?.source && nodes.some((n) => n.id === parentLink.source)) {
4915
+ return parentLink.source.toString();
4916
+ }
4917
+ return null;
4918
+ });
4919
+ try {
4920
+ const root2 = stratify(nodes);
4921
+ if (!root2) return { descendants: [], treeLinks: [] };
4922
+ const treeLayout = tree_default().size([svgWidth - 200, svgHeight - 100]).nodeSize([180, 200]);
4923
+ const treeData = treeLayout(root2);
4924
+ return {
4925
+ descendants: treeData.descendants(),
4926
+ treeLinks: treeData.links()
4927
+ };
4928
+ } catch (e) {
4929
+ console.error("Error creating tree layout:", e);
4930
+ return { descendants: [], treeLinks: [] };
4931
+ }
4932
+ }, [nodes, links, svgWidth, svgHeight]);
4933
+ React17.useEffect(() => {
4934
+ if (!svgRef.current || !svgGroupRef.current) return;
4935
+ const zoom = zoom_default2().extent([
4936
+ [0, 0],
4937
+ [svgWidth, svgHeight]
4938
+ ]).scaleExtent([0.2, 8]).on("zoom", ({ transform: transform2 }) => {
4939
+ if (!svgGroupRef.current) return;
4940
+ svgGroupRef.current.style.transform = `translate(${transform2.x}px, ${transform2.y}px) scale(${transform2.k})`;
4941
+ });
4942
+ zoomRef.current = zoom;
4943
+ select_default2(svgRef.current).call(zoom);
4944
+ if (!isDialogMode) {
4945
+ const scale = 0.4;
4946
+ const x2 = svgWidth / 2;
4947
+ const y2 = svgHeight / 3;
4948
+ select_default2(svgRef.current).call(
4949
+ zoom.transform,
4950
+ identity2.translate(x2, y2).scale(scale)
4951
+ );
4952
+ }
4953
+ return () => {
4954
+ if (svgRef.current) {
4955
+ select_default2(svgRef.current).on(".zoom", null);
4956
+ }
4957
+ };
4958
+ }, [svgWidth, svgHeight, isDialogMode]);
4959
+ React17.useEffect(() => {
4960
+ if (!linksGroupRef.current || treeLinks.length === 0) return;
4961
+ select_default2(linksGroupRef.current).selectAll("path").data(treeLinks).join("path").attr(
4962
+ "d",
4963
+ linkVertical().x((d) => d.x).y((d) => d.y)
4964
+ ).attr("fill", "none").attr("stroke", "#404040").attr("stroke-width", "2");
4965
+ }, [treeLinks]);
4966
+ React17.useEffect(() => {
4967
+ if (!nodesGroupRef.current || descendants.length === 0) return;
4968
+ const nodeElements = select_default2(nodesGroupRef.current).selectAll("g").data(descendants, (d) => d.data.id);
4969
+ nodeElements.exit().remove();
4970
+ const nodeEnter = nodeElements.enter().append("g").attr("transform", (d) => `translate(${d.x},${d.y})`).style("cursor", "pointer").on("click", (event, d) => {
4971
+ event.stopPropagation();
4972
+ const element = chunkA425RZH5_cjs.getNearestHostFiber(d.data.fiber)?.stateNode;
4973
+ if (element instanceof HTMLElement) {
4974
+ element.scrollIntoView({ behavior: "smooth", block: "center" });
4975
+ const originalOutline = element.style.outline;
4976
+ const originalTransition = element.style.transition;
4977
+ element.style.outline = "2px solid #FFC799";
4978
+ element.style.transition = "outline 0.1s ease-in-out";
4979
+ setTimeout(() => {
4980
+ element.style.outline = originalOutline;
4981
+ element.style.transition = originalTransition;
4982
+ }, 1e3);
4983
+ }
4984
+ onFiberSelect?.(d.data.fiber);
4985
+ });
4986
+ const nodeUpdate = nodeElements.merge(nodeEnter);
4987
+ nodeUpdate.attr("transform", (d) => `translate(${d.x},${d.y})`);
4988
+ const updateRect = (selection2) => {
4989
+ selection2.each(function(d) {
4990
+ const g = select_default2(this);
4991
+ const isRoot = d.data.id === nodes[0].id;
4992
+ const isPreview = !isDialogMode;
4993
+ const scale = isRoot ? isPreview ? 2 : 1.75 : 1;
4994
+ const rect = g.selectAll("rect").data([d]).join("rect").attr("x", -75 * scale).attr("y", -30 * scale).attr("width", 150 * scale).attr("height", 60 * scale).attr("rx", 6 * scale).attr("fill", chunkA425RZH5_cjs.isCompositeFiber(d.data.fiber) ? "#FFF" : "#232323").attr("stroke", "#505050").attr("stroke-width", isRoot ? "3" : "2");
4995
+ rect.on("mouseover", function() {
4996
+ select_default2(this).attr("stroke", "#808080").attr("stroke-width", isRoot ? "4" : "3");
4997
+ }).on("mouseout", function() {
4998
+ select_default2(this).attr("stroke", "#505050").attr("stroke-width", isRoot ? "3" : "2");
4999
+ });
5000
+ g.selectAll("text.name").data([d]).join("text").attr("class", "name").attr("text-anchor", "middle").attr("dy", `${-0.6 * scale}em`).attr("fill", chunkA425RZH5_cjs.isCompositeFiber(d.data.fiber) ? "#000" : "#FFF").attr("font-weight", "500").attr(
5001
+ "font-size",
5002
+ isRoot ? isPreview ? "1.75em" : "1.5em" : "1em"
5003
+ ).text(d.data.name);
5004
+ g.selectAll("text.props").data([d]).join("text").attr("class", "props").attr("text-anchor", "middle").attr("dy", `${0.9 * scale}em`).attr("fill", chunkA425RZH5_cjs.isCompositeFiber(d.data.fiber) ? "#666" : "#999").attr(
5005
+ "font-size",
5006
+ isRoot ? isPreview ? "1.25em" : "1.1em" : "0.75em"
5007
+ ).text(() => {
5008
+ const props = d.data.fiber.memoizedProps;
5009
+ if (!props || typeof props !== "object") return "";
5010
+ const propNames = Object.keys(props);
5011
+ if (propNames.length === 0) return "";
5012
+ const displayProps = propNames.slice(0, 3);
5013
+ if (propNames.length > 3) {
5014
+ return `${displayProps.join(", ")}...`;
5015
+ }
5016
+ return displayProps.join(", ");
5017
+ });
5018
+ });
5019
+ };
5020
+ updateRect(nodeUpdate);
5021
+ }, [descendants, nodes, isDialogMode, onFiberSelect]);
5022
+ const handleZoomIn = React17.useCallback(() => {
5023
+ if (!svgRef.current || !zoomRef.current) return;
5024
+ select_default2(svgRef.current).transition().duration(200).call(zoomRef.current.scaleBy, 1.5);
5025
+ }, []);
5026
+ const handleZoomOut = React17.useCallback(() => {
5027
+ if (!svgRef.current || !zoomRef.current) return;
5028
+ select_default2(svgRef.current).transition().duration(200).call(zoomRef.current.scaleBy, 0.75);
5029
+ }, []);
5030
+ const handleReset = React17.useCallback(() => {
5031
+ if (!svgRef.current || !zoomRef.current) return;
5032
+ select_default2(svgRef.current).transition().duration(200).call(zoomRef.current.transform, identity2);
5033
+ }, []);
5034
+ const handleFit = React17.useCallback(() => {
5035
+ if (!svgRef.current || !svgGroupRef.current || !zoomRef.current) return;
5036
+ const bounds = svgGroupRef.current.getBBox();
5037
+ const fullWidth = svgWidth;
5038
+ const fullHeight = svgHeight;
5039
+ const width = bounds.width;
5040
+ const height = bounds.height;
5041
+ const midX = bounds.x + width / 2;
5042
+ const midY = bounds.y + height / 2;
5043
+ const scale = 0.9 / Math.max(width / fullWidth, height / fullHeight);
5044
+ const translate = [
5045
+ fullWidth / 2 - scale * midX,
5046
+ fullHeight / 2 - scale * midY
5047
+ ];
5048
+ select_default2(svgRef.current).transition().duration(200).call(
5049
+ zoomRef.current.transform,
5050
+ identity2.translate(translate[0], translate[1]).scale(scale)
5051
+ );
5052
+ }, [svgWidth, svgHeight]);
5053
+ React17.useEffect(() => {
5054
+ if (!svgRef.current) return;
5055
+ const resizeObserver = new ResizeObserver(() => {
5056
+ if (!svgRef.current) return;
5057
+ setSvgWidth(svgRef.current.clientWidth);
5058
+ setSvgHeight(svgRef.current.clientHeight);
5059
+ });
5060
+ resizeObserver.observe(svgRef.current);
5061
+ return () => resizeObserver.disconnect();
5062
+ }, []);
5063
+ React17.useEffect(() => {
5064
+ if (nodes.length > 0) {
5065
+ setTimeout(handleFit, 0);
5066
+ }
5067
+ }, [nodes.length, handleFit]);
5068
+ return /* @__PURE__ */ React17__default.default.createElement("div", { style: { height: "50ch", marginTop: "2ch" } }, /* @__PURE__ */ React17__default.default.createElement(
5069
+ Controls,
5070
+ {
5071
+ onZoomIn: handleZoomIn,
5072
+ onZoomOut: handleZoomOut,
5073
+ onReset: handleReset,
5074
+ onFit: handleFit
5075
+ }
5076
+ ), /* @__PURE__ */ React17__default.default.createElement(
5077
+ "svg",
5078
+ {
5079
+ ref: svgRef,
5080
+ viewBox: `0 0 ${svgWidth} ${svgHeight}`,
5081
+ xmlns: "http://www.w3.org/2000/svg",
5082
+ style: {
5083
+ width: "100%",
5084
+ height: "100%",
5085
+ background: "#101010",
5086
+ borderRadius: "0.25rem",
5087
+ cursor: "grab"
5088
+ },
5089
+ "aria-label": "Fiber Tree Visualization"
5090
+ },
5091
+ /* @__PURE__ */ React17__default.default.createElement("title", null, "Fiber Tree Visualization"),
5092
+ /* @__PURE__ */ React17__default.default.createElement("g", { ref: svgGroupRef }, /* @__PURE__ */ React17__default.default.createElement("g", { ref: linksGroupRef, className: "links" }), /* @__PURE__ */ React17__default.default.createElement("g", { ref: nodesGroupRef, className: "nodes" }))
5093
+ ));
5094
+ }
5095
+ );
1237
5096
  var Inspector2 = React17__default.default.memo(
1238
5097
  ({ enabled = true, dangerouslyRunInProduction = false }) => {
1239
5098
  const [element, setElement] = React17.useState(null);
@@ -1246,12 +5105,12 @@ var Inspector2 = React17__default.default.memo(
1246
5105
  top: 0,
1247
5106
  left: 0
1248
5107
  });
1249
- const getFiberForDisplay = () => {
5108
+ const [fiberHistory, setFiberHistory] = React17.useState([]);
5109
+ const getFiberForDisplay = React17.useCallback(() => {
1250
5110
  if (selectedFiber) return selectedFiber;
1251
- const fiber2 = chunkCQFIS43Y_cjs.getFiberFromHostInstance(element);
1252
- if (!fiber2) return null;
1253
- return fiber2.return && chunkCQFIS43Y_cjs.isCompositeFiber(fiber2.return) ? fiber2.return : fiber2;
1254
- };
5111
+ const fiber2 = chunkA425RZH5_cjs.getFiberFromHostInstance(element);
5112
+ return fiber2;
5113
+ }, [selectedFiber, element]);
1255
5114
  const handlePropertyHover = (_e, propName) => {
1256
5115
  if (!isDialogMode) return;
1257
5116
  const explanation = FIBER_PROP_EXPLANATIONS[propName];
@@ -1260,36 +5119,65 @@ var Inspector2 = React17__default.default.memo(
1260
5119
  const handlePropertyLeave = () => {
1261
5120
  setTooltip(null);
1262
5121
  };
5122
+ const handleFiberSelect = (fiber2) => {
5123
+ if (fiber2 !== selectedFiber) {
5124
+ if (!isDialogMode) {
5125
+ const currentFiber = getFiberForDisplay();
5126
+ if (currentFiber) {
5127
+ setFiberHistory([currentFiber]);
5128
+ }
5129
+ setIsDialogMode(true);
5130
+ } else if (selectedFiber) {
5131
+ setFiberHistory((prev) => [...prev, selectedFiber]);
5132
+ }
5133
+ setSelectedFiber(fiber2);
5134
+ }
5135
+ };
5136
+ const handleClose = React17.useCallback(() => {
5137
+ setIsDialogMode(false);
5138
+ setFiberHistory([]);
5139
+ setTooltip(null);
5140
+ setSelectedFiber(null);
5141
+ setElement(null);
5142
+ setRect(null);
5143
+ }, []);
1263
5144
  React17.useEffect(() => {
1264
5145
  const handleKeyDown = (e) => {
1265
5146
  if (e.key === "o" && (e.metaKey || e.ctrlKey) && rect) {
1266
5147
  e.preventDefault();
5148
+ const currentFiber = getFiberForDisplay();
5149
+ if (currentFiber) {
5150
+ setFiberHistory([currentFiber]);
5151
+ }
1267
5152
  setIsDialogMode(true);
1268
- } else if (e.key === "Escape" && isDialogMode) {
1269
- setIsDialogMode(false);
1270
- setTooltip(null);
5153
+ } else if (e.key === "Escape") {
5154
+ handleClose();
1271
5155
  }
1272
5156
  };
1273
5157
  window.addEventListener("keydown", handleKeyDown);
1274
5158
  return () => window.removeEventListener("keydown", handleKeyDown);
1275
- }, [rect, isDialogMode]);
5159
+ }, [rect, getFiberForDisplay, handleClose]);
1276
5160
  React17.useEffect(() => {
1277
5161
  if (!isDialogMode) {
1278
5162
  setTooltip(null);
5163
+ setFiberHistory([]);
5164
+ setSelectedFiber(null);
5165
+ setElement(null);
5166
+ setRect(null);
1279
5167
  }
1280
5168
  }, [isDialogMode]);
1281
5169
  React17.useEffect(() => {
1282
5170
  const handleMouseMove = (event) => {
1283
5171
  if (isDialogMode) return;
1284
- const isActive2 = chunkCQFIS43Y_cjs.isInstrumentationActive() || chunkCQFIS43Y_cjs.hasRDTHook();
5172
+ const isActive2 = chunkA425RZH5_cjs.isInstrumentationActive() || chunkA425RZH5_cjs.hasRDTHook();
1285
5173
  if (!isActive2) {
1286
5174
  setIsActive(false);
1287
5175
  return;
1288
5176
  }
1289
5177
  if (!dangerouslyRunInProduction) {
1290
- const rdtHook = chunkCQFIS43Y_cjs.getRDTHook();
5178
+ const rdtHook = chunkA425RZH5_cjs.getRDTHook();
1291
5179
  for (const renderer of rdtHook.renderers.values()) {
1292
- const buildType = chunkCQFIS43Y_cjs.detectReactBuildType(renderer);
5180
+ const buildType = chunkA425RZH5_cjs.detectReactBuildType(renderer);
1293
5181
  if (buildType === "production") {
1294
5182
  setIsActive(false);
1295
5183
  return;
@@ -1302,11 +5190,16 @@ var Inspector2 = React17__default.default.memo(
1302
5190
  setSelectedFiber(null);
1303
5191
  return;
1304
5192
  }
1305
- const element2 = document.elementFromPoint(event.clientX, event.clientY);
1306
- if (!element2) return;
1307
- setElement(element2);
1308
- setRect(element2.getBoundingClientRect());
1309
- setSelectedFiber(null);
5193
+ if (!isDialogMode) {
5194
+ const element2 = document.elementFromPoint(
5195
+ event.clientX,
5196
+ event.clientY
5197
+ );
5198
+ if (!element2) return;
5199
+ setElement(element2);
5200
+ setRect(element2.getBoundingClientRect());
5201
+ setSelectedFiber(null);
5202
+ }
1310
5203
  };
1311
5204
  const throttledMouseMove = throttle(handleMouseMove, 16);
1312
5205
  document.addEventListener("mousemove", throttledMouseMove);
@@ -1345,18 +5238,25 @@ var Inspector2 = React17__default.default.memo(
1345
5238
  }, [rect]);
1346
5239
  React17.useEffect(() => {
1347
5240
  if (selectedFiber) {
1348
- const element2 = chunkCQFIS43Y_cjs.getNearestHostFiber(selectedFiber)?.stateNode;
5241
+ const element2 = chunkA425RZH5_cjs.getNearestHostFiber(selectedFiber)?.stateNode;
1349
5242
  if (element2) {
1350
5243
  setElement(element2);
1351
5244
  setRect(element2.getBoundingClientRect());
1352
5245
  }
1353
5246
  }
1354
5247
  }, [selectedFiber]);
1355
- if (window.innerWidth < 800 || !rect || !isActive) return null;
5248
+ const handleBack = () => {
5249
+ const previousFiber = fiberHistory[fiberHistory.length - 1];
5250
+ if (previousFiber) {
5251
+ setFiberHistory((prev) => prev.slice(0, -1));
5252
+ setSelectedFiber(previousFiber);
5253
+ }
5254
+ };
5255
+ if (!rect || !isActive) return null;
1356
5256
  const fiber = getFiberForDisplay();
1357
5257
  if (!fiber) return null;
1358
5258
  let foundInspect = false;
1359
- chunkCQFIS43Y_cjs.traverseFiber(
5259
+ chunkA425RZH5_cjs.traverseFiber(
1360
5260
  fiber,
1361
5261
  (innerFiber) => {
1362
5262
  if (innerFiber.type === Inspector2) {
@@ -1377,7 +5277,9 @@ var Inspector2 = React17__default.default.memo(
1377
5277
  maxWidth: "none",
1378
5278
  maxHeight: "none",
1379
5279
  padding: "2ch",
1380
- boxShadow: "0 0 0 5px rgba(0, 0, 0, 0.1)",
5280
+ boxShadow: "0 0 0 5px rgba(0, 0, 0, 0.3)",
5281
+ backgroundColor: "#1a1a1a",
5282
+ border: "1px solid #333",
1381
5283
  zIndex: 1e3
1382
5284
  } : {};
1383
5285
  const overlayStyle = isDialogMode ? {
@@ -1386,16 +5288,20 @@ var Inspector2 = React17__default.default.memo(
1386
5288
  left: 0,
1387
5289
  right: 0,
1388
5290
  bottom: 0,
1389
- backgroundColor: "rgba(0, 0, 0, 0.5)",
5291
+ backgroundColor: "rgba(0, 0, 0, 0.7)",
1390
5292
  zIndex: 999
1391
5293
  } : {};
1392
- const fiberStack = fiber ? chunkCQFIS43Y_cjs.getFiberStack(fiber) : [];
5294
+ const fiberStack = fiber ? chunkA425RZH5_cjs.getFiberStack(fiber) : [];
1393
5295
  return /* @__PURE__ */ React17__default.default.createElement(React17__default.default.Fragment, null, isDialogMode && /* @__PURE__ */ React17__default.default.createElement(
1394
5296
  "div",
1395
5297
  {
1396
5298
  style: overlayStyle,
1397
- onClick: () => setIsDialogMode(false),
1398
- onKeyDown: (e) => e.key === "Escape" && setIsDialogMode(false),
5299
+ onClick: handleClose,
5300
+ onKeyDown: (e) => {
5301
+ if (e.key === "Escape") {
5302
+ handleClose();
5303
+ }
5304
+ },
1399
5305
  role: "button",
1400
5306
  tabIndex: 0
1401
5307
  }
@@ -1404,15 +5310,16 @@ var Inspector2 = React17__default.default.memo(
1404
5310
  {
1405
5311
  style: {
1406
5312
  position: "fixed",
1407
- backgroundColor: "white",
5313
+ backgroundColor: "#101010",
5314
+ color: "#FFF",
1408
5315
  zIndex: 50,
1409
5316
  padding: "1ch",
1410
5317
  width: "50ch",
1411
- height: "40ch",
5318
+ height: isDialogMode ? "80ch" : "40ch",
1412
5319
  transition: "all 150ms, z-index 0ms",
1413
5320
  overflow: "visible",
1414
- boxShadow: "0 1px 3px 0 rgb(0 0 0 / 0.1)",
1415
- border: "1px solid black",
5321
+ boxShadow: "0 1px 3px 0 rgb(0 0 0 / 0.3)",
5322
+ border: "1px solid #282828",
1416
5323
  top: position.top,
1417
5324
  left: position.left,
1418
5325
  opacity: rect ? 1 : 0,
@@ -1429,23 +5336,23 @@ var Inspector2 = React17__default.default.memo(
1429
5336
  style: {
1430
5337
  display: "flex",
1431
5338
  justifyContent: "space-between",
1432
- alignItems: "center",
1433
- marginBottom: "1ch"
5339
+ alignItems: "center"
1434
5340
  }
1435
5341
  },
1436
- /* @__PURE__ */ React17__default.default.createElement(
5342
+ /* @__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(
1437
5343
  "h3",
1438
5344
  {
1439
5345
  style: {
1440
5346
  fontSize: "0.875rem",
1441
- backgroundColor: "#f5f5f5",
5347
+ backgroundColor: "#161616",
5348
+ color: "#FFF",
1442
5349
  padding: "0 0.5ch",
1443
5350
  borderRadius: "0.125rem",
1444
5351
  width: "fit-content",
1445
5352
  margin: 0
1446
5353
  }
1447
5354
  },
1448
- `<${typeof fiber.type === "string" ? fiber.type : chunkCQFIS43Y_cjs.getDisplayName(fiber.type) || "unknown"}>`,
5355
+ `<${typeof fiber.type === "string" ? fiber.type : chunkA425RZH5_cjs.getDisplayName(fiber.type) || "unknown"}>`,
1449
5356
  !isDialogMode && /* @__PURE__ */ React17__default.default.createElement(
1450
5357
  "span",
1451
5358
  {
@@ -1457,126 +5364,35 @@ var Inspector2 = React17__default.default.memo(
1457
5364
  },
1458
5365
  `Press ${isMac ? "\u2318" : "ctrl"}O to expand`
1459
5366
  )
1460
- ),
1461
- isDialogMode && fiber.child && /* @__PURE__ */ React17__default.default.createElement(
1462
- "div",
1463
- {
1464
- style: {
1465
- marginTop: "1ch",
1466
- marginBottom: "1ch",
1467
- marginRight: "auto",
1468
- marginLeft: "1ch",
1469
- fontSize: "0.75rem",
1470
- display: "flex",
1471
- flexWrap: "wrap",
1472
- gap: "0.5ch"
1473
- }
1474
- },
1475
- /* @__PURE__ */ React17__default.default.createElement("span", { style: { opacity: 0.5 } }, "Children:"),
1476
- /* @__PURE__ */ React17__default.default.createElement(
1477
- "div",
1478
- {
1479
- style: { display: "flex", flexWrap: "wrap", gap: "0.5ch" }
1480
- },
1481
- (() => {
1482
- const children = [];
1483
- let currentChild = fiber.child;
1484
- while (currentChild !== null) {
1485
- children.push(currentChild);
1486
- currentChild = currentChild.sibling;
1487
- }
1488
- return children.map((child) => {
1489
- const name = typeof child.type === "string" ? child.type : chunkCQFIS43Y_cjs.getDisplayName(child.type) || "unknown";
1490
- return /* @__PURE__ */ React17__default.default.createElement(
1491
- "button",
1492
- {
1493
- key: chunkCQFIS43Y_cjs.getFiberId(child),
1494
- type: "button",
1495
- onClick: () => {
1496
- setSelectedFiber(child);
1497
- const element2 = chunkCQFIS43Y_cjs.getNearestHostFiber(child)?.stateNode;
1498
- if (element2) {
1499
- setElement(element2);
1500
- setRect(element2.getBoundingClientRect());
1501
- }
1502
- },
1503
- onKeyDown: (e) => {
1504
- if (e.key === "Enter" || e.key === " ") {
1505
- setSelectedFiber(child);
1506
- const element2 = chunkCQFIS43Y_cjs.getNearestHostFiber(child)?.stateNode;
1507
- if (element2) {
1508
- setElement(element2);
1509
- setRect(element2.getBoundingClientRect());
1510
- }
1511
- }
1512
- },
1513
- style: {
1514
- cursor: "pointer",
1515
- padding: "0 0.5ch",
1516
- background: "#f5f5f5",
1517
- border: "1px solid #eee",
1518
- borderRadius: "0.125rem",
1519
- fontSize: "inherit",
1520
- color: "#666"
1521
- },
1522
- onMouseEnter: (e) => {
1523
- e.currentTarget.style.backgroundColor = "#000";
1524
- e.currentTarget.style.color = "#fff";
1525
- e.currentTarget.style.borderColor = "#000";
1526
- },
1527
- onMouseLeave: (e) => {
1528
- e.currentTarget.style.backgroundColor = "#f5f5f5";
1529
- e.currentTarget.style.color = "#666";
1530
- e.currentTarget.style.borderColor = "#eee";
1531
- }
1532
- },
1533
- name
1534
- );
1535
- });
1536
- })()
1537
- )
1538
- ),
1539
- isDialogMode && /* @__PURE__ */ React17__default.default.createElement(
1540
- "button",
1541
- {
1542
- type: "button",
1543
- onClick: () => setIsDialogMode(false),
1544
- style: {
1545
- border: "none",
1546
- background: "none",
1547
- cursor: "pointer",
1548
- padding: "0.5ch",
1549
- fontSize: "2ch",
1550
- opacity: 0.5
1551
- }
1552
- },
1553
- "\xD7"
1554
- )
5367
+ )),
5368
+ isDialogMode && /* @__PURE__ */ React17__default.default.createElement(CloseButton, { onClick: handleClose })
1555
5369
  ),
1556
5370
  isDialogMode && /* @__PURE__ */ React17__default.default.createElement(
1557
5371
  "div",
1558
5372
  {
1559
5373
  style: {
1560
- borderTop: "1px solid #eee",
5374
+ borderTop: "1px solid #282828",
1561
5375
  padding: "0.5ch 0",
1562
5376
  fontSize: "0.75rem",
1563
- color: "#666",
5377
+ color: "#A0A0A0",
1564
5378
  whiteSpace: "nowrap",
1565
5379
  overflow: "hidden",
1566
- textOverflow: "ellipsis",
1567
- marginBottom: "2ch"
5380
+ textOverflow: "ellipsis"
1568
5381
  }
1569
5382
  },
1570
5383
  fiberStack.reverse().map((f, i, arr) => {
1571
- const name = typeof f.type === "string" ? f.type : chunkCQFIS43Y_cjs.getDisplayName(f.type) || "unknown";
5384
+ const name = typeof f.type === "string" ? f.type : chunkA425RZH5_cjs.getDisplayName(f.type) || "unknown";
1572
5385
  if (!name) return null;
1573
- return /* @__PURE__ */ React17__default.default.createElement(React17__default.default.Fragment, { key: chunkCQFIS43Y_cjs.getFiberId(f) }, /* @__PURE__ */ React17__default.default.createElement(
1574
- "button",
5386
+ return /* @__PURE__ */ React17__default.default.createElement(React17__default.default.Fragment, { key: chunkA425RZH5_cjs.getFiberId(f) }, /* @__PURE__ */ React17__default.default.createElement(
5387
+ BreadcrumbButton,
1575
5388
  {
1576
- type: "button",
5389
+ name,
1577
5390
  onClick: () => {
5391
+ if (selectedFiber) {
5392
+ setFiberHistory((prev) => [...prev, selectedFiber]);
5393
+ }
1578
5394
  setSelectedFiber(f);
1579
- const element2 = chunkCQFIS43Y_cjs.getNearestHostFiber(f)?.stateNode;
5395
+ const element2 = chunkA425RZH5_cjs.getNearestHostFiber(f)?.stateNode;
1580
5396
  if (element2) {
1581
5397
  setElement(element2);
1582
5398
  setRect(element2.getBoundingClientRect());
@@ -1584,50 +5400,48 @@ var Inspector2 = React17__default.default.memo(
1584
5400
  },
1585
5401
  onKeyDown: (e) => {
1586
5402
  if (e.key === "Enter" || e.key === " ") {
5403
+ if (selectedFiber) {
5404
+ setFiberHistory((prev) => [...prev, selectedFiber]);
5405
+ }
1587
5406
  setSelectedFiber(f);
1588
- const element2 = chunkCQFIS43Y_cjs.getNearestHostFiber(f)?.stateNode;
5407
+ const element2 = chunkA425RZH5_cjs.getNearestHostFiber(f)?.stateNode;
1589
5408
  if (element2) {
1590
5409
  setElement(element2);
1591
5410
  setRect(element2.getBoundingClientRect());
1592
5411
  }
1593
5412
  }
1594
- },
1595
- style: {
1596
- cursor: "pointer",
1597
- textDecoration: "underline",
1598
- color: "#666",
1599
- background: "none",
1600
- border: "none",
1601
- padding: 0,
1602
- font: "inherit"
1603
- },
1604
- onMouseEnter: (e) => {
1605
- e.currentTarget.style.backgroundColor = "#000";
1606
- e.currentTarget.style.color = "#fff";
1607
- },
1608
- onMouseLeave: (e) => {
1609
- e.currentTarget.style.backgroundColor = "";
1610
- e.currentTarget.style.color = "#666";
1611
5413
  }
1612
- },
1613
- name
5414
+ }
1614
5415
  ), i < arr.length - 1 && " > ");
1615
5416
  })
1616
5417
  ),
5418
+ fiber && /* @__PURE__ */ React17__default.default.createElement(
5419
+ FiberGraph,
5420
+ {
5421
+ key: chunkA425RZH5_cjs.getFiberId(fiber),
5422
+ fiber,
5423
+ onFiberSelect: handleFiberSelect,
5424
+ isDialogMode
5425
+ }
5426
+ ),
1617
5427
  /* @__PURE__ */ React17__default.default.createElement(
1618
5428
  "div",
1619
5429
  {
1620
5430
  onMouseLeave: handlePropertyLeave,
1621
5431
  style: {
1622
- flex: 1,
1623
- overflow: "auto"
5432
+ flex: isDialogMode ? 1 : "none",
5433
+ overflow: "auto",
5434
+ marginTop: "1ch",
5435
+ borderTop: "1px solid #282828",
5436
+ paddingTop: "1ch"
1624
5437
  }
1625
5438
  },
1626
5439
  /* @__PURE__ */ React17__default.default.createElement(
1627
5440
  Inspector,
1628
5441
  {
5442
+ theme: theme3,
1629
5443
  data: fiber,
1630
- expandLevel: 1,
5444
+ expandLevel: isDialogMode ? 1 : 0,
1631
5445
  table: false,
1632
5446
  nodeRenderer: (props) => {
1633
5447
  const Component = props.depth === 0 ? ObjectRootLabel : ObjectLabel;
@@ -1662,14 +5476,16 @@ var Inspector2 = React17__default.default.memo(
1662
5476
  style: {
1663
5477
  position: "absolute",
1664
5478
  zIndex: 1001,
1665
- backgroundColor: "#000",
1666
- color: "white",
5479
+ backgroundColor: "#161616",
5480
+ color: "#FFF",
1667
5481
  bottom: "2ch",
1668
5482
  right: "2ch",
1669
5483
  pointerEvents: "none",
1670
5484
  overflowY: "auto",
1671
5485
  padding: "1ch",
1672
- fontSize: "1ch"
5486
+ fontSize: "1ch",
5487
+ border: "1px solid #282828",
5488
+ borderRadius: "0.25ch"
1673
5489
  }
1674
5490
  },
1675
5491
  tooltip
@@ -1682,7 +5498,7 @@ var Inspector2 = React17__default.default.memo(
1682
5498
  zIndex: 40,
1683
5499
  pointerEvents: "none",
1684
5500
  transition: "all 150ms",
1685
- border: "1px dashed #a3a3a3",
5501
+ border: "1px dashed #505050",
1686
5502
  left: rect.left,
1687
5503
  top: rect.top,
1688
5504
  width: rect.width,