Commit Graph
3522 Commits
Author SHA1 Message Date
Taha-Mahmoodi b9ccfdc072 Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 16:45:59 +04:30
BFlat dab8b9a494 Merge pull request #6584 from dotCooCoo/fix/web-plugin-budget-clock
Plug-ins: the web build times the first-view budget and each run's limit
2026-11-11 19:14:55 +07:00
Taha-Mahmoodi 420afedb0f Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 16:41:50 +04:30
BFlat df081c52fa Merge pull request #6581 from jmverges/fix/6472-ai-save-type-stroke-join
.ai save: stroked type keeps its cap, join and miter limit
2026-11-11 19:10:17 +07:00
Taha-Mahmoodi f72c2560e1 Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 16:36:45 +04:30
BFlat e8a570cb0e Merge pull request #6578 from dotCooCoo/fix/print-bitmap-side-limit
Print: Print as Bitmap prints all of a page longer than 32,768 pixels
2026-11-11 19:05:50 +07:00
Taha-Mahmoodi 6b0d11d772 Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 16:15:46 +04:30
BFlat c443a25016 Merge pull request #6569 from dotCooCoo/feat/script-strict-on
Scripts: #strict on runs the script with strict write checks instead of refusing it
2026-11-11 18:45:03 +07:00
dotCooCoo c03fe29ad8 Plug-ins: the web build times the first-view budget and each run's limit
The web build had no clock for plug-in runs, so its first view deferred
every plug-in live effect until Effect > Refresh Deferred Effects, and a
run's wall-clock limit was not enforced there. The deferrals clock and
the run deadline now read `web_time::Instant`, which is the system's
monotonic clock on the desktop and the page's `performance.now()` in the
web build. The web's first view now shares the same 2,000 ms budget, and
its runs stop at the 5 s, 60 s and 300 s limits as on the desktop.

Docs: docs/plugins.md, docs/mcp.md, docs/target-app-parity.md.
2026-11-11 03:41:05 -08:00
Taha-Mahmoodi a947eb60eb Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 16:06:52 +04:30
BFlat 7e9633e3cb Merge pull request #6573 from dotCooCoo/fix/rasterize-side-limit
Rasterize: art longer than 32,768 pixels at the resolution is refused, not cut off
2026-11-11 18:35:36 +07:00
Taha-Mahmoodi 610ec1a13f Merge remote-tracking branch 'origin/main' into feat/glyph-alternates
# Conflicts:
#	docs/gaps.md
#	docs/target-app-parity.md
2026-11-11 15:57:38 +04:30
jmvergesandClaude Opus 5.5 8b39cbc324 .ai save: stroked type keeps its cap, join and miter limit
The text document writer wrote a type stroke's paint and weight but not
its cap, join or miter limit, which .ai import reads since #6500 (keys
61, 62 and 64). A file saved here and opened again came back with butt
caps, miter joins and a miter limit of 10, and the save reported those
attributes as left out. A stroked run now writes the three keys,
numbered as PostScript numbers caps and joins, with the miter limit as
import takes it back (1 to 500, else 10), and they no longer count as
lost. A run without a stroke no longer counts them as lost either: they
draw nothing.

