# xaviworks/xaviworks-modular-schema-ui architecture

> Architecture diagram of the GitHub repository xaviworks/xaviworks-modular-schema-ui, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/xaviworks/xaviworks-modular-schema-ui
- Repository: https://github.com/xaviworks/xaviworks-modular-schema-ui

## Overview

XaviWorks Modular Schema UI is a Laravel package for defining frontend-neutral forms and tables, then rendering or querying them through a host application. The main workflow is schema definition → payload or Blade rendering; table requests additionally pass through normalized state and query operations. The README documents React, Vue, and Livewire starter adapters, but no adapter source paths appear in the supplied tree. QueryPipeline wiring is sampled; links among other subsystems are limited to documented behavior.

Main entry points: [`src/Query/QueryPipeline.php`](https://github.com/xaviworks/xaviworks-modular-schema-ui/blob/main/src/Query/QueryPipeline.php) (Query pipeline), [`src/Tables/Table.php`](https://github.com/xaviworks/xaviworks-modular-schema-ui/blob/main/src/Tables/Table.php) (Table definitions), [`src/Resources/UiSchema.php`](https://github.com/xaviworks/xaviworks-modular-schema-ui/blob/main/src/Resources/UiSchema.php) (Feature schemas), [`src/Forms/Form.php`](https://github.com/xaviworks/xaviworks-modular-schema-ui/blob/main/src/Forms/Form.php) (Form definitions)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_schemas["Schema definitions"]
  node_resources["Resource schemas<br/>[ResourceSchema.php]"]
  node_uischema["Feature schemas<br/>[UiSchema.php]"]
  node_forms["Form definitions<br/>[Form.php]"]
  node_fields["Form fields"]
end

subgraph group_tables["Tables and queries"]
  node_tables["Table definitions<br/>[Table.php]"]
  node_columns["Table columns"]
  node_filters["Table filters"]
  node_actions["Row actions<br/>[Action.php]"]
  node_request["Request state<br/>[RequestState.php]"]
  node_pipeline["Query pipeline<br/>[QueryPipeline.php]"]
  node_search["Search query<br/>[SearchQuery.php]"]
  node_filterquery["Filter query<br/>[FilterQuery.php]"]
  node_sort["Sort query<br/>[SortQuery.php]"]
  node_pagination["Pagination query"]
end

subgraph group_rendering["Payload and rendering"]
  node_payload["Schema payload<br/>[SchemaPayload.php]"]
  node_bladecomponents["Blade components"]
  node_bladeviews["Blade templates"]
  node_frontend["Frontend adapters"]
end

subgraph group_integration["Laravel integration"]
  node_provider["Service provider"]
end

node_host(("Laravel application"))
node_builder["Laravel query builder"]
node_user(("Application user"))

node_host -->|"defines"| node_resources
node_host -->|"defines"| node_uischema
node_resources -->|"configures"| node_forms
node_uischema -->|"resolves forms"| node_forms
node_uischema -->|"resolves tables"| node_tables
node_forms -->|"contains definitions"| node_fields
node_tables -->|"defines"| node_columns
node_tables -->|"defines"| node_filters
node_tables -->|"defines"| node_actions
node_host -->|"provides schema"| node_payload
node_payload -.->|"supplies metadata"| node_frontend
node_provider -->|"registers"| node_bladecomponents
node_bladecomponents -->|"renders"| node_bladeviews
node_user -->|"submits form"| node_bladecomponents
node_host -->|"provides request state"| node_request
node_host -->|"provides query"| node_builder
node_host -->|"invokes"| node_pipeline
node_pipeline -->|"calls search"| node_search
node_pipeline -->|"calls filters"| node_filterquery
node_pipeline -->|"calls sort"| node_sort
node_pipeline -->|"calls pagination"| node_pagination
node_pipeline -->|"reads table config"| node_tables
node_pipeline -->|"reads state"| node_request
node_search -->|"adds conditions"| node_builder
node_pagination -->|"paginates"| node_builder

click node_resources "https://github.com/xaviworks/xaviworks-modular-schema-ui/blob/main/src/Resources/ResourceSchema.php"
click node_uischema "https://github.com/xaviworks/xaviworks-modular-schema-ui/blob/main/src/Resources/UiSchema.php"
click node_forms "https://github.com/xaviworks/xaviworks-modular-schema-ui/blob/main/src/Forms/Form.php"
click node_fields "https://github.com/xaviworks/xaviworks-modular-schema-ui/tree/main/src/Forms/Fields"
click node_tables "https://github.com/xaviworks/xaviworks-modular-schema-ui/blob/main/src/Tables/Table.php"
click node_columns "https://github.com/xaviworks/xaviworks-modular-schema-ui/tree/main/src/Tables/Columns"
click node_filters "https://github.com/xaviworks/xaviworks-modular-schema-ui/tree/main/src/Tables/Filters"
click node_actions "https://github.com/xaviworks/xaviworks-modular-schema-ui/blob/main/src/Tables/Action.php"
click node_request "https://github.com/xaviworks/xaviworks-modular-schema-ui/blob/main/src/State/RequestState.php"
click node_pipeline "https://github.com/xaviworks/xaviworks-modular-schema-ui/blob/main/src/Query/QueryPipeline.php"
click node_search "https://github.com/xaviworks/xaviworks-modular-schema-ui/blob/main/src/Query/SearchQuery.php"
click node_filterquery "https://github.com/xaviworks/xaviworks-modular-schema-ui/blob/main/src/Query/FilterQuery.php"
click node_sort "https://github.com/xaviworks/xaviworks-modular-schema-ui/blob/main/src/Query/SortQuery.php"
click node_pagination "https://github.com/xaviworks/xaviworks-modular-schema-ui/blob/main/src/Query/PaginationQuery.php"
click node_payload "https://github.com/xaviworks/xaviworks-modular-schema-ui/blob/main/src/Support/SchemaPayload.php"
click node_bladecomponents "https://github.com/xaviworks/xaviworks-modular-schema-ui/tree/main/src/View/Components"
click node_bladeviews "https://github.com/xaviworks/xaviworks-modular-schema-ui/tree/main/resources/views"
click node_provider "https://github.com/xaviworks/xaviworks-modular-schema-ui/blob/main/src/ModularSchemaUiServiceProvider.php"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_resources,node_uischema,node_forms,node_fields,node_user toneBlue
class node_tables,node_columns,node_filters,node_actions,node_request,node_pipeline,node_search,node_filterquery,node_sort,node_pagination toneAmber
class node_payload,node_bladecomponents,node_bladeviews,node_frontend toneMint
class node_provider toneRose
class node_host,node_builder toneIndigo
```

## Components

### Schema definitions

- [Resource schemas](https://github.com/xaviworks/xaviworks-modular-schema-ui/blob/main/src/Resources/ResourceSchema.php): `src/Resources/ResourceSchema.php`
- [Feature schemas](https://github.com/xaviworks/xaviworks-modular-schema-ui/blob/main/src/Resources/UiSchema.php): `src/Resources/UiSchema.php`
- [Form definitions](https://github.com/xaviworks/xaviworks-modular-schema-ui/blob/main/src/Forms/Form.php): `src/Forms/Form.php`
- [Form fields](https://github.com/xaviworks/xaviworks-modular-schema-ui/tree/main/src/Forms/Fields): `src/Forms/Fields`

### Tables and queries

- [Table definitions](https://github.com/xaviworks/xaviworks-modular-schema-ui/blob/main/src/Tables/Table.php): `src/Tables/Table.php`
- [Table columns](https://github.com/xaviworks/xaviworks-modular-schema-ui/tree/main/src/Tables/Columns): `src/Tables/Columns`
- [Table filters](https://github.com/xaviworks/xaviworks-modular-schema-ui/tree/main/src/Tables/Filters): `src/Tables/Filters`
- [Row actions](https://github.com/xaviworks/xaviworks-modular-schema-ui/blob/main/src/Tables/Action.php): `src/Tables/Action.php`
- [Request state](https://github.com/xaviworks/xaviworks-modular-schema-ui/blob/main/src/State/RequestState.php): `src/State/RequestState.php`
- [Query pipeline](https://github.com/xaviworks/xaviworks-modular-schema-ui/blob/main/src/Query/QueryPipeline.php): `src/Query/QueryPipeline.php`
- [Search query](https://github.com/xaviworks/xaviworks-modular-schema-ui/blob/main/src/Query/SearchQuery.php): `src/Query/SearchQuery.php`
- [Filter query](https://github.com/xaviworks/xaviworks-modular-schema-ui/blob/main/src/Query/FilterQuery.php): `src/Query/FilterQuery.php`
- [Sort query](https://github.com/xaviworks/xaviworks-modular-schema-ui/blob/main/src/Query/SortQuery.php): `src/Query/SortQuery.php`
- [Pagination query](https://github.com/xaviworks/xaviworks-modular-schema-ui/blob/main/src/Query/PaginationQuery.php): `src/Query/PaginationQuery.php`

### Payload and rendering

- [Schema payload](https://github.com/xaviworks/xaviworks-modular-schema-ui/blob/main/src/Support/SchemaPayload.php): `src/Support/SchemaPayload.php`
- [Blade components](https://github.com/xaviworks/xaviworks-modular-schema-ui/tree/main/src/View/Components): `src/View/Components`
- [Blade templates](https://github.com/xaviworks/xaviworks-modular-schema-ui/tree/main/resources/views): `resources/views`
- **Frontend adapters**

### Laravel integration

- [Service provider](https://github.com/xaviworks/xaviworks-modular-schema-ui/blob/main/src/ModularSchemaUiServiceProvider.php): `src/ModularSchemaUiServiceProvider.php`

### Other components

- **Laravel application**
- **Laravel query builder**
- **Application user**

## Connections

- Laravel application → Resource schemas: defines
- Laravel application → Feature schemas: defines
- Resource schemas → Form definitions: configures
- Feature schemas → Form definitions: resolves forms
- Feature schemas → Table definitions: resolves tables
- Form definitions → Form fields: contains definitions
- Table definitions → Table columns: defines
- Table definitions → Table filters: defines
- Table definitions → Row actions: defines
- Laravel application → Schema payload: provides schema
- Schema payload → Frontend adapters: supplies metadata
- Service provider → Blade components: registers
- Blade components → Blade templates: renders
- Application user → Blade components: submits form
- Laravel application → Request state: provides request state
- Laravel application → Laravel query builder: provides query
- Laravel application → Query pipeline: invokes
- Query pipeline → Search query: calls search
- Query pipeline → Filter query: calls filters
- Query pipeline → Sort query: calls sort
- Query pipeline → Pagination query: calls pagination
- Query pipeline → Table definitions: reads table config
- Query pipeline → Request state: reads state
- Search query → Laravel query builder: adds conditions
- Pagination query → Laravel query builder: paginates
