@reicek/neataptic-ts 0.1.25 → 0.1.26

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 (210) hide show
  1. package/.github/copilot-instructions.md +11 -0
  2. package/.github/skills/trace-analyzer-extension/SKILL.md +3 -3
  3. package/.github/skills/trace-analyzer-extension/assets/extension-checklist.md +1 -1
  4. package/.github/skills/trace-analyzer-extension/references/analyzer-extension-workflow.md +1 -1
  5. package/.github/skills/trace-audit-reporting/SKILL.md +3 -3
  6. package/.github/skills/trace-audit-reporting/references/trace-analysis-workflow.md +1 -1
  7. package/package.json +19 -13
  8. package/plans/Flappy_Bird_Folder_Documentation_Pass.md +4 -4
  9. package/plans/README.md +24 -0
  10. package/plans/Roadmap.md +62 -40
  11. package/plans/analyze-trace-solid-split.plans.md +66 -0
  12. package/plans/architecture-solid-split.plans.md +9 -15
  13. package/plans/asciiMaze-typescript-repair.plans.md +1 -1
  14. package/plans/generate-docs-solid-split.plans.md +87 -0
  15. package/plans/methods-docs.plans.md +25 -1
  16. package/plans/methods-solid-split.plans.md +14 -14
  17. package/plans/neat-docs.plans.md +9 -1
  18. package/plans/neat-test-surface-repair.plans.md +1 -1
  19. package/plans/render-docs-html-solid-split.plans.md +68 -0
  20. package/plans/src-no-explicit-any-cleanup.plans.md +1 -1
  21. package/plans/utils-docs.plans.md +6 -1
  22. package/scripts/analyze-trace/analyze-trace.analysis.ts +479 -0
  23. package/scripts/analyze-trace/analyze-trace.constants.ts +35 -0
  24. package/scripts/analyze-trace/analyze-trace.io.ts +69 -0
  25. package/scripts/analyze-trace/analyze-trace.report.ts +100 -0
  26. package/scripts/analyze-trace/analyze-trace.shared.ts +116 -0
  27. package/scripts/analyze-trace/analyze-trace.ts +45 -0
  28. package/scripts/analyze-trace/analyze-trace.types.ts +72 -0
  29. package/scripts/assets/theme.css +80 -23
  30. package/scripts/copy-examples.ts +239 -0
  31. package/scripts/export-onnx.ts +223 -0
  32. package/scripts/generate-bench-tables.ts +378 -37
  33. package/scripts/generate-docs/generate-docs.constants.ts +107 -0
  34. package/scripts/generate-docs/generate-docs.order.ts +355 -0
  35. package/scripts/generate-docs/generate-docs.state.ts +31 -0
  36. package/scripts/generate-docs/generate-docs.targets.ts +165 -0
  37. package/scripts/generate-docs/generate-docs.ts +63 -0
  38. package/scripts/generate-docs/generate-docs.types.ts +112 -0
  39. package/scripts/generate-docs/output/generate-docs.output.folder-index.utils.ts +167 -0
  40. package/scripts/generate-docs/output/generate-docs.output.ordering.utils.ts +353 -0
  41. package/scripts/generate-docs/output/generate-docs.output.readme.utils.ts +420 -0
  42. package/scripts/generate-docs/output/generate-docs.output.ts +123 -0
  43. package/scripts/generate-docs/output/generate-docs.output.warnings.utils.ts +219 -0
  44. package/scripts/generate-docs/symbols/generate-docs.symbols.collection.utils.ts +365 -0
  45. package/scripts/generate-docs/symbols/generate-docs.symbols.jsdoc.utils.ts +373 -0
  46. package/scripts/generate-docs/symbols/generate-docs.symbols.normalize.utils.ts +155 -0
  47. package/scripts/generate-docs/symbols/generate-docs.symbols.render.utils.ts +149 -0
  48. package/scripts/generate-docs/symbols/generate-docs.symbols.signature.utils.ts +289 -0
  49. package/scripts/generate-docs/symbols/generate-docs.symbols.ts +11 -0
  50. package/scripts/mermaid-cli.mjs +102 -22
  51. package/scripts/mermaid-cli.ts +736 -0
  52. package/scripts/render-docs-html/render-docs-html.assets.ts +54 -0
  53. package/scripts/render-docs-html/render-docs-html.mermaid.ts +245 -0
  54. package/scripts/{render-docs-html.sidebar.ts → render-docs-html/render-docs-html.navigation.ts} +141 -144
  55. package/scripts/render-docs-html/render-docs-html.pages.ts +333 -0
  56. package/scripts/render-docs-html/render-docs-html.shared.ts +333 -0
  57. package/scripts/render-docs-html/render-docs-html.types.ts +42 -0
  58. package/scripts/render-docs-html.ts +23 -587
  59. package/scripts/run-docs.ts +238 -0
  60. package/scripts/write-dist-docs-pkg.ts +40 -0
  61. package/src/README.md +75 -75
  62. package/src/architecture/connection/README.md +5 -5
  63. package/src/architecture/layer/README.md +508 -508
  64. package/src/architecture/network/README.md +1458 -1458
  65. package/src/architecture/network/activate/README.md +694 -694
  66. package/src/architecture/network/bootstrap/README.md +77 -77
  67. package/src/architecture/network/connect/README.md +74 -74
  68. package/src/architecture/network/deterministic/README.md +135 -135
  69. package/src/architecture/network/evolve/README.md +364 -364
  70. package/src/architecture/network/gating/README.md +130 -130
  71. package/src/architecture/network/genetic/README.md +399 -399
  72. package/src/architecture/network/mutate/README.md +897 -897
  73. package/src/architecture/network/onnx/README.md +720 -720
  74. package/src/architecture/network/onnx/export/README.md +728 -728
  75. package/src/architecture/network/onnx/export/layers/README.md +450 -450
  76. package/src/architecture/network/onnx/import/README.md +618 -618
  77. package/src/architecture/network/onnx/schema/README.md +32 -32
  78. package/src/architecture/network/prune/README.md +245 -245
  79. package/src/architecture/network/remove/README.md +135 -135
  80. package/src/architecture/network/runtime/README.md +106 -106
  81. package/src/architecture/network/serialize/README.md +542 -542
  82. package/src/architecture/network/slab/README.md +608 -608
  83. package/src/architecture/network/standalone/README.md +212 -212
  84. package/src/architecture/network/stats/README.md +84 -84
  85. package/src/architecture/network/topology/README.md +465 -465
  86. package/src/architecture/network/training/README.md +200 -200
  87. package/src/architecture/node/README.md +5 -5
  88. package/src/architecture/nodePool/README.md +14 -14
  89. package/src/methods/README.md +99 -99
  90. package/src/methods/activation/README.md +189 -189
  91. package/src/methods/cost/README.md +131 -131
  92. package/src/methods/rate/README.md +86 -86
  93. package/src/multithreading/README.md +77 -77
  94. package/src/multithreading/workers/browser/README.md +8 -8
  95. package/src/multithreading/workers/node/README.md +8 -8
  96. package/src/neat/README.md +148 -148
  97. package/src/neat/adaptive/README.md +120 -120
  98. package/src/neat/adaptive/acceptance/README.md +40 -40
  99. package/src/neat/adaptive/complexity/README.md +137 -137
  100. package/src/neat/adaptive/core/README.md +197 -197
  101. package/src/neat/adaptive/lineage/README.md +90 -90
  102. package/src/neat/adaptive/mutation/README.md +284 -284
  103. package/src/neat/compat/README.md +43 -43
  104. package/src/neat/compat/core/README.md +90 -90
  105. package/src/neat/diversity/README.md +35 -35
  106. package/src/neat/diversity/core/README.md +88 -88
  107. package/src/neat/evaluate/README.md +85 -85
  108. package/src/neat/evaluate/auto-distance/README.md +75 -75
  109. package/src/neat/evaluate/entropy-compat/README.md +37 -37
  110. package/src/neat/evaluate/entropy-sharing/README.md +43 -43
  111. package/src/neat/evaluate/fitness/README.md +23 -23
  112. package/src/neat/evaluate/novelty/README.md +120 -120
  113. package/src/neat/evaluate/objectives/README.md +17 -17
  114. package/src/neat/evaluate/shared/README.md +94 -94
  115. package/src/neat/evolve/README.md +96 -96
  116. package/src/neat/evolve/adaptive/README.md +60 -60
  117. package/src/neat/evolve/objectives/README.md +63 -63
  118. package/src/neat/evolve/offspring/README.md +56 -56
  119. package/src/neat/evolve/population/README.md +171 -171
  120. package/src/neat/evolve/runtime/README.md +79 -79
  121. package/src/neat/evolve/speciation/README.md +74 -74
  122. package/src/neat/evolve/warnings/README.md +10 -10
  123. package/src/neat/export/README.md +114 -114
  124. package/src/neat/helpers/README.md +50 -50
  125. package/src/neat/init/README.md +9 -9
  126. package/src/neat/lineage/core/README.md +101 -101
  127. package/src/neat/multiobjective/category/README.md +74 -74
  128. package/src/neat/multiobjective/crowding/README.md +272 -272
  129. package/src/neat/multiobjective/dominance/README.md +171 -171
  130. package/src/neat/multiobjective/fronts/README.md +68 -68
  131. package/src/neat/multiobjective/metrics/README.md +43 -43
  132. package/src/neat/multiobjective/objectives/README.md +31 -31
  133. package/src/neat/multiobjective/shared/README.md +27 -27
  134. package/src/neat/mutation/README.md +97 -97
  135. package/src/neat/mutation/add-conn/README.md +115 -115
  136. package/src/neat/mutation/add-node/README.md +126 -126
  137. package/src/neat/mutation/flow/README.md +149 -149
  138. package/src/neat/mutation/repair/README.md +185 -185
  139. package/src/neat/mutation/select/README.md +117 -117
  140. package/src/neat/mutation/shared/README.md +32 -32
  141. package/src/neat/objectives/README.md +25 -25
  142. package/src/neat/objectives/core/README.md +67 -67
  143. package/src/neat/pruning/README.md +40 -40
  144. package/src/neat/pruning/core/README.md +171 -171
  145. package/src/neat/pruning/facade/README.md +32 -32
  146. package/src/neat/rng/README.md +104 -104
  147. package/src/neat/rng/core/README.md +137 -137
  148. package/src/neat/rng/facade/README.md +50 -50
  149. package/src/neat/selection/README.md +111 -111
  150. package/src/neat/selection/core/README.md +227 -227
  151. package/src/neat/selection/facade/README.md +61 -61
  152. package/src/neat/shared/README.md +163 -163
  153. package/src/neat/speciation/README.md +31 -31
  154. package/src/neat/speciation/threshold/README.md +35 -35
  155. package/src/neat/species/README.md +25 -25
  156. package/src/neat/species/core/README.md +20 -20
  157. package/src/neat/species/core/shared/README.md +18 -18
  158. package/src/neat/species/history/context/README.md +22 -22
  159. package/src/neat/telemetry/accessors/README.md +58 -58
  160. package/src/neat/telemetry/exports/README.md +233 -233
  161. package/src/neat/telemetry/facade/README.md +252 -252
  162. package/src/neat/telemetry/facade/archive/README.md +57 -57
  163. package/src/neat/telemetry/facade/buffer/README.md +43 -43
  164. package/src/neat/telemetry/facade/lineage/README.md +12 -12
  165. package/src/neat/telemetry/facade/objectives/README.md +44 -44
  166. package/src/neat/telemetry/facade/runtime/README.md +26 -26
  167. package/src/neat/telemetry/facade/species/README.md +27 -27
  168. package/src/neat/telemetry/metrics/README.md +696 -696
  169. package/src/neat/telemetry/recorder/README.md +57 -57
  170. package/src/neat/telemetry/types/README.md +32 -32
  171. package/src/neat/topology-intent/README.md +75 -75
  172. package/src/utils/README.md +193 -193
  173. package/test/examples/asciiMaze/browser-entry/README.md +92 -92
  174. package/test/examples/asciiMaze/dashboardManager/README.md +109 -109
  175. package/test/examples/asciiMaze/dashboardManager/telemetry/README.md +28 -28
  176. package/test/examples/asciiMaze/evolutionEngine/README.md +1527 -1527
  177. package/test/examples/asciiMaze/mazeMovement/README.md +105 -105
  178. package/test/examples/asciiMaze/mazeMovement/finalization/README.md +16 -16
  179. package/test/examples/asciiMaze/mazeMovement/policy/README.md +57 -57
  180. package/test/examples/asciiMaze/mazeMovement/runtime/README.md +52 -52
  181. package/test/examples/asciiMaze/mazeMovement/shaping/README.md +46 -46
  182. package/test/examples/flappy_bird/browser-entry/README.md +508 -508
  183. package/test/examples/flappy_bird/browser-entry/host/README.md +101 -101
  184. package/test/examples/flappy_bird/browser-entry/host/resize/README.md +144 -144
  185. package/test/examples/flappy_bird/browser-entry/network-view/README.md +194 -194
  186. package/test/examples/flappy_bird/browser-entry/playback/README.md +278 -278
  187. package/test/examples/flappy_bird/browser-entry/playback/background/README.md +129 -129
  188. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/README.md +502 -502
  189. package/test/examples/flappy_bird/browser-entry/playback/frame-render/README.md +139 -139
  190. package/test/examples/flappy_bird/browser-entry/playback/snapshot/README.md +10 -10
  191. package/test/examples/flappy_bird/browser-entry/playback/trail/README.md +43 -43
  192. package/test/examples/flappy_bird/browser-entry/playback/worker-channel/README.md +30 -30
  193. package/test/examples/flappy_bird/browser-entry/runtime/README.md +59 -59
  194. package/test/examples/flappy_bird/browser-entry/visualization/README.md +276 -276
  195. package/test/examples/flappy_bird/browser-entry/worker-channel/README.md +16 -16
  196. package/test/examples/flappy_bird/constants/README.md +1070 -1070
  197. package/test/examples/flappy_bird/environment/README.md +22 -22
  198. package/test/examples/flappy_bird/evaluation/README.md +32 -32
  199. package/test/examples/flappy_bird/evaluation/rollout/README.md +141 -141
  200. package/test/examples/flappy_bird/flappy-evolution-worker/README.md +425 -425
  201. package/test/examples/flappy_bird/simulation-shared/README.md +170 -170
  202. package/test/examples/flappy_bird/simulation-shared/observation/README.md +109 -109
  203. package/test/examples/flappy_bird/trainer/README.md +325 -325
  204. package/test/examples/flappy_bird/trainer/evaluation/README.md +74 -74
  205. package/scripts/analyze-trace.ts +0 -590
  206. package/scripts/copy-examples.mjs +0 -114
  207. package/scripts/export-onnx.mjs +0 -86
  208. package/scripts/generate-bench-tables.mjs +0 -182
  209. package/scripts/generate-docs.ts +0 -2900
  210. package/scripts/write-dist-docs-pkg.mjs +0 -16
