Skip to main content

Schema Builder — UI Component Reference

App Version: 2.2.0  |  Codebase Root: SchemaBuilder/meta_configurator/src/

This page maps every visible UI element in the Schema Builder to its feature name, description, and primary codebase module. All relative paths are from SchemaBuilder/meta_configurator/src/.


Schema Mode — UI Component Map

Schema Builder — Schema Mode Schema Builder — Schema Mode with Text View, GUI View, Table View, and Mapper View panels open

Top Toolbar Row (Row 1)

#Icon / ElementTooltip / LabelDescriptionPrimary Module(s)
1Schema tabSwitches to Schema Editor modecomponents/toolbar/ModeSelector.vue, store/sessionMode.ts
2Data tabSwitches to Data Editor modecomponents/toolbar/ModeSelector.vue
3 DividerVisual separator between mode tabs and panel iconscomponents/toolbar/TopToolbar.vue
4</> Code iconShow/Hide Text ViewToggles the Text View (Ace Editor) panelcomponents/panels/code-editor/CodeEditorPanel.vue
5 Table iconShow/Hide Table ViewToggles the Table View (list analysis) panelcomponents/panels/list-analysis/ListAnalysisPanel.vue
6 Signs-post iconShow/Hide Mapper ViewToggles the Mapper View panelcomponents/panels/mapper/MapperPanel.vue
7 Diagram iconShow/Hide Diagram ViewToggles the Diagram View panelcomponents/panels/schema-diagram/SchemaDiagramPanel.vue
8 List iconShow/Hide GUI ViewToggles the GUI View (form editor) panelcomponents/panels/gui-editor/GuiEditorPanel.vue
9🤖 Robot iconShow/Hide AI Prompts ViewToggles the AI Prompts panelcomponents/panels/ai-prompts/AiPromptsPanel.vue
10 SeparatorVisual separator before schema-specific controls
11📖 Book iconShow/Hide Documentation ViewToggles the Documentation View panelcomponents/panels/documentation/DocumentationPanel.vue
12🔒 Lock iconEnable/Disable advanced schema optionsToggles between simplified and full JSON Schema meta-schemacomponents/toolbar/menuItems.ts
13 Circle-nodes iconEnable/Disable JSON-LD fieldsToggles JSON-LD fields (@id, @type, @context)components/toolbar/menuItems.ts
14 Half-circle iconSwitch to Dark/Light ModeToggles html.dark class on document.documentElementcomponents/toolbar/TopToolbar.vue
15 Three-dot iconMore optionsOpens overflow menucomponents/toolbar/TopToolbar.vue

Bottom Toolbar Row (Row 2)

#Icon / ElementTooltip / LabelDescriptionPrimary Module(s)
1📂 Folder-openOpen JSON Schema…Opens schema selection dialog (local file or URL)components/toolbar/menuItems.ts, components/toolbar/uploadFile.ts
2📄 File iconNew Schema…Dropdown: Clear Data / Infer Schema from Datacomponents/toolbar/clearFile.ts, components/toolbar/menuItems.ts
3🌲 Folder-treeImport Schema…Dropdown: Import JSON Schema / Import JSON-LD Schemacomponents/toolbar/importFile.ts, components/toolbar/ImportJsonLdDialog.vue
4 DownloadDownload SchemaDownloads the current schema as a filecomponents/toolbar/downloadFile.ts
5🔧 WrenchUtility…Dropdown: Extract definitions / Resolve references / Bundlecomponents/toolbar/extractSchemaDefinitions.ts
6</> File-codeGenerate Source Code…Opens code generation dialogcomponents/toolbar/dialogs/
7 ShareShare Snapshot…Creates a shareable snapshot URLcomponents/toolbar/menuItems.ts
8 SeparatorVisual divider
9 Rotate-leftUndoUndoes last editdata/managedData.ts (UndoManager)
10 Rotate-rightRedoRedoes last undone editdata/managedData.ts (UndoManager)
11 SeparatorVisual divider before zoom/search
12🔍-Zoom outDecreases page zoom by 10% (min 50%)components/toolbar/TopToolbar.vue
13100% labelCurrent zoom percentagecomponents/toolbar/TopToolbar.vue
14🔍+Zoom inIncreases page zoom by 10% (max 150%)components/toolbar/TopToolbar.vue
15🔍Search (Ctrl+F)Opens the Search Data & Schema dialogcomponents/toolbar/SearchDialog.vue
16📁 Project SwitcherSelects the active SureCentric projectcomponents/toolbar/ProjectSwitcherCombobox.vue
17📋 CARD ProfileSelects the active CARD profilecomponents/toolbar/CardProfileCombobox.vue
18 SeparatorVisual divider
19🔧 Wrench iconOpens CARD Profile Editor dialogcomponents/toolbar/dialogs/CardProfileEditorDialog.vue
20jsonld dropdownActive FormatSelects data format: json, yaml, jsonld, xmldataformats/formatRegistry.ts

