How w3ndo/jigsaw works
Jigsaw is a proof-of-concept Phoenix LiveView tiling library. Its principal workflow is for an application to create and manipulate a BSP layout, then pass that layout and matching pane slots to the LiveView component for rendering. The layout engine also supports querying and validation. The repository includes a demo dashboard, but its implementation was not sampled; its connection to the library is therefore shown as unverified. Relationships in the core workflow are supported by the README and excerpts.
Main entry points: layout.ex Layout API · components.ex Layout component · bsp BSP tree types · home.ex Demo dashboard
Components 7
Layout engine
- Layout API
apps/jigsaw/lib/bsp/layout.ex - BSP tree types
apps/jigsaw/lib/bsp - ID generator
apps/jigsaw/lib/types/id.ex - Validation errors
apps/jigsaw/lib/types/validation_error.ex
LiveView rendering
- Layout component
apps/jigsaw/lib/jigsaw_components/components.ex
Example dashboard
- Demo dashboard
apps/demo/lib/demo/live/home/home.ex
Other components
- Application developer
Connections 7
- Application developer → Layout API: manipulates layout
README.md - Layout API → BSP tree types: uses tree structs
apps/jigsaw/lib/bsp/layout.ex - Layout API → ID generator: generates IDs
apps/jigsaw/lib/bsp/layout.ex - Layout API → Validation errors: returns errors
apps/jigsaw/lib/bsp/layout.ex - Application developer → Layout component: supplies layout and slots
README.md - Layout component → BSP tree types: renders tree structs
apps/jigsaw/lib/jigsaw_components/components.ex - Demo dashboard → Layout component: uses rendering API