Commit Graph
7 Commits
Author SHA1 Message Date
aiongg bf8c3486f1 Swatches and layers: Swatch Options and Layer Options dialogs rename them
- swatch.options: rename, Name with Color Value, process/spot, colour mode
  and values, tint, in one undo step; special swatches keep their names,
  and a taken or empty name changes nothing.
- Document::rename_swatch_refs points every use at a renamed swatch:
  tints, colour groups, inks, paragraph/character/object/cell/table
  styles, item fills, strokes, gaps, effects and column rules, text
  colours, rules, shading, borders, table cells and the footnote rule.
- layer.set takes every Layer field (show guides, suppress wrap when
  hidden), a layer colour name, and rejects empty or duplicate names and
  unknown colours.
- Swatches panel: double-click or Swatch Options… opens the dialog;
  colour groups get Color Group Options…. Layers panel: double-click or
  Layer Options for "name"… opens Layer Options (app.layerOptionsDialog).
2026-10-10 22:37:47 +00:00
Brandon ThomasandClaude Opus 5.5 89891fdfbe Never crash: geom and color return or fall back instead of panicking
Replace the unwrap/expect calls in path closing, bounds, Pathfinder output
and gradient sampling with let-else / if-let; the ASE reader uses checked
offsets (a 32-bit length could overflow on wasm32). Both crates now deny
unwrap/expect/panic/unimplemented/todo/unreachable.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 11:39:33 -04:00
Brandon ThomasandClaude Opus 5.5 e95f562425 O: PDF/X-4 — output intent with our own CMYK ICC profile, identification, checks
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 07:13:53 -04:00
Brandon ThomasandClaude Opus 5.5 67dd4852ca F: Load/Save Swatches (.ase) — swatch.load, swatch.save, Swatches panel menu
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 15:49:27 -04:00
Brandon ThomasandClaude Opus 5.5 f8ccff2470 F: Color panel, Color Picker, unnamed colours
- color: Swatch.hidden — unnamed colours (applied, not listed in Swatches until added)
- engine: object.color (reuses a swatch with the same colour, else an unnamed one; fill or
  stroke), swatch.addToSwatches (optionally named; users follow the rename),
  swatch.addUnnamed (+ test)
- UI: Color panel with fill/stroke proxy, CMYK/RGB/Lab, channel sliders with gradient tracks and
  value fields, tint slider for named swatches, spectrum ramp, Add to Swatches; Color Picker
  dialog (double-click a proxy chip); Swatches hides unnamed colours

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 08:45:39 -04:00
Brandon ThomasandClaude Opus 5.5 91ae2b3cc9 M0: engine, tools, egui UI, desktop app, CLI, sample document, docs
Engine with command registry (~100 commands), tool hosting with one-step
undo per gesture, InDesign-style egui frontend (app bar, Control panel,
Tools panel, rulers, guides, frame edges, ports/threads, Properties/Pages/
Layers dock, panels, dialogs), JSON control channel, headless CLI renderer,
generated sample magazine, README/AGENTS/ROADMAP/ASSETS.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 10:39:15 -04:00
Brandon Thomas e1e1352fff first commit 2026-10-01 09:13:29 -04:00