Commit Graph
402 Commits
Author SHA1 Message Date
HassanKhan 75c884e333 Merge remote-tracking branch 'upstream/main' into fix-7741-pdf-text-stroke-cap
# Conflicts:
#	docs/roadmap.md
#	docs/target-app-parity.md
2026-11-15 12:33:21 +05:00
HassanKhan 9dafc08f8f PDF import: a glyph stroked otherwise gets a run of its own (#7741)
A filled glyph joins a run of the same fill whatever its stroke, so with
fill and stroke rendering shown a glyph at a time, the stroke replayed
over the last glyph restyled the whole run: glyphs before it took its
cap, join and miter limit. When that stroke differs from the run's, the
glyph's text now splits off into a run of its own; the line's text is
unchanged, so slots, gaps and authored flags still line up.

Also record the change in the parity and roadmap docs.
2026-11-15 11:05:54 +05:00
ruchirguitar f77bbaf32e docs: record Neon & Glow library in roadmap and align G5 estimate history 2026-11-15 09:55:20 +05:30
ruchirguitar 1ab2743f8e G5: resolve Tech Circuit documentation merge conflict
Merge current main and retain both the Pencil snapping documentation and Tech Circuit library evidence. Only docs/mcp.md required manual conflict resolution. Focused checks passed: no conflict markers or whitespace errors, all 28 catalogs retain four unique nonempty labels, and brush implementation/tests remain unchanged. No full local Cargo CI rerun.
2026-11-15 07:21:46 +05:30
dotCooCoo 09c6d5dcf1 Fix #7275: a typed artboard name follows its artboard
The rename field in Export for Screens tracked the artboard by its index. If the
artboards changed order while a name was typed (a command from the control channel
or MCP), Enter renamed the artboard that had moved into that index. The field now
tracks the artboard by its id and by the document it was opened in. When that
artboard is deleted, or another document becomes active, while its name is typed,
the field closes, no artboard is renamed, and Escape closes the dialog again.
2026-11-14 13:50:32 -08:00
makesomethingshit 9334dfd8d7 Fix #7275: Rename artboards in Export for Screens 2026-11-14 12:39:11 -08:00
ruchirguitar 1030b7aa71 G5: merge current main for Tech Circuit
Preserve Weather Icons and the Tech Circuit library while resolving documentation and Hungarian catalog conflicts. Validated all 13 cargo xtask ci gates on Linux and a fresh deep CodeRabbit review with zero findings.
2026-11-15 00:05:27 +05:30
ruchirguitar 9c787d2cdc Brushes: built-in Tech Circuit brush library
G5: add original procedural circuit art and pattern brushes, library regression coverage, translations, and progress documentation.
2026-11-14 19:00:49 +05:30
ruchirguitar 831c477ad6 Symbols: built-in Weather Icons symbol library 2026-11-14 15:43:16 +05:30
ruchirguitar 71df7e0e6d #6613: apply approved Gujarati proofreading corrections 2026-11-14 12:20:13 +05:30
ruchirguitar 7929c95ce9 #6613: guard web Gujarati selection and address local review 2026-11-14 10:29:25 +05:30
ruchirguitar 6f6746bd72 #6613: reconcile Gujarati catalog and complete current interface coverage 2026-11-14 09:44:24 +05:30
ruchirguitarandruchirguitar 30eb14d7dc PDF import: outlined Indic glyphs keep their own stroke and transparency (#5235) (#6957)
* PDF import: outlined Indic glyphs keep their own stroke and transparency (#5235)

Follow-up to #6906, for two review findings on how a line kept as
outlines is joined into paths:

- Glyphs were joined when their stroke widths matched; dash, cap, join
  and miter limit were ignored, so a dashed glyph took the stroke of the
  solid one before it. They join only when the whole stroke matches.
- Translucent glyphs were joined into one fill, where overlapping marks
  paint once instead of compositing as the file draws them. Only opaque
  glyphs join.

Also records the fix in the PDF row of docs/target-app-parity.md and in
docs/roadmap.md, as AGENTS.md asks.

Tests: outlined_glyphs_stroked_differently_stay_apart and
outlined_translucent_glyphs_stay_apart (both fail without the change).

* PDF import: outlined Indic glyphs under a soft mask stay apart; check kept geometry (#5235)

Review follow-ups on #6957 and #6906:

- Glyphs kept as outlines under a soft mask were joined into one path,
  so the mask was applied once to all of them where the file applies it
  to each glyph. They now join only when no soft mask is active.
- The fallback tests counted outline nodes only. A new test compares the
  kept outlines (element count and bounding box) with the same file
  opened as outlines, so a dropped or moved glyph fails it.

Tests: outlined_glyphs_under_a_soft_mask_stay_apart (fails without the
change) and kept_glyphs_are_where_the_file_draws_them.

* PDF import: mask outlined Indic glyphs one by one under a soft mask (#5235)

Review follow-up on #6957. Keeping glyphs out of one shared path was not
enough: each path still went into the soft mask's queue and
flush_masked wrapped them all in one masked group, so a mask that is not
constant was applied once to every glyph, where overlapping glyphs
composite one by one in the file.

With a soft mask active the queued art is now drained before the first
glyph and after each one, so every glyph gets a mask of its own.

Test: outlined_glyphs_under_a_varying_soft_mask_are_masked_one_by_one
checks that each outlined glyph carries its own mask (0 of 3 without
the change).

* #6957: clarify soft-mask exception in glyph grouping docs

---------

Co-authored-by: ruchirguitar <info@jeevantirth.org>
2026-11-14 03:26:20 +01:00
Don Omondi cfa3221dd3 Roadmap M3 row: the #1638 note goes in the Status cell 2026-11-13 03:21:08 -05:00
Don Omondi ffc22ffc4c Merge remote-tracking branch 'upstream/main' into fix/graphic-styles-list-height-2992
# Conflicts:
#	docs/roadmap.md
#	docs/target-app-parity.md
2026-11-13 03:20:58 -05:00
Don Omondi 74deb4aade Merge remote-tracking branch 'upstream/main' into fix/pdf-empty-actualtext-art-6971
# Conflicts:
#	docs/file-format-parity.md
#	docs/roadmap.md
#	docs/target-app-parity.md
2026-11-13 00:46:18 -05:00
Don Omondi 25c7c1a383 Merge remote-tracking branch 'upstream/main' into fix/graphic-styles-list-height-2992
# Conflicts:
#	docs/roadmap.md
#	docs/target-app-parity.md
#	docs/ui-parity.md
2026-11-13 00:45:57 -05:00
Don Omondi a0e4680710 Roadmap M4 row: the #6971 note goes in the Status cell 2026-11-12 23:29:02 -05:00
Don Omondi 9142716ddc Roadmap M3 row: the library-panel note goes in the Status cell (#2992) 2026-11-12 23:28:53 -05:00
Don Omondi b8877455be Roadmap M3 row: separate the moved notes from the status text 2026-11-12 23:28:36 -05:00
Don Omondi 1fe4529248 Roadmap M3 row: the panel-list notes go in the Status cell (#2992, #1638) 2026-11-12 23:28:16 -05:00
Don Omondi 8ba280ec44 Merge remote-tracking branch 'upstream/main' into fix/pdf-empty-actualtext-art-6971
# Conflicts:
#	docs/file-format-parity.md
#	docs/roadmap.md
#	docs/target-app-parity.md
2026-11-12 22:40:11 -05:00
Don Omondi cabef90876 Merge remote-tracking branch 'upstream/main' into fix/library-panel-list-height-2992
# Conflicts:
#	docs/roadmap.md
#	docs/target-app-parity.md
#	docs/ui-parity.md
2026-11-12 22:40:11 -05:00
Don Omondi 60228dbfd6 Merge remote-tracking branch 'upstream/main' into fix/graphic-styles-list-height-2992
# Conflicts:
#	docs/roadmap.md
#	docs/target-app-parity.md
#	docs/ui-parity.md
2026-11-12 22:39:56 -05:00
Don Omondi 79954e36cb Library panels (#2992): M3 and area row notes 2026-11-12 21:45:59 -05:00
Don Omondi 34798989bd Swatches list (#1638): M3 and area row notes 2026-11-12 21:45:37 -05:00
Don Omondi 432fe0362f Graphic Styles list (#2992): M3 and area row notes 2026-11-12 21:45:12 -05:00
Don Omondi 86a997d928 PDF import (#6971): parity and roadmap entries 2026-11-12 21:44:48 -05:00
Don Omondi ce42acea1d Library panels (#2992): parity and roadmap revision rows 2026-11-12 20:54:09 -05:00
Don Omondi 914607a72c Swatches list (#1638): parity and roadmap revision rows 2026-11-12 20:52:15 -05:00
Don Omondi 600302c3a5 Graphic Styles list (#2992): parity and roadmap revision rows 2026-11-12 20:51:35 -05:00
73b06e478e UI: icon flyouts resize from their top edge and free top corner (storytold/craft-libs#1094) (#6913)
Pin craft-ui to c4b8405d, which adds a top edge and the canvas-side top
corner to icon-strip flyouts and saves the moved top per group. Accept
its new MoveFlyoutTop docking action, and restore the saved top when a
group returns to its place. A docking regression checks the cursors, an
upward top-edge and free-corner drag with the bottom and icon-column edge
fixed, and the top after reopening and in a saved layout.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Codex <codex@openai.com>
2026-11-12 23:54:17 +01:00
BFlat 036c563635 Merge pull request #6820 from dotCooCoo/feat/brushes-ink-wash-library
Brushes: built-in Ink and Wash library with tapered ink, brush pen and wash brushes
2026-11-13 02:46:00 +07:00
makesomethingshit 777fb2fa42 Merge upstream/main into fix/6865-ai-oversized-artboard 2026-11-13 02:19:20 +09:00
dotCooCoo fc1a08edbd Merge main into feat/brushes-ink-wash-library 2026-11-12 08:46:00 -08:00
makesomethingshit c36f863073 Merge upstream/main into fix/6865-ai-oversized-artboard 2026-11-13 00:44:37 +09:00
Taha-Mahmoodi 2d62c35d69 Merge remote-tracking branch 'origin/main' into feat/glyph-alternates
# Conflicts:
#	docs/gaps.md
#	docs/roadmap.md
#	docs/target-app-parity.md
2026-11-12 19:55:05 +04:30
BFlat 10ea235ee4 Merge pull request #6659 from ruchirguitar/fix/numfield-short-drag-1326
Numeric fields: a sub-threshold pointer movement keeps its caret (#1326)
2026-11-12 22:21:11 +07:00
Taha-Mahmoodi 7c6f51e8d6 Merge remote-tracking branch 'origin/main' into feat/glyph-alternates 2026-11-12 19:37:53 +04:30
Taha-Mahmoodi 9b7a16514b docs: add M7 Glyphs alternates entry in roadmap.md 2026-11-12 19:37:52 +04:30
BFlat c607814697 Merge pull request #6798 from dotCooCoo/feat/brushes-dry-media-library
Brushes: a built-in Dry Media library of grainy chalk, pencil, crayon and charcoal art brushes
2026-11-12 22:01:26 +07:00
makesomethingshit ec9a9fd3c9 Fix #6865: trust oversized editing artboards with capped PDF pages 2026-11-12 23:44:54 +09:00
ruchirguitar 5b2264bb8f Merge remote-tracking branch 'upstream/main' into fix/numfield-short-drag-1326
# Conflicts:
#	docs/gaps.md
#	docs/ui-parity.md
2026-11-12 19:52:50 +05:30
dotCooCoo ba23477b23 Merge main into feat/brushes-ink-wash-library 2026-11-12 05:50:48 -08:00
dotCooCoo 6e9ffa92cc Merge main into feat/brushes-dry-media-library 2026-11-12 05:31:21 -08:00
Ahmed Gomaa c66335eaa7 Merge upstream main into file/save-read-only-offers-save-as 2026-11-12 13:40:13 +02:00
dotCooCoo aba45b7249 Merge main into feat/brushes-bristle-library 2026-11-12 00:40:51 -08:00
ruchirguitarandClaude Opus 5.5 3c872586b4 docs: record the Gujarati catalog in the parity and roadmap docs
Adds Gujarati to the target-app-parity localization evidence list and
the docs/roadmap.md milestone notes, following the Hindi entries, and
marks the catalog as reviewed by a native speaker with zero/one
singular plurals. Scores and estimates unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-12 13:12:04 +05:30
dotCooCoo c95a4d901f Brushes: built-in Ink and Wash library with tapered ink, brush pen and wash brushes
Window › Brush Libraries gains Ink and Wash after Art Ribbons: Tapered Ink, an art brush broad near its start that thins to a fine tip; Brush Pen, a calligraphic brush whose size follows the pen pressure; and Soft Wash and Pooling Wash, art brushes of translucent gray layers. The art brushes take the stroke color as tints. The names, shapes and opacities are VectorCraft's own.

Docs: docs/mcp.md, docs/gaps.md, docs/roadmap.md, docs/target-app-parity.md.
2026-11-11 23:17:31 -08:00
dotCooCoo ac51222f13 Merge main into feat/brushes-dry-media-library
# Conflicts:
#	docs/gaps.md
2026-11-11 23:01:17 -08:00