@@ -23,6 +23,28 @@ flowchart LR
23
23
 
24
24
  ## browser-entry/host/resize/host.resize.service.ts
25
25
 
26
+ ### applyResponsiveViewportSizing
27
+
28
+ ```ts
29
+ applyResponsiveViewportSizing(
30
+ responsiveViewportSizingElements: ResponsiveViewportSizingElements,
31
+ deferredNetworkRedrawController: DeferredNetworkRedrawController,
32
+ onNetworkResize: () => void,
33
+ ): void
34
+ ```
35
+
36
+ Applies responsive sizing to the simulation and network canvases.
37
+
38
+ The resize flow is intentionally split into two branches: the minimal mobile
39
+ path and the richer standard path used for tablet and desktop layouts.
40
+
41
+ Parameters:
42
+ - `responsiveViewportSizingElements` - - Host elements participating in layout.
43
+ - `deferredNetworkRedrawController` - - Deferred redraw controller.
44
+ - `onNetworkResize` - - Immediate network resize callback.
45
+
46
+ Returns: Nothing.
47
+
26
48
  ### installResponsiveViewportSizing
27
49
 
28
50
  ```ts
@@ -58,28 +80,6 @@ Parameters:
58
80
 
59
81
  Returns: Nothing.
60
82
 
61
- ### applyResponsiveViewportSizing
62
-
63
- ```ts
64
- applyResponsiveViewportSizing(
65
- responsiveViewportSizingElements: ResponsiveViewportSizingElements,
66
- deferredNetworkRedrawController: DeferredNetworkRedrawController,
67
- onNetworkResize: () => void,
68
- ): void
69
- ```
70
-
71
- Applies responsive sizing to the simulation and network canvases.
72
-
73
- The resize flow is intentionally split into two branches: the minimal mobile
74
- path and the richer standard path used for tablet and desktop layouts.
75
-
76
- Parameters:
77
- - `responsiveViewportSizingElements` - - Host elements participating in layout.
78
- - `deferredNetworkRedrawController` - - Deferred redraw controller.
79
- - `onNetworkResize` - - Immediate network resize callback.
80
-
81
- Returns: Nothing.
82
-
83
83
  ## browser-entry/host/resize/host.resize.service.types.ts
84
84
 
85
85
  Shared contracts for responsive browser-host sizing.
@@ -88,13 +88,6 @@ The resize subsystem coordinates several DOM elements and several layout modes
88
88
  at once, so these types capture the measured viewport state, the active mode
89
89
  flags, and the grouped DOM handles needed by the appliers.
90
90
 
91
- ### ResponsiveViewportSizingElements
92
-
93
- DOM elements that participate in responsive host sizing.
94
-
95
- Keeping the participating elements together makes the responsive helpers read
96
- as layout orchestration rather than long DOM parameter lists.
97
-
98
91
  ### DeferredNetworkRedrawController
99
92
 
100
93
  Deferred redraw controller used after layout-affecting changes.
@@ -102,12 +95,12 @@ Deferred redraw controller used after layout-affecting changes.
102
95
  The network panel redraw is deferred because flexbox and canvas sizing can
103
96
  settle over multiple animation frames.
104
97
 
105
- ### ResponsiveViewportMeasurements
98
+ ### ResponsiveViewportLayoutContext
106
99
 
107
- Measured viewport and panel budgets for responsive layout.
100
+ Full responsive layout context shared across sizing helpers.
108
101
 
109
- These values are the raw numeric inputs to the resize policy before any mode
110
- branching happens.
102
+ This merges measurements and mode flags into the one context object used by
103
+ the resize appliers.
111
104
 
112
105
  ### ResponsiveViewportLayoutFlags
113
106
 
@@ -116,19 +109,19 @@ Layout-mode flags resolved from the current viewport.
116
109
  The host currently distinguishes between minimal mobile, landscape split, and
117
110
  compact network-only variants.
118
111
 
119
- ### ResponsiveViewportLayoutContext
112
+ ### ResponsiveViewportMeasurements
120
113
 
121
- Full responsive layout context shared across sizing helpers.
114
+ Measured viewport and panel budgets for responsive layout.
122
115
 
123
- This merges measurements and mode flags into the one context object used by
124
- the resize appliers.
116
+ These values are the raw numeric inputs to the resize policy before any mode
117
+ branching happens.
125
118
 
126
- ### StatsPanelDimensions
119
+ ### ResponsiveViewportSizingElements
127
120
 
128
- Resolved height and width budgets for the stats panel.
121
+ DOM elements that participate in responsive host sizing.
129
122
 
130
- The stats panel dimensions are derived from the current viewport budget after
131
- minimum readable canvas space is reserved.
123
+ Keeping the participating elements together makes the responsive helpers read
124
+ as layout orchestration rather than long DOM parameter lists.
132
125
 
133
126
  ### SimulationCanvasBounds
134
127
 
@@ -137,6 +130,13 @@ Width and height bounds for the simulation canvas.
137
130
  These are the final pixel budgets the simulation canvas may consume for the
138
131
  current responsive layout.
139
132
 
133
+ ### StatsPanelDimensions
134
+
135
+ Resolved height and width budgets for the stats panel.
136
+
137
+ The stats panel dimensions are derived from the current viewport budget after
138
+ minimum readable canvas space is reserved.
139
+
140
140
  ## browser-entry/host/resize/host.resize.service.constants.ts
141
141
 
142
142
  Shared constants for responsive host sizing.
@@ -144,12 +144,12 @@ Shared constants for responsive host sizing.
144
144
  These values keep the resize policy readable by naming the split ratio, the
145
145
  minimum positive dimension, and the CSS token bundle used by layout appliers.
146
146
 
147
- ### FLAPPY_HOST_RESIZE_STYLE_TOKENS
147
+ ### FLAPPY_HOST_RESIZE_MIN_DIMENSION_PX
148
148
 
149
- Shared CSS tokens used by the host resize layout appliers.
149
+ Minimum positive dimension enforced by resize math.
150
150
 
151
- Centralizing these string tokens reduces repetition across the responsive DOM
152
- style appliers.
151
+ This prevents zero or negative canvas sizes from leaking into downstream
152
+ layout and backing-store calculations.
153
153
 
154
154
  ### FLAPPY_HOST_RESIZE_SPLIT_RATIO
155
155
 
@@ -158,12 +158,12 @@ Split ratio used when dividing the viewport between simulation and stats.
158
158
  A value of `0.5` means the standard stacked layout begins from an even split
159
159
  before clamping against minimum-height constraints.
160
160
 
161
- ### FLAPPY_HOST_RESIZE_MIN_DIMENSION_PX
161
+ ### FLAPPY_HOST_RESIZE_STYLE_TOKENS
162
162
 
163
- Minimum positive dimension enforced by resize math.
163
+ Shared CSS tokens used by the host resize layout appliers.
164
164
 
165
- This prevents zero or negative canvas sizes from leaking into downstream
166
- layout and backing-store calculations.
165
+ Centralizing these string tokens reduces repetition across the responsive DOM
166
+ style appliers.
167
167
 
168
168
  ## browser-entry/host/resize/host.resize.service.services.ts
169
169
 
@@ -173,24 +173,6 @@ These helpers implement the actual responsive policy once the viewport has
173
173
  been measured: choose a layout mode, resize canvases, reorder panes, and
174
174
  trigger redraws when the network panel geometry changes.
175
175
 
176
- ### createDeferredNetworkRedrawController
177
-
178
- ```ts
179
- createDeferredNetworkRedrawController(
180
- onNetworkResize: () => void,
181
- ): DeferredNetworkRedrawController
182
- ```
183
-
184
- Creates a deferred redraw controller that waits for layout to settle.
185
-
186
- Waiting two animation frames is a pragmatic way to avoid redrawing the network
187
- panel against transient intermediate layout sizes.
188
-
189
- Parameters:
190
- - `onNetworkResize` - - Callback after network resize.
191
-
192
- Returns: Deferred redraw controller.
193
-
194
176
  ### applyMinimalMobileViewportLayout
195
177
 
196
178
  ```ts
