Skip to content

Releases: wevm/zyzz

zyzz@0.0.40

Choose a tag to compare

@github-actions github-actions released this 22 Oct 21:22
410740f

Patch Changes

  • bddfd77: Folded applications of imported styles in production graph compiles, and compiled a cx call or no-argument application spread alone onto a DOM element to a className attribute 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, and key renders that element directly with a class list from a precompiled table or concatenation.
  • 43137e0: Merged each cx combination 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

Choose a tag to compare

@github-actions github-actions released this 22 Oct 04:51
1a57158

Patch Changes

  • be0ca7d: Fixed cx applications of exported module-level style definitions, such as cx(a(), b()) with export const a = style(...), including definitions exported with export { a } and definitions declared after the composing function. Compilation previously failed with Composition 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 cx argument reads no longer ship.
  • 23943be: Production builds fold wrapper components that apply one style, forward children, and pass at most the caller's className. A use site that passes only children, className, and key renders the host element with the merged class list, through local and imported source modules.
  • 5f211d9: Added selection: 'class' to variants definitions. Each selected choice then adds its own generated class instead of a data-* attribute, so applications return only className and style. Rules keep their order and :where() specificity, so defaults, null, compounds, conditions, payloads, and cx resolve as with attribute selection.

zyzz@0.0.38

Choose a tag to compare

@github-actions github-actions released this 21 Oct 22:40
1f47488

Patch Changes

  • 10d1aff: Compiled applications are cheaper. styles.card() spread into JSX becomes a className attribute, and styles.card({ className }) joins classes without allocating a props callable. Unconditional recipes compile to an inline selector, so React bundles no longer include the Recipe and Html runtime helpers. Unused definitions are marked pure and tree-shake.
  • f30f33b: Compiled cx calls 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, and 3.5 (0.125rem to 0.875rem) to the zyzz/default spacing scale, so Tailwind's gap-0.5 becomes gap: 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/vite announces 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 cx applications of namespace styles members when the namespace also declares a non-exported const definition, such as a private ring composed by style([{ color: '#fff' }, ring]). Compilation previously failed with Composition 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 as z-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 cx combinations with short module-scoped names, such as z_X8T0-w3, instead of readable paths. Development builds keep readable names. Vite and unplugin builds also add a style's z-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' }, in defineVars, extendVars, and defineConfig. 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' and 0: { 5 }, throw Vars.InvalidError. Keys containing ! now report Expected a nonempty variable key without importance or conditions.
  • da60577: Fixed zyzz/vite development 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/vite rejecting server builds with a Node target, such as build: { ssr: true, target: 'node20' }. Server environments now skip the CSS target check, and a client build fails only when its emitted CSS contains light-dark() and a CSS target would lower it or names no browser. When build.cssTarget is unset and build.target names no browser, such as node20 or es2022, CSS targets default to Chrome/Edge 123, Firefox 120, and Safari 17.5.

zyzz@0.0.36

Choose a tag to compare

@github-actions github-actions released this 21 Oct 04:11
0b7311c

Patch Changes

  • 134de73: Improved type-checking performance of style and variants. 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

Choose a tag to compare

@github-actions github-actions released this 21 Oct 02:00
dc22f35

Patch Changes

  • 38f75f4: Fixed invalid typography sets reducing the whole style or variants object type to never. 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. null at an existing leaf or category removes it from the extension's references, style tokens, and emitted CSS. A removal of a missing path, or a null inside a leaf, throws Vars.InvalidError.

    const site = Vars.extend(
      base,
      { radius: { '3xl': null, '4xl': null }, shadow: null },
      { id: 'site/vars' },
    )

zyzz@0.0.34

Choose a tag to compare

@github-actions github-actions released this 18 Oct 04:24
f8b0fbe

Patch Changes

  • 07f0d3f: Added zyzz/compiler/wasm, which compiles web source graphs in browsers and Cloudflare Workers without the native addon. Graph.create takes the zyzz/compiler.wasm module, compiled or as bytes, and its compile takes the web options of Graph.compile and returns the same output. Failures throw Graph.CompileError with 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:workers before 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

Choose a tag to compare

@github-actions github-actions released this 15 Oct 17:55
306150d

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.