Skip to content

Release v0.1.0

Choose a tag to compare

@github-actions github-actions released this 15 Aug 05:33
9edbeae

Added

  • Cratis.Scene.Model (C#) — the platform-agnostic Screen object model: the SceneElement → VisualElement → FrameworkElement → Control → Panel/ItemsControl/ContentControl/ExternalComponent element hierarchy, Layout (flow and freeform arrangement per slot, width × height size classes), Form (the three population/mapping tiers), contribution points and navigation, and UiProfile/Theme. No React, DOM or CSS vocabulary anywhere in this project.
  • @cratis/scene.model — the TypeScript mirror, hand-maintained and guarded by a real cross-language parity spec: a shared scene-model-shape.json manifest that both a C# spec (reflection over the assembly) and a TypeScript spec (walking each type's own PropertyNames const) assert against independently, so a desync on either side fails its own build.
  • @cratis/scene.engine — the Renderer<TOutput> contract a renderer implements (one method per concrete element kind), and a renderElement() tree walk. Binding resolution is injected via a BindingResolver callback rather than solved here — the profile/contribution/layout/theme resolution engines are separate, later issues.
  • @cratis/scene.react — implements the renderer contract against real React/DOM, with a small core component set (core:text/button/card) and Storybook wired at the package level.
  • Repository scaffold: .ai/ instruction corpus and its Copilot/Claude/Codex adapters, build/lint/format config, and CI workflows (dotnet + JS build, NuGet + npm trusted publishing, semver label gate) — copied from Cratis/Arc, the closest real dual-stack framework repo.

Notes

  • The design-time editor building on this object model belongs in Studio (StudioIssues#156), not here.
  • Verified end to end: dotnet build/dotnet test clean (Debug + Release, 0 warnings), yarn ci clean across all three JS packages, yarn build-storybook succeeds, and the parity spec genuinely fails on both sides when deliberately desynced (verified, then reverted).

(#1)