<%# Dashboard: the gated post-login app home. The built-in default is a short instructional starter — what /dashboard is and how to replace it from a plugin. Composes the app shell (the one global menu via model.nav) around the prose. A plugin owns the real dashboard via a `dashboard` handler; this renders until then. Data: model { nav, shell }. %><% const nav = include("partials/nav-tree", { nodes: model.nav }); const body = `

${t("dashboard.starter.title")}

${t("dashboard.starter.intro")}

${t("dashboard.starter.replace")}

export default definePlugin({
  apiVersion: "1.0.0",
  // view names plugins/<id>/views/<view>.ejs, rendered in this same shell
  dashboard: (ctx) => ({ view: "dashboard", data: { /* … */ } }),
});

${t("dashboard.starter.reference")}

`; -%> <%- include("partials/shell", { body, brand: model.shell.brand, breadcrumbs: model.shell.breadcrumbs, csrfToken: model.shell.csrfToken, nav, signInHref: model.shell.signInHref, theme: model.shell.theme, title: model.shell.title, user: model.shell.user, }) %>