@@ -211,27 +193,25 @@ Parameters:
211
193
 
212
194
  Returns: Nothing.
213
195
 
214
- ### applyStandardViewportLayout
196
+ ### applyNetworkCanvasHostHeight
215
197
 
216
198
  ```ts
217
- applyStandardViewportLayout(
218
- responsiveViewportSizingElements: ResponsiveViewportSizingElements,
219
- responsiveViewportLayoutContext: ResponsiveViewportLayoutContext,
199
+ applyNetworkCanvasHostHeight(
200
+ networkCanvasHost: HTMLElement,
220
201
  deferredNetworkRedrawController: DeferredNetworkRedrawController,
221
- ): StatsPanelDimensions
202
+ ): void
222
203
  ```
223
204
 
224
- Applies the standard tablet and desktop layout and returns panel dimensions.
205
+ Applies the fixed network host height and queues redraw when it changes.
225
206
 
226
- This path keeps the auxiliary panes visible and resolves a balanced split
227
- between simulation and side-panel content.
207
+ The network panel uses a fixed-height target so the visualization remains
208
+ readable and stable across layout transitions.
228
209
 
229
210
  Parameters:
230
- - `responsiveViewportSizingElements` - - Host elements participating in layout.
231
- - `responsiveViewportLayoutContext` - - Responsive layout context.
211
+ - `networkCanvasHost` - - Network canvas host element.
232
212
  - `deferredNetworkRedrawController` - - Deferred redraw controller.
