0.6.0 to 0.18.0 on npm · 0.18.0 is current

What’s new in Texuli

Every package and capability added since 0.5.0, each with a small demo or a preview and a link to its full page. 0.18.0 is the current release on npm (pre-1.0, not a stable release), and 0.10.0 added design systems. Eleven packages are still in development: drag, workflows, deck, slides, editor, document, pages, forms, canvas, sheets and mcp.

0.18.0: Markdown and HTML, Texuli Emojis and four new Solutions

Published on npm as 0.18.0, the current release (pre-1.0), with @texuli/emojis published for the first time; the emoji art package @texuli/emoji-assets is in development and not published.

A CommonMark and GFM stack in @texuli/core with safe HTML, HTML to Markdown without a DOM and writers for nine chat formats; Texuli Emojis (no art is approved yet, so system emoji show by default); a block-type menu, emoji, paste and chat export in the editor; chat autocomplete and attachments; a form builder; FilterBar and MetricCard. The existing Markdown codecs read through the shared parser, which changes some edge cases. No export removed; blueprint spec stays 0.15.0.

  • Markdown, emoji and four new Solutions

    @texuli/core/markdown · @texuli/emojis · texuli/emoji · @texuli/chat · @texuli/editor

    A CommonMark and GFM Markdown stack with safe HTML and nine chat dialects, Texuli Emojis, and Solutions for Dashboards, Forms, Agent chat and Rich text editor. Released in 0.18.0 (pre-1.0).

    Released in 0.18.0, in development (pre-1.0). @texuli/emojis is on npm; @texuli/emoji-assets is in development and not published (72 art candidates, 0 approved, license pending), so no Texuli emoji art is approved yet and components show system emoji.

    The Solutions catalog (Markdown, emoji and four new Solutions)

0.17.0: Protoyard adoption fixes for the generator, bundles, render check and kit

Published on npm as 0.17.0; its patch 0.17.1 restores the strict lock for nested components and the host attribute, its patch 0.17.2 makes the runtime lock resolve parts like the static check, its patch 0.17.3 keys render baselines by route, viewport and mode, its patch 0.17.4 adds an optional scope and component to those keys, and its patch 0.17.5 is a security patch for the markup URL check and toolbar keys; everything in the 0.17 line is also in 0.18.0.

Fixes from Protoyard adopting locked design systems, with no export removed. Blueprint spec 0.15.0 lists the data-virtual-list mode, selectable and surface props in the catalog. ds generate keeps the brand seed when it repairs contrast and pins the failing role instead, reads colors in a prose brief and prefers the --font-sans token. Bundles keep every allow entry up to the 4,096-key cap, refuse duplicate library sources and a current-version history that disagrees with the document, and measure source limits in bytes. The locked render check ships a prebuilt host script, reads data-tx-component, maps compound parts and extension ids to their allowed parent, flags disabled rendered values (render-disabled-value), and saves a baseline to compare with --baseline. The kit models (changesModel, kitApproval) are Svelte-free in @texuli/spec/design-system, and the kit matrix opens large groups lazily. VirtualListView follows the uniform component contract, names every feed article and gains surface="plain". 0.17.1 (patch) restores the lock: a catalog root nested in an allowed one passes only as a declared part or composed id of that parent, the render host reads only the component attribute its caller chose (data-tx-component by default, never one the page picks), and each finding code keeps its own cap. The host map() carries the full part-to-parent and composed maps, and @texuli/tools/ds-check/host.iife.js is a package export. ds generate reads whole prose clauses in a brief (roles, fonts, several colors in order) and reports what it dropped, and each repair names the token it changed. changesModel compares up to 4,096 allow keys with a warning past the cap and compares every approval field. Icon buttons keep the 24px target minimum. 0.17.2 (patch): part parents come from declared catalog relations, never a shared hyphen prefix, so the runtime and static lock agree for every catalog id; the render page forwards composed maps, and allow axis lists are read in any declared shape. importBrand keeps fonts and style words apart (Headings in Fraunces, rounded corners, compact spacing) and reports every word it did not read. changesModel compares every approval field, approvedAt included, at full length and every library entry. Every package ships a CHANGELOG.md generated from the release notes. 0.17.3 (patch): importBrand reads font names case-sensitively (font is Inter gives Inter), finds calm motion, Headings use X and monospace X inside longer clauses, and truncates a brief past 16,000 characters or 256 clauses with a loss instead of refusing it. dsReportFingerprint keys a finding by code, path, route, viewport and mode, and older baselines still match. render-disabled-value checks each root against its own allow entry, once per root. 0.17.4 (patch): a baseline key takes an optional host-chosen scope (texuli ds check --locked --scope <id>, or the scope option of renderLockedDesignSystemCheck, such as a prototype id) and the catalog component of the finding, both in dsReportFingerprint when present, so one run over several prototypes keeps their findings apart; a baseline entry without a scope still matches any scope. 0.17.5 (security patch): linkUrl and imageUrl in @texuli/core/markup check the URL the serializers will write, after sanitizeMarkupChars, so characters the writers drop can no longer hide a scheme from the URL policy; toolbar arrows, Home and End move only from toolbar items, so a menu or grid opened inside a toolbar keeps its keys.

