Skip to content

Commit 137276d

Browse files
committed
29.6.7 release
1 parent 22173ae commit 137276d

115 files changed

Lines changed: 24651 additions & 21109 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

ChangeLog

Lines changed: 57 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,59 @@
1+
31-MAR-2026: 29.6.7
2+
3+
- Adds compressed XML support for SVG CLI export [jgraph/drawio-desktop#2143]
4+
- Fixes rasterized fill patterns in PDF export [jgraph/drawio#3620]
5+
- Enhance SVG text rendering by adding support for block elements and improving HTML to SVG conversion
6+
- Add .claude/launch.json to .gitignore
7+
- Enhance HTML to SVG conversion by adding word wrap and HTML tags
8+
- Updates DOMPurify from 3.3.2 to 3.3.3
9+
- Add BR support to HTML-to-SVG conversion and fix wrapped line heights
10+
- Fixes inconsistent table row and column resizing
11+
- feat: add configuration editor dialog with tabbed interface for visual editor and JSON
12+
- docs: add guidance for updating configuration switches in Editor.configure
13+
- feat: Enhance SVG conversion for HTML blocks and inline elements
14+
- fix: Improve dy calculations for superscripts and subscripts in SVG rendering
15+
- fix: Hide inline toolbar during all handle and cell drag operations
16+
- Fixes inconsistent file open handling
17+
- fix: Use whiteSpace instead of svgWhiteSpace when foreignObject is used
18+
- fix: Correct typo in ChangeLog for animated gif export
19+
- Add "Use Current" buttons for default styles in config editor
20+
- fix: Update redrawInnerBends to handle empty geometry points for bends opacity
21+
- fix: Auto-detect Android tablets in Chrome's desktop UA mode [jgraph/drawio#2090]
22+
- Enables Generate dialog with clipboard actions in desktop app
23+
- feat: add setInnerBendsOpacity function to manage inner bends opacity
24+
- feat: add optional optimizeHtmlLabels config to clean up HTML labels [jgraph/drawio#5516]
25+
- feat: Add "Search Shapes in Open Libraries" to omni search [jgraph/drawio-desktop#2320]
26+
- Update resources submodule with translations for searchShapesInOpenLibraries
27+
- fix: round text y-coordinates to 2 decimals in HTML-to-SVG label conversion
28+
- Update resources submodule with translation fixes across 15 languages
29+
- perf: reuse persistent div in getSizeForString to avoid repeated DOM reflows
30+
- refactor: remove unused enableWrap parameter from mxText.updateSize
31+
- refactor: remove IE8 dead code from mxText
32+
- refactor: remove IE and IE11 dead code across entire codebase
33+
- Update resources submodule with removed unused improveContrast key
34+
- feat: make default file type configurable via Editor.configure [jgraph/drawio-desktop#1430]
35+
- Update resources submodule with 9 unused resource keys removed
36+
- fix: respect hidden tags in PDF export and printing [jgraph/drawio#3183]
37+
- feat: populate tags URL/config param with current hidden tags state
38+
- feat: streamline hidden tags handling across export and UI components
39+
- feat: add root/layer metadata and type attribute to svgdata plugin SVG export [jgraph/drawio#5527]
40+
- fix: always prevent default scroll on spacebar when activating panning [jgraph/drawio/issues/5524]
41+
- fix: use this.format instead of undefined self.format in wrapSvgBlockElements
42+
- fix: replace transform with zoom for improved print preview scaling
43+
- feat: add enableLocalFonts config flag for desktop font scanning [jgraph/drawio-desktop#2371]
44+
- fix: resolve %pagenumber% for each page during all-pages PDF export [jgraph/drawio-desktop#2376]
45+
- Refactor export dialog layout and styles
46+
- feat: extract embedded XML from PDF files in CLI export [jgraph/drawio-desktop#2160]
47+
- fix: apply --width/--height to PDF export in CLI [jgraph/drawio-desktop#2162]
48+
- feat: add contractParent and groupPadding styles for auto-shrinking groups [jgraph/drawio#618]
49+
- Restyle embed dialogs and add auto-height for CustomDialog
50+
- Move dialog style guide to separate file and add auto-height to print dialog
51+
- Restyle config-editor dialog to match main app theme
52+
- fix: avoid inline toolbar overlap with edge labels and child elements
53+
- Remove agent and version attributes from mxfile
54+
- fix: disable MathJax inline line breaking for edge labels [jgraph/drawio#5514]
55+
- Add fixedHeader style for swimlane shapes
56+
157
24-MAR-2026: 29.6.6
258

359
- Enhances tab activation and scrolling behavior in the page tab container
@@ -10,7 +66,7 @@
1066
- Update chat window dimensions in openGenerateDialog function
1167
- Allow docked windows to be resized
1268
- Update clipboard copy label in ChatWindow dialog
13-
- Adds animated git export to atlas.min.js
69+
- Adds animated gif export to atlas.min.js
1470
- Add insert diagram from clipboard option in generate dialog
1571
- Improve generate dialog dropdown labels for AI options
1672
- Fixes encoding for connect attachments comments

DIALOG_STYLE_GUIDE.md

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
# Dialog Style Guide
2+
3+
All new dialogs using `CustomDialog` should follow these patterns for consistent
4+
appearance. CSS classes are defined in `/src/main/webapp/styles/grapheditor.css`.
5+
6+
## Auto-Height
7+
8+
Pass `null` for the height parameter in `showDialog()`. The `Dialog` constructor
9+
measures `elt.scrollHeight` after the element is in the DOM and sizes the dialog
10+
automatically. Never compute dialog heights manually with `height += N` increments.
11+
12+
```javascript
13+
var dlg = new CustomDialog(this, div, okFn, null, mxResources.get('export'), helpLink);
14+
this.showDialog(dlg.container, 360, null, true, true);
15+
```
16+
17+
## Spacing (handled by CustomDialog and Dialog)
18+
19+
- **Dialog padding**: 24px on all sides (`.geDialog` CSS)
20+
- **Buttons margin-top**: 34px (default in `CustomDialog`)
21+
- **Container padding-bottom**: 10px (`CustomDialog` adds this to prevent margin collapse)
22+
- **Dialog chrome**: `Dialog` constructor adds 48px to both width and height for padding
23+
24+
These produce equal visual spacing above (34px) and below (34px = 10px + 24px) the
25+
button row. Do not override these values in individual dialogs.
26+
27+
## Sections (`geDialogSection`)
28+
29+
Group related controls in rounded section containers:
30+
31+
```javascript
32+
var section = document.createElement('div');
33+
section.className = 'geDialogSection';
34+
// ... add rows to section ...
35+
div.appendChild(section);
36+
```
37+
38+
## Form Rows (`geDialogFormRow`)
39+
40+
Use for label + input pairs (text fields, selects):
41+
42+
```javascript
43+
var row = document.createElement('div');
44+
row.className = 'geDialogFormRow';
45+
46+
var lbl = document.createElement('span');
47+
lbl.className = 'geDialogFormLabel';
48+
mxUtils.write(lbl, mxResources.get('zoom') + ':');
49+
row.appendChild(lbl);
50+
51+
var input = document.createElement('input');
52+
input.setAttribute('type', 'text');
53+
row.appendChild(input);
54+
55+
section.appendChild(row);
56+
```
57+
58+
## Checkbox Rows (`geDialogCheckRow`)
59+
60+
Use `addCheckbox` with `useCheckRow=true` (9th parameter) for consistent checkbox
61+
layout with flex alignment:
62+
63+
```javascript
64+
var cb = this.addCheckbox(section, mxResources.get('shadow'),
65+
false, null, null, null, null, null, true);
66+
```
67+
68+
For indented sub-options (e.g., "Layers" under "Lightbox"):
69+
70+
```javascript
71+
cb.checkRow.style.paddingLeft = '24px';
72+
```
73+
74+
## Inline Fields (`geDialogInlineFields` / `geDialogInlineField`)
75+
76+
Use for side-by-side fields (e.g., Width + Height):
77+
78+
```javascript
79+
var row = document.createElement('div');
80+
row.className = 'geDialogInlineFields';
81+
82+
var field = document.createElement('div');
83+
field.className = 'geDialogInlineField';
84+
// ... add label + input to field ...
85+
row.appendChild(field);
86+
87+
section.appendChild(row);
88+
```
89+
90+
## Dialog Title
91+
92+
Center-aligned `<h3>` with standard margins:
93+
94+
```javascript
95+
var hd = document.createElement('h3');
96+
mxUtils.write(hd, title);
97+
hd.style.cssText = 'width:100%;text-align:center;margin-top:0px;margin-bottom:10px';
98+
div.appendChild(hd);
99+
```
100+
101+
## Edit Button (Lightbox Dialogs)
102+
103+
Use `addEditButton` which creates a `geDialogCheckRow` with an indented select:
104+
105+
```javascript
106+
var editSection = this.addEditButton(optSection, lightbox);
107+
var edit = editSection.getEditInput();
108+
```
109+
110+
## Dark Mode
111+
112+
All CSS uses `light-dark()` for color values. Never hardcode colors in JS — use
113+
the CSS classes which handle both modes automatically.
114+
115+
## Testing Dialogs
116+
117+
Use `?dev=1&ui=classic` to keep the menubar visible regardless of window size.
118+
Test with both single-page and multi-page diagrams, as extra controls appear
119+
when multiple pages exist.

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
29.6.6
1+
29.6.7

0 commit comments

Comments
 (0)