233
213
 
234
- Returns: Resolved stats panel dimensions.
214
+ Returns: Nothing.
235
215
 
236
216
  ### applyResponsiveCanvasBounds
237
217
 
@@ -257,45 +237,64 @@ Parameters:
257
237
 
258
238
  Returns: Nothing.
259
239
 
260
- ### installResponsiveViewportSizingListeners
240
+ ### applySplitContainerLayoutStyles
261
241
 
262
242
  ```ts
263
- installResponsiveViewportSizingListeners(
264
- containerElement: HTMLElement,
265
- applyCanvasSize: () => void,
266
- deferredNetworkRedrawController: DeferredNetworkRedrawController,
243
+ applySplitContainerLayoutStyles(
244
+ responsiveViewportSizingElements: ResponsiveViewportSizingElements,
245
+ responsiveViewportLayoutContext: ResponsiveViewportLayoutContext,
267
246
  ): void
268
247
  ```
269
248
 
270
- Installs window and container listeners for responsive host sizing.
249
+ Applies the split-container styles for the standard layout modes.
271
250
 
272
- The host listens both to global window resizes and to container-specific size
273
- changes when `ResizeObserver` is available.
251
+ This helper decides whether the main panels should stack or sit side-by-side,
252
+ then applies the matching flexbox configuration.
274
253
 
