@flowuent-org/diagramming-core 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (838) hide show
  1. package/.editorconfig +13 -0
  2. package/.eslintignore +1 -0
  3. package/.eslintrc.json +35 -0
  4. package/.prettierignore +4 -0
  5. package/.prettierrc +3 -0
  6. package/.vscode/settings.json +6 -0
  7. package/README.md +95 -0
  8. package/apps/authentication/tsconfig.app.json +23 -0
  9. package/apps/authentication/tsconfig.json +21 -0
  10. package/apps/authentication/tsconfig.spec.json +28 -0
  11. package/apps/authentication/vite.config.ts +0 -0
  12. package/apps/diagramming/.eslintrc.json +18 -0
  13. package/apps/diagramming/index.html +16 -0
  14. package/apps/diagramming/project.json +53 -0
  15. package/apps/diagramming/public/aws-icons/compute/App Runner.svg +18 -0
  16. package/apps/diagramming/public/aws-icons/compute/Application Auto Scaling.svg +18 -0
  17. package/apps/diagramming/public/aws-icons/compute/Batch.svg +18 -0
  18. package/apps/diagramming/public/aws-icons/compute/Bottlerocket.svg +20 -0
  19. package/apps/diagramming/public/aws-icons/compute/Compute Optimizer.svg +18 -0
  20. package/apps/diagramming/public/aws-icons/compute/EC2 Auto Scaling.svg +18 -0
  21. package/apps/diagramming/public/aws-icons/compute/EC2 Image Builder.svg +18 -0
  22. package/apps/diagramming/public/aws-icons/compute/EC2.svg +18 -0
  23. package/apps/diagramming/public/aws-icons/compute/Elastic Beanstalk.svg +18 -0
  24. package/apps/diagramming/public/aws-icons/compute/Elastic Fabric Adapter.svg +18 -0
  25. package/apps/diagramming/public/aws-icons/compute/Fargate.svg +20 -0
  26. package/apps/diagramming/public/aws-icons/compute/Genomics CLI.svg +18 -0
  27. package/apps/diagramming/public/aws-icons/compute/Lambda.svg +18 -0
  28. package/apps/diagramming/public/aws-icons/compute/Local Zones.svg +18 -0
  29. package/apps/diagramming/public/aws-icons/compute/NICE DCV.svg +18 -0
  30. package/apps/diagramming/public/aws-icons/compute/NICE EnginFrame.svg +18 -0
  31. package/apps/diagramming/public/aws-icons/compute/Nitro Enclaves.svg +18 -0
  32. package/apps/diagramming/public/aws-icons/compute/Outposts family.svg +18 -0
  33. package/apps/diagramming/public/aws-icons/compute/Outposts rack.svg +18 -0
  34. package/apps/diagramming/public/aws-icons/compute/Outposts servers.svg +18 -0
  35. package/apps/diagramming/public/aws-icons/compute/ParallelCluster.svg +18 -0
  36. package/apps/diagramming/public/aws-icons/compute/Serverless Application Repository.svg +18 -0
  37. package/apps/diagramming/public/aws-icons/compute/SimSpace Weaver.svg +18 -0
  38. package/apps/diagramming/public/aws-icons/compute/Thinkbox Deadline.svg +18 -0
  39. package/apps/diagramming/public/aws-icons/compute/Thinkbox Frost.svg +18 -0
  40. package/apps/diagramming/public/aws-icons/compute/Thinkbox Sequoia.svg +18 -0
  41. package/apps/diagramming/public/aws-icons/compute/Thinkbox Stoke.svg +18 -0
  42. package/apps/diagramming/public/aws-icons/compute/Thinkbox XMesh.svg +18 -0
  43. package/apps/diagramming/public/aws-icons/compute/VMware Cloud on AWS.svg +18 -0
  44. package/apps/diagramming/public/aws-icons/compute/Wavelength.svg +18 -0
  45. package/apps/diagramming/public/aws-icons/container/ECS Anywhere.svg +18 -0
  46. package/apps/diagramming/public/aws-icons/container/EKS Anywhere.svg +18 -0
  47. package/apps/diagramming/public/aws-icons/container/EKS Cloud.svg +18 -0
  48. package/apps/diagramming/public/aws-icons/container/EKS Distro.svg +18 -0
  49. package/apps/diagramming/public/aws-icons/container/Elastic Container Registry.svg +18 -0
  50. package/apps/diagramming/public/aws-icons/container/Elastic Container Service.svg +18 -0
  51. package/apps/diagramming/public/aws-icons/container/Elastic Kubernetes Service.svg +18 -0
  52. package/apps/diagramming/public/aws-icons/container/Fargate.svg +20 -0
  53. package/apps/diagramming/public/aws-icons/container/Red Hat OpenShift Service on AWS.svg +18 -0
  54. package/apps/diagramming/public/aws-icons/database/Aurora.svg +18 -0
  55. package/apps/diagramming/public/aws-icons/database/Database Migration Service.svg +18 -0
  56. package/apps/diagramming/public/aws-icons/database/DocumentDB.svg +18 -0
  57. package/apps/diagramming/public/aws-icons/database/ElastiCache.svg +18 -0
  58. package/apps/diagramming/public/aws-icons/database/Keyspaces.svg +16 -0
  59. package/apps/diagramming/public/aws-icons/database/MemoryDB for Redis.svg +18 -0
  60. package/apps/diagramming/public/aws-icons/database/Neptune.svg +18 -0
  61. package/apps/diagramming/public/aws-icons/database/RDS on VMware.svg +18 -0
  62. package/apps/diagramming/public/aws-icons/database/RDS.svg +18 -0
  63. package/apps/diagramming/public/aws-icons/database/Timestream.svg +18 -0
  64. package/apps/diagramming/public/aws-icons/networking/App Mesh.svg +18 -0
  65. package/apps/diagramming/public/aws-icons/networking/Client VPN.svg +18 -0
  66. package/apps/diagramming/public/aws-icons/networking/Cloud Directory.svg +18 -0
  67. package/apps/diagramming/public/aws-icons/networking/Cloud Map.svg +18 -0
  68. package/apps/diagramming/public/aws-icons/networking/Cloud WAN.svg +18 -0
  69. package/apps/diagramming/public/aws-icons/networking/CloudFront.svg +18 -0
  70. package/apps/diagramming/public/aws-icons/networking/Direct Connect.svg +18 -0
  71. package/apps/diagramming/public/aws-icons/networking/Elastic Load Balancing.svg +18 -0
  72. package/apps/diagramming/public/aws-icons/networking/Global Accelerator.svg +18 -0
  73. package/apps/diagramming/public/aws-icons/networking/Private 5G.svg +18 -0
  74. package/apps/diagramming/public/aws-icons/networking/PrivateLink.svg +18 -0
  75. package/apps/diagramming/public/aws-icons/networking/Route 53.svg +18 -0
  76. package/apps/diagramming/public/aws-icons/networking/Site to Site VPN.svg +18 -0
  77. package/apps/diagramming/public/aws-icons/networking/Transit Gateway.svg +18 -0
  78. package/apps/diagramming/public/aws-icons/networking/VPC Lattice.svg +18 -0
  79. package/apps/diagramming/public/aws-icons/networking/Verified Access.svg +18 -0
  80. package/apps/diagramming/public/aws-icons/networking/Virtual Private Cloud.svg +18 -0
  81. package/apps/diagramming/public/aws-icons/security/Artifact.svg +18 -0
  82. package/apps/diagramming/public/aws-icons/security/Audit Manager.svg +18 -0
  83. package/apps/diagramming/public/aws-icons/security/Certificate Manager.svg +18 -0
  84. package/apps/diagramming/public/aws-icons/security/CloudHSM.svg +18 -0
  85. package/apps/diagramming/public/aws-icons/security/Cognito.svg +18 -0
  86. package/apps/diagramming/public/aws-icons/security/Detective.svg +18 -0
  87. package/apps/diagramming/public/aws-icons/security/Directory Service.svg +18 -0
  88. package/apps/diagramming/public/aws-icons/security/Firewall Manager.svg +18 -0
  89. package/apps/diagramming/public/aws-icons/security/GuardDuty.svg +18 -0
  90. package/apps/diagramming/public/aws-icons/security/IAM Identity Center.svg +18 -0
  91. package/apps/diagramming/public/aws-icons/security/Identity and Access Management.svg +18 -0
  92. package/apps/diagramming/public/aws-icons/security/Inspector.svg +18 -0
  93. package/apps/diagramming/public/aws-icons/security/Key Management Service.svg +18 -0
  94. package/apps/diagramming/public/aws-icons/security/Macie.svg +18 -0
  95. package/apps/diagramming/public/aws-icons/security/Network Firewall.svg +18 -0
  96. package/apps/diagramming/public/aws-icons/security/Private Certificate Authority.svg +1 -0
  97. package/apps/diagramming/public/aws-icons/security/Resource Access Manager.svg +18 -0
  98. package/apps/diagramming/public/aws-icons/security/Secrets Manager.svg +18 -0
  99. package/apps/diagramming/public/aws-icons/security/Security Hub.svg +18 -0
  100. package/apps/diagramming/public/aws-icons/security/Security Lake.svg +18 -0
  101. package/apps/diagramming/public/aws-icons/security/Shield.svg +18 -0
  102. package/apps/diagramming/public/aws-icons/security/Signer.svg +18 -0
  103. package/apps/diagramming/public/aws-icons/security/Verified Permissions.svg +18 -0
  104. package/apps/diagramming/public/aws-icons/security/WAF.svg +18 -0
  105. package/apps/diagramming/public/aws-icons/storage/Backup.svg +18 -0
  106. package/apps/diagramming/public/aws-icons/storage/EFS.svg +18 -0
  107. package/apps/diagramming/public/aws-icons/storage/Elastic Block Store.svg +18 -0
  108. package/apps/diagramming/public/aws-icons/storage/Elastic Disaster Recovery.svg +16 -0
  109. package/apps/diagramming/public/aws-icons/storage/FSx for Lustre.svg +18 -0
  110. package/apps/diagramming/public/aws-icons/storage/FSx for NetApp ONTAP.svg +18 -0
  111. package/apps/diagramming/public/aws-icons/storage/FSx for OpenZFS.svg +18 -0
  112. package/apps/diagramming/public/aws-icons/storage/FSx for WFS.svg +18 -0
  113. package/apps/diagramming/public/aws-icons/storage/FSx.svg +18 -0
  114. package/apps/diagramming/public/aws-icons/storage/File Cache.svg +18 -0
  115. package/apps/diagramming/public/aws-icons/storage/S3 on Outposts.svg +18 -0
  116. package/apps/diagramming/public/aws-icons/storage/Simple Storage Service Glacier.svg +18 -0
  117. package/apps/diagramming/public/aws-icons/storage/Simple Storage Service.svg +18 -0
  118. package/apps/diagramming/public/aws-icons/storage/Snowball Edge.svg +18 -0
  119. package/apps/diagramming/public/aws-icons/storage/Snowball.svg +18 -0
  120. package/apps/diagramming/public/aws-icons/storage/Snowcone.svg +18 -0
  121. package/apps/diagramming/public/aws-icons/storage/Snowmobile.svg +18 -0
  122. package/apps/diagramming/public/aws-icons/storage/Storage Gateway.svg +18 -0
  123. package/apps/diagramming/public/azure-icons/compute/00195-icon-service-Maintenance-Configuration.svg +1 -0
  124. package/apps/diagramming/public/azure-icons/compute/00328-icon-service-Host-Pools.svg +1 -0
  125. package/apps/diagramming/public/azure-icons/compute/00329-icon-service-Application-Group.svg +1 -0
  126. package/apps/diagramming/public/azure-icons/compute/00330-icon-service-Workspaces.svg +1 -0
  127. package/apps/diagramming/public/azure-icons/compute/00398-icon-service-Disk-Encryption-Sets.svg +1 -0
  128. package/apps/diagramming/public/azure-icons/compute/00400-icon-service-Workspaces.svg +1 -0
  129. package/apps/diagramming/public/azure-icons/compute/02112-icon-service-Automanaged-VM.svg +2 -0
  130. package/apps/diagramming/public/azure-icons/compute/02370-icon-service-Managed-Service-Fabric.svg +1 -0
  131. package/apps/diagramming/public/azure-icons/compute/02409-icon-service-Metrics-Advisor.svg +1 -0
  132. package/apps/diagramming/public/azure-icons/compute/02634-icon-service-Image-Templates.svg +1 -0
  133. package/apps/diagramming/public/azure-icons/compute/02817-icon-service-Restore-Points.svg +1 -0
  134. package/apps/diagramming/public/azure-icons/compute/02818-icon-service-Restore-Points-Collections.svg +1 -0
  135. package/apps/diagramming/public/azure-icons/compute/02864-icon-service-Azure-Compute-Galleries.svg +1 -0
  136. package/apps/diagramming/public/azure-icons/compute/03487-icon-service-Compute-Fleet.svg +1 -0
  137. package/apps/diagramming/public/azure-icons/compute/03543-icon-service-AKS-Automatic.svg +1 -0
  138. package/apps/diagramming/public/azure-icons/compute/10021-icon-service-Virtual-Machine.svg +1 -0
  139. package/apps/diagramming/public/azure-icons/compute/10023-icon-service-Kubernetes-Services.svg +1 -0
  140. package/apps/diagramming/public/azure-icons/compute/10024-icon-service-Mesh-Applications.svg +1 -0
  141. package/apps/diagramming/public/azure-icons/compute/10025-icon-service-Availability-Sets.svg +1 -0
  142. package/apps/diagramming/public/azure-icons/compute/10026-icon-service-Disks-Snapshots.svg +1 -0
  143. package/apps/diagramming/public/azure-icons/compute/10027-icon-service-OS-Images-(Classic).svg +1 -0
  144. package/apps/diagramming/public/azure-icons/compute/10028-icon-service-Virtual-Machines-(Classic).svg +1 -0
  145. package/apps/diagramming/public/azure-icons/compute/10029-icon-service-Function-Apps.svg +1 -0
  146. package/apps/diagramming/public/azure-icons/compute/10030-icon-service-Cloud-Services-(Classic).svg +1 -0
  147. package/apps/diagramming/public/azure-icons/compute/10031-icon-service-Batch-Accounts.svg +1 -0
  148. package/apps/diagramming/public/azure-icons/compute/10032-icon-service-Disks.svg +1 -0
  149. package/apps/diagramming/public/azure-icons/compute/10033-icon-service-Images.svg +1 -0
  150. package/apps/diagramming/public/azure-icons/compute/10034-icon-service-VM-Scale-Sets.svg +1 -0
  151. package/apps/diagramming/public/azure-icons/compute/10035-icon-service-App-Services.svg +1 -0
  152. package/apps/diagramming/public/azure-icons/compute/10036-icon-service-Service-Fabric-Clusters.svg +1 -0
  153. package/apps/diagramming/public/azure-icons/compute/10037-icon-service-Image-Definitions.svg +1 -0
  154. package/apps/diagramming/public/azure-icons/compute/10038-icon-service-Image-Versions.svg +1 -0
  155. package/apps/diagramming/public/azure-icons/compute/10039-icon-service-Shared-Image-Galleries.svg +1 -0
  156. package/apps/diagramming/public/azure-icons/compute/10040-icon-service-VM-Images-(Classic).svg +1 -0
  157. package/apps/diagramming/public/azure-icons/compute/10041-icon-service-Disks-(Classic).svg +1 -0
  158. package/apps/diagramming/public/azure-icons/compute/10049-icon-service-Container-Services-(Deprecated).svg +1 -0
  159. package/apps/diagramming/public/azure-icons/compute/10104-icon-service-Container-Instances.svg +1 -0
  160. package/apps/diagramming/public/azure-icons/compute/10346-icon-service-Host-Groups.svg +1 -0
  161. package/apps/diagramming/public/azure-icons/compute/10347-icon-service-Hosts.svg +1 -0
  162. package/apps/diagramming/public/azure-icons/compute/10370-icon-service-Azure-Spring-Apps.svg +1 -0
  163. package/apps/diagramming/public/azure-icons/containers/03331-icon-service-Azure-Red-Hat-OpenShift.svg +1 -0
  164. package/apps/diagramming/public/azure-icons/containers/10023-icon-service-Kubernetes-Services.svg +1 -0
  165. package/apps/diagramming/public/azure-icons/containers/10031-icon-service-Batch-Accounts.svg +1 -0
  166. package/apps/diagramming/public/azure-icons/containers/10035-icon-service-App-Services.svg +1 -0
  167. package/apps/diagramming/public/azure-icons/containers/10036-icon-service-Service-Fabric-Clusters.svg +1 -0
  168. package/apps/diagramming/public/azure-icons/containers/10104-icon-service-Container-Instances.svg +1 -0
  169. package/apps/diagramming/public/azure-icons/containers/10105-icon-service-Container-Registries.svg +1 -0
  170. package/apps/diagramming/public/azure-icons/databases/00036-icon-service-SQL-Data-Warehouses.svg +1 -0
  171. package/apps/diagramming/public/azure-icons/databases/00606-icon-service-Azure-Synapse-Analytics.svg +1 -0
  172. package/apps/diagramming/public/azure-icons/databases/02390-icon-service-Azure-SQL.svg +2 -0
  173. package/apps/diagramming/public/azure-icons/databases/02392-icon-service-SSIS-Lift-And-Shift-IR.svg +2 -0
  174. package/apps/diagramming/public/azure-icons/databases/02517-icon-service-Azure-Purview-Accounts.svg +1 -0
  175. package/apps/diagramming/public/azure-icons/databases/02750-icon-service-Azure-SQL-Edge.svg +1 -0
  176. package/apps/diagramming/public/azure-icons/databases/02827-icon-service-Azure-Database-PostgreSQL-Server-Group.svg +1 -0
  177. package/apps/diagramming/public/azure-icons/databases/03490-icon-service-Oracle-Database.svg +1 -0
  178. package/apps/diagramming/public/azure-icons/databases/10121-icon-service-Azure-Cosmos-DB.svg +1 -0
  179. package/apps/diagramming/public/azure-icons/databases/10122-icon-service-Azure-Database-MySQL-Server.svg +1 -0
  180. package/apps/diagramming/public/azure-icons/databases/10123-icon-service-Azure-Database-MariaDB-Server.svg +1 -0
  181. package/apps/diagramming/public/azure-icons/databases/10124-icon-service-Azure-SQL-VM.svg +1 -0
  182. package/apps/diagramming/public/azure-icons/databases/10126-icon-service-Data-Factories.svg +1 -0
  183. package/apps/diagramming/public/azure-icons/databases/10127-icon-service-Virtual-Clusters.svg +1 -0
  184. package/apps/diagramming/public/azure-icons/databases/10128-icon-service-Elastic-Job-Agents.svg +1 -0
  185. package/apps/diagramming/public/azure-icons/databases/10130-icon-service-SQL-Database.svg +1 -0
  186. package/apps/diagramming/public/azure-icons/databases/10131-icon-service-Azure-Database-PostgreSQL-Server.svg +1 -0
  187. package/apps/diagramming/public/azure-icons/databases/10132-icon-service-SQL-Server.svg +1 -0
  188. package/apps/diagramming/public/azure-icons/databases/10133-icon-service-Azure-Database-Migration-Services.svg +1 -0
  189. package/apps/diagramming/public/azure-icons/databases/10134-icon-service-SQL-Elastic-Pools.svg +1 -0
  190. package/apps/diagramming/public/azure-icons/databases/10135-icon-service-Managed-Database.svg +1 -0
  191. package/apps/diagramming/public/azure-icons/databases/10136-icon-service-SQL-Managed-Instance.svg +1 -0
  192. package/apps/diagramming/public/azure-icons/databases/10137-icon-service-Azure-SQL-Server-Stretch-Databases.svg +1 -0
  193. package/apps/diagramming/public/azure-icons/databases/10137-icon-service-Cache-Redis.svg +1 -0
  194. package/apps/diagramming/public/azure-icons/databases/10139-icon-service-Instance-Pools.svg +1 -0
  195. package/apps/diagramming/public/azure-icons/databases/10145-icon-service-Azure-Data-Explorer-Clusters.svg +1 -0
  196. package/apps/diagramming/public/azure-icons/databases/10351-icon-service-SQL-Server-Registries.svg +1 -0
  197. package/apps/diagramming/public/azure-icons/networking/00056-icon-service-CDN-Profiles.svg +1 -0
  198. package/apps/diagramming/public/azure-icons/networking/00271-icon-service-Azure-Firewall-Manager.svg +1 -0
  199. package/apps/diagramming/public/azure-icons/networking/00272-icon-service-Azure-Firewall-Policy.svg +1 -0
  200. package/apps/diagramming/public/azure-icons/networking/00427-icon-service-Private-Link.svg +1 -0
  201. package/apps/diagramming/public/azure-icons/networking/00701-icon-service-IP-Groups.svg +1 -0
  202. package/apps/diagramming/public/azure-icons/networking/00860-icon-service-Virtual-WAN-Hub.svg +1 -0
  203. package/apps/diagramming/public/azure-icons/networking/01105-icon-service-Private-Link-Service.svg +1 -0
  204. package/apps/diagramming/public/azure-icons/networking/02145-icon-service-Resource-Management-Private-Link.svg +2 -0
  205. package/apps/diagramming/public/azure-icons/networking/02209-icon-service-Private-Link-Services.svg +1 -0
  206. package/apps/diagramming/public/azure-icons/networking/02302-icon-service-Load-Balancer-Hub.svg +1 -0
  207. package/apps/diagramming/public/azure-icons/networking/02422-icon-service-Bastions.svg +1 -0
  208. package/apps/diagramming/public/azure-icons/networking/02496-icon-service-Virtual-Router.svg +1 -0
  209. package/apps/diagramming/public/azure-icons/networking/02509-icon-service-Connected-Cache.svg +1 -0
  210. package/apps/diagramming/public/azure-icons/networking/02692-icon-service-Spot-VMSS.svg +1 -0
  211. package/apps/diagramming/public/azure-icons/networking/02695-icon-service-Spot-VM.svg +1 -0
  212. package/apps/diagramming/public/azure-icons/networking/02742-icon-service-Subnet.svg +1 -0
  213. package/apps/diagramming/public/azure-icons/networking/02882-icon-service-DNS-Private-Resolver.svg +1 -0
  214. package/apps/diagramming/public/azure-icons/networking/03311-icon-service-Azure-Communications-Gateway.svg +1 -0
  215. package/apps/diagramming/public/azure-icons/networking/03328-icon-service-Application-Gateway-Containers.svg +1 -0
  216. package/apps/diagramming/public/azure-icons/networking/03368-icon-service-DNS-Security-Policy.svg +1 -0
  217. package/apps/diagramming/public/azure-icons/networking/03459-icon-service-DNS-Multistack.svg +1 -0
  218. package/apps/diagramming/public/azure-icons/networking/03460-icon-service-ATM-Multistack.svg +1 -0
  219. package/apps/diagramming/public/azure-icons/networking/03461-icon-service-IP-Address-manager.svg +1 -0
  220. package/apps/diagramming/public/azure-icons/networking/10061-icon-service-Virtual-Networks.svg +1 -0
  221. package/apps/diagramming/public/azure-icons/networking/10062-icon-service-Load-Balancers.svg +1 -0
  222. package/apps/diagramming/public/azure-icons/networking/10063-icon-service-Virtual-Network-Gateways.svg +1 -0
  223. package/apps/diagramming/public/azure-icons/networking/10064-icon-service-DNS-Zones.svg +1 -0
  224. package/apps/diagramming/public/azure-icons/networking/10065-icon-service-Traffic-Manager-Profiles.svg +1 -0
  225. package/apps/diagramming/public/azure-icons/networking/10066-icon-service-Network-Watcher.svg +1 -0
  226. package/apps/diagramming/public/azure-icons/networking/10067-icon-service-Network-Security-Groups.svg +1 -0
  227. package/apps/diagramming/public/azure-icons/networking/10068-icon-service-Public-IP-Addresses-(Classic).svg +1 -0
  228. package/apps/diagramming/public/azure-icons/networking/10069-icon-service-Public-IP-Addresses.svg +1 -0
  229. package/apps/diagramming/public/azure-icons/networking/10070-icon-service-On-Premises-Data-Gateways.svg +1 -0
  230. package/apps/diagramming/public/azure-icons/networking/10071-icon-service-Route-Filters.svg +1 -0
  231. package/apps/diagramming/public/azure-icons/networking/10072-icon-service-DDoS-Protection-Plans.svg +1 -0
  232. package/apps/diagramming/public/azure-icons/networking/10073-icon-service-Front-Door-and-CDN-Profiles.svg +1 -0
  233. package/apps/diagramming/public/azure-icons/networking/10075-icon-service-Virtual-Networks-(Classic).svg +1 -0
  234. package/apps/diagramming/public/azure-icons/networking/10076-icon-service-Application-Gateways.svg +1 -0
  235. package/apps/diagramming/public/azure-icons/networking/10077-icon-service-Local-Network-Gateways.svg +1 -0
  236. package/apps/diagramming/public/azure-icons/networking/10079-icon-service-ExpressRoute-Circuits.svg +1 -0
  237. package/apps/diagramming/public/azure-icons/networking/10080-icon-service-Network-Interfaces.svg +1 -0
  238. package/apps/diagramming/public/azure-icons/networking/10081-icon-service-Connections.svg +1 -0
  239. package/apps/diagramming/public/azure-icons/networking/10082-icon-service-Route-Tables.svg +1 -0
  240. package/apps/diagramming/public/azure-icons/networking/10084-icon-service-Firewalls.svg +1 -0
  241. package/apps/diagramming/public/azure-icons/networking/10085-icon-service-Service-Endpoint-Policies.svg +1 -0
  242. package/apps/diagramming/public/azure-icons/networking/10310-icon-service-NAT.svg +1 -0
  243. package/apps/diagramming/public/azure-icons/networking/10353-icon-service-Virtual-WANs.svg +1 -0
  244. package/apps/diagramming/public/azure-icons/networking/10362-icon-service-Web-Application-Firewall-Policies(WAF).svg +1 -0
  245. package/apps/diagramming/public/azure-icons/networking/10365-icon-service-Proximity-Placement-Groups.svg +1 -0
  246. package/apps/diagramming/public/azure-icons/networking/10371-icon-service-Reserved-IP-Addresses-(Classic).svg +1 -0
  247. package/apps/diagramming/public/azure-icons/networking/10372-icon-service-Public-IP-Prefixes.svg +1 -0
  248. package/apps/diagramming/public/azure-icons/security/00378-icon-service-Detonation.svg +1 -0
  249. package/apps/diagramming/public/azure-icons/security/02247-icon-service-Microsoft-Defender-for-IoT.svg +2 -0
  250. package/apps/diagramming/public/azure-icons/security/03336-icon-service-Microsoft-Defender-EASM.svg +1 -0
  251. package/apps/diagramming/public/azure-icons/security/03340-icon-service-Identity-Secure-Score.svg +1 -0
  252. package/apps/diagramming/public/azure-icons/security/03341-icon-service-Entra-Identity-Risky-Signins.svg +1 -0
  253. package/apps/diagramming/public/azure-icons/security/03342-icon-service-Entra-Identity-Risky-Users.svg +1 -0
  254. package/apps/diagramming/public/azure-icons/security/03344-icon-service-Multifactor-Authentication.svg +1 -0
  255. package/apps/diagramming/public/azure-icons/security/10229-icon-service-Azure-Information-Protection.svg +1 -0
  256. package/apps/diagramming/public/azure-icons/security/10233-icon-service-Conditional-Access.svg +1 -0
  257. package/apps/diagramming/public/azure-icons/security/10241-icon-service-Microsoft-Defender-for-Cloud.svg +1 -0
  258. package/apps/diagramming/public/azure-icons/security/10244-icon-service-Application-Security-Groups.svg +1 -0
  259. package/apps/diagramming/public/azure-icons/security/10245-icon-service-Key-Vaults.svg +1 -0
  260. package/apps/diagramming/public/azure-icons/security/10248-icon-service-Azure-Sentinel.svg +1 -0
  261. package/apps/diagramming/public/azure-icons/security/10433-icon-service-User-Settings.svg +1 -0
  262. package/apps/diagramming/public/azure-icons/security/10572-icon-service-ExtendedSecurityUpdates.svg +1 -0
  263. package/apps/diagramming/public/azure-icons/storage/00017-icon-service-Recovery-Services-Vaults.svg +1 -0
  264. package/apps/diagramming/public/azure-icons/storage/00691-icon-service-Azure-Databox-Gateway.svg +1 -0
  265. package/apps/diagramming/public/azure-icons/storage/00776-icon-service-Azure-HCP-Cache.svg +1 -0
  266. package/apps/diagramming/public/azure-icons/storage/03502-icon-service-Storage-Actions.svg +1 -0
  267. package/apps/diagramming/public/azure-icons/storage/03549-icon-service-Managed-File-Shares.svg +1 -0
  268. package/apps/diagramming/public/azure-icons/storage/10086-icon-service-Storage-Accounts.svg +1 -0
  269. package/apps/diagramming/public/azure-icons/storage/10087-icon-service-Storage-Accounts-(Classic).svg +1 -0
  270. package/apps/diagramming/public/azure-icons/storage/10089-icon-service-StorSimple-Device-Managers.svg +1 -0
  271. package/apps/diagramming/public/azure-icons/storage/10090-icon-service-Data-Lake-Storage-Gen1.svg +1 -0
  272. package/apps/diagramming/public/azure-icons/storage/10091-icon-service-Storage-Explorer.svg +1 -0
  273. package/apps/diagramming/public/azure-icons/storage/10092-icon-service-StorSimple-Data-Managers.svg +1 -0
  274. package/apps/diagramming/public/azure-icons/storage/10093-icon-service-Storage-Sync-Services.svg +1 -0
  275. package/apps/diagramming/public/azure-icons/storage/10094-icon-service-Data-Box.svg +1 -0
  276. package/apps/diagramming/public/azure-icons/storage/10095-icon-service-Azure-Stack-Edge.svg +1 -0
  277. package/apps/diagramming/public/azure-icons/storage/10096-icon-service-Azure-NetApp-Files.svg +1 -0
  278. package/apps/diagramming/public/azure-icons/storage/10097-icon-service-Data-Share-Invitations.svg +1 -0
  279. package/apps/diagramming/public/azure-icons/storage/10098-icon-service-Data-Shares.svg +1 -0
  280. package/apps/diagramming/public/azure-icons/storage/10100-icon-service-Import-Export-Jobs.svg +1 -0
  281. package/apps/diagramming/public/azure-icons/storage/10400-icon-service-Azure-Fileshares.svg +1 -0
  282. package/apps/diagramming/public/block.png +0 -0
  283. package/apps/diagramming/public/common/users.svg +7 -0
  284. package/apps/diagramming/public/favicon.ico +0 -0
  285. package/apps/diagramming/public/gcp-icons/compute/appengine.svg +1 -0
  286. package/apps/diagramming/public/gcp-icons/compute/cloud-functions.svg +1 -0
  287. package/apps/diagramming/public/gcp-icons/compute/cloud-gpu.svg +1 -0
  288. package/apps/diagramming/public/gcp-icons/compute/compute-engine.svg +1 -0
  289. package/apps/diagramming/public/gcp-icons/compute/container-optimized-os.svg +1 -0
  290. package/apps/diagramming/public/gcp-icons/database&storage/cloud-bigtable.svg +1 -0
  291. package/apps/diagramming/public/gcp-icons/database&storage/cloud-spanner.svg +1 -0
  292. package/apps/diagramming/public/gcp-icons/database&storage/cloud-sql.svg +1 -0
  293. package/apps/diagramming/public/gcp-icons/database&storage/cloud-storage.svg +1 -0
  294. package/apps/diagramming/public/gcp-icons/database&storage/filestore.svg +1 -0
  295. package/apps/diagramming/public/gcp-icons/networking/cloud-cdn.svg +1 -0
  296. package/apps/diagramming/public/gcp-icons/networking/cloud-dns.svg +1 -0
  297. package/apps/diagramming/public/gcp-icons/networking/cloud-firewall-rules.svg +1 -0
  298. package/apps/diagramming/public/gcp-icons/networking/cloud-interconnect.svg +1 -0
  299. package/apps/diagramming/public/gcp-icons/networking/cloud-load-balancing.svg +1 -0
  300. package/apps/diagramming/public/gcp-icons/networking/cloud-network.svg +1 -0
  301. package/apps/diagramming/public/gcp-icons/networking/cloud-router.svg +1 -0
  302. package/apps/diagramming/public/gcp-icons/networking/cloud-routes.svg +1 -0
  303. package/apps/diagramming/public/gcp-icons/networking/cloud-vpn.svg +1 -0
  304. package/apps/diagramming/public/gcp-icons/networking/virtual-private-cloud.svg +1 -0
  305. package/apps/diagramming/public/gcp-icons/security/beyondcorp.svg +1 -0
  306. package/apps/diagramming/public/gcp-icons/security/data-loss-prevention-api.svg +1 -0
  307. package/apps/diagramming/public/gcp-icons/security/iam.svg +1 -0
  308. package/apps/diagramming/public/gcp-icons/security/key-access-justifications.svg +1 -0
  309. package/apps/diagramming/public/gcp-icons/security/security-command-center.svg +1 -0
  310. package/apps/diagramming/public/gcp-icons/security/web-security-scanner.svg +1 -0
  311. package/apps/diagramming/public/sample-node-complete.json +63 -0
  312. package/apps/diagramming/public/sample-node-data.json +63 -0
  313. package/apps/diagramming/public/text.png +0 -0
  314. package/apps/diagramming/src/AutomationDiagramData.ts +541 -0
  315. package/apps/diagramming/src/CollaborationDiagramData.ts +127 -0
  316. package/apps/diagramming/src/CustomIconExamples.ts +233 -0
  317. package/apps/diagramming/src/DiagramTabs.tsx +205 -0
  318. package/apps/diagramming/src/Pages/DevPlayground.tsx +3 -0
  319. package/apps/diagramming/src/Pages/Home.tsx +112 -0
  320. package/apps/diagramming/src/SequenceDiagramData.ts +215 -0
  321. package/apps/diagramming/src/StateMachineDiagramData.ts +64 -0
  322. package/apps/diagramming/src/UseCaseDiagramData.ts +52 -0
  323. package/apps/diagramming/src/cloud-data.ts +371 -0
  324. package/apps/diagramming/src/components/AddNodeView.tsx +252 -0
  325. package/apps/diagramming/src/createSelecors.tsx +17 -0
  326. package/apps/diagramming/src/index.scss +13 -0
  327. package/apps/diagramming/src/main.tsx +463 -0
  328. package/apps/diagramming/src/node-data.ts +664 -0
  329. package/apps/diagramming/src/sample-workflow-content.ts +54 -0
  330. package/apps/diagramming/src/stencil-items.ts +31 -0
  331. package/apps/diagramming/src/style.css +13 -0
  332. package/apps/diagramming/src/tabsStore.tsx +152 -0
  333. package/apps/diagramming/src/vite-env.d.ts +1 -0
  334. package/apps/diagramming/tsconfig.app.json +23 -0
  335. package/apps/diagramming/tsconfig.json +21 -0
  336. package/apps/diagramming/tsconfig.spec.json +28 -0
  337. package/apps/diagramming/vite.config.ts +34 -0
  338. package/apps/diagramming/webpack.config.js +13 -0
  339. package/apps/workflow/.eslintrc.json +18 -0
  340. package/apps/workflow/group/group-form-hooks/index.ts +3 -0
  341. package/apps/workflow/group/group-form-hooks/useFormValidation.ts +20 -0
  342. package/apps/workflow/group/group-form-schema/SettingsTabFormSchema.ts +7 -0
  343. package/apps/workflow/group/group-form-schema/index.ts +3 -0
  344. package/apps/workflow/i18n.ts +19 -0
  345. package/apps/workflow/index.html +16 -0
  346. package/apps/workflow/locales/en/translation.json +713 -0
  347. package/apps/workflow/project.json +8 -0
  348. package/apps/workflow/public/favicon.ico +0 -0
  349. package/apps/workflow/src/app/app.module.css +1 -0
  350. package/apps/workflow/src/app/app.spec.tsx +15 -0
  351. package/apps/workflow/src/app/app.tsx +370 -0
  352. package/apps/workflow/src/assets/.gitkeep +0 -0
  353. package/apps/workflow/src/main.tsx +13 -0
  354. package/apps/workflow/src/styles.css +1 -0
  355. package/apps/workflow/src/theme/index.ts +546 -0
  356. package/apps/workflow/tsconfig.app.json +23 -0
  357. package/apps/workflow/tsconfig.json +21 -0
  358. package/apps/workflow/tsconfig.spec.json +28 -0
  359. package/apps/workflow/vite.config.ts +51 -0
  360. package/nx.json +58 -0
  361. package/package.json +116 -0
  362. package/packages/api/.babelrc +12 -0
  363. package/packages/api/.eslintrc.json +18 -0
  364. package/packages/api/README.md +7 -0
  365. package/packages/api/project.json +8 -0
  366. package/packages/api/src/index.ts +3 -0
  367. package/packages/api/src/lib/jsonPlaceholderService/endpoints.ts +3 -0
  368. package/packages/api/src/lib/jsonPlaceholderService/service.ts +13 -0
  369. package/packages/api/tsconfig.json +17 -0
  370. package/packages/api/tsconfig.lib.json +24 -0
  371. package/packages/atoms/.babelrc +12 -0
  372. package/packages/atoms/.eslintrc.json +18 -0
  373. package/packages/atoms/README.md +7 -0
  374. package/packages/atoms/forms/AuthenticationTabForm/authenticationTabForm.json +224 -0
  375. package/packages/atoms/forms/AuthenticationTabForm/index.tsx +255 -0
  376. package/packages/atoms/forms/SettingsTabForm/index.tsx +85 -0
  377. package/packages/atoms/forms/SettingsTabForm/settingTabForm.json +27 -0
  378. package/packages/atoms/forms/index.ts +4 -0
  379. package/packages/atoms/project.json +8 -0
  380. package/packages/atoms/src/index.ts +33 -0
  381. package/packages/atoms/src/lib/Accordion/Accordion.module.css +7 -0
  382. package/packages/atoms/src/lib/Accordion/Accordion.spec.tsx +13 -0
  383. package/packages/atoms/src/lib/Accordion/Accordion.tsx +29 -0
  384. package/packages/atoms/src/lib/Alert/Alert.module.css +7 -0
  385. package/packages/atoms/src/lib/Alert/Alert.spec.tsx +10 -0
  386. package/packages/atoms/src/lib/Alert/Alert.tsx +19 -0
  387. package/packages/atoms/src/lib/Avatar/Avatar.module.css +7 -0
  388. package/packages/atoms/src/lib/Avatar/Avatar.spec.tsx +10 -0
  389. package/packages/atoms/src/lib/Avatar/Avatar.tsx +22 -0
  390. package/packages/atoms/src/lib/Box/Box.module.css +7 -0
  391. package/packages/atoms/src/lib/Box/Box.spec.tsx +10 -0
  392. package/packages/atoms/src/lib/Box/Box.tsx +19 -0
  393. package/packages/atoms/src/lib/BulkEdit/BulkEdit.module.css +7 -0
  394. package/packages/atoms/src/lib/BulkEdit/BulkEdit.spec.tsx +10 -0
  395. package/packages/atoms/src/lib/BulkEdit/BulkEdit.tsx +15 -0
  396. package/packages/atoms/src/lib/Button/Button.module.css +7 -0
  397. package/packages/atoms/src/lib/Button/Button.spec.tsx +10 -0
  398. package/packages/atoms/src/lib/Button/Button.tsx +78 -0
  399. package/packages/atoms/src/lib/Card/Card.module.css +7 -0
  400. package/packages/atoms/src/lib/Card/Card.spec.tsx +10 -0
  401. package/packages/atoms/src/lib/Card/Card.tsx +19 -0
  402. package/packages/atoms/src/lib/CardContent/CardContent.module.css +7 -0
  403. package/packages/atoms/src/lib/CardContent/CardContent.spec.tsx +10 -0
  404. package/packages/atoms/src/lib/CardContent/CardContent.tsx +22 -0
  405. package/packages/atoms/src/lib/FormTextField/FormTextField.module.css +7 -0
  406. package/packages/atoms/src/lib/FormTextField/FormTextField.spec.tsx +10 -0
  407. package/packages/atoms/src/lib/FormTextField/FormTextField.tsx +35 -0
  408. package/packages/atoms/src/lib/Grid/Grid.module.css +7 -0
  409. package/packages/atoms/src/lib/Grid/Grid.spec.tsx +10 -0
  410. package/packages/atoms/src/lib/Grid/Grid.tsx +19 -0
  411. package/packages/atoms/src/lib/Stack/Stack.module.css +7 -0
  412. package/packages/atoms/src/lib/Stack/Stack.spec.tsx +10 -0
  413. package/packages/atoms/src/lib/Stack/Stack.tsx +19 -0
  414. package/packages/atoms/src/lib/Switch/Switch.module.css +7 -0
  415. package/packages/atoms/src/lib/Switch/Switch.spec.tsx +10 -0
  416. package/packages/atoms/src/lib/Switch/Switch.tsx +46 -0
  417. package/packages/atoms/src/lib/TableView/TableView.module.css +7 -0
  418. package/packages/atoms/src/lib/TableView/TableView.spec.tsx +10 -0
  419. package/packages/atoms/src/lib/TableView/TableView.tsx +88 -0
  420. package/packages/atoms/src/lib/TextField/TextField.module.css +7 -0
  421. package/packages/atoms/src/lib/TextField/TextField.spec.tsx +10 -0
  422. package/packages/atoms/src/lib/TextField/TextField.tsx +17 -0
  423. package/packages/atoms/src/lib/Typography/Typography.module.css +7 -0
  424. package/packages/atoms/src/lib/Typography/Typography.spec.tsx +10 -0
  425. package/packages/atoms/src/lib/Typography/Typography.tsx +22 -0
  426. package/packages/atoms/tsconfig.json +17 -0
  427. package/packages/atoms/tsconfig.lib.json +30 -0
  428. package/packages/common/.babelrc +12 -0
  429. package/packages/common/.eslintrc.json +18 -0
  430. package/packages/common/README.md +7 -0
  431. package/packages/common/project.json +8 -0
  432. package/packages/common/src/index.ts +4 -0
  433. package/packages/common/src/lib/generateRandomProfilePic.ts +3 -0
  434. package/packages/common/src/lib/generateValidationSchema.ts +46 -0
  435. package/packages/common/tsconfig.json +17 -0
  436. package/packages/common/tsconfig.lib.json +24 -0
  437. package/packages/contexts/.babelrc +12 -0
  438. package/packages/contexts/.eslintrc.json +18 -0
  439. package/packages/contexts/README.md +7 -0
  440. package/packages/contexts/project.json +8 -0
  441. package/packages/contexts/src/index.ts +2 -0
  442. package/packages/contexts/tsconfig.json +17 -0
  443. package/packages/contexts/tsconfig.lib.json +24 -0
  444. package/packages/diagrams/.babelrc +12 -0
  445. package/packages/diagrams/.ctirc +208 -0
  446. package/packages/diagrams/.eslintrc.json +17 -0
  447. package/packages/diagrams/CUSTOM_ICONS.md +232 -0
  448. package/packages/diagrams/GOOGLE_SHEETS_IMPLEMENTATION.md +233 -0
  449. package/packages/diagrams/NODE_DATA_UPDATE_API.md +430 -0
  450. package/packages/diagrams/README.md +7 -0
  451. package/packages/diagrams/UNDO_REDO_API.md +306 -0
  452. package/packages/diagrams/package.json +45 -0
  453. package/packages/diagrams/project.json +38 -0
  454. package/packages/diagrams/rollup.config.js +31 -0
  455. package/packages/diagrams/src/DiagramFlow.tsx +7 -0
  456. package/packages/diagrams/src/declarations.d.ts +7 -0
  457. package/packages/diagrams/src/index.ts +113 -0
  458. package/packages/diagrams/src/index.ts.bak +99 -0
  459. package/packages/diagrams/src/lib/assets/markers/markers.param.tsx +101 -0
  460. package/packages/diagrams/src/lib/assets/markers/markers.type.ts +10 -0
  461. package/packages/diagrams/src/lib/atoms/ActorNode.tsx +124 -0
  462. package/packages/diagrams/src/lib/atoms/AddNodeAnchor.tsx +97 -0
  463. package/packages/diagrams/src/lib/atoms/AddParallelColButton.tsx +26 -0
  464. package/packages/diagrams/src/lib/atoms/BendpointNode.tsx +71 -0
  465. package/packages/diagrams/src/lib/atoms/CardBlockTypeSelector.tsx +35 -0
  466. package/packages/diagrams/src/lib/atoms/CardEditableTitle.tsx +76 -0
  467. package/packages/diagrams/src/lib/atoms/CardMainContent.tsx +19 -0
  468. package/packages/diagrams/src/lib/atoms/ContentAssist.tsx +341 -0
  469. package/packages/diagrams/src/lib/atoms/DiagramControls.tsx +57 -0
  470. package/packages/diagrams/src/lib/atoms/ExpressionInput.tsx +437 -0
  471. package/packages/diagrams/src/lib/atoms/FloatingConnectionLine.tsx +73 -0
  472. package/packages/diagrams/src/lib/atoms/LazyIcon.tsx +31 -0
  473. package/packages/diagrams/src/lib/atoms/MarkerSelector.tsx +106 -0
  474. package/packages/diagrams/src/lib/atoms/MultiSelectInput.tsx +87 -0
  475. package/packages/diagrams/src/lib/atoms/ParameterInput.tsx +199 -0
  476. package/packages/diagrams/src/lib/atoms/PropertyInput.tsx +114 -0
  477. package/packages/diagrams/src/lib/atoms/StyledBox.tsx +69 -0
  478. package/packages/diagrams/src/lib/atoms/ValidationError.tsx +37 -0
  479. package/packages/diagrams/src/lib/atoms/ValidationMessage.tsx +63 -0
  480. package/packages/diagrams/src/lib/components/AiButton.tsx +52 -0
  481. package/packages/diagrams/src/lib/components/ControlEdgeList.tsx +304 -0
  482. package/packages/diagrams/src/lib/components/CreateFunctionModal.tsx +265 -0
  483. package/packages/diagrams/src/lib/components/CustomCodeModal.tsx +288 -0
  484. package/packages/diagrams/src/lib/components/DiagramPanel.tsx +331 -0
  485. package/packages/diagrams/src/lib/components/FunctionModalTooltip.tsx +31 -0
  486. package/packages/diagrams/src/lib/components/GraphQLCustomCodeModal.tsx +210 -0
  487. package/packages/diagrams/src/lib/components/Header.tsx +143 -0
  488. package/packages/diagrams/src/lib/components/MiniMapCommon.tsx +24 -0
  489. package/packages/diagrams/src/lib/components/ResizeIcon.tsx +82 -0
  490. package/packages/diagrams/src/lib/components/SideBar.tsx +40 -0
  491. package/packages/diagrams/src/lib/components/automation/AutomationAISuggestionNode.tsx +241 -0
  492. package/packages/diagrams/src/lib/components/automation/AutomationApiNode.tsx +519 -0
  493. package/packages/diagrams/src/lib/components/automation/AutomationEndNode.tsx +318 -0
  494. package/packages/diagrams/src/lib/components/automation/AutomationExecutionPanel.tsx +439 -0
  495. package/packages/diagrams/src/lib/components/automation/AutomationFormattingNode.tsx +557 -0
  496. package/packages/diagrams/src/lib/components/automation/AutomationNoteNode.tsx +168 -0
  497. package/packages/diagrams/src/lib/components/automation/AutomationSheetsNode.tsx +831 -0
  498. package/packages/diagrams/src/lib/components/automation/AutomationStartNode.tsx +319 -0
  499. package/packages/diagrams/src/lib/components/automation/index.ts +8 -0
  500. package/packages/diagrams/src/lib/contexts/CardDataProvider.tsx +111 -0
  501. package/packages/diagrams/src/lib/contexts/DiagramProvider.tsx +375 -0
  502. package/packages/diagrams/src/lib/contexts/diagramStoreTypes.tsx +132 -0
  503. package/packages/diagrams/src/lib/contexts/onConnect.ts +39 -0
  504. package/packages/diagrams/src/lib/contexts/onDragStart.ts +28 -0
  505. package/packages/diagrams/src/lib/contexts/onNodeDragEnd.ts +85 -0
  506. package/packages/diagrams/src/lib/contexts/onNodesChange.ts +385 -0
  507. package/packages/diagrams/src/lib/contexts/onWorkflowNodeDelete.ts +65 -0
  508. package/packages/diagrams/src/lib/contexts/setContentHeight.ts +14 -0
  509. package/packages/diagrams/src/lib/contexts/setDiagramType.ts +10 -0
  510. package/packages/diagrams/src/lib/contexts/setEdgeShapeType.ts +7 -0
  511. package/packages/diagrams/src/lib/contexts/setEdges.ts +9 -0
  512. package/packages/diagrams/src/lib/contexts/setLayoutDirection.ts +9 -0
  513. package/packages/diagrams/src/lib/contexts/setNodeSetting.ts +17 -0
  514. package/packages/diagrams/src/lib/contexts/setNodes.ts +10 -0
  515. package/packages/diagrams/src/lib/contexts/setPannable.ts +7 -0
  516. package/packages/diagrams/src/lib/contexts/setSelectedEdge.ts +7 -0
  517. package/packages/diagrams/src/lib/contexts/setSelectedNode.ts +7 -0
  518. package/packages/diagrams/src/lib/contexts/undo.ts +163 -0
  519. package/packages/diagrams/src/lib/contexts/updateNodeSetting.ts +17 -0
  520. package/packages/diagrams/src/lib/examples/GoogleSheetsConfigurationExamples.ts +306 -0
  521. package/packages/diagrams/src/lib/examples/TwilioWhatsAppConfigExample.ts +128 -0
  522. package/packages/diagrams/src/lib/externals.ts +4 -0
  523. package/packages/diagrams/src/lib/hooks/customUseReactFlow.tsx +90 -0
  524. package/packages/diagrams/src/lib/hooks/updateNodes.ts +45 -0
  525. package/packages/diagrams/src/lib/hooks/useAddChildButton.tsx +61 -0
  526. package/packages/diagrams/src/lib/hooks/useAddSwitchCase.ts +75 -0
  527. package/packages/diagrams/src/lib/hooks/useAutoRegisterFunctions.ts +135 -0
  528. package/packages/diagrams/src/lib/hooks/useAutoRegisterVariables.ts +286 -0
  529. package/packages/diagrams/src/lib/hooks/useDeleteNodeByEvent.ts +64 -0
  530. package/packages/diagrams/src/lib/hooks/useDragCallbacks.tsx +122 -0
  531. package/packages/diagrams/src/lib/hooks/useFormValidation.ts +349 -0
  532. package/packages/diagrams/src/lib/hooks/useFunctionFormCallbacks.ts +136 -0
  533. package/packages/diagrams/src/lib/hooks/useIsSelectedNode.ts +11 -0
  534. package/packages/diagrams/src/lib/hooks/useModalControls.ts +13 -0
  535. package/packages/diagrams/src/lib/hooks/useNodeDragHandlers.ts +43 -0
  536. package/packages/diagrams/src/lib/hooks/useNodeSelection.ts +55 -0
  537. package/packages/diagrams/src/lib/hooks/useRenderDividers.tsx +20 -0
  538. package/packages/diagrams/src/lib/hooks/useRenderPins.tsx +75 -0
  539. package/packages/diagrams/src/lib/hooks/useResizeObserver.ts +21 -0
  540. package/packages/diagrams/src/lib/hooks/useTreeChildNode.ts +536 -0
  541. package/packages/diagrams/src/lib/hooks/useWorkflowNodeActiont.ts +384 -0
  542. package/packages/diagrams/src/lib/molecules/AddingBlock.tsx +147 -0
  543. package/packages/diagrams/src/lib/molecules/AvailableVariablesDisplay.tsx +57 -0
  544. package/packages/diagrams/src/lib/molecules/Block.tsx +143 -0
  545. package/packages/diagrams/src/lib/molecules/BlockProvider.tsx +28 -0
  546. package/packages/diagrams/src/lib/molecules/BlockWrapper.tsx +14 -0
  547. package/packages/diagrams/src/lib/molecules/ConditionRule.tsx +132 -0
  548. package/packages/diagrams/src/lib/molecules/DraggablePane.tsx +198 -0
  549. package/packages/diagrams/src/lib/molecules/EntityNodeBlocks.tsx +66 -0
  550. package/packages/diagrams/src/lib/molecules/SideHandles.tsx +50 -0
  551. package/packages/diagrams/src/lib/molecules/StencilItem.tsx +85 -0
  552. package/packages/diagrams/src/lib/molecules/WorkflowNodeActionButtons.tsx +62 -0
  553. package/packages/diagrams/src/lib/molecules/animated-add-button.tsx +83 -0
  554. package/packages/diagrams/src/lib/molecules/json-viewer.tsx +107 -0
  555. package/packages/diagrams/src/lib/organisms/AddNodeView.tsx +102 -0
  556. package/packages/diagrams/src/lib/organisms/Card/EntityNode.tsx +259 -0
  557. package/packages/diagrams/src/lib/organisms/Card/card.params.ts +29 -0
  558. package/packages/diagrams/src/lib/organisms/Card/card.types.ts +5 -0
  559. package/packages/diagrams/src/lib/organisms/CodeModal.tsx +105 -0
  560. package/packages/diagrams/src/lib/organisms/ConditionRuleGroup.tsx +139 -0
  561. package/packages/diagrams/src/lib/organisms/CustomEdge/EdgeMarkers.tsx +51 -0
  562. package/packages/diagrams/src/lib/organisms/CustomEdge/custom-edge-generator.tsx +130 -0
  563. package/packages/diagrams/src/lib/organisms/CustomEdge/custom-edge.params.ts +6 -0
  564. package/packages/diagrams/src/lib/organisms/CustomEdge/custom-edge.type.ts +15 -0
  565. package/packages/diagrams/src/lib/organisms/CustomEdge/useCreateBendPoint.tsx +119 -0
  566. package/packages/diagrams/src/lib/organisms/CustomEdge/useEdgeModal.ts +37 -0
  567. package/packages/diagrams/src/lib/organisms/CustomEdge/useEdgePath.tsx +99 -0
  568. package/packages/diagrams/src/lib/organisms/DownloadPanel.tsx +345 -0
  569. package/packages/diagrams/src/lib/organisms/EdgeModal.tsx +243 -0
  570. package/packages/diagrams/src/lib/organisms/HistoryPane.tsx +118 -0
  571. package/packages/diagrams/src/lib/organisms/NodeContextMenu.tsx +259 -0
  572. package/packages/diagrams/src/lib/organisms/PropertiesPane.tsx +276 -0
  573. package/packages/diagrams/src/lib/organisms/SmartDynamicForm.tsx +226 -0
  574. package/packages/diagrams/src/lib/organisms/Stencil.tsx +60 -0
  575. package/packages/diagrams/src/lib/organisms/UseDiagramStore.tsx +4 -0
  576. package/packages/diagrams/src/lib/organisms/WorkFlowNode/NodeActionButtons.tsx +45 -0
  577. package/packages/diagrams/src/lib/organisms/WorkFlowNode/NodeTypeDisplay.tsx +26 -0
  578. package/packages/diagrams/src/lib/organisms/WorkflowNode.tsx +484 -0
  579. package/packages/diagrams/src/lib/services/GoogleSheetsService.ts +961 -0
  580. package/packages/diagrams/src/lib/services/SlackService.ts +134 -0
  581. package/packages/diagrams/src/lib/services/TwilioWhatsAppService.ts +273 -0
  582. package/packages/diagrams/src/lib/styles.css +3 -0
  583. package/packages/diagrams/src/lib/templates/DiagramContainer.tsx +17 -0
  584. package/packages/diagrams/src/lib/templates/DiagramContent.tsx +310 -0
  585. package/packages/diagrams/src/lib/templates/Diagramming.tsx +178 -0
  586. package/packages/diagrams/src/lib/templates/PageLinks.tsx +13 -0
  587. package/packages/diagrams/src/lib/templates/arch/ArchDiagram.tsx +793 -0
  588. package/packages/diagrams/src/lib/templates/arch/components/EdgeDialog.tsx +83 -0
  589. package/packages/diagrams/src/lib/templates/arch/components/EdgeSettings.tsx +82 -0
  590. package/packages/diagrams/src/lib/templates/arch/components/GroupControls.tsx +60 -0
  591. package/packages/diagrams/src/lib/templates/arch/components/GroupSizeDialog.tsx +82 -0
  592. package/packages/diagrams/src/lib/templates/arch/components/NodeDialog.tsx +215 -0
  593. package/packages/diagrams/src/lib/templates/arch/components/nodeTypes.ts +92 -0
  594. package/packages/diagrams/src/lib/templates/arch/controls/ArchDiagramControls.tsx +350 -0
  595. package/packages/diagrams/src/lib/templates/arch/data/templatee-data.ts +213 -0
  596. package/packages/diagrams/src/lib/templates/cloud-arch/components/CloudArchitectureDiagram.tsx +3912 -0
  597. package/packages/diagrams/src/lib/templates/cloud-arch/components/FormatConverter.tsx +810 -0
  598. package/packages/diagrams/src/lib/templates/cloud-arch/components/FragmentImporter.tsx +277 -0
  599. package/packages/diagrams/src/lib/templates/cloud-arch/components/PropertiesPanel.tsx +1063 -0
  600. package/packages/diagrams/src/lib/templates/cloud-arch/components/ServiceIconPicker.tsx +138 -0
  601. package/packages/diagrams/src/lib/templates/cloud-arch/components/SettingsSidebar.tsx +657 -0
  602. package/packages/diagrams/src/lib/templates/cloud-arch/components/SubnetSelector.tsx +469 -0
  603. package/packages/diagrams/src/lib/templates/cloud-arch/components/nodes/ServiceNode.tsx +310 -0
  604. package/packages/diagrams/src/lib/templates/cloud-arch/components/nodes/SubnetNode.tsx +475 -0
  605. package/packages/diagrams/src/lib/templates/cloud-arch/components/nodes/UsersNode.tsx +278 -0
  606. package/packages/diagrams/src/lib/templates/cloud-arch/data/diagramManager.ts +365 -0
  607. package/packages/diagrams/src/lib/templates/cloud-arch/data/types.ts +184 -0
  608. package/packages/diagrams/src/lib/templates/cloud-arch/integration/diagramValidator.ts +379 -0
  609. package/packages/diagrams/src/lib/templates/cloud-arch/messages/errorMessages.json +96 -0
  610. package/packages/diagrams/src/lib/templates/cloud-arch/types/localization.ts +369 -0
  611. package/packages/diagrams/src/lib/templates/cloud-arch/types/validation.ts +73 -0
  612. package/packages/diagrams/src/lib/templates/cloud-arch/utils/aws-icons.ts +558 -0
  613. package/packages/diagrams/src/lib/templates/cloud-arch/utils/awsValidation.ts +447 -0
  614. package/packages/diagrams/src/lib/templates/cloud-arch/utils/azure-icons.ts +803 -0
  615. package/packages/diagrams/src/lib/templates/cloud-arch/utils/azureValidation.ts +496 -0
  616. package/packages/diagrams/src/lib/templates/cloud-arch/utils/cloudValidation.ts +930 -0
  617. package/packages/diagrams/src/lib/templates/cloud-arch/utils/errorMessages.ts +284 -0
  618. package/packages/diagrams/src/lib/templates/cloud-arch/utils/gcp-icons.ts +187 -0
  619. package/packages/diagrams/src/lib/templates/cloud-arch/utils/gcpValidation.ts +312 -0
  620. package/packages/diagrams/src/lib/templates/cloud-arch/utils/genericValidation.ts +690 -0
  621. package/packages/diagrams/src/lib/templates/cloud-arch/utils/iconMapping.ts +384 -0
  622. package/packages/diagrams/src/lib/templates/cloud-arch/utils/idGenerator.ts +221 -0
  623. package/packages/diagrams/src/lib/templates/cloud-arch/utils/localizationManager.ts +301 -0
  624. package/packages/diagrams/src/lib/templates/cloud-arch/utils/restrictionEngine.ts +551 -0
  625. package/packages/diagrams/src/lib/templates/cloud-arch/utils/restrictionValidator.ts +401 -0
  626. package/packages/diagrams/src/lib/templates/cloud-arch/utils/serviceIcons.tsx +129 -0
  627. package/packages/diagrams/src/lib/templates/cloud-arch/utils/serviceMapping.ts +331 -0
  628. package/packages/diagrams/src/lib/templates/cloud-arch/utils/translations.ts +55 -0
  629. package/packages/diagrams/src/lib/templates/cloud-arch/utils/validationExtractor.ts +342 -0
  630. package/packages/diagrams/src/lib/templates/collaborationDiagram/CollaborationDiagram.tsx +16 -0
  631. package/packages/diagrams/src/lib/templates/collaborationDiagram/components/AddCollabEdgeDialog.tsx +182 -0
  632. package/packages/diagrams/src/lib/templates/collaborationDiagram/components/CollabLayout.ts +182 -0
  633. package/packages/diagrams/src/lib/templates/collaborationDiagram/components/CollabObjectNodeSettings.tsx +87 -0
  634. package/packages/diagrams/src/lib/templates/collaborationDiagram/components/CollaborationDiagramFlow.tsx +731 -0
  635. package/packages/diagrams/src/lib/templates/collaborationDiagram/components/DraggableEdgeLabel.tsx +124 -0
  636. package/packages/diagrams/src/lib/templates/collaborationDiagram/controls/CollaborationControls.tsx +132 -0
  637. package/packages/diagrams/src/lib/templates/collaborationDiagram/nodes/CollabEdge.tsx +171 -0
  638. package/packages/diagrams/src/lib/templates/collaborationDiagram/nodes/CollabObjectNode.tsx +179 -0
  639. package/packages/diagrams/src/lib/templates/home.style.css +16 -0
  640. package/packages/diagrams/src/lib/templates/node-forms/ApiForm.tsx +416 -0
  641. package/packages/diagrams/src/lib/templates/node-forms/CallForm.tsx +370 -0
  642. package/packages/diagrams/src/lib/templates/node-forms/ForLoopNode.tsx +313 -0
  643. package/packages/diagrams/src/lib/templates/node-forms/FunctionForm.tsx +211 -0
  644. package/packages/diagrams/src/lib/templates/node-forms/GraphQLForm.tsx +679 -0
  645. package/packages/diagrams/src/lib/templates/node-forms/IfNodeForm.tsx +97 -0
  646. package/packages/diagrams/src/lib/templates/node-forms/LetNodeForm.tsx +533 -0
  647. package/packages/diagrams/src/lib/templates/node-forms/LoopNode.tsx +149 -0
  648. package/packages/diagrams/src/lib/templates/node-forms/NodeForm.tsx +383 -0
  649. package/packages/diagrams/src/lib/templates/node-forms/ReturnNodeForm.tsx +96 -0
  650. package/packages/diagrams/src/lib/templates/node-forms/SetNodeForm.tsx +141 -0
  651. package/packages/diagrams/src/lib/templates/node-forms/SwitchNodeForm.tsx +249 -0
  652. package/packages/diagrams/src/lib/templates/node-forms/TryCatchForm.tsx +167 -0
  653. package/packages/diagrams/src/lib/templates/nodeFormSchema.json +84 -0
  654. package/packages/diagrams/src/lib/templates/sequence/SequenceDiagram.tsx +22 -0
  655. package/packages/diagrams/src/lib/templates/sequence/components/ActivationBarNode.tsx +33 -0
  656. package/packages/diagrams/src/lib/templates/sequence/components/AddMessageDialog.tsx +302 -0
  657. package/packages/diagrams/src/lib/templates/sequence/components/CombinedFragmentNode.tsx +65 -0
  658. package/packages/diagrams/src/lib/templates/sequence/components/EntitySettings.tsx +559 -0
  659. package/packages/diagrams/src/lib/templates/sequence/components/FragmentSettings.tsx +116 -0
  660. package/packages/diagrams/src/lib/templates/sequence/components/SequenceComponents.tsx +14 -0
  661. package/packages/diagrams/src/lib/templates/sequence/components/SequenceDiagramFlow.tsx +1361 -0
  662. package/packages/diagrams/src/lib/templates/sequence/components/SequenceEntityNode.tsx +394 -0
  663. package/packages/diagrams/src/lib/templates/sequence/components/SequenceMessageEdge.tsx +272 -0
  664. package/packages/diagrams/src/lib/templates/sequence/components/SimpleEntitySettings.tsx +90 -0
  665. package/packages/diagrams/src/lib/templates/sequence/controls/DiagramControls.tsx +707 -0
  666. package/packages/diagrams/src/lib/templates/sequence/data/template-data.ts +635 -0
  667. package/packages/diagrams/src/lib/templates/stateMachine/StateMachineDiagram.tsx +67 -0
  668. package/packages/diagrams/src/lib/templates/stateMachine/components/CompositeStateNodeSettings.tsx +639 -0
  669. package/packages/diagrams/src/lib/templates/stateMachine/components/CustomEdge.tsx +221 -0
  670. package/packages/diagrams/src/lib/templates/stateMachine/components/EdgeSettings.tsx +194 -0
  671. package/packages/diagrams/src/lib/templates/stateMachine/components/SelfConnectingEdge.tsx +42 -0
  672. package/packages/diagrams/src/lib/templates/stateMachine/components/StateMachineComponents.tsx +50 -0
  673. package/packages/diagrams/src/lib/templates/stateMachine/components/StateMachineDiagramFlow.tsx +1238 -0
  674. package/packages/diagrams/src/lib/templates/stateMachine/components/StateMachineLayout.ts +350 -0
  675. package/packages/diagrams/src/lib/templates/stateMachine/components/StateNodeSettings.tsx +189 -0
  676. package/packages/diagrams/src/lib/templates/stateMachine/components/useSelfTransition.ts +114 -0
  677. package/packages/diagrams/src/lib/templates/stateMachine/controls/StateDiagramControls.tsx +488 -0
  678. package/packages/diagrams/src/lib/templates/stateMachine/data/template-data.ts +4 -0
  679. package/packages/diagrams/src/lib/templates/stateMachine/nodes/ChoicePointNode.tsx +54 -0
  680. package/packages/diagrams/src/lib/templates/stateMachine/nodes/CompositeStateNode.tsx +225 -0
  681. package/packages/diagrams/src/lib/templates/stateMachine/nodes/EntryPointNode.tsx +31 -0
  682. package/packages/diagrams/src/lib/templates/stateMachine/nodes/ExitPointNode.tsx +44 -0
  683. package/packages/diagrams/src/lib/templates/stateMachine/nodes/FinalStateNode.tsx +41 -0
  684. package/packages/diagrams/src/lib/templates/stateMachine/nodes/ForkJoinNode.tsx +53 -0
  685. package/packages/diagrams/src/lib/templates/stateMachine/nodes/HistoryStateNode.tsx +36 -0
  686. package/packages/diagrams/src/lib/templates/stateMachine/nodes/InitialStateNode.tsx +29 -0
  687. package/packages/diagrams/src/lib/templates/stateMachine/nodes/JunctionPointNode.tsx +33 -0
  688. package/packages/diagrams/src/lib/templates/stateMachine/nodes/PinPointNode.tsx +112 -0
  689. package/packages/diagrams/src/lib/templates/stateMachine/nodes/StateNode.tsx +124 -0
  690. package/packages/diagrams/src/lib/templates/stateMachine/nodes/bendPoint.tsx +71 -0
  691. package/packages/diagrams/src/lib/templates/systemFlow/SystemFlowDiagram.tsx +67 -0
  692. package/packages/diagrams/src/lib/templates/systemFlow/components/EdgeSettings.tsx +330 -0
  693. package/packages/diagrams/src/lib/templates/systemFlow/components/FloatingEdge.tsx +219 -0
  694. package/packages/diagrams/src/lib/templates/systemFlow/components/SystemFlowComponents.tsx +28 -0
  695. package/packages/diagrams/src/lib/templates/systemFlow/components/SystemFlowDiagramFlow.tsx +1179 -0
  696. package/packages/diagrams/src/lib/templates/systemFlow/components/SystemFlowNodeSettings.tsx +151 -0
  697. package/packages/diagrams/src/lib/templates/systemFlow/controls/SystemFlowControls.tsx +435 -0
  698. package/packages/diagrams/src/lib/templates/systemFlow/data/template-data.ts +308 -0
  699. package/packages/diagrams/src/lib/templates/systemFlow/demo.tsx +91 -0
  700. package/packages/diagrams/src/lib/templates/systemFlow/index.ts +5 -0
  701. package/packages/diagrams/src/lib/templates/systemFlow/nodes/BendpointNode.tsx +80 -0
  702. package/packages/diagrams/src/lib/templates/systemFlow/nodes/SystemNode.tsx +92 -0
  703. package/packages/diagrams/src/lib/templates/systemFlow/nodes/TreeSystemNode.tsx +755 -0
  704. package/packages/diagrams/src/lib/templates/useCaseDiagram/UseCaseDiagram.tsx +16 -0
  705. package/packages/diagrams/src/lib/templates/useCaseDiagram/components/ActorNodeSettings.tsx +104 -0
  706. package/packages/diagrams/src/lib/templates/useCaseDiagram/components/AddRelationshipDialog.tsx +187 -0
  707. package/packages/diagrams/src/lib/templates/useCaseDiagram/components/PackageNodeSettings.tsx +206 -0
  708. package/packages/diagrams/src/lib/templates/useCaseDiagram/components/UseCaseDiagramFlow.tsx +637 -0
  709. package/packages/diagrams/src/lib/templates/useCaseDiagram/components/UseCaseNodeSettings.tsx +121 -0
  710. package/packages/diagrams/src/lib/templates/useCaseDiagram/controls/UseCaseControls.tsx +289 -0
  711. package/packages/diagrams/src/lib/templates/useCaseDiagram/nodes/PackageNode.tsx +84 -0
  712. package/packages/diagrams/src/lib/templates/useCaseDiagram/nodes/UseCaseEdge.tsx +116 -0
  713. package/packages/diagrams/src/lib/templates/useCaseDiagram/nodes/UseCaseNode.tsx +231 -0
  714. package/packages/diagrams/src/lib/templates/validationSchema.json +277 -0
  715. package/packages/diagrams/src/lib/theme.ts +439 -0
  716. package/packages/diagrams/src/lib/types/FunctionSignature.ts +11 -0
  717. package/packages/diagrams/src/lib/types/SmartDynamicFormField.ts +37 -0
  718. package/packages/diagrams/src/lib/types/automation-node-data-types.ts +295 -0
  719. package/packages/diagrams/src/lib/types/available-variables.ts +18 -0
  720. package/packages/diagrams/src/lib/types/card-node.ts +68 -0
  721. package/packages/diagrams/src/lib/types/collaboration-types.ts +114 -0
  722. package/packages/diagrams/src/lib/types/colors.ts +25 -0
  723. package/packages/diagrams/src/lib/types/condition-builder.ts +19 -0
  724. package/packages/diagrams/src/lib/types/diagram-types.ts +14 -0
  725. package/packages/diagrams/src/lib/types/edge-types.ts +22 -0
  726. package/packages/diagrams/src/lib/types/function-execution.ts +35 -0
  727. package/packages/diagrams/src/lib/types/hooks.types.ts +6 -0
  728. package/packages/diagrams/src/lib/types/ndoe-form-types.ts +139 -0
  729. package/packages/diagrams/src/lib/types/node-types.ts +29 -0
  730. package/packages/diagrams/src/lib/types/sequence-types.ts +178 -0
  731. package/packages/diagrams/src/lib/types/shared-node-types.ts +21 -0
  732. package/packages/diagrams/src/lib/types/state-machine-types.ts +225 -0
  733. package/packages/diagrams/src/lib/types/stencil-item.ts +7 -0
  734. package/packages/diagrams/src/lib/types/structures.ts +80 -0
  735. package/packages/diagrams/src/lib/types/system-flow-types.ts +129 -0
  736. package/packages/diagrams/src/lib/types/usecase-types.ts +84 -0
  737. package/packages/diagrams/src/lib/types/validation-types.ts +134 -0
  738. package/packages/diagrams/src/lib/types/workflow-content-dynamic-form-type.ts +23 -0
  739. package/packages/diagrams/src/lib/types/workflow-node-data-types.ts +172 -0
  740. package/packages/diagrams/src/lib/utils/AutomationExecutionEngine.ts +1162 -0
  741. package/packages/diagrams/src/lib/utils/add-new-block.ts +34 -0
  742. package/packages/diagrams/src/lib/utils/add-new-node.ts +52 -0
  743. package/packages/diagrams/src/lib/utils/addToHistory.ts +15 -0
  744. package/packages/diagrams/src/lib/utils/automation-flow-processor.ts +619 -0
  745. package/packages/diagrams/src/lib/utils/closestPoint.ts +45 -0
  746. package/packages/diagrams/src/lib/utils/color-options.tsx +26 -0
  747. package/packages/diagrams/src/lib/utils/compress-img.ts +59 -0
  748. package/packages/diagrams/src/lib/utils/configLoader.ts +329 -0
  749. package/packages/diagrams/src/lib/utils/constant-lengths.ts +8 -0
  750. package/packages/diagrams/src/lib/utils/create-updated.tsx +40 -0
  751. package/packages/diagrams/src/lib/utils/createHistoryChange.ts +3 -0
  752. package/packages/diagrams/src/lib/utils/dividerUtils.tsx +60 -0
  753. package/packages/diagrams/src/lib/utils/edge-hooks.ts +53 -0
  754. package/packages/diagrams/src/lib/utils/elkLayout.ts +297 -0
  755. package/packages/diagrams/src/lib/utils/event-hooks.ts +69 -0
  756. package/packages/diagrams/src/lib/utils/event-store.ts +58 -0
  757. package/packages/diagrams/src/lib/utils/flow-node-hooks.ts +28 -0
  758. package/packages/diagrams/src/lib/utils/flow-to-js.ts +1465 -0
  759. package/packages/diagrams/src/lib/utils/functionGenerator.ts +38 -0
  760. package/packages/diagrams/src/lib/utils/helpers.types.ts +10 -0
  761. package/packages/diagrams/src/lib/utils/iconMapper.tsx +76 -0
  762. package/packages/diagrams/src/lib/utils/logger.ts +5 -0
  763. package/packages/diagrams/src/lib/utils/model-hooks.ts +129 -0
  764. package/packages/diagrams/src/lib/utils/node-hooks.ts +78 -0
  765. package/packages/diagrams/src/lib/utils/nodeutils.ts +242 -0
  766. package/packages/diagrams/src/lib/utils/object.ts +13 -0
  767. package/packages/diagrams/src/lib/utils/useDebounce.ts +19 -0
  768. package/packages/diagrams/src/lib/utils/utilities.ts +105 -0
  769. package/packages/diagrams/src/lib/utils/validationEngine.ts +610 -0
  770. package/packages/diagrams/src/lib/utils/vhToPixels.ts +9 -0
  771. package/packages/diagrams/tsconfig.json +21 -0
  772. package/packages/diagrams/tsconfig.lib.json +27 -0
  773. package/packages/diagrams/webpack.config.js +17 -0
  774. package/packages/interfaces/.babelrc +12 -0
  775. package/packages/interfaces/.eslintrc.json +18 -0
  776. package/packages/interfaces/README.md +7 -0
  777. package/packages/interfaces/project.json +8 -0
  778. package/packages/interfaces/src/index.ts +21 -0
  779. package/packages/interfaces/src/lib/Button.tsx +1 -0
  780. package/packages/interfaces/src/lib/DataGrid.ts +14 -0
  781. package/packages/interfaces/src/lib/StyledBox.tsx +1 -0
  782. package/packages/interfaces/src/lib/ToolbarItem.ts +7 -0
  783. package/packages/interfaces/src/lib/UserCard.ts +8 -0
  784. package/packages/interfaces/src/lib/yup.ts +3 -0
  785. package/packages/interfaces/tsconfig.json +17 -0
  786. package/packages/interfaces/tsconfig.lib.json +24 -0
  787. package/packages/molecules/.babelrc +12 -0
  788. package/packages/molecules/.eslintrc.json +18 -0
  789. package/packages/molecules/README.md +7 -0
  790. package/packages/molecules/project.json +8 -0
  791. package/packages/molecules/src/index.ts +22 -0
  792. package/packages/molecules/src/lib/ActionTextField/ActionTextField.module.css +7 -0
  793. package/packages/molecules/src/lib/ActionTextField/ActionTextField.spec.tsx +10 -0
  794. package/packages/molecules/src/lib/ActionTextField/ActionTextField.tsx +33 -0
  795. package/packages/molecules/src/lib/ClosableButton/CloseableButton.module.css +7 -0
  796. package/packages/molecules/src/lib/ClosableButton/CloseableButton.spec.tsx +11 -0
  797. package/packages/molecules/src/lib/ClosableButton/CloseableButton.tsx +69 -0
  798. package/packages/molecules/src/lib/EditorTab/EditorTab.module.css +7 -0
  799. package/packages/molecules/src/lib/EditorTab/EditorTab.spec.tsx +10 -0
  800. package/packages/molecules/src/lib/EditorTab/EditorTab.tsx +42 -0
  801. package/packages/molecules/src/lib/EditorTab/TabPanel.tsx +25 -0
  802. package/packages/molecules/src/lib/ParamsActionField/ParamsActionField.module.css +7 -0
  803. package/packages/molecules/src/lib/ParamsActionField/ParamsActionField.spec.tsx +10 -0
  804. package/packages/molecules/src/lib/ParamsActionField/ParamsActionField.tsx +24 -0
  805. package/packages/molecules/src/lib/TableWithInlineView/TableWithInlineView.module.css +7 -0
  806. package/packages/molecules/src/lib/TableWithInlineView/TableWithInlineView.spec.tsx +10 -0
  807. package/packages/molecules/src/lib/TableWithInlineView/TableWithInlineView.tsx +47 -0
  808. package/packages/molecules/src/lib/UserCard/UserCard.module.css +7 -0
  809. package/packages/molecules/src/lib/UserCard/UserCard.spec.tsx +11 -0
  810. package/packages/molecules/src/lib/UserCard/UserCard.tsx +22 -0
  811. package/packages/molecules/src/lib/VerbSelection/HTTPVerbSelection.module.css +7 -0
  812. package/packages/molecules/src/lib/VerbSelection/HTTPVerbSelection.spec.tsx +10 -0
  813. package/packages/molecules/src/lib/VerbSelection/HTTPVerbSelection.tsx +72 -0
  814. package/packages/molecules/tsconfig.json +17 -0
  815. package/packages/molecules/tsconfig.lib.json +30 -0
  816. package/packages/organisms/.babelrc +12 -0
  817. package/packages/organisms/.eslintrc.json +18 -0
  818. package/packages/organisms/README.md +7 -0
  819. package/packages/organisms/project.json +8 -0
  820. package/packages/organisms/src/index.ts +4 -0
  821. package/packages/organisms/src/lib/EditorToolbar/EditorToolbar.module.css +7 -0
  822. package/packages/organisms/src/lib/EditorToolbar/EditorToolbar.spec.tsx +10 -0
  823. package/packages/organisms/src/lib/EditorToolbar/EditorToolbar.tsx +117 -0
  824. package/packages/organisms/src/lib/EditorToolbar/SortableItem.tsx +51 -0
  825. package/packages/organisms/src/lib/UserList/UserList.module.css +7 -0
  826. package/packages/organisms/src/lib/UserList/UserList.spec.tsx +11 -0
  827. package/packages/organisms/src/lib/UserList/UserList.tsx +48 -0
  828. package/packages/organisms/src/lib/UserList/store.ts +49 -0
  829. package/packages/organisms/tsconfig.json +17 -0
  830. package/packages/organisms/tsconfig.lib.json +24 -0
  831. package/packages/zustand/.babelrc +12 -0
  832. package/packages/zustand/.eslintrc.json +18 -0
  833. package/packages/zustand/README.md +7 -0
  834. package/packages/zustand/project.json +8 -0
  835. package/packages/zustand/src/index.ts +4 -0
  836. package/packages/zustand/tsconfig.json +17 -0
  837. package/packages/zustand/tsconfig.lib.json +24 -0
  838. package/tsconfig.base.json +30 -0
