@principal-ai/principal-view-react 0.16.53 → 0.16.55

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 (49) hide show
  1. package/dist/index.d.ts +2 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +2 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/pierre/PierreFileView.d.ts +16 -0
  6. package/dist/pierre/PierreFileView.d.ts.map +1 -0
  7. package/dist/pierre/PierreFileView.js +43 -0
  8. package/dist/pierre/PierreFileView.js.map +1 -0
  9. package/dist/pierre/PierreSnippetView.d.ts +27 -0
  10. package/dist/pierre/PierreSnippetView.d.ts.map +1 -0
  11. package/dist/pierre/PierreSnippetView.js +98 -0
  12. package/dist/pierre/PierreSnippetView.js.map +1 -0
  13. package/dist/pierre/index.d.ts +7 -0
  14. package/dist/pierre/index.d.ts.map +1 -0
  15. package/dist/pierre/index.js +4 -0
  16. package/dist/pierre/index.js.map +1 -0
  17. package/dist/pierre/pierreBackground.d.ts +15 -0
  18. package/dist/pierre/pierreBackground.d.ts.map +1 -0
  19. package/dist/pierre/pierreBackground.js +31 -0
  20. package/dist/pierre/pierreBackground.js.map +1 -0
  21. package/dist/pierre/scrollAnchor.d.ts +5 -0
  22. package/dist/pierre/scrollAnchor.d.ts.map +1 -0
  23. package/dist/pierre/scrollAnchor.js +9 -0
  24. package/dist/pierre/scrollAnchor.js.map +1 -0
  25. package/dist/pierre/sliceSnippet.d.ts +10 -0
  26. package/dist/pierre/sliceSnippet.d.ts.map +1 -0
  27. package/dist/pierre/sliceSnippet.js +16 -0
  28. package/dist/pierre/sliceSnippet.js.map +1 -0
  29. package/dist/subsystem/SubsystemComponentGraph.d.ts.map +1 -1
  30. package/dist/subsystem/SubsystemComponentGraph.js +11 -4
  31. package/dist/subsystem/SubsystemComponentGraph.js.map +1 -1
  32. package/dist/subsystem/model.d.ts +2 -0
  33. package/dist/subsystem/model.d.ts.map +1 -1
  34. package/dist/subsystem/model.js +12 -0
  35. package/dist/subsystem/model.js.map +1 -1
  36. package/package.json +3 -1
  37. package/src/index.ts +8 -0
  38. package/src/pierre/PierreFileView.tsx +77 -0
  39. package/src/pierre/PierreSnippetView.tsx +176 -0
  40. package/src/pierre/index.ts +6 -0
  41. package/src/pierre/pierreBackground.ts +33 -0
  42. package/src/pierre/scrollAnchor.test.ts +13 -0
  43. package/src/pierre/scrollAnchor.ts +11 -0
  44. package/src/pierre/sliceSnippet.test.ts +21 -0
  45. package/src/pierre/sliceSnippet.ts +31 -0
  46. package/src/stories/SubsystemComponentGraph.stories.tsx +96 -0
  47. package/src/subsystem/SubsystemComponentGraph.tsx +15 -3
  48. package/src/subsystem/model.test.ts +22 -0
  49. package/src/subsystem/model.ts +16 -0
@@ -380,6 +380,22 @@ export function convertSubsystemToEdges(doc: SubsystemGraphDocument): SubsystemG
380
380
  return edges;
381
381
  }
382
382
 
383
+ /** Stable key for layout-affecting graph fields (ignores declarationRef, etc.). */
384
+ export function subsystemGraphLayoutKey(
385
+ doc: Pick<SubsystemGraphDocument, 'components' | 'edges'>,
386
+ ): string {
387
+ const components = doc.components
388
+ .map(({ id, purl, name, symbol, kind, file, purpose }) =>
389
+ [id, purl, name, symbol ?? '', kind, file, purpose ?? ''].join('\0'))
390
+ .sort()
391
+ .join('\n');
392
+ const edgeKey = doc.edges
393
+ .map(({ id, from, to, mechanism }) => [id, from, to, mechanism].join('\0'))
394
+ .sort()
395
+ .join('\n');
396
+ return `${components}|${edgeKey}`;
397
+ }
398
+
383
399
  /**
384
400
  * Build the full React Flow graph (nodes + edges) using **ELK auto-layout** to
385
401
  * position every node (including external stub targets), so the graph is