# maxhenkentech/legaltechops-custompcfcomponents architecture

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

- Interactive diagram: https://gitdiagram.com/maxhenkentech/legaltechops-custompcfcomponents
- Repository: https://github.com/maxhenkentech/legaltechops-custompcfcomponents

## Overview

LegalTechOps is a collection of independent Power Platform Component Framework controls for model-driven apps, not a single processing pipeline. A user works in a model-driven app form or subgrid; the host supplies each control’s field or dataset context, and the control presents its specialized UI. The components cover choice and lookup entry, action-driven field updates, help text, risk assessment, document viewing, record hierarchy, and activity history. Sampled sources show Activity Graph loading history and Quick Action Buttons using an expression evaluator; several other subsystems are represented by their documented capabilities because their implementation was not sampled.

Main entry points: [`src/ActivityGraph/ActivityGraph/ActivityGraphControl.tsx`](https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/ActivityGraph/ActivityGraph/ActivityGraphControl.tsx) (Activity Graph), [`src/AdvancedMultiLookUp/AdvancedMultiLookUp/AdvancedMultiLookUpControl.tsx`](https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/AdvancedMultiLookUp/AdvancedMultiLookUp/AdvancedMultiLookUpControl.tsx) (Advanced Multi LookUp), [`src/QuickActionButtons/QuickActionButtons/QuickActionButtonsControl.tsx`](https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/QuickActionButtons/QuickActionButtons/QuickActionButtonsControl.tsx) (Quick Action Buttons), [`src/AdvancedDropDown/AdvancedDropDown/AdvancedOptionsControl.tsx`](https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/AdvancedDropDown/AdvancedDropDown/AdvancedOptionsControl.tsx) (Advanced Dropdown)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_choice["Choice and lookup"]
  node_advanced_dropdown["Advanced Dropdown"]
  node_advanced_lookup["Advanced LookUp"]
  node_multi_choice["Advanced Multi Choice"]
  node_multi_lookup["Advanced Multi LookUp"]
  node_yes_no["Advanced Yes/No"]
  node_choice_buttons["Modern Choice Buttons"]
end

subgraph group_form["Form enhancements"]
  node_markdown["Markdown Help Text"]
  node_quick_actions["Quick Action Buttons"]
  node_risk_matrix["Risk Matrix<br/>[index.ts]"]
end

subgraph group_records["Record context"]
  node_pdf_gallery["PDF Gallery"]
  node_relationship_view["Relationship View"]
  node_activity_graph["Activity Graph"]
end

subgraph group_internal["Control internals"]
  node_activity_data["Activity data loader<br/>[ActivityData.ts]"]
  node_activity_calendar["Calendar utilities<br/>[Calendar.ts]"]
  node_expression_engine["Expression evaluator"]
  node_dataverse_helpers["Dataverse metadata helpers<br/>[Dataverse.ts]"]
end

node_app_user(("App user"))

node_app_user -->|"uses on form"| node_advanced_dropdown
node_app_user -->|"uses on form"| node_advanced_lookup
node_app_user -->|"uses on form"| node_multi_choice
node_app_user -->|"uses on form"| node_multi_lookup
node_app_user -->|"uses on form"| node_yes_no
node_app_user -->|"uses on form"| node_choice_buttons
node_app_user -->|"views help text"| node_markdown
node_app_user -->|"clicks actions"| node_quick_actions
node_app_user -->|"plots risk"| node_risk_matrix
node_app_user -->|"views documents"| node_pdf_gallery
node_app_user -->|"explores hierarchy"| node_relationship_view
node_app_user -.->|"views history"| node_activity_graph
node_activity_graph -->|"loads history"| node_activity_data
node_activity_graph -->|"converts time"| node_activity_calendar
node_quick_actions -->|"evaluates expressions"| node_expression_engine
node_multi_lookup -->|"resolves metadata"| node_dataverse_helpers

