Repository navigation
Releases: wevm/zyzz
Release list
zyzz@0.0.40
Patch Changes
- bddfd77: Folded applications of imported styles in production graph compiles, and compiled a
cxcall or no-argument application spread alone onto a DOM element to aclassNameattribute instead of a spread of frozen props. Imports whose modules evaluate first also dropped their initialization reads, so bundlers remove unread definitions and their runtime while a bare import keeps the module's stylesheet. - b0324d4: Folded selection components in production builds, across local and imported modules. When a component's body is one host element spreading one recipe application of pure prop expressions, a use site passing only those props,
children,className, andkeyrenders that element directly with a class list from a precompiled table or concatenation. - 43137e0: Merged each
cxcombination and folded wrapper chain whose local styles always apply together into one class in grouped output, dropping overridden declarations. Combinations whose nested blocks a later declaration only partly overrides keep their separate rules.
zyzz@0.0.39
Patch Changes
- be0ca7d: Fixed
cxapplications of exported module-levelstyledefinitions, such ascx(a(), b())withexport const a = style(...), including definitions exported withexport { a }and definitions declared after the composing function. Compilation previously failed withComposition requires statically known local style applications. - 4ff7d4c: Dropped initialization guards from applications inside function expressions when no earlier module statement can call them, and folded recipe and dynamic applications spread alone onto elements so their definitions, unread namespace members, and known
cxargument reads no longer ship. - 23943be: Production builds fold wrapper components that apply one style, forward
children, and pass at most the caller'sclassName. A use site that passes onlychildren,className, andkeyrenders the host element with the merged class list, through local and imported source modules. - 5f211d9: Added
selection: 'class'tovariantsdefinitions. Each selected choice then adds its own generated class instead of adata-*attribute, so applications return onlyclassNameandstyle. Rules keep their order and:where()specificity, so defaults,null, compounds, conditions, payloads, andcxresolve as with attribute selection.
zyzz@0.0.38
Patch Changes
- 10d1aff: Compiled applications are cheaper.
styles.card()spread into JSX becomes aclassNameattribute, andstyles.card({ className })joins classes without allocating a props callable. Unconditional recipes compile to an inline selector, so React bundles no longer include theRecipeandHtmlruntime helpers. Unused definitions are marked pure and tree-shake. - f30f33b: Compiled
cxcalls whose arguments are all known no-argument applications now select frozen props from a hoisted table instead of calling the runtime composition helper. Runtime compositions skip known inputs and emit smaller descriptors. - 1e00158: Added the half steps
0.5,1.5,2.5, and3.5(0.125remto0.875rem) to thezyzz/defaultspacingscale, so Tailwind'sgap-0.5becomesgap: 0.5. - e39182e: Wrote dynamic style fields that fill one unconditional declaration directly as inline properties when the application is spread alone onto an element.
- 686905f: Incremental graph compiles now reuse the extraction of every module that extracts as before an edit, and skip graph-wide work that an edit leaves unchanged, so editing one component recompiles that component instead of every module that imports it. In development,
zyzz/viteannounces each module update once until the environment loads it, keeps stylesheets current when a compiled-away theme begins to import a package, and leaves server stylesheets that no request transformed. - d687c05: Fixed
cxapplications ofnamespace stylesmembers when the namespace also declares a non-exportedconstdefinition, such as a privateringcomposed bystyle([{ color: '#fff' }, ring]). Compilation previously failed withComposition requires statically known local style applications. - 0cab68d: Fixed atomic rules that several modules shared under one readable name, such as
z-text-red, losing the cascade position of the module that defined them. Shared atomic names now include the module qualifier, such asz-bgXhTU-text-red, so an override from a consuming module wins over the imported component's declarations. - 87d810e: Production builds name contextual and shared atomic rules, grouped rules, recipe classes, and
cxcombinations with short module-scoped names, such asz_X8T0-w3, instead of readable paths. Development builds keep readable names. Vite and unplugin builds also add a style'sz-style-*identity class only when a selector interpolates that style. Explicit style ids keep their identity classes. - 1e00158: Added dotted variable keys below a category, such as
spacing: { 0.5: '2px' }, indefineVars,extendVars, anddefineConfig. A dotted key resolves as a token name (gap: 0.5) and as a reference (vars.spacing[0.5]), and emits--z-spacing-0-5. Category and typography keys still reject dots, and two paths that join to one dotted name, such as'0.5'and0: { 5 }, throwVars.InvalidError. Keys containing!now reportExpected a nonempty variable key without importance or conditions. - da60577: Fixed
zyzz/vitedevelopment stylesheet updates that Vite 8.3 clients ignored, so a style edit now applies without a reload. Development compiles also read only each module's own import closure, batch modules that arrive together, and start import lookups concurrently, so an edit or a newly loaded module no longer recompiles and invalidates the whole project. - daca50a: Fixed
zyzz/viterejecting server builds with a Node target, such asbuild: { ssr: true, target: 'node20' }. Server environments now skip the CSS target check, and a client build fails only when its emitted CSS containslight-dark()and a CSS target would lower it or names no browser. Whenbuild.cssTargetis unset andbuild.targetnames no browser, such asnode20ores2022, CSS targets default to Chrome/Edge 123, Firefox 120, and Safari 17.5.
zyzz@0.0.36
Patch Changes
- 134de73: Improved type-checking performance of
styleandvariants. Reserved-key and condition-key unions are now cached per token set instead of being rebuilt for every declaration, so repeated calls against a configured theme check several times faster. Accepted inputs and diagnostics are unchanged.
zyzz@0.0.35
Patch Changes
-
38f75f4: Fixed invalid
typographysets reducing the wholestyleorvariantsobject type tonever. The error now stays on the offending property and lists the accepted set names. Invalid shorthand alias tokens also list their accepted tokens. -
56a745b: Added path removal to
Vars.extend.nullat an existing leaf or category removes it from the extension's references,styletokens, and emitted CSS. A removal of a missing path, or anullinside a leaf, throwsVars.InvalidError.const site = Vars.extend( base, { radius: { '3xl': null, '4xl': null }, shadow: null }, { id: 'site/vars' }, )
zyzz@0.0.34
Patch Changes
-
07f0d3f: Added
zyzz/compiler/wasm, which compiles web source graphs in browsers and Cloudflare Workers without the native addon.Graph.createtakes thezyzz/compiler.wasmmodule, compiled or as bytes, and itscompiletakes the web options ofGraph.compileand returns the same output. Failures throwGraph.CompileErrorwith the native error's name, message, and diagnostics.import { Graph } from 'zyzz/compiler/wasm' // Workers import a `.wasm` file as a compiled module import module from 'zyzz/compiler.wasm' // Links a consumer to a library contract without the native addon const output = Graph.create({ module }).compile({ contracts, imports, modules })
-
d289c1e: Fixed Vite analysis of server-only protocol imports such as
cloudflare:workersbefore TanStack Start removed them from client code. Resolvable protocol imports remained available for static style analysis, and unresolved ordinary file and package imports continued to report errors.
zyzz@0.0.33
Patch Changes
- c59662b: Shipped native compiler addons for macOS (arm64, x64), Windows (arm64, x64), and Linux glibc and musl (arm64, x64). Linux glibc addons now link against glibc 2.17, so they load on Amazon Linux 2023, RHEL 9, Debian 11, and Ubuntu 20.04. Other platforms still load the WebAssembly fallback.
- 56008a3: Fixed component import cycles through modules with runtime-only exports.
- 56008a3: Fixed route-local styles in TanStack split-route modules.