275
254
  Parameters:
276
- - `containerElement` - - Width and height source.
277
- - `applyCanvasSize` - - Shared sizing callback.
278
- - `deferredNetworkRedrawController` - - Deferred redraw controller.
255
+ - `responsiveViewportSizingElements` - - Host elements participating in layout.
256
+ - `responsiveViewportLayoutContext` - - Responsive layout context.
279
257
 
280
258
  Returns: Nothing.
281
259
 
282
- ### applySplitContainerLayoutStyles
260
+ ### applyStandardViewportLayout
283
261
 
284
262
  ```ts
285
- applySplitContainerLayoutStyles(
263
+ applyStandardViewportLayout(
286
264
  responsiveViewportSizingElements: ResponsiveViewportSizingElements,
287
265
  responsiveViewportLayoutContext: ResponsiveViewportLayoutContext,
288
- ): void
266
+ deferredNetworkRedrawController: DeferredNetworkRedrawController,
267
+ ): StatsPanelDimensions
289
268
  ```
290
269
 
291
- Applies the split-container styles for the standard layout modes.
270
+ Applies the standard tablet and desktop layout and returns panel dimensions.
292
271
 
293
- This helper decides whether the main panels should stack or sit side-by-side,
294
- then applies the matching flexbox configuration.
272
+ This path keeps the auxiliary panes visible and resolves a balanced split
273
+ between simulation and side-panel content.
295
274
 
