@checkstack/dependency-frontend 0.5.2 → 0.5.4

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,66 @@
1
1
  # @checkstack/dependency-frontend
2
2
 
3
+ ## 0.5.4
4
+
5
+ ### Patch Changes
6
+
7
+ - 50123c7: Fix the dependency map page's scrolling and make its header consistent with the
8
+ rest of the app. The page sized its canvas with a fixed `calc(100vh - 12rem)`,
9
+ which could overshoot the available space (double-scroll) depending on viewport
10
+ chrome, and it used a bespoke `<h1>` header with no icon. It now renders through
11
+ `PageLayout` (with the `GitBranch` nav icon and `fillHeight`), so the React Flow
12
+ canvas fills the app shell's bounded flex content area and only it scrolls/pans -
13
+ the page itself never scrolls.
14
+ - fb705df: Upgrade React 18 to React 19 across the platform.
15
+
16
+ **BREAKING (runtime frontend plugins):** React is shared as a Module Federation
17
+ singleton, so the host now provides **React 19** to every runtime plugin.
18
+ Frontend plugins built against React 18 must be rebuilt against React 19
19
+ (`react` / `react-dom` `^19`). The scaffold templates and the host/plugin MF
20
+ `requiredVersion` are updated to `^19`. `react` (and now `react-dom`) are pinned
21
+ to a single version across the workspace via syncpack so the singleton can never
22
+ skew (react and react-dom must match exactly).
23
+
24
+ The React 19 removed-API surface was audited - the codebase used only no-arg
25
+ `useRef()` (now `useRef<T | undefined>(undefined)`); no `ReactDOM.render`,
26
+ legacy context, string refs, or function-component `defaultProps`. This also
27
+ clears the `IMPORT_IS_UNDEFINED` build warnings for `React.use` /
28
+ `React.useOptimistic` (react-router 7 feature-detection), which React 19 exports.
29
+
30
+ The downstream `*-frontend` packages (and `@checkstack/infrastructure-common`)
31
+ receive only the mechanical `react` dependency bump (`patch`); the framework
32
+ packages carrying the shared-singleton change are bumped `minor`.
33
+
34
+ - Updated dependencies [9d8961c]
35
+ - Updated dependencies [fb705df]
36
+ - @checkstack/ui@1.15.0
37
+ - @checkstack/frontend-api@0.8.0
38
+ - @checkstack/dashboard-frontend@0.8.4
39
+ - @checkstack/gitops-frontend@0.5.4
40
+ - @checkstack/signal-frontend@0.2.3
41
+ - @checkstack/catalog-common@2.3.3
42
+ - @checkstack/dependency-common@1.2.3
43
+ - @checkstack/common@0.14.1
44
+ - @checkstack/gitops-common@0.6.2
45
+ - @checkstack/healthcheck-common@1.5.3
46
+
47
+ ## 0.5.3
48
+
49
+ ### Patch Changes
50
+
51
+ - Updated dependencies [ed251b6]
52
+ - Updated dependencies [968c12f]
53
+ - @checkstack/ui@1.14.0
54
+ - @checkstack/dashboard-frontend@0.8.3
55
+ - @checkstack/gitops-frontend@0.5.3
56
+ - @checkstack/catalog-common@2.3.2
57
+ - @checkstack/common@0.14.1
58
+ - @checkstack/dependency-common@1.2.2
59
+ - @checkstack/frontend-api@0.7.2
60
+ - @checkstack/gitops-common@0.6.2
61
+ - @checkstack/healthcheck-common@1.5.2
62
+ - @checkstack/signal-frontend@0.2.2
63
+
3
64
  ## 0.5.2
4
65
 
5
66
  ### Patch Changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@checkstack/dependency-frontend",
3
- "version": "0.5.2",
3
+ "version": "0.5.4",
4
4
  "license": "Elastic-2.0",
5
5
  "type": "module",
6
6
  "main": "src/index.tsx",
@@ -13,25 +13,25 @@
13
13
  "lint:code": "eslint . --max-warnings 0"
14
14
  },
