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
<PackageReference Include="FS.GG.UI.Scene.SvgBrowser" Version="0.31.0" />
<PackageVersion Include="FS.GG.UI.Scene.SvgBrowser" Version="0.31.0" />
<PackageReference Include="FS.GG.UI.Scene.SvgBrowser" />
paket add FS.GG.UI.Scene.SvgBrowser --version 0.31.0
#r "nuget: FS.GG.UI.Scene.SvgBrowser, 0.31.0"
#:package FS.GG.UI.Scene.SvgBrowser@0.31.0
#addin nuget:?package=FS.GG.UI.Scene.SvgBrowser&version=0.31.0
#tool nuget:?package=FS.GG.UI.Scene.SvgBrowser&version=0.31.0
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 | Versions 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. |
-
net10.0
- Fable.Browser.Dom (>= 2.20.0)
- FS.GG.UI.KeyboardInput (>= 0.31.0)
- FS.GG.UI.Scene (>= 0.31.0)
- FSharp.Core (>= 10.1.302)
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.