296
275
  Parameters:
297
276
  - `responsiveViewportSizingElements` - - Host elements participating in layout.
298
277
  - `responsiveViewportLayoutContext` - - Responsive layout context.
278
+ - `deferredNetworkRedrawController` - - Deferred redraw controller.
279
+
280
+ Returns: Resolved stats panel dimensions.
281
+
282
+ ### applyStatsContainerDimensions
283
+
284
+ ```ts
285
+ applyStatsContainerDimensions(
286
+ statsContainer: HTMLElement,
287
+ responsiveViewportLayoutContext: ResponsiveViewportLayoutContext,
288
+ statsPanelDimensions: StatsPanelDimensions,
289
+ ): void
290
+ ```
291
+
292
+ Applies the resolved dimensions and scrolling rules to the stats container.
293
+
294
+ Parameters:
295
+ - `statsContainer` - - Stats host element.
296
+ - `responsiveViewportLayoutContext` - - Responsive layout context.
297
+ - `statsPanelDimensions` - - Resolved stats panel dimensions.
299
298
 
300
299
  Returns: Nothing.
301
300
 
@@ -321,42 +320,43 @@ Parameters:
321
320
 
322
321
  Returns: Nothing.
323
322
 
324
- ### applyNetworkCanvasHostHeight
323
+ ### createDeferredNetworkRedrawController
325
324
 
