termrender 4.5.0__tar.gz → 4.6.0__tar.gz

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 (75) hide show
  1. {termrender-4.5.0 → termrender-4.6.0}/CHANGELOG.md +31 -0
  2. {termrender-4.5.0 → termrender-4.6.0}/PKG-INFO +1 -1
  3. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/renderers/mermaid_flow_layout.py +540 -32
  4. termrender-4.6.0/tests/test_mermaid_flow_shapes.py +313 -0
  5. {termrender-4.5.0 → termrender-4.6.0}/.github/workflows/publish.yml +0 -0
  6. {termrender-4.5.0 → termrender-4.6.0}/.gitignore +0 -0
  7. {termrender-4.5.0 → termrender-4.6.0}/CLAUDE.md +0 -0
  8. {termrender-4.5.0 → termrender-4.6.0}/LICENSE +0 -0
  9. {termrender-4.5.0 → termrender-4.6.0}/README.md +0 -0
  10. {termrender-4.5.0 → termrender-4.6.0}/design.json +0 -0
  11. {termrender-4.5.0 → termrender-4.6.0}/pyproject.toml +0 -0
  12. {termrender-4.5.0 → termrender-4.6.0}/requirements.json +0 -0
  13. {termrender-4.5.0 → termrender-4.6.0}/scripts/build-mermaid-ascii.sh +0 -0
  14. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/CLAUDE.md +0 -0
  15. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/__init__.py +0 -0
  16. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/__main__.py +0 -0
  17. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/_bin/mermaid-ascii-darwin-arm64 +0 -0
  18. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/_mermaid_bin.py +0 -0
  19. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/blocks.py +0 -0
  20. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/emit.py +0 -0
  21. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/layout.py +0 -0
  22. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/parser.py +0 -0
  23. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/py.typed +0 -0
  24. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/renderers/CLAUDE.md +0 -0
  25. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/renderers/__init__.py +0 -0
  26. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/renderers/borders.py +0 -0
  27. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/renderers/charts.py +0 -0
  28. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/renderers/code.py +0 -0
  29. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/renderers/columns.py +0 -0
  30. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/renderers/diff.py +0 -0
  31. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/renderers/divider.py +0 -0
  32. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/renderers/mermaid.py +0 -0
  33. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/renderers/mermaid_flow.py +0 -0
  34. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/renderers/mermaid_flow_model.py +0 -0
  35. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/renderers/mermaid_flow_parser.py +0 -0
  36. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/renderers/mermaid_gantt.py +0 -0
  37. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/renderers/mermaid_journey.py +0 -0
  38. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/renderers/mermaid_mindmap.py +0 -0
  39. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/renderers/mermaid_pie.py +0 -0
  40. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/renderers/mermaid_prelude.py +0 -0
  41. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/renderers/mermaid_sequence.py +0 -0
  42. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/renderers/mermaid_timeline.py +0 -0
  43. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/renderers/panel.py +0 -0
  44. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/renderers/quote.py +0 -0
  45. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/renderers/stat.py +0 -0
  46. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/renderers/table.py +0 -0
  47. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/renderers/text.py +0 -0
  48. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/renderers/timeline.py +0 -0
  49. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/renderers/tree.py +0 -0
  50. {termrender-4.5.0 → termrender-4.6.0}/src/termrender/style.py +0 -0
  51. {termrender-4.5.0 → termrender-4.6.0}/tests/__init__.py +0 -0
  52. {termrender-4.5.0 → termrender-4.6.0}/tests/test_charts.py +0 -0
  53. {termrender-4.5.0 → termrender-4.6.0}/tests/test_cli_contract.py +0 -0
  54. {termrender-4.5.0 → termrender-4.6.0}/tests/test_column_alignment.py +0 -0
  55. {termrender-4.5.0 → termrender-4.6.0}/tests/test_diff.py +0 -0
  56. {termrender-4.5.0 → termrender-4.6.0}/tests/test_inline_badge.py +0 -0
  57. {termrender-4.5.0 → termrender-4.6.0}/tests/test_linebreak.py +0 -0
  58. {termrender-4.5.0 → termrender-4.6.0}/tests/test_mermaid_compat.py +0 -0
  59. {termrender-4.5.0 → termrender-4.6.0}/tests/test_mermaid_dispatch.py +0 -0
  60. {termrender-4.5.0 → termrender-4.6.0}/tests/test_mermaid_flow.py +0 -0
  61. {termrender-4.5.0 → termrender-4.6.0}/tests/test_mermaid_flow_layout.py +0 -0
  62. {termrender-4.5.0 → termrender-4.6.0}/tests/test_mermaid_flow_model.py +0 -0
  63. {termrender-4.5.0 → termrender-4.6.0}/tests/test_mermaid_flow_parser.py +0 -0
  64. {termrender-4.5.0 → termrender-4.6.0}/tests/test_mermaid_gantt.py +0 -0
  65. {termrender-4.5.0 → termrender-4.6.0}/tests/test_mermaid_journey.py +0 -0
  66. {termrender-4.5.0 → termrender-4.6.0}/tests/test_mermaid_mindmap.py +0 -0
  67. {termrender-4.5.0 → termrender-4.6.0}/tests/test_mermaid_pie.py +0 -0
  68. {termrender-4.5.0 → termrender-4.6.0}/tests/test_mermaid_sequence.py +0 -0
  69. {termrender-4.5.0 → termrender-4.6.0}/tests/test_mermaid_timeline.py +0 -0
  70. {termrender-4.5.0 → termrender-4.6.0}/tests/test_myst_gaps.py +0 -0
  71. {termrender-4.5.0 → termrender-4.6.0}/tests/test_stat.py +0 -0
  72. {termrender-4.5.0 → termrender-4.6.0}/tests/test_tasklist.py +0 -0
  73. {termrender-4.5.0 → termrender-4.6.0}/tests/test_timeline.py +0 -0
  74. {termrender-4.5.0 → termrender-4.6.0}/tests/test_variable_colons.py +0 -0
  75. {termrender-4.5.0 → termrender-4.6.0}/uv.lock +0 -0
