Glossary Page
v0.2.8Glossary review page: a split panel listing a pipeline's glossary terms beside a per-term editor, with accept/reject decisions, inline edits, deletion, and an add-term dialog.
Preview
Install & usage
npx shadcn@latest add @signalos/glossary-01Pulls the page source plus its widget dependencies (@signalos/tokens, @signalos/utils, @signalos/button, @signalos/page-header, @signalos/textarea, @signalos/badge, @signalos/checkbox, @signalos/command, @signalos/input, @signalos/label, @signalos/popover, @signalos/progress, @signalos/select, @signalos/skeleton, @signalos/tooltip, @signalos/split-panel, @signalos/dialog) into your app - you own the copy. Requires access.
usage
// after: npx shadcn@latest add @signalos/glossary-01
// mount the pulled page in a route, e.g. src/app/semantics-details/page.tsx
import GlossaryReview from "@/components/blocks/glossary-01/Glossary"
export default function Page() {
return <GlossaryReview />
}Props
GlossaryTerm
| Prop | Type | Default | Description |
|---|---|---|---|
| term* | string | - | |
| definition* | string | - | |
| synonyms | string[] | undefined | - | |
| mapped_entity | string | undefined | - | |
| source | string | undefined | - | |
| owner_team | string | undefined | - | |
| domain_context | string | undefined | - | |
| review_origin | string | undefined | - |
GlossaryReviewItem
| Prop | Type | Default | Description |
|---|---|---|---|
| index* | number | - | |
| status* | "accepted" | "flagged" | "deleted" | - | |
| feedback* | string | - | |
| edits* | Partial<GlossaryTerm> | - |
TermDecision
| Prop | Type | Default | Description |
|---|---|---|---|
| status* | "accepted" | "flagged" | - | |
| feedback* | string | - | |
| edits* | Partial<GlossaryTerm> | - |
GlossaryAddValues
| Prop | Type | Default | Description |
|---|---|---|---|
| term* | string | - | |
| definition* | string | - | |
| synonyms* | string[] | - | |
| mapped_entity | string | undefined | - | |
| owner_team* | string | - |
GlossaryItemEdits
| Prop | Type | Default | Description |
|---|---|---|---|
| term* | string | - | |
| definition* | string | - | |
| synonyms* | string[] | - | |
| mapped_entity | string | undefined | - | |
| owner_team | string | undefined | - |
SubmitGlossaryReviewPayload
| Prop | Type | Default | Description |
|---|---|---|---|
| action* | "confirm" | "retry" | "add_item" | - | |
| items | GlossaryReviewItem[] | undefined | - | |
| connector_id | string | undefined | - | |
| item_edits | GlossaryAddValues | undefined | - |
AddGlossaryPayload
| Prop | Type | Default | Description |
|---|---|---|---|
| action* | "add_item" | - | |
| connector_id* | string | - | |
| feedback | string | undefined | - | |
| item_edits* | GlossaryItemEdits | - |
AddGlossaryResponse
| Prop | Type | Default | Description |
|---|---|---|---|
| status | string | undefined | - | |
| index | number | undefined | - | |
| item | GlossaryTerm | undefined | - | |
| soft_warning | string | undefined | - |
GlossaryFdeInput
| Prop | Type | Default | Description |
|---|---|---|---|
| items* | GlossaryReviewItem[] | - |
TermEditState
| Prop | Type | Default | Description |
|---|---|---|---|
| definition* | string | - | |
| synonyms* | string | - | |
| selectedNamespace* | string | - | |
| selectedTable* | string | - |
CatalogData
| Prop | Type | Default | Description |
|---|---|---|---|
| namespaces* | string[] | - | |
| tablesByNamespace* | Record<string, string[]> | - | |
| allTables* | string[] | - | |
| hasNamespaces* | boolean | - |
GlossaryAddFormState
| Prop | Type | Default | Description |
|---|---|---|---|
| term* | string | - | |
| definition* | string | - | |
| synonyms* | string | - | |
| selectedNamespace* | string | - | |
| selectedTable* | string | - | |
| owner_team* | string | - |
Supporting types
export type CreateGlossaryTermPayload = GlossaryTerm
export type GlossaryAddFormErrors = Partial< Record<keyof GlossaryAddFormState, string> >
More Semantics Stages variants
Changelog
0.2.8
- Replace the copied placeholder description with one that actually describes this block; the registry description is what the agent skill shows as "pick it when".
0.2.7
- Replace raw scale token classes with semantic tokens (text-text-error, bg-bg-success, border-border-warning, etc.) to respect client theme overrides.
0.2.6
- Replace
FormDialog+TextFieldwidgets inGlossaryAddDialogwith raw shadcnDialog,Input, andLabelprimitives; removes@signalos/form-dialogand@signalos/text-fieldfrom registry dependencies. - Add
data-testid="glossary-desktop-panel"wrapper div aroundSplitPanelinGlossary.tsx. - Add
data-testid="glossary-term-list"to the root div inGlossaryTermList. - Add
Retrybutton alongsideDismissinGlossaryHeadererror banner; wired toonSubmit.
0.2.5
- Replace Label + Input with TextField widget in GlossaryAddDialog for Term, Synonyms, and Owner team fields; validation errors now flow through TextField's built-in error prop.
0.2.4
- Replace raw shadcn Dialog in GlossaryAddDialog with FormDialog widget; fix raw color-scale tokens to semantic tokens; swap
@signalos/dialogfor@signalos/form-dialog.
0.2.3
- Content updates.
0.2.2
- Content updates.
glossary-01
0.2.1
0.2.0
- Refactor: lift all add-dialog form state, validation, synonym parsing, and
mapped_entityconstruction intoGlossaryReview(parent). GlossaryAddDialogis now fully presentational — receives controlledform,errors,availableTables,onFieldChange, andonSubmit(no-arg) as props; no internaluseState, no validation, no payload building.GlossaryTermDetail: removed unusedtermIdxprop;TermEditStateandCatalogDataare now imported fromGlossary.typesinstead of redeclared locally.GlossaryTermList: fixed import casing (../Glossary.types).Glossary.types.ts: addedTermEditState,CatalogData,GlossaryAddFormState,GlossaryAddFormErrorsexports; these were previously duplicated as local interfaces across multiple files.- Fixed import casing (
./glossary.types→./Glossary.types) across all files in the block.
semantics-details-01
0.4.0
- Register all 54 component files in
registry-item.jsonso consumers receive the full component tree on install.
0.3.0
- Remove legacy
components/semantics/folder; all components now live in per-stage directories (glossary/,relationships/,cross-source/,metrics/,signal-rules/,equilibrium/,content-profile/). - Register all migrated component files in
registry-item.jsonso consumers receive the full component tree.
0.2.0
- Lift navigation out of card sub-components:
ReviewQueueCard,SharedStageCard, andCompletedStageCardno longer calluseRouter— they now accept anonNavigate: (path: string) => voidprop and call it instead. - Add
onNavigatetoReviewQueueViewProps;ReviewQueueViewthreads it throughQueueSectionto each card. - Replace
@/typesimports in card components andStepProgresswith relative imports from../../pipeline.types(removes the forbidden app-level alias from shipped files). - Remove
StageActionDialogimport fromSharedStageCard(pointed to@/components/features/…, a forbidden app-side path).
0.1.0
- Initial block: review queue view with per-source and shared stage sections, tab navigation, and questionnaire view.