@industry-theme/file-city-panel 0.4.6 → 0.4.8

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.
@@ -26707,7 +26707,7 @@ const ZoomOut$1 = createLucideIcon$2("zoom-out", __iconNode$qn);
26707
26707
  * This source code is licensed under the ISC license.
26708
26708
  * See the LICENSE file in the root directory of this source tree.
26709
26709
  */
26710
- const index$6 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
26710
+ const index$7 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
26711
26711
  __proto__: null,
26712
26712
  AArrowDown: AArrowDown$1,
26713
26713
  AArrowUp: AArrowUp$1,
@@ -34118,7 +34118,7 @@ const LucideIcons$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defin
34118
34118
  ZoomOut: ZoomOut$1,
34119
34119
  ZoomOutIcon: ZoomOut$1,
34120
34120
  createLucideIcon: createLucideIcon$2,
34121
- icons: index$6
34121
+ icons: index$7
34122
34122
  }, Symbol.toStringTag, { value: "Module" }));
34123
34123
  var defaultMarkdownTheme = {
34124
34124
  space: [0, 4, 8, 16, 32, 64, 128, 256, 512],
@@ -35869,7 +35869,7 @@ function resetFontScale(theme2) {
35869
35869
  return scaleThemeFonts(theme2, 1);
35870
35870
  }
35871
35871
  var src_default = theme$2;
35872
- const esm$2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
35872
+ const esm$3 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
35873
35873
  __proto__: null,
35874
35874
  ThemeProvider,
35875
35875
  ThemeShowcase,
@@ -35909,7 +35909,7 @@ const esm$2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePropert
35909
35909
  function getDefaultExportFromCjs$1(x) {
35910
35910
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
35911
35911
  }
35912
- function getAugmentedNamespace(n2) {
35912
+ function getAugmentedNamespace$1(n2) {
35913
35913
  if (Object.prototype.hasOwnProperty.call(n2, "__esModule")) return n2;
35914
35914
  var f2 = n2.default;
35915
35915
  if (typeof f2 == "function") {
@@ -35935,7 +35935,7 @@ function getAugmentedNamespace(n2) {
35935
35935
  }
35936
35936
  var dist$1 = {};
35937
35937
  var ArchitectureMapHighlightLayers = {};
35938
- const require$$9 = /* @__PURE__ */ getAugmentedNamespace(esm$2);
35938
+ const require$$9 = /* @__PURE__ */ getAugmentedNamespace$1(esm$3);
35939
35939
  var cityDataUtils = {};
35940
35940
  var hasRequiredCityDataUtils;
35941
35941
  function requireCityDataUtils() {
@@ -38833,7 +38833,7 @@ const dist = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty
38833
38833
  parseTour,
38834
38834
  parseTourOrThrow
38835
38835
  }, Symbol.toStringTag, { value: "Module" }));
38836
- const require$$6 = /* @__PURE__ */ getAugmentedNamespace(dist);
38836
+ const require$$6 = /* @__PURE__ */ getAugmentedNamespace$1(dist);
38837
38837
  var fileColorOverrides = {};
38838
38838
  var hasRequiredFileColorOverrides;
38839
38839
  function requireFileColorOverrides() {
@@ -40369,9 +40369,9 @@ function cc$1(names) {
40369
40369
  return out2;
40370
40370
  }
40371
40371
  var withSelector$1 = { exports: {} };
40372
- var withSelector_production = {};
40372
+ var withSelector_production$1 = {};
40373
40373
  var shim$1 = { exports: {} };
40374
- var useSyncExternalStoreShim_production = {};
40374
+ var useSyncExternalStoreShim_production$1 = {};
40375
40375
  /**
40376
40376
  * @license React
40377
40377
  * use-sync-external-store-shim.production.js
@@ -40381,10 +40381,10 @@ var useSyncExternalStoreShim_production = {};
40381
40381
  * This source code is licensed under the MIT license found in the
40382
40382
  * LICENSE file in the root directory of this source tree.
40383
40383
  */
40384
- var hasRequiredUseSyncExternalStoreShim_production;
40385
- function requireUseSyncExternalStoreShim_production() {
40386
- if (hasRequiredUseSyncExternalStoreShim_production) return useSyncExternalStoreShim_production;
40387
- hasRequiredUseSyncExternalStoreShim_production = 1;
40384
+ var hasRequiredUseSyncExternalStoreShim_production$1;
40385
+ function requireUseSyncExternalStoreShim_production$1() {
40386
+ if (hasRequiredUseSyncExternalStoreShim_production$1) return useSyncExternalStoreShim_production$1;
40387
+ hasRequiredUseSyncExternalStoreShim_production$1 = 1;
40388
40388
  var React = React2__default__default;
40389
40389
  function is(x, y2) {
40390
40390
  return x === y2 && (0 !== x || 1 / x === 1 / y2) || x !== x && y2 !== y2;
@@ -40426,15 +40426,15 @@ function requireUseSyncExternalStoreShim_production() {
40426
40426
  return getSnapshot();
40427
40427
  }
40428
40428
  var shim2 = "undefined" === typeof window || "undefined" === typeof window.document || "undefined" === typeof window.document.createElement ? useSyncExternalStore$1 : useSyncExternalStore$2;
40429
- useSyncExternalStoreShim_production.useSyncExternalStore = void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim2;
40430
- return useSyncExternalStoreShim_production;
40429
+ useSyncExternalStoreShim_production$1.useSyncExternalStore = void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim2;
40430
+ return useSyncExternalStoreShim_production$1;
40431
40431
  }
40432
40432
  var hasRequiredShim$1;
40433
40433
  function requireShim$1() {
40434
40434
  if (hasRequiredShim$1) return shim$1.exports;
40435
40435
  hasRequiredShim$1 = 1;
40436
40436
  {
40437
- shim$1.exports = requireUseSyncExternalStoreShim_production();
40437
+ shim$1.exports = requireUseSyncExternalStoreShim_production$1();
40438
40438
  }
40439
40439
  return shim$1.exports;
40440
40440
  }
@@ -40447,16 +40447,16 @@ function requireShim$1() {
40447
40447
  * This source code is licensed under the MIT license found in the
40448
40448
  * LICENSE file in the root directory of this source tree.
40449
40449
  */
40450
- var hasRequiredWithSelector_production;
40451
- function requireWithSelector_production() {
40452
- if (hasRequiredWithSelector_production) return withSelector_production;
40453
- hasRequiredWithSelector_production = 1;
40450
+ var hasRequiredWithSelector_production$1;
40451
+ function requireWithSelector_production$1() {
40452
+ if (hasRequiredWithSelector_production$1) return withSelector_production$1;
40453
+ hasRequiredWithSelector_production$1 = 1;
40454
40454
  var React = React2__default__default, shim2 = requireShim$1();
40455
40455
  function is(x, y2) {
40456
40456
  return x === y2 && (0 !== x || 1 / x === 1 / y2) || x !== x && y2 !== y2;
40457
40457
  }
40458
40458
  var objectIs = "function" === typeof Object.is ? Object.is : is, useSyncExternalStore = shim2.useSyncExternalStore, useRef2 = React.useRef, useEffect2 = React.useEffect, useMemo2 = React.useMemo, useDebugValue2 = React.useDebugValue;
40459
- withSelector_production.useSyncExternalStoreWithSelector = function(subscribe, getSnapshot, getServerSnapshot, selector2, isEqual) {
40459
+ withSelector_production$1.useSyncExternalStoreWithSelector = function(subscribe, getSnapshot, getServerSnapshot, selector2, isEqual) {
40460
40460
  var instRef = useRef2(null);
40461
40461
  if (null === instRef.current) {
40462
40462
  var inst = { hasValue: false, value: null };
@@ -40507,14 +40507,14 @@ function requireWithSelector_production() {
40507
40507
  useDebugValue2(value);
40508
40508
  return value;
40509
40509
  };
40510
- return withSelector_production;
40510
+ return withSelector_production$1;
40511
40511
  }
40512
40512
  var hasRequiredWithSelector$1;
40513
40513
  function requireWithSelector$1() {
40514
40514
  if (hasRequiredWithSelector$1) return withSelector$1.exports;
40515
40515
  hasRequiredWithSelector$1 = 1;
40516
40516
  {
40517
- withSelector$1.exports = requireWithSelector_production();
40517
+ withSelector$1.exports = requireWithSelector_production$1();
40518
40518
  }
40519
40519
  return withSelector$1.exports;
40520
40520
  }
@@ -47819,7 +47819,7 @@ function NodeResizer$1({ nodeId, isVisible = true, handleClassName, handleStyle,
47819
47819
  handleControls.map((c2) => React2__default__default.createElement(ResizeControl$1$1, { key: c2, className: handleClassName, style: handleStyle, nodeId, position: c2, color: color2, minWidth, minHeight, maxWidth, maxHeight, onResizeStart, keepAspectRatio, shouldResize, onResize, onResizeEnd }))
47820
47820
  );
47821
47821
  }
47822
- const esm$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
47822
+ const esm$2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
47823
47823
  __proto__: null,
47824
47824
  Background: Background$1$1,
47825
47825
  get BackgroundVariant() {
@@ -47907,7 +47907,7 @@ const esm$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePropert
47907
47907
  useUpdateNodeInternals: useUpdateNodeInternals$1,
47908
47908
  useViewport: useViewport$1
47909
47909
  }, Symbol.toStringTag, { value: "Module" }));
47910
- const require$$1 = /* @__PURE__ */ getAugmentedNamespace(esm$1);
47910
+ const require$$1 = /* @__PURE__ */ getAugmentedNamespace$1(esm$2);
47911
47911
  var hasRequiredCityViewWithReactFlow;
47912
47912
  function requireCityViewWithReactFlow() {
47913
47913
  if (hasRequiredCityViewWithReactFlow) return CityViewWithReactFlow;
@@ -56644,136 +56644,177 @@ function XYResizer({ domNode, nodeId, getStoreItems, onChange, onEnd }) {
56644
56644
  function getDefaultExportFromCjs(x2) {
56645
56645
  return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, "default") ? x2["default"] : x2;
56646
56646
  }
56647
+ function getAugmentedNamespace(n2) {
56648
+ if (Object.prototype.hasOwnProperty.call(n2, "__esModule")) return n2;
56649
+ var f2 = n2.default;
56650
+ if (typeof f2 == "function") {
56651
+ var a2 = function a3() {
56652
+ if (this instanceof a3) {
56653
+ return Reflect.construct(f2, arguments, this.constructor);
56654
+ }
56655
+ return f2.apply(this, arguments);
56656
+ };
56657
+ a2.prototype = f2.prototype;
56658
+ } else a2 = {};
56659
+ Object.defineProperty(a2, "__esModule", { value: true });
56660
+ Object.keys(n2).forEach(function(k2) {
56661
+ var d2 = Object.getOwnPropertyDescriptor(n2, k2);
56662
+ Object.defineProperty(a2, k2, d2.get ? d2 : {
56663
+ enumerable: true,
56664
+ get: function() {
56665
+ return n2[k2];
56666
+ }
56667
+ });
56668
+ });
56669
+ return a2;
56670
+ }
56647
56671
  var withSelector = { exports: {} };
56648
- var withSelector_production_min = {};
56672
+ var withSelector_production = {};
56649
56673
  var shim = { exports: {} };
56650
- var useSyncExternalStoreShim_production_min = {};
56674
+ var useSyncExternalStoreShim_production = {};
56651
56675
  /**
56652
56676
  * @license React
56653
- * use-sync-external-store-shim.production.min.js
56677
+ * use-sync-external-store-shim.production.js
56654
56678
  *
56655
- * Copyright (c) Facebook, Inc. and its affiliates.
56679
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
56656
56680
  *
56657
56681
  * This source code is licensed under the MIT license found in the
56658
56682
  * LICENSE file in the root directory of this source tree.
56659
56683
  */
56660
- var hasRequiredUseSyncExternalStoreShim_production_min;
56661
- function requireUseSyncExternalStoreShim_production_min() {
56662
- if (hasRequiredUseSyncExternalStoreShim_production_min) return useSyncExternalStoreShim_production_min;
56663
- hasRequiredUseSyncExternalStoreShim_production_min = 1;
56664
- var e2 = React2__default__default;
56665
- function h2(a2, b2) {
56666
- return a2 === b2 && (0 !== a2 || 1 / a2 === 1 / b2) || a2 !== a2 && b2 !== b2;
56667
- }
56668
- var k2 = "function" === typeof Object.is ? Object.is : h2, l2 = e2.useState, m2 = e2.useEffect, n2 = e2.useLayoutEffect, p2 = e2.useDebugValue;
56669
- function q2(a2, b2) {
56670
- var d2 = b2(), f2 = l2({ inst: { value: d2, getSnapshot: b2 } }), c2 = f2[0].inst, g2 = f2[1];
56671
- n2(function() {
56672
- c2.value = d2;
56673
- c2.getSnapshot = b2;
56674
- r2(c2) && g2({ inst: c2 });
56675
- }, [a2, d2, b2]);
56676
- m2(function() {
56677
- r2(c2) && g2({ inst: c2 });
56678
- return a2(function() {
56679
- r2(c2) && g2({ inst: c2 });
56680
- });
56681
- }, [a2]);
56682
- p2(d2);
56683
- return d2;
56684
+ var hasRequiredUseSyncExternalStoreShim_production;
56685
+ function requireUseSyncExternalStoreShim_production() {
56686
+ if (hasRequiredUseSyncExternalStoreShim_production) return useSyncExternalStoreShim_production;
56687
+ hasRequiredUseSyncExternalStoreShim_production = 1;
56688
+ var React = React2__default__default;
56689
+ function is(x2, y2) {
56690
+ return x2 === y2 && (0 !== x2 || 1 / x2 === 1 / y2) || x2 !== x2 && y2 !== y2;
56691
+ }
56692
+ var objectIs = "function" === typeof Object.is ? Object.is : is, useState2 = React.useState, useEffect2 = React.useEffect, useLayoutEffect2 = React.useLayoutEffect, useDebugValue2 = React.useDebugValue;
56693
+ function useSyncExternalStore$2(subscribe, getSnapshot) {
56694
+ var value = getSnapshot(), _useState = useState2({ inst: { value, getSnapshot } }), inst = _useState[0].inst, forceUpdate = _useState[1];
56695
+ useLayoutEffect2(
56696
+ function() {
56697
+ inst.value = value;
56698
+ inst.getSnapshot = getSnapshot;
56699
+ checkIfSnapshotChanged(inst) && forceUpdate({ inst });
56700
+ },
56701
+ [subscribe, value, getSnapshot]
56702
+ );
56703
+ useEffect2(
56704
+ function() {
56705
+ checkIfSnapshotChanged(inst) && forceUpdate({ inst });
56706
+ return subscribe(function() {
56707
+ checkIfSnapshotChanged(inst) && forceUpdate({ inst });
56708
+ });
56709
+ },
56710
+ [subscribe]
56711
+ );
56712
+ useDebugValue2(value);
56713
+ return value;
56684
56714
  }
56685
- function r2(a2) {
56686
- var b2 = a2.getSnapshot;
56687
- a2 = a2.value;
56715
+ function checkIfSnapshotChanged(inst) {
56716
+ var latestGetSnapshot = inst.getSnapshot;
56717
+ inst = inst.value;
56688
56718
  try {
56689
- var d2 = b2();
56690
- return !k2(a2, d2);
56691
- } catch (f2) {
56719
+ var nextValue = latestGetSnapshot();
56720
+ return !objectIs(inst, nextValue);
56721
+ } catch (error) {
56692
56722
  return true;
56693
56723
  }
56694
56724
  }
56695
- function t2(a2, b2) {
56696
- return b2();
56725
+ function useSyncExternalStore$1(subscribe, getSnapshot) {
56726
+ return getSnapshot();
56697
56727
  }
56698
- var u2 = "undefined" === typeof window || "undefined" === typeof window.document || "undefined" === typeof window.document.createElement ? t2 : q2;
56699
- useSyncExternalStoreShim_production_min.useSyncExternalStore = void 0 !== e2.useSyncExternalStore ? e2.useSyncExternalStore : u2;
56700
- return useSyncExternalStoreShim_production_min;
56728
+ var shim2 = "undefined" === typeof window || "undefined" === typeof window.document || "undefined" === typeof window.document.createElement ? useSyncExternalStore$1 : useSyncExternalStore$2;
56729
+ useSyncExternalStoreShim_production.useSyncExternalStore = void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim2;
56730
+ return useSyncExternalStoreShim_production;
56701
56731
  }
56702
56732
  var hasRequiredShim;
56703
56733
  function requireShim() {
56704
56734
  if (hasRequiredShim) return shim.exports;
56705
56735
  hasRequiredShim = 1;
56706
56736
  {
56707
- shim.exports = requireUseSyncExternalStoreShim_production_min();
56737
+ shim.exports = requireUseSyncExternalStoreShim_production();
56708
56738
  }
56709
56739
  return shim.exports;
56710
56740
  }
56711
56741
  /**
56712
56742
  * @license React
56713
- * use-sync-external-store-shim/with-selector.production.min.js
56743
+ * use-sync-external-store-shim/with-selector.production.js
56714
56744
  *
56715
- * Copyright (c) Facebook, Inc. and its affiliates.
56745
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
56716
56746
  *
56717
56747
  * This source code is licensed under the MIT license found in the
56718
56748
  * LICENSE file in the root directory of this source tree.
56719
56749
  */
56720
- var hasRequiredWithSelector_production_min;
56721
- function requireWithSelector_production_min() {
56722
- if (hasRequiredWithSelector_production_min) return withSelector_production_min;
56723
- hasRequiredWithSelector_production_min = 1;
56724
- var h2 = React2__default__default, n2 = requireShim();
56725
- function p2(a2, b2) {
56726
- return a2 === b2 && (0 !== a2 || 1 / a2 === 1 / b2) || a2 !== a2 && b2 !== b2;
56727
- }
56728
- var q2 = "function" === typeof Object.is ? Object.is : p2, r2 = n2.useSyncExternalStore, t2 = h2.useRef, u2 = h2.useEffect, v2 = h2.useMemo, w2 = h2.useDebugValue;
56729
- withSelector_production_min.useSyncExternalStoreWithSelector = function(a2, b2, e2, l2, g2) {
56730
- var c2 = t2(null);
56731
- if (null === c2.current) {
56732
- var f2 = { hasValue: false, value: null };
56733
- c2.current = f2;
56734
- } else f2 = c2.current;
56735
- c2 = v2(function() {
56736
- function a3(a4) {
56737
- if (!c3) {
56738
- c3 = true;
56739
- d3 = a4;
56740
- a4 = l2(a4);
56741
- if (void 0 !== g2 && f2.hasValue) {
56742
- var b3 = f2.value;
56743
- if (g2(b3, a4)) return k2 = b3;
56744
- }
56745
- return k2 = a4;
56746
- }
56747
- b3 = k2;
56748
- if (q2(d3, a4)) return b3;
56749
- var e3 = l2(a4);
56750
- if (void 0 !== g2 && g2(b3, e3)) return b3;
56751
- d3 = a4;
56752
- return k2 = e3;
56753
- }
56754
- var c3 = false, d3, k2, m2 = void 0 === e2 ? null : e2;
56755
- return [function() {
56756
- return a3(b2());
56757
- }, null === m2 ? void 0 : function() {
56758
- return a3(m2());
56759
- }];
56760
- }, [b2, e2, l2, g2]);
56761
- var d2 = r2(a2, c2[0], c2[1]);
56762
- u2(function() {
56763
- f2.hasValue = true;
56764
- f2.value = d2;
56765
- }, [d2]);
56766
- w2(d2);
56767
- return d2;
56768
- };
56769
- return withSelector_production_min;
56750
+ var hasRequiredWithSelector_production;
56751
+ function requireWithSelector_production() {
56752
+ if (hasRequiredWithSelector_production) return withSelector_production;
56753
+ hasRequiredWithSelector_production = 1;
56754
+ var React = React2__default__default, shim2 = requireShim();
56755
+ function is(x2, y2) {
56756
+ return x2 === y2 && (0 !== x2 || 1 / x2 === 1 / y2) || x2 !== x2 && y2 !== y2;
56757
+ }
56758
+ var objectIs = "function" === typeof Object.is ? Object.is : is, useSyncExternalStore = shim2.useSyncExternalStore, useRef2 = React.useRef, useEffect2 = React.useEffect, useMemo2 = React.useMemo, useDebugValue2 = React.useDebugValue;
56759
+ withSelector_production.useSyncExternalStoreWithSelector = function(subscribe, getSnapshot, getServerSnapshot, selector2, isEqual) {
56760
+ var instRef = useRef2(null);
56761
+ if (null === instRef.current) {
56762
+ var inst = { hasValue: false, value: null };
56763
+ instRef.current = inst;
56764
+ } else inst = instRef.current;
56765
+ instRef = useMemo2(
56766
+ function() {
56767
+ function memoizedSelector(nextSnapshot) {
56768
+ if (!hasMemo) {
56769
+ hasMemo = true;
56770
+ memoizedSnapshot = nextSnapshot;
56771
+ nextSnapshot = selector2(nextSnapshot);
56772
+ if (void 0 !== isEqual && inst.hasValue) {
56773
+ var currentSelection = inst.value;
56774
+ if (isEqual(currentSelection, nextSnapshot))
56775
+ return memoizedSelection = currentSelection;
56776
+ }
56777
+ return memoizedSelection = nextSnapshot;
56778
+ }
56779
+ currentSelection = memoizedSelection;
56780
+ if (objectIs(memoizedSnapshot, nextSnapshot)) return currentSelection;
56781
+ var nextSelection = selector2(nextSnapshot);
56782
+ if (void 0 !== isEqual && isEqual(currentSelection, nextSelection))
56783
+ return memoizedSnapshot = nextSnapshot, currentSelection;
56784
+ memoizedSnapshot = nextSnapshot;
56785
+ return memoizedSelection = nextSelection;
56786
+ }
56787
+ var hasMemo = false, memoizedSnapshot, memoizedSelection, maybeGetServerSnapshot = void 0 === getServerSnapshot ? null : getServerSnapshot;
56788
+ return [
56789
+ function() {
56790
+ return memoizedSelector(getSnapshot());
56791
+ },
56792
+ null === maybeGetServerSnapshot ? void 0 : function() {
56793
+ return memoizedSelector(maybeGetServerSnapshot());
56794
+ }
56795
+ ];
56796
+ },
56797
+ [getSnapshot, getServerSnapshot, selector2, isEqual]
56798
+ );
56799
+ var value = useSyncExternalStore(subscribe, instRef[0], instRef[1]);
56800
+ useEffect2(
56801
+ function() {
56802
+ inst.hasValue = true;
56803
+ inst.value = value;
56804
+ },
56805
+ [value]
56806
+ );
56807
+ useDebugValue2(value);
56808
+ return value;
56809
+ };
56810
+ return withSelector_production;
56770
56811
  }
56771
56812
  var hasRequiredWithSelector;
56772
56813
  function requireWithSelector() {
56773
56814
  if (hasRequiredWithSelector) return withSelector.exports;
56774
56815
  hasRequiredWithSelector = 1;
56775
56816
  {
56776
- withSelector.exports = requireWithSelector_production_min();
56817
+ withSelector.exports = requireWithSelector_production();
56777
56818
  }
56778
56819
  return withSelector.exports;
56779
56820
  }
@@ -56839,8 +56880,7 @@ function shallow$1(objA, objB) {
56839
56880
  return false;
56840
56881
  }
56841
56882
  if (objA instanceof Map && objB instanceof Map) {
56842
- if (objA.size !== objB.size)
56843
- return false;
56883
+ if (objA.size !== objB.size) return false;
56844
56884
  for (const [key, value] of objA) {
56845
56885
  if (!Object.is(value, objB.get(key))) {
56846
56886
  return false;
@@ -56849,8 +56889,7 @@ function shallow$1(objA, objB) {
56849
56889
  return true;
56850
56890
  }
56851
56891
  if (objA instanceof Set && objB instanceof Set) {
56852
- if (objA.size !== objB.size)
56853
- return false;
56892
+ if (objA.size !== objB.size) return false;
56854
56893
  for (const value of objA) {
56855
56894
  if (!objB.has(value)) {
56856
56895
  return false;
@@ -56862,8 +56901,8 @@ function shallow$1(objA, objB) {
56862
56901
  if (keysA.length !== Object.keys(objB).length) {
56863
56902
  return false;
56864
56903
  }
56865
- for (let i2 = 0; i2 < keysA.length; i2++) {
56866
- if (!Object.prototype.hasOwnProperty.call(objB, keysA[i2]) || !Object.is(objA[keysA[i2]], objB[keysA[i2]])) {
56904
+ for (const keyA of keysA) {
56905
+ if (!Object.prototype.hasOwnProperty.call(objB, keyA) || !Object.is(objA[keyA], objB[keyA])) {
56867
56906
  return false;
56868
56907
  }
56869
56908
  }
@@ -59397,7 +59436,7 @@ function ReactFlow({ nodes, edges, defaultNodes, defaultEdges, className, nodeTy
59397
59436
  const colorModeClassName = useColorModeClass(colorMode);
59398
59437
  return jsx("div", { ...rest, style: { ...style2, ...wrapperStyle }, ref, className: cc(["react-flow", className, colorModeClassName]), "data-testid": "rf__wrapper", id: id2, children: jsxs(Wrapper, { nodes, edges, width, height, fitView: fitView2, nodeOrigin, children: [jsx(GraphView, { onInit, onNodeClick, onEdgeClick, onNodeMouseEnter, onNodeMouseMove, onNodeMouseLeave, onNodeContextMenu, onNodeDoubleClick, nodeTypes: nodeTypes2, edgeTypes: edgeTypes2, connectionLineType, connectionLineStyle, connectionLineComponent, connectionLineContainerStyle, selectionKeyCode, selectionOnDrag, selectionMode, deleteKeyCode, multiSelectionKeyCode, panActivationKeyCode, zoomActivationKeyCode, onlyRenderVisibleElements, defaultViewport: defaultViewport$1, translateExtent, minZoom, maxZoom, preventScrolling, zoomOnScroll, zoomOnPinch, zoomOnDoubleClick, panOnScroll, panOnScrollSpeed, panOnScrollMode, panOnDrag, onPaneClick, onPaneMouseEnter, onPaneMouseMove, onPaneMouseLeave, onPaneScroll, onPaneContextMenu, paneClickDistance, onSelectionContextMenu, onSelectionStart, onSelectionEnd, onReconnect, onReconnectStart, onReconnectEnd, onEdgeContextMenu, onEdgeDoubleClick, onEdgeMouseEnter, onEdgeMouseMove, onEdgeMouseLeave, reconnectRadius, defaultMarkerColor, noDragClassName, noWheelClassName, noPanClassName, rfId, disableKeyboardA11y, nodeExtent, viewport, onViewportChange }), jsx(StoreUpdater, { nodes, edges, defaultNodes, defaultEdges, onConnect, onConnectStart, onConnectEnd, onClickConnectStart, onClickConnectEnd, nodesDraggable, nodesConnectable, nodesFocusable, edgesFocusable, edgesReconnectable, elementsSelectable, elevateNodesOnSelect, elevateEdgesOnSelect, minZoom, maxZoom, nodeExtent, onNodesChange, onEdgesChange, snapToGrid, snapGrid, connectionMode, translateExtent, connectOnClick, defaultEdgeOptions, fitView: fitView2, fitViewOptions, onNodesDelete, onEdgesDelete, onDelete, onNodeDragStart, onNodeDrag, onNodeDragStop, onSelectionDrag, onSelectionDragStart, onSelectionDragStop, onMove, onMoveStart, onMoveEnd, noPanClassName, nodeOrigin, rfId, autoPanOnConnect, autoPanOnNodeDrag, autoPanSpeed, onError, connectionRadius, isValidConnection, selectNodesOnDrag, nodeDragThreshold, onBeforeDelete, paneClickDistance, debug }), jsx(SelectionListener, { onSelectionChange }), children2, jsx(Attribution, { proOptions, position: attributionPosition }), jsx(A11yDescriptions, { rfId, disableKeyboardA11y })] }) });
59399
59438
  }
59400
- var index$4 = fixedForwardRef(ReactFlow);
59439
+ var index$5 = fixedForwardRef(ReactFlow);
59401
59440
  const selector$6 = (s2) => {
59402
59441
  var _a;
59403
59442
  return (_a = s2.domNode) == null ? void 0 : _a.querySelector(".react-flow__edgelabel-renderer");
@@ -93548,7 +93587,7 @@ const ZoomOut = createLucideIcon("zoom-out", __iconNode);
93548
93587
  * This source code is licensed under the ISC license.
93549
93588
  * See the LICENSE file in the root directory of this source tree.
93550
93589
  */
93551
- const index$3 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
93590
+ const index$4 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
93552
93591
  __proto__: null,
93553
93592
  AArrowDown,
93554
93593
  AArrowUp,
@@ -100879,7 +100918,7 @@ const LucideIcons = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineP
100879
100918
  ZoomOut,
100880
100919
  ZoomOutIcon: ZoomOut,
100881
100920
  createLucideIcon,
100882
- icons: index$3
100921
+ icons: index$4
100883
100922
  }, Symbol.toStringTag, { value: "Module" }));
100884
100923
  function resolveIcon(icon, size = 20, className) {
100885
100924
  if (!icon)
@@ -102837,179 +102876,163 @@ function parse$2$1(value) {
102837
102876
  function stringify$2(values) {
102838
102877
  return values.join(" ").trim();
102839
102878
  }
102840
- var cjs$2 = {};
102841
- var cjs$1;
102842
- var hasRequiredCjs$2;
102843
- function requireCjs$2() {
102844
- if (hasRequiredCjs$2) return cjs$1;
102845
- hasRequiredCjs$2 = 1;
102846
- var COMMENT_REGEX2 = /\/\*[^*]*\*+([^/*][^*]*\*+)*\//g;
102847
- var NEWLINE_REGEX2 = /\n/g;
102848
- var WHITESPACE_REGEX2 = /^\s*/;
102849
- var PROPERTY_REGEX2 = /^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/;
102850
- var COLON_REGEX2 = /^:\s*/;
102851
- var VALUE_REGEX2 = /^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/;
102852
- var SEMICOLON_REGEX2 = /^[;\s]*/;
102853
- var TRIM_REGEX2 = /^\s+|\s+$/g;
102854
- var NEWLINE2 = "\n";
102855
- var FORWARD_SLASH2 = "/";
102856
- var ASTERISK2 = "*";
102857
- var EMPTY_STRING2 = "";
102858
- var TYPE_COMMENT2 = "comment";
102859
- var TYPE_DECLARATION2 = "declaration";
102860
- function index2(style2, options) {
102861
- if (typeof style2 !== "string") {
102862
- throw new TypeError("First argument must be a string");
102863
- }
102864
- if (!style2) return [];
102865
- options = options || {};
102866
- var lineno = 1;
102867
- var column = 1;
102868
- function updatePosition(str2) {
102869
- var lines = str2.match(NEWLINE_REGEX2);
102870
- if (lines) lineno += lines.length;
102871
- var i2 = str2.lastIndexOf(NEWLINE2);
102872
- column = ~i2 ? str2.length - i2 : column + str2.length;
102873
- }
102874
- function position2() {
102875
- var start2 = { line: lineno, column };
102876
- return function(node2) {
102877
- node2.position = new Position2(start2);
102878
- whitespace2();
102879
- return node2;
102880
- };
102879
+ var COMMENT_REGEX$1 = /\/\*[^*]*\*+([^/*][^*]*\*+)*\//g;
102880
+ var NEWLINE_REGEX$1 = /\n/g;
102881
+ var WHITESPACE_REGEX$1 = /^\s*/;
102882
+ var PROPERTY_REGEX$1 = /^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/;
102883
+ var COLON_REGEX$1 = /^:\s*/;
102884
+ var VALUE_REGEX$1 = /^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/;
102885
+ var SEMICOLON_REGEX$1 = /^[;\s]*/;
102886
+ var TRIM_REGEX$1 = /^\s+|\s+$/g;
102887
+ var NEWLINE$1 = "\n";
102888
+ var FORWARD_SLASH$1 = "/";
102889
+ var ASTERISK$1 = "*";
102890
+ var EMPTY_STRING$1 = "";
102891
+ var TYPE_COMMENT$1 = "comment";
102892
+ var TYPE_DECLARATION$1 = "declaration";
102893
+ function index$3(style2, options) {
102894
+ if (typeof style2 !== "string") {
102895
+ throw new TypeError("First argument must be a string");
102896
+ }
102897
+ if (!style2) return [];
102898
+ options = options || {};
102899
+ var lineno = 1;
102900
+ var column = 1;
102901
+ function updatePosition(str2) {
102902
+ var lines = str2.match(NEWLINE_REGEX$1);
102903
+ if (lines) lineno += lines.length;
102904
+ var i2 = str2.lastIndexOf(NEWLINE$1);
102905
+ column = ~i2 ? str2.length - i2 : column + str2.length;
102906
+ }
102907
+ function position2() {
102908
+ var start2 = { line: lineno, column };
102909
+ return function(node2) {
102910
+ node2.position = new Position2(start2);
102911
+ whitespace2();
102912
+ return node2;
102913
+ };
102914
+ }
102915
+ function Position2(start2) {
102916
+ this.start = start2;
102917
+ this.end = { line: lineno, column };
102918
+ this.source = options.source;
102919
+ }
102920
+ Position2.prototype.content = style2;
102921
+ function error(msg) {
102922
+ var err = new Error(
102923
+ options.source + ":" + lineno + ":" + column + ": " + msg
102924
+ );
102925
+ err.reason = msg;
102926
+ err.filename = options.source;
102927
+ err.line = lineno;
102928
+ err.column = column;
102929
+ err.source = style2;
102930
+ if (options.silent) ;
102931
+ else {
102932
+ throw err;
102881
102933
  }
102882
- function Position2(start2) {
102883
- this.start = start2;
102884
- this.end = { line: lineno, column };
102885
- this.source = options.source;
102934
+ }
102935
+ function match(re2) {
102936
+ var m2 = re2.exec(style2);
102937
+ if (!m2) return;
102938
+ var str2 = m2[0];
102939
+ updatePosition(str2);
102940
+ style2 = style2.slice(str2.length);
102941
+ return m2;
102942
+ }
102943
+ function whitespace2() {
102944
+ match(WHITESPACE_REGEX$1);
102945
+ }
102946
+ function comments(rules) {
102947
+ var c2;
102948
+ rules = rules || [];
102949
+ while (c2 = comment2()) {
102950
+ if (c2 !== false) {
102951
+ rules.push(c2);
102952
+ }
102886
102953
  }
102887
- Position2.prototype.content = style2;
102888
- function error(msg) {
102889
- var err = new Error(
102890
- options.source + ":" + lineno + ":" + column + ": " + msg
102891
- );
102892
- err.reason = msg;
102893
- err.filename = options.source;
102894
- err.line = lineno;
102895
- err.column = column;
102896
- err.source = style2;
102897
- if (options.silent) ;
102898
- else {
102899
- throw err;
102900
- }
102901
- }
102902
- function match(re2) {
102903
- var m2 = re2.exec(style2);
102904
- if (!m2) return;
102905
- var str2 = m2[0];
102906
- updatePosition(str2);
102907
- style2 = style2.slice(str2.length);
102908
- return m2;
102909
- }
102910
- function whitespace2() {
102911
- match(WHITESPACE_REGEX2);
102912
- }
102913
- function comments(rules) {
102914
- var c2;
102915
- rules = rules || [];
102916
- while (c2 = comment2()) {
102917
- if (c2 !== false) {
102918
- rules.push(c2);
102919
- }
102920
- }
102921
- return rules;
102922
- }
102923
- function comment2() {
102924
- var pos = position2();
102925
- if (FORWARD_SLASH2 != style2.charAt(0) || ASTERISK2 != style2.charAt(1)) return;
102926
- var i2 = 2;
102927
- while (EMPTY_STRING2 != style2.charAt(i2) && (ASTERISK2 != style2.charAt(i2) || FORWARD_SLASH2 != style2.charAt(i2 + 1))) {
102928
- ++i2;
102929
- }
102930
- i2 += 2;
102931
- if (EMPTY_STRING2 === style2.charAt(i2 - 1)) {
102932
- return error("End of comment missing");
102933
- }
102934
- var str2 = style2.slice(2, i2 - 2);
102935
- column += 2;
102936
- updatePosition(str2);
102937
- style2 = style2.slice(i2);
102938
- column += 2;
102939
- return pos({
102940
- type: TYPE_COMMENT2,
102941
- comment: str2
102942
- });
102954
+ return rules;
102955
+ }
102956
+ function comment2() {
102957
+ var pos = position2();
102958
+ if (FORWARD_SLASH$1 != style2.charAt(0) || ASTERISK$1 != style2.charAt(1)) return;
102959
+ var i2 = 2;
102960
+ while (EMPTY_STRING$1 != style2.charAt(i2) && (ASTERISK$1 != style2.charAt(i2) || FORWARD_SLASH$1 != style2.charAt(i2 + 1))) {
102961
+ ++i2;
102943
102962
  }
102944
- function declaration() {
102945
- var pos = position2();
102946
- var prop = match(PROPERTY_REGEX2);
102947
- if (!prop) return;
102948
- comment2();
102949
- if (!match(COLON_REGEX2)) return error("property missing ':'");
102950
- var val = match(VALUE_REGEX2);
102951
- var ret = pos({
102952
- type: TYPE_DECLARATION2,
102953
- property: trim2(prop[0].replace(COMMENT_REGEX2, EMPTY_STRING2)),
102954
- value: val ? trim2(val[0].replace(COMMENT_REGEX2, EMPTY_STRING2)) : EMPTY_STRING2
102955
- });
102956
- match(SEMICOLON_REGEX2);
102957
- return ret;
102963
+ i2 += 2;
102964
+ if (EMPTY_STRING$1 === style2.charAt(i2 - 1)) {
102965
+ return error("End of comment missing");
102958
102966
  }
102959
- function declarations() {
102960
- var decls = [];
102961
- comments(decls);
102962
- var decl;
102963
- while (decl = declaration()) {
102964
- if (decl !== false) {
102965
- decls.push(decl);
102966
- comments(decls);
102967
- }
102967
+ var str2 = style2.slice(2, i2 - 2);
102968
+ column += 2;
102969
+ updatePosition(str2);
102970
+ style2 = style2.slice(i2);
102971
+ column += 2;
102972
+ return pos({
102973
+ type: TYPE_COMMENT$1,
102974
+ comment: str2
102975
+ });
102976
+ }
102977
+ function declaration() {
102978
+ var pos = position2();
102979
+ var prop = match(PROPERTY_REGEX$1);
102980
+ if (!prop) return;
102981
+ comment2();
102982
+ if (!match(COLON_REGEX$1)) return error("property missing ':'");
102983
+ var val = match(VALUE_REGEX$1);
102984
+ var ret = pos({
102985
+ type: TYPE_DECLARATION$1,
102986
+ property: trim$1(prop[0].replace(COMMENT_REGEX$1, EMPTY_STRING$1)),
102987
+ value: val ? trim$1(val[0].replace(COMMENT_REGEX$1, EMPTY_STRING$1)) : EMPTY_STRING$1
102988
+ });
102989
+ match(SEMICOLON_REGEX$1);
102990
+ return ret;
102991
+ }
102992
+ function declarations() {
102993
+ var decls = [];
102994
+ comments(decls);
102995
+ var decl;
102996
+ while (decl = declaration()) {
102997
+ if (decl !== false) {
102998
+ decls.push(decl);
102999
+ comments(decls);
102968
103000
  }
102969
- return decls;
102970
103001
  }
102971
- whitespace2();
102972
- return declarations();
102973
- }
102974
- function trim2(str2) {
102975
- return str2 ? str2.replace(TRIM_REGEX2, EMPTY_STRING2) : EMPTY_STRING2;
103002
+ return decls;
102976
103003
  }
102977
- cjs$1 = index2;
102978
- return cjs$1;
103004
+ whitespace2();
103005
+ return declarations();
102979
103006
  }
102980
- var hasRequiredCjs$1;
102981
- function requireCjs$1() {
102982
- if (hasRequiredCjs$1) return cjs$2;
102983
- hasRequiredCjs$1 = 1;
102984
- var __importDefault = cjs$2 && cjs$2.__importDefault || function(mod) {
102985
- return mod && mod.__esModule ? mod : { "default": mod };
102986
- };
102987
- Object.defineProperty(cjs$2, "__esModule", { value: true });
102988
- cjs$2.default = StyleToObject2;
102989
- const inline_style_parser_1 = __importDefault(requireCjs$2());
102990
- function StyleToObject2(style2, iterator) {
102991
- let styleObject = null;
102992
- if (!style2 || typeof style2 !== "string") {
102993
- return styleObject;
102994
- }
102995
- const declarations = (0, inline_style_parser_1.default)(style2);
102996
- const hasIterator = typeof iterator === "function";
102997
- declarations.forEach((declaration) => {
102998
- if (declaration.type !== "declaration") {
102999
- return;
103000
- }
103001
- const { property, value } = declaration;
103002
- if (hasIterator) {
103003
- iterator(property, value, declaration);
103004
- } else if (value) {
103005
- styleObject = styleObject || {};
103006
- styleObject[property] = value;
103007
- }
103008
- });
103007
+ function trim$1(str2) {
103008
+ return str2 ? str2.replace(TRIM_REGEX$1, EMPTY_STRING$1) : EMPTY_STRING$1;
103009
+ }
103010
+ function StyleToObject$1(style2, iterator) {
103011
+ let styleObject = null;
103012
+ if (!style2 || typeof style2 !== "string") {
103009
103013
  return styleObject;
103010
103014
  }
103011
- return cjs$2;
103015
+ const declarations = index$3(style2);
103016
+ const hasIterator = typeof iterator === "function";
103017
+ declarations.forEach((declaration) => {
103018
+ if (declaration.type !== "declaration") {
103019
+ return;
103020
+ }
103021
+ const { property, value } = declaration;
103022
+ if (hasIterator) {
103023
+ iterator(property, value, declaration);
103024
+ } else if (value) {
103025
+ styleObject = styleObject || {};
103026
+ styleObject[property] = value;
103027
+ }
103028
+ });
103029
+ return styleObject;
103012
103030
  }
103031
+ const esm$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
103032
+ __proto__: null,
103033
+ default: StyleToObject$1
103034
+ }, Symbol.toStringTag, { value: "Module" }));
103035
+ const require$$0$1 = /* @__PURE__ */ getAugmentedNamespace(esm$1);
103013
103036
  var utilities$1 = {};
103014
103037
  var hasRequiredUtilities$1;
103015
103038
  function requireUtilities$1() {
@@ -103049,15 +103072,15 @@ function requireUtilities$1() {
103049
103072
  utilities$1.camelCase = camelCase;
103050
103073
  return utilities$1;
103051
103074
  }
103052
- var cjs$3;
103053
- var hasRequiredCjs$3;
103054
- function requireCjs$3() {
103055
- if (hasRequiredCjs$3) return cjs$3;
103056
- hasRequiredCjs$3 = 1;
103057
- var __importDefault = cjs$3 && cjs$3.__importDefault || function(mod) {
103075
+ var cjs$1;
103076
+ var hasRequiredCjs$1;
103077
+ function requireCjs$1() {
103078
+ if (hasRequiredCjs$1) return cjs$1;
103079
+ hasRequiredCjs$1 = 1;
103080
+ var __importDefault = cjs$1 && cjs$1.__importDefault || function(mod) {
103058
103081
  return mod && mod.__esModule ? mod : { "default": mod };
103059
103082
  };
103060
- var style_to_object_1 = __importDefault(requireCjs$1());
103083
+ var style_to_object_1 = __importDefault(require$$0$1);
103061
103084
  var utilities_1 = requireUtilities$1();
103062
103085
  function StyleToJS(style2, options) {
103063
103086
  var output = {};
@@ -103072,10 +103095,10 @@ function requireCjs$3() {
103072
103095
  return output;
103073
103096
  }
103074
103097
  StyleToJS.default = StyleToJS;
103075
- cjs$3 = StyleToJS;
103076
- return cjs$3;
103098
+ cjs$1 = StyleToJS;
103099
+ return cjs$1;
103077
103100
  }
103078
- var cjsExports$1 = requireCjs$3();
103101
+ var cjsExports$1 = requireCjs$1();
103079
103102
  const styleToJs$1 = /* @__PURE__ */ getDefaultExportFromCjs(cjsExports$1);
103080
103103
  function stringifyPosition$1(value) {
103081
103104
  if (!value || typeof value !== "object") {
@@ -146910,7 +146933,7 @@ const GraphRendererInner = ({ configuration, nodes: propNodes, edges: propEdges,
146910
146933
  }, 100);
146911
146934
  return () => clearTimeout(timeoutId);
146912
146935
  }, [baseNodesKey, baseEdgesKey, fitView2, fitViewDuration]);
146913
- return jsxs(Fragment, { children: [jsxs(index$4, { nodes: xyflowNodes, edges: xyflowEdges, nodeTypes, edgeTypes, minZoom: 0.1, maxZoom: 4, defaultEdgeOptions: { type: "custom" }, onEdgeClick, onNodeClick, onNodeDrag: handleNodeDrag, onNodeDragStop: handleNodeDragStop, proOptions: { hideAttribution: true }, nodesDraggable: editable, elementsSelectable: true, nodesConnectable: editable, edgesReconnectable: editable, reconnectRadius: 25, elevateEdgesOnSelect: true, onNodesChange: handleNodesChange, onEdgesChange: handleEdgesChange, onConnect: handleConnect, onReconnectStart: handleReconnectStart, onReconnect: handleReconnect, onReconnectEnd: handleReconnectEnd, onPaneClick, onSelectionChange: handleSelectionChange, panOnDrag: false, panOnScroll: true, zoomOnScroll: false, zoomOnPinch: true, selectionOnDrag: true, selectionKeyCode: null, multiSelectionKeyCode: null, children: [showBackground && jsx(Background, { color: backgroundVariant === "dots" ? theme2.colors.border : theme2.colors.textMuted, gap: backgroundGap ?? (backgroundVariant === "dots" ? 16 : 50), size: backgroundVariant === "dots" ? 1 : 0.5, variant: backgroundVariant === "dots" ? BackgroundVariant.Dots : backgroundVariant === "lines" ? BackgroundVariant.Lines : BackgroundVariant.Cross }), showControls && jsx(Controls, { showZoom: true, showFitView: true, showInteractive: true }), showMinimap && jsx(MiniMap, { nodeColor: (node2) => {
146936
+ return jsxs(Fragment, { children: [jsxs(index$5, { nodes: xyflowNodes, edges: xyflowEdges, nodeTypes, edgeTypes, minZoom: 0.1, maxZoom: 4, defaultEdgeOptions: { type: "custom" }, onEdgeClick, onNodeClick, onNodeDrag: handleNodeDrag, onNodeDragStop: handleNodeDragStop, proOptions: { hideAttribution: true }, nodesDraggable: editable, elementsSelectable: true, nodesConnectable: editable, edgesReconnectable: editable, reconnectRadius: 25, elevateEdgesOnSelect: true, onNodesChange: handleNodesChange, onEdgesChange: handleEdgesChange, onConnect: handleConnect, onReconnectStart: handleReconnectStart, onReconnect: handleReconnect, onReconnectEnd: handleReconnectEnd, onPaneClick, onSelectionChange: handleSelectionChange, panOnDrag: false, panOnScroll: true, zoomOnScroll: false, zoomOnPinch: true, selectionOnDrag: true, selectionKeyCode: null, multiSelectionKeyCode: null, children: [showBackground && jsx(Background, { color: backgroundVariant === "dots" ? theme2.colors.border : theme2.colors.textMuted, gap: backgroundGap ?? (backgroundVariant === "dots" ? 16 : 50), size: backgroundVariant === "dots" ? 1 : 0.5, variant: backgroundVariant === "dots" ? BackgroundVariant.Dots : backgroundVariant === "lines" ? BackgroundVariant.Lines : BackgroundVariant.Cross }), showControls && jsx(Controls, { showZoom: true, showFitView: true, showInteractive: true }), showMinimap && jsx(MiniMap, { nodeColor: (node2) => {
146914
146937
  var _a;
146915
146938
  const nodeData = node2.data;
146916
146939
  return ((_a = nodeData == null ? void 0 : nodeData.typeDefinition) == null ? void 0 : _a.color) || theme2.colors.secondary;
@@ -149621,7 +149644,7 @@ const browserExt = {
149621
149644
  },
149622
149645
  test: () => true,
149623
149646
  load: async () => {
149624
- await import("./browserAll-XNN46GKF-8hJjkg2A.js");
149647
+ await import("./browserAll-BdeGLg9f-DjBr02QC.js");
149625
149648
  }
149626
149649
  };
149627
149650
  const webworkerExt = {
@@ -149632,7 +149655,7 @@ const webworkerExt = {
149632
149655
  },
149633
149656
  test: () => typeof self !== "undefined" && self.WorkerGlobalScope !== void 0,
149634
149657
  load: async () => {
149635
- await import("./webworkerAll-Ez5pUZRt-BChgL0D1.js");
149658
+ await import("./webworkerAll-DFGI4H02-B76T7ioQ.js");
149636
149659
  }
149637
149660
  };
149638
149661
  class ObservablePoint {
@@ -188274,7 +188297,7 @@ const WebGPURenderer$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.de
188274
188297
  WebGPURenderer
188275
188298
  }, Symbol.toStringTag, { value: "Module" }));
188276
188299
  extensions.add(browserExt, webworkerExt);
188277
- const index$5 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
188300
+ const index$6 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
188278
188301
  __proto__: null,
188279
188302
  AbstractRenderer,
188280
188303
  AbstractText,
@@ -188916,8 +188939,8 @@ function adjustBrightness$1$1(color2, factor) {
188916
188939
  return newR << 16 | newG << 8 | newB;
188917
188940
  }
188918
188941
  const TILE_SIZE = 32;
188919
- const ISO_TILE_WIDTH$2 = TILE_SIZE * 2;
188920
- const ISO_TILE_HEIGHT$2 = TILE_SIZE;
188942
+ const ISO_TILE_WIDTH$3 = TILE_SIZE * 2;
188943
+ const ISO_TILE_HEIGHT$3 = TILE_SIZE;
188921
188944
  const STAR_TIERS = [
188922
188945
  // Flags (basic tiers)
188923
188946
  { min: 0, max: 100, name: "New", decorationType: "flag", color: 9741240 },
@@ -189269,8 +189292,8 @@ function adjustBrightness$2(color2, factor) {
189269
189292
  const newB = Math.min(255, Math.floor(b2 * factor));
189270
189293
  return newR << 16 | newG << 8 | newB;
189271
189294
  }
189272
- const TILE_WIDTH = ISO_TILE_WIDTH$2;
189273
- const TILE_HEIGHT = ISO_TILE_HEIGHT$2;
189295
+ const TILE_WIDTH = ISO_TILE_WIDTH$3;
189296
+ const TILE_HEIGHT = ISO_TILE_HEIGHT$3;
189274
189297
  function calculateFootprint(sizeMultiplier) {
189275
189298
  const tiles = 4 * sizeMultiplier;
189276
189299
  return {
@@ -189459,7 +189482,7 @@ function generateMITFlowerArch(config) {
189459
189482
  fontFamily: "Arial",
189460
189483
  fontWeight: "bold"
189461
189484
  },
189462
- resolution: 2
189485
+ resolution: 16
189463
189486
  });
189464
189487
  mitText.anchor.set(0.5, 0.5);
189465
189488
  mitText.y = flagTop + flagHeight * 0.5;
@@ -189494,7 +189517,7 @@ function generateMITFlowerArch(config) {
189494
189517
  fontFamily: "Arial",
189495
189518
  fontWeight: "600"
189496
189519
  },
189497
- resolution: 2
189520
+ resolution: 16
189498
189521
  });
189499
189522
  nameText.anchor.set(0.5, 0.5);
189500
189523
  nameText.y = signBoardY + signHeight / 2;
@@ -189674,7 +189697,7 @@ function generateApacheSign(config) {
189674
189697
  fontFamily: "Arial",
189675
189698
  fontWeight: "600"
189676
189699
  },
189677
- resolution: 2
189700
+ resolution: 16
189678
189701
  });
189679
189702
  nameText.anchor.set(0.5, 0.5);
189680
189703
  nameText.y = signBoardY + signBoardHeight / 2;
@@ -189807,7 +189830,7 @@ function generateGPLSign(config) {
189807
189830
  fontFamily: "Arial",
189808
189831
  fontWeight: "bold"
189809
189832
  },
189810
- resolution: 2
189833
+ resolution: 16
189811
189834
  });
189812
189835
  gplText.anchor.set(0.5, 0.5);
189813
189836
  gplText.y = flagTop + flagHeight * 0.5;
@@ -189851,7 +189874,7 @@ function generateGPLSign(config) {
189851
189874
  fontFamily: "Arial",
189852
189875
  fontWeight: "600"
189853
189876
  },
189854
- resolution: 2
189877
+ resolution: 16
189855
189878
  });
189856
189879
  nameText.anchor.set(0.5, 0.5);
189857
189880
  nameText.y = signBoardY + signBoardHeight / 2;
@@ -190065,6 +190088,43 @@ function generateCobblestoneGround(sizeMultiplier) {
190065
190088
  }
190066
190089
  return ground;
190067
190090
  }
190091
+ function generateNeutralGround(sizeMultiplier) {
190092
+ const footprint = calculateFootprint(sizeMultiplier);
190093
+ const ground = new Graphics();
190094
+ const halfW = footprint.width;
190095
+ const halfH = footprint.height;
190096
+ const stoneBase = 9143160;
190097
+ const stoneDark = 7037784;
190098
+ const stoneLight = 10195848;
190099
+ ground.moveTo(0, -halfH);
190100
+ ground.lineTo(halfW, 0);
190101
+ ground.lineTo(0, halfH);
190102
+ ground.lineTo(-halfW, 0);
190103
+ ground.closePath();
190104
+ ground.fill(stoneBase);
190105
+ const textureCount = Math.max(5, Math.floor(7 * sizeMultiplier));
190106
+ for (let i2 = 0; i2 < textureCount; i2++) {
190107
+ const angle = i2 / textureCount * Math.PI * 2;
190108
+ const radius = 0.25 + i2 % 3 * 0.15;
190109
+ const x2 = Math.cos(angle) * halfW * radius;
190110
+ const y2 = Math.sin(angle) * halfH * radius;
190111
+ const dotSize = Math.max(2, 3 * sizeMultiplier);
190112
+ ground.circle(x2, y2, dotSize);
190113
+ ground.fill(i2 % 2 === 0 ? stoneLight : stoneDark);
190114
+ }
190115
+ const pebbleSize = Math.max(1.5, 2 * sizeMultiplier);
190116
+ const pebbleSpots = [
190117
+ { x: -halfW * 0.3, y: -halfH * 0.15 },
190118
+ { x: halfW * 0.25, y: halfH * 0.2 },
190119
+ { x: -halfW * 0.15, y: halfH * 0.35 },
190120
+ { x: halfW * 0.35, y: -halfH * 0.25 }
190121
+ ];
190122
+ for (const spot of pebbleSpots) {
190123
+ ground.circle(spot.x, spot.y, pebbleSize);
190124
+ ground.fill(stoneDark);
190125
+ }
190126
+ return ground;
190127
+ }
190068
190128
  function generateLicenseSign(license, config) {
190069
190129
  switch (license) {
190070
190130
  case "MIT":
@@ -190097,18 +190157,443 @@ function generateLicenseGround(license, sizeMultiplier) {
190097
190157
  return generateOpenGrassGround(sizeMultiplier);
190098
190158
  }
190099
190159
  }
190100
- const ISO_TILE_WIDTH = 64;
190101
- const ISO_TILE_HEIGHT = 32;
190102
- function parseColor(color2) {
190160
+ function darkenColor(color2, percent) {
190161
+ const r2 = Math.max(0, (color2 >> 16 & 255) * (1 - percent));
190162
+ const g2 = Math.max(0, (color2 >> 8 & 255) * (1 - percent));
190163
+ const b2 = Math.max(0, (color2 & 255) * (1 - percent));
190164
+ return `#${Math.round(r2).toString(16).padStart(2, "0")}${Math.round(g2).toString(16).padStart(2, "0")}${Math.round(b2).toString(16).padStart(2, "0")}`;
190165
+ }
190166
+ function hslToHex(h2, s2, l2) {
190167
+ s2 /= 100;
190168
+ l2 /= 100;
190169
+ const a2 = s2 * Math.min(l2, 1 - l2);
190170
+ const f2 = (n2) => {
190171
+ const k2 = (n2 + h2 / 30) % 12;
190172
+ const color2 = l2 - a2 * Math.max(Math.min(k2 - 3, 9 - k2, 1), -1);
190173
+ return Math.round(255 * color2);
190174
+ };
190175
+ return (f2(0) << 16) + (f2(8) << 8) + f2(4);
190176
+ }
190177
+ function hashStringToColor(str2) {
190178
+ let hash = 0;
190179
+ for (let i2 = 0; i2 < str2.length; i2++) {
190180
+ hash = str2.charCodeAt(i2) + ((hash << 5) - hash);
190181
+ }
190182
+ const h2 = Math.abs(hash % 360);
190183
+ const s2 = 30 + Math.abs((hash >> 8) % 30);
190184
+ const l2 = 35 + Math.abs((hash >> 16) % 20);
190185
+ return hslToHex(h2, s2, l2);
190186
+ }
190187
+ function parseColor$1(color2) {
190103
190188
  if (typeof color2 === "number") return color2;
190104
- return parseInt(color2.replace("#", ""), 16);
190189
+ if (color2.startsWith("#")) return parseInt(color2.slice(1), 16);
190190
+ return hashStringToColor(color2);
190105
190191
  }
190192
+ function generateCardColors(baseColor) {
190193
+ return {
190194
+ cardBg: darkenColor(baseColor, 0.6),
190195
+ cardBorder: darkenColor(baseColor, 0.7),
190196
+ cardHighlight: darkenColor(baseColor, 0.4),
190197
+ windowGradient: [
190198
+ darkenColor(baseColor, 0.85),
190199
+ darkenColor(baseColor, 0.8)
190200
+ ],
190201
+ panelGradient: [
190202
+ darkenColor(baseColor, 0.4),
190203
+ darkenColor(baseColor, 0.6)
190204
+ ],
190205
+ panelBorder: darkenColor(baseColor, 0.3)
190206
+ };
190207
+ }
190208
+ const licenseBorderColors = {
190209
+ MIT: "#228b22",
190210
+ // Forest green - open/welcoming
190211
+ BSD: "#228b22",
190212
+ // Same as MIT
190213
+ "BSD-3-Clause": "#228b22",
190214
+ ISC: "#228b22",
190215
+ "Apache-2.0": "#d97706",
190216
+ // Amber/orange - formal but welcoming
190217
+ "GPL-3.0": "#2255aa",
190218
+ // GNU blue
190219
+ "LGPL-3.0": "#2255aa",
190220
+ "GPL-2.0": "#2255aa",
190221
+ "AGPL-3.0": "#2255aa",
190222
+ "MPL-2.0": "#8b5cf6",
190223
+ // Purple
190224
+ UNLICENSED: "#dc2626"
190225
+ // Red - restrictive
190226
+ };
190106
190227
  function formatCount$1(count2) {
190107
190228
  if (count2 < 1e3) return count2.toString();
190108
190229
  if (count2 < 1e6) return `${(count2 / 1e3).toFixed(1)}k`;
190109
190230
  return `${(count2 / 1e6).toFixed(1)}M`;
190110
190231
  }
190111
- function getPackagePositions(count2, footprintWidth, footprintHeight) {
190232
+ const STARFIELD_BACKGROUND = `
190233
+ radial-gradient(1px 1px at 10% 15%, rgba(255,255,255,0.4) 50%, transparent 50%),
190234
+ radial-gradient(1px 1px at 25% 35%, rgba(255,255,255,0.3) 50%, transparent 50%),
190235
+ radial-gradient(1px 1px at 40% 10%, rgba(255,255,255,0.35) 50%, transparent 50%),
190236
+ radial-gradient(1px 1px at 55% 45%, rgba(255,255,255,0.25) 50%, transparent 50%),
190237
+ radial-gradient(1px 1px at 70% 20%, rgba(255,255,255,0.4) 50%, transparent 50%),
190238
+ radial-gradient(1px 1px at 85% 40%, rgba(255,255,255,0.3) 50%, transparent 50%),
190239
+ radial-gradient(1px 1px at 15% 55%, rgba(255,255,255,0.35) 50%, transparent 50%),
190240
+ radial-gradient(1px 1px at 35% 70%, rgba(255,255,255,0.25) 50%, transparent 50%),
190241
+ radial-gradient(1px 1px at 50% 85%, rgba(255,255,255,0.4) 50%, transparent 50%),
190242
+ radial-gradient(1px 1px at 65% 60%, rgba(255,255,255,0.3) 50%, transparent 50%),
190243
+ radial-gradient(1px 1px at 80% 75%, rgba(255,255,255,0.35) 50%, transparent 50%),
190244
+ radial-gradient(1px 1px at 95% 90%, rgba(255,255,255,0.25) 50%, transparent 50%),
190245
+ radial-gradient(1.5px 1.5px at 20% 25%, rgba(255,255,255,0.5) 50%, transparent 50%),
190246
+ radial-gradient(1.5px 1.5px at 60% 30%, rgba(200,220,255,0.45) 50%, transparent 50%),
190247
+ radial-gradient(1.5px 1.5px at 45% 65%, rgba(255,255,255,0.5) 50%, transparent 50%),
190248
+ radial-gradient(1.5px 1.5px at 75% 80%, rgba(220,200,255,0.45) 50%, transparent 50%),
190249
+ radial-gradient(2px 2px at 30% 50%, rgba(255,255,255,0.6) 50%, transparent 50%),
190250
+ radial-gradient(2px 2px at 70% 55%, rgba(200,220,255,0.55) 50%, transparent 50%),
190251
+ radial-gradient(2px 2px at 90% 15%, rgba(255,255,255,0.6) 50%, transparent 50%)
190252
+ `;
190253
+ const CardLayout = ({
190254
+ color: color2,
190255
+ owner,
190256
+ stars,
190257
+ label,
190258
+ description: description2,
190259
+ files: files2,
190260
+ language: language2,
190261
+ license,
190262
+ packages,
190263
+ children: children2
190264
+ }) => {
190265
+ const { theme: theme2 } = useTheme();
190266
+ const baseColor = parseColor$1(color2);
190267
+ const colors = generateCardColors(baseColor);
190268
+ const licenseBorder = license ? licenseBorderColors[license] : null;
190269
+ const showHeader = owner || stars !== void 0 && stars > 0;
190270
+ return /* @__PURE__ */ jsxs(
190271
+ "div",
190272
+ {
190273
+ style: {
190274
+ position: "relative",
190275
+ display: "flex",
190276
+ flexDirection: "column",
190277
+ backgroundColor: colors.cardBg,
190278
+ padding: "8px 12px 28px 12px",
190279
+ border: `${licenseBorder ? "5px" : "3px"} solid ${licenseBorder || colors.cardBorder}`,
190280
+ width: "100%",
190281
+ height: "100%",
190282
+ boxSizing: "border-box",
190283
+ overflow: "hidden",
190284
+ boxShadow: licenseBorder ? `inset 0 0 0 2px ${licenseBorder}40, 0 0 8px ${licenseBorder}60` : `inset 0 0 0 2px ${colors.cardHighlight}`
190285
+ },
190286
+ children: [
190287
+ showHeader && /* @__PURE__ */ jsxs(
190288
+ "div",
190289
+ {
190290
+ style: {
190291
+ display: "flex",
190292
+ justifyContent: "space-between",
190293
+ alignItems: "flex-start",
190294
+ marginBottom: "0",
190295
+ marginLeft: "-12px",
190296
+ marginRight: "-4px",
190297
+ marginTop: "-8px",
190298
+ minHeight: "32px",
190299
+ flexShrink: 0
190300
+ },
190301
+ children: [
190302
+ owner ? /* @__PURE__ */ jsxs(
190303
+ "div",
190304
+ {
190305
+ style: {
190306
+ display: "flex",
190307
+ alignItems: "center",
190308
+ gap: "6px",
190309
+ minWidth: 0,
190310
+ flex: 1
190311
+ },
190312
+ children: [
190313
+ /* @__PURE__ */ jsx(
190314
+ "img",
190315
+ {
190316
+ src: `https://github.com/${owner}.png?size=80`,
190317
+ alt: owner,
190318
+ style: {
190319
+ width: "48px",
190320
+ height: "48px",
190321
+ borderRadius: "0",
190322
+ border: "none",
190323
+ borderRight: "1px solid rgba(255,255,255,0.3)",
190324
+ borderBottom: "1px solid rgba(255,255,255,0.3)",
190325
+ flexShrink: 0,
190326
+ marginBottom: "-16px",
190327
+ position: "relative",
190328
+ zIndex: 1
190329
+ }
190330
+ }
190331
+ ),
190332
+ /* @__PURE__ */ jsx(
190333
+ "span",
190334
+ {
190335
+ style: {
190336
+ fontSize: theme2.fontSizes[1],
190337
+ fontWeight: theme2.fontWeights.medium,
190338
+ color: "#e0e0e0",
190339
+ textShadow: "0 1px 2px rgba(0,0,0,0.5)",
190340
+ fontFamily: theme2.fonts.body,
190341
+ overflow: "hidden",
190342
+ textOverflow: "ellipsis",
190343
+ whiteSpace: "nowrap",
190344
+ alignSelf: "flex-end"
190345
+ },
190346
+ children: owner
190347
+ }
190348
+ )
190349
+ ]
190350
+ }
190351
+ ) : /* @__PURE__ */ jsx("div", {}),
190352
+ stars !== void 0 && stars > 0 && /* @__PURE__ */ jsxs(
190353
+ "div",
190354
+ {
190355
+ style: {
190356
+ display: "flex",
190357
+ alignItems: "center",
190358
+ gap: "4px",
190359
+ flexShrink: 0,
190360
+ alignSelf: "flex-end"
190361
+ },
190362
+ children: [
190363
+ /* @__PURE__ */ jsx(
190364
+ "span",
190365
+ {
190366
+ style: {
190367
+ fontSize: theme2.fontSizes[1],
190368
+ fontWeight: theme2.fontWeights.medium,
190369
+ color: "#ffffff",
190370
+ textShadow: "0 1px 2px rgba(0,0,0,0.5)",
190371
+ fontFamily: theme2.fonts.body
190372
+ },
190373
+ children: formatCount$1(stars)
190374
+ }
190375
+ ),
190376
+ /* @__PURE__ */ jsx(
190377
+ "span",
190378
+ {
190379
+ style: {
190380
+ fontSize: theme2.fontSizes[1],
190381
+ fontWeight: theme2.fontWeights.medium,
190382
+ color: "#fbbf24",
190383
+ textShadow: "0 1px 2px rgba(0,0,0,0.5)"
190384
+ },
190385
+ children: "★"
190386
+ }
190387
+ )
190388
+ ]
190389
+ }
190390
+ )
190391
+ ]
190392
+ }
190393
+ ),
190394
+ /* @__PURE__ */ jsxs(
190395
+ "div",
190396
+ {
190397
+ style: {
190398
+ flex: 1,
190399
+ minHeight: 0,
190400
+ position: "relative",
190401
+ background: `linear-gradient(180deg, ${colors.windowGradient[0]} 0%, ${colors.windowGradient[1]} 100%)`,
190402
+ border: `2px solid ${colors.cardHighlight}`,
190403
+ boxShadow: "inset 0 2px 4px rgba(0,0,0,0.3)",
190404
+ overflow: "hidden",
190405
+ display: "flex",
190406
+ alignItems: "center",
190407
+ justifyContent: "center"
190408
+ },
190409
+ children: [
190410
+ /* @__PURE__ */ jsx(
190411
+ "div",
190412
+ {
190413
+ style: {
190414
+ position: "absolute",
190415
+ inset: 0,
190416
+ pointerEvents: "none",
190417
+ backgroundImage: STARFIELD_BACKGROUND,
190418
+ backgroundSize: "100% 100%"
190419
+ }
190420
+ }
190421
+ ),
190422
+ children2,
190423
+ label && /* @__PURE__ */ jsx(
190424
+ "div",
190425
+ {
190426
+ style: {
190427
+ position: "absolute",
190428
+ bottom: 0,
190429
+ left: 0,
190430
+ right: 0,
190431
+ padding: "6px 8px",
190432
+ background: "linear-gradient(transparent, rgba(0,0,0,0.7))",
190433
+ fontSize: theme2.fontSizes[2],
190434
+ fontWeight: theme2.fontWeights.bold,
190435
+ color: "#ffffff",
190436
+ fontFamily: theme2.fonts.body,
190437
+ whiteSpace: "nowrap",
190438
+ overflow: "hidden",
190439
+ textOverflow: "ellipsis",
190440
+ textShadow: "0 1px 2px rgba(0,0,0,0.5)",
190441
+ textAlign: "center"
190442
+ },
190443
+ title: label,
190444
+ children: label
190445
+ }
190446
+ )
190447
+ ]
190448
+ }
190449
+ ),
190450
+ /* @__PURE__ */ jsxs(
190451
+ "div",
190452
+ {
190453
+ style: {
190454
+ marginTop: "12px",
190455
+ padding: "8px",
190456
+ background: `linear-gradient(180deg, ${colors.panelGradient[0]} 0%, ${colors.panelGradient[1]} 100%)`,
190457
+ border: `1px solid ${colors.panelBorder}`,
190458
+ flexShrink: 0
190459
+ },
190460
+ children: [
190461
+ description2 && /* @__PURE__ */ jsx(
190462
+ "div",
190463
+ {
190464
+ style: {
190465
+ fontSize: theme2.fontSizes[1],
190466
+ color: "#e0e0e0",
190467
+ marginBottom: "6px",
190468
+ fontFamily: theme2.fonts.body,
190469
+ overflow: "hidden",
190470
+ textOverflow: "ellipsis",
190471
+ display: "-webkit-box",
190472
+ WebkitLineClamp: 2,
190473
+ WebkitBoxOrient: "vertical",
190474
+ textShadow: "0 1px 2px rgba(0,0,0,0.3)",
190475
+ lineHeight: 1.4
190476
+ },
190477
+ title: description2,
190478
+ children: description2
190479
+ }
190480
+ ),
190481
+ /* @__PURE__ */ jsx(
190482
+ "div",
190483
+ {
190484
+ style: {
190485
+ display: "flex",
190486
+ justifyContent: "center",
190487
+ flexWrap: "wrap",
190488
+ gap: "10px",
190489
+ fontSize: theme2.fontSizes[1],
190490
+ color: "#e0e0e0",
190491
+ fontFamily: theme2.fonts.body
190492
+ },
190493
+ children: files2 !== void 0 && files2 > 0 && /* @__PURE__ */ jsxs("span", { style: { display: "flex", alignItems: "center", gap: "4px" }, children: [
190494
+ /* @__PURE__ */ jsx("svg", { width: "12", height: "12", viewBox: "0 0 16 16", fill: "#94a3b8", children: /* @__PURE__ */ jsx(
190495
+ "path",
190496
+ {
190497
+ d: "M3 1h7l3 3v11H3V1zm7 0v3h3M5 8h6M5 11h6",
190498
+ stroke: "#94a3b8",
190499
+ strokeWidth: "1",
190500
+ fill: "none"
190501
+ }
190502
+ ) }),
190503
+ formatCount$1(files2)
190504
+ ] })
190505
+ }
190506
+ ),
190507
+ packages && packages.length > 1 && /* @__PURE__ */ jsxs(
190508
+ "div",
190509
+ {
190510
+ style: {
190511
+ marginTop: "6px",
190512
+ display: "flex",
190513
+ flexWrap: "wrap",
190514
+ justifyContent: "center",
190515
+ gap: "4px"
190516
+ },
190517
+ children: [
190518
+ packages.slice(0, 6).map((pkg, i2) => /* @__PURE__ */ jsx(
190519
+ "span",
190520
+ {
190521
+ style: {
190522
+ fontSize: theme2.fontSizes[0],
190523
+ color: "#e0e0e0",
190524
+ backgroundColor: "rgba(0,0,0,0.2)",
190525
+ padding: "2px 6px",
190526
+ borderRadius: "3px",
190527
+ fontFamily: theme2.fonts.body,
190528
+ borderLeft: `2px solid ${typeof pkg.color === "string" ? pkg.color : `#${(pkg.color || 8947848).toString(16).padStart(6, "0")}`}`
190529
+ },
190530
+ children: pkg.name
190531
+ },
190532
+ i2
190533
+ )),
190534
+ packages.length > 6 && /* @__PURE__ */ jsxs(
190535
+ "span",
190536
+ {
190537
+ style: {
190538
+ fontSize: theme2.fontSizes[0],
190539
+ color: "#a0a0a0",
190540
+ fontFamily: theme2.fonts.body
190541
+ },
190542
+ children: [
190543
+ "+",
190544
+ packages.length - 6,
190545
+ " more"
190546
+ ]
190547
+ }
190548
+ )
190549
+ ]
190550
+ }
190551
+ )
190552
+ ]
190553
+ }
190554
+ ),
190555
+ language2 && /* @__PURE__ */ jsx(
190556
+ "div",
190557
+ {
190558
+ style: {
190559
+ position: "absolute",
190560
+ bottom: "4px",
190561
+ left: "8px",
190562
+ fontSize: theme2.fontSizes[0],
190563
+ fontWeight: theme2.fontWeights.medium,
190564
+ color: "#e0e0e0",
190565
+ textShadow: "0 1px 1px rgba(0,0,0,0.3)",
190566
+ fontFamily: theme2.fonts.body
190567
+ },
190568
+ children: language2
190569
+ }
190570
+ ),
190571
+ license && /* @__PURE__ */ jsx(
190572
+ "div",
190573
+ {
190574
+ style: {
190575
+ position: "absolute",
190576
+ bottom: "-3px",
190577
+ right: "-3px",
190578
+ backgroundColor: licenseBorder || colors.cardHighlight,
190579
+ padding: "3px 10px",
190580
+ borderRadius: 0,
190581
+ fontFamily: theme2.fonts.body,
190582
+ fontSize: theme2.fontSizes[0],
190583
+ fontWeight: theme2.fontWeights.bold,
190584
+ color: "#ffffff",
190585
+ textShadow: "0 1px 1px rgba(0,0,0,0.3)"
190586
+ },
190587
+ children: license
190588
+ }
190589
+ )
190590
+ ]
190591
+ }
190592
+ );
190593
+ };
190594
+ const ISO_TILE_WIDTH$1 = 64;
190595
+ const ISO_TILE_HEIGHT$1 = 32;
190596
+ function getPackagePositions$1(count2, footprintWidth, footprintHeight) {
190112
190597
  const positions = [];
190113
190598
  const spacing = 0.18;
190114
190599
  const yOffset = -footprintHeight * 0.15;
@@ -190160,13 +190645,18 @@ const RepoSprite = ({
190160
190645
  collaborators,
190161
190646
  license,
190162
190647
  label,
190648
+ owner,
190649
+ language: language2,
190163
190650
  variant = "default",
190651
+ cardTheme = "blue",
190164
190652
  width = 200,
190165
190653
  height = 200,
190166
190654
  backgroundColor,
190167
190655
  showBoundary = true,
190168
190656
  boundaryColor = 16776960,
190169
- debug = false
190657
+ debug = false,
190658
+ onPackageHover,
190659
+ onPackageHoverEnd
190170
190660
  }) => {
190171
190661
  const { theme: theme2 } = useTheme();
190172
190662
  const containerRef = useRef(null);
@@ -190188,8 +190678,8 @@ const RepoSprite = ({
190188
190678
  (_a = containerRef.current) == null ? void 0 : _a.appendChild(app.canvas);
190189
190679
  appRef.current = app;
190190
190680
  const boundarySize = 4 * size;
190191
- const boundaryWidth = boundarySize * ISO_TILE_WIDTH;
190192
- const boundaryHeight = boundarySize * ISO_TILE_HEIGHT;
190681
+ const boundaryWidth = boundarySize * ISO_TILE_WIDTH$1;
190682
+ const boundaryHeight = boundarySize * ISO_TILE_HEIGHT$1;
190193
190683
  const padding = 0.9;
190194
190684
  const scaleX = width * padding / boundaryWidth;
190195
190685
  const scaleY = height * padding / boundaryHeight;
@@ -190213,15 +190703,10 @@ const RepoSprite = ({
190213
190703
  boundary.stroke();
190214
190704
  mainContainer.addChild(boundary);
190215
190705
  }
190216
- if (license) {
190217
- const licenseGround = generateLicenseGround(
190218
- license,
190219
- size
190220
- );
190221
- mainContainer.addChild(licenseGround);
190222
- }
190706
+ const ground = license ? generateLicenseGround(license, size) : generateNeutralGround(size);
190707
+ mainContainer.addChild(ground);
190223
190708
  if (packages && packages.length > 1) {
190224
- const positions = getPackagePositions(
190709
+ const positions = getPackagePositions$1(
190225
190710
  packages.length,
190226
190711
  boundaryWidth / 2,
190227
190712
  boundaryHeight / 2
@@ -190229,7 +190714,7 @@ const RepoSprite = ({
190229
190714
  for (let i2 = 0; i2 < packages.length; i2++) {
190230
190715
  const pkg = packages[i2];
190231
190716
  const pos = positions[i2] || { x: 0, y: 0 };
190232
- const pkgColor = pkg.color ? parseColor(pkg.color) : parseColor(color2);
190717
+ const pkgColor = pkg.color ? parseColor$1(pkg.color) : parseColor$1(color2);
190233
190718
  const pkgSize = (pkg.size || 1) * size * 0.4;
190234
190719
  const buildingGraphics = generateBuildingSprite({
190235
190720
  size: pkgSize,
@@ -190237,10 +190722,22 @@ const RepoSprite = ({
190237
190722
  });
190238
190723
  buildingGraphics.x = pos.x;
190239
190724
  buildingGraphics.y = pos.y;
190725
+ buildingGraphics.eventMode = "static";
190726
+ buildingGraphics.cursor = "pointer";
190727
+ const originalTint = buildingGraphics.tint;
190728
+ const packageName = pkg.name;
190729
+ buildingGraphics.on("pointerover", () => {
190730
+ buildingGraphics.tint = 8965375;
190731
+ onPackageHover == null ? void 0 : onPackageHover(packageName);
190732
+ });
190733
+ buildingGraphics.on("pointerout", () => {
190734
+ buildingGraphics.tint = originalTint;
190735
+ onPackageHoverEnd == null ? void 0 : onPackageHoverEnd(packageName);
190736
+ });
190240
190737
  mainContainer.addChild(buildingGraphics);
190241
190738
  }
190242
190739
  } else {
190243
- const parsedColor = parseColor(color2);
190740
+ const parsedColor = parseColor$1(color2);
190244
190741
  const buildingGraphics = generateBuildingSprite({
190245
190742
  size,
190246
190743
  color: parsedColor
@@ -190305,7 +190802,7 @@ const RepoSprite = ({
190305
190802
  }
190306
190803
  }
190307
190804
  if (debug) {
190308
- const { Graphics: Graphics2 } = await Promise.resolve().then(() => index$5);
190805
+ const { Graphics: Graphics2 } = await Promise.resolve().then(() => index$6);
190309
190806
  const debugRect = new Graphics2();
190310
190807
  debugRect.rect(-width / 2, -height / 2, width, height);
190311
190808
  debugRect.stroke({ width: 1, color: 16711680 });
@@ -190334,192 +190831,35 @@ const RepoSprite = ({
190334
190831
  backgroundColor,
190335
190832
  showBoundary,
190336
190833
  boundaryColor,
190337
- debug
190834
+ debug,
190835
+ onPackageHover,
190836
+ onPackageHoverEnd
190338
190837
  ]);
190339
190838
  if (variant === "card") {
190340
- return /* @__PURE__ */ jsxs(
190341
- "div",
190839
+ return /* @__PURE__ */ jsx(
190840
+ CardLayout,
190342
190841
  {
190343
- style: {
190344
- display: "flex",
190345
- flexDirection: "column",
190346
- backgroundColor: theme2.colors.backgroundSecondary,
190347
- padding: "16px",
190348
- border: `2px solid ${theme2.colors.border}`,
190349
- width: "100%",
190350
- height: "100%",
190351
- boxSizing: "border-box"
190352
- },
190353
- children: [
190354
- /* @__PURE__ */ jsx(
190355
- "div",
190356
- {
190357
- ref: containerRef,
190358
- style: {
190359
- flex: 1,
190360
- minHeight: height,
190361
- display: "flex",
190362
- alignItems: "center",
190363
- justifyContent: "center"
190364
- }
190842
+ color: color2,
190843
+ owner,
190844
+ stars,
190845
+ label,
190846
+ files: files2,
190847
+ language: language2,
190848
+ license,
190849
+ packages,
190850
+ children: /* @__PURE__ */ jsx(
190851
+ "div",
190852
+ {
190853
+ ref: containerRef,
190854
+ style: {
190855
+ width: "100%",
190856
+ height: "100%",
190857
+ display: "flex",
190858
+ alignItems: "center",
190859
+ justifyContent: "center"
190365
190860
  }
190366
- ),
190367
- /* @__PURE__ */ jsxs("div", { style: { marginTop: "12px", textAlign: "center" }, children: [
190368
- label && /* @__PURE__ */ jsx(
190369
- "div",
190370
- {
190371
- style: {
190372
- fontSize: theme2.fontSizes[2],
190373
- fontWeight: theme2.fontWeights.semibold,
190374
- color: theme2.colors.text,
190375
- marginBottom: "8px",
190376
- fontFamily: theme2.fonts.body
190377
- },
190378
- children: label
190379
- }
190380
- ),
190381
- /* @__PURE__ */ jsxs(
190382
- "div",
190383
- {
190384
- style: {
190385
- display: "flex",
190386
- justifyContent: "center",
190387
- gap: "16px",
190388
- fontSize: theme2.fontSizes[1],
190389
- color: theme2.colors.textSecondary,
190390
- fontFamily: theme2.fonts.body
190391
- },
190392
- children: [
190393
- files2 !== void 0 && files2 > 0 && /* @__PURE__ */ jsxs(
190394
- "span",
190395
- {
190396
- style: { display: "flex", alignItems: "center", gap: "4px" },
190397
- children: [
190398
- /* @__PURE__ */ jsx("svg", { width: "12", height: "12", viewBox: "0 0 16 16", fill: "#64748b", children: /* @__PURE__ */ jsx(
190399
- "path",
190400
- {
190401
- d: "M3 1h7l3 3v11H3V1zm7 0v3h3M5 8h6M5 11h6",
190402
- stroke: "#64748b",
190403
- strokeWidth: "1",
190404
- fill: "none"
190405
- }
190406
- ) }),
190407
- formatCount$1(files2)
190408
- ]
190409
- }
190410
- ),
190411
- packages && packages.length > 1 && /* @__PURE__ */ jsxs(
190412
- "span",
190413
- {
190414
- style: { display: "flex", alignItems: "center", gap: "4px" },
190415
- children: [
190416
- /* @__PURE__ */ jsxs("svg", { width: "12", height: "12", viewBox: "0 0 16 16", fill: "none", children: [
190417
- /* @__PURE__ */ jsx(
190418
- "path",
190419
- {
190420
- d: "M8 1L14 4v8l-6 3-6-3V4l6-3z",
190421
- stroke: "#8b5cf6",
190422
- strokeWidth: "1.5"
190423
- }
190424
- ),
190425
- /* @__PURE__ */ jsx(
190426
- "path",
190427
- {
190428
- d: "M8 8v7M8 8l6-3M8 8L2 5",
190429
- stroke: "#8b5cf6",
190430
- strokeWidth: "1"
190431
- }
190432
- )
190433
- ] }),
190434
- packages.length
190435
- ]
190436
- }
190437
- ),
190438
- stars !== void 0 && stars > 0 && /* @__PURE__ */ jsxs(
190439
- "span",
190440
- {
190441
- style: { display: "flex", alignItems: "center", gap: "4px" },
190442
- children: [
190443
- /* @__PURE__ */ jsx("svg", { width: "12", height: "12", viewBox: "0 0 16 16", fill: "#fbbf24", children: /* @__PURE__ */ jsx("path", { d: "M8 1l2.2 4.4 4.8.7-3.5 3.4.8 4.8L8 12l-4.3 2.3.8-4.8L1 6.1l4.8-.7L8 1z" }) }),
190444
- formatCount$1(stars)
190445
- ]
190446
- }
190447
- ),
190448
- collaborators !== void 0 && collaborators > 0 && /* @__PURE__ */ jsxs(
190449
- "span",
190450
- {
190451
- style: { display: "flex", alignItems: "center", gap: "4px" },
190452
- children: [
190453
- /* @__PURE__ */ jsxs("svg", { width: "12", height: "12", viewBox: "0 0 16 16", fill: "#22c55e", children: [
190454
- /* @__PURE__ */ jsx("circle", { cx: "5", cy: "5", r: "2.5" }),
190455
- /* @__PURE__ */ jsx("circle", { cx: "11", cy: "5", r: "2.5" }),
190456
- /* @__PURE__ */ jsx("path", { d: "M1 14c0-2.5 2-4 4-4s4 1.5 4 4M7 14c0-2.5 2-4 4-4s4 1.5 4 4" })
190457
- ] }),
190458
- formatCount$1(collaborators)
190459
- ]
190460
- }
190461
- ),
190462
- license && /* @__PURE__ */ jsx(
190463
- "span",
190464
- {
190465
- style: {
190466
- backgroundColor: theme2.colors.backgroundTertiary,
190467
- padding: "2px 6px",
190468
- borderRadius: "4px",
190469
- fontSize: theme2.fontSizes[0]
190470
- },
190471
- children: license
190472
- }
190473
- )
190474
- ]
190475
- }
190476
- ),
190477
- packages && packages.length > 1 && /* @__PURE__ */ jsxs(
190478
- "div",
190479
- {
190480
- style: {
190481
- marginTop: "8px",
190482
- display: "flex",
190483
- flexWrap: "wrap",
190484
- justifyContent: "center",
190485
- gap: "4px"
190486
- },
190487
- children: [
190488
- packages.slice(0, 6).map((pkg, i2) => /* @__PURE__ */ jsx(
190489
- "span",
190490
- {
190491
- style: {
190492
- fontSize: theme2.fontSizes[0],
190493
- color: theme2.colors.textSecondary,
190494
- backgroundColor: theme2.colors.backgroundTertiary,
190495
- padding: "2px 6px",
190496
- fontFamily: theme2.fonts.body,
190497
- borderLeft: `2px solid ${typeof pkg.color === "string" ? pkg.color : `#${(pkg.color || 8947848).toString(16).padStart(6, "0")}`}`
190498
- },
190499
- children: pkg.name
190500
- },
190501
- i2
190502
- )),
190503
- packages.length > 6 && /* @__PURE__ */ jsxs(
190504
- "span",
190505
- {
190506
- style: {
190507
- fontSize: theme2.fontSizes[0],
190508
- color: theme2.colors.textSecondary,
190509
- fontFamily: theme2.fonts.body
190510
- },
190511
- children: [
190512
- "+",
190513
- packages.length - 6,
190514
- " more"
190515
- ]
190516
- }
190517
- )
190518
- ]
190519
- }
190520
- )
190521
- ] })
190522
- ]
190861
+ }
190862
+ )
190523
190863
  }
190524
190864
  );
190525
190865
  }
@@ -190539,7 +190879,9 @@ const RepoSpriteView = ({
190539
190879
  github,
190540
190880
  fileCount,
190541
190881
  showHeader = true,
190542
- workspacePackages
190882
+ workspacePackages,
190883
+ onPackageHover,
190884
+ onPackageHoverEnd
190543
190885
  }) => {
190544
190886
  const { theme: theme2 } = useTheme$1();
190545
190887
  const containerRef = useRef(null);
@@ -190627,8 +190969,6 @@ const RepoSpriteView = ({
190627
190969
  children: containerSize && /* @__PURE__ */ jsx(
190628
190970
  RepoSprite,
190629
190971
  {
190630
- variant: "card",
190631
- label: github.name,
190632
190972
  files: fileCount,
190633
190973
  stars: github.stars,
190634
190974
  license: github.license ?? void 0,
@@ -190636,7 +190976,9 @@ const RepoSpriteView = ({
190636
190976
  packages: isMonorepo ? workspacePackages : void 0,
190637
190977
  size: spriteDimensions.size,
190638
190978
  width: spriteDimensions.width,
190639
- height: spriteDimensions.height
190979
+ height: spriteDimensions.height,
190980
+ onPackageHover,
190981
+ onPackageHoverEnd
190640
190982
  },
190641
190983
  `${github.name}-${spriteDimensions.width}-${spriteDimensions.height}`
190642
190984
  )
@@ -194036,7 +194378,7 @@ const esm = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty(
194036
194378
  __proto__: null,
194037
194379
  default: StyleToObject
194038
194380
  }, Symbol.toStringTag, { value: "Module" }));
194039
- const require$$0 = /* @__PURE__ */ getAugmentedNamespace(esm);
194381
+ const require$$0 = /* @__PURE__ */ getAugmentedNamespace$1(esm);
194040
194382
  var utilities = {};
194041
194383
  var hasRequiredUtilities;
194042
194384
  function requireUtilities() {
@@ -236189,7 +236531,7 @@ const TourPlayer = ({
236189
236531
  }
236190
236532
  )
236191
236533
  ] }),
236192
- tour.prerequisites && tour.prerequisites.length > 0 && /* @__PURE__ */ jsxs("div", { children: [
236534
+ Array.isArray(tour.prerequisites) && tour.prerequisites.length > 0 && /* @__PURE__ */ jsxs("div", { children: [
236193
236535
  /* @__PURE__ */ jsx(
236194
236536
  "div",
236195
236537
  {
@@ -238487,7 +238829,7 @@ const CodeCityPanelContent = ({
238487
238829
  actions,
238488
238830
  events
238489
238831
  }) => {
238490
- var _a, _b, _c, _d, _e2, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o2, _p, _q, _r, _s, _t2, _u;
238832
+ var _a, _b, _c, _d, _e2, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o2, _p, _q, _r, _s, _t2, _u, _v;
238491
238833
  const autoShowTour = ("autoShowTour" in context2 ? context2.autoShowTour : false) ?? false;
238492
238834
  const { theme: theme2 } = useTheme$1();
238493
238835
  const [cityData, setCityData] = useState(null);
@@ -238562,7 +238904,19 @@ const CodeCityPanelContent = ({
238562
238904
  if (!(summary == null ? void 0 : summary.isMonorepo) || !summary.workspacePackages) return void 0;
238563
238905
  return summary.workspacePackages.filter((pkg) => !!pkg.name).map((pkg) => ({ name: pkg.name }));
238564
238906
  }, [(_d = packagesSlice == null ? void 0 : packagesSlice.data) == null ? void 0 : _d.summary]);
238565
- const githubRepoString = (_e2 = context2.currentScope.repository) == null ? void 0 : _e2.githubRepo;
238907
+ const packageNameToPath = useMemo(() => {
238908
+ var _a2;
238909
+ const summary = (_a2 = packagesSlice == null ? void 0 : packagesSlice.data) == null ? void 0 : _a2.summary;
238910
+ if (!(summary == null ? void 0 : summary.isMonorepo) || !summary.workspacePackages) return /* @__PURE__ */ new Map();
238911
+ const map2 = /* @__PURE__ */ new Map();
238912
+ for (const pkg of summary.workspacePackages) {
238913
+ if (pkg.name && pkg.path) {
238914
+ map2.set(pkg.name, pkg.path);
238915
+ }
238916
+ }
238917
+ return map2;
238918
+ }, [(_e2 = packagesSlice == null ? void 0 : packagesSlice.data) == null ? void 0 : _e2.summary]);
238919
+ const githubRepoString = (_f = context2.currentScope.repository) == null ? void 0 : _f.githubRepo;
238566
238920
  const [repoOwner, repoName] = (githubRepoString == null ? void 0 : githubRepoString.includes("/")) ? githubRepoString.split("/") : [void 0, void 0];
238567
238921
  const fileColorLayersRegistered = useRef(false);
238568
238922
  const gitLayersRegistered = useRef(false);
@@ -238570,7 +238924,7 @@ const CodeCityPanelContent = ({
238570
238924
  const commitFilesLayersRegistered = useRef(false);
238571
238925
  const agentLayersRegistered = useRef(false);
238572
238926
  const lastHasGitOrAgentLayers = useRef(null);
238573
- const currentRepoPath = (_f = context2.currentScope.repository) == null ? void 0 : _f.path;
238927
+ const currentRepoPath = (_g = context2.currentScope.repository) == null ? void 0 : _g.path;
238574
238928
  const lastRepoPath = useRef(currentRepoPath);
238575
238929
  useEffect(() => {
238576
238930
  if (lastRepoPath.current !== currentRepoPath) {
@@ -238626,7 +238980,7 @@ const CodeCityPanelContent = ({
238626
238980
  }
238627
238981
  };
238628
238982
  loadTour();
238629
- }, [fileTreeSlice == null ? void 0 : fileTreeSlice.data, (_g = context2.currentScope.repository) == null ? void 0 : _g.path, context2.adapters]);
238983
+ }, [fileTreeSlice == null ? void 0 : fileTreeSlice.data, (_h = context2.currentScope.repository) == null ? void 0 : _h.path, context2.adapters]);
238630
238984
  useEffect(() => {
238631
238985
  if (autoShowTour && tourData && !hasAutoShownTourRef.current) {
238632
238986
  setShowTourPlayer(true);
@@ -238898,7 +239252,7 @@ const CodeCityPanelContent = ({
238898
239252
  }
238899
239253
  }
238900
239254
  return layers;
238901
- }, [cityData, (_h = prFilesSlice == null ? void 0 : prFilesSlice.data) == null ? void 0 : _h.filesByStatus, prFilesVersion]);
239255
+ }, [cityData, (_i = prFilesSlice == null ? void 0 : prFilesSlice.data) == null ? void 0 : _i.filesByStatus, prFilesVersion]);
238902
239256
  const commitFilesLayers = useMemo(() => {
238903
239257
  var _a2;
238904
239258
  if (!cityData || !cityData.buildings || !((_a2 = commitFilesSlice == null ? void 0 : commitFilesSlice.data) == null ? void 0 : _a2.filesByStatus)) {
@@ -238976,7 +239330,7 @@ const CodeCityPanelContent = ({
238976
239330
  }
238977
239331
  }
238978
239332
  return layers;
238979
- }, [cityData, (_i = commitFilesSlice == null ? void 0 : commitFilesSlice.data) == null ? void 0 : _i.filesByStatus, commitFilesVersion]);
239333
+ }, [cityData, (_j = commitFilesSlice == null ? void 0 : commitFilesSlice.data) == null ? void 0 : _j.filesByStatus, commitFilesVersion]);
238980
239334
  const storyboardLayers = useMemo(() => {
238981
239335
  if (!cityData || !cityData.buildings || !(storyboardContextSlice == null ? void 0 : storyboardContextSlice.data)) {
238982
239336
  return [];
@@ -239077,7 +239431,7 @@ const CodeCityPanelContent = ({
239077
239431
  if (!((_a2 = prFilesSlice == null ? void 0 : prFilesSlice.data) == null ? void 0 : _a2.filesByStatus)) return 0;
239078
239432
  const { added, modified, removed, renamed } = prFilesSlice.data.filesByStatus;
239079
239433
  return added.length + modified.length + removed.length + renamed.length;
239080
- }, [(_j = prFilesSlice == null ? void 0 : prFilesSlice.data) == null ? void 0 : _j.filesByStatus]);
239434
+ }, [(_k = prFilesSlice == null ? void 0 : prFilesSlice.data) == null ? void 0 : _k.filesByStatus]);
239081
239435
  const legendAgentLayers = useMemo(() => {
239082
239436
  const agentLayers = highlightLayers.filter(
239083
239437
  (layer) => layer.id.startsWith("event-highlight")
@@ -239346,7 +239700,7 @@ const CodeCityPanelContent = ({
239346
239700
  } finally {
239347
239701
  setLoading(false);
239348
239702
  }
239349
- }, [fileTreeSlice == null ? void 0 : fileTreeSlice.data, fileTreeSlice == null ? void 0 : fileTreeSlice.loading, (_k = context2.currentScope.repository) == null ? void 0 : _k.path]);
239703
+ }, [fileTreeSlice == null ? void 0 : fileTreeSlice.data, fileTreeSlice == null ? void 0 : fileTreeSlice.loading, (_l = context2.currentScope.repository) == null ? void 0 : _l.path]);
239350
239704
  const handleFileClick = useCallback(
239351
239705
  (filePath, type2) => {
239352
239706
  if (type2 === "file") {
@@ -239411,6 +239765,26 @@ const CodeCityPanelContent = ({
239411
239765
  });
239412
239766
  setIsEditingCover(false);
239413
239767
  }, [events]);
239768
+ const handleRepoSpritePackageHover = useCallback(
239769
+ (packageName) => {
239770
+ const packagePath = packageNameToPath.get(packageName) ?? packageName;
239771
+ events.emit({
239772
+ type: "package:hover",
239773
+ source: "repo-sprite",
239774
+ timestamp: Date.now(),
239775
+ payload: { packagePath, packageName }
239776
+ });
239777
+ },
239778
+ [events, packageNameToPath]
239779
+ );
239780
+ const handleRepoSpritePackageHoverEnd = useCallback(() => {
239781
+ events.emit({
239782
+ type: "package:hover",
239783
+ source: "repo-sprite",
239784
+ timestamp: Date.now(),
239785
+ payload: null
239786
+ });
239787
+ }, [events]);
239414
239788
  const handleEditCover = useCallback(() => {
239415
239789
  setIsEditingCover(true);
239416
239790
  }, []);
@@ -239548,6 +239922,20 @@ const CodeCityPanelContent = ({
239548
239922
  (item) => item.type === "directory" || isFileInPackage(item.path, hoveredPackagePath)
239549
239923
  )
239550
239924
  })).filter((layer) => layer.items.length > 0);
239925
+ layers.push({
239926
+ id: "hovered-package-highlight",
239927
+ name: "Hovered Package",
239928
+ enabled: true,
239929
+ color: "#3b82f6",
239930
+ // Blue highlight
239931
+ priority: 150,
239932
+ // Below selected package (200)
239933
+ items: [{
239934
+ path: hoveredPackagePath,
239935
+ type: "directory",
239936
+ renderStrategy: "border"
239937
+ }]
239938
+ });
239551
239939
  }
239552
239940
  if (gitTreeHoverLayer) layers.push(gitTreeHoverLayer);
239553
239941
  if (selectedFileLayer) layers.push(selectedFileLayer);
@@ -239572,7 +239960,7 @@ const CodeCityPanelContent = ({
239572
239960
  path: tourFilePath,
239573
239961
  commitSha
239574
239962
  };
239575
- }, [tourFilePath, context2.currentScope.repository, (_m = (_l = fileTreeSlice == null ? void 0 : fileTreeSlice.data) == null ? void 0 : _l.metadata) == null ? void 0 : _m.sourceSha]);
239963
+ }, [tourFilePath, context2.currentScope.repository, (_n = (_m = fileTreeSlice == null ? void 0 : fileTreeSlice.data) == null ? void 0 : _m.metadata) == null ? void 0 : _n.sourceSha]);
239576
239964
  return /* @__PURE__ */ jsxs(
239577
239965
  "div",
239578
239966
  {
@@ -239584,7 +239972,7 @@ const CodeCityPanelContent = ({
239584
239972
  backgroundColor: theme2.colors.background
239585
239973
  },
239586
239974
  children: [
239587
- (repositoryEntrySlice == null ? void 0 : repositoryEntrySlice.loading) ? /* @__PURE__ */ jsx(ProjectHeaderSkeleton, {}) : ((_n = repositoryEntrySlice == null ? void 0 : repositoryEntrySlice.data) == null ? void 0 : _n.github) ? /* @__PURE__ */ jsx(
239975
+ (repositoryEntrySlice == null ? void 0 : repositoryEntrySlice.loading) ? /* @__PURE__ */ jsx(ProjectHeaderSkeleton, {}) : ((_o2 = repositoryEntrySlice == null ? void 0 : repositoryEntrySlice.data) == null ? void 0 : _o2.github) ? /* @__PURE__ */ jsx(
239588
239976
  ProjectHeader,
239589
239977
  {
239590
239978
  github: repositoryEntrySlice.data.github,
@@ -239918,14 +240306,14 @@ const CodeCityPanelContent = ({
239918
240306
  fileTypes: [],
239919
240307
  gitStatus: gitSlice == null ? void 0 : gitSlice.data,
239920
240308
  panelActions: actions,
239921
- prFiles: (_o2 = prFilesSlice == null ? void 0 : prFilesSlice.data) == null ? void 0 : _o2.filesByStatus,
239922
- prFileStats: (_p = prFilesSlice == null ? void 0 : prFilesSlice.data) == null ? void 0 : _p.files,
239923
- prNumber: (_q = prFilesSlice == null ? void 0 : prFilesSlice.data) == null ? void 0 : _q.pullNumber,
239924
- commitFiles: (_r = commitFilesSlice == null ? void 0 : commitFilesSlice.data) == null ? void 0 : _r.filesByStatus,
239925
- commitHash: (_s = commitFilesSlice == null ? void 0 : commitFilesSlice.data) == null ? void 0 : _s.commitHash,
239926
- commitStats: (_t2 = commitFilesSlice == null ? void 0 : commitFilesSlice.data) == null ? void 0 : _t2.stats,
240309
+ prFiles: (_p = prFilesSlice == null ? void 0 : prFilesSlice.data) == null ? void 0 : _p.filesByStatus,
240310
+ prFileStats: (_q = prFilesSlice == null ? void 0 : prFilesSlice.data) == null ? void 0 : _q.files,
240311
+ prNumber: (_r = prFilesSlice == null ? void 0 : prFilesSlice.data) == null ? void 0 : _r.pullNumber,
240312
+ commitFiles: (_s = commitFilesSlice == null ? void 0 : commitFilesSlice.data) == null ? void 0 : _s.filesByStatus,
240313
+ commitHash: (_t2 = commitFilesSlice == null ? void 0 : commitFilesSlice.data) == null ? void 0 : _t2.commitHash,
240314
+ commitStats: (_u = commitFilesSlice == null ? void 0 : commitFilesSlice.data) == null ? void 0 : _u.stats,
239927
240315
  fileTree: fileTreeSlice == null ? void 0 : fileTreeSlice.data,
239928
- rootPath: (_u = context2.currentScope.repository) == null ? void 0 : _u.path,
240316
+ rootPath: (_v = context2.currentScope.repository) == null ? void 0 : _v.path,
239929
240317
  onGitFileClick: handleLegendFileClick,
239930
240318
  onGitNodeHover: handleGitNodeHover,
239931
240319
  onPrFileClick: handleLegendFileClick,
@@ -239982,7 +240370,9 @@ const CodeCityPanelContent = ({
239982
240370
  github: tab2.github,
239983
240371
  fileCount: computedTreeStats == null ? void 0 : computedTreeStats.fileCount,
239984
240372
  showHeader: false,
239985
- workspacePackages
240373
+ workspacePackages,
240374
+ onPackageHover: handleRepoSpritePackageHover,
240375
+ onPackageHoverEnd: handleRepoSpritePackageHoverEnd
239986
240376
  }
239987
240377
  )
239988
240378
  );
@@ -240048,7 +240438,9 @@ const CodeCityPanelContent = ({
240048
240438
  github: tab2.github,
240049
240439
  fileCount: computedTreeStats == null ? void 0 : computedTreeStats.fileCount,
240050
240440
  showHeader: true,
240051
- workspacePackages
240441
+ workspacePackages,
240442
+ onPackageHover: handleRepoSpritePackageHover,
240443
+ onPackageHoverEnd: handleRepoSpritePackageHoverEnd
240052
240444
  }
240053
240445
  ),
240054
240446
  tab2.id === "files" && /* @__PURE__ */ jsx(
@@ -241586,4 +241978,4 @@ export {
241586
241978
  resolveImageUrl as u,
241587
241979
  selectDistrictTool as v
241588
241980
  };
241589
- //# sourceMappingURL=index-BT9gD1MW.js.map
241981
+ //# sourceMappingURL=index-vzg_r8XB.js.map