Research synthesis
A React block (a whole screen) in Beamline's Research & design app.
A research study turned into evidence in one place. Transcripts: passages marked as accepted highlights or as the assistant's suggestions (dashed); suggestions to review with the passage, the assistant's reason (said to be a reason, not evidence) and tags; Accept puts exactly that passage into evidence and onto the canvas, Reject keeps the decision with its range, either can be undone; a suggestion made on an older transcript revision says the passage may not line up and can't be accepted. Measured silences as their own rows above a chosen threshold, with a note on the measured interval (a higher threshold hides the row but keeps the note and says so); no audio means silences can't be measured. Canvas: accepted highlights and sticky notes as cards dragged or moved with the arrow keys, selected and grouped; suggested groups dashed until kept or dismissed; deleting a group asks whether its cards stay, never touching interviews; a card whose interview was removed stays as an unavailable source; a collaborator's view can be followed; viewing only opens sources. Ask: an answer sentence by sentence with numbered sources that preview the exact words and open the transcript with the passage lit; an unsupported sentence says so; a source you can't open shows none of its words; no answer says so.
Use it for
- A research repository where interviews become highlights, groups and answers that cite their passages.
- Reviewing AI-suggested evidence without letting the suggestion stand in for the source.
Not for
- Playing a recording with word-level timing (transcript-viewer).
- A clinician's notes after a session (session-notes).
Anatomy
- bar: the study, how many highlights are in evidence; Transcripts, Canvas or Ask
- transcripts: interviews with pending counts; Mark silences and its threshold; the transcript (time, speaker, words with marks) with silence rows and their notes; suggestions to review and the reviewed ones
- canvas: Suggest groups, the selection and Group selected, people here with Follow; the board with groups (kept or suggested) and cards (highlight, note or unavailable source), a followed person's view; the delete question
- ask: the question, the answer's sentences with numbered sources or the unsupported mark, the source preview
States
- suggestion: suggested, reason visible, accepted, rejected, source changed, read only
- silence: detection off, measuring, silent interval, annotated, threshold changed (note kept), audio unavailable
- canvas: empty, cards selected, group suggested, manual group, missing source, viewing only, following a collaborator
- answer: answering, ready, citation focused, source unavailable, no supported answer
- narrow room: columns stack
Keyboard
- Tab reaches every interview, suggestion, card and source; Enter or Space picks; arrow keys move a focused card (Shift for larger steps)
Motion
Marks ease when a passage is lit; a dragged card lifts and follows the pointer, groups ease to fit their cards; answer sentences fade in as they arrive. Nothing runs at rest.
Props
| Prop | Type | Default | Description |
|---|---|---|---|
study (required) | string | — | The study's name. |
interviews (required) | Interview[] | — | |
suggestions | Suggestion[] | — | |
defaultSuggestions | Suggestion[] | — | |
onSuggestionsChange | ((s: Suggestion[]) => void) | — | |
highlights | Highlight[] | — | |
defaultHighlights | Highlight[] | — | |
onHighlightsChange | ((h: Highlight[]) => void) | — | |
notes | SilenceNote[] | — | |
defaultNotes | SilenceNote[] | — | |
onNotesChange | ((n: SilenceNote[]) => void) | — | |
cards | CanvasCard[] | — | |
defaultCards | CanvasCard[] | — | |
onCardsChange | ((c: CanvasCard[]) => void) | — | |
groups | CanvasGroup[] | — | |
defaultGroups | CanvasGroup[] | — | |
onGroupsChange | ((g: CanvasGroup[]) => void) | — | |
collaborators | Collaborator[] | — | People on the canvas with you. |
canEdit | boolean | — | May review suggestions, annotate and arrange the canvas. Default true. |
onSuggestGroups | ((cards: CanvasCard[]) => Promise<CanvasGroup[]>) | — | Suggests groups for the canvas's cards. |
onAsk | AskInterviews | — | Answers a question sentence by sentence, each with the excerpts behind it. |
defaultView | ResearchSynthesisView | — | |
defaultInterview | string | — | |
defaultSilences | boolean | — | |
defaultThreshold | number | — | |
defaultQuestion | string | — | |
defaultAnswer | AnswerSentence[] | — | |
className | string | — | Classes on the documented visual root; no override by default. |
style | CSSProperties | — | Inline styles on the documented visual root; no overrides by default. |
ref | Ref<HTMLDivElement> | — | Receives the documented native target or imperative handle; omitted by default. |
Built from
- segmented-control
- switch
- slider
- textarea
- button
- avatar-group
- hover-card
- input
- skeleton
Dependencies
lucide-react
Import
import { ResearchSynthesis } from "@beamline/research-synthesis";
Get it
Research synthesis is part of Beamline UI. Install the parts you need in your React app as compiled packages or editable source. Get Beamline · Connect your agent
More in Research & design
- Study setup: Set up an unmoderated test and its screener. Test: what's tested (a website, a prototype by its share link, an app by its store page), who takes it…
- Study flow: A study's blocks in order, each with where people go next. A block that routes by its answer (multiple choice, scale, open question, prototype task) has…
- Participant review: One participant's session, answer by answer, beside the list of everyone who took the study. The list filters (finished, left early, with a recording)…
- Click heatmap: One screen of a usability task as it looked (your prototype's frame or a page built from your parts, scaled into a phone) with where people clicked over…
- Tree test: A tree test: build a navigation tree and read where people went. Build: pages added at the top or under any page, indented under the page above or moved…
- Prototype task: A prototype task in a study. The linked prototype refreshes from the design keeping the task and paths (a start screen gone from the new version said, a…
- Task results: A usability task's results, from headline outcomes down to paths and screens. Outcomes (direct success, indirect success, gave up) say their share and…
- Matrix question: A matrix question and the participant's side of it, side by side. Rows (up to ten) share one set of choices (two to seven); Enter adds a row, several…
- Prototype review: Reviewing a design file's clickable prototype. Present: the board on a stage with its wireframe, the flow chosen (an unavailable one can't be), Back…
- Report builder: Build a chart from your metrics without code: choose metrics, how to group them over time, an optional breakdown, filters, the range and the chart, see…
- Report library: A business's reports in one place. The directory: reports by topic and group with search, each with what it answers; one this person can't open says why…
- Review page builder: Building the page reviewers use to go through records one by one. The queue of records (one with no title shows its id instead of a blank); the record as…
- Database builder: What a database does for the people who use it, built in one place. Templates: starting values per property (a relation default points at an existing…
- Workflow builder: Automation rules for a SaaS without code: a trigger, conditions built with the query builder that branch into Yes and No, actions and waits, drawn as a…
- Workflow library: The automation library: every automation as a row (what starts it, whether it's live, a draft or paused, who owns it, when it last ran, and its runs this…
- Drawing board: A whiteboard a team already knows how to use, like FigJam: tools in a floating bar at the bottom (Select V, Hand H, Sticky note S, Shape R/O/D, Connector…
- Model workbench: A CAD model's workbench around a large isometric scene of its bodies, each shaded from its material's appearance with a soft ground shadow and an axis…
- Component properties: A design system component from three sides. Its variants as a matrix on two chosen properties, the others filtering it, each cell drawing the variant; a…
- Slot editor: Slots in a design system component, from making to filling. The main component's layer tree with a checkbox per layer: a nested frame converts to a slot…