Schema Mode — View Panels

PanelDescriptionPrimary Module(s)
Text ViewFull-text JSON/YAML/JSON-LD/XML editor with syntax highlighting, folding, and cursor-synchronised navigationcomponents/panels/code-editor/CodeEditorPanel.vue
Table ViewRenders root-level arrays as a sortable, selectable data table; auto-selects single arrayscomponents/panels/list-analysis/ListAnalysisPanel.vue
Mapper ViewSelects schema nodes, generates translation mappings, saves .mapper.json sidecar filescomponents/panels/mapper/MapperPanel.vue
Diagram ViewRenders JSON Schema structure as a navigable UML-like diagram; shows overlay for JSON-LDcomponents/panels/schema-diagram/SchemaDiagramPanel.vue
GUI ViewJSON Schema meta-schema-driven form editor; shows inactive overlay for JSON-LD documentscomponents/panels/gui-editor/GuiEditorPanel.vue
AI ViewSends schema context to AI model for NL-driven creation, modification, and Q&Acomponents/panels/ai-prompts/AiPromptsPanel.vue
Documentation ViewRenders human-readable documentation auto-generated from the loaded JSON Schemacomponents/panels/documentation/DocumentationPanel.vue

Data Mode — UI Component Map

Schema Builder — Data Mode Schema Builder — Data Mode with Text View, Table View, and GUI View panels open

Top Toolbar Row (Row 1)

#Icon / ElementTooltip / LabelDescriptionPrimary Module(s)
1Schema tabSwitches to Schema Editor modecomponents/toolbar/ModeSelector.vue
2Data tabActive mode indicatorcomponents/toolbar/ModeSelector.vue
3 DividerVisual separator
4</> Code iconShow/Hide Text ViewToggles the Text View panelcomponents/panels/code-editor/CodeEditorPanel.vue
5 Table iconShow/Hide Table ViewToggles the Table View panelcomponents/panels/list-analysis/ListAnalysisPanel.vue
6 List iconShow/Hide GUI ViewToggles the GUI View panelcomponents/panels/gui-editor/GuiEditorPanel.vue
7🤖 Robot iconShow/Hide AI Prompts ViewToggles the AI Prompts panelcomponents/panels/ai-prompts/AiPromptsPanel.vue
8 Half-circle iconSwitch to Dark/Light ModeToggles dark modecomponents/toolbar/TopToolbar.vue
9 Three-dot iconMore optionsOpens overflow menucomponents/toolbar/TopToolbar.vue

Bottom Toolbar Row (Row 2)

