/** * — Custom element wrapper for the Survey Review Workbench. * * Works like : data via the `.session` property OR a `src` * attribute that fetches a JSON-serialised ReviewQueueSessionState. Shadow DOM * is used throughout so CSS custom properties (--k-*) inherit from the host * with no separate stylesheet required — a single module import is sufficient. * * Usage (single import, self-contained): * import "@kontourai/survey/review-workbench/element"; * * * * // or via property: * const el = document.querySelector("survey-review-workbench"); * el.session = reviewQueueSession; * el.presentationAdapter = myPresentationAdapter; * * Theming: * CSS custom properties (--k-*) inherit through the shadow boundary. * Setting any --k-* token on the element or an ancestor overrides the * shadow :host defaults. Token defaults are declared on :host so that * host-page rules always win over the shadow defaults. * * Attributes: * theme — "survey" | "console" | "flow" | "surface" (maps to a theme-* class * with its own brand colour) | "custom" (or any other value: no * theme-* class at all, so a host's own --k-* overrides apply with * nothing to fight — see the "Theming" section of * docs/consumer-integration-guide.md for a full host-brand example) * color-scheme — "dark" | "light" (default: "dark") * src — URL to fetch a JSON-serialised ReviewQueueSessionState */ import { type ReviewQueueSessionState, type ReviewWorkbenchState } from "./review-workbench.js"; import type { ReviewPresentationAdapter } from "./review-presentation.js"; import type { ExtractionEnvelopeImport, ExtractionEnvelopeImportResult } from "../extraction-envelope.js"; import { type ExtractionInspectorInput } from "./extraction-inspector.js"; export declare class SurveyReviewWorkbenchElement extends HTMLElement { #private; static readonly observedAttributes: string[]; constructor(); /** The review queue session to display. Setting this property re-mounts the workbench. */ get session(): ReviewQueueSessionState | ReviewWorkbenchState | null; set session(value: ReviewQueueSessionState | ReviewWorkbenchState | null | undefined); /** Optional presentation adapter for custom labels, value summaries, and links. */ get presentationAdapter(): ReviewPresentationAdapter | undefined; set presentationAdapter(value: ReviewPresentationAdapter | undefined); /** * The extraction import record the queue was built from, as stored beside * it. The workbench checks the queue against it (see * `MountReviewWorkbenchOptions.extractionImport`). When unset, the import of * a single-import `extractionInspector` is used; with neither, a queue whose * items came from an extraction import shows an "Unverified queue" notice. */ get extractionImport(): ExtractionEnvelopeImport | ExtractionEnvelopeImportResult | null; set extractionImport(value: ExtractionEnvelopeImport | ExtractionEnvelopeImportResult | null | undefined); /** Optional read-only source pane attached to this workbench's existing review lifecycle. */ get extractionInspector(): ExtractionInspectorInput | null; set extractionInspector(value: ExtractionInspectorInput | null | undefined); connectedCallback(): void; attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void; }