0.16.0: the design-system kit, the full locked checks and category colors

Published on npm as 0.16.0; its patch 0.16.1 adds host extensions to ds check and a VirtualListView feed; everything in the 0.16 line is also in 0.17.0.

What 0.15.0 shipped as in development is released, with no breaking API change: the design-system kit (texuli/ds-kit, shown at /design-systems/kit/), texuli ds generate and the importers, the full locked validator in @texuli/tools/ds-check (ds check --locked and --report, and --render for the locked render check on a page you serve), portable bundles (ds pack, ds unpack, ds.bundle), the contract schemas, the blueprint allow check and the Studio locked editor. Blueprint spec 0.14.0 adds the category color axis, the label palette (none or chart-1 to chart-8, with AA ink), and allow colors. The catalog grows to 199 ids with VirtualListView, Mark, Link, ColorSwatch and List; Box gains fills, soft tones, dashed borders and the canvas surface; a linked Card is one stretched anchor named by its content; Input and Textarea gain a plain appearance and type-scale text sizes, and NumberField a commit mode. 0.16.1 (patch): texuli ds check and ds validate take --extensions for host catalog extensions, compound parts such as Select.Content count as their parent id, the locked report lists the prototype imports it did not scan (--scan-workspace reads them), and VirtualListView takes mode="feed" for rows with their own controls and selectable={false}. On texuli.com, the Design Systems Solution (/solutions/design-systems/) walks the loop from brand inputs to locked prototypes on these published APIs.

0.15.0: locked design systems, typography and button tone

Published on npm as 0.15.0; everything in it is also in 0.16.0 and 0.17.0.

Locked design systems for the consumers Protoyard and Dailybot, with no breaking API change. Blueprint spec 0.13.0 lets a design system name the components, variants, sizes and states a product may use (allow), its own components (library) and the approval of each version (approval, with a content hash); texuli ds init --locked, ds approve, ds hash and ds check keep it honest, and an approval records who approved but cannot prove it. The catalog lists each component's axes, states and imports, grows to 194 ids and merges host extensions (<ns>:<id>). Heading, Text, Prose and Box set type and surfaces from tokens, and Button takes a tone. The design-system kit, ds generate, the importers and the locked checkers shipped in it as in development and are released in 0.16.0.

0.14.0: timeline groups, non-text contrast and looping motion

Published on npm as 0.14.0; 0.14.1 to 0.14.3 add calendar, overlay, control, nav and Spanish label options; 0.14.4 keeps the timeline date; everything in the 0.14 line is also in 0.15.0 to 0.17.0.

Gaps from the consumers Protoyard and Dailybot, all additive. TimelineView groups rows under header bands with collapse, selection and markers, also in the agent catalog. Blueprint spec 0.12.0 adds a dark shadow alpha and the aa-non-text check (an invisible active sidebar item fails texuli ds check), and design-system compiler version 3 changes compiled hashes once while every 0.11.0 document stays valid. MotionLoop loops a pulse or a wave and stays still under reduced motion; icons load lazily; AlertDialog takes confirmDisabled and Breadcrumb items take ariaLabel and onSelect; dialog and sheet scrims are dark again in dark mode.

0.13.0: brand fields and one label dictionary

Published on npm as 0.13.0; its patch 0.13.1 adds icons registered by name, the CodeField block, a theme-aware dark image and a grid layout for avatar groups; everything in the 0.13 line is also in 0.14.0 to 0.17.0.