#Icon / ElementTooltip / LabelDescriptionPrimary Module(s)
1📂 Folder-openOpen DataOpens a local data filecomponents/toolbar/uploadFile.ts
2📄 File iconNew Data…Dropdown: Clear Data / Generate Datacomponents/toolbar/clearFile.ts, createSampleData.ts
3📥 File-importImport Data…Dropdown: Import CSV Data / Import JSON-LDcomponents/toolbar/ImportJsonLdDialog.vue
4 DownloadDownload DataDownloads the current data filecomponents/toolbar/downloadFile.ts
5🔧 WrenchUtility…Dropdown: Transform Data / Export via Templatecomponents/toolbar/menuItems.ts
6 ShareShare Snapshot…Creates a shareable snapshot URLcomponents/toolbar/menuItems.ts
7 SeparatorVisual divider
8 UndoUndoUndoes last editdata/managedData.ts
9 RedoRedoRedoes last undone editdata/managedData.ts
10–15Zoom / Search(same as Schema mode)Page zoom + search dialogcomponents/toolbar/TopToolbar.vue
16–20Project / CARD Profile / Format(same as Schema mode)Context controls(same as Schema mode)

Data Mode — View Panels

PanelDescriptionPrimary Module(s)
Text ViewFull-text data editor with AJV validation annotationscomponents/panels/code-editor/CodeEditorPanel.vue
Table ViewRenders data arrays as a sortable, paginated DataTable; auto-selects single arrayscomponents/panels/list-analysis/ListAnalysisPanel.vue
GUI ViewSchema-driven form editor; validates user input against schema constraints from Schema Modecomponents/panels/gui-editor/GuiEditorPanel.vue
AI ViewSends data context to AI for generation, modification, Q&A, and format exportcomponents/panels/ai-prompts/AiPromptsPanel.vue

Shared Components

Three-Dot Overflow Menu ()

Schema Builder Three-Dot Menu and Settings View The three-dot overflow menu (left) with the Settings view open (right)

Menu ItemIconDescriptionPrimary Module(s)
Create Projectfa-solid fa-folder-openOpens the Create/Edit Project dialogcomponents/toolbar/dialogs/CreateEditProjectDialog.vue
Settingspi pi-cogNavigates to the Settings editor viewviews/SettingsEditorView.vue
View Pluginsfa-solid fa-plugOpens the Plugin Manager dialogcomponents/toolbar/PluginManagerDialog.vue
SureCentric Docsfa-solid fa-bookExternal link to https://docs.surecentric.net
About Schema Builderpi pi-info-circleShows the About dialogcomponents/toolbar/TopToolbar.vue
Restore default settingsfa-solid fa-trash-arrow-upResets all settings to defaultssettings/defaultSettingsData.ts

Settings

Access: overflow menu → Settings

Source: views/SettingsEditorView.vue · settings/defaultSettingsData.ts · settings/settingsSchema.ts · settings/settingsTypes.ts

The Settings view renders Schema Builder's own configuration as a two-panel editor (Text View + GUI View) in Settings mode. Settings are persisted to localStorage as a JSON document validated against the settings JSON Schema. Changes take effect immediately.

Restore defaults: Restore default settings resets all values to SETTINGS_DATA_DEFAULT and reloads the app.

Root-Level Settings

SettingTypeDefaultDescription
settingsVersionstring"1.0.5"Internal version — read-only
dataFormatjson | yaml | xml | jsonld"jsonld"Default format in the code editor
toolbarTitlestring"Schema Builder"Title shown in the app toolbar
hideSchemaEditorbooleanfalseHides the schema editor mode entirely
hideSettingsbooleanfalseHides the settings mode entirely

performance — Performance Limits

SettingTypeDefaultDescription
maxDocumentSizeForValidationinteger5,242,880 (5 MiB)Documents larger than this (bytes) skip AJV validation
maxDocumentSizeForCursorSynchronizationinteger5,242,880 (5 MiB)Documents larger than this skip panel cursor sync
maxDocumentSizeForSchemaInferenceinteger40,960 (40 KiB)Documents larger than this are trimmed before schema inference
minObjectPropertyCountToPreserveinteger16Min property count preserved when trimming large documents
maxShownChildrenInGuiEditorinteger50Max children shown per node in the GUI Editor
maxErrorsToShowinteger15Max validation errors displayed
maxErrorsToShowBulkValidationinteger200Max errors shown during bulk validation

textEditor — Code Editor

SettingTypeDefaultDescription
fontSizeinteger (10–40)14Font size in the code editor
tabSizeinteger (1–8)2Tab width in the code editor
showFormatSelectorbooleantrueShows JSON / YAML / XML / JSON-LD format dropdown
xml.attributeNamePrefixstring"_"Prefix added to XML attribute names on export

