Two surfaces that applications touch every day, the data grid and the insert form, gain controls that were previously either automatic or absent.
Grid
- Width limits per column An application declares a minimum and a maximum per column name. The minimum replaces the 60-pixel resize floor, the maximum caps the automatic width, and equal values fix the column and disable resizing.
- Resizes reported A width-change event reports the columns the user resized, debounced, so an application can persist them on its own terms.
- Nested grids aligned Inline collection grids line their columns up across rows at every nesting level.
- Reset column widths A context-menu entry forgets user-resized widths in memory and in browser storage. It is offered only when something is saved.
- Select-all on a group A group row in client-side grouping carries a checkbox that selects every row beneath it, sub-groups and collapsed groups included, restricted to the rows the current filter shows.
Forms
- Standalone insert page A table opens an insert page of its own, and foreign-key quick-add runs on it as the referenced table's insert form restricted to the columns the designer marked.
- Required fields surface Quick-add shows the fields the reset left empty but the dictionary requires. Fields the reset filled stay hidden, so a save no longer fails on a column the user could not see.
- Content type from the row A field's content type may name a column of the row, so a code field opens the editor of the language that row declares.
- Help on a card An analytical card gains a help mark that opens the object's documentation in the information sidebar. A card without help draws nothing and costs no request.
- No-data placeholder A view that draws nothing when empty now shows a generic placeholder. A configured empty state wins, and views that mean something when empty, a calendar or a map, opt out.
The form header's object title links back to the list, and a metric value shrinks its font to stay on one line in its tile. Result export from the database workbench now requires its own role, refused server-side with 403.