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.
- package/__app__/src/main.js +989 -1135
- package/__app__/src/style.css +1 -1
- package/dist/cli/index.mjs +629 -618
- package/dist/index.mjs +1 -1
- package/dist/shared/{likec4.7Lz9HWDi.mjs → likec4.CYGgfB-B.mjs} +1 -1
- package/dist/shared/{likec4.10Nsb-Q7.mjs → likec4.DRjStDbg.mjs} +1619 -1602
- package/dist/vite-plugin/index.mjs +1 -1
- package/icons/aws/activate.js +21 -1
- package/icons/aws/alexa-for-business.js +21 -1
- package/icons/aws/amplify.js +21 -1
- package/icons/aws/apache-mxnet-on-aws.js +21 -1
- package/icons/aws/api-gateway.js +21 -1
- package/icons/aws/app-config.js +21 -1
- package/icons/aws/app-flow.js +21 -1
- package/icons/aws/app-mesh.js +21 -1
- package/icons/aws/app-runner.js +21 -1
- package/icons/aws/app-stream.js +21 -1
- package/icons/aws/app-sync.js +21 -1
- package/icons/aws/application-auto-scaling.js +21 -1
- package/icons/aws/application-composer.js +21 -1
- package/icons/aws/application-cost-profiler.js +21 -1
- package/icons/aws/application-discovery-service.js +21 -1
- package/icons/aws/application-migration-service.js +21 -1
- package/icons/aws/artifact.js +21 -1
- package/icons/aws/athena.js +21 -1
- package/icons/aws/audit-manager.js +21 -1
- package/icons/aws/augmented-ai-a2i.js +21 -1
- package/icons/aws/aurora.js +21 -1
- package/icons/aws/auto-scaling.js +21 -1
- package/icons/aws/backint-agent.js +21 -1
- package/icons/aws/backup.js +21 -1
- package/icons/aws/batch.js +21 -1
- package/icons/aws/billing-conductor.js +21 -1
- package/icons/aws/bottlerocket.js +21 -1
- package/icons/aws/braket.js +21 -1
- package/icons/aws/budgets.js +21 -1
- package/icons/aws/certificate-manager.js +21 -1
- package/icons/aws/chatbot.js +21 -1
- package/icons/aws/chime-sdk.js +21 -1
- package/icons/aws/chime-voice-connector.js +21 -1
- package/icons/aws/chime.js +21 -1
- package/icons/aws/clean-rooms.js +21 -1
- package/icons/aws/client-vpn.js +21 -1
- package/icons/aws/cloud-control-api.js +21 -1
- package/icons/aws/cloud-development-kit.js +21 -1
- package/icons/aws/cloud-directory.js +21 -1
- package/icons/aws/cloud-formation.js +21 -1
- package/icons/aws/cloud-front.js +21 -1
- package/icons/aws/cloud-hsm.js +21 -1
- package/icons/aws/cloud-map.js +21 -1
- package/icons/aws/cloud-search.js +21 -1
- package/icons/aws/cloud-shell.js +21 -1
- package/icons/aws/cloud-trail.js +21 -1
- package/icons/aws/cloud-wan.js +21 -1
- package/icons/aws/cloud-watch.js +21 -1
- package/icons/aws/cloud9.js +21 -1
- package/icons/aws/code-artifact.js +21 -1
- package/icons/aws/code-build.js +21 -1
- package/icons/aws/code-catalyst.js +21 -1
- package/icons/aws/code-commit.js +21 -1
- package/icons/aws/code-deploy.js +21 -1
- package/icons/aws/code-guru.js +21 -1
- package/icons/aws/code-pipeline.js +21 -1
- package/icons/aws/code-star.js +21 -1
- package/icons/aws/code-whisperer.js +21 -1
- package/icons/aws/cognito.js +21 -1
- package/icons/aws/command-line-interface.js +21 -1
- package/icons/aws/comprehend-medical.js +21 -1
- package/icons/aws/comprehend.js +21 -1
- package/icons/aws/compute-optimizer.js +21 -1
- package/icons/aws/config.js +21 -1
- package/icons/aws/connect.js +21 -1
- package/icons/aws/console-mobile-application.js +21 -1
- package/icons/aws/control-tower.js +21 -1
- package/icons/aws/corretto.js +21 -1
- package/icons/aws/cost-and-usage-report.js +21 -1
- package/icons/aws/cost-explorer.js +21 -1
- package/icons/aws/data-exchange.js +21 -1
- package/icons/aws/data-pipeline.js +21 -1
- package/icons/aws/data-sync.js +21 -1
- package/icons/aws/data-zone.js +21 -1
- package/icons/aws/database-migration-service.js +21 -1
- package/icons/aws/deep-composer.js +21 -1
- package/icons/aws/deep-learning-amis.js +21 -1
- package/icons/aws/deep-learning-containers.js +21 -1
- package/icons/aws/deep-lens.js +21 -1
- package/icons/aws/deep-racer.js +21 -1
- package/icons/aws/detective.js +21 -1
- package/icons/aws/dev-ops-guru.js +21 -1
- package/icons/aws/device-farm.js +21 -1
- package/icons/aws/direct-connect.js +21 -1
- package/icons/aws/directory-service.js +21 -1
- package/icons/aws/distro-for-open-telemetry.js +21 -1
- package/icons/aws/document-db.js +21 -1
- package/icons/aws/dynamo-db.js +21 -1
- package/icons/aws/ec2-auto-scaling.js +21 -1
- package/icons/aws/ec2-image-builder.js +21 -1
- package/icons/aws/ec2.js +21 -1
- package/icons/aws/ecs-anywhere.js +21 -1
- package/icons/aws/efs.js +21 -1
- package/icons/aws/eks-anywhere.js +21 -1
- package/icons/aws/eks-cloud.js +21 -1
- package/icons/aws/eks-distro.js +21 -1
- package/icons/aws/elasti-cache.js +21 -1
- package/icons/aws/elastic-beanstalk.js +21 -1
- package/icons/aws/elastic-block-store.js +21 -1
- package/icons/aws/elastic-container-registry.js +21 -1
- package/icons/aws/elastic-container-service.js +21 -1
- package/icons/aws/elastic-disaster-recovery.js +21 -1
- package/icons/aws/elastic-fabric-adapter.js +21 -1
- package/icons/aws/elastic-inference.js +21 -1
- package/icons/aws/elastic-kubernetes-service.js +21 -1
- package/icons/aws/elastic-load-balancing.js +21 -1
- package/icons/aws/elastic-transcoder.js +21 -1
- package/icons/aws/elemental-appliances-software.js +21 -1
- package/icons/aws/elemental-conductor.js +21 -1
- package/icons/aws/elemental-delta.js +21 -1
- package/icons/aws/elemental-link.js +21 -1
- package/icons/aws/elemental-live.js +21 -1
- package/icons/aws/elemental-media-connect.js +21 -1
- package/icons/aws/elemental-media-convert.js +21 -1
- package/icons/aws/elemental-media-live.js +21 -1
- package/icons/aws/elemental-media-package.js +21 -1
- package/icons/aws/elemental-media-store.js +21 -1
- package/icons/aws/elemental-media-tailor.js +21 -1
- package/icons/aws/elemental-server.js +21 -1
- package/icons/aws/emr.js +21 -1
- package/icons/aws/event-bridge.js +21 -1
- package/icons/aws/express-workflows.js +21 -1
- package/icons/aws/fargate.js +21 -1
- package/icons/aws/fault-injection-simulator.js +21 -1
- package/icons/aws/file-cache.js +21 -1
- package/icons/aws/fin-space.js +21 -1
- package/icons/aws/firewall-manager.js +21 -1
- package/icons/aws/forecast.js +21 -1
- package/icons/aws/fraud-detector.js +21 -1
- package/icons/aws/free-rtos.js +21 -1
- package/icons/aws/fsx-for-lustre.js +21 -1
- package/icons/aws/fsx-for-net-app-ontap.js +21 -1
- package/icons/aws/fsx-for-open-zfs.js +21 -1
- package/icons/aws/fsx-for-wfs.js +21 -1
- package/icons/aws/fsx.js +21 -1
- package/icons/aws/game-kit.js +21 -1
- package/icons/aws/game-lift.js +21 -1
- package/icons/aws/game-sparks.js +21 -1
- package/icons/aws/genomics-cli.js +21 -1
- package/icons/aws/global-accelerator.js +21 -1
- package/icons/aws/glue-data-brew.js +21 -1
- package/icons/aws/glue-elastic-views.js +21 -1
- package/icons/aws/glue.js +21 -1
- package/icons/aws/ground-station.js +21 -1
- package/icons/aws/guard-duty.js +21 -1
- package/icons/aws/health-lake.js +21 -1
- package/icons/aws/honeycode.js +21 -1
- package/icons/aws/iam-identity-center.js +21 -1
- package/icons/aws/identity-and-access-management.js +21 -1
- package/icons/aws/inspector.js +21 -1
- package/icons/aws/interactive-video-service.js +21 -1
- package/icons/aws/io-t-1-click.js +21 -1
- package/icons/aws/io-t-analytics.js +21 -1
- package/icons/aws/io-t-button.js +21 -1
- package/icons/aws/io-t-core.js +21 -1
- package/icons/aws/io-t-device-defender.js +21 -1
- package/icons/aws/io-t-device-management.js +21 -1
- package/icons/aws/io-t-edu-kit.js +21 -1
- package/icons/aws/io-t-events.js +21 -1
- package/icons/aws/io-t-express-link.js +21 -1
- package/icons/aws/io-t-fleet-wise.js +21 -1
- package/icons/aws/io-t-greengrass.js +21 -1
- package/icons/aws/io-t-robo-runner.js +21 -1
- package/icons/aws/io-t-site-wise.js +21 -1
- package/icons/aws/io-t-things-graph.js +21 -1
- package/icons/aws/io-t-twin-maker.js +37 -1
- package/icons/aws/iq.js +21 -1
- package/icons/aws/kendra.js +21 -1
- package/icons/aws/key-management-service.js +21 -1
- package/icons/aws/keyspaces.js +21 -1
- package/icons/aws/kinesis-data-analytics.js +21 -1
- package/icons/aws/kinesis-data-streams.js +21 -1
- package/icons/aws/kinesis-firehose.js +21 -1
- package/icons/aws/kinesis-video-streams.js +21 -1
- package/icons/aws/kinesis.js +21 -1
- package/icons/aws/lake-formation.js +21 -1
- package/icons/aws/lambda.js +21 -1
- package/icons/aws/launch-wizard.js +21 -1
- package/icons/aws/lex.js +21 -1
- package/icons/aws/license-manager.js +21 -1
- package/icons/aws/lightsail.js +21 -1
- package/icons/aws/local-zones.js +21 -1
- package/icons/aws/location-service.js +21 -1
- package/icons/aws/lookout-for-equipment.js +21 -1
- package/icons/aws/lookout-for-metrics.js +21 -1
- package/icons/aws/lookout-for-vision.js +21 -1
- package/icons/aws/lumberyard.js +21 -1
- package/icons/aws/macie.js +21 -1
- package/icons/aws/mainframe-modernization.js +21 -1
- package/icons/aws/managed-blockchain.js +21 -1
- package/icons/aws/managed-grafana.js +21 -1
- package/icons/aws/managed-service-for-prometheus.js +21 -1
- package/icons/aws/managed-services.js +21 -1
- package/icons/aws/managed-streaming-for-apache-kafka.js +21 -1
- package/icons/aws/managed-workflows-for-apache-airflow.js +21 -1
- package/icons/aws/management-console.js +21 -1
- package/icons/aws/marketplace-dark.js +15 -1
- package/icons/aws/marketplace-light.js +15 -1
- package/icons/aws/memory-db-for-redis.js +21 -1
- package/icons/aws/migration-evaluator.js +21 -1
- package/icons/aws/migration-hub.js +21 -1
- package/icons/aws/monitron.js +21 -1
- package/icons/aws/mq.js +21 -1
- package/icons/aws/neptune.js +21 -1
- package/icons/aws/network-firewall.js +21 -1
- package/icons/aws/neuron.js +21 -1
- package/icons/aws/nice-dcv.js +21 -1
- package/icons/aws/nice-engin-frame.js +21 -1
- package/icons/aws/nimble-studio.js +21 -1
- package/icons/aws/nitro-enclaves.js +21 -1
- package/icons/aws/omics.js +21 -1
- package/icons/aws/open-3d-engine.js +21 -1
- package/icons/aws/open-search-service.js +21 -1
- package/icons/aws/ops-works.js +21 -1
- package/icons/aws/organizations.js +21 -1
- package/icons/aws/outposts-family.js +21 -1
- package/icons/aws/outposts-rack.js +21 -1
- package/icons/aws/outposts-servers.js +21 -1
- package/icons/aws/panorama.js +21 -1
- package/icons/aws/parallel-cluster.js +21 -1
- package/icons/aws/personal-health-dashboard.js +21 -1
- package/icons/aws/personalize.js +21 -1
- package/icons/aws/pinpoint-apis.js +21 -1
- package/icons/aws/pinpoint.js +21 -1
- package/icons/aws/polly.js +21 -1
- package/icons/aws/private-5g.js +21 -1
- package/icons/aws/private-certificate-authority.js +28 -1
- package/icons/aws/private-link.js +21 -1
- package/icons/aws/professional-services.js +21 -1
- package/icons/aws/proton.js +21 -1
- package/icons/aws/quantum-ledger-database.js +21 -1
- package/icons/aws/quick-sight.js +21 -1
- package/icons/aws/rds-on-vmware.js +21 -1
- package/icons/aws/rds.js +21 -1
- package/icons/aws/re-post.js +21 -1
- package/icons/aws/red-hat-open-shift-service-on-aws.js +21 -1
- package/icons/aws/redshift.js +21 -1
- package/icons/aws/rekognition.js +21 -1
- package/icons/aws/reserved-instance-reporting.js +21 -1
- package/icons/aws/resilience-hub.js +21 -1
- package/icons/aws/resource-access-manager.js +21 -1
- package/icons/aws/resource-explorer.js +21 -1
- package/icons/aws/robo-maker.js +21 -1
- package/icons/aws/route-53.js +21 -1
- package/icons/aws/s3-on-outposts.js +21 -1
- package/icons/aws/sage-maker-ground-truth.js +21 -1
- package/icons/aws/sage-maker-studio-lab.js +21 -1
- package/icons/aws/sage-maker.js +21 -1
- package/icons/aws/savings-plans.js +21 -1
- package/icons/aws/secrets-manager.js +21 -1
- package/icons/aws/security-hub.js +21 -1
- package/icons/aws/security-lake.js +21 -1
- package/icons/aws/server-migration-service.js +21 -1
- package/icons/aws/serverless-application-repository.js +21 -1
- package/icons/aws/service-catalog.js +21 -1
- package/icons/aws/service-management-connector.js +28 -1
- package/icons/aws/shield.js +21 -1
- package/icons/aws/signer.js +21 -1
- package/icons/aws/sim-space-weaver.js +21 -1
- package/icons/aws/simple-email-service.js +21 -1
- package/icons/aws/simple-notification-service.js +21 -1
- package/icons/aws/simple-queue-service.js +21 -1
- package/icons/aws/simple-storage-service-glacier.js +21 -1
- package/icons/aws/simple-storage-service.js +21 -1
- package/icons/aws/site-to-site-vpn.js +21 -1
- package/icons/aws/snowball-edge.js +21 -1
- package/icons/aws/snowball.js +21 -1
- package/icons/aws/snowcone.js +21 -1
- package/icons/aws/snowmobile.js +21 -1
- package/icons/aws/step-functions.js +21 -1
- package/icons/aws/storage-gateway.js +21 -1
- package/icons/aws/sumerian.js +21 -1
- package/icons/aws/supply-chain.js +21 -1
- package/icons/aws/support.js +21 -1
- package/icons/aws/systems-manager.js +21 -1
- package/icons/aws/tensor-flow-on-aws.js +21 -1
- package/icons/aws/textract.js +21 -1
- package/icons/aws/thinkbox-deadline.js +21 -1
- package/icons/aws/thinkbox-frost.js +21 -1
- package/icons/aws/thinkbox-krakatoa.js +21 -1
- package/icons/aws/thinkbox-sequoia.js +21 -1
- package/icons/aws/thinkbox-stoke.js +21 -1
- package/icons/aws/thinkbox-xmesh.js +21 -1
- package/icons/aws/timestream.js +21 -1
- package/icons/aws/tools-and-sdks.js +21 -1
- package/icons/aws/torch-serve.js +21 -1
- package/icons/aws/training-certification.js +21 -1
- package/icons/aws/transcribe.js +21 -1
- package/icons/aws/transfer-family.js +21 -1
- package/icons/aws/transit-gateway.js +21 -1
- package/icons/aws/translate.js +21 -1
- package/icons/aws/trusted-advisor.js +21 -1
- package/icons/aws/verified-access.js +21 -1
- package/icons/aws/verified-permissions.js +21 -1
- package/icons/aws/virtual-private-cloud.js +21 -1
- package/icons/aws/vmware-cloud-on-aws.js +21 -1
- package/icons/aws/vpc-lattice.js +21 -1
- package/icons/aws/waf.js +21 -1
- package/icons/aws/wavelength.js +21 -1
- package/icons/aws/well-architected-tool.js +21 -1
- package/icons/aws/wickr.js +21 -1
- package/icons/aws/work-docs-sdk.js +21 -1
- package/icons/aws/work-docs.js +21 -1
- package/icons/aws/work-link.js +21 -1
- package/icons/aws/work-mail.js +21 -1
- package/icons/aws/work-spaces-family.js +21 -1
- package/icons/aws/x-ray.js +21 -1
- package/icons/azure/abs-member.js +32 -1
- package/icons/azure/active-directory-connect-health.js +132 -1
- package/icons/azure/activity-log.js +33 -1
- package/icons/azure/administrative-units.js +102 -1
- package/icons/azure/advisor.js +44 -1
- package/icons/azure/ai-studio.js +105 -1
- package/icons/azure/aks-automatic.js +105 -1
- package/icons/azure/aks-istio.js +96 -1
- package/icons/azure/alerts.js +29 -1
- package/icons/azure/all-resources.js +21 -1
- package/icons/azure/analysis-services.js +67 -1
- package/icons/azure/anomaly-detector.js +44 -1
- package/icons/azure/api-center.js +42 -1
- package/icons/azure/api-connections.js +66 -1
- package/icons/azure/api-management-services.js +51 -1
- package/icons/azure/api-proxy.js +32 -1
- package/icons/azure/app-compliance-automation.js +82 -1
- package/icons/azure/app-configuration.js +56 -1
- package/icons/azure/app-registrations.js +39 -1
- package/icons/azure/app-service-certificates.js +42 -1
- package/icons/azure/app-service-domains.js +23 -1
- package/icons/azure/app-service-environments.js +36 -1
- package/icons/azure/app-service-plans.js +66 -1
- package/icons/azure/app-services.js +104 -1
- package/icons/azure/app-space-component.js +39 -1
- package/icons/azure/app-space.js +37 -1
- package/icons/azure/applens.js +45 -1
- package/icons/azure/application-gateway-containers.js +134 -1
- package/icons/azure/application-gateways.js +92 -1
- package/icons/azure/application-group.js +21 -1
- package/icons/azure/application-insights.js +57 -1
- package/icons/azure/application-security-groups.js +54 -1
- package/icons/azure/aquila.js +95 -1
- package/icons/azure/arc-data-services.js +60 -1
- package/icons/azure/arc-kubernetes.js +139 -1
- package/icons/azure/arc-machines.js +40 -1
- package/icons/azure/arc-postgre-sql.js +73 -1
- package/icons/azure/arc-sql-managed-instance.js +75 -1
- package/icons/azure/arc-sql-server.js +40 -1
- package/icons/azure/atm-multistack.js +59 -1
- package/icons/azure/auto-scale.js +43 -1
- package/icons/azure/automanaged-vm.js +65 -1
- package/icons/azure/automation-accounts.js +62 -1
- package/icons/azure/availability-sets.js +70 -1
- package/icons/azure/avs-vm.js +32 -1
- package/icons/azure/azure-a.js +46 -1
- package/icons/azure/azure-ad-b2c.js +129 -1
- package/icons/azure/azure-api-for-fhir.js +33 -1
- package/icons/azure/azure-applied-ai-services.js +81 -1
- package/icons/azure/azure-arc.js +75 -1
- package/icons/azure/azure-attestation.js +35 -1
- package/icons/azure/azure-backup-center.js +63 -1
- package/icons/azure/azure-blockchain-service.js +51 -1
- package/icons/azure/azure-center-for-sap.js +37 -1
- package/icons/azure/azure-chaos-studio.js +75 -1
- package/icons/azure/azure-cloud-shell.js +39 -1
- package/icons/azure/azure-communication-services.js +63 -1
- package/icons/azure/azure-communications-gateway.js +43 -1
- package/icons/azure/azure-compute-galleries.js +35 -1
- package/icons/azure/azure-cosmos-db.js +47 -1
- package/icons/azure/azure-data-catalog.js +91 -1
- package/icons/azure/azure-data-explorer-clusters.js +126 -1
- package/icons/azure/azure-database-maria-db-server.js +56 -1
- package/icons/azure/azure-database-migration-services.js +83 -1
- package/icons/azure/azure-database-my-sql-server.js +56 -1
- package/icons/azure/azure-database-postgre-sql-server-group.js +65 -1
- package/icons/azure/azure-database-postgre-sql-server.js +57 -1
- package/icons/azure/azure-databox-gateway.js +39 -1
- package/icons/azure/azure-databricks.js +12 -1
- package/icons/azure/azure-deployment-environments.js +65 -1
- package/icons/azure/azure-dev-ops.js +21 -1
- package/icons/azure/azure-dev-tunnels.js +48 -1
- package/icons/azure/azure-edge-hardware-center.js +69 -1
- package/icons/azure/azure-experimentation-studio.js +88 -1
- package/icons/azure/azure-fileshares.js +46 -1
- package/icons/azure/azure-firewall-manager.js +60 -1
- package/icons/azure/azure-firewall-policy.js +37 -1
- package/icons/azure/azure-hcp-cache.js +23 -1
- package/icons/azure/azure-hpc-workbenches.js +112 -1
- package/icons/azure/azure-hybrid-center.js +33 -1
- package/icons/azure/azure-information-protection.js +95 -1
- package/icons/azure/azure-io-t-operations.js +57 -1
- package/icons/azure/azure-lighthouse.js +35 -1
- package/icons/azure/azure-load-testing.js +78 -1
- package/icons/azure/azure-managed-grafana.js +19 -1
- package/icons/azure/azure-maps-accounts.js +16 -1
- package/icons/azure/azure-media-service.js +107 -1
- package/icons/azure/azure-migrate.js +57 -1
- package/icons/azure/azure-monitor-dashboard.js +58 -1
- package/icons/azure/azure-monitor-pipeline.js +101 -1
- package/icons/azure/azure-monitors-for-sap-solutions.js +71 -1
- package/icons/azure/azure-net-app-files.js +36 -1
- package/icons/azure/azure-network-function-manager-functions.js +94 -1
- package/icons/azure/azure-network-function-manager.js +98 -1
- package/icons/azure/azure-object-understanding.js +50 -1
- package/icons/azure/azure-open-ai.js +29 -1
- package/icons/azure/azure-operator-5g-core.js +86 -1
- package/icons/azure/azure-operator-insights.js +42 -1
- package/icons/azure/azure-operator-nexus.js +87 -1
- package/icons/azure/azure-operator-service-manager.js +41 -1
- package/icons/azure/azure-orbital.js +115 -1
- package/icons/azure/azure-programmable-connectivity.js +168 -1
- package/icons/azure/azure-purview-accounts.js +100 -1
- package/icons/azure/azure-quotas.js +54 -1
- package/icons/azure/azure-red-hat-open-shift.js +44 -1
- package/icons/azure/azure-sentinel.js +37 -1
- package/icons/azure/azure-service-bus.js +77 -1
- package/icons/azure/azure-sphere.js +68 -1
- package/icons/azure/azure-spring-apps.js +111 -1
- package/icons/azure/azure-sql-edge.js +157 -1
- package/icons/azure/azure-sql-server-stretch-databases.js +82 -1
- package/icons/azure/azure-sql-vm.js +37 -1
- package/icons/azure/azure-sql.js +27 -1
- package/icons/azure/azure-stack-edge.js +44 -1
- package/icons/azure/azure-stack-hci-sizer.js +90 -1
- package/icons/azure/azure-stack.js +54 -1
- package/icons/azure/azure-storage-mover.js +120 -1
- package/icons/azure/azure-support-center-blue.js +53 -1
- package/icons/azure/azure-sustainability.js +75 -1
- package/icons/azure/azure-synapse-analytics.js +60 -1
- package/icons/azure/azure-token-service.js +46 -1
- package/icons/azure/azure-video-indexer.js +82 -1
- package/icons/azure/azure-virtual-desktop.js +19 -1
- package/icons/azure/azure-vmware-solution.js +57 -1
- package/icons/azure/azure-workbooks.js +78 -1
- package/icons/azure/azurite.js +34 -1
- package/icons/azure/backlog.js +48 -1
- package/icons/azure/backup-vault.js +71 -1
- package/icons/azure/bare-metal-infrastructure.js +63 -1
- package/icons/azure/bastions.js +71 -1
- package/icons/azure/batch-accounts.js +52 -1
- package/icons/azure/batch-ai.js +56 -1
- package/icons/azure/biz-talk.js +39 -1
- package/icons/azure/blob-block.js +17 -1
- package/icons/azure/blob-page.js +43 -1
- package/icons/azure/blockchain-applications.js +43 -1
- package/icons/azure/blueprints.js +56 -1
- package/icons/azure/bonsai.js +63 -1
- package/icons/azure/bot-services.js +43 -1
- package/icons/azure/branch.js +43 -1
- package/icons/azure/browser.js +16 -1
- package/icons/azure/bug.js +26 -1
- package/icons/azure/builds.js +48 -1
- package/icons/azure/business-process-tracking.js +28 -1
- package/icons/azure/cache-redis.js +72 -1
- package/icons/azure/cache.js +113 -1
- package/icons/azure/capacity-reservation-groups.js +47 -1
- package/icons/azure/capacity.js +74 -1
- package/icons/azure/cdn-profiles.js +32 -1
- package/icons/azure/central-service-instance-for-sap.js +55 -1
- package/icons/azure/ceres.js +58 -1
- package/icons/azure/change-analysis.js +93 -1
- package/icons/azure/client-apps.js +21 -1
- package/icons/azure/cloud-services-classic.js +48 -1
- package/icons/azure/cloud-services-extended-support.js +78 -1
- package/icons/azure/cloud-test.js +58 -1
- package/icons/azure/code-optimization.js +146 -1
- package/icons/azure/code.js +94 -1
- package/icons/azure/cognitive-search.js +26 -1
- package/icons/azure/cognitive-services-decisions.js +139 -1
- package/icons/azure/cognitive-services.js +42 -1
- package/icons/azure/collaborative-service.js +91 -1
- package/icons/azure/commit.js +30 -1
- package/icons/azure/community-images.js +68 -1
- package/icons/azure/compliance-center.js +70 -1
- package/icons/azure/compliance.js +35 -1
- package/icons/azure/compute-fleet.js +102 -1
- package/icons/azure/computer-vision.js +35 -1
- package/icons/azure/conditional-access.js +45 -1
- package/icons/azure/confidential-ledgers.js +96 -1
- package/icons/azure/connected-cache.js +99 -1
- package/icons/azure/connected-vehicle-platform.js +111 -1
- package/icons/azure/connections.js +54 -1
- package/icons/azure/consortium.js +63 -1
- package/icons/azure/container-apps-environments.js +66 -1
- package/icons/azure/container-instances.js +37 -1
- package/icons/azure/container-registries.js +68 -1
- package/icons/azure/container-services-deprecated.js +142 -1
- package/icons/azure/content-moderators.js +63 -1
- package/icons/azure/content-safety.js +88 -1
- package/icons/azure/controls-horizontal.js +135 -1
- package/icons/azure/controls.js +33 -1
- package/icons/azure/cost-alerts.js +28 -1
- package/icons/azure/cost-analysis.js +35 -1
- package/icons/azure/cost-budgets.js +30 -1
- package/icons/azure/cost-export.js +36 -1
- package/icons/azure/cost-management-and-billing.js +41 -1
- package/icons/azure/cost-management.js +46 -1
- package/icons/azure/counter.js +33 -1
- package/icons/azure/cubes.js +16 -1
- package/icons/azure/custom-ip-prefix.js +51 -1
- package/icons/azure/custom-vision.js +59 -1
- package/icons/azure/customer-lockbox-for-microsoft-azure.js +64 -1
- package/icons/azure/dashboard-hub.js +94 -1
- package/icons/azure/dashboard.js +42 -1
- package/icons/azure/data-box.js +33 -1
- package/icons/azure/data-collection-rules.js +64 -1
- package/icons/azure/data-factories.js +42 -1
- package/icons/azure/data-lake-analytics.js +43 -1
- package/icons/azure/data-lake-storage-gen1.js +49 -1
- package/icons/azure/data-lake-store-gen1.js +49 -1
- package/icons/azure/data-share-invitations.js +34 -1
- package/icons/azure/data-shares.js +67 -1
- package/icons/azure/database-instance-for-sap.js +80 -1
- package/icons/azure/ddo-s-protection-plans.js +47 -1
- package/icons/azure/dedicated-hsm.js +49 -1
- package/icons/azure/defender-cm-local-manager.js +175 -1
- package/icons/azure/defender-dcs-controller.js +99 -1
- package/icons/azure/defender-distributer-control-system.js +67 -1
- package/icons/azure/defender-engineering-station.js +115 -1
- package/icons/azure/defender-external-management.js +132 -1
- package/icons/azure/defender-freezer-monitor.js +217 -1
- package/icons/azure/defender-historian.js +53 -1
- package/icons/azure/defender-hmi.js +54 -1
- package/icons/azure/defender-industrial-packaging-system.js +97 -1
- package/icons/azure/defender-industrial-printer.js +51 -1
- package/icons/azure/defender-industrial-robot.js +165 -1
- package/icons/azure/defender-industrial-scale-system.js +80 -1
- package/icons/azure/defender-marquee.js +68 -1
- package/icons/azure/defender-meter.js +156 -1
- package/icons/azure/defender-plc.js +66 -1
- package/icons/azure/defender-pneumatic-device.js +72 -1
- package/icons/azure/defender-programable-board.js +126 -1
- package/icons/azure/defender-relay.js +67 -1
- package/icons/azure/defender-robot-controller.js +123 -1
- package/icons/azure/defender-rtu.js +23 -1
- package/icons/azure/defender-sensor.js +55 -1
- package/icons/azure/defender-slot.js +31 -1
- package/icons/azure/defender-web-guiding-system.js +266 -1
- package/icons/azure/detonation.js +41 -1
- package/icons/azure/dev-console.js +30 -1
- package/icons/azure/dev-ops-starter.js +102 -1
- package/icons/azure/dev-test-labs.js +46 -1
- package/icons/azure/device-compliance.js +62 -1
- package/icons/azure/device-configuration.js +66 -1
- package/icons/azure/device-enrollment.js +69 -1
- package/icons/azure/device-provisioning-services.js +54 -1
- package/icons/azure/device-security-apple.js +54 -1
- package/icons/azure/device-security-google.js +54 -1
- package/icons/azure/device-security-windows.js +54 -1
- package/icons/azure/device-update-io-t-hub.js +46 -1
- package/icons/azure/devices.js +29 -1
- package/icons/azure/diagnostics-settings.js +51 -1
- package/icons/azure/digital-twins.js +73 -1
- package/icons/azure/disk-encryption-sets.js +63 -1
- package/icons/azure/disk-pool.js +92 -1
- package/icons/azure/disks-classic.js +74 -1
- package/icons/azure/disks-snapshots.js +71 -1
- package/icons/azure/disks.js +63 -1
- package/icons/azure/dns-multistack.js +49 -1
- package/icons/azure/dns-private-resolver.js +50 -1
- package/icons/azure/dns-security-policy.js +90 -1
- package/icons/azure/dns-zones.js +37 -1
- package/icons/azure/download.js +60 -1
- package/icons/azure/e-books.js +42 -1
- package/icons/azure/edge-management.js +64 -1
- package/icons/azure/education.js +42 -1
- package/icons/azure/elastic-job-agents.js +61 -1
- package/icons/azure/elastic-san.js +65 -1
- package/icons/azure/endpoint-analytics.js +83 -1
- package/icons/azure/enterprise-applications.js +66 -1
- package/icons/azure/entra-connect-health.js +132 -1
- package/icons/azure/entra-connect-sync.js +86 -1
- package/icons/azure/entra-connect.js +123 -1
- package/icons/azure/entra-domain-services.js +105 -1
- package/icons/azure/entra-global-secure-access.js +76 -1
- package/icons/azure/entra-id-protection.js +74 -1
- package/icons/azure/entra-identity-custom-roles.js +62 -1
- package/icons/azure/entra-identity-licenses.js +85 -1
- package/icons/azure/entra-identity-risky-signins.js +28 -1
- package/icons/azure/entra-identity-risky-users.js +28 -1
- package/icons/azure/entra-identity-roles-and-administrators.js +53 -1
- package/icons/azure/entra-internet-access.js +105 -1
- package/icons/azure/entra-managed-identities.js +120 -1
- package/icons/azure/entra-private-access.js +104 -1
- package/icons/azure/entra-privleged-identity-management.js +120 -1
- package/icons/azure/entra-verified-id.js +75 -1
- package/icons/azure/error.js +30 -1
- package/icons/azure/event-grid-domains.js +75 -1
- package/icons/azure/event-grid-subscriptions.js +75 -1
- package/icons/azure/event-grid-topics.js +90 -1
- package/icons/azure/event-hub-clusters.js +77 -1
- package/icons/azure/event-hubs.js +64 -1
- package/icons/azure/exchange-access.js +45 -1
- package/icons/azure/exchange-on-premises-access.js +39 -1
- package/icons/azure/express-route-circuits.js +60 -1
- package/icons/azure/express-route-direct.js +61 -1
- package/icons/azure/express-route-traffic-collector.js +97 -1
- package/icons/azure/extended-security-updates.js +44 -1
- package/icons/azure/extensions.js +28 -1
- package/icons/azure/external-identities.js +42 -1
- package/icons/azure/face-apis.js +19 -1
- package/icons/azure/feature-previews.js +21 -1
- package/icons/azure/fhir-service.js +60 -1
- package/icons/azure/fiji.js +42 -1
- package/icons/azure/file.js +29 -1
- package/icons/azure/files.js +45 -1
- package/icons/azure/firewalls.js +32 -1
- package/icons/azure/folder-blank.js +39 -1
- package/icons/azure/folder-website.js +123 -1
- package/icons/azure/form-recognizers.js +48 -1
- package/icons/azure/free-services.js +43 -1
- package/icons/azure/front-door-and-cdn-profiles.js +37 -1
- package/icons/azure/ftp.js +17 -1
- package/icons/azure/function-apps.js +61 -1
- package/icons/azure/gear.js +37 -1
- package/icons/azure/genomics-accounts.js +68 -1
- package/icons/azure/genomics.js +57 -1
- package/icons/azure/globe-error.js +42 -1
- package/icons/azure/globe-success.js +52 -1
- package/icons/azure/globe-warning.js +53 -1
- package/icons/azure/groups.js +42 -1
- package/icons/azure/guide.js +17 -1
- package/icons/azure/hd-insight-clusters.js +71 -1
- package/icons/azure/hdi-aks-cluster.js +60 -1
- package/icons/azure/heart.js +31 -1
- package/icons/azure/help-and-support.js +55 -1
- package/icons/azure/host-groups.js +48 -1
- package/icons/azure/host-pools.js +19 -1
- package/icons/azure/hosts.js +46 -1
- package/icons/azure/ic-m-troubleshooting.js +60 -1
- package/icons/azure/identity-governance.js +52 -1
- package/icons/azure/identity-multi-factor-authentication.js +117 -1
- package/icons/azure/identity-secure-score.js +55 -1
- package/icons/azure/image-definitions.js +38 -1
- package/icons/azure/image-templates.js +43 -1
- package/icons/azure/image-versions.js +38 -1
- package/icons/azure/image.js +31 -1
- package/icons/azure/images.js +37 -1
- package/icons/azure/immersive-readers.js +82 -1
- package/icons/azure/import-export-jobs.js +25 -1
- package/icons/azure/industrial-io-t.js +97 -1
- package/icons/azure/information.js +21 -1
- package/icons/azure/infrastructure-backup.js +89 -1
- package/icons/azure/input-output.js +97 -1
- package/icons/azure/instance-pools.js +87 -1
- package/icons/azure/integration-accounts.js +52 -1
- package/icons/azure/integration-environments.js +94 -1
- package/icons/azure/integration-service-environments.js +90 -1
- package/icons/azure/internet-analyzer-profiles.js +59 -1
- package/icons/azure/intune-app-protection.js +79 -1
- package/icons/azure/intune-for-education.js +79 -1
- package/icons/azure/intune-trends.js +40 -1
- package/icons/azure/intune.js +46 -1
- package/icons/azure/io-t-central-applications.js +20 -1
- package/icons/azure/io-t-edge.js +25 -1
- package/icons/azure/io-t-hub.js +36 -1
- package/icons/azure/ip-address-manager.js +63 -1
- package/icons/azure/ip-groups.js +45 -1
- package/icons/azure/journey-hub.js +30 -1
- package/icons/azure/key-vaults.js +61 -1
- package/icons/azure/keys.js +97 -1
- package/icons/azure/kubernetes-fleet-manager.js +73 -1
- package/icons/azure/kubernetes-services.js +142 -1
- package/icons/azure/lab-accounts.js +69 -1
- package/icons/azure/lab-services.js +46 -1
- package/icons/azure/language-understanding.js +25 -1
- package/icons/azure/language.js +71 -1
- package/icons/azure/launch-portal.js +36 -1
- package/icons/azure/learn.js +61 -1
- package/icons/azure/load-balancer-hub.js +101 -1
- package/icons/azure/load-balancers.js +28 -1
- package/icons/azure/load-test.js +61 -1
- package/icons/azure/load-testing.js +71 -1
- package/icons/azure/local-network-gateways.js +44 -1
- package/icons/azure/location.js +34 -1
- package/icons/azure/log-analytics-query-pack.js +68 -1
- package/icons/azure/log-analytics-workspaces.js +58 -1
- package/icons/azure/log-streaming.js +57 -1
- package/icons/azure/logic-apps-custom-connector.js +76 -1
- package/icons/azure/logic-apps.js +65 -1
- package/icons/azure/machine-learning-studio-classic-web-services.js +49 -1
- package/icons/azure/machine-learning-studio-web-service-plans.js +84 -1
- package/icons/azure/machine-learning-studio-workspaces.js +55 -1
- package/icons/azure/machine-learning.js +29 -1
- package/icons/azure/machines-azure-arc.js +27 -1
- package/icons/azure/maintenance-configuration.js +62 -1
- package/icons/azure/managed-applications-center.js +55 -1
- package/icons/azure/managed-database.js +79 -1
- package/icons/azure/managed-desktop.js +40 -1
- package/icons/azure/managed-dev-ops-pools.js +59 -1
- package/icons/azure/managed-file-shares.js +59 -1
- package/icons/azure/managed-identities.js +66 -1
- package/icons/azure/managed-instance-apache-cassandra.js +100 -1
- package/icons/azure/managed-service-fabric.js +109 -1
- package/icons/azure/management-groups.js +77 -1
- package/icons/azure/management-portal.js +23 -1
- package/icons/azure/marketplace-management.js +47 -1
- package/icons/azure/marketplace.js +38 -1
- package/icons/azure/med-tech-service.js +87 -1
- package/icons/azure/media-file.js +36 -1
- package/icons/azure/media.js +108 -1
- package/icons/azure/mesh-applications.js +47 -1
- package/icons/azure/metrics-advisor.js +58 -1
- package/icons/azure/metrics.js +34 -1
- package/icons/azure/microsoft-defender-easm.js +69 -1
- package/icons/azure/microsoft-defender-for-cloud.js +61 -1
- package/icons/azure/microsoft-defender-for-io-t.js +54 -1
- package/icons/azure/microsoft-dev-box.js +143 -1
- package/icons/azure/mindaro.js +47 -1
- package/icons/azure/mission-landing-zone.js +48 -1
- package/icons/azure/mobile-engagement.js +46 -1
- package/icons/azure/mobile-networks.js +86 -1
- package/icons/azure/mobile.js +28 -1
- package/icons/azure/modular-data-center.js +83 -1
- package/icons/azure/module.js +25 -1
- package/icons/azure/monitor-health-models.js +110 -1
- package/icons/azure/monitor.js +61 -1
- package/icons/azure/multi-tenancy.js +80 -1
- package/icons/azure/multifactor-authentication.js +84 -1
- package/icons/azure/my-customers.js +42 -1
- package/icons/azure/nat.js +56 -1
- package/icons/azure/network-interfaces.js +52 -1
- package/icons/azure/network-managers.js +55 -1
- package/icons/azure/network-security-groups.js +53 -1
- package/icons/azure/network-security-perimeters.js +113 -1
- package/icons/azure/network-watcher.js +55 -1
- package/icons/azure/notification-hub-namespaces.js +33 -1
- package/icons/azure/notification-hubs.js +22 -1
- package/icons/azure/offers.js +35 -1
- package/icons/azure/on-premises-data-gateways.js +44 -1
- package/icons/azure/open-supply-chain-platform.js +111 -1
- package/icons/azure/operation-log-classic.js +44 -1
- package/icons/azure/oracle-database.js +55 -1
- package/icons/azure/os-images-classic.js +60 -1
- package/icons/azure/osconfig.js +82 -1
- package/icons/azure/outbound-connection.js +24 -1
- package/icons/azure/partner-namespace.js +97 -1
- package/icons/azure/partner-registration.js +117 -1
- package/icons/azure/partner-topic.js +93 -1
- package/icons/azure/peering-service.js +27 -1
- package/icons/azure/peerings.js +44 -1
- package/icons/azure/personalizers.js +99 -1
- package/icons/azure/plans.js +40 -1
- package/icons/azure/policy.js +34 -1
- package/icons/azure/power-bi-embedded.js +69 -1
- package/icons/azure/power-platform.js +163 -1
- package/icons/azure/power-up.js +42 -1
- package/icons/azure/power.js +31 -1
- package/icons/azure/powershell.js +30 -1
- package/icons/azure/preview-features.js +72 -1
- package/icons/azure/private-endpoints.js +80 -1
- package/icons/azure/private-link-service.js +83 -1
- package/icons/azure/private-link-services.js +72 -1
- package/icons/azure/private-link.js +94 -1
- package/icons/azure/process-explorer.js +23 -1
- package/icons/azure/production-ready-database.js +70 -1
- package/icons/azure/proximity-placement-groups.js +71 -1
- package/icons/azure/public-ip-addresses-classic.js +36 -1
- package/icons/azure/public-ip-addresses.js +19 -1
- package/icons/azure/public-ip-prefixes.js +85 -1
- package/icons/azure/qn-a-makers.js +61 -1
- package/icons/azure/quickstart-center.js +76 -1
- package/icons/azure/recent.js +57 -1
- package/icons/azure/recovery-services-vaults.js +67 -1
- package/icons/azure/region-management.js +42 -1
- package/icons/azure/relays.js +45 -1
- package/icons/azure/remote-rendering.js +71 -1
- package/icons/azure/reservations.js +37 -1
- package/icons/azure/reserved-capacity.js +45 -1
- package/icons/azure/reserved-ip-addresses-classic.js +38 -1
- package/icons/azure/resource-explorer.js +33 -1
- package/icons/azure/resource-graph-explorer.js +58 -1
- package/icons/azure/resource-group-list.js +48 -1
- package/icons/azure/resource-groups.js +40 -1
- package/icons/azure/resource-guard.js +46 -1
- package/icons/azure/resource-linked.js +51 -1
- package/icons/azure/resource-management-private-link.js +61 -1
- package/icons/azure/resource-mover.js +20 -1
- package/icons/azure/resources-provider.js +27 -1
- package/icons/azure/restore-points-collections.js +73 -1
- package/icons/azure/restore-points.js +72 -1
- package/icons/azure/route-filters.js +39 -1
- package/icons/azure/route-tables.js +62 -1
- package/icons/azure/rtos.js +64 -1
- package/icons/azure/savings-plans.js +75 -1
- package/icons/azure/scheduler-job-collections.js +73 -1
- package/icons/azure/scheduler.js +75 -1
- package/icons/azure/scvmm-management-servers.js +79 -1
- package/icons/azure/search-grid.js +48 -1
- package/icons/azure/search.js +28 -1
- package/icons/azure/security-baselines.js +55 -1
- package/icons/azure/security.js +22 -1
- package/icons/azure/send-grid-accounts.js +42 -1
- package/icons/azure/server-farm.js +65 -1
- package/icons/azure/serverless-search.js +65 -1
- package/icons/azure/service-catalog-mad.js +65 -1
- package/icons/azure/service-endpoint-policies.js +75 -1
- package/icons/azure/service-fabric-clusters.js +97 -1
- package/icons/azure/service-health.js +45 -1
- package/icons/azure/service-providers.js +71 -1
- package/icons/azure/shared-image-galleries.js +32 -1
- package/icons/azure/signal-r.js +22 -1
- package/icons/azure/software-as-a-service.js +65 -1
- package/icons/azure/software-updates.js +22 -1
- package/icons/azure/solutions.js +58 -1
- package/icons/azure/sonic-dash.js +95 -1
- package/icons/azure/spatial-anchor-accounts.js +88 -1
- package/icons/azure/speech-services.js +43 -1
- package/icons/azure/spot-vm.js +40 -1
- package/icons/azure/spot-vmss.js +77 -1
- package/icons/azure/sql-data-warehouses.js +82 -1
- package/icons/azure/sql-database.js +63 -1
- package/icons/azure/sql-elastic-pools.js +89 -1
- package/icons/azure/sql-managed-instance.js +73 -1
- package/icons/azure/sql-server-registries.js +75 -1
- package/icons/azure/sql-server.js +46 -1
- package/icons/azure/ssd.js +36 -1
- package/icons/azure/ssh-keys.js +42 -1
- package/icons/azure/ssis-lift-and-shift-ir.js +72 -1
- package/icons/azure/stack-hci-premium.js +144 -1
- package/icons/azure/static-apps.js +29 -1
- package/icons/azure/stor-simple-data-managers.js +57 -1
- package/icons/azure/stor-simple-device-managers.js +38 -1
- package/icons/azure/storage-accounts-classic.js +53 -1
- package/icons/azure/storage-accounts.js +35 -1
- package/icons/azure/storage-actions.js +88 -1
- package/icons/azure/storage-azure-files.js +47 -1
- package/icons/azure/storage-container.js +35 -1
- package/icons/azure/storage-explorer.js +38 -1
- package/icons/azure/storage-functions.js +57 -1
- package/icons/azure/storage-queue.js +24 -1
- package/icons/azure/storage-sync-services.js +74 -1
- package/icons/azure/stream-analytics-jobs.js +53 -1
- package/icons/azure/subnet.js +43 -1
- package/icons/azure/subscriptions.js +41 -1
- package/icons/azure/system-topic.js +182 -1
- package/icons/azure/table.js +23 -1
- package/icons/azure/tag.js +28 -1
- package/icons/azure/tags.js +46 -1
- package/icons/azure/targets-management.js +54 -1
- package/icons/azure/template-specs.js +67 -1
- package/icons/azure/templates.js +33 -1
- package/icons/azure/tenant-properties.js +90 -1
- package/icons/azure/tenant-status.js +40 -1
- package/icons/azure/test-base.js +56 -1
- package/icons/azure/tfs-vc-repository.js +97 -1
- package/icons/azure/time-series-data-sets.js +63 -1
- package/icons/azure/time-series-insights-access-policies.js +42 -1
- package/icons/azure/time-series-insights-environments.js +39 -1
- package/icons/azure/time-series-insights-event-sources.js +57 -1
- package/icons/azure/toolbox.js +26 -1
- package/icons/azure/traffic-manager-profiles.js +47 -1
- package/icons/azure/translator-text.js +75 -1
- package/icons/azure/troubleshoot.js +38 -1
- package/icons/azure/universal-print.js +74 -1
- package/icons/azure/update-management-center.js +135 -1
- package/icons/azure/updates.js +47 -1
- package/icons/azure/user-privacy.js +55 -1
- package/icons/azure/user-settings.js +68 -1
- package/icons/azure/user-subscriptions.js +104 -1
- package/icons/azure/users.js +26 -1
- package/icons/azure/verifiable-credentials.js +99 -1
- package/icons/azure/verification-as-a-service.js +84 -1
- package/icons/azure/versions.js +24 -1
- package/icons/azure/video-analyzers.js +42 -1
- package/icons/azure/virtual-clusters.js +99 -1
- package/icons/azure/virtual-enclaves.js +40 -1
- package/icons/azure/virtual-instance-for-sap.js +81 -1
- package/icons/azure/virtual-machine.js +52 -1
- package/icons/azure/virtual-machines-classic.js +53 -1
- package/icons/azure/virtual-network-gateways.js +56 -1
- package/icons/azure/virtual-networks-classic.js +86 -1
- package/icons/azure/virtual-networks.js +86 -1
- package/icons/azure/virtual-router.js +29 -1
- package/icons/azure/virtual-visits-builder.js +81 -1
- package/icons/azure/virtual-wan-hub.js +72 -1
- package/icons/azure/virtual-wans.js +60 -1
- package/icons/azure/vm-app-definitions.js +66 -1
- package/icons/azure/vm-app-versions.js +91 -1
- package/icons/azure/vm-image-version.js +103 -1
- package/icons/azure/vm-images-classic.js +60 -1
- package/icons/azure/vm-scale-sets.js +60 -1
- package/icons/azure/wac-installer.js +121 -1
- package/icons/azure/wac.js +56 -1
- package/icons/azure/web-app-database.js +177 -1
- package/icons/azure/web-application-firewall-policies-waf.js +97 -1
- package/icons/azure/web-jobs.js +119 -1
- package/icons/azure/web-slots.js +30 -1
- package/icons/azure/web-test.js +122 -1
- package/icons/azure/website-power.js +90 -1
- package/icons/azure/website-staging.js +24 -1
- package/icons/azure/windows-notification-services.js +78 -1
- package/icons/azure/windows10-core-services.js +61 -1
- package/icons/azure/workbooks.js +38 -1
- package/icons/azure/worker-container-app.js +91 -1
- package/icons/azure/workflow.js +47 -1
- package/icons/azure/workspace-gateway.js +86 -1
- package/icons/azure/workspaces.js +58 -1
- package/icons/gcp/access-context-manager.js +17 -1
- package/icons/gcp/administration.js +46 -1
- package/icons/gcp/advanced-agent-modeling.js +31 -1
- package/icons/gcp/advanced-solutions-lab.js +84 -1
- package/icons/gcp/agent-assist.js +12 -1
- package/icons/gcp/ai-hub.js +23 -1
- package/icons/gcp/ai-platform-unified.js +40 -1
- package/icons/gcp/ai-platform.js +23 -1
- package/icons/gcp/analytics-hub.js +28 -1
- package/icons/gcp/anthos-config-management.js +28 -1
- package/icons/gcp/anthos-service-mesh.js +13 -1
- package/icons/gcp/anthos.js +11 -1
- package/icons/gcp/api-analytics.js +26 -1
- package/icons/gcp/api-monetization.js +23 -1
- package/icons/gcp/api.js +29 -1
- package/icons/gcp/apigee-api-platform.js +35 -1
- package/icons/gcp/apigee-sense.js +28 -1
- package/icons/gcp/app-engine.js +39 -1
- package/icons/gcp/artifact-registry.js +33 -1
- package/icons/gcp/asset-inventory.js +19 -1
- package/icons/gcp/assured-workloads.js +38 -1
- package/icons/gcp/auto-ml-natural-language.js +9 -1
- package/icons/gcp/auto-ml-tables.js +19 -1
- package/icons/gcp/auto-ml-translation.js +25 -1
- package/icons/gcp/auto-ml-video-intelligence.js +25 -1
- package/icons/gcp/auto-ml-vision.js +18 -1
- package/icons/gcp/auto-ml.js +14 -1
- package/icons/gcp/bare-metal-solutions.js +10 -1
- package/icons/gcp/batch.js +12 -1
- package/icons/gcp/beyondcorp.js +13 -1
- package/icons/gcp/big-query.js +28 -1
- package/icons/gcp/bigtable.js +116 -1
- package/icons/gcp/billing.js +34 -1
- package/icons/gcp/binary-authorization.js +22 -1
- package/icons/gcp/catalog.js +29 -1
- package/icons/gcp/certificate-authority-service.js +33 -1
- package/icons/gcp/certificate-manager.js +24 -1
- package/icons/gcp/cloud-api-gateway.js +13 -1
- package/icons/gcp/cloud-apis.js +18 -1
- package/icons/gcp/cloud-armor.js +27 -1
- package/icons/gcp/cloud-asset-inventory.js +10 -1
- package/icons/gcp/cloud-audit-logs.js +60 -1
- package/icons/gcp/cloud-build.js +19 -1
- package/icons/gcp/cloud-cdn.js +22 -1
- package/icons/gcp/cloud-code.js +16 -1
- package/icons/gcp/cloud-composer.js +19 -1
- package/icons/gcp/cloud-data-fusion.js +15 -1
- package/icons/gcp/cloud-deploy.js +10 -1
- package/icons/gcp/cloud-deployment-manager.js +24 -1
- package/icons/gcp/cloud-dns.js +21 -1
- package/icons/gcp/cloud-domains.js +26 -1
- package/icons/gcp/cloud-ekm.js +13 -1
- package/icons/gcp/cloud-endpoints.js +26 -1
- package/icons/gcp/cloud-external-ip-addresses.js +21 -1
- package/icons/gcp/cloud-firewall-rules.js +15 -1
- package/icons/gcp/cloud-for-marketing.js +13 -1
- package/icons/gcp/cloud-functions.js +45 -1
- package/icons/gcp/cloud-generic.js +13 -1
- package/icons/gcp/cloud-gpu.js +18 -1
- package/icons/gcp/cloud-healthcare-api.js +65 -1
- package/icons/gcp/cloud-healthcare-marketplace.js +10 -1
- package/icons/gcp/cloud-hsm.js +43 -1
- package/icons/gcp/cloud-ids.js +42 -1
- package/icons/gcp/cloud-inference-api.js +27 -1
- package/icons/gcp/cloud-interconnect.js +15 -1
- package/icons/gcp/cloud-jobs-api.js +37 -1
- package/icons/gcp/cloud-load-balancing.js +20 -1
- package/icons/gcp/cloud-logging.js +35 -1
- package/icons/gcp/cloud-media-edge.js +23 -1
- package/icons/gcp/cloud-monitoring.js +26 -1
- package/icons/gcp/cloud-nat.js +31 -1
- package/icons/gcp/cloud-natural-language-api.js +40 -1
- package/icons/gcp/cloud-network.js +23 -1
- package/icons/gcp/cloud-ops.js +32 -1
- package/icons/gcp/cloud-optimization-ai-fleet-routing-api.js +34 -1
- package/icons/gcp/cloud-optimization-ai.js +28 -1
- package/icons/gcp/cloud-router.js +13 -1
- package/icons/gcp/cloud-routes.js +18 -1
- package/icons/gcp/cloud-run-for-anthos.js +21 -1
- package/icons/gcp/cloud-run.js +13 -1
- package/icons/gcp/cloud-scheduler.js +49 -1
- package/icons/gcp/cloud-security-scanner.js +21 -1
- package/icons/gcp/cloud-shell.js +16 -1
- package/icons/gcp/cloud-spanner.js +42 -1
- package/icons/gcp/cloud-sql.js +16 -1
- package/icons/gcp/cloud-storage.js +22 -1
- package/icons/gcp/cloud-tasks.js +101 -1
- package/icons/gcp/cloud-test-lab.js +39 -1
- package/icons/gcp/cloud-tpu.js +141 -1
- package/icons/gcp/cloud-translation-api.js +16 -1
- package/icons/gcp/cloud-vision-api.js +40 -1
- package/icons/gcp/cloud-vpn.js +23 -1
- package/icons/gcp/compute-engine.js +23 -1
- package/icons/gcp/configuration-management.js +22 -1
- package/icons/gcp/connectivity-test.js +6 -1
- package/icons/gcp/connectors.js +13 -1
- package/icons/gcp/contact-center-ai.js +6 -1
- package/icons/gcp/container-optimized-os.js +13 -1
- package/icons/gcp/container-registry.js +118 -1
- package/icons/gcp/data-catalog.js +25 -1
- package/icons/gcp/data-labeling.js +31 -1
- package/icons/gcp/data-layers.js +11 -1
- package/icons/gcp/data-loss-prevention-api.js +60 -1
- package/icons/gcp/data-qn-a.js +24 -1
- package/icons/gcp/data-studio.js +28 -1
- package/icons/gcp/data-transfer.js +17 -1
- package/icons/gcp/database-migration-service.js +24 -1
- package/icons/gcp/dataflow.js +50 -1
- package/icons/gcp/datalab.js +13 -1
- package/icons/gcp/dataplex.js +15 -1
- package/icons/gcp/datapol.js +70 -1
- package/icons/gcp/dataprep.js +25 -1
- package/icons/gcp/dataproc-metastore.js +12 -1
- package/icons/gcp/dataproc.js +43 -1
- package/icons/gcp/datashare.js +37 -1
- package/icons/gcp/datastore.js +39 -1
- package/icons/gcp/datastream.js +35 -1
- package/icons/gcp/debugger.js +31 -1
- package/icons/gcp/developer-portal.js +24 -1
- package/icons/gcp/dialogflow-cx.js +28 -1
- package/icons/gcp/dialogflow-insights.js +33 -1
- package/icons/gcp/dialogflow.js +16 -1
- package/icons/gcp/document-ai.js +27 -1
- package/icons/gcp/early-access-center.js +12 -1
- package/icons/gcp/error-reporting.js +42 -1
- package/icons/gcp/eventarc.js +24 -1
- package/icons/gcp/filestore.js +22 -1
- package/icons/gcp/financial-services-marketplace.js +21 -1
- package/icons/gcp/firestore.js +30 -1
- package/icons/gcp/fleet-engine.js +10 -1
- package/icons/gcp/free-trial.js +36 -1
- package/icons/gcp/game-servers.js +32 -1
- package/icons/gcp/gce-systems-management.js +13 -1
- package/icons/gcp/genomics.js +23 -1
- package/icons/gcp/gke-on-prem.js +31 -1
- package/icons/gcp/google-cloud-marketplace.js +29 -1
- package/icons/gcp/google-kubernetes-engine.js +23 -1
- package/icons/gcp/google-maps-platform.js +47 -1
- package/icons/gcp/healthcare-nlp-api.js +13 -1
- package/icons/gcp/home.js +25 -1
- package/icons/gcp/identity-and-access-management.js +23 -1
- package/icons/gcp/identity-aware-proxy.js +32 -1
- package/icons/gcp/identity-platform.js +26 -1
- package/icons/gcp/iot-core.js +23 -1
- package/icons/gcp/iot-edge.js +86 -1
- package/icons/gcp/key-access-justifications.js +46 -1
- package/icons/gcp/key-management-service.js +23 -1
- package/icons/gcp/kuberun.js +26 -1
- package/icons/gcp/launcher.js +35 -1
- package/icons/gcp/local-ssd.js +13 -1
- package/icons/gcp/looker.js +46 -1
- package/icons/gcp/managed-service-for-microsoft-active-directory.js +59 -1
- package/icons/gcp/media-translation-api.js +28 -1
- package/icons/gcp/memorystore.js +26 -1
- package/icons/gcp/migrate-for-anthos.js +13 -1
- package/icons/gcp/migrate-for-compute-engine.js +13 -1
- package/icons/gcp/my-cloud.js +21 -1
- package/icons/gcp/network-connectivity-center.js +84 -1
- package/icons/gcp/network-intelligence-center.js +13 -1
- package/icons/gcp/network-security.js +38 -1
- package/icons/gcp/network-tiers.js +53 -1
- package/icons/gcp/network-topology.js +13 -1
- package/icons/gcp/onboarding.js +25 -1
- package/icons/gcp/os-configuration-management.js +13 -1
- package/icons/gcp/os-inventory-management.js +15 -1
- package/icons/gcp/os-patch-management.js +13 -1
- package/icons/gcp/partner-interconnect.js +21 -1
- package/icons/gcp/partner-portal.js +35 -1
- package/icons/gcp/performance-dashboard.js +13 -1
- package/icons/gcp/permissions.js +35 -1
- package/icons/gcp/persistent-disk.js +10 -1
- package/icons/gcp/phishing-protection.js +48 -1
- package/icons/gcp/policy-analyzer.js +13 -1
- package/icons/gcp/premium-network-tier.js +19 -1
- package/icons/gcp/private-connectivity.js +18 -1
- package/icons/gcp/private-service-connect.js +27 -1
- package/icons/gcp/producer-portal.js +21 -1
- package/icons/gcp/profiler.js +29 -1
- package/icons/gcp/project.js +28 -1
- package/icons/gcp/pub-sub.js +41 -1
- package/icons/gcp/quantum-engine.js +27 -1
- package/icons/gcp/quotas.js +42 -1
- package/icons/gcp/real-world-insights.js +19 -1
- package/icons/gcp/recommendations-ai.js +56 -1
- package/icons/gcp/release-notes.js +12 -1
- package/icons/gcp/retail-api.js +22 -1
- package/icons/gcp/risk-manager.js +12 -1
- package/icons/gcp/runtime-config.js +35 -1
- package/icons/gcp/secret-manager.js +13 -1
- package/icons/gcp/security-command-center.js +18 -1
- package/icons/gcp/security-health-advisor.js +61 -1
- package/icons/gcp/security-key-enforcement.js +21 -1
- package/icons/gcp/security.js +27 -1
- package/icons/gcp/service-discovery.js +36 -1
- package/icons/gcp/speech-to-text.js +93 -1
- package/icons/gcp/stackdriver.js +10 -1
- package/icons/gcp/standard-network-tier.js +13 -1
- package/icons/gcp/stream-suite.js +16 -1
- package/icons/gcp/support.js +29 -1
- package/icons/gcp/tensorflow-enterprise.js +13 -1
- package/icons/gcp/text-to-speech.js +24 -1
- package/icons/gcp/tools-for-powershell.js +29 -1
- package/icons/gcp/trace.js +17 -1
- package/icons/gcp/traffic-director.js +44 -1
- package/icons/gcp/transfer-appliance.js +32 -1
- package/icons/gcp/transfer.js +13 -1
- package/icons/gcp/user-preferences.js +35 -1
- package/icons/gcp/vertex-ai.js +48 -1
- package/icons/gcp/video-intelligence-api.js +15 -1
- package/icons/gcp/virtual-private-cloud.js +25 -1
- package/icons/gcp/visual-inspection.js +24 -1
- package/icons/gcp/vmware-engine.js +13 -1
- package/icons/gcp/web-risk.js +55 -1
- package/icons/gcp/web-security-scanner.js +27 -1
- package/icons/gcp/workflows.js +82 -1
- package/icons/gcp/workload-identity-pool.js +24 -1
- package/icons/tech/aarch64.js +48 -1
- package/icons/tech/adobe-illustrator.js +14 -1
- package/icons/tech/adobe-photoshop.js +14 -1
- package/icons/tech/adobe-premiere-pro.js +16 -1
- package/icons/tech/adobe-xd.js +12 -1
- package/icons/tech/adonis-js.js +14 -1
- package/icons/tech/after-effects.js +16 -1
- package/icons/tech/airflow.js +64 -1
- package/icons/tech/akka.js +21 -1
- package/icons/tech/algolia.js +12 -1
- package/icons/tech/alpine-js.js +17 -1
- package/icons/tech/amazon-web-services.js +21 -1
- package/icons/tech/anaconda.js +12 -1
- package/icons/tech/android-studio.js +44 -1
- package/icons/tech/android.js +35 -1
- package/icons/tech/angular-js.js +24 -1
- package/icons/tech/angular.js +37 -1
- package/icons/tech/ansible.js +15 -1
- package/icons/tech/ant-design.js +112 -1
- package/icons/tech/apache.js +222 -1
- package/icons/tech/apl.js +21 -1
- package/icons/tech/appcelerator.js +12 -1
- package/icons/tech/apple-safari.js +39 -1
- package/icons/tech/apple.js +6 -1
- package/icons/tech/appwrite.js +21 -1
- package/icons/tech/arch-linux.js +29 -1
- package/icons/tech/arduino.js +9 -1
- package/icons/tech/argo-cd.js +134 -1
- package/icons/tech/astro.js +62 -1
- package/icons/tech/atom.js +14 -1
- package/icons/tech/autodesk-maya.js +144 -1
- package/icons/tech/autodesk-shot-grid.js +15 -1
- package/icons/tech/awk.js +34 -1
- package/icons/tech/azios.js +12 -1
- package/icons/tech/azure-devops.js +33 -1
- package/icons/tech/azure-sql-database.js +95 -1
- package/icons/tech/azure.js +55 -1
- package/icons/tech/babel.js +15 -1
- package/icons/tech/backbone-js.js +16 -1
- package/icons/tech/ballerina.js +12 -1
- package/icons/tech/bamboo.js +62 -1
- package/icons/tech/bash.js +22 -1
- package/icons/tech/behance.js +19 -1
- package/icons/tech/bitbucket.js +37 -1
- package/icons/tech/blender.js +21 -1
- package/icons/tech/bootstrap.js +78 -1
- package/icons/tech/bower.js +123 -1
- package/icons/tech/browserstack.js +77 -1
- package/icons/tech/bulma.js +6 -1
- package/icons/tech/bun.js +68 -1
- package/icons/tech/c.js +28 -1
- package/icons/tech/cairo-graphics.js +21 -1
- package/icons/tech/cake-php.js +12 -1
- package/icons/tech/canva.js +9 -1
- package/icons/tech/capacitor.js +25 -1
- package/icons/tech/cassandra.js +101 -1
- package/icons/tech/cent-os.js +22 -1
- package/icons/tech/chrome.js +156 -1
- package/icons/tech/circle-ci.js +12 -1
- package/icons/tech/clarity.js +35 -1
- package/icons/tech/clion.js +98 -1
- package/icons/tech/clojure-script.js +39 -1
- package/icons/tech/clojure.js +42 -1
- package/icons/tech/cloudflare-workers.js +196 -1
- package/icons/tech/cloudflare.js +22 -1
- package/icons/tech/cmake.js +11 -1
- package/icons/tech/code-igniter.js +12 -1
- package/icons/tech/code-pen.js +12 -1
- package/icons/tech/codeac.js +12 -1
- package/icons/tech/codecov.js +12 -1
- package/icons/tech/coffee-script.js +12 -1
- package/icons/tech/composer.js +59 -1
- package/icons/tech/confluence.js +57 -1
- package/icons/tech/consul.js +12 -1
- package/icons/tech/contao.js +15 -1
- package/icons/tech/corejs.js +6 -1
- package/icons/tech/cosmosdb.js +52 -1
- package/icons/tech/couchdb.js +12 -1
- package/icons/tech/cplusplus.js +35 -1
- package/icons/tech/crystal.js +12 -1
- package/icons/tech/csharp.js +28 -1
- package/icons/tech/css3.js +25 -1
- package/icons/tech/cucumber.js +12 -1
- package/icons/tech/cypress.js +34 -1
- package/icons/tech/d3js.js +145 -1
- package/icons/tech/dart.js +24 -1
- package/icons/tech/data-grip.js +109 -1
- package/icons/tech/data-spell.js +102 -1
- package/icons/tech/dbeaver.js +56 -1
- package/icons/tech/debian.js +12 -1
- package/icons/tech/deno.js +6 -1
- package/icons/tech/devicon.js +25 -1
- package/icons/tech/digital-ocean.js +9 -1
- package/icons/tech/discord-js.js +56 -1
- package/icons/tech/django-rest.js +35 -1
- package/icons/tech/django.js +9 -1
- package/icons/tech/docker.js +133 -1
- package/icons/tech/doctrine.js +21 -1
- package/icons/tech/dropwizard.js +70 -1
- package/icons/tech/drupal.js +56 -1
- package/icons/tech/eclipse-ceylon.js +44 -1
- package/icons/tech/eclipse-ide.js +99 -1
- package/icons/tech/eclipse-vert-x.js +29 -1
- package/icons/tech/elasticbeats.js +22 -1
- package/icons/tech/elasticsearch.js +28 -1
- package/icons/tech/electron.js +11 -1
- package/icons/tech/eleventy-11ty.js +15 -1
- package/icons/tech/elixir.js +211 -1
- package/icons/tech/elm.js +19 -1
- package/icons/tech/embedded-c.js +42 -1
- package/icons/tech/ember-js.js +16 -1
- package/icons/tech/envoy.js +28 -1
- package/icons/tech/erlang.js +12 -1
- package/icons/tech/eslint.js +21 -1
- package/icons/tech/express.js +6 -1
- package/icons/tech/facebook.js +15 -1
- package/icons/tech/fast-api.js +12 -1
- package/icons/tech/fastify.js +15 -1
- package/icons/tech/fauna.js +12 -1
- package/icons/tech/feathers.js +6 -1
- package/icons/tech/fedora.js +53 -1
- package/icons/tech/figma.js +24 -1
- package/icons/tech/file-zilla.js +29 -1
- package/icons/tech/firebase.js +12 -1
- package/icons/tech/firefox.js +1405 -1
- package/icons/tech/flask.js +12 -1
- package/icons/tech/flutter.js +16 -1
- package/icons/tech/fortran.js +15 -1
- package/icons/tech/foundation.js +240 -1
- package/icons/tech/fsharp.js +10 -1
- package/icons/tech/gatling.js +12 -1
- package/icons/tech/gatsby.js +12 -1
- package/icons/tech/gazebo.js +23 -1
- package/icons/tech/gcc.js +44 -1
- package/icons/tech/gentoo.js +14 -1
- package/icons/tech/ghost.js +27 -1
- package/icons/tech/gimp.js +382 -1
- package/icons/tech/git.js +12 -1
- package/icons/tech/gitbook.js +13 -1
- package/icons/tech/github-actions.js +21 -1
- package/icons/tech/github-codespaces.js +85 -1
- package/icons/tech/github.js +16 -1
- package/icons/tech/gitlab.js +35 -1
- package/icons/tech/gitpod.js +32 -1
- package/icons/tech/gitter.js +6 -1
- package/icons/tech/gnu-emacs.js +15 -1
- package/icons/tech/go-land.js +88 -1
- package/icons/tech/go.js +294 -1
- package/icons/tech/godot-engine.js +56 -1
- package/icons/tech/google-cloud.js +29 -1
- package/icons/tech/google.js +42 -1
- package/icons/tech/gradle.js +12 -1
- package/icons/tech/grafana.js +30 -1
- package/icons/tech/grails.js +21 -1
- package/icons/tech/graphql.js +15 -1
- package/icons/tech/groovy.js +715 -1
- package/icons/tech/grunt-js.js +260 -1
- package/icons/tech/gulp-js.js +14 -1
- package/icons/tech/hadoop.js +36 -1
- package/icons/tech/handlebars.js +9 -1
- package/icons/tech/hardhat.js +98 -1
- package/icons/tech/harvester.js +10 -1
- package/icons/tech/hashicorp-vault.js +12 -1
- package/icons/tech/haskell.js +10 -1
- package/icons/tech/haxe.js +17 -1
- package/icons/tech/helm.js +12 -1
- package/icons/tech/heroku.js +12 -1
- package/icons/tech/hibernate.js +15 -1
- package/icons/tech/homebrew.js +36 -1
- package/icons/tech/html5.js +23 -1
- package/icons/tech/hugo.js +22 -1
- package/icons/tech/ibm-spss-statistics.js +21 -1
- package/icons/tech/ie10.js +12 -1
- package/icons/tech/ifttt.js +6 -1
- package/icons/tech/influxdb.js +14 -1
- package/icons/tech/inkscape.js +573 -1
- package/icons/tech/insomnia.js +44 -1
- package/icons/tech/intellij-idea.js +92 -1
- package/icons/tech/ionic.js +9 -1
- package/icons/tech/jaeger.js +102 -1
- package/icons/tech/jamstack.js +12 -1
- package/icons/tech/jasmine.js +10 -1
- package/icons/tech/java.js +42 -1
- package/icons/tech/javascript.js +15 -1
- package/icons/tech/jeet.js +163 -1
- package/icons/tech/jekyll.js +232 -1
- package/icons/tech/jenkins.js +126 -1
- package/icons/tech/jest.js +12 -1
- package/icons/tech/jetbrains.js +118 -1
- package/icons/tech/jira-align.js +57 -1
- package/icons/tech/jira.js +62 -1
- package/icons/tech/jquery.js +12 -1
- package/icons/tech/json.js +57 -1
- package/icons/tech/jule.js +12 -1
- package/icons/tech/julia.js +49 -1
- package/icons/tech/junit.js +30 -1
- package/icons/tech/jupyter.js +35 -1
- package/icons/tech/k3os.js +6 -1
- package/icons/tech/k3s.js +12 -1
- package/icons/tech/kafka.js +12 -1
- package/icons/tech/kaggle.js +12 -1
- package/icons/tech/karate.js +15 -1
- package/icons/tech/karma.js +21 -1
- package/icons/tech/keras.js +15 -1
- package/icons/tech/kibana.js +10 -1
- package/icons/tech/knex-js.js +12 -1
- package/icons/tech/knockout.js +13 -1
- package/icons/tech/kotlin.js +25 -1
- package/icons/tech/krakenjs.js +14 -1
- package/icons/tech/ktor.js +48 -1
- package/icons/tech/kubernetes.js +10 -1
- package/icons/tech/labview.js +69 -1
- package/icons/tech/laravel.js +15 -1
- package/icons/tech/latex.js +12 -1
- package/icons/tech/less-js.js +14 -1
- package/icons/tech/linkedin.js +21 -1
- package/icons/tech/linux.js +5267 -1
- package/icons/tech/liquibase.js +12 -1
- package/icons/tech/livewire.js +79 -1
- package/icons/tech/llvm.js +36 -1
- package/icons/tech/logstash.js +10 -1
- package/icons/tech/lua.js +28 -1
- package/icons/tech/lumen.js +12 -1
- package/icons/tech/magento.js +12 -1
- package/icons/tech/markdown.js +44 -1
- package/icons/tech/material-ui.js +11 -1
- package/icons/tech/materialize.js +21 -1
- package/icons/tech/matlab.js +73 -1
- package/icons/tech/matplotlib.js +182 -1
- package/icons/tech/maven.js +620 -1
- package/icons/tech/meteor-js.js +12 -1
- package/icons/tech/microsoft-sql-server.js +6 -1
- package/icons/tech/minitab.js +45 -1
- package/icons/tech/mob-x.js +57 -1
- package/icons/tech/mocha.js +21 -1
- package/icons/tech/modx.js +18 -1
- package/icons/tech/moleculer.js +12 -1
- package/icons/tech/mongodb.js +135 -1
- package/icons/tech/mongoose-js.js +29 -1
- package/icons/tech/moodle.js +145 -1
- package/icons/tech/ms-dos.js +78 -1
- package/icons/tech/mysql.js +12 -1
- package/icons/tech/nano.js +12 -1
- package/icons/tech/nerog.js +136 -1
- package/icons/tech/nestjs.js +12 -1
- package/icons/tech/net-core.js +9 -1
- package/icons/tech/net.js +551 -1
- package/icons/tech/network-x.js +58 -1
- package/icons/tech/new4j.js +21 -1
- package/icons/tech/nextjs.js +6 -1
- package/icons/tech/nginx.js +12 -1
- package/icons/tech/nhibernate.js +21 -1
- package/icons/tech/nim.js +29 -1
- package/icons/tech/nimble.js +84 -1
- package/icons/tech/nix.js +25 -1
- package/icons/tech/nodejs.js +12 -1
- package/icons/tech/nodemon.js +21 -1
- package/icons/tech/nodewebkit.js +42 -1
- package/icons/tech/npm.js +12 -1
- package/icons/tech/nuget.js +12 -1
- package/icons/tech/num-py.js +29 -1
- package/icons/tech/nuxt-js.js +28 -1
- package/icons/tech/objective-c.js +9 -1
- package/icons/tech/ocaml.js +96 -1
- package/icons/tech/oh-my-zsh.js +38 -1
- package/icons/tech/okta.js +21 -1
- package/icons/tech/open-al.js +22 -1
- package/icons/tech/open-api.js +139 -1
- package/icons/tech/open-cl.js +42 -1
- package/icons/tech/open-cv.js +28 -1
- package/icons/tech/open-gl.js +35 -1
- package/icons/tech/open-stack.js +12 -1
- package/icons/tech/open-suse.js +15 -1
- package/icons/tech/open-telemetry.js +21 -1
- package/icons/tech/opera.js +32 -1
- package/icons/tech/oracle.js +12 -1
- package/icons/tech/p5js.js +12 -1
- package/icons/tech/packer.js +15 -1
- package/icons/tech/pandas.js +62 -1
- package/icons/tech/perl.js +21 -1
- package/icons/tech/pf-sense.js +6 -1
- package/icons/tech/phalcon.js +32 -1
- package/icons/tech/phoenix-framework.js +12 -1
- package/icons/tech/photon-engine.js +41 -1
- package/icons/tech/php-storm.js +105 -1
- package/icons/tech/php.js +62 -1
- package/icons/tech/playwrite.js +56 -1
- package/icons/tech/ploty.js +28 -1
- package/icons/tech/podman.js +150 -1
- package/icons/tech/polygon.js +15 -1
- package/icons/tech/portainer.js +12 -1
- package/icons/tech/postcss.js +28 -1
- package/icons/tech/postgresql.js +23 -1
- package/icons/tech/postman.js +28 -1
- package/icons/tech/powershell.js +79 -1
- package/icons/tech/processing.js +201 -1
- package/icons/tech/prometheus.js +12 -1
- package/icons/tech/protractor.js +12 -1
- package/icons/tech/purescript.js +16 -1
- package/icons/tech/putty.js +56 -1
- package/icons/tech/pycharm.js +81 -1
- package/icons/tech/pyscript.js +15 -1
- package/icons/tech/pytest.js +21 -1
- package/icons/tech/python-poetry.js +155 -1
- package/icons/tech/python.js +78 -1
- package/icons/tech/pytorch.js +15 -1
- package/icons/tech/qodana.js +52 -1
- package/icons/tech/qt.js +12 -1
- package/icons/tech/quarkus.js +23 -1
- package/icons/tech/quasar.js +15 -1
- package/icons/tech/qwik.js +37 -1
- package/icons/tech/r.js +57 -1
- package/icons/tech/rabbitmq.js +12 -1
- package/icons/tech/rancher.js +6 -1
- package/icons/tech/raspberrypi.js +28 -1
- package/icons/tech/reach.js +27 -1
- package/icons/tech/react-bootstrap.js +12 -1
- package/icons/tech/react.js +9 -1
- package/icons/tech/realm.js +63 -1
- package/icons/tech/red-cube-s-epic-compiler-thingy-programming-re-ct.js +17 -1
- package/icons/tech/redhat.js +22 -1
- package/icons/tech/redis.js +59 -1
- package/icons/tech/redux.js +12 -1
- package/icons/tech/ren-py.js +547 -1
- package/icons/tech/rider.js +38 -1
- package/icons/tech/robot-operating-system-ros.js +15 -1
- package/icons/tech/rocksdb.js +9 -1
- package/icons/tech/rollup-js.js +155 -1
- package/icons/tech/rspec.js +35 -1
- package/icons/tech/rstudio.js +30 -1
- package/icons/tech/ruby-mine.js +52 -1
- package/icons/tech/ruby-on-rails.js +14 -1
- package/icons/tech/ruby.js +359 -1
- package/icons/tech/rust.js +6 -1
- package/icons/tech/salesforce.js +28 -1
- package/icons/tech/sanity.js +22 -1
- package/icons/tech/sass.js +14 -1
- package/icons/tech/scala.js +21 -1
- package/icons/tech/scalingo.js +29 -1
- package/icons/tech/sdl.js +42 -1
- package/icons/tech/selenium.js +15 -1
- package/icons/tech/sema-software.js +15 -1
- package/icons/tech/sequelize.js +34 -1
- package/icons/tech/shopware.js +9 -1
- package/icons/tech/sketch.js +14 -1
- package/icons/tech/slack.js +35 -1
- package/icons/tech/socket-io.js +45 -1
- package/icons/tech/solid-js.js +121 -1
- package/icons/tech/solidity.js +13 -1
- package/icons/tech/sonarqube.js +12 -1
- package/icons/tech/sourcetree.js +12 -1
- package/icons/tech/spark.js +12 -1
- package/icons/tech/splunk.js +12 -1
- package/icons/tech/spring.js +12 -1
- package/icons/tech/sql-developer.js +43 -1
- package/icons/tech/sqlalchemy.js +21 -1
- package/icons/tech/sqlite.js +45 -1
- package/icons/tech/ssh.js +12 -1
- package/icons/tech/stackoverflow.js +15 -1
- package/icons/tech/stata.js +12 -1
- package/icons/tech/storybook.js +12 -1
- package/icons/tech/streamlit.js +31 -1
- package/icons/tech/stylus.js +9 -1
- package/icons/tech/subversion.js +12 -1
- package/icons/tech/svelte.js +23 -1
- package/icons/tech/swagger.js +21 -1
- package/icons/tech/swift.js +21 -1
- package/icons/tech/symfony.js +12 -1
- package/icons/tech/tailwind-css.js +12 -1
- package/icons/tech/tauri.js +35 -1
- package/icons/tech/tensorflow.js +12 -1
- package/icons/tech/terraform.js +16 -1
- package/icons/tech/tex.js +6 -1
- package/icons/tech/the-algorithms.js +12 -1
- package/icons/tech/three-js.js +139 -1
- package/icons/tech/titanium-sdk.js +12 -1
- package/icons/tech/tomcat.js +26 -1
- package/icons/tech/tortoise-git.js +37 -1
- package/icons/tech/tower.js +369 -1
- package/icons/tech/traefik-mesh.js +12 -1
- package/icons/tech/traefik-proxy.js +12 -1
- package/icons/tech/travis-ci.js +12 -1
- package/icons/tech/trello.js +12 -1
- package/icons/tech/twitter.js +12 -1
- package/icons/tech/typescript.js +16 -1
- package/icons/tech/typo3.js +12 -1
- package/icons/tech/ubuntu.js +12 -1
- package/icons/tech/uml.js +29 -1
- package/icons/tech/unity.js +22 -1
- package/icons/tech/unix.js +12 -1
- package/icons/tech/unreal-engine.js +9 -1
- package/icons/tech/uwsgi.js +38 -1
- package/icons/tech/v8.js +109 -1
- package/icons/tech/vagrant.js +21 -1
- package/icons/tech/vala.js +57 -1
- package/icons/tech/vercel.js +6 -1
- package/icons/tech/veutify.js +11 -1
- package/icons/tech/vim.js +82 -1
- package/icons/tech/visualstudio.js +12 -1
- package/icons/tech/vite.js +6 -1
- package/icons/tech/vitejs.js +56 -1
- package/icons/tech/vscode.js +114 -1
- package/icons/tech/vsphere.js +25 -1
- package/icons/tech/vue-storefront.js +22 -1
- package/icons/tech/vue.js +16 -1
- package/icons/tech/vyper.js +17 -1
- package/icons/tech/webassembly.js +12 -1
- package/icons/tech/webflow.js +12 -1
- package/icons/tech/weblate.js +80 -1
- package/icons/tech/webpack.js +21 -1
- package/icons/tech/webstorm.js +80 -1
- package/icons/tech/windows11.js +12 -1
- package/icons/tech/windows8.js +12 -1
- package/icons/tech/woo-commerce.js +22 -1
- package/icons/tech/wordpress.js +70 -1
- package/icons/tech/xamarin.js +12 -1
- package/icons/tech/xcode.js +623 -1
- package/icons/tech/xml.js +51 -1
- package/icons/tech/yaml.js +16 -1
- package/icons/tech/yarn.js +9 -1
- package/icons/tech/yii-framework.js +35 -1
- package/icons/tech/yuno-host.js +15 -1
- package/icons/tech/zend-framework.js +14 -1
- package/icons/tech/zig.js +28 -1
- package/package.json +34 -30
- package/react/index.d.mts +234 -116
- package/react/index.mjs +27 -27
package/__app__/src/main.js
CHANGED
|
@@ -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$
|
|
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$
|
|
1064
|
-
y: clamp$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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
|
|
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
|
|
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,
|
|
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$
|
|
12161
|
-
defaultValue: typeof defaultValue == "number" ? clamp$
|
|
12162
|
-
finalValue: clamp$
|
|
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),
|
|
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
|
-
),
|
|
12184
|
-
|
|
12185
|
-
|
|
12186
|
-
|
|
12187
|
-
|
|
12188
|
-
|
|
12189
|
-
|
|
12190
|
-
|
|
12191
|
-
|
|
12192
|
-
|
|
12193
|
-
|
|
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),
|
|
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),
|
|
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),
|
|
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),
|
|
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),
|
|
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),
|
|
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),
|
|
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),
|
|
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)),
|
|
12265
|
+
setValue(getFirstMarkValue(marks)), callOnChangeEnd(getFirstMarkValue(marks));
|
|
12252
12266
|
break;
|
|
12253
12267
|
}
|
|
12254
|
-
setValue(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)),
|
|
12273
|
+
setValue(getLastMarkValue(marks)), callOnChangeEnd(getLastMarkValue(marks));
|
|
12260
12274
|
break;
|
|
12261
12275
|
}
|
|
12262
|
-
setValue(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,
|
|
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)
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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
|
|
24726
|
+
var ConnectionMode;
|
|
24715
24727
|
(function(ConnectionMode2) {
|
|
24716
24728
|
ConnectionMode2.Strict = "strict", ConnectionMode2.Loose = "loose";
|
|
24717
|
-
})(ConnectionMode
|
|
24718
|
-
var PanOnScrollMode
|
|
24729
|
+
})(ConnectionMode || (ConnectionMode = {}));
|
|
24730
|
+
var PanOnScrollMode;
|
|
24719
24731
|
(function(PanOnScrollMode2) {
|
|
24720
24732
|
PanOnScrollMode2.Free = "free", PanOnScrollMode2.Vertical = "vertical", PanOnScrollMode2.Horizontal = "horizontal";
|
|
24721
|
-
})(PanOnScrollMode
|
|
24722
|
-
var SelectionMode
|
|
24733
|
+
})(PanOnScrollMode || (PanOnScrollMode = {}));
|
|
24734
|
+
var SelectionMode;
|
|
24723
24735
|
(function(SelectionMode2) {
|
|
24724
24736
|
SelectionMode2.Partial = "partial", SelectionMode2.Full = "full";
|
|
24725
|
-
})(SelectionMode
|
|
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
|
|
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
|
|
24742
|
-
var MarkerType
|
|
24753
|
+
})(ConnectionLineType || (ConnectionLineType = {}));
|
|
24754
|
+
var MarkerType;
|
|
24743
24755
|
(function(MarkerType2) {
|
|
24744
24756
|
MarkerType2.Arrow = "arrow", MarkerType2.ArrowClosed = "arrowclosed";
|
|
24745
|
-
})(MarkerType
|
|
24746
|
-
var Position
|
|
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
|
|
24761
|
+
})(Position || (Position = {}));
|
|
24750
24762
|
const oppositePosition = {
|
|
24751
|
-
[Position
|
|
24752
|
-
[Position
|
|
24753
|
-
[Position
|
|
24754
|
-
[Position
|
|
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
|
|
24760
|
-
const { width, height } = getNodeDimensions
|
|
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]
|
|
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
|
|
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
|
|
24785
|
+
return getBoundsOfBoxes(currBox, nodeBox);
|
|
24774
24786
|
}, { x: 1 / 0, y: 1 / 0, x2: -1 / 0, y2: -1 / 0 });
|
|
24775
|
-
return boxToRect
|
|
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
|
|
24795
|
+
box = getBoundsOfBoxes(box, nodeBox);
|
|
24784
24796
|
}
|
|
24785
|
-
}), boxToRect
|
|
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
|
|
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
|
|
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
|
|
24867
|
-
x: clamp
|
|
24868
|
-
y: clamp
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
24896
|
-
const { x: x2, y: y2 } = isInternalNodeBase
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
24955
|
+
function parsePaddings(padding, width, height) {
|
|
24944
24956
|
if (typeof padding == "string" || typeof padding == "number") {
|
|
24945
|
-
const paddingY = parsePadding
|
|
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
|
|
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
|
|
24962
|
-
const { x: left, y: top } = rendererPointToPoint
|
|
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
|
|
24971
|
-
const p2 = parsePaddings
|
|
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
|
|
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
|
|
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
|
|
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
|
|
25064
|
+
function calculateControlOffset(distance2, curvature) {
|
|
25053
25065
|
return distance2 >= 0 ? 0.5 * distance2 : curvature * 25 * Math.sqrt(-distance2);
|
|
25054
25066
|
}
|
|
25055
|
-
function getControlWithCurvature
|
|
25067
|
+
function getControlWithCurvature({ pos, x1, y1, x2, y2, c: c2 }) {
|
|
25056
25068
|
switch (pos) {
|
|
25057
|
-
case Position
|
|
25058
|
-
return [x1 - calculateControlOffset
|
|
25059
|
-
case Position
|
|
25060
|
-
return [x1 + calculateControlOffset
|
|
25061
|
-
case Position
|
|
25062
|
-
return [x1, y1 - calculateControlOffset
|
|
25063
|
-
case Position
|
|
25064
|
-
return [x1, y1 + calculateControlOffset
|
|
25065
|
-
}
|
|
25066
|
-
}
|
|
25067
|
-
function getBezierPath
|
|
25068
|
-
const [sourceControlX, sourceControlY] = getControlWithCurvature
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
25141
|
-
[Position
|
|
25142
|
-
[Position
|
|
25143
|
-
[Position
|
|
25144
|
-
}, getDirection = ({ source, sourcePosition = Position
|
|
25145
|
-
function getPoints({ source, sourcePosition = Position
|
|
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
|
|
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
|
|
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
|
|
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
|
|
25257
|
-
const x2 = (handle?.x ?? 0) + node2.internals.positionAbsolute.x, y2 = (handle?.y ?? 0) + node2.internals.positionAbsolute.y, { width, height } = handle ?? getNodeDimensions
|
|
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
|
|
25273
|
+
case Position.Top:
|
|
25262
25274
|
return { x: x2 + width / 2, y: y2 };
|
|
25263
|
-
case Position
|
|
25275
|
+
case Position.Right:
|
|
25264
25276
|
return { x: x2 + width, y: y2 + height / 2 };
|
|
25265
|
-
case Position
|
|
25277
|
+
case Position.Bottom:
|
|
25266
25278
|
return { x: x2 + width / 2, y: y2 + height };
|
|
25267
|
-
case Position
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
25930
|
-
!isMacOs
|
|
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
|
|
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
|
|
26142
|
+
var ResizeControlVariant;
|
|
26131
26143
|
(function(ResizeControlVariant2) {
|
|
26132
26144
|
ResizeControlVariant2.Line = "line", ResizeControlVariant2.Handle = "handle";
|
|
26133
|
-
})(ResizeControlVariant
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
27575
|
-
[MarkerType
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
27702
|
-
const [path, labelX, labelY] = getBezierPath
|
|
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
|
|
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
|
|
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
|
|
27905
|
-
[path] = getBezierPath
|
|
27916
|
+
case ConnectionLineType.Bezier:
|
|
27917
|
+
[path] = getBezierPath(pathParams);
|
|
27906
27918
|
break;
|
|
27907
|
-
case ConnectionLineType
|
|
27919
|
+
case ConnectionLineType.SimpleBezier:
|
|
27908
27920
|
[path] = getSimpleBezierPath(pathParams);
|
|
27909
27921
|
break;
|
|
27910
|
-
case ConnectionLineType
|
|
27922
|
+
case ConnectionLineType.Step:
|
|
27911
27923
|
[path] = getSmoothStepPath({
|
|
27912
27924
|
...pathParams,
|
|
27913
27925
|
borderRadius: 0
|
|
27914
27926
|
});
|
|
27915
27927
|
break;
|
|
27916
|
-
case ConnectionLineType
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
28431
|
-
const contextNodeId = useNodeId(), id2 = typeof nodeId == "string" ? nodeId : contextNodeId, store = useStoreApi(), resizeControlRef = useRef(null), defaultPosition = variant === ResizeControlVariant
|
|
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
|
|
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
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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
|
|
28892
|
+
return u$7(c, e2);
|
|
28881
28893
|
}
|
|
28882
|
-
function c
|
|
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
|
-
|
|
28989
|
-
|
|
28990
|
-
|
|
28991
|
-
if (
|
|
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
|
-
|
|
28994
|
-
|
|
28995
|
-
|
|
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 (
|
|
28998
|
-
if (!
|
|
29004
|
+
for (const value of a3)
|
|
29005
|
+
if (!b3.has(value))
|
|
28999
29006
|
return !1;
|
|
29000
29007
|
return !0;
|
|
29001
29008
|
}
|
|
29002
|
-
if (
|
|
29003
|
-
|
|
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 (
|
|
29010
|
-
if (
|
|
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 (
|
|
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
|
-
|
|
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 =
|
|
29027
|
-
if (
|
|
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 (
|
|
29032
|
-
|
|
29033
|
-
if (length !== b2.length)
|
|
29027
|
+
if (constructor === Map) {
|
|
29028
|
+
if (a3.size !== b3.size)
|
|
29034
29029
|
return !1;
|
|
29035
|
-
for (
|
|
29036
|
-
if (
|
|
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 (
|
|
29041
|
-
return
|
|
29042
|
-
if (
|
|
29043
|
-
return
|
|
29044
|
-
const aKeys = Object.keys(
|
|
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], !
|
|
29042
|
+
if (key2 = aKeys[l2], !Object.hasOwn(b3, key2) || !inner2(a3[key2], b3[key2]))
|
|
29048
29043
|
return !1;
|
|
29049
|
-
return Object.keys(
|
|
29050
|
-
}
|
|
29051
|
-
return a2
|
|
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:
|
|
31112
|
-
paneClickDistance:
|
|
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 = {},
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
35736
|
-
|
|
35737
|
-
|
|
35738
|
-
|
|
35739
|
-
|
|
35740
|
-
|
|
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(
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
|
36563
|
-
/* @__PURE__ */ jsx(Handle, { type: "source", position: Position
|
|
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.
|
|
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
|
-
|
|
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
|
-
})
|
|
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
|
-
}),
|
|
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
|
-
|
|
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
|
-
] }
|
|
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:
|
|
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
|
-
})
|
|
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
|
|
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
|
-
|
|
42692
|
-
|
|
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:
|
|
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),
|
|
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$
|
|
42731
|
+
...y$2(n2, ["parentId"]),
|
|
42883
42732
|
position: {
|
|
42884
|
-
x: currentSubjectCenter.x -
|
|
42885
|
-
y: currentSubjectCenter.y -
|
|
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
|
-
}),
|
|
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
|
|
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, {
|
|
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__ */
|
|
44479
|
-
/* @__PURE__ */ jsx(
|
|
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
|
-
|
|
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
|
|
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
|
|
45071
|
-
diagram.
|
|
44915
|
+
if (diagram.currentView.id !== viewId) {
|
|
44916
|
+
diagram.navigateTo(viewId, fromNode);
|
|
45072
44917
|
return;
|
|
45073
44918
|
}
|
|
45074
|
-
diagram.
|
|
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
|
|
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(
|
|
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(
|
|
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
|
|
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
|
|
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
|
-
}
|
|
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
|
|
45235
|
-
byid
|
|
45076
|
+
all,
|
|
45077
|
+
byid,
|
|
45236
45078
|
roots: roots.sort(sortByLabel)
|
|
45237
45079
|
};
|
|
45238
|
-
}, [model, search]),
|
|
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
|
|
45247
|
-
|
|
45248
|
-
|
|
45249
|
-
|
|
45250
|
-
|
|
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(
|
|
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:
|
|
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
|
-
] }
|
|
45216
|
+
] });
|
|
45365
45217
|
}
|
|
45366
45218
|
function useHandleElementSelection() {
|
|
45367
45219
|
const navigateTo = useCloseSearchAndNavigateTo();
|
|
45368
|
-
return
|
|
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
|
-
|
|
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,
|
|
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.
|
|
45473
|
+
duration: 0.13
|
|
45622
45474
|
}
|
|
45623
45475
|
},
|
|
45624
45476
|
exit: {
|
|
45625
45477
|
opacity: 0,
|
|
45626
45478
|
transition: {
|
|
45627
|
-
duration: 0.
|
|
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
|
-
|
|
45638
|
-
|
|
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":
|
|
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.
|
|
45516
|
+
duration: 0.13
|
|
45663
45517
|
}
|
|
45664
45518
|
},
|
|
45665
45519
|
children: [
|
|
45666
45520
|
/* @__PURE__ */ jsxs(Group, { wrap: "nowrap", children: [
|
|
45667
|
-
/* @__PURE__ */ jsx(Box
|
|
45668
|
-
/* @__PURE__ */ jsx(Box
|
|
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
|
-
|
|
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(
|
|
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(
|
|
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$
|
|
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
|
|
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
|
|
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 ?
|
|
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
|
-
}
|
|
48738
|
+
} : {
|
|
48886
48739
|
type: "xyflow:setViewportCenter",
|
|
48887
48740
|
params: getBBoxCenter(event.view.bounds)
|
|
48888
|
-
}), enqueue.
|
|
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
|
-
|
|
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
|
-
}),
|
|
50572
|
-
if (useTransparentBackground(), useEffect(
|
|
50573
|
-
|
|
50574
|
-
|
|
50575
|
-
|
|
50576
|
-
|
|
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:
|
|
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
|
|
50447
|
+
Box,
|
|
50594
50448
|
{
|
|
50595
50449
|
ref: viewportRef,
|
|
50596
|
-
|
|
50597
|
-
|
|
50450
|
+
"data-testid": "export-page",
|
|
50451
|
+
className: cx(cssExportView),
|
|
50598
50452
|
style: {
|
|
50599
50453
|
padding,
|
|
50600
50454
|
minWidth: width,
|