guiEditor — Visual Editor

SettingTypeDefaultDescription
maximumDepthinteger (1–20)20Max depth rendered inline; deeper nodes require click-navigation
propertySortingenum"schemaOrder"priorityOrder: required→optional→additional. schemaOrder: matches schema definition order. dataOrder: matches data object order
hideAddPropertyButtonbooleantrueHides the "Add custom property" button for schema-undefined keys
showBorderAroundInputFieldsbooleantrueAdds a visible border around input fields
showSchemaTitleAsHeaderbooleantrueShows schema title as a header above the field

schemaDiagram — Diagram View

SettingTypeDefaultDescription
editModebooleantrueClick elements in the diagram to edit the schema
verticalbooleantrueRenders diagram top-to-bottom (vs. left-to-right)
showAttributesbooleantrueShows property attributes in diagram nodes
showEnumValuesbooleantrueShows enum values in diagram nodes
maxAttributesToShowinteger30Max attributes shown per node before truncation
maxEnumValuesToShowinteger10Max enum values shown per node before truncation
moveViewToSelectedElementbooleanfalseAuto-pans the diagram to the selected element
automaticZoomMaxValuenumber1Max zoom level when auto-panning
automaticZoomMinValuenumber0.5Min zoom level when auto-panning
mergeAllOfsbooleanfalseMerges allOf sub-schemas in the diagram

documentation — Documentation View

SettingTypeDefaultDescription
mergeAllOfsbooleantrueMerges allOf sub-schemas in generated docs
enumMaxCountToShowWithoutSpoilerinteger10Enum values above this count collapse behind a spoiler
repeatMultipleOccurrencesInTableOfContentsbooleantrueRepeated schema references all appear in the table of contents

metaSchema — Schema Editor Behavior

SettingTypeDefaultDescription
allowBooleanSchemabooleanfalseAllows true/false as valid sub-schema definitions
allowMultipleTypesbooleanfalseAllows a property to have multiple types (e.g., string | number)
objectTypesComfortbooleantrueForces consistent types for default, const, enum, examples to enable auto-type-selection
markMoreFieldsAsAdvancedbooleantrueHides less-common schema fields behind an "Advanced" toggle
showAdditionalPropertiesButtonbooleanfalseShows a button to add properties outside the schema definition
showJsonLdFieldsbooleantrueShows JSON-LD fields (@context, @type, @id) in the schema editor

panels — Layout Configuration

SettingTypeDefaultDescription
dataEditorPanel[][textEditor 33%, tableView 33%, guiEditor 33%]Panels shown in Data Mode
schemaEditorPanel[][textEditor 25%, tableView 25%, mapperView 25%, schemaDiagram 25%]Panels shown in Schema Mode
settingsPanel[] (read-only)[textEditor 50%, guiEditor 50%]Panels shown in Settings Mode — cannot be changed in the UI
hiddenstring[]["debug", "test"]Panel types hidden from toolbar toggles. Valid values: aiPrompts, debug, test, schemaDiagram, guiEditor, textEditor, tableView, documentation

Each panel entry has: panelType (guiEditor \| textEditor \| schemaDiagram \| aiPrompts \| tableView \| documentation), mode (schemaEditor \| dataEditor \| settings), and size (percentage ≥ 10).

aiIntegration — AI API

SettingTypeDefaultDescription
modelstring"gpt-4o-mini"Model ID — supports OpenAI, Perplexity Sonar, OpenRouter provider/model, and custom deployments
maxTokensinteger5000Max tokens per AI request
temperaturenumber (0.0–1.0)0.0Sampling temperature; 0 = fully deterministic
endpointstring (URI)"https://api.openai.com/v1/"OpenAI-compatible API endpoint (Azure OpenAI, SureLLM, Ollama, OpenRouter all work)

rdf — Ontology / SPARQL

