FS.GG.UI.Scene.SvgBrowser 0.31.0

Prefix Reserved
dotnet add package FS.GG.UI.Scene.SvgBrowser --version 0.31.0
                    
NuGet\Install-Package FS.GG.UI.Scene.SvgBrowser -Version 0.31.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="FS.GG.UI.Scene.SvgBrowser" Version="0.31.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="FS.GG.UI.Scene.SvgBrowser" Version="0.31.0" />
                    
Directory.Packages.props
<PackageReference Include="FS.GG.UI.Scene.SvgBrowser" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add FS.GG.UI.Scene.SvgBrowser --version 0.31.0
                    
#r "nuget: FS.GG.UI.Scene.SvgBrowser, 0.31.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package FS.GG.UI.Scene.SvgBrowser@0.31.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=FS.GG.UI.Scene.SvgBrowser&version=0.31.0
                    
Install as a Cake Addin
#tool nuget:?package=FS.GG.UI.Scene.SvgBrowser&version=0.31.0
                    
Install as a Cake Tool

FS.GG.UI.Scene.SvgBrowser

The package also includes SvgSessionPolicy and SvgSessionHost for continuous game players. The policy is portable and deterministic; the browser host owns RAF timestamps, lifecycle listeners, projection backpressure, generation invalidation and disposal while callers interpret its callbacks through the Game session runtime. A background-tab gap requests explicit recovery, and retained projections must increase monotonically within the current generation.

FS.GG.UI.Scene.SvgBrowser is the Fable/browser adapter for the supported FS.GG.UI.Scene subset. It maintains a retained SVG root, routes pointer and keyboard selection through the Scene reducer, and provides camera-aware picking.

Use the curated Fable project shipped in the package under fable/FS.GG.UI.Scene.SvgBrowser.fsproj. The adapter depends on Fable.Browser.Dom; the base FS.GG.UI.Scene package remains browser-independent.

The identified-document entry point validates and exports the complete selected Preview-A paint/definition surface before mounting or replacing DOM. Its mount namespace produces collision-free local definition references, and duplicate active namespaces are rejected. ObserveFonts distinguishes an available declared family from an explicit fallback diagnostic; it is not a font-fidelity claim. Typed document deserialization accepts only fsgg.svg-document/1, not arbitrary SVG XML.

Identified replacements reconcile stable elements and definitions in place. Browser hit testing follows paint order and native SVG path/text/symbol/clip semantics; masked painted geometry remains targetable while clipping removes targets. The retained entry point projects semantic selection through pointer, portable keyboard intent, and sibling HTML controls. Native editable/composition targets are left alone, and pointer loss, cancellation, blur, and disposal clear adapter-owned capture and scheduled work. These are accessible interaction contract foundations, not a complete editor or input toolkit.

SvgStudio.mount is the explicit optional authoring entry. It owns one retained document host, native toolbar/property/point-list controls, accessible mode/palette/help/rebind controls, and disposable Escape, pointer-loss, and blur handlers. Camera, selection, tool state, accepted content, and SvgAuthoring history remain separate. Consumers that enable Boolean tools provide a bundler-resolved module-worker factory; the packaged worker imports exactly polygon-clipping 0.15.7 and permits one request with no queue and a two-second refusal deadline. Player entries do not import or initialize studio code.

The retained host displays the current gesture candidate without accepting it, restores accepted content on cancellation, applies camera matrices to the visible SVG, and inverse-transforms Pick coordinates. The browser package's worker is the sole geometry implementation: test and consumer bundlers load contentFiles/any/any/svg-geometry-worker.js from the exact restored package.

SvgStudio.activateFont accepts only a resource verified by SvgResourceInterchange.notoSansLatin400. It adds the loaded face after byte validation and removes the face and blob URL on disposal. The package carries the exact base64-encoded WOFF2, SHA-256/provenance manifest, full OFL 1.1 text, and the clipping library's MIT notice.

SvgInputHost is the disposable command adapter for an owned browser focus scope. It preserves logical key and physical code identity, all modifiers including AltGraph, repeat, composition, and native controls before passing normalized observations to CommandResolver. Pointer and touch remain distinct semantic gestures, and Gamepad API buttons retain their source until release or disconnection. The host prevents default only when the resolver accepts the exact event; blur, visibility loss, modal takeover, and disposal neutralize held actions and cancel every listener, deadline, and animation-frame poll.

SvgAnimationHost samples validated portable clips through one owned animation-frame loop. Each sample carries its accepted authority revision and an independent monotonic presentation revision. Live advancement delivers crossed cue batches; pause and seek are silent. A browser reduced-motion preference settles or substitutes declared decorative effects while essential state stays observable, and the configured decorative limit refuses excess work deterministically. Pause, hidden-document recovery, authority replacement and disposal release frame ownership; disposal also removes every lifecycle listener.

BrowserPersistenceHost keeps project documents, asset manifests, game saves, and workspace preferences in independent family-qualified IndexedDB records. Callers retain schema and payload authority; the host reports generation-safe transaction completion, quota and database failures, and preserves opaque newer payloads. Archive export uses stable normalized member paths and Web Crypto SHA-256 identities. Import checks the complete declared member set, canonical paths, hashes, and record identity before opening one atomic clear and replacement transaction. Disposal closes the database and suppresses every outstanding completion.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on FS.GG.UI.Scene.SvgBrowser:

Package Downloads
FS.GG.UI

Optional BOM / metapackage for the FS.GG.UI framework. Reference this single package at one version to pin the entire coherent FS.GG.UI.* set to that version; any attempt to mix a member at a different version fails loudly at restore/build. Ships no assembly — dependencies only.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.31.0 399 9/14/2026
0.30.0 150 9/13/2026
0.29.0 515 9/12/2026