Gaps from the consumers Protoyard, Dailybot and Corag, all additive. Blueprint spec 0.11.0 extends the design-system document with shadow levels, product tokens (--tx-ext-<name>), a categorical palette of 1 to 8 colors and pinned soft inks, and design-system compiler version 2 changes compiled hashes while every 0.10.0 document stays valid. One label dictionary (LabelsProvider and setTexuliLabels in texuli/i18n) translates the built-in labels of texuli, primitives, blocks and pages. texuli ds check --render works in a consumer, chart titles rank by their section, and the timeline gains styling hooks.

0.12.0: pages core entries without the deck model

Published on npm as 0.12.0; its patch 0.12.1 adds coverHeadingLevel to the @texuli/slides stage, its patch 0.12.2 is the first published through npm trusted publishing, and its patch 0.12.3 has no package code change; everything in the 0.12 line is also in 0.13.0 to 0.17.0.

Protoyard G136 finished: the @texuli/pages core entries (PageEditorCore, CollabEditorCore, PagesEditor and createDocumentPlayerHostCore) validate documents without @texuli/deck/model, so @texuli/pages/editor-core and host-core are much smaller. Breaking for those core entries only: they take validateDeck with no default and refuse inline decks without it, a one-line migration (validateDeck: checkDeckPayload from @texuli/document/schema); PageEditor, CollabEditor and createDocumentPlayerHost behave as before. Blueprint spec stays 0.10.0.

0.11.0: lighter design-system hosts

Published on npm as 0.11.0; its patches 0.11.1 to 0.11.5 added fixes and additive Protoyard gaps (G128–G136), and everything in the 0.11 line is also in 0.12.0 to 0.17.0.

The Protoyard gaps G125 to G127: the library theme ids without the library (@texuli/tokens/library-ids), complete expand theme descriptions, and core entries that compile and paint design systems with no theme library in any chunk (@texuli/tokens/design-system/compile-core, @texuli/player/design-system-core). The slides and pages core entries no longer load the theme library unless the host passes a loader, a one-line migration. Design systems with one mode never throw, and DesignSystemProvider reports a failed apply through onapplyerror. Blueprint spec stays 0.10.0.

0.10.0: design systems

Published on npm as 0.10.0; everything in it is also in 0.11.0 to 0.17.0.

Design systems: one JSON document per brand, compiled with contrast, focus and target size enforced and followed by every surface; the Design System Studio; ds tools on the MCP and the CLI; texuli ds check; the Protoyard gaps G100 to G124; and the removal of the names deprecated in 0.9.0. Blueprint spec 0.10.0 adds the design-system document, a stamp-only migration from 0.9.0.

  • Design systems

    @texuli/spec/design-system · @texuli/tokens/design-system · texuli/design-system

    One JSON document per brand, followed by components, blueprints, decks, documents, email, PDF, DOCX, PPTX, canvas exports and Kotlin tokens, with contrast, focus and target size enforced by the compiler.

    The three example brands, checked when this page was built, contrast pairs passing in light and dark: Quillmark 148 of 148; Ledgerline 148 of 148; Tumbletown 148 of 148.

    Three brands, four surfaces (Design systems)

  • Design system studio

    apps/website · @texuli/tokens/design-system

    Start from a seed, a logo, a library theme or a token file, edit every section, preview five surfaces, read the contrast report and the diff, export every format and share by link, all in the browser.

    Open the studio (Design system studio)

  • Design system tools for agents

    @texuli/tools · @texuli/mcp

    ds.validate, ds.compile, ds.contrast, ds.suggest, ds.import, ds.diff, ds.preview and ds.save on the MCP and as texuli ds commands, plus the create-design-system prompt and texuli://design-system/{id}.

    texuli ds init brand.ds.json --name Harborline
    texuli ds validate brand.ds.json
    texuli ds compile brand.ds.json --format css --out dist/brand.css

    Every way to start (Design system tools for agents)

  • Conformance

    @texuli/tools/ds-check

    texuli ds check holds a document to its guarantees with stable codes and JSON paths; --render paints the catalog under it in Chromium for axe, painted contrast and literal colors.

    texuli ds check brand.ds.json --render

    The example brands’ report (Conformance)

  • More fixes from Protoyard

    texuli · @texuli/data · @texuli/editor · @texuli/forms · @texuli/pages

    Gaps G100 to G124 a production adopter reported, among them: Markdown backslash escapes, filter builder issues and labelled options, keyboard board moves that keep focus, host-painted form fields and new field types (G113 to G121), lighter core entries for deck printing and pages (G105, G123), system token defaults without the reset (G110), dashboard nudges past wider widgets (G122) and the stateless MCP revision 2026-07-28 in part (G124).

    The changelog (More fixes from Protoyard)

  • Removed after one minor

    @texuli/tools · @texuli/blocks

    The seven 0.8 MCP tool names and the tree block’s style key, deprecated in 0.9.0, are gone; a call or a block that still uses one is refused with the name to send instead.

    7 tool names removed; the MCP server card lists each with its replacement.

    Removed names and replacements (Removed after one minor)

