@sebastianwessel/isostate 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/animation/animation-engine.d.ts +1 -0
  2. package/dist/animation/animation-engine.d.ts.map +1 -1
  3. package/dist/animation/controller.d.ts +34 -2
  4. package/dist/animation/controller.d.ts.map +1 -1
  5. package/dist/browser/isostate.runtime.js +4 -4
  6. package/dist/browser/isostate.runtime.js.map +11 -10
  7. package/dist/chunks/{index-C3qcXbPI.js → index-CB6XEsbY.js} +257 -43
  8. package/dist/chunks/index-CB6XEsbY.js.map +1 -0
  9. package/dist/chunks/{rendering-engine-BUUV3Qq-.js → rendering-engine-nkqYx0qc.js} +215 -36
  10. package/dist/chunks/rendering-engine-nkqYx0qc.js.map +1 -0
  11. package/dist/chunks/{scene-parser-B9SPDLYs.js → scene-parser-F69XGE0l.js} +87 -32
  12. package/dist/chunks/scene-parser-F69XGE0l.js.map +1 -0
  13. package/dist/dsl/browser.js +1 -1
  14. package/dist/dsl/index.js +1 -1
  15. package/dist/dsl/scene-parser.d.ts.map +1 -1
  16. package/dist/dsl/scene-validator.d.ts.map +1 -1
  17. package/dist/editor-support/index.js +1 -1
  18. package/dist/index.d.ts +4 -1
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +470 -4
  21. package/dist/index.js.map +1 -1
  22. package/dist/rendering/animation-css.d.ts.map +1 -1
  23. package/dist/rendering/rendering-engine.d.ts +9 -0
  24. package/dist/rendering/rendering-engine.d.ts.map +1 -1
  25. package/dist/rendering/theme.d.ts +4 -0
  26. package/dist/rendering/theme.d.ts.map +1 -1
  27. package/dist/runtime/diagnostics-overlay.d.ts +29 -0
  28. package/dist/runtime/diagnostics-overlay.d.ts.map +1 -0
  29. package/dist/runtime/export.d.ts +27 -0
  30. package/dist/runtime/export.d.ts.map +1 -0
  31. package/dist/runtime/index.d.ts +1 -0
  32. package/dist/runtime/index.d.ts.map +1 -1
  33. package/dist/runtime/index.js +2 -2
  34. package/dist/runtime/interactivity.d.ts +56 -0
  35. package/dist/runtime/interactivity.d.ts.map +1 -0
  36. package/dist/runtime/mount-scene.d.ts +11 -10
  37. package/dist/runtime/mount-scene.d.ts.map +1 -1
  38. package/dist/types/asset-registry.d.ts +1 -0
  39. package/dist/types/asset-registry.d.ts.map +1 -1
  40. package/dist/types/node.d.ts +14 -0
  41. package/dist/types/node.d.ts.map +1 -1
  42. package/dist/types/runtime-bundle.d.ts +35 -0
  43. package/dist/types/runtime-bundle.d.ts.map +1 -1
  44. package/dist/types/scene.d.ts +2 -0
  45. package/dist/types/scene.d.ts.map +1 -1
  46. package/package.json +1 -1
  47. package/dist/chunks/index-C3qcXbPI.js.map +0 -1
  48. package/dist/chunks/rendering-engine-BUUV3Qq-.js.map +0 -1
  49. package/dist/chunks/scene-parser-B9SPDLYs.js.map +0 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/types/node.ts"],"sourcesContent":["/** Entry animation types */\nexport type EntryAnimation =\n\t| \"fade-in\"\n\t| \"fade-in-grow\"\n\t| \"fall-in\"\n\t| \"rise-from-ground\"\n\t| \"slide-in-left\"\n\t| \"slide-in-right\"\n\t| \"flip-in\"\n\t| \"none\";\n\n/** Exit animation types */\nexport type ExitAnimation =\n\t| \"fade-out\"\n\t| \"fade-out-shrink\"\n\t| \"fall-through-ground\"\n\t| \"rise-away\"\n\t| \"slide-out-left\"\n\t| \"slide-out-right\"\n\t| \"flip-out\"\n\t| \"none\";\n\n/** Runtime/compiler-derived lifecycle status. Not authored in YAML. */\nexport type LifecycleStatus = \"entering\" | \"present\" | \"exiting\" | \"removed\";\n\n/** Runtime set of valid entry animation strings */\nexport const ENTRY_ANIMATIONS: ReadonlySet<EntryAnimation> = new Set([\n\t\"fade-in\",\n\t\"fade-in-grow\",\n\t\"fall-in\",\n\t\"rise-from-ground\",\n\t\"slide-in-left\",\n\t\"slide-in-right\",\n\t\"flip-in\",\n\t\"none\",\n]);\n\n/** Runtime set of valid exit animation strings */\nexport const EXIT_ANIMATIONS: ReadonlySet<ExitAnimation> = new Set([\n\t\"fade-out\",\n\t\"fade-out-shrink\",\n\t\"fall-through-ground\",\n\t\"rise-away\",\n\t\"slide-out-left\",\n\t\"slide-out-right\",\n\t\"flip-out\",\n\t\"none\",\n]);\n\n/** Runtime set of valid lifecycle status strings */\nexport const LIFECYCLE_STATUSES: ReadonlySet<LifecycleStatus> = new Set([\"entering\", \"present\", \"exiting\", \"removed\"]);\n\n/** Ambient animation configuration */\nexport interface AmbientAnimation {\n\t/** Animation class name */\n\tname: string;\n\t/** Whether the animation runs infinitely (default: true) */\n\tinfinite?: boolean;\n\t/** Number of times to play (only relevant when infinite: false) */\n\titerations?: number;\n}\n\nexport type CameraEasing = \"linear\" | \"ease-in-out\" | \"ease-out\";\n\nexport interface CameraGridArea {\n\tat: [number, number];\n\tsize: [number, number];\n}\n\nexport type CameraTarget = { element: string } | { area: CameraGridArea } | { reset: true };\n\nexport interface CameraFocus {\n\ttarget: CameraTarget;\n\tpadding?: number;\n\tduration?: number;\n\teasing?: CameraEasing;\n}\n\nexport interface CameraZoomOptions {\n\tpadding?: number;\n\tduration?: number;\n\teasing?: CameraEasing;\n}\n\nexport type RuntimeCameraTarget =\n\t| { type: \"element\"; id: string }\n\t| { type: \"area\"; at: [number, number]; size: [number, number] }\n\t| { type: \"reset\" };\n\nexport interface RuntimeCameraFocus {\n\ttarget: RuntimeCameraTarget;\n\tpadding?: number;\n\tduration?: number;\n\teasing?: CameraEasing;\n}\n\n/** Horizontal anchor used by built-in text elements. */\nexport type TextAlign = \"start\" | \"middle\" | \"end\";\n\n/** Vertical placement model used by built-in text elements. */\nexport type TextPlacement = \"cell\" | \"caption\";\n\n/** Content and safe SVG text styling for the built-in `asset: text` element. */\nexport interface TextContent {\n\t/** Text content. Use newline characters for explicit line breaks. */\n\tvalue: string;\n\t/** Horizontal text anchor within the element cell. Defaults to `middle`. */\n\talign?: TextAlign;\n\t/** Vertical placement within the grid cell. Defaults to `cell`; `caption` preserves the legacy floating label. */\n\tplacement?: TextPlacement;\n\t/** SVG font-size in CSS pixels before element scaling. Defaults to `12`. */\n\tfontSize?: number;\n\t/** SVG font-weight. Defaults to `700`. */\n\tfontWeight?: number | \"normal\" | \"bold\";\n\t/** Multiplier applied to `fontSize` for multiline spacing. Defaults to `1.2`. */\n\tlineHeight?: number;\n\t/** SVG fill color. Defaults to `currentColor`. */\n\tfill?: string;\n}\n\n/** Sparse update payload for built-in text content. */\nexport type TextContentPatch = Partial<TextContent>;\n\n/** Built-in generated primitive asset ids. These are not declared in header assets. */\nexport type PrimitiveAssetId = \"rectangle\" | \"circle\" | \"polygon\" | \"line\";\n\n/** Shared safe SVG style fields for generated primitive assets. */\nexport interface PrimitiveStyle {\n\t/** SVG fill color or safe CSS color token. Defaults to `currentColor`. */\n\tfill?: string;\n\t/** SVG stroke color or safe CSS color token. Defaults to `none`. */\n\tstroke?: string;\n\t/** SVG stroke width in CSS pixels before element scaling. Defaults to `0`. */\n\tstrokeWidth?: number;\n\t/** Element opacity from `0` to `1`. Defaults to `1`. */\n\topacity?: number;\n\t/** Optional dash/gap pair for stroked primitives. */\n\tdash?: [number, number];\n}\n\n/** Generated projected rectangle/diamond primitive content. */\nexport interface RectanglePrimitive extends PrimitiveStyle {\n\t/** Optional corner radius for screen-space rectangles. Defaults to `0`. */\n\trx?: number;\n}\n\n/** Generated circle primitive content. */\nexport interface CirclePrimitive extends PrimitiveStyle {}\n\n/** Generated polygon primitive content using normalized local grid coordinates. */\nexport interface PolygonPrimitive extends PrimitiveStyle {\n\t/** Polygon points in local normalized grid coordinates from `0` to `1`. */\n\tpoints: [number, number][];\n}\n\n/** Generated line/polyline primitive content using normalized local grid coordinates. */\nexport interface LinePrimitive extends Omit<PrimitiveStyle, \"fill\"> {\n\t/** Line points in local normalized grid coordinates from `0` to `1`. */\n\tpoints: [number, number][];\n\t/** SVG line cap. Defaults to `round`. */\n\tlineCap?: \"butt\" | \"round\" | \"square\";\n\t/** SVG line join. Defaults to `round`. */\n\tlineJoin?: \"miter\" | \"round\" | \"bevel\";\n}\n\n/** Element-level payload for generated primitive assets. */\nexport interface PrimitiveContent {\n\trectangle?: RectanglePrimitive;\n\tcircle?: CirclePrimitive;\n\tpolygon?: PolygonPrimitive;\n\tline?: LinePrimitive;\n}\n\n/** Sparse update payload for built-in primitive content. */\nexport interface PrimitiveContentPatch {\n\trectangle?: Partial<RectanglePrimitive>;\n\tcircle?: Partial<CirclePrimitive>;\n\tpolygon?: Partial<PolygonPrimitive>;\n\tline?: Partial<LinePrimitive>;\n}\n\n/** Element placement used in first-scene elements and later add operations. */\nexport interface ElementPlacement {\n\tid: string;\n\tasset: string;\n\tat: [number, number];\n\tsize?: number;\n\tlayer?: string;\n\tenter?: EntryAnimation;\n\texit?: ExitAnimation;\n\tambient?: AmbientAnimation[];\n\ttext?: TextContent;\n\tprimitive?: PrimitiveContent;\n}\n\n/** Element patch used by scene update operations. */\nexport interface ElementPatch {\n\tid: string;\n\tat?: [number, number];\n\tsize?: number;\n\tlayer?: string;\n\tenter?: EntryAnimation;\n\texit?: ExitAnimation;\n\tambient?: AmbientAnimation[];\n\ttext?: TextContentPatch;\n\tprimitive?: PrimitiveContentPatch;\n}\n\n/** Element removal used by scene remove operations. */\nexport interface ElementRemoval {\n\tid: string;\n\texit?: ExitAnimation;\n}\n\n/** Visual connector line pattern for authored connections and runtime connectors. */\nexport type ConnectorPattern = \"solid\" | \"dashed\" | \"dotted\";\n\n/** Visual connector geometry variant. */\nexport type ConnectorVariant = \"line\" | \"road\";\n\n/** Generated endpoint indicator placed at the start or end of a connector. */\nexport type ConnectorEndpoint = \"none\" | \"arrow\" | \"dot\" | \"circle\" | \"diamond\" | \"bar\";\n\n/** Direction used for connector endpoint orientation and flow animation. */\nexport type ConnectorDirection = \"route\" | \"reverse\";\n\n/** Authored connector style overrides for a visual connection. */\nexport interface ConnectorStyle {\n\t/** Geometry variant. Defaults to `line`. */\n\tvariant?: ConnectorVariant;\n\t/** Stroke pattern. Defaults to `solid`. */\n\tpattern?: ConnectorPattern;\n\t/** SVG stroke color or safe CSS color token. */\n\tstroke?: string;\n\t/** Stroke width in SVG user units. */\n\tstrokeWidth?: number;\n\t/** Connector opacity from `0` to `1`. */\n\topacity?: number;\n\t/** Explicit dash/gap pair in SVG user units. */\n\tdash?: [number, number];\n\t/** Optional outline stroke color for road connectors. */\n\toutline?: string;\n\t/** Optional outline width in SVG user units. */\n\toutlineWidth?: number;\n\t/** Optional road lane treatment. */\n\tlane?: \"none\" | \"center-dashed\";\n}\n\n/** Authored endpoint reference for compiler-routed visual connections. */\nexport interface ConnectorEndpointRef {\n\t/** Element id to attach to. Mutually exclusive with `at`. */\n\telement?: string;\n\t/** Explicit grid point to attach to. Mutually exclusive with `element`. */\n\tat?: [number, number];\n\t/** Element side or automatic side selection. Defaults to `auto`. */\n\tside?: \"auto\" | \"top\" | \"right\" | \"bottom\" | \"left\" | \"front\" | \"back\";\n\t/** Normalized side offset from `-0.5` to `0.5`. Defaults to `0`. */\n\toffset?: number;\n}\n\n/** Authored routing options used only by dev-time compiler tooling. */\nexport interface ConnectorRouting {\n\t/** Routing mode. Defaults to `orthogonal` for endpoint-routed connections. */\n\tmode?: \"straight\" | \"orthogonal\" | \"manual\";\n\t/** Obstacle avoidance selection. Defaults to `objects`. */\n\tavoid?: \"objects\" | \"none\" | string[];\n\t/** Obstacle clearance in grid cells. Defaults to `0.5`. */\n\tclearance?: number;\n\t/** Router grid step in grid cells. */\n\tgridStep?: number;\n\t/** Maximum allowed bends for advanced routers. */\n\tmaxBends?: number;\n\t/** Route scoring preference for advanced routers. */\n\tprefer?: \"direct\" | \"fewest-bends\" | \"shortest\";\n}\n\n/** Connection placement used in first-scene connections and later add operations. */\nexport interface ConnectionPlacement {\n\tid: string;\n\troute?: [number, number][];\n\tfrom?: ConnectorEndpointRef;\n\tto?: ConnectorEndpointRef;\n\trouting?: ConnectorRouting;\n\tlayer?: string;\n\tstyle?: ConnectorStyle;\n\tstart?: ConnectorEndpoint;\n\tend?: ConnectorEndpoint;\n\tdirection?: ConnectorDirection;\n\tenter?: EntryAnimation;\n\texit?: ExitAnimation;\n\tambient?: AmbientAnimation[];\n}\n\n/** Connection patch used by scene update operations. */\nexport interface ConnectionPatch {\n\tid: string;\n\troute?: [number, number][];\n\tfrom?: ConnectorEndpointRef;\n\tto?: ConnectorEndpointRef;\n\trouting?: ConnectorRouting;\n\tlayer?: string;\n\tstyle?: ConnectorStyle;\n\tstart?: ConnectorEndpoint;\n\tend?: ConnectorEndpoint;\n\tdirection?: ConnectorDirection;\n\tenter?: EntryAnimation;\n\texit?: ExitAnimation;\n\tambient?: AmbientAnimation[];\n}\n\n/** Connection removal used by scene remove operations. */\nexport interface ConnectionRemoval {\n\tid: string;\n\texit?: ExitAnimation;\n}\n\n/** Fully defaulted connector style emitted to browser runtime snapshots. */\nexport interface RuntimeConnectorStyle {\n\tvariant: ConnectorVariant;\n\tpattern: ConnectorPattern;\n\tstroke: string;\n\tstrokeWidth: number;\n\topacity: number;\n\tdash?: [number, number];\n\toutline?: string;\n\toutlineWidth: number;\n\tlane: \"none\" | \"center-dashed\";\n}\n\n/** Runtime-resolved connector state in a compiled scene stop. */\nexport interface RuntimeConnectorState {\n\tid: string;\n\troute: [number, number][];\n\tlayer: string;\n\tpresence: LifecycleStatus;\n\tstyle: RuntimeConnectorStyle;\n\tstart: ConnectorEndpoint;\n\tend: ConnectorEndpoint;\n\tdirection: ConnectorDirection;\n\tenter?: EntryAnimation;\n\texit?: ExitAnimation;\n\tambient?: AmbientAnimation[];\n}\n\n/** Runtime-resolved element state in a compiled scene stop. */\nexport interface RuntimeElementState {\n\tid: string;\n\tasset: string;\n\tpos: [number, number];\n\tsize: number;\n\tlayer: string;\n\tpresence: LifecycleStatus;\n\tenter?: EntryAnimation;\n\texit?: ExitAnimation;\n\tambient?: AmbientAnimation[];\n\ttext?: TextContent;\n\tprimitive?: PrimitiveContent;\n}\n\n// ── Type guards ──────────────────────────────────────────────────────────────\n\n/** Narrow a raw string to EntryAnimation. Returns undefined if invalid. */\nexport function guardEntryAnimation(v: unknown): EntryAnimation | undefined {\n\tif (typeof v !== \"string\") return undefined;\n\treturn ENTRY_ANIMATIONS.has(v as EntryAnimation) ? (v as EntryAnimation) : undefined;\n}\n\n/** Narrow a raw string to ExitAnimation. Returns undefined if invalid. */\nexport function guardExitAnimation(v: unknown): ExitAnimation | undefined {\n\tif (typeof v !== \"string\") return undefined;\n\treturn EXIT_ANIMATIONS.has(v as ExitAnimation) ? (v as ExitAnimation) : undefined;\n}\n\n/** Narrow a raw string to LifecycleStatus. Returns undefined if invalid. */\nexport function guardLifecycleStatus(v: unknown): LifecycleStatus | undefined {\n\tif (typeof v !== \"string\") return undefined;\n\treturn LIFECYCLE_STATUSES.has(v as LifecycleStatus) ? (v as LifecycleStatus) : undefined;\n}\n"],"names":[],"mappings":";;;;;AAyBA;AACO,MAAM,gBAAgB,GAAgC,IAAI,GAAG,CAAC;IACpE,SAAS;IACT,cAAc;IACd,SAAS;IACT,kBAAkB;IAClB,eAAe;IACf,gBAAgB;IAChB,SAAS;IACT,MAAM;AACN,CAAA,CAAC;AAEF;AACO,MAAM,eAAe,GAA+B,IAAI,GAAG,CAAC;IAClE,UAAU;IACV,iBAAiB;IACjB,qBAAqB;IACrB,WAAW;IACX,gBAAgB;IAChB,iBAAiB;IACjB,UAAU;IACV,MAAM;AACN,CAAA,CAAC;AAEF;AACO,MAAM,kBAAkB,GAAiC,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAqTtH;AAEA;AACM,SAAU,mBAAmB,CAAC,CAAU,EAAA;IAC7C,IAAI,OAAO,CAAC,KAAK,QAAQ;AAAE,QAAA,OAAO,SAAS;AAC3C,IAAA,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAmB,CAAC,GAAI,CAAoB,GAAG,SAAS;AACrF;AAEA;AACM,SAAU,kBAAkB,CAAC,CAAU,EAAA;IAC5C,IAAI,OAAO,CAAC,KAAK,QAAQ;AAAE,QAAA,OAAO,SAAS;AAC3C,IAAA,OAAO,eAAe,CAAC,GAAG,CAAC,CAAkB,CAAC,GAAI,CAAmB,GAAG,SAAS;AAClF;AAEA;AACM,SAAU,oBAAoB,CAAC,CAAU,EAAA;IAC9C,IAAI,OAAO,CAAC,KAAK,QAAQ;AAAE,QAAA,OAAO,SAAS;AAC3C,IAAA,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAoB,CAAC,GAAI,CAAqB,GAAG,SAAS;AACzF;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../src/types/node.ts","../src/runtime/diagnostics-overlay.ts","../src/runtime/export.ts"],"sourcesContent":["/** Entry animation types */\nexport type EntryAnimation =\n\t| \"fade-in\"\n\t| \"fade-in-grow\"\n\t| \"fall-in\"\n\t| \"rise-from-ground\"\n\t| \"slide-in-left\"\n\t| \"slide-in-right\"\n\t| \"flip-in\"\n\t| \"none\";\n\n/** Exit animation types */\nexport type ExitAnimation =\n\t| \"fade-out\"\n\t| \"fade-out-shrink\"\n\t| \"fall-through-ground\"\n\t| \"rise-away\"\n\t| \"slide-out-left\"\n\t| \"slide-out-right\"\n\t| \"flip-out\"\n\t| \"none\";\n\n/** Runtime/compiler-derived lifecycle status. Not authored in YAML. */\nexport type LifecycleStatus = \"entering\" | \"present\" | \"exiting\" | \"removed\";\n\n/** Runtime set of valid entry animation strings */\nexport const ENTRY_ANIMATIONS: ReadonlySet<EntryAnimation> = new Set([\n\t\"fade-in\",\n\t\"fade-in-grow\",\n\t\"fall-in\",\n\t\"rise-from-ground\",\n\t\"slide-in-left\",\n\t\"slide-in-right\",\n\t\"flip-in\",\n\t\"none\",\n]);\n\n/** Runtime set of valid exit animation strings */\nexport const EXIT_ANIMATIONS: ReadonlySet<ExitAnimation> = new Set([\n\t\"fade-out\",\n\t\"fade-out-shrink\",\n\t\"fall-through-ground\",\n\t\"rise-away\",\n\t\"slide-out-left\",\n\t\"slide-out-right\",\n\t\"flip-out\",\n\t\"none\",\n]);\n\n/** Runtime set of valid lifecycle status strings */\nexport const LIFECYCLE_STATUSES: ReadonlySet<LifecycleStatus> = new Set([\"entering\", \"present\", \"exiting\", \"removed\"]);\n\n/** Ambient animation configuration */\nexport interface AmbientAnimation {\n\t/** Animation class name */\n\tname: string;\n\t/** Whether the animation runs infinitely (default: true) */\n\tinfinite?: boolean;\n\t/** Number of times to play (only relevant when infinite: false) */\n\titerations?: number;\n}\n\n/** Camera transition easing curve. */\nexport type CameraEasing = \"linear\" | \"ease-in-out\" | \"ease-out\";\n\n/** Grid-space rectangle used as a camera zoom target. */\nexport interface CameraGridArea {\n\t/** Top-left grid cell of the area. */\n\tat: [number, number];\n\t/** Area size in whole grid cells. */\n\tsize: [number, number];\n}\n\n/** Authored camera focus target: a named element, a grid area, or a reset to the full scene view. */\nexport type CameraTarget = { element: string } | { area: CameraGridArea } | { reset: true };\n\n/** Authored camera focus metadata attached to a scene stop. */\nexport interface CameraFocus {\n\t/** Focus target: an element, a grid area, or a reset to the full scene view. */\n\ttarget: CameraTarget;\n\t/** Extra viewBox padding in grid cells around the target. */\n\tpadding?: number;\n\t/** Camera transition duration in milliseconds. */\n\tduration?: number;\n\t/** Camera transition easing curve. */\n\teasing?: CameraEasing;\n}\n\n/** Options accepted by controller camera zoom methods (`zoomToElement`, `zoomToArea`). */\nexport interface CameraZoomOptions {\n\t/** Extra viewBox padding in grid cells around the target. */\n\tpadding?: number;\n\t/** Camera transition duration in milliseconds. */\n\tduration?: number;\n\t/** Camera transition easing curve. */\n\teasing?: CameraEasing;\n}\n\nexport type RuntimeCameraTarget =\n\t| { type: \"element\"; id: string }\n\t| { type: \"area\"; at: [number, number]; size: [number, number] }\n\t| { type: \"reset\" };\n\nexport interface RuntimeCameraFocus {\n\ttarget: RuntimeCameraTarget;\n\tpadding?: number;\n\tduration?: number;\n\teasing?: CameraEasing;\n}\n\n/** Horizontal anchor used by built-in text elements. */\nexport type TextAlign = \"start\" | \"middle\" | \"end\";\n\n/** Vertical placement model used by built-in text elements. */\nexport type TextPlacement = \"cell\" | \"caption\";\n\n/** Content and safe SVG text styling for the built-in `asset: text` element. */\nexport interface TextContent {\n\t/** Text content. Use newline characters for explicit line breaks. */\n\tvalue: string;\n\t/** Horizontal text anchor within the element cell. Defaults to `middle`. */\n\talign?: TextAlign;\n\t/** Vertical placement within the grid cell. Defaults to `cell`; `caption` preserves the legacy floating label. */\n\tplacement?: TextPlacement;\n\t/** SVG font-size in CSS pixels before element scaling. Defaults to `12`. */\n\tfontSize?: number;\n\t/** SVG font-weight. Defaults to `700`. */\n\tfontWeight?: number | \"normal\" | \"bold\";\n\t/** Multiplier applied to `fontSize` for multiline spacing. Defaults to `1.2`. */\n\tlineHeight?: number;\n\t/** SVG fill color. Defaults to `currentColor`. */\n\tfill?: string;\n}\n\n/** Sparse update payload for built-in text content. */\nexport type TextContentPatch = Partial<TextContent>;\n\n/** Built-in generated primitive asset ids. These are not declared in header assets. */\nexport type PrimitiveAssetId = \"rectangle\" | \"circle\" | \"polygon\" | \"line\";\n\n/** Shared safe SVG style fields for generated primitive assets. */\nexport interface PrimitiveStyle {\n\t/** SVG fill color or safe CSS color token. Defaults to `currentColor`. */\n\tfill?: string;\n\t/** SVG stroke color or safe CSS color token. Defaults to `none`. */\n\tstroke?: string;\n\t/** SVG stroke width in CSS pixels before element scaling. Defaults to `0`. */\n\tstrokeWidth?: number;\n\t/** Element opacity from `0` to `1`. Defaults to `1`. */\n\topacity?: number;\n\t/** Optional dash/gap pair for stroked primitives. */\n\tdash?: [number, number];\n}\n\n/** Generated projected rectangle/diamond primitive content. */\nexport interface RectanglePrimitive extends PrimitiveStyle {\n\t/** Optional corner radius for screen-space rectangles. Defaults to `0`. */\n\trx?: number;\n}\n\n/** Generated circle primitive content. */\nexport interface CirclePrimitive extends PrimitiveStyle {}\n\n/** Generated polygon primitive content using normalized local grid coordinates. */\nexport interface PolygonPrimitive extends PrimitiveStyle {\n\t/** Polygon points in local normalized grid coordinates from `0` to `1`. */\n\tpoints: [number, number][];\n}\n\n/** Generated line/polyline primitive content using normalized local grid coordinates. */\nexport interface LinePrimitive extends Omit<PrimitiveStyle, \"fill\"> {\n\t/** Line points in local normalized grid coordinates from `0` to `1`. */\n\tpoints: [number, number][];\n\t/** SVG line cap. Defaults to `round`. */\n\tlineCap?: \"butt\" | \"round\" | \"square\";\n\t/** SVG line join. Defaults to `round`. */\n\tlineJoin?: \"miter\" | \"round\" | \"bevel\";\n}\n\n/** Element-level payload for generated primitive assets. */\nexport interface PrimitiveContent {\n\trectangle?: RectanglePrimitive;\n\tcircle?: CirclePrimitive;\n\tpolygon?: PolygonPrimitive;\n\tline?: LinePrimitive;\n}\n\n/** Sparse update payload for built-in primitive content. */\nexport interface PrimitiveContentPatch {\n\trectangle?: Partial<RectanglePrimitive>;\n\tcircle?: Partial<CirclePrimitive>;\n\tpolygon?: Partial<PolygonPrimitive>;\n\tline?: Partial<LinePrimitive>;\n}\n\n/** Element placement used in first-scene elements and later add operations. */\nexport interface ElementPlacement {\n\tid: string;\n\tasset: string;\n\tat: [number, number];\n\tsize?: number;\n\tlayer?: string;\n\tenter?: EntryAnimation;\n\texit?: ExitAnimation;\n\tambient?: AmbientAnimation[];\n\ttext?: TextContent;\n\tprimitive?: PrimitiveContent;\n}\n\n/** Element patch used by scene update operations. */\nexport interface ElementPatch {\n\tid: string;\n\tat?: [number, number];\n\tsize?: number;\n\tlayer?: string;\n\tenter?: EntryAnimation;\n\texit?: ExitAnimation;\n\tambient?: AmbientAnimation[];\n\ttext?: TextContentPatch;\n\tprimitive?: PrimitiveContentPatch;\n}\n\n/** Element removal used by scene remove operations. */\nexport interface ElementRemoval {\n\tid: string;\n\texit?: ExitAnimation;\n}\n\n/** Visual connector line pattern for authored connections and runtime connectors. */\nexport type ConnectorPattern = \"solid\" | \"dashed\" | \"dotted\";\n\n/** Visual connector geometry variant. */\nexport type ConnectorVariant = \"line\" | \"road\";\n\n/** Generated endpoint indicator placed at the start or end of a connector. */\nexport type ConnectorEndpoint = \"none\" | \"arrow\" | \"dot\" | \"circle\" | \"diamond\" | \"bar\";\n\n/** Direction used for connector endpoint orientation and flow animation. */\nexport type ConnectorDirection = \"route\" | \"reverse\";\n\n/** Authored connector style overrides for a visual connection. */\nexport interface ConnectorStyle {\n\t/** Geometry variant. Defaults to `line`. */\n\tvariant?: ConnectorVariant;\n\t/** Stroke pattern. Defaults to `solid`. */\n\tpattern?: ConnectorPattern;\n\t/** SVG stroke color or safe CSS color token. */\n\tstroke?: string;\n\t/** Stroke width in SVG user units. */\n\tstrokeWidth?: number;\n\t/** Connector opacity from `0` to `1`. */\n\topacity?: number;\n\t/** Explicit dash/gap pair in SVG user units. */\n\tdash?: [number, number];\n\t/** Optional outline stroke color for road connectors. */\n\toutline?: string;\n\t/** Optional outline width in SVG user units. */\n\toutlineWidth?: number;\n\t/** Optional road lane treatment. */\n\tlane?: \"none\" | \"center-dashed\";\n}\n\n/** Authored endpoint reference for compiler-routed visual connections. */\nexport interface ConnectorEndpointRef {\n\t/** Element id to attach to. Mutually exclusive with `at`. */\n\telement?: string;\n\t/** Explicit grid point to attach to. Mutually exclusive with `element`. */\n\tat?: [number, number];\n\t/** Element side or automatic side selection. Defaults to `auto`. */\n\tside?: \"auto\" | \"top\" | \"right\" | \"bottom\" | \"left\" | \"front\" | \"back\";\n\t/** Normalized side offset from `-0.5` to `0.5`. Defaults to `0`. */\n\toffset?: number;\n}\n\n/** Authored routing options used only by dev-time compiler tooling. */\nexport interface ConnectorRouting {\n\t/** Routing mode. Defaults to `orthogonal` for endpoint-routed connections. */\n\tmode?: \"straight\" | \"orthogonal\" | \"manual\";\n\t/** Obstacle avoidance selection. Defaults to `objects`. */\n\tavoid?: \"objects\" | \"none\" | string[];\n\t/** Obstacle clearance in grid cells. Defaults to `0.5`. */\n\tclearance?: number;\n\t/** Router grid step in grid cells. */\n\tgridStep?: number;\n\t/** Maximum allowed bends for advanced routers. */\n\tmaxBends?: number;\n\t/** Route scoring preference for advanced routers. */\n\tprefer?: \"direct\" | \"fewest-bends\" | \"shortest\";\n}\n\n/** Connection placement used in first-scene connections and later add operations. */\nexport interface ConnectionPlacement {\n\tid: string;\n\troute?: [number, number][];\n\tfrom?: ConnectorEndpointRef;\n\tto?: ConnectorEndpointRef;\n\trouting?: ConnectorRouting;\n\tlayer?: string;\n\tstyle?: ConnectorStyle;\n\tstart?: ConnectorEndpoint;\n\tend?: ConnectorEndpoint;\n\tdirection?: ConnectorDirection;\n\tenter?: EntryAnimation;\n\texit?: ExitAnimation;\n\tambient?: AmbientAnimation[];\n}\n\n/** Connection patch used by scene update operations. */\nexport interface ConnectionPatch {\n\tid: string;\n\troute?: [number, number][];\n\tfrom?: ConnectorEndpointRef;\n\tto?: ConnectorEndpointRef;\n\trouting?: ConnectorRouting;\n\tlayer?: string;\n\tstyle?: ConnectorStyle;\n\tstart?: ConnectorEndpoint;\n\tend?: ConnectorEndpoint;\n\tdirection?: ConnectorDirection;\n\tenter?: EntryAnimation;\n\texit?: ExitAnimation;\n\tambient?: AmbientAnimation[];\n}\n\n/** Connection removal used by scene remove operations. */\nexport interface ConnectionRemoval {\n\tid: string;\n\texit?: ExitAnimation;\n}\n\n/** Fully defaulted connector style emitted to browser runtime snapshots. */\nexport interface RuntimeConnectorStyle {\n\tvariant: ConnectorVariant;\n\tpattern: ConnectorPattern;\n\tstroke: string;\n\tstrokeWidth: number;\n\topacity: number;\n\tdash?: [number, number];\n\toutline?: string;\n\toutlineWidth: number;\n\tlane: \"none\" | \"center-dashed\";\n}\n\n/** Runtime-resolved connector state in a compiled scene stop. */\nexport interface RuntimeConnectorState {\n\tid: string;\n\troute: [number, number][];\n\tlayer: string;\n\tpresence: LifecycleStatus;\n\tstyle: RuntimeConnectorStyle;\n\tstart: ConnectorEndpoint;\n\tend: ConnectorEndpoint;\n\tdirection: ConnectorDirection;\n\tenter?: EntryAnimation;\n\texit?: ExitAnimation;\n\tambient?: AmbientAnimation[];\n}\n\n/** Runtime-resolved element state in a compiled scene stop. */\nexport interface RuntimeElementState {\n\tid: string;\n\tasset: string;\n\tpos: [number, number];\n\tsize: number;\n\tlayer: string;\n\tpresence: LifecycleStatus;\n\tenter?: EntryAnimation;\n\texit?: ExitAnimation;\n\tambient?: AmbientAnimation[];\n\ttext?: TextContent;\n\tprimitive?: PrimitiveContent;\n}\n\n// ── Type guards ──────────────────────────────────────────────────────────────\n\n/** Narrow a raw string to EntryAnimation. Returns undefined if invalid. */\nexport function guardEntryAnimation(v: unknown): EntryAnimation | undefined {\n\tif (typeof v !== \"string\") return undefined;\n\treturn ENTRY_ANIMATIONS.has(v as EntryAnimation) ? (v as EntryAnimation) : undefined;\n}\n\n/** Narrow a raw string to ExitAnimation. Returns undefined if invalid. */\nexport function guardExitAnimation(v: unknown): ExitAnimation | undefined {\n\tif (typeof v !== \"string\") return undefined;\n\treturn EXIT_ANIMATIONS.has(v as ExitAnimation) ? (v as ExitAnimation) : undefined;\n}\n\n/** Narrow a raw string to LifecycleStatus. Returns undefined if invalid. */\nexport function guardLifecycleStatus(v: unknown): LifecycleStatus | undefined {\n\tif (typeof v !== \"string\") return undefined;\n\treturn LIFECYCLE_STATUSES.has(v as LifecycleStatus) ? (v as LifecycleStatus) : undefined;\n}\n","import { getResolvedProjectionLayout, getResolvedViewBox } from \"../rendering/rendering-engine.ts\";\nimport { RenderError } from \"../types/errors.ts\";\nimport type { RuntimeBundle } from \"../types/runtime-bundle.ts\";\nimport { projectToScreen } from \"../utils/projection.ts\";\nimport type { MountedScene } from \"./mount-scene.ts\";\n\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\nconst DIAGNOSTICS_ATTR = \"data-iso-diagnostics\";\n\nconst GRID_STROKE = \"var(--iso-diag-grid, rgba(37, 99, 235, 0.35))\";\nconst TEXT_FILL = \"var(--iso-diag-text, #1e3a8a)\";\nconst ANCHOR_FILL = \"var(--iso-diag-anchor, #dc2626)\";\nconst ROUTE_FILL = \"var(--iso-diag-route, #059669)\";\n\n/** Options accepted by {@link attachDiagnosticsOverlay}. */\nexport interface DiagnosticsOverlayOptions {\n\t/** Draw grid lines across the floor extent. Default: true. */\n\tgrid?: boolean;\n\t/** Draw cell coordinate labels at whole-cell intersections. Default: false. */\n\tcoordinates?: boolean;\n\t/** Mark element anchor points. Default: true. */\n\tanchors?: boolean;\n\t/** Mark connector route points. Default: true. */\n\troutes?: boolean;\n\t/** Show the scene id / progress readout panel. Default: true. */\n\treadout?: boolean;\n}\n\n/** Handle returned by {@link attachDiagnosticsOverlay} to refresh or remove the overlay. */\nexport interface DiagnosticsOverlayHandle {\n\t/** Re-render the overlay from current scene state. */\n\tupdate(): void;\n\t/** Remove the overlay and its subscriptions. Safe to call twice. */\n\tdestroy(): void;\n}\n\n/** Tracks the single live overlay per mounted SVG so a second attach can retire the first. */\ninterface OverlayRegistry {\n\tcurrent?: { token: symbol; handle: DiagnosticsOverlayHandle };\n}\n\nconst registryBySvg = new WeakMap<SVGSVGElement, OverlayRegistry>();\n\n/**\n * Attach a development-time diagnostics overlay (grid, coordinates, element\n * anchors, connector route points, and a scene/progress readout) to a mounted\n * scene. See `specs/02-capabilities/diagnostics-overlay.md` for the full\n * normative behavior.\n */\nexport function attachDiagnosticsOverlay(\n\tmounted: MountedScene,\n\toptions: DiagnosticsOverlayOptions = {},\n): DiagnosticsOverlayHandle {\n\tassertMounted(mounted);\n\n\tconst registry = registryBySvg.get(mounted.svg) ?? {};\n\tregistryBySvg.set(mounted.svg, registry);\n\n\t// Replace any previously attached overlay: retire its token so its\n\t// `update()`/`destroy()` become no-ops, then remove its DOM group.\n\tregistry.current?.handle.destroy();\n\n\tconst token = Symbol(\"diagnostics-overlay\");\n\tconst group = document.createElementNS(SVG_NS, \"g\") as SVGGElement;\n\tgroup.setAttribute(DIAGNOSTICS_ATTR, \"\");\n\tmounted.svg.appendChild(group);\n\n\tconst render = (): void => renderOverlay(group, mounted, options);\n\trender();\n\n\tconst unsubscribe = subscribeToLiveUpdates(mounted, render);\n\tconst isCurrent = (): boolean => registry.current?.token === token;\n\n\tconst handle: DiagnosticsOverlayHandle = {\n\t\tupdate(): void {\n\t\t\tif (!isCurrent()) return;\n\t\t\trender();\n\t\t},\n\t\tdestroy(): void {\n\t\t\tif (!isCurrent()) return;\n\t\t\tunsubscribe();\n\t\t\tgroup.parentNode?.removeChild(group);\n\t\t\tregistry.current = undefined;\n\t\t},\n\t};\n\n\tregistry.current = { token, handle };\n\treturn handle;\n}\n\nfunction assertMounted(mounted: MountedScene): void {\n\tif (!mounted.svg.isConnected) {\n\t\tthrow new RenderError(\"MOUNT_DESTROYED\", \"Cannot attach a diagnostics overlay to a destroyed mount\");\n\t}\n}\n\n/**\n * When the mount has a controller, re-render on `progress-change` and\n * `camera-change` so the overlay tracks live scroll/camera state. Without a\n * controller, consumers call `update()` manually — returns a no-op teardown.\n */\nfunction subscribeToLiveUpdates(mounted: MountedScene, render: () => void): () => void {\n\tconst controller = mounted.controller;\n\tif (!controller) return () => undefined;\n\n\tconst onProgressChange = (): void => render();\n\tconst onCameraChange = (): void => render();\n\tcontroller.on(\"progress-change\", onProgressChange);\n\tcontroller.on(\"camera-change\", onCameraChange);\n\n\treturn () => {\n\t\tcontroller.off(\"progress-change\", onProgressChange);\n\t\tcontroller.off(\"camera-change\", onCameraChange);\n\t};\n}\n\n// ── Rendering ────────────────────────────────────────────────────────────────\n\nfunction renderOverlay(group: SVGGElement, mounted: MountedScene, options: DiagnosticsOverlayOptions): void {\n\tclearChildren(group);\n\n\tconst bundle = mounted.engine.bundle;\n\tif (!bundle) return;\n\n\tconst layout = getResolvedProjectionLayout(bundle);\n\tconst project = (x: number, y: number): { x: number; y: number } => {\n\t\tconst screen = projectToScreen(\n\t\t\tx,\n\t\t\ty,\n\t\t\tlayout.cellSize,\n\t\t\tlayout.selectedBounds.minX,\n\t\t\tlayout.selectedBounds.minY,\n\t\t\tlayout.padding.x,\n\t\t\tlayout.padding.y,\n\t\t);\n\t\treturn { x: screen.screenX, y: screen.screenY };\n\t};\n\n\tconst showGrid = options.grid ?? true;\n\tconst showCoordinates = options.coordinates ?? false;\n\tconst showAnchors = options.anchors ?? true;\n\tconst showRoutes = options.routes ?? true;\n\tconst showReadout = options.readout ?? true;\n\n\tif (showGrid) appendGrid(group, bundle, project);\n\tif (showCoordinates) appendCoordinates(group, bundle, project);\n\tif (showAnchors) appendAnchors(group, mounted, project);\n\tif (showRoutes) appendRoutes(group, mounted, project);\n\tif (showReadout) appendReadout(group, mounted, bundle);\n}\n\nfunction appendGrid(\n\tgroup: SVGGElement,\n\tbundle: RuntimeBundle,\n\tproject: (x: number, y: number) => { x: number; y: number },\n): void {\n\tconst [originX, originY] = bundle.floor.origin;\n\tconst [columns, rows] = bundle.floor.size;\n\n\tfor (let x = 0; x <= columns; x++) {\n\t\tappendGridLine(group, project(originX + x, originY), project(originX + x, originY + rows));\n\t}\n\tfor (let y = 0; y <= rows; y++) {\n\t\tappendGridLine(group, project(originX, originY + y), project(originX + columns, originY + y));\n\t}\n}\n\nfunction appendGridLine(group: SVGGElement, start: { x: number; y: number }, end: { x: number; y: number }): void {\n\tconst path = document.createElementNS(SVG_NS, \"path\") as SVGPathElement;\n\tpath.setAttribute(\"d\", `M ${start.x} ${start.y} L ${end.x} ${end.y}`);\n\tpath.setAttribute(\"stroke\", GRID_STROKE);\n\tpath.setAttribute(\"stroke-width\", \"1\");\n\tpath.setAttribute(\"fill\", \"none\");\n\tpath.setAttribute(\"vector-effect\", \"non-scaling-stroke\");\n\tgroup.appendChild(path);\n}\n\nfunction appendCoordinates(\n\tgroup: SVGGElement,\n\tbundle: RuntimeBundle,\n\tproject: (x: number, y: number) => { x: number; y: number },\n): void {\n\tconst [originX, originY] = bundle.floor.origin;\n\tconst [columns, rows] = bundle.floor.size;\n\n\tfor (let x = 0; x <= columns; x++) {\n\t\tfor (let y = 0; y <= rows; y++) {\n\t\t\tconst gridX = originX + x;\n\t\t\tconst gridY = originY + y;\n\t\t\tconst point = project(gridX, gridY);\n\t\t\tconst text = document.createElementNS(SVG_NS, \"text\") as SVGTextElement;\n\t\t\ttext.setAttribute(\"x\", String(point.x));\n\t\t\ttext.setAttribute(\"y\", String(point.y));\n\t\t\ttext.setAttribute(\"font-size\", \"8\");\n\t\t\ttext.setAttribute(\"fill\", TEXT_FILL);\n\t\t\ttext.textContent = `${gridX},${gridY}`;\n\t\t\tgroup.appendChild(text);\n\t\t}\n\t}\n}\n\nfunction appendAnchors(\n\tgroup: SVGGElement,\n\tmounted: MountedScene,\n\tproject: (x: number, y: number) => { x: number; y: number },\n): void {\n\tfor (const element of mounted.engine.getFrameUpdates()) {\n\t\tif (element.lifecycle === \"removed\") continue;\n\t\t// The element's anchor is the node's local transform origin, which the\n\t\t// renderer always places at `projectToScreen(pos + size, ...)` — see\n\t\t// `applyElementTransform()` in rendering-engine.ts. No separate anchor\n\t\t// ratio math is needed here to locate the point itself.\n\t\tconst point = project(element.pos[0] + element.size, element.pos[1] + element.size);\n\t\tconst circle = document.createElementNS(SVG_NS, \"circle\") as SVGCircleElement;\n\t\tcircle.setAttribute(\"cx\", String(point.x));\n\t\tcircle.setAttribute(\"cy\", String(point.y));\n\t\tcircle.setAttribute(\"r\", \"3\");\n\t\tcircle.setAttribute(\"fill\", ANCHOR_FILL);\n\t\tgroup.appendChild(circle);\n\t}\n}\n\nfunction appendRoutes(\n\tgroup: SVGGElement,\n\tmounted: MountedScene,\n\tproject: (x: number, y: number) => { x: number; y: number },\n): void {\n\tfor (const connector of mounted.engine.getConnectorFrameUpdates()) {\n\t\tif (connector.lifecycle === \"removed\") continue;\n\t\tfor (const [x, y] of connector.route) {\n\t\t\tconst point = project(x, y);\n\t\t\tconst rect = document.createElementNS(SVG_NS, \"rect\") as SVGRectElement;\n\t\t\trect.setAttribute(\"x\", String(point.x - 2));\n\t\t\trect.setAttribute(\"y\", String(point.y - 2));\n\t\t\trect.setAttribute(\"width\", \"4\");\n\t\t\trect.setAttribute(\"height\", \"4\");\n\t\t\trect.setAttribute(\"fill\", ROUTE_FILL);\n\t\t\tgroup.appendChild(rect);\n\t\t}\n\t}\n}\n\nfunction appendReadout(group: SVGGElement, mounted: MountedScene, bundle: RuntimeBundle): void {\n\tconst viewBox = mounted.controller ? mounted.controller.getCameraState().viewBox : getResolvedViewBox(bundle);\n\tconst progress = mounted.controller ? mounted.controller.getProgress() : mounted.engine.getProgress();\n\t// Resolved from the engine's own progress-to-stop mapping (not\n\t// `controller.currentScene`, which only advances on explicit scene\n\t// navigation and would go stale under scroll-driven progress changes).\n\tconst sceneId = mounted.controller ? mounted.engine.getCurrentState()?.id : undefined;\n\n\tconst text = document.createElementNS(SVG_NS, \"text\") as SVGTextElement;\n\ttext.setAttribute(\"x\", String(viewBox.minX + 4));\n\ttext.setAttribute(\"y\", String(viewBox.minY + 10));\n\ttext.setAttribute(\"font-size\", \"10\");\n\ttext.setAttribute(\"fill\", TEXT_FILL);\n\ttext.textContent = sceneId\n\t\t? `scene ${sceneId} · progress ${roundProgress(progress)}`\n\t\t: `progress ${roundProgress(progress)}`;\n\tgroup.appendChild(text);\n}\n\nfunction roundProgress(progress: number): number {\n\treturn Math.round(progress * 1000) / 1000;\n}\n\nfunction clearChildren(node: SVGElement): void {\n\twhile (node.firstChild) node.removeChild(node.firstChild);\n}\n","import {\n\tgetConnectorState,\n\tgetElementState,\n\thideElementAfterExit,\n\tunhideElementOnReadd,\n\tupdateElementTransforms,\n} from \"../rendering/rendering-engine.ts\";\nimport { RenderError } from \"../types/errors.ts\";\nimport type { RuntimeConnectorState, RuntimeElementState } from \"../types/node.ts\";\nimport type { MountedScene } from \"./mount-scene.ts\";\n\nconst SVG_NAMESPACE = \"http://www.w3.org/2000/svg\";\nconst XLINK_NAMESPACE = \"http://www.w3.org/1999/xlink\";\nconst DIAGNOSTICS_OVERLAY_SELECTOR = \"[data-iso-diagnostics]\";\n\n/** Options accepted by {@link exportSceneSvg} and, via extension, {@link exportScenePng}. */\nexport interface SnapshotOptions {\n\t/** Progress to render before serializing. Omitted = current progress. */\n\tprogress?: number;\n\t/** Inline external `<image>` hrefs as `data:` URIs. Default: `true`. */\n\tinlineAssets?: boolean;\n\t/** Solid background color (any CSS color). Default: none (transparent). */\n\tbackground?: string;\n}\n\n/** Options accepted by {@link exportScenePng}. */\nexport interface PngSnapshotOptions extends SnapshotOptions {\n\t/** Device-pixel multiplier applied to the viewBox size. Default: `2`. */\n\tscale?: number;\n}\n\n/**\n * Serialize a mounted scene to a standalone SVG document string.\n *\n * The exported SVG carries the runtime stylesheet and current visual state\n * as-is. Ambient/entry/exit CSS animations are not restarted or awaited by\n * the export; the snapshot reflects the un-animated base state at the\n * resolved progress.\n */\nexport async function exportSceneSvg(mounted: MountedScene, options: SnapshotOptions = {}): Promise<string> {\n\tassertNotDestroyed(mounted);\n\tassertValidSnapshotOptions(options);\n\n\treturn withRestoredProgress(mounted, options.progress, async () => {\n\t\tconst clone = prepareClone(mounted.svg, options);\n\t\tif (options.inlineAssets ?? true) {\n\t\t\tawait inlineImageAssets(clone);\n\t\t}\n\t\treturn serializeSvg(clone);\n\t});\n}\n\n/** Rasterize a mounted scene to a PNG blob. */\nexport async function exportScenePng(mounted: MountedScene, options: PngSnapshotOptions = {}): Promise<Blob> {\n\tassertNotDestroyed(mounted);\n\tassertValidPngSnapshotOptions(options);\n\tconst scale = options.scale ?? 2;\n\n\treturn withRestoredProgress(mounted, options.progress, async () => {\n\t\tconst clone = prepareClone(mounted.svg, options);\n\t\t// PNG export always inlines assets: external hrefs taint or fail canvas rasterization.\n\t\tawait inlineImageAssets(clone);\n\t\tconst svgString = serializeSvg(clone);\n\t\tconst viewBox = readViewBox(clone);\n\t\treturn rasterize(svgString, viewBox, scale);\n\t});\n}\n\n// ── Shared step 1-3: destroyed check, option validation, progress restore ──\n\nfunction assertNotDestroyed(mounted: MountedScene): void {\n\tif (!mounted.svg.isConnected) {\n\t\tthrow new RenderError(\"EXPORT_TARGET_DESTROYED\", \"Cannot export a scene whose mount was destroyed\");\n\t}\n}\n\nfunction assertValidSnapshotOptions(options: SnapshotOptions): void {\n\tif (options.progress !== undefined && !isValidProgress(options.progress)) {\n\t\tthrow new RenderError(\"EXPORT_INVALID_OPTIONS\", \"progress must be a finite number within [0, 1]\", {\n\t\t\tprogress: options.progress,\n\t\t});\n\t}\n}\n\nfunction assertValidPngSnapshotOptions(options: PngSnapshotOptions): void {\n\tassertValidSnapshotOptions(options);\n\tif (options.scale !== undefined && !isValidScale(options.scale)) {\n\t\tthrow new RenderError(\"EXPORT_INVALID_OPTIONS\", \"scale must be a finite number greater than 0\", {\n\t\t\tscale: options.scale,\n\t\t});\n\t}\n\tif (options.inlineAssets === false) {\n\t\tthrow new RenderError(\n\t\t\t\"EXPORT_INVALID_OPTIONS\",\n\t\t\t\"exportScenePng() always inlines assets; inlineAssets: false is unsupported for PNG export\",\n\t\t);\n\t}\n}\n\nfunction isValidProgress(progress: number): boolean {\n\treturn Number.isFinite(progress) && progress >= 0 && progress <= 1;\n}\n\nfunction isValidScale(scale: number): boolean {\n\treturn Number.isFinite(scale) && scale > 0;\n}\n\n/**\n * Runs `run` at the requested `progress`, restoring the engine's prior\n * progress afterwards on every code path (success or rejection). When\n * `progress` is omitted, `run` executes at the scene's current progress and\n * no restoration is needed.\n */\nasync function withRestoredProgress<T>(\n\tmounted: MountedScene,\n\tprogress: number | undefined,\n\trun: () => Promise<T>,\n): Promise<T> {\n\tif (progress === undefined) {\n\t\treturn run();\n\t}\n\n\tconst previousProgress = mounted.engine.getProgress();\n\ttry {\n\t\tmounted.engine.setProgress(progress);\n\t\tapplyControllerFrame(mounted);\n\t\treturn await run();\n\t} finally {\n\t\tmounted.engine.setProgress(previousProgress);\n\t\tapplyControllerFrame(mounted);\n\t}\n}\n\n/**\n * Applies the engine's current frame to the live SVG so DOM state (element\n * transforms, generated content, connector routes, and lifecycle visibility)\n * matches the engine's resolved progress. Mirrors the non-animated portion of\n * `AnimationController`'s frame-apply path: transforms/content via\n * `updateElementTransforms()`, plus visibility driven by the resolved\n * lifecycle state. CSS entry/exit animation classes are intentionally not\n * (re)triggered here, matching the spec's requirement that ambient/entry\n * animations are irrelevant to export output.\n */\nfunction applyControllerFrame(mounted: MountedScene): void {\n\tconst svg = mounted.svg;\n\tconst elementUpdates = mounted.engine.getFrameUpdates().map(\n\t\t(update): RuntimeElementState => ({\n\t\t\tid: update.id,\n\t\t\tasset: update.asset,\n\t\t\tpos: update.pos,\n\t\t\tsize: update.size,\n\t\t\tlayer: update.layer,\n\t\t\tpresence: update.lifecycle,\n\t\t\tenter: update.entry as RuntimeElementState[\"enter\"],\n\t\t\texit: update.exit as RuntimeElementState[\"exit\"],\n\t\t\tambient: update.ambient,\n\t\t\ttext: update.text,\n\t\t\tprimitive: update.primitive,\n\t\t}),\n\t);\n\tconst connectorUpdates = mounted.engine.getConnectorFrameUpdates().map(\n\t\t(update): RuntimeConnectorState => ({\n\t\t\tid: update.id,\n\t\t\troute: update.route,\n\t\t\tlayer: update.layer,\n\t\t\tpresence: update.lifecycle,\n\t\t\tstyle: update.style,\n\t\t\tstart: update.start,\n\t\t\tend: update.end,\n\t\t\tdirection: update.direction,\n\t\t\tenter: update.entry as RuntimeConnectorState[\"enter\"],\n\t\t\texit: update.exit as RuntimeConnectorState[\"exit\"],\n\t\t\tambient: update.ambient,\n\t\t}),\n\t);\n\n\tupdateElementTransforms(svg, elementUpdates, connectorUpdates);\n\tapplyElementVisibility(svg, elementUpdates);\n\tapplyConnectorVisibility(svg, connectorUpdates);\n}\n\nfunction applyElementVisibility(svg: SVGSVGElement, elements: RuntimeElementState[]): void {\n\tfor (const element of elements) {\n\t\tconst state = getElementState(svg, element.id);\n\t\tif (!state) continue;\n\t\tif (element.presence === \"removed\") {\n\t\t\tstate.isHidden = true;\n\t\t\thideElementAfterExit(state.node);\n\t\t} else if (state.isHidden) {\n\t\t\tstate.isHidden = false;\n\t\t\tunhideElementOnReadd(state.node);\n\t\t}\n\t}\n}\n\nfunction applyConnectorVisibility(svg: SVGSVGElement, connectors: RuntimeConnectorState[]): void {\n\tfor (const connector of connectors) {\n\t\tconst state = getConnectorState(svg, connector.id);\n\t\tif (!state) continue;\n\t\tif (connector.presence === \"removed\") {\n\t\t\tstate.isHidden = true;\n\t\t\thideElementAfterExit(state.node);\n\t\t} else if (state.isHidden) {\n\t\t\tstate.isHidden = false;\n\t\t\tunhideElementOnReadd(state.node);\n\t\t}\n\t}\n}\n\n// ── Step 4-5: clone and prepare ────────────────────────────────────────────\n\nfunction prepareClone(svg: SVGSVGElement, options: SnapshotOptions): SVGSVGElement {\n\tconst clone = svg.cloneNode(true) as SVGSVGElement;\n\tconst viewBox = readViewBox(clone);\n\n\tclone.setAttribute(\"width\", String(viewBox.width));\n\tclone.setAttribute(\"height\", String(viewBox.height));\n\tclone.setAttribute(\"xmlns\", SVG_NAMESPACE);\n\tclone.setAttribute(\"xmlns:xlink\", XLINK_NAMESPACE);\n\n\tif (options.background) {\n\t\tconst rect = document.createElementNS(SVG_NAMESPACE, \"rect\");\n\t\trect.setAttribute(\"x\", String(viewBox.minX));\n\t\trect.setAttribute(\"y\", String(viewBox.minY));\n\t\trect.setAttribute(\"width\", String(viewBox.width));\n\t\trect.setAttribute(\"height\", String(viewBox.height));\n\t\trect.setAttribute(\"fill\", options.background);\n\t\tinsertAsFirstChild(clone, rect);\n\t}\n\n\tconst diagnosticsOverlay = clone.querySelector(DIAGNOSTICS_OVERLAY_SELECTOR);\n\tdiagnosticsOverlay?.parentNode?.removeChild(diagnosticsOverlay);\n\n\treturn clone;\n}\n\nfunction insertAsFirstChild(parent: SVGSVGElement, child: SVGElement): void {\n\tif (parent.firstChild) {\n\t\tparent.insertBefore(child, parent.firstChild);\n\t} else {\n\t\tparent.appendChild(child);\n\t}\n}\n\nfunction readViewBox(svg: SVGSVGElement): { minX: number; minY: number; width: number; height: number } {\n\tconst raw = svg.getAttribute(\"viewBox\");\n\tconst parts = (raw ?? \"\").trim().split(/\\s+/).map(Number);\n\tif (parts.length !== 4 || parts.some((part) => !Number.isFinite(part))) {\n\t\treturn { minX: 0, minY: 0, width: 0, height: 0 };\n\t}\n\tconst [minX, minY, width, height] = parts as [number, number, number, number];\n\treturn { minX, minY, width, height };\n}\n\n// ── Step 6: asset inlining ──────────────────────────────────────────────────\n\nasync function inlineImageAssets(clone: SVGSVGElement): Promise<void> {\n\tconst images = [...clone.querySelectorAll(\"image\")] as SVGImageElement[];\n\tawait Promise.all(images.map((image) => inlineImageHref(image)));\n}\n\nasync function inlineImageHref(image: SVGImageElement): Promise<void> {\n\tconst href = image.getAttribute(\"href\") ?? image.getAttributeNS(XLINK_NAMESPACE, \"href\");\n\tif (!href || href.startsWith(\"data:\")) return;\n\n\tconst dataUri = await fetchAsDataUri(href);\n\timage.setAttribute(\"href\", dataUri);\n\timage.setAttributeNS(XLINK_NAMESPACE, \"href\", dataUri);\n}\n\nasync function fetchAsDataUri(url: string): Promise<string> {\n\tlet response: Response;\n\ttry {\n\t\tresponse = await fetch(url);\n\t} catch {\n\t\tthrow new RenderError(\"EXPORT_ASSET_FETCH_FAILED\", `Failed to fetch asset for inlining: ${url}`, { url });\n\t}\n\tif (!response.ok) {\n\t\tthrow new RenderError(\"EXPORT_ASSET_FETCH_FAILED\", `Failed to fetch asset for inlining: ${url}`, { url });\n\t}\n\n\tconst contentType = response.headers.get(\"content-type\") ?? \"application/octet-stream\";\n\tconst buffer = await response.arrayBuffer();\n\treturn `data:${contentType};base64,${arrayBufferToBase64(buffer)}`;\n}\n\nfunction arrayBufferToBase64(buffer: ArrayBuffer): string {\n\tlet binary = \"\";\n\tconst bytes = new Uint8Array(buffer);\n\tfor (const byte of bytes) binary += String.fromCharCode(byte);\n\treturn btoa(binary);\n}\n\n// ── Step 7: SVG serialization ───────────────────────────────────────────────\n\nfunction serializeSvg(clone: SVGSVGElement): string {\n\tconst serializer = new XMLSerializer();\n\treturn `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\\n${serializer.serializeToString(clone)}`;\n}\n\n// ── Step 8: PNG rasterization ────────────────────────────────────────────────\n\nasync function rasterize(svgString: string, viewBox: { width: number; height: number }, scale: number): Promise<Blob> {\n\tconst width = Math.ceil(viewBox.width * scale);\n\tconst height = Math.ceil(viewBox.height * scale);\n\n\tconst svgBlob = new Blob([svgString], { type: \"image/svg+xml\" });\n\tconst objectUrl = URL.createObjectURL(svgBlob);\n\ttry {\n\t\tconst image = await loadImage(objectUrl);\n\n\t\tconst canvas = document.createElement(\"canvas\") as HTMLCanvasElement;\n\t\tcanvas.width = width;\n\t\tcanvas.height = height;\n\t\tconst context = canvas.getContext(\"2d\");\n\t\tif (!context) {\n\t\t\tthrow new RenderError(\"EXPORT_RASTERIZE_FAILED\", \"Canvas 2D context is unavailable\");\n\t\t}\n\t\tcontext.drawImage(image, 0, 0, width, height);\n\n\t\tconst blob = await new Promise<Blob | null>((resolve) => {\n\t\t\tcanvas.toBlob(resolve, \"image/png\");\n\t\t});\n\t\tif (!blob) {\n\t\t\tthrow new RenderError(\"EXPORT_RASTERIZE_FAILED\", \"Canvas failed to encode PNG output\");\n\t\t}\n\t\treturn blob;\n\t} finally {\n\t\tURL.revokeObjectURL(objectUrl);\n\t}\n}\n\nfunction loadImage(src: string): Promise<HTMLImageElement> {\n\treturn new Promise((resolve, reject) => {\n\t\tconst image = new Image();\n\t\timage.onload = () => resolve(image);\n\t\timage.onerror = () =>\n\t\t\treject(new RenderError(\"EXPORT_RASTERIZE_FAILED\", \"Failed to load rasterization source image\"));\n\t\timage.src = src;\n\t});\n}\n"],"names":[],"mappings":";;;;;;;AAyBA;AACO,MAAM,gBAAgB,GAAgC,IAAI,GAAG,CAAC;IACpE,SAAS;IACT,cAAc;IACd,SAAS;IACT,kBAAkB;IAClB,eAAe;IACf,gBAAgB;IAChB,SAAS;IACT,MAAM;AACN,CAAA,CAAC;AAEF;AACO,MAAM,eAAe,GAA+B,IAAI,GAAG,CAAC;IAClE,UAAU;IACV,iBAAiB;IACjB,qBAAqB;IACrB,WAAW;IACX,gBAAgB;IAChB,iBAAiB;IACjB,UAAU;IACV,MAAM;AACN,CAAA,CAAC;AAEF;AACO,MAAM,kBAAkB,GAAiC,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAmUtH;AAEA;AACM,SAAU,mBAAmB,CAAC,CAAU,EAAA;IAC7C,IAAI,OAAO,CAAC,KAAK,QAAQ;AAAE,QAAA,OAAO,SAAS;AAC3C,IAAA,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAmB,CAAC,GAAI,CAAoB,GAAG,SAAS;AACrF;AAEA;AACM,SAAU,kBAAkB,CAAC,CAAU,EAAA;IAC5C,IAAI,OAAO,CAAC,KAAK,QAAQ;AAAE,QAAA,OAAO,SAAS;AAC3C,IAAA,OAAO,eAAe,CAAC,GAAG,CAAC,CAAkB,CAAC,GAAI,CAAmB,GAAG,SAAS;AAClF;AAEA;AACM,SAAU,oBAAoB,CAAC,CAAU,EAAA;IAC9C,IAAI,OAAO,CAAC,KAAK,QAAQ;AAAE,QAAA,OAAO,SAAS;AAC3C,IAAA,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAoB,CAAC,GAAI,CAAqB,GAAG,SAAS;AACzF;;ACjYA,MAAM,MAAM,GAAG,4BAA4B;AAC3C,MAAM,gBAAgB,GAAG,sBAAsB;AAE/C,MAAM,WAAW,GAAG,+CAA+C;AACnE,MAAM,SAAS,GAAG,+BAA+B;AACjD,MAAM,WAAW,GAAG,iCAAiC;AACrD,MAAM,UAAU,GAAG,gCAAgC;AA6BnD,MAAM,aAAa,GAAG,IAAI,OAAO,EAAkC;AAEnE;;;;;AAKG;SACa,wBAAwB,CACvC,OAAqB,EACrB,UAAqC,EAAE,EAAA;IAEvC,aAAa,CAAC,OAAO,CAAC;AAEtB,IAAA,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE;IACrD,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC;;;AAIxC,IAAA,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;AAElC,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,qBAAqB,CAAC;IAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,GAAG,CAAgB;AAClE,IAAA,KAAK,CAAC,YAAY,CAAC,gBAAgB,EAAE,EAAE,CAAC;AACxC,IAAA,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC;AAE9B,IAAA,MAAM,MAAM,GAAG,MAAY,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AACjE,IAAA,MAAM,EAAE;IAER,MAAM,WAAW,GAAG,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC;AAC3D,IAAA,MAAM,SAAS,GAAG,MAAe,QAAQ,CAAC,OAAO,EAAE,KAAK,KAAK,KAAK;AAElE,IAAA,MAAM,MAAM,GAA6B;QACxC,MAAM,GAAA;YACL,IAAI,CAAC,SAAS,EAAE;gBAAE;AAClB,YAAA,MAAM,EAAE;QACT,CAAC;QACD,OAAO,GAAA;YACN,IAAI,CAAC,SAAS,EAAE;gBAAE;AAClB,YAAA,WAAW,EAAE;AACb,YAAA,KAAK,CAAC,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC;AACpC,YAAA,QAAQ,CAAC,OAAO,GAAG,SAAS;QAC7B,CAAC;KACD;IAED,QAAQ,CAAC,OAAO,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE;AACpC,IAAA,OAAO,MAAM;AACd;AAEA,SAAS,aAAa,CAAC,OAAqB,EAAA;AAC3C,IAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE;AAC7B,QAAA,MAAM,IAAI,WAAW,CAAC,iBAAiB,EAAE,0DAA0D,CAAC;IACrG;AACD;AAEA;;;;AAIG;AACH,SAAS,sBAAsB,CAAC,OAAqB,EAAE,MAAkB,EAAA;AACxE,IAAA,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU;AACrC,IAAA,IAAI,CAAC,UAAU;AAAE,QAAA,OAAO,MAAM,SAAS;AAEvC,IAAA,MAAM,gBAAgB,GAAG,MAAY,MAAM,EAAE;AAC7C,IAAA,MAAM,cAAc,GAAG,MAAY,MAAM,EAAE;AAC3C,IAAA,UAAU,CAAC,EAAE,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;AAClD,IAAA,UAAU,CAAC,EAAE,CAAC,eAAe,EAAE,cAAc,CAAC;AAE9C,IAAA,OAAO,MAAK;AACX,QAAA,UAAU,CAAC,GAAG,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;AACnD,QAAA,UAAU,CAAC,GAAG,CAAC,eAAe,EAAE,cAAc,CAAC;AAChD,IAAA,CAAC;AACF;AAEA;AAEA,SAAS,aAAa,CAAC,KAAkB,EAAE,OAAqB,EAAE,OAAkC,EAAA;IACnG,aAAa,CAAC,KAAK,CAAC;AAEpB,IAAA,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM;AACpC,IAAA,IAAI,CAAC,MAAM;QAAE;AAEb,IAAA,MAAM,MAAM,GAAG,2BAA2B,CAAC,MAAM,CAAC;AAClD,IAAA,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,CAAS,KAA8B;AAClE,QAAA,MAAM,MAAM,GAAG,eAAe,CAC7B,CAAC,EACD,CAAC,EACD,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,cAAc,CAAC,IAAI,EAC1B,MAAM,CAAC,cAAc,CAAC,IAAI,EAC1B,MAAM,CAAC,OAAO,CAAC,CAAC,EAChB,MAAM,CAAC,OAAO,CAAC,CAAC,CAChB;AACD,QAAA,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE;AAChD,IAAA,CAAC;AAED,IAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI;AACrC,IAAA,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,IAAI,KAAK;AACpD,IAAA,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI;AAC3C,IAAA,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI;AACzC,IAAA,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI;AAE3C,IAAA,IAAI,QAAQ;AAAE,QAAA,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC;AAChD,IAAA,IAAI,eAAe;AAAE,QAAA,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC;AAC9D,IAAA,IAAI,WAAW;AAAE,QAAA,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AACvD,IAAA,IAAI,UAAU;AAAE,QAAA,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AACrD,IAAA,IAAI,WAAW;AAAE,QAAA,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC;AACvD;AAEA,SAAS,UAAU,CAClB,KAAkB,EAClB,MAAqB,EACrB,OAA2D,EAAA;IAE3D,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM;IAC9C,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI;AAEzC,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE;QAClC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC;IAC3F;AACA,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE;QAC/B,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;IAC9F;AACD;AAEA,SAAS,cAAc,CAAC,KAAkB,EAAE,KAA+B,EAAE,GAA6B,EAAA;IACzG,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAmB;IACvE,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAA,EAAA,EAAK,KAAK,CAAC,CAAC,CAAA,CAAA,EAAI,KAAK,CAAC,CAAC,CAAA,GAAA,EAAM,GAAG,CAAC,CAAC,CAAA,CAAA,EAAI,GAAG,CAAC,CAAC,CAAA,CAAE,CAAC;AACrE,IAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,WAAW,CAAC;AACxC,IAAA,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,GAAG,CAAC;AACtC,IAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;AACjC,IAAA,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,oBAAoB,CAAC;AACxD,IAAA,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;AACxB;AAEA,SAAS,iBAAiB,CACzB,KAAkB,EAClB,MAAqB,EACrB,OAA2D,EAAA;IAE3D,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM;IAC9C,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI;AAEzC,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE;AAClC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE;AAC/B,YAAA,MAAM,KAAK,GAAG,OAAO,GAAG,CAAC;AACzB,YAAA,MAAM,KAAK,GAAG,OAAO,GAAG,CAAC;YACzB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;YACnC,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAmB;AACvE,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvC,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvC,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,GAAG,CAAC;AACnC,YAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC;YACpC,IAAI,CAAC,WAAW,GAAG,CAAA,EAAG,KAAK,CAAA,CAAA,EAAI,KAAK,EAAE;AACtC,YAAA,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;QACxB;IACD;AACD;AAEA,SAAS,aAAa,CACrB,KAAkB,EAClB,OAAqB,EACrB,OAA2D,EAAA;IAE3D,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE;AACvD,QAAA,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;YAAE;;;;;QAKrC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;QACnF,MAAM,MAAM,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAqB;AAC7E,QAAA,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1C,QAAA,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1C,QAAA,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC;AAC7B,QAAA,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC;AACxC,QAAA,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;IAC1B;AACD;AAEA,SAAS,YAAY,CACpB,KAAkB,EAClB,OAAqB,EACrB,OAA2D,EAAA;IAE3D,KAAK,MAAM,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,wBAAwB,EAAE,EAAE;AAClE,QAAA,IAAI,SAAS,CAAC,SAAS,KAAK,SAAS;YAAE;QACvC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,SAAS,CAAC,KAAK,EAAE;YACrC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;YAC3B,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAmB;AACvE,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3C,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3C,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC;AAC/B,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC;AAChC,YAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC;AACrC,YAAA,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;QACxB;IACD;AACD;AAEA,SAAS,aAAa,CAAC,KAAkB,EAAE,OAAqB,EAAE,MAAqB,EAAA;IACtF,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC;IAC7G,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE;;;;IAIrG,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,GAAG,SAAS;IAErF,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAmB;AACvE,IAAA,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;AAChD,IAAA,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;AACjD,IAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC;AACpC,IAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC;IACpC,IAAI,CAAC,WAAW,GAAG;UAChB,SAAS,OAAO,CAAA,YAAA,EAAe,aAAa,CAAC,QAAQ,CAAC,CAAA;AACxD,UAAE,CAAA,SAAA,EAAY,aAAa,CAAC,QAAQ,CAAC,EAAE;AACxC,IAAA,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;AACxB;AAEA,SAAS,aAAa,CAAC,QAAgB,EAAA;IACtC,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,IAAI;AAC1C;AAEA,SAAS,aAAa,CAAC,IAAgB,EAAA;IACtC,OAAO,IAAI,CAAC,UAAU;AAAE,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AAC1D;;AChQA,MAAM,aAAa,GAAG,4BAA4B;AAClD,MAAM,eAAe,GAAG,8BAA8B;AACtD,MAAM,4BAA4B,GAAG,wBAAwB;AAkB7D;;;;;;;AAOG;AACI,eAAe,cAAc,CAAC,OAAqB,EAAE,UAA2B,EAAE,EAAA;IACxF,kBAAkB,CAAC,OAAO,CAAC;IAC3B,0BAA0B,CAAC,OAAO,CAAC;IAEnC,OAAO,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,YAAW;QACjE,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC;AAChD,QAAA,IAAI,OAAO,CAAC,YAAY,IAAI,IAAI,EAAE;AACjC,YAAA,MAAM,iBAAiB,CAAC,KAAK,CAAC;QAC/B;AACA,QAAA,OAAO,YAAY,CAAC,KAAK,CAAC;AAC3B,IAAA,CAAC,CAAC;AACH;AAEA;AACO,eAAe,cAAc,CAAC,OAAqB,EAAE,UAA8B,EAAE,EAAA;IAC3F,kBAAkB,CAAC,OAAO,CAAC;IAC3B,6BAA6B,CAAC,OAAO,CAAC;AACtC,IAAA,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC;IAEhC,OAAO,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,YAAW;QACjE,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC;;AAEhD,QAAA,MAAM,iBAAiB,CAAC,KAAK,CAAC;AAC9B,QAAA,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACrC,QAAA,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC;QAClC,OAAO,SAAS,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC;AAC5C,IAAA,CAAC,CAAC;AACH;AAEA;AAEA,SAAS,kBAAkB,CAAC,OAAqB,EAAA;AAChD,IAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE;AAC7B,QAAA,MAAM,IAAI,WAAW,CAAC,yBAAyB,EAAE,iDAAiD,CAAC;IACpG;AACD;AAEA,SAAS,0BAA0B,CAAC,OAAwB,EAAA;AAC3D,IAAA,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AACzE,QAAA,MAAM,IAAI,WAAW,CAAC,wBAAwB,EAAE,gDAAgD,EAAE;YACjG,QAAQ,EAAE,OAAO,CAAC,QAAQ;AAC1B,SAAA,CAAC;IACH;AACD;AAEA,SAAS,6BAA6B,CAAC,OAA2B,EAAA;IACjE,0BAA0B,CAAC,OAAO,CAAC;AACnC,IAAA,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAChE,QAAA,MAAM,IAAI,WAAW,CAAC,wBAAwB,EAAE,8CAA8C,EAAE;YAC/F,KAAK,EAAE,OAAO,CAAC,KAAK;AACpB,SAAA,CAAC;IACH;AACA,IAAA,IAAI,OAAO,CAAC,YAAY,KAAK,KAAK,EAAE;AACnC,QAAA,MAAM,IAAI,WAAW,CACpB,wBAAwB,EACxB,2FAA2F,CAC3F;IACF;AACD;AAEA,SAAS,eAAe,CAAC,QAAgB,EAAA;AACxC,IAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC;AACnE;AAEA,SAAS,YAAY,CAAC,KAAa,EAAA;IAClC,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;AAC3C;AAEA;;;;;AAKG;AACH,eAAe,oBAAoB,CAClC,OAAqB,EACrB,QAA4B,EAC5B,GAAqB,EAAA;AAErB,IAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;QAC3B,OAAO,GAAG,EAAE;IACb;IAEA,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE;AACrD,IAAA,IAAI;AACH,QAAA,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC;QACpC,oBAAoB,CAAC,OAAO,CAAC;QAC7B,OAAO,MAAM,GAAG,EAAE;IACnB;YAAU;AACT,QAAA,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC;QAC5C,oBAAoB,CAAC,OAAO,CAAC;IAC9B;AACD;AAEA;;;;;;;;;AASG;AACH,SAAS,oBAAoB,CAAC,OAAqB,EAAA;AAClD,IAAA,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG;AACvB,IAAA,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,GAAG,CAC1D,CAAC,MAAM,MAA2B;QACjC,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,QAAQ,EAAE,MAAM,CAAC,SAAS;QAC1B,KAAK,EAAE,MAAM,CAAC,KAAqC;QACnD,IAAI,EAAE,MAAM,CAAC,IAAmC;QAChD,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,SAAS,EAAE,MAAM,CAAC,SAAS;AAC3B,KAAA,CAAC,CACF;AACD,IAAA,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,wBAAwB,EAAE,CAAC,GAAG,CACrE,CAAC,MAAM,MAA6B;QACnC,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,QAAQ,EAAE,MAAM,CAAC,SAAS;QAC1B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,KAAK,EAAE,MAAM,CAAC,KAAuC;QACrD,IAAI,EAAE,MAAM,CAAC,IAAqC;QAClD,OAAO,EAAE,MAAM,CAAC,OAAO;AACvB,KAAA,CAAC,CACF;AAED,IAAA,uBAAuB,CAAC,GAAG,EAAE,cAAc,EAAE,gBAAgB,CAAC;AAC9D,IAAA,sBAAsB,CAAC,GAAG,EAAE,cAAc,CAAC;AAC3C,IAAA,wBAAwB,CAAC,GAAG,EAAE,gBAAgB,CAAC;AAChD;AAEA,SAAS,sBAAsB,CAAC,GAAkB,EAAE,QAA+B,EAAA;AAClF,IAAA,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC/B,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;AAC9C,QAAA,IAAI,CAAC,KAAK;YAAE;AACZ,QAAA,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE;AACnC,YAAA,KAAK,CAAC,QAAQ,GAAG,IAAI;AACrB,YAAA,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC;QACjC;AAAO,aAAA,IAAI,KAAK,CAAC,QAAQ,EAAE;AAC1B,YAAA,KAAK,CAAC,QAAQ,GAAG,KAAK;AACtB,YAAA,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC;QACjC;IACD;AACD;AAEA,SAAS,wBAAwB,CAAC,GAAkB,EAAE,UAAmC,EAAA;AACxF,IAAA,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;QACnC,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;AAClD,QAAA,IAAI,CAAC,KAAK;YAAE;AACZ,QAAA,IAAI,SAAS,CAAC,QAAQ,KAAK,SAAS,EAAE;AACrC,YAAA,KAAK,CAAC,QAAQ,GAAG,IAAI;AACrB,YAAA,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC;QACjC;AAAO,aAAA,IAAI,KAAK,CAAC,QAAQ,EAAE;AAC1B,YAAA,KAAK,CAAC,QAAQ,GAAG,KAAK;AACtB,YAAA,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC;QACjC;IACD;AACD;AAEA;AAEA,SAAS,YAAY,CAAC,GAAkB,EAAE,OAAwB,EAAA;IACjE,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAkB;AAClD,IAAA,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC;AAElC,IAAA,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAClD,IAAA,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACpD,IAAA,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC;AAC1C,IAAA,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,eAAe,CAAC;AAElD,IAAA,IAAI,OAAO,CAAC,UAAU,EAAE;QACvB,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC,aAAa,EAAE,MAAM,CAAC;AAC5D,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC5C,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC5C,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC;AAC7C,QAAA,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC;IAChC;IAEA,MAAM,kBAAkB,GAAG,KAAK,CAAC,aAAa,CAAC,4BAA4B,CAAC;AAC5E,IAAA,kBAAkB,EAAE,UAAU,EAAE,WAAW,CAAC,kBAAkB,CAAC;AAE/D,IAAA,OAAO,KAAK;AACb;AAEA,SAAS,kBAAkB,CAAC,MAAqB,EAAE,KAAiB,EAAA;AACnE,IAAA,IAAI,MAAM,CAAC,UAAU,EAAE;QACtB,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC;IAC9C;SAAO;AACN,QAAA,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC;IAC1B;AACD;AAEA,SAAS,WAAW,CAAC,GAAkB,EAAA;IACtC,MAAM,GAAG,GAAG,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC;IACvC,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;IACzD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE;AACvE,QAAA,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;IACjD;IACA,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,KAAyC;IAC7E,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;AACrC;AAEA;AAEA,eAAe,iBAAiB,CAAC,KAAoB,EAAA;IACpD,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAsB;AACxE,IAAA,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;AACjE;AAEA,eAAe,eAAe,CAAC,KAAsB,EAAA;AACpD,IAAA,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,eAAe,EAAE,MAAM,CAAC;IACxF,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE;AAEvC,IAAA,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC;AAC1C,IAAA,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC;IACnC,KAAK,CAAC,cAAc,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,CAAC;AACvD;AAEA,eAAe,cAAc,CAAC,GAAW,EAAA;AACxC,IAAA,IAAI,QAAkB;AACtB,IAAA,IAAI;AACH,QAAA,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC;IAC5B;AAAE,IAAA,MAAM;AACP,QAAA,MAAM,IAAI,WAAW,CAAC,2BAA2B,EAAE,CAAA,oCAAA,EAAuC,GAAG,CAAA,CAAE,EAAE,EAAE,GAAG,EAAE,CAAC;IAC1G;AACA,IAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AACjB,QAAA,MAAM,IAAI,WAAW,CAAC,2BAA2B,EAAE,CAAA,oCAAA,EAAuC,GAAG,CAAA,CAAE,EAAE,EAAE,GAAG,EAAE,CAAC;IAC1G;AAEA,IAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,0BAA0B;AACtF,IAAA,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE;IAC3C,OAAO,CAAA,KAAA,EAAQ,WAAW,CAAA,QAAA,EAAW,mBAAmB,CAAC,MAAM,CAAC,EAAE;AACnE;AAEA,SAAS,mBAAmB,CAAC,MAAmB,EAAA;IAC/C,IAAI,MAAM,GAAG,EAAE;AACf,IAAA,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC;IACpC,KAAK,MAAM,IAAI,IAAI,KAAK;AAAE,QAAA,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;AAC7D,IAAA,OAAO,IAAI,CAAC,MAAM,CAAC;AACpB;AAEA;AAEA,SAAS,YAAY,CAAC,KAAoB,EAAA;AACzC,IAAA,MAAM,UAAU,GAAG,IAAI,aAAa,EAAE;IACtC,OAAO,CAAA,wCAAA,EAA2C,UAAU,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE;AACxF;AAEA;AAEA,eAAe,SAAS,CAAC,SAAiB,EAAE,OAA0C,EAAE,KAAa,EAAA;AACpG,IAAA,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;AAC9C,IAAA,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;AAEhD,IAAA,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;IAChE,MAAM,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC;AAC9C,IAAA,IAAI;AACH,QAAA,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC;QAExC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAsB;AACpE,QAAA,MAAM,CAAC,KAAK,GAAG,KAAK;AACpB,QAAA,MAAM,CAAC,MAAM,GAAG,MAAM;QACtB,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;QACvC,IAAI,CAAC,OAAO,EAAE;AACb,YAAA,MAAM,IAAI,WAAW,CAAC,yBAAyB,EAAE,kCAAkC,CAAC;QACrF;AACA,QAAA,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC;QAE7C,MAAM,IAAI,GAAG,MAAM,IAAI,OAAO,CAAc,CAAC,OAAO,KAAI;AACvD,YAAA,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC;AACpC,QAAA,CAAC,CAAC;QACF,IAAI,CAAC,IAAI,EAAE;AACV,YAAA,MAAM,IAAI,WAAW,CAAC,yBAAyB,EAAE,oCAAoC,CAAC;QACvF;AACA,QAAA,OAAO,IAAI;IACZ;YAAU;AACT,QAAA,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC;IAC/B;AACD;AAEA,SAAS,SAAS,CAAC,GAAW,EAAA;IAC7B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACtC,QAAA,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE;QACzB,KAAK,CAAC,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC;AACnC,QAAA,KAAK,CAAC,OAAO,GAAG,MACf,MAAM,CAAC,IAAI,WAAW,CAAC,yBAAyB,EAAE,2CAA2C,CAAC,CAAC;AAChG,QAAA,KAAK,CAAC,GAAG,GAAG,GAAG;AAChB,IAAA,CAAC,CAAC;AACH;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"animation-css.d.ts","sourceRoot":"","sources":["../../src/rendering/animation-css.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,wBAAgB,gBAAgB,IAAI,MAAM,CA6BzC"}
