API Reference
Application entry APIs:
public sealed class UltimateAppBuilder
{
public static UltimateAppBuilder CreateDefaultBuilder();
public UltimateAppBuilder UseRenderHost(Func<IRenderHost> renderHostFactory);
public UltimateApp Build();
}
public sealed class UltimateApp : IAsyncDisposable
{
public Window MainWindow { get; set; }
public ValueTask<int> RunAsync(CancellationToken ct = default);
}
public sealed class Window
{
public Window AttachGlobalStyle(CssModule styles);
public Window Render(Func<ComponentContext, Element> render);
}
Lower-level component runtime APIs:
public sealed class ComponentApp : IAsyncDisposable
{
public ComponentApp(Func<ComponentContext, Element> render);
public ComponentApp(UltimateUiApp innerApp, Func<ComponentContext, Element> render);
public UltimateUiApp InnerApp { get; }
public Div HostElement { get; }
public Task PendingRender { get; }
public NodeHandle Mount();
public ValueTask<NodeHandle> MountAsync(CancellationToken ct = default);
public Task RenderAsync(CancellationToken ct = default);
public void Flush();
public ValueTask UseStylesAsync(CssModule module, CancellationToken ct = default);
}
public sealed class ComponentContext
{
public HookState<T> UseState<T>(T initialValue);
public ReducerState<TState, TAction> UseReducer<TState, TAction>(
Func<TState, TAction, TState> reducer,
TState initialState);
public T UseMemo<T>(Func<T> factory, params object?[] dependencies);
public void UseEffect(Action effect, params object?[] dependencies);
}
CSS APIs:
Css.Module(scope, rules);
Css.Class(localName, build);
Css.Rule(selector, build);
CssClass implicitly converts to string, so it can be assigned to element
Class properties.