mirror of
https://github.com/penpot/penpot.git
synced 2026-10-29 05:50:35 +00:00
Replace the @penpot/tokenscript npm package (the TypeScript interpreter) with penpot/tokenscript-interpreter, a Clojure and ClojureScript interpreter that now lives in its own repository and compiles into the frontend build. The frontend adapter (app.main.data.tokenscript) resolves tokens with it behind the existing :tokenscript flag and maps its results to the values and errors the workspace uses: - Token values are validated by the interpreter's token types, passed by their DTCG names: `1foo` is not a dimension, a number has no unit, an opacity is between 0 and 1. Penpot only adds its own limits (font weight names, text decoration keywords). - Division by zero, incompatible units, unknown functions and function arguments out of range get messages of their own, and token pills show the message of their error. - Font family names are quoted before resolving, as in the adapter this replaces (#11750): `Red Hat` stays one name. The token form's value input passed the token name to the tokenscript resolver in place of the typed value, and no name at all for a new token. It now resolves the typed value under the form's token name, as the StyleDictionary path does. StyleDictionary stays the default until the interpreter is stable. frontend/deps.edn pins the interpreter by tag and commit, v0.1.0. Signed-off-by: Florian Schroedl <flo.schroedl@gmail.com>
71 lines
2.1 KiB
Clojure
71 lines
2.1 KiB
Clojure
{:paths ["src" "vendor" "resources" "test"]
|
|
:deps
|
|
{;; Carries `app.common.render-wasm.*`, shared with the headless exporter.
|
|
penpot/common
|
|
{:local/root "../common"}
|
|
|
|
org.clojure/clojure {:mvn/version "1.12.6"}
|
|
binaryage/devtools {:mvn/version "RELEASE"}
|
|
metosin/reitit-core {:mvn/version "0.11.0"}
|
|
funcool/okulary {:mvn/version "2022.04.11-16"}
|
|
|
|
funcool/tubax
|
|
{:git/tag "v2025.11.28"
|
|
:git/sha "2d9a986"
|
|
:git/url "https://github.com/funcool/tubax.git"}
|
|
|
|
funcool/potok2
|
|
{:git/tag "v2.3"
|
|
:git/sha "bdebbdb"
|
|
:git/url "https://github.com/funcool/potok.git"
|
|
:exclusions [funcool/beicon2]}
|
|
|
|
funcool/beicon2
|
|
{:git/tag "v2.3"
|
|
:git/sha "df7058a"
|
|
:git/url "https://github.com/funcool/beicon.git"}
|
|
|
|
funcool/rumext
|
|
{:git/tag "v2.26"
|
|
:git/sha "d726717"
|
|
:git/url "https://github.com/funcool/rumext.git"}
|
|
|
|
penpot/tokenscript-interpreter
|
|
{:git/tag "v0.1.0"
|
|
:git/sha "224547d"
|
|
:git/url "https://github.com/penpot/tokenscript-interpreter.git"}
|
|
|
|
instaparse/instaparse {:mvn/version "1.5.0"}
|
|
garden/garden {:git/url "https://github.com/noprompt/garden"
|
|
:git/sha "05590ecb5f6fa670856f3d1ab400aa4961047480"}
|
|
}
|
|
|
|
:aliases
|
|
{:outdated
|
|
{:extra-deps {com.github.liquidz/antq {:mvn/version "RELEASE"}}
|
|
:main-opts ["-m" "antq.core"]}
|
|
|
|
:jvm-repl
|
|
{:extra-deps
|
|
{com.bhauman/rebel-readline {:mvn/version "RELEASE"}}
|
|
:main-opts ["-m" "rebel-readline.main"]}
|
|
|
|
:dev
|
|
{:extra-paths ["dev"]
|
|
:jvm-opts ["--sun-misc-unsafe-memory-access=allow"
|
|
"--enable-native-access=ALL-UNNAMED"]
|
|
|
|
:extra-deps
|
|
{thheller/shadow-cljs {:mvn/version "3.5.3"}
|
|
com.bhauman/rebel-readline {:mvn/version "RELEASE"}
|
|
org.clojure/tools.namespace {:mvn/version "RELEASE"}
|
|
criterium/criterium {:mvn/version "0.4.6"}}}
|
|
|
|
:shadow-cljs
|
|
{:main-opts ["-m" "shadow.cljs.devtools.cli"]
|
|
:jvm-opts ["--sun-misc-unsafe-memory-access=allow"
|
|
"-Dpenpot.wasm.profile-marks=true"
|
|
"-XX:+UnlockExperimentalVMOptions"
|
|
"-XX:CompileCommand=blackhole,criterium.blackhole.Blackhole::consume"]}
|
|
}}
|