@industry-theme/repository-composition-panels 0.7.14 → 0.7.15

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 (120) hide show
  1. package/dist/assets/orchestrators/index.d.ts +28 -0
  2. package/dist/assets/orchestrators/index.d.ts.map +1 -0
  3. package/dist/index.d.ts +35 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/mocks/panelContext.d.ts +24 -0
  6. package/dist/mocks/panelContext.d.ts.map +1 -0
  7. package/dist/panels/CollectionMapPanel.d.ts +132 -0
  8. package/dist/panels/CollectionMapPanel.d.ts.map +1 -0
  9. package/dist/panels/GitChangesPanel.d.ts +48 -0
  10. package/dist/panels/GitChangesPanel.d.ts.map +1 -0
  11. package/dist/panels/PackageCompositionPanel.d.ts +37 -0
  12. package/dist/panels/PackageCompositionPanel.d.ts.map +1 -0
  13. package/dist/panels/SearchPanel.d.ts +33 -0
  14. package/dist/panels/SearchPanel.d.ts.map +1 -0
  15. package/dist/panels/TelemetryCoveragePanel.d.ts +48 -0
  16. package/dist/panels/TelemetryCoveragePanel.d.ts.map +1 -0
  17. package/dist/panels/components/DependencyInfoModal.d.ts +8 -0
  18. package/dist/panels/components/DependencyInfoModal.d.ts.map +1 -0
  19. package/dist/panels/components/DependencyRow.d.ts +8 -0
  20. package/dist/panels/components/DependencyRow.d.ts.map +1 -0
  21. package/dist/panels/components/EmptyDependencies.d.ts +7 -0
  22. package/dist/panels/components/EmptyDependencies.d.ts.map +1 -0
  23. package/dist/panels/components/FilterBar.d.ts +19 -0
  24. package/dist/panels/components/FilterBar.d.ts.map +1 -0
  25. package/dist/panels/components/InheritedConfigIndicator.d.ts +27 -0
  26. package/dist/panels/components/InheritedConfigIndicator.d.ts.map +1 -0
  27. package/dist/panels/components/LensReadinessSection.d.ts +8 -0
  28. package/dist/panels/components/LensReadinessSection.d.ts.map +1 -0
  29. package/dist/panels/components/OrchestratorBadge.d.ts +11 -0
  30. package/dist/panels/components/OrchestratorBadge.d.ts.map +1 -0
  31. package/dist/panels/components/OtherScriptsSection.d.ts +9 -0
  32. package/dist/panels/components/OtherScriptsSection.d.ts.map +1 -0
  33. package/dist/panels/components/PackageDetailCard.d.ts +18 -0
  34. package/dist/panels/components/PackageDetailCard.d.ts.map +1 -0
  35. package/dist/panels/components/PackageLoadingGraph.d.ts +3 -0
  36. package/dist/panels/components/PackageLoadingGraph.d.ts.map +1 -0
  37. package/dist/panels/components/PackageManagerIcon.d.ts +10 -0
  38. package/dist/panels/components/PackageManagerIcon.d.ts.map +1 -0
  39. package/dist/panels/components/PackageSummaryCard.d.ts +10 -0
  40. package/dist/panels/components/PackageSummaryCard.d.ts.map +1 -0
  41. package/dist/panels/components/index.d.ts +11 -0
  42. package/dist/panels/components/index.d.ts.map +1 -0
  43. package/dist/panels/dependency-graph/DependencyGraphPanel.d.ts +20 -0
  44. package/dist/panels/dependency-graph/DependencyGraphPanel.d.ts.map +1 -0
  45. package/dist/panels/dependency-graph/dependencyToCanvas.d.ts +20 -0
  46. package/dist/panels/dependency-graph/dependencyToCanvas.d.ts.map +1 -0
  47. package/dist/panels/dependency-graph/forceLayout.d.ts +38 -0
  48. package/dist/panels/dependency-graph/forceLayout.d.ts.map +1 -0
  49. package/dist/panels/dependency-graph/index.d.ts +5 -0
  50. package/dist/panels/dependency-graph/index.d.ts.map +1 -0
  51. package/dist/panels/overworld-map/BuildingSizeTest.d.ts +11 -0
  52. package/dist/panels/overworld-map/BuildingSizeTest.d.ts.map +1 -0
  53. package/dist/panels/overworld-map/LayoutEngineTest.d.ts +24 -0
  54. package/dist/panels/overworld-map/LayoutEngineTest.d.ts.map +1 -0
  55. package/dist/panels/overworld-map/LicenseSignTest.d.ts +7 -0
  56. package/dist/panels/overworld-map/LicenseSignTest.d.ts.map +1 -0
  57. package/dist/panels/overworld-map/OverworldMapPanel.d.ts +62 -0
  58. package/dist/panels/overworld-map/OverworldMapPanel.d.ts.map +1 -0
  59. package/dist/panels/overworld-map/PackageExpansionTest.d.ts +25 -0
  60. package/dist/panels/overworld-map/PackageExpansionTest.d.ts.map +1 -0
  61. package/dist/panels/overworld-map/RegionEditingTest.d.ts +10 -0
  62. package/dist/panels/overworld-map/RegionEditingTest.d.ts.map +1 -0
  63. package/dist/panels/overworld-map/collaboratorDecoration.d.ts +38 -0
  64. package/dist/panels/overworld-map/collaboratorDecoration.d.ts.map +1 -0
  65. package/dist/panels/overworld-map/components/IsometricInteractionManager.d.ts +159 -0
  66. package/dist/panels/overworld-map/components/IsometricInteractionManager.d.ts.map +1 -0
  67. package/dist/panels/overworld-map/components/IsometricPathManager.d.ts +50 -0
  68. package/dist/panels/overworld-map/components/IsometricPathManager.d.ts.map +1 -0
  69. package/dist/panels/overworld-map/components/IsometricPixiCanvas.d.ts +88 -0
  70. package/dist/panels/overworld-map/components/IsometricPixiCanvas.d.ts.map +1 -0
  71. package/dist/panels/overworld-map/components/IsometricRenderer.d.ts +141 -0
  72. package/dist/panels/overworld-map/components/IsometricRenderer.d.ts.map +1 -0
  73. package/dist/panels/overworld-map/components/RegionTracker.d.ts +62 -0
  74. package/dist/panels/overworld-map/components/RegionTracker.d.ts.map +1 -0
  75. package/dist/panels/overworld-map/components/buildingSpriteGenerator.d.ts +19 -0
  76. package/dist/panels/overworld-map/components/buildingSpriteGenerator.d.ts.map +1 -0
  77. package/dist/panels/overworld-map/components/collaboratorDecorationSprites.d.ts +25 -0
  78. package/dist/panels/overworld-map/components/collaboratorDecorationSprites.d.ts.map +1 -0
  79. package/dist/panels/overworld-map/components/licenseSignSprites.d.ts +122 -0
  80. package/dist/panels/overworld-map/components/licenseSignSprites.d.ts.map +1 -0
  81. package/dist/panels/overworld-map/components/starDecorationSprites.d.ts +18 -0
  82. package/dist/panels/overworld-map/components/starDecorationSprites.d.ts.map +1 -0
  83. package/dist/panels/overworld-map/genericMapper.d.ts +81 -0
  84. package/dist/panels/overworld-map/genericMapper.d.ts.map +1 -0
  85. package/dist/panels/overworld-map/index.d.ts +11 -0
  86. package/dist/panels/overworld-map/index.d.ts.map +1 -0
  87. package/dist/panels/overworld-map/isometricUtils.d.ts +150 -0
  88. package/dist/panels/overworld-map/isometricUtils.d.ts.map +1 -0
  89. package/dist/panels/overworld-map/packageExpansion.d.ts +15 -0
  90. package/dist/panels/overworld-map/packageExpansion.d.ts.map +1 -0
  91. package/dist/panels/overworld-map/spriteGenerator.d.ts +53 -0
  92. package/dist/panels/overworld-map/spriteGenerator.d.ts.map +1 -0
  93. package/dist/panels/overworld-map/spriteLayoutEngine.d.ts +103 -0
  94. package/dist/panels/overworld-map/spriteLayoutEngine.d.ts.map +1 -0
  95. package/dist/panels/overworld-map/starDecoration.d.ts +37 -0
  96. package/dist/panels/overworld-map/starDecoration.d.ts.map +1 -0
  97. package/dist/panels/overworld-map/test-setup.d.ts +6 -0
  98. package/dist/panels/overworld-map/test-setup.d.ts.map +1 -0
  99. package/dist/panels/overworld-map/types.d.ts +228 -0
  100. package/dist/panels/overworld-map/types.d.ts.map +1 -0
  101. package/dist/services/LocalSearchService.d.ts +70 -0
  102. package/dist/services/LocalSearchService.d.ts.map +1 -0
  103. package/dist/tools/index.d.ts +32 -0
  104. package/dist/tools/index.d.ts.map +1 -0
  105. package/dist/tools.bundle.js +106 -0
  106. package/dist/types/composition.d.ts +22 -0
  107. package/dist/types/composition.d.ts.map +1 -0
  108. package/dist/types/dependencies.d.ts +26 -0
  109. package/dist/types/dependencies.d.ts.map +1 -0
  110. package/dist/types/index.d.ts +94 -0
  111. package/dist/types/index.d.ts.map +1 -0
  112. package/dist/utils/envParser.d.ts +29 -0
  113. package/dist/utils/envParser.d.ts.map +1 -0
  114. package/dist/utils/licenseColors.d.ts +13 -0
  115. package/dist/utils/licenseColors.d.ts.map +1 -0
  116. package/dist/utils/repositoryAging.d.ts +26 -0
  117. package/dist/utils/repositoryAging.d.ts.map +1 -0
  118. package/dist/utils/repositoryScaling.d.ts +40 -0
  119. package/dist/utils/repositoryScaling.d.ts.map +1 -0
  120. package/package.json +1 -1
