@industry-theme/file-city-panel 0.5.53 → 0.5.54

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 (164) hide show
  1. package/dist/components/ContextContainer.d.ts +40 -0
  2. package/dist/components/ContextContainer.d.ts.map +1 -0
  3. package/dist/components/TourPlayer.d.ts +49 -0
  4. package/dist/components/TourPlayer.d.ts.map +1 -0
  5. package/dist/components/TourPlayerIntegration.d.ts +26 -0
  6. package/dist/components/TourPlayerIntegration.d.ts.map +1 -0
  7. package/dist/components/index.d.ts +7 -0
  8. package/dist/components/index.d.ts.map +1 -0
  9. package/dist/hooks/index.d.ts +3 -0
  10. package/dist/hooks/index.d.ts.map +1 -0
  11. package/dist/hooks/useFuzzyFileSearch.d.ts +24 -0
  12. package/dist/hooks/useFuzzyFileSearch.d.ts.map +1 -0
  13. package/dist/hooks/useTourPlayer.d.ts +55 -0
  14. package/dist/hooks/useTourPlayer.d.ts.map +1 -0
  15. package/dist/index.d.ts +74 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/mocks/MockTTSAdapter.d.ts +85 -0
  18. package/dist/mocks/MockTTSAdapter.d.ts.map +1 -0
  19. package/dist/mocks/mockAudioActions.d.ts +27 -0
  20. package/dist/mocks/mockAudioActions.d.ts.map +1 -0
  21. package/dist/mocks/panelContext.d.ts +36 -0
  22. package/dist/mocks/panelContext.d.ts.map +1 -0
  23. package/dist/panels/CodeCityPanel.d.ts +108 -0
  24. package/dist/panels/CodeCityPanel.d.ts.map +1 -0
  25. package/dist/panels/FeedCodeCityPanel.d.ts +19 -0
  26. package/dist/panels/FeedCodeCityPanel.d.ts.map +1 -0
  27. package/dist/panels/FileCityExplorerPanel/FileCityExplorer/AddToAreaModal.d.ts +14 -0
  28. package/dist/panels/FileCityExplorerPanel/FileCityExplorer/AddToAreaModal.d.ts.map +1 -0
  29. package/dist/panels/FileCityExplorerPanel/FileCityExplorer/AddToScopeModal.d.ts +14 -0
  30. package/dist/panels/FileCityExplorerPanel/FileCityExplorer/AddToScopeModal.d.ts.map +1 -0
  31. package/dist/panels/FileCityExplorerPanel/FileCityExplorer/CommitFileOverlay.d.ts +18 -0
  32. package/dist/panels/FileCityExplorerPanel/FileCityExplorer/CommitFileOverlay.d.ts.map +1 -0
  33. package/dist/panels/FileCityExplorerPanel/FileCityExplorer/FileCityExplorer.d.ts +87 -0
  34. package/dist/panels/FileCityExplorerPanel/FileCityExplorer/FileCityExplorer.d.ts.map +1 -0
  35. package/dist/panels/FileCityExplorerPanel/FileCityExplorer/RecentCommitCard.d.ts +37 -0
  36. package/dist/panels/FileCityExplorerPanel/FileCityExplorer/RecentCommitCard.d.ts.map +1 -0
  37. package/dist/panels/FileCityExplorerPanel/FileCityExplorer/ScopeInfoOverlay.d.ts +10 -0
  38. package/dist/panels/FileCityExplorerPanel/FileCityExplorer/ScopeInfoOverlay.d.ts.map +1 -0
  39. package/dist/panels/FileCityExplorerPanel/FileCityExplorer/WorkingTreeCard.d.ts +32 -0
  40. package/dist/panels/FileCityExplorerPanel/FileCityExplorer/WorkingTreeCard.d.ts.map +1 -0
  41. package/dist/panels/FileCityExplorerPanel/FileCityExplorer/WorkingTreeFileOverlay.d.ts +21 -0
  42. package/dist/panels/FileCityExplorerPanel/FileCityExplorer/WorkingTreeFileOverlay.d.ts.map +1 -0
  43. package/dist/panels/FileCityExplorerPanel/FileCityExplorer/index.d.ts +2 -0
  44. package/dist/panels/FileCityExplorerPanel/FileCityExplorer/index.d.ts.map +1 -0
  45. package/dist/panels/FileCityExplorerPanel/FileCityExplorer/layers.d.ts +22 -0
  46. package/dist/panels/FileCityExplorerPanel/FileCityExplorer/layers.d.ts.map +1 -0
  47. package/dist/panels/FileCityExplorerPanel/FileCityExplorer/pathConversion.d.ts +19 -0
  48. package/dist/panels/FileCityExplorerPanel/FileCityExplorer/pathConversion.d.ts.map +1 -0
  49. package/dist/panels/FileCityExplorerPanel/FileCityExplorer/scopeTreePaths.d.ts +21 -0
  50. package/dist/panels/FileCityExplorerPanel/FileCityExplorer/scopeTreePaths.d.ts.map +1 -0
  51. package/dist/panels/FileCityExplorerPanel/FileCityExplorer/styles.d.ts +9 -0
  52. package/dist/panels/FileCityExplorerPanel/FileCityExplorer/styles.d.ts.map +1 -0
  53. package/dist/panels/FileCityExplorerPanel/FileCityExplorerPanel.d.ts +4 -0
  54. package/dist/panels/FileCityExplorerPanel/FileCityExplorerPanel.d.ts.map +1 -0
  55. package/dist/panels/FileCityExplorerPanel/buildCityDataFromContext.d.ts +34 -0
  56. package/dist/panels/FileCityExplorerPanel/buildCityDataFromContext.d.ts.map +1 -0
  57. package/dist/panels/FileCityExplorerPanel/index.d.ts +4 -0
  58. package/dist/panels/FileCityExplorerPanel/index.d.ts.map +1 -0
  59. package/dist/panels/FileCityExplorerPanel/overlays/FileOverlay.d.ts +11 -0
  60. package/dist/panels/FileCityExplorerPanel/overlays/FileOverlay.d.ts.map +1 -0
  61. package/dist/panels/FileCityExplorerPanel/overlays/MarkdownNotes.d.ts +58 -0
  62. package/dist/panels/FileCityExplorerPanel/overlays/MarkdownNotes.d.ts.map +1 -0
  63. package/dist/panels/FileCityExplorerPanel/overlays/PierreFileView.d.ts +11 -0
  64. package/dist/panels/FileCityExplorerPanel/overlays/PierreFileView.d.ts.map +1 -0
  65. package/dist/panels/FileCityExplorerPanel/overlays/PierreSnippetDiffView.d.ts +28 -0
  66. package/dist/panels/FileCityExplorerPanel/overlays/PierreSnippetDiffView.d.ts.map +1 -0
  67. package/dist/panels/FileCityExplorerPanel/overlays/PierreSnippetView.d.ts +42 -0
  68. package/dist/panels/FileCityExplorerPanel/overlays/PierreSnippetView.d.ts.map +1 -0
  69. package/dist/panels/FileCityExplorerPanel/overlays/SequenceDiagramOverlay.d.ts +15 -0
  70. package/dist/panels/FileCityExplorerPanel/overlays/SequenceDiagramOverlay.d.ts.map +1 -0
  71. package/dist/panels/FileCityExplorerPanel/overlays/SequenceEventDetailOverlay.d.ts +22 -0
  72. package/dist/panels/FileCityExplorerPanel/overlays/SequenceEventDetailOverlay.d.ts.map +1 -0
  73. package/dist/panels/FileCityExplorerPanel/overlays/SequenceFilesOverlay.d.ts +28 -0
  74. package/dist/panels/FileCityExplorerPanel/overlays/SequenceFilesOverlay.d.ts.map +1 -0
  75. package/dist/panels/FileCityExplorerPanel/overlays/SequenceLeaderLine.d.ts +42 -0
  76. package/dist/panels/FileCityExplorerPanel/overlays/SequenceLeaderLine.d.ts.map +1 -0
  77. package/dist/panels/FileCityExplorerPanel/overlays/SequenceMarkdownOverlay.d.ts +44 -0
  78. package/dist/panels/FileCityExplorerPanel/overlays/SequenceMarkdownOverlay.d.ts.map +1 -0
  79. package/dist/panels/FileCityExplorerPanel/overlays/SnippetNotes.d.ts +67 -0
  80. package/dist/panels/FileCityExplorerPanel/overlays/SnippetNotes.d.ts.map +1 -0
  81. package/dist/panels/components/ActivityHeatmapView.d.ts +25 -0
  82. package/dist/panels/components/ActivityHeatmapView.d.ts.map +1 -0
  83. package/dist/panels/components/AgentActivityView.d.ts +29 -0
  84. package/dist/panels/components/AgentActivityView.d.ts.map +1 -0
  85. package/dist/panels/components/BuildingCityLoader.d.ts +11 -0
  86. package/dist/panels/components/BuildingCityLoader.d.ts.map +1 -0
  87. package/dist/panels/components/CommitChangesTree.d.ts +29 -0
  88. package/dist/panels/components/CommitChangesTree.d.ts.map +1 -0
  89. package/dist/panels/components/CoverEditor.d.ts +22 -0
  90. package/dist/panels/components/CoverEditor.d.ts.map +1 -0
  91. package/dist/panels/components/EmptyState.d.ts +12 -0
  92. package/dist/panels/components/EmptyState.d.ts.map +1 -0
  93. package/dist/panels/components/FeedProjectHeader.d.ts +86 -0
  94. package/dist/panels/components/FeedProjectHeader.d.ts.map +1 -0
  95. package/dist/panels/components/FileCardList.d.ts +44 -0
  96. package/dist/panels/components/FileCardList.d.ts.map +1 -0
  97. package/dist/panels/components/FileCityTips.d.ts +7 -0
  98. package/dist/panels/components/FileCityTips.d.ts.map +1 -0
  99. package/dist/panels/components/FileTypesView.d.ts +23 -0
  100. package/dist/panels/components/FileTypesView.d.ts.map +1 -0
  101. package/dist/panels/components/GitChangesCardList.d.ts +29 -0
  102. package/dist/panels/components/GitChangesCardList.d.ts.map +1 -0
  103. package/dist/panels/components/GitChangesTree.d.ts +26 -0
  104. package/dist/panels/components/GitChangesTree.d.ts.map +1 -0
  105. package/dist/panels/components/GitChangesView.d.ts +27 -0
  106. package/dist/panels/components/GitChangesView.d.ts.map +1 -0
  107. package/dist/panels/components/HoverInfoBar.d.ts +29 -0
  108. package/dist/panels/components/HoverInfoBar.d.ts.map +1 -0
  109. package/dist/panels/components/Legend.d.ts +145 -0
  110. package/dist/panels/components/Legend.d.ts.map +1 -0
  111. package/dist/panels/components/LegendTabs.d.ts +35 -0
  112. package/dist/panels/components/LegendTabs.d.ts.map +1 -0
  113. package/dist/panels/components/PackageInfo.d.ts +26 -0
  114. package/dist/panels/components/PackageInfo.d.ts.map +1 -0
  115. package/dist/panels/components/PackageManagerIcon.d.ts +10 -0
  116. package/dist/panels/components/PackageManagerIcon.d.ts.map +1 -0
  117. package/dist/panels/components/PrChangesCardList.d.ts +38 -0
  118. package/dist/panels/components/PrChangesCardList.d.ts.map +1 -0
  119. package/dist/panels/components/PrChangesTree.d.ts +32 -0
  120. package/dist/panels/components/PrChangesTree.d.ts.map +1 -0
  121. package/dist/panels/components/ProjectHeader.d.ts +36 -0
  122. package/dist/panels/components/ProjectHeader.d.ts.map +1 -0
  123. package/dist/panels/components/ProjectInfoHeader.d.ts +47 -0
  124. package/dist/panels/components/ProjectInfoHeader.d.ts.map +1 -0
  125. package/dist/panels/components/ProjectInfoView.d.ts +17 -0
  126. package/dist/panels/components/ProjectInfoView.d.ts.map +1 -0
  127. package/dist/panels/components/QualityMetricsView.d.ts +22 -0
  128. package/dist/panels/components/QualityMetricsView.d.ts.map +1 -0
  129. package/dist/panels/components/ScopesCanvasView.d.ts +17 -0
  130. package/dist/panels/components/ScopesCanvasView.d.ts.map +1 -0
  131. package/dist/panels/components/SearchResultsView.d.ts +19 -0
  132. package/dist/panels/components/SearchResultsView.d.ts.map +1 -0
  133. package/dist/panels/components/StoryboardFilesCardList.d.ts +28 -0
  134. package/dist/panels/components/StoryboardFilesCardList.d.ts.map +1 -0
  135. package/dist/panels/components/StoryboardFilesTree.d.ts +26 -0
  136. package/dist/panels/components/StoryboardFilesTree.d.ts.map +1 -0
  137. package/dist/panels/components/StoryboardView.d.ts +38 -0
  138. package/dist/panels/components/StoryboardView.d.ts.map +1 -0
  139. package/dist/panels/index.d.ts +4 -0
  140. package/dist/panels/index.d.ts.map +1 -0
  141. package/dist/panels/stress-test-data.d.ts +40 -0
  142. package/dist/panels/stress-test-data.d.ts.map +1 -0
  143. package/dist/panels/utils/cityData.d.ts +5 -0
  144. package/dist/panels/utils/cityData.d.ts.map +1 -0
  145. package/dist/panels/utils/qualityLayers.d.ts +119 -0
  146. package/dist/panels/utils/qualityLayers.d.ts.map +1 -0
  147. package/dist/tools/index.d.ts +32 -0
  148. package/dist/tools/index.d.ts.map +1 -0
  149. package/dist/tools.bundle.js +103 -0
  150. package/dist/types/FileCityExplorerPanel.d.ts +132 -0
  151. package/dist/types/FileCityExplorerPanel.d.ts.map +1 -0
  152. package/dist/types/Scope.d.ts +94 -0
  153. package/dist/types/Scope.d.ts.map +1 -0
  154. package/dist/types/SequenceDiagram.d.ts +306 -0
  155. package/dist/types/SequenceDiagram.d.ts.map +1 -0
  156. package/dist/types/TextToSpeech.d.ts +118 -0
  157. package/dist/types/TextToSpeech.d.ts.map +1 -0
  158. package/dist/types/TourExtensions.d.ts +28 -0
  159. package/dist/types/TourExtensions.d.ts.map +1 -0
  160. package/dist/types/index.d.ts +204 -0
  161. package/dist/types/index.d.ts.map +1 -0
  162. package/dist/utils/index.d.ts +3 -0
  163. package/dist/utils/index.d.ts.map +1 -0
  164. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AddToAreaModal.d.ts","sourceRoot":"","sources":["../../../../src/panels/FileCityExplorerPanel/FileCityExplorer/AddToAreaModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAIrE,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,WAAW,EAAE,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAgQA,CAAC"}
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import type { ScopeRecord } from '../../../types/Scope';
3
+ export declare const AddToScopeModal: React.FC<{
4
+ path: string;
5
+ scopes: readonly ScopeRecord[];
6
+ scopeId: string;
7
+ namespaceName: string;
8
+ onScopeIdChange: (value: string) => void;
9
+ onNamespaceNameChange: (value: string) => void;
10
+ onPickExisting: (scopeId: string, namespaceName: string) => void;
11
+ onSubmit: () => void;
12
+ onClose: () => void;
13
+ }>;
14
+ //# sourceMappingURL=AddToScopeModal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AddToScopeModal.d.ts","sourceRoot":"","sources":["../../../../src/panels/FileCityExplorerPanel/FileCityExplorer/AddToScopeModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIxD,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,qBAAqB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IACjE,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAgTA,CAAC"}
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ export interface CommitFileOverlayProps {
3
+ /** Host-supplied diff fetcher; the closure binds the repository
4
+ * identifier so this overlay only knows the commit hash. */
5
+ getCommitDiff: (commitHash: string) => Promise<string>;
6
+ commitHash: string;
7
+ /** Repo-relative path that was clicked (post-rename). */
8
+ filePath: string;
9
+ onClose: () => void;
10
+ onOpenInTab?: () => void;
11
+ }
12
+ /**
13
+ * Slide-in overlay that fetches the commit diff once per commit and renders
14
+ * the `FileDiff` for the selected path. Mirrors `FileOverlay`'s visual idiom so
15
+ * commit diffs and file previews feel like the same surface.
16
+ */
17
+ export declare const CommitFileOverlay: React.FC<CommitFileOverlayProps>;
18
+ //# sourceMappingURL=CommitFileOverlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommitFileOverlay.d.ts","sourceRoot":"","sources":["../../../../src/panels/FileCityExplorerPanel/FileCityExplorer/CommitFileOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,MAAM,WAAW,sBAAsB;IACrC;iEAC6D;IAC7D,aAAa,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CA4Q9D,CAAC"}
@@ -0,0 +1,87 @@
1
+ import React from 'react';
2
+ import { type CityData } from '@principal-ai/file-city-react';
3
+ import type * as THREE from 'three';
4
+ /**
5
+ * Mirror of `OnCameraFrame` from `@principal-ai/file-city-react`'s internals;
6
+ * not re-exported from the package's public surface.
7
+ */
8
+ type OnCameraFrame = (camera: THREE.Camera, size: {
9
+ width: number;
10
+ height: number;
11
+ }) => void;
12
+ import type { ProjectArea } from '@principal-ai/principal-view-core';
13
+ import type { ScopeRecord } from '../../../types/Scope';
14
+ import type { AddAreaActionInput, AddPathToAreaActionInput, AddToScopeActionInput, LatestCommitSliceData } from '../../../types/FileCityExplorerPanel';
15
+ import type { GitStatusWithFiles } from '@principal-ai/repository-abstraction';
16
+ export interface FileCityExplorerProps {
17
+ /** City data to render in the 3D canvas. */
18
+ cityData: CityData;
19
+ /**
20
+ * Prefix that scopes/namespace paths are stripped of when read out of
21
+ * `cityData` (e.g. `'electron-app/'`). Pass `''` if the city data is already
22
+ * rooted at the project root.
23
+ */
24
+ packageRoot: string;
25
+ /**
26
+ * Initial focused directory (city path). Defaults to the city root derived
27
+ * from `packageRoot` (with trailing slash stripped).
28
+ */
29
+ initialFocusDirectory?: string | null;
30
+ /**
31
+ * Fired when the user wants to open a file — either by clicking a
32
+ * building in the 3D canvas or by selecting a file leaf in the left
33
+ * file tree. The wrapper panel hooks this up to the panel-framework
34
+ * `file:open` event so editors and terminals can react.
35
+ */
36
+ onFileOpen?: (cityPath: string) => void;
37
+ /**
38
+ * Repo label shown in the path header when no directory is focused (e.g.
39
+ * `"owner/repo"`). Used purely for display; doesn't affect path
40
+ * conversion or city geometry.
41
+ */
42
+ repoLabel?: string | null;
43
+ /**
44
+ * Currently-selected sequence-diagram event. When set, paints a
45
+ * single-file highlight layer over the matching building so the
46
+ * sequence overlay can drive selection in the city below.
47
+ */
48
+ sequenceSelection?: {
49
+ sourcePath: string;
50
+ } | null;
51
+ /**
52
+ * Repo-relative paths for every event in the active sequence diagram.
53
+ * When non-empty, the city dims everything outside this set so only the
54
+ * files referenced by the explainer keep their natural color.
55
+ */
56
+ sequenceSourcePaths?: readonly string[] | null;
57
+ /**
58
+ * When true, the elevated folder/scope panels floating above the city
59
+ * are suppressed. Useful when another overlay (like the sequence
60
+ * diagram) should be the primary structure shown.
61
+ */
62
+ hideFolderPanels?: boolean;
63
+ /**
64
+ * Forwarded to `FileCity3D`. Fires once per R3F render frame with the
65
+ * live camera and canvas size; lets the host project building world
66
+ * positions to screen pixels for HTML/SVG overlays (leader lines, etc).
67
+ */
68
+ onCameraFrame?: OnCameraFrame;
69
+ /** Latest commit metadata. `null` hides the RecentCommitCard. */
70
+ latestCommit: LatestCommitSliceData | null;
71
+ /** Working-tree git status. `null` hides the WorkingTreeCard. */
72
+ gitStatusWithFiles: GitStatusWithFiles | null;
73
+ /** Scopes workspace. `null` hides the Scopes tab and disables
74
+ * scope-authoring modals. */
75
+ scopes: readonly ScopeRecord[] | null;
76
+ /** Areas workspace. `null` disables area-authoring modals. */
77
+ areas: readonly ProjectArea[] | null;
78
+ getCommitDiff: (commitHash: string) => Promise<string>;
79
+ getWorkingTreeDiff: () => Promise<string>;
80
+ readFile: (path: string) => Promise<string>;
81
+ addToScope: (input: AddToScopeActionInput) => Promise<void>;
82
+ addArea: (input: AddAreaActionInput) => Promise<void>;
83
+ addPathToArea: (input: AddPathToAreaActionInput) => Promise<void>;
84
+ }
85
+ export declare const FileCityExplorer: React.FC<FileCityExplorerProps>;
86
+ export {};
87
+ //# sourceMappingURL=FileCityExplorer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileCityExplorer.d.ts","sourceRoot":"","sources":["../../../../src/panels/FileCityExplorerPanel/FileCityExplorer/FileCityExplorer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,OAAO,EAIL,KAAK,QAAQ,EAId,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC;;;GAGG;AACH,KAAK,aAAa,GAAG,CACnB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,KACpC,IAAI,CAAC;AACV,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAErE,OAAO,KAAK,EAEV,WAAW,EACZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AA6F/E,MAAM,WAAW,qBAAqB;IACpC,4CAA4C;IAC5C,QAAQ,EAAE,QAAQ,CAAC;IACnB;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAClD;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAC/C;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAI9B,iEAAiE;IACjE,YAAY,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC3C,iEAAiE;IACjE,kBAAkB,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC9C;kCAC8B;IAC9B,MAAM,EAAE,SAAS,WAAW,EAAE,GAAG,IAAI,CAAC;IACtC,8DAA8D;IAC9D,KAAK,EAAE,SAAS,WAAW,EAAE,GAAG,IAAI,CAAC;IAIrC,aAAa,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACvD,kBAAkB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,UAAU,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,OAAO,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,aAAa,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACnE;AAOD,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAy+D5D,CAAC"}
@@ -0,0 +1,37 @@
1
+ import React from 'react';
2
+ export type RecentCommitFileStatus = 'A' | 'M' | 'D' | 'R' | 'C' | 'T';
3
+ export interface RecentCommitFile {
4
+ path: string;
5
+ status: RecentCommitFileStatus;
6
+ }
7
+ export interface RecentCommit {
8
+ sha: string;
9
+ subject: string;
10
+ author: string;
11
+ authoredAt: Date;
12
+ filesChanged: number;
13
+ additions: number;
14
+ deletions: number;
15
+ files: RecentCommitFile[];
16
+ }
17
+ interface RecentCommitCardProps {
18
+ commit: RecentCommit;
19
+ onClick?: () => void;
20
+ /** When true, render a highlighted border so users can see the
21
+ * paired city-highlight layer is active. */
22
+ active?: boolean;
23
+ /** Fired when a row in the expanded file list is clicked. The file's
24
+ * status comes through so deletes can be skipped (no diff to show). */
25
+ onFileClick?: (file: RecentCommitFile) => void;
26
+ /** Fired with the row's repo-relative path and its status color on
27
+ * mouse enter, and `null` on leave. The parent uses the color to paint
28
+ * a darkened hover-highlight that ties the city to the row visually. */
29
+ onFileHoverChange?: (payload: {
30
+ path: string;
31
+ color: string;
32
+ } | null) => void;
33
+ style?: React.CSSProperties;
34
+ }
35
+ export declare const RecentCommitCard: React.FC<RecentCommitCardProps>;
36
+ export {};
37
+ //# sourceMappingURL=RecentCommitCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RecentCommitCard.d.ts","sourceRoot":"","sources":["../../../../src/panels/FileCityExplorerPanel/FileCityExplorer/RecentCommitCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,MAAM,sBAAsB,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEvE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,sBAAsB,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,IAAI,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,gBAAgB,EAAE,CAAC;CAC3B;AAED,UAAU,qBAAqB;IAC7B,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;iDAC6C;IAC7C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;4EACwE;IACxE,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC/C;;6EAEyE;IACzE,iBAAiB,CAAC,EAAE,CAClB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,KAC5C,IAAI,CAAC;IACV,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAcD,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAsO5D,CAAC"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import type { EventRecord, NamespaceRecord, ScopeRecord } from '../../../types/Scope';
3
+ export declare const ScopeInfoOverlay: React.FC<{
4
+ info: {
5
+ scope: ScopeRecord;
6
+ ns: NamespaceRecord | null;
7
+ ev: EventRecord | null;
8
+ };
9
+ }>;
10
+ //# sourceMappingURL=ScopeInfoOverlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScopeInfoOverlay.d.ts","sourceRoot":"","sources":["../../../../src/panels/FileCityExplorerPanel/FileCityExplorer/ScopeInfoOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,WAAW,EACZ,MAAM,sBAAsB,CAAC;AAI9B,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,IAAI,EAAE;QAAE,KAAK,EAAE,WAAW,CAAC;QAAC,EAAE,EAAE,eAAe,GAAG,IAAI,CAAC;QAAC,EAAE,EAAE,WAAW,GAAG,IAAI,CAAA;KAAE,CAAC;CAClF,CA6NA,CAAC"}
@@ -0,0 +1,32 @@
1
+ import React from 'react';
2
+ export type WorkingTreeFileStatus = 'A' | 'M' | 'D';
3
+ export interface WorkingTreeFile {
4
+ path: string;
5
+ status: WorkingTreeFileStatus;
6
+ /** True when at least one change to this path is staged. */
7
+ staged: boolean;
8
+ }
9
+ export interface WorkingTreeChanges {
10
+ branch: string;
11
+ ahead: number;
12
+ behind: number;
13
+ filesChanged: number;
14
+ files: WorkingTreeFile[];
15
+ }
16
+ interface WorkingTreeCardProps {
17
+ changes: WorkingTreeChanges;
18
+ onClick?: () => void;
19
+ active?: boolean;
20
+ onFileClick?: (file: WorkingTreeFile) => void;
21
+ /** Fired with the row's repo-relative path and its status color on
22
+ * mouse enter, and `null` on leave. The parent uses the color to paint
23
+ * a darkened hover-highlight that ties the city to the row visually. */
24
+ onFileHoverChange?: (payload: {
25
+ path: string;
26
+ color: string;
27
+ } | null) => void;
28
+ style?: React.CSSProperties;
29
+ }
30
+ export declare const WorkingTreeCard: React.FC<WorkingTreeCardProps>;
31
+ export {};
32
+ //# sourceMappingURL=WorkingTreeCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkingTreeCard.d.ts","sourceRoot":"","sources":["../../../../src/panels/FileCityExplorerPanel/FileCityExplorer/WorkingTreeCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,MAAM,qBAAqB,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEpD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,qBAAqB,CAAC;IAC9B,4DAA4D;IAC5D,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B;AAED,UAAU,oBAAoB;IAC5B,OAAO,EAAE,kBAAkB,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IAC9C;;6EAEyE;IACzE,iBAAiB,CAAC,EAAE,CAClB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,KAC5C,IAAI,CAAC;IACV,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAgO1D,CAAC"}
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ export interface WorkingTreeFileOverlayProps {
3
+ /** Host-supplied diff fetcher. Returns the unified-diff text for the
4
+ * current working tree (typically `git diff HEAD`). */
5
+ getWorkingTreeDiff: () => Promise<string>;
6
+ /** Host-supplied file reader. Used as a fallback for untracked files
7
+ * (which `git diff HEAD` skips). The host normalizes the path. */
8
+ readFile: (path: string) => Promise<string>;
9
+ /** Repo-relative path that was clicked. */
10
+ filePath: string;
11
+ onClose: () => void;
12
+ onOpenInTab?: () => void;
13
+ }
14
+ /**
15
+ * Slide-in twin of `CommitFileOverlay` but driven by the working-tree diff
16
+ * instead of a commit-specific one. Untracked files won't appear in the
17
+ * patch (no HEAD baseline) — the fallback reads the file via
18
+ * `actions.readFile` and synthesizes an all-additions patch.
19
+ */
20
+ export declare const WorkingTreeFileOverlay: React.FC<WorkingTreeFileOverlayProps>;
21
+ //# sourceMappingURL=WorkingTreeFileOverlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkingTreeFileOverlay.d.ts","sourceRoot":"","sources":["../../../../src/panels/FileCityExplorerPanel/FileCityExplorer/WorkingTreeFileOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAwC1B,MAAM,WAAW,2BAA2B;IAC1C;4DACwD;IACxD,kBAAkB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C;uEACmE;IACnE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC,2BAA2B,CAmSxE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { FileCityExplorer, type FileCityExplorerProps } from './FileCityExplorer';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/panels/FileCityExplorerPanel/FileCityExplorer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { HighlightLayer } from '@principal-ai/file-city-react';
2
+ import type { ScopeRecord } from '../../../types/Scope';
3
+ export declare const NAMESPACE_PALETTE: string[];
4
+ /**
5
+ * Fallback when a namespace has no `color` set on disk. Read sites use this
6
+ * via `ns.color ?? DEFAULT_NAMESPACE_COLOR` so the UI can render every
7
+ * namespace, including ones authored before colors were captured.
8
+ */
9
+ export declare const DEFAULT_NAMESPACE_COLOR: string;
10
+ /** Colour used for area umbrella tiles and their picker swatches. */
11
+ export declare const AREA_PANEL_COLOR = "#64748b";
12
+ export declare function pickNamespaceColor(scopes: readonly ScopeRecord[]): string;
13
+ /**
14
+ * Build highlight layers for a scope: one fill layer per namespace plus a
15
+ * border-only layer for scope-level paths. Priority is path depth (longest-
16
+ * prefix wins) per the partition convention in docs/scope-namespace-overlay.md.
17
+ *
18
+ * `toCityPath` translates scope-relative paths back to city paths so
19
+ * districts can be matched.
20
+ */
21
+ export declare function buildLayersForScope(scope: ScopeRecord, toCityPath: (scopePath: string) => string): HighlightLayer[];
22
+ //# sourceMappingURL=layers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layers.d.ts","sourceRoot":"","sources":["../../../../src/panels/FileCityExplorerPanel/FileCityExplorer/layers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,eAAO,MAAM,iBAAiB,UAW7B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,QAAuB,CAAC;AAE5D,qEAAqE;AACrE,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAE1C,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,GAAG,MAAM,CAMzE;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,WAAW,EAClB,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,GACxC,cAAc,EAAE,CAiClB"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Path converters for the explorer.
3
+ *
4
+ * City data is rooted at `packageRoot` (e.g. `electron-app/`). Scope/namespace
5
+ * paths are authored relative to the package root (matching how principal-view
6
+ * canvases are stored). These converters round-trip between the two
7
+ * representations.
8
+ *
9
+ * `packageRoot` should include a trailing slash. Pass `''` if the city data
10
+ * is already rooted at the project root.
11
+ */
12
+ export interface PathConverters {
13
+ /** City path → scope/namespace path (strip the package-root prefix). */
14
+ toScopePath: (cityPath: string) => string;
15
+ /** Scope/namespace path → city path (re-add the package-root prefix). */
16
+ toCityPath: (scopePath: string) => string;
17
+ }
18
+ export declare function createPathConverters(packageRoot: string): PathConverters;
19
+ //# sourceMappingURL=pathConversion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pathConversion.d.ts","sourceRoot":"","sources":["../../../../src/panels/FileCityExplorerPanel/FileCityExplorer/pathConversion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,cAAc;IAC7B,wEAAwE;IACxE,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IAC1C,yEAAyE;IACzE,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;CAC3C;AAED,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CAYxE"}
@@ -0,0 +1,21 @@
1
+ import type { ScopeRecord } from '../../../types/Scope';
2
+ export interface ScopeTreeSelection {
3
+ scopeId: string;
4
+ namespaceName?: string;
5
+ eventName?: string;
6
+ }
7
+ /**
8
+ * Sentinel leaves used when a scope has no namespaces or a namespace has no
9
+ * events — the trees library infers directories from paths, so empty branches
10
+ * need a placeholder leaf to render.
11
+ */
12
+ export declare const EMPTY_NS_SENTINEL = "(no namespaces)";
13
+ export declare const EMPTY_EVENTS_SENTINEL = "(no events)";
14
+ /**
15
+ * Build canonical paths for the scope tree: `<scope.name>/<namespace.name>/<event.name>`.
16
+ * Scopes are top-level directories, namespaces children, events leaves.
17
+ * Empty scopes/namespaces emit a sentinel leaf so they still appear.
18
+ */
19
+ export declare function buildScopeTreePaths(scopes: readonly ScopeRecord[]): string[];
20
+ export declare function parseScopeTreePath(path: string): ScopeTreeSelection;
21
+ //# sourceMappingURL=scopeTreePaths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scopeTreePaths.d.ts","sourceRoot":"","sources":["../../../../src/panels/FileCityExplorerPanel/FileCityExplorer/scopeTreePaths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,oBAAoB,CAAC;AACnD,eAAO,MAAM,qBAAqB,gBAAgB,CAAC;AAEnD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,GAAG,MAAM,EAAE,CAkB5E;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAUnE"}
@@ -0,0 +1,9 @@
1
+ import type React from 'react';
2
+ import type { Theme } from '@principal-ade/industry-theme';
3
+ /** Translucent overlay using the theme's background colour. */
4
+ export declare const withAlpha: (color: string, percent: number) => string;
5
+ /** Reused across overlays, modals, and the selected-folder card. */
6
+ export declare const makeSectionLabelStyle: (theme: Theme) => React.CSSProperties;
7
+ /** Frame style for the right-side info overlay. */
8
+ export declare const makeOverlayStyle: (theme: Theme) => React.CSSProperties;
9
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/panels/FileCityExplorerPanel/FileCityExplorer/styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAE3D,+DAA+D;AAC/D,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,EAAE,SAAS,MAAM,KAAG,MACD,CAAC;AAE3D,oEAAoE;AACpE,eAAO,MAAM,qBAAqB,GAAI,OAAO,KAAK,KAAG,KAAK,CAAC,aAKzD,CAAC;AAEH,mDAAmD;AACnD,eAAO,MAAM,gBAAgB,GAAI,OAAO,KAAK,KAAG,KAAK,CAAC,aAiBpD,CAAC"}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import type { FileCityExplorerPanelPropsTyped } from '../../types/FileCityExplorerPanel';
3
+ export declare const FileCityExplorerPanel: React.FC<FileCityExplorerPanelPropsTyped>;
4
+ //# sourceMappingURL=FileCityExplorerPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileCityExplorerPanel.d.ts","sourceRoot":"","sources":["../../../src/panels/FileCityExplorerPanel/FileCityExplorerPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AA+B1B,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AAoCzF,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,+BAA+B,CAikB3E,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { type CityData } from '@principal-ai/file-city-builder';
2
+ import type { FileTree as RepoFileTree } from '@principal-ai/repository-abstraction';
3
+ export interface BuildCityDataInput {
4
+ fileTree: RepoFileTree;
5
+ /**
6
+ * Pre-computed file line counts keyed by repo-relative path (the
7
+ * shape `LineCountsSliceData.lineCounts` produces). Pass `null`/
8
+ * `undefined` to fall back to the heuristic estimator.
9
+ */
10
+ lineCounts?: Record<string, number> | null;
11
+ }
12
+ /**
13
+ * Builds `CityData` from a repo file tree.
14
+ *
15
+ * Building paths come out repo-relative (e.g. `src/x.ts`), matching the
16
+ * documented `LayerItem.path` contract ("relative to repository root"). We
17
+ * deliberately pass an empty `rootPath` into the city builder so it doesn't
18
+ * leak the `FileTree`'s generated `metadata.id`
19
+ * (`git-<sha>-<dirty>-<ts>`) onto every building.
20
+ *
21
+ * When real line counts are supplied via the `lineCounts` slice, building
22
+ * heights reflect them; otherwise we fall back to a heuristic estimate so
23
+ * the city still renders.
24
+ */
25
+ export declare function buildCityDataFromContext(input: BuildCityDataInput): CityData;
26
+ /**
27
+ * Strip the `FileTree`'s generated `rootPath` (`git-<sha>-<dirty>-<ts>`)
28
+ * from a path. Kept for callers that still see prefixed paths (e.g.
29
+ * file-tree selection paths sourced from `tree.allFiles[].path`). Building
30
+ * paths produced by `buildCityDataFromContext` are already repo-relative so
31
+ * this is a no-op there.
32
+ */
33
+ export declare function stripRootPath(path: string, rootPath: string): string;
34
+ //# sourceMappingURL=buildCityDataFromContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildCityDataFromContext.d.ts","sourceRoot":"","sources":["../../../src/panels/FileCityExplorerPanel/buildCityDataFromContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EACd,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAMrF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,YAAY,CAAC;IACvB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;CAC5C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,kBAAkB,GACxB,QAAQ,CAQV;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKpE"}
@@ -0,0 +1,4 @@
1
+ export { FileCityExplorerPanel } from './FileCityExplorerPanel';
2
+ export { buildCityDataFromContext, stripRootPath, type BuildCityDataInput, } from './buildCityDataFromContext';
3
+ export { FileCityExplorer, type FileCityExplorerProps, } from './FileCityExplorer';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/panels/FileCityExplorerPanel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,wBAAwB,EACxB,aAAa,EACb,KAAK,kBAAkB,GACxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,GAC3B,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ export interface FileOverlayProps {
3
+ filePath: string;
4
+ fileName: string;
5
+ /** Host-supplied file reader, forwarded to PierreFileView. */
6
+ readFile: (path: string) => Promise<string>;
7
+ onClose: () => void;
8
+ onOpenInTab?: () => void;
9
+ }
10
+ export declare const FileOverlay: React.FC<FileOverlayProps>;
11
+ //# sourceMappingURL=FileOverlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileOverlay.d.ts","sourceRoot":"","sources":["../../../../src/panels/FileCityExplorerPanel/overlays/FileOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAMD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAkKlD,CAAC"}
@@ -0,0 +1,58 @@
1
+ import React from 'react';
2
+ export interface MarkdownNote {
3
+ id: string;
4
+ /** themed-markdown anchor — same shape we send back via the API. */
5
+ anchor: {
6
+ exact: string;
7
+ prefix?: string;
8
+ suffix?: string;
9
+ };
10
+ body: string;
11
+ author?: string;
12
+ /** ms epoch — projection from the persisted ISO string. */
13
+ createdAt: number;
14
+ }
15
+ export type MarkdownNotesSelection = {
16
+ kind: 'thread';
17
+ noteId: string;
18
+ } | {
19
+ kind: 'composer';
20
+ anchor: {
21
+ exact: string;
22
+ prefix?: string;
23
+ suffix?: string;
24
+ };
25
+ };
26
+ interface SelectionPillProps {
27
+ /** Pixel rect of the current selection in the parent container's coords. */
28
+ rect: {
29
+ left: number;
30
+ top: number;
31
+ right: number;
32
+ bottom: number;
33
+ };
34
+ onClick: () => void;
35
+ }
36
+ /**
37
+ * Floating "Add note" pill that hovers above (or just below) the active text
38
+ * selection. Position is computed by the parent — this component just paints.
39
+ */
40
+ export declare const MarkdownSelectionPill: React.FC<SelectionPillProps>;
41
+ interface NotePanelProps {
42
+ selection: MarkdownNotesSelection;
43
+ notes: MarkdownNote[];
44
+ style: React.CSSProperties;
45
+ onClose: () => void;
46
+ /** Submit composer with the pending anchor. */
47
+ onSubmitNote: (anchor: {
48
+ exact: string;
49
+ prefix?: string;
50
+ suffix?: string;
51
+ }, body: string) => void;
52
+ /** Reply to an existing thread; replies share the head's anchor. */
53
+ onReplyNote: (noteId: string, body: string) => void;
54
+ onDeleteNote: (id: string) => void;
55
+ }
56
+ export declare const MarkdownNotePanel: React.FC<NotePanelProps>;
57
+ export {};
58
+ //# sourceMappingURL=MarkdownNotes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarkdownNotes.d.ts","sourceRoot":"","sources":["../../../../src/panels/FileCityExplorerPanel/overlays/MarkdownNotes.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,oEAAoE;IACpE,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,sBAAsB,GAC9B;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAClC;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7D,CAAC;AAsBN,UAAU,kBAAkB;IAC1B,4EAA4E;IAC5E,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACnE,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA4C9D,CAAC;AAEF,UAAU,cAAc;IACtB,SAAS,EAAE,sBAAsB,CAAC;IAClC,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,+CAA+C;IAC/C,YAAY,EAAE,CACZ,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,EAC3D,IAAI,EAAE,MAAM,KACT,IAAI,CAAC;IACV,oEAAoE;IACpE,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAqKtD,CAAC"}
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ export interface PierreFileViewProps {
3
+ filePath: string;
4
+ fileName: string;
5
+ /** Host-supplied file reader (closures bind any path-normalization). */
6
+ readFile: (path: string) => Promise<string>;
7
+ /** Override Pierre's container background. Any CSS color string. */
8
+ background?: string;
9
+ }
10
+ export declare const PierreFileView: React.FC<PierreFileViewProps>;
11
+ //# sourceMappingURL=PierreFileView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PierreFileView.d.ts","sourceRoot":"","sources":["../../../../src/panels/FileCityExplorerPanel/overlays/PierreFileView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAsDxD,CAAC"}
@@ -0,0 +1,28 @@
1
+ import React from 'react';
2
+ export type PierreSnippetDiffStyle = 'unified' | 'split';
3
+ export interface PierreSnippetDiffViewProps {
4
+ /** File name used for display + syntax-highlighting language inference. */
5
+ fileName: string;
6
+ /** Pre-change file contents. Pass the full file or a pre-sliced window. */
7
+ oldContents: string;
8
+ /** Post-change file contents. Should align line-wise with `oldContents`. */
9
+ newContents: string;
10
+ /**
11
+ * Optional snippet window applied to both contents before diffing
12
+ * (1-based, inclusive). Use this when `oldContents`/`newContents` are full
13
+ * files and you want the diff scoped to a region. When omitted, the entire
14
+ * diff is rendered.
15
+ */
16
+ startLine?: number;
17
+ endLine?: number;
18
+ /** Line in the post-change window to call out (1-based, relative to the new file). */
19
+ focusLine?: number;
20
+ /** Lines of unchanged context to keep above/below the snippet window. Default 2. */
21
+ contextLines?: number;
22
+ /** Override Pierre's container background. Any CSS color string. */
23
+ background?: string;
24
+ /** Side-by-side or unified rendering. Defaults to `'unified'`. */
25
+ diffStyle?: PierreSnippetDiffStyle;
26
+ }
27
+ export declare const PierreSnippetDiffView: React.FC<PierreSnippetDiffViewProps>;
28
+ //# sourceMappingURL=PierreSnippetDiffView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PierreSnippetDiffView.d.ts","sourceRoot":"","sources":["../../../../src/panels/FileCityExplorerPanel/overlays/PierreSnippetDiffView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,OAAO,CAAC;AAEzD,MAAM,WAAW,0BAA0B;IACzC,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,WAAW,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sFAAsF;IACtF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oFAAoF;IACpF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,SAAS,CAAC,EAAE,sBAAsB,CAAC;CACpC;AA8CD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CA8FtE,CAAC"}
@@ -0,0 +1,42 @@
1
+ import React from 'react';
2
+ import { type SnippetNote } from './SnippetNotes';
3
+ export interface PierreSnippetViewProps {
4
+ filePath: string;
5
+ fileName: string;
6
+ /** First line of the snippet (1-based, inclusive). */
7
+ startLine: number;
8
+ /** Last line of the snippet (1-based, inclusive). */
9
+ endLine: number;
10
+ /** Line to call out as the focus point; defaults to `startLine`. */
11
+ focusLine?: number;
12
+ /** Lines of context above/below the snippet; defaults to 2. */
13
+ contextLines?: number;
14
+ /** Host-supplied file reader. */
15
+ readFile: (path: string) => Promise<string>;
16
+ /** Override Pierre's container background. Any CSS color string. */
17
+ background?: string;
18
+ /** Notes anchored to absolute file ranges. */
19
+ notes?: SnippetNote[];
20
+ /** Thread whose notes panel is currently open (renders matching indicators as active). */
21
+ activeThreadKey?: string | null;
22
+ /** While true, indicators are dimmed and don't respond to clicks. */
23
+ composerOpen?: boolean;
24
+ /** Open the side panel in thread-view mode for the given threadKey. */
25
+ onOpenThread?: (threadKey: string) => void;
26
+ /** Close the side panel — wired to indicator clicks on the active thread. */
27
+ onCloseThread?: () => void;
28
+ /**
29
+ * Open or extend the side panel composer with a range. Called when the
30
+ * user uses Pierre's gutter "+" (with or without a multi-line drag-select).
31
+ * The line text endpoints are captured so the consumer can persist them as
32
+ * re-anchor fingerprints on the note's anchor.
33
+ */
34
+ onOpenComposer?: (input: {
35
+ startLine: number;
36
+ endLine: number;
37
+ startLineText: string;
38
+ endLineText: string;
39
+ }) => void;
40
+ }
41
+ export declare const PierreSnippetView: React.FC<PierreSnippetViewProps>;
42
+ //# sourceMappingURL=PierreSnippetView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PierreSnippetView.d.ts","sourceRoot":"","sources":["../../../../src/panels/FileCityExplorerPanel/overlays/PierreSnippetView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAEL,KAAK,WAAW,EAEjB,MAAM,gBAAgB,CAAC;AAexB,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IACtB,0FAA0F;IAC1F,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,qEAAqE;IACrE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,uEAAuE;IACvE,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,6EAA6E;IAC7E,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;KACrB,KAAK,IAAI,CAAC;CACZ;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CA6O9D,CAAC"}
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import '@xyflow/react/dist/style.css';
3
+ import type { SequenceDiagramPayload } from '../../../types/SequenceDiagram';
4
+ export interface SequenceDiagramOverlayProps {
5
+ payload: SequenceDiagramPayload;
6
+ selectedEventId: string | null;
7
+ onNodeClick: (nodeId: string | null) => void;
8
+ onClose: () => void;
9
+ /** Drawer height as a percentage of the panel height. */
10
+ heightPct: number;
11
+ /** Called as the user drags the top edge to resize. */
12
+ onHeightChange: (pct: number) => void;
13
+ }
14
+ export declare const SequenceDiagramOverlay: React.FC<SequenceDiagramOverlayProps>;
15
+ //# sourceMappingURL=SequenceDiagramOverlay.d.ts.map