0.9.0: MCP, an agent-ready site and design tokens

Published on npm as 0.9.0; everything in it is also in 0.10.0 to 0.17.0.

An MCP server for agents (remote and local), texuli.com readable by agents end to end, token contract v2 with a component tier, overlays that keep their scope, and the fixes Protoyard asked for. @texuli/mcp is a new package, first published in 0.9.0, and still in development.

  • Texuli MCP

    @texuli/mcp · @texuli/tools/mcp

    One operations registry served as MCP tools, resources and prompts: remotely at texuli.com/mcp, or locally with npx -y @texuli/mcp, with setup for every major host.

    The remote server is live at texuli.com/mcp; @texuli/mcp is in development.

    # local, over stdio
    npx -y @texuli/mcp
    # remote, Streamable HTTP
    https://texuli.com/mcp

    Connect your agent (Texuli MCP)

  • An agent-ready site

    apps/website · functions

    A read-only JSON API with an OpenAPI description, Markdown twins of every page, discovery files, site tools on the MCP and a WebMCP bridge for browser agents.

    The developer portal (An agent-ready site)

  • Design tokens v2

    @texuli/tokens/system · @texuli/tokens/components · texuli/defaults

    System families for space, size, type, elevation, shape, layers and more, plus a component tier every styled component reads, and default variants and sizes for design systems and agents.

    159 system tokens in 11 families and 365 component tokens for 57 components, read from the registries when this page was built.

    The token reference (Design tokens v2)

  • Scoped portals

    @texuli/core · @texuli/primitives · texuli

    Every token is element-scoped with data-tx-scope, and overlays (dialogs, menus, popovers, tooltips, toasts) keep the theme and tokens of the scope that opened them.

    The scope model (Scoped portals)

  • Fixes from Protoyard

    texuli · @texuli/data · @texuli/charts · @texuli/chat · @texuli/primitives

    Gaps a production adopter reported: dialog and command palette callbacks, date control hooks and invalid state, keyboard rows in table grids, ref and rest on every layout, a time x-axis for charts and contained toasts without a forced layout.

    The changelog (Fixes from Protoyard)

0.8.0: forms, canvas, sheets and output

Published on npm as 0.8.0; everything in it is also in 0.9.0 to 0.17.0.