@@ -0,0 +1,150 @@
1
+ /**
2
+ * Isometric rendering utilities for converting between grid and screen coordinates
3
+ */
4
+ import type { Viewport } from 'pixi-viewport';
5
+ import { type GridPoint, type IsometricCoords } from './types';
6
+ export { TILE_SIZE } from './types';
7
+ /**
8
+ * Isometric tile dimensions
9
+ * For 32x32 logical tiles, we use a 2:1 ratio diamond
10
+ */
11
+ export declare const ISO_TILE_WIDTH: number;
12
+ export declare const ISO_TILE_HEIGHT = 32;
13
+ /**
14
+ * Convert grid coordinates to isometric screen coordinates
15
+ * @param gridX Grid X position
16
+ * @param gridY Grid Y position
17
+ * @returns Screen coordinates {screenX, screenY}
18
+ */
19
+ export declare function gridToScreen(gridX: number, gridY: number): IsometricCoords;
20
+ /**
21
+ * Convert screen coordinates back to grid coordinates
22
+ * @param screenX Screen X position
23
+ * @param screenY Screen Y position
24
+ * @returns Grid coordinates {gridX, gridY}
25
+ */
26
+ export declare function screenToGrid(screenX: number, screenY: number): GridPoint;
27
+ /**
28
+ * Get the bounding box for an isometric tile
29
+ * @param gridX Grid X position
30
+ * @param gridY Grid Y position
31
+ * @returns Corner points of the diamond in screen space
32
+ */
33
+ export declare function getTileBounds(gridX: number, gridY: number): {
34
+ top: {
35
+ x: number;
36
+ y: number;
37
+ };
38
+ right: {
39
+ x: number;
40
+ y: number;
41
+ };
42
+ bottom: {
43
+ x: number;
44
+ y: number;
45
+ };
46
+ left: {
47
+ x: number;
48
+ y: number;
49
+ };
50
+ };
51
+ /**
52
+ * Calculate the correct render order (z-index) for isometric tiles
53
+ * Tiles further "back" (higher Y + higher X) should render first
54
+ * @param gridX Grid X position
55
+ * @param gridY Grid Y position
56
+ * @returns Z-index value
57
+ */
58
+ export declare function getIsometricZIndex(gridX: number, gridY: number): number;
59
+ /**
60
+ * Get the center point of a tile in screen coordinates
61
+ * @param gridX Grid X position
62
+ * @param gridY Grid Y position
63
+ * @returns Center point in screen space
64
+ */
65
+ export declare function getTileCenter(gridX: number, gridY: number): IsometricCoords;
66
+ /**
67
+ * Check if a point in screen space is inside an isometric tile
68
+ * @param screenX Screen X coordinate to test
69
+ * @param screenY Screen Y coordinate to test
70
+ * @param gridX Grid X of tile
71
+ * @param gridY Grid Y of tile
72
+ * @returns true if point is inside the diamond
73
+ */
74
+ export declare function isPointInTile(screenX: number, screenY: number, gridX: number, gridY: number): boolean;
75
+ /**
76
+ * Create a path between two grid points for drawing connections
77
+ * Uses simple straight line for now, can be enhanced with pathfinding
78
+ * @param from Starting grid point
79
+ * @param to Ending grid point
80
+ * @param segments Number of segments (for smooth curves)
81
+ * @returns Array of screen coordinates
82
+ */
83
+ export declare function createIsometricPath(from: GridPoint, to: GridPoint, segments?: number): IsometricCoords[];
84
+ /**
85
+ * Calculate the optimal map dimensions to fit all nodes
86
+ * Adds padding around the edges
87
+ * @param nodes Array of grid points
88
+ * @param padding Padding in tiles
89
+ * @returns Map dimensions {width, height}
90
+ */
91
+ export declare function calculateMapBounds(nodes: GridPoint[], padding?: number): {
92
+ width: number;
93
+ height: number;
94
+ };
95
+ /**
96
+ * Offset all grid positions by a delta (useful for centering)
97
+ * @param nodes Array of grid points
98
+ * @param deltaX X offset
99
+ * @param deltaY Y offset
100
+ * @returns New array with offset positions
101
+ */
102
+ export declare function offsetGridPositions(nodes: GridPoint[], deltaX: number, deltaY: number): GridPoint[];
103
+ /**
104
+ * Region bounds for camera calculations
105
+ */
106
+ export interface RegionBounds {
107
+ x: number;
108
+ y: number;
109
+ width: number;
110
+ height: number;
111
+ }
112
+ /**
113
+ * Camera position result for centering on a region
114
+ */
115
+ export interface RegionCameraPosition {
116
+ /** Screen X coordinate to center the camera on */
117
+ centerX: number;
118
+ /** Screen Y coordinate to center the camera on */
119
+ centerY: number;
120
+ /** Width of the region in screen pixels */
121
+ screenWidth: number;
122
+ /** Height of the region in screen pixels */
123
+ screenHeight: number;
124
+ }
125
+ /**
126
+ * Calculate the camera position needed to center on a region
127
+ * This computes the screen coordinates for the center point and the
128
+ * screen dimensions of the region for zoom calculations.
129
+ *
130
+ * @param regionCenterX Grid X coordinate of the region center
131
+ * @param regionCenterY Grid Y coordinate of the region center
132
+ * @param bounds The region bounds in grid coordinates
133
+ * @returns Camera position with center point and screen dimensions
134
+ */
135
+ export declare function calculateRegionCameraPosition(regionCenterX: number, regionCenterY: number, bounds: RegionBounds): RegionCameraPosition;
136
+ /**
137
+ * Convert DOM event coordinates to grid coordinates
138
+ * This handles the full transformation pipeline:
139
+ * 1. DOM event (clientX, clientY) -> viewport screen coords
140
+ * 2. Viewport screen coords -> world coords (accounting for pan/zoom)
141
+ * 3. World coords -> grid coords (isometric conversion)
142
+ *
143
+ * @param clientX DOM event clientX (screen position)
144
+ * @param clientY DOM event clientY (screen position)
145
+ * @param viewport PIXI Viewport instance
146
+ * @param canvasElement The canvas element (for getting bounding rect)
147
+ * @returns Grid coordinates {gridX, gridY}
148
+ */
149
+ export declare function domEventToGridCoords(clientX: number, clientY: number, viewport: Viewport | null, canvasElement: HTMLElement | null): GridPoint;
150
+ //# sourceMappingURL=isometricUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isometricUtils.d.ts","sourceRoot":"","sources":["../../../src/panels/overworld-map/isometricUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAa,KAAK,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAC;AAG1E,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAgB,CAAC;AAC5C,eAAO,MAAM,eAAe,KAAY,CAAC;AAEzC;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,eAAe,CAK1E;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CAOxE;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;;;;;;;;;;;;;;;;;EAYzD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGvE;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,eAAe,CAO3E;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,OAAO,CAST;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,SAAS,EACf,EAAE,EAAE,SAAS,EACb,QAAQ,GAAE,MAAW,GACpB,eAAe,EAAE,CAYnB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,SAAS,EAAE,EAClB,OAAO,GAAE,MAAU,GAClB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAqBnC;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,SAAS,EAAE,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,SAAS,EAAE,CAKb;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAC3C,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,YAAY,GACnB,oBAAoB,CAuBtB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,QAAQ,GAAG,IAAI,EACzB,aAAa,EAAE,WAAW,GAAG,IAAI,GAChC,SAAS,CAoBX"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Package Expansion Utilities
3
+ *
4
+ * Converts repositories with multiple packages into multiple GenericNode instances,
5
+ * with each node sized based on individual package file counts.
6
+ */
7
+ import type { AlexandriaEntryWithMetrics } from '../CollectionMapPanel';
8
+ /**
9
+ * Add package metadata to a repository node for subdivision rendering
10
+ *
11
+ * @param repository - Repository with optional packages array
12
+ * @returns Array of PackageInfo for rendering subdivision, or undefined if no packages
13
+ */
14
+ export declare function extractPackageInfo(repository: AlexandriaEntryWithMetrics): import('./genericMapper').PackageInfo[] | undefined;
15
+ //# sourceMappingURL=packageExpansion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packageExpansion.d.ts","sourceRoot":"","sources":["../../../src/panels/overworld-map/packageExpansion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAwBxE;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,0BAA0B,GACrC,OAAO,iBAAiB,EAAE,WAAW,EAAE,GAAG,SAAS,CAmCrD"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Procedural pixel art sprite generator for placeholder graphics
3
+ * Creates simple isometric tiles and buildings using Canvas API
4
+ */
5
+ import type { BiomeTheme, LocationNodeType } from './types';
6
+ /**
7
+ * Color palettes for different biomes (NES-style limited colors)
8
+ */
9
+ export declare const BIOME_COLORS: Record<BiomeTheme, {
10
+ primary: string;
11
+ secondary: string;
12
+ accent: string;
13
+ }>;
14
+ /**
15
+ * Generate a simple grass background texture (for tiling)
16
+ */
17
+ export declare function generateGrassBackgroundTile(): HTMLCanvasElement;
18
+ /**
19
+ * Generate an isometric grass tile
20
+ */
21
+ export declare function generateGrassTile(theme?: BiomeTheme): HTMLCanvasElement;
22
+ /**
23
+ * Generate an isometric path tile
24
+ */
25
+ export declare function generatePathTile(): HTMLCanvasElement;
26
+ /**
27
+ * Generate an isometric bridge tile (wooden planks over water)
28
+ */
29
+ export declare function generateBridgeTile(): HTMLCanvasElement;
30
+ /**
31
+ * Generate a simple isometric building/location sprite
32
+ */
33
+ export declare function generateLocationSprite(type: LocationNodeType, theme: BiomeTheme, size?: number): HTMLCanvasElement;
34
+ /**
35
+ * Generate a decorative sprite (cloud, tree, etc.)
36
+ */
37
+ export declare function generateDecorativeSprite(type: 'cloud' | 'tree' | 'bush' | 'rock'): HTMLCanvasElement;
38
+ /**
39
+ * Load an image from a URL and draw it to a canvas
40
+ */
41
+ export declare function loadCustomSprite(imagePath: string): Promise<HTMLCanvasElement | null>;
42
+ /**
43
+ * Generate a complete sprite atlas from all tile types
44
+ * Returns a texture map for PixiJS
45
+ * @param customSprites Optional map of sprite keys to custom image paths
46
+ */
47
+ export declare function generateSpriteAtlas(customSprites?: Record<string, string>): Promise<Record<string, HTMLCanvasElement>>;
48
+ /**
49
+ * Synchronous version of generateSpriteAtlas for backwards compatibility
50
+ * Does not support custom sprites
51
+ */
52
+ export declare function generateSpriteAtlasSync(): Record<string, HTMLCanvasElement>;
53
+ //# sourceMappingURL=spriteGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spriteGenerator.d.ts","sourceRoot":"","sources":["../../../src/panels/overworld-map/spriteGenerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,UAAU,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA0BnG,CAAC;AAYF;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,iBAAiB,CA8B/D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,GAAE,UAAoB,GAAG,iBAAiB,CAsBhF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,iBAAiB,CAqBpD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,iBAAiB,CAwCtD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,UAAU,EACjB,IAAI,GAAE,MAAU,GACf,iBAAiB,CAqcnB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,iBAAiB,CAwCpG;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAmB3F;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACrC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CA6E5C;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CA4B3E"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Sprite Layout Engine
3
+ * Handles collision-free placement of sprites in regions using circle packing
4
+ */
5
+ export interface LayoutNode {
6
+ id: string;
7
+ gridX: number;
8
+ gridY: number;
9
+ size: number;
10
+ language?: string;
11
+ lastEditedAt?: string;
12
+ }
13
+ export interface RegionBounds {
14
+ width: number;
15
+ height: number;
16
+ }
17
+ export interface LayoutOptions {
18
+ /** Minimum spacing between sprite boundaries in tiles (default: 0.5) */
19
+ spacing?: number;
20
+ /** Start position offset from top-left (default: boundary radius of first sprite) */
21
+ startOffset?: number;
22
+ }
23
+ /**
24
+ * Layout sprites in a region using circle packing
25
+ * Places sprites starting from top-left, largest first
26
+ *
27
+ * @param nodes - Nodes to layout (must have id and size)
28
+ * @param bounds - Region boundaries
29
+ * @param options - Layout options
30
+ * @returns Array of nodes with assigned positions, and array of nodes that didn't fit
31
+ */
32
+ export declare function layoutSpritesInRegion(nodes: Array<{
33
+ id: string;
34
+ size: number;
35
+ language?: string;
36
+ }>, bounds: RegionBounds, options?: LayoutOptions): {
37
+ placed: LayoutNode[];
38
+ overflow: Array<{
39
+ id: string;
40
+ size: number;
41
+ language?: string;
42
+ }>;
43
+ };
44
+ /**
45
+ * Calculate region capacity metrics
46
+ */
47
+ export interface RegionCapacity {
48
+ totalArea: number;
49
+ usedArea: number;
50
+ remainingArea: number;
51
+ utilization: number;
52
+ isFull: boolean;
53
+ }
54
+ export declare function calculateRegionCapacity(placedNodes: LayoutNode[], bounds: RegionBounds): RegionCapacity;
55
+ /**
56
+ * Region with positioned nodes
57
+ */
58
+ export interface LayoutRegion {
59
+ regionId: string;
60
+ gridPosition: {
61
+ row: number;
62
+ col: number;
63
+ };
64
+ bounds: {
65
+ x: number;
66
+ y: number;
67
+ width: number;
68
+ height: number;
69
+ };
70
+ nodes: LayoutNode[];
71
+ capacity: RegionCapacity;
72
+ ageBucket?: AgeBucket;
73
+ name?: string;
74
+ }
75
+ /**
76
+ * Age bucket definitions for region grouping
77
+ */
78
+ export declare enum AgeBucket {
79
+ LAST_MONTH = "last-month",
80
+ LAST_3_MONTHS = "last-3-months",
81
+ LAST_YEAR = "last-year",
82
+ OLDER = "older"
83
+ }
84
+ /**
85
+ * Layout sprites across multiple regions if needed
86
+ * Groups nodes by age (last edited) before packing:
87
+ * - Last month → First region(s)
88
+ * - Last 3 months → Next region(s)
89
+ * - Last year → Next region(s)
90
+ * - Older → Final region(s)
91
+ *
92
+ * @param nodes - Nodes to layout
93
+ * @param regionSize - Size of each region in tiles (default: 25)
94
+ * @param options - Layout options
95
+ * @returns Array of regions with positioned nodes
96
+ */
97
+ export declare function layoutSpritesMultiRegion(nodes: Array<{
98
+ id: string;
99
+ size: number;
100
+ language?: string;
101
+ lastEditedAt?: string;
102
+ }>, regionSize?: number, options?: LayoutOptions): LayoutRegion[];
103
+ //# sourceMappingURL=spriteLayoutEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spriteLayoutEngine.d.ts","sourceRoot":"","sources":["../../../src/panels/overworld-map/spriteLayoutEngine.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qFAAqF;IACrF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA2FD;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EAC7D,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,aAAkB,GAC1B;IAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CA2B5F;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,UAAU,EAAE,EACzB,MAAM,EAAE,YAAY,GACnB,cAAc,CAoBhB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,QAAQ,EAAE,cAAc,CAAC;IACzB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,oBAAY,SAAS;IACnB,UAAU,eAAe;IACzB,aAAa,kBAAkB;IAC/B,SAAS,cAAc;IACvB,KAAK,UAAU;CAChB;AAyCD;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EACpF,UAAU,GAAE,MAAW,EACvB,OAAO,GAAE,aAAkB,GAC1B,YAAY,EAAE,CAyFhB"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * GitHub Star Decoration System
3
+ * Determines decoration type and visual style based on star count
4
+ */
5
+ export interface StarTier {
6
+ min: number;
7
+ max: number;
8
+ name: string;
9
+ decorationType: 'flag' | 'trophy' | 'statue';
10
+ color: number;
11
+ }
12
+ export declare const STAR_TIERS: StarTier[];
13
+ /**
14
+ * Get the star tier for a given star count
15
+ */
16
+ export declare function getStarTier(stars: number): StarTier | null;
17
+ /**
18
+ * Format star count for display (e.g., 1.2k, 45.3k, 1.2M)
19
+ */
20
+ export declare function formatStarCount(stars: number): string;
21
+ /**
22
+ * Calculate extra size multiplier needed to accommodate star decorations
23
+ * Decorations need roughly 20-30% extra horizontal space
24
+ *
25
+ * @param stars - GitHub star count
26
+ * @returns Extra size multiplier to add (0.0 - 0.4)
27
+ */
28
+ export declare function getDecorationSizeBonus(stars: number): number;
29
+ /**
30
+ * Calculate a scale factor for the star decoration based on absolute count
31
+ * Uses logarithmic scaling to handle wide range of star counts
32
+ *
33
+ * @param stars - GitHub star count
34
+ * @returns Scale factor starting at 0.7, +0.3 per order of magnitude
35
+ */
36
+ export declare function getStarScaleFactor(stars: number): number;
37
+ //# sourceMappingURL=starDecoration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"starDecoration.d.ts","sourceRoot":"","sources":["../../../src/panels/overworld-map/starDecoration.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC7C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,UAAU,EAAE,QAAQ,EA6EhC,CAAC;AAEF;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAU1D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQrD;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAiB5D;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMxD"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Test setup for DOM environment
3
+ * This file is preloaded before running tests to provide browser APIs like Canvas
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=test-setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-setup.d.ts","sourceRoot":"","sources":["../../../src/panels/overworld-map/test-setup.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,228 @@
1
+ /**
2
+ * Core type definitions for 8-bit overworld map
3
+ */
4
+ import type { AgingMetrics } from '../../utils/repositoryAging';
5
+ export declare const TILE_SIZE = 32;
6
+ export declare const ISO_TILE_WIDTH = 32;
7
+ export declare const ISO_TILE_HEIGHT = 16;
8
+ /**
9
+ * Basic point in grid coordinates
10
+ */
11
+ export interface GridPoint {
12
+ gridX: number;
13
+ gridY: number;
14
+ }
15
+ /**
16
+ * Theme/Biome types for different package languages
17
+ */
18
+ export type BiomeTheme = 'grass' | 'desert' | 'water' | 'volcano' | 'ice';
19
+ /**
20
+ * Tile types for the terrain grid
21
+ */
22
+ export type TileType = 'grass' | 'water' | 'path' | 'mountain' | 'sand' | 'ice' | 'lava' | 'empty';
23
+ /**
24
+ * Individual tile in the grid
25
+ */
26
+ export interface Tile {
27
+ x: number;
28
+ y: number;
29
+ type: TileType;
30
+ spriteIndex: number;
31
+ biome: BiomeTheme;
32
+ }
33
+ /**
34
+ * Location node types (different building/landmark types)
35
+ */
36
+ export type LocationNodeType = 'castle' | 'fortress' | 'house' | 'tower' | 'pipe' | 'git-repo' | 'monorepo';
37
+ /**
38
+ * Location node representing a package on the map
39
+ */
40
+ export interface PackageSubdivision {
41
+ name: string;
42
+ size: number;
43
+ sprite: string;
44
+ }
45
+ export interface LocationNode {
46
+ id: string;
47
+ gridX: number;
48
+ gridY: number;
49
+ type: LocationNodeType;
50
+ sprite: string;
51
+ size: number;
52
+ theme: BiomeTheme;
53
+ label: string;
54
+ packageType: 'node' | 'python' | 'cargo' | 'go' | 'package';
55
+ isRoot: boolean;
56
+ color: string;
57
+ aging?: AgingMetrics;
58
+ subdivisions?: PackageSubdivision[];
59
+ customSpritePath?: string;
60
+ stars?: number;
61
+ collaborators?: number;
62
+ license?: string;
63
+ ownerAvatar?: string;
64
+ }
65
+ /**
66
+ * Path connection style
67
+ */
68
+ export type PathStyle = 'dotted' | 'solid' | 'dashed' | 'bridge';
69
+ /**
70
+ * Path connection type
71
+ */
72
+ export type PathConnectionType = 'dependency' | 'dev-dependency';
73
+ /**
74
+ * Connection path between two locations
75
+ */
76
+ export interface PathConnection {
77
+ id: string;
78
+ from: string;
79
+ to: string;
80
+ points: GridPoint[];
81
+ type: PathConnectionType;
82
+ style: PathStyle;
83
+ }
84
+ /**
85
+ * Decorative sprite types
86
+ */
87
+ export type DecorativeSpriteType = 'cloud' | 'tree' | 'bush' | 'rock' | 'flower' | 'mushroom' | 'cactus';
88
+ /**
89
+ * Layer for z-ordering
90
+ */
91
+ export type RenderLayer = 'background' | 'foreground';
92
+ /**
93
+ * Decorative sprite for visual flair
94
+ */
95
+ export interface DecorativeSprite {
96
+ id: string;
97
+ gridX: number;
98
+ gridY: number;
99
+ sprite: DecorativeSpriteType;
100
+ layer: RenderLayer;
101
+ animated?: boolean;
102
+ animationSpeed?: number;
103
+ }
104
+ /**
105
+ * Biome zone definition
106
+ */
107
+ export interface BiomeZone {
108
+ id: string;
109
+ bounds: {
110
+ x: number;
111
+ y: number;
112
+ width: number;
113
+ height: number;
114
+ };
115
+ theme: BiomeTheme;
116
+ backgroundColor: string;
117
+ }
118
+ /**
119
+ * Camera/viewport configuration
120
+ */
121
+ export interface Camera {
122
+ x: number;
123
+ y: number;
124
+ viewportWidth: number;
125
+ viewportHeight: number;
126
+ }
127
+ /**
128
+ * Map limits and configuration
129
+ */
130
+ export declare const MAX_NODES_PER_MAP = 12;
131
+ export declare const MAP_TRANSITION_THRESHOLD = 10;
132
+ export declare const REGION_SIZE_TILES = 25;
133
+ /**
134
+ * Region within a unified map
135
+ */
136
+ export interface MapRegion {
137
+ id: string;
138
+ name: string;
139
+ description?: string;
140
+ gridPosition?: {
141
+ row: number;
142
+ col: number;
143
+ };
144
+ bounds: {
145
+ x: number;
146
+ y: number;
147
+ width: number;
148
+ height: number;
149
+ };
150
+ centerX: number;
151
+ centerY: number;
152
+ nodeIds: string[];
153
+ }
154
+ /**
155
+ * Complete overworld map data structure (unified map with regions)
156
+ */
157
+ export interface OverworldMap {
158
+ width: number;
159
+ height: number;
160
+ tiles: Tile[];
161
+ nodes: LocationNode[];
162
+ paths: PathConnection[];
163
+ decorations?: DecorativeSprite[];
164
+ biomeZones?: BiomeZone[];
165
+ regions: MapRegion[];
166
+ name: string;
167
+ description?: string;
168
+ }
169
+ /**
170
+ * Collection of multiple overworld maps (deprecated - use single map with regions)
171
+ * @deprecated Use OverworldMap with regions instead
172
+ */
173
+ export interface OverworldMapCollection {
174
+ maps: OverworldMap[];
175
+ currentMapIndex: number;
176
+ totalPackages: number;
177
+ }
178
+ /**
179
+ * Isometric coordinate conversion
180
+ */
181
+ export interface IsometricCoords {
182
+ screenX: number;
183
+ screenY: number;
184
+ }
185
+ /**
186
+ * Sprite definition in atlas
187
+ */
188
+ export interface SpriteDefinition {
189
+ name: string;
190
+ x: number;
191
+ y: number;
192
+ width: number;
193
+ height: number;
194
+ }
195
+ /**
196
+ * Sprite atlas/tileset
197
+ */
198
+ export interface SpriteAtlas {
199
+ image?: HTMLImageElement;
200
+ imageUrl?: string;
201
+ sprites: Record<string, SpriteDefinition>;
202
+ tileSize: number;
203
+ }
204
+ /**
205
+ * Map configuration/settings
206
+ */
207
+ export interface MapConfig {
208
+ showGrid: boolean;
209
+ showPaths: boolean;
210
+ showDecorations: boolean;
211
+ enableAnimations: boolean;
212
+ cameraSpeed: number;
213
+ zoomSpeed: number;
214
+ minZoom: number;
215
+ maxZoom: number;
216
+ }
217
+ /**
218
+ * Event types for isometric components
219
+ */
220
+ export interface IsometricDragEvent {
221
+ id: string;
222
+ gridX: number;
223
+ gridY: number;
224
+ }
225
+ export interface IsometricHoverEvent {
226
+ id: string;
227
+ }
228
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/panels/overworld-map/types.ts"],"names":[],"mappings":"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"}