@industry-theme/repository-composition-panels 0.6.25 → 0.6.26

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.
Files changed (36) hide show
  1. package/dist/{BufferResource-04cpEQ0v.js → BufferResource-BpwdsDX0.js} +2 -2
  2. package/dist/{BufferResource-04cpEQ0v.js.map → BufferResource-BpwdsDX0.js.map} +1 -1
  3. package/dist/{CanvasRenderer-C7nUvMXE.js → CanvasRenderer-CPXgnUH1.js} +3 -3
  4. package/dist/{CanvasRenderer-C7nUvMXE.js.map → CanvasRenderer-CPXgnUH1.js.map} +1 -1
  5. package/dist/{Filter-D_86Ax-n.js → Filter-mj7HIghB.js} +2 -2
  6. package/dist/{Filter-D_86Ax-n.js.map → Filter-mj7HIghB.js.map} +1 -1
  7. package/dist/{RenderTargetSystem-1fgwSKkC.js → RenderTargetSystem-hvP6wkm5.js} +3 -3
  8. package/dist/{RenderTargetSystem-1fgwSKkC.js.map → RenderTargetSystem-hvP6wkm5.js.map} +1 -1
  9. package/dist/{WebGLRenderer-Dj-oDZnm.js → WebGLRenderer-CSpWLo6L.js} +4 -4
  10. package/dist/{WebGLRenderer-Dj-oDZnm.js.map → WebGLRenderer-CSpWLo6L.js.map} +1 -1
  11. package/dist/{WebGPURenderer-BSTx-5Vd.js → WebGPURenderer-Dlw7vvZU.js} +4 -4
  12. package/dist/{WebGPURenderer-BSTx-5Vd.js.map → WebGPURenderer-Dlw7vvZU.js.map} +1 -1
  13. package/dist/{browserAll-DwRNjFsz.js → browserAll-C1iy5xbx.js} +3 -3
  14. package/dist/{browserAll-DwRNjFsz.js.map → browserAll-C1iy5xbx.js.map} +1 -1
  15. package/dist/{index-O-HJOiQ4.js → index-BwWx2Yhi.js} +125 -20
  16. package/dist/{index-O-HJOiQ4.js.map → index-BwWx2Yhi.js.map} +1 -1
  17. package/dist/{init-C6R0aCVI.js → init-DGC3XtNO.js} +3 -3
  18. package/dist/{init-C6R0aCVI.js.map → init-DGC3XtNO.js.map} +1 -1
  19. package/dist/panels/CollectionMapPanel.d.ts +8 -0
  20. package/dist/panels/CollectionMapPanel.d.ts.map +1 -1
  21. package/dist/panels/PackageCompositionPanel.d.ts.map +1 -1
  22. package/dist/panels/components/DependencyRow.d.ts.map +1 -1
  23. package/dist/panels/components/PackageDetailCard.d.ts.map +1 -1
  24. package/dist/panels/components/index.d.ts +1 -1
  25. package/dist/panels/components/index.d.ts.map +1 -1
  26. package/dist/panels/overworld-map/OverworldMapPanel.d.ts +4 -0
  27. package/dist/panels/overworld-map/OverworldMapPanel.d.ts.map +1 -1
  28. package/dist/panels/overworld-map/components/IsometricInteractionManager.d.ts +18 -1
  29. package/dist/panels/overworld-map/components/IsometricInteractionManager.d.ts.map +1 -1
  30. package/dist/panels.bundle.js +1 -1
  31. package/dist/utils/envParser.d.ts.map +1 -1
  32. package/dist/webworkerAll-BmgxtxZy.js +3 -0
  33. package/dist/webworkerAll-BmgxtxZy.js.map +1 -0
  34. package/package.json +1 -1
  35. package/dist/webworkerAll-BXVEg9Ze.js +0 -3
  36. package/dist/webworkerAll-BXVEg9Ze.js.map +0 -1
@@ -1617,7 +1617,7 @@ const DependencyRow = ({ dependency }) => {
1617
1617
  display: "flex",
1618
1618
  alignItems: "center",
1619
1619
  justifyContent: "space-between",
1620
- padding: `${theme2.space[3]}px ${theme2.space[4]}px`,
1620
+ padding: `${theme2.space[3]}px ${theme2.space[2]}px`,
1621
1621
  backgroundColor: theme2.colors.background,
1622
1622
  borderRadius: 0,
1623
1623
  fontSize: `${theme2.fontSizes[1]}px`,
@@ -1694,7 +1694,16 @@ const DependencyRow = ({ dependency }) => {
1694
1694
  children: copied ? /* @__PURE__ */ jsx(Check$1, { size: 12 }) : /* @__PURE__ */ jsx(Copy$1, { size: 12 })
1695
1695
  }
1696
1696
  ),
