# livepanels v0.1.0 - Table of Contents Headless spatial compositor runtime for Phoenix LiveView. Manages item placement, drag/resize/zoom, focus, tiling, layout persistence, and multi-client shared mode without prescribing any UI. ## Guides - Start Here - [livepanels](readme.md) - [What LivePanels Is](01-what-livepanels-is.md) - [Create Your First Canvas](02-create-your-first-canvas.md) - [Find The API You Need](03-find-the-api-you-need.md) - Canvas Basics - [Add Items](04-add-items.md) - [Render Item Content With LiveViews](05-render-item-content-with-liveviews.md) - [Move, Resize, Select, And Focus Items](06-move-resize-select-and-focus-items.md) - [Use Commands And Policy](07-use-commands-and-policy.md) - [Save Layouts, History, And Clipboard](08-save-layouts-history-and-clipboard.md) - Capabilities - [Add Graph Connections](09-add-graph-connections.md) - [Add Drawing Tools](10-add-drawing-tools.md) - [Use Shared Canvases](11-use-shared-canvases.md) - Build Graph Apps - [Graph Apps With LivePanels](01-graph-apps-with-livepanels.md) - [Model Nodes, Ports, And Connectors](02-model-nodes-ports-and-connectors.md) - [Render Nodes And Ports](03-render-nodes-and-ports.md) - [Render Connector Items](04-render-connector-items.md) - [Connect, Reconnect, And Disconnect](05-connect-reconnect-and-disconnect.md) - [Select, Edit, Route, Label, And Hit-Test Connectors](06-select-edit-route-label-and-hit-test-connectors.md) - [Layout, Fit, And Navigate Graphs](07-layout-fit-and-navigate-graphs.md) - [Persist And Share Graph Canvases](08-persist-and-share-graph-canvases.md) - [Graph App Recipes](09-graph-app-recipes.md) - Build Drawing Apps - [Drawing Apps With LivePanels](01-drawing-apps-with-livepanels.md) - [Tools, Cursor Modes, And Drafts](02-tools-cursor-modes-and-drafts.md) - [Commit Vector Items To Canvas State](03-commit-vector-items-to-canvas-state.md) - [Render And Style Vector Items](04-render-and-style-vector-items.md) - [Edit Points, Labels, Text, And Arrowheads](05-edit-points-labels-text-and-arrowheads.md) - [Erase, Select, Move, And Resize](06-erase-select-move-and-resize.md) - [Content Items And Drawing](07-images-frames-embeds-and-drawing-elements.md) - [Persist, Share, Import, And Export](08-persist-share-import-and-export.md) - [Drawing App Recipes](09-drawing-app-recipes.md) - Customization And Operations - [Customize The UI](12-customize-the-ui.md) - [Manual Integration](13-manual-integration.md) - [Operate Shared Canvases](14-operate-shared-canvases.md) - [Production Checklist](15-production-checklist.md) ## Modules - [LivePanels.Canvas.ApplicationNotifications](LivePanels.Canvas.ApplicationNotifications.md): Application `handle_info/2` notifications emitted by the canvas runtime. - [LivePanels.Canvas.Command](LivePanels.Canvas.Command.md): Internal command dispatch and input normalization used by app-facing canvas command modules. - [LivePanels.Item.Content.Adapter](LivePanels.Item.Content.Adapter.md): Adapts content-bearing LivePanels items to renderable HEEx. - Author - [LivePanels](LivePanels.md): A server-authoritative spatial compositor for Phoenix LiveView. - [LivePanels.Application](LivePanels.Application.md): Supervisor entrypoint for LivePanels shared-canvas infrastructure. - [LivePanels.Canvas](LivePanels.Canvas.md): LiveView application entrypoint for the LivePanels canvas domain. - [LivePanels.Canvas.Arrange](LivePanels.Canvas.Arrange.md): Socket-first multi-item arrangement and stacking commands. - [LivePanels.Canvas.Clipboard](LivePanels.Canvas.Clipboard.md): Actor-scoped clipboard projection returned by `LivePanels.Canvas.Read.clipboard/1`. - [LivePanels.Canvas.Command.Meta](LivePanels.Canvas.Command.Meta.md): Metadata returned by canvas command helpers. - [LivePanels.Canvas.History](LivePanels.Canvas.History.md): Actor-scoped undo/redo history projection returned by `LivePanels.Canvas.Read.history/1`. - [LivePanels.Canvas.Item](LivePanels.Canvas.Item.md): Socket-first item lifecycle, frame, visibility, props, and relationship commands. - [LivePanels.Canvas.Layout](LivePanels.Canvas.Layout.md): Headless canvas layout planning contracts. - [LivePanels.Canvas.Read](LivePanels.Canvas.Read.md): Read-side accessors for application code that needs the current canvas projection. - [LivePanels.Canvas.Region](LivePanels.Canvas.Region.md): Headless named region helpers for shared canvas partitioning. - [LivePanels.Canvas.Render](LivePanels.Canvas.Render.md): Render-side helpers for ordinary `canvas_runtime/1` applications. - [LivePanels.Canvas.Selection](LivePanels.Canvas.Selection.md): Actor-scoped canvas item selection. - [LivePanels.Canvas.Transaction](LivePanels.Canvas.Transaction.md): Command composition context for one socket-bound canvas mutation. - [LivePanels.Canvas.Viewport](LivePanels.Canvas.Viewport.md): Viewport command helpers. - [LivePanels.Drawing](LivePanels.Drawing.md): Drawing subsystem for persistent vector items. - [LivePanels.Drawing.Point](LivePanels.Drawing.Point.md): Point topology commands for committed point-backed drawing items. - [LivePanels.Graph](LivePanels.Graph.md): Canvas-domain graph API for connector items and ports. - [LivePanels.Graph.Query](LivePanels.Graph.Query.md): Headless graph query helpers for connectors, selections, and navigation. - [LivePanels.Item.Content.LiveView](LivePanels.Item.Content.LiveView.md): LiveView entrypoint for content rendered inside a LivePanels canvas item. - [LivePanels.Item.Content.LiveView.Commands](LivePanels.Item.Content.LiveView.Commands.md): Socket-first helpers for LivePanels item content. - [LivePanels.Toolkit](LivePanels.Toolkit.md): Application-facing helpers for rendering and controlling LivePanels canvases. - [LivePanels.Toolkit.Canvas](LivePanels.Toolkit.Canvas.md): Canvas-domain runtime, DOM attr, and JS helpers for Phoenix LiveViews. - [LivePanels.Toolkit.Drawing](LivePanels.Toolkit.Drawing.md): Drawing-extension DOM attr and JS helpers for Phoenix LiveViews. - [LivePanels.Toolkit.Graph](LivePanels.Toolkit.Graph.md): Graph-extension DOM attr helpers and imports for Phoenix LiveViews. - Integration - [LivePanels.Canvas.Extension](LivePanels.Canvas.Extension.md): Extension descriptor for registering canvas domains. - [LivePanels.Canvas.Layout.Bounds](LivePanels.Canvas.Layout.Bounds.md): Integer viewport bounds used by layout strategy planning contexts. - [LivePanels.Canvas.Layout.Context](LivePanels.Canvas.Layout.Context.md): Headless planning context passed to canvas layout strategies. - [LivePanels.Canvas.Layout.Options](LivePanels.Canvas.Layout.Options.md): Normalized option helpers for canvas layout strategies. - [LivePanels.Canvas.Layout.Strategy](LivePanels.Canvas.Layout.Strategy.md): Behaviour for headless canvas layout strategies. - [LivePanels.Canvas.LayoutStore](LivePanels.Canvas.LayoutStore.md): Behaviour for server-side canvas layout persistence. - [LivePanels.Canvas.LayoutStore.Ecto](LivePanels.Canvas.LayoutStore.Ecto.md): Ecto-backed `LivePanels.Canvas.LayoutStore` adapter. - [LivePanels.Canvas.LayoutStore.Registry](LivePanels.Canvas.LayoutStore.Registry.md): ETS-backed registry mapping canvas_id -> canvas metadata. - [LivePanels.Canvas.Policy](LivePanels.Canvas.Policy.md): Application policy contract for canvas commands. - [LivePanels.Canvas.Policy.Request](LivePanels.Canvas.Policy.Request.md): Authorization request passed to a configured `LivePanels.Canvas.Policy`. - [LivePanels.Canvas.Shared](LivePanels.Canvas.Shared.md): Public shared-mode configuration facade. - [LivePanels.Canvas.Shared.Adapter](LivePanels.Canvas.Shared.Adapter.md): Behaviour for custom shared-mode backend adapters. - [LivePanels.Canvas.Shared.Backend](LivePanels.Canvas.Shared.Backend.md): Shared-mode backend record. - [LivePanels.Canvas.Shared.Horde](LivePanels.Canvas.Shared.Horde.md): Horde-backed shared-mode backend. - [LivePanels.Canvas.Shared.Local](LivePanels.Canvas.Shared.Local.md): Local shared-mode backend. - [LivePanels.Canvas.Shared.Presence](LivePanels.Canvas.Shared.Presence.md): Headless accessors for shared participant pointer presence. - [LivePanels.Canvas.Shared.Session](LivePanels.Canvas.Shared.Session.md): Application-provided shared-mode participant session metadata. - [LivePanels.Context](LivePanels.Context.md): Runtime identity contract shared by canvas LiveViews and item content LiveViews. - [LivePanels.Item.Content.Descriptor](LivePanels.Item.Content.Descriptor.md): Shared content adapter descriptor normalization. - [LivePanels.Telemetry](LivePanels.Telemetry.md): Telemetry event helpers for LivePanels runtime observability. - [LivePanels.Toolkit.Integration.ProtocolAttrs](LivePanels.Toolkit.Integration.ProtocolAttrs.md): Command-envelope attrs for integration code. - [LivePanels.Toolkit.Integration.Render](LivePanels.Toolkit.Integration.Render.md): Canvas render-loop helpers for integration code. - Primitive - [LivePanels.Canvas.DragDrop](LivePanels.Canvas.DragDrop.md): Normalization for LivePanels cross-space drag/drop declarations and payloads. - [LivePanels.Canvas.Geometry](LivePanels.Canvas.Geometry.md): Canvas-domain spatial geometry utilities for LivePanels. - [LivePanels.Canvas.Placement](LivePanels.Canvas.Placement.md): Public placement frame companion for the canvas API. - [LivePanels.Canvas.State](LivePanels.Canvas.State.md): Canonical server-owned state for the abstract canvas model. - [LivePanels.Graph.Bounds](LivePanels.Graph.Bounds.md): Headless graph bounds helpers for viewport fitting and application controls. - [LivePanels.Graph.Layout](LivePanels.Graph.Layout.md): Headless graph layout assist contracts. - [LivePanels.Item](LivePanels.Item.md): Item tracked by the LivePanels runtime. - [LivePanels.Item.Capabilities](LivePanels.Item.Capabilities.md): Capability buckets and capability-owned item behavior. - [LivePanels.Item.Capabilities.TilingContainer](LivePanels.Item.Capabilities.TilingContainer.md): Headless helpers for the `:tiling_container` item capability. - [LivePanels.Item.Connector](LivePanels.Item.Connector.md): Connector capability helpers. - [LivePanels.Item.Connector.Paths](LivePanels.Item.Connector.Paths.md): Geometry helpers for projecting connector items into SVG paths. - [LivePanels.Item.Factory](LivePanels.Item.Factory.md): Builds normalized LivePanels item structs. - [LivePanels.Item.RenderContext](LivePanels.Item.RenderContext.md): Render-time context yielded by `canvas_runtime/1` item declarations and id-less `:item` renderers. - [LivePanels.Item.SVG.HitTargets](LivePanels.Item.SVG.HitTargets.md): Public invisible SVG hit-target geometry shared by graph connectors and vector items. - [LivePanels.Item.SVG.Markers](LivePanels.Item.SVG.Markers.md): Public SVG marker helpers for graph connectors and line vector items. - [LivePanels.Item.SVG.RoutedPath](LivePanels.Item.SVG.RoutedPath.md): Shared headless route geometry. - [LivePanels.Item.View](LivePanels.Item.View.md): Application-facing read model for a rendered canvas item. - [LivePanels.Participant](LivePanels.Participant.md): Runtime actor context for shared canvases. ## Mix Tasks - Mix Tasks - [mix livepanels.boundaries](Mix.Tasks.Livepanels.Boundaries.md): Checks project-owned architecture contracts that the Boundary compiler cannot infer. - [mix livepanels.check](Mix.Tasks.Livepanels.Check.md): Validates LivePanels canvas `on_mount` declarations in the current Mix app. - [mix livepanels.install](Mix.Tasks.Livepanels.Install.md): Configures a Phoenix app to import the prebuilt LivePanels browser package from the Mix dependency. - [mix livepanels.new](Mix.Tasks.Livepanels.New.md): Generates a one-file LivePanels canvas route in a Phoenix application. - [mix livepanels.protocol_fields](Mix.Tasks.Livepanels.ProtocolFields.md): Regenerates browser protocol payload field constants.