1
+ {"version":3,"file":"animation-css.d.ts","sourceRoot":"","sources":["../../src/rendering/animation-css.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,wBAAgB,gBAAgB,IAAI,MAAM,CAoCzC"}
@@ -42,11 +42,19 @@ export interface ViewBoxRect {
42
42
  interface ConnectorState {
43
43
  node: SVGGElement;
44
44
  shaft: SVGPathElement;
45
+ outline?: SVGPathElement;
46
+ lane?: SVGPathElement;
47
+ startEndpoint?: SVGElement;
48
+ endEndpoint?: SVGElement;
45
49
  isHidden: boolean;
46
50
  ambient: Set<string>;
51
+ previous?: RuntimeConnectorState;
47
52
  }
53
+ /** Options accepted by `buildSceneDOM()`. */
48
54
  export interface RenderConfig {
55
+ /** Accessible label for the mounted SVG root. */
49
56
  label?: string;
57
+ /** CSS custom properties applied on top of the bundle theme. */
50
58
  themeVars?: Record<string, string>;
51
59
  }
52
60
  /** Build the SVG DOM for a compiled runtime bundle and mount it into a container. */
@@ -56,6 +64,7 @@ export declare function updateElementTransforms(svg: SVGSVGElement & {
56
64
  _elementMap?: Map<string, ElementState | unknown>;
57
65
  _connectorMap?: Map<string, ConnectorState | unknown>;
58
66
  _layout?: ResolvedLayoutState;
67
+ _depthGroup?: SVGGElement;
59
68
  }, elements: RuntimeElementState[], connectors?: RuntimeConnectorState[]): void;
60
69
  /** Read the internal ElementState for an element by its id. */
61
70
  export declare function getElementState(svg: SVGSVGElement & {
@@ -1 +1 @@
1
- {"version":3,"file":"rendering-engine.d.ts","sourceRoot":"","sources":["../../src/rendering/rendering-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rendering-engine.d.ts","sourceRoot":"","sources":["../../src/rendering/rendering-engine.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,6 @@
1
+ /**
2
+ * Apply theme CSS custom properties to an element's inline style.
3
+ * Throws `RenderError` (`INVALID_THEME_VAR`) if a key is not a valid `--name` custom property.
4
+ */
1
5
  export declare function applyThemeToElement(element: SVGElement | HTMLElement, themeVars: Record<string, string>): void;
2
6
  //# sourceMappingURL=theme.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/rendering/theme.ts"],"names":[],"mappings":"AAIA,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,UAAU,GAAG,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAO9G"}
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/rendering/theme.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,UAAU,GAAG,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAO9G"}
@@ -0,0 +1,29 @@
1
+ import type { MountedScene } from "./mount-scene.ts";
2
+ /** Options accepted by {@link attachDiagnosticsOverlay}. */
3
+ export interface DiagnosticsOverlayOptions {
4
+ /** Draw grid lines across the floor extent. Default: true. */
5
+ grid?: boolean;
6
+ /** Draw cell coordinate labels at whole-cell intersections. Default: false. */
7
+ coordinates?: boolean;
8
+ /** Mark element anchor points. Default: true. */
9
+ anchors?: boolean;
10
+ /** Mark connector route points. Default: true. */
11
+ routes?: boolean;
12
+ /** Show the scene id / progress readout panel. Default: true. */
13
+ readout?: boolean;
14
+ }
15
+ /** Handle returned by {@link attachDiagnosticsOverlay} to refresh or remove the overlay. */
16
+ export interface DiagnosticsOverlayHandle {
17
+ /** Re-render the overlay from current scene state. */
18
+ update(): void;
19
+ /** Remove the overlay and its subscriptions. Safe to call twice. */
20
+ destroy(): void;
21
+ }
22
+ /**
23
+ * Attach a development-time diagnostics overlay (grid, coordinates, element
24
+ * anchors, connector route points, and a scene/progress readout) to a mounted
25
+ * scene. See `specs/02-capabilities/diagnostics-overlay.md` for the full
26
+ * normative behavior.
27
+ */
28
+ export declare function attachDiagnosticsOverlay(mounted: MountedScene, options?: DiagnosticsOverlayOptions): DiagnosticsOverlayHandle;
29
+ //# sourceMappingURL=diagnostics-overlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics-overlay.d.ts","sourceRoot":"","sources":["../../src/runtime/diagnostics-overlay.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAUrD,4DAA4D;AAC5D,MAAM,WAAW,yBAAyB;IACzC,8DAA8D;IAC9D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,+EAA+E;IAC/E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iDAAiD;IACjD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kDAAkD;IAClD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iEAAiE;IACjE,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,4FAA4F;AAC5F,MAAM,WAAW,wBAAwB;IACxC,sDAAsD;IACtD,MAAM,IAAI,IAAI,CAAC;IACf,oEAAoE;IACpE,OAAO,IAAI,IAAI,CAAC;CAChB;AASD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACvC,OAAO,EAAE,YAAY,EACrB,OAAO,GAAE,yBAA8B,GACrC,wBAAwB,CAoC1B"}
@@ -0,0 +1,27 @@
1
+ import type { MountedScene } from "./mount-scene.ts";
2
+ /** Options accepted by {@link exportSceneSvg} and, via extension, {@link exportScenePng}. */
3
+ export interface SnapshotOptions {
4
+ /** Progress to render before serializing. Omitted = current progress. */
5
+ progress?: number;
6
+ /** Inline external `<image>` hrefs as `data:` URIs. Default: `true`. */
7
+ inlineAssets?: boolean;
8
+ /** Solid background color (any CSS color). Default: none (transparent). */
9
+ background?: string;
10
+ }
11
+ /** Options accepted by {@link exportScenePng}. */
12
+ export interface PngSnapshotOptions extends SnapshotOptions {
13
+ /** Device-pixel multiplier applied to the viewBox size. Default: `2`. */
14
+ scale?: number;
15
+ }
16
+ /**
17
+ * Serialize a mounted scene to a standalone SVG document string.
18
+ *
19
+ * The exported SVG carries the runtime stylesheet and current visual state
20
+ * as-is. Ambient/entry/exit CSS animations are not restarted or awaited by
21
+ * the export; the snapshot reflects the un-animated base state at the
22
+ * resolved progress.
23
+ */
24
+ export declare function exportSceneSvg(mounted: MountedScene, options?: SnapshotOptions): Promise<string>;
25
+ /** Rasterize a mounted scene to a PNG blob. */
26
+ export declare function exportScenePng(mounted: MountedScene, options?: PngSnapshotOptions): Promise<Blob>;
27
+ //# sourceMappingURL=export.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/runtime/export.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAMrD,6FAA6F;AAC7F,MAAM,WAAW,eAAe;IAC/B,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,kDAAkD;AAClD,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IAC1D,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAW1G;AAED,+CAA+C;AAC/C,wBAAsB,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAa3G"}
@@ -1,3 +1,4 @@
1
1
  export type { CompiledAsset, CompiledFloor, CompiledLayer, CompiledLayout, RuntimeBundle, } from "../types/runtime-bundle.ts";
2
+ export type { ElementPointerEvent, MountedSceneEvents } from "./interactivity.ts";
2
3
  export { type MountedScene, type MountSceneOptions, mountScene, type ResolvedRuntimeConfig, } from "./mount-scene.ts";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACX,aAAa,EACb,aAAa,EACb,aAAa,EACb,cAAc,EACd,aAAa,GACb,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACN,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,UAAU,EACV,KAAK,qBAAqB,GAC1B,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACX,aAAa,EACb,aAAa,EACb,aAAa,EACb,cAAc,EACd,aAAa,GACb,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EACN,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,UAAU,EACV,KAAK,qBAAqB,GAC1B,MAAM,kBAAkB,CAAC"}
@@ -1,5 +1,5 @@
1
- export { m as mountScene } from '../chunks/index-C3qcXbPI.js';
2
- import '../chunks/rendering-engine-BUUV3Qq-.js';
1
+ export { m as mountScene } from '../chunks/index-CB6XEsbY.js';
3
2
  import '../chunks/errors-DyqEkrm5.js';
3
+ import '../chunks/rendering-engine-nkqYx0qc.js';
4
4
  import '../chunks/sha256-4JuurR-b.js';
5
5
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,56 @@
1
+ /** Payload for element pointer events. */
2
+ export interface ElementPointerEvent {
3
+ /** Element id from the scene definition. */
4
+ id: string;
5
+ /** The native DOM event that triggered this notification. */
6
+ originalEvent: Event;
7
+ }
8
+ /** Events emitted by `MountedScene.on()`. */
9
+ export interface MountedSceneEvents {
10
+ "element-click": (event: ElementPointerEvent) => void;
11
+ "element-enter": (event: ElementPointerEvent) => void;
12
+ "element-leave": (event: ElementPointerEvent) => void;
13
+ }
14
+ type EventKey = keyof MountedSceneEvents;
15
+ /**
16
+ * Owns delegated pointer listeners and event subscriptions for one mounted
17
+ * scene. Created unconditionally by `mountScene()`; the three DOM listeners
18
+ * are only attached when `interactive: true`.
19
+ */
20
+ export declare class SceneInteractivity {
21
+ private readonly svg;
22
+ private readonly listeners;
23
+ private destroyed;
24
+ private attached;
25
+ private readonly onClick;
26
+ private readonly onPointerOver;
27
+ private readonly onPointerOut;
28
+ constructor(svg: SVGSVGElement, interactive: boolean);
29
+ /** Subscribe to interactivity events. Returns an unsubscribe function. */
30
+ on<K extends EventKey>(event: K, listener: MountedSceneEvents[K]): () => void;
31
+ /** Remove the three delegated listeners and all subscriptions. Safe to call more than once. */
32
+ destroy(): void;
33
+ private handleClick;
34
+ private handlePointerOver;
35
+ private handlePointerOut;
36
+ private toggleHoverClass;
37
+ /**
38
+ * Resolve the scene element id for a pointer event target: walk up
39
+ * `parentNode` from the event target until the root SVG, looking for the
40
+ * first ancestor `<g>` that is a member of the engine's element state map
41
+ * (connector groups also carry `data-id` but are never members of this
42
+ * map, and floor/defs/diagnostics nodes carry no `data-id` at all). An
43
+ * element whose current presence is `removed` never resolves.
44
+ */
45
+ private resolveVisibleElementId;
46
+ /**
47
+ * Invoke every listener for `event`. Exceptions are not caught: consistent
48
+ * with `AnimationController`'s event system, a throwing listener is
49
+ * rethrown asynchronously (via `queueMicrotask`) rather than swallowed, so
50
+ * it surfaces as an unhandled error without breaking delivery to sibling
51
+ * listeners in the same `Set`.
52
+ */
53
+ private emit;
54
+ }
55
+ export {};
56
+ //# sourceMappingURL=interactivity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactivity.d.ts","sourceRoot":"","sources":["../../src/runtime/interactivity.ts"],"names":[],"mappings":"AAGA,0CAA0C;AAC1C,MAAM,WAAW,mBAAmB;IACnC,4CAA4C;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,6DAA6D;IAC7D,aAAa,EAAE,KAAK,CAAC;CACrB;AAED,6CAA6C;AAC7C,MAAM,WAAW,kBAAkB;IAClC,eAAe,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACtD,eAAe,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACtD,eAAe,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;CACtD;AAED,KAAK,QAAQ,GAAG,MAAM,kBAAkB,CAAC;AAMzC;;;;GAIG;AACH,qBAAa,kBAAkB;IAC9B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8C;IACxE,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmD;IAC3E,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyE;IACvG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwE;gBAEzF,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO;IAWpD,0EAA0E;IAC1E,EAAE,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAY7E,+FAA+F;IAC/F,OAAO,IAAI,IAAI;IAYf,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,gBAAgB;IAMxB;;;;;;;OAOG;IACH,OAAO,CAAC,uBAAuB;IAc/B;;;;;;OAMG;IACH,OAAO,CAAC,IAAI;CAaZ"}
@@ -1,7 +1,8 @@
1
1
  import { AnimationEngine } from "../animation/animation-engine.ts";
2
- import type { ControllerConfig } from "../animation/controller.ts";
2
+ import type { CameraState, ControllerConfig } from "../animation/controller.ts";
3
3
  import { AnimationController } from "../animation/controller.ts";
4
4
  import type { CompiledFloor, CompiledLayout, RuntimeBundle } from "../types/runtime-bundle.ts";
5
+ import { type MountedSceneEvents } from "./interactivity.ts";
5
6
  export interface MountSceneOptions {
6
7
  /** Controller options, `false` to disable, or omitted to leave controller uninitialized. */
7
8
  controller?: ControllerConfig | false;
@@ -9,6 +10,8 @@ export interface MountSceneOptions {
9
10
  label?: string;
10
11
  /** CSS custom properties applied on top of the bundle theme. */
11
12
  themeVars?: Record<string, string>;
13
+ /** Enable pointer interactivity on scene elements. Default: false. */
14
+ interactive?: boolean;
12
15
  }
13
16
  /** Runtime configuration resolved from a mounted scene bundle. */
14
17
  export interface ResolvedRuntimeConfig {
@@ -23,15 +26,7 @@ export interface ResolvedRuntimeConfig {
23
26
  width: number;
24
27
  height: number;
25
28
  };
26
- camera: {
27
- viewBox: {
28
- minX: number;
29
- minY: number;
30
- width: number;
31
- height: number;
32
- };
33
- isZoomed: boolean;
34
- };
29
+ camera: CameraState;
35
30
  theme: string;
36
31
  themeVars: Record<string, string>;
37
32
  scenes: Array<{
@@ -53,6 +48,12 @@ export interface MountedScene {
53
48
  controller?: AnimationController;
54
49
  /** Inspect effective runtime settings after defaults and bundle metadata are applied. */
55
50
  getResolvedConfig(): ResolvedRuntimeConfig;
51
+ /**
52
+ * Subscribe to interactivity events. Returns an unsubscribe function.
53
+ * Callable regardless of the `interactive` option; without it no events
54
+ * fire.
55
+ */
56
+ on<K extends keyof MountedSceneEvents>(event: K, listener: MountedSceneEvents[K]): () => void;
56
57
  /** Remove DOM and event listeners owned by this mount. Safe to call more than once. */
57
58
  destroy(): void;
58
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mount-scene.d.ts","sourceRoot":"","sources":["../../src/runtime/mount-scene.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAIjE,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAO/F,MAAM,WAAW,iBAAiB;IACjC,4FAA4F;IAC5F,UAAU,CAAC,EAAE,gBAAgB,GAAG,KAAK,CAAC;IACtC,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,kEAAkE;AAClE,MAAM,WAAW,qBAAqB;IACrC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3B,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE,MAAM,EAAE;QAAE,OAAO,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;IACtG,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,MAAM,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChD,UAAU,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnD;AAED,gFAAgF;AAChF,MAAM,WAAW,YAAY;IAC5B,qDAAqD;IACrD,GAAG,EAAE,aAAa,CAAC;IACnB,iEAAiE;IACjE,MAAM,EAAE,eAAe,CAAC;IACxB,yEAAyE;IACzE,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,yFAAyF;IACzF,iBAAiB,IAAI,qBAAqB,CAAC;IAC3C,uFAAuF;IACvF,OAAO,IAAI,IAAI,CAAC;CAChB;AAED,4DAA4D;AAC5D,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,GAAE,iBAAsB,GAAG,YAAY,CAgDpH"}
1
+ {"version":3,"file":"mount-scene.d.ts","sourceRoot":"","sources":["../../src/runtime/mount-scene.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAIjE,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE/F,OAAO,EAAE,KAAK,kBAAkB,EAAsB,MAAM,oBAAoB,CAAC;AAMjF,MAAM,WAAW,iBAAiB;IACjC,4FAA4F;IAC5F,UAAU,CAAC,EAAE,gBAAgB,GAAG,KAAK,CAAC;IACtC,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,sEAAsE;IACtE,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,kEAAkE;AAClE,MAAM,WAAW,qBAAqB;IACrC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3B,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,MAAM,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChD,UAAU,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnD;AAED,gFAAgF;AAChF,MAAM,WAAW,YAAY;IAC5B,qDAAqD;IACrD,GAAG,EAAE,aAAa,CAAC;IACnB,iEAAiE;IACjE,MAAM,EAAE,eAAe,CAAC;IACxB,yEAAyE;IACzE,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,yFAAyF;IACzF,iBAAiB,IAAI,qBAAqB,CAAC;IAC3C;;;;OAIG;IACH,EAAE,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC;IAC9F,uFAAuF;IACvF,OAAO,IAAI,IAAI,CAAC;CAChB;AAED,4DAA4D;AAC5D,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,GAAE,iBAAsB,GAAG,YAAY,CAoDpH"}
@@ -20,6 +20,7 @@ export declare class AssetRegistryImpl implements AssetRegistry {
20
20
  has(id: string): boolean;
21
21
  remove(id: string): void;
22
22
  }
23
+ /** Create a registry populated with the given asset definitions. */
23
24
  export declare function createAssetRegistry(assets?: AssetDefinition[]): AssetRegistryImpl;
24
25
  /** Create a fresh registry populated with the built-in demo assets. */
25
26
  export declare function createDefaultRegistry(): AssetRegistryImpl;
@@ -1 +1 @@
1
- {"version":3,"file":"asset-registry.d.ts","sourceRoot":"","sources":["../../src/types/asset-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAkCxF;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAE7E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAMvF;AAID;;;GAGG;AACH,qBAAa,iBAAkB,YAAW,aAAa;IACtD,OAAO,CAAC,OAAO,CAAsC;IAErD,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAItC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAI5C,MAAM,CAAC,QAAQ,CAAC,EAAE,aAAa,GAAG,eAAe,EAAE;IAOnD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIxB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;CAGxB;AAED,wBAAgB,mBAAmB,CAAC,MAAM,GAAE,eAAe,EAAO,GAAG,iBAAiB,CAMrF;AAED,uEAAuE;AACvE,wBAAgB,qBAAqB,IAAI,iBAAiB,CAuBzD"}
1
+ {"version":3,"file":"asset-registry.d.ts","sourceRoot":"","sources":["../../src/types/asset-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAkCxF;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAE7E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAMvF;AAID;;;GAGG;AACH,qBAAa,iBAAkB,YAAW,aAAa;IACtD,OAAO,CAAC,OAAO,CAAsC;IAErD,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAItC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAI5C,MAAM,CAAC,QAAQ,CAAC,EAAE,aAAa,GAAG,eAAe,EAAE;IAOnD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIxB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;CAGxB;AAED,oEAAoE;AACpE,wBAAgB,mBAAmB,CAAC,MAAM,GAAE,eAAe,EAAO,GAAG,iBAAiB,CAMrF;AAED,uEAAuE;AACvE,wBAAgB,qBAAqB,IAAI,iBAAiB,CAuBzD"}
@@ -19,11 +19,16 @@ export interface AmbientAnimation {
19
19
  /** Number of times to play (only relevant when infinite: false) */
20
20
  iterations?: number;
21
21
  }
22
+ /** Camera transition easing curve. */
22
23
  export type CameraEasing = "linear" | "ease-in-out" | "ease-out";
24
+ /** Grid-space rectangle used as a camera zoom target. */
23
25
  export interface CameraGridArea {
26
+ /** Top-left grid cell of the area. */
24
27
  at: [number, number];
28
+ /** Area size in whole grid cells. */
25
29
  size: [number, number];
26
30
  }
31
+ /** Authored camera focus target: a named element, a grid area, or a reset to the full scene view. */
27
32
  export type CameraTarget = {
28
33
  element: string;
29
34
  } | {
@@ -31,15 +36,24 @@ export type CameraTarget = {
31
36
  } | {
32
37
  reset: true;
33
38
  };
39
+ /** Authored camera focus metadata attached to a scene stop. */
34
40
  export interface CameraFocus {
41
+ /** Focus target: an element, a grid area, or a reset to the full scene view. */
35
42
  target: CameraTarget;
43
+ /** Extra viewBox padding in grid cells around the target. */
36
44
  padding?: number;
45
+ /** Camera transition duration in milliseconds. */
37
46
  duration?: number;
47
+ /** Camera transition easing curve. */
38
48
  easing?: CameraEasing;
39
49
  }
50
+ /** Options accepted by controller camera zoom methods (`zoomToElement`, `zoomToArea`). */
40
51
  export interface CameraZoomOptions {
52
+ /** Extra viewBox padding in grid cells around the target. */
41
53
  padding?: number;
54
+ /** Camera transition duration in milliseconds. */
42
55
  duration?: number;
56
+ /** Camera transition easing curve. */
43
57
  easing?: CameraEasing;
44
58
  }
45
59
  export type RuntimeCameraTarget = {
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/types/node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/types/node.ts"],"names":[],"mappings":"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"}