Align shell builder APIs and complete public authoring docs - #197
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fission applications can now seed the same prepared
Envon Desktop, Mobile, Web, and Terminal. That makes translation and design-system setup portable instead of forcing Web apps to smuggle bundles throughwith_sync_env. Browser islands now retain the complete environment too, and can synchronize locale or theme from their own state before each build.\n\nA Web app can use the same setup as native:\n\nrust\nWebApp::<AppState, _>::new(App)\n .with_env(create_env()?)\n .with_design_system::<AppDesignSystem>(DesignMode::Light)\n .with_sync_env(|state, env| {\n env.locale = state.locale.clone();\n env.theme = AppDesignSystem::theme(state.theme_mode);\n })\n .run()?;\n\n\nThe common stateful builders now also expose the shared host key-handler and persistent reducer hooks where they were accidentally omitted. Mobile gains the matching live-test token builder. Terminal gains state initialization, startup action, design-system, frame-hook, and registry APIs. Its old closure-shapedwith_env(|env| ...)convenience is renamedconfigure_env(...);with_env(...)now consistently takes a completeEnv. Terminal font registration remains intentionally absent because the terminal emulator owns its font. Static and SSR retain build-time and request-time environment hooks because they do not have a persistent frame loop.\n\nThe routing reference now documents both synchronous and SQLite-backed asynchronous protected-route decisions at the router boundary.route_componentpublishes capturedRouteParamsduring retained component conversion, so a matching component can read parameters without falling back to a function-built widget tree.\n\nFinally, the facade prelude is now rooted in the conflict-resolved public facade and includes the previously omitted built-in widget and terminal types. Public authoring widgets and the stateful shell APIs have substantive Rust documentation describing their behavior and parameters.