# PhoenixKitDashboards v0.2.2 - Table of Contents

> Customizable dashboards for PhoenixKit — compose admin dashboard pages from widgets exposed by any module

## Modules

- [PhoenixKitDashboards](PhoenixKitDashboards.md): Customizable dashboards for PhoenixKit.
- [PhoenixKitDashboards.Dashboards](PhoenixKitDashboards.Dashboards.md): Context for dashboard pages and their widget layouts.
- [PhoenixKitDashboards.Grid](PhoenixKitDashboards.Grid.md): Pure cell-placement math for **grid** dashboards.
- [PhoenixKitDashboards.Lattice](PhoenixKitDashboards.Lattice.md): The grid design space: a GAPLESS lattice of nominal **25px square cells**.
- [PhoenixKitDashboards.Layout](PhoenixKitDashboards.Layout.md): Read/write a widget instance's geometry in the **embedded** item shape
- [PhoenixKitDashboards.Layouts](PhoenixKitDashboards.Layouts.md): Pure helpers for a grid dashboard's **layout list** — the ordered
`config["layouts"]` entries (`%{"id","name","cols","rows"}`), each one exactly
one screenful on the gapless 25px lattice (see `PhoenixKitDashboards.Lattice`).
- [PhoenixKitDashboards.Paths](PhoenixKitDashboards.Paths.md): Centralized path helpers for the Dashboards module.
- [PhoenixKitDashboards.Registry](PhoenixKitDashboards.Registry.md): Discovers and caches the widget catalog.
- [PhoenixKitDashboards.Schemas.Dashboard](PhoenixKitDashboards.Schemas.Dashboard.md): A dashboard page: an ordered set of placed widgets owned by a user (personal)
or by the system / a role (shared).
- [PhoenixKitDashboards.Sizing](PhoenixKitDashboards.Sizing.md): The single source of truth for a widget **instance's** resize bounds.
- [PhoenixKitDashboards.Web.BuilderComponents](PhoenixKitDashboards.Web.BuilderComponents.md): Presentational function components + their render-only helpers for the
dashboard builder — extracted verbatim from `Web.BuilderLive` (review #4) so
the LiveView keeps the mount/event/refresh logic and this module owns the
~900 lines of HEEx. `BuilderLive` `import`s this module, so its `render/1`
resolves `<.grid>` / `<.catalog_drawer>` / `<.settings_modal>` here.
- [PhoenixKitDashboards.Web.BuilderLive](PhoenixKitDashboards.Web.BuilderLive.md): The dashboard builder — a responsive, server-rendered grid of widgets that can
be added from the catalog, reordered, resized, configured, and removed.
- [PhoenixKitDashboards.Web.DashboardFormLive](PhoenixKitDashboards.Web.DashboardFormLive.md): Dedicated create/edit page for a dashboard's metadata (title, layout type,
visibility). Replaces the old create modal.
- [PhoenixKitDashboards.Web.DashboardsLive](PhoenixKitDashboards.Web.DashboardsLive.md): Manage page — lists the current user's personal dashboards, all shared
(system) dashboards, and any `role`-scoped dashboards for the user's roles.
Creating and editing metadata happens on the dedicated form page
(`DashboardFormLive`); from here admins open the builder, **clone** any
visible dashboard into a private editable copy, edit, or delete (own
personal ones + shared/role ones).
- [PhoenixKitDashboards.Web.Helpers](PhoenixKitDashboards.Web.Helpers.md): Cross-cutting helpers shared by the Dashboards LiveViews.
- [PhoenixKitDashboards.Widget](PhoenixKitDashboards.Widget.md): A widget **type** — the catalog entry that describes a kind of widget that can
be placed on a dashboard.
- [PhoenixKitDashboards.Widgets](PhoenixKitDashboards.Widgets.md): The built-in widget catalog shipped with this module.
- [PhoenixKitDashboards.Widgets.ClockWidget](PhoenixKitDashboards.Widgets.ClockWidget.md): Built-in "Clock" widget — the current time, ticking live, in one of three
views, with a per-instance timezone.
- [PhoenixKitDashboards.Widgets.ModuleStatsWidget](PhoenixKitDashboards.Widgets.ModuleStatsWidget.md): Built-in "Module stats" widget — renders the `get_config/0` map of any
discovered PhoenixKit module, selected by its `module_key` setting.
- [PhoenixKitDashboards.Widgets.NoteWidget](PhoenixKitDashboards.Widgets.NoteWidget.md): Built-in "Note" widget — a title + free-text body from its settings, with the
body rendered as **Markdown** (GFM, XSS-sanitized via core's `<.markdown>`),
so links, lists and emphasis actually work in a pinned note.