SettingTypeDefaultDescription
sparqlEndpointUrlstring (URI)"https://sparql.carelex.org"SPARQL endpoint for ontology lookups and NCBO autocomplete

frontend / backend — Host Configuration

SettingTypeDefaultDescription
frontend.hostnamestring (URI)"https://www.surecentric.net"Frontend server hostname — used in link generation
backend.hostnamestring (URI)"https://api.surecentric.net"Backend API hostname

schemaSelectionLists — Schema Picker

SettingTypeDefaultDescription
schemaSelectionListsSchemaSelectionList[]SureCentric eClinical entryGroups shown in the schema selection dialog
[].labelstring"SureCentric Clinical Schemas"Group label shown in the dialog
[].schemasURI or SchemaEntry[]eClinical/CareLex entryRemote list URL or inline schema entries
[].schemas[].labelstring"eClinical Content Model (CareLex)"Schema display name
[].schemas[].urlstring (URI)GitHub raw URL to eclinical-v1-test.jsonldSchema source URL

Dialogs

DialogTriggerDescriptionPrimary Module(s)
Schema SelectionOpen JSON Schema…Select from schema store, URL, or file uploadcomponents/toolbar/fetchExampleSchemas.ts
Search🔍 icon / Ctrl+FFull-text search across data and schema with result navigationcomponents/toolbar/SearchDialog.vue
Import JSON-LDImport JSON-LD menu itemMulti-step JSON-LD import with merge/replace optionscomponents/toolbar/ImportJsonLdDialog.vue
Plugin ManagerView Plugins menu itemLists registered plugins with activate/deactivate togglescomponents/toolbar/PluginManagerDialog.vue
Create/Edit ProjectCreate Project menu itemCreates or edits a SureCentric projectcomponents/toolbar/dialogs/CreateEditProjectDialog.vue
CARD Profile Editor🔧 icon (profile combobox)Edits CARD profiles: schemas, datasets, plugins, visualization appscomponents/toolbar/dialogs/CardProfileEditorDialog.vue

Panel Infrastructure

ComponentDescriptionModule
Panel Type RegistryCentral Map<name, definition> driving icon rendering and toggle logiccomponents/panels/panelTypeRegistry.ts
Panel Type DefinitionsDeclares icon, label, supported modes, and component factory for each panel typecomponents/panels/defaultPanelTypes.ts
Combined EditorOrchestrates the Splitter layout with dynamically-toggled panelscomponents/CombinedEditorComponent.vue
Panel SettingsPer-panel info/help popover rendered on each panel headercomponents/panels/shared-components/PanelSettings.vue

Theming & Styling

UI Framework Stack

TechnologyVersionPurpose
TailwindCSS^3.3.2Utility-first CSS; darkMode: 'class' in tailwind.config.js
PrimeVue^4.2.5Vue 3 component library — registered globally in main.ts
@primevue/themes^4.2.5PrimeVue Lara theme preset — customized with SureCentric brand palette
PrimeIcons^7.0.0pi pi-* icon classes — used in overflow menu and panel settings
FontAwesome^6.5.2Primary toolbar icon set — registered in fontawesome.ts
Ace Editorbundled via vue3-ace-editorText/code editor component

PrimeVue Lara Theme — SureCentric Brand Palette

The theme is defined in main.ts using definePreset() to extend the Lara base preset.

SureCentric Blue (#29619B, HSL 211°, 58%):

TokenHex
50#ebf2fa
100#d7e5f4
200#aecbea
300#7eacdd
400#4a8acf
500 (brand primary)#29619B
600#225081
700#1b3f65
800#132d49
900#0d1e30
950#07121c

This palette is applied in two places:

  • PrimeVue preset — maps to semantic.primary and colorScheme.light/dark
  • Tailwind config — remaps colors.indigo to the same palette

Dark Mode

MechanismDetails
Toggle triggerTopToolbar.vuetoggleDarkMode() toggles html.dark class on <html>
PersistencelocalStorage key sc-color-mode ('dark' or 'light')
PrimeVue selectordarkModeSelector: '.dark' in theme options (main.ts)