Log inGet started
World

Builtin Library

Branchmain
Branchesmainpublish
Commit61a33237e0

README.md

edui

The editor UI framework, on the CSS-parity ui.* surface. An editor-only toolkit: panels author closures instead of callback ids, a dock shell over ui.* native docking, and typed editor-chrome primitives. Gameplay and normal world UI author raw ui.* trees and need none of this.

edui.guide beside this file is how to use it — creating a panel, the spec it returns, how a panel is drawn and redrawn, the whole widget vocabulary, and how a panel reaches the selection and the dock.

What installs

  • framework — everything under one table. From outside the package, require("@builtin::~edui.framework"); inside it, require("~.framework"). It carries app, widgets, shell, topbar, query, fileDialog, worldDialog, stats, and the chrome primitives flat (panel, tree, field, section, text, button, menu, …).
  • app — maps a panel's closures to ui.* callback ids, dispatches to them, and coalesces redraws.
  • widgets — the primitives, plus the typed inspector layer (widgets.tree, widgets.fields, widgets.controls).
  • inspector — the Inspector as an ordered list of sections: the generic asset sections, the Settings section and its actions, and the merge with the sections a type's inspector.luau declares (inspector.assetSections, inspector.settingsSection), and the building blocks those sections compose (inspector.parts, reached as ctx.parts).
  • shell — the dock: one ui.* dockArea holding a dockPanel per registered panel, and the panel registry behind it.

Referencing

  • Inside this package, modules reference siblings with ~. — e.g. require("~.app"), require("~.widgets.fields").
  • Editor content built on the framework references it by package identity — require("~edui.framework"), require("~edui.shell").