Forms, data sources, the canvas, spreadsheets, dashboards, email and PDF output, and one message catalog for every label, with blueprint spec 0.8.0. @texuli/forms, @texuli/canvas and @texuli/sheets were published for the first time; all three are still in development.

  • Canvas

    @texuli/canvas

    An infinite canvas with shapes, connectors, frames, snapping and a full keyboard model, collaboration on the document CRDT, and SVG and PNG export.

    A support flow board: a new ticket, a known-issue decision, a saved reply or an escalation, and a sticky note to reply within one business day

    Draw on the canvas (Canvas)

  • Data sources

    @texuli/core/data-source · @texuli/player

    Hosts register named sources; components and agent blueprints read them with validated queries, retries and a cache, never a URL.

    "rows": {
      "$source": "tickets",
      "query": { "filter": { "type": "condition", "field": "status",
        "operator": "eq", "value": "open" }, "pageSize": 25 }
    }

    Sources in forms (Data sources)

  • Spreadsheets

    @texuli/sheets

    An owned formula engine with a closed function set, incremental recalculation, cycle and limit errors, and CSV that neutralizes formula injection.

    = 820

    The sheets showcase (Spreadsheets)

  • Forms

    @texuli/forms

    Schema-driven forms: every field type, named formats, closed validation rules with announced errors, steps, conditions, drafts and autosave.

    Join the beta

    All forms support (Forms)

  • Dashboards

    @texuli/data/dashboard

    Widgets people move and resize by pointer or keyboard, every step announced, with breakpoints and layouts that persist as untrusted data.

    Press Space or Enter to pick up. Use the arrow keys to move one column or row, Space or Enter to drop, Escape to cancel.

    Press Space or Enter to resize. Left and right arrows change the width, up and down the height. Space or Enter to finish, Escape to cancel.

    • Orders

      1,284

    • Uptime

      99.98%

    • Tickets

      6 open

    Arrange a dashboard (Dashboards)

  • Email, print and PDF

    @texuli/tools/email · @texuli/tools/print · @texuli/player

    The same validated blueprint as an email mail clients render, a print-ready page and a PDF, escaped by construction.

    One blueprint, many targets (Email, print and PDF)

  • One message catalog

    @texuli/core/i18n · texuli · @texuli/primitives

    Every component label resolves through one catalog with lazy locales and a pseudo-locale. English ships today; translations beyond English are planned.

    Rating
    4 of 5

    Switch the locale (One message catalog)

0.7.0: documents

Published on npm as 0.7.0; everything in it is also in 0.8.0 to 0.17.0.

A block document engine with collaboration, the Notion-like page editor, and documents as agent data in blueprint spec 0.7.0. @texuli/document and @texuli/pages were published for the first time; both are still in development.

  • Documents

    @texuli/document

    A block document format with typed operations and undo, Markdown in and out, pagination, DOCX and PDF writers, and an owned CRDT for collaboration.

    # Launch notes
    
    The beta opens **Monday**.
    
    - Invite the pilot teams
    - Publish the [status page](https://status.example.com)
    
    > Ship small, ship often.

    Imported at build time as 4 blocks: heading, paragraph, list, quote.

    The documents showcase (Documents)

  • The page editor

    @texuli/pages

    A Notion-like editor with a slash menu of every block, drag by keyboard too, nested pages, comments, suggestions, versions and remote carets.

    The slash menu offers all 13 block types; every edit is one operation in one op log, so undo, collaboration and export see the same history.

    Edit a page (The page editor)

0.6.0: motion and live generation

Published on npm as 0.6.0; everything in it is also in 0.7.0 to 0.17.0.

One API contract for every component, a motion system with a closed vocabulary, and blueprints that paint while they stream, with blueprint spec 0.6.0.

  • Motion

    texuli/motion · @texuli/tokens

    Enter, exit and layout motion from a closed vocabulary of presets and durations, springs, and levels full, subtle and none; reduced motion is always instant.

    Release notes, week 44

    Every animation (Motion)

  • One API contract

    texuli · @texuli/primitives

    Every exported component forwards rest attributes and ref to its root, composes handlers with yours first, and names callbacks one way.

    <Dialog bind:ref={panel} data-testid="crew" aria-describedby="crew-hint" />
    <Button onclick={(event) => { if (locked) event.preventDefault(); }}>Archive</Button>

    The contract, point by point (One API contract)

  • Live generation

    @texuli/player · @texuli/catalog

    A blueprint paints node by node while it streams: each finished node is validated and painted, and the rest waits as skeletons.

    1. bytes arrive: {"id":"layout-page","props":{"title":"Weekly re
    2. the page node closes: validated, painted, its children wait as skeletons
    3. a KPI block closes: validated against the catalog, painted in place
    4. a node fails validation: it becomes its own placeholder, the rest keeps painting
    5. the envelope closes: the whole draft is validated once more

    Stream a recorded draft (Live generation)

  • The agent service

    apps/agent

    Prompt in, validated blueprint draft out, streamed. It runs a fake replay provider only.

    An app in the repository, not a package: it is not deployed.

    POST /drafts  { "prompt": "A weekly report for the ops team" }
    → a stream of blueprint text, validated by @texuli/catalog
       before the client paints it (fake replay provider only)

    What the replay is (The agent service)

The spreadsheet engine above knows 54 functions; the canvas preview is the SVG export of the agent board on the canvas page, drawn when this page was built. For every change, release by release, see the changelog.