Quantum 0.15.0
Added
ui:* inside pages (UI-1). The UI Engine's elements — ui:window, ui:vbox, ui:panel, ui:button, ui:form… — can be used in any page served by quantum start, next to plain HTML, q:loop, q:if and the page's queries. The page's runtime does the logic; {expressions} are resolved by it and escaped. Events are the page's actions: <ui:button on-click="save" with="id={row.id}"> posts to <q:action name="save"> with the field id, and <ui:form on-submit="create"> posts its fields. An event that names no action, or a ui: tag that does not exist, is an error with a suggestion. Until now ui:* only compiled from <q:application type="ui">, and inside a page it came out as <window>/<vbox> tags.- A statement inside
ui:* markup is a parse error, as inside HTML (PARSE-2). - Responsive layout, declared (UI-2):
stack-below="md" on ui:hbox, hide-below / hide-above, grow="true", and <ui:grid columns="1 sm:2 lg:3">, with breakpoints sm (640 px), md (768 px) and lg (1024 px). The UI Engine's HTML had no media query at all: a 280 px sidebar made the page overflow on a phone. quantum console (UI-3): the application's pages in the terminal. It starts the application's server and draws each page with Textual from its view tree (Accept: application/vnd.quantum.view+json); buttons and forms send the page's actions, so login, validation and flash are the web's. stack-below counts terminal columns. The same .q is a web page and a console app, with no logic translated.projects/tarefas: a task app written in ui:* over SQLite, tested end to end in CI — the UI Engine's proof app — including in a real browser at 1280 and 390 px (Playwright + Chromium, installed in CI) — and in the console, with the same script.
Fixed
quantum migrate reads migration files as UTF-8 on every system (DB-8). On Windows it used the system code page, and "página" was stored as "página". The same for the other files the CLI reads.
← 0.14.0 · All versions · 0.16.0 →