// The example code survey of the template (ADR-046): a short product-feedback questionnaire about // notes, published at deploy with the module's other code guides. It starts only when the person asks // for it -- the "Give feedback" button of the notes page (feedback-button.tsx) or the help offers of // another module (the support chat lists it by its title) -- and runs once per person. // // Answers are stored per guide version on the platform and read in the console (Guides, the survey, // Results); the free-text question shows a fixed hint not to enter personal data. The optional // `screenshot` question takes up to three images or PDFs, each up to the project's survey file size // (`max_file_size_mb: null`: data_policy.survey_file_max_mb, 10 MB unless configured), with the fixed // hint that files must not contain personal data such as identity documents; the files go through // this app's own server (guides.runtime.uploadFile) to the project's Blob store, and the console's // Results list them. The project's guide settings must allow the `survey` kind (console, Guides, // Settings) before it is served. import { defineGuide } from "@conusai-kit/guides" import { guideText } from "./messages.js" const t = guideText.survey export const feedbackSurvey = defineGuide({ key: "notes.feedback", schema_version: 1, kind: "survey", default_locale: "en", audience: { trait: { name: "role", in: ["owner", "admin", "member"] } }, trigger: { manual: true }, frequency: "once", survey: { title: t.title, intro: t.intro, questions: [ { type: "rating", id: "ease", prompt: t.ease, required: true, scale: "1-5", low_label: t.easeLow, high_label: t.easeHigh, }, { type: "single_choice", id: "use", prompt: t.use, required: false, options: [ { id: "meetings", label: t.useMeetings }, { id: "ideas", label: t.useIdeas }, { id: "tasks", label: t.useTasks }, ], allow_other: true, }, { type: "text", id: "improve", prompt: t.improve, required: false, multiline: true }, { type: "file", id: "screenshot", prompt: t.screenshot, required: false, accept: ["image", "pdf"], max_files: 3, max_file_size_mb: null, }, ], submit_label: null, thank_you: t.thankYou, allow_dismiss: true, one_question_per_screen: true, }, })