1697
- /* @__PURE__ */ jsx("span", { style: { color: theme2.colors.textSecondary, fontFamily: theme2.fonts.body }, children: dependency.version })
1697
+ /* @__PURE__ */ jsx(
1698
+ "span",
1699
+ {
1700
+ style: {
1701
+ color: theme2.colors.textSecondary,
1702
+ fontFamily: theme2.fonts.body
1703
+ },
1704
+ children: dependency.version
1705
+ }
1706
+ )
1698
1707
  ]
1699
1708
  }
1700
1709
  )
@@ -2637,7 +2646,9 @@ function parseDotEnv(content2) {
2637
2646
  required = true;
2638
2647
  } else if (lowerComment.includes("required")) {
2639
2648
  required = true;
2640
- descriptionParts.push(comment2.replace(/\s*\(?\s*required\s*\)?\s*/gi, "").trim());
2649
+ descriptionParts.push(
2650
+ comment2.replace(/\s*\(?\s*required\s*\)?\s*/gi, "").trim()
2651
+ );
2641
2652
  } else {
2642
2653
  descriptionParts.push(comment2);
2643
2654
  }
@@ -3378,7 +3389,13 @@ const PackageDetailCard = ({
3378
3389
  /* @__PURE__ */ jsx(
3379
3390
  "div",
3380
3391
  {
3381
- style: { flex: 1, overflow: "auto" },
3392
+ style: {
3393
+ flex: 1,
3394
+ overflow: "auto",
3395
+ scrollbarWidth: "none",
3396
+ msOverflowStyle: "none"
3397
+ },
3398
+ className: "hide-scrollbar",
3382
3399
  children: /* @__PURE__ */ jsx(
3383
3400
  "div",
3384
3401
  {
@@ -3929,7 +3946,13 @@ const PackageDetailCard = ({
3929
3946
  /* @__PURE__ */ jsx(
3930
3947
  "div",
3931
3948
  {
3932
- style: { flex: 1, overflow: "auto" },
3949
+ style: {
3950
+ flex: 1,
3951
+ overflow: "auto",
3952
+ scrollbarWidth: "none",
3953
+ msOverflowStyle: "none"
3954
+ },
3955
+ className: "hide-scrollbar",
3933
3956
  children: /* @__PURE__ */ jsx(
3934
3957
  "div",
3935
3958
  {
@@ -105920,7 +105943,7 @@ const browserExt = {
105920
105943
  },
105921
105944
  test: () => true,
105922
105945
  load: async () => {
105923
- await import("./browserAll-DwRNjFsz.js");
105946
+ await import("./browserAll-C1iy5xbx.js");
105924
105947
  }
105925
105948
  };
105926
105949
  const webworkerExt = {
@@ -105931,7 +105954,7 @@ const webworkerExt = {
105931
105954
  },
105932
105955
  test: () => typeof self !== "undefined" && self.WorkerGlobalScope !== void 0,
105933
105956
  load: async () => {
105934
- await import("./webworkerAll-BXVEg9Ze.js");
105957
+ await import("./webworkerAll-BmgxtxZy.js");
105935
105958
  }
105936
105959
  };
105937
105960
  class ObservablePoint {
@@ -118174,19 +118197,19 @@ async function autoDetectRenderer(options) {
118174
118197
  for (let i2 = 0; i2 < preferredOrder.length; i2++) {
118175
118198
  const rendererType = preferredOrder[i2];
118176
118199
  if (rendererType === "webgpu" && await isWebGPUSupported()) {
118177
- const { WebGPURenderer } = await import("./WebGPURenderer-BSTx-5Vd.js");
118200
+ const { WebGPURenderer } = await import("./WebGPURenderer-Dlw7vvZU.js");
118178
118201
  RendererClass = WebGPURenderer;
118179
118202
  finalOptions = { ...options, ...options.webgpu };
118180
118203
  break;
118181
118204
  } else if (rendererType === "webgl" && isWebGLSupported(
118182
118205
  options.failIfMajorPerformanceCaveat ?? AbstractRenderer.defaultOptions.failIfMajorPerformanceCaveat
118183
118206
  )) {
118184
- const { WebGLRenderer } = await import("./WebGLRenderer-Dj-oDZnm.js");
118207
+ const { WebGLRenderer } = await import("./WebGLRenderer-CSpWLo6L.js");
118185
118208
  RendererClass = WebGLRenderer;
118186
118209
  finalOptions = { ...options, ...options.webgl };
118187
118210
  break;
118188
118211
  } else if (rendererType === "canvas") {
118189
- const { CanvasRenderer } = await import("./CanvasRenderer-C7nUvMXE.js");
118212
+ const { CanvasRenderer } = await import("./CanvasRenderer-CPXgnUH1.js");
118190
118213
  RendererClass = CanvasRenderer;
118191
118214
  finalOptions = { ...options, ...options.canvasOptions };
118192
118215
  break;
@@ -133309,8 +133332,10 @@ class IsometricInteractionManager {
133309
133332
  this.sprites = /* @__PURE__ */ new Map();
133310
133333
  this.dragState = null;
133311
133334
  this.hoveredNodeId = null;
133335
+ this.selectedNodeId = null;
133312
133336
  this.draggingEnabled = true;
133313
133337
  this.mapBounds = null;
133338
+ this.hoverColor = 16776960;
133314
133339
  this.onGlobalPointerMove = (event) => {
133315
133340
  var _a, _b;
133316
133341
  if (!this.dragState || !this.dragState.isDragging) return;
@@ -133331,6 +133356,12 @@ class IsometricInteractionManager {
133331
133356
  if (this.wouldCollide(this.dragState.nodeId, { gridX: newGridX, gridY: newGridY })) {
133332
133357
  return;
133333
133358
  }
133359
+ const movedDistance = Math.sqrt(
133360
+ Math.pow(newGridX - this.dragState.spriteStartPos.gridX, 2) + Math.pow(newGridY - this.dragState.spriteStartPos.gridY, 2)
133361
+ );
133362
+ if (movedDistance > 0.5) {
133363
+ this.dragState.hasMoved = true;
133364
+ }
133334
133365
  this.dragState.instance.update(newGridX, newGridY);
133335
133366
  this.updateNearbyHighlights(this.dragState.nodeId, { gridX: newGridX, gridY: newGridY });
133336
133367
  (_b = (_a = this.events).onDragMove) == null ? void 0 : _b.call(_a, this.dragState.nodeId, newGridX, newGridY);
@@ -133350,6 +133381,7 @@ class IsometricInteractionManager {
133350
133381
  this.config = config;
133351
133382
  this.events = events;
133352
133383
  this.mapBounds = config.mapBounds || null;
133384
+ this.selectedColor = config.selectedColor ?? 3900150;
133353
133385
  }
133354
133386
  /**
133355
133387
  * Register a sprite for interaction
@@ -133410,6 +133442,7 @@ class IsometricInteractionManager {
133410
133442
  nodeId,
133411
133443
  instance,
133412
133444
  isDragging: true,
133445
+ hasMoved: false,
133413
133446
  dragStartPos: { x: event.global.x, y: event.global.y },
133414
133447
  spriteStartPos: { gridX: instance.gridPosition.gridX, gridY: instance.gridPosition.gridY },
133415
133448
  nearbySprites: /* @__PURE__ */ new Set()
@@ -133478,9 +133511,9 @@ class IsometricInteractionManager {
133478
133511
  * Finish dragging - snap to grid and cleanup
133479
133512
  */
133480
133513
  finishDrag() {
133481
- var _a, _b;
133514
+ var _a, _b, _c, _d;
133482
133515
  if (!this.dragState) return;
133483
- const { nodeId, instance, nearbySprites } = this.dragState;
133516
+ const { nodeId, instance, nearbySprites, hasMoved } = this.dragState;
133484
133517
  let snappedGridX = Math.round(instance.gridPosition.gridX);
133485
133518
  let snappedGridY = Math.round(instance.gridPosition.gridY);
133486
133519
  const clamped = this.clampToMapBounds(snappedGridX, snappedGridY, instance.size);
@@ -133493,19 +133526,24 @@ class IsometricInteractionManager {
133493
133526
  instance.update(snappedGridX, snappedGridY);
133494
133527
  instance.sprite.cursor = "pointer";
133495
133528
  instance.highlight.cursor = "pointer";
133496
- if (this.hoveredNodeId !== nodeId) {
133529
+ if (this.hoveredNodeId !== nodeId && this.selectedNodeId !== nodeId) {
133497
133530
  instance.highlight.visible = false;
133498
133531
  }
133499
133532
  for (const nearbyId of nearbySprites) {
133500
133533
  const nearbyInstance = this.sprites.get(nearbyId);
133501
- if (nearbyInstance && this.hoveredNodeId !== nearbyId) {
133534
+ if (nearbyInstance && this.hoveredNodeId !== nearbyId && this.selectedNodeId !== nearbyId) {
133502
133535
  nearbyInstance.highlight.visible = false;
133503
133536
  }
133504
133537
  }
133505
133538
  if (this.viewport) {
133506
133539
  this.viewport.plugins.resume("drag");
133507
133540
  }
133508
- (_b = (_a = this.events).onDragEnd) == null ? void 0 : _b.call(_a, nodeId, snappedGridX, snappedGridY);
133541
+ if (hasMoved) {
133542
+ (_b = (_a = this.events).onDragEnd) == null ? void 0 : _b.call(_a, nodeId, snappedGridX, snappedGridY);
133543
+ } else {
133544
+ this.setSelected(nodeId);
133545
+ (_d = (_c = this.events).onClick) == null ? void 0 : _d.call(_c, nodeId);
133546
+ }
133509
133547
  const eventTarget = this.viewport || this.worldContainer;
133510
133548
  eventTarget.off("globalpointermove", this.onGlobalPointerMove);
133511
133549
  eventTarget.off("pointerup", this.onPointerUp);
@@ -133522,14 +133560,16 @@ class IsometricInteractionManager {
133522
133560
  (_b = (_a = this.events).onHover) == null ? void 0 : _b.call(_a, nodeId);
133523
133561
  }
133524
133562
  /**
133525
- * Handle pointer out - hide highlight (unless dragging)
133563
+ * Handle pointer out - hide highlight (unless dragging or selected)
133526
133564
  */
133527
133565
  onPointerOut(nodeId, instance) {
133528
133566
  var _a, _b;
133529
133567
  if (this.hoveredNodeId === nodeId) {
133530
133568
  this.hoveredNodeId = null;
133531
133569
  }
133532
- if (!this.dragState || this.dragState.nodeId !== nodeId) {
133570
+ const isDragging = this.dragState && this.dragState.nodeId === nodeId;
133571
+ const isSelected = this.selectedNodeId === nodeId;
133572
+ if (!isDragging && !isSelected) {
133533
133573
  instance.highlight.visible = false;
133534
133574
  }
133535
133575
  (_b = (_a = this.events).onHoverEnd) == null ? void 0 : _b.call(_a, nodeId);
@@ -133544,6 +133584,55 @@ class IsometricInteractionManager {
133544
133584
  instance.highlight.cursor = enabled ? "pointer" : "default";
133545
133585
  }
133546
133586
  }
133587
+ /**
133588
+ * Set the selected node
133589
+ */
133590
+ setSelected(nodeId) {
133591
+ const previousSelected = this.selectedNodeId;
133592
+ this.selectedNodeId = nodeId;
133593
+ if (previousSelected && previousSelected !== nodeId) {
133594
+ const prevInstance = this.sprites.get(previousSelected);
133595
+ if (prevInstance) {
133596
+ if (this.hoveredNodeId !== previousSelected) {
133597
+ prevInstance.highlight.visible = false;
133598
+ }
133599
+ this.updateHighlightColor(prevInstance, false);
133600
+ }
133601
+ }
133602
+ if (nodeId) {
133603
+ const instance = this.sprites.get(nodeId);
133604
+ if (instance) {
133605
+ instance.highlight.visible = true;
133606
+ this.updateHighlightColor(instance, true);
133607
+ }
133608
+ }
133609
+ }
133610
+ /**
133611
+ * Get the currently selected node ID
133612
+ */
133613
+ getSelectedNodeId() {
133614
+ return this.selectedNodeId;
133615
+ }
133616
+ /**
133617
+ * Update highlight color based on selected state
133618
+ */
133619
+ updateHighlightColor(instance, isSelected) {
133620
+ const color2 = isSelected ? this.selectedColor : this.hoverColor;
133621
+ instance.highlight.clear();
133622
+ const pos = gridToScreen(instance.gridPosition.gridX, instance.gridPosition.gridY);
133623
+ const hoverSize = 4 * instance.size;
133624
+ const tileWidth = hoverSize * (this.config.tileWidth ?? 64);
133625
+ const tileHeight = hoverSize * (this.config.tileHeight ?? 32);
133626
+ instance.highlight.setStrokeStyle({ width: 3, color: color2, alpha: 1 });
133627
+ instance.highlight.setFillStyle({ color: color2, alpha: isSelected ? 0.25 : 0.1 });
133628
+ instance.highlight.moveTo(pos.screenX, pos.screenY - tileHeight / 2);
133629
+ instance.highlight.lineTo(pos.screenX + tileWidth / 2, pos.screenY);
133630
+ instance.highlight.lineTo(pos.screenX, pos.screenY + tileHeight / 2);
133631
+ instance.highlight.lineTo(pos.screenX - tileWidth / 2, pos.screenY);
133632
+ instance.highlight.closePath();
133633
+ instance.highlight.fill();
133634
+ instance.highlight.stroke();
133635
+ }
133547
133636
  /**
133548
133637
  * Check if position would cause boundary overlap with other sprites
133549
133638
  * Boundary size is 4 × size tiles, extending 2 × size in each direction
@@ -134422,6 +134511,8 @@ const OverworldMapPanelContent = ({
134422
134511
  height,
134423
134512
  isLoading = false,
134424
134513
  onProjectMoved,
134514
+ onNodeClicked,
134515
+ selectedNodeId,
134425
134516
  isEditingRegions = false,
134426
134517
  customRegions = [],
134427
134518
  onAddRegion,
@@ -134633,6 +134724,9 @@ const OverworldMapPanelContent = ({
134633
134724
  },
134634
134725
  onDragEnd: (nodeId, gridX, gridY) => {
134635
134726
  onProjectMoved == null ? void 0 : onProjectMoved(nodeId, gridX, gridY);
134727
+ },
134728
+ onClick: (nodeId) => {
134729
+ onNodeClicked == null ? void 0 : onNodeClicked(nodeId);
134636
134730
  }
134637
134731
  }
134638
134732
  );
@@ -135034,6 +135128,11 @@ const OverworldMapPanelContent = ({
135034
135128
  renderPlaceholdersRef.current();
135035
135129
  }
135036
135130
  }, [isEditingRegions]);
135131
+ useEffect(() => {
135132
+ if (interactionRef.current) {
135133
+ interactionRef.current.setSelected(selectedNodeId ?? null);
135134
+ }
135135
+ }, [selectedNodeId]);
135037
135136
  return /* @__PURE__ */ jsxs(
135038
135137
  "div",
135039
135138
  {
@@ -135360,7 +135459,9 @@ const CollectionMapPanelContent = ({
135360
135459
  regionLayout,
135361
135460
  isLoading = false,
135362
135461
  regionCallbacks,
135363
- addRepositoryToCollection
135462
+ addRepositoryToCollection,
135463
+ onRepositoryClicked,
135464
+ selectedRepositoryId
135364
135465
  }) => {
135365
135466
  var _a;
135366
135467
  const customRegions = React2__default.useMemo(
@@ -135853,6 +135954,8 @@ This indicates a sprite was rendered without valid backing data.`
135853
135954
  customRegions,
135854
135955
  collectionKey: collection.id,
135855
135956
  onProjectMoved: handleProjectMoved,
135957
+ onNodeClicked: onRepositoryClicked,
135958
+ selectedNodeId: selectedRepositoryId,
135856
135959
  onViewportReady: handleViewportReady,
135857
135960
  onAddRegion: async (position2) => {
135858
135961
  const order2 = position2.row * 10 + position2.col;
@@ -136017,7 +136120,9 @@ const CollectionMapPanel = ({ context: context2, actions }) => {
136017
136120
  dependencies,
136018
136121
  isLoading,
136019
136122
  regionCallbacks,
136020
- addRepositoryToCollection: actions.addRepositoryToCollection
136123
+ addRepositoryToCollection: actions.addRepositoryToCollection,
136124
+ onRepositoryClicked: actions.onRepositoryClicked,
136125
+ selectedRepositoryId: actions.selectedRepositoryId
136021
136126
  }
136022
136127
  ) });
136023
136128
  };
@@ -137114,4 +137219,4 @@ export {
137114
137219
  UPDATE_PRIORITY as y,
137115
137220
  removeItems as z
137116
137221
  };
137117
- //# sourceMappingURL=index-O-HJOiQ4.js.map
137222
+ //# sourceMappingURL=index-BwWx2Yhi.js.map