326
325
  ```ts
327
- applyNetworkCanvasHostHeight(
328
- networkCanvasHost: HTMLElement,
329
- deferredNetworkRedrawController: DeferredNetworkRedrawController,
330
- ): void
326
+ createDeferredNetworkRedrawController(
327
+ onNetworkResize: () => void,
328
+ ): DeferredNetworkRedrawController
331
329
  ```
332
330
 
333
- Applies the fixed network host height and queues redraw when it changes.
331
+ Creates a deferred redraw controller that waits for layout to settle.
334
332
 
335
- The network panel uses a fixed-height target so the visualization remains
336
- readable and stable across layout transitions.
333
+ Waiting two animation frames is a pragmatic way to avoid redrawing the network
334
+ panel against transient intermediate layout sizes.
337
335
 
338
336
  Parameters:
339
- - `networkCanvasHost` - - Network canvas host element.
340
- - `deferredNetworkRedrawController` - - Deferred redraw controller.
337
+ - `onNetworkResize` - - Callback after network resize.
341
338
 
342
- Returns: Nothing.
339
+ Returns: Deferred redraw controller.
343
340
 
344
- ### applyStatsContainerDimensions
341
+ ### installResponsiveViewportSizingListeners
345
342
 
346
343
  ```ts
347
- applyStatsContainerDimensions(
348
- statsContainer: HTMLElement,
349
- responsiveViewportLayoutContext: ResponsiveViewportLayoutContext,
350
- statsPanelDimensions: StatsPanelDimensions,
344
+ installResponsiveViewportSizingListeners(
345
+ containerElement: HTMLElement,
346
+ applyCanvasSize: () => void,
347
+ deferredNetworkRedrawController: DeferredNetworkRedrawController,
351
348
  ): void
352
349
  ```
353
350
 
354
- Applies the resolved dimensions and scrolling rules to the stats container.
351
+ Installs window and container listeners for responsive host sizing.
352
+
353
+ The host listens both to global window resizes and to container-specific size
354
+ changes when `ResizeObserver` is available.
355
355
 
356
356
  Parameters:
