@sebastianwessel/isostate 0.5.0 → 0.6.1
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.
- package/dist/animation/animation-engine.d.ts +2 -0
- package/dist/animation/animation-engine.d.ts.map +1 -1
- package/dist/animation/controller.d.ts +9 -2
- package/dist/animation/controller.d.ts.map +1 -1
- package/dist/assets/software-architecture/IMAGEGEN-PROMPTS.md +66 -0
- package/dist/assets/software-architecture/LICENSE +21 -0
- package/dist/assets/software-architecture/NOTICE.md +17 -0
- package/dist/assets/software-architecture/README.md +105 -0
- package/dist/assets/software-architecture/agentic/AGENT-VISUAL-PROMPTS.md +42 -0
- package/dist/assets/software-architecture/agentic/HANDOFF-PROMPTS.md +19 -0
- package/dist/assets/software-architecture/agentic/PROCESS-VISUAL-PROMPTS.md +109 -0
- package/dist/assets/software-architecture/agentic/agents-sprites.png +0 -0
- package/dist/assets/software-architecture/agentic/ai-capabilities-sprites.png +0 -0
- package/dist/assets/software-architecture/agentic/ai-to-human-handoff.png +0 -0
- package/dist/assets/software-architecture/agentic/channels-sprites.png +0 -0
- package/dist/assets/software-architecture/agentic/human-to-ai-handoff.png +0 -0
- package/dist/assets/software-architecture/agentic/humans-sprites.png +0 -0
- package/dist/assets/software-architecture/agentic/infrastructure-sprites.png +0 -0
- package/dist/assets/software-architecture/agentic/lifecycle-sprites.png +0 -0
- package/dist/assets/software-architecture/agentic/orchestration-sprites.png +0 -0
- package/dist/assets/software-architecture/agentic/providers-sprites.png +0 -0
- package/dist/assets/software-architecture/agentic/servicenow-sprites.png +0 -0
- package/dist/assets/software-architecture/architecture/architecture-sprites.png +0 -0
- package/dist/assets/software-architecture/manifest.json +2095 -0
- package/dist/assets/software-architecture/workflow/workflow-process-sprites.png +0 -0
- package/dist/browser/isostate.runtime.js +4 -4
- package/dist/browser/isostate.runtime.js.map +9 -8
- package/dist/chunks/errors-2yA81Vfb.js +23 -0
- package/dist/chunks/{errors-DyqEkrm5.js.map → errors-2yA81Vfb.js.map} +1 -1
- package/dist/chunks/index-C_7KbR4v.js +1701 -0
- package/dist/chunks/index-C_7KbR4v.js.map +1 -0
- package/dist/chunks/rendering-engine-DLaM1XbU.js +1425 -0
- package/dist/chunks/rendering-engine-DLaM1XbU.js.map +1 -0
- package/dist/chunks/scene-parser-D_0OCHLL.js +3033 -0
- package/dist/chunks/scene-parser-D_0OCHLL.js.map +1 -0
- package/dist/chunks/sha256-BkgWUdh1.js +123 -0
- package/dist/chunks/sha256-BkgWUdh1.js.map +1 -0
- package/dist/dsl/browser.js +3 -3
- package/dist/dsl/index.js +3 -3
- package/dist/dsl/scene-parser.d.ts.map +1 -1
- package/dist/dsl/scene-validator.d.ts.map +1 -1
- package/dist/dsl/workflow-effects-validation.d.ts +8 -0
- package/dist/dsl/workflow-effects-validation.d.ts.map +1 -0
- package/dist/editor-support/adapter.d.ts.map +1 -1
- package/dist/editor-support/index.js +347 -394
- package/dist/editor-support/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +356 -424
- package/dist/index.js.map +1 -1
- package/dist/rendering/animation-css.d.ts.map +1 -1
- package/dist/rendering/rendering-engine.d.ts +2 -0
- package/dist/rendering/rendering-engine.d.ts.map +1 -1
- package/dist/rendering/scene-effects.d.ts +15 -0
- package/dist/rendering/scene-effects.d.ts.map +1 -0
- package/dist/runtime/index.js +4 -4
- package/dist/runtime/interactivity.d.ts.map +1 -1
- package/dist/types/asset-registry.d.ts.map +1 -1
- package/dist/types/errors.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/node.d.ts +40 -1
- package/dist/types/node.d.ts.map +1 -1
- package/package.json +9 -8
- package/dist/chunks/errors-DyqEkrm5.js +0 -29
- package/dist/chunks/index-CB6XEsbY.js +0 -1756
- package/dist/chunks/index-CB6XEsbY.js.map +0 -1
- package/dist/chunks/rendering-engine-nkqYx0qc.js +0 -1303
- package/dist/chunks/rendering-engine-nkqYx0qc.js.map +0 -1
- package/dist/chunks/scene-parser-F69XGE0l.js +0 -2743
- package/dist/chunks/scene-parser-F69XGE0l.js.map +0 -1
- package/dist/chunks/sha256-4JuurR-b.js +0 -69
- package/dist/chunks/sha256-4JuurR-b.js.map +0 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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":"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"}
|
|
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/** Focus treatment for a node at a scene stop; idle clears the treatment. */\nexport interface ElementActivity {\n\tstate: \"idle\" | \"processing\" | \"waiting\" | \"complete\" | \"error\";\n\t/** Optional safe CSS color overriding the state's default accent. */\n\tcolor?: string;\n}\n\n/** Generated message token traveling along a connection's projected path. */\nexport interface ConnectorMessage {\n\t/** Built-in polished token asset. Defaults to packet. */\n\tkind?: \"packet\" | \"orb\" | \"envelope\";\n\t/** Optional safe CSS accent color; defaults to the connector stroke. */\n\tcolor?: string;\n\t/** Token size in SVG units, from 2 to 32. Defaults to 10. */\n\tsize?: number;\n\t/** One journey duration in milliseconds, from 200 to 30000. Defaults to 1800. */\n\tduration?: number;\n\t/** Staggered token count, an integer from 1 to 4. Defaults to 1. */\n\tcount?: number;\n\t/** False removes traveling tokens. Defaults to true. */\n\tenabled?: boolean;\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\tactivity?: ElementActivity;\n}\n\n/** Element patch used by scene update operations. */\nexport interface ElementPatch {\n\tid: string;\n\t/** Replace a placed external image/sprite at the destination scene stop. */\n\tasset?: 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\tactivity?: ElementActivity;\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\" | \"beam\";\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\t/** Projected bend radius in SVG units; defaults to zero. */\n\tcornerRadius?: number;\n\t/** Optional safe CSS color for a soft layered path halo. */\n\tglow?: string;\n\t/** Halo extension in SVG units; defaults to 8 when glow is set. */\n\tglowWidth?: number;\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\tmessage?: ConnectorMessage;\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\t/** Replaces the entire message configuration; enabled:false disables it. */\n\tmessage?: ConnectorMessage;\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\tcornerRadius?: number;\n\tglow?: string;\n\tglowWidth?: number;\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\tmessage?: ConnectorMessage;\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\tactivity?: ElementActivity;\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\tactivity: update.activity,\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\tmessage: update.message,\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":"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"}
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"animation-css.d.ts","sourceRoot":"","sources":["../../src/rendering/animation-css.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,wBAAgB,gBAAgB,IAAI,MAAM,CA2CzC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { CameraGridArea, RuntimeConnectorState, RuntimeElementState } from "../types/node.ts";
|
|
2
2
|
import type { RuntimeBundle } from "../types/runtime-bundle.ts";
|
|
3
|
+
import type { AssetResolver } from "./asset-node.ts";
|
|
3
4
|
interface Bounds {
|
|
4
5
|
minX: number;
|
|
5
6
|
minY: number;
|
|
@@ -65,6 +66,7 @@ export declare function updateElementTransforms(svg: SVGSVGElement & {
|
|
|
65
66
|
_connectorMap?: Map<string, ConnectorState | unknown>;
|
|
66
67
|
_layout?: ResolvedLayoutState;
|
|
67
68
|
_depthGroup?: SVGGElement;
|
|
69
|
+
_assetResolver?: AssetResolver;
|
|
68
70
|
}, elements: RuntimeElementState[], connectors?: RuntimeConnectorState[]): void;
|
|
69
71
|
/** Read the internal ElementState for an element by its id. */
|
|
70
72
|
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":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAqB,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACtH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"rendering-engine.d.ts","sourceRoot":"","sources":["../../src/rendering/rendering-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { RuntimeConnectorState, RuntimeElementState } from "../types/node.ts";
|
|
2
|
+
type Point = {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
};
|
|
6
|
+
/** Build rounded projected geometry shared by tracks and message motion. */
|
|
7
|
+
export declare function roundedPath(points: Point[], radius: number): string;
|
|
8
|
+
/** Reconcile cheap layered beam lighting without allocating SVG filters. */
|
|
9
|
+
export declare function updateTrackEffects(node: SVGGElement, shaft: SVGPathElement, def: RuntimeConnectorState, d: string): void;
|
|
10
|
+
/** Update motion paths in place so rerouting does not restart packet progress. */
|
|
11
|
+
export declare function updateMessages(node: SVGGElement, def: RuntimeConnectorState, d: string, recreate: boolean): void;
|
|
12
|
+
/** Keep activity geometry independent of asset artwork and ambient transforms. */
|
|
13
|
+
export declare function updateActivity(node: SVGGElement, activity: RuntimeElementState["activity"], cellSize: number): void;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=scene-effects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene-effects.d.ts","sourceRoot":"","sources":["../../src/rendering/scene-effects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGnF,KAAK,KAAK,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC,4EAA4E;AAC5E,wBAAgB,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAyBnE;AAWD,4EAA4E;AAC5E,wBAAgB,kBAAkB,CACjC,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,cAAc,EACrB,GAAG,EAAE,qBAAqB,EAC1B,CAAC,EAAE,MAAM,GACP,IAAI,CA6BN;AA2BD,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,qBAAqB,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,CAqBhH;AAED,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,mBAAmB,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAkDnH"}
|
package/dist/runtime/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { m as mountScene } from '../chunks/index-
|
|
2
|
-
import '../chunks/errors-
|
|
3
|
-
import '../chunks/rendering-engine-
|
|
4
|
-
import '../chunks/sha256-
|
|
1
|
+
export { m as mountScene } from '../chunks/index-C_7KbR4v.js';
|
|
2
|
+
import '../chunks/errors-2yA81Vfb.js';
|
|
3
|
+
import '../chunks/rendering-engine-DLaM1XbU.js';
|
|
4
|
+
import '../chunks/sha256-BkgWUdh1.js';
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +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;
|
|
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;IAErG,YAAY,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EASnD;IAED,0EAA0E;IAC1E,EAAE,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAU5E;IAED,+FAA+F;IAC/F,OAAO,IAAI,IAAI,CAUd;IAED,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 +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;
|
|
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,CAErC;IAED,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAE3C;IAED,MAAM,CAAC,QAAQ,CAAC,EAAE,aAAa,GAAG,eAAe,EAAE,CAKlD;IAED,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEvB;IAED,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAEvB;CACD;AAED,oEAAoE;AACpE,wBAAgB,mBAAmB,CAAC,MAAM,GAAE,eAAe,EAAO,GAAG,iBAAiB,CAMrF;AAED,uEAAuE;AACvE,wBAAgB,qBAAqB,IAAI,iBAAiB,CAuBzD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/types/errors.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,cAAM,aAAc,SAAQ,KAAK;aAEf,IAAI,EAAE,MAAM;aAEZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/types/errors.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,cAAM,aAAc,SAAQ,KAAK;aAEf,IAAI,EAAE,MAAM;aAEZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAHlD,YACiB,IAAI,EAAE,MAAM,EAC5B,OAAO,EAAE,MAAM,EACC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA,EAIjD;CACD;AAED,wBAAwB;AACxB,qBAAa,UAAW,SAAQ,aAAa;CAAG;AAEhD,2BAA2B;AAC3B,qBAAa,oBAAqB,SAAQ,aAAa;CAAG;AAE1D,6BAA6B;AAC7B,qBAAa,WAAY,SAAQ,aAAa;CAAG;AAEjD,6BAA6B;AAC7B,qBAAa,cAAe,SAAQ,aAAa;CAAG;AAEpD,iCAAiC;AACjC,qBAAa,eAAgB,SAAQ,aAAa;CAAG"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export type { AssetCategory, AssetDefinition, AssetRegistry, SpriteDefinition as AssetSpriteDefinition, SpriteSheetAssetDefinition, Theme, UrlAssetDefinition, } from "./assets.ts";
|
|
2
2
|
export { AnimationError, ControllerError, ParseError, RenderError, ValidationErrorClass, } from "./errors.ts";
|
|
3
|
-
export type { AmbientAnimation, CameraEasing, CameraFocus, CameraGridArea, CameraTarget, CameraZoomOptions, CirclePrimitive, ConnectionPatch, ConnectionPlacement, ConnectionRemoval, ConnectorDirection, ConnectorEndpoint, ConnectorEndpointRef, ConnectorPattern, ConnectorRouting, ConnectorStyle, ConnectorVariant, ElementPatch, ElementPlacement, ElementRemoval, EntryAnimation, ExitAnimation, LifecycleStatus, LinePrimitive, PolygonPrimitive, PrimitiveAssetId, PrimitiveContent, PrimitiveContentPatch, PrimitiveStyle, RectanglePrimitive, RuntimeCameraFocus, RuntimeCameraTarget, RuntimeConnectorState, RuntimeConnectorStyle, RuntimeElementState, TextAlign, TextContent, TextContentPatch, TextPlacement, } from "./node.ts";
|
|
3
|
+
export type { AmbientAnimation, CameraEasing, CameraFocus, CameraGridArea, CameraTarget, CameraZoomOptions, CirclePrimitive, ConnectionPatch, ConnectionPlacement, ConnectionRemoval, ConnectorDirection, ConnectorEndpoint, ConnectorEndpointRef, ConnectorMessage, ConnectorPattern, ConnectorRouting, ConnectorStyle, ConnectorVariant, ElementActivity, ElementPatch, ElementPlacement, ElementRemoval, EntryAnimation, ExitAnimation, LifecycleStatus, LinePrimitive, PolygonPrimitive, PrimitiveAssetId, PrimitiveContent, PrimitiveContentPatch, PrimitiveStyle, RectanglePrimitive, RuntimeCameraFocus, RuntimeCameraTarget, RuntimeConnectorState, RuntimeConnectorStyle, RuntimeElementState, TextAlign, TextContent, TextContentPatch, TextPlacement, } from "./node.ts";
|
|
4
4
|
export { guardEntryAnimation, guardExitAnimation, guardLifecycleStatus, } from "./node.ts";
|
|
5
5
|
export type { CompiledAsset, CompiledFloor, CompiledLayer, CompiledLayout, CompiledSprite, RuntimeBundle, } from "./runtime-bundle.ts";
|
|
6
6
|
export type { AssetCatalogEntry, FloorConfig, GridConfig, LayerDefinition, LayoutBounds, LayoutFit, ResolvedLayoutConfig, RuntimeSceneStop, SceneAddDelta, SceneDocument, SceneHeader, SceneRemoveDelta, SceneStep, SceneUpdateDelta, SpriteDefinition as SceneSpriteDefinition, SpriteSheetAssetCatalogEntry, UrlAssetCatalogEntry, } from "./scene.ts";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACX,aAAa,EACb,eAAe,EACf,aAAa,EACb,gBAAgB,IAAI,qBAAqB,EACzC,0BAA0B,EAC1B,KAAK,EACL,kBAAkB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,cAAc,EACd,eAAe,EACf,UAAU,EACV,WAAW,EACX,oBAAoB,GACpB,MAAM,aAAa,CAAC;AACrB,YAAY,EACX,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,aAAa,EACb,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,aAAa,GACb,MAAM,WAAW,CAAC;AACnB,OAAO,EACN,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,GACpB,MAAM,WAAW,CAAC;AACnB,YAAY,EACX,aAAa,EACb,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,aAAa,GACb,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACX,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,eAAe,EACf,YAAY,EACZ,SAAS,EACT,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,gBAAgB,EAChB,gBAAgB,IAAI,qBAAqB,EACzC,4BAA4B,EAC5B,oBAAoB,GACpB,MAAM,YAAY,CAAC;AACpB,YAAY,EACX,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GACjB,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACX,aAAa,EACb,eAAe,EACf,aAAa,EACb,gBAAgB,IAAI,qBAAqB,EACzC,0BAA0B,EAC1B,KAAK,EACL,kBAAkB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,cAAc,EACd,eAAe,EACf,UAAU,EACV,WAAW,EACX,oBAAoB,GACpB,MAAM,aAAa,CAAC;AACrB,YAAY,EACX,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,aAAa,EACb,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,aAAa,GACb,MAAM,WAAW,CAAC;AACnB,OAAO,EACN,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,GACpB,MAAM,WAAW,CAAC;AACnB,YAAY,EACX,aAAa,EACb,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,aAAa,GACb,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACX,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,eAAe,EACf,YAAY,EACZ,SAAS,EACT,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,gBAAgB,EAChB,gBAAgB,IAAI,qBAAqB,EACzC,4BAA4B,EAC5B,oBAAoB,GACpB,MAAM,YAAY,CAAC;AACpB,YAAY,EACX,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GACjB,MAAM,iBAAiB,CAAC"}
|
package/dist/types/node.d.ts
CHANGED
|
@@ -19,6 +19,27 @@ export interface AmbientAnimation {
|
|
|
19
19
|
/** Number of times to play (only relevant when infinite: false) */
|
|
20
20
|
iterations?: number;
|
|
21
21
|
}
|
|
22
|
+
/** Focus treatment for a node at a scene stop; idle clears the treatment. */
|
|
23
|
+
export interface ElementActivity {
|
|
24
|
+
state: "idle" | "processing" | "waiting" | "complete" | "error";
|
|
25
|
+
/** Optional safe CSS color overriding the state's default accent. */
|
|
26
|
+
color?: string;
|
|
27
|
+
}
|
|
28
|
+
/** Generated message token traveling along a connection's projected path. */
|
|
29
|
+
export interface ConnectorMessage {
|
|
30
|
+
/** Built-in polished token asset. Defaults to packet. */
|
|
31
|
+
kind?: "packet" | "orb" | "envelope";
|
|
32
|
+
/** Optional safe CSS accent color; defaults to the connector stroke. */
|
|
33
|
+
color?: string;
|
|
34
|
+
/** Token size in SVG units, from 2 to 32. Defaults to 10. */
|
|
35
|
+
size?: number;
|
|
36
|
+
/** One journey duration in milliseconds, from 200 to 30000. Defaults to 1800. */
|
|
37
|
+
duration?: number;
|
|
38
|
+
/** Staggered token count, an integer from 1 to 4. Defaults to 1. */
|
|
39
|
+
count?: number;
|
|
40
|
+
/** False removes traveling tokens. Defaults to true. */
|
|
41
|
+
enabled?: boolean;
|
|
42
|
+
}
|
|
22
43
|
/** Camera transition easing curve. */
|
|
23
44
|
export type CameraEasing = "linear" | "ease-in-out" | "ease-out";
|
|
24
45
|
/** Grid-space rectangle used as a camera zoom target. */
|
|
@@ -158,10 +179,13 @@ export interface ElementPlacement {
|
|
|
158
179
|
ambient?: AmbientAnimation[];
|
|
159
180
|
text?: TextContent;
|
|
160
181
|
primitive?: PrimitiveContent;
|
|
182
|
+
activity?: ElementActivity;
|
|
161
183
|
}
|
|
162
184
|
/** Element patch used by scene update operations. */
|
|
163
185
|
export interface ElementPatch {
|
|
164
186
|
id: string;
|
|
187
|
+
/** Replace a placed external image/sprite at the destination scene stop. */
|
|
188
|
+
asset?: string;
|
|
165
189
|
at?: [number, number];
|
|
166
190
|
size?: number;
|
|
167
191
|
layer?: string;
|
|
@@ -170,6 +194,7 @@ export interface ElementPatch {
|
|
|
170
194
|
ambient?: AmbientAnimation[];
|
|
171
195
|
text?: TextContentPatch;
|
|
172
196
|
primitive?: PrimitiveContentPatch;
|
|
197
|
+
activity?: ElementActivity;
|
|
173
198
|
}
|
|
174
199
|
/** Element removal used by scene remove operations. */
|
|
175
200
|
export interface ElementRemoval {
|
|
@@ -179,7 +204,7 @@ export interface ElementRemoval {
|
|
|
179
204
|
/** Visual connector line pattern for authored connections and runtime connectors. */
|
|
180
205
|
export type ConnectorPattern = "solid" | "dashed" | "dotted";
|
|
181
206
|
/** Visual connector geometry variant. */
|
|
182
|
-
export type ConnectorVariant = "line" | "road";
|
|
207
|
+
export type ConnectorVariant = "line" | "road" | "beam";
|
|
183
208
|
/** Generated endpoint indicator placed at the start or end of a connector. */
|
|
184
209
|
export type ConnectorEndpoint = "none" | "arrow" | "dot" | "circle" | "diamond" | "bar";
|
|
185
210
|
/** Direction used for connector endpoint orientation and flow animation. */
|
|
@@ -204,6 +229,12 @@ export interface ConnectorStyle {
|
|
|
204
229
|
outlineWidth?: number;
|
|
205
230
|
/** Optional road lane treatment. */
|
|
206
231
|
lane?: "none" | "center-dashed";
|
|
232
|
+
/** Projected bend radius in SVG units; defaults to zero. */
|
|
233
|
+
cornerRadius?: number;
|
|
234
|
+
/** Optional safe CSS color for a soft layered path halo. */
|
|
235
|
+
glow?: string;
|
|
236
|
+
/** Halo extension in SVG units; defaults to 8 when glow is set. */
|
|
237
|
+
glowWidth?: number;
|
|
207
238
|
}
|
|
208
239
|
/** Authored endpoint reference for compiler-routed visual connections. */
|
|
209
240
|
export interface ConnectorEndpointRef {
|
|
@@ -246,6 +277,7 @@ export interface ConnectionPlacement {
|
|
|
246
277
|
enter?: EntryAnimation;
|
|
247
278
|
exit?: ExitAnimation;
|
|
248
279
|
ambient?: AmbientAnimation[];
|
|
280
|
+
message?: ConnectorMessage;
|
|
249
281
|
}
|
|
250
282
|
/** Connection patch used by scene update operations. */
|
|
251
283
|
export interface ConnectionPatch {
|
|
@@ -262,6 +294,8 @@ export interface ConnectionPatch {
|
|
|
262
294
|
enter?: EntryAnimation;
|
|
263
295
|
exit?: ExitAnimation;
|
|
264
296
|
ambient?: AmbientAnimation[];
|
|
297
|
+
/** Replaces the entire message configuration; enabled:false disables it. */
|
|
298
|
+
message?: ConnectorMessage;
|
|
265
299
|
}
|
|
266
300
|
/** Connection removal used by scene remove operations. */
|
|
267
301
|
export interface ConnectionRemoval {
|
|
@@ -279,6 +313,9 @@ export interface RuntimeConnectorStyle {
|
|
|
279
313
|
outline?: string;
|
|
280
314
|
outlineWidth: number;
|
|
281
315
|
lane: "none" | "center-dashed";
|
|
316
|
+
cornerRadius?: number;
|
|
317
|
+
glow?: string;
|
|
318
|
+
glowWidth?: number;
|
|
282
319
|
}
|
|
283
320
|
/** Runtime-resolved connector state in a compiled scene stop. */
|
|
284
321
|
export interface RuntimeConnectorState {
|
|
@@ -293,6 +330,7 @@ export interface RuntimeConnectorState {
|
|
|
293
330
|
enter?: EntryAnimation;
|
|
294
331
|
exit?: ExitAnimation;
|
|
295
332
|
ambient?: AmbientAnimation[];
|
|
333
|
+
message?: ConnectorMessage;
|
|
296
334
|
}
|
|
297
335
|
/** Runtime-resolved element state in a compiled scene stop. */
|
|
298
336
|
export interface RuntimeElementState {
|
|
@@ -307,6 +345,7 @@ export interface RuntimeElementState {
|
|
|
307
345
|
ambient?: AmbientAnimation[];
|
|
308
346
|
text?: TextContent;
|
|
309
347
|
primitive?: PrimitiveContent;
|
|
348
|
+
activity?: ElementActivity;
|
|
310
349
|
}
|
|
311
350
|
/** Narrow a raw string to EntryAnimation. Returns undefined if invalid. */
|
|
312
351
|
export declare function guardEntryAnimation(v: unknown): EntryAnimation | undefined;
|
package/dist/types/node.d.ts.map
CHANGED
|
@@ -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":"AAAA,4BAA4B;AAC5B,MAAM,MAAM,cAAc,GACvB,SAAS,GACT,cAAc,GACd,SAAS,GACT,kBAAkB,GAClB,eAAe,GACf,gBAAgB,GAChB,SAAS,GACT,MAAM,CAAC;AAEV,2BAA2B;AAC3B,MAAM,MAAM,aAAa,GACtB,UAAU,GACV,iBAAiB,GACjB,qBAAqB,GACrB,WAAW,GACX,gBAAgB,GAChB,iBAAiB,GACjB,UAAU,GACV,MAAM,CAAC;AAEV,uEAAuE;AACvE,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAE7E,mDAAmD;AACnD,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,cAAc,CASvD,CAAC;AAEH,kDAAkD;AAClD,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,aAAa,CASrD,CAAC;AAEH,oDAAoD;AACpD,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,eAAe,CAA0D,CAAC;AAEvH,sCAAsC;AACtC,MAAM,WAAW,gBAAgB;IAChC,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,6EAA6E;AAC7E,MAAM,WAAW,eAAe;IAC/B,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;IAChE,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,6EAA6E;AAC7E,MAAM,WAAW,gBAAgB;IAChC,yDAAyD;IACzD,IAAI,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,UAAU,CAAC;IACrC,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,sCAAsC;AACtC,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,aAAa,GAAG,UAAU,CAAC;AAEjE,yDAAyD;AACzD,MAAM,WAAW,cAAc;IAC9B,sCAAsC;IACtC,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrB,qCAAqC;IACrC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvB;AAED,qGAAqG;AACrG,MAAM,MAAM,YAAY,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,CAAC;AAE5F,+DAA+D;AAC/D,MAAM,WAAW,WAAW;IAC3B,gFAAgF;IAChF,MAAM,EAAE,YAAY,CAAC;IACrB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,MAAM,CAAC,EAAE,YAAY,CAAC;CACtB;AAED,0FAA0F;AAC1F,MAAM,WAAW,iBAAiB;IACjC,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,MAAM,CAAC,EAAE,YAAY,CAAC;CACtB;AAED,MAAM,MAAM,mBAAmB,GAC5B;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAC9D;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAErB,MAAM,WAAW,kBAAkB;IAClC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,YAAY,CAAC;CACtB;AAED,wDAAwD;AACxD,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEnD,+DAA+D;AAC/D,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,CAAC;AAE/C,gFAAgF;AAChF,MAAM,WAAW,WAAW;IAC3B,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,kHAAkH;IAClH,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IACxC,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,uDAAuD;AACvD,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAEpD,uFAAuF;AACvF,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAE3E,mEAAmE;AACnE,MAAM,WAAW,cAAc;IAC9B,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxB;AAED,+DAA+D;AAC/D,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACzD,2EAA2E;IAC3E,EAAE,CAAC,EAAE,MAAM,CAAC;CACZ;AAED,0CAA0C;AAC1C,MAAM,WAAW,eAAgB,SAAQ,cAAc;CAAG;AAE1D,mFAAmF;AACnF,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACvD,2EAA2E;IAC3E,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;CAC3B;AAED,yFAAyF;AACzF,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC;IAClE,wEAAwE;IACxE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAC3B,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IACtC,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;CACvC;AAED,4DAA4D;AAC5D,MAAM,WAAW,gBAAgB;IAChC,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,IAAI,CAAC,EAAE,aAAa,CAAC;CACrB;AAED,4DAA4D;AAC5D,MAAM,WAAW,qBAAqB;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACxC,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACpC,IAAI,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CAC9B;AAED,+EAA+E;AAC/E,MAAM,WAAW,gBAAgB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC7B,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC3B;AAED,qDAAqD;AACrD,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC7B,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC3B;AAED,uDAAuD;AACvD,MAAM,WAAW,cAAc;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,aAAa,CAAC;CACrB;AAED,qFAAqF;AACrF,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE7D,yCAAyC;AACzC,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAExD,8EAA8E;AAC9E,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAC;AAExF,4EAA4E;AAC5E,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,CAAC;AAErD,kEAAkE;AAClE,MAAM,WAAW,cAAc;IAC9B,4CAA4C;IAC5C,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,2CAA2C;IAC3C,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxB,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC;IAChC,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,0EAA0E;AAC1E,MAAM,WAAW,oBAAoB;IACpC,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtB,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACvE,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,uEAAuE;AACvE,MAAM,WAAW,gBAAgB;IAChC,8EAA8E;IAC9E,IAAI,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,QAAQ,CAAC;IAC5C,2DAA2D;IAC3D,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;IACtC,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,MAAM,CAAC,EAAE,QAAQ,GAAG,cAAc,GAAG,UAAU,CAAC;CAChD;AAED,qFAAqF;AACrF,MAAM,WAAW,mBAAmB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAC3B,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAC5B,EAAE,CAAC,EAAE,oBAAoB,CAAC;IAC1B,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,GAAG,CAAC,EAAE,iBAAiB,CAAC;IACxB,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED,wDAAwD;AACxD,MAAM,WAAW,eAAe;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAC3B,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAC5B,EAAE,CAAC,EAAE,oBAAoB,CAAC;IAC1B,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,GAAG,CAAC,EAAE,iBAAiB,CAAC;IACxB,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC7B,4EAA4E;IAC5E,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED,0DAA0D;AAC1D,MAAM,WAAW,iBAAiB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,aAAa,CAAC;CACrB;AAED,4EAA4E;AAC5E,MAAM,WAAW,qBAAqB;IACrC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,eAAe,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,iEAAiE;AACjE,MAAM,WAAW,qBAAqB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,EAAE,qBAAqB,CAAC;IAC7B,KAAK,EAAE,iBAAiB,CAAC;IACzB,GAAG,EAAE,iBAAiB,CAAC;IACvB,SAAS,EAAE,kBAAkB,CAAC;IAC9B,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED,+DAA+D;AAC/D,MAAM,WAAW,mBAAmB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC7B,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC3B;AAID,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,OAAO,GAAG,cAAc,GAAG,SAAS,CAG1E;AAED,0EAA0E;AAC1E,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,OAAO,GAAG,aAAa,GAAG,SAAS,CAGxE;AAED,4EAA4E;AAC5E,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,OAAO,GAAG,eAAe,GAAG,SAAS,CAG5E"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sebastianwessel/isostate",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.1",
|
|
4
4
|
"description": "Isometric scene engine — SVG rendering, animation, and YAML DSL for browser-based isometric scenes.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"isostate",
|
|
@@ -33,7 +33,8 @@
|
|
|
33
33
|
"./editor-support": {
|
|
34
34
|
"types": "./dist/editor-support/index.d.ts",
|
|
35
35
|
"import": "./dist/editor-support/index.js"
|
|
36
|
-
}
|
|
36
|
+
},
|
|
37
|
+
"./assets/software-architecture/*": "./dist/assets/software-architecture/*"
|
|
37
38
|
},
|
|
38
39
|
"files": [
|
|
39
40
|
"dist"
|
|
@@ -52,14 +53,14 @@
|
|
|
52
53
|
"prepublishOnly": "cd ../.. && bun run build && bun run lint"
|
|
53
54
|
},
|
|
54
55
|
"devDependencies": {
|
|
55
|
-
"typescript": "^
|
|
56
|
-
"@biomejs/biome": "^2.
|
|
57
|
-
"yaml": "^2.9.
|
|
58
|
-
"publint": "^0.3.
|
|
59
|
-
"size-limit": "^
|
|
56
|
+
"typescript": "^7.0.2",
|
|
57
|
+
"@biomejs/biome": "^2.5.15",
|
|
58
|
+
"yaml": "^2.9.1",
|
|
59
|
+
"publint": "^0.3.25",
|
|
60
|
+
"size-limit": "^14.2.0"
|
|
60
61
|
},
|
|
61
62
|
"peerDependencies": {
|
|
62
|
-
"yaml": "^2.9.
|
|
63
|
+
"yaml": "^2.9.1"
|
|
63
64
|
},
|
|
64
65
|
"peerDependenciesMeta": {
|
|
65
66
|
"yaml": {
|