mirror of
https://github.com/penpot/penpot.git
synced 2026-06-29 02:32:04 +00:00
The plugin text API rejected negative letter-spacing even though the product UI allows -200..200 (typography.cljs). Two defects in frontend/src/app/plugins/text.cljs: - `letter-spacing-re` (`#"^\d*\.?\d*$"`) had no provision for a leading minus, so any negative value failed validation. - The text-range `:letterSpacing` setter inverted its guard: it used `(or (empty? value) (re-matches ...))` to mean "invalid", which rejected matching values and let non-numeric input through. The text-shape setter and the sibling `lineHeight` range setter both correctly use `(not (re-matches ...))`. Fix the regex to allow an optional leading minus and add the missing `not` so the range setter matches the shape setter. Adds regression coverage for the regex accept/reject contract. Fixes #9780 Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: Filip Sajdak <filip.sajdak@siili.com>