357
- - `statsContainer` - - Stats host element.
358
- - `responsiveViewportLayoutContext` - - Responsive layout context.
359
- - `statsPanelDimensions` - - Resolved stats panel dimensions.
357
+ - `containerElement` - - Width and height source.
358
+ - `applyCanvasSize` - - Shared sizing callback.
359
+ - `deferredNetworkRedrawController` - - Deferred redraw controller.
360
360
 
361
361
  Returns: Nothing.
362
362
 
@@ -367,27 +367,23 @@ Measurement and budget helpers for responsive host sizing.
367
367
  These functions convert live DOM dimensions into the numeric budgets used by
368
368
  the resize appliers.
369
369
 
370
- ### resolveResponsiveViewportLayoutContext
370
+ ### resolveHeaderHeightPx
371
371
 
372
372
  ```ts
373
- resolveResponsiveViewportLayoutContext(
373
+ resolveHeaderHeightPx(
374
374
  containerElement: HTMLElement,
375
- statsContainer: HTMLElement,
376
- networkCanvasHost: HTMLElement,
377
- ): ResponsiveViewportLayoutContext
375
+ ): number
378
376
  ```
379
377
 
380
- Resolves responsive layout measurements and mode flags from the host DOM.
378
+ Resolves the header canvas height, if present.
381
379
 
382
- This is the measurement root for the resize system: read the current viewport,
383
- reserve required minimums, then classify the active layout mode.
380
+ The resize system subtracts the header from the total container height before
381
+ budgeting the main panels.
384
382
 
385
383
  Parameters:
386
384
  - `containerElement` - - Width and height source.
387
- - `statsContainer` - - Stats host element.
388
- - `networkCanvasHost` - - Network host element.
389
385
 
390
- Returns: Responsive layout context.
386
+ Returns: Header height in pixels.
391
387
 
392
388
  ### resolveMinimalMobileCanvasBounds
393
389
 
@@ -409,23 +405,27 @@ Parameters:
409
405
 
410
406
  Returns: Simulation canvas bounds.
411
407
 
412
- ### resolveStatsPanelDimensions
408
+ ### resolveResponsiveViewportLayoutContext
413
409
 
414
410
  ```ts
415
- resolveStatsPanelDimensions(
416
- responsiveViewportLayoutContext: ResponsiveViewportLayoutContext,
417
- ): StatsPanelDimensions
411
+ resolveResponsiveViewportLayoutContext(
412
+ containerElement: HTMLElement,
413
+ statsContainer: HTMLElement,
414
+ networkCanvasHost: HTMLElement,
415
+ ): ResponsiveViewportLayoutContext
418
416
  ```
419
417
 
420
- Resolves the stats panel height and width budgets.
418
+ Resolves responsive layout measurements and mode flags from the host DOM.
421
419
 
422
- The stats panel budget is computed after preserving a minimum readable region
423
- for the simulation canvas.
420
+ This is the measurement root for the resize system: read the current viewport,
421
+ reserve required minimums, then classify the active layout mode.
424
422
 
425
423
  Parameters:
426
- - `responsiveViewportLayoutContext` - - Responsive layout context.
424
+ - `containerElement` - - Width and height source.
425
+ - `statsContainer` - - Stats host element.
426
+ - `networkCanvasHost` - - Network host element.
427
427
 
428
- Returns: Stats panel dimensions.
428
+ Returns: Responsive layout context.
429
429
 
430
430
  ### resolveSimulationCanvasBounds
431
431
 
@@ -449,20 +449,20 @@ Parameters:
449
449
 
450
450
  Returns: Simulation canvas bounds.
451
451
 
452
- ### resolveHeaderHeightPx
452
+ ### resolveStatsPanelDimensions
453
453
 
454
454
  ```ts
455
- resolveHeaderHeightPx(
456
- containerElement: HTMLElement,
457
- ): number
455
+ resolveStatsPanelDimensions(
456
+ responsiveViewportLayoutContext: ResponsiveViewportLayoutContext,
457
+ ): StatsPanelDimensions
458
458
  ```
459
459
 
460
- Resolves the header canvas height, if present.
460
+ Resolves the stats panel height and width budgets.
461
461
 
462
- The resize system subtracts the header from the total container height before
463
- budgeting the main panels.
462
+ The stats panel budget is computed after preserving a minimum readable region
463
+ for the simulation canvas.
464
464
 
465
465
  Parameters:
466
- - `containerElement` - - Width and height source.
466
+ - `responsiveViewportLayoutContext` - - Responsive layout context.
467
467
 
468
- Returns: Header height in pixels.
468
+ Returns: Stats panel dimensions.