@@ -1,6 +1,37 @@
1
1
  # CHANGELOG
2
2
 
3
3
 
4
+ ## v4.6.0 (2026-07-06)
5
+
6
+ ### Features
7
+
8
+ - Add flowchart node shapes, subgraph frames, and direction rendering
9
+ ([`e872199`](https://github.com/crouton-labs/termrender/commit/e87219956294319feb0015d2cf4573b8cc60a0cb))
10
+
11
+ Applies and hardens the salvaged decoration work for the native mermaid flowchart renderer's layout
12
+ engine:
13
+
14
+ - Nine distinct node-shape borders (rect, round, stadium, cylinder, circle, diamond, hexagon,
15
+ subroutine, parallelogram), each reserving its full bounding box so the router treats every shape
16
+ as impassable. - Subgraph enclosure frames (left-anchored title, nested, flatten when members
17
+ aren't placed contiguously enough for a clean rect). - TB/BT/LR/RL direction handling via a
18
+ post-layout coordinate transform.
19
+
20
+ Fixes found while hardening: - draw_frame now reserves the title text cells (not the whole border)
21
+ so a cross-boundary edge crossing a frame's top border can no longer clobber a letter of the
22
+ subgraph title. - Subgraph frame sizing is now computed bottom-up (_build_subgraph_frames): a
23
+ parent subgraph's extent is built from its children's *padded frame rects* (when they get a frame)
24
+ rather than raw member extents, so a nested subgraph whose members share the same column/row span
25
+ as its parent no longer produces an identically-sized frame that overwrites the parent's border —
26
+ nesting now always has real margin. - Corrected the module docstring's stale "every node renders
27
+ as a plain rectangle, frames not yet wired" description to match the shipped shape/frame drawers.
28
+
29
+ Adds tests/test_mermaid_flow_shapes.py: real-geometry assertions for shape distinctness, a 9-shape
30
+ gallery, subgraph frame containment, nested-frame non-overlap, non-contiguous-subgraph flatten,
31
+ LR/RL/BT topology + arrowhead direction, LR same-rank spacing, and router avoidance of a diamond's
32
+ interior. Full suite: 437 passed (422 existing + 15 new), no regressions.
33
+
34
+
4
35
  ## v4.5.0 (2026-07-06)
5
36
 
6
37
  ### Features
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: termrender
3
- Version: 4.5.0
3
+ Version: 4.6.0
4
4
  Summary: Rich terminal rendering of directive-flavored markdown
5
5
  Project-URL: Homepage, https://github.com/CaptainCrouton89/termrender
6
6
  Project-URL: Repository, https://github.com/CaptainCrouton89/termrender