Release v1.0.0
Added
- Packages. A
ui profilelists packages by name;ScenePackageis the declaration behind such a name — what it contributes (components, layouts, screen and dialog templates, themes) and what else has to be active for it to work. Kinds areComponentLibrary,StylingandBlueprint. - Dependency resolution.
PackageDependencyResolverexpands a chosen set of packages into the complete list, ordered so a package always follows what it depends on — which is also the correct override priority. Missing dependencies, version conflicts and cycles are reported rather than guessed at.PackageCataloganswers what a package picker asks: which component libraries are a base to build on, and what else fits what is already selected. - Screen and dialog templates.
ScreenTemplateis a reusable shape that goes inside a layout, at module, feature or slice level;FitsSlotnames the slot on its parent it fills, andScreenTemplateResolverturns those names into a tree. The same rule applies at every level, so nesting has no depth limit.DialogTemplateis the same for overlays, which fill no slot. - Themes carry attribution.
Themegained design tokens plusAuthor,AuthorUrlandLicense, so a theme adopted from elsewhere credits its original creator. @cratis/scene.primereact— 87 component names across PrimeReact's families, and 25 of PrimeTek's free themes, each credited.@cratis/scene.components— the Arc-bound Cratis Components composites, with a binding registry so a screen can name a query or command that a host resolves to a real class at render time.@cratis/scene.tailwind— the styling package component libraries declare themselves written against.@cratis/scene.blueprint.default— application shells with eight menu modes, 23 screen templates, 3 dialog templates and two themes.@cratis/scene.blueprint.components— whole Arc-bound pages built from Cratis Components, layered on the default blueprint rather than shipping a rival shell.
Changed
- A layout and a template are now different things. A
Layoutis an application's base navigational look and an application has one; aScreenTemplategoes inside it and an application has many. They were previously the same word for both. FlowContainercarries itsKind. C# distinguished aFlowRowfrom aFlowColumnby type, but the TypeScript mirror could not — interfaces with identical members are the same type — so a renderer had no way to tell a row from a column.
🤖 Generated with Claude Code