Follow-up to #6472.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 11:25:55 +00:00
BFlat 212bc9f837 Merge pull request #5457 from Taha-Mahmoodi/fix/ruler-double-click-guide
Fix #5239: double-clicking a ruler adds a guide there
2026-11-11 18:24:56 +07:00
Taha-Mahmoodi e43404d945 Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 15:53:35 +04:30
BFlat 31971bc090 Merge pull request #6555 from dotCooCoo/feat/plugin-effect-open-budget
Plug-ins: live effects of a document's first view share a 2,000 ms budget
2026-11-11 18:22:28 +07:00
dotCooCoo 68f3095cfd Print: Print as Bitmap prints all of a page longer than 32,768 pixels
Print as Bitmap limited each page's image to 65,535 pixels a side, but the
renderer draws at most 32,768. A 9000 x 100 pt artboard at a 300 ppi raster
effects resolution printed as an image that stopped at 7,864 pt and was
placed as if whole. The resolution is now lowered until the longest side
fits.
2026-11-11 03:21:57 -08:00
Taha-Mahmoodi 980f4fb5a9 Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 15:47:33 +04:30
BFlat d5c75d3699 Merge pull request #6567 from dotCooCoo/fix/flatten-long-area-side-limit
Flatten Transparency: a long rasterized area is placed whole
2026-11-11 18:16:31 +07:00
dotCooCoo 2788707eed Docs: the script directives gap lists what remains 2026-11-11 02:57:45 -08:00
Taha-Mahmoodi 1e23135738 Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 15:26:44 +04:30
dotCooCoo ee40cc10d7 Rasterize: art longer than 32,768 pixels at the resolution is refused, not cut off
Object > Rasterize and the redrawn path of Crop Image allowed images up to
65,535 pixels a side, but the renderer draws at most 32,768. A 100 x 5569 pt
rectangle rasterized at 600 ppi came back 32,768 pixels tall, and the bottom
29% of the art was gone. Such an image is now refused like one over the
64 megapixel limit, and the art stays as it was.
2026-11-11 02:55:59 -08:00
BFlat 4e0e1c8af7 Merge pull request #6564 from dotCooCoo/fix/graph-unpainted-row-opacity
Docs: a series mark's row without paint leaves the stored paint, not its opacity
2026-11-11 17:55:48 +07:00
BFlat f03562c0e3 Merge pull request #6566 from dotCooCoo/fix/gaps-ai-editing-copy-duplicate
Docs: gaps.md no longer says .ai editing data is not written
2026-11-11 17:55:38 +07:00
Taha-Mahmoodi 2da4f7a569 Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 15:08:14 +04:30
BFlat 6244ac54bf Merge pull request #6560 from dotCooCoo/fix/pasted-svg-filter-names
Effects: pasted art keeps an SVG filter whose name the document gives another filter
2026-11-11 17:37:26 +07:00
BFlat 81bfed87d4 Merge pull request #6561 from dotCooCoo/fix/graph-labels-keep-paragraph-settings
Graphs: labels keep their paragraph settings and anti-aliasing when the graph is drawn again
2026-11-11 17:37:16 +07:00
Taha-Mahmoodi c9567949d1 Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 15:04:00 +04:30
dotCooCoo 1da6e899d3 Merge main into feat/script-strict-on 2026-11-11 02:33:33 -08:00
BFlat 00e078c861 Merge pull request #6558 from dotCooCoo/fix/control-bar-paragraph-doc-width
Docs: the Control bar's Paragraph alignment buttons are pinned at 1536 pt
2026-11-11 17:32:22 +07:00
Taha-Mahmoodi bef19453bf Merge remote-tracking branch 'origin/main' into feat/glyph-alternates
# Conflicts:
#	docs/gaps.md
#	docs/target-app-parity.md
2026-11-11 15:01:35 +04:30
Taha-Mahmoodi 2a2add8af1 Merge remote-tracking branch 'origin/main' into fix/ruler-double-click-guide
# Conflicts:
#	docs/gaps.md
#	docs/target-app-parity.md
2026-11-11 15:01:34 +04:30
BFlat 6a2b5b9c06 Merge pull request #6459 from Messhias/feat/g5-style-lib-status-effects
G5: built-in Status Effects graphic style library
2026-11-11 17:30:34 +07:00
dotCooCoo c81ae88c85 Flatten Transparency: a long rasterized area is placed whole
The flattener limited an image's resolution only by its total pixels, while
the renderer draws at most 32,768 pixels a side. A long area, such as a narrow
see-through gradient strip down a 2 m banner at 1200 ppi, came back cut off
at that length and was placed as if whole, so the rest of the strip was lost
in Flatten Transparency and in PDF/X-1a, PDF/X-3 and PDF 1.3 exports. The
resolution is now also limited by the longest side, as raster effects are.
2026-11-11 02:23:59 -08:00
Taha-Mahmoodi 472cb7b409 Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 14:47:52 +04:30
dotCooCoo 3a44447aeb Docs: remove the duplicated G9 .ai sentence that says .ai editing data is not written
A merge left a second copy of the G9 `.ai`/EPS Missing bullet's opening inside the bullet. That copy says
writing the editing data is out of scope, while the same bullet and file-format-parity.md say a
PDF-compatible `.ai` carries an editing copy of the art. The bullet now has one copy, with the newer
brush wording that matches the 2026-11-05 entry above it.
2026-11-11 02:17:45 -08:00
BFlat 264ca9bf4e Merge pull request #6559 from dotCooCoo/fix/dimension-expand-keeps-live
Dimension tool: a dimension selected with its art stays live through Expand and Outline Stroke
2026-11-11 17:16:39 +07:00
Taha-Mahmoodi 0b1ad2488e Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 14:44:52 +04:30
BFlat 9a28264cfe Merge pull request #6557 from dotCooCoo/feat/script-alert-confirm-prompt
Scripts: alert, confirm and prompt open dialogs with Stop, and headless runs take their answers from script.run
2026-11-11 17:13:46 +07:00
dotCooCoo 16cc5c107c Docs: a row without paint leaves the series' stored paint, not its opacity
The graph still stores an opacity or blend mode set on a series mark's row
that has no paint, as it does for transparency.set. The sentence now says
that such a row leaves only the stored paint unchanged.
2026-11-11 02:09:08 -08:00
dotCooCoo 08eca05731 Scripts: #strict on runs the script with strict write checks instead of refusing it
`#strict on` and `//@strict on` no longer end the run as unsupported. They
turn on the checks the dollar-object help page gives for `$.strict`
(https://extendscript.docsforadobe.dev/extendscript-tools-features/dollar-object/):
an assignment to a read-only property throws a TypeError, and so does a new
property on an object that takes none.

VectorCraft's own rules: a getter-only property counts as read-only; the
objects that take no new properties are the non-extensible ones
(preventExtensions, seal, freeze, and the frozen vc and $ objects); the last
`#strict` line of the script and its includes sets the whole run, and runs
without one are unchanged; eval and Function take the checks of the code
that compiles them; a file $.evalFile runs keeps its own line's checks for
its code and functions, or takes the caller's without one. The rest of ES5
strict mode stays with 'use strict'.

The js crate carries the setting per compiled source
(Realm::set_strict_writes, and a strict_writes callback on
HostItem::Evaluator), and applies it only to property assignments.
2026-11-11 02:04:49 -08:00
Taha-Mahmoodi 38707de39b Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-11 14:18:30 +04:30
Taha-Mahmoodi cfab2368f1 Merge remote-tracking branch 'origin/main' into fix/ruler-double-click-guide 2026-11-11 14:18:29 +04:30
BFlat e1c199a184 Merge pull request #6552 from dotCooCoo/docs/dynamic-symbols-edit-symbol-keeps-links
Docs: the Dynamic symbols entry says Edit Symbol keeps instances linked
2026-11-11 16:48:07 +07:00
dotCooCoo 32e22cb442 Effects: pasted art keeps an SVG filter whose name the document gives another filter
Pasted art whose svg.filter effect named one of the document's SVG filters
but drew another definition kept that name, so editing or deleting the
document's filter rewrote the pasted art's filter. Paste now renames such
a filter to a free name ("Soft 2") when the art comes from another
document or from SVG, and takes the document's filter when the art is
pasted back into the document it was copied from. Symbols, patterns,
brushes and graphic styles on the clipboard follow the same rule.
2026-11-11 01:44:11 -08:00
dotCooCoo bcdb908b47 Docs: the Control bar's Paragraph alignment buttons are pinned at 1536 pt
#6090 moved the pinned window width in
the_control_bar_shows_the_paragraph_alignment_of_the_selected_type from
1440 to 1536 pt, since the bar's right end now keeps room for the panel
menu button. The progress line still named 1440 pt.
2026-11-11 01:38:30 -08:00
Fabio William Conceição 3c44a8ad7c G5: built-in Status Effects graphic style library
Eight style libraries; MCP docs list Status Effects and catch up Symbol libraries with UI Frames and Map Markers.
2026-11-11 09:38:28 +00:00
dotCooCoo d13f7324f9 Dimension tool: a dimension selected with its art stays live through Expand and Outline Stroke
A dimension selected with the art it measures became a plain group of
paths and text when Object › Expand, Object › Expand Appearance or
Object › Path › Outline Stroke ran, so it no longer redrew when moved
or restyled.

These commands now leave such a dimension's lines and label as they
are, also inside selected groups without fills, strokes or effects of
their own, and change only the other art. The dimension keeps its
export assets and variable bindings. When the new art no longer fits
the dimension's link, for example because the outlined stroke has
other anchors, the dimension stays where it was, no longer linked, as
it does when its art is deleted. Undo links it again.

When the dimension is all the command would change, the command
changes nothing and reports the error it gives for a selection with
nothing to change. Object › Expand… is no longer dimmed for the label
of such a dimension. A dimension selected without the art it measures,
a part of one, and one inside a selected group with an appearance of
its own still become plain groups, and Type › Create Outlines still
outlines the label.

Docs: docs/dimensions.md, docs/mcp.md, docs/target-app-parity.md.
2026-11-11 01:26:12 -08:00
Taha-Mahmoodi 7667032588 Merge remote-tracking branch 'origin/main' into feat/glyph-alternates
# Conflicts:
#	docs/gaps.md
#	docs/target-app-parity.md
2026-11-11 13:44:04 +04:30
Taha-Mahmoodi ce99eb533a Merge remote-tracking branch 'origin/main' into fix/ruler-double-click-guide
# Conflicts:
#	docs/gaps.md
#	docs/target-app-parity.md
#	docs/ui-parity.md
2026-11-11 13:44:04 +04:30