51 lines
1.7 KiB
TypeScript
51 lines
1.7 KiB
TypeScript
// The example code tour of the template (in-app guides spec §7.3): defined next to the module it
|
|
// explains, published to the deployment's environment by the deploy step, and run from memory with
|
|
// `pnpm dev` (the fake platform). Its steps point at the `data-guide` anchors of ui/pages.tsx and
|
|
// ui/note-form.tsx; `kit check` warns when one of them is removed.
|
|
//
|
|
// The audience is a trait the app sends (`role`, from the guides module): a viewer cannot add a note,
|
|
// so the tour is for the members who can. The platform compares only the traits the project's guide
|
|
// settings allow-list, so allow `role` there (console, Guides, Settings) before the tour shows.
|
|
|
|
import { defineGuide } from "@conusai-kit/guides"
|
|
import { guideText } from "./messages.js"
|
|
|
|
const t = guideText.tour
|
|
|
|
export const firstNoteTour = defineGuide({
|
|
key: "notes.first-note",
|
|
schema_version: 1,
|
|
kind: "tour",
|
|
default_locale: "en",
|
|
audience: { trait: { name: "role", in: ["owner", "admin", "member"] } },
|
|
trigger: { page: "/:org/:workspace/:project/notes" },
|
|
frequency: "once",
|
|
steps: [
|
|
{
|
|
id: "new",
|
|
type: "tooltip",
|
|
target: { anchor: "notes.new-note" },
|
|
title: t.newTitle,
|
|
body: t.newBody,
|
|
advance: { on: "next_button" },
|
|
},
|
|
{
|
|
id: "title",
|
|
type: "tooltip",
|
|
target: { anchor: "notes.note-title" },
|
|
title: t.titleTitle,
|
|
body: t.titleBody,
|
|
advance: { on: "next_button" },
|
|
},
|
|
{
|
|
id: "list",
|
|
type: "tooltip",
|
|
target: { anchor: "notes.note-list" },
|
|
title: t.listTitle,
|
|
body: t.listBody,
|
|
advance: { on: "next_button" },
|
|
},
|
|
{ id: "done", type: "modal", title: t.doneTitle, body: t.doneBody },
|
|
],
|
|
})
|