click node_advanced_dropdown "https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/AdvancedDropDown/AdvancedDropDown/AdvancedOptionsControl.tsx"
click node_advanced_lookup "https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/AdvancedLookUp/AdvancedLookUp/AdvancedLookUpControl.tsx"
click node_multi_choice "https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/AdvancedMultiChoice/AdvancedMultiChoice/AdvancedMultiChoiceControl.tsx"
click node_multi_lookup "https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/AdvancedMultiLookUp/AdvancedMultiLookUp/AdvancedMultiLookUpControl.tsx"
click node_yes_no "https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/AdvancedYesNo/AdvancedYesNo/AdvancedYesNoControl.tsx"
click node_choice_buttons "https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/ModernChoiceButtons/ModernChoiceButtons/ModernChoiceButtonsControl.tsx"
click node_markdown "https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/MarkdownHelpText/MarkdownHelpText/MarkdownHelpTextControl.tsx"
click node_quick_actions "https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/QuickActionButtons/QuickActionButtons/QuickActionButtonsControl.tsx"
click node_risk_matrix "https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/RiskMatrix/RiskMatrix/index.ts"
click node_pdf_gallery "https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/PDFGallery/PDFGallery/PDFGalleryControl.tsx"
click node_relationship_view "https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/RelationshipView/RelationshipView/RelationshipViewControl.tsx"
click node_activity_graph "https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/ActivityGraph/ActivityGraph/ActivityGraphControl.tsx"
click node_activity_data "https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/ActivityGraph/ActivityGraph/ActivityData.ts"
click node_activity_calendar "https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/ActivityGraph/ActivityGraph/Calendar.ts"
click node_expression_engine "https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/QuickActionButtons/QuickActionButtons/ExpressionEngine.ts"
click node_dataverse_helpers "https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/AdvancedMultiLookUp/AdvancedMultiLookUp/Dataverse.ts"

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_advanced_dropdown,node_advanced_lookup,node_multi_choice,node_multi_lookup,node_yes_no,node_choice_buttons,node_app_user toneBlue
class node_markdown,node_quick_actions,node_risk_matrix toneAmber
class node_pdf_gallery,node_relationship_view,node_activity_graph toneMint
class node_activity_data,node_activity_calendar,node_expression_engine,node_dataverse_helpers toneRose
```

## Components

### Choice and lookup

- [Advanced Dropdown](https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/AdvancedDropDown/AdvancedDropDown/AdvancedOptionsControl.tsx): `src/AdvancedDropDown/AdvancedDropDown/AdvancedOptionsControl.tsx`
- [Advanced LookUp](https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/AdvancedLookUp/AdvancedLookUp/AdvancedLookUpControl.tsx): `src/AdvancedLookUp/AdvancedLookUp/AdvancedLookUpControl.tsx`
- [Advanced Multi Choice](https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/AdvancedMultiChoice/AdvancedMultiChoice/AdvancedMultiChoiceControl.tsx): `src/AdvancedMultiChoice/AdvancedMultiChoice/AdvancedMultiChoiceControl.tsx`
- [Advanced Multi LookUp](https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/AdvancedMultiLookUp/AdvancedMultiLookUp/AdvancedMultiLookUpControl.tsx): `src/AdvancedMultiLookUp/AdvancedMultiLookUp/AdvancedMultiLookUpControl.tsx`
- [Advanced Yes/No](https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/AdvancedYesNo/AdvancedYesNo/AdvancedYesNoControl.tsx): `src/AdvancedYesNo/AdvancedYesNo/AdvancedYesNoControl.tsx`
- [Modern Choice Buttons](https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/ModernChoiceButtons/ModernChoiceButtons/ModernChoiceButtonsControl.tsx): `src/ModernChoiceButtons/ModernChoiceButtons/ModernChoiceButtonsControl.tsx`

### Form enhancements

- [Markdown Help Text](https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/MarkdownHelpText/MarkdownHelpText/MarkdownHelpTextControl.tsx): `src/MarkdownHelpText/MarkdownHelpText/MarkdownHelpTextControl.tsx`
- [Quick Action Buttons](https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/QuickActionButtons/QuickActionButtons/QuickActionButtonsControl.tsx): `src/QuickActionButtons/QuickActionButtons/QuickActionButtonsControl.tsx`
- [Risk Matrix](https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/RiskMatrix/RiskMatrix/index.ts): `src/RiskMatrix/RiskMatrix/index.ts`

### Record context

- [PDF Gallery](https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/PDFGallery/PDFGallery/PDFGalleryControl.tsx): `src/PDFGallery/PDFGallery/PDFGalleryControl.tsx`
- [Relationship View](https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/RelationshipView/RelationshipView/RelationshipViewControl.tsx): `src/RelationshipView/RelationshipView/RelationshipViewControl.tsx`
- [Activity Graph](https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/ActivityGraph/ActivityGraph/ActivityGraphControl.tsx): `src/ActivityGraph/ActivityGraph/ActivityGraphControl.tsx`

### Control internals

- [Activity data loader](https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/ActivityGraph/ActivityGraph/ActivityData.ts): `src/ActivityGraph/ActivityGraph/ActivityData.ts`
- [Calendar utilities](https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/ActivityGraph/ActivityGraph/Calendar.ts): `src/ActivityGraph/ActivityGraph/Calendar.ts`
- [Expression evaluator](https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/QuickActionButtons/QuickActionButtons/ExpressionEngine.ts): `src/QuickActionButtons/QuickActionButtons/ExpressionEngine.ts`
- [Dataverse metadata helpers](https://github.com/maxhenkentech/legaltechops-custompcfcomponents/blob/main/src/AdvancedMultiLookUp/AdvancedMultiLookUp/Dataverse.ts): `src/AdvancedMultiLookUp/AdvancedMultiLookUp/Dataverse.ts`

### Other components

- **App user**

## Connections

- App user → Advanced Dropdown: uses on form (evidence: `README.md`)
- App user → Advanced LookUp: uses on form (evidence: `README.md`)
- App user → Advanced Multi Choice: uses on form (evidence: `README.md`)
- App user → Advanced Multi LookUp: uses on form (evidence: `README.md`)
- App user → Advanced Yes/No: uses on form (evidence: `README.md`)
- App user → Modern Choice Buttons: uses on form (evidence: `README.md`)
- App user → Markdown Help Text: views help text (evidence: `README.md`)
- App user → Quick Action Buttons: clicks actions (evidence: `README.md`)
- App user → Risk Matrix: plots risk (evidence: `README.md`)
- App user → PDF Gallery: views documents (evidence: `README.md`)
- App user → Relationship View: explores hierarchy (evidence: `README.md`)
- App user → Activity Graph: views history
- Activity Graph → Activity data loader: loads history (evidence: `src/ActivityGraph/ActivityGraph/ActivityGraphControl.tsx`)
- Activity Graph → Calendar utilities: converts time (evidence: `src/ActivityGraph/ActivityGraph/ActivityGraphControl.tsx`)
- Quick Action Buttons → Expression evaluator: evaluates expressions (evidence: `src/QuickActionButtons/QuickActionButtons/QuickActionButtonsControl.tsx`)
- Advanced Multi LookUp → Dataverse metadata helpers: resolves metadata (evidence: `src/AdvancedMultiLookUp/AdvancedMultiLookUp/AdvancedMultiLookUpControl.tsx`)
