likec4 1.28.0 → 1.28.1

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 (1546) hide show
  1. package/__app__/src/main.js +989 -1135
  2. package/__app__/src/style.css +1 -1
  3. package/dist/cli/index.mjs +629 -618
  4. package/dist/index.mjs +1 -1
  5. package/dist/shared/{likec4.7Lz9HWDi.mjs → likec4.CYGgfB-B.mjs} +1 -1
  6. package/dist/shared/{likec4.10Nsb-Q7.mjs → likec4.DRjStDbg.mjs} +1619 -1602
  7. package/dist/vite-plugin/index.mjs +1 -1
  8. package/icons/aws/activate.js +21 -1
  9. package/icons/aws/alexa-for-business.js +21 -1
  10. package/icons/aws/amplify.js +21 -1
  11. package/icons/aws/apache-mxnet-on-aws.js +21 -1
  12. package/icons/aws/api-gateway.js +21 -1
  13. package/icons/aws/app-config.js +21 -1
  14. package/icons/aws/app-flow.js +21 -1
  15. package/icons/aws/app-mesh.js +21 -1
  16. package/icons/aws/app-runner.js +21 -1
  17. package/icons/aws/app-stream.js +21 -1
  18. package/icons/aws/app-sync.js +21 -1
  19. package/icons/aws/application-auto-scaling.js +21 -1
  20. package/icons/aws/application-composer.js +21 -1
  21. package/icons/aws/application-cost-profiler.js +21 -1
  22. package/icons/aws/application-discovery-service.js +21 -1
  23. package/icons/aws/application-migration-service.js +21 -1
  24. package/icons/aws/artifact.js +21 -1
  25. package/icons/aws/athena.js +21 -1
  26. package/icons/aws/audit-manager.js +21 -1
  27. package/icons/aws/augmented-ai-a2i.js +21 -1
  28. package/icons/aws/aurora.js +21 -1
  29. package/icons/aws/auto-scaling.js +21 -1
  30. package/icons/aws/backint-agent.js +21 -1
  31. package/icons/aws/backup.js +21 -1
  32. package/icons/aws/batch.js +21 -1
  33. package/icons/aws/billing-conductor.js +21 -1
  34. package/icons/aws/bottlerocket.js +21 -1
  35. package/icons/aws/braket.js +21 -1
  36. package/icons/aws/budgets.js +21 -1
  37. package/icons/aws/certificate-manager.js +21 -1
  38. package/icons/aws/chatbot.js +21 -1
  39. package/icons/aws/chime-sdk.js +21 -1
  40. package/icons/aws/chime-voice-connector.js +21 -1
  41. package/icons/aws/chime.js +21 -1
  42. package/icons/aws/clean-rooms.js +21 -1
  43. package/icons/aws/client-vpn.js +21 -1
  44. package/icons/aws/cloud-control-api.js +21 -1
  45. package/icons/aws/cloud-development-kit.js +21 -1
  46. package/icons/aws/cloud-directory.js +21 -1
  47. package/icons/aws/cloud-formation.js +21 -1
  48. package/icons/aws/cloud-front.js +21 -1
  49. package/icons/aws/cloud-hsm.js +21 -1
  50. package/icons/aws/cloud-map.js +21 -1
  51. package/icons/aws/cloud-search.js +21 -1
  52. package/icons/aws/cloud-shell.js +21 -1
  53. package/icons/aws/cloud-trail.js +21 -1
  54. package/icons/aws/cloud-wan.js +21 -1
  55. package/icons/aws/cloud-watch.js +21 -1
  56. package/icons/aws/cloud9.js +21 -1
  57. package/icons/aws/code-artifact.js +21 -1
  58. package/icons/aws/code-build.js +21 -1
  59. package/icons/aws/code-catalyst.js +21 -1
  60. package/icons/aws/code-commit.js +21 -1
  61. package/icons/aws/code-deploy.js +21 -1
  62. package/icons/aws/code-guru.js +21 -1
  63. package/icons/aws/code-pipeline.js +21 -1
  64. package/icons/aws/code-star.js +21 -1
  65. package/icons/aws/code-whisperer.js +21 -1
  66. package/icons/aws/cognito.js +21 -1
  67. package/icons/aws/command-line-interface.js +21 -1
  68. package/icons/aws/comprehend-medical.js +21 -1
  69. package/icons/aws/comprehend.js +21 -1
  70. package/icons/aws/compute-optimizer.js +21 -1
  71. package/icons/aws/config.js +21 -1
  72. package/icons/aws/connect.js +21 -1
  73. package/icons/aws/console-mobile-application.js +21 -1
  74. package/icons/aws/control-tower.js +21 -1
  75. package/icons/aws/corretto.js +21 -1
  76. package/icons/aws/cost-and-usage-report.js +21 -1
  77. package/icons/aws/cost-explorer.js +21 -1
  78. package/icons/aws/data-exchange.js +21 -1
  79. package/icons/aws/data-pipeline.js +21 -1
  80. package/icons/aws/data-sync.js +21 -1
  81. package/icons/aws/data-zone.js +21 -1
  82. package/icons/aws/database-migration-service.js +21 -1
  83. package/icons/aws/deep-composer.js +21 -1
  84. package/icons/aws/deep-learning-amis.js +21 -1
  85. package/icons/aws/deep-learning-containers.js +21 -1
  86. package/icons/aws/deep-lens.js +21 -1
  87. package/icons/aws/deep-racer.js +21 -1
  88. package/icons/aws/detective.js +21 -1
  89. package/icons/aws/dev-ops-guru.js +21 -1
  90. package/icons/aws/device-farm.js +21 -1
  91. package/icons/aws/direct-connect.js +21 -1
  92. package/icons/aws/directory-service.js +21 -1
  93. package/icons/aws/distro-for-open-telemetry.js +21 -1
  94. package/icons/aws/document-db.js +21 -1
  95. package/icons/aws/dynamo-db.js +21 -1
  96. package/icons/aws/ec2-auto-scaling.js +21 -1
  97. package/icons/aws/ec2-image-builder.js +21 -1
  98. package/icons/aws/ec2.js +21 -1
  99. package/icons/aws/ecs-anywhere.js +21 -1
  100. package/icons/aws/efs.js +21 -1
  101. package/icons/aws/eks-anywhere.js +21 -1
  102. package/icons/aws/eks-cloud.js +21 -1
  103. package/icons/aws/eks-distro.js +21 -1
  104. package/icons/aws/elasti-cache.js +21 -1
  105. package/icons/aws/elastic-beanstalk.js +21 -1
  106. package/icons/aws/elastic-block-store.js +21 -1
  107. package/icons/aws/elastic-container-registry.js +21 -1
  108. package/icons/aws/elastic-container-service.js +21 -1
  109. package/icons/aws/elastic-disaster-recovery.js +21 -1
  110. package/icons/aws/elastic-fabric-adapter.js +21 -1
  111. package/icons/aws/elastic-inference.js +21 -1
  112. package/icons/aws/elastic-kubernetes-service.js +21 -1
  113. package/icons/aws/elastic-load-balancing.js +21 -1
  114. package/icons/aws/elastic-transcoder.js +21 -1
  115. package/icons/aws/elemental-appliances-software.js +21 -1
  116. package/icons/aws/elemental-conductor.js +21 -1
  117. package/icons/aws/elemental-delta.js +21 -1
  118. package/icons/aws/elemental-link.js +21 -1
  119. package/icons/aws/elemental-live.js +21 -1
  120. package/icons/aws/elemental-media-connect.js +21 -1
  121. package/icons/aws/elemental-media-convert.js +21 -1
  122. package/icons/aws/elemental-media-live.js +21 -1
  123. package/icons/aws/elemental-media-package.js +21 -1
  124. package/icons/aws/elemental-media-store.js +21 -1
  125. package/icons/aws/elemental-media-tailor.js +21 -1
  126. package/icons/aws/elemental-server.js +21 -1
  127. package/icons/aws/emr.js +21 -1
  128. package/icons/aws/event-bridge.js +21 -1
  129. package/icons/aws/express-workflows.js +21 -1
  130. package/icons/aws/fargate.js +21 -1
  131. package/icons/aws/fault-injection-simulator.js +21 -1
  132. package/icons/aws/file-cache.js +21 -1
  133. package/icons/aws/fin-space.js +21 -1
  134. package/icons/aws/firewall-manager.js +21 -1
  135. package/icons/aws/forecast.js +21 -1
  136. package/icons/aws/fraud-detector.js +21 -1
  137. package/icons/aws/free-rtos.js +21 -1
  138. package/icons/aws/fsx-for-lustre.js +21 -1
  139. package/icons/aws/fsx-for-net-app-ontap.js +21 -1
  140. package/icons/aws/fsx-for-open-zfs.js +21 -1
  141. package/icons/aws/fsx-for-wfs.js +21 -1
  142. package/icons/aws/fsx.js +21 -1
  143. package/icons/aws/game-kit.js +21 -1
  144. package/icons/aws/game-lift.js +21 -1
  145. package/icons/aws/game-sparks.js +21 -1
  146. package/icons/aws/genomics-cli.js +21 -1
  147. package/icons/aws/global-accelerator.js +21 -1
  148. package/icons/aws/glue-data-brew.js +21 -1
  149. package/icons/aws/glue-elastic-views.js +21 -1
  150. package/icons/aws/glue.js +21 -1
  151. package/icons/aws/ground-station.js +21 -1
  152. package/icons/aws/guard-duty.js +21 -1
  153. package/icons/aws/health-lake.js +21 -1
  154. package/icons/aws/honeycode.js +21 -1
  155. package/icons/aws/iam-identity-center.js +21 -1
  156. package/icons/aws/identity-and-access-management.js +21 -1
  157. package/icons/aws/inspector.js +21 -1
  158. package/icons/aws/interactive-video-service.js +21 -1
  159. package/icons/aws/io-t-1-click.js +21 -1
  160. package/icons/aws/io-t-analytics.js +21 -1
  161. package/icons/aws/io-t-button.js +21 -1
  162. package/icons/aws/io-t-core.js +21 -1
  163. package/icons/aws/io-t-device-defender.js +21 -1
  164. package/icons/aws/io-t-device-management.js +21 -1
  165. package/icons/aws/io-t-edu-kit.js +21 -1
  166. package/icons/aws/io-t-events.js +21 -1
  167. package/icons/aws/io-t-express-link.js +21 -1
  168. package/icons/aws/io-t-fleet-wise.js +21 -1
  169. package/icons/aws/io-t-greengrass.js +21 -1
  170. package/icons/aws/io-t-robo-runner.js +21 -1
  171. package/icons/aws/io-t-site-wise.js +21 -1
  172. package/icons/aws/io-t-things-graph.js +21 -1
  173. package/icons/aws/io-t-twin-maker.js +37 -1
  174. package/icons/aws/iq.js +21 -1
  175. package/icons/aws/kendra.js +21 -1
  176. package/icons/aws/key-management-service.js +21 -1
  177. package/icons/aws/keyspaces.js +21 -1
  178. package/icons/aws/kinesis-data-analytics.js +21 -1
  179. package/icons/aws/kinesis-data-streams.js +21 -1
  180. package/icons/aws/kinesis-firehose.js +21 -1
  181. package/icons/aws/kinesis-video-streams.js +21 -1
  182. package/icons/aws/kinesis.js +21 -1
  183. package/icons/aws/lake-formation.js +21 -1
  184. package/icons/aws/lambda.js +21 -1
  185. package/icons/aws/launch-wizard.js +21 -1
  186. package/icons/aws/lex.js +21 -1
  187. package/icons/aws/license-manager.js +21 -1
  188. package/icons/aws/lightsail.js +21 -1
  189. package/icons/aws/local-zones.js +21 -1
  190. package/icons/aws/location-service.js +21 -1
  191. package/icons/aws/lookout-for-equipment.js +21 -1
  192. package/icons/aws/lookout-for-metrics.js +21 -1
  193. package/icons/aws/lookout-for-vision.js +21 -1
  194. package/icons/aws/lumberyard.js +21 -1
  195. package/icons/aws/macie.js +21 -1
  196. package/icons/aws/mainframe-modernization.js +21 -1
  197. package/icons/aws/managed-blockchain.js +21 -1
  198. package/icons/aws/managed-grafana.js +21 -1
  199. package/icons/aws/managed-service-for-prometheus.js +21 -1
  200. package/icons/aws/managed-services.js +21 -1
  201. package/icons/aws/managed-streaming-for-apache-kafka.js +21 -1
  202. package/icons/aws/managed-workflows-for-apache-airflow.js +21 -1
  203. package/icons/aws/management-console.js +21 -1
  204. package/icons/aws/marketplace-dark.js +15 -1
  205. package/icons/aws/marketplace-light.js +15 -1
  206. package/icons/aws/memory-db-for-redis.js +21 -1
  207. package/icons/aws/migration-evaluator.js +21 -1
  208. package/icons/aws/migration-hub.js +21 -1
  209. package/icons/aws/monitron.js +21 -1
  210. package/icons/aws/mq.js +21 -1
  211. package/icons/aws/neptune.js +21 -1
  212. package/icons/aws/network-firewall.js +21 -1
  213. package/icons/aws/neuron.js +21 -1
  214. package/icons/aws/nice-dcv.js +21 -1
  215. package/icons/aws/nice-engin-frame.js +21 -1
  216. package/icons/aws/nimble-studio.js +21 -1
  217. package/icons/aws/nitro-enclaves.js +21 -1
  218. package/icons/aws/omics.js +21 -1
  219. package/icons/aws/open-3d-engine.js +21 -1
  220. package/icons/aws/open-search-service.js +21 -1
  221. package/icons/aws/ops-works.js +21 -1
  222. package/icons/aws/organizations.js +21 -1
  223. package/icons/aws/outposts-family.js +21 -1
  224. package/icons/aws/outposts-rack.js +21 -1
  225. package/icons/aws/outposts-servers.js +21 -1
  226. package/icons/aws/panorama.js +21 -1
  227. package/icons/aws/parallel-cluster.js +21 -1
  228. package/icons/aws/personal-health-dashboard.js +21 -1
  229. package/icons/aws/personalize.js +21 -1
  230. package/icons/aws/pinpoint-apis.js +21 -1
  231. package/icons/aws/pinpoint.js +21 -1
  232. package/icons/aws/polly.js +21 -1
  233. package/icons/aws/private-5g.js +21 -1
  234. package/icons/aws/private-certificate-authority.js +28 -1
  235. package/icons/aws/private-link.js +21 -1
  236. package/icons/aws/professional-services.js +21 -1
  237. package/icons/aws/proton.js +21 -1
  238. package/icons/aws/quantum-ledger-database.js +21 -1
  239. package/icons/aws/quick-sight.js +21 -1
  240. package/icons/aws/rds-on-vmware.js +21 -1
  241. package/icons/aws/rds.js +21 -1
  242. package/icons/aws/re-post.js +21 -1
  243. package/icons/aws/red-hat-open-shift-service-on-aws.js +21 -1
  244. package/icons/aws/redshift.js +21 -1
  245. package/icons/aws/rekognition.js +21 -1
  246. package/icons/aws/reserved-instance-reporting.js +21 -1
  247. package/icons/aws/resilience-hub.js +21 -1
  248. package/icons/aws/resource-access-manager.js +21 -1
  249. package/icons/aws/resource-explorer.js +21 -1
  250. package/icons/aws/robo-maker.js +21 -1
  251. package/icons/aws/route-53.js +21 -1
  252. package/icons/aws/s3-on-outposts.js +21 -1
  253. package/icons/aws/sage-maker-ground-truth.js +21 -1
  254. package/icons/aws/sage-maker-studio-lab.js +21 -1
  255. package/icons/aws/sage-maker.js +21 -1
  256. package/icons/aws/savings-plans.js +21 -1
  257. package/icons/aws/secrets-manager.js +21 -1
  258. package/icons/aws/security-hub.js +21 -1
  259. package/icons/aws/security-lake.js +21 -1
  260. package/icons/aws/server-migration-service.js +21 -1
  261. package/icons/aws/serverless-application-repository.js +21 -1
  262. package/icons/aws/service-catalog.js +21 -1
  263. package/icons/aws/service-management-connector.js +28 -1
  264. package/icons/aws/shield.js +21 -1
  265. package/icons/aws/signer.js +21 -1
  266. package/icons/aws/sim-space-weaver.js +21 -1
  267. package/icons/aws/simple-email-service.js +21 -1
  268. package/icons/aws/simple-notification-service.js +21 -1
  269. package/icons/aws/simple-queue-service.js +21 -1
  270. package/icons/aws/simple-storage-service-glacier.js +21 -1
  271. package/icons/aws/simple-storage-service.js +21 -1
  272. package/icons/aws/site-to-site-vpn.js +21 -1
  273. package/icons/aws/snowball-edge.js +21 -1
  274. package/icons/aws/snowball.js +21 -1
  275. package/icons/aws/snowcone.js +21 -1
  276. package/icons/aws/snowmobile.js +21 -1
  277. package/icons/aws/step-functions.js +21 -1
  278. package/icons/aws/storage-gateway.js +21 -1
  279. package/icons/aws/sumerian.js +21 -1
  280. package/icons/aws/supply-chain.js +21 -1
  281. package/icons/aws/support.js +21 -1
  282. package/icons/aws/systems-manager.js +21 -1
  283. package/icons/aws/tensor-flow-on-aws.js +21 -1
  284. package/icons/aws/textract.js +21 -1
  285. package/icons/aws/thinkbox-deadline.js +21 -1
  286. package/icons/aws/thinkbox-frost.js +21 -1
  287. package/icons/aws/thinkbox-krakatoa.js +21 -1
  288. package/icons/aws/thinkbox-sequoia.js +21 -1
  289. package/icons/aws/thinkbox-stoke.js +21 -1
  290. package/icons/aws/thinkbox-xmesh.js +21 -1
  291. package/icons/aws/timestream.js +21 -1
  292. package/icons/aws/tools-and-sdks.js +21 -1
  293. package/icons/aws/torch-serve.js +21 -1
  294. package/icons/aws/training-certification.js +21 -1
  295. package/icons/aws/transcribe.js +21 -1
  296. package/icons/aws/transfer-family.js +21 -1
  297. package/icons/aws/transit-gateway.js +21 -1
  298. package/icons/aws/translate.js +21 -1
  299. package/icons/aws/trusted-advisor.js +21 -1
  300. package/icons/aws/verified-access.js +21 -1
  301. package/icons/aws/verified-permissions.js +21 -1
  302. package/icons/aws/virtual-private-cloud.js +21 -1
  303. package/icons/aws/vmware-cloud-on-aws.js +21 -1
  304. package/icons/aws/vpc-lattice.js +21 -1
  305. package/icons/aws/waf.js +21 -1
  306. package/icons/aws/wavelength.js +21 -1
  307. package/icons/aws/well-architected-tool.js +21 -1
  308. package/icons/aws/wickr.js +21 -1
  309. package/icons/aws/work-docs-sdk.js +21 -1
  310. package/icons/aws/work-docs.js +21 -1
  311. package/icons/aws/work-link.js +21 -1
  312. package/icons/aws/work-mail.js +21 -1
  313. package/icons/aws/work-spaces-family.js +21 -1
  314. package/icons/aws/x-ray.js +21 -1
  315. package/icons/azure/abs-member.js +32 -1
  316. package/icons/azure/active-directory-connect-health.js +132 -1
  317. package/icons/azure/activity-log.js +33 -1
  318. package/icons/azure/administrative-units.js +102 -1
  319. package/icons/azure/advisor.js +44 -1
  320. package/icons/azure/ai-studio.js +105 -1
  321. package/icons/azure/aks-automatic.js +105 -1
  322. package/icons/azure/aks-istio.js +96 -1
  323. package/icons/azure/alerts.js +29 -1
  324. package/icons/azure/all-resources.js +21 -1
  325. package/icons/azure/analysis-services.js +67 -1
  326. package/icons/azure/anomaly-detector.js +44 -1
  327. package/icons/azure/api-center.js +42 -1
  328. package/icons/azure/api-connections.js +66 -1
  329. package/icons/azure/api-management-services.js +51 -1
  330. package/icons/azure/api-proxy.js +32 -1
  331. package/icons/azure/app-compliance-automation.js +82 -1
  332. package/icons/azure/app-configuration.js +56 -1
  333. package/icons/azure/app-registrations.js +39 -1
  334. package/icons/azure/app-service-certificates.js +42 -1
  335. package/icons/azure/app-service-domains.js +23 -1
  336. package/icons/azure/app-service-environments.js +36 -1
  337. package/icons/azure/app-service-plans.js +66 -1
  338. package/icons/azure/app-services.js +104 -1
  339. package/icons/azure/app-space-component.js +39 -1
  340. package/icons/azure/app-space.js +37 -1
  341. package/icons/azure/applens.js +45 -1
  342. package/icons/azure/application-gateway-containers.js +134 -1
  343. package/icons/azure/application-gateways.js +92 -1
  344. package/icons/azure/application-group.js +21 -1
  345. package/icons/azure/application-insights.js +57 -1
  346. package/icons/azure/application-security-groups.js +54 -1
  347. package/icons/azure/aquila.js +95 -1
  348. package/icons/azure/arc-data-services.js +60 -1
  349. package/icons/azure/arc-kubernetes.js +139 -1
  350. package/icons/azure/arc-machines.js +40 -1
  351. package/icons/azure/arc-postgre-sql.js +73 -1
  352. package/icons/azure/arc-sql-managed-instance.js +75 -1
  353. package/icons/azure/arc-sql-server.js +40 -1
  354. package/icons/azure/atm-multistack.js +59 -1
  355. package/icons/azure/auto-scale.js +43 -1
  356. package/icons/azure/automanaged-vm.js +65 -1
  357. package/icons/azure/automation-accounts.js +62 -1
  358. package/icons/azure/availability-sets.js +70 -1
  359. package/icons/azure/avs-vm.js +32 -1
  360. package/icons/azure/azure-a.js +46 -1
  361. package/icons/azure/azure-ad-b2c.js +129 -1
  362. package/icons/azure/azure-api-for-fhir.js +33 -1
  363. package/icons/azure/azure-applied-ai-services.js +81 -1
  364. package/icons/azure/azure-arc.js +75 -1
  365. package/icons/azure/azure-attestation.js +35 -1
  366. package/icons/azure/azure-backup-center.js +63 -1
  367. package/icons/azure/azure-blockchain-service.js +51 -1
  368. package/icons/azure/azure-center-for-sap.js +37 -1
  369. package/icons/azure/azure-chaos-studio.js +75 -1
  370. package/icons/azure/azure-cloud-shell.js +39 -1
  371. package/icons/azure/azure-communication-services.js +63 -1
  372. package/icons/azure/azure-communications-gateway.js +43 -1
  373. package/icons/azure/azure-compute-galleries.js +35 -1
  374. package/icons/azure/azure-cosmos-db.js +47 -1
  375. package/icons/azure/azure-data-catalog.js +91 -1
  376. package/icons/azure/azure-data-explorer-clusters.js +126 -1
  377. package/icons/azure/azure-database-maria-db-server.js +56 -1
  378. package/icons/azure/azure-database-migration-services.js +83 -1
  379. package/icons/azure/azure-database-my-sql-server.js +56 -1
  380. package/icons/azure/azure-database-postgre-sql-server-group.js +65 -1
  381. package/icons/azure/azure-database-postgre-sql-server.js +57 -1
  382. package/icons/azure/azure-databox-gateway.js +39 -1
  383. package/icons/azure/azure-databricks.js +12 -1
  384. package/icons/azure/azure-deployment-environments.js +65 -1
  385. package/icons/azure/azure-dev-ops.js +21 -1
  386. package/icons/azure/azure-dev-tunnels.js +48 -1
  387. package/icons/azure/azure-edge-hardware-center.js +69 -1
  388. package/icons/azure/azure-experimentation-studio.js +88 -1
  389. package/icons/azure/azure-fileshares.js +46 -1
  390. package/icons/azure/azure-firewall-manager.js +60 -1
  391. package/icons/azure/azure-firewall-policy.js +37 -1
  392. package/icons/azure/azure-hcp-cache.js +23 -1
  393. package/icons/azure/azure-hpc-workbenches.js +112 -1
  394. package/icons/azure/azure-hybrid-center.js +33 -1
  395. package/icons/azure/azure-information-protection.js +95 -1
  396. package/icons/azure/azure-io-t-operations.js +57 -1
  397. package/icons/azure/azure-lighthouse.js +35 -1
  398. package/icons/azure/azure-load-testing.js +78 -1
  399. package/icons/azure/azure-managed-grafana.js +19 -1
  400. package/icons/azure/azure-maps-accounts.js +16 -1
  401. package/icons/azure/azure-media-service.js +107 -1
  402. package/icons/azure/azure-migrate.js +57 -1
  403. package/icons/azure/azure-monitor-dashboard.js +58 -1
  404. package/icons/azure/azure-monitor-pipeline.js +101 -1
  405. package/icons/azure/azure-monitors-for-sap-solutions.js +71 -1
  406. package/icons/azure/azure-net-app-files.js +36 -1
  407. package/icons/azure/azure-network-function-manager-functions.js +94 -1
  408. package/icons/azure/azure-network-function-manager.js +98 -1
  409. package/icons/azure/azure-object-understanding.js +50 -1
  410. package/icons/azure/azure-open-ai.js +29 -1
  411. package/icons/azure/azure-operator-5g-core.js +86 -1
  412. package/icons/azure/azure-operator-insights.js +42 -1
  413. package/icons/azure/azure-operator-nexus.js +87 -1
  414. package/icons/azure/azure-operator-service-manager.js +41 -1
  415. package/icons/azure/azure-orbital.js +115 -1
  416. package/icons/azure/azure-programmable-connectivity.js +168 -1
  417. package/icons/azure/azure-purview-accounts.js +100 -1
  418. package/icons/azure/azure-quotas.js +54 -1
  419. package/icons/azure/azure-red-hat-open-shift.js +44 -1
  420. package/icons/azure/azure-sentinel.js +37 -1
  421. package/icons/azure/azure-service-bus.js +77 -1
  422. package/icons/azure/azure-sphere.js +68 -1
  423. package/icons/azure/azure-spring-apps.js +111 -1
  424. package/icons/azure/azure-sql-edge.js +157 -1
  425. package/icons/azure/azure-sql-server-stretch-databases.js +82 -1
  426. package/icons/azure/azure-sql-vm.js +37 -1
  427. package/icons/azure/azure-sql.js +27 -1
  428. package/icons/azure/azure-stack-edge.js +44 -1
  429. package/icons/azure/azure-stack-hci-sizer.js +90 -1
  430. package/icons/azure/azure-stack.js +54 -1
  431. package/icons/azure/azure-storage-mover.js +120 -1
  432. package/icons/azure/azure-support-center-blue.js +53 -1
  433. package/icons/azure/azure-sustainability.js +75 -1
  434. package/icons/azure/azure-synapse-analytics.js +60 -1
  435. package/icons/azure/azure-token-service.js +46 -1
  436. package/icons/azure/azure-video-indexer.js +82 -1
  437. package/icons/azure/azure-virtual-desktop.js +19 -1
  438. package/icons/azure/azure-vmware-solution.js +57 -1
  439. package/icons/azure/azure-workbooks.js +78 -1
  440. package/icons/azure/azurite.js +34 -1
  441. package/icons/azure/backlog.js +48 -1
  442. package/icons/azure/backup-vault.js +71 -1
  443. package/icons/azure/bare-metal-infrastructure.js +63 -1
  444. package/icons/azure/bastions.js +71 -1
  445. package/icons/azure/batch-accounts.js +52 -1
  446. package/icons/azure/batch-ai.js +56 -1
  447. package/icons/azure/biz-talk.js +39 -1
  448. package/icons/azure/blob-block.js +17 -1
  449. package/icons/azure/blob-page.js +43 -1
  450. package/icons/azure/blockchain-applications.js +43 -1
  451. package/icons/azure/blueprints.js +56 -1
  452. package/icons/azure/bonsai.js +63 -1
  453. package/icons/azure/bot-services.js +43 -1
  454. package/icons/azure/branch.js +43 -1
  455. package/icons/azure/browser.js +16 -1
  456. package/icons/azure/bug.js +26 -1
  457. package/icons/azure/builds.js +48 -1
  458. package/icons/azure/business-process-tracking.js +28 -1
  459. package/icons/azure/cache-redis.js +72 -1
  460. package/icons/azure/cache.js +113 -1
  461. package/icons/azure/capacity-reservation-groups.js +47 -1
  462. package/icons/azure/capacity.js +74 -1
  463. package/icons/azure/cdn-profiles.js +32 -1
  464. package/icons/azure/central-service-instance-for-sap.js +55 -1
  465. package/icons/azure/ceres.js +58 -1
  466. package/icons/azure/change-analysis.js +93 -1
  467. package/icons/azure/client-apps.js +21 -1
  468. package/icons/azure/cloud-services-classic.js +48 -1
  469. package/icons/azure/cloud-services-extended-support.js +78 -1
  470. package/icons/azure/cloud-test.js +58 -1
  471. package/icons/azure/code-optimization.js +146 -1
  472. package/icons/azure/code.js +94 -1
  473. package/icons/azure/cognitive-search.js +26 -1
  474. package/icons/azure/cognitive-services-decisions.js +139 -1
  475. package/icons/azure/cognitive-services.js +42 -1
  476. package/icons/azure/collaborative-service.js +91 -1
  477. package/icons/azure/commit.js +30 -1
  478. package/icons/azure/community-images.js +68 -1
  479. package/icons/azure/compliance-center.js +70 -1
  480. package/icons/azure/compliance.js +35 -1
  481. package/icons/azure/compute-fleet.js +102 -1
  482. package/icons/azure/computer-vision.js +35 -1
  483. package/icons/azure/conditional-access.js +45 -1
  484. package/icons/azure/confidential-ledgers.js +96 -1
  485. package/icons/azure/connected-cache.js +99 -1
  486. package/icons/azure/connected-vehicle-platform.js +111 -1
  487. package/icons/azure/connections.js +54 -1
  488. package/icons/azure/consortium.js +63 -1
  489. package/icons/azure/container-apps-environments.js +66 -1
  490. package/icons/azure/container-instances.js +37 -1
  491. package/icons/azure/container-registries.js +68 -1
  492. package/icons/azure/container-services-deprecated.js +142 -1
  493. package/icons/azure/content-moderators.js +63 -1
  494. package/icons/azure/content-safety.js +88 -1
  495. package/icons/azure/controls-horizontal.js +135 -1
  496. package/icons/azure/controls.js +33 -1
  497. package/icons/azure/cost-alerts.js +28 -1
  498. package/icons/azure/cost-analysis.js +35 -1
  499. package/icons/azure/cost-budgets.js +30 -1
  500. package/icons/azure/cost-export.js +36 -1
  501. package/icons/azure/cost-management-and-billing.js +41 -1
  502. package/icons/azure/cost-management.js +46 -1
  503. package/icons/azure/counter.js +33 -1
  504. package/icons/azure/cubes.js +16 -1
  505. package/icons/azure/custom-ip-prefix.js +51 -1
  506. package/icons/azure/custom-vision.js +59 -1
  507. package/icons/azure/customer-lockbox-for-microsoft-azure.js +64 -1
  508. package/icons/azure/dashboard-hub.js +94 -1
  509. package/icons/azure/dashboard.js +42 -1
  510. package/icons/azure/data-box.js +33 -1
  511. package/icons/azure/data-collection-rules.js +64 -1
  512. package/icons/azure/data-factories.js +42 -1
  513. package/icons/azure/data-lake-analytics.js +43 -1
  514. package/icons/azure/data-lake-storage-gen1.js +49 -1
  515. package/icons/azure/data-lake-store-gen1.js +49 -1
  516. package/icons/azure/data-share-invitations.js +34 -1
  517. package/icons/azure/data-shares.js +67 -1
  518. package/icons/azure/database-instance-for-sap.js +80 -1
  519. package/icons/azure/ddo-s-protection-plans.js +47 -1
  520. package/icons/azure/dedicated-hsm.js +49 -1
  521. package/icons/azure/defender-cm-local-manager.js +175 -1
  522. package/icons/azure/defender-dcs-controller.js +99 -1
  523. package/icons/azure/defender-distributer-control-system.js +67 -1
  524. package/icons/azure/defender-engineering-station.js +115 -1
  525. package/icons/azure/defender-external-management.js +132 -1
  526. package/icons/azure/defender-freezer-monitor.js +217 -1
  527. package/icons/azure/defender-historian.js +53 -1
  528. package/icons/azure/defender-hmi.js +54 -1
  529. package/icons/azure/defender-industrial-packaging-system.js +97 -1
  530. package/icons/azure/defender-industrial-printer.js +51 -1
  531. package/icons/azure/defender-industrial-robot.js +165 -1
  532. package/icons/azure/defender-industrial-scale-system.js +80 -1
  533. package/icons/azure/defender-marquee.js +68 -1
  534. package/icons/azure/defender-meter.js +156 -1
  535. package/icons/azure/defender-plc.js +66 -1
  536. package/icons/azure/defender-pneumatic-device.js +72 -1
  537. package/icons/azure/defender-programable-board.js +126 -1
  538. package/icons/azure/defender-relay.js +67 -1
  539. package/icons/azure/defender-robot-controller.js +123 -1
  540. package/icons/azure/defender-rtu.js +23 -1
  541. package/icons/azure/defender-sensor.js +55 -1
  542. package/icons/azure/defender-slot.js +31 -1
  543. package/icons/azure/defender-web-guiding-system.js +266 -1
  544. package/icons/azure/detonation.js +41 -1
  545. package/icons/azure/dev-console.js +30 -1
  546. package/icons/azure/dev-ops-starter.js +102 -1
  547. package/icons/azure/dev-test-labs.js +46 -1
  548. package/icons/azure/device-compliance.js +62 -1
  549. package/icons/azure/device-configuration.js +66 -1
  550. package/icons/azure/device-enrollment.js +69 -1
  551. package/icons/azure/device-provisioning-services.js +54 -1
  552. package/icons/azure/device-security-apple.js +54 -1
  553. package/icons/azure/device-security-google.js +54 -1
  554. package/icons/azure/device-security-windows.js +54 -1
  555. package/icons/azure/device-update-io-t-hub.js +46 -1
  556. package/icons/azure/devices.js +29 -1
  557. package/icons/azure/diagnostics-settings.js +51 -1
  558. package/icons/azure/digital-twins.js +73 -1
  559. package/icons/azure/disk-encryption-sets.js +63 -1
  560. package/icons/azure/disk-pool.js +92 -1
  561. package/icons/azure/disks-classic.js +74 -1
  562. package/icons/azure/disks-snapshots.js +71 -1
  563. package/icons/azure/disks.js +63 -1
  564. package/icons/azure/dns-multistack.js +49 -1
  565. package/icons/azure/dns-private-resolver.js +50 -1
  566. package/icons/azure/dns-security-policy.js +90 -1
  567. package/icons/azure/dns-zones.js +37 -1
  568. package/icons/azure/download.js +60 -1
  569. package/icons/azure/e-books.js +42 -1
  570. package/icons/azure/edge-management.js +64 -1
  571. package/icons/azure/education.js +42 -1
  572. package/icons/azure/elastic-job-agents.js +61 -1
  573. package/icons/azure/elastic-san.js +65 -1
  574. package/icons/azure/endpoint-analytics.js +83 -1
  575. package/icons/azure/enterprise-applications.js +66 -1
  576. package/icons/azure/entra-connect-health.js +132 -1
  577. package/icons/azure/entra-connect-sync.js +86 -1
  578. package/icons/azure/entra-connect.js +123 -1
  579. package/icons/azure/entra-domain-services.js +105 -1
  580. package/icons/azure/entra-global-secure-access.js +76 -1
  581. package/icons/azure/entra-id-protection.js +74 -1
  582. package/icons/azure/entra-identity-custom-roles.js +62 -1
  583. package/icons/azure/entra-identity-licenses.js +85 -1
  584. package/icons/azure/entra-identity-risky-signins.js +28 -1
  585. package/icons/azure/entra-identity-risky-users.js +28 -1
  586. package/icons/azure/entra-identity-roles-and-administrators.js +53 -1
  587. package/icons/azure/entra-internet-access.js +105 -1
  588. package/icons/azure/entra-managed-identities.js +120 -1
  589. package/icons/azure/entra-private-access.js +104 -1
  590. package/icons/azure/entra-privleged-identity-management.js +120 -1
  591. package/icons/azure/entra-verified-id.js +75 -1
  592. package/icons/azure/error.js +30 -1
  593. package/icons/azure/event-grid-domains.js +75 -1
  594. package/icons/azure/event-grid-subscriptions.js +75 -1
  595. package/icons/azure/event-grid-topics.js +90 -1
  596. package/icons/azure/event-hub-clusters.js +77 -1
  597. package/icons/azure/event-hubs.js +64 -1
  598. package/icons/azure/exchange-access.js +45 -1
  599. package/icons/azure/exchange-on-premises-access.js +39 -1
  600. package/icons/azure/express-route-circuits.js +60 -1
  601. package/icons/azure/express-route-direct.js +61 -1
  602. package/icons/azure/express-route-traffic-collector.js +97 -1
  603. package/icons/azure/extended-security-updates.js +44 -1
  604. package/icons/azure/extensions.js +28 -1
  605. package/icons/azure/external-identities.js +42 -1
  606. package/icons/azure/face-apis.js +19 -1
  607. package/icons/azure/feature-previews.js +21 -1
  608. package/icons/azure/fhir-service.js +60 -1
  609. package/icons/azure/fiji.js +42 -1
  610. package/icons/azure/file.js +29 -1
  611. package/icons/azure/files.js +45 -1
  612. package/icons/azure/firewalls.js +32 -1
  613. package/icons/azure/folder-blank.js +39 -1
  614. package/icons/azure/folder-website.js +123 -1
  615. package/icons/azure/form-recognizers.js +48 -1
  616. package/icons/azure/free-services.js +43 -1
  617. package/icons/azure/front-door-and-cdn-profiles.js +37 -1
  618. package/icons/azure/ftp.js +17 -1
  619. package/icons/azure/function-apps.js +61 -1
  620. package/icons/azure/gear.js +37 -1
  621. package/icons/azure/genomics-accounts.js +68 -1
  622. package/icons/azure/genomics.js +57 -1
  623. package/icons/azure/globe-error.js +42 -1
  624. package/icons/azure/globe-success.js +52 -1
  625. package/icons/azure/globe-warning.js +53 -1
  626. package/icons/azure/groups.js +42 -1
  627. package/icons/azure/guide.js +17 -1
  628. package/icons/azure/hd-insight-clusters.js +71 -1
  629. package/icons/azure/hdi-aks-cluster.js +60 -1
  630. package/icons/azure/heart.js +31 -1
  631. package/icons/azure/help-and-support.js +55 -1
  632. package/icons/azure/host-groups.js +48 -1
  633. package/icons/azure/host-pools.js +19 -1
  634. package/icons/azure/hosts.js +46 -1
  635. package/icons/azure/ic-m-troubleshooting.js +60 -1
  636. package/icons/azure/identity-governance.js +52 -1
  637. package/icons/azure/identity-multi-factor-authentication.js +117 -1
  638. package/icons/azure/identity-secure-score.js +55 -1
  639. package/icons/azure/image-definitions.js +38 -1
  640. package/icons/azure/image-templates.js +43 -1
  641. package/icons/azure/image-versions.js +38 -1
  642. package/icons/azure/image.js +31 -1
  643. package/icons/azure/images.js +37 -1
  644. package/icons/azure/immersive-readers.js +82 -1
  645. package/icons/azure/import-export-jobs.js +25 -1
  646. package/icons/azure/industrial-io-t.js +97 -1
  647. package/icons/azure/information.js +21 -1
  648. package/icons/azure/infrastructure-backup.js +89 -1
  649. package/icons/azure/input-output.js +97 -1
  650. package/icons/azure/instance-pools.js +87 -1
  651. package/icons/azure/integration-accounts.js +52 -1
  652. package/icons/azure/integration-environments.js +94 -1
  653. package/icons/azure/integration-service-environments.js +90 -1
  654. package/icons/azure/internet-analyzer-profiles.js +59 -1
  655. package/icons/azure/intune-app-protection.js +79 -1
  656. package/icons/azure/intune-for-education.js +79 -1
  657. package/icons/azure/intune-trends.js +40 -1
  658. package/icons/azure/intune.js +46 -1
  659. package/icons/azure/io-t-central-applications.js +20 -1
  660. package/icons/azure/io-t-edge.js +25 -1
  661. package/icons/azure/io-t-hub.js +36 -1
  662. package/icons/azure/ip-address-manager.js +63 -1
  663. package/icons/azure/ip-groups.js +45 -1
  664. package/icons/azure/journey-hub.js +30 -1
  665. package/icons/azure/key-vaults.js +61 -1
  666. package/icons/azure/keys.js +97 -1
  667. package/icons/azure/kubernetes-fleet-manager.js +73 -1
  668. package/icons/azure/kubernetes-services.js +142 -1
  669. package/icons/azure/lab-accounts.js +69 -1
  670. package/icons/azure/lab-services.js +46 -1
  671. package/icons/azure/language-understanding.js +25 -1
  672. package/icons/azure/language.js +71 -1
  673. package/icons/azure/launch-portal.js +36 -1
  674. package/icons/azure/learn.js +61 -1
  675. package/icons/azure/load-balancer-hub.js +101 -1
  676. package/icons/azure/load-balancers.js +28 -1
  677. package/icons/azure/load-test.js +61 -1
  678. package/icons/azure/load-testing.js +71 -1
  679. package/icons/azure/local-network-gateways.js +44 -1
  680. package/icons/azure/location.js +34 -1
  681. package/icons/azure/log-analytics-query-pack.js +68 -1
  682. package/icons/azure/log-analytics-workspaces.js +58 -1
  683. package/icons/azure/log-streaming.js +57 -1
  684. package/icons/azure/logic-apps-custom-connector.js +76 -1
  685. package/icons/azure/logic-apps.js +65 -1
  686. package/icons/azure/machine-learning-studio-classic-web-services.js +49 -1
  687. package/icons/azure/machine-learning-studio-web-service-plans.js +84 -1
  688. package/icons/azure/machine-learning-studio-workspaces.js +55 -1
  689. package/icons/azure/machine-learning.js +29 -1
  690. package/icons/azure/machines-azure-arc.js +27 -1
  691. package/icons/azure/maintenance-configuration.js +62 -1
  692. package/icons/azure/managed-applications-center.js +55 -1
  693. package/icons/azure/managed-database.js +79 -1
  694. package/icons/azure/managed-desktop.js +40 -1
  695. package/icons/azure/managed-dev-ops-pools.js +59 -1
  696. package/icons/azure/managed-file-shares.js +59 -1
  697. package/icons/azure/managed-identities.js +66 -1
  698. package/icons/azure/managed-instance-apache-cassandra.js +100 -1
  699. package/icons/azure/managed-service-fabric.js +109 -1
  700. package/icons/azure/management-groups.js +77 -1
  701. package/icons/azure/management-portal.js +23 -1
  702. package/icons/azure/marketplace-management.js +47 -1
  703. package/icons/azure/marketplace.js +38 -1
  704. package/icons/azure/med-tech-service.js +87 -1
  705. package/icons/azure/media-file.js +36 -1
  706. package/icons/azure/media.js +108 -1
  707. package/icons/azure/mesh-applications.js +47 -1
  708. package/icons/azure/metrics-advisor.js +58 -1
  709. package/icons/azure/metrics.js +34 -1
  710. package/icons/azure/microsoft-defender-easm.js +69 -1
  711. package/icons/azure/microsoft-defender-for-cloud.js +61 -1
  712. package/icons/azure/microsoft-defender-for-io-t.js +54 -1
  713. package/icons/azure/microsoft-dev-box.js +143 -1
  714. package/icons/azure/mindaro.js +47 -1
  715. package/icons/azure/mission-landing-zone.js +48 -1
  716. package/icons/azure/mobile-engagement.js +46 -1
  717. package/icons/azure/mobile-networks.js +86 -1
  718. package/icons/azure/mobile.js +28 -1
  719. package/icons/azure/modular-data-center.js +83 -1
  720. package/icons/azure/module.js +25 -1
  721. package/icons/azure/monitor-health-models.js +110 -1
  722. package/icons/azure/monitor.js +61 -1
  723. package/icons/azure/multi-tenancy.js +80 -1
  724. package/icons/azure/multifactor-authentication.js +84 -1
  725. package/icons/azure/my-customers.js +42 -1
  726. package/icons/azure/nat.js +56 -1
  727. package/icons/azure/network-interfaces.js +52 -1
  728. package/icons/azure/network-managers.js +55 -1
  729. package/icons/azure/network-security-groups.js +53 -1
  730. package/icons/azure/network-security-perimeters.js +113 -1
  731. package/icons/azure/network-watcher.js +55 -1
  732. package/icons/azure/notification-hub-namespaces.js +33 -1
  733. package/icons/azure/notification-hubs.js +22 -1
  734. package/icons/azure/offers.js +35 -1
  735. package/icons/azure/on-premises-data-gateways.js +44 -1
  736. package/icons/azure/open-supply-chain-platform.js +111 -1
  737. package/icons/azure/operation-log-classic.js +44 -1
  738. package/icons/azure/oracle-database.js +55 -1
  739. package/icons/azure/os-images-classic.js +60 -1
  740. package/icons/azure/osconfig.js +82 -1
  741. package/icons/azure/outbound-connection.js +24 -1
  742. package/icons/azure/partner-namespace.js +97 -1
  743. package/icons/azure/partner-registration.js +117 -1
  744. package/icons/azure/partner-topic.js +93 -1
  745. package/icons/azure/peering-service.js +27 -1
  746. package/icons/azure/peerings.js +44 -1
  747. package/icons/azure/personalizers.js +99 -1
  748. package/icons/azure/plans.js +40 -1
  749. package/icons/azure/policy.js +34 -1
  750. package/icons/azure/power-bi-embedded.js +69 -1
  751. package/icons/azure/power-platform.js +163 -1
  752. package/icons/azure/power-up.js +42 -1
  753. package/icons/azure/power.js +31 -1
  754. package/icons/azure/powershell.js +30 -1
  755. package/icons/azure/preview-features.js +72 -1
  756. package/icons/azure/private-endpoints.js +80 -1
  757. package/icons/azure/private-link-service.js +83 -1
  758. package/icons/azure/private-link-services.js +72 -1
  759. package/icons/azure/private-link.js +94 -1
  760. package/icons/azure/process-explorer.js +23 -1
  761. package/icons/azure/production-ready-database.js +70 -1
  762. package/icons/azure/proximity-placement-groups.js +71 -1
  763. package/icons/azure/public-ip-addresses-classic.js +36 -1
  764. package/icons/azure/public-ip-addresses.js +19 -1
  765. package/icons/azure/public-ip-prefixes.js +85 -1
  766. package/icons/azure/qn-a-makers.js +61 -1
  767. package/icons/azure/quickstart-center.js +76 -1
  768. package/icons/azure/recent.js +57 -1
  769. package/icons/azure/recovery-services-vaults.js +67 -1
  770. package/icons/azure/region-management.js +42 -1
  771. package/icons/azure/relays.js +45 -1
  772. package/icons/azure/remote-rendering.js +71 -1
  773. package/icons/azure/reservations.js +37 -1
  774. package/icons/azure/reserved-capacity.js +45 -1
  775. package/icons/azure/reserved-ip-addresses-classic.js +38 -1
  776. package/icons/azure/resource-explorer.js +33 -1
  777. package/icons/azure/resource-graph-explorer.js +58 -1
  778. package/icons/azure/resource-group-list.js +48 -1
  779. package/icons/azure/resource-groups.js +40 -1
  780. package/icons/azure/resource-guard.js +46 -1
  781. package/icons/azure/resource-linked.js +51 -1
  782. package/icons/azure/resource-management-private-link.js +61 -1
  783. package/icons/azure/resource-mover.js +20 -1
  784. package/icons/azure/resources-provider.js +27 -1
  785. package/icons/azure/restore-points-collections.js +73 -1
  786. package/icons/azure/restore-points.js +72 -1
  787. package/icons/azure/route-filters.js +39 -1
  788. package/icons/azure/route-tables.js +62 -1
  789. package/icons/azure/rtos.js +64 -1
  790. package/icons/azure/savings-plans.js +75 -1
  791. package/icons/azure/scheduler-job-collections.js +73 -1
  792. package/icons/azure/scheduler.js +75 -1
  793. package/icons/azure/scvmm-management-servers.js +79 -1
  794. package/icons/azure/search-grid.js +48 -1
  795. package/icons/azure/search.js +28 -1
  796. package/icons/azure/security-baselines.js +55 -1
  797. package/icons/azure/security.js +22 -1
  798. package/icons/azure/send-grid-accounts.js +42 -1
  799. package/icons/azure/server-farm.js +65 -1
  800. package/icons/azure/serverless-search.js +65 -1
  801. package/icons/azure/service-catalog-mad.js +65 -1
  802. package/icons/azure/service-endpoint-policies.js +75 -1
  803. package/icons/azure/service-fabric-clusters.js +97 -1
  804. package/icons/azure/service-health.js +45 -1
  805. package/icons/azure/service-providers.js +71 -1
  806. package/icons/azure/shared-image-galleries.js +32 -1
  807. package/icons/azure/signal-r.js +22 -1
  808. package/icons/azure/software-as-a-service.js +65 -1
  809. package/icons/azure/software-updates.js +22 -1
  810. package/icons/azure/solutions.js +58 -1
  811. package/icons/azure/sonic-dash.js +95 -1
  812. package/icons/azure/spatial-anchor-accounts.js +88 -1
  813. package/icons/azure/speech-services.js +43 -1
  814. package/icons/azure/spot-vm.js +40 -1
  815. package/icons/azure/spot-vmss.js +77 -1
  816. package/icons/azure/sql-data-warehouses.js +82 -1
  817. package/icons/azure/sql-database.js +63 -1
  818. package/icons/azure/sql-elastic-pools.js +89 -1
  819. package/icons/azure/sql-managed-instance.js +73 -1
  820. package/icons/azure/sql-server-registries.js +75 -1
  821. package/icons/azure/sql-server.js +46 -1
  822. package/icons/azure/ssd.js +36 -1
  823. package/icons/azure/ssh-keys.js +42 -1
  824. package/icons/azure/ssis-lift-and-shift-ir.js +72 -1
  825. package/icons/azure/stack-hci-premium.js +144 -1
  826. package/icons/azure/static-apps.js +29 -1
  827. package/icons/azure/stor-simple-data-managers.js +57 -1
  828. package/icons/azure/stor-simple-device-managers.js +38 -1
  829. package/icons/azure/storage-accounts-classic.js +53 -1
  830. package/icons/azure/storage-accounts.js +35 -1
  831. package/icons/azure/storage-actions.js +88 -1
  832. package/icons/azure/storage-azure-files.js +47 -1
  833. package/icons/azure/storage-container.js +35 -1
  834. package/icons/azure/storage-explorer.js +38 -1
  835. package/icons/azure/storage-functions.js +57 -1
  836. package/icons/azure/storage-queue.js +24 -1
  837. package/icons/azure/storage-sync-services.js +74 -1
  838. package/icons/azure/stream-analytics-jobs.js +53 -1
  839. package/icons/azure/subnet.js +43 -1
  840. package/icons/azure/subscriptions.js +41 -1
  841. package/icons/azure/system-topic.js +182 -1
  842. package/icons/azure/table.js +23 -1
  843. package/icons/azure/tag.js +28 -1
  844. package/icons/azure/tags.js +46 -1
  845. package/icons/azure/targets-management.js +54 -1
  846. package/icons/azure/template-specs.js +67 -1
  847. package/icons/azure/templates.js +33 -1
  848. package/icons/azure/tenant-properties.js +90 -1
  849. package/icons/azure/tenant-status.js +40 -1
  850. package/icons/azure/test-base.js +56 -1
  851. package/icons/azure/tfs-vc-repository.js +97 -1
  852. package/icons/azure/time-series-data-sets.js +63 -1
  853. package/icons/azure/time-series-insights-access-policies.js +42 -1
  854. package/icons/azure/time-series-insights-environments.js +39 -1
  855. package/icons/azure/time-series-insights-event-sources.js +57 -1
  856. package/icons/azure/toolbox.js +26 -1
  857. package/icons/azure/traffic-manager-profiles.js +47 -1
  858. package/icons/azure/translator-text.js +75 -1
  859. package/icons/azure/troubleshoot.js +38 -1
  860. package/icons/azure/universal-print.js +74 -1
  861. package/icons/azure/update-management-center.js +135 -1
  862. package/icons/azure/updates.js +47 -1
  863. package/icons/azure/user-privacy.js +55 -1
  864. package/icons/azure/user-settings.js +68 -1
  865. package/icons/azure/user-subscriptions.js +104 -1
  866. package/icons/azure/users.js +26 -1
  867. package/icons/azure/verifiable-credentials.js +99 -1
  868. package/icons/azure/verification-as-a-service.js +84 -1
  869. package/icons/azure/versions.js +24 -1
  870. package/icons/azure/video-analyzers.js +42 -1
  871. package/icons/azure/virtual-clusters.js +99 -1
  872. package/icons/azure/virtual-enclaves.js +40 -1
  873. package/icons/azure/virtual-instance-for-sap.js +81 -1
  874. package/icons/azure/virtual-machine.js +52 -1
  875. package/icons/azure/virtual-machines-classic.js +53 -1
  876. package/icons/azure/virtual-network-gateways.js +56 -1
  877. package/icons/azure/virtual-networks-classic.js +86 -1
  878. package/icons/azure/virtual-networks.js +86 -1
  879. package/icons/azure/virtual-router.js +29 -1
  880. package/icons/azure/virtual-visits-builder.js +81 -1
  881. package/icons/azure/virtual-wan-hub.js +72 -1
  882. package/icons/azure/virtual-wans.js +60 -1
  883. package/icons/azure/vm-app-definitions.js +66 -1
  884. package/icons/azure/vm-app-versions.js +91 -1
  885. package/icons/azure/vm-image-version.js +103 -1
  886. package/icons/azure/vm-images-classic.js +60 -1
  887. package/icons/azure/vm-scale-sets.js +60 -1
  888. package/icons/azure/wac-installer.js +121 -1
  889. package/icons/azure/wac.js +56 -1
  890. package/icons/azure/web-app-database.js +177 -1
  891. package/icons/azure/web-application-firewall-policies-waf.js +97 -1
  892. package/icons/azure/web-jobs.js +119 -1
  893. package/icons/azure/web-slots.js +30 -1
  894. package/icons/azure/web-test.js +122 -1
  895. package/icons/azure/website-power.js +90 -1
  896. package/icons/azure/website-staging.js +24 -1
  897. package/icons/azure/windows-notification-services.js +78 -1
  898. package/icons/azure/windows10-core-services.js +61 -1
  899. package/icons/azure/workbooks.js +38 -1
  900. package/icons/azure/worker-container-app.js +91 -1
  901. package/icons/azure/workflow.js +47 -1
  902. package/icons/azure/workspace-gateway.js +86 -1
  903. package/icons/azure/workspaces.js +58 -1
  904. package/icons/gcp/access-context-manager.js +17 -1
  905. package/icons/gcp/administration.js +46 -1
  906. package/icons/gcp/advanced-agent-modeling.js +31 -1
  907. package/icons/gcp/advanced-solutions-lab.js +84 -1
  908. package/icons/gcp/agent-assist.js +12 -1
  909. package/icons/gcp/ai-hub.js +23 -1
  910. package/icons/gcp/ai-platform-unified.js +40 -1
  911. package/icons/gcp/ai-platform.js +23 -1
  912. package/icons/gcp/analytics-hub.js +28 -1
  913. package/icons/gcp/anthos-config-management.js +28 -1
  914. package/icons/gcp/anthos-service-mesh.js +13 -1
  915. package/icons/gcp/anthos.js +11 -1
  916. package/icons/gcp/api-analytics.js +26 -1
  917. package/icons/gcp/api-monetization.js +23 -1
  918. package/icons/gcp/api.js +29 -1
  919. package/icons/gcp/apigee-api-platform.js +35 -1
  920. package/icons/gcp/apigee-sense.js +28 -1
  921. package/icons/gcp/app-engine.js +39 -1
  922. package/icons/gcp/artifact-registry.js +33 -1
  923. package/icons/gcp/asset-inventory.js +19 -1
  924. package/icons/gcp/assured-workloads.js +38 -1
  925. package/icons/gcp/auto-ml-natural-language.js +9 -1
  926. package/icons/gcp/auto-ml-tables.js +19 -1
  927. package/icons/gcp/auto-ml-translation.js +25 -1
  928. package/icons/gcp/auto-ml-video-intelligence.js +25 -1
  929. package/icons/gcp/auto-ml-vision.js +18 -1
  930. package/icons/gcp/auto-ml.js +14 -1
  931. package/icons/gcp/bare-metal-solutions.js +10 -1
  932. package/icons/gcp/batch.js +12 -1
  933. package/icons/gcp/beyondcorp.js +13 -1
  934. package/icons/gcp/big-query.js +28 -1
  935. package/icons/gcp/bigtable.js +116 -1
  936. package/icons/gcp/billing.js +34 -1
  937. package/icons/gcp/binary-authorization.js +22 -1
  938. package/icons/gcp/catalog.js +29 -1
  939. package/icons/gcp/certificate-authority-service.js +33 -1
  940. package/icons/gcp/certificate-manager.js +24 -1
  941. package/icons/gcp/cloud-api-gateway.js +13 -1
  942. package/icons/gcp/cloud-apis.js +18 -1
  943. package/icons/gcp/cloud-armor.js +27 -1
  944. package/icons/gcp/cloud-asset-inventory.js +10 -1
  945. package/icons/gcp/cloud-audit-logs.js +60 -1
  946. package/icons/gcp/cloud-build.js +19 -1
  947. package/icons/gcp/cloud-cdn.js +22 -1
  948. package/icons/gcp/cloud-code.js +16 -1
  949. package/icons/gcp/cloud-composer.js +19 -1
  950. package/icons/gcp/cloud-data-fusion.js +15 -1
  951. package/icons/gcp/cloud-deploy.js +10 -1
  952. package/icons/gcp/cloud-deployment-manager.js +24 -1
  953. package/icons/gcp/cloud-dns.js +21 -1
  954. package/icons/gcp/cloud-domains.js +26 -1
  955. package/icons/gcp/cloud-ekm.js +13 -1
  956. package/icons/gcp/cloud-endpoints.js +26 -1
  957. package/icons/gcp/cloud-external-ip-addresses.js +21 -1
  958. package/icons/gcp/cloud-firewall-rules.js +15 -1
  959. package/icons/gcp/cloud-for-marketing.js +13 -1
  960. package/icons/gcp/cloud-functions.js +45 -1
  961. package/icons/gcp/cloud-generic.js +13 -1
  962. package/icons/gcp/cloud-gpu.js +18 -1
  963. package/icons/gcp/cloud-healthcare-api.js +65 -1
  964. package/icons/gcp/cloud-healthcare-marketplace.js +10 -1
  965. package/icons/gcp/cloud-hsm.js +43 -1
  966. package/icons/gcp/cloud-ids.js +42 -1
  967. package/icons/gcp/cloud-inference-api.js +27 -1
  968. package/icons/gcp/cloud-interconnect.js +15 -1
  969. package/icons/gcp/cloud-jobs-api.js +37 -1
  970. package/icons/gcp/cloud-load-balancing.js +20 -1
  971. package/icons/gcp/cloud-logging.js +35 -1
  972. package/icons/gcp/cloud-media-edge.js +23 -1
  973. package/icons/gcp/cloud-monitoring.js +26 -1
  974. package/icons/gcp/cloud-nat.js +31 -1
  975. package/icons/gcp/cloud-natural-language-api.js +40 -1
  976. package/icons/gcp/cloud-network.js +23 -1
  977. package/icons/gcp/cloud-ops.js +32 -1
  978. package/icons/gcp/cloud-optimization-ai-fleet-routing-api.js +34 -1
  979. package/icons/gcp/cloud-optimization-ai.js +28 -1
  980. package/icons/gcp/cloud-router.js +13 -1
  981. package/icons/gcp/cloud-routes.js +18 -1
  982. package/icons/gcp/cloud-run-for-anthos.js +21 -1
  983. package/icons/gcp/cloud-run.js +13 -1
  984. package/icons/gcp/cloud-scheduler.js +49 -1
  985. package/icons/gcp/cloud-security-scanner.js +21 -1
  986. package/icons/gcp/cloud-shell.js +16 -1
  987. package/icons/gcp/cloud-spanner.js +42 -1
  988. package/icons/gcp/cloud-sql.js +16 -1
  989. package/icons/gcp/cloud-storage.js +22 -1
  990. package/icons/gcp/cloud-tasks.js +101 -1
  991. package/icons/gcp/cloud-test-lab.js +39 -1
  992. package/icons/gcp/cloud-tpu.js +141 -1
  993. package/icons/gcp/cloud-translation-api.js +16 -1
  994. package/icons/gcp/cloud-vision-api.js +40 -1
  995. package/icons/gcp/cloud-vpn.js +23 -1
  996. package/icons/gcp/compute-engine.js +23 -1
  997. package/icons/gcp/configuration-management.js +22 -1
  998. package/icons/gcp/connectivity-test.js +6 -1
  999. package/icons/gcp/connectors.js +13 -1
  1000. package/icons/gcp/contact-center-ai.js +6 -1
  1001. package/icons/gcp/container-optimized-os.js +13 -1
  1002. package/icons/gcp/container-registry.js +118 -1
  1003. package/icons/gcp/data-catalog.js +25 -1
  1004. package/icons/gcp/data-labeling.js +31 -1
  1005. package/icons/gcp/data-layers.js +11 -1
  1006. package/icons/gcp/data-loss-prevention-api.js +60 -1
  1007. package/icons/gcp/data-qn-a.js +24 -1
  1008. package/icons/gcp/data-studio.js +28 -1
  1009. package/icons/gcp/data-transfer.js +17 -1
  1010. package/icons/gcp/database-migration-service.js +24 -1
  1011. package/icons/gcp/dataflow.js +50 -1
  1012. package/icons/gcp/datalab.js +13 -1
  1013. package/icons/gcp/dataplex.js +15 -1
  1014. package/icons/gcp/datapol.js +70 -1
  1015. package/icons/gcp/dataprep.js +25 -1
  1016. package/icons/gcp/dataproc-metastore.js +12 -1
  1017. package/icons/gcp/dataproc.js +43 -1
  1018. package/icons/gcp/datashare.js +37 -1
  1019. package/icons/gcp/datastore.js +39 -1
  1020. package/icons/gcp/datastream.js +35 -1
  1021. package/icons/gcp/debugger.js +31 -1
  1022. package/icons/gcp/developer-portal.js +24 -1
  1023. package/icons/gcp/dialogflow-cx.js +28 -1
  1024. package/icons/gcp/dialogflow-insights.js +33 -1
  1025. package/icons/gcp/dialogflow.js +16 -1
  1026. package/icons/gcp/document-ai.js +27 -1
  1027. package/icons/gcp/early-access-center.js +12 -1
  1028. package/icons/gcp/error-reporting.js +42 -1
  1029. package/icons/gcp/eventarc.js +24 -1
  1030. package/icons/gcp/filestore.js +22 -1
  1031. package/icons/gcp/financial-services-marketplace.js +21 -1
  1032. package/icons/gcp/firestore.js +30 -1
  1033. package/icons/gcp/fleet-engine.js +10 -1
  1034. package/icons/gcp/free-trial.js +36 -1
  1035. package/icons/gcp/game-servers.js +32 -1
  1036. package/icons/gcp/gce-systems-management.js +13 -1
  1037. package/icons/gcp/genomics.js +23 -1
  1038. package/icons/gcp/gke-on-prem.js +31 -1
  1039. package/icons/gcp/google-cloud-marketplace.js +29 -1
  1040. package/icons/gcp/google-kubernetes-engine.js +23 -1
  1041. package/icons/gcp/google-maps-platform.js +47 -1
  1042. package/icons/gcp/healthcare-nlp-api.js +13 -1
  1043. package/icons/gcp/home.js +25 -1
  1044. package/icons/gcp/identity-and-access-management.js +23 -1
  1045. package/icons/gcp/identity-aware-proxy.js +32 -1
  1046. package/icons/gcp/identity-platform.js +26 -1
  1047. package/icons/gcp/iot-core.js +23 -1
  1048. package/icons/gcp/iot-edge.js +86 -1
  1049. package/icons/gcp/key-access-justifications.js +46 -1
  1050. package/icons/gcp/key-management-service.js +23 -1
  1051. package/icons/gcp/kuberun.js +26 -1
  1052. package/icons/gcp/launcher.js +35 -1
  1053. package/icons/gcp/local-ssd.js +13 -1
  1054. package/icons/gcp/looker.js +46 -1
  1055. package/icons/gcp/managed-service-for-microsoft-active-directory.js +59 -1
  1056. package/icons/gcp/media-translation-api.js +28 -1
  1057. package/icons/gcp/memorystore.js +26 -1
  1058. package/icons/gcp/migrate-for-anthos.js +13 -1
  1059. package/icons/gcp/migrate-for-compute-engine.js +13 -1
  1060. package/icons/gcp/my-cloud.js +21 -1
  1061. package/icons/gcp/network-connectivity-center.js +84 -1
  1062. package/icons/gcp/network-intelligence-center.js +13 -1
  1063. package/icons/gcp/network-security.js +38 -1
  1064. package/icons/gcp/network-tiers.js +53 -1
  1065. package/icons/gcp/network-topology.js +13 -1
  1066. package/icons/gcp/onboarding.js +25 -1
  1067. package/icons/gcp/os-configuration-management.js +13 -1
  1068. package/icons/gcp/os-inventory-management.js +15 -1
  1069. package/icons/gcp/os-patch-management.js +13 -1
  1070. package/icons/gcp/partner-interconnect.js +21 -1
  1071. package/icons/gcp/partner-portal.js +35 -1
  1072. package/icons/gcp/performance-dashboard.js +13 -1
  1073. package/icons/gcp/permissions.js +35 -1
  1074. package/icons/gcp/persistent-disk.js +10 -1
  1075. package/icons/gcp/phishing-protection.js +48 -1
  1076. package/icons/gcp/policy-analyzer.js +13 -1
  1077. package/icons/gcp/premium-network-tier.js +19 -1
  1078. package/icons/gcp/private-connectivity.js +18 -1
  1079. package/icons/gcp/private-service-connect.js +27 -1
  1080. package/icons/gcp/producer-portal.js +21 -1
  1081. package/icons/gcp/profiler.js +29 -1
  1082. package/icons/gcp/project.js +28 -1
  1083. package/icons/gcp/pub-sub.js +41 -1
  1084. package/icons/gcp/quantum-engine.js +27 -1
  1085. package/icons/gcp/quotas.js +42 -1
  1086. package/icons/gcp/real-world-insights.js +19 -1
  1087. package/icons/gcp/recommendations-ai.js +56 -1
  1088. package/icons/gcp/release-notes.js +12 -1
  1089. package/icons/gcp/retail-api.js +22 -1
  1090. package/icons/gcp/risk-manager.js +12 -1
  1091. package/icons/gcp/runtime-config.js +35 -1
  1092. package/icons/gcp/secret-manager.js +13 -1
  1093. package/icons/gcp/security-command-center.js +18 -1
  1094. package/icons/gcp/security-health-advisor.js +61 -1
  1095. package/icons/gcp/security-key-enforcement.js +21 -1
  1096. package/icons/gcp/security.js +27 -1
  1097. package/icons/gcp/service-discovery.js +36 -1
  1098. package/icons/gcp/speech-to-text.js +93 -1
  1099. package/icons/gcp/stackdriver.js +10 -1
  1100. package/icons/gcp/standard-network-tier.js +13 -1
  1101. package/icons/gcp/stream-suite.js +16 -1
  1102. package/icons/gcp/support.js +29 -1
  1103. package/icons/gcp/tensorflow-enterprise.js +13 -1
  1104. package/icons/gcp/text-to-speech.js +24 -1
  1105. package/icons/gcp/tools-for-powershell.js +29 -1
  1106. package/icons/gcp/trace.js +17 -1
  1107. package/icons/gcp/traffic-director.js +44 -1
  1108. package/icons/gcp/transfer-appliance.js +32 -1
  1109. package/icons/gcp/transfer.js +13 -1
  1110. package/icons/gcp/user-preferences.js +35 -1
  1111. package/icons/gcp/vertex-ai.js +48 -1
  1112. package/icons/gcp/video-intelligence-api.js +15 -1
  1113. package/icons/gcp/virtual-private-cloud.js +25 -1
  1114. package/icons/gcp/visual-inspection.js +24 -1
  1115. package/icons/gcp/vmware-engine.js +13 -1
  1116. package/icons/gcp/web-risk.js +55 -1
  1117. package/icons/gcp/web-security-scanner.js +27 -1
  1118. package/icons/gcp/workflows.js +82 -1
  1119. package/icons/gcp/workload-identity-pool.js +24 -1
  1120. package/icons/tech/aarch64.js +48 -1
  1121. package/icons/tech/adobe-illustrator.js +14 -1
  1122. package/icons/tech/adobe-photoshop.js +14 -1
  1123. package/icons/tech/adobe-premiere-pro.js +16 -1
  1124. package/icons/tech/adobe-xd.js +12 -1
  1125. package/icons/tech/adonis-js.js +14 -1
  1126. package/icons/tech/after-effects.js +16 -1
  1127. package/icons/tech/airflow.js +64 -1
  1128. package/icons/tech/akka.js +21 -1
  1129. package/icons/tech/algolia.js +12 -1
  1130. package/icons/tech/alpine-js.js +17 -1
  1131. package/icons/tech/amazon-web-services.js +21 -1
  1132. package/icons/tech/anaconda.js +12 -1
  1133. package/icons/tech/android-studio.js +44 -1
  1134. package/icons/tech/android.js +35 -1
  1135. package/icons/tech/angular-js.js +24 -1
  1136. package/icons/tech/angular.js +37 -1
  1137. package/icons/tech/ansible.js +15 -1
  1138. package/icons/tech/ant-design.js +112 -1
  1139. package/icons/tech/apache.js +222 -1
  1140. package/icons/tech/apl.js +21 -1
  1141. package/icons/tech/appcelerator.js +12 -1
  1142. package/icons/tech/apple-safari.js +39 -1
  1143. package/icons/tech/apple.js +6 -1
  1144. package/icons/tech/appwrite.js +21 -1
  1145. package/icons/tech/arch-linux.js +29 -1
  1146. package/icons/tech/arduino.js +9 -1
  1147. package/icons/tech/argo-cd.js +134 -1
  1148. package/icons/tech/astro.js +62 -1
  1149. package/icons/tech/atom.js +14 -1
  1150. package/icons/tech/autodesk-maya.js +144 -1
  1151. package/icons/tech/autodesk-shot-grid.js +15 -1
  1152. package/icons/tech/awk.js +34 -1
  1153. package/icons/tech/azios.js +12 -1
  1154. package/icons/tech/azure-devops.js +33 -1
  1155. package/icons/tech/azure-sql-database.js +95 -1
  1156. package/icons/tech/azure.js +55 -1
  1157. package/icons/tech/babel.js +15 -1
  1158. package/icons/tech/backbone-js.js +16 -1
  1159. package/icons/tech/ballerina.js +12 -1
  1160. package/icons/tech/bamboo.js +62 -1
  1161. package/icons/tech/bash.js +22 -1
  1162. package/icons/tech/behance.js +19 -1
  1163. package/icons/tech/bitbucket.js +37 -1
  1164. package/icons/tech/blender.js +21 -1
  1165. package/icons/tech/bootstrap.js +78 -1
  1166. package/icons/tech/bower.js +123 -1
  1167. package/icons/tech/browserstack.js +77 -1
  1168. package/icons/tech/bulma.js +6 -1
  1169. package/icons/tech/bun.js +68 -1
  1170. package/icons/tech/c.js +28 -1
  1171. package/icons/tech/cairo-graphics.js +21 -1
  1172. package/icons/tech/cake-php.js +12 -1
  1173. package/icons/tech/canva.js +9 -1
  1174. package/icons/tech/capacitor.js +25 -1
  1175. package/icons/tech/cassandra.js +101 -1
  1176. package/icons/tech/cent-os.js +22 -1
  1177. package/icons/tech/chrome.js +156 -1
  1178. package/icons/tech/circle-ci.js +12 -1
  1179. package/icons/tech/clarity.js +35 -1
  1180. package/icons/tech/clion.js +98 -1
  1181. package/icons/tech/clojure-script.js +39 -1
  1182. package/icons/tech/clojure.js +42 -1
  1183. package/icons/tech/cloudflare-workers.js +196 -1
  1184. package/icons/tech/cloudflare.js +22 -1
  1185. package/icons/tech/cmake.js +11 -1
  1186. package/icons/tech/code-igniter.js +12 -1
  1187. package/icons/tech/code-pen.js +12 -1
  1188. package/icons/tech/codeac.js +12 -1
  1189. package/icons/tech/codecov.js +12 -1
  1190. package/icons/tech/coffee-script.js +12 -1
  1191. package/icons/tech/composer.js +59 -1
  1192. package/icons/tech/confluence.js +57 -1
  1193. package/icons/tech/consul.js +12 -1
  1194. package/icons/tech/contao.js +15 -1
  1195. package/icons/tech/corejs.js +6 -1
  1196. package/icons/tech/cosmosdb.js +52 -1
  1197. package/icons/tech/couchdb.js +12 -1
  1198. package/icons/tech/cplusplus.js +35 -1
  1199. package/icons/tech/crystal.js +12 -1
  1200. package/icons/tech/csharp.js +28 -1
  1201. package/icons/tech/css3.js +25 -1
  1202. package/icons/tech/cucumber.js +12 -1
  1203. package/icons/tech/cypress.js +34 -1
  1204. package/icons/tech/d3js.js +145 -1
  1205. package/icons/tech/dart.js +24 -1
  1206. package/icons/tech/data-grip.js +109 -1
  1207. package/icons/tech/data-spell.js +102 -1
  1208. package/icons/tech/dbeaver.js +56 -1
  1209. package/icons/tech/debian.js +12 -1
  1210. package/icons/tech/deno.js +6 -1
  1211. package/icons/tech/devicon.js +25 -1
  1212. package/icons/tech/digital-ocean.js +9 -1
  1213. package/icons/tech/discord-js.js +56 -1
  1214. package/icons/tech/django-rest.js +35 -1
  1215. package/icons/tech/django.js +9 -1
  1216. package/icons/tech/docker.js +133 -1
  1217. package/icons/tech/doctrine.js +21 -1
  1218. package/icons/tech/dropwizard.js +70 -1
  1219. package/icons/tech/drupal.js +56 -1
  1220. package/icons/tech/eclipse-ceylon.js +44 -1
  1221. package/icons/tech/eclipse-ide.js +99 -1
  1222. package/icons/tech/eclipse-vert-x.js +29 -1
  1223. package/icons/tech/elasticbeats.js +22 -1
  1224. package/icons/tech/elasticsearch.js +28 -1
  1225. package/icons/tech/electron.js +11 -1
  1226. package/icons/tech/eleventy-11ty.js +15 -1
  1227. package/icons/tech/elixir.js +211 -1
  1228. package/icons/tech/elm.js +19 -1
  1229. package/icons/tech/embedded-c.js +42 -1
  1230. package/icons/tech/ember-js.js +16 -1
  1231. package/icons/tech/envoy.js +28 -1
  1232. package/icons/tech/erlang.js +12 -1
  1233. package/icons/tech/eslint.js +21 -1
  1234. package/icons/tech/express.js +6 -1
  1235. package/icons/tech/facebook.js +15 -1
  1236. package/icons/tech/fast-api.js +12 -1
  1237. package/icons/tech/fastify.js +15 -1
  1238. package/icons/tech/fauna.js +12 -1
  1239. package/icons/tech/feathers.js +6 -1
  1240. package/icons/tech/fedora.js +53 -1
  1241. package/icons/tech/figma.js +24 -1
  1242. package/icons/tech/file-zilla.js +29 -1
  1243. package/icons/tech/firebase.js +12 -1
  1244. package/icons/tech/firefox.js +1405 -1
  1245. package/icons/tech/flask.js +12 -1
  1246. package/icons/tech/flutter.js +16 -1
  1247. package/icons/tech/fortran.js +15 -1
  1248. package/icons/tech/foundation.js +240 -1
  1249. package/icons/tech/fsharp.js +10 -1
  1250. package/icons/tech/gatling.js +12 -1
  1251. package/icons/tech/gatsby.js +12 -1
  1252. package/icons/tech/gazebo.js +23 -1
  1253. package/icons/tech/gcc.js +44 -1
  1254. package/icons/tech/gentoo.js +14 -1
  1255. package/icons/tech/ghost.js +27 -1
  1256. package/icons/tech/gimp.js +382 -1
  1257. package/icons/tech/git.js +12 -1
  1258. package/icons/tech/gitbook.js +13 -1
  1259. package/icons/tech/github-actions.js +21 -1
  1260. package/icons/tech/github-codespaces.js +85 -1
  1261. package/icons/tech/github.js +16 -1
  1262. package/icons/tech/gitlab.js +35 -1
  1263. package/icons/tech/gitpod.js +32 -1
  1264. package/icons/tech/gitter.js +6 -1
  1265. package/icons/tech/gnu-emacs.js +15 -1
  1266. package/icons/tech/go-land.js +88 -1
  1267. package/icons/tech/go.js +294 -1
  1268. package/icons/tech/godot-engine.js +56 -1
  1269. package/icons/tech/google-cloud.js +29 -1
  1270. package/icons/tech/google.js +42 -1
  1271. package/icons/tech/gradle.js +12 -1
  1272. package/icons/tech/grafana.js +30 -1
  1273. package/icons/tech/grails.js +21 -1
  1274. package/icons/tech/graphql.js +15 -1
  1275. package/icons/tech/groovy.js +715 -1
  1276. package/icons/tech/grunt-js.js +260 -1
  1277. package/icons/tech/gulp-js.js +14 -1
  1278. package/icons/tech/hadoop.js +36 -1
  1279. package/icons/tech/handlebars.js +9 -1
  1280. package/icons/tech/hardhat.js +98 -1
  1281. package/icons/tech/harvester.js +10 -1
  1282. package/icons/tech/hashicorp-vault.js +12 -1
  1283. package/icons/tech/haskell.js +10 -1
  1284. package/icons/tech/haxe.js +17 -1
  1285. package/icons/tech/helm.js +12 -1
  1286. package/icons/tech/heroku.js +12 -1
  1287. package/icons/tech/hibernate.js +15 -1
  1288. package/icons/tech/homebrew.js +36 -1
  1289. package/icons/tech/html5.js +23 -1
  1290. package/icons/tech/hugo.js +22 -1
  1291. package/icons/tech/ibm-spss-statistics.js +21 -1
  1292. package/icons/tech/ie10.js +12 -1
  1293. package/icons/tech/ifttt.js +6 -1
  1294. package/icons/tech/influxdb.js +14 -1
  1295. package/icons/tech/inkscape.js +573 -1
  1296. package/icons/tech/insomnia.js +44 -1
  1297. package/icons/tech/intellij-idea.js +92 -1
  1298. package/icons/tech/ionic.js +9 -1
  1299. package/icons/tech/jaeger.js +102 -1
  1300. package/icons/tech/jamstack.js +12 -1
  1301. package/icons/tech/jasmine.js +10 -1
  1302. package/icons/tech/java.js +42 -1
  1303. package/icons/tech/javascript.js +15 -1
  1304. package/icons/tech/jeet.js +163 -1
  1305. package/icons/tech/jekyll.js +232 -1
  1306. package/icons/tech/jenkins.js +126 -1
  1307. package/icons/tech/jest.js +12 -1
  1308. package/icons/tech/jetbrains.js +118 -1
  1309. package/icons/tech/jira-align.js +57 -1
  1310. package/icons/tech/jira.js +62 -1
  1311. package/icons/tech/jquery.js +12 -1
  1312. package/icons/tech/json.js +57 -1
  1313. package/icons/tech/jule.js +12 -1
  1314. package/icons/tech/julia.js +49 -1
  1315. package/icons/tech/junit.js +30 -1
  1316. package/icons/tech/jupyter.js +35 -1
  1317. package/icons/tech/k3os.js +6 -1
  1318. package/icons/tech/k3s.js +12 -1
  1319. package/icons/tech/kafka.js +12 -1
  1320. package/icons/tech/kaggle.js +12 -1
  1321. package/icons/tech/karate.js +15 -1
  1322. package/icons/tech/karma.js +21 -1
  1323. package/icons/tech/keras.js +15 -1
  1324. package/icons/tech/kibana.js +10 -1
  1325. package/icons/tech/knex-js.js +12 -1
  1326. package/icons/tech/knockout.js +13 -1
  1327. package/icons/tech/kotlin.js +25 -1
  1328. package/icons/tech/krakenjs.js +14 -1
  1329. package/icons/tech/ktor.js +48 -1
  1330. package/icons/tech/kubernetes.js +10 -1
  1331. package/icons/tech/labview.js +69 -1
  1332. package/icons/tech/laravel.js +15 -1
  1333. package/icons/tech/latex.js +12 -1
  1334. package/icons/tech/less-js.js +14 -1
  1335. package/icons/tech/linkedin.js +21 -1
  1336. package/icons/tech/linux.js +5267 -1
  1337. package/icons/tech/liquibase.js +12 -1
  1338. package/icons/tech/livewire.js +79 -1
  1339. package/icons/tech/llvm.js +36 -1
  1340. package/icons/tech/logstash.js +10 -1
  1341. package/icons/tech/lua.js +28 -1
  1342. package/icons/tech/lumen.js +12 -1
  1343. package/icons/tech/magento.js +12 -1
  1344. package/icons/tech/markdown.js +44 -1
  1345. package/icons/tech/material-ui.js +11 -1
  1346. package/icons/tech/materialize.js +21 -1
  1347. package/icons/tech/matlab.js +73 -1
  1348. package/icons/tech/matplotlib.js +182 -1
  1349. package/icons/tech/maven.js +620 -1
  1350. package/icons/tech/meteor-js.js +12 -1
  1351. package/icons/tech/microsoft-sql-server.js +6 -1
  1352. package/icons/tech/minitab.js +45 -1
  1353. package/icons/tech/mob-x.js +57 -1
  1354. package/icons/tech/mocha.js +21 -1
  1355. package/icons/tech/modx.js +18 -1
  1356. package/icons/tech/moleculer.js +12 -1
  1357. package/icons/tech/mongodb.js +135 -1
  1358. package/icons/tech/mongoose-js.js +29 -1
  1359. package/icons/tech/moodle.js +145 -1
  1360. package/icons/tech/ms-dos.js +78 -1
  1361. package/icons/tech/mysql.js +12 -1
  1362. package/icons/tech/nano.js +12 -1
  1363. package/icons/tech/nerog.js +136 -1
  1364. package/icons/tech/nestjs.js +12 -1
  1365. package/icons/tech/net-core.js +9 -1
  1366. package/icons/tech/net.js +551 -1
  1367. package/icons/tech/network-x.js +58 -1
  1368. package/icons/tech/new4j.js +21 -1
  1369. package/icons/tech/nextjs.js +6 -1
  1370. package/icons/tech/nginx.js +12 -1
  1371. package/icons/tech/nhibernate.js +21 -1
  1372. package/icons/tech/nim.js +29 -1
  1373. package/icons/tech/nimble.js +84 -1
  1374. package/icons/tech/nix.js +25 -1
  1375. package/icons/tech/nodejs.js +12 -1
  1376. package/icons/tech/nodemon.js +21 -1
  1377. package/icons/tech/nodewebkit.js +42 -1
  1378. package/icons/tech/npm.js +12 -1
  1379. package/icons/tech/nuget.js +12 -1
  1380. package/icons/tech/num-py.js +29 -1
  1381. package/icons/tech/nuxt-js.js +28 -1
  1382. package/icons/tech/objective-c.js +9 -1
  1383. package/icons/tech/ocaml.js +96 -1
  1384. package/icons/tech/oh-my-zsh.js +38 -1
  1385. package/icons/tech/okta.js +21 -1
  1386. package/icons/tech/open-al.js +22 -1
  1387. package/icons/tech/open-api.js +139 -1
  1388. package/icons/tech/open-cl.js +42 -1
  1389. package/icons/tech/open-cv.js +28 -1
  1390. package/icons/tech/open-gl.js +35 -1
  1391. package/icons/tech/open-stack.js +12 -1
  1392. package/icons/tech/open-suse.js +15 -1
  1393. package/icons/tech/open-telemetry.js +21 -1
  1394. package/icons/tech/opera.js +32 -1
  1395. package/icons/tech/oracle.js +12 -1
  1396. package/icons/tech/p5js.js +12 -1
  1397. package/icons/tech/packer.js +15 -1
  1398. package/icons/tech/pandas.js +62 -1
  1399. package/icons/tech/perl.js +21 -1
  1400. package/icons/tech/pf-sense.js +6 -1
  1401. package/icons/tech/phalcon.js +32 -1
  1402. package/icons/tech/phoenix-framework.js +12 -1
  1403. package/icons/tech/photon-engine.js +41 -1
  1404. package/icons/tech/php-storm.js +105 -1
  1405. package/icons/tech/php.js +62 -1
  1406. package/icons/tech/playwrite.js +56 -1
  1407. package/icons/tech/ploty.js +28 -1
  1408. package/icons/tech/podman.js +150 -1
  1409. package/icons/tech/polygon.js +15 -1
  1410. package/icons/tech/portainer.js +12 -1
  1411. package/icons/tech/postcss.js +28 -1
  1412. package/icons/tech/postgresql.js +23 -1
  1413. package/icons/tech/postman.js +28 -1
  1414. package/icons/tech/powershell.js +79 -1
  1415. package/icons/tech/processing.js +201 -1
  1416. package/icons/tech/prometheus.js +12 -1
  1417. package/icons/tech/protractor.js +12 -1
  1418. package/icons/tech/purescript.js +16 -1
  1419. package/icons/tech/putty.js +56 -1
  1420. package/icons/tech/pycharm.js +81 -1
  1421. package/icons/tech/pyscript.js +15 -1
  1422. package/icons/tech/pytest.js +21 -1
  1423. package/icons/tech/python-poetry.js +155 -1
  1424. package/icons/tech/python.js +78 -1
  1425. package/icons/tech/pytorch.js +15 -1
  1426. package/icons/tech/qodana.js +52 -1
  1427. package/icons/tech/qt.js +12 -1
  1428. package/icons/tech/quarkus.js +23 -1
  1429. package/icons/tech/quasar.js +15 -1
  1430. package/icons/tech/qwik.js +37 -1
  1431. package/icons/tech/r.js +57 -1
  1432. package/icons/tech/rabbitmq.js +12 -1
  1433. package/icons/tech/rancher.js +6 -1
  1434. package/icons/tech/raspberrypi.js +28 -1
  1435. package/icons/tech/reach.js +27 -1
  1436. package/icons/tech/react-bootstrap.js +12 -1
  1437. package/icons/tech/react.js +9 -1
  1438. package/icons/tech/realm.js +63 -1
  1439. package/icons/tech/red-cube-s-epic-compiler-thingy-programming-re-ct.js +17 -1
  1440. package/icons/tech/redhat.js +22 -1
  1441. package/icons/tech/redis.js +59 -1
  1442. package/icons/tech/redux.js +12 -1
  1443. package/icons/tech/ren-py.js +547 -1
  1444. package/icons/tech/rider.js +38 -1
  1445. package/icons/tech/robot-operating-system-ros.js +15 -1
  1446. package/icons/tech/rocksdb.js +9 -1
  1447. package/icons/tech/rollup-js.js +155 -1
  1448. package/icons/tech/rspec.js +35 -1
  1449. package/icons/tech/rstudio.js +30 -1
  1450. package/icons/tech/ruby-mine.js +52 -1
  1451. package/icons/tech/ruby-on-rails.js +14 -1
  1452. package/icons/tech/ruby.js +359 -1
  1453. package/icons/tech/rust.js +6 -1
  1454. package/icons/tech/salesforce.js +28 -1
  1455. package/icons/tech/sanity.js +22 -1
  1456. package/icons/tech/sass.js +14 -1
  1457. package/icons/tech/scala.js +21 -1
  1458. package/icons/tech/scalingo.js +29 -1
  1459. package/icons/tech/sdl.js +42 -1
  1460. package/icons/tech/selenium.js +15 -1
  1461. package/icons/tech/sema-software.js +15 -1
  1462. package/icons/tech/sequelize.js +34 -1
  1463. package/icons/tech/shopware.js +9 -1
  1464. package/icons/tech/sketch.js +14 -1
  1465. package/icons/tech/slack.js +35 -1
  1466. package/icons/tech/socket-io.js +45 -1
  1467. package/icons/tech/solid-js.js +121 -1
  1468. package/icons/tech/solidity.js +13 -1
  1469. package/icons/tech/sonarqube.js +12 -1
  1470. package/icons/tech/sourcetree.js +12 -1
  1471. package/icons/tech/spark.js +12 -1
  1472. package/icons/tech/splunk.js +12 -1
  1473. package/icons/tech/spring.js +12 -1
  1474. package/icons/tech/sql-developer.js +43 -1
  1475. package/icons/tech/sqlalchemy.js +21 -1
  1476. package/icons/tech/sqlite.js +45 -1
  1477. package/icons/tech/ssh.js +12 -1
  1478. package/icons/tech/stackoverflow.js +15 -1
  1479. package/icons/tech/stata.js +12 -1
  1480. package/icons/tech/storybook.js +12 -1
  1481. package/icons/tech/streamlit.js +31 -1
  1482. package/icons/tech/stylus.js +9 -1
  1483. package/icons/tech/subversion.js +12 -1
  1484. package/icons/tech/svelte.js +23 -1
  1485. package/icons/tech/swagger.js +21 -1
  1486. package/icons/tech/swift.js +21 -1
  1487. package/icons/tech/symfony.js +12 -1
  1488. package/icons/tech/tailwind-css.js +12 -1
  1489. package/icons/tech/tauri.js +35 -1
  1490. package/icons/tech/tensorflow.js +12 -1
  1491. package/icons/tech/terraform.js +16 -1
  1492. package/icons/tech/tex.js +6 -1
  1493. package/icons/tech/the-algorithms.js +12 -1
  1494. package/icons/tech/three-js.js +139 -1
  1495. package/icons/tech/titanium-sdk.js +12 -1
  1496. package/icons/tech/tomcat.js +26 -1
  1497. package/icons/tech/tortoise-git.js +37 -1
  1498. package/icons/tech/tower.js +369 -1
  1499. package/icons/tech/traefik-mesh.js +12 -1
  1500. package/icons/tech/traefik-proxy.js +12 -1
  1501. package/icons/tech/travis-ci.js +12 -1
  1502. package/icons/tech/trello.js +12 -1
  1503. package/icons/tech/twitter.js +12 -1
  1504. package/icons/tech/typescript.js +16 -1
  1505. package/icons/tech/typo3.js +12 -1
  1506. package/icons/tech/ubuntu.js +12 -1
  1507. package/icons/tech/uml.js +29 -1
  1508. package/icons/tech/unity.js +22 -1
  1509. package/icons/tech/unix.js +12 -1
  1510. package/icons/tech/unreal-engine.js +9 -1
  1511. package/icons/tech/uwsgi.js +38 -1
  1512. package/icons/tech/v8.js +109 -1
  1513. package/icons/tech/vagrant.js +21 -1
  1514. package/icons/tech/vala.js +57 -1
  1515. package/icons/tech/vercel.js +6 -1
  1516. package/icons/tech/veutify.js +11 -1
  1517. package/icons/tech/vim.js +82 -1
  1518. package/icons/tech/visualstudio.js +12 -1
  1519. package/icons/tech/vite.js +6 -1
  1520. package/icons/tech/vitejs.js +56 -1
  1521. package/icons/tech/vscode.js +114 -1
  1522. package/icons/tech/vsphere.js +25 -1
  1523. package/icons/tech/vue-storefront.js +22 -1
  1524. package/icons/tech/vue.js +16 -1
  1525. package/icons/tech/vyper.js +17 -1
  1526. package/icons/tech/webassembly.js +12 -1
  1527. package/icons/tech/webflow.js +12 -1
  1528. package/icons/tech/weblate.js +80 -1
  1529. package/icons/tech/webpack.js +21 -1
  1530. package/icons/tech/webstorm.js +80 -1
  1531. package/icons/tech/windows11.js +12 -1
  1532. package/icons/tech/windows8.js +12 -1
  1533. package/icons/tech/woo-commerce.js +22 -1
  1534. package/icons/tech/wordpress.js +70 -1
  1535. package/icons/tech/xamarin.js +12 -1
  1536. package/icons/tech/xcode.js +623 -1
  1537. package/icons/tech/xml.js +51 -1
  1538. package/icons/tech/yaml.js +16 -1
  1539. package/icons/tech/yarn.js +9 -1
  1540. package/icons/tech/yii-framework.js +35 -1
  1541. package/icons/tech/yuno-host.js +15 -1
  1542. package/icons/tech/zend-framework.js +14 -1
  1543. package/icons/tech/zig.js +28 -1
  1544. package/package.json +34 -30
  1545. package/react/index.d.mts +234 -116
  1546. package/react/index.mjs +27 -27
@@ -719,7 +719,7 @@ function useHovered() {
719
719
  const [hovered, setHovered] = useState(-1);
720
720
  return [hovered, { setHovered, resetHovered: () => setHovered(-1) }];
721
721
  }
722
- function clamp$5(value, min2, max2) {
722
+ function clamp$4(value, min2, max2) {
723
723
  return min2 === void 0 && max2 === void 0 ? value : min2 !== void 0 && max2 === void 0 ? Math.max(value, min2) : Math.min(min2 === void 0 && max2 !== void 0 ? value : Math.max(value, min2), max2);
724
724
  }
725
725
  function randomId(prefix2 = "mantine-") {
@@ -1060,8 +1060,8 @@ function useMergedRef(...refs) {
1060
1060
  }
1061
1061
  function clampUseMovePosition(position) {
1062
1062
  return {
1063
- x: clamp$5(position.x, 0, 1),
1064
- y: clamp$5(position.y, 0, 1)
1063
+ x: clamp$4(position.x, 0, 1),
1064
+ y: clamp$4(position.y, 0, 1)
1065
1065
  };
1066
1066
  }
1067
1067
  function useMove(onChange, handlers, dir = "ltr") {
@@ -1075,10 +1075,10 @@ function useMove(onChange, handlers, dir = "ltr") {
1075
1075
  node2.style.userSelect = "none";
1076
1076
  const rect = node2.getBoundingClientRect();
1077
1077
  if (rect.width && rect.height) {
1078
- const _x = clamp$5((x2 - rect.left) / rect.width, 0, 1);
1078
+ const _x = clamp$4((x2 - rect.left) / rect.width, 0, 1);
1079
1079
  onChange({
1080
1080
  x: dir === "ltr" ? _x : 1 - _x,
1081
- y: clamp$5((y2 - rect.top) / rect.height, 0, 1)
1081
+ y: clamp$4((y2 - rect.top) / rect.height, 0, 1)
1082
1082
  });
1083
1083
  }
1084
1084
  }
@@ -3400,7 +3400,7 @@ const min$1 = Math.min, max$1 = Math.max, round = Math.round, floor = Math.floor
3400
3400
  start: "end",
3401
3401
  end: "start"
3402
3402
  };
3403
- function clamp$4(start2, value, end) {
3403
+ function clamp$3(start2, value, end) {
3404
3404
  return max$1(start2, min$1(value, end));
3405
3405
  }
3406
3406
  function evaluate(value, param) {
@@ -3671,7 +3671,7 @@ const arrow$3 = (options) => ({
3671
3671
  }, axis = getAlignmentAxis(placement), length = getAxisLength(axis), arrowDimensions = await platform2.getDimensions(element), isYAxis = axis === "y", minProp = isYAxis ? "top" : "left", maxProp = isYAxis ? "bottom" : "right", clientProp = isYAxis ? "clientHeight" : "clientWidth", endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length], startDiff = coords[axis] - rects.reference[axis], arrowOffsetParent = await (platform2.getOffsetParent == null ? void 0 : platform2.getOffsetParent(element));
3672
3672
  let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;
3673
3673
  (!clientSize || !await (platform2.isElement == null ? void 0 : platform2.isElement(arrowOffsetParent))) && (clientSize = elements.floating[clientProp] || rects.floating[length]);
3674
- const centerToReference = endDiff / 2 - startDiff / 2, largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1, minPadding = min$1(paddingObject[minProp], largestPossiblePadding), maxPadding = min$1(paddingObject[maxProp], largestPossiblePadding), min$1$1 = minPadding, max2 = clientSize - arrowDimensions[length] - maxPadding, center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference, offset2 = clamp$4(min$1$1, center, max2), shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset2 && rects.reference[length] / 2 - (center < min$1$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0, alignmentOffset = shouldAddOffset ? center < min$1$1 ? center - min$1$1 : center - max2 : 0;
3674
+ const centerToReference = endDiff / 2 - startDiff / 2, largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1, minPadding = min$1(paddingObject[minProp], largestPossiblePadding), maxPadding = min$1(paddingObject[maxProp], largestPossiblePadding), min$1$1 = minPadding, max2 = clientSize - arrowDimensions[length] - maxPadding, center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference, offset2 = clamp$3(min$1$1, center, max2), shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset2 && rects.reference[length] / 2 - (center < min$1$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0, alignmentOffset = shouldAddOffset ? center < min$1$1 ? center - min$1$1 : center - max2 : 0;
3675
3675
  return {
3676
3676
  [axis]: coords[axis] + alignmentOffset,
3677
3677
  data: {
@@ -3925,11 +3925,11 @@ const offset$3 = function(options) {
3925
3925
  let mainAxisCoord = coords[mainAxis], crossAxisCoord = coords[crossAxis];
3926
3926
  if (checkMainAxis) {
3927
3927
  const minSide = mainAxis === "y" ? "top" : "left", maxSide = mainAxis === "y" ? "bottom" : "right", min2 = mainAxisCoord + overflow[minSide], max2 = mainAxisCoord - overflow[maxSide];
3928
- mainAxisCoord = clamp$4(min2, mainAxisCoord, max2);
3928
+ mainAxisCoord = clamp$3(min2, mainAxisCoord, max2);
3929
3929
  }
3930
3930
  if (checkCrossAxis) {
3931
3931
  const minSide = crossAxis === "y" ? "top" : "left", maxSide = crossAxis === "y" ? "bottom" : "right", min2 = crossAxisCoord + overflow[minSide], max2 = crossAxisCoord - overflow[maxSide];
3932
- crossAxisCoord = clamp$4(min2, crossAxisCoord, max2);
3932
+ crossAxisCoord = clamp$3(min2, crossAxisCoord, max2);
3933
3933
  }
3934
3934
  const limitedCoords = limiter.fn({
3935
3935
  ...state,
@@ -5488,11 +5488,11 @@ function linearScale(input2, output) {
5488
5488
  return output[0] + ratio * (value - input2[0]);
5489
5489
  };
5490
5490
  }
5491
- function clamp$3(value, [min2, max2]) {
5491
+ function clamp$2(value, [min2, max2]) {
5492
5492
  return Math.min(max2, Math.max(min2, value));
5493
5493
  }
5494
5494
  function getThumbOffsetFromScroll(scrollPos, sizes2, dir = "ltr") {
5495
- const thumbSizePx = getThumbSize(sizes2), scrollbarPadding = sizes2.scrollbar.paddingStart + sizes2.scrollbar.paddingEnd, scrollbar = sizes2.scrollbar.size - scrollbarPadding, maxScrollPos = sizes2.content - sizes2.viewport, maxThumbPos = scrollbar - thumbSizePx, scrollClampRange = dir === "ltr" ? [0, maxScrollPos] : [maxScrollPos * -1, 0], scrollWithoutMomentum = clamp$3(scrollPos, scrollClampRange);
5495
+ const thumbSizePx = getThumbSize(sizes2), scrollbarPadding = sizes2.scrollbar.paddingStart + sizes2.scrollbar.paddingEnd, scrollbar = sizes2.scrollbar.size - scrollbarPadding, maxScrollPos = sizes2.content - sizes2.viewport, maxThumbPos = scrollbar - thumbSizePx, scrollClampRange = dir === "ltr" ? [0, maxScrollPos] : [maxScrollPos * -1, 0], scrollWithoutMomentum = clamp$2(scrollPos, scrollClampRange);
5496
5496
  return linearScale([0, maxScrollPos], [0, maxThumbPos])(scrollWithoutMomentum);
5497
5497
  }
5498
5498
  function getScrollPositionFromPointer(pointerPos, pointerOffset, sizes2, dir = "ltr") {
@@ -5945,7 +5945,7 @@ const defaultProps$1y = {
5945
5945
  {
5946
5946
  ...getStyles2("scrollbar"),
5947
5947
  orientation: "horizontal",
5948
- "data-hidden": type === "never" || !horizontalThumbVisible || void 0,
5948
+ "data-hidden": type === "never" || offsetScrollbars === "present" && !horizontalThumbVisible ? !0 : void 0,
5949
5949
  forceMount: !0,
5950
5950
  onMouseEnter: () => setScrollbarHovered(!0),
5951
5951
  onMouseLeave: () => setScrollbarHovered(!1),
@@ -5957,7 +5957,7 @@ const defaultProps$1y = {
5957
5957
  {
5958
5958
  ...getStyles2("scrollbar"),
5959
5959
  orientation: "vertical",
5960
- "data-hidden": type === "never" || !verticalThumbVisible || void 0,
5960
+ "data-hidden": type === "never" || offsetScrollbars === "present" && !verticalThumbVisible ? !0 : void 0,
5961
5961
  forceMount: !0,
5962
5962
  onMouseEnter: () => setScrollbarHovered(!0),
5963
5963
  onMouseLeave: () => setScrollbarHovered(!1),
@@ -10433,6 +10433,14 @@ var commonjsGlobal = typeof globalThis < "u" ? globalThis : typeof window < "u"
10433
10433
  function getDefaultExportFromCjs(x2) {
10434
10434
  return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, "default") ? x2.default : x2;
10435
10435
  }
10436
+ var useIsomorphicLayoutEffect_cjs = {}, hasRequiredUseIsomorphicLayoutEffect_cjs;
10437
+ function requireUseIsomorphicLayoutEffect_cjs() {
10438
+ return hasRequiredUseIsomorphicLayoutEffect_cjs || (hasRequiredUseIsomorphicLayoutEffect_cjs = 1, function(exports) {
10439
+ Object.defineProperty(exports, "__esModule", { value: !0 });
10440
+ var react = React__default, isClient = typeof document < "u", index2 = isClient ? react.useLayoutEffect : react.useEffect;
10441
+ exports.default = index2;
10442
+ }(useIsomorphicLayoutEffect_cjs)), useIsomorphicLayoutEffect_cjs;
10443
+ }
10436
10444
  var classes$f = { root: "m_6e45937b", loader: "m_e8eb006c", overlay: "m_df587f17" };
10437
10445
  const defaultProps$u = {
10438
10446
  transitionProps: { transition: "fade", duration: 0 },
@@ -11705,7 +11713,7 @@ const defaultProps$c = {
11705
11713
  });
11706
11714
  useEffect(() => {
11707
11715
  selectFirstOptionOnChange && combobox.selectFirstOption();
11708
- }, [selectFirstOptionOnChange, _value]), useEffect(() => {
11716
+ }, [selectFirstOptionOnChange, search]), useEffect(() => {
11709
11717
  value === null && handleSearchChange(""), typeof value == "string" && selectedOption && (previousSelectedOption?.value !== selectedOption.value || previousSelectedOption?.label !== selectedOption.label) && handleSearchChange(selectedOption.label);
11710
11718
  }, [value, selectedOption]);
11711
11719
  const clearButton = /* @__PURE__ */ jsx(
@@ -12157,11 +12165,15 @@ const defaultProps$a = {
12157
12165
  varsResolver: varsResolver$6,
12158
12166
  unstyled
12159
12167
  }), { dir } = useDirection(), [hovered, setHovered] = useState(!1), [_value, setValue] = useUncontrolled({
12160
- value: typeof value == "number" ? clamp$5(value, min2, max2) : value,
12161
- defaultValue: typeof defaultValue == "number" ? clamp$5(defaultValue, min2, max2) : defaultValue,
12162
- finalValue: clamp$5(0, min2, max2),
12168
+ value: typeof value == "number" ? clamp$4(value, min2, max2) : value,
12169
+ defaultValue: typeof defaultValue == "number" ? clamp$4(defaultValue, min2, max2) : defaultValue,
12170
+ finalValue: clamp$4(0, min2, max2),
12163
12171
  onChange
12164
- }), valueRef = useRef(_value), root2 = useRef(null), thumb = useRef(null), position = getPosition({ value: _value, min: min2, max: max2 }), scaledValue = scale2(_value), _label = typeof label2 == "function" ? label2(scaledValue) : label2, precision = _precision ?? getPrecision(step), handleChange = useCallback(
12172
+ }), valueRef = useRef(_value), onChangeEndRef = useRef(onChangeEnd);
12173
+ useEffect(() => {
12174
+ onChangeEndRef.current = onChangeEnd;
12175
+ }, [onChangeEnd]);
12176
+ const root2 = useRef(null), thumb = useRef(null), position = getPosition({ value: _value, min: min2, max: max2 }), scaledValue = scale2(_value), _label = typeof label2 == "function" ? label2(scaledValue) : label2, precision = _precision ?? getPrecision(step), handleChange = useCallback(
12165
12177
  ({ x: x2 }) => {
12166
12178
  if (!disabled) {
12167
12179
  const nextValue = getChangeValue({
@@ -12180,86 +12192,88 @@ const defaultProps$a = {
12180
12192
  }
12181
12193
  },
12182
12194
  [disabled, min2, max2, step, precision, setValue, marks, restrictToMarks]
12183
- ), { ref: container2, active } = useMove(
12184
- handleChange,
12185
- {
12186
- onScrubEnd: () => !disabled && onChangeEnd?.(
12187
- restrictToMarks && marks?.length ? findClosestNumber(
12188
- valueRef.current,
12189
- marks.map((mark) => mark.value)
12190
- ) : valueRef.current
12191
- )
12192
- },
12193
- dir
12195
+ ), handleScrubEnd = useCallback(() => {
12196
+ if (!disabled && onChangeEndRef.current) {
12197
+ const finalValue = restrictToMarks && marks?.length ? findClosestNumber(
12198
+ valueRef.current,
12199
+ marks.map((mark) => mark.value)
12200
+ ) : valueRef.current;
12201
+ onChangeEndRef.current(finalValue);
12202
+ }
12203
+ }, [disabled, marks, restrictToMarks]), { ref: container2, active } = useMove(handleChange, { onScrubEnd: handleScrubEnd }, dir), callOnChangeEnd = useCallback(
12204
+ (value2) => {
12205
+ !disabled && onChangeEndRef.current && onChangeEndRef.current(value2);
12206
+ },
12207
+ [disabled]
12194
12208
  ), handleTrackKeydownCapture = (event) => {
12195
12209
  if (!disabled)
12196
12210
  switch (event.key) {
12197
12211
  case "ArrowUp": {
12198
12212
  if (event.preventDefault(), thumb.current?.focus(), restrictToMarks && marks) {
12199
12213
  const nextValue2 = getNextMarkValue(_value, marks);
12200
- setValue(nextValue2), onChangeEnd?.(nextValue2);
12214
+ setValue(nextValue2), callOnChangeEnd(nextValue2);
12201
12215
  break;
12202
12216
  }
12203
12217
  const nextValue = getFloatingValue(
12204
12218
  Math.min(Math.max(_value + step, min2), max2),
12205
12219
  precision
12206
12220
  );
12207
- setValue(nextValue), onChangeEnd?.(nextValue);
12221
+ setValue(nextValue), callOnChangeEnd(nextValue);
12208
12222
  break;
12209
12223
  }
12210
12224
  case "ArrowRight": {
12211
12225
  if (event.preventDefault(), thumb.current?.focus(), restrictToMarks && marks) {
12212
12226
  const nextValue2 = dir === "rtl" ? getPreviousMarkValue(_value, marks) : getNextMarkValue(_value, marks);
12213
- setValue(nextValue2), onChangeEnd?.(nextValue2);
12227
+ setValue(nextValue2), callOnChangeEnd(nextValue2);
12214
12228
  break;
12215
12229
  }
12216
12230
  const nextValue = getFloatingValue(
12217
12231
  Math.min(Math.max(dir === "rtl" ? _value - step : _value + step, min2), max2),
12218
12232
  precision
12219
12233
  );
12220
- setValue(nextValue), onChangeEnd?.(nextValue);
12234
+ setValue(nextValue), callOnChangeEnd(nextValue);
12221
12235
  break;
12222
12236
  }
12223
12237
  case "ArrowDown": {
12224
12238
  if (event.preventDefault(), thumb.current?.focus(), restrictToMarks && marks) {
12225
12239
  const nextValue2 = getPreviousMarkValue(_value, marks);
12226
- setValue(nextValue2), onChangeEnd?.(nextValue2);
12240
+ setValue(nextValue2), callOnChangeEnd(nextValue2);
12227
12241
  break;
12228
12242
  }
12229
12243
  const nextValue = getFloatingValue(
12230
12244
  Math.min(Math.max(_value - step, min2), max2),
12231
12245
  precision
12232
12246
  );
12233
- setValue(nextValue), onChangeEnd?.(nextValue);
12247
+ setValue(nextValue), callOnChangeEnd(nextValue);
12234
12248
  break;
12235
12249
  }
12236
12250
  case "ArrowLeft": {
12237
12251
  if (event.preventDefault(), thumb.current?.focus(), restrictToMarks && marks) {
12238
12252
  const nextValue2 = dir === "rtl" ? getNextMarkValue(_value, marks) : getPreviousMarkValue(_value, marks);
12239
- setValue(nextValue2), onChangeEnd?.(nextValue2);
12253
+ setValue(nextValue2), callOnChangeEnd(nextValue2);
12240
12254
  break;
12241
12255
  }
12242
12256
  const nextValue = getFloatingValue(
12243
12257
  Math.min(Math.max(dir === "rtl" ? _value + step : _value - step, min2), max2),
12244
12258
  precision
12245
12259
  );
12246
- setValue(nextValue), onChangeEnd?.(nextValue);
12260
+ setValue(nextValue), callOnChangeEnd(nextValue);
12247
12261
  break;
12248
12262
  }
12249
12263
  case "Home": {
12250
12264
  if (event.preventDefault(), thumb.current?.focus(), restrictToMarks && marks) {
12251
- setValue(getFirstMarkValue(marks)), onChangeEnd?.(getFirstMarkValue(marks));
12265
+ setValue(getFirstMarkValue(marks)), callOnChangeEnd(getFirstMarkValue(marks));
12252
12266
  break;
12253
12267
  }
12254
- setValue(min2), onChangeEnd?.(min2);
12268
+ setValue(min2), callOnChangeEnd(min2);
12255
12269
  break;
12256
12270
  }
12257
12271
  case "End": {
12258
12272
  if (event.preventDefault(), thumb.current?.focus(), restrictToMarks && marks) {
12259
- setValue(getLastMarkValue(marks)), onChangeEnd?.(getLastMarkValue(marks));
12273
+ setValue(getLastMarkValue(marks)), callOnChangeEnd(getLastMarkValue(marks));
12260
12274
  break;
12261
12275
  }
12262
- setValue(max2), onChangeEnd?.(max2);
12276
+ setValue(max2), callOnChangeEnd(max2);
12263
12277
  break;
12264
12278
  }
12265
12279
  }
@@ -12969,7 +12983,7 @@ function useTree({
12969
12983
  onNodeCollapse,
12970
12984
  onNodeExpand
12971
12985
  } = {}) {
12972
- const [data, setData] = useState([]), [expandedState, setExpandedState] = useState(initialExpandedState), [selectedState, setSelectedState] = useState(initialSelectedState), [checkedState, setCheckedState] = useState(initialCheckedState), [anchorNode, setAnchorNode] = useState(null), [hoveredNode, setHoveredNode] = useState(null), initialize = useCallback(
12986
+ const [data, setData] = useState([]), [expandedState, setExpandedState] = useState(initialExpandedState), [selectedState, setSelectedState] = useState(initialSelectedState), [checkedState, setCheckedState] = useState(initialCheckedState), [anchorNode, setAnchorNode] = useState(null), [hoveredNode, setHoveredNode2] = useState(null), initialize = useCallback(
12973
12987
  (_data) => {
12974
12988
  setExpandedState((current) => getInitialTreeExpandedState(current, _data, selectedState)), setCheckedState((current) => getInitialCheckedState(current, _data)), setData(_data);
12975
12989
  },
@@ -13058,7 +13072,7 @@ function useTree({
13058
13072
  clearSelected,
13059
13073
  setSelectedState,
13060
13074
  hoveredNode,
13061
- setHoveredNode,
13075
+ setHoveredNode: setHoveredNode2,
13062
13076
  getCheckedNodes: () => getAllCheckedNodes(data, checkedState).result,
13063
13077
  isNodeChecked: (value) => memoizedIsNodeChecked(value, data, checkedState),
13064
13078
  isNodeIndeterminate: (value) => memoizedIsNodeIndeterminate(value, data, checkedState)
@@ -17001,212 +17015,11 @@ const AnimatePresence = ({ children: children2, custom: custom5, initial = !0, o
17001
17015
  return jsx(PresenceChild, { isPresent, initial: !isInitialRender.current || initial ? void 0 : !1, custom: custom5, presenceAffectsLayout, mode, onExitComplete: isPresent ? void 0 : onExit, anchorX, children: child }, key2);
17002
17016
  }) });
17003
17017
  }, DeprecatedLayoutGroupContext = createContext(null);
17004
- function addUniqueItem(arr, item) {
17005
- arr.indexOf(item) === -1 && arr.push(item);
17006
- }
17007
- function removeItem(arr, item) {
17008
- const index2 = arr.indexOf(item);
17009
- index2 > -1 && arr.splice(index2, 1);
17010
- }
17011
17018
  let invariant = () => {
17012
17019
  };
17013
- const MotionGlobalConfig = {
17020
+ const noop$3 = /* @__NO_SIDE_EFFECTS__ */ (any) => any, MotionGlobalConfig = {
17014
17021
  useManualTiming: !1
17015
- };
17016
- // @__NO_SIDE_EFFECTS__
17017
- function memo(callback) {
17018
- let result;
17019
- return () => (result === void 0 && (result = callback()), result);
17020
- }
17021
- const noop$3 = /* @__NO_SIDE_EFFECTS__ */ (any) => any, progress = /* @__NO_SIDE_EFFECTS__ */ (from, to, value) => {
17022
- const toFromDifference = to - from;
17023
- return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;
17024
- };
17025
- class SubscriptionManager {
17026
- constructor() {
17027
- this.subscriptions = [];
17028
- }
17029
- add(handler) {
17030
- return addUniqueItem(this.subscriptions, handler), () => removeItem(this.subscriptions, handler);
17031
- }
17032
- notify(a2, b2, c2) {
17033
- const numSubscriptions = this.subscriptions.length;
17034
- if (numSubscriptions)
17035
- if (numSubscriptions === 1)
17036
- this.subscriptions[0](a2, b2, c2);
17037
- else
17038
- for (let i2 = 0; i2 < numSubscriptions; i2++) {
17039
- const handler = this.subscriptions[i2];
17040
- handler && handler(a2, b2, c2);
17041
- }
17042
- }
17043
- getSize() {
17044
- return this.subscriptions.length;
17045
- }
17046
- clear() {
17047
- this.subscriptions.length = 0;
17048
- }
17049
- }
17050
- const secondsToMilliseconds = /* @__NO_SIDE_EFFECTS__ */ (seconds) => seconds * 1e3, millisecondsToSeconds = /* @__NO_SIDE_EFFECTS__ */ (milliseconds) => milliseconds / 1e3;
17051
- function velocityPerSecond(velocity, frameDuration) {
17052
- return frameDuration ? velocity * (1e3 / frameDuration) : 0;
17053
- }
17054
- const supportsScrollTimeline = /* @__PURE__ */ memo(() => window.ScrollTimeline !== void 0);
17055
- class GroupAnimation {
17056
- constructor(animations2) {
17057
- this.stop = () => this.runAll("stop"), this.animations = animations2.filter(Boolean);
17058
- }
17059
- get finished() {
17060
- return Promise.all(this.animations.map((animation) => animation.finished));
17061
- }
17062
- /**
17063
- * TODO: Filter out cancelled or stopped animations before returning
17064
- */
17065
- getAll(propName) {
17066
- return this.animations[0][propName];
17067
- }
17068
- setAll(propName, newValue) {
17069
- for (let i2 = 0; i2 < this.animations.length; i2++)
17070
- this.animations[i2][propName] = newValue;
17071
- }
17072
- attachTimeline(timeline, fallback) {
17073
- const subscriptions = this.animations.map((animation) => {
17074
- if (supportsScrollTimeline() && animation.attachTimeline)
17075
- return animation.attachTimeline(timeline);
17076
- if (typeof fallback == "function")
17077
- return fallback(animation);
17078
- });
17079
- return () => {
17080
- subscriptions.forEach((cancel, i2) => {
17081
- cancel && cancel(), this.animations[i2].stop();
17082
- });
17083
- };
17084
- }
17085
- get time() {
17086
- return this.getAll("time");
17087
- }
17088
- set time(time2) {
17089
- this.setAll("time", time2);
17090
- }
17091
- get speed() {
17092
- return this.getAll("speed");
17093
- }
17094
- set speed(speed) {
17095
- this.setAll("speed", speed);
17096
- }
17097
- get startTime() {
17098
- return this.getAll("startTime");
17099
- }
17100
- get duration() {
17101
- let max2 = 0;
17102
- for (let i2 = 0; i2 < this.animations.length; i2++)
17103
- max2 = Math.max(max2, this.animations[i2].duration);
17104
- return max2;
17105
- }
17106
- runAll(methodName) {
17107
- this.animations.forEach((controls) => controls[methodName]());
17108
- }
17109
- flatten() {
17110
- this.runAll("flatten");
17111
- }
17112
- play() {
17113
- this.runAll("play");
17114
- }
17115
- pause() {
17116
- this.runAll("pause");
17117
- }
17118
- cancel() {
17119
- this.runAll("cancel");
17120
- }
17121
- complete() {
17122
- this.runAll("complete");
17123
- }
17124
- }
17125
- class GroupAnimationWithThen extends GroupAnimation {
17126
- then(onResolve, _onReject) {
17127
- return this.finished.finally(onResolve).then(() => {
17128
- });
17129
- }
17130
- }
17131
- const isBezierDefinition = (easing) => Array.isArray(easing) && typeof easing[0] == "number", supportsFlags = {};
17132
- function memoSupports(callback, supportsFlag) {
17133
- const memoized = /* @__PURE__ */ memo(callback);
17134
- return () => supportsFlags[supportsFlag] ?? memoized();
17135
- }
17136
- const supportsLinearEasing = /* @__PURE__ */ memoSupports(() => {
17137
- try {
17138
- document.createElement("div").animate({ opacity: 0 }, { easing: "linear(0, 1)" });
17139
- } catch {
17140
- return !1;
17141
- }
17142
- return !0;
17143
- }, "linearEasing"), generateLinearEasing = (easing, duration, resolution = 10) => {
17144
- let points = "";
17145
- const numPoints = Math.max(Math.round(duration / resolution), 2);
17146
- for (let i2 = 0; i2 < numPoints; i2++)
17147
- points += easing(i2 / (numPoints - 1)) + ", ";
17148
- return `linear(${points.substring(0, points.length - 2)})`;
17149
- }, cubicBezierAsString = ([a2, b2, c2, d2]) => `cubic-bezier(${a2}, ${b2}, ${c2}, ${d2})`, supportedWaapiEasing = {
17150
- linear: "linear",
17151
- ease: "ease",
17152
- easeIn: "ease-in",
17153
- easeOut: "ease-out",
17154
- easeInOut: "ease-in-out",
17155
- circIn: /* @__PURE__ */ cubicBezierAsString([0, 0.65, 0.55, 1]),
17156
- circOut: /* @__PURE__ */ cubicBezierAsString([0.55, 0, 1, 0.45]),
17157
- backIn: /* @__PURE__ */ cubicBezierAsString([0.31, 0.01, 0.66, -0.59]),
17158
- backOut: /* @__PURE__ */ cubicBezierAsString([0.33, 1.53, 0.69, 0.99])
17159
- };
17160
- function mapEasingToNativeEasing(easing, duration) {
17161
- if (easing)
17162
- return typeof easing == "function" && supportsLinearEasing() ? generateLinearEasing(easing, duration) : isBezierDefinition(easing) ? cubicBezierAsString(easing) : Array.isArray(easing) ? easing.map((segmentEasing) => mapEasingToNativeEasing(segmentEasing, duration) || supportedWaapiEasing.easeOut) : supportedWaapiEasing[easing];
17163
- }
17164
- function startWaapiAnimation(element, valueName, keyframes2, { delay: delay2 = 0, duration = 300, repeat = 0, repeatType = "loop", ease: ease2 = "easeInOut", times } = {}, pseudoElement = void 0) {
17165
- const keyframeOptions = {
17166
- [valueName]: keyframes2
17167
- };
17168
- times && (keyframeOptions.offset = times);
17169
- const easing = mapEasingToNativeEasing(ease2, duration);
17170
- return Array.isArray(easing) && (keyframeOptions.easing = easing), element.animate(keyframeOptions, {
17171
- delay: delay2,
17172
- duration,
17173
- easing: Array.isArray(easing) ? "linear" : easing,
17174
- fill: "both",
17175
- iterations: repeat + 1,
17176
- direction: repeatType === "reverse" ? "alternate" : "normal",
17177
- pseudoElement
17178
- });
17179
- }
17180
- function isGenerator(type) {
17181
- return typeof type == "function" && "applyToOptions" in type;
17182
- }
17183
- function getValueTransition$1(transition, key2) {
17184
- return transition?.[key2] ?? transition?.default ?? transition;
17185
- }
17186
- const maxGeneratorDuration = 2e4;
17187
- function calcGeneratorDuration(generator) {
17188
- let duration = 0;
17189
- const timeStep = 50;
17190
- let state = generator.next(duration);
17191
- for (; !state.done && duration < maxGeneratorDuration; )
17192
- duration += timeStep, state = generator.next(duration);
17193
- return duration >= maxGeneratorDuration ? 1 / 0 : duration;
17194
- }
17195
- function createGeneratorEasing(options, scale2 = 100, createGenerator) {
17196
- const generator = createGenerator({ ...options, keyframes: [0, scale2] }), duration = Math.min(calcGeneratorDuration(generator), maxGeneratorDuration);
17197
- return {
17198
- type: "keyframes",
17199
- ease: (progress2) => generator.next(duration * progress2).value / scale2,
17200
- duration: /* @__PURE__ */ millisecondsToSeconds(duration)
17201
- };
17202
- }
17203
- function isWaapiSupportedEasing(easing) {
17204
- return !!(typeof easing == "function" && supportsLinearEasing() || !easing || typeof easing == "string" && (easing in supportedWaapiEasing || supportsLinearEasing()) || isBezierDefinition(easing) || Array.isArray(easing) && easing.every(isWaapiSupportedEasing));
17205
- }
17206
- function attachTimeline(animation, timeline) {
17207
- animation.timeline = timeline, animation.onfinish = null;
17208
- }
17209
- const stepsOrder = [
17022
+ }, stepsOrder = [
17210
17023
  "read",
17211
17024
  // Read
17212
17025
  "resolveKeyframes",
@@ -17279,315 +17092,7 @@ function createRenderBatcher(scheduleNextBatch, allowKeepAlive) {
17279
17092
  steps[stepsOrder[i2]].cancel(process2);
17280
17093
  }, state, steps };
17281
17094
  }
17282
- const { schedule: frame$1, cancel: cancelFrame, state: frameData, steps: frameSteps } = /* @__PURE__ */ createRenderBatcher(typeof requestAnimationFrame < "u" ? requestAnimationFrame : noop$3, !0), { schedule: microtask } = /* @__PURE__ */ createRenderBatcher(queueMicrotask, !1);
17283
- let now$1;
17284
- function clearTime() {
17285
- now$1 = void 0;
17286
- }
17287
- const time = {
17288
- now: () => (now$1 === void 0 && time.set(frameData.isProcessing || MotionGlobalConfig.useManualTiming ? frameData.timestamp : performance.now()), now$1),
17289
- set: (newTime) => {
17290
- now$1 = newTime, queueMicrotask(clearTime);
17291
- }
17292
- }, isDragging = {
17293
- x: !1,
17294
- y: !1
17295
- };
17296
- function isDragActive() {
17297
- return isDragging.x || isDragging.y;
17298
- }
17299
- function setDragLock(axis) {
17300
- return axis === "x" || axis === "y" ? isDragging[axis] ? null : (isDragging[axis] = !0, () => {
17301
- isDragging[axis] = !1;
17302
- }) : isDragging.x || isDragging.y ? null : (isDragging.x = isDragging.y = !0, () => {
17303
- isDragging.x = isDragging.y = !1;
17304
- });
17305
- }
17306
- function resolveElements(elementOrSelector, scope, selectorCache) {
17307
- if (elementOrSelector instanceof EventTarget)
17308
- return [elementOrSelector];
17309
- if (typeof elementOrSelector == "string") {
17310
- let root2 = document;
17311
- const elements = selectorCache?.[elementOrSelector] ?? root2.querySelectorAll(elementOrSelector);
17312
- return elements ? Array.from(elements) : [];
17313
- }
17314
- return Array.from(elementOrSelector);
17315
- }
17316
- function setupGesture(elementOrSelector, options) {
17317
- const elements = resolveElements(elementOrSelector), gestureAbortController = new AbortController(), eventOptions = {
17318
- passive: !0,
17319
- ...options,
17320
- signal: gestureAbortController.signal
17321
- };
17322
- return [elements, eventOptions, () => gestureAbortController.abort()];
17323
- }
17324
- function isValidHover(event) {
17325
- return !(event.pointerType === "touch" || isDragActive());
17326
- }
17327
- function hover(elementOrSelector, onHoverStart, options = {}) {
17328
- const [elements, eventOptions, cancel] = setupGesture(elementOrSelector, options), onPointerEnter = (enterEvent) => {
17329
- if (!isValidHover(enterEvent))
17330
- return;
17331
- const { target } = enterEvent, onHoverEnd = onHoverStart(target, enterEvent);
17332
- if (typeof onHoverEnd != "function" || !target)
17333
- return;
17334
- const onPointerLeave = (leaveEvent) => {
17335
- isValidHover(leaveEvent) && (onHoverEnd(leaveEvent), target.removeEventListener("pointerleave", onPointerLeave));
17336
- };
17337
- target.addEventListener("pointerleave", onPointerLeave, eventOptions);
17338
- };
17339
- return elements.forEach((element) => {
17340
- element.addEventListener("pointerenter", onPointerEnter, eventOptions);
17341
- }), cancel;
17342
- }
17343
- const isNodeOrChild = (parent, child) => child ? parent === child ? !0 : isNodeOrChild(parent, child.parentElement) : !1, isPrimaryPointer = (event) => event.pointerType === "mouse" ? typeof event.button != "number" || event.button <= 0 : event.isPrimary !== !1, focusableElements = /* @__PURE__ */ new Set([
17344
- "BUTTON",
17345
- "INPUT",
17346
- "SELECT",
17347
- "TEXTAREA",
17348
- "A"
17349
- ]);
17350
- function isElementKeyboardAccessible(element) {
17351
- return focusableElements.has(element.tagName) || element.tabIndex !== -1;
17352
- }
17353
- const isPressing = /* @__PURE__ */ new WeakSet();
17354
- function filterEvents(callback) {
17355
- return (event) => {
17356
- event.key === "Enter" && callback(event);
17357
- };
17358
- }
17359
- function firePointerEvent(target, type) {
17360
- target.dispatchEvent(new PointerEvent("pointer" + type, { isPrimary: !0, bubbles: !0 }));
17361
- }
17362
- const enableKeyboardPress = (focusEvent, eventOptions) => {
17363
- const element = focusEvent.currentTarget;
17364
- if (!element)
17365
- return;
17366
- const handleKeydown = filterEvents(() => {
17367
- if (isPressing.has(element))
17368
- return;
17369
- firePointerEvent(element, "down");
17370
- const handleKeyup = filterEvents(() => {
17371
- firePointerEvent(element, "up");
17372
- }), handleBlur = () => firePointerEvent(element, "cancel");
17373
- element.addEventListener("keyup", handleKeyup, eventOptions), element.addEventListener("blur", handleBlur, eventOptions);
17374
- });
17375
- element.addEventListener("keydown", handleKeydown, eventOptions), element.addEventListener("blur", () => element.removeEventListener("keydown", handleKeydown), eventOptions);
17376
- };
17377
- function isValidPressEvent(event) {
17378
- return isPrimaryPointer(event) && !isDragActive();
17379
- }
17380
- function press(targetOrSelector, onPressStart, options = {}) {
17381
- const [targets, eventOptions, cancelEvents] = setupGesture(targetOrSelector, options), startPress = (startEvent) => {
17382
- const target = startEvent.currentTarget;
17383
- if (!isValidPressEvent(startEvent) || isPressing.has(target))
17384
- return;
17385
- isPressing.add(target);
17386
- const onPressEnd = onPressStart(target, startEvent), onPointerEnd = (endEvent, success) => {
17387
- window.removeEventListener("pointerup", onPointerUp), window.removeEventListener("pointercancel", onPointerCancel), !(!isValidPressEvent(endEvent) || !isPressing.has(target)) && (isPressing.delete(target), typeof onPressEnd == "function" && onPressEnd(endEvent, { success }));
17388
- }, onPointerUp = (upEvent) => {
17389
- onPointerEnd(upEvent, target === window || target === document || options.useGlobalTarget || isNodeOrChild(target, upEvent.target));
17390
- }, onPointerCancel = (cancelEvent) => {
17391
- onPointerEnd(cancelEvent, !1);
17392
- };
17393
- window.addEventListener("pointerup", onPointerUp, eventOptions), window.addEventListener("pointercancel", onPointerCancel, eventOptions);
17394
- };
17395
- return targets.forEach((target) => {
17396
- (options.useGlobalTarget ? window : target).addEventListener("pointerdown", startPress, eventOptions), target instanceof HTMLElement && (target.addEventListener("focus", (event) => enableKeyboardPress(event, eventOptions)), !isElementKeyboardAccessible(target) && !target.hasAttribute("tabindex") && (target.tabIndex = 0));
17397
- }), cancelEvents;
17398
- }
17399
- const MAX_VELOCITY_DELTA = 30, isFloat = (value) => !isNaN(parseFloat(value));
17400
- class MotionValue {
17401
- /**
17402
- * @param init - The initiating value
17403
- * @param config - Optional configuration options
17404
- *
17405
- * - `transformer`: A function to transform incoming values with.
17406
- */
17407
- constructor(init2, options = {}) {
17408
- this.version = "12.6.3", this.canTrackVelocity = null, this.events = {}, this.updateAndNotify = (v, render = !0) => {
17409
- const currentTime = time.now();
17410
- this.updatedAt !== currentTime && this.setPrevFrameValue(), this.prev = this.current, this.setCurrent(v), this.current !== this.prev && this.events.change && this.events.change.notify(this.current), render && this.events.renderRequest && this.events.renderRequest.notify(this.current);
17411
- }, this.hasAnimated = !1, this.setCurrent(init2), this.owner = options.owner;
17412
- }
17413
- setCurrent(current) {
17414
- this.current = current, this.updatedAt = time.now(), this.canTrackVelocity === null && current !== void 0 && (this.canTrackVelocity = isFloat(this.current));
17415
- }
17416
- setPrevFrameValue(prevFrameValue = this.current) {
17417
- this.prevFrameValue = prevFrameValue, this.prevUpdatedAt = this.updatedAt;
17418
- }
17419
- /**
17420
- * Adds a function that will be notified when the `MotionValue` is updated.
17421
- *
17422
- * It returns a function that, when called, will cancel the subscription.
17423
- *
17424
- * When calling `onChange` inside a React component, it should be wrapped with the
17425
- * `useEffect` hook. As it returns an unsubscribe function, this should be returned
17426
- * from the `useEffect` function to ensure you don't add duplicate subscribers..
17427
- *
17428
- * ```jsx
17429
- * export const MyComponent = () => {
17430
- * const x = useMotionValue(0)
17431
- * const y = useMotionValue(0)
17432
- * const opacity = useMotionValue(1)
17433
- *
17434
- * useEffect(() => {
17435
- * function updateOpacity() {
17436
- * const maxXY = Math.max(x.get(), y.get())
17437
- * const newOpacity = transform(maxXY, [0, 100], [1, 0])
17438
- * opacity.set(newOpacity)
17439
- * }
17440
- *
17441
- * const unsubscribeX = x.on("change", updateOpacity)
17442
- * const unsubscribeY = y.on("change", updateOpacity)
17443
- *
17444
- * return () => {
17445
- * unsubscribeX()
17446
- * unsubscribeY()
17447
- * }
17448
- * }, [])
17449
- *
17450
- * return <motion.div style={{ x }} />
17451
- * }
17452
- * ```
17453
- *
17454
- * @param subscriber - A function that receives the latest value.
17455
- * @returns A function that, when called, will cancel this subscription.
17456
- *
17457
- * @deprecated
17458
- */
17459
- onChange(subscription) {
17460
- return this.on("change", subscription);
17461
- }
17462
- on(eventName, callback) {
17463
- this.events[eventName] || (this.events[eventName] = new SubscriptionManager());
17464
- const unsubscribe = this.events[eventName].add(callback);
17465
- return eventName === "change" ? () => {
17466
- unsubscribe(), frame$1.read(() => {
17467
- this.events.change.getSize() || this.stop();
17468
- });
17469
- } : unsubscribe;
17470
- }
17471
- clearListeners() {
17472
- for (const eventManagers in this.events)
17473
- this.events[eventManagers].clear();
17474
- }
17475
- /**
17476
- * Attaches a passive effect to the `MotionValue`.
17477
- */
17478
- attach(passiveEffect, stopPassiveEffect) {
17479
- this.passiveEffect = passiveEffect, this.stopPassiveEffect = stopPassiveEffect;
17480
- }
17481
- /**
17482
- * Sets the state of the `MotionValue`.
17483
- *
17484
- * @remarks
17485
- *
17486
- * ```jsx
17487
- * const x = useMotionValue(0)
17488
- * x.set(10)
17489
- * ```
17490
- *
17491
- * @param latest - Latest value to set.
17492
- * @param render - Whether to notify render subscribers. Defaults to `true`
17493
- *
17494
- * @public
17495
- */
17496
- set(v, render = !0) {
17497
- !render || !this.passiveEffect ? this.updateAndNotify(v, render) : this.passiveEffect(v, this.updateAndNotify);
17498
- }
17499
- setWithVelocity(prev, current, delta) {
17500
- this.set(current), this.prev = void 0, this.prevFrameValue = prev, this.prevUpdatedAt = this.updatedAt - delta;
17501
- }
17502
- /**
17503
- * Set the state of the `MotionValue`, stopping any active animations,
17504
- * effects, and resets velocity to `0`.
17505
- */
17506
- jump(v, endAnimation = !0) {
17507
- this.updateAndNotify(v), this.prev = v, this.prevUpdatedAt = this.prevFrameValue = void 0, endAnimation && this.stop(), this.stopPassiveEffect && this.stopPassiveEffect();
17508
- }
17509
- /**
17510
- * Returns the latest state of `MotionValue`
17511
- *
17512
- * @returns - The latest state of `MotionValue`
17513
- *
17514
- * @public
17515
- */
17516
- get() {
17517
- return this.current;
17518
- }
17519
- /**
17520
- * @public
17521
- */
17522
- getPrevious() {
17523
- return this.prev;
17524
- }
17525
- /**
17526
- * Returns the latest velocity of `MotionValue`
17527
- *
17528
- * @returns - The latest velocity of `MotionValue`. Returns `0` if the state is non-numerical.
17529
- *
17530
- * @public
17531
- */
17532
- getVelocity() {
17533
- const currentTime = time.now();
17534
- if (!this.canTrackVelocity || this.prevFrameValue === void 0 || currentTime - this.updatedAt > MAX_VELOCITY_DELTA)
17535
- return 0;
17536
- const delta = Math.min(this.updatedAt - this.prevUpdatedAt, MAX_VELOCITY_DELTA);
17537
- return velocityPerSecond(parseFloat(this.current) - parseFloat(this.prevFrameValue), delta);
17538
- }
17539
- /**
17540
- * Registers a new animation to control this `MotionValue`. Only one
17541
- * animation can drive a `MotionValue` at one time.
17542
- *
17543
- * ```jsx
17544
- * value.start()
17545
- * ```
17546
- *
17547
- * @param animation - A function that starts the provided animation
17548
- */
17549
- start(startAnimation) {
17550
- return this.stop(), new Promise((resolve) => {
17551
- this.hasAnimated = !0, this.animation = startAnimation(resolve), this.events.animationStart && this.events.animationStart.notify();
17552
- }).then(() => {
17553
- this.events.animationComplete && this.events.animationComplete.notify(), this.clearAnimation();
17554
- });
17555
- }
17556
- /**
17557
- * Stop the currently active animation.
17558
- *
17559
- * @public
17560
- */
17561
- stop() {
17562
- this.animation && (this.animation.stop(), this.events.animationCancel && this.events.animationCancel.notify()), this.clearAnimation();
17563
- }
17564
- /**
17565
- * Returns `true` if this value is currently animating.
17566
- *
17567
- * @public
17568
- */
17569
- isAnimating() {
17570
- return !!this.animation;
17571
- }
17572
- clearAnimation() {
17573
- delete this.animation;
17574
- }
17575
- /**
17576
- * Destroy and clean up subscribers to this `MotionValue`.
17577
- *
17578
- * The `MotionValue` hooks like `useMotionValue` and `useTransform` automatically
17579
- * handle the lifecycle of the returned `MotionValue`, so this method is only necessary if you've manually
17580
- * created a `MotionValue` via the `motionValue` function.
17581
- *
17582
- * @public
17583
- */
17584
- destroy() {
17585
- this.clearListeners(), this.stop(), this.stopPassiveEffect && this.stopPassiveEffect();
17586
- }
17587
- }
17588
- function motionValue(init2, options) {
17589
- return new MotionValue(init2, options);
17590
- }
17095
+ const { schedule: frame$1, cancel: cancelFrame, state: frameData, steps: frameSteps } = /* @__PURE__ */ createRenderBatcher(typeof requestAnimationFrame < "u" ? requestAnimationFrame : noop$3, !0);
17591
17096
  function useIsMounted() {
17592
17097
  const isMounted = useRef(!1);
17593
17098
  return useIsomorphicLayoutEffect$2(() => (isMounted.current = !0, () => {
@@ -17797,7 +17302,7 @@ function useMotionRef(visualState, visualElement, externalRef) {
17797
17302
  [visualElement]
17798
17303
  );
17799
17304
  }
17800
- const camelToDash = (str) => str.replace(/([a-z])([A-Z])/gu, "$1-$2").toLowerCase(), optimizedAppearDataId = "framerAppearId", optimizedAppearDataAttribute = "data-" + camelToDash(optimizedAppearDataId), SwitchLayoutGroupContext = createContext({});
17305
+ const { schedule: microtask } = /* @__PURE__ */ createRenderBatcher(queueMicrotask, !1), camelToDash = (str) => str.replace(/([a-z])([A-Z])/gu, "$1-$2").toLowerCase(), optimizedAppearDataId = "framerAppearId", optimizedAppearDataAttribute = "data-" + camelToDash(optimizedAppearDataId), SwitchLayoutGroupContext = createContext({});
17801
17306
  function useVisualElement(Component2, visualState, props, createVisualElement, ProjectionNodeConstructor) {
17802
17307
  const { visualElement: parent } = useContext(MotionContext), lazyContext = useContext(LazyContext), presenceContext = useContext(PresenceContext), reducedMotionConfig = useContext(MotionConfigContext).reducedMotion, visualElementRef = useRef(null);
17803
17308
  createVisualElement = createVisualElement || lazyContext.renderer, !visualElementRef.current && createVisualElement && (visualElementRef.current = createVisualElement(Component2, {
@@ -17910,13 +17415,13 @@ const transformPropOrder = [
17910
17415
  function isForcedMotionValue(key2, { layout: layout2, layoutId }) {
17911
17416
  return transformProps.has(key2) || key2.startsWith("origin") || (layout2 || layoutId !== void 0) && (!!scaleCorrectors[key2] || key2 === "opacity");
17912
17417
  }
17913
- const isMotionValue = (value) => !!(value && value.getVelocity), getValueAsType = (value, type) => type && typeof value == "number" ? type.transform(value) : value, clamp$2 = (min2, max2, v) => v > max2 ? max2 : v < min2 ? min2 : v, number = {
17418
+ const isMotionValue = (value) => !!(value && value.getVelocity), getValueAsType = (value, type) => type && typeof value == "number" ? type.transform(value) : value, clamp$1 = (min2, max2, v) => v > max2 ? max2 : v < min2 ? min2 : v, number = {
17914
17419
  test: (v) => typeof v == "number",
17915
17420
  parse: parseFloat,
17916
17421
  transform: (v) => v
17917
17422
  }, alpha = {
17918
17423
  ...number,
17919
- transform: (v) => clamp$2(0, 1, v)
17424
+ transform: (v) => clamp$1(0, 1, v)
17920
17425
  }, scale = {
17921
17426
  ...number,
17922
17427
  default: 1
@@ -18366,6 +17871,9 @@ function resolveVariant(visualElement, definition, custom5) {
18366
17871
  const props = visualElement.getProps();
18367
17872
  return resolveVariantFromProps(props, definition, custom5 !== void 0 ? custom5 : props.custom, visualElement);
18368
17873
  }
17874
+ function getValueTransition$1(transition, key2) {
17875
+ return transition?.[key2] ?? transition?.default ?? transition;
17876
+ }
18369
17877
  const positionalKeys = /* @__PURE__ */ new Set([
18370
17878
  "width",
18371
17879
  "height",
@@ -18375,6 +17883,242 @@ const positionalKeys = /* @__PURE__ */ new Set([
18375
17883
  "bottom",
18376
17884
  ...transformPropOrder
18377
17885
  ]);
17886
+ function addUniqueItem(arr, item) {
17887
+ arr.indexOf(item) === -1 && arr.push(item);
17888
+ }
17889
+ function removeItem(arr, item) {
17890
+ const index2 = arr.indexOf(item);
17891
+ index2 > -1 && arr.splice(index2, 1);
17892
+ }
17893
+ class SubscriptionManager {
17894
+ constructor() {
17895
+ this.subscriptions = [];
17896
+ }
17897
+ add(handler) {
17898
+ return addUniqueItem(this.subscriptions, handler), () => removeItem(this.subscriptions, handler);
17899
+ }
17900
+ notify(a2, b2, c2) {
17901
+ const numSubscriptions = this.subscriptions.length;
17902
+ if (numSubscriptions)
17903
+ if (numSubscriptions === 1)
17904
+ this.subscriptions[0](a2, b2, c2);
17905
+ else
17906
+ for (let i2 = 0; i2 < numSubscriptions; i2++) {
17907
+ const handler = this.subscriptions[i2];
17908
+ handler && handler(a2, b2, c2);
17909
+ }
17910
+ }
17911
+ getSize() {
17912
+ return this.subscriptions.length;
17913
+ }
17914
+ clear() {
17915
+ this.subscriptions.length = 0;
17916
+ }
17917
+ }
17918
+ function velocityPerSecond(velocity, frameDuration) {
17919
+ return frameDuration ? velocity * (1e3 / frameDuration) : 0;
17920
+ }
17921
+ let now$1;
17922
+ function clearTime() {
17923
+ now$1 = void 0;
17924
+ }
17925
+ const time = {
17926
+ now: () => (now$1 === void 0 && time.set(frameData.isProcessing || MotionGlobalConfig.useManualTiming ? frameData.timestamp : performance.now()), now$1),
17927
+ set: (newTime) => {
17928
+ now$1 = newTime, queueMicrotask(clearTime);
17929
+ }
17930
+ }, MAX_VELOCITY_DELTA = 30, isFloat = (value) => !isNaN(parseFloat(value));
17931
+ class MotionValue {
17932
+ /**
17933
+ * @param init - The initiating value
17934
+ * @param config - Optional configuration options
17935
+ *
17936
+ * - `transformer`: A function to transform incoming values with.
17937
+ */
17938
+ constructor(init2, options = {}) {
17939
+ this.version = "12.6.3", this.canTrackVelocity = null, this.events = {}, this.updateAndNotify = (v, render = !0) => {
17940
+ const currentTime = time.now();
17941
+ this.updatedAt !== currentTime && this.setPrevFrameValue(), this.prev = this.current, this.setCurrent(v), this.current !== this.prev && this.events.change && this.events.change.notify(this.current), render && this.events.renderRequest && this.events.renderRequest.notify(this.current);
17942
+ }, this.hasAnimated = !1, this.setCurrent(init2), this.owner = options.owner;
17943
+ }
17944
+ setCurrent(current) {
17945
+ this.current = current, this.updatedAt = time.now(), this.canTrackVelocity === null && current !== void 0 && (this.canTrackVelocity = isFloat(this.current));
17946
+ }
17947
+ setPrevFrameValue(prevFrameValue = this.current) {
17948
+ this.prevFrameValue = prevFrameValue, this.prevUpdatedAt = this.updatedAt;
17949
+ }
17950
+ /**
17951
+ * Adds a function that will be notified when the `MotionValue` is updated.
17952
+ *
17953
+ * It returns a function that, when called, will cancel the subscription.
17954
+ *
17955
+ * When calling `onChange` inside a React component, it should be wrapped with the
17956
+ * `useEffect` hook. As it returns an unsubscribe function, this should be returned
17957
+ * from the `useEffect` function to ensure you don't add duplicate subscribers..
17958
+ *
17959
+ * ```jsx
17960
+ * export const MyComponent = () => {
17961
+ * const x = useMotionValue(0)
17962
+ * const y = useMotionValue(0)
17963
+ * const opacity = useMotionValue(1)
17964
+ *
17965
+ * useEffect(() => {
17966
+ * function updateOpacity() {
17967
+ * const maxXY = Math.max(x.get(), y.get())
17968
+ * const newOpacity = transform(maxXY, [0, 100], [1, 0])
17969
+ * opacity.set(newOpacity)
17970
+ * }
17971
+ *
17972
+ * const unsubscribeX = x.on("change", updateOpacity)
17973
+ * const unsubscribeY = y.on("change", updateOpacity)
17974
+ *
17975
+ * return () => {
17976
+ * unsubscribeX()
17977
+ * unsubscribeY()
17978
+ * }
17979
+ * }, [])
17980
+ *
17981
+ * return <motion.div style={{ x }} />
17982
+ * }
17983
+ * ```
17984
+ *
17985
+ * @param subscriber - A function that receives the latest value.
17986
+ * @returns A function that, when called, will cancel this subscription.
17987
+ *
17988
+ * @deprecated
17989
+ */
17990
+ onChange(subscription) {
17991
+ return this.on("change", subscription);
17992
+ }
17993
+ on(eventName, callback) {
17994
+ this.events[eventName] || (this.events[eventName] = new SubscriptionManager());
17995
+ const unsubscribe = this.events[eventName].add(callback);
17996
+ return eventName === "change" ? () => {
17997
+ unsubscribe(), frame$1.read(() => {
17998
+ this.events.change.getSize() || this.stop();
17999
+ });
18000
+ } : unsubscribe;
18001
+ }
18002
+ clearListeners() {
18003
+ for (const eventManagers in this.events)
18004
+ this.events[eventManagers].clear();
18005
+ }
18006
+ /**
18007
+ * Attaches a passive effect to the `MotionValue`.
18008
+ */
18009
+ attach(passiveEffect, stopPassiveEffect) {
18010
+ this.passiveEffect = passiveEffect, this.stopPassiveEffect = stopPassiveEffect;
18011
+ }
18012
+ /**
18013
+ * Sets the state of the `MotionValue`.
18014
+ *
18015
+ * @remarks
18016
+ *
18017
+ * ```jsx
18018
+ * const x = useMotionValue(0)
18019
+ * x.set(10)
18020
+ * ```
18021
+ *
18022
+ * @param latest - Latest value to set.
18023
+ * @param render - Whether to notify render subscribers. Defaults to `true`
18024
+ *
18025
+ * @public
18026
+ */
18027
+ set(v, render = !0) {
18028
+ !render || !this.passiveEffect ? this.updateAndNotify(v, render) : this.passiveEffect(v, this.updateAndNotify);
18029
+ }
18030
+ setWithVelocity(prev, current, delta) {
18031
+ this.set(current), this.prev = void 0, this.prevFrameValue = prev, this.prevUpdatedAt = this.updatedAt - delta;
18032
+ }
18033
+ /**
18034
+ * Set the state of the `MotionValue`, stopping any active animations,
18035
+ * effects, and resets velocity to `0`.
18036
+ */
18037
+ jump(v, endAnimation = !0) {
18038
+ this.updateAndNotify(v), this.prev = v, this.prevUpdatedAt = this.prevFrameValue = void 0, endAnimation && this.stop(), this.stopPassiveEffect && this.stopPassiveEffect();
18039
+ }
18040
+ /**
18041
+ * Returns the latest state of `MotionValue`
18042
+ *
18043
+ * @returns - The latest state of `MotionValue`
18044
+ *
18045
+ * @public
18046
+ */
18047
+ get() {
18048
+ return this.current;
18049
+ }
18050
+ /**
18051
+ * @public
18052
+ */
18053
+ getPrevious() {
18054
+ return this.prev;
18055
+ }
18056
+ /**
18057
+ * Returns the latest velocity of `MotionValue`
18058
+ *
18059
+ * @returns - The latest velocity of `MotionValue`. Returns `0` if the state is non-numerical.
18060
+ *
18061
+ * @public
18062
+ */
18063
+ getVelocity() {
18064
+ const currentTime = time.now();
18065
+ if (!this.canTrackVelocity || this.prevFrameValue === void 0 || currentTime - this.updatedAt > MAX_VELOCITY_DELTA)
18066
+ return 0;
18067
+ const delta = Math.min(this.updatedAt - this.prevUpdatedAt, MAX_VELOCITY_DELTA);
18068
+ return velocityPerSecond(parseFloat(this.current) - parseFloat(this.prevFrameValue), delta);
18069
+ }
18070
+ /**
18071
+ * Registers a new animation to control this `MotionValue`. Only one
18072
+ * animation can drive a `MotionValue` at one time.
18073
+ *
18074
+ * ```jsx
18075
+ * value.start()
18076
+ * ```
18077
+ *
18078
+ * @param animation - A function that starts the provided animation
18079
+ */
18080
+ start(startAnimation) {
18081
+ return this.stop(), new Promise((resolve) => {
18082
+ this.hasAnimated = !0, this.animation = startAnimation(resolve), this.events.animationStart && this.events.animationStart.notify();
18083
+ }).then(() => {
18084
+ this.events.animationComplete && this.events.animationComplete.notify(), this.clearAnimation();
18085
+ });
18086
+ }
18087
+ /**
18088
+ * Stop the currently active animation.
18089
+ *
18090
+ * @public
18091
+ */
18092
+ stop() {
18093
+ this.animation && (this.animation.stop(), this.events.animationCancel && this.events.animationCancel.notify()), this.clearAnimation();
18094
+ }
18095
+ /**
18096
+ * Returns `true` if this value is currently animating.
18097
+ *
18098
+ * @public
18099
+ */
18100
+ isAnimating() {
18101
+ return !!this.animation;
18102
+ }
18103
+ clearAnimation() {
18104
+ delete this.animation;
18105
+ }
18106
+ /**
18107
+ * Destroy and clean up subscribers to this `MotionValue`.
18108
+ *
18109
+ * The `MotionValue` hooks like `useMotionValue` and `useTransform` automatically
18110
+ * handle the lifecycle of the returned `MotionValue`, so this method is only necessary if you've manually
18111
+ * created a `MotionValue` via the `motionValue` function.
18112
+ *
18113
+ * @public
18114
+ */
18115
+ destroy() {
18116
+ this.clearListeners(), this.stop(), this.stopPassiveEffect && this.stopPassiveEffect();
18117
+ }
18118
+ }
18119
+ function motionValue(init2, options) {
18120
+ return new MotionValue(init2, options);
18121
+ }
18378
18122
  function setMotionValue(visualElement, key2, value) {
18379
18123
  visualElement.hasValue(key2) ? visualElement.getValue(key2).set(value) : visualElement.addValue(key2, motionValue(value));
18380
18124
  }
@@ -18398,6 +18142,147 @@ function addValueToWillChange(visualElement, key2) {
18398
18142
  function getOptimisedAppearId(visualElement) {
18399
18143
  return visualElement.props[optimizedAppearDataAttribute];
18400
18144
  }
18145
+ const secondsToMilliseconds = /* @__NO_SIDE_EFFECTS__ */ (seconds) => seconds * 1e3, millisecondsToSeconds = /* @__NO_SIDE_EFFECTS__ */ (milliseconds) => milliseconds / 1e3;
18146
+ // @__NO_SIDE_EFFECTS__
18147
+ function memo(callback) {
18148
+ let result;
18149
+ return () => (result === void 0 && (result = callback()), result);
18150
+ }
18151
+ const supportsScrollTimeline = /* @__PURE__ */ memo(() => window.ScrollTimeline !== void 0);
18152
+ class GroupAnimation {
18153
+ constructor(animations2) {
18154
+ this.stop = () => this.runAll("stop"), this.animations = animations2.filter(Boolean);
18155
+ }
18156
+ get finished() {
18157
+ return Promise.all(this.animations.map((animation) => animation.finished));
18158
+ }
18159
+ /**
18160
+ * TODO: Filter out cancelled or stopped animations before returning
18161
+ */
18162
+ getAll(propName) {
18163
+ return this.animations[0][propName];
18164
+ }
18165
+ setAll(propName, newValue) {
18166
+ for (let i2 = 0; i2 < this.animations.length; i2++)
18167
+ this.animations[i2][propName] = newValue;
18168
+ }
18169
+ attachTimeline(timeline, fallback) {
18170
+ const subscriptions = this.animations.map((animation) => {
18171
+ if (supportsScrollTimeline() && animation.attachTimeline)
18172
+ return animation.attachTimeline(timeline);
18173
+ if (typeof fallback == "function")
18174
+ return fallback(animation);
18175
+ });
18176
+ return () => {
18177
+ subscriptions.forEach((cancel, i2) => {
18178
+ cancel && cancel(), this.animations[i2].stop();
18179
+ });
18180
+ };
18181
+ }
18182
+ get time() {
18183
+ return this.getAll("time");
18184
+ }
18185
+ set time(time2) {
18186
+ this.setAll("time", time2);
18187
+ }
18188
+ get speed() {
18189
+ return this.getAll("speed");
18190
+ }
18191
+ set speed(speed) {
18192
+ this.setAll("speed", speed);
18193
+ }
18194
+ get startTime() {
18195
+ return this.getAll("startTime");
18196
+ }
18197
+ get duration() {
18198
+ let max2 = 0;
18199
+ for (let i2 = 0; i2 < this.animations.length; i2++)
18200
+ max2 = Math.max(max2, this.animations[i2].duration);
18201
+ return max2;
18202
+ }
18203
+ runAll(methodName) {
18204
+ this.animations.forEach((controls) => controls[methodName]());
18205
+ }
18206
+ flatten() {
18207
+ this.runAll("flatten");
18208
+ }
18209
+ play() {
18210
+ this.runAll("play");
18211
+ }
18212
+ pause() {
18213
+ this.runAll("pause");
18214
+ }
18215
+ cancel() {
18216
+ this.runAll("cancel");
18217
+ }
18218
+ complete() {
18219
+ this.runAll("complete");
18220
+ }
18221
+ }
18222
+ class GroupAnimationWithThen extends GroupAnimation {
18223
+ then(onResolve, _onReject) {
18224
+ return this.finished.finally(onResolve).then(() => {
18225
+ });
18226
+ }
18227
+ }
18228
+ const isBezierDefinition = (easing) => Array.isArray(easing) && typeof easing[0] == "number", supportsFlags = {};
18229
+ function memoSupports(callback, supportsFlag) {
18230
+ const memoized = /* @__PURE__ */ memo(callback);
18231
+ return () => supportsFlags[supportsFlag] ?? memoized();
18232
+ }
18233
+ const supportsLinearEasing = /* @__PURE__ */ memoSupports(() => {
18234
+ try {
18235
+ document.createElement("div").animate({ opacity: 0 }, { easing: "linear(0, 1)" });
18236
+ } catch {
18237
+ return !1;
18238
+ }
18239
+ return !0;
18240
+ }, "linearEasing"), generateLinearEasing = (easing, duration, resolution = 10) => {
18241
+ let points = "";
18242
+ const numPoints = Math.max(Math.round(duration / resolution), 2);
18243
+ for (let i2 = 0; i2 < numPoints; i2++)
18244
+ points += easing(i2 / (numPoints - 1)) + ", ";
18245
+ return `linear(${points.substring(0, points.length - 2)})`;
18246
+ }, cubicBezierAsString = ([a2, b2, c2, d2]) => `cubic-bezier(${a2}, ${b2}, ${c2}, ${d2})`, supportedWaapiEasing = {
18247
+ linear: "linear",
18248
+ ease: "ease",
18249
+ easeIn: "ease-in",
18250
+ easeOut: "ease-out",
18251
+ easeInOut: "ease-in-out",
18252
+ circIn: /* @__PURE__ */ cubicBezierAsString([0, 0.65, 0.55, 1]),
18253
+ circOut: /* @__PURE__ */ cubicBezierAsString([0.55, 0, 1, 0.45]),
18254
+ backIn: /* @__PURE__ */ cubicBezierAsString([0.31, 0.01, 0.66, -0.59]),
18255
+ backOut: /* @__PURE__ */ cubicBezierAsString([0.33, 1.53, 0.69, 0.99])
18256
+ };
18257
+ function mapEasingToNativeEasing(easing, duration) {
18258
+ if (easing)
18259
+ return typeof easing == "function" && supportsLinearEasing() ? generateLinearEasing(easing, duration) : isBezierDefinition(easing) ? cubicBezierAsString(easing) : Array.isArray(easing) ? easing.map((segmentEasing) => mapEasingToNativeEasing(segmentEasing, duration) || supportedWaapiEasing.easeOut) : supportedWaapiEasing[easing];
18260
+ }
18261
+ function startWaapiAnimation(element, valueName, keyframes2, { delay: delay2 = 0, duration = 300, repeat = 0, repeatType = "loop", ease: ease2 = "easeInOut", times } = {}, pseudoElement = void 0) {
18262
+ const keyframeOptions = {
18263
+ [valueName]: keyframes2
18264
+ };
18265
+ times && (keyframeOptions.offset = times);
18266
+ const easing = mapEasingToNativeEasing(ease2, duration);
18267
+ return Array.isArray(easing) && (keyframeOptions.easing = easing), element.animate(keyframeOptions, {
18268
+ delay: delay2,
18269
+ duration,
18270
+ easing: Array.isArray(easing) ? "linear" : easing,
18271
+ fill: "both",
18272
+ iterations: repeat + 1,
18273
+ direction: repeatType === "reverse" ? "alternate" : "normal",
18274
+ pseudoElement
18275
+ });
18276
+ }
18277
+ function isGenerator(type) {
18278
+ return typeof type == "function" && "applyToOptions" in type;
18279
+ }
18280
+ function isWaapiSupportedEasing(easing) {
18281
+ return !!(typeof easing == "function" && supportsLinearEasing() || !easing || typeof easing == "string" && (easing in supportedWaapiEasing || supportsLinearEasing()) || isBezierDefinition(easing) || Array.isArray(easing) && easing.every(isWaapiSupportedEasing));
18282
+ }
18283
+ function attachTimeline(animation, timeline) {
18284
+ animation.timeline = timeline, animation.onfinish = null;
18285
+ }
18401
18286
  const calcBezier = (t2, a1, a2) => (((1 - 3 * a2 + 3 * a1) * t2 + (3 * a2 - 6 * a1)) * t2 + 3 * a1) * t2, subdivisionPrecision = 1e-7, subdivisionMaxIterations = 12;
18402
18287
  function binarySubdivide(x2, lowerBound, upperBound, mX1, mX2) {
18403
18288
  let currentX, currentT, i2 = 0;
@@ -18430,7 +18315,7 @@ const singleColorRegex = /^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){
18430
18315
  [cName]: parseFloat(c2),
18431
18316
  alpha: alpha2 !== void 0 ? parseFloat(alpha2) : 1
18432
18317
  };
18433
- }, clampRgbUnit = (v) => clamp$2(0, 255, v), rgbUnit = {
18318
+ }, clampRgbUnit = (v) => clamp$1(0, 255, v), rgbUnit = {
18434
18319
  ...number,
18435
18320
  transform: (v) => Math.round(clampRgbUnit(v))
18436
18321
  }, rgba$1 = {
@@ -18880,6 +18765,15 @@ class BaseAnimation {
18880
18765
  });
18881
18766
  }
18882
18767
  }
18768
+ const maxGeneratorDuration = 2e4;
18769
+ function calcGeneratorDuration(generator) {
18770
+ let duration = 0;
18771
+ const timeStep = 50;
18772
+ let state = generator.next(duration);
18773
+ for (; !state.done && duration < maxGeneratorDuration; )
18774
+ duration += timeStep, state = generator.next(duration);
18775
+ return duration >= maxGeneratorDuration ? 1 / 0 : duration;
18776
+ }
18883
18777
  const mixNumber$1 = (from, to, progress2) => from + (to - from) * progress2;
18884
18778
  function hueToRgb(p2, q, t2) {
18885
18779
  return t2 < 0 && (t2 += 1), t2 > 1 && (t2 -= 1), t2 < 1 / 6 ? p2 + (q - p2) * 6 * t2 : t2 < 1 / 2 ? q : t2 < 2 / 3 ? p2 + (q - p2) * (2 / 3 - t2) * 6 : p2;
@@ -18963,6 +18857,14 @@ const mixComplex = (origin, target) => {
18963
18857
  function mix(from, to, p2) {
18964
18858
  return typeof from == "number" && typeof to == "number" && typeof p2 == "number" ? mixNumber$1(from, to, p2) : getMixer(from)(from, to);
18965
18859
  }
18860
+ function createGeneratorEasing(options, scale2 = 100, createGenerator) {
18861
+ const generator = createGenerator({ ...options, keyframes: [0, scale2] }), duration = Math.min(calcGeneratorDuration(generator), maxGeneratorDuration);
18862
+ return {
18863
+ type: "keyframes",
18864
+ ease: (progress2) => generator.next(duration * progress2).value / scale2,
18865
+ duration: /* @__PURE__ */ millisecondsToSeconds(duration)
18866
+ };
18867
+ }
18966
18868
  const velocitySampleDuration = 5;
18967
18869
  function calcGeneratorVelocity(resolveValue, t2, current) {
18968
18870
  const prevT = Math.max(t2 - velocitySampleDuration, 0);
@@ -18999,7 +18901,7 @@ const springDefaults = {
18999
18901
  }, safeMin = 1e-3;
19000
18902
  function findSpring({ duration = springDefaults.duration, bounce = springDefaults.bounce, velocity = springDefaults.velocity, mass = springDefaults.mass }) {
19001
18903
  let envelope, derivative, dampingRatio = 1 - bounce;
19002
- dampingRatio = clamp$2(springDefaults.minDamping, springDefaults.maxDamping, dampingRatio), duration = clamp$2(springDefaults.minDuration, springDefaults.maxDuration, /* @__PURE__ */ millisecondsToSeconds(duration)), dampingRatio < 1 ? (envelope = (undampedFreq2) => {
18904
+ dampingRatio = clamp$1(springDefaults.minDamping, springDefaults.maxDamping, dampingRatio), duration = clamp$1(springDefaults.minDuration, springDefaults.maxDuration, /* @__PURE__ */ millisecondsToSeconds(duration)), dampingRatio < 1 ? (envelope = (undampedFreq2) => {
19003
18905
  const exponentialDecay = undampedFreq2 * dampingRatio, delta = exponentialDecay * duration, a2 = exponentialDecay - velocity, b2 = calcAngularFreq(undampedFreq2, dampingRatio), c2 = Math.exp(-delta);
19004
18906
  return safeMin - a2 / b2 * c2;
19005
18907
  }, derivative = (undampedFreq2) => {
@@ -19053,7 +18955,7 @@ function getSpringOptions(options) {
19053
18955
  };
19054
18956
  if (!isSpringType(options, physicsKeys) && isSpringType(options, durationKeys))
19055
18957
  if (options.visualDuration) {
19056
- const visualDuration = options.visualDuration, root2 = 2 * Math.PI / (visualDuration * 1.2), stiffness = root2 * root2, damping = 2 * clamp$2(0.05, 1, 1 - (options.bounce || 0)) * Math.sqrt(stiffness);
18958
+ const visualDuration = options.visualDuration, root2 = 2 * Math.PI / (visualDuration * 1.2), stiffness = root2 * root2, damping = 2 * clamp$1(0.05, 1, 1 - (options.bounce || 0)) * Math.sqrt(stiffness);
19057
18959
  springOptions = {
19058
18960
  ...springOptions,
19059
18961
  mass: springDefaults.mass,
@@ -19177,6 +19079,9 @@ const easeIn = /* @__PURE__ */ cubicBezier(0.42, 0, 1, 1), easeOut = /* @__PURE_
19177
19079
  } else if (typeof definition == "string")
19178
19080
  return easingLookup[definition];
19179
19081
  return definition;
19082
+ }, progress = /* @__NO_SIDE_EFFECTS__ */ (from, to, value) => {
19083
+ const toFromDifference = to - from;
19084
+ return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;
19180
19085
  };
19181
19086
  function createMixers(output, ease2, customMixer) {
19182
19087
  const mixers = [], mixerFactory = customMixer || mix, numMixers = output.length - 1;
@@ -19208,7 +19113,7 @@ function interpolate$1(input2, output, { clamp: isClamp = !0, ease: ease2, mixer
19208
19113
  const progressInRange = /* @__PURE__ */ progress(input2[i2], input2[i2 + 1], v);
19209
19114
  return mixers[i2](progressInRange);
19210
19115
  };
19211
- return isClamp ? (v) => interpolator(clamp$2(input2[0], input2[inputLength - 1], v)) : interpolator;
19116
+ return isClamp ? (v) => interpolator(clamp$1(input2[0], input2[inputLength - 1], v)) : interpolator;
19212
19117
  }
19213
19118
  function fillOffset(offset2, remaining) {
19214
19119
  const min2 = offset2[offset2.length - 1];
@@ -19318,7 +19223,7 @@ class MainThreadAnimation extends BaseAnimation {
19318
19223
  if (repeat) {
19319
19224
  const progress2 = Math.min(this.currentTime, totalDuration) / resolvedDuration;
19320
19225
  let currentIteration = Math.floor(progress2), iterationProgress = progress2 % 1;
19321
- !iterationProgress && progress2 >= 1 && (iterationProgress = 1), iterationProgress === 1 && currentIteration--, currentIteration = Math.min(currentIteration, repeat + 1), !!(currentIteration % 2) && (repeatType === "reverse" ? (iterationProgress = 1 - iterationProgress, repeatDelay && (iterationProgress -= repeatDelay / resolvedDuration)) : repeatType === "mirror" && (frameGenerator = mirroredGenerator)), elapsed = clamp$2(0, 1, iterationProgress) * resolvedDuration;
19226
+ !iterationProgress && progress2 >= 1 && (iterationProgress = 1), iterationProgress === 1 && currentIteration--, currentIteration = Math.min(currentIteration, repeat + 1), !!(currentIteration % 2) && (repeatType === "reverse" ? (iterationProgress = 1 - iterationProgress, repeatDelay && (iterationProgress -= repeatDelay / resolvedDuration)) : repeatType === "mirror" && (frameGenerator = mirroredGenerator)), elapsed = clamp$1(0, 1, iterationProgress) * resolvedDuration;
19322
19227
  }
19323
19228
  const state = isInDelayPhase ? { done: !1, value: keyframes2[0] } : frameGenerator.next(elapsed);
19324
19229
  mapPercentToKeyframes && (state.value = mapPercentToKeyframes(state.value));
@@ -19915,10 +19820,24 @@ const animations = {
19915
19820
  exit: {
19916
19821
  Feature: ExitAnimationFeature
19917
19822
  }
19823
+ }, isDragging = {
19824
+ x: !1,
19825
+ y: !1
19918
19826
  };
19827
+ function isDragActive() {
19828
+ return isDragging.x || isDragging.y;
19829
+ }
19830
+ function setDragLock(axis) {
19831
+ return axis === "x" || axis === "y" ? isDragging[axis] ? null : (isDragging[axis] = !0, () => {
19832
+ isDragging[axis] = !1;
19833
+ }) : isDragging.x || isDragging.y ? null : (isDragging.x = isDragging.y = !0, () => {
19834
+ isDragging.x = isDragging.y = !1;
19835
+ });
19836
+ }
19919
19837
  function addDomEvent(target, eventName, handler, options = { passive: !0 }) {
19920
19838
  return target.addEventListener(eventName, handler, options), () => target.removeEventListener(eventName, handler);
19921
19839
  }
19840
+ const isPrimaryPointer = (event) => event.pointerType === "mouse" ? typeof event.button != "number" || event.button <= 0 : event.isPrimary !== !1;
19922
19841
  function extractEventInfo(event) {
19923
19842
  return {
19924
19843
  point: {
@@ -20160,7 +20079,7 @@ function calcViewportConstraints(layoutBox, constraintsBox) {
20160
20079
  function calcOrigin(source, target) {
20161
20080
  let origin = 0.5;
20162
20081
  const sourceLength = calcLength(source), targetLength = calcLength(target);
20163
- return targetLength > sourceLength ? origin = /* @__PURE__ */ progress(target.min, target.max - sourceLength, source.min) : sourceLength > targetLength && (origin = /* @__PURE__ */ progress(source.min, source.max - targetLength, target.min)), clamp$2(0, 1, origin);
20082
+ return targetLength > sourceLength ? origin = /* @__PURE__ */ progress(target.min, target.max - sourceLength, source.min) : sourceLength > targetLength && (origin = /* @__PURE__ */ progress(source.min, source.max - targetLength, target.min)), clamp$1(0, 1, origin);
20164
20083
  }
20165
20084
  function rebaseAxisConstraints(layout2, constraints) {
20166
20085
  const relativeConstraints = {};
@@ -20842,7 +20761,7 @@ function createProjectionNode({ attachResizeListener, defaultParent, measureScro
20842
20761
  }
20843
20762
  this.isUpdating || this.nodes.forEach(clearIsLayoutDirty), this.isUpdating = !1, this.nodes.forEach(resetTransformStyle), this.nodes.forEach(updateLayout), this.nodes.forEach(notifyLayoutUpdate), this.clearAllSnapshots();
20844
20763
  const now2 = time.now();
20845
- frameData.delta = clamp$2(0, 1e3 / 60, now2 - frameData.timestamp), frameData.timestamp = now2, frameData.isProcessing = !0, frameSteps.update.process(frameData), frameSteps.preRender.process(frameData), frameSteps.render.process(frameData), frameData.isProcessing = !1;
20764
+ frameData.delta = clamp$1(0, 1e3 / 60, now2 - frameData.timestamp), frameData.timestamp = now2, frameData.isProcessing = !0, frameSteps.update.process(frameData), frameSteps.preRender.process(frameData), frameSteps.render.process(frameData), frameData.isProcessing = !1;
20846
20765
  }
20847
20766
  didUpdate() {
20848
20767
  this.updateScheduled || (this.updateScheduled = !0, microtask.read(this.scheduleUpdate));
@@ -21309,6 +21228,43 @@ const DocumentProjectionNode = createProjectionNode({
21309
21228
  MeasureLayout
21310
21229
  }
21311
21230
  };
21231
+ function resolveElements(elementOrSelector, scope, selectorCache) {
21232
+ if (elementOrSelector instanceof EventTarget)
21233
+ return [elementOrSelector];
21234
+ if (typeof elementOrSelector == "string") {
21235
+ let root2 = document;
21236
+ const elements = selectorCache?.[elementOrSelector] ?? root2.querySelectorAll(elementOrSelector);
21237
+ return elements ? Array.from(elements) : [];
21238
+ }
21239
+ return Array.from(elementOrSelector);
21240
+ }
21241
+ function setupGesture(elementOrSelector, options) {
21242
+ const elements = resolveElements(elementOrSelector), gestureAbortController = new AbortController(), eventOptions = {
21243
+ passive: !0,
21244
+ ...options,
21245
+ signal: gestureAbortController.signal
21246
+ };
21247
+ return [elements, eventOptions, () => gestureAbortController.abort()];
21248
+ }
21249
+ function isValidHover(event) {
21250
+ return !(event.pointerType === "touch" || isDragActive());
21251
+ }
21252
+ function hover(elementOrSelector, onHoverStart, options = {}) {
21253
+ const [elements, eventOptions, cancel] = setupGesture(elementOrSelector, options), onPointerEnter = (enterEvent) => {
21254
+ if (!isValidHover(enterEvent))
21255
+ return;
21256
+ const { target } = enterEvent, onHoverEnd = onHoverStart(target, enterEvent);
21257
+ if (typeof onHoverEnd != "function" || !target)
21258
+ return;
21259
+ const onPointerLeave = (leaveEvent) => {
21260
+ isValidHover(leaveEvent) && (onHoverEnd(leaveEvent), target.removeEventListener("pointerleave", onPointerLeave));
21261
+ };
21262
+ target.addEventListener("pointerleave", onPointerLeave, eventOptions);
21263
+ };
21264
+ return elements.forEach((element) => {
21265
+ element.addEventListener("pointerenter", onPointerEnter, eventOptions);
21266
+ }), cancel;
21267
+ }
21312
21268
  function handleHoverEvent(node2, event, lifecycle) {
21313
21269
  const { props } = node2;
21314
21270
  node2.animationState && props.whileHover && node2.animationState.setActive("whileHover", lifecycle === "Start");
@@ -21345,6 +21301,62 @@ class FocusGesture extends Feature {
21345
21301
  unmount() {
21346
21302
  }
21347
21303
  }
21304
+ const isNodeOrChild = (parent, child) => child ? parent === child ? !0 : isNodeOrChild(parent, child.parentElement) : !1, focusableElements = /* @__PURE__ */ new Set([
21305
+ "BUTTON",
21306
+ "INPUT",
21307
+ "SELECT",
21308
+ "TEXTAREA",
21309
+ "A"
21310
+ ]);
21311
+ function isElementKeyboardAccessible(element) {
21312
+ return focusableElements.has(element.tagName) || element.tabIndex !== -1;
21313
+ }
21314
+ const isPressing = /* @__PURE__ */ new WeakSet();
21315
+ function filterEvents(callback) {
21316
+ return (event) => {
21317
+ event.key === "Enter" && callback(event);
21318
+ };
21319
+ }
21320
+ function firePointerEvent(target, type) {
21321
+ target.dispatchEvent(new PointerEvent("pointer" + type, { isPrimary: !0, bubbles: !0 }));
21322
+ }
21323
+ const enableKeyboardPress = (focusEvent, eventOptions) => {
21324
+ const element = focusEvent.currentTarget;
21325
+ if (!element)
21326
+ return;
21327
+ const handleKeydown = filterEvents(() => {
21328
+ if (isPressing.has(element))
21329
+ return;
21330
+ firePointerEvent(element, "down");
21331
+ const handleKeyup = filterEvents(() => {
21332
+ firePointerEvent(element, "up");
21333
+ }), handleBlur = () => firePointerEvent(element, "cancel");
21334
+ element.addEventListener("keyup", handleKeyup, eventOptions), element.addEventListener("blur", handleBlur, eventOptions);
21335
+ });
21336
+ element.addEventListener("keydown", handleKeydown, eventOptions), element.addEventListener("blur", () => element.removeEventListener("keydown", handleKeydown), eventOptions);
21337
+ };
21338
+ function isValidPressEvent(event) {
21339
+ return isPrimaryPointer(event) && !isDragActive();
21340
+ }
21341
+ function press(targetOrSelector, onPressStart, options = {}) {
21342
+ const [targets, eventOptions, cancelEvents] = setupGesture(targetOrSelector, options), startPress = (startEvent) => {
21343
+ const target = startEvent.currentTarget;
21344
+ if (!isValidPressEvent(startEvent) || isPressing.has(target))
21345
+ return;
21346
+ isPressing.add(target);
21347
+ const onPressEnd = onPressStart(target, startEvent), onPointerEnd = (endEvent, success) => {
21348
+ window.removeEventListener("pointerup", onPointerUp), window.removeEventListener("pointercancel", onPointerCancel), !(!isValidPressEvent(endEvent) || !isPressing.has(target)) && (isPressing.delete(target), typeof onPressEnd == "function" && onPressEnd(endEvent, { success }));
21349
+ }, onPointerUp = (upEvent) => {
21350
+ onPointerEnd(upEvent, target === window || target === document || options.useGlobalTarget || isNodeOrChild(target, upEvent.target));
21351
+ }, onPointerCancel = (cancelEvent) => {
21352
+ onPointerEnd(cancelEvent, !1);
21353
+ };
21354
+ window.addEventListener("pointerup", onPointerUp, eventOptions), window.addEventListener("pointercancel", onPointerCancel, eventOptions);
21355
+ };
21356
+ return targets.forEach((target) => {
21357
+ (options.useGlobalTarget ? window : target).addEventListener("pointerdown", startPress, eventOptions), target instanceof HTMLElement && (target.addEventListener("focus", (event) => enableKeyboardPress(event, eventOptions)), !isElementKeyboardAccessible(target) && !target.hasAttribute("tabindex") && (target.tabIndex = 0));
21358
+ }), cancelEvents;
21359
+ }
21348
21360
  function handlePressEvent(node2, event, lifecycle) {
21349
21361
  const { props } = node2;
21350
21362
  if (node2.current instanceof HTMLButtonElement && node2.current.disabled)
@@ -24711,18 +24723,18 @@ const errorMessages = {
24711
24723
  [Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY],
24712
24724
  [Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY]
24713
24725
  ], elementSelectionKeys = ["Enter", " ", "Escape"];
24714
- var ConnectionMode$1;
24726
+ var ConnectionMode;
24715
24727
  (function(ConnectionMode2) {
24716
24728
  ConnectionMode2.Strict = "strict", ConnectionMode2.Loose = "loose";
24717
- })(ConnectionMode$1 || (ConnectionMode$1 = {}));
24718
- var PanOnScrollMode$1;
24729
+ })(ConnectionMode || (ConnectionMode = {}));
24730
+ var PanOnScrollMode;
24719
24731
  (function(PanOnScrollMode2) {
24720
24732
  PanOnScrollMode2.Free = "free", PanOnScrollMode2.Vertical = "vertical", PanOnScrollMode2.Horizontal = "horizontal";
24721
- })(PanOnScrollMode$1 || (PanOnScrollMode$1 = {}));
24722
- var SelectionMode$1;
24733
+ })(PanOnScrollMode || (PanOnScrollMode = {}));
24734
+ var SelectionMode;
24723
24735
  (function(SelectionMode2) {
24724
24736
  SelectionMode2.Partial = "partial", SelectionMode2.Full = "full";
24725
- })(SelectionMode$1 || (SelectionMode$1 = {}));
24737
+ })(SelectionMode || (SelectionMode = {}));
24726
24738
  const initialConnection = {
24727
24739
  inProgress: !1,
24728
24740
  isValid: null,
@@ -24735,44 +24747,44 @@ const initialConnection = {
24735
24747
  toPosition: null,
24736
24748
  toNode: null
24737
24749
  };
24738
- var ConnectionLineType$1;
24750
+ var ConnectionLineType;
24739
24751
  (function(ConnectionLineType2) {
24740
24752
  ConnectionLineType2.Bezier = "default", ConnectionLineType2.Straight = "straight", ConnectionLineType2.Step = "step", ConnectionLineType2.SmoothStep = "smoothstep", ConnectionLineType2.SimpleBezier = "simplebezier";
24741
- })(ConnectionLineType$1 || (ConnectionLineType$1 = {}));
24742
- var MarkerType$1;
24753
+ })(ConnectionLineType || (ConnectionLineType = {}));
24754
+ var MarkerType;
24743
24755
  (function(MarkerType2) {
24744
24756
  MarkerType2.Arrow = "arrow", MarkerType2.ArrowClosed = "arrowclosed";
24745
- })(MarkerType$1 || (MarkerType$1 = {}));
24746
- var Position$1;
24757
+ })(MarkerType || (MarkerType = {}));
24758
+ var Position;
24747
24759
  (function(Position2) {
24748
24760
  Position2.Left = "left", Position2.Top = "top", Position2.Right = "right", Position2.Bottom = "bottom";
24749
- })(Position$1 || (Position$1 = {}));
24761
+ })(Position || (Position = {}));
24750
24762
  const oppositePosition = {
24751
- [Position$1.Left]: Position$1.Right,
24752
- [Position$1.Right]: Position$1.Left,
24753
- [Position$1.Top]: Position$1.Bottom,
24754
- [Position$1.Bottom]: Position$1.Top
24763
+ [Position.Left]: Position.Right,
24764
+ [Position.Right]: Position.Left,
24765
+ [Position.Top]: Position.Bottom,
24766
+ [Position.Bottom]: Position.Top
24755
24767
  };
24756
24768
  function getConnectionStatus(isValid) {
24757
24769
  return isValid === null ? null : isValid ? "valid" : "invalid";
24758
24770
  }
24759
- const isEdgeBase = (element) => "id" in element && "source" in element && "target" in element, isNodeBase = (element) => "id" in element && "position" in element && !("source" in element) && !("target" in element), isInternalNodeBase$1 = (element) => "id" in element && "internals" in element && !("source" in element) && !("target" in element), getNodePositionWithOrigin$1 = (node2, nodeOrigin = [0, 0]) => {
24760
- const { width, height } = getNodeDimensions$1(node2), origin = node2.origin ?? nodeOrigin, offsetX = width * origin[0], offsetY = height * origin[1];
24771
+ const isEdgeBase = (element) => "id" in element && "source" in element && "target" in element, isNodeBase = (element) => "id" in element && "position" in element && !("source" in element) && !("target" in element), isInternalNodeBase = (element) => "id" in element && "internals" in element && !("source" in element) && !("target" in element), getNodePositionWithOrigin = (node2, nodeOrigin = [0, 0]) => {
24772
+ const { width, height } = getNodeDimensions(node2), origin = node2.origin ?? nodeOrigin, offsetX = width * origin[0], offsetY = height * origin[1];
24761
24773
  return {
24762
24774
  x: node2.position.x - offsetX,
24763
24775
  y: node2.position.y - offsetY
24764
24776
  };
24765
- }, getNodesBounds = (nodes, params = { nodeOrigin: [0, 0], nodeLookup: void 0 }) => {
24777
+ }, getNodesBounds = (nodes, params = { nodeOrigin: [0, 0] }) => {
24766
24778
  if (nodes.length === 0)
24767
24779
  return { x: 0, y: 0, width: 0, height: 0 };
24768
24780
  const box = nodes.reduce((currBox, nodeOrId) => {
24769
24781
  const isId = typeof nodeOrId == "string";
24770
24782
  let currentNode = !params.nodeLookup && !isId ? nodeOrId : void 0;
24771
- params.nodeLookup && (currentNode = isId ? params.nodeLookup.get(nodeOrId) : isInternalNodeBase$1(nodeOrId) ? nodeOrId : params.nodeLookup.get(nodeOrId.id));
24783
+ params.nodeLookup && (currentNode = isId ? params.nodeLookup.get(nodeOrId) : isInternalNodeBase(nodeOrId) ? nodeOrId : params.nodeLookup.get(nodeOrId.id));
24772
24784
  const nodeBox = currentNode ? nodeToBox(currentNode, params.nodeOrigin) : { x: 0, y: 0, x2: 0, y2: 0 };
24773
- return getBoundsOfBoxes$1(currBox, nodeBox);
24785
+ return getBoundsOfBoxes(currBox, nodeBox);
24774
24786
  }, { x: 1 / 0, y: 1 / 0, x2: -1 / 0, y2: -1 / 0 });
24775
- return boxToRect$1(box);
24787
+ return boxToRect(box);
24776
24788
  }, getInternalNodesBounds = (nodeLookup, params = {}) => {
24777
24789
  if (nodeLookup.size === 0)
24778
24790
  return { x: 0, y: 0, width: 0, height: 0 };
@@ -24780,9 +24792,9 @@ const isEdgeBase = (element) => "id" in element && "source" in element && "targe
24780
24792
  return nodeLookup.forEach((node2) => {
24781
24793
  if (params.filter === void 0 || params.filter(node2)) {
24782
24794
  const nodeBox = nodeToBox(node2);
24783
- box = getBoundsOfBoxes$1(box, nodeBox);
24795
+ box = getBoundsOfBoxes(box, nodeBox);
24784
24796
  }
24785
- }), boxToRect$1(box);
24797
+ }), boxToRect(box);
24786
24798
  }, getNodesInside = (nodes, rect, [tx, ty, tScale] = [0, 0, 1], partially = !1, excludeNonSelectableNodes = !1) => {
24787
24799
  const paneRect = {
24788
24800
  ...pointToRendererPoint(rect, [tx, ty, tScale]),
@@ -24793,7 +24805,7 @@ const isEdgeBase = (element) => "id" in element && "source" in element && "targe
24793
24805
  const { measured, selectable = !0, hidden: hidden2 = !1 } = node2;
24794
24806
  if (excludeNonSelectableNodes && !selectable || hidden2)
24795
24807
  continue;
24796
- const width = measured.width ?? node2.width ?? node2.initialWidth ?? null, height = measured.height ?? node2.height ?? node2.initialHeight ?? null, overlappingArea = getOverlappingArea(paneRect, nodeToRect$1(node2)), area = (width ?? 0) * (height ?? 0), partiallyVisible = partially && overlappingArea > 0;
24808
+ const width = measured.width ?? node2.width ?? node2.initialWidth ?? null, height = measured.height ?? node2.height ?? node2.initialHeight ?? null, overlappingArea = getOverlappingArea(paneRect, nodeToRect(node2)), area = (width ?? 0) * (height ?? 0), partiallyVisible = partially && overlappingArea > 0;
24797
24809
  (!node2.internals.handleBounds || partiallyVisible || overlappingArea >= area || node2.dragging) && visibleNodes.push(node2);
24798
24810
  }
24799
24811
  return visibleNodes;
@@ -24812,7 +24824,7 @@ function getFitViewNodes(nodeLookup, options) {
24812
24824
  async function fitViewport({ nodes, width, height, panZoom, minZoom, maxZoom }, options) {
24813
24825
  if (nodes.size === 0)
24814
24826
  return Promise.resolve(!0);
24815
- const nodesToFit = getFitViewNodes(nodes, options), bounds = getInternalNodesBounds(nodesToFit), viewport = getViewportForBounds$1(bounds, width, height, options?.minZoom ?? minZoom, options?.maxZoom ?? maxZoom, options?.padding ?? 0.1);
24827
+ const nodesToFit = getFitViewNodes(nodes, options), bounds = getInternalNodesBounds(nodesToFit), viewport = getViewportForBounds(bounds, width, height, options?.minZoom ?? minZoom, options?.maxZoom ?? maxZoom, options?.padding ?? 0.1);
24816
24828
  return await panZoom.setViewport(viewport, { duration: options?.duration }), Promise.resolve(!0);
24817
24829
  }
24818
24830
  function calculateNodePosition({ nodeId, nextPosition, nodeLookup, nodeOrigin = [0, 0], nodeExtent, onError }) {
@@ -24863,37 +24875,37 @@ async function getElementsToRemove({ nodesToRemove = [], edgesToRemove = [], nod
24863
24875
  });
24864
24876
  return typeof onBeforeDeleteResult == "boolean" ? onBeforeDeleteResult ? { edges: matchingEdges, nodes: matchingNodes } : { edges: [], nodes: [] } : onBeforeDeleteResult;
24865
24877
  }
24866
- const clamp$1 = (val, min2 = 0, max2 = 1) => Math.min(Math.max(val, min2), max2), clampPosition = (position = { x: 0, y: 0 }, extent, dimensions) => ({
24867
- x: clamp$1(position.x, extent[0][0], extent[1][0] - (dimensions?.width ?? 0)),
24868
- y: clamp$1(position.y, extent[0][1], extent[1][1] - (dimensions?.height ?? 0))
24878
+ const clamp = (val, min2 = 0, max2 = 1) => Math.min(Math.max(val, min2), max2), clampPosition = (position = { x: 0, y: 0 }, extent, dimensions) => ({
24879
+ x: clamp(position.x, extent[0][0], extent[1][0] - (dimensions?.width ?? 0)),
24880
+ y: clamp(position.y, extent[0][1], extent[1][1] - (dimensions?.height ?? 0))
24869
24881
  });
24870
24882
  function clampPositionToParent(childPosition, childDimensions, parent) {
24871
- const { width: parentWidth, height: parentHeight } = getNodeDimensions$1(parent), { x: parentX, y: parentY } = parent.internals.positionAbsolute;
24883
+ const { width: parentWidth, height: parentHeight } = getNodeDimensions(parent), { x: parentX, y: parentY } = parent.internals.positionAbsolute;
24872
24884
  return clampPosition(childPosition, [
24873
24885
  [parentX, parentY],
24874
24886
  [parentX + parentWidth, parentY + parentHeight]
24875
24887
  ], childDimensions);
24876
24888
  }
24877
- const calcAutoPanVelocity = (value, min2, max2) => value < min2 ? clamp$1(Math.abs(value - min2), 1, min2) / min2 : value > max2 ? -clamp$1(Math.abs(value - max2), 1, min2) / min2 : 0, calcAutoPan = (pos, bounds, speed = 15, distance2 = 40) => {
24889
+ const calcAutoPanVelocity = (value, min2, max2) => value < min2 ? clamp(Math.abs(value - min2), 1, min2) / min2 : value > max2 ? -clamp(Math.abs(value - max2), 1, min2) / min2 : 0, calcAutoPan = (pos, bounds, speed = 15, distance2 = 40) => {
24878
24890
  const xMovement = calcAutoPanVelocity(pos.x, distance2, bounds.width - distance2) * speed, yMovement = calcAutoPanVelocity(pos.y, distance2, bounds.height - distance2) * speed;
24879
24891
  return [xMovement, yMovement];
24880
- }, getBoundsOfBoxes$1 = (box1, box2) => ({
24892
+ }, getBoundsOfBoxes = (box1, box2) => ({
24881
24893
  x: Math.min(box1.x, box2.x),
24882
24894
  y: Math.min(box1.y, box2.y),
24883
24895
  x2: Math.max(box1.x2, box2.x2),
24884
24896
  y2: Math.max(box1.y2, box2.y2)
24885
- }), rectToBox$1 = ({ x: x2, y: y2, width, height }) => ({
24897
+ }), rectToBox = ({ x: x2, y: y2, width, height }) => ({
24886
24898
  x: x2,
24887
24899
  y: y2,
24888
24900
  x2: x2 + width,
24889
24901
  y2: y2 + height
24890
- }), boxToRect$1 = ({ x: x2, y: y2, x2: x22, y2: y22 }) => ({
24902
+ }), boxToRect = ({ x: x2, y: y2, x2: x22, y2: y22 }) => ({
24891
24903
  x: x2,
24892
24904
  y: y2,
24893
24905
  width: x22 - x2,
24894
24906
  height: y22 - y2
24895
- }), nodeToRect$1 = (node2, nodeOrigin = [0, 0]) => {
24896
- const { x: x2, y: y2 } = isInternalNodeBase$1(node2) ? node2.internals.positionAbsolute : getNodePositionWithOrigin$1(node2, nodeOrigin);
24907
+ }), nodeToRect = (node2, nodeOrigin = [0, 0]) => {
24908
+ const { x: x2, y: y2 } = isInternalNodeBase(node2) ? node2.internals.positionAbsolute : getNodePositionWithOrigin(node2, nodeOrigin);
24897
24909
  return {
24898
24910
  x: x2,
24899
24911
  y: y2,
@@ -24901,14 +24913,14 @@ const calcAutoPanVelocity = (value, min2, max2) => value < min2 ? clamp$1(Math.a
24901
24913
  height: node2.measured?.height ?? node2.height ?? node2.initialHeight ?? 0
24902
24914
  };
24903
24915
  }, nodeToBox = (node2, nodeOrigin = [0, 0]) => {
24904
- const { x: x2, y: y2 } = isInternalNodeBase$1(node2) ? node2.internals.positionAbsolute : getNodePositionWithOrigin$1(node2, nodeOrigin);
24916
+ const { x: x2, y: y2 } = isInternalNodeBase(node2) ? node2.internals.positionAbsolute : getNodePositionWithOrigin(node2, nodeOrigin);
24905
24917
  return {
24906
24918
  x: x2,
24907
24919
  y: y2,
24908
24920
  x2: x2 + (node2.measured?.width ?? node2.width ?? node2.initialWidth ?? 0),
24909
24921
  y2: y2 + (node2.measured?.height ?? node2.height ?? node2.initialHeight ?? 0)
24910
24922
  };
24911
- }, getBoundsOfRects$1 = (rect1, rect2) => boxToRect$1(getBoundsOfBoxes$1(rectToBox$1(rect1), rectToBox$1(rect2))), getOverlappingArea = (rectA, rectB) => {
24923
+ }, getBoundsOfRects = (rect1, rect2) => boxToRect(getBoundsOfBoxes(rectToBox(rect1), rectToBox(rect2))), getOverlappingArea = (rectA, rectB) => {
24912
24924
  const xOverlap = Math.max(0, Math.min(rectA.x + rectA.width, rectB.x + rectB.width) - Math.max(rectA.x, rectB.x)), yOverlap = Math.max(0, Math.min(rectA.y + rectA.height, rectB.y + rectB.height) - Math.max(rectA.y, rectB.y));
24913
24925
  return Math.ceil(xOverlap * yOverlap);
24914
24926
  }, isRectObject = (obj) => isNumeric(obj.width) && isNumeric(obj.height) && isNumeric(obj.x) && isNumeric(obj.y), isNumeric = (n2) => !isNaN(n2) && isFinite(n2), devWarn = (id2, message) => {
@@ -24921,11 +24933,11 @@ const calcAutoPanVelocity = (value, min2, max2) => value < min2 ? clamp$1(Math.a
24921
24933
  y: (y2 - ty) / tScale
24922
24934
  };
24923
24935
  return snapToGrid ? snapPosition(position, snapGrid) : position;
24924
- }, rendererPointToPoint$1 = ({ x: x2, y: y2 }, [tx, ty, tScale]) => ({
24936
+ }, rendererPointToPoint = ({ x: x2, y: y2 }, [tx, ty, tScale]) => ({
24925
24937
  x: x2 * tScale + tx,
24926
24938
  y: y2 * tScale + ty
24927
24939
  });
24928
- function parsePadding$1(padding, viewport) {
24940
+ function parsePadding(padding, viewport) {
24929
24941
  if (typeof padding == "number")
24930
24942
  return Math.floor(viewport - viewport / (1 + padding));
24931
24943
  if (typeof padding == "string" && padding.endsWith("px")) {
@@ -24940,9 +24952,9 @@ function parsePadding$1(padding, viewport) {
24940
24952
  }
24941
24953
  return console.error(`[React Flow] The padding value "${padding}" is invalid. Please provide a number or a string with a valid unit (px or %).`), 0;
24942
24954
  }
24943
- function parsePaddings$1(padding, width, height) {
24955
+ function parsePaddings(padding, width, height) {
24944
24956
  if (typeof padding == "string" || typeof padding == "number") {
24945
- const paddingY = parsePadding$1(padding, height), paddingX = parsePadding$1(padding, width);
24957
+ const paddingY = parsePadding(padding, height), paddingX = parsePadding(padding, width);
24946
24958
  return {
24947
24959
  top: paddingY,
24948
24960
  right: paddingX,
@@ -24953,13 +24965,13 @@ function parsePaddings$1(padding, width, height) {
24953
24965
  };
24954
24966
  }
24955
24967
  if (typeof padding == "object") {
24956
- const top = parsePadding$1(padding.top ?? padding.y ?? 0, height), bottom = parsePadding$1(padding.bottom ?? padding.y ?? 0, height), left = parsePadding$1(padding.left ?? padding.x ?? 0, width), right = parsePadding$1(padding.right ?? padding.x ?? 0, width);
24968
+ const top = parsePadding(padding.top ?? padding.y ?? 0, height), bottom = parsePadding(padding.bottom ?? padding.y ?? 0, height), left = parsePadding(padding.left ?? padding.x ?? 0, width), right = parsePadding(padding.right ?? padding.x ?? 0, width);
24957
24969
  return { top, right, bottom, left, x: left + right, y: top + bottom };
24958
24970
  }
24959
24971
  return { top: 0, right: 0, bottom: 0, left: 0, x: 0, y: 0 };
24960
24972
  }
24961
- function calculateAppliedPaddings$1(bounds, x2, y2, zoom2, width, height) {
24962
- const { x: left, y: top } = rendererPointToPoint$1(bounds, [x2, y2, zoom2]), { x: boundRight, y: boundBottom } = rendererPointToPoint$1({ x: bounds.x + bounds.width, y: bounds.y + bounds.height }, [x2, y2, zoom2]), right = width - boundRight, bottom = height - boundBottom;
24973
+ function calculateAppliedPaddings(bounds, x2, y2, zoom2, width, height) {
24974
+ const { x: left, y: top } = rendererPointToPoint(bounds, [x2, y2, zoom2]), { x: boundRight, y: boundBottom } = rendererPointToPoint({ x: bounds.x + bounds.width, y: bounds.y + bounds.height }, [x2, y2, zoom2]), right = width - boundRight, bottom = height - boundBottom;
24963
24975
  return {
24964
24976
  left: Math.floor(left),
24965
24977
  top: Math.floor(top),
@@ -24967,8 +24979,8 @@ function calculateAppliedPaddings$1(bounds, x2, y2, zoom2, width, height) {
24967
24979
  bottom: Math.floor(bottom)
24968
24980
  };
24969
24981
  }
24970
- const getViewportForBounds$1 = (bounds, width, height, minZoom, maxZoom, padding) => {
24971
- const p2 = parsePaddings$1(padding, width, height), xZoom = (width - p2.x) / bounds.width, yZoom = (height - p2.y) / bounds.height, zoom2 = Math.min(xZoom, yZoom), clampedZoom = clamp$1(zoom2, minZoom, maxZoom), boundsCenterX = bounds.x + bounds.width / 2, boundsCenterY = bounds.y + bounds.height / 2, x2 = width / 2 - boundsCenterX * clampedZoom, y2 = height / 2 - boundsCenterY * clampedZoom, newPadding = calculateAppliedPaddings$1(bounds, x2, y2, clampedZoom, width, height), offset2 = {
24982
+ const getViewportForBounds = (bounds, width, height, minZoom, maxZoom, padding) => {
24983
+ const p2 = parsePaddings(padding, width, height), xZoom = (width - p2.x) / bounds.width, yZoom = (height - p2.y) / bounds.height, zoom2 = Math.min(xZoom, yZoom), clampedZoom = clamp(zoom2, minZoom, maxZoom), boundsCenterX = bounds.x + bounds.width / 2, boundsCenterY = bounds.y + bounds.height / 2, x2 = width / 2 - boundsCenterX * clampedZoom, y2 = height / 2 - boundsCenterY * clampedZoom, newPadding = calculateAppliedPaddings(bounds, x2, y2, clampedZoom, width, height), offset2 = {
24972
24984
  left: Math.min(newPadding.left - p2.left, 0),
24973
24985
  top: Math.min(newPadding.top - p2.top, 0),
24974
24986
  right: Math.min(newPadding.right - p2.right, 0),
@@ -24979,11 +24991,11 @@ const getViewportForBounds$1 = (bounds, width, height, minZoom, maxZoom, padding
24979
24991
  y: y2 - offset2.top + offset2.bottom,
24980
24992
  zoom: clampedZoom
24981
24993
  };
24982
- }, isMacOs$1 = () => typeof navigator < "u" && navigator?.userAgent?.indexOf("Mac") >= 0;
24994
+ }, isMacOs = () => typeof navigator < "u" && navigator?.userAgent?.indexOf("Mac") >= 0;
24983
24995
  function isCoordinateExtent(extent) {
24984
24996
  return extent !== void 0 && extent !== "parent";
24985
24997
  }
24986
- function getNodeDimensions$1(node2) {
24998
+ function getNodeDimensions(node2) {
24987
24999
  return {
24988
25000
  width: node2.measured?.width ?? node2.width ?? node2.initialWidth ?? 0,
24989
25001
  height: node2.measured?.height ?? node2.height ?? node2.initialHeight ?? 0
@@ -25045,41 +25057,41 @@ const isMouseEvent = (event) => "clientX" in event, getEventPosition = (event, b
25045
25057
  };
25046
25058
  });
25047
25059
  };
25048
- function getBezierEdgeCenter$1({ sourceX, sourceY, targetX, targetY, sourceControlX, sourceControlY, targetControlX, targetControlY }) {
25060
+ function getBezierEdgeCenter({ sourceX, sourceY, targetX, targetY, sourceControlX, sourceControlY, targetControlX, targetControlY }) {
25049
25061
  const centerX = sourceX * 0.125 + sourceControlX * 0.375 + targetControlX * 0.375 + targetX * 0.125, centerY2 = sourceY * 0.125 + sourceControlY * 0.375 + targetControlY * 0.375 + targetY * 0.125, offsetX = Math.abs(centerX - sourceX), offsetY = Math.abs(centerY2 - sourceY);
25050
25062
  return [centerX, centerY2, offsetX, offsetY];
25051
25063
  }
25052
- function calculateControlOffset$1(distance2, curvature) {
25064
+ function calculateControlOffset(distance2, curvature) {
25053
25065
  return distance2 >= 0 ? 0.5 * distance2 : curvature * 25 * Math.sqrt(-distance2);
25054
25066
  }
25055
- function getControlWithCurvature$1({ pos, x1, y1, x2, y2, c: c2 }) {
25067
+ function getControlWithCurvature({ pos, x1, y1, x2, y2, c: c2 }) {
25056
25068
  switch (pos) {
25057
- case Position$1.Left:
25058
- return [x1 - calculateControlOffset$1(x1 - x2, c2), y1];
25059
- case Position$1.Right:
25060
- return [x1 + calculateControlOffset$1(x2 - x1, c2), y1];
25061
- case Position$1.Top:
25062
- return [x1, y1 - calculateControlOffset$1(y1 - y2, c2)];
25063
- case Position$1.Bottom:
25064
- return [x1, y1 + calculateControlOffset$1(y2 - y1, c2)];
25065
- }
25066
- }
25067
- function getBezierPath$1({ sourceX, sourceY, sourcePosition = Position$1.Bottom, targetX, targetY, targetPosition = Position$1.Top, curvature = 0.25 }) {
25068
- const [sourceControlX, sourceControlY] = getControlWithCurvature$1({
25069
+ case Position.Left:
25070
+ return [x1 - calculateControlOffset(x1 - x2, c2), y1];
25071
+ case Position.Right:
25072
+ return [x1 + calculateControlOffset(x2 - x1, c2), y1];
25073
+ case Position.Top:
25074
+ return [x1, y1 - calculateControlOffset(y1 - y2, c2)];
25075
+ case Position.Bottom:
25076
+ return [x1, y1 + calculateControlOffset(y2 - y1, c2)];
25077
+ }
25078
+ }
25079
+ function getBezierPath({ sourceX, sourceY, sourcePosition = Position.Bottom, targetX, targetY, targetPosition = Position.Top, curvature = 0.25 }) {
25080
+ const [sourceControlX, sourceControlY] = getControlWithCurvature({
25069
25081
  pos: sourcePosition,
25070
25082
  x1: sourceX,
25071
25083
  y1: sourceY,
25072
25084
  x2: targetX,
25073
25085
  y2: targetY,
25074
25086
  c: curvature
25075
- }), [targetControlX, targetControlY] = getControlWithCurvature$1({
25087
+ }), [targetControlX, targetControlY] = getControlWithCurvature({
25076
25088
  pos: targetPosition,
25077
25089
  x1: targetX,
25078
25090
  y1: targetY,
25079
25091
  x2: sourceX,
25080
25092
  y2: sourceY,
25081
25093
  c: curvature
25082
- }), [labelX, labelY, offsetX, offsetY] = getBezierEdgeCenter$1({
25094
+ }), [labelX, labelY, offsetX, offsetY] = getBezierEdgeCenter({
25083
25095
  sourceX,
25084
25096
  sourceY,
25085
25097
  targetX,
@@ -25108,7 +25120,7 @@ function getElevatedEdgeZIndex({ sourceNode, targetNode, selected: selected2 = !
25108
25120
  return zIndex + (edgeOrConnectedNodeSelected ? selectedZIndex : 0);
25109
25121
  }
25110
25122
  function isEdgeVisible({ sourceNode, targetNode, width, height, transform: transform2 }) {
25111
- const edgeBox = getBoundsOfBoxes$1(nodeToBox(sourceNode), nodeToBox(targetNode));
25123
+ const edgeBox = getBoundsOfBoxes(nodeToBox(sourceNode), nodeToBox(targetNode));
25112
25124
  edgeBox.x === edgeBox.x2 && (edgeBox.x2 += 1), edgeBox.y === edgeBox.y2 && (edgeBox.y2 += 1);
25113
25125
  const viewRect = {
25114
25126
  x: -transform2[0] / transform2[2],
@@ -25116,7 +25128,7 @@ function isEdgeVisible({ sourceNode, targetNode, width, height, transform: trans
25116
25128
  width: width / transform2[2],
25117
25129
  height: height / transform2[2]
25118
25130
  };
25119
- return getOverlappingArea(viewRect, boxToRect$1(edgeBox)) > 0;
25131
+ return getOverlappingArea(viewRect, boxToRect(edgeBox)) > 0;
25120
25132
  }
25121
25133
  const getEdgeId = ({ source, sourceHandle, target, targetHandle }) => `xy-edge__${source}${sourceHandle || ""}-${target}${targetHandle || ""}`, connectionExists = (edge, edges) => edges.some((el) => el.source === edge.source && el.target === edge.target && (el.sourceHandle === edge.sourceHandle || !el.sourceHandle && !edge.sourceHandle) && (el.targetHandle === edge.targetHandle || !el.targetHandle && !edge.targetHandle)), addEdge = (edgeParams, edges) => {
25122
25134
  if (!edgeParams.source || !edgeParams.target)
@@ -25137,12 +25149,12 @@ function getStraightPath({ sourceX, sourceY, targetX, targetY }) {
25137
25149
  return [`M ${sourceX},${sourceY}L ${targetX},${targetY}`, labelX, labelY, offsetX, offsetY];
25138
25150
  }
25139
25151
  const handleDirections = {
25140
- [Position$1.Left]: { x: -1, y: 0 },
25141
- [Position$1.Right]: { x: 1, y: 0 },
25142
- [Position$1.Top]: { x: 0, y: -1 },
25143
- [Position$1.Bottom]: { x: 0, y: 1 }
25144
- }, getDirection = ({ source, sourcePosition = Position$1.Bottom, target }) => sourcePosition === Position$1.Left || sourcePosition === Position$1.Right ? source.x < target.x ? { x: 1, y: 0 } : { x: -1, y: 0 } : source.y < target.y ? { x: 0, y: 1 } : { x: 0, y: -1 }, distance = (a2, b2) => Math.sqrt(Math.pow(b2.x - a2.x, 2) + Math.pow(b2.y - a2.y, 2));
25145
- function getPoints({ source, sourcePosition = Position$1.Bottom, target, targetPosition = Position$1.Top, center, offset: offset2 }) {
25152
+ [Position.Left]: { x: -1, y: 0 },
25153
+ [Position.Right]: { x: 1, y: 0 },
25154
+ [Position.Top]: { x: 0, y: -1 },
25155
+ [Position.Bottom]: { x: 0, y: 1 }
25156
+ }, getDirection = ({ source, sourcePosition = Position.Bottom, target }) => sourcePosition === Position.Left || sourcePosition === Position.Right ? source.x < target.x ? { x: 1, y: 0 } : { x: -1, y: 0 } : source.y < target.y ? { x: 0, y: 1 } : { x: 0, y: -1 }, distance = (a2, b2) => Math.sqrt(Math.pow(b2.x - a2.x, 2) + Math.pow(b2.y - a2.y, 2));
25157
+ function getPoints({ source, sourcePosition = Position.Bottom, target, targetPosition = Position.Top, center, offset: offset2 }) {
25146
25158
  const sourceDir = handleDirections[sourcePosition], targetDir = handleDirections[targetPosition], sourceGapped = { x: source.x + sourceDir.x * offset2, y: source.y + sourceDir.y * offset2 }, targetGapped = { x: target.x + targetDir.x * offset2, y: target.y + targetDir.y * offset2 }, dir = getDirection({
25147
25159
  source: sourceGapped,
25148
25160
  sourcePosition,
@@ -25200,7 +25212,7 @@ function getBend(a2, b2, c2, size2) {
25200
25212
  const xDir = a2.x < c2.x ? 1 : -1, yDir = a2.y < c2.y ? -1 : 1;
25201
25213
  return `L ${x2},${y2 + bendSize * yDir}Q ${x2},${y2} ${x2 + bendSize * xDir},${y2}`;
25202
25214
  }
25203
- function getSmoothStepPath({ sourceX, sourceY, sourcePosition = Position$1.Bottom, targetX, targetY, targetPosition = Position$1.Top, borderRadius: borderRadius2 = 5, centerX, centerY: centerY2, offset: offset2 = 20 }) {
25215
+ function getSmoothStepPath({ sourceX, sourceY, sourcePosition = Position.Bottom, targetX, targetY, targetPosition = Position.Top, borderRadius: borderRadius2 = 5, centerX, centerY: centerY2, offset: offset2 = 20 }) {
25204
25216
  const [points, labelX, labelY, offsetX, offsetY] = getPoints({
25205
25217
  source: { x: sourceX, y: sourceY },
25206
25218
  sourcePosition,
@@ -25223,7 +25235,7 @@ function getEdgePosition(params) {
25223
25235
  return null;
25224
25236
  const sourceHandleBounds = sourceNode.internals.handleBounds || toHandleBounds(sourceNode.handles), targetHandleBounds = targetNode.internals.handleBounds || toHandleBounds(targetNode.handles), sourceHandle = getHandle$1(sourceHandleBounds?.source ?? [], params.sourceHandle), targetHandle = getHandle$1(
25225
25237
  // when connection type is loose we can define all handles as sources and connect source -> source
25226
- params.connectionMode === ConnectionMode$1.Strict ? targetHandleBounds?.target ?? [] : (targetHandleBounds?.target ?? []).concat(targetHandleBounds?.source ?? []),
25238
+ params.connectionMode === ConnectionMode.Strict ? targetHandleBounds?.target ?? [] : (targetHandleBounds?.target ?? []).concat(targetHandleBounds?.source ?? []),
25227
25239
  params.targetHandle
25228
25240
  );
25229
25241
  if (!sourceHandle || !targetHandle)
@@ -25232,7 +25244,7 @@ function getEdgePosition(params) {
25232
25244
  sourceHandle: params.sourceHandle,
25233
25245
  targetHandle: params.targetHandle
25234
25246
  })), null;
25235
- const sourcePosition = sourceHandle?.position || Position$1.Bottom, targetPosition = targetHandle?.position || Position$1.Top, source = getHandlePosition(sourceNode, sourceHandle, sourcePosition), target = getHandlePosition(targetNode, targetHandle, targetPosition);
25247
+ const sourcePosition = sourceHandle?.position || Position.Bottom, targetPosition = targetHandle?.position || Position.Top, source = getHandlePosition(sourceNode, sourceHandle, sourcePosition), target = getHandlePosition(targetNode, targetHandle, targetPosition);
25236
25248
  return {
25237
25249
  sourceX: source.x,
25238
25250
  sourceY: source.y,
@@ -25253,18 +25265,18 @@ function toHandleBounds(handles) {
25253
25265
  target
25254
25266
  };
25255
25267
  }
25256
- function getHandlePosition(node2, handle, fallbackPosition = Position$1.Left, center = !1) {
25257
- const x2 = (handle?.x ?? 0) + node2.internals.positionAbsolute.x, y2 = (handle?.y ?? 0) + node2.internals.positionAbsolute.y, { width, height } = handle ?? getNodeDimensions$1(node2);
25268
+ function getHandlePosition(node2, handle, fallbackPosition = Position.Left, center = !1) {
25269
+ const x2 = (handle?.x ?? 0) + node2.internals.positionAbsolute.x, y2 = (handle?.y ?? 0) + node2.internals.positionAbsolute.y, { width, height } = handle ?? getNodeDimensions(node2);
25258
25270
  if (center)
25259
25271
  return { x: x2 + width / 2, y: y2 + height / 2 };
25260
25272
  switch (handle?.position ?? fallbackPosition) {
25261
- case Position$1.Top:
25273
+ case Position.Top:
25262
25274
  return { x: x2 + width / 2, y: y2 };
25263
- case Position$1.Right:
25275
+ case Position.Right:
25264
25276
  return { x: x2 + width, y: y2 + height / 2 };
25265
- case Position$1.Bottom:
25277
+ case Position.Bottom:
25266
25278
  return { x: x2 + width / 2, y: y2 + height };
25267
- case Position$1.Left:
25279
+ case Position.Left:
25268
25280
  return { x: x2, y: y2 + height / 2 };
25269
25281
  }
25270
25282
  }
@@ -25291,16 +25303,16 @@ function getNodeToolbarTransform(nodeRect, viewport, position, offset2, align) {
25291
25303
  nodeRect.y * viewport.zoom + viewport.y - offset2
25292
25304
  ], shift2 = [-100 * alignmentOffset, -100];
25293
25305
  switch (position) {
25294
- case Position$1.Right:
25306
+ case Position.Right:
25295
25307
  pos = [
25296
25308
  (nodeRect.x + nodeRect.width) * viewport.zoom + viewport.x + offset2,
25297
25309
  (nodeRect.y + nodeRect.height * alignmentOffset) * viewport.zoom + viewport.y
25298
25310
  ], shift2 = [0, -100 * alignmentOffset];
25299
25311
  break;
25300
- case Position$1.Bottom:
25312
+ case Position.Bottom:
25301
25313
  pos[1] = (nodeRect.y + nodeRect.height) * viewport.zoom + viewport.y + offset2, shift2[1] = 0;
25302
25314
  break;
25303
- case Position$1.Left:
25315
+ case Position.Left:
25304
25316
  pos = [
25305
25317
  nodeRect.x * viewport.zoom + viewport.x - offset2,
25306
25318
  (nodeRect.y + nodeRect.height * alignmentOffset) * viewport.zoom + viewport.y
@@ -25330,7 +25342,7 @@ function updateAbsolutePositions(nodeLookup, parentLookup, options) {
25330
25342
  if (node2.parentId)
25331
25343
  updateChildNode(node2, nodeLookup, parentLookup, _options);
25332
25344
  else {
25333
- const positionWithOrigin = getNodePositionWithOrigin$1(node2, _options.nodeOrigin), extent = isCoordinateExtent(node2.extent) ? node2.extent : _options.nodeExtent, clampedPosition = clampPosition(positionWithOrigin, extent, getNodeDimensions$1(node2));
25345
+ const positionWithOrigin = getNodePositionWithOrigin(node2, _options.nodeOrigin), extent = isCoordinateExtent(node2.extent) ? node2.extent : _options.nodeExtent, clampedPosition = clampPosition(positionWithOrigin, extent, getNodeDimensions(node2));
25334
25346
  node2.internals.positionAbsolute = clampedPosition;
25335
25347
  }
25336
25348
  }
@@ -25344,7 +25356,7 @@ function adoptUserNodes(nodes, nodeLookup, parentLookup, options) {
25344
25356
  if (_options.checkEquality && userNode === internalNode?.internals.userNode)
25345
25357
  nodeLookup.set(userNode.id, internalNode);
25346
25358
  else {
25347
- const positionWithOrigin = getNodePositionWithOrigin$1(userNode, _options.nodeOrigin), extent = isCoordinateExtent(userNode.extent) ? userNode.extent : _options.nodeExtent, clampedPosition = clampPosition(positionWithOrigin, extent, getNodeDimensions$1(userNode));
25359
+ const positionWithOrigin = getNodePositionWithOrigin(userNode, _options.nodeOrigin), extent = isCoordinateExtent(userNode.extent) ? userNode.extent : _options.nodeExtent, clampedPosition = clampPosition(positionWithOrigin, extent, getNodeDimensions(userNode));
25348
25360
  internalNode = {
25349
25361
  ..._options.defaults,
25350
25362
  ...userNode,
@@ -25392,7 +25404,7 @@ function calculateZ(node2, selectedNodeZ) {
25392
25404
  return (isNumeric(node2.zIndex) ? node2.zIndex : 0) + (node2.selected ? selectedNodeZ : 0);
25393
25405
  }
25394
25406
  function calculateChildXYZ(childNode, parentNode, nodeOrigin, nodeExtent, selectedNodeZ) {
25395
- const { x: parentX, y: parentY } = parentNode.internals.positionAbsolute, childDimensions = getNodeDimensions$1(childNode), positionWithOrigin = getNodePositionWithOrigin$1(childNode, nodeOrigin), clampedPosition = isCoordinateExtent(childNode.extent) ? clampPosition(positionWithOrigin, childNode.extent, childDimensions) : positionWithOrigin;
25407
+ const { x: parentX, y: parentY } = parentNode.internals.positionAbsolute, childDimensions = getNodeDimensions(childNode), positionWithOrigin = getNodePositionWithOrigin(childNode, nodeOrigin), clampedPosition = isCoordinateExtent(childNode.extent) ? clampPosition(positionWithOrigin, childNode.extent, childDimensions) : positionWithOrigin;
25396
25408
  let absolutePosition = clampPosition({ x: parentX + clampedPosition.x, y: parentY + clampedPosition.y }, nodeExtent, childDimensions);
25397
25409
  childNode.extent === "parent" && (absolutePosition = clampPositionToParent(absolutePosition, childDimensions, parentNode));
25398
25410
  const childZ = calculateZ(childNode, selectedNodeZ), parentZ = parentNode.internals.z ?? 0;
@@ -25408,11 +25420,11 @@ function handleExpandParent(children2, nodeLookup, parentLookup, nodeOrigin = [0
25408
25420
  const parent = nodeLookup.get(child.parentId);
25409
25421
  if (!parent)
25410
25422
  continue;
25411
- const parentRect = parentExpansions.get(child.parentId)?.expandedRect ?? nodeToRect$1(parent), expandedRect = getBoundsOfRects$1(parentRect, child.rect);
25423
+ const parentRect = parentExpansions.get(child.parentId)?.expandedRect ?? nodeToRect(parent), expandedRect = getBoundsOfRects(parentRect, child.rect);
25412
25424
  parentExpansions.set(child.parentId, { expandedRect, parent });
25413
25425
  }
25414
25426
  return parentExpansions.size > 0 && parentExpansions.forEach(({ expandedRect, parent }, parentId) => {
25415
- const positionAbsolute = parent.internals.positionAbsolute, dimensions = getNodeDimensions$1(parent), origin = parent.origin ?? nodeOrigin, xChange = expandedRect.x < positionAbsolute.x ? Math.round(Math.abs(positionAbsolute.x - expandedRect.x)) : 0, yChange = expandedRect.y < positionAbsolute.y ? Math.round(Math.abs(positionAbsolute.y - expandedRect.y)) : 0, newWidth = Math.max(dimensions.width, Math.round(expandedRect.width)), newHeight = Math.max(dimensions.height, Math.round(expandedRect.height)), widthChange = (newWidth - dimensions.width) * origin[0], heightChange = (newHeight - dimensions.height) * origin[1];
25427
+ const positionAbsolute = parent.internals.positionAbsolute, dimensions = getNodeDimensions(parent), origin = parent.origin ?? nodeOrigin, xChange = expandedRect.x < positionAbsolute.x ? Math.round(Math.abs(positionAbsolute.x - expandedRect.x)) : 0, yChange = expandedRect.y < positionAbsolute.y ? Math.round(Math.abs(positionAbsolute.y - expandedRect.y)) : 0, newWidth = Math.max(dimensions.width, Math.round(expandedRect.width)), newHeight = Math.max(dimensions.height, Math.round(expandedRect.height)), widthChange = (newWidth - dimensions.width) * origin[0], heightChange = (newHeight - dimensions.height) * origin[1];
25416
25428
  (xChange > 0 || yChange > 0 || widthChange || heightChange) && (changes.push({
25417
25429
  id: parentId,
25418
25430
  type: "position",
@@ -25484,7 +25496,7 @@ function updateNodeInternals(updates, nodeLookup, parentLookup, domNode, nodeOri
25484
25496
  }), node2.expandParent && node2.parentId && parentExpandChildren.push({
25485
25497
  id: node2.id,
25486
25498
  parentId: node2.parentId,
25487
- rect: nodeToRect$1(newNode, nodeOrigin)
25499
+ rect: nodeToRect(newNode, nodeOrigin)
25488
25500
  }));
25489
25501
  }
25490
25502
  }
@@ -25601,7 +25613,7 @@ function XYDrag({ onNodeMouseDown, getStoreItems, onDragStart, onDrag, onDragSto
25601
25613
  let hasChange = !1, nodesBox = { x: 0, y: 0, x2: 0, y2: 0 };
25602
25614
  if (dragItems.size > 1 && nodeExtent) {
25603
25615
  const rect = getInternalNodesBounds(dragItems);
25604
- nodesBox = rectToBox$1(rect);
25616
+ nodesBox = rectToBox(rect);
25605
25617
  }
25606
25618
  for (const [id2, dragItem] of dragItems) {
25607
25619
  if (!nodeLookup.has(id2))
@@ -25710,7 +25722,7 @@ function getNodesWithinDistance(position, nodeLookup, distance2) {
25710
25722
  height: distance2 * 2
25711
25723
  };
25712
25724
  for (const node2 of nodeLookup.values())
25713
- getOverlappingArea(rect, nodeToRect$1(node2)) > 0 && nodes.push(node2);
25725
+ getOverlappingArea(rect, nodeToRect(node2)) > 0 && nodes.push(node2);
25714
25726
  return nodes;
25715
25727
  }
25716
25728
  const ADDITIONAL_DISTANCE = 250;
@@ -25773,7 +25785,7 @@ function onPointerDown(event, { connectionMode, connectionRadius, handleId, node
25773
25785
  }, fromNodeInternal = nodeLookup.get(nodeId), newConnection = {
25774
25786
  inProgress: !0,
25775
25787
  isValid: null,
25776
- from: getHandlePosition(fromNodeInternal, fromHandle, Position$1.Left, !0),
25788
+ from: getHandlePosition(fromNodeInternal, fromHandle, Position.Left, !0),
25777
25789
  fromHandle,
25778
25790
  fromPosition: fromHandle.position,
25779
25791
  fromNode: fromNodeInternal,
@@ -25809,7 +25821,7 @@ function onPointerDown(event, { connectionMode, connectionRadius, handleId, node
25809
25821
  // from stays the same
25810
25822
  ...previousConnection,
25811
25823
  isValid,
25812
- to: closestHandle && isValid ? rendererPointToPoint$1({ x: closestHandle.x, y: closestHandle.y }, transform2) : position,
25824
+ to: closestHandle && isValid ? rendererPointToPoint({ x: closestHandle.x, y: closestHandle.y }, transform2) : position,
25813
25825
  toHandle: result.toHandle,
25814
25826
  toPosition: isValid && result.toHandle ? result.toHandle.position : oppositePosition[fromHandle.position],
25815
25827
  toNode: result.toHandle ? nodeLookup.get(result.toHandle.nodeId) : null
@@ -25844,7 +25856,7 @@ function isValidHandle(event, { handle, connectionMode, fromNodeId, fromHandleId
25844
25856
  targetHandle: isTarget ? fromHandleId : handleId
25845
25857
  };
25846
25858
  result.connection = connection;
25847
- const isValid = connectable && connectableEnd && (connectionMode === ConnectionMode$1.Strict ? isTarget && handleType === "source" || !isTarget && handleType === "target" : handleNodeId !== fromNodeId || handleId !== fromHandleId);
25859
+ const isValid = connectable && connectableEnd && (connectionMode === ConnectionMode.Strict ? isTarget && handleType === "source" || !isTarget && handleType === "target" : handleNodeId !== fromNodeId || handleId !== fromHandleId);
25848
25860
  result.isValid = isValid && isValidConnection(connection), result.toHandle = getHandle(handleNodeId, handleType, handleId, nodeLookup, connectionMode, !1);
25849
25861
  }
25850
25862
  return result;
@@ -25911,7 +25923,7 @@ const viewChanged = (prevViewport, eventViewport) => prevViewport.x !== eventVie
25911
25923
  const hasDuration = typeof duration == "number" && duration > 0;
25912
25924
  return hasDuration || onEnd(), hasDuration ? selection2.transition().duration(duration).on("end", onEnd) : selection2;
25913
25925
  }, wheelDelta = (event) => {
25914
- const factor = event.ctrlKey && isMacOs$1() ? 10 : 1;
25926
+ const factor = event.ctrlKey && isMacOs() ? 10 : 1;
25915
25927
  return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 2e-3) * factor;
25916
25928
  };
25917
25929
  function createPanOnScrollHandler({ zoomPanValues, noWheelClassName, d3Selection, d3Zoom, panOnScrollMode, panOnScrollSpeed, zoomOnPinch, onPanZoomStart, onPanZoom, onPanZoomEnd }) {
@@ -25926,8 +25938,8 @@ function createPanOnScrollHandler({ zoomPanValues, noWheelClassName, d3Selection
25926
25938
  return;
25927
25939
  }
25928
25940
  const deltaNormalize = event.deltaMode === 1 ? 20 : 1;
25929
- let deltaX = panOnScrollMode === PanOnScrollMode$1.Vertical ? 0 : event.deltaX * deltaNormalize, deltaY = panOnScrollMode === PanOnScrollMode$1.Horizontal ? 0 : event.deltaY * deltaNormalize;
25930
- !isMacOs$1() && event.shiftKey && panOnScrollMode !== PanOnScrollMode$1.Vertical && (deltaX = event.deltaY * deltaNormalize, deltaY = 0), d3Zoom.translateBy(
25941
+ let deltaX = panOnScrollMode === PanOnScrollMode.Vertical ? 0 : event.deltaX * deltaNormalize, deltaY = panOnScrollMode === PanOnScrollMode.Horizontal ? 0 : event.deltaY * deltaNormalize;
25942
+ !isMacOs() && event.shiftKey && panOnScrollMode !== PanOnScrollMode.Vertical && (deltaX = event.deltaY * deltaNormalize, deltaY = 0), d3Zoom.translateBy(
25931
25943
  d3Selection,
25932
25944
  -(deltaX / currentZoom) * panOnScrollSpeed,
25933
25945
  -(deltaY / currentZoom) * panOnScrollSpeed,
@@ -26003,7 +26015,7 @@ function XYPanZoom({ domNode, minZoom, maxZoom, paneClickDistance, translateExte
26003
26015
  setViewportConstrained({
26004
26016
  x: viewport.x,
26005
26017
  y: viewport.y,
26006
- zoom: clamp$1(viewport.zoom, minZoom, maxZoom)
26018
+ zoom: clamp(viewport.zoom, minZoom, maxZoom)
26007
26019
  }, [
26008
26020
  [0, 0],
26009
26021
  [bbox.width, bbox.height]
@@ -26127,10 +26139,10 @@ function XYPanZoom({ domNode, minZoom, maxZoom, paneClickDistance, translateExte
26127
26139
  setClickDistance
26128
26140
  };
26129
26141
  }
26130
- var ResizeControlVariant$1;
26142
+ var ResizeControlVariant;
26131
26143
  (function(ResizeControlVariant2) {
26132
26144
  ResizeControlVariant2.Line = "line", ResizeControlVariant2.Handle = "handle";
26133
- })(ResizeControlVariant$1 || (ResizeControlVariant$1 = {}));
26145
+ })(ResizeControlVariant || (ResizeControlVariant = {}));
26134
26146
  function getResizeDirection({ width, prevWidth, height, prevHeight, affectsX, affectsY }) {
26135
26147
  const deltaWidth = width - prevWidth, deltaHeight = height - prevHeight, direction = [deltaWidth > 0 ? 1 : deltaWidth < 0 ? -1 : 0, deltaHeight > 0 ? 1 : deltaHeight < 0 ? -1 : 0];
26136
26148
  return deltaWidth && affectsX && (direction[0] = direction[0] * -1), deltaHeight && affectsY && (direction[1] = direction[1] * -1), direction;
@@ -26628,7 +26640,7 @@ const useViewportHelper = () => {
26628
26640
  }, { duration: options?.duration }), Promise.resolve(!0)) : Promise.resolve(!1);
26629
26641
  },
26630
26642
  fitBounds: async (bounds, options) => {
26631
- const { width, height, minZoom, maxZoom, panZoom } = store.getState(), viewport = getViewportForBounds$1(bounds, width, height, minZoom, maxZoom, options?.padding ?? 0.1);
26643
+ const { width, height, minZoom, maxZoom, panZoom } = store.getState(), viewport = getViewportForBounds(bounds, width, height, minZoom, maxZoom, options?.padding ?? 0.1);
26632
26644
  return panZoom ? (await panZoom.setViewport(viewport, { duration: options?.duration }), Promise.resolve(!0)) : Promise.resolve(!1);
26633
26645
  },
26634
26646
  screenToFlowPosition: (clientPosition, options = {}) => {
@@ -26645,7 +26657,7 @@ const useViewportHelper = () => {
26645
26657
  const { transform: transform2, domNode } = store.getState();
26646
26658
  if (!domNode)
26647
26659
  return flowPosition;
26648
- const { x: domX, y: domY } = domNode.getBoundingClientRect(), rendererPosition = rendererPointToPoint$1(flowPosition, transform2);
26660
+ const { x: domX, y: domY } = domNode.getBoundingClientRect(), rendererPosition = rendererPointToPoint(flowPosition, transform2);
26649
26661
  return {
26650
26662
  x: rendererPosition.x + domX,
26651
26663
  y: rendererPosition.y + domY
@@ -26814,7 +26826,7 @@ function useReactFlow() {
26814
26826
  width: nodeToUse.measured?.width ?? nodeToUse.width,
26815
26827
  height: nodeToUse.measured?.height ?? nodeToUse.height
26816
26828
  };
26817
- return nodeToRect$1(nodeWithPosition);
26829
+ return nodeToRect(nodeWithPosition);
26818
26830
  }, updateNode = (id2, nodeUpdate, options = { replace: !1 }) => {
26819
26831
  setNodes((prevNodes) => prevNodes.map((node2) => {
26820
26832
  if (node2.id === id2) {
@@ -26887,7 +26899,7 @@ function useReactFlow() {
26887
26899
  const internalNode = store.getState().nodeLookup.get(n2.id);
26888
26900
  if (internalNode && !isRect && (n2.id === nodeOrRect.id || !internalNode.internals.positionAbsolute))
26889
26901
  return !1;
26890
- const currNodeRect = nodeToRect$1(hasNodesOption ? n2 : internalNode), overlappingArea = getOverlappingArea(currNodeRect, nodeRect);
26902
+ const currNodeRect = nodeToRect(hasNodesOption ? n2 : internalNode), overlappingArea = getOverlappingArea(currNodeRect, nodeRect);
26891
26903
  return partially && overlappingArea > 0 || overlappingArea >= nodeRect.width * nodeRect.height;
26892
26904
  }) : [];
26893
26905
  },
@@ -26970,7 +26982,7 @@ const containerStyle = {
26970
26982
  userSelectionActive: s2.userSelectionActive,
26971
26983
  lib: s2.lib
26972
26984
  });
26973
- function ZoomPane({ onPaneContextMenu, zoomOnScroll = !0, zoomOnPinch = !0, panOnScroll = !1, panOnScrollSpeed = 0.5, panOnScrollMode = PanOnScrollMode$1.Free, zoomOnDoubleClick = !0, panOnDrag = !0, defaultViewport: defaultViewport2, translateExtent, minZoom, maxZoom, zoomActivationKeyCode, preventScrolling = !0, children: children2, noWheelClassName, noPanClassName, onViewportChange, isControlledViewport, paneClickDistance }) {
26985
+ function ZoomPane({ onPaneContextMenu, zoomOnScroll = !0, zoomOnPinch = !0, panOnScroll = !1, panOnScrollSpeed = 0.5, panOnScrollMode = PanOnScrollMode.Free, zoomOnDoubleClick = !0, panOnDrag = !0, defaultViewport: defaultViewport2, translateExtent, minZoom, maxZoom, zoomActivationKeyCode, preventScrolling = !0, children: children2, noWheelClassName, noPanClassName, onViewportChange, isControlledViewport, paneClickDistance }) {
26974
26986
  const store = useStoreApi(), zoomPane = useRef(null), { userSelectionActive, lib: lib2 } = useStore$1(selector$j, shallow$1), zoomActivationKeyPressed = useKeyPress(zoomActivationKeyCode), panZoom = useRef();
26975
26987
  useResizeHandler(zoomPane);
26976
26988
  const onTransformChange = useCallback((transform2) => {
@@ -27064,7 +27076,7 @@ const wrapHandler = (handler, containerRef) => (event) => {
27064
27076
  connectionInProgress: s2.connection.inProgress,
27065
27077
  dragging: s2.paneDragging
27066
27078
  });
27067
- function Pane({ isSelecting, selectionKeyPressed, selectionMode = SelectionMode$1.Full, panOnDrag, selectionOnDrag, onSelectionStart, onSelectionEnd, onPaneClick, onPaneContextMenu, onPaneScroll, onPaneMouseEnter, onPaneMouseMove, onPaneMouseLeave, children: children2 }) {
27079
+ function Pane({ isSelecting, selectionKeyPressed, selectionMode = SelectionMode.Full, panOnDrag, selectionOnDrag, onSelectionStart, onSelectionEnd, onPaneClick, onPaneContextMenu, onPaneScroll, onPaneMouseEnter, onPaneMouseMove, onPaneMouseLeave, children: children2 }) {
27068
27080
  const store = useStoreApi(), { userSelectionActive, elementsSelectable, dragging, connectionInProgress } = useStore$1(selector$h, shallow$1), hasActiveSelection = elementsSelectable && (isSelecting || userSelectionActive), container2 = useRef(null), containerBounds = useRef(), selectedNodeIds = useRef(/* @__PURE__ */ new Set()), selectedEdgeIds = useRef(/* @__PURE__ */ new Set()), selectionInProgress = useRef(!1), selectionStarted = useRef(!1), onClick = (event) => {
27069
27081
  if (selectionInProgress.current || connectionInProgress) {
27070
27082
  selectionInProgress.current = !1;
@@ -27106,7 +27118,7 @@ function Pane({ isSelecting, selectionKeyPressed, selectionMode = SelectionMode$
27106
27118
  width: Math.abs(mouseX - startX),
27107
27119
  height: Math.abs(mouseY - startY)
27108
27120
  }, prevSelectedNodeIds = selectedNodeIds.current, prevSelectedEdgeIds = selectedEdgeIds.current;
27109
- selectedNodeIds.current = new Set(getNodesInside(nodeLookup, nextUserSelectRect, transform2, selectionMode === SelectionMode$1.Partial, !0).map((node2) => node2.id)), selectedEdgeIds.current = /* @__PURE__ */ new Set();
27121
+ selectedNodeIds.current = new Set(getNodesInside(nodeLookup, nextUserSelectRect, transform2, selectionMode === SelectionMode.Partial, !0).map((node2) => node2.id)), selectedEdgeIds.current = /* @__PURE__ */ new Set();
27110
27122
  const edgesSelectable = defaultEdgeOptions?.selectable ?? !0;
27111
27123
  for (const nodeId of selectedNodeIds.current) {
27112
27124
  const connections = connectionLookup.get(nodeId);
@@ -27223,13 +27235,13 @@ const useNodeId = () => useContext(NodeIdContext), selector$g = (s2) => ({
27223
27235
  connectingFrom: fromHandle?.nodeId === nodeId && fromHandle?.id === handleId && fromHandle?.type === type,
27224
27236
  connectingTo,
27225
27237
  clickConnecting: clickHandle?.nodeId === nodeId && clickHandle?.id === handleId && clickHandle?.type === type,
27226
- isPossibleEndHandle: connectionMode === ConnectionMode$1.Strict ? fromHandle?.type !== type : nodeId !== fromHandle?.nodeId || handleId !== fromHandle?.id,
27238
+ isPossibleEndHandle: connectionMode === ConnectionMode.Strict ? fromHandle?.type !== type : nodeId !== fromHandle?.nodeId || handleId !== fromHandle?.id,
27227
27239
  connectionInProcess: !!fromHandle,
27228
27240
  clickConnectionInProcess: !!clickHandle,
27229
27241
  valid: connectingTo && isValid
27230
27242
  };
27231
27243
  };
27232
- function HandleComponent({ type = "source", position = Position$1.Top, isValidConnection, isConnectable = !0, isConnectableStart = !0, isConnectableEnd = !0, id: id2, onConnect, children: children2, className, onMouseDown, onTouchStart, ...rest }, ref) {
27244
+ function HandleComponent({ type = "source", position = Position.Top, isValidConnection, isConnectable = !0, isConnectableStart = !0, isConnectableEnd = !0, id: id2, onConnect, children: children2, className, onMouseDown, onTouchStart, ...rest }, ref) {
27233
27245
  const handleId = id2 || null, isTarget = type === "target", store = useStoreApi(), nodeId = useNodeId(), { connectOnClick, noPanClassName, rfId } = useStore$1(selector$g, shallow$1), { connectingFrom, connectingTo, clickConnecting, isPossibleEndHandle, connectionInProcess, clickConnectionInProcess, valid } = useStore$1(connectingSelector(nodeId, handleId, type), shallow$1);
27234
27246
  nodeId || store.getState().onError?.("010", errorMessages.error010());
27235
27247
  const onConnectExtended = (params) => {
@@ -27325,16 +27337,16 @@ function HandleComponent({ type = "source", position = Position$1.Top, isValidCo
27325
27337
  ]), onMouseDown: onPointerDown2, onTouchStart: onPointerDown2, onClick: connectOnClick ? onClick : void 0, ref, ...rest, children: children2 });
27326
27338
  }
27327
27339
  const Handle = memo$2(fixedForwardRef(HandleComponent));
27328
- function InputNode({ data, isConnectable, sourcePosition = Position$1.Bottom }) {
27340
+ function InputNode({ data, isConnectable, sourcePosition = Position.Bottom }) {
27329
27341
  return jsxs(Fragment$1, { children: [data?.label, jsx(Handle, { type: "source", position: sourcePosition, isConnectable })] });
27330
27342
  }
27331
- function DefaultNode({ data, isConnectable, targetPosition = Position$1.Top, sourcePosition = Position$1.Bottom }) {
27343
+ function DefaultNode({ data, isConnectable, targetPosition = Position.Top, sourcePosition = Position.Bottom }) {
27332
27344
  return jsxs(Fragment$1, { children: [jsx(Handle, { type: "target", position: targetPosition, isConnectable }), data?.label, jsx(Handle, { type: "source", position: sourcePosition, isConnectable })] });
27333
27345
  }
27334
27346
  function GroupNode() {
27335
27347
  return null;
27336
27348
  }
27337
- function OutputNode({ data, isConnectable, targetPosition = Position$1.Top }) {
27349
+ function OutputNode({ data, isConnectable, targetPosition = Position.Top }) {
27338
27350
  return jsxs(Fragment$1, { children: [jsx(Handle, { type: "target", position: targetPosition, isConnectable }), data?.label] });
27339
27351
  }
27340
27352
  const arrowKeyDiffs = {
@@ -27456,7 +27468,7 @@ function NodeWrapper({ id: id2, onClick, onMouseEnter, onMouseMove, onMouseLeave
27456
27468
  }), moveSelectedNodes = useMoveSelectedNodes();
27457
27469
  if (node2.hidden)
27458
27470
  return null;
27459
- const nodeDimensions = getNodeDimensions$1(node2), inlineDimensions = getNodeInlineStyleDimensions(node2), hasPointerEvents = isSelectable || isDraggable || onClick || onMouseEnter || onMouseMove || onMouseLeave, onMouseEnterHandler = onMouseEnter ? (event) => onMouseEnter(event, { ...internals.userNode }) : void 0, onMouseMoveHandler = onMouseMove ? (event) => onMouseMove(event, { ...internals.userNode }) : void 0, onMouseLeaveHandler = onMouseLeave ? (event) => onMouseLeave(event, { ...internals.userNode }) : void 0, onContextMenuHandler = onContextMenu ? (event) => onContextMenu(event, { ...internals.userNode }) : void 0, onDoubleClickHandler = onDoubleClick ? (event) => onDoubleClick(event, { ...internals.userNode }) : void 0, onSelectNodeHandler = (event) => {
27471
+ const nodeDimensions = getNodeDimensions(node2), inlineDimensions = getNodeInlineStyleDimensions(node2), hasPointerEvents = isSelectable || isDraggable || onClick || onMouseEnter || onMouseMove || onMouseLeave, onMouseEnterHandler = onMouseEnter ? (event) => onMouseEnter(event, { ...internals.userNode }) : void 0, onMouseMoveHandler = onMouseMove ? (event) => onMouseMove(event, { ...internals.userNode }) : void 0, onMouseLeaveHandler = onMouseLeave ? (event) => onMouseLeave(event, { ...internals.userNode }) : void 0, onContextMenuHandler = onContextMenu ? (event) => onContextMenu(event, { ...internals.userNode }) : void 0, onDoubleClickHandler = onDoubleClick ? (event) => onDoubleClick(event, { ...internals.userNode }) : void 0, onSelectNodeHandler = (event) => {
27460
27472
  const { selectNodesOnDrag, nodeDragThreshold } = store.getState();
27461
27473
  isSelectable && (!selectNodesOnDrag || !isDraggable || nodeDragThreshold > 0) && handleNodeClick({
27462
27474
  id: id2,
@@ -27571,8 +27583,8 @@ const ArrowSymbol = ({ color: color2 = "none", strokeWidth = 1 }) => jsx("polyli
27571
27583
  fill: color2,
27572
27584
  strokeWidth
27573
27585
  }, strokeLinecap: "round", strokeLinejoin: "round", points: "-5,-4 0,0 -5,4 -5,-4" }), MarkerSymbols = {
27574
- [MarkerType$1.Arrow]: ArrowSymbol,
27575
- [MarkerType$1.ArrowClosed]: ArrowClosedSymbol
27586
+ [MarkerType.Arrow]: ArrowSymbol,
27587
+ [MarkerType.ArrowClosed]: ArrowClosedSymbol
27576
27588
  };
27577
27589
  function useMarkerSymbol(type) {
27578
27590
  const store = useStoreApi();
@@ -27612,9 +27624,9 @@ function BaseEdge({ path, labelX, labelY, label: label2, labelStyle, labelShowBg
27612
27624
  return jsxs(Fragment$1, { children: [jsx("path", { ...props, d: path, fill: "none", className: cc(["react-flow__edge-path", props.className]) }), interactionWidth && jsx("path", { d: path, fill: "none", strokeOpacity: 0, strokeWidth: interactionWidth, className: "react-flow__edge-interaction" }), label2 && isNumeric(labelX) && isNumeric(labelY) ? jsx(EdgeText, { x: labelX, y: labelY, label: label2, labelStyle, labelShowBg, labelBgStyle, labelBgPadding, labelBgBorderRadius }) : null] });
27613
27625
  }
27614
27626
  function getControl({ pos, x1, y1, x2, y2 }) {
27615
- return pos === Position$1.Left || pos === Position$1.Right ? [0.5 * (x1 + x2), y1] : [x1, 0.5 * (y1 + y2)];
27627
+ return pos === Position.Left || pos === Position.Right ? [0.5 * (x1 + x2), y1] : [x1, 0.5 * (y1 + y2)];
27616
27628
  }
27617
- function getSimpleBezierPath({ sourceX, sourceY, sourcePosition = Position$1.Bottom, targetX, targetY, targetPosition = Position$1.Top }) {
27629
+ function getSimpleBezierPath({ sourceX, sourceY, sourcePosition = Position.Bottom, targetX, targetY, targetPosition = Position.Top }) {
27618
27630
  const [sourceControlX, sourceControlY] = getControl({
27619
27631
  pos: sourcePosition,
27620
27632
  x1: sourceX,
@@ -27627,7 +27639,7 @@ function getSimpleBezierPath({ sourceX, sourceY, sourcePosition = Position$1.Bot
27627
27639
  y1: targetY,
27628
27640
  x2: sourceX,
27629
27641
  y2: sourceY
27630
- }), [labelX, labelY, offsetX, offsetY] = getBezierEdgeCenter$1({
27642
+ }), [labelX, labelY, offsetX, offsetY] = getBezierEdgeCenter({
27631
27643
  sourceX,
27632
27644
  sourceY,
27633
27645
  targetX,
@@ -27646,7 +27658,7 @@ function getSimpleBezierPath({ sourceX, sourceY, sourcePosition = Position$1.Bot
27646
27658
  ];
27647
27659
  }
27648
27660
  function createSimpleBezierEdge(params) {
27649
- return memo$2(({ id: id2, sourceX, sourceY, targetX, targetY, sourcePosition = Position$1.Bottom, targetPosition = Position$1.Top, label: label2, labelStyle, labelShowBg, labelBgStyle, labelBgPadding, labelBgBorderRadius, style: style2, markerEnd, markerStart, interactionWidth }) => {
27661
+ return memo$2(({ id: id2, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, label: label2, labelStyle, labelShowBg, labelBgStyle, labelBgPadding, labelBgBorderRadius, style: style2, markerEnd, markerStart, interactionWidth }) => {
27650
27662
  const [path, labelX, labelY] = getSimpleBezierPath({
27651
27663
  sourceX,
27652
27664
  sourceY,
@@ -27662,7 +27674,7 @@ const SimpleBezierEdge = createSimpleBezierEdge({ isInternal: !1 }), SimpleBezie
27662
27674
  SimpleBezierEdge.displayName = "SimpleBezierEdge";
27663
27675
  SimpleBezierEdgeInternal.displayName = "SimpleBezierEdgeInternal";
27664
27676
  function createSmoothStepEdge(params) {
27665
- return memo$2(({ id: id2, sourceX, sourceY, targetX, targetY, label: label2, labelStyle, labelShowBg, labelBgStyle, labelBgPadding, labelBgBorderRadius, style: style2, sourcePosition = Position$1.Bottom, targetPosition = Position$1.Top, markerEnd, markerStart, pathOptions, interactionWidth }) => {
27677
+ return memo$2(({ id: id2, sourceX, sourceY, targetX, targetY, label: label2, labelStyle, labelShowBg, labelBgStyle, labelBgPadding, labelBgBorderRadius, style: style2, sourcePosition = Position.Bottom, targetPosition = Position.Top, markerEnd, markerStart, pathOptions, interactionWidth }) => {
27666
27678
  const [path, labelX, labelY] = getSmoothStepPath({
27667
27679
  sourceX,
27668
27680
  sourceY,
@@ -27698,8 +27710,8 @@ const StraightEdge = createStraightEdge({ isInternal: !1 }), StraightEdgeInterna
27698
27710
  StraightEdge.displayName = "StraightEdge";
27699
27711
  StraightEdgeInternal.displayName = "StraightEdgeInternal";
27700
27712
  function createBezierEdge(params) {
27701
- return memo$2(({ id: id2, sourceX, sourceY, targetX, targetY, sourcePosition = Position$1.Bottom, targetPosition = Position$1.Top, label: label2, labelStyle, labelShowBg, labelBgStyle, labelBgPadding, labelBgBorderRadius, style: style2, markerEnd, markerStart, pathOptions, interactionWidth }) => {
27702
- const [path, labelX, labelY] = getBezierPath$1({
27713
+ return memo$2(({ id: id2, sourceX, sourceY, targetX, targetY, sourcePosition = Position.Bottom, targetPosition = Position.Top, label: label2, labelStyle, labelShowBg, labelBgStyle, labelBgPadding, labelBgBorderRadius, style: style2, markerEnd, markerStart, pathOptions, interactionWidth }) => {
27714
+ const [path, labelX, labelY] = getBezierPath({
27703
27715
  sourceX,
27704
27716
  sourceY,
27705
27717
  sourcePosition,
@@ -27727,7 +27739,7 @@ const builtinEdgeTypes = {
27727
27739
  targetY: null,
27728
27740
  sourcePosition: null,
27729
27741
  targetPosition: null
27730
- }, shiftX = (x2, shift2, position) => position === Position$1.Left ? x2 - shift2 : position === Position$1.Right ? x2 + shift2 : x2, shiftY = (y2, shift2, position) => position === Position$1.Top ? y2 - shift2 : position === Position$1.Bottom ? y2 + shift2 : y2, EdgeUpdaterClassName = "react-flow__edgeupdater";
27742
+ }, shiftX = (x2, shift2, position) => position === Position.Left ? x2 - shift2 : position === Position.Right ? x2 + shift2 : x2, shiftY = (y2, shift2, position) => position === Position.Top ? y2 - shift2 : position === Position.Bottom ? y2 + shift2 : y2, EdgeUpdaterClassName = "react-flow__edgeupdater";
27731
27743
  function EdgeAnchor({ position, centerX, centerY: centerY2, radius = 10, onMouseDown, onMouseEnter, onMouseOut, type }) {
27732
27744
  return jsx("circle", { onMouseDown, onMouseEnter, onMouseOut, className: cc([EdgeUpdaterClassName, `${EdgeUpdaterClassName}-${type}`]), cx: shiftX(centerX, radius, position), cy: shiftY(centerY2, radius, position), r: radius, stroke: "transparent", fill: "transparent" });
27733
27745
  }
@@ -27885,7 +27897,7 @@ function ConnectionLineWrapper({ containerStyle: containerStyle2, style: style2,
27885
27897
  const { nodesConnectable, width, height, isValid, inProgress } = useStore$1(selector$7, shallow$1);
27886
27898
  return !(width && nodesConnectable && inProgress) ? null : jsx("svg", { style: containerStyle2, width, height, className: "react-flow__connectionline react-flow__container", children: jsx("g", { className: cc(["react-flow__connection", getConnectionStatus(isValid)]), children: jsx(ConnectionLine, { style: style2, type, CustomComponent: component, isValid }) }) });
27887
27899
  }
27888
- const ConnectionLine = ({ style: style2, type = ConnectionLineType$1.Bezier, CustomComponent, isValid }) => {
27900
+ const ConnectionLine = ({ style: style2, type = ConnectionLineType.Bezier, CustomComponent, isValid }) => {
27889
27901
  const { inProgress, from, fromNode, fromHandle, fromPosition, to, toNode, toHandle, toPosition } = useConnection();
27890
27902
  if (!inProgress)
27891
27903
  return;
@@ -27901,19 +27913,19 @@ const ConnectionLine = ({ style: style2, type = ConnectionLineType$1.Bezier, Cus
27901
27913
  targetPosition: toPosition
27902
27914
  };
27903
27915
  switch (type) {
27904
- case ConnectionLineType$1.Bezier:
27905
- [path] = getBezierPath$1(pathParams);
27916
+ case ConnectionLineType.Bezier:
27917
+ [path] = getBezierPath(pathParams);
27906
27918
  break;
27907
- case ConnectionLineType$1.SimpleBezier:
27919
+ case ConnectionLineType.SimpleBezier:
27908
27920
  [path] = getSimpleBezierPath(pathParams);
27909
27921
  break;
27910
- case ConnectionLineType$1.Step:
27922
+ case ConnectionLineType.Step:
27911
27923
  [path] = getSmoothStepPath({
27912
27924
  ...pathParams,
27913
27925
  borderRadius: 0
27914
27926
  });
27915
27927
  break;
27916
- case ConnectionLineType$1.SmoothStep:
27928
+ case ConnectionLineType.SmoothStep:
27917
27929
  [path] = getSmoothStepPath(pathParams);
27918
27930
  break;
27919
27931
  default:
@@ -27946,7 +27958,7 @@ const GraphView = memo$2(GraphViewComponent), getInitialState = ({ nodes, edges,
27946
27958
  if (fitView && width && height) {
27947
27959
  const bounds = getInternalNodesBounds(nodeLookup, {
27948
27960
  filter: (node2) => !!((node2.width || node2.initialWidth) && (node2.height || node2.initialHeight))
27949
- }), { x: x2, y: y2, zoom: zoom2 } = getViewportForBounds$1(bounds, width, height, 0.5, 2, 0.1);
27961
+ }), { x: x2, y: y2, zoom: zoom2 } = getViewportForBounds(bounds, width, height, 0.5, 2, 0.1);
27950
27962
  transform2 = [x2, y2, zoom2];
27951
27963
  }
27952
27964
  return {
@@ -27972,7 +27984,7 @@ const GraphView = memo$2(GraphViewComponent), getInitialState = ({ nodes, edges,
27972
27984
  nodesSelectionActive: !1,
27973
27985
  userSelectionActive: !1,
27974
27986
  userSelectionRect: null,
27975
- connectionMode: ConnectionMode$1.Strict,
27987
+ connectionMode: ConnectionMode.Strict,
27976
27988
  domNode: null,
27977
27989
  paneDragging: !1,
27978
27990
  noPanClassName: "nopan",
@@ -28192,7 +28204,7 @@ const wrapperStyle = {
28192
28204
  position: "relative",
28193
28205
  zIndex: 0
28194
28206
  };
28195
- function ReactFlow({ nodes, edges, defaultNodes, defaultEdges, className, nodeTypes: nodeTypes2, edgeTypes: edgeTypes2, onNodeClick, onEdgeClick, onInit, onMove, onMoveStart, onMoveEnd, onConnect, onConnectStart, onConnectEnd, onClickConnectStart, onClickConnectEnd, onNodeMouseEnter, onNodeMouseMove, onNodeMouseLeave, onNodeContextMenu, onNodeDoubleClick, onNodeDragStart, onNodeDrag, onNodeDragStop, onNodesDelete, onEdgesDelete, onDelete, onSelectionChange, onSelectionDragStart, onSelectionDrag, onSelectionDragStop, onSelectionContextMenu, onSelectionStart, onSelectionEnd, onBeforeDelete, connectionMode, connectionLineType = ConnectionLineType$1.Bezier, connectionLineStyle, connectionLineComponent, connectionLineContainerStyle, deleteKeyCode = "Backspace", selectionKeyCode = "Shift", selectionOnDrag = !1, selectionMode = SelectionMode$1.Full, panActivationKeyCode = "Space", multiSelectionKeyCode = isMacOs$1() ? "Meta" : "Control", zoomActivationKeyCode = isMacOs$1() ? "Meta" : "Control", snapToGrid, snapGrid, onlyRenderVisibleElements = !1, selectNodesOnDrag, nodesDraggable, nodesConnectable, nodesFocusable, nodeOrigin = defaultNodeOrigin, edgesFocusable, edgesReconnectable, elementsSelectable = !0, defaultViewport: defaultViewport$1 = defaultViewport, minZoom = 0.5, maxZoom = 2, translateExtent = infiniteExtent, preventScrolling = !0, nodeExtent, defaultMarkerColor = "#b1b1b7", zoomOnScroll = !0, zoomOnPinch = !0, panOnScroll = !1, panOnScrollSpeed = 0.5, panOnScrollMode = PanOnScrollMode$1.Free, zoomOnDoubleClick = !0, panOnDrag = !0, onPaneClick, onPaneMouseEnter, onPaneMouseMove, onPaneMouseLeave, onPaneScroll, onPaneContextMenu, paneClickDistance = 0, nodeClickDistance = 0, children: children2, onReconnect, onReconnectStart, onReconnectEnd, onEdgeContextMenu, onEdgeDoubleClick, onEdgeMouseEnter, onEdgeMouseMove, onEdgeMouseLeave, reconnectRadius = 10, onNodesChange, onEdgesChange, noDragClassName = "nodrag", noWheelClassName = "nowheel", noPanClassName = "nopan", fitView, fitViewOptions, connectOnClick, attributionPosition, proOptions, defaultEdgeOptions, elevateNodesOnSelect, elevateEdgesOnSelect, disableKeyboardA11y = !1, autoPanOnConnect, autoPanOnNodeDrag, autoPanSpeed, connectionRadius, isValidConnection, onError, style: style2, id: id2, nodeDragThreshold, viewport, onViewportChange, width, height, colorMode = "light", debug: debug2, onScroll, ...rest }, ref) {
28207
+ function ReactFlow({ nodes, edges, defaultNodes, defaultEdges, className, nodeTypes: nodeTypes2, edgeTypes: edgeTypes2, onNodeClick, onEdgeClick, onInit, onMove, onMoveStart, onMoveEnd, onConnect, onConnectStart, onConnectEnd, onClickConnectStart, onClickConnectEnd, onNodeMouseEnter, onNodeMouseMove, onNodeMouseLeave, onNodeContextMenu, onNodeDoubleClick, onNodeDragStart, onNodeDrag, onNodeDragStop, onNodesDelete, onEdgesDelete, onDelete, onSelectionChange, onSelectionDragStart, onSelectionDrag, onSelectionDragStop, onSelectionContextMenu, onSelectionStart, onSelectionEnd, onBeforeDelete, connectionMode, connectionLineType = ConnectionLineType.Bezier, connectionLineStyle, connectionLineComponent, connectionLineContainerStyle, deleteKeyCode = "Backspace", selectionKeyCode = "Shift", selectionOnDrag = !1, selectionMode = SelectionMode.Full, panActivationKeyCode = "Space", multiSelectionKeyCode = isMacOs() ? "Meta" : "Control", zoomActivationKeyCode = isMacOs() ? "Meta" : "Control", snapToGrid, snapGrid, onlyRenderVisibleElements = !1, selectNodesOnDrag, nodesDraggable, nodesConnectable, nodesFocusable, nodeOrigin = defaultNodeOrigin, edgesFocusable, edgesReconnectable, elementsSelectable = !0, defaultViewport: defaultViewport$1 = defaultViewport, minZoom = 0.5, maxZoom = 2, translateExtent = infiniteExtent, preventScrolling = !0, nodeExtent, defaultMarkerColor = "#b1b1b7", zoomOnScroll = !0, zoomOnPinch = !0, panOnScroll = !1, panOnScrollSpeed = 0.5, panOnScrollMode = PanOnScrollMode.Free, zoomOnDoubleClick = !0, panOnDrag = !0, onPaneClick, onPaneMouseEnter, onPaneMouseMove, onPaneMouseLeave, onPaneScroll, onPaneContextMenu, paneClickDistance = 0, nodeClickDistance = 0, children: children2, onReconnect, onReconnectStart, onReconnectEnd, onEdgeContextMenu, onEdgeDoubleClick, onEdgeMouseEnter, onEdgeMouseMove, onEdgeMouseLeave, reconnectRadius = 10, onNodesChange, onEdgesChange, noDragClassName = "nodrag", noWheelClassName = "nowheel", noPanClassName = "nopan", fitView, fitViewOptions, connectOnClick, attributionPosition, proOptions, defaultEdgeOptions, elevateNodesOnSelect, elevateEdgesOnSelect, disableKeyboardA11y = !1, autoPanOnConnect, autoPanOnNodeDrag, autoPanSpeed, connectionRadius, isValidConnection, onError, style: style2, id: id2, nodeDragThreshold, viewport, onViewportChange, width, height, colorMode = "light", debug: debug2, onScroll, ...rest }, ref) {
28196
28208
  const rfId = id2 || "1", colorModeClassName = useColorModeClass(colorMode), wrapperOnScroll = useCallback((e2) => {
28197
28209
  e2.currentTarget.scrollTo({ top: 0, left: 0, behavior: "instant" }), onScroll?.(e2);
28198
28210
  }, [onScroll]);
@@ -28327,7 +28339,7 @@ function MiniMapNodes({
28327
28339
  }
28328
28340
  function NodeComponentWrapperInner({ id: id2, nodeColorFunc, nodeStrokeColorFunc, nodeClassNameFunc, nodeBorderRadius, nodeStrokeWidth, shapeRendering, NodeComponent, onClick }) {
28329
28341
  const { node: node2, x: x2, y: y2, width, height } = useStore$1((s2) => {
28330
- const { internals } = s2.nodeLookup.get(id2), node22 = internals.userNode, { x: x22, y: y22 } = internals.positionAbsolute, { width: width2, height: height2 } = getNodeDimensions$1(node22);
28342
+ const { internals } = s2.nodeLookup.get(id2), node22 = internals.userNode, { x: x22, y: y22 } = internals.positionAbsolute, { width: width2, height: height2 } = getNodeDimensions(node22);
28331
28343
  return {
28332
28344
  node: node22,
28333
28345
  x: x22,
@@ -28349,7 +28361,7 @@ const defaultWidth = 200, defaultHeight = 150, filterHidden = (node2) => !node2.
28349
28361
  };
28350
28362
  return {
28351
28363
  viewBB,
28352
- boundingRect: s2.nodeLookup.size > 0 ? getBoundsOfRects$1(getInternalNodesBounds(s2.nodeLookup, { filter: filterHidden }), viewBB) : viewBB,
28364
+ boundingRect: s2.nodeLookup.size > 0 ? getBoundsOfRects(getInternalNodesBounds(s2.nodeLookup, { filter: filterHidden }), viewBB) : viewBB,
28353
28365
  rfId: s2.rfId,
28354
28366
  panZoom: s2.panZoom,
28355
28367
  translateExtent: s2.translateExtent,
@@ -28427,8 +28439,8 @@ function MiniMapComponent({
28427
28439
  }
28428
28440
  MiniMapComponent.displayName = "MiniMap";
28429
28441
  memo$2(MiniMapComponent);
28430
- function ResizeControl({ nodeId, position, variant = ResizeControlVariant$1.Handle, className, style: style2 = {}, children: children2, color: color2, minWidth = 10, minHeight = 10, maxWidth = Number.MAX_VALUE, maxHeight = Number.MAX_VALUE, keepAspectRatio = !1, shouldResize, onResizeStart, onResize, onResizeEnd }) {
28431
- const contextNodeId = useNodeId(), id2 = typeof nodeId == "string" ? nodeId : contextNodeId, store = useStoreApi(), resizeControlRef = useRef(null), defaultPosition = variant === ResizeControlVariant$1.Line ? "right" : "bottom-right", controlPosition = position ?? defaultPosition, resizer = useRef(null);
28442
+ function ResizeControl({ nodeId, position, variant = ResizeControlVariant.Handle, className, style: style2 = {}, children: children2, color: color2, minWidth = 10, minHeight = 10, maxWidth = Number.MAX_VALUE, maxHeight = Number.MAX_VALUE, keepAspectRatio = !1, shouldResize, onResizeStart, onResize, onResizeEnd }) {
28443
+ const contextNodeId = useNodeId(), id2 = typeof nodeId == "string" ? nodeId : contextNodeId, store = useStoreApi(), resizeControlRef = useRef(null), defaultPosition = variant === ResizeControlVariant.Line ? "right" : "bottom-right", controlPosition = position ?? defaultPosition, resizer = useRef(null);
28432
28444
  useEffect(() => {
28433
28445
  if (!(!resizeControlRef.current || !id2))
28434
28446
  return resizer.current || (resizer.current = XYResizer({
@@ -28532,7 +28544,7 @@ function ResizeControl({ nodeId, position, variant = ResizeControlVariant$1.Hand
28532
28544
  onResizeEnd,
28533
28545
  shouldResize
28534
28546
  ]);
28535
- const positionClassNames = controlPosition.split("-"), colorStyleProp = variant === ResizeControlVariant$1.Line ? "borderColor" : "backgroundColor", controlStyle = color2 ? { ...style2, [colorStyleProp]: color2 } : style2;
28547
+ const positionClassNames = controlPosition.split("-"), colorStyleProp = variant === ResizeControlVariant.Line ? "borderColor" : "backgroundColor", controlStyle = color2 ? { ...style2, [colorStyleProp]: color2 } : style2;
28536
28548
  return jsx("div", { className: cc(["react-flow__resize-control", "nodrag", ...positionClassNames, variant, className]), ref: resizeControlRef, style: controlStyle, children: children2 });
28537
28549
  }
28538
28550
  memo$2(ResizeControl);
@@ -28554,7 +28566,7 @@ const nodeEqualityFn = (a2, b2) => a2?.internals.positionAbsolute.x !== b2?.inte
28554
28566
  zoom: state.transform[2],
28555
28567
  selectedNodesCount: state.nodes.filter((node2) => node2.selected).length
28556
28568
  });
28557
- function NodeToolbar({ nodeId, children: children2, className, style: style2, isVisible, position = Position$1.Top, offset: offset2 = 10, align = "center", ...rest }) {
28569
+ function NodeToolbar({ nodeId, children: children2, className, style: style2, isVisible, position = Position.Top, offset: offset2 = 10, align = "center", ...rest }) {
28558
28570
  const contextNodeId = useNodeId(), nodesSelector2 = useCallback((state) => (Array.isArray(nodeId) ? nodeId : [nodeId || contextNodeId || ""]).reduce((res, id2) => {
28559
28571
  const node2 = state.nodeLookup.get(id2);
28560
28572
  return node2 && res.set(node2.id, node2), res;
@@ -28571,7 +28583,7 @@ function NodeToolbar({ nodeId, children: children2, className, style: style2, is
28571
28583
  }
28572
28584
  var s$2 = { done: !1, hasNext: !1 };
28573
28585
  function C(t2, ...o2) {
28574
- let n2 = t2, u2 = o2.map((e2) => "lazy" in e2 ? y$5(e2) : void 0), p2 = 0;
28586
+ let n2 = t2, u2 = o2.map((e2) => "lazy" in e2 ? y$4(e2) : void 0), p2 = 0;
28575
28587
  for (; p2 < o2.length; ) {
28576
28588
  if (u2[p2] === void 0 || !B(n2)) {
28577
28589
  let i2 = o2[p2];
@@ -28607,14 +28619,14 @@ function f$2(t2, o2, n2) {
28607
28619
  }
28608
28620
  return p2.hasNext && o2.push(u2), e2;
28609
28621
  }
28610
- function y$5(t2) {
28622
+ function y$4(t2) {
28611
28623
  let { lazy: o2, lazyArgs: n2 } = t2, u2 = o2(...n2);
28612
28624
  return Object.assign(u2, { isSingle: o2.single ?? !1, index: 0, items: [] });
28613
28625
  }
28614
28626
  function B(t2) {
28615
28627
  return typeof t2 == "string" || typeof t2 == "object" && t2 !== null && Symbol.iterator in t2;
28616
28628
  }
28617
- function y$4(t2, i2) {
28629
+ function y$3(t2, i2) {
28618
28630
  let a2 = i2.length - t2.length;
28619
28631
  if (a2 === 1) {
28620
28632
  let [n2, ...r2] = i2;
@@ -28640,7 +28652,7 @@ function r$6(...t2) {
28640
28652
  return u$7(Object.values, t2);
28641
28653
  }
28642
28654
  function i$8(...e2) {
28643
- return y$4(a$6, e2);
28655
+ return y$3(a$6, e2);
28644
28656
  }
28645
28657
  function a$6() {
28646
28658
  let e2 = /* @__PURE__ */ new Set();
@@ -28733,7 +28745,7 @@ function i$4(e2, o2) {
28733
28745
  for (let [r2, n2] of Object.entries(e2)) o2(n2, r2, e2) && (t2[r2] = n2);
28734
28746
  return t2;
28735
28747
  }
28736
- function y$3(...t2) {
28748
+ function y$2(...t2) {
28737
28749
  return u$7(f$1, t2);
28738
28750
  }
28739
28751
  function f$1(t2, e2) {
@@ -28846,7 +28858,7 @@ function u$3(n2, e2) {
28846
28858
  if (typeof n2 != "object" || typeof e2 != "object" || n2 === null || e2 === null || Object.getPrototypeOf(n2) !== Object.getPrototypeOf(e2)) return !1;
28847
28859
  if (Array.isArray(n2)) return l$1(n2, e2);
28848
28860
  if (n2 instanceof Map) return a$3(n2, e2);
28849
- if (n2 instanceof Set) return c$2(n2, e2);
28861
+ if (n2 instanceof Set) return c$1(n2, e2);
28850
28862
  if (n2 instanceof Date) return n2.getTime() === e2.getTime();
28851
28863
  if (n2 instanceof RegExp) return n2.toString() === e2.toString();
28852
28864
  if (Object.keys(n2).length !== Object.keys(e2).length) return !1;
@@ -28863,7 +28875,7 @@ function a$3(n2, e2) {
28863
28875
  for (let [r2, t2] of n2.entries()) if (!e2.has(r2) || !u$3(t2, e2.get(r2))) return !1;
28864
28876
  return !0;
28865
28877
  }
28866
- function c$2(n2, e2) {
28878
+ function c$1(n2, e2) {
28867
28879
  if (n2.size !== e2.size) return !1;
28868
28880
  let r2 = [...e2];
28869
28881
  for (let t2 of n2) {
@@ -28877,23 +28889,12 @@ function c$2(n2, e2) {
28877
28889
  return !0;
28878
28890
  }
28879
28891
  function j(...e2) {
28880
- return u$7(c$1, e2);
28892
+ return u$7(c, e2);
28881
28893
  }
28882
- function c$1(e2, u2) {
28894
+ function c(e2, u2) {
28883
28895
  for (let [t2, y2] of Object.entries(u2)) if (!Object.hasOwn(e2, t2) || !k(y2, e2[t2])) return !1;
28884
28896
  return !0;
28885
28897
  }
28886
- function c(...e2) {
28887
- return u$7(y$2, e2);
28888
- }
28889
- function y$2(e2, o2) {
28890
- let r2 = {};
28891
- for (let [a2, n2] of e2.entries()) {
28892
- let d2 = o2(n2, a2, e2);
28893
- r2[d2] = n2;
28894
- }
28895
- return r2;
28896
- }
28897
28898
  function i$2(...e2) {
28898
28899
  return u$7(a$2, e2);
28899
28900
  }
@@ -28985,70 +28986,64 @@ function useDebouncedEffect(callback, deps, delay2, maxWait = 0) {
28985
28986
  useEffect(useDebouncedCallback(callback, deps, delay2, maxWait), deps);
28986
28987
  }
28987
28988
  const { valueOf, toString: toString$1 } = Object.prototype, isEqual = (a2, b2) => {
28988
- if (a2 === b2)
28989
- return !0;
28990
- if (typeof a2 == "object" && typeof b2 == "object" && a2 && b2) {
28991
- if (a2.constructor !== b2.constructor)
28989
+ const visited = /* @__PURE__ */ new WeakMap(), inner2 = (a3, b3) => {
28990
+ if (a3 === b3)
28991
+ return !0;
28992
+ if (typeof a3 != "object" || typeof b3 != "object" || !a3 || !b3)
28993
+ return a3 !== a3 && b3 !== b3;
28994
+ if (Object.getPrototypeOf(a3) !== Object.getPrototypeOf(b3))
28992
28995
  return !1;
28993
- if (Array.isArray(a2)) {
28994
- const { length } = a2;
28995
- if (length !== b2.length)
28996
+ const { constructor } = a3;
28997
+ if (constructor === Date)
28998
+ return a3.getTime() === b3.getTime();
28999
+ if (constructor === RegExp)
29000
+ return a3.source === b3.source && a3.flags === b3.flags;
29001
+ if (constructor === Set) {
29002
+ if (a3.size !== b3.size)
28996
29003
  return !1;
28997
- for (let i2 = length; i2-- !== 0; )
28998
- if (!isEqual(a2[i2], b2[i2]))
29004
+ for (const value of a3)
29005
+ if (!b3.has(value))
28999
29006
  return !1;
29000
29007
  return !0;
29001
29008
  }
29002
- if (a2 instanceof RegExp)
29003
- return a2.source === b2.source && a2.flags === b2.flags;
29004
- if (a2 instanceof Date)
29005
- return a2.getTime() === b2.getTime();
29006
- if (a2 instanceof Map && b2 instanceof Map) {
29007
- if (a2.size !== b2.size)
29009
+ if (constructor === ArrayBuffer && (a3 = new DataView(a3), b3 = new DataView(b3)), constructor === DataView || ArrayBuffer.isView(a3)) {
29010
+ if (constructor !== DataView && (a3 = new DataView(a3.buffer), b3 = new DataView(b3.buffer)), a3.byteLength !== b3.byteLength)
29008
29011
  return !1;
29009
- for (const entry of a2)
29010
- if (!b2.has(entry[0]) || !isEqual(entry[1], b2.get(entry[0])))
29012
+ for (let i2 = a3.byteLength; i2-- !== 0; )
29013
+ if (a3.getUint8(i2) !== b3.getUint8(i2))
29011
29014
  return !1;
29012
29015
  return !0;
29013
29016
  }
29014
- if (a2 instanceof Set && b2 instanceof Set) {
29015
- if (a2.size !== b2.size)
29016
- return !1;
29017
- for (const value of a2)
29018
- if (!b2.has(value))
29019
- return !1;
29017
+ if (visited.has(a3) && visited.get(a3) === b3)
29020
29018
  return !0;
29021
- }
29022
- if (a2 instanceof DataView && b2 instanceof DataView) {
29023
- const { byteLength } = a2;
29024
- if (byteLength !== b2.byteLength)
29019
+ if (visited.set(a3, b3), constructor === Array) {
29020
+ if (a3.length !== b3.length)
29025
29021
  return !1;
29026
- for (let i2 = byteLength; i2-- !== 0; )
29027
- if (a2.getUint8(i2) !== b2.getUint8(i2))
29022
+ for (let i2 = a3.length; i2-- !== 0; )
29023
+ if (!inner2(a3[i2], b3[i2]))
29028
29024
  return !1;
29029
29025
  return !0;
29030
29026
  }
29031
- if (a2 instanceof ArrayBuffer && b2 instanceof ArrayBuffer && (a2 = new Uint8Array(a2), b2 = new Uint8Array(b2)), ArrayBuffer.isView(a2) && ArrayBuffer.isView(b2)) {
29032
- const { length } = a2;
29033
- if (length !== b2.length)
29027
+ if (constructor === Map) {
29028
+ if (a3.size !== b3.size)
29034
29029
  return !1;
29035
- for (let i2 = length; i2-- !== 0; )
29036
- if (a2[i2] !== b2[i2])
29030
+ for (const entry of a3)
29031
+ if (!b3.has(entry[0]) || !inner2(entry[1], b3.get(entry[0])))
29037
29032
  return !1;
29038
29033
  return !0;
29039
29034
  }
29040
- if (a2.valueOf !== valueOf && typeof a2.valueOf == "function" && typeof b2.valueOf == "function")
29041
- return a2.valueOf() === b2.valueOf();
29042
- if (a2.toString !== toString$1 && typeof a2.toString == "function" && typeof b2.toString == "function")
29043
- return a2.toString() === b2.toString();
29044
- const aKeys = Object.keys(a2);
29035
+ if (a3.valueOf !== valueOf && typeof a3.valueOf == "function" && typeof b3.valueOf == "function")
29036
+ return a3.valueOf() === b3.valueOf();
29037
+ if (a3.toString !== toString$1 && typeof a3.toString == "function" && typeof b3.toString == "function")
29038
+ return a3.toString() === b3.toString();
29039
+ const aKeys = Object.keys(a3);
29045
29040
  let key2;
29046
29041
  for (let l2 = aKeys.length; l2-- !== 0; )
29047
- if (key2 = aKeys[l2], !((key2 === "_owner" || key2 === "__v" || key2 === "__o") && Object.hasOwn(a2, "$$typeof")) && (!Object.hasOwn(b2, key2) || !isEqual(a2[key2], b2[key2])))
29042
+ if (key2 = aKeys[l2], !Object.hasOwn(b3, key2) || !inner2(a3[key2], b3[key2]))
29048
29043
  return !1;
29049
- return Object.keys(b2).length === aKeys.length;
29050
- }
29051
- return a2 !== a2 && b2 !== b2;
29044
+ return Object.keys(b3).length === aKeys.length;
29045
+ };
29046
+ return inner2(a2, b2);
29052
29047
  };
29053
29048
  function useDeepCompareEffect(callback, deps, effectHook = useEffect, ...effectHookRestArgs) {
29054
29049
  useCustomCompareEffect(callback, deps, isEqual, effectHook, ...effectHookRestArgs);
@@ -29747,10 +29742,6 @@ function RootContainer({
29747
29742
  Box,
29748
29743
  {
29749
29744
  className: cx("likec4-root", className),
29750
- css: {
29751
- // '--likec4-background-color': 'mantine.colors.body',
29752
- // '--colors-likec4-background': 'var(--mantine-color-body)',
29753
- },
29754
29745
  ref,
29755
29746
  ...reduceGraphics && {
29756
29747
  "data-likec4-reduced-graphics": !0
@@ -29822,165 +29813,6 @@ const useXYStoreApi = useStoreApi, useXYInternalNode = useInternalNode, selectZo
29822
29813
  function useIsZoomTooSmall() {
29823
29814
  return useStore$1(selectZoom);
29824
29815
  }
29825
- var ConnectionMode;
29826
- (function(ConnectionMode2) {
29827
- ConnectionMode2.Strict = "strict", ConnectionMode2.Loose = "loose";
29828
- })(ConnectionMode || (ConnectionMode = {}));
29829
- var PanOnScrollMode;
29830
- (function(PanOnScrollMode2) {
29831
- PanOnScrollMode2.Free = "free", PanOnScrollMode2.Vertical = "vertical", PanOnScrollMode2.Horizontal = "horizontal";
29832
- })(PanOnScrollMode || (PanOnScrollMode = {}));
29833
- var SelectionMode;
29834
- (function(SelectionMode2) {
29835
- SelectionMode2.Partial = "partial", SelectionMode2.Full = "full";
29836
- })(SelectionMode || (SelectionMode = {}));
29837
- var ConnectionLineType;
29838
- (function(ConnectionLineType2) {
29839
- ConnectionLineType2.Bezier = "default", ConnectionLineType2.Straight = "straight", ConnectionLineType2.Step = "step", ConnectionLineType2.SmoothStep = "smoothstep", ConnectionLineType2.SimpleBezier = "simplebezier";
29840
- })(ConnectionLineType || (ConnectionLineType = {}));
29841
- var MarkerType;
29842
- (function(MarkerType2) {
29843
- MarkerType2.Arrow = "arrow", MarkerType2.ArrowClosed = "arrowclosed";
29844
- })(MarkerType || (MarkerType = {}));
29845
- var Position;
29846
- (function(Position2) {
29847
- Position2.Left = "left", Position2.Top = "top", Position2.Right = "right", Position2.Bottom = "bottom";
29848
- })(Position || (Position = {}));
29849
- Position.Left + "", Position.Right, Position.Right + "", Position.Left, Position.Top + "", Position.Bottom, Position.Bottom + "", Position.Top;
29850
- const isInternalNodeBase = (element) => "id" in element && "internals" in element && !("source" in element) && !("target" in element), getNodePositionWithOrigin = (node2, nodeOrigin = [0, 0]) => {
29851
- const { width, height } = getNodeDimensions(node2), origin = node2.origin ?? nodeOrigin, offsetX = width * origin[0], offsetY = height * origin[1];
29852
- return {
29853
- x: node2.position.x - offsetX,
29854
- y: node2.position.y - offsetY
29855
- };
29856
- }, clamp = (val, min2 = 0, max2 = 1) => Math.min(Math.max(val, min2), max2), getBoundsOfBoxes = (box1, box2) => ({
29857
- x: Math.min(box1.x, box2.x),
29858
- y: Math.min(box1.y, box2.y),
29859
- x2: Math.max(box1.x2, box2.x2),
29860
- y2: Math.max(box1.y2, box2.y2)
29861
- }), rectToBox = ({ x: x2, y: y2, width, height }) => ({
29862
- x: x2,
29863
- y: y2,
29864
- x2: x2 + width,
29865
- y2: y2 + height
29866
- }), boxToRect = ({ x: x2, y: y2, x2: x22, y2: y22 }) => ({
29867
- x: x2,
29868
- y: y2,
29869
- width: x22 - x2,
29870
- height: y22 - y2
29871
- }), nodeToRect = (node2, nodeOrigin = [0, 0]) => {
29872
- const { x: x2, y: y2 } = isInternalNodeBase(node2) ? node2.internals.positionAbsolute : getNodePositionWithOrigin(node2, nodeOrigin);
29873
- return {
29874
- x: x2,
29875
- y: y2,
29876
- width: node2.measured?.width ?? node2.width ?? node2.initialWidth ?? 0,
29877
- height: node2.measured?.height ?? node2.height ?? node2.initialHeight ?? 0
29878
- };
29879
- }, getBoundsOfRects = (rect1, rect2) => boxToRect(getBoundsOfBoxes(rectToBox(rect1), rectToBox(rect2))), rendererPointToPoint = ({ x: x2, y: y2 }, [tx, ty, tScale]) => ({
29880
- x: x2 * tScale + tx,
29881
- y: y2 * tScale + ty
29882
- });
29883
- function parsePadding(padding, viewport) {
29884
- return Math.floor(viewport - viewport / (1 + padding));
29885
- }
29886
- function parsePaddings(padding, width, height) {
29887
- {
29888
- const paddingY = parsePadding(padding, height), paddingX = parsePadding(padding, width);
29889
- return {
29890
- top: paddingY,
29891
- right: paddingX,
29892
- bottom: paddingY,
29893
- left: paddingX,
29894
- x: paddingX * 2,
29895
- y: paddingY * 2
29896
- };
29897
- }
29898
- }
29899
- function calculateAppliedPaddings(bounds, x2, y2, zoom2, width, height) {
29900
- const { x: left, y: top } = rendererPointToPoint(bounds, [x2, y2, zoom2]), { x: boundRight, y: boundBottom } = rendererPointToPoint({ x: bounds.x + bounds.width, y: bounds.y + bounds.height }, [x2, y2, zoom2]), right = width - boundRight, bottom = height - boundBottom;
29901
- return {
29902
- left: Math.floor(left),
29903
- top: Math.floor(top),
29904
- right: Math.floor(right),
29905
- bottom: Math.floor(bottom)
29906
- };
29907
- }
29908
- const getViewportForBounds = (bounds, width, height, minZoom, maxZoom, padding) => {
29909
- const p2 = parsePaddings(padding, width, height), xZoom = (width - p2.x) / bounds.width, yZoom = (height - p2.y) / bounds.height, zoom2 = Math.min(xZoom, yZoom), clampedZoom = clamp(zoom2, minZoom, maxZoom), boundsCenterX = bounds.x + bounds.width / 2, boundsCenterY = bounds.y + bounds.height / 2, x2 = width / 2 - boundsCenterX * clampedZoom, y2 = height / 2 - boundsCenterY * clampedZoom, newPadding = calculateAppliedPaddings(bounds, x2, y2, clampedZoom, width, height), offset2 = {
29910
- left: Math.min(newPadding.left - p2.left, 0),
29911
- top: Math.min(newPadding.top - p2.top, 0),
29912
- right: Math.min(newPadding.right - p2.right, 0),
29913
- bottom: Math.min(newPadding.bottom - p2.bottom, 0)
29914
- };
29915
- return {
29916
- x: x2 - offset2.left + offset2.right,
29917
- y: y2 - offset2.top + offset2.bottom,
29918
- zoom: clampedZoom
29919
- };
29920
- }, isMacOs = () => typeof navigator < "u" && navigator?.userAgent?.indexOf("Mac") >= 0;
29921
- function getNodeDimensions(node2) {
29922
- return {
29923
- width: node2.measured?.width ?? node2.width ?? node2.initialWidth ?? 0,
29924
- height: node2.measured?.height ?? node2.height ?? node2.initialHeight ?? 0
29925
- };
29926
- }
29927
- function getBezierEdgeCenter({ sourceX, sourceY, targetX, targetY, sourceControlX, sourceControlY, targetControlX, targetControlY }) {
29928
- const centerX = sourceX * 0.125 + sourceControlX * 0.375 + targetControlX * 0.375 + targetX * 0.125, centerY2 = sourceY * 0.125 + sourceControlY * 0.375 + targetControlY * 0.375 + targetY * 0.125, offsetX = Math.abs(centerX - sourceX), offsetY = Math.abs(centerY2 - sourceY);
29929
- return [centerX, centerY2, offsetX, offsetY];
29930
- }
29931
- function calculateControlOffset(distance2, curvature) {
29932
- return distance2 >= 0 ? 0.5 * distance2 : curvature * 25 * Math.sqrt(-distance2);
29933
- }
29934
- function getControlWithCurvature({ pos, x1, y1, x2, y2, c: c2 }) {
29935
- switch (pos) {
29936
- case Position.Left:
29937
- return [x1 - calculateControlOffset(x1 - x2, c2), y1];
29938
- case Position.Right:
29939
- return [x1 + calculateControlOffset(x2 - x1, c2), y1];
29940
- case Position.Top:
29941
- return [x1, y1 - calculateControlOffset(y1 - y2, c2)];
29942
- case Position.Bottom:
29943
- return [x1, y1 + calculateControlOffset(y2 - y1, c2)];
29944
- }
29945
- }
29946
- function getBezierPath({ sourceX, sourceY, sourcePosition = Position.Bottom, targetX, targetY, targetPosition = Position.Top, curvature = 0.25 }) {
29947
- const [sourceControlX, sourceControlY] = getControlWithCurvature({
29948
- pos: sourcePosition,
29949
- x1: sourceX,
29950
- y1: sourceY,
29951
- x2: targetX,
29952
- y2: targetY,
29953
- c: curvature
29954
- }), [targetControlX, targetControlY] = getControlWithCurvature({
29955
- pos: targetPosition,
29956
- x1: targetX,
29957
- y1: targetY,
29958
- x2: sourceX,
29959
- y2: sourceY,
29960
- c: curvature
29961
- }), [labelX, labelY, offsetX, offsetY] = getBezierEdgeCenter({
29962
- sourceX,
29963
- sourceY,
29964
- targetX,
29965
- targetY,
29966
- sourceControlX,
29967
- sourceControlY,
29968
- targetControlX,
29969
- targetControlY
29970
- });
29971
- return [
29972
- `M${sourceX},${sourceY} C${sourceControlX},${sourceControlY} ${targetControlX},${targetControlY} ${targetX},${targetY}`,
29973
- labelX,
29974
- labelY,
29975
- offsetX,
29976
- offsetY
29977
- ];
29978
- }
29979
- Position.Left + "", Position.Right + "", Position.Top + "", Position.Bottom + "";
29980
- var ResizeControlVariant;
29981
- (function(ResizeControlVariant2) {
29982
- ResizeControlVariant2.Line = "line", ResizeControlVariant2.Handle = "handle";
29983
- })(ResizeControlVariant || (ResizeControlVariant = {}));
29984
29816
  const { abs: abs$1, cos: cos$1, sin: sin$1, acos: acos$1, atan2, sqrt: sqrt$1, pow } = Math;
29985
29817
  function crt(v) {
29986
29818
  return v < 0 ? -pow(-v, 1 / 3) : pow(v, 1 / 3);
@@ -31108,8 +30940,8 @@ const cssTransparentBg = css({
31108
30940
  edgesFocusable: !1,
31109
30941
  nodesDraggable,
31110
30942
  nodeDragThreshold: 4,
31111
- nodeClickDistance: 1.9,
31112
- paneClickDistance: 1.9,
30943
+ nodeClickDistance: 3,
30944
+ paneClickDistance: 3,
31113
30945
  elevateNodesOnSelect: !1,
31114
30946
  selectNodesOnDrag: !1,
31115
30947
  onNodesChange,
@@ -31164,15 +30996,7 @@ const cssTransparentBg = css({
31164
30996
  const square = useStore$1(selectDimensions);
31165
30997
  return useUpdateEffect(onViewportResize, [square]), null;
31166
30998
  };
31167
- var xstateReact_cjs = {}, useIsomorphicLayoutEffect_cjs = {}, hasRequiredUseIsomorphicLayoutEffect_cjs;
31168
- function requireUseIsomorphicLayoutEffect_cjs() {
31169
- return hasRequiredUseIsomorphicLayoutEffect_cjs || (hasRequiredUseIsomorphicLayoutEffect_cjs = 1, function(exports) {
31170
- Object.defineProperty(exports, "__esModule", { value: !0 });
31171
- var react = React__default, isClient = typeof document < "u", index2 = isClient ? react.useLayoutEffect : react.useEffect;
31172
- exports.default = index2;
31173
- }(useIsomorphicLayoutEffect_cjs)), useIsomorphicLayoutEffect_cjs;
31174
- }
31175
- var xstate_cjs = {}, xstateActors_cjs = {}, raise60cebf03_cjs = {}, xstateDev_cjs = {}, hasRequiredXstateDev_cjs;
30999
+ var xstateReact_cjs = {}, xstate_cjs = {}, xstateActors_cjs = {}, raise60cebf03_cjs = {}, xstateDev_cjs = {}, hasRequiredXstateDev_cjs;
31176
31000
  function requireXstateDev_cjs() {
31177
31001
  if (hasRequiredXstateDev_cjs) return xstateDev_cjs;
31178
31002
  hasRequiredXstateDev_cjs = 1, Object.defineProperty(xstateDev_cjs, "__esModule", { value: !0 });
@@ -34702,7 +34526,7 @@ const curveCatmullRomOpen = function custom4(alpha2) {
34702
34526
  return splitProps(props, actionBtnVariantKeys);
34703
34527
  },
34704
34528
  getVariantProps: actionBtnFn.getVariantProps
34705
- }), compoundActionBtn = cva({
34529
+ }), MotionButton = /* @__PURE__ */ createMinimalMotionComponent("button"), MotionDiv = /* @__PURE__ */ createMinimalMotionComponent("div"), compoundActionBtn = cva({
34706
34530
  base: {
34707
34531
  transitionDuration: "normal",
34708
34532
  "[data-compound-title-inverse] &": {
@@ -34753,7 +34577,7 @@ function CompoundActionButton({
34753
34577
  "compound-action"
34754
34578
  ),
34755
34579
  children: /* @__PURE__ */ jsx(
34756
- m$2.div,
34580
+ MotionDiv,
34757
34581
  {
34758
34582
  initial: !1,
34759
34583
  animate: {
@@ -34811,7 +34635,7 @@ function CompoundDetailsButton({
34811
34635
  ),
34812
34636
  onClick: stopPropagation$1,
34813
34637
  children: /* @__PURE__ */ jsx(
34814
- m$2.div,
34638
+ MotionDiv,
34815
34639
  {
34816
34640
  initial: !1,
34817
34641
  animate: {
@@ -35197,7 +35021,7 @@ const isSelected$1 = ".react-flow__edge.selected", edgeStroke = "--xy-edge-strok
35197
35021
  fill: "[var(--xy-edge-stroke)]",
35198
35022
  stroke: "[var(--xy-edge-stroke)]"
35199
35023
  }), cssEdgePath = css({
35200
- fill: "[none]",
35024
+ fill: "[none!]",
35201
35025
  strokeDashoffset: 10,
35202
35026
  _noReduceGraphics: {
35203
35027
  transition: "stroke 130ms ease-out,stroke-width 130ms ease-out"
@@ -35732,18 +35556,20 @@ function arrowTypeToMarker(arrowType) {
35732
35556
  }
35733
35557
  }
35734
35558
  const EdgePath = forwardRef(({
35735
- id: id2,
35736
- data: {
35737
- line,
35738
- dir,
35739
- tail,
35740
- head
35559
+ edgeProps: {
35560
+ id: id2,
35561
+ data: {
35562
+ line,
35563
+ dir,
35564
+ tail,
35565
+ head
35566
+ },
35567
+ style: style2,
35568
+ interactionWidth
35741
35569
  },
35570
+ onEdgePointerDown,
35742
35571
  strokeWidth,
35743
- svgPath,
35744
- style: style2,
35745
- interactionWidth,
35746
- onEdgePointerDown
35572
+ svgPath
35747
35573
  }, svgPathRef) => {
35748
35574
  let markerStartName = arrowTypeToMarker(tail), markerEndName = arrowTypeToMarker(head ?? "normal");
35749
35575
  dir === "back" && ([markerStartName, markerEndName] = [markerEndName, markerStartName]);
@@ -35753,10 +35579,15 @@ const EdgePath = forwardRef(({
35753
35579
  /* @__PURE__ */ jsx(
35754
35580
  "path",
35755
35581
  {
35756
- className: cx("react-flow__edge-interaction", hideOnReducedGraphics),
35582
+ className: cx(
35583
+ "react-flow__edge-interaction",
35584
+ hideOnReducedGraphics,
35585
+ css({
35586
+ fill: "[none]",
35587
+ strokeOpacity: 0
35588
+ })
35589
+ ),
35757
35590
  d: svgPath,
35758
- fill: "none",
35759
- stroke: "transparent",
35760
35591
  strokeWidth: interactionWidth ?? 10
35761
35592
  }
35762
35593
  ),
@@ -35824,7 +35655,7 @@ function ElementActionButtons({
35824
35655
  return !buttons2.length || zoomTooSmall ? null : /* @__PURE__ */ jsx(Box$1, { className: container$4, children: /* @__PURE__ */ jsx(
35825
35656
  Box$1,
35826
35657
  {
35827
- component: m$2.div,
35658
+ component: MotionDiv,
35828
35659
  layoutRoot: !0,
35829
35660
  initial: !1,
35830
35661
  style: {
@@ -35841,8 +35672,7 @@ function ElementActionButtons({
35841
35672
  children: buttons2.map((button2, index2) => /* @__PURE__ */ jsx(
35842
35673
  ActionIcon$1,
35843
35674
  {
35844
- component: m$2.button,
35845
- layout: !0,
35675
+ component: MotionButton,
35846
35676
  className: actionBtn$1({}),
35847
35677
  initial: !1,
35848
35678
  whileTap: { scale: 1 },
@@ -35893,8 +35723,7 @@ function ElementDetailsButton({
35893
35723
  ActionIcon$1,
35894
35724
  {
35895
35725
  className: cx("nodrag nopan", actionBtn$1({ variant: "transparent" })),
35896
- component: m$2.button,
35897
- layout: !0,
35726
+ component: MotionButton,
35898
35727
  initial: !1,
35899
35728
  style: {
35900
35729
  originX: 0.45,
@@ -36008,7 +35837,7 @@ const ElementNodeContainer = forwardRef(({
36008
35837
  return /* @__PURE__ */ jsx(
36009
35838
  Box$1,
36010
35839
  {
36011
- component: m$2.div,
35840
+ component: MotionDiv,
36012
35841
  ref,
36013
35842
  className: cx(
36014
35843
  css({
@@ -36559,8 +36388,8 @@ const style = {
36559
36388
  left: "50%",
36560
36389
  visibility: "hidden"
36561
36390
  }, DefaultHandles = () => /* @__PURE__ */ jsxs(Fragment$1, { children: [
36562
- /* @__PURE__ */ jsx(Handle, { type: "target", position: Position$1.Top, style }),
36563
- /* @__PURE__ */ jsx(Handle, { type: "source", position: Position$1.Bottom, style })
36391
+ /* @__PURE__ */ jsx(Handle, { type: "target", position: Position.Top, style }),
36392
+ /* @__PURE__ */ jsx(Handle, { type: "source", position: Position.Bottom, style })
36564
36393
  ] });
36565
36394
  class VectorImpl {
36566
36395
  constructor(x2, y2) {
@@ -36918,7 +36747,7 @@ const stopPropagation = (e2) => e2.stopPropagation(), Tooltip$4 = Tooltip$5.with
36918
36747
  diagramEdge.relations,
36919
36748
  m((id2) => {
36920
36749
  try {
36921
- return likec4model.relationship(id2);
36750
+ return likec4model.findRelationship(id2);
36922
36751
  } catch (e2) {
36923
36752
  return console.error(
36924
36753
  `View is cached and likec4model missing relationship ${id2} from ${sourceNode.id} -> ${targetNode.id}`,
@@ -37241,7 +37070,7 @@ const curve = d3line().curve(curveCatmullRomOpen).x((d2) => d2.x).y((d2) => d2.y
37241
37070
  /* @__PURE__ */ jsx(
37242
37071
  EdgePath,
37243
37072
  {
37244
- ...props,
37073
+ edgeProps: props,
37245
37074
  svgPath: edgePath,
37246
37075
  ref: svgPathRef,
37247
37076
  ...enableEdgeEditing && {
@@ -37287,7 +37116,7 @@ const curve = d3line().curve(curveCatmullRomOpen).x((d2) => d2.x).y((d2) => d2.y
37287
37116
  cy: Math.round(p2.y),
37288
37117
  r: 3
37289
37118
  },
37290
- i2
37119
+ "controlPoints" + edgeId + "#" + i2
37291
37120
  ))
37292
37121
  }
37293
37122
  )
@@ -38402,10 +38231,13 @@ const useElementDetailsActorRef = () => {
38402
38231
  )
38403
38232
  ] })
38404
38233
  ] });
38234
+ }, setHoveredNode$3 = () => {
38405
38235
  }, TabPanelDeployments = memo$2(({ elementFqn }) => {
38406
38236
  const element = useLikeC4Model$1(!0).element(elementFqn), deployments = [...element.deployments()], tree = useTree({
38407
38237
  multiple: !1
38408
- }), data = useMemo(() => {
38238
+ });
38239
+ tree.setHoveredNode = setHoveredNode$3;
38240
+ const data = useMemo(() => {
38409
38241
  let roots = [], treeItems = /* @__PURE__ */ new Map();
38410
38242
  for (const instance of element.deployments()) {
38411
38243
  let instanceNode = {
@@ -38486,7 +38318,7 @@ const useElementDetailsActorRef = () => {
38486
38318
  }
38487
38319
  )
38488
38320
  );
38489
- }), ViewPadding = 0.1, RelationshipsBrowserActorContext = createContext(null);
38321
+ }), RelationshipsBrowserActorContext = createContext(null);
38490
38322
  function useRelationshipsBrowserActor() {
38491
38323
  return nonNullable(useContext(RelationshipsBrowserActorContext), "No RelationshipsBrowserActorContext");
38492
38324
  }
@@ -38580,13 +38412,12 @@ const RelationshipEdge$1 = customEdge((props) => {
38580
38412
  /* @__PURE__ */ jsx(
38581
38413
  EdgePath,
38582
38414
  {
38583
- ...edgeProps,
38415
+ edgeProps,
38584
38416
  svgPath,
38585
38417
  ...markOrange && {
38586
38418
  strokeWidth: 5
38587
38419
  }
38588
- },
38589
- id2
38420
+ }
38590
38421
  ),
38591
38422
  /* @__PURE__ */ jsx(
38592
38423
  EdgeLabelContainer,
@@ -38603,7 +38434,7 @@ const RelationshipEdge$1 = customEdge((props) => {
38603
38434
  children: label2
38604
38435
  }
38605
38436
  )
38606
- ] }, id2);
38437
+ ] });
38607
38438
  }), selectViewId = (s2) => s2.context.view.id;
38608
38439
  function useCurrentViewId() {
38609
38440
  const actorRef = useDiagramActorRef();
@@ -38667,7 +38498,7 @@ const ElementDetailsButtonWithHandler$1 = (props) => {
38667
38498
  }
38668
38499
  }
38669
38500
  );
38670
- }, ElementNode$1 = customNode((props) => /* @__PURE__ */ jsxs(ElementNodeContainer, { component: m$2.div, layoutId: props.id, nodeProps: props, children: [
38501
+ }, ElementNode$1 = customNode((props) => /* @__PURE__ */ jsxs(ElementNodeContainer, { component: MotionDiv, layoutId: props.id, nodeProps: props, children: [
38671
38502
  /* @__PURE__ */ jsx(ElementShape, { ...props }),
38672
38503
  /* @__PURE__ */ jsx(ElementTitle, { ...props }),
38673
38504
  /* @__PURE__ */ jsx(ElementDetailsButtonWithHandler$1, { ...props }),
@@ -41432,6 +41263,7 @@ const node = css({
41432
41263
  enableSelectSubject: state.context.enableSelectSubject,
41433
41264
  enableChangeScope: state.context.enableChangeScope
41434
41265
  };
41266
+ }, setHoveredNode$2 = () => {
41435
41267
  }, SelectElement = memo$2(() => {
41436
41268
  const browser = useRelationshipsBrowser(), {
41437
41269
  subjectId,
@@ -41443,7 +41275,7 @@ const node = css({
41443
41275
  } = useRelationshipsBrowserState(selector2$1), root2 = useRef(null), viewport = useRef(null), subject = useLikeC4Model$1(!0).findElement(subjectId), data = useLikeC4ElementsTree(scope === "view" && viewId ? viewId : void 0), tree = useTree({
41444
41276
  multiple: !1
41445
41277
  });
41446
- return useEffect(() => {
41278
+ return tree.setHoveredNode = setHoveredNode$2, useEffect(() => {
41447
41279
  ancestorsFqn(subjectId).reverse().forEach((id2) => {
41448
41280
  tree.expand(id2);
41449
41281
  }), tree.select(subjectId);
@@ -41651,7 +41483,6 @@ const selector$4 = (state) => ({
41651
41483
  nodeTypes: nodeTypes$1,
41652
41484
  edgeTypes: edgeTypes$1,
41653
41485
  fitView: !1,
41654
- fitViewPadding: ViewPadding,
41655
41486
  onNodeClick: useCallbackRef((e2, node2) => {
41656
41487
  browser.send({ type: "xyflow.nodeClick", node: node2 });
41657
41488
  }),
@@ -42033,13 +41864,16 @@ const treeNodeLabel = css({
42033
41864
  }
42034
41865
  }), ElementLabel = ({
42035
41866
  element
42036
- }) => /* @__PURE__ */ jsx(Box$1, { className: elementLabel, children: /* @__PURE__ */ jsx(Text, { component: "div", fz: "sm", fw: "500", children: element.title }) });
41867
+ }) => /* @__PURE__ */ jsx(Box$1, { className: elementLabel, children: /* @__PURE__ */ jsx(Text, { component: "div", fz: "sm", fw: "500", children: element.title }) }), setHoveredNode$1 = () => {
41868
+ };
42037
41869
  function TabPanelStructure({
42038
41870
  element
42039
41871
  }) {
42040
41872
  const tree = useTree({
42041
41873
  multiple: !1
42042
- }), data = useMemo(() => {
41874
+ });
41875
+ tree.setHoveredNode = setHoveredNode$1;
41876
+ const data = useMemo(() => {
42043
41877
  let seq = 1;
42044
41878
  const messageNode = (label2) => ({
42045
41879
  label: label2,
@@ -42605,7 +42439,7 @@ const backdropBlur = "--_blur", backdropOpacity = "--_opacity", level = "--_leve
42605
42439
  );
42606
42440
  useEffect(() => {
42607
42441
  const cancel = (e2) => {
42608
- e2.preventDefault(), close();
42442
+ e2.preventDefault(), e2.stopPropagation(), close();
42609
42443
  };
42610
42444
  return dialogRef.current?.addEventListener("cancel", cancel, { capture: !0 }), () => {
42611
42445
  dialogRef.current?.removeEventListener("cancel", cancel, { capture: !0 });
@@ -42677,7 +42511,11 @@ var xstate_cjsExports = /* @__PURE__ */ requireXstate_cjs();
42677
42511
  function _update$1(current, update) {
42678
42512
  return update.map((next) => {
42679
42513
  const existing = current.find((n2) => n2.id === next.id);
42680
- return existing && existing.type === next.type && deepEqual(existing.hidden ?? !1, next.hidden ?? !1) && deepEqual(existing.source, next.source) && deepEqual(existing.sourceHandle ?? null, next.sourceHandle ?? null) && deepEqual(existing.target, next.target) && deepEqual(existing.targetHandle ?? null, next.targetHandle ?? null) && deepEqual(existing.zIndex ?? 0, next.zIndex ?? 0) && deepEqual(existing.data, next.data) ? existing : next;
42514
+ return existing && deepEqual(existing.type, next.type) ? deepEqual(existing.hidden ?? !1, next.hidden ?? !1) && deepEqual(existing.source, next.source) && deepEqual(existing.sourceHandle ?? null, next.sourceHandle ?? null) && deepEqual(existing.target, next.target) && deepEqual(existing.targetHandle ?? null, next.targetHandle ?? null) && deepEqual(existing.zIndex ?? 0, next.zIndex ?? 0) && deepEqual(existing.data, next.data) ? existing : {
42515
+ ...y$2(existing, ["hidden", "zIndex"]),
42516
+ ...next,
42517
+ data: next.data
42518
+ } : next;
42681
42519
  });
42682
42520
  }
42683
42521
  function updateEdges(current, update) {
@@ -42686,10 +42524,16 @@ function updateEdges(current, update) {
42686
42524
  function _update(current, updated) {
42687
42525
  return updated.map((update) => {
42688
42526
  const existing = current.find((n2) => n2.id === update.id);
42689
- if (existing) {
42527
+ if (existing && deepEqual(existing.type, update.type)) {
42690
42528
  const { width: existingWidth, height: existingHeight } = getNodeDimensions(existing);
42691
- if (deepEqual(existing.type, update.type) && deepEqual(existingWidth, update.initialWidth) && deepEqual(existingHeight, update.initialHeight) && deepEqual(existing.parentId ?? null, update.parentId ?? null) && deepEqual(existing.hidden ?? !1, update.hidden ?? !1) && deepEqual(existing.zIndex ?? 0, update.zIndex ?? 0) && deepEqual(existing.position, update.position) && deepEqual(existing.data, update.data))
42692
- return existing;
42529
+ return deepEqual(existingWidth, update.initialWidth) && deepEqual(existingHeight, update.initialHeight) && deepEqual(existing.parentId ?? null, update.parentId ?? null) && deepEqual(existing.hidden ?? !1, update.hidden ?? !1) && deepEqual(existing.zIndex ?? 0, update.zIndex ?? 0) && deepEqual(existing.position, update.position) && deepEqual(existing.data, update.data) ? existing : {
42530
+ ...y$2(existing, ["measured", "parentId", "hidden", "zIndex"]),
42531
+ ...update,
42532
+ // Force dimensions from update
42533
+ width: update.initialWidth,
42534
+ height: update.initialHeight,
42535
+ data: update.data
42536
+ };
42693
42537
  }
42694
42538
  return update;
42695
42539
  });
@@ -42697,6 +42541,12 @@ function _update(current, updated) {
42697
42541
  function updateNodes(current, update) {
42698
42542
  return n(update) ? _update(current, update) : (update = current, (current2) => _update(current2, update));
42699
42543
  }
42544
+ const ViewPadding = {
42545
+ top: "40px",
42546
+ bottom: "16px",
42547
+ left: "16px",
42548
+ right: "16px"
42549
+ };
42700
42550
  function viewToNodesEdge$1(view) {
42701
42551
  const xynodes = [], xyedges = [], nodeLookup = /* @__PURE__ */ new Map(), queue = Queue.from(view.nodes.reduce(
42702
42552
  (acc, node2) => (nodeLookup.set(node2.id, node2), node2.parent || acc.push({ node: node2, parent: null }), acc),
@@ -42718,7 +42568,6 @@ function viewToNodesEdge$1(view) {
42718
42568
  draggable: !1,
42719
42569
  selectable: !0,
42720
42570
  focusable: !0,
42721
- deletable: !1,
42722
42571
  position,
42723
42572
  zIndex: isCompound ? ZIndexes.Compound : ZIndexes.Element,
42724
42573
  style: {
@@ -42811,7 +42660,7 @@ function viewToNodesEdge$1(view) {
42811
42660
  zIndex: ZIndexes.Edge,
42812
42661
  // selectable: selectable,
42813
42662
  // hidden: !visiblePredicate(edge),
42814
- deletable: !1,
42663
+ // deletable: false,
42815
42664
  data: {
42816
42665
  sourceFqn: edge.sourceFqn,
42817
42666
  targetFqn: edge.targetFqn,
@@ -42861,7 +42710,7 @@ const findRootSubject = (nodes) => nodes.find(
42861
42710
  const nextSubjectCenter = {
42862
42711
  x: nextSubjectNode.position.x + (nextSubjectNode.initialWidth ?? 0) / 2,
42863
42712
  y: nextSubjectNode.position.y + (nextSubjectNode.initialHeight ?? 0) / 2
42864
- }, currentSubjectInternalNode = xyflow2.getInternalNode(currentSubjectNode.id), currentSubjectCenter = centerXYInternalNode(currentSubjectInternalNode), existingInternalNode = xyflow2.getInternalNode(existingNode.id), existingDimensions = getNodeDimensions(existingInternalNode), nested = /* @__PURE__ */ new Set();
42713
+ }, currentSubjectInternalNode = xyflow2.getInternalNode(currentSubjectNode.id), currentSubjectCenter = centerXYInternalNode(currentSubjectInternalNode), nested = /* @__PURE__ */ new Set();
42865
42714
  return currentNodes.forEach((n2) => {
42866
42715
  if (n2.id !== existingNode.id) {
42867
42716
  if (n2.data.column === "subjects") {
@@ -42879,10 +42728,10 @@ const findRootSubject = (nodes) => nodes.find(
42879
42728
  dimmed: n2.data.column === "subjects" ? "immediate" : !0
42880
42729
  }
42881
42730
  } : {
42882
- ...y$3(n2, ["parentId"]),
42731
+ ...y$2(n2, ["parentId"]),
42883
42732
  position: {
42884
- x: currentSubjectCenter.x - existingDimensions.width / 2,
42885
- y: currentSubjectCenter.y - existingDimensions.height / 2
42733
+ x: currentSubjectCenter.x - n2.initialWidth / 2,
42734
+ y: currentSubjectCenter.y - n2.initialHeight / 2
42886
42735
  },
42887
42736
  zIndex: ZIndexes.Max,
42888
42737
  hidden: !1,
@@ -42895,10 +42744,7 @@ const findRootSubject = (nodes) => nodes.find(
42895
42744
  type: "update.xydata",
42896
42745
  xynodes: currentNodes,
42897
42746
  xyedges: []
42898
- }), zoom2 = Math.min(
42899
- zoom2,
42900
- nextviewport.zoom
42901
- ), await delay$1(175), next.xynodes = next.xynodes.map(Base.setDimmed(!1)), signal.aborted || (await xyflow2.setCenter(currentSubjectCenter.x, currentSubjectCenter.y, { zoom: zoom2, duration: 350 }), await xyflow2.setCenter(nextSubjectCenter.x, nextSubjectCenter.y, { zoom: zoom2 })), updateXYData();
42747
+ }), await delay$1(120), next.xynodes = next.xynodes.map(Base.setDimmed(!1)), signal.aborted || (await xyflow2.setCenter(currentSubjectCenter.x, currentSubjectCenter.y, { zoom: zoom2, duration: 300 }), await xyflow2.setCenter(nextSubjectCenter.x, nextSubjectCenter.y, { zoom: zoom2 })), updateXYData();
42902
42748
  }), relationshipsBrowserLogic = xstate_cjsExports.setup({
42903
42749
  types: {
42904
42750
  context: {},
@@ -43148,7 +42994,7 @@ const findRootSubject = (nodes) => nodes.find(
43148
42994
  xynodes: event.output.xynodes,
43149
42995
  xyedges: event.output.xyedges,
43150
42996
  navigateFromNode: null
43151
- }), enqueue.raise({ type: "fitDiagram" }, { id: "fitDiagram", delay: 50 });
42997
+ }), enqueue.raise({ type: "fitDiagram", duration: 200 }, { id: "fitDiagram", delay: 50 });
43152
42998
  for (let i2 = 0; i2 < 6; i2++)
43153
42999
  enqueue.raise({ type: "xyflow.updateNodeInternals" }, { delay: 100 + i2 * 100 });
43154
43000
  })
@@ -43631,7 +43477,7 @@ const relationshipDetailsLogic = xstate_cjsExports.setup({
43631
43477
  invariant$2(xyflow2, "xyflow is not initialized"), invariant$2(xystore, "xystore is not initialized"), bounds ??= context2.bounds;
43632
43478
  const maxZoom = Math.max(xyflow2.getZoom(), 1);
43633
43479
  if (bounds) {
43634
- const { width, height } = xystore.getState(), viewport = getViewportForBounds$1(bounds, width, height, MinZoom, maxZoom, 0.1);
43480
+ const { width, height } = xystore.getState(), viewport = getViewportForBounds(bounds, width, height, MinZoom, maxZoom, 0.1);
43635
43481
  xyflow2.setViewport(viewport, duration > 0 ? { duration } : void 0);
43636
43482
  } else
43637
43483
  xyflow2.fitView({
@@ -44133,7 +43979,7 @@ const RelationshipEdge = customEdge((props) => {
44133
43979
  data: { navigateTo }
44134
43980
  } = props, [svgPath, labelX, labelY] = getBezierPath(props), diagram = useDiagram();
44135
43981
  return /* @__PURE__ */ jsxs(EdgeContainer, { ...props, children: [
44136
- /* @__PURE__ */ jsx(EdgePath, { ...props, svgPath }),
43982
+ /* @__PURE__ */ jsx(EdgePath, { edgeProps: props, svgPath }),
44137
43983
  /* @__PURE__ */ jsx(
44138
43984
  EdgeLabelContainer,
44139
43985
  {
@@ -44362,9 +44208,7 @@ const scrollArea$1 = css({
44362
44208
  edge,
44363
44209
  view
44364
44210
  }) => {
44365
- const browser = useRelationshipDetails(), viewport = useRef(null);
44366
- useMantinePortalProps(), useComputedColorScheme();
44367
- const edgeSource$1 = view.nodes.find((n2) => n2.id === edge.source), edgeTarget$1 = view.nodes.find((n2) => n2.id === edge.target), edges = view.edges.flatMap((edge2) => {
44211
+ const browser = useRelationshipDetails(), viewport = useRef(null), edgeSource$1 = view.nodes.find((n2) => n2.id === edge.source), edgeTarget$1 = view.nodes.find((n2) => n2.id === edge.target), edges = view.edges.flatMap((edge2) => {
44368
44212
  const source = view.nodes.find((n2) => n2.id === edge2.source), target = view.nodes.find((n2) => n2.id === edge2.target);
44369
44213
  return source && target ? {
44370
44214
  id: edge2.id,
@@ -44475,27 +44319,28 @@ function RelationshipDetails({ actorRef }) {
44475
44319
  return initialRef.current == null && (initialRef.current = {
44476
44320
  defaultNodes: [],
44477
44321
  defaultEdges: []
44478
- }), /* @__PURE__ */ jsx(RelationshipDetailsActorContext.Provider, { value: actorRef, children: /* @__PURE__ */ jsxs(ReactFlowProvider, { ...initialRef.current, children: [
44479
- /* @__PURE__ */ jsx(LayoutGroup, { id: actorRef.sessionId, inherit: !1, children: /* @__PURE__ */ jsx(AnimatePresence, { children: /* @__PURE__ */ jsx(RelationshipDetailsInner, {}) }) }),
44480
- /* @__PURE__ */ jsx(SyncRelationshipDetailsXYFlow, {})
44481
- ] }) });
44322
+ }), /* @__PURE__ */ jsx(RelationshipDetailsActorContext.Provider, { value: actorRef, children: /* @__PURE__ */ jsx(ReactFlowProvider, { ...initialRef.current, children: /* @__PURE__ */ jsx(LayoutGroup, { id: actorRef.sessionId, inherit: !1, children: /* @__PURE__ */ jsxs(AnimatePresence, { children: [
44323
+ /* @__PURE__ */ jsx(RelationshipDetailsInner, {}, "xyflow"),
44324
+ /* @__PURE__ */ jsx(SyncRelationshipDetailsXYFlow, {}, "sync")
44325
+ ] }) }) }) });
44482
44326
  }
44483
44327
  const selectSubject = (state) => ({
44484
44328
  ...state.context.subject,
44485
44329
  viewId: state.context.viewId
44486
- });
44487
- function SyncRelationshipDetailsXYFlow() {
44330
+ }), SyncRelationshipDetailsXYFlow = memo$2(() => {
44488
44331
  const actor = useRelationshipDetailsActor(), subject = xstateReact_cjsExports.useSelector(actor, selectSubject, deepEqual), likec4model = useLikeC4Model$1(!0), view = likec4model.findView(subject.viewId) ?? null, data = useMemo(() => {
44489
44332
  let data2;
44490
- if ("edgeId" in subject) {
44333
+ if ("edgeId" in subject && n$5(subject.edgeId)) {
44491
44334
  invariant$2(view, `view ${subject.viewId} not found`);
44492
44335
  const edge = nonNullable(view.findEdge(subject.edgeId), `edge ${subject.edgeId} not found in ${subject.viewId}`);
44493
44336
  data2 = computeEdgeDetailsViewData([edge.id], view);
44494
- } else
44337
+ } else if (subject.source && subject.target)
44495
44338
  data2 = computeRelationshipDetailsViewData({
44496
44339
  source: likec4model.element(subject.source),
44497
44340
  target: likec4model.element(subject.target)
44498
44341
  });
44342
+ else
44343
+ return null;
44499
44344
  return layoutRelationshipDetails(data2, view);
44500
44345
  }, [
44501
44346
  subject,
@@ -44505,10 +44350,9 @@ function SyncRelationshipDetailsXYFlow() {
44505
44350
  return useEffect(() => {
44506
44351
  instance.viewportInitialized && actor.send({ type: "xyflow.init", instance, store });
44507
44352
  }, [store, instance.viewportInitialized, actor]), useEffect(() => {
44508
- actor.send({ type: "update.layoutData", data });
44353
+ data !== null && actor.send({ type: "update.layoutData", data });
44509
44354
  }, [data, actor]), null;
44510
- }
44511
- const selector$3 = ({ context: context2 }) => ({
44355
+ }), selector$3 = ({ context: context2 }) => ({
44512
44356
  // subject: context.subject,
44513
44357
  // view: state.context.view,
44514
44358
  initialized: context2.initialized.xydata && context2.initialized.xyflow,
@@ -44587,7 +44431,8 @@ const selector$3 = ({ context: context2 }) => ({
44587
44431
  const { subject, viewId } = useRelationshipDetailsState(topLeftPanelselector, deepEqual), view = useLikeC4Model$1(!0).findView(viewId);
44588
44432
  if (!view || !view.isDiagram())
44589
44433
  return null;
44590
- let edge = "edgeId" in subject ? view.findEdge(subject.edgeId) : ifind(view.edges(), (e2) => e2.source.element?.id === subject.source && e2.target.element?.id === subject.target) ?? ifind(view.edges(), (e2) => (e2.source.element?.id === subject.source || isAncestor(e2.source.element?.id ?? "--", subject.source)) && (e2.target.element?.id === subject.target || isAncestor(e2.target.element?.id ?? "", subject.target)));
44434
+ const edges = [...view.edges()];
44435
+ let edge = "edgeId" in subject && n$5(subject.edgeId) ? edges.find((e2) => e2.id === subject.edgeId) : f(edges, (e2) => e2.source.element?.id === subject.source && e2.target.element?.id === subject.target) || f(edges, (e2) => (e2.source.element?.id === subject.source || isAncestor(e2.source.element?.id ?? "--", subject.source ?? "__")) && (e2.target.element?.id === subject.target || isAncestor(e2.target.element?.id ?? "", subject.target ?? "__")));
44591
44436
  return edge ? /* @__PURE__ */ jsx(TopLeftPanelInner, { edge: edge.$edge, view: view.$view }) : null;
44592
44437
  }), TopLeftPanelInner = ({ edge, view }) => {
44593
44438
  const browser = useRelationshipDetails(), edgeId = edge.id, [historyEdgeId, historyOps, { history, current }] = useStateHistory(edge.id);
@@ -45063,17 +44908,17 @@ function useIsPickViewActive() {
45063
44908
  }
45064
44909
  function useCloseSearchAndNavigateTo() {
45065
44910
  const diagram = useDiagram(), close = useCloseSearch();
45066
- return useCallbackRef((viewId, fromElementFqn) => {
44911
+ return useCallback((viewId, fromElementFqn) => {
45067
44912
  close(() => {
45068
44913
  fromElementFqn ??= $pickView.get()?.elementFqn, setPickView(null);
45069
44914
  const fromNode = fromElementFqn ? diagram.getContext().view.nodes.find((n2) => DiagramNode.modelRef(n2) === fromElementFqn)?.id : void 0;
45070
- if (diagram.currentView.id === viewId && fromNode) {
45071
- diagram.focusNode(fromNode);
44915
+ if (diagram.currentView.id !== viewId) {
44916
+ diagram.navigateTo(viewId, fromNode);
45072
44917
  return;
45073
44918
  }
45074
- diagram.navigateTo(viewId, fromNode);
44919
+ fromNode && diagram.focusNode(fromNode);
45075
44920
  });
45076
- });
44921
+ }, [close, diagram]);
45077
44922
  }
45078
44923
  function stopAndPrevent(e2) {
45079
44924
  e2.stopPropagation(), e2.preventDefault();
@@ -45113,14 +44958,14 @@ css({
45113
44958
  opacity: 0.85
45114
44959
  }
45115
44960
  });
45116
- const NothingFound = () => /* @__PURE__ */ jsx(Box$1, { className: emptyBoX, children: "Nothing found" });
44961
+ const NothingFound = () => /* @__PURE__ */ jsx(Box, { className: emptyBoX, children: "Nothing found" });
45117
44962
  function ViewsColumn() {
45118
44963
  const search = useNormalizedSearch();
45119
44964
  let views = [...useLikeC4Model$1(!0).views()];
45120
44965
  return search && (search.startsWith("kind:") ? views = [] : views = views.filter((view) => search.startsWith("#") ? view.tags.some((tag) => tag.toLocaleLowerCase().includes(search.slice(1))) : (view.title ?? "" + view.$view.description ?? "").toLocaleLowerCase().includes(search))), /* @__PURE__ */ jsxs(
45121
44966
  Stack,
45122
44967
  {
45123
- renderRoot: (props) => /* @__PURE__ */ jsx(m$2.div, { layout: !0, ...props }),
44968
+ renderRoot: (props) => /* @__PURE__ */ jsx(MotionDiv, { layout: !0, ...props }),
45124
44969
  gap: 8,
45125
44970
  "data-likec4-search-views": !0,
45126
44971
  onKeyDown: (e2) => {
@@ -45145,7 +44990,7 @@ function ViewsColumn() {
45145
44990
  }
45146
44991
  }
45147
44992
  ) }),
45148
- views.map((view, i2) => /* @__PURE__ */ jsx(m$2.div, { layoutId: `@view${view.id}`, children: /* @__PURE__ */ jsx(
44993
+ views.map((view, i2) => /* @__PURE__ */ jsx(MotionDiv, { layoutId: `@view${view.id}`, children: /* @__PURE__ */ jsx(
45149
44994
  ViewButton,
45150
44995
  {
45151
44996
  view,
@@ -45182,7 +45027,7 @@ function ViewButton({ className, view, loop = !1, search, ...props }) {
45182
45027
  }),
45183
45028
  children: [
45184
45029
  /* @__PURE__ */ jsx(ThemeIcon, { variant: "transparent", className: btn$2.icon, children: isDeploymentView(view) ? /* @__PURE__ */ jsx(IconStack2, { stroke: 1.8 }) : /* @__PURE__ */ jsx(IconZoomScan, { stroke: 1.8 }) }),
45185
- /* @__PURE__ */ jsxs(Box$1, { style: { flexGrow: 1 }, children: [
45030
+ /* @__PURE__ */ jsxs(Box, { style: { flexGrow: 1 }, children: [
45186
45031
  /* @__PURE__ */ jsxs(Group, { gap: "xs", wrap: "nowrap", align: "center", children: [
45187
45032
  /* @__PURE__ */ jsx(Highlight, { component: "div", highlight: search, className: btn$2.title, children: view.title || "untitled" }),
45188
45033
  isCurrentView && /* @__PURE__ */ jsx(Badge, { size: "xs", fz: 9, radius: "sm", children: "current" })
@@ -45204,17 +45049,12 @@ function ViewButton({ className, view, loop = !1, search, ...props }) {
45204
45049
  }
45205
45050
  const btn$1 = buttonsva();
45206
45051
  function ElementsColumn() {
45207
- const search = useNormalizedSearch(), model = useLikeC4Model$1(!0), {
45208
- all,
45209
- byid,
45210
- roots: data
45211
- } = useMemo(() => {
45052
+ const search = useNormalizedSearch(), model = useLikeC4Model$1(!0), data = useMemo(() => {
45212
45053
  const searchTerms = search.split(".");
45213
45054
  let elements;
45214
45055
  n$3(search) || search === "kind:" ? elements = model.elements() : elements = ifilter(model.elements(), (element) => search.startsWith("kind:") ? element.kind.toLocaleLowerCase().startsWith(search.slice(5)) : search.startsWith("#") ? element.tags.some((tag) => tag.toLocaleLowerCase().includes(search.slice(1))) : (element.title + " " + element.id + " " + (element.description ?? "")).toLocaleLowerCase().includes(search));
45215
- const { all: all2, roots } = C(
45216
- elements,
45217
- toArray(),
45056
+ const byid = {}, { all, roots } = C(
45057
+ [...elements],
45218
45058
  sortParentsFirst,
45219
45059
  l$4((acc, element) => {
45220
45060
  const treeItem = {
@@ -45223,7 +45063,9 @@ function ElementsColumn() {
45223
45063
  element,
45224
45064
  searchTerms,
45225
45065
  children: []
45226
- }, parent = acc.all.findLast((root2) => isAncestor(root2.value, treeItem.value));
45066
+ };
45067
+ byid[treeItem.value] = treeItem;
45068
+ const parent = acc.all.findLast((root2) => isAncestor(root2.value, treeItem.value));
45227
45069
  return parent ? (parent.children.push(treeItem), parent.children.length > 1 && parent.children.sort(sortByLabel)) : acc.roots.push(treeItem), acc.all.push(treeItem), acc;
45228
45070
  }, {
45229
45071
  all: [],
@@ -45231,64 +45073,74 @@ function ElementsColumn() {
45231
45073
  })
45232
45074
  );
45233
45075
  return {
45234
- all: all2,
45235
- byid: c(all2, p$2("value")),
45076
+ all,
45077
+ byid,
45236
45078
  roots: roots.sort(sortByLabel)
45237
45079
  };
45238
- }, [model, search]), tree = useTree({
45080
+ }, [model, search]), handleClick = useHandleElementSelection();
45081
+ return data.all.length === 0 ? /* @__PURE__ */ jsx(NothingFound, {}) : /* @__PURE__ */ jsx(ElementsTree, { data, handleClick });
45082
+ }
45083
+ const setHoveredNode = () => {
45084
+ };
45085
+ function ElementsTree({
45086
+ data: {
45087
+ all,
45088
+ byid,
45089
+ roots
45090
+ },
45091
+ handleClick
45092
+ }) {
45093
+ const tree = useTree({
45239
45094
  multiple: !1
45240
45095
  });
45241
- useEffect(() => {
45096
+ tree.setHoveredNode = setHoveredNode, useEffect(() => {
45242
45097
  tree.collapseAllNodes();
45243
45098
  for (const nd of all)
45244
45099
  nd.children.length > 0 && tree.expand(nd.value);
45245
45100
  }, [all]);
45246
- const handleClick = useHandleElementSelection();
45247
- return /* @__PURE__ */ jsxs(Fragment$1, { children: [
45248
- data.length === 0 && /* @__PURE__ */ jsx(NothingFound, {}),
45249
- /* @__PURE__ */ jsx(
45250
- Tree,
45251
- {
45252
- "data-likec4-search-elements": !0,
45253
- allowRangeSelection: !1,
45254
- clearSelectionOnOutsideClick: !0,
45255
- selectOnClick: !1,
45256
- tree,
45257
- data,
45258
- levelOffset: "lg",
45259
- classNames: {
45260
- root: treeRoot,
45261
- node: cx(focusable, treeNode),
45262
- label: treeLabel,
45263
- subtree: treeSubtree
45264
- },
45265
- onKeyDownCapture: (e2) => {
45266
- const target = e2.target, id2 = target.getAttribute("data-value"), node2 = !!id2 && byid[id2];
45267
- if (node2) {
45268
- if (e2.key === "ArrowUp") {
45269
- id2 === data[0]?.value && (stopAndPrevent(e2), moveFocusToSearchInput());
45270
- return;
45271
- }
45272
- if (e2.key === "ArrowRight") {
45273
- if (node2.children.length > 0 && tree.expandedState[id2] === !1)
45274
- return;
45275
- const maxY = (e2.target.querySelector(".mantine-Tree-label") ?? target).getBoundingClientRect().y, viewButtons = [...document.querySelectorAll(
45276
- `[data-likec4-search-views] .${focusable}`
45277
- )];
45278
- let view = viewButtons.length > 1 ? viewButtons.find((el, i2, all2) => centerY(el) > maxY || i2 === all2.length - 1) : null;
45279
- view ??= d(viewButtons), view && (stopAndPrevent(e2), view.focus());
45280
- return;
45281
- }
45282
- if (e2.key === " " || e2.key === "Enter") {
45283
- stopAndPrevent(e2), handleClick(node2.element);
45284
- return;
45285
- }
45286
- }
45287
- },
45288
- renderNode: ElementTreeNode
45101
+ const onKeyDownCapture = useCallbackRef((e2) => {
45102
+ const target = e2.target, id2 = target.getAttribute("data-value"), node2 = !!id2 && byid[id2];
45103
+ if (node2) {
45104
+ if (e2.key === "ArrowUp") {
45105
+ id2 === roots[0]?.value && (stopAndPrevent(e2), moveFocusToSearchInput());
45106
+ return;
45289
45107
  }
45290
- )
45291
- ] });
45108
+ if (e2.key === "ArrowRight") {
45109
+ if (node2.children.length > 0 && tree.expandedState[id2] === !1)
45110
+ return;
45111
+ const maxY = (e2.target.querySelector(".mantine-Tree-label") ?? target).getBoundingClientRect().y, viewButtons = [...document.querySelectorAll(
45112
+ `[data-likec4-search-views] .${focusable}`
45113
+ )];
45114
+ let view = viewButtons.length > 1 ? viewButtons.find((el, i2, all2) => centerY(el) > maxY || i2 === all2.length - 1) : null;
45115
+ view ??= d(viewButtons), view && (stopAndPrevent(e2), view.focus());
45116
+ return;
45117
+ }
45118
+ if (e2.key === " " || e2.key === "Enter") {
45119
+ stopAndPrevent(e2), handleClick(node2.element);
45120
+ return;
45121
+ }
45122
+ }
45123
+ });
45124
+ return /* @__PURE__ */ jsx(
45125
+ Tree,
45126
+ {
45127
+ "data-likec4-search-elements": !0,
45128
+ allowRangeSelection: !1,
45129
+ clearSelectionOnOutsideClick: !0,
45130
+ selectOnClick: !1,
45131
+ tree,
45132
+ data: roots,
45133
+ levelOffset: "lg",
45134
+ classNames: {
45135
+ root: treeRoot,
45136
+ node: cx(focusable, treeNode),
45137
+ label: treeLabel,
45138
+ subtree: treeSubtree
45139
+ },
45140
+ onKeyDownCapture,
45141
+ renderNode: ElementTreeNode
45142
+ }
45143
+ );
45292
45144
  }
45293
45145
  function ElementTreeNode({ node: node2, elementProps, hasChildren, expanded }) {
45294
45146
  const { element, searchTerms } = node2, elementIcon$12 = IconOrShapeRenderer({
@@ -45300,7 +45152,7 @@ function ElementTreeNode({ node: node2, elementProps, hasChildren, expanded }) {
45300
45152
  },
45301
45153
  className: cx(btn$1.icon, elementIcon)
45302
45154
  }), views = [...element.views()], handleClick = useHandleElementSelection(), key2 = `@tree.${node2.value}`;
45303
- return /* @__PURE__ */ jsxs(m$2.div, { layoutId: key2, ...elementProps, children: [
45155
+ return /* @__PURE__ */ jsxs(MotionDiv, { layoutId: key2, ...elementProps, children: [
45304
45156
  /* @__PURE__ */ jsx(
45305
45157
  ActionIcon$1,
45306
45158
  {
@@ -45327,7 +45179,7 @@ function ElementTreeNode({ node: node2, elementProps, hasChildren, expanded }) {
45327
45179
  /* @__PURE__ */ jsxs(
45328
45180
  UnstyledButton,
45329
45181
  {
45330
- component: m$2.button,
45182
+ component: MotionButton,
45331
45183
  layout: !0,
45332
45184
  tabIndex: -1,
45333
45185
  className: clsx(btn$1.root, "group", "likec4-element-button"),
@@ -45361,11 +45213,11 @@ function ElementTreeNode({ node: node2, elementProps, hasChildren, expanded }) {
45361
45213
  ]
45362
45214
  }
45363
45215
  )
45364
- ] }, key2);
45216
+ ] });
45365
45217
  }
45366
45218
  function useHandleElementSelection() {
45367
45219
  const navigateTo = useCloseSearchAndNavigateTo();
45368
- return useCallbackRef((element) => {
45220
+ return useCallback((element) => {
45369
45221
  const views = [...element.views()];
45370
45222
  if (views.length === 0)
45371
45223
  return;
@@ -45380,7 +45232,7 @@ function useHandleElementSelection() {
45380
45232
  scoped,
45381
45233
  others
45382
45234
  });
45383
- });
45235
+ }, [setPickView, navigateTo]);
45384
45236
  }
45385
45237
  const backdrop = css({
45386
45238
  position: "fixed",
@@ -45585,7 +45437,7 @@ function LikeC4SearchInput() {
45585
45437
  }
45586
45438
  );
45587
45439
  }
45588
- function LikeC4Search() {
45440
+ const LikeC4Search = memo$2(() => {
45589
45441
  const [searchOpened, searchOps] = useDisclosure(!1);
45590
45442
  useHotkeys([
45591
45443
  ["mod+k", () => searchOps.toggle(), {
@@ -45609,8 +45461,8 @@ function LikeC4Search() {
45609
45461
  }
45610
45462
  }
45611
45463
  ),
45612
- /* @__PURE__ */ jsx(Portal, { ...portalProps, children: /* @__PURE__ */ jsx(RemoveScroll, { enabled: searchOpened, children: /* @__PURE__ */ jsx(AnimatePresence, { onExitComplete, children: searchOpened && /* @__PURE__ */ jsxs(Fragment$1, { children: [
45613
- /* @__PURE__ */ jsx(
45464
+ /* @__PURE__ */ jsx(Portal, { ...portalProps, reuseTargetNode: !0, children: /* @__PURE__ */ jsxs(AnimatePresence, { onExitComplete, children: [
45465
+ searchOpened && /* @__PURE__ */ jsx(
45614
45466
  m$2.div,
45615
45467
  {
45616
45468
  className: backdrop,
@@ -45618,24 +45470,25 @@ function LikeC4Search() {
45618
45470
  animate: {
45619
45471
  opacity: 1,
45620
45472
  transition: {
45621
- duration: 0.1
45473
+ duration: 0.13
45622
45474
  }
45623
45475
  },
45624
45476
  exit: {
45625
45477
  opacity: 0,
45626
45478
  transition: {
45627
- duration: 0.075
45479
+ duration: 0.13
45628
45480
  }
45629
45481
  }
45630
45482
  },
45631
45483
  "backdrop"
45632
45484
  ),
45633
- /* @__PURE__ */ jsx(LikeC4SearchOverlay, {}, "overlay")
45634
- ] }) }) }) })
45485
+ searchOpened && /* @__PURE__ */ jsx(LikeC4SearchOverlay, {}, "overlay")
45486
+ ] }) })
45635
45487
  ] });
45636
- }
45637
- function LikeC4SearchOverlay() {
45638
- const close = useCloseSearch(), ref = useFocusTrap();
45488
+ });
45489
+ LikeC4Search.displayName = "LikeC4Search";
45490
+ const LikeC4SearchOverlay = () => {
45491
+ const close = useCloseSearch(), pickViewActive = useIsPickViewActive();
45639
45492
  return useWindowEvent(
45640
45493
  "keydown",
45641
45494
  (event) => {
@@ -45647,9 +45500,9 @@ function LikeC4SearchOverlay() {
45647
45500
  ), /* @__PURE__ */ jsxs(
45648
45501
  m$2.div,
45649
45502
  {
45650
- ref,
45651
45503
  className: root,
45652
- "data-likec4-search": !0,
45504
+ "data-likec4-search": "true",
45505
+ initial: !1,
45653
45506
  animate: {
45654
45507
  opacity: 1,
45655
45508
  scale: 1,
@@ -45658,14 +45511,15 @@ function LikeC4SearchOverlay() {
45658
45511
  exit: {
45659
45512
  opacity: 0,
45660
45513
  scale: 0.9,
45514
+ translateY: -30,
45661
45515
  transition: {
45662
- duration: 0.1
45516
+ duration: 0.13
45663
45517
  }
45664
45518
  },
45665
45519
  children: [
45666
45520
  /* @__PURE__ */ jsxs(Group, { wrap: "nowrap", children: [
45667
- /* @__PURE__ */ jsx(Box$1, { flex: 1, px: "sm", children: /* @__PURE__ */ jsx(LikeC4SearchInput, {}) }),
45668
- /* @__PURE__ */ jsx(Box$1, { flex: "0 0 auto", children: /* @__PURE__ */ jsx(
45521
+ /* @__PURE__ */ jsx(Box, { flex: 1, px: "sm", children: /* @__PURE__ */ jsx(LikeC4SearchInput, {}) }),
45522
+ /* @__PURE__ */ jsx(Box, { flex: "0 0 auto", children: /* @__PURE__ */ jsx(
45669
45523
  ActionIcon$1,
45670
45524
  {
45671
45525
  size: "lg",
@@ -45684,12 +45538,12 @@ function LikeC4SearchOverlay() {
45684
45538
  /* @__PURE__ */ jsxs(
45685
45539
  Grid,
45686
45540
  {
45687
- style: {
45541
+ className: css({
45688
45542
  containerName: "likec4-search-elements",
45689
45543
  containerType: "size",
45690
45544
  overflow: "hidden",
45691
45545
  flexGrow: 1
45692
- },
45546
+ }),
45693
45547
  children: [
45694
45548
  /* @__PURE__ */ jsx(GridCol, { span: 6, children: /* @__PURE__ */ jsx(
45695
45549
  ScrollArea,
@@ -45714,12 +45568,11 @@ function LikeC4SearchOverlay() {
45714
45568
  ]
45715
45569
  }
45716
45570
  ),
45717
- /* @__PURE__ */ jsx(Box$1, {}),
45718
- /* @__PURE__ */ jsx(PickView, {})
45571
+ pickViewActive && /* @__PURE__ */ jsx(PickView, {})
45719
45572
  ]
45720
45573
  }
45721
45574
  );
45722
- }
45575
+ };
45723
45576
  function PickView() {
45724
45577
  const pickview$1 = usePickView(), focusTrapRef = useFocusTrap(!!pickview$1);
45725
45578
  return useFocusReturn({
@@ -46305,7 +46158,7 @@ const autolayoutButton = css({
46305
46158
  enableReadOnly,
46306
46159
  enableVscode
46307
46160
  } = useEnabledFeatures(), notReadOnly = !enableReadOnly, portalProps = useMantinePortalProps(), ControlsLayout = useControlsCustomLayout() ?? ControlsDefaultLayout;
46308
- return /* @__PURE__ */ jsx(LayoutGroup, { inherit: !1, children: /* @__PURE__ */ jsx(AnimatePresence, { initial: !1, mode: "wait", children: isNotActiveWalkthrough && /* @__PURE__ */ jsx(
46161
+ return /* @__PURE__ */ jsx(Fragment$1, { children: isNotActiveWalkthrough && /* @__PURE__ */ jsx(
46309
46162
  ControlsLayout,
46310
46163
  {
46311
46164
  burgerMenu: onBurgerMenuClick && /* @__PURE__ */ jsx(
@@ -46347,7 +46200,7 @@ const autolayoutButton = css({
46347
46200
  ) })
46348
46201
  ] })
46349
46202
  }
46350
- ) }) });
46203
+ ) });
46351
46204
  }), SyncLayoutBadge = () => useDiagramSyncLayoutState((s2) => s2.hasTag("pending")) ? /* @__PURE__ */ jsx(Badge, { color: "pink", radius: "xs", size: "xs", variant: "light", leftSection: /* @__PURE__ */ jsx(Loader, { color: "orange", size: 8 }), children: "Pending..." }) : null, card$1 = css({
46352
46205
  cursor: "default",
46353
46206
  minWidth: 200,
@@ -47823,7 +47676,7 @@ function mergeXYNodesEdges({ context: context2, event }) {
47823
47676
  if (existing) {
47824
47677
  const { width: existingWidth, height: existingHeight } = getNodeDimensions(existing);
47825
47678
  return deepEqual(existing.type, update.type) && deepEqual(existingWidth, update.initialWidth) && deepEqual(existingHeight, update.initialHeight) && deepEqual(existing.hidden ?? !1, update.hidden ?? !1) && deepEqual(existing.position, update.position) && deepEqual(existing.data, update.data) && deepEqual(existing.parentId ?? null, update.parentId ?? null) ? existing : {
47826
- ...y$3(existing, ["measured", "parentId"]),
47679
+ ...y$2(existing, ["measured", "parentId"]),
47827
47680
  ...update,
47828
47681
  // Force dimensions from update
47829
47682
  width: update.initialWidth,
@@ -48311,7 +48164,7 @@ const diagramMachine = xstate_cjsExports.setup({
48311
48164
  const {
48312
48165
  bounds = context2.view.bounds,
48313
48166
  duration = 450
48314
- } = params ?? {}, { width, height, panZoom, transform: transform2 } = context2.xystore.getState(), maxZoom = Math.max(1, transform2[2]), viewport = getViewportForBounds$1(
48167
+ } = params ?? {}, { width, height, panZoom, transform: transform2 } = context2.xystore.getState(), maxZoom = Math.max(1, transform2[2]), viewport = getViewportForBounds(
48315
48168
  bounds,
48316
48169
  width,
48317
48170
  height,
@@ -48322,7 +48175,7 @@ const diagramMachine = xstate_cjsExports.setup({
48322
48175
  viewport.x = Math.round(viewport.x), viewport.y = Math.round(viewport.y), panZoom?.setViewport(viewport, duration > 0 ? { duration } : void 0);
48323
48176
  },
48324
48177
  "xyflow:fitFocusedBounds": ({ context: context2 }) => {
48325
- const { bounds, duration = 450 } = focusedBounds({ context: context2 }), { width, height, panZoom, transform: transform2 } = context2.xystore.getState(), maxZoom = Math.max(1, transform2[2]), viewport = getViewportForBounds$1(
48178
+ const { bounds, duration = 450 } = focusedBounds({ context: context2 }), { width, height, panZoom, transform: transform2 } = context2.xystore.getState(), maxZoom = Math.max(1, transform2[2]), viewport = getViewportForBounds(
48326
48179
  bounds,
48327
48180
  width,
48328
48181
  height,
@@ -48497,7 +48350,6 @@ const diagramMachine = xstate_cjsExports.setup({
48497
48350
  type: "xyflow:fitDiagram",
48498
48351
  params: { duration: 0 }
48499
48352
  },
48500
- "startSyncLayout",
48501
48353
  xstate_cjsExports.assign(({ context: context2 }) => ({
48502
48354
  navigationHistory: {
48503
48355
  currentIndex: 0,
@@ -48507,7 +48359,8 @@ const diagramMachine = xstate_cjsExports.setup({
48507
48359
  viewport: { ...context2.xyflow.getViewport() }
48508
48360
  }]
48509
48361
  }
48510
- }))
48362
+ })),
48363
+ "startSyncLayout"
48511
48364
  ],
48512
48365
  target: "ready"
48513
48366
  }, {
@@ -48873,7 +48726,7 @@ const diagramMachine = xstate_cjsExports.setup({
48873
48726
  "update.view": {
48874
48727
  actions: xstate_cjsExports.enqueueActions(({ enqueue, context: context2, event }) => {
48875
48728
  const { fromNode, toNode } = findCorrespondingNode(context2, event);
48876
- fromNode && toNode ? (enqueue({
48729
+ enqueue(fromNode && toNode ? {
48877
48730
  type: "xyflow:alignNodeFromToAfterNavigate",
48878
48731
  params: {
48879
48732
  fromNode: fromNode.id,
@@ -48882,13 +48735,13 @@ const diagramMachine = xstate_cjsExports.setup({
48882
48735
  y: toNode.position[1]
48883
48736
  }
48884
48737
  }
48885
- }), enqueue.raise({ type: "fitDiagram" }, { id: "fitDiagram", delay: 80 })) : (enqueue({
48738
+ } : {
48886
48739
  type: "xyflow:setViewportCenter",
48887
48740
  params: getBBoxCenter(event.view.bounds)
48888
- }), enqueue.raise({ type: "fitDiagram", duration: 200 }, { id: "fitDiagram", delay: 25 })), enqueue.assign(updateNavigationHistory), enqueue.assign({
48741
+ }), enqueue.assign(updateNavigationHistory), enqueue.assign({
48889
48742
  ...mergeXYNodesEdges({ context: context2, event }),
48890
48743
  lastOnNavigate: null
48891
- }), enqueue("startSyncLayout");
48744
+ }), enqueue("startSyncLayout"), enqueue.raise({ type: "fitDiagram" }, { id: "fitDiagram", delay: 25 });
48892
48745
  }),
48893
48746
  target: "#idle"
48894
48747
  }
@@ -48997,7 +48850,9 @@ function DiagramActorProvider({
48997
48850
  diagramMachine.provide({
48998
48851
  actions: {
48999
48852
  "trigger:NavigateTo": (_, { viewId }) => {
49000
- handlersRef.current.onNavigateTo?.(viewId);
48853
+ setTimeout(() => {
48854
+ handlersRef.current.onNavigateTo?.(viewId);
48855
+ }, 30);
49001
48856
  },
49002
48857
  "trigger:OnChange": (_, params) => {
49003
48858
  handlersRef.current.onChange?.(params);
@@ -50542,15 +50397,10 @@ async function downloadAsPng({
50542
50397
  pngFilename,
50543
50398
  viewport
50544
50399
  }) {
50545
- const { toBlob } = await import("./index-iX7kahqQ.js"), {
50546
- width,
50547
- height
50548
- } = viewport.getBoundingClientRect();
50400
+ const { toBlob } = await import("./index-iX7kahqQ.js");
50549
50401
  try {
50550
50402
  const blob = await toBlob(viewport, {
50551
50403
  backgroundColor: "transparent",
50552
- width,
50553
- height,
50554
50404
  cacheBust: !0,
50555
50405
  imagePlaceholder: "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="
50556
50406
  });
@@ -50568,19 +50418,23 @@ function ExportPage() {
50568
50418
  download = !1
50569
50419
  } = useSearch$1({
50570
50420
  strict: !1
50571
- }), { viewId } = useParams({ strict: !1 }), diagram = useCurrentDiagram(), viewportRef = useRef(null), loadingOverlayRef = useRef(null), downloadedRef = useRef(!1);
50572
- if (useTransparentBackground(), useEffect(() => {
50573
- document.querySelectorAll(".react-flow__viewport").forEach((el) => {
50574
- el.style.transform = "";
50575
- });
50576
- }), useDebouncedEffect(
50421
+ }), diagram = useCurrentDiagram(), viewportRef = useRef(null), loadingOverlayRef = useRef(null), downloadedRef = useRef(!1);
50422
+ if (useTransparentBackground(), useEffect(
50423
+ () => {
50424
+ if (!viewportRef.current)
50425
+ return;
50426
+ [...viewportRef.current.querySelectorAll(".react-flow__viewport")].forEach((el) => {
50427
+ el.style.transform = "";
50428
+ });
50429
+ }
50430
+ ), useDebouncedEffect(
50577
50431
  () => {
50578
50432
  const viewport = viewportRef.current;
50579
50433
  if (!download || !viewport || !diagram)
50580
50434
  return;
50581
50435
  const loadingOverlay = loadingOverlayRef.current;
50582
50436
  loadingOverlay && (loadingOverlay.style.display = "none"), !downloadedRef.current && (downloadedRef.current = !0, downloadAsPng({
50583
- pngFilename: viewId,
50437
+ pngFilename: diagram.id,
50584
50438
  viewport
50585
50439
  }));
50586
50440
  },
@@ -50590,11 +50444,11 @@ function ExportPage() {
50590
50444
  throw notFound();
50591
50445
  const width = diagram.bounds.width + padding * 2, height = diagram.bounds.height + padding * 2;
50592
50446
  return /* @__PURE__ */ jsxs(
50593
- Box$1,
50447
+ Box,
50594
50448
  {
50595
50449
  ref: viewportRef,
50596
- className: cssExportView,
50597
- role: "presentation",
50450
+ "data-testid": "export-page",
50451
+ className: cx(cssExportView),
50598
50452
  style: {
50599
50453
  padding,
50600
50454
  minWidth: width,