* 🔧 Validate only after propagation in tests
* 💄 Enhance some component sync traces
* 🔧 Add fake uuid generator for debugging
* 🐛 Remove old feature of advancing references when reset changes
Since long time ago, we only allow to reset changes in the top copy
shape. In this case the near and the remote shapes are the same, so
the advance-ref has no effect.
* 🐛 Fix some bugs and add validations, repair and migrations
Also added several utilities to debug and to create scripts that
processes files
* 🐛 Fix misplaced parenthesis passing propagate-fn to wrong function
The :propagate-fn keyword argument was incorrectly placed inside the
ths/get-shape call instead of being passed to tho/reset-overrides.
This caused reset-overrides to never propagate component changes,
making the test not validate what it intended.
* 🐛 Accept and forward :include-deleted? in find-near-match
Callers were passing :include-deleted? true but the parameter was not
in the destructuring, so it was silently ignored and the function
always hardcoded true. This made the API misleading and would cause
incorrect behavior if called with :include-deleted? false.
* 💄 Use set/union alias instead of fully-qualified clojure.set/union
The namespace already requires [clojure.set :as set], so use the alias
for consistency.
* 🐛 Add tests for reset-overrides with and without propagate-fn
Add two focused tests to comp_reset_test to cover the propagate-fn
path in reset-overrides:
- test-reset-with-propagation-updates-copies: verifies that resetting
an override on a nested copy inside a main and supplying propagate-fn
causes the canonical color to appear in all downstream copies.
- test-reset-without-propagation-does-not-update-copies: regression
guard for the misplaced-parenthesis bug; confirms that omitting
propagate-fn leaves copies with the overridden value because the
component sync never runs.
---------
Co-authored-by: Andrey Antukh <niwi@niwi.nz>
* 🎉 Add tokens to plugins API documentation
And add poc plugin example
* 📚 Document better the tokens value in plugins API
* 🔧 Refactor token validation schemas
* 🔧 Use automatic validation in token proxies
* 🔧 Use schemas to validate token creation
* 🔧 Use multi schema for token value
* 🔧 Use schema in token api methods
* 🐛 Fix review comments
---------
Co-authored-by: Andrey Antukh <niwi@niwi.nz>
* 🎉 Add tokens to color row
* 🎉 Add color-token to stroke input
* 🐛 Fix change token on multiselection with groups
* 🎉 Create token colors on selected-colors section
* ♻️ Fix comments
* ✨ Allow token applying for supported shape types only
* 🐛 Remove x/y attribute keys from spacing token
* ✨ Shape specific context-menu
* ✨ Only apply tokens to supported shapes when doing multi selection apply
* ✨ Handle groups not supported by tokens yet
* 🐛 Fix outdated tests
* ♻️ Commentary
* ✨ Add helper functions for attribute applicability checks
* ♻️ Groups don't have own attributes
* ♻️ Remove unused function
* ♻️ Move attribute logic to common.types.token
* ♻️ Add set token theme method schema
* ♻️ Add `:set-token-theme` dispatcher for `process-change` multimenthod
* ♻️ Add `set-token-theme` to the changes builder
* ♻️ Use new method on the frontend
* ♻️ Remove unused token theme methods
* ♻️ Add tests
* ♻️ Add library data to changes
* ♻️ Add new test case
* ♻️ Remove unused binding
* ♻️ Add set removal methods to tokens library
* ♻️ Add `set-token-set` method to changes
* ♻️ Add `set-token-set` to changes builder
* ♻️ Use new method in the token set creation
* ♻️ Use `set-token-set` in frontend events
* ♻️ Remove unused binding
* ♻️ Add tests
* ♻️ Remove old API methods
* ♻️ Remove unused parts of schema and multimethods
* ♻️ Make `:tokens` key optional in schema
* ♻️ Add `with-library-data` calls before `set-token-set`
* ♻️ Fix DOM properties error