@@ -0,0 +1,1063 @@
1
+ import React, { useState } from 'react';
2
+ import {
3
+ Box,
4
+ Typography,
5
+ Select,
6
+ MenuItem,
7
+ Button,
8
+ FormControl,
9
+ Accordion,
10
+ AccordionSummary,
11
+ AccordionDetails,
12
+ InputBase,
13
+ InputAdornment,
14
+ Dialog,
15
+ DialogTitle,
16
+ DialogContent,
17
+ DialogActions,
18
+ FormControlLabel,
19
+ Checkbox,
20
+ ButtonGroup,
21
+ Divider,
22
+ Alert,
23
+ InputLabel,
24
+ } from '@mui/material';
25
+ import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
26
+ import SearchIcon from '@mui/icons-material/Search';
27
+ import FileDownloadIcon from '@mui/icons-material/FileDownload';
28
+ import ViewInArIcon from '@mui/icons-material/ViewInAr';
29
+ import NetworkCheckIcon from '@mui/icons-material/NetworkCheck';
30
+ import StorageIcon from '@mui/icons-material/Storage';
31
+ import TableViewIcon from '@mui/icons-material/TableView';
32
+ import SecurityIcon from '@mui/icons-material/Security';
33
+ import BuildIcon from '@mui/icons-material/Build';
34
+ import SmartToyIcon from '@mui/icons-material/SmartToy';
35
+ import AnalyticsIcon from '@mui/icons-material/Analytics';
36
+ import AppsIcon from '@mui/icons-material/Apps';
37
+ import RouterIcon from '@mui/icons-material/Router';
38
+ import SchemaIcon from '@mui/icons-material/Schema';
39
+ import DataObjectIcon from '@mui/icons-material/DataObject';
40
+ import { Node, XYPosition } from 'reactflow';
41
+ import { getServiceIcon } from '../utils/serviceIcons';
42
+ import {
43
+ AWS_SERVICE_ICONS,
44
+ AZURE_SERVICE_ICONS,
45
+ GCP_SERVICE_ICONS,
46
+ } from '../utils/iconMapping';
47
+ import { AWS_CATEGORIES } from '../utils/aws-icons';
48
+ import { AZURE_CATEGORIES } from '../utils/azure-icons';
49
+ import { GCP_CATEGORIES } from '../utils/gcp-icons';
50
+ import VpcIcon from '@mui/icons-material/AccountTree';
51
+ import SubnetIcon from '@mui/icons-material/Hub';
52
+ import AzIcon from '@mui/icons-material/Domain';
53
+ import SecurityGroupIcon from '@mui/icons-material/Security';
54
+ import SubscriptionIcon from '@mui/icons-material/Subscriptions';
55
+ import ResourceGroupIcon from '@mui/icons-material/Folder';
56
+ import VNetIcon from '@mui/icons-material/Cloud';
57
+ import ProjectIcon from '@mui/icons-material/Business';
58
+ import FolderIcon from '@mui/icons-material/FolderOpen';
59
+ import AccountIcon from '@mui/icons-material/AccountBalance';
60
+ import LocationOnIcon from '@mui/icons-material/LocationOn';
61
+ import {
62
+ extractNodeSemantics,
63
+ extractNodeRestrictions,
64
+ exportEnhancedDiagramData,
65
+ } from '../utils/validationExtractor';
66
+ import { CloudProvider } from '../types/validation';
67
+ // Import data managers and validators
68
+ import { diagramDataManager } from '../data/diagramManager';
69
+ import { diagramValidator } from '../integration/diagramValidator';
70
+
71
+ interface ServiceItem {
72
+ type: 'serviceNode' | 'subnetNode';
73
+ service: string;
74
+ label: string;
75
+ canBeChild?: boolean;
76
+ icon?: React.ReactNode;
77
+ description?: string;
78
+ }
79
+
80
+ interface PropertiesPanelProps {
81
+ onAddNode: (
82
+ type: string,
83
+ service: string,
84
+ position?: XYPosition,
85
+ cloudProvider?: 'aws' | 'azure' | 'gcp',
86
+ ) => void;
87
+ nodes: Node[];
88
+ edges?: any[];
89
+ }
90
+
91
+ type CategoryType =
92
+ | (typeof AWS_CATEGORIES)[keyof typeof AWS_CATEGORIES]
93
+ | (typeof AZURE_CATEGORIES)[keyof typeof AZURE_CATEGORIES]
94
+ | (typeof GCP_CATEGORIES)[keyof typeof GCP_CATEGORIES];
95
+
96
+ const PropertiesPanel: React.FC<PropertiesPanelProps> = ({
97
+ onAddNode,
98
+ nodes,
99
+ edges = [],
100
+ }) => {
101
+ const [selectedProvider, setSelectedProvider] = useState<
102
+ 'aws' | 'azure' | 'gcp' | ''
103
+ >('');
104
+ const [expandedProvider, setExpandedProvider] = useState<string | false>(
105
+ false,
106
+ );
107
+ const [expandedCategory, setExpandedCategory] = useState<string | false>(
108
+ false,
109
+ );
110
+ const [selectedAwsCategory, setSelectedAwsCategory] = useState<CategoryType>(
111
+ AWS_CATEGORIES.COMPUTE,
112
+ );
113
+ const [selectedAzureCategory, setSelectedAzureCategory] =
114
+ useState<CategoryType>(AZURE_CATEGORIES.COMPUTE);
115
+ const [selectedGcpCategory, setSelectedGcpCategory] =
116
+ useState<CategoryType>('Compute');
117
+ const [isExportDialogOpen, setIsExportDialogOpen] = useState(false);
118
+ const [exportOptions, setExportOptions] = useState({
119
+ includeMetadata: true,
120
+ });
121
+
122
+ const handleProviderChange =
123
+ (provider: string) =>
124
+ (event: React.SyntheticEvent, isExpanded: boolean) => {
125
+ setExpandedProvider(isExpanded ? provider : false);
126
+ };
127
+
128
+ const handleCategoryChange =
129
+ (category: string) =>
130
+ (event: React.SyntheticEvent, isExpanded: boolean) => {
131
+ setExpandedCategory(isExpanded ? category : false);
132
+ };
133
+
134
+ // Export diagram data functionality
135
+ const handleExport = () => {
136
+ const { includeMetadata } = exportOptions;
137
+
138
+ try {
139
+ // Export user diagram data only
140
+ exportDataFile(includeMetadata);
141
+ console.log('User diagram data exported successfully');
142
+
143
+ setIsExportDialogOpen(false);
144
+ } catch (error) {
145
+ console.error('Export failed:', error);
146
+ }
147
+ };
148
+
149
+
150
+
151
+ const exportDataFile = (
152
+ includeMetadata: boolean,
153
+ ) => {
154
+ try {
155
+ // Use the enhanced diagram data export function
156
+ const diagramData = exportEnhancedDiagramData(nodes, edges || []);
157
+
158
+ const finalData = includeMetadata ? diagramData : diagramData.diagram;
159
+ const content = JSON.stringify(finalData, null, 2);
160
+
161
+ downloadFile(
162
+ content,
163
+ `cloud-architecture-data.json`,
164
+ 'application/json',
165
+ );
166
+ } catch (error) {
167
+ console.error('Error exporting data:', error);
168
+ }
169
+ };
170
+
171
+ const downloadFile = (
172
+ content: string,
173
+ filename: string,
174
+ mimeType: string,
175
+ ) => {
176
+ const blob = new Blob([content], { type: mimeType });
177
+ const url = URL.createObjectURL(blob);
178
+ const link = document.createElement('a');
179
+ link.href = url;
180
+ link.download = filename;
181
+ document.body.appendChild(link);
182
+ link.click();
183
+ document.body.removeChild(link);
184
+ URL.revokeObjectURL(url);
185
+ };
186
+
187
+ // Get icon for category
188
+ const getCategoryIcon = (category: string) => {
189
+ const lowerCategory = category.toLowerCase();
190
+ if (lowerCategory.includes('container'))
191
+ return <ViewInArIcon sx={{ color: 'gray', fontSize: '18px' }} />;
192
+ if (lowerCategory.includes('network'))
193
+ return <NetworkCheckIcon sx={{ color: 'gray', fontSize: '18px' }} />;
194
+ if (lowerCategory.includes('storage'))
195
+ return <StorageIcon sx={{ color: 'gray', fontSize: '18px' }} />;
196
+ if (lowerCategory.includes('database'))
197
+ return <TableViewIcon sx={{ color: 'gray', fontSize: '18px' }} />;
198
+ if (lowerCategory.includes('security'))
199
+ return <SecurityIcon sx={{ color: 'gray', fontSize: '18px' }} />;
200
+ if (lowerCategory.includes('compute'))
201
+ return <BuildIcon sx={{ color: 'gray', fontSize: '18px' }} />;
202
+ if (lowerCategory.includes('ai') || lowerCategory.includes('ml'))
203
+ return <SmartToyIcon sx={{ color: 'gray', fontSize: '18px' }} />;
204
+ if (lowerCategory.includes('analytics'))
205
+ return <AnalyticsIcon sx={{ color: 'gray', fontSize: '18px' }} />;
206
+ if (lowerCategory.includes('application'))
207
+ return <AppsIcon sx={{ color: 'gray', fontSize: '18px' }} />;
208
+ if (lowerCategory.includes('iot'))
209
+ return <RouterIcon sx={{ color: 'gray', fontSize: '18px' }} />;
210
+ return <AppsIcon sx={{ color: 'gray', fontSize: '18px' }} />;
211
+ };
212
+
213
+ // Get categories based on selected provider
214
+ const getProviderCategories = () => {
215
+ switch (selectedProvider) {
216
+ case 'aws':
217
+ return Object.values(AWS_CATEGORIES);
218
+ case 'azure':
219
+ return Object.values(AZURE_CATEGORIES);
220
+ case 'gcp':
221
+ return Object.values(GCP_CATEGORIES);
222
+ default:
223
+ return [];
224
+ }
225
+ };
226
+
227
+ // AWS Container Nodes - Following AWS hierarchy: Account → VPC → Subnet
228
+ const awsContainerNodes: ServiceItem[] = [
229
+ {
230
+ type: 'subnetNode',
231
+ service: 'account',
232
+ label: 'AWS Account',
233
+ canBeChild: false,
234
+ icon: <AccountIcon sx={{ color: '#FF9900' }} />,
235
+ description:
236
+ 'Root container for all AWS resources - billing and access management boundary',
237
+ },
238
+ {
239
+ type: 'subnetNode',
240
+ service: 'vpc',
241
+ label: 'Virtual Private Cloud (VPC)',
242
+ canBeChild: true,
243
+ icon: <VpcIcon sx={{ color: '#FF9900' }} />,
244
+ description: 'Isolated network environment in AWS cloud',
245
+ },
246
+ {
247
+ type: 'subnetNode',
248
+ service: 'subnet',
249
+ label: 'Subnet',
250
+ canBeChild: true,
251
+ icon: <SubnetIcon sx={{ color: '#FF9900' }} />,
252
+ description: 'Range of IP addresses within a VPC',
253
+ },
254
+ {
255
+ type: 'subnetNode',
256
+ service: 'availability-zone',
257
+ label: 'Availability Zone',
258
+ canBeChild: true,
259
+ icon: <AzIcon sx={{ color: '#FF9900' }} />,
260
+ description: 'Distinct data center location within an AWS Region',
261
+ },
262
+ {
263
+ type: 'subnetNode',
264
+ service: 'local-zone',
265
+ label: 'Local Zone',
266
+ canBeChild: true,
267
+ icon: <LocationOnIcon sx={{ color: '#FF9900' }} />,
268
+ description: 'Edge location for ultra-low latency applications',
269
+ },
270
+ {
271
+ type: 'subnetNode',
272
+ service: 'security-group',
273
+ label: 'Security Group',
274
+ canBeChild: true,
275
+ icon: <SecurityGroupIcon sx={{ color: '#FF9900' }} />,
276
+ description:
277
+ 'Virtual firewall for controlling inbound and outbound traffic',
278
+ },
279
+ ];
280
+
281
+ // Azure Container Nodes - Following Azure hierarchy: Subscription → Resource Group → Virtual Network → Subnet
282
+ const azureContainerNodes: ServiceItem[] = [
283
+ {
284
+ type: 'subnetNode',
285
+ service: 'subscription',
286
+ label: 'Azure Subscription',
287
+ canBeChild: false,
288
+ icon: <SubscriptionIcon sx={{ color: '#0078D4' }} />,
289
+ description:
290
+ 'Root container for all Azure resources - billing and access management boundary',
291
+ },
292
+ {
293
+ type: 'subnetNode',
294
+ service: 'resource-group',
295
+ label: 'Resource Group',
296
+ canBeChild: true,
297
+ icon: <ResourceGroupIcon sx={{ color: '#0078D4' }} />,
298
+ description:
299
+ 'Logical container for resources that share the same lifecycle',
300
+ },
301
+ {
302
+ type: 'subnetNode',
303
+ service: 'virtual-network',
304
+ label: 'Virtual Network (VNet)',
305
+ canBeChild: true,
306
+ icon: <VNetIcon sx={{ color: '#4099FF' }} />,
307
+ description: 'Isolated network in Azure cloud - similar to AWS VPC',
308
+ },
309
+ {
310
+ type: 'subnetNode',
311
+ service: 'subnet',
312
+ label: 'Subnet',
313
+ canBeChild: true,
314
+ icon: <SubnetIcon sx={{ color: '#4099FF' }} />,
315
+ description: 'Range of IP addresses within a Virtual Network',
316
+ },
317
+ {
318
+ type: 'subnetNode',
319
+ service: 'network-security-group',
320
+ label: 'Network Security Group',
321
+ canBeChild: true,
322
+ icon: <SecurityGroupIcon sx={{ color: '#FF6347' }} />,
323
+ description: 'Virtual firewall for controlling network traffic',
324
+ },
325
+ ];
326
+
327
+ // GCP Container Nodes - Following GCP hierarchy: Project → Folder → VPC → Subnet
328
+ const gcpContainerNodes: ServiceItem[] = [
329
+ {
330
+ type: 'subnetNode',
331
+ service: 'project',
332
+ label: 'GCP Project',
333
+ canBeChild: false,
334
+ icon: <ProjectIcon sx={{ color: '#4285F4' }} />,
335
+ description:
336
+ 'Root container for all GCP resources - billing and access management boundary',
337
+ },
338
+ {
339
+ type: 'subnetNode',
340
+ service: 'folder',
341
+ label: 'Folder',
342
+ canBeChild: true,
343
+ icon: <FolderIcon sx={{ color: '#34A853' }} />,
344
+ description: 'Optional organization unit for grouping projects',
345
+ },
346
+ {
347
+ type: 'subnetNode',
348
+ service: 'vpc',
349
+ label: 'VPC Network',
350
+ canBeChild: true,
351
+ icon: <VpcIcon sx={{ color: '#4285F4' }} />,
352
+ description: 'Global virtual network in GCP - similar to AWS VPC',
353
+ },
354
+ {
355
+ type: 'subnetNode',
356
+ service: 'subnet',
357
+ label: 'Subnet',
358
+ canBeChild: true,
359
+ icon: <SubnetIcon sx={{ color: '#4285F4' }} />,
360
+ description: 'Regional IP range within a VPC Network',
361
+ },
362
+ ];
363
+
364
+ // Get services for a specific category and provider
365
+ const getServicesByCategory = (category: string) => {
366
+ if (!selectedProvider) return [];
367
+
368
+ let services: ServiceItem[] = [];
369
+ let containerNodes: ServiceItem[] = [];
370
+
371
+ switch (selectedProvider) {
372
+ case 'aws':
373
+ services = Object.entries(AWS_SERVICE_ICONS)
374
+ .filter(([_, service]) => service.category === category)
375
+ .map(([key, service]) => ({
376
+ type: 'serviceNode',
377
+ service: key,
378
+ label: service.name,
379
+ }));
380
+ containerNodes = awsContainerNodes;
381
+ break;
382
+ case 'azure':
383
+ services = Object.entries(AZURE_SERVICE_ICONS)
384
+ .filter(([_, service]) => service.category === category)
385
+ .map(([key, service]) => ({
386
+ type: 'serviceNode',
387
+ service: key,
388
+ label: service.name,
389
+ }));
390
+ containerNodes = azureContainerNodes;
391
+ break;
392
+ case 'gcp':
393
+ services = Object.entries(GCP_SERVICE_ICONS)
394
+ .filter(([_, service]) => service.category === category)
395
+ .map(([key, service]) => ({
396
+ type: 'serviceNode',
397
+ service: key,
398
+ label: service.name,
399
+ }));
400
+ containerNodes = gcpContainerNodes;
401
+ break;
402
+ }
403
+
404
+ // For container category, include container nodes
405
+ if (
406
+ category.toLowerCase().includes('container') ||
407
+ category.toLowerCase().includes('compute')
408
+ ) {
409
+ return [...containerNodes, ...services];
410
+ }
411
+
412
+ return services;
413
+ };
414
+
415
+ // Get all AWS services for the selected category
416
+ const awsServices: ServiceItem[] = Object.entries(AWS_SERVICE_ICONS)
417
+ .filter(([_, service]) => service.category === selectedAwsCategory)
418
+ .map(([key, service]) => ({
419
+ type: 'serviceNode',
420
+ service: key,
421
+ label: service.name,
422
+ }));
423
+
424
+ // Get all Azure services for the selected category
425
+ const azureServices: ServiceItem[] = Object.entries(AZURE_SERVICE_ICONS)
426
+ .filter(([_, service]) => service.category === selectedAzureCategory)
427
+ .map(([key, service]) => ({
428
+ type: 'serviceNode',
429
+ service: key,
430
+ label: service.name,
431
+ }));
432
+
433
+ // Get all GCP services for the selected category
434
+ const gcpServices: ServiceItem[] = Object.entries(GCP_SERVICE_ICONS)
435
+ .filter(([_, service]) => {
436
+ return service.category === selectedGcpCategory;
437
+ })
438
+ .map(([key, service]) => ({
439
+ type: 'serviceNode',
440
+ service: key,
441
+ label: service.name,
442
+ }));
443
+
444
+ // Filter out container services from regular services
445
+ const filteredAwsServices =
446
+ selectedAwsCategory === AWS_CATEGORIES.NETWORKING
447
+ ? awsServices.filter(
448
+ (service) =>
449
+ !['vpc', 'subnet', 'security-group'].includes(service.service),
450
+ )
451
+ : awsServices;
452
+
453
+ const filteredAzureServices =
454
+ selectedAzureCategory === AZURE_CATEGORIES.NETWORKING
455
+ ? azureServices.filter(
456
+ (service) => !['virtual-network', 'subnet'].includes(service.service),
457
+ )
458
+ : azureServices;
459
+
460
+ const filteredGcpServices =
461
+ selectedGcpCategory === 'Networking'
462
+ ? gcpServices.filter(
463
+ (service) => !['vpc', 'subnet'].includes(service.service),
464
+ )
465
+ : gcpServices;
466
+
467
+ // Render services grid
468
+ const renderServiceGrid = (
469
+ services: ServiceItem[],
470
+ cloudProvider: 'aws' | 'azure' | 'gcp' = 'aws',
471
+ ) => (
472
+ <Box
473
+ sx={{
474
+ display: 'grid',
475
+ gridTemplateColumns: 'repeat(2, 1fr)',
476
+ gap: 1.5,
477
+ mt: 1,
478
+ }}
479
+ >
480
+ {services.map((service) => {
481
+ const icon =
482
+ service.icon || getServiceIcon(service.service, cloudProvider);
483
+
484
+ return (
485
+ <Button
486
+ key={service.service}
487
+ draggable
488
+ onDragStart={(e) => {
489
+ const dragData = {
490
+ service: service.service,
491
+ nodeType: service.type,
492
+ cloudProvider: cloudProvider,
493
+ label: service.label,
494
+ };
495
+ e.dataTransfer.setData(
496
+ 'application/json',
497
+ JSON.stringify(dragData),
498
+ );
499
+ e.dataTransfer.effectAllowed = 'copy';
500
+
501
+ // Add visual feedback
502
+ e.currentTarget.style.opacity = '0.5';
503
+ e.currentTarget.style.transform = 'scale(0.95)';
504
+ }}
505
+ onDragEnd={(e) => {
506
+ // Reset visual feedback
507
+ e.currentTarget.style.opacity = '1';
508
+ e.currentTarget.style.transform = 'scale(1)';
509
+ }}
510
+ onClick={() =>
511
+ onAddNode(service.type, service.service, undefined, cloudProvider)
512
+ }
513
+ sx={{
514
+ p: 1,
515
+ border: '1px solid #333',
516
+ borderRadius: '8px',
517
+ cursor: 'grab',
518
+ textAlign: 'center',
519
+ transition: 'all 0.2s ease',
520
+ bgcolor: '#2a2a2a',
521
+ '&:hover': {
522
+ borderColor: '#61dafb',
523
+ bgcolor: 'rgba(97, 218, 251, 0.1)',
524
+ transform: 'translateY(-2px)',
525
+ },
526
+ '&:active': {
527
+ cursor: 'grabbing',
528
+ },
529
+ display: 'flex',
530
+ alignItems: 'center',
531
+ gap: 1,
532
+ minHeight: '60px',
533
+ justifyContent: 'flex-start',
534
+ textTransform: 'none',
535
+ '& svg': {
536
+ width: '20px',
537
+ height: '20px',
538
+ flexShrink: 0,
539
+ },
540
+ }}
541
+ >
542
+ <Box
543
+ sx={{
544
+ display: 'flex',
545
+ alignItems: 'center',
546
+ justifyContent: 'center',
547
+ width: '24px',
548
+ height: '24px',
549
+ flexShrink: 0,
550
+ }}
551
+ >
552
+ {icon}
553
+ </Box>
554
+ <Typography
555
+ variant="body2"
556
+ sx={{
557
+ flexGrow: 1,
558
+ textAlign: 'left',
559
+ fontSize: '0.875rem',
560
+ lineHeight: 1.2,
561
+ overflow: 'hidden',
562
+ textOverflow: 'ellipsis',
563
+ whiteSpace: 'nowrap',
564
+ }}
565
+ >
566
+ {service.label}
567
+ </Typography>
568
+ </Button>
569
+ );
570
+ })}
571
+ </Box>
572
+ );
573
+
574
+ // Render services grid for categories
575
+ const renderCategoryServices = (category: string) => {
576
+ const services = getServicesByCategory(category);
577
+
578
+ if (services.length === 0) {
579
+ return (
580
+ <Typography
581
+ variant="body2"
582
+ sx={{ color: '#666', textAlign: 'center', py: 2 }}
583
+ >
584
+ No services available for this category
585
+ </Typography>
586
+ );
587
+ }
588
+
589
+ return (
590
+ <Box
591
+ sx={{
592
+ display: 'grid',
593
+ gridTemplateColumns: 'repeat(2, 1fr)',
594
+ gap: 2,
595
+ mt: 1,
596
+ }}
597
+ >
598
+ {services.map((service) => (
599
+ <Box
600
+ key={service.service}
601
+ draggable
602
+ onDragStart={(e) => {
603
+ const dragData = {
604
+ service: service.service,
605
+ nodeType: service.type,
606
+ cloudProvider:
607
+ selectedProvider !== '' ? selectedProvider : 'aws',
608
+ label: service.label,
609
+ };
610
+ e.dataTransfer.setData(
611
+ 'application/json',
612
+ JSON.stringify(dragData),
613
+ );
614
+ e.dataTransfer.effectAllowed = 'copy';
615
+
616
+ // Add visual feedback
617
+ e.currentTarget.style.opacity = '0.5';
618
+ e.currentTarget.style.transform = 'scale(0.95)';
619
+ }}
620
+ onDragEnd={(e) => {
621
+ // Reset visual feedback
622
+ e.currentTarget.style.opacity = '1';
623
+ e.currentTarget.style.transform = 'scale(1)';
624
+ }}
625
+ onClick={() =>
626
+ onAddNode(
627
+ service.type,
628
+ service.service,
629
+ undefined, // Let automatic assignment choose position
630
+ selectedProvider !== '' ? selectedProvider : undefined,
631
+ )
632
+ }
633
+ sx={{
634
+ p: 1.5,
635
+ border: '1px solid #333',
636
+ borderRadius: '8px',
637
+ cursor: 'grab',
638
+ textAlign: 'center',
639
+ transition: 'all 0.2s ease',
640
+ bgcolor: '#2a2a2a',
641
+ '&:hover': {
642
+ borderColor: '#61dafb',
643
+ bgcolor: 'rgba(97, 218, 251, 0.1)',
644
+ transform: 'translateY(-2px)',
645
+ },
646
+ '&:active': {
647
+ cursor: 'grabbing',
648
+ },
649
+ }}
650
+ >
651
+ <Box
652
+ sx={{
653
+ width: 40,
654
+ height: 40,
655
+ mx: 'auto',
656
+ mb: 1,
657
+ display: 'flex',
658
+ alignItems: 'center',
659
+ justifyContent: 'center',
660
+ bgcolor: '#1a1a1a',
661
+ borderRadius: '4px',
662
+ }}
663
+ >
664
+ {service.icon ||
665
+ getServiceIcon(
666
+ service.service,
667
+ selectedProvider !== '' ? selectedProvider : 'aws',
668
+ )}
669
+ </Box>
670
+ <Typography
671
+ variant="caption"
672
+ sx={{
673
+ color: '#fff',
674
+ fontSize: '0.75rem',
675
+ fontWeight: 500,
676
+ lineHeight: 1.2,
677
+ display: 'block',
678
+ }}
679
+ >
680
+ {service.label}
681
+ </Typography>
682
+ </Box>
683
+ ))}
684
+ </Box>
685
+ );
686
+ };
687
+
688
+ // Render category accordions for selected provider
689
+ const renderCategoryAccordions = () => {
690
+ if (!selectedProvider) return null;
691
+
692
+ const categories = getProviderCategories();
693
+
694
+ return (
695
+ <Box sx={{ mt: 2 }}>
696
+ {categories.map((category) => (
697
+ <Accordion
698
+ key={category}
699
+ expanded={expandedCategory === category}
700
+ onChange={handleCategoryChange(category)}
701
+ sx={{
702
+ mb: 2,
703
+ bgcolor: 'transparent',
704
+ color: '#fff',
705
+ boxShadow: 'none',
706
+ '&:before': {
707
+ display: 'none',
708
+ },
709
+ border: 'none',
710
+ borderBottom: '1px solid #333',
711
+ borderRadius: '0 !important',
712
+ '&.Mui-expanded': {
713
+ margin: '0 0 16px 0',
714
+ },
715
+ }}
716
+ >
717
+ <AccordionSummary
718
+ expandIcon={
719
+ <ExpandMoreIcon sx={{ color: '#999', fontSize: '20px' }} />
720
+ }
721
+ sx={{
722
+ borderRadius: '0',
723
+ minHeight: '56px',
724
+ px: 0,
725
+ '&:hover': {
726
+ bgcolor: 'transparent',
727
+ },
728
+ '& .MuiAccordionSummary-content': {
729
+ margin: '12px 0',
730
+ display: 'flex',
731
+ alignItems: 'center',
732
+ gap: 2,
733
+ },
734
+ }}
735
+ >
736
+ {getCategoryIcon(category)}
737
+ <Typography
738
+ sx={{
739
+ fontWeight: 400,
740
+ color: '#fff',
741
+ fontSize: '1rem',
742
+ }}
743
+ >
744
+ {category}
745
+ </Typography>
746
+ </AccordionSummary>
747
+ <AccordionDetails sx={{ padding: '16px' }}>
748
+ {renderCategoryServices(category)}
749
+ </AccordionDetails>
750
+ </Accordion>
751
+ ))}
752
+ </Box>
753
+ );
754
+ };
755
+
756
+ return (
757
+ <>
758
+ <Box
759
+ sx={{
760
+ width: '100%',
761
+ height: '100%',
762
+ overflow: 'auto',
763
+ bgcolor: '#1a1a1a',
764
+ color: 'common.white',
765
+ display: 'flex',
766
+ flexDirection: 'column',
767
+ }}
768
+ >
769
+ {/* Scrollable Content */}
770
+ <Box
771
+ sx={{
772
+ flex: 1,
773
+ overflowY: 'auto',
774
+ px: 2,
775
+ pb: 2,
776
+ pt: 2,
777
+ }}
778
+ >
779
+ <Box
780
+ sx={{
781
+ display: 'flex',
782
+ alignItems: 'center',
783
+ gap: 2,
784
+ mb: 2,
785
+ }}
786
+ >
787
+ <Button
788
+ variant="contained"
789
+ sx={{
790
+ bgcolor: '#4C4CFF',
791
+ color: 'white',
792
+ fontSize: '0.875rem',
793
+ fontWeight: 600,
794
+ textTransform: 'none',
795
+ borderRadius: '12px',
796
+ px: 3,
797
+ py: 0.5,
798
+ border: '2px solid #4C4CFF',
799
+ '&:hover': {
800
+ bgcolor: '#3B3BFF',
801
+ borderColor: '#3B3BFF',
802
+ },
803
+ }}
804
+ >
805
+ Templates
806
+ </Button>
807
+ <FormControl size="small" sx={{ minWidth: 140 }}>
808
+ <Select
809
+ value={selectedProvider}
810
+ onChange={(e) =>
811
+ setSelectedProvider(
812
+ e.target.value as 'aws' | 'azure' | 'gcp' | '',
813
+ )
814
+ }
815
+ displayEmpty
816
+ sx={{
817
+ color: '#fff',
818
+ fontSize: '0.875rem',
819
+ bgcolor: '#333',
820
+ borderRadius: '12px',
821
+ '& .MuiOutlinedInput-notchedOutline': {
822
+ borderColor: '#444',
823
+ },
824
+ '&:hover .MuiOutlinedInput-notchedOutline': {
825
+ borderColor: '#61dafb',
826
+ },
827
+ '&.Mui-focused .MuiOutlinedInput-notchedOutline': {
828
+ borderColor: '#61dafb',
829
+ },
830
+ '& .MuiSelect-select': {
831
+ display: 'flex',
832
+ alignItems: 'center',
833
+ gap: 1,
834
+ py: 1.5,
835
+ px: 2,
836
+ },
837
+ }}
838
+ >
839
+ <MenuItem value="">
840
+ <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>
841
+ <Typography>Select Provider</Typography>
842
+ </Box>
843
+ </MenuItem>
844
+ <MenuItem value="aws">
845
+ <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>
846
+ <Box
847
+ component="img"
848
+ src="/aws-icons/compute/EC2.svg"
849
+ alt="AWS"
850
+ sx={{ width: 20, height: 20 }}
851
+ />
852
+ <Typography>AWS</Typography>
853
+ </Box>
854
+ </MenuItem>
855
+ <MenuItem value="azure">
856
+ <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>
857
+ <Box
858
+ component="img"
859
+ src="/azure-icons/compute/00195-icon-service-Maintenance-Configuration.svg"
860
+ alt="Azure"
861
+ sx={{ width: 20, height: 20 }}
862
+ />
863
+ <Typography>Azure</Typography>
864
+ </Box>
865
+ </MenuItem>
866
+ <MenuItem value="gcp">
867
+ <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>
868
+ <Box
869
+ component="img"
870
+ src="/gcp-icons/compute/compute-engine.svg"
871
+ alt="GCP"
872
+ sx={{ width: 20, height: 20 }}
873
+ />
874
+ <Typography>GCP</Typography>
875
+ </Box>
876
+ </MenuItem>
877
+ </Select>
878
+ </FormControl>
879
+ </Box>
880
+
881
+ <Box
882
+ sx={{
883
+ display: 'flex',
884
+ alignItems: 'center',
885
+ gap: 2,
886
+ mb: 3,
887
+ }}
888
+ >
889
+ <InputBase
890
+ placeholder="Search design resources..."
891
+ startAdornment={
892
+ <InputAdornment position="start">
893
+ <SearchIcon sx={{ color: '#999', fontSize: '20px' }} />
894
+ </InputAdornment>
895
+ }
896
+ sx={{
897
+ bgcolor: '#2a2a2a',
898
+ borderRadius: '12px',
899
+ px: 2,
900
+ py: 1.25,
901
+ color: 'white',
902
+ width: '100%',
903
+ fontSize: '14px',
904
+ border: '1px solid #333',
905
+ '& .MuiInputBase-input': {
906
+ padding: 0,
907
+ '&::placeholder': {
908
+ color: '#999',
909
+ opacity: 1,
910
+ },
911
+ },
912
+ '& .MuiInputAdornment-root': {
913
+ marginRight: 1,
914
+ },
915
+ }}
916
+ />
917
+ <Button
918
+ variant="contained"
919
+ onClick={() => setIsExportDialogOpen(true)}
920
+ sx={{
921
+ bgcolor: '#2a2a2a',
922
+ borderRadius: '12px',
923
+ px: 2,
924
+ py: 1.25,
925
+ color: 'white',
926
+ border: '1px solid #333',
927
+ minWidth: 'auto',
928
+ '&:hover': {
929
+ bgcolor: '#333',
930
+ borderColor: '#61dafb',
931
+ },
932
+ }}
933
+ title="Export with schema/data separation - choose what to export and format"
934
+ >
935
+ <FileDownloadIcon sx={{ color: '#61dafb', fontSize: '20px' }} />
936
+ </Button>
937
+ </Box>
938
+
939
+ {/* Render category accordions based on selected provider */}
940
+ {selectedProvider && renderCategoryAccordions()}
941
+
942
+ {/* Show message when no provider is selected */}
943
+ {!selectedProvider && (
944
+ <Box
945
+ sx={{
946
+ textAlign: 'center',
947
+ mt: 4,
948
+ p: 3,
949
+ border: '1px dashed #444',
950
+ borderRadius: '8px',
951
+ bgcolor: '#2a2a2a',
952
+ }}
953
+ >
954
+ <Typography
955
+ variant="body1"
956
+ sx={{
957
+ color: '#999',
958
+ mb: 1,
959
+ }}
960
+ >
961
+ Select a cloud provider to view services
962
+ </Typography>
963
+ <Typography
964
+ variant="caption"
965
+ sx={{
966
+ color: '#666',
967
+ }}
968
+ >
969
+ Choose AWS, Azure, or GCP from the dropdown above
970
+ </Typography>
971
+ </Box>
972
+ )}
973
+ </Box>
974
+ </Box>
975
+
976
+ {/* Diagram Data Export Dialog */}
977
+ <Dialog
978
+ open={isExportDialogOpen}
979
+ onClose={() => setIsExportDialogOpen(false)}
980
+ maxWidth="sm"
981
+ fullWidth
982
+ PaperProps={{
983
+ sx: {
984
+ bgcolor: '#1a1a1a',
985
+ color: 'white',
986
+ border: '1px solid #333',
987
+ },
988
+ }}
989
+ >
990
+ <DialogTitle
991
+ sx={{
992
+ bgcolor: '#2a2a2a',
993
+ borderBottom: '1px solid #333',
994
+ display: 'flex',
995
+ alignItems: 'center',
996
+ gap: 2,
997
+ }}
998
+ >
999
+ <FileDownloadIcon sx={{ color: '#61dafb' }} />
1000
+ Export Diagram Data
1001
+ </DialogTitle>
1002
+
1003
+ <DialogContent sx={{ p: 3 }}>
1004
+ <Box sx={{ mb: 3 }}>
1005
+ <Typography variant="body1" sx={{ color: '#ccc', mb: 3 }}>
1006
+ Export your diagram as JSON containing all the nodes and edges you've created.
1007
+ </Typography>
1008
+
1009
+ <FormControlLabel
1010
+ control={
1011
+ <Checkbox
1012
+ checked={exportOptions.includeMetadata}
1013
+ onChange={(e) =>
1014
+ setExportOptions((prev) => ({
1015
+ ...prev,
1016
+ includeMetadata: e.target.checked,
1017
+ }))
1018
+ }
1019
+ sx={{ color: '#61dafb' }}
1020
+ />
1021
+ }
1022
+ label="Include metadata (timestamps, counts, cloud providers)"
1023
+ sx={{ color: '#ccc', mb: 2 }}
1024
+ />
1025
+
1026
+ <Typography variant="body2" sx={{ color: '#999' }}>
1027
+ <strong>File:</strong> cloud-architecture-data.json<br/>
1028
+ <strong>Content:</strong> Nodes, edges, positions, and diagram data
1029
+ </Typography>
1030
+ </Box>
1031
+ </DialogContent>
1032
+
1033
+ <DialogActions
1034
+ sx={{
1035
+ bgcolor: '#2a2a2a',
1036
+ borderTop: '1px solid #333',
1037
+ p: 2,
1038
+ }}
1039
+ >
1040
+ <Button
1041
+ onClick={() => setIsExportDialogOpen(false)}
1042
+ sx={{ color: '#999' }}
1043
+ >
1044
+ Cancel
1045
+ </Button>
1046
+ <Button
1047
+ onClick={handleExport}
1048
+ variant="contained"
1049
+ sx={{
1050
+ bgcolor: '#61dafb',
1051
+ color: '#000',
1052
+ '&:hover': { bgcolor: '#4fc3f7' },
1053
+ }}
1054
+ >
1055
+ Export Diagram Data
1056
+ </Button>
1057
+ </DialogActions>
1058
+ </Dialog>
1059
+ </>
1060
+ );
1061
+ };
1062
+
1063
+ export default PropertiesPanel;