15
15
  "dependencies": {
16
- "@checkstack/catalog-common": "2.3.2",
16
+ "@checkstack/catalog-common": "2.3.3",
17
17
  "@checkstack/common": "0.14.1",
18
- "@checkstack/dashboard-frontend": "0.8.2",
19
- "@checkstack/dependency-common": "1.2.2",
20
- "@checkstack/frontend-api": "0.7.2",
18
+ "@checkstack/dashboard-frontend": "0.8.4",
19
+ "@checkstack/dependency-common": "1.2.3",
20
+ "@checkstack/frontend-api": "0.8.0",
21
21
  "@checkstack/gitops-common": "0.6.2",
22
- "@checkstack/gitops-frontend": "0.5.2",
23
- "@checkstack/healthcheck-common": "1.5.2",
24
- "@checkstack/signal-frontend": "0.2.2",
25
- "@checkstack/ui": "1.13.2",
22
+ "@checkstack/gitops-frontend": "0.5.4",
23
+ "@checkstack/healthcheck-common": "1.5.3",
24
+ "@checkstack/signal-frontend": "0.2.3",
25
+ "@checkstack/ui": "1.15.0",
26
26
  "@xyflow/react": "^12.11.0",
27
27
  "lucide-react": "^1.17.0",
28
- "react": "^18.3.1",
28
+ "react": "19.2.7",
29
29
  "react-router-dom": "^7.16.0"
30
30
  },
31
31
  "devDependencies": {
32
32
  "typescript": "^5.0.0",
33
- "@types/react": "^18.2.0",
33
+ "@types/react": "^19.0.0",
34
34
  "@checkstack/tsconfig": "0.0.7",
35
- "@checkstack/scripts": "0.4.2"
35
+ "@checkstack/scripts": "0.6.0"
36
36
  }
37
37
  }
@@ -26,11 +26,12 @@ import {
26
26
  Button,
27
27
  Badge,
28
28
  LoadingSpinner,
29
+ PageLayout,
29
30
  useToast,
30
31
  usePerformance,
31
32
  cn,
32
33
  } from "@checkstack/ui";
33
- import { Maximize2, Save, RefreshCw, Trash2 } from "lucide-react";
34
+ import { Maximize2, Save, RefreshCw, Trash2, GitBranch } from "lucide-react";
34
35
  import type { ImpactType } from "@checkstack/dependency-common";
35
36
  import { DependencyEdgeForm } from "./DependencyEdgeForm";
36
37
  import { useProvenanceLocks } from "@checkstack/gitops-frontend";
@@ -96,7 +97,9 @@ function DependencyMapContent() {
96
97
  const [nodes, setNodes, onNodesChange] = useNodesState<SystemNode>([]);
97
98
  const [edges, setEdges, onEdgesChange] = useEdgesState<DependencyEdge>([]);
98
99
  const [hasUnsaved, setHasUnsaved] = useState(false);
99
- const saveTimeoutRef = useRef<ReturnType<typeof setTimeout>>();
100
+ const saveTimeoutRef = useRef<ReturnType<typeof setTimeout> | undefined>(
101
+ undefined,
102
+ );
100
103
 
101
104
  // Edge editor state
102
105
  const [selectedEdge, setSelectedEdge] = useState<
@@ -409,14 +412,14 @@ function DependencyMapContent() {
409
412
 
410
413
  if (loading) {
411
414
  return (
412
- <div className="h-[calc(100vh-12rem)] flex items-center justify-center">
415
+ <div className="flex-1 min-h-0 flex items-center justify-center">
413
416
  <LoadingSpinner />
414
417
  </div>
415
418
  );
416
419
  }
417
420
 
418
421
  return (
419
- <div className="h-[calc(100vh-12rem)] rounded-xl border border-border overflow-hidden bg-background/50">
422
+ <div className="flex-1 min-h-0 rounded-xl border border-border overflow-hidden bg-background/50">
420
423
  <ReactFlow<SystemNode, DependencyEdge>
421
424
  nodes={nodes}
422
425
  edges={edges}
@@ -699,24 +702,22 @@ function DependencyMapContent() {
699
702
  }
700
703
 
701
704
  /**
702
- * Dependency Map page — wrapped in ReactFlowProvider and Suspense.
705
+ * Dependency Map page — standard PageLayout header (matching the GitBranch nav
706
+ * icon), full-height so the canvas fills the viewport. Wrapped in
707
+ * ReactFlowProvider and Suspense.
703
708
  */
704
709
  const DependencyMapPageContent = () => {
705
710
  return (
706
- <div className="space-y-4">
707
- <div className="flex items-center justify-between">
708
- <div>
709
- <h1 className="text-2xl font-bold text-foreground">Dependency Map</h1>
710
- <p className="text-sm text-muted-foreground mt-1">
711
- Interactive topology view of system dependencies. Drag nodes to
712
- rearrange — positions auto-save.
713
- </p>
714
- </div>
715
- </div>
711
+ <PageLayout
712
+ title="Dependency Map"
713
+ subtitle="Interactive topology view of system dependencies. Drag nodes to rearrange; positions auto-save."
714
+ icon={GitBranch}
715
+ fillHeight
716
+ >
716
717
  <ReactFlowProvider>
717
718
  <DependencyMapContent />
718
719
  </ReactFlowProvider>
719
- </div>
720
+ </PageLayout>
720
721
  );
721
722
  };
722
723