/*
 * Copyright 2026, Jaime Terrats.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
export function lucidShapeCatalogMd() {
    return `# Lucid Shape Catalog — Salesforce Professional Services

> Use this catalog to select the correct shape classes when generating Lucid Standard Import JSON.
>
> **Tool-agnostic reference.** Consumable by any AI coding assistant or agent runtime:
> Claude Code, Codex/ChatGPT, Agentforce, Cursor, Windsurf, or custom MCP clients.

## How to Use This Catalog

1. **Identify the diagram type** — System Landscape, Data Model, Business Flow, Integration
2. **Select shape classes** from the tables below matching your Salesforce products and concepts
3. **Map to Standard Import types** using the conversion table at the end
4. **Apply the color palette** from the resolved theme file
5. **Structure swimlanes** using the role archetypes for your industry vertical

When generating Lucid Standard Import JSON:
- Use the "Standard Import Format Mapping" section to convert export \`class\` names to import \`type\` values
- SFA* blocks map to \`"namedShape"\` with their class as the \`className\` property
- Flow shapes map to their flowchart library equivalents (\`process\`, \`decision\`, \`terminator\`)
- Containers map to their container library equivalents (\`swimLanes\`, \`rectangleContainer\`)

## Shape Class → Salesforce Product Mapping

### Salesforce Architect (SFA*) — Product Icons

| Shape Class | Product / Concept | Usage Context |
|-------------|-------------------|---------------|
| \`SFASalesforceLogoBlock\` | Salesforce Platform (logo) | Top-level org representation |
| \`SFASalesforceIconLogoBlock\` | Salesforce Platform (icon) | Compact org representation |
| \`SFAPlatformBlock\` | Platform | Platform capabilities container |
| \`SFAPlatformLogoBlock\` | Platform (logo) | Platform branding |
| \`SFACard\` | Entity / Component card | Data model entities, API endpoints, custom objects, integration services |
| \`SFAHeaderBlock\` | Section header | Architecture layer titles, diagram section names |
| \`SalesforceAgenticBlock\` | Agentforce | AI agent capabilities, autonomous workflows |
| \`SFAAgentforceLogoBlock\` | Agentforce (logo) | Agentforce branding |
| \`SFAMuleSoftBlock\` | MuleSoft | Integration platform blocks |
| \`SFAMulesoftLogoBlock\` | MuleSoft (logo) | Integration layer branding |
| \`SFATableauLogoBlock\` | Tableau / CRM Analytics | Analytics and BI |
| \`SFAMarketingLogoBlock\` | Marketing Cloud | Marketing automation |
| \`SFASalesBlock\` | Sales Cloud | Sales processes, opportunities, quotes |
| \`SFAServiceBlock\` | Service Cloud | Case management, service processes |
| \`SFACommerceBlock\` | Commerce Cloud | B2B/B2C commerce |
| \`SFAFinancialServicesBlock\` | Financial Services Cloud | Banking, insurance, wealth |
| \`SFAAutomotiveBlock\` | Automotive Cloud | Dealer management, vehicle lifecycle |
| \`SFAConsumerGoodsBlock\` | Consumer Goods Cloud | Retail execution, store visits |
| \`SFADataCloudBlock\` | Data Cloud | Customer 360, unified profiles |
| \`SFADataBlock\` | Data / Data Model | Generic data representation |
| \`SFADataBlockV2\` | Data (v2) | Updated data icon |
| \`SFACRMAnalyticsBlock\` | CRM Analytics | Dashboards, reports |

### Salesforce Architect — Capability Icons

| Shape Class | Capability | Usage Context |
|-------------|------------|---------------|
| \`SFAApexBlock\` | Apex Code | Custom business logic |
| \`SFAAppsBlock\` | AppExchange / Apps | Third-party integrations |
| \`SFAAutomationBlock\` | Automation | Flows, Process Builder, triggers |
| \`SFABotsBlock\` / \`SFABotsBlockV2\` | Einstein Bots / Chatbot | Conversational AI |
| \`SFACMSBlock\` | CMS / Content | Experience Cloud content |
| \`SFAChannelsBlockV2\` | Channels | Omnichannel routing |
| \`SFACodePlaygroundBlock\` | Developer Tools | Dev console, sandbox |
| \`SFACustomAppsBlock\` | Custom Applications | Lightning apps |
| \`SFACustomer360AudiencesBlock\` | Customer 360 Audiences | Segmentation |
| \`SFACustomerDataPlatformBlock2\` | Customer Data Platform | CDP / unified data |
| \`SFADXBlock\` | Salesforce DX | Source-driven development |
| \`SFADataIntegrationHubBlock\` | Data Integration Hub | Bulk data movement |
| \`SFADataStreamsBlock\` | Data Streams | Real-time ingestion |
| \`SFAEditGroupsBlock\` | User Groups | Permission management |
| \`SFAEmailBlock\` | Email | Email templates, messaging |
| \`SFAEventsBlock\` | Platform Events | Event-driven architecture |
| \`SFAIdentityBlock\` | Identity | SSO, authentication |
| \`SFAInboxBlock\` | Inbox / Email | Sales engagement |
| \`SFAInteractionStudioBlock\` | Interaction Studio | Real-time personalization |
| \`SFALowCodeBlock\` / \`SFALowCodeBlockV2\` | Low Code | Declarative tools, Flow Builder |
| \`SFAMarketingBlock\` | Marketing | Campaign management |
| \`SFAMobileAppSecurityAndComplianceBlock\` | Mobile Security | Shield, compliance |
| \`SFANewCaseBlock\` | Case Creation | Service Cloud case flow |
| \`SFANewContactBlock\` | Contact Creation | Account/contact management |
| \`SFANewPersonAccountBlock\` | Person Account | B2C record creation |
| \`SFAPartnersBlock\` | Partners | PRM, partner community |
| \`SFAPersonalizationBlockV2\` | Personalization | Next Best Action |
| \`SFAPrivacyBlock\` | Privacy / Consent | GDPR, consent management |
| \`SFASecurityShieldBlock\` | Shield / Security | Encryption, event monitoring |
| \`SFASegmentsBlock\` | Segments | Audience segmentation |
| \`SFAShareLinkBlock\` | Sharing / Links | External sharing |
| \`SFASingleSourceofTruthBlock\` | Single Source of Truth | Master data |
| \`SFASocialStudioBlock\` | Social Studio | Social media management |
| \`SFAStreamBlock\` | Streaming | Change Data Capture, Platform Events |
| \`SFAStreamsBlock\` | Data Streams | Ingestion pipelines |
| \`SFAUserBlock\` | User / Person | User representation |
| \`SFAWebExperienceBlock\` | Web Experience | Experience Cloud sites |
| \`SFAWebLinkBlock\` | Web Link / URL | External links |
| \`SFAWorkflowBlock\` | Workflow | Process automation |
| \`SFAContactTracingBlock\` | Contact Tracing | Health Cloud feature |
| \`SFAAddFileBlock\` | Files / Attachments | Content management |
| \`SFAAnalyticsBlock\` | Analytics | Reporting, dashboards |

### Flow Diagram Shapes

| Shape Class | Semantic | BPMN Equivalent |
|-------------|----------|-----------------|
| \`ProcessBlock\` | Activity / Task | Task |
| \`BPMNActivity\` | BPMN Activity (sub-process capable) | Activity with [+] marker |
| \`DecisionBlock\` | Decision / Gateway | Exclusive Gateway |
| \`TerminatorBlockV2\` | Start / End event | Start/End Event |
| \`ConnectorBlock\` | Off-page connector | Link Event |
| \`NoteBlock\` | Annotation / Comment | Text Annotation |
| \`AdvancedSwimLaneBlock\` | Swimlane container | Pool/Lane |
| \`UMLStartBlock\` | Start node | Start Event |
| \`ShapeDiamondBlock\` | Generic diamond | Gateway |
| \`ShapeCircleBlock\` | Generic circle | Intermediate Event |

### Utility / Layout Shapes

| Shape Class | Purpose |
|-------------|---------|
| \`MinimalTextBlock\` | Labels, annotations without border |
| \`AutoGrowTextBlock\` | Auto-sizing text labels |
| \`DefaultSquareBlock\` | Generic square placeholder |
| \`RectangleBlock\` | Generic rectangle |
| \`RectangleContainerBlock\` | Grouping container |
| \`RoundedRectangleContainerBlock\` | Rounded grouping container |
| \`ImageSearchBlock2\` | Embedded image/logo |
| \`SVGPathBlock2\` | Custom SVG icon |
| \`PresentationFrameBlock\` | Presentation slide frame |
| \`SparkFrameBlock\` | Lucidspark frame |
| \`LegendBlockV2\` | Diagram legend |
| \`StickiesStickyNoteBlock\` | Sticky note (ideation) |
| \`UMLClassBlock\` | Entity/class definition |
| \`UMLActiveClassBlock\` | Active class |
| \`UMLNoteBlockV2\` | UML annotation |
| \`ERDEntityBlock4\` | ER diagram entity |
| \`DividerBlock\` | Section divider |
| \`DirectAccessStorageBlock\` | Database/storage |
| \`DatabaseBlock\` | Database cylinder |
| \`RightArrowBlock\` | Directional arrow shape |
| \`UserImage2Block\` / \`user2017\` | Person/user icon |
| \`UI2ButtonBlock\` | UI button element |

### Cloud Provider Shapes (Architecture Landscapes)

| Shape Class | Provider | Service |
|-------------|----------|---------|
| \`APIGatewayEndpointAWS2021\` | AWS | API Gateway |
| \`MobileclientAWS2021\` | AWS | Mobile client |
| \`SAMLtokenAWS2021\` | AWS | SAML / Identity |
| \`ResAlert48LightAWS2024\` | AWS | Alert / Notification |
| \`ResUsers48LightAWS2024\` | AWS | Users / IAM |
| \`ResQuestion48LightAWS2024\` | AWS | Help / Unknown |
| \`AWSTrustedAdvisor_ChecklistAWS19\` | AWS | Trusted Advisor |
| \`DataLakeStorageAzure2019\` | Azure | Data Lake |
| \`AzureADDomainServicesAzure2019\` | Azure | Azure AD |
| \`AzureActiveDirectoryAzure2021\` | Azure | Azure AD (v2) |
| \`SAPHANAonAzureAzure2019\` | Azure | SAP HANA |
| \`MobileAzure2024\` | Azure | Mobile |
| \`WebsitePowerAzure2024\` | Azure | Web App |
| \`GCP2021ConnectorsIcon\` | GCP | Connectors |
| \`AEDatabasegenericBlock\` | Generic | Database |

### Hardware / Physical Shapes

| Shape Class | Represents |
|-------------|-----------|
| \`NET_Laptop\` | Laptop device |
| \`LaptopNvidia2025\` | Laptop (Nvidia style) |
| \`EmailNvidia2025\` | Email (Nvidia style) |
| \`NET_BiometricReader\` | Biometric device |

---

## Swimlane Role Archetypes

> Use these generic role patterns when generating swimlane diagrams.

### Field Operations (Consumer Goods / Retail)

| Lane | Generic Archetype |
|------|-------------------|
| Cliente | End Customer / Point of Sale |
| Comercial / Preventa | Field Sales Rep / Pre-sales |
| Hunter | New Business Acquisition Rep |
| Promotor | Merchandiser / Promoter |
| Reparto | Delivery / Distribution |
| Televenta | Inside Sales / Telesales |
| Supervisor / Coordinador | Field Manager / Coordinator |
| Gerente de Cuenta Clave (KAM) | Key Account Manager |
| Equipo de Campo | Field Team (generic) |

### Back Office

| Lane | Generic Archetype |
|------|-------------------|
| BO - Datos Maestros | Master Data Administration |
| BO - Finanzas | Finance / Credit Administration |
| BO / RTM | Route-to-Market Administration |
| Backoffice (Admin) | Back Office Operations |

### System Lanes

| Lane | Generic Archetype |
|------|-------------------|
| Salesforce / Sistema | CRM Platform |
| Systems | Integration Layer |
| Integraciones / Sistemas Externos | External Systems |

### Service Operations

| Lane | Generic Archetype |
|------|-------------------|
| Centro de Atención Telefónica | Contact Center |
| Correo electrónico / Web | Digital Channels |
| Equipo Frío / Vending | Asset Management (cold equipment, vending) |
| Almacén / Seguridad | Warehouse / Security |

---

## Flow Phase Patterns

### Consumer Goods — Commercial Management

Typical phase structure (left → right):
1. **Inicio de Día** — Day start, route assignment, sync
2. **Ejecución de Visita** — Visit execution, activities
3. **Toma de Pedido** — Order capture, validation, submission

### Customer Onboarding

1. **Prospección** — Lead capture, qualification
2. **Alta de Cliente** — Customer creation, validation, duplicate check
3. **Configuración** — Portfolio assignment, pricing, route assignment
4. **Activación** — First order, activation confirmation

### Asset Management

1. **Solicitud** — Request creation, classification
2. **Evaluación** — Feasibility check, approval
3. **Asignación** — Asset deployment, installation
4. **Monitoreo** — Tracking, maintenance, lifecycle

---

## Connector Patterns

### Endpoint Styles Used

| Pattern | endpoint1.style | endpoint2.style | Meaning |
|---------|----------------|----------------|---------|
| Directed flow | \`None\` | \`Arrow\` | Standard process flow |
| Bidirectional | \`Arrow\` | \`Arrow\` | Two-way communication |
| Association | \`None\` | \`None\` | Non-directional relationship |
| Conditional | \`None\` | \`Equilateral Arrow\` | Decision branch |

### Line Routing

- All flow diagrams use **orthogonal routing** (no diagonals)
- Primary flow: horizontal (left → right)
- Cross-lane communication: vertical connectors
- Return loops: routed below the primary flow line

---

## Architecture Diagram Patterns

### System Landscape

Structure:
- \`SFAHeaderBlock\` at top of each architectural layer
- \`RectangleContainerBlock\` to group related systems
- \`SFACard\` for each system/service entity
- Cloud provider shapes for infrastructure
- \`SFAMuleSoftBlock\` / \`SFAMulesoftLogoBlock\` for integration layer

Typical layers (top → bottom):
1. **Channels** — Web, Mobile, Social, Contact Center
2. **Salesforce Platform** — Clouds, custom apps, automation
3. **Integration** — MuleSoft, API Gateway, middleware
4. **Backend Systems** — ERP, Data Warehouse, legacy systems

### Data Model (ERD)

Structure:
- \`SFACard\` for each sObject / entity
- Text format: \`ObjectAPIName__c\` or \`Standard Object\`
- Lines with crow's-foot notation for cardinality
- \`RectangleContainerBlock\` to group by domain

### Agentforce Architecture

Structure:
- \`SalesforceAgenticBlock\` for AI agent nodes
- \`SFAAgentforceLogoBlock\` for branding
- \`ProcessBlock\` for agent actions/skills
- \`DecisionBlock\` for routing logic
- Connected to \`SFADataCloudBlock\` for context

---

## Color Palette

Colors are **configurable per project** via \`.setup-agents/diagram-theme.json\`.
If no theme file exists, the Salesforce Architect design token defaults apply.

See \`.setup-agents/diagram-theme.json\` for the active palette.
See \`.setup-agents/references/diagram-theme.defaults.json\` for the full default schema with descriptions.

---

## Lucid Export Format Reference

### Top-Level Structure (Export)

\`\`\`json
{
  "id": "uuid",
  "title": "Document Title",
  "product": "lucidchart",
  "pages": [...],
  "data": {"collections": []},
  "accountId": "number"
}
\`\`\`

### Page Structure (Export)

\`\`\`json
{
  "id": "pageId",
  "title": "Page Title",
  "index": 0,
  "items": {
    "shapes": [...],
    "lines": [...],
    "groups": [...],
    "layers": [...]
  },
  "customData": [],
  "linkedData": []
}
\`\`\`

### Shape Structure (Export)

\`\`\`json
{
  "id": "shapeId",
  "class": "ProcessBlock",
  "textAreas": [{"label": "Text", "text": "Activity Name"}],
  "customData": [],
  "linkedData": [{"collectionId": null, "data": [...], "primaryKeyValue": "..."}]
}
\`\`\`

### Line Structure (Export)

\`\`\`json
{
  "id": "lineId",
  "class": "",
  "endpoint1": {"style": "None", "connectedTo": "shapeId1"},
  "endpoint2": {"style": "Arrow", "connectedTo": "shapeId2"},
  "style": {}
}
\`\`\`

### Group Structure (Export)

\`\`\`json
{
  "id": "groupId",
  "members": ["shapeId1", "shapeId2"],
  "customData": [],
  "linkedData": []
}
\`\`\`

---

## Standard Import Format Mapping

> When generating diagrams via Lucid MCP \`create_document\`, map export classes to Standard Import types:

| Export Class | Standard Import Type | Notes |
|-------------|---------------------|-------|
| \`ProcessBlock\` | \`"process"\` | Flowchart process rectangle |
| \`DecisionBlock\` | \`"decision"\` | Flowchart decision diamond |
| \`TerminatorBlockV2\` | \`"terminator"\` | Start/end oval |
| \`BPMNActivity\` | \`"bpmnActivity"\` | With \`activityType\` property |
| \`ConnectorBlock\` | \`"connector"\` | Off-page link |
| \`AdvancedSwimLaneBlock\` | \`"swimLanes"\` | Container with lanes array |
| \`NoteBlock\` | \`"note"\` | Flowchart note |
| \`SFACard\` | \`"rectangle"\` | Styled with Salesforce fill |
| \`SFAHeaderBlock\` | \`"rectangle"\` | Full-width, branded fill |
| \`RectangleContainerBlock\` | \`"rectangleContainer"\` | Grouping container |
| \`RoundedRectangleContainerBlock\` | \`"roundedRectangleContainer"\` | Rounded grouping |
| \`ERDEntityBlock4\` | \`"umlClass"\` | With title/properties/methods |
| \`SFA*Block\` (product icons) | \`"namedShape"\` | Use \`className\` from Lucid Salesforce library |
| AWS/Azure/GCP shapes | \`"namedShape"\` | Use \`className\` from cloud provider libraries |
| \`UMLClassBlock\` | \`"umlClass"\` | Standard UML class |
| \`StickiesStickyNoteBlock\` | \`"stickyNote"\` | Lucidspark sticky |
| \`DatabaseBlock\` | \`"database"\` | Database cylinder |
| \`DirectAccessStorageBlock\` | \`"directAccessStorage"\` | Storage shape |

---

## Page Organization Patterns

### Multi-Page Diagram Structure

| Page Type | Typical Name | Content |
|-----------|-------------|---------|
| System Landscape | "System Landscape" | Full architecture overview |
| Data Model | "Data Model" / "Modelo de Datos" | ERD with objects and relationships |
| Integration | "Integraciones" | API contracts, middleware flows |
| Business Flow | "Gestión [Domain]" | Swimlane process flow |
| Environment | "Environments" | Org topology, sandbox strategy |

### Page Naming Conventions

- Use domain name as page title: "Gestión Comercial", "Servicio al Cliente"
- Prefix drafts: "WIP - ", "Draft - "
- Mark final versions: "Final - "
`;
}
//# sourceMappingURL=lucid-shape-catalog-content.js.map