- {frameworkAdapterNodes.map((adapter, adapterIndex) => {
- const isActive = activeAdapterIndex === adapterIndex
-
- return (
-
- {adapter.label}
-
- )
- })}
-
-
- core
-
-
- {frameworkAdapterConnections.map((connection, connectionIndex) => {
- const progress = (flowProgress - connectionIndex * 0.13 + 1) % 1
- const point = cubicPoint(
- connection.start,
- connection.control1,
- connection.control2,
- connection.end,
- progress,
- )
- const angle = cubicAngle(
- connection.start,
- connection.control1,
- connection.control2,
- connection.end,
- progress,
- )
-
- return (
-
0.92
- ? 'opacity-0'
- : 'opacity-100',
- )}
- />
- )
- })}
-
- {frameworkAdapterConnections.map((connection, connectionIndex) => {
- const isActive = activeAdapterIndex === connectionIndex
+ // (adapterGraphWidth/Height), so the whole graph is scaled as a unit rather
+ // than re-deriving every coordinate. The scale tracks the wrapper's own
+ // width, so the graph fills whatever slot it lands in without restating the
+ // ancestors' padding. The 1.35 cap is the ratio the fixed 460px `lg` slot
+ // was designed around.
+
+
+
+ {frameworkAdapterNodes.map((adapter, adapterIndex) => {
+ const isActive = activeAdapterIndex === adapterIndex
- return (
-
+ return (
+ >
+ {adapter.label}
+
+ )
+ })}
+
+
+ core
+
+
+ {frameworkAdapterConnections.map((connection, connectionIndex) => {
+ const progress = (flowProgress - connectionIndex * 0.13 + 1) % 1
+ const point = cubicPoint(
+ connection.start,
+ connection.control1,
+ connection.control2,
+ connection.end,
+ progress,
+ )
+ const angle = cubicAngle(
+ connection.start,
+ connection.control1,
+ connection.control2,
+ connection.end,
+ progress,
+ )
+
+ return (
0.92
+ ? 'opacity-0'
+ : 'opacity-100',
)}
/>
-
- )
- })}
+ )
+ })}
+
+ {frameworkAdapterConnections.map((connection, connectionIndex) => {
+ const isActive = activeAdapterIndex === connectionIndex
+
+ return (
